You are on page 1of 20

Arquitecturas dos microprocessadores Intel

 Primeiras arquitecturas
 4004, 8008, 8080
 8086 (x86)
 Micro arquitecturas
 Pentium III
 P6
 Netburst
 Core
 Tecnologias
 Hyper-threading
 Multi-core
 SIMD
 IA-32 bits e IA-64 bits
 Registos
 Instruções
 Organização de memória

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 1

Microprocessador Intel 4004

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 2

1
Microprocessador Intel 4004
 Frequência máxima do relógio (clock): 740 kHz
 Duração do ciclo de instrução: 10.8 µs (8 ciclos do relógio /
ciclo de instrução)
 Tempo de execução de uma instrução: 1 ou 2 ciclos de
instrução; 46300 ou 92600 instruções por segundo
 Armazenamento separado de instruções e dados
 Bus único multiplexado de 4-bit para transferir:
 Endereços de 12 bits
 Instruções de 8 bits
 Palavras (words) de dados de 4 bits
 Conjunto de 16 registos de 4 bits cada; 1 acumulador
 Pilha (stack) interna de sub-routinas com 3 níveis de
profundidade
 Conjunto de 46 instruções (41 eram de 8 bits e 5 de 16 bits)
 Máquina de um operando (2º): o 1º implícito (acumulador)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 3

Microprocessador Intel 8080

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 4

2
Microprocessador Intel 8080
 Microprocessador de 8 bits (1974), frequência de 2 MHz
(500000 instruções por segundo)
 Utilizado no primeiro microcomputador (PC) Altair 8800
 Bus de endereços de 16 bits e bus de dados de 8 bits,
permitia fácil acesso a 64 kilobytes de memória
 Sete registos de 8 bits (A, B, C, D, E, H e L), sendo A o
acumulador de 8 bits e os outros seis podiam ser usados aos
pares com registos de 16 bits (BC, DE, HL)
 Apontador de pilha (stack) de 16 bits para a memória e um
contador de programa (program counter – PC) de 16 bits
 Suportava 256 portos de entrada/saída (input/output – I/O),
acedidos via instruções I/O dedicadas
 Conjunto de 48 instruções de 8 bits e de 16 bits, compatível
com o 4004 (e 8008)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 5

Microprocessador Intel 8086

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 6

3
Microprocessador Intel 8086
 Duas unidades
 Unidade de interface com o bus (Bus Interface Unit – BIU)
 Unidade de execução (Execution Unit – EU)
 Unidade aritmética e lógica (ALU) de 16 bits
 Frequência de 5 MHz
 Bus de dados e endereços multiplexados
 Bus de dados de 16 bits permite ler ou escrever na memória ou
nos portos I/O dados de 16 bits ou de 8 bits
 20 linhas de endereços permitem endereçar até 220 (1048576
= 1M bytes) de memória
 Segmentação de memória – registos dedicados
 Conjunto de instruções expandido, não retro-compatível
 Máquina de dois operandos – registos de uso geral
 Co-processador matemático 8087
 Vários modos de endereçamento

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 7

Unidades da arquitectura Pentium III

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 8

4
Micro-arquitectura Intel (Pentium III)
 “Superscalar”
 Três vias (three ways)
 “Pipeline”
 12 estágios
 4 unidades de processamento
 Busca e descodificação (“fetch/decode”)
 Expedição e execução (“dispatch and execution”)
 Retiro ou conclusão (retire)
 Reservatório de instruções (“instruction pool”)
 Subsistema de memória
 Caches e buffers
 Execução “fora de ordem” (“out of order”) ou dinâmica
 Profunda previsão de derivação (“deep branch
prediction”)
 Análise dinâmica do fluxo de dados
 Execução especulativa (pipelining)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 9

Micro-arquitectura Intel (Pentium III)


 Modos de operação
 Protegido (Protected mode) – inclui o modo Virtual-8086
 Real-address
 Gestão de sistema (System management)
 Intel Architecture, 32-bit (IA-32)
 Registos
 Tipos de dados
 Modos de endereçamento
 Interrupções
 Conjunto de instruções
 Inteiras (e lógicas)
 Vírgula flutuante
 Multimédia (MMX)
 Streamed SMID Extensions (SSE)
 SIMD – “Single Intruction stream Multiple Data stream”

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 10

5
Diagrama funcional da arquitectura Pentium III

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 11

Processamento de interrupções – Pentium III


 Interrupção – no sentido genérico, qualquer suspensão da
execução de um programa pelo sistema operativo, com
suporte do processador
 Duas classes de eventos podem provocar essa suspensão
 Interrupções (interrupts) – geradas pelo hardware
 Mascaráveis (maskable) – reconhecidas pelo processador apenas
quando a flag I estiver activa (=1)
 Não mascaráveis (nonmaskable) – reconhecidas sempre pelo
processador, não podem ser ignoradas
 Excepções (exceptions) – geradas pelo software
 Detectadas pelo processador – ocorrem quando o processador
detecta um erro na execução de uma instrução
 Programadas – geradas por instruções (e. g. INT)
 Tabela de vectores de interrupção (“interrupt vector table”)
 Cada interrupção está identificada por um número usado como
índex de uma tabela cujas entradas (vectores) contêm os
endereços das rotinas de serviço às interrupções (e excepções)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 12

6
Registos Intel Pentium III (IA-32)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 13

Registo EFlags – Intel Pentium III

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 14

7
Registos de Controlo – Intel Pentium III

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 15

Tipos de dados Intel Pentium III

Tipos de dados fundamentais

Tipos de dados específicos

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 16

8
Unidade de vírgula flutuante – Pentium III

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 17

Tipos de dados de vírgula flutuante

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 18

9
Registos e tipos de dados MMX

Registos de 64 bits Tipos de dados multimédia

(partilhados com a FPU)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 19

Registos e tipos de dados SIMD

Tipo de dados SIMD de vírgula flutuante


(4 x 32)

Registos de 128 bits (4 x 32)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 20

10
Micro arquitectura Intel P6

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 21

Micro arquitectura Netburst (Pentium IV)


 Rápido motor de execução (de instruções)
 “Hyper Pipeline” de 20 a 31 estágios
 Execução dinâmica avançada
 Motor de execução especulativa, fora de ordem e
“profundo”
 Capacidade melhorada de previsão de derivação
 Novo subsistema de cache
 Caches de 1º e 2º nível
 “Execution Trace Cache”
 Tamanho da linha de cache de 64 bytes
 Interface de bus de elevado desempenho e “quad-
pumped”
 Característica superscalar que permite paralelismo
 Conjunto de registos (de hardware) melhorado

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 22

11
Micro arquitectura Intel Netburst

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 23

Micro arquitectura Netburst – unidades


 Interface com o bus
 Memória cache – L1; L2 (e L3)
 “Front-end pipeline”
 Unidade de busca e descodificação (“fetch/decode”)
 “Trace cache microcode ROM”
 “Branch prediction”
 “Branch target buffers”
 Núcleo de execução “fora de ordem” (“Out-of-order
execution core”)
 Unidade de expedição e execução (“dispatch and
execution”)
 Reservatório de instruções (“instruction pool”)
 Unidade de retiro ou conclusão (retirement)
 Buffer de reordenação (“reorder buffer”)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 24

12
Micro arquitectura Intel Core

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 25

Micro arquitectura Intel Core (1)


 Ampla execução dinâmica (“Wide Dynamic Execution”)
 Eficiente pipeline de 15 estágios
 Três unidade aritméticas e lógicas
 Quatro descodificadores para descodificar até cinco instruções
por ciclo
 Macro-fusão e micro-fusão para melhorar o débito “front-end”
 Despacho até 6 micro-operações por ciclo
 Retiro até 4 micro-operações por ciclo
 Avançada previsão de derivação
 “Stack pointer tracker” para melhorar a eficiência de execução
das entradas e saídas de funções e procedimentos
 Avançada cache inteligente (“Advanced Smart Cache”)
 L2 com capacidade até 4 MB, associativa de 16-vias
 Optimizada para ambientes de execução multi-core e “single-
threaded”
 “Data-path” interno de 256 bit para melhorar a largura de banda
da cache de dados L2 para a L1

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 26

13
Micro arquitectura Intel Core (2)
 Acesso inteligente à memória (“Smart Memory
Access”)
 Pré-busca por hardware para reduzir a latência das
“faltas” na cache L2
 Pré-busca por hardware para reduzir a latência das
“faltas” na cache de dados L1
 Análise das dependências entre operações de memória
para melhorar a eficiência do motor de execução
especulativa
 “Advanced Digital Media Boost”
 Débito, num único ciclo, de instruções SIMD de 128-bit
 Executadas até 8 operações de vírgula flutuante por ciclo
 Disponíveis três portos para “despacho” de instruções
SIMD para execução

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 27

Micro arquitectura Intel Core – unidades


 “Front end”
 Alimenta o motor (ou núcleo) de execução
 Características
 Unidade de busca de instruções
 Unidade de descodificação de 4 instruções simultâneas
 Macro fusão de duas instruções
 Micro fusão de duas micro-operações
 Núcleo de execução (“Execution core”)
 Superscalar e processa instruções fora de ordem
 Características
 Podem ser enviadas para execução até 6 micro operações
por ciclo
 Podem ser retiradas até 4 instruções por ciclo
 Três unidade aritméticas e lógicas completas
 Maioria das instruções SIMD executadas num ciclo
 Podem executadas até 8 instruções de vírgula flutuante por
ciclo

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 28

14
Tecnologia Hyper-threading (1)
 Fornece a capacidade “multi-threading” em hardware num
