IP Library Granted Patent US 6,959,373
Granted Patent B2
US 6,959,373 · App. 10/218,195 · Granted Oct 25, 2005

Dynamic and variable length extents

Assignee: Incipient, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,959,373
App. No.
10/218,195
Granted
Oct 25, 2005
Kind
B2
Abstract

Described are techniques used in a computer system for handling data operations to storage devices. A switching fabric includes one or more fast paths for handling lightweight, common data operations and at least one control path for handling other data operations. A control path manages one or more fast paths. The fast path and the control path are utilized in mapping virtual to physical addresses using mapping tables. The mapping tables include an extent table of one or more entries corresponding to varying address ranges. The size of an extent may be changed dynamically in accordance with a corresponding state change of physical storage. The fast path may cache only portions of the extent table as needed in accordance with a caching technique. The fast path may cache a subset of the extent table stored within the control path. A set of primitives may be used in performing data operations. A locking mechanism is described for controlling access to data shared by the control paths.

Claims (47)

1. A computer implemented method for performing virtual to physical address mapping of a virtual address comprising:

determining a volume descriptor of a logical volume associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of extents, each of said extents being associated with a varying size and range of virtual addresses;

determining a first extent included in said variable size extent table corresponding to said virtual address; and

determining a corresponding physical address for said virtual address using mapping table information associated with said first extent, wherein a portion of said mapping table information is included in a storage redirect table having at least one entry, each of said extents being associated with an entry in said storage redirect table, said entry indicating whether a particular type of data operation for an associated extent is performed using a first fast path or a second central path.

2. The method of claim 1 , wherein said variable size extent table includes a first extent and a second extent, said first extent corresponding to a first range of virtual addresses, said second extent corresponding to a second range of virtual addresses, said first and second ranges of virtual addresses being of different sizes.

3. The method of claim 2 , further comprising:

dynamically modifying said first range of virtual addresses associated with said first extent in response to a state change of physical data storage corresponding to said first range of virtual addresses.

4. The method of claim 2 , wherein said second extent is created in response to a state change of physical storage associated with said second extent.

5. A computer implemented method for performing virtual to physical address mapping of a virtual address comprising:

determining a volume descriptor associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of portions, each of said portions associated with a varying range of virtual addresses;

determining a first extent included in said variable size extent table corresponding to said virtual address; and

determining a corresponding physical address for said virtual address using mapping table information associated with said first extent,

wherein said variable size extent table includes a first extent and a second extent, said first extent corresponding to a first range of virtual addresses, said second extent corresponding to a second range of virtual addresses, said first and second ranges of virtual addresses being of different sizes, said second extent being created in response to a state change of physical storage associated with said second extent, and wherein a portion of said mapping table information is included in a storage redirect table having at least one entry.

6. The method of claim 5 , wherein each entry in said storage redirect table includes physical storage address information and state information corresponding to a physical storage location.

7. The method of claim 6 , wherein said variable size extent table includes, for each extent, an index into the storage redirect table corresponding to an entry in the storage redirect table.

8. The method of claim 7 , wherein at least two extents included in said variable size extent table are associated with the same index into the storage redirect table.

9. The method of claim 6 , wherein said state information includes information about an action to take to determine a physical storage location in accordance with a data operation.

10. The method of claim 9 , wherein said state information includes accessing a first storage location when said data operation is a read operation or a write operation, accessing said first storage location only when said data operation is a read operation, or accessing said first storage location only when said data operation is a write operation.

11. A computer program product on a computer readable medium that performs virtual to physical address mapping of a virtual address comprising:

machine executable code that determines a volume descriptor of a logical volume associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of extents, each of said extents being associated with a varying size and range of virtual addresses;

machine executable code that determines a first extent included in said variable size extent table corresponding to said virtual address; and

machine executable code that determines a corresponding physical address for said virtual address using mapping table information associated with said first extent, wherein a portion of said mapping table information is included in a storage redirect table having at least one entry, each of said extents being associated with an entry in said storage redirect table, said entry indicating whether a particular type of data operation for an associated extent is performed using a first fast path or a second central path.

