TEMA 3: DISEÑO DE JUEGOS DE INSTRUCCIONES.

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

Download "TEMA 3: DISEÑO DE JUEGOS DE INSTRUCCIONES."

Transcripción

1 TEMA 3: DISEÑO DE JUEGOS DE INSTRUCCIONES. 1. Evolución de la arquitectura del juego de instrucciones. 2. Propiedades de los juegos de instrucciones desde la perspectiva del escritor de compiladores. 3. Clasificación de los repertorios de instrucciones. 4. Direccionamiento de la memoria. 5. Tipo y tamaño de los operandos. 6. Operaciones del repertorio de instrucciones. 7. Instrucciones multimedia. 8. Instrucciones de control. 9. Organización de los registros. 10. Ejemplos de juegos de instrucciones. Bibliografía: C. Rodríguez et al. Microprocesadores RISC: Evolución y Tendencias, Rama, J.L. Hennessy & D. A. Patterson. Computer Architecture: A Quantitative Approach 3 a ed., Morgan Kauffman Publishers, A. S. Tanenbaum. Structured Computer Organization 4 a ed., Prentice-Hall, Departamento de Informática de Sistemas y Computadores (DISCA) Facultad de Informática de Valencia 3-1

2 1 EVOLUCIÓN DEL JUEGO DE INSTRUCCIONES 1. Evolución de la arquitectura del juego de instrucciones. Los primeros computadores eran simples: tenían pocas instrucciones y sólo uno o dos modos de direccionamiento que se ejecutaban directamente sobre el hardware. 1964: IBM lanza la familia 360, con microprogramación: hardware relativamente simple. juego de instrucciones potente gracias a los microprogramas. A partir de ese momento, casi todos los fabricantes incorporan la microprogramación en sus diseños. Por qué se introduce la microprogramación? 1. Diferencia de velocidad entre CPU y memoria. Primeros computadores: CPU y memoria de velocidad. 2 a y 3 a generación: CPU (semiconductores) vs. memoria (ferrita) La CPU es 10 veces más rápida que la memoria! Idea para reducir el tiempo de ejecución de los programas: Diseñar un juego de instrucciones más potente los programas tendrán menos instrucciones menos accesos a memoria. Las instrucciones no son ejecutadas directamente por el hardware. Cada instrucción se interpreta por medio de un microprograma, cuyas acciones se ejecutan en el hardware. 2. Reducción del desnivel semántico. Desnivel semántico: Diferencia entre el poder descriptivo de los lenguajes de alto nivel y las instrucciones máquina. Solución: Aumentar nivel de las instrucciones máquina, para: Facilitar el desarrollo de los compiladores. Aliviar la crisis del software (el coste del software aumentó muchísimo). Mejorar la calidad de la arquitectura (parámetros S y M). 3-2

3 1 EVOLUCIÓN DEL JUEGO DE INSTRUCCIONES 1. Tecnología. El cambio (años 70) Memorias RAM de semiconductores. Memorias cache o antememorias. la velocidad de la CPU es similar a la de la memoria. 2. Problemática de la microprogramación: Difícil depuración y mantenimiento de los microprogramas (bajo nivel de las microinstrucciones, espacio de la memoria de control limitado,... ). 3. Medidas sobre la ejecución de programas reales. Estadísticas sobre el código fuente de los programas. Procedimientos Sentencia % N o term. := % Var. loc. % Parámetros % := If Call Bucle Goto Otros Aunque potencialmente se pueden escribir programas muy complejos, en la práctica no ocurre así. Estadísticas sobre el código generado por los compiladores. Los compiladores utilizan un subconjunto del juego de instrucciones. Las instrucciones complejas o demasiado específicas raramente se utilizan. El resultado: Tambaleo de las hipótesis de partida Un lenguaje máquina de mayor nivel (más instrucciones y más complejas) implica una implementación global más lenta hay que pasar por un intérprete (el microprograma) Las instrucciones complejas raramente se utilizan. surge una nueva filosofía

4 1 EVOLUCIÓN DEL JUEGO DE INSTRUCCIONES Máquinas RISC. RISC: Reduced Instruction Set Computers frente a las CISC Complex Instruction Set Computers existentes en el momento. 1. Instrucciones simples (que son las más empleadas) ejecutadas directamente en hardware. al eliminar el intérprete (microprograma) se mejora mucho las prestaciones. 2. Compilador optimizante para cubrir el desnivel semántico. La tecnología de compiladores debe ser capaz de generar código para una máquina con instrucciones simples tan eficiente o más que el que se genera a mano. Principios de diseño RISC. 1. Analizar las aplicaciones reales y delimitar las operaciones clave. 2. Diseñar la ruta de datos óptima para esas operaciones clave. 3. Diseñar el juego de instrucciones incluyendo sólo las que implementan las operaciones clave en la ruta de datos. 4. Añadir nuevas instrucciones, sólo si no ralentizan la máquina. 5. Repetir el proceso para los demás recursos del computador. Enfoque cuantitativo: hay que medir las prestaciones para valorar la influencia de las decisiones de diseño! 3-4

5 2 LA PERSPECTIVA DEL ESCRITOR DE COMPILADORES 2. Propiedades de los juegos de instrucciones desde la perspectiva del escritor de compiladores Quién es el usuario primario de la máquina? el compilador. Qué solicitan los escritores de compiladores de un juego de instrucciones? 1. Principio básico: Caso frecuente: eficiente; caso raro: correcto. 2. Regularidad/Ortogonalidad. Siempre que tenga sentido, las operaciones, modos de direccionamiento y tipos de datos deben ser independientes. Simplifica la generación de código, sobre todo si la decisión se toma en dos fases distintas. 3. Proporcionar primitivas, en lugar de soluciones. No hay que dar soporte directo a construcciones de alto nivel. Sólo funcionaran con un lenguaje, al ser muy específicas. Tienen más o menos funcionalidad de la necesaria. 4. Incorporar instrucciones que operen con constantes para las cantidades conocidas en tiempo de compilación. Interpretarlo en tiempo de ejecución es ineficiente. 5. Principio uno o todo. Hay una sola forma de hacer una determinada cosa, o todas las formas son posibles. Simplificar el coste del cálculo de cada alternativa. 3-5