único package físico usando recursos de execução
partilhados no núcleo do processador.
 Suporta o paralelismo ao nível da thread e do processo
presente no sistemas operativos contemporâneos e
aplicações de elevado desempenho disponibilizando dois ou
mais processadores lógicos num único chip.
 A arquitectura de um processador IA-32 que suporte HT
consiste de dois ou mais processadores lógicos, cada um
possuindo o seu próprio estado arquitectural IA-32.
 Cada processador lógico contem um conjunto completo IA-32
de registos de dados, registos de segmento, registos de
controlo, registos de debug e a maior parte dos registos de
estado (“Machine State Registers” – MSRs).
 Cada processador lógico possui também o seu próprio
controlador de interrupções programável avançado
(“Advanced Programmable Interrupt Controller” – APIC).

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 29

Hyper-threading e multi-processador

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 30

15
Tecnologia Hyper-threading (2)
 Difere de um sistema multi-processador que usa packages
fisicamente separadas estando cada processador físico em
socket distintas.
 Ao contrário da configuração de um sistema MP tradicional
que usa dois ou mais processadores IA-32 fisicamente
separados, os processadores lógicos de um processador que
suporte HT partilham os recursos do núcleo do processador
físico incluindo o motor de execução e o interface com o bus.
 Esta configuração permite que duas ou mais threads sejam
executadas simultaneamente em cada processador físico.
 Cada processador lógico executa instruções de uma thread
usando os recursos do núcleo do processador.
 O núcleo executa estes threads concorrentemente usando
um escalonamento de instruções “fora-de-ordem” para
maximizar o uso das unidades de execução durante cada
ciclo de relógio.

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 31

Processadores Dual Core

Dois “cores” com


partilha de: Dois “cores” sem
Cache L2 partilha de recursos
Bus interface

Cada “core”, logicamente


dividido em dois, partilha:
Execution Engine
Dois “cores” sem Cache L2
partilha de recursos Bus Interface

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 32

16
Processadores Quad Core

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 33

Organização de memória – IA32 (1)

236-1 35 0
Endereço físico

Modelo linear
31 0
Memória Endereço linear

Modelos segmentados
15 0 31 (≤) 0
Segmento Offset
02016
01016 Segmento 1 “Real-address”
00016 Segmento 0 15 0 15 0
Segmento Offset

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 34

17
Organização de memória – IA32 (2)
 Organização do espaço de endereçamento na memória
principal
 Unidade endereçável, ou palavra, com comprimento 8 bits (1
Byte)
 Endereços físicos de 36 bits, no máximo (64 GB de capacidade)
 Modelo linear (ou flat)
 Espaço de endereçamento único com endereços de 32 bits (4
GB)
 Modelo segmentado
 Selector de segmento com 16 bits – 65536 segmentos, no
máximo
 Offset de segmento com um máximo de 32 bits
 Espaço de endereçamento virtual máximo de 216 × 232 = 256 TB
 Modo “real-address” (ou “virtual-8086”) do modelo segmentado
 Endereços com 16 bits para o “offset”
 Segmentos de 64 KB
 Espaço de endereçamento linear máximo de 1 MB
 Inicio de cada segmento nos endereços múltiplos de 16 (10h ou
1000b)
 Cálculo do endereço linear – (endereço segmento) * 10H + Offset

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 35

Arquitectura Intel de 64 bits – IA64 (1)

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 36

18
Arquitectura Intel de 64 bits – IA64 (2)
FPU Registers

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 37

Arquitectura Intel de 64 bits – IA64 (3)


 Compatível com IA-32 bits
 Registos
 Registos de uso geral de 64 bits
 RAX, RBX , RCX , RDX , RSI , RDI , RSP , RBP
 8 registos adicionais de uso geral de
 64 bits: R8-R15
 32 bits: R8D-R15D
 16 bits: R8W-R15W
 8 bits: R8L-R15L
 Ponteiro de instrução (RIP) e flags (RFLAGS) de 64 bits
 8 registos adicionais de 128 bits para extensões
“streaming SIMD”
 XMM8-XMM15
 Gestão de memória
 Espaço de endereçamento linear de 64 bits
 Endereços físicos até 40 bits

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 38

19
Resumo
 Primeiras arquitecturas
 Máquinas de 1 operando (endereço)
 Arquitectura 8086 (família x86)
 Máquinas de 2 operandos (endereços)
 Unidade de vírgula flutuante (floating point unit – FPU)
 Memória cache
 Pipelining
 Micro arquitecturas
 Extensões multimédia (MMX)
 Superscaling
 Execução “fora de ordem” e especulativa
 “Hyper-threading”
 Multi-core
 Extensões Streamed SIMD (SSE)
 IA-32 bits e IA-64 bits
 Registos
 Instruções
 Organização de memória

Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 39

20