Sistemas Processadores e Periféricos Aula 5 - Revisão



Documentos relacionados
Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

DataPath II Tomando o controle!

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Sistemas Processadores e Periféricos Aula 6 - Revisão

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Caminho dos Dados e Atrasos

O Processador: Caminho de Dados e Controle

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Pipelining - analogia

Arquiteturas de Computadores

O Processador: Via de Dados e Controle

Arquitetura de Computadores

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Infra-estrutura de Hardware

Organização e Arquitetura de Computadores I

Introdução à Arquitetura de Computadores

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Organização de Unidades de Processamento

RISC simples. Aula de Março de

Aula 14: Instruções e Seus Tipos

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Arquiteturas de Computadores

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Informática I. Aula 5. Aula 5-13/05/2006 1

lw, sw add, sub, and, or, slt beq, j

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

ULA Sinais de Controle enviados pela UC

ARQUITECTURA DE COMPUTADORES

Índice. Tudo! (datapath de um ciclo)

Relembrando desempenho...

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Relembrando desempenho...

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Infra-estrutura de Hardware

MODOS DE ENDEREÇAMENTO

SSC0114 Arquitetura de Computadores

Componentes do Computador e. aula 3. Profa. Débora Matos

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Capítulo 3 Processadores de Propósito Geral: Software

Organização de Computadores

Visão Geral de Pipelining

Arquitetura de Computadores - Revisão -

Introdução à Engenharia de Computação

Representando Instruções no Computador

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Paralelismo a Nível de Instrução

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

BARRAMENTO DO SISTEMA

Parte Operativa e Parte de Controle do MIPS

Arquiteturas de Computadores

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Organização e Arquitetura de computadores

SSC0611 Arquitetura de Computadores

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

SSC510 Arquitetura de Computadores. 2ª aula

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática IM-NCE/UFRJ. Pipeline. Gabriel P. Silva. Microarquitetura de Alto Desempenho

Organização e Arquitetura de Computadores I

ção de Computadores II

Organização ou MicroArquitectura

Estrutura de um Computador

Computadores de Programação (MAB353)

ARQUITETURA DE COMPUTADORES

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Nível da Microarquitetura

Arquitetura de Computadores. Tipos de Instruções

Organização de Computadores Hardware

Sistemas Processadores e Periféricos Aula 2 - Revisão

ArchC. Wesley Nunes Gonçalves

Programação Básica usando o Computador Visível. Jorge Fernandes Maio de 2004

O Porcessador: Via de Dados e Controle (Parte B: multiciclo) 1998 Morgan Kaufmann Publishers Ch5B 1

Arquitetura de Computadores I

A FÓRMULA DE CONVERSÃO ENTRE AS UNIDADES É: F = 1.8 C

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Exemplo: CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 ADD $s0, $t0, $t1 IF ID EX MEM WB SUB $t2, $s0, $t3 IF Stall Stall ID EX MEM WB

Edeyson Andrade Gomes

O Processador: Via de Dados e Controle (Parte C: microprogramação)

Arquitetura de Computadores - Processadores Superescalares. por Helcio Wagner da Silva

Arquitetura de Computadores I

Arquitetura de processadores: RISC e CISC

ARQUITETURA DE COMPUTADORES

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Implementação de pipelines

MIPS. Prof. Carlos Bazilio

2 Formalidades referentes ao trabalho

Sistemas Computacionais II Professor Frederico Sauer

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES ARQUITETURAS RISC E CISC. Prof. Dr. Daniel Caetano

Conjunto de Instruções e Arquitectura p.1

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Organização e Arquitetura de Computadores I. de Computadores

Organização de Computadores 1

Capítulo MC10 Organização Básica de Processadores

Transcrição:

Sistemas Processadores e Periféricos Aula 5 - Revisão Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br e do Prof. Ricardo de Oliveira Duarte (DELT/UFMG) 1 1

Ponto fixo :: Extensão de sinal :: Exemplo -4 dec (16 bits) para 32 bits: 1111 1111 1111 1100 bin 1111 1111 1111 1111 1111 1111 1111 1100 bin 2

