Post on 25-Nov-2018
Modelo do Computador Von Neumann
PCPC
IRIR
ADD $3,$5
7
6
BARRAMENTO
CPUMemória
0
1
4
5
6
7
3
2
REGISTRADORES
Fluxo de Execução Normal PC => PC+1
ProcessadorOrganizaçã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– Executa instruções Lógicas e Aritméticas (Obvio!)
ProcessadorOrganização – Unidade de
Controle● Addlw 50 (PIC)
ALU
W
1 0 0 1 1 0 0 1 00111 0
OPCODE LITERAL
UnidadeDe
Controle
MUX
MEM
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),
modo de execução (supervisor, normal), etc– Registradores de uso geral (Acessíveis)
Modelo do Computador Von Neumann
PCPC
IRIR
ADD $3,$5
7
6
BARRAMENTO
CPUMemória
0
1
4
5
6
7
3
2
REGISTRADORES
MARMAR
MBRMBR
ProcessadorExecução de Instrução
1) Mover a próxima instrução entre reg e mem2) Alterar o Registrador PC3) Determinar o tipo da instrução trazida4) Se a instrução usar operandos verifica a localização5) Buscar operandos para registradores internos, se for o caso6) Executar a instrução7) Voltar a passo inicial● Ciclo Buscar – Decodificar - Executar
ProcessadorRISC 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
– Consequência: Baixa complexidade do compilador
ProcessadorRISC 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
digital
ProcessadorRISC 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● Complexidade esta no compilador● Muitos conjuntos de registradores
ProcessadorPrincí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– Pelo menos 32
ProcessadorParalelismo
● 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
multiprocessados e MultiComputadores
ProcessadorParalelismo 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– Armazenamento do resultado no registrador
ProcessadorParalelismo de Instrução
● Arquiteturas Superescalares– Executa várias instruções em um único ciclo– Várias ALUs no estágio 4
● Neste estágio as instruções levam vários ciclos
ProcessadorParalelismo 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
● Capitulo 8 (Tem mais sobre maq. paralelas)
ProcessadorTaxonomia 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– Varias Instruções agindo sobre vários dados
MemóriaBit
● 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● Binário = 0 - 65535
MemóriaBit
● Notações (representação de Binários)● Reduzem o tamanho da string– Octal
● 3 Bits (0-7)● Ex: 110 101 100 011 -> 6543
8
– Hexa(decimal)● 4 Bits (0-F)
– A=11,B=12,C=13,D=14,F=15● 1101 0110 0011 -> C63
16 ou 0xC63
– Questão:● 73
8 -> binario?
● 0xFF -binario?
MemóriaEndereç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– Unidade de transferencia entre CPU e Memória
MemóriaOrdenação de Bytes
● Big Endian – Bytes numerados da esquerda para direita– Sparc, MainFrame, Arm (celulares com android)
● Little Endian– Bytes numerados da direita para a esquerda– Intel
MemóriaOrdenaçã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– “Jim Smith, 21, 260”
MemóriaEmpacotamento e Tipos
● Tecnologias de construção– SRAM (estática) – Uso de Flip-Flops – Cache– DRAM (dinâmica) – Uso de Capacitor
● Refresh Necessário
MemóriaEmpacotamento 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)
● Quatro lotes por ciclo● RAMBUS
MemóriaEmpacotamento 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
● RIMM – Rambus In Line Memory Modules
MemóriaEmpacotamento e Tipos
EX.: SIMM-30Pin # 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
30 VCC +5 VDC
MemóriaCache
● 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– L1, L2, L3