16
Arquitectura de Computadoras 1. Introducción Santiago E. Felipe/UTM-2019 1 Arquitectura de Computadoras 1. Introducción 1.1 Organización vs. Arquitectura La arquitectura de computadoras se refiere a aquellos atributos que se establecen durante el diseño de una computadora y que quedan visibles al programador, o dicho de otra manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa. La organización de computadoras se refiere a las unidades operativas y sus interconexiones que realizan las especificaciones arquitectónicas. Los atributos arquitectónicos incluyen el conjunto de instrucciones, modos de direccionamiento, el número de bits utilizados para representar los diferentes tipos de datos (por ej. números, caracteres, etc.), mecanismos de E/S y técnicas para direccionar memoria. Los atributos organizacionales incluyen aquellos detalles de hardware transparentes para el programador, como las señales de control; interfaces entre la computadora y los periféricos; y la tecnología de memoria utilizada. Por ejemplo, un problema de diseño arquitectónico consiste en determinar si una computadora tendrá o no una instrucción de multiplicación. El problema de organización es determinar si esa instrucción se implementa por una unidad de multiplicación especial o por un mecanismo que haga uso repetido de la unidad de suma del sistema. La decisión de organización se puede basar en la frecuencia prevista de uso de la instrucción de multiplicación, la velocidad relativa de los dos enfoques y el costo y el tamaño físico de una unidad de multiplicación especial. La distinción entre arquitectura y organización es muy importante. Muchos fabricantes de computadoras ofrecen familias de modelos de computadoras (o microcontroladores), todos con la misma arquitectura pero con diferencias en la organización. En consecuencia, los modelos de la familia tienen diferentes características de precio y rendimiento. Además, una arquitectura particular puede establecerse por muchos años y abarcar varios modelos de computadora diferentes, mientras que su organización cambia adaptándose a las nuevas tecnologías. 1.2 La Computadora: Punto de vista funcional y estructural. Una computadora es un sistema complejo; las computadoras contemporáneas contienen millones de componentes electrónicos elementales. Entonces, ¿Cómo se pueden describir

Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 1

Arquitectura de Computadoras

1. Introducción

1.1 Organización vs. Arquitectura

La arquitectura de computadoras se refiere a aquellos atributos que se establecen durante

el diseño de una computadora y que quedan visibles al programador, o dicho de otra

manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un

programa.

La organización de computadoras se refiere a las unidades operativas y sus

interconexiones que realizan las especificaciones arquitectónicas.

Los atributos arquitectónicos incluyen el conjunto de instrucciones, modos de

direccionamiento, el número de bits utilizados para representar los diferentes tipos de datos

(por ej. números, caracteres, etc.), mecanismos de E/S y técnicas para direccionar memoria.

Los atributos organizacionales incluyen aquellos detalles de hardware transparentes para

el programador, como las señales de control; interfaces entre la computadora y los

periféricos; y la tecnología de memoria utilizada.

Por ejemplo, un problema de diseño arquitectónico consiste en determinar si una

computadora tendrá o no una instrucción de multiplicación. El problema de organización

es determinar si esa instrucción se implementa por una unidad de multiplicación especial o

por un mecanismo que haga uso repetido de la unidad de suma del sistema.

La decisión de organización se puede basar en la frecuencia prevista de uso de la

instrucción de multiplicación, la velocidad relativa de los dos enfoques y el costo y el

tamaño físico de una unidad de multiplicación especial.

La distinción entre arquitectura y organización es muy importante. Muchos fabricantes de

computadoras ofrecen familias de modelos de computadoras (o microcontroladores), todos

con la misma arquitectura pero con diferencias en la organización. En consecuencia, los

modelos de la familia tienen diferentes características de precio y rendimiento.

Además, una arquitectura particular puede establecerse por muchos años y abarcar varios

modelos de computadora diferentes, mientras que su organización cambia adaptándose a las

nuevas tecnologías.

1.2 La Computadora: Punto de vista funcional y estructural.

Una computadora es un sistema complejo; las computadoras contemporáneas contienen

millones de componentes electrónicos elementales. Entonces, ¿Cómo se pueden describir

Page 2: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 2

