Você está na página 1de 36

Universidade Federal de Pelotas

Centro de Desenvolvimento Tecnolgico


Mestrado em Computao

Arquitetura e Projeto de Computadores


Arquitetura do MIPS: caractersticas gerais, formatos de instruo, modos de endereamento. MIPS monociclo: instrues implementadas, regime de clock, construo do bloco operativo. Profs. Luciano Agostini e Jlio Mattos
agostini@inf.ufpel.edu.br e julius@inf.ufpel.edu.br

Arquitetura do MIPS
Instrues
todas as instrues tm 32 bits todas tm opcode de 6 bits o modo de endereamento codificado juntamente com o opcode
31 26 25 0

opcode
6 bits 26 bits

Computao UFPel Arquitetura e Projeto de Computadores

Slide 2

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Instrues formato R: add, sub, or, and
opcode = 0 funct define a operao a ser feita pela ALU shamt (shift amount) usado em instrues de deslocamento
31 26 25 21 20 16 15 11 10 6 5 0

opcode
6 bits

rs
5 bits

rt
5 bits

rd
5 bits

shamt
5 bits

funct
6 bits

registradores-fonte

registrador-destino

Simblico (exemplo):

add $s1,$s2,$s3 ($s1 $s2 + $s3)

Computao UFPel Arquitetura e Projeto de Computadores

Slide 3

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Instrues formato I: load word (ld) e store word (sw)
load word (lw): opcode = 35 store word (sw): opcode = 43
31 26 25 21 20 16 15 0

opcode
6 bits

rs
5 bits

rt
5 bits

Deslocam. ou oper. Imediato


16 bits

registrador-base para o clculo do endereo de memria

registrador-destino (para lw) ou registrador-fonte (para sw)

Simblico
lw $s1, deslocam($s2) ($s1 Mem[$s2 + deslocam] ) sw $s1, deslocam($s2) (Mem[$s2 + deslocam] $s1 )
Computao UFPel Arquitetura e Projeto de Computadores

Slide 4

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Instruo formato I: Desvio Condicional
beq: branch on equal
Opcode = 4 Campo deslocamento usado para calcular o endereo-alvo Se o contedo do registrador cujo endereo est no campo rs for igual ao contedo do registrador cujo endereo est em rt, ento salta para a posio endereo+PC+4
31 26 25 21 20 16 15 0

opcode
6 bits

rs
5 bits

rt
5 bits

Deslocam. ou oper. Imediato


16 bits

Simblico

registradores a serem comparados

beq $s1, $s2, deslocam

( if ($s1== $s2) then PCPC+4+deslocam)


Slide 5 Prof. Luciano Agostini Prof. Julio Mattos

Computao UFPel Arquitetura e Projeto de Computadores

Arquitetura do MIPS
Instruo formato J: Desvio Incondicional
j: jump

Opcode = 2 Campo deslocamento usado para calcular o endereo-alvo


31 26 25 0

opcode
6 bits

endereo
26 bits

Simblico
j endereo

( PCendereo )
Slide 6 Prof. Luciano Agostini Prof. Julio Mattos

Computao UFPel Arquitetura e Projeto de Computadores

Arquitetura do MIPS
Registradores
32 registradores de propsito geral de 32 bits $0, $1, , $31 operaes inteiras endereamento $0 tem sempre valor 0 $31 guarda endereo de retorno de sub-rotina

Computao UFPel Arquitetura e Projeto de Computadores

Slide 7

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Tipos de Dados
dados inteiros disponveis em instrues load e store bytes meias-palavras de 16 bits palavras de 32 bits dados inteiros disponveis em instrues aritmticas e lgicas meias-palavras de 16 bits (estendidos para 32 bits) palavras de 32 bits

Computao UFPel Arquitetura e Projeto de Computadores

Slide 8

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Modos de Endereamento
acessos memria devem ser alinhados dados de 32 bits precisam iniciar em endereos mltiplos de 4 modo registrador para instrues aritmticas e lgicas: dado est em registrador para instrues de desvio incondicional: endereo est em registrador

Computao UFPel Arquitetura e Projeto de Computadores

Slide 9

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Modos de Endereamento
modo base e deslocamento para instrues load e store base registrador inteiro de 32 bits deslocamento de 16 bits contido na prpria instruo modo relativo ao PC para instrues de branch condicional endereo a soma do PC com deslocamento contido na instruo deslocamento dado em instrues e precisa ser multiplicado por 4 para indicar nmero de posies de memria.

Computao UFPel Arquitetura e Projeto de Computadores

Slide 10

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Modos de Endereamento
modo absoluto para instrues de desvio incondicional instruo tem campo com endereo de palavra com 26 bits endereo de byte obtido com dois bits menos significativos iguais a 0 4 bits mais significativos obtidos do PC s permite desvios dentro de uma rea de 256 Mbytes
PC

