Arrangement and method for efficient calculation of memory addresses in a block storage memory system
AssigneeApple Computer, Inc.
InventorsDavid Lee Smith, Carl David Sutton
Life of this patent
Estimating the term…
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.
Claims15
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.
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.
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.
Dependencies are inferred from the claim text.