organização e arquitetura de computadores

Post on 01-Jan-2016

27 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

Organização e Arquitetura de Computadores

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

Parte I

Funcionalidades da CPURegistradoresCiclo 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

• 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

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

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

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

Registradores de Dados

Usados apenas para dados Não podem ser utilizados no cálculo de

endereço de operandos

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

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

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)

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

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

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

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

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

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

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)

Ciclo de Instruções – Ciclo indireto

Ciclo Indireto

Pode precisar da memória o acesso para buscar operandos

Endereçamento indireto requer mais acessos de memória

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

Ciclo de busca

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

Fluxo de dados (Diagrama do Ciclo Indireto)

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

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

Fluxo de dados (diagrama com interrupção)

Estudo de Caso: x86

Gerais

Segmentos

PC

Flags

PSW

PSW

Exercícios

11.1

Parte II

Pipeline

Pipeline

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

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

Exemplo

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

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

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

Pipeline: efeito de uma instrução de desvio

Tratamento de Desvios e Interrupções

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

Desempenho

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

Speedup

Desempenho

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)

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

Antecipação de busca

Destino dos desvios são buscados antecipadamente

Mantém destino em um registrador até que o desvio seja executado

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

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

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

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

Previsão de Desvios

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

Pipeline do 486

5 estágios:• Busca de Instrução• Decodificação 1• Decodificação 2• Execução de Instrução• Escrita de Resultado

Exercícios (entregar final da aula)

11.1 11.2 11.3 11.6

top related