Un poco de Historia Arquitectura de computadoras Introducción. El modelo arquitectónico de las computadoras actuales y de varios sistemas de computo se debe al modelo propuesto por el matemático Jhon von Neumann. Las primeras computadoras utilizaban tubos al vacío para los elementos lógicos digitales y memoria. Princeton Institute for Advanced Studies (IAS) Primera generación – Tubos al vacío La computadora IAS es la mas famosa de esta primera generación. El diseño fundamental de la primera computadora IAS se conoce como concepto de programa almacenado. Diseño atribuido a Jhon Von Nemann. Alan Turing desarrollo la misma idea aproximadamente en el mismo periodo que Jhon. Computadora IAS 1) Memoria principal: datos e instrucciones 2) ALU capaz de operar en datos binarios 3) Unidad de control: interpreta las instrucciones en memoria y hace que sean ejecutadas. 4) Input – Output: equipo operado por la unidad de control. Computadora IAS Descripción 1) Deberá realizar operaciones aritméticas ∴ órgano especializado central aritmética(CA) 2) Órgano encargado que las instrucciones sean ejecutadas en el orden y forma correcta, control central(CC) Computadora IAS 3) Debe tener suficiente memoria(M) para realizar cálculos complicado y largos. Además, debe tener un medio de grabación externo del dispositivo: (R) 4) Órganos para transferir información, de R a CC y M, es decir, input (I) El modelo IAS se mantiene vigente. Para comandar una computadora, necesitamos hablar su idioma. Por lo que debemos trabajar usando sus palabras(Word). Modelo IAS vigente La unidades de los espacios de memoria que maneja la computadora todavía se conocen como Word. n bits (Opcode) Operation code m bits Dirección de memoria Todas las words del lenguaje de una computadora se les llama instrucciones y su vocabulario se llama conjunto de instrucciones (IS) Diferencia: Remplazo de tubos al vacío por transistores Segunda generación Transistores Los tubos al vacío se construye cables, metal de plata, capsulas de gas, etc. Los transistores es un dispositivo de estado solido, hecho de silicio. Transistor auto contenido es llamado componente discreto. Principales Mejoras: Segunda generación Además de un mejor ALU, unidad de control o incremento del 50% en desempeño del CPU. Implementa el uso de lenguaje de programación de Alto nivel COBOL o Fortran Suministro de un software del sistema con la computadora Software que hacia el manejo de I/O mas fácil o Funciones para realizar tareas habituales Principales Mejoras: Canales de información(data channels) Segunda generación CPU solo inicia la transferencia de input/output mandando una señal de control al canal, pero el canal realiza la tarea, liberando al CPU Principales Mejoras: Multiplexores Segunda generación Planifica el acceso a la memoria desde el CPU y el canal de información. Tercera generación – Circuitos integrados Capacitores, transistores, resistencia, etc, se manufacturaban de forma separada, lo que hacia necesario soldarlos o cablearlos en una placa de circuitos. Esto resulto impráctico ya que el número de componentes necesarios rápidamente creció. Tercera generación – Circuitos integrados En 1958 comienza la era de la microelectrónica con la invención de los circuitos integrado Tercera generación – Circuitos integrados En esta generación se utilizan compuertas y celdas de memoria para que una computadora siga cumpliendo sus funciones principales. Dos de los avances mas importantes en generación actual: Memoria de semiconductores mas económica Generación Actual Microprocesador 1971 Intel desarrolla un chip integrado que contiene todos los componentes del CPU, el microprocesador. Desarrollan un microprocesador de uso general. Mejoras para el desempeño El modelo IAS prácticamente sigue vigente. Han surgido mejoras en la construcción y diseño para lograr alcanzar el gran desempeño computacional que se tiene en la actualidad. Alguna de las técnicas mejoradas para el microprocesador son: Pipelining(tubería) Ejecutar más de una instrucción a la vez. Mejoras para el desempeño Branch prediction (predicción de ramas) Anticipar la siguiente instrucción que será necesaria. Data Flow analysis (análisis de flujo de datos) Evitar retrasos al identificar dependencias de cada instrucción a ejecutar. Speculative execution(ejecución especulativa) Ejecutar instrucciones de forma anticipada y guardar resultados. Todas estas mejoras permiten ejecutar varias instrucciones por cada ciclo del procesador