Você está na página 1de 86

William Stallings

Organizao e Arquitetura de
Computadores
8a Edio

Captulo 12
Funo e Estrutura do
Processador
Estrutura da CPU
A CPU deve:
Buscar instrues
Interpretar instrues
Buscar dados
Processar dados
Escrever dados
CPU Com os Barramentos do Sistema
Estrutura Interna da CPU
Registradores
A CPU deve ter algum espao de trabalho
(armazenamento temporrio)
Eles so os registradores
A quantidade e a funo dos registradores
variam conforme os projetos de
processadores.
Isso uma das maiores decises de
projeto.
Esse o nvel mais alto na hierarquia de
memria.
Registradores Visveis ao Usurio
Propsito geral
Dados
Endereos
Cdigos de Condio
Registradores de Propsito Geral (1)
Podem ter propsito geral verdadeiro
Podem ser restritos
Podem ser usados para dados ou
endereamento
Dados
Acumulador
Endereamento
Segmento
Registradores de Propsito Geral (2)
Faa-os de propsito geral
Aumente a flexibilidade e as opes do
programador
Aumente o tamanho da instruo e a
complexidade
Faa-os especializados
Instrues menores (mais rpidas)
Menos flexibilidade
Quantidade de Registradores de
Propsito Geral
Entre 8 - 32
Menos = mais referncias de memria
Aumentar a quantidade no diminue as
referncias de memria e absorve o real
domnio do processador
Veja tambm RISC
Tamanho de um Registrador de
Propsito Geral
Grande o suficiente para armazenar um
endereo completo
Grande o suficiente para armazenar uma
palavra completa
Geralmente possvel combinar dois
registradores de dados. Em C:

double int a;
long int a;
Registradores de Cdigo de Condio
Conjuntos de bits individuais
por exemplo: o resultado da ltima operao
foi zero
Pode ser lido (implicitamente) pelos
programas
por exemplo: desvie se zero
No pode ser modificado por programas
(geralmente)
Registradores de Controle e Status
Contador de Programa (PC)
Registrador de Instrues (IR)
Memory Address Register (MAR)
Memory Buffer Register (MBR)

Reviso: Qual a funo destes?


Palavra de Status de Programa
Um conjunto de bits.
Inclui cdigos de condies.
Sinal do ltimo resultado.
Zero
Vai um
Igual
Overflow
Interrupes habilitadas/desabilitadas
Supervisor
Modo de Supervisor
Intel ring zero
Modo Kernel
Permite que instrues privilegiadas
sejam executadas
Usado pelo Sistema operacional
No disponvel aos programas de usurio
Outros Registradores
Podem existir registradores apontando
para:
Process control blocks (veja sistemas
operacionais)
Vetores de interrupo (veja sistemas
operacionais)

Os projetos da CPU e do Sistema


