arquiteturas de computadores

36
Arquiteturas de Computadores Implementação monociclo de MIPS Arquiteturas de Computadores Fontes dos slides : Patterson & Hennessy book website (copyright Morgan Kaufmann) e Dr. Sumanta Guha

Upload: others

Post on 21-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquiteturas de Computadores

Arquiteturas de Computadores

Implementação monociclo de MIPS

Arquiteturas de Computadores

Fontes dos slides: Patterson &Hennessy book website(copyright Morgan Kaufmann)e Dr. Sumanta Guha

Page 2: Arquiteturas de Computadores

Implementação do conjunto de instruções MIPS Simplificado para conter somente

Instruções lógico-aritméticas: add, sub, and, or, slt Instruções de referência à memória: lw, sw Instruções de controle de fluxo: beq, j

Implementando MIPS

op rs rt offset

6 bits 5 bits 5 bits 16 bits

op rs rt rd functshamt

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

R-Format

I-Format

op address

6 bits 26 bits

J-Format

Page 3: Arquiteturas de Computadores

Visão alto nível da implementação do ciclo de busca/execução de uma instrução usa o registrador contador de instrução (PC) para fornecer o endereço da

instrução busca a instrução na memória e incrementa PC usa campos da instrução para selecionar os registradores a serem lidos executa a instrução repita …

Implementando MIPS: Ciclo Busca/Execução

RegistersRegister #

Data

Register #

Data memory

Address

Data

Register #

PC Instruction ALU

Instruction memory

Address

Page 4: Arquiteturas de Computadores

Estilos para implementação do processador Monociclo

Executa cada instrução em um ciclo de relógio O ciclo de relógio deve ser longo o suficiente para que a

instrução que demanda maior tempo seja executada desvantagem: tão rápido quanto a instrução mais lenta

Multi-Ciclos Quebra o ciclo de busca/execução em vários passos executa 1 passo em cada ciclo de relógio vantagem: cada instrução usa somente o número de ciclos que

precisa Pipelined

executa cada instrução em vários passos executa 1 passo / instrução em cada ciclo de relógio Processa múltiplas instruções em paralelo

Page 5: Arquiteturas de Computadores

Dois tipos de elementos funcionais no hardware: elementos que operam os dados (denominados elementos

combinacionais ) elementos que contêm dados (denominados elementos de estado ou

sequenciais)

Elementos funcionais

Page 6: Arquiteturas de Computadores

Elementos Combinacionais

Trabalham com uma função input output, e.g., ALU Lógica combinacional lê dados de entrada de um registrador e escreve

dados no mesmo registrador ou em um diferente Leitura/escrita acontecem em um único ciclo–elemento combinacional não

armazena dado de um ciclo para outro

Clock cycle

State element

1Combinational logic

State element

2

State element Combinational logic

Unidades de hardware com lógica combinacional

Page 7: Arquiteturas de Computadores

Elementos de Estado

Elementos de estado armazenam dados, e.g., registradores e memória

Todos os elementos de estado definem o estado da máquina

Page 8: Arquiteturas de Computadores

Elementos de estado no caminho de dados: Registradores

Read register number 1 Read

data 1

Read data 2

Read register number 2

Register fileWrite register

Write data Write

Registradores com duas portas para leiturae uma porta para escrita

Clock

5 bits

5 bits

5 bits

32 bits

32 bits

32 bits

Sinal de controle

Page 9: Arquiteturas de Computadores

Implementação:

n-to-1 decoder

Register 0

Register 1

Register n – 1C

C

D

DRegister n

C

C

D

D

Register number

Write

Register data

01

n – 1n

M u x

Register 0Register 1

Register n – 1Register n

M u x

Read data 1

Read data 2

Read register number 1

Read register number 2

Portas de entrada são implementadas com2 multiplexadores de 5 bits para selecionar 32 registradores

Porta de saída é implementada com um decodificador5-to-32 para 32 registradores. O relógio é relevantepara a escrita porque o estado do registrador sópode ser trocado na transição do relógio

