Procesadores Superescalares

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

Download "Procesadores Superescalares"

Transcripción

1 Universidad de Concepción Facultad de Ingeniería Departamento de Ingeniería Informática y Ciencias de Computación Programa de Magíster en Ciencias de la Computación Tarea 3 Procesadores Superescalares Arquitectura y Organización de Sistemas de Computación I-2002 Nombre: Johana Pérez M. Profesor: Yussef Farrán L. Fecha: 4 de Junio de 2002

2 Sumario En el presente informe se hace referencia a los procesadores superescalares. La arquitectura de estos procesadores es una implementación en la que las instrucciones pueden iniciar su ejecución simultánea y además ejecutarse independientemente. Para desarrollar este documento, y abordar los aspectos generales de la implementación superescalar de procesadores, se realiza un contraste de esta implementación con la supersegmentación, técnica antes estudiada. El diseño de los procesadores escalares debe ser tratado en forma muy cuidadosa, con el fin de evitar algunos tipos de conflictos, tanto de datos como de instrucciones, que se producen al existir dependencias o secuencialidades entre dos o más instrucciones que se ejecuten. Por otra parte, es necesario mencionar que el diseño superescalar se relaciona en forma directa con la arquitectura RISC. Pese, a que el conjunto de instrucciones reducido que presenta una máquina RISC, permite que el uso de técnicas superescalares se realice muy fácilmente, no es exclusivo el uso de estas técnicas a sólo este tipo de arquitectura, pues también es posible implementarlas en arquitecturas CISC. Finalmente, para complementar el estudio se analiza la implementación de procesamiento superescalar en el procesador Pentium, al cual se han agregado algunas mejoras que intentan reducir el impacto de los conflictos que se podrían producir. Como último comentario, es posible indicar que el procesamiento superescalar es la última (más actual) de una serie de innovaciones tendientes a producir procesadores cada vez más rápidos, disminuyendo cada vez más el tiempo de procesamiento y el de respuesta.

3 Índice de Contenidos CAPÍTULO 1: INTRODUCCIÓN...2 CAPÍTULO 2: ASPECTOS GENERALES Procesador superescalar vs. Procesador supersegmentado Restricciones Dependencia verdadera de datos Dependencia relativa al procedimiento Conflicto en los recursos Dependencia de salida Antidependencia...7 CAPÍTULO 3: DISEÑO DEL PROCESADOR SUPERESCALAR Paralelismo Paralelismo a nivel de instrucciones Paralelismo a nivel de máquina Políticas de emisión de instrucciones Renombramiento de registros...12 CAPÍTULO 4: ALGUNOS EJEMPLOS Procesadores Pentium Mejoras en arquitecturas superescalares Rendimiento...15 CAPÍTULO 5: CONCLUSIONES Y COMENTARIOS FINALES...16 CAPÍTULO 5: REFERENCIAS BIBLIOGRÁFICAS...17

4 Índice de Figuras Figura 2.1 Comparación procesador superescalar y supersegmentado...5 Figura 2.2 Dependencia de datos verdadera...6 Figura 2.3 Dependencia de salida...7 Figura 2.4 Antidependencia...7 Figura 3.1 Ejemplo de paralelismo a nivel de instrucciones...8 Figura 3.2 Emisión en orden y finalización en orden...10 Figura 3.3 Emisión en orden y finalización desordenada...11 Figura 3.4 Emisión desordenada y finalización desordenada...12 Figura 3.5 Uso de Renombramiento de registros...13 Acrónimos RISC Reduced Instruction set Computer Conjunto reducido de instrucciones de computador CISC Complex Instruction Set Computer Conjunto complejo de instrucciones de computador CPU Central Process Unit Unidad Central de Proceso PC Program Counter Contador de Programas SO Sistema Operativo

5

6 Capítulo 1: Introducción El presente trabajo se enmarca en el desarrollo de temas de la asignatura Arquitectura y Organización de Sistemas de Computación, perteneciente al curso de Postgrado para Ingeniería Civil Informática dictado en la Universidad de Concepción. Trata el tema de, el cual será abordado con el fin de cumplir con los objetivos presentados a continuación. Objetivo: Definir y caracterizar qué es y para qué se utilizan los procesadores superescalares Objetivos específicos:!"caracterizar el procesador superescalar.!"estudiar las restricciones de uso o diseño que el procesador superescalar presenta!"abordar temas de diseño de los procesadores superescalares La elaboración del informe se realizó siguiendo la pauta del libro indicado por el profesor: Arquitectura y Organización de Computadores, de William Stallings. Para completar los temas se utilizó información presentada en páginas Web y en algunos informes técnicos, los cuales se indican en el Capítulo 5: Referencias Bibliográficas de este informe. Como primera aproximación al tema de investigación, es posible indicar que una implementación superescalar de la arquitectura de un procesador es una implementación en la que las instrucciones comunes pueden iniciar su ejecución en forma simultánea e independiente. La tecnología ha avanzado a pasos agigantados, y así como ha ido avanzando se han desarrollado nuevas formas para incrementar la velocidad de ejecución de las instrucciones y de esta forma aumentar el nivel de prestaciones. Junto con este crecimiento de la informática, las necesidades de los usuarios aumentan y es imprescindible contar con procesadores que respondan en forma rápida y correcta a las peticiones que ellos presentan. Es así como han surgido los Supercomputadores, entre los cuales es posible distinguir distintos tipos de procesadores: Los procesadores vectoriales, que operan con un subconjunto de elementos de un vector con una única instrucción, mientras que los procesadores escalares han de manipularlos elemento a elemento y, por lo tanto, deberán ejecutar una misma instrucción de manera iterativa para conseguir el mismo resultado que una única instrucción vectorial. 2