12. The computer program product of claim 11 , wherein said variable size extent table includes a first extent and a second extent, said first extent corresponding to a first range of virtual addresses, said second extent corresponding to a second range of virtual addresses, said first and second ranges of virtual addresses being of different sizes.

13. The computer program product of claim 12 , further comprising:

machine executable code that dynamically modifies said first range of virtual addresses associated with said first extent in response to a state change of physical data storage corresponding to said first range of virtual addresses.

14. The computer program product of claim 12 , further comprising:

machine executable code that creates said second extent in response to a state change of physical storage associated with said second extent.

15. A computer program product on a computer readable medium that performs virtual to physical address mapping of a virtual address comprising:

machine executable code that determines a volume descriptor associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of portions, each of said portions associated with a varying range of virtual addresses;

machine executable code that determines a first extent included in said variable size extent table corresponding to said virtual address;

machine executable code that determines a corresponding physical address for said virtual address using mapping table information associated with said first extent; wherein said variable size extent table includes a first extent and a second extent, said first extent corresponding to a first range of virtual addresses, said second extent corresponding to a second range of virtual addresses, said first and second ranges of virtual addresses being of different sizes; and

machine executable code that creates said second extent in response to a state change of physical storage associated with said second extent, wherein a portion of said mapping table information is included in a storage redirect table having at least one entry.

16. The computer program product of claim 15 , wherein each entry in said storage redirect table includes physical storage address information and state information corresponding to a physical storage location.

17. The computer program product of claim 16 , wherein said variable size extent table includes, for each extent, an index into the storage redirect table corresponding to an entry in the storage redirect table.

18. The computer program product of claim 17 , wherein at least two extents included in said variable size extent table are associated with the same index into the storage redirect table.

19. The computer program product of claim 16 , wherein said state information includes information about an action to take to determine a physical storage location in accordance with a data operation.

20. The computer program product of claim 19 , wherein said state information includes accessing a first storage location when said data operation is a read operation or a write operation, accessing said first storage location only when said data operation is a read operation, or accessing said first storage location only when said data operation is a write operation.

21. A computer implemented method for performing virtual to physical address mapping of a virtual address comprising:

determining a volume descriptor of a logical volume associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of extents, each of said extents being associated with a varying size and range of virtual addresses;

determining a first extent included in said variable size extent table corresponding to said virtual address; and

determining a corresponding physical address for said virtual address using mapping table information associated with said first extent, wherein a portion of said mapping table information is included in an entry of a storage redirect table, said entry including state information about said corresponding physical address.

22. The method of claim 21 , wherein said state information includes information about an action to take to determine a physical storage location in accordance with a data operation, said state information including accessing a first storage location when said data operation is a read operation or a write operation, accessing said first storage location only when said data operation is a read operation, or accessing said first storage location only when said data operation is a write operation.

23. A computer program product on a computer readable medium that performs virtual to physical address mapping of a virtual address comprising:

machine executable code that determines a volume descriptor of a logical volume associated with said virtual address, said volume descriptor including a variable size extent table, said variable size extent table including a plurality of extents, each of said extents being associated with a varying size and range of virtual addresses:

machine executable code that determines a first extent included in said variable size extent table corresponding to said virtual address; and

machine executable code that determines a corresponding physical address for said virtual address using mapping table information associated with said first extent, wherein a portion of said mapping table information is included in an entry of a storage redirect table, said entry including state information about said corresponding physical address.

24. The computer program product of claim 23 , wherein said state information includes information about an action to take to determine a physical storage location in accordance with a data operation, said state information including accessing a first storage location when said data operation is a read operation or a write operation, accessing said first storage location only when said data operation is a read operation, or accessing said first storage location only when said data operation is a write operation.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2013
From: TEXAS MEMORY SYSTEMS, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 030081/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2009
From: INCIPIENT INC.
To: TEXAS MEMORY SYSTEMS, INC.
Reel/Frame 022939/0235 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2002
From: TESTARDI, RICHARD
To: INCIPIENT, INC.
Reel/Frame 013359/0980 →
Continuity (3)
Provisional Application 6036894000 · Mar 29, 2002
Provisional Application 6034005000 · Dec 10, 2001
Related Publication 20030140210A1 · Jul 24, 2003