Arquitectura de Computadores. Tema 8. Diseño de un CPU de multiciclo

Documentos relacionados
Organización del Computador I Verano. Control Multiciclo. Basado en el capítulo 5 del libro de Patterson y Hennessy

Arquitectura de Computadores. Tema 9. Microprogramación

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

La Unidad de Control y el Camino de Datos

Microarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR

MICROPROCESADOR. Multiciclo

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Arquitectura de Computadores

Diseño Procesador Monociclo

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ELO311 Estructuras de Computadores Digitales. Procesador Monociclo

Procesador Segmentado

UNIDAD 4: El procesador: Camino de los datos y Control.

UNIDAD 5: Mejora del rendimiento con la segmentación.

Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Tema 16. Diseño de la ruta de datos y la unidad de control

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

SEGMENTACIÓN EN LA EJECUCIÓN DE INSTRUCCIONES

op rs rt inmediato 6 bits 5 bits 5 bits Tipo J: Salto incondicional op

Práctica 7 - Microarquitectura del CPU

Arquitectura e Ingeniería de Computadores

Práctica 4 - Microarquitectura del CPU

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Plataformas de soporte computacional: arquitecturas avanzadas,

INTRODUCCIÓN SET DE INSTRUCCIONES

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #5

Sección de procesamiento: El camino de datos

Tema 5. Segmentación: conceptos básicos

Tema 4: Diseño de un microprocesador

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES

Arquitectura Segmentada: Conceptos básicosb

El nivel ISA (II)! Conjunto de Instrucciones

3. SEGMENTACIÓN DEL CAUCE

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

ARQUITECTURA VON NEUMANN

Diseño del procesador MIPS R2000

Pipeline (Segmentación)

4.5 Microprogramación para simplificar el diseño del control

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tema 1: PROCESADORES SEGMENTADOS

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

5. Procesador: camino de datos y control

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Arquitectura de Computadoras

Arquitectura t de Computadores

Tema 4 (II) El procesador

Arquitectura de Computadores

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Carga de la instrucción / Decodificación y carga de registros (Figura 37) Instrucciones de salto condicional (Figura 40)

Aspectos avanzados de arquitectura de computadoras Jerarquía de Memoria II. Facultad de Ingeniería - Universidad de la República Curso 2017

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Terecer Certamen

Diseño de un Procesador. (Monociclo)

Organización de Computadoras. Algunas temas tomados en 2ª evaluación integradora

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Arquitectura de Computadores. Resumen para Certamen 2 Por Franco Zuccar

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadores II Clase #3

Procesador. Memoria. Ejemplo de un Procesador: MU0. Instrucciones. Direcciones. Registros. Datos. Instrucciones y datos SETI Tr.

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo

Procesador MIPS - Registros

Pipeline o Segmentación Encausada

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Procesadores segmentados. El DLX.

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Primer Semestre Laboratorio de Electrónica Universidad de San Carlos de Guatemala. Electrónica 5. Aux. Marie Chantelle Cruz.

Procesador Segmentado

Arquitectura del MIPS: Introducción

2. Números naturales: sistema de numeración y operaciones básicas

ARQUITECTURA DE COMPUTADORES CAPÍTULO 2. PROCESADORES SEGMENTADOS

Arquitectura de Computadores II Clase #16

Unidad I: Performance. Arquitectura de Computadoras Esteban Peláez Andrés Airabella Facundo Aguilera

Organización procesador MIPS

Introducción a la arquitectura de computadores

Organización n del Computador 1. Lógica Digital 2 Circuitos y memorias

TEMA VI DISEÑO DEL PROCESADOR

SEMINARIO DE EXTENSIÓN DE ISLD

Laboratorio de Arquitectura de Computadoras

ARQUITECTURA VON NEUMANN

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

TEMA 4. ARQUITECTURA IA-64

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

Capítulo 5 El procesador

Modelos Computacionales

Definición de prestaciones

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

