Arquitectura Pipeline

Universidad Autónoma de Zacatecas “Francisco García Salinas” Ingeniería Eléctrica Ingeniería en Computación Arquitectura

Views 234 Downloads 37 File size 359KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad Autónoma de Zacatecas “Francisco García Salinas” Ingeniería Eléctrica Ingeniería en Computación Arquitectura de Computadoras Salvador Ibarra Delgado 7 ”B” Conceptos Pipeline, Cache, computación predictiva y procesamiento paralelo Juan Carlos Lumbreras Jaramillo 31124092 21 de Noviembre de 2018

Arquitectura Pipeline El modelo Pipeline se denomina en el mundo de la informática a una serie de elementos de procesamiento de datos ordenados de tal modo que la salida de cada uno es la entrada del siguiente. Pipeline hace referencia a su nombre, básicamente es como el agua cuando pasa por la tubería, donde el agua es la información o los procesos.

Modelo de Pipeline La arquitectura Pipeline consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior, con un almacenamiento temporal de datos entre procesos. Entender cómo funciona un pipeline es un paso importante para entender qué ocurre dentro de un procesador. Este sistema es común verlo en sistemas operativos multitarea ya que puede ejecutar una serie de procesos de manera simultánea, los cuales son ejecutados de manera secuencial mediante un administrador de tareas que aplica distintos tipos de prioridad y capacidad de procesamiento. Aquí se alterna entre este sistema (el de tuberías) y los demás.

Aplicación de pipelines en la informática Los pipelines gráficos se encuentran en la mayoría de las tarjetas graficadoras y consiste en múltiples unidades aritméticas o CPUs completas que implementan distintos tipos de escenarios de operaciones típicas, como por ejemplo cálculos de luz. En los que es software consiste en varios procesos ordenados de tal manera que el flujo de salida alimenta un proceso de entrada del siguiente proceso, como lo leímos anteriormente. Un ejemplo claro son los pipelines de Unix, que los procesos de este sistema se inicial al mismo tiempo. Un aspecto a tener en cuenta de sistema pipelin es el concepto de almacenamiento en búfer: por ejemplo, un programa que envía datos puede producir 5.000 bytes por segundo, y un programa de recepción sólo puede ser capaz de aceptar 100 bytes por segundo pero los datos no se pierden nunca. Si el buffer de la cola se llena, el programa que envía los datos se suspende/bloquea hasta que el programa receptor tiene la oportunidad de leer algunos datos y liberar espacio en el búfer.

Ciclo de vida de una instrucción La acción básica de cualquier microprocesador, en tanto se mueva a través de la corriente de instrucciones, se puede descomponer en 4 pasos, que cada instrucción en la corriente de código se debe atravesar para poder ejecutarse con éxito: 1. Fetch: se encarga de “traer” la instrucción que se debe ejecutar, de la dirección que está almacenada en el contador del programa. 2. Store: se encarga de “guardar o almacenar” la instrucción en el registro de instrucciones y luego “descifrarla”, incrementando la dirección en el contador de programa. 3. Execute: se ejecuta la instrucción almacenada en el registro de instrucciones. Si la instrucción no es una instrucción de rama si no una instrucción aritmética, este proceso la envía la ALU donde el microprocesador “lee” el contenido de los registros de entrada y “agrega” el contenido de los registros de entrada. 4. Write: “escribe” los resultados de esa instrucción dentro del registro de destinación. En un proceso moderno, los cuatro pasos son repetidos una y otra vez hasta que el programa termine de ejecutarse.

Consumo en la arquitectura Pipeline Para poder reducir el consumo que se produce, se investigan unas series de soluciones de compromiso entre la resolución por etapa y la cantidad de etapas. Estos poseen un método de escalamiento de capacitores que está descripto para reducir la potencia con el cual se ha sobredimensionado en las últimas etapas del caso de una arquitectura Pipeline convencional. También está el uso de la corrección digital que permite eliminar los efectos no deseados causados por imperfecciones de los comparadores utilizando circuitos digitales de bajo consumo y de bajo costo.

Características de pipeline Dentro del Pipeline se puede hablar de niveles de paralelismo que son caracterizados de la siguiente manera:  



Multiprogramación y Multiprocesamiento: Estas acciones se toman a un nivel de Programa o Trabajo. Tarea o Procedimientos: Acciones que se toman dentro de un mismo programa ejecutándose procesos que son independientes de manera simultánea. Interinstrucciones: Acciones a nivel de instrucción, o sea dentro del mismo proceso o tarea sé que se pueden ejecutar instrucciones independientes de manera simultánea.

Memoria cache La memoria cache del procesador se encarga de acelerar las lecturas y escrituras que necesita el micro del sistema de memoria para conseguir así que todas tus aplicaciones funcionen más rápido. Se habla de sistema de memoria porque en realidad nos estamos refiriendo a varios bloques. El más alejado del micro y por lo tanto más lento y grande es el disco duro. En este los datos se almacenan incluso cuando el equipo está apagado. Al producirse el encendido pasan a la memoria RAM aquellos programas que ejecutas y los datos que necesites en cada momento. Por desgracia el acceso a la memoria RAM desde el micro no es instantáneo. Esto que puede parecer algo anecdótico, estamos hablando del orden de nanosegundos, puede provocar bloqueos y caídas de rendimiento.

¿Qué es la memoria cache? La cache es la solución al problema de rendimiento del sistema de memoria. Es muy pequeña y está incluida en el interior del micro. Su función es sencilla, conseguir que los datos más usados estén lo más cerca del procesador para ser accedidos de la manera más rápida posible.

