Professional Documents
Culture Documents
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
Slide 2
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):
Slide 3
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
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
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
Simblico
Arquitetura do MIPS
Instruo formato J: Desvio Incondicional
j: jump
opcode
6 bits
endereo
26 bits
Simblico
j endereo
( PCendereo )
Slide 6 Prof. Luciano Agostini Prof. Julio Mattos
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
Slide 7
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
Slide 8
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
Slide 9
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.
Slide 10
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)
Slide 13
Arquitetura do MIPS
Princpios do Projeto Eficiente
Faa o caso comum executar mais rpido A simplicidade favorece a regularidade
Slide 14
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
CK
Slide 15
Arquitetura do MIPS
Regime de Clock (Temporizao)
Condies para o Correto Funcionamento do Bloco Comb.
carga R1
carga R2
R1
R2
CK
O atraso crtico do bloco combinacional deve ser menor que o perodo do relgio
Computao UFPel Arquitetura e Projeto de Computadores
Slide 16
Arquitetura do MIPS
Regime de Clock (Temporizao)
Temporizao para o Correto Funcionamento do Bloco Comb.
carga R1 carga R2
R1
R2
CK
escrita em R1
CK carga R1 Sadas do bloco combinacional
escrita em R2
estveis
estveis
instveis
Slide 17
Arquitetura do MIPS
Bloco Operativo Monociclo
Nesta primeira implementao iremos considerar que:
Slide 18
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
Slide 19
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
PC
Slide 20
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
5 5
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
Slide 21
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):
Slide 22
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
Slide 23
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
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
3
Controle da ULA
Slide 24
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
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
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
Slide 26
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
Slide 27
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
Slide 28
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
Simblico
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
32
ULA Resultado
Slide 30
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
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
ULA 32 Resultado
32
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
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
M U X
ULA Resultado
M U X
RegDst
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
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
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
M U X
M U X
RegDst 16
EscReg
Exten- 32 so de sinal
Slide 34
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
PC
[20-16]
32
[15-11] [15-0] M U 1X
0
ULAFonte
0
M U X
ULA Resultado
M U X
RegDst 16
EscReg
Exten- 32 so de sinal
Slide 35
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
Slide 36
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
Escreve em registrador
1ns --1ns
Slide 37