Você está na página 1de 29

Organizao de Computadores 1

3.1 CPU: Unidade de Processamento Central


Prof. Luiz Gustavo A. Martins

Arquitetura de von Newmann


Unidade de Processamento Central (CPU):
Unidade de Processamento Central (CPU)
Registradores

Memria Principal

PC

Unidade Lgica e Aritmtica

Sistema de E/S

Unidade de Controle

Sistema de Interconexo (Barramento)

Unidade de Processamento Central (CPU) A CPU o crebro do computador. Funes:


Interpretao e execuo dos programas da

memria principal; Controle dos demais componentes.

Componentes:
Registradores Unidade Lgica e Aritmtica (ULA) Unidade de Controle (UC)

CPU: Execuo de uma instruo


Unidade de Controle (UC) dispara cada um das etapas de execuo da instruo. Registradores armazenam temporariamente dados e instrues. Unidade Lgica e Aritmtica (ULA) processa os dados e atualiza os registradores.

Unidade Lgica e Aritmtica (ULA)


A ULA o ncleo da CPU. Executa as operaes de processamento de dados.
Podem ser diferentes para clculos com inteiros e ponto flutuante.

Ativa bits especiais (flags) como resultado da operao.


Ex: operao nula (bit Z), operao negativa (bit N), overflow, etc.

Est conectada a um grupo de registradores pelo barramento interno, formando o caminho de dados. Pode-se utilizar um conjunto de ULAs para a execuo paralela de instrues.

Caminho de Dados

Registradores
Pequenas unidades de memria com alta velocidade.
Mais rpido que as memrias principal e cache. Utilizam o barramento interno da CPU.

Armazenamento temporrio de dados, instrues e endereos em utilizao pelo processador. Possuem diferentes funes, mas tm um uso bem definido dentro da arquitetura. Possibilitam operaes de leitura e escrita.
Alguns permitem acesso indireto no nvel ISA.

Registradores: Classificao
Registradores de uso geral:
Utilizados

para armazenar dados que processados ou produzidos pela ULA.


Ex: AX-DX, AC, MQ.

sero

Coletivamente

so chamados conjunto registradores de dados (data register file).

de

Registradores de controle:
Utilizados no controle das operaes pela CPU e

nas trocas de informaes com a MP.


Ex: PC, IR, MAR, MBR.

Alguns desses so invisveis aos programadores.

Registradores (Processador 8088/8086)


CPU possui 14 registradores de 16 bits visveis. 4 registradores de uso geral:
AX (Acumulador): armazena operandos e resultados dos clculos

aritmticos e lgicos. BX (Base): armazena endereos indiretos. CX (Contador): conta iteraes de loops ou especifica o n de caracteres de uma string. DX (Dados): armazena overflow e endereo de E/S. Podem ser usados como registradores de 8 bits:
Ex: AH e AL (byte alto e byte baixo de AX).

Registradores (Processador 8088/8086)


4 registradores de segmento:
CS (Segmento de Cdigo): contm o endereo da rea

com as instrues de mquina em execuo. DS (Segmento de Dados): contm o endereo da rea com os dados do programa.
Geralmente aponta para as variveis globais do programa.

SS (Segmento de Pilha): contm o endereo da rea

com a pilha. Que armazena informaes importantes sobre o estado da mquina, variveis locais, endereos de retorno e parmetros de subrotinas. ES (Segmento Extra): utilizado para ganhar acesso a alguma rea da memria quando no possvel usar os outros registradores de segmento.
Ex: transferncias de bloco de dados.

Registradores (Processador 8088/8086)


5 registradores de offset:
PC (Program Counter) ou IP (Instruction Pointer): usado

em conjunto com o CS para apontar a prxima instruo. SI (source index) e DI (destiny index): utilizados para mover blocos de bytes de um lugar (SI) para outro (DI) e como ponteiros para endereamento (junto com os registradores CS, DS, SS e ES). BP (Base Pointer): usado em conjunto com o SS para apontar a base da pilha.
Similar ao registrador BX. Usado para acessar parmetros e variveis locais.

SP (Stack Pointer): usado em conjunto com o SS para

apontar o topo da pilha.

Registradores (Processador 8088/8086)


1 registrador de estado do processador (PSW) :
Registrador especial composto por sinalizadores (flags) que ajudam

a determinar o estado atual do processador.


