Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ICI-223
Ing Civil Informtica Depto de Computacin e Informtica
1
Preliminares
Ing. Rodrigo Cofr Loyola Profesor Auxiliar Departamento de Computacin e Informtica Clases Lunes 16:50 17:55 Hrs Sala 28 Viernes 10:50 12:55 Hrs Sala 35 Tutorias: Mircoles 10:50 12:50 Hrs Viernes 14:30 16:30 Hrs.
Descripcin y Objetivo
El curso est orientado a que el alumno obtenga una visin tcnica de la organizacin y arquitectura de los computadores modernos mediante el anlisis, diseo y evaluacin de los niveles de abstraccin en la cual estn organizados los sistemas computacionales modernos.
3
Descripcin y Objetivo
Se disean y simulan en computador arquitecturas bsicas dedicadas y generalizadas, y se resuelven problemas de programacin utilizando lenguajes de bajo nivel de las arquitecturas estudiadas. En conjunto con las clases expositivas, se realizarn clases de ejercitacin Laboratorios y resolucin de tareas grupales.
Temario Inicial
1 Introduccin 2 Organizacin del Computador 3 Sistemas de Memoria 4 Interfaces y Comunicaciones 5 Organizacin Funcional 6 Multiprocesadores y Arquitecturas Alternativas 7 Aumento de Desempeo 8 Arquitecturas Contemporneas
Metodologa
Autoaprendizaje - Lecturas Clases Expositivas Trabajos grupales Laboratorios:
Ensamblador (6-7) + Circuitos Digitales (Proyecto-Etapas). Hardware y configuracin PC () Trabajo Grupal de Investigacin (grupos semestrales)
Controles
Ayudantas: Ensamblador
Cupos 25 Alumnos por Seccin 2 Secciones Inscripciones con Profesor Horarios: Seccin 1: Mircoles 15:30 16:30 Seccin 2: Mircoles 16:55 17:50
8
Laboratorio Ensamblador+Proyecto
27 Octubre al 07 Noviembre 2008
Lab: 27/10 - 29/10 31/10 - 03/11 -05/11 + Consultas 07/11 Horario 15:35 Hrs 17:50 Hrs
Cupo 3 Grupos Por Laboratorio Mximo 4 alumnos por Grupo Inscribirse con el Profesor
9
Observaciones
La inasistencia a un test ser evaluada con un 1 y no se recuperar. Los tests pueden o no ser avisados con anticipacin. Se exige el 80% de asistencia a clases, y el 100% a los laboratorios, en caso contrario reprobar la asignatura con la nota mnima.
10
Bibliografa Mnima
[Morris1991] Morris M, Ingeniera Computacional: Diseo del Hardware, prentice Hall, 1991. [Stalling2006] Stalling Williams, organizacin y arquitectura de Computadoras, 7 Edicin, Pearson Educacin, 2006.(7 Ejemplares) [Paterson1995] Paterson D, organizacin y diseo de computadores: La interfaz Hardware/Software, Mc Graw-Hill, 1995.
11
Bibliografa Mnima
[Tanenbaum2000] Tanenbaum A, Organizacin de Computadores: Un enfoque Estructurado, 4ta Edicin, Prentice-Hall, 2000. (10 Ejemplares) [Martnez2000] Martnez J, Organizacin y Arquitectura de Computadores, Prentice-Hall, 2000. [Ujaldon2003] Ujaldon Martnez Manuel, Arquitectura del PC, Volumen I a IV, Editorial Ciencia-3, Madrid, 2003.
12
Bibliografa Mnima
[Hennessy2002] Patterson, Computer Architecture: A Quantitative Approach, 3era Edition, Morgan-Kaufmann, 2002.
13
Bibliografa Complementaria
[Ujaldon2005] Ujaldon Martnez Manuel, Procesadores Grficos para PC, Editorial Ciencia-3, Madrid, 2005. [Ujaldon2007] Ujaldon Martnez Manuel, Arquitectura del PC: 1400 cuestiones y problemas resueltos, Editorial Ciencia-3, Madrid, 2007.
14
Metodologa
Desarrollo de clases expositivas de parte del profesor. Desarrollo de laboratorios (asistencia obligatoria). Los alumnos debern participar activamente en clases mediante la proposicin de soluciones a problemas planteados por el profesor u otros alumnos.Se propiciar el trabajo en grupo, de manera que los alumnos colaboren entre s, tanto en clases tericas como prcticas.
15
Mquina electrnica, analgica o digital, dotada de una memoria de gran capacidad y de mtodos de tratamiento de informacin, capaz de resolver problemas matemticos y lgicos mediante la utilizacin automtica de programas informticos.
Se acepta computador o computadora.
16
Prsentat ion
[ Introduccin ] Qu es un computador?
DEFINICIN DE Stallings:
Mquina digital electrnica programable para el tratamiento automtico de la informacin, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de tales operaciones.
17
Prsentat ion
Introduccin
Distinguir entre Arquitectura y organizacin Arquitectura se refiere a los atributos de un sistema que son visibles para un programador Impacto Directo en la ejecucin lgica de un programa: Conjunto de instrucciones, nmero de bits usados en la representacin de Datos (nmeros, caracteres, etc), los mecanismos de entrada Salida, y las tcnicas para direccionamiento de memoria.
18
Introduccin
La organizacin de Computadores se refiere a las unidades funcionales y sus interconexiones que dan lugar a especificaciones arquitectnicas. Detalles Hardware transparentes al programador tales como seales de control, interfaces entre el computador y los perifricos y la tecnologa de Memoria usada.
19
[ Introduccin ]
Transferencia de datos
Funcionamiento
Control
Almacenamiento de datos
Procesamiento de datos
20
Prsentat ion
[ Introduccin ]
TRANSFERENCIA
Transferencia de datos
Funcionamiento
Control
Almacenamiento de datos
Procesamiento de datos
21
Prsentat ion
[ Introduccin ]
ALMACENAMIENTO
Transferencia de datos
Funcionamiento
Control
Almacenamiento de datos
Procesamiento de datos
22
Prsentat ion
[ Introduccin ]
PROCESAMIENTO CON USO DE MEMORIA
Transferencia de datos
Funcionamiento
Control
Almacenamiento de datos
Procesamiento de datos
23
Prsentat ion
[ Introduccin ]
PROCESAMIENTO CON USO DE MEMORIA Y TRANSFERENCIA
Transferencia de datos
Funcionamiento
Control
Almacenamiento de datos
Procesamiento de datos
24
24
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Estructura
Computer
Central Processing Unit
Peripherals
Main Memory
Computer
Systems Interconnection
25
25
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Estructura
CPU
Computer
I/O System Bus Memory CPU
Registers
Control Unit
26
26
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Estructura
Control Unit
CPU
ALU Internal Bus Registers Control Unit
Lgica Secuencia
27
27
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Generacin
0 1 2 3 4
Aos
hasta 1945
Caractersticas
Sistemas mecnicos y electro-mecnicos
1945 1955 Tubos al vaco, tableros 1955 1965 Transistores y sistemas por lotes 1965 1980 Circuitos integrados y multiprogramacin desde 1980 Computadores personales
28
28
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
La generacin 0 (hasta 1945)
bacos Calculadoras mecnicas. Sistemas basados en rels.
Historia
29
29
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Usada para calcular tablas numricas, calculaba cualquier funcin algebraica y almacenaba nmeros. Se programaba con tarjetas.
Charles Babbage y Ada Lovelace.
30
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
31
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
32
32
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes.
Colossus (1945)
33
33
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
ENIAC (1946)
34
34
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
UNIVAC (1946)
35
35
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
Primera mquina que funcion con un programa almacenado. John von Neumann, Princeton
36
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
37
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Transistor (1947)
38
38
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
JOHNNIAC (1954)
39
39
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
40
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
Lnea de programa
A = 1 5 6
Tarjeta perforada
41
41
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
42
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
FORTRAN (1957)
43
43
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
4KB de memoria expandible a 16KB. Buena para leer tarjetas, copiar cintas e imprimir resultados, pero mala para cclulos numricos. Se utilizaba con fines comerciales (bancos, etc.)
IBM 1401(1959)
44
44
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
45
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
IBM 7094
46
46
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
a) b) c) d) e) f)
IBM 1401 IBM 7094: los programadores llevan tarjetas La 1401 lee un lote de tarjetas y los graba en la cinta Un operador lleva la cinta a la 7094 La 7094 realiza los cmputos Un operador lleva la cinta a una 1401 La 1401 imprime las salidas
47
47
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Fortran Monitor System
Historia
Trabajo en FORTRAN
48
48
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
49
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
50
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
51
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
52
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
53
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Circuitos integrados
54
54
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
IBM 360
55
55
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
GE 625 (1965)
56
56
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
57
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
58
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
59
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
MULTICS (1976)
60
60
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
PDP-11/70 (1974)
61
61
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
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 estndar llamado POSIX.
62
62
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
[ Introduccin ]
Historia
[ Introduccin ]
Historia
Appel I (1976)
65
65
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
66
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
67
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Microsoft (1978)
68
68
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
69
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
70
70
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
IBM PC (1981)
71
71
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Commodore 64 (1982)
72
72
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
73
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
#include main() { char *s1, *s2; par{ s1 = "Hello"; s2 = "world\n"; } cout << s1 << s2 << endl; return(0); }
74
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
75
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
76
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
77
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Macintosh (1984)
78
78
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
79
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Sparcstation (1989)
80
80
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Estoy construyendo un sistema operativo gratuito (no es ms que un hobby, no ser una cosa grande y profesional como GNU) para clnicos AT (con un 386 o 346). Linus Torvalds, Helsinki, Oct. 91
Nace LINUX
81
81
Prsentat ion
Arquitectura de Computadores
[ Introduccin ]
Historia
82
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
83
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
Windows 95 (1995)
84
84
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
85
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
Historia
86
86
Arquitectura de Computadores
Prsentat ion
[ Introduccin ]
LENGUAJES, NIVELES Y MQUINAS VIRTUALES.
Modelo Bsico y necesidad de Modelo Jerrquico [Tanenbaum2000]
87
88
0: N. de lgica digital. Nivel 1: N. de microprogramacin o microarquitectura. Nivel 2: N. de mquina convencional, de arquitectura del set de instrucciones. Nivel 3: N. de sistema operativo. Nivel 4: N. de lenguaje ensamblador. Nivel 5: N. de lenguajes orientados a problemas
90
91
92
93
Corresponde al HW de la mquina. Est conformado por memorias RAM, memorias ROM, registros, unidades aritmtico lgicas, unidad de control, buses de datos, buses de direcciones, bus de control, compuertas lgicas, fuentes de poder, etc.
94
Los manuales de referencia de lenguaje de mquina de los fabricantes de un computador, tratan de la mquina virtual de nivel 2. El set de instrucciones de lenguaje de mquina describe las instrucciones que el microprograma lleva a cabo sobre el Hw.
99
SO como administrador de recursos: Los recursos de una computadora son: Procesadores, memoria, dispositivos de E/S. El SO asegura el correcto uso de los recursos de la computadora entre programas que piden el acceso a estos recursos que son compartidos.
101
Un SO de red, ordena el uso de un recurso compartido como una impresora por los diferentes usuarios. El nivel de sistema operativo es un nivel hbrido. La mayora de las instrucciones de este nivel estn presente en el nivel 2, por lo que son ejecutadas directamente por el microprograma.
102
Adems existen otras instrucciones que tiene que ver con cuestiones como la creacin, ejecucin y comunicacin de procesos (programa en ejecucin).
103
nivel est conformado por un programa traductor denominado ensamblador. El lenguaje ensamblador es una forma simblica de los lenguajes subyacentes. En general corresponde a una forma simblica del lenguaje de mquina convencional o lenguaje de mquina que es un lenguaje binario.
105
smbolos del lenguaje ensamblador son tpicamente ADD, SUB, MUL, DIV, que representan operaciones como sumar, restar, multiplicar y dividir.
La
tarea del ensamblador en una primera instancia es traducir el lenguaje simblico a lenguaje de mquina.
106
programa ensamblador como traductor toma el programa fuente (programa con instrucciones en smbolos) y lo convierte a un programa objeto, que es el programa que realmente se ejecuta.
107
109
Nivel 5 y 6
Nivel 5: Nivel de lenguajes orientados a problemas. Este nivel est constituido por programas traductores denominados compiladores. Los lenguajes de nivel 5 son denominados de alto nivel dado que son muy cercanos a las personas. Ejemplos de estos lenguajes son el Pascal, el Fortran, C, Cobol, entre otros.
110
Nivel 5 y 6
Nivel 6 y superiores: Aplicaciones.
Este nivel provee de mquinas virtuales orientadas a aplicaciones especficas. Entre las mquinas virtuales presentes en este nivel estn las planillas de clculo, procesadores de texto, etc.
111
Otras Clasificaciones
La arquitectura Von Newman sigue el ciclo de ejecucin secuencial de instrucciones (una a una) que opera sobre datos escalares. No obstante hay otros modelos de arquitectura. La clasificacin ms aceptada desde el punto de vista de la estructura del Computador, es la de Flynn, la cual se realiza segn el nmero de Instrucciones o datos implicados en cada ciclo de reloj
112
Clasificaciones Arquitecturas
SISD (Single Instruction Single Data) construccion de procesadores Superescalares, que arrancan varias instrucciones simultaneamente, aunque se siguen considerando SISD, como los PowerPC y los Intel. (Von Newman) SIMD (Single Instruction Multiple Data): Computadores vectoriales
113
114
Taxonoma de Flynn
MIMD (Multiple Instruction Multiple Data): Multiprocesadores con Memorias Compartidas y los Multicomputadores con Memoria Independiente. Procesadores Multinucleo, que son Chip con mltiples procesadores en su interior. Mquinas MIMD son Core Duo (dos procesadores) y los Core Quad (cuatro procesadores), tambin de Intel, donde cada procesador es a su vez superescalar.
115
Taxonoma de Flynn
SISD (Single Instruction Single Data) construccion de procesadores Superescalares, que arrancan varias instrucciones simultaneamente, aunque se siguen considerando SISD, como los PowerPC y los Intel. MISD (Multiple Instruction Simple Data): Diversas instrucciones operan sobre un nico Dato. Son las ms alejadas de las arquitecturas convencionales.
116