Vous êtes sur la page 1sur 41

LOS BUSES DEL PC EL BUS PCI

Sistemas de Multiprocesamiento

Bus PCI

Realizado por: Beln Martn Muoz Melisa Nez Platero 5 Automtica y Electrnica

Sistemas de Multiprocesamiento

Bus PCI

INDICE
1. INTRODUCCIN AL PC Y A SUS BUSES 1.1 Recursos de un PC
1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 Memoria Puertos Entrada / Salida Interrupciones Canales de DMA Escenario

1.2 Algo sobre buses


1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 El bus tipo ISA El bus tipo EISA El bus tipo VESA LOCAL BUS (VLB) El bus tipo Micro Channel Architecture (MCA) El bus PCI El bus AGP

1.3 Algo sobre puertos


1.3.1 1.3.2 El puerto paralelo El puerto serie

2. CONCEPTOS Y CARACTERSTICAS DE LOS BUSES 2. 1 Estructura de un bus 2. 2 Jerarqua de buses 3. CARACTERSTICAS DEL BUS PCI

3. 1 Estructura del bus 3. 2 Ordenes del PCI

Sistemas de Multiprocesamiento

Bus PCI

4. DESCRIPCIN FUNCIONAL DEL BUS LOCAL PCI 4. 1 4. 2 4. 3 4. 4 4. 5 Seales del sistema Seales de control de transacciones Protocolo de transacciones Espacio de configuracin del interfaz Direccionamiento
4. 5. 1 Configuracin 4. 5. 2 Entrada/Salida y memoria

4. 6 Control de paridad

5. DISEO DE INTERFACES PARA BUS PCI 5. 1 Requerimientos para el diseo de interfaces PCI 5. 2 Soluciones comerciales
5. 2. 1 5. 2. 2 5. 2. 3 5. 2. 4 ASICs PCI Dispositivos programables FPGA Libreras de macroceldas para ASICs Modelados de alto nivel, LogiCores

5. 3 Otras alternativas

Sistemas de Multiprocesamiento

Bus PCI

1. INTRODUCCIN AL PC Y A SUS BUSES


En las lneas siguientes hemos decidido describir una gua ejemplo, del desglose de una cantidad de trminos relacionados con el ordenador personal (PC) y lo que el hardware ha ido proporcionando al mercado desde la aparicin del primer ordenador compatible hasta los modernos equipos que ahora nos ofrece el panorama informtico. Pretendemos dar una breve descripcin de trminos tales como buses y puertos. Para comenzar vamos a comentar las siglas ms estandarizadas dentro de la terminologa informtica.

Los PCs han ido variando su arquitectura con los aos a fin de conseguir ms potencia y velocidad. Este pequeo porttil incorpora ms tecnologa que la empleada en las primeras misiones espaciales.

1. 1 RECURSOS DE UN PC
Antes de comenzar el estudio de los buses del PC, y en concreto el bus PCI, vamos a dar unas definiciones bsicas, para la comprensin del entorno en el cual trabajan estos buses. Los principales recursos de un PC son: memoria, puertos de entrada/salida, interrupciones y canales de DMA.

Sistemas de Multiprocesamiento

Bus PCI

1.1.1 MEMORIA
Remontndonos al principio de los tiempos, a los microprocesadores 8088 y 8086, se les poda hacer funcionar en modo mnimo o mximo, segn estuviera cableada una de sus patillas. En cuanto, principalmente al uso de la memoria, los procesadores del 80286 en adelante funcionan en modo Real o Protegido. En modo Real el acceso a memoria fsica est limitado al primer megabyte, y a los primeros 64K-16 bytes del segundo megabyte. El procesador arranca en modo Real, y pasa a protegido ejecutando determinadas instrucciones. El MSDOS se dise para uso del primer megabyte, y distingue los primeros 640 K bytes (memoria convencional) del resto del primer megabyte. Con el transcurso de los aos se vio que esto era insuficiente. En ese resto tenemos el espacio de memoria de video (ram y rom), rom de diversos perifricos, rom bios, etc La memoria fsica por encima del primer megabyte se llama extendida. Hay que tener en cuenta que en el bus ISA de 16 bits slo hay acceso a los primeros 16 MB de memoria direccionable, ya que slo contiene los bits de direccin A0-A23. En resumen, se distingue: ? Primer megabyte, donde a su vez se distinguen: ? Memoria convencional: 640K iniciales. ? Resto de 384K ? Memoria extendida, cuyos primeros 64K-16 bytes conocidos como Memoria Alta (HMA) son accesibles en modo Real del 80286 en adelante.

1.1.2 PUERTOS DE ENTRADA / SALIDA


El rango de puertos puede ir de 0 a 0FFFFH; no obstante, en muchos PCs existe una limitacin al reconocimiento de puertos superiores al 3FFH. De estos totales, podemos distinguir varios rangos: ? ? ? ? 0-FFH: puertos estndar en la placa base, o reservados en el chipset. 100H-1FFH: algunos puertos estndar 200H-3FFH: la generalidad de puertos estndar en el bus ISA. 400H en adelante: funciones especiales, puertos en bus PCI, etc...

Algunos puertos tienen nombres simblicos asignadas en el sistema operativo, como: ? ? Comunicaciones: COM1 (3F8H-3FFH), COM2 (2F8H-2FFH), COM3 (3E8H-3EFH) y COM4(2E8H-2EH). Impresoras: LPT1 (3BCH-3BFH), LPT2 (378H-37FH) y LPT3 (278H27FH)

Sistemas de Multiprocesamiento

Bus PCI

No obstante, puede ser que LPT1, por ejemplo, para el sistema operativo sea el primer puerto encontrado buscando segn orden anterior. Es importante conocer la ubicacin de otros puertos: Puerto de juegos: 200H-207H Puertos IDE: IDE primario: 1F0H-1F7H y 3F6H-3F7H. Usa IRQ14 IDE secundario: 170H-177H y 376H-377H. Usa IRQ15 IDE terciario: 1E8H-1EFH y 3EEH-3EFH. Suele usar IRQ11. IDE cuaternario: 168H-16FH y 36EH-36FH. Suele usar IRQ10.

1. 1. 3 INTERRUPCIONES
Desgraciadamente IBM, hacia 1981, hizo un diseo deficiente y pobre del sistema de interrupciones hardware del PC, que no se mejor mucho cuando apareci el AT, y que por compatibilidad se ha mantenido. Las interrupciones de sistema (fijas) son: ? IRQ0: reloj del sistema ? IRQ1: teclado ? IRQ2: cascada para IRQ8-15 ? IRQ6: disquetera ? IRQ8: reloj cmos ? IRQ13: coprocesador Las interrupciones casi fijas (pueden reasignarse) son: ? IRQ3: COM2 ? IRQ4: COM1 ? IRQ12: ratn PS/2 ? IRQ14: IDE primario ? IRQ15: IDE secundario El resto suele tener una asignacin tradicional: ? IRQ7: impresora si el software de impresin utiliza interrupciones, lo que suele ser configurable ? IRQ9: tarjeta grfica, si sta utiliza interrupciones ? IRQ10: tarjeta de sonido o de red ? IRQ11: tarjeta SCSI Supongamos un PC con tarjeta grfica que utiliza interrupciones, tarjeta de sonido, tarjeta de red, tarjeta SCSI, mdem interno, dos discos duros IDE, CDROM IDE, ratn PS/2, y queremos utilizar COM1 y COM2 simultneamente con el mdem interno.

Sistemas de Multiprocesamiento

Bus PCI

La asignacin debe ser: ? ? ? ? ? ? ? ? ? ? IRQ3: COM2 IRQ4: COM1 IRQ5: mdem interno, configurado en COM3. IRQ7: tarjeta de sonido. El software de impresin no debe utilizar interrupciones (o bien cuando imprimamos no pondremos en marcha la tarjeta de sonido, y a la inversa). IRQ9: tarjeta grfica IRQ10: tarjeta de red IRQ11: tarjeta SCSI IRQ12: ratn PS/2 IRQ14: IDE primario, donde se instalarn ambos discos duros IRQ15: IDE secundario, donde se instalar el CDROM

En el bus ISA las interrupciones podran compartirse si no se utilizan simultneamente, aunque para asegurar esto debera disponerse del esquema elctrico de las fuentes de interrupcin. En el bus PCI las interrupciones pueden compartirse, pero los sistemas operativos no soportan esta comparticin. Sobre 1999 las placas base ya no deberan incluir bus ISA.