6 3 CLASIFICACIÓN DE LOS REPERTORIOS DE INSTRUCCIONES 3. Clasificación de los repertorios de instrucciones Formatos de instrucción Las instrucciones se almacenan en la memoria de acuerdo con un formato, el cual indica la operación a realizar (código de operación) y los operandos. Tipos de formatos de instrucción: N o Fijo. Todas las instrucciones se codifican utilizando el mismo número de bits. Facilita la búsqueda de instrucciones y su decodificación. A veces, derrocha bits en el formato, ya que no todas las instrucciones requieren el mismo espacio para codificarse. Variable. El número de bits requerido para codificar la instrucción varía según el tipo de instrucción. Optimiza espacio ocupado por las instrucciones, y, por lo tanto, por los programas. Complica la búsqueda de instrucciones y su decodificación. de bits del formato. El número de bits destinado al formato impone un limite al espacio destinado a cada uno de los campos, el cual limita el n o de variantes del mismo: n o de instrucciones (códigos de operación), n o de registros, espacio de memoria direccionable, etc. 3-6

7 3 CLASIFICACIÓN DE LOS REPERTORIOS DE INSTRUCCIONES N o de formatos de instrucción. Cómo se asignan los bits del formato a los campos requeridos por las instrucciones? Formato único. La correspondencia entre los bits del formato y los campos es siempre la misma. Facilita la decodificación de la instrucción. A veces, derrocha bits en el formato, ya que no todas las instrucciones requieren todos los campos previstos. Múltiples formatos. Cada formato puede tener campos distintos y define una correspondencia entre éstos y los bits del formato. Permite ajustar mejor los bits ocupados por la instrucción y los campos requeridos. 3-7

8 3 CLASIFICACIÓN DE LOS REPERTORIOS DE INSTRUCCIONES Criterio clásico: Almacenamiento de los operandos en la CPU: Las instrucciones operan sobre unos datos y generan un resultado. Los datos y resultados se almacenan en la memoria y en la CPU. Tres paradigmas: Pila (Ej.: HP 3000). Los datos y resultados se almacenan en una pila. Los operandos están implícitamente en la cima de la pila, y el resultado se deposita en la cima de la pila. Formato de menos bits. Acumulador (Ej.: PDP-8, M6809). Hay un registro acumulador que almacena implícitamente uno de los operandos y sobre el cual se deposita el resultado. Registros de propósito general (Ej.: PDP-11). Los datos y resultados se almacenan en una pequeña memoria RAM: el banco de registros. Todos los operandos deben nombrarse explícitamente. Formato de más bits. Ejemplo: Código para efectuar C := A + B Pila Acumulador Registros de propósito general. PUSH A LOAD A LOAD R1,A LOAD R1,A MOVE C,A PUSH B ADD B ADD R1,B LOAD R2,B ADD C,B ADD STORE C STORE C,R1 ADD R3,R1,R2 POP C STORE C,R3 Desde hace algunos años, casi todos los computadores utilizan registros de propósito general, ya que facilitan la generación de código por parte del compilador. 3-8

9 3 CLASIFICACIÓN DE LOS REPERTORIOS DE INSTRUCCIONES Clasificación de las máquinas con registros de propósito general Dos parámetros significativos: 1. Número n de operandos en una instrucción UAL típica (2 o 3). Si n = 2, uno de los operandos es a la vez fuente y destino. Si n = 3, hay dos operandos y un destino. 2. Número m n de direcciones a memoria en una instrucción UAL. Casos: Si m = 0, máquinas registro registro o load/store (típico m = 0, n = 3). Todas las instrucciones UAL operan sobre datos en registros, y depositan su resultado en un registro. Las únicas instrucciones que permiten acceder a la memoria son las de carga (load) y almacenamiento (store). Si m < n, máquinas registro memoria (típico m = 1, n = 2). Si m = n, máquinas memoria memoria (típico m = 3, n = 3). Formato Tamaño del código CPI load/store Fijo: El más grande El menor fácil decodificación Homogéneo: Segmentación pero derroche de bits eficiente T I CP I mem mem Variable: Complica El más pequeño El mayor decodificación Muy variable: Complica la segmentación T I CP I Las máquinas load/store dominan el mercado desde 1980 debido a: n = 3 simplifica la generación de código por parte del compilador. Los compiladores asignan variables en registros reducción del número de accesos a memoria reducción del tiempo de ejecución. Minimizan el tiempo de ejecución T ej = I CP I T 3-9

10 3 CLASIFICACIÓN DE LOS REPERTORIOS DE INSTRUCCIONES 3-10

11 4 DIRECCIONAMIENTO DE MEMORIA 4. Direccionamiento de memoria Interpretación de las direcciones Memorias direccionables por byte, pero se suele acceder a palabras (32 bits). Las palabras se acceden mediante la dirección del menor de sus bytes. Convenios para numerar los bytes de una palabra: 1. Little Endian: Byte de menor dirección en la posición de menor peso. Ejemplos: DEC PDP y VAX, Intel, Power PC. Direcciones Direcciones de palabra de byte Las tiras de caracteres aparecen al revés : Direcciones Direcciones de palabra de byte 0 A L O H 4 2. Big Endian: Byte de mayor dirección en la posición de menor peso. Ejemplos: IBM 360/370, MIPS, Motorola, SPARC, Power PC (por defecto). Direcciones Direcciones de palabra de byte El problema aparece al intercambiar datos entre dos computadores con diferente byte ordering. 3-11

