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

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

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

Transcripción

1 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 estáticas (en tiempo de compilación) que alivian este problema, como los saltos retardados y las predicciones estáticas. Ahora vamos a abordar otras técnicas relacionadas con la predicción dinámica (en tiempo de ejecución) para situaciones en las que no se puede predecir fácilmente, de manera estática, el comportamiento de una bifurcación. No obstante, la predicción estática también puede utilizarse, en algunos casos, para ayudar a la predicción dinámica. Las técnicas de predicción que abordaremos aquí van a sopesar las probabilidades de que se produzca un salto considerando el salto de manera aislada (buffer de predicción de saltos) o su relación con otros saltos de su entorno (predictores globales). También veremos la forma de acortar el tiempo necesario para saber cuál es la dirección del salto mediante el buffer de destinos de saltos. Por último veremos una técnica que combina los predictores locales y los globales en los predictores adaptativos. Predicción Dinámica - 1

2 Las estadísticas de los programas indican que los riesgos de control (saltos) se producen con mayor frecuencia que los riesgos de datos (dependencias de datos), por lo que su influencia en el tiempo de ejecución es muy alta. Anteriormente ya hemos abordado la eliminación de los riesgos de control mediante los saltos retardados y la predicción estática. Sin embargo, esto no es suficiente cuando se quiere conseguir una tasa de ejecución de una instrucción por ciclo, por lo que se requieren técnicas adicionales que, ante una instrucción de salto, permitan determinar lo antes posible si se tomará el salto o no. En un capítulo anterior, ya vimos que el salto se decide en la etapa de Decodificación (D), por lo que se pierde un ciclo de reloj en los saltos condicionales. Pues bien, con la predicción dinámica de salto, lo que se pretende es poder conocer, siempre, la dirección de la siguiente instrucción a ejecutar en la etapa de alimentación de instrucción (F), lo que supone que los saltos condicionales ya no originan ningún retardo en el flujo de alimentación de instrucciones. Predicción Dinámica - 2

3 Predicción Dinámica de Saltos - 3

4 El modelo más simple de predicción de saltos es el Buffer de Predicción de Saltos o BPB (Branch-Prediction Buffer), el cual consiste en una tabla indexada por los bits de menor peso de la dirección de la instrucción de bifurcación. Para cada entrada de la tabla simplemente hay un bit que indica si la bifurcación se tomó o no la última vez que se pasó por ella. Con esta simple tabla, ni siquiera se sabe si la predicción corresponde a la instrucción de salto en curso pues pueden producirse colisiones, es decir, que la predicción de esa entrada de la tabla la pudo establecer otra instrucción de salto cuyos bits de menor peso de su dirección coincidieran con los de la dirección de la instrucción actual. De todas maneras, aunque se tome una predicción equivocada, debido a una colisión, las consecuencias no son graves, pues la predicción se entiende como un consejo, de tal manera que si al comprobar la condición del salto la predicción no resultó acertada, simplemente hay que empezar de nuevo a extraer la instrucción de destino del salto de la dirección correcta y establecer de nuevo el valor de la predicción en la tabla; eso sí, con la correspondiente pérdida de tiempo, que es precisamente lo que se quiere evitar con una buena predicción. Obviamente, cuantos más bits de dirección se utilicen para indexar la tabla, menos posibilidades de colisión habrá. Predicción Dinámica - 4

5 En el diagrama de arriba se indica el comportamiento de este sistema de predicción dinámica de saltos. Lo primero que se comprueba en la tabla es la predicción: saltar o no saltar. Según esta predicción se alimenta la siguiente instrucción en secuencia o la de la dirección de destino del salto. A continuación se comprueba si la predicción fue acertada o no. Si lo fue, simplemente se continúa con la instrucción alimentada; si no fue acertada, se debe abortar y desechar la instrucción erróneamente extraída, alimentar la instrucción de la dirección adecuada e invertir el bit de predicción. Predicción Dinámica - 5

6 Este modelo simple de predicción de un bit tiene una pega. Aunque una bifurcación se tome casi siempre (como en el caso de las instrucciones de control de un bucle), cuando no se cumpla la condición de seguir en el bucle, tendremos un fallo en la predicción y se modificará el valor del bit de predicción. Así, cuando se vuelva a entrar en el bucle, aunque lo normal sería predecir que se va a seguir en el bucle, nos encontraremos con que se predice no saltar, pues así se habrá establecido en la ejecución anterior (en la que se salió del bucle), lo que dará lugar a otro error en la predicción. Este error en la predicción originará dos fallos por cada ejecución del bucle, en lugar de uno (el de la salida del bucle). Así, la importancia de esta pega dependerá de la frecuencia con que se ejecute cada bucle. Predicción Dinámica - 6

7 Para remediar la pega del buffer de predicción de un bit, lo que hacemos es aumentar la memoria histórica a dos bits, con lo que se obtiene el diagrama de 4 estados de arriba. Ahora, para modificar una predicción, no basta con un fallo, se necesitan dos fallos consecutivos. Hay dos estados estables: uno para SALTAR (11) y otro para NO SALTAR (00). Si estamos en el estado (11) SALTAR, y se produce un error en la predicción, se pasa al estado (10), en el que se sigue prediciendo SALTAR. Si en este estado se vuelve a producir un fallo en la predicción, se pasa ya a un estado (00) en el que se predice NO SALTAR. Si estando en (10) se acierta en la predicción de SALTAR, se vuelve al estado estable de (11) SALTAR. El comportamiento para cuando se está en el estado estable (00) NO SALTAR, es equivalente al estado (11) comentado. Un buffer de predicción de saltos puede implementarse como una pequeña memoria caché a la que se accede con la dirección de la instrucción de salto en la etapa F, o bien con un par de bits asociados a cada bloque en la caché de instrucciones. Si la instrucción se decodifica como una bifurcación con predicción de saltar, la siguiente instrucción se alimenta tan pronto como se sepa la dirección del salto; en caso contrario (predicción de no saltar), la extracción de instrucciones continúa secuencialmente. El paquete de medición de prestaciones SPEC89 con un buffer de predicción de 4096 entradas arrojó una tasa de acierto del 82% al 99%. En el 2005, un buffer de 4096 entradas ya se consideró pequeño, por lo que ya se utilizan buffers mayores, lo que probablemente conduce a mejores resultados. Como se puede ver, un buffer con 4K entradas de 2 bits tiende a comportarse como un buffer de tamaño infinito (acierto del 99%), por lo que aumentar el número de bits de historia sin cambiar el esquema, apenas tiene impacto en los resultados prácticos. A este tipo de autómatas se les conoce con el nombre de contadores de saturación. Predicción Dinámica - 7

8 Veamos cómo se comportaría este mecanismo de predicción en MIPS. Recordamos que con el Buffer de Predicción de Saltos, la predicción de si se debe o no se debe saltar se realiza en la etapa de extracción de instrucción (F). Si se predice NO SALTAR, simplemente hay que continuar con la siguiente instrucción en secuencia. La dirección de la siguiente instrucción se calcula en la etapa F por lo que se puede continuar la ejecución sin ningún retardo. Si se predice SALTAR, hasta el final de la siguiente etapa (D), no se sabe la dirección del salto, pues, en MIPS, la dirección del salto se calcula en esta etapa. Por tanto, mientras se está ejecutando la etapa D de la instrucción de bifurcación, no se puede ejecutar la etapa F de la alimentación de la siguiente instrucción. Es decir, que después de una instrucción de bifurcación con predicción de saltar hay que esperar un ciclo más, a que finalice la etapa de Decodificación, para saber la dirección de destino del salto y poder alimentar la instrucción siguiente. Aunque la predicción se ha hecho en la etapa F, no ha servido de nada, pues la dirección del salto se calcula un ciclo más tarde. Como vemos, este tipo de predicción de saltos no es útil para procesadores en los que la dirección de destino del salto no se calcula en la etapa F. Parece que, en estas circunstancias, lo que sería muy interesante es poder conocer la dirección del salto en la misma etapa en la que se hace la predicción. Predicción Dinámica - 8

9 Predicción Dinámica de Saltos - 9

10 Como hemos concluido en el Buffer de Predicción de Saltos, para algunos tipos de procesadores no solamente es beneficioso conocer la predicción del salto, sino también la dirección del destino del salto. Así, la tabla de predicción de saltos se convierte en un Buffer de Destinos de Saltos o BTB (Branch Target Buffer). Ahora la tabla tiene dos campos en cada entrada: la dirección de la instrucción de bifurcación y la dirección del destino del salto. Si la dirección de la instrucción de bifurcación no está en la tabla, significa que la predicción es NO SALTAR. También puede deberse a que no se haya pasado antes por esta bifurcación, en cuyo caso también se toma la predicción de NO SALTAR. Si la dirección sí está en la tabla, se interpreta como SALTAR. En el Buffer de Predicción de Saltos, cada entrada de la tabla contenía un único campo: la predicción, y se accedía a la tabla indexando con los bits de menor peso de la dirección de la instrucción de bifurcación, lo cual, como ya vimos, daba lugar a colisiones. No obstante, estas colisiones no eran graves, pues lo peor que podía pasar era que la predicción obtenida fuera errónea, por lo que habría que perder algún ciclo en alimentar la instrucción correcta. Ahora, con el Buffer de Destinos de Saltos, si se produjese una colisión se tomaría una entrada errónea de la tabla y si se confirma que la predicción de saltar es correcta, se habría tomado una dirección de salto incorrecta, que corresponde a otra bifurcación distinta, y que conllevaría una ejecución incorrecta del programa. Para evitar las colisiones, cada entrada de la tabla debe tener la dirección completa de la instrucción de bifurcación a la que corresponde la entrada. Obsérvese que se trata de una predicción con una historia de solo dos estados (un bit). Predicción Dinámica de Saltos - 10

11 En este diagrama se muestra el comportamiento de este sistema de predicción basado en el buffer de destinos de saltos. Como vemos, todo comienza en la etapa de extracción (F) en la que al mismo tiempo que se va a memoria a extraer una nueva instrucción con la dirección indicada en el Contador de Programa (PC), se comprueba si ésa dirección se encuentra en el buffer de destinos de saltos. En la etapa D se comprueba la condición de salto y se pasa a la etapa de ejecución. En esta etapa E, el comportamiento depende de si se ha acertado en la predicción o no. Si se acertó, continúa la ejecución normal con la instrucción alimentada según la predicción. En caso de fallo en la predicción, lo primero que se debe hacer en la etapa de E es abortar la ejecución de la instrucción erróneamente alimentada. A continuación, y también en esta etapa E: Si el fallo se debió a una predicción errónea de no saltar, se debe introducir la dirección de la instrucción de salto en el BTB, aconsejando saltar para el futuro. Si el fallo se debió a una mala predicción de saltar, lo que se debe hacer ahora eliminar del BTB la entrada de esta instrucción. Seguidamente se debe extraer la instrucción correcta y continuar la ejecución. Predicción Dinámica - 11

