arquitetura de computadores - boscojr.com · – sparc, mainframe, arm (celulares com android)...

39
Arquitetura de Computadores Prof. João Bosco Jr.

Upload: haquynh

Post on 25-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Arquitetura de ComputadoresProf. João Bosco Jr.

Aula 2(CPU)

Modelo do Computador Von Neumann

● Processadores● Memórias

● E/S● Barramentos

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 - Instruções

● Addlw 50 (PIC)

ALU

W

1 0 0 1 1 0 0 1 00111 0

OPCODE LITERAL

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

ProcessadorCaminho de dados

● Registradores, ALU e Barramentos

Ciclo do Caminho de Dados

ProcessadorDemo

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

Pipelining

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

● Sistemas Multiprocessados– UMA (SMP)– NUMA

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

ProcessadorTaxonomia de Flynn

ProcessadorTaxonomia de Flynn

Aula 3Memória

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óriaEndereços de Memória

● Diferentes disposições de uma memória de 96 bits

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

MemóriaCache

FIM