7 Los procesadores superescalares pueden iniciar la ejecución simultánea de varias instrucciones escalares en paralelo de forma que pueden operar varios elementos de un vector dentro de una misma iteración. Con respecto a la organización de memoria que presentan estos procesadores, es posible indicar que si la memoria está compartida entre todos los procesadores, la programación es mucho más sencilla, ya que los datos se pueden colocar en cualquier módulo de la memoria y su acceso es uniforme para todos los procesadores. De otra forma, si cada procesador tiene acceso a su propia memoria, entonces la programación es más compleja, pero tiene la ventaja de su escalabilidad, con lo que el sistema puede crecer hasta un mayor número de procesadores. Esta forma de memoria única para cada procesador, es ideal para máquinas paralelas. Por último, la memoria distribuida compartida combina las ventajas de ambas organizaciones, la memoria está físicamente distribuida y. por lo tanto, el sistema es escalable, pero se accede con un espacio único de direcciones y es fácilmente programable. En este informe se intentará caracterizar los procesadores superescalares, comenzando con una visión general del concepto superescalar, comparándolo o contrastándolo con el concepto de supersegmentación. Luego, con el desarrollo del informe es posible acercarse a temas de diseño de estos procesadores, abordando las limitaciones o restricciones asociadas a la implementación superescalar. Los temas se han divido principalmente en dos partes: Aspectos Generales y Conceptos de Diseño del Procesador Superescalar. Finalmente, se presentan las conclusiones generadas una vez finalizada la investigación, junto a algunos comentarios al respecto. 3

8 Capítulo 2: Aspectos Generales Para comenzar a caracterizar y definir qué es y qué usos tiene un procesador superescalar, es necesario contar cómo nace el término superescalar y definir el entorno en el cual se aplica. El término superescalar, nace en 1987, y se refiere a una máquina diseñada para mejorar la velocidad de ejecución de las instrucciones escalares 1. El objetivo de aumentar la velocidad de procesamiento, es más o menos contradictoria si se piensa en el uso del procesamiento vectorial, el cual es otra forma de acelerar la ejecución de instrucciones. La idea general de los procesadores superescalares, es ser procesadores de uso general en prestaciones altas. El asegurar que el uso de máquinas del tipo superescalar aumenta la velocidad de procesamiento no es antojadizo, muchos investigadores, han realizado diferentes pruebas, y han llegado a la conclusión que la velocidad de procesamiento puede sufrir un incremento en el rango de 1,5 a 8 veces. Las diferencias en los resultados obtenidos dependen del hardware utilizado y de la aplicación elegida para realizar el experimento Procesador superescalar vs. Procesador supersegmentado Otra forma de aumentar las prestaciones de una máquina es la supersegmentación, término que nació en Este método aprovecha el hecho de que muchas etapas del ciclo de instrucción realizan tarea que requieren menos de la mitad de un ciclo de reloj, teniendo como base esta idea, se dobla la velocidad de reloj interna, con lo cual es posible realizar dos tareas en un ciclo de reloj externo. En al figura siguiente se comparan ambas soluciones, en la primera parte del diagrama se presenta una ejecución normal de instrucciones con cuatro etapas: Captación de instrucción Decodificación de la operación Ejecución de la operación Escritura del resultado Luego, se presenta la implementación supersegmentada, en la cual es posible ejecutar dos etapas del cauce por ciclo de reloj. Esta forma de implementación es denominada de grado 2, pues, las funciones realizadas en cada etapa se dividen en dos y cada una de ellas se realiza en medio ciclo de reloj. Por último, se presenta la implementación superescalar, en al cual es posible ejecutar dos instrucciones en paralelo. 1 Escalar hace referencia a la operación de cantidades individuales 4

9 Ambas implementaciones (supersegmentada y superescalar) ejecutan el mismo número de instrucciones en el mismo tiempo en forma ininterrumpida. Pero el procesador supersegmentado se retrasa al comienzo del programa y al ejecutar un salto- Clave Captación de Instrucción Decodificación Ejecución Escritura Máquina Base Instrucciones consecutivas Supersegmentada Superescalar Tiempos en ciclos base Figura 2.1 Comparación procesador superescalar y supersegmentado 5

10 2.2.- Restricciones Se ha visto que la aproximación superescalar depende de la habilidad para ejecutar múltiples instrucciones en forma paralela. Existen algunas limitaciones fundamentales del paralelismo a las cuales el sistema tiene que enfrentarse a las siguientes limitaciones: Dependencia verdadera de datos También llamada dependencia de flujo o dependencia escritura-lectura. Se produce cuando una instrucción necesita un dato producido por una instrucción que la precede. Ver ejemplo 2.2. add r1, r2 ; carrgar el registro r1 con el contenido de r2 más el contenido de move r3, r1 ; cargar el registro r3 con el contendio de r1 Figura 2.2 Dependencia de datos verdadera Si no hay dependencias, se pueden captar y ejecutar dos instrucciones en paralelo. Si existe dependencia de datos entre un par de instrucciones, se retrasa la segunda instrucción tantos ciclos de reloj como sea necesario para eliminar la dependencia Dependencia relativa al procedimiento Ya se ha visto que la presencia de bifurcaciones en una secuencia de instrucciones complican el funcionamiento del cauce. Las instrucciones que siguen a una bifurcación (se pueden saltar o no)tienen una dependencia relativa al procedimiento en la bifurcación y no se pueden ejecutar hasta que se ejecute la bifurcación. La mala elección a la hora de decidir qué hacer frente a una bifurcación, en un procesador superescalar tiene consecuencias más graves, pues las oportunidades de comenzar a ejecutar nuevas instrucciones en cada ciclo son mayores. El uso de instrucciones de longitud variable, genera otro tipo de dependencia relativa al procedimiento. Al no conocer la longitud, ésta debe ser decodificada parcialmente antes de captar la siguiente, y de esta forma se está impidiendo la captación simultánea para un cauce superescalar. Por esta razón, las técnicas de procesamiento superescalar se utilizan en arquitecturas RISC, las cuales presentan una longitud de instrucción fija. 6

