IP Library Granted Patent US 7,043,622
Granted Patent B2
US 7,043,622 · App. 10/329,184 · Granted May 9, 2006

Method and apparatus for handling storage requests

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 7,043,622
App. No.
10/329,184
Granted
May 9, 2006
Kind
B2
Abstract

Systems and methods for handling I/O requests from a host system to a storage system. A system includes an I/O module for processing I/O requests from a host system, a virtualized storage element, and a communication medium coupling the I/O module to the virtualized storage elements. The virtualized storage element includes a mapping table for translating virtual storage locations into physical storage locations and a plurality of physical storage locations. The virtualized storage element generates base virtual addresses using the mapping table to communicate the base virtual addresses to the I/O module. The I/O module generates specific virtual addresses using the base virtual addresses and using information derived from the I/O requests. The I/O module uses the specific virtual addresses in communication with the virtualized storage element to identify the physical storage locations in the virtualized storage element.

Claims (42)

1. A system, comprising:

an I/O module for processing I/O requests from a separate and distinct host system;

a virtualized storage element separate and distinct from the host system including:

a plurality of physical storage locations; and

a mapping table for translating virtual storage locations into the physical storage locations; and

a communication medium coupling the I/O module to the virtualized storage elements,

wherein the virtualized storage element is operable to generate base virtual addresses using the mapping table to communicate the base virtual addresses to the I/O module,

wherein the I/O module is operable to generate specific virtual addresses using the base virtual addresses and using information derived from the I/O requests, and

wherein the I/O module uses the specific virtual addresses in communication with the virtualized storage element to identify the physical storage locations in the virtualized storage element.

2. The system of claim 1 , wherein the communication medium includes a storage communication switching fabric for transferring the I/O requests between the host system and the physical storage locations using the specific virtual addresses.

3. The system of claim 1 , wherein the I/O module is operably configured within the host system.

4. The system of claim 1 , wherein the I/O module is operably configured within the virtualized storage element.

5. The system of claim 1 , wherein the base virtual addresses includes a proper subset of the mapping tables for indirect access to the physical storage locations.

6. The system of claim 1 , wherein the base virtual addresses include indicators to alert the I/O module to a type of addressing, wherein the addressing is direct or indirect.

7. A method, operable in a storage system, for handling I/O requests from a separate and distinct host system to the storage system, the storage system having an I/O module and having a virtualized storage element, the method including steps of:

receiving an I/O request in the I/O module;

forwarding the received I/O request from the I/O module to the virtualized storage element;

translating, within the virtualized storage element, virtual storage locations specified in the received I/O request using a mapping table to generate base virtual addresses;

returning the base virtual addresses to the I/O module;

generating, within the I/O module, specific virtual addresses from the base virtual addresses and from information derived from the I/O requests; and

processing the I/O requests from the host system by forwarding a request from the I/O module to the virtualized storage element using the specific virtual addresses in the forwarded request to identify the physical storage locations.

8. The method of claim 7 , further including a step of transferring the I/O requests between the host system and the physical storage locations using the specific virtual addresses.

9. The method of claim 7 , wherein the step of generating the specific virtual addresses includes a step of determining offsets from the base virtual addresses.

10. The method of claim 7 , wherein the step of processing includes a step of determining the physical storage locations by processing offsets of the specific virtual addresses.

11. The method of claim 10 , wherein the step of determining includes steps of:

dividing each of a portion of the offsets by a size of storage space to be accessed to locate a map address, wherein the step of dividing produces a quotient and a remainder; and

adding the remainder to the map address to determine a certain physical storage location.

12. A storage system for handling I/O requests from a separate and distinct host system to the storage system having an I/O module and having a virtualized storage element, the system including:

means for receiving an I/O request in the I/O module;

means for forwarding the received I/O request from the I/O module to the virtualized storage element;

means, within the virtualized storage element, for translating virtual storage locations specified in the received I/O request using a mapping table to generate base virtual addresses;

means for returning the base virtual addresses to the I/O module;

means, within the I/O module, for generating specific virtual addresses from the base virtual addresses and from information derived from the I/O requests; and

means for processing the I/O requests from the host system by forwarding a request from the I/O module to the virtualized storage element using the specific virtual addresses in the forwarded request to identify the physical storage locations.

13. The system of claim 12 , further including means for transferring the I/O requests between the host system and the physical storage locations using the specific virtual addresses.

14. The system of claim 12 , wherein the means for generating the specific virtual addresses includes means for determining offsets from the base virtual addresses.

15. The system of claim 12 , wherein the means for processing includes means for determining the physical storage locations by processing offsets of the specific virtual addresses.

16. The system of claim 15 , wherein the means for determining includes:

means for dividing each of a portion of the offsets by a size of storage space to be accessed to locate a map address, wherein the step of dividing produces a quotient and a remainder; and

means for adding the remainder to the map address to determine a certain physical storage location.

17. The system of claim 12 , wherein the base virtual addresses includes a proper subset of the mapping tables for indirect mapping.

18. The system of claim 12 , wherein each of the base virtual addresses includes an interface identifier field used to indicate an interface type that transfers the I/O requests.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2011
From: LSI LOGIC CORPORATION
To: NETAPP, INC.
Reel/Frame 026661/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2002
From: HENRY, RUSSELL J.; WEBER, BRET S.; GATES, DENNIS E.; KLOEPPNER, JOHN R.; HOLT, KEITH W.
To: LSI LOGIC CORPORATION
Reel/Frame 013626/0396 →