Operações com ponto fixo :: Overflow Solução MIPS: Causam exceções no overflow: Adição (add) Adição imediata (addi) Subtração (sub) Não causam exceções no overflow: Adição sem sinal (addu) Adição imediata sem sinal (addiu) Subtração sem sinal (subu) 3

Operações com ponto fixo :: Multiplicação O multiplicador inicia na metade direita do produto Multiplicando 32 bits ALU 32 bits Produto 64 bits Shift right Escrever Teste de controle 4

Operações com ponto fixo :: Multiplicação no MIPS Produto (64 bits) é colocado em um par de registradores de 32 bits: Hi armazena a parte mais significativa Lo armazena a parte menos significativa Não gera exceção de overflow 5

Ponto flutuante (Padrão IEEE 754) Um número real pode ser representado no seguinte formato: (-1) s m B e s sinal m significando (mantissa) B base e expoente 6

Ponto flutuante Ponto fixo Inteiros representados -2 31 0 2 31-1 overflow negativo underflow negativo números representados underflow positivo números representados overflow positivo -(2-2 -23 ) 2 128-2 -127 0 2-127 (2-2 -23 ) 2 128 7

Sistemas Processadores e Periféricos Aula 6 - Via de Dados e Controle (cap. 5) Prof. Frank Sill Torres DELT Escola de Engenharia UFMG Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br 8

Cinco Componentes Clássicos Processador (ativo) Controle Via de Dados (Datapath) Memória (passiva) Armazena dados e instruções de programas durante a execução Dispositivos Entrada Saída Teclado, Mouse Discos Monitor, Impressora 9

Componentes do Processador Via de Dados (datapath) Parte do processador que contem o hardware necessário para execução de todos as operações requeridas pelo computador Controle Parte do processador que comanda as ações da via de dados 10

Implementação de Instruções no Processador Arquitetura tipo Ciclo Único Cada instrução é executada em um 1 ciclo de clock Ciclo de clock deve ser longo o suficiente para executar a instrução mais longa Desvantagem: velocidade global limitada à velocidade da instrução mais lenta T clock T add T srl T div 11

Implementação de Instruções no Processador Arquitetura tipo Multi-ciclo Quebra o ciclo de execução em vários passos Executa cada passo em um ciclo de clock Vantagem: cada instrução usa apenas o número de ciclos que ela necessita T clock T add T srl T div 12

Implementação de Instruções no Processador Arquitetura tipo Pipelined (linha de montagem) Cada instrução é executada em múltiplos ciclos Executa uma etapa de cada instrução em cada ciclo Processa múltiplas instruções em paralelo T clock 13

Ciclo único 14

Construindo a via de dados Para facilitar o entendimento da construção do caminho de dados, vamos seguir a abordagem de ciclo único Depois, mostraremos as modificações necessárias para tornar um projeto de ciclo único em um projeto multi-ciclo 15

Implementação de ciclo único Para executar qualquer instrução, precisamos buscá-la na memória O registrador Program Counter (PC) é utilizado para ler a instrução da memória e armazená-la no Registrador de Instrução (IR) Um somador incrementa PC em 4 (uma word) e coloca o resultado de volta em PC 16

Implementação de ciclo único Add 4 PC address Instruction IR Instruction memory

Implementação de ciclo único :: Tipo R Instruções do tipo R: Leem dois registradores (Rs, Rt) Escrevem em um registrador (Rd) Ponto de vista do Banco de Registradores: Leitura: Números (endereços) dos registradores a serem lidos Saída de dados para os conteúdos lidos Escrita Número (endereço) do registrador a ser escrito Entrada de dados a serem escritos 18

Implementação de ciclo único :: Tipo R leitura Register numbers Data 5 5 5 register 1 register 2 Write register Write data data 1 Banco de Registradores data 2 Data escrita RegWrite

Implementação de ciclo único :: Tipo R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 op rs rt rd shamt funct Dados de escrita 5 5 5 Banco de Registradores RegWrite Dados de leitura IR