Coleo de valores de 1 bit. Apenas 9 bits so utilizados. 4 mais utilizados: ZF - zero; CF - carry ("vai um) ou borrow (vem um); SF - sinal; e OF - overflow ou underflow.

Organizao dos Registradores Famlia Intel

80386 Pentium II (32 bits) 8086 (16 bits)

Unidade de Controle (UC)


Gerencia os recursos disponveis e o fluxo de dados entre os componentes. Controla a execuo das instrues pela CPU:
Busca as instrues ISA na memria principal. Decodificao das instrues (gerao dos sinais de controle

correspondentes). Seqenciamento das operaes. Disparo da execuo (envio dos sinais de controle).

Representa uma das partes mais difceis de ser projetada em um computador, devido complexidade dos processadores.

Viso Estrutural da Unidade de Controle

Unidade de Controle
CPU
ULA Unid. Bus Controle Interno Registradores

Lgica de Sequenciamento Registradores e Decodificadores da Unidade de Controle Memria de Controle

Ciclo de Instruo
Ciclo de Busca-Execuo (fetch-execute):
1. 2. 3. 4. 5. 6. 7.

Busca a instruo (memria IR); Altera PC para indicar a prxima instruo; Decodifica a instruo atual; Determina o endereo e busca o operando na memria (quando necessrio); Executa a operao (sinais de controle); Armazena os resultados; Repete passos anteriores.

CPU: Ciclo de Instruo


COMPORTAMENTO_CPU()
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

while CPU = ativa do MAR PC MBR MEMRIA[MAR] IR MBR:OpCode PC PC + incremento DECODIFICA INSTRUO if IR = ADD then MAR MBR:Endereo MBR MEMRIA[MAR] ACC ACC + MBR else if IR = JUMP then PC MBR:Endereo

Ciclo de busca da instruo (fetch)

Ciclo de execuo da instruo (execute)

Ciclo de Instrues: Diagrama de Estado


Estados envolvem transferncia de valores entre processador e memria ou E/S

Estados envolvem operaes internas ao processador

Categorizao das Operaes (Execute)


Movimentao processador memria:
Transferncia de dados entre CPU e memria principal.

Movimentao processador - E/S:


Transferncia de dados entre CPU e mdulos de E/S.

Processamento de dados:
Realiza alguma operao lgica ou aritmtica nos dados.

Operaes de controle:
Alterao na seqncia de execuo de instrues. Ex: desvios condicionais e no-condicionais (jump)

Qualquer combinao das operaes acima.

Exemplo de Execuo de um Programa


Mquina Hipottica (32 bits):
Formato da instruo: OpCode operando ou endereo

Formato de um dado inteiro: S magnitude

Registradores internos da CPU: PC (Program Counter): endereamento da prx. instruo IR (Instruction Register): instruo a ser executada AC (Accumulator): armazenamento temporrio Lista parcial de OpCode: 0001 = transferncia memria AC (load) 0010 = transferncia AC memria (store) 0011 = transferncia E/S AC (load) 0101 = adio do contedo da memria em AC 0111 = transferncia AC E/S (store)

Exemplo de Execuo de um Programa


Instrues Varivel A Varivel B

OBS: computadores com conj. de instrues mais complexas podem demandar menos operaes.

Interrupo
Mecanismos pelos quais outros componentes podem interromper a seqncia normal do processamento. Visa melhorar a eficincia do processamento. Fontes de interrupes mais comuns:
Programa (Software): gerada por alguma condio que ocorra

como resultado da execuo de uma instruo.

Ex: overflow, diviso por zero, instruo ilegal etc. Timer: gerada pelo processamento interno do relgio (timer). Usado em sistemas multi-tarefa preemptivos para executar certas funes a intervalos regulares de tempo. E/S: gerada pelo mdulo de E/S para sinalizar a concluso de

uma operao ou a ocorrncia de uma situao de erro. erro Falha de Hardware: gerada na ocorrncia de uma falha.
Ex: queda de energia, erro de paridade de memria

Controle do Fluxo do Programa

E/S rpida (a) Sem interrupo (b) Interrupo: espera curta

E/S lenta (c) Interrupo: espera longa

Ciclo de Interrupo
Acrescentado ao ciclo de instruo. Processador verifica se h interrupo:
Indicado por um sinal de interrupo.

Se no h interrupo, busca a prxima instruo na memria. Se houver interrupo pendente:


Suspende a execuo do programa corrente. Salva o contexto na pilha. Configura PC com o endereo de incio da rotina de

tratamento da interrupo (interrupt handler routine). Processa a interrupo. Restaura o contexto. Continua a execuo do programa interrompido.

Ciclo de Instrues com Interrupo

Mltiplas Interrupes
Desabilitar interrupes:
O processador ignora futuras interrupes enquanto

processa uma interrupo. Interrupo so manipuladas na seqncia que elas acontecem.

Definir prioridades:
Interrupes de baixa prioridade so interrompidas por

interrupes de alta prioridade. Quando a interrupo de mais alta prioridade foi processada, o processador retorna a interrupo anterior.

Mltiplas Interrupes: execuo seqencial

Mltiplas Interrupes: execuo aninhada

Sinal de Clock (ciclo)


Utilizado para atender as relaes de tempo requeridas nas operaes (sincronismo). Novas operaes bsicas so iniciadas em um novo ciclo de clock. A execuo de uma instruo consome um certo n de ciclos de clock.
Varia de acordo com o n de operaes bsicas requeridas e o

tempo de execuo de cada uma delas.

O tamanho do ciclo de clock um dos fatores que determinam o desempenho de um processador.


< tamanho do ciclo < tempo de execuo > n de

instrues/seg.

Você também pode gostar