11 Conflicto en los recursos Un conflicto en un recurso es una competencia de dos o más instrucciones por el mismo recurso o unidad funcional (memoria, caches, buses, etc.) al mismo tiempo. Desde el punto de vista del cauce, un conflicto por recursos presenta el mismo comportamiento que la dependencia de datos, sin embargo existen algunas diferencias, las cuales se enumeran a continuación: Los conflictos en los recursos pueden superarse duplicando éstos Cuando una operación tarda más del tiempo considerado normal, los conflictos de recursos se pueden minimizar segmentando la unidad funcional correspondiente Dependencia de salida También llamada dependencia lectura-escritura. El ejemplo de la figura 2.3 ilustra esta dependencia. La instrucción I3 si se ejecuta antes del final de, se captará un valor incorrecto de R3 para la ejecución de, por lo tanto I3 debe terminar después de. Para asegurar esto, la emisión de la tercera instrucción debe detenerse si su resultado puede ser sobrescrito más tarde por una instrucción anterior que tarda más en finalizar. R3 := R3 op R5 R4 := R3 +1 R3 := R5 +1 R7 := R3 op R4 () (I2) (I3) () Figura 2.3 Dependencia de salida Antidependencia También llamada lectura-escritura. El ejemplo de la figura 2.4 ilustra esta dependencia. La instrucción I3 no puede finalizar antes de que la instrucción I2 comience a ejecutarse y haya captado sus operandos, esto, porque I3 actualiza el registro R3, que es operando fuente de I2. R3 := R3 op R5 R4 := R3 +1 R3 := R5 +1 R7 := R3 op R4 () (I2) (I3) () Figura 2.4 Antidependencia El término antidependencia es utilizado porque la restricción es similar a al de la dependencia verdadera pero a al inversa. (la segunda instrucción destruye un valor que usa la primera instrucción) 7

12 Capítulo 3: Diseño del procesador superescalar Paralelismo El concepto de paralelismo toma gran importancia en el desarrollo de soluciones que incrementen la velocidad de procesamiento de una máquina determinada. Particularmente, al diseñar un procesador superescalar, será necesario manejar este concepto y evitar los conflictos que podrían surgir al ejecutar instrucciones en forma paralela cuando realmente deberían ser ejecutadas en forma secuencial. Se define dos conceptos relacionados con el paralelismo: el paralelismo a nivel de instrucciones y el paralelismo a nivel de máquina Paralelismo a nivel de instrucciones Se dice que existe paralelismo a nivel de instrucciones cuando las instrucciones de una secuencia son independientes y por lo tanto pueden ejecutarse en forma paralela solapándose. En el ejemplo de la figura 3.1, se muestran dos secuencias de instrucciones, una que permite ejecución solapada de instrucciones y otra que no, pues, en este último caso, el registro 3 (R3) debe ser actualizado primero (sumándole 1) antes de sumarle el contenido del registro 2 (R2) y almacenarlo en el registro 4 (R4). Load R1 R2(23) Add R3 R3, "1" Add R4 R4,R0 Add R3 R3, "1" Add R4 R3, R2 Store[R4] R0 paralelismo =3 Es posible ejecutar las instrucciones en forma paralela paralelismo =1 Las instruccione son dependientes entre elllas Figura 3.1 Ejemplo de paralelismo a nivel de instrucciones El paralelismo a nivel de instrucciones es función de la frecuencia de dependencias de datos verdaderas y relativas al procedimiento que haya en el código. Depende también, de la arquitectura del set de instrucciones, de la aplicación, y a la llamada espera de una operación, lo cual corresponde al tiempo que pasa hasta que el resultado de una instrucción esté disponible para ser usado como operando por otra instrucción posterior. 8

13 Paralelismo a nivel de máquina Este concepto es un índice de la capacidad del procesador para sacar partido al paralelismo a nivel de instrucciones. Depende de factores como: Número de instrucciones que pueden captarse y ejecutarse al mismo tiempo Velocidad y sofisticación del mecanismo del procesador para lograr instrucciones independientes Tanto el paralelismo a nivel de máquina como el paralelismo a nivel de instrucciones son factores importantes a la hora de aumentar las prestaciones. Es importante, tener en cuenta que si se emplea una arquitectura RISC, aumentará el paralelismo a nivel de instrucciones (esto, porque las instrucciones son de longitud fija). Además, ambos conceptos están muy relacionados con el nivel de prestaciones del sistema, es así como, si existe un escaso paralelismo de máquina, las prestaciones se verán limitadas, sin importar la naturaleza del programa Políticas de emisión de instrucciones El procesador debe ser capaz de identificar el paralelismo a nivel de instrucciones y organizar la captación, decodificación y ejecución de las instrucciones en paralelo. Algunos autores, utilizan el término emisión de instrucciones, para hacer referencia al inicio de ejecución de instrucciones en las unidades funcionales del procesador, de ahí, surge el término política de emisión de instrucciones, el cual hace referencia al protocolo utilizado para emitir las instrucciones. El procesador intenta buscar instrucciones que puedan ser agregadas al cauce y luego ser ejecutadas. Para encontrar y elegir qué nueva instrucción es incorporada al cauce existen básicamente tres formas de ordenamiento: Orden para captar instrucciones Orden para ejecutar instrucciones Orden en el que las instrucciones alteran los registros y las posiciones de memoria. A diferencia de otros métodos utilizados para incrementar la velocidad de procesamiento, en este caso la única restricción que tiene el procesador es que el resultado sea correcto. Por lo tanto, la única preocupación del procesador deberá ser acomodar las dependencias y conflictos que se puedan presentar entre los datos y las instrucciones. 9