12 4 DIRECCIONAMIENTO DE MEMORIA Alineamiento Un acceso a un objeto de tamaño s bytes ubicado en la dirección A está alineado si A mód s = 0 (A es múltiplo de s). Con formato fijo, las instrucciones están siempre alineadas, pero hay que soportar el acceso a datos no alineados? Ventaja: Mayor flexibilidad en la ubicación de datos en memoria. Inconveniente: Hardware más complejo CP I y/o T. Retardo introducido por el hardware extra. A veces son necesarios dos accesos a memoria para formar una palabra. 3-12

13 4 DIRECCIONAMIENTO DE MEMORIA Acceso a objetos de tamaño menor que una palabra Ventaja: Reducción del número de instrucciones del programa I Inconveniente: Hardware más complejo (hay que colocar selectores del fragmento de palabra deseado) CP I y/o T. Ejemplo: Con acceso a bytes Sin acceso a bytes LOADB R,A LOAD R,A EXTRACT n,r STOREB R,A LOAD R,A INSERT n,r,r STORE R,A donde A =A and FFFC y n=a and

14 4 DIRECCIONAMIENTO DE MEMORIA Modos de direccionamiento Cómo se especifican los operandos de las instrucciones? Selección de modos de direccionamiento empleados en distintas arquitecturas: Modo Ejemplo Significado Directo a registro ADD R1,R2,R3 Regs[R1] Regs[R2]+Regs[R3] Inmediato ADD R1,R2,#1 Regs[R1] Regs[R2]+1 Directo o Absoluto LW R1,(1000) Regs[R1] Mem[1000] Registro indirecto LW R1,(R2) Regs[R1] Mem[Regs[R2]] Desplazamiento LW R1,100(R2) Regs[R1] Mem[100+Regs[R2]] Indexado LW R1,(R2+R3) Regs[R1] Mem[Regs[R2]+Regs[R3]] Indirecto a memoria LW R1,@(R2) Regs[R1] Mem[Mem[Regs[R2]]] Autoincremento LW R1,(R2)+ Regs[R1] Mem[Regs[R2]] Regs[R2] Regs[R2]+d Autodecremento LW R1,-(R2) Regs[R2] Regs[R2]-d Regs[R1] Mem[Regs[R2]] Escalado LW R1,100(R2)(R3) Regs[R1] Mem[100+Regs[R2]+Regs[R3]*d d es el tamaño del operando (ej.: 1 palabra=4 bytes). 3-14

15 4 DIRECCIONAMIENTO DE MEMORIA Modos más utilizados Hay que soportar modos de direccionamiento sofisticados? Ventaja: Reducción del número de instrucciones de los programas I Inconveniente: Hardware más complejo CP I y/o T. Hay que medir la frecuencia de utilización de los modos en los programas: Modos más frecuentemente soportados: Inmediato, Desplazamiento, Indexado, Autoincrementativo, Absoluto. En DSP s, además: Autoincrementativo circular, para accesos a buffer circular. 3-15

16 4 DIRECCIONAMIENTO DE MEMORIA Modo de direccionamiento Desplazamiento Cual es el rango del desplazamiento? Debe ser una solución de compromiso entre disponer de desplazamientos grandes y el número de bits ocupados en el formato. Lo habitual es reservar 16 bits para el desplazamiento. Modo de direccionamiento Inmediato Con qué frecuencia se emplea? 21 % de instrucciones en programas enteros 16 % de instrucciones en programas con coma flotante. Qué tipos de instrucciones necesitan el modo inmediato? Comparaciones, aritméticas y asignaciones. Cual es el rango de los valores inmediatos? Debe ser una solución de compromiso entre disponer de constantes grandes y el número de bits ocupados en el formato. Muchas comparaciones se hacen con cero algunas arquitecturas reservan un registro para contener siempre el valor 0 (i.e., el R0 vale siempre 0). Lo habitual es reservar 16 bits para los valores inmediatos. También se incluyen instrucciones específicas para trabajar con valores inmediatos más grandes. Por ejemplo, LUI R1,#valor carga el valor valor en la parte alta del registro R1: Regs[R1] valor <<

17 5 TIPO Y TAMAÑO DE LOS OPERANDOS 5. Tipo y tamaño de los operandos Cómo codificar el tipo de un operando? Lo más habitual es que esté implícito en el código de operación, aunque algunas máquinas antiguas utilizaban una etiqueta que acompañaba al operando, la cual representaba el tipo. Tipos generalmente soportados: carácter (8 bits ASCII), enteros (8-byte, 16-half-word, 32-word y 64 bits-double word, todos ellos en complemento a 2), coma flotante (simple precisión-32 bits y doble precisión-64 bits, en el estándar IEEE 754). En ocasiones: tiras de caracteres, BCD (binary coded decimal), coma flotante de cuádruple precisión (128 bits). Para aplicaciones multimedia: vertex (3 coordenadas+color), pixels (R+G+B+A). En DSP s, coma fija. 3-17

18 6 OPERACIONES DEL JUEGO DE INSTRUCCIONES 6. Operaciones del juego de instrucciones Tipos Aritmética entera, lógica binaria. Transferencia: Load/store o move. Control: Bifurcaciones y saltos, llamada/retorno de subprograma. Sistema: Llamada al S.O, gestión de memoria virtual. Coma flotante: aritmética y conversiones real-entero. Decimal: aritmética y conversiones decimal-carácter. String: transferencia, comparación, búsqueda. Multimedia: Operaciones con vertex y pixels, compresión/descompresión. Cuántas instrucciones hay? 3-18

