Está en la página 1de 44

Facultad de Ciencias de la Administración

Licenciatura en Sistemas

Arquitectura de computadoras

Mg. Marcelo Alberto Colombani


marcelo.colombani@uner.edu.ar
UNIDAD Nº 1
•Arquitectura y Organización de Computadoras.

•Introducción a la arquitectura de computadores arquitectura


Von Neumann y no Von Neumann

• Definiciones de rendimiento del computador.

• Medidas de rendimiento. Tiempo de CPU y rendimiento.


El speed-up y la ley de Amdahl. Otras medidas.
Introducción

Hagamos memoria…

¿Cómo funciona una computadora?

¿Cuáles son sus partes?

¿Qué es la CPU?
Organización versus Arquitectura

Organización de computadoras se refiere a las unidades


funcionales y sus interconexiones, que materializan las
especificaciones de la arquitectura.
Son los detalles de hardware transparentes al programador.

Ejemplo: Señales de control.


Interfaces computador-periféricos.
Tecnología de memoria.

Un ejemplo de decisión de organización podría responder


la pregunta ¿la instrucción de multiplicación la aportará una
unidad funcional especializada o se realizará iterativamente
en la unidad de sumas?.
Organización versus Arquitectura
Arquitectura se refiere a los atributos de un sistema
computacional que son visibles a un programador, es decir,
atributos que tienen un impacto directo en la generación
lógica de un programa.

Ejemplo: Conjunto de instrucciones de máquina.


Tamaño de tipos de datos básicos (en bits).
Mecanismos de E/S.
Técnicas de direccionamiento.

Un ejemplo de decisión arquitectónica podría responder la


pregunta
¿el sistema tendrá instrucción de multiplicar?.
Funcionamiento y estructura
Una computadora es un sistema complejo.
La manera de analizar un sistema complejo es por medio de
una organización jerárquica.

De cada nivel se puede analizar la estructura y el


funcionamiento.

Estructura: el modo en que los componentes están


interrelacionados.

Funcionamiento: la operación de cada componente


individual como parte de la estructura.
Funcionamiento y estructura
Las funciones básicas que una computadora puede llevar a
cabo:

•Procesamiento de datos
•Almacenamiento de datos
•Transferencia de datos
•Control

Los cuatro componentes estructurales principales son:

•Unidad Central de Proceso


•Memoria Principal
•Entradas y Salidas
•Sistema de interconexión.
Funcionamiento y estructura
Evolución
J. Presper Eckert / John Mauchly (1943-1946) construyeron
el primer computador de propósito general en el mundo, el
ENIAC (Electronic Numerical Integrator and Calculator),
tenía 20 registros de 10 dígitos cada uno y fue fabricado
usando 18.000 tubos de vacío. Con un peso de 30
toneladas. Procesaba 5000 sumas/seg.

La programación se hacia manualmente conectando cables


y pulsando interruptores.

El ENIAC era una máquina decimal y no digital, los datos se


suministraban en tarjetas perforadas.
Evolución
La máquina de Von Neumann
La tarea de cargar y modificar programas para el ENIAC era
extremadamente tediosa.
El proceso de programación podría ser más fácil si el
programa se representara en una forma adecuada para ser
guardado en la memoria junto con los datos.

Entonces, un computador podría conseguir sus instrucciones


leyéndolas de la memoria, y se podría hacer o modificar un
programa escribiendo en una zona de memoria.
Esta idea fue conocida como concepto de programa
almacenado.
La idea fue también desarrollada aproximadamente al mismo
tiempo por Turing.
Computadoras Comerciales
En 1947 Eckert y Mauchly formaron la Eckert y Mauchly
Computer Corporation, su primera máquina, el UNIVAC, fue
liberada en 1951 y fue adquirida en $250.000 por
Remington-Rand y fue el primer computador comercial (se
vendieron 48 máquinas).

El primer IBM se vendió en 1952, se trata del IBM 701, del


cual se vendieron 19 unidades.

Son muchos más los grandes logros obtenidos en


computación, el anterior es apenas un breve resumen.
Arquitectura Von Neumann
En 1946, von Neumann y sus colegas empezaron, en el
Instituto para Estudios Avanzados de Princeton el diseño de
un nuevo computador de programa almacenado, que
llamaron IAS. El computador IAS, no completado hasta
1952, es el prototipo de toda una subsecuencia de
computadores de uso general.
Arquitectura Von Neumann
•Una memoria principal que almacena tanto datos como
instrucciones.

•Una unidad aritmético - lógica (ALU) capaz de hacer


operaciones con datos binarios.

•Una unidad de control que interpreta las instrucciones en


memoria y provoca su ejecución.

