Pipeline
Cisc vs Risc I CISC (complex instruction set computer) VAX, Intel X86, etc. RISC (reduced instruction set computer) MIPS, DEC Alpha, SUN Sparc, IBM 801
Cisc vs Risc II Historia: En los primeros 25 años la performance provenía del diseño y el avance tecnológico. Restricciones al diseño: Memoria diminuta y lenta. No hay registros todo, va a la memoria. Problemas para adaptar lenguajes de “alto nivel” a instrucciones. No hay compatibilidad. Un solo OS, proveedor y hardware. Necesidad de compatibilidad hacia atras (ISA). Resultado: intrucciones poderosas y complejas son raramente utilizadas. Finalmente, en la decada del 70 si dió la revolución de los procesadores, de hardware y soft (bajos costos, mejoras en el clock, mas y y mas baratas memorias ram).
Cisc vs Risc III Comparación de ISAS
Top 10 Instrucciones de 80x86
Cisc vs Risc IV RISC: VLSI : Very Large Scale Integration. Reemplazo de “micro-store” con registros registers => load/store ISA. Alto incremento entre la diferencia de velocidad de la memoria y el microprocesador. Instrucciones complejas no son más usadas por los compiladores. Cambios en el Software: Mejor adaptación al soft con las nuevas instrucciones disponibles. Aparación de standards de programación, necesidad de portabilidad con el kernel Linux.
Formato de instrucciones MIPS Todas las instrucciones MIPS son de 32 bits. Existen 3 formatos: R-type I-type J-type Campos: op: operation of the instruction rs, rt, rd: the source and destination register specifiers shamt: shift amount funct: selects the variant of the operation in the “op” field address / immediate: address offset or immediate value target address: target address of the jump instruction op rs rt rd shamt funct 6 11 16 21 26 31 6 bits 5 bits op rs rt immediate 16 21 26 31 6 bits 16 bits 5 bits op target address 26 31 6 bits 26 bits
Layout de los tipos de Instrucción
Modos de Acceso Register (direct) op rs rt rd register Immediate op rs Displacement op rs rt immed Memory register + PC-relative op rs rt immed Memory PC +
Las 5 Etapas de Ejecución Arquitectura load-store Instruction fetch (IF): Toma la instrucción de la memoria/cache Instruction decode, Register read (ID): Lee registros, y decodifica la instrucción en señales de control. Execute (EX): Operaciones de ALU, load/store address, branch outcomes Memory (MEM): Solo para load/store, se accede a la memoria. Writeback/retire (WB): Se escriben los resultados en los registos.
Solución Ideal: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 IF ID EX MEM WB IF
Datapath + + IF/ ID ID/ EX EX/ Mem Mem/ WB 1 eq? valA instruction valB target PC+1 PC+1 R0 eq? regA R1 ALU result A L U Register file regB R2 valA PC Inst mem Data memory M U X instruction R3 ALU result mdata R4 R5 valB R6 M U X data R7 offset dest valB Bits 11-15 dest dest dest Bits 16-20 M U X IF/ ID ID/ EX EX/ Mem Mem/ WB
Ejemplo de Pipeline (FP)