1. 1. 4 CANALES DE DMA
Son: ? ? ? ? ? ? ? ? DMA0: libre (en primeros PCs se utilizaba para refresco de la memoria dinmica) DMA1: libre DMA2: disquetera DMA3: libre DMA4: cascada para DMA5-7 DMA5: libre, transferencias de 16 bits con DMA4 DMA6: libre, transferencias de 16 bits con DMA4 DMA7: libre, transferencias de 16 bits con DMA4

A veces nos podemos encontrar que tarjetas de sonido se estn utilizando en puertos de impresora ECP o en dispositivos especiales.

Sistemas de Multiprocesamiento

Bus PCI

1. 1. 5 ESCENARIO
Normalmente, las dificultades en el uso de los recursos aqu mencionados provienen del pobre diseo de las interrupciones en el primer PC. De la misma forma, los perifricos para el bus ISA se disearon de modo que no se podan compartir las interrupciones, por lo que los sistemas operativos tampoco previeron que se compartieran. El bus PCI s permite compartir interrupciones, por lo que sistemas operativos nuevos como Linux, NT y Windows 98 ya prevn la comparticin. No obstante, interrupciones en: ? ? ? ? en un PC moderno, y como se ha explicado, podemos localizar Bus ISA: no compartibles, pero este bus tiende a desaparecer Internas en la placa base. Bus PCI: pueden compartirse Bus AGP: este es un bus nuevo, exclusivamente para placas grficas

Luego, puede ser posible, por ejemplo, una tarjeta SCSI PCI y una tarjeta de red PCI ambas en IRQ11, pero sobre si la comparticin de interrupciones puede mezclarse de entre las cuatro partes antes dichas (por ejemplo, una tarjeta de red ISA y una tarjeta SCSI PCI ambas sobre IRQ11), aunque elctricamente debera ser fcil, no parece que los fabricantes de placas base lo hayan realizado, y no parece haber documentacin al respecto.

1. 2 ALGO SOBRE BUSES


Al hablar sobre ordenadores hemos de remitirnos a su propia terminologa y una de las palabras comnmente aceptadas dentro del mundillo electrnico / informtico es el de BUS, donde nos referimos a lo que podramos denominar el camino interno por donde circulan los datos dentro de un PC. Esto incluye a la comunicacin que se da entre el procesador, la memoria, las tarjetas del sistema, los dispositivos de almacenamiento (discos, DCs, etc..), y los puertos de conexin al exterior del ordenador. Un BUS, en trminos estrictamente electrnicos, es un canal constituido por una serie de conductores donde los diferentes componentes conectan entre s e intercambian informacin. Si quisiramos buscar un ejemplo podramos citar el recorrido que el cable telefnico describe dentro de nuestra casa. En este caso el Bus sera este cable y los dispositivos interconectados seran los diferentes equipos telefnicos de que dispongamos en nuestro hogar.

Sistemas de Multiprocesamiento

Bus PCI

Al hablar de BUS nos referimos a lo que podramos denominar el camino interno por donde circulan los datos dentro de un PC.

Dependiendo del tipo de Bus conseguiremos mejores o peores prestaciones del ordenador que utilicemos. Dentro de un PC -o de cualquier otro tipo de ordenador- se utilizan tpicamente tres tipos de Buses: ? ? ? En la prctica existentes: ? ? ? ? ? ? Bus de DATOS Bus de CONTROL Bus de DIRECCIONES podemos encontrar los siguiente estndares dentro de los tipos de Buses Bus ISA Bus EISA Bus VESA Local Bus MCA Bus PCI Bus AGP

10

Sistemas de Multiprocesamiento

Bus PCI

Existen en el Mercado toda una serie de adaptadores para compatibilizar conexiones del ordenador. Vemos aqu diferentes adaptadores

Todos los buses de los cuales hablaremos a continuacin se llaman buses de expansin, y se pueden definir como el conjunto de lneas encargadas de conectar el bus del sistema con otros buses de dispositivos externos a la placa principal, como una tarjeta controladora de discos, una controladora de videos, un controlador de CD-ROM, un faxmodem, una tarjeta multi I/O, etc... Buscando que la comunicacin de los datos entre los buses de dispositivos externos y el bus del sistema sea lo ms rpida posible, se han diseado varias arquitecturas o esquemas que combinan software (programas de manejo) y hardware (cantidad de lneas, conectores y circuitos electrnicos), entre las que se destacan el bus de expansin ISA, el EISA, el EDSI, el SCSI, el IDE, etc.... El bus de expansin usualmente dispone de 6 a 8 conectores de ranura o slots en los que se puede conectar, en cualquier orden, las tarjetas controladoras de dispositivos perifricos. Adems de tener acceso a las lneas principales del bus del sistema, los conectores del bus de expansin tambin tienen las lneas que conducen la potencia elctrica requerida por los dispositivos para funcionar. En apartados posteriores profundizaremos un poco ms en las caractersticas y en la estructura de los buses, as como en su jerarqua. En este momento daremos unas nociones bsicas de los diferentes tipos de buses de expansin que existen en el mercado.

11

Sistemas de Multiprocesamiento

Bus PCI

1. 2. 1 EL BUS TIPO ISA


El Bus tipo ISA (Industry Standard Architecture) es el tipo de BUS con el que naci el ordenador tipo PC tal y como hoy lo conocemos y, por tanto, el ms extendido y comn de los existentes. El bus ISA ha sido tambin uno de los mayores frenos al desarrollo hardware de los ordenadores desde su inicio ya que su naturaleza de 8 bits no fue actualizada a los 16 bits hasta el ao 1984. Su existencia actual se debe, principalmente, a la enorme compatibilidad existente en el mercado de las tarjetas de ordenador a nivel mundial. An as la norma ISA es ms que suficiente para muchos tipos de tarjetas (los MODEM de tipo genrico son un claro ejemplo de ello).

El Bus tipo ISA (Industry Standard Architecture) es el tipo de BUS con el que naci el ordenador tipo PC tal y como hoy lo conocemos.

Si echamos la vista atrs podemos ver que el Bus ISA naci a la sombra de los primeros chips 8088, los cuales utilizaban un bus de datos de tan slo 8 bits. En el ao 1984 la firma Intel introdujo en el mercado los procesadores de tipo 80286, lo que forz a ampliar la norma ISA a 16 bits. Para ello, simplemente se coloc a continuacin de algunas de las ranuras de expansin de 8 bits, otra ranura suplemento ms corta, la cual se encarga de manejar los 8 bits adicionales del bus de datos, adems de otras cosas. El bus ISA no ha sugerido ulteriores variaciones y existe en las placas base actuales. Puesto que el bus de datos puede manejar paralelamente datos hasta de 16 bits, muchos se refieren al bus de expansin como bus de 16 bits.

12

Sistemas de Multiprocesamiento

Bus PCI

1. 2. 2 EL BUS TIPO EISA


El Bus tipo EISA (Extended Industry Standard Architecture) hace mencin en su denominacin a la extensin de su uso, lo cual no es fiel reflejo de la realidad ya que el Bus EISA nunca ha sido utilizado de forma masiva en el mundo informtico. Su nacimiento no fue ms que una respuesta de nueve fabricantes de equipos compatibles con IBM, encabezados por la firma Compaq al lanzamiento al mercado, por parte de IBM, del estndar denominado MCA y que posteriormente comentaremos. Debido a la forma en que apareci en el mercado, y deseando evitar los garrafales errores cometidos por IBM, la firma Compaq tom dos medidas que diferenciaron su lanzamiento del efectuado por IBM: compatibilizar el nuevo Bus con el existente (ISA) y facilitar a todos los fabricantes el acceso al desarrollo de equipos enfocados al uso de este BUS. Luego es un bus ISA mejorado. Alguna de las caractersticas ms interesantes del bus EISA son: ? Compatibilidad con la norma ISA existente. ? Ancho de bus de 32 bits, que se traduce en una mejora de la velocidad de adquisicin o envo de datos ? Modo de trabajo Bus mastering. ? Modo de trabajo tipo Plug & Play. Para las tarjetas interfaz de perifricos tiene ms funciones y ms contactos que un conector de bus ISA (188 contra 98), pero se dise para tener plena compatibilidad previa con las tarjetas de ISA, como ya hemos dicho. Se mantienen todas las conexiones ISA en sus posiciones normales, pero se aade una nueva fila de contactos ms baja para unirse a las funciones avanzadas. Estos contactos se unieron a los circuitos de la tarjeta de expansin intercalando las lneas adicionales en los espacios dejados entre los contactos normales de una tarjeta ISA. Las ranuras o slots para tarjetas EISA pueden recibir tanto tarjetas de bus ISA como de bus EISA, pero la compatibilidad es de un solo sentido: las tarjetas diseadas para el bus EISA no trabajan en ranuras de bus ISA. A pesar de sus evidentes ventajas el bus EISA no cal en el mercado y su presencia en equipos de tipo domstico es bastante extrao. Tan solo en equipos de tipo servidor de cierta envergadura se puede encontrar este tipo de bus. Las razones del fracaso de la norma EISA hay que buscarlas en el alto precio de los equipos que la incorporan, la poca disponibilidad de tarjetas compatibles con la misma y, por ltimo, la menor prestacin que ofrece si se compara con el bus VESA LOCAL y el PCI existentes en la actualidad.

13

Sistemas de Multiprocesamiento

Bus PCI

Dentro del ordenador el puerto paralelo se comunica con los buses de datos, control y direcciones.

1. 2. 3 EL BUS TIPO VESA LOCAL BUS (VLB)


Una manera de acelerar la transferencia de grandes cantidades de informacin desde el microprocesador a la pantalla, entre perifricos, o entre perifricos y la memoria, es crear una conexin ms directa y rpida entre ellos para evitar el uso del bus de expansin comn a todos los circuitos del computador, el cual es muy lento. A este minibs se le llama bus local. Existen actualmente fabricantes que pueden escoger entre tres diseos de bus local: uno es el bus local para video VL-Bus diseado por VESA (que comentamos en este apartado), el segundo es un bus local para interconectar perifricos directamente a los buses de datos y dir ecciones del microprocesador, y el tercero es el bus local PCI (Peripheral Component Interconnect) desarrollado por Intel para aprovechar al mximo los recursos de su microprocesador Pentium, pero tambin se puede usar con procesadores 80486. El BUS tipo VESA Local Bus (VLB) fue introducido en el mercado en el ao 1992 por la VESA (Video Electronics Standards Association), la cual se dedicaba principalmente a la mejora de los perifricos de vdeo para PCs. Esto significa que el BUS VESA Local Bus (VLB) naciera como una mejora destinada a las tarjetas de video conectables a nuestro ordenador. El VLB tiene un ancho de 32 bits lo que lo relaciona directamente con la tecnologa de los microprocesadores de la familia 486. Al ser el BUS VESA Local Bus (VLB) una extensin de la tecnologa ISA podemos utilizar un bus tipo VLB para conectar tambin tarjetas tipo ISA. La tecnologa BUS VESA Local Bus (VLB) fue fulminada con la aparicin de los micros tipo Pentium en 1994, los cuales hacen un uso ms extendido de la tecnologa PCI. La aparicin del bus PCI promovida por Intel, aadida a los problemas especficos del BUS VESA Local Bus (VLB), forzaron la desaparicin de este ltimo.

14

Sistemas de Multiprocesamiento

Bus PCI

La adquisicin de datos a travs de los puertos del PC permite disponer de herramientas de trabajo muy potentes.

Los diseos del bus local VESA, permiten actualmente hasta tres ranuras de expansin, suficiente para alojar la tarjeta de video, la tarjeta controladora de disco y una tarjeta adaptadora de res. El nmero de ranuras se ha mantenido bajo debido a la limitacin impuesta por la capacitancia electrnica interna de los conectores y las altas frecuencias que deben manejar (hasta 66 MHz). Los problemas citados son: la fuerte dependencia del diseo VLB de la arquitectura 486 y su dificultad para ser readaptado a las familias Pentium, la poca viabilidad elctrica del sistema al ser capaz de soportar un nmero muy reducido de tarjetas VLB (incluso slo una en el peor de los casos) y, por ltimo, la no compatibilidad del VLB con las normas Bus mastering y Plug & Play. Incluso antes de la desaparicin masiva de los PCs tipo 486 del mercado la norma VLB haba sido y sustituida en algunas placas por la PCI.

1. 2. 4 EL BUS TIPO MICRO CHANNEL ARCHITECTURE (MCA)


El bus tipo Micro Channel Architecture (MCA) tambin conocido como bus MCAfue un intento de la firma IBM por reemplazar a la norma ISA con algo aparentemente mayor y ms rpido. Con la aparicin de los micros tipo 80386DX a mediados de los 80 y su ancho de bus asociado de 32 bits. La firma IBM decidi apostar por la creacin de un BUS que se adaptara a dicho de bus. El Bus MCA tiene un ancho de 32 bits e incorpora sustanciales

15

Sistemas de Multiprocesamiento

Bus PCI

mejoras sobre el existente bus ISA. Este nuevo tipo de bus puede ser considerado como un adelantado a su poca al ofrecer all por el ao 1997 prestaciones que luego no veramos implementadas hasta bastantes aos despus. Entre stas podemos destacar: o Anchura de bus de 32 bits: el bus MCA incorpora un ancho de 32 bits mejorando prestaciones del bus ISA (tal y como luego haran las normas VLB y PCI). o Bus Mastering: la norma MCA ofrece bus mastering lo que mejora su eficacia. o Plug & Play: el bus MCA configuraba automticamente tarjetas sin necesidad de puentes especficos (esto ocurra 8 aos antes de que Microsoft incorporara la norma PnP en el mercado).

Podemos ver aqu una tabla que resume la asignacin de los buses que componen el puerto paralelo del PC.

El bus MCA ofreca grandes perspectivas pero IBM cometi dos grandes errores en su definicin: primero que la norma MCA no era compatible con la existente ISA (luego las tarjetas MCA solo trabajaban en ranuras Micro Canal), y segundo que no cedi sus patentes a los fabricantes de tarjetas y perifricos para PC. Estas dos razones, unidas al alto coste de los equipos con MCA, dieron al traste con esta norma.

1. 2. 5 EL BUS PCI
El estndar para Interconexin de Componente Perifrico es lo ms nuevo en la tecnologa de bus local. Aunque por medio del bus local VL-Bus o las ranuras exclusivas de expansin de bus local se puede manejar el video con alta velocidad y se logran mejoras en el rendimiento del disco duro, es con el bus PCI que se eleva de manera impresionante el lmite del rendimiento en el manejo de datos, especialmente en los sistemas Pentium.

16

Sistemas de Multiprocesamiento

Bus PCI

El bus PCI (the Peripheral Component Interconnect) fue desarrollado por la firma Intel en el ao 1993. Estaba enfocado a la quinta y sexta generacin de micros, pero algunos miembros de la familia 486 incorporaron ya esta norma. Al igual que el VLB, el bus PCI puede manejar perifricos de 32 y 64 bits. Tiene el potencial para llevar a la pantalla video lleno de color con alta resolucin y movimiento completamente uniforme (sin saltos) en ventanas mltiples, lo que lo hace ideal para aplicaciones de multimedia. Puede manejar grficos de color verdadero (True Color) de 24 bits a razn de 30 cuadros por segundo. Las tarjetas controladoras de perifricos diseadas para el bus local PCI tienen especificaciones de autoconfiguracin grabadas en una memoria incluida en la misma tarjeta, para proveer la informacin de instalacin necesaria para el sistema durante la fase de arranque. Las rutinas de la BIOS configuran automticamente cada dispositivo de PCI basndose en los recursos que ya estn en uso por otras tarjetas. Al menos tericamente, el usuario no tiene que ajustar interruptores o puentes para elegir niveles de IRQ, de DMA o direcciones de memoria cada vez que agregue un perifrico al sistema. Su principal ventaja con respecto al VLB estriba en su no dependencia del micro, tal como ocurra entre el bus VLB y los micros tipo 486. Adems la norma PCI se utiliza tambin en sistemas no PCs, lo que ha universalizado an ms, si cabe, su uso, reduciendo a la vez sus costes. Adems de estas ventajas el bus PCI (norma 2.1) est preparado (no an en sistemas PC) para manejar un ancho de 64 bits.

En esta ilustracin podemos ver un sencillo circuito de control para gobernar un conjunto de opto-acopladores y, con ellos, mediante el uso de triacs, controlar cualquier dispositivo ajeno al PC pero controlado por ste.

Ms adelante, profundizaremos ms en las caractersticas, seales, direccionamiento, configuracin, etc... del bus PCI.

17

Sistemas de Multiprocesamiento

Bus PCI

1. 2. 6 EL BUS AGP
El bus AGP (Accelerated Graphics Port) es un tipo especficamente diseado de bus local para operaciones de video. Nace de la necesidad de incrementar el ancho de banda disponible entre el microprocesador del sistema y los subsistemas de vide. Fue diseado por la firma Intel a finales de 1997 para combatir la saturacin existente en los buses existentes a la hora de transferir informacin de video. Su utilizacin comenz en los microprocesadores de tipo PentiumII. Las necesidades de los nuevos grficos con aceleracin 3D y reproduccin de video a pantalla completa forzaron el desarrollo de una tecnologa dedicada. En realidad el bus AGP puede ser considerado como un puerto y no como un bus ya que est ideado para la comunicacin entre dos nicos dispositivos: el procesador principal y el procesador de video. Entre sus ventajas est la posibilidad de compartir los recursos de memoria del equipo segn necesidades del momento.

El BUS que incorpora una placa base incluye a la comunicacin que se da entre el procesador, la memoria, las tarjetas del sistema, los dispositivos de almacenamiento (discos, CDs etc.), y los puertos de conexin al exterior del ordenador.

1. 3 ALGO SOBRE PUERTOS


Las comunicaciones de un ordenador con el mundo que le rodea deben utilizar los conectores especficos que el mismo incorpora. Estos conectores existentes en toda computadora- obedecen a dos tipos principales: el puertos o conexin paralelo y el puerto serie. En las siguientes lneas vamos a comentar brevemente algo sobre los puertos de un ordenador tipo PC.

18

Sistemas de Multiprocesamiento

Bus PCI

Las tarjetas capturadoras de video disponen de diferentes entradas y salidas que proporcionan las seales de audio y de vdeo necesarias para los monitores destinados, principalmente, a la edicin de vdeo.

1. 3. 1 EL PUERTO PARALELO
El conocido como puerto paralelo de un ordenador es el destinado tpicamente a conectar la impresora del sistema. Fue ideado por un fabricante de impresoras (en concreto la firma Centronics), lo que hace que este puerto sea conocido como puerto paralelo o Centronics. Dentro del ordenador el puerto se comunica con los buses de datos, control y direcciones. La forma de este conector es una clavija de 25 patillas cuya foto podemos observar en la ilustracin. Dicho tipo de conector se denomina Sub-D de 25 patillas. La informacin como su nombre indica- se transmite en forma paralela e incorpora tanto lneas de entrada como de salida. En la ilustracin podemos ver un esquema de los tres buses que incorpora el puerto paralelo. Tambin podemos observar un sencillo circuito de control para gobernar un conjunto de opto-acopladores y, con ellos, mediante el uso de triacs, controlar cualquier dispositivo ajeno al PC pero controlado por ste. Mediante una sencilla rutina en un lenguaje de alto nivel (C, Pascal, itc.) podremos acceder a las direcciones que controlan los tres buses del puerto paralelo. En la ilustracin podemos ver una tabla que resume la asignacin de los citados buses.

19

Sistemas de Multiprocesamiento

Bus PCI

FOTO 10 La impresora de un ordenador es la conexin final tpica del puerto Centronics, sin olvidar que el puerto serie tambin puede ser utilizado por una impresora.

1. 3. 2 EL PUERTO SERIE
La otra fuente de comunicacin de los datos desde o hacia el PC es en formato serie o, lo que es igual, los bits se van transmitiendo de uno en uno. Un puerto estndar tipo serie de un PC puede reconocerse por los dos tipos externos de conector que puede incorporar: el tipo Sub-D de 9 patillas y el homnimo de 25. Su funcionamiento es idntico. Estos puertos han sido los tpicamente utilizados para conectarse al MODEM o el mouse del sistema. Los puertos serie tpicos estn preparados (dependiendo de el chip de control que el PC incorpore) para trabajar con velocidades comprendidas entre 19,2 y 115,2 Kbit/s.

20

Sistemas de Multiprocesamiento

Bus PCI

2. CONCEPTOS Y CARACTERSTICAS DE LOS BUSES


La operacin bsica de un bus se realiza en un tiempo llamado ciclo de bus. En toda transaccin intervienen dos participantes (agentes): el dispositivo que inicia la transaccin (maestro) y el que es direccionado (esclavo). En una transferencia elemental la informacin se transfiere desde el origen al destino. Los buses actuales permiten realizar varias transferencias en una sola operacin. Estas son algunas de las caractersticas de un bus: ? ? ? Banda base: la informacin se enva directamente sin ningn tipo de modulacin. Paralelismo: serie (bit a bit) o paralelo permitiendo el envo de toda una palabra. Multiplexacin: es frecuente que las lneas de un bus se encuentren multiplexadas para permitir reducir su nmero. De esta manera se envan por las mismas lneas informaciones distintas, por ejemplo direcciones y datos, en diferentes instantes de tiempo. Temporizacin: ciclo completo o partido, depende de si se ocupa completamente el tiempo del bus para realizar una transferencia. Se relaciona tambin con la presencia o ausencia de un nico reloj que determine del inicio y fin de los ciclos, sincronismo o asincrona. Modo de operacin: sncrono o asncrono en funcin de la forma en que se realice el dilogo entre los dispositivos conectados. Estrategia de control: en general, la CPU controla todas las transferencias entre un dispositivo maestro y el resto de los dispositivos. En los sistemas que disponen de varios procesadores hay varios maestros potenciales del bus por lo que se precisar de un mecanismo de arbitraje para que no se produzcan colisiones de datos. Longitud : depende de la aplicacin. Velocidad de transmisin: depende de la longitud y de la lgica de control. Velocidad es igual al producto de la longitud por el paralelismo. Se suele asociar este valor con el ancho de banda. Direccionamiento: define la forma por la que el maestro elige un destino para la transferencia. Puede ser geogrfica, si las direcciones estn asociadas a conectores fsicos o lgica, en caso de que la informacin sobre la direccin est almacenada en el dispositivo destino. En este caso de direccionamiento todos los dispositivos esclavos comparan su direccin con la enviada por el maestro; si coinciden se inicia el ciclo de transferencia de datos. Capacidad de cone xin: determinada por el nmero de dispositivos que pueden conectarse al bus. Est determinada por el direccionamiento y las caractersticas fsicas del soporte.

? ?

? ? ?

Es importante conocer estas caractersticas, ya que en el apartado siguiente sern enumeradas para el caso concreto del bus PCI.

21

Sistemas de Multiprocesamiento

Bus PCI

2. 1 ESTRUCTURA DE UN BUS
El bus de un sistema est constituido normalmente por entre 50 y 100 lneas. A cada lnea se le asigna un significado o una funcin particular. Aunque existen muchos diseos de buses todos ellos se pueden clasificar en tres grupos: ? Lneas de datos ? Lneas de direcciones ? Lneas de control Adems pueden existir lneas de alimentacin para suministrar energa a los mdulos conectados al bus. Las lneas de datos proporcionan un camino para transmitir datos entre los mdulos del sistema. El conjunto constituido por estas lneas se llama bus de datos. El bus de datos normalmente est compuestos por 8, 16 o 32 lneas diferentes, este nmero se conoce como anchura del bus de datos. Ya que cada lneas slo puede transportar un bit cada vez, el nmero de lneas determina cuntos bits se pueden transferir a la vez. A anchura del bus es un factor clave a la hora de determinar las prestaciones del conjunto del sistema. Las lneas de direccin se utilizan para designar la fuente o el destino del datos situado en el bus de datos. La cantidad de lneas de direcciones determinan la anchura del bus de direcciones y por tanto la mxima capacidad de memoria posible en el sistema. Adems, estas lneas tambin se utilizan para direccionar los puertos de E/S. Las lneas de control se utilizan para controlar el acceso y el uso de las lneas de datos y de direcciones. Como las lneas de datos y de direcciones son compartidas por todos los componentes, debe existir una forma de controlar su uso. Las seales de control transmiten rdenes e informacin de Temporizacin entre los mdulos del sistema. Las seales de Temporizacin indican validez de los datos y las direcciones. Las seales de rdenes especifican las operaciones a realizar. Algunas lneas de control son las siguientes: ? ? ? ? ? ? ? Escritura en memoria (Memory Write): hace que el datos del bus se escriba en la posicin direccionada. Lectura de memoria (Memory Read): hace que el dato de la posicin direccionada se site en el bus Escritura de E/S (I/O Write): hace que el dato del bus se transfiera a travs del puerto de E/S seleccionado. Lectura de E/S (E/S Read): hace que el dato del puerto de E/S direccionado se site en el bus. Transferencia reconocida (Transfer ACK): indica que el dato se ha aceptado o se ha situado en el bus. Peticin de bus (Bus Request): indica que un mdulo necesita disponer del control del bus. Cesin de bus (Bus Grant): indica que se cede el control del bus a un mdulo que lo haba solicitado 22

