Introducción a la estructura de computadores

Anuncio
1
Estructura y Tecnología de Computadores
Módulo B. Introducción a la estructura de computadores
Tema 3. Introducción a la estructura de computadores
José Manuel Mendías Cuadros
Dpto.
Dpto. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
2
contenidos
1. Niveles de descripción de un computador
Niveles de descripción. Conceptos de arquitectura y estructura. Concepto de familia.
2. Modelo Von Neumann
Módulos básicos.Características principales. Elementos de la CPU.
3. Medidas de rendimiento
Tiempo de ejecución. MIPS. MFLOPS. Ley de Amdahl.
4. Perspectiva histórica (leer cap.2 Stallings, cap.1 Patterson y Hennessy)
Generaciones de computadores. 1ª generación. 2ª generación. 3ª generación. 4ª
generación. 5ª generación.
estructura y tecnología de computadores
3
el computador
[HaVZ96]:”Un computador es una máquina de cálculo electrónica de alta velocidad
que acepta información digitalizada, la procesa atendiendo a una lista de
instrucciones que almacena internamente, y produce la correspondiente
información de salida”
Ö Funciones de un computador
Ø
Ø
Ø
Ø
Procesamiento de datos
Almacenamiento de datos
Transferencias de datos entre el computador y el exterior
Control de las anteriores operaciones
Ö La excesiva generalidad de estas funciones se debe a que la especialización
funcional de un computador ocurre cuando se programa y no cuando se diseña
Ö Sus principales componentes estructurales son:
Ø
Ø
Ø
Ø
Procesador: controla el funcionamiento del computador y procesa los datos
Subsistema de memoria: almecena datos
Subsistema de entrada/salida: transfiere datos entre el computador y el entorno externo
Subsistema de interconexión: proporciona un medio de comunicación entre el
procesador, la memoria y la E/S.
estructura y tecnología de computadores
4
dificultades en el estudio del computador
Ö Existen una gran variedad de sistemas
Ø
Ø
Ø
Ø
Computadores personales
Estaciones de trabajo (workstations)
Mainframes
Supercomputadores
Ö Es un campo extremadamente cambiante ya que la tecnología avanza a pasos
agigantados:
Ø Procesador:
ð la densidad de integración aumenta un 30% anual
ð las frecuencias de funcionamiento aumentan un 20% anual
ð la potencia de cálculo aumenta un 50% anual
Ø Memoria:
ð la capacidad de almacenamiento (DRAMs) aumenta un 60% anual
ð velocidad de transferencia aumenta un 10% anual
ð coste por bit disminuye un 25% anual
Ø Discos:
ð la capacidad de almacenamiento aumenta un 60% anual
Ö Sin embargo, se aplican sistemáticamente ciertos conceptos fundamentales
estructura y tecnología de computadores
5
1. niveles de descripción de un computador
Aplicación
Lenguaje de alto nivel
Ofimática (MS-Office, Contaplus, D-Base)
Comunicaciones (Netscape, Explorer, Mail)
Diseño (AutoCAD, ...), Multimedia, Juegos, etc.
FOR, WHILE, REPEAT, PROCEDURE, ...
PASCAL, FORTRAN, C, COBOL, BASIC, ...
MODULA, C++, JAVA, ...
Gestión de memoria
Gestión de procesos
Gestión de ficheros
Sistema Operativo /
Compilador
Arquitectura del
computador
Estructura del
computador
Compilación
Enlazado
Ubicación
Loop move
load
add
sub
beq
Registros
R0
••
•
Registro Estado
Contador Programa
R7
#$10, R0
R1(dir1), R2
R2, R0
#1, R1
Loop
Circuito Digital
CPU
Mem.
Físico
Bus
E/S
estructura y tecnología de computadores
6
1. niveles de descripción de un computador
¿Dónde se estudia?
Aplicación
Auto-aprendizaje en ratos libres,
Academias de informática/ofimática
Lenguaje de alto nivel
Estructuras de datos y de la información
Metodología y tecnología de la programación
Sistema Operativo /
Compilador
Sistemas Operativos (NO compiladores)
Arquitectura del
computador
Estructura del
computador
Circuito Digital
Físico
estructura y tecnología de computadores
2do. cuatrimestre:
estructura
1er cuatrimestre:
tecnología
7
1. niveles de descripción de un computador
Arquitectura del computador
Ö Conjuntos de atributos de un computador que son visibles a:
Ø El programador en lenguaje máquina,
Ø El sistema operativo o
Ø El compilador
Ö Engloba los siguientes elementos
Ø
Ø
Ø
Ø
Ø
Conjunto de registros visibles al programador
Conjunto de instrucciones máquina o ensamblador
Tipos básicos de datos soportados por las instrucciones máquina
Modos de direccionamiento
Mecanismos de E/S
Estructura del computador
Ö Conjunto de módulos básicos que componen el computador
Ø
Ø
Ø
Ø
CPU (ALU, unidad de control, registros, ...)
Memoria (memoria principal, memoria cache, memoria virtual)
E/S (periféricos, controladores, DMA, ...)
Buses (buses del sistema, buses de expansión, etc.)
Ö Funcionamiento y alternativas de implementación de los módulos básicos
Ö Interconexión e interacción entre los mismos
estructura y tecnología de computadores
8
1. niveles de descripción de un computador
Familia de computadores
Ejemplos de Familias
Ö Conjunto de computadores con
Familia PC compatible
Ö IBM PC-XT (8088)
Ö IBM PC-AT (80286)
Ö 80386
Ö 80486
Ö Pentium
Ö Pentium Pro
Ö Pentium II
Familia Motorola 68XXX
Ö MC68000
Ö MC68010
Ö MC68020
Ö MC68030
Ö MC68040
Ö MC68060
Ø Similar arquitectura
Ø Distinta organización
Ö Las familias de computadores hacen posible que
Ø Existan máquinas de la misma familia con distinta
Ø Tecnología
Ø Velocidad
Ø Prestaciones
Ø Precio
Ø Las máquinas de una misma familia sean compatibles entre sí
Ø Todos los miembros de una misma familia pueden
ejecutar los mismos programas
Ö La compatibilidad suele ser sólo hacia arriba
(upward compatibility)
Ø Las máquinas de gama alta de una familia pueden ejecutar los
mismos programas que las máquinas de gama baja
Ø Lo contrario (compatibilidad hacia abajo) no suele ser cierto
estructura y tecnología de computadores
9
2. modelo Von Neumann
Módulos básicos
Esquema
CPU (Unidad Central de Proceso)
Ø Realiza la ejecución de las instrucciones
Unidad de Control (UC)
Cont. Prog. (PC)
Reg. Estado (SR)
R0
••
•
Registros
R7
Unidad
Aritmético
Lógica
(ALU)
C
P
U
Reg. Instr. (IR)
Reg. Dir. Mem. (MAR)
Reg. Dat. Mem. (MDR)
Bus Datos
Bus Direcc.
Unidad de Memoria
Ø Almacena las instrucciones y los datos
Unidad de E/S
Ø Transfiere información entre el computador
y los dispositivos periféricos
Elementos de interconexión: BUSES
Bus de datos
Ø Para transferencia de datos entre la CPU y
memoria o E/S
Bus Control
Bus de direcciones
MEMORIA
Ø Para especificar la dirección de memoria
o la dirección del registro de E/S
E/S
Bus de control
Ø Señales de control de la transferencia
(reloj, lectura/escritura, etc.)
estructura y tecnología de computadores
10
2. modelo Von Neumann
Características principales del modelo Von Neumann
Ö Su funcionamiento se basa en el concepto de programa almacenado en memoria
Ø La memoria principal almacena
ð Instrucciones: programa que controla el funcionamiento del computador
ð Datos: datos que procesa y genera dicho programa
Ö Las palabras en memoria siguen una organización lineal
Ø Todas las palabras de memoria tienen el mismo tamaño
Ø No hay distinción explícita entre direcciones y datos
Ö La ejecución de las instrucciones es secuencial
Ø El secuenciamiento de las instrucciones es implícito, y viene determinado por el orden en que
han sido almacenadas en la memoria
Ø Este secuenciamiento sólo puede ser modificado por instrucciones específicas de salto
Ø El contador de programa (PC) indica en cada instante cual es la siguiente instrucción a ejecutar
Ö Las fases que se distinguen en la ejecución de una instrucción son
Ø
Ø
Ø
Ø
Ø
Búsqueda de la instrucción en memoria (Fetch) y cálculo de la direcc. de instrucción siguiente
Descodificación de la instrucción por parte de la CPU
Búsqueda de los operandos de la instrucción
Ejecución de la instrucción
Escritura del resultado
estructura y tecnología de computadores
11
2. modelo Von Neumann
Elementos de la CPU
Unidad de proceso o ruta de datos (data-path)
Ö Unidad Aritmético-Lógica (ALU)
Ø Realiza las operaciones aritméticas y lógicas que indican las instrucciones
Ö Banco de Registros
Ø Conjunto de registros visibles al usuario
Ø Almacena los datos y los resultados con los que trabaja la ALU
Ö Registros especiales
Ø Contador de programa, registro de estado, dirección del dato en memoria, etc.
Ö Buses internos
Ø Caminos de interconexión entre los elementos anteriores
Unidad de control o ruta de control (control-path)
Ö Genera las señales necesarias para que la unidad de proceso ejecute las instrucciones
de forma adecuada
Ø Indica el tipo de operación que tiene que realizar la ALU
Ø Indica que registros contienen los datos y dónde se debe almacenar el resultado
Ø Genera señales de carga de todos los registros cuando estos tienen que almacenar información
Ö Es un sistema secuencial. Su complejidad depende de
Ø La complejidad de la unidad de proceso y del número y tipo de instrucciones a ejecutar
estructura y tecnología de computadores
12
3. medidas de rendimiento
¿Para qué son necesarias?
Ö Permiten comparar objetivamente las prestaciones de computadores distintos:
Ø Cuál ofrece mayor potencia de cálculo o mayor velocidad de procesamiento, es decir, cuál
tarda menos tiempo en ejecutar nuestras aplicaciones
¿Cuál es la principal métrica (desde el punto de vista del usuario individual)?
individual)?
Ö Tiempo de ejecución (medido en segundos/programa)
Ø cuenta todo: tiempos de E/S, tiempos de acceso a memoria, tiempo de S.O.
Ø es útil, pero depende de demasiados factores para poder ser usado eficientemente
Ö Tiempo de CPU
Ø sólo cuenta la fracción de tiempo de ejecución en la que la CPU está ocupada
Ø puede ser descompuesto en:
ð tiempo de usuario: tiempo empleado por la CPU para ejecutar un programa
ð tiempo de sistema: tiempo empleado por la CPU para ejecutar tareas del sistema
operativo en beneficio del programa
...consideraremos como métrica principal del rendimiento de un procesador para un
programa dado el tiempo de usuario de CPU, sin embargo, es necesario
relacionarlo con aspectos más cercanos al hardware
estructura y tecnología de computadores
13
3. medidas de rendimiento
Ö Todos los computadores utilizan una señal periódica que determina el momento
en que tienen lugar los eventos hardware: dicha señal se llama reloj
Ø tiempo de ciclo: tiempo que transcurre entre dos ticks (medido en s)
Ø frecuencia de reloj: la inversa del tiempo de ciclo (medido en Hz=s-1)
Un computador funcionando a 200 MHz (frecuencia)
tiene un tiempo de ciclo de:
(tiempo de CPU)
1
200 × 106
= 5 ⋅10−9 s = 5 ns
= (ciclos de reloj por programa) × (tiempo de ciclo)
= (ciclos de reloj por programa) / (frecuencia de reloj)
¿puede asumirse que (ciclos de reloj por programa) = (instrucciones por programa)?
NO: diferentes instrucciones tardan diferentes cantidades de tiempo:
ð La multiplicación tarda más ciclos que la suma
ð Operaciones en punto flotante tardan más que operaciones en punto fijo
ð Instrucciones con acceso a memoria tardan más que con acceso a registros
estructura y tecnología de computadores
14
5ª
4ª
3ª instr.
2ª instr.
1ª instr.
3. medidas de rendimiento
tiempo (ciclos)
(ciclos de reloj por programa) = (instrucciones por programa) × (ciclos promedio por instrucción)
Los “ciclos promedio por instrucción” (CPI) se calculan como una suma ponderada
del número de ciclos que tarda por separado cada tipo de instrucción
Operación
ALU
Load
Store
Branch
Frecuencia
50%
20%
10%
20%
estructura y tecnología de computadores
Ciclos
1
5
3
2
CPI
.5
1.0
.3
.4
2.2
% tiempo
23%
45%
14%
18%
15
3. medidas de rendimiento
(tiempo de CPU) = (instrucciones por programa) × CPI × (tiempo de ciclo)
Ö ¿de quién dependen las “instrucciones por programa”?:
ü programadores / compiladores / arquitectura del repertorio de instrucciones
Ö ¿de quién depende el “tiempo de ciclo”?:
ü tecnología / organización
Ö ¿de quién dependen los “ciclos promedio por instrucción”?:
ü organización / arquitectura del repertorio de instrucciones
ninguna de las variables por separado
es medida de rendimiento
Ö El rendimiento se evalúa ejecutando programas reales
Ø programas “de juguete”: 10~100 líneas de código con resultado conocido
Ø programas de prueba (benchmarks) sintéticos: simulan la frecuencia de operaciones y
operandos de un abanico de programas reales
Ø fragmentos de programas reales
Ø programas típicos con cargas de trabajo fijas
estructura y tecnología de computadores
16
3. medidas de rendimiento
Ö Existen, además, otras métricas muy populares pero que pueden resultar engañosas por
no incluir todas las variables anteriormente estudiadas.
MIPS (Millones de instrucciones por segundo)
Ö MIPS = (instrucciones por programa) / (tiempo ejecución × 106)
Ö MIPS = (frecuencia de reloj) / (CPI × 106)
Ö Problemas
Ø Depende del repertorio de instrucciones
ð El tiempo que tarda en ejecutarse una misma instrucción y el nº de instrucciones máquina
que genera el compilador puede variar de un repertorio a otro
ð Dos programas distintos pueden tener comportamientos opuestos
Ø La medida de MIPS puede variar mucho de un programa a otro
ð Existen instrucciones que tardan más tiempo en ejecutarse que otras
ð Los programas en los que abundan instrucciones “rápidas” tardan menos en ejecutarse
ð Los programas en los que abundan instrucciones “lentas” tardan más en ejecutarse
Ø Los fabricantes suelen dar medidas de MIPS muy optimistas
ð Utilizan programas donde predominan instrucciones que tardan poco en ejecutarse
estructura y tecnología de computadores
17
3. medidas de rendimiento
MFLOPS (Millones de instrucciones en punto flotante por segundo)
Ö MFLOPS = (instrucciones en punto flotante por programa) / (tiempo ejecución × 106)
Ö Las instrucciones en punto flotante son las que más tardan en ejecutarse
Ø Son una medida algo más fiable del rendimiento real del computador
Ö Problemas
Ø Depende del repertorio de instrucciones en punto flotante
ð No todos los computadores ofrecen las mismas operaciones en punto flotante
ð Dos programas distintos pueden tener comportamientos opuestos
Ø Es inútil para muchos programas
ð Los programas enteros (sin operaciones en punto flotante) no pueden medirse en MFLOPS
Ø Existen instrucciones en punto flotante de distinto tiempo de ejecución
ð Por ejemplo: suma, resta, ... son rápidas; división, seno, exponencial, ... Son lentas
ð Los fabricantes pueden dar también medidas de MFLOPS demasiado optimistas
Conclusión
MIPS y MFLOPS son medidas parciales poco indicativas por si solas
estructura y tecnología de computadores
18
3. medidas de rendimiento
Ö Cuando se pretende mejorar el rendimiento, debe tenerse en cuenta que la mejora
de un aspecto de la máquina no incrementa el rendimiento global en una cantidad
proporcional al tamaño de la mejora
se pretende viajar desde el Yelmo a Ciudad Real y el viaje se realiza en 2 fases: del
Yelmo a Madrid (20h caminando) y de Madrid a Ciudad Real (en otro medio de transporte)
medio de
transporte
viaje desde
Madrid (h)
mejora
viaje
completo (h)
mejora
real
caminando
bicicleta
moto
coche
50
20
4
1.67
1
2.5
12.5
30
70
40
24
21.27
1
1.8
2.9
3.2
tren
0.33
150
20.33
3.4
Ö Ley de Amdahl: “El aumento del rendimiento global que se obtiene mejorando
algún aspecto de un sistema está limitado por la fracción de tiempo en la que
dicho aspecto mejorado puede ser usado”
(t.e. tras la mejora) = (t.e. no afectado) + (t.e. afectado / cantidad de la mejora)
...hacer común el caso rápido o acelerar el caso común
estructura y tecnología de computadores
19
4. perspectiva histórica
Generaciones de computadores
Generación
Fechas
Características Tecnológ.
Potencia de cálculo
Primera
1946-1957
Válvula de vacío
0,04 MIPS
Segunda
1958-1964
Transistores
0,2 MIPS
Tercera
1965-1971
Circuitos integrados
1 MIPS
Cuarta
1972-1988
Microprocesador
10 MIPS
Quinta
1988-
Sistema basados en micro
> 100 MIPS
1ª Generación (1946-1957)
Ö ENIAC (1946)
Ø
Ø
Ø
Ø
Primer computador de propósito especial
Peso: 30 toneladas; Superficie: 1.400 m2; Consumo: 140 KW
Potencia cálculo: 5000 sumas/seg
Difícil de programar. Mediante conmutadores y cables
Ö Primeros computadores comerciales (Años 50)
Ø UNIVAC I y II (Eckert & Mauchly)
Ø IBM Serie 700
Ø Programación en lenguaje máquina
estructura y tecnología de computadores
20
4. perspectiva histórica
2ª Generación (1958 - 1964)
Ö El transistor
Ø Inventado por los laboratorios Bell en 1947
Ø Más pequeños, baratos y menor consumo que las válvulas de vacío
Ø Computadores de menor coste y tamaño, más fiables mayores prestaciones
Ö Principales computadores comerciales
Ø DEC PDP-1
Ø IBM Serie 7000
Ø UNIVAC 1100
Ö Otras innovaciones
Ø
Ø
Ø
Ø
Programación en lenguajes de alto nivel (Fortran, Cobol, ...)
Canales de E/S
Memoria virtual
Interrupciones para la E/S
estructura y tecnología de computadores
21
4. perspectiva histórica
3ª Generación (1965 - 1971)
Ö El circuito integrado (CI)
Ø Integración de múltiples componentes (transistores, resistencias, condensadores, .. )
en un mismo CI de silicio
Ø Reduce enormemente el tiempo de fabricación, el tamaño y el coste del computador
Ø Aumenta aún más la fiabilidad y las prestaciones
Ö Principales computadores comerciales
Ø
Ø
Ø
Ø
DEC PDP-8
IBM Series 360 y 370
UNIVAC 1108
CDC series 6600, 7800 y Cyber
Ö Otras innovaciones
Ø
Ø
Ø
Ø
Ø
Ø
Microprogramación
Interrupciones con prioridades
Memoria cache
Controladores DMA
Nuevos lenguajes de programación (Basic, APL, Pascal)
Sistemas operativos robustos (MVS de IBM, VMS de DEC)
estructura y tecnología de computadores
22
4. perspectiva histórica
4ª Generación (1972 - 1988)
Ö El microprocesador
Ø Aumento constante en escala de integración (LSI, VLSI): se duplica cada año
Ø La escala LSI permite integrar todos los componentes de un procesador en un mismo chip
ð Nace el MICROPROCESADOR
Ø Primer microprocesador: intel 4004 (procesador de 4 bits, 1971)
i4004
Ö Aparece el computador personal (IBM/PC)
Ø Microsoft desarrolla el primer sistema operativo: MS-DOS
Ö Principales procesadores de esta generación
Ø De 8 bits: intel 8008, 8080; Motorola 6502, 6800
Ø De 16 bits (año 78): intel 8086, 80286; Motorola 68000, 68010
Ø De 32 bits (años 85): intel 80386; Motorola 68020, 68030
Ö Surge el procesador con conjunto reducido de instrucciones (RISC)
Ø MIPS R2000 (32 bits, año 1986)
Ö Supercomputadores vectoriales y paralelos
Ø Basados en tecnología ECL
Ø Muy caros de fabricar y mantener
Ø Cray, NEC, Hitachi, Fujitsu
Ö Aparecen las redes de computadores
estructura y tecnología de computadores
23
4. perspectiva histórica
5ª Generación (1988 - ...)
Ö Sistemas basados en microprocesador
Ø Continúa crecimiento en la escala de integración:
ð Más 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
Ø La increíble relación coste-prestaciones del microprocesador hace de éste el elemento básico de:
ð Computadores personales
ð PC (i486, Pentium, Pentium II)
ð Machintosh (Motorola 68030, 40, PowerPC)
ð Estaciones de trabajo (Work-Stations)
ð Sun (SuperSparc, UltraSparc I, UltraSparc II)
ð DEC (Alpha 21064, 21164, 21264)
ð Silicon Graphics (MIPS R4000, R5000, R8000, R10000)
ð IBM (RS/6000)
ð Supercomputadores paralelos basados en microprocesadores
ð Multicomputadores de de memoria distribuida (Cray T3E, IBM SP2)
ð Multiprocesadores de memoria compartida (SG Origin 2000, Sun SparcServer, HP
PA8000)
estructura y tecnología de computadores
Descargar