![Page 1: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/1.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1
William Stallings Arquitetura e Organização de Computadores8a Edição
Capítulo 12Estrutura e função do processador
![Page 2: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/2.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 2
Estrutura da CPU
• CPU precisa:– Buscar instruções.– Interpretar instruções.– Obter dados.– Processar dados.– Gravar dados.
![Page 3: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/3.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 3
CPU com barramento de sistemas
![Page 4: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/4.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 4
Estrutura interna da CPU
![Page 5: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/5.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 5
Registradores
• CPU precisa ter algum espaço de trabalho (armazenamento temporário).
• Registradores chamados.• Número e função variam entre projetos de processador.• Uma das principais decisões de projeto.• Alto nível de hierarquia de memória.
![Page 6: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/6.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 6
Registradores visíveis ao usuário
• Uso geral.• Dados.• Endereços.• Códigos condicionais.
![Page 7: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/7.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 7
Registradores de uso geral
• Podem ser de propósito geral verdadeiro.• Podem ser restritos.• Podem ser usados para dados ou endereçamento.• Dados:
– Acumulador.• Endereçamento:
– Segmento.
![Page 8: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/8.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 8
• Torne-os de uso geral:– Aumente flexibilidade e opções do programador.– Aumente tamanho de instrução e complexidade.
• Torne-os especializados:– Instruções menores (mais rápidas).– Menos flexibilidade.
![Page 9: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/9.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 9
Quantos registradores de uso geral?
• Entre 8 −32.• Menos= mais referências à memória.• Mais não reduz as referências à memória e ocupa espaço no
processador.• Veja também RISC.
![Page 10: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/10.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 10
Registradores de código condicional
• Conjuntos de bits individuais.– P.e., resultado da última operação foi zero.
• Podem ser lidos (implicitamente) por programas.– P.e., Jump if zero.
• Não podem (normalmente) ser alterados por programas.
![Page 11: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/11.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 11
Registradores de controle e estado
• Contador de programa.• Registrador de decodificação de instrução.• Registrador de endereço de memória.• Registrador de buffer de memória.
• Revisão: o que todos eles fazem?
![Page 12: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/12.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 12
Modo supervisor
• Intel anel zero.• Modo kernel.• Permite execução de instruções privilegiadas.• Usado pelo sistema operacional.• Não disponível aos programas do usuário.
![Page 13: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/13.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 13
Outros registradores
• Podem ter registradores apontando para:– Blocos de controle de processo (ver S/O).– Vetores de interrupção (ver S/O).
• N.B. Projeto da CPU e projeto do sistema operacional são bastante interligados.
![Page 14: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/14.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 14
Ciclo de instrução
• Revisão.• Stallings, Capítulo 3.
![Page 15: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/15.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 15
Ciclo indireto
• Pode exigir acesso à memória para obter operandos.• Endereçamento indireto requer mais acessos à memória.• Pode ser imaginado como subciclo de instrução adicional.
![Page 16: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/16.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 16
Ciclo de instrução com indireção
![Page 17: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/17.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 17
Diagrama de estado do ciclo da instrução
![Page 18: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/18.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 18
Fluxo de dados (busca de instrução)
• Depende do projeto da CPU.• Em geral:
• Busca:– PC contém endereço da próxima instrução.– Endereço movido para MAR.– Endereço colocado no barramento de endereço.– Unidade de controle solicita leitura de memória.– Resultado colocado no barramento de dados, copiado para MBR,
depois para IR.– Enquanto isso, PC incrementado em 1.
![Page 19: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/19.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 19
Fluxo de dados (busca de dados)
• IR é examinado.• Se endereçamento indireto, ciclo indireto é realizado.
– N bits da extrema direita do MBR transferidos para MAR.– Unidade de controle solicita leitura de memória.– Resultado (endereço do operando) movido para MBR.
![Page 20: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/20.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 20
Fluxo de dados (ciclo de busca)
![Page 21: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/21.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 21
Fluxo de dados (execução)
• Pode tomar muitas formas.• Depende da instrução sendo executada.• Pode incluir:
– Leitura/escrita da memória.– Entrada/saída.– Transferências de registradores.– Operações da ALU.
![Page 22: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/22.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 22
Fluxo de dados (interrupção)
• Simples.• Previsível.• PC atual salvo para permitir retomada após interrupção.• Conteúdo do PC copiado para MBR.• Local especial da memória (p.e., ponteiro de pilha) carregado no
MAR.• MBR gravado na memória.• PC carregado com endereço da rotina de tratamento de
interrupção.• Próxima instrução (primeira do tratador de interrupção) pode
ser obtida.
![Page 23: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/23.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 23
Busca antecipada (prefetch)
• Busca acessando memória principal.• Execução normalmente não acessa memória principal.• Pode buscar próxima instrução durante execução da instrução
atual.• Chamada busca antecipada da instrução.
![Page 24: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/24.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 24
Desempenho melhorado
• Mas, não dobrado:– Busca normalmente mais curta que a execução.• Busca antecipada de mais de uma instrução?– Qualquer salto ou desvio significa que as instruções com
busca antecipada não são as instruções solicitadas.• Acrescente mais estágios para melhorar o desempenho.
![Page 25: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/25.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 25
Pipelining
• Buscar instrução.• Decodificar instrução.• Calcular operandos (ou seja, EAs).• Buscar operandos.• Executar instruções.• Escrever resultado.
• Sobrepor estas operações.
![Page 26: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/26.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 26
Diagrama de tempo para a operação do pipeline da instrução
![Page 27: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/27.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 27
Efeito de desvio condicional na operação do pipeline na instrução
![Page 28: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/28.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 28
Fatores de aceleração com pipeline da instrução
![Page 29: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/29.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 29
Previsão de desvio
RISC, controle microprogramado e muita X86 e ARM No semestre que vem em arquitetura de computadores
![Page 30: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/30.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 30
Pipeline de Intel 80486• Leitura:
– Da cache ou da memória externa.– Colocadas em um de 2 buffers de busca antecipada de 16 bits.– Enche buffer com novos dados quando antigos são consumidos.– Em média, 5 instruções lidas por carga.– Independente de outros estágios para manter buffers cheios.
• Estágio de decodificação 1:– Opcode e informação de modo de endereçamento.– No máximo 3 primeiros bytes da instrução.– Pode direcionar estágio D2 para obter restante da instrução.
• Estágio de decodificação 2:– Expande opcode para sinais de controle.– Cálculo de modos de endereçamento complexos.
• Execução:– Operações da ALU, acesso a cache, atualização de registrador.
• Escrita:– Atualiza registradores e flags.– Resultados enviados à cache e buffers de escrita da interface de barramento.
![Page 31: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/31.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 31
Registradores do Pentium 4
![Page 32: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/32.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 32
Registradores de controle de x86
![Page 33: William Stallings Organização de Computadores 8a Ediçãoifc-camboriu.edu.br/~nildo/arquitetura/Stallings_cap12_Joubert.pdf · – Opcode e informação de modo de endereçamento](https://reader031.vdocuments.com.br/reader031/viewer/2022020114/5befa92e09d3f274038bddb0/html5/thumbnails/33.jpg)
© 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 33
Leitura recomendada
• Exemplos de processador.• Stallings, Capítulo 12.• Sites Web e especificações de fabricante.