Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

El microprocesador MIPS




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com

    El microprocesador MIPS
    Una ISA del tipo RISC.
    Reduced Instruction Set Computer.
    Proyecto dirigido por el Prof. Hennessy.
    Usada por:
    NEC, Nintendo, Silicon Graphics, Sony, etc.
    Una ISA simple, bastante ortogonal, potente y fácilmente estudiable.
    SPIM: Un simulador del microprocesador MIPS. Lo emplearemos en algunas prácticas.

    Monografias.com

    Dos tipos de registros.
    No arquitectónicos.
    Son necesarios para que el microprocesador pueda salvar resultados intermedios a lo largo de la ejecución de una instrucción (Intra-instrucción).
    Los estudiaremos en el capítulo 5.

    Arquitectónicos.
    Permiten que guardemos resultados temporales, los cuales, podrán ser usados por instrucciones posteriores (Inter-instrucción).
    Ejemplo: Realizar un programa que multiplique por 4 el contenido de $t0 y salve el resultado en $t1.

    Monografias.com

    MIPS: Una ISA load/store
    D
    D
    D
    D
    LOAD
    STORE
    ALU

    Monografias.com

    Compilación de una expresión a base de operadores + y -.
    f = (g + h) – (i + j);
    f : $s0, g : $s1, h : $s2, i : $s3, j : $s4

    add $t0, $s1, $s2
    add $t1, $s3, $s4
    sub $s0, $t0, $t1

    Las variables de este programa son simples: contienen un único dato de ancho 32 bits.
    ¿Cómo se pueden construir agregados de datos (arrays) cuando se programa a nivel de ISA (Lenguaje de ensamblaje)?

    Monografias.com

    Ya visto: Los operandos posibles en la ISA de MIPS
    Las instrucciones aritméticas y lógicas de MIPS sólo aceptan registros como operandos.
    No existe ninguna instrucción en la ISA que nos permita sumar el contenido de una dirección de memoria con el contenido de un registro.
    Tanto los operandos fuente como el operando de destino deben ser registros.

    sub $22, $10, $9

    Monografias.com

    El fichero de registros de MIPS
    Contiene 32 registros de 32 bits de ancho cada uno de ellos.
    Los nombres son $0 .. $31
    También reciben otros nombres que tienen que ver con las funciones específicas de cada registro.
    Por ejemplo:
    $s0, $s1 etc. son los registros que emplearemos para las variables de los programas de ejemplo escritos en C.
    $t0, $t1 etc. Son los registros temporales que emplearemos al compilar los programas escritos en C.

    Monografias.com

    La memoria de los sistemas basados en MIPS
    Claramente, el número de registros (32), es pequeño.
    La memoria está organizada en casillas de 8 bits de ancho cada una de ellas.
    Cada una de las casillas de 8 bits está identificada por su dirección de memoria.
    El número de posiciones de memoria es muy grande en comparación con el número de registros.

    Monografias.com

    La memoria es muy amplia.
    Si la ALU sólo opera sobre registros… Continuamente deberemos acceder a la memoria en busca de datos:
    Cargar el dato en un registro (load).
    Cargar el otro dato en otro registro (load).
    Efectuar la operación cuyo resultado se obtendrá en otro registro (Aritmética-lógica).
    Salvar el resultado en su dirección de memoria (store).
    MIPS es una arquitectura load-store.
    El tamaño de palabra de la ISA MIPS es 32 bits.

    Monografias.com

    Modelo funcional de la memoria
    Cada posición de memoria guarda un dato de 8 bits (1byte).
    Cada posición tiene un nombre, un entero de 32 bits
    Conocido como dirección de memoria
    La primera es la 0
    La última es la 232-1
    Ya estudiaremos las estructuras y la tecnología

    Monografias.com

    Una instrucción de lectura de una palabra de 32 bits (load word).

    lw $t0, 8($s3)
    Ejemplo: Instrucción Load Word lw
    Un dato presente en memoria
    En la dirección = $s3 + 8
    El registro al que se
    transfiere el dato leído
    desde la memoria.

    Monografias.com

    lw $t0, 8($s3)
    [repetición] ?
    aunque denotemos un registro
    La word que se carga
    en $t0 procede de
    La dirección de memoria
    0x1008.
    Un dato presente en memoria,
    ¿Cuál es su dirección?
    Dirección = $s3 + 8
    …y, una constante
    Si $s3 contiene 0x1000, entonces
    la dirección de memoria efectiva es 0x1008

    Monografias.com

    Un ejemplo.
    lw $t0, 8($s3)
    Supongamos que $s3 contiene 0x00001000.
    La dirección formada es = 0x1000 + 8
    Supongamos que esta dirección contiene 0x1c8d273f
    El dato que se carga en $t0 es 0x1c8d273f

    Monografias.com

    Lectura de memoria: más detalles.
    El dato en memoria se ha de extender a lo largo cuatro posiciones consecutivas:
    El dato tiene 32 bits (4 bytes)
    Cada posición de memoria: 1 byte
    Son necesarias 4 posiciones seguidas.

    Monografias.com

    Hay varias formas de construir el dato en el registro.
    Extremista-superior: La posición de memoria del dato (0x1008) contiene el byte alto del dato
    Así funciona MIPS.
    Extremista-inferior: La posición de memoria del dato (0x1008) contiene el byte bajo del dato
    Así funciona el i386ex.

    Monografias.com

    MIPS es big-endian (Extremista superior).
    Una word ocupa 4 posiciones de memoria.
    La word que reside en la posición de memoria D está formada por los bytes que residen en las direcciones siguientes:
    D, D+1, D+2 y D+3.
    Se usan dos formas de cargar esa word en un registro:
    Cargando el extremo superior en primer lugar (Big endian)
    Cargando el extremo inferior en primer lugar (Little endian).
    ¡SPIM es little-endian!

    Monografias.com

    lw $t0, 8($s3) ¡intel! ?

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter