LOW LATENCY DEVICE INTERCONNECT USING REMOTE MEMORY ACCESS WITH SEGMENTED QUEUES
A writing application on a computing device can reference a tail pointer to write messages to message buffers that a peer-to-peer data link replicates in memory of another computing device. The message buffers are divided into at least two queue segments, where each segment has several buffers. Mess...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Patent |
Sprache: | eng ; fre |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | A writing application on a computing device can reference a tail pointer to write messages to message buffers that a peer-to-peer data link replicates in memory of another computing device. The message buffers are divided into at least two queue segments, where each segment has several buffers. Messages are read from the buffers by a reading application on one of the computing devices using an advancing head pointer by reading a message from a next message buffer when determining that the next message buffer has been newly written. The tail pointer is advanced from one message buffer to another within a same queue segment after writing messages. The tail pointer is advanced from a message buffer of a current queue segment to a message buffer of a next queue segment when determining that the head pointer does not indicate any of the buffers of the next queue segment.
Selon l'invention, une application d'écriture sur un dispositif informatique peut se rapporter à un pointeur de queue pour écrire des messages dans des tampons de messages qu'une liaison de données poste à poste duplique dans une mémoire d'un autre dispositif informatique. Les tampons de messages sont divisés en au moins deux segments de file d'attente, chaque segment comprenant plusieurs tampons. Des messages sont lus dans les tampons par une application de lecture sur l'un des dispositifs informatiques à l'aide d'un pointeur de tête progressif par lecture d'un message dans un tampon de messages suivant lorsqu'il est déterminé que le tampon de messages suivant a été nouvellement écrit. Le pointeur de queue est fait avancer d'un tampon de messages à un autre dans un même segment de file d'attente après écriture de messages. Le pointeur de queue est fait avancer d'un tampon de messages d'un segment de file d'attente courant à un tampon de messages d'un segment de file d'attente suivant lorsqu'il est déterminé que le pointeur de tête n'indique aucun des tampons du segment de file d'attente suivant. |
---|