14 Es importante destacar, que mientras más sofisticado sea el procesador, menos limitado se encontrará por la relación entre los tres tipos de orden vistos antes. Para un procesador superescalar, las políticas de emisión de instrucciones, se pueden dividir en: Emisión en orden y finalización en orden: pese a ser muy básica, pues muy pocos procesadores (ni siquiera los superescalares) utilizan esta política. La idea central es ejecutar las instrucciones en el orden en que se captan y decodifican. Además, la emisión de instrucciones se detiene cuando hay una disputa por alguna unidad funcional, o cuando se requiere más de un ciclo para generar un resultado. Ver el ejemplo de la figura 3.2, par el cual existen las siguientes restricciones: o necesita dos ciclos para ejecutarse o I3 e compiten por la misma unidad funcional o I5 depende de un valor generado por o I5 e compiten por unidad funcional. Decodificación Ejecución Escritura Ciclo I2 1 I3 I2 2 I3 3 I I5 5 I5 I3 6 7 I5 8 Figura 3.2 Emisión en orden y finalización en orden Emisión en orden y finalización desordenada: utilizada en los procesadores RISC escalares para mejorar la velocidad de las instrucciones que necesitan muchos ciclos. Utilizando esta política, es posible tener cualquier número de instrucciones en al etapa de ejecución en un momento dado, la única restricción para esto es el grado máximo de paralelismo de la máquina. Al igual que en el caso anterior, la emisión de instrucciones se detiene cuando existe una dependencia de datos, o relativa al procedimiento, y cuando hay una pugna por alguna unidad funcional. 10

15 Si se observa el ejemplo 3.3, es posible observar que se ahorra un ciclo de ejecución, pues, I2 puede terminar antes que I2 finalice su ejecución, y de esta forma I3 se adelanta (las restricciones son las mencionadas en el punto anterior) Decodificación Ejecución Escritura Ciclo I2 1 I3 I2 2 I3 I2 3 I5 I3 4 I5 5 I5 6 Figura 3.3 Emisión en orden y finalización desordenada 7 Emisión desordenada y finalización desordenada: con la emisión en orden el procesador sólo decodificará instrucciones hasta encontrar un conflicto o una dependencia, por lo tanto no está permitido buscar instrucciones que pueden ser independientes a las que se encuentran en el cauce hasta que el conflicto se solucione. Para utilizar esta política es necesario desacoplar las etapas del cauce de decodificación y de ejecución, lo cual se hace con un buffer llamado ventana de instrucciones. Al decodificar una instrucción, ésta se pasa a la ventana de instrucciones, mientras el buffer no esté llene es posible seguir captando y decodificando. Cualquier instrucción puede ser emitida siempre que:!"necesite una unidad funcional que no esté ocupada!"no esté bloqueada por conflicto o dependencia Lo que ocurre, es que el procesador tiene la capacidad de anticiparse, de esta forma identifica las instrucciones que son independientes y pueden ser introducidas al cauce. Notar, que la ventana de instrucciones, no es una etapa adicional del cauce, por lo cual no aumenta el esfuerzo. Esta política está sujeta a las mismas restricciones que las políticas anteriores. Lo que ocurre ahora, es que al existir más instrucciones dispuestas a ser emitidas, hay menos posibilidad de detener una etapa del cauce. En el ejemplo de la figura 3.4, se ilustra esta política, en el cuarto ciclo es posible emitir antes de I5, de esta forma se produce un ahorro en las etapas de ejecución y de escritura. 11

16 Decodificación Ventana Ejecución Escritura Ciclo I2 1 I3,I2 I2 2 I5 I3, I3 I2 3,I5, I3 4 I5 I5 5 I5 6 Figura 3.4 Emisión desordenada y finalización desordenada Renombramiento de registros El uso de emisión desordenada y/o finalización desordenada puede dar origen a dependencias de salida y antidependencias, las cuales surgen porque los valores de los registros, no pueden reflejar ya la secuencia de valores dictada por el flujo del programa. Al usar algún tipo de desordenación, los valores de los registros no pueden conocerse completamente en cada instante considerando sólo la secuencia de instrucciones dictada por el programa. Así, los valores entran en conflicto por el uso de los registros, y el procesador debe solucionar estos conflictos deteniendo alguna etapa del cauce. Cuando varias instrucciones compiten por el uso de los mismos registros, se generan restricciones en el cauce, lo cual retarda las respuestas entregadas por el sistema, al suceder esto el sistema está enfrentando un conflicto de almacenamiento. Para solucionar este conflicto se utiliza la solución más básica: duplicación de los recursos que causan el conflicto, en este caso los registros. La técnica en cuestión se conoce como renombramiento de registros. Básicamente la asignación dinámica de registros asociados con los valores que necesitan las instrucciones, está a cargo del hardware. Se asigna un nuevo registro cada vez que se crea un nuevo valor de registro, las instrucciones que siguen y que accedan al valor del nuevo registro como operando fuente deben ser renombradas, es decir, las referencias a registros de esas instrucciones deben revisarse para referenciar el registro que tiene el valor que se necesita, así, las referencias a un mismo registro original con diferentes instrucciones podrá ser referenciada a distintos registros reales. 12

17 La figura 3.5. ilustra el uso de renombramiento de registros. Observar que, las referencias a un registro sin el subíndice corresponden a una referencia a un registro lógico, en cambio, la referencia a un registro con el subíndice, corresponde a un registro hardware asignado para contener un nuevo valor. La creación del registro R3c en la instrucción I3 evita la antidependencia de la segunda instrucción y la dependencia de salida de la primera instrucción, no impidiendo que acceda a un valor correcto. I3, entonces, puede emitirse inmediatamente. Si no se usara renombramiento I3 sólo podría emitirse hasta que la primera instrucción haya finalizado y la segunda haya sido ya emitida. R3b := R3a op R5a R4b := R3b +1 R3c := R5a +1 R7b := R3c op R4b () (I2) (I3) () Figura 3.5 Uso de Renombramiento de registros Recordar que, cuando se hace una nueva asignación para un registro lógico, se hace que las referencias de instrucciones posteriores a ese registro lógico como operando fuente se refieran al registro hardware asignado en forma más reciente en términos de la secuencia de instrucciones del programa. 13

18 Capítulo 4: Algunos ejemplos Procesadores Pentium Los procesadores Pentium ofrecen un juego de instrucciones CISC, pero internamente están diseñados como procesadores RISC. Cada instrucción CISC del juego x86 antiguo se descompone en una o varias RISC. Este proceso de conversión sólo ocupa el 3% del circuito que se dedica a microprogramas. El procesador Pentium tiene dos unidades de ejecución de enteros (U y V), y una de punto flotante. Presenta encadenamiento (o pipeline) de cinco etapas para los enteros y de ocho etapas para los números de punto flotante. Para realizar una operación de punto flotante, se aprovechan las 4 primeras etapas de la primera unidad de enteros, y la unidad de punto flotante toma el control para las 4 últimas etapas. Para saber si las instrucciones pueden ser ejecutadas de forma paralela, el procesador sigue un sencillo algoritmo, por ejemplo: para ejecutar las instrucciones e I2 el algoritmo sería como se indica a continuación: IF es simple AND I2 también simple AND no es salto AND destino de no es fuente de I2 AND destino de no es destino de I2 THEN envía a U envía I2 a V ELSE envía a U, para I2 (será evaluada con I3) Si se utiliza un compilador que conoce este modo de funcionamiento, la velocidad de procesamiento mejora hasta un 30%. 14

19 Una de las técnicas más importantes del procesamiento paralelo superescalar es la "ejecución especulativa", que es la que permite ejecutar una instrucción sin que el procesador este del todo seguro que deba ser ejecutada. Esta técnica esta pensada para evitar detenciones en el flujo de ejecución debidas a las instrucciones de salto. Otra aplicación de esta idea, aun teórica, es la especulación sobre los valores de los datos. Es una idea curiosa: se trata de calcular resultados sobre valores predecidos y no calculados previamente. Entonces, la instrucción que se arriesga a usar estos valores predecidos (que pueden o no ser correctos) se ejecuta especulativamente, "superespeculativamente" Mejoras en arquitecturas superescalares Existen mejoras en las arquitecturas superescalares, que intentan reducir el impacto de los conflictos de datos, analizados en los capítulos anteriores, en el rendimiento. A continuación se mencionan dos de estas mejoras: Out of order execution: Es decir, ejecución desordenada. Para comprender este concepto, conviene suponer un conflicto de datos entre las instrucciones i y j consecutivas. El procesador retarda sólo j y las instrucciones que dependen de ella, pero no otras instrucciones independientes que vayan detrás de i. Esto implica mayor complejidad, pero también mayor ancho de banda de ejecución. Los procesadores Pentium Pro y el HP8000 usan esta técnica. Registros en la sombra: También llamados Shadow Registers o Dynamic Register Renaming. Esta técnica consiste en eliminar las dependencias de orden o de salida teniendo varios juegos de registros, uno por unidad de ejecución Rendimiento Los procesadores superescalares, como el Alpha 21264, el Sillicon Graphics MIPS/R10000, el PowerPC 604 y el Pentium Pro ejecutan hasta 4 instrucciones simultáneas. Pero, el indicador 1/IPC 2 es menor de lo esperado en programas reales, debido a conflictos que no se pueden solucionar. El IPC ideal en estos procesadores sería de 4, pero en la práctica sólo se alcanza entre 0,5 y 1,5. Estos valores disminuyen a medida que aumenta el número de unidades replicadas. 2 Instrucciones Por Ciclo 15

