1 / 27

Bus PCI

Bus PCI. J. P. Oliver Instituto de Ingeniería Eléctrica Facultad de Ingeniería Universidad de la República. ISA EISA VESA Micro Channel PCI PCI PCI-X 64 bits 133MHz PCI Special Interest Group. PCI Local Bus Specification Rev 2.2, Dec. 1998.

daria
Download Presentation

Bus PCI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bus PCI J. P. Oliver Instituto de Ingeniería Eléctrica Facultad de Ingeniería Universidad de la República

  2. ISA EISA VESA Micro Channel PCI PCI PCI-X 64 bits 133MHz PCI Special Interest Group. PCI Local Bus Specification Rev 2.2, Dec. 1998. PCI to PCI Bridge Architecture Specification Rev 1.1, Dec. 1998. PCI System Design Guide PCI BIOS Specification www.pcisig.com Introducción 32 bits, 33MHz 64 bits, 66MHz

  3. Características principales • Síncrono • Arbitrado • Configurable en booteo • Master / Target • 3 espacios de direcciones • Transferencias BURST (ráfagas) • Direcciones y datos multiplexadas • 5V ó 3.5V • Configuración • Memoria • I/O

  4. CPU local bus Memory bus Host/PCI Cache/Bridge CPU Memory Video Audio PCI bus ISA bridge SCSI LAN PCI/PCI bridge ISA bus SCSI bus ISA board PCI bus

  5. Intel 430HX PCIset System Block Diagram http://www.intel.com/design/chipsets/designex/29746702.PDF

  6. Memory Space Organization

  7. Master / Target • Master (Iniciator) • pide el bus • inicia transferencias RD o WR • Target • acepta transf. si es direccionado RD o WR • puede terminar

  8. cben[3..0] Bus Command 0000 Interrupt acknowledge 0001 Special cycle 0010 I/O read 0011 I/O write 0100 Reserved 0101 Reserved 0110 Memory read 0111 Memory write cben[3..0] Bus Command 1000 Reserved 1001 Reserved 1010 Configuration read 1011 Configuration write 1100 Memory read multiple 1101 Dual address cycle (DAC) 1110 Memory read line 1111 Memory write andinvalidate PCI bus commands

  9. PCI configuration registers

  10. Configuration cycle

  11. Burst-Read cycle

  12. Burst-Write cycle

  13. Software • ¿Cómo acceder a un periférico PCI? • En general están mapeados en memoria • Hay funciones del BIOS para detectar los diferentes dispositivos y sus rangos de direcciones. • PCI usa direcciones físicas • Hay funciones para copiar • PCI - memoria • memoria - PCI

  14. Software • Sistemas operativos “en serio”: Linux, NT • solo se puede acceder con un device driver • En DOS puro no se llega a direcciones de memoria tan altas • DPMI (DOS Protected Mode Interface) • http://www.delorie.com/djgpp/

  15. Problemas • Lograr burst en ambos sentidos en plataformas PC • Velocidad del diseño • Target solo ó Master Target ? • DMA ? • Software: si usamos un SO de “verdad” es necesario implementar un DEVICE DRIVER

  16. Guías para un diseño eficiente • Las elecciones en el diseño de la interfaz PCI son de vital importancia para determinar la performance del sistema. • Las diferencias de performance en diferentes placas PCI son causadas por diferencias en la implementación de la interfaz PCI. • Hay reglas a seguir que determinan un sistema eficiente y de alta performance.

  17. Reglas Para Un Diseño PCI Eficiente Implementarcomandos PCI avanzados. • Usar Memory Read Line (MRL) para lecturas menores a 1 línea de cache y de más de 4 bytes (en lugar de realizar una Lectura Común). En porcesadores Pentium y Pentium pro una línea de cache es de 32 bytes (8 Dwords). • Usar Memory Read Multiple (MRM) para lecturas de un tamáño mayor a 1 línea de cache. • Usar Memory Write Invalidate (MWI) para escrituras a múltiples líneas de cache (deben estar alineadas). No terminar un comando Memory Write (MW) largo para empezar un comando MWI.

  18. Reglas Para Un Diseño PCI Eficiente Usar bursts largos. • Paralecturas, es necesario utiliar bursts de al menos 64 Dwords (32 bit words) para obtener buena performance en algunas plataformas. • Para escrituras, los bursts deben ser al menos tan largos como el cache line. Usar comandos de memoria, no comandos de I/O.

  19. Reglas Para Un Diseño PCI Eficiente Minimizar Latencia. • Responder a accessos lo más rápido posible y tratar de evitar insertar estados de WAITen de las transferencias de bloques. Seguir las reglas, NO experimentar. • Es posible obtener sistemas de buena performance sin seguir las reglas, pero este sistema puede no comportarse bien en sistemas futuros.

  20. PCI Core de Altera

  21. Placa ARC-PCI

  22. Placa ARC-PCI

  23. Placa ARC-PCI

  24. Algunas Conclusiones • PCI no es fácil (comparado con ISA) • Un core PCI requiere gran cantidad de celdas • Diseño cuidadoso para cumplir requisitos de tiempos (con los chips de la ARC-PCI) • Para lograr buena velocidad es necesario Master/Target con DMA

  25. ¿En Qué Estamos? • ARC-PCI • Desarrollar una interfaz PCI que pueda transferir burts sin wait en ambos sentidos • Desarrollar una biblioteca hardware transparente al programador • Desarrollar un driver Linux • Desarrollar un core PCI propio • Diseñar una nueva placa PCI con chips más rápidos y SDRAM

More Related