Repaso de Arquitectura y Organización Criterios de clasificación William Stallings, Organización y Arquitectura de Computadores Andrew S. Tanenbaum, Organización de Computadoras Linda Null y Julia Lobur, Computer Organization and Architecture John Hennessy – David Patterson Arquitectura de Computadores – Un enfoque cuantitativo (1a edición, capítulos 3, 4 y 5) (4th ed, ch 1 & ap. B) Arquitectura de Computadoras Introducción COMPUTADORA Dispositivo electrónico, digital y programable, utilizado para el procesamiento y/o manipulación de información. Representación digital de la información. Sistemas numéricos posicionales en base 2. Operaciones aritméticas implementadas con lógica. Otros tipos de información. El programa almacenado. Arquitectura de von Neumann. Tipos de instrucciones. Organización mínima. Datapath (REG y ALU) + UC. Buses. Programas y algoritmos. Re-programabilidad vs. sistemas dedicados. Hardware vs. software. El ciclo de instrucción. Interrupciones. La jerarquía de memoria. Localidad. Caches. Programación de alto nivel y sistemas operativos. 2 Arquitectura de Computadoras Arquitecturas de 8/16 bits 4004 (4-bit 640B) 1971 8008 (8-bit 16KB) 1972 8080 (8-bit 64KB) 1972 8086 (16-bit 16MB) 1978 8088 (8/16-bit) 1980 6800 (8-bit 64KB) 1973 68000 (16/32-bit 16MB) 1979 68008 (8/16-bit) 1982 IBM PC Apple II/Mac Personal Computer 3 Arquitectura de Computadoras Bibliografía básica Introducción Números Sistemas digitales Von Neumann y buses Repertorio de instrucciones Memoria Entrada/salida Sistemas operativos Arquitectura II Stallings 1­2 A 8 3 9­10 4­5 6 7 11­16 Tanenbaum 1 A­B 3 2­3 4­5 2 2 6 8 Null 1 2 3 4 5 6 7 8 9­10 4 Arquitectura de Computadoras Definición H-P Diseño de computadoras LÓGICA (Software?) ISA (INSTRUCTION SET ARCHITECTURE): Diseño a nivel del lenguaje de máquina, visible para el programador o compilador. Repertorio de instrucciones, registros, tipo y tamaño de operandos, modos de direccionamiento. IMPLEMENTACIÓN (Hardware?) ORGANIZACIÓN: Estructura del bus, diseño CPU, sistema de memoria, ciclo de instrucción. TECNOLOGÍA: Diseño lógico, integración, encapsulado, potencia. “La arquitectura de computadoras, como otras arquitecturas, es el arte de determinar las necesidades del usuario de una estructura y luego diseñarla para satisfacer dichas necesidades tan eficientemente como sea posible dentro de ciertas limitaciones económicas y tecnológicas.” Frederick P. Brooks, IBM, 1962. 5 Arquitectura de Computadoras Ejemplos Intel Dos procesadores con idéntica ISA pero diferente ORG: Celeron y Celeron D. Dos procesadores con idénticas ISA y ORG, pero diferente tecnología: Celeron 1GHz y Celeron 2.8GHz. Dos procesadores con diferentes ISA, ORG y Tecnología: Celeron e Itanium. ERROR COMÚN Suponer que dos procesadores con idéntica ISA se pueden comparar por su reloj OTROS EJEMPLOS Computadora óptica (cambiando Tec puedo mantener la ISA y ORG) Computadora analógica (cambia ORG) Computadora vectorial (cambia ISA y ORG) 6 Arquitectura de Computadoras Historia Después de 30 años de existencia de las computadoras y 10 de los microprocesadores [Null, Cap 1], se produce un renacimiento de la Arquitectura en la década del 80, principalmente por dos motivos: LENGUAJES DE ALTO NIVEL: Desaparece la programación en assembler, por lo tanto no es necesaria la compatibilidad de código objeto. SISTEMAS OPERATIVOS: Se reducen el costo y el riesgo de lanzar al mercado una nueva arquitectura. Nacimiento de las nuevas Arquitecturas RISC: − ILP (pipeline + superescalares) − CACHE Crecimiento sostenido durante 20 años (ley de Moore) 7 Número de transistores por integrado. Duplica cada dos años, crecimiento exponencial sostenido. 8 Capacidad de los discos rígidos para PC (en GB) Crecimiento exponencial sostenido. 9 Performance relativa a VAX-11 (1978) Crecimiento exponencial sostenido (1986­2002), luego desaceleración. El aumento del número de transistores no repercute directamente en la performance. Depende de los avances en ARQUITECTURA, tanto en hardware como en software. 10 Arquitectura de Computadoras Clasificación según la aplicación Por qué existen arquitecturas tan diferentes? Cuál es mejor? Equivalente con la industria automotriz. Diseño de alto rendimiento SERVERS ($5K) [cómputo masivo, gráficos] Availability, reliability, scalability, throughput. Diseño de bajo costo EMBEDDED SYSTEMS ($50) [consolas, switches] Minimización de memoria y potencia. Diseño costo/rendimiento DESKTOP ($500) [debe incluir sw!] Marketing vs. rendimiento, información incompleta o vaga, medidas inapropiadas, recurrir a la popularidad. 11 Arquitectura de Computadoras Clasificación a nivel lenguaje de máquina (ISA) 1. Clase: Número y almacenamiento de operandos. Además de memoria, dónde? Utilización de registros. 2. Direccionamiento de memoria. Byte ordering (endianness). Alineación. 3. Modos de direccionamiento. Cantidad. Puede cualquiera de los operandos estar en memoria? 4. Tipo y tamaño de los operandos. 5. Tipos y variedad de operaciones. 6. Control de flujo. ORTOGONALIDAD Todos los modos de direccionamiento y todos los tipos de datos disponibles para todas las instrucciones. Gran ventaja para los compiladores. 7. Codificación del repertorio de instrucciones. 8. Interrupciones y modos privilegiados (user, supervisor,protected). 12 Clasificación a nivel lenguaje de máquina Almacenamiento de operandos Add A,B,C TAXONOMÍA DE PATTERSON: PILA, ACC, R-M, R-R, M-M 13 Clasificación a nivel lenguaje de máquina Número de operandos 14 15 EJEMPLO: Velocidad vs. Densidad de código Analizaremos el impacto de dos problemas diferentes: M3 = M1 + M2 Bn = (An + An­1)/2 Suma de dos enteros Filtro en punto fijo Sobre tres arquitecturas diferentes: MM Arquitectura Memoria-Memoria RM Arquitectura Registro-Memoria RR Arquitectura Registro-Registro 16 M3 = M1 + M2 MM ADD M1,M2,M3 9c F­D­CO1­TR1­C02­TR2­E­CO3­TR3 = 9c RM LOAD R1,M1 ADD R1,M2 STORE R1,M3 (4c) (5c) (4c) LOAD: F­D­CO­TR = 4c 13c ADD: F­D­CO­TR­E = 5c RR LOAD R1,M1 LOAD R2,M2 ADD R1,R2,R3 STORE R3,M3 (4c) (4c) (3c) (4c) 15c LOAD: F­D­CO­TR = 4c ADD: F­D­E = 3c 17 M3 = M1 + M2 Bn = (An + An­1)/2 MM ADD M1,M2,M3 9c MM ADD An,An­1,Bn DIV Bn,#2,Bn 18c F­D­CO1­TR1­C02­TR2­E­CO3­TR3 = 9c RM LOAD R1,M1 ADD R1,M2 STORE R1,M3 (4c) (5c) (4c) 13c LOAD: F­D­CO­TR = 4c RM LOAD R1,An­1 ADD R1,An DIV R1,#2 STORE R1,Bn (4c) (5c) (5c) (4c) 18c ADD: F­D­CO­TR­E = 5c RR LOAD R1,M1 LOAD R2,M2 ADD R1,R2,R3 STORE R3,M3 (4c) (4c) (3c) (4c) LOAD: F­D­CO­TR = 4c ADD: F­D­E = 3c 15c RR LOAD R1,An ADD R1,R2,R3 DIV R3,#2,R3 STORE R3,Bn ADD R1,#0,R2 (4c) (3c) (3c) (4c) (3c) 17c 18 M3 = M1 + M2 Bn = (An + An­1)/2 MM 1 ADD M1,M2,M3 9c MM ADD An,An­1,Bn DIV Bn,#2,Bn 18c 1 F­D­CO1­TR1­C02­TR2­E­CO3­TR3 = 9c RM 3 LOAD R1,M1 ADD R1,M2 STORE R1,M3 (4c) (5c) (4c) 13c LOAD: F­D­CO­TR = 4c RM LOAD R1,An­1 ADD R1,An DIV R1,#2 STORE R1,Bn (4c) (5c) (5c) (4c) 18c 2 ADD: F­D­CO­TR­E = 5c RR 4 LOAD R1,M1 LOAD R2,M2 ADD R1,R2,R3 STORE R3,M3 (4c) (4c) (3c) (4c) LOAD: F­D­CO­TR = 4c ADD: F­D­E = 3c 15c RR LOAD R1,An ADD R1,R2,R3 DIV R3,#2,R3 STORE R3,Bn ADD R1,#0,R2 (4c) (3c) (3c) (4c) (3c) 17c 2.5 19 Clasificación a nivel lenguaje de máquina Modos de direccionamiento 20 Clasificación a nivel lenguaje de máquina Repertorio de instrucciones Todas las arquitecturas disponen de un repertorio compuesto al menos por las tres primeras categorías. 21 Clasificación a nivel lenguaje de máquina Tipo y tamaño de operandos Arquitecturas con operandos de 8, 16, 32 o 64 bits. Operandos enteros y/o punto flotante (simple y doble precisión). RISC vs CISC (largo fijo vs. variable) CODIFICACIÓN DEL SET DE INSTRUCCIONES Tamaño de los programas Implementación del procesador (ORG+TECH) 22 Arquitectura de Computadoras Clasificación según la organización Estructura interna de la CPU La unidad de control (microprogramada vs. cableada) El camino de los datos (Datapath = Registros + ALU) El ciclo de instrucción, segmentación Escalaridad Cache de datos e instrucciones CPI, latencia Productividad (throughput) 23 Clasificación según la organización CU & Datapath 24 Clasificación según la organización Registros Para llevar a cabo el ciclo de instrucción (CAPTACIONDECODIFICACION-EJECUCION-INTERRUPCION) la CPU necesita registros de almacenamiento temporario. Registros visibles a) Usos generales: pueden utilizarse en cualquier operación. b) Uso específico: para datos o direcciones (ej. puntero de segmento). Registros de control PC (puntero), IR (instrucción), MAR (dirección) y MBR (datos) Registros de estado PSW (program status word) 25 Clasificación según la organización El ciclo de instrucción CAPTACION DE LA INSTRUCCION F UC DECODIFICACION D ALU CALCULO DIR DEL OPERANDO CO MEMORIA CAPTACION DEL OPERANDO FO ALU EJECUCION DE LA INSTRUCCION E MEMORIA 26 Arquitectura de Computadoras TECNOLOGÍA Tecnologías que condiciona el diseño de la ISA: Circuitos integrados (densidad de transistores 55%/año) DRAM semiconductora (densidad celdas 40-60%/año) Discos magnéticos (capacidad 100%/año) Networking (ancho de banda 100%/año) La ISA debe sobrevivir a lo largo de ciclos de 5 años (2 de diseño + 3-2 de producción). 27 Tecnología INTEGRACIÓN Tecnología del proceso CMOS (½ celda DRAM, expected average half-pitch of a memory cell) 180 nm 130 nm 90 nm 65 nm 45 nm ... 16 nm 1999/2000 2000/2001 2002/2003 Actual 2008? 2018? PII PIV, Core (gate 35 nm) Gate metálico LIMITE? gate de 5 nm, tunneling Un elemento más pequeño implica mayor cantidad de transistores disponibles, conmutación más rápida, menor energía y menor temperatura. 28 Tecnología INTEGRACIÓN (cont) Límites al tamaño del intregrado: Potencia (max ~70W) Yield del waffer (cuántos fallan) Encapsulado (número de patas) Condiciona la cantidad disponible de transistores. Compromiso entre: CU (cantidad de instrucciones y modos de direccionamiento) Registros (cantidad y tamaño) ALU (funcionalidad, fp?) CACHE 29 Arquitectura de Computadoras RESÚMEN SW Arquitectura de computadoras HW DISEÑO DEL REPERTORIO DE INSTRUCCIONES (ISA) Implementación ORGANIZACION TECNOLOGIA 30 PRÁCTICA DE REPASO Arquitecturas conocidas 31 32 Consolas de juego Año Bits 4ta Generación 1990 16b 5ta Generación 1995 32b 6ta Generación 2000 64b 7ma Generación 2005 128b SEGA Sega Génesis Motorola 68000 Sega Saturn Sega Dreamcast Hitachi SupeH RISC Hitachi SuperH RISC NINTENDO Super Nintendo WDC W65C816 Nintendo 64 MIPS R4200 Nintendo Gamecube POWER Gekko Nintendo Wii POWER Broadway PlayStation MIPS 3000 PlayStation II Emotion Eng. (MIPS) PlayStation III POWER Cell Xbox Pentium III Xbox 360 POWER Xenon DVD Ethernet PIII/PIV/AMD K7 Bluray WiFi Core/ADM64 SONY MICROSOFT Soporte Conectividad Equiv Cartridge CD PII/PowerPC 33