ARQUITECTURA DE COMPUTADORES CAPÍTULO 2. PROCESADORES SEGMENTADOS

Transcripción:

Arquitectura de Computadores Tema 8 Diseño de un CPU de multiciclo Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

op 6 Instr<3:26> RegDst Recapitulando: procesador de ciclo único. busw Clk Main Control RegWr Rd imm6 Instr<:> Rs Rw Ra Rb -bit Registers 6 op RegDst Src : busb Extender Branch busa ExtOp Jump Clk 3 Src Instruction Fetch Unit ctr Data In Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 2 func Instr<:> 6 Clk Instruction<3:> Control <2:2> WrEn Rs <6:2> MemWr Adr Data ctr Rd <:> 3 <:> Imm6 MemtoReg

Recapitulando ejemplo simplificado 4 Add Instruction [3 26] Control RegDst Branch MemRead MemtoReg Op MemWrite Src RegWrite Shift left 2 Add result M u x PC Read address Instruction memory Instruction [3 ] Instruction [2 2] Instruction [2 6] Instruction [ ] M u x Read register Read Read data register 2 Registers Read Write data 2 register Write data M u x result Address Write data Data memory Read data M u x Instruction [ ] 6 Sign extend control Instruction [ ] Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 3

Recap: Implementación con PLA del Control Central op<>. op<> op<>.. op<>.. op<>.. op<>..... <> <> <> <> <> op<> R-type ori lw sw beq jump RegWrite Src RegDst MemtoReg MemWrite Branch Jump ExtOp op<2> op<> op<> Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 4

Recap: Panorama General del Control Simplificado Más simple que en nuestro ejemplo: sólo 4 instrucciones y 2 bits para AluOp Lógica combinacional simple (tablas de verdad) y realización con PLA Control local simplifica control central. 2 Bits centrales para distinguir los tipos de Inst. Inputs Op Op4 Op3 Op2 Op Op Op Op Op control block R-format Iw sw beq Outputs RegDst Src MemtoReg RegWrite MemRead MemWrite Branch Op F ( ) F3 F2 F F Operation2 Operation Operation O OpO Inst R define campo funct de I. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

Recap: Tiempos para el Peor Caso (LOAD por qué?) Clk PC Rs,, Rd, Op, Func ctr Old Value Clk-to-Q New Value Old Value Old Value Instruction Memoey Access Time New Value Delay through Control Logic New Value ExtOp Old Value New Value Src Old Value New Value MemtoReg Old Value New Value RegWr Old Value New Value busa busb Old Value Delay through Extender & Old Value Register Write Occurs Register File Access Time New Value New Value Delay Address Old Value New Value Data Access Time busw Old Value New Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 6

Recap: Implementación de Ciclo Unico Ej: Calcular duración ciclo despreciando todos los retardos excepto: memoria (2 ps), y sumadores ( ps), banco de reg. y Clk-to-Q ( ps) PCSrc 4 Add RegWrite Shift left 2 Add result M u x PC Read address Instruction [3 ] Instruction memory Instruction [2 2] Instruction [2 6] M u Instruction [ ] x RegDst Instruction [ ] Read register Read register 2 Write register Write data Read data Read data 2 Registers 6 Sign extend Src M u x control result MemWrite Address Write data Data memory MemRead Read data MemtoReg M u x Instruction [ ] Op Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 7

Recap: Analicemos como estamos Problemas del Ciclo Unico: No estamos compartiendo recursos (, sumadores). Derrochamos area de CPU. La duración del ciclo se realiza en función de la instrucción más lenta (Ld). Pero todas las otras instrucciones no necesitan tanto tiempo. Castigamos a todas por el problema de una. Y si tenemos una instrucción más compleja, pto flotante? PROBLEMAS DE PERFORMANCE!! Ventajas del Ciclo Unico: Apto para un desarrollo en Pipelining. Pero.. todo a su tiempo! Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 8

