Arquitetura IA32
This presentation is the property of its rightful owner.
Sponsored Links
1 / 50

Arquitetura IA32 PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on
  • Presentation posted in: General

Arquitetura IA32. Eduardo Augusto Bezerra <[email protected]>. Resumo. Historico da arquitetura IA32 Avancos na arquitetura Tecnologia hyper pipeline Arquitetura IA32. Historico da Arquitetura IA32. 1978 – 16 bits e Segmentacao

Download Presentation

Arquitetura IA32

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Arquitetura ia32

Arquitetura IA32

Eduardo Augusto Bezerra

<[email protected]>

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Resumo

  • Historico da arquitetura IA32

  • Avancos na arquitetura

  • Tecnologia hyper pipeline

  • Arquitetura IA32

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1978 – 16 bits e Segmentacao

    • 8086 e 8088 sao os processadores de 16 bits antecessores a IA32

    • 8086, regs 16 bits, data bus 16 bits, address 20 bits => 1 MBytes

    • 8088, data bus 8 bits

    • Segmentacao – regs de segmento de 16 bits contem ponteiro para

    • segmento de memoria de ate’ 64KB. Com 4 regs de segmento ao

    • mesmo tempo, 8086/8088 enderecam 256KB sem chavear segmentos.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1982 – Intel 286 – introduz modo protegido ao IA32

    • Modo protegido: facilidades para multi-tarefa. Ex. Protecao memoria,

    • paginacao, suporte em HW para gerencia de memoria virtual. SOs tais

    • como Linux e Windows rodam em modo protegido.

    • Modo real: desabilita protecoes para permitir compatibilidade com

    • sw legado rodando em modo DOS. CPUs x86 iniciam em modo real,

    • ate’ serem chaveadas para modo protegido pelo SO no boot.

    • Modo real, regs de segmento na manipulacao memoria segmentada,

    • conteudo dos regs formam parte do endereco fisico.

    • Modo protegido, memoria segmentada definida por “Descriptor Tables”

    • Regs de segmento sao ponteiros para essas tabelas, nao sendo parte do

    • endereco fisico. Descriptors = end. 24 bits = 16MB mem. fisica.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1985 – Intel 386 – primeiro proc. 32 bits da familia IA32

    • Regs 32 bits para operandos e enderecamento.

    • Modo virtual 8086 para execucao eficiente de programas legados.

    • Barramento endereco 32 bits: mem. fisica 4GBytes.

    • Paginacao com tamanho de pagina de 4 KB, com metodo para

    • gerencia de memoria virtual.

    • Suporte para estagios paralelos.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1989 – Intel 486

    • Pipeline com 5 estagios operando 5 instrucoes em paralelo.

    • Cache L1 de 8 KB para aumentar % instrucoes executadas –

    • Objetivo: 1 instrucao por ciclo.

    • FPU x87 integrada.

    • Facilidade para gerencia do sistema e economia de energia.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1993 – Intel Pentium

    • Segundo pipeline (arq. superescalar) para execucao de 2 instr/ciclo.

    • L1 cache duplicada – 8 KB dados e 8 KB instrucoes.

    • Predicao de desvio com tabela de desvio on-chip.

    • Data pahs internos de 128 e 256 bits.

    • Barramento de dados externo de 64 bits.

    • Suporte a sistemas multiprocessados – Modo dual processor.

    • Intel MMX: Modelo execucao SIMD (regs. SIMD de 64 bits).

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 1995 – 1999 Processadores P6

    • Pentium Pro: superscalar 3-way; decodif./exec. de 3 instr./ciclo. Execucao dinamica: micro-data flow analysis, execucao fora de ordem, predicao de desvio avancada, execucao especulativa. Da mesma forma como no Pentium, 2 x 8 KB cache L1 (instr. e dados). Adicional cache L2 256 KB.

    • Pentium II: Tecnologia MMX. Cache L1 e L2 de 16 KB, e L2 de 256 KB, 512 KB, ou 1 MB.

    • Pentium II Xeon: L2 cache 2 MB.

    • Celeron: Encapsulamento PPGA para reducao de custo.

    • Pentium III: SSE SIMD Extensions do MMX – regs. de 128 bits p/ instr. SIMD.

    • Pentium III Xeon: Advanced transfer cache.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 2000 – atualidade Pentium 4, 3.40 GHz

    • Intel NetBurst microarchitecture

    • Streaming SIMD Extensions 2 (SSE2).

    • Hyper-Threading SSE3.

    • Extended Memory 64 – Pentium 4 Extreme Edition.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 2001 – atualidade, Intel Xeon

    • Intel NetBurst microarchitecture

    • Servidores multi-processados

    • Hyper-Threading

    • 64-bit Xeon 3.60 GHz – Tecnologia extended memory 64.

    • Dual-Core Xeon

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 2003 – atualidade, Intel Pentium M

    • Mobile low power

    • Execucao dinamica – remove dependencia de execucao sequencial,

    • pela combinacao de tecnicas:

      • Multiple branch prediction – Tenta adivinhar o fluxo do programa gerando os diversos

        • possiveis caminhos

    • Dataflow analysis – Escalona instrucoes para execucao quando prontas, sem levar

      • em consideracao a ordem no programa

    • Speculative execution – Executa instrucoes que provavelmente serao necessarias,

    • olhando alem do IP

    • Out of order execution

    • Super scalar

  • Cache L1: 32 KB instr. 32 KB dados; Cache L2 ate’ 2 MB

  • MMX, SIMD, e conj. instrucoes SSE2

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 2005 – atualidade, Intel Pentium Processor Extreme Edition

    • Tecnologia dual-core

    • HW para suporte multi-thread

    • Intel NetBurst microarchitecture

    • SSE, SSE2, SSE3

    • Hyper-threading

    • Tecnologia Intel Extended Memory 64

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Historico da Arquitetura IA32

  • 2006 – atualidade, Intel Core Duo e Core Solo

    • Tecnologia dual-core com low power

    • Smart cache para compartilhamento eficiente entre dois cores

    • Decodificacao melhorada e execucao SIMD

    • Dynamic power e “deeper sleep”

    • Interfaces para sensores temperatura digitais – gerencia de temperatura

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura P6:

  • Pipeline do tipo “Three-way” super escalar - decodifica e executa em media tres instrucoes por ciclo

  • 3 “super-pipelines” com 12 estagios com suporte para execucao fora de ordem.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

