# US 8,751,701 B2 · Host channel adapter with pattern-type DMA

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,751,701 B2
- Document ID: US8751701B2
- Status: Granted
- Kind: B2
- Application number: 13/337,178
- Filed: 2011-12-26
- Published: 2013-06-27
- Granted: 2014-06-10
- Earliest claimed: 2011-12-26
- Assignees: Mellanox Technologies, Ltd.
- Applicants: Ariel Shahar; Noam Bloch; Adi Fuchs
- Inventors: Ariel Shahar; Noam Bloch; Adi Fuchs
- Web page: https://patentgrep.com/patent/US8751701B2

## CPC

- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An input/output (I/O) device includes a memory buffer and off-loading hardware. The off-loading hardware is configured to accept from a host a scatter/gather list including one or more entries. The entries include at least a pattern-type entry that specifies a period of a periodic pattern of addresses that are to be accessed in a memory of the host. The off-loading hardware is configured to transfer data between the memory buffer of the I/O device and the memory of the host by accessing the addresses in the memory of the host in accordance with the periodic pattern at intervals indicated in the period.

## Claims

### Claim 1

An input/output (I/O) device, comprising:
a memory buffer; and
off-loading hardware, which is configured to accept from a host a scatter/gather list comprising one or more entries, including at least a pattern-type entry that specifies a period of a two or more periodic patterns of addresses nested in one another, which are to be accessed in a memory of the host, and to transfer data between the memory buffer of the I/O device and the memory of the host by accessing the addresses in the memory of the host in accordance with the periodic patterns at intervals indicated in the period.

### Claim 2 (depends on 1)

The device according to claim 1, wherein the off-loading hardware is configured to access the addresses by scanning the nested periodic patterns.

### Claim 3 (depends on 1)

The device according to claim 1, wherein, by accessing the addresses in accordance with the periodic patterns, the off-loading hardware is configured to access a partial subset of columns of a matrix that is stored, row after row, in a sequential range of the addresses.

### Claim 4 (depends on 1)

The device according to claim 1, wherein, by accessing the addresses in accordance with the periodic patterns, the off-loading hardware is configured to access a partial sub-range of a multi-dimensional data structure that is stored in a sequential range of the addresses.

### Claim 5 (depends on 1)

The device according to claim 1, wherein, by accessing the addresses in accordance with the periodic patterns, the off-loading hardware is configured to interleave two or more data structures that are stored in separate address ranges in the memory of the host.

### Claim 6 (depends on 1)

The device according to claim 1, wherein the scatter/gather list further comprises one or more single-range entries that specify respective contiguous address ranges that are to be accessed in the memory of the host, and wherein the off-loading hardware is configured to distinguish between the pattern-type entry and the single-range entries.

### Claim 7 (depends on 1)

The device according to claim 1, wherein the intervals specify respective offsets relative to a beginning of the period, at which the addresses are to be accessed.

### Claim 8 (depends on 7)

The device according to claim 7, wherein the pattern-type entry specifies a respective number of the addresses that are to be accessed at each of the offsets.

### Claim 9 (depends on 1)

The device according to claim 1, wherein the pattern-type entry specifies a length of the period.

### Claim 10 (depends on 1)

The device according to claim 1, wherein the pattern-type entry specifies a number of times the period is repeated in the periodic patterns.

### Claim 11 (depends on 1)

The device according to claim 1, wherein a size of the pattern-type entry is independent of a number of times the period is repeated in the periodic patterns.

### Claim 12

A method, comprising:
in an input/output (I/O) device, accepting from a host a scatter/gather list comprising one or more entries, including at least a pattern-type entry that specifies a period of a two or more periodic patterns of addresses nested in one another, which are to be accessed in a memory of the host; and
transferring data between the I/O device and the memory of the host by accessing the addresses in the memory of the host in accordance with the periodic patterns at intervals indicated in the period.

### Claim 13 (depends on 12)

The method according to claim 12, wherein accessing the addresses comprises scanning the nested periodic patterns.

### Claim 14 (depends on 12)

The method according to claim 12, wherein accessing the addresses in accordance with the periodic patterns comprises accessing a partial subset of columns of a matrix that is stored, row after row, in a sequential range of the addresses.

### Claim 15 (depends on 12)

The method according to claim 12, wherein accessing the addresses in accordance with the periodic patterns comprises accessing a partial sub-range of a multi-dimensional data structure that is stored in a sequential range of the addresses.

### Claim 16 (depends on 12)

The method according to claim 12, wherein accessing the addresses in accordance with the periodic patterns comprises interleaving two or more data structures that are stored in separate address ranges in the memory of the host.

### Claim 17 (depends on 12)

The method according to claim 12, wherein the scatter/gather list further comprises one or more single-range entries that specify respective contiguous address ranges that are to be accessed in the memory of the host, and comprising distinguishing between the pattern-type entry and the single-range entries.

### Claim 18 (depends on 12)

The method according to claim 12, wherein the intervals specify respective offsets relative to a beginning of the period, at which the addresses are to be accessed.

### Claim 19 (depends on 18)

The method according to claim 18, wherein the pattern-type entry specifies a respective number of the addresses that are to be accessed at each of the offsets.

### Claim 20 (depends on 12)

The method according to claim 12, wherein the pattern-type entry specifies a length of the period.

### Claim 21 (depends on 12)

The method according to claim 12, wherein the pattern-type entry specifies a number of times the period is repeated in the periodic patterns.

### Claim 22 (depends on 12)

The method according to claim 12, wherein a size of the pattern-type entry is independent of a number of times the period is repeated in the periodic patterns.
