ARQUITETURA DE COMPUTADORES Organização de Sistemas Computacionais Prof.: Agostinho S. Riofrio
Agenda 1. Unidade Central de Processamento 2. Organização da CPU 3. Interpretador 4. RISC x CISC 5. Principios de Projeto de Computadores 6. Paralelismo no nível de Instrução 7. Arquiteturas Superescalares 8. Paralelismo de Processador 9. Memoria Primária
Unidade Central de Processamento
Unidade Central de Processamento Executa instruções armazenadas na memória principal Os componentes são conectados pelos barramentos de Endereços, Dados e Sinais de Controle ULA Operações lógicas e aritméticas Memória de alta velocidade chamada de registradores
Unidade Central de Processamento John Von Neumann - Conceitos Básicos: Uma única UCP responsável por todo controle do fluxo de dados Dados/Instruções são armazenados em memória única de leitura/escrita; Conteúdo da memória é acessado endereçando uma posição; Execução de instruções de modo seqüencial exceto para instruções de decisão/desvio Dispositivos de E/S
Organização da CPU
Execução de instrução Ciclo de busca-decodificação-execução
Interpretador A função da CPU pode ser emulada por um programa A equivalencia entre processadores de hardware e interpretadores tem importantes implicações para a organização de computadores É uma decisão de projeto se as instruções serão executadas pelo hardaware ou por um interpretador / / / /
Interpretador / / / /
Interpretador
RISC x CISC RISC: Reduced Instuction Set Computer Não existe o nível de microprogramação Tempo de duração de instrução importa menos que quantas podem ser iniciadas por segundo Latência das instruções igual ao número de estágios do pipeline. Taxa de execução ideal de um ciclo por instrução. As instruções RISC são caracterizadas por serem do mesmo tamanho e terem os campos da instrução padronizados, com o mesmo número de bits e ocupando a mesma posição na palavra. Poucos modos de endereçamento, acesso à memória através das instruções load e store, operações realizadas principalmente com registradores. Poucas instuções: em torno de 50
RISC x CISC CISC: Complex Instruction Set Computer Existe o nível de microprogramação As instruções CISC se caracterizam por tamanhos variados, com campos não uniformes. Diversos modos de endereçamento. Dados utilizados em operações lógico-aritméticas podem estar tanto na memória quanto nos registradores. Operações de movimentação de dados na memória e entre memória e registradores. Instruções com número variado de ciclos. Muitas instruções: de 200 a 300
RISC x CISC Quem ganhou a batalha? A Intel incorporou um núcleo RISC a partir do 486para rodar instruções simples (mais comuns) Outras instruções são interpretadas Performance global melhor que um CISC puro sem perder compatibildade com os softwares legados
Princípios de Projeto para Computadores Modernos Todas as instruções são diretamente executadas pelo hardware Instruções mais comuns executadas diretamente pelo hardware Instruções CISC mais complexas e menos frequentes podem ser interpretadas Maximiza a taxa na qual as instruções são executadas Iniciar o maximo de instruções por segundo Paralelismo Algumas instruções podem ser exucutadas fora da ordem
Princípios de Projeto para Computadores Modernos Instruções devem ser fáceis de decodificar Instruções regulares e de tamanho fixo, com um pequeno número de campos são desejáveis Menor númro de formatos diferentes Somente leituras e armazenamentos devem referenciar a memória Operandos para a maioria das intruções vindos de registradores Acesso a memória em instruções separadas Fornece vários registradores Mínimo 32 registradores
Paralelismo no Nível de Instrução: Analogia com Lavanderia
Paralelismo no Nível de Instrução: Analogia com Lavanderia
Paralelismo no Nível de Instrução: Analogia com Lavanderia Supondo-se que cada uma destas etapas leve 30 minutos para ser realizada, a lavagem de um cesto de roupas continuará levando 2 horas para ser realizada. Entretanto, podemos iniciar a lavagem de um cesto de roupas a cada 30 minutos, até que tenhamos 4 cestos sendo lavados simultaneamente, um em cada etapa do pipeline. Depois das primeiras 2 horas, teremos um cesto de roupa lavada a cada 30 minutos. Ao final do dia teremos lavado muito mais cestos de roupa do que sem o uso de pipeline
Paralelismo no Nível de Instrução: Analogia com Lavanderia Não melhora a latência de cada tarefa individualmente Melhora a performance de todo o trabalho Várias tarefas executam simultaneamente usando recursos diferentes Agilização potencial = número de estágios do pipeline
Paralelismo no Nível de Instrução (Pipeline) Pipeline de cinco estágios. Estado de cada estágio em função do tempo. São ilustrados nove ciclos de relógio.
Paralelismo no Nível de Instrução (Pipeline) O tempo do ciclo do relógio do processador deve ser igual ou maior que o tempo de execução do estágio mais lento do pipeline. Deve-se procurar dividir a execução da instrução em estágios com o mesmo tempo. O pipeline deve ser mantido sempre cheio para que o desempenho máximo seja alcançado. De um modo geral, com o uso do pipeline, cada instrução ainda leva o mesmo tempo para ser executada. Algumas instruções contudo podem ter o seu tempo de execução aumentado, pois atravessam estágios em que não realizam nenhuma operação útil.
Pipeline Conflitos Estruturais Busca da instrução e leitura/escrita de dados simultâneamente à memória: Uso de arquitetura Harvard com caches de dados e instrução separados Acesso simultâneo ao banco de registradores Uso de banco de registradores com múltiplas portas Uso simultâneo de uma mesma unidade funcional Replicação da unidade funcional ou implementação pipelined dessa unidade
Arquiteturas Superescalares Processadores que executam multiplas instruções em um ciclo de clock. Frequentemente executam de 4 a 6 instruções por ciclo de clock Em geral possuem um pipeline e varias unidades funcionais para executar os varios estágios em que a exucução é dividida.
Arquiteturas Superescalares Pipelines duplos de cinco estágios com uma unidade de busca de instrução em comum. Unidade de busca de instruções busca pares de instruções ao mesmo tempo e coloca cada uma em seu próprio pipeline.
Arquiteturas Superescalares Processador superescalar com cinco unidades funcionais.
Paralelismo de Processador Processador matricial do tipo ILLIAC IV. Executa a mesma sequência de instruções em conjunto de dados diferente
Paralelismo de Processador Multiprocessador com barramento único. Multicomputador com memórias locais para dados que não precisam ser compartilhados.
Terminologia Byte (BinarY TErm) Formado pela combinação de 8 bits (Até 2 8 = 256 combinações diferentes) Palavra: Celula: Conjunto de bits que representa uma informação útil para o computador; Unidade de medida que a CPU processa por vez; Unidade básica de transferência entre memória e processador; Unidade de armazenamento da memória principal; Menor unidade da memória que pode ser endereçada;
Memória Primária Parte do computador onde os programas e os dados são armazenados Sua unidade básica é o bit É formada por um conjunto de células O número de bits de uma célula é chamado palavra Células referenciadas por um endereço Tempo de acesso típicos de 50 a 150 nanosegundos
Endereços de Memória Três maneiras de organizar uma memória de 96 bits.
Endereços de Memória Númerode bits porcélulaparaalgunscomputadorescomerciais historicamente interessantes.
Ordenação de Bytes (a) Memória big endian endian (b) Memória little
Ordenação de Bytes (a) Registro pessoal para uma máquina big endian. (b) O mesmo registro para uma máquina little endian. (c) Resultado da transferência de big endian para little endian. (d) Resultado do deslocamento de bytes (c).
Códigos Corretores de Erros Número de bits de verificação para um código que pode corrigir um único erro.
Códigos Corretores de Erros (a) Codificação de 1100 (b) Paridade par adicionada (c) Erro em AC
Códigos Corretores de Erros Construção do código de Hamming para a palavra de memória 11110000010101110 adicionando 5 bits de verificação aos 16 bits de dados.
Memória Cache O cache localiza-se logicamente entre a CPU e a memória principal. Fisicamente há vários locais onde ela pode ser colocada. Tempo de acesso típicos de 7 nanosegundos
Empacotamento e tipos de memória Módulo de memória em linha única (single inline memory module) (SIMM) contendo 256 MB. Dois dos chips controlam o SIMM.
Empacotamento e tipos de memória Módulo SIMM 30 SIMM 72 DIMM 168 Capacidade 16 bits 32 bits 64 bits Atualmente, os módulos SIMM são fabricados com o tempo de acesso de 70, 60 ou 50 ns.
Hierarquias de memória Menor tempo de acesso Menor Capacidade Maior tempo de acesso Hierarquiade memóriade cinconíveis. Maior Capacidade
REFERÊNCIAS BIBLIOGRÁFICAS [1] TANEMBAUM, Andrew S. Organização Estruturada de Computadores. Quinta Edição. Editora Pearson Prentice Hall, São Paulo, 2007. [2] HENNESSY, John L.; Patterson, David A.; Organização e Projeto de Computadores 2ª Edição 2000; ED LTC. [3] MONTEIRO, M. A. Introdução à organização de computadores. Quarta Edição. Editora LTC, Rio de Janeiro, 2002.