Comparação de Conjuntos de
Instruções
Intel Pentium / Motorola PowerPC
• Ana Paula Martins
[email protected]
• Susana Cristina Dias Ribeiro
[email protected]
Tópicos
1.
2.
3.
4.
5.
6.
Introdução
Introdução ao Intel – Pentium II
Introdução ao PowerPC – MPC750
Pentium II versus MPC750
Conclusão
Bibliografia
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
2. Introdução ao Intel
Pentium 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)
Instruções do Pentium II
• Operandos das instruções
mnemónica arg1, arg2, arg3
• Números binários e hexadecimais
• Endereços segmentados
Instruções do Pentium II
Tipos 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
Instruções do Pentium II
Tipos de Dados
• Dados com vírgula
flutuante – reconhecem
conjuntos de reais, inteiros e
dados decimais inteiros
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
Instruções Pentium II
Registos
• 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
Instruções Pentium II
Registos
• Registos de
segmentos: CS, DS, SS,
ES, FS, GS
Instruções Pentium II
Registos
• Registos EFLAGS
– Registo de 32 bits
– Contém um grupo de:
• flags de estado
• flags de controlo
• flags de sistema
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
Instruções Pentium II
• Instruções de
• Instruções de controlo
carregamento:
e transferência:
lea
jmp
• Instruções de
• Instruções aritméticas
transferência de dados:
binárias:
mov
add
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
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
3. Introdução ao PowerPC
MPC750
• Desenvolvido por: Apple – IBM – Motorola
• Baseado em:
arquitectura Power (IBM)
- projectada para workstations cientificas
- optimizada para operações matemáticas
inteiras e de vírgula flutuante
- incorpora branch processor
Características do PowerPC
• 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
Conjunto de registos do PowerPC
Níveis da arquitectura PowerPC
• UISA – user instruction architecture
• VEA – virtual environment architecture
• OEA – operating environment architecture
Registos UISA
• GPRs – generalpurpose 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
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
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
Registos UISA
• FPSCR – floatingpoint 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
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/armazenamento
• Registo de 32 bits
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
Registos VEA
• Registos UISA
• TB – time base (for
reading)
• Registo de 64 bits,
dividido em duas
estruturas de 32 bits,
TBU e TBL
Registos OEA
• Abrange todos
os registos que
existem na
arquitectura
PowerPC
Conjunto de Registos do
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
Conjunto de Instruções do
PowerPC
• Instruções
carregamento/armazenamento
– 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)
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/armazenamento
mfspr rD,SPR
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 buffer
mtsr SR,rS
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
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
Registos e instruções adicionais
ao MPC750
• Registos
– instruction address
breakpoint register
(IABR)
– hardware
implementationdependent register 0
(HID0)
- hardware implementationdependent
register
1
(HID1)
– performance monitor
registers (MMCR0,
UMMCR0, MMCR1,
UMMCR1, PMC1-PMC4,
UPMC1-UPMC4, SIA,
USIA, SDA, USDA)
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 singleprecision, (fres)
– floating reciprocal
square root estimate,
(frsqrte)
– store floating-point as
integer word, (stfiwx)
O Pipeline e o MPC750
Etapas do pipeline:
• Captura (fetch)
• Descodificação /
Despacho
(decode/dispach)
• Execução (execute)
• Conclusão (complete)
Fluxo de Instruções
4. Pentium II versus MPC750
Uma 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.
2.
3.
4.
5.
6.
Deixa o restaurante
Desce a rua
Vira à direita
Vira à esquerda
Sobe a rua
Entra no último
edifício
Um exemplo real – a adição
Pentium II
add 6,r1
MPC750
add r3,r2,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.
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.
5. Conclusão
Pentium II
MPC750
Qualquer instrução pode
referenciar a memória
(register-memory)
Só carregamentos e
armazenamentos podem
referenciar a memória
(load-store)
Muitas instruções e
muitos modos de
endereçamento
Poucas instruções e
poucos modos de
endereçamento
5. Conclusão (cont.)
Instruções complexas que Instruções simples que
fazem uso de vários
fazem uso de um só ciclo
ciclos de relógio
de relógio
Instruções interpretadas
por microprogramas
Instruções executadas por
hardware
Sem uso (ou muito
pouco) do pipeline
Grande uso do pipeline
5. Conclusão (cont.)
Pequeno conjunto de
registos
Grande conjunto de
registos
A complexidade
apresenta-se no
microprograma
A complexidade
apresenta-se no
compilador
Poucas instruções para a
concretização de um
objectivo
Muitas instruções para a
concretização de um
objectivo
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
Download

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