Sistemas de Multiprocesamiento ? ? ? ?

Bus PCI

Peticin de interrupcin (Interrupt Request): indica si hay una interrupcin pendiente. Interrupcin reconocida (Interrupt ACK): seala que la interrupcin pendiente se ha aceptado. Reloj (Clock): se utiliza para sincronizar las operaciones. Inicio (Reset): pone los mdulos conectado en su estado inicial.

Si un mdulo desea enviar un dato a otro debe hacer dos cosas, primero obtener el uso del bus, y despus transferir el dato a travs del bus. Cuando un mdulo desea pedir un dato a otro mdulo, primero debe obtener el uso del bus, y despus transferir la peticin al otro mdulo mediante las lneas de control y direccin apropiadas. Despus se debe esperar a que el segundo mdulo enve el dato. Fsicamente, el bus de sistema es un conjunto de conductores elctricos paralelos. Estos conductores son lneas de metal grabadas en una tarjeta (tarjeta de circuito impreso). El bus se extiende a travs de todos los componentes del sistema, y cada uno se conecta a las lneas correspondientes del bus. Una disposicin muy comn del bus de sistema consiste en una disposicin vertical de dos columnas de conductores. A lo largo de ellas, existen puntos de conexin en forma de ranuras dispuestas de forma horizontal para sostener las tajetas de circuito impreso. Cada uno de los componentes principales del sistema ocupa una o varias tarjetas y se conecta al bus a travs de esas ranuras. El sistema completo se introduce dentro de un chasis.

2. 2 JERARQUIA DE BUSES
Si se conecta un gran nmero de dispositivos al bus, las prestaciones pueden disminuir. Hay dos causas principales: 1.- En general, a ms dispositivos conectados al bus, mayor es el retardo de propagacin. Este retardo determina el tiempo que necesitan los dispositivos para coordinarse en el uso del bus. Si el control del bus pasa frecuentemente de un dispositivo a otro, los retardos de propagacin pueden afectar sensiblemente a las prestaciones. 2.- El bus puede convertirse en un cuello de botella a medida que las peticiones de transferencia acumuladas se aproximan a la capacidad del bus. Este problema se puede resolver en alguna medida incrementando la velocidad a la que el bus puede transferir los datos, y utilizando buses ms anchos. Sin embargo, puesto que la velocidad de transferencia que necesitan los dispositivos conectados al bus est incrementndose rpidamente, es un hecho que el bus nico est destinado a dejar de utilizarse. La mayora de los computadores utilizan varios buses, normalmente organizados jerrquicamente. La estructura ms utilizada es la siguiente:

23

Sistemas de Multiprocesamiento

Bus PCI

Existe un bus local que est conectado al procesador y a una memoria cach, y al que pueden conectarse tambin uno o ms dispositivos locales. El controlador de memoria cache conecta la cache no slo al bus local, sino tambin al bus de sistema donde se conectan todos los mdulos de memoria principal. Como sabemos, el uso de una memoria cache, alivia el hecho de tener que acceder el procesador de forma continua a la memoria principal. De hecho, la memoria principal puede pasar del bus local al bus de sistema. De esta forma, las transferencias de E/S con la memoria principal a travs del bus de sistema no interfieren la actividad del procesador. Es posible conectar controladores de E/S directamente al bus de sistema. Una solucin mejor consiste en utilizar uno o ms buses de expansin. La interfaz del bus de expansin regula las transferencias de datos entre el bus de sistema y los controladores conectados al bus de expansin. Esta disposicin permite conectar al sistema una amplia variedad de dispositivos de E/S y, al mismo tiempo, aislar el trfico de informacin entre la memoria y el procesador del trfico correspondiente a las E/S. A continuacin mostramos un esquema de la arquitectura utilizada en el bus tradicional, tambin llamada arquitectura de entreplanta:

Procesador

Bus local

Cache

Controlador Local de E/S Memoria Principal

Bus del sistema Re d Interfaz con el bus de expansin

SCSI

Modem

Serie

Bus de expansin

Esta arquitectura de buses tradicional es razonablemente eficiente, pero muestra su debilidad a medida que los dispositivos de E/S ofrecen prestaciones cada vez mayores. La respuesta a esta situacin, ha sido proponer un bus de alta velocidad, que est estrechamente integrado con el resto del sistema, y requiere slo un adaptador entre el bus del procesador y el bus de alta velocidad.

24

Sistemas de Multiprocesamiento

Bus PCI

En el esquema siguiente se muestra esta posible solucin. Como podemos ver, existe un bus local que conecta el procesador a un controlador de cache, que a su vez est conectado al bus de sistema que soporta a la memoria principal. El controlador de cache est integrado junto con el adaptador, o dispositivo de acoplo, que permite la conexin al bus de alta velocidad. Este bus permite la conexin de LAN de alta velocidad. Los dispositivos de velocidad menor pueden conectarse al bus de expansin, que utiliza una interfaz para adaptar el trfico entre el bus de expansin y el bus de alta velocidad. La ventaja de esta organizacin es que el bus de alta velocidad acerca al procesador los dispositivos que exigen prestaciones elevadas y, al mismo tiempo, es independiente del procesador. As, se pueden tolerar las diferencias de velocidad entre el procesador y el bus de

altas prestaciones y las variaciones en la definicin de las lneas de los buses. Los cambios en la arquitectura del procesador no afectan al bus de alta velocidad, y viceversa.

Memoria principal

Bus local Procesado r

Cache/ adaptador

Bus del sistema

SCSI

FireWire

Grficos

Vdeo

LAN

Bus de alta ve locidad

FAX

Interfaz con el bus de expansin

Modem

Serie

Bus de expansin 25

Sistemas de Multiprocesamiento

Bus PCI

3. CARACTERSTICAS DEL BUS PCI


Segn las caractersticas que hemos mencionado en el apartado 2 anterior, el bus PCI puede definirse como un bus paralelo, multiplexado y sncrono. Estos son algunos datos ms precisos sobre sus caractersticas: ? ? ? ? ? Frecuencia de operacin: 33 MHz y 66 MHz. Velocidad de transferencia: tpicamente 33 MHz * 32 bits = 132 MB/s. Se permite una extensin transparente de 64 bits de los buses de datos y direcciones de 32 bits, que a una frecuencia de 66 MHz daran lugar a 264 MB/s. Duradero: independencia del procesador. Idealmente se garantiza una transicin de los dispositivos a futuras generaciones de procesadores. Configuracin automtica: mediante un espacio de configuracin compuesto por una coleccin de registros propio de cada dispositivo (Plug & Play). Capacidad: soporte de varias tarjetas operando concurrentemente sobre el bus. Modo de operacin multi- master. Integridad de datos: el protocolo del bus PCI proporciona control de paridad y chequeo de errores durante las transferencias de datos y direcciones.

3. 1 ESTRUCTURA DEL BUS


Como ya hemos comentado en otro apartado, el bus PCI (Peripheral Component Interconnect, <interconexin de componente perifrico>) es un bus muy popular, de ancho de banda elevado, independiente del procesador, que se puede utilizar como bus de perifricos o bus para una arquitectura de entreplanta, como la que hemos comentado en un apartado anterior. Comparado con otras especificaciones comunes de bus, el PCI proporciona mejores prestaciones para los subsistemas de E/S de alta velocidad (por ejemplo, los adaptadores de pantalla grfica, los controladores de interfaz de red, los controladores de disco, etc.). El estndar actual permite el uso de hasta 64 lneas de datos a 66 MHz, para una velocidad de transferencia de 528 Mbytes/s o 4,224 Gbps. Pero no es precisamente su elevada velocidad la que hace atractivo al PCI. El PCI ha sido diseado especficamente para ajustarse econmicamente a los requisitos de E/S de los sistemas actuales; se implementa con muy pocos circuitos integrados, y permite que otros buses se conecten al bus PCI. Intel empez a trabajar en el PCI en 1990, pensando en sus sistemas basados en el Pentium. Muy pronto, Intel cedi sus patentes al dominio pblico y promovi la creacin de una asociacin industrial, la PCI SIG (Special Interest Group), para continuar el desarrollo y mantener la compatibilidad de las especificaciones del PCI. El resultado ha sido que el PCI ha sido ampliamente adoptado, y se est incrementando su uso en los computadores personales, estaciones de trabajo, y servidores de sistema.