Microarquitetura P6 – Advanced Transfer Cache

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura P6 – Principal: unidade exec. fora de ordem.

  • Alcancado com mecanismo de “execucao dinamica”. Composto por:

    • Deep branch prediction – processador decodifica instrucoes adiante dos desvios, mantendo pipe cheio. Algoritmos avancados de predicao de salto para prever a direcao do fluxo de execucao.

    • Analise dinamica do fluxo de dados – Analise em tempo real do fluxo de dados p/ determinar dependencias (hazards), e p/ detectar chances p/ execucao fora de ordem. Essa unidade monitora diversas instrucoes, e executa-as na ordem que melhor otimizara’ o uso das diversas unidades de execucao, mantendo a integridade dos dados.

    • Execucao especulativa – habilidade para executar instrucoes alem

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura P6 – Principal: unidade exec. fora de ordem.

    • Execucao especulativa (cont.) – habilidade para executar instrucoes alem de um desvio condicional, que ainda nao foi resolvido, e para gerar os resultados na ordem correta do fluxo de instrucoes original de um programa.

    • Para exec. especulativa e’ necessario desacoplar a execucao das instrucoes do comprometimento (geracao) dos resultados (write back). A unidade de exec. fora de ordem usa uma analise do fluxo de dados para executar todas as instrucoes disponiveis (pre-fetched) em um reservatorio, e armazena resultados em regs. temporarios.

    • Unidade aposentadoria (retirement) busca linearmente no reservatorio por instrucoes completadas que nao possuem mais dependencias de dados ou previsao de desvio nao-resolvida. Quando instrucoes completadas sao encontradas, unidade de aposentadoria grava esses resultados na memoria e/ou registradores do processador, na ordem em que foram geradas inicialmente, aposentando as instrucoes que estavam no reservatorio.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura Intel NetBurst

  • Mecanismo de execucao rapida

    • ULAs com velocidade duas vezes maior que a freq. do processador

    • Operacoes basicas com inteiros em 1/2 ciclo de clock

    • Maior throughput com latencia de execucao reduzida

  • Tecnologia hyper-pipelined

    • Deep pipeline

    • Escalabilidade

  • Execucao dinamica avancada

    • Mecanismo de execucao especulativa em profundidade, e fora de ordem

      • ate’ 126 instr. em execucao; ate’ 48 loads e 24 stores no pipe

    • Capacidade avancada para previsao de desvios

      • Reduz atrasos por erros na previsao; algoritmo avancado para predicao de desvio; array com destinos de desvio de 4 K posicoes.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura Intel NetBurst pipeline

  • 3 modulos: pipeline front-end, modulo exec. fora de ordem; unidade de aposentadoria

  • pipeline front-end:

    • Alimenta unidade de exec. fora de ordem com instrucoes na ordem em que ocorrem no programa

    • pre-busca instr. IA32 que devem vir a ser executadas

    • busca instr. que ainda nao foram buscados na pre-busca

    • decodifica instr. IA32 em micro-operacoes

    • gera microcodigo para instr. Complexas

    • fornece instr. decodificadas para cache de execucao

    • preve desvios usando algoritmos avancados

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura Intel NetBurst pipeline

  • pipeline front-end (cont.):

    • Principais problemas em pipes em geral: tempo para decodificar instr. buscadas; e desperdicio na decodificao devido a instr. de desvio na cache.

    • A “trace cache” do pipe resolve esses problemas. Instr. sao buscadas e decodificadas todo o tempo pelo mecanismo de traducao (logica de busca/decodificacao), e sequencias de micro operacoes (traces) sao geradas.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura Intel NetBurst pipeline

  • modulo de execucao fora de ordem:

    • Capacidade para execucao de instrucoes fora da ordem

    • Se uma uop foi atrasada, outras uops continuam – processador re-ordena

    • Modulo consegue gerenciar seis uops por ciclo, o que e’ maior que a capacidade da trace cache e da unidade de aposentadoria.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Microarquitetura Intel NetBurst pipeline

  • unidade de aposentadoria (retirement unit):

    • Recebe resultados de uops executadas, vindos da unidade de exec. fora de ordem.

    • Processa os resultados de forma que os estados na arquitetura correspondam a ordem do programa original

    • Quando uma uop completa e escreve o resultado, essa e’ aposentada.

    • Ate’ 3 uops por ciclo podem ser aposentadas

    • A unidade “buffer de re-ordenacao” (ROB) armazena uops completadas, atualiza o estado da arquitetura na ordem original, e gerencia a ordem das excessoes.

    • Essa unidade mantem um registro dos desvios e informa os branch target buffers (BTBs)

    • Os BTBs eliminam traces pre-buscados que nao sao mais necessarios.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Instrucoes SIMD

  • Instrucoes SIMD apareceram pela primeira vez no Pentium II e Pentium MMX

  • Quatro extensoes foram introduzidas na arquitetura IA-32 para possibilitar execucao do tipo “single-instruction multiple-data”: MMX, SSE, SSE2, SSE3.

  • Cada extensao possui um conjunto de instrucoes para realizar operacoes SIMD em dados inteiros e/ou ponto flutuante em registradores MMX de 64 bits ou XMM de 128 bits.

  • MMX – Pentium II e Pentium MMX, instrucoes para arrays de inteiros – SIMD

  • SSE – Pentium III, operam com valores inteiros e ponto flutuante precisao simples em regs. XMM. Instrucoes para gerencia de estados, controle de cache, ordenacao de memoria. Aplicacoes de geomeria 3-D, renderizacao 3-D, codificacao/decodificacao de video.

  • SSE2 – Pentium 4 e Xeon, inteiros em regs MMX e XMM, ponto flutuante precisao dupla em regs. XMM, operacoes com inteiros de 128 bits.

  • SSE3 - Pentium 4, tecnologia Hyper-Threading, 13 instr. para aumento desempenho.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

Instrucoes SIMD

MMX

SSE2 / SSE3

SSE

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Tecnologia Hyper-Threading (HT)

  • Desenvolvida para melhorar o desempenho de SOs multi-thread, e de aplicacoes executadas em ambiente multi-tarefa.

  • Possibilita, em hardware, que um unico processador execute duas ou mais threads concorrentemente, compartilhando recursos.

  • A diferenca entre tecnologia HT e multi-processamento (MP), esta’ no fato de HT utilizar um unico processador, enquanto MP usa mais de um chip em sockets diferentes.

  • Um processador com suporte HT consiste de 2 ou mais processadores logicos, cada qual com seu proprio estado arquitetural.

  • Cada processador logico possui um conjunto completo de regs IA-32 de dados, segmento, controle e debug. Possuem tambem controlador de interrupcao proprio.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

Comparacao entre Hyper-Threading (HT) e Multiprocessador

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Tecnologia Hyper-Threading (HT)

  • HT precisa suporte a tecnologia a nivel de processador, chipset e BIOS, e otimizacoes no sisitema operacional.

  • A nivel de BIOS, e’ realizada a inicializacao dos processadores logicos, de forma semelhante ao que ocorre em plataformas MP.

  • Um SO projetado para rodar em plataformas MP pode usar a instr. CPUID para identificar a presenca de hardware para suporte HT, e o numero de processadores logicos disponibilizados.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Avancos na Arquitetura

  • Tecnologia Multi-core

  • Outra forma de HT, fornecendo dois ou mais cores fisicos no mesmo chip.

  • Pentium Extreme Edition: primeiro IA-32 a suportar multi-core, com dois cores + HT com dois processadores logicos em cada core. Total 4 procs.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Pentium Pro

  • Diversas instruções complexas, com tamanhos variando de 1 a 15 bytes

  • Necessidade de recursos consideráveis de hardware para implementação da lógica de decodificação e execução de instruções

  • Uma única instrução pode realizar uma ou mais leituras/escritas na memória e uma ou mais operações na ULA

  • Desafio para execução de mais de uma instrução por ciclo em um hardware super-escalar

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Pentium Pro

  • Instruções CISC obtidas da memória (geradas por compilador) são colocadas nas caches L2 e L1 – instruções possuem tamanhos variados

  • Arquitetura realiza tradução das instruções CISC contidas em L1, decodificando e transformando em instruções RISC de tamanho fixo(micro-operações ou uOPs)

  • As uOPs são colocadas em reservatório com capacidade para armazenar 40 instruções, onde aguardam para entrar no fluxo de execução

  • Quando os operandos necessários por uma determinada instrução estiverem disponíveis, e quando a unidade de execução a ser utilizada estiver livre, a instrução é retirada do reservatório e executada – EXECUÇÃO FORA DE ORDEM

  • Após execução da uOP, os resultados são escritos nos registradores, na ordem original do fluxo do programa

  • Esse processo é descrito a seguir, onde estágios 1 a 14 são operações do reservatório de uOPs, e do estágio 15 em diante uOPs são executadas

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Tecnologia Hyper Pipeline

