Structure and method for message snooping in SCSI bus expanders
First Claim
Patent Images
1. A SCSI expander comprising:
- a first port;
a second port;
a message delay buffer coupled to said first port and to said second port;
a message snooping status comprising a plurality of message status flags; and
a message-snooping logic circuit coupled to said message delay buffer and to said message snooping status wherein upon detection of a pre-selected message being transferred between said first and second ports, said message-snooping logic circuit (i) asserts one of said plurality of message status flags, (ii) enables said message delay buffer to receive said selected message, and (iii) delays transfer of said pre-selected message between said first and second ports.
6 Assignments
0 Petitions
Accused Products
Abstract
A SCSI selective options message delay expander includes a capability for monitoring messages transferred between a first port and a second port of the expander, for delaying a pre-selected message, for modifying the delayed pre-selected message, and for storing information obtained from the delayed pre-selected message. The ability to change messages allows the expander to be used with SCSI initiators and/or SCSI target devices that have SCSI characteristics different from the SCSI characteristics of the expander.
21 Citations
41 Claims
-
1. A SCSI expander comprising:
-
a first port;
a second port;
a message delay buffer coupled to said first port and to said second port;
a message snooping status comprising a plurality of message status flags; and
a message-snooping logic circuit coupled to said message delay buffer and to said message snooping status wherein upon detection of a pre-selected message being transferred between said first and second ports, said message-snooping logic circuit (i) asserts one of said plurality of message status flags, (ii) enables said message delay buffer to receive said selected message, and (iii) delays transfer of said pre-selected message between said first and second ports. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
a sequencer coupled to said message snooping status and to said message delay buffer.
-
-
7. The SCSI expander of claim 6 wherein said plurality of message status flags includes a message-received status flag having a first state and a second state wherein said second state of said message-received status flag indicates said message delay buffer contains at least a predefined number of units of said pre-selected message.
-
8. The SCSI expander of claim 7 wherein upon detecting said second state of said message-received status flag, said sequencer saves information contained in said message delay buffer as saved message information.
-
9. The SCSI expander of claim 8 further comprising:
a data transfer option table stored in a memory coupled to said sequencer, wherein said sequencer updates said data transfer option table using said saved message information upon determining that a SCSI data transfer option negotiation completed successfully.
-
10. The SCSI expander of claim 8 wherein said plurality of message status flags includes a message-direction flag having a first state and a second state wherein said first and second states of said message-direction flag indicate directions of data transfer between said first and second ports.
-
11. The SCSI expander of claim 10 wherein said saved information further comprises said message-direction flag.
-
12. The SCSI expander of claim 8 wherein said plurality of message status flags includes a message-release flag wherein a state of said message-release flag indicates that any un-transferred units of said pre-selected message contained in said message delay buffer can be transferred through said SCSI expander.
-
13. The SCSI expander of claim 1 further comprising:
a message unit modification circuit coupled to said message-snooping logic circuit and to said message delay buffer, wherein said message unit modification circuit modifies a unit of said pre-selected message contained in said message delay buffer.
-
14. A SCSI expander comprising:
-
a first port;
a second port;
a message delay buffer coupled to said first port and to said second port;
a message snooping status comprising;
a message-direction flag having a first state and a second state wherein said first and second states of said message-direction flag indicate directions of data transfer between said first and second ports;
a message-received status flag having a first state and a second state;
a message-delay status flag having a first state and a second state; and
a message-release flag having a first state and a second state;
a message-snooping logic circuit coupled to said message delay buffer and to said message snooping status wherein following detection, by said message-snooping logic circuit, of a pre-selected message being transferred between said first and second ports, said message-snooping logic circuit (i) changes said message-delay status flag from said first state to said second state, (ii) enables said message delay buffer to receive said selected message, (iii) delays transfer of said pre-selected message between said first and second ports and (iv) changes said message-received status flag from said first state to said second state upon said pre-selected message being contained in said message delay buffer; and
a sequencer coupled to said message snooping status and to said message delay buffer wherein said sequencer saves information contained in said message delay buffer as saved information following said message-received status flag changing from said first state to said second state, and said sequencer changes said message-release flag from said first state to said second state. - View Dependent Claims (15)
a data transfer options table store in a memory coupled to said sequencer.
-
-
16. In a SCSI expander, a method comprising:
-
monitoring messages transferred between a first port and a second port of said SCSI expander for a message used for negotiating data transfer options over a SCSI bus; and
delaying transfer of said message between said first and second ports of said SCSI expander upon said monitoring messages detecting said message. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
delaying transfer of only a portion of said message.
-
-
18. The method of claim 17 wherein said portion is said message.
-
19. The method of claim 17 wherein said portion is a last unit of said message.
-
20. The method of claim 17 wherein said portion includes units in said message from a pre-selected unit of said message to a last unit of said message.
-
21. The method of claim 16 wherein said monitoring is performed only during SCSI bus message phases.
-
22. The method of claim 16 wherein said delaying transfer of said message further comprises:
asserting a message-delay status flag upon said monitoring messages detecting said message.
-
23. The method of claim 16 wherein said delaying transfer of said message further comprises:
loading said message into a message delay buffer.
-
24. The method of claim 23 wherein said delaying transfer of said message further comprises:
asserting a message-received status flag upon said message being loaded in said message delay buffer.
-
25. The method of claim 24 wherein said delaying transfer of said message further comprises:
saving information in said message upon said message-received status flag being asserted.
-
26. The method of claim 25 wherein said delaying transfer of said message further comprises:
asserting a message-release flag after said saving information.
-
27. The method of claim 26 further comprising:
releasing any portion of said message from said message delay buffer that has not been transferred through said SCSI expander.
-
28. The method of claim 27 wherein said any portion is said message.
-
29. The method of claim 27 any portion is a last unit of said message.
-
30. The method claim 27 wherein said any portion includes units in said message from a pre-selected unit of said message to a last unit of said message.
-
31. In a SCSI expander, a method comprising:
-
detecting a message phase on a SCSI bus;
monitoring, upon detecting said message phase, messages transferred between a first port and a second port of said SCSI expander for a message used in negotiating data transfer options over said SCSI bus;
entering a message delay state upon said monitoring messages detecting said message;
determining whether a next unit of said message to be transferred between said first and second ports is a pre-selected unit;
transferring said next unit between said first and second ports and loading said next unit into a message delay buffer, upon determining said next unit of said message is not said pre-selected unit; and
loading said next unit into said message delay buffer and delaying transfer of said next unit and any subsequent units of said message between said first and second ports, upon determining said next unit of said message is said pre-selected unit. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40)
loading said any units of said message, subsequent to said pre-selected unit, into said message delay buffer.
-
-
33. The method of claim 32 further comprising:
asserting a message-received status flag upon said message being loaded in said message delay buffer.
-
34. The method of claim 33 further comprising:
saving information in said message upon said message-received status flag being asserted.
-
35. The method of claim 34 further comprising:
asserting a message-release flag after said saving information.
-
36. The method of claim 35 further comprising:
transferring said pre-selected unit and said any subsequent units of said message through said SCSI expander.
-
37. The method of claim 31 wherein said pre-selected unit is a first unit of said message.
-
38. The method of claim 31 wherein said pre-selected unit is a last unit of said message.
-
39. The method of claim 31 wherein said pre-selected unit is a unit between a first unit of said message and a last unit of said message.
-
40. The method of claim 31 further comprising:
modifying a unit of said message in said message delay buffer.
-
41. In a SCSI expander, a method comprising:
-
detecting a message phase of a SCSI bus;
monitoring messages transferred between a first port and a second port of said SCSI expander for a message used in negotiating data transfer options over said SCSI bus, upon detecting said message phase;
entering a message delay state upon said monitoring messages detecting said message;
determining whether a next unit of said message to be transferred between said first and second ports is a pre-selected unit;
transferring said next unit between said first and second ports and loading said next unit into a message delay buffer, upon determining said next unit of said message is not said pre-selected unit;
loading said next unit into said message delay buffer and delaying transfer of said next unit and any subsequent units of said message between said first and second ports, upon determining said next unit of said message is said pre-selected unit;
loading said any subsequent units of said message into said message delay buffer;
modifying a unit of said message in said message delay buffer;
asserting a message-received status flag upon said message being loaded in said message delay buffer; and
saving information in said message upon said message-received status flag being asserted.
-
Specification