Memoria. Traps y Manejo de Memoria BadVAddr EPC. Status. Figura 4.1. Diagrama funcional.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Memoria. Traps y Manejo de Memoria BadVAddr EPC. Status. Figura 4.1. Diagrama funcional."

Transcripción

1 Capítulo 4. 1 Organización MIPS. Luego de la introducción informal del capítulo anterior, se describirán con detalle las principales características del procesador MIPS, desde un punto de vista del programador assembler. El siguiente es un diagrama funcional del procesador MIPS, que se estudiará en este curso. Memoria CPU Registros FPU Registros Alu Mul Div Hi L Unidad Aritmética Procesador Coprocesador 0 Traps y Manejo de Memoria BadVAddr Cause Coprocesador 1 Status EPC Figura 4.1. Diagrama funcional. Se ilustra el hecho que la unidad aritmética y lógica (ALU) no está conectada a la memoria. Sólo existe conexión entre los registros y la memoria. Dicha ALU está programada para operaciones aritméticas enteras.

2 2 Estructuras de Computadores Digitales Se dispone además de una unidad aritmética entera especializada en las operaciones de multiplicación y división, más adelante en el curso se estudiarán algoritmos para efectuar las multiplicaciones como una secuencia de sumas; y las divisiones como una secuencia de restas. Las instrucciones de multiplicación y división requieren más ciclos de reloj que una suma o resta. Esta unidad puede describirse según una máquina secuencial, a diferencia de la unidad para operaciones enteras, que según se verá, puede describirse en forma combinacional. Esta unidad emplea dos registros adicionales denominados HI (por high) y LO (por Low). Esto debido a que la multiplicación de dos cantidades de n dígitos cada una, se expresa en un producto de 2n dígitos. La división de dos cantidades de n dígitos se expresa en un cuociente de n dígitos y un resto de n dígitos. También se muestra una unidad especializada, dedicada a operar con números binarios reales (punto flotante). Se denomina FPU por Floating Point Unit. Se muestra también un coprocesador adicional dedicado al manejo de la memoria caché y virtual, además de atender las excepciones: Interrupciones causadas por dispositivos periféricos que demandan atención, o para tomar decisiones en caso de una división por cero, o poder recuperarse de un intento de direccionamiento ilegal. A continuación algunos aspectos conceptuales relativos a la memoria Memoria. Se denomina palabra (word) al contenido de una celda de la memoria. La cual puede leerse y escribirse en una sola operación. MIPS posee palabras de 32 bits. Las direcciones de memoria corresponden a datos de 8 bits (o sea un byte). Entonces hay 4 bytes en una palabra. Cuando se accesa a una palabra se leen 4 bytes simultáneamente. Existen dos formas de numerar los bytes contenidos en una palabra. Big endian: (IBM, Motorola, MIPS) Byte 0 Byte 1 Byte 2 Byte 3 Figura 4.2. Numeración big-endian. La dirección del byte más significativo termina en 00(en binario), sólo si la palabra está alineada.

3 Organización MIPS 3 Direcciones aumentan hacia abajo Little endian: (Intel, DEC) Byte 3 Byte 2 Byte 1 Byte 0 Figura 4.3. Bytes en la memoria. dirección de palabra dirección de palabra siguiente Byte 3 Byte 2 Byte 1 Byte 0 Figura 4.4. Numeración little-endian. La dirección del byte menos significativo termina en 00(en binario), sólo si la palabra está alineada. Direcciones aumentan hacia abajo Byte 0 Byte 1 Byte 2 Byte 3 Figura 4.5. Bytes en la memoria. dirección de palabra dirección de palabra siguiente El ancho de la dirección define el espacio de direccionamiento. Es decir el número total de palabras que podría tener la memoria. Éste también es el ancho del bus de dirección, que es el conjunto de señales que lo forman. Los buses suelen describirse con notación de arreglos, por ejemplo: ADD[31..0], es el bus de direcciones (address); y ADD2 sería una de las 32 señales. Las instrucciones ocupan una palabra alineada. Esto implica que las direcciones de instrucciones son múltiplos de 4. El alineamiento requiere que un objeto comience a ser almacenado en una dirección que sea un múltiplo de su tamaño. Ejemplos de direcciones válidas de palabras (en hexadecimal): 0, 4, 8, C, 10, 14, 18, 1C, 20,... Entonces la dirección 5 no es una dirección legal de una palabra. Direcciones alineadas de objetos que ocupen medias palabras (en hexadecimal) son: 0, 2, 4, 6, 8, A, C,...

4 4 Estructuras de Computadores Digitales Entonces la dirección 5 no es una dirección legal de un objeto que sea múltiplo de medias palabras. La definición anterior, de alineamiento, implica que el acceso a objetos (datos, que pueden ser de cualquier largo) y a instrucciones (que en este procesador son del tamaño de una palabra de memoria) se logre con un mínimo de accesos a memoria y con un mínimo de procesamiento Nombres de los Tipos de Datos. (Usuales en Procesadores) Bit: 0, 1 Bit String: secuencias de bits de determinado largo 4 bits nibble 8 bits byte 16 bits half-word 32 bits word 64 bits double-word Character: ASCII Código de 7 bits por símbolo. Existe también el expandido que ocupa un byte. Decimal: (BCD) Dígitos 0-9 codificados desde 0000b hasta 1001b Dos dígitos decimales empaquetados (en un byte) Enteros (Integers): Sin signo y con signo en complemento dos. Las representaciones de números binarios con signo se tratarán más adelante. Reales (Floating Point): Precisión Simple. Precisión Doble. Las representaciones de números reales en binario se tratarán más adelante. El procesador MIPS puede mover: bytes, medias palabras y palabras, desde registro hacia la memoria y viceversa. Puede procesar números enteros binarios de 32 bits, con y sin signo; además tiene capacidad de procesar números binarios reales o de punto flotante en simple y doble precisión. Estadísticas muestran que en punto flotante el 69% de las veces, en promedio, se emplean referencias a palabras dobles (64 bits, en este caso) y que el restante 31 % son accesos a palabras (de 32 bits). La frecuencia de referencias a operandos en memoria, por tamaño, en caso de enteros es: 74% referencias a palabras; 19% a medias palabras (16 bits) y sólo en un 7% de los casos, en promedio, se efectúan accesos a bytes.

5 Organización MIPS 5 Si se desea tratar enteros largos de 64 bits, se tendrá que desarrollar funciones, en base a operaciones enteras de 32, que son la que posee el procesador, que implementen las operaciones que se deseen(suma, resta, almacenar, cargar, etc.) El procesador MIPS no tiene operaciones al bit. El procesador 8051, posee un diseño especial que le permite manipular muy eficientemente los bits, razón por la cual se lo suele denominar procesador booleano Registros MIPS. 32 registros de 32 bits cada uno. Se requieren 5 bits para especificar un registro. La siguiente tabla ilustra los nombres simbólicos y numéricos de los registros, además de una disciplina para usarlos. Además están los registros Hi y Lo y uno que se denomina PC(program counter), el que permite almacenar la dirección de la instrucción que está en ejecución. Registros MIPS y las convenciones que gobiernan su uso. Nombre Registro Número Uso zero 0 Constante 0 at 1 Reservado para el assembler v0 2 Para evaluación de expresiones y v1 3 retorno de resultados de una función a0 4 Argumento 1 a1 5 Argumento 2 a2 6 Argumento 3 a3 7 Argumento 4 t0 8 Temporal (no se preserva a través de los llamados) t1 9 Temporal (no se preserva a través de los llamados) t2 10 Temporal (no se preserva a través de los llamados) t3 11 Temporal (no se preserva a través de los llamados) t4 12 Temporal (no se preserva a través de los llamados) t5 13 Temporal (no se preserva a través de los llamados) t6 14 Temporal (no se preserva a través de los llamados) t7 15 Temporal (no se preserva a través de los llamados) s0 16 Temporal que debe preservarse entre llamados a funciones s1 17 Temporal que debe preservarse entre llamados a funciones s2 18 Temporal que debe preservarse entre llamados a funciones s3 19 Temporal que debe preservarse entre llamados a funciones s4 20 Temporal que debe preservarse entre llamados a funciones s5 21 Temporal que debe preservarse entre llamados a funciones s6 22 Temporal que debe preservarse entre llamados a funciones s7 23 Temporal que debe preservarse entre llamados a funciones t8 24 Temporal (no se preserva a través de los llamados) t9 25 Temporal (no se preserva a través de los llamados) k0 26 Reservado para el núcleo del Sist. Operativo

