Arquitectura y Organización de Computadoras SIN EXAMEN FINAL (Promocional), deberán: •Aprobar 2 (dos) evaluaciones parciales teórico _ prácticas con un mínimo de 7 puntos, o sus respectivos exámenes recuperatorios. •Obtener como calificación correspondiente a los trabajos de Laboratorio, nota de 7 o mas. •Asistencia del 80 % a las clases/teóricas y a las clases de laboratorio. •Parcial teórico integrador, aprobado con 7 o mas. •Defensa y Aprobación del trabajo grupal monográfico presentado, con 7 o más. 1 •Entrega de una carpeta con todos los TP y demás actividades Arquitectura y Organización de Computadoras REGULAR CON EXAMEN FINAL: •Alumnos con notas menores a 7 y superiores a 6 en los exámenes parciales. •Porcentaje de asistencia inferior a 80 % y superior al mínimo fijado por reglamentación ordinaria. •Aprobación de los trabajos de Laboratorio •Presentación del trabajo grupal monográfico. 2 1 Arquitectura y Organización de Computadoras Horarios: •Clases teórico _ practicas: Lunes 19 a 21 hs. • Miércoles de 18 a 20 hs. •Laboratorio: Viernes de 8 a 12 hs. 3 Arquitectura y Organización de Computadoras Actividad Primer parcial Fecha Miércoles 04/05 Recuperatorio Viernes Primer Parcial 20/05 Segundo parcial Miércoles 15/06 Entrega Trabajo 20 y 27/6 de Monografía Recuperatorio 22/06 Segundo Parcial Extraordinario y 29/06 Parcial integrador Horario Clase teoría-práctica Clase Lab. -Tutoría Clase práctica Clase teoría-practica Clase práctica Clase practica 4 2 Arquitectura y Organización de Computadoras Objetivos : –Incorporar conocimientos que permitan la comprensión de los principios de funcionamiento de los equipos de computación. –Analizar los niveles estructurales básicos de un computador. –Inferir aspectos vinculados a la organización de los componentes globales de un procesador y sus interrelaciones. –Justificar la importancia de los lenguajes internos de la computadora –Comprender cuáles son los problemas fundamentales en el diseño de computadoras, alternativas y mecanismos de solución a los mismos y los retos que enfrenta esta área. 5 Computadora • • • • • • • Máquina Digital Sincrónica Cálculo Numérico Calculo lógico Controlada por programa Comunicación con el mundo exterior 6 3 Arquitectura de Computadoras • Arquitectura: Atributos de un sistema que tienen un impacto directo en la ejecución lógica de un programa. • Atributos visibles para un programador • Ejemplos: Conjunto de instrucciones, nro de bits usados para representar tipos de datos (numéricos o caracteres), técnicas de direccionamiento de memoria, mecanismos de E/S, etc. • Ej.: Existe la instrucción de multiplicación? 7 Arquitectura de Computadoras • Organización: Refiere a las unidades funcionales y sus interconexiones, que dan lugar a especificaciones arquitectónicas. • Como son implementados esos atributos. • Atributos de organización: Detalles de hardware transparentes al programador: señales de control, interfaces entre el computador y los periféricos, tecnología de memoria, frecuencia del reloj, etc. • Ej.: Existe la unidad de multiplicación por hardware o se realiza por sumas repetidas ? 8 4 Familias de computadoras • Fabricantes ofrecen una familia de modelos de computadoras. • Todas con la misma arquitectura, pero con distinta organización. • Los integrantes de una familia tienen precios y prestaciones distintas. • Arquitectura puede sobrevivir muchos años, pero la organización evoluciona con la tecnología. • Arquitectura IBM sistema /370 9 • Microcomputadoras: Relación entre arquitectura y organización es muy estrecha. • Cambios tecnológicos, influyen en la organización y generan arquitecturas mas ricas y potentes. • Hay menos requisitos de compatibilidad entre modelos. • Ejemplo son los computadores RISC, Reduced Instruction Set Computer). • Aquí mayor interacción entre diseño arquitectónico y de organización. 10 5 Estructura y Funcionamiento • Computador: Es un sistema, constituido de un conjunto de componentes interrelacionados. • La organización de un computador es jerárquica. • Es necesario tratar con un nivel particular del sistema a la vez. • De cada nivel al diseñador le interesa: • Estructura: Como se interconectan los componentes. • Función: la operación de cada componente individual como parte de la estructura 11 Estructura y Funcionamiento • Computador es un sistema complejo • Naturaleza jerárquica de los sistema complejos. • Sistema jerárquico: subsistemas interrelacionados. Cada uno de los cuales se organiza en una estructura jerárquica, hasta el nivel más bajo del subsistema elemental. • En cada nivel interesa: Estructura y funcionamiento 12 6 Estructura y funcionamiento • Estructura: Modo en que los componentes están interrelacionados. • Funcionamiento: la operación de cada componente individual como parte de la estructura. • En términos de descripción: de arriba abajo ( “top-down”) es clara y efectiva (descomponer e sistema.). 13 Estructura y funcionamiento • Funciones básicas de un computador: – Procesamiento de datos – Almacenamiento de datos (corto/largo plazo) – Transferencias de datos (Entrada/salida.- Comunicación de datos).– Control ( De las tres anteriores- gestionar y dirigir por medio de instrucciones) • Número de operaciones posibles que pueden ser realizadas es pequeño. • Posibles operaciones de un computador (4) 14 7 Visión funcional de un computador Recurso de almacenamiento de datos Entorno Operativo (Fuente y destino de datos Sistema Transfere ncia de datos Mecanismo de Control Recurso de Procesamiento de Datos 15 Operaciones (1) • Transferencia de datos – e.g. keyboard to screen Transfere ncia de datos Almacenamiento Mecanismo de control Procesamiento 16 8 Operaciones (2) • Almacenamiento – e.g. Internet download to disk Sistema transferen cia de datos Almacenamiento Mecanismo de Control Procesamiento 17 Operaciones (3) • Procesamiento de/hacia almacenamiento – e.g. Actualizacion de estados bancarios Almacenamiento Transfere ncia de datos Mecanismo de Control Procesamiento 18 9 Operaciones (4) • Procesamiento desde almacenamiento a E/S – Ej. Impresión de estados bancarios. Almacenamiento Transfere ncia Mecanismo de Control Procesamiento 19 Operaciones (4) • Las operaciones detalladas pueden parecer absurdamente generalizada, pero: • “Hay sorprendentemente muy pocas formas de estructuras de computadores que se ajusten a la funcion que va a ser llevada a cabo. En la raiz de esto subyace el problema de la naturaleza de uso general de computadores, en la cual toda la especializacion funcional ocurre cuando se programa y no cuando se diseña”. (SIEW82) 20 10 Estructura de una computadora • Como se interconectan los componentes. • El computador es una entidad que interactúa con su entorno externo. • Existen cuatro componentes estructurales principales: – Unidad Central de Procesamiento (procesador) – Memoria Principal: almacena datos – Entrada/Salida transfieren datos entre el computador y el entorno externo – Sistema de Interconexión: mecanismo de conexión 21 entre la CPU, la memoria y la E/S. Estructura del nivel superior Peripherals Computer Central Processing Unit Computer Main Memory Systems Interconnection Input Output Communication lines 22 11 23 Estructura de la CPU CPU Computer Arithmetic and Login Unit Registers I/O System Bus Memory CPU Internal CPU Interconnection Control Unit 24 12 Estructura de la CPU • Unidad Central de Procesamiento: Sus principales componentes estructurales: – – – – Unidad de control Unidad aritmético-lógica ( ALU ) Registros Interconexiones CPU: mecanismos que proporcionan comunicación entre la UC, la ALU y los registros. 25 26 13 Estructura de la Unidad de Control • Unidad de Control: Implementación microprogramada y su estructura – Memoria de control – Lógica Secuencial – Registros y decodificadores 27 28 14 Generaciones de Computadoras.Evolución y prestaciones. • La evolución de los computadores se ha caracterizado por: • Incremento de la velocidad del procesador. • Disminución del tamaño de los componentes • Aumento del tamaño de memoria • Aumento de la capacidad de E/S y de la velocidad. 29 Primera generación: tubos de vacío • ENIAC: Mauchly y Eckert ( Inician 1943 ) • Primer computador electrónico de propósito general del mundo. • Máquina decimal, realizaba 5000 + seg. • Contenía mas de 18000 tubos • Pesaba 30 toneladas y ocupaba 15.000 pies cuadrados. • Se programaba manualmente: conmutadores y conectando y desconectando cables • 1946: Nueva era de computadores electrónicos 30 15 Manchester University Mark I • Los supercomputadores, de un gran volumen y alto precio han sido largamente desplazados, por máquinas de tamaño menor y precio menor que ofrecen mejor promedio de performance y precio. (Source: http://www.paralogos.com/DeadSuper) 31 Primera generación: tubos de vacío • Concepto de programa almacenado: Máquina de von Neuman • Se diseña un nuevo computador de programa almacenado el IAS, de propósito general. Formado por: • Memoria principal: Almacena tanto datos como instrucciones • Unidad Aritmético_lógica: realiza operaciones con datos binarios • Unidad de control: Interpreta las instrucciones en memoria y provoca su ejecución. • Equipo de entrada-salida dirigido por la unidad de control 32 16 Proposiciones de von Neuman ( I ) • Primero: Dispositivo es un computador que realizará frecuentemente las operaciones elementales +,-,*,/. Contendrá elementos especializados sólo en estas operaciones. La primera parte específica: CA ( Central aritmética). • Segundo: Control lógico será realizado por un órgano central de control. (CC) • Tercero: Cualquier dispositivo que realice secuencias largas y complicadas de operaciones, debe tener una memoria considerable (.. ). La 33 memoria es la tercera parte especifica del dispositivo ( M ). Proposiciones de von Neuman ( II ) • Las tres partes específicas CA,CC (juntas C ) y M, corresponden a las neuronas asociativas del sistema nervioso humano. Queda por discutir los equivalentes a la neuronas sensoriales o aferentes y las motoras o eferentes. Éstos son los órganos del dispositivo de entrada y salida. • EL dispositivo tiene que estar dotado con la habilidad de mantener contacto de entrada y salida con medios específicos: el medio de grabación exterior del dispositivo R ( Recording). • Cuarto: El dispositivo tiene que tener órganos para transferir .. información a partir de R a sus partes específicas C y M. Éstos órganos forman su entrada ( I ) 34 17 Proposiciones de von Neuman ( III ) • Quinto: El dispositivo tiene que tener órganos para transferir ( .. ) información a partir de sus partes específicas C y M hacia R. Éstos órganos forman su salida, la quinta parte específica: O ( Output). Es mejor de nuevo hacer todas las transferencias a partir de M ( mediante O ) a R, y nunca directamente. • Salvo muy raras excepciones todos los computadores tienen la estructura y funcionamiento que la indicada por Von Neuman. 35 El modelo von Neumann ( IAS) El modelo von Neumann presenta cinco componentes principales: ( 1) unidad de entrada; (2) unidad de salida; (3) unidad aritmética lógica; (4) unidad de memoria; (5) unidad de control. 36 18 Operación del computador IAS (Institute for Advanced Studies ) • Memoria: 1000 palabras ó posiciones • Cada palabra 40 bits ( dígitos binarios ) • Unidad de control: Capta instrucciones y las ejecuta una a una. • Registros de ALU: • Registro Acumulador (AC) y Multiplicador cociente (MQ): almacenan operandos y resultados de operaciones de la ALU temporalmente. • Registro temporal de memoria (MBR): contiene una palabra que debe ser almacenada en memoria o recibe 37 una palabra procedente de memoria Formatos de la memoria IAS 0 39 1 Bit de signo 0 Codop (a ) Palabra número 8 19 20 Dirección 28 Codop (b ) Palabra instrucción 39 Dirección 38 19 Estructura Expandida del IAS Unidad Central de Procesamiento Unidad Aritmetico-Logica Accumulator MQ Circuitos aritmeticos logico MBR Equipo de Entrada Salida Datos Instruciones Memoria Principal M IBR PC MAR IR Circuitos de control Unidad de control de programa Direcciones 39 Operación del computador IAS • Registros de la Unidad de Control: • Registro de Instrucción ( IR ): Contiene 8 bits del código de operación de la instrucción que se va a ejecutar. • Registro temporal de Instrucción ( IBR ) almacena temporalmente la instrucción contenida en la parte derecha de una palabra de memoria. • Contador de programa ( PC ) : contiene la dirección de la próxima pareja de instrucciones a ser captada de memoria • Registro de dirección de memoria ( MAR ): especifica la dirección en memoria de la palabra que va a ser escrita o 40 leída en MBR. 20 Ciclos de ejecución • El IAS ejecuta repetidamente el: • Ciclo de instrucción: – Ciclo de captación: El codop de la siguiente instrucción es cargado en IR, la parte que contiene la dirección se almacena en MAR. – La instrucción es captada desde el IBR , o desde la memoria. – Ciclo de ejecución: Cuando el codop esta en IR. Los circuitos de control interpretan el CODOP y ejecutan la instrucción, enviando señales de control adecuadas para provocar que los datos se transfieran o que la ALU realice una operación. – Tabla de Conjunto de instrucciones del IAS 41 El modelo de bus de sistema • El modelo de von Neumann refinado , llamado modelo de bus del sistema tiene una CPU (ALU y control), memoria, y unidad de entrada/salida. • Comunicación entre componentes se maneja por un camino compartido llamado bus del sistema, el cual está formado por el bus de datos, el bus de direcciones y el bus de control. Algunas arquitecturas pueden tener un Bus separado de I/O. 42 21 Computadores comerciales – En los años 50: Compañias Sperry e IBM – UNIVAC I: Primer computador de uso comercial. Utilizada para el censo en EEUU. Tareas: manejo de matrices, reparto de primas para empresas, etc. – UNIVAC II: mas memoria y más capacidad de cálculo, estrategia de compatibilidad ( para evitar perder la inversión en programas) – El UNIVAC 1103 y sus sucesores diseñados para aplicaciones cientificas y de calculos complejos. – IBM: sacó su primer computador con programas almacenados electrónicamente, en 1953. ( 701 en 1953 ). – Se inicia la serie de computadores 700/7000, que situaron a IBM como el fabricante de computadores dominante ( aplicaciones de gestion ). 43 – Segunda Generación: Los transistores ( I ) • Más pequeño, más barato, disipa menos calor. • Es un dispositivo de estado sólido, hecho con silicio. • Inventado en los Laboratorios Bell en 1947 • Lanzada por NCR y con mas éxito por RCA • Luego IBM siguió con la serie 7000. • Se introdujeron unidades lógicas y aritméticas más complejas • Uso de lenguajes de programación de alto nivel • Se proporcionó un software del sistema. • Aparece la empresa DEC (1957), con el PDP-1, se inicia asi el desarrollo de los minicomputadores. 44 22 Segunda Generación: Los transistores ( II ) • Serie 700 de IBM: la familia sufrió aumento de prestaciones y capacidad y/o disminución de precios. • Memoria principal: creció de 2 K a 32 K palabras. • Tiempo de acceso a una palabra de memoria: de 30us a 1,4 us. • Crece el nro. de códigos de operación de 24 a 185. • Diferencias con IAS: – A) Uso de canales de datos. Libera de trabajo a la CPU. – B) Multiplexor: punto central de conexión central de los canales de datos, la CPU y la memoria. ( organiza los accesos a la memoria desde la CPU y los canales de datos). 45 Segunda Generación: Los transistores ( III ) • Entre los 50 y los 60, los computadores compuestos por transistores, resistencias, capacidades, etc. • Estos se fabricaban separadamente ( en sus contenedores) y luego se soldaban o cableaban juntos. • Proceso engorroso y caro: al crecer la cantidad de transistores ( 10000 o mas) a empacar en tarjetas de circuitos en forma de panel. 46 23 Generaciones de computadores Generación Fechas Tecnología 1 1946-1957 2 4 1958-1964 Transistores (componente 200.000 discreto) 1965-1971 Pequeña y mediana 1.000.000 integración 1972-1977 Gran integración 10.000.000 5 1978 3 Válvulas Velocidad típica 40.000 Alta integración 100.000.000 47 Tercera Generación: Circuitos integrados ( I ) • • • • • • • • • • Aparecen en 1958 y revolucionan la electrónica. Exponentes: IBM Sistema/ 360 y DEC PDP-8. Aparece la microelectrónica: “pequeña electrónica” Los elementos básicos deben ofrecer almacenamiento, procesamiento y control de funciones. Computador digital: requiere solo dos tipos de componentes: puertas y celdas de memoria. Interconectando muchos de estos dispositivos, se puede construir un computador. Funciones básicas: Almacén de datos: proporcionado por las celdas de memoria. Procesamiento de datos: proporcionado por las puertas. Transferencia de datos: caminos entre componentes. Control: los caminos entre componentes pueden llevar las señales de control. 48 24 Tercera Generación: Circuitos integrados ( II ) • Se construyen miles de transistores al mismo tiempo en una sola oblea de silicio. • La oblea se divide en una matriz. Se fabrica el mismo patrón de circuito en cada área. • La oblea se divide en chips. • Cada chip: varias puertas, mas puntos de interconexiones de entrada salida. • Se encapsulan en una carcasa y que le proporciona patas. • Varios chips pueden interconectarse en una tarjeta de ciucuito impreso para producir circuitos mas complejos y mayores. 49 Tercera Generación: Circuitos integrados ( II ) • Primeros circuitos: Pequeña escala de integración (SSI) • Creció el número de componentes a encapsular en un solo chip. • Ley de Moore: El número de transistores que se podrían integrar en un solo chip se duplicaba cada año y se predecía que esto continuaría en un futuro cercano. El ritmo disminuyó, duplicándose cada 18 meses en los 70, pero luego la velocidad se ha mantenido desde entonces. 50 25 Evolución del nro de transistores en los procesadores 51 Tercera Generación: Circ. integrados (III ) • Consecuencias de la ley de Moore: • Precio del chip ha permanecido prácticamente invariable • Costo de la lógica del computadora y de la circuitería de la memoria han caído a una velocidad drástica. • La lógica y la memoria están más próximos en chips más densamente encapsulados -> la longitud de las interconexiones eléctricas ha disminuido-> incrementándose la velocidad operativa. • Disminución del tamaño del computador • Reducción de las necesidades de potencia y refrigeración. • Las interconexiones de los circuitos son más fiables que las conexiones soldadas. 52 26 Tercera Generación:Circ.integrados (IV) • El sistema /360 de IBM fue la primera familia de computadores que se planeo. • Un cliente podía empezar con un modelo barato, y luego pasarse a una con mayores capacidades, sin sacrificar la inversión en software. • Las características de una familia son: – – – – – – Conjunto de instrucciones similar o idéntico Sistemas operativos similares o idénticos Velocidad creciente Numero creciente de puertos de E/S Tamaño de memoria creciente Costo creciente 53 Tercera Generación:Circ.integrados (V) • Las diferencias entre modelos se basaron en: – La velocidad básica – El tamaño – Grado de simultaneidad • Por ej. : Lograrse mayor velocidad en la ejecución de una instrucción dada: usando una circuiteria mas compleja en la ALU, permitiendo que las suboperaciones se realizaran en paralelo. • Otro modo: incrementar la amplitud del camino de datos entre memoria principal y la CPU. 54 27 Tercera Generación: Circ.integrados (V) • • • • Nace el PDP-8 de DEC. De bajo costo y tamaño pequeño Costaba 16.000 dólares Usaban una estructura que ahora es prácticamente universal para minicomputadores y microcomputadores ( estructura de bus ). • Todos los componentes del sistema comparten un conjunto de caminos, cuyo uso esta controlado por la CPU. 55 DEC - PDP- 8 Bus Structure Console Controller CPU Main Memory I/O Module I/O Module OMNIBUS 56 28 Últimas generaciones (I) • Existe un acuerdo no tan general para la cuarta y quinta generación • 4 ta. 1972 - 1977 - Integración a gran escala ( LSI) + de 1000 componentes en un solo chip • 5ta generación: 1978 en adelante Integración a muy grande escala ( VLSI ) + de 10.000 componentes por chip • Actualmente chips VLSI con más de 100.000 componentes • Con el avance de la tecnología, los nuevos productos, el software y las comunicaciones la separación de generaciones se vuelve menos clara • Los circuitos integrados fueron usados para construir el procesador ( la ALU y UC.) • También esta misma tecnología podía usarse para construir memorias. 57 Últimas generaciones (II) • Memorias: Entre los 50 y los 60: de anillos de material ferromagnético. • Se magnetizaban en un sentido el anillo (llamado núcleo) y representaba un uno, en el otro un cero. • Era más bien rápida, pero era cara, voluminosa y usaba lectura destructiva. Leía un bit de memoria en una milésima de segundo. • Memoria semiconductora: Introducidas en 1970 por Fairchild. Un chip podía tener 256 bits de memoria. • Era no destructiva y más barata. Leía un bit de memoria en 70 mil millonésimas de seg. El costo por bit era mayor que el de un núcleo. • En 1974 precio de memoria semiconductor menor que la de núcleo. • A partir de allí continua disminución del precio y aumento 58 de la densidad. 29 Últimas generaciones ( III ) • Microprocesadores: En cada chip había más elementos ( crece en densidad). • En 1971 Intel desarrolló su 4004. Contenía todos los componentes de la CPU en un solo chip (Microprocesador). • Evolución del número de bits que el procesador trata a la vez. Otra medida es la anchura del bus de datos. • En 1972 aparece el Intel 8008, microprocesador de 8 bits • En 1974 nace el INTEL 8080 primer microprocesador de uso general. • INTEL 8080: es de 8 bits, mayor capacidad de direccionamiento, más rápido, conjunto de instrucciones más rico. 59 • A finales de los 70, aparecen los de 16 bits (8086). Procesadores de la década de los 70 Fecha de introducción 4004 8008 8080 8086 8088 15/11/71 1/4/72 1/4/74 8/6/78 1/6/79 5 MHz, Velocidad de 5 MHz, 108KHz 108KHz 2 MHz 8 MHz, reloj 8 MHz 10 MHz Anchura del 4 bits bus Número de 2300 transistores (10) (microns) Memoria 640 bytes direccionable Memoria virtual 8 bits 8 bits 16 bits 8 bits 3.500 6.000 (6) 29.000 (3) 29.000 (3) 16 kbytes 64 kbyte 1 Mbyte 1 Mbyte - - - 60 30 Procesadores de la década de los 80 F ec h a d e in trod u cció n V elo c id ad d e relo j A n c h u ra d el bus N ú m ero d e tran sisto res 80286 In te l 386TM DX In te l38 6 T M SX In te l48 6 T M DX CPU 1 /2 /8 2 1 7 /1 0 /8 5 1 6 /6 /8 8 1 0 /4 /8 9 6 MHz – 16 M H z 1 2 ,5 M H z 3 3 M H z 16 M H z 33 M H z 1 6 b its 3 2 b its 1 6 b its 1 3 4 .0 0 0 (1 ,5 ) 2 75 .00 0 (1 ) 2 7 5 .0 0 0 (1 ) M em o ria 16 4 d irecc io n ab le m e g ab yte s gig ab ytes M em o ria 64 1 g ig ab yte virtu a l te rab yte s 2 5 M H z, 5 0 M H z, 3 2 b its 4 g ig ab ytes 64 terab yte s 1 ,2 m illo n es (0 ,8 -1 ) 4 g ig ab ytes 64 terab yte s 61 Procesadores de la década de los 90 Intel486TM Pentium SX Procesador Pentium Pro Procesador Pentium II Procesador 1/11/95 7/5/97 Fecha de introducción 22/4/91 Velocidad de reloj 16 MHz – 33 MHz 16 MHz 33 MHz 16 MHz 33 MHz 32 bits 32 bits 64 bits Anchura del bus Número de transistores Memoria direccionable Memoria virtual 22/3/93 1.185 3,1 millones millones (,8) (1,5) 4 4 megabytes gigabytes 64 64 terabytes gigabytes 25 MHz, 50 MHz, 64 bits 5,5 millones 7,5 millones (0,6) 64 gigabytes 64 gigabytes 64 terabytes 64 terabytes 62 31 Niveles de máquina (1) • Hay un número de niveles en una computadora (el número exacto está abierto al debate), desde el nivel del usuario hasta el nivel del transistor. • A medida que se desciende desde el nivel superior, estos niveles se tornan menos abstractos y comienza a aparecer cada vez más, la estructura interna de la computadora. 63 Niveles de máquina ( 2) • Nivel del usuario o del programa de aplicación. El usuario interactua con la computadora por medio de la ejecución de programas como procesadores de texto, planillas de cálculo o juegos. Ve la computadora a través de los programas que ejecuta Poco o nada visible la estructura interna. 64 32 Niveles de máquina ( 3) • Nivel del lenguaje de alto nivel. El usuario interactua con la computadora por medio de la ejecución de programas en lenguajes como C, Pascal, Fortran o Java. El programador ve los tipos de datos y las instrucciones No conoce como la máquina configura esos tipos de datos. Es función del compilador convertirlos hacia los circuitos de la computadora. Los programas así escritos pueden ser recompilados para distintos tipos de máquina( compatibilidad de código fuente). 65 Niveles de máquina ( 4) • Nivel del lenguaje de máquina. Miran “hacia abajo” en la jerarquía. Deben tratar con cuestiones circuitales tales como la estructura de los registros y la transferencia de datos entre ellos. El conjunto de instrucciones del lenguaje de máquina para una computadora se denomina juego de instrucciones. Muchas instrucciones pueden describirse en términos de las transferencias efectuadas entre registros. Código real que utiliza la máquina es el código binario. Assembler: traduce esquemas nemotécnicos de un lenguaje común, tales como MOVE Data, Acc a 66 expresiones formadas por unos y ceros. 33 Niveles de máquina ( 4) • “Compatibilidad binaria”: Maquinas que difieren en la implementación del nivel inferior pero que presentan el mismo conjunto de instruccciones o un subconjunto o un superconjunto. Serie IBM 360 – Intel Corporation: 8086, 80286, 80386, 80486 Pentium Es posible tener maquinas que difieren en la implementacion del nivel inferior pero que representan el mismo conjunto de instrucciones o algun subconjunto o superconjunto de un juego de instrucciones dado. Otras computadoras ofrecen a sus usuarios distintos juegos e instrucciones, lo que dificulta el transporte del paquete de programas de software de una computadora hacia otra familia. 67 • Niveles de máquina (5) Nivel de Control. La Unidad de control a través de señales de control transfiere la información entre registros. La U. de Control interpreta las instrucciones de máquina una a una que miran “hacia abajo” en la jerarquía. Formas diferentes de implementar la unidad de control: Cableado/Control Microprogramado Cablear: señales de control que efectuan la transferencia entre registros están generadas a partir de un bloque de componentes lógicos digitales. Ventajas: Velocidad y cantidad de componentes Desventajas: Extremadamente dificiles de diseñar. 68 34 Niveles de máquina (5) • Microprogramada: Más lenta pero más sencilla. Programa escrito en lenguaje de nivel menor aún e implementado en los circuitos de la máquina, cuya función es interpretar las instrucciones del lenguaje de máquina. Firmware: incluye hardware y software y se ejecuta a través de un microcontrolador quien ejecuta las microinstrucciones reales. 69 Niveles de máquina (6) • Nivel de las unidades funcionales. Las transferencias de registros y las demás operaciones implementadas por la unidad de control mueven información desde y hacia “unidades funcionales”. Se incluyen los registros internos de la CPU, la ALU y la memoria principal de la computadora. 70 35 Niveles de máquina (7) Circuitos lógicos, transistores y cables. Los circuitoslógicos se utilizan para construir las unidades funcionales y los transistores se usan para construir los circuitos lógicos. Cuicuitos lógicos: Implementan las operaciones lógicas de más bajo nivel, de las cuales depende el funcionamiento de la computadora. Transistores: se utilizan para construir los circuitos lógicos. Ultimo nivel: formada por componentes eléctricos como transistores y cables que sirven para construir los circuitos logicos. A este nivel el comportamiento se dispersa en términos de tensiones, corrientes, tiempos de propagación de señales, efectos cuánticos y otros temas de bajo nivel. 71 Niveles de máquina (8) •Interacciones entre niveles. Suele confundirse en forma frecuente Programas emuladores: Emulan el juego completo de instrucciones de una computadora sobre otra computadora distinta. Computadores que no tienen coprocesador de pto fl emulan las instrucciones de punto flotante por medio de una serie de rutinas implementadas en el lenguaje de máquina del microprocesador y almacenadas en un circuito integrado de memoria ROM. Los puntos de vista de los lenguajes absoluto y de alto nivel son los mismos para ambas implementaciones, con excepción de la velocidad. Nivel de lenguaje a alto nivel y los niveles de firmware y de las unidades funcionales pueden estar tan 72 entrelazados que resulte difícil identificar que operación se está produciendo en qué nivel 36 La perspectiva del programador • El programador que trabaja en lenguaje de máquina tiene interes en el lenguaje y en las unidades funcionales. Estos dos elementos conforman la arquitectura de programación de la computadora. La perspectiva del arquitecto de computadoras. Observa al sistema desde todos sus niveles. Al enfocar el diseño de una PC sufre requerimientos de rendimiento y resctriciones de costo. Esta busqueda de equilibrio lleva a una búsqueda de compromiso entre y a través de los niveles de 73 maquina A Typical Computer System 74 37 Diseño para conseguir mejores prestaciones ( I ) •Precio-> Disminuye; prestaciones y capacidad ->crece • Aplicaciones de oficina que requieren de mayor potencia, y los microprocesadores incluyen actualmente: •Procesamiento de imágenes •Reconocimiento del habla •Aplicaciones multimedia •Vídeo-conferencias •Almacenamiento de ficheros de voz y vídeo 75 Diseño para conseguir mejores prestaciones ( II ) •Estaciones de trabajo- >aplicaciones de ingeniería, ciencia y simulaciones •Negocios-> servidores para transacciones y bases de datos, redes cliente-servidor que reemplazan los centros de computo de antaño. •Lo mas sorprendente: Bloques funcionales de hoy->similares al IAS de hace 50 años •Novedosas técnicas para maximizar las prestaciones o rendimiento de un PC 76 38 Diseño para conseguir mejores prestaciones ( III ) •Factores que hay tras la necesidad de diseñar para obtener mejores prestaciones: •1) Velocidad del Microprocesador: Su evolución continua confirmando la Ley de Moore. Reduciendo el tamaño de las delgadas líneas de los circuitos de los transistores de silicio ( 10 % por año) se podría crear una nueva generación de chips cada tres años ( con el cuádruple de transistores). •En chips de memoria: Se ha cuadriplicado la capacidad de las DRAM cada tres años (tecnología básica de la memoria principal). •EN microprocesadores: La adición de nuevos circuitos y potenciación de la velocidad, ha conseguido cuadruplicar o quintuplicar las prestaciones cada tres años desde que INTEL lanzó su X86 en 1979. 77 Diseño para conseguir mejores prestaciones ( IV ) 1) Velocidad del microprocesador: Alcanzará su potencia: si se lo alimenta con una corriente constante de instrucciones. • Diseñadores del procesador elaboran técnicas cada vez más sofisticadas: • A) Predicción de ramificación: el procesador se anticipa al software y predice que ramas o grupos de instrucciones se van a procesar después con > probabilidad. • B) Análisis de flujo de datos: las instrucciones se regulan para ser ejecutadas cuando estén listas, independientemente del orden original del programa. Evita retrasos innecesarios. • C) Ejecución especulativa: utiliza las dos anteriores y ejecuta instrucciones antes de que aparezcan en la ejecución del programa. Los resultados en posiciones temporales. 78 39 Evolución de las características de DRAM y del procesador 79 Diseño para conseguir mejores prestaciones ( V ) 2) Equilibrio de prestaciones: Ajustar la organización y la arquitectura para compensar las desigualdades de capacidad entre los distintos componentes. • Interfaz entre el procesador y la memora principal: Crecimiento de la velocidad del procesador y de la capacidad de memoria, la velocidad de transferencia de datos entre ellos ha quedado retrasada. • Si la interfaz o la memoria no mantienen el ritmo de las demandas del procesador se pierde tiempo valioso de procesamiento. • Maneras de atacar desde la arquitectura: a) Incrementar el nro. de bits que se recuperan de una sola vez haciendo las DRAM más “anchas”. 80 b) Cambiar la interfaz DRAM incluyendo una cache u otro esquema de almacenamiento temporal en el chip DRAM 40 Diseño para conseguir mejores prestaciones ( VI ) c) Reducir la frecuencia del acceso a memoria incorporando, caches cada vez más complejas y eficientes. Una o más caches en el chip del procesador, así como una cache fuera del chip cerca del procesador. d) Incrementar el ancho de banda entre el procesador y la memoria usando buses de más alta velocidad 3. Otra área de diseño se basa en el manejo de dispositivos de E/S. • Estos dispositivos crean una tremenda demanda de procesamiento de datos. • Procesadores actuales: pueden manejar los datos producidos por esos dispositivos, pero el problema es mover los datos entre el procesador y los periféricos ( estrategias de caches y almacenamiento, buses de interconexión de + alta velocidad, uso de configuraciones 81 multiprocesador.) Diseño para conseguir mejores prestaciones ( VII) • Requerimientos típicos de ancho de banda para distintas tecnologías de periféricos Gráficos Color de 24 bits Ancho de banda requerido 30 MBytes/seg. Red de área local 100BASEX 12 MBytes/seg. Periférico Tecnología Controlador de disco SCSI o P1394 10 MBytes/seg. Video de movimiento 1024x768@30fps 67 + MBytes/seg 82 Completo 41 Diseño para conseguir mejores prestaciones ( VII ) Diseñadores: en la búsqueda del equilibrio entre la demanda de rendimiento y procesamiento por parte de los componentes del procesador, la memoria principal, los dispositivos de E/S y las estructuras de interconexión. El diseño se debe enfrentar a dos factores en constante evolución: La velocidad de cambio del rendimiento de las distintas áreas tecnológicas ( procesador, buses, memoria y periféricos) es enormemente diferente entre ellos. Nuevas aplicaciones y nuevos dispositivos periféricos introducen nuevas demandas con respecto de las instrucciones típicas y el modelo de acceso a datos. 83 Evolución del Pentium y del PowerPC Pentium: Décadas de esfuerzo en diseño de computadores de repertorio complejo de instrucciones (CICS) . PowerPC: descendiente directo del primer sistema RISC, el IBM 801. Se usa en millones de máquinas Apple Macintosh y en sistemas con microprocesadores embebidos. Familia de PowerPC: a) 601: máquina de 32 bits (1993) . b) 603: para computadores portátiles y de sobremesa. Máquina de 32 bits, pero de costo mas bajo e implementación mas eficiente.(1994). c) 604: computadores de sobremesa y servidores finales. 32 bits pero técnica más avanzadas. d) 620: para servidores finales, arquitectura de 64 bits. e) 740/750: G3 – 1997 – Integra dos niveles de cache en el chip del procesador principal. f) G4: 1999 – Incrementa el paralelismo y la velocidad interna del chip84 del procesador. 42 Arquitectura y organización de computadoras- 2011 Bibliografía: Stallings, Williams - Organización y Arquitectura de Computadoras - 5º Ed. - Prentice Hall. Año 2000 Murdocca, Miles J. - Principios de arquitectura de computadoras - 1º Ed. - Prentice Hall - Año 2002 Martinez Garza, Jaime; Olivera Rodríguez J.A. Organización y Arquitectura de Computadoras - 1º Ed. Pearson Educacion - Año 2000. Facultad de Ciencias Exactas y Naturales y Agrimensura Lic. V. Godoy .- 85 Arquitectura y organización de computadoras- 2011 Tareas complementarias: Leer item 1.8. Estudio de un caso. Pag. 14 a 17 del libro: Murdocca, Miles J. - Principios de arquitectura de computadoras - 1º Ed. - Prentice Hall - Año 2002 Pensar y resolver el problema: De acuerdo a lo propuesto por La ley de Moore (la potencia de computación se duplica cada 18 meses) , que se atribuye al creador de Intel, surge que las instrucciones de punto flotante se ejecutan en forma circuital cien veces mas rápido que cuando se las emula. Usando la ley de Moore como guía: Cuanto tiempo le llevará a la potencia de computación crecer a punto tal que las instrucciones de pto flotante se emulen tan rápido como sus anteriores contrapartidas en el hardware? 86 43