Departamento de Automática

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

Download "Departamento de Automática"

Transcripción

1 Departamento de Automática Tema 3 Paralelismo a nivel de instrucción (I) Prof. Dr. José Antonio de Frutos Redondo Dr. Raúl Durán Díaz Curso

2 Tema 3. Paralelismo a Nivel de Instrucción I Planificación de instrucciones y predicción de saltos Planificación estática (reordenación y desenrollado de bucles). Renombramiento de registros. Planificación dinámica (Algoritmo de Tomasulo). Predicción dinámica de saltos. Tabla de bits y tabla de contadores. BTB (Branch Target Buffer) Pila de direcciones de retorno. 3. Paralelismo a nivel de instrucción (I) 2

3 Reordenación de código Consiste en reordenar las instrucciones para eliminar parones. Hay que tener cuidado con las dependencias. Ejemplo: consideramos el siguiente programa que suma a un vector de 1000 componentes, en coma flotante, un valor escalar: for (i = 0; i < 1000; i = i + 1) x[i] = x[i] + s; En este bucle no hay dependencias entre iteraciones. 3. Paralelismo a nivel de instrucción (I) 3

4 Reordenación de código El código en ensamblador correspondiente al bucle es: bucle: ld f0,0(r1) addd f4,f0,f2 sd 0(r1),f4 subi r1,r1,8 bnez r1,bucle Suponemos la siguientes latencias: Productor Consumidor Latencia FP ALU FP ALU 3 ciclos FP ALU Store 2 ciclos Load FP ALU 1 ciclo Load Store 0 ciclos Enteros: Load - ALU, 1 ciclo; resto 0 ciclos. 3. Paralelismo a nivel de instrucción (I) 4

5 Reordenación de código Con las latencias vistas, la ejecución del bucle es: instrucción ciclo bucle: ld f0,0(r1) 1 parón 2 addd f4,f0,f2 3 parón 4 parón 5 sd 0(r1),f4 6 subi r1,r1,8 7 parón 8 bnez r1,bucle 9 hueco de retardo 10 Tiempo de ejecución: 10 ciclos por iteración, 5 parones (50%) 3. Paralelismo a nivel de instrucción (I) 5

6 Reordenación de código Se puede reordenar el código, para eliminar parones: bucle: ld f0,0(r1) parón addd f4,f0,f2 subi r1,r1,8 parón bnez r1,bucle sd 8(r1),f4 Tiempo de ejecución: 7 ciclos (reducción del 33%) 2 parones (29%) 3. Paralelismo a nivel de instrucción (I) 6

7 Reordenación de código A pesar de la reordenación: El cuerpo de la iteración realiza los siguientes pasos: Cargar una componente del vector. Sumarle el escalar. Almacenar el resultado. El resto de ciclos (3, el 43%) es sólo recargo. Para reducir el porcentaje de recargo desenrollamos el bucle: Se copia el cuerpo del bucle varias veces para trabajar sobre varias componentes del vector en cada iteración. 3. Paralelismo a nivel de instrucción (I) 7

8 Desenrollado de bucles En cada iteración del nuevo bucle se realizan varias iteraciones del bucle original. El bucle original era: bucle: ld f0,0(r1) addd f4,f0,f2 sd 0(r1),f4 subi r1,r1,8 bnez r1,bucle 3. Paralelismo a nivel de instrucción (I) 8

9 Desenrollado de bucles Nueva versión del bucle: ciclo bucle: ld f0,0(r1) ;componente 1 1 addd f4,f0,f2 3 sd 0(r1),f4 6 ld f6,-8(r1) ;componente 2 7 addd f8,f6,f2 9 sd -8(r1),f8 12 ld f10,-16(r1) ;componente 3 13 addd f12,f10,f2 15 sd -16(r1),f12 18 ld f14,-24(r1) ;componente 4 19 addd f16,f14,f2 21 sd -24(r1),f16 24 subi r1,r1,32 ;control del bucle 25 bnez r1,bucle Paralelismo a nivel de instrucción (I) 9

10 Desenrollado de bucles Sin desenrollar (ni reordenar): 4 iteraciones supondrían 4 * 10 = 40 ciclos. Desenrollando: 1 iteración (lo equivalente) supone 28 ciclos (30% menos) La ganancia procede de: Eliminar las instrucciones de control del bucle en 3 de las 4 iteraciones desenrolladas. Eliminar el hueco de retardo vacío que hay después de la instrucción de salto en 3 de las 4 iteraciones. En resumen: se elimina el recargo en 3 de las 4 iteraciones. 3. Paralelismo a nivel de instrucción (I) 10

11 Desenrollado de bucles Bucle desenrollado con reordenación de código: bucle: ld f0,0(r1) ;componente 1 ld f6,-8(r1) ;componente 2 ld f10,-16(r1) ;componente 3 ld f14,-24(r1) ;componente 4 addd f4,f0,f2 ;sumas addd f8,f6,f2 addd f12,f10,f2 addd f16,f14,f2 sd 0(r1),f4 ;almacenamientos sd -8(r1),f8 subi r1,r1,32 ;control del bucle sd 16(r1),f12 ;16-32=-16 bnez r1,bucle sd 8(r1),f16 ;8-32= Paralelismo a nivel de instrucción (I) 11