6 6 Estructuras de Computadores Digitales k1 27 Reservado para el núcleo del Sist. Operativo gp 28 Puntero al área global de datos sp 29 Puntero al tope de la pila. Stack pointer fp 30 Puntero a zona de variables en la pila. Frame pointer ra 31 Dirección de retorno (usado en invocaciones a funciones) Figura 4.6. Registros, sus nombres y usos. El registro zero, contiene la constante cero, y no puede escribirse en él. En caso de intentarlo, no es causa de error Ciclo de Ejecución. El ciclo de ejecución de un procesador puede describirse como una secuencia repetitiva de los siguientes pasos (después de una etapa de inicio que consiste en determinar la primera instrucción): Búsqueda de instrucción: Obtiene desde la memoria la instrucción que será ejecutada. Debe especificarse cómo obtiene la primera instrucción. Decodificación de Instrucción: Determina el tipo de instrucción y su largo en caso de que la instrucción esté compuesta de varias palabras. Debe especificarse cómo estarán codificados los operandos, la operación y la dirección de la próxima instrucción. Búsqueda de Operandos: Localiza y obtiene los datos que son los operandos de la instrucción. Esto puede consistir en accesar registros o la memoria, o decodificar valores que vienen contenidos en la misma instrucción (operandos inmediatos), lo cual debe especificarse en la instrucción. Ejecución: Computa los valores del resultado y determina el estado de éste. Es decir realiza la operación con los operandos de entrada para generar un resultado. Y a la vez genera información sobre el resultado, por ejemplo si es positivo, o cero. Debe especificarse las operaciones que pueden realizarse y los tipos de datos sobre los que se efectuaran acciones. Almacenamiento de resultados: Deposita los resultados en la memoria de datos o en registros. Lo cual debe estar especificado en el código de la instrucción. Determinación de próxima instrucción: Determina cuál será la próxima instrucción que será ejecutada a continuación, ya sea por el cálculo efectuado durante la etapa de ejecución; o escoger por defecto, la siguiente instrucción. Debe especificarse los mecanismos que se emplearán para la determinación de la próxima instrucción, ya sea en saltos incondicionales, bifurcaciones o invocaciones a subrutinas. Los pasos descritos son comunes a todo procesamiento, cualquiera que sea el nivel de las instrucciones. En algunos casos puede que dos etapas se realicen simultáneamente, o que alguna etapa no esté presente.

7 Organización MIPS 7 Debe notarse que una instrucción debe especificar: los operandos de entrada (y cómo accesarlos), la operación, dónde depositar el resultado y cuál será la próxima instrucción. En el caso de instrucciones de máquina, las informaciones anteriores suelen codificarse en grupos de bits o campos Formatos de Instrucciones MIPS. Se denomina formato a la forma de la plantilla (virtual) que permite interpretar los campos de una instrucción. Como en este procesador RISC (conjunto reducido de instrucciones) interesa la ejecución veloz de instrucciones, se determinó emplear solamente instrucciones que ocupen una palabra; descartando así disponer de un repertorio con instrucciones de largo variable (un ejemplo de estos formatos lo veremos en el procesador 8051). MIPS posee sólo tres formatos, que se denominan: R, I y J Formato R. Para Operaciones. Op 6 Rs 5 Rt 5 Rd 5 Shamnt 5 Funct 6 Figura 4.7. Formato R. Se ilustra el tamaño y los nombres de los campos. Se disponen tres registros para especificar las dos fuentes de datos (rs y rt) y el lugar para almacenar el resultado (rd). Un grupo de estas instrucciones (las de corrimiento) ocupan el campo Shift Amount, que permite especificar el número de posiciones de bits, en que se desplazará uno de los operandos; su tamaño de cinco bits, permite desplazamientos de 0 a 31. Aquellas instrucciones que no ocupen este campo lo rellenan con ceros. Para simplificar la unidad combinacional que decodifica la operación a realizar, se fija en las 6 posiciones más significativas, en todos los formatos, el código de operación. Esto limitaría a 64 el número total de operaciones; pero veremos que el número total de operaciones es mayor de 64 y menor de 128. Para resolver esto, y mantener pequeño el código de operación, se emplea la técnica de expandir el código de operación. Esto se logra empleando, para todas las operaciones, lógicas y de corrimiento, el código de operación , y diferenciándolas mediante el campo funct de 6 bits (que también debe considerarse parte del código de operación). Las instrucciones que operan la administración de memoria y excepciones, también emplean el formato R, y ocupan el código de operación ; y también el campo funct, lo cual posibilita 64 operaciones de este tipo. De esta forma quedan disponibles 62 códigos para el resto de las instrucciones.

8 8 Estructuras de Computadores Digitales Un procesador con repertorio CISC (conjunto complejo de instrucciones) puede tener un número total de instrucciones muchísimo mayor; el microprocesador de 8 bits, el Z80, muy empleado alrededor de los setenta, permitía escribir alrededor de 1000 instrucciones diferentes. Uno de los repertorios más elaborados de tipo CISC es el 68000; y constituye un ejemplo de la complejidad que alcanzaron los diseños de computadores, que tenían como objetivo ofrecer a los programadores conjuntos sofisticados de instrucciones. El abandono de estos repertorios se debió al cambio de velocidad y comportamiento logrados con procesadores RISC Formato I. Para Inmediatas, transferencias y bifurcaciones. Op 6 Rs 5 Rt 5 Inmediato 16 Figura 4.8. Formato I. En las inmediatas: se emplean los 16 bits, menos significativos, con un valor. En la instrucción se programa una constante. De acuerdo a estadísticas no conviene que el tamaño del campo inmediato sea menor de 16 bits, esto explica el no emplear un código de operación mayor. Entonces basta especificar dos registros, uno para el otro operando (rs) ; el otro para depositar el resultado (rt). En operaciones lógicas se extienden los 16 bits a 32 con ceros en la parte más significativa. Si la operación es aritmética se extiende con signo (esto se verá más adelante). En las transferencias: el registro, especificado en Rs, se emplea como registro base, y el valor inmediato se interpreta como un desplazamiento (con signo) de 16 bits, los cuales permiten determinar una dirección efectiva de la memoria. Rt especifica el registro donde guardar (cargar) el dato leído desde la memoria en una operación load; y también el valor que será escrito en una palabra de la memoria en una operación store. En las bifurcaciones: los registros especifican los operandos que serán comparados. Y el campo de 16 bits se interpreta como un desplazamiento, con signo, relativo a PC. En algunas bifurcaciones en que se compara un registro con el valor cero, el registro Rt se llena con ceros. En otras bifurcaciones, también con respecto al valor cero, se emplea el campo Rt, para expandir el código de operación como se verá más adelante Formato J. Para Saltos (Jumps). Op 6 Dirección 26 Figura 4.9. Formato J.

9 Organización MIPS 9 El campo de 26 bits se emplea para configurar una dirección de salto, como se verá más adelante Repertorio MIPS I (tipo load-store) Descripción general de las Operaciones. La siguiente descripción permite lograr una visión global del repertorio de la Unidad Central, posibilitando así comenzar a programar con todo el repertorio a disposición. El texto guía introduce algunas sentencias assembler en forma gradual, destacando con mayor profundidad compromisos y principios de diseño; y es muy recomendable su lectura cuidadosa. Ayuda bastante, en la familiarización con el repertorio de instrucciones, el ejercitarse ejecutando las diferentes instrucciones en un simulador (SPIM en este caso). En las descripciones se ha preferido dejar en idioma inglés los nombres para facilitar el recuerdo de los códigos simbólicos de las instrucciones. Como se verá más adelante, las instrucciones que operan sobre direcciones deben usar las instrucciones aritméticas sin signo. Las que tratan enteros con signo, obviamente deben emplear instrucciones con signo Aritméticas y Lógicas. Formato R. (10 instrucciones). Todas de tres operandos. Add, AddU, Sub, SubU, And, Or, Xor, Nor, SLT, SLTU Instrucción Ejemplo Significado en C. Comentarios add add $t1, $t2,$t3 $t1 = $t2 + $t3 si hay rebalse genera excepción add unsigned addu $t1,$t2,$t3 $t1 = $t2 + $t3 no genera excepción subtract sub $t1,$t2,$t3 $t1 = $t2 $t3 si hay rebalse genera excepción subtract subu $t1,$t2,$t3 $t1 = $t2 $t3 no genera excepción unsigned and and $t1,$t2,$t3 $t1 = $t2 & $t3 or or $t1,$t2,$t3 $t1 = $t2 $t3 xor xor $t1,$t2,$t3 $t1 = $t2 ^ $t3 or exclusivo. nor nor $t1,$t2,$t3 $t1 = ~($t2 $t3) set on less slt $t1,$t2,$t3 if ($t2 < $t3) $t1=1; Compara números. than set less than unsigned else $t1=0; sltu $t1,$t2,$t3 if ($t2 < $t3) $t1=1; else $t1=0; Figura Istrucciones aritméticas y lógicas. Formato R. (con signo). Compara números naturales (sin signo).

10 10 Estructuras de Computadores Digitales slt compara el contenido de dos registros (que contienen números con signo) y coloca (set) el registro destino en uno si el registro en la segunda posición es menor que el que está en la tercera posición. Se emplea la notación del lenguaje C, para representar la expresión que describe lo que realiza la instrucción (semántica). Sobre números con signo. Algunas de las instrucciones son para números sin signo (llevan una u al final, por unsigned). Los enteros se representan en una palabra de la memoria, y sus valores dependen del ancho de palabra que tenga la memoria (en MIPS son de 32 bits). El procesador emplea representación complemento a dos para representar números con signo. Suponiendo un largo de palabra de la memoria de 3 bits (en lugar de 32), para simplificar la explicación, se tienen las siguientes representaciones: Representación interna Secuencia Binaria Representación Externa. Equivalente Decimal. Enteros Fracciones Sin Comp. Comp. Signo- Sin Con signo. signo a dos a uno Magnitud signo Comp. dos /8 +1/ /8 +2/ /8 +3/ /8-4/ /8-3/ /8-2/ /8-1/4 Figura Interpretación de secuencias binarias numéricas. Nótese que en todas las representaciones de números negativos, el bit más significativo corresponde al signo del número, detalles se verán más adelante. Para obtener un número en complemento a uno, basta cambiar sus unos por ceros y sus ceros por unos. Si tenemos: 010, su complemento uno es 101. Y el complemento uno de 101 es 010. El negativo de un número se obtiene complementándolo.

