ALU. Ciclo de Relógio. de Dados. Memória. Instruções. Memória de. Máquina de Estados DIV. Decodificação M11 NPC MDR RESULT. npc=npc_out=npc.

Documentos relacionados
Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans MULTICICLO syscall space syscall addiu 1. .data 2.

MIPS_Monociclo. instruction instr add AdWP. wreg instruction. Memória de

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans 0x

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

1. uins.ce <= '1' when i=sw or i=lw else '0'; 2. uins.rw <= '0' when i=sw else '1'; 3. uins.wreg <= '0' when i=sw else '1';

instruction uins.i add AdWP instruction Memória de ext_sinal ext_0

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Prova G2 Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans .data 0x1E20FFF9 seis palavras da memória de programa

datapath adrt adrd uins.i ext_sinal ext_0

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

O PROCESSADOR MULTICICLO MIPS_S

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

66 [2] 0x x c

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

Número de Linha. Código objeto

Dicas: Nas linhas 7 e 8 as constantes imediatas são especificadas como caracteres ASCIIE, o que é aceito pelo montador MARS.

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Implementação de um Subconjunto Multi-Ciclo do Processador MIPS

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 07/outubro/2009

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Implementação Multi-Ciclo

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.

Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans. Lista de associação de números e mnemônicos para os registradores do MIPS

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

ARQUITECTURA DE COMPUTADORES

1: 2: 2, [1] [2] 0x x3c011001

Guia Rápido MIPS. Tipos de Dados e Formatações

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Organização e Arquitetura de Computadores I

[1] $2,$0,$3 105 [2] 0x004000e8

ção de Computadores II

24/05/2018. Incrementar/Decrementar Laços de Repetição. Professor Ariel da Silva Dias Incrementar / Decrementar / Laço de Repetição

Arquitetura de Computadores

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

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

SÉRIE DE PROBLEMAS: CIRCUITOS DE ARITMÉTICA BINÁRIA. CIRCUITOS ITERATIVOS.

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Relembrando desempenho...

Processador. Processador

Infraestrutura de Hardware. Instruindo um Computador

Arquitetura de Computadores

Notas Processos estocásticos. Nestor Caticha 23 de abril de 2012

X Y Z A B C D

Relembrando desempenho...

Organização e Arquitetura de Computadores I

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

Organização e Arquitetura de Computadores I

Escreva um programa em código assembly correspondente ao seguinte programa C.

Arquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

Questionário Arquitetura e Organização de Computadores

MODOS DE ENDEREÇAMENTO

Arquitetura de Computadores. Ciclo de Busca e Execução

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

2 Metodologia de Medição de Riscos para Projetos

Organização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016

ELE0317 Eletrônica Digital II

Unidade Central de Processamento UCP (CPU)

SSC0114 Arquitetura de Computadores

SSC510 Arquitetura de Computadores 1ª AULA

3 Algoritmos propostos

CAPÍTULO 4 CAMINHO DE DADOS E CONTROLE

Solução Lista de Exercícios Processadores

ARQUITECTURA DE COMPUTADORES

Organização de Unidades de Processamento

CONCEITOS INICIAIS DE ESTATÍSTICA MÓDULO 2 DISTRIBUIÇÃO DE FREQÜÊNCIA - ELEMENTOS Prof. Rogério Rodrigues

TABELAS E GRÁFICOS PARA VARIÁVEIS ALEATÓRIAS QUANTITATIVAS CONTÍNUAS

7 - Distribuição de Freqüências

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

Projeto de Somador com e sem Sinal. Qualificadores

Organização e Arquitetura de Computadores I

Projeto Cpu. Carlos O. Cunha Filho César H. Kallas

6 Modelo Proposto Introdução

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

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Projeto de Circuito Combinacional

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

Operações Aritméticas e Lógicas e Avaliação de Condições

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

Curso FFI Microprocessadores I

RAD1507 Estatística Aplicada à Administração I Prof. Dr. Evandro Marcos Saidel Ribeiro

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:

Especificação do Projeto de Processador RISC

AOC II - Arquitetura e Organização de Computadores Prof. Dr. rer. nat. Daniel Duarte Abdala. Lista de Exercícios

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Microcontroladores e Interfaces

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 4

Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores Aula 10 - Processadores

O Processador: Via de Dados e Controle

Arquitetura de Computadores. Linguagem de Máquina

Transcrição:

Comparador Memóra de Instruções RALU=d_Address ALU Memóra de Dados ads _nt 11111 D_H D_ Prova P2 Dscplna: Organzação de Computadores Professor: Ney Laert Vlar Calazans Aluno: 21/novembro/2017 1. [3,5 pontos]. Consdere o processador multcclo abaxo (é o mesmo vsto em aula): a) [1,5 pontos]. Marcar sobre o desenho todos os camnhos que contém nformações útes à execução da nstrução SW, Offset() em algum cclo de relógo durante a execução (nos multplexadores, ndcar de que entrada a saída do multplexador vem). b) [2 pontos]. Use a tabela abaxo do desenho para explcar sucntamente o que ocorre em cada cclo de relógo para as duas nstruções especfcadas na segunda e tercera colunas da tabela. A cada cclo, dzer que regstrador(es) é(são) escrto(s), e com qual conteúdo (semântca do valor), e a operação que a ULA executa, no cclo relevante. Se algum cclo não for usado em alguma das duas nstruções, dexe-o em branco. Máquna de Estados wreg wpc rw whlo walu cebw M1 dtpc I/ salta_n PC wpc Decodfcação npc=_out= +4 nc_pc [25:21] [20:16] [15:11] M4 [20:16] _IN=_OUT end_dv M3 [20:16] AdRP1 add AdWP DataWP Banco de Regstradores AdRP2 end_mul wreg RESULT RIN M2 R1 DataRP1 DataRP2 R2 npc DIV MULT M6 op1 M7 op2 quocente resto produto(63 down to ) M11 produto(31 downto 0) whlo H M10 H whlo outalu RALU walu M9 ce rw bw x 000000 & data [7:0] data M8 nstructon [15:0] EXT_SINAL << 2 M5 cte_m salta_n = salta = salta_out r w ce [25:0] 0000 & [25:0] & 00 [15:0] EXT_ZERO Cclo de Relógo Instrução: SW, Offset() Instrução: JALR 1º 2º 3º 4º 5º

2. [3,0 pontos]. Consdere a versão smplfcada da ULA (ou ALU) do processador MIPS monocclo vsto em aula, cujo códgo VHDL é mostrado abaxo. 1. archtecture alu of alu s 2. begn 3. outalu <= 4. op1 - op2 when op_alu=subu else 5. op1 and op2 when op_alu=aand else 6. op1 or op2 when op_alu=oor or op_alu=ori else 7. op1 xor op2 when op_alu=xxor else 8. op1 nor op2 when op_alu=nnor else 9. op1 + op2; 10. end alu; Desenhe um hardware correto que sera gerado por uma ferramenta de síntese ao processar esta lnha, assumndo o segunte: op_alu é conectado ao snal uns., um snal que codfca com o mínmo número de bts possível os símbolos assocados ao nome de cada nstrução do processador e o símbolo nvald_nstructon. A codfcação parte do menor valor possível, e segue em ordem crescente para os símbolos ordenados conforme aparece na declaração do tpo nst_type (ou seja, ADDU, SUBU, AAND, OOR, XXOR, NNOR, LW, SW, ORI, nvald_nstructon). Não é necessáro detalhar os operadores gerados pelas expressões op1 op2, op1 and op2, etc., nem a mplementação do hardware que toma a saída destes operadores e gera o snal outalu. Estes podem ser apenas caxas com entradas, saídas e texto dzendo o que tem dentro das caxas. Contudo, quer-se que a lógca de controle que escolhe o que va para outalu seja detalhada no nível de portas lógcas. 3. [3,5 pontos]. Dada uma frequênca de operação de 400MHz para o processador MIPS monocclo, assuma que a organzação orgnal fo alterada para dar suporte a todas as nstruções do programa abaxo, mantendo a característca monocclo. Com estes pressupostos, calcule e dga: a) (1,5 pontos). O número de cclos de relógo que leva p/ executar o programa, com a área de dados fornecda; b) (0,5 ponto). O tempo de execução do programa em segundos (1ns=10-9 segundos); c) (1,0 ponto). O que faz este programa, do ponto de vsta semântco. Dga o que ele gera como saída; d) (0,5 pontos). Se este programa possu subrotna(s). Se sm, dga onde esta(s) se encontra(m), defnndo o ntervalo de lnhas que ela(s) ocupa(m). 1..text 2..globl man 3. man: la $s0,vt 4. xor $s1,$s1,$s1 5. la $t2,n 6. lw $t2,0($t2) 7. l: lw $t3,0($s0) 8. and $t3,$t3,1 9. beq $t3,$zero,ep 10. v: addu $s0,$s0,4 11. addu $t2,$t2,-1 12. beq $t2,$zero,fm 13. j l 14. ep: addu $s1,$s1,1 15. j v 16. fm: la $t1,np 17. sw $s1,0($t1) 18. l $v0,10 19. syscall 20..data 21. np:.word 0 22. vt:.word 345 622 80 1040 57 145 83 74 9860 610 245 925 23. n:.word 12