claramente? La clave es reconocer la naturaleza jerárquica de los sistemas complejos,

incluida la computadora.

Un sistema jerárquico es un conjunto de subsistemas interrelacionados, cada uno de los

cuales, a su vez, tiene una estructura jerárquica hasta alcanzar el nivel más bajo de

subsistema elemental.

La naturaleza jerárquica de los sistemas complejos es esencial tanto para su diseño como

para su descripción. El diseñador solo necesita tratar con un nivel particular del sistema a la

vez. En cada nivel, el sistema consta de un conjunto de componentes y sus interrelaciones.

El comportamiento en cada nivel depende de la caracterización simplificada y abstracta del

sistema en el nivel inferior inmediato. En cada nivel, el diseñador se preocupa por la

estructura y la función:

• Estructura: la forma en que los componentes están interrelacionados.

• Función: la operación de cada componente individual como parte de la estructura.

Punto de vista funcional.

Una computadora puede realizar, en términos generales, solo cuatro funciones básicas:

• Procesamiento de datos

• Almacenamiento de datos

• Transferencia de datos

• Control

Figure 1.1 Una vista funcional de la computadora

Page 3: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 3

Procesamiento de datos: Los datos pueden adoptar una variedad muy amplia de formas y

el rango de requisitos de procesamiento es extenso. Sin embargo, son pocos los métodos o

tipos fundamentales de procesamiento de datos.

Almacenamiento de datos: También es esencial que una computadora almacene datos.

Incluso si la computadora está procesando datos sobre la marcha (es decir, los datos entran,

se procesan y los resultados salen inmediatamente), la computadora debe almacenar esos

datos temporalmente, al menos en los que se esté trabajando en un momento dado. Por lo

tanto, existe al menos una función de almacenamiento de datos a corto plazo. Igualmente

importante, la computadora realiza una función de almacenamiento de datos a largo plazo.

Los archivos de datos se almacenan en la computadora para su posterior recuperación y

actualización.

Movimiento de datos: La computadora debe poder mover datos entre ella y el mundo

exterior. El entorno operativo de la computadora consta de dispositivos que sirven como

fuentes o destinos de datos. Cuando se reciben o entregan datos de un dispositivo que está

directamente conectado a la computadora, el proceso se conoce como entrada-salida (E/S) y

el dispositivo se conoce como periférico. Cuando los datos se mueven a distancias más

largas, hacia o desde un dispositivo remoto, el proceso se conoce como comunicaciones de

datos.

Control: Finalmente, debe haber control de estas tres funciones. En última instancia, este

control lo ejercen las personas que proporcionan instrucciones a la computadora. Dentro de

la computadora, una unidad de control administra sus recursos y organiza el desempeño de

sus partes funcionales en respuesta a esas instrucciones.

La figura 1.2 muestra los cuatro tipos posibles de operaciones.

(a) Transferencia de datos (b) Almacenamiento

Page 4: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 4

(c) Procesamiento desde/hacia almacenamiento (d) Procesamiento desde almacenamiento hasta E/S

Figure 1.2 Posibles operaciones de una computadora

La Computadora: Punto de vista estructural.

En términos de descripción, tenemos dos opciones: comenzar desde abajo y construir hasta

una descripción completa, o comenzar con una vista superior y descomponer el sistema en

subpartes. La experiencia de varios campos sugiere que el enfoque de arriba hacia abajo es

el más claro y efectivo.

La figura 1.3 es la representación más simple posible de una computadora. La computadora

interactúa de alguna manera con su ambiente externo. En general, todos los medios para

interactuar con su entorno se pueden clasificar en dispositivos periféricos o líneas de

comunicación.

Figure 1.3 La computadora

Per

iféric

os

Líneas de C

omunicación

COMPUTADORA

ALMACENAMIENTOPROCESAMIENTO

Page 5: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 5

La estructura interna de la computadora se muestra en la Figura 1.4. Hay cuatro

componentes estructurales principales:

• Unidad central de procesamiento (CPU): Controla el funcionamiento de la

computadora y realiza sus funciones de procesamiento de datos; a menudo simplemente

se conoce como procesador.

• Memoria principal: Almacena datos.

• E/S: Mueve los datos entre la computadora y su entorno externo.

