1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

36
Arquitetura do MIPS: características gerais, formatos de instrução, modos de endereçamento. MIPS monociclo: instruções implementadas, regime de clock, construção do bloco operativo. Universidade Federal de Pelotas Centro de Desenvolvimento Tecnológico Mestrado em Computação Arquitetura e Projeto de Computadores Profs. Luciano Agostini e Júlio Mattos [email protected] e [email protected]

Transcript of 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Page 1: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Arquitetura do MIPS: características gerais,

formatos de instrução, modos de endereçamento.

MIPS monociclo: instruções implementadas, regime

de clock, construção do bloco operativo.

Universidade Federal de PelotasCentro de Desenvolvimento Tecnológico

Mestrado em Computação

Arquitetura e Projeto de

Computadores

Profs. Luciano Agostini e Júlio Mattos

[email protected] e [email protected]

Page 2: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 2Computação UFPel

Arquitetura e Projeto de Computadores

• todas as instruções têm 32 bits

• todas têm opcode de 6 bits

• o modo de endereçamento é codificado juntamente com o

opcode

Instruções

31 26 25 0

opcode

6 bits 26 bits

Page 3: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 3Computação UFPel

Arquitetura e Projeto de Computadores

• opcode = 0

• “funct” define a operação a ser feita pela ALU

• “shamt” (shift amount) é usado em instruções de deslocamento

Instruções formato R: add, sub, or, and

31 26 25 21 20 16 15 11 10 6 5 0

opcode rs rt rd shamt funct

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

registradores-fonte registrador-destino

Simbólico (exemplo): add $s1,$s2,$s3 ($s1 $s2 + $s3)

Page 4: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 4Computação UFPel

Arquitetura e Projeto de Computadores

• load word (lw): opcode = 35

• store word (sw): opcode = 43

Instruções formato I: load word (ld) e store word (sw)

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato

6 bits 5 bits 5 bits 16 bits

Simbólico

lw $s1, deslocam($s2) ($s1 Mem[$s2 + deslocam] )

sw $s1, deslocam($s2) (Mem[$s2 + deslocam] $s1 )

registrador-base para o cálculo do endereço de

memória

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

Page 5: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 5Computação UFPel

Arquitetura e Projeto de Computadores

• Opcode = 4

• Campo deslocamento usado para calcular o endereço-alvo

• Se o conteúdo do registrador cujo endereço está no campo rs

for igual ao conteúdo do registrador cujo endereço está em

rt, então salta para a posição endereço+PC+4

Instrução formato I: Desvio Condicional

beq: branch on equal

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato

6 bits 5 bits 5 bits 16 bits

Simbólico

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

registradores a serem comparados

Page 6: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 6Computação UFPel

Arquitetura e Projeto de Computadores

• Opcode = 2

• Campo deslocamento usado para calcular o endereço-alvo

Instrução formato J: Desvio Incondicional

j: jump

31 26 25 0

opcode endereço

6 bits 26 bits

Simbólico

j endereço ( PCendereço )

Page 7: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 7Computação UFPel

Arquitetura e Projeto de Computadores

• 32 registradores de propósito geral de 32 bits

– $0, $1, …, $31

– operações inteiras

– endereçamento

• $0 tem sempre valor 0

• $31 guarda endereço de retorno de sub-rotina

Registradores

Page 8: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 8Computação UFPel

Arquitetura e Projeto de Computadores

• dados inteiros disponíveis em instruções load e store

– bytes

– meias-palavras de 16 bits

– palavras de 32 bits

• dados inteiros disponíveis em instruções aritméticas e lógicas

– meias-palavras de 16 bits (estendidos para 32 bits)

– palavras de 32 bits

Tipos de Dados

Page 9: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 9Computação UFPel

Arquitetura e Projeto de Computadores

• acessos à memória devem ser alinhados

– dados de 32 bits precisam iniciar em endereços múltiplos de 4

• modo registrador

– para instruções aritméticas e lógicas: dado está em registrador

– para instruções de desvio incondicional: endereço está em

registrador

Modos de Endereçamento

Page 10: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 10Computação UFPel

Arquitetura e Projeto de Computadores

• modo base e deslocamento

– para instruções load e store

– base é registrador inteiro de 32 bits

– deslocamento de 16 bits contido na própria instrução

• modo relativo ao PC

– para instruções de branch condicional

– endereço é a soma do PC com deslocamento contido na instrução

– deslocamento é dado em instruções e precisa ser multiplicado por 4 para indicar número de posições de memória.

Modos de Endereçamento

Page 11: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 12Computação UFPel

Arquitetura e Projeto de Computadores

• modo absoluto

– para instruções de desvio incondicional

– instrução tem campo com endereço de palavra com 26 bits

– endereço 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

0 0

26 bits4 bits

PC

Modos de Endereçamento

Page 12: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 13Computação UFPel

Arquitetura e Projeto de Computadores

• Instruções de referência à memória (tipo I):

Load word (lw) e store word (sw)

• Instruções aritméticas e lógicas (tipo R):

(add, sub, and, or)

• Instruções de salto:

Branch on equal (beq) (tipo I) e jump (j) (tipo J)

Instruções a Serem Implementadas

Page 13: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 14Computação UFPel

Arquitetura e Projeto de Computadores

“Faça o caso comum executar mais rápido”

“A simplicidade favorece a regularidade”

Princípios do Projeto Eficiente

Page 14: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 15Computação UFPel

Arquitetura e Projeto de Computadores

Regime de Clock (Temporização)

Iremos supor que:

R1

CK

carga R1

• Cada registrador possui um sinal de carga

particular que é ativado com lógica direta

• Os registradores são “disparados” pela borda

ascendente do relógio

• No desenho ao lado, quando CK=, se

cargaR1=1, então R1entradas

Page 15: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 16Computação UFPel

Arquitetura e Projeto de Computadores

Regime de Clock (Temporização)Condições para o Correto Funcionamento do Bloco Comb.

período do relógio (T)

R1Bloco Combinacional

(ex. ULA)R2

CK

carga R1 carga R2

O atraso crítico do bloco combinacional deve ser menor que o período do

relógio

Caminho crítico (atraso crítico)

Page 16: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 17Computação UFPel

Arquitetura e Projeto de Computadores

Regime de Clock (Temporização)Temporização para o Correto Funcionamento do Bloco Comb.

R1Bloco Combinacional

(ex. ULA)R2

CK

carga R1 carga R2

CK

Saídas do bloco

combinacionalestáveis estáveisinstáveis instáveis

carga R1

escrita em R1 escrita em R2

atraso do bloco combinacional

Page 17: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 18Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo Monociclo

Nesta primeira implementação iremos considerar que:

• Qualquer instrução é executada em um único ciclo de

relógio

• O período do relógio será longo o suficiente para

acomodar qualquer instrução

– Na verdade, o período do relógio será função da instrução mais

demorada

Page 18: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 19Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloElementos Necessários para a Busca da Instrução:

• a memória onde estão armazenadas as instruções

• o contador de programa (PC) para armazenar o endereço

da instrução

• um somador para calcular o endereço da próxima instrução

Endereço

Instrução

Memória de Instruções

PC +

32

32

32 32

32

32

32

Page 19: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 20Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo Monociclo

• O contador de programa contém o

endereço da instrução em execução

• O endereço da próxima instrução é

obtido pela soma de 4 posições ao

contador de programa

• A instrução lida é usada por outras

porções do bloco operativoEndereço

Instruçãolida

Memória de Instruções

PC

+4

Page 20: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 21Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloElementos Necessários para Execução de Instruções tipo R:

• Um banco de registradores para armazenar os operandos e o

resultado das operações

• Uma Unidade Lógica/Aritmética (ULA) que será utilizada

para realizar as operações

dado

endereços

dos regis-

tradores dados

Reg a serlido #1

Reg a serlido #2

Reg a serescrito

Dado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

5

32

32

32

Zero

Resultado

ULA

Controleda ULA

3

32

3232

Page 21: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 22Computação UFPel

Arquitetura e Projeto de Computadores

• opcode = 0

• “funct” define a operação a ser feita pela ALU

• “shamt” (shift amount) é usado em instruções de deslocamento

Bloco Operativo Monociclo

Instruções formato R: add, sub, or, and

31 26 25 21 20 16 15 11 10 6 5 0

opcode rs rt rd shamt funct

6 bits 5 bits 5 bits 5 bits 5 bits 6 bits

registradores-fonte registrador-destino

Simbólico (exemplo): add $s1,$s2,$s3 ($s1 $s2 + $s3)

Page 22: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 23Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo Monociclo• A instrução (fornecida pelo hardware de busca de instruções) contém o

endereço de três registradores

