# Stanford MIPS

MIPS (un acrónimo de microprocesador sin etapas de tuberías interbloqueadas) fue un proyecto de investigación realizado por John L. Hennessy en la Universidad de Stanford entre 1981 y 1984. MIPS investigó un tipo de arquitectura de conjunto de instrucciones (ISA) que ahora se llama Equipo de conjunto de instrucciones reducido (RISC). su implementación como microprocesador con tecnología de semiconductores de integración a gran escala (VLSI), y la explotación efectiva de las arquitecturas RISC con optimizadores de compilación. MIPS, junto con el IBM 801 y el Berkeley RISC, fueron los tres proyectos de investigación que promovieron y popularizaron la tecnología RISC a mediados de los años ochenta. En reconocimiento al impacto que los MIPS tuvieron en la computación, Hennessey fue galardonada con la Medalla John von Neumann IEEE en 2000 por IEEE (compartida con David A. Patterson ), el Premio Eckert-Mauchly en 2001 por la Association for Computing Machinery, Seymour Cray. Premio de Ingeniería Informática en 2001 por parte de la IEEE Computer Society y, nuevamente, con David Patterson, el Premio Turing en 2017 por parte de la ACM.
El proyecto se inició en 1981 en respuesta a informes de proyectos similares en IBM (801) y la Universidad de California, Berkeley (RISC). Hennessy y sus estudiantes graduados dirigieron MIPS hasta su conclusión en 1984. Hennessey fundó MIPS Computer Systems en el mismo año para comercializar la tecnología desarrollada por el proyecto. En 1985, MIPS Computer Systems anunció una nueva ISA, también llamada MIPS, y su primera implementación, el microprocesador R2000. El MIPS ISA comercial y sus implementaciones se utilizaron ampliamente, apareciendo en dispositivos integrados, computadoras personales, estaciones de trabajo, servidores y supercomputadores. A partir de mayo de 2017, el MIPS ISA comercial es propiedad de Imagination Technologies y se utiliza principalmente en dispositivos integrados. A fines de la década de 1980, Hennessy realizó un proyecto de seguimiento llamado MIPS-X en Stanford.
El MIPS ISA se basó en una palabra-de-32 bits. Soportaba el direccionamiento de 32 bits y estaba dirigido por palabra. Era una arquitectura load-store — todas las referencias a la memoria utilizada cargan y almacenan instrucciones que copian datos entre la memoria principal y 32 registros de propósito general (GPR). Todas las demás instrucciones, como la aritmética de enteros, operan en los GPR. Poseía un conjunto de instrucciones básicas que consta de instrucciones para flujo de control, aritmética de enteros y operaciones lógicas. Para minimizar las paradas de la tubería, todas las instrucciones, excepto la carga y el almacenamiento, deben ejecutarse en un ciclo de reloj . No había instrucciones para la multiplicación o división de enteros, ni operaciones para números de punto flotante . La arquitectura expuso todos los peligros causados por la tubería de cinco etapas con ranuras de retardo . El compilador programó instrucciones para evitar peligros que resulten en un cálculo incorrecto y al mismo tiempo garantizar que el código generado minimice el tiempo de ejecución. Las instrucciones MIPS son de 16 o 32 bits de largo. La decisión de exponer todos los peligros fue motivada por el deseo de maximizar el rendimiento al minimizar las rutas críticas, que alargan los circuitos de bloqueo. Las instrucciones se agruparon en palabras de instrucción de 32 bits (ya que MIPS se dirige a la palabra). Una palabra de instrucción de 32 bits podría contener dos operaciones de 16 bits. Estos fueron incluidos para reducir el tamaño del código de máquina. El microprocesador MIPS fue implementado en la lógica NMOS.