54
Organização e Arquitetura de Computadores Capítulo 11 Estrutura e Funções da CPU

Organização e Arquitetura de Computadores

Embed Size (px)

DESCRIPTION

Organização e Arquitetura de Computadores. Capítulo 11 Estrutura e Funções da CPU. Parte I. Funcionalidades da CPU Registradores Ciclo de Instruções. Organização da CPU. Funcionalidades da CPU. Em um ciclo de instruções, envolve-se: Buscar instruções CPU lê uma instrução da memória - PowerPoint PPT Presentation

Citation preview

Page 1: Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores

Capítulo 11Estrutura e Funções da CPU

Page 2: Organização e Arquitetura de Computadores

Parte I

Funcionalidades da CPURegistradoresCiclo de Instruções

Page 3: Organização e Arquitetura de Computadores

Organização da CPU

Page 4: Organização e Arquitetura de Computadores

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ciclo de Instruções – Ciclo indireto

Page 20: Organização e Arquitetura de Computadores

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

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

Ciclo de busca

Page 23: Organização e Arquitetura de Computadores

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

Fluxo de dados (Diagrama do Ciclo Indireto)

Page 25: Organização e Arquitetura de Computadores

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

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

Fluxo de dados (diagrama com interrupção)

Page 28: Organização e Arquitetura de Computadores

Estudo de Caso: x86

Gerais

Segmentos

PC

Flags

Page 29: Organização e Arquitetura de Computadores

PSW

Page 30: Organização e Arquitetura de Computadores

PSW

Page 31: Organização e Arquitetura de Computadores
Page 32: Organização e Arquitetura de Computadores

Exercícios

11.1

Page 33: Organização e Arquitetura de Computadores

Parte II

Pipeline

Page 34: Organização e Arquitetura de Computadores

Pipeline

Evolução dos sistemas:• Novos chips• Mais registradores• Cache• Pipeline de Instruções

Page 35: Organização e Arquitetura de Computadores

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

Exemplo

Page 37: Organização e Arquitetura de Computadores

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

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

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

Pipeline: efeito de uma instrução de desvio

Page 41: Organização e Arquitetura de Computadores

Tratamento de Desvios e Interrupções

Page 42: Organização e Arquitetura de Computadores

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

Desempenho

Tempo de execução de n instruções:

Speedup

Page 44: Organização e Arquitetura de Computadores

Desempenho

Page 45: Organização e Arquitetura de Computadores

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

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

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

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

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

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

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

Previsão de Desvios

Desvios atrasados• Rearranja as instruções• Só executa quanto necessário

Page 53: Organização e Arquitetura de Computadores

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

Exercícios (entregar final da aula)

11.1 11.2 11.3 11.6