Patent US5860079A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5860079A Expired / Lapsed US ⏱️ 0.0 years remaining

Arrangement and method for efficient calculation of memory addresses in a block storage memory system

Assignee: Apple Inc
•
Filing: 1996-05-10
•
Granted: 1999-01-12
•
Expires: 2016-05-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A block storage memory management scheme. According to the disclosed embodiments, a memory list of data is generated from a set of address ranges, a descriptor is created to interact with the memory list, and data is retrieved by preparing the memory specified by the descriptor for an input/output operation, performing the operation, and deleting the descriptor. Memory mappings are delayed as long as possible to enhance the performance of the system, particularly for RAID applications.

Inventors

  • 👤 David Lee Smith
  • 👤 Carl David Sutton

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 21:54
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/0626; G06F12/00; G06F12/02; G06F12/0223; G06F3/0628; G06F3/0655; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 146 words
A method for retrieving data stored in a memory system, comprising the steps of: generating a first memory list including address ranges of a memory; generating and storing an initial descriptor describing the first memory list; generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; and accessing data stored in one or more of the physical storage devices at one or more physical addresses corresponding to one or more addresses defined in a request by calculating, at a corresponding device driver, the one or more physical addresses.
Claim 2
Independent Claim 146 words
A method for retrieving data stored in a memory system, comprising the steps of: generating a first memory list including address ranges of a memory; generating and storing an initial descriptor describing the first memory list; generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; and accessing data stored in one or more of the physical storage devices at one or more physical addresses corresponding to one or more addresses defined in a request by calculating, at a corresponding device driver, the one or more physical addresses.
Claim 3
Dependent Claim 46 words
The method of claim 1, wherein the second descriptor is generated from the first descriptor, an offset value and a length value defining a beginning and a length, respectively, of the first memory list, a granularity value defining the selected block size, and the stride value.
Claim 4
Dependent Claim 27 words
The method of claim 1, wherein the address ranges described by the first memory list are address ranges which describe data stored in multiple physical storage devices.
Claim 5
Dependent Claim 20 words
The method of claim 3, wherein the multiple physical storage devices include at least one redundant array of independent disks.
Claim 6
Dependent Claim 15 words
The method of claim 1, wherein the memory system is a block storage memory system.
Claim 7
Dependent Claim 201 words
A memory management system for managing a memory system, comprising: a file manager for managing a plurality of memory files containing memory data, receiving requests for data contained in one or more of the plurality of memory files, and retrieving the requested data; a plurality of storage media for storing the plurality of memory files; means for generating a first memory list of address ranges in the storage media; means for generating and storing a first descriptor describing the first memory list; means for generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; means for storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; the file manager accessing the requested data stored in one or more of the storage media at one or more physical addresses corresponding to one or more addresses defined in the request by calculating the one or more physical addresses using the one or more second descriptors.
Claim 8
Dependent Claim 201 words
A memory management system for managing a memory system, comprising: a file manager for managing a plurality of memory files containing memory data, receiving requests for data contained in one or more of the plurality of memory files, and retrieving the requested data; a plurality of storage media for storing the plurality of memory files; means for generating a first memory list of address ranges in the storage media; means for generating and storing a first descriptor describing the first memory list; means for generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; means for storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; the file manager accessing the requested data stored in one or more of the storage media at one or more physical addresses corresponding to one or more addresses defined in the request by calculating the one or more physical addresses using the one or more second descriptors.
Claim 9
Dependent Claim 48 words
The memory management system of claim 6, wherein the second descriptor is generated from the first descriptor, an offset value and a length value defining a beginning and a length, respectively, of the first memory list, a granularity value defining the selected block size, and the stride value.
Claim 10
Dependent Claim 30 words
The memory management system of claim 6, wherein the address ranges described by the first memory list are address ranges which describe data stored in the plurality of storage media.
Claim 11
Dependent Claim 22 words
The memory management system of claim 8, wherein the plurality of storage media include at least one redundant array of independent disks.
Claim 12
Dependent Claim 17 words
The memory management system of claim 6, wherein the memory system is a block storage memory system.
Claim 13
Dependent Claim 150 words
A storage medium encoded with machine-readable computer program code, comprising: means for generating a first memory list of address ranges in a memory system; means for generating and storing a first descriptor describing the first memory list; means for generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; means for storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; and means for accessing data stored in the memory system at one or more physical addresses corresponding to one or more addresses defined in the request by calculating the one or more physical addresses using the one or more second descriptors.
Claim 14
Dependent Claim 150 words
A storage medium encoded with machine-readable computer program code, comprising: means for generating a first memory list of address ranges in a memory system; means for generating and storing a first descriptor describing the first memory list; means for generating one or more second descriptors defining a corresponding one or more second memory lists, each second memory list including selected address ranges from the first memory list, each selected address range being of a selected block size and being a stride value apart in the first memory list; means for storing each second descriptor in a separate device driver, each separate device driver associated with a physical storage device; and means for accessing data stored in the memory system at one or more physical addresses corresponding to one or more addresses defined in the request by calculating the one or more physical addresses using the one or more second descriptors.
Claim 15
Dependent Claim 47 words
The storage medium of claim 11, wherein the second descriptor is generated from the first descriptor, an offset value and a length value defining a beginning and a length, respectively, of the first memory list, a granularity value defining the selected block size, and the stride value.
Claim 16
Dependent Claim 30 words
The storage medium of claim 11, wherein the address ranges described by the first memory list are address ranges which describe data stored in a plurality of physical storage devices.
Claim 17
Dependent Claim 22 words
The storage medium of claim 13, wherein the plurality of physical storage devices includes at least one redundant array of independent disks.
Claim 18
Dependent Claim 16 words
The storage medium of claim 11, wherein the memory system is a block storage memory system.

References Cited (Backward Citations)

US4928237A Cited
US5689678A Cited
US5555387A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-01-11 2002-07-13 2003-01-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-01-11 2006-07-13 2007-01-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-01-11 2010-07-13 2011-01-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag