Logo Studenta

investigacion 3 - Juan Lujan

¡Estudia con miles de materiales!

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

Continuar navegando