Organiza - PowerPoint PPT Presentation

1 / 54
About This Presentation
Title:

Organiza

Description:

Organiza o e Arquitetura de Computadores Cap tulo 11 Estrutura e Fun es da CPU – PowerPoint PPT presentation

Number of Views:104
Avg rating:3.0/5.0
Slides: 55
Provided by: Adri3179
Category:

less

Transcript and Presenter's Notes

Title: Organiza


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

2
Parte I
  • Funcionalidades da CPU
  • Registradores
  • Ciclo de Instruções

3
Organização da CPU
4
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

5
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

6
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

7
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

8
Registradores de Dados
  • Usados apenas para dados
  • Não podem ser utilizados no cálculo de endereço
    de operandos

9
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

10
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

11
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)

12
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

13
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

14
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

15
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

16
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

17
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

18
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)

19
Ciclo de Instruções Ciclo indireto
20
Ciclo Indireto
  • Pode precisar da memória o acesso para buscar
    operandos
  • Endereçamento indireto requer mais acessos de
    memória

21
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

22
Ciclo de busca
23
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

24
Fluxo de dados (Diagrama do Ciclo Indireto)
25
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

26
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

27
Fluxo de dados (diagrama com interrupção)
28
Estudo de Caso x86
Gerais
Segmentos
PC
Flags
29
PSW
30
PSW
31
(No Transcript)
32
Exercícios
  • 11.1

33
Parte II
  • Pipeline

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

35
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

36
Exemplo
37
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

38
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

39
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

40
Pipeline efeito de uma instrução de desvio
41
Tratamento de Desvios e Interrupções
42
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

43
Desempenho
  • Tempo de execução de n instruções
  • Speedup

44
Desempenho
45
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)

46
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

47
Antecipação de busca
  • Destino dos desvios são buscados antecipadamente
  • Mantém destino em um registrador até que o desvio
    seja executado

48
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

49
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

50
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

51
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

52
Previsão de Desvios
  • Desvios atrasados
  • Rearranja as instruções
  • Só executa quanto necessário

53
Pipeline do 486
  • 5 estágios
  • Busca de Instrução
  • Decodificação 1
  • Decodificação 2
  • Execução de Instrução
  • Escrita de Resultado

54
Exercícios (entregar final da aula)
  • 11.1
  • 11.2
  • 11.3
  • 11.6
Write a Comment
User Comments (0)
About PowerShow.com