Destination controlled remote DMA engine
First Claim
Patent Images
1. A method for accessing memory, the method comprising:
- programming a remote DMA engine residing on a first bus from a destination residing on the first bus;
accessing data in a memory with the DMA engine, the DMA engine being embedded in the memory and operating as programmed by the destination; and
transferring the accessed data by the DMA engine to the destination.
0 Assignments
0 Petitions
Accused Products
Abstract
The invention, in one embodiment, is a method for accessing memory. The method includes programming a remote DMA engine from a destination; accessing data in the memory with the DMA engine, the DMA engine operating as programmed by the destination; and transferring the accessed data to the destination.
-
Citations
25 Claims
-
1. A method for accessing memory, the method comprising:
-
programming a remote DMA engine residing on a first bus from a destination residing on the first bus;
accessing data in a memory with the DMA engine, the DMA engine being embedded in the memory and operating as programmed by the destination; and
transferring the accessed data by the DMA engine to the destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
writing a DMA command block from the destination to the memory; and
writing a pointer to the command block from the destination to the DMA engine.
-
-
6. The method of claim 5, wherein accessing data in the memory includes:
-
placing the DMA command block on the DMA engine'"'"'s execution list; and
when the command block reaches the top of the execution list, reading the specified data from the memory.
-
-
7. The method of claim 1, wherein accessing data in the memory includes:
-
placing the DMA command block on the DMA engine'"'"'s execution list; and
when the command block reaches the top of the execution list, reading the specified data from the memory.
-
-
8. The method of claim 1, wherein transferring the accessed data includes:
-
issuing a write to a read buffer address for the destination; and
detecting the write to the read buffer address.
-
-
9. A method for accessing memory, the method comprising:
-
writing a DMA command block from an I/O adapter residing on a first bus to a remote DMA engine being embedded in the memory and residing on the first bus;
placing the DMA block on the DMA engine'"'"'s execution list;
when the command block reaches the top of the execution list, reading data from the memory;
issuing a write from the DMA engine to a read buffer address for the I/O adapter;
detecting the write to the read buffer address; and
processing the data. - View Dependent Claims (10, 11, 12)
generating a series of access requests from the DMA engine to a memory controller for the memory;
processing the access requests; and
writing the data read from the memory to a write buffer associated with the DMA engine.
-
-
12. The method of claim 9, wherein reading data from memory includes writing the data from memory to a write buffer associated with the DMA engine.
-
13. An apparatus comprising:
-
a memory;
a plurality of buses;
a DMA engine being embedded in the memory and residing on a first of the plurality of buses;
an I/O adapter including a read buffer, the I/O adapter residing on the same first of the plurality buses, and being capable of programming the DMA engine over the first of the plurality of buses. - View Dependent Claims (14, 15, 16, 17)
-
-
18. An apparatus comprising:
-
a plurality of buses;
an I/O adapter having a read buffer, the I/O adapter residing on a first of the plurality of buses;
a memory;
a DMA engine remote from and programmable by the I/O adapter, the DMA engine being embedded in the memory and residing on the first of the plurality of buses, and being capable of writing data read from the memory to the read buffer in accordance with a programmed command received from the I/O adapter. - View Dependent Claims (19, 20, 21)
-
-
22. An apparatus comprising:
-
a plurality of buses;
an I/O adapter having a read buffer, the I/O adapter residing a first of the plurality of buses;
a memory including a memory controller;
a DMA engine remote from and programmable by the I/O adapter, the DMA engine being embedded in the memory and residing on the first of the plurality of buses, and being capable of instructing the memory controller to write data read from the memory to the read buffer in accordance with a programmed command received from the I/O adapter. - View Dependent Claims (23, 24, 25)
-
Specification