12 Según lo visto en la página anterior, si se utiliza el BTB con MIPS, no se produce ningún retardo en los saltos con acierto en la predicción. Recordamos que, en MIPS, sin BTB, ante una bifurcación evaluada como cierta, habría que detener la alimentación de instrucciones hasta que se tenga la dirección del salto al final de la etapa D. Predicción Dinámica - 12

13 En cambio, si falla la predicción de no saltar, provocará dos ciclos de retardo, ya que en la etapa prevista de ejecución habrá que abortar la ejecución de la instrucción erróneamente predicha, y hasta el siguiente ciclo no se alimentará la instrucción correcta. La secuencia de ejecución es la siguiente: Ciclo 1: Se alimenta la instrucción de salto BNE. Ciclo 2: Como la predicción es no saltar, se alimenta la siguiente instrucción en secuencia (XOR). En este mismo ciclo, se realiza la decodificación de la instrucción de salto. En esta etapa se comprueba si se cumple o no la condición de salto y, si se debe saltar, también se obtiene la dirección de la siguiente instrucción a alimentar. Al término de la decodificación de la instrucción de salto, ya se conoce el error de la predicción. Ciclo 3: Se aborta la ejecución de la instrucción erróneamente predicha (XOR). También se debe actualizar el BTB para incluir en él la dirección de esta instrucción de salto. Aunque ya se conoce la dirección de la siguiente instrucción a alimentar y ejecutar, como desde la etapa E se está accediendo al BTB para actualizarlo con la dirección de la reciente instrucción de salto, no se puede alimentar la siguiente instrucción, pues en la etapa F se debe consultar el BTB con cada instrucción extraída, aunque no sea una instrucción de salto, ya que hasta la etapa D no se decodifica y se averigua el cometido de cada instrucción. Ciclo 4: El acceso al BTB ha quedado libre, por lo que ya puede alimentarse la siguiente instrucción a ejecutar (AND) y realizar la consulta obligatoria al BTB. Ciclo 5: Continúa la decodificación y la ejecución normal en el cauce. En el caso de fallar ante una predicción de saltar, el proceso es similar al descrito para el fallo ante no saltar, pues ante un fallo en cualquier predicción, el error se conoce al término de la etapa D, y hay que utilizar la etapa E para abortar la ejecución de la instrucción errónea y actualizar debidamente el BTB. Predicción Dinámica - 13

14 Ante un fallo en la predicción, uno de los ciclos que se pierde se debe a que desde la etapa E de la instrucción de salto se debe modificar el BTB y, al mismo tiempo, desde la etapa F se querría alimentar la siguiente instrucción y consultar el BTB, por lo que nos encontramos ante un problema estructural de acceso simultáneo al BTB desde dos etapas distintas. Se podría ahorrar este ciclo de retardo que acabamos de describir, si el BTB pudiera ser de doble puerto, lo que permitiría realizar simultáneamente lecturas y escrituras. (El doble puerto no permite acceder simultáneamente a cualquier par de direcciones de una memoria). Otra forma de eliminar este ciclo de retardo consiste en dividir las etapas F y E en dos subciclos. En el primer subciclo, se escribiría el BTB desde la etapa E. Por otra parte, en la etapa F, en el primer subciclo se alimentaría la instrucción y en el segundo subciclo se consultaría el BTB. Predicción Dinámica - 14

15 En la tabla presentada anteriormente como Buffer de Destinos de Saltos, la única información utilizada para realizar la predicción era si la dirección de la bifurcación se encontraba en la tabla. Si estaba en la tabla, se predecía SALTAR; si no estaba, se predecía NO SALTAR; es decir, se comportaba como un mecanismo de predicción de un bit. Ya vimos que aumentando la historia se obtienen mejores resultados (especialmente, en las condiciones de salida de los bucles), así que se puede añadir un bit más de estado a la tabla de destinos de saltos para minimizar las equivocaciones en las predicciones. El hecho de que la dirección de la instrucción de salto esté o no en el BTB, más este nuevo bit de predicción, permiten utilizar el BTB como algo parecido a un predictor de 2 bits. (Tiene 3 estados: No está, Está y es 0 y Está y es 1 ). Predicción Dinámica - 15

16 Una variación del buffer de destinos es almacenar en la tabla no solo la dirección de destino del salto, sino la instrucción que hay en la dirección de destino del salto. Esto permite una optimización denominada branch folding, mediante la cual se pueden realizar saltos incondicionales en cero ciclos. Ya que la única función de un salto incondicional es modificar el valor del Contador de Programa (PC), cuando el buffer de destinos indica un acierto (la dirección de la instrucción de salto está en el buffer) y que se trata de un salto incondicional, lo único que tiene que hacer el pipeline es sustituir la propia instrucción de salto incondicional por la almacenada en el buffer de destinos y continuar la ejecución. Por otra parte, también habrá que modificar el valor del PC para que se continúe alimentando instrucciones a partir de la nueva dirección de destino del salto. En el fragmento de código que se muestra arriba, se puede ver que el salto incondicional J ETQ (la dirección de ETQ es 2168) consume solamente la etapa F. Estos son los eventos que se producen: En la etapa F se comprueba que la instrucción de salto está en el buffer de destinos de saltos. Se aborta la ejecución de la instrucción de salto incondicional. Se trae la instrucción de destino (ADD R1,R2,R3) al pipeline y se introduce directamente en la etapa D. Se actualiza el PC para seguir alimentando instrucciones de la dirección siguiente a la instrucción de destino. Continúa la ejecución de la instrucción de destino del salto. Predicción Dinámica - 16

17 Predicción Dinámica de Saltos - 17