• Dois destes registradores são lidos e passados para a ULA realizar a operação

• O resultado é armazenado em um terceiro registrador

• O controle da ULA determina a operação que será realizada (a partir do campo FNCT da instrução)

Reg a serlido #1Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

5

32

32

32

Zero

Resultado

ULA

ControleULA3

32instrução

32

[25-21]

[20-16]

[15-11]

Page 23: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 24Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloElementos Necessários para Executar lw e sw

• Uma memória de dados

• Um módulo de extensão de sinal

• Um banco de registradores (já mostrado)

• Uma ULA (já mostrada)

Exten-são de

sinal

3216LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

3232

32

Reg a serlido #1

Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

5

32

32

32Zero

Resultado

ULA

Controleda ULA

3

32

3232

Page 24: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 25Computação UFPel

Arquitetura e Projeto de Computadores

• load word (lw): opcode = 35

• store word (sw): opcode = 43

Bloco Operativo Monociclo

Instruções formato I: load word (ld) e store word (sw)

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato

6 bits 5 bits 5 bits 16 bits

Simbólico

lw $s1, deslocam($s2) ($s1 Mem[$s2 + deslocam] )

sw $s1, deslocam($s2) (Mem[$s2 + deslocam] $s1 )

registrador-base para o cálculo do endereço de

memória

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

Page 25: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 26Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloCombinando os Elementos para uma Escrita na Memória (sw)

• O endereço 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 memória

Reg a serlido #1Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

32

32

Zero

Resultado

ULA

ControleULA3

instrução

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

3232

32

Exten-são de

sinal

3216

32

[25-21]

[20-16]

Page 26: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 27Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloCombinando os Elementos para uma Leitura da Memória (lw)

• O processo de leitura é semelhante ao de escrita

• A diferença básica é a existência de um caminho para escrever o valor

lido no banco de registradores

Reg a serlido #1Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

32

32

Zero

Resultado

ULA

ControleULA3

instrução

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

3232

32

Exten-são de

sinal

3216

32

[25-21]

[20-16]

Page 27: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 28Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloElementos Necessários Implementar um Branch on Equal

• Comparar dois registradores usando a ULA para fazer uma subtração

• O endereço de desvio é (PC+4)+deslocamento (mais um somador)

• O deslocamento contido na instrução deve ser estendido para 32 bits;

• Uma multiplicação por 4 é necessária, pois a memória de instruções

utiliza 4 bytes para cada instrução

• A vantagem é permitir o acesso a 218 endereços (16 bits da instrução +

2 de deslocamento)

Exten-são de

sinal

3216

Reg a serlido #1

Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

5

32

32

32

+

32

32

32

32Desl.à esq.2 bits

32Zero

Resultado

ULA

Controleda ULA

3

32

3232

Page 28: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 29Computação UFPel

Arquitetura e Projeto de Computadores

• Opcode = 4

• Campo deslocamento usado para calcular o endereço-alvo

• Se o conteúdo do registrador cujo endereço está no campo rs

for igual ao conteúdo do registrador cujo endereço está em

rt, então salta para a posição endereço+PC+4

Bloco Operativo Monociclo

Instrução formato I: beq: branch on equal

31 26 25 21 20 16 15 0

opcode rs rt Deslocam. ou oper. Imediato

6 bits 5 bits 5 bits 16 bits

Simbólico

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

registradores a serem comparados

Page 29: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 30Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloElementos Necessários Implementar um Branch on Equal

Reg a serlido #1

Reg a serlido #2

Reg a serescritoDado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

5

5

32

32

Zero

Resultado

ULA

ControleULA3

instrução

Endereço-alvo do Desvio condicional

Exten-são de

sinal

3216

32

+

32

32

32

Desl.à esq.2 bits

PC+4

Para o blocode Controle

[25-21]

[20-16]

• Juntando os elementos

Page 30: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 31Computação UFPel

Arquitetura e Projeto de Computadores

Compondo o Bloco Operativo Monociclo

• Nesta versão de bloco operativo qualquer instrução executa em

um ciclo de relógio

• Isto significa que o período do relógio deverá ser suficientemente

longo para acomodar a instrução mais demorada

• Durante a execução de uma instrução qualquer, cada unidade

funcional só pode ser usada uma única vez

• Por isso necessitamos de uma memória de instruções e outra de

dados

• Ao combinarmos as porções de bloco operativo vistas

anteriormente, veremos que muitas unidades funcionais podem