Propuesta de Solución: Camino de Datos Multiciclo Dividir las instrucciones en varios pasos modulares. Cualquier instrucción se forma combinando estos pasos. Cada paso se ejecuta en un ciclo T menor. permitir que las instrucciones empleen distinto número de ciclos T Cómo determino los módulos? Alternativa I que tengan similar duración. Alternativa II mediante una división funcional. Con qué alternativa me quedo? Alternativa I Tentación: una única etapa entre y Banco de Registros. Pero si tenemos que implementar una instrucción de punto flotante! Alternativa II menos eficiente (no todas las etapas iguales) pero el diseño funcional es lo que cuenta. Cuando se siguen los buenos principios de diseño siempre se gana. Uniciclo: tiene un mal principio: castiga a las buenas por las malas. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 9

Solucion Multiciclo Reutilizaremos unidades funcionales se usará para calcular direcciones y actualizar PC Permite una única unidad de memoria para Datos e Inst. Las señales de control no dependen solo de la Instrucción. ej., qué debe hacer la para una instrucción Substract? - La respuesta sería con otra pregunta: en qué ciclo T? Emplearemos una máquina de estado finito (MEF) para el control. Separemos las instrucciones en pasos, cada paso tomaría un T hay que balancear la cantidad de trabajo en cada paso que cada paso use solo una unidad funcional importante Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

Solución Multiciclo Al final de cada ciclo guardar valores para usarse en el ciclo siguiente introducir registros internos adicionales PC M u x Address Write data MemData Instruction [2 2] Instruction [2 6] Instruction [ ] Instruction register Instruction [ ] data register Instruction [ ] M u x M u x 6 Read register Read register 2 Registers Write register Write data Sign extend Read data Read data 2 Shift left 2 A B 4 M u x M u 2 x 3 result Out Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

Cinco Pasos de Ejecución Instruction Fetch Instruction Decode and Register Fetch (y dirección branch) Execution, Address Computation, or Branch Completion Access or R-type instruction completion Write-back step Las Instrucciones toman entre 3 a ciclos! Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 2

Paso : Instruction Fetch Usar PC para obtener instrucción y llevarla al IR. Incrementar PC en 4 y guardar el resultado de nuevo en PC. Se puede describir suscintamente con RTL "Register-Transfer Language" IR = [PC]; PC = PC + 4; Cuáles serían las señales de control? Cuál es la ventaja de incrementar el PC ahora? Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 3

Paso 2: Instruction Decode and Register Fetch Leer los registros rs y rt en caso de que los necesitemos luego. Calcular dirección de salto por si se tratare de un BRANCH. RTL: A = Reg[IR[2-2]]; B = Reg[IR[2-6]]; Out = PC + (sign-extend(ir[-]) << 2); No establecemos señales de control basadas en la Instrucción. (Estamos ocupados decodificándolas en la unidad de control) Estamos adelantando trabajo para ganar tiempo por las dudas Aprovechando que las unidades funcionales estaban libres. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 4

Paso 3 (dependiente de la Instrucción) realiza una de cuatro operaciones, según el tipo de instrucción Referencia a Memoria: Out = A + sign-extend(ir[-]); R-type: Out = A op B; Branch: if (A==B) PC = Out; FIN Jump PC = {PC[3:28]} concat IR[2:] concat ; FIN Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

Paso 4 (R-type or memory-access) Loads y Stores acceden a memoria. MDR = [Out]; o [Out] = B; Finalizan las instrucción tipo R: Reg[IR[-]] = Out; La escritura realmente ocurre al terminar el ciclo, en la transición. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 6

Paso (Write-back) Reg[IR[2-6]]= MDR; Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 7

En Síntesis: Nombre del Paso Instruction fetch Instruction decode/register fetch Acción para Instrucc Tipo R Acción para Instrucciones Acción para que acceden a Memoria BRANCH IR = [PC] PC = PC + 4 A = Reg [IR[2-2]] B = Reg [IR[2-6]] Out = PC + (sign-extend (IR[-]) << 2) Acción para JUMPS Execution, address Out = A op B Out = A + sign-extend if (A ==B) then PC = PC [3-28] II computation, branch/ (IR[-]) PC = Out (IR[2-]<<2) jump completion access or R-type Reg [IR[-]] = Load: MDR = [Out] completion Out or Store: [Out] = B read completion Load: Reg[IR[2-6]] = MDR Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 8

Escrituras en Memoria y Registros: Vs. Real Hasta aquí se había simplificado Memoria y Banco de Registros: La escritura ocurre en el flanco de reloj. Address, data, y write enable deben permanecer estables al menos el tiempo set-up antes del flanco de reloj. En la vida real: Ni el banco de registros ni la Memoria poseen entrada de clk El camino de escritura presenta señales con carreras potenciales: Clk - Write enable =, Din se estabiliza - Retardo de Escritura a Memoria - Din se escribe en Mem[address] Importante: Address debe estar estable antes que Write Enable se ponga en Ojo: Problemas en el caso Ciclo Único. WrEn Adr Ideal Din Dout WrEn Adr Real Din Dout Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 9

Implementación del Control El valor de las señales de control depende de: qué instrucción está siendo ejecutada cuál paso se está realizando Usaremos la información vista para especificar una MEF mediante especificación gráfica de una MEF. uso de microprogramación. La Implementación se deriva directamente de la especificación (CAD) Comenzaremos por establecer cuáles son las señales de control y qué valores toman Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 2

Camino de Datos Multiciclo PCWr PC IorD PCWrCond PCSrc BrWr MemWr IRWr RegDst RegWr SelA Target RAdr WrAdr Din Dout Instruction Reg Rs Rd Ra Rb busa Reg File Rw busw busb << 2 4 2 3 Control Imm 6 ExtOp Extend MemtoReg SelB Op Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 2

Instruction Fetch: Al comienzo Cada ciclo comienza con el flanco negativo del clock: mem[pc] PC<3:> + 4 Clk Estamos aquí! Un ciclo lógico de reloj PCWr=? Clk PC MemWr=? RAdr WrAdr Dout Din IRWr=? Instruction Reg 4 op=? Control Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 22 Clk

Instruction Fetch: al final Cada ciclo termina con el siguiente flanco negativo (se actualizan elementos de memoria): Clk IR mem[pc] PC<3:> PC<3:> + 4 Un ciclo lógico de reloj PCWr= Estamos aquí! Clk PC MemWr= IRWr= RAdr WrAdr Din Dout Instruction Reg 4 Op = Add Control Clk Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 23

PCWr= PC Instruction Fetch: Panorama Completo RAdr WrAdr Din Dout Instruction Reg Ifetch Op=Add : PCWr, IRWr x: PCWrCond RegDst, Mem2R Others: s PCWrCond=x PCSrc= BrWr=x IorD= MemWr= IRWr= SelA= Target busa busb 4 2 3 Control SelB= Op=Add Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 24

Register Fetch / Instruction Decode busa RegFile[rs] ; busb RegFile[rt] ; no se usa: ctr = xx... Pensemos un uso para la... (branch) PCWr= PC IorD=x PCWrCond= MemWr= RAdr WrAdr Din Dout Go to the Control Op Func IRWr= Instruction Reg 6 6 RegDst=x Rs Rd Imm 6 Rb busa Reg File Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 2 RegWr= Ra Rw busw busb SelA=x 4 PCSrc=x 2 3 SelB=xx Control Op=xx

Register Fetch / Instruction Decode (Continúa) busa Reg[rs] ; busb Reg[rt] ; Target PC + SignExt(Imm6)*4 PCWr= PC Beq ype Ori IorD=x PCWrCond= : MemWr= RAdr WrAdr Din Dout IRWr= Instruction Reg Op Control 6 Func 6 RegDst=x Rs Rd Imm 6 ExtOp= Rb busa Reg File Target Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 26 Extend RegWr= Ra Rw Rfetch/Decode Op=Add : BrWr, ExtOp SelB= x: RegDst, PCSrc IorD, MemtoReg Others: s busw busb SelA= << 2 4 PCSrc=x 2 3 SelB= BrWr= Control Op=Add