operacional esto intimante ligados
Exemplos de Organizaes de
Registradores
Ciclo de Instruo
Veja o captulo 3!!!
Ciclo Indireto
Pode necessitar de acesso memria para
buscar operandos
O endereamento indireto necessita de
mais acessos memria
Isso pode ser pensado como um subciclo
adicional de instruo
Ciclo de Instruo com Indireo
Diagrama de Estados do Ciclo de
Instruo
Fluxo de Dados (Busca de Instruo)
Depende do projeto da CPU
Em geral eis o fluxo da busca:
PC contm o endereo da prxima instruo
O endereo copiado para o MAR
O endereo colocado no barramento de
endereo
A unidade de controle requisite uma leitura
memria
O resultado colocado no barramento de
dados, copiado para o MBR, e ento para o IR
Enquanto isso o PC incrementado
Fluxo de Dados (Busca de Dados)
IR examinado
Se o endereamento indireto, um ciclo
indireto realizado
Os bits mais direita do MBR so transferidos
para o MAR
A unidade de controle requisite uma leitura
memria
O resultado (endereo do operando) copiado
para o MBR
Fluxo de Dados (Diagrama de Busca)
Fluxo de Dados (Diagrama Indireto)
Fluxo de Dados (Execuo)
Pode tomar vrias formas
Depende da instruo sendo executada
Pode incluir
Escrita/leitura de memria
Entrada/Sada
Transferncia entre registradores
Operaes da ULA
Fluxo de Dados (Interrupo)
Simples
Previsvel
O contedo atual do PC salvo para
permitir voltar ao ponto em que estava
O contedo do PC copiado para o MBR
Uma posio especial de memria (SP)
carregado para o MAR
O MBR escrito na memria
O PC carregado com o endereo da
rotina de manipulao de interrupo
A prxima instruo (primeira do
manipulador de interrupo) pode ser
recuperada
Fluxo de Dados (Diagrama de
Interrupo)
Busca Antecipada
Busca acessando a memria principal
A execuo normalmente no acessa a
memria principal
Pode buscar a prxima instruo durante
a execuo da atual
Isso chamado de busca antecipada de
instruo
Desempenho Melhorado
Mas no dobrado:
a busca normalmente mais curta que a
execuo;
pr-busca de mais que uma instruo?
qualquer desvio faz com que as instrues
buscadas antecipadamente no sejam as
necessrias
Adiciona mais estgios para melhorar o
desempenho
Pipeline de Dois Estgios
Pipeline
Busca instruo
Decodifica instruo
Calcula os operandos
Busca os operandos
Executa instrues
Escreve resultado

Sobreponha estas operaes


