Un poco de historia
El microprocesador MIPS fue desarrollado como parte de una investigación en VLSI en la Universidad de Stanford, a principios de los años 80. El profesor John Hennessy empezó el desarrollo del MIPS con una "tormenta de ideas" realizada por alumnos y finalmente fue uno de los primeros procesadores RISC producidos comercialmente. Su desarrollo se realizó en paralelo al de los diseños de Berkeley e IBM.
En este apartado se describen las características generales de esta arquitectura y de su repertorio de instrucciones.
Generalidades
- El MIPS 64 es una arquitectura RISC basada en registros de propósito general de tipo carga/almacenamiento. Por lo tanto siempre es necesario que los operandos de una instrucción estén almacenados en registros dentro del proceasdor (no puedan estar en memoria), y los resultados siempre se devuelven a registros dentro del procesador.Tiene 32 registros de propósito general de 64 bits (R0,….R31). El registro R0 siempre almacena un 0 y no se puede variar su contenido así que en realidad es como si sólo hubiera 31 registros.
- También tiene 32 registros para coma flotante (F0,….F31) que pueden almacenar números en precisión simple o doble.
- Soporta tipos enteros de 8, 16, 32 y 64 bits y tipos en coma flotante de 32 y 64 bits. También permite trabajar con números en coma flotante de precisión simple empaquetados de dos en dos.
- Utiliza direcciones de memoria de 64 bits.
- Permite únicamente dos modos de direccionamiento: el inmediato y el indirecto con desplazamiento.
- El direccionamiento de los saltos es relativo al PC. Es decir, para especificar la dirección destino de un salto se da un offset que sumado al PC permite calcular esta dirección.
Repertorio de Instrucciones
Su repertorio de instrucciones consiste en aproximadamente 111 instrucciones, cada una de las cuales se codifica con 32 bits (codificación de longitud fija). A continuación se proporciona un ejemplo de instrucción:
Figura 1: Ejemplo de instrucción del procesador MIPS.
Se representa la instrucción "Add R12, R7, R8"
Esta instrucción le indica al procesador que debe calcular la suma de los valores contenidos en los registros 7 y 8, y que debe guardar el resultado de la suma en el registro 12 (hay que recordar que el MIPS es una arquitectura basada en registros de propósito general). La representación en binario coloreada representa los 6 campos de una instrucción de tipo Add en el MIPS. El procesador identifica el tipo de instrucción mediante los dígitos binarios correspondientes a los campos primero y último. En este caso concreto, el procesador reconoce que la instrucción es una suma mediante el 0 en su primer campo, y el 20 en su último campo. Los operandos están representados en los campos azul y amarillo, y el resultado deseado se presenta en el cuarto campo (color morado). El campo naranja representa un valor que no se utiliza en este caso concreto, el campo Shift Amount.
Aunque todas las instrucciones del repertorio se codifican con 32 bits, existen tres formatos de instrucción diferentes en el MIPS64:
» Instrucciones tipo I:
Se trata de instrucciones que necesitan incorporar un operando inmediato, es decir, aritmético-lógicas, direccionamientos a memoria y saltos.
- Campos de la instrucción:
- OpCode: Código de la operación.
- Rs: Registro fuente.
- Rt: Registro destino.
- Inmediate: Operando inmediato o desplazamiento en direccionamientos a memoria u offset relativo al PC en los saltos.
» Instrucciones tipo R:
Este tipo de instrucciones es el usado en las operaciones ALU registro - registro.
- Campos de la instrucción:
- OpCode: Código de operación.
- Rs: Primer registro operando fuente.
- Rt: Segundo registro operando fuente.
- Rd: Registro operando destino, donde se almacena el resultado de la operación.
- Shamt (Shift Amount): Desplazamiento para las instrucciones de tipo Shift.
- Funct: Función. Completa el OpCode para seleccionar el tipo de instrucción del que se trata.
» Instrucciones tipo J:
Por último, este es el tipo usado en las operaciones de salto incondicional.
- Campos de la instrucción:
- OpCode: Código de operación.
- Offset: Offset relativo al PC.
Figura 1: Formato de Instrucciones del microprocesador MIPS
Haz click aquí para ver la imagen más grande
» Para ampliar esta información, puedes visitar...
- MIPS Instruction
Reference (en inglés)
Se trata de una descripción del conjunto de instrucciones MIPS: sus significados, sintaxis, semántica, y codificación de bits.
Microelectronics Research and Communications Institute.
Universidad de Idaho. - RISC Architecture: MIPS (en inglés)
Página creada por Crystal Chen, Greg Novick y Kirk Shimano para acompañar a una presentación sobre las arquitecturas RISC realizada en la asignatura The Intellectual Excitement of Computer Science.
Stanford Computer Science Education -- CSE.
