arquitectura dos processadores intel
TRANSCRIPT
1
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 1
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ç 2
Microprocessador Intel 4004
2
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
3
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
4
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
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 8
Unidades da arquitectura Pentium III
5
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 9
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ç 10
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”
6
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 11
Diagrama funcional da arquitectura Pentium III
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 12
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)
7
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 13
Registos Intel Pentium III (IA-32)
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 14
Registo EFlags – Intel Pentium III
8
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 15
Registos de Controlo – Intel Pentium III
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 16
Tipos de dados Intel Pentium III
Tipos de dados fundamentais
Tipos de dados específicos
9
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 17
Unidade de vírgula flutuante – Pentium III
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 18
Tipos de dados de vírgula flutuante
10
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 19
Registos e tipos de dados MMX
Tipos de dados multimédiaRegistos de 64 bits
(partilhados com a FPU)
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 20
Registos e tipos de dados SIMD
Tipo de dados SIMD de vírgula flutuante
(4 x 32)
Registos de 128 bits (4 x 32)
11
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 21
Micro arquitectura Intel P6
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 22
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
12
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 23
Micro arquitectura Intel Netburst
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 24
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”)
13
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 25
Micro arquitectura Intel Core
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 26
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
14
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 27
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ç 28
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
15
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 29
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ç 30
Hyper-threading e multi-processador
16
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 31
Tecnologia Hyper-threading (2)
� Difere de um sistema multi-processador que usa packagesfisicamente 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 threadusando 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ç 32
Processadores Dual Core
Dois “cores” compartilha de:Cache L2Bus interface
Dois “cores” sempartilha de recursos
Dois “cores” sempartilha de recursos
Cada “core”, logicamentedividido em dois, partilha:Execution EngineCache L2Bus Interface
17
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 33
Processadores Quad Core
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 34
Organização de memória – IA32 (1)
Memória
Segmento 1
Segmento 0
Endereço físico
Endereço linear
Segmento
OffsetSegmento
Offset
236-1
00016
0
0
0
0
0
0
35
31
31 (≤)
15 15
15
Modelos segmentados
Modelo linear
01016
02016
“Real-address”
18
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 35
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ç 36
Arquitectura Intel de 64 bits – IA64 (1)
19
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 37
Arquitectura Intel de 64 bits – IA64 (2)
FPU Registers
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 38
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
20
Arquitectura de Computadores Jerónimo Nunes - Dep. de Matemática - UAç 39
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