Implementação da UCPsimone/fac/contaulas/cpu.pdf · 32 A 32 B 32 C Somador Soma Controle da UAL...
Transcript of Implementação da UCPsimone/fac/contaulas/cpu.pdf · 32 A 32 B 32 C Somador Soma Controle da UAL...
Organização de Computadores
Implementação da UCP
• Construção do caminho de dados
• Controle
• Implementação monociclo
Organização de Computadores
Conceitos Gerais para Implementação do Processador
• Conceito de caminho de dados e controle
• Caminho dos bits de instrução e dados
• Utilização de clock, lógica combinacional e seqüencial
• Começa uma implementação simples e iterativamente vai melhorando
Organização de Computadores
Performance
• Medida de performance baseada em:– número de instruções– período do clock– ciclos de clock por instrução (CPI)
• O primeiro é um fator do programa, mas os dois últimos são baseados na implementação do processador
Organização de Computadores
Subconjunto de instruções
• Para simplificar o estudo do projeto do processador, o foco será dado em um subconjunto de instruções do MIPS:
– Memória: lw e sw– Aritmética: add e addi– Desvio: beq
• O método de implementação das outras instruções ocorre naturalmente
Organização de Computadores
Revisão do Formato das Instruções
• R-FORMAT– add regA regB destreg
op: código de operaçãoregA: registrador com primeiro operando fonteregB: registrador com segundo operando fonte
destreg: registrador que guarda resultado da operação
00 regArd regBop destreg
7 bits 3 bits 3 bits 3 bits 13 bits 3 bits
31 25 24 22 21 19 18 16 15 3 2 0
Organização de Computadores
Revisão do Formato das Instruções
• I-Format– lw regA regB imm– beq regA regB imm– addi regA regB imm
• Desvio utiliza endereço PC relativo (PC + 1 + imm)
op regBregA
7 bits 3 bits 3 bits 16 bits
imm
3 bits
0
31 25 24 22 21 19 18 16 15 0
Organização de Computadores
Função básica da CPU
• Buscar uma instrução na memória
• Interpretar qual operação é representada pela instrução
• Trazer (se for o caso) os operandos para a CPU
• Executar a operação
• Armazenar (se for o caso) os dados de saída
• Repetir o processo com uma nova instrução
etapas do Ciclo de Instrução
Organização de Computadores
Projeto Lógico
• Duas definições importantes– Combinacional - saída depende somente das entradas
• Exemplo: ALU– Seqüencial: elementos contem informações de estado
• Exemplo: Registradores
Organização de Computadores
Elementos Combinacionais
3
Mux
Select
32A
32B
32C
SomaSomador
Controle da UAL
ZeroResultadoda UAL
UAL
Organização de Computadores
Banco de Registradores
• Contém 8 registradores– Dois barramentos de 32 bits de saída
• 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
Dados
3
3
3
3232
32Dado
lido #1
Dadolido #2
Reg a serlido #1
Reg a serlido #2
Reg a serescrito
Dado
Número dosregistradores
Dado de escrita
EscReg
Organização de Computadores
Memória
• Um barramento de entrada: Dado a ser escrito
• Um barramento de saída: Dado lido
• Seleção de endereço– Endereço seleciona a palavra a ser
colocada em Dado lido– Para escrever no endereço, seta EscMem para 1– Para ler do endereço, seta LerMem para 1
EscMem
LerMem
Endereço
Dado a serescrito
Dado lido
Organização de Computadores
Passos do Projeto
• De acordo com a arquitetura do conjunto de instruções, define-se uma estrutura organizacional macro (número de unidades funcionais, por exemplo)
• Essa estrutura é refinada para definir os componentes do caminho de dados, sua interconexão e pontos de controle
• Estrutura de controle é definida
• O projeto do caminho de dados e controle érefinado para projeto físico e validação funcional
Organização de Computadores
Busca da Instrução
• Busca a instrução na memória, cujo endereço estáno contador de programa PC
• Incrementa o contador de programa PC de 1
PC
1
Memória de Instruções
Endereço deleitura
Instrução
Somador
Organização de Computadores
Instrução de Soma
• add regA regB destreg– Mem[PC] Obtém instrução da memória– R[destreg] R[regA] + R[regB] Executa operação de soma– PC PC + 1 Calcula próximo endereço
Organização de Computadores
Caminho de Dados para Instruções do tipo R
• R[destreg] R[regA] op R[regB]– Controle da UAL e de EscReg baseado na instrução decodificada– Reg a ser lido #1, Reg a ser lido #2, Reg a ser escrito são regA,
regB, destreg
3
Resultadoda UAL
ZeroUAL
Operação da UAL
Reg a ser lido #1
Reg a ser lido #2
Reg a ser escrito
Dado deescrita
Dado lido #1
Dado lido #2
Registradores
EscReg
3
3
3
Organização de Computadores
Instrução de Carga
• lw regA regB imm– mem[PC] Busca instrução na memória– End R[regA]+SignExt(imm) Calcula o endereço da memória– R[regB] Mem[End] Carrega os dados no registrador– PC PC+1 Calcula o próximo endereço
op regA regB imediato3 bits 3 bits 3 bits 16 bits
07 bits
Organização de Computadores
Caminho de Dados para Instrução de Carga
16 32
3
Registradores
EscRegExten-sãode
sinal
Endereço
UAL
Dadolido
Memóriade dados
Dado aser escrito
Zero
EscMem
Operação da UAL
LerMem
Instrução
EscReg
Dado lido #1
Reg a ser lido #1
Reg a ser lido #2
Reg a ser escrito
Dado deescrita
Dado lido #2
3
3
3
16
Resultado da UAL
Organização de Computadores
Instrução de Armazenamento
• sw regA regB imm– mem[PC] Busca instrução na memória– End R[regA]+SignExt(imm) Calcula o endereço da memória– Mem[End] R[regB] Carrega os dados na memória– PC PC+1 Calcula o próximo endereço
op regA regB imediato3 bits 3 bits 3 bits 16 bits
07 bits
Organização de Computadores
Dadolido
Caminho de Dados para Instrução de Armazenamento
1 6 32
3
EscRegExten-
sãode
sinal
Endereço
UAL
Memóriade dados
Dado aser escrito
Zero
EscMem
Operação da UAL
LerMem
Resultado da UAL
Instrução
Registradores
Dado lido #1
Reg a ser lido #1
Reg a ser lido #2
Reg a ser escrito
Dado deescrita
Dado lido #2
3
3
3
Organização de Computadores
Instrução de Desvio Condicional
• beq regA regB imm– mem[PC] Busca instrução na memória– Cond R[regA]-R[regB] Calcula a condição de desvio– if (Cond eq 0)
• PC PC+1 + SignExt(imm) Calcula endereço PC relativo– else
• PC PC+1 Calcula o próximo endereço
op regA regB imediato3 bits 3 bits 3 bits 16 bits
07 bits
Organização de Computadores
Instrução de Desvio Condicional
16 32
3
PC+1 vindo do caminho de dados de busca de uma instrução
InstruçãoReg a ser
lido #1Reg a serlido #2
Reg a serescrito
Dado deescrita
Dadolido #1
Ddolido #2
Exten-sãode
sinal
Somador
Soma Endereço alvodo desvio condicional
Para a lógica de controle do desvio
condicional
UAL Zero
Registradores
EscReg
Operação da UAL3
3
Organização de Computadores
Busca de Instrução e Instruções Aritm. e Lóg. e de Referência à Memória
16 32
Mux
Mux
3
M
Reg a ser lido #1
Reg a ser lido #2
Reg a ser escrito
Dado deescrita
Registradores
EscReg
UAL fonte
Exten-sãode
sinal
Endereço
UAL
Resultado da UAL
Dadolido
Memóriade dados
Dado aser escrito
Zero
EscMemOperação da UAL
ULAparaReg
LerMem
PC
1
Endereço de leitura
Instrução
Memória de Instruções
Somador
RegDst
MUX
3
3
3
32
32
32
32
32
32
32
Organização de Computadores
Caminho de Dados para Suportar Subconjunto das Instruções
16 32
Mux
Mux
3Reg a ser
lido #1Reg a ser
lido #2Reg a ser
escritoDado deescrita
Registradores
EscReg
UAL fonte
Exten-sãode
sinal
Endereço
UAL
Resultado da UAL
Dadolido
Memóriade dados
Dado aser escrito
Zero
EscMemOperação da UAL
ULAparaReg
LerMem
PC
1
Endereço de leitura
Instrução
Memória de Instruções
Somador
MuxResultado
da UAL
Somador
FontePC
RegDst
MUX
32
32
32
32
32
32
32
32
32
3232
3
3
3
Organização de Computadores
Caminho de Dados para Carregar PC
• PC incrementado normalmente
• Se instrução beq pode adicionar imm a PC + 1
16 32
Mux
3Reg a ser
lido #1Reg a ser
lido #2Reg a ser
escritoDado deescrita
Registradores
EscReg
UAL fonte
Exten-sãode
sinal
UAL
Resultado da UAL
Zero
Operação da UALPC
1
Endereço de leitura
Instrução
Memória de Instruções
Somador
MuxResultado
da UAL
Somador
DvC
RegDst
MUX
Organização de Computadores
Juntando Todas as Partes
16 32
Mux
3Reg a ser
lido #1Reg a ser
lido #2Reg a ser
escritoDado deescrita
Registradores
EscReg
UAL fonte
Exten-sãode
sinal
UAL
Resultado da UAL
Zero
Operação da UALPC
1
Endereço de leitura
Instrução
Memória de Instruções
SomadorResultadoda UAL
Somador
DvC
Mux
PC +1
32
Mux
EndereçoDadolido
Memóriade dados
Dado aser escrito
EscMem
ULAparaReg
LerMem
RegDst
0
1
MUX
32
32
32 32
32
32
32 32 32
32 32
32
3
3
3