• Interconexión del sistema: Algún mecanismo que permite la comunicación entre la

CPU, la memoria principal y las E/S. La interconexión generalmente se realiza por

medio de un bus del sistema, que consta de varios cables conductores a los que se unen

todos los demás componentes.

Puede haber uno o más de cada uno de los componentes mencionados anteriormente.

Inicialmente había un único procesador, aunque en los últimos años, ha habido un uso

creciente de múltiples procesadores en una sola computadora.

El componente más interesante y, en algunos aspectos, el más complejo es la CPU. Sus

principales componentes estructurales son los siguientes:

• Unidad de control: Controla el funcionamiento de la CPU y, por lo tanto, de la

computadora.

• Unidad aritmética y lógica (ALU): Realiza las funciones de procesamiento de datos

de la computadora.

• Registros: proporciona almacenamiento interno a la CPU.

• Interconexión de la CPU: Todos los mecanismos que permiten la comunicación entre

la unidad de control, la ALU y los registros.

Finalmente, hay varios enfoques para la implementación de la unidad de control; un

enfoque común es una implementación micro-programada. En esencia, una unidad de

control micro-programada funciona ejecutando micro-instrucciones que definen la

funcionalidad de la unidad de control.

Page 6: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 6

Figure 1.4 Estructura interna de la computadora

Interconexióndel sistema

E/S

Unidad central de

procesamiento

MemoriaPrincipal

COMPUTADORA

Periféricos

Líneas decomunicación

COMPUTADORA

Bus delsistema

Memoria

CPU

E/S

Interconexióninterna de la

CPU

Unidad deControl

RegistrosUnidad

aritmético

lógica

UNIDAD CENTRAL DEPROCESAMIENTO

Businterno

CPU

Registros

UNIDAD DE CONTROL

Unidadde

Control

ALU

Decodificación ycontrol de

registrosLógica

Secuencial

Control delacceso amemoria

Page 7: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 7

Preguntas de repaso

1. ¿Cuál es, en términos generales, la distinción entre organización de computadoras y

arquitectura de computadoras?

2. ¿Cuál es, en términos generales, la distinción entre la estructura de la computadora

y la función de la computadora?

3. ¿Cuáles son las cuatro funciones principales de una computadora?

4. Enumerar y definir brevemente los principales componentes estructurales de una

computadora.

5. Enumere y defina brevemente los principales componentes estructurales de un

procesador.

1.3 Medidas del Rendimiento

¿Qué significa que una computadora sea mejor que otra? El usuario de una computadora

puede decir que es mejor cuando ejecuta un programa en menos tiempo, mientras que el

director de un centro de cálculo puede decir que una computadora es mejor si completa más

tareas en una hora.

El usuario de la computadora está interesado en reducir el tiempo de respuesta – el tiempo

transcurrido entre el comienzo y el final de un evento - denominado también tiempo de

ejecución o latencia.

El director del centro de cálculo está interesado en incrementar la productividad

(throughput) - la cantidad total de trabajo realizado en un tiempo determinado.

Ejemplo: Productividad y tiempo de respuesta.

Los siguientes cambios en un sistema de cómputo, ¿incrementan la productividad,

disminuyen el tiempo de respuesta, o ambas?

1. Reemplazar el procesador en una computadora con una versión más rápida.

2. Agregar un procesador a un sistema que utiliza múltiples procesadores para tareas

separadas – por ejemplo, el manejo de un sistema de reservaciones en una aerolínea.

Respuesta:

En el caso 1 se reduce el tiempo de respuesta y con ello es posible realizar más tareas en

menos tiempo, por lo tanto, también se puede mejorar la productividad.

En el caso 2, ninguna tarea se realizará de manera más rápida, de manera que solo se

incrementa la productividad. Sin embargo, si la demanda para el procesamiento es tan

Page 8: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 8

grande como para que el sistema requiera de una cola de tareas, también podría mejorar el

tiempo de respuesta, dado que reduciría el tiempo de espera en la cola.

Así, en muchos sistemas de cómputo reales, cambiar el tiempo de ejecución afecta a la

productividad y viceversa.

1.3.1 El tiempo de ejecución

El tiempo es la medida del rendimiento de la computadora: la computadora que realiza la

misma cantidad de trabajo en menos tiempo es la más rápida.

El tiempo de ejecución de un programa se mide en segundos por programa y es la latencia

para completar una tarea, incluyendo accesos a disco, accesos a memoria, actividades de

entrada/salida, gastos del sistema operativo - todo.

Actualmente las computadoras trabajan a tiempo compartido, por lo que se debe distinguir

entre el tiempo transcurrido y el tiempo en que el procesador está trabajando al servicio de

un programa.

Tiempo de Ejecución = Tiempo de CPU =

Tiempo de CPU de usuario + Tiempo de CPU de sistema

El tiempo de CPU de sistema es ignorado para propósitos de comparación porque:

• Es difícil conocerlo con precisión.

• Los programas de prueba se ejecutan sin alguna otra carga de trabajo

• Ningún programa corre sin sistema operativo.

• El rendimiento es una medida relativa.

Mejorar el rendimiento de un sistema para una tarea significa que se debe reducir el tiempo

de ejecución de esa tarea. De manera que:

����������� = 1���� ����������ó�

Se dice que una máquina A es n veces más rápida que una máquina B si:

������������������������ =���� ����������ó������ ����������ó�� = �

Pregunta: Si una máquina X invierte 10 segundos en un programa y una máquina Y

invierte 15 en el mismo programa, ¿Qué máquina es mejor y por cuánto?

Page 9: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 9

1.4.2 Tiempo de CPU

La CPU de una computadora se sincroniza con una señal de reloj que generalmente tiene

una frecuencia constante.

La señal de reloj puede ser descrita por la duración de cada ciclo de reloj o periodo (en

segundos) o por su frecuencia (ciclos por segundo, Hz).

El tiempo de CPU para un programa se puede expresar como:

���� ������ = #������ ����� ������� ∗ �������

O

���� ������ = #������ ����� ������������������������

¿Cómo mejorar el rendimiento?

i. Disminuyendo la duración del ciclo de reloj (aumentando la frecuencia).

ii. Disminuyendo el número de ciclos de reloj.

Ejercicio: Mejorando el Rendimiento.

Un programa X se ejecuta en 10 segundos en una máquina A que trabaja a 400 MHz. El

diseñador de hardware busca que el programa se ejecute en 6 segundos en una máquina B.

Se observa que al incrementar sustancialmente la frecuencia de reloj se afecta al resto de la

CPU, ocasionando que la máquina B requiera 1.2 veces la cantidad de ciclos de reloj que

utilizaba la máquina A para este programa.

¿Cuál sería la frecuencia de reloj de la máquina B?

1.4.3 Ciclos por Instrucción (CPI)

Además del número de ciclos de reloj para ejecutar un programa, también se puede contar

el número de instrucciones ejecutadas (IC, instruction count).

Si se conoce el número de ciclos de reloj y el recuento de instrucciones, es posible calcular

el número medio de ciclos de reloj por instrucción (CPI). Considerando el CPI para calcular

el tiempo de CPU se tiene:

���� ������ = � ∗ �� ∗ �������

Page 10: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 10

O

���� ������ = � ∗ �� ����������������� El rendimiento de una CPU depende de tres parámetros: Frecuencia, ciclos de reloj por

instrucción (CPI), y recuento de instrucciones (IC). No se puede cambiar sólo uno sin

afectar a los demás, es decir, las tecnologías básicas involucradas son interdependientes.

Parámetro Dependencia

Frecuencia Organización y tecnología de HW

CPI Arquitectura y Organización

IC Compilador y Arquitectura

Ejercicio: Usando la ecuación del rendimiento.

Suponga que se tienen dos implementaciones de la misma arquitectura.

La máquina A tiene un tiempo de ciclo de 1 ns y un CPI de 2.0 para algún programa, y la

máquina B tiene un tiempo de ciclo de 2 ns y un CPI de 1.2 para el mismo programa.

¿Cuál máquina es más rápida para este programa y por cuánto?

Las CPU tienen diferentes clases de instrucciones y generalmente se requiere de una

cantidad de ciclos para cada clase, es decir, el CPI no es un parámetro constante sino que

depende de la distribución de instrucciones en un programa.

Por ello, el número total de ciclos de reloj de la CPU se puede calcular como:

#������ ����� ������� = ∑ �� " ∗ �"#"$%

Donde ICi representa el número de veces que se ejecuta alguna clase de instrucción i en un

programa y CPIi representa el número de ciclos de reloj para las instrucciones de clase i.

El tiempo de CPU se puede expresar como:

���� ������ = &'�� " ∗ �"#

"$%( ∗ �������

El CPI medio o global se obtiene como:

�� = ∑ �� " ∗ �"#"$% � = '�� " ∗#

"$%) �" � *

Page 11: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 11

El CPI depende de la distribución de instrucciones de un programa.

Para resultados más reales, el CPIi debería medirse, y no obtenerse de la tabla del manual

de referencia, ya que debe incluir fallos de caché y demás ineficiencias del sistema de

memoria.

Ejercicio: Comparando secuencias de código.

Un diseñador de compiladores debe decidir entre dos secuencias de código para una

máquina particular. El diseñador de hardware le ha informado los siguientes hechos:

Clase de instrucción Ciclos de reloj

A 1

B 2

C 3

Para una expresión de alto nivel, el escritor del compilador está considerando dos

secuencias que requieren las siguientes instrucciones:

Secuencia 1: 2 instrucciones de la Clase A, 1 de la clase B y 2 de la clase C.

Secuencia 2: 4 instrucciones de la Clase A, 1 de la clase B y 1 de la clase C.

¿Cuál secuencia ejecuta más instrucciones? ¿Cuál será más rápida? ¿Cuál es el CPI para

cada secuencia?

1.4.4 MIPS y errores de utilización

MIPS significa millones de instrucciones por segundo y es una métrica fácil de

comprender: un número grande de MIPS significa un mejor rendimiento.

Los MIPS se definen como:

+ �, = ����� ����������ó� ∗ 10. = ������������ ∗ 10.

A partir del valor de MIPS puede obtenerse el tiempo de ejecución:

���� ����������ó� = �+ �, ∗ 10. La relación inversa entre MIPS y tiempo de ejecución pareciera indicar que los MIPS son

una métrica válida para el rendimiento, sin embargo, debe considerarse lo siguiente:

Page 12: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 12

• Los MIPS dependen de IC, lo cual hace difícil la comparación de computadoras con

diferentes repertorios de instrucciones.

• Los MIPS varían entre programas en la misma computadora.

• Los MIPS pueden variar inversamente al rendimiento.

Ejemplo clásico: Para un problema con operaciones en punto flotante, se tiene un programa

A que habilita un hardware dedicado contra otro programa B que se basa en rutinas que

utilizan enteros. ¿Cuál es más rápido? ¿Qué indica la métrica MIPS?

También se pueden presentar anomalías cuando un compilador optimiza el código a

ejecutar y elimina instrucciones con el menor CPI, haciendo que el CPI global aumente.

Ejercicio: Error en la aplicación de MIPS.

Para un programa X, un compilador generó la siguiente distribución de Instrucciones:

Instrucción Porcentaje CPI

Operaciones de la ALU 44 % 1

Saltos 16 % 2

Almacenamientos 30 % 3

Cargas 10 % 4

El compilador se optimiza de manera que para el mismo programa se descarta el 50 % de

las operaciones de la ALU pero sin reducir cargas, almacenamientos y saltos.

Suponiendo una duración del ciclo de reloj de 2-ns (frecuencia de reloj 500-MHz) ¿Cuál es

la velocidad en MIPS del código optimizado y del código sin optimizar? ¿Están de acuerdo

los resultados en MIPS con los del tiempo de ejecución?

1.4.5 MFLOPS y errores de utilización

Otra alternativa popular al tiempo de ejecución son los millones de operaciones en punto

flotante por segundo, abreviadamente como MFLOPS pero pronunciado “megaflops”. La

fórmula de los MFLOPS es:

+�/0�, = #0 ���������������������������� ����������ó� ∗ 10. El término MFLOPS está basado en operaciones en lugar de instrucciones, buscando una

comparación objetiva entre máquinas diferentes. El mismo programa corriendo en

Page 13: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 13

computadoras diferentes debe ejecutar un número diferente de instrucciones, pero el mismo

número de operaciones en punto flotante.

Los MFLOPS se pensaron para medir el rendimiento en punto flotante por lo que la métrica

no es aplicable fuera de ese rango. Como ejemplo extremo, los compiladores tienen una

estimación de MFLOPS próxima a cero.

Debe notarse que la estimación en MFLOPS cambia en la mezcla de operaciones rápidas y

lentas, por ejemplo, un programa con el 100% de sumas en punto flotante tendrá una

estimación mayor que un programa con el 100% de divisiones en punto flotante.

1.4.6 Programas para evaluar el rendimiento

Un usuario de computadoras que ejecuta los mismos programas día tras día sería el

candidato perfecto para evaluar una nueva computadora.

Para evaluar un nuevo sistema simplemente compararía el tiempo de ejecución de su carga

habitual de trabajo (workload) - la mezcla de programas y órdenes del sistema operativo

que los usuarios ejecutan en una máquina.

Dado que pocas veces ocurre esta situación, los fabricantes de computadoras y equipo

relacionado se han organizado para dejar disponibles los resultados de aplicar un conjunto

de benchmarks, estos resultados se pueden consultar en el sitio:

http://www.spec.org

The Standard Performance Evaluation Corporation (SPEC) is a non-profit corporation

formed to establish, maintain and endorse standardized benchmarks and tools to evaluate

performance and energy efficiency for the newest generation of computing systems. SPEC

develops benchmark suites and also reviews and publishes submitted results from our

member organizations and other benchmark licensees.

1.4.7 Ley de Amdahl

Cuando se mejora una parte de un sistema, el rendimiento global del sistema va a mejorar,

esta aceleración del rendimiento depende de la fracción de tiempo en que se aplica la

mejora y del factor de mejora alcanzado.

El tiempo de ejecución después de aplicar una mejora es:

���� �#1234 =���� �5#6"714 ∗ 81 − ������ó�: +���� �5#6"714 ∗ ������ó���������+�����

Page 14: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 14

���� �#1234 =���� �5#6"714 ∗ )1 − ������ó� + ������ó���������+�����*

La ley de Amdahl permite cuantificar la aceleración global del rendimiento.

<��������ó�7=4>5= = ���� �5#6"714���� �#1234 = 1)1 − ������ó� + ������ó���������+�����*

Ejercicios

1. Si un programa que tarda 10 segundos invierte el 30 % de su tiempo en accesos a

memoria y se remplaza la memoria por otra que es el doble de rápida ¿Cuál será el

nuevo tiempo de ejecución? ¿Cuál es la aceleración global del sistema?

2. Se tiene una máquina en la cual se hicieron arreglos en hardware para alcanzar una

mejora que se ejecuta diez veces más rápida que la máquina original, pero sólo es

utilizable el 40% del tiempo. ¿Cuál es la aceleración global lograda al incorporar la

mejora?

3. Suppose that when Program A is running, the user CPU time is 3 seconds, the elapsed

wall-clock time is 4 seconds, and the system performance is 10 MFLOP/sec. Assume

that there are no other processes taking any significant amount of time, and the

computer is either doing calculations in the CPU or doing I/O, but it can't do both at the

same time. We now replace the processor with one that runs six times faster, but doesn't

affect the I/O speed. What will the user CPU time, the wall-clock time, and the

MFLOP/sec performance be now?

4. Consider two diff erent implementations of the same instruction set architecture. The

instructions can be divided into four classes according to their CPI (class A, B, C, and

D). P1 with a clock rate of 2.5 GHz and CPIs of 1, 2, 3, and 3, and P2 with a clock rate

of 3 GHz and CPIs of 2, 2, 2, and 2. Given a program with a dynamic instruction count

of 1.0E6 instructions divided into classes as follows: 10% class A, 20% class B, 50%

class C, and 20% class D,

a. What is the global CPI for each implementation?

b. Find the clock cycles required in both cases.

c. Which implementation is faster?

5. Compilers can have a profound impact on the performance of an application. Assume

that for a program, compiler A results in a dynamic instruction count of 1.0E9 and has