18 Un buen porcentaje de aciertos es fundamental para mantener un promedio elevado de instrucciones procesadas por ciclo. Por esto, ha habido bastantes propuestas de procedimientos de predicción para aumentar la tasa de aciertos respecto a los procedimientos sencillos. Entre ellos están los esquemas de predicción de dos niveles. Como su nombre indica, estos esquemas utilizan dos niveles de información para realizar la predicción. Por un lado se guarda información de comportamiento del salto (tomado/no tomado) que ha tenido la instrucción en sus últimas ejecuciones. Por otro, también se utilizan los bits de estado del autómata de predicción que hemos visto en el Buffer de Predicción de Saltos. En el ejemplo de arriba se muestran los dos niveles comentados, donde la tabla con la historia de este salto contiene la información de lo que sucedió con las últimas ejecuciones de ésa instrucción de salto. El esquema de predicción dinámica del salto contiene los bits que indican el estado del autómata de predicción para la instrucción, tal como vimos anteriormente en el BPB. Como vemos, en cualquier caso, toda la información considerada para hacer la predicción está basada en la historia de la propia instrucción de salto, esto es, en información local al salto. Otra posibilidad de los predictores multinivel es utilizar información correspondiente al comportamiento reciente de otras instrucciones de salto distintas, como es el caso de los predictores globales. Predicción Dinámica de Saltos - 18

19 Los mecanismos de predicción de una bifurcación que hemos visto hasta ahora, únicamente tienen en cuenta el comportamiento reciente de una instrucción de bifurcación para predecir el comportamiento futuro inmediato de esa instrucción bifurcación. La precisión de la predicción puede mejorarse si también se considera el comportamiento de las últimas instrucciones de bifurcación ejecutadas (instrucciones distintas de la que se está prediciendo su futuro comportamiento) y que pueden estar relacionadas con el comportamiento de la instrucción de salto actual, dando lugar a los predictores globales o correlacionados (correlating predictors). Veamos un ejemplo en la página siguiente. Predicción Dinámica - 19

20 En este fragmento de código, si se considera aisladamente el comportamiento de la bifurcación (C), no parece que sea fácil o inmediato predecir si se tomará el salto o no. En cambio, si se atiende a la historia reciente de los saltos (A) y (B), sí se puede determinar si se cumplirá o no la condición del sato (C). Resulta fácil ver que Si se toma el salto (A), la variable a tomará el valor cero. Lo mismo sucederá con el salto (B), que si se cumple la condición, la variable b también tomará el valor cero. Así, al llegar a la bifurcación (C), si se tomaron los saltos de (A) y (B), es fácil concluir con que las variables a y b tienen el valor cero, por lo que se puede predecir que la condición del salto se cumplirá. Este es un ejemplo sencillo de cómo el comportamiento global de varias bifurcaciones puede ayudar en la predicción de otras. A estos predictores se les denomina predictores globales, de dos niveles, o correlacionados (correlating predictors). Predicción Dinámica de Saltos - 20

21 Un descriptor global se describe mediante la tupla (G,L), donde: G es el número de bifurcaciones globales que se consideran en la predicción. L es el número de bits empleados en la predicción local de la instrucción de bifurcación en curso. Según esto, de los predictores que hemos visto anteriormente, los que solamente contemplan la historia del último salto, se describirían como un predictor (0,1), es decir, no utiliza ningún salto global, y solamente emplea un bit para la historia de esa bifurcación (dos estados: se saltó o no se saltó). Los predictores con más historia, como los de 4 estados vistos anteriormente, serían del tipo (0,2), pues utilizan 2 bits para codificar los 4 estados posibles que describen la historia. Predicción Dinámica - 21

22 En esta página y las dos siguientes se muestra cómo serían las tablas de los predictores globales de tres configuraciones distintas: (1,1), (1,2) y (2,2). En el predictor (1,1) que mostramos arriba, se dispone de una tabla de predicción para las últimas instrucciones de salto ejecutadas, indexadas por su dirección en memoria. Cada entrada, además de la dirección de la instrucción, contiene dos campos, correspondientes a si el último salto global se tomó o no se tomó. A su vez, cada uno de estos dos campos contiene un predictor local de un bit, correspondiente a la propia instrucción de salto. La predicción local de un bit indica si para la predicción global elegida, interesa tomar o no tomar el salto. Para elegir la rama SI o NO del último salto global, solamente hay que tener un registro de 1 bit en el que se guarda el comportamiento de la última instrucción de salto ejecutado, indicando si el salto se tomó o no. En general, para un predictor global (m,n), simplemente hay que disponer de un registro de desplazamiento de m bits en el que se van guardando los comportamientos (salto - no salto) de las últimas m instrucciones de bifurcación. Con estos m bits se indexa dentro de la tabla de predicción, dentro de la entrada correspondiente a la dirección de la instrucción de salto cuyo comportamiento se quiere predecir. Predicción Dinámica - 22

23 En el predictor (1,2), se dispone igualmente de una tabla de predicción para las últimas instrucciones de salto ejecutadas, indexada por su dirección en memoria. Como en el caso (1,1), cada entrada contiene dos campos, correspondientes a si el último salto global se tomó o no se tomó. Ahora, con el predictor (1,2), cada campo de la tabla contiene dos bits, correspondientes a un predictor local de 2 bits como el visto en el Buffer de Predicción de Saltos. Predicción Dinámica - 23

