miércoles, 5 de diciembre de 2012

MIPS





MIPS

Creacion

MIPS - Microprocessor without Interlocked Pipeline Stages

Se conoce a toda una familia de microprocesadores de arquitectura RISC desarrollados por MIPS Technologies.

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. La idea básica era mejorar drásticamente el rendimiento mediante el uso de la segmentación, una técnica que ya era entonces muy conocida pero también difícil de implementar. Su funcionamiento puede resumirse en que la ejecución de una instrucción es dividida en varias etapas, comenzando la "etapa 1" de una instrucción antes de que haya finalizado la ejecución de la instrucción anterior. En contraste, los diseños tradicionales esperaban la finalización por completo de una instrucción antes de pasar a la siguiente, de modo que grandes áreas de la CPU permanecían inactivas mientras el proceso continuaba. Además, la frecuencia de reloj de toda la CPU venía dictada por la latencia del ciclo completo, en lugar de por el llamado camino crítico, latencia de la etapa de segmentación que más tarda en completarse.

Primeros MIPS

Las primeras arquitecturas MIPS fueron implementadas en 32 bits (generalmente rutas de datos y registros de 32 bits de ancho), si bien versiones posteriores fueron implementadas en 64 bits. Existen cinco revisiones compatibles hacia atrás del conjunto de instrucciones del MIPS, llamadas MIPS I, MIPS II, MIPS III, MIPS IV y MIPS 32/64. En la última de ellas, la MIPS 32/64 Release 2, se define a mayores un conjunto de control de registros. Así mismo están disponibles varias "extensiones", tales como la MIPS-3D, consistente en un simple conjunto de instrucciones SIMD en coma flotante dedicadas a tareas 3D comunes, la MDMX(MaDMaX) compuesta por un conjunto más extenso de instrucciones SIMD enteras que utilizan los registros de coma flotante de 64 bits, la MIPS16 que añade compresión al flujo de instrucciones para hacer que los programas ocupen menos espacio (presuntamente como respuesta a la tecnología de compresión Thumb de la arquitectura ARM) o la reciente MIPS MT que añade funcionalidades multithreading similares a la tecnología HyperThreading de los procesadores Intel Pentium 4.
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. El diseño de la familia de CPU's MIPS influiría de manera importante en otras arquitecturas RISC posteriores como los DEC Alpha.

Arquitectura MIPS

File:Pipeline MIPS.png 
 
Un procesador MIPS consiste en una unidad de procesamiento entero (CPU) y una colección de coprocesadores que llevan a cabo tareas auxiliares u operan sobre otro tipo de datos tales como punto flotante

Los sistemas basados en procesadores MIPS típicamente dividen la memoria en tres partes. La primera parte, segmento de texto (programa) se encuentra en la parte baja de la memoria. Comienza en la dirección 400000 hex y es donde se almacenan las instrucciones del programa.
Encima del segmento de texto, encontramos el segmento de datos que a su vez se divide en área Estática y Dinámica. El área estática comienza en la dirección 10000000 hex . Contiene objetos cuyos tamaños son conocidos por el compilador y existen mientras ejecuta el programa. El área dinámica es asignada a medida que es solicitado a través de malloc (por ejemplo, lenguaje C).
La tercera parte es el segmento STACK (pila) se encuentra a partir de la dirección 7fffffff hex y crece en sentido contrario. 



Video ejemplo MIPS



  Segmento de codigo empleado


Recomendaciones : es .ascii no .ascci xD (doble i )



 Bibliografia

http://es.wikipedia.org/wiki/MIPS_%28procesador%29

http://ldc.usb.ve/~adiserio/ci3811/spim1.html

http://gecko54000.free.fr/?documentations=ARCHI_MIPS