•Un equipo de entrada salida (E/S) dirigido por la unidad de


control.
Evolución
Generación Fechas Tecnología
1 1950 - 1959 Tubos al vacío
2 1960 - 1968 Transistores
3 1969 - 1977 Circuito integrado
4 1978 - 199? LSI y VLSI
5 199? - hoy ¿Procesamiento Paralelo?
Arquitectura no Von Neumann
El término Arquitectura Harvard hace referencia a las
arquitecturas de computadoras que utilizan dispositivos de
almacenamiento físicamente separados para las
instrucciones y para los datos.

El término proviene de la computadora Harvard Mark I, que


almacenaba las instrucciones en cintas perforadas y los
datos en interruptores.
Arquitectura no Von Neumann
• La memoria de programa y la memoria de datos
constituyen dos espacios de Memoria separados.

• El acceso a cada espacio de memoria puede llegar a ser


mediante buses distintos, es decir, puede haber dos buses
de direcciones, un bus de datos y un bus de instrucciones).

• Lo más habitual es que exista un único bus de direcciones,


en cuyo caso debe existir alguna señal de control que
permita diferenciar a que espacio de memoria se hace
referencia (por ejemplo, señales de READ, WRITE y
FETCH).
Arquitectura no Von Neumann
Arquitectura no Von Neumann
Ventajas:

•El tamaño de las instrucciones no esta relacionado con el


de los datos, y por lo tanto puede ser optimizado para que
cualquier instrucción ocupe una sola posición de memoria de
programa, logrando así mayor velocidad y menor longitud de
programa.

•El tiempo de acceso a las instrucciones puede


superponerse con el de los datos, logrando una mayor
velocidad en cada operación.
Arquitectura no Von Neumann
Desventajas:

•Una pequeña desventaja de los procesadores con


arquitectura Harvard, es que deben poseer instrucciones
especiales para acceder a tablas de valores constantes que
pueda ser necesario incluir en los programas, ya que estas
tablas se encontraran físicamente en la memoria de
programa.
FUNDAMENTOS DEL DISEÑO DE
COMPUTADORAS
Definición de Rendimiento
Cuándo decimos que un computador es más rápido que
otro, ¿Qué es lo que realmente significa rendimiento?.

• Un usuario podrá decir que una computadora es más rápido


cuando un programa se ejecuta en menos tiempo.

El usuario está interesado en reducir el tiempo de respuesta, o


aumentar la velocidad, es decir, el tiempo entre el inicio y el final
de un evento (tiempo de ejecución o tiempo de respuesta).
FUNDAMENTOS DEL DISEÑO DE
COMPUTADORAS
Definición de Rendimiento
Cuándo decimos que un computador es más rápido que
otro, ¿Qué es lo que realmente significa rendimiento?.

• Mientras que el administrador de un centro de procesamiento de


datos puede afirmar que una computadora es más rápido cuando
éste completa más trabajos en una hora.

El administrador, por su parte, puede estar interesado en


incrementar el productividad (Throughput), esto es, la cantidad de
trabajo realizada en un cierto tiempo.
Tiempo de Ejecución
Cuando se comparan alternativas de diseño, con frecuencia
queremos relacionar el rendimiento de dos maquinas.

Supongamos que tenemos dos máquinas X e Y, la frase “X es más


rápida que Y” es usada para implicar que el tiempo de ejecución de
X es menor que el de Y en una tarea.

Tiempo de ejecución Y n
=1+
Tiempo de ejecución x 100

En particular “X es n por 100 más rápida que Y”

tiempo de ejecución y −Tiempo de ejecución x


n=100⋅
(
tiempo de ejecución x )
Tiempo de Ejecución

Teniendo en cuenta la aceleración:

decimos la maquina X es Ac veces más rápida que la maquina Y.

Tiempo de ejecuciónY
Aceleración=
Tiempo de ejecución x
Tiempo de Ejecución
Si la maquina Y ejecuta un programa en 20 segundos y la maquina
X ejecuta el mismo programa en 10 segundos.

tiempo de ejecución y −Tiempo de ejecución x


n=100⋅
(
tiempo de ejecución x )
La maquina X es 100 % más rápida.

Tiempo de ejecuciónY
Aceleración=
Tiempo de ejecución x

La maquina X es 2 veces más rápida.


Ya que el tiempo de ejecución es el recíproco del rendimiento, se
puede establecer la siguiente relación:
1
n Tiempo de ejecución Y Re n dim iento y Re n dim iento x
1+ = = =
100 Tiempo de ejecución x 1 Re n dim iento y
Re n dim iento x
Rendimiento de la maquina mas rápida menos el rendimiento de la
maquina mas lenta, dividido el rendimiento de la maquina mas lenta,
por 100.
Rendimiento x −Rendimiento y
n=100⋅
(
Rendimiento y )
Tiempo de la maquina mas lenta menos el tiempo de la maquina
mas rápida, dividido el tiempo de la maquina mas rápida, por 100.

tiempo de ejecución y −Tiempo de ejecución x


n=100⋅
(
tiempo de ejecución x )
1
n Tiempo de ejecución Y Re n dim iento y Re n dim iento x
1+ = = =
100 Tiempo de ejecución x 1 Re n dim iento y
Re n dim iento x

Rendimiento de la maquina mas rápida menos el rendimiento de la


maquina mas lenta, dividido el rendimiento de la maquina mas lenta,
por 100.
Rendimiento x −Rendimiento y
n=100⋅
(
Rendimiento y )
Tiempo de la maquina mas lenta menos el tiempo de la maquina
mas rápida, dividido el tiempo de la maquina mas rápida, por 100.

tiempo de ejecución y −Tiempo de ejecución x


n=100⋅
(
tiempo de ejecución x )
Acelerar el caso común

La Ley de Amdahl puede ser utilizada para cuantificar el aumento


de rendimiento al hacer el caso más frecuente más rápido.

Define la ganancia de rendimiento o aceleración (speedup) que


puede lograrse al utilizar una característica particular.

Rendimiento de la tarea completa utilizando la mejora cuando sea posible


speedup=
Rendimiento de la tarea completa sin utilizar la mejora

Tiempo de ejecución de la tarea sin utilizar la mejora


speedup=
Timpo de ejecución de la tarea completa utilizando la mejora cuando sea posible
Acelerar el caso común
La ley de Amdahl entrega una rápida forma de calcular el Speedup
de la incorporación de un componente mejorado, lo que depende de
dos factores:

Fracción mejorada = es la fracción del tiempo de computación en


la máquina original que puede ser convertida para tomar ventaja del
componente mejorado.

Speedup mejorado o Aceleración mejorado = El beneficio


obtenido por el modo de ejecución mejorado (con nuevo
componente); esto es, cuánto más rápido se ejecutaría la tarea si el
modo mejorado fuera usando en el programa completo.
Acelerar el caso común
La aceleración global es la relación de los tiempos de ejecución.

De esta manera podemos obtener el tiempo de ejecución nuevo:

fracción mejorada
[
Tiempo de ejecución nuevo=Tiempo de ejecuciónantiguo⋅ ( 1−fracción mejorada ) +
Aceleración mejorada ]
La aceleración lograda al incorporar la mejora.
Tiempo de ejecución antiguo 1
Aceleración global= =
Tiempo de ejecución nuevo fracción mejorada
[ (1−fracción mejorada )+ Aceleración
mejorada
]
Acelerar el caso común
Ejemplo

Se pretende incorporar una mejora en un equipo de cómputos que


hará que acceda 5 veces más rápido a la memoria.

Si el tiempo total de un programa es Ttotal = 60 segundos y el


tiempo que se utiliza el componente que será mejorado es Tiempo
mejorado = 20 segundos, entonces la fracción mejorada será
fracción mejorada=20/60=0,3333.
Acelerar el caso común
Teniendo en cuenta los valores anteriores:
Podemos decir que incorporamos una mejora que hace que la
memoria lea 5 veces más rápido y esta mejora se utiliza un 33,33 %
del tiempo.

fracción mejorada = 20/60 = 0,3333…


Aceleración mejorado = 5

0,3333
Tiempo de ejecución [
nuevo =60⋅ ( 1−0 , 3333 ) +
5 ]
Esto quiere decir que con la mejora incorporada el programa ahora
se ejecutará en 44,0016 segundos.
Acelerar el caso común
Ahora podemos calcular la aceleración si conocemos el tiempo
nuevo.

Tiempo de ejecución antiguo 60


Aceleración global = =
Tiempo de ejecución nuevo 44 , 0016

1
Aceleración global = =1,36
0,3333
[ ( 1−0 , 3333 ) +
5 ]
Una interpretación de esto es que cuando en la maquina sin la
mejora ejecutamos una vez el programa, en la maquina con la
mejora ejecutaremos 1 vez más una proporción de un tercio (36%)
de otro programa.
Acelerar el caso común
Una interpretación de esto es que cuando en la maquina sin la
mejora ejecutamos una vez el programa, en la maquina con la
mejora ejecutaremos 1 vez más una proporción de un tercio (36%)
de otro programa.

Tiempo total sin la mejora 60 segundos

Fracción que no se mejora 40/60 Fracción que se mejora 20/60

Tiempo 40 segundos Tiempo 20 segundos

Tiempo 40 segundos Tiempo 4,0016 segundos