11 Organización MIPS 11 El complemento a dos es el complemento a uno más uno (sumarle uno en binario). Esto se insinúa con pequeñas flechas en las columnas de las representaciones externas, en decimal. Las columnas de interpretación, de las secuencias binarias, están desplazadas en la unidad. Si tenemos: 010, su complemento 1 es 101 y al sumarle uno queda: = 110 Si tenemos: 101, su complemento 1 es 010 y al sumarle uno queda: = 011 El negativo de un número se obtiene complementándolo, excepto para el mayor negativo que no tiene complemento en tres cifras. De esta manera para restar, basta sumar el complemento. Nótese que en complemento a uno existen dos ceros; pero el rango de representación es simétrico. Electrónicamente es sencillo generar el complemento a uno de una palabra: A2 A1 A0 Comp B2 B1 B0 Figura Generación complemento a uno. Si Comp ==1 se tiene que B es complemento uno de A; en caso contrario: B = A. En complemento a dos, existe un cero, pero con rango de representación asimétrico. Para 16 bits, en C-2(complemento dos), el rango de representación es desde -(2^15) hasta +(2^15 )-1; lo cual equivale al intervalo desde hasta Electrónicamente es sencillo realizar sumas o restas en complemento dos. Mediante un sumador binario, basta incorporar un uno a la reserva de entrada y pasar el sustraendo en complemento a uno, para realizar restas. El esquema siguiente ilustra lo anterior:

12 12 Estructuras de Computadores Digitales A2 A1 A0 Comp = 1 B2 ~A2 B1 ~A1 B0 ~A0 Cin S. C. S. C. S. C. C2 S2 C1 C0 S1 S0 Figura Sumas y restas en complemento a dos. Nótese que Cin puede unirse a Comp. Para restar se requiere Cin = 1 y Comp = 1; y para sumar, ambas señales deben ser cero. La red combinacional que se ilustra en el diagrama anterior permite sumar y restar números; se ilustra el caso de la resta (B - A), ya que se ingresa al sumador el complemento a dos del operando A. El bloque, denominado S.C., por sumador completo de un bit, tiene tres entradas y dos salidas, con la siguiente tabla de verdad: Bi Ai Cini Couti Si Entradas Salidas Figura Tabla de verdad del sumador completo. La real ventaja del sistema complemento a dos (respecto al sistema complemento a uno), es que las redes combinacionales para efectuar comparaciones, con y sin signo, son más sencillas de realizar, como se verá en detalle más adelante.

13 Organización MIPS 13 En el caso de corrimientos aritméticos (de números con signo, en complemento a dos), debe notarse que las posiciones que quedan vacías por la izquierda deben rellenarse con el bit del signo. También, debido a que el sistema es posicional, un corrimiento aritmético a la derecha es equivalente a una división entera por dos, en la que se descarta el resto. El siguiente ejemplo, con largo de palabra igual a cinco, ilustra lo anterior: El entero decimal 14, con signo, se expresa en binario según: Al correrlo a la derecha, en una posición, debería resultar el decimal 7. El cual en binario es: El entero decimal -14, con signo, se expresa según: Al correrlo aritméticamente a la derecha, en una posición, debería resultar el decimal -7. El cual en binario es: Cuando sale un cero, por la derecha, el resultado es exacto. El entero decimal 15, con signo, se expresa según: Al correrlo a la derecha, en una posición, resulta el binario 00111, que equivale al 7. Se produce truncamiento. El entero decimal -15, con signo, se expresa según: Al correrlo a la derecha, en una posición, resulta el binario 11000, que equivale al decimal -8. También se produce truncamiento Corrimientos Aritméticos y Lógicos. Formato R. (6 instrucciones). Todas de tres operandos. SLL, SRL, SRA, SLLV, SRLV, SRAV La palabra shift significa corrimiento. Left significa izquierdo. Right significa derecha. Instrucción Ejemplo Significado en C. Comentarios shift left logical sll $t1,$t2,10 $t1 = $t2 << 10 Inmediato(por constante) shift right logical srl $t1,$t2,10 $t1 = $t2 >> 10 Inmediato(por constante) shift right arithm. sra $t1,$t2,10 $t1 = $t2 >> 10 Con signo. Divide. shift left logical var. sllv $t1,$t2,$t3 $t1 = $t2 << $t3 Variable(por registro) shift right logical var srlv $t1,$t2,$t3 $t1 = $t2 >> $t3 Variable(por registro) Figura Corrimientos aritméticos y lógicos. Cuando se pasa el argumento del corrimiento en registros, sólo se consideran los cinco bits menos significativos de este argumento. Ejemplo: si $a1 tiene almacenado 33 decimal, la instrucción sllv $a0, $a0, $a1 tiene el mismo efecto que sll $a0, $a0, 1.

14 14 Estructuras de Computadores Digitales Aritméticas y Lógicas. Inmediatas. Formato I. (8 instrucciones). AddI, AddIU, AndI, OrI, XorI, SLTI, SLTIU, LUI Instrucción Ejemplo Significado en C. Comentarios add immediate addi $t1,$t2,100 $t1 = $t Genera excepción. Con signo. add imm. addiu $t1,$t2,100 $t1 = $t No genera excepción. unsigned and immediate andi $t1,$t2,10 $t1 = $t2 & 10 Extendido con ceros. or immediate ori $t1,$t2,10 $t1 = $t2 10 Extendido con ceros. xor immediate xori $t1,$t2,10 $t1 = $t2 ^10 Extendido con ceros. set less than imm set less than imm. uns. load upper immediate slti $t1,$t2,100 if ($t2 < 100) $t1=1; else $t1=0; Compara menor que, con constante inmediata. Con signo. sltiu $t1,$t2,100 if ($t2 < 100) $t1=1; else $t1=0 lui $t1, 40 (16 bits corridos a la izquierda en 16 posiciones) Figura Instrucciones aritméticas y lógicas. Compara menor que, sin signo. Números naturales. El valor inmediato es una constante que puede expresarse en 16 bits. Con signo, en el caso de addi y slti; y sin signo, en caso de addiu y sltiu. Por ejemplo 0x12345 no puede expresarse en 16 bits, requiere 17. En operaciones aritméticas inmediatas con signo, el operando inmediato de 16 bits debe extenderse a 32, antes de realizar la operación de suma o comparación. El bit 15 del operando inmediato (el más significativo), es el bit del signo; es uno si el número es negativo y cero si es positivo. Si tenemos largo 3, el decimal -1 se expresa según: 111. Si tenemos largo 6, el decimal -1 se expresa según: Entonces para extender, con signo, a 32 bits, en las posiciones 31 a 16 se coloca el valor del bit 15 del inmediato. Esto es sencillo de implementar electrónicamente, como se verá más adelante Accesos a Memoria. Formato I. Transferencias de datos. LB, LBU, LH, LHU, LW, LWL, LWR SB, SH, SW, SWL, SWR (7 instrucciones) (5 instrucciones)

15 Organización MIPS 15 Instrucción Ejemplo Significado en C. Comentarios Load byte LB $t1, 40($t2) $t1 = M[ ($t2) + 40] rellena 24 primeras posiciones de $t1 con bit signo. Load byte LBU $t1, 40($t2) $t1 = M[ ($t2) + 40] rellena 24 primeras posiciones unsigned Load halfword Load halfword unsigned de $t1 con ceros. LH $t1, 40($t2) $t1 = M[ ($t2) + 40] Rellena primeras 16 posiciones de $t1 con bit signo. La dirección efectiva debe terminar en 00 ó en 10(en binario). LHU $t1, 40($t2) $t1 = M[ ($t2) + 40] rellena primeras 16 posiciones de $t1 con ceros. Load word LW $t1, 40($t2) $t1 = M[ ($t2) + 40] Store byte SB $t1, 41($t2) M[ ($t2)+ 41] = $t1 Carga los ocho bits menos significativos de $t1 en el byte apuntado por la dirección efectiva. Store half SH $t1, 42($t2) M[ ($t2)+ 42] = $t1 Almacena los 16 bits menos significativos de $t1, en la media palabra apuntada por la dirección efectiva. Esta dirección debe terminar en 00 ó en 10(en binario). Store word SW $t1,100($t2) M[ ($t2)+ 100] = $t1 La dirección efectiva debe terminar en 00 (en binario; es decir, debe ser la dirección de una palabra alineada). Figura Movimientos entre registros y memoria. El campo inmediato se interpreta como un número con signo, y corresponde al offset(respecto del registro base) en bytes Multiplicación y División. (8 instrucciones, en formato R). No existe una referencia para el destino, ya que los resultados se expresan en dos partes de 32 bits, se rellena con ceros el campo destino, cuando la instrucción no lo requiera. Se emplean dos registros denominados HI (por high) y LO (por Low), para depositar el resultado.