Clock

Clock

Elementos de estado no caminho de dados: Registradores

Page 10: Arquiteturas de Computadores

Implementação de MIPS monociclo

A primeira implementação de MIPS irá usar um único ciclo longo de relógio para cada instrução

Cada instrução começa a ser executada em uma transição para cima do relógio e termina na próxima transição para cima

Esta abordagem não é prática porque é muito mais devagar que uma implementação multiciclo onde cada instrução pode necessitar de números de ciclos diferentes Em uma implementação monociclo, cada instrução deve utilizar o

mesmo tempo que a instrução mais lenta necessita Em uma implementação multiciclo, este problema é evitado

porque instruções mais rápidas necessitam um número menor de ciclos

Embora a abordagem monociclo não seja utilizada na prática, ela é simples e fácil de entender

Page 11: Arquiteturas de Computadores

Caminho de dados: Instrução Armazena/Busca & Incremento do PC

PC

Instruction memory

Instruction address

Instruction

a. Instruction memory b. Program counter

Add Sum

c. Adder

PC

Instruction memory

Read address

Instruction

4

Add

Três elementos usados para armazenar e buscar instruções eincrementar o PC

Caminho de dados

Page 12: Arquiteturas de Computadores

Caminho de dados: Instrução Armazena/Busca & Incremento do PC

Instrução <- MEM[PC]PC <- PC + 4

RDMemory

ADDR

PC

Instruction

4

ADD

Page 13: Arquiteturas de Computadores

Caminho de dados: Instrução do tipo R

ALU control

RegWrite

RegistersWrite register

Read data 1

Read data 2

Read register 1

Read register 2

Write data

ALU result

ALU

Data

Data

Register numbers

a. Registers b. ALU

Zero5

5

5 3

InstructionRegisters

Write register

Read data 1

Read data 2

Read register 1

Read register 2

Write data

ALU result

ALUZero

RegWrite

ALU operation3

Dois elementos usados para implementarinstruções do tipo R

Caminho de dados

Page 14: Arquiteturas de Computadores

Caminho de dados: Instrução do tipo R

add rd, rs, rt

R[rd] <- R[rs] + R[rt];

5 5 5

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

op rs rt rd functshamt

Operation

ALU Zero

Instruction

3

Page 15: Arquiteturas de Computadores

Caminho de dados: Instrução Carrega/Armazena

16 32Sign

extend

b. Sign-extension unit

MemRead

MemWrite

Data memory

Write data

Read data

a. Data memory unit

Address

Instruction

16 32

RegistersWrite register

Read data 1

Read data 2

Read register 1

Read register 2

Data memory

Write data

Read data

Write data

Sign extend

ALU result

ZeroALU

Address

MemRead

MemWrite

RegWrite

ALU operation3

Dois elementos adicionais usados paraimplementar instruções do tipo carrega/armazena

Caminho de dados

Page 16: Arquiteturas de Computadores

Caminho de dados: Instrução Carrega/Armazena

op rs rt offset/immediate

5 5

16

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RDWD

MemRead

MemoryADDR

MemWrite

5

lw rt, offset(rs)

R[rt] <- MEM[R[rs] + s_extend(offset)];

Page 17: Arquiteturas de Computadores

Caminho de dados: Instrução Carrega/Armazena

op rs rt offset/immediate

5 5

16

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RDWD

MemRead

MemoryADDR

MemWrite

5

sw rt, offset(rs)

MEM[R[rs] + sign_extend(offset)] <- R[rt]

Page 18: Arquiteturas de Computadores

Caminho de dados: Instrução de desvio

16 32Sign

extend

ZeroALU

Sum

Shift left 2

To branch control logic

Branch target

PC + 4 from instruction datapath

Instruction

Add

RegistersWrite register

Read data 1

Read data 2

Read register 1

Read register 2

Write data

RegWrite

ALU operation3

Caminho de dados

Page 19: Arquiteturas de Computadores

