DMA UNIFICADO.

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, caracterizado porque el controlador (14) de DMA está configurado para escribir el resultado en el espacio de direcciones en el anfitrión (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

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2006/038081.

Solicitante: APPLE INC..

Nacionalidad solicitante: Estados Unidos de América.

Dirección: 1 INFINITE LOOP CUPERTINO, CA 95014 ESTADOS UNIDOS DE AMERICA.

Inventor/es: WADHAWAN,Ruchi , GO,Dominic, HAYTER,Mark,D, CHEN,Zongijan, KU,Weichun.

Fecha de Publicación: .

Fecha Solicitud PCT: 29 de Septiembre de 2006.

Clasificación Internacional de Patentes:

  • G06F13/28 FISICA.G06 CALCULO; CONTEO.G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 13/00 Interconexión o transferencia de información u otras señales entre memorias, dispositivos de entrada/salida o unidades de procesamiento (circuitos de interfaz para dispositivos de entrada/salida específicos G06F 3/00; sistemas multiprocesadores G06F 15/16). › utilizando la transferencia por ráfaga, p. ej. acceso directo a la memoria, robo de ciclo (G06F 13/32 tiene prioridad).

Clasificación PCT:

  • G06F13/28 G06F 13/00 […] › utilizando la transferencia por ráfaga, p. ej. acceso directo a la memoria, robo de ciclo (G06F 13/32 tiene prioridad).

Países PCT: Austria, Bélgica, Suiza, Alemania, Dinamarca, España, Francia, Reino Unido, Grecia, Italia, Liechtensein, Luxemburgo, Países Bajos, Suecia, Mónaco, Portugal, Irlanda, Eslovenia, Finlandia, Rumania, Chipre, Lituania, Letonia.

PDF original: ES-2369715_T3.pdf

 


Fragmento de la descripción:

Esta invención se refiere al campo de circuitos integrados y, más específicamente, al acceso directo a memoria (DMA) en sistemas que comprenden uno o más circuitos integrados. Descripción de la técnica relacionada En un sistema típico que incluye uno o más procesadores, memoria y dispositivos o interfaces de entrada/salida (E/S), las transferencias de acceso directo a memoria (DMA) se utilizan a menudo para transferir datos entre la E/S y la memoria. En algunos sistemas, se incluyen circuitos individuales de DMA en cada dispositivo o interfaz de E/S que usa el DMA. En otros sistemas, uno o más dispositivos de E/S pueden compartir circuitos de DMA. Algunos sistemas también incluyen un acarreador de datos que puede usarse para copiar datos desde un área de memoria a otra. El acarreador de datos puede descargar a los procesadores, que en caso contrario tendrían que ejecutar instrucciones para llevar a cabo el movimiento de datos (por ejemplo, leer y escribir datos con el ancho que usa el procesador, habitualmente de 32 bits o 64 bits a la vez). El modelo de programación para el acarreador de datos es habitualmente distinto al modelo de programación de DMA, que está acondicionado para la comunicación entre los dispositivos de E/S y la memoria. El documento US 2004/0064600 A1 divulga un controlador de disco con acceso directo a memoria usado en operaciones de transferencia de datos asistidas por hardware, que incluye lógica receptora de comandos para recibir un comando de transferencia de datos emitido por un procesador. El documento WO 2004/010314 A2 proporciona un procedimiento, sistema y programa para un sistema de bus local acoplado con un puerto, que está asociado a un espacio de direcciones de memoria. RESUMEN DE LA INVENCIÓN En una forma de realización, un aparato comprende un primer circuito de interfaz, un controlador de acceso directo a memoria (DMA) acoplado con el primer circuito de interfaz y un anfitrión acoplado con el controlador de DMA. El primer circuito de interfaz está configurado para comunicarse por una interfaz según un protocolo. El anfitrión comprende al menos un espacio de direcciones mapeado, al menos en parte, a una pluralidad de ubicaciones de memoria en un sistema de memoria del anfitrión. El controlador de DMA está configurado para llevar a cabo transferencias de DMA entre el primer circuito de interfaz y el espacio de direcciones, y el controlador de DMA está adicionalmente configurado para llevar a cabo transferencias de DMA entre una primera pluralidad de la pluralidad de ubicaciones de memoria y una segunda pluralidad de la pluralidad de ubicaciones de memoria. También se contempla un procedimiento. La invención es según lo definido por las reivindicaciones independientes adjuntas 1 y 9. BREVE DESCRIPCIÓN DE LOS DIBUJOS La siguiente descripción detallada hace referencia a los dibujos adjuntos, que se describen ahora brevemente. La Fig. 1 es un diagrama de bloques de una forma de realización de un sistema. La Fig. 2 es un diagrama de bloques de una forma de realización de un controlador de DMA mostrado en la Fig. 1. La Fig. 3 es un diagrama de bloques de una forma de realización de un motor de descarga mostrado en la Fig. 2. La Fig. 4 es un diagrama de bloques de una forma de realización del DMA en el sistema de la Fig. 1. La Fig. 5 es un diagrama de bloques de una forma de realización de anillos descriptores y anillos de punteros de memoria intermedia. La Fig. 6 es un diagrama de flujo que ilustra el funcionamiento de una forma de realización de un motor de precaptura de recepción mostrado en la Fig. 2. La Fig. 7 es un diagrama de flujo que ilustra el funcionamiento de una forma de realización de un circuito de control de recepción mostrado en la Fig. 2. 2   La Fig. 8 es un diagrama de flujo que ilustra la operación de precaptura de una forma de realización de un circuito de control de transmisión mostrado en la Fig. 2. La Fig. 9 es un diagrama de flujo que ilustra la operación de transmisión de una forma de realización de un circuito de control de transmisión mostrado en la Fig. 2. La Fig. 10 es un diagrama de bloques que ilustra un anillo descriptor con un descriptor de control incluido con los descriptores de transferencia. La Fig. 11 es un diagrama de flujo que ilustra una forma de realización del procesamiento de descriptores de control. La Fig. 12 es un diagrama de bloques que ilustra una forma de realización de un descriptor de DMA de recepción. La Fig. 13 es un diagrama de bloques que ilustra una forma de realización de un descriptor DMA de transmisión. La Fig. 14 es un diagrama de bloques que ilustra una forma de realización de un descriptor de copia de DMA. La Fig. 15 es un diagrama de bloques de una forma de realización de un descriptor de descarga de DMA. La Fig. 16 es un diagrama de bloques de una forma de realización de un descriptor de control. La Fig. 17 es un diagrama de bloques de una forma de realización de un generador de sumas de control mostrado en la Fig. 3. La Fig. 18 es un diagrama de bloques de una forma de realización de un sumador completo mostrado en la Fig. 17. Si bien la invención es susceptible a diversas modificaciones y formas alternativas, las formas de realización específicas de la misma se muestran a modo de ejemplo en los dibujos y se describirán en detalle en el presente documento. Debería entenderse, sin embargo, que los dibujos y la descripción detallada para los mismos no están concebidos para limitar la invención a la forma específica revelada, sino que, por el contrario, la intención es cubrir todas las modificaciones, equivalentes y alternativas que caigan dentro del espíritu y el alcance de la presente invención, según lo definido por las reivindicaciones adjuntas. DESCRIPCIÓN DETALLADA Pasando ahora a la Fig. 1, se muestra un diagrama de bloques de una forma de realización de un sistema 10. En la forma de realización ilustrada, el sistema 10 incluye un anfitrión 12, un controlador 14 de DMA, circuitos 16 de interfaz y una capa de interfaz física (PHY) 36. El controlador 14 de DMA está acoplado con el anfitrión 12 y los circuitos 16 de interfaz. Los circuitos 16 de interfaz están adicionalmente acoplados con la capa 36 de interfaz física. En la realización ilustrada, el anfitrión 12 incluye uno o más procesadores tales como los procesadores 18A-18B, uno o más controladores de memoria tales como los controladores 20A-20B de memoria, un puente de E/S (IOB) 22, una memoria de E/S (IOM) 24, una memoria temporal de E/S (IOC) 26, una memoria temporal 28 de nivel 2 (L2) y una interconexión 30. Los procesadores 18A-18B, los controladores 20A-20B de memoria, el IOB 22 y la memoria temporal 28 de L2 están acoplados con la interconexión 30. El IOB 22 está adicionalmente acoplado con la IOC 26 y la IOM 24. El controlador 14 de DMA también está acoplado con el IOB 22 y la IOM 24. En la forma de realización ilustrada, los circuitos 16 de interfaz incluyen un controlador 32 de interfaz periférica y uno o más circuitos de control de acceso al medio (MAC), tales como los MAC 34A- 34B. Los MAC 34A-34B están acoplados con el controlador 14 de DMA y con la capa 36 de interfaz física. El controlador 32 de interfaz periférica también está acoplado con el puente 22 de E/S y la memoria 34 de E/S (y por tanto indirectamente acoplado con el controlador 14 de DMA) y con la capa 36 de interfaz física. Tanto el controlador 32 de interfaz periférica como los MAC 34A-34C incluyen registros 38A-38C de configuración. En algunas formas de realización, los componentes del sistema 10 pueden integrarse sobre un único circuito integrado, como un sistema en un chip. En otras formas de realización, el sistema 10 puede implementarse como dos o más circuitos integrados. El anfitrión 12 puede comprender uno o más espacios de direcciones. Al menos una parte de un espacio de direcciones en el anfitrión 12 puede mapearse a ubicaciones de memoria en el anfitrión 12. Es decir, el anfitrión 12 puede comprender un sistema de memoria mapeado a direcciones en el espacio de direcciones del anfitrión. Por ejemplo, cada uno de los controladores 20A-20B de memoria puede acoplarse con memoria (no mostrada) que comprende las ubicaciones de memoria mapeadas en el espacio de direcciones. En algunos casos, la totalidad del espacio de direcciones puede mapearse a las ubicaciones de memoria. En otros casos, algo del espacio de direcciones puede ser E/S mapeada a memoria (por ejemplo, la interfaz periférica controlada por el controlador 32 de interfaz periférica puede incluir alguna E/S mapeada a memoria). El controlador 14 de DMA está configurado para llevar a cabo transferencias de DMA entre los circuitos 16 de interfaz y el espacio de direcciones del anfitrión. En particular, las transferencias de DMA pueden ser entre ubicaciones de memoria a las cuales está mapeado el espacio de direcciones y... [Seguir leyendo]

 


Reivindicaciones:

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, caracterizado porque el controlador (14) de DMA está configurado para escribir el resultado en el espacio de direcciones en el anfitrión (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. El controlador (14) de acceso directo a memoria (DMA) según recitado en la reivindicación 1, que comprende: un circuito (56) de control de transmisión configurado para leer los primeros datos de DMA; el motor (44) de descarga acoplado para recibir los primeros datos de DMA desde el circuito (56) de control de transmisión; y un circuito (58) de control de recepción acoplado con el motor (44) de descarga para recibir el resultado, en el que el circuito (58) de control de recepción está configurado para escribir el resultado en el espacio de direcciones en el anfitrión (12) según la estructura (112A-112N) de datos de descriptor de DMA que describe la transferencia de DMA, y en el que el circuito (58) de control de recepción está adicionalmente configurado para escribir datos recibidos desde el circuito (16) de interfaz en el espacio de direcciones. 3. El controlador (14) de DMA según recitado en la reivindicación 2, en el que la primera operación transforma los primeros datos de DMA en segundos datos de DMA, y en el que el motor (44) de descarga está acoplado con el circuito (58) de control de recepción y está configurado para proporcionar los segundos datos de DMA al circuito (58) de control de recepción. 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. 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. 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. 7. El controlador (14) de DMA según recitado en la reivindicación 6, 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. 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. 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); 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; 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 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 escribir los datos recibidos desde el circuito (16) de interfaz en el espacio de direcciones. 10. El procedimiento según recitado en la reivindicación 9, en el que la primera operación transforma los primeros datos de DMA en segundos datos de DMA, y el procedimiento comprende adicionalmente escribir los segundos datos de DMA en el espacio de direcciones. 11. El procedimiento según recitado en cualquiera de las reivindicaciones 9 ó 10, en el que la primera operación comprende encriptación. 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. 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. 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. 26   27   Memorias Memorias Circuito de bucle de ensayo 28 Punteros de Memoria intermedia Memorias Punteros de Memoria intermedia Cola FIFO de bucle de ensayo   Memoria intermedia Seguridad Mapeo 29 Memoria intermedia   Sz Sz Sz Sz Sz Sz Sz Sz Sz Sz   memoria intermedia (n) punteros de memoria intermedia Precapturar puntero(s) de memoria intermedia 31 Memoria intermedia Seleccionar próximo puntero de memoria intermedia Grabar datos en memoria intermedia Memoria intermedia llena Grabar puntero de memoria intermedia en descriptor   Dotar puntero(s) de memoria intermedia de destino con datos 32 Canal=bucle de ensayo? Transmitir datos a interfaz de destino/componen te de bucle de ensayo   33   mapeo 34 mapeo? memoria intermedia     36   37

 

Patentes similares o relacionadas:

Sistema de procesamiento de datos y método de procesamiento de datos, del 1 de Enero de 2020, de HUAWEI TECHNOLOGIES CO., LTD.: Un sistema de procesamiento de datos , que comprende una unidad central de procesamiento, CPU , una memoria , un controlador […]

Solución Ethernet universal, del 2 de Octubre de 2019, de SCHNEIDER ELECTRIC INDUSTRIES SAS: Un circuito integrado monolítico , que comprende: al menos un núcleo de procesador de aplicaciones utilizable para ejecutar una aplicación industrial y código de […]

Comunicación de audio multicanal en un sistema de bus multimedia inter-chip serie de baja potencia (SLIMbus), del 28 de Marzo de 2019, de QUALCOMM INCORPORATED: Una fuente de audio que comprende: un puerto de salida multicanal (302(X)) configurado para ser acoplado a un bus de multiplexado por división de tiempo, TDM, que comprende […]

Método de migración en directo de máquina virtual, método de procesamiento de datos de memoria de máquina virtual, servidor y sistema de máquina virtual, del 27 de Marzo de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de procesamiento de datos de memoria de máquina virtual, aplicado a un sistema de máquina virtual, en donde el sistema de máquina virtual comprende una […]

Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo, del 26 de Octubre de 2018, de HUAWEI TECHNOLOGIES CO., LTD.: Un proxy de acceso, en donde el proxy de acceso se aplica a un sistema informático, el sistema informático comprende un procesador y un bus de interconexión […]

Imagen de 'Método de lectura/escritura de fichero y terminal móvil'Método de lectura/escritura de fichero y terminal móvil, del 14 de Diciembre de 2015, de HUAWEI DEVICE CO., LTD: Un método de lectura/escritura de fichero utilizado en un terminal móvil, que comprende: determinar si un fichero objeto de lectura […]

Sistema y método para permitir la extracción rápida de datos de imagen entrelazados, del 3 de Diciembre de 2014, de Core Wireless Licensing S.a.r.l: Método de procesado de una unidad de datos entrelazados que incluye una pluralidad de fragmentos de datos de un primer tipo y una pluralidad de […]

Adaptadores de habilitación/deshabilitación de un entorno de ordenadores, del 12 de Febrero de 2014, de INTERNATIONAL BUSINESS MACHINES CORPORATION: Un método para habilitar adaptadores en un entorno de ordenadores, que comprende las etapas de: responder para ejecutar una instrucción de Procesador Lógico de […]

Utilizamos cookies para mejorar nuestros servicios y mostrarle publicidad relevante. Si continua navegando, consideramos que acepta su uso. Puede obtener más información aquí. .