ser compartilhadas

Page 31: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 32Computação UFPel

Arquitetura e Projeto de Computadores

Compondo o Bloco Operativo Monociclo

Recursos para executar instruções lw ou sw

Reg a serlido #1Reg a serlido #2

Reg a serescrito

Dado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

32

32

Zero

Resultado

ULA

ControleULA3

instrução

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

3232

32

Exten-são de

sinal

3216

32

[25-21]

[20-16]

[15-0]

• Para sw, campo Rt (bits 20-16) designam registrador cujo conteúdo será escrito

na memória de dados

• Para lw, Rt (bits 20-16) designam registrador que será carregado com valor lido

da memória de dados

Page 32: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 33Computação UFPel

Arquitetura e Projeto de Computadores

Compondo o Bloco Operativo MonocicloCombinando os recursos para executar instruções tipo R

ou instruções lw e sw…

Reg a serlido #1Reg a serlido #2

Reg a serescrito

Dado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

Zero

Resultado

ULA

ControleULA3

instrução

Exten-são de

sinal

3216

32

[25-21]

[20-16]

[15-11]

MUX

0

1

RegDst

[15-0]

MUX

0

1

ULAFonte

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

MUX

0

1

MemParaReg

• Para lw, o endereço do registrador a ser escrito está no campo Rt (bits 20-16)

• Para instruções tipo R, o endereço do registrador a ser escrito está no campo

Rd (bits 15-11)

Page 33: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 34Computação UFPel

Arquitetura e Projeto de Computadores

Compondo o Bloco Operativo MonocicloAcrescentando os Recursos para a Busca da Instrução e o

Cálculo do Próximo Endereço (exceto em desvios)

Endereço

Instruçãolida

Memória de Instruções

PC

+4

32instrução

Reg a serlido #1Reg a serlido #2

Reg a serescrito

Dado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

Zero

Resultado

ULA

ControleULA3

Exten-são de

sinal

3216

[25-21]

[20-16]

[15-11]

MUX

0

1

RegDst

[15-0]

MUX

0

1

ULAFonte

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

MUX

0

1

MemParaReg

Page 34: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 35Computação UFPel

Arquitetura e Projeto de Computadores

Compondo o Bloco Operativo MonocicloAcrescentando os Recursos para Executar Desvio

Condicional (Branch on equal)

32ULAFonte

Endereço

Instruçãolida

Memória de Instruções

PC

+4

+Desl.à esq.2 bits

MUX

0

1

FontePC

Reg a serlido #1Reg a serlido #2

Reg a serescrito

Dado deescrita

Dado lido #1

Dadolido #2

Registradores

EscReg

Zero

Resultado

ULA

ControleULA3

Exten-são de

sinal

3216

[25-21]

[20-16]

[15-11]

MUX

0

1

RegDst

[15-0]

MUX

0

1

LerMem

EscMem

Endereço Dado lido

Dado a serescrito

Memória de dados

MUX

0

1

MemParaReg

Page 35: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 36Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloEstimativa da Freqüência Máxima de Funcionamento

• ao final de cada ciclo de relógio o PC é carregado com um novo valor

• mudança no valor do PC se propaga através de uma grande lógica

combinacional

memória de instruções => banco de registradores => ULA =>

memória de dados => banco de registradores

• período do ciclo de relógio deve ser maior do que máximo atraso de

propagação através desta lógica combinacional

Page 36: 1.Introdução ao MIPS e MIPS Monociclo - Parte I (APC_MIPS_mono_1)

Prof. Luciano Agostini

Prof. Julio Mattos

Arquitetura do MIPS

Slide 37Computação UFPel

Arquitetura e Projeto de Computadores

Bloco Operativo MonocicloExemplo de Cálculo

• supondo os seguintes atrasos:

– memórias: 4 ns – ULA: 2 ns

– banco de registradores: 1 ns – somadores: 1 ns

– demais componentes: atraso desprezível

período do ciclo de relógio deve ser maior do que 12 ns (cerca de 83 MHz)

instrução buscaLê

registradores

Cálculo

na ULA

Acessa

memória de

dados

Escreve

em

registrador

Total

add, sub, and, or 4ns 1ns 2ns -- 1ns 8ns

beq 4ns 1ns 2ns -- -- 7ns

sw 4ns 1ns 2ns 4ns -- 11ns

lw 4ns 1ns 2ns 4ns 1ns 12ns