Scatter gather emulation
AssigneeIntel Corporation
InventorSteven Mcgowan
Life of this patent
Estimating the term…
Abstract
Systems and methods may provide for receiving a scatter/gather list that identifies a contiguous data block in a physical memory, and splitting the contiguous data block into a first data packet payload and a second data packet payload based on a target packet size. Additionally, another contiguous data block can be combined into one of the first and second data packet payloads based on the target packet size, wherein the first and second data packet payloads may be transferred in a data stream through a host interface that does not support scatter/gather lists. In one example, a software driver is used to split and combine the contiguous data blocks.
Claims30
A computer implemented method comprising:
- receiving a scatter/gather list that identifies a plurality of contiguous data blocks in a physical memory, wherein the plurality of contiguous data blocks correspond to one or more of a virtual memory block and an application data structure, each entry in the scatter/gather list identifies a start address and size of each of the plurality of contiguous data blocks, and a start address of a first contiguous data block of the plurality of contiguous data blocks is not page aligned;
- using a driver to incorporate the first contiguous data block into a first data packet payload based on a target packet size defined by a packet header associated with the scatter/gather list;
- using a driver to split a second contiguous data block of the plurality of contiguous data blocks into the first data packet payload and a second data packet payload based on the target packet size;
- and
- transferring the first and second data packet payloads in a data stream through a host interface that does not support scatter/gather lists.
A system comprising:
- a physical memory;
- a host interface that does not support scatter/gather lists;
- and
- logic to,
- receive a scatter/gather list that identifies a contiguous data block in the physical memory,
- split the contiguous data block into a first data packet payload and a second data packet payload based on a target packet size, and
- transfer the first and second data packet payloads in a data stream through the host interface.
A computer readable storage medium comprising a set of instructions which, if executed by a processor, cause a computer to:
- receive a scatter/gather list that identifies a contiguous data block in a physical memory;
- split the contiguous data block into a first data packet payload and a second data packet payload based on a target packet size;
- and
- transfer the first and second data packet payloads in a data stream through a host interface that does not support scatter/gather lists.
A computer implemented method comprising:
- receiving a scatter/gather list that identifies a first contiguous data block and a second contiguous data block in a physical memory;
- concatenating the first contiguous data block and the second contiguous data block into a first data packet payload based on a target packet size;
- and
- transferring the first data packet payload in a data stream through a host interface that does not support scatter/gather lists.
Dependencies are inferred from the claim text.