Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain.
Estructura del curso 1. Evolución y caracterización de los computadores. 2. Arquitectura del MIPS: Introducción. 3. Tipo de datos. 4. El repertorio de instrucciones. 5. Aritmética del computador. 6. El camino de datos. 7. Sección de control. 8. El camino de datos multiciclo. 9. Sección de control multiciclo. 10. Entrada/Salida (I/O). 2
Esquema de contenidos 1. Repertorio de instrucciones MIPS 2. Programa almacenado 3. Sistemas de almacenamiento de datos 3
Introducción: La visión del programador El funcionamiento de la CPU está determinado por las instrucciones que ejecuta. El conjunto de instrucciones distintas que puede ejecutar se denomina repertorio de instrucciones En los computadores actuales las instrucciones se presentan como números y se almacenan en memoria (programa almacenado) El lenguaje utilizado por el ordenador se denomina lenguaje máquina. El lenguaje ensamblador es una representación simbólica más cercana al humano. 4
Visión software: Jerarquía de traducción Lenguaje de alto nivel temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; Compilador C TEMP = V(K) V(K) = V(K+1) V(K+1) = TEMP Compilador Fortran Lenguaje ensamblador (MIPS) Lenguaje máquina lw $t0, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2) Ensamblador MIPS 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 5
Ejecución de un programa Camino de datos Memoria 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111... programa & datos I / O Carga Decodificación Ejecución Control 6
Instrucciones Cada instrucción máquina debe especificar: Código de operación Referencia a operandos fuente Referencia a operandos resultado Referencia a la siguiente instrucción Los operandos fuente y resultado pueden estar en alguna de las siguientes localizaciones: Memoria Registro de la CPU Dispositivo de E/S 7
Representación de las instrucciones Dentro del computador cada instrucción se representa por una secuencia de bits La instrucción se divide en campos correspondientes a los elementos constitutivos de la misma (código de operación, operandos, etc.) La descripción en campos y bits se denomina formato de instrucción Operación Ref. operando 1 Ref. operando 2 8
Operaciones del repertorio de instrucciones Aritméticas Lógicas Transferencia de datos De control de flujo Instrucciones de bifurcación o salto Instrucciones de salto condicional Instrucciones de llamada a subrutina De control del sistema De E/S 9
Repertorio de instrucciones escogido: MIPS Arquitectura MIPS R2000/R3000 Pionera de las arquitecturas RISC Muy sencilla y uniforme Creada en Stanford (John Hennessy) Utilizada por NEC, Nintendo, Silicon Graphics y Sony. 10
Lenguaje MIPS Instrucciones: Aritméticas add, sub, mult, div Lógicas and, or, ssl (shift left), srl (shift right) Transferencia de datos lw (load), sw (store), lui Saltos Condicionales: beq, bne, slt No condicionales: j, jr, jal 11
MIPS: Ejemplo de sencillez SUMA de dos variables en registros $s1 y $s2, resultado en registro $t0. add $t0, $s1, $s2 # $t0 = $s1 + $s2 En MIPS son nombres de registros Longitud de instrucción fija: 32 bits La arquitectura MIPS realiza la mayor parte de los cálculos con datos almacenados en registros MIPS es sencilla y eficiente El acceso a memoria se hace a través de operaciones de carga/almacenamiento (transferencia de datos) 12
Registros en el MIPS 32 registros de 32 bits Número Nombre Uso convencional 0 1 2-3 4-7 8-15 16-23 24-25 26-27 28 29 30 31 $zero $at $v0-$v1 $a0-$a3 $t0-$t7 $s0-$s7 $t8-$t9 $k0-$k1 $gp $sp $fp $ra Valor constante 0 Reservado por el ensamblador Para resultados y evaluación de expresiones Argumentos Temporales Salvados Temporales Reservado para núcleo de SO Puntero global Puntero de pila Puntero de bloque de activación Dirección de retorno 13
Concepto de programa almacenado Las instrucciones son representadas como números. Los programas están almacenados en memoria Pueden ser leídos/escritos como números. La memoria: Contiene instrucciones y datos. Las instrucciones son cargadas automáticamente (control). Los datos son transferidos explícitamente entre memoria y procesador y viceversa INSTRUCCIONES DE TRANSFERENCIA DE DATOS 14
Concepto de programa almacenado... Registros load (lw) save (sw) dirección 0 1 2 3 4. Datos Byte (8bits). Palabra Procesador Memoria 15
Dónde están los operandos?: Los operandos pueden estar: En la instrucción: Rápido y simple. Sólo para constantes En la memoria principal: Direccionamiento implica muchos bits. Acceso lento En los registros de la CPU: Hay pocos registros: el direccionamiento implica pocos bits Acceso rápido 16
Sistemas de almacenamiento de datos. Registros Cache Capacidad Coste por bit Tiempo de acceso Memoria Principal Disco magnético Cinta magnética Disco óptico 17
Memorias de acceso aleatorio Tipo de memoria Propósito Borrado Modo de escritura Volatilidad Random Access Memory (RAM) Lec/Esc Eléctrico Eléctrico Volátil Read Only Proceso fabricación Memory (ROM) Lectura No posible Programmable ROM (PROM) Eléctrico (fusibles) Erasable PROM (EPROM) Luz UV (chip) No volátil Electrically Erasable PROM (EEPROM) Lectura (reprogramable) Eléctrico (nivel byte) Eléctrico Flash Eléctrico (nivel bloque) 18
Organización de la memoria Organizando una memoria de 96 bits: 0 1 2 3 4 5 6 7 8 9 10 11 0 1 2 3 4 5 6 7 12 bits 0 1 2 3 4 5 Palabra: 1, 8, 12, 16, 32, 16 bits 8 bits 19
Organización de la memoria Ejemplos 8086 8088 486 Pentium 68000 68020 PowerPC 750 Bus datos 16 8 32 64 16 32 64 Longitud registros 16 16 32 32 32 32 64 Unidad direccionable Byte Byte Byte Byte Byte Byte Byte 20
Direcciones de memoria Dirección (dec) 0 1 2 N-1 Byte 0 Byte 1 Byte 2 Byte N-1 A nivel de byte Tamaño memoria: N bytes 8 bits 21
Direcciones de memoria Dirección (dec) 0 1 2 Palabra 0 Palabra 1 Palabra 2 A nivel de palabra 32 bits 22
Direcciones de memoria Dirección (dec) 0 4 8 Palabra 0 Palabra 1 Palabra 2 A nivel de palabra con numeración en bytes MIPS 32 bits 23
Direcciones de memoria Dirección (dec) 0 Byte 0 1 2 Byte 1 Byte 2 Palabra 0 A nivel de palabra con numeración en bytes 3 Byte 3 MIPS Byte N 8 bits 24
Direcciones de memoria. 4n 4n+1 4n+2 4n+3 4n+4 4n+5 4n+6 4n+7 4n+8 4n+9 4n+10 4n+11. 8 bits Palabra n Palabra n+1 Palabra n+3 A nivel de palabra con numeración en bytes MIPS 25
Big Endian, Litte Endian Orden de almacenamiento en memoria de los bytes dentro de una palabra Big Endian: El byte más significativo en la dirección más baja Little-Endian: El byte más significativo en la dirección más alta 26
Big Endian, Litte Endian BIG ENDIAN Dato: 12345678 (hex) Dirección: 84(dec) LITTLE- ENDIAN Direcc. (dec) Direcc. (dec) 84 12 84 78 85 34 85 56 86 56 86 34 87 78 87 12 8 bits 8 bits 27
Big Endian, Litte Endian Dato: 12345678 (hex) Dirección: 84(dec) BIG ENDIAN Byte 3 Byte 2 Byte 1 Byte 0 78 56 34 12 32 bits 28
Big Endian, Litte Endian Dato: 12345678 (hex) Dirección: 84(dec) LITTLE ENDIAN Byte 3 Byte 2 Byte 1 Byte 0 Simula3ms 12 34 56 78 32 bits 29