12 Desenrollado de bucles Reordenando se han rellenado los parones por dependencias con trabajo útil. Cada iteración se ejecuta ahora en 14 ciclos, 50% menos que en la versión desenrollada pero no reordenada. Si el número de iteraciones m no es múltiplo de n (factor de desenrollado), sustituimos el bucle original por dos consecutivos: El primero, con cuerpo igual al original, se ejecuta m mod n veces. El segundo, con cuerpo desenrollado n veces, se ejecuta m/n veces (división entera). 3. Paralelismo a nivel de instrucción (I) 12

13 Renombramiento de registros Se trata de una técnica para eliminar dependencias falsas. Básicamente consiste en implementar más registros de los que ve el programador. Los nombres que usa el programador son lógicos; los que usa la máquina, físicos. El hardware establece una correspondencia entre ellos. 3. Paralelismo a nivel de instrucción (I) 13

14 Renombramiento de registros Ejemplo de funcionamiento del renombrado. 1 or r5,r0,dir 2 ld r6,0(r5) 3 ld r8,8(r5) 4 ld r9,16(r5) 5 ld r7,24(r5) 6 add r1,r8,r9 7 add r8,r9,r7 8 st 0(r8),r1 9 ld r8,0(r6) Paralelismo a nivel de instrucción (I) 14

15 Renombramiento de registros or ld ld ld ld add add st ld r5,r0,dir r6,0(r5) r8,8(r5) r9,16(r5) r7,24(r5) r1,r8,r9 r8,r9,r7 0(r8),r1 r8,0(r6) or ld ld ld ld add add st ld f1,r0,dir f2,0(f1) f3,8(f1) f4,16(f1) f5,24(f1) f6,f3,f4 f7,f4,f5 0(f7),f6 f8,0(f2) r5 f1 r6 f2 -- f3 r9 f4 r7 f5 r1 f6 -- f7 r8 f8 -- f9 3. Paralelismo a nivel de instrucción (I) 15

16 Renombramiento de registros 1 or f1,r0,dir 2 ld f2,0(f1) 3 ld f3,8(f1) 4 ld f4,16(f1) 5 ld f5,24(f1) 6 add f6,f3,f4 7 add f7,f4,f5 8 st 0(f7),f6 9 ld f8,0(f2) Paralelismo a nivel de instrucción (I) 16

17 Renombramiento de registros Paralelismo a nivel de instrucción (I) 17

18 Planificación dinámica Reordenación de la ejecución de instrucciones para evitar parones por hardware. Objetivo: eliminar parones innecesarios. Veamos el siguiente código: divd f0,f2,f4 addd f10,f0,f8 subd f12,f8,f14 La segunda instrucción no se puede ejecutar hasta que primera genere f0. Esto impide que se ejecute la tercera, aunque tenga todos sus datos preparados => parón innecesario. 3. Paralelismo a nivel de instrucción (I) 18

19 Planificación dinámica Se pretende que una instrucción con sus operandos disponibles no se quede paralizada si tiene posibilidad de ejecutarse (porque otra anterior esté bloqueada). Para ello se divide la fase ID en dos: lanzamiento: decodificación y comprobación de dependencias estructurales (en orden de programa). lectura de operandos: espera por operandos; cuando están listos, se leen y se pasa a ejecutar (no necesariamente respetando el orden del programa) De esta forma, una instrucción puede adelantar a otra que esté bloqueada por dependencias. La idea es que el código se reordena solo, de forma dinámica, y según la situación del cauce. 3. Paralelismo a nivel de instrucción (I) 19

20 Planificación dinámica Ventajas: No sólo trabaja sobre dependencias estáticas, sino también sobre dinámicas. El compilador es más sencillo. Además, la reordenación en tiempo de compilación sólo valía para el cauce concreto con el que se trabaja: ahora es más general. Inconvenientes: El hardware es bastante más complejo. Ahora se pueden dar las dependencias WAR y WAW. Hay que tener cuidado con las excepciones (interrupciones). 3. Paralelismo a nivel de instrucción (I) 20

21 Algoritmo de Tomasulo Robert Tomasulo IBM 360/91 (1967). Rastrea cuándo los operandos de una instrucción están listos para minimizar los parones por dependencias RAW. Introduce el renombrado de registros para minimizar los parones por dependencias WAW y WAR. Características malas del IBM 360: Pocos registros de coma flotante en doble precisión (4). Accesos a memoria lentos. Grandes atascos en coma flotante. El algoritmo de Tomasulo se diseño para contrarrestar estas características malas. 3. Paralelismo a nivel de instrucción (I) 21

22 Algoritmo de Tomasulo La unidad de coma flotante del IBM 360/91 podía trabajar de forma simultánea con: Tres operaciones para el sumador. Dos operaciones para el multiplicador. Usa estaciones de reserva, que almacenan las instrucciones que están pendientes de entrar a una UF (cada UF tiene la suya). La distribución de los resultados se efectúa directamente por medio del bus común de datos (CDB) sin necesidad de pasar por los registros. 3. Paralelismo a nivel de instrucción (I) 22

23 Algoritmo de Tomasulo 3. Paralelismo a nivel de instrucción (I) 23

