You are on page 1of 6
(C3 2016 - Discusin 10 — Nombre, L's Cv carnet, SOLUCLON Disefio del CPU ‘Abajo se muestra un “datapath” basico en un formato simple como los mencionados en: NOX tent PC registers datatn {mm gen 1. Instruction 2. Decode/ 5. Reg. Fetch Register > Execute 4. Memory” Write Read xd, rs, yxtsoncables de 5 bits c/u, imm es un cable de 16 bits. Todas las otras conexiones son de 32 bits. Lenguaje de Transferencia de Registros (RTL) + Utilice para describir el flujo de datos: dest —sre * Todas las lineas se ejecutan en paralelo: becaeb + En MIPS, utilice R[x] para el registro x, Mem|y] para la memoria en y. Similar ala sintaxis de un arreglo. Lenguaje de Transferencia de Registros (RTL) Para los siguientes ejercicios, asuma que el ALU puede tener un output del simbolo de “igual”, que es mayor a uno, cuando sus dos inputs son iguales. 1. Btiquete lo cables del diagrama de arriba que atin no tienen etiqueta describiendo qué datos van por cada linea. Por ejemplo, una de las salidas del bloque de registros puede ser R[rs} 2. Afiada los controles de sefial y los elementos faltantes(ej. Multiplexores) al jiagrama de la pagina siguiente para que el “datapath” pueda ejecutar las siguientes instrucciones: add, lui, sw, bne, 3 c 2 3S 2 oD = Meme fegDst es 3. Complete los valores del control de sefiales de la pregunta dos (Escriba los nombres Un diseao de su control de sefial en la segunda fila): problematico asssssseusatat de tts Instrs. | Sefiales de Control nPC_sel | RegDst_| RegWr | ALUSre | ALUctr_[ MemtoReg | MemWr | ExtOp aad [pei VT te ad Alp x | — dui_| PCat 1 Vv fom ol AWD Xx [type U sw | feat |e x inm | add — Flys bne (C4 /calto) x rea | — oot Xl bype B i salto x — =o = x — 4. Suponga que quiere afiadir una nueva instruccién: beqr. Esta instruccién sera utilizada de la siguiente manera: beqr $x, $y, $z saltaala direccién en $2 si $x y $y son iguales, si no es asi, contintia a cambios necesarios para hacer que el “datapath” de arriba pueda realizar esta instruccién. — revtilizar couninos —Conexibn de RD hacia el dea de FC porn vsar la diveccion roc veg tile la préxima instruccién, Muestre todos los ‘(ns yor wombre: Lwig Cv came, SOLOCLEP/ Hoja de Trabajo No. 7 Pipelining Hazards ~ Estructurales: Estos se producen debido a la competencia por el mismo recurso. © Lectura del registro de archivos y escribir de nuevo ‘© Recuperacién de instrucciones y lectura de datos - De Control: Se producen debido a las instrucciones no secuenciales (jump y branches). Estos no pueden ser resueltos por completo, por lo que estamos obligados a introducir un branch delay slot (stalls) o la prediccién de saltos. «De datos: Se producen debido a las dependencias de datos (instruccién que requiere resultados de Instrucciones anteriores) Estos se resuelven en su mayoria por forwarding, pero 1w todavia requiere ‘una burbuja (stall) 1. Considere un pipeline de instrucciones con § etapas y sin ninguna prediccién de saltos: 1. Instruction Fetch (IF), 2. Instruction Decode (ID), 3. Operand Fetch (OF), 4, Execute (EX) y 5. Operand Write (OW). Los delay de cada etapa (t_cycle) para IF, ID, OF, EXy OW son 5 ns, 7s, 10 ns, ns y 6 ns respectivamente. Hay registros de almacenamiento intermedio después de cada etapa y el delay de cada registro es de 1 nseg. Un programa que consta de 12 instrucclones 1,12, .., 112 se ejecuta en el procesador. La 4, instruccidn 14 es la Gnica instruccién de salto y su objetivo es 19. Sise toma el salto durante la eet eee 1/ns =[Fo.% Me iyi let, Nx cuateseltemponecesaro para com ee as primes in lade cdiciowal ¢ eCual es la frecuencia minima del reloj? © éCudl es el tiempo necesario para completar el programa?—_____ 11 vs. GBM, KK, VIO WYI2) Escriba todos los célculos realizados para responder cada pregunta =1153 no 2. Su amigo le dice que su disefio del procesador es 10 veces mejor que el suyo, ya que tiene SO pipelines en comparacién a las 5 que usted tiene. gE! esta en lo correcto? éPor qué? Explique sus razones con suficiente detalle y en base a los conocimientos vistos en clase. Wo. Eakre mis foses, habnin mas delays enkee ‘ las fases. (Recguesta goede vartac) 3. Identifique todas las dependencias de datos. Dibuje flechas desde las etapas donde los datos ‘estén disponibles, en direcci6n a donde se necesitan. Encierra en un circulo los registros Involucrados en las instrucciones. Asuma que no se esta haciendo forwarding, addi t1 100 Foo lw G&D 4ceop F add AS> t1B sw C3> ectep W lw tS 0(t6) Mow or tS CCOXET> AM W 4. Re-dibuje las flechas de la pregunta anterior asumiendo que el hardware provee forwarding. addi to 1 100 Fob " Ww t2 4(ta) FD Ww add t3 tl t2 Foo M sw t3 8(t®) F W . lw tS 0(t6) Foo Mow Evercicio 3 or tS t0 t3 F AM Ww 3 dala b 2 ciclos YS. ECuantos stalls tendriamos que agregar en el peline para resolver los hazards en el ejercicio 4? éCuantos para los riesgos del ejercicio 5? tiene forwarding. erciciot oop; dala load addi s@ sO 1 cio % addi t1 ad ‘ abi s0 30 1 es la cmica 1 stall lw t0 0(t1 0 . c add a0 tO al inch que so coincide én istros addi aQ a0 4 4 , bne +0 x0, Loop con lw 0 oe \, nt Causa nop deperclen cios jr ra CC3 Hoja de trabajo #8 — Direct Mapped Caches nombres: Luis Cu Carnet; SOLUCLOM seccién: En el siguiente diagrama, cada bloque representa 8 bits (1 byte) de datos. Nuestra memoria es byte-addressed, esto significa que existe una direccién por cada byte. Compare esto con word-addressed, que significa que existe una direccién por cada word. The Geometry of Caches ‘Main Cache Main Memory Number | Memory Offset Index 3]2]1]0 0 Number |3 [2 ]1]0 6 7/[6[5]4] | cpu 5 ai[io[a[e]| | cache} ° 1 4 15/14/13 [12 1 3 1918/17/16 z 2 23]22|21]20] |Taebits index bits /offset [Tota z = bits o [262524 32 3 apopsps| LCA] t | 2 3 ‘Iword=4 bytes=32bits Index bits=log,(Number of index rows) Offset bits=log,(Number of offsets columns) 1. Direct mapped caches 1. Cuantos bytes de datos puede almacenar nuestro cache? 9 cuantos words?_© 2. Llene en los “Tag bits, Index bits, Offset bits” con el correcto T:l:0 desglosando de acuerdo al diagrama. 3. Supongamos que tenemos 8192KiB de cache con un tamafio de bloque de 1288, cual es el tag, index, y offset de OxFEEDFOOD? J 4 5, ind re || FO 0D 11111110 _ {1101101 [11110000 _|op00 1101 Tog: Lt WO Index: [OLIoITIO gypffset: OOD 1101" 4. Complete la tabla a continuacién. Supongamos que tenemos una memoria write-through, por lo que el nimero de bits por fila incluye sélo los datos de cache, el tag, y el valid bit. Address size (bits) | Cache size | Blocksize | Tagbits | Indexbits | Offset bits |Bits perrow 16 4KiB 4B 4 io Z 3 7 2 axe | 168 17 i 4 i4b P| ke] bb} * i 4 145 64 2048KiB 128 g 43 14 1068 2. Cache hits and misses ‘Asuma que tenemos el siguiente cache. Clasifique cada uno de los siguientes accesos a memoria como un cache hit (H), cache miss (M), 0 cache miss con reemplazo (R). i Offset 1.0x00000008 MSS. sino Nie am GTePsya] aya} ayo Se ee L ipmeicler ee! 2 5.0x0000000D M14 oe 6.0x00000045 RE PLACE. ~~ : 7.0x00000004 PE PLACE eset || a [sta aan ee | 8,0x0000008 HIT : l l Comprobacién: De los 32 bits en cada direccién, écudles bits usamos para encontrar la fila del cache para a STITT TH 3. Analizar Cédigo de C tas ‘inex! offgck f#define NUM_INTS 8192 int AINUM_INTS]; /** A lives at 0x100000 */ inti, total O;i< NUM_INTS; {+= 128) {Ai} =1,}/** Line 1 */ 0:1 < NUM_INTS; {+= 128) {total += Alil;) /** Line 2 */ Supongamos que usted tiene una computadora byte-adressed con un espacio total de direcciones de 1Mit Que cuenta con un CPU de 16KiB de cache y con tamafio de block de 1KiB. 1. éCuantos bits conforman una direccién de memoria en este equipo? 20 2. eDesglose cuantos bits se necesitan para representar el T::0? Go _tagbits _4_ index bits _1C)_ offset bits 9 3. Calcular el cache hit para la linea marcada como tine 1; 20 % 9 4. Caleular el cache hit para la linea marcada como Line 2: 50 % 4. Average Memory Access Time EI AMAT es el tiempo promedio (esperado) que toma para el acceso a memoria. Este puede ser calculado utilizando la siguiente formula: AMAT = hitTime * missRate + missP enalty Recuerde que el miss penalty es el tiempo adicional que toma para el acceso a memoria en el caso de un cache miss. Por lo tanto, un cache miss toma el hifTime + missP enaltyT ime. ‘Suponga que tiene un sistema de cache con las siguientes propiedades. Cusl es el AMAT? Hit time: 1 ciclo = {ade + (005 + 200 eels) Miss penalty: 200 ciclos icicles eeee

You might also like