Upload
hoangkien
View
213
Download
0
Embed Size (px)
Citation preview
OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto
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
RISC revolution
Transputer announcement
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
History of general purpose CPUshttp://en.wikipedia.org/wiki/History_of_general_purpose_CPUs
CPU designhttp://en.wikipedia.org/wiki/CPU_design
OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto
OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto
Estrutura da CPU
o Organização do processadoro Registradoreso Ciclo de instrução e pipelineo 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çãoo Interpretação de instruçãoo Busca de dados na memória ou I/Oo 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árioo 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óriao Níveis altos: mais cara e rápidao Níveis inferiores: menos cara e lenta
o Registradores: acima da memória principal e do cache o Registradores visíveis para o usuárioo 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 Registradores de Propósito Geralo Registradores de Dados o Registradores de Endereços o 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 Sinal do último resultado;o Zero;o Carry (vai um);o Igual; o Overflow;o Habilita ou desabilita Interrupções;o 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 Blocos de controle de processo (visto em SO);o Vetores de interrupção (visto em SO);o Topo de pilha;o 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): é amemó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 Cache L2Sempron 2200+ 1,5 GHz 333 MHzSempron 2500+ 1,58 GHz 333 MHzSempron 2800+ 2 GHz 333 MHz 256 KbSempron 3000+ 2 GHz 333 MHz 512 Kb
OCD – Organização de Computadores Digitais - 2009 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 CPUo 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
o O IR é examinadoo 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.
Busca de instruções: fluxo dos dados
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
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.
Busca de instruções: execução
OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto
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.
Busca de instruções: interrupção
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 estágios para melhorar a performance.
OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto
Pipelining
o Fetch instructiono Decode instructiono Calculate operandso Fetch operandso Execute instructionso Write result
o Overlap these operations