Operaciones (Transferencia de Datos)
Transferencia
de datos
Control
Almacenamiento
de datos
Procesamiento
de datos
Ej: Teclado a Monitor
Operaciones (Almacenamiento)
Transferencia
de datos
Control
Almacenamiento
de datos
Procesamiento
de datos
Ej: Grabar un documento
Operaciones (procecamiento desde/hasta almacenamiento)
Transferencia
de datos
Control
Almacenamiento
de datos
Procesamiento
de datos
Ej: Modificar el saldo de una cuenta
Operaciones (procesamiento desde almacenamiento a E/S)
Transferencia
de datos
Control
Almacenamiento
de datos
Procesamiento
de datos
Ej: Imprimir un resumen de cuenta
Computador
Memoria
Principal
Entrada
Salida
Sistema de
interconexión
periféricos
Líneas de
comunicación
Unidad
Central de
Proceso
CPU
Computador
Estructura (computadora)
Computer
Unidad
Aritmética y
Lógica
Unidad
de
Control
Interconexión
Interna de la CPU
Registros
CPU
I/O
Memory
System
Bus
CPU
Estructura (CPU)
CPU
Memoria
de control
Unidad de control
de registros y
decodificadores
Lógica
Secuencial
Registers
Internal
Bus
Unidad de Control
ALU
Control
Unit
Estructura (UC)
Un ejemplo
Un aviso de segunda mano
MHz??
MB??
PCI??
USB??
L1 Cache??
Que significa todo esto?
Algunas abreviaturas
Medidas de capacidad y velocidad:
Kilo- (K) = mil = 103 y 210
Mega- (M) = 1 millón = 106 y 220
Giga- (G) = 100 millones = 109 y 230
Tera- (T) = 1 billón = 1012 y 240
Peta- (P) = 1000 millones = 1015 y 250
Que una medida corresponda a potencias de 10 ó 2 depende de la magnitud a medir.
Algunas abreviaturas
Hertz = ciclos de reloj por segundo (frecuencia)
1 MHz = 1,000,000 Hz
1GHz = 1,000 MHz
La velocidad del procesador se mide en MHz o GHz.
Byte = unidad de almacenamiento
1 KB = 210 = 1024 Bytes
1 MB = 220 = 1,048,576 Bytes
La memoria principal (RAM) se mide en MB
El almacenamiento en disco se mide en GB para sistemas chicos, en TB para sistemas mas grandes.
Word (palabra) = unidad de transferencia: cantidad de bits que pueden moverse simultáneamente dentro de la CPU
8 bits, 16 bits, 32 bits, 64 bits
Algunas abreviaturas
Medidas de tiempo y espacio:
Mili- (m) = milésima = 10 -3
Micro- (?) = millonésima = 10 -6
Nano- (n) = mil millonésima= 10 -9
Pico- (p) = billonésima = 10 -12
Femto- (f) = mil billonésima = 10 -15
Un ejemplo
Milisegundo = milésima de segundo
El tiempo de acceso de los HD suele ser de 10 a 20 milisegundos.
Nanosegundo = mil millonésima de segundo
El tiempo de acceso a RAM suele ser de 50 a 70 nanosegundos.
Micron (micrómetro) = millonésima de un metro
Los circuitos en los chips de una computadora suelen medirse en micrones.
Un ejemplo
Notar que el tiempo de un ciclo es inversamente proporcional a la frecuencia del reloj.
Un bus operando a 133 MHz tiene un tiempo de ciclo de 7.52 nanosegundos (T = 1/F):
Volvamos al aviso…
133,000,000 ciclos/segundo = 7.52 ns/ciclo
El bus del sistema mueve datos dentro de la computadora. Cuando más rapido el bus mejor la performance. Este corre a 133MHz.
El microprocesador es el cerebro del sistema. Ejecuta las instrucciones de los programas. Este es un Pentium III (Intel) corriendo a 667MHz.
Un ejemplo
Las computadoras con mucha memoria principal pueden correr programas más grandes con mayor velocidad que las computadoras que tienen poca memoria.
RAM es la sigla para nombrar a memoria de acceso aleatorio. Esto significa que los contenidos pueden ser accedidos directamente si se conoce su locación.
El cache es un tipo de memoria temporaria que puede ser accedida más rapidamente que la RAM.
Un ejemplo
y 2 niveles de cache de memoria, el cache de nivel 1 (L1) es más chica y (probablemente) más rapida que la cache L2.
Este sistema tiene 64MB de una memoria dinámica RAM sincrónica (SDRAM) . . .
Un ejemplo
Este es de 30GB. 7200 RPM es la velocidad de rotacion del disco. En gral, cuanto más rapido gira el disco más datos puede enviar a la RAM.
La capacidad de HD determina la cantidad y el tamaño de los datos que podemos almacenar.
Un ejemplo
Un CD-ROM puede almacenar entre 640 y 700MB de datos. 48x describe su velocidad.
EIDE (enhanced integrated drive electronics): describe cómo el HD debe comunicarse con otros componentes.
Un ejemplo
Este sistema tiene 4 puertos.
Los puertos permiten el movimiento de datos entre el sistema y los dispositivos externos.
Un ejemplo
Los puertos serial envían datos como una serie de pulsos sobre 1 o 2 líneas de datos, también denominados puertos RS-232.
Los puertos paralelos envían datos como un solo pulso sobre varias líneas de datos.
USB, universal serial bus, es una interface serie inteligente que se auto-configura (plug and play)
Un ejemplo
Los buses del sistema puede ser ampliados con buses dedicados a la E/S. El PCI, peripheral component interface, es un ejemplo.
Este sistema tiene dos dispositivos PCI: una tarjeta de sonido y un modem.
Un ejemplo
El numero de veces por segundo que la imagen del monitor se refresca se llama tasa de refresco. El dot pitch se relaciona con cuan clara es la imagen.
Este monitor tiene un dot pitch de 0.28 mm y una tasa de refresco de 85Hz.
La tarjeta de video contiene memoria y programas para manejar el monitor.
Un ejemplo
Organización del Computador 1
SubHistoria
Primeras computadoras
Ábacos
Calculadoras mecánicas
Sistemas basados en relés
Maquinas diferenciales de Babbage
1822: Primera computadora (mecánica)
Usaba el método de las diferencias finitas para el cálculo de polinomios de 2do grado.
Requería aprox. 25.000 partes.
Fracaso en el intento
1847: Otra versión más pequeña
No llego a construirse
Fue reproducida por el Museo de Ciencia en 1985
Maquina analítica (1834)
Primera Computadora Digital (mecánica)
Calculaba cualquier función algebraica y almacenaba números.
Se programaba con tarjetas.
Charles Babbage y Ada Lovelace.
Fracaso en el intento…
Harvard Mark I (1939-1944)
IBM y la universidad de Harvard
Electromecanico, 760.000 ruedas!
800km de cables!
Basado en la maquina analitica de Babagge
Decimal
0.3 a 10 segundos por cálculo
Programable mediante una cinta de papel
Se uso hasta 1959
Grace Hooper: popularizo el nombre Bug
Escribió en su cuaderno de trabajo :"Relé #70 Panel F insecto en Relé".
Primera Generación
1940-1955
Utilizan tubos al vacío
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 (conectando cables en un tablero por ejemplo).
No existían los sistemas operativos.
En 1950 se introducen las tarjetas perforadas.
Atanasoff Berry Computer (1939 – 1942)
Primera computadora digital (binaria)
No era de propósito general
Resolvía sistemas de ecuaciones lineales.
John Atanasoff y Clifford Berry de la Iowa State University.
Colossus (1943)
Desarrollo Británico
Diseñada para descrifar los mensajes encriptados por los alemanes
Participo Turing
No se conoció hasta los 80 (Top Secret)
Maquina Alemana Enigma150,000,000,000,000,000,000 combinacionesPero los Aliados pudieron descifrar los mensajes
ENIAC (1946)
Electronic Numerical Integrator and Computer
John Mauchly and J. Presper Eckert (Pennsylvania)
Primera computadora de propósito general
Se programaba cableando
Construida entre 1943-1946 para calcular trayectoria de las armas
Pero se terminó tarde
Von Newman participó de las últimas etapas del proyecto
Se usó hasta 1955
ENIAC – Detalles
Decimal (no binaria)
20 acumuladores de 10 dígitos
Programada manualmente usando switches
18,000 válvulas
30 toneladas !
2.40 m ancho x 30 m largo !
140 kW de consumo
5,000 adiciones por segundo
500 Flops
El modelo de von Neumann
Antes: programar era conectar cables
Hacer programas era mas una cuestión de ingeniería electrónica
Cada vez que había que calcular algo distinto había que reconectar todo.
Mauchly and Eckert (ENIAC) documentaron la idea de almacenar programas como base de la EDVAC
Pero no lo publicaron
John Von Neumann
1903 (Hungría) 1957
Dr. en matemática y química
Publicó y publicitó la idea de programa almacenado en memoria
No esta claro que se le haya ocurrido a él
von Neumann/Turing
Los datos y programas se almacenan en una misma memoria de lectura–escritura
Los contenidos de esta memoria se direccionan indicando su posición sin importar su tipo
Ejecución en secuencia (salvo que se indique lo contrario)
Manchester Mark I (1948)
Tambien llamada Baby
Usada para demostrar el concepto de programa almacenado
En 1948 se contrató a Turing para el desarrolo de un lenguaje de programación para la máquina
Primer programa de la HM1
000 CI = S
001 A = A – S
010 A = – S
011 If A < 0, CI = CI + 1
100 CI = CI + S
101 A = A – S
110 S = A
111 HALT
Obtenía el máximo factor propio de A
UNIVAC (1949)
Primera computadora comercial
Eckert-Mauchly Computer Corporation
(Universal Automatic Computer)
Incorpora el uso de cintas magnéticas
Cálculos para el censo de USA
Fin de los 50 – UNIVAC II
+rápida
+memoria
Tarjetas perforadas
JOHNNIAC (1954)
Clone de la IAS
Máquina que funcionaba con tarjetas.
IBM 650 (1955)
Primera computadora producida en masa
Fuera de circulación en 1969
IBM 704 (1955)
Primera máquina comercial con hardware de punto flotante
5 KFLOPS.
Segunda generación
1955-1966
Se introducen los transistores.
Más baratos
Mas Chicos
Menos disipación de calor
Silicio (arena)
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
Los operadores toman las tarjetas del programa y colocan también los del compilador.
Se crea el proceso por lotes que agrupa trabajos.
Nace la microprogramación
Transistor (1947)
FORTRAN (1957)
Primer compilador FORTRAN para IBM 704
(Formula Translator)
IBM 1401(1959)
4KB de memoria expandible a 16KB.
Buena para leer tarjetas, copiar cintas e imprimir resultados,
Mala para cáclulos numéricos.
Se utilizaba con fines comerciales (bancos, etc.)
IBM 7094 (1962)
Buena para hacer cómputos
Se utilizaba con fines científicos.
IBM 7094 (1962)
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 cómputos
Un operador lleva la cinta a una 1401
La 1401 imprime las salidas
Trabajo en FORTRAN
Fortran Monitor System
Comienzo de los Sistemas Operativos
DEC PDP-1 (1961)
4K de palabras de 18 bits.
US$ 120,000
< 5% del precio de la IBM 7094
Primer video–juego. Estudiantes de MIT (1962)
Implementado en una PDP-1
Invención del Mouse (1964)
Tercera Generación
1965-1980
Se introducen los circuitos integrados
Bajan los costos
Sube el desempeño
Se introduce la multiprogramación
tiempo compartido entre usuarios
Se introducen los discos duros
Circuitos integrados
Primer circuito integrado
Jack Kilby (1958)
1 transistor, un capacitor, y 3 resistencias
10×15 mm
Pentium 4
55 millones de transistores
Un pelo = 75 micrones
Transistor actual = 0.3 micrones!
IBM 360 (1964)
Multiprogramación
Terminales bobas
Software compatible con IBM 7094, 1401 entre otros.
Aparece el byte de 8bits
DEC PDP-8 (1964)
Primer minicomputador
No necesita una habitación con aire acondicionado
Lo bastante pequeño para colocarlo en una mesa de laboratorio
US$ 16,000
Fundación de Intel (1968)
Andy Grove, Robert Noyce y Gordon Moore
Lenguaje C (1972)
Laboratorio Bell desarrolla el lenguaje C
#include
main()
{
for(;;)
printf("Hello world…"n);
}
Cray 1 (1976)
Seymour Cray
Primera supercomputadora
Procesamiento vectorial
12 unidades procesando en paralelo
Aprox. 120 MFlops
MULTICS (1976)
Impulso en el desarrollo de SO timesharing
Primer microprocesador en un chip Intel
Intel 4004 (1971)
CPU de 4 bits
2300 transistores
Usado para calculadoras
Dispositivos de control
Intel 8080 (1974)
8 bits datos
16 bits direcciones
ALTAIR 8800 (1975)
Primera computadora personal
Tenía un Intel 8080
Apple I (1976)
Steve Jobs & Steve Wosniak
Apple II (1978)
Se podía aumentar la RAM
Tenía 8 slots de expansión
Microsoft (1978)
1975 Basic para la Altair
1981 acuerdan con IBM el desarrollo de DOS
Cuarta generación
Desde 1980
Usan VLSI (large scale integration).
> 100,000 componentes por chip
Facilita la creación de microprocesadores
Intel 8080 (8 bits)
IBM PC (1981) con DOS.
Intel 80286, 80386 y 80486.
Aparecen las terminales gráficas (GUI)
Macintosh
Microsoft adopta GUI y desarrolla Windows (sobre DOS)
Aparecen la filosofía RISC
IBM PC (1981)
Usa el Intel 8088
Sistema DOS (Microsoft)
1983: XT, con disco rígido
Commodore 64 (1982)
Sony introduce el CD (1984)
Macintosh (1984)
Linux (1991)
Estoy construyendo un sistema operativo gratuito (no es más que un hobby, no será una cosa grande y profesional como GNU) para clones AT (con un 386 o 486).
Linus Torvalds, Helsinki, Oct. 91
Pentium (1993)
Incorpora ideas de maquinas RISC
1994: Pentium Bug
5505001 / 294911 = 18.66600093 (Pentium)
5505001 / 294911 = 18.666651973 (Powerpc)
X = 5505001, Y = 294911
Z = (X/Y)*Y – X (deberia dar 0)
Pentium con Bug: -256.00000
Resumen
Tubos de vacío – 1946-1957
Transistores – 1958-1964
Small scale integration (SSI) hasta 1965
Hasta 100 dispositivos en un chip
Medium scale integration (MSI) – hasta 1971
100-3,000 dispositivos en un chip
Large scale integration (LSI) – 1971-1977
3,000 – 100,000 dispositivos en un chip
Very large scale integration (VSLI) – 1978 -1991
100,000 – 100,000,000 dispositivos en un chip
Ultra large scale integration (ULSI) 1991 –
Mas de 100,000,000 dispositivos en un chip
Desarrollo
Moores Law (1965)
Gordon Moore, fundador de Intel
La densidad de transistores en un circuito integrado se duplicara cada año
Versión contemporaria:
La densidad de chips de silicio se duplica cada 18 meses.
Pero esta ley no puede durar por siempre…
Desarrollo
Rocks Law
Arthur Rock, ejecutivo de finanzas de Intel
El costo de equipamiento necesario para construir semiconductores se duplicará cada cuatro años
En 1968, construir una planta para chips costaba alrededor de US$ 12,000
Mas o menos lo que salía una casa linda en la periferia de la ciudad
Un muy buen sueldo anual de un ejecutivo
1.5 Historical Development
Rocks Law
En 2003, una fábrica de chips costaba aprox. US$ 2,500 millones.
Esto es mas que el producto bruto de algunos paises chicos como Belize y la República de Sierra Leona.
Intel (1)
8080
Primer microprocessor de uso general
8 bit
Usado en la primer PC Altair
8086
Mucho más poderoso
16 bit
Cache de instruciones, prefetch de instrucciones
8088 (bus externo de 8 bits) Primera PC de IBM
80286
Direcciona 16 Mbytes de memoria
Intel (2)
80386
32 bit
Soporte para multitarea
80486
Cache y pipeline de instrucciones
co-procesador matématico
Pentium
Superscalar
Varias instrucciones ejecutando en paralelo
Pentium Pro
Predicción de saltos
Ejecución especulativa
Pentium II
MMX, procesamiento de graficos, videos & audio
Intel (3)
Pentium III
Más instrucciones de punto flotante para gráficos
Pentium 4
Mejoras en punto flotante y multimedia
Hiperthreading
Itanium
64 bit
Itanium 2
Mejoras en hardrware para aumentar la velocidad
Mirar páginas de Intel!
Algunos Links
http://www.computerhistory.org/
http://www.intel.com/
Intel Museum
http://www.ibm.com/ibm/history
http://www.dec.com
Charles Babbage Institute
Recursos
Libros:
Andrew S. Tanenbaum, Structured Computer Organization, Prentice Hall, 4ta edición (en adelante).
William Stallings, Computer Organization and Architecture, Prentice Hall, 5ta edición (en adelante).
Linda Null, Julia Lobur, The Essentials of Computer Organization and Architecture, Jones and Bartlett, 2da edición.
Otros recursos:
www.dc.uba.ar/people/materias/oc1verano
Internet!
Página anterior | Volver al principio del trabajo | Página siguiente |