Arquitetura de Computadores
Modelo do Computador
Von Neumann
PC PC IR IR ADD $3,$5 7 6 BARRAMENTO CPU Memória 0 1 4 5 6 7 3 2 REGISTRADORESProcessador
Organização
● Instruções –OPCODE
–OPERANDOS (0 ou mais)
● Unidade de Controle –Busca
–
Decodifica (Determina o tipo) instruções
● Instruções de Desvio
● Instruções de Movimentação de Dados ● Instruções Lógicas e Aritméticas
● Unidade Lógica e Aritmética
Processador
Organização (Cont...)
● Registradores
–
Memória interna a CPU de Alta velocidade
–
Usados para armazenamento temporário e controle
–
Registradores comuns (Não acessíveis geralmente)
● PC (Program Counter): End. Próxima instrução ● IR (Instruct Register): Instrução sendo executada
● MBR(Memory Buffer Register): dado a ser lido/escrito na
mem.
● MAR (Mememory Address Register ): endereço de/para
onde o dado será lido/escrito
● STATUS: Resultado das operações (igual, overflow),
Processador
Caminho de dados
● Registradores, ALU e Barramentos
Processador
Execução de Instrução
1) Mover a próxima instrução entre reg e mem
2) Alterar o Registrador PC
3) Determinar o tipo da instrução trazida
4) Se a instrução usar operandos verifica a localização
5) Buscar operandos para registradores internos, se for o caso
6) Executar a instrução
7) Voltar a passo inicial
Processador
RISC x CISC
● CISC: Conjunto Complexo de Instruções
–
A evolução da tecnológica dos processadores
levaram ao uso de microcódigo para fornecer
mais instruções ao programador
–
Instruções de máquina parecidas com as
instruções de alto nível
Processador
RISC x CISC
● RISC: Conjunto Reduzido de Instruções
● Registradores (até 32), ALU e Barramentos ● Instruções
–
Registrador-Memória (STORE)
–
Memória-Registrador (LOAD)
–
Registrador-Registrador (passam pela ALU)
● Compilador complexo
● Instruções executadas diretamente pelo nível da lógica
Processador
RISC x CISC - Resumo
● CISC
● Instruções complexas em
múltiplos ciclos
● Qualquer instrução referencia
memória
● Menor possibilidade de pipeline ● Microprograma interpreta
instruções
● Instruções de tamanho variado ● Muitas instruções e modos de
endereçamento
● Complexidade no microprograma ● Conjunto pequeno de
registradores
● RISC
● Instruções consomem somente
um ciclo
● Somente Load/Store referenciam
memória
● Uso de pipeline
● Hardware (nível da logica digital)
executa a instrução
● Instruções de tamanho fixo ● Poucas instruções e modo de
endereçamento
Processador
Princípios de Projeto (RISC)
● Todas instruções devem ser executadas pelo HW (Abaixo o
microcódigo!)
● Maximize a taxa de execução de instruções ● Instruções devem ser fáceis de decodificar
–
Comprimento fixo
–
Número de campos pequeno
● Acesso à memória:
–
Somente LOAD e STORE
● Registradores: Quanto mais melhor
Processador
Paralelismo
● Velocidade de Execução = Instruções/s
–
Aumento do Clock (Limites tecnológicos)
–
Aumento do número de unidade funcionais
● De Instrução
–
Pipeline, Arquiteturas Super Escalares
● De Processador
–
Maquinas Matriciais, Vetoriais, sistemas
Processador
Paralelismo de instrução
Pipelining
● Divide a execução da instrução em etapas
● Permite uso otimizado das estruturas internas do
processador ● Etapas –
Busca da Instrução
–Decodifica a Instrução
–Busca de Operandos
–Execução da Instrução
Processador
Processador
Paralelismo de Instrução
● Arquiteturas Superescalares
–
Executa várias instruções em um único ciclo
–Várias ALUs no estágio 4
Processador
Paralelismo de processador
● Sistemas Multiprocessados
–
UMA (SMP)
Processador
Paralelismo de Processador
● Multicompudadores –Sistemas Distribuidos
–Clusters computacionais
● Supercomputadores –Matriciais
● Grande número de precessadores idênticos
executando a mesma sequencia de instruções em diferentes conjuntos de dados
–
Vetoriais
● Processadores com auto grau de paralelismo de
entrada de dados
–
Uso para processamento de matrizes
Processador
Taxonomia de Flynn
● Classificação das Arquiteturas
–
Proposta por Michael Flynn em 1966
● SISD - Single Instruction single Data
–
Uma única instrução agindo sobre um dado
● SIMD - Single Instruction Multiple Data
–
Uma única instrução agindo sobre um conjunto de
dados
● MISD Multiple Instruction Single Data
–
Multiplas instruções Agindo sobre um dado
–Nunca se ouviu falar de exemplos
● MIMD Multiple Instruction Multiple Data
Processador
Processador
Memória
Bit
● 0 ou 1
● Aritmética eficiente para computadores
● Fácil de representar usando fenômenos físicos
–
Ausência ou presença de tensão ou corrente
● Representação decimal (BCD)
–
Binary Coded Decimal (IBM)
● Conjuntos de 4 bits representando os digitos 0-9 ● Disperdício 16 bits
● BCD = 0 - 9999
Memória
Bit
● Notações (representação de Binários) ● Reduzem o tamanho da string
Memória
Endereços de Memória
● Celula: Armazena informações
● Memória: Conjunto de celulas endereçáveis ● Memória: N Celulas -> 0 a N-1 Endereços ● Celula: K bits -> 2k combinações diferente ● Palavra: (?)
–
Agrupamento de Bytes
Memória
Endereços de Memória
Memória
Ordenação de Bytes
● Big Endian
–
Bytes numerados da esquerda para direita
–
Sparc, MainFrame, Arm (celulares com android)
● Little Endian
Memória
Ordenação de Bytes
● Isso é um questão de arquitetura ou organização? ● Problema na transmissão de dados entre hosts com
diferentes tipos de ordenação.
● Little Endian x Big Endian
Memória
Empacotamento e Tipos
● Tecnologias de construção
–
SRAM (estática) – Uso de Flip-Flops – Cache
–
DRAM (dinâmica) – Uso de Capacitor
Memória
Empacotamento e Tipos
● Assincronas
–
FPM (Fast Page Mode)
● Usadas nos primeiros 486
–
EDO (Extended Data Out)
● Usadas em Pentium e 486
● Síncronas: SDRAM (Frequencia do FSB)
–
SDR-SDRAM (Single data Rate)
● Modos de operação: PC66, PC100, PC133
–
DDR-SDRAM (Dual Data Rate)
● Dois lotes de dados por ciclo
–
QDR-SDRAM (Quad Data Rate)
Memória
Empacotamento e Tipos
● SIPP - Single Inline Pin Package
–
Usado nos 286 e 386
● SIMM - Single In Line Memory Module
–
30 ou 72 contatos
● DIMM - Dual In Line Memory Module
–
168 e 184 (DDR) contatos
Memória
Empacotamento e Tipos
EX.: SIMM-30
Pin # Signal Name Signal Description
1 VCC +5 VDC
2 /CAS Column Address Strobe
3 DQ0 Data 0 4 A0 Address 0 5 A1 Address 1 6 DQ1 Data 1 7 A2 Address 2 8 A3 Address 3 9 GND Ground 10 DQ2 Data 2 11 A4 Address 4 12 A5 Address 5 13 DQ3 Data 3 14 A6 Address 6 15 A7 Address 7
Pin # Signal Name Signal Description
16 DQ4 Data 4
17 A8 Address 8
18 A9 Address 9
19 A10 Address 10
20 DQ5 Data 5
21 /WE Write Enable
22 GND Ground
23 DQ6 Data 6
24 A11 Address 11
25 DQ7 Data 7
26 QP Data Parity Out
27 /RAS Row Address Strobe 28 /CASP Something Parity 29 DP Data Parity In
Memória
Cache
● Problema
–
Memórias mais lentas que CPU
–
Causa: Barramento
● CPU: evolução leva a aumento velocidade
● Memória: evolução leva aumento do tamanho ● Solução: Trazer memória para dentro da CPU
–
Restrição: Custo
● Funcionamento: Principio da Localidade de Referência ● Memória estática: SRAM
● Técnicas de escrita na cache
–
Write-Back
–
Write-Through
● Cache em níveis