26

Sistemas de Multiprocesamiento

Bus PCI

El bus PCI puede configurarse como un bus de 32 o 64 bits. En el apartado siguiente podemos ver las diferentes lneas de seal obligatorias que existen en el bus PCI (en total son 49). Las seales se dividen en los grupos funcionales siguientes: ? ? ? ? ? ? Terminales (patillas) de sistema: constituidas por los terminales de reloj y de inicio (reset). Terminales de direcciones y datos: incluye 32 lneas para datos y direcciones multiplexadas en el tiempo. Las otras lneas del grupo se utilizan para interpretar y validar las lneas de seal correspondientes a los datos y a las direcciones. Terminales de control de la interfaz: controlan la Temporizacin de las transferencias y proporcionan coordinacin entre los que las inician y los destinatarios. Terminales de arbitraje: a diferencia de las otras lneas de seal del PCI, stas no son lneas compartidas. Cada maestro del PCI tiene su par propio de lneas que lo conectan directamente al rbitro del bus PCI. Terminales para seales de error: utilizadas para indicar errores de paridad, u otros. Terminales de Interrupcin: para los dispositivos PCI que deben generar peticiones de servicio. Igual que los terminales de arbitraje, no son lneas compartidas sino que cada dispositivo PCI tiene su propia lnea o lneas de peticin de interrupcin a un controlador de interrupciones. Terminales de Soporte de Cache: necesarios para permitir memorias cache en el bus PCI asociadas a un procesador o a otro dispositivo. Estos terminales permiten el uso de protocolos de coherencia de cache de sondeo de bus. Terminales de Ampliacin a Bus de 64 bits: incluye 32 lneas multiplexadas en el tiempo para direcciones y datos y se combinan con las lneas obligatorias de direccin y datos para constituir un bus de direcciones y datos de 64 bits. Hay otras lneas de este grupo que se utilizan para interpretar y validar las lneas de datos y direcciones. Por ltimo, hay dos lneas que permiten que dos dispositivos PCI se pongan de acuerdo para usar los 64 bits. Terminales de Test (JTAG/Boundary Scan): estas seales se ajustan al estndar IEEE 1149.1 para la definicin de procedimientos de test.

? ?

27

Sistemas de Multiprocesamiento

Bus PCI

3. 2 ORDENES DEL PCI


La actividad del bus consiste en transferencias entre dos elementos, denominndose maestro al que inicia la transaccin. Cuando un maestro del bus adquiere el control del mismo, determina el tipo de transferencia que se producir a continuacin. Durante la fase de direccionamiento de transferencia, se utilizan las lneas C/BE para indicar el tipo de transferencia. Los tipo de rdenes son: ? ? ? ? ? ? ? ? ? ? ? ? Reconocimiento de interrupcin Ciclo especial Lectura de E/S Escritura de E/S Lectura de memoria Lectura de lnea de memoria Lectura mltiple de memoria Escritura en memoria Escritura e invalidacin de memoria Lectura de configuracin Escritura de configuracin Ciclo de direccin dual

El reconocimiento de interrupcin es una orden de lectura proporcionada por el dispositivo que acta como controlador de interrupciones en el bus PCI. Las lneas de direcciones no se utilizan en la fase de direccionamiento, y las lneas de byte activo indican el tamao del identificador de interrupcin a devolver. La orden de ciclo especial se utiliza para iniciar la difusin de un mensaje a uno o ms destinos. Las rdenes de lectura de E/S y escritura en E/S se utilizan para intercambiar datos entre el mdulo que inicia la transferencia y un controlador de E/S. Cada dispositivo de E/S tiene su propio espacio de direcciones, y las lneas de direcciones se utilizan para indicar un dispositivo concreto y para especificar los datos a transferir a, o desde, ese dispositivo. Las rdenes de lectura y escritura en memoria se utilizan para especificar la transferencia de una secuencia de datos, utilizando uno o ms ciclos de reloj. La interpretacin de estas rdenes depende de si el controlador se memoria del bus PCI utiliza el protocolo PCI para transferencias entre memoria y cache, o no. Si lo utiliza, la transferencia de datos a, y desde, la memoria normalmente se produce en trminos de lneas o bloques de cach. La orden de escritura en memoria se utiliza para transferir datos a memoria en uno o ms ciclos de datos. La orden de escritura e invalidacin de memoria transfiere datos a memoria en uno o ms ciclos. Adems, indica que se ha escrito en al menos una lnea de cache. Esta orden permite el funcionamiento de la cache con posterior escritura en memoria. Las dos rdenes de configuracin permiten que un dispositivo maestro lea y actualice los parmetros de configuracin de un dispositivo conectado al bus PCI. Cada dispositivo PCI puede disponer de hasta 256 registros internos, utilizados para configurar dichos dispositivo durante la inicializacin del sistema.

28

Sistemas de Multiprocesamiento

Bus PCI

La orden de ciclo de direccin dual se utiliza por el dispositivo que inicia la transferencia para indicar que est utilizando direcciones de 64 bits.

4. DESCRIPCIN FUNCIONAL DEL BUS LOCAL PCI


El bus PCI requiere un mnimo de 47 seales para operar como esclavo y 49 si opera como maestro para el tratamiento de datos, direcciones, control del interface y funciones del sistema. En a l siguiente figura podemos ver las seales del bus PCI agrupadas segn su funcionalidad:

A continuacin indicamos una descripcin de las seales obligatorias en un interfaz con funcionalidad de esclavo.

29

Sistemas de Multiprocesamiento

Bus PCI

4.1 SEALES DEL SISTEMA


A continuacin resumiremos en tablas las lneas de seal obligatorias del bus PCI:

Nombre Clk

Tipo In

Rsti

In

PciAD[3:0]

t/s

PciCBE[3:0]

t/s

Par

t/s

Descripcin Reloj del bus Sealde sincronizacin de todas las seales, excepto la de inicializacin de todos los registros Rsti. Activa con el flanco de subida. Mxima frecuencia 33 MHz y mnima de 0. Reset asncrono. Pone en un valor conocido a todos los registros y mquinas de estado del sistema: ? Seales de salida al PCI en triestado ? Registros en el valor asignado por defecto ? FSM al estado inactivo Activa a nivel bajo Datos y direcciones multiplexados. Las direcciones coinciden con la validacin de la seal Framei y los datos con la seal de escritura Irdyi y la de lectura Trdyi Lnea de comandos e indicacin de byte activo. En la fase de direccionamiento recogen el comando asociado al tipo de transferencia. En fase de datos su significado se relaciona con la validacin de los bytes de datos. Paridad. Bit de control de paridad impar. Puesto por el maestro en las transacciones de escritura y por el esclavo en las de lectura. Seal retrasada un ciclo de la lnea PciAD.

30

Sistemas de Multiprocesamiento

Bus PCI

4. 2 SEALES DE CONTROL DE TRANSACCIONES


Nombre Framei Tipo s/t/s Descripcin Transaccin activa Gobernada por el maestro del bus para indicar inicio y duracin de una transaccin Entrada lista Gobierna la transaccin sobre el esclavo junto con la seal Trdyi. Una fase de dato slo tiene lugar cuando ambas seales estn validadas. Su activacin durante una operacin de escritura indica que el bus PciAD tiene datos vlidos, en lectura que est preparado para recibir datos. Activa a nivel bajo Esclavo listo. Puesta por el esclavo para indicar que est listo. En lectura indica que el bus PciAD tiene datos vlidos, en escritura que est listo para recibir datos. Activa a nivel bajo. Solicitud de parada de transaccin. Puesta por el esclavo para solicitar al maestro el final de la transaccin en curso Activa a nivel bajo Dispositivo seleccionado Habilitacin de dispositivo durante las transferencias de configuracin exclusivamente Activa a nivel alto. Selector de dispositivo. Informa al maestro que el esclavo direccionado reconoce la direccin. Activa a nivel bajo. Lnea de interrupciones. Seal asncrona. Opcional, indica la existencia de una interrupcin que debe ser resuelta por el maestro. Activa a nivel bajo. Error de paridad. Seal activada por el agente que recibe los datos dos ciclos despus de que se detecte el error de paridad. Activa a nivel bajo. Error del sistema. Reporta errores del sistema provocado por error de paridad u otra causa que deteriore la comunicacin. Activa a nivel bajo. Indica al rbitro que el dispositivo correspondiente solicita utilizar el bus. Es una lnea punto a punto especfica para cada dispositivo. Indica al dispositivo que el rbitro le ha cedido el acceso al bus. Es una lnea punto a punto especfica para cada dispositivo. 31

