发明名称 System method for deterministic message processing a direct memory access (DMA) adapter with head pointers and tail pointers for determining the in and out sequence of packets
摘要 Deterministic message processing in a direct memory access (DMA) adapter includes the DMA adapter incrementing from a sub-head pointer, a sub-tail pointer until encountering an out-of-sequence packet. The DMA adapter also consumes packets between the sub-head pointer and the sub-tail pointer including incrementing with the consumption of each packet, the sub-head pointer until determining that the sub-head pointer is equal to the sub-tail pointer. In response to determining that the sub-head pointer is equal to the sub-tail pointer, the DMA adapter determines whether the head pointer is pointing to the next in-sequence packet. If the head pointer is pointing to the next in-sequence packet, the DMA adapter resets the sub-head pointer and the sub-tail pointer to the head pointer. If the head pointer is not pointing to the next in-sequence packet, the DMA adapter resets the sub-head pointer and the sub-tail pointer to the next in-sequence packet.
申请公布号 US9170966(B2) 申请公布日期 2015.10.27
申请号 US201414270755 申请日期 2014.05.06
申请人 International Business Machines Corporation 发明人 Blocksome Michael A.
分类号 G06F13/00;G06F13/30 主分类号 G06F13/00
代理机构 Kennedy Lenart Spraggins LLP 代理人 Lenart Edward J.;Nock James R.;Kennedy Lenart Spraggins LLP
主权项 1. A method of deterministic message processing in a direct memory access (DMA) adapter, the DMA adapter utilizing a first-in-first-out (FIFO) message queue for processing packets received by the DMA adapter, the DMA adapter using a head pointer, a tail pointer, a sub-head pointer, and a sub-tail pointer to point to particular packets within the FIFO message queue, the method comprising iteratively performing the following steps by a DMA adapter: incrementing from the sub-head pointer, the sub-tail pointer until encountering an out-of-sequence packet; consuming packets between the sub-head pointer and the sub-tail pointer including incrementing with the consumption of each packet, the sub-head pointer until determining that the sub-head pointer is equal to the sub-tail pointer; in response to determining that the sub-head pointer is equal to the sub-tail pointer, determining whether the head pointer is pointing to the next in-sequence packet; if the head pointer is pointing to the next in-sequence packet, resetting the sub-head pointer and the sub-tail pointer to the head pointer; and if the head pointer is not pointing to the next in-sequence packet, resetting the sub-head pointer and the sub-tail pointer to the next in-sequence packet.
地址 Armonk NY US