• Nenhum resultado encontrado

Arquitectura de Computadores (ACom)

N/A
N/A
Protected

Academic year: 2021

Share "Arquitectura de Computadores (ACom)"

Copied!
46
0
0

Texto

(1)

Arquitectura de Computadores

(ACom)

MEAer

Acetatos das Aulas Te´

oricas

Vers˜ao 5.0 - Portuguˆes

Aula N

o

15:

T´ıtulo: Fam´ılia Intel x86; Arquitecturas de processadores em pipeline

Sum´ario: Fam´ılia Intel x86 (registos, bits de estado, mem´oria,

(2)

Fam´ılia Intel x86; Arquitecturas de

processadores em pipeline

Prof. Nuno Roma ACom 2015/16 (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

(3)

Road Map

Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 3 / 52

Planeamento Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula  Planeamento

(4)

Sum´ario

Fam´ılia Intel x86 Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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 Aula

(5)

Fam´ılia Intel x86 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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)

(6)

Fam´ılia Intel x86 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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)

(7)

Fam´ılia Intel x86 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 8 / 52

Fam´ılia Intel x86 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

(8)

Fam´ılia Intel x86 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 8 / 52

Processador Intel 8086 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

(9)

Arquitectura do processador Intel 8086 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(10)

Registos do processador 8086 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(11)

Registos gen´ericos do processador 8086 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(12)

Registos espec´ıficos do processador 8086 Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(13)

Organiza¸c˜ao da Mem´oria Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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,

(14)

Organiza¸c˜ao da Mem´oria Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

(15)

Organiza¸c˜ao da Mem´oria Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(16)

Organiza¸c˜ao da Mem´oria Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(17)

Modos de Endere¸camento Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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,

(18)

Modos de Endere¸camento Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(19)

Mecanismos de entradas e sa´ıdas (IO) Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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)

(20)

Mecanismos de entradas e sa´ıdas (IO) Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(21)

Mecanismos de entradas e sa´ıdas (IO) Fam´ılia Intel x86

Processamento em Pipeline Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(22)

Processamento em Pipeline

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (MEAer) - DEEC-IST 25 / 52

Tempo de Execu¸c˜ao

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

(23)

Tempo de Execu¸c˜ao

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(24)

Tempo de Execu¸c˜ao

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

(25)

Tempo de Execu¸c˜ao

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(26)

Processamento em Pipelining numa lavandaria

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

(27)

Processamento em Pipelining numa lavandaria

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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...

(28)

Execu¸c˜ao de uma Instru¸c˜ao Assembly

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

(29)

Execu¸c˜ao de uma Instru¸c˜ao Assembly

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(30)

Execu¸c˜ao num Processador CISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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:

(31)

Execu¸c˜ao num Processador CISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(32)

Processadores RISC vs CISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(33)

Processadores RISC vs CISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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. Exemplos: ARM, MIPS, etc.

(34)

Processadores RISC vs CISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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;

(35)

Compara¸c˜ao CISC vs RISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(36)

Compara¸c˜ao CISC vs RISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(37)

Compara¸c˜ao CISC vs RISC

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(38)

Fases do Processador MIPS

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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)

(39)

Fases do Processador MIPS

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(40)

Fases do Processador MIPS

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(41)

Arquitectura do Processador MIPS

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(42)

Processamento de Pipeline

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(43)

Processamento de Pipeline

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(44)

Desempenho do Pipeline

Fam´ılia Intel x86

Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

(45)

Pr´

oxima Aula

Fam´ılia Intel x86 Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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

(46)

Nota de Agradecimento

Fam´ılia Intel x86 Processamento em Pipeline

Pr´oxima Aula

Prof. Nuno Roma ACom 2015/16 (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.

Referências

Documentos relacionados