1 ssc144 arquitetura de computadores introdução. 2 pipeline semelhante a uma linha de montagem de...

24
1 SSC144 Arquitetura de Computadores Introdução

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

1

SSC144 Arquitetura de Computadores

Introdução

Page 2: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

2

Pipeline Semelhante a uma linha de montagem de uma

indústria O produto passa por vários estágios de produção

Produtos em vários estágios do processo de produção

podem ser trabalhados simultaneamente

Em uma pipeline de instrução, novas entradas são

aceitas em uma extremidade antes que entradas

previamente aceitas apareçam como saída na outra

extremidade

Page 3: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

3

Pre-busca (Prefetch) Ciclo da instrução em dois estágios:

Busca Execução

Sobreposição desses dois ciclos Busca acessa a memória Execução não acessa a memória Busca de uma nova instrução enquanto a anterior

está na fase de execução

Page 4: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

4

Pre-busca (Prefetch) Aumenta o desempenho mas não dobra pois:

O tempo de busca é menor do que a execução Fazer a busca de mais de uma instrução?

Onde armazenar?

Qualquer salto condicional ou incondicional

significa que instruções que foram buscadas

devem ser descartadas

Page 5: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

5

Ciclo maior Busca da instrução (FI) Decodificação da instrução (DI) Cálculo dos operandos (CO) Busca dos operandos (FO) Execução da instrução (EI) Escrita do resultado (WO)

Page 6: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

6

Pipeline

Page 7: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

7

Desvio em uma pipeline

Page 8: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

8

Pipeline Problemas

Concorrência por recursos (barramentos, registradores, etc.)

Desvios condicionais ou incondicionais Dependência dos dados

Page 9: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

9

Número de estágios Número de estágios pipeline:

Pentium III: 10 estágios Pentium 4 com HT: 31 estágios Athon XP: 10 estágios AMD64: 12 estágios

Page 10: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

10

Evolução das arquiteturas

Arquitetura x86 Originalmente com palavras de 16 bits, sofreu

duas alterações: 1985 – de 16 para 32 bits – IA-32 (Inter Architecture) 2003 – de 32 para 64 bits - AMD introduziu o Atlhon 64

8086 16 bits 6 prefetched bytes do barramento para a unidade

de execução – início do pipeline Memória Segmentada (segmento:deslocamento)

Page 11: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

11

Evolução das arquiteturas

80286 16 bits Pipeline de 4 estágios:

EU: unidade de execução de instruções BU: unidade de acesso e controle do barramento IU: unidade de decodificação de instruções AU: unidade de formação de endereços

Dois modos de endereçamento de memória Real: 8086 Protegido

Page 12: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

12

Evolução das arquiteturas

80386 32 bits Três modos de endereçamento de memória:

Real: 8086 Protegido: protegido do 286 Virtual: uma ou mais máquinas virtuais do 8086 no modo

protegido 6 unidades de pipeline:

EU: unidade de execução de instruções BU: unidade de acesso e controle do barramento IU: unidade de decodificação de instruções PU: unidade de pré-fetch PgU: unidade de formação de endereço (paging unit) SU: unidade de formação de endereço (segmentation unit)

Page 13: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

13

Evolução das arquiteturas

80486 Mesmo conjunto de instruções do 386 Do ponto de vista de hardware, houveram alterações:

Cache unificada de instruções e dados no chip Unidade de ponto flutuante (em algumas versões) Melhor interface de barramento

Page 14: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

14

Evolução das arquiteturas

Pentium 32 bits Melhorias

Introdução do conceito de superescalar (2 caminhos de dados para inteiros e um para ponto flutuante)

64 bits para barramento de dados Pipeline de 5 estágios:

Prefetch First Decode Second Decode Execute Write Back

Page 15: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

15

Arquiteturas RISC

Características: Instruções mais simples, demandando um

número fixo de ciclos de máquinas para sua execução

Uso de poucos e simples modos de endereçamento

Poucos formatos das instruções Apenas instruções de load/store referenciam

operandos na memória principal Cada fase de processamento da instrução tem a

duração fixa igual a um ciclo de máquina

Page 16: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

16

Pipeline

Dependências ou Conflitos (Hazards) Conflitos Estruturais

Pode haver acessos simultâneos à memória feitos por 2 ou mais estágios.

Dependências de Dados As instruções dependem de resultados de instruções

anteriores, ainda não completadas. Dependências de Controle

A próxima instrução não está no endereço subseqüente ao da instrução anterior.

Page 17: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

17

Problemas com Pipelines Conflitos Estruturais Ocorre quando duas instruções tentam

acessar o mesmo dispositivo ao mesmo tempo

Soluções: Duplicar unidades funcionais Aumentar o número de portas de acesso à

memória principal Separar cache de dados e de instruções (L1)

Page 18: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

18

Problemas com Pipelines Conflitos por dados Dependências verdadeiras ou diretas

RAW (Read After Write) Possíveis soluções:

Colocação de instruções nop ou escalonamento adequado pelo processador

Adiantamento (técnica forwarding ou bypassing)

Page 19: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

19

Problemas com Pipelines Conflitos por dados Dependências falsas

Ocorrem quando é possível iniciar ou terminar a execução das instruções fora de ordem, ou seja, não é possível determinar o valor dos registradores em cada instante com base apenas na seqüência de instruções

Antidependência WAR (Write After Read)

Dependência de saída WAW (Write After Write)

Solução usual: Renomeamento de registradores

Page 20: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

20

Problemas com PipelinesConflitos de Controle Maneiras de se tratar as conseqüências de uma

parada no pipeline por causa dos desvios: Predição Estática de Desvios

O compilador faz uma predição se o desvio vai ser tomado ou não Geração de “bolhas” quando a predição é errada, baixa taxa de

acertos Não permite adaptações com relação ao comportamento do

programa Predição Dinâmica de Desvios

Existem mecanismos em “hardware” que fazem a predição baseada no comportamento daquele desvio no passado

Alta taxa de acertos

Page 21: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

21

Paralelismo no nível de instrução Processadores Escalares Processadores Superescalares Processadores Pipelined Processadores Superpipelined Processadores VLIW (Very Large Instruction

Word)

Page 22: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

22

Comparações: Pipeline, Superescalar e VLIW

[Ref : Hwang et al]

Page 23: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

23

Paralelismo no nível de tarefas SMP

Mais de um processador compartilhando memória, discos e executam o mesmo SO

Multithread Mais de uma thread sendo executada, mas não

ao mesmo tempo SMT

Mais de uma thread sendo executada ao mesmo tempo

Page 24: 1 SSC144 Arquitetura de Computadores Introdução. 2 Pipeline Semelhante a uma linha de montagem de uma indústria O produto passa por vários estágios de

24

Formas de execução das threadsSuperescalar Simultaneous MultithreadingMultithreading

Issue slots

Clo

ck c

ycle

s

Empty Slot

Thread 1

Thread 2

Thread 3

Thread 4