19 6 OPERACIONES DEL JUEGO DE INSTRUCCIONES Instrucciones más utilizadas Las instrucciones que se ejecutan con más frecuencia son las que realizan las operaciones más sencillas del juego de instrucciones. Ejemplo: las 10 instrucciones más empleadas en el 80x86: 1 load 22 % 2 salto condicional 20 % 3 compare 16 % 4 store 12 % 5 add 8 % 6 and 6 % 7 sub 5 % 8 move reg reg 4 % 9 call 1 % 10 return 1 % 3-19

20 7 INSTRUCCIONES MULTIMEDIA 7. Instrucciones multimedia No suele ser necesario trabajar con datos de mucha precisión utilizar un operador de 64 bits para operar con enteros de 8 bits sería poco eficiente. Instrucciones SIMD: Single Instruction Multiple Data. Una sola instrucción opera sobre varios datos. Ejemplos: partitioned operations: Dados registros de 64 bits, se puede hacer 8 sumas de bytes, ó 4 sumas de half-words, ó 2 sumas de words. paired-single operations: 2 operaciones de coma flotante en simple precisión en una sola instruccion flotante. Aritmética con saturación. Si el resultado es demasiado grande, se sustituye por el número mayor que se puede representar. Otras instrucciones: Multiplicación y suma en una sola instrucción, cálculo del máximo/mínimo, barajado. Crítica: son más bien soluciones en lugar de primitivas (ver página 5) 3-20

21 8 INSTRUCCIONES DE CONTROL 8. Instrucciones de control Tipos de cambios del control de flujo: Saltos condicionales (branch), Saltos incondicionales (jump), Llamadas/retorno a/de procedimiento (call/return) Con qué frecuencia se salta? Saltos incondicionales, call y return representan 1, y saltan siempre. 3 Saltos condicionales. Otro 1 corresponde con bucles (efectivos casi en el %). El resto ( 1 ) son efectivos en un 50 % son efectivos (saltan) y 1 6 son no efectivos (no saltan). 3-21

22 8 INSTRUCCIONES DE CONTROL Absoluto Indexado Relativo al PC Salto con enlace. Modos de direccionamiento soportados: 3-22

23 8 INSTRUCCIONES DE CONTROL Modo relativo al PC El destino suele estar cerca de la instrucción actual las direcciones relativas consumen pocos bits. Facilita la generación de código relocalizable. Cuantos bits hacen falta para el desplazamiento? Debe ser una solución de compromiso entre disponer de desplazamientos grandes y el número de bits ocupados en el formato. Lo habitual es reservar al menos 8 bits para el desplazamiento. Valores típicos son bits en saltos condicionales y 26 bits en incondicionales. Salto con enlace (jump and link) Es un salto con modo relativo al PC o indexado que, además, guarda la dirección de la siguiente instrucción en un registro del procesador. Se utiliza para realizar llamadas a subrutinas (call). El retorno de la subrutina (return) se realiza mediante un salto con modo indexado, utilizando el registro que se empleó para almacenar el valor de retorno. Ejemplo (MIPS): ; Programa principal... jal rut1 ; por defecto almacena ; la dir. retorno en R31 <siguiente instr>... rut1: ; subrutina... jr r

24 8 INSTRUCCIONES DE CONTROL Saltos condicionales Cómo especificar la condición de salto? Varias alternativas: 1. Códigos de condición (80x86, PowerPC, SPARC). El juego de instrucciones define un estado que se modifica de acuerdo con el resultado de la última operación aritmética efectuada. Habitualmente hay unos códigos de condición o flags: C (acarreo), Z (cero), N (negativo), etc. Además, hay instrucciones específicas para modificar explícitamente los códigos de condición según si sus operandos cumplen determinada condición. La instrucción de salto sólo tiene que comprobar la condición correspondiente. Ejemplo: add r1, r2, r3 ; r1 = r2 - r3 cmp r1,#0 beq zero ; si el divisor es cero... div r5,r4,r1 ; r5 = r4 / r1... zero:... Ventaja: Si la comprobación de la condición va detrás de la instrucción que modifica los códigos de condición, podemos ahorrarnos las instrucciones de comparación (1 6 % de casos): Inconvenientes: add r1, r2, r3 ; r1 = r2 - r3 beq zero ; si el divisor es cero... div r5,r4,r1 ; r5 = r4 / r1 La generación de los códigos de condición no es trivial y además requiere espacio para ello en el chip. El hecho de que todas las instrucciones modifiquen los códigos de condición plantea problemas cuando se pretende reordenar el código o se lanzan múltiples instrucciones aritméticas simultáneamente. 3-24

25 8 INSTRUCCIONES DE CONTROL 2. Comprobación explícita. El resultado de las operaciones se comprueba explícitamente por medio de instrucciones específicas. No hay códigos de condición. Hay dos posibilidades: Instrucción de comparación más instrucción de salto condicional (Alpha, MIPS). Una instrucción de comparación evalúa la condición y deposita el resultado (true o false) en un registro de uso general. La instrucción de salto tiene como uno de sus operandos un registro de uso general. Ejemplo: add r1, r2, r3 ; r1 = r2 - r3 seq r10,r1,#0 ; si (r=0) ent r10="true" bt r10, zero ; si "true"... div r5,r4,r1 ; r5 = r4 / r1 Ventaja: Regularidad del juego de instrucciones. Inconveniente: Consumo de un registro. Instrucción única de comparación y salto condicional (PA-RISC). 3. Instrucción de repetición. Una única instrucción realiza la comparación, evalúa la condición y realiza el salto, en su caso. Ejemplo: add r1, r2, r3 ; r1 = r2 - r3 cmp&beq r1,#0,zero ; si div. cero... div r5,r4,r1 ; r5 = r4 / r1 Ventaja: Reducción del número de instrucciones ejecutadas. Inconveniente: Puede ser demasiado trabajo para una sola instrucción, aumentando los CPI o el ciclo de reloj. Suele emplearse con condiciones sencillas: comparaciones =0. Permite repetir una instrucción o un bloque de instrucciones un cierto número de veces. Útil en DSPs. 3-25