Completar Branch if (busa == busb) PCWr= PC PC Target IorD=x PCWrCond= MemWr= RAdr WrAdr Din Dout IRWr= Instruction Reg RegDst=x Rs Rd BrComplete Op=Sub SelB= x: IorD, Mem2Reg RegDst, ExtOp : PCWrCond SelA PCSrc RegWr= Ra Rb busa Reg File Rw busw busb SelA= << 2 4 PCSrc= 2 3 BrWr= Control Target Imm Extend 6 ExtOp=x SelB= Op=Sub Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 27

Volvamos Instruction Decode: supongamos tipo-r Próximo ciclo: Ejecución de una instrucción tipo-r PCWr= PC Beq ype Ori IorD=x PCWrCond= : MemWr= RAdr WrAdr Din Dout IRWr= Instruction Reg Op Control 6 Func 6 RegDst=x Rs Rd Imm 6 ExtOp= Rb busa Reg File Target Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 28 Extend RegWr= Ra Rw busw busb SelA= << 2 4 PCSrc=x 2 3 SelB= BrWr= Control Op=Add

Ejecución Tipo-R: RExec : RegDst Output busa op busb SelA SelB= Op=ype PCWr= PCWrCond= x: PCSrc, IorD MemtoReg ExtOp PCSrc=x BrWr= IorD=x MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Imm Extend 6 ExtOp=x MemtoReg=x Op=ype SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 29

Completamos Tipo-R Rfinish Op=ype R[rd] Output : RegDst, RegWr sela PCWr= PCWrCond= SelB= x: IorD, PCSrc PCSrc=x BrWr= ExtOp IorD=x MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Rw llegó en ciclo anterior No hay registro a la salida Imm 6 ExtOp=x Extend MemtoReg= Op=ype SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 3

Decodificación: supogamos un ORI Próximo ciclo: ejecución ORI PCWr= PC Beq ype Ori IorD=x PCWrCond= : MemWr= RAdr WrAdr Din Dout IRWr= Intruction Reg Op Control 6 Func 6 RegDst=x Rs Rd Imm 6 ExtOp= Extend RegWr= Ra Rb busa Reg File Rw busw busb SelA= << 2 4 PCSrc=x 2 3 SelB= BrWr= Control Target Op=Add Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 3

Ejecución ORI output busa or Ext[Imm6] Instruction Reg Op=Or : SelA OriExec SelB= PCWr= x: MemtoReg IorD, PCSrc PCSrc=x BrWr= IorD=x MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Imm Extend 6 ExtOp= MemtoReg=x Op=Or SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24

Completar ORI Reg[rt] output Instruction Reg OriFinish Op=Or x: IorD, PCSrc SelB= PCWr= PCWrCond= : SelA PCSrc=x BrWr= RegWr IorD=x MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Imm Extend 6 ExtOp= MemtoReg= Op=Or SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 33

Decodificación: supongamos Acceso a Memoria Next Cycle: Cálculo de la dirección de Memoria PCWr= PC Beq ype Ori IorD=x PCWrCond= : MemWr= RAdr WrAdr Din Dout IRWr= Instruction Reg Op Control 6 Func 6 RegDst=x Rs Rd Imm 6 ExtOp= Extend RegWr= Ra Rb busa Reg File Rw busw busb SelA= << 2 4 PCSrc=x 2 3 SelB= BrWr= Control Target Op=Add Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 34

Cálculo de la Dirección de Memoria output busa + SignExt[Imm6] : ExtOp SelA AdrCal SelB= PCWr= Op=Add PCWrCond= x: MemtoReg PCSrc PCSrc=x BrWr= IorD=x MemWr= IRWr= RegDst=x RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Imm Extend 6 ExtOp= MemtoReg=x Op=Add SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 3

