EXAMEN FINAL D’IC CURS 2005-2006 Q2 19 de juny de 2006 • Duració de l’examen: 3 hores. • Els problemes 1 i 3 s’han de resoldre en el full de repostes que s’us dóna. • El problema 2 s’ha de resoldre en FULLS SEPARATS. • No es pot fer servir calculadora, ni mòbil ni apunts. • Per contestar es pot fer servir l’idioma castellà o català indistintament. • La solució de l’examen sortirà publicada al “Racó” demà a la tarda. • Les notes es publicaran el 28 de juny. • La revisió es realitzarà el 29 de juny a les 11:00h a la sala A5-204, i les notes definitives es publicaran l’endemà. Problema 1 (3 punts) CODI EXAMEN: XXXXX Respon, al full de respostes, indicant quina és la resposta correcta a les següents preguntes de tipus test. Tingues en compte que sempre hi ha una única resposta correcta a cada pregunta. NOTA: les respostes incorrectes resten un terç de la puntuació d’una resposta correcta. 1.1) (Objetivo 3.13) Indica cuál de las siguientes ROM implementa el circuito combinacional de la figura. e0 e1 e2 0 1 2 a) b) c) d) ROM ROM ROM ROM 0 1 2 3 4 5 6 7 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 1 s1 s0 e0 e1 e2 0 1 2 0 1 2 3 4 5 6 7 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 s1 s0 e0 e1 e2 0 1 2 0 1 2 3 4 5 6 7 1 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 s1 s0 e0 e1 e2 0 1 2 0 1 2 3 4 5 6 7 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 s1 s0 1.2) (Objetivo 8.2) Indica cuál de las siguientes respuestas describe correctamente la modificación de los registros o posiciones de memoria después de haber ejecutado la siguiente secuencia de instrucciones del computador SISP-I-1. InstrMem[0x0FBD] MOVI R1, 8 . CMPLT R1, R3, R1 . BZ R1, 2 . XOR R2, R2, R2 Supón que el estado inicial del computador antes de ejecutar la primera instrucción es el siguiente: • La posición i de la memoria de datos contiene el valor i, DataMem[i]=i, para 0 ≤ i ≤ 216–1. • • a) b) c) d) El contenido del registro general Ri vale i para 0 ≤ i ≤ 7. El contenido del registro PC vale 0x0FBD. PC=0x0FC1, PC=0x0FC1, PC=0x0FC0, PC=0x0FC1, R1=1, R1=1, R1=1, R1=0, R2=2 R2=0 R2=0 R2=0 1.3) (Objetivo 4.10) Se dispone del siguiente esquema lógico de un dispositivo secuencial implementado mediante un biestable por estado. Se desconoce su funcionamiento, por lo que se desea obtener su grafo de estados. Si los biestables se inicializan todos a 0 excepto el de más a la derecha que se inicializa a 1, responde cuál de los siguientes grafos corresponde al esquema anterior. 1 x Ei S1 S0 1 1 0 1 0 E0 E1 E0 E1 00 01 11 00 0 a) E3 11 b) 0 0 E2 0 E3 10 1 E2 10 1 0 0 01 1 1 0 0 0 1 0 1 E0 E1 E0 E1 00 01 11 00 1 c) E3 11 0 1 E2 1 d) 1 E3 10 10 0 0 1 E2 1 01 0 1.4) (Objetivo 5.12) Se ha diseñado un procesador de propósito específico que está formado por las unidades de control y de proceso que se muestran a continuación. El tiempo de propagación de los dispositivos es: TROM=200 ut, TBIESTABLE = TREG = 100 ut, TMUX = 50 ut, TZ = 100 ut, TSRL-1 = 0 ut. Supondremos que: • • las señales entran al procesador provenientes de un registro/biestable y la salida del procesador se conecta directamente a un biestable. La ROM implementa un grafo de Moore. ¿Cuál es el tiempo de ciclo mínimo que puede tener la señal de reloj (Clk) para que el procesador funcione correctamente? a) b) c) d) 350 ut 300 ut 150 ut 450 ut 1.5) (Objetivos 6.4 y 2.5) Dados los vectores de 8 bits X e Y se obtiene un vector de 8 bits como salida de cada uno de los siguientes dispositivos: • Restador binario, SUB(X,Y). • Desplazador lógico, SHL(X,Y). Como trabajamos con 8 bits, considerad que los 4 bits de menor peso de Y, interpretados en complemento a 2, indican el exponente de la potencia de 2 por la que se multiplica el valor representado por X. Indica cuál de las siguientes afirmaciones es cierta. a) Para X = 10110110 e Y = 00111011, SUB(X,Y) representa el resultado correcto de la resta interpretando los operandos y el resultado como números enteros en complemento a 2. b) Para X = 01011001 e Y = 10001110, SUB(X,Y) representa el resultado correcto de la resta interpretando los operandos y el resultado como números enteros en complemento a 2. c) Para X = 10101010 e Y = 00001010, SHL(X,Y) representa el resultado correcto de la multiplicación por la potencia de 2 que indica Y, interpretando el operando X y el resultado como números naturales en binario. d) Para X = 10101010 e Y = 00001111, SHL(X,Y) no representa el resultado correcto de la multiplicación por la potencia de 2 que indica Y, interpretando el operando X y el resultado como números enteros en complemento a 2. 1.6) (Objectiu 5.8.2) Indica quina és la implementació interna correcta d’un registre de n bits amb senyal de càrrega com el de la figura: a) b) c) Full de respostes del Problema 1 d) CODI: XXXXX NOM: .................................................................................................................... DNI:.......................... Indica la resposta correcta a cadascuna de les preguntes del problema 1, especificant la lletra (a, b, c o d) corresponent, a l’espai indicat pels punts suspensius: La resposta correcta a la pregunta 1.1 és ........ La resposta correcta a la pregunta 1.2 és ........ La resposta correcta a la pregunta 1.3 és ........ La resposta correcta a la pregunta 1.4 és ........ La resposta correcta a la pregunta 1.5 és ........ La resposta correcta a la pregunta 1.6 és ........ Problema 2 (3,5 punts) Es vol dissenyar un multiplicador de nombres naturals de n bits. Ens proporcionen la següent Unitat de Procés, idèntica a la que es va fer servir a la pràctica 3. X IniUP D(0) Y SL-1 SRL-1 1 0 MUX 1 0 MUX D(j+1) REG REG D(j) X·y B(j) yj b0 Clk B(j)<0> M 0 W(0) ADD 1 0 MUX W(j+1) REG W(j) W El bloc X·y (Mulbit) fa Ands en paral·lel dels n bits del bus D(j) amb el bit yj, el bloc “SL-1” genera els n bits de menys pes del resultat de desplaçar una posició cap a l’esquerra (multiplicació per 2), el bloc “SRL-1” desplaça una posició cap a la dreta (divisió per 2) i el bloc 0 dóna un zero codificat en binari amb els n bits que tenen tots els busos de dades. Emprarem el següent algoritme artimètic per a realitzar la multiplicació: D (0 ) = X B (0 ) = Y W (0 ) = 0,0,...,0 per a j = 0 fins n-1 fer M = MULBIT ( D ( j ), B ( j ) < 0 >) W ( j + 1) = ADD (W ( j ), M ) D ( j + 1) = SL - 1( D ( j )) B ( j + 1) = SRL - 1( B ( j )) fi_per_a W = W (n) El funcionament del multiplicador com a caixa negra ha de ser el següent: • Al cicle en què el senyal IniMul val 1, les dades dels busos d’entrada X i Y són vàlids i s’han d’emmagatzemar per a poder iniciar la seva multiplicació. • Les dades només estan un cicle a l’entrada, el cicle en què IniMul val 1. • El multiplicador indicarà que té el resultat correcte al bus de sortida, posant a 1 durant un cicle el senyal de control FinMul. • Només està garantida la presència de la dada correcta al bus de sortida del multiplicador durant aquell cicle, pel què el sistema exterior ha d’estar esperant aquest cicle, per a no perdre el resultat. • Si durant la multiplicació d’un parell de nombres (després del cicle en què IniMul val 1 i abans de que FinMul valgui 1), arriba per l’entrada IniMul un 1, el multiplicador farà cas omís d’aquesta petició i continuarà amb el càlcul que ja estava realitzant. • Al cicle en què FinMul val 1, ja pot començar una nova multiplicació, si IniMul val 1 en aquell mateix cicle. Es demana: a) (Objectiu 5.2) Dibuixa l’esquema de connexió Unitat de control - Unitat de procés. UC UP b) (Objectiu 5.10) Dibuixa el graf d’estats de la Unitat de Control, si les dades a multiplicar estan codificades en binari amb 4 bits. Es vol ara que s’acabi la multiplicació tan aviat com estigui disponible el resultat. S’ha de tenir en compte que si els k bits de més pes de la dada Y valen 0, no cal fer les k darreres iteracions de l’algorisme, perquè no modificaran el resultat ja obtingut. c) (Objectiu 5.10) Dibuixa els canvis que cal fer a la Unitat de Procés que es proporciona. Dibuixa també el graf d’estats de la nova Unitat de Control. El disseny inicial del multiplicador de 4 bits pot proporcionar resultats incorrectes, quan el resultat no és representable amb 4 bits. d) (Objectiu 2.5.5) Quants bits ha de tenir el bus de sortida W per a que el resultat sigui sempre representable? e) (Objectiu 5.10) Dibuixa els canvis que cal fer a la Unitat de Procés que es proporciona, si es vol que el resultat sempre sigui representable i les entrades estan codificades amb 4 bits. No oblidis indicar el tamany de tots els busos del circuit. Problema 3 (3,5 puntos) Pregunta a): Se ha creado la tabla de la hoja de respuestas de la pregunta 3 a) para indicar el contenido de la ROM que implementa parte de la lógica de control del SISP-I-1 según el circuito “Unidad de Control SISP-I-1 con ROM” del apéndice. Completad con los bits correctos las filas y las columnas sombreadas en la tabla de la hoja de respuestas. Las 3 filas sombreadas hacen referencia al contenido de la ROM de las direcciones 16 a 19 (instrucción ST), 27 (instrucción BNZ con z = 1) y 28 y 29 (instrucción IN). Las 2 columnas sombreadas son las de las señales WrD y Mx@A. (Objectivo 9.1) Pregunta b): (Objectivo 9.5) Se define una extensión del lenguaje máquina SISA-I añadiéndole a este dos nuevas instrucciones, la MOVR (copiar el contenido de un registro en otro registro) y la BR (salto incondicional relativo al PC). El formato binario, la semántica y el formato en ensamblador de las dos nuevas instrucciones es el siguiente (los bits marcados con ? tenéis que definirlos vosotros): MOVR: Binario: Ensamblador: Semántica: 1???dddaaa?????? MOVR Rd, Ra Rd Ra BR: Binario: Ensamblador: Semántica: 1??????????????? BR Ns PC PC + SEXT(N) (N es el campo de 8 bits de la instrucción que tenéis que denotar como nnnnnnnn. Ns que aparece en la sentencia ensamblador es el entero representado por el vector N en complemento a dos). Las dos nuevas instrucciones se deben añadir a la implementación actual del procesador SISP-I-1 que tiene una pequeña ROM en la lógica de control (Figuras del apéndice). Las dos instrucciones se pueden añadir cambiando solamente el contenido de algunas de las direcciones de la pequeña ROM de la lógica de control y sin necesidad de efectuar ningún otro cambio en el computador. Para poder hacer esto se os pide: b1) Indica el formato binario que debe tener cada una de las dos nuevas instrucciones. Dad el valor (0, 1, d, a, n , x) a cada uno de los bits marcados con ? en el formato binario de la definición de las instrucciones que acabamos de hacer. Usa para ello la hoja de respuestas. (Objectivo 9.5.1) b2) Completa las dos filas de la tabla de la hoja de respuestas de la pregunta 3 b2) que indican el contenido de la ROM, en las direcciones que tú indiques, para implementar las dos nuevas instrucciones. Indica cuando sea necesario con x los bits de la dirección de la ROM para que cada fila haga referencia a las direcciones de la ROM implicadas. Indica con x los valores de los bits del contenido de la ROM que pueden valer indistintamente 0 o 1. (Objectivo 9.5.3) NOM: .................................................................................................................... DNI:.......................... Full de respostes del Problema 3 Nota aclaratoria: CO = INS(15:12) 8/6-SE Mx@B Mx@A Rb/I In/Ld InLd/Alu z WrIO e 0 TknBr 1 Not used Not used CO 2 WrMem Contenido de la ROM Dirección ROM 3 e = INS(8) WrD Pregunta a) CODI: XXXXX AND, OR, XOR, NOT ADD, SUB, SHA, SHL CMPLT, CMPLE, -, CMPEQ CMPLTU, CMPLEU, -, ADDI LD ST 0:3 0 0 0 0 x x x x 4:7 0 0 0 1 x x x x 8:1 0 0 1 0 x x x x 12:15 0 0 1 1 x x x x 16:19 0 1 0 0 x x x x 20:21 0 1 0 1 0 x x x 22:23 0 1 0 1 1 x x x 24 0 1 1 0 0 0 x x 25 0 1 1 0 0 1 x x 26 0 1 1 0 1 0 x x 27 0 1 1 0 1 1 x x 28:29 0 1 1 1 0 x x x 30:31 0 1 1 1 1 x x x BNZ caso z = 1 IN OUT 32:63 x x x x x x x Not Used 1 MOVI MOVHI BZ caso z = 0 BZ caso z = 1 BNZ caso z = 0 Pregunta b1) Binario instrucción MOVR: 1 Binario instrucción BR: 1 Pregunta b2) 1 1 ... ... 8/6-SE Mx@B Mx@A Rb/I In/Ld InLd/Alu 0 WrD 1 WrIO 2 ... WrMem 3 z Not used TknBr e CO Contenido de la ROM Not used Dirección ROM x x MOVR x x BR Formato Instrucciones SISA-I 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0000 Rd Ra Func Rb Aritméticas y Lógicas: AND, OR, XOR, NOT, ADD, SUB, SHA, SHL 0001 Rd Ra Comp Rb Comparación: CMPLT, CMPLE, –, CMPEQ, CMPLTU, CMPLEU, –, – 0010 Rd Ra Inmed6 0011 Rd Ra Offset Load: LD 0100 Rb Ra Offset Store: ST 0101 Rd 0 Inmed8 MOVI 0101 Rd 1 Inmed8 MOVHI 0110 Rb 0 OffsetPC Ruptura Secuencia: BZ (Branch on Zero) 0110 Rb 1 OffsetPC Ruptura Secuencia: BNZ (Branch on Not Zero) 0111 Rd 0 Port Entrada: IN 0111 Rb 1 Port Entrada: OUT 1xxx Suma con inmediato: ADDI x x x x x x x x x x x x Sin Usar Func 000 001 010 011 100 101 110 111 Comp AND OR XOR NOT ADD SUB SHA SHL 000 001 010 011 100 101 110 111 CMPLT CMPLE --CMPEQ CMPLTU CMPLEU ----- Condición menor que menor o igual que igual que menor que (unsigned) menor o igual que (unsigned) ALU SISP-I-1 Y e X X Y MVI ADD X Y F CMP X Y AL F 3 F z b0 b1 b2 0 1 2 7 6 5 4 3 2 1 0 MUX z OP 3 W +1 OP e TknBr WrIO WrM In/Ld InLd/Alu WrD @D @A F Rb/I @B IMMED @IO INSTRUCTION MEMORY PC+ REG 1 0 MUX Clk PC ADDR-INS TknBr ADD OP e TknBr WrIO WrMem In/Ld InLd/Alu WrD @D @A F Rb/I @B IMMED @IO 8-SE z INS RD-INS Instruction In/Ld Clk 1 0 MUX D WrD RD-DATA @D @D WrM !Clk !Clk WrIO WrD INPUT/ OUTPUT 1 0 MUX InLd/Alu RD-IO DataRdM z DataRdIO SISP-I-1 CONTROL LOGIC Unidad de proceso SISP-I-1 REGFILE @A @A @B @B A Wr-Io B A DATA MEMORY Wr-Data B WR-IO WR-DATA IMMED Rb/I ADDR-IO @IO z 1 0 MUX X Y z e OP ALU ADDR-DATA F ALUout F e OP Unidad de Control SISP-I-1 con ROM 6-8-SE INS b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 IMMED @IO 8 b0 b1 b2 1 0 3MUX b0 b1 b2 b0 b1 b2 1 0 3MUX z b0 b1 b2 b0 b1 b2 3 @B 3 F 3 @A 3 @D 3 OP e In0 In1 In2 In3 In4 In5 Out0 Out1 Out2 Out3 Out4 Out5 Out6 Out7 Out8 Out9 Out10 Out11 PROM-SISP-I-1-CONTROL 8/6-SE Mx@B Mx@A Rb/I In/Ld InLd/Alu WrD WrIO WrMem TknBr