an execution time of 1.1 s, while compiler B results in a dynamic instruction count of

1.2E9 and an execution time of 1.5 s.

Page 15: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 15

a. Find the average CPI for each program given that the processor has a clock

cycle time of 1 ns.

b. Assume the compiled programs run on two different processors. If the execution

times on the two processors are the same, how much faster is the clock of the

processor running compiler A’s code versus the clock of the processor running

compiler B’s code?

c. A new compiler is developed that uses only 6.0E8 instructions and has an

average CPI of 1.1. What is the speedup of using this new compiler versus using

compiler A or B on the original processor?

TAREA

1. Se plantea comparar dos sistemas diferentes: S1 y S2. El sistema S1 cuesta 10, 000

dólares y el sistema S2 15, 000. Se han realizado las siguientes medidas sobre estos

sistemas:

Programa Tiempo en S1 Tiempo en S2

1 10 segundos 5 segundos

2 3 segundos 4 segundos

Una máquina es más efectiva en costo que otra si la relación: rendimiento/costo es mayor.

a. Un usuario sólo se interesa por el programa 1. ¿Qué máquina es más efectiva en costo

para correr sólo el programa 1? ¿En cuánto?

b. Otro usuario está preocupado por una carga de trabajo igual de los programas 1 y 2.

¿Qué sistema tiene mejor rendimiento para esa carga de trabajo? ¿En cuánto? ¿Qué

sistema es más efectivo en costo para esa carga de trabajo? ¿En cuánto?

Considere que en los dos sistemas y programas se hicieron las siguientes medidas

adicionales:

Programa Instrucciones en S1 Instrucciones en S2

1 20 x 106

16 x 106

c. Calcule la velocidad en MIPS para cada máquina cuando corre el programa 1.

d. Si la frecuencia de reloj del sistema S1 es 20 MHz y la del reloj del sistema S2 es 30

MHz, encuentre los ciclos de reloj por instrucción (CPI) para el programa 1 en ambos

sistemas, utilizando los datos de las dos tablas.

e. Suponiendo que el CPI para el programa 2 en cada máquina es igual al CPI del

programa 1 (calculado en el inciso d), encontrar el recuento de instrucciones para correr

el programa 2 en cada máquina (utilice los tiempos de la primer tabla).

Page 16: Arquitectura de Computadoras 1. Introducción 1fsantiag/ArqElectronica/1a_Unidad_2020A.pdf · La organización de computadoras se refiere a las unidades operativas y sus interconexiones

Arquitectura de Computadoras 1. Introducción

Santiago E. Felipe/UTM-2019 16

2. You are on the design team for a new processor. The clock of the processor runs at 200

MHz. The following table gives instruction frequencies for Benchmark B, as well as

how many cycles the instructions take, for the different classes of instructions. For this

problem, we assume that (unlike many of today's computers) the processor only

executes one instruction at a time.

Instruction Frequency Cycles

Loads & Stores 30 % 6 cycles

Arithmetic Instructions 50 % 4 cycles

All others 20 % 3 cycles

a. Calculate the CPI for Benchmark B.

b. The CPU execution time on the Benchmark B is exactly 11 seconds. What is the

“MIPS” processor speed for the benchmark?

c. The hardware expert says that if you double the number of registers, the cycle time

must be increased by 20%. What would the new clock speed be (in MHz)?

d. The compiler expert says that if you double the number of registers, then the compiler

will generate code that requires only half the number of Loads & Stores. What would

the new CPI be on the benchmark?

e. How many CPU seconds will the benchmark take if we double the number of registers

(taking into account both changes described above) ?

3. Consider three different processors P1, P2, and P3 executing the same instruction set.

P1 has a 3 GHz clock rate and a CPI of 1.5. P2 has a 2.5 GHz clock rate and a CPI of

1.0. P3 has a 4.0 GHz clock rate and has a CPI of 2.2.

a. Which processor has the highest performance expressed in instructions per

second?

b. If the processors each execute a program in 10 seconds, find the number of

cycles and the number of instructions.

c. We are trying to reduce the execution time by 30% but this leads to an increase

of 20% in the CPI. What clock rate should we have to get this time reduction?