Você está na página 1de 15

COMO FUNCIONA A ARQUITETURA x86?

PEDRO BOTELHO - ENGENHARIA DE COMPUTAÇÃO

Engenharia de Computação - UFC


Monitoria de Arquitetura de Computadores
AGENDA

• Como funciona a Arquitetura x86?


• A Arquitetura x86
• Modelo da Arquitetura
• Registradores
• Conjunto de Instruções
• O Assembly x86
• Modos de Processamento
• Organização de Memória

Pedro Botelho
Engenharia de Computação - UFC
A ARQUITETURA x86

• Arquitetura → Descreve as características de uma linha de


processadores
• Surge com o ISA x86-16 com o 8086 da Intel, em 1978
• Operava em 16-bit

• Consolidou-se x86-32 com o


80386DX, lançado em 1985
• Operando em 32-bit
• Base de muitos processadores

Pedro Botelho
Engenharia de Computação - UFC
MODELO DA ARQUITETURA

• Baseado no modelo de Von Neumann


• Memória Interna → Armazenamento de Dados
• Unidade Central de Processamento → Executa Instruções
• Unidade Lógica e Aritmética → Realiza operações lógicas e aritméticas
• Unidade de Controle → Controla fluxo de dados e a execução de instruções
• Registradores → Pequenas e rápidas células de armazenamento
• Dispositivos de Entrada e Saída → Interface com o exterior
• Barramentos → Caminhos que interligam os componentes

Pedro Botelho
Engenharia de Computação - UFC
REGISTRADORES

• Pequenas células de armazenamento → Dentro da CPU


• Acesso Rápido → Posições Intermediárias para Manipulação de Dados
• Armazenamento Temporário → Volátil
• Comunicação ULA ⇋ UC → Essencial para utilização de Instruções
• A Arquitetura x86 a princípio dispõe de 16 registradores
• São de Propósito Geral ou de Propósito Específico
• Os de propósito geral podem ter um uso específico

Propósito Geral Propósito Específico


EAX (Acumulador) EBP (Base da Pilha) EFLAGS (Estado da CPU)
EBX (Base) ESP (Ponteiro de Pilha) EIP (Ponteiro de Instrução)
ECX (Contador) EDI (Índice de Destino) CS, DS, SS (Segmentos Principais)
EDX (Dados) ESI (Índice de Origem) ES, GS, FS (Segmentos Extra)

Pedro Botelho
Engenharia de Computação - UFC
REGISTRADORES ESPECIAIS

• Registradores MMX → Primeiras operações SIMD


• MMX → Primeira tecnologia de instruções vetoriais da Intel
• SIMD → Single-instruction, multiple-data
• Adicionado no Pentium → Melhorar a performance de operações de
multimidia e comunicação
• Oito registradores de 64-bit MMX0 a MMX7
• “Apelidos” para os registradores usados na FPU
• Instruções MMX operam com os registradores em paralelo
• Registradores XMM → Operações SIMD utilizados por SSE
• SSE → Streaming SIMD Extensions
• Depois utilizado pelo AVX
• Oito registradores de 128-bit XMM0 a XMM7
• Unidade de Ponto-Flutuante (FPU)
• Realiza operações de ponto-flutuante em alto performance
• Inicialmente um coprocessador x87 do x86
• Integrado no chip a partir do i468
• Oito registradores de 80-bit ST(0) a ST(7)
• Outros registradores para controle
Pedro Botelho
Engenharia de Computação - UFC
REGISTRADORES IMPLÍCITOS

• É possível acessar partes dos registradores de propósito geral


• Registrador de 32-bit (explícito)
• Parte de 16-bit Registrador EAX e suas partes
• Partes de 8-bit
• High (H)
AH AL
• Low (L) AX
• Aplicável a EAX, EBX, ECX
EAX
e a EDX
• Para os ESI, EDI, EBP e ESP somente há partes de 16-bit