Irdyi

s/t/s

Trdyi

s/t/s

Stopi

s/t/s

IdSel

In

DevSeli

s/t/s

Intai

output

Perri

s/t/s

Serri

output

REQ

t/s

GNT

t/s

Sistemas de Multiprocesamiento

Bus PCI

4. 3 PROTOCOLO DE TRANSACCIONES
La estrategia de control del bus PCI est basada en la asignacin de acceso a travs de un protocolo de simple peticin / concesin, de forma que cualquier maestro que quiera hacer uso del mismo debe negociarlo con el resto de los maestros. Para ello se debe emplear un esquema de arbitraje centralizado que la norma PCI no determina. Los maestros disponen de seales de peticin y concesin del bus. El tipo de transaccin realizada entre los dispositivos conectados al bus PCI se define mediante comandos que habilitan las lneas de datos para realizar operaciones de lectura, escritura, configuracin, etc... Una transferencia tpica se compone de una fase de direccionamiento seguida por una o ms fases de datos para permitir una transferencia a rfaga. Una transaccin de lectura o escritura tpicamente se inicia con el siguiente protocolo: Ciclo 1. Fase de direccionamiento. El maestro pone la direccin del dispositivo deseado y el comando relacionado con la transaccin a realizar. Todos los dispositivos conectados al bus registran la direccin, el comando puesto en el bus Cbei [3:0] y el estado de la seal Framei. Comienza la decodificacin de la direccin en cada dispositivo. Ciclo 2. El esclavo direccionado responde a la peticin activando la seal DevSeli Ciclo 3 y posteriores. Transferencias de datos gobernadas por las seales Framei, Irdyi y Trdyi, que segn se combinen indican: espera, transferencia de datos o fin de transaccin.

32

Sistemas de Multiprocesamiento

Bus PCI

Diagramas de tiempo de transacciones de configuracin

33

Sistemas de Multiprocesamiento

Bus PCI

Diagramas de tiempo en transacciones de acceso a memoria

34

Sistemas de Multiprocesamiento

Bus PCI

Ultimo ciclo. Fin de transaccin. Antes de liberar el bus para que otro dispositivo pueda utilizarlo deben ponerse las seales s/t/s a nivel alto y posteriormente en un valor triestado. La relacin temporal entre las distintas seales para casos sencillos de configuracin y acceso a memoria puede la hemos podido observar en las grficas anteriores. El mximo aprovechamiento de la velocidad de transferencia del bus se alcanza mediante una transaccin en m odo a rfagas (burst mode). En este caso, en primer lugar se enva la direccin base de la transaccin y en los siguientes ciclos el esclavo y el maestro las incrementan consecutivamente hasta que el maestro acaba la transaccin deshabilitando la seal apropiada. En algunos casos es imprescindible el empleo de memorias FIFO o RAM para albergar los datos que se transfieran dada la velocidad del bus (33 MHz).

4. 4 ESPACIO DE CONFIGURACIN DEL INTERFAZ


El estndar PCI exige que todos los dispositivos PCI deben implementar 256 Bytes de espacio de configuracin para albergar informacin relativa a la identificacin del dispositivo, habilitacin de funcionalidades, reconocimiento del espacio de direcciones y direccin base de los registros. Este espacio se compone de una regin predefinida de cabecera (64 Bytes) y otra regin dependiente del dispositivo (192 Bytes), parte de la cual es obligatoria. En la siguiente figura se muestra un esquema de la cabecera del espacio de configuracin con los registros

obligatorios y optativos del espacio de configuracin de un interfaz PCI:

35

Sistemas de Multiprocesamiento

Bus PCI

La funcionalidad de un dispositivo PCI est descrita por el registro de estado. Este registro est asociado a una serie de operaciones que puede realizar el interfaz (commands) y a valores de estado del registro (status). As, la capacidad de sealizar un error de paridad o la velocidad de respuesta del dispositivo por ejemplo, son programadas mediante escritura en dicho registro en tiempo de configuracin o implementadas por el propio dispositivo (hardwired). Un PC al arrancar realiza ciclos de configuracin en todos los dispositivos conectados al bus PCI. Parte de la informacin presente en el espacio de configuracin de cada dispositivo PCI permite a la BIOS del sistema habilitar el dispositivo PCI y asignarle un espacio de memoria en la tabla de memoria del sistema elaborada por el software de arranque. Los registros base (BARs), son los encargados de informar a la BIOS del nmero y tamao de los espacios de memoria o de entrada / salida necesarios y de identificar una zona de memoria del sistema mapeada sobre un determinado dispositivo PCI. Este proceso se realiza en dos fases: ? En primer lugar, el contenido de cada BAR es ledo para determinar si se relaciona con un espacio de me moria o de entrada / salida y qu tamao precisa. El bit 0 de cada BAR indica si es un 0 que se trata de memoria y si es un 1, un espacio de entrada/salida. El peso binario del primer bit no nulo indica su tamao segn se trate de memoria o entrada / salida. Posteriormente, el sistema decodifica esta informacin y escribe en cada BAR la direccin de memoria que le ha asignado el software de arranque.

Para poder comprender mejor este proceso, es decir, como se asignan los recursos del sistema a un dispositivo PCI en fase de inicializacin, tomaremos como ejemplo el paquete de desarrollo S5920DK1 de AMCC, que contiene un chip con funcionalidades PCI. El usuario dispone de hasta 4 mdulos de memoria configurables asociados a cada BAR sobre los que se realizarn las operaciones de lectura o escritura. En la siguiente tabla, mostramos un ejemplo del valor de los registros base en tiempo de configuracin y el posteriormente asignado por la BIOS para cada regin de memoria: Registro base Tamao y Tipo Valor asignado en tiempo de configuracin 10E8FFC1 FFFFFFF9 FFFFFF80 FFFFF000 000000000 Valor asignado por la BIOS 0000FC81 0000FFF1 FFFBFF80 FFFBE000 -

BAR0 BAR1 BAR2 BAR3 BAR4

64 bytes E/S 8 bytes E/S 128 bytes Memoria 4 Kb Memoria Inhabilitado

36

Sistemas de Multiprocesamiento

Bus PCI

La direccin preasignada al BAR0 en este caso es confusa porque no se corresponde exactamente con la norma PCI. Esto se debe a las caractersticas propias del chip AMCC que emplea el BAR0 para direccionar como espacio de E/S una coleccin de registros propios de operacin y estado. La decodificacin del BAR1 y BAR2 es la siguiente: ? ? ? BAR1 = FFFFFFF9 ? Espacio de E/S. Primer bit no nulo = 3, por lo que el tamao solicitado es de 23 = 8 bytes. BAR2 = FFFFFF80 ? Espacio de memoria. Primer bit no bulo = 7, por lo que el tamao solicitado es de 27 = 128 bytes. BAR4 = 00000000 ? Deshabilitado.

4. 5 DIRECCIONAMIENTO
PCI define tres espacios fsicos de direccionamiento: configuracin, entrada / salida y memoria. Los cuales describiremos a continuacin.

4. 5. 1 CONFIGURACIN
El nmero de dispositivos que pueden conectarse al bus PCI est limitado a 32. No obstante, la norma PCI admite la jerarquizacin de buses incrementndose el nmero de dispositivos que pueden conectarse. El software de configuracin debe ser capaz de realizar transacciones de configuracin en todos los dispositivos PCI que residan ms all del puente PCI/host (bridge). La identificacin del bus en una jerarqua se realiza mediante los dos bits de menor peso del bus PciAD, si PciAD[1:0] = 00 los dispositivos estn alojados en el mismo segmento del bus principal que el bridge (transaccin de configuracin tipo 0); en caso contrario, lo estn en un segmento diferente (tipo 1). Un agente detecta acceso a su espacio de configuracin si se activa l a seal IDSEL, detecta una transaccin de configuracin tipo 0 y adems recibe el comando de configuracin. En caso contrario la transaccin es ignorada.

37

