11
ARQUITECTURA ARQUITECTURA DE COMPUTADORES IIDE COMPUTADORES II
ICI-223ICI-223
Ing Civil InformáticaIng Civil InformáticaDepto de Computación e InformáticaDepto de Computación e Informática
22
PreliminaresPreliminares
Ing. Rodrigo Cofré LoyolaIng. Rodrigo Cofré LoyolaProfesor AuxiliarProfesor Auxiliar
Departamento de Computación e Departamento de Computación e InformáticaInformáticaClases Clases
Lunes 16:50 – 17:55 Hrs – Sala 28Lunes 16:50 – 17:55 Hrs – Sala 28Viernes 10:50 – 12:55 Hrs – Sala 35Viernes 10:50 – 12:55 Hrs – Sala 35
Tutorias: Tutorias: Miércoles 10:50 – 12:50 HrsMiércoles 10:50 – 12:50 HrsViernes 14:30 – 16:30 Hrs.Viernes 14:30 – 16:30 Hrs.
33
Descripción y ObjetivoDescripción y Objetivo
El curso está orientado a que el El curso está orientado a que el alumno obtenga una visión técnica de la alumno obtenga una visión técnica de la organización y arquitectura de los organización y arquitectura de los computadores modernos mediante el computadores modernos mediante el análisis, diseño y evaluación de los análisis, diseño y evaluación de los niveles de abstracción en la cual están niveles de abstracción en la cual están organizados los sistemas organizados los sistemas computacionales modernos.computacionales modernos.
44
Descripción y ObjetivoDescripción y Objetivo
Se diseñan y simulan en computador Se diseñan y simulan en computador arquitecturas básicas dedicadas y arquitecturas básicas dedicadas y generalizadas, y se resuelven generalizadas, y se resuelven problemas de programación utilizando problemas de programación utilizando lenguajes de bajo nivel de las lenguajes de bajo nivel de las arquitecturas estudiadas. arquitecturas estudiadas.
En conjunto con las clases expositivas, En conjunto con las clases expositivas, se realizarán clases de ejercitación se realizarán clases de ejercitación Laboratorios y resolución de tareas Laboratorios y resolución de tareas grupales.grupales.
55
Temario InicialTemario Inicial 1 Introducción1 Introducción 2 Organización del Computador2 Organización del Computador 3 Sistemas de Memoria3 Sistemas de Memoria 4 Interfaces y Comunicaciones4 Interfaces y Comunicaciones 5 Organización Funcional5 Organización Funcional 6 Multiprocesadores y Arquitecturas 6 Multiprocesadores y Arquitecturas
AlternativasAlternativas 7 Aumento de Desempeño7 Aumento de Desempeño 8 Arquitecturas Contemporáneas8 Arquitecturas Contemporáneas
66
MetodologíaMetodología
Autoaprendizaje - LecturasAutoaprendizaje - Lecturas Clases Expositivas – Trabajos grupalesClases Expositivas – Trabajos grupales Laboratorios:Laboratorios:
Ensamblador (6-7) + Circuitos Digitales Ensamblador (6-7) + Circuitos Digitales (Proyecto-Etapas). (Proyecto-Etapas).
Hardware y configuración PC ()Hardware y configuración PC ()Trabajo Grupal de Investigación (grupos Trabajo Grupal de Investigación (grupos
semestrales)semestrales) Página WEB: Página WEB: http://http://www.eici.ucm.clwww.eici.ucm.cl/ / [email protected]@ucm.cl
77
ControlesControles
Prueba 1: 10 Octubre 2008Prueba 1: 10 Octubre 2008
Prueba 2: 21 Noviembre 2008Prueba 2: 21 Noviembre 2008
Prueba Acumulativa: 12 Diciembre 2008Prueba Acumulativa: 12 Diciembre 2008
88
Ayudantías: EnsambladorAyudantías: Ensamblador
Cupos 25 Alumnos por SecciónCupos 25 Alumnos por Sección
2 Secciones2 Secciones
Inscripciones con Profesor Inscripciones con Profesor
Horarios:Horarios:
Sección 1: Miércoles 15:30 – 16:30Sección 1: Miércoles 15:30 – 16:30
Sección 2: Miércoles 16:55 – 17:50Sección 2: Miércoles 16:55 – 17:50
99
Laboratorio Ensamblador+ProyectoLaboratorio Ensamblador+Proyecto
27 Octubre al 07 Noviembre 200827 Octubre al 07 Noviembre 2008
Lab: 27/10 - 29/10 – 31/10 - 03/11 -05/11Lab: 27/10 - 29/10 – 31/10 - 03/11 -05/11+ Consultas 07/11+ Consultas 07/11
Horario 15:35 Hrs – 17:50 Hrs Horario 15:35 Hrs – 17:50 Hrs
Cupo 3 Grupos Por LaboratorioCupo 3 Grupos Por LaboratorioMáximo 4 alumnos por GrupoMáximo 4 alumnos por Grupo
Inscribirse con el ProfesorInscribirse con el Profesor
1010
ObservacionesObservacionesLa inasistencia a un test será La inasistencia a un test será
evaluada con un 1 y no se evaluada con un 1 y no se recuperará. Los tests pueden o no recuperará. Los tests pueden o no ser avisados con anticipación. ser avisados con anticipación.
Se exige el 80% de asistencia a Se exige el 80% de asistencia a clases, y el 100% a los laboratorios, clases, y el 100% a los laboratorios, en caso contrario reprobará la en caso contrario reprobará la asignatura con la nota mínima.asignatura con la nota mínima.
1111
Bibliografía MínimaBibliografía Mínima
[Morris1991] Morris M, “Ingeniería [Morris1991] Morris M, “Ingeniería Computacional: Diseño del Hardware”, Computacional: Diseño del Hardware”, prentice Hall, 1991.prentice Hall, 1991.
[Stalling2006] Stalling Williams, [Stalling2006] Stalling Williams, “organización y arquitectura de “organización y arquitectura de Computadoras”, 7ª Edición, Pearson Computadoras”, 7ª Edición, Pearson Educación, 2006.(7 Ejemplares)Educación, 2006.(7 Ejemplares)
[Paterson1995] Paterson D, [Paterson1995] Paterson D, “organización y diseño de computadores: “organización y diseño de computadores: La interfaz Hardware/Software”, Mc La interfaz Hardware/Software”, Mc Graw-Hill, 1995.Graw-Hill, 1995.
1212
Bibliografía MínimaBibliografía Mínima [Tanenbaum2000] Tanenbaum A, [Tanenbaum2000] Tanenbaum A,
“Organización de Computadores: Un “Organización de Computadores: Un enfoque Estructurado”, 4ta Edición, enfoque Estructurado”, 4ta Edición, Prentice-Hall, 2000. (10 Ejemplares)Prentice-Hall, 2000. (10 Ejemplares)
[Martínez2000] Martínez J, “Organización y [Martínez2000] Martínez J, “Organización y Arquitectura de Computadores”, Prentice-Arquitectura de Computadores”, Prentice-Hall, 2000.Hall, 2000.
[Ujaldon2003] Ujaldon Martínez Manuel, [Ujaldon2003] Ujaldon Martínez Manuel, “Arquitectura del PC”, Volumen I a IV, “Arquitectura del PC”, Volumen I a IV, Editorial Ciencia-3, Madrid, 2003.Editorial Ciencia-3, Madrid, 2003.
1313
Bibliografía MínimaBibliografía Mínima [Hennessy2002] Patterson, “Computer [Hennessy2002] Patterson, “Computer
Architecture: A Architecture: A Quantitative Approach”, Quantitative Approach”, 3era Edition, Morgan-Kaufmann, 2002.3era Edition, Morgan-Kaufmann, 2002.
1414
Bibliografía Complementaria Bibliografía Complementaria
[Ujaldon2005] Ujaldon Martínez Manuel, [Ujaldon2005] Ujaldon Martínez Manuel, “Procesadores Gráficos para PC”, Editorial “Procesadores Gráficos para PC”, Editorial Ciencia-3, Madrid, 2005.Ciencia-3, Madrid, 2005.
[Ujaldon2007] Ujaldon Martínez Manuel, [Ujaldon2007] Ujaldon Martínez Manuel, “Arquitectura del PC: 1400 cuestiones y “Arquitectura del PC: 1400 cuestiones y problemas resueltos”, Editorial Ciencia-3, problemas resueltos”, Editorial Ciencia-3, Madrid, 2007.Madrid, 2007.
1515
MetodologíaMetodología Desarrollo de clases expositivas de parte del Desarrollo de clases expositivas de parte del
profesor.profesor. Desarrollo de laboratorios (asistencia Desarrollo de laboratorios (asistencia
obligatoria).obligatoria). Los alumnos deberán participar activamente Los alumnos deberán participar activamente
en clases mediante la proposición de en clases mediante la proposición de soluciones a problemas planteados por el soluciones a problemas planteados por el profesor u otros alumnos.Se propiciará el profesor u otros alumnos.Se propiciará el trabajo en grupo, de manera que los alumnos trabajo en grupo, de manera que los alumnos colaboren entre sí, tanto en clases teóricas colaboren entre sí, tanto en clases teóricas como prácticas.como prácticas.
1616
[ Introducción ][ Introducción ]
Präsentation
¿Qué es un computador?
DEFINICIÓN DE LA RAE:
Máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos.
Se acepta computador o computadora.
1717
[ Introducción ][ Introducción ]
Präsentation
¿Qué es un computador?
DEFINICIÓN DE Stallings:
Máquina digital electrónica programable para el tratamiento automático de la información, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de tales operaciones.
1818
IntroducciónIntroducción
““Distinguir entre Arquitectura y organización”Distinguir entre Arquitectura y organización” Arquitectura se refiere a los atributos de un Arquitectura se refiere a los atributos de un
sistema que son visibles para un programador sistema que son visibles para un programador – Impacto Directo en la ejecución lógica de un – Impacto Directo en la ejecución lógica de un programa: Conjunto de instrucciones, número programa: Conjunto de instrucciones, número de bits usados en la representación de Datos de bits usados en la representación de Datos (números, caracteres, etc), los mecanismos de (números, caracteres, etc), los mecanismos de entrada Salida, y las técnicas para entrada Salida, y las técnicas para direccionamiento de memoria.direccionamiento de memoria.
1919
IntroducciónIntroducción
La organización de Computadores se La organización de Computadores se refiere a las unidades funcionales y sus refiere a las unidades funcionales y sus interconexiones que dan lugar a interconexiones que dan lugar a especificaciones arquitectónicas.especificaciones arquitectónicas.
Detalles Hardware transparentes al Detalles Hardware transparentes al programador tales como señales de programador tales como señales de control, interfaces entre el computador y control, interfaces entre el computador y los periféricos y la tecnología de Memoria los periféricos y la tecnología de Memoria usada.usada.
2020
[ Introducción ][ Introducción ]
Präsentation
Funcionamiento
Transferencia de datos
Control
Almacenamientode datos
Procesamiento de datos
2121
[ Introducción ][ Introducción ]
Präsentation
Funcionamiento
Transferencia de datos
Control
Almacenamientode datos
Procesamiento de datos
TRANSFERENCIA
2222
[ Introducción ][ Introducción ]
Präsentation
Funcionamiento
Transferencia de datos
Control
Almacenamientode datos
Procesamiento de datos
ALMACENAMIENTO
2323
[ Introducción ][ Introducción ]
Präsentation
Funcionamiento
Transferencia de datos
Control
Almacenamientode datos
Procesamiento de datos
PROCESAMIENTOCON USO DE
MEMORIA
2424
[ Introducción ][ Introducción ]
Präsentation
Funcionamiento
24 Arquitectura de Computadores
Transferencia de datos
Control
Almacenamientode datos
Procesamiento de datos
PROCESAMIENTOCON USO DEMEMORIA Y
TRANSFERENCIA
2525
[ Introducción ][ Introducción ]
Präsentation
Estructura
25 Arquitectura de Computadores
Computer
Main Memory
InputOutput
SystemsInterconnection
Peripherals
Communicationlines
CentralProcessing Unit
Computer
2626
[ Introducción ][ Introducción ]
Präsentation
Estructura
26 Arquitectura de Computadores
Computer Arithmeticand Login Unit
ControlUnit
Internal CPUInterconnection
Registers
CPU
I/O
Memory
SystemBus
CPU
2727
[ Introducción ][ Introducción ]
Präsentation
Estructura
27 Arquitectura de Computadores
CPU
Memoria De Control
Registros y DecodificadoresDe la Unidad de
Control
Lógica Secuencia
ControlUnit
ALU
Registers
InternalBus
Control Unit
2828
[ Introducción ][ Introducción ]
Präsentation
Historia
Generación Años Características
0 hasta 1945 Sistemas mecánicos y electro-mecánicos
1 1945 – 1955 Tubos al vacío, tableros
2 1955 – 1965 Transistores y sistemas por lotes
3 1965 – 1980 Circuitos integrados y multiprogramación
4 desde 1980 Computadores personales
28 Arquitectura de Computadores
2929
[ Introducción ][ Introducción ]
Präsentation
Historia
La generación 0 (hasta 1945)
• Ábacos• Calculadoras mecánicas.• Sistemas basados en relés.
29 Arquitectura de Computadores
3030
[ Introducción ][ Introducción ]
Präsentation
Historia
Difference Engine (1822)
Primera Computadora Digital (mecánica)
Usada para calcular tablas numéricas, calculaba cualquier funciónalgebraica y almacenaba números. Se programaba con tarjetas.
Charles Babbage y Ada Lovelace.
30 Arquitectura de Computadores
3131
[ Introducción ][ Introducción ]
Präsentation
Historia
Harvard Mark I (1930)
Usada para computar tablas matemáticas y de navegación.
31 Arquitectura de Computadores
3232
[ Introducción ][ Introducción ]
Präsentation
Historia
La primera generación (1940-1955)
• Luego se utilizan tubos al vacío• Eran enormes (20.000 tubos) y lentas (un ciclo 1 seg.)• Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina.• Toda la programación se hacía en lenguaje máquina (alambrando tableros por ejemplo).• No existían los sistemas operativos.• En 1950 se introducen las tarjetas perforadas.
32 Arquitectura de Computadores
3333
[ Introducción ][ Introducción ]
Präsentation
Historia
Usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes.
Colossus (1945) 33 Arquitectura de Computadores
3434
[ Introducción ][ Introducción ]
Präsentation
Historia
ENIAC (1946) 34 Arquitectura de Computadores
3535
[ Introducción ][ Introducción ]
Präsentation
Historia
UNIVAC (1946) 35 Arquitectura de Computadores
3636
[ Introducción ][ Introducción ]
Präsentation
Historia
Manchester Mark I (1948)
Primera máquina que funcionó con un programa almacenado. John von Neumann, Princeton
36 Arquitectura de Computadores
3737
[ Introducción ][ Introducción ]
Präsentation
Historia
La segunda generación (1955-1965)
• Se introducen los transistores.• Distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento.• Mainframes en salas acondicionadas.• Se escribían los programas en papel, luego se perforaban las tarjetas, cuarto de entrada, café, esperar la salida.• Los operadores toman las tarjetas del programa y colocan también los del compilador.• Se crea el proceso por lotes que agrupa trabajos.
37 Arquitectura de Computadores
3838
[ Introducción ][ Introducción ]
Präsentation
Historia
Transistor (1947) 38 Arquitectura de Computadores
3939
[ Introducción ][ Introducción ]
Präsentation
Historia
JOHNNIAC (1954)
Máquina que funcionaba con tarjetas.
39 Arquitectura de Computadores
4040
[ Introducción ][ Introducción ]
Präsentation
Historia
Tarjeta sin perforar 40 Arquitectura de Computadores
4141
[ Introducción ][ Introducción ]
Präsentation
Historia
A = 1 5 6
Tarjeta perforada
Línea de programa
41 Arquitectura de Computadores
4242
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 704 (1955)
Primera máquina comercial con hardware de punto flotante (5kFLOPS).
42 Arquitectura de Computadores
4343
[ Introducción ][ Introducción ]
Präsentation
Historia
FORTRAN (1957)
Primer compilador FORTRAN para IBM 704(Formula Translator)
43 Arquitectura de Computadores
4444
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 1401(1959)
4KB de memoria expandible a 16KB.Buena para leer tarjetas, copiar cintas e imprimir resultados, pero mala para cáclulos numéricos.Se utilizaba con fines comerciales (bancos, etc.)
44 Arquitectura de Computadores
4545
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 1401: Centro de Cómputo 45 Arquitectura de Computadores
4646
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 7094
Buena para hacer cómputos, se utilizaba con fines científicos.
46 Arquitectura de Computadores
4747
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 1401 – IBM 7094: a)los programadores llevan tarjetasb)La 1401 lee un lote de tarjetas y los graba en la cintac)Un operador lleva la cinta a la 7094d)La 7094 realiza los cómputose)Un operador lleva la cinta a una 1401f)La 1401 imprime las salidas
47 Arquitectura de Computadores
4848
[ Introducción ][ Introducción ]
Präsentation
Historia
Trabajo en FORTRAN
Fortran Monitor System
48 Arquitectura de Computadores
4949
[ Introducción ][ Introducción ]
Präsentation
Historia
ERMA, General Electric (1959) 49 Arquitectura de Computadores
5050
[ Introducción ][ Introducción ]
Präsentation
Historia
Primer video-juego. Estudiantes de MIT (1962)
50 Arquitectura de Computadores
5151
[ Introducción ][ Introducción ]
Präsentation
Historia
Invención del mouse (1964).
51 Arquitectura de Computadores
5252
[ Introducción ][ Introducción ]
Präsentation
Historia
La tercera generación (1965-1980)
• Se introducen los circuitos integrados, lo cual es una gran ventaja en el precio y desempeño del computador.• Se introduce el sistema IBM 360 altamente compatible.• Se introduce la multiprogramación • Se introducen los discos duros.• Se introduce el tiempo compartido entre usuarios.
52 Arquitectura de Computadores
5353
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 360 (1964)
Software compatible con IBM 7094, 1401 entre otros.
53 Arquitectura de Computadores
5454
[ Introducción ][ Introducción ]
Präsentation
Historia
Circuitos integrados 54 Arquitectura de Computadores
5555
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM 360 55 Arquitectura de Computadores
5656
[ Introducción ][ Introducción ]
Präsentation
Historia
GE 625 (1965) 56 Arquitectura de Computadores
5757
[ Introducción ][ Introducción ]
Präsentation
Historia
DEC PDP-1 (1961)
4K de palabras de 18 bits.
US$ 120.000 < 5% del precio de la IBM 7094
57 Arquitectura de Computadores
5858
[ Introducción ][ Introducción ]
Präsentation
Historia
Fundación de Intel (1968)
58 Arquitectura de Computadores
5959
[ Introducción ][ Introducción ]
Präsentation
Historia
Laboratorio Bell desarrolla el lenguaje C (1972)
59 Arquitectura de Computadores
#include main(){ for(;;) printf("Hello world..."\n);
}
6060
[ Introducción ][ Introducción ]
Präsentation
Historia
MULTICS (1976) 60 Arquitectura de Computadores
6161
[ Introducción ][ Introducción ]
Präsentation
Historia
PDP-11/70 (1974) 61 Arquitectura de Computadores
6262
[ Introducción ][ Introducción ]
Präsentation
Historia
De MULTICS nace UNICS (UNiplexed Information and Computing Service) luego se cambió a UNIX.
Era un sistema abierto lo que generó un caos.
IEEE generó un estándar llamado POSIX.
62 Arquitectura de Computadores
6363
[ Introducción ][ Introducción ]
Präsentation
Historia
Primer microprocesador en un chip Intel 4004 (1971)
6464
[ Introducción ][ Introducción ]
Präsentation
Historia
Intel 4004 (1971)
6565
[ Introducción ][ Introducción ]
Präsentation
Historia
Appel I (1976) 65 Arquitectura de Computadores
Steve Jobs & Steve Wosniak
6666
[ Introducción ][ Introducción ]
Präsentation
Historia
ALTAIR 8800 (1975) 66 Arquitectura de Computadores
6767
[ Introducción ][ Introducción ]
Präsentation
Historia
Apple II (1978) US$ 1930 67 Arquitectura de Computadores
6868
[ Introducción ][ Introducción ]
Präsentation
Historia
Microsoft (1978) 68 Arquitectura de Computadores
6969
[ Introducción ][ Introducción ]
Präsentation
Historia
La cuarta generación (desde 1980)
• Usan LSI (large scale integration).• Intel 8080 (8 bits) -> IBM PC (1980) con DOS.• Intel 80286 (1983), 80386 (1985) y 80486 (1989).• GUI (graphical User Interface) -> Macintosh• Microsoft adopta GUI y desarrolla Windows (sobre DOS)• Microsoft saca Windows 95 como sistema operativo, luego Windows 98 (basado en 16 bits), Windows NT (32 bits) con ideas de VAX VMS.• Windows NT 5.0 se transformó en Windows 2000• Windows 98 se transformó en Windows Me.• Windows XP
69 Arquitectura de Computadores
7070
[ Introducción ][ Introducción ]
Präsentation
Historia
La cuarta generación (desde 1980)
• UNIX se mantiene más fuerte en computadores potentes• Se basa en chips RISC de alto desempeño.• Pentium Liunx es una alternativa a Windows• Unix saca X Windows basado en GUI• Se introducen sistemas operativos en red (varios computadores conectados) y sistemas operativos distribuidos (múltiples procesadores).• continuará…
70 Arquitectura de Computadores
7171
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM PC (1981) 71 Arquitectura de Computadores
7272
[ Introducción ][ Introducción ]
Präsentation
Historia
Commodore 64 (1982)
72 Arquitectura de Computadores
7373
[ Introducción ][ Introducción ]
Präsentation
Historia
Disco Duro Memorex 10MB (1983) 73 Arquitectura de Computadores
7474
[ Introducción ][ Introducción ]
Präsentation
Historia
AT&T y Laboratorio Bell desarrollan C++ (1983)
74 Arquitectura de Computadores
#include main(){ char *s1, *s2; par{ s1 = "Hello"; s2 = "world\n"; } cout << s1 << s2 << endl; return(0);}
7575
[ Introducción ][ Introducción ]
Präsentation
Historia
IBM PC/AT (1983) 75 Arquitectura de Computadores
7676
[ Introducción ][ Introducción ]
Präsentation
Historia
Sony introduce el CD (1984) 76 Arquitectura de Computadores
7777
[ Introducción ][ Introducción ]
Präsentation
Historia
Commodore Amiga (1985)
77 Arquitectura de Computadores
7878
[ Introducción ][ Introducción ]
Präsentation
Historia
Macintosh (1984)
78 Arquitectura de Computadores
7979
[ Introducción ][ Introducción ]
Präsentation
Historia
X Windows para UNIX (1984)
79 Arquitectura de Computadores
8080
[ Introducción ][ Introducción ]
Präsentation
Historia
Sparcstation (1989) 80 Arquitectura de Computadores
8181
[ Introducción ][ Introducción ]
Präsentation
Historia
“Estoy construyendo un sistema operativo gratuito (no es más que un hobby, no será una cosa grande y profesional como GNU) para clónicos AT (con un 386 o 346).”
Linus Torvalds, Helsinki, Oct. 91
Nace LINUX 81 Arquitectura de Computadores
8282
[ Introducción ][ Introducción ]
Präsentation
Historia
Intel Pentium (1993) 82 Arquitectura de Computadores
8383
[ Introducción ][ Introducción ]
Präsentation
Historia
Appel Newton (1993) 83 Arquitectura de Computadores
8484
[ Introducción ][ Introducción ]
Präsentation
Historia
Windows 95 (1995) 84 Arquitectura de Computadores
8585
[ Introducción ][ Introducción ]
Präsentation
Historia
Power Macintosh (1994) 85 Arquitectura de Computadores
8686
[ Introducción ][ Introducción ]
Präsentation
Historia
86 Arquitectura de Computadores
8787
[ Introducción ][ Introducción ]
LENGUAJES, NIVELES Y MÁQUINAS LENGUAJES, NIVELES Y MÁQUINAS VIRTUALES.VIRTUALES.
Modelo Básico y necesidad de Modelo Básico y necesidad de
Modelo Jerárquico [Tanenbaum2000]Modelo Jerárquico [Tanenbaum2000]
8888
LENGUAJES, NIVELES Y LENGUAJES, NIVELES Y MÁQUINAS VIRTUALESMÁQUINAS VIRTUALES
Controlador de disco flexible. 16 comandos, c/u se especifica cargando entre 1 y 9 bytes en un registro del dispositivo. Comandos de lectura, escritura, movimiento del brazo, formateo de pistas. Inicialización, detección, reestablecimiento, recalibración del controlador y las unidades de disco.
8989
LENGUAJES, NIVELES Y LENGUAJES, NIVELES Y MÁQUINAS VIRTUALESMÁQUINAS VIRTUALES
Comandos básicos son READ y WRITE: requieren 13 parámetros empacados en 9 bytes. Los parámetros especifican: Dirección del bloque de disco, número de sectores por pista, modo de grabación empleado, etc. (Evitar la programación del HW, a través de máquinas virtuales con lenguajes de programación más cercanos a las personas.)
9090
MÁQUINAS MULTINIVELES MÁQUINAS MULTINIVELES ACTUALESACTUALES
Nivel 0: N. de lógica digital.Nivel 0: N. de lógica digital. Nivel 1: N. de microprogramación o Nivel 1: N. de microprogramación o
microarquitectura.microarquitectura. Nivel 2: N. de máquina Nivel 2: N. de máquina
convencional, de arquitectura del convencional, de arquitectura del set de instrucciones.set de instrucciones.
Nivel 3: N. de sistema operativo.Nivel 3: N. de sistema operativo. Nivel 4: N. de lenguaje ensamblador.Nivel 4: N. de lenguaje ensamblador. Nivel 5: N. de lenguajes orientados a Nivel 5: N. de lenguajes orientados a
problemasproblemas
9191
9292
9393
Interpretes / Traductor Interpretes / Traductor (Tanenbaum2000)(Tanenbaum2000)
Interpete: Interpete: Traductor:Traductor:
9494
Nivel 0: Nivel de lógica digital.Nivel 0: Nivel de lógica digital.
Corresponde al HW de la máquina. Corresponde al HW de la máquina. Está conformado por memorias RAM, Está conformado por memorias RAM, memorias ROM, registros, unidades memorias ROM, registros, unidades aritmético lógicas, unidad de aritmético lógicas, unidad de control, buses de datos, buses de control, buses de datos, buses de direcciones, bus de control, direcciones, bus de control, compuertas lógicas, fuentes de compuertas lógicas, fuentes de poder, etc.poder, etc.
9595
Nivel 0: Nivel de lógica digital.Nivel 0: Nivel de lógica digital.
Bajo este nivel existe un nivel Bajo este nivel existe un nivel denominado denominado nivel de dispositivonivel de dispositivo, , conformado por los elementos básicos conformado por los elementos básicos con los cuales están construidos las con los cuales están construidos las compuertas lógicas, a saber, los compuertas lógicas, a saber, los transistorestransistores. El funcionamiento de los . El funcionamiento de los transistores, o de los transistores, o de los semiconductores en general cae en el semiconductores en general cae en el campo de la campo de la física de estado sólido.física de estado sólido.
9696
Nivel 1: Nivel de microarquitectura Nivel 1: Nivel de microarquitectura (ó microprogramación).(ó microprogramación).
El nivel de microarquitectura está El nivel de microarquitectura está conformado por una conformado por una máquina virtual máquina virtual denominada microprograma. El denominada microprograma. El microprograma es un programa microprograma es un programa interprete de las instrucciones de interprete de las instrucciones de salida del nivel de máquina salida del nivel de máquina convencional, que generalmente se convencional, que generalmente se implementa en firmware.implementa en firmware.
9797
Nivel 1: Nivel de microarquitectura Nivel 1: Nivel de microarquitectura (ó microprogramación).(ó microprogramación).
La función del microprograma es La función del microprograma es generar los generar los valores lógicos (0 y 1)valores lógicos (0 y 1) de las líneas de control del HW de la de las líneas de control del HW de la máquina, que junto con un máquina, que junto con un secuenciamiento adecuado ejecutan secuenciamiento adecuado ejecutan sobre el Hardware (Hw) las sobre el Hardware (Hw) las instrucciones del nivel anterior.instrucciones del nivel anterior.
9898
Nivel 2: Nivel de máquina Nivel 2: Nivel de máquina convencional.convencional.
Este nivel se denomina también Este nivel se denomina también nivel de nivel de arquitectura del set de arquitectura del set de instrucciones.instrucciones.
En este nivel se definen cuestiones En este nivel se definen cuestiones como el set de instrucciones de como el set de instrucciones de lenguaje de máquina, el formato de lenguaje de máquina, el formato de las instrucciones, las formas de las instrucciones, las formas de direccionamiento, el largo y direccionamiento, el largo y funcionalidad de los registros (de funcionalidad de los registros (de propósito general y específico), propósito general y específico), etc.etc.
9999
Nivel 2: Nivel de máquina Nivel 2: Nivel de máquina convencional.convencional.
Los Los manuales de referenciamanuales de referencia de de lenguaje de máquina de los lenguaje de máquina de los fabricantes de un computador, fabricantes de un computador, tratan de la máquina virtual de tratan de la máquina virtual de nivel 2. El set de instrucciones de nivel 2. El set de instrucciones de lenguaje de máquina describe las lenguaje de máquina describe las instrucciones que el instrucciones que el microprograma lleva a cabo sobre microprograma lleva a cabo sobre el Hw.el Hw.
100100
Nivel 3: Nivel de sistema Nivel 3: Nivel de sistema operativo.operativo.
El nivel de SO está conformado por un El nivel de SO está conformado por un programa denominado sistema programa denominado sistema operativo. operativo.
El sistema operativo puede El sistema operativo puede visualizarse de dos formas:visualizarse de dos formas:
SO como máquina extendidaSO como máquina extendida: Presenta al : Presenta al programador una máquina extendida o programador una máquina extendida o máquina virtual, con un conjunto de máquina virtual, con un conjunto de instrucciones de alto nivel, con lo cual se instrucciones de alto nivel, con lo cual se configura una abstracción sencilla de los configura una abstracción sencilla de los elementos de una computadora.elementos de una computadora.
101101
Nivel 3: Nivel de sistema Nivel 3: Nivel de sistema operativo.operativo.
SO como administrador de recursosSO como administrador de recursos: : Los recursos de una computadora son: Los recursos de una computadora son: Procesadores, memoria, dispositivos Procesadores, memoria, dispositivos de E/S. El SO asegura el correcto uso de E/S. El SO asegura el correcto uso de los recursos de la computadora de los recursos de la computadora entre programas que piden el acceso a entre programas que piden el acceso a estos recursos que son compartidos.estos recursos que son compartidos.
102102
Nivel 3: Nivel de sistema Nivel 3: Nivel de sistema operativo.operativo.
Ejemplo: Un SO de red, ordena el Ejemplo: Un SO de red, ordena el uso de un recurso compartido uso de un recurso compartido como una impresora por los como una impresora por los diferentes usuarios. El nivel de diferentes usuarios. El nivel de sistema operativo es un sistema operativo es un nivel nivel híbridohíbrido. La mayoría de las . La mayoría de las instrucciones de este nivel están instrucciones de este nivel están presente en el nivel 2, por lo que presente en el nivel 2, por lo que son ejecutadas directamente por son ejecutadas directamente por el microprograma. el microprograma.
103103
Nivel 3: Nivel de sistema Nivel 3: Nivel de sistema operativo.operativo.
Además existen otras Además existen otras instrucciones que tiene que ver instrucciones que tiene que ver con con cuestiones como la cuestiones como la creación, ejecución y creación, ejecución y comunicación de procesoscomunicación de procesos (programa en ejecución).(programa en ejecución).
104104
Nivel 3: Nivel de sistema Nivel 3: Nivel de sistema operativo.operativo.
Las funciones del sistema Las funciones del sistema operativo son básicamente 4: operativo son básicamente 4:
Administración de procesos, Administración de procesos, Sistema de archivos, Sistema de archivos, Administración de memoria,Administración de memoria,Administración de los Administración de los
dispositivos de E/S.dispositivos de E/S.
105105
Nivel 4: Nivel de lenguaje Nivel 4: Nivel de lenguaje ensamblador.ensamblador.
Este nivel está conformado por un Este nivel está conformado por un programa traductor denominado programa traductor denominado ensamblador.ensamblador. El lenguaje El lenguaje ensamblador es una forma simbólica ensamblador es una forma simbólica de los lenguajes subyacentes. de los lenguajes subyacentes. En general corresponde a una forma En general corresponde a una forma simbólica del lenguaje de máquina simbólica del lenguaje de máquina convencional o lenguaje de máquina convencional o lenguaje de máquina que es un lenguaje binario. que es un lenguaje binario.
106106
Nivel 4: Nivel de lenguaje Nivel 4: Nivel de lenguaje ensamblador.ensamblador.
Los símbolos del lenguaje Los símbolos del lenguaje ensamblador son típicamente ADD, ensamblador son típicamente ADD, SUB, MUL, DIV, que representan SUB, MUL, DIV, que representan operaciones como sumar, restar, operaciones como sumar, restar, multiplicar y dividir.multiplicar y dividir.
La tarea del ensamblador en una La tarea del ensamblador en una primera instancia es traducir el primera instancia es traducir el lenguaje simbólico a lenguaje de lenguaje simbólico a lenguaje de máquina. máquina.
107107
Nivel 4: Nivel de lenguaje Nivel 4: Nivel de lenguaje ensamblador.ensamblador.
El programa ensamblador como El programa ensamblador como traductor toma el programa fuente traductor toma el programa fuente (programa con instrucciones en (programa con instrucciones en símbolos) y lo convierte a un símbolos) y lo convierte a un programa objeto,programa objeto, que es el que es el programa que realmente se ejecuta.programa que realmente se ejecuta.
108108
Nivel 4: Nivel de lenguaje Nivel 4: Nivel de lenguaje ensamblador.ensamblador.
Cuando se ejecuta el programa Cuando se ejecuta el programa objeto hay tres niveles presentes: objeto hay tres niveles presentes:
El nivel de microprogramación, El nivel de microprogramación, el nivel de máquina convencional y el nivel de máquina convencional y el nivel de sistema operativo.el nivel de sistema operativo.
109109
Nivel 4: Nivel de lenguaje Nivel 4: Nivel de lenguaje ensamblador.ensamblador.
En tiempo de ejecución hay En tiempo de ejecución hay 3 3 programasprogramas presentes en memoria: presentes en memoria:
El programa objeto del usuario, El programa objeto del usuario, el sistema operativo y el sistema operativo y el microprograma.el microprograma.
110110
Nivel 5 y 6Nivel 5 y 6
Nivel 5: Nivel de lenguajes orientados a Nivel 5: Nivel de lenguajes orientados a problemas.problemas.
Este nivel está constituido por Este nivel está constituido por programas traductores programas traductores denominados denominados compiladores.compiladores.
Los lenguajes de nivel 5 son Los lenguajes de nivel 5 son denominados de alto nivel dado que denominados de alto nivel dado que son muy cercanos a las personas. son muy cercanos a las personas. Ejemplos de estos lenguajes son el Ejemplos de estos lenguajes son el Pascal, el Fortran, C, Cobol, entre Pascal, el Fortran, C, Cobol, entre otros.otros.
111111
Nivel 5 y 6Nivel 5 y 6
Nivel 6 y superiores: Aplicaciones.Nivel 6 y superiores: Aplicaciones.
Este nivel provee de Este nivel provee de máquinas máquinas virtuales orientadasvirtuales orientadas a aplicaciones a aplicaciones específicas. Entre las máquinas específicas. Entre las máquinas virtuales presentes en este nivel virtuales presentes en este nivel están las planillas de cálculo, están las planillas de cálculo, procesadores de texto, etc.procesadores de texto, etc.
112112
Otras ClasificacionesOtras Clasificaciones
La arquitectura Von Newman sigue el ciclo de La arquitectura Von Newman sigue el ciclo de ejecución secuencial de instrucciones (una a ejecución secuencial de instrucciones (una a una) que opera sobre datos escalares. No una) que opera sobre datos escalares. No obstante hay otros modelos de arquitectura.obstante hay otros modelos de arquitectura.
La clasificación más aceptada desde el punto de La clasificación más aceptada desde el punto de vista de la estructura del Computador, es la de vista de la estructura del Computador, es la de “Flynn”, la cual se realiza según el número de “Flynn”, la cual se realiza según el número de Instrucciones o datos implicados en cada ciclo Instrucciones o datos implicados en cada ciclo de relojde reloj
113113
Clasificaciones ArquitecturasClasificaciones Arquitecturas
SISD (Single Instruction – Single Data) SISD (Single Instruction – Single Data) construccion de procesadores construccion de procesadores Superescalares, que arrancan varias Superescalares, que arrancan varias instrucciones simultaneamente, aunque se instrucciones simultaneamente, aunque se siguen considerando SISD, como los siguen considerando SISD, como los PowerPC y los Intel. (Von Newman)PowerPC y los Intel. (Von Newman)
SIMD (Single Instruction – Multiple Data): SIMD (Single Instruction – Multiple Data): Computadores vectorialesComputadores vectoriales
114114
115115
Taxonomía de FlynnTaxonomía de Flynn
MIMD (Multiple Instruction – Multiple Data): MIMD (Multiple Instruction – Multiple Data): Multiprocesadores con Memorias Multiprocesadores con Memorias Compartidas y los Multicomputadores con Compartidas y los Multicomputadores con Memoria Independiente. Procesadores Memoria Independiente. Procesadores Multinucleo, que son Chip con múltiples Multinucleo, que son Chip con múltiples procesadores en su interior.procesadores en su interior.
Máquinas MIMD son Core Duo (dos Máquinas MIMD son Core Duo (dos procesadores) y los Core Quad (cuatro procesadores) y los Core Quad (cuatro procesadores), también de Intel, donde procesadores), también de Intel, donde cada procesador es a su vez superescalar. cada procesador es a su vez superescalar.
116116
Taxonomía de FlynnTaxonomía de Flynn
SISD (Single Instruction – Single Data) SISD (Single Instruction – Single Data) construccion de procesadores construccion de procesadores Superescalares, que arrancan varias Superescalares, que arrancan varias instrucciones simultaneamente, aunque se instrucciones simultaneamente, aunque se siguen considerando SISD, como los siguen considerando SISD, como los PowerPC y los Intel. PowerPC y los Intel.
MISD (Multiple Instruction – Simple Data): MISD (Multiple Instruction – Simple Data): Diversas instrucciones operan sobre un Diversas instrucciones operan sobre un único Dato. Son las más alejadas de las único Dato. Son las más alejadas de las arquitecturas convencionales. arquitecturas convencionales.