Caminho de dados: Instrução de desvio

beq rs, rt, offset

op rs rt offset/immediate

5 5

16

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

EXTND

16 32

Zero

ADD

<<2

PC +4 from instruction datapath

if (R[rs] == R[rt]) then PC <- PC+4 + s_extend(offset<<2)

Page 20: Arquiteturas de Computadores

Caminho de dados para MIPS I:Monociclo

Entrada deve ser conteúdo de registrador (formato R) ou metade da instrução com extensão de sinal(formato carrega/armazena)

Combinando o caminho de dados para instruções do tipo Re carrega/armazena usando dois multiplexadores

Dados vêm da ALU (tipo R) ou da memória (carrega)

Page 21: Arquiteturas de Computadores

Instruções do tipo R

add rd,rs,rt5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

MUXALUSrc

MemtoReg

Page 22: Arquiteturas de Computadores

Instrução do tipo carrega

lw rt,offset(rs)5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

MUXALUSrc

MemtoReg

Page 23: Arquiteturas de Computadores

Instrução do tipo armazena

sw rt,offset(rs)5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

MUXALUSrc

MemtoReg

Page 24: Arquiteturas de Computadores

Caminho de dados para MIP II: Monociclo

PC

Instruction memory

Read address

Instruction

16 32

Registers

Write registerWrite data

Read data 1

Read data 2

Read register 1Read register 2

Sign extend

ALU result

Zero

Data memory

Address

Write data

Read data M

u x

4

Add

M u x

ALU

RegWrite

ALU operation3

MemRead

MemWrite

ALUSrcMemtoReg

Busca da instrução add

Memória de dados e instruções separadasporque leitura de memória e instrução ocorrem nomesmo ciclo de relógio

Somador separado da ALU porque as operações da ALUe incremento do PC devem ocorrer no mesmo ciclo de relógio

Page 25: Arquiteturas de Computadores

Caminho de dados para MIP III: Monociclo

PC

Instruction memory

Read address

Instruction

16 32

Add ALU result

M u x

Registers

Write registerWrite data

Read data 1

Read data 2

Read register 1Read register 2

Shift left 2

4

M u x

ALU operation3

RegWrite

MemRead

MemWrite

PCSrc

ALUSrcMemtoReg

ALU result

ZeroALU

Data memory

Address

Write data

Read data M

u x

Sign extend

Add

Incluindo a capacidade de desvio e outro multiplexador

Endereço da instrução éPC+4 ou endereço do desvio

Precisa de um somador extra porque os dois operam no mesmo ciclo

Novo multiplexador

Page 26: Arquiteturas de Computadores

Execução da instrução add

add rd, rs, rt

5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

ALUSrc

MemtoReg

ADD

<<2

RDInstruction

Memory

ADDR

PC

4

ADD

ADD

MUX

MUX

PCSrc

Page 27: Arquiteturas de Computadores

Execução da instrução lw

lw rt,offset(rs)

5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

ALUSrc

MemtoReg

ADD

<<2

RDInstruction

Memory

ADDR

PC

4

ADD

ADD

MUX

MUX

PCSrc

Page 28: Arquiteturas de Computadores

Execução da instrução sw

sw rt,offset(rs)

5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

ALUSrc

MemtoReg

ADD

<<2

RDInstruction

Memory

ADDR

PC

4

ADD

ADD

MUX

MUX

PCSrc

Page 29: Arquiteturas de Computadores

Execução da instrução beq

beq r1,r2,offset

5 516

RD1

RD2

RN1 RN2 WN

WD

RegWrite

Register File

Operation

ALU

3

EXTND

16 32

Zero

RD

WDMemRead

DataMemory

ADDRMemWrite

5

Instruction32

MUX

ALUSrc

MemtoReg

ADD

<<2

RDInstruction

Memory

ADDR

PC

4

ADD

ADD

MUX

MUX

PCSrc

Page 30: Arquiteturas de Computadores

Controle

Os dados de entrada da unidade de controle são: Os bits do campo opcode da instrução

A unidade de controle gera Sinais de controle para a ALU Sinais de escrita e leitura para os elementos de armazenamento Sinais de controle para cada multiplexador

Page 31: Arquiteturas de Computadores

Controle da ALU

Como controlar a ALU: controle principal envia 2-bits ALUOp para o campo de controle da ALU. Baseado em ALUOp e campo funct da instrução o controle da ALU gera os 3 bits do campo de controle da ALU

Campo de controle Functionda ALU

000 and001 or010 add110 sub111 slt

ALU deve executar add para carregamentos/armazenamentos (ALUOp 00) sub para desvios (ALUOp 01) um entre and, or, add, sub, slt para instruções do tipo R, dependendo do campo da instrução

funct (ALUOp 10)

MainControl

ALUControl

2

ALUOp

6

Instructionfunct field

3

ALU controlinput

ToALU

Page 32: Arquiteturas de Computadores

Gerenciando bits de controle da ALU

Tabela verdade para os bits de controle da ALU

Page 33: Arquiteturas de Computadores

Projetando o controle principal

Observações sobre o formato da instrução MIPS opcode está sempre nos bits 31-26 Dois registradores que devem ser lidos são sempre rs (bits 25-21) e rt (bits 20-16) Registrador base para armazenamentos e carregamentos é sempre rs (bits 25-21) Deslocamento de 16-bits para desvios e armazenamentos e carregamentos é sempre

definido pelos bits 15-0 Registrador destino para carregamentos é definido pelos bits 20-16 (rt) enquanto que para

instruções do tipo R é definido pelos bits 15-11 (rd) (necessita de multiplexador)

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

31-26 25-21 20-16 15-0

opcode

opcode

rs

rs

rt

rt address

rd shamt functR-type

Load/store or branch

Page 34: Arquiteturas de Computadores

Caminho de dados com controle I

Adicionando controle ao caminho de dados III (e um novo multiplexadorpara selecionar registrador destino):

Page 35: Arquiteturas de Computadores

Sinais de controle

Nome do sinal Efeito quando valor =0 Efeito quando valor =1

RegDst O identificador do registrador a ser escrito vem O identificador do registrador a ser escrito vemdos bits 20-16 dos bits 15-11

RegWrite Nenhum O registrador identificado é escrito com os dados que estão em Write data input

ALUSrc O segundo operando da ALU vem O segundo operando da ALU vem do valor com sinal estendido do segundo registrador lido (Read data 2) dos 16 bits da instrução

PCSrc O conteúdo do PC é substituído pela saída do somador O conteúdo do PC é substituído pela saída do somador que calcula o valor PC + 4 que calcula o endereço do desvio

MemRead Nenhum O conteúdo da memória que está no endereço é colocado na saída Read data output

MemWrite Nenhum O conteúdo da memória endereçada é substituído pelo conteúdo que está em Write data input

MemtoReg O valor de entrada de escrita do registrador O valor de entrada de escrita do registrador Write data input vem da ALU Write data input vem da memória

Efeitos dos sete sinais de controle

Page 36: Arquiteturas de Computadores

Caminho de dados com controle II

PC

Instruction memory

Read address

Instruction [31– 0]

Instruction [20 16]

Instruction [25 21]

Add

Instruction [5 0]

MemtoRegALUOpMemWrite

RegWrite

MemReadBranchRegDst

ALUSrc

Instruction [31 26]

4

16 32Instruction [15 0]

0

0M u x

0

1

Control

Add ALU result

M u x

0

1

RegistersWrite register

Write data

Read data 1

Read data 2

Read register 1

Read register 2

Sign extend

M u x

1

ALU result

Zero

PCSrc

Data memory

Write data

Read data

M u x

1

Instruction [15 11]

ALU control

Shift left 2

ALUAddress

Unidade de controle: a entrada são os 6-bits do campo opcode da instrução,a saída são 7 sinais de 1-bit e 2-bits de sinal ALUOp