Tiago Alves de Oliviera 1
Capítulo 6 do Livro do Mario Monteiro Capítulo 5 (5.1, 5.2, 5. e 5.4) do Livro do Patterson 2
Processador executa instruções CPU (central processing unit) UCP (unidade central de processamento)
4 Endereço da instrução está no Registrador PC (program counter) Conteúdo da instrução está no Registrador IR (instruction register)
Funções de processamento Funções de controle 5
Unidade Lógica e Aritmética (ULA, UAL, ALU) Registradores de dados e registradores especiais 6 de estado (PSW program status word)
7 Unidade de controle, relógio (clock) Registradores especiais PC program counter (CI contador de instruções) IR instruction register (RI registrador de instrução) REM registrador de endereços de memória (MAR) RDM registrador de dados de memória (MDR)
8
9 MP
10 MP
11 MP
Construção do caminho de dados Controle Implementação monociclo 12
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 com uma implementação simples e iterativamente vai melhorando 1
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 14
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 15
R-FORMAT (tipo R registrador) add rega regb destreg 1 25 24 22 21 19 18 16 15 2 0 0 rd op rega regb 0 destreg 7 bits bits bits bits 1 bits bits op: código de operação rega: registrador com primeiro operando fonte regb: registrador com segundo operando fonte destreg: registrador que guarda resultado da operação 16
I-Format (tipo I imediato) lw rega regb imm sw rega regb imm beq rega regb imm addi rega regb imm Desvio utiliza endereço PC relativo (PC + 1 + imm) 1 25 24 22 21 19 18 16 15 0 0 op rega regb imm 7 bits bits bits bits 16 bits 17
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 18
Duas definições importantes Elemento Combinacional - saída depende somente das entradas Exemplo: ALU Elemento Seqüencial: elementos contêm informações de estado Exemplo: Registradores 19
Select Somador Soma A B M u x C Controle da UAL UAL Zero Resultado da UAL 20
Contém 8 registradores Dois barramentos de bits de saída Dado lido #1 e Dado lido #2 Um barramento de bits de entrada Dado a ser escrito Registrador 0 tem o valor 0 Registrador selecionado por lido #1 lido #2 Número dos registradores escrito seleciona registrador que recebe Dado a ser escrito quando EscReg=1 Dado lido #1 lido #2 escrito Dado de escrita EscReg Dado lido #1 Dado lido #2 Dados 21
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 EscMem Endereço Dado a ser escrito Dado lido ser colocada em Dado lido LerMem Para escrever no endereço, seta EscMem para 1 Para ler do endereço, seta LerMem para 1 22
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 2
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 Endereço de leitura 1 Somador Instrução Memória de Instruções 24
add rega regb destreg Mem[PC] R[destreg] de soma PC PC + 1 Obtém instrução da memória R[regA] + R[regB] Executa operação Calcula próximo endereço 25
R[destreg] R[regA] op R[regB] Controle da UAL e de EscReg baseado na instrução decodificada lido #1, lido #2, Reg a ser escrito são rega, regb, destreg Registradores lido #1 Dado lido #1 lido #2 escrito Dado Dado de lido #2 escrita Operação da UAL Zero UAL Resultado da UAL EscReg 26
lw rega regb imm mem[pc] memória End R[regA]+SignExt(imm) memória R[regB] Mem[End] registrador PC PC+1 endereço Busca instrução na Calcula o endereço da Carrega os dados no Calcula o próximo 7 bits bits bits bits 16 bits 0 op rega regb imediato 27
Instrução Registradores são de sinal Operação da UAL Dado lido #1 Zero lido #2 Dado Resultado escrito Dado de lido #2 da UAL escrita UAL EscMem Memória de dados Endereço Dado a ser escrito Dado lido LerMem EscReg 28
sw rega regb imm mem[pc] Busca instrução na memória End memória R[regA]+SignExt(imm) Calcula o endereço da Mem[End] memória R[regB] Carrega os dados na PC PC+1 Calcula o próximo endereço 7 bits bits bits bits 16 bits 0 op rega regb imediato 29
Registradores Operação da UAL Instrução Dado lido #1 lido #1 lido #2 Dado escrito lido #2 Dado de escrita EscReg 1 6 Exten- são de sinal Zero Resultado da UAL UAL EscMem Memória de dados Endereço Dado lido Dado a ser escrito LerMem 0
beq rega regb imm mem[pc] memória Cond R[regA]-R[regB] desvio if (Cond eq 0) else PC PC+1 + SignExt(imm) PC PC+1 Busca instrução na Calcula a condição de Calcula endereço PC relativo Calcula o próximo endereço 7 bits bits bits bits 16 bits 0 op rega regb imediato 1
PC+1 vindo do caminho de dados de busca de uma instrução Somador Soma Endereço alvo do desvio condicional Instrução Registradores lido #1 lido #2 escrito Dado de escrita Dado lido #1 Ddo lido #2 Operação da UAL UAL Zero Para a lógica de controle do desvio condicional EscReg 16 Extensão de sinal
PC 1 Endereço de leitura Instrução Memória de Instruções Somador M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita EscReg 16 Exten- são de sinal UAL fonte Operação da UAL M ux Zero Resultado da UAL UAL EscMem Memória de dados EndereçoDado lido Dado a ser escrito LerMem M M ux ULAparaReg
FontePC M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita 16 EscReg Exten- são de sinal UAL fonte M ux Somador Operação da UAL Zero Resultado da UAL UAL Dado a ser escrito EscMem Memória de dados EndereçoDado lido LerMem ULAparaReg M ux 4
PC incrementado normalmente Se instrução for beq pode adicionar imm a PC + 1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita EscReg 16 Exten- são de sinal UAL fonte M ux Somador Operação da UAL Zero Resultado da UAL UAL DvC 5
PC 1 Endereço de leitura Instrução Memória de Instruções Somador PC +1 Registradores Somador Operação da UAL lido #1 UAL fonte lido #2 Zero U Resultado X M escrito ux da UAL Dado de escrita UAL RegDst EscReg 16 Exten- são de sinal Resultado da UAL 0 M u x 1 DvC Memória EndereçoDado dados Dado a ser escrito EscMem lido LerMem M u x ULAparaReg 6
Identifica pontos de controle no caminho de dados Busca da instrução Operações lógicas e aritméticas Memória Identifica tipo de controle do sinal Fluxo de dados através de multiplexadores Escrita de dados Deriva sinais de controle para cada instrução Coloca todos os sinais juntos 7
PC +1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita EscReg 16 Exten- são de sinal UAL fonte M ux Somador Operação da UAL Zero Resultado da UAL UAL Don t care (X) DvC= 0 8
PC +1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst =1 Registradores lido #1 lido #2 escrito Dado de escrita EscReg =1 16 Exten- são de sinal UAL fonte =0 M ux Somador Operação da UAL =op Zero Resultado da UAL UAL DvC =0 Memória de dados EndereçoDado lido Dado a ser escrito EscMem =0 LerMem =0 ULAparaReg =1 0 M ux1 9
PC +1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst =0 Registradores lido #1 lido #2 escrito Dado de escrita EscReg =1 16 Exten- são de sinal UAL fonte =1 0 M u x 1 Somador Operação da UAL =Add Zero Resultado da UAL UAL DvC =0 Memória de dados EndereçoDado lido Dado a ser escrito EscMem =0 LerMem =1 0 M ux 1 ULAparaReg =0 40
PC +1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst =X Registradores lido #1 lido #2 escrito Dado de escrita EscReg =0 16 Exten- são de sinal UAL fonte =1 0 M ux 1 Somador Operação da UAL =Add Zero Resultado da UAL UAL EscMem DvC =1 =0 ULAparaReg Memória =X de dados Endereço Dado lido M ux Dado a ser escrito LerMem =0 41
PC+1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst =X Registradores lido #1 lido #2 escrito Dado de escrita EscReg =0 16 Exten- são de sinal UAL fonte =0 M ux Somador Operação da UAL =Sub Zero Resultado da UAL UAL DvC =1 Memória de dados EndereçoDado lido Dado a ser escrito EscMem =0 LerMem =0 M ux ULAparaReg =X 42
PC +1 M ux 1 Somador Resultado da UAL PC Endereço de leitura Instrução Memória de Instruções M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita EscReg 16 Exten- são de sinal UAL fonte M ux Somador Operação da UAL Zero Resultado da UAL UAL DvC Memória de dados EndereçoDado lido Dado a ser escrito EscMem LerMem M ux ULAparaReg 4
44
45
46
Entradas Op2 Op1 Op0 Saídas Formato R Iw sw beq RegDst UALfonte ULAparaReg EscReg LerMem EscMem DvC UALOp2 47
PC +1 M ux 1 Somador Resultado da UAL Instr [24:22] op PC Controle Principal Endereço de leitura Instrução Memória de Instruções RegDst UALfonte ULAparaReg EscReg LerMem EscrMem M U X RegDst Registradores lido #1 lido #2 escrito Dado de escrita EscReg 16 Exten- são de sinal UAL fonte M ux Somador Operação da UAL Zero Resultado da UAL UAL DvC Memória de dados EndereçoDado lido Dado a ser escrito EscMem LerMem M ux ULAparaReg DvC UAL Op2 48
Vantagens Um ciclo de relógio por instrução torna lógica mais simples Desvantagens Ciclo de clock determinado pela instrução que leva maior tempo Instrução de carga utiliza cinco unidades funcionais em série tempo de acesso à memória de instruções + tempo de acesso ao banco de registradores + retardo da UAL + tempo de acesso à memória de dados + tempo de estabilidade dos dados para o banco de registradores Duplicação de unidades funcionais 49