Historia computadores - Arquitectura de Computadores (2269)

Anuncio
ARQUITECTURACOMPUTADOR
HISTORIA COMPUTADOR. NIVELES.
INTRODUCCIÓN
2
• Antecedentes históricos
Máquinas mecánicas: las computadoras de Charles Babbage
Máquinas electromecánicas: el computador de Konrad Zuse
• Generaciones tecnológicas
Primera generación (1938-1954): válvulas
Segunda generación (1954-1964): transistores
Tercera generación (1964-1972): circuitos integrados
Cuarta generación (1972-1988): microprocesadores
EVOLUCIÓN HISTÓRICA
14
Historia de la arquitectura de computadores
¨¨
¤¤La
arquitectura de los computadores ha ido
evolucionando a lo largo de la historia.
¤¤Se divide la historia en distintas etapas llamadas
generaciones.
Generación 0: 1642-1945
15
Tecnología:
¨¨
nnComputadores mecánicos o electromecánicos con muchas
limitaciones.
Personas destacadas:
¨
¨
nnBlaise Pascal
construyó en 1642 una máquina calculadora
para sumar y restar.
nnCharles Babbage construyó en 1834 de propósito general
(almacén, taller y sección de E/S). Contrató a Ada para la
programación de la máquina.
nnAiken construyó la Mark I en 1944, inspirado en los estudios
de Babbage.
1ª Generación: 1945-1955
16
¨
¨
Tecnología:
nnVálvula
¨
¨
electrónica de vacío.
Modelos:
nnENIAC (1946): 18.000
válvulas, 30 toneladas, 1400 m2, 100 Kw,
5.000 sumaspor segundo.
nnEDSAC (1949): primer ordenador con programa almacenado.
nnUNIVAC: primer ordenador comercial.
¨
¨
Personas destacadas:
nnJonh Von
Neumann establece un modelo de la estructura de un
ordenador (memoria,U.A.L., U. de control y U. de E/S). Crea la
idea de computador con programa almacenado.
1ª Generación
17
Modo de funcionamiento:
¨¨
nn Se programa en lenguaje máquina, propio de cada
máquina
y muy complicado.
nn Se desconocen los leng. de programación.
nn No existe S.O.
nn Se realiza el programa cableado, se solicita hora para la
máquina, se inserta el panel de conexiones en el computador
para ejecutar el programa.
nn Se resolvían cálculos numéricos.
nn A principios de los 50 se mejoró el procedimiento con las
tarjetas perforadas.
2ª Generación: 1955-1965
18
Tecnología:
¨¨
nnTransistor (Bardeen-Brattain, 1947). Ventajas: menor espacio,
menor consumo, más barato y mayor fiabilidad. Esto hace
disminuir el precio y tamaño de los computadores.
Modelos:
¨
¨
nnPDP-1 de DIGITAL
Modo de funcionamiento:
¨
¨
nnLenguajes de alto
nivel : FORTRAN, COBOL, ALGOL, PL/ 1 .
Se escribe el programa en papel, se perfora en tarjetas, se
lleva al operador, se recoge el listado de impresora.
nnSistema de procesamiento por lotes (con S.O.)
Sistema de procesamiento por lotes
19
Unidades de cinta
Unidad de cinta
de
entrada
del
sistema
de
salida
Impresora
lectora de
tarjetas
1401 de IBM
Unidad de cinta
7094 de IBM
1401 de IBM
Ejemplo de procesamiento por lotes
20
Datos del programa
Programa
Fortran
$RUN
$LOAD
$FORTRAN
$JOB información
$END
3ª Generación: 1965-1980
21
Tecnología:
¨¨
nn Circuitos integrados SSI (hasta 100) y
MSI (100-3000)
Modelos:
¨¨
nn IBM sistema 360
y PDP-8 (DIGITAL)
Modo de funcionamiento:
¨
¨
nn Lenguajes de alto
nivel BASIC y PASCAL
nn S.O con multiprogramación:
nnDivisión de la
memoria.
nnProcedimientos de spooling (operación simultánea de periféricos
conectados en línea).
nnTiempo compartido.
4ª Generación: 1980-1990
22
¨
¨
Tecnología:
nnSe integra
la UCP en un sólo chip: el microprocesador.
nnCircuitos integrados LSI (3000-30000) y VLSI (más de 30000)
¨
¨
Modelos:
nnIBM PC (1981), IBM PC XT (1982), IBM PC AT (1984), IBM PS/2
(1987), VAX (DIGITAL,1980), CRAY X-MP (1983)
¨
¨
Modo de funcionamiento:
nnSoftware
fácil de usar.
nnSistemas operativos MS-DOS, UNIX..
nnSistemas operativos de red y sistemas operativos distribuidos.
5ª Generación: 1990 en adelante
23
Tecnología:
¨¨
nn Circuitos con más de un millón de componentes.
nn Nuevas arquitecturas: paralelismo.
nnTecnología
óptica.
Modelos:
¨
¨
nn CONNECTION
MACHINE, máquina masivamente paralela.
Modo de funcionamiento:
¨
¨
nn Inteligencia
artificial y sistemas expertos.
INTRODUCCIÓN
3
Sistemas Computacionales de
PROPOSITO GENERAL
Compiladores, interpretes,
lenguajes de alto nivel
INTRODUCCIÓN
3
MEMORIA
PRINCIPAL
Datos
Código
UNIDAD
ARITMÉTICA
ROM
UNIDAD DE CONTROL
Estado
Contador de programa
Registro de instrucción
PERIFÉRICOS
UNIDAD de ENTRADA/SALIDA
Registros
Puntero de pila
Sistemas Computacionales de
PROPOSITO GENERAL
Compiladores, interpretes,
lenguajes de alto nivel
INTRODUCCIÓN
3
MEMORIA
PRINCIPAL
Datos
Código
UNIDAD
ARITMÉTICA
ROM
UNIDAD DE CONTROL
Estado
Contador de programa
Registro de instrucción
PERIFÉRICOS
UNIDAD de ENTRADA/SALIDA
Registros
Compiladores, interpretes,
lenguajes de alto nivel
Puntero de pila
Sistemas Computacionales de
PROPOSITO GENERAL
Esquema de funcionamiento de la computadora
Datos
Computadora
Instrucciones
Resultados
Arquitectura Computadores
Funciones de un computador:
•  Procesamiento de datos.
•  Almacenamiento de datos.
•  Transferencias de datos entre el computador y el exterior.
•  Control de las anteriores operaciones.
Sus principales componentes estructurales son:
• Sistema Procesador: controla el funcionamiento del computador y procesa los datos.
• Subsistema de memoria: almacena datos.
• Subsistema de entrada/salida: transfiere datos entre el computador y el entorno
externo.
• Buses: interconexión entre las diferentes partes.
• Buses de comunicación
Clasificación de las computadoras
Según la Generalidad de uso o Propósito:
•
•
De uso general: Puede dedicarse a distintos tipos de aplicaciones, tales como gestión
administrativa, cálculo científico, etc.
De uso específico: Es el que únicamente puede utilizarse para una aplicación concreta.
Ejemplo, el que contiene un robot, la computadora para el control del tráfico, el de un horno
de microondas, etc.
Según el Paralelismo:
•
•
•
Unico flujo de instrucciones, único flujo de datos (Monoprocesadores): En un instante dado,
se encuentra ejecutando una única instrucción con unos datos concretos.
Unico flujo de instrucciones, múltiples flujos de datos (Matriciales y Vectoriales ): Para
mayores velocidades de cómputo, procesan las instrucciones de una en una, pero cada una
de ellas opera con múltiples datos.
Múltiples flujos de instrucciones, múltiples flujo de datos (Multiprocesadores y
Multicomputadores): Sistemas compuestos por distintos computadores completos trabajando
en paralelo e interconectados adecuadamente entre
TRADUCTORES
5
Utilizar lenguaje máquina es difícil y tedioso.
¨¨Solución:
¨¨
nnsea L1
el lenguaje máquina
nny L2 un lenguaje más fácil de utilizar
programa en L2
compilación (compilador)
interpretación (intérprete)
programa en L1
MÁQUINAS VIRTUALES
6
Se puede imaginar la existencia de una máquina
virtual cuyo lenguaje máquina es L2.
¨¨Se pueden crear L3, L4... cada uno más fácil de
utilizar.
¨¨
Mn con Ln
..
M3 co
n
L3
M2 co L2
n
M1 co L1
n
nivel n
nivel 3
nivel 2
nivel 1
MÁQUINAS MULTINIVEL ACTUALES
nivel 5
Lenguajes de alto
nivel
Traducción
(compilador)
nivel 4
Lenguaje
ensamblador
Traducción(ensamblador)
nivel 3
Sistema operativo
Interpretación (sistema
operativo)
nivel 2
Máquina
convencional
Interpretetación
(microprograma)
nivel 1
Microprogramación
Ejecutados
directamente
nivel 0
Lógica digital
• La mayoría de las
máquinas actuales constan
de 6 niveles.
• Los microprogramas son
directamente ejecutados
por el hardware.
USUARIOS Y PROGRAMAS DE APLICACIONES
Nivel de máquina simbólica
(compiladores, editores, intérpretes del LC)
Software
Arquitectura
Nivel de máquina operativa
(sistema operativo)
Nivel de máquina convencional
(lenguajes máquina y ensamblador))
Nivel de micromáquina
(microprogramación)
Tecnología
Nivel de lógica digital
Nivel de dispositivos y ctos. electrónicos
Hardware
Nivel 0: nivel de lógica digital
8
Esel hardware de la máquina.
¨¨ El nivel inferior sería el nivel de dispositivo.
¨¨ Eneste nivel:
¨¨
nn Puertas lógicas
nn Circuitos integrados
nn Circuitos combinacionales
nn Circuitos aritméticos
nn Relojes
nn Memorias
nn Microprocesadores
nn Buses
Nivel 1: nivel de microprogramación
9
Existe un programa llamado microprograma.
¨¨ La función del microprograma es interpretar las
instrucciones del nivel 2.
¨
¨ Enalgunas máquinas no existe el nivel de
microprogramación.
¨¨
Nivel 2: nivel de máquina convencional
10
Cada fabricante publica el “Manual de referencia
del lenguaje máquina” para cada uno de los
computadores.
¨
¨ Las instrucciones del nivel de máquina las interpreta
el microprograma.
¨
¨ Enlas máquinas en las que no existe el nivel de
microprogramación, las instrucciones del nivel de
máquina son realizadas directamente por los
circuitos electrónicos.
¨¨
Nivel 3: nivel del sistema operativo
11
La mayoría de las instrucciones de este nivel están
también en el nivel 2 pero además tiene un nuevo
conjunto de instrucciones, una organización diferente
de la memoria, posibilidad de ejecutar 2 o más
programas ...
¨
¨ Las nuevas instrucciones las interpreta el sistema
operativo.
¨
¨ Las que son idénticas a las del nivel 2 las lleva a
cabo el microprograma.
¨¨
Nivel 4: nivel del lenguaje ensamblador
12
Los niveles 4 y superiores son utilizados por los
programadores de aplicaciones.
¨¨ Los niveles inferiores están diseñados para ejecutar
los intérpretes y traductores de los niveles superiores
y son escritos por los programadores de sistemas.
¨
¨ El ensamblador es el programa que lleva a cabo la
traducción de un programa del nivel 4.
¨¨
Nivel 5: nivel de lenguajes de alto nivel
13
Los lenguajes de alto nivel son más fáciles de utilizar
que los lenguajes de niveles inferiores.
¨¨ Son utilizados por los programadores de
aplicaciones.
¨
¨ Los traductores de programas en lenguaje de alto
nivel pueden ser compiladores o intérpretes.
¨¨
Diferentes niveles en la arquitectura
4
Un computador digital es una máquina que puede
resolver problemas ejecutando ciertas instrucciones.
¨¨Un programa es una secuencia de instrucciones.
¨
¨Los circuitos electrónicos de cada computadora
reconocen un conjunto limitado de instrucciones muy
simples.
¨
¨Lenguaje máquina es el conjunto de instrucciones
básicas de una computadora.
¨¨
Evolución de los niveles
24
¨¨
¨¨
¨¨
¨¨
¨¨
Los primeros computadores digitales (años 40) sólo tenían 2
niveles (convencional y lógica digital).
Los circuitos digitales eran voluminosos, poco confiables y difíciles
de construir.
El nivel de microprogramación se añadió para:
n
nsimplificar la electrónica
n
n facilitar la escritura de compiladores
n
n ejecutar los programas más rápidamente (ROM más
rápida que la RAM)
n
n en los 70 estaba plenamente difundido
Enlos 50 aparecieron los ensambladores y compiladores.
En los 60 aparece el sistema operativo.
Evolución de los niveles
25
Cuanto más complicado el lenguaje máquina, más grande,
complicado y lento el microprograma (ya que necesitan
procedimientos).
¨¨ La velocidad de la memoria RAM se aumentó con el avance de
la tecnología (memorias de semiconductores).
¨¨ Esdifícil escribir, depurar y mantener el microcódigo.
¨¨ A principios de los 80 se elimina el nivel de microprogramación
para dar paso a las máquinas RISC.
¨¨
Arquitectura Computadores
¿Qué es un computador?
[Hamacher96]: “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”.
[RAE]: “Máquina electrónica, analógica o digital, dotada de una
memoria de gran capacidad y de métodos de tratamiento de la
información, capaz de resolver problemas matemáticos y lógicos
mediante la utilización automática de programas informáticos”.
Arquitectura Computadores
¿como se crea la
arquitectura de un
computador?
Arquitectura del
Computador
Modelo de Programación:
Diseño del conjunto de instrucciones.
Interface del computador.
Relación con los compiladores.
Organización de la máquina:
Unidades funcionales.
Transparente al software.
Componentes Hardware y su interconexión
Arquitectura del computador
La arquitectura del Juego de Instrucciones (Instruction Set Architecture ó
ISA) describe la estructura del computador desde el punto de vista del
programador. Cuando una familia de procesadores ejecuta el mismo
código binario, se dice que tienen la misma arquitectura, refiriéndose éste
término más concretamente al ISA, repertorio de instrucciones.
q
q
q
Diseñodelconjuntodeinstrucciones.
Interfacedelcomputador.
Relaciónconloscompiladores.
La Organización de la Máquina, se refiere al layout (esquema) e
interconexiones de varias unidades funcionales.
q Unidadesfuncionalesysuinterconexión.
q Transparentealsoftware.
q ComponentesHardware
Programación y Organización
Programación:
Atributos de un
sistema visibles al
programador, que tienen
impacto directo en la
ejecución lógica de un
programa
Organización:
Unidades funcionales y
sus interconexiones que
implementan una
determinada arquitectura
Ejemplo:
•Cuestión de programación es decidir si el computador tendrá una operación
de multiplicación
•Cuestión de organización es decidir si dicha operación será realizada por
una unidad funcional dedicada, o por uso iterativo de la UAL.
Modelo de programación del computador
• Modelo de programación
• Juego de instrucciones (usuario y núcleo)
31
D0
D1
D2
D3
D4
D5
D6
D7
16 15
87
0
Registro de estado
Registros de datos
A0
A1
A2
A3
A4
A5
A6
A7
A7'
15
Modo Traza T 14
13
Sistema/Usuario S 12
11
Máscara
10
9
de
I2 8
Interrupciones
I1 7
I0 65
Registros de dirección
Puntero de pila de usuario
Puntero de pila de sistema
Contador de programa
Extensión
4
Negativo
3
Cero
2
Desbordamiento X 1
Acarreo N 0
Z
V
C
0
Mapa de
memoria
232-1
0
216-1
Mapa de
E/S
Juego de Instrucciones
Octeto de
Sistema
Octeto de
Usuario
Implementación Máquinas
CPU
Periféricos
de
Entrada
Implementación
depende de la
tecnología.
Unidad
Aritmética
Unidad
de
Control
Memoria
Principal
FPGA
ASIC
Periféricos
de
Salida
Implementación Componentes
¿Que tecnología se puede utiliza para implementar
los distintos componentes de un computador?
Se pueden utilizar dos:
• Aplicación de circuitos integrados específicos (ASIC)
• Field Programmable Gate Array (FPGA), Hardware Reconfigurable
ASIC - Ventajas
• Velocidad
• Consumo de potencia bajo
• Costo/rendimiento
ASIC- Desventajas
• Alto costo de
desarrollo
• Lentos ciclos de
desarrolo
• Inflexible
Otra solución
FPGA
Ventajas
l
l
l
Velocidad
Consumo de
potencia bajo
Costo/rendimiento
Desventajas
l
l
l
Otra solución
FPGA
Alto costo de
desarrollo
Lentos ciclos de
desarrolo
Inflexible
Arquitecturas Reconfigurables
Si alguno de los
componentes se
implementan con
HARDWARE
RECONFIGURABLE,
estaremos hablando
de Arquitecturas
Reconfigurables.
Hardware Reconfigurable
¿Que es Hardware
Reconfigurable?
Bloques lógicos
interconectados entre si.
Esas conexiones se
'programan' según la
aplicación que queramos
darle al hardware.
FPGA (Field-Programmable Gate Array )
Interconexiones
Elemento Logico
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
LE
ᄎ
Los bloques lógicos realizan funciones booleanas
¿Qué es una FPGA?
• Circuitos digitales integrados que contienen
bloques de logica configurable (programable)
con interconexiones reconfigurables
controladas por el switch de una matriz de
control.
• Los programadores pueden cambiar el
diseño de la aplicación una y otra vez sobre
la misma FPGA
ARCO 2008-200912 Tema 5
Pag 16
Bloques lógicos
A
B
C
D
X
Out
A x B x C x D = out
ARCO 2008-200913 Tema 5
Pag 17
Xilinx XC4000 Cell
ARCO 2008-200915 Tema 5
Pag 19
FPGA - Ventajas
• Mayor flexibilidad que un ASIC
• Alto Rendimiento en algunas aplicaciones
• Reusabillidad de Hardware para diferentes
aplicaciones
Pag 20
Programacion algoritmos en HWR
¿Como se programa el hardware reconfigurable?
Con lenguajes de descripción hardware
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FF IS
PORT (
reset: IN STD_LOGIC;
clk: IN STD_LOGIC;
ff_input: IN STD_LOGIC;
Q: OUT STD_LOGIC
);
END FF;
ARCHITECTURE behavioral OF FF IS
BEGIN
flipflop: PROCESS (reset, clk)
BEGIN
IF reset='1' THEN
Q <= ‘0';
ELSIF clk'event AND clk='1' THEN
Q <= ff_input;
END IF;
END PROCESS;
END behavioral;
Q
ff_input
FF
clk
reset
LENGUAJE DE
PROGRAMACIÓN DE ALTO
NIVEL
LENGUAJE DE
DESCRIPCIÓN HARDWARE
COMPILACIÓN
SÍNTESIS
HDL: ¿Programa o diseño?
PROGRAMA A NIVEL DE
LENGUAJE MÁQUINA
DESCRIPCIÓN A BAJO
NIVEL DE ABSTRACCIÓN
(p.e. NIVEL LÓGICO)
La sintaxis es muy similar.
En HDL no se programa, se
describe.
Hay que pensar siempre que
la descripción se
corresponde con circuitos
funcionando en paralelo
Dos HDL, Verilog y VHDL
Implementación algoritmos
Microprocesador
Hardware
Reconfigurable
ASIC
S
P
A
R
T
A
N
3
E
Descargar