Diagrama de Tempo para Operao de
Pipeline de Instrues
O Efeito de um Desvio Condicional na
Operao de um Pipeline de Instruo
Pipeline de
Seis Estgios
Representao Alternativa de Pipeline
Fatores de
Velocidade em
Pipelinine
Problemas no Pipeline
Pipeline, ou alguma poro do pipeline,
deve parar
Tambm conhecido como a bolha do
pipeline
Tipos de problemas
Recursos
Dados
Controle
Problemas de Recurso
Duas (ou mais) instrues no pipeline
precisam do mesmo recurso
Execuo serial melhor que paralela para
parte do pipeline
Tambm chamado de problema estrutural
Por exemplo assuma um pipeline simples
de cinco estgios
Cada estgio leva um ciclo do relgio
O caso ideal uma nova instruo entrar
no pipeline a cada ciclo do clock
Problemas de Recurso
Assuma que a memria principal tem uma
porta nica
Assuma que buscas de instrues e
leituras e escritas de dados so realizadas
uma por vez
Ignore a memria cache
A leitura ou escrita de operando no pode
ser realizada em paralelo com a busca de
instruo
Exemplos de Problemas de Recursos
Problemas de Recurso
O estgio de busca de instruo deve ficar
ocioso por um ciclo buscando I3
Mltiplas instrues prontas para entrar
na fase de execuo de instruo
ULA nica
Uma soluo: aumente os recursos
disponveis
Mltiplas portas de memria principal
Mltiplas ULA
Problemas de Dados
Conflito ao acessar uma localizao de
operando
Duas instrues a serem executadas em
sequncia
Ambas acessam um operando de
registrador ou memria
Se ocorre em uma sequncia estrita,
nenhum problema acontece
Problemas de Dados
Se ocorre em um pipeline, o valor do
operando poderia ser atualizado de tal
forma que produz um resultado diferente
de uma execuo estritamente sequencial
Por exemplo, em Assembly x86:
ADD EAX, EBX /* EAX = EAX + EBX
SUB ECX, EAX /* ECX = ECX EAX
Problemas de Dados
A instruo ADD no atualiza EAX at o
final do estgio 5, no ciclo de clock 5
A instruo SUB precisa do valor no incio
do seu estgio 2, no ciclo de clock 4
O pipeline deve aguardar por dois ciclos
de clock
Sem hardware especial e algoritmos de
preveno especficos, isso resulta em um
uso ineficiente do pipeline.
Exemplo de Problema de Dados
Tipos de Problemas de Dados
Ler aps escrever (RAW), dependncia
verdadeira
Uma instruo modifica um registrador ou uma
posio de memria

A prxima instruo l dados nesta posio

Problema se a leitura ocorrer antes da escrita


Tipos de Problemas de Dados
Escrever aps ler (RAW), ou
antidependncia
Uma instruo l um registrador ou posio de
memria

A instruo aps escreve na posio

Problema se a escrita completa-se antes da


leitura
Tipos de Problemas de Dados
Escrever aps escrever (RAW), ou
dependncia de sada
Duas instrues escrevem na mesma posio

Problema se a escrita toma lugar em ordem


contrria da sequncia pretendida

O exemplo anterior o problema de RAW

Veja tambm o captulo 14


Problema de Controle
Tambm conhecido como problema de
desvio
O Pipeline toma deciso errada com
relao previso de desvio
Traz instrues ao pipeline que devem ser
descartadas logo depois
Meios de lidar com desvios
Mltiplos fluxos
Busca antecipada do alvo do destino
Buffer de lao
Previso de desvio
Desvio atrasado
Fluxos Mltiplos
Ter dois pipelines
Fazer busca antecipada de cada
possibilidade do desvio em um pipeline
separado
Usar o pipeline apropriado

Isso leva conteno de barramento &


registro
desvios mltiplos levam necessidade de
mais pipelines
Busca Antecipada do Alvo do Desvio
O alvo do desvio buscado
antecipadamento, alm da instruo aps
o desvio.
O alvo mantido at que o desvio seja
executado
Usado pelo IBM 360/91
Buffer de Lao
Memria muito rpida
Mantido pelo estgio de busca do pipeline
Verifica o buffer antes de buscar na
memria
Muito bom para laos ou desvios
pequenos
Parece uma memria cache
Usado no CRAY-1
Exemplo de Buffer de Lao
Previso de Desvio Abordagem Esttica
Previso nunca tomada
Assume que o desvio no ocorrer
Sempre busca a prxima instruo
68020 & VAX 11/780
VAX no fazia a busca antecipada aps um
desvio se resultasse em falta de pgina
(projeto de sistema operacional X projeto de
CPU)
Previso sempre tomada
Assume que o desvio ocorrer
Sempre busca a instruo alvo
Previso de Desvio Abordagem Esttica
Previso por Cdigo de Operao
Algumas instrues tm maior probabilidade
de resultar em um desvio do que outras
Pode-se conseguir 75% de successo
Previso de Desvio Abordagem Dinmica
Chave tomada/no tomada
Baseada na histria
Boa para laos
Refinada pelo histrico de desvio em dois
nveis ou baseado em correlao
Baseado em correlao
Em desvios de fechamento de lao, a histria
uma boa previso
Em estruturas mais complexas, a direo do
desvio est correlacionada com a dos desvios
relacionados
Tambm usa a hisria de desvios recentes
Previso de Desvio Abordagem Dinmica
Desvio Adiado
No execute o desvio at que seja necessrio
Rearranje instrues
Examinada no captulo 13 - RISC
Fluxograma de Previso de Desvio
Diagrama de Estados de Previso de
Desvio
Lidando com
Desvios
Pipeline no Intel 80486
Busca
Instrues so obtidas da memria cache memria externa
Elas so colocadas em um dos dois buffers de busca
antecipada de 16 bytes
O buffer preenchido assim que dados so consumidos pelo
primeiro estgio de decodificao de instruo
As instrues podem ocupar de 1 a 11 bytes
Em mdia h 5 instrues no buffer
Este estgio independente dos outros para manter o buffer
sempre cheio
Pipeline no Intel 80486
Estgio de decodificao 1
Toda informao de cdigo de operao e modo de
endereamento decodificada neste estgio
Esta informao est, no mximo, nos 3 primeiros bytes de
cada instruo
Pode direcionar o estgio de decodificao 2 para pegar o
resto da instruo (dados imediatos e de deslocamento)
Estgio de decodificao 2
Expande os cdigos de operao em sinais de controle
Computa os modos de endereamento mais complexos
Execuo
Operaes da ULA, acesso memria cache, atualizao de
registradores.
Escrita
Atualiza os registradores e flags de estado modificados no
processo de execuo anterior
Eventuais resultados so enviados memria cache e a
interface de barramento escreve nos buffers
concomitantemente
Trs Exemplos de Pipeline no 80486

a) Sem atraso de carga de dados no pipeline

b) Atraso de carga de apontador

c) Temporizao de instruo de desvio


Registradores do Pentium II
a) Unidade de inteiros no modo 32 bits

Tipo Quantidade Comprimento (bits) Propsito

Propsito Geral 8 32 Genricos


Segmento 6 16 Seletores de segmento
EFLAGS 1 32 Bits de estado e controle
Ponteiro da instruo 1 32 Ponteiro da instruo

b) Unidade de ponto flutuante

Tipo Quantidade Comprimento (bits) Propsito

Numrico 8 80 Nmeros de ponto flutuante


Controle 1 16 Bits de controle
Estado 1 16 Bits de estado
Palavra de marcao 1 16 Especifica o contedo de
registradores numricos

Ponteiro da instruo 1 48 Aponta para a instruo


interrompida pela exceo

Ponteiro de dados 1 48 Aponta para o operando


interrompido pela exceo
Registrador EFLAGS
Registradores de Controle
Mapeamento de Registrador do MMX
MMX usa diversos tipos de dados de 64
bits
Usa campos de endereos de registrador
de 3 bits
8 registradores
Nenhum registrador especfico MMX
Mapeamento para os registradores de 64 bits
de ordem baixa (mantissa)
8 registradores MMX so formados
Mapeamento dos Registradores MMX
para Registradores de Ponto Flutuante
Etiqueta
de ponto flutuante Registradores de ponto flutuante

Registradores MMX
Processamento de Interrupo do Pentium
Interrupes
Mascarveis
No mascarveis
Excees
Detectadas pelo processador
Programadas
Tabela de vetor de interrupes
Cada tipo de interrupo tem um nmero
ndice para a tabela de vetor
256 * 32 bit vetores de interrupo
5 classes de prioridade
Atributos ARM
RISC
Matriz moderada de registradores uniformes
Mais que a maioria dos CISC, menos que muitos RISC
Modelo carrega/armazena
Operaes realizadas em operandos apenas em
registradores
Instruo uniforme de comprimento fixo
Conjunto padro de 32 bits e 16 bits Thumb
Deslocamento ou rotao pode pr-processar
registradores fonte
ULA separada e unidades de deslocamento
Atributos ARM
Pequena quantidade de modos de
endereamento
Todos os endereos de carga/armazenamento dos
registradores e campos de instrues
Nenhum endereamento indireto ou indexado
envolvendo valores em memria
Endereamento de auto-incremento e auto-
decremento
Melhora os laos
Execuo condicional de instrues minimiza os
desvios condicionais
Reduo no descarte de pipeline
Organizao ARM Simplificada
Organizao do Processador ARM
Muitas variaes dependendo da verso do ARM
Dados trocados entre processador e memria
atravs do barramento de dados
Item de dados (carrega/armazena) ou instruo
(busca)
Instrues passam pelo decodificador antes da
execuo
Organizao do Processador ARM
Pipeline e gerao do sinal de contrle na unidade
de controle
Dados vo para o arquivo de registrador
Conjunto de registradores de 32 bit
Byte & sinal de dados em complemento de dois de
metade de palavra estendidos
Tipicamente dois registradores fonte e um de
resultado
Rotao ou deslocamento antes da ULA
Modos do Processador ARM
Usurio
Privilegiado
6 modos
SO pode adequar uso de software bsico
Alguns registradores so dedicados para cada modo
privilegiado
Mudanas de contexto mais rpidas
Exceo
5 dos modos privilegiados
Entra em certas excees
Substitui alguns registradores por
registradores de usurio
Evita corrupo
Modos Privilegiados
Modo de sistema
No exceo
Usa os mesmos resgistradores do modo de usurio
Pode ser interrompido por...
Modo supervisor
SO
Interrupo de software usada para invocar servios do
sistema operacional
Modo de Aborto
Faltas de memria
Modos Privilegiados
Modo indefinido
Tenta instruo que no suportada pelo coprocessador de
ncleo inteiro
Modo de interrupo rpida
Sinal de interrupo da fonte de interrupo rpida designada
Interrupo rpida no pode ser interrompida
Pode interromper uma interrupo normal
Modo de interrupo
Sinal de interrupo de qualquer outra fonte de interrupo
Modos

Modos Privilegiados

Modos de exceo

Tabela Usurio Sistema Supervisor Aborto Indefinido Interrupo Int. Rpida


de R0 R0 R0 R0 R0 R0 R0

Organiza R1 R1 R1 R1 R1 R1 R1

o de
R2 R2 R2 R2 R2 R2 R2
R3 R3 R3 R3 R3 R3 R3
Registra R4 R4 R4 R4 R4 R4 R4

dores R5 R5 R5 R5 R5 R5 R5

ARM
R6 R6 R6 R6 R6 R6 R6
R7 R7 R7 R7 R7 R7 R7
R8 R8 R8 R8 R8 R8 R8_fiq
R9 R9 R9 R9 R9 R9 R9_fiq
R10 R10 R10 R10 R10 R10 R10_fiq
R11 R11 R11 R11 R11 R11 R11_fiq
R12 R12 R12 R12 R12 R12 R12_fiq
R13 (SP) R13 (SP) R13_svc R13_abt R13_und R13_irq R13_fiq
R14 (LR) R14 (LR) R14_svc R14_abt R14_und R14_irq R14_fiq
R15 (PC) R15 (PC) R15 (PC) R15 (PC) R15 (PC) R15 (PC) R15 (PC)
CPSR CPSR CPSR CPSR CPSR CPSR CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq
Organizao de Registrador ARM
37 registradores x 32-bit
31 registradores de propsito-geral
Alguns tm propsitos especiais
I.e. PC
Seis registradores de status de programa
Registradores em bancos parcialmente
sobrepostos
Modo do processador determina o banco
16 registradores numerados e um ou dois
registradores de status de programa
visveis
Uso Geral de Registrador
R13 normalmente apontador de pilha (SP)
Cada modo de exceo tem seu R13
R14 registrador de ligao (LR)
Subrotina e endereo de retorno de modo de
exceo
R15 contador de programas (PC)
CPSR
CPSR registrador de statud de processo
Modos de exceo tm SPSR dedicado
16 msb so flags de usurio
Cdigos de condio (N,Z,C,V)
Q overflow ou saturao em algumas
instrues SMID
J instrues Jazelle (8 bit)
GEE[3:0] SMID usa [19:16] como flag de
maior que ou igual
CPSR
16 lsb flags de sistema para modos
privilegiados
E endian
Desabilita interrupo
T Instruo normal ou Thumb
Modo
ARM CPSR e SPSR
Processamento de Interrupo
(Exceo) ARM
Mais que uma exceo permitida
Sete tipos
Execuo forada dos vetores de exceo
Mltiplas excees manipuladas em
ordem de prioridade
Processamento de Interrupo
(Exceo) ARM
Processador para a execuo aps a
instruo atual
O estado do processador preservado no
SPSR para exceo
O endereo da instruo que est para
executar colocado no registrador de ligao
O retorno ocorre pela movimentao de SPSR
to CPSR e R14 para o PC
Leitura Adicional
Exemplos de processadores
Captulo 12 do livro de William Stallings
Especificaes e sites na web de
fabricantes