Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Investigación #3: Rendimiento de un procesador 09 DE NOVIEMBRE DEL 2020 Hector Campos Serna Código. 215646659 Arquitectura D-10 Maestra: Thelma Isabel Ramírez Investigación #3: Rendimiento de un procesador ¿Qué es un procesador? El microprocesador es el cerebro de un ordenador o computadora, está compuesto por un circuito integrado encapsulado en un chip de silicio que lo componen millones de transistores. Su función es procesar los datos, controlar el funcionamiento de todos los dispositivos del ordenador, al menos de gran parte de ellos y lo más importante: se encarga de realizar las operaciones lógicas y matemáticas. Medidas del rendimiento de un computador Cuando se quieren comparar diferentes procesadores es necesario establecer el criterio de medida que permita cuantificar los resultados de la comparación. En este sentido existen dos conceptos que conviene aclarar previamente: la unidad de medida y el patrón de medida. El primero se refiere a la métrica utilizada para cuantificar la comparación. Y el segundo a la carga de trabajo respecto a la que se realiza la comparación. El tiempo es la unidad de medida por excelencia cuando se comparan varios procesadores. El patrón de medida más significativo es el conjunto de programas reales que se ejecutan en los procesadores. Dependiendo del nivel de abstracción o de descripción en el que queramos mejorar la máquina, deberemos fijarnos en una u otra medida de rendimiento. Tiempo de ejecución Tiempo que el usuario tarda en recibir una respuesta del sistema desde que ejecuta un programa, hasta que recibe el resultado por la pantalla o interfaz de usuario Es necesario diferenciar entre el tiempo que tarda una CPU en ejecutar el código de un programa, el tiempo que utiliza el S.O. para realizar sus tareas, y el tiempo necesario para acceder a los dispositivos de E/S. El tiempo de ejecución de un programa se divide en las siguientes componentes: • Tiempo de respuesta • Tiempo de CPU A su vez, el tiempo de CPU lo dividimos en: • Tiempo de CPU utilizado por el usuario. • Tiempo de CPU utilizado por el S.O Tiempo de respuesta Tiempo que el procesador tarda en ejecutar un programa (Es el tiempo necesario para completar una tarea, incluyendo los accesos al disco, a la memoria, las actividades de E/S y los gastos del S.O. Es el tiempo que percibe el usuario Tiempo de CPU Es el tiempo que tarda en ejecutarse un programa, sin tener en cuenta el tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas. Se divide en: Tiempo de CPU utilizado por el usuario. Es el tiempo que la CPU utiliza para ejecutar el programa del usuario. No se tiene en cuenta el tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas Tiempo de CPU utilizado por el S.O. Es el tiempo que el S.O. emplea para realizar su gestión interna Ciclos por instrucción Son los números de ciclos de instrucción que transcurren en un segundo Instrucciones por segundo Millones de Instrucciones ejecutadas en un segundo el número de instrucciones dependerá del juego de instrucciones. Las arquitecturas RISC (Reduced Instruction Set Computer) tienen un juego reducido de instrucciones mucho más genéricas que las arquitecturas CISC (Complex Instruction Set Computing). Por tanto, en las arquitecturas RISC necesitaremos más instrucciones (aunque duran menos tiempo) para llevar a cabo el mismo programa. Ejemplo de cálculo de medidas de rendimiento Tras ejecutar un programa de prueba en un Intel Pentium (***) (Intel, 2016) de 166 MHz, se obtuvo un tiempo de ejecución de 6 segundos y la siguiente distribución de cada tipo de instrucciones: Tipo de instrucción Frecuencia de uso Ciclos de reloj Operaciones Aritmético-lógicas 43% 1 carga desde Memoria 21% 2 almacenamiento en Memoria 12% 2 instrucciones de salto 24% Patrones de medida (Benchmarks) Para evaluar el rendimiento de un computador podemos utilizar diferentes técnicas: Las dos primeras alternativas se utilizan cuando la máquina no está disponible • Modelos analíticos (matemáticos) de la máquina Los modelos analíticos tienen limitado su ámbito de utilización por la dificultad de expresar en forma de ecuaciones matemáticas el comportamiento detallado de la máquina y su carga de trabajo. • Modelos de simulación (algorítmicos) de la máquina Los modelos de simulación pueden construirse con mayor precisión, recogiendo especificaciones detalladas de diseño. Sin embargo, estos modelos requieren una gran capacidad computacional cuando se incorporan todos los componentes básicos de la máquina. • La máquina real Las que se evalúan con el fin de disponer de algún criterio de elección. En este caso (y posiblemente en algunos modelos de simulación) será necesario disponer de un conjunto de programas representativos de la carga real de trabajo que vaya a tener la máquina, y con respecto a los cuales se realicen las medidas. Estos programas patrones se denominan benchmarks El tipo de recursos computacionales que mayoritariamente intervienen en la evaluación. En este sentido los clasificaremos en: • Enteros: aplicaciones en las que domina la aritmética entera, incluyendo procedimientos de búsqueda, operaciones lógicas. • Punto flotante: aplicaciones intensivas en cálculo numérico con reales. • Transacciones: aplicaciones en las que dominan las transacciones on-line y off-line sobre bases de datos. • Programas reales: Compiladores, procesadores de texto, etc. Permiten diferentes opciones de ejecución. Con ellos se obtienen las medidas más precisas • Núcleos (Kernels): Trozos de programas reales. Adecuados para analizar rendimientos estructura de computadores. • Patrones conjuntos (benchmarks suits) Conjunto de programas que miden los diferentes modos de funcionamiento de una máquina • Patrones reducidos (toy benchmarks): Programas reducidos (10-100 líneas de código) y de resultado conocido. Son fáciles de introducir y ejecutar en cualquier máquina • Patrones sintéticos (synthetic benchmarks): Código artificial no perteneciente a ningún programa de usuario y que se utiliza para determinar perfiles de ejecución. Influencia en el rendimiento de las alternativas de diseño Las alternativas se contemplan junto con datos reales de su presencia en el código máquina que generan los compiladores para programas reales. El resultado será la caracterización de un repertorio (ISA) que definirá las propiedades generales de los procesadores de tipo RISC. Estas propiedades son sobre un procesador hipotético denominado DLX, que es un compendio de las principales características de los actuales procesadores RISC: MIPS, Power PC, Precision Architecture, SPARC y Alpha. Estructura de la arquitectura DLX. En esta sección describiremos la estructura básica del DLX y definiremos el conjunto de instrucciones del mismo. La arquitectura dispone de 32 registros de propósito general (GPRs) de 32 bits; el valor de R0 es siempre 0. Por otra parte, existe un conjunto de 32 registros en coma flotante (FPRs), los cuales pueden ser usados como registros de simple precisión (32 bits) o en parejas par-impar almacenando valores de doble precisión (64 bits). La memoria es direccionable por bytes, en modo “Big Endian” y con direcciones de 32 bits. Existen cuatro tipos de instrucciones: • Cargas y almacenamientos. • Operaciones sobre la unidad aritmético lógica. • Bifurcaciones (diviones) y saltos. • Operaciones en coma flotante. Influencia de los compiladores de lenguajes de alto nivel Las prestaciones de los actuales computadores al ejecutar un programa dependen significativamente del compilador que se utilice. Cuando se diseña el repertorio de instrucciones se tiene en mente en todo momento la tecnología de diseño de compiladores. Las decisionesarquitectónicas afectan directamente a la complejidad de diseño de un buen compilador Un compilador consta de una serie de etapas, las cuales transforman representaciones abstractas de alto nivel, en representaciones de más bajo nivel, hasta llegar al repertorio de instrucciones. Un compilador busca en primer lugar la exactitud de la traducción (mantenimiento de la semántica del programa en la transformación), en segundo lugar, la velocidad del código generado, en tercer lugar, el tamaño del código, en cuarto lugar la velocidad del compilador, y en quinto lugar el soporte a la depuración. Desde el punto de vista del rendimiento que ahora nos ocupa, la velocidad del código generado es el factor a optimizar Las optimizaciones realizadas por los compiladores modernos podemos resumirlas en las siguientes: Optimización de alto nivel: realizadas en el código fuente • Integración de procedimientos: sustituye la llamada a un procedimiento por el cuerpo de éste (expansión de macros). • Optimizaciones locales: afectan a fragmentos de código lineal (sin bifurcaciones) • Eliminación de sub-expresiones comunes • Reducción del tamaño de la pila en la evaluación de expresiones reorganizando su estructura • Optimizaciones globales: afectan al programa completo, son más complejas de implementar. • Optimización de bucles • Eliminación de sub-expresiones comunes de alcance global (incluyendo saltos) • Propagación de copias: sustituye todas las instancias de una variable asignada. • Optimización del uso de registros: es una de las que reporta mayor incremento de rendimiento. • Optimizaciones dependientes de la máquina: Aprovechan el conocimiento de las arquitecturas específicas. Ejemplos de lenguajes alto nivel: Fuentes: José Antonio Castillo. (2018). Qué es un procesador y cómo funciona. 09/11/2020, de profesionalreview. Sitio web: https://www.profesionalreview.com/2018/10/30/que-es-un-procesador/ unknown. (2013). Patrones de medida (Benchmarks). 09/11/2020, de tareasuniversitarias Sitio web: https://tareasuniversitarias.com/patrones-de-medida-benchmarks.html Fuente: Estructura de Computadores, Facultad de Informática, UCM https://www.ucm.es/ consultado: 09/11/2020 unknown. (2013). Influencia en el rendimiento de las alternativas de diseño 09/11/2020, de tareasuniversitarias Sitio web: https://tareasuniversitarias.com/influencia-en-el-rendimiento-de-las- alternativas-de-diseno.html https://www.cartagena99.com/recursos/alumnos/apuntes/INF_EST_COM_U6_R1_T_PDF.pdf https://www.ucm.es/ https://tareasuniversitarias.com/influencia-en-el-rendimiento-de-las-alternativas-de-diseno.html https://tareasuniversitarias.com/influencia-en-el-rendimiento-de-las-alternativas-de-diseno.html
Compartir