Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique
Reexamination Certificate
1998-05-08
2001-05-01
Ellis, Kevin L. (Department: 2185)
Electrical computers and digital processing systems: memory
Storage accessing and control
Control technique
C711S112000
Reexamination Certificate
active
06226719
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to the field of managing memory in a distributed computer system architecture.
Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever.
2. Background Art
A computer system may include an input output subsystem (I/O system) where a high level device such as a processor, a high level device driver or even a software application communicates through the I/O to a peripheral device. The communication takes place through a device driver. The high level device is referred to here as a client and the low level device is referred to here as a server. One type of communication is a memory access involving the reading of data from, or writing of data to, a memory.
One prior art scheme of memory access uses a scatter gather scheme. Such schemes involve writing to a memory block data that has been gathered from non-contiguous memory locations, or writing to non-contiguous data locations data from a memory block. One method of accomplishing scatter gather memory operations is to create a list of the non-contiguous memory blocks to be written. The list is comprised of memory “extents” (memory transfer segments) and is called a scatter gather list. In the prior art, the scatter gather list is a table of words. It contains the set of addresses of the data to transfer and the lengths of each individual extent. The server then uses the scatter gather table to organize and process the transfer operation.
A disadvantage of prior art scatter gather schemes is illustrated in
FIG. 2
with respect to a RAID memory subsystem. A RAID system is a “Redundant Array of Inexpensive Disks” and is used to increase system performance and reliability by breaking up data into stripes on different disks. In some RAID configurations, if part of the data is missing, it can be reconstructed from the remaining stripes. Other RAID configurations improve performance by transferring data to or from multiple physical units such as disk devices in parallel.
Referring to
FIG. 2
, a client has associated memory represented by memory cloud
201
. A server (driver
202
) wants to write some subset of the memory to a RAID array
203
(consisting of drives
203
A,
203
B, and
203
C). The data to be written is described at the client side by a series of logical address locations represented by memory chunks
201
A,
201
B, and
201
C. A first scatter gather list is generated that represents the addresses of the data and is represented by memory extents
204
A,
204
B,
204
C,
204
D, and
204
E. To write the data into the RAID array, the memory extents are further subdivided by the server into smaller memory extents represented by memory extents
205
A through
205
I. (The number of extents and the ratio of extents to a previous set of extents or memory locations is given by way of example only, it may be far greater, for example). A disadvantage of prior art schemes is that each scatter-gather list requires the use of scarce memory resources and adds to the complexity of memory transfers. (Note that in a modern memory system, a single memory extent such as
201
A may be located in several physical memory extents such as
204
A,
204
B, etc.)
SUMMARY OF THE INVENTION
The present invention provides an improved method for memory accesses. The invention uses an object referred to as a MemoryContainer object that contains the location and length of each memory transfer segment. An object referred to as a MemoryDescriptor object contains an index that locates the current position of the transfer and references one or more MemoryContainers. The invention separates the scatter-gather list and the processing information into two, independent, objects that are individually optimized for their particular task. Having separate containers and descriptors permits combining containers and descriptors into larger collections. When a client wants to start a memory operation, it provides the memory location or a scatter gather list of memory locations as designated by the client. A MemoryDescriptor and a MemoryContainer are instantiated and returned to the server. In some implementations, the client may provide the MemoryContainer. The MemoryDescriptor is expected to wire the memory to make sure that the memory is resident for all memory in all ranges. Before beginning the transfer, the operating system causes all memory described by the MemoryContainer to become resident in physical memory. The MemoryDescriptor can then request the starting physical address and length of each range and implement the memory operation. In a current “virtual memory” operating system, a single address range as seen by the client or defined by the MemoryContainer may occupy a potentially large number of discontiguous physical address ranges.
REFERENCES:
patent: 5909559 (1999-06-01), So
patent: 6021462 (2000-02-01), Minow et al.
Apple Computer Inc.
Ellis Kevin L.
The Hecker Law Group
LandOfFree
Organizing memory extents of OS input/output control does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Organizing memory extents of OS input/output control, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Organizing memory extents of OS input/output control will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2551820