24 Algoritmo de Tomasulo Con la estructura de la máquina, las fases del cauce son: lanzamiento, ejecución y almacenamiento. Lanzamiento: Se toma una instrucción de la cola. Si hay espacio en su estación de reserva, se coloca ahí. Si los operandos están en el banco de registros, se envían a la estación de reserva. Si no hay espacio en la estación de reserva se produce un parón estructural. Si los operandos no están en el banco de registros, se indican las unidades funcionales que los producen en Q j y Q k. Esta operación introduce un renombramiento de registros implícito. 3. Paralelismo a nivel de instrucción (I) 24

25 Algoritmo de Tomasulo Ejecución: Si falta algún operando, se vigila el CDB. Cuando están listos los dos, se ejecuta la operación. Almacenamiento: Cuando termina la ejecución, los resultados se ponen en el CDB. De ahí van a los registros y a las UF que los esperen. 3. Paralelismo a nivel de instrucción (I) 25

26 Algoritmo de Tomasulo Implementación del renombrado del registros: Hay 11 fuentes de datos: 6 entradas del buffer de loads, 3 entradas en la estación de reserva de suma y 2 entradas en la estación de reserva de multiplicación. A cada operando en la fase de lanzamiento se le da un identificador de 4 bits, que indica qué fuente proporciona el dato (0 si ya está listo) De esta manera se extiende el número de registros de 4 a Paralelismo a nivel de instrucción (I) 26

27 Algoritmo de Tomasulo Información que se almacena en la estación de reserva: Op: operación que se tiene que ejecutar. Q j,q k : estaciones de reserva que producen los operandos (0 si listo o no necesario). V j,v k : valor de los operandos. Ocup: si la entrada está ocupada. Sólo es válida la información de Q o V (no ambas a la vez). 3. Paralelismo a nivel de instrucción (I) 27

28 Algoritmo de Tomasulo Información que se almacena en cada registro y en los buffers de stores: Q i : estación de reserva que genera el valor que hay que enviar a memoria. V: valor que hay que enviar a memoria. 3. Paralelismo a nivel de instrucción (I) 28

29 Algoritmo de Tomasulo (Ejemplo) Vamos a analizar la ejecución del siguiente código: ld f6,34(r2) ld f2,45(r3) multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 Suponemos las siguientes latencias: ld, sd: 3 ciclos addd, subd: 2 ciclos multd: 5 ciclos divd: 19 ciclos 3. Paralelismo a nivel de instrucción (I) 29

30 Algoritmo de Tomasulo (Ejemplo) Punto de partida: el código se encuentra en esta situación: Instrucción lanz. ejec. almac. ld f6,34(r2) sí 1 sí 2-4 sí 5 ld f2,45(r3) sí 2 sí multd f0,f2,f4 sí 3 subd f8,f6,f2 sí 4 divd f10,f0,f6 sí 5 addd f6,f8,f2 sí 6 OJO! Esta información no se encuentra físicamente en ninguna tabla. Se muestra para facilitar la comprensión. 3. Paralelismo a nivel de instrucción (I) 30

31 Algoritmo de Tomasulo (Ejemplo) Estaciones de reserva: UF Ocup Op V j V k Q j Q k add1 sí sub M[34+R(r2)] load2 add2 sí add add1 load2 add3 no mult1 sí mult R(f4) load2 mult2 sí div M[34+R(r2)] mult1 Estado de los registros: f0 f2 f4 f6 f8 f10 f12 f30 mult1 load2 add2 add1 mult2 3. Paralelismo a nivel de instrucción (I) 31

32 Algoritmo de Tomasulo (Ejemplo) Estado cuando multd está lista para escribir Inst lanz. ejec. almac. ld f6,34(r2) sí 1 sí 2-4 sí 5 ld f2,45(r3) sí 2 sí 3-5 sí 6 multd f0,f2,f4 sí 3 sí subd f8,f6,f2 sí 4 sí 7-8 sí 9 divd f10,f0,f6 sí addd f6,f8,f2 sí 6 sí La instrucción de suma ha podido terminar, porque el renombrado elimina la dependencia WAR con la división y la resta. Ojo al parón estructural del addd por almacenamiento simultáneo con el multd. 3. Paralelismo a nivel de instrucción (I) 32

33 Algoritmo de Tomasulo (Ejemplo) Estaciones de reserva: UF Ocup Op V j V k Q j Q k add1 no add2 sí add M[34+R(r2)]-M[45+R(r3)] M[45+R(r3)] add3 no mult1 sí mult M[45+R(r3)] R(f4) mult2 sí div M[34+R(r2)] mult1 Estado de los registros: f0 f2 f4 f6 f8 f10 f12 f30 mult1 add2 mult2 3. Paralelismo a nivel de instrucción (I) 33

34 Predicción dinámica de saltos En el tema anterior vimos cuatro posibilidades al encontrar un salto: Parar el cauce. Suponer que se toma. Suponer que no se toma. Ejecución retardada. Vimos que: Parar significa perder rendimiento. Suponer que se toma o no significa una gran penalización en caso de equivocarnos (una fracción considerable de las veces). La ejecución retardada tiene una reducida efectividad. 3. Paralelismo a nivel de instrucción (I) 34

