next up previous
Siguiente: 6. Uso del driver Superior: Hospedaje Linux de multicomputadores Anterior: 4. Perfil y evoluci�n

Subsecciones

5. El hardware de interfaz PC-QPC

La Fig. 8 muestra un esquema general de la interfaz PC hu�sped-QPC/C40S.



\resizebox*{9cm}{6cm}{\includegraphics{imagenes/n8.ps}}



Fig. 8. Esquema de canales de comunicaci�n PC-QPC/C40S

La interfaz entre el PC y la tarjeta consiste en tres recursos de comunicaci�n:

La QPC-C40S es un adaptador que conecta en un slot ISA, de modo que el mapeo se realiza entre los 640KB y el primer Mega de la memoria f�sica del PC. Las posibles direcciones de comienzo de esta zona de memoria son:

0A 0000h, 0B 0000h, 0C 0000h y 0D 0000h.

En el manual de la QPC este valor es denominado Memory Base o MBASE. La direcci�n elegida se escribe en el registro Base Address Register del bloque 0 (junto con la direcci�n del bloque 1 de registros). El mapeo se raliza autom�ticamente por hardware. La organizaci�n interna de esta memoria es la siguiente:



\resizebox*{5cm}{3cm}{\includegraphics{imagenes/lia_dpram.ps}}



Fig. 9 Divisi�n interna de la memoria compartida.

Hay que tener en cuenta que un proceso de usuario maneja direcciones virtuales de su espacio de direccionamiento, y no direcciones f�sicas del PC. Por eso para acceder a esta zona de memoria f�sica hay que hacerlo desde un m�dulo a�adido al sistema operativo o mapear esa memoria en un buffer de usuario con la llamada mmap. En este caso hemos hecho lo primero, el driver ofrece operaciones de lectura y escritura (read y write) sobre la memoria compartida, para que los procesos de usuario puedan utilizarla.

5.1 Link Interface Adapter (L.I.A.)

El C44 dispone de 4 canales de comunicaci�n que lo conectan con el exterior (el procesador C40 tiene 6) y hacen del mismo un procesador id�neo para el proceso paralelo. Estos puertos interconectan dos procesadores C44 o bien comunican al procesador con un puerto externo del m�dulo TIM o de la tarjeta. Est�n mapeados en la memoria del C40, pudi�ndose leer o escribir libremente ya que est�n controlados por una unidad de arbitraje que regula la comunicaci�n bidireccional.

La interfaz LIA ocupa los primeros 32 KB de la memoria compartida (Fig. 9). Puede verse como un medio para intercambiar datos entre el PC y un C44, donde la comunicaci�n es bidireccional y la unidad de intercambio son 4 octetos (Fig. 10).



\resizebox*{6cm}{2cm}{\includegraphics{imagenes/n10.ps}}



Fig. 10 Esquema de operaci�n de LIA.

Desde el punto de vista del procesador DSP, LIA es un puerto m�s de comunicaci�n, sin ninguna diferencia especial. Del lado del PC, la interfaz LIA es el resultado de mapear un puerto de un C44 en 4 Bytes de la memoria compartida del PC. Esta interfaz est� indicada para el intercambio de flujos de datos.

Los puertos de comunicaci�n de los C44 son rutados por hardware. Cada uno se conecta a otro procesador o dispositivo, dependiendo de la decisi�n de los fabricantes del m�dulo TIM y de la tarjeta. En nuestra QPC-C40S el puerto n�mero 2 del m�dulo A (A2) es rutado hacia el m�dulo B, LIA est� conectada al puerto 5 del m�dulo A, y dicho puerto est� conectado al puerto 5 del procesador II. Esto significa que LIA comunica al PC con el puerto 5 del procesador II del m�dulo A.

Vamos a ocuparnos ahora de la interfaz LIA en el lado del PC. Aunque LIA ocupa 32 KB de la memoria compartida, s�lo se utilizan los cuatro primeros Bytes. LIA se configura internamente como sigue:



M_BASE 1� octeto / 2� octeto
M_BASE + 2 3� octeto / 4� octeto
  (Sin uso)



Esos cuatro octetos forman la palabra de 32 bits a leer o escribir en cada momento. En el manual de la tarjeta no se informa de c�mo se escriben y se leen los datos, ni el sitio concreto donde hay que hacerlo (dentro de la memoria destinada a LIA). El registro LIA Status / Interrupt del primer bloque contiene dos bits que informan de cu�ndo LIA est� lista para ser le�da, y cu�ndo est� lista para ser escrita. Lo que significa que antes de usar LIA hay que leer esos bits del registro LIA Status/Interrupt. Aparentemente se puede leer y escribir en cualquier punto del rango dedicado a LIA, y el resultado es el mismo. Nuestro driver lee y escribe en los 4 primeros Bytes (como muestra la tabla anterior).

5.2 Dual Port RAM (DPRAM)

El segundo bloque de 32 KB de memoria compartida (Fig. 9) los ocupa DPRAM, un aut�ntico buffer compartido entre un C44 y el PC hu�sped, seg�n muestra la Fig. 11. No hay ninguna restricci�n sobre c�mo debe usarse esta memoria; todo depende del acuerdo entre los procesadores.



\resizebox*{8cm}{3cm}{\includegraphics{imagenes/n13.ps}}



Fig. 11 Esquema de operaci�n de DPRAM.

Como se puede apreciar esta interfaz est� m�s indicada para intercambiar estructuras de datos, que pueden haber sido construidas en la propia memoria compartida.

S�lo el m�dulo TIM A tiene acceso a DPRAM, y dentro de este m�dulo la memoria compartida s�lo est� mapeada en la memoria del procesador I. As�, la interfaz DPRAM puede concretarse con la Fig.12.



\resizebox*{7cm}{5cm}{\includegraphics{imagenes/n14.ps}}



Fig. 12 Conexi�n de LIA y DPRAM al m�dulo TIM A.

Como se trata de una memoria compartida entre el PC y un C44, la gesti�n de este recurso queda en manos de los programadores. Los fabricantes de la tarjeta sugieren que se implemente un protocolo de sem�foro, para evitar acceso simult�neo a los datos. Hay que tener en cuenta que el C44 accede a esta memoria en unidades de 32 bits, mientras que el PC accede en unidades de 8 bits.



\resizebox*{5cm}{3cm}{\includegraphics{imagenes/8k32k.ps}}



Fig. 13 Comparaci�n en el acceso a DPRAM entre el PC y el procesador I.

En el procesador I del m�dulo TIM A, la memoria compartida comienza en la posici�n A0100000h y se extiende sobre 8 KB, teniendo en cuenta que en un C44 un Byte son 32 bits. En el PC la memoria compartida comienza 32KB (8000h) por debajo de MBASE, que es lo que ocupa LIA. En la Fig. 13, la direcci�n de comienzo es D8000h, porque se supone que MBASE ha sido configurado al valor 0D0000h. DPRAM se extiende en el PC 32 KB a partir de esa direcci�n de comienzo.


next up previous
Siguiente: 6. Uso del driver Superior: Hospedaje Linux de multicomputadores Anterior: 4. Perfil y evoluci�n

Download this document: [src.tar.gz][ps.gz][html.tar.gz][dvi.gz]

Congreso HispaLinux 2000