24 Obsérvese que cuando se considera un predictor global que considera los dos últimos saltos globales, las combinaciones de historia de estos dos saltos son las 4 siguientes: No se tomaron ninguno de los dos (No, No) No se tomó el primero y sí el segundo (No, Si) Se tomó el primero, pero no el segundo (Si, No) Se tomaron los dos saltos (Si, Si) Como en los casos anteriores, para cada una de estas entradas de la tabla se dispone de dos bits que se corresponden con los de los predictores locales de 2 bits vistos en el Buffer de Predicción de Saltos. El tamaño que ocupa el campo de estado en una tabla de predicción de saltos, para una predicción correlacionada del tipo (m,n), es el siguiente: Nº bits utilizados = 2 m x n x nº de entradas en la tabla Ahora se utiliza una mezcla de información global (últimas 2 instrucciones de salto) más el autómata de predicción local simple de la propia instrucción de salto en ejecución. Estos esquemas de predicción global pretenden aprovechar la información propia del contexto en el que se encuentra la instrucción de salto actual. Predicción Dinámica - 24

25 Existe la posibilidad de definir esquemas de predicción a partir de la hibridación de otros, de forma que para cada instrucción de salto se selecciona el esquema más adecuado en cada caso. Un ejemplo de estos predictores híbridos son los predictores adaptativos o por torneo (tournament predictors). Predicción Dinámica - 25

26 Los predictores adaptativos (tournament predictors) utilizan un esquema de predicción local y otro global, y seleccionan la predicción de uno de ellos según el estado de un contador de saturación o diagrama de estados visto en Buffer de Predicción de Saltos, en el que se requiere un cierto número de fallos consecutivos para cambiar de estrategia. Por ejemplo, se toma el predictor global con los estados 00 y 01, y el predictor local con los valores 10 y 11. Si se parte de elegir el comportamiento del predictor global, ante dos fallos consecutivos, se cambia al predictor local. Igualmente, si se producen dos fallos consecutivos del predictor local, se cambia a la estrategia del predictor global. Predicción Dinámica - 26

5. PREDICCIÓN DINÁMICA DE SALTOS

5. PREDICCIÓN DINÁMICA DE SALTOS 5. PREDICCIÓN DINÁMICA DE SALTOS 1 PREDICCIÓN DINÁMICA DE SALTOS 1. Introducción 2. Buffer de Predicción de Saltos (BPB) 3. Buffer de Destinos de Saltos (BTB) 4. Predictores Globales 5. Predictores Adaptativos

Más detalles

Estrategias de predicción dinámicas.

Estrategias de predicción dinámicas. Estrategias de predicción dinámicas. Las técnicas que vamos a ver ahora para predicción de saltos se basan en información conocida sólo en tiempo de ejecución. Dos estructuras son necesarias para realizar

Más detalles

CAPÍTULO 2 PROCESADORES SUPERESCALARES

CAPÍTULO 2 PROCESADORES SUPERESCALARES CAPÍTULO 2 PROCESADORES SUPERESCALARES LECTURA DE INSTRUCCIONES (etapa if) Falta de alineamiento Rotura de secuencialidad Tratamiento de los saltos Estrategias de predicción dinámica Pila de dirección

Más detalles

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Pipeline Facultad de Ingeniería - Universidad de la República Curso 2017 Objetivo Mejorar el rendimiento Incrementar frecuencia de reloj? Ancho de los

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010

Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 7 Pipeline de Instrucciones Primer Cuatrimestre de 2010 1. La

Más detalles

Departamento de Automática

Departamento de Automática 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 2010-2011 Tema 3. Paralelismo a Nivel de Instrucción I Planificación

Más detalles

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos

Arquitectura de Computadores I. Sistema de memoria 3 (Solución): Segmentación + Bancos Universidad del País Vasco Facultad de Informática Departamento de Arquitectura y Tecnología de Computadores Arquitectura de Computadores I Sistema de memoria 3 (Solución): Segmentación + Bancos En un

Más detalles

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016

Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Arquitectura de Computadoras Trabajo Práctico N 8 Pipeline de Instrucciones 1 Primer Cuatrimestre de 2016 1. La

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

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

Definición de prestaciones

Definición de prestaciones Definición de prestaciones En términos de velocidad. Diferentes puntos de vista: Tiempo de ejecución. Productividad (throughput) Medidas utilizadas En función de la duración del ciclo de reloj y del número

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

Ejercicios de Paralelismo a Nivel de Instrucción

Ejercicios de Paralelismo a Nivel de Instrucción Ejercicios de Paralelismo a Nivel de Instrucción J. Daniel García Sánchez (coordinador) David Expósito Singh Javier García Blas Óscar Pérez Alonso J. Manuel Pérez Lobato Arquitectura de Computadores Grupo

Más detalles

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados

ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados Departament d Informàtica Sistemes i Computadors ARQUITECTURA DE COMPUTADORES Problemas TEMA 4: Microprocesadores avanzados SUGERENCIAS PARA LA RESOLUCIÓN DE LOS PROBLEMAS La ruta datos propuesta en todos

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

Introducción a los procesadores ILP (Instruction-Level Parallel)

Introducción a los procesadores ILP (Instruction-Level Parallel) Introducción a los procesadores ILP (Instruction-Level Parallel) Herramientas básicas para conseguir paralelismo entre instrucciones: Encauzamiento (pipelining) Se usa en todo procesador ILP Utilizar varias

Más detalles

Arquitectura de Computadores Segmentación del Cauce - 1

Arquitectura de Computadores Segmentación del Cauce - 1 En este capítulo vamos a ver cómo mejorar las prestaciones de la CPU mediante los procesadores segmentados (o en pipeline), los cuales incorporan una técnica para acelerar el ritmo de ejecución de las

Más detalles

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0

ADDI R4,R0,#2 ADDI R1,R0,#40 LOOP: LW R2,0(R1) SUBI R3,R2,#1 MUL R2,R3,R2 DIV R2,R3,R4 SW 0(R1),R2 SUBI R1,R1,#4 BNEZ R1, LOOP ADDI R4,R0,#0 P2. (3 puntos) El siguiente código en ensamblador recorre un vector v, que comienza en la posición 0, calculando para cada v[i] el número de combinaciones que pueden darse con v[i] elementos tomados de

Más detalles

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción ESTRUCTURA DE COMPUTADORES Grupo de Arquitectura de Computadores (GAC) Dyer Rolán García (GAC) Paralelismo a nivel de instrucción

Más detalles

T E M A 7. Interrupciones

T E M A 7. Interrupciones T E M A 7 Interrupciones 7-1 Interrupciones INDICE 7.- Introducción al Tema 7-2 7.1 Interrupciones 7-2 7.1.1 Tipos de Interrupciones 7-2 a).- Interrupciones de Programa 7-2 b).- Interrupciones de Llamada

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

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

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

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; }

#define MAX 1024 void escala_vect (float A[MAX], float B[MAX], float k) { int i; for (i=0; i < MAX; i++) B[i]=k*A[i]; } PROBLEMA 1 Memoria Cache (10 puntos) Supongamos un sistema con un procesador que lanza direcciones de 32 bits. Dispone de dos caches, una para instrucciones y otra para datos, de 8 KBytes cada una. La

Más detalles

Trabajo Práctico Número 6

Trabajo Práctico Número 6 Página 1 de 6 Trabajo Práctico Número 6 Arquitectura de Computadoras 24/05/2014 Instrucciones Los problemas de ejercitación propuestos en el presente trabajo práctico pueden ser resueltos en forma individual

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

Tratamiento de Excepciones en MIPS

Tratamiento de Excepciones en MIPS Tratamiento de en MIPS Elías Todorovich Arquitectura I - Curso 2013 Riesgos de Control Las direcciones del PC no son secuenciales (PC = PC + 4) en los siguientes casos: Saltos condicionales (beq, bne)

Más detalles

BLOQUE IV. CLASIFICACIÓN

BLOQUE IV. CLASIFICACIÓN BLOQUE IV. CLASIFICACIÓN CAPÍTULO 11 Clasificación de mínima distancia. IV. 11.1 Pasos para realizar la clasificación. Es necesario comentar que se trata de una clasificación muy básica, que, en este caso,

Más detalles

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion. Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion. Fecha de entrega: 10 de Mayo de 2013. Campus: Villahermosa. Carrera:

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 4. Técnicas de Dispersión. Definición y Manejo. 1.- Introducción. 2.- Funciones de Dispersión. 3.- Saturación Progresiva. 4.- Empaquetado

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

5.3 Unidades Aritméticas Segmentadas.

5.3 Unidades Aritméticas Segmentadas. 5.3 Unidades Aritméticas Segmentadas. Introducción a la segmentación. La segmentación o pipelining es la técnica de dividir un determinado procesamiento de la información en etapas independientes que se

Más detalles

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Sistema Cache Técnicas Digitales III Ing. Gustavo Nudelman 2012 RAM dinámica Almacena un bit como una capacidad espuria en un transistor La necesidad de conservar la carga y la lectura destructiva obliga

Más detalles

Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz

Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz Manual de referencia de C++ Parte IV Variables Punteros Preparado por Prof. Luis A. Ortiz Ortiz TABLA DE CONTENIDO Memoria de la computadora... 1 Representación de la memoria de la computadora... 1 Declaración

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

Concurrencia Condiciones de Carrera. Guillermo Román Díez

Concurrencia Condiciones de Carrera. Guillermo Román Díez Concurrencia Condiciones de Carrera Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición

Más detalles

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012

Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Apellidos Nombre Grupo: Arquitectura e Ingeniería de Computadores. Examen Parcial. 7/02/2012 Instrucciones.- Cada pregunta consta de cinco afirmaciones, y cada una de las afirmaciones puede ser cierta

Más detalles

ARQUITECTURA DE COMPUTADORES

ARQUITECTURA DE COMPUTADORES Escuela Universitaria de Informática Ingeniería de Computadores ARQUITECTURA DE COMPUTADORES PRÁCTICA Nº 3 DESENROLLADO DE BUCLES INTRODUCCIÓN Este documento contiene el enunciado de la práctica de desenrollado

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

ARQUITECTURA PIPELINE O DE ENSAMBLAJE

ARQUITECTURA PIPELINE O DE ENSAMBLAJE ARQUITECTURA PIPELINE O DE ENSAMBLAJE Miguel Ángel Asensio Hernández, Profesor de Electrónica de Comunicaciones. Departamento de Electrónica, I.E.S. Emérita Augusta. 06800 MÉRIDA. Un procesador basado

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

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

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

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

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

ARQUITECTURA DE COMPUTADORAS

ARQUITECTURA DE COMPUTADORAS 2-12-2012 INSTITUTO TECNOLÓGICO DE CHIHUAHUA II ARQUITECTURA DE COMPUTADORAS Cuestionario Unidad 4 Claudia Cristina Enríquez Zamarrón 10 55 05 10 Laura Michell Montes Blanco 10 55 05 02 INTRODUCCIÓN: En

Más detalles

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1

Universidad Euskal Herriko del País Vasco Unibertsitatea Arquitectura de Computadores I Sistema de memoria 1 Arquitectura I Sistema de memoria 1 1. En un espacio de direcciones de 64 Kbytes deben colocarse los s de memoria que se indican. Suponer que el direccionamiento de la memoria se hace al byte. Dibujar

Más detalles

TEMA 4 TECNICAS DE DIRECCIONAMIENTO