35 Predicción dinámica de saltos Suponer que el salto va a ir en un determinado sentido dependiendo de la historia del salto (en tiempo de ejecución) Objetivo: Adivinar en qué sentido va a ir cada salto. El problema de los esquemas utilizados antes es que eran estáticos: siempre hacen la misma predicción. Pero los saltos no se comportan así: No todos saltan en el mismo sentido. Bastantes saltos (analizados de forma individual) no saltan siempre en el mismo sentido. Información sobre la que se trabaja: El comportamiento anterior del salto (del salto concreto, o de todos los saltos, según el esquema) 3. Paralelismo a nivel de instrucción (I) 35

36 Tabla de bits Consiste en una tabla de bits a la que se accede con la parte baja de la dirección del salto. Ejemplo: si hay 1024 bits, se accede con los 10 bits inferiores de la dirección del salto. El bit está a 1 si la última vez el salto se tomó, a 0 si no. La predicción es que el salto se comporta como la última vez. Si se predice mal, se corrige la predicción. Presenta el problema de que a varios saltos les corresponde la misma entrada en la tabla. 3. Paralelismo a nivel de instrucción (I) 36

37 Tabla de contadores (TC) En lugar de un bit, las entradas de la tabla son contadores de 2 bits con saturación. Un posible algoritmo puede ser: Cuando un salto se toma, se incrementa (sin pasar de 3). Cuando no se toma, se decrementa (sin pasar de 0). La predicción se hace de la siguiente manera: Si el contador vale 2 ó 3, el salto se predice tomado. Si vale 0 ó 1, se predice no tomado. El acceso a la tabla se hace igual: con los bits inferiores de la dirección del salto. Cuando el salto se ejecuta, el valor del contador se actualiza según el algoritmo visto. 3. Paralelismo a nivel de instrucción (I) 37

38 Tabla de contadores (TC) Si la tabla es de n bits: Cuando un salto se toma, se incrementa (máximo: 2 n 1). Cuando no se toma, se decrementa (mínimo: 0). El acceso a la tabla se hace igual: con los bits inferiores de la dirección del salto. La predicción se hace de la siguiente manera: Si 2 n 1 contador 2 n 1, el salto se predice tomado. Si 2 n 1 1 contador 0, se predice no tomado. Cuando el salto se ejecuta, el valor del contador se actualiza según el algoritmo visto. 3. Paralelismo a nivel de instrucción (I) 38

39 Tabla de contadores (TC) Para mejorar el comportamiento del predictor, se utiliza la siguiente máquina de estados (válida para 2 bits): Salto tomado Predicción tomar 11 Salto tomado Predicción no tomar 01 Salto no tomado Salto tomado Salto no tomado Salto tomado Predicción tomar 10 Salto no tomado Predicción no tomar 00 Salto no tomado 3. Paralelismo a nivel de instrucción (I) 39

40 Tabla de contadores (TC) Rendimientos: TC con 4096 entradas (2 bits por entrada): 3. Paralelismo a nivel de instrucción (I) 40

41 Tabla de contadores (TC) Rendimientos: comparación entre TC con 4096 entradas TC con entradas ilimitadas (2 bits por entrada): 3. Paralelismo a nivel de instrucción (I) 41

