of 289/289
Carmelo Cuenca Hernández y Francisca Quintana Domínguez FUNDAMENTOS DE COMPUTADORES CURSO 2005/2006 1. PROYECTO DOCENTE 2. TRANSPARENCIAS DEL CURSO 3. GUIONES DE PRÁCTICAS 4. COLECCIÓN DE PROBLEMAS DE EXÁMENES

Arquitectura de-computadores

  • View
    87

  • Download
    0

Embed Size (px)

Text of Arquitectura de-computadores

1. Carmelo Cuenca Hernndez y Francisca Quintana Domnguez FUNDAMENTOS DE COMPUTADORES CURSO 2005/2006 1.PROYECTO DOCENTE 2.TRANSPARENCIAS DEL CURSO 3.GUIONES DE PRCTICAS 4.COLECCIN DE PROBLEMAS DE EXMENES 2. 13877 - FUNDAMENTOS DE COMPUTADORES PROYECTO DOCENTE CURSO: 2005/06 ASIGNATURA: 13877 - FUNDAMENTOS DE COMPUTADORES CENTRO: Escuela Universitaria Informtica TITULACIN: Ingeniero Tcnico en Informtica de Sistemas DEPARTAMENTO: INFORMTICA Y SISTEMAS REA: Arquitectura Y Tecnologa de Computadores PLAN: 11 - Ao 2000 ESPECIALIDAD: CURSO: Primer curso IMPARTIDA: Segundo cuatrimestre TIPO: Obligatoria CRDITOS: 4,5 TERICOS: 3 PRCTICOS: 1,5 Descriptores B.O.E. Organizacin bsica de los computadores: elementos bsicos; esquemas de funcionamiento, desripcin de una mquina bsica, programacin. Temario 1 Arquitectura de un computador y jerarqua de niveles (3horas) 2 Arquitectura del nivel lenguaje mquina (10 horas) 2.1 Caractersticas generales del lenguaje mquina (3 horas) 2.2 Tipos de operandos e instrucciones (2 horas) 2.3 Modos de direccionamiento y formato de las instrucciones (2 horas) 2.4 Subrutinas (3 horas) 3 Diseo del procesador (15 horas) 3.1 Diseo y control cableado de un camino de datos monociclo (4 horas) 3.2 Diseo y control cableado de un camino de datos multiciclo ( 8 horas) 3.3 Diseo y control microprogramado de un camino de datos multiciclo (3 horas) 4 Rendimiento ( 2 horas) Conocimientos Previos a Valorar Los alumnos deberan haber cursado y aprobado la signatura de Sistemas Digitales, donde adquiriran los conocimientos acerca de los sistemas de numeracin y representacin de la informacin ms usuales, el lgebra de Boole y su aplicacin para simplificacin de funciones booleanas, las tcnicas de implementacin de circuitos combinacionales simples, los fundamentos y componentes bsicos de los sistemas secuenciales para desarrollar sistemas secuenciales sncronos. Tambin son necesarios algunos conocimientos bsicos de programacin en algn lenguaje de alto nivel para saber disear programas sencillos, y representar esos algoritmos en pseudocdigo, diagramas de flujo o algn mtodo equivalente. Objetivos Didcticos Fundamentos de Computadores es la asignatura que presenta los componentes de un computador y la organizacin de estos componentes para proporcionar, de una manera eficiente, las funciones necesarias para poder ejecutar programas. Pgina 1 3. Obtener una visin general de la jerarqua de niveles de un computador. Saber diferenciar entre los conceptos de estructura y arquitectura de un computador. Conocer y comprender las caractersticas ms importante de la arquitectura y estructura de un computador. Conocer y comprender los elementos bsicos de la arquitectura del repertorio de instrucciones. Dominar la programacin en lenguaje ensamblador de algn procesador como, por ejemplo, el MIPS R2000. Conocer y comprender los elementos estructurales del procesador para la ejecucin de las instrucciones. Conocer los principios bsicos y mtodos de diseo de unidades de control cableadas y microprogramadas. Evaluar las alternativas de diseo, as como el rendimiento de computadores. Metodologa de la Asignatura La metodologa docente a utilizar durante la imparticin de la asignatura incluye los siguientes procedimientos: Clases magistrales. Clases prcticas en el laboratorio. Resolucin de problemas. Tutoras. Evaluacin La nota final de la asignatura ser el resultado de la ponderacin entre la nota de teora y la nota de las prcticas de laboratorio. Para aprobar la asignatura es preciso haber superado ambas partes con una nota mayor o igual a 5 puntos. La nota de teora tendr un peso de un 70% sobre la nota final y la nota de prcticas de laboratorio un 30%. La nota de teora y de prcticas de laboratorio se obtendr a partir de los exmenes de convocatoria de la asignatura, uno para teora y otro para prctica, en la fecha que el Centro fije para ello. As para calcular la nota final se utilizar la siguiente frmula: NF = 0.7 NT +0.3 NP (siempre que NT>=5 y NP>=5) donde NF es la nota final, NT es la nota de teora y NP es la nota de prcticas de laboratorio. Descripcin de las Prcticas Prctica n 1 DescripcinEl simulador PCspim. ObjetivosFamiliarizacin con la herramienta para las prcticas de la asignatura. Material de laboratorio recomendadoOrdenador personal. Windows. Simulador Pcspim N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 2 DescripcinLos datos en memoria ObjetivosAdquirir soltura en cmo estn ubicados los datos en memoria Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 3 DescripcinCarga y almacenamiento de los datos Pgina 2 4. ObjetivosEstudio de la forma en que se cargan y almacenan los datos. Poner en prctica los conocimientos adquiridos en las clases tericas sobre el repertorio de instrucciones MIPS. Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 4 DescripcinLas operaciones aritmticas y lgicas. ObjetivosAdquirir soltura en el uso de las instrucciones aritmticas lgicas. Poner en prctica los conocimientos adquiridos en las clases tericas sobre el repertorio de instrucciones MIPS. Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim2 N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 5 DescripcinInterfaz con el programa ObjetivosFamiliarizacin con la forma en que el PCSPIM permite realizar entrada y salida de datos. Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 6 DescripcinEstructuras de control:condicionales y bucles ObjetivosAdquirir soltura en el uso de las instrucciones que permiten implementar estructuras condicionales y bucles Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim N horas estimadas en Laboratorio2N horas total estimadas para la realizacin de la prctica2 Prctica n 7 DescripcinGestin de subrutinas ObjetivosEstudio de la forma en que se manejan las subrutinas en lenguaje ensamblador. Material de laboratorio recomendadoOrdenador personal. Window NT 4.0. Simulador Pcspim N horas estimadas en Laboratorio3N horas total estimadas para la realizacin de la prctica3 Bibliografa [1] Organizacin y diseo de computadores: la interfaz hardware/software Hennessy, John L. , McGraw-Hill, Madrid (1995) - (2 ed.) 8448118294 [2] Computer organization and design: the hardware/software interface John L. Hennessy, David A. Patterson Morgan Kaufmann, San Francisco (California) (1998) - (2nd ed.) 1-55860-491-X [3] Introduccin a la informtica Alberto Prieto Espinosa, Antonio Lloris Ruiz, Juan Carlos Torres Cantero McGraw Hill, Madrid (2001) - (3 ed.) 8448132173 Pgina 3 5. [4] Organizacin de computadoras: un enfoque estructurado Andrew S. Tanenbaum Prentice Hall, Mxico [etc.] (2000) - (4 ed.) 970-17-0399-5 [5] Organizacin y arquitectura de computadores: diseo para optimizar prestaciones William Stallings Prentice Hall, Madrid (2000) - (5 ed.) 84-205-2993-1 [6] Problemas y tests de introduccin a la informtica: con ms de 400 problemas y 700 preguntas de tests por Beatriz Prieto Campos, Alberto Prieto Espinosa Universidad de Granada, Departamento de Arquitectura y Tecnologa de Computadores, Granada (2003) 8460791092 [7] Arquitectura de computadores: un enfoque cuantitativo John L. Hennessy, David A. Patterson , McGraw-Hill, Madrid (1993) 8476159129 Equipo Docente CARMELO CUENCA HERNANDEZ (COORDINADOR) Categora: TITULAR DE ESCUELA UNIVERSITARIA Departamento: INFORMTICA Y SISTEMAS Telfono: 928458713 Correo Electrnico: [email protected] WEB Personal: FRANCISCA QUINTANA DOMINGUEZ (RESPONSABLE DE PRACTICAS) Categora: TITULAR DE ESCUELA UNIVERSITARIA Departamento: INFORMTICA Y SISTEMAS Telfono: 928458736 Correo Electrnico: [email protected] WEB Personal: Pgina 4 6. Proyecto docente Fundamentos de Computadores http://serdis.dis.ulpgc.es/~itis-fc Titulacin de Ingeniera Tcnica en Informtica de Sistemas Escuela Universitaria de Informtica 7. Curso 2005/2006 Fundamentos de Computadores 2 Proyecto Docente - Profesorado Carmelo Cuenca Hernndez (coordinador) [email protected] Despacho 2-13 en el mdulo 3 Horario de T U T O R A S Lunes de 11.00-13.00 y jueves 9.00-13.00 Francisca Quintana Domnguez (responsable de prcticas) [email protected] Despacho 2-12 en el mdulo 3 Horario de T U T O R A S Lunes de 9.30-12.30 y mircoles 9.30-12.30 8. Curso 2005/2006 Fundamentos de Computadores 3 Proyecto Docente Horarios B3-B4 L1.1 B1-B2 L1.1 A-5 L3.3 13:30-14:30 12:30-13:30 11:30-12:30 T AA3-A4 L1.1 A1-A2 L1.1 10:30-11:30 T B9:30-10:30 T BT A8:30-9:30 VML 9. Curso 2005/2006 Fundamentos de Computadores 4 Proyecto docente - Objetivos de la asignatura Fundamentos de Computadores presenta los componentes de un computador y la organizacin de estos componentes para ejecutar programas Obtener una visin general de la jerarqua de niveles de un computador Conocer y comprender las caractersticas ms importante de la arquitectura y estructura de un computador Conocer y comprender los elementos bsicos de la arquitectura del repertorio de instrucciones Dominar la programacin en lenguaje ensamblador de algn procesador como, por ejemplo, el MIPS R2000 Conocer y comprender los elementos estructurales de un procesador para la ejecucin de las instrucciones Conocer los principios bsicos y mtodos de diseo de unidades de control cableadas y microprogramadas Evaluar alternativas de diseo, as como el rendimiento de un computador 10. Curso 2005/2006 Fundamentos de Computadores 5 Proyecto Docente - Temario 1. Arquitectura de un computador y jerarqua de niveles (3 horas) 2. Arquitectura del nivel lenguaje mquina (10 horas) 1. Caractersticas generales del lenguaje mquina 2. Tipos de operandos e instrucciones 3. Modos de direccionamiento y formato de las instrucciones 4. Subrutinas 3. Diseo del procesador (15 horas) 1. Diseo y control cableado de un camino de datos monociclo 2. Diseo y control cableado de un camino de datos multiciclo 3. Diseo y control microprogramado de un camino de datos multiciclo 4. Rendimiento (2 horas) 11. Curso 2005/2006 Fundamentos de Computadores 6 Proyecto Docente - Prcticas 1.El simulador PCspim (2 horas) 2.Los datos en memoria (2 horas) 3.Carga y almacenamiento de los datos (2 horas) 4.Las operaciones aritmticas y lgicas (2 horas) 5.Interfaz con el programa (2 horas) 6.Estructuras de control condicionales y bucles (2 horas) 7.Gestin de subrutinas (3 horas) 12. Curso 2005/2006 Fundamentos de Computadores 7 Proyecto Docente - Evaluacin Nota final = 0.7 Nota de teora + 0.3 Nota de prctica (siempre que nota de teora >=5 y Nota de prctica>=5) La nota de teora y de prctica se obtendr en los exmenes de convocatoria de la asignatura, uno para teora y otro para prctica 13. Arquitectura de un computador y jerarqua de niveles La arquitectura de un computador es la estructura de un computador que un programador en lenguaje mquina debe conocer para escribir un programa correcto (independiente del tiempo) Amdahl 1964 14. Curso 2005/2006 Fundamentos de Computadores 9 Objetivos Establecer caractersticas para nominar una mquina como computador Conocer los hitos de la arquitectura de los computadores Distinguir los diferentes niveles de estudio de los computadores Entender los mecanismos de traduccin e interpretacin de niveles Diferenciar entre la arquitectura y la estructura de un computador Describir los componentes bsicos de un computador y las funcionalidades de cada uno de ellos por separados Explicar el funcionamiento global de un computador a partir de las relaciones de sus componentes bsicos 15. Curso 2005/2006 Fundamentos de Computadores 10 Contenidos Concepto de computador Historia de los computadores La 1 generacin (los primeros computadores) La 2 generacin (transistores) La 3 generacin (SCI), la 4 (LSI) y la 5 (VLSI, UVLSI) Organizacin estructurada de un computador Lenguajes, niveles y mquinas virtuales Computador multinivel Funcionamiento de un computador Componentes de un computador Ciclo de instruccin Interconexin con buses El futuro de los computadores Ley de Moore 16. Curso 2005/2006 Fundamentos de Computadores 11 Concepto de computador Diccionario de la Lengua Espaola Mquina electrnica dotada de una memoria de gran capacidad y de mtodos de tratamiento de la informacin, capaz de resolver problemas aritmticos y lgicos gracias a la utilizacin automtica de programas registrados en ella Microsoft Encarta Dispositivo electrnico capaz de recibir un conjunto de instrucciones y ejecutarlas realizando clculos sobre los datos numricos, o bien compilando y correlacionando otros tipos de informacin Enciclopedia Britnica Device for processing, storing, and displaying information Wikipedia Sistema digital con tecnologa microelectrnica capaz de procesar informacin a partir de un grupo de instrucciones denominado programa 17. Historia de los computadores "Quien olvida las lecciones de la historia queda condenado a repetirla." Will Durant, Lecciones de la Historia 18. Curso 2005/2006 Fundamentos de Computadores 13 ENIAC Qu, quines, ? Electronic Numerical Integrator And Computer Eckert y Mauchly Universidad de Pennsylvania Tablas de trayectorias balsticas Ao de inicio 1943 Ao de finalizacin 1946 Tarde para la Segunda Guerra Mundial (1939-1945) En funcionamiento hasta 1955 19. Curso 2005/2006 Fundamentos de Computadores 14 ENIAC - detalles Decimal (no binario) 20 registros acumuladores de 10 dgitos Programado manualmente mediante 6000 interruptores 18000 tubos de vaco y 1500 relevadores 30 toneladas 15000 pies cuadrados 140 Kw de consumo de potencia 5000 sumas por segundo 20. Curso 2005/2006 Fundamentos de Computadores 15 Von Neumann/Turing Concepto de programa almacenado Componentes de un computador La memoria principal (MM) almacena programas y datos La unidad aritmtica lgica (ALU) opera con datos binarios La unidad de control (UC) interpreta y provoca la ejecucin de las instrucciones en memoria Mquinas EDSAC la primera computadora de programa almacenado Maurice Wilkes, Universidad de Cambridge, (?-1949) La mquina IAS John von Neumann y Herman Goldstine, Instituto para Estudios Avanzados de Princeton, (1946- 1952) 21. Curso 2005/2006 Fundamentos de Computadores 16 Estructura de una mquina von Neumann Cinco partes bsicas: la memoria (M), almacena datos e instrucciones la unidad aritmtica lgica (ALU), capaz de hacer operaciones con datos binarios la unidad de control (UC), interpreta y provoca la ejecucin de las instrucciones en memoria el equipo de entrada y salida (I/O) 22. Curso 2005/2006 Fundamentos de Computadores 17 IAS - detalles Aritmtica binaria 1000 palabras de 40 bits 2 registros de instrucciones de 20 bits Registros dentro de la CPU R. temporal de memoria (MBR) R. de direcciones de memoria (MAR) R. de instrucciones (IR) R. temporal de instrucciones (IBR) R. contador de programa (PC) R. acumulador (AC) R. multiplicador cociente (MQ) 23. Curso 2005/2006 Fundamentos de Computadores 18 Computadores comerciales 1947 Eckert-Mauchly Computer Comportation UNIVAC I (Universal Automatic Computer) Aplicaciones cientficas y comerciales Oficina del censo en 1950 Operaciones algebraicas con matrices, problemas de matrices, primas para las compaas de seguro, problemas logsticos ... Absorcin por Sperry-Rand Comporation UNIVAC II a finales de los 50 Ms rpido Ms memoria Serie UNIVAC 1100 24. Curso 2005/2006 Fundamentos de Computadores 19 IBM Fabricante de equipos de procesamiento con tarjetas perforadas 1953 El 701 para aplicaciones cientficas 1955 El 702 para aplicaciones de gestin Lder mundial con las series 700/7000 25. Curso 2005/2006 Fundamentos de Computadores 20 La segunda generacin: los transistores (1955-1965) Invencin de Shockley y otros de los laboratorios Bell en 1947 Sustitucin de los tubos de vaco por transistores Ventajas del transistor Ms pequeo Ms barato Menor disipacin de calor Fabricado con silicio (arena) 26. Curso 2005/2006 Fundamentos de Computadores 21 Computadores con transistores NCR y RCA fueron los primeros en comercializar pequeas mquinas con transistores IBM 7000 1957 - Fundacin de Digital Equipment Corporation (DEC) pionera de los minicomputadores PDP 1 27. Curso 2005/2006 Fundamentos de Computadores 22 La 3, 4 y 5 generacin: los circuitos integrados (1965-????) Un computador consta de puertas, celdas de memoria e interconexiones Tales componentes podan ser fabricados a partir de un semiconductor como el silicio en un circuito integrado (Robert Noyce 1958) Generaciones 3, 4 y 5 de computadores 3 generacin Pequea y mediana integracin (SCI) 1965-1971 Hasta 100 componentes en un chip 1965 - IBM lder mundial inicia la familia 360 1965 - DEC lanza el minicomputador de bajo coste PDP-8 4 generacin Gran integracin (LSI ) 1972-1977 Entre 3000 y 100000 componentes en un chip 5 generacin Alta Integracin (VLSCI y UVLSI) 1978-???? Ms de 100000000 componentes en un chip 28. Organizacin estructurada de un computador Los computadores estn diseados como una serie de niveles, cada uno construido sobre sus predecesores. Cada nivel representa una abstraccin distinta, y contiene diferentes objetos y operaciones 29. Curso 2005/2006 Fundamentos de Computadores 24 Lenguajes, niveles y mquinas virtuales La mquina virtual Mi ejecuta slo programas escritos en el lenguaje de programacin Li Ejecucin de programas en Mi: Traduccin Un programa traductor sustituye cada instruccin escrita en Li por una secuencia equivalente de instrucciones en Li-1. El programa resultante consiste exclusivamente en instrucciones de Li-1. Luego, Mi-1 ejecuta el programa en Li-1 Interpretacin Un programa intrprete escrito en Li-1 examina las instrucciones una por una y ejecuta cada vez la sucesin de instrucciones en Li-1 que equivale a cada una 30. Curso 2005/2006 Fundamentos de Computadores 25 Computador multinivel N. aplicaciones Microsoft Office, eMule N. lenguaje alto nivel BASIC, C, C++, Java, Lisp, Prolog N. lenguaje ensamblador N. sistema operativo Archivo, particin, proceso, N. arquitectura del repertorio de instrucciones (ISA) Salto, pila, N. microarquitectura Banco de registros, ALU, camino de datos N. lgica digital Puertas lgicas: AND, OR , biestables, registros N. dispositivos Transistores, diodos, estado slido 31. Funcionamiento de un computador 32. Curso 2005/2006 Fundamentos de Computadores 27 Componentes de un computador Unidad central de proceso (CPU) Unidad de control (UC) Unidad aritmtica- lgica (ALU) Memoria (M) Entrada y salida (E/S) 33. Curso 2005/2006 Fundamentos de Computadores 28 Ciclo de instruccin (1/2) Ciclo de bsqueda de instruccin El registro contador de programa (PC) contiene la direccin de la siguiente instruccin a ejecutar El procesador busca la instruccin a partir de la localizacin de memoria sealada por el PC El procesador incrementa el contador de programa (hay excepciones) La instruccin es cargada en el registro de instrucciones (IR) 34. Curso 2005/2006 Fundamentos de Computadores 29 Ciclo de instruccin (2/2) Ciclo de ejecucin (5 tipos) Procesador-memoria: transferencia de datos desde la CPU a la memoria o al revs Procesador-E/S: transferencia de datos a o desde el exterior Procesamiento de datos: la CPU ha de realizar alguna operacin aritmtica o lgica con los datos Control: una instruccin puede especificar que la secuencia de ejecucin sea alterada Combinaciones de las anteriores 35. Curso 2005/2006 Fundamentos de Computadores 30 Ejemplo de ejecucin de programa 36. Curso 2005/2006 Fundamentos de Computadores 31 Diagrama de estados del ciclo de instruccin 37. Curso 2005/2006 Fundamentos de Computadores 32 Esquema de interconexin mediante buses Conjunto de conductores elctricos para la conexin de dos o ms dispositivos Tipos de buses De memoria, de datos y de control Anchura de los buses: 8, 16, 32, 64 bits Cmo son los buses? Pistas paralelas de los circuitos impresos Cintas de plstico con hilos conductores Conectores (ISA, PCI, ) Cables sueltos 38. Curso 2005/2006 Fundamentos de Computadores 33 Bus ISA (Industry Standard Architecture) 39. Curso 2005/2006 Fundamentos de Computadores 34 Bus de alta prestaciones 40. El futuro de los computadores La relacin coste/rendimiento ha mejorado los ltimos 45 aos aproximadamente 240 000 000 (un 54% anual) 41. Curso 2005/2006 Fundamentos de Computadores 36 Ley de Moore La densidad de integracin dobla cada 18 meses Vlida hasta 2020?) 42. Arquitectura del repertorio de instrucciones (ISA) La arquitectura de un computador es la estructura del computador que un programador en lenguaje mquina debe conocer para escribir un programa correcto (independiente del tiempo) Amdahl 1964 43. Curso 2005/2006 Fundamentos de Computadores 2 Objetivos Caracterizar una instruccin de acuerdo con el tipo de operacin, de datos, de modos de direccionamiento y de formato de codificacin Codificar una instruccin de lenguaje mquina a una instruccin de lenguaje ensamblador y viceversa Distinguir una pseudoinstruccin de una instruccin Explicar con comentarios la finalidad de un bloque bsico de cdigo ensamblador Determinar los valores intermedios y finales de los registros y los contenidos de la memoria tras la ejecucin de un bloque bsico de cdigo ensamblador Escribir la secuencia de instrucciones de lenguaje ensamblador correspondiente a una pseudoinstruccin Traducir las sentencias bsicas de asignacin, operacin, toma de decisiones, bucles y llamadas a procedimientos a lenguaje ensamblador Traducir un algoritmo escrito en un lenguaje de alto nivel a lenguaje ensamblador y viceversa Escribir procedimientos en lenguaje ensamblador consecuentes con los convenios de pasos de parmetros a procedimientos Corregir errores en un programa escrito en lenguaje ensamblador para que funcione correctamente Calcular el tiempo de ejecucin y los ciclos por instruccin (CPI) de un bloque bsico de cdigo ensamblador Disear un repertorio de instrucciones con restricciones de diseo 44. Curso 2005/2006 Fundamentos de Computadores 3 ndice Estructura de una mquina Von Neumman Mquinas RISC MIPS R3000 Nivel ISA Instrucciones aritmtico-lgicas Instrucciones de acceso a memoria Organizacin de la memoria Carga y almacenamiento Instrucciones de salto condicional Lenguaje mquina Instrucciones aritmtico-lgicas, de acceso a memoria, de carga y almacenamiento, de salto condicional e incondicional Datos inmediatos Gestin de procedimientos Llamadas y retornos de procedimientos Convenio de uso de registros Gestin de la pila Otras instrucciones Mquinas CSIC IA 32 Caractersticas del ISA Registros Instrucciones bsicas Formato de las instrucciones 45. Curso 2005/2006 Fundamentos de Computadores 4 Estructura de una mquina von Neumann Cinco partes bsicas la memoria (M) la unidad aritmtica lgica (ALU la unidad de control (UC) el equipo de entrada y salida (I/O) Ciclo de instruccin Ciclo de bsqueda Ciclo de ejecucin 46. Curso 2005/2006 Fundamentos de Computadores 5 1400 1300 1200 1100 1000 900 800 700 600 500 400 300 200 100 0 1998 2000 2001 20021999 Other SPARC Hitachi SH PowerPC Motorola 68K MIPS IA-32 ARM RISC - Reduced Instruction Set Computer RISC es una filosofa de diseo con las siguientes caractersticas: Tamao fijo de las instrucciones Nmero reducido de codificaciones de las instrucciones, modos de direccionamientos y operaciones Instrucciones de load/store para los accesos a memoria, registros Usados por NEC, Nintendo, Silicon Graphics, Cisco, Sony... 47. Curso 2005/2006 Fundamentos de Computadores 6 MIPS R3000 Nivel ISA Instrucciones de 32 bits 3 formatos 4 direccionamientos 5 tipos de instrucciones Aritmtico-lgicas Acceso a memoria Ruptura de secuencia Gestin de memoria Especiales 32 registros de 32 bits de propsito general (GPR) $0 - $31 PC HI LO Registros OP OP OP rs rt rd sa funct rs rt immediate jump target 3 Instruction Formats:all 32 bits wide R format I format J format OP OP OP rs rt rd sa funct rs rt immediate jump target 3 Instruction Formats:all 32 bits wide R format I format J format 48. Curso 2005/2006 Fundamentos de Computadores 7 MIPS Instrucciones aritmtico- lgicas Principio de diseo 1 La simplicidad favorece la uniformidad Todos los computadores deben ser capaces de realizar clculos aritmticos y lgicos add a, b, c # a b + c sub a, a, d # a a + d = (b + c) - d or a, a, e # a a + e = (b + c + d) OR e 49. Curso 2005/2006 Fundamentos de Computadores 8 Ejemplos bsicos de compilacin de sentencias Dos sentencias de asignacin de C en MIPS Cdigo fuente a = b + c; d = a e; Compilacin add a, b, c sub d, a, e Compilacin de una sentencia compleja de C en MIPS Cdigo fuente f = (g + h) (i + j); Compilacin add t0, g, h add t1, i, j sub f, t0, t1 50. Curso 2005/2006 Fundamentos de Computadores 9 MIPS - Registros Principio de diseo 2 Cuanto ms pequeo ms rpido Los operandos de las instrucciones computacionales son registros Los compiladores asocian variables con registros $s0, $s1,... para registros asociados a variables de C $t0, $t1,... para registros temporales Otros ms $0 - $31 PC HI LO Registers Processor I/O Control Datapath Memory Input Output Processor I/O Control Datapath Memory Input Output 51. Curso 2005/2006 Fundamentos de Computadores 10 Ejemplo de compilacin de una asignacin usando registros Cdigo fuente de C f = (g + h) (i+j); f, g, h, i y j en $s0, $s1, $s2, $s3 y $s4 Compilacin en MIPS add $t0, $s1, $s2 # el registro $t0 contiene # g+h add $t1, $s3, $s4 # el registro $t1 contiene # i +j sub $s0, $t0, $t1 # f contiene $t0 - $t1, que # es (g+h) (i+h) 52. Curso 2005/2006 Fundamentos de Computadores 11 Accesos a memoria - Organizacin de la memoria La memoria es un vector de bytes La direccin es un ndice dentro del vector de bytes 2 posibles ordenaciones para las palabras: Big Endian (IA-32) Little Endian (MIPS) Alineacin de datos address mdulo size = 0 Objeto Bien alineado Mal alineado Byte 0,1,2,3,4,5,6,.. (nunca) Media palabra 0,2,4,6,8, ... 1,3,5,7, ... Palabra (4 bytes) 0,4,8,... 1,2,3,5,6,7,9,10,11,... Doble palabra 0,8, .. 1,2,3,4,5,6,7,9,10,11,12,13,14,15,.... . 0x11 0x22 0x33 0x44 . 55 . 0x11 0x22 0x33 0x44 . 55 Big EndianLittle Endian MSB LSB 0x44332211 Memoria 0x11 0x22 0x33 0x44 55 Big EndianLittle Endian MSB LSB 0x44332211 Memoria Big EndianLittle Endian MSB LSB 0x44332211 Memoria MSB LSB 0x11223344 53. Curso 2005/2006 Fundamentos de Computadores 12 Accesos a memoria Organizacin de la memoria del MIPS El tamao de las palabras es de 32 bits Big Endian 232 posiciones de memoria de bytes, 0, 1, 232-1 Accesos alineados 231 posiciones de memoria de medias palabras, 0, 2 232-2 230 posiciones de memoria de palabras, 0, 4, 232-4 228 posiciones de memoria de dobles palabras, 0, 8 232-8 54. Curso 2005/2006 Fundamentos de Computadores 13 MIPS Cargas y almacenamientos Instrucciones para accesos a memoria de palabras lw $t0, 4($s3) # $t0 M[$s3+4] sw $t0, 4($s3) # M[$s3+4] $t0 La suma del registro base ($s3) y el desplazamiento (4) forma la direccin de memoria del dato El desplazamiento tiene signo (complemento a dos) Los accesos estn limitados a una regin centrada en el registro base de 213 palabras 55. Curso 2005/2006 Fundamentos de Computadores 14 Ejemplo de compilacin con un dato en memoria Cdigo fuente de C g = h + A[8]; La base del vector asignada a $s3, las variables g y h asignadas a $s1 y $s2 Compilacin en MIPS lw $t0, 32($s3) # $t0 contiene A[8] add $s1, $s2, $t0# $s1 contiene g = h + A[8] 56. Curso 2005/2006 Fundamentos de Computadores 15 Ejemplo de compilacin de una asignacin con un ndice variable Cdigo fuente de C g = h + A[i]; la base del vector en $s3, g y h e i en $s1, $s2 y $s4 Compilacin en MIPS add $t1, $s4, $s4 # $t1 contiene 2 * i add $t1, $t1, $t1 # $t1 contiene 4 * i add $t1, $t1, $s3 # $t1 contiene $s3 + 4 * i lw $t0, 0($t1) # $t0 contiene A[i] add $s1, $s2, $t0 # $s1 contiene g = h + A[i] 57. Curso 2005/2006 Fundamentos de Computadores 16 MIPS Instrucciones de salto condicional Instrucciones de salto condicional (slo dos) bne $s0, $s1, L1 # branch to L1 if no equal beq $s0, $s1, L1 # branch to L1 if equal Pseudoinstrucciones de salto condicional slt (set si menor que), beq, bne y $zero permiten las condiciones restantes blt $s1, $s2, etiqueta # salta si menor que slt $at, $s1, $s2 bne $at, $zero, etiqueta El ensamblador expande las pseudoinstrucciones $at, registro utilizado por el programa ensamblador 58. Curso 2005/2006 Fundamentos de Computadores 17 Ejemplo de compilacin de una sentencia de salto condicional Cdigo fuente de C If (i==j) h = i + j; h, i y j en $s0, $s1 y $s2 Compilacin en MIPS bne $s1, $s2, etiqueta add $s0, $s1, $s2 etiqueta: 59. Curso 2005/2006 Fundamentos de Computadores 18 Lenguaje mquina Instrucciones aritmtico-lgicas El tamao de las instrucciones es de 32 bits Las instrucciones aritmtico-lgicas son codificadas con el formato tipo-R add $rd, $rs, $rt Significado de los campos op 6-bits cdigo de operacin rs, rt, rd 5-bits registro source, target, destination shamt 5-bits nmero de bits a desplazar (cuando aplicable) funct 6-bits cdigo de funcin (extensin del cdigo de operacin) op rs rt rd shamt funct Formato de instrucciones aritmticas 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Todas las instrucciones MIPS de 32 bits 000000 01010 11111 00011 00000 100000 0x015f1820 add $3,$10,$31 60. Curso 2005/2006 Fundamentos de Computadores 19 Lenguaje mquina Instrucciones de acceso a memoria Principio de diseo 3 Un buen diseo necesita buenas soluciones de compromiso Las instrucciones de load y store especifican dos registros y un desplazamiento Formato tipo I (16 bits para el dato inmediato) lw $rt, inmediato($rs), sw $rt, inmediato($rs lh, lhu, lb, lbu sh, sb (load half, half unsigned, byte, byte unsigned; store half, byte) op rs rt Direccin/inmediato Formato de instruciones de carga 6 bits 5 bits 5 bits 16 bits Todas las instrucciones MIPS de 32 bits 100011 00011 00101 0000000000100000 0x8c650020 lw $5,32($3) 61. Curso 2005/2006 Fundamentos de Computadores 20 Traduccin de lenguaje ensamblador a lenguaje mquina Cdigo fuente de C A[300] = h + A[300]; La base del vector asignada a $t1 y h a $s2 Compilacin en MIPS lw $t0, 1200($t1) add $t0, $s2, $t0 sw $t0, 1200($t1) Lenguaje mquina 1000 1101 0010 1000 0000 0100 1011 0000 0000 0010 0100 1000 0100 0000 0010 0000 1010 1101 0010 1000 0000 0100 1011 0000 62. Curso 2005/2006 Fundamentos de Computadores 21 Lenguaje mquina Instrucciones de salto condicional Formato tipo I (16 bits para el dato inmediato) El inmediato codifica el n de palabras desde la siguiente instruccin a la instruccin de salto (PC+4) hasta la instruccin destino Los saltos estn limitados a una regin centrada en el PC + 4 de 215 palabras PC Add 32 32 32 32 32 offset 16 32 00 sign-extend from the low order 16 bits of the branch instruction branch dst address ? Add 4 32 PC Add 32 32 32 32 32 offset 16 32 00 sign-extend from the low order 16 bits of the branch instruction branch dst address ?? Add 4 32 63. Curso 2005/2006 Fundamentos de Computadores 22 MIPS Instrucciones de ruptura de secuencia incondicional j etiqueta Formato tipo J 6 bits cdigo de operacin + 26 bits para el dato inmediato El inmediato de 26 bits codifica la direccin absoluta de la palabra con la instruccin destino de salto dentro de un segmento de 256MB op 26-bit addressop 26-bit address PC 4 32 26 32 00 from the low order 26 bits of the jump instruction PC 4 32 26 32 00 from the low order 26 bits of the jump instruction 64. Curso 2005/2006 Fundamentos de Computadores 23 Ejemplo de compilacin de una sentencia de salto if-then-else Cdigo fuente de C If (i==j) f = g + h; else f = g h; i, j, f, g y h en $s0 $s4 Compilacin en MIPS bne $s0, $s1, L1 add $s2, $s3, $s4 # f = g + h j L2 # salto incondicional L1: sub $s2, $s3, $s4 # f = g - h L2: 65. Curso 2005/2006 Fundamentos de Computadores 24 MIPS Datos inmediatos (1/2) Instrucciones aritmtico-lgicas con un operando constante slti $t0, $s2, 15 #$t0 = 1 si $s2>10 shift right arithmetic variable srav $1,$2,$3 $1=$2>>$3 72. Curso 2005/2006 Fundamentos de Computadores 31 MIPS - Instrucciones de transferencia de datos (1/2) Instruccin Ejemplo Significado Comentarios carga byte lb $1,10($2) $1=M[10+$2] Extiende el bit de signo carga byte sin ext. signo lbu $1,10($2) $1=M[10+$2] No extiende el bit de signo carga media palabra lh $1,10($2) $1=M[10+$2] Extiende el bit de signo carga media palabra sin extensin de signo lhu $1,10($2) $1=M[10+$2] No extiende el bit de signo carga palabra lw $1,10($2) $1=M[10+$2] carga inmediata de la parte ms significativa load upper inmediate lui $1,50 $1=50*216 Carga un dato de 16 bits en la parte ms significativa del registro. Carga registro del coprocesador z lwc1 $f0,10($2) $f0= M[10+$2] almacena byte sb $1,10($2) M[10+$2]=$1 almacena media palabra sh $1,10($2) M[10+$2]=$1 almacena palabra sw $1,10($2) M[10+$2]=$1 almacena registro en memoria registro del coprocesador z swc1 $f0,10($2) M[10+$2]=$f0 Pseudoinstrucciones Carga inmediata li $1,1000 $1=1000 Carga de un dato de 32 bits Carga direccin la $3,label $3=direccin de label Transfiere la direccin de memoria no el contenido. 73. Curso 2005/2006 Fundamentos de Computadores 32 MIPS Instrucciones de movimiento de datos (2/2) Instruccin Ejemplo Significado Comentarios mover desde Hi mfhi $1 $1= Hi mover desde Lo mflo $1 $1= Lo mover a Hi mthi $1 Hi=$1 mover a Lo mtlo $1 Lo=$1 mover desde coprocesador z mfcz $1,$f0 $1=$f0 $f0-$f30: Registros del coprocesador 1 mover al coprocesador z mtcz $1,$f0 $f0=$1 Pseudoinstrucciones transfiere o mueve move $1,$2 $1=$2 transfiere doble desde coproc. 1 mfc1.d $4,$f0 $4=$F0 $5=$F1 74. Curso 2005/2006 Fundamentos de Computadores 33 Instrucciones de comparacin Instruccin Ejemplo Significado Comentarios Inicializar menor que slt $1,$2,$3 if ($2=0) ir a PC+4 +100 salta sobre mayor o igual que cero y enlaza bgezal $1,1000 si($1>=0) $31=PC+4; ir a 1000 ..... bifurcar j 2000 ir a 2000 bifurcar registro jr $1 ir a $1 Bifurcar y enlazar jal 10000 $31=PC+4; ir a 10000 bifurcar y enlazar registro jalr $1 $31=PC+4; ir a $1 Pseudoinstrucciones salta sobre mayor o igual bge $1,$2,100 si($1>=$2) ir a PC+4 +100 salta sobre mayor que bgt $1,$2,100 si($1>$2) ir a PC+4 +100 salta sobre menor o igual ble $1,$2,100 si($1 Estado 5 IRWrite -> Estado 0 MemToReg -> Estado 4 PCSource1 -> Estado 9 PCSource0 -> Estado 8 ALUOp1 -> Estado 6 ALUOp0 -> Estado 8 ALUSrcB1 -> Estado 1 + Estado 2 ALUSrcB0 -> Estado 0 + Estado 1 ALUSrcA -> Estado 2 + Estado 6 + Estado 8 RegWrite -> Estado 4 + Estado 7 RegDst -> Estado 7 133. Curso 2005/2006 Fundamentos de Computadores 48 Control cableado - Implementacin de FSM con ROM Diseo unificado (Tamao 210 20 = 20Kb) 6 bits cdigo de operacin + 4 bits de los estados = 210 posiciones de memoria 16 salidas de control + 4 salidas de nuevo estado = 20 bits de anchura Diseo no unificado (Tamao 4.25Kb) ROM de seales de control (Tamao 24 16 = 256b) 4 bits de los estados = 24 posiciones de memoria 16 salidas de control = 4 bits de anchura ROM de nuevo estado (Tamao 210 4 = 4Kb) 6 bits cdigo de operacin + 4 bits de los estados = 210 posiciones de memoria 4 salidas de nuevo estado = 4 bits de anchura PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS1 NS0 Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 State register IRWrite MemRead MemWrite Instruction register opcode field Outputs Control logic Inputs Tamao: 20 Kbits vs 4.25 Kbits PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS1 NS0 Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 State register IRWrite MemRead MemWrite Instruction r PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst NS3 NS2 NS1 NS0 Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 State register IRWrite MemRead MemWrite Instruction register opcode field Outputs Control logic Inputs Tamao: 20 Kbits vs 4.25 Kbits 134. Curso 2005/2006 Fundamentos de Computadores 49 Control cableado - Implementacin de FSM con PLA Tamao de la PLA #inputs #minterms + #outputs #minterms = (10 17)+(20 17) = 510 celdas Op5 Op4 Op3 Op2 Op1 Op0 S3 S2 S1 S0 IorD IRWrite MemRead MemWrite PCWrite PCWriteCond MemtoReg PCSource1 ALUOp1 ALUSrcB0 ALUSrcA RegWrite RegDst NS3 NS2 NS1 NS0 ALUSrcB1 ALUOp0 PCSource0 135. Curso 2005/2006 Fundamentos de Computadores 50 Diseo de la unidad de control Control microprogramado El estado siguiente es frecuentemente el estado actual + 1 Las seales de control estn almacenadas en una memoria PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite AddrCtl Outputs Microcode memory IRWrite MemRead MemWrite RegDst Control unit Input Microprogram counter Address select logic Op[50] Adder 1 Datapath Instruction register opcode field BWrite Secuenciador externo PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite AddrCtl Outputs Microcode memory IRWrite MemRead MemWrite RegDst Control unit Input Microprogram counter Address select logic Op[50] Adder 1 Datapath Instruction register opcode field BWrite PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite AddrCtl Outputs Microcode memory IRWrite MemRead MemWrite RegDst Control unit Input Microprogram counter Address select PCWrite PCWriteCond IorD MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite AddrCtl Outputs Microcode memory IRWrite MemRead MemWrite RegDst Control unit Input Microprogram counter Address select logic Op[50] Adder 1 Datapath Instruction register opcode field BWrite Secuenciador externo Secuenciador externo 136. Curso 2005/2006 Fundamentos de Computadores 51 Control microprogramado Formato de la microinstruccin 7 campos: 6 campos de control + 1 campo de secuenciacin Control ALU SRC1 SRC2 Control Registro Memoria Control PCWrite Secuenciamiento Nombre del campo Funcin del campo Valores del campo Control ALU Especifica la operacin que va a realizar la ALU durante el ciclo. add subt Func code SRC1 Especifica la fuente para el primer operando de la ALU PC A SRC2 Especifica la fuente para el segundo operando de la ALU B 4 Extend ExtShft Control Registro Especifica el nmero de registro y fuente del dato que se escribe en el mismo Read Write ALU (rd