Professional Documents
Culture Documents
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
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)
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)
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
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)
5
Diagrama funcional da arquitectura Pentium III
6
Registos Intel Pentium III (IA-32)
7
Registos de Controlo – Intel Pentium III
8
Unidade de vírgula flutuante – Pentium III
9
Registos e tipos de dados MMX
10
Micro arquitectura Intel P6
11
Micro arquitectura Intel Netburst
12
Micro arquitectura Intel Core
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
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).
Hyper-threading e multi-processador
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.
16
Processadores Quad Core
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
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
18
Arquitectura Intel de 64 bits – IA64 (2)
FPU Registers
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
20