capítulo 2 - aloques/orgcomp/cap2-a.pdf · 2007-03-08 · trab_1: coloca uma caixa vazia na...
TRANSCRIPT
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
Central Processing Unit
The organization of a simple computer with one CPU and two I/O devices
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
CPU Organization
• The data path of a typical Von Neumann machine
Linhas de controle
Bus Organization
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
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
Bus Interconnection Scheme
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
Interpreter (1)
An interpreter for a simple computer (written in Java).
. . .
Interpreter (2)
An interpreter for a simple computer (written in Java).
Instruction Cycle - State Diagram
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
Execução de programa
ADA : Add to AC from memory0101
STA : Store AC to memory0010
LAC : Load AC from memory0001
Instruçãoopcode
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
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
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
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
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 !
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
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
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)
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
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
Arquiteturas Superscalares (iv)
A superscalar processor with five functional units
Processor-Level Parallelism (1)
• An array of processors - ILLIAC IV• Os processadores não são independentes
SIMD
Processor-Level Parallelism (2)
(a) a single-bus multiprocessor (Intel Dual Core)
(b) a multicomputer with local memories+++ sistemas distribuídos (redes e DSM)
Multiprocessamento Simétrico
MainMemory
Processor Processor ProcessorCache CacheCache
I/OSubsystem
. . .
I/O 1
I/O...
I/O n