20 Capítulo 5: Conclusiones y comentarios finales La tecnología ha avanzado a pasos agigantados, y así como ha ido avanzando se han desarrollado nuevas formas para incrementar la velocidad de ejecución de las instrucciones y de esta forma aumentar el nivel de prestaciones, de ahí que surjan nuevas técnicas para aumentar las prestaciones de los computadores. El procesamiento superescalar es la última de una serie de innovaciones tendientes a producir procesadores cada vez más rápidos. La idea básica de este tipo de procesadores es explotar al máximo el paralelismo a nivel de instrucciones, tanto así que algunos procesadores superescalares son capaces de ejecutar más de una instrucción por ciclo de reloj (dos, tres, cuatro, y ocho). Con respecto a la implementación de las técnicas superescalares, es posible mencionar que el conjunto de instrucciones reducido que presenta una máquina RISC, permite que el uso de estas técnicas se realice muy fácilmente, de todos modos, estas técnicas no es exclusivo el uso de estas técnicas a sólo este tipo de arquitectura, pues también es posible implementarlas en arquitecturas CISC. Los procesadores superescalares pueden iniciar la ejecución simultánea de varias instrucciones escalares en paralelo de manera que se pueden operar varios elementos de un vector dentro de una misma iteración. Para esto, es necesario que existan varias unidades aritmético-lógicas, de punto flotante y de control las cuales contribuyen a al ejecución de las instrucciones y operaciones en forma paralela. Por otra parte, no basta con ejecutar un mayor número de instrucciones en paralelo para lograr un procesador más rápido, se debe tener mucho cuidado al diseñar este tipo de procesadores, pues existen una serie de problemas o conflictos tanto de datos como de instrucciones, los cuales, al no ser tratados en forma adecuada pueden actuar en desmedro de la mejora de rendimiento, que se busca con la aplicación de este tipo de técnica. 16

21 Capítulo 5: Referencias bibliográficas Libros Stallings, William Arquitectura y Organización de Computadores 2º Edición. Madrid. España. Prentice Hall, 1998 URLs Superordenadores. Alberto Visto Técnicas Superespeculativas en procesadores superescalares Dra. Patricia Borensztejn

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

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

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

Modelos de Programación Paralela Prof. Gilberto Díaz

Modelos de Programación Paralela Prof. Gilberto Díaz Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Modelos de Programación Paralela Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

Más detalles

Tecnologías, Organización y Microarquitectura

Tecnologías, Organización y Microarquitectura Septiembre 2012 Tecnología de Integración Nanotecnología Tecnología de Integración Imágenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la influenza, y de un transistor

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

1.2.-Analisis de los componentes

1.2.-Analisis de los componentes 1.2.-Analisis de los componentes 1.2.1.-CPU La Unidad Central de Proceso (conocida por sus siglas en inglés, CPU). Es el lugar donde se realizan las operaciones de cálculo y control de los componentes

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

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Autónoma del Estado de México Facultad de Medicina Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en

Más detalles

Organización de Computadoras. Clase 7

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

Más detalles

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción Tema 7 Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción Se denomina arquitectura superescalar a aquella implementación capaz de ejecutar más de una instrucción por ciclo de reloj.

Más detalles

Sistemas con Microprocesadores I

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

Más detalles

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

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

Más detalles

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

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

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

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

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

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

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

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

PROGRAMA INSTRUCCIONAL FUNDAMENTO PARA EL DISEÑO DE SISTEMAS CON MICROPROCESADORES

PROGRAMA INSTRUCCIONAL FUNDAMENTO PARA EL DISEÑO DE SISTEMAS CON MICROPROCESADORES UNIVERSIDAD FERMÍN TORO VICE RECTORADO ACADÉMICO FACULTAD DE INGENIERÍA ESCUELA DE COMPUTACIÓN PROGRAMA INSTRUCCIONAL FUNDAMENTO PARA EL DISEÑO DE SISTEMAS CON MICROPROCESADORES CÓDIGO ASIGNADO SEMESTRE

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS

COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS COMPONENTES DEL PC LEONARDO OLIVARES VILLA MATEO CARDONA ARENAS Tipos de procesadores. Dedicados: Para desarrollar una tarea muy especifica. Ejecutando un único algoritmo de forma óptima. de propósito

Más detalles

EVOLUCIÓN DE LOS PROCESADORES

EVOLUCIÓN DE LOS PROCESADORES EVOLUCIÓN DE LOS PROCESADORES Lecturas recomendadas: * Tanembaum, A. Organización de computadoras. Cap. 1 * Stallings, W. Organización y arquitectura de computadores. Cap. 2 Arquitectura de una computadora

Más detalles

OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL.

OPTIMIZACIÓN DEL PROCESO DE EJECUCIÓN DE PRUEBAS FUNCIONALES RELATIVAS A LA PRODUCCIÓN AEROESPACIAL. 7. RESULTADOS. Para realizar la implementación del modelo se ha usado el programa IBM ILOG CPLEX. Al intentar obtener la solución con LINGO, se descubre la imposibilidad de llegar al óptimo con la versión

Más detalles

Concurrencia. Concurrencia

Concurrencia. Concurrencia Concurrencia Procesos y hebras Concurrencia Programación concurrente Por qué usar hebras y procesos? Ejecución de procesos Ejecución de hebras Hebras vs. Procesos Creación y ejecución de hebras La prioridad

Más detalles

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES GRADO EN INGENIERIA DE COMPUTADORES Datos Descriptivos CENTRO RESPONSABLE: E.U. DE INFORMATICA OTROS CENTROS IMPLICADOS: CICLO: Grado sin atribuciones MÓDULO:

Más detalles

Asignaturas antecedentes y subsecuentes

Asignaturas antecedentes y subsecuentes PROGRAMA DE ESTUDIOS Introducción a las Ciencias Computacionales Área a la que pertenece: Área General Horas teóricas: 2 Horas practicas: 1 Créditos: 5 Clave: F0153 Asignaturas antecedentes y subsecuentes

Más detalles

ASIGNATURA: Arquitectura de Computadores

ASIGNATURA: Arquitectura de Computadores ASIGNATURA: Arquitectura de Computadores I. T. Informática de Gestión Universidad de Alcalá Curso Académico 11/12 Curso 2º Cuatrimestre 1º GUÍA DOCENTE Nombre de la asignatura: Arquitectura de Computadores

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

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

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS 2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS Características de los algoritmos Las características fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realización