Implementação de ciclo único :: Load / Store Calculam um endereço de memória somando: O registrador base (Rs) de 32 bits Campo de offset de 16 bits Precisamos de uma unidade para estender o sinal do campo de offset para um valor de 32 bits 21

Implementação de ciclo único :: Load / Store Manipulam memória de dados: Instruções Store escrevem dados Instruções Load leem dados Precisamos de uma memória de dados com: Sinal de controle para escrita Sinal de controle para leitura Entrada de endereço para leitura/escrita Entrada de dados para escrita Saída de dados de leitura 22

Implementação de ciclo único :: Load / Store 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 immediate rt rs op IR register 1 register 2 Write register Write data RegWrite data 1 Banco de Registradores data 2 16 Sign 32 extend Dados de leitura Address Write data MemWrite data Memória de dados Mem

Implementação de ciclo único :: Desvios (branch) Possuem três operandos: Dois registradores a serem comparados Offset de 16 bits para calcular o endereço de destino Dois detalhes: Offset deve ser deslocado 2 bits para a esquerda, para ser expresso em bytes A depender do resultado da comparação, o novo valor de PC pode ser (PC + 4) ou (PC + 4 + (offset << 2)) 24

Implementação de ciclo único :: Desvios (branch) Como o deslocamento é constante, não se utiliza um circuito shifter, mas sim um deslocamento de sinais que acrescenta 00 à extremidade direita A comparação é implementada como uma subtração Para operandos iguais, a ALU sinaliza resultado ZERO 25

Implementação de ciclo único :: Desvios (branch) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 offset rt rs op register 1 register 2 Write register Write data RegWrite data 1 Banco de Registradores data 2 16 Sign 32 extend PC + 4 Shift left 2 Add Sum 4 OpALU ALU Zero Destino do desvio Lógica de controle do desvio IR

Implementação de ciclo único :: Saltos (jump) Substitui os 28 bits menos significativos do PC pelos 26 bits menos significativos do IR deslocados 2 bits à esquerda PC 28 bits IR op target Target << 2 2 bits Novo PC 27

Implementação de ciclo único :: Saltos (jump) 4 Add 4 26 Left shift 2 PC+4[31:28] 28 32 PC address Instruction target Memória de instruções op IR 28

Combinando instruções :: Tipo R + Load/Store Para criar um caminho de dados com hardware compartilhado, deve-se suportar 2 origens para: Segunda entrada da ALU: Tipo R: registrador Load/Store: campo immediate Dados escritos no banco de registradores: Tipo R: saída da ALU Load: memória de dados Registrador a ser escrito no banco: Tipo R: Rd Load: Rt Uso de multiplexadores (MUX) 29

Combinando instruções :: Tipo R + Load/Store I n s t r u ç ã o Rs Rt Rd RegDst Offset M U X register 1 register 2 Write register Write data RegWrite data 1 data 2 Banco de Registradores 16 Sign 32 extend OrigALU M U X opalu Zero ALU ALU result MemWrite Address Write data Memória de dados Mem data MemtoReg M U X 30

Combinando instruções :: Tipo R + Load/Store I n s t r u ç ã o add $t0, $s1, $s2 Rs Rt Rd RegDst Offset M U X register 1 register 2 Write register Write data RegWrite data 1 data 2 Banco de Registradores 16 Sign 32 extend OrigALU M U X opalu Zero ALU ALU result MemWrite Address data Memória de dados Write data Mem MemtoReg M U X 31

Combinando instruções :: Tipo R + Load/Store I n s t r u ç ã o sw $t0, 16($s2) Rs Rt Rd RegDst Offset M U X register 1 register 2 Write register Write data RegWrite data 1 data 2 Banco de Registradores 16 Sign 32 extend OrigALU M U X opalu Zero ALU ALU result MemWrite Address data Memória de dados Write data Mem MemtoReg M U X 32