Acceso a Memoria para STORE : ExtOp SWmem mem[ output] busb MemWr SelA SelB= Op=Add PCWr= PCWrCond= x: PCSrc,RegDst PCSrc=x BrWr= MemtoReg IorD=x MemWr= IRWr= RegDst=x RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Imm Extend 6 ExtOp= MemtoReg=x Op=Add SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 36

Acceso a Memoria para LOAD : ExtOp LWmem Mem Dout mem[ output] SelA, IorD SelB= Op=Add PCWr= PCWrCond= x: MemtoReg PCSrc=x BrWr= PCSrc IorD= MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Imm Extend 6 ExtOp= MemtoReg=x Op=Add SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 37

Escritura de Reg para LOAD LWwr : SelA Reg[rt] Mem Dout RegWr, ExtOp MemtoReg SelB= Op=Add PCWr= PCWrCond= x: PCSrc PCSrc=x BrWr= IorD: IorD= MemWr= IRWr= RegDst= RegWr= SelA= Target PC Rs Ra RAdr Rb busa Reg File 4 WrAdr Rw Din Dout Rd busw busb 2 3 << 2 Control Instruction Reg Imm Extend 6 ExtOp= MemtoReg= Op=Add SelB= Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 38

Juntando todo: Diagrama de Estados para la MEF Ifetch AdrCal : ExtOp SelA SelB= Op=Add x: MemtoReg PCSrc lw : ExtOp LWmem SelA, IorD SelB= Op=Add x: MemtoReg PCSrc LWwr Op=Add : PCWr, IRWr x: PCWrCond RegDst, Mem2R Others: s sw : SelA RegWr, ExtOp MemtoReg SelB= Op=Add x: PCSrc IorD: lw or sw SWMem : ExtOp MemWr SelA SelB= Op=Add x: PCSrc,RegDst MemtoReg Rfetch/Decode Op=Add : BrWr, ExtOp SelB= x: RegDst, PCSrc IorD, MemtoReg Others: s ype Ori RExec : RegDst SelA SelB= Op=ype x: PCSrc, IorD MemtoReg ExtOp beq Rfinish Op=ype : RegDst, RegWr sela SelB= x: IorD, PCSrc ExtOp BrComplete Op=Sub SelB= x: IorD, Mem2Reg RegDst, ExtOp : PCWrCond SelA PCSrc OriExec Op=Or : SelA SelB= x: MemtoReg IorD, PCSrc OriFinish Op=Or x: IorD, PCSrc SelB= : SelA RegWr Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 39

2 Numeremos los estados del diagrama (Moore) Ifetch AdrCal : ExtOp SelA SelB= Op=Add x: MemtoReg PCSrc lw 4 : ExtOp LWmem SelA, IorD SelB= Op=Add x: MemtoReg PCSrc LWwr 3 Op=Add : PCWr, IRWr x: PCWrCond RegDst, Mem2R Others: s sw : SelA RegWr, ExtOp MemtoReg SelB= Op=Add x: PCSrc IorD lw or sw SWMem : ExtOp MemWr SelA SelB= Op=Add x: PCSrc,RegDst MemtoReg 6 7 Rfetch/Decode 8 Op=Add : BrWr, ExtOp SelB= x: RegDst, PCSrc IorD, MemtoReg Others: s ype Ori RExec : RegDst SelA SelB= Op=ype x: PCSrc, IorD MemtoReg ExtOp beq Rfinish Op=ype : RegDst, RegWr sela SelB= x: IorD, PCSrc ExtOp BrComplete Op=Sub SelB= x: IorD, Mem2Reg RegDst, ExtOp : PCWrCond SelA PCSrc OriExec Op=Or : SelA SelB= x: MemtoReg IorD, PCSrc Op=Or x: IorD, PCSrc SelB= : SelA RegWr OriFinish Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 4