Más detalles

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Tema 2. Arquitectura de CPU avanzadas 15/03/2011 Tema 2. Arquitectura de CPU avanzadas. Juegos CISC y RISC. Proceso paralelo. Procesadores escalares y vectoriales. Segmentación. Caches multinivel. Índice Introducción... 1 Procesadores CISC y RISC...

Más detalles

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías: Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la

Más detalles

Quinta tarea: Existen varias versiones del 80486:

Quinta tarea: Existen varias versiones del 80486: Quinta tarea: Los primeros procesadores utilizados en los PC fueron los procesadores 8088 y 8086. Sus principales diferencias con el 80286 es que el segundo permite multitarea, tenía una velocidad de reloj

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

Compiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón

Compiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos

Más detalles

GLOSARIO DE TÉRMINOS

GLOSARIO DE TÉRMINOS Apéndice A, Apartado 3: Glosario de términos!401" APÉNDICE A, APARTADO 3 GLOSARIO DE S Administración de la calidad Conjunto de actividades de la función general de administración que determina la política

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

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

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas Herramientas de Programación M.C. Juan Carlos Olivares Rojas Febrero 2011 Temario Simbología Reglas para la construcción de Diagramas Pseudocódigo Temario Tipos de Datos y Expresiones Estructuras lógicas

Más detalles

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

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

Más detalles

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

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

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos

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

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

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 2. Estructura de un Fichero. Operaciones Básicas. 1.- Introducción. 2.- Organización: Campos y Registros. 3.- Acceso a la Información.

Más detalles

GESTION DE LA MEMORIA

GESTION DE LA MEMORIA GESTION DE LA MEMORIA SISTEMAS OPERATIVOS Generalidades La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección Tanto el tamaño de la tabla (memoria), como el de los datos

Más detalles

Sistemas de información Administrativa II

Sistemas de información Administrativa II Sistemas de información Administrativa II UNIDAD 1 MSI. José Luis Llamas Cárdenas Ciclo de Vida Proceso de todo sistema de información Sistemas de Información El sistema informativo esta comprendido por

Más detalles

Organización del Computador I. Introducción e Historia

Organización del Computador I. Introducción e Historia Organización del Computador I Introducción e Historia Introducción Qué es una computadora? Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz de

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

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

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 2009 Veremos Memoria virtual Resumen de ideas para mejorar performance 1 Recordemos:

Más detalles

Evolución del software y su situación actual

Evolución del software y su situación actual Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su

Más detalles

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché Area Académica: Sistemas Computacionales Tema: Elementos de diseño de memoria caché Profesor: Raúl Hernández Palacios Periodo: 2011 Keywords: Memory, cache memory. Tema: Elementos de diseño de memoria

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

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero Introducción a los sistemas operativos Ing Esp Pedro Alberto Arias Quintero Unidad 1: Conceptos generales de Sistemas Operativos. Tema 1: Introducción: 1.1 Introducción: Qué es un sistema operativo?. 1.2

Más detalles

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. 1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. Arquitecturas Clásicas. Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos

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

Tema 14: Sistemas Secuenciales

Tema 14: Sistemas Secuenciales Tema 14: Sistemas Secuenciales Objetivos: (CONTADORES) Introducción. Características de los contadores. Contadores Asíncronos. Contadores Síncronos. 1 INTRODUCCIÓN Los contadores son sistemas secuenciales

Más detalles

CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES SYLLABUS ARQUITECTURA DE COMPUTADORES

CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES SYLLABUS ARQUITECTURA DE COMPUTADORES Facultad de Ingeniería en Ciencias Aplicadas pág. 1 CARRERA DE INGENIERÍA EN SISTEAS COPUTACIONALES SYLLAUS ARQUITECTURA DE COPUTADORES 1. ISIÓN La Carrera de Ingeniería en Sistemas Computacionales forma

Más detalles

Sistemas Combinacionales y Sistemas Secuenciales

Sistemas Combinacionales y Sistemas Secuenciales y Prof. Rodrigo Araya E. raraya@inf.utfsm.cl Universidad Técnica Federico Santa María Departamento de Informática Valparaíso, 1 er Semestre 2006 y 1 2 3 y Contenido Al hablar de sistemas, nos referimos

Más detalles

Comprensión de los sistemas de. control. Ing. Jorge Sofrony. Inicio. Obje%vos del Programa. Misión y Visión del programa

Comprensión de los sistemas de. control. Ing. Jorge Sofrony. Inicio. Obje%vos del Programa. Misión y Visión del programa Comprensión de los sistemas de control Ing. Jorge Sofrony Contenido Misión y Visión Introducción del programa Sistemas de control Obje%vos de la Aplicaciones Acreditación Arquitectura Ejemplos Ac=vidades

Más detalles

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación

Más detalles

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo.

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo. 5. DISEÑO FUNCIONAL En este apartado vamos a detallar los diagramas funcionales que han constituido la base para la posterior implantación informática de la metaheurística. 5.1. Diseño funcional del algoritmo

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

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA INTRODUCCIÓN AL PIC NOMENCLATURA ARQUITECTURA. TEMPORIZACIÓN. SET DE INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO.

Más detalles

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones Problemas Resueltos Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones 1.- Notas y criterios para los problemas 2.- NOTA GENERAL: Tema 1 Introducción a la gestión de memoria. 3.- Problemas

Más detalles

COMPUTADORES VECTORIALES (DLXV)

COMPUTADORES VECTORIALES (DLXV) DEPARTAMENTO DE AUTOMÁTICA ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Laboratorio de Arquitectura e Ingeniería de Computadores PRÁCTICA III COMPUTADORES VECTORIALES (DLXV) OBJETIVO Conocer la programación

