1
Arquitetura de Computadores
UERJ
57
Arquitetura de Computadores
UERJ
2
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
19
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
Processador Caminho de Dados e Controle Processador Seção processamento caminho de dados controle Conjunto de instruções do processador MIPS acesso à memória lw sw lógicaaritmética addsub desvio beq j Visão Geral da Implementação PC Memória de Instruções Banco de Registradores endereço instrução dados Reg ALU Memória de Dados endereço dados Visão refinada novas unidades funcionais conexões entre unidades unidade de controle Convenções da Lógica e Clock Sinais de controle ativos nível alto 1 lógico Componentes combinacionais e seqüenciais Metodologia de temporização sensível às transições Transições positivas Único ciclo de clock é suficiente para atender a todas as instruções maior tempo processador MIPS 32 bits Construção do Caminho de Dados Componente sinais de controle associados Busca Componentes memória de instruções MI program counter PC somador SO Construção do Caminho de Dados PC Endereço de leitura Instrução Somador próximo endereço 4 Memória de Instruções Busca Construção do Caminho de Dados Execução de instruções lógicas e aritméticas 2 registradores fonte 1 registrador destino add sub slt and or Componentes banco de registradores BR ALU Construção do Caminho de Dados Execução de instruções lógicas e aritméticas Reg 1 ALU Banco de Registradores Reg a ser escrito Dado 1 Dado 2 Dado de escrita Instrução Zero Operação da ALU EscReg Resultado da ALU 3 Reg 2 Construção do Caminho de Dados Execução de instruções de acesso à memória lw t1 dst t2 sw t1 dst t2 modo de endereçamento Componentes banco de registradores BR ALU memória de dados MD extensão de sinal Ext Construção do Caminho de Dados Execução de instruções acesso à memória Reg 1 ALU Banco de Registradores Reg 2 Reg a ser escrito Dado 1 Dado 2 Dado de escrita Instrução Zero Operação da ALU EscReg Resultado da ALU 3 Extensão de sinal 16 LerMem Dado a ser escrito Memória de Dados Endereço Dado lido EscMem Construção do Caminho de Dados Execução de instruções de desvio Condicional desvio condicional beq t1 t2 label 2 registradores comparação deslocamento endereço alvo de desvio endereço alvo de desvio PC atual PC4 deslocamento de 2 bits à esquerda Construção do Caminho de Dados Componentes banco de registradores BR ALU extensão de sinal Ext somador SO deslocamento de 2 bits D2 Construção do Caminho de Dados Execução de instruções desvio condicional Reg 1 ALU Banco de Registradores Reg 2 Dado 1 Dado 2 Dado de escrita Zero Operação da ALU EscReg 3 16 Somador Soma Desl 2 bits Endereço alvo do desvio condicional Para lógica de controle do desvio condicional PC 4 vindo da busca 32 Extensão de sinal Instrução Construção do Caminho de Dados Execução de instruções de desvio Incondicional desvio incondicional j label modo de endereçamento endereço alvo de desvio PC atual PC4 4 bits mais significativos 28 bits menos significativos 26 bits da instrução 2 bits de deslocamento Construção do Caminho de Dados Componentes deslocamento de 2 bits D2 Endereço Memória de Instruções Instrução 310 PC 4 Somador PC 4 Desl 2 bits Inst 250 26 28 32 Um Esquema Simples para Implementação Caminhos abordados anteriormente Componentes de cada classe Linhas de controle adicionais Multiplexadores caminhos compartilhados Único período de clock projeto monociclo Multiplexadores 2x1 A O M u x 1 B S C A B S C Exercício Mostre como combinar o caminho de dados do passo de busca com o do passo de execução das instruções lógicas e aritméticas e de acesso à memória Utilize multiplexadores e não duplique os elementos comuns Instruções Lógicas e Aritméticas e de Acesso à Memória Memória de Dados Extensão de sinal 1 M U X 0 0 M U X 1 Endereço Dado lido Dado escrito Dado escrito Banco de Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Instrução Operação da ALU EscReg LerMem EscMem MemReg ALUFonte 16 32 3 0 M U X 1 RegDest Busca e Instruções Lógicas e Aritméticas e de Acesso à Memória Endereço Memória de Instruções Instrução 310 PC Extens sinal 1 M U X 0 0 M U X 1 Desl 2 bits 0 M U X 1 4 Somador Somador Endereço Dado lido Dado escrito Memória de Dados Dado escrito Banco de Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Operação da ALU LerMem EscMem MemReg EscReg ALUFonte FontePC 3 32 16 0 M U X 1 Unidade de Controle Controla o caminho de dados Sinais de entrada gera sinais para elementos de estado seletores dos multiplexadores sinais de controle da ALU Controle da ALU 3 entradas 23 possíveis saídas 3 possibilidades Controle da ALU Entrada da ALU Função 000 AND 001 OR 010 soma 110 subtração 111 set less than Campo de Controle ALUOp 00 soma 01 subtração 10 campo func Controle da ALU ALUOp 2 bits campo func 6 bits muitas combinações Combinações relevantes ao controle da ALU ALUOp func Operação bit 1 bit 0 F5 F4 F3 F2 F1 F0 da ALU 0 0 x x x x x x 010 x 1 x x x x x x 110 1 x x x 0 0 0 0 010 1 x x x 0 0 1 0 110 1 x x x 0 1 0 0 000 1 x x x 0 1 0 1 001 1 x x x 1 0 1 0 111 Unidade de Controle Controle do caminho de dados dependendo do formato das instruções a UC é responsável por gerar os valores para cada um dos sinais linhas de controle Controle ALUOp bit 1 bit 0 F5 F4 F3 F2 F1 F0 RegDest DvC LerMem MemParaReg ALUOper EscMem ALUFonte EscReg Unidade de Controle Desl 2 bits 0 M U X 1 Somador ALU Resultado Zero Controle RegDest DvC LerMem MemParaReg ALUOper EscMem ALUFonte EscReg PC 4 Desl 2 bits func ALUOp Unidade de Controle Tabela verdade sinais de saída da UC Inst RegDest ALUFonte MemReg EscReg LerMem EscMem DvC ALUOp R 1 0 1 1 0 0 0 10 lw 0 1 1 1 1 0 0 00 sw x 1 x 0 0 1 0 00 beq x 0 x 0 0 0 1 01 j x 0 x 0 0 0 0 xx Exercício Mostre como é a tabela verdade para a função de controle associada ao código das instruções lógicas e aritmética de acesso à memória e desvio condicional e incondicional Caminho de Dados Completo Endereço Memória de Instruções Instrução 310 PC 0 M U X 1 Inst 2521 Inst 2016 Inst 1511 Extensão de sinal Inst 150 1 M U X 0 0 M U X 1 Desl 2 bits 0 M U X 1 4 Somador Somador Endereço Dado lido Dado escrito Memória de Dados Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Controle RegDest DvC LerMem MemReg ALUOp EscMem ALUFonte EscReg Oper ALU Inst 50 1 M U X 0 26 28 32 DvI Desl 2 bits Inst 3126 Tempo de Execução X Unidades Funcionais Classe Unidades Funcionais Usadas Tempo Tipo R MI2 BR1 ALU2 BR1 6ηs lw MI2 BR1 ALU2 MD2 BR1 8ηs sw MI2 BR1 ALU2 MD2 7ηs beq MI2 BR1 ALU2 5ηs j MI2 2ηs Exercício Qual o efeito de manter em 0 lógico todos os sinais de controle dos multiplexadores no caminho de dados completo do projeto monociclo Alguma instrução ainda continua funcionando Elabore um raciocínio semelhante considerando agora com todos os sinais em 1 lógico Exercício Considere as seguintes unidades funcionais e seus respectivos tempos de retardo para a nossa implementação monociclo MI 2 ns ALU 2 ns BR 1ns Somador PC 4 X ns MD 2 ns Somador do desvio condicional Y ns Qual seria o período de clock caso X 3 e Y 5 X 5 e Y 5 e X 1 e Y 8 Implementação Multiciclo Execução de cada instrução uma série de passos Cada passos operações das unidades funcionais Implementação cada passo de execução 1 período de clock unidades funcionais utilizadas mais de uma vez por instrução reduz a quantidade de hardware necessário Implementação Multiciclo Vantagens executar instruções em quantidades diferentes de períodos de clock compartilhamento de unidades funcionais Caminho de Dados Multiciclo Visão abstrata Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU IR MDR A B R Monociclo X Multiciclo Diferenças uso de uma única memória para instruções e dados referência a uma única ALU um ou mais registradores depois de cada unidade funcional armazena temporariamente o resultado calculado para ser utilizado em um ciclo de clock subseqüente Monociclo X Multiciclo A posição no caminho de dados dos registradores adicionais é determinada por dois fatores quais dados serão usados em ciclos de clock posteriores na execução da instrução quais as unidades funcionais cujo uso ficará restrito a um único ciclo de clock Projeto Multiciclo Ciclo de clock compatível com acesso à memória banco de registradores ou operação da ALU Dado produzido por estas unidades funcionais deve ser armazenado em registradores IR MDR A B e R Sinal de controle de escrita de IR mantém instrução durante toda sua execução Demais registradores não precisam de sinal de controle armazenam dados somente entre dois ciclos de clock Projeto Multiciclo Compartilhamento novos multiplexadores ou expandir os já existentes Memória endereço de acesso 2x1 PC instrução Registrador dado Projeto Multiciclo ALU dois multiplexadores Primeira entrada 2x1 Registrador A PC Segunda entrada 4x1 Registrador B Constante 4 valor resultante da extensão de sinal valor para o cálculo do endereço alvo de desvio condicional Caminho de Dados Multiciclo Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Reg 1 Dado 1 Reg 2 Reg escrito ALU IR MDR A B R Zero Controle ALU 0 1 0 1 0 1 0 1 Ext sinal Desl 2 bits 0 1 2 3 IouD MemReg ALUOp FonteALUA FonteALUB LerMem EscMem IREsc EscReg RegDest 4 Suporte para desvios condicionais e incondicionais 3 fontes para PC ALU PC 4 no passo de busca R endereço alvo de desvio condicional calculado pela ALU IR250 2 bits 4 bits mais significativos PC 4 endereço alvo de desvio incondicional Projeto Multiciclo Escrita no PC durante um incremento normal desvios incondicionais se instrução de desvio condicional e se a condição for verdadeira Controle de escrita 2 sinais PCEsc PCEscCond Projeto Multiciclo Portas lógicas obtenção do sinal de escrita Combinando os 3 sinais PCEsc PCEscCond Zero AND entrada Zero PCEscCond saída para porta OR Zero PCEscCond OR entrada saída AND PCEsc saída controle de escrita do PC Projeto Multiciclo Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU IR MDR A B R Zero Controle ALU 0 1 0 1 0 1 Ext sinal Desl 2 bits 0 1 2 3 IouD MemReg ALUOp FonteALUA FonteALUB LerMem EscMem IREsc EscReg RegDest PCEscCond PCEsc 0 1 2 FontePC Desl 2 bits 4 0 1 Caminho de Dados Multiciclo Projeto Multiciclo Sinais de Controle 1 bit Sinal Inativo Ativo RegDest seleciona rt seleciona rd EscReg Reg geral carregado com dado escrito FonteALUA operando é o PC operando é o A LerMem Conteúdo da memória é colocado na saída EscMem carrega dado na memória MemReg dado vem de R dado vem do MDR IouD PC é usado para fornecer endereço R é usado para fornecer endereço IREsc Saída da memória escrita no IR PCEsc PC é atualizado PCEscCond PC é atualizado se saída Zero estiver ativa Projeto Multiciclo Sinais de Controle 2 bits Sinal Combinações Significado ALUOp 00 soma 01 subtração 10 depende do campo func FonteALUB 00 operando é o B 01 operando é a constante 4 10 operando vem da extensão de sinal IR 11 operando vem da extensão de sinal IR 2 bits FontePC 00 PC 4 enviado ao PC 01 endereço alvo de desvio produzido pela ALU DvC 10 endereço alvo de desvio enviado ao PC DvI Execução Multiciclo Definida por sinais de controle e seus valores Melhora no desempenho diferentes quantidades de ciclos de clock por instrução Ciclo de clock operação da ALU acesso à memória ou ao banco de registradores Tamanho do ciclo maior tempo de retardo Cada instrução 3 a 5 passos de execução Busca decodificação execução resultado 1 Busca IR MemóriaPC PC PC 4 Sinais envolvidos LerMem 1 FonteALUB 01 IREsc 1 ALUOp 00 I ou D 0 PCEsc 1 FonteALUA 0 FontePC 00 2 Decodificação Acesso ao registrador se necessário Somente ações aplicáveis a todas as classes de instruções a Tipo R A Reg IR2521 B Reg IR2016 b Desvio condicional R PC extensão de sinal IR150 2 2 Decodificação Sinais envolvidos Fonte ALUA 0 PC FonteALUB 11 extensão de sinal deslocada ALUOp 00 soma Após este ciclo de clock a ação a ser realizada depende do conteúdo da instrução decodificação 3 Execução Cálculo do endereço de acesso à memória Efetivação do desvio incondicional Operação do caminho de dados classe de instrução ALU opera sobre os dados preparados no passo 2 Função depende da classe de instruções 3 Execução Acesso à memória R A extensão de sinal IR150 Sinais envolvidos FonteALUA 1 FonteALUB 10 seleciona extensão de sinal ALUOp 00 soma 3 Execução Tipo R R A op B Sinais envolvidos FonteALUA 1 FonteALUB 00 seleciona B ALUOp 10 campo func operação 3 Execução Desvio Condicional Se A B PC R Sinais envolvidos FonteALUA 1 FonteALUB 00 seleciona B ALUOp 01 subtração PCEscCond 1 FontePC 01 PC R 3 Execução Desvio Incondicional PC PC IR3128 IR250 2 Sinais envolvidos PCEsc 1 FontePC 10 4 Final de Execução Acesso à memória lw sw MDR MemóriaR MemóriaR B Sinais envolvidos LerMem 1 EscMem 1 IouD 1 IouD 1 4 Final de Execução Tipo R Reg IR1511 R Sinais envolvidos EscReg 1 RegDest 1 MemReg 1 5 Final de Execução Leitura da Memória lw Reg IR2016 MDR Sinais envolvidos EscReg 1 RegDest 0 MemReg 0 Máquinas de Estados Finitos Define série de estados regras de transição entre estados função próximo estado Projeto multiciclo cada estado corresponde a um dos passos de execução 2 primeiros estados iguais para todas as instruções Busca e Decodificação Máquina de estados finitos LerMem 1 IouD 0 IREsc 1 FonteALUA 0 FonteALUB 01 ALUOp 00 PCESc 1 FontePC 00 Estado 0 Estado 1 Busca Decodificação lwsw Tipo R Desvio condicional Desvio incondicional FonteALUA 0 FonteALUB 11 ALUOp 00 Acesso à Memória Vem do Estado 1 Op lw Op sw FonteALUA 1 FonteALUB 10 ALUOp 00 EscMem 1 IouD 1 LerMem 1 IouD 1 EscReg 1 RegDest 0 MemReg 0 Estado 2 Estado 3 Estado 4 Estado 5 Retorna ao Estado 0 Tipo R Vem do Estado 1 Estado 6 Estado 7 Retorna ao Estado 0 FonteALUA 1 FonteALUB 00 ALUOp 10 RegDest 1 EscReg 1 MemReg 1 Desvios Vem do Estado 1 Condicional Incondicional PCEsc 1 FontePC 10 Estado 8 Estado 9 Retorna ao Estado 0 Vem do Estado 1 FonteALUA 1 FonteALUB 00 ALUOp 01 PCEscCond 1 FontePc 01 Exercícios 1Mostre como é a máquina de estados finitos completa combinando todos os passos de execução de todas as classes de instruções abordadas 2 Acrescente ao caminho de dados multiciclo a instrução addi Verifique a necessidade de algum componente de hardware adicional e sinais de controle Mostre as modificações necessárias na máquina de estados finitos Exercícios 3 Considere o mesmo enunciado da questão anterior e acrescente a instrução jal jump and link ao projeto multiciclo 4 Mostre como a instrução jr jump register pode ser implementada simplesmente com algumas modificações na máquina de estados finitos completa lembrese que zero 0 e está mapeado no registrador 0
1
Arquitetura de Computadores
UERJ
57
Arquitetura de Computadores
UERJ
2
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
19
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
1
Arquitetura de Computadores
UERJ
Texto de pré-visualização
Processador Caminho de Dados e Controle Processador Seção processamento caminho de dados controle Conjunto de instruções do processador MIPS acesso à memória lw sw lógicaaritmética addsub desvio beq j Visão Geral da Implementação PC Memória de Instruções Banco de Registradores endereço instrução dados Reg ALU Memória de Dados endereço dados Visão refinada novas unidades funcionais conexões entre unidades unidade de controle Convenções da Lógica e Clock Sinais de controle ativos nível alto 1 lógico Componentes combinacionais e seqüenciais Metodologia de temporização sensível às transições Transições positivas Único ciclo de clock é suficiente para atender a todas as instruções maior tempo processador MIPS 32 bits Construção do Caminho de Dados Componente sinais de controle associados Busca Componentes memória de instruções MI program counter PC somador SO Construção do Caminho de Dados PC Endereço de leitura Instrução Somador próximo endereço 4 Memória de Instruções Busca Construção do Caminho de Dados Execução de instruções lógicas e aritméticas 2 registradores fonte 1 registrador destino add sub slt and or Componentes banco de registradores BR ALU Construção do Caminho de Dados Execução de instruções lógicas e aritméticas Reg 1 ALU Banco de Registradores Reg a ser escrito Dado 1 Dado 2 Dado de escrita Instrução Zero Operação da ALU EscReg Resultado da ALU 3 Reg 2 Construção do Caminho de Dados Execução de instruções de acesso à memória lw t1 dst t2 sw t1 dst t2 modo de endereçamento Componentes banco de registradores BR ALU memória de dados MD extensão de sinal Ext Construção do Caminho de Dados Execução de instruções acesso à memória Reg 1 ALU Banco de Registradores Reg 2 Reg a ser escrito Dado 1 Dado 2 Dado de escrita Instrução Zero Operação da ALU EscReg Resultado da ALU 3 Extensão de sinal 16 LerMem Dado a ser escrito Memória de Dados Endereço Dado lido EscMem Construção do Caminho de Dados Execução de instruções de desvio Condicional desvio condicional beq t1 t2 label 2 registradores comparação deslocamento endereço alvo de desvio endereço alvo de desvio PC atual PC4 deslocamento de 2 bits à esquerda Construção do Caminho de Dados Componentes banco de registradores BR ALU extensão de sinal Ext somador SO deslocamento de 2 bits D2 Construção do Caminho de Dados Execução de instruções desvio condicional Reg 1 ALU Banco de Registradores Reg 2 Dado 1 Dado 2 Dado de escrita Zero Operação da ALU EscReg 3 16 Somador Soma Desl 2 bits Endereço alvo do desvio condicional Para lógica de controle do desvio condicional PC 4 vindo da busca 32 Extensão de sinal Instrução Construção do Caminho de Dados Execução de instruções de desvio Incondicional desvio incondicional j label modo de endereçamento endereço alvo de desvio PC atual PC4 4 bits mais significativos 28 bits menos significativos 26 bits da instrução 2 bits de deslocamento Construção do Caminho de Dados Componentes deslocamento de 2 bits D2 Endereço Memória de Instruções Instrução 310 PC 4 Somador PC 4 Desl 2 bits Inst 250 26 28 32 Um Esquema Simples para Implementação Caminhos abordados anteriormente Componentes de cada classe Linhas de controle adicionais Multiplexadores caminhos compartilhados Único período de clock projeto monociclo Multiplexadores 2x1 A O M u x 1 B S C A B S C Exercício Mostre como combinar o caminho de dados do passo de busca com o do passo de execução das instruções lógicas e aritméticas e de acesso à memória Utilize multiplexadores e não duplique os elementos comuns Instruções Lógicas e Aritméticas e de Acesso à Memória Memória de Dados Extensão de sinal 1 M U X 0 0 M U X 1 Endereço Dado lido Dado escrito Dado escrito Banco de Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Instrução Operação da ALU EscReg LerMem EscMem MemReg ALUFonte 16 32 3 0 M U X 1 RegDest Busca e Instruções Lógicas e Aritméticas e de Acesso à Memória Endereço Memória de Instruções Instrução 310 PC Extens sinal 1 M U X 0 0 M U X 1 Desl 2 bits 0 M U X 1 4 Somador Somador Endereço Dado lido Dado escrito Memória de Dados Dado escrito Banco de Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Operação da ALU LerMem EscMem MemReg EscReg ALUFonte FontePC 3 32 16 0 M U X 1 Unidade de Controle Controla o caminho de dados Sinais de entrada gera sinais para elementos de estado seletores dos multiplexadores sinais de controle da ALU Controle da ALU 3 entradas 23 possíveis saídas 3 possibilidades Controle da ALU Entrada da ALU Função 000 AND 001 OR 010 soma 110 subtração 111 set less than Campo de Controle ALUOp 00 soma 01 subtração 10 campo func Controle da ALU ALUOp 2 bits campo func 6 bits muitas combinações Combinações relevantes ao controle da ALU ALUOp func Operação bit 1 bit 0 F5 F4 F3 F2 F1 F0 da ALU 0 0 x x x x x x 010 x 1 x x x x x x 110 1 x x x 0 0 0 0 010 1 x x x 0 0 1 0 110 1 x x x 0 1 0 0 000 1 x x x 0 1 0 1 001 1 x x x 1 0 1 0 111 Unidade de Controle Controle do caminho de dados dependendo do formato das instruções a UC é responsável por gerar os valores para cada um dos sinais linhas de controle Controle ALUOp bit 1 bit 0 F5 F4 F3 F2 F1 F0 RegDest DvC LerMem MemParaReg ALUOper EscMem ALUFonte EscReg Unidade de Controle Desl 2 bits 0 M U X 1 Somador ALU Resultado Zero Controle RegDest DvC LerMem MemParaReg ALUOper EscMem ALUFonte EscReg PC 4 Desl 2 bits func ALUOp Unidade de Controle Tabela verdade sinais de saída da UC Inst RegDest ALUFonte MemReg EscReg LerMem EscMem DvC ALUOp R 1 0 1 1 0 0 0 10 lw 0 1 1 1 1 0 0 00 sw x 1 x 0 0 1 0 00 beq x 0 x 0 0 0 1 01 j x 0 x 0 0 0 0 xx Exercício Mostre como é a tabela verdade para a função de controle associada ao código das instruções lógicas e aritmética de acesso à memória e desvio condicional e incondicional Caminho de Dados Completo Endereço Memória de Instruções Instrução 310 PC 0 M U X 1 Inst 2521 Inst 2016 Inst 1511 Extensão de sinal Inst 150 1 M U X 0 0 M U X 1 Desl 2 bits 0 M U X 1 4 Somador Somador Endereço Dado lido Dado escrito Memória de Dados Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU Resultado Zero Controle RegDest DvC LerMem MemReg ALUOp EscMem ALUFonte EscReg Oper ALU Inst 50 1 M U X 0 26 28 32 DvI Desl 2 bits Inst 3126 Tempo de Execução X Unidades Funcionais Classe Unidades Funcionais Usadas Tempo Tipo R MI2 BR1 ALU2 BR1 6ηs lw MI2 BR1 ALU2 MD2 BR1 8ηs sw MI2 BR1 ALU2 MD2 7ηs beq MI2 BR1 ALU2 5ηs j MI2 2ηs Exercício Qual o efeito de manter em 0 lógico todos os sinais de controle dos multiplexadores no caminho de dados completo do projeto monociclo Alguma instrução ainda continua funcionando Elabore um raciocínio semelhante considerando agora com todos os sinais em 1 lógico Exercício Considere as seguintes unidades funcionais e seus respectivos tempos de retardo para a nossa implementação monociclo MI 2 ns ALU 2 ns BR 1ns Somador PC 4 X ns MD 2 ns Somador do desvio condicional Y ns Qual seria o período de clock caso X 3 e Y 5 X 5 e Y 5 e X 1 e Y 8 Implementação Multiciclo Execução de cada instrução uma série de passos Cada passos operações das unidades funcionais Implementação cada passo de execução 1 período de clock unidades funcionais utilizadas mais de uma vez por instrução reduz a quantidade de hardware necessário Implementação Multiciclo Vantagens executar instruções em quantidades diferentes de períodos de clock compartilhamento de unidades funcionais Caminho de Dados Multiciclo Visão abstrata Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU IR MDR A B R Monociclo X Multiciclo Diferenças uso de uma única memória para instruções e dados referência a uma única ALU um ou mais registradores depois de cada unidade funcional armazena temporariamente o resultado calculado para ser utilizado em um ciclo de clock subseqüente Monociclo X Multiciclo A posição no caminho de dados dos registradores adicionais é determinada por dois fatores quais dados serão usados em ciclos de clock posteriores na execução da instrução quais as unidades funcionais cujo uso ficará restrito a um único ciclo de clock Projeto Multiciclo Ciclo de clock compatível com acesso à memória banco de registradores ou operação da ALU Dado produzido por estas unidades funcionais deve ser armazenado em registradores IR MDR A B e R Sinal de controle de escrita de IR mantém instrução durante toda sua execução Demais registradores não precisam de sinal de controle armazenam dados somente entre dois ciclos de clock Projeto Multiciclo Compartilhamento novos multiplexadores ou expandir os já existentes Memória endereço de acesso 2x1 PC instrução Registrador dado Projeto Multiciclo ALU dois multiplexadores Primeira entrada 2x1 Registrador A PC Segunda entrada 4x1 Registrador B Constante 4 valor resultante da extensão de sinal valor para o cálculo do endereço alvo de desvio condicional Caminho de Dados Multiciclo Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Reg 1 Dado 1 Reg 2 Reg escrito ALU IR MDR A B R Zero Controle ALU 0 1 0 1 0 1 0 1 Ext sinal Desl 2 bits 0 1 2 3 IouD MemReg ALUOp FonteALUA FonteALUB LerMem EscMem IREsc EscReg RegDest 4 Suporte para desvios condicionais e incondicionais 3 fontes para PC ALU PC 4 no passo de busca R endereço alvo de desvio condicional calculado pela ALU IR250 2 bits 4 bits mais significativos PC 4 endereço alvo de desvio incondicional Projeto Multiciclo Escrita no PC durante um incremento normal desvios incondicionais se instrução de desvio condicional e se a condição for verdadeira Controle de escrita 2 sinais PCEsc PCEscCond Projeto Multiciclo Portas lógicas obtenção do sinal de escrita Combinando os 3 sinais PCEsc PCEscCond Zero AND entrada Zero PCEscCond saída para porta OR Zero PCEscCond OR entrada saída AND PCEsc saída controle de escrita do PC Projeto Multiciclo Endereço Memória Instrução ou Dado PC Dado escrito Dado escrito Registradores Dado 2 Dado 1 Reg 1 Reg 2 Reg escrito ALU IR MDR A B R Zero Controle ALU 0 1 0 1 0 1 Ext sinal Desl 2 bits 0 1 2 3 IouD MemReg ALUOp FonteALUA FonteALUB LerMem EscMem IREsc EscReg RegDest PCEscCond PCEsc 0 1 2 FontePC Desl 2 bits 4 0 1 Caminho de Dados Multiciclo Projeto Multiciclo Sinais de Controle 1 bit Sinal Inativo Ativo RegDest seleciona rt seleciona rd EscReg Reg geral carregado com dado escrito FonteALUA operando é o PC operando é o A LerMem Conteúdo da memória é colocado na saída EscMem carrega dado na memória MemReg dado vem de R dado vem do MDR IouD PC é usado para fornecer endereço R é usado para fornecer endereço IREsc Saída da memória escrita no IR PCEsc PC é atualizado PCEscCond PC é atualizado se saída Zero estiver ativa Projeto Multiciclo Sinais de Controle 2 bits Sinal Combinações Significado ALUOp 00 soma 01 subtração 10 depende do campo func FonteALUB 00 operando é o B 01 operando é a constante 4 10 operando vem da extensão de sinal IR 11 operando vem da extensão de sinal IR 2 bits FontePC 00 PC 4 enviado ao PC 01 endereço alvo de desvio produzido pela ALU DvC 10 endereço alvo de desvio enviado ao PC DvI Execução Multiciclo Definida por sinais de controle e seus valores Melhora no desempenho diferentes quantidades de ciclos de clock por instrução Ciclo de clock operação da ALU acesso à memória ou ao banco de registradores Tamanho do ciclo maior tempo de retardo Cada instrução 3 a 5 passos de execução Busca decodificação execução resultado 1 Busca IR MemóriaPC PC PC 4 Sinais envolvidos LerMem 1 FonteALUB 01 IREsc 1 ALUOp 00 I ou D 0 PCEsc 1 FonteALUA 0 FontePC 00 2 Decodificação Acesso ao registrador se necessário Somente ações aplicáveis a todas as classes de instruções a Tipo R A Reg IR2521 B Reg IR2016 b Desvio condicional R PC extensão de sinal IR150 2 2 Decodificação Sinais envolvidos Fonte ALUA 0 PC FonteALUB 11 extensão de sinal deslocada ALUOp 00 soma Após este ciclo de clock a ação a ser realizada depende do conteúdo da instrução decodificação 3 Execução Cálculo do endereço de acesso à memória Efetivação do desvio incondicional Operação do caminho de dados classe de instrução ALU opera sobre os dados preparados no passo 2 Função depende da classe de instruções 3 Execução Acesso à memória R A extensão de sinal IR150 Sinais envolvidos FonteALUA 1 FonteALUB 10 seleciona extensão de sinal ALUOp 00 soma 3 Execução Tipo R R A op B Sinais envolvidos FonteALUA 1 FonteALUB 00 seleciona B ALUOp 10 campo func operação 3 Execução Desvio Condicional Se A B PC R Sinais envolvidos FonteALUA 1 FonteALUB 00 seleciona B ALUOp 01 subtração PCEscCond 1 FontePC 01 PC R 3 Execução Desvio Incondicional PC PC IR3128 IR250 2 Sinais envolvidos PCEsc 1 FontePC 10 4 Final de Execução Acesso à memória lw sw MDR MemóriaR MemóriaR B Sinais envolvidos LerMem 1 EscMem 1 IouD 1 IouD 1 4 Final de Execução Tipo R Reg IR1511 R Sinais envolvidos EscReg 1 RegDest 1 MemReg 1 5 Final de Execução Leitura da Memória lw Reg IR2016 MDR Sinais envolvidos EscReg 1 RegDest 0 MemReg 0 Máquinas de Estados Finitos Define série de estados regras de transição entre estados função próximo estado Projeto multiciclo cada estado corresponde a um dos passos de execução 2 primeiros estados iguais para todas as instruções Busca e Decodificação Máquina de estados finitos LerMem 1 IouD 0 IREsc 1 FonteALUA 0 FonteALUB 01 ALUOp 00 PCESc 1 FontePC 00 Estado 0 Estado 1 Busca Decodificação lwsw Tipo R Desvio condicional Desvio incondicional FonteALUA 0 FonteALUB 11 ALUOp 00 Acesso à Memória Vem do Estado 1 Op lw Op sw FonteALUA 1 FonteALUB 10 ALUOp 00 EscMem 1 IouD 1 LerMem 1 IouD 1 EscReg 1 RegDest 0 MemReg 0 Estado 2 Estado 3 Estado 4 Estado 5 Retorna ao Estado 0 Tipo R Vem do Estado 1 Estado 6 Estado 7 Retorna ao Estado 0 FonteALUA 1 FonteALUB 00 ALUOp 10 RegDest 1 EscReg 1 MemReg 1 Desvios Vem do Estado 1 Condicional Incondicional PCEsc 1 FontePC 10 Estado 8 Estado 9 Retorna ao Estado 0 Vem do Estado 1 FonteALUA 1 FonteALUB 00 ALUOp 01 PCEscCond 1 FontePc 01 Exercícios 1Mostre como é a máquina de estados finitos completa combinando todos os passos de execução de todas as classes de instruções abordadas 2 Acrescente ao caminho de dados multiciclo a instrução addi Verifique a necessidade de algum componente de hardware adicional e sinais de controle Mostre as modificações necessárias na máquina de estados finitos Exercícios 3 Considere o mesmo enunciado da questão anterior e acrescente a instrução jal jump and link ao projeto multiciclo 4 Mostre como a instrução jr jump register pode ser implementada simplesmente com algumas modificações na máquina de estados finitos completa lembrese que zero 0 e está mapeado no registrador 0