TEMA 4 TECNICAS DE DIRECCIONAMIENTO TEMA 4 TECNICAS DE DIRECCIONAMIENTO CURSO 2010/2011 TECNICAS DE DIRECCIONAMIENTO 1. Introducción 2. Registros de los Generadores de Direcciones (DAG) Registros Alternos de los DAG 3. Modos de Operación

Más detalles

Taller de Videojuegos. Pedro J. Camacho

Taller de Videojuegos. Pedro J. Camacho Taller de Videojuegos Pedro J. Camacho CONTENIDOS Animando la escena Diseña tu guión (storyboard) Instrucciones Sentencias de control Condicionales Bucles Propiedades (Atributos) Funciones (Métodos) Eventos

Más detalles

Simulador de Técnicas de Predicción Dinámicas

Simulador de Técnicas de Predicción Dinámicas XV JORNADAS DE PARALELISMO ALMERÍA, SEPTIEMBRE 2004 1 Simulador de Técnicas de Predicción Dinámicas Vicente Arnau y Rubén Avendaño Resumen Hemos desarrollado un simulador gráfico de técnicas de predicción

Más detalles

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES

2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2. SEGMENTACIÓN ENCAUZADA AVANZADA Y PARALELISMO DE INSTRUCCIONES: EJERCICIOS Y CUESTIONES 2.1. Completa tus conocimientos del MIPS64 (una versión de MIPS). Debes aprender qué registros tiene, tipos de

Más detalles

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o Unidad 4 - Procesamiento paralelo. D o c e n t e : E r n e s t o L e a l E q u i p o : J e s s i c a F i e r r o L u i s N a v e j a s Arquitectura de computadoras Introducción Cuestionario Conclusiones

Más detalles

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. AIEP PROGRAMACIÓN COMPUTACIONAL FUNDAMENTOS DE PROGRAMACIÓN INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. Por:Diego Menéndez Introducción. Ante la inmensa velocidad de los procesadores que a medida del tiempo

Más detalles

Arquitectura de Computadores II Clase #5

Arquitectura de Computadores II Clase #5 Arquitectura de Computadores II Clase #5 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Algunas ideas para mejorar el rendimiento Obvio: incrementar la frecuencia

Más detalles

Tema 11. Riesgos de control y predicción de saltos

Tema 11. Riesgos de control y predicción de saltos Tema 11. Riesgos de control y predicción de saltos Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO

Más detalles

BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F)

BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F) APRENDERAPROGRAMAR.COM BREAK: FORZAR SALIDA BUCLES FOR, WHILE, DO EN C. LOOP. STATEMENT NOT WITHIN LOOP OR SWITCH (CU00545F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

Tema 4 (II) El procesador

Tema 4 (II) El procesador Tema 4 (II) El procesador Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Técnicas de control 1. Lógica cableada 2. Lógica almacenada

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

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

5. ESTRUCTURAS DE REPETICIÓN

5. ESTRUCTURAS DE REPETICIÓN 5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque

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

Funcionamiento de las computadoras

Funcionamiento de las computadoras Funcionamiento de las computadoras Introducción a las ciencias de la computación Antonio López Jaimes UNIVERSIDAD AUTÓNOMA METROPOLITANA UNIDAD IZTAPALAPA Plan de la presentación El modelo de von Neuman

Más detalles

Cómo conocer el comportamiento futuro de los clientes y anticiparse a los cambios PREDECIR COMPOR-

Cómo conocer el comportamiento futuro de los clientes y anticiparse a los cambios PREDECIR COMPOR- Cómo conocer el comportamiento futuro de los clientes y anticiparse a los cambios PREDECIR COMPOR- EL TAMIENTO CLIENTES DE LOS José Luis Ibáñez Medrano Profesor asociado del Instituto de Empresa. Para

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

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

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR

ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR ARQUITECTURA DE LOS SISTEMAS BASADOS EN MICROPROCESADOR Historia Bloques funcionales Dimensionamiento Estructura CPU Concepto de programa Interrupciones Buses Entrada / Salida Ejemplo de arquitectura:

Más detalles

Sistema de memoria. Introducción

Sistema de memoria. Introducción Sistema de memoria Introducción Memorias de acceso aleatorio: Apropiadas para la memorización a largo plazo de programas. Grandes y lentas. Organización: n: líneas de direcciones. m: tamaño de palabra.

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Memoria virtual Ubicación de bloque en paginación

Memoria virtual Ubicación de bloque en paginación Ubicación de bloque en paginación Dónde puede ubicarse un bloque en memoria principal? Los sistemas operativos permiten que los bloques se coloquen en cualquier parte de la memoria principal (totalmente

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

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores.

HISTORIA DEL PIPELINE. Juan Antonio Romano Largo. Arquitectura de Computadores. HISTORIA DEL PIPELINE CRONOLOGÍA Introducción ppo. S. XX IBM 704 1955 IBM 7030 (proyecto Stretch) 1956-1961 CDC 6600 1964 VAX 8800 1987 RISC vs CISC (MIPS vs VAX 8700) 1989 R4000 (Supersegmentado) 1991

Más detalles

Prácticas de Fundamentos del Software

Prácticas de Fundamentos del Software Prácticas de Fundamentos del Software Módulo I. Órdenes UNIX y Shell Bash Sesión Nº3: Permisos y redirecciones 1 Objetivos principales Modificar los permisos de un archivo. Comprender cómo se manejan las

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

Tema / La capa de enlace de datos: entramado y detección de errores

Tema / La capa de enlace de datos: entramado y detección de errores Tema 2 6.263 / 16.37 La capa de enlace de datos: entramado y detección de errores MIT, LIDS Diapositiva 1 Capa de enlace de datos (DLC) Responsable de la transmisión fiable de paquetes en un enlace: Entramado:

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras SEMANA 10 UNIVERSIDAD NACIONAL DE QUILMES Qué vimos? Mascaras Repeticiones controladas Arreglos Modo indirecto Q5 Hoy! Memorias: Características Memorias ROM Jerarquía de memorias

Más detalles

Tema 20 Gestión de memoria

Tema 20 Gestión de memoria Tema 20 Gestión de memoria Índice INTRODUCCIÓN 1 REQUISITOS DE LA GESTIÓN DE MEMORIA 2 ESTRUCTURA DE LA MEMORIA EN SO SIN MEMORIA VIRTUAL 2 Recubrimiento 3 MEMORIA VIRTUAL 4 Funcionamiento 4 Soporte del

Más detalles

Lógica de programación

Lógica de programación Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental

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

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 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

Más detalles

Para llevar a cabo una simulación, se requiere implementar las siguientes etapas:

Para llevar a cabo una simulación, se requiere implementar las siguientes etapas: SIMULACIÓN: La simulación se define como una técnica numérica utilizada para representar un proceso o fenómeno mediante otro más simple que permite analizar sus características. Esta técnica emplea relaciones

Más detalles

Ejercicios Jerarquía de Memoria

Ejercicios Jerarquía de Memoria Ejercicios Jerarquía de Memoria Grupo ARCOS Estructura de Computadores Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Memoria caché CPU cache Memoria principal 2. Memoria

Más detalles

AUTOMATIZACIÓN INDUSTRIAL

AUTOMATIZACIÓN INDUSTRIAL Universidad Carlos III de Madrid Departamento de Ingeniería de Sistemas y Automática AUTOMATIZACIÓN INDUSTRIAL Práctica 1 Introducción a los autómatas programables Marzo 2008 Ramiro Diez Automatización

Más detalles

Expresiones y Operadores

Expresiones y Operadores Lenguaje C Expresiones y Departamento de Electrónica Fundación San Valero básicos: Operador de asignación: = No es del todo equivalente al igual matemático. A la derecha siempre estará el valor a asignar,

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

Gestión de procesos en Linux

Gestión de procesos en Linux Gestión de procesos en Linux Un proceso en Linux es, en resumen, un programa en ejecución. Un proceso puede crear a su vez otros procesos. Al proceso que genera otro proceso se le llama proceso padre.

Más detalles

Las 7 claves de Arduino UNO

Las 7 claves de Arduino UNO Las 7 claves de Arduino UNO La mejor placa para iniciarse en este mundo es el Arduino UNO. Aunque podríamos empezar con cualquier otra, prácticamente todas tienen las mismas funcionalidades básicas, Arduino

Más detalles

Unidad 3: Circuitos digitales.

Unidad 3: Circuitos digitales. A-1 Appendix A - Digital Logic Unidad 3: Circuitos digitales. Diapositivas traducidas del libro Principles of Computer Architecture Miles Murdocca and Vincent Heuring Appendix A: Digital Logic A-2 Appendix

Más detalles

INSTRUCCIONES PROGRAMADOR PR-36T (Horno gas)

INSTRUCCIONES PROGRAMADOR PR-36T (Horno gas) INSTRUCCIONES PROGRAMADOR PR-36T (Horno gas) 1.- DISPLAY PARA LA TEMPERATURA DESCRIPCIÓN DEL FRENTE Display digital de 4 dígitos verdes de 12 mm. para la indicación de la temperatura real del horno. Cuando

Más detalles

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA Diseño de compiladores Gestión de la memoria / Generación de código ORGANIZACIÓN DE MEMORIA Organización de memoria Depende del tipo de lenguaje (declarativos, imperativos), del compilador y del sistema

Más detalles

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓN DE CÓDIGO OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.

Más detalles

Tema 3. Gestión de la memoria

Tema 3. Gestión de la memoria Tema 3. Gestión de la memoria Competencias: Comprender las funciones que debe desempeñar todo mecanismo que gestiona la memoria, identificando las ventajas e inconvenientes de los distintos esquemas de

Más detalles

Estructuras de Repetición

Estructuras de Repetición 1 Estructuras de Repetición 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Objetivos Aprender a construir grandes y complejos problemas a través de la ejecución

Más detalles

Clase Práctica - caché

Clase Práctica - caché Clase Práctica - caché Organización del Computador 1 Mariano Moscato - Verano 010 Ejercicio 1 1 Una computadora utiliza una caché de correspondencia directa de 3 líneas de 16 palabras cada una. La memoria

Más detalles

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana

Sistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana Sistemas Operativos Tema 2: Estructura del computador 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Estructura de la E/S Sistema de Interrupciones DMA Jerarquía de memorias

Más detalles

Arquitectura de Computadores II Clase #16

Arquitectura de Computadores II Clase #16 Arquitectura de Computadores II Clase #16 Facultad de Ingeniería Universidad de la República Instituto de Computación Curso 2010 Organización general Superescalar Varios pipelines. 2 operaciones enteras,

Más detalles

Práctica 8: Consultas de acción

Práctica 8: Consultas de acción Práctica 8: Consultas de acción 1 Además de las consultas de selección, de campos calculados y de tabla de referencias cruzadas, en las que sólo se visualizan o muestran los datos contenidos en las tablas,

Más detalles

Memoria Virtual. Ing. Jorge Castro-Godínez

Memoria Virtual. Ing. Jorge Castro-Godínez Memoria Virtual Lección 7 Ing. Jorge Castro-Godínez MT7003 Microprocesadores y Microcontroladores Área de Ingeniería Mecatrónica Instituto Tecnológico de Costa Rica I Semestre 2014 Jorge Castro-Godínez

Más detalles