g s e arquitetura ia32, porto alegre, outubro de 2006 arquitetura ia32 eduardo augusto bezerra

50
G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra <[email protected]>

Upload: victorhugo-alves

Post on 07-Apr-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Arquitetura IA32

Eduardo Augusto Bezerra<[email protected]>

Page 2: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Resumo

• Historico da arquitetura IA32

• Avancos na arquitetura

• Tecnologia hyper pipeline

• Arquitetura IA32

Page 3: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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 parasegmento de memoria de ate’ 64KB. Com 4 regs de segmento aomesmo tempo, 8086/8088 enderecam 256KB sem chavear segmentos.

Page 4: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

• 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 taiscomo Linux e Windows rodam em modo protegido.

• Modo real: desabilita protecoes para permitir compatibilidade comsw 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 doendereco fisico. Descriptors = end. 24 bits = 16MB mem. fisica.

Historico da Arquitetura IA32

Page 5: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

• 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 paragerencia de memoria virtual.

• Suporte para estagios paralelos.

Historico da Arquitetura IA32

Page 6: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 7: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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).

Page 8: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 9: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 10: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 11: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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 diversospossiveis 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

Page 12: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 13: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 14: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 15: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Avancos na Arquitetura

Microarquitetura P6 – Advanced Transfer Cache

Page 16: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 17: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 18: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 19: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 20: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 21: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 22: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 23: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 24: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Avancos na Arquitetura

Instrucoes SIMD

MMX

SSE

SSE2 / SSE3

Page 25: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 26: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Avancos na Arquitetura

Comparacao entre Hyper-Threading (HT) e Multiprocessador

Page 27: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 28: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 29: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 30: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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

Page 31: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

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)

Tecnologia Hyper Pipeline

Page 32: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

TC Fetch: “Trace Cache Fetch”Realiza leitura da uOP RISC na Execution Trace

Cache

Tecnologia Hyper Pipeline

Page 33: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Drive: “Atraso nos barramentos”Direciona as uOPs para a unidade de alocação

Tecnologia Hyper Pipeline

Page 34: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

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

Tecnologia Hyper Pipeline

Page 35: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Rename: “Register renaming”Renomeia os registradores locais (EAX, ...)

associando aos registradores de trabalho existentes no hardware (128 no total)

Tecnologia Hyper Pipeline

Page 36: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Que: “Write into the uOP Queue”As uOPs são colocadas nas filas, onde permanecem

até que os escalonadores estejam disponíveis

Tecnologia Hyper Pipeline

Page 37: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Sch: “Schedule”Escrita nos escalonadores e verificação de dependências.

Procura dependências a serem resolvidas

Tecnologia Hyper Pipeline

Page 38: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Disp: “Dispatch”Envio das uOPs para a unidade de execução

apropriada

Tecnologia Hyper Pipeline

Page 39: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

RF: “Register File”Leitura dos registradores, que contém os operandos das operações pendentes (operandos das ULAs, ...)

Tecnologia Hyper Pipeline

Page 40: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Ex: “Execute”Executa as uOPs na unidade apropriada (recurso

alocado)

Tecnologia Hyper Pipeline

Page 41: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Flgs: “Flags”Cálculo dos flags (zero, negativo, ...).

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

Tecnologia Hyper Pipeline

Page 42: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Br Ck: “Branch Check”Esse estágio compara o resultado obtido (calculado)

para uma operação de desvio, com a predição realizada originalmente

Tecnologia Hyper Pipeline

Page 43: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSE

Drive: “Atraso no barramento”Resultado da verificação do desvio (erro ou acerto na

predição) é informado para o início do processo

Tecnologia Hyper Pipeline

Page 44: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 45: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

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.

Page 46: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

• 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 – Registradores

Page 47: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Arquitetura IA32 – Registradores

Page 48: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

• 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 – Registradores

Page 49: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

Arquitetura IA32 – Registradores

Page 50: G S E Arquitetura IA32, Porto Alegre, Outubro de 2006 Arquitetura IA32 Eduardo Augusto Bezerra

GSEArquitetura IA32, Porto Alegre, Outubro de 2006

• 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 – Registradores