A method and apparatus for directly creating a buffer of contiguous payload
data from an incoming variable-length data stream utilizes a host
controller for providing direct memory access (DMA) to a host computer
memory. Payload data and header data from the data stream are stored
contiguously in separate buffers in host memory. DMA descriptors, through
appropriate software drivers, instruct the DMA engine of host controller
to separate payload data and header data of each incoming packet on the
data stream and place it in respective buffers in host memory. Thus, two
separate logical buffers may be directly created from a single incoming
logical variable-length data stream. Payload data is written directly and
contiguously to host memory without the need for memory copies and the
associated use of main processor resources.
Une méthode et un appareil pour créer directement un amortisseur des données contiguës de charge utile d'un flux de données de longueur variable entrant utilise un contrôleur de centre serveur pour fournir l'accès mémoire direct (DMA) à une mémoire d'ordinateur principal. Des données de charge utile et les données d'en-tête du flux de données sont stockées contiguously dans les amortisseurs séparés dans la mémoire de centre serveur. Les descripteurs de DMA, par les conducteurs de logiciel appropriés, demandent au moteur de DMA du contrôleur de centre serveur pour séparer des données de charge utile et des données d'en-tête de chaque paquet entrant sur le flux de données et pour les placer dans les amortisseurs respectifs dans la mémoire de centre serveur. Ainsi, deux amortisseurs logiques séparés peuvent être directement créés d'un flux de données de longueur variable logique entrant simple. Des données de charge utile sont écrites directement et contiguously à la mémoire de centre serveur sans besoin de copies de mémoire et d'utilisation associée des ressources principales de processeur.