Vista previa del material en texto
2 ÍNDICE 1. Unidad 1: Organización y arquitectura de computadoras ....................................3 Tema 1: Introducción a la organización y arquitectura de computadoras ................... 3 Objetivo: ........................................................................................................................ 3 2. Introducción ......................................................................................................4 3. Información de los subtemas .............................................................................5 3.1 Subtema 1: Arquitectura, organización y definición .......................................... 5 3.2 Subtema 2: Las generaciones de computadores ............................................... 9 La primera generación: los tubos de vacío ............................................................... 9 La segunda generación: los transistores ................................................................. 11 La tercera generación: los circuitos integrados ...................................................... 12 Últimas generaciones .............................................................................................. 14 3.3 Subtema 3: Tendencias futuras........................................................................ 16 Clasificación de Flynn de los computadores ........................................................... 16 Procesadores de propósito especial ....................................................................... 18 Direcciones futuras para los compiladores ............................................................. 19 Juntando todo: el multiprocesador Sequent Symmetry ......................................... 20 4. Bibliografía ...................................................................................................... 22 Introducción a la organización y arquitectura de computadoras 3 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 1. Unidad 1: Organizació n y arquitectura de cómputadóras Tema 1: Introducción a la organización y arquitectura de computadoras Objetivo: Conocer los conceptos básicos de la Organización y Arquitectura de Computadores, así como su historia y evolución. Introducción a la organización y arquitectura de computadoras 4 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 2. Intróducció n El presente documento contiene referencias sobre la organización y funcionamiento de los computadores y tiene como principal intención, presentar, de manera sencilla y abarcando la mayor cantidad de información como sea posible, el entorno del computador y sus características actuales. Es importante mencionar que existe una gran cantidad de sistemas que se clasifican de manera córrecta ó se nómbran cómó “cómputador”, pór ejempló, desde microprocesadores de un solo chip, de bajo costo, a supercomputadores o mainframes con costos de muchos millones de dólares, por lo tanto, esta unidad servirá para que el alumno logre diferenciar las diferentes arquitecturas y organizaciones de computadores. El subtema 1, tiene como objetivo explicar de forma sencilla e interesante adentrando al alumno, en conceptos básicos (de varios autores) sobre organización y arquitectura de computadores, así como la importancia de estudiar la arquitectura y organización de los computadores. El subtema 2, se revisará de manera rápida la historia de las computadoras a través de sus generaciones de la siguiente manera: primera generación presenta los tubos de vacío. Segunda generación, destacan los transistores en reemplazo a los tubos de vacío. Tercera generación, nace el uso de circuitos integrados. Cuarta generación, circuitos integrados a gran escala. El subtema 3, define la clasificación de las computadoras de acuerdo a la taxonomía de Flynn. Introducción a la organización y arquitectura de computadoras 5 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3. Infórmació n de lós subtemas 3.1 Subtema 1: Arquitectura, organización y definición Según (Stallings, 2006), “cuando se describe un computador, frecuentemente se distingue entre arquitectura y organización. Aunque es difícil dar una definición precisa para estos términos, existe un consenso sobre las áreas generales cubiertas por cada uno de ellos”. El mismo autor expresa que “la arquitectura de computadores se refiere a los atributos de un sistema que son visibles a un programador, o para decirlo de otra manera, aquellos atributos que tienen un impacto directo en la ejecución lógica de un programa”. Como lo expresa (Parhami, 2005), “la arquitectura de computadoras abarca un conjunto de ideas centrales aplicables al diseño o comprensión de virtualmente cualquier computadora digital, desde los más pequeños sistemas anidados hasta las más grandes supercomputadoras. La arquitectura de computadoras no es sólo para diseñadores de computadoras; incluso los simples usuarios se benefician de un firme asidero de las ideas centrales y de una apreciación de los conceptos más avanzados en este campo. Ciertas realizaciones clave, como el hecho de que un procesador de 2x GHz no necesariamente es el doble de rápido que un modelo de x GHz, requieren una capacitación básica en arquitectura de computadoras”. (GOMEZ, 2012) conceptualiza la arquitectura en el entorno informático como “lo que se denomina hardware de computadores consiste en circuitos electrónicos, visualizadores, medios de almacenamiento magnéticos y ópticos, equipos electromecánicos y dispositivos de comunicación. Por lo que la arquitectura de computadoras abarca la especificación del repertorio de instrucciones y las unidades hardware que implementan las instrucciones” “Arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.” (ECU RED, 2019) También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo. https://www.ecured.cu/Unidad_central_de_procesamiento Introducción a la organización y arquitectura de computadoras 6 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 Sobre el concepto de organización de computadoras (Stallings, 2006), indica que “la organización de computadores se refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. Entre los ejemplos de atributos arquitectónicos se encuentran el conjunto de instrucciones, el número de bits usados para representar varios tipos de datos (por ejemplo, números, caracteres), mecanismos de E/S y técnicas para direccionamiento de memoria. Entre los atributos de organización se incluyen aquellos detalles de hardware transparentes al programador, tales como señales de control, interfaces entre el computador y los periféricos y la tecnología de memoria usada”. También nos presenta un ejemplo para diferenciar entre arquitectura y organización, “para poner un ejemplo, una cuestión de diseño arquitectónico es si el computador tendrá la instrucción de multiplicar. Una cuestión de organización es si esa instrucción será implementada poruna unidad especializada en multiplicar o por un mecanismo que haga un uso iterativo de la unidad de suma del sistema. La decisión de organización puede estar basada en la frecuencia prevista del uso de la instrucción de multiplicar la velocidad relativa de las dos aproximaciones, y el coste y el tamaño físico de una unidad especializada en multiplicar”. Además, para dejar en claro estos conceptos, expresa que “históricamente, y aún hoy día, la distinción entre arquitectura y organización ha sido importante. Muchos fabricantes de computadores ofrecen una familia de modelos, todos con la misma arquitectura, pero con diferencias en la organización. Consecuentemente los diferentes modelos de la familia tienen precios y prestaciones distintas. Más aún, una arquitectura puede sobrevivir muchos años, pero su organización cambia con la evolución de tecnología. Un ejemplo destacado de ambos fenómenos es la arquitectura IBM Sistema/370. Esta arquitectura apareció por primera vez en 1970 e incluía varios modelos. Un cliente con necesidades modestas podía comprar un modelo más barato y lento, y, si la demanda se incrementaba, cambiarse más tarde a un modelo más caro y rápido sin tener que abandonar el software que ya había sido desarrollado. A través de los años IBM ha introducido muchos modelos nuevos con tecnología mejorada para reemplazar a modelos más viejos, ofreciendo al consumidor mayor velocidad, precios más bajos o ambos a la vez. Estos modelos más nuevos conservaban la misma arquitectura para proteger así la inversión en software del consumidor. Podemos destacar que la arquitectura del Sistema/370 con unas pocas mejoras ha sobrevivido hasta hoy día como la arquitectura de la línea de grandes productos de computación IBM. En una clase de sistemas, llamados microcomputadores, la relación entre arquitectura y organización es muy estrecha. Los cambios en la tecnología no solo influyen en la organización, sino que también dan lugar a la introducción de arquitecturas más ricas y potentes. Generalmente hay menos requisitos de compatibilidad generación a Introducción a la organización y arquitectura de computadoras 7 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 generación para estas pequeñas máquinas. Así, hay más interacción entre las decisiones de diseño arquitectónicas y de organización. Un ejemplo interesante de esto son los computadores de repertorio reducido de instrucciones” Para (Ariza, 1993) “la organización básica de una computadora consiste en la unidad de entrada, por medio de la cual se introducen datos e instrucciones; la unidad central de procesamiento, donde se procesan los datos de acuerdo con las instrucciones dadas, y la unidad de salida, por medio de la cual se presenta la información resultante al usuario”. (Mancia, 2014) indica que: “el estudio de la organización del computador implica considerar las características de los distintos subsistemas que lo integran (procesador, 2 memoria, dispositivos periféricos y de almacenamiento), tanto desde el nivel de arquitectura como desde el de micro arquitectura; así como la interconexión de dichos subsistemas (jerarquía de buses), los flujos mutuos de datos y control (comunicación y sincronización) que permiten el funcionamiento del computador”. ¿Ha diferenciado Ud. claramente el concepto de arquitectura de computadores del de organización de computadores? ¿Podría Ud. dar su propia opinión o concepto de cada uno? Figura 1 Arquitectura esquemática de una placa madre típica Fuente: (Yanza, Guijarro, & García, 2018) Introducción a la organización y arquitectura de computadoras 8 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 Figura 2 Organización física del computador Fuente: (Yanza, Guijarro, & García, 2018) Conclusión: A pesar de que los conceptos de arquitectura y organización de computadores son totalmente diferentes, muchas veces llevan a la confusión del lector por lo que se hace necesario la lectura de varios autores que presenten diferentes definiciones para, de esta manera, dejar claro los conceptos básicos al iniciar el desarrollo de la materia de Arquitectura del computador y exista un mejor entendimiento entre el alumno y el profesor guía. Introducción a la organización y arquitectura de computadoras 9 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3.2 Subtema 2: Las generaciones de computadores (Stallings, 2006) en su libro Organización y arquitectura de computadores hace una descripción detallada de las diversas generaciones de las computadoras y su evolución, la cual exponemos a continuación: La primera generación: los tubos de vacío ENIAC. El ENIAC (Electronic Numerical Integrator And Computer), diseñado y construido bajo la supervisión de John Mauchly y John Presper Eckert en la Universidad de Pennsylvania, fue el primer computador electrónico de propósito general del mundo. El proyecto fue una respuesta a necesidades militares durante la Segunda Guerra Mundial. El BRL (Ballistcs Research Laboratory, Laboratorio de Investigación de Balística) del Ejército, una agencia responsable del desarrollo de tablas de tiro y de trayectoria para nuevas armas, tenía dificultades para elaborarlas con exactitud y dentro de un plazo de tiempo razonable. Sin estas tablas de tiro, las nuevas armas y piezas de artillería eran inútiles para los artilleros. El BRL empleó a más de doscientas personas, la mayoría mujeres, que utilizando calculadoras de mesa resolvían las ecuaciones balísticas necesarias. La preparación de las tablas para una sola arma le habría llevado a una persona muchas horas, incluso días.” (Stallings, 2006) “Mauchly, un catedrático de Ingeniería Eléctrica de la Universidad de Pennsylvania, y Eckert, uno de sus alumnos de licenciatura, propusieron construir un computador de propósito general usando tubos de vacío para utilizarlo en las aplicaciones de la BRL. En 1943 esta proposición fue aceptada por el ejército y se comenzó a trabajar en el ENIAC. La máquina que construyeron era enorme, pesaba treinta toneladas, ocupaba 15 000 pies cuadrados y contenía más de 18 000 tubos de vacío. Cuando funcionaba consumía 140 Kilovatios de potencia. También era bastante más rápida que cualquier computador electromecánico, ya que era capaz de efectuar 5 000 sumas por segundo.” (Stallings, 2006) “El ENIAC se terminó en 1946, demasiado tarde para ser utilizado durante la guerra. En su lugar, su primera misión fue realizar una serie de cálculos complejos que se usaron para ayudar a determinar la viabilidad de la bomba de hidrógeno. El uso del ENIAC para una función distinta de aquella para la que fue construido demostró su naturaleza de propósito general. Así, 1946 marcó el comienzo de la nueva era de los computadores electrónicos, culminando años de esfuerzo. El ENIAC siguió funcionando bajo la dirección del BRL hasta 1955, cuando fue desmontado.” (Stallings, 2006) “La máquina de von Neumann, la tarea de cargar y modificar programas para el ENIAC era extremadamente tediosa. El proceso de programación podría ser más fácil si el programa se representara en una forma adecuada para ser guardado en la memoria Introducción a la organización y arquitectura de computadoras 10 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 junto con los datos. Entonces, un computador podría conseguir sus instrucciones leyéndolas de la memoria, y se podría hacer o modificar un programa colocando los valores en una zona de memoria.” (Stallings, 2006) “Esta idea conocida como concepto del programa-almacenado,se atribuye a los diseñadores del ENIAC, sobre todo al matemático John von Neumann, que era asesor del proyecto ENIAC. La idea fue también desarrollada aproximadamente al mismo tiempo por Turing. La primera publicación de la idea fue en una propuesta de von Neumann para un nuevo computador en 1945, el EDVAC (Electronic Discrete Variable Computer). En 1946 von Neumann y sus colegas empezaron, en el Instituto para Estudios Avanzados de Princeton, el diseño de un nuevo computador de programa- almacenado, que llamaron IAS. El computador IAS, no completado hasta 1952, es el prototipo de toda una serie de computadores de propósito general.” (Stallings, 2006) “Computadores comerciales Los años cincuenta contemplaron el nacimiento de la industria de computadores con dos compañías, Sperry e IBM, dominando el mercado. En 1947 Eckert y Mauchly formaron la Eckert-Mauchly Computer Corporation para fabricar computadores con fines comerciales. Su primera máquina de éxito fue el UNIVAC I (Universal Automatic Computer), que fue empleada por la oficina del censo para sus cálculos en 1950. La Eckert-Mauchly Computer Corporation formó luego parte de la división UNIVAC de la Sperry-Rand Corporation, que siguió construyendo una serie de máquinas sucesoras de la primera.” (Stallings, 2006) “El UNIVAC I fue el primer computador comercial de éxito. Estaba diseñado, como su nombre indica, tanto para aplicaciones científicas como comerciales. El primer documento que describía el sistema mencionaba como ejemplos de tareas que podía realizar operaciones algebraicas con matrices, problemas de estadística, reparto de primas para las compañías de seguros de vida y problemas logísticos.” (Stallings, 2006) “El UNIVAC II, que tenía una capacidad de memoria mayor y más aplicaciones que el UNIVAC I, salió al mercado al final de los cincuenta e ilustra varias tendencias que han permanecido como características de la industria de computadores. Primera, los avances en la tecnología permiten a las compañías seguir construyendo computadores más grandes y más potentes. Segunda, cada compañía intenta hacer sus nuevas máquinas superiores y compatibles con las anteriores. Esto significa que los programas escritos para las viejas máquinas pueden ejecutarse en las nuevas máquinas. Esta estrategia se adopta para retener la base de clientes, es decir, que cuando un cliente decide comprar una máquina nueva, probablemente la comprará a la misma compañía para evitar perder su inversión en programas. La división UNIVAC comenzó también el desarrollo de la serie de computadores 1100, que fue su producto principal. Esta serie ilustra una distinción que existió en aquella época. El primer modelo, el UNIVAC 1103, y sus sucesores durante muchos años, estaban diseñados principalmente para Introducción a la organización y arquitectura de computadoras 11 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 aplicaciones científicas que implicaban cálculos largos y complejos. Otras compañías se centraron en el campo de la gestión, lo que conllevaba el procesamiento de grandes cantidades de textos.” (Stallings, 2006) “IBM, que había ayudado a construir el Mark I y era entonces el principal fabricante de equipos de procesamiento con tarjetas perforadas, sacó su primer computador con programas almacenados electrónicamente, el 701, en 1953. El 701 fue diseñado principalmente para aplicaciones científicas [BASH81]. En 1955 IBM presentó los productos 702, que tenían varias características hardware que lo hacían adecuado para aplicaciones de gestión. Estos fueron los primeros de una larga serie de computadores 700/7000 que situaron a IBM como el fabricante de computadores dominante, con gran diferencia.” (Stallings, 2006) La segunda generación: los transistores El primer cambio importante en los computadores electrónicos vino con la sustitución de los tubos de vacío por transistores. El transistor es más pequeño, más barato, disipa menos calor y puede ser usado de la misma forma que un tubo de vacío en la construcción de computadores. Mientras que un tubo de vacío requiere cables, placas de metal, una cápsula de cristal y vacío, el transistor es un dispositivo de estado sólido, hecho con silicio.” (Stallings, 2006) “El transistor fue inventado en los Laboratorios Bell en 1947 y en los años cincuenta y provocó una revolución electrónica. Sin embargo, los computadores completamente transistorizados no estuvieron disponibles comercialmente hasta el final de los cincuenta. IBM no fue la primera compañía que lanzó esta nueva tecnología. NCR y, con más éxito, RCA fueron los primeros en sacar pequeñas máquinas de transistores. IBM los siguió pronto con la serie 7000. El uso del transistor define la segunda generación de computadores. La clasificación de los computadores en generaciones basándose en la tecnología hardware empleada fue ampliamente aceptada. Cada nueva generación se caracteriza por la mayor velocidad, mayor capacidad de memoria y menor tamaño que la generación anterior.” (Stallings, 2006) “También hay otros cambios. En la segunda generación se introdujeron unidades lógicas y aritméticas y unidades de control más complejas, el uso de lenguajes de programación de alto nivel, y se proporcionó un software del sistema con el computador. La segunda generación es destacable también por la aparición de la empresa Digital Equipment Corporation (DEC). DEC fue fundada en 1957 y en este año sacó su primer computador, el PDP-1. Este computador y esta compañía iniciaron el desarrollo de los minicomputadores que fue de gran importancia en la tercera generación.” (Stallings, 2006) Introducción a la organización y arquitectura de computadoras 12 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 “El IBM 7094 Desde la introducción en 1952 de la serie 700 y la introducción del último miembro en 1964 de la serie 7000, esta línea de productos sufrió la evolución típica de los computadores. Los productos sucesivos de la línea presentaron un aumento de prestaciones y capacidad y/o la disminución de precios.” (Stallings, 2006) La tercera generación: los circuitos integrados A un transistor simple y autocontenido se le llama componente discreto. A través de los años cincuenta y principios de los sesenta, los equipos electrónicos estaban compuestos en su mayoría por componentes discretos —transistores, resistencias, capacidades, etc.—. Los componentes discretos se fabricaban separadamente, encapsulados en sus propios contenedores, y soldados o cableados juntos en tarjetas de circuitos en forma de panel, que eran instalados en computadores, osciloscopios y otros equipos electrónicos. Cuando un dispositivo necesitaba un transistor, había que soldar este, que tenía una forma de un pequeño tubo de metal y contenía una pieza de silicio del tamaño de la cabeza de un alfiler, en una tarjeta de circuitos. Todo el proceso de fabricación desde el transistor hasta el panel de circuitos era caro y engorroso.” (Stallings, 2006) “Estos hechos fueron el comienzo del surgimiento de problemas en la industria de computadores. Los primeros computadores de la segunda generación contenían alrededor de 10 000 transistores. Esta cantidad creció a cientos de miles, haciendo cada vez más difícil la fabricación de máquinas nuevas y más potentes. En 1958 ocurrió algo que revolucionó la electrónica y comenzó la era de la microelectrónica: la invención del circuito integrado. El circuito integrado define la tercera generación de computadores. En esta sección haremos una breve introducción a la tecnología de circuitos integrados. Después veremos los que quizá sean los dos miembros más importantes de la tercera generación, que surgieron al principio de la era: el IBMSistema/360 y el DEC PDP-8.” (Stallings, 2006) “En 1964, IBM tenía un firme dominio del mercado con sus máquinas de la serie 7000. Aquel año, IBM anunció el Sistema/360, una nueva familia de productos de computadores. Aunque el anuncio mismo no fue ninguna sorpresa, contenía algunas noticias desagradables para los clientes habituales de IBM: la línea de productos 360 era incompatible con las máquinas IBM anteriores. Por ello la transición al 360 sería difícil para los clientes de IBM. Este fue un paso audaz de IBM, pero sentían que era necesario romper con algunas de las limitaciones de la arquitectura 7000 y producir un sistema capaz de evolucionar junto con la nueva tecnología de circuitos integrados [PADE81, GIFF87]. La estrategia resultó provechosa tanto técnica como financieramente. El 360 fue el éxito de la década y consolidó a IBM como el dominante absoluto en las ventas de computadores, con una cuota de mercado por encima del setenta por ciento. Y, con algunas modificaciones y ampliaciones, la arquitectura del Introducción a la organización y arquitectura de computadoras 13 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 360 permanece hasta hoy en día en la arquitectura de los grandes computadores (mainframe) de IBM 5. A lo largo del texto se pueden encontrar ejemplos que utilizan esta arquitectura.” (Stallings, 2006) “El Sistema/360 fue la primera familia de computadores de la historia que se planeó. La familia abarcaba un amplio rango de prestaciones y precios. Los distintos modelos eran compatibles en el sentido de que un programa escrito para un modelo, tenía que ser capaz de ser ejecutado por otro modelo de la serie, con la única diferencia del tiempo de ejecución. El concepto de familia de computadores compatibles era a la vez novedoso y extremadamente exitoso. Un cliente con necesidades modestas y un presupuesto limitado podía empezar con el modelo 30, relativamente barato. Más tarde, si las necesidades del cliente crecían, era posible pasarse a una máquina más rápida, con más memoria, sin sacrificar la inversión ya realizada en software. Las características de una familia son:” (Stallings, 2006) “• Conjunto de instrucciones similar o idéntico: en muchos casos, se encuentran exactamente el mismo conjunto de instrucciones máquina en todos los miembros de la familia. Así, un programa que se ejecuta en una máquina, se podrá ejecutar en cualquier otra. En algunos casos el computador más bajo de la familia tiene un conjunto de instrucciones que es un subconjunto del computador más alto de la familia. Esto quiere decir que los programas se pueden mover hacia arriba pero no hacia abajo. • Sistemas operativos similares o idénticos: el mismo sistema operativo básico está disponible para todos los miembros de la familia. En algunos casos, se añaden características complementarias a los miembros más altos. • Velocidad creciente: la velocidad de ejecución de las instrucciones se incrementa conforme se sube desde los miembros más bajos a los más altos de la familia. • Número creciente de puertos de E/S: conforme se va desde lo más bajo a los más alto de la familia. • Tamaño de memoria creciente: conforme se va de lo más bajo a lo más alto de la familia. • Coste creciente: conforme se va de lo más bajo a lo más alto de la familia.” (Stallings, 2006) “¿Cómo podría implementarse tal concepto de familia? Las diferencias entre los modelos se basaron en tres factores: la velocidad básica, el tamaño y el grado de simultaneidad [STEV64]. Por ejemplo, podría lograrse mayor velocidad en la ejecución de una instrucción dada usando una circuitería más compleja en la ALU, permitiendo que las suboperaciones se llevaran a cabo en paralelo. Otro modo de incrementar la velocidad era incrementar la amplitud del camino de los datos entre la memoria Introducción a la organización y arquitectura de computadoras 14 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 principal y la CPU. En el Modelo 30, solo se podía captar un byte (8 bits) a la vez de la memoria principal, mientras que en el Modelo 75 se podían captar ocho bytes a la vez. El Sistema /360 no solamente dictó la carrera hacia el futuro de IBM, sino también tuvo un profundo impacto en toda la industria. Muchas de sus características se han convertido en un estándar para otros grandes computadores.” (Stallings, 2006) “DEC PDP-8 En el mismo año que IBM lanzó su primer Sistema/360 tuvo lugar otro lanzamiento trascendental: el PDP-8 de DEC. En aquella época, cuando la mayoría de los computadores requerían una habitación con aire acondicionado, el PDP-8 (llamado por la industria minicomputador en honor a la minifalda de aquellos tiempos) era lo bastante pequeño para ser colocado en lo alto de una mesa de laboratorio o embutido en otro equipo. No podía hacer todo lo que hacían los grandes computadores, pero a 16 000 dólares era suficientemente barato para que cada técnico de laboratorio tuviera uno. Por contra, los computadores de la serie Sistema/360, presentados solo unos meses antes costaban cientos de miles de dólares.” (Stallings, 2006) “El bajo costo y pequeño tamaño del PDP-8 permitía a otros fabricantes comprarse un PDP-8 e integrarlo en un sistema global para revenderlo. Estos otros fabricantes se conocían como fabricantes de equipos originales (OEM), y el mercado de OEM llegó a tener y aún tiene la mayor cuota del mercado de computadores. El PDP-8 fue un éxito inmediato y logró el enriquecimiento de DEC. Esta máquina y los otros miembros de la familia PDP-8 que la siguieron lograron un status de producción antes reservado a los computadores IBM, con alrededor de 50 000 máquinas vendidas en los siguientes doce años. Como se dice en la historia oficial de DEC, el PDP-8 «estableció el concepto de minicomputador, abriendo el camino a una industria de miles de millones de dólares». También estableció a DEC como el vendedor de minicomputadores número uno y cuando el PDP-8 alcanzó el fin de su vida útil, DEC era el segundo fabricante de computadores detrás de IBM.” (Stallings, 2006) “En contraste con la arquitectura de conmutador central usada por IBM en sus sistemas 700/7000 y 360, los últimos modelos del PDP-8 usaban una estructura que ahora es prácticamente universal para minicomputadores y microcomputadores: la estructura de bus. El bus PDP-8, llamado Ómnibus, consiste en 96 hilos conductores separados, usados para control, direccionamiento y datos. Como todos los componentes del sistema comparten un conjunto de caminos, su uso debe estar controlado por la CPU. Esta arquitectura es altamente flexible, permitiendo conectar módulos al bus para crear varias configuraciones.” (Stallings, 2006) Últimas generaciones Más allá de la tercera generación hay menos acuerdo general en la definición de las generaciones de computadores. Con la introducción de la integración a gran escala (LSI, Large-Scale Integration), podía haber más de 1 000 componentes en un simple chip de circuito integrado. Con la integración a muy gran escala (VLSI, Very-Large Scale Integration), se lograron más de 10 000 componentes por chip, y los chips VLSI actuales pueden contener más de 100 000 componentes.” (Stallings, 2006) Introducción a la organización y arquitectura de computadoras 15 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 “Con el gran avance de la tecnología, la rápida introducción de nuevos productos, y la importancia del software y las comunicaciones, así como del hardware, la clasificación en generaciones se vuelve cada vez menos clara y menos significativa. Se podría decir que la aplicación comercial de nuevos desarrollos resultó uno de los principales cambios deprincipios de los años setenta y los resultados de estos cambios duran todavía.” (Stallings, 2006) ¿Ha entendido Ud. la importancia de la evolución de los computadores y sus componentes? ¿Cree Ud., según lo tratado en esta unidad, que la evolución de las tecnologías de los equipos de cómputo ha llegado a su máximo punto o podrán crecer a ritmo acelerado? ¿Cree Ud. que las computadoras han beneficiado o perjudicado a la humanidad, por qué? Sustente su respuesta. Tabla 1 Generación de Computadores Fuente: (Stallings, 2006) Conclusión: La lectura y aprendizaje de la historia y las generaciones de computadores permite conocer la importancia de las TIC en la vida humana. Es preciso reconocer la valía e impacto positivo que la evolución y revolución de las computadoras ha causado en nuestra sociedad, tampoco hay que dejar de un lado la parte negativa de este desarrollo tecnológico y de la dependencia, que el ser humano tiene en los actuales momentos con la tecnología. Introducción a la organización y arquitectura de computadoras 16 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 3.3 Subtema 3: Tendencias futuras Clasificación de Flynn de los computadores Según (Hennessy & Patterson, 1993), “Flynn propuso un sencillo modelo para clasificar todos los computadores. Observó el paralelismo de los flujos de instrucciones y datos exigidos por las instrucciones en los componentes más restringidos de la máquina, y colocó a todos los computadores en una de cuatro categorías: 1. Flujo único de instrucciones, flujo único de datos (SISD, el uniprocesador) 2. Flujo único de instrucciones, flujos múltiples de datos (SIMD) 3. Flujos múltiples de instrucciones, flujo único de datos (MISD) 4. Flujos múltiples de instrucciones, flujos múltiples de datos (MIMD) Este es un modelo tosco, ya que algunas máquinas son híbridos de estas categorías. No obstante, en este capítulo seguimos este modelo clásico porque es sencillo, fácil de comprender, da una buena primera aproximación y –quizá debido a la facilidad de comprensión- también es el esquema más ampliamente utilizado.” “Probablemente la clasificación más popular de computadores sea la clasificación de Flynn. Esta taxonomía de las arquitecturas está basada en la clasificación atendiendo al flujo de datos e instrucciones en un sistema. Un flujo de instrucciones es el conjunto de instrucciones secuenciales que son ejecutadas por un único procesador, y un flujo de datos es el flujo secuencial de datos requeridos por el flujo de instrucciones. Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:” (Universitat de Valéncia, 2020) “SISD (Single Instruction stream, Single Data stream) Flujo único de instrucciones y flujo único de datos. Este es el concepto de arquitectura serie de Von Neumann donde, en cualquier momento, sólo se está ejecutando una única instrucción. A menudo a los SISD se les conoce como computadores serie escalares. Todas las máquinas SISD poseen un registro simple que se llama contador de programa que asegura la ejecución en serie del programa. Conforme se van leyendo las instrucciones de la memoria, el contador de programa se actualiza para que apunte a la siguiente instrucción a procesar en serie. Prácticamente ningún computador puramente SISD se fabrica hoy en día ya que la mayoría de procesadores modernos incorporan algún grado de paralelización como es la segmentación de instrucciones o la posibilidad de lanzar dos instrucciones a un tiempo (superescalares).” (Universitat de Valéncia, 2020) “MISD (Multiple Instruction stream, Single Data stream) Flujo múltiple de instrucciones y único flujo de datos. Esto significa que varias instrucciones actúan sobre el mismo y único trozo de datos. Este tipo de máquinas se pueden interpretar de dos maneras. Una es considerar la clase de máquinas que requerirían que unidades de Introducción a la organización y arquitectura de computadoras 17 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 procesamiento diferentes recibieran instrucciones distintas operando sobre los mismos datos. Esta clase de arquitectura ha sido clasificada por numerosos arquitectos de computadores como impracticable o imposible, y en estos momentos no existen ejemplos que funcionen siguiendo este modelo. Otra forma de interpretar los MISD es como una clase de máquinas donde un mismo flujo de datos fluye a través de numerosas unidades procesadoras. Arquitecturas altamente segmentadas, como los arrays sistólicos o los procesadores vectoriales, son clasificados a menudo bajo este tipo de máquinas. Las arquitecturas segmentadas, o encauzadas, realizan el procesamiento vectorial a través de una serie de etapas, cada una ejecutando una función particular produciendo un resultado intermedio. La razón por la cual dichas arquitecturas son clasificadas como MISD es que los elementos de un vector pueden ser considerados como pertenecientes al mismo dato, y todas las etapas del cauce representan múltiples instrucciones que son aplicadas sobre ese vector.” (Universitat de Valéncia, 2020) “SIMD Single Instruction stream, Multiple Data stream Flujo de instrucción simple y flujo de datos múltiple. Esto significa que una única instrucción es aplicada sobre diferentes datos al mismo tiempo. En las máquinas de este tipo, varias unidades de procesado diferentes son invocadas por una única unidad de control. Al igual que las MISD, las SIMD soportan procesamiento vectorial (matricial) asignando cada elemento del vector a una unidad funcional diferente para procesamiento concurrente. Por ejemplo, el cálculo de la paga para cada trabajador en una empresa, es repetir la misma operación sencilla para cada trabajador; si se dispone de una arquitectura SIMD esto se puede calcular en paralelo para cada trabajador. Por esta facilidad en la paralelización de vectores de datos (los trabajadores formarían un vector) se les llama también procesadores matriciales.” (Universitat de Valéncia, 2020) “MIMD (Multiple Instruction stream, Multiple Data stream) Flujo de instrucciones múltiple y flujo de datos múltiple. Son máquinas que poseen varias unidades procesadoras en las cuales se pueden realizar múltiples instrucciones sobre datos diferentes de forma simultánea. Las MIMD son las más complejas, pero son también las que potencialmente ofrecen una mayor eficiencia en la ejecución concurrente o paralela. Aquí la concurrencia implica que no sólo hay varios procesadores operando simultáneamente, sino que además hay varios programas (procesos) ejecutándose también al mismo tiempo.” (Universitat de Valéncia, 2020) Introducción a la organización y arquitectura de computadoras 18 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 Figura 3 Clasificación de Flynn Fuente: (Universitat de Valéncia, 2020) Procesadores de propósito especial “Además de explorar el paralelismo, muchos diseñadores hoy día están explorando computadores de propósito especial. La creciente sofisticación del software de diseño ayudado por computador y la creciente capacidad por chip conlleva la oportunidad de construir rápidamente un chip que haga bien una cosa a bajo coste. El tratamiento de imágenes y el reconocimiento del habla en tiempo real son ejemplos. Estos dispositivos de propósito especial, o coprocesadores, frecuentemente actúan en unión de la CPU. Hay dos tipos en la tendencia de coprocesadores: procesadores de señales digitales y arrays sistólicos.” (Hennessy & Patterson, 1993) “Los procesadores de señales digitales (o DSP) no derivan del modelo tradicional de cálculo y tienden a parecermáquinas horizontales microprogramadas o máquinas VLIW. Tienden a resolver problemas de tiempo real, que tienen esencialmente un flujo de datos de entrada infinito. Ha habido poco énfasis en la compilación a partir de lenguajes de programación como C, pero esto está empezando a cambiar. Cuando los DSP se dobleguen frente a las demandas de los lenguajes de programación, será interesante ver cómo difieren de los microprocesadores tradicionales. Los arrays sistólicos evolucionaron de intentos de obtener un ancho de banda de cálculo más Introducción a la organización y arquitectura de computadoras 19 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 eficiente del silicio. Los arrays sistólicos se pueden considerar como un método para diseñar computadores de propósito especial para equilibrar recursos, ancho de banda de E/S y cálculo. Basándose en la segmentación, los datos fluyen en etapas desde memoria a un array de unidades de cálculo y vuelta a memoria. Recientemente, la investigación sobre arrays sistólicos se ha desplazado desde muchos chips de propósito especial dedicados a menos chips, más potentes, que son programables.” (Hennessy & Patterson, 1993) “Los autores esperan, en los años noventa, un creciente papel para los computadores de propósito especial, porque ofrecen mayor rendimiento y menor coste para funciones dedicadas, como tratamiento de imágenes y reconocimiento del habla en tiempo real. El mercado de los consumidores parece el candidato más probable, dado su alto volumen y sensibilidad al coste.” (Hennessy & Patterson, 1993), Direcciones futuras para los compiladores Los compiladores del futuro tienen dos desafíos sobre las máquinas del futuro: • Organización de los datos para reducir los gastos de jerarquía de memoria y de comunicación, y • Explotación del paralelismo.” (Hennessy & Patterson, 1993) “Los programas del futuro gastarán un porcentaje mayor de tiempo de ejecución esperando la jerarquía de memoria cuando crezca el desnivel entre la duración del ciclo de reloj de los procesadores y el tiempo de acceso a memoria principal. Los compiladores que organizan códigos y datos para reducir los fallos de cache pueden conducir a mejoras mayores de rendimiento que las optimizaciones tradicionales de hoy día. Mejoras adicionales son posibles con la posibilidad de pre búsqueda de datos en una cache antes de que los necesite el programa. Una proposición interesante es que al extender los lenguajes de programación existentes con operaciones sobre arrays, un programador puede expresar el paralelismo con cálculo sobre arrays completos, dejando al compilador que organice los datos en los procesadores para reducir la cantidad de comunicaciones. Por ejemplo, la extensión propuesta a FORTRAN 77, denominada FORTRAN 8X, incluye extensiones de arrays.” (Hennessy & Patterson, 1993) “La esperanza es que la tarea del programador pueda incluso ser más simple que con máquinas SISD, donde las operaciones de arrays deben ser especificadas con bucles. El rango de programas que dicho compilador puede manejar eficientemente, y el número de indicaciones que un programador debe suministrar sobre dónde colocar los datos, determinará el valor práctico de esta propuesta. Además de reducir los costes de accesos a memoria y comunicación, los compiladores pueden cambiar el rendimiento Introducción a la organización y arquitectura de computadoras 20 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 en factores de dos o tres, al utilizar el paralelismo disponible en el procesador.” (Hennessy & Patterson, 1993) Juntando todo: el multiprocesador Sequent Symmetry El alto rendimiento y bajo coste de los microprocesadores inspiraron un renovado interés en los multiprocesadores en los años ochenta. Varios microprocesadores se pueden colocar sobre un bus común porque: ▪ son mucho más pequeños que los procesadores multichip, ▪ las cachés pueden disminuir el tráfico del bus y ▪ los protocolos de coherencia pueden mantener cachés y memoria consistente.” (Hennessy & Patterson, 1993) “El tráfico por procesador y el ancho de banda del bus determinan el número de procesadores en dicho multiprocesador. Algunos proyectos de investigación y compañías investigaron estos multiprocesadores de bus compartido. Un ejemplo es Sequent Corporation, fundada para construir multiprocesadores basados en microprocesadores estándares, y el sistema operativo UNIX. El primer sistema fue el Balance 8000, ofertado en 1984 con un número de microprocesadores National32032 comprendido entre 2 y 12, un bus de transacciones de 32 bits que multiplexaba direcciones y datos, y una caché de escritura directa, asociativa por conjuntos, de 2 vías y 8 KB por procesador. Cada caché observa el bus para mantener la coherencia utilizando escritura directa con invalidación.” (Hennessy & Patterson, 1993) “El ancho de banda sostenida de la memoria principal y del bus es de 26,7 MBIs. Dos años más tarde Sequent se modernizó con el Balance 2 1000, ofreciendo hasta 30 microprocesadores National 32032 con el mismo bus y sistema de memoria. En 1986, Sequent comenzó a diseñar el multiprocesador Symmetry, utilizando un microprocesador de 300 a 400 por 100 más rápido que el 32032. El objetivo fue soportar tantos procesadores como fuese posible utilizando los controladores de E/S desarrollados para el sistema de Balance. Esto significó que el bus tenía que permanecer compatible, aunque los nuevos sistemas de bus y memoria debían proporcionar aproximadamente del 300 al 400 por 100 más ancho de banda que el sistema más antiguo.” (Hennessy & Patterson, 1993) “El objetivo de mayor ancho de banda del sistema de memoria con un bus similar fue atacado en cuatro niveles. Primero, la cache se incrementó a 64 KB, aumentando la frecuencia de aciertos y, por tanto, el ancho de banda efectivo visto por el procesador. Segundo, la política de caché fue cambiada de escritura directa a postescritura para reducir el número de operaciones de escritura sobre el bus compartido. Para mantener la coherencia caché con postescritura, Symmetry utiliza un esquema de invalidación en escritura. El tercer cambio fue duplicar la anchura del bus a 64 bits, doblando casi el Introducción a la organización y arquitectura de computadoras 21 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 ancho de banda del bus a 53 MB/s. El cambio final fue que cada controlador de memoria entrelazaba la memoria de dos bancos, permitiendo que el sistema de memoria se adecuase al mayor ancho de banda del bus. El sistema de memoria puede tener hasta seis controladores, con un total de hasta 240 MB de memoria principal.” (Hennessy & Patterson, 1993) “El uso de lenguajes de alto nivel y la portabilidad del sistema operativo UNIX permitió cambiar los repertorios de instrucciones al Intel 80386 más rápido. Comendo a una frecuencia de reloj mayor, con el acelerador, más rápido, Weitek 1 167 de punto flotante, y con el sistema de memoria mejorado, un único 80386 corría de 214 a 776 por 100 con más rapidez para benchmarks en punto flotante y, aproximadamente, el 375 por 100 con más rapidez para benchmarks enteros. Otra de las restricciones de diseño fue que los nuevos circuitos impresos de Symmetry tenían que funcionar adecuadamente cuando se pusiesen en los antiguos sistemas de Balance. Como el nuevo sistema tenía que utilizar postescritura y el sistema antiguo utilizaba escritura directa, el equipo hardware resolvió el problema diseñando las nuevas cachés para que soportasen o escritura directa o postescritura. Lovett y Thakkar [1988] aprovecharon esa característica para ejecutar programas paraleloscon ambas políticas.” (Hennessy & Patterson, 1993) “Como mencionamos antes, la utilización del bus está estrechamente ligada al número de procesadores que se pueden utilizar en los sistemas de bus único. Las caches de escritura directa deberían tener mayor utilización del bus para el mismo número de procesadores, ya que cada escritura debe ir sobre el bus; o desde una perspectiva diferente, el mismo bus debería poder soportar más procesadores si utilizan cachés de postescritura. Hay dos componentes para el tráfico de bus: los fallos normales y el soporte de coherencia. Los fallos del uniprocesador (forzoso, capacidad y conflicto) pueden reducirse con cachés mayores y con mejores políticas de escritura, pero el tráfico de coherencia es una función del programa paralelo.” (Hennessy & Patterson, 1993) ¿Por qué cree Ud. que la clasificación de Flynn, a pesar de ser un modelo tosco, sea el más utilizado para explicar la clasificación de los computadores? Sustente su respuesta de acuerdo a las 4 clasificaciones dadas. Conclusión: El modelo de Flynn, a pesar de ser tosco, es el más utilizado por su sencillez y facilidad de comprensión puesto que permite, al estudiante, un conocimiento más aproximado a la arquitectura del computador. La taxonomía de Flynn da a conocer de manera bastante didáctica la clasificación atendiendo al flujo de datos e instrucciones en un sistema. Introducción a la organización y arquitectura de computadoras 22 © U n iv er si d ad E st at al d e M ila gr o – U N EM I FORMATO CONTROLADO: FR0018/ v1.0 / 18-11-2019 4. Bibliógrafí a » Ariza, E. (SA de SM de 1993). Redalyc.org. Recuperado el 29 de Diciembre de 2019, de https://www.redalyc.org/: https://www.redalyc.org/articulo.oa?id=26700324 » ECU RED. (SD de SM de 2019). Ecu Red. Recuperado el 27 de 12 de 2019, de www.ecured.cu: https://www.ecured.cu/Arquitectura_de_computadoras » García, D. A. (SD de SM de 2019). Tecnológico de Monterrey. Recuperado el 26 de Diciembre de 2019, de https://tec.mx/es: http://homepage.cem.itesm.mx/garcia.andres/PDF201411/Arquitectura%20Computac ional.pdf » GOMEZ, J. B. (2012). Arquitectura de computadoras I. Viveros de Asís 96, Col. Viveros de la Loma, Tlalnepantla, C.P. 54080, Estado de México: RED TERCER MILENIO S.C. » Hennessy, J. L., & Patterson, D. A. (1993). ARQUITECTURA DE COMPUTADORES Un enfoque cuantitativo. Madrid: McGRAW-HILLPNTERAMERICANA DE ESPANA, S. A. U. » Mancia, J. (SA de SM de 2014). Universidad de Granada. Recuperado el 29 de Diciembre de 2019, de www.atc.ugr.es: https://atc.ugr.es/pages/actividades_extension/n4_revista_eaic_2014/%21 » Parhami, B. (2005). Arquitectura de Computadoras. México: McGRAW- HILL/INTERAMERICANA EDITORES, S.A. DE C.V. » Stallings, W. (2006). Organización y arquitectura de computadores. Madrid: PEARSON EDUCACIÓN, S.A. » Universitat de Valéncia. (SA de SM de 2020). Universitat de Valéncia. Recuperado el 31 de Diciembre de 2019, de www.uv.es: http://informatica.uv.es/iiguia/AAC/AA/apuntes/aic_intro.pdf » Yanza, A., Guijarro, A., & García, P. (2018). Organización y Arquitectura de computadoras. Un enfoque práctico. Las Tunas, Cuba: Editorial Académica Universitaria (Edacun) y Opuntia Brava. 1. Unidad 1: Organización y arquitectura de computadoras Tema 1: Introducción a la organización y arquitectura de computadoras Objetivo: 2. Introducción 3. Información de los subtemas 3.1 Subtema 1: Arquitectura, organización y definición 3.2 Subtema 2: Las generaciones de computadores La primera generación: los tubos de vacío La segunda generación: los transistores La tercera generación: los circuitos integrados Últimas generaciones 3.3 Subtema 3: Tendencias futuras Clasificación de Flynn de los computadores Procesadores de propósito especial Direcciones futuras para los compiladores Juntando todo: el multiprocesador Sequent Symmetry 4. Bibliografía