42 Historia global Mejora en la predicción considerando la historia de varios saltos. Si se accede a la TC con la dirección del salto, entonces, para realizar la predicción, sólo se utiliza el comportamiento del salto concreto. A veces, sin embargo, el comportamiento de saltos próximos al que estudiamos nos da información útil. Por ejemplo: if (aa == 2) aa = 0; if (bb == 2) bb = 0; if (aa!= bb) { 3. Paralelismo a nivel de instrucción (I) 42

43 Historia global En DLX: subi r3,r1,#2 bnez r3,l1 add r1,r0,r0 L1: subi r3,r2,#2 bnez r3,l2 add r2,r0,r0 L2: sub r3,r1,r2 beqz r3,l3 Si los saltos 1 y 2 no se toman, el salto 3 se tomará (r1 y r2 son iguales) 3. Paralelismo a nivel de instrucción (I) 43

44 Historia global Para tener la historia en cuenta, utilizamos un predictor global, de m bits, y 2 m predictores de n bits para otros tantos saltos. En la tabla siguiente hacemos m = n = 2, por tanto tenemos un predictor global de 2 bits, y 4 predictores posibles de 2 bits, para cada salto. Para predecir un salto miramos dos cosas: cómo fueron los dos saltos anteriores? Eso nos permite elegir la columna correcta. cuáles son los últimos 4 bits de la dirección de la instrucción de salto? Eso nos permite elegir la celda correcta. La celda elegida contiene la predicción para el salto actual. 3. Paralelismo a nivel de instrucción (I) 44

45 Historia global 3. Paralelismo a nivel de instrucción (I) 45

46 Historia global 3. Paralelismo a nivel de instrucción (I) 46

47 Predicción dinámica de saltos Se plantea un problema: Hasta el fin de la fase de decodificación no se sabe si es un salto. Para entonces, ya podemos saber si se toma en muchos casos. Por lo tanto: necesitamos identificar los saltos antes. Para ello utilizamos otra tabla: el buffer de destinos de saltos ( branch-target buffer ) Esta tabla se va a acceder en la fase de búsqueda con el CP (de forma simultánea a la búsqueda de la instrucción) El acceso nos dirá si la instrucción que buscamos es un salto, (y si lo es, la dirección de destino). 3. Paralelismo a nivel de instrucción (I) 47

48 Branch Target Buffer (BTB) Se trata de una tabla de dos columnas: En la primera (de memoria asociativa) se almacenan direcciones de saltos. En la segunda, los sitios a los que se salta en esos saltos si se toman. Si encuentra el valor que se le pide: La instrucción que estamos buscando (recordad: estamos en la fase de fetch) es un salto. La entrada correspondiente de la segunda columna es el destino del salto. Si no lo encuentra: no es un salto (o lo es pero no se ha ejecutado aún ninguna vez). Cuando se sabe que una instrucción es un salto, se almacenan su dirección y la de su destino en la tabla. 3. Paralelismo a nivel de instrucción (I) 48

49 Branch Target Buffer (BTB) 3. Paralelismo a nivel de instrucción (I) 49

50 Branch Target Buffer (BTB) Resumiendo el mecanismo de predicción: Tenemos el buffer de destinos de saltos (BTB), que nos dice si una instrucción (identificada por su dirección) es un salto, y el destino del salto. Tenemos la tabla de contadores (TC), que nos dice si el salto se va a tomar o no. En la fase de búsqueda hacemos tres accesos simultáneos: A la memoria, por la instrucción. Al buffer de destinos (BTB), para ver si es un salto, y cuál es el destino. A la TC, para ver si se toma el salto o no. 3. Paralelismo a nivel de instrucción (I) 50

51 Branch Target Buffer (BTB) Mecanismo de predicción (continuación): Si el BTB dice que no es un salto, se sigue la búsqueda secuencial. Si el BTB dice que es un salto, y la TC dice que no se toma, se hace lo mismo. Si el BTB dice que es un salto, y la TC dice que se toma, se sigue la búsqueda por el destino del salto. Cuando se ha ejecutado el salto, hay que actualizar la información de las tablas. Si era un salto y el BTB no nos avisó, se habilita una entrada para este nuevo salto. Si el salto se toma, se incrementa la entrada correspondiente de la TC. Si no se toma, se decrementa. 3. Paralelismo a nivel de instrucción (I) 51

52 Pila de direcciones de retorno Qué hacemos con los saltos indirectos? La dirección de destino no está en el código de la instrucción. Por lo tanto, hay que hacer un acceso a memoria o a un registro. Además el destino puede ser variable: Ejemplos: retorno de subrutina, sentencias switch. El 85% de los saltos indirectos en los SPEC son retornos: resulta apropiado centrarse en ellos. 3. Paralelismo a nivel de instrucción (I) 52

53 Pila de direcciones de retorno Pila de direcciones de retorno Es una estructura LIFO en la CPU Almacena las direcciones de retorno: Se introduce una nueva cuando se ejecuta una instrucción de llamada a subrutina. Se retira con el retorno de la subrutina. 3. Paralelismo a nivel de instrucción (I) 53

54 Pila de direcciones de retorno Porcentajes de predicciones erróneas de la pila de retornos 3. Paralelismo a nivel de instrucción (I) 54

6. PROCESADORES SUPERESCALARES Y VLIW

6. PROCESADORES SUPERESCALARES Y VLIW 6. PROCESADORES SUPERESCALARES Y VLIW 1 PROCESADORES SUPERESCALARES Y VLIW 1. Introducción 2. El modelo VLIW 3. El cauce superescalar 4. Superescalar con algoritmo de Tomasulo 2 PROCESADORES SUPERESCALARES

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Exámenes Ingeniería Computadores II Tutor: Antonio Rivero Cuesta Exámenes TEMA 1 Centro Asociado Palma de Mallorca Tutor: Antonio Rivero Cuesta Un procesador sin segmentación

Más detalles

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.. CONCEPTOS FUNDAMENTALES 3., 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX Arquitectura de Sistemas Paralelos 3 er curso de Ingeniería Técnica en Informática de Sistemas Práctica: Procesador segmentado DLX. Técnicas de optimización Curso 2005/2006 OBJETIVOS En esta práctica se

Más detalles

Procesadores segmentados. El DLX.

Procesadores segmentados. El DLX. Procesadores segmentados. El DLX. Curso 2011-2012 Características de las Arquitecturas Tipos de Arquitectura Organización de la Memoria Direccionamiento de Memoria Operaciones en el Repertorio de Instrucciones

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

Explotación del paralelismo a nivel de instrucción

Explotación del paralelismo a nivel de instrucción Explotación del paralelismo a nivel de instrucción Arquitectura de Computadores J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato

Más detalles

Autor: Longinos Recuero Bustos

Autor: Longinos Recuero Bustos Actividad 1.1 Autor: Longinos Recuero Bustos Suponiendo que se aplica una mejora a una máquina de tal forma que el rendimiento es 20 veces superior al que tenía y considerando que la mejora únicamente

Más detalles

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento

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

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

1. Objetivo y evolución de los procesadores ILP.

1. Objetivo y evolución de los procesadores ILP. Arquitectura de Computadores Tema 3: Procesadores ILP Índice. Objetivo y evolución de los procesadores ILP. 2. Segmentación (Pipeline).. Concepto y medida de rendimiento. i 2. Pipeline de instrucciones..

Más detalles

Procesadores superescalares. Introducción

Procesadores superescalares. Introducción Procesadores superescalares Introducción Introducción El término superescalar (superscalar) fue acuñado a fines de los 80s. Todas las CPUs modernas son superescalares. Es un desarrollo de la arquitectura

Más detalles

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes Introducción PROCESADOR SUPERESCALAR Paralelismo bus d/le eje mem es t ciclo seg =t ciclo supes Grado m: en cada ciclo se buscan/decodifican m instrucciones Introducción CICLOS POR INSTRUCCION tciclo identico

Más detalles

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE 3.1. CONCEPTOS FUNDAMENTALES 3.2, 3.4 PLANIFICACIÓN ESTÁTICA. DESENROLLADO DE BUCLES. 3.3. PLANIFICACIÓN DINÁMICA (Algoritmo Tomasulo).

Más detalles

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-11 6.3.3 Riesgo de Control. Los riesgos por control en DLX son menos frecuentes que los riesgos por dependencia de datos, pero al no haber una solución tan buena como el adelantamiento de datos, se convierten

Más detalles

Paralelismo en monoprocesadores. Procesadores VLIW

Paralelismo en monoprocesadores. Procesadores VLIW Paralelismo en morocesadores Procesadores VLIW Profesor: Mag. Marcelo Tosini Cátedra: Arquitectura de Computadoras y técnicas Digitales Carrera: Ingeniería de Sistemas Ciclo: 4º año Arquitectura VLIW básica

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

Planificación Dinámica - 1. Arquitectura de Computadores

Planificación Dinámica - 1. Arquitectura de Computadores Hasta ahora hemos visto que los procesadores en pipeline ejecutan varias instrucciones simultáneamente pero manteniendo el mismo orden del programa, es decir, dadas dos instrucciones i y j de un programa

Más detalles

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION ESTRUCTURA DE COMPUTADORES Pag. 14.1 LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION 1. Introducción Vamos a aplicar las ideas de microprogramación al caso de un minicomputador similar al

Más detalles

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION SEGMENTACION SEGMENTACION SEGMENTACION I I I I I 1 2 3 4 5 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB SEGMENTACION INTRODUCIR NUEVA INSTRUCCIÓN CADA CICLO 1 CICLO,

Más detalles

TEMA 4. ARQUITECTURA IA-64

TEMA 4. ARQUITECTURA IA-64 TEMA 4. ARQUITECTURA IA-64 Stalling, W.Computer Organization and Architecture cap. 15 Intel IA-64 Architecture Software Developer s Manual Generalidades IA-64 Desarrollo conjunto Intel-HP Nueva arquitectura

Más detalles

3 - Arquitectura interna de un up

3 - Arquitectura interna de un up cei@upm.es 3 - Arquitectura interna un up Componentes básicos Lenguaje ensamblador y código máquina Ciclo básico ejecución una instrucción Algunos ejemplos Universidad Politécnica Madrid Componentes básicos

Más detalles

Predicción Dinámica - 1. Arquitectura de Computadores

Predicción Dinámica - 1. Arquitectura de Computadores Para conseguir el rendimiento óptimo de una instrucción por ciclo, otro de los obstáculos que nos encontramos es el de las dependencias de control, esencialmente, los saltos. Ya vimos que hay soluciones

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

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez Dpto. Física y Arquitectura de Computadores Universidad Miguel Hernandez Es el lenguaje de más bajo nivel que admite una máquina. El ensamblador hace que el código binario(máquina sea transparente al usuario)

Más detalles

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-2011. 6.1 Introducción a la segmentación de Instrucciones.

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso 2010-2011. 6.1 Introducción a la segmentación de Instrucciones. SEGMENTACIÓN 6.1 Introducción a la segmentación de Instrucciones. La segmentación o pipeline es una técnica de realización de procesadores por la cual se solapa la ejecución de las instrucciones. Hoy en

Más detalles

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas: ADMINISTRACION DE LA MEMORIA Función del Administrador de Memoria Registra qué parte de memoria está libre y ocupada Asigna y libera espacio en memoria a los procesos Administra el intercambio entre la

Más detalles

Tema V Generación de Código

Tema V Generación de Código Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.

Más detalles

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Arquitectura de Computadores. Tema 11. Pipelining Avanzado Arquitectura de Computadores Tema 11 Pipelining Avanzado Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 1 En qué se pone difícil Pipelining? Excepciones: hay 5 instrucciones

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 Computadoras. Clase 5 Posibles soluciones a atascos

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos Arquitectura de Computadoras Clase 5 Posibles soluciones a atascos Ejemplo de segmentación Notas de Clase 5 2 Atascos de un cauce (stall) Situaciones que impiden a la siguiente instrucción que se ejecute

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

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS Arquitectura de Computadores Tema 4 PROCESADORES SEGMENTADOS 1. Arquitecturas RISC y CISC. 2. Unidad de Control monociclo y multiciclo. 3. Segmentación. 3.1. Ruta de datos del MIPS R2000. 3.2. Control

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico

Organización de computadoras. Clase 11. Universidad Nacional de Quilmes. Lic. Martínez Federico Organización de computadoras Clase 11 Universidad Nacional de Quilmes Lic. Martínez Federico Qué vimos? Mascaras Qué vimos? Qué vimos? Mascaras Repeticiones controladas Qué vimos? Mascaras Repeticiones

Más detalles

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Unidad 1. Programación de Sistemas y Arquitectura de una Computadora Programación de Sistemas Arquitectura de una Computadora Componentes de un Sistema de Cómputo Un sistema está

Más detalles

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones. Aprovecha el paralelismo entre instrucciones en una corriente secuencial de instrucciones.

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

Ejercicios del tema 4. El procesador

Ejercicios del tema 4. El procesador jercicios del tema 4. l procesador jercicio 1. Considere un procesador de 32 bits con una frecuencia de reloj de 500 MHz con la estructura del mostrado en el jercicio 3. La memoria se direcciona por bytes

Más detalles

Construyendo Programas más Complejos

Construyendo Programas más Complejos Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más

Más detalles

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

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

Organización del Computador 1 Memoria Cache

Organización del Computador 1 Memoria Cache Organización del Computador 1 Memoria Cache Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 2011 Memorias: Evolución Memoria cache Pioneros: Maurice Wilkes

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

FUNCIONAMIENTO DEL ORDENADOR

FUNCIONAMIENTO DEL ORDENADOR FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores

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

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. MEMORIAS CACHE Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. Tiempo ciclo memoria > tiempo de ciclo del procesador la CPU debe esperar a la memoria

Más detalles

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. Unidad III: Optimización Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. La optimización va a depender del lenguaje

Más detalles

Arquitectura de Computadores II Clase #7

Arquitectura de Computadores II Clase #7 Arquitectura de Computadores II Clase #7 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Veremos Memoria virtual 1 Recordemos: Jerarquía de Memoria Registros Instr.

Más detalles

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo

Más detalles

Arquitectura de Computadores

Arquitectura de Computadores Arquitectura de Computadores 6. CPU Segmentada (Pipeline) 1. Conceptos Básicos 2. Causas de Ralentización Arquitectura de Computadores Segmentación (Pipeline) - 1 En los dos capítulos siguientes vamos

Más detalles

TEMA 3: El proceso de compilación, del código fuente al código máquina

TEMA 3: El proceso de compilación, del código fuente al código máquina TEMA 3: El proceso de compilación, del código fuente al código máquina 3.1 Fase de compilación y linkado (link, montado o enlace) Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado

Más detalles

Qué es un programa informático?

Qué es un programa informático? Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s

Más detalles

Planificación estática

Planificación estática Planificación estática Planificación de bloques básicos Planificación de bucles Planificación global Serafín Benito AIC: Planificación estática 1 Planificación de bloques básicos.. Técnica sencilla. Eficiencia

Más detalles

Organización lógica Identificación de bloque

Organización lógica Identificación de bloque Cómo se encuentra un bloque si está en el nivel superior? La dirección se descompone en varios campos: Etiqueta (tag): se utiliza para comparar la dirección requerida por la CPU con aquellos bloques que

Más detalles

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Diagrama temporal de un programa simple. Multi-Programación con dos programas Diagrama temporal de un programa simple Multi-Programación con dos programas Multi-Programación con tres programas Gestión de la Memoria Mono-programación La memoria se divide en dos partes: Una para el

Más detalles

Arquitectura (Procesador familia 80 x 86 )

Arquitectura (Procesador familia 80 x 86 ) Arquitectura (Procesador familia 80 x 86 ) Diseño de operación Basada en la arquitectura Von Newman Memoria CPU asignadas direcciones I / O BUS: Es un canal de comunicaciones Bus de direcciones: Contiene

Más detalles

Comparaciones en lenguaje ensamblador

Comparaciones en lenguaje ensamblador Comparaciones en lenguaje ensamblador Objetivo: Entender cómo se realizan las comparaciones de datos en lenguaje ensamblador En lenguaje ensamblador no existe la instrucción IF como se trabaja en otros

Más detalles

Funcionamiento de la Pila (o stack)

Funcionamiento de la Pila (o stack) Funcionamiento de la Pila (o stack) Todo μp cuenta con una memoria de almacenamiento temporal denominada Pila Es una estructura de datos de tipo secuencial (LIFO) Existen dos operaciones básicas posibles:

Más detalles

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre. FUNDAMENTOS DE COMPUTADORES 18 de junio de 2014. Examen parcial del 2º cuatrimestre. Nombre DNI Apellidos Grupo Ejercicio 1 (2.5 puntos) Para el computador MIPS estudiado en clase, responder a las siguientes

Más detalles

Estructura de Computadores Tema 1. Introducción a los computadores

Estructura de Computadores Tema 1. Introducción a los computadores Estructura de Computadores Tema 1. Introducción a los computadores Departamento de Informática Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas UNIVERSIDAD CARLOS III DE MADRID Contenido

Más detalles

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline:

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline: PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline: Observemos que la técnica de Pipelining no mejora el tiempo de cada tarea, sino el tiempo de toda la carga de trabajo.

Más detalles

Programación Vectorial

Programación Vectorial Programación Vectorial Rafael Valdés Valdazo, Angel María Vilaboa Pérez UO196558@uniovi.es, UO197092@uniovi.es Resumen. Este documento trata sobre los fundamentos básicos de la programación vectorial,

Más detalles

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Ejemplo, generación de #s aleatorios

Ejemplo, generación de #s aleatorios Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien

Más detalles

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Modelo de von Neumann Profesor: Felipe Cabarcas Correo:cabarcas@udea.edu.co Oficina:

Más detalles

Tema 2. Diseño del repertorio de instrucciones

Tema 2. Diseño del repertorio de instrucciones Soluciones a los problemas impares Tema 2. Diseño del repertorio de instrucciones Arquitectura de Computadores Curso 2009-2010 Tema 2: Hoja: 2 / 16 Tema 2: Hoja: 3 / 16 Base teórica Al diseñar un computador,

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU) INDICE Capitulo 1. Qué es un computador? 1.1. Introducción 1 1.2. El computador como dispositivo electrónico 2 1.3. Cómo se procesa la información? 3 1.4.Diagrama de bloques de un computador 1.4.1. Información