16 16 Estructuras de Computadores Digitales Inicio de multiplicación y división entera. MULT, MULTU, DIV, DIVU Instrucción Ejemplo Significado en C. Comentarios multiply mult $t2,$t3 Hi, Lo = $t2 * $t3 producto de 64-bit con signo multiply unsigned multu $t2,$t3 Hi, Lo = $t2 * $t3 producto de 64-bit sin signo divide div $t2,$t3 Lo = $t2 $t3 Hi = $2 mod $3 Lo = cuociente Hi = resto divide unsigned divu $t2,$t3 Lo = $t2 $t3 Hi = $t2 mod $t3 Lo = cuociente sin signo Hi = resto Move result from. Figura Inicio de multiplicación o división. Mueve el resultado de la multiplicación o división a un registro del procesador. MFHI, MFLO Instrucción Ejemplo Significado en C. Comentarios Move from Hi mfhi $t1 $t1 = Hi Obtiene copia de Hi Move from Lo mflo $t1 $t1 = Lo Obtiene copia de Lo Figura Mueve el resultado Move to HI or LO. MTHI, MTLO rd Instrucción Ejemplo Significado en C. Comentarios Move to Hi mthi $t1 Hi = $t1 Carga registro Hi Move to Lo mtlo $t1 Lo = $t1 Carga registro Lo Figura Carga registros en la unidad de multiplicación.

17 Organización MIPS Comparaciones y Bifurcaciones. (8 instrucciones, en formato I) Comparaciones entre registros y bifurcación. Las siguientes comparaciones entre registros seguidas de una bifurcación se describen en assembler y mediante las transferencias lógicas que realizan: assembler Transferencias lógicas BEQ rs, rt, offset if R[rs] == R[rt] then PC =( PC+4) + offset*4; BNE rs, rt, offset if R[rs] <> R[rt] then PC =( PC+4) + offset*4; Instrucción Ejemplo Significado en C. Comentarios Branch on equal beq $t1,$t2,100 if ($t1 == $t2) PC =(PC+4)+100*4; Test de igualdad. Bifurcación relativa a PC en el número de instrucciones indicadas en el branch on not eq. bne $t1,$t2,100 if ($t1!= $t2) PC =(PC+4)+100*4; Figura Comparaciones entre registros. El campo inmediato es el número, con signo, de instrucciones. campo inmediato (con signo). Test de desigualdad, salto relativo a PC. En la programación assembler el campo inmediato se escribe como un rótulo. Es decir un identificador de la dirección hacia donde continuar ejecutando instrucciones si se cumple la condición. El ensamblador calcula el campo inmediato numérico que se requiere. Delegar esta tarea a un programa fue una gran contribución a la programación; ya que si, por ejemplo, se intercalara una instrucción, deberían recalcularse los saltos relativos. Nótese que los saltos son relativos a la dirección de la próxima instrucción (PC+4). Todas las comparaciones (mayor que, mayor o igual que, menor que, menor o igual que, igual que, diferente de) pueden implementarse en base a slt y beq. Lo cual puede concluirse de la siguiente tabla, en la cual se ha empleado los operadores del lenguaje C, para escribir las expresiones. Todas las construcciones se elaboran en base al operador <, menor que. Expresión relacional Expresión lógica equivalente En base a op. < a <= b ~( b < a ) ~( b < a ) a = = b ( a<= b) & ( b <= a ) ~(b<a)&(~(a<b)) a!= b ~( a = = b) (b<a) (a<b) a > = b b <= a ~( a < b ) a > b b < a b < a Figura Operadores relacionales.

18 18 Estructuras de Computadores Digitales Puede usarse otro operador relacional (en lugar del menor, mostrado antes) a partir del cual lograr todos los operadores relacionales Comparaciones de un registro con cero, seguida de bifurcación. assembler Transferencias lógicas BLEZ rs, offset if R[rs] <= 0 then PC =( PC+4) + offset*4; BGTZ rs, offset if R[rs] > 0 then PC =( PC+4) + offset*4; BLTZ rs, offset if R[rs] < 0 then PC =( PC+4) + offset*4; BGEZ rs, offset if R[rs] >= 0 then PC =( PC+4) + offset*4; BLTZAL rs, offset if R[rs] < 0 then {ra = (PC+4); PC =(PC+4) + offset*4;} BGEZAL rs, offset if R[rs] >= 0 then {ra = (PC+4); PC =(PC+4) + offset*4;} Figura Comparaciones con cero. ra es el mnemónico de return address y corresponde al registro $31. Se pueden realizar otras comparaciones y bifurcaciones con dos instrucciones (ver macros en assembler) Estadísticas relativas a bifurcaciones. Estadísticas muestran que en el caso de procesamiento de enteros, la frecuencia de ocurrencia de bifurcaciones en promedio, por tipo es: 86 % pertenecen al grupo equal y no equal; un 7% al grupo LT, GE y el 7% restante al grupo GT. En caso de punto flotante, como se enseña en un curso de programación, se evitan las comparaciones con cero. La frecuencia del grupo LT, GE es de un 40 %, la de GT, LE es de un 23%; y la del grupo EQ, NE es de un 37%. Otro aspecto estadístico notable es que las bifurcaciones en comparación entre enteros, en un 25% de los casos saltan a instrucciones ubicadas a 3 ó 4 instrucciones de la bifurcación, tanto hacia delante como hacia atrás. En general, la tendencia central de la distribución está ubicada en más o menos 16 instrucciones relativas a la posición donde se encuentra la bifurcación. Lo anterior implica una localidad espacial del código (instrucciones); esto quiere decir que al ejecutarse un programa es muy probable que en un pequeño grupo de palabras adyacentes de memoria estén las instrucciones que corrientemente se están ejecutando (esto justifica la incorporación de memoria caché, como se verá más adelante).

19 Organización MIPS Flujo de ejecución. Flags. En los diseños de computadores se han empleado tres técnicas para implementar el cambio de flujo de la secuencia de ejecución de instrucciones. En los diagramas de flujo se suele dibujar un rombo, del modo siguiente, para indicar un cambio de la secuencia de ejecución: Figura Decisión. Esta componente está presente en las alternativas (if then else) y en las repeticiones (while, repeat until, y for). a) Códigos de condición: Cuando se efectúa una operación aritmética, se registran en flip-flops algunas condiciones (o flags) de interés (rebalse, resultado cero, paridad del resultado, reserva de salida, resultado positivo, resultado negativo). Esta información suele agruparse en un registro de estado del procesador. Debe notarse que además de efectuar la operación se setean las condiciones; por esta razón se dice que esto es un efecto lateral. Luego las instrucciones de bifurcación o saltos condicionales se implementan encuestando a dichos bits. Esta metodología está ampliamente difundida, y es la que emplea el microcontrolador 8051, por ejemplo. Su principal ventaja es que logra reducir el número de instrucciones para implementar una decisión. Entonces el bloque de decisión se implementa ejecutando dos instrucciones, una que efectúa el seteo de los flags y la sigue a continuación una instrucción de bifurcación. Desgraciadamente no todas las instrucciones setean dichos bits del mismo modo, y el programador debe conocer una tabla de estados de los códigos de condición después de realizada cada instrucción. En esa tabla existen muchas condiciones superfluas, lo cual produce confusión, si no se la tiene presente. La mayor desventaja de esta metodología es que provoca una dependencia entre las dos instrucciones: la que setea las condiciones y la que hace un test sobre éstas. En el caso de ejecución traslapada (segmentada o pipeline) esta forma de diseño provoca dificultades, esto podrá comprenderse más adelante. Lo importante, por el momento, es aceptar que en máquinas segmentadas no se diseña con códigos de condición, y se emplea instrucciones de Comparación y salto (punto c). Por ejemplo, la repetición de un bloque de instrucciones, que comienza en el rótulo bloque, mientras el registro R sea mayor que cero, puede codificarse:

20 20 Estructuras de Computadores Digitales bloque:... sub R, R, #1 ;R--, se le resta un inmediato de valor uno a R. Setea flags. brp bloque ; salto condicional con el flag Plus (resultado positivo) b) Registro de Condiciones. Los flags son ahora seteados sólo por instrucciones especiales de comparación. Las operaciones aritméticas o de corrimiento no producen las condiciones. Esta forma evita los efectos laterales y ofrece una metodología más simple para programar los bloques de decisión. Su desventaja está en que se requieren más instrucciones que en el caso anterior. Por ejemplo, la repetición de un bloque de instrucciones, que comienza en el rótulo bloque, mientras el registro R sea mayor que cero, puede codificarse: bloque:... sub R, R, #1 ;R--, se le resta un inmediato de valor uno a R. cmp R, #0 ;compara R con el inmediato 0. Setea flag. brp bloque ; salto condicional con el flag Plus(resultado positivo) En MIPS se dispone de la instrucción set on less, que efectúa una comparación entre registros y setea un registro. Y luego puede efectuarse una comparación empleando el registro zero. Se usa $t2 como registro de condiciones y $t1 como el registro R. bloque:... slt $t2, $zero, $t1 ; if ( 0< t1) t2= 1; else t2 =0; bne $t2, #zero, bloque ; Si t2 no es cero, repite el bloque c) Instrucción de Comparación y Bifurcación. En este caso la instrucción compara dos operandos y efectúa la bifurcación. Por ejemplo, en MIPS, la repetición de un bloque de instrucciones, que comienza en el rótulo bloque, mientras el registro R sea mayor que cero, puede codificarse según: bloque:... BGTZ $t1, bloque Se empleó $t1 como el registro R Saltos incondicionales y enlace a subrutinas. Las siguientes son de formato J.