Combinando instruções :: Tipo R + Load/Store I n s t r u ç ã o lw $t0, 16($s2) Rs Rt Rd RegDst Offset M U X register 1 register 2 Write register Write data RegWrite data 1 data 2 Banco de Registradores 16 Sign 32 extend OrigALU M U X opalu Zero ALU ALU result MemWrite Address data Memória de dados Write data Mem MemtoReg M U X 33

Combinando instruções :: Tipo R + Load/Store + Desvios Um multiplexador adicional é necessário para selecionar o valor a ser escrito em PC: Endereço de instrução seguinte (PC + 4), ou Endereço de destino do desvio (PC + 4 + (offset <<2)) 34

Combinando instruções :: Tipo R + Load/Store + Desvios OrigPC PC 4 address Add Instruction Memória de instruções $t0 = $t1 Rs Rt Rd M U X register 1 register 2 RegDst RegWrite data 1 Write register data 2 Write Banco de dataregistradores 16 Sign 32 extend Shift left 2 OrigALU M U X Add ALU result 4 opalu Zero ALU ALU result M U X MemWrite Address Memória de Write dados data Mem data MemtoReg M U X beq $t0,$t1,label

Combinando instruções :: Tipo R + Load/Store + Desvios OrigPC PC 4 address Add Instruction Memória de instruções $t0 $t1 Rs Rt Rd M U X register 1 register 2 RegDst RegWrite data 1 Write register data 2 Write Banco de dataregistradores 16 Sign 32 extend Shift left 2 OrigALU M U X Add ALU result 4 opalu Zero ALU ALU result M U X MemWrite Address Memória de Write dados data Mem data MemtoReg M U X beq $t0,$t1,label

Implementando o Controle :: Controle da ALU Instruções do tipo R ALU realiza ação determinada pelo campo funct Load / Store ALU soma conteúdo do registrador base com offset para obter o endereço de memória Desvios ALU realiza uma subtração 37

Implementando o Controle :: Controle da ALU ALU Zero ALU result ALU control opalu Instrução opalu Entrada de controle na ALU Load/Store 00 add Desvio 01 sub Tipo R 10 funct

Implementando o Controle :: Controle da ALU O circuito lógico da unidade de controle da ALU é obtido a partir da tabela verdade construída para as combinações desejadas do campo funct com os bits de opalu A saída da tabela verdade (e do circuito lógico sintetizado a partir dela) será os bits de entrada do controle da ALU, os quais determinarão que operação será realizada (soma, and, shift, etc.) 39

Implementando o Controle :: Unidade de controle principal Deve-se criar uma tabela verdade para as combinações desejadas do campo op da instrução gravada em IR, a fim de produzir os correspondente sinais de controle em: RegDst RegWrite OrigALU Branch Mem MemWrite MemtoReg ALUop JUMP 40

Implementando o Controle :: Unidade de controle principal Instruction [25 0] Shift Jump address [31 0] left 2 26 28 PC+4 [31 28] 0 M ux 1 M ux 4 Add Instruction [31 26] Control RegDst Jump Branch Mem MemtoReg ALUOp MemWrite OrigALU RegWrite Shift left 2 Add ALU result 1 0 OrigPC PC address Instruction memory Instruction [31 0] Instruction [25 21] Instruction [20 16] Instruction [15 11] 0 M ux 1 register 1 register 2 Registers Write register Write data data 1 data 2 0 M ux 1 Zero ALU ALU result Address Write data Data memory data 1 M ux 0 Instruction [15 0] 16 Sign 32 extend ALU control Instruction [5 0]

Implementando o Controle :: Unidade de controle principal Sinal de Controle RegDst RegWrite OrigALU Branch Mem MemWrite MemtoReg Efeito quando inativo (zero) O registrador de destino é indicado no campo Rt (bits 20:16) Nenhum O 2º operando da ALU é um registrador ( data 2) O PC é substituído pelo output do somador que calcula PC+4 Nenhum Nenhum O valor a escrever no registrador é o resultado da ALU Efeito quando ativo (um) O registrador de destino é indicado no campo Rd (bits 15:11) O registrador destino é escrito com o valor da entrada Write data O 2º operando da ALU é o campo imm estendido para 32 bits O PC é substituído pelo output do somador que calcula o destino do salto O conteúdo da posição de memória endereçada é colocado nas saídas O conteúdo da posição de memória endereçada é reescrito O valor a escrever no registrador é lido da memória de dados