Comparador Memóra de Instruções RALU=d_Address ALU Memóra de Dados ads _nt 11111 D_H D_ Gabarto 1. [3,5 pontos]. Consdere o processador multcclo abaxo (é o mesmo vsto em aula): a) [1,5 pontos]. Marcar sobre o desenho todos os camnhos que contém nformações útes à execução da nstrução SW, Offset() em algum cclo de relógo durante a execução (nos multplexadores, ndcar de que entrada a saída do multplexador vem). b) [2 pontos]. Use a tabela abaxo do desenho para explcar sucntamente o que ocorre em cada cclo de relógo para as duas nstruções especfcadas na segunda e tercera colunas da tabela. A cada cclo, dzer que regstrador(es) é(são) escrto(s), e com qual conteúdo (semântca do valor), e a operação que a ULA executa, no cclo relevante. Se algum cclo não for usado em alguma das duas nstruções, dexe-o em branco. Máquna de Estados wreg wpc rw whlo walu cebw M1 dtpc I/ salta_n PC wpc Decodfcação npc=_out= +4 nc_pc [25:21] [20:16] [15:11] M4 [20:16] _IN=_OUT end_dv M3 [20:16] AdRP1 add AdWP DataWP Banco de Regstradores AdRP2 end_mul wreg RESULT RIN M2 R1 DataRP1 DataRP2 R2 npc DIV MULT M6 op1 M7 op2 quocente resto produto(63 down to ) M11 produto(31 downto 0) whlo H M10 H whlo outalu RALU walu M9 ce rw bw x 000000 & data [7:0] data M8 nstructon [15:0] EXT_SINAL << 2 M5 cte_m salta_n = salta = salta_out r w ce [25:0] 0000 & [25:0] & 00 [15:0] EXT_ZERO Cclo de Relógo 1º 2º 3º Instrução: SW, Offset() Instrução: JALR O conteúdo do regstrador PC é usado para buscar o códgo objeto da nstrução SW,Offset() da Memóra de Instruções, que é carregado no regstrador. O valor do PC ncrementado de 4 é carregado no regstrador. Snal atvado. Instrução é decodfcada no BC, que gera snas de controle p/ sua execução a cada cclo. Neste, faz com que seja carregado com o valor do regstrador base, seja carregado com o deslocamento (offset) estenddo para bts e seja carregado com dado a ser escrto na memóra. A ALU produz o endereço de escrta, somando base e offset, o que é então carregado em RALU. Snal atvo: walu. Instrução é decodfcada no BC, que gera snas de controle p/ sua execução a cada cclo. Neste, faz com que receba o endereço para onde saltar. A ALU produz o endereço de salto, smplesmente carregando sua entrada op1 em RALU. Snal atvo: walu. 4º Conteúdo de RALU endereça a memóra de dados, snas ce/rw/bw comandam a escrta de 4 bytes a partr deste endereço com os conteúdos de, conectados à entrada da memóra pelos buffers trstate controlados por rw e ce. Em paralelo, o valor do é copado para o PC. Snal atvo: wpc. Conteúdo de RALU passa para RESULT e daí para a entrada do PC e lá é carregado (saltando). Em paralelo, o banco de regstradores é escrto no regstrador $ra ($31 ou 11111) com o valor de. Snas atvos: wreg e wpc. 5º - -