21 Organización MIPS 21 Instrucción Ejemplo Significado en C. Comentarios jump j rótulo go to rótulo Salto incondicional. jump and link jal rótulo $ra = (PC + 4); go to rótulo; Para enlazar con subrutina (call ) Figura Saltos y enlaces a subrutinas. La codificación del campo de 26 bits (add26) de la instrucción se logra, según la ecuación: donde rótulo simboliza una dirección de 32 bits. rótulo = (PC+4)&F add26*4 Las siguientes son de formato R. Instrucción Ejemplo Significado en C. Comentarios jump register jr $t1 PC = $t1; go to $t1 jr $ra PC = $ra Para retorno de subrutina jump and link vía registro jalr $t1 $ra = (PC + 4); PC = $t1; Para enlazar con subrutina (call ) Control de coprocesadores. Figura Saltos y enlaces en formato R. Se tienen cerca de 10 instrucciones, en formato R. Algunos ejemplos: syscall, break, nop, rfe, etc.. Para mayores detalles del repertorio, ver manual del programador Modos de direccionamiento MIPS. Registro (directo): El valor efectivo del operando es el contenido en el registro. Inmediato: El valor del operando es el campo inmediato de 16 bits. Si el operando es un valor lógico, se extiende a 32 agregando ceros. Si el operando es aritmético se extiende con signo a 32 bits. Base+índice: Se usa en load, store. El contenido de rs + inmediato (extendido en forma aritmética) es la dirección efectiva. El campo inmediato se interpreta como el número de bytes relativo al registro base.

22 22 Estructuras de Computadores Digitales Relativo a PC: En bifurcaciones (branch ) Al valor de PC se le suma el valor inmediato extendido en forma aritmética. El valor inmediato es el número de instrucciones que salta. En saltos ( j, jal,jr): El valor inmediato (que en este caso es de 26 bits) se multiplica por cuatro (de esta forma quedan 28 bits), y los primeros 4 bit se toman del valor de PC de la instrucción siguiente (formando así los 32 de la dirección). Otros modos. El direccionamiento del tipo registro indirecto, puede lograrse con el de base+offset, empleando offset cero. En base a estos direccionamientos pueden obtenerse otros más complejos. Pero se requiere ejecutar más de una instrucción. Existen algunos macros en el ensamblador que operan de este modo. Ejemplos son la (por load address) y li (por load immediate), Move (por mover de un registro a otro). Como no se puede cargar un inmediato de 32 bits en un registro. Para poder tener acceso a toda la memoria, se dispone de la instrucción lui (Load upper immediate). Carga en los 16 bits más significativos de un registro el campo inmediato. Coloca ceros en los 16 menos significativos. En repertorios con modos complejos de direccionamiento y operandos que hacen referencias a la memoria suele emplearse un campo de la instrucción para especificar el modo de direccionamiento; pero cuando se tiene un modelo de carga-almacenamiento y uno o dos modos de direccionamiento suele especificarse el modo de direccionamiento a través del código de operación Niveles de Representación Cualquier algoritmo (secuencia organizada de acciones para cumplir un objetivo dado) puede describirse en diferentes niveles. Lenguaje de alto nivel. Por ejemplo C. Puede ser un buen punto de partida para describir en general las ideas. Especifica las variables y sus tipos, y la acción que se realiza sobre ellos. Reemplaza a un diagrama de flujo, y tiene la ventaja de que puede ejecutarse y permitir su depuración, hasta comprobar que realiza la acción requerida. Por ejemplo la descripción de intercambiar dos elementos de un arreglo, puede representarse según:

23 Organización MIPS 23 temp = v[ k]; v[ k] = v[ k+ 1]; v[ k+ 1] = temp; v[k] 2 v[k+1] 1 3 temp Figura Intercambio de valores. Swap. Los números sobre las flechas indican el orden de ejecución de las instrucciones del programa en C. Un compilador traduce un lenguaje de alto nivel en assembler. Assembler Simbólico. Por ejemplo un programa MIPS. La descripción del texto anterior, en assembler, es un nivel más bajo de representación. $s2 v[k] v[k+1] $t0 3 $t1 Figura Swap en assembler. Suponiendo que las variables, almacenadas en la memoria, están asociadas a los registros según se indica en el diagrama anterior, se tiene que la siguiente secuencia assembler realiza el intercambio de variables. Nótese que el registro s2 es un puntero al elemento k del arreglo. Y que el tipo de datos de las variables es entero, esto implica que la dirección de la componente adyacente mayor esté ubicada a 4 bytes de la dirección de v[k](que está almacenada en s2). lw $t0, 0($s2) lw $t1, 4($s2) sw $t1, 0($s2) sw $t0, 4($s2) El texto anterior puede ser traducido a un assembler numérico, en el cual se reemplacen los registros por sus números: lw $8, 0($18) lw $9, 4($18) sw $9, 0($18) sw $8, 4($18)

24 24 Estructuras de Computadores Digitales El ensamblador traduce el código assembler a un programa objeto. El ligador (linker) pasa el programa objeto a una secuencia binaria. Lenguaje de Máquina. Binario. El segmento anterior, una vez reemplazados los campos por sus códigos binarios puede escribirse en hexadecimal según: 0x8e x8e xae xae Y en binario según: Transferencias. Las instrucciones podrían describirse por las transferencias lógicas que implican, según: R[8] = MEM[ R[18] + sign_ext(0)]; PC = PC + 4; R[9] = MEM[ R[18] + sign_ext(4)]; PC = PC + 4; MEM[ R[18] + sign_ext(0)] = R[9]; PC = PC + 4; MEM[ R[18] + sign_ext(4)] = R[8]; PC = PC + 4; Las que a su vez puede ser descritas por secuencias de transferencias físicas entre registros: IR = MemInst[PC], PC=PC+4; A = R[18]; S = A + signext(0); M = MemDat[S]; R[8] = M. IR = MemInst[PC], PC=PC+4; A = R[18]; S = A + signext(4); M = MemDat[S]; R[9] = M. IR=MemInst[PC], PC=PC+4; A=R[18], B=R[9]; S = A + signext(0); MemDat[S] = B. IR=MemInst[PC], PC=PC+4; Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Instrucción.

25 Organización MIPS 25 A=R[18], B=R[8]; S = A + signext(4); MemDat[S] = B. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Las secuencias anteriores se explicarán más adelante, y dependen de las conexiones internas del procesador y de los recursos que éste disponga. Control. En forma alternativa puede describirse las secuencias de las señales de control que activan las transferencias físicas. El hardware interpreta el lenguaje de máquina, mediante una secuencia de microinstrucciones, cuya descripción son las señales de control que se activan en cada ciclo del reloj:. npc_sel = +4, WE PC, WE IR ; WE A ; AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; MemRd, WE M ; RegDst = "rt", Memtoreg = "mem", RegWr. npc_sel = +4, WE PC, WE IR ; WE A ; AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; MemRd, WE M ; RegDst = "rt", Memtoreg = "mem", RegWr. npc_sel = +4, WE PC, WE IR ; WE A ; WE B ; AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; MemWr. npc_sel = +4, WE PC, WE IR ; WE A ; WE B ; AluSrc = "Op32", ExtOp = sign, AluCtr = add,we S ; MemWr. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Registros. Escritura. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Unidad Instrucción. Unidad Registros. Lectura. Unidad Operaciones. Unidad Memoria Datos. Las secuencias de control anteriores se explicarán más adelante, y dependen de las conexiones internas del procesador y de los recursos que éste disponga.

26 26 Estructuras de Computadores Digitales Índice general. CAPÍTULO ORGANIZACIÓN MIPS MEMORIA NOMBRES DE LOS TIPOS DE DATOS. (USUALES EN PROCESADORES) REGISTROS MIPS CICLO DE EJECUCIÓN FORMATOS DE INSTRUCCIONES MIPS Formato R. Para Operaciones Formato I. Para Inmediatas, transferencias y bifurcaciones Formato J. Para Saltos (Jumps) REPERTORIO MIPS I (TIPO LOAD-STORE) Descripción general de las Operaciones Aritméticas y Lógicas Corrimientos Aritméticos y Lógicos Aritméticas y Lógicas. Inmediatas Accesos a Memoria Multiplicación y División. (8 instrucciones, en formato R) Inicio de multiplicación y división entera Move result from Move to HI or LO Comparaciones y Bifurcaciones. (8 instrucciones, en formato I) Comparaciones entre registros y bifurcación Comparaciones de un registro con cero, seguida de bifurcación Estadísticas relativas a bifurcaciones Flujo de ejecución. Flags Saltos incondicionales y enlace a subrutinas Control de coprocesadores MODOS DE DIRECCIONAMIENTO MIPS NIVELES DE REPRESENTACIÓN...22 Lenguaje de alto nivel. Por ejemplo C Assembler Simbólico. Por ejemplo un programa MIPS...23 Lenguaje de Máquina. Binario...24 Transferencias...24 Control ÍNDICE GENERAL ÍNDICE DE FIGURAS....27

