Sei sulla pagina 1di 25

Universidade Federal de Pelotas

Centro de Desenvolvimento Tecnolgico


Bacharelado em Cincia da Computao Engenharia de Computao

Arquitetura e Organizao de Computadores I


Aula 5
2. MIPS monociclo: instrues a serem implementadas, regime de clock, construo do bloco operativo. Prof. Luciano Volcan Agostini
agostini@inf.ufpel.edu.br

2. Organizaes do MIPS: monociclo


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 ) e jump ( j )

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 2

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: 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)

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 3

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: 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, offset($s2) ($s1 Mem[$s2 + deslocam] ) sw $s1, offset($s2) (Mem[$s2 + deslocam] $s1 )
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 4

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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)


ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 5

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 6

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 7

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 8

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 9

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 10

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 11

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 12

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 13

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 14

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 15

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 16

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 17

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


Bloco Operativo Monociclo
Elementos Necessrios Implementar um Branch on Equal
Comparar dois registradores usando a ULA para fazer uma subtrao 32 Se ocorrer desvio, o endereo de desvio PC+4 32 PC+4+deslocamento + O deslocamento contido na instruo deve ser 32 Desl. esq. estendido para 32 bits (pois est em 16 bits) 2 bits Controle A multiplicao por 4 3 ULA [25-21] 5 32 Reg a ser necessria, pois a Dado lido #1 5 32 [20-16] Zero instruo lido #1 Reg a ser memria de lido #2 ULA Registradores 32 instrues utiliza Resultado Reg a ser Dado escrito lido #2 4 bytes para cada instruo Dado de escrita A vantagem permitir o acesso EscReg 18 a 2 endereos (16 bits da 16 Exten- 32 instruo + 2 de deslocamento) so de
ComputaoUFPel Arquitetura e Organizao de Computadores I
sinal

Endereoalvo do Desvio condicional

Para o bloco de Controle

Slide 18

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 19

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 20

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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)
ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 21

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 22

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 23

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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

ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 24

Prof. Luciano Volcan Agostini

2. Organizaes do MIPS: monociclo


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)


ComputaoUFPel Arquitetura e Organizao de Computadores I

Slide 25

Prof. Luciano Volcan Agostini

Potrebbero piacerti anche