Nova Patents
ES2369715T3

Unified dma

Abstract

A direct memory access (DMA) controller (14) configured to read first DMA data from an address space on a host (12) and to provide the first DMA data either to a download engine (44) in the DMA controller (14) or an interface circuit (16), dependent on a channel to which the DMA transfer is assigned, wherein the first DMA data is read from a first plurality of memory locations in a memory coupled with a memory controller (20A-20B) within the host (12), in which the first plurality of memory locations are mapped to the address space on the host (12), wherein the unloading engine (44) is configured to carry out at least a first operation on the first DMA data in order to produce a sensitive result to the reception of the first DMA data, in which the motor ( 44) Download is configured to initiate at least the first operation during a DMA transfer that provides the first DMA data to the download engine (44), characterized in that the DMA controller (14) is configured to write the result in the address space on the host (12) according to a DMA descriptor data structure (112A-112N) describing the DMA transfer, and in the that the result is written to one or more second memory locations in the memory coupled with the memory controller (20A-20B) within the host (12), in which the second memory locations are mapped to the address space on the host (12), and in which the structure (112A-112N) of DMA descriptor data is stored in memory and read from memory by the controller (14) of DMA, and in which the DMA controller is additionally configured to write data received from the interface circuit in the address space.

ES2369715T3, drawing sheet 1
Sheet 1 of 11

Term

0 yearsto projected expiry

Projected expiry 29 September 2026, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

14 claims: 10 independent, 4 dependent

  1. 1
    CLAIMS REIVINDICACIONES 1. A direct memory access (DMA) controller (14) configured to read first DMA data from an address space on a host (12) and to provide the first DMA data either to a download engine (44) in the DMA controller (14) or an interface circuit (16), dependent on a channel to which the DMA transfer is assigned, 1. Un controlador (14) de acceso directo a memoria (DMA) configurado para leer primeros datos de DMA desde un espacio de direcciones en un anfitrión (12) y para proporcionar los primeros datos de DMA bien a un motor (44) de descarga en el controlador (14) de DMA o bien a un circuito (16) de interfaz, dependiente de un canal al cual está asignada la transferencia de DMA, en el que los primeros datos de DMA se leen desde una primera pluralidad de ubicaciones de memoria en una memoria acoplada con un controlador (20A-20B) de memoria dentro del anfitrión (12), en el que la primera pluralidad de ubicaciones de memoria están mapeadas al espacio de direcciones en el anfitrión (12), en el que el motor (44) de descarga está configurado para llevar a cabo al menos una primera operación sobre los primeros datos de DMA a fin de producir un resultado sensible a la recepción de los primeros datos de DMA, en el que el motor (44) de descarga está configurado para iniciar al menos el llevar a cabo de la primera operación durante una transferencia de DMA que proporciona los primeros datos de DMA al motor (44) de descarga, wherein the first DMA data is read from a first plurality of memory locations in a memory coupled with a memory controller (20A-20B) within the host (12), in which the first plurality of memory locations are mapped to the address space on the host (12), wherein the unloading engine (44) is configured to carry out at least a first operation on the first DMA data in order to produce a sensitive result to the reception of the first DMA data, in which the motor ( 44) Download is configured to initiate at least the first operation during a DMA transfer that provides the first DMA data to the download engine (44), caracterizado porque characterized because el controlador (14) de DMA está configurado para escribir el resultado en el espacio de direcciones en el anfitrión the DMA controller (14) is configured to write the result in the address space on the host (12) according to a DMA descriptor data structure (112A-112N) describing the DMA transfer, and in which the result is written to one or more second memory locations in the memory coupled with the controller (20A- 20B) of memory within the host (12), in which the second memory locations are mapped to the address space on the host (12), and wherein the structure (112A-112N) of DMA descriptor data is stored in memory and read from memory by the DMA controller (14), and in which the DMA controller is additionally configured to write received data from the interface circuit in the address space. (12) según una estructura (112A-112N) de datos de descriptor de DMA que describe la transferencia de DMA, y en el que el resultado se escribe en una o más segundas ubicaciones de memoria en la memoria acoplada con el controlador (20A-20B) de memoria dentro del anfitrión (12), en el que las segundas ubicaciones de memoria están mapeadas al espacio de direcciones en el anfitrión (12), y en el que la estructura (112A-112N) de datos de descriptor de DMA se almacena en memoria y es leída desde memoria por el controlador (14) de DMA, y en el que el controlador de DMA está adicionalmente configurado para escribir datos recibidos desde el circuito de interfaz en el espacio de direcciones.
  2. 4
    El controlador (14) de DMA según recitado en cualquiera de las reivindicaciones 1 a 3, en el que la primera operación comprende encriptación. 4. The DMA controller (14) as recited in any one of claims 1 to 3, wherein the first operation comprises encryption.
  3. 5
    El controlador (14) de DMA según recitado en cualquiera de las reivindicaciones 1 a 4, en el que el motor (44) de descarga está adicionalmente configurado para aplicar una función de mapeo a los primeros datos de DMA, y en el que el resultado comprende la salida de la función de mapeo. 5. The DMA controller (14) as recited in any one of claims 1 to 4, wherein the unloading motor (44) is additionally configured to apply a mapping function to the first DMA data, and in which the result It includes the output of the mapping function.
  4. 6
    El controlador (14) de DMA según recitado en cualquiera de las reivindicaciones 1 a 5, en el que el resultado se almacena en una estructura (112A-112N) de datos de descriptor de DMA que corresponde a los primeros datos de DMA. 6. The DMA controller (14) as recited in any one of claims 1 to 5, wherein the result is stored in a DMA descriptor data structure (112A-112N) corresponding to the first DMA data.
  5. 8
    El controlador (14) de DMA según recitado en cualquiera de las reivindicaciones 2 a 7, que comprende adicionalmente un circuito (50) de O exclusivo (XOR), en el que el circuito (58) de control de transmisión está configurado para leer datos desde una pluralidad de canales y proporcionar los datos al circuito XOR, en el que el circuito XOR está configurado para XOR sobre los datos a fin de producir el resultado. 8. The DMA controller (14) as recited in any of claims 2 to 7, further comprising an exclusive O circuit (50) (XOR), wherein the transmission control circuit (58) is configured to read data from a plurality of channels and provide the data to the XOR circuit, in which the XOR circuit is configured for XOR over the data in order to produce the result.
  6. 9
    A procedure comprising:9. Un procedimiento que comprende: leer primeros datos de DMA desde una primera pluralidad de ubicaciones de memoria en una memoria acoplada con un controlador (20A-20B) de memoria dentro del anfitrión (12) en un controlador (14) de DMA, en el que la primera pluralidad de ubicaciones de memoria están mapeadas al espacio de direcciones en el anfitrión (12);read first DMA data from a first plurality of memory locations in a memory coupled with a memory controller (20A-20B) within the host (12) on a DMA controller (14), in which the first plurality of locations of memory are mapped to the address space on the host (12);proporcionar los primeros datos de DMA bien a un motor (44) de descarga en el controlador (14) de DMA o bien a un circuito (16) de interfaz, dependiente de un canal al cual está asignada la transferencia de DMA;providing the first DMA data either to a download engine (44) in the DMA controller (14) or to an interface circuit (16), dependent on a channel to which the DMA transfer is assigned;carry out at least a first operation on the first DMA data to produce a result in the download engine (44), sensitive to the reception by the download engine (44) of the first DMA data, in which the Download engine (44) is configured to begin at least performing the first operation during a DMA transfer that provides the first DMA data to the download engine (44);llevar a cabo al menos una primera operación sobre los primeros datos de DMA para producir un resultado en el motor (44) de descarga, sensible a la recepción por el motor (44) de descarga de los primeros datos de DMA, en el que el motor (44) de descarga está configurado para comenzar al menos a llevar a cabo la primera operación durante una transferencia de DMA que proporciona los primeros datos de DMA al motor (44) de descarga;caracterizado por characterized by escribir el resultado del controlador (14) de DMA en una o más segundas ubicaciones de memoria en la memoria acoplada con el controlador (20A-20B) de memoria dentro del anfitrión (12), en el que las segundas ubicaciones de memoria están mapeadas al espacio de direcciones en el anfitrión (12), y en el que la escritura es según una estructura (112A-112N) de datos de descriptor de DMA que describe la transferencia de DMA, y en el que la estructura (112A-112N) de datos de descriptor de DMA está almacenada en memoria y es leída desde memoria por el controlador (14) de DMA;y write the result of the DMA controller (14) in one or more second memory locations in the memory coupled with the memory controller (20A-20B) within the host (12), in which the second memory locations are mapped to the address space in the host (12), and in which the writing is according to a DMA descriptor data structure (112A-112N) describing the DMA transfer, and wherein the structure (112A-112N) of DMA descriptor data is stored in memory and is read from memory by the DMA controller (14);and escribir los datos recibidos desde el circuito (16) de interfaz en el espacio de direcciones. write the data received from the interface circuit (16) in the address space.
  7. 11
    El procedimiento según recitado en cualquiera de las reivindicaciones 9 ó 10, en el que la primera operación comprende encriptación. 11. The method as recited in any of claims 9 or 10, wherein the first operation comprises encryption.
  8. 12
    El procedimiento según recitado en cualquiera de las reivindicaciones 9 a 11, que comprende adicionalmente aplicar una función de mapeo a los primeros datos de DMA en el motor (44) de descarga, y en el que el resultado comprende la salida de la función de mapeo. 12. The method as recited in any of claims 9 to 11, further comprising applying a mapping function to the first DMA data in the unloading motor (44), and wherein the result comprises the output of the mapping function .
  9. 13
    El procedimiento según recitado en cualquiera de las reivindicaciones 9 a 12, en el que el resultado se almacena en una estructura (112A-112N) de datos de descriptor de DMA que corresponde a los primeros datos de DMA, y en el que la primera operación es una entre una función de mapeo, una generación de control de redundancia cíclico o una generación de suma de control. 13. The method as recited in any of claims 9 to 12, wherein the result is stored in a DMA descriptor data structure (112A-112N) corresponding to the first DMA data, and in which the first operation it is one between a mapping function, a generation of cyclic redundancy control or a generation of control sum.
  10. 14
    El procedimiento según recitado en cualquiera de las reivindicaciones 9 a 13, que comprende adicionalmente leer datos desde una pluralidad de canales y efectuar O exclusivo (XOR) sobre los datos a fin de producir el resultado. 14. The method as recited in any of claims 9 to 13, further comprising reading data from a plurality of channels and performing exclusive O (XOR) on the data in order to produce the result. Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz Channel = test loop? ¿Canal=bucle de ensayo? Dotar puntero(s) de memoria intermedia de destino con datos Provide target buffer pointer (s) with data Transmit data to target interface / test loop component Transmitir datos a interfaz de destino/componente de bucle de ensayo mapeo? memoria intermedia mapeo mapping? buffer memory mapping