Claims
- 1. A virtualization device for use with at least one host and at least one physical storage unit, the device comprising:
receive port logic for receiving frames; a lookup table containing physical storage unit addressing information related to virtualized storage units, frame information extraction logic coupled to said receive port logic to extract frame addressing information; staging memory coupled to said receive port logic for temporarily holding a received frame; lookup logic coupled to said lookup table and said frame information extraction logic and using said extracted frame addressing information to retrieve related physical storage unit addressing information; substitution logic coupled to said lookup logic and said staging memory to retrieve said received frame and substitute said related physical storage unit addressing information into said received frame; and transmit port logic coupled to said substitution logic to transmit said substituted frame.
- 2. The device of claim 1, further comprising:
a central processing unit (CPU); CPU memory; and a bus coupled to said CPU, said CPU memory and said lookup table.
- 3. The device of claim 2, further comprising:
forwarding logic coupled to said lookup logic, said staging memory and said CPU memory to forward received frames to said CPU memory for processing by said CPU.
- 4. The device of claim 3, wherein received frames are forwarded to said CPU memory if related physical storage unit addressing information is not present in said lookup table
- 5. The device of claim 3, further comprising:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 6. The device of claim 2, further comprising:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 7. The device of claim 1, further comprising:
second receive port logic for receiving frames; second frame extraction logic coupled to said second receive port to extract frame addressing information; and second transmit port logic coupled to said substitution logic to transmit said substituted frame, wherein said staging memory is further coupled to said second receive port logic; and wherein said lookup logic is further coupled to said second frame extraction logic.
- 8. The device of claim 7, wherein a frame received from said receive port logic may be transmitted by said second transmit port logic.
- 9. The device of claim 7, wherein a frame received from said second receive port logic may be transmitted by said transmit port logic.
- 10. The device of claim 1, wherein said lookup logic further uses said extracted frame addressing information to retrieve related host addressing information, and wherein said substitution logic further substitutes said related host addressing information into said received frame.
- 11. The device of claim 1, wherein said lookup logic further determines if said received frame is to be duplicated to different physical storage units and retrieves related physical storage unit addressing information for each different physical storage unit and provides all said physical storage unit addressing information to said substitution logic, and wherein said substitution logic retrieves said received frame and substitutes said related physical storage unit addressing information into said received frame for each different physical storage unit.
- 12. A switched fabric for use with at least one host and at least one physical storage unit, the fabric comprising:
a switch for coupling to the at least one host and the at least one physical storage unit; and a virtualization device coupled to said switch and for coupling to the at least one host and the at least one physical storage unit, said device including:
receive port logic for receiving frames; a lookup table containing physical storage unit addressing information related to virtualized storage units; frame information extraction logic coupled to said receive port logic to extract frame addressing information; staging memory coupled to said receive port logic for temporarily holding a received frame; lookup logic coupled to said lookup table and said frame information extraction logic and using said extracted frame addressing information to retrieve related physical storage unit addressing information; substitution logic coupled to said lookup logic and said staging memory to retrieve said received frame and substitute said related physical storage unit addressing information into said received frame; and transmit port logic coupled to said substitution logic to transmit said substituted frame.
- 13. The fabric of claim 12, said device further including:
a central processing unit (CPU); CPU memory; and a bus coupled to said CPU, said CPU memory and said lookup table.
- 14. The fabric of claim 13, said device further including:
forwarding logic coupled to said lookup logic, said staging memory and said CPU memory to forward received frames to said CPU memory for processing by said CPU.
- 15. The fabric of claim 14, wherein received frames are forwarded to said CPU memory if related physical storage unit addressing information is not present in said lookup table
- 16. The fabric of claim 14, said device further including:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 17. The fabric of claim 13, said device further including:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 18. The fabric of claim 12, said device further including:
second receive port logic for receiving frames; second frame extraction logic coupled to said second receive port to extract frame addressing information; and second transmit port logic coupled to said substitution logic to transmit said substituted frame, wherein said staging memory is further coupled to said second receive port logic; and wherein said lookup logic is further coupled to said second frame extraction logic.
- 19. The fabric of claim 18, wherein a frame received from said receive port logic may be transmitted by said second transmit port logic.
- 20. The fabric of claim 18, wherein a frame received from said second receive port logic may be transmitted by said transmit port logic.
- 21. The fabric of claim 12, wherein said lookup logic further uses said extracted frame addressing information to retrieve related host addressing information, and wherein said substitution logic further substitutes said related host addressing information into said received frame.
- 22. The fabric of claim 12, wherein said lookup logic further determines if said received frame is to be duplicated to different physical storage units and retrieves related physical storage unit addressing information for each different physical storage unit and provides all said physical storage unit addressing information to said substitution logic, and wherein said substitution logic retrieves said received frame and substitutes said related physical storage unit addressing information into said received frame for each different physical storage unit.
- 23. A network comprising:
at least one host; at least one physical storage unit; a switch coupled to said at least one host and said at least one physical storage unit; and a virtualization device coupled to said switch, said at least one host and said at least one physical storage unit, said device including:
receive port logic for receiving frames; a lookup table containing physical storage unit addressing information related to virtualized storage units; frame information extraction logic coupled to said receive port logic to extract frame addressing information; staging memory coupled to said receive port logic for temporarily holding a received frame; lookup logic coupled to said lookup table and said frame information extraction logic and using said extracted frame addressing information to retrieve related physical storage unit addressing information; substitution logic coupled to said lookup logic and said staging memory to retrieve said received frame and substitute said related physical storage unit addressing information into said received frame; and transmit port logic coupled to said substitution logic to transmit said substituted frame.
- 24. The network of claim 23, said device further including:
a central processing unit (CPU); CPU memory; and a bus coupled to said CPU, said CPU memory and said lookup table.
- 25. The network of claim 24, said device further including:
forwarding logic coupled to said lookup logic, said staging memory and said CPU memory to forward received,frames to said CPU memory for processing by said CPU.
- 26. The network of claim 25, wherein received frames are forwarded to said CPU memory if related physical storage unit addressing information is not present in said lookup table
- 27. The network of claim 25, said device further including:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 28. The network of claim 24, said device further including:
direct transmission logic coupled to said CPU memory, said staging memory and said substitution logic to retrieve a frame from said CPU memory and provide it to said substitution logic.
- 29. The network of claim 25, said device further including:
second receive port logic for receiving frames; second frame extraction logic coupled to said second receive port to extract frame addressing information; and second transmit port logic coupled to said substitution logic to transmit said substituted frame, wherein said staging memory is further coupled to said second receive port logic; and wherein said lookup logic is further coupled to said second frame extraction logic.
- 30. The network of claim 29, wherein a frame received from said receive port logic may be transmitted by said second transmit port logic.
- 31. The network of claim 29, wherein a frame received from said second receive port logic may be transmitted by said transmit port logic.
- 32. The network of claim 23, wherein said lookup logic further uses said extracted frame addressing information to retrieve related host addressing information, and wherein said substitution logic further substitutes said related host addressing information into said received frame.
- 33. The network of claim 23, wherein said lookup logic further determines if said received frame is to be duplicated to different physical storage units and retrieves related physical storage unit addressing information for each different physical storage unit and provides all said physical storage unit addressing information to said substitution logic, and wherein said substitution logic retrieves said received frame and substitutes said related physical storage unit addressing information into said received frame for each different physical storage unit.
- 34. A method for operating a virtualization device for use with at least one host and at least one physical storage unit, the method comprising the steps of:
receiving frames at a port; providing a lookup table containing physical storage unit addressing information related to virtualized storage units, extracting frame addressing information from a received frame; temporarily holding a received frame; using said extracted frame addressing information to retrieve related physical storage unit addressing information from the lookup table; retrieving said received frame and substituting said related physical storage unit addressing information into said received frame; and transmitting said substituted frame from the port.
- 35. The method of claim 34, further comprising the step of:
forwarding received frames to a CPU memory for processing by a CPU.
- 36. The method of claim 35, wherein received frames are forwarded to said CPU memory if related physical storage unit addressing information is not present in said lookup table
- 37. The method of claim 35, further comprising the step of:
retrieving a frame from said CPU memory and providing it to said substituting step.
- 38. The method of claim 34, further comprising the step of:
retrieving a frame from a CPU memory and providing it to said substituting step.
- 39. The method of claim 34, further comprising the steps of:
receiving frames at a second port; extracting frame addressing information from received frames at the second prot; and transmitting said substituted frame from the second port.
- 40 The method of claim 39, wherein a frame received from the port may be transmitted by the second port.
- 41. The method of claim 39, wherein a frame received from the second port may be transmitted by the port.
- 42. The method of claim 34, wherein said retrieving related physical storage unit addressing information step further uses said extracted frame addressing information to retrieve related host addressing information, and wherein said substituting step further substitutes said related host addressing information into said received frame.
- 43. The method of claim 34, wherein said retrieving related physical storage unit addressing information step further determines if said received frame is to be duplicated to different physical storage units and retrieves related physical storage unit addressing information for each different physical storage unit and provides all said physical storage unit addressing information to said substitution logic, and wherein said substituting step retrieves said received frame and substitutes said related physical storage unit addressing information into said received frame for each different physical storage unit.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to and incorporates by reference, U.S. patent applications Ser. Nos. 10/______, entitled “Method And Apparatus For Virtualizing Storage Devices Inside A Storage Area Network Fabric,” by Naveen Maveli, Richard Walter, Cirillo Lino Costantino, Subhojit Roy, Carlos Alonso, Mike Pong, Shahe H. Krakirian, Subbarao Arumilli, Vincent Isip, Daniel Chung, and Steve Elstad, filed concurrently herewith, and 10/______, entitled “Host Bus Adaptor-Based Virtualization Switch,” by Subhojit Roy, Richard Walter, Cirillo Lino Costantino, Naveen Maveli, Carlos Alonso, and Mike Pong, filed concurrently herewith, such applications hereby being incorporated by reference.