Universidade Federal de Santa Catarina Curso de Pós-Graduação em Ciência da Computação INE 641400 – Arquitetura de Computadores Prof. José Luís Güntzel [email protected] – trimestre 2008/2 Prova de Dispensa (19/06/2008) Nome: _______________________________________________________ matrícula:____________ Importante: para esta prova, considerar os diagramas de blocos para os processadores MIPS monociclo, multiciclo e pipeline apresentados e discutidos na bibliografia básica da disciplina (PATTERSON, David A.; HENESSY, John L. Computer Organization and Design: the hardware/software interface. 3rd edition) e reproduzidos nas figuras 1, 2 e 3 da folha anexa. Estes processadores foram projetados para executar o conjunto de instruções mostrado na tabela 1 que também consta na mesma folha anexa. Apenas serão consideradas as respostas fornecidas nos espaços a elas destinados, nas próprias folhas dos enunciados das questões! Questão 1 (valor total: 2,0 pontos) a) Complete a tabela abaixo com os valores dos sinais de controle necessários para que o MIPS monociclo execute a instrução “beq $s1, $s2, desl” (1 ponto) RegDst EscReg DVI DvC ULAFonte ULAOp EscMem LerMem MemParaReg 01 b) Suponha que no momento da execução da instrução “beq $s1, $s2, desl” o conteúdo dos registradores $s1 e $s2 seja “+4575” e “+45”, respectivamente. Sabendo que nesta instrução a ULA é utilizada para comparar o conteúdo destes dois registradores por meio de uma subtração e sabendo também que na ULA do MIPS, assim como nas ULAs da maioria dos processadores atuais, a subtração é realizada por meio de uma adição, complete a tabela abaixo, a qual detalha o uso da ULA para a execução da instrução considerada. Escreva 4 bits por célula da tabela. (1 ponto) carries $s1 + C2($s2) Result. Nota: C2 significa “complemento de 2”. Questão 2 (valor total: 2,5 pontos) Considere que os tempos de operação (atrasos) dos componentes usados nos projetos do MIPS monociclo e do MIPS multiciclo sejam os seguintes: Operação/Componente Acesso à memória (escrita ou leitura) Qualquer operação na ULA ou adição com somador dedicado Acesso ao banco de registradores (escrita ou leitura) Cálculo dos sinais de controle (bloco de controle) Multiplexadores, controle da ULA, extensão de sinal, deslocador Tempo (atraso) 2 ns 1 ns 1 ns 0,5 ns 0 ns a) Complete a tabela a seguir e determine o período do relógio para o MIPS monociclo. (0,5 ponto) Parcelas do cálculo Classe de instrução Total (ns) Aritméticas e lógicas Load word Store word Branch (beq) Jump O ciclo (período) de relógio para o MIPS monociclo é (0,5 ponto) O ciclo (período) de relógio para o MIPS multiciclo é (0,5 ponto) b) Suponha que o “mix” de instruções do programa gcc seja o seguinte: Classe de Instrução tipo R (aritméticas e lógicas) lw (load word) sw (store word) beq (branch on equal) j (jump) Porcentagem 50% 20% 10% 20% desprezível (0%) Assumindo que o gcc possui I instruções, calcule o tempo de execução do gcc no MIPS monociclo e no MIPS multiciclo. Mostre os cálculos e o resultado final no espaço abaixo. (0,5 + 0,5 = 1 ponto) MIPS monociclo Tempo de execução = Cálculos e considerações: MIPS multiciclo Tempo de execução = Cálculos e considerações: Questão 3 (valor total: 3,0 pontos) Considere o seguinte trecho de programa, escrito em linguagem de montagem do processador MIPS: 1004 1008 1012 1016 1020 1024 1028 lw lw add lw add sub sw $10, 100 ($2) $11, 204 ($2) $10, $10, $11 $5, 404 ($1) $10, $10, $5 $6, $10, $4 $6, 100 ($2) R10 := Mem[R2 + 100] R11 := Mem[R2 + 204] R10 := R10 + R11 R5 := Mem[R1 + 404] R10 := R10 + R5 R6 := R10 – R4 Mem[R2 + 100] := R6 a) Considere uma versão do processador MIPS pipeline que dispõe das seguintes conexões para adiantamento (forwarding): EX/MEM.saída_ULA → entradas_ULA, MEM/ER.mux → entradas_ULA e MEM/ER.mux → Mem_dados (dado a ser escrito). Desenhe no espaço a seguir o diagrama de ciclos para o trecho de programa acima rodando nesta versão do processador MIPS. (2,0 pontos) ↓ Instr. Ciclos→ 1 2 3 4 5 6 7 b) Calcule o CPI para este trecho de programa. Mostre o cálculo e o resultado no espaço abaixo. (0,5 ponto) CPI = Cálculo: c) Considerando a execução deste trecho de programa no MIPS pipeline com recursos para realizar adiantamento, é possível reduzir o tempo de execução deste código alterando-se a ordem das instruções? Sim Não Caso tenha marcado “não”, use o espaço a seguir para justificar sua resposta. Caso tenha marcado “sim”, use o espaço a seguir para escrever a nova ordem das instruções e determinar o número de ciclos de relógio necessários para sua execução na versão considerada do MIPS pipeline. OBS: não é solicitado refazer o diagrama de ciclos! (valor: 0,5 ponto) Questão 4 (valor total: 2,5 pontos) Um processador RISC que endereça a memória a bytes possui comprimento de palavra de 32 bits (dados ou instruções). Este processador possui memória cache L1 com capacidade útil de 1Mbytes, mapeada diretamente, com blocos de 4 palavras, conforme ilustrado no desenho a seguir. Endereço (32 bits) Byte dentro da palavra acerto b val. a informação 2 tag = MUX 32 a) Calcule o número de entradas desta cache e mostre os cálculos no espaço a seguir. (1 ponto) No de entradas da cache = Cálculo: b) Calcule o valor do campo “a” do desenho anterior. Mostre este cálculo no espaço a seguir. (0,5 ponto) a= Cálculo: c) Calcule o número de bits de tag (campo “b” do desenho anterior). Mostre este cálculo no espaço a seguir. (1 ponto) b= Cálculo: