43
Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC • Ana Paula Martins [email protected] • Susana Cristina Dias Ribeiro suribeiro @mail. telepac .pt

Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

  • Upload
    cliff

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC. Ana Paula Martins [email protected] Susana Cristina Dias Ribeiro [email protected]. Tópicos. Introdução Introdução ao Intel – Pentium II Introdução ao PowerPC – MPC750 - PowerPoint PPT Presentation

Citation preview

Page 1: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Comparação de Conjuntos de Instruções

Intel Pentium / Motorola PowerPC

• Ana Paula Martins [email protected]

• Susana Cristina Dias Ribeiro [email protected]

Page 2: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Tópicos

1. Introdução

2. Introdução ao Intel – Pentium IIPentium II

3. Introdução ao PowerPC – MPC750MPC750

4. Pentium II versus MPC750

5. Conclusão

6. Bibliografia

Page 3: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

1. Introdução

• Estudo do número de instruções, tipo de instruções, modos de endereçamento e número de ciclos de relógio

• Intel Pentium II : CISC

• Motorola PowerPC MPC750: RISC

Page 4: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

2. Introdução ao IntelPentium II

Características:• Poucos registos em muitas situações só o

acumulador e alguns registos general-purpose• Instruções complexas• Tamanho variável de instruções, onde a instrução

é seguida pela informação necessária• Vários modos de acesso à memória (modos de

endereçamento)

Page 5: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções do Pentium II

• Operandos das instruções

mnemónica arg1, arg2, arg3

• Números binários e hexadecimais

• Endereços segmentados

Page 6: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções do Pentium IITipos de dados

• Tipos fundamentais de dados:– Palavras, palavras

duplas e palavras quadruplas

• Alinhamento de palavras, palavras duplas e palavras quadruplas – não necessitam de serem ordenados na memória

• Outros tipos de dados– numéricos: valores inteiros,

inteiros sem sinal, inteiros BCD

– apontadores: apontadores de 32 bits e apontadores de 48 bits

– campos de bits: sequência contígua de segmentos de bits (máximo de 32 bits)

– strings de dados

Page 7: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções do Pentium IITipos de Dados

• Dados com vírgula flutuante – reconhecem conjuntos de reais, inteiros e dados decimais inteiros

Page 8: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium II

• Endereçamento dos operandos:– Colocado em:

• Na própria instrução

• No registo

• Numa posição da memória

• Numa porta de entrada/saída

– Especificados implícita e explicitamente na instrução

• Operandos imediatos– Operandos que estão

codificados na própria instrução

– Valor máximo é sempre menor que o valor máximo de uma palavra inteira sem sinal

Page 9: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium IIRegistos

• General-purpose registers – 32 bits: EAX, EBX,

ECX, EDX, EBP, ESI, EDI, ESP

– 16 bits: AX, BX, CX, DX, SI, DI, SP, BP

– 8 bits: AH, BH, CH, DH, AL, BL, CL, DL

Page 10: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium IIRegistos

• Registos de segmentos: CS, DS, SS, ES, FS, GS

Page 11: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium IIRegistos

• Registos EFLAGS– Registo de 32 bits

– Contém um grupo de:• flags de estado

• flags de controlo

• flags de sistema

Page 12: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium II

• Instruções lógicas:and Al,imm8

• Instruções de comparação:

cmp AX,imm16

• Instruções de chamadas de procedimento:– Guarda o procedimento

que liga a informação contida na pilha ao procedimento especificado no operando de destino

call rel16

Page 13: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium II

• Instruções de carregamento:

lea • Instruções de

transferência de dados:

mov

• Instruções de controlo e transferência:

jmp• Instruções aritméticas

binárias:

add

Page 14: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium II

• Instruções de bit e de byte:

btr• Instruções de

armazenamento:

fst

• Instruções de manipulação da pilha:pop

• Instruções de conversão:– Instruções de

conversão simples– Instruções de

deslocamento e de conversão

Page 15: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Instruções Pentium II

• Instruções aritméticas decimais:– Transforma o resultado

de uma operação aritmética binária num decimal

• Instruções de rotação e deslocamento:– Reorganizam os bits

dentro do operando

rcr

Page 16: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

3. Introdução ao PowerPC MPC750MPC750

• Desenvolvido por: Apple – IBM – MotorolaApple – IBM – Motorola

• Baseado em:

arquitectura PowerPower (IBM)

- projectada para workstations cientificas

- optimizada para operações matemáticas inteiras e de vírgula flutuante

- incorpora branch processor

Page 17: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Características do PowerPCPowerPC

• Baixo custo de fabrico quando comparado com o do Power

• Arquitectura RISC de elevada performance

• Arquitectura load/store (registo-registo)

• Conjunto simples de instruções

• Modo de endereçamento simples

• Grande conjunto de registos

Page 18: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de registos do PowerPCNíveis da arquitectura PowerPC

• UISA – user instruction architecture

• VEA – virtual environment architecture

• OEA – operating environment architecture

Page 19: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• GPRs – general-purpose registers:

• Registos de origem ou de destino para todas as instruções de inteiros

• Conjunto de 32 GPRs: GPR0-GPR31

• Registo de 32/64 bits para implementações de 32/64 bits

Page 20: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• FPRs – floating-point registers

• Registos de emissão e recepção para todas as instruções de vírgula flutuante

• Conjunto de 32 FPRs: FPR0-FPR31

• Registo de 64 bits

Page 21: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• CR – condition register

• Mostram o resultado de certas operações aritméticas e fornecem um mecanismo de teste e propagação

• Registo de 32 bits, dividido em 8 campos de 4 bits: CR0-CR7

Page 22: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• FPSCR – floating-point status and control register

• Contem todas as interrupções signal bit, summary bits, enable bits e bits de controle necessários à concordância com a norma IEEE754

• Registo de 32 bits

Page 23: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• XER – XER register• Indica as condições de

overflow e carry para as operações de inteiros, e o número de bytes que são transferidos pelas instruções indexadas de carregamento/armaze-namento

• Registo de 32 bits

Page 24: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos UISA

• LR – linker register• Registo de 32/64 bits

para implementações de 32/64 bits

• CTR –counter register• Registo de 32/64 bits

para implementações de 32/64 bits

Page 25: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos VEA

• Registos UISA

• TB – time base (for reading)

• Registo de 64 bits, dividido em duas estruturas de 32 bits, TBU e TBL

Page 26: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos OEA

• Abrange todos os registos que existem na arquitectura PowerPC

Page 27: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de Registos do PowerPC

Page 28: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjuntos de Instruções do PowerPC

• Instruções Inteiras– aritméticas

– de comparação

– lógicas

– de rotação e deslocamento

add rD,rA,rB

• Instruções de vírgula flutuante– aritméticas

– multiplicação/adição

– arredondamento e conversão

– comparação

– de estado e controlo

fsel frD,frA,frC,frB

Page 29: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de Instruções do PowerPC

• Instruções carregamento/armaze- namento– carregamento e

armazenamento de inteiros

– carregamento e armazenamento múltiplos

– carregamento e armazenamento de

armazenamento de vírgulas flutuantes

– Primitivas usadas para a construção atómica de operações de memória

lbz rD,d(rA)

Page 30: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de Instruções do PowerPC

• Instruções de propagação e de controle de fluxo– instruções branching e

trap

– instruções lógicas da condição de registo

b target_addr

• Instruções de controle do processador– move de / para SPR– move de / para MSR

(machine state register)

– sincronismo – carregamento/armaze-

namentomfspr rD,SPR

Page 31: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de Instruções do PowerPC

• Instruções de controle de memória– de gestão da cache a

nível do supervisor– da cache a nível de

utilizador– de manipulação do

registo de segmentos – de gestão do buffermtsr SR,rS

Page 32: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Conjunto de Instruções do PowerPC

• Instruções inteiras• Instruções de vírgula

flutuante• Instruções de

carregamento e de armazenamento (load/store)

• Instruções de propagação e de controle de fluxo

• Instruções de controle de processador

• Instruções de controle de memória

Page 33: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Unidades de execução do MPC750

• FPU - floating-point unit• BPU - branch processing

unit• SRU - system register unit• LSU - load / store unit• IU - integer unit

• IU1 – executa todas as instruções inteiras

• IU2 – executa todas as instruções inteiras com a excepção das instruções de multiplicação e divisão

Page 34: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos e instruções adicionais ao MPC750

• Registos– instruction address

breakpoint register (IABR)

– hardware implementation-dependent register 0 (HID0)

- hardware implementation-dependent register 1 (HID1)

– performance monitor registers (MMCR0, UMMCR0, MMCR1, UMMCR1, PMC1-PMC4, UPMC1-UPMC4, SIA,

USIA, SDA, USDA)

Page 35: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Registos e instruções adicionais ao MPC750

• Instruções– external control in

word indexed, (eciwx)

– external control out word indexed, (ecowx)

– floating select, (fsel)

– floating reciprocal estimate single-precision, (fres)

– floating reciprocal square root estimate, (frsqrte)

– store floating-point as integer word, (stfiwx)

Page 36: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

O Pipeline e o MPC750

Etapas do pipeline:• Captura (fetch)• Descodificação /

Despacho (decode/dispach)

• Execução (execute)• Conclusão (complete)

Page 37: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Fluxo de Instruções

Page 38: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

4. Pentium II versus MPC750Uma situação quotidiana ...

• Pentium II (CISC)1. Deixa o restaurante e

desce a rua

2. Vira à direita, e em seguida à esquerda

3. Sobe a rua, e entra no último edifício

• MPC750 (RISC)1. Deixa o restaurante

2. Desce a rua

3. Vira à direita

4. Vira à esquerda

5. Sobe a rua

6. Entra no último edifício

Page 39: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

Um exemplo real – a adição

Pentium II

add 6,r1 Lê-se o conteúdo de r1,

realiza--se a adição, coloca-se o resultado em r1. Se outra instrução requerer o valor original de r1, o valor deste registo deverá ter sido guardado antes de realizar a operação de adição, e então carregado na memória.

MPC750

add r3,r2,r1 r1 e r2 são adicionados e o seu

resultado é colocado em r3. Como r1 e r2 não são alterados, facilmente podem ser reutilizados.

Page 40: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

5. Conclusão

Pentium IIPentium IIQualquer instrução pode

referenciar a memória (register-memory)

Muitas instruções e muitos modos de endereçamento

MPC750MPC750Só carregamentos e

armazenamentos podem referenciar a memória

(load-store)

Poucas instruções e poucos modos de endereçamento

Page 41: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

5. Conclusão (cont.)

Instruções complexas que fazem uso de vários

ciclos de relógio

Instruções interpretadas por microprogramas

Sem uso (ou muito pouco) do pipeline

Instruções simples que fazem uso de um só ciclo

de relógio

Instruções executadas por hardware

Grande uso do pipeline

Page 42: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

5. Conclusão (cont.)

Pequeno conjunto de registos

A complexidade apresenta-se no microprograma

Poucas instruções para a concretização de um

objectivo

Grande conjunto de registos

A complexidade apresenta-se no

compilador

Muitas instruções para a concretização de um

objectivo

Page 43: Comparação de Conjuntos de Instruções Intel Pentium / Motorola PowerPC

6. Bibliografia

• [1] David A. Patterson and John L. Hennessy, Computer Organization & Design – The hardware/software interfece – 2nd edition, Morgan Kaufmann

• [2] Intel, Intel Architecture Software Developer’s Manual – Volume 1: Basic Architecture, Intel 1999

• [3] Intel, Intel Architecture Software Developer’s Manual – Volume 2:Instruction Set Reference, Intel 1999

• [4] Motorola, PowerPC Microprocessor Family: The Programming Environments for 32-Bit Microprocessors, Motorola 1997

• [5] Motorola, MPC750 – RISC Microprocessor User’s manual, Motorola 1997

• [6] Página da Motorola: http://www.motorola.com• [7] Página da Intel: http://www.intel.com