Estructura de Computadores I
Profesores Patricia González Gómez (Coordinadora, Teoría) Despacho D 1.13 Extensión 1363 pglez@udc.es Margarita Amor López (Problemas, Prácticas) Despacho D 1.15 Extensión 1215 margamor@udc.es Diego Andrade Canosa (Prácticas) Despacho D 0.03 Extensión 1298 dcanosa@udc.es Emilio José Padrón González (Prácticas) Despacho S 0.2 Extensión 1205 emilioj@udc.es
Objetivos El objetivo de esta asignatura es el estudio de la arquitectura, organización, función y diseño del procesador de un computador.
Temario 1. Introducción a los computadores 2. El repertorio de instrucciones 3. Formatos de datos y aritmética de los computadores 4. El procesador: camino de datos y unidad de control 5. Introducción a los procesadores segmentados 6. Segmentación avanzada
Prácticas 1. Introducción al hardware del PC 2. Introducción al lenguaje ensamblador 3. Codificación de las instrucciones 4. Llamadas a subrutinas 5. Operaciones aritméticas 6. Saltos 7. Manipulación de cadenas de caracteres 8. Ejecución monociclo/multiciclo 9. Operaciones en punto flotante 10. Introducción al procesador segmentado 11. Técnicas de procesamiento de saltos 12. Planificación dinámica Simula3MS http://simula3ms.des.udc.es/
Horario Lunes Martes Miércoles Jueves Viernes 15:30 Teoría Teoría 16:30 Teoría Problemas 17:30 Prácticas 18:30 19:30 Prácticas Prácticas Prácticas
Planificación Lunes Martes Miércoles Jueves Viernes 1 2 Comienzan los laboratorios 5 6 Seminario PC (grupos 1 y 2) 18:30 - Aula 2.3. 12 FESTIVO 7 FESTIVO 8 Seminario PC (grupos 3 y 4) 18:30 - Aula 2.3. 13 14 15 Seminario Simula3MS 18:30 - Aula 2.3. 19 20 21 22 23 9 16 26 27 28 29 30
Bibliografía Patterson, D.A. y Hennessy, J.L. Estructura y diseño de computadores: interficie circuteria/programación. Reverté. 2000. Patterson, D.A. y Hennessy. J.L.. Computer organization and desing. Morgan Kaufmann Publishers. 3Edición. 2005. Hennesy, J.L. y Patterson, D.A. Computer Architecture, A Quantitative Approach. Morgan Kaufmann Publishers. 4Edición. 2007. Hennesy, J.L. y Patterson, D.A. Computer Architecture, A Quantitative Approach. Morgan Kaufmann Publishers. 3Edición. 2003.
Evaluación Parte de prácticas (20% nota final) Asistencia obligatoria al laboratorio Entrega de boletines a petición de los profesores de laboratorio Parte de teoría (80% nota final) Examen escrito
Tema 1. Introducción a los computadores
Índice Introducción Unidades funcionales básicas Organización estructural de un computador Evolución del software Evolución del hardware Perspectiva histórica Evaluación del rendimiento Medidas del rendimiento Programas de evaluación del rendimiento Ley de Amdahl
Unidades funcionales básicas UNIDAD CENTRAL DE PROCESO CONTROL MEMORIA A.L.U. ENTRADA / SALIDA
Unidades funcionales básicas La unidad central de proceso y su disipador Disquetera, unidad de disco duro. La memoria RAM de los computadores PC-compatibles. Conectores de los buses ISA, PCI y AGP
Unidades funcionales básicas Conectores buses Zocalo de la CPU Ranuras para Instalar DIMM (Dual Inline Memory Module) Placa base o placa madre
Procesador
Organización estructural de un computador
Evolución del software High-level language program (in C) swap(int v[], int k) {int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } C compiler HARDWARE SOFTWARE PARA EL SISTEMA Assembly language program (for MIPS) swap: muli $2, $5,4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 Assembler SOFTWARE PARA LAS APLICACIONES Binary machine language program (for MIPS) 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000
Evolución del hardware La evolución de los computadores se ha caracterizado por: Aumento 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 su velocidad AÑO TECNOLOGÍA RELACIÓN RENDIMIENTO/UNIDAD DE COSTE RENDIMIENTO 1951 Válvula de vacío 1 1965 Transistor 35 COSTE 1975 Circuito integrado 900 1995 VLSI 24000000
Evolución del hardware Ley de Moore
Evolución del hardware Evolución de las memorias:
Evolución de la familia x86 Pentium 4 1600 1400 1400 Velocidad (MHz) 1200 1000 800 600 400 200 0 4004 8080 80286 0,74 2 8 12 80386 33 80486 Pentium 100 200 200 233 333 400 400 1971 1974 1979 1982 1985 1989 1993 1995 1997 1998 1998 1999 1999 2000 Año Pentium III 550
Breve historia de los computadores Antecedentes: Ábaco (3000 A.C.) Regla de cálculo (1630): basado en logaritmos Telar Jaquard (1801) Primer programa almacenado (en tarjetas metálicas) ÁBACO REGLA DE CÁLCULO TELAR
Breve historia de los computadores Generación cero (-1945) Computadoras mecánicas (relés) Pascal: calculadora mecánica (1642) Babbage: máquina analítica (1834) RELE ERA MECÁNICA Almacenaba números Precisión de 6 dígitos Novedosa estructura: Memoria Unidad de computo Entrada/salida PASCALINA Calculadoras automáticas (finales de los años 30) MÁQUINA DE BABBAGE
Breve historia de los computadores Primera Generación (1945-1955) Los computadores usaban válvulas de vacío ENIAC, primer ordenador electrónico digital 30 toneladas, 140 Kw 6000 interruptores Sucesores: EDVAC (1945): programa almacenado en memoria IAS Machine (1946): máquina de von Neumann UNIVAC (1951): primer ordenador digital comercial ( 48 unidades!!) Eckert y Mauchly con el ENIAC VÁLVULAS DE VACÍO UNIVAC
Breve historia de los computadores Segunda Generación (1955-1965) Se inventa el transistor (1948): primer paso auténtico hacia la miniaturización TX0, primer computador transistorizado DEC lanza el PDP-1 (1961) Comienza la industria de los minicomputadores IBM saca la 7090 para cálculo científico y la 1401 para aplicaciones comerciales CDC 6600, primera máquina paralela (1964) 10 veces más rápida que la anterior Su diseñador: CRAY TX0 IBM 1401 PDP-1
Breve historia de los computadores Tercera Generación (1960-1980) Se inventa el circuito integrado de silicio Computadores más pequeños, más rápidos y más baratos IBM S/360 (1964) DEC distribuye el PDP-8 por las universidades Primer miniordenador comercial de éxito inmediato Intel 4004 (1971) 2300 transistores 4bits PRIMER CIRCUITO INTEGRADO IBM S/360 Intel 4004
Breve historia de los computadores Cuarta Generación (1980 - ) VLSI: Decenas y centenas de millones de transistores en un chip Nace el microprocesador Unidad de control + ALU IBM PC Componentes estándares Arquitectura abierta Documentado Sin patentes Sistema operativo independiente En 1983 Compaq saca el primer IBM clónico Caída de precios i386 PENTIUM 4
Breve historia de los computadores Actualmente: - Grandes sistemas de computadores - Múltiples procesadores (Supercomputadores) - Múltiples computadores (clusters, grids). - Sistemas empotrados
La crisis del hardware
Procesadores multicore
GPU (Graphic Processing Unit)
Evaluación del rendimiento
Medidas del rendimiento Tiempo de reloj: incluye accesos a disco, a memoria, operaciones E/S, etc. Tiempo de ejecución de CPU T CPU = NI " CPI " T = NI " CPI F CPI = "CPI i I i NI Se puede aumentar el rendimiento: Aumentando la frecuencia de reloj Disminuyendo el número de ciclos por instrucción Disminuyendo el número de instrucciones para ejecutar un programa
Evaluación del rendimiento Métricas populares del rendimiento MIPS (millones de instrucciones por segundo) MIPS= NI T CPU "10 6 Problemas: No se pueden comparar computadores con diferentes repertorios de instrucciones Varía entre programas en el mismo computador Puede variar inversamente al rendimiento
Evaluación del rendimiento Métricas populares del rendimiento MFLOPS (millones de operaciones en punto flotante por segundo) MFLOPS= FLOPs T CPU "10 6 Problema: Es dependiente del programa
Evaluación del rendimiento
Evaluación del rendimiento
Ley de Amdahl Evaluación del rendimiento La mejora obtenida en el rendimiento al utilizar algún modo de ejecución rápido está limitada por la fracción de tiempo que se puede utilizar ese modo más rápido A = T antes T despues T despues = T afectado A m + T no _ afectado A = 1 (1" F m ) + F m A m F m A m Fracción de tiempo afectado por la mejora Factor de mejora en la parte alterada