27 Organización MIPS 27 Índice de figuras. FIGURA 4.1. DIAGRAMA FUNCIONAL FIGURA 4.2. NUMERACIÓN BIG-ENDIAN... 2 FIGURA 4.3. BYTES EN LA MEMORIA... 3 FIGURA 4.4. NUMERACIÓN LITTLE-ENDIAN FIGURA 4.5. BYTES EN LA MEMORIA... 3 FIGURA 4.6. REGISTROS, SUS NOMBRES Y USOS FIGURA 4.7. FORMATO R FIGURA 4.8. FORMATO I....8 FIGURA 4.9. FORMATO J....8 FIGURA ISTRUCCIONES ARITMÉTICAS Y LÓGICAS. FORMATO R... 9 FIGURA INTERPRETACIÓN DE SECUENCIAS BINARIAS NUMÉRICAS FIGURA GENERACIÓN COMPLEMENTO A UNO FIGURA SUMAS Y RESTAS EN COMPLEMENTO A DOS FIGURA TABLA DE VERDAD DEL SUMADOR COMPLETO FIGURA CORRIMIENTOS ARITMÉTICOS Y LÓGICOS FIGURA INSTRUCCIONES ARITMÉTICAS Y LÓGICAS FIGURA MOVIMIENTOS ENTRE REGISTROS Y MEMORIA FIGURA INICIO DE MULTIPLICACIÓN O DIVISIÓN FIGURA MUEVE EL RESULTADO FIGURA CARGA REGISTROS EN LA UNIDAD DE MULTIPLICACIÓN FIGURA COMPARACIONES ENTRE REGISTROS FIGURA OPERADORES RELACIONALES FIGURA COMPARACIONES CON CERO FIGURA DECISIÓN FIGURA SALTOS Y ENLACES A SUBRUTINAS FIGURA SALTOS Y ENLACES EN FORMATO R FIGURA INTERCAMBIO DE VALORES. SWAP FIGURA SWAP EN ASSEMBLER... 23

Organización procesador MIPS

Organización procesador MIPS Organización procesador MIPS Organización MIPS Memoria CPU Registros FPU Registros Alu Mul Div Hi Lo U. Aritmética Traps Manejo de Memoria Organización MIPS Unidad Aritmética y Lógica (ALU). Unidad Aritmética

Más detalles

El siguiente es un diagrama funcional del procesador MIPS, que se estudiará en este curso. Memoria

El siguiente es un diagrama funcional del procesador MIPS, que se estudiará en este curso. Memoria 4. Organización MIPS. Luego de la introducción informal del capítulo anterior, se describirán con detalle las principales características del procesador MIPS, desde un punto de vista del programador assembler.

Más detalles

Generación de un ejecutable

Generación de un ejecutable ASSEMBLER Generación de un ejecutable Programa de alto nivel Programa Compiler Assembler Linker Archivo Ejecutable Programa en lenguaje assembler Archivo Fuente Assembler Archivo Objeto Archivo Fuente

Más detalles

Organización de Computadoras. Principios de Conjuntos de Intrucciones

Organización de Computadoras. Principios de Conjuntos de Intrucciones Organización de Computadoras Principios de Conjuntos de Intrucciones Clasifición de las ISA Secuencia de Código para C = A + B Stack Acumulador Registro (Reg-Mem) Registro (load-store) Push A Load A Load

Más detalles

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Organización del Computador I Verano MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy Verano 2014 Profesora Borensztejn Arquitectura MIPS (R2000) Registros Formato de Instrucción

Más detalles

El Conjunto de Instrucciones de la Arquitectura Lagarto I

El Conjunto de Instrucciones de la Arquitectura Lagarto I Sistema de numeración maya (base 20), se considera el primer sistema numérico que uso el cero. El Conjunto de Instrucciones de la Arquitectura Lagarto I i Resumen El conjunto de instrucciones de la arquitectura

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática

Fundamentos de los Computadores Grado en Ingeniería Informática Repaso Arquitectura MIPS Fundamentos de los Computadores Grado en Ingeniería Informática Arquitectura MIPS Registros Instrucciones Organización de memoria Formato de las instrucciones Modos de direccionamiento

Más detalles

8. Diseño de la codificación binaria del repertorio de Instrucciones.

8. Diseño de la codificación binaria del repertorio de Instrucciones. 8. Diseño de la codificación binaria del repertorio de Instrucciones. Se desea elegir los códigos binarios de las instrucciones. Esta parte, en forma indirecta especifica lo que debe realizar un programa

Más detalles

El repertorio de instrucciones

El repertorio de instrucciones El repertorio de instrucciones Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

Plataformas de soporte computacional: arquitecturas avanzadas,

Plataformas de soporte computacional: arquitecturas avanzadas, Plataformas de soporte computacional: arquitecturas avanzadas, sesión Diego R. Llanos, Belén Palop Departamento de Informática Universidad de Valladolid {diego,b.palop}@infor.uva.es Índice. Arquitectura

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos y Arquitectura de Computadores (ITTSE UV) REGISTROS DEL MIPS32 Nombre Código del Uso común registro $zero 0 El contenido de este registro siempre es nulo $v0 - $v1 2 3 Valores de retorno para las llamadas al sistema $a0 - $a3 4 7 Argumentos para

Más detalles

Unidad 3. Facultad de Ciencias Departamento de Electrónica

Unidad 3. Facultad de Ciencias Departamento de Electrónica Universidad Autónoma de San Luis Potosí Facultad de Ciencias Departamento de Electrónica Unidad 3 Instrucciones: Lenguaje de la Computadora Dra. Ruth M. Aguilar Ponce Primavera Unidad 3 Operaciones del

Más detalles

Fundamentos y Arquitectura de Computadores (ITTSE UV)

Fundamentos y Arquitectura de Computadores (ITTSE UV) Fundamentos y Arquitectura de Computadores (ITTSE UV) F. Micó REGISTROS DEL MIPS R2000/R3000 Nombre Código del Uso registro $zero 0 Valor constante 0 $v0 - $v1 2 3 Valores de retorno para las llamadas

Más detalles

Arquitectura del MIPS: Introducción

Arquitectura del MIPS: Introducción Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución y caracterización

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Procesador MIPS - Registros

Procesador MIPS - Registros MIPS Microprocessor without Interlocked Pipeline Stages Surgió a comienzos de los 80 en Stanford. Sintetiza las principales ideas de RISC. Arquitectura eficiente y simple. 1 Procesador MIPS - Registros

Más detalles

Tema 6: Descripción del ISA del MIPS

Tema 6: Descripción del ISA del MIPS Arquitectura de Computadores Tema 6: Descripción del ISA del MIPS Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom Arquitectura de Computadoras UNT D. Cohen 1 2014 Temario

Más detalles

Introducción al lenguaje ensamblador DLX: instrucciones de enteros.

Introducción al lenguaje ensamblador DLX: instrucciones de enteros. PRÁCTICA 0.a Introducción al lenguaje ensamblador DLX: instrucciones de enteros. OBJETIVO El objetivo de esta práctica es la familiarización con el lenguaje ensamblador DLX, analizando la ejecución de

Más detalles

CAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE INSTRUCCIONES MIPS R-4000

CAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE INSTRUCCIONES MIPS R-4000 Antes de comenzar a explicar como funciona el programa, vamos a enumerar las instrucciones que están implementadas en el simulador. CAPÍTULO 2: MANUAL DE USUARIO DEL SIMULADOR DE ES MIPS R-4000 ES IMPLEMENTADAS

Más detalles

La Unidad Aritmética

La Unidad Aritmética Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 4 5 En este capítulo profundizaremos la aritmética computacional

Más detalles

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División ELO311 Estructuras de Computadores Digitales Algoritmos de Multiplicación y División Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

Más detalles

REPERTORIO DE INSTRUCCIONES MIPS

REPERTORIO DE INSTRUCCIONES MIPS Departamento de Informática Escuela Politécnica Universidad de Extremadura REPERTORIO DE INSTRUCCIONES MIPS Prácticas de la Asignatura ESTRUCTURA DE COMPUTADORES 2º Ingeniería Informática 2º Ingeniería

Más detalles

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES Arquitectura del Repertorio de instrucciones Arquitectura del repertorio de instrucciones Repertorio de instrucciones Organización del almacenamiento Formato

Más detalles

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) 8. Diseño del Procesador Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo) Objetivos Plantear y modificar una ruta de datos para un repertorio de instrucciones

Más detalles

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS

Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS Estructura de Computadores 2 [08/09] Entrada/Salida en procesadores MIPS GAC: Grupo de Arquitectura de Computadores Dpt. Electrónica e Sistemas. Universidade da Coruña. Bibliografía Computer Organization

Más detalles

Arquitectura de Computadoras. Simulador WINMIPS64

Arquitectura de Computadoras. Simulador WINMIPS64 Arquitectura de Computadoras Simulador WINMIPS64 Procesador MIPS 32 registros de uso general: r0.. r31 (64 bits) excepto r0 siempre igual a 0 32 registros de punto flotante: f0.. f31 (64 bits) 2 30 palabras

Más detalles

Diseño Procesador Monociclo

Diseño Procesador Monociclo Diseño Procesador Monociclo Especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar el procesador. Modelo Carga-Almacenamiento. Se implementará el procesador

Más detalles

Modelo de von Neumann

