20
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

Arquitectura dos Processadores Intel

Embed Size (px)

Citation preview

Page 1: Arquitectura dos Processadores Intel

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

Page 2: Arquitectura dos Processadores Intel

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

Page 3: Arquitectura dos Processadores Intel

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

Page 4: Arquitectura dos Processadores Intel

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

Page 5: Arquitectura dos Processadores Intel

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”

Page 6: Arquitectura dos Processadores Intel

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)

Page 7: Arquitectura dos Processadores Intel

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

Page 8: Arquitectura dos Processadores Intel

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

Page 9: Arquitectura dos Processadores Intel

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

Page 10: Arquitectura dos Processadores Intel

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)

Page 11: Arquitectura dos Processadores Intel

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

Page 12: Arquitectura dos Processadores Intel

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

Page 13: Arquitectura dos Processadores Intel

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

Page 14: Arquitectura dos Processadores Intel

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

Page 15: Arquitectura dos Processadores Intel

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

Page 16: Arquitectura dos Processadores Intel

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

Page 17: Arquitectura dos Processadores Intel

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”

Page 18: Arquitectura dos Processadores Intel

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)

Page 19: Arquitectura dos Processadores Intel

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

Page 20: Arquitectura dos Processadores Intel

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