Cap. 11 Estrutura e funcao da CPU

Propaganda
William Stallings
Organização de
computadores digitais
Capítulo 11
Estrutura e função da CPU
Encruzilhada na arquitetura
de computadores 2004/2005
Antiga opinião
Nova visão
a energia é de graça, os transistores são
caros
a energia é cara (power wall), transistores
são de graça (isto é, pode-se colocar mais
deles em um chip do que é possível ligar)
Aumento do paralelismo no nível da
instrução: compiladores, inovações da
Unidade de Controle (out-of-order,
execução especulaticva, VLIW)
“lei da diminuição” dos retornos sobre mais
HW for ILP (ILP) wall
Multiplicação é lenta, memória é rápida
Multiplicação é rápida, a memória é lenta
(memory wall) – 200 ciclos de clock para a
memória DRAM e 4 para multiplicar
A performance dos (uni) processadores 2x
/ 1.5 anos
Power+ILP+Memory walls = brick wall ->
(multi) processadores 2x CPU / 1,5 anos,
pois CPUs simples são mais power efficient
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Transputer announcement
RISC revolution
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Mudança de paradigma:
processador é o novo transistor?
o 1971 – Intel 4004: 4 bit processor, 2312
transistores, 0.4 MHz, 10 micron PMOS, 11
mm^2 chip
o 1983 - RISC II: 32 bit, 5 stage pipeline,
40,760 transistors, 3 MHz, 3 micron NMOS,
60 mm^2 chip
o 2004 – Intel: 2312 RISC II + FPU + Cache
0.065 micron CMOS, 125 mm^2 chip
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
History of general purpose CPUs
http://en.wikipedia.org/wiki/History_of_general_purpose_CPUs
CPU design
http://en.wikipedia.org/wiki/CPU_design
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Estrutura da CPU
o
o
o
o
Organização do processador
Registradores
Ciclo de instrução e pipeline
Organização do Pentium II e PowerPC
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Estrutura da CPU
o Ações que a CPU deve executar:
o Busca de instrução
o Interpretação de instrução
o Busca de dados na memória ou I/O
o Processamento de dados: operação
aritmética ou lógica sobre os dados
o Escrita de dados na memória ou I/O
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores
o CPU deve ter espaço de trabalho temporário
o Este espaço é fornecido pelos
Registradores
o O número e funções dos registradores varia
grandemente entre os processadores
o Esta é uma das decisões determinantes de
um projeto
o Os registradores representam o topo da
hierarquia de memória
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
CPU e o barramento do sistema
Barramento do sistema
ALU faz o
processamento do
dados
CU controla não só a
transferência de dados
e instruções para
dentro e fora da CPU,
mas também a própria
operação da ALU
Registradores:
memória de trabalho
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Estrutura interna da CPU
o Barramento
interno
o CPU: unidade
de controle,
ULA e
registradores
o Computador:
CPU, I/O e
memória
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Organização dos registradores
o Hierarquia de memória
o Níveis altos: mais cara e rápida
o Níveis inferiores: menos cara e lenta
o Registradores: acima da memória
principal e do cache
o Registradores visíveis para o usuário
o Registradores de controle e estado
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores visíveis ao usuário
o Permitem ao programador de linguagem de
montagem (assembler) ou de máquina
minimizar referências à memória, pela
otimização do uso dos registradores
o
o
o
o
Registradores de Propósito Geral
Registradores de Dados
Registradores de Endereços
Registradores de Códigos de Condição
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de propósito geral
o Podem ser verdadeiramente de propósito geral:
o usados pelo programador;
o ortogonais ao código de operação -- qualquer
registrador pode conter um operando para qualquer
código de operação.
o Podem haver algumas restrições:
o registradores dedicados para operações sobre ponto
flutuante ou operações sobre a pilha.
o Podem ser utilizados para dados ou cálculo de
endereçamento:
o registradores de segmento -- contém o endereço base
de um segmento;
o registradores de índice -- utilizados para
endereçamento indexado;
o apontador de topo de pilha -- aponta o topo da pilha.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de propósito geral:
decisões de projeto
o Fazendo eles de propósito geral:
o aumenta o tamanho da instrução e sua
complexidade;
o aumenta a flexibilidade e as opções do
programador.
o Fazendo eles especializados:
o permite referência implícita aos registradores;
o instruções menores e mais rápidas;
o menor flexibilidade na programação.
o A tendência tem sido utilizar registradores
especializados.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de propósito geral:
quantos registradores?
o O número de registradores afeta o projeto do
conjunto de instruções: quanto maior, maior o
número de bits para especificar os operandos.
o O número aceito é entre 8 e 32.
o Poucos registradores implica em mais
referências à memória.
o Mas muitos registradores não reduz
necessariamente o número de referências à
memória.
o Algumas arquiteturas RISC podem ter centenas
de registradores.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de propósito geral:
qual o tamanho apropriado?
o Grande o suficiente para conter o maior
endereço do sistema.
o Grande o suficiente para conter uma
palavra.
o É desejável que se possa combinar dois
registradores de dados para conter
valores de tamanho duplo:
o em linguagem C
o double int a;
o long int a;
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de propósito geral:
códigos de condição
o Conjuntos de bits individuais (flags),
atualizados pelo hardware da CPU como
resultado de operações:
o e.g. se o resultado da última operação
aritmética é positivo, negativo, zero ou se
ocorreu overflow.
o Podem ser lidos (implicitamente) por
programas e utilizados em operações de
desvio.
o Não podem (em geral) ser setados por
programas.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Registradores de controle e estado
o São utilizados pela CU para controlar a operação da CPU
e por programas do SO para controlar a execução de
programas.
o Não são visíveis ao usuário na maioria das máquinas.
o Program Counter (PC): o endereço da instrução a ser
buscada.
o Instruction Register (IR): a última instrução buscada.
o Memory Address Register (MAR): o endereço de uma
posição de memória.
o Memory Buffer Register (MBR):um dado a ser escrito na
memória ou lido recentemente.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Palavra de estado de programa
(Program Status Word – PSW)
o O PSW é um conjunto de bits que inclui os
Códigos de Condição e outras informações de
estado:
o
o
o
o
o
o
o
Sinal do último resultado;
Zero;
Carry (vai um);
Igual;
Overflow;
Habilita ou desabilita Interrupções;
Supervisor ou usuário.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Outros registradores
o Dependendo da CPU, podem existir outros
registradores de uso específico:
o
o
o
o
Blocos de controle de processo (visto em SO);
Vetores de interrupção (visto em SO);
Topo de pilha;
Controle de operações de I/O.
o No projeto da organização dos registradores,
as necessidades do SO são determinantes.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Exemplo da organização dos registradores
em microprocessadores
Processadores MC68000, 8086 (16 bits) e 80386 (32 bits)
MC68000
(registradores
separados, mas de
uso misto:
flexibilidade)
endereços e
dados separados
dados (e índices)
de 8, 16 ou 32 bits
A7 é utilizado
como apontador de
pilha (para o
sistema e para o
usuário)
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Exemplo da organização dos registradores
em microprocessadores
Processadores MC68000, 8086 (16 bits) e 80386 (32 bits)
8086 (registradores
de uso especial,
poucas exceções:
menor flexibilidade)
dados de 16 ou 8
bits
apontadores e
índices de 16 bits
80386: usa
registradores de 32
bits que retém a
organização do 8086,
para compatibilidade
Não existe solução
sempre ideal
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Numeração dos processadores:
novas nomenclaturas
Usar apenas o clock interno como indicativo de desempenho
fornece uma idéia muito vaga da capacidade do
processador.
Modelos com o mesmo clock, só que com cache ou outros
recursos são muito diferentes no desempenho, pois o que
determina a eficiência de um chip é o conjunto de
características e não apenas uma.
AMD adotou a nomenclatura PR (Performance Reference) a
partir do processador Athlon XP
A Intel também adotou um modelo de nomenclatura
diferente: http://www.intel.com/portugues/
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Memórias cache
o Cache L1 (Nível 1 ou cache interno): é a
memória cache que vem dentro do processador.
o Cache L2 (Nível 2 ou cache externo): para
aumentar a eficiência do cache L1, surge uma
memória cache fora do processador: o cache L2.
o Atualmente, os processadores trazem o cache L2
embutido na CPU, fazendo com que as terminologias
"interno" e "externo" percam o sentido.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Performance Reference:
isso já aconteceu antes
o Quando a Intel lançou o processador Pentium, a AMD e a Cyrix
tentaram manter seus processadores 486 por mais tempo no
mercado.
o Para isso, acrescentaram recursos nesses processadores e os
lançaram com o nome de 586, como se estes fossem equivalentes
ao Pentium. No entanto, o Pentium era superior.
o Os processadores atuais da AMD têm desempenho equivalente e,
em alguns casos, superior aos modelos concorrentes da Intel.
o Exemplo: o Athlon XP 2800+ tem clock interno de 2250 MHz, mas
a AMD não usa o nome Athlon XP 2250 MHz, pois quer indicar que
o processador tem desempenho equivalente a um Pentium 4 de
2800 MHz.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Exemplo
Repare que os valores de clock interno são diferentes dos valores
apontados nos nomes.
Note que os últimos dois processadores possuem clock interno e externo
iguais, mas a quantidade de cache L2 é diferente.
Processador
Clock interno
Clock externo
Sempron 2200+
1,5 GHz
333 MHz
Sempron 2500+
1,58 GHz
333 MHz
Sempron 2800+
2 GHz
333 MHz
256 Kb
Sempron 3000+
2 GHz
333 MHz
512 Kb
OCD – Organização de Computadores Digitais - 2009
Cache L2
Prof. Camilo Rodrigues Neto
Ciclo de Instrução
o Já o vimos no capítulo 3 do Stallings
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Ciclo Indireto
o Pode ser necessário vários acessos à
memória para buscar múltiplos
operandos.
o No endereçamento indireto também são
necessários vários acessos à memória.
o São como que sub ciclos de instrução.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Diagrama de estados para o
ciclo de instrução
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: fluxo
dos dados
o Depende do projeto da CPU
o Em geral, a busca de uma instrução (fetch):
o PC contem o endereço da próxima instrução;
o o endereço é carregado no MAR;
o o endereço é disponibilizado no barramento de
endereços;
o a unidade de controle solicita uma operação de
leitura da memória;
o o resultado é colocado no barramento de dados,
copiado no MBR e então para o IR;
o o PC é incrementado do tamanho da instrução
executada.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: fluxo
dos dados
o O IR é examinado
o Se o endereçamento é indireto, o “ciclo
indireto é realizado”:
o os N bits mais significativos do MBR é
transferido para o MAR;
o a unidade de controle requisita uma
operação de leitura na memória;
o o resultado (isto é, o endereço do
operando) é movido para o MBR.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: fluxo
dos dados
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: fluxo
indireto
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: execução
o As instruções podem assumir várias
formas.
o Depende da instrução em execução.
o Podem incluir:
o operação de leitura ou escrita na
memória;
o operação de Input/Output;
o transferências entre registradores;
o operações com a ALU.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Busca de instruções: interrupção
o São simples e previsíveis:
o o conteúdo do PC é salvo para permitir o retorno
ao ponto anterior de execução;
o o conteúdo do PC é copiado para MBR;
o o ponto de salvamento é carregado no MAR (e.g.
stack pointer);
o MBR é escrito na memória;
o o PC é carregado com o endereço da rotina de
manipulação de interrupções;
o a próxima instrução, a primeira do manipulador
de interrupções, pode ser carregado.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Fluxo de dados: diagrama de
interrupção
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Pré busca (prefetch)
o A busca da próxima instrução acessa a
memória principal.
o A execução em geral não acessa a memória
principal.
o Portanto, pode-se buscar a próxima
instrução durante a execução da instrução
corrente.
o Isto é chamado de “instruction prefetch”.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Aumento da performance?
o Aumenta a performance, mas não a dobra:
o A operação de busca (fetch) é em geral mais
curta que a execução;
o Em casos de “jump” ou “branch” as instruções
pré buscadas (prefetched) não serão as
instruções necessárias.
o Pode-se adicionar mais
melhorar a performance.
OCD – Organização de Computadores Digitais - 2009
estágios
para
Prof. Camilo Rodrigues Neto
Pipelining
o
o
o
o
o
o
Fetch instruction
Decode instruction
Calculate operands
Fetch operands
Execute instructions
Write result
o Overlap these operations
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Timing of Pipeline
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Branch in a Pipeline
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Foreground Reading
o Processor examples
o Stallings Chapter 11
o Web pages etc.
OCD – Organização de Computadores Digitais - 2009
Prof. Camilo Rodrigues Neto
Download