Más detalles

UNIVERSIDAD NACIONAL HERMILIO VALDIZAN DIRECCION DE EDUCACION A DISTANCIA Y VIRTUAL CENTRO DE ESTUDIOS INFORMATICOS HUANUCO PERU

UNIVERSIDAD NACIONAL HERMILIO VALDIZAN DIRECCION DE EDUCACION A DISTANCIA Y VIRTUAL CENTRO DE ESTUDIOS INFORMATICOS HUANUCO PERU 5. FUNCIONAMIENTO DE UN ORDENADOR 5.1. COMO FUNCIONA MI ORDENADOR? Una computadora básicamente es un dispositivo cuya principal función es la de procesar grandes cantidades de información en forma veloz

Más detalles

CAPITULO 1 INTRODUCCION AL PROYECTO

CAPITULO 1 INTRODUCCION AL PROYECTO CAPITULO 1 INTRODUCCION AL PROYECTO 1 INTRODUCCION AL PROYECTO 1.1 Marco Teórico Los procesadores digitales de señales ganaron popularidad en los años sesentas con la introducción de la tecnología de estado

Más detalles

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

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

Más detalles

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

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

Memoria Cache. Departamento de Arquitectura de Computadores

Memoria Cache. Departamento de Arquitectura de Computadores Memoria Cache Departamento de Arquitectura de Computadores Índice Introducción. Conceptos básicos Características de los sistemas de memoria Jerarquías de memoria Memoria Principal Características físicas

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Materia: Introducción a los Sistemas Operativos

Materia: Introducción a los Sistemas Operativos Carrera: Licenciatura en Sistemas Materia: Introducción a los Sistemas Operativos Docentes: Prof. Hernán Merlino Prof. Pablo Pytel Año: 2015 Cuatrimestre: Segundo 1- Fundamentación de la Asignatura y Objetivos

Más detalles

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas. Generalidades acerca de los sistemas operativos Hoy en día muchas personas, usan las computadoras de una forma muy fácil, muchos incluso creen que la máquina tiene incorporada todas las potencialidades

Más detalles

PROGRAMA: COMPUTACION I

PROGRAMA: COMPUTACION I UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TACHIRA VICERECTORADO ACADÉMICO DECANATO DE DOCENCIA DEPARTAMENTO DE INGENIERÍA INFORMÁTICA 1 PROGRAMA: COMPUTACION I Código 0415102T Carrera: Ingeniería Informática

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

Los valores obtenidos de speedup tienden a incrementarse hasta los ocho procesadores. al usar diez procesadores éste se mantiene igual o decrece. Esto

Los valores obtenidos de speedup tienden a incrementarse hasta los ocho procesadores. al usar diez procesadores éste se mantiene igual o decrece. Esto En la Figura 6.9 se muestra el speedup obtenido en el tiempo de ejecución al ejecutar la aplicación con las distintas pol ticas de mapping, que pueden ser comparadas con el caso ideal. En el Apéndice D

Más detalles

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS ORGANIZACIÓN DE COMPUTADORAS

Más detalles

Introducción a la Tecnología de la Información y la Comunicación (TIC's)

Introducción a la Tecnología de la Información y la Comunicación (TIC's) Introducción a la Tecnología de la Información y la Comunicación (TIC's) Tema 1. Conoce la computadora y sus partes Un factor importante para obtener el mayor provecho de la capacitación en línea es saber

Más detalles

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora

Partes de una computadora. Conceptos Generales. Elementos de Computación (CU) Computación (TIG) El Hardware de una computadora Elementos de Computación (CU) Computación (TIG) Unidad 3 Organización Básica de la Computadora Conceptos Generales Sistema Digital: Es un sistema en el cual la información se representa por medio de variables

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

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

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: ANALISIS DE SISTEMAS DEPARTAMENTO: SISTEMAS ASIGNATURA: INTRODUCCIÓN

Más detalles

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura UNIVERSIDAD DEL CARIBE UNICARIBE Escuela de Informática Programa de Asignatura Nombre de la asignatura : Sistema Operativo II Carga académica : 4 créditos Modalidad : Semi-presencial Clave : INF-223 Pre-requisito

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

Escuela Politécnica Superior de Jaén

Escuela Politécnica Superior de Jaén TITULACIÓN: Ingeniería Técnica en Topografía GUÍA DOCENTE de Fundamentos de Informática CURSO ACADÉMICO: 2011/2012 EXPERIENCIA PILOTO DE IMPLANTACIÓN DEL SISTEMA DE CRÉDITOS EUROPEOS EN LA UNIVERSIDAD

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

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos Arquitectura de ordenadores (fundamentos teóricos) Representación de la información Estructura de un microprocesador Memorias Sistemas de E/S Elementos de un ordenador Microprocesador Placa base Chipset

Más detalles

M. C. Felipe Santiago Espinosa

M. C. Felipe Santiago Espinosa M. C. Felipe Santiago Espinosa Junio de 2008 Un sistema empotrado es un procesador, con sus elementos externos que desarrolla una función especifica de manera autónoma. Un sistema empotrado es un sistema

Más detalles

Microprocesadores. Informática Aplicada DSI-EIE FCEIA

Microprocesadores. Informática Aplicada DSI-EIE FCEIA Microprocesadores Informática Aplicada DSI-EIE FCEIA Arquitecturas Un concepto: Programa almacenado Dos modelos: Von Neumann (1945) Harvard 2 Microprocesador Es un circuito integrado que cumple las funciones

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles