ES2349488T3 - Controlador de acceso directo a memoria (dmac) para gestionar transferencias de longitudes desconocidas. - Google Patents
Controlador de acceso directo a memoria (dmac) para gestionar transferencias de longitudes desconocidas. Download PDFInfo
- Publication number
- ES2349488T3 ES2349488T3 ES07822831T ES07822831T ES2349488T3 ES 2349488 T3 ES2349488 T3 ES 2349488T3 ES 07822831 T ES07822831 T ES 07822831T ES 07822831 T ES07822831 T ES 07822831T ES 2349488 T3 ES2349488 T3 ES 2349488T3
- Authority
- ES
- Spain
- Prior art keywords
- dma
- count
- data
- transferred
- transferred data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Length Measuring Devices With Unspecified Measuring Means (AREA)
- Silver Salt Photography Or Processing Solution Therefor (AREA)
- Extrusion Moulding Of Plastics Or The Like (AREA)
Abstract
Método de realización de operaciones de Acceso Directo a Memoria (DMA) con intervención mínima por parte de un procesador (12), mediante un controlador (20) de DMA, operativo para transferir datos de longitud desconocida, que tiene uno o más canales, que comprende, para por lo menos un canal de DMA: ejecutar una primera transferencia (66, 68) de DMA y mantener un recuento de los datos transferidos (70); almacenar el recuento de datos transferidos (76, 77, 78), e iniciar la ejecución de una segunda transferencia de DMA antes de que el procesador lea el recuento almacenado de datos transferidos.
Description
La presente invención se refiere a circuitos de proceso de datos, y en particular a un controlador de Acceso Directo a Memoria (DMA) operativo para mantener y almacenar un recuento de transferencias.
5 Las operaciones de DMA son bien conocidas en la técnica. Un controlador de DMA funciona de manera que libera de tareas rutinarias de transferencia de datos a un procesador u otro controlador del sistema. En una operación ilustrativa de transferencia de DMA, un procesador inicializa el controlador de DMA con información de origen y de destino, información de control, y un tamaño de la transferencia. El
10 controlador de DMA lee de forma autónoma datos del origen, que puede comprender un periférico, tal como una interfaz de comunicaciones, o una posición de memoria, y escribe los datos en el destino, que también puede comprender un periférico o una memoria. Por consiguiente, la transferencia de DMA puede ser desde un periférico a un periférico, de periférico a memoria, de memoria a periférico, o de memoria a
15 memoria. El controlador de DMA almacena típicamente el tamaño de la transferencia en un contador, y lo decrementa tras escribir cada dato (por ejemplo, byte, media palabra, etcétera). Cuando el tamaño de la transferencia se ha decrementado hasta cero, se ha completado la operación de transferencia de DMA, y el controlador de DMA puede interrumpir el procesador, activar una bandera en un registro de estados o
20 de control, o indicar de otra manera que se ha completado la transferencia de datos. Un controlador de DMA multicanal realiza dos o más operaciones de transferencia de DMA en paralelo, típicamente mediante el multiplexado por división de tiempo de las transferencias de DMA. Las operaciones de transferencia de DMA pueden estar enlazadas. Por
25 ejemplo, una transferencia de datos de mucho tamaño se puede descomponer en una secuencia de transferencias más pequeñas. El controlador de DMA se puede inicializar con información de origen, de destino, de tamaño de la transferencia, y otra información de control, y se le puede proporcionar adicionalmente una dirección de enlace. Cuando el controlador de DMA completa la transferencia de DMA, lee un
30 conjunto nuevo de información de origen, de destino, de tamaño de transferencia y de control a partir de la dirección de enlace, así como una dirección de enlace nueva, y comienza inmediatamente una operación nueva de transferencia de DMA. De este modo, un número elevado de operaciones de transferencia de DMA puede estar enlazado, o encadenado, entre sí para mover grandes cantidades de datos.
35 En muchos casos, la longitud de una transferencia de DMA no se conoce por
adelantado. Por ejemplo, una transferencia de DMA desde un periférico de comunicaciones a memoria puede transferir uno o más paquetes cuya longitud no sea conocida antes de recibirlos en el periférico. Adicionalmente, las transferencias de DMA de una longitud nominalmente conocida pueden finalizar de forma prematura, por 5 ejemplo, si se acaba el tiempo de espera de un periférico, o si se llena una memoria intermedia de destino. En cualquier caso, el software necesita averiguar la cantidad de datos transferidos para poder procesarlos. En controladores de DMA convencionales, el recuento de transferencias (o bien incrementado desde cero o bien decrementado desde un recuento de transferencias nominal) debe ser leído por el procesador antes
10 de que el controlador de DMA comience una transferencia de DMA sucesiva, la cual se escribirá encima del registro de recuentos o contador de transferencias de DMA. Incluso si el controlador de DMA interrumpe al procesador cuando finaliza la operación de transferencia de DMA, el cambio de contexto requerido para que el procesador detenga la ejecución, cargue una rutina de servicio de interrupción, y lea el
15 recuento de transferencias de DMA – liberando de este modo al controlador de DMA para realizar una operación sucesiva de transferencia de DMA – requiere un retardo elevado y en muchos casos inaceptable. A medida que aumenta la funcionalidad y la complejidad de los sistemas informáticos, aumenta en su totalidad el número de periféricos que comparten datos, la cantidad de datos a transferir, y las velocidades de
20 datos del sistema, reduciéndose el retardo aceptable máximo entre operaciones de transferencia de DMA. Por consiguiente, existe en la técnica una necesidad de “desacoplar” el procesador con respecto al controlador de DMA en el caso de transferencias de DMA de tamaño desconocido. El documento US6253261 da a conocer el uso de órdenes de “continuación” para dichas transferencias.
25
Según una o más realizaciones, un controlador de DMA mantiene un recuento de datos transferidos en cada operación de DMA, y memoriza el recuento de datos transferidos al final de la operación de DMA. El controlador de DMA puede dar
30 comienzo entonces a una operación sucesiva de transferencia de DMA, sin esperar a que un procesador lea el recuento de datos transferidos. El recuento de datos transferidos se puede escribir en memoria en una dirección especificada en un registro de direcciones de memorización de recuentos de datos transferidos; se puede memorizar en un registro de recuentos de datos transferidos dedicado al canal de
35 DMA; o se puede memorizar en un registro de recuentos de datos transferidos compartido entre dos o más canales de DMA. El procesador puede leer el recuento de datos transferidos y, si procede, borrar el registro pertinente de recuentos de datos transferidos, después de que el controlador de DMA dé inicio a otra operación de DMA en ese canal de DMA.
5 En una realización, la presente invención se refiere a un método de desacoplamiento de operaciones de DMA con respecto a un procesador, mediante un controlador de DMA que tiene uno o más canales. Para por lo menos un canal de DMA, se ejecuta una primera transferencia de DMA y se mantiene un recuento de los datos transferidos. El recuento de datos transferidos se almacena. La ejecución de una
10 segunda transferencia de DMA da comienzo antes de que el procesador lea el recuento almacenado de datos transferidos. En otra realización, la presente invención se refiere a un controlador de DMA que soporta uno o más canales de DMA. El controlador de DMA incluye un conjunto de registros asociados a cada canal de DMA, incluyendo el conjunto por lo menos un contador operativo para mantener un recuento
15 de datos transferidos en cada operación de DMA. El controlador de DMA incluye también un circuito de control operativo para memorizar el recuento de datos transferidos después de cada operación de DMA, y operativo además para dar inicio a una operación de DMA sucesiva antes de que un procesador lea el recuento memorizado de datos transferidos.
20 Todavía en otra realización, la presente invención se refiere a un sistema de proceso de datos. El sistema incluye un procesador, una memoria, y un controlador de DMA que soporta uno o más canales de DMA. El sistema incluye también un conjunto de registros en el controlador de DMA asociado a cada canal de DMA, incluyendo el conjunto por lo menos un contador operativo para mantener un recuento de datos
25 transferidos en cada operación de DMA. El sistema incluye además un circuito de control en el controlador de DMA, operativo para memorizar el recuento de datos transferidos después de cada operación de DMA, y operativo además para dar inicio a una operación de DMA sucesiva antes de que el procesador lea el recuento memorizado de datos transferidos.
30
La Figura 1 es un diagrama de bloques funcionales de un sistema de proceso de datos. La Figura 2 es un diagrama de bloques de un conjunto de registros asociado a
35 cada canal de DMA.
La Figura 3 es un diagrama de flujo de un método de ejecución de operaciones de DMA.
5 La Figura 1 representa un diagrama de bloques funcionales de un sistema representativo de proceso de datos, indicado de forma general con el número 10. El sistema 10 incluye un procesador 12, u otro controlador tal como un Procesador de Señales Digitales (DSP), un microcontrolador integrado, una máquina de estados implementada en un ASIC ó FPGA, o similares. El procesador 12 está conectado a un
10 bus 14 de alta velocidad, y transfiere datos a través del bus de alta velocidad hacia y desde la memoria 16. Otros componentes del sistema 10 con comunicación de gran ancho de banda hacia la memoria 16, tales como un controlador 18 de gráficos y un controlador 20 de DMA, están conectados también al bus 14 de alta velocidad. El controlador 18 de gráficos puede transferir grandes cantidades de datos entre, por
15 ejemplo, una memoria intermedia de cuadro y la memoria 16, en operaciones de transferencia de DMA. Un puente 22 entre buses prevé la transferencia de datos entre el bus 14 de alta velocidad y dispositivos periféricos o funciones en un bus 24 de periféricos. Al bus 24 de periféricos pueden conectarse numerosos periféricos, tales como un Reloj de
20 Tiempo Real (RTC) 26, un Receptor/Transmisor Asíncrono Universal (UART) 28, una Interfaz de Entrada/Salida 30, una Tarjeta de Interfaz de Red (NIC) 32, y similares. Muchos de estos periféricos 28, 30, 32 pueden transferir datos hacia y desde la memoria 16 y/o entre otros periféricos 28, 30, 32 a través de operaciones de transferencia de DMA. En general, los periféricos 28, 30, 32 y componentes 18 que
25 pueden participar en operaciones de transferencia de DMA tienen conexiones de señales de control de banda lateral con el controlador 20 de DMA. Evidentemente, el sistema 10 de proceso de datos de la Figura 1 es solamente representativo. En otras realizaciones, todos los bloques funcionales pueden compartir el mismo bus, puede que no estén presentes todos los componentes, se pueden incluir otros componentes,
30 y similares. El controlador 20 de DMA incluye un circuito 21 de control, que puede comprender, por ejemplo, una máquina de estados, y, para cada canal de DMA, un conjunto de registros 40, representado de forma detallada en la Figura 2. Cada conjunto 40 de registros puede incluir un registro 42 de control, un registro 44 de
35 origen, un registro 46 de destino, un registro o contador 48 de tamaños de
transferencia, y un registro 50 de direcciones de enlaces a parámetros si el controlador 20 de DMA soporta operaciones enlazadas de transferencia de DMA. El registro 42 de control contiene varios campos de bits predefinidos que definen los parámetros de una operación de transferencia de DMA, tales como el
5 tamaño de cada dato a transferir (por ejemplo, byte, media palabra, palabra, etcétera), si la dirección de origen y/o destino se debería incrementar después de la lectura o escritura de cada dato, la prioridad de esta operación de transferencia de DMA con respecto a otras operaciones simultáneas de transferencia de DMA en un controlador 20 de DMA multicanal, y/u otra información de control según se desee o requiera para
10 cualquier implementación determinada. El registro 44 de origen indica el periférico o posición de memoria desde la cual se van a leer datos, y el registro 46 de destino indica el periférico o posición de memoria en la que se van a escribir datos. El registro 48 de tamaños de transferencia puede comprender un contador que se inicializa con el recuento deseado de
15 transferencia de datos, y se decrementa tras la lectura y escritura exitosas de cada dato. Alternativamente, para operaciones de transferencia de DMA de un tamaño desconocido, el registro/contador 48 de tamaños de transferencia se puede inicializar a cero, y se puede incrementar después de la transferencia de cada dato. Si el controlador 20 de DMA soporta operaciones enlazadas de transferencia
20 de DMA, el registro 50 de direcciones de enlaces a parámetros contiene una dirección de memoria de inicio a partir de la cual el controlador 20 de DMA puede obtener valores nuevos para el conjunto 42 de registros al completarse una operación enlazada de transferencia de DMA. El registro 50 de direcciones de enlaces a parámetros también puede incluir un bit válido (no mostrado) para indicar que una
25 operación de DMA enlazada está pendiente. El conjunto 42 de registros lo inicializa el procesador antes de la operación de transferencia de DMA (o de la primera operación de transferencia de DMA en una secuencia enlazada de operaciones de transferencia de DMA). El procesador inicializa adicionalmente cualquier periférico que participe en la operación de transferencia de
30 DMA. A continuación, el controlador 20 de DMA realiza de forma autónoma la operación de transferencia de DMA, leyendo datos de o escribiendo datos en periféricos en respuesta a señales de control provenientes de los periféricos que indican que tienen datos disponibles o la capacidad de aceptar datos, respectivamente, y en respuesta a un arbitraje para el bus 24 de periféricos y el bus 14
35 de alta velocidad. Según una o más realizaciones de la presente invención, al
completarse la operación de transferencia de DMA, el controlador 20 de DMA memoriza un recuento de datos transferidos exitosamente, para su posterior inspección por parte del procesador, y puede proseguir inmediatamente con una operación sucesiva de transferencia de DMA.
5 En una realización, el recuento de datos transferidos se memoriza en un registro 54 de recuentos de datos transferidos que está dedicado al canal de DMA. El registro 54 de recuentos de datos transferidos puede comprender un contador, inicializado a cero antes de ejecutar la operación de transferencia de DMA, que se incrementa al producirse la transferencia exitosa de cada dato. Alternativamente, el
10 registro 54 de recuentos de datos transferidos puede comprender un registro simple, en el que se copia el contenido del registro/contador 48 de tamaños de transferencia al completarse la operación de transferencia de DMA. A diferencia de los registros 42 a 50 en el conjunto 40 de registros, antes de cada operación de transferencia de DMA no se escribe encima del registro 54 de recuentos de datos transferidos. Por el
15 contrario, el procesador 12 puede borrar el registro 54 de recuento de datos transferidos al producirse la lectura del recuento de datos transferidos, o alternativamente el controlador 20 de DMA puede saltar dicho registro al completarse una operación sucesiva de transferencia de DMA, en respuesta a una indicación, del procesador 12, de que se ha leído el recuento previo de datos transferidos. Dicha
20 indicación puede comprender, por ejemplo, un estado predeterminado de uno o más bits en el registro 42 de control para la operación sucesiva de transferencia de DMA. En una realización, el controlador 20 de DMA puede incluir una pluralidad de registros 54a, 54b, 54c de recuentos de datos transferidos, dedicado cada uno de ellos al canal de DMA, para memorizar el recuento de datos transferidos de más de una
25 operación sucesiva de transferencia de DMA que use ese canal. Se puede proporcionar cualquier número n deseado de registros 54 de recuento de datos transferidos, que permiten que el controlador 20 de DMA ejecute hasta n operaciones sucesivas de transferencia de DMA por canal sin esperar a que el procesador 12 lea un recuento de datos transferidos. El número n de registros 54 de recuento de datos
30 transferidos puede variar con cada canal de DMA, y puede ser determinado por un diseñador del sistema sobre la base de niveles conocidos o previstos de actividad de transferencias de DMA, tiempo de respuesta del procesador 12, requisitos de latencia del sistema 10, y similares. Los n registros 54 de recuento de datos transferidos pueden formar una cola circular, de manera que el controlador de DMA escribe
35 siempre en el siguiente registro sucesivo 54 de recuento de datos transferidos.
Alternativamente, los registros 54 de recuento de datos transferidos pueden incluir un campo de indicación de tiempo (no mostrado), de modo que el controlador de DMA memoriza una indicación de tiempo o un número ordinal incrementado secuencialmente con cada recuento de datos transferidos, permitiendo que el
5 procesador 12 asocie recuentos de datos transferidos a operaciones de transferencia de DMA.
En una realización, en lugar de dedicar los recursos de hardware de uno o más registros 54 de recuento de datos transferidos a cada canal de DMA, un controlador 20 de DMA multicanal puede incluir uno o más registros compartidos 54 de recuento de
10 datos transferidos. En este caso, cada registro 54 de recuento de datos transferidos puede incluir un campo identificador (no mostrado) de canal de DMA, de manera que el procesador 12 puede asociar de forma inequívoca cada recuento de datos transferidos al canal de DMA correspondiente. En una realización, cada registro compartido 54 de recuentos de datos transferidos incluye adicionalmente un campo de
15 indicación de tiempo (no mostrado), que permite que el procesador 12 averigüe cuál de entre diversos recuentos de datos transferidos, asociados a un canal de DMA determinado, se aplica a qué operación de transferencia de DMA.
En una realización, el conjunto 40 de registros para cada canal de DMA incluye un registro 52 de direcciones de memorización de recuentos de datos transferidos. 20 Este registro 52 se inicializa por medio del procesador 12 (o es leído por el controlador 20 de DMA en el caso de una operación enlazada de transferencia de DMA) con la dirección de una posición de la memoria 16 en la que el controlador 20 de DMA almacena el recuento de datos transferidos después de la operación de transferencia de DMA. Esta realización proporciona una flexibilidad prácticamente ilimitada en el 25 número de operaciones sucesivas de transferencia de DMA que puede ejecutar el controlador 20 de DMA sin esperar a que el procesador 12 lea un recuento de datos transferidos, sin necesidad de implementar registros de hardware caros que pueden ser utilizados con muy poca frecuencia o nunca. El procesador asocia cada dirección de memorización del recuento de datos transferidos a la operación correspondiente de
30 transferencia de DMA, obviando la necesidad de un identificador de canal de DMA, una indicación de tiempo, u otra identificación. La Figura 3 representa un método de ejecución de una o más operaciones de transferencia de DMA, según varias realizaciones de la presente invención, indicado de forma general con la referencia 60. El método 60 comienza en el bloque 62. Se
35 inicializa el conjunto 40 de registros (bloques 64). Inicialmente, el procesador 12 escribe datos en el conjunto 40 de registros. En una operación enlazada de transferencia de DMA, el controlador 20 de DMA lee datos para el conjunto 40 de registros desde una dirección especificada en el registro 50 de direcciones de enlaces a parámetros durante la operación previa de transferencia de DMA.
5 El controlador 20 de DMA lee un dato, según se especifica en el registro 42 de control, del origen (bloque 66), según se especifica en el registro 44 de origen. El origen puede ser un periférico 28, 30, 32, o una posición en la memoria 16. A continuación, el controlador 20 de DMA escribe el dato en el destino (bloque 68), según se especifica en el registro 46 de destino. El destino puede ser también un
10 periférico 28, 30, 32, o una posición en la memoria 16. En cualquier caso, el controlador 20 de DMA puede leer o escribir desde una única posición, tal como la salida de una FIFO, o puede incrementar su dirección de lectura/escritura, según se especifica, por ejemplo, en el registro 42 de control. El controlador 28 de DMA mantiene un recuento de los datos transferidos en la
15 operación de transferencia de DMA, por ejemplo incrementado o decrementando el registro 48 de tamaño de transferencia u otro contador (bloque 70). Este proceso continúa hasta que se ha completado la transferencia de DMA (bloque 72). La operación de transferencia de DMA se ha completado cuando se ha transferido la cantidad de datos especificada en el registro 48 de tamaño de transferencia; cuando el
20 origen de datos indica al controlador 20 de DMA que se ha completado la transferencia (por ejemplo, a través de señales de control de banda lateral); cuando el destino de los datos indica al controlador 20 de DMA que no puede aceptar más datos (por ejemplo, a través de señales de control de banda lateral); o cuando el controlador 20 de DMA reconoce una bandera de Fin de Archivo (EOF) u otro patrón de datos predeterminado
25 que indica el final de un paquete, trama, o similar (según se puede especificar en el registro 42 de control u otro registro en el controlador 20 de DMA). Cuando se ha completado la operación de transferencia de DMA, el controlador 20 de DMA memoriza el recuento de datos transferidos, de manera que no debe esperar a que el procesador 12 lea el recuento de datos transferidos antes de comenzar con una
30 operación sucesiva de transferencia de DMA. En una realización, el recuento de datos transferidos se memoriza en el siguiente registro disponible 54a, 54b, ..., 54(n-1) de recuento de datos transferidos dedicado al canal de DMA (bloque 76). En otra realización, el controlador 20 de DMA memoriza el recuento de datos transferidos en el siguiente registro compartido disponible 54a, 54b, ... 54(n-1) de recuento de datos
35 transferidos (bloque 77). En otra realización, el controlador 20 de DMA escribe el recuento de datos transferidos en la memoria 16 en una dirección especificada en el registro 52 de direcciones de memorización de recuentos de datos transferidos (bloque 78).
Si el registro 50 de direcciones de enlaces a parámetros contiene una dirección
5 válida, que indica una operación de DMA enlazada (bloque 80), el controlador 20 de DMA lee datos de la dirección especificada en la memoria 16 para inicializar el conjunto 40 de registros (bloque 64) – pero no escribe encima del recuento de datos transferidos, en caso de que el mismo esté memorizado en un registro 54 – y prosigue con la realización de otra operación de transferencia de DMA sin esperar a que el
10 procesador 12 lea el recuento de datos transferidos de la operación anterior de transferencia de DMA. Si el registro 50 de direcciones de enlaces a parámetros no contiene una dirección válida, y se ha completado la operación de transferencia de DMA, el método 60 finaliza en el bloque 82. Desacoplando el procesador 12 de la operación de transferencia de DMA
15 mediante la memorización del recuento transferido, no es necesario que las transferencias de DMA de tamaño desconocido detengan el sistema, y no es necesario que el controlador 20 de DMA espere por el procesador 12, sino que, por el contrario, puede dar comienzo inmediatamente a una operación sucesiva de transferencia de DMA. Esta capacidad puede mejorar significativamente la
20 transferencia de datos a través del sistema 10 de proceso de datos.
Claims (13)
- REIVINDICACIONES1. Método de realización de operaciones de Acceso Directo a Memoria (DMA) con intervención mínima por parte de un procesador (12), mediante un controlador (20)5 de DMA, operativo para transferir datos de longitud desconocida, que tiene uno o más canales, que comprende, para por lo menos un canal de DMA:ejecutar una primera transferencia (66, 68) de DMA y mantener un recuento de los datos transferidos (70);10 almacenar el recuento de datos transferidos (76, 77, 78), e iniciar la ejecución de una segunda transferencia de DMA antes de que el procesador lea el recuento almacenado de datos transferidos.
- 2. Método de la reivindicación 1, en el que el almacenamiento del recuento de15 datos transferidos comprende escribir el recuento en una posición predeterminada de memoria.
- 3. Método de la reivindicación 2, en el que la posición predeterminada de memoria la especifica el procesador para cada transferencia de DMA.20
- 4. Método de la reivindicación 1, en el que el almacenamiento del recuento de datos transferidos comprende memorizar el recuento en un registro de recuentos de transferencias de DMA en el controlador de DMA.25 5. Método de la reivindicación 4, en el que el registro de recuentos de transferencias de DMA se asocia al canal de DMA o en el que el registro de recuentos de transferencias de DMA es compartido por dos o más canales de DMA.
- 6. Método de la reivindicación 5, en el que el registro de recuentos de30 transferencias de DMA es uno de una pluralidad de registros de recuentos de transferencias de DMA asociados al canal de DMA o compartidos por los dos o más canales de DMA respectivamente.
- 7. Controlador (20) de Acceso Directo a Memoria (DMA), operativo para 35 transferir datos de longitud desconocida, que soporta uno o más canales de DMA, que comprende:un conjunto de registros (40) asociado a cada canal de DMA, incluyendo el conjunto por lo menos un contador operativo para mantener un recuento de5 datos transferidos en cada operación (54a, 54b, 54c) de DMA; y un circuito de control operativo para memorizar el recuento de datos transferidos después de cada operación de DMA, y operativo además para iniciar una operación sucesiva de DMA antes de que un procesador (12) lea el recuento memorizado de datos transferidos.10
- 8. Controlador de DMA de la reivindicación 7, en el que cada conjunto de registros incluye además un registro de direcciones de memorización de recuentos de datos transferidos, y en el que el circuito de control es operativo además para escribir el recuento de datos transferidos en memoria en una dirección almacenada en el15 registro de direcciones de memorización de recuentos de datos transferidos.
- 9. Controlador de DMA de la reivindicación 7, en el que cada conjunto de registros incluye además un registro de recuentos de datos transferidos encima del cual no se escribe antes de cada operación de DMA, y en el que el circuito de control20 es operativo para memorizar el recuento de datos transferidos en el registro de recuentos de datos transferidos.
- 10. Controlador de DMA de la reivindicación 9, en el que cada conjunto de registros incluye además una pluralidad de registros de recuentos de datos25 transferidos, y en el que el circuito de control memoriza el recuento de datos transferidos para una pluralidad de operaciones sucesivas de DMA en los registros de recuentos de datos transferidos.
- 11. Controlador de DMA de la reivindicación 10, en el que el circuito de control30 memoriza adicionalmente una indicación de tiempo con cada recuento de datos transferidos.
- 12. Controlador de DMA de la reivindicación 7, que comprende además unregistro compartido de recuentos de datos transferidos encima del cual no se escribe 35 antes de cada operación de DMA, y en el que el circuito de control es operativo para memorizar el recuento de datos transferidos de cualquier canal de DMA en el registro compartido de recuentos de datos transferidos.
- 13. Controlador de DMA de la reivindicación 12, que comprende además una5 pluralidad de registros compartidos de recuentos de datos transferidos, y en el que el circuito de control memoriza el recuento de datos transferidos para una pluralidad de operaciones sucesivas de DMA en los registros compartidos de recuentos de datos transferidos.10 14. Controlador de DMA de la reivindicación 13, en el que el circuito de control memoriza adicionalmente una indicación de tiempo con cada recuento de datos transferidos.
- 15. Sistema de proceso de datos, que comprende:15 un procesador; una memoria; y el controlador de Acceso Directo a Memoria (DMA), de cualquiera de las reivindicaciones 7 a 14.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/563,732 US7433977B2 (en) | 2006-11-28 | 2006-11-28 | DMAC to handle transfers of unknown lengths |
| US563732 | 2006-11-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2349488T3 true ES2349488T3 (es) | 2011-01-04 |
Family
ID=38055494
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES07822831T Active ES2349488T3 (es) | 2006-11-28 | 2007-11-23 | Controlador de acceso directo a memoria (dmac) para gestionar transferencias de longitudes desconocidas. |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7433977B2 (es) |
| EP (1) | EP2097828B1 (es) |
| CN (1) | CN101636721B (es) |
| AT (1) | ATE478385T1 (es) |
| DE (1) | DE602007008614D1 (es) |
| ES (1) | ES2349488T3 (es) |
| TW (1) | TW200842592A (es) |
| WO (1) | WO2008065045A2 (es) |
Families Citing this family (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7831746B2 (en) * | 2007-03-13 | 2010-11-09 | Sgi International, Inc. | Direct memory access engine for data transfers |
| US8166212B2 (en) * | 2007-06-26 | 2012-04-24 | Xerox Corporation | Predictive DMA data transfer |
| DE102007029833B4 (de) * | 2007-06-28 | 2019-03-28 | Texas Instruments Deutschland Gmbh | Mikrocontroller mit Datenmodifikationsmodul und System umfassend ein Datenmodifikationsmodul |
| US20090089515A1 (en) * | 2007-10-02 | 2009-04-02 | Qualcomm Incorporated | Memory Controller for Performing Memory Block Initialization and Copy |
| US8904058B2 (en) * | 2011-05-27 | 2014-12-02 | International Business Machines Corporation | Selecting direct memory access engines in an adaptor input/output (I/O) requests received at the adaptor |
| JP5908991B2 (ja) * | 2011-12-21 | 2016-04-26 | インテル・コーポレーション | 安全なダイレクトメモリアクセス |
| US9430563B2 (en) | 2012-02-02 | 2016-08-30 | Xerox Corporation | Document processing employing probabilistic topic modeling of documents represented as text words transformed to a continuous space |
| CN103514126B (zh) * | 2012-06-26 | 2016-07-20 | 京信通信系统(广州)有限公司 | 一种数据的接收方法、系统以及装置 |
| US9727502B2 (en) * | 2013-07-26 | 2017-08-08 | Infineon Technologies Ag | System and method for direct memory access transfers |
| DE102013016114B3 (de) * | 2013-09-26 | 2015-02-05 | Infineon Technologies Ag | Bussystem und Verfahren für geschützte Speicherzugriffe |
| CN104717433A (zh) * | 2015-03-27 | 2015-06-17 | 电子科技大学 | 一种用于视频流信号处理系统的分布式传输装置 |
| US10877911B1 (en) * | 2016-03-30 | 2020-12-29 | Amazon Technologies, Inc. | Pattern generation using a direct memory access engine |
| FR3094507A1 (fr) | 2019-03-29 | 2020-10-02 | Stmicroelectronics (Grenoble 2) Sas | Accès direct en mémoire |
| US11099966B2 (en) * | 2020-01-09 | 2021-08-24 | International Business Machines Corporation | Efficient generation of instrumentation data for direct memory access operations |
| US11620246B1 (en) * | 2022-05-24 | 2023-04-04 | Ambiq Micro, Inc. | Enhanced peripheral processing system to optimize power consumption |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5151999A (en) * | 1986-03-31 | 1992-09-29 | Wang Laboratories, Inc. | Serial communications controller for transfer of successive data frames with storage of supplemental data and word counts |
| US4942515A (en) * | 1986-03-31 | 1990-07-17 | Wang Laboratories, Inc. | Serial communications controller with FIFO register for storing supplemental data and counter for counting number of words within each transferred frame |
| JP2528879B2 (ja) | 1987-05-27 | 1996-08-28 | 株式会社日立製作所 | 通信処理装置 |
| JP2520905B2 (ja) | 1987-05-27 | 1996-07-31 | 株式会社日立製作所 | シリアル通信制御装置 |
| CA2022073A1 (en) | 1989-10-11 | 1991-04-12 | Arthur Jacob Heimsoth | Apparatus and method for receiving serial communication status data with a dma controller |
| US5333294A (en) * | 1990-10-09 | 1994-07-26 | Compaq Computer Corporation | Configurable data width direct memory access device with a read address counter and a write address counter which increments the addresses based on the desired data transfer width |
| US5828856A (en) * | 1994-01-28 | 1998-10-27 | Apple Computer, Inc. | Dual bus concurrent multi-channel direct memory access controller and method |
| US5568614A (en) * | 1994-07-29 | 1996-10-22 | International Business Machines Corporation | Data streaming between peer subsystems of a computer system |
| US5761453A (en) * | 1995-12-07 | 1998-06-02 | Apple Computer, Inc. | Method and system for increasing the throughput of serial data in a computer system |
| US6154793A (en) * | 1997-04-30 | 2000-11-28 | Zilog, Inc. | DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting |
| US6275948B1 (en) * | 1997-11-14 | 2001-08-14 | Agere Systems Guardian Corp. | Processor powerdown operation using intermittent bursts of instruction clock |
| US6199121B1 (en) * | 1998-08-07 | 2001-03-06 | Oak Technology, Inc. | High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions |
| US6253261B1 (en) * | 1998-10-21 | 2001-06-26 | 3Dlabs Inc., Ltd. | System and method for direct memory access in a computer system |
| US6629164B1 (en) * | 1999-11-10 | 2003-09-30 | Digi International Inc. | Character counter and match registers in a serial interface |
| US6658503B1 (en) | 1999-12-07 | 2003-12-02 | Texas Instruments Incorporated | Parallel transfer size calculation and annulment determination in transfer controller with hub and ports |
| US6622183B1 (en) * | 2000-03-21 | 2003-09-16 | Lsi Logic Corporation | Data transmission buffer having frame counter feedback for re-transmitting aborted data frames |
| JP2002073527A (ja) * | 2000-08-25 | 2002-03-12 | Rohm Co Ltd | Dmaコントローラ |
| JP2003114864A (ja) * | 2001-10-04 | 2003-04-18 | Hitachi Ltd | データ転送制御回路 |
| JP2003141057A (ja) * | 2001-11-06 | 2003-05-16 | Mitsubishi Electric Corp | Dma転送制御回路 |
| JP4749657B2 (ja) * | 2003-03-20 | 2011-08-17 | パナソニック株式会社 | Dma制御装置 |
-
2006
- 2006-11-28 US US11/563,732 patent/US7433977B2/en not_active Expired - Fee Related
-
2007
- 2007-11-23 CN CN2007800440828A patent/CN101636721B/zh not_active Expired - Fee Related
- 2007-11-23 EP EP07822831A patent/EP2097828B1/en not_active Not-in-force
- 2007-11-23 AT AT07822831T patent/ATE478385T1/de not_active IP Right Cessation
- 2007-11-23 WO PCT/EP2007/062728 patent/WO2008065045A2/en not_active Ceased
- 2007-11-23 DE DE602007008614T patent/DE602007008614D1/de active Active
- 2007-11-23 ES ES07822831T patent/ES2349488T3/es active Active
- 2007-11-27 TW TW096145028A patent/TW200842592A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| US7433977B2 (en) | 2008-10-07 |
| ATE478385T1 (de) | 2010-09-15 |
| CN101636721A (zh) | 2010-01-27 |
| EP2097828A2 (en) | 2009-09-09 |
| DE602007008614D1 (de) | 2010-09-30 |
| US20080126612A1 (en) | 2008-05-29 |
| EP2097828B1 (en) | 2010-08-18 |
| WO2008065045A3 (en) | 2008-08-07 |
| WO2008065045A2 (en) | 2008-06-05 |
| TW200842592A (en) | 2008-11-01 |
| CN101636721B (zh) | 2011-10-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2349488T3 (es) | Controlador de acceso directo a memoria (dmac) para gestionar transferencias de longitudes desconocidas. | |
| US5918028A (en) | Apparatus and method for smart host bus adapter for personal computer cards | |
| US4942515A (en) | Serial communications controller with FIFO register for storing supplemental data and counter for counting number of words within each transferred frame | |
| JP2584957B2 (ja) | ホスト指示結合式の装置 | |
| US20040107265A1 (en) | Shared memory data transfer apparatus | |
| US20050097240A1 (en) | Supercharge message exchanger | |
| JP2004318901A (ja) | データ処理モジュール相互間の高速制御およびデータバスシステム | |
| US20020184453A1 (en) | Data bus system including posted reads and writes | |
| US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
| KR20040078110A (ko) | 직접 메모리 액세스(dma) 전송 버퍼 프로세서 | |
| US6728797B2 (en) | DMA controller | |
| JPS6375955A (ja) | プログラムモ−ド・アクセス制御方式 | |
| KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
| US20080147906A1 (en) | DMA Transferring System, DMA Controller, and DMA Transferring Method | |
| US20060149878A1 (en) | Efficient interrupt processing in systems with multiple serial protocol engines | |
| US20050198422A1 (en) | Data communication mechanism | |
| JP2536415B2 (ja) | Dma転送制御装置 | |
| US20050144338A1 (en) | Data transfer apparatus | |
| JPH03127154A (ja) | 転送制御システム | |
| KR100546085B1 (ko) | 직접 메모리 액세스를 이용한 직렬 포트 데이터 및 상태의 압축 및 복원 | |
| KR20040066311A (ko) | 직접 메모리 접근매체의 데이터 전송 장치 및 방법 | |
| KR20070060854A (ko) | 멀티 채널 직접 메모리 접근 제어기 | |
| KR100567147B1 (ko) | 데이터전송방법및장치 | |
| JPH0736806A (ja) | Dma方式 | |
| JP2823625B2 (ja) | データ処理装置 |