26 9 ORGANIZACIÓN DE LOS REGISTROS 9. Organización de los registros Optimización del código Compilación = Traducción + Optimización. La optimización tiene una gran influencia en la velocidad del código generado. Optimización más importante: Ubicación de variables en registros. Número de registros Debe ser una solución de compromiso entre: Requisitos del compilador: cuántas variables de los programas se alojan en registros? Número de bits disponibles en el formato de instrucción. Tiempo de acceso al banco de registros. Espacio disponible en el chip para el banco de registros. Los computadores actuales suelen incorporar unos 32 registros enteros más otros 32 registros de coma flotante. Ventanas de registros La familia de computadores SPARC utiliza una estructura alternativa del banco de registros que pretende: Disponer de un elevado número de registros sin utilizar muchos bits en el formato de instrucción. Utilizar eficientemente ese gran número de registros: algunos estudios muestran que, una vez las variables más frecuentemente accedidas se alojan en registros, alojar más no reporta mayores beneficios. Sin embargo, disponer de un gran número de registros permite... Reducir el número de instrucciones de acceso a memoria empleadas para salvar los registros en las llamadas/retornos de procedimiento. 3-26

27 9 ORGANIZACIÓN DE LOS REGISTROS Si las variables globales, parámetros, o variables locales exceden del número especificado, se utiliza la memoria principal. 3-27

28 9 ORGANIZACIÓN DE LOS REGISTROS Dos registros: Gestión de las ventanas CWP (Current Window Pointer): Indica la ventana actual. N o de ventanas: Depende del modelo. Máximo: 32 (CWP de 5 bits) WIM (Window Invalid Mask): Vector de bits (ventana más antigua). Llamadas a procedimiento: CWP := CWP - 1; SI WIM[CWP]=1 ENT Salvar ventana CWP en memoria; Rotación a derecha (WIM): CWP WIM call call call Retornos de procedimiento: SI WIM[CWP]=1 ENT Restaurar ventana CWP+1 desde memoria; Rotación a izquierda (WIM); CWP := CWP + 1; CWP WIM ret ret ret Peligro! Aunque las ventanas de registros reducen el número de instrucciones ejecutadas, complican la organización, pudiendo aumentar los CPI y/o el periodo de reloj. 3-28

29 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS Ejemplos de juegos de instrucciones: MIPS64 Características Arquitectura de 64 bits. Carga/almacenamiento con registros de propósito general Juego de instucciones simple. Buen soporte al compilador. Registros 32 registros de uso general de 64 bits (R0 a R31). R0 es siempre registros de coma flotante (F0 a F31), en simple o en doble precisión. Tipos de datos Enteros: 8 bits (byte), 16 bits (halfword), 32 bits (word) y 64 bits (double word). Coma flotante: 32 bits (simple precisión), 64 bits (doble precisión) Las operaciones se realizan sobre enteros de 64 bits y flotantes de 32 o 64 bits. Los enteros de 8, 16 y 32 bits se cargan en los registros de uso general poniendo 0 en los bits de mayor peso o extendiendo el signo, y posteriormente se tratan como enteros de 64 bits. Direccionable al byte Organización de la memoria Convenio Big Endian o Little Endian Direcciones de 64 bits. Acceso a byte, halfword, word, double word, coma flotante en simple y en doble precisión. Accesos siempre alineados. Accesible únicamente por medio de instrucciones load/store. 3-29

30 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Cargas/almacenamientos. Juego de instrucciones: Sobre cualquier registro de uso general (excepto R0) o coma flotante. Modo de direccionamiento desplazamiento (16 bits). Registro indirecto se obtiene con desplazamiento =0 y absoluto con registro base = R0. Acceso a byte (LB), halfword (LH), y word (LW), double word (LD), coma flotante en simple (L.S) y en doble precisión (L.D), con y sin extensión de signo. Algunos ejemplos: 3-30

31 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Aritméticas. Instrucciones registro-registro, 3 direcciones. Operaciones aritméticas sencillas (DADD,...), lógicas (XOR,...), desplazamientos (DSLL,...). Multiplicación MUL, división DIV y multiplicación y suma combinadas MADD. También permite el modo inmediato para todas, de 16 bits. La instrucción LUI permite generar datos constantes de 32 bits. El registro R0 se emplea para obtener otras operaciones muy utilizadas: Asignar un valor a un registro: LI R1,#5 ADD R1,R0,#5 Transferir datos entre registros: MOV R1,R2 ADD R1,R0,R2 Algunos ejemplos: DSLL R1,R2,#5 3-31

32 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Control. Saltos incondicionales: Tradicionales: modos relativo al PC (26 bits) (J) e indirecto a registro (JR). Con enlace (guarda PC en el R31). Modos relativo al PC (JAL) e indirecto a registro (JALR). Saltos condicionales: Instrucción de comparación, sólo si < (SLT), depositando el resultado en un registro de uso general. Salto si un registro = 0 (BEQZ) y 0 (BNEZ). Comparación+salto: compara si dos registros son = (BEQ) y (BNE). Salto en función del bit de comparación del registro de estado de coma flotante: true (BC1T) y false (BC1F). Instrucciones de transferencia condicional entre registros: si negativo (MOVN) y si cero (MOVZ). Modo relativo al PC (16 bits) Algunos ejemplos: 3-32

