capítulo 2 - aloques/orgcomp/cap2-a.pdf · 2007-03-08 · trab_1: coloca uma caixa vazia na...

28
Organização de Computadores Capítulo 2 - A Referências: principal: Capítulo 2, Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization and Architecture, W. Stallings, Prentice Hall Orlando Loques setembro 2006

Upload: others

Post on 22-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Organização de Computadores

Capítulo 2 - A

Referências:

• principal: Capítulo 2, Structured Computer Organization, A.S. Tanenbaum, (c) 2006 Pearson Education Inc

• Computer Organization and Architecture, W. Stallings, Prentice Hall

Orlando Loquessetembro 2006

Page 2: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Central Processing Unit

The organization of a simple computer with one CPU and two I/O devices

Page 3: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Componentes Relevantes (i)

� UCP: Central Processing Unit– Cerebro do computador– Executa programas armazenados na memória– Acessa as instruções, segundo uma sequência

� Control Unit– Controla o acesso à memória– Comanda a execução das instruçoes

� ALU: Arithmetic Logic Unity– Operações lógicas e aritméticas

� Registros– Memória rápida: resultados temporários e informações de controle

Page 4: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

CPU Organization

• The data path of a typical Von Neumann machine

Linhas de controle

Page 5: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Bus Organization

Page 6: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Componentes Relevantes (ii)

� Program Counter (PC): aponta a próxima instrução a ser buscada

� Instruction Register (IR): armazena a instrução sendoexecutada

� Data path (via de dados)

� Instructions Categories

• register-memory• register-register• memory-memory – deve ser evitada

Page 7: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Componentes Relevantes (2)

� Barras ou Vias:� Barra de endereços� Barra de dados� Barra de controle: ler, escrever, DMA, interrupção

� Memory Addres Register (MAR):� contém o endereço da posição de memória

� Memory Buffer Register (MBR):� armazena o dado envolvido na transferência

� Tipos de memória� Random Access Memory (RAM): estática e dinâmica� Read Only Memory� Outros: Flash

Page 8: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Bus Interconnection Scheme

Page 9: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Instruction Execution Steps� Fetch next instruction from memory into Instr. Register

� Change Program Counter to point to next instruction

� Determine type of instruction just fetched

� If instructions uses word in memory, determine where�

� Fetch word, if needed, into CPU register

� Execute the instruction

� Go to step 1 to begin executing following instruction

Page 10: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Interpreter (1)

An interpreter for a simple computer (written in Java).

. . .

Page 11: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Interpreter (2)

An interpreter for a simple computer (written in Java).

Page 12: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Instruction Cycle - State Diagram

Page 13: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Computador Simples: Formatos

Addressopcode0 3 4 15

MagnitudeS0 1 15

formato de instrução

formato de inteiro

ADA : Add to AC from memory0101

STA : Store AC to memory0010

LAC : Load AC from memory0001

InstruçãoopcodeExemplo em hexadecimal:

1941 : adiciona o conteúdo de 941 ao AC

Page 14: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Execução de programa

ADA : Add to AC from memory0101

STA : Store AC to memory0010

LAC : Load AC from memory0001

Instruçãoopcode

Page 15: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Tipos de Ciclos de Execução

� Processor-memory– data transfer between CPU and main memory

� Processor I/O– Data transfer between CPU and I/O module

� Data processing– Some arithmetic or logical operation on data

� Control– Alteration of sequence of operations– e.g. jump

� Combination of above

Page 16: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Observações sobre máquinas interpretadas

� Permitem corrigir ou otimizar a implementação de instruções� Permitem adicionar novas instruções� Facilitam a estruturação do projeto de computadores completos� Facilitam a obtenção de compatibilidade entre máquinas de diferentes gerações

(backward compatibility)� Foram suplantadas pela evolução da tecnologia:

– Velocidade das memórias RAM ficaram compatíveis com as ROMS– Tecnologia RISC

� Duelo CISC X RISC– RISC precisa de 5 instruções para executar uma instrução CISC– Instruções RISC são 10X mais rápidas

• Backward compatibility, investimentos• Máquinas híbridas resolveram o confronto …

� Conclusões– projetistas devem acompanhar as evoluções tecnológicas– Tanembaum gosta de máquinas interpretadas

Page 17: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Design Principles for Modern Computers

� All common instructions directly executed by hardware– sem interpretação – mais rapidez – instruções CISC podem ser

quebradas

� Maximize rate at which instructions are issued– paralelismo – mais desempenho – troca (cuidadosa) de ordem

� Instructions should be easy to decode– formato regular, tamanho fixo, poucos campos

� Only loads and stores should reference memory– manter operandos em registros, acesso à memória é lento e o

delay é imprevísivel (compartilhamento de barras)