Modelo de von Neumann Conceptos básicos Modelo de von Neumann También conocida como arquitectura de Princeton. Propuesta por John von Neumann en 1945. Partes de una computadora digital: Unidad de procesamiento (CPU unidad central

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique

Más detalles

3. Instrucciones: lenguaje de la máquina

3. Instrucciones: lenguaje de la máquina 3. Instrucciones: lenguaje de la máquina Fundamentos de Computadores Ingeniería de Telecomunicación Raúl Durán Díaz Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Raúl

Más detalles

Creación del ambiente de trabajo.

Creación del ambiente de trabajo. Capítulo 2. 1 Creación del ambiente de trabajo. Una vez instalado el compilador cruzado lcc, éste queda en C:\Program Files\lcc\4.1 Conviene crear una subcarpeta para colocar los ejemplos. Sea ésta ej.

Más detalles

10.1. Determinación de ecuaciones lógicas para las condiciones o flags.

10.1. Determinación de ecuaciones lógicas para las condiciones o flags. Capítulo 0. Unidad Aritmética. 0.. Determinación de ecuaciones lógicas para las condiciones o flags. Se pueden obtener las ecuaciones de un sumador de ancho n, mediante inducción matemática. Analizaremos

Más detalles

Repaso concepto de programa

Repaso concepto de programa Repaso concepto de programa ANTES se tenían sistemas cableados Datos Secuencia de funciones aritmético/lógicas Resultados Programación en hardware: cuando cambiamos las tareas, debemos cambiar el hardware

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Arquitectura de Computadores II Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El

Más detalles

Sección de procesamiento: El camino de datos

Sección de procesamiento: El camino de datos Sección de procesamiento: El camino de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso 1. Evolución

Más detalles

El nivel ISA (II)! Conjunto de Instrucciones

El nivel ISA (II)! Conjunto de Instrucciones El nivel ISA (II) Conjunto de Instrucciones EC-2721 Arquitectura del Computador I Que es un Conjunto de Instrucciones? Colección completa de instrucciones comprendida por un procesador Lenguaje de máquina

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Programación Assembler.

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Programación Assembler. 2. Creación del ambiente de trabajo. Una vez instalado el compilador cruzado lcc, éste queda en C:\Program Files\lcc\4.1 Conviene crear una subcarpeta para colocar los ejemplos. Sea ésta ej. En la carpeta

Más detalles

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras 4-1 Arquitectura de Computadoras Tema 4: Arquitectura del Set de Instrucciones Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 4-2 Arquitectura del Set de Instrucciones Indice

Más detalles

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88

PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88 PROGRAMACIÓN EN ASSEMBLER SIMULADOR MSX88 REPASO CONCEPTO DE PROGRAMA ANTES se tenían sistemas cableados Datos Secuencia de funciones aritmético/lógicas Resultados Programación en hardware: cuando cambiamos

Más detalles

Grupo de Arquitectura y Tecnología de Computadores (ARCOS)

Grupo de Arquitectura y Tecnología de Computadores (ARCOS) Grupo de Arquitectura y Tecnología de Computadores (ARCOS) http://arcos.inf.uc3m.es/~ec 2 http://arcos.inf.uc3m.es/~ec 4 http://arcos.inf.uc3m.es/~ec 5 http://arcos.inf.uc3m.es/~ec 6 Código fuente en

Más detalles

MIPS. Universidad de Sonora 2

MIPS. Universidad de Sonora 2 MIPS MIPS (Microprocessor without Interlocked Pipeline Stages) es una familia de microprocesadores RISC desarrollada por MIPS Technologies desde 1981 y por Imagination Technologies desde 2012. Principio

Más detalles

COMPUTADORES SEGMENTADOS (DLX)

COMPUTADORES SEGMENTADOS (DLX) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores 12. Diseño de un Procesador. (Monociclo) 12.1 Especificación de instrucciones. El primer paso es la especificación de la arquitectura del repertorio de instrucciones y de las instrucciones que podrá ejecutar

Más detalles

Implementación de instrucciones para el procesador MIPS de ciclo único.

Implementación de instrucciones para el procesador MIPS de ciclo único. Implementación de instrucciones para el procesador MIPS de ciclo único. 1. Introducción. El MIPS (Microprocessor without Interlock Pipeline Stages) es un conocido tipo de procesador de arquitectura RISC

Más detalles

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S.

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES 1º I.T.I.G. I.T.I.S. Nombre: SOLUCIÓN Madrid, 24 de abril de 2008. NOTAS: Duración: 60 minutos. Se puede hacer a lápiz. No se permiten apuntes ni calculadora. No se permite desgrapar las hojas. 1. (2 puntos) Indique cuáles

Más detalles

Estructuras de Computadores I Tarea 02 02/99

Estructuras de Computadores I Tarea 02 02/99 Estructuras de Computadores I Tarea 02 02/99 1. Dada la secuencia de bits: 0011 0100 0101 0101 0100 0011 0100 0010 Qué representa, asumiendo que es: a. Un número entero en complemento dos. b. Fracción

Más detalles

Tema 3 (III) Fundamentos de la programación en ensamblador

Tema 3 (III) Fundamentos de la programación en ensamblador Tema 3 (III) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos } Fundamentos básicos de la

Más detalles

El procesador. Diseño del control

El procesador. Diseño del control El procesador Diseño del control Datapath MIPS simple Universidad de Sonora Arquitectura de Computadoras 2 MIPS simple El datapath anterior cubre instrucciones: Aritméticas-lógicas: add, sub, and, or y

Más detalles

Tema 2. Diseño del repertorio de instrucciones

Tema 2. Diseño del repertorio de instrucciones Enunciados de problemas Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 10 Tema 2: Hoja: 3 / 10 Base teórica Al diseñar un computador, uno

Más detalles

TEMA III: OPERACIONES CON LOS DATOS

TEMA III: OPERACIONES CON LOS DATOS CUESTIONES A TRATAR: Cual es la función de la unidad operativa? Es necesaria? Qué tipos de circuitos implementan la unidad operativa? Unidad operativa frente a ALU Qué es una operación de múltiple precisión?

Más detalles

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores . Unidad Aritmética... Determinación de ecuaciones lógicas para las condiciones o flags. Se pueden obtener las ecuaciones de un sumador de ancho n, mediante inducción matemática. Analizaremos un sumador

Más detalles

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION

INSTITUTO SUPERIOR DE EDUCACION RURAL ISER FUNDAMENTOS DE PROGRAMACION INTRODUCCIÓN A LA PROGRAMACIÓN POR COMPUTADORA Muchos usuarios creen que la programación es simplemente teclear palabras en una computadora. Eso es una parte, pero de ninguna manera todo. La programación

Más detalles

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012 /4/22 Introducción rquitectura de Computadoras Primavera 22 Construyendo el path Esquema de implementación Simple Unidad de Control 2 Los elementos básicos de un sistema de computo son: Nos centraremos

Más detalles

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA Arquitecturas RISC Características de las arquitecturas RISC Juego de instrucciones reducido (sólo las esenciales) Acceso a memoria limitado a instrucciones de carga/almacenamiento Muchos registros de

Más detalles

UNIDAD 2: Instrucciones: el lenguaje de las computadoras.

UNIDAD 2: Instrucciones: el lenguaje de las computadoras. UNIDAD 2: Instrucciones: el lenguaje de las computadoras. 2.1 Introducción Para comandar una computadora se le debe hablar en su lenguaje. Las palabras del lenguaje de una máquina son llamadas instrucciones,

Más detalles

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017

