SSC144 Arquitetura de Computadores Introdução

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Organização de Computadores I
Arquitetura de Computadores
WebDesign Redes de Computadores Aula 07
Processadores AMD.
Arquitetura de Computadores
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
Introdução Arquitectura com unidade de controlo uniciclo.
Software Básico Silvio Fernandes
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Unidade de Controle do 8086/8088
Arquitetura dos Microprocessadores 8086 e 8088
Multithreading e multiprocessamento
William Stallings Arquitetura e Organização de Computadores 8a Edição
Arquitetura de Sistemas Operacionais
Processo de Pipelining (exemplo da lavanderia)
Processador Intel Itanium
Daniel M. Aquino, Marcelo C. Perez, Thais A. B. Fernandes
Processador Pentium 4 MO401 – Arquitetura de Computadores I
Arquiteturas Superescalares
Paralelismo em nível de instrução: Arquiteturas VLIW Grupo 01: Júlia Martinez Perdigueiro ra Tatiane Baggio Borili ra
Arquiteturas Diferentes
Pipeline.
CISC e RISC.
Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita
SSC114 Arquitetura de Computadores Pipeline - Predição de desvios
SSC144 Arquitetura de Computadores Evolução Arquitetura von Neumann (parte I) Aula 2 11/08/10 Profa. Sarita.
Rganização de Computadores Melhorias de Desempenho com Pipelines - Parte B - Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de.
Rganização de Computadores Melhorias de Desempenho com Pipelines Capítulo 6 – Patterson & Hennessy Organização de Computadores Melhorias de Desempenho.
Estudo comparativo entre as arquiteturas Opteron e Itanium
Capítulo 1 Introdução 1.1 O que é um sistema operacional
UNIDADE DE CONTROLE MICROPROGRAMADA PARA O FEMTOJAVA
Organização da Memória Principal
Arquitetura de Computadores
Professor Victor Sotero
Processadores.
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
2- Entendendo o que é Arquitetura e Organização
Prof. Felipe Ferreira de Oliveira
Fundamentos de programação CUDA
Arquitetura de computadores
Sistemas Operacionais
Arquitetura de computadores
Arquitetura de computadores
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Davi de Andrade Lima Castro RA:  A plataforma C6000: ◦ Ponto-fixo:  C62x  C64 / C64x+ ◦ Ponto-flutuante:  C67x / C67x+ ◦ Arquitetura VLIW:
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Contextualização de Paralelismo em nível de instrução
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 5 (1) Análise de Dependência Tópicos: Restrições à Vetorização Detecção de Dependência Teste.
Arquitetura de Computadores
ARQUITETURA DE COMPUTADORES II
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Organização e Arquitetura de Computadores
Unidade Central De Processamento: Processador
Unidade Central De Processamento: Processador
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Trace caches: alternativa inteligente à cache de instruções Danilo Lacerda RA:
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Microprocesadores x Microcontroladores
Conceitos Avançados de Arquitetura de Computadores Arquiteturas RISC Arquiteturas Superpipeline e Superescalares.
Arquitetura de Computadores
Processadores.
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Introdução ao Processamento Vetorial
 Evolução constante das linguagens de programação de alto nível (LAN) desde o Fortran (primeira LAN)  Surgimento de novos paradigmas como a OO, Orientação.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

SSC144 Arquitetura de Computadores Introdução

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

Pre-busca (Prefetch) Ciclo da instrução em dois estágios: 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

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

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)

Pipeline

Desvio em uma pipeline

Pipeline Problemas Concorrência por recursos (barramentos, registradores, etc.) Desvios condicionais ou incondicionais Dependência dos dados

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

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)

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

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)

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

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

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

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.

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)

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)

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

Problemas com Pipelines Conflitos 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

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

Comparações: Pipeline, Superescalar e VLIW [Ref : Hwang et al]

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

Formas de execução das threads Superescalar Multithreading Simultaneous Multithreading Issue slots Clock cycles Empty Slot Thread 1 Thread 2 Thread 3 Thread 4