1 ssc144 arquitetura de computadores introdução. 2 pipeline semelhante a uma linha de montagem de...
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070311/552fc10b497959413d8c2778/html5/thumbnails/24.jpg)
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