• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Engenharia da Computação ·

Arquitetura de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Pipeline MIPS- Analogia Lavanderia e Otimização de Desempenho

60

Pipeline MIPS- Analogia Lavanderia e Otimização de Desempenho

Arquitetura de Computadores

PUC

Programa Assembly MIPS Gerenciamento Notas Laboratorio Arquitetura Computadores

1

Programa Assembly MIPS Gerenciamento Notas Laboratorio Arquitetura Computadores

Arquitetura de Computadores

PUC

Microprogramacao e Arquitetura VAX: Evolucao e Impacto na Microarquitetura

1

Microprogramacao e Arquitetura VAX: Evolucao e Impacto na Microarquitetura

Arquitetura de Computadores

PUC

Hazards de Controle e Previsão de Branch em Arquitetura de Computadores Ricardo Pannain 2023

54

Hazards de Controle e Previsão de Branch em Arquitetura de Computadores Ricardo Pannain 2023

Arquitetura de Computadores

PUC

Arquitetura de Processadores-Implementacao MIPS e Conceitos Basicos

43

Arquitetura de Processadores-Implementacao MIPS e Conceitos Basicos

Arquitetura de Computadores

PUC

Lista de Exercícios de Arquitetura de Computadores - Novas Instruções

1

Lista de Exercícios de Arquitetura de Computadores - Novas Instruções

Arquitetura de Computadores

PUC

Exercícios Resolvidos sobre Caminho de Dados Monociclo e Instruções MIPS

1

Exercícios Resolvidos sobre Caminho de Dados Monociclo e Instruções MIPS

Arquitetura de Computadores

PUC

Proposta de Avaliação Processual para Implementação de Circuitos Lógicos

4

Proposta de Avaliação Processual para Implementação de Circuitos Lógicos

Arquitetura de Computadores

MULTIVIX

Projeto Semestral de Arquitetura de Barramento

1

Projeto Semestral de Arquitetura de Barramento

Arquitetura de Computadores

CEUN-IMT

Trabalho Semestral Urgente

1

Trabalho Semestral Urgente

Arquitetura de Computadores

CEUN-IMT

Texto de pré-visualização

Projeto da Unidade de Controle Memory access instructions Figure 538 Rtype instructions Figure 539 Branch instruction Figure 540 Jump instruction Figure 541 Instruction fetchdecode and register fetch Figure 537 Start Ricardo Pannain 2023 1 Diagrama de estados Fetch da Instrução e DecodificaçãoLeitura de Registradores ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode Register fetch Op JMP 0 1 Start Memory reference FSM Figure 538 Rtype FSM Figure 539 Branch FSM Figure 540 Jump FSM Figure 541 Ricardo Pannain 2023 2 Diagrama de estados Instruções com referência à Memória MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegWrite MemtoReg 1 RegDst 0 Memory address computation Op LW or Op SW Memory access Writeback step Op LW 4 2 5 3 From state 1 To state 0 Figure 537 Memory access Ricardo Pannain 2023 3 Diagrama de estados Instruções Tipo R ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 Execution Rtype completion 6 7 Op Rtype From state 1 To state 0 Figure 537 Ricardo Pannain 2023 4 Diagrama de estados Instruções Branch Branch completion 8 Op BEQ From state 1 To state 0 Figure 537 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PC WriteCond PCSource 01 Ricardo Pannain 2023 5 Diagrama de estados Instruções Jump Jump completion 9 Op J From state 1 To state 0 Figure 537 PCWrite PCSource 10 Ricardo Pannain 2023 6 Diagrama de estados XCHG Ricardo Pannain 2023 7 XCHG PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start RegDst 10 MentoReg 00 RegWrite RegDst 11 MentoReg 10 RegWrite 8 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 Ricardo Pannain 2023 JR com alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 00 XX 11 ALUop 00 00 XX ALUSrcA 0 0 X ALUSrcB 01 11 XX RegWrite 0 0 0 RegDst X X X 9 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Ricardo Pannain 2023 Opcode rs rt rd shamt function xxxxxx reg 0 0 0 add Diagrama de estados JR PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start Ricardo Pannain 2023 10 Op jr 10 P C W rite P C W rite C o n d Io rD M e m to R e g P C S o u rce A L U O p A L U S rc B A L U S rc A R e g W rite R e g D s t N S 3 N S 2 N S 1 N S 0 Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 S ta te re g is te r IR W rite M e m R e a d M e m W rite In s tru ctio n re g is te r o p c o d e fie ld O u tp u ts C o n tro l lo g ic In p u ts Uma máquina de estados finitos pode ser implementada com um registrador temporário que guarde o estado corrente e uma lógica de controle combinacional que determina os sinais de controle e o próximo estado Implementação de uma Unidade de Controle com máquina de estados finitos Ricardo Pannain 2023 11 Implementação de uma Unidade de Controle com Microprogramação Projeto simplificado da Unidade de Controle Cada microinstrução tem o efeito de ativar os sinais de controle especificados por elas Um microprograma é uma representação simbólica da unidade de controle que será traduzida por um programa para a lógica de controle O formato da microinstrução deve ser escolhida de tal forma a simplificar sua representação Para evitar microinstruções inconsistentes cada campo da microinstrução deve especificar um conjunto de sinais que não acontecem simultaneamente Ricardo Pannain 2023 12 Ricardo Pannain 2023 13 Tabela com os campos das microinstruções Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 14 Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 15 Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 16 Criando um Microprograma Fetch e Decode Ricardo Pannain 2023 17 Dispatch tabela 1 e o opcode são usados para selecionar uma de 4 sequências diferentes de micro instruções Mem1 instruções de referência à memória Rformat1 instruções Rtype BEQ1 instruções beq JUMP1 instruções de jump Criando um Microprograma Fetch e Decode Ricardo Pannain 2023 18 Criando um Microprograma Referência à Memória Mem1 Ricardo Pannain 2023 19 Criando um Microprograma Referência à Memória LW2 Ricardo Pannain 2023 20 Criando um Microprograma Referência à Memória SW2 Ricardo Pannain 2023 21 Criando um Microprograma instruções Rtype Rformat1 Ricardo Pannain 2023 22 Criando um Microprograma Instruções beq BEQ1 Ricardo Pannain 2023 23 Criando um Microprograma Instruções de jump JUMP1 Ricardo Pannain 2023 24 Microprograma para unidade de controle Ricardo Pannain 2023 25 Implementação em ROM da Unidade de controle microprogramada Microprogram counter Address select logic Adder 1 Input Datapath control outputs Microcode storage Inputs from instruction register opcode field Outputs Sequencing control Ricardo Pannain 2023 26 27 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Ricardo Pannain 2023 Exercício Ricardo Pannain 2023 28 Alterar o micro programa JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Microprograma para unidade de controle Ricardo Pannain 2023 29 Microprograma para unidade de controle JR LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL SEQ RFORMAT1 Fun code A B SEQ WRITE ALU FETCH JR1 Fun code A B ALU FETCH Ricardo Pannain 2023 30 Exceções e interrupções Exceção é um evento inesperado interno ao processador p ex overflow que causa uma mudança no fluxo normal de execução das instruções Interrupção é um evento inesperado externo ao processador p ex interrupção de IO que causa uma mudança no fluxo normal de execução das instruções Ricardo Pannain 2023 31 Exemplos de eventos que podem causar exceçõesinterrupções Tipo de Evento Fonte Terminologia MIPS Requisição de IO Externa Interrupção Chamada ao SO Interna Exceção Overflow aritimético Interna Exceção Uso de instrução não definida Interna Exceção Mau funcionamento do hardware Ambos Exceção ou Interrupção Ricardo Pannain 2023 32 Detecção de exceção Dois tipos de exceção serão tratados execução de uma instrução não definida e overflow aritmético Quando ocorre uma exceção o endereço da instrução afetada é guardada no EPC exception program counter e o controle transferido ao sistema operacional em um endereço especificado Dependendo da atitude do SO e do tipo de exceção o programa pode ser interrompido ou reiniciado a partir do endereço armazenado em EPC Ricardo Pannain 2023 33 Detecção de exceção Para o SO tratar a exceção ele tem que conhecer qual é a exceção Há duas maneiras status register Cause que tem um campo que especifica a exceção MIPS vectored interrupts o SO sabe a razão da exceção pelo endereço de entrada no vetor O SO sabe a razão da exceção pelo endereço passado para ele Ricardo Pannain 2023 34 Para o SO tratar a exceção ele tem que conhecer qual é a exceção Há duas maneiras status register Cause que tem um campo que especifica a exceção ocorrida MIPS Neste caso é usado apenas um único ponto de entrada para todas as exceções vectored interrupts o endereço para qual o controle é transferido é determinado pela causa da interrupção Tipo de exceção Endereço no vetor de exçeçõeshexa Instrução não definida C0 00 00 00hex Overflow aritimético C0 00 00 20hex Ricardo Pannain 2023 35 Detecção de exceção Para tratar a exceção vamos supor o primeiro método Temos 2 registradores extra EPC de 32 bits usado para manter o endereço da instrução afetada e Cause 32 bits usado para armazenar a causa da exceção Vamos assumir que o bit menos significativo seja usado para codificar a causa da exceção instrução indefinida 0 e overflow 1 Precisamos de dois sinais de controle EPCWrite e CauseWrite o sinal do bit menos significativo de Cause IntCause Precisamos também escrever o endereço de exceção no qual o SO entra para tratar a mesma supor C000000016 O multiplexador de entrada de PC dever ser alterado de 3 para 4 entradas entrada C000000016 A ULA deve subtrair 4 do valor de PC para poder guardar em EPC Ricardo Pannain 2023 36 Detecção de exceção Datapath multiciclo com sinais de controle Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 50 Instruction 3126 Instruction50 Mux 0 2 Jump address 310 Instruction 250 26 Shift 28 left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address Ricardo Pannain 2023 37 Temos 2 registradores extra EPC de 32 bits usado para manter o endereço da instrução afetada e Cause 32 bits usado para armazenar a causa da exceção Vamos assumir que o bit menos significativo seja usado para codificar a causa da exceção instrução indefinida 0 e overflow 1 Precisamos de dois sinais de controle EPCWrite e CauseWrite o sinal do bit menos significativo de Cause IntCause Precisamos também escrever o endereço de exceção no qual o SO entra para tratar a mesma supor C000000016 O multiplexador de entrada de PC dever ser alterado de 3 para 4 entradas entrada C000000016 Shift left 2 Memory MemData Write data M u x 0 1 Instruction 15 11 M u x 0 1 4 Instruction 150 Sign extend 32 16 Instruction 25 21 Instruction 20 16 Instruction 15 0 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite Control Outputs Op 5 0 Instruction 3126 Instruction 5 0 M u x 0 2 Jump address 310 Instruction 25 0 26 28 Shift left 2 PC 3128 1 Address EPC CO 00 00 00 3 Cause ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite EPCWrite IntCause CauseWrite 1 0 1 M u x 0 3 2 M u x 0 1 M u x 0 1 PC M u x 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 ALUOut Ricardo Pannain 2023 38 Datapath com exceção Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Ricardo Pannain 2023 39 Detecção de exceção Diagrama de estados Unidade de Controle completa incluir detecção e tratamento de interrupção PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start Ricardo Pannain 2023 40 Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Ricardo Pannain 2023 41 Detecção de exceção 11 10 To state 0 to begin next instruction PCSource 11 ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite IntCause 0 CauseWrite ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 PCSource 11 IntCause 1 CauseWrite Ricardo Pannain 2023 42 Detecção de exceção ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 00 ALUOp 00 RegWrite MemtoReg 1 RegDst 0 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode Register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 11 10 5 3 Start Overflow Overflow ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 IntCause 0 CauseWrite ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 IntCause 1 CauseWrite PCWrite PCSource 10 Micro programa para unidade de controle incluir detecção e tratamento de exceção Ricardo Pannain 2023 43 Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Micro programa para unidade de controle Exceção Ricardo Pannain 2023 44 LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL INT SEQ Add A Extshft dispatch 1 RFORMAT1 Fun code A B SEQ Write ALU dispatch 3 no over3 FETCH over3 Tratexc Overflow FETCH others1 Tratexc Noval FETCH Tratexc EPCWrite 1 PCSource 11 e Pcwrite1 Noval IntCuase0 CauseWrite 1 Overflow IntCause 1 CauseWrite1 Questões relativas ao desempenho Delays longos determinam o período do clock Caminho crítico instrução load Memória de instruções register file ALU memórias de dados register file Não é viável variar o período para instruções diferentes Viola os princípios de projeto Fazer o caso comum mais rápido Melhoraremos o desempenho com o pipeline Ricardo Pannain 2023 45 46 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE SE NECESSÁRIO PARA A EXECUÇÃO DA INSTRUÇÃO ADD rtimed16 rs rt rt MEMimed32rs ADDM rtimed16 rs MEMimed32rs rt MEMimed32rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond PCWrite IorD MemRead MemWrite MemToReg IRWrite PCSource ALUop ALUSrcA ALUSrcB RegWrite RegDst Ricardo Pannain 2023 47 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE SE NECESSÁRIO PARA A EXECUÇÃO DA INSTRUÇÃO ADD rtimed16 rs rt rt MEMimed32rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond 0 0 0 0 0 0 PCWrite 1 0 0 0 0 0 IorD 0 X X 1 X X MemRead 1 0 0 1 0 0 MemWrite 0 0 0 0 0 0 MemToReg X X X X X 0 IRWrite 1 0 0 0 0 0 PCSource 0 X X X X X ALUop 00 00 00 X 00 X ALUSrcA 00 00 01 XX 10 X ALUSrcB 01 11 10 XX 00 XX RegWrite 0 0 0 0 0 1 RegDst X X X X X 0 Ricardo Pannain 2023 2 48 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE PARA A EXECUÇÃO DA INSTRUÇÃO ADDM RTENDRS MEMEND32RS RT MEMEND32RS Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond 0 0 0 0 0 0 PCWrite 1 0 0 0 0 0 IorD 00 XX XX 01 XX 10 MemRead 1 0 0 1 0 0 MemWrite 0 0 0 0 0 1 MemToReg X X X X X X IRWrite 1 0 0 0 0 0 PCSource 0 X X X X X ALUop 00 00 00 XX 00 XX ALUSrcA 00 00 01 XX 10 X ALUSrcB 01 11 10 XX 00 XX RegWrite 0 0 0 0 0 0 RegEnd 0 0 1 0 0 0 RegDst X X X X X X EscMem X X X X X 1 Ricardo Pannain 2023 2 END RegEnd 2 EscMem 0 1 Micro programa para unidade de controle XCHG Ricardo Pannain 2023 49 LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL INT SEQ XCHG1 WRITE A SEQ WRITE B FETCH

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Pipeline MIPS- Analogia Lavanderia e Otimização de Desempenho

