IP Library › Granted Patent US 8,862,785
Granted Patent B2
US 8,862,785 · App. 11/094,234 · Granted Oct 14, 2014

System and method for redirecting input/output (I/O) sequences

Inventors: Michael A. Rothman (Puyallup, WA); Vincent J. Zimmer (Federal Way, WA)
Assignee: Intel Corporation
G06F13/128G06F3/0626G06F3/0658G06F3/0659G06F3/0683G06F3/0632
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,862,785
App. No.
11/094,234
Granted
Oct 14, 2014
Kind
B2
Abstract

A method for redirecting I/O (Input/Output) sequences. A computer platform is initialized. If the computer platform is enabled for command packet rerouting, the platform firmware may be used to install a runtime enable block I/O interface and a standard UNDI (Universal Network Device Interface) interface for routing I/O requests to a network controller or an out-of-band processor may be used to route I/O requests to a network interface controller. The routing of the I/O requests to the network controller or network interface controller enables the computer platform to boot from a remote block I/O storage device.

Claims (62)

1. A method for redirecting I/O (Input/Output) sequences comprising:

initializing a computer platform;

determining whether the computer platform is enabled for command packet rerouting; and

if the computer platform is enabled for command packet rerouting, then

enabling platform firmware to install a runtime enabled block I/O interface and a standard UNDI (Universal Network Device Interface) interface for routing block level I/O requests to a network controller,

determining whether an in-band processor needs to act as an off-load engine for CDB (command descriptor block) construction or translation of the I/O request;

if the in-band processor needs to act as an off-load engine, then, at the in-band processor, constructing a CDB for an outbound I/O request or translating the CDB for an inbound I/O request; and

passing the CDB through the network to the remote I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request; and

if the in-band processor does not need to act as an off-load engine, then receiving the I/O request in a CDB format or a translated CDB format, wherein the CDB construction of the I/O request or translation of the I/O request is performed at a local SCSI controller, and passing the CDB through the network to the remote I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request,

wherein the routing of block level I/O requests to a network controller enables the computer platform to access, using an internet protocol and prior to booting, a remote block I/O storage device using command descriptor blocks that enable direct access to sectors, allowing direct booting from the remote block I/O storage device,

wherein the access is performed using an internet protocol prior to booting the computer platform.

2. The method of claim 1 , further comprising continuing normal computer operations until another I/O request is received.

3. The method of claim 1 , wherein if the computer platform is not enabled for command packet rerouting, continuing normal computer operations.

4. The method of claim 1 , wherein the platform firmware facilitates the routing of I/O requests through block and UNDI abstractions.

5. A method for redirecting I/O (Input/Output) sequences comprising:

initializing a computer platform that comprises an in-band processor and an out-of-band processor having its own power source and built-in network interface, wherein the out-of-band processor is enabled to perform out-of-band communications when the in-band processor is not active;

determining whether the computer platform is enabled for command packet rerouting;

if the computer platform is enabled for command packet rerouting, then routing block level I/O requests for a remote block I/O storage device through the out-of-band processor incorporated in the platform to a network interface controller on the platform,

determining whether the out-of-band processor needs to act as an off-load engine for CDB (command descriptor block) construction or translation of the I/O requests;

if the out-of-band processor needs to act as an off-load engine, then constructing a CDB for an outbound I/O request or translating the CDB for an inbound I/O request; and passing the CDB through the network to the remote block I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request; and

if the out-of-band processor does not need to act as an off-load engine, then receiving the I/O request in a CDB format or a translated CDB format, wherein the CDB construction or translation is performed by a SCSI controller, and passing the CDB through the network to the remote block I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request,

wherein the routing of the I/O requests to the network interface controller enables the computer platform to access, using an internet protocol and prior to booting, the remote block I/O storage device, allowing direct booting from the remote block I/O storage device,

wherein the access is performed using an internet protocol prior to booting of the computer platform.

6. The method of claim 5 , further comprising continuing normal computer operations until another I/O request is received.

7. The method of claim 5 , wherein if the computer platform is not enabled for command packet rerouting, continuing normal computer operations.

8. The method of claim 5 , wherein the out-of-band processor facilitates the routing of I/O requests through block abstractions.

9. A system for redirecting I/O (Input/Output) sequences comprising:

a platform having an on-board processor, the on-board processor having platform firmware to reroute block level I/O requests to a network controller, the network controller to send the I/O requests to a remote block device, wherein the rerouting of the I/O requests to the network controller enables the remote block device to be accessed using an internet protocol and prior to booting, and used directly as a boot device using command descriptor blocks that enable direct access to sectors, wherein the on-board processor is configured to act as an off-load engine if required to do so, to construct CDBs (command descriptor blocks) for outbound I/O requests and to translate CDBs for inbound I/O requests; and

a local SCSI disk controller to construct command descriptor blocks (CDBs) for outbound I/O requests and to translate CDBs for inbound I/O requests, wherein the disk controller eliminates the need for the on-board processor to act as an off-load engine,

wherein the access is performed using an internet protocol prior to booting the platform.

10. The system of claim 9 , wherein the platform firmware comprises an EFI (Extensible Firmware Interface) interface to push the request across the network to the remote block device.

11. A system for redirecting I/O (Input/Output) sequences comprising:

a platform having an in-band processor coupled to the platform and an out-of-band processor incorporated in the platform, wherein the out-of-band processor has its own power source and built-in network interface and is enabled to perform out-of-band communications when the in-band processor is not active, the out-of-band processor having platform firmware to reroute block level I/O requests to a built in network controller interface, the network controller interface to send the I/O requests to a remote block device, wherein the rerouting of the I/O requests to the network controller interface enables the remote block device to be accessed using an internet protocol and prior to booting, and used directly as a boot device; and

a local SCSI disk controller to construct CDBs for outbound I/O requests and to translate CDBs for inbound I/O requests, wherein the disk controller eliminates the need for the out-of-band processor to act as an off-load engine,

wherein the access is performed using an internet protocol prior to booting the platform.

12. The system of claim 11 , wherein the out-of-band processor is configured to act, if required, as an off-load engine to construct CDBs (command descriptor blocks) for outbound I/O requests and to translate CDBs for inbound I/O requests.

13. An article comprising:

a non-transitory storage medium having a plurality of machine accessible instructions, wherein when the instructions are executed by a processor, the instructions provide for initializing a computer platform;

determining whether the computer platform is enabled for command packet rerouting;

if the computer platform is enabled for command packet rerouting, then enabling platform firmware to install a runtime enabled block I/O interface and a standard UNDI (Universal Network Device Interface) interface for routing block level I/O requests to a network controller;

determining whether an in-band processor needs to act as an off-load engine for CDB (command descriptor block) construction or translation of the I/O request;

if the in-band processor needs to act as an off-load engine, then at the in-band processor constructing a CDB for an outbound I/O request or translating the CDB for an inbound I/O request, and

passing the CDB through the network to the remote I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request; and

if the in-band processor does not need to act as an off-load engine, the instructions further providing for receiving the I/O request in a CDB format or a translated CDB format, wherein the CDB construction of the I/O request is performed at a local SCSI controller, and passing the CDB through the network to the remote I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request,

wherein the routing of I/O requests to a network controller enables the computer platform to access, using an internet protocol and prior to booting, a remote block I/O storage device using command descriptor blocks that enable direct access to sectors, allowing direct booting from the remote block I/O storage device,

wherein the access is performed using an internet protocol prior to booting the computer platform.

14. The article of claim 13 , further comprising instructions for continuing normal computer operations until another I/O request is received.

15. The article of claim 13 , wherein if the computer platform is not enabled for command packet rerouting, the instructions further providing for continuing normal computer operations.

16. The article of claim 13 , wherein the platform firmware facilitates the routing of I/O requests through block and UNDI abstractions.

17. An article comprising: a non-transitory storage medium having a plurality of machine accessible instructions, wherein when the instructions are executed by an in-band processor, the instructions providing for

initializing a computer platform that comprises the in-band processor and an out-of-band processor having its own power source and built-in network interface, wherein the out-of-band processor is enabled to perform out-of-band communications when the in-band processor is not active;

determining whether the computer platform is enabled for command packet rerouting; and

if the computer platform is enabled for command packet rerouting, then routing block level I/O requests for a remote block I/O storage device through an out-of-band processor incorporated in the platform to a network interface controller on the platform; and

determining whether the out-of-band processor needs to act as an off-load engine for CDB (command descriptor block) construction or translation of the I/O requests;

if the out-of-band processor needs to act as an off-load engine, then at the out-of-band processor constructing a CDB for an outbound I/O request or translating the CDB for an inbound I/O request; and

passing the CDB through the network to the remote block I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request; and

if the out-of-band processor does not need to act as an off-load engine, receiving the I/O request in a CDB format or a translated CDB format, wherein the CDB construction or translation is performed by a SCSI controller, and passing the CDB through the network to the remote block I/O storage device for the outbound I/O request or filling a memory buffer with data from the translated CDB for the inbound I/O request,

wherein the routing of the I/O requests to the network interface controller enables the computer platform to access, using an internet protocol and prior to booting, the remote block I/O storage device, allowing direct booting from the remote block I/O storage device,

wherein the access is performed using an internet protocol prior to booting the computer platform.

18. The article of claim 17 , further comprising instructions for continuing normal computer operations until another I/O request is received.

19. The article of claim 17 , wherein if the computer platform is not enabled for command packet rerouting, the instructions providing for continuing normal computer operations.

20. The article of claim 17 , wherein the out-of-band processor facilitates the routing of I/O requests through block abstractions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2010
From: ROTHMAN, MICHAEL A.; ZIMMER, VINCENT
To: INTEL CORPORATION
Reel/Frame 024721/0155 →
Continuity (1)
Related Publication 20080133794A1 · Jun 5, 2008