TC Nxt IP: “Trace Cache Next Instruction Pointer”

Ponteiro do Branch Target Buffer indica a localização da próxima uOP (já transformada p/ RISC)


Arquitetura ia32

Tecnologia Hyper Pipeline

TC Fetch: “Trace Cache Fetch”

Realiza leitura da uOP RISC na Execution Trace Cache


Arquitetura ia32

Tecnologia Hyper Pipeline

Drive: “Atraso nos barramentos”

Direciona as uOPs para a unidade de alocação


Arquitetura ia32

Tecnologia Hyper Pipeline

Alloc: “Allocate”

Alocação de recursos necessários para execução da uOP como, por exemplo, buffers para load/store, entre outros


Arquitetura ia32

Tecnologia Hyper Pipeline

Rename: “Register renaming”

Renomeia os registradores locais (EAX, ...) associando aos registradores de trabalho existentes no hardware (128 no total)


Arquitetura ia32

Tecnologia Hyper Pipeline

Que: “Write into the uOP Queue”

As uOPs são colocadas nas filas, onde permanecem até que os escalonadores estejam disponíveis


Arquitetura ia32

Tecnologia Hyper Pipeline

Sch: “Schedule”

Escrita nos escalonadores e verificação de dependências. Procura dependências a serem resolvidas