60

Pipeline MIPS- Analogia Lavanderia e Otimização de Desempenho

Arquitetura de Computadores

PUC

Programa Assembly MIPS Gerenciamento Notas Laboratorio Arquitetura Computadores

1

Programa Assembly MIPS Gerenciamento Notas Laboratorio Arquitetura Computadores

Arquitetura de Computadores

PUC

Microprogramacao e Arquitetura VAX: Evolucao e Impacto na Microarquitetura

1

Microprogramacao e Arquitetura VAX: Evolucao e Impacto na Microarquitetura

Arquitetura de Computadores

PUC

Hazards de Controle e Previsão de Branch em Arquitetura de Computadores Ricardo Pannain 2023

54

Hazards de Controle e Previsão de Branch em Arquitetura de Computadores Ricardo Pannain 2023

Arquitetura de Computadores

PUC

Arquitetura de Processadores-Implementacao MIPS e Conceitos Basicos

43

Arquitetura de Processadores-Implementacao MIPS e Conceitos Basicos

Arquitetura de Computadores

PUC

Lista de Exercícios de Arquitetura de Computadores - Novas Instruções

1

Lista de Exercícios de Arquitetura de Computadores - Novas Instruções

Arquitetura de Computadores

PUC

Exercícios Resolvidos sobre Caminho de Dados Monociclo e Instruções MIPS

1

Exercícios Resolvidos sobre Caminho de Dados Monociclo e Instruções MIPS

Arquitetura de Computadores

PUC

Proposta de Avaliação Processual para Implementação de Circuitos Lógicos

4

Proposta de Avaliação Processual para Implementação de Circuitos Lógicos

Arquitetura de Computadores

MULTIVIX

Projeto Semestral de Arquitetura de Barramento

1

Projeto Semestral de Arquitetura de Barramento

Arquitetura de Computadores

CEUN-IMT

Trabalho Semestral Urgente

1

Trabalho Semestral Urgente

Arquitetura de Computadores

CEUN-IMT

Texto de pré-visualização

Projeto da Unidade de Controle Memory access instructions Figure 538 Rtype instructions Figure 539 Branch instruction Figure 540 Jump instruction Figure 541 Instruction fetchdecode and register fetch Figure 537 Start Ricardo Pannain 2023 1 Diagrama de estados Fetch da Instrução e DecodificaçãoLeitura de Registradores ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode Register fetch Op JMP 0 1 Start Memory reference FSM Figure 538 Rtype FSM Figure 539 Branch FSM Figure 540 Jump FSM Figure 541 Ricardo Pannain 2023 2 Diagrama de estados Instruções com referência à Memória MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegWrite MemtoReg 1 RegDst 0 Memory address computation Op LW or Op SW Memory access Writeback step Op LW 4 2 5 3 From state 1 To state 0 Figure 537 Memory access Ricardo Pannain 2023 3 Diagrama de estados Instruções Tipo R ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 Execution Rtype completion 6 7 Op Rtype From state 1 To state 0 Figure 537 Ricardo Pannain 2023 4 Diagrama de estados Instruções Branch Branch completion 8 Op BEQ From state 1 To state 0 Figure 537 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PC WriteCond PCSource 01 Ricardo Pannain 2023 5 Diagrama de estados Instruções Jump Jump completion 9 Op J From state 1 To state 0 Figure 537 PCWrite PCSource 10 Ricardo Pannain 2023 6 Diagrama de estados XCHG Ricardo Pannain 2023 7 XCHG PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start RegDst 10 MentoReg 00 RegWrite RegDst 11 MentoReg 10 RegWrite 8 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 Ricardo Pannain 2023 JR com alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 00 XX 11 ALUop 00 00 XX ALUSrcA 0 0 X ALUSrcB 01 11 XX RegWrite 0 0 0 RegDst X X X 9 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Ricardo Pannain 2023 Opcode rs rt rd shamt function xxxxxx reg 0 0 0 add Diagrama de estados JR PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start Ricardo Pannain 2023 10 Op jr 10 P C W rite P C W rite C o n d Io rD M e m to R e g P C S o u rce A L U O p A L U S rc B A L U S rc A R e g W rite R e g D s t N S 3 N S 2 N S 1 N S 0 Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 S ta te re g is te r IR W rite M e m R e a d M e m W rite In s tru ctio n re g is te r o p c o d e fie ld O u tp u ts C o n tro l lo g ic In p u ts Uma máquina de estados finitos pode ser implementada com um registrador temporário que guarde o estado corrente e uma lógica de controle combinacional que determina os sinais de controle e o próximo estado Implementação de uma Unidade de Controle com máquina de estados finitos Ricardo Pannain 2023 11 Implementação de uma Unidade de Controle com Microprogramação Projeto simplificado da Unidade de Controle Cada microinstrução tem o efeito de ativar os sinais de controle especificados por elas Um microprograma é uma representação simbólica da unidade de controle que será traduzida por um programa para a lógica de controle O formato da microinstrução deve ser escolhida de tal forma a simplificar sua representação Para evitar microinstruções inconsistentes cada campo da microinstrução deve especificar um conjunto de sinais que não acontecem simultaneamente Ricardo Pannain 2023 12 Ricardo Pannain 2023 13 Tabela com os campos das microinstruções Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 14 Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 15 Tabela com os valores dos campos de uma microinstrução Ricardo Pannain 2023 16 Criando um Microprograma Fetch e Decode Ricardo Pannain 2023 17 Dispatch tabela 1 e o opcode são usados para selecionar uma de 4 sequências diferentes de micro instruções Mem1 instruções de referência à memória Rformat1 instruções Rtype BEQ1 instruções beq JUMP1 instruções de jump Criando um Microprograma Fetch e Decode Ricardo Pannain 2023 18 Criando um Microprograma Referência à Memória Mem1 Ricardo Pannain 2023 19 Criando um Microprograma Referência à Memória LW2 Ricardo Pannain 2023 20 Criando um Microprograma Referência à Memória SW2 Ricardo Pannain 2023 21 Criando um Microprograma instruções Rtype Rformat1 Ricardo Pannain 2023 22 Criando um Microprograma Instruções beq BEQ1 Ricardo Pannain 2023 23 Criando um Microprograma Instruções de jump JUMP1 Ricardo Pannain 2023 24 Microprograma para unidade de controle Ricardo Pannain 2023 25 Implementação em ROM da Unidade de controle microprogramada Microprogram counter Address select logic Adder 1 Input Datapath control outputs Microcode storage Inputs from instruction register opcode field Outputs Sequencing control Ricardo Pannain 2023 26 27 jr reg PC reg Instrução tipo R reg é o rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Ricardo Pannain 2023 Exercício Ricardo Pannain 2023 28 Alterar o micro programa JR sem alteração datapath 1o Ciclo 2o Ciclo 3o Ciclo 4o Ciclo 5o Ciclo PCWriteCond 0 0 0 PCWrite 1 0 1 IorD 0 X X MemRead 1 0 0 MemWrite 0 0 0 MemToReg X X X IRWrite 1 0 0 PCSource 0 X 0 ALUop 00 00 10 ALUSrcA 0 0 1 ALUSrcB 01 11 00 RegWrite 0 0 0 RegDst X X X Microprograma para unidade de controle Ricardo Pannain 2023 29 Microprograma para unidade de controle JR LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL SEQ RFORMAT1 Fun code A B SEQ WRITE ALU FETCH JR1 Fun code A B ALU FETCH Ricardo Pannain 2023 30 Exceções e interrupções Exceção é um evento inesperado interno ao processador p ex overflow que causa uma mudança no fluxo normal de execução das instruções Interrupção é um evento inesperado externo ao processador p ex interrupção de IO que causa uma mudança no fluxo normal de execução das instruções Ricardo Pannain 2023 31 Exemplos de eventos que podem causar exceçõesinterrupções Tipo de Evento Fonte Terminologia MIPS Requisição de IO Externa Interrupção Chamada ao SO Interna Exceção Overflow aritimético Interna Exceção Uso de instrução não definida Interna Exceção Mau funcionamento do hardware Ambos Exceção ou Interrupção Ricardo Pannain 2023 32 Detecção de exceção Dois tipos de exceção serão tratados execução de uma instrução não definida e overflow aritmético Quando ocorre uma exceção o endereço da instrução afetada é guardada no EPC exception program counter e o controle transferido ao sistema operacional em um endereço especificado Dependendo da atitude do SO e do tipo de exceção o programa pode ser interrompido ou reiniciado a partir do endereço armazenado em EPC Ricardo Pannain 2023 33 Detecção de exceção Para o SO tratar a exceção ele tem que conhecer qual é a exceção Há duas maneiras status register Cause que tem um campo que especifica a exceção MIPS vectored interrupts o SO sabe a razão da exceção pelo endereço de entrada no vetor O SO sabe a razão da exceção pelo endereço passado para ele Ricardo Pannain 2023 34 Para o SO tratar a exceção ele tem que conhecer qual é a exceção Há duas maneiras status register Cause que tem um campo que especifica a exceção ocorrida MIPS Neste caso é usado apenas um único ponto de entrada para todas as exceções vectored interrupts o endereço para qual o controle é transferido é determinado pela causa da interrupção Tipo de exceção Endereço no vetor de exçeçõeshexa Instrução não definida C0 00 00 00hex Overflow aritimético C0 00 00 20hex Ricardo Pannain 2023 35 Detecção de exceção Para tratar a exceção vamos supor o primeiro método Temos 2 registradores extra EPC de 32 bits usado para manter o endereço da instrução afetada e Cause 32 bits usado para armazenar a causa da exceção Vamos assumir que o bit menos significativo seja usado para codificar a causa da exceção instrução indefinida 0 e overflow 1 Precisamos de dois sinais de controle EPCWrite e CauseWrite o sinal do bit menos significativo de Cause IntCause Precisamos também escrever o endereço de exceção no qual o SO entra para tratar a mesma supor C000000016 O multiplexador de entrada de PC dever ser alterado de 3 para 4 entradas entrada C000000016 A ULA deve subtrair 4 do valor de PC para poder guardar em EPC Ricardo Pannain 2023 36 Detecção de exceção Datapath multiciclo com sinais de controle Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 50 Instruction 3126 Instruction50 Mux 0 2 Jump address 310 Instruction 250 26 Shift 28 left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address Ricardo Pannain 2023 37 Temos 2 registradores extra EPC de 32 bits usado para manter o endereço da instrução afetada e Cause 32 bits usado para armazenar a causa da exceção Vamos assumir que o bit menos significativo seja usado para codificar a causa da exceção instrução indefinida 0 e overflow 1 Precisamos de dois sinais de controle EPCWrite e CauseWrite o sinal do bit menos significativo de Cause IntCause Precisamos também escrever o endereço de exceção no qual o SO entra para tratar a mesma supor C000000016 O multiplexador de entrada de PC dever ser alterado de 3 para 4 entradas entrada C000000016 Shift left 2 Memory MemData Write data M u x 0 1 Instruction 15 11 M u x 0 1 4 Instruction 150 Sign extend 32 16 Instruction 25 21 Instruction 20 16 Instruction 15 0 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite Control Outputs Op 5 0 Instruction 3126 Instruction 5 0 M u x 0 2 Jump address 310 Instruction 25 0 26 28 Shift left 2 PC 3128 1 Address EPC CO 00 00 00 3 Cause ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite EPCWrite IntCause CauseWrite 1 0 1 M u x 0 3 2 M u x 0 1 M u x 0 1 PC M u x 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 ALUOut Ricardo Pannain 2023 38 Datapath com exceção Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Ricardo Pannain 2023 39 Detecção de exceção Diagrama de estados Unidade de Controle completa incluir detecção e tratamento de interrupção PCWrite PCSource 10 ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 10 ALUOp 00 RegDst0 RegWrite MemtoReg1 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 5 3 Start Ricardo Pannain 2023 40 Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Ricardo Pannain 2023 41 Detecção de exceção 11 10 To state 0 to begin next instruction PCSource 11 ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite IntCause 0 CauseWrite ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 PCSource 11 IntCause 1 CauseWrite Ricardo Pannain 2023 42 Detecção de exceção ALUSrcA 1 ALUSrcB 00 ALUOp 01 PCWriteCond PCSource 01 ALUSrcA 1 ALUSrcB 00 ALUOp 10 RegDst 1 RegWrite MemtoReg 0 MemWrite IorD 1 MemRead IorD 1 ALUSrcA 1 ALUSrcB 00 ALUOp 00 RegWrite MemtoReg 1 RegDst 0 ALUSrcA 0 ALUSrcB 11 ALUOp 00 MemRead ALUSrcA 0 IorD 0 IRWrite ALUSrcB 01 ALUOp 00 PCWrite PCSource 00 Instruction fetch Instruction decode Register fetch Jump completion Branch completion Execution Memory address computation Memory access Memory access Rtype completion Writeback step Op J Op LW 4 0 1 9 8 6 2 7 11 10 5 3 Start Overflow Overflow ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 IntCause 0 CauseWrite ALUSrcA 0 ALUSrcB 01 ALUOp 01 EPCWrite PCWrite PCSource 11 IntCause 1 CauseWrite PCWrite PCSource 10 Micro programa para unidade de controle incluir detecção e tratamento de exceção Ricardo Pannain 2023 43 Para detectar as exceções e transferir o controle para o estado apropriado temos Instrução indefinida é detectada quando não há próximo estado definido a partir do estado 1 para o valor do opcode Tratamos definindo o próximo estado para qualquer valor de opcode como estado 10 Overflow aritmético o sinal de overflow saída da ULA é usado para modificar a máquina de estados para especificar um novo próximo estado a partir do estado 7 Micro programa para unidade de controle Exceção Ricardo Pannain 2023 44 LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL INT SEQ Add A Extshft dispatch 1 RFORMAT1 Fun code A B SEQ Write ALU dispatch 3 no over3 FETCH over3 Tratexc Overflow FETCH others1 Tratexc Noval FETCH Tratexc EPCWrite 1 PCSource 11 e Pcwrite1 Noval IntCuase0 CauseWrite 1 Overflow IntCause 1 CauseWrite1 Questões relativas ao desempenho Delays longos determinam o período do clock Caminho crítico instrução load Memória de instruções register file ALU memórias de dados register file Não é viável variar o período para instruções diferentes Viola os princípios de projeto Fazer o caso comum mais rápido Melhoraremos o desempenho com o pipeline Ricardo Pannain 2023 45 46 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE SE NECESSÁRIO PARA A EXECUÇÃO DA INSTRUÇÃO ADD rtimed16 rs rt rt MEMimed32rs ADDM rtimed16 rs MEMimed32rs rt MEMimed32rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond PCWrite IorD MemRead MemWrite MemToReg IRWrite PCSource ALUop ALUSrcA ALUSrcB RegWrite RegDst Ricardo Pannain 2023 47 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE SE NECESSÁRIO PARA A EXECUÇÃO DA INSTRUÇÃO ADD rtimed16 rs rt rt MEMimed32rs Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond 0 0 0 0 0 0 PCWrite 1 0 0 0 0 0 IorD 0 X X 1 X X MemRead 1 0 0 1 0 0 MemWrite 0 0 0 0 0 0 MemToReg X X X X X 0 IRWrite 1 0 0 0 0 0 PCSource 0 X X X X X ALUop 00 00 00 X 00 X ALUSrcA 00 00 01 XX 10 X ALUSrcB 01 11 10 XX 00 XX RegWrite 0 0 0 0 0 1 RegDst X X X X X 0 Ricardo Pannain 2023 2 48 EXERCÍCIO ALTERAR DATAPATH E UNIDADE DE CONTROLE PARA A EXECUÇÃO DA INSTRUÇÃO ADDM RTENDRS MEMEND32RS RT MEMEND32RS Shift left 2 PC Mux 0 1 Registers Write register Write data Read data 1 Read data 2 Read register 1 Read register 2 Instruction 1511 Mux 0 1 Mux 0 1 4 Instruction 150 Sign extend 32 16 Instruction 2521 Instruction 2016 Instruction 150 Instruction register ALU control ALU result ALU Zero Memory data register A B IorD MemRead MemWrite MemtoReg PCWriteCond PCWrite IRWrite ALUOp ALUSrcB ALUSrcA RegDst PCSource RegWrite Control Outputs Op 5 0 Instruction 3126 Instruction 50 Mux 0 2 Jump address 310 Instruction 250 26 28 Shift left 2 PC 3128 1 1 Mux 0 3 2 Mux 0 1 ALUOut Memory MemData Write data Address 3 ADD RT ENDRS 1º Ciclo 2º Ciclo 3º Ciclo 4º Ciclo 5º Ciclo 6º Ciclo PCWriteCond 0 0 0 0 0 0 PCWrite 1 0 0 0 0 0 IorD 00 XX XX 01 XX 10 MemRead 1 0 0 1 0 0 MemWrite 0 0 0 0 0 1 MemToReg X X X X X X IRWrite 1 0 0 0 0 0 PCSource 0 X X X X X ALUop 00 00 00 XX 00 XX ALUSrcA 00 00 01 XX 10 X ALUSrcB 01 11 10 XX 00 XX RegWrite 0 0 0 0 0 0 RegEnd 0 0 1 0 0 0 RegDst X X X X X X EscMem X X X X X 1 Ricardo Pannain 2023 2 END RegEnd 2 EscMem 0 1 Micro programa para unidade de controle XCHG Ricardo Pannain 2023 49 LABEL ALU CONTROL SRC1 SRC2 REGISTER CONTROL MEMORY PCWrite CONTROL INT SEQ XCHG1 WRITE A SEQ WRITE B FETCH

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®