Sistemas de Multiprocesamiento

Bus PCI

4. 5. 2 ENTRADA / SALIDA Y MEMORIA


Los acceso a las regiones de memoria o entrada / salida son en principio similares y pasan por una fase previa de comparacin entre la direccin puesta en el bus por el maestro y la direccin asignada a cada BAR del esclavo en tiempo de configuracin. Si el resultado de la comparacin es positivo (hit) el esclavo responder a operaciones de lectura y escritura a dichas regiones. Slo se decodifica la direccin de comienzo del espacio de direcciones (direccin base), no la direccin exacta a la que se realiza el acceso. Un dispositivo de tamao grande realiza l a decodificacin de forma rpida ya que precisa pocos bits para identificarla; si se dispone de ms de un BAR es conveniente disponer de varios comparadores en paralelo para responder tan pronto como sea posible a la transaccin.

4. 6 CONTROL DE PARIDAD
La norma PCI admite cierto control sobre los datos que se transfieren entre el maestro y el esclavo. El control se basa en la deteccin de paridad par en las lneas de datos (PciAd) y comandos (PciCbe). Para ello se emplea la seal bidireccional Par, las seales de indicacin de error Serri (System Error Enable) y Perri (Parity Error Report) y ciertos registros del espacio de configuracin que permiten sealizar la deteccin de fallos en la transmisin. Deben destacarse dos instantes significativos en el control de la paridad:

a) Fase de direccionamiento Los datos viajan desde el maestro al esclavo. El esclavo recibe los datos y el bit de paridad y comprueba que la paridad de los datos recibidos es la esperada, en caso contrario activa la seal Serri (System Error Enable).

b) Fase de datos Pueden darse dos casos escritura o lectura. En caso de escritura de configuracin o de memoria el proceso es anlogo al descrito en la fase de direccionamiento con la salvedad de que si se produce un error en la paridad se activa la seal Perri (Parity Error Report). En caso de lectura los datos viajan desde el esclavo al maestro poniendo el primero el bit de paridad calculado en la lnea Par.

En ambos casos, la seal Par se alimenta un ciclo despus de realizada la transmisin de los datos dando tiempo al maestro o al esclavo a calcular la paridad. Si se produce un error

en cualquiera de las dos situaciones las seales de indicacin de error Perri o Serri se activan un ciclo despus de la recepcin de la paridad esperada.

38

Sistemas de Multiprocesamiento

Bus PCI

4. DISEO DE INTERFACES PARA BUS PCI


La adopcin de un interfaz de bus PCI para una aplicacin dada puede abordarse desde distintas perspectivas atendiendo a requerimientos del sistema global (mxima integracin), y sobre todo a coste y tiempo de desarrollo. En la actualidad existen en el mercado diversas opciones para el diseo y puesta a punto de un interfaz PCI: puede elegirse un chip con funcionalidad PCI, un sistema de desarrollo completo o una librera de macroceldas sintetizable (esquemticos o modelos de alto nivel). Estas opciones presentan facetas diferentes que deben estudiarse para una eleccin acorde a las necesidades y presupuestos.

5. 1 REQUERIMIENTOS PARA EL DISEO DE INTERFACES PCI


La norma PCI exige el cumplimiento de una serie de requisitos para que un interfaz pueda considerarse 100% compatible PCI. Dichos requisitos estn relacionados con la frecuencia de operacin, as como el tiempo mximo de presentacin y respuesta (set- up y hold) y la mnima carga asociada a determinadas seales del bus. En resumen estas restricciones son las siguientes: ? ? Frecuencia de operacin del bus de 33 MHz sin ciclos de espera Tiempo de hold comprendido entre 2 y 11 ns despus de una transicin en el reloj (clock-to-output) ? Tiempo mximo de setup de 7 ns (clock-to-input) ? Tiempo mximo de hold-to-system-clock de 0 ns ? Corriente menor a 70 nA ~ 10 pF de carga

En la prctica, estos requerimientos se traducen en las siguientes recomendaciones de diseo: 1. Las seales de los buses deben presentar un tiempo de set- un inferior a los 7 ns. El bus de datos y direcciones PciAD, se emplean como entrada a varios mdulos: el decodificador de direcciones del espacio de configuracin, registro de direcciones y los registros de datos para las transferenc ias a memoria o al espacio de configuracin. Esto puede representar un alto fan-out para los datos por lo que el retardo de entrada puede superar los 7 ns. La solucin consiste en registrar los buses a cada transicin del reloj, de manera que se disponga de datos estables durante todo un ciclo de reloj. 2. Las seales de salida deben presentarse entre 2 y 11 ns despus de una transicin en el reloj. Para satisfaces este requisito, las seales de salida pueden registrarse. Registrar las seales de entrada y salida proporciona control sobre los tiempo en que estas seales estn disponibles pero introducen un ciclo de espera extra. En principio, estos ciclos de espera adicionales pueden ser asumidos por la especificacin PCI.

39

Sistemas de Multiprocesamiento

Bus PCI

5. 2 SOLUCIONES COMERCIALES

5. 2. 1 ASICs PCI
Son circuitos predifundidos con funcionalidades PCI. Admiten cierta programacin. El sistema de desarrollo S5920DK1 de AMCC convierte las seales del bus PCI en un bus de usuario de 8/16/32 bits con una velocidad independiente al reloj del interfaz PCI. El circuito integrado incluido en el sistema realiza las operaciones propias de un interfaz esclavo PCI y otras propias para controlar las transacciones entre el bus PCI y el bus de usuario conforme a las distintas configuraciones posibles para las regiones de memoria.

5. 2. 2 DISPOSITIVOS PROGRAMABLES FPGA


Diversas casas constructoras de dispositivos programables como Altera, Ciprs, QuickLogic o Xilinx disponen de circuitos que admiten las especificaciones de velocidad y rea necesaria para albergar un interfaz PCI. En general disponen de opciones para el rutado especial de seales crticas, multiplexado apropiado para determinadas seales y otras tcnicas de optimizacin del diseo para reducir el nmero de registros. Algunas de ellas proporcionan sistemas de desarrollo de interfaces PCI en los que ciertos detalles de implementacin estn ya previamente definidos. Adems facilitan herramientas para la sntesis y verificacin de los diseos. El sistema de desarrollo de Xilinx, Xilinx PCI, incluye dispositivos lgicos programables FPGA, un completo diseo programable y un interfaz grfico de usuario. Con ello el usuario slo tiene que adaptar el diseo del interfaz a sus necesidades rellenando un formulario. A partir de ste se genera la netlist sintetizada del interfaz, ficheros de restricciones para la herramienta de emplazado, modelos de simulacin y testbenches adecuados para instanciar en el diseo. Una caracterstica interesante del sistema Xilinx PCI es la posibilidad de cargar el interfaz PCI creado junto con una cierta cantidad de lgica (entre

5K y 124K), en alguna de las pastillas FPGA que Xilinx tiene precaracterizadas para este tipo de interfaces. Con ello se consigue un alto grado de integracin. Cipress no mantiene un control tan estricto de sus dispositivos y en principio no tiene que emplearse una FPGA concreta. El usuario debe adaptar la descripcin de alto nivel (VHDL) que se le proporciona para adecuarla a sus necesidades. Esta descripcin se encarga de realizar la lgica de control, configuracin del espacio de registros, temporizacin, control de paridad y otras funciones asociadas al interfaz PCI. Una vez adaptado el cdigo, basta con sintetizarlo sobre una FPGA de Cypress. 40

Sistemas de Multiprocesamiento

Bus PCI

5. 2. 3 LIBRERIAS DE MACROCELDAS PARA ASICs


Se puede realizar la implementacin del interfaz en tecnologa ASIC a partir de un conjunto de macroceldas configurables como las de LSI Logic. La librera disponible contiene un conjunto de mdulos para construir un interfaz completo: mquina de estados (maestro, esclavo), registros de configuracin, control de FIFOs, FIFOs e interfaz con PCI.

5. 2. 4 MODELADOS DE ALTO NIVEL, LogiCores


Se trata de descripciones de alto nivel (VHDL o C) configurables de componentes sintetizables para implementar el interfaz en un ASIC o en un dispositivo programable.

5. 3 OTRAS ALTERNATIVAS
Mediante lenguajes de descripcin de hardware se puede disear un interfaz que se adecue ms a unas necesidades especficas, eliminando y aadiendo funciones propias de la aplicacin a la que se va a dar servicio.

41