� Provide plenty of registers– manter os dados nos registros (+ rápidos) até que não sejam

mais requeridos

Page 18: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Paralelismo

� Níveis– Nível de processador

• SIMD: computadores vetoriais, computer arrays• MIMD: multiprocessador, sistemas distribuídos

– eg: Intel Dual-Core

– Nível de Instrução• Duas etapas: busca e execução• Técnicas básicas:

– Pipelining: reduzir o tempo de busca (fetch) que domina o tempo de execução das instruções

– Processamento Superscalar: suportar diversas unidades de execução

Page 19: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Pipelining (i)

� A five-stage pipeline� The state of each stage as a function of time - nine clock cycles� Consistência no uso de recursos tem que ser garantida !

Page 20: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Pipelining – Analogia (ii)� Fabrica de Bolos, com duas unidades separadas:

fabricação e expedição

– Cinco trabalhadores em linha, em frente a uma estei ra– Ciclo de 10 segs

Trab_1: Coloca uma caixa vazia na esteira transportadoraTrab_2: Coloca um bolo na caixaTrab_3: Fecha a caixaTrab_4: Coloca um rotulo na caixaTrab_5: Retira a caixa e coloca numa embalagem maior para envio ao supermercado

- O processamento completo leva 5*10 seg

- Contudo, a cada 10 seg uma caixa fica pronta

Page 21: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Pipelining (iii)� Ciclo de relógio: 2 nseg

– Uma instrução, gasta 5 ciclos : 10 nseg– Velocidade sem pipeline: 100 MIPS– Velocidade usando pipeline: 500 MIPS

• A cada ciclo de relógio (2 nseg) uma instrução é completada

� Trade-off entre latência (tempo de processamento de uma instrução) e bandwidth do processador (capacidade da CPU em MIPS)

� E se acontecer um desvio na sequência?

– Instruções tem que ser abandonadas !

• Usar branch prediction techniques (+ data flow analysis – speculative execution)

� Consistência no uso de recursos também tem que ser garantida !

• Eg, conflito no acesso a registros

Page 22: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Arquiteturas Superscalares (i)

• Dual five-stage pipelines with a common instruction fetch unit

• Conflitos sobre o uso de recursos (eg: registros) e interdependência dos resultados têm que ser evitados: compilação ou durante a execução (com hardware extra)

Page 23: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Arquiteturas Superscalares (ii)

• Pipelines são comuns em arquiteturas RISC - uniformidade

• Pentium (híbrido): usa dois pipelines ligeiramente diferentes

• U: pode executar todo tipo de instrução• V: somente instruções aritméticas simples• Em princípio, as instruções têm que ser executadas em ordem• Regras (complexas) permitem identificar se duas instruções podiam ser executadas em

paralelo. Se não, a do pipeline U tinha preferência; a do V tinha que esperar

• Compiladores especiais para o Pentium produzem código otimizado

• A ordem das instruções pode ser alterada: eg, usam grupos de registros diferentes• Programas executam 2* mais rápido que no 486, que usa só um pipeline• O ganho é atribuido inteiramente ao segundo pipeline e ao compilador

Page 24: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Arquiteturas Superscalares (iii)

• Pode-se usar 4 pipelines, pesando o hardware – nunca três!

• A alternativa é usar multiplas unidades funcionais• Eg: Pentium 2 – cinco unidades; CDC 6600 - 10 unidades (há 30 anos atrás)

• A arquitetura se baseia na hipótese de que o estágio S3 pode produzir instruções mais rapidamente que as unidades do nível S4 podem executá-las

• Caso contrário, não haveria paralelismo em S4

• Ou seja, o processamento em S4 pode gastar mais que um ciclo de relógio, eginstruções que acessam a memória ou executam operações de ponto-flutuante, permitindo ganhos de desempenho

• Notar que unidades em S4 podem ser replicadas, eg, ALU

Page 25: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Arquiteturas Superscalares (iv)

A superscalar processor with five functional units

Page 26: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Processor-Level Parallelism (1)

• An array of processors - ILLIAC IV• Os processadores não são independentes

SIMD

Page 27: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Processor-Level Parallelism (2)

(a) a single-bus multiprocessor (Intel Dual Core)

(b) a multicomputer with local memories+++ sistemas distribuídos (redes e DSM)

Page 28: Capítulo 2 - Aloques/orgcomp/cap2-a.pdf · 2007-03-08 · Trab_1: Coloca uma caixa vazia na esteira transportadora Trab_2: Coloca um bolo na caixa Trab_3: Fecha a caixa Trab_4: Coloca

Multiprocessamento Simétrico

MainMemory

Processor Processor ProcessorCache CacheCache

I/OSubsystem

. . .

I/O 1

I/O...

I/O n