¿Cómo funciona la memoria cache? Se organiza en niveles, de menor a mayor tamaño según lo alejada que esté del micro. Si el procesador necesita un dato de la memoria se comprueba si este se encuentra en el primer nivel. En caso de no encontrarlo, se busca en el segundo nivel y si no en el tercero. Todo se acelera si se colocan los datos más utilizados en los niveles más cercanos al procesador. Cada uno de estos niveles tiene un bloque de control el cual se encarga de almacenar y poner los datos a disposición del micro. El tiempo que tarda en buscar la información es proporcional al tamaño de la propia memoria que administra. Como queremos que los datos lleguen lo antes posible al micro los niveles más bajos tendrán menor capacidad. Cada nivel superior, por tanto, es bastante más grande que el anterior. La memoria cache es muy pequeña. En comparación con la memoria RAM unas mil veces más pequeña. Por suerte, los programas suelen realizar muchas operaciones

sobre los mismos datos y por lo tanto se consiguen grandes mejoras al usar esta técnica.

¿Qué tipo de aplicaciones se benefician de esta memoria? La memoria cache es capaz de acelerar todo tipo de aplicaciones. Al ser un sistema pensado para evitar bloqueos sus ventajas no son lineales. Es decir, una memoria de seis megas, no te dará el doble de prestaciones que una de tres si no que en ciertas situaciones será algo mayor. En este caso y como ocurre con el tamaño de la memoria RAM cuanto más mejor.

Computación predictiva El análisis predictivo es un área de estadísticas que se ocupa de extraer información de los datos y usarla para predecir tendencias y patrones de comportamiento. La mejora de la analítica web predictiva calcula las probabilidades estadísticas de eventos futuros en línea. Las técnicas estadísticas de análisis predictivo incluyen el modelado de datos, el aprendizaje automático, la IA, los algoritmos de aprendizaje profundo y la minería de datos. A menudo, el evento desconocido de interés está en el futuro, pero los análisis predictivos pueden aplicarse a cualquier tipo de desconocido, ya sea en el pasado, presente o futuro. Por ejemplo, identificar sospechosos después de que se haya cometido un delito o fraude con tarjetas de crédito a medida que se produce. El núcleo de la analítica predictiva se basa en capturar las relaciones entre las variables explicativas y las variables predichas de ocurrencias pasadas, y explotarlas para predecir el resultado desconocido. Sin embargo, es importante tener en cuenta que la precisión y la facilidad de uso de los resultados dependerán en gran medida del nivel de análisis de los datos y la calidad de las suposiciones. El análisis predictivo a menudo se define como predecir a un nivel más detallado de granularidad, es decir, generar puntuaciones predictivas (probabilidades) para cada elemento organizativo individual. Esto lo distingue de la previsión. Por ejemplo, "Análisis predictivo: tecnología que aprende de la experiencia (datos) para predecir el comportamiento futuro de los individuos con el fin de tomar mejores decisiones". En los sistemas industriales futuros, el valor del análisis predictivo será predecir y prevenir potenciales problemas para lograr un desglose cercano a cero y una mayor integración en el análisis prescriptivo para la optimización de decisiones. [cita requerida] Además, los datos convertidos se pueden utilizar para mejorar el ciclo de vida del producto en circuito cerrado, que es la visión de Industrial. Consorcio de internet.

Procesamiento paralelo El procesamiento en paralelo es la ejecución simultánea de la misma tarea en dos o más microprocesadores con el fin de obtener resultados más rápidos. Los recursos de la ordenadora pueden incluir un solo equipo con varios procesadores, o un número de computadoras conectadas por una red, o una combinación de ambos, y los procesadores acceden a los datos a través de una memoria compartida. Algunos sistemas de procesamiento paralelo de superordenadores tienen cientos de miles de microprocesadores. Con la ayuda del procesamiento en paralelo, un número de cálculos se puede realizar a la vez, con lo que el tiempo requerido puede completar un proyecto. Esto es especialmente útil en proyectos que requieren cálculos complejos, tales como el modelado del tiempo y los efectos especiales digitales. Vamos a dar un ejemplo de la vida real para comprender la eficacia de este tipo de procesamiento. Si un concurrido centro comercial tiene un solo contador de efectivo, los clientes forman una sola cola y esperan su turno. Si hay dos contadores de efectivo, la tarea se puede dividir de manera efectiva y los clientes podrán formar dos colas para poder realizar sus pagos dos veces más rápido. Este es un ejemplo en el que el procesamiento en paralelo es una solución eficaz. Con la ayuda del procesamiento en paralelo, problemas científicos altamente complicados que son de otra manera extremadamente difíciles de resolver se pueden resolver con eficacia. La computación paralela se puede utilizar eficazmente para tareas que implican un gran número de cálculos, tienen limitaciones de tiempo y se pueden dividir en una serie de tareas más pequeñas. El procesamiento paralelo es particularmente beneficioso en áreas tales como la meteorología y el clima, las reacciones químicas y nucleares, exploración de petróleo, la medición de los datos sísmicos, la tecnología espacial, circuitos electrónicos, el genoma humano, la medicina, gráficos avanzados y la realidad virtual, y los procesos de fabricación. Con toda probabilidad, el paralelismo es el futuro de la informática. En general, la implementación exitosa de la computación paralela implica dos desafíos:  

Las tareas deben estar estructurados de tal manera que puedan ser ejecutadas al mismo tiempo. La secuencia de tareas que deben ser ejecutadas una después de la otra.