00
4 bits
Computao UFPel Arquitetura e Projeto de Computadores

26 bits
Slide 12 Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Instrues a Serem Implementadas
Instrues de referncia memria (tipo I): Load word (lw) e store word (sw)

Instrues aritmticas e lgicas (tipo R):


(add, sub, and, or) Instrues de salto: Branch on equal (beq) (tipo I) e jump (j) (tipo J)

Computao UFPel Arquitetura e Projeto de Computadores

Slide 13

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Princpios do Projeto Eficiente
Faa o caso comum executar mais rpido A simplicidade favorece a regularidade

Computao UFPel Arquitetura e Projeto de Computadores

Slide 14

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Regime de Clock (Temporizao)
Iremos supor que:
carga R1

Cada registrador possui um sinal de carga particular que ativado com lgica direta
Os registradores so disparados pela borda ascendente do relgio
R1

No desenho ao lado, quando CK=, se cargaR1=1, ento R1entradas

CK

Computao UFPel Arquitetura e Projeto de Computadores

Slide 15

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Regime de Clock (Temporizao)
Condies para o Correto Funcionamento do Bloco Comb.
carga R1

Caminho crtico (atraso crtico)

carga R2

R1

Bloco Combinacional (ex. ULA)

R2

CK

perodo do relgio (T)

O atraso crtico do bloco combinacional deve ser menor que o perodo do relgio
Computao UFPel Arquitetura e Projeto de Computadores

Slide 16

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Regime de Clock (Temporizao)
Temporizao para o Correto Funcionamento do Bloco Comb.
carga R1 carga R2

R1

Bloco Combinacional (ex. ULA)

R2

CK

escrita em R1
CK carga R1 Sadas do bloco combinacional

escrita em R2

estveis

instveis atraso do bloco combinacional

estveis

instveis

Computao UFPel Arquitetura e Projeto de Computadores

Slide 17

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Nesta primeira implementao iremos considerar que:

Qualquer instruo executada em um nico ciclo de relgio


O perodo do relgio ser longo o suficiente para acomodar qualquer instruo
Na verdade, o perodo do relgio ser funo da instruo mais demorada

Computao UFPel Arquitetura e Projeto de Computadores

Slide 18

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Elementos Necessrios para a Busca da Instruo:
a memria onde esto armazenadas as instrues o contador de programa (PC) para armazenar o endereo da instruo um somador para calcular o endereo da prxima instruo
32 32

Endereo
Instruo Memria de Instrues

32

32

32

32

PC
32

Computao UFPel Arquitetura e Projeto de Computadores

Slide 19

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
O contador de programa contm o endereo da instruo em execuo O endereo da prxima instruo obtido pela soma de 4 posies ao contador de programa
+
4

A instruo lida usada por outras pores do bloco operativo

PC

Endereo Instruo lida Memria de Instrues

Computao UFPel Arquitetura e Projeto de Computadores

Slide 20

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Elementos Necessrios para Execuo de Instrues tipo R:
Um banco de registradores para armazenar os operandos e o resultado das operaes Uma Unidade Lgica/Aritmtica (ULA) que ser utilizada para realizar as operaes
32 5

endereos dos registradores dado

5 5

Reg a ser lido #1

32 Dado lido #1 Zero ULA 32

Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg

dados
32

32

Resultado

3 Controle da ULA

32

Computao UFPel Arquitetura e Projeto de Computadores

Slide 21

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo Instrues formato R: add, sub, or, and
opcode = 0 funct define a operao a ser feita pela ALU shamt (shift amount) usado em instrues de deslocamento
31 26 25 21 20 16 15 11 10 6 5 0

opcode
6 bits

rs
5 bits

rt
5 bits

rd
5 bits

shamt
5 bits

funct
6 bits

registradores-fonte

registrador-destino

Simblico (exemplo):

add $s1,$s2,$s3 ($s1 $s2 + $s3)

Computao UFPel Arquitetura e Projeto de Computadores

Slide 22

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
A instruo (fornecida pelo hardware de busca de instrues) contm o endereo de trs registradores Dois destes registradores so lidos e passados para a ULA realizar a operao O resultado armazenado em um terceiro registrador O controle da ULA determina a operao que ser realizada (a partir do campo FNCT da instruo)
[25-21] 32 instruo [15-11] 5 [20-16] 5 5 3 Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg 32 Zero ULA 32 Resultado 32 Controle ULA

32

Computao UFPel Arquitetura e Projeto de Computadores

Slide 23

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Elementos Necessrios para Executar lw e sw
Uma memria de dados Um mdulo de extenso de sinal Um banco de registradores (j mostrado) Uma ULA (j mostrada) 5
EscMem 32 Endereo 32 Dado lido Memria de dados 32 5 5

Dado a ser escrito


LerMem 16 Exten- 32 so de sinal

32

Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita
EscReg

32 32 32 32 Zero ULA Resultado 32

3
Controle da ULA

Computao UFPel Arquitetura e Projeto de Computadores

Slide 24

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo Instrues formato I: load word (ld) e store word (sw)
load word (lw): opcode = 35 store word (sw): opcode = 43
31 26 25 21 20 16 15 0

opcode
6 bits

rs
5 bits

rt
5 bits

Deslocam. ou oper. Imediato


16 bits

registrador-base para o clculo do endereo de memria

registrador-destino (para lw) ou registrador-fonte (para sw)

Simblico
lw $s1, deslocam($s2) ($s1 Mem[$s2 + deslocam] ) sw $s1, deslocam($s2) (Mem[$s2 + deslocam] $s1 )
Computao UFPel Arquitetura e Projeto de Computadores

Slide 25

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Combinando os Elementos para uma Escrita na Memria (sw)
O endereo de escrita obtido pela soma de um registrador de base (registrador 1) com um deslocamento de 16 bits estendido para 32 bits O registrador 2 escrito na memria
[25-21] instruo 32 [20-16] 5 5 3 Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg 16 Extenso de sinal 32 32 Zero ULA EscMem Controle ULA

32
Endereo 32 Dado lido Memria de dados

32

32

Resultado

Dado a ser escrito LerMem

Computao UFPel Arquitetura e Projeto de Computadores

Slide 26

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Combinando os Elementos para uma Leitura da Memria (lw)
O processo de leitura semelhante ao de escrita A diferena bsica a existncia de um caminho para escrever o valor lido no banco de registradores Controle
[25-21] instruo 32 [20-16] 5 5 3 ULA Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg 16 Extenso de sinal 32 32

Zero
ULA 32 Resultado 32 32 Endereo

EscMem 32 Dado lido Memria de dados

Dado a ser escrito LerMem

Computao UFPel Arquitetura e Projeto de Computadores

Slide 27

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Elementos Necessrios Implementar um Branch on Equal
Comparar dois registradores usando a ULA para fazer uma subtrao O endereo de desvio (PC+4)+deslocamento (mais um somador) O deslocamento contido na instruo deve ser estendido para 32 bits; Uma multiplicao por 4 necessria, pois a memria de instrues utiliza 4 bytes para cada instruo A vantagem permitir o acesso a 218 endereos (16 bits da instruo + 2 de deslocamento) 32
5
32 Desl. esq. 2 bits 32

5
5

16

Exten- 32 so de sinal

32

Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg

32
32 32 32 Zero ULA 32 32 Resultado 3 Controle da ULA 32

Computao UFPel Arquitetura e Projeto de Computadores

Slide 28

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo Instruo formato I: beq: branch on equal
Opcode = 4 Campo deslocamento usado para calcular o endereo-alvo Se o contedo do registrador cujo endereo est no campo rs for igual ao contedo do registrador cujo endereo est em rt, ento salta para a posio endereo+PC+4
31 26 25 21 20 16 15 0

opcode
6 bits

rs
5 bits

rt
5 bits

Deslocam. ou oper. Imediato


16 bits

Simblico

registradores a serem comparados

beq $s1, $s2, deslocam

( if ($s1== $s2) then PCPC+4+deslocam)


Slide 29 Prof. Luciano Agostini Prof. Julio Mattos

Computao UFPel Arquitetura e Projeto de Computadores

Arquitetura do MIPS
Bloco Operativo Monociclo
Elementos Necessrios Implementar um Branch on Equal
Juntando os elementos
32 PC+4 32 Endereoalvo do Desvio condicional

+
Desl. esq. 2 bits 32

[25-21] 5
instruo 32

[20-16] 5

Reg a ser Dado lido #1 lido #1 Reg a ser lido #2 Registradores Reg a ser Dado escrito lido #2 Dado de escrita EscReg 16 Extenso de sinal 32

32

Controle ULA Zero Para o bloco de Controle

32

ULA Resultado

Computao UFPel Arquitetura e Projeto de Computadores

Slide 30

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Compondo o Bloco Operativo Monociclo
Nesta verso de bloco operativo qualquer instruo executa em um ciclo de relgio Isto significa que o perodo do relgio dever ser suficientemente longo para acomodar a instruo mais demorada Durante a execuo de uma instruo qualquer, cada unidade funcional s pode ser usada uma nica vez Por isso necessitamos de uma memria de instrues e outra de dados Ao combinarmos as pores de bloco operativo vistas anteriormente, veremos que muitas unidades funcionais podem ser compartilhadas
Computao UFPel Arquitetura e Projeto de Computadores

Slide 31

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Compondo o Bloco Operativo Monociclo
Recursos para executar instrues lw ou sw
[25-21]

instruo

32

[20-16]

[15-0]

Reg a ser lido #1 Dado Reg a ser lido #1 lido #2 Registradores Reg a ser escrito Dado lido #2 Dado de escrita EscReg 16 Extenso de sinal 32

32

Controle ULA Zero EscMem 32 Endereo 32 Dado lido

ULA 32 Resultado

32

Memria de dados Dado a ser escrito

LerMem

Para sw, campo Rt (bits 20-16) designam registrador cujo contedo ser escrito na memria de dados Para lw, Rt (bits 20-16) designam registrador que ser carregado com valor lido da memria de dados
Computao UFPel Arquitetura e Projeto de Computadores

Slide 32

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Compondo o Bloco Operativo Monociclo
Combinando os recursos para executar instrues tipo R ou instrues lw e sw
[25-21]

instruo

32

[20-16] M U 1X
0

[15-11] [15-0]

Reg a ser lido #1 Dado Reg a ser lido #1 lido #2 Registradores Reg a ser escrito Dado lido #2 Dado de escrita EscReg 16 Exten- 32 so de sinal

3
ULAFonte
0

Controle ULA Zero


MemParaReg

EscMem Endereo Dado lido Memria de dados


0

M U X

ULA Resultado

M U X

RegDst

Dado a ser escrito LerMem

Para lw, o endereo do registrador a ser escrito est no campo Rt (bits 20-16) Para instrues tipo R, o endereo do registrador a ser escrito est no campo Rd (bits 15-11)
Computao UFPel Arquitetura e Projeto de Computadores

Slide 33

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Compondo o Bloco Operativo Monociclo
Acrescentando os Recursos para a Busca da Instruo e o Clculo do Prximo Endereo (exceto em desvios)

+
4
Controle ULA Zero ULA Resultado Endereo
MemParaReg [25-21]

PC

Endereoinstruo 32 [20-16] Instruo lida Memria de Instrues


[15-11] [15-0] M U 1X
0

Reg a ser lido #1 Dado Reg a ser lido #1 lido #2 Registradores Reg a ser escrito Dado lido #2 Dado de escrita

3
ULAFonte
0

EscMem Dado lido Memria de dados


0

M U X

M U X

RegDst 16

EscReg
Exten- 32 so de sinal

Dado a ser escrito LerMem

Computao UFPel Arquitetura e Projeto de Computadores

Slide 34

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Compondo o Bloco Operativo Monociclo
Acrescentando os Recursos para Executar Desvio Condicional (Branch on equal)
FontePC

+
4
Desl. esq. 2 bits
Reg a ser lido #1 Dado Reg a ser lido #1 lido #2 Registradores Reg a ser escrito Dado lido #2 Dado de escrita

+
[25-21]

M U X

Controle ULA Zero


MemParaReg

PC

[20-16]

Endereo Instruo lida Memria de Instrues

32
[15-11] [15-0] M U 1X
0

ULAFonte
0

EscMem Endereo Dado lido Memria de dados


0

M U X

ULA Resultado

M U X

RegDst 16

EscReg
Exten- 32 so de sinal

Dado a ser escrito LerMem

Computao UFPel Arquitetura e Projeto de Computadores

Slide 35

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Estimativa da Freqncia Mxima de Funcionamento
ao final de cada ciclo de relgio o PC carregado com um novo valor mudana no valor do PC se propaga atravs de uma grande lgica combinacional memria de instrues => banco de registradores => ULA => memria de dados => banco de registradores perodo do ciclo de relgio deve ser maior do que mximo atraso de propagao atravs desta lgica combinacional

Computao UFPel Arquitetura e Projeto de Computadores

Slide 36

Prof. Luciano Agostini Prof. Julio Mattos

Arquitetura do MIPS
Bloco Operativo Monociclo
Exemplo de Clculo
supondo os seguintes atrasos: memrias: 4 ns ULA: 2 ns banco de registradores: 1 ns somadores: 1 ns demais componentes: atraso desprezvel
instruo
add, sub, and, or beq sw lw busca 4ns 4ns 4ns 4ns L registradores 1ns 1ns 1ns 1ns Clculo na ULA 2ns 2ns 2ns 2ns

Acessa memria de dados


--4ns 4ns

Escreve em registrador
1ns --1ns

Total 8ns 7ns 11ns 12ns

perodo do ciclo de relgio deve ser maior do que 12 ns (cerca de 83 MHz)


Computao UFPel Arquitetura e Projeto de Computadores

Slide 37

Prof. Luciano Agostini Prof. Julio Mattos