Tiempo de ciclo y frecuencia
Un procesador está sincronizado por un reloj con una frecuencia
constante llamado ticks, clock rate, ciclo o ciclo de reloj.

Los diseñadores de computadores se refieren al tiempo de un ciclo


de reloj por su duración (por ejemplo 2 ns (nanosegundos)) o por su
frecuencia (por ejemplo 500 Mhz).
Para calcular la frecuencia de un suceso, se
contabilizan un número de ocurrencias de
éste, teniendo en cuenta un intervalo
temporal, y luego estas repeticiones se
dividen por el tiempo transcurrido.

Si un aparto genera 4 ocurrencias en 1


segundo, quiere decir que tiene un tiempo de
ciclo de =>
• T = 1 / 4 = 0,25 segundos.

Ahora visto de manera contraria si sabemos


que el tiempo de ciclo es de 0,25 segundo,
tendremos una frecuencia de =>
• F = 1 / 0,25 = 4 Hz (veces)

Fuente: https://es.wikipedia.org/wiki/Frecuencia
La Ecuación de Rendimiento de la CPU

El tiempo de ejecución para un programa puede ser expresado por:

Tiempo de CPU=Ciclos de reloj de CPU para un programa⋅Duración del ciclo de reloj

Ciclos de reloj de CPU para un programa


Tiempo de CPU=
Frecuencia de reloj
La Ecuación de Rendimiento de la CPU

Tenemos que poder definir que es ciclos de CPU para un programa.

Cada instrucción puede utilizar un ciclo o más, si tenemos en cuenta


todas las instrucciones individualmente cada una puede utilizar
diferente cantidad de ciclos.

Si contabilizamos todos los ciclos de cada una de las instrucciones


obtendremos el total de ciclos.
CPI
Número de ciclos de reloj por instrucción – Clock Cycles Per
Instruction (CPI)

Ciclo de reloj de CPU para un programa


CPI=
Recuento de instrucciones

Ciclo de reloj de CPU para un programa =CPI⋅Recuento de instrucciones


La Ecuación de Rendimiento de la CPU
Tiempo de CPU=Ciclos de reloj de CPU para un programa⋅Duración del ciclo de reloj

Ciclos de reloj de CPU para un programa


Tiempo de CPU=
Frecuencia de reloj
De la formula de Tiempo de CPU visto antes:

Tiempo de CPU =CPI⋅Recuento de instrucciones⋅ Duración del ciclo de reloj

CPI⋅Recuento de instrucciones
Tiempo de CPU =
Frecuencia de reloj
La Ecuación de Rendimiento de la CPU
Las fórmulas anteriores demuestran que el rendimiento de la
CPU depende de tres características:
•el ciclo de reloj (o tasa)
•los ciclos de reloj por instrucción (CPI)
•el IC o recuento de instrucciones.

- tiempo del ciclo de reloj: tecnología hardware y organización

- CPI: organización y arquitectura del conjunto (set) de


instrucciones

- IC o Recuento de instrucciones: arquitectura del set de


instrucciones y compiladores
CPI Global
n
∑ (CPIi⋅I i )
i=1
CPI=
Recuento de instrucciones

Donde Ii representa el número de veces que la instrucción i


es ejecutada en un programa y CPIi representa el número
medio de ciclos de reloj para la instrucción i.

n
Ii
CPI= ∑ (CPIi⋅ )
i=1 Recuento de instrucciones
MIPS
Los MIPS expresa millones de instrucciones por segundo y
queda expresado como sigue:

Recuento de instrucciones Frecuencia de reloj


MIPS= 6
=
Tiempo de ejecución⋅10 CPI⋅106

Los MIPS son dependiente del repertorio de instrucciones.


Los MIPS varían entre programas en el mismo computador.

Máquinas mas rápidas tendrán una mayor frecuencia de


MIPS.
MFLOPS

Los MFLOPS (megaflops): millones de operaciones de punto


flotante por segundo.

Número de operaciones de punto flotante de un programa


MFLOP=
Tiempo de ejecución⋅10 6

Claramente los MFLOPS son dependientes de la máquina y


del programa.
Bibliografía
John L. Hennessy y David A. Patterson,
ARQUITECTURA DE COMPUTADORES, Un
enfoque cuantitativo, Editorial Mc Graw Hill, (1993).
Cap. 1 y 2.

 Murdoca, Miles J.; Heuring, Vincent P.


Principios de Arquitectura de Computadoras, 1ra.
edición. Buenos Aires, Editorial Pearson Education,
2002.

 Stallings, William.
Organización y Arquitectura de Computadores, 5ta.
Edición. Madrid, Editorial Prentice Hall, 2000.

También podría gustarte