Registrador ESI e sua parte


SI
ESI

Pedro Botelho
Engenharia de Computação - UFC
CONJUNTO DE INSTRUÇÕES

• Instruções → Algo que o Processador sabe fazer


• Conjunto de Instruções
• Dois designs principais → CISC e RISC
• Design CISC → Conjunto Complexo de Instruções
• Instruções levam vários ciclos de clock
• CISC está a incorporar o design RISC
• Exemplo de Arquiteturas: x86, AMD64, MCS-51, etc...

Pedro Botelho
Engenharia de Computação - UFC
CONJUNTO DE INSTRUÇÕES

• 8086 → Primeiro membro da família IA-16


• 80386DX → Primeiro membro da família IA-32
• Introduziu registradores de 32-bits e barramento de endereços de
32-bits
• Pode endereçar memória virtual maior que a memória física
• Cada programa tem 4GB de espaço de endereçamento linear
• Xeon → Primeiro membro da família IA-64
• Intel64 → Implementação da Intel do x86-64
da AMD, com o Opteron
• Espaço de endereçamento de 64-bit
• Retrocompatibilidade com IA-32

Pedro Botelho
Engenharia de Computação - UFC
O ASSEMBLY x86
• Instruções manipulam:
• Unidade Lógica e Aritmética
• Unidade de Controle
• Interrupções
• Coprocessadores
• Instruções Mnemônicas:
• Facilita a memorização e
entendimento
• Importância
• Programador conhece o ambiente
• Arquitetura “Simples” → Fácil Migração
• Controle Total de Hardware ou suprimido
pelo Sistema Operacional

Pedro Botelho
Engenharia de Computação - UFC
MODOS DE PROCESSAMENTO

• Gerenciamento de Memória → Modo de Processamento


• Cada um tem vantagens e desvantagens
• Proteção de partes da memória
• Protegido → Nativo e com memória segmentada
• Mais robusto ⇋ Restrições de Acesso ao Hardware
• Suporta vários programas ao mesmo tempo
• Cada programa → Área de memória protegida de 4GB
• Exemplos: Linux e Windows 10
• Real → Sem restrições de acesso a memória e I/O
• Suporta apenas um programa por vez
• Apenas 1MB de memória endereçável
• Sem restrições de acesso ao hardware
• Acesso a qualquer localização de memória
• Interrupções ativas
• Exemplos: MS-DOS, Windows 95 e Windows 98

Pedro Botelho
Engenharia de Computação - UFC
MODOS DE PROCESSAMENTO

• Ainda há alguns modos especiais


• Virtual-8086 → Híbrido entre o modo real e protegido
• Opera em modo protegido → Cria um ambiente virtual do 8086
• Simula sua operação em modo de endereçamento real
• Exemplos: Janela de Comando do Windows NT e Windows 2000
• Gerenciamento de Sistema → Segurança ou gerenciamento
de energia

Pedro Botelho
Engenharia de Computação - UFC
ORGANIZAÇÃO DE MEMÓRIA

• Memória física é endereçada como Memória Virtual


• Primeira grande abstração de hardware
• Um endereço da memória virtual pode ser na verdade do HD
• Porção ativa fica na memória principal

Pedro Botelho
Engenharia de Computação - UFC
ORGANIZAÇÃO DE MEMÓRIA

• Memória virtual é dividida em espaços de endereçamento


• Programas não acessam dados de outros programas
• Espaços de endereçamento protegidos uns dos outros

Pedro Botelho
Engenharia de Computação - UFC
ORGANIZAÇÃO DE MEMÓRIA

• Cada espaço de endereçamento é dividido em segmentos


• Particionamento do espaço do programa para organização
• Dados separados de instruções
• É possível navegar pelos segmentos
por deslocamento
• Por exemplo: Chegar a um endereço
no segmento de dados partindo
do início

Pedro Botelho
Engenharia de Computação - UFC

Você também pode gostar