Implementación Tradicional de la MEF Control Logic Inputs O u t p u t s al Camino de Datos Opcode Estado Próximo Estado 2 estados 4 bits. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 4

Transición de estados Próximo Estado desde el Actual Estado Estado Estado S2, S6, S8, S Estado 2 S3, S Estado 3 Estado 4 Estado 4 Estado Estado Estado Estado 6 Estado 7 Estado 7 Estado Estado 8 Estado Estado 9 Estado Estado Estado Estado Estado Alternativamente, estado anterior y condición S4, S, S7, S8, S9, S Estado Estado Estado 2 Estado 3 Estado 4 Estado2 & op = sw Estado Estado 6 Estado 6 Estado 7 Estado 8 Estado & op = jmp Estado 9 Estado Estado Estado Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 42

Implementación con PLA (Programmed Logic Arrays) Qué significa una línea horizontal abajo? y una vertical? Op Op4 Op3 Op2 Op Op S3 S2 S S = = 2 = 3 = 4 = = 6 = 7 = 8 = 9 = = = R = beq = lw = sw = ori = jmp = NS3 NS2 NS NS Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 43

Implementación con PLA Los minterms están especificados en azul, las sumas en rojo. Por ejemplo, la primera línea vertical representa que del estado siempre paso al. No está completo... Op Op4 Op3 Op2 Op Op S3 S2 S S = = 2 = 3 = 4 = = 6 = 7 = 8 = 9 = = = lw = sw = R = ori = beq = jmp = NS3 NS2 NS NS Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 44

Implementación con PLA Agregando señales de control (Ejemplo del Libro) Op Op4 Op3 Op2 Op Op S3 S2 S S PCWrite PCWriteCond IorD MemRead MemWrite IRWrite MemtoReg PCSource PCSource Op Op SrcB SrcB SrcA RegWrite RegDst NS3 NS2 NS NS Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 4

Implementación con ROM Cuántas entradas tenemos? 6 bits para el opcode, 4 bits para el estado = líneas dirección (2 = 24 palabras diferentes) Cuántas salidas tenemos? 6 salidas de control del camino de datos, 4 bits de estado = 2 ROM: 2 x 2 = 2K bits (y un tamaño algo inusual) Ineficiente: no se tienen en cuenta condiciones de indiferencia En realidad hay más de 6 salidas de control con más instrucciones (por ejemplo JUMP). Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 46

ROM vs PLA Implementación de Moore (las salidas dependen del estado actual). Separemos la tabla en dos partes y dos ROMs: 4 bits de estado dan las 6 salidas, 2 4 x 6 bits de ROM bits dan los 4 bits de próx. estado, 2 x 4 bits de ROM2 Total: 4.3K bits de ROM PLA es mucho más chica puede compartir términos de productos utiliza solo las entradas que producen una salida tiene en cuenta las condiciones de indiferencia El tamaño es (#inputs #product-terms) + (#outputs #product-terms) - En este caso = (x7)+(7x2) = 46 celdas PLA El tamaño de las celdas del PLA es similar a las de la ROM ( un poco mayor) Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 47

Mayor complejidad. Qué pasa si hay muchos más estados y condiciones de entradas para determinar el control? El manejo con tablas se hace engorroso. Se recurre a CAD. Y si luego se necesita agregar un estado? Veremos otra forma de realización del control llamado MICROPROGRAMACION. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 48

Resumen Puntos débiles Uniciclo: Performance y duplicación recursos. Multiciclo: reusa recursos cada instrucción dura lo necesario. Requiere Control con una MEF. Camino de datos parecido a Uniciclo, con registros para permitir uso de idénticos recursos en distintos ciclos. Cada instrucción demora:? Tabla con RTL para cada instrucción. Identificación de las señales de control Construcción diagrama de Estados. Implementación PLA, ROM, comparación. CISC: por CAD o Microprogramación próximo tema. Diseño RISC D. Cohen UNT Arq. de Computadoras - 24 49