Debido a que los diseñadores crearon un conjunto de instrucciones tan claro, los cursos sobre arquitectura de computadores en universidades y escuelas técnicas a menudo se basan en la arquitectura MIPS.
En 1981, un equipo liderado por John L. Hennessy en la Universidad de Stanford comenzó a trabajar en lo que se convertiría en el primer procesador MIPS.
Aunque esta idea de diseño eliminó numerosas instrucciones útiles, destacando el hecho de que la multiplicación y la división necesitarían varias instrucciones, en conjunto se sabía que el rendimiento general del sistema sería drásticamente mejorado al poder funcionar los chips a frecuencias mucho mayores.
Este análisis tan simplista ignoraba el hecho de que la velocidad del diseño residía en la segmentación, no en las instrucciones.
Sun Microsystems intentó subirse al carro otorgando licencias de su núcleo SPARC, pero ni llegó a rozar el éxito del MIPS.
NEC, Toshiba y SiByte (posteriormente adquirida por Broadcom) obtuvieron licencias para el MIPS64 tan pronto como este procesador fue anunciado; a estas empresas les siguieron otras como Philips, LSI Logic e IDT.
Una de las primeras nuevas compañías en diseñar procesadores MIPS fue Quantum Effect Devices.
Debido a que Lexra no era concesionaria de ninguna licencia MIPS, dos pleitos fueron abiertos entre ambas empresas.
El primero se resolvió rápidamente al prometer Lexra no seguir anunciando sus procesadores como MIPS-compatibles.
Añadía instrucciones multiciclo para la multiplicación y la división en una unidad independiente integrada en el procesador.
Asimismo se añadieron instrucciones para enviar los resultados de esta unidad al núcleo; las cuales necesitaban bloqueos.
Al contrario que otros registros, el contador de programa no es directamente accesible.
El R2000 además soportaba hasta cuatro co-procesadores, uno de los cuales estaba integrado en la CPU principal para el manejo de excepciones e interrupciones, mientras que los otros tres estaban destinados a otros usos.
SGI rebautizó a las viejas tarjetas gráficas que incorporaron la R5000 para remarcar la mejora.
Aún con una FPU más simple, la vasta mejora en las operaciones con enteros, su menor precio y la mayor densidad hicieron del R10000 el preferido por muchos clientes.
El R12000 ha sido fabricado con tecnología mejorada para comprimir el chip y operar a mayor velocidad de reloj.
El R6000 no proporcionó los resultados esperados, y aunque fue empleado en algunas máquinas Control Data, rápidamente desapareció del mercado de los mainstream.
SGI intentó una vez migrar de la plataforma MIPS a la Intel Itanium, habiendo terminado su desarrollo con el R10000.
Los grandes retrasos en la presentación del Itanium hicieron que el número de procesadores basados en MIPS instalados continuó creciendo.
Estos núcleos pueden ser combinados con unidades añadidas tales como FPUs, sistemas SIMD, dispositivos de E/S, etc.
Los núcleos MIPS han sido comercialmente exitosos, siendo empleados actualmente en muchas aplicaciones industriales y de consumo.
MARS es un entorno de desarrollo ligero e interactivo, escrito en Java y compatible con muchas plataformas, cuyo propósito es su uso en el nivel educativo.
Un emulador MIPS más completo pertenece al proyecto GXemul (anteriormente conocido como Proyecto mips64emul), el cual no solo emula las diferentes versiones de los microprocesadores MIPS III y superiores (desde el R4000 al R10000), sino también sistemas enteros que utilicen esos procesadores.
Por ejemplo, GXemul puede emular tanto una DECstation con un procesador MIPS R4400 (y arrancar en Ultrix) como un SGI O2 con CPU MIPS R10000 (si bien la capacidad de correr Irix es limitada), entre otros, así como también diferentes framebuffers y controladoras SCSI.
WepSIM facilita aprender diversos aspectos de cómo funciona una CPU (microprogramación, interrupciones, llamadas al sistema, excepciones, etc.).
A continuación en la siguiente tabla se muestran ejemplos de los servicios más usados en los simuladores SPIM, MARS, CREATOR o WepSIM.
Por ejemplo, los registros $s_ deben ser almacenados en la pila por el procedimiento que los necesita (subrutina llamada), siendo siempre incrementados en constantes $sp y $fp, para ser después decrementados una vez finalizado el procedimiento (se marca como disponible la memoria reservada).
Por el contrario, $ra es modificado automáticamente tras una llamada a una función normal (cualquiera que utilice la instrucción jal), y los registros $t_ deben ser salvados por la subrutina llamante antes de llamar a cualquier función (por si el programa necesita los valores contenidos en dichos registros tras la ejecución de la subrutina ).
Este procesador se encuentra específicamente en la consola PlayStation Portable de Sony Computer Entertainment add addu addi addiu and andi divu mult multu div nor or ori sll sllv sra srav srl srlv sub subu xor xori lhi llo slt sltu slti sltiu beq bgtz blez bne j jal jalr jr la li lb lbu lh lhu lw sb sh sw mfhi mflo mthi mtlo trape $at $v0 $v1 $a0 $a1 $a2 $a3 $t0 $t1 $t2 $t3 $t4 $t5 $t6 $t7 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $t8 $t9 $k0 $k1 $gp $sp $fp $ra