Más detalles

Estructura del Computador

Estructura del Computador Estructura del Computador 1 definiciones preliminares Estructura: es la forma en que los componentes están interrelacionados Función: la operación de cada componente individual como parte de la estructura.

Más detalles

Procesadores Vectoriales

Procesadores Vectoriales Procesadores Vectoriales Curso 2011-2012 Por qué procesamiento vectorial? La segmentación tiene límites: Si se aumenta mucho el número de etapas, baja el ciclo de reloj, pero aumentan las dependencias.

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

MEMORIA EJERCICIO 1 EJERCICIO 2

MEMORIA EJERCICIO 1 EJERCICIO 2 MEMORIA EJERCICIO 1 Determinar el mapa de memoria de un procesador con 16 señales de bus de direcciones, una señal de asentimiento de bus de direcciones AS, una señal de lectura R, otra de escritura W

Más detalles

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas Tema 5. Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 28-29 Tema 5 Hoja: 2 / 36 Tema 5 Hoja: 3 / 36 Base teórica La memoria es el lugar en

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Arquitectura Segmentada: Conceptos básicosb

Arquitectura Segmentada: Conceptos básicosb Arquitectura Segmentada: Conceptos básicosb Diseño de Sistemas Digitales EL-3310 I SEMESTRE 2008 4 ARQUITECTURA SEGMENTADA (PIPELINING) (4 SEMANAS) 4.1 Conceptos básicos de la arquitectura segmentada Paralelismo

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

