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