Grupo de Tecnología Electrónica

Complementos de sistemas electrónicos digitales

4.       Operaciones internas del bus

 

Por operaciones internas del bus se entiende el flujo de instrucciones y datos que existe dentro del DSP así como el conjunto de operaciones asociadas a dicho flujo. Este flujo está gobernado por dos subsistemas internos al micro, la CPU (analizada previamente) y la DMA (que se estudiará en detalle en temas posteriores y que se puede entender como un sistema equivalente a la CPU pero que se encarga únicamente del manejo de datos, nunca de las instrucciones).

 

La familia de DSPs TMS320C3x establece, para completar la ejecución de cada instrucción del sistema, cuatro fases, microinstrucciones u operaciones básicas, asociadas a la CPU, para procesar completamente una instrucción:

 

1.      Microinstrucción FETCH o de recogida. Hace referencia, como su nombre indica, a la fase o período de tiempo en que la CPU recoge la instrucción de la zona de memoria de programa y actualiza el registro contador de programa.

2.      Microinstrucción DECODE o de decodificación. Hace referencia a la fase o período de tiempo en que la CPU decodifica la instrucción. Determina la secuencia de operaciones que debe realizar el sistema para completar la ejecución de la instrucción y las direcciones de los operandos, si fuesen necesarios, que tiene asociados la instrucción. En esta fase, por tanto, la CPU genera las direcciones de los datos, controla las modificaciones que se precisen en los registros SP y AR0-AR7.

3.      Microinstrucción READ o de lectura de operandos. Hace referencia a la fase o período de tiempo en que la CPU accede a los operandos, cuyas direcciones se actualizaron en la fase anterior, sobre los que opera la instrucción.

4.      Microinstrucción EXECUTE o de ejecución. Hace referencia a la fase o período de tiempo en que la CPU procede a la ejecución de la instrucción. Incluye el cálculo y las operaciones de almacenamiento de los resultados. Si fuese necesario, en esta fase, la CPU accede a recoger los operandos que sean registros internos de la CPU y almacena los resultados en dichos registros o en la zona de memoria de datos

 

Dispone, además, de una microinstrucción asociada a los eventos de DMA o microinstrucción DMA, relacionada con los eventos de DMA. Esta microinstrucción se ejecuta independiente a los eventos asociados a la CPU. Hace referencia a las operaciones de escritura o lectura de memoria asociadas a los periféricos DMA. Tiene la característica, por tanto, de operar en paralelo con la CPU.

 

La estructura interna de tipo Harvard en estos DSPs, con la existencia de varios buses internos, posibilita la denominada estructura pipelining en la ejecución de las instrucciones que consiste en la ejecución, en paralelo, de los niveles Fetch, Decode, Read y Execute de varias instrucciones básicas. En la figura 2.13 se muestran los pasos básicos asociados a la ejecución de una instrucción y la estructura de pipeline. Se pretende la ejecución, si es posible y en el mismo periodo de tiempo, de las cuatro microinstrucciones que tocan asociadas a otras tantas instrucciones: overlaping o solapamiento perfecto de instrucciones.

 

Figura 2.1. Estructura pipeline: Secuencia de operaciones básicas para la ejecución de cuatro instrucciones (w, x, y, z).

 

El overlaping, ejecución en paralelo pero en fases de microinstrucción diferentes de cuatro instrucciones, permite una gran velocidad de ejecución, hasta el valor máximo de 1 instrucción/ciclo máquina. La familia TMS320C3x ofrece una estructura de control de pipeline transparente al usuario, que gestiona todos los posibles conflictos que puedan aparecer. El conflicto aparece cuando una instrucción, que ha ejecutado ya un nivel de pipeline, pretende pasar a otro nivel o microinstrucción en el que va a emplear unos recursos que no están aún listos (entender las microinstrucciones como procesos que consumen recursos que han de ser liberados para que otra instrucción pueda hacer uso de los mismos). La instrucción que está en el nivel de pipeline de prioridad más baja permanece congelada hasta que la que esté en el orden más alto de prioridad, que antecede en el tiempo a la anterior, libere el recurso que está usando y que precisa la primera instrucción.

 

En la figura 2.2 aparecen los órdenes de prioridades establecidos para los diferentes recursos o microinstrucciones de la estructura pipeline.

 

Obsérvese que la DMA puede presentar, en los accesos a periféricos de almacenamiento internos, problemas de conflicto a pesar de tener recursos, buses de dirección y datos internos, independientes de los de la CPU (aunque dispone de buses independientes de la CPU, los buses de la CPU y de la DMA están multiplexados en el acceso a los periféricos internos del sistema). Ejemplos de conflictos pipeline se pueden nombrar instrucciones de salto, acceso a registros y de acceso a posiciones de memoria. En todos los casos, estos conflictos son transparentes al usuario, los resuelve internamente el propio DSP. Al usuario sólo le afecta en que ralentiza el tiempo de ejecución del programa puesto que los conflictos se solucionan parando la ejecución de la instrucción que no puede acceder al recurso que está usando otra.

 

Figura 2.2. Órdenes de prioridades en los recursos de la estructura pipeline.

 

e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


IMPLANTACIÓN DE UNA RED ASÃNCRONA DE ENSEÑANZA DEDICADA A LA IMPARTICIÓN DE LA ASIGNATURA COPLEMENTOS DE SISTEMAS ELECTRÓNICOS DIGITALES DE 3º CURSO DE INGENIERÃA DE TELECOMUNICACIÓN.

: Oliveros Garrido, Antonio
: Ingeniería Telecomunicación
Contenido del proyecto:
Directorio raíz  >  Proyecto  >  tema2  >  punto4.htm