Arquitectura de Computadores
(ACom)
MEAer
Acetatos das Aulas Te´
oricas
Vers˜ao 4.0 - Portuguˆes
Aula N
o16:
T´ıtulo: Fam´ılia Intel x86; Arquitecturas de processadores em pipeline
Sum´ario: Fam´ılia Intel x86 (registos, bits de estado, mem´oria,
Fam´ılia Intel x86; Arquitecturas de
processadores em pipeline
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 1 / 52
Arquitectura de Computadores
(ACom)
Aula Anterior Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Na aula anterior...Unidades de Processamento e de Controlo do P3
Fluxo de Execu¸c˜ao de uma Instru¸c˜ao
◮ Carregamento do Registo de Instru¸c˜ao
◮ Carregamento dos Operandos
◮ Execu¸c˜ao da Instru¸c˜ao
◮ Escrita do Resultado
◮ Teste de Interrup¸c˜oes
Road Map Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 3 / 52
Planeamento Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Planeamento
Semana Teórica 1 Teórica 2 Problemas (P) / Laboratório (L)
16-fev a 20-fev CARNAVAL Apresentação da cadeira; Introdução P0: Revisões SD 23-fev a 27-fev L1: Modos de endereçamento 02-mar a 06-mar Operações lógicas e aritméticas ISA do P3 P1: Assembly do P3 09-mar a 13-mar L2: Instruções Aritméticas e Salto 16-mar a 20-mar Técnicas de programação em Assembly Geração do código objecto. L3: Rotinas; Passagem parâmetros 23-mar a 27-mar Estrutura de um processador Unidade de processamento
30-mar a 03-abr Unidade de controlo PÁSCOA PÁSCOA 06-abr a 10-abr PÁSCOA L4: IO; Interrupções 13-abr a 17-abr Organização interna do P3: circuito de controlo Organização interna do P3: microprogramação P3: Micro-programação 20-abr a 24-abr L5: Micro-programação 27-abr a 01-mai Dependências dados e de controlo; Conflitos L6: Arduino
Instruções Assembly; Operandos e modos de endereçamento; Processador P3
Operandos; Pilha; Instruções de acesso à memória; Codificação das instruções. Periféricos do P3; Interrupções e contagem do
tempo no P3
Tradução de linguagem de alto nível para Assembly
P2: Interrupções; Codificação de Instruções Controlo microprogramado; Organização
interna do P3: circuito de dados Família Intel x86; Arquitecturas de
processadores em pipeline
Arquitecturas de processadores em pipeline; Dependências Tópicos avançados de arquitectura de
Sum´ario Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 5 / 52
Hoje:
ISA da fam´ılia Intel x86 (registos, bits de estado,
mem´oria, instru¸c˜oes); Processamento em Pipeline.
Fam´ılia Intel x86
Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima AulaFam´ılia Intel x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 7 / 52
Intel 4004 (1971) Fam´ılia Intel x86 Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Intel 4004 (1971) Intel 8086 (1978)
Fam´ılia Intel x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 7 / 52
Intel 4004 (1971) Intel 8086 (1978) Intel Pentium IV (2000) Fam´ılia Intel x86 Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Intel 4004 (1971) Intel 8086 (1978)
Fam´ılia Intel x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 8 / 52
Fam´ılia Intel x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Fam´ılia Intel x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 8 / 52
Processador Intel 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Arquitectura do processador Intel 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 10 / 52 BIU - Bus Interface Unit
EU - Execution Unit IP - Instruction Pointer
Arquitectura do processador Intel 8086
Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Primeiras gera¸c˜oes: 8086 / 8088 / 80186 / 80188 -processadores de 16 bits
Conjunto de Instru¸c˜oes da Fam´ılia Intel x86
(Instruction-Set Architecture – ISA)
◮ Registos
◮ Bits de estado
◮ Mem´oria
Registos do processador 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 12 / 52
Registos do processador 8086:
Registos gen´ericos do processador 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Registos gen´ericos do processador 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 13 / 52
Registos de uso geral de 16-bits: AX, BX, CX, DX
AX - accumulator
BX - base
CX - counter
DX - data
Registos gen´ericos do processador 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Registos de uso geral de 16-bits: AX, BX, CX, DX
AX - accumulator BX - base CX - counter DX - data AX BX CX DX AH AL BH BL CH CL DH DL
Registos espec´ıficos do processador 8086
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 14 / 52
Registos espec´ıficos (todos de 16 bits):
IP - Instruction Pointer, (equivalente ao PC do P3...)
SP - Stack Pointer
BP - Base Pointer
SI - Source Index
DI - Destination Index
Mais o registo de estado...
Bits de Estado Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Registo de Estado: x x x x OF DF IF TF SF ZF x AF x PF x CF
x - bit n˜ao usado OF - excesso (overflow)
DF - direc¸c˜ao: nas instru¸c˜oes de manipula¸c˜ao de strings, indica se se come¸ca de frente para tr´as ou de tr´as para a frente
IF - interrupt enable
TF - execu¸c˜ao passo-a-passo: normalmente usada pelo debugger SF - sinal (equivalente ao bit de estado ”negative” do P3) ZF - zero
AF - auxiliary carry, equivalente ao bit de transporte, mas representa o transporte entre o 4o e o 5o bit dos registos
PF - paridade: fica a 1 se o n´umero de 1s do resultado for par CF - transporte
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 16 / 52
Espa¸co de endere¸camento de 1MByte (220), organizado ao
Byte
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Espa¸co de endere¸camento de 1MByte (220), organizado ao
Byte
O espa¸co de endere¸camento est´a dividido em segmentos,
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 16 / 52
Espa¸co de endere¸camento de 1MByte (220), organizado ao
Byte
O espa¸co de endere¸camento est´a dividido em segmentos,
cada um com 64kBytes
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Espa¸co de endere¸camento de 1MByte (220), organizado ao
Byte
O espa¸co de endere¸camento est´a dividido em segmentos,
cada um com 64kBytes
No entanto, a cada momento apenas est˜ao acess´ıveis 4
segmentos de 64kB cada:
◮ Code Segment - cont´em um tro¸co do programa;
◮ Data Segment - cont´em dados do programa;
◮ Extra Segment - cont´em dados do programa;
◮ Stack Segment - cont´em a pilha.
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 17 / 52
Endere¸co f´ısico definido pelo par registo de
segmento:deslocamento dentro do segmento
Por exemplo: CS:IP → CS×24+IP
CS 0h
IP + Endere¸co F´ısico
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
A cada instante apenas ´e poss´ıvel aceder a 4× 64kB = 256kB
Organiza¸c˜ao da Mem´oria
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 52
Exemplo: Modos de Endere¸camento Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula
Mesmos modos de endere¸camento do P3:
◮ Por registo
◮ Imediato
◮ Directo
◮ Indirecto por registo
Modos de Endere¸camento
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 20 / 52
Mesmos modos de endere¸camento do P3:
◮ Por registo
◮ Imediato
◮ Directo
◮ Indirecto por registo
◮ Indexado, baseado, relativo
Instru¸c˜oes de 2 operandos Modos de Endere¸camento Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula
Mesmos modos de endere¸camento do P3:
◮ Por registo
◮ Imediato
◮ Directo
◮ Indirecto por registo
◮ Indexado, baseado, relativo
Instru¸c˜oes de 2 operandos
Tamb´em como no P3, ´e uma arquitectura register-memory,
Modos de Endere¸camento
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 20 / 52
Mesmos modos de endere¸camento do P3:
◮ Por registo
◮ Imediato
◮ Directo
◮ Indirecto por registo
◮ Indexado, baseado, relativo
Instru¸c˜oes de 2 operandos
Tamb´em como no P3, ´e uma arquitectura register-memory,
portanto um dos operandos tem que ser um registo
Ao contr´ario do P3, o modelo de mem´oria ´e
independent IO.
Instru¸c˜oes Assembly
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Aritm´eticas Convers˜ao L´ogicas Deslocam. Controlo Pilha Transfer. Strings Gen´ericas
ADD AAA AND SHL JMP PUSH MOV MOVS NOP ADC AAS OR SHR JCXZ POP XCHG STOS STC SUB AAM XOR SAL JO PUSHF IN LODS CLC SBB AAD TEST SAR JS POPF OUT SCAS CMC INC DAA ROL JC LAHF CMPS STD DEC DAS ROR JZ SAHF REP CLD NEG CBW RCL JP XLAT REPZ STI CMP CWD RCR JG LEA CLI
MUL JL LDS HLT
IMUL JA LES WAIT
DIV JB LOCK
IDIV LOOP ESC
CALL RET INT INTO IRET
Mecanismos de entradas e sa´ıdas (IO)
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 22 / 52
Mecanismos de entradas e sa´ıdas:
◮ Instru¸c˜oes espec´ıficas para IO:
• in
• out
Mecanismos de entradas e sa´ıdas (IO)
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Mecanismos de entradas e sa´ıdas:
◮ Instru¸c˜oes espec´ıficas para IO:
• in
• out
◮ Chamadas ao sistema operativo (ex: MS-DOS):
• Invoca¸c˜ao (por software) de rotinas de atendimento
de interrup¸c˜ao:
◦ Registo Ah armazena um c´odigo com o tipo da
opera¸c˜ao (ex: 02h - escreve um caracter)
Mecanismos de entradas e sa´ıdas (IO)
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 23 / 52
IO por chamada ao sistema operativo - exemplos:
putchar(’a’); MOV DL, ’a’ MOV AH, 02h INT 21h
Mecanismos de entradas e sa´ıdas (IO)
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
IO por chamada ao sistema operativo - exemplos:
putchar(’a’); MOV DL, ’a’ MOV AH, 02h INT 21h
c=getchar(); MOV AH, 01h
INT 21h MOV C, AL
Mecanismos de entradas e sa´ıdas (IO)
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 23 / 52
IO por chamada ao sistema operativo - exemplos:
putchar(’a’); MOV DL, ’a’ MOV AH, 02h INT 21h
c=getchar(); MOV AH, 01h
INT 21h MOV C, AL c=getchar(); putchar(c); MOV AH, 01h INT 21h MOV DL, AL MOV AH, 02h INT 21h
Exemplo de programa em Assembly x86
Fam´ılia Intel x86
Processamento em Pipeline Pr´oxima Aula
code segment public
assume cs:code,ds:code org 100h
start: mov bx,offset msg ; bx points to string loop: mov al,[bx] ; load a character into al
cmp al,0 ; see if it’s a zero jz done ; quit if so
cmp al,32 ; see if it’s printable jl noprt ; don’t print if not call printc ; otherwise print it noprt: inc bx ; point to next character
jmp loop ; and loop back done: int 20h ; return to DOS
; subroutine to print the byte in al printc: push ax ; save ax and dx
push dx
mov dl,al ; use DOS to mov ah,02H ; print character
Processamento em Pipeline
Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 25 / 52
Tempo de Execu¸c˜ao Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Tempo de Execu¸c˜ao Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 26 / 52
Tempo de execu¸c˜ao: T = n × CPIf
Clocks per Instruction (CPI) Depende do n´umero de micro-instru¸c˜oes que devem ser executadas para cada instru¸c˜ao Tempo de Execu¸c˜ao Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula
Tempo de execu¸c˜ao: T = n × CPIf
Clocks per Instruction (CPI) Depende do n´umero de micro-instru¸c˜oes que devem ser executadas para cada instru¸c˜ao
Instru¸c˜ao N´umero de ciclos
NOP 4
MOV R1,40h 10 ADD R3,M[R2] 11 DEC R2 8 BR.NZ L1 13 (se tomado) BR.NZ L1 4 (se n˜ao tomado) MOV M[R1],R2 11
Tempo de Execu¸c˜ao Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 26 / 52
Tempo de execu¸c˜ao: T = n × CPIf
Clocks per Instruction (CPI) Depende do n´umero de micro-instru¸c˜oes que devem ser executadas para cada instru¸c˜ao
Frequˆencia (f) Depende da tecnologia; n˜ao representa
garantidamente um melhor desempenho, pois pode obrigar a aumentar o CPI... Tempo de Execu¸c˜ao Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula
Tempo de execu¸c˜ao: T = n × CPIf
Clocks per Instruction (CPI) Depende do n´umero de micro-instru¸c˜oes que devem ser executadas para cada instru¸c˜ao
Frequˆencia (f) Depende da tecnologia; n˜ao representa
garantidamente um melhor desempenho, pois pode obrigar a aumentar o CPI...
N´umero de instru¸c˜oes (n) Depende do conjunto de
instru¸c˜oes do processador e do processo de gera¸c˜ao de c´odigo.
Tempo de Execu¸c˜ao Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 27 / 52
Tempo de execu¸c˜ao: T = n × CPIf
Do ponto de vista de quem concebe a arquitectura, a escolha do conjunto de instru¸c˜oes (ISA) ´e fundamental para
conseguir o n´ıvel de eficiˆencia desejado
Tempo de Execu¸c˜ao Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Tempo de execu¸c˜ao: T = n × CPIf
Do ponto de vista de quem concebe a arquitectura, a escolha do conjunto de instru¸c˜oes (ISA) ´e fundamental para
conseguir o n´ıvel de eficiˆencia desejado
Nas gera¸c˜oes recentes de processadores tem-se procurado:
◮ Aumentar a frequˆencia de trabalho;
◮ Reduzir o no de ciclos de rel´ogio por instru¸c˜ao (CPI);
◮ Reduzir o no de instru¸c˜oes necess´arias para executar uma
tarefa;
◮ Executar, em paralelo, diversas opera¸c˜oes de que ´e
Processamento em Pipelining numa lavandaria Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 28 / 52
Processamento em Pipelining numa lavandaria Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
4 lotes, cada um com a dura¸c˜ao de 4 × 30 min = 2 horas:
◮ Lavar;
◮ Secar;
◮ Dobrar/Engomar;
◮ Guardar.
Processamento em Pipelining numa lavandaria Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 28 / 52
Aproxima¸c˜ao em Pipeline: Tempo total = 3.5 horas
Execu¸c˜ao em paralelo de instru¸c˜oes Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Exemplo: MOV R1,9 MOV R2,R0
Ciclo: ADD R2,M[Start+R1] DEC R1
BR.NN Ciclo
As duas primeiras instru¸c˜oes n˜ao dependem uma da outra...
↓
Execu¸c˜ao de uma Instru¸c˜ao Assembly Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 30 / 52
Fases de execu¸c˜ao de uma instru¸c˜ao Assembly:
1.(F) Leitura da Instru¸c˜ao (Fetch)
Ler codifica¸c˜ao da instru¸c˜ao para um registo interno e incrementar o contador de programa (PC).
Execu¸c˜ao de uma Instru¸c˜ao Assembly Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Fases de execu¸c˜ao de uma instru¸c˜ao Assembly:
1.(F) Leitura da Instru¸c˜ao (Fetch)
Ler codifica¸c˜ao da instru¸c˜ao para um registo interno e incrementar o contador de programa (PC). 2.(D) Descodifica¸c˜ao
Interpreta¸c˜ao dos campos da instru¸c˜ao para deter-minar o tipo de instru¸c˜ao e c´opia dos operandos para registos tempor´arios.
Execu¸c˜ao de uma Instru¸c˜ao Assembly Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 30 / 52
Fases de execu¸c˜ao de uma instru¸c˜ao Assembly:
1.(F) Leitura da Instru¸c˜ao (Fetch)
Ler codifica¸c˜ao da instru¸c˜ao para um registo interno e incrementar o contador de programa (PC). 2.(D) Descodifica¸c˜ao
Interpreta¸c˜ao dos campos da instru¸c˜ao para deter-minar o tipo de instru¸c˜ao e c´opia dos operandos para registos tempor´arios.
3.(X) Execu¸c˜ao
C´alculo do resultado da instru¸c˜ao.
Execu¸c˜ao de uma Instru¸c˜ao Assembly Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Fases de execu¸c˜ao de uma instru¸c˜ao Assembly:
1.(F) Leitura da Instru¸c˜ao (Fetch)
Ler codifica¸c˜ao da instru¸c˜ao para um registo interno e incrementar o contador de programa (PC). 2.(D) Descodifica¸c˜ao
Interpreta¸c˜ao dos campos da instru¸c˜ao para deter-minar o tipo de instru¸c˜ao e c´opia dos operandos para registos tempor´arios.
3.(X) Execu¸c˜ao
Execu¸c˜ao num Processador CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 31 / 52
Estrutura de um processador de ciclo ´unico:
Banco de Registos PC IR Op1 Op2 Res ALU Barramento de Endereços Barramento de Dados Unidade de Processamento Unidade de Controlo Elementos fundamentais: ◮ Unidade de Controlo
◮ Unidade de Processamento: Banco de Registos e
Unidade L´ogica e Aritm´etica (ULA ou ALU)
Execu¸c˜ao num Processador CISC Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Banco de Registos PC IR Op1 Op2 Res ALU Barramento de Endereços Barramento de Dados Unidade de Processamento Unidade de Controlo
Unidade de Processamento: utilizada repetidamente em
todas as fases de execu¸c˜ao de uma instru¸c˜ao:
Execu¸c˜ao num Processador CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 32 / 52
Banco de Registos PC IR Op1 Op2 Res ALU Barramento de Endereços Barramento de Dados Unidade de Processamento Unidade de Controlo
Unidade de Processamento: utilizada repetidamente em
todas as fases de execu¸c˜ao de uma instru¸c˜ao:
· · ·|F|D1|D2|X1|X2|X3|X4|W|F|D1|D2|D3|X1|W|F|D1|X1|X2|X3|W|· · ·
Instru¸c˜oes t˜ao complexas quanto o desejado
Dificuldade em paralelizar a execu¸c˜ao das instru¸c˜oes
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
⇒ Existe um compromisso entre a complexidade das
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 33 / 52
⇒ Existe um compromisso entre a complexidade das
instru¸c˜oes e a velocidade que elas podem ser executadas... Assim, os processadores podem ser classificados em duas categorias:
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
⇒ Existe um compromisso entre a complexidade das
instru¸c˜oes e a velocidade que elas podem ser executadas... Assim, os processadores podem ser classificados em duas categorias:
CISC - Complex Instruction Set Computers RISC - Reduced Instruction Set Computers
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 33 / 52
⇒ Existe um compromisso entre a complexidade das
instru¸c˜oes e a velocidade que elas podem ser executadas... Assim, os processadores podem ser classificados em duas categorias:
CISC - Complex Instruction Set Computers:
◮ Conjunto de instru¸c˜oes complexo, demorando um no vari´avel de ciclos de rel´ogio;
◮ Modos de endere¸camento complexos;
◮ N˜ao uniformidade dos formatos de codifica¸c˜ao; ◮ Programas compactos, com no reduzido de instru¸c˜oes.
Exemplos: P3, Pentium IV, etc.
RISC - Reduced Instruction Set Computers
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
⇒ Existe um compromisso entre a complexidade das
instru¸c˜oes e a velocidade que elas podem ser executadas... Assim, os processadores podem ser classificados em duas categorias:
CISC - Complex Instruction Set Computers RISC - Reduced Instruction Set Computers:
◮ Conjunto de instru¸c˜oes reduzido;
◮ Modos de endere¸camento simples e com restri¸c˜oes; ◮ Codifica¸c˜ao das instru¸c˜oes uniforme;
◮ Tempo de execu¸c˜ao das instru¸c˜oes menor e uniforme; ◮ Programas mais extensos.
Processadores RISC vs CISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 33 / 52
⇒ Existe um compromisso entre a complexidade das
instru¸c˜oes e a velocidade que elas podem ser executadas... Assim, os processadores podem ser classificados em duas categorias:
CISC - Complex Instruction Set Computers RISC - Reduced Instruction Set Computers
Na pr´atica, a gera¸c˜ao RISC tem vindo a oferecer melhores desempenhos, pois verifica-se que muitas das instru¸c˜oes e modos de endere¸camento dos CISC raramente s˜ao utilizados na pr´atica, embora contribuam para uma maior
complexidade do hardware e um consequente redu¸c˜ao da frequˆencia de trabalho.
Caracter´ısticas dos Processadores RISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Caracter´ısticas dos Processadores RISC:
◮ Todas as instru¸c˜oes demoram o mesmo tempo a
executar;
◮ Instru¸c˜oes simples: s´o o que a ULA fornece;
◮ Modos de endere¸camento: s´o imediato e por registo;
Compara¸c˜ao CISC vs RISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 35 / 52
CISC RISC
F
Compara¸c˜ao CISC vs RISC Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula CISC RISC F IR←M[PC],PC+=instLen IR←M[PC],PC++ D
Compara¸c˜ao CISC vs RISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 37 / 52
CISC RISC
F IR←M[PC],PC+=instLen IR←M[PC],PC++
D Diferentes modos de endere¸camento Apenas por registo ou imediato X
Compara¸c˜ao CISC vs RISC Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula CISC RISC F IR←M[PC],PC+=instLen IR←M[PC],PC++
D Diferentes modos de endere¸camento Apenas por registo ou imediato X Sequˆencia arbitr´aria de opera¸c˜oes na
ULA
Apenas uma opera¸c˜ao da ULA W
Compara¸c˜ao CISC vs RISC Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 39 / 52
CISC RISC
F IR←M[PC],PC+=instLen IR←M[PC],PC++
D Diferentes modos de endere¸camento Apenas por registo ou imediato X Sequˆencia arbitr´aria de opera¸c˜oes na
ULA
Apenas uma opera¸c˜ao da ULA W Escrita do resultado num registo ou
posi¸c˜ao de mem´oria
Escrita do resultado num registo ou posi¸c˜ao de mem´oria
Processadores RISC do tipo Load/Store Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Arquitecturas RISC do tipo Load/Store:
◮ Instru¸c˜oes aritm´eticas e l´ogicas, que apenas operam
sobre registos;
◮ Instru¸c˜oes de transferˆencia de dados entre mem´oria e
registos:
• Load
• Store
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 41 / 52
Uma fase adicional para a leitura ou escrita de dados em mem´oria: s´o utilizada pelas instru¸c˜oes load e store.
F - Leitura da Instru¸c˜ao (Fetch) D - Descodifica¸c˜ao
X - Execu¸c˜ao
M - Acesso `a Mem´oria
W - Escrita do Resultado (Write-back) Cada fase dura exactamente um ciclo de rel´ogio.
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Uma fase adicional para a leitura ou escrita de dados em mem´oria: s´o utilizada pelas instru¸c˜oes load e store.
F - Leitura da Instru¸c˜ao (Fetch) D - Descodifica¸c˜ao
X - Execu¸c˜ao
M - Acesso `a Mem´oria
W - Escrita do Resultado (Write-back) Cada fase dura exactamente um ciclo de rel´ogio. 1. (F) Fetch
IR←M[PC],PC←PC+4
Considerando palavras de 32-bits (4 Bytes)
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 42 / 52
2. (D) Descodifica¸c˜ao
◮ Descodifica¸c˜ao da instru¸c˜ao
◮ Leitura dos operandos do banco de registos
◮ Extens˜ao de sinal da constante
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
3. (X) Execu¸c˜ao
◮ Opera¸c˜ao ULA sobre 2 registos
◮ Opera¸c˜ao ULA sobre 1 registo e constante
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 43 / 52
3. (X) Execu¸c˜ao
◮ Opera¸c˜ao ULA sobre 2 registos
◮ Opera¸c˜ao ULA sobre 1 registo e constante
◮ C´alculo do endere¸co efectivo
4. (M) Acesso Mem´oria
◮ Se load, lˆe mem´oria de dados
◮ Se store, escreve na mem´oria de dados
◮ Resolu¸c˜ao do salto
Fases do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
3. (X) Execu¸c˜ao
◮ Opera¸c˜ao ULA sobre 2 registos
◮ Opera¸c˜ao ULA sobre 1 registo e constante
◮ C´alculo do endere¸co efectivo
4. (M) Acesso Mem´oria
◮ Se load, lˆe mem´oria de dados
◮ Se store, escreve na mem´oria de dados
◮ Resolu¸c˜ao do salto
5. (W) Write-Back
Arquitectura do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 44 / 52
Cada fase de execu¸c˜ao ´e um andar do pipeline (pipeline stage);
Cada andar do pipeline tem capacidade de processamento
aut´onomo;
Registos entre andares guardam valores interm´edios;
Velocidade de processamento limitada pelo andar mais lento.
Arquitectura do Processador MIPS Fam´ılia Intel x86
Processamento em Pipeline
Processamento de Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 46 / 52
Processamento de Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula Ciclo de Rel´ogio
Instru¸c˜ao 1 2 3 4 5 6 7 8 9 i F D X M W i + 1 F D X M W i + 2 F D X M W i + 3 F D X M W i + 4 F D X M W
Processamento de Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 47 / 52
Ciclo de Rel´ogio
Instru¸c˜ao 1 2 3 4 5 6 7 8 9 i F D X M W i + 1 F D X M W i + 2 F D X M W i + 3 F D X M W i + 4 F D X M W
Todas as instru¸c˜oes passam portodos os andares/fases, quer o utilizem ou n˜ao!
Desempenho do Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula Speeduppipe =
Tempo Medio sem Pipeline Tempo Medio com Pipeline = CPIserie× Tclk−serie
CPIpipe× Tclk−pipe
= CPIserie CPIpipe × Tclk−serie Tclk−pipe Caso ideal: CPIpipe = 1
Desempenho do Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 49 / 52
Throughput (taxa de execu¸c˜ao)
N´umero de instru¸c˜oes executadas por unidade de tempo.
⇒ parˆametro que interessa
Desempenho do Pipeline Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Throughput (taxa de execu¸c˜ao)
N´umero de instru¸c˜oes executadas por unidade de tempo.
⇒ parˆametro que interessa
Latˆencia
Tempo que uma instru¸c˜ao demora a executar-se.
Pr´
oxima Aula
Fam´ılia Intel x86 Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 50 / 52
Pr´oxima Aula Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula Processamento em Pipeline: ◮ An´alise de conflitos: • Conflitos estruturais • Conflitos de dados • Conflitos de controlo ◮ Resolu¸c˜ao de conflitos
Nota de Agradecimento Fam´ılia Intel x86
Processamento em Pipeline
Pr´oxima Aula
Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 52 / 52
Agradecimento
Algumas p´aginas desta apresenta¸c˜ao foram extraidas de:
[1] Jos´e Carlos Monteiro, “Arquitectura de Computadores”, Instituto Superior T´ecnico (IST), Universidade T´ecnica de Lisboa, Portugal, 2010.