33 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Coma flotante. Suma, resta, multiplicación y división, en simple (.S) y doble (.D) precisión y paired simple (.PS) Multiplicación y suma/resta combinadas (MADD, MSUB). Transferencia entre registros de coma flotante (MOV.S, MOV.D). Transferencia de un registro de coma flotante de simple precisión a uno entero (MFC1) y viceversa (MTC1). No hay conversión. Conversión entero flotante (CVT.x.y, convierte de tipo x a tipo y, donde x, y son L (entero de 64 bits), W (entero de 32 bits), D (flotante en doble precisión) o S (flotante en simple precisión)). Comparación de registros de coma flotante (C.x.S y C.x.D, donde x puede ser LT (<),LE ( ),GT (>),GE ( ),EQ (=),NE ( )). El resultado se almacena implícitamente en un bit ( bit de comparación ) del registro de estado de coma flotante. 3-33

34 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Subconjunto de las instrucciones MIPS64 BEQ,BNE MOVN, MOVZ Branch GPR equal/not equal; 16 bit offset from PC+4 Copy GPR to another GPR if third GPR is negative, zero 3-34

35 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Formato. Formato de instrucción fijo de 32 bits, alineadas. Hay tres formatos de instrucción: LOAD/STORE: LD rt,imm(rs) SD rt,imm(rs) ALU con constantes DADD rt,rs,imm Saltos condicionales BEQZ rs,imm(pc) BEQ rs,rt,imm(pc) Saltos incondicionales JR rs JALR rs ALU reg reg DADD rd,rs,rt func es una extension del Cod. op. Indica la operacion a realizar en la ALU Desplazamientos DSLL R1,R2,#shamt Transferencia entre regs. MOVN rd,rs,rt MFC0 rt,rd 3-35

36 10 EJEMPLOS DE JUEGOS DE INSTRUCCIONES: MIPS64 Ejercicio: Escribir el código MIPS para hacer la operación: Y = ax + Y, siendo: X e Y vectores de flotantes en simple precisión de 64 componentes, almacenados a partir de las direcciones dx,dy y a un flotante de simple precisión, almacenado en la dirección da. DADD R1,R0,#dX ; R1 contiene la direccion de X DADD R2,R0,#dY ; R2 contiene la direccion de Y DADD R4,R1,#256 ; 256 = 64 * 4 loop: L.S F0,da(R0) L.S F1,0(R1) MUL.S F2,F0,F1 L.S F3,0(R2) ADD.S F4,F3,F2 S.S F4,0(R2) DADD R1,R1,#4 DADD R2,R2,#4 SLT R20,R1,R4 BNEZ R20,loop O bien: DADD R1,R0,#dX ; R1 contiene la direccion de X DADD R2,R0,#dY ; R2 contiene la direccion de Y DADD R4,R1,#256 ; 256 = 64 * 4 loop: L.S F0,da(R0) L.S F1,0(R1) L.S F3,0(R2) MADD.S F4,F3,F0,F1 S.S F4,0(R2) DADD R1,R1,#4 DADD R2,R2,#4 BNE R1,R4,loop 3-36

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

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

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software Tema 2: Lenguaje máquina La interfaz entre el hardware y el software 1 Índice Introducción. Formatos de Instrucción. Modos de Direccionamiento. Ortogonalidad y Regularidad. Frecuencia de Utilización de

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

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

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados.

1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. TEMA 9: LANZAMIENTO MÚLTIPLE DE INSTRUCCIONES 1. Motivación. 2. Procesadores superescalares. 3. Procesadores VLIW. 4. Procesadores supersegmentados. Bibliografía: J.L. Hennessy & D. A. Patterson. Computer

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

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Clase 6 RISC Computadoras de repertorio reducido de instrucciones Historia de evolución (1) El concepto de familia: Introducido por IBM en su System/360 en 1964. DEC PDP-8.

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

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

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 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 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

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

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

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

GUIA 24: REPERTORIO DE INSTRUCCIONES

GUIA 24: REPERTORIO DE INSTRUCCIONES Prof Sandro Costantini GUIA 24: INSTRUCCIONES Las instrucciones maquinas son las acciones elementales que puede ejecutar un computador Una acción compleja deberá codificarse como una secuencia de instrucciones

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

TEMA VI DISEÑO DEL PROCESADOR