Instituto Tecnológico de Morelia

Instituto Tecnológico de Morelia Instituto Tecnológico de Morelia Arquitectura de Computadoras Unidad 1a Programa 1 Modelo de arquitecturas de cómputo. 1.1 Modelos de arquitecturas de cómputo. 1.1.1 Clásicas. 1.1.2 Segmentadas. 1.1.3

Más detalles

Tema 6 Organización y gestión de la memoria

Tema 6 Organización y gestión de la memoria Departamento de Tecnologías de la Información Tema 6 Organización y gestión de la memoria Ciencias de la Computación e Inteligencia Artificial Índice 6.1 Organización de la memoria en tiempo de ejecución

Más detalles

Tema: Microprocesadores

Tema: Microprocesadores Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 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

Arquitectura de Computadores. Apellidos, Nombre:

Arquitectura de Computadores. Apellidos, Nombre: No se considerarán como válidas las respuestas en las que no se justifiquen los cálculos realizados No se permite el uso de ningún tipo de documentación, ni de calculadora Sólo existe una única opción

Más detalles

Tema 6 (II) Jerarquía de Memoria

Tema 6 (II) Jerarquía de Memoria Tema 6 (II) Jerarquía de Memoria Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Memoria cache Introducción: Acceso a bloque y principio

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES 202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES César Represa Pérez Carmen Rodríguez Clavería Nº de Asiento Registral 00/2013/1733 Burgos, 2013 202 Problemas de Arquitectura de Computadores 2º G.I.I 202

Más detalles

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro

Organización del Computador I. Memoria Cache. Autor: Alejandro Furfaro Organización del Computador I Memoria Cache Autor: Alejandro Furfaro - 2006 1 Memorias: Evolución Pioneros: Maurcice Wilkes con la primer memoria de tanque de mercurio para la computadora EDSAC. 2 bytes:

Más detalles

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A) aprenderaprogramar.com Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A) Sección: Cursos Categoría: Curso Bases de la programación Nivel II Fecha revisión:

Más detalles

Unidad II: Análisis semántico

Unidad II: Análisis semántico Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Manipulación de procesos

Manipulación de procesos Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama

Más detalles

Síntesis arquitectónica y de alto nivel

Síntesis arquitectónica y de alto nivel Síntesis arquitectónica y de alto nivel Módulo 1. Concepto y fases de la Síntesis de Alto Nivel 1 Diseño de circuitos: la complejidad Tratamiento de problemas de complejidad creciente Rápido desarrollo

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles