IP Library Granted Patent US 8,560,742
Granted Patent B2
US 8,560,742 · App. 12/481,312 · Granted Oct 15, 2013

Methods of providing access to I/O devices

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 8,560,742
App. No.
12/481,312
Granted
Oct 15, 2013
Kind
B2
Abstract

A method of providing one or more computing devices with access to a plurality of resources. The plurality of resources are provided by at least one physical device. The method comprises, at a first control element receiving a data packet transmitted by one of said one or more computing devices, and determining whether said data packet comprises a command including a first logical identifier identifying one of said resources. If it is determined that said data packet comprises a command including a first logical identifier a second logical identifier is obtained, the second logical identifier being associated with said first logical identifier and identifying said one of said resources. A request including said second logical identifier is transmitted to a second control element, the second control element being arranged to identify a physical device associated with said second logical identifier and to forward said request to the identified physical device.

Claims (65)

1. A method of providing one or more computing devices with access to a plurality of resources, the plurality of resources being provided by at least one physical device, the method comprising, at a first control element:

receiving a data packet transmitted by one of said one or more computing devices;

determining whether said data packet comprises a command including a first logical identifier, the first logical identifier identifying one of said resources, wherein a second control element does not process said first logical identifier to identify said one of said resources;

if, but only if, it is determined that said data packet comprises a command including a first logical identifier: using said first logical identifier to obtain a second logical identifier not included within said data packet, the second logical identifier being associated with said first logical identifier, and identifying said one of said resources;

transmitting a request including said second logical identifier to the second control element, the second control element being arranged to identify a physical device associated with said second logical identifier and to forward said request to the identified physical device; and

if it is determined that said data packet comprises a command including the first logical identifier, validating said first logical identifier with reference to the computing device that transmitted the data packet; and obtaining said second logical identifier only if said first logical identifier is valid.

2. The method according to claim 1 , further comprising:

determining, at a switching device, whether said data packet satisfies a predetermined criterion, and forwarding said data packet to first control element if but only if it is determined that the data packet satisfies the predetermined criterion.

3. The method according to claim 2 , wherein said data packet is addressed to said physical device.

4. The method according to claim 2 , wherein said predetermined criterion is based upon a type of transaction with which said data packet is associated.

5. The method according to claim 2 , wherein said predetermined criterion is that said data packet includes a command.

6. The method according to claim 2 , further comprising:

if it is determined that said data packet does not satisfy the predetermined criterion, forwarding said data packet from said switching device to one of said physical devices.

7. The method according to claim 1 , wherein said plurality of resources comprise a plurality of logical storage units.

8. The method according to claim 7 , wherein each of plurality of logical storage units comprises storage provided by one or more non-volatile storage devices.

9. The method according to claim 1 , wherein said plurality of resources comprise a plurality of Fibre Channel virtual ports.

10. The method according to claim 1 , further comprising,

receiving data indicating a second logical identifier for each resource provided by said at least one physical device.

11. The method according to claim 10 , wherein said data indicating second logical identifiers is received in response to a request from said first control element to said second control element.

12. The method according to claim 1 , further comprising:

receiving data indicating relationships between said second logical identifiers and first logical identifiers associated with the one or more computing devices.

13. The method according to claim 12 , wherein said data indicating relationships between said second logical identifiers and said first logical identifiers is based upon user input.

14. The method according to claim 1 , wherein a plurality of computing devices are provided with access to said plurality of resources and said first control element receives respective data packets from each of said plurality of computing devices.

15. The method according to claim 14 , wherein obtaining a second logical identifier associated with said first logical identifier is based upon an identity of a computing device from which a respective data packet is received.

16. The method according to claim 1 , further comprising:

storing data at the first control element defining relationships between said second logical identifiers and first logical identifiers each associated with one of said one or more computing devices.

17. The method according to claim 1 , further comprising:

storing data defining a plurality of relationships between at least one first logical identifier and a plurality of second logical identifiers, wherein each of said plurality of relationships is associated with a respective computing device.

18. The method according to claim 1 , wherein said data packets are PCI data packets.

19. The method according to claim 1 , wherein said command including a first logical identifier is selected from the group consisting of a SCSI command, a SAS command and a SATA command.

20. The method according to claim 1 , wherein said second control element is a host bus adapter.

21. The method according to claim 1 , wherein said first control element stores data received from said at least one computing device.

22. The method according to claim 21 , wherein the first control element provides said stored data to said physical device in response to requests from said physical device.

23. The method according to claim 22 , wherein said physical device comprises a plurality of physical devices, at least one of which is a storage device, and at least one of which is a device other than a storage device.

24. The method of providing one or more computing devices with access to a plurality of resources, the plurality of resources being provided by at least one physical device and wherein the one or more computing devices is connected to a switching device arranged to allow data to pass between the one or more computing devices and the one or more physical devices, the method comprising:

receiving at the switching device a data packet sent by one of said one or more computing devices and addressed to one of said at least one physical devices;

determining whether the received data packet satisfies a predetermined criterion; and

if said data packet satisfies said predetermined criterion, directing said data packet to a control element;

determining at the first control element whether said data packet comprises a command including a first logical identifier, the first logical identifier identifying one of said resources, wherein a second control element does not process said first logical identifier to identify said one of said resources;

if, but only if, it is determined that said data packet comprises a command including a first logical identifier: using said first logical identifier to obtain a second logical identifier not included within said data packet, the second logical identifier being associated with said first logical identifier, and identifying said one of said resources;

transmitting a request including said second logical identifier to the second control element, the second control element being arranged to identify a physical device associated with said second logical identifier and to forward said request to the identified physical device; and

if it is determined that said data packet comprises a command including the first logical identifier, validating said first logical identifier with reference to the computing device that transmitted the data packet; and obtaining said second logical identifier only if said first logical identifier is valid.

25. A non-transitory carrier medium comprising computer readable instructions arranged to control a processor to:

receive a data packet transmitted by one of one or more computing devices;

determine whether the data packet comprises a command including a first logical identifier, the first logical identifier identifying one of a plurality of resources, wherein a second control element does not process the first logical identifier to identify the one of the plurality of resources; and

if, but only if, it is determined that the data packet comprises a command including a first logical identifier: use the first logical identifier to obtain a second logical identifier not included within the data packet, the second logical identifier being associated with the first logical identifier, and identifying the one of the plurality of resources;

transmit a request including the second logical identifier to the second control element, the second control element being arranged to identify a physical device associated with the second logical identifier and to forward the request to the identified physical device; and

if it is determined that said data packet comprises a command including the first logical identifier, validating said first logical identifier with reference to the computing device that transmitted the data packet; and obtaining said second logical identifier only if said first logical identifier is valid.

26. A first control element for providing one or more computing devices with access to a plurality of resources, the plurality of resources being provided by at least one physical device, the first control element comprising:

an interface arranged to receive a data packet transmitted by one of said one or more computing devices;

a processor arranged to determine whether said data packet comprises a command including a first logical identifier, the first logical identifier identifying one of said resources and, wherein a second control element does not process said first logical identifier to identify said one of said resources; and

wherein if, but only if, it is determined that said data packet comprises a command including a first logical identifier: the processor is arranged to use the first logical identifier to obtain a second logical identifier not included within said data packet, the second logical identifier being associated with said first logical identifier, identifying said one of said resources;

an interface arranged to transmit a request including said second logical identifier to a third control element if it is determined that said data packet comprises a command including a first logical identifier identifying one of said resources, the third control element being arranged to identify a physical device associated with said second logical identifier and to forward said request to the identified physical device; and

if it is determined that said data packet comprises a command including the first logical identifier, validating said first logical identifier with reference to the computing device that transmitted the data packet; and obtaining said second logical identifier only if said first logical identifier is valid.

27. Apparatus for providing one or more computing devices with access to a plurality of resources, the apparatus comprising:

a control element arranged to:

receive a data packet transmitted by one of the one or more computing devices;

determine whether the data packet comprises a command including a first logical identifier, the first logical identifier identifying one of the plurality of resources, wherein a second control element does not process the first logical identifier to identify the one of the resources; and

if, but only if, it is determined that the data packet comprises a command including a first logical identifier: use the first logical identifier to obtain a second logical identifier not included within the data packet, the second logical identifier being associated with the first logical identifier and identifying the one of the plurality of resources; and

transmit a request including the second logical identifier to the second control element, the second control element being arranged to identify a physical device associated with the second logical identifier and to forward the request to the identified physical device, wherein the control element is in communication with a switching device, wherein the switching device is arranged to determine whether said data packet satisfies a predetermined criterion, and to forward said data packet to said control element if but only if it is determined that the data packet satisfies the predetermined criterion.

28. The apparatus according to claim 27 , wherein the switching device is further arranged to forward said data packet from said switching device to one of said physical devices

if it is determined that said data packet does not satisfy the predetermined criterion.

29. The apparatus according to claim 27 , wherein said plurality of resources comprise a plurality of logical storage units.

30. The apparatus according to claim 29 , wherein each of the plurality of logical storage units comprises storage provided by one or more non-volatile storage devices.

31. The apparatus according to claim 27 , wherein said plurality of resources comprise a plurality of Fibre Channel virtual ports.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
RELEASE OF SECURITY INTEREST Recorded May 18, 2012
From: KREOS CAPITAL III (LUXEMBOURG) S.A.R.L
To: MICRON TECHNOLOGY, INC
Reel/Frame 028233/0608 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2012
From: VIRTENSYS LIMITED
To: MICRON TECHNOLOGY, INC
Reel/Frame 028037/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2009
From: TCHAPDA, YVES CONSTANTIN
To: VIRTENSYS LIMITED
Reel/Frame 023698/0442 →