TEMA VI DISEÑO DEL PROCESADOR TEMA VI DISEÑO DEL PROCESADOR Diseño del procesador 6.1 Repertorio de instrucciones 6.1.1 Procesadores de tres direcciones 6.1.2 Procesadores de dos direcciones 6.1.3 Procesadores de una dirección (procesadores

Más detalles

2. DISEÑO DEL REPERTORIO DE INSTRUCCIONES MÁQUINA

2. DISEÑO DEL REPERTORIO DE INSTRUCCIONES MÁQUINA 2. DISEÑO DEL REPERTORIO DE INSTRUCCIONES MÁQUINA 2.1. Tipos de juegos de instrucciones 2.2. Compiladores, repertorio de instrucciones y rendimiento 2.3. Computadores de juego reducido de instrucciones:

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

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

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

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

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

Arquitectura de Computadores Arquitectura de Computadores 1. Introducción 2. La CPU 3. Lenguaje Máquina 4. La Memoria 5. Sistemas de Entrada/Salida 6. Segmentación (Pipeline) 7. Memoria Caché 8. Arquitecturas RISC Arquitectura de

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

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

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

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

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

Unidad 5 Unidad central de proceso

Unidad 5 Unidad central de proceso Unidad 5 Unidad central de proceso Objetivo El objetivo de esta unidad es que el alumno logre: entender el funcionamiento básico de la Unidad Central de Proceso (UCP), definir las componentes básicas de

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

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

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

El Diseño de un Lenguaje Máquina

El Diseño de un Lenguaje Máquina Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

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

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

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones Instruction Set Architecture (ISA) Arquitectura del conjunto de instrucciones software Conjunto de instrucciones hardware Universidad

Más detalles

Formato de instrucciones

Formato de instrucciones Formato de instrucciones Material Elaborado por el Profesor Ricardo González A partir de Materiales de las Profesoras Angela Di Serio María Blanca Ibañez Elementos de una instrucción de máquina add rd

Más detalles

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura de Computadores Problemas (hoja 2). Curso Arquitectura de Computadores Problemas (hoja 2). Curso 2012-13 1. Sea la siguiente secuencia de código de instrucciones en punto flotante para un computador similar al DLX que aplica gestión dinámica de

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

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

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

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA.

UNIDAD TEM ATICA 3: ACELERACI ON DEL ACCESO A MEMORIA. UNIDAD TEMÁTICA 3: ACELERACIÓN DEL ACCESO A MEMORIA. 10. Evaluación de las prestaciones del subsistema de memoria. 11. Mejora de las prestaciones de las antememorias. 12. Mejora de las prestaciones de

Más detalles

TEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR

TEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR TEMA 5 JUEGO DE INSTRUCCIONES DE UN COMPUTADOR 1. PROPIEDADES DEL JUEGO DE INSTRUCCIONES DE UN COMPUTADOR. 2. MODOS DE DECCIONAMIENTO. Inmediato. Directo. Absoluto. Relativo. Indirecto. Implícito. Instrucciones

Más detalles

2. ARQUITECTURA BÁSICA DE MIPS 64

2. ARQUITECTURA BÁSICA DE MIPS 64 2. ARQUITECTURA BÁSICA DE MIPS 64 1 ARQUITECTURA BÁSICA DE MIPS 64 1. Características RISC de MIPS64 2. Registros y memoria 3. Instrucciones enteras 4. Instrucciones de coma flotante 5. El ensamblador

Más detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento de un computador. 1.4. Características

Más detalles

DISEÑO DEL PROCESADOR

DISEÑO DEL PROCESADOR DISEÑO DEL PROCESADOR Partes de un sistema digital Unidad de procesamiento: Se almacenan y transforman los datos Unidad de control: Genera las secuencias se señales de control de acuerdo al algoritmo de

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

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

Capitulo 1 Fundamentos de Computadores - I.T.Telecomunicación - Segundo cuatrimestre. INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES

Capitulo 1 Fundamentos de Computadores - I.T.Telecomunicación - Segundo cuatrimestre. INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES INTRODUCCION A LOS FUNDAMENTOS DE COMPUTADORES Hoja 1 PRIMERA APROXIMACION AL CONCEPTO DE COMPUTADOR Computador: máquina que procesa la información para obtener unos resultados. La información a procesar

Más detalles

Instrucciones de máquina y tipos de software

Instrucciones de máquina y tipos de software (obsoletos) Instrucciones de máquina y tipos de software Software del sistema: Implementa sobre la máquina convencional («desnuda») una «máquina virtual»: la máquina operativa Software de aplicaciones:

Más detalles

3. SEGMENTACIÓN DEL CAUCE

3. SEGMENTACIÓN DEL CAUCE 3. SEGMENTACIÓN DEL CAUCE 1 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 2. Etapas del MIPS64 3. Riesgos 4. Operaciones muticiclo 2 SEGMENTACIÓN DEL CAUCE 1. Conceptos básicos 3 Conceptos básicos Ciclo

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

Tema 5. Segmentación: conceptos básicos

Tema 5. Segmentación: conceptos básicos Tema 5. Segmentación: conceptos básicos Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI

Más detalles

Estructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos

Estructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos 1 Estructura y Tecnología de Computadores Módulo C. Arquitectura del procesador Tema. Modos de direccionamiento y tipos de datos José Manuel Mendías Cuadros Dpto.. Arquitectura de Computadores y Automática

Más detalles

Programación de IA-32 Modo Real

Programación de IA-32 Modo Real Programación de IA-32 Modo Real Control del flujo de la ejecución Erwin Meza Vega IA-32 Modo real (1/2) Acceso sólo a características limitadas del procesador Se comporta como un 8086 muy rápido Uso de

Más detalles

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras http://www.herrera.unt.edu.ar/arqcom dcohen@herrera.unt.edu.ar Temario 1. Evolución histórica. 2. Repaso de conceptos importantes.

Más detalles

Estructura y Tecnología de Computadores II (Gestión y Sistemas)

Estructura y Tecnología de Computadores II (Gestión y Sistemas) Temario Estructura y Tecnología de Computadores II (Gestión y Sistemas) Contenido del temario El temario propuesto en la asignatura coíncide con los siguientes apartados del texto base teórico Estructura

Más detalles

Tema 1: PROCESADORES SEGMENTADOS

Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS Tema 1: PROCESADORES SEGMENTADOS 1.1. Procesadores RISC frente a procesadores CISC. 1.2. Clasificación de las arquitecturas paralelas. 1.3. Evaluación y mejora del rendimiento

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

Práctica 3 - Arquitectura del CPU

Práctica 3 - Arquitectura del CPU Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar

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

Bloques del programa de la asignatura

Bloques del programa de la asignatura Bloques del programa de la asignatura lases Enfoque Temas 1 1 oncreto Símplez y Símplez+i4 (niveles de máquina convencional y micromáquina) 11 16 General Representación y procesamiento Instrucciones y

Más detalles

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES Ejercicio 1 Los siguientes números se encuentran representados en complemento a dos utilizando 6 bits. Indique su correspondiente valor decimal: a) 010011 b) 100111 Ejercicio 3 Dada la siguiente expresión

Más detalles

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR

FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR MICROINSTRUCCIONES FUNCIONAMIENTO DE LA UNIDAD DE CONTROL DEL PROCESADOR La memoria de las maquinas IAS consiste en 1000 posiciones de almacenamiento, llamadas palabras, de 40 digitos binarios (bits) cada

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

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

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 La Unidad de Control La instrucción

Más detalles

Arquitectura de Computadores II Clase #4

Arquitectura de Computadores II Clase #4 Clase #4 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Contenido Unidad de control Control cableado Control microprogramado MIC-1 1 La Unidad de Control La instrucción

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

Arquitectura de Computadores Problemas (hoja 4). Curso

Arquitectura de Computadores Problemas (hoja 4). Curso Arquitectura de Computadores Problemas (hoja 4). Curso 2006-07 1. Sea un computador superescalar similar a la versión Tomasulo del DLX capaz de lanzar a ejecución dos instrucciones independientes por ciclo

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. Datapath para las instrucciones de brinco

El procesador. Datapath para las instrucciones de brinco El procesador Datapath para las instrucciones de brinco Instrucciones de brinco Dos tipos de instrucciones de brincos: 1. Brinco condicional. beq $t0, $t1, Etiqueta ; if t0 == t1 goto Etiqueta 2. Brinco

Más detalles

Introducción a la arquitectura de computadores

Introducción a la arquitectura de computadores Introducción a la arquitectura de computadores Departamento de Arquitectura de Computadores Arquitectura de computadores Se refiere a los atributos visibles por el programador que trabaja en lenguaje máquina

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

Modos de Direccionamiento+ Diseño de ISA. Organización del Computador 1 Verano 2016

Modos de Direccionamiento+ Diseño de ISA. Organización del Computador 1 Verano 2016 Modos de Direccionamiento+ Diseño de ISA Organización del Computador 1 Verano 2016 Repaso Vimos que una instrucción se compone de OpCode Fuente/s CodOp Fuente/s Destino/s Destino/s Qué pueden ser estas

Más detalles

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL 1. ESTRUCTURA GENERAL DE UN COMPUTADOR VON-NEUMANN. Unidad de memoria (UM) Unidad Aritmético Lógica (UAL) Unidad de control (UC) Buses. Unidades de

Más detalles

Organización y Arquitectura

Organización y Arquitectura Diego Garverbetsky 1, Marcelo Risk 1, Diego Fernández Slezak 1, Juan Pablo Galeotti 1, Fernando Schapachnik 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina

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

Diseño del procesador MIPS R2000

Diseño del procesador MIPS R2000 Diseño 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 1.

Más detalles

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel. Tema 2: Arquitectura del repertorio de instrucciones Visión del computador que tiene el programador en bajo nivel. Lo que el programador en lenguaje ensamblador debe conocer para escribir programas: (1)

Más detalles

Sistemas de Computadoras

Sistemas de Computadoras Sistemas de Computadoras Índice Concepto de Computadora Estructura de la Computadora Funcionamiento de la Computadora Historia de las Computadoras Montando una Computadora Computadora Un sistema de cómputo

Más detalles

Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Sistemas de Numeración: Alfabeto:

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

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

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Departamento de Arquitectura y Tecnología de Sistemas Informáticos Octubre 2009 1. Sea un computador con palabras y direcciones

Más detalles

Conceptos básicos de procesadores

Conceptos básicos de procesadores 1 Conceptos básicos de procesadores Contenidos 1.1. Diseño de un repertorio de instrucciones 1.2. Mecanismo completo de ejecución de una instrucción 1.3. Evaluación de prestaciones de un procesador 1.4.

Más detalles

Tema 2. Diseño del repertorio de instrucciones

Tema 2. Diseño del repertorio de instrucciones Tema 2 Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Índice Transparencia: 2 / 53 Conceptos básicos Consideraciones sobre los lenguajes de alto nivel y su influencia

Más detalles

TEMA 1: Conceptos generales. 1.- Representa los primeros 16 números decimales (del 0 al 15) usando codificación binaria y hexadecimal.

TEMA 1: Conceptos generales. 1.- Representa los primeros 16 números decimales (del 0 al 15) usando codificación binaria y hexadecimal. TEMA : Conceptos generales.- Representa los primeros 6 números decimales (del al 5) usando codificación binaria y hexadecimal. = 2 = $ 4 = 2 = $4 8 = 2 = $6 2 = 2 = $C = 2 = $ 5 = 2 = $5 9 = 2 = $9 3 =

Más detalles

Clasificación de las Arquitecturas

Clasificación de las Arquitecturas Clasificación de las Arquitecturas MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Por la taxonomía de Flynn 1 Flynn Flujo de datos Simple Múltiple Flujo de datos Simple Múltiple SISD MISD

Más detalles

8.4. El software en los μprocesadores

8.4. El software en los μprocesadores 8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado

Más detalles

TIPOS DE DIRECCIONAMIENTO POSIBLES

TIPOS DE DIRECCIONAMIENTO POSIBLES DIRECCIONAMIENTO Y REGISTROS Los modos de direccionamiento de una arquitectura son el conjunto de sintaxis y métodos que usan las instrucciones para especificar una dirección de memoria, ya sea la dirección

Más detalles

Representación de datos y aritmética básica en sistemas digitales

Representación de datos y aritmética básica en sistemas digitales Representación de datos y aritmética básica en sistemas digitales DIGITAL II - ECA Departamento de Sistemas e Informática Escuela de Ingeniería Electrónica Rosa Corti 1 Sistemas de Numeración: Alfabeto:

Más detalles

Tema 7: Procesadores superescalares

Tema 7: Procesadores superescalares Tema 7: Procesadores superescalares Arquitectura de Computadores y Sistemas Operativos I 4º Curso Plan 96 Escuela Técnica Superior Ingenieros Telecomunicaciones DISCA Tema 7: Procesadores superescalares

Más detalles