42
William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU

William Stallings Organização de computadores digitais Estrutura e funcao da... · o 1983 -RISC II: 32 bit, 5 stage pipeline, 40,760 transistors, 3 MHz, 3 micron NMOS, ... oCiclo

Embed Size (px)

Citation preview

William Stallings Organização de computadores digitais

Capítulo 11Estrutura e função da CPU

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

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 exampleso Stallings Chapter 11o Web pages etc.