Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ARQUITECTURA DE COMPUTADORAS
Ing. Javier Barriga Hoyle
CAPTULO 1
Arquitectura de Computadoras - CPU
Contenido
3
1.
2.
3. 4. 5. 6. 7.
Introduccin Arquitecturas: John von Neumann y Harvard Perspectiva histrica Medidas de rendimiento de un procesador. Pipeline o Segmentacin de instrucciones. Clasificacin de los sistemas con Pipeline. Riesgos del Pipeline.
1. Introduccin
4
La Arquitectura de computadoras constituye el fundamento de los llamados sistemas de computacin. Las computadoras son sin duda el rea de mayor dinamismo e innovacin con un crecimiento espectacular desde sus inicios. Las computadoras han mejorado la sociedad y lo seguirn haciendo.
Ejemplo:
de instrucciones, nmero de bits usados para representar un dato, mecanismo E/S, etc Ej. Existe la instruccin de multiplicacin?
de control, interfaces, perifricos, etc. Ej. Est la multiplicacin implementada en hardware o sumas repetitivas?
Actualmente los fabricantes de computadoras ofrecen una familia de modelos, con similar arquitectura pero distinta organizacin.
La
arquitectura puede sobrevivir muchos aos. Ej. IBM Sistema/370, apareci en 1970 y con ligeras mejoras an se utiliza y se vende). INTEL con la familia 80x86. La organizacin influye en el precio y las prestaciones, debido a la implementacin de las distintas arquitecturas.
Caractersticas:
Concepto
de programa almacenado (ejecucion secuencial). La memoria principal almacena los datos y el programa (organizacin lineal - igual tamao). La ALU opera con datos binarios. La Unidad de Control decodifica las instrucciones y las ejecuta. Un equipo de entrada/salida (E/S), dirigido por la unidad de control.
MEMORIA PRINCIPAL BUS DE CONTROL INSTRUCCIONES + DATOS BUS DIRECCIONES BUS DATOS E INSTRUCCIONES
Jerarqua
solo tipo de instrucciones para acceder a memoria Un solo bus de datos y de direcciones
Mayor
til
MBR
Main Memory
IBR
PC MAR
Address
IR
Control Circuits
Buffer de Memoria (MBR). Registro de Direccin de Memoria (MAR). Registro de Instruccin (IR). Registro Buffer de Instruccin (IBR). Contador de Programa (PC). Acumulador y Multiplicador cociente (MQ).
La arquitectura Harvard se caracteriza por tener la memoria de datos separada de la memoria del programa y estas a su vez estn unidas a la CPU a travs de buses independientes.
CPU BUS DE CONTROL DIRECCIONES DE INSTRUCCIONES INSTRUCCIONES UNIDAD DE CONTROL UNIDAD OPERATIVA BUS DE CONTROL DIRECCIONES DE DATOS DATOS MEMORIA DE DATOS
MEMORIA DE INSTRUCCIONES
INSTRUCCIONES
DATOS
El trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. Ventajas de la arquitectura Harvard
Instrucciones
bits
con distinta tecnologa. Disminuy el cuello de botella en el acceso a memoria. Bastante usado en controladores embebidos.
3. Perspectiva histrica
14
uP 8088
C.I.
3. Perspectiva histrica
3. Perspectiva histrica
16
P 8088
Ao: 1980 Frec. = 10 MHz Transistores = 29000
P Core i7
Ao: 2010 Frec = 3.0 GHz Transistores = 500 millones
3. Perspectiva histrica
17
uP 8088
uP Core i7
3. Perspectiva histrica
18
19
Aplicacin
Ofimtica (MS-Office, Contaplus, D-Base) Comunicaciones (Netscape, Explorer, Mail) Diseo (AutoCAD, ...), Multimedia, Juegos, etc.
FOR, WHILE, REPEAT, PROCEDURE, ... PASCAL, FORTRAN, C, COBOL, BASIC, ... MODULA, C++, JAVA, ... Gestin de memoria Gestin de procesos Gestin de ficheros Compilacin Enlazado Ubicacin
Loop move load add sub beq #$10, R0 R1(dir1), R2 R2, R0 #1, R1 Loop
Lenguaje de alto nivel Sistema Operativo / Compilador Arquitectura del repertorio de instrucciones Organizacin Hardware del sistema Circuito Digital
Registros R0
R7
Registro Estado
Contador Programa
CPU
Fsico
4. Rendimiento: Introduccin
21
MIPS MFLOPS
MBytes/seg
Velocidad de reloj
4. Rendimiento: Introduccin
22
Por qu cierto hardware es mejor que otros para diferentes programas? Cul mquina tarda menos tiempo en ejecutar nuestras aplicaciones o programas?
4. Rendimiento: Introduccin
23
Cmo influye el juego de instrucciones de la mquina en el rendimiento? Si se cambia el procesador de una mquina por uno nuevo, qu se mejora?
Si una mquina A ejecuta un programa en 10 segundos y una mquina B ejecuta el mismo programa en 15 segundos, Cunto ms rpida es A respecto de B?
Productividad ( Throughput)
Cuntos
trabajos puede la mquina ejecutar al mismo tiempo? Cul es la velocidad promedio de ejecucin? Una mejor medida desde el punto de vista del sistema pero no desde el punto de vista del usuario.
tiempos de E/S, tiempos de acceso a memoria, tiempo de SO. Es til, pero depende de demasiados factores para poder ser usado eficientemente.
Tiempo de CPU:
No
considera el tiempo de E/S o el tiempo dedicado a otros programas. Se puede subdividir en: tiempo del sistema y tiempo del usuario.
Tiempo
de sistema: Utilizado por la CPU para ejecutar tareas del sistema operativo en beneficio del programa. Tiempo de usuario: Utilizado por la CPU para ejecutar un programa.
Conclusin:
Para
medir el rendimiento de un computador, podemos usar como una medida adecuada el Tiempo de CPU de usuario (de ahora en adelante Tiempo de CPU).
Periodo (T): tiempo que transcurre entre dos pulsos de reloj medido en seg. Frecuencia (F) de reloj: la inversa del periodo (o tiempo de ciclo), medido en Hz = s-1. Ejemplo 1: Si un computador funciona a la frecuencia de 500 MHz. Su periodo ser:
1 T 2 ns 6 500 10
(TiempoCPU) = (ciclos de reloj por programa) (periodo) = (ciclos de reloj por programa) / (frecuencia de reloj)
1 instr. 2 instr. 3 instr. 4
5
tiempo (ciclos)
Se puede asumir que el nmero de ciclos = nmero de instrucciones? NO: Ya que una instruccin no siempre tarda un ciclo de reloj en ejecutarse, adems diferentes instrucciones tardan diferentes cantidades de tiempo:
La
multiplicacin tarda ms ciclos que la suma. Operaciones en punto flotante tardan ms que operaciones en punto fijo.
4.4 Ejemplo
32
Un programa se ejecuta en 10 segundos en la computadora A, la cual tiene un reloj de 400 MHz. Un diseador necesita construir una mquina B que corra el mismo programa en 6 segundos. El diseador puede usar tecnologa ms nueva (o ms cara) para incrementar la frecuencia de reloj, pero este aumento afectara el resto del diseo del CPU, haciendo que la mquina B requiera 1.2 veces ms ciclos de reloj para ejecutar el mismo programa que en la mquina A. Qu frecuencia de reloj habra que utilizar para lograr el objetivo de diseo?
4.5 CPI
33
4.5 CPI
34
4.5 CPI
35
Conclusin:
De
4.5 CPI
36
De De
Tecnologa
Organizacin
instrucciones
rendimiento global de un computador se evala ejecutando distintos programas reales o los de simulacin como los benchmarks.
4.6 MIPS
37
MIPSNativos =
Problemas:
Los
4.6 MIPS
38
Problemas:
Depende
El
tiempo que tarda en ejecutarse una misma instruccin y el n de instrucciones mquina que genera el compilador puede variar de un repertorio a otro.
Los
Usan
4.7 MFLOPS
39
4.7 MFLOPS
40
Es
Los
programas enteros (sin operaciones en punto flotante) no pueden medirse en MFLOPS. Existen instrucciones en punto flotante de distinto tiempo de ejecucin.
Aceleracin (con E) =
5. Segmentacin (Pipeline)
42
UNICICLO
MULTICICLO
Procesador
5. Segmentacin (Pipeline)
43
Es posible utilizar estos recursos ociosos para reducir el CPI del procesador multiciclo?
Paralelismo
a nivel de instrucciones. Permitir que una instruccin se ejecute mientras an se est ejecutando otra.
Idea principal
Instrucciones
utilizan (idealmente) recursos distintos, en distintas etapas de su ejecucin. Entonces, es posible ejecutar mltiples instrucciones simultneamente.
5. Segmentacin (Pipeline)
44
Tcnica de segmentacin
En
cada ciclo, iniciar la ejecucin de una instruccin. Mltiples instrucciones en ejecucin, en distintas etapas. Es posible iniciar la ejecucin de una instruccin en cada ciclo de reloj. !CPI efectivo es 1! Ver figura 14
5. Segmentacin (Pipeline)
45
Tcnica de segmentacin
Instruccin i Instruccin i +1 Instruccin i +2 Instruccin i +3 Instruccin i +4 Instruccin i +5 0 1 2 3 4 5 6 7 8 9 10 11
Segmentacin de instrucciones.
Prediccin de ramificacin:
El
procesador se anticipa al software y predice que ramas, o grupos de instrucciones, se van a procesar despus con mayor probabilidad.
procesador analiza qu instrucciones dependen de los resultados de otras instrucciones o datos, para crear una organizacin optimizada de instrucciones. Esto evita retrasos innecesarios.
Ejecucin especulativa:
Usando
la prediccin de ramificacin y el anlisis de flujo de datos, algunos procesadores ejecutan especulativamente instrucciones antes de que aparezcan en la ejecucin del programa, manteniendo los resultados en posiciones temporales. Esto permite al procesador estar ocupado y ejecutar instrucciones que es probable se necesiten.
Prediccin de saltos:
En
cada ciclo, iniciar la ejecucin de una instruccin. Cuando compilador no puede encontrar una instruccin que sea til siempre, intentar predecir resultado del salto. Esquemas estticos (por el compilador) y dinmicos (en tiempo de ejecucin por hardware).
til en procesadores superescalares o supersegmentados (superpipelined), donde el costo del salto es mayor a una instruccin.
Supersegmentado (superpipeline):
Aprovecha
el hecho que muchas etapas del cauce realizan tareas que requieren menos de la mitad de un ciclo de reloj. Con ello se dobla la velocidad de reloj interna, lo que permite realizar dos tareas en un ciclo de reloj externo. Ejemplo, el MIPS R400. Es decir, obtener un CPI de 0.5, incluso en algunos casos menores..
Superescalar:
Usa
mltiples cauces de instruccin independientes. Cada cauce consta de mltiples etapas, para tratar varias instrucciones a la vez. Capta varias instrucciones a la vez y luego intenta encontrar instrucciones cercanas que sean independientes entre s y puedan por consiguiente ejecutarse en paralelo. Se pueden obtener CPI menores a la unidad.
52
(Fetch): Captura de instrucciones ID: Decodificacin de instrucciones ALU: Unidad aritmtica lgica MEM: Memoria cach (leer o escribir) WB (Write back): Actualiza los registros del uP.
1 CICLO DE RELOJ
IF
ID
ALU
MEM
WB
IF
CACHE_INST
ID
Decodificador
ALU
ALU
MEM
WB
Inst 1 Inst 2
IF
ID
ALU
MEM
WB IF ID ALU MEM WB
IF
ID IF
ALU ID IF
MEM ALU ID IF
10
57
ANEXOS
computadora de propsito especial (sistema decimal). Program mediante conmutadores y cables. Contena ms de 18,000 tubos. Potencia clculo: 5000 sumas/seg. Peso: 30 toneladas. rea: 1.400 m2; Consumo: 140 KW.
I y II (Eckert & Mauchly) IBM Serie 700, 701, 704 y 709. Programacin en lenguaje mquina.
Unidades de E/S
62
El transistor.
Inventado
por los laboratorios Bell en 1947. Ms pequeos, baratos y menor consumo que las tubos de vaco. Computadores de menor coste y tamao, ms fiables y mayores prestaciones.
63
Innovaciones importantes:
Uso
Primer transistor
Transistores comerciales
64
enormemente el tiempo de fabricacin, el tamao y el coste del computador. Aumenta an ms la fiabilidad y las prestaciones.
Otras innovaciones.
Microprogramacin.
Interrupciones
con prioridades. Memorias cach y controladores DMA. Nuevos lenguajes de programacin: Basic y Pascal.
El microprocesador.
La
escala LSI permite integrar todos los componentes de un procesador en un mismo chip. Nace el MICROPROCESADOR i4004 de Intel (procesador de 4 bits, 1971).
i4004
(DOS).
en tecnologa ECL (Lgica de emisor acoplado): Son los circuitos integrados de ms alta velocidad. Permiten alcanzar retardos de 1 a 2 nanosegundos.
PC - XT
Apple II
crecimiento en la escala de integracin (Ms de 15 millones de transistores por chip). Se abaratan los precios de los microprocesadores y aumentan sus prestaciones. Aparece el procesador superescalar, capaz de lanzar varias instrucciones por ciclo de reloj.
personales:
PC (i486, Pentium, Pentium II, Pentium III y Pentium IV). Machintosh (Motorola 68030, 40, PowerPC).
Microprocesador P4
Estaciones
de trabajo (Work-Stations).
Sun (SuperSparc, UltraSparc I, UltraSparc II, UltraSparc III). DEC (Alpha 21064, 21164, 21264). Silicon Graphics (MIPS R4000, R5000, R8000, R10000, R12000). IBM (RS/6000).
T3E, IBM, SP2). Multiprocesadores de memoria compartida (SG Origin 2000, Sun SparcServer, HP PA8000).
Mainboard P4
Mainboard 68030
Las computadoras de esta generacin cuentan con arquitecturas combinadas Paralelo / Vectorial.
Cientos
Capaces de realizar ms de un milln de millones de operaciones aritmticas de punto flotante por segundo (teraflops). Las redes de rea mundial (Wide Area Network, WAN) seguirn creciendo desorbitadamente.
/ artificial distribuida. Teora del caos. Sistemas difusos. Holografa. Transistores pticos, etctera.
C. Benchmarks
79
Programas de prueba sintticos que simulan la frecuencia de operaciones y operandos de un abanico de programas reales. Hay cuatro categoras de pruebas de comparacin:
Pruebas
aplicaciones-base (application-based), las ejecuta y las cronometra. Prueba sinttica (synthetic test), la cual enlaza actividades de la aplicacin en subsistemas especficos.
C. Benchmarks
80
Pruebas
playback (playback test), las cuales usan llamadas al sistema durante actividades especificas de una aplicacin (Ej.: Llamados a grficos o uso del disco) y las ejecuta aisladamente. Prueba de inspeccin (inspection tests), la cual no intenta imitar la actividad de la aplicacin, sino que las ejecuta directamente en los subsistemas especficos.
C. Benchmarks
81