Solução: a) O desenho acma fo anotado com os camnhos usados pela nstrução. Note que foram salentados todos os snas de controle efetvamente relevantes para a nstrução. O Item b) detalha o processo que ocorre, cclo de relógo a cclo de relógo. b) Ver conteúdo da tabela acma para as duas nstruções. Observar que houve uma falha na especfcação deste tem, pos a nstrução JALR Rótulo devera de fato ser JALR, pos seu operando é um regstrador e não um endereço de nstrução (como ocorre nas nstruções JAL e J). Isto será consderado durante a correção, de forma a não prejudcar os alunos de nenhuma forma. 2. [3,0 pontos]. Consdere a versão smplfcada da ULA (ou ALU) do processador MIPS monocclo vsto em aula, cujo códgo VHDL é mostrado abaxo 1. archtecture alu of alu s 2. begn 3. outalu <= 4. op1 - op2 when op_alu=subu else 5. op1 and op2 when op_alu=aand else 6. op1 or op2 when op_alu=oor or op_alu=ori else 7. op1 xor op2 when op_alu=xxor else 8. op1 nor op2 when op_alu=nnor else 9. op1 + op2; 10. end alu; Desenhe um hardware correto que sera gerado por uma ferramenta de síntese ao processar esta lnha, assumndo o segunte: op_alu é conectado ao snal uns., um snal que codfca com o mínmo número de bts possível os símbolos assocados ao nome de cada nstrução do processador e o símbolo nvald_nstructon. A codfcação parte do menor valor possível, e segue em ordem crescente para os símbolos ordenados conforme aparece na declaração do tpo nst_type (ou seja, ADDU, SUBU, AAND, OOR, XXOR, NNOR, LW, SW, ORI, nvald_nstructon). Não é necessáro detalhar os operadores gerados pelas expressões op1 op2, op1 and op2, etc., nem a mplementação do hardware que toma a saída destes operadores e gera o snal outalu. Estes podem ser apenas caxas com entradas, saídas e texto dzendo o que tem dentro das caxas. Contudo, quer-se que a lógca de controle que escolhe o que va para outalu seja detalhada no nível de portas lógcas. Solução: A ALU executa a cada nstante uma de 6 operações bnáras (ou seja, de dos operandos) dstntas sobre valores de bts (veja a declaração de op1 e de op2). go sua mplementação consste em um multplexador que recebe 6 vetores de bts (canddatos a passar para sua saída outalu) e produz o vetor de bts outalu. A lógca de controle é o que se quer que seja detalhado no nível de portas lógcas. Para tanto, usando o esquema de codfcação proposto, cada nstrução será codfcada em 4 bts (ADDU 0000, SUBU 0001,..., nvald_nstructon 1001). Por outro lado, o multplexador deve ser controlado por um vetor de no mínmo 3 bts (para gerar as 6 possbldades dstntas de seleção de entrada). Ordenando as entradas do multplexador de acordo com sua posção no texto VHDL, pode-se assocar as entradas do mux assm: 0(000) SUBU, 1(001) AND, 2(010) OR/ORI, 3(011) XOR, 4(100) NOR. 5(101) demas nstruções e nvald_nstructon. A partr destas codfcações pode-se gerar o hardware completo. O hardware consste em três funções Booleanas de 4 varáves, assm defndas: Cód. nstrução uns.(3) uns.(2) uns.(1) uns.(0) mux(2) mux(1) mux(0) Cód. operação ADDU 0 0 0 0 1 0 1 + SUBU 0 0 0 1 0 0 0 - AND 0 0 1 0 0 0 1 and OR 0 0 1 1 0 1 0 or XOR 0 1 0 0 0 1 1 xor NOR 0 1 0 1 1 0 0 nor LW 0 1 1 0 1 0 1 + SW 0 1 1 1 1 0 1 + ORI 1 0 0 0 0 1 0 or Invald_nstructon 1 0 0 1 - - - - 1 0 1 0 - - - - 1 0 1 1 - - - - 1 1 0 0 - - - - 1 1 0 1 - - - - 1 1 1 0 - - - - 1 1 1 1 - - - De posse desta tabela verdade, usa-se qualquer método adequado de mplementação das funções. Veja por exemplo a aplcação web dsponível em http://www.x8.com/. O resultado é (. representa função and, + representa função or e ~ representa função not):

mux(2) = uns.(2).uns.(0) + uns.(2).uns.(1) + (~uns.(3)).(~uns.(2)).(~uns.(1)).(~uns.(0)) mux(1) = (~uns.(2)).uns.(1).uns.(0) + uns.(2).(~uns.(1)).(~uns.(0)) mux(0) = (~uns.(3)).(~uns.(0)) + uns.(2).uns.(1) O desenho abaxo lustra a estrutura completa da ALU uns.(3) uns.(2) uns.(1) uns.(0) mux(2) mux(1) mux(0) 3 mux(2 downto 0) - 0 and 1 or xor 2 3 outalu nor 4 + 5 op1 op2

3. [3,5 pontos]. Dada uma frequênca de operação de 400MHz para o processador MIPS monocclo, assuma que a organzação orgnal fo alterada para dar suporte a todas as nstruções do programa abaxo, mantendo a característca monocclo. Com estes pressupostos, calcule e dga: a) (1,5 pontos). O número de cclos de relógo que leva p/ executar o programa, com a área de dados fornecda; b) (0,5 ponto). O tempo de execução do programa em segundos (1ns=10-9 segundos); c) (1,0 ponto). O que faz este programa, do ponto de vsta semântco. Dga o que ele gera como saída; d) (0,5 pontos). Se este programa possu subrotna(s). Se sm, dga onde esta(s) se encontra(m), defnndo o ntervalo de lnhas que ela(s) ocupa(m). 1..text # 2..globl man # Cclos 3. man: la $s0,vt # (2) $s0 recebe pontero para níco do vetor vt 4. xor $s1,$s1,$s1 # (1) zera $sa, o contador de pares 5. la $t2,n # (2) toma endereço do número de elementos de vt 6. lw $t2,0($t2) # (1) $t2 fca com tamanho de vt ncalmente 7. l: lw $t3,0($s0) # (1) $t3 recebe elemento do vetor 8. and $t3,$t3,1 # (1) $t3 1 se elemento do vetor é ímpar, 0 se par 9. beq $t3,$zero,ep # (1) salta para ep se achou par, senão segue 10. v: addu $s0,$s0,4 # (1) ncrementa pontero para próxmo elemento 11. addu $t2,$t2,-1 # (1) decrementa contador de elementos a processar 12. beq $t2,$zero,fm# (1) salta para o fm se acabou 13. j l # (1) senão, volta para processar novo elemento 14. ep: addu $s1,$s1,1 # (1) chega aqu qdo elemento é par, ncrementa contador 15. j v # (1) depos volta para atualzar pontero, contador, teste 16. fm: la $t1,np # (2) chega aqu ao fm do processamento. Pega end var np 17. sw $s1,0($t1) # (1) escreve valor do contador de pares em np 18. l $v0,10 # (1) e sa fora do programa 19. syscall # (1) com syscall 10 20..data 21. np:.word 0 22. vt:.word 345 622 80 1040 57 145 83 74 9860 610 245 925 23. n:.word 12 Solução: a) O programa possu um cclo apenas, que executa uma vez para cada elemento do vetor vt, ou seja, 12 vezes. O laço ocupa as lnhas 7-13, mas executa opconalmente as lnhas 14-15, quando acha um elemento par de vt. As nstruções dos trechos das lnhas 3-6 e 16-19 são executadas exatamente uma vez, gastando 6+5=11 cclos. vt possu 6 elementos pares e 6 elementos ímpares. Assm, a execução do laço toma 6*9=54 cclos (para pares) + 6*7-1=41 cclos (para ímpares). O -1 ao fnal da expressão para ímpares ocorre porque o êxto no teste do beq da lnha 12 evta executar a lnha 13 apenas. Assm, o número de cclos total para executar o programa é 11+54+41=106 cclos. b) Como f=400mhz, o período do relógo é T=(1/(400*10 6 ))s ou 2,5x10-9 s. Para executar o programa leva-se então 106*2,5x10-9 s=2,65x10-7 s. c) O programa computa quantos elementos pares o vetor vt possu e escreve este número na varável np em memóra. d) O programa não possu subrotnas (não usa a nstrução jal seguda de jr $ra).