A system and method for reducing the number of memory accesses by a
hardware device to a descriptor memory is disclosed. Methods, systems and
articles of manufacture consistent with the present invention enable
software to embed a subsequent descriptor it is posting in the descriptor
memory into a current descriptor listed in the descriptor memory.
Additionally, hardware is configured to transmit a data packet associated
with the current descriptor to a recipient device. When hardware receives
an acknowledgment message from the recipient device associated with the
transmitted data packet, it fetches the current descriptor to update a
completion code within the current descriptor using a Read-Modify-Write
(RMW) transfer sequence. As part of the RMW memory operation, hardware may
use the embedded copy of the subsequent descriptor within the current
descriptor to transmit the next data packet associated with the subsequent
descriptor. This process avoids hardware from having to fetch the embedded
descriptor from the descriptor memory before transmitting the next data
packet.
Un système et une méthode pour ramener le nombre d'accès mémoire par un dispositif câblé à une mémoire de descripteur est révélé. Les méthodes, les systèmes et les articles de la fabrication conformés à la présente invention permettent au logiciel d'inclure un descripteur suivant qu'il signale dans la mémoire de descripteur dans un descripteur courant énuméré dans la mémoire de descripteur. En plus, le matériel est configuré pour transmettre un paquet de données lié au descripteur courant à un dispositif réceptif. Quand le matériel reçoit un message de reconnaissance du dispositif réceptif lié au paquet transmis de données, il cherche le descripteur courant pour mettre à jour un code anomalie dans le descripteur courant en utilisant un ordre de transfert de l'Lire-Modifier-Inscription (RMW). En tant qu'élément de l'opération de mémoire de RMW, le matériel peut employer la copie incluse du descripteur suivant dans le descripteur courant pour transmettre le prochain paquet de données lié au descripteur suivant. Ce processus évite le matériel de devoir chercher le descripteur inclus de la mémoire de descripteur avant de transmettre le prochain paquet de données.