Implementando o Controle :: Unidade de controle principal Todos os elementos de estado (registradores, memória) têm o clock como uma entrada implícita Unidade de controle pode definir todos os sinais de controle baseada no campo opcode da instrução, exceto Branch, que depende da saída zero da ALU no caso de instruções de desvio 43

Implementando o Controle :: Unidade de controle principal Entrada opcode na unidade de controle Saídas da unidade de controle Opcode 0 h 23 h 2B h 4 h Nome R Lw Sw Beq Bit31 0 1 1 0 Bit30 0 0 0 0 Bit29 0 0 1 0 Bit28 0 0 0 1 Bit27 0 1 1 0 Bit26 0 1 1 0 RegDst 0 1 X X OrigALU 1 0 0 1 MemtoReg 0 1 X X RegWrite 1 1 0 0 Mem 0 1 0 0 MemWrite 0 0 1 0 Branch 0 0 0 1 ALUop1 1 0 0 0 ALUop0 0 0 0 1 44

Desempenho Ciclo Único Ciclo de clock tem mesma duração para todas instruções: ciclos de clocks por instrução (CPI) = 1 Ciclo de clock é longo suficiente para executar a instrução mais demorada, que neste caso é lw Apesar do CPI ser 1, o período de clock (T clock ) é elevado o que prejudica o desempenho do CPU T exec N instr CPI T clock 45

Exemplo: Desempenho Ciclo Único Considere uma máquina com uma unidade de ponto flutuante adicional Assuma que os atrasos sejam os seguintes: Componente Atraso (ns) Memória 2 ALU 2 Unidade de PF (+ / -) 8 Unidade de PF ( / ) 16 Acesso a registradores 1 MUX, controle, acesso ao PC, extensão de sinal e ligações 0 46

Exemplo: Desempenho Ciclo Único Assuma o seguinte mix de instruções: Instrução % Load 31 Store 21 Tipo R 25 Branch 5 Jump 2 Operações PF (+ / -) 7 Operações PF ( / ) 7 47

Exemplo: Desempenho Ciclo Único Compare o desempenho de a) Uma implementação de ciclo único usando clock de período fixo b) Uma implementação de clock com período variável Cada instrução executa em um ciclo de clock O ciclo é tão longo quanto seja necessário para a executar a instrução Na prática, só possível em sistemas assíncronas (que não têm um sinal de clock)! 48

Exemplo: Desempenho Ciclo Único Tipo de Mem. Leitura oper. Mem. Escr. PF PF Tempo Instrução Instr. Regist. ALU Dados Reg. add/ mul/ Total sub div ns. Load word 2 1 2 2 1 8 Store word 2 1 2 2 7 R-format 2 1 2 1 6 Branch 2 1 2 5 Jump 2 2 FP mul/div 2 1 1 16 20 FP add/sub 2 1 1 8 12 49

Exemplo: Desempenho Ciclo Único Período de clock considerando período fixo = tempo da instrução mais longa = 20 ns. Tempo médio de clock considerando período variável = 8 31 % + 7 21 % + 6 27 % + 5 5 % + 2 2 % + 20 7 % + 12 7 % = 7.0 ns Portanto: Desempenho Desempenho ciclo ciclo único variável 20 7 2,9 50

Multi-ciclo 51

Revisão do slide anterior Multi-ciclo Quebra o ciclo de execução em vários passos Executa cada passo em um ciclo de clock Vantagem: cada instrução usa apenas o número de ciclos que ela necessita T clock T add T srl T div 52

Dividindo Instruções em Estágios Possíveis estágios: Instruction Fetch (IF) Carga de instrução e incremento do registrador PC Instruction Decode (ID) Decodificação e carga de registrador(es) do banco Execução (EX) operação da ALU, cômputo de endereço de memória ou finalização de desvios MEM Acesso à memória ou finalização de instrução R Write Back (WB) Finalização de leitura de memória 53

Dividindo Instruções em Estágios Cada estágio toma um ciclo de clock Nem todas as instruções usam todos os estágios Em MIPS, as instruções tomam entre 3 5 ciclos (estágios) 54

Dividindo Instruções em Estágios Implementação multi-ciclo permite que uma unidade funcional seja usada mais de uma vez por instrução, desde que seja usada em diferentes ciclos de clock O compartilhamento de hardware e a redução do tempo de execução constituem as principais vantagens de um projeto multi-ciclo 55

Dividindo Instruções em Estágios Registradores são adicionados após cada unidade funcional para conter a saída dessa unidade até o valor ser utilizado em um ciclo de clock subsequente Esses registradores são invisíveis ao programador Sua função é evitar perda de sincronização nas transições de clock 56

Dividindo Instruções em Estágios IR (registrador de instrução) usado para guardar a saída da memória para uma leitura de instrução MDR (registrador de dados da memória) usado para guardar a saída da memória para uma leitura de dados A e B usados para conter os valores dos registradores operandos lidos do banco de registradores ALUOut contém a saída da ALU 57

Dividindo Instruções em Estágios PC Addre s s Me mory Da ta Ins truction ordata Ins truction re giste r Me mory data regis te r Data Register # Re gisters Register # Register # A B ALU ALUOut 58

Dividindo Instruções em Estágios :: Inclusão de MUX Como várias unidades funcionais são compartilhadas para diferentes finalidades, precisamos de: Incluir multiplexadores Expandir os multiplexadores existentes Como MUX e registradores são muito pequenos se comparados a uma unidade de memória ou ALU Portanto, a economia na eliminação destes compensa os custos de adição daqueles 59

Dividindo Instruções em Estágios :: Inclusão de MUX Memória única: Requer um MUX para selecionar se o endereço de acesso à memória vem de PC (instrução) ou de SaídaALU (dados) ALU única: Um MUX adicional é incluído na primeira entrada para escolher entre o registrador A ou o PC O MUX da segunda entrada da ALU é expandido para quatro entradas, a fim de poder selecionar a constante 4 (incremento do PC) e o campo offset estendido e deslocado (desvios) 60

Dividindo Instruções em Estágios :: Inclusão de MUX Três origens para o valor de PC: Saída da ALU (PC + 4) (Entrada 1) Registrador ALUOut, onde é armazenado o endereço de desvio, após ele ser calculado (Entrada 2) 26 bits menos significativos do IR deslocados de 2 à esquerda e concatenados com os 4 bits mais significativos de PC + 4, no caso de jumps (Entrada 0) 61

Dividindo Instruções em Estágios :: Inclusão de MUX PC 0 M ux Addres s Ins truction [25 21] register 1 0 M ux 0 1 2 M u x 1 Write data Me mory MemDa ta Ins truction [20 16] Ins truction [15 0] Ins truction regis ter Ins truction [15 0] Ins truction [15 11] 0 M u x 1 0 M ux register 2 Registers Write register Write data data 1 data 2 A B 4 1 0 1 M ux 2 3 Zero ALU ALU result ALUOut Me mory data register 1 16 Sign extend 32 Shift le ft 2 62

O que vocês aprenderam hoje? Via de dados e Unidade de controle da arquitetura tipo ciclo único Inclusão de multiplexadores Linhas de controle Implementação do controle Desempenho da arquitetura tipo ciclo único Via de dados de arquitetura tipo multi-ciclo

Questão Defina os estados dos sinais de controle para a arquitetura ciclo único para a instrução add $s1, $s2, $s3 Nome do sinal add $s1, $s2, $s3 RegDst 1 OrigALU 0 MemtoReg 0 RegWrite 1 Mem 0 MemWrite 0 Branch 0 ALUop1 1 ALUop0 0 Jump 0