Arquitectura de Computadoras I Ingeniería de Sistemas Curso 2017 Arquitectura de Computadoras I Ingeniería de Sistemas Curso 217 Práctica de Laboratorio: Microprocesador MIPS Segmentado El objetivo de esta práctica es implementar el microprocesador MIPS (visto en clase

Más detalles

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Universidad Rey Juan Carlos ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES Camino de datos y control: implementación uniciclo Luis Rincón Córcoles Licesio J. Rodríguez-Aragón Programa. Introducción. 2. Construcción

Más detalles

Estructura de Computadores

Estructura de Computadores Estructura de Computadores Perpectiva Histórica Pasado y Presente Avances Tecnológicos Primer computador Electrónico University of Pennsylvania ENIAC (Electronic Numerical Integrator and Calculator, 18.000

Más detalles

Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2

Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3. Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Arquitectura de Computadores y laboratorio Clase 15: Arquitectura MIPS Pt.3 Departamento de Ingeniería de Sistemas Universidad de Antioquia 2011 2 Instrucciones de control de flujo Arquitectura de Computadores

Más detalles

Arquitectura del procesador MIPS R2000

Arquitectura del procesador MIPS R2000 Arquitectura del procesador MIPS R2000 Aula Virtual IS09 Sergio Barrachina Mir Área de Arquitectura y Tecnología de Computadores Dpt. de Ingeniería y Ciencia de los Computadores Universidad Jaume I Índice

Más detalles

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Arquitectura del CPU. Organización del Computador 1 Verano 2016 Arquitectura del CPU Organización del Computador 1 Verano 2016 Agenda De dónde venimos? Introducción: esquema de una computadora Representación de la información Circuitos Combinatorios Circuitos Secuenciales

Más detalles

Tema 3 (I) Fundamentos de la programación en ensamblador

Tema 3 (I) Fundamentos de la programación en ensamblador Tema 3 (I) Fundamentos de la programación en ensamblador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Fundamentos básicos de la

Más detalles

UNIVERSIDAD DE CORDOBA ESTRUCTURA DE COMPUTADORAS UNIDAD III

UNIVERSIDAD DE CORDOBA ESTRUCTURA DE COMPUTADORAS UNIDAD III ARITMETICA PARA COMPUTADORAS 1.- INTRODUCCION Objetivo Estudio de uno de los Componentes Clásicos de una Computadora Unidad Aritmético Lógica (ALU) Partes a estudiar Representación de los números negativos

Más detalles

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador Ejercicios del tema 4. El procesador Estructura del procesador elemental WepSIM Address Bus Data Bus Control Bus C0 Ta Internal Bus RA RB RC LC MAR T9 Memory MRdy BE ADDR DATA R W A31-A0 BE3-BE0 D31-D0

Más detalles

El procesador: camino de datos y. IEC UTM Moisés E. Ramírez G. control

El procesador: camino de datos y. IEC UTM Moisés E. Ramírez G. control El procesador: camino de datos y IEC UTM Moisés E. Ramírez G. control 1 Introducción Se diseñará una implementación que incluya las instrucciones más importantes. Instrucciones de acceso a memoria: lw,

Más detalles

LECTURAS SOBRE COMPUTADORAS DIGITALES LECTURA Nº4 MATERIA: ARQUITECTURA DE LAS COMPUTADORAS 1.- REPERTORIO DE INSTRUCCIONES DE LA PETICOMPUTADORA

LECTURAS SOBRE COMPUTADORAS DIGITALES LECTURA Nº4 MATERIA: ARQUITECTURA DE LAS COMPUTADORAS 1.- REPERTORIO DE INSTRUCCIONES DE LA PETICOMPUTADORA 1 - L4 LECTURAS SOBRE COMPUTADORAS DIGITALES LECTURA Nº4 MATERIA: ARQUITECTURA DE LAS COMPUTADORAS 1.- REPERTORIO DE INSTRUCCIONES DE LA PETICOMPUTADORA Decimal Binario Mnemónico Función que verifica 0

Más detalles

Guía práctica lenguaje ensamblador

Guía práctica lenguaje ensamblador Guía práctica lenguaje ensamblador (c) Francisco Charte Ojeda Introducción Qué es el lenguaje ensamblador? Aplicaciones de la programación en ensamblador El lenguaje ensamblador de los x86 8, 16, 32 y

Más detalles

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos: Unidades principales en la implementación Data El procesador: camino de datos y control IEC UTM Moisés E. Ramírez G. 1 Register # PC Address Instruction Instruction Registers Register # ALU memory Register

Más detalles

Aritmética del computador

Aritmética del computador Aritmética del computador Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso. Evolución y caracterización

Más detalles

Sistemas con Microprocesadores I

Sistemas con Microprocesadores I Sistemas con Microprocesadores I 1 Microcontroladores Introducción Harvard vs. von-neumann Clasificación del procesador Segmentado o Pipeline Ortogonal vs. No ortogonal 2 Microcontroladores PIC Siglas

Más detalles

Repaso Registros internos Z80 1/37

Repaso Registros internos Z80 1/37 Repaso Registros internos Z80 1/37 Repaso Formato instrucciones Formato con 4 direcciones Acumulador: A A op oper2 PC: Program Counter dirección de la próxima instrucción Instrucciones de operación Código

Más detalles

Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento

Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento Laboratorio IG09 1 IngenieríaTécnica en Informática de Gestión. Curso 2001-2002 LABORATORIO DE ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES Sesión 9 Reserva de espacio e instrucciones de carga y almacenamiento

Más detalles

INTRUCCIONES: LENGUAJE MAQUINA

INTRUCCIONES: LENGUAJE MAQUINA INTRUCCIONES: LENGUAJE MAQUINA 1.- INTRODUCCION Conceptos importantes Instrucción: Orden al hardware del Computador Repertorio de Instrucciones Lenguaje Máquina (ML) Lenguaje Ensamblador (AL) Lenguaje

Más detalles

Un. VIII. Generación de Código Objeto

Un. VIII. Generación de Código Objeto Un. VIII. Generación de Código Objeto 8.1 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es entendible por las computadoras.

Más detalles

Registros del MIPS y usos. Servicios del sistema

Registros del MIPS y usos. Servicios del sistema Registros del MIPS y usos Nombre del registro Número Uso zero 0 Constante de valor 0 at 1 Reservada para ensamblador v0 2 Evaluación de expresiones y resultado de funciones v1 3 Evaluación de expresiones

Más detalles

2. Números naturales: sistema de numeración y operaciones básicas

2. Números naturales: sistema de numeración y operaciones básicas INTRODUCCIÓN A LOS COMPUTADORES 2003-2004 Objetivos Formativos Que el alumno sea capaz de: Comprender el funcionamiento y saber diseñar los circuitos digitales combinacionales y secuenciales que se utilizan

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

COMPUTADORES SEGMENTADOS (DLX)

COMPUTADORES SEGMENTADOS (DLX) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA I COMPUTADORES SEGMENTADOS (DLX) OBJETIVO El objetivo de la práctica

Más detalles

ARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento.

ARQUITECTURA DE COMPUTADORES. Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Universidad Rey Juan Carlos ARQUITECTURA DE COMPUTADORES Tema 2: Lenguaje Máquina, Instrucciones y Modos de Direccionamiento. Licesio J. Rodríguez-Aragón Programa 1. Introducción Lenguajes de Programación:

Más detalles

Programación en ensamblador Ejercicios propuestos

Programación en ensamblador Ejercicios propuestos Programación en ensamblador Ejercicios propuestos Ejercicio 1. Dada la siguiente expresión de un lenguaje de alto nivel int a = 6; int b = 7; int c = 3; int d; d = (a+b) * (a+b); Indique un fragmento de

Más detalles

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017

Organización del Computador 1. CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Organización del Computador 1 CPU (ISA) Conjunto de Instrucciones de la Arquitectura 2017 Estructura de una máquina von Neumann Ciclo de Ejecución 1. 2. 3. 4. 5. 6. UC obtiene la próxima instrucción de

Más detalles

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN De Diego Varona, Rubén Romay López, Oscar Manuel Vega Martínez, Jorge INTRODUCCIÓN La representación de la instrucción en la computadora se denomina formato.

Más detalles

Elementos constituyentes de la ejecución de un programa

Elementos constituyentes de la ejecución de un programa Micro-Operaciones En la ejecución de un programa en una computadora, se ejecutan instrucciones, que pueden subdividirse en ciclos: Búsqueda/Ejecución Cada ciclo se compone a su vez de una serie de operaciones

Más detalles

Abstracción de bifurcaciones y saltos.

Abstracción de bifurcaciones y saltos. Capítulo 5. 1 Abstracción de bifurcaciones y saltos. 5.1. Operaciones lógicas. En el lenguaje C: Una expresión es falsa si su valor es cero; verdadera si es diferente de cero. Si el resultado de una operación

Más detalles

Organización de Computadoras. Clase 7

Organización de Computadoras. Clase 7 Organización de Computadoras Clase 7 Temas de Clase Formatos de instrucción Modos de direccionamiento Notas de Clase 7 2 Elementos de una instrucción de máquina Código de operación especifica la operación

Más detalles

LOGICA DIGITAL ARITMETICA DE COMPUTADORAS ASPECTOS FUNDAMENTALES 1. FORMA DE REPRESENTAR LOS NUMEROS ( FORMATO BINARIO)

LOGICA DIGITAL ARITMETICA DE COMPUTADORAS ASPECTOS FUNDAMENTALES 1. FORMA DE REPRESENTAR LOS NUMEROS ( FORMATO BINARIO) LOGICA DIGITAL ARITMETICA DE COMPUTADORAS ASPECTOS FUNDAMENTALES 1. FORMA DE REPRESENTAR LOS NUMEROS ( FORMATO BINARIO) 2. ALGORITMOS UTILIZADOS PARA REALIZAR LAS OPERACIONES BASICAS (SUMA, RESTA, MULTIPLICACION

Más detalles

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable. Los Microprocesadores MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Fecha de Introducción Velocidad de reloj Anchura del bus Número de transistores (microns) Memoria direccionable Evolución

Más detalles

22/03/2012. La división es una de las operaciones menos frecuentes. Revisemos la forma de ejecutarla

22/03/2012. La división es una de las operaciones menos frecuentes. Revisemos la forma de ejecutarla Arquitectura de Computadoras Primavera 2012 La división es una de las operaciones menos frecuentes. Revisemos la forma de ejecutarla 1 0 0 1 Cociente Divisor 1 0 0 0 1 0 0 1 0 1 0 Dividendo - 1 0 0 0 1

Más detalles

Arquitectura de Computadores II Clase #3

Arquitectura de Computadores II Clase #3 Clase #3 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Registros Repertorio de instrucciones Modos de direccionamiento El stack Formatos de datos Control

Más detalles

La Unidad de Control y el Camino de Datos

La Unidad de Control y el Camino de Datos Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 1 2 3 Contenido Veremos el diseño completo de un subconjunto

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Dr. Andrés David García García Escuela de Diseño, Ingeniería y Arquitectura Departamento de Mecatrónica 1 Microprocesadores y Periféricos Objetivos: Analizar la arquitectura

Más detalles

Repertorio de Instrucciones

Repertorio de Instrucciones 1. Introducción. La descripción de un computador digital puede efectuarse mediante la consideración de diferentes niveles de abstracción. La siguiente figura ilustra diversas componentes abstractas: Aplicaciones

Más detalles