organização e arquitetura de computadores capítulo 11 estrutura e funções da cpu
TRANSCRIPT
![Page 1: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/1.jpg)
Organização e Arquitetura de Computadores
Capítulo 11Estrutura e Funções da CPU
![Page 2: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/2.jpg)
Parte I
Funcionalidades da CPURegistradoresCiclo de Instruções
![Page 3: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/3.jpg)
Organização da CPU
![Page 4: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/4.jpg)
Funcionalidades da CPU
Em um ciclo de instruções, envolve-se:• Buscar instruções
CPU lê uma instrução da memória
• Interpretar instruções Instrução é decodificada para determinar a ação
requerida
• Buscar dados Busca dados na memória ou dispositivos de E/S
• Processar dados Execução de uma instrução sobre os dados
• Escrever dados Escrever dados na memória ou dispositivos
![Page 5: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/5.jpg)
Registradores
A CPU deve ter algum espaço para trabalho• armazenamento temporário
Registradores• Número e funções dos registradores variam
entre os projetos dos processadores• Uma das mais importantes decisões de projeto
Duas funções:• Registradores visíveis ao usuário• Registradores de controle e de estado
![Page 6: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/6.jpg)
Registradores visíveis ao usuário
Podem ser referenciados pela linguagem de máquina que a CPU executa
Categorias:• De propósito geral• Dados• Endereços• Códigos de condição
![Page 7: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/7.jpg)
Registradores de propósito geral
Podem ser usados para uma variedade de funções
Qualquer registrador pode conter um operando para uma instrução qualquer
Excessões:• Números em ponto flutuante• Operações com a pilha
Podem ainda ser utilizados para endereçamento
![Page 8: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/8.jpg)
Registradores de Dados
Usados apenas para dados Não podem ser utilizados no cálculo de
endereço de operandos
![Page 9: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/9.jpg)
Registradores de Endereço
Utilizados para endereçamento• Podem ser utilizados como registradores de
propósito geral Exemplos:
• Registrador de segmento• Registradores de Índices• Apontador para o topo da pilha
![Page 10: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/10.jpg)
Registradores de propósito geral: prós e contras
Qual o limite entre definir registradores de propósito geral ou específicos?• Propósito geral: maximiza a flexibilidade das
instruções• Propósito específico: a execução de operação
busca o registrador específico, sendo necessário somente definir qual o registrador específico
• Não existe a melhor solução
![Page 11: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/11.jpg)
Quantos registradores são suficientes?
Mais registradores • permite mais operandos serem tratados na CPU• causam um aumento no tamanho do campo
necessário para especificar o registrador na instrução
Menos registradores• mais referências a memória
Ideal• Entre 8 e 32 • RISC (centenas)
![Page 12: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/12.jpg)
Qual o tamanho do registrador?
Devem ser capazes de armazenar o maior endereço usado no sistema
Registradores de dados devem ser capazes de conter valores da maioria dos tipos de dados• Por exemplo, não é necessário ter
registradores de 64 bits se a maioria dos operações com dados utilizam operandos com 32 ou 16 bits
![Page 13: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/13.jpg)
Registradores de Código de Condição
Flags Conjunto de bits individuais
• e.x. resultado da última operação é zero Pode ser implicitamente lido por
programas• e.x. Jump se zero
Não pode ser (normalmente) configurado por programas
![Page 14: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/14.jpg)
Registradores de Controle e Status
Registradores utilizados durante as fases de busca, decodificação e execução das instruções• Muitos não são visíveis ao usuário• Alguns são visíveis mas não podem ser
alterados Modo de controle Sistema Operacional
![Page 15: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/15.jpg)
Registradores de Controle e Status
Contador de Programa• Program Counter - PC• Contém o endereço da instrução a ser buscada
Registrador de Instrução• Instruction Register – IR• Contém a última instrução buscada
![Page 16: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/16.jpg)
Registradores de Controle e Status
Registrador de endereçamento à memória • Memory address register - MAR• Contém o endereço de uma posição de memória
Registrador de armazenamento temporário de dados• Memory Data/Buffer Register – MBR• Contém uma palavra de dados a ser escrita na
memória ou a palavra lida mais recentemente
![Page 17: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/17.jpg)
Registradores de Controle e Status
Palavra de estado de programa• Program Status Word – PSW• Contém informações de estado:
Sinal: contém o bit de sinal da última operação Zero: indica se o resultado da última operação é zero “Vai-um” Igual: indica se uma comparação lógica resulta em
igualdade Overflow: overflow aritmético Habilitar/Desabilitar interrupção Supervisor: indica se a CPU está executando em modo
supervisor ou usuário
![Page 18: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/18.jpg)
Outros registradores
Outros registradores relacionados ao estado e controle• Registrador para apontar para um bloco de
memória que contém informação de estado adicional (ex., blocos de controle de processos)
• Vetor de interrupções• Registrador indicador de topo de pilha• Registrador para indicar tabela de páginas (no
caso de memória virtual)
![Page 19: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/19.jpg)
Ciclo de Instruções – Ciclo indireto
![Page 20: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/20.jpg)
Ciclo Indireto
Pode precisar da memória o acesso para buscar operandos
Endereçamento indireto requer mais acessos de memória
![Page 21: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/21.jpg)
Fluxo de dados (busca da instrução)
PC contém o endereço da próxima instrução
Endereço é movido para o MAR Endereço é colocado no barramento de
endereço A UC requisita uma leitura na memória Resultado é colocado no barramento de
dados e copiado ao MBR e para o IR Enquanto isso, o PC é incrementado de 1
![Page 22: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/22.jpg)
Ciclo de busca
![Page 23: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/23.jpg)
Fluxo de dados (busca de instruções)
IR é examinado Se o endereçamento é indireto, o ciclo
indireto é feito• Os N bits mais significativos de MBR são
transferidos para MAR• A unidade de controle envia um pedido de
leitura da memória• O resultado (endereço ou operando) é movido
para o MBR
![Page 24: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/24.jpg)
Fluxo de dados (Diagrama do Ciclo Indireto)
![Page 25: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/25.jpg)
Fluxo de dados (Execução)
Pode ter várias formas Depende da instrução que está sendo
executada Deve incluir
• escrita/leitura da memória• Entrada/Saída• Transferência entre registradores• Operações da ULA
![Page 26: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/26.jpg)
Fluxo de dados (interrupção)
O PC atual é salvo para permitir que ele seja restabelecido depois da interrupção
O conteúdo de PC é copiado para o MBR Uma posição especial da memória (stack pointer)
é carregado para o MAR O MBR é copiado para a memória O PC é carregado com o endereço da rotina de
tratamento de interrupção A próxima instrução (primeira da rotina de
tratamento de interrupção) pode ser buscada
![Page 27: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/27.jpg)
Fluxo de dados (diagrama com interrupção)
![Page 28: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/28.jpg)
Estudo de Caso: x86
Gerais
Segmentos
PC
Flags
![Page 29: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/29.jpg)
PSW
![Page 30: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/30.jpg)
PSW
![Page 31: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/31.jpg)
![Page 32: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/32.jpg)
Exercícios
11.1
![Page 33: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/33.jpg)
Parte II
Pipeline
![Page 34: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/34.jpg)
Pipeline
Evolução dos sistemas:• Novos chips• Mais registradores• Cache• Pipeline de Instruções
![Page 35: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/35.jpg)
Pipeline
Idéia semelhante a uma linha de montagem Várias etapas de produção
• Etapas podem ocorrer simultaneamente• Novas entradas são aceitas antes que entradas
previamente aceitas saiam como saídas Instruções possuem diversas etapas
![Page 36: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/36.jpg)
Exemplo
![Page 37: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/37.jpg)
Prefetch: busca antecipada
Execução normalmente não necessita de acessoa à memória
Durante a execução pode-se buscar uma nova instrução
Performance é melhorada• Mas não é duplicada• Busca usualmente mais rápida do que a execução• Qualquer jump ou desvio significa que instruções pré-
buscadas não são instruções necessárias Mais estágios de pipeline para aumentar a
performance
![Page 38: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/38.jpg)
Pipelining
BI - Busca de instruções DI - Decodificação de instruções CO - Cálculo de operandos BO - Busca de operandos EI - Execução de instruções EO –Escrita de Operando
Sobreposição dessas operações
![Page 39: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/39.jpg)
Timing of Pipeline
Assume-se que:• Todas as instruções usem
os 6 estágios• Memória é compartilhada• Todos os estágios possam
ser executados em paralelo
Problemas:• Estágios possuem durações
diferentes• Operações de desvio• Interrupção
![Page 40: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/40.jpg)
Pipeline: efeito de uma instrução de desvio
![Page 41: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/41.jpg)
Tratamento de Desvios e Interrupções
![Page 42: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/42.jpg)
Desempenho
Tempo de ciclo • Tempo requerido para avançar um conjunto de
instruções um estágio por meio de pipeline
m : Atraso máximo de estágio
• k: número de estágios• d: tempo de propagação de um estágio para
outro
![Page 43: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/43.jpg)
Desempenho
Tempo de execução de n instruções:
Speedup
![Page 44: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/44.jpg)
Desempenho
![Page 45: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/45.jpg)
Lidando com desvios
Desvios: principal problema do uso de pipeline
Algumas abordagens para amenizar o problema:• Múltiplos Fluxos• Antecipação de busca da instrução alvo do
desvio• Memória para laços de repetição• Previsão de Desvios• Atraso de Desvio (delayed branch)
![Page 46: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/46.jpg)
Múltiplos Fluxos
Duplicar estágios iniciais do pipeline Pré-buscar cada desvio em pipelines
separadas Utilizar as pipelines apropriadas Problemas:
• Leva a contenção de registradores e do barramento
• Múltiplos saltos levam a futuras necessidades dos pipelines
![Page 47: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/47.jpg)
Antecipação de busca
Destino dos desvios são buscados antecipadamente
Mantém destino em um registrador até que o desvio seja executado
![Page 48: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/48.jpg)
Memória para laços de repetição
Uma memória rápida armazena as últimas n instruções
Checa-se esta memória antes de buscar da memória principal
Muito bom para pequenos loops ou jumps Funcionamento semelhante a uma cache
de instruções
![Page 49: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/49.jpg)
Previsão de Desvios
Várias técnicas:• Prever que desvios nunca serão tomados• Prever que desvios sempre serão tomados• Prever se desvios serão tomados ou não
baseado no código da operação• Prever desvios com base em desvios tomados
ou não tomados• Prever desvios baseados em históricos
![Page 50: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/50.jpg)
Previsão de Desvios
Prever que desvios nunca serão tomados• Sempre busca a próxima instrução
Prever que desvios sempre serão tomados• Assume que aquele jump irá acontecer• Sempre busca a instrução de destino
![Page 51: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/51.jpg)
Previsão de Branches
Previsto pelo código de operação• Algumas instruções são mais prováveis de
resultarem em um jump do que outras• Tem alta taxa de acerto
Prever se desvios serão tomados ou não baseado no código da operação• Baseado na história prévia• Bom para loops
![Page 52: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/52.jpg)
Previsão de Desvios
Desvios atrasados• Rearranja as instruções• Só executa quanto necessário
![Page 53: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/53.jpg)
Pipeline do 486
5 estágios:• Busca de Instrução• Decodificação 1• Decodificação 2• Execução de Instrução• Escrita de Resultado
![Page 54: Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU](https://reader036.vdocuments.pub/reader036/viewer/2022081420/552fc142497959413d8dfad6/html5/thumbnails/54.jpg)
Exercícios (entregar final da aula)
11.1 11.2 11.3 11.6