Arquitetura ia32

Tecnologia Hyper Pipeline

Disp: “Dispatch”

Envio das uOPs para a unidade de execução apropriada


Arquitetura ia32

Tecnologia Hyper Pipeline

RF: “Register File”

Leitura dos registradores, que contém os operandos das operações pendentes (operandos das ULAs, ...)


Arquitetura ia32

Tecnologia Hyper Pipeline

Ex: “Execute”

Executa as uOPs na unidade apropriada (recurso alocado)


Arquitetura ia32

Tecnologia Hyper Pipeline

Flgs: “Flags”

Cálculo dos flags (zero, negativo, ...).

Flags normalmente servem de entrada para instruções de desvio.


Arquitetura ia32

Tecnologia Hyper Pipeline

Br Ck: “Branch Check”

Esse estágio compara o resultado obtido (calculado) para uma operação de desvio, com a predição realizada originalmente


Arquitetura ia32

Tecnologia Hyper Pipeline

Drive: “Atraso no barramento”

Resultado da verificação do desvio (erro ou acerto na predição) é informado para o início do processo


Arquitetura ia32

Arquitetura IA32 – Modos de operacao

  • Modo protegido: estado nativo do processador, modo multi-tarefa.

  • Modo real: modelo de programacao do 8086, usado para compatibilidade. Processador entra nesse modo no reset e power-up.

  • Modo de gerencia de sistema (SMM): usado por SOs para funcoes dependentes de plataforma, ex. gerencia de energia, seguranca do sistema, entre outros. Processador entra em SMM quando o pino externo SMI# e’ ativado.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

  • Uma tarefa pode enderecar 2^32 = 4 GB enderecamento linear, e 2^36 = 64 GB enderecamento fisico.

  • Uma pilha e’ utilizada para chamada e passagem de paramentos para sub-rotinas.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

  • EAX – acumulador para operandos e resultados de operacoes

  • EBX – Ponteiro para dados no segmento de dados

  • ECX – Contador para operacoes com string e lacos

  • EDX – ponteiro para I/O

  • ESI – Ponteiro para dados no segmento apontado pelo reg. DS, e ponteiro origem para operacoes string

  • EDI – Ponteiro para dados no segmento apontado pelo reg. ES, e ponteiro destino para operacoes string

  • ESP – Ponteiro para pilha (segmento SS)

  • EBP – Ponteiro para dados na pilha (segmento SS)

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

  • Memoria linear: Codigo, Dados e Pilha estao no mesmo espaco de enderecamento, e para o programa a memoria e’ um espaco de enderecamento contiguo de 2^32 bytes.

  • Memoria segmentada: Para o programa a memoria e’ um grupo de segmentos de memoria independentes, onde codigo, dados e pilha estao em segmentos separados. Processador usa registradores de segmento e um deslocamento para calcular um endereco linear. Programas podem acessar 16.383 segmentos diferentes, cada um com 2^32 bytes enderecos.

  • Segmentacao aumenta a confiabilidade do sistema evitando, por exemplo, que a pilha seja corrompida.

  • Modo real: modelo de memoria original do 8086, usado para compatibilidade com programas legados.

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

Arquitetura IA32, Porto Alegre, Outubro de 2006


Arquitetura ia32

Arquitetura IA32 – Registradores

  • Memoria linear: Codigo, Dados e Pilha estao no mesmo espaco de enderecamento, e para o programa a memoria e’ um espaco de enderecamento contiguo de 2^32 bytes.

  • Memoria segmentada: Para o programa a memoria e’ um grupo de segmentos de memoria independentes, onde codigo, dados e pilha estao em segmentos separados. Processador usa registradores de segmento e um deslocamento para calcular um endereco linear. Programas podem acessar 16.383 segmentos diferentes, cada um com 2^32 bytes enderecos.

  • Segmentacao aumenta a confiabilidade do sistema evitando, por exemplo, que a pilha seja corrompida.

  • Modo real: modelo de memoria original do 8086, usado para compatibilidade com programas legados.

Arquitetura IA32, Porto Alegre, Outubro de 2006


  • Login