Como comentarios, cabe señalar:
1. Después de completar los accesos a través de los buses externos,
el bus en cuestión se pone en estado inactivo (,
,
a valor lógico alto).
Además, y como anécdota, cabe señalar que la transición o paso de un acceso en lectura o escritura a través del bus de
expansión con
activo al bus de expansión con
activo genera, por la necesidad de sincronizar las
señales de control del bus (
,
e
), estados de
espera adicionales..
2. Desconexión temporal del
DSP de los buses externos conectados al bus principal del microprocesador. El microprocesador ofrece la posibilidad de ceder el control de
los buses asociados al bus principal a un dispositivo externo. La forma de
ceder los buses es mediante un protocolo acuse de recibo asociado a las líneas y
(de entrada y salida,
respectivamente, del DSP). Esto permitiría a otro dispositivo diferente del DSP
gobernar los buses asociados al bus principal (el DSP dejaría de ser,
temporalmente, el maestro del sistema
microprocesador). Por defecto, es el DSP el que gobierna el bus principal. Si
el usuario lo permite (bandera NOHOLD=0 en el registro de control del bus
principal) el DSP, cuando reciba una petición de ceder el bus principal (
) se desconecta del bus principal (pone todos los buses
asociados al bus principal en triestado) y, cuando ya se ha desconectado
totalmente, avisa al dispositivo externo de que puede gobernar el bus principal
(
). A partir de ese momento el DSP no puede realizar accesos
al exterior por el bus principal hasta que no deje de ser maestro el periférico
que hizo la petición de HOLD y el DSP no detecte
. Esta característica está muy relacionada con periféricos de
tipo DMA (Direct Memory Access) y se
comprenderá mejor cuando se estudie el periférico DMA interno del DSP (Tema
17).
3. Finalmente, asociados también al bus principal, aparecen los bancos de conmutación programables. Permiten conmutar entre dos dispositivos externos de memoria sin necesidad de insertar estados de espera adicionales desde el exterior.
Esta característica se asocia con los tiempos de acceso a periféricos externos tan bajos que permite el DSP. Los periféricos de almacenamiento de datos y programas que necesita el DSP para alcanzar toda su potencia de operación deben tener tiempos de acceso muy pequeños. Esto encarece el coste de dichos integrados en el sistema digital. Los dispositivos de memoria externa pueden haberse seleccionado muy al límite en sus tiempos de acceso, respecto de los que precisa el DSP, de manera que dos accesos consecutivos al mismo periférico se realicen correctamente, dentro del tiempo de acceso al periférico. Podría, sin embargo, necesitarse (al hacer un acceso a un periférico seguido de un acceso a otro periférico diferente del anterior y para garantizar la desconexión del primero antes de la conexión del segundo) la inserción de ciclos extra de acceso al exterior. Se evitan, de esta forma, posibles conflictos en el acceso al bus. Es en este caso donde resulta interesante el empleo de los bancos de conmutación programables. El tamaño de dichos bancos se programa en los bits BNKCMP del registro de control del bus principal. Un banco de conmutación programable se define por el número de MSBs de la dirección que van a ser examinados:
ü Si BNKCMP=16, los 16 MSBs de la dirección se usan para definir los bancos de conmutación programables mientras que el resto, los 8 LSBs de la dirección, determinan el tamaño de cada banco. En este caso, cada banco es de 28 =256 words de 32 bits. Si fuese BNKCMP>16, BNKCMP=16 (no se permiten bancos de conmutación programables de un tamaño inferior a 256 words).
ü Si BNKCMP=N<16, los N MSBs de la dirección se usan para definir los bancos de conmutación programables mientras que el resto (los 24-N LSBs de la dirección) determinan el tamaño de cada banco (en este caso cada banco es de 224-N words de 32 bits).
El tamaño de los bancos varía, por tanto, de 28 a 224 (caso extremo con BNKCMP=0 y un único banco).
Figura 2.36. Bits de la dirección que definen los bancos de conmutación programables.
El DSP dispone de un registro interno que contiene los
MSBs, definidos por BNKCMP, de la dirección externa que se accedió por última
vez. Si valor de este registro no coincide con los MSBs de la nueva dirección a
acceder se inserta, si se está efectuando una operación de acceso externo en
lectura que sigue a otra que se acaba de realizar, un ciclo extra en el acceso
(si el acceso fuese en escritura no se insertaría ningún estado de espera). En
ambos casos, acceso en lectura o escritura, y durante ese ciclo máquina se
cambia el registro interno del DSP que contiene los MSBs de la dirección
accedida (se copian en él los MSBs de la última dirección externa que fue
accedida). En el acceso en lectura a un banco de conmutación programable
distinto del anterior la dirección cambia cuando le corresponde (estados de
espera programados) pero la señal de control no permanece activa
sino que, durante un ciclo máquina, es desactivada (similar a una lectura que
sigue a una escritura). Obsérvese que el registro interno que contiene los MSBs
del DSP cambia en cada acceso en lectura o escritura, asociado al bus
principal, a la memoria externa. Sin embargo, mientras que en los accesos en
lectura, los más rápidos, se inserta un estado de espera adicional al conmutar
de banco, en un acceso en escritura,
más lento que el de lectura, no se inserta el ciclo extra al producirse la
conmutación del banco. En la figura
2.38 se muestra el efecto que produce el cambio de bancos de conmutación programables en dos accesos consecutivos en
lectura a través del bus principal.
Figura 2.37. Modo de operación con bancos de conmutación programables: Acceso en lectura con cambio de banco.