Você está na página 1de 26

Implementao da UCP

Organizao de Computadores

Construo do caminho de dados Controle Implementao monociclo

Conceitos Gerais para Implementao do Processador


Organizao de Computadores

Conceito de caminho de dados e controle Caminho dos bits de instruo e dados Utilizao de clock, lgica combinacional e seqencial Comea uma implementao simples e iterativamente vai melhorando

Performance
Organizao de Computadores

Medida de performance baseada em:


nmero de instrues perodo do clock ciclos de clock por instruo (CPI)

O primeiro um fator do programa, mas os dois ltimos so baseados na implementao do processador

Subconjunto de instrues
Organizao de Computadores

Para simplificar o estudo do projeto do processador, o foco ser dado em um subconjunto de instrues do MIPS:

Memria: lw e sw Aritmtica: add e addi Desvio: beq

O mtodo de implementao das outras instrues ocorre naturalmente

Reviso do Formato das Instrues


Organizao de Computadores

R-FORMAT

add regA regB destreg

31

25 24

22 21 rd op 3 bits

19 18

16 15 regB

3 2

0
7 bits

regA
3 bits

0
13 bits

destreg
3 bits

3 bits

op: cdigo de operao regA: registrador com primeiro operando fonte regB: registrador com segundo operando fonte destreg: registrador que guarda resultado da operao

Reviso do Formato das Instrues


Organizao de Computadores

I-Format

lw regA regB imm beq regA regB imm addi regA regB imm

Desvio utiliza endereo PC relativo (PC + 1 + imm)


31 25 24 22 21 19 18 16 15 0 imm 16 bits

0
7 bits

op
3 bits

regA regB
3 bits 3 bits

Funo bsica da CPU


Organizao de Computadores

Buscar uma instruo na memria Interpretar qual operao representada pela instruo Trazer (se for o caso) os operandos para a CPU Executar a operao Armazenar (se for o caso) os dados de sada Repetir o processo com uma nova instruo

etapas do Ciclo de Instruo

Viso Abstrata da Implementao


Organizao de Computadores

Os dados fluem entre a memria e as unidades funcionais

Dados

Reg # PC Endereo Instruo Banco de Registradores Reg # Reg # Memria de Dados UAL Endereo

Dados

Projeto Lgico
Organizao de Computadores

Duas definies importantes

Combinacional - sada depende somente das entradas Exemplo: ALU Seqencial: elementos contem informaes de estado Exemplo: Registradores

Elementos Combinacionais
Organizao de Computadores

Select

32

Somador

Soma

A 32 B

M u x

32 C

Controle da UAL
3

Zero UAL Resultado da UAL

Banco de Registradores
Organizao de Computadores

Contm 32 registradores

Dois barramentos de 32 bits de sada Dado lido #1 e Dado lido #2 Um barramento de 32 bits de entrada Dado a ser escrito Registrador 0 tem o valor 0 Registrador selecionado por Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito seleciona registro que recebe Dado a ser escrito quando EscReg=1
Nmero dos registradores Reg a ser lido #1 3 Reg a ser lido #2 3 Reg a ser escrito 32 Dado de escrita
3

32 Dado lido #1 Dados Dado 32 lido #2

Dado

EscReg

Memria
Organizao de Computadores

Um barramento de entrada: Dado a ser escrito Um barramento de sada: Dado lido Seleo de endereo

EscMem

Endereo Dado a ser escrito Dado lido

Endereo seleciona a palavra a ser colocada em Dado lido Para escrever no endereo, seta EscMem para 1 Para ler do endereo, seta LerMem para 1

LerMem

Passos do Projeto
Organizao de Computadores

De acordo com a arquitetura do conjunto de instrues, define-se uma estrutura organizacional macro (nmero de unidades funcionais, por exemplo) Essa estrutura refinada para definir os componentes do caminho de dados, sua interconexo e pontos de controle Estrutura de controle definida O projeto do caminho de dados e controle refinado para projeto fsico e validao funcional

Busca da Instruo
Organizao de Computadores

Busca a instruo na memria, cujo endereo est no contador de programa PC Incrementa o contador de programa PC de 1

1 Somador
PC

Endereo de leitura Instruo Memria de Instrues

Instruo de Soma
Organizao de Computadores

add regA regB destreg


Mem[PC] R[destreg] PC PC + 1

Obtm instruo da memria R[regA] + R[regB] Executa operao de soma Calcula prximo endereo

Caminho de Dados para Instrues do tipo R


Organizao de Computadores

R[destreg]

R[regA] op R[regB]

Controle da UAL e de EscReg baseado na instruo decodificada Reg a ser lido #1, Reg a ser lido #2, Reg a ser escrito so regA, regB, destreg
Registradores
3 3

Operao da UAL
3

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

Dado lido #1 Dado lido #2

Zero UAL Resultado da UAL

EscReg

Instruo de Carga
Organizao de Computadores

lw regA regB imm


mem[PC] End PC R[regA]+SignExt(imm) Mem[End] PC+1 R[regB]

Busca instruo na memria Calcula o endereo da memria Carrega os dados no registrador Calcula o prximo endereo

7 bits 0

3 bits op

3 bits regA

3 bits regB

16 bits imediato

Caminho de Dados para Instruo de Carga


Organizao de Computadores

Registradores
3 3 3

Operao da UAL EscMem


3

Instruo

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

Dado lido #1 Dado lido #2

EscRegExten- 32 16 so de sinal

Zero Memria de dados Resultado Endereo Dado da UAL lido UAL Dado a ser escrito LerMem

EscReg

Instruo de Armazenamento
Organizao de Computadores

sw regA regB imm


mem[PC] End PC Mem[End] PC+1 R[regB]

Busca instruo na memria Calcula o endereo da memria Carrega os dados na memria Calcula o prximo endereo

R[regA]+SignExt(imm)

7 bits 0

3 bits op

3 bits regA

3 bits regB

16 bits imediato

Caminho de Dados para Instruo de Armazenamento


Organizao de Computadores

Registradores
3 3 3

Operao da UAL EscMem


3

Instruo

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

Zero Memria de dados Resultado Endereo Dado da UAL lido UAL Dado a ser escrito LerMem

Instruo de Desvio Condicional


Organizao de Computadores

beq regA regB imm


mem[PC] Cond PC R[regA]-R[regB] PC+1 + SignExt(imm) PC+1 if (Cond eq 0)

Busca instruo na memria Calcula a condio de desvio Calcula endereo PC relativo Calcula o prximo endereo

else PC

7 bits 0

3 bits op

3 bits regA

3 bits regB

16 bits imediato

Instruo de Desvio Condicional


Organizao de Computadores

PC+1 vindo do caminho de dados de busca de uma instruo Soma Somador Registradores
3 3

Endereo alvo do desvio condicional

Operao da UAL

Instruo

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

Dado lido #1 UAL Zero Ddo lido #2 Para a lgica de controle do desvio condicional

Exten- 32 so de sinal

Busca de Instruo e Instrues Aritm. e Lg. e de Referncia Memria


Organizao de Computadores

32 32 1

Somador
3

Registradores Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita EscReg Operao da UAL
32 3

EscMem

PC

Endereo de leitura Instruo Memria de Instrues

3 M U X 3

UAL fonte
32 M u x 32

MemParaReg M Memria Zero de dados Resultado Endereo Dado M lido da UAL 32 u UAL
x

RegDst
16

Exten- 32 so de sinal

Dado a ser escrito


32

LerMem

Caminho de Dados para Suportar Subconjunto das Instrues


Organizao de Computadores
FontePC
32 32 M u x

32

Somador Registradores
3

32

Resultado 32 da UAL Somador Operao da UAL


3

PC

Endereo de leitura Instruo Memria de Instrues

3 M 3 U X

RegDst
16

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

EscMem

32 32

UAL fonte

Exten- 32 so de sinal

MemParaReg Memria Zero 32 de dados Resultado Endereo Dado M M da UAL 32 lido u u x 32 x UAL Dado a ser escrito
32

LerMem

Caminho de Dados para Carregar PC


Organizao de Computadores

PC incrementado normalmente Se instruo beq pode adicionar imm a PC + 1


M u x

Somador Registradores

Resultado da UAL Somador Operao da UAL


3

PC

Endereo de leitura Instruo Memria de Instrues


M U X

RegDst

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

UAL fonte
M u x

Zero Resultado da UAL UAL

DvC

Exten- 32 so de sinal

Juntando Todas as Partes


Organizao de Computadores

32 32 32
1

PC +1 32

0
M u x

32

Somador Registradores

32

Resultado da UAL

PC

Endereo de leitura Instruo Memria de Instrues

Reg a ser lido #1 3 Reg a ser M lido #2 3 U Reg a ser X escrito Dado de escrita RegDst EscReg
16

Somador Operao da UAL


3

DvC

EscMem

32 UAL fonte 32
M u x

Zero Resultado da UAL UAL

32

32

Exten- 32 so de sinal

MemParaReg Memria de dados 32 Endereo Dado M 32 lido u 32 x Dado a ser escrito LerMem