Aceleradores Gráficos Su impacto en el BUS PCI: Soluciones Actuales Autor : Ing. Juan Montenegro 1 Hoja de Ruta Que es PCI? Funcionamiento Aplicación: Procesadores Gráficos 3D Impacto en la tecnología PCI Soluciones Alternativas Autor : Ing. Juan Montenegro 2 Bus PCI (Periferical Component Interconnect) Se desarrolla debido a la baja velocidad del bus ISA, y las poco eficaces alternativas de alta velocidad. (la mayoría, caras y de poca escalabilidad) Intel en 1990 propone el borrador de la especificación 1.0: Se forma PCISIG (PCI Special Interest Group como consorcio de fabricantes). Versión 2.0 32 líneas de datos 33MHz Posee una electrónica sencilla. Permite interconexión con otros buses (como ISA) 66 MHz ->4.224 Gbps (528MB/s). Versión 2.1 64 bits de datos Autor : Ing. Juan Montenegro 3 Arquitectura PCI Autor : Ing. Juan Montenegro 4 PCI: estructura y señales: Se configura como bus de 32 ó 64 bits. 49 líneas de señal obligatorias. Sistema: reloj y reset 32 líneas multiplexadas (datos y direcciones) Líneas para interpretar y validar Control de interfaz: coordinan envío y recepción Arbitraje: pares de líneas dedicadas maestros-árbitro Señales de error (ej: paridad). Autor : Ing. Juan Montenegro 5 PCI: Señales obligatorias Autor : Ing. Juan Montenegro 6 PCI 64 bits Aparecen 51 señales opcionales. Interrupción: líneas dedicadas para cada dispositivo Soporte de caché para que se conecten al PCI 32 líneas multiplexadas (datos y direcciones) (adicionales) Líneas de interpretación y validación 2 líneas que permiten que 2 dispositivos PCI utilicen 64 bits. Terminales de test: estándar IEEE 1149.1 Autor : Ing. Juan Montenegro 7 PCI: Transferencia de Lectura Autor : Ing. Juan Montenegro 8 PCI: Transferencia de Lectura a) El master obtiene el control del bus, inicia la comunicación activando FRAME, que deberá permanecer activa hasta que este termine la comunicación. También coloca la dirección de inicio en el bus de direcciones en el flanco ascendente del primer ciclo de clock, y con C/BE (líneas de comandos / Byte Enable), establece la operación a realizar (lectura o escritura de memoria, o de entrada salida). Autor : Ing. Juan Montenegro 9 PCI: Transferencia de Lectura b) Al comienzo del clock 2, el dispositivo slave (del cual se leerán los datos) reconoce la dirección colocada en AD. Autor : Ing. Juan Montenegro 10 PCI: Transferencia de Lectura c) El master deja las líneas AD libres, cambia las líneas C/BE para indicar cuáles de los bytes de las líneas AD se utilizarán para transferir el dato direccionado. El master activa IRDY (Initiator ready) para indicar que está preparado para recibir datos. Autor : Ing. Juan Montenegro 11 PCI: Transferencia de Lectura d) El slave (dispositivo de lectura seleccionado) activa DEVSEL (Device Select) para indicar que ha reconocido las direcciones y va a responder. Coloca el dato solicitado en las líneas AD y activa TRDY (Target ready) para indicar que hay un dato válido en el bus. Autor : Ing. Juan Montenegro 12 PCI: Transferencia de Lectura e) El master lee el dato al comienzo del clock 4 y cambia las líneas de habilitación de byte según se necesite para la próxima lectura. Autor : Ing. Juan Montenegro 13 PCI: Transferencia de Lectura f) El slave necesita un tiempo adicional para preparar el segundo bloque de datos para la transmisión. Por consiguiente desactiva TRDY para señalar al master que no proporcionará un nuevo dato en el próximo ciclo. En consecuencia, el master no lee las líneas de datos al comienzo del clock 5 y no cambia la señal de habilitación de byte durante ese ciclo. El bloque de datos es 14 leído al comienzo del clock 6. Autor : Ing. Juan Montenegro Präsentat ion PCI: Transferencia de Lectura g) Durante el clock 6, el slave sitúa el tercer dato en el bus. Pero (en este ejemplo específico) el master está ocupado y por lo tanto desactiva IRDY. Esto hará que el esclavo mantenga el tercer dato en el bus durante un ciclo de reloj extra. Autor : Ing. Juan Montenegro 15 PCI: Transferencia de Lectura h) El master sabe que el tercer dato es el último y por eso desactiva FRAME. Además, activa IRDY para indicar que está listo para completar esa transferencia. Autor : Ing. Juan Montenegro 16 PCI: Transferencia de Lectura i) El master desactiva IRDY, con esto hace que el bus vuelva a estar libre, y el slave desactiva TRDY y DEVSEL. Autor : Ing. Juan Montenegro 17 PCI: Arbitraje Arbitraje centralizado Cada maestro tiene dos líneas dedicadas REQ (petición del bus) GNT (concesión del bus) Transmisión Dispositivo PCI (o CPU) solicita bus activando REQ Espera GNT Usa el bus mientras tenga GNT Autor : Ing. Juan Montenegro 18 PCI: Arbitraje Árbitro de PCI GNT REQ Dispositivo PCI GNT REQ Dispositivo PCI Autor : Ing. Juan Montenegro GNT REQ Dispositivo PCI 19 Procesamiento 3D Autor : Ing. Juan Montenegro 20 Procesamiento 3D Modelado de escenas Uso de algoritmos matemáticos Consiste en representar todos los objetos mediante conjuntos de triángulos, formados por “vértices” (vertex) Se comienza agregando triángulos hasta representar superficies muy complejas... Autor : Ing. Juan Montenegro 21 Procesamiento 3D Autor : Ing. Juan Montenegro 22 Procesamiento 3D Luego el procesamiento continua con: Transformación de coordenadas Rotaciones Multiplicación Autor : Ing. Juan Montenegro 23 Procesamiento 3D Calculo de la Iluminación... Autor : Ing. Juan Montenegro 24 Procesamiento 3D continúa con: Simulación de la “cámara” o punto del observador Rasterización (determinación de superposiciones de píxeles de diferentes polígonos en la imagen) Texturado (aplicar texturas mediante mapas de bits) Calculo de superficies ocultas. Y Autor : Ing. Juan Montenegro 25 Procesamiento 3D Originalmente llevado a cabo mediante un pipeline de Hardware que implementaba en forma secuencial todos estos procesos tomando como entrada un “stream” o “flujo continuo” de vertex Stream de Vertex Texturado Texturado Procesador Procesador De De Vertex Vertex Stream de Fragmentos Vertex Transformado Rasterizado Rasterizado Ensamblado Ensamblado De De Triangulos Triangulos Stream de Triangulos “visibles” Stream de Triangulos Iluminacion Iluminacion Proceso Proceso de de ViewPort ViewPort Pixel Stream Frame Frame Buffer Buffer Imagen Display Display Autor : Ing. Juan Montenegro 26 Procesamiento 3D Nuevo enfoque: Multiprocesamiento Se utiliza una “grilla” de Unidades de Procesamiento multipropósito (UPs) agrupados en “clusters” Cualquiera de ellos puede implementar cualquiera de las antes mencionadas “etapas” del “pipeline” gráfico Cada uno de ellos cuenta con memoria cache propia, unidades de punto flotante y de Captura de Textruras (Texture Fetch) Calculo de Vertex Cluster de UPs Cache L1 Geometria Y transformaciones Cluster de UPs Cluster de UPs Cache L1 Calculo de iluminacion Rasterizador Cache L1 Cluster de UPs Diferentes procesamientos concurrentes GPU Cache L1 Autor : Ing. Juan Montenegro 27 Impacto en las diferentes tecnologías Autor : Ing. Juan Montenegro 28 Procesamiento de Video 3D en PCI Buffer de trama Buffer Local de Texturas Monitor CPU Textura 2 Chip Gráfico Los mapas de textura se leen del disco duro, y se cargan en la memoria del sistema, pero antes pasan a través de la interfaz IDE al bus y al chipset de video. RAM del Sistema a Local Textura 1 Chipset PCI BUS PCI Drive de DISCO Memoria Del Sistema Textura 2 Cuando se necesita una textura para una escena, el procesador lo toma de la memoria del sistema. Lo procesa y cachea en disco los resultados. Finalmente se almacena en memoria Autor : Ing. Juan Montenegro para que lo tome el Chip Gráfico 29 Bus AGP (Accelerated Graphics Port) Bus de alto rendimiento para controlador gráfico. AGP reduce cuellos de botella ya que es un bus dedicado de alta velocidad. Necesidades de las aplicaciones gráficas: Acceso rápido a memoria local de video (refresh) Elementos de píxel (3D) Información del eje Z Planos superpuestos Malla poligonales Texturas 32 líneas multiplexadas: direcciones/datos Alta velocidad (reloj del bus de la CPU) Transmisión: 528 MB/s ó 1 GB/s Autor : Ing. Juan Montenegro 30 Procesamiento de Video 3D con AGP CPU Buffer de trama Memoria Del Sistema Textura 1 Monitor Chip Gráfico Chipset AGP Textura 2 BUS PCI Drive de DISCO Autor : Ing. Juan Montenegro 31 Cache L2 Memoria Local 2.0 GB/s Core AGP 800 MB/s Procesador Pentium III Acelerador Gráfico 528 MB/s Intel 740 132 MB/s I/O Intel 440BX 800 MB/s AGPset Texturas PCI I/O Memoria del Sistema BUS AGP sobre Procesador Pentium III Autor : Ing. Juan Montenegro 32 Plataforma PCI: Arquitectura y Performance A medida que aumentan los requerimientos de ancho de banda de bus por parte de los dispositivos, las plataformas PCI evolucionaron en una arquitectura compuesta por dos puentes: Norte: representado por el Hub de Memoria. (North Bridge) Sur: representado por el Hub de E/S. (South Bridge) Los recursos de alta performance se conectan al N.B. Los de baja performance al S.B. Dentro de los recursos de baja performance del Hub Controlador de E/S, algunos requieren conexión de alta performance (p.ej. un CD) y otros se pueden utilizar como un segmento compartido del bus PCI (p.ej. Ethernet y SCSI) Autor : Ing. Juan Montenegro 33 Arquitectura PCI-X PCI-X fue desarrollado para extender la performance de PCI. El Bridge HOST/PCI-X representa una consolidación de los controladores de Hub en una estructura de Bridge único. Inicialmente PCI-X simplemente incrementa la frecuencia de la línea de la señal CLK respecto de PCI con el objeto de incrementar el ancho de banda del segmento del bus. Eventualmente PCI-X DDR y QDR proveen una fuente de sincronismo para mejorar el ancho de banda del segmento. “D” y “Q” se refieren a dual y quad como múltiplos respectivamente de la señal de strobe, dentro de un mismo período de la señal CLK. El incremento en el ancho de banda del segmento del bus reduce ampliamente el número de slots de conexión de placas por cada segmento de bus. El aumento en la performance de los PCI-X DDR y QDR resulta en interconexiones punto a punto. Autor : Ing. Juan Montenegro 34 Arquitectura PCI-X Autor : Ing. Juan Montenegro 35 Fin de la Clase !Muchas Gracias! Autor : Ing. Juan Montenegro 36