EP0887739B1 - Detection of SCSI devices at illegal locations - Google Patents
Detection of SCSI devices at illegal locations Download PDFInfo
- Publication number
- EP0887739B1 EP0887739B1 EP98111785A EP98111785A EP0887739B1 EP 0887739 B1 EP0887739 B1 EP 0887739B1 EP 98111785 A EP98111785 A EP 98111785A EP 98111785 A EP98111785 A EP 98111785A EP 0887739 B1 EP0887739 B1 EP 0887739B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- scsi
- bus
- detecting
- low
- narrow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
Definitions
- This invention relates to the detection of SCSI (small computer system interface) devices installed at illegal locations on a SCSI bus.
- the invention relates to detecting in a mixed environment which contains eight bit SCSI devices and sixteen bit SCSI devices, any eight bit SCSI devices installed at SCSI bus address-identified locations intended for sixteen bit SCSI devices.
- First generation SCSI devices were eight bit devices and were addressed on a SCSI bus with an address identification (ID) of 0 through 7. With the advent of sixteen bit SCSI devices and larger peripheral systems particularly storage systems, the address ID for SCSI devices expanded from 0 through 7 to 0 through 15. With both sizes of SCSI devices available, narrow (8 bit) and wide (16 bit), computer users often mix narrow and wide SCSI devices as they upgrade their system.
- ID address identification
- a problem of conflicts in address may occur if the SCSI devices are not properly installed in the system.
- a narrow SCSI device will only correctly recognize it is being addressed if it is located at an address slot with an ID between 0 and 7. If a narrow SCSI device is installed in a slot with an address ID of 8 to 15, the narrow device will not recognize the high order ID address bit. Accordingly, a narrow SCSI device installed at ID's 8 through 15 will configure itself to respond to a SCSI address line for ID 0 through 7. For example, a narrow device installed at slot ID 8 will define itself as a SCSI device ID 0.
- a controller When a controller activates the ID 0 address line, it will get a response from a SCSI device actually located at slot 0 and a conflicting response from the narrow device at slot 8 that thinks it is an ID 0 SCSI device. This will create bus conflicts and corrupt data.
- EP 0 465 079 discloses a configuration method for preventing address conflicts for I/O devices.
- the above problem has generally been solved by (1) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID that matches a controller ID bus address for the controller attached to the SCSI bus, (2) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to a slot where another SCSI device is installed, and (3) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to an unused slot where another SCSI device may be installed in the. future.
- the invention in its broad form, resides in a method for detecting computer system interface devices installed in illegal slots, as recited in claim 1, and an apparatus for detecting computer system interface devices installed in illegal slots, as recited in claim 16.
- a set module sets high ID and low ID address pairs as test pairs for the SCSI subsystem.
- the low ID is the alias of the high ID if a narrow SCSI device is installed at the high ID slot.
- a first address module calls a non-responsive ID bus address corresponding to a slot known to be unused.
- a first test module detects a response when the first address module calls the non-responsive ID bus address. This response indicates a narrow SCSI device is installed at the high ID of the test pair and the narrow SCSI device has configured to an alias bus address matching the controller ID.
- a second address module generates a call to the low ID bus address in the test pair.
- a second test module detects a conflict in responses when the second address module calls the low ID. The conflict indicates a SCSI device is installed at the low ID and a narrow SCSI device is installed at the high ID of the test pair.
- a third address module generates a call to the high ID bus address in the test pair.
- a third test module detects no response to the call from the third address module and detects a response to the call from the second address module. This combination of response and no response indicates a narrow SCSI device is installed at the high ID and the narrow SCSI device would conflict in the future with a SCSI device subsequently installed at the unused low ID.
- a module responsive to the first test module isolates the narrow SCSI device at the high ID conflicting with the controller ID in order to disconnect this narrow SCSI device from the SCSI bus.
- a module updates the high/low ID test pair to a new test pair until all test pairs have been tested.
- the present invention efficiently detects narrow SCSI devices improperly installed in a slot for wide SCSI devices and such detection will prevent data corruption and parity errors due to conflicts while allowing the SCSI subsystem to continue to operate.
- FIG. 1 illustrates the logical operations in a preferred embodiment of the present invention.
- the operations must detect a conflict between a narrow SCSI device at a high ID (ID address addressable for a wide SCSI device) and a SCSI device at a low ID (ID address addressable for a narrow or wide SCSI device) to which the high ID aliases.
- Alias of high ID to a low ID refers to the low ID address that a narrow SCSI device would set up to recognize if the narrow device is installed in a high ID slot on the SCSI bus.
- the operations must detect a potential conflict between a narrow SCSI device at a high ID and no SCSI device at the alias low ID. This is a potential conflict in that there will be a conflict in the future when a SCSI device is installed at the alias low ID.
- the operations must detect a conflict between a narrow device installed at a high ID and a controller using the low ID to which the high ID device aliases.
- Operation 10 provides a set of "test IDs" to be checked for conflict situations.
- Operation 10 uses bit maps indicating the location of SCSI devices at high ID locations on the SCSI bus that could alias to a low ID. For example if the high IDs are 8 through 15 but only slots for IDs 8,9, and 11-14 are occupied, then only IDs 8, 9, 11-14 and their alias IDs would be in the test set of IDs. Alternatively, all IDs could be tested and the test results compared to the bit maps indicating the location of SCSI devices. The bit maps confirm the test results in this alternative.
- decision operation 12 tests whether the test ID aliases to an ID location for a controller.
- the controllers are usually located at ID 6 and ID 7. Accordingly a narrow SCSI device at test ID 14 or ID 15 could alias to a controller ID. If the SCSI bus has only one controller, the logical operations in FIG. 1, which are performed in the controller, would know whether the controller is at ID 6 or ID 7. If the test ID does alias to a controller ID, the operation flow branches to detect operation 14.
- the detect operation 14 causes the controller to call an ID that is known to be non-responsive.
- the form of the call includes the controller ID as well as the target ID. If the target ID is for a location that is known to be unused or disabled, there should be no response to the call. If there is a response, then detect operation 14 detects the response. Such a response indicates that there is a slot with an installed SCSI device that has configured its ID address to be the same as the controller's. In particular, there is a narrow SCSI device at the test ID that has caused the test ID to alias to the controller ID.
- isolate operation 16 isolates the test ID from the SCSI bus and marks the test ID as unusable.
- the isolation of the test ID is necessary since all actions on the bus by the controller will contain the controller ID which would trigger an improper response from the narrow drive at the test ID aliasing to the controller ID. Isolating the narrow SCSI device at the test ID location will likely require disabling a segment of the SCSI bus. If the segment contains more than one ID location, SCSI devices at those locations will also be cut off from the bus and marked as unusable.
- the operation flow branches "No" at operation 12 to conflict decision operation 18.
- Operation 18 tests for a conflict on the SCSI bus in response to a call to the low ID.
- a bus conflict results if two SCSI devices are responding to a call from the controller. The two responses are mixed on the bus, and a bus conflict manifests itself as a parity error in the response on the bus.
- a bus conflict at a low ID occurs if there is a SCSI device at the low ID and a narrow SCSI device at the high ID.
- the logical operation flow branches "Yes" to detect operation 20. Detect operation 20 causes the controller to send a call at the high ID.
- Operation 20 tests for a response at the high ID. Since there was a conflict at the alias low ID, there should be no response detected at the high ID. Thus, operation 20 verifies the "Yes" result from operation 18. After operation 20, both the low ID and the high ID that aliases to the low ID are marked as unusable by operation 22.
- Detect operations 24 and 25 are testing for potential conflicts. Detect operation 24 detects that there was a response at the low ID and then generates a call. to the high ID to detect no response at the high ID. Detect operation 25 detects from the bus map that there is no SCSI device at the low ID and there is a SCSI device at the high ID. This detection combination indicates there is no SCSI device at the low ID location and that a narrow SCSI device at the high ID location is responding at the alias low ID. After the combination of operations 24 and 25, mark operation 22 marks the low ID and high ID as unusable. In this way, a potential conflict in the future, when a SCSI device is installed at the low ID location, is prevented.
- An operating environment, as shown in FIG. 2, for the preferred embodiment of the invention is a system having multiple controllers (or initiators) and a plurality of SCSI devices connected to the controllers over a plurality of SCSI buses.
- the storage system in FIG. 2 has three cabinets, Cabinet 0, Cabinet 1 and Cabinet 2, for SCSI devices.
- Each cabinet can hold twenty four SCSI devices 50, for example hard disk drives, distributed over six SCSI buses, SCSI 1 through SCSI 6, with four SCSI devices per bus.
- Each SCSI bus has a bus extender chip 52 that enables the bus to be connected to the same bus in other cabinets. Since there are three cabinets and four SCSI devices 50 per SCSI bus per cabinet, there are twelve SCSI devices 50 per SCSI bus.
- the bus extender chips 52 are enabled or disable to effectively divide each SCSI bus into three segments with four SCSI devices per segment.
- the bus extender chip designed by Digital Equipment Corporation and Symbios Logic, Inc., is a SYM53C120 chip available from Symbios Logic, Inc.
- Each cabinet has an Environmental Monitor Unit (EMU) which is a small module having a small processor.
- the EMU performs some monitoring and control functions with respect to the SCSI devices and SCSI buses in the cabinet.
- the two functions, performed by the EMU in each cabinet, that are used by the present invention, are (1) the generation of a SCSI device bit map for the cabinet and (2) the "On/Off" control of the six bus extender chips 52 in the cabinet.
- the SCSI device bit map indicates which of the twenty four SCSI device slots in the cabinet are actually occupied by a SCSI device.
- each EMU generates a map where, for example, a binary one at a map location represents a SCSI device at the slot assigned to that map location. Conversely, a binary zero would indicate the slot is empty.
- bus extender chips 52 The "On/Off" control of bus extender chips 52 is used to divide each SCSI bus into three segments. If bus extenders 52 in all cabinets are off then only SCSI bus segment 0, i.e. portion of SCSI bus in Cabinet 0 is active. By turning “On" bus extenders 52 in Cabinet 0 and Cabinet 1, segments 0 and 1 of the SCSI buses are active. By turning “On” bus extenders 52 in Cabinet 0 and Cabinet 2, segments 0 and 2 are active. When the bus extenders in all cabinets are "On”, then all three segments are active.
- EMU 0 in Cabinet 0 is the master EMU and communicates with EMU 1 and EMU 2 in Cabinets 1 and 2, respectively. EMU 0 is also communicating with Controller A and Controller B in Cabinet 0.
- Controllers working with the EMUs as will be described in detail hereinafter. All six SCSI buses are controlled from Controller A and Controller B.
- the controllers are only located in Cabinet 0. A single controller could be used, but reliability is enhanced by using two controllers.
- FIGS. 3A and 3B show the details for interconnecting SCSI devices with controllers on one SCSI bus.
- FIGS. 3A and 3B also show the interconnection between EMUs, controllers and bus extenders.
- the SCSI bus and EMU connections in Cabinet 2, which are not shown, are structured like the connections in Cabinet 1 in FIG. 3B.
- Each of the six SCSI buses would be implemented as shown in FIGS. 3A and 3B.
- the internal SCSI bus 60 is connected to SCSI devices 62, 63, 64, 65, and to controller A and controller B. These SCSI devices would be located at slots where they would configure with SCSI bus ID's 0, 1, 2 and 3, respectively. Also attached to the internal SCSI bus 60 is controller A at SCSI bus address ID 6.and controller B at SCSI bus address ID 7.
- the internal SCSI bus 60 is connected to SCSI 61 bus external to cabinet 0 through the bus extender chip 66.
- the bus extender 66 When the bus extender 66 is turned on, or is enabled, the internal SCSI bus 60 is connected the SCSI bus 61 external to cabinet 0.
- SCSI bus 60 is connected to SCSI buses inside cabinets 1 and 2 if their bus extenders are also turned on.
- Enabling or disabling bus extender 66 is controlled by the environmental monitor unit 0 in cabinet 0.
- Environmental monitor unit 0 responds to a turn on or turn off command from controller A or controller B to turn bus extender 66 on or off.
- the Environmental Monitor Unit 0 (EMU) is connected to EMU 1 in cabinet 1 and EMU 2 in cabinet 2.
- EMU 0 is the master EMU communicating information to, and gathering information from, EMU 1 and 2. For example, EMU 0 would obtain bit maps from EMU 1 for the portion of the SCSI bus in cabinet 1. Controller A and controller B inside cabinet 0 control all the SCSI devices in all the cabinets.
- controllers A and B in cabinet 0 call SCSI devices in cabinet 0 over the internal SCSI bus 60 and call SCSI devices in cabinets 1 and 2 over the external SCSI bus 61Via SCSI bus 60. Controllers A and B communicate with the Master Environmental Unit EMU 0 over signal lines 68. And lastly, controller A and controller B communicate with the host computing system 70 to respond to requests from the host and provide responses from SCSI devices to the host. In a simpler system the controller function might be performed by the host in which case the SCSI bus connects directly to the host.
- bus extender 72 connects the external SCSI bus 61 to the internal SCSI bus 74 inside cabinet 1.
- Internal SCSI bus 74 in cabinet 1 is connected to each of the SCSI devices 75, 76, 78, and 79. These SCSI devices would be installed at slots that would normally configure the SCSI address location to ID 8, ID 9, ID 10 and ID 11, respectively.
- SCSI devices 75, 76, 78, 79 would have to be wide SCSI devices. As explained above, if the SCSI devices were narrow SCSI devices, they would configure as if they were at ID 0, ID 1, ID 2 and ID 3.
- Bus extender 72 is enabled or disabled to connect, or isolate, bus 74 with bus 61 by the on/off control from Environmental Monitor Unit 1 (EMU 1).
- Environmental Monitor Unit 1 communicates with EMU 0 to receive commands from controllers A and B and to provide bit map information to controllers A and B.
- EMU 1 gathers the bit map data in cabinet 1 for the possible 24 SCSI devices (6 buses, four drives per bus) installed in cabinet 1.
- the structure of the SCSI bus connections, bus extender and EMU connections in cabinet 2 would be the same as cabinet 1 except, of course, that the IDs are now ID 12, ID 13, ID 14 and ID 15 for the SCSI device locations.
- the EMU is now EMU 2 rather than EMU 1.
- the logical operations performed by the controllers with the cooperation of the EMU's are shown for a preferred embodiment of the invention in FIG. 4.
- the controllers When the controllers are requested to detect SCSI devices at illegal ID locations, the logical operations begin at receive operation 80.
- receive operation 80 recognizes a request to detect SCSI devices having illegal ID's, it starts a process of walking through calls to all of the SCSI device ID's of a SCSI bus to test for responses. Further, this walk-through process is organized by segments of the SCSI bus. In the preferred embodiment, the segmentation is done by the bus extenders.
- Verify operation 82 verifies responses from SCSI devices in segment 0.
- Operation 82 first turns all the bus extenders off, effectively isolating the SCSI buses in segment 0 from the SCSI buses in segments 1 and 2.
- verify operation 82 inquires, or calls, SCSI device ID's 0 through 3.
- the inquiry or call operation is looking for a response from a called ID and compares the existence of a response to the bit map for SCSI Devices in segment 0 (cabinet 0).
- the bit map should indicate the presence of a SCSI device, and every SCSI device present should produce a response to the call.
- the verify operation is also looking for errors, such as parity errors, from the SCSI devices to verify that the SCSI devices in segment 0 are operating correctly with the controllers.
- segment 1 detect operation 84 begins.
- segment 1 detect operation 84 only segment 2 bus extenders are turned off. Bus extenders in segment 0 and segment 1 are turned on. Accordingly, the SCSI devices on the bus in cabinet 0 are now connected with the SCSI devices in cabinet 1 and all of these devices are communicating with the controllers. The controllers now use the active or call operation to call each of the SCSI ID's 0-3 and 11-8. Whether ID's 11-8 are called from high to low or low to high is a matter of choice. Recall that if a narrow SCSI device is at ID location 8-11, it will configure as if it were at an ID 0-3. Therefore, when calls go out to ID's 0-3 and a bus conflict is detected, then a narrow drive has been detected at a high ID.
- the high ID's are also called so as to confirm that there is "No" response at a high ID.
- a "No" response at a high ID confirms a conflict at a low ID, or as explained in FIG. 1, indicates a potential future conflict with a future device low ID.
- the details for operations to detect narrow SCSI devices at a high ID will described hereinafter with reference to FIG. 6.
- Detect operation 86 will detect narrow SCSI devices located in segment 2 (cabinet 2) that conflict either with controllers or with potential future SCSI devices installed at ID locations not currently used.
- the segment 2 detect operation 86 begins by turning off the segment 1 bus extenders and turning on segment 0 and segment 2 bus extenders. This will isolate segment 1 (cabinet 1) from the SCSI bus and permit the detect operation to work only with slot locations for IDs 0 through 3 and 15 through 12. If narrow SCSI devices were located at slots normally configuring to ID's 12 and 13, the narrow SCSI devices would configure to ID's 4 and 5. Narrow SCSI devices and slots normally configuring to ID's 14 and 15 would instead configure to alias ID's 6 and 7.
- Devices aliasing to ID 4 and ID 5 would be conflicting with potential future SCSI devices in future slots assigned to ID 4 and ID 5.
- Devices aliasing to ID 6 and ID 7 would conflict with controllers. The details for implementing the detection operations for segment 2 will be described hereinafter with reference to FIG. 6.
- operation 88 verifies the operation of all SCSI devices.
- the verification begins by turning on all the bus extenders so that all segments of each SCSI bus are now active. The test operation then continues by activating SCSI device ID's 0-3 for segment 0, 8-11 for segment 1 and 12-15 for segment 2. All SCSI device operations should respond correctly or should have been disabled during operations 82, 84 and 86.
- the verification operation in 88 is simply to test that once all segments are on, the SCSI devices connected to the various SCSI buses are operating as expected.
- the detect SCSI devices operations 84 and 86 in FIG. 4 are shown in detail.
- the controller on each SCSI bus begins at request operation 90.
- Request operation 90 requests the bus extensions on and off, as appropriate, to the verify or detect operation in FIG. 4 that is taking place. If the detect operation 84 in FIG. 4 is being performed, the request operation would request bus extenders in segment 2 "off" and bus extenders in segments 0 and 1 "on.”. Also, the request operation requests the appropriate segment bit maps. For example, if detect operation 84 is the present operation, then the bit maps for segment 0 and segment 1 are the bit maps requested. These requests from request operation 90 are sent to the Environmental Monitor Units 0 and 1 (EMU 0 and EMU 1). The EMUs have already generated the bit map of SCSI devices in their cabinet in bit map generation operation 92. Each EMU and each segment generates the bit map for its particular segment.
- Receive operation 94 in EMU 0 receives the request from the controller or controllers. Depending upon which operation 84 or 86 in FIG. 4 is active and which segment of the SCSI bus are being tested, the requests are passed from EMU 0 to the appropriate EMU or EMUs 1 and 2 in segments 1 and 2.
- the EMUs receiving the request passed from receive operation 94 will then enable or disable bus extenders in their segment by executing enable/disable operations 96. Similarly, the appropriate EMUs receiving the request for bit maps will then respond by send operation 98 sending the requested bit map back to the controller in cabinet 0.
- the controller at operation 100 receives the bit maps. With bit maps available and the bus extenders appropriately turned on or off, the SCSI device discovery operation 102 proceeds to detect SCSI devices at the various SCSI bus IDs to be tested. The details of the SCSI device discovery logical operations are shown in FIG. 6.
- set operation 104 setting a first high ID and low ID pair to be tested.
- the pair is of course the high ID and the low ID to which the high ID would alias if a narrow SCSI device is installed at the high ID. It is a matter of choice as to whether the test operations begin at the top or bottom of a range of SCSI address IDs. Detection of SCSI devices aliasing to controller IDs is of primary importance since such a condition would prevent detection of narrow SCSI devices at other high IDs, as will be discussed hereinafter. Accordingly set operation 104, when detecting devices in segment 1, will set to a high/low ID pair -- ID 8 and ID 0 or at the other end of the range to ID 11 and ID 3.
- set operation 104 When detecting devices in segment 2, set operation 104 will first set to the high ID whose alias low ID matches the controller ID of the controller performing the tests. After that high ID is tested, set operation 104 will set to high ID and low ID combinations for high ID 12 and low ID 4 or high ID 13 and low ID 5. If there is a single controller on the SCSI bus, set operation 104 would also test the high/low ID combination pair where the high ID would alias to the other controller ID if the other controller were present.
- set operation 104 for the first controller testing the high/low ID combination pairs in segment 2 will set all high/low ID pairs except for the high ID that aliases to the low ID which is the second controller's ID.
- the first controller will then tell the other controller on the SCSI bus to test the high ID and low ID combination pair where a narrow SCSI device at the high ID would conflict with the second controller's ID.
- the first controller testing the high/low ID pairs could tell the second controller not to respond if it saw its ID and then make the high/low ID pair test for the second controller.
- Decision operation 106 detects when the set operation 104 has set a high/low ID pair where the high ID would alias to, i.e. the low ID matches, the ID of the controller.
- the controller IDs are ID 6 and ID 7. If the low ID matches the ID of the controller, the operations branch "Yes" to address operation 108.
- Address operation 108 causes the controller to address a known, non-responsive ID location.
- a known, non-responsive ID can be an ID in a segment that is disabled by the bus extenders in the segment being turned off. Also a known, non-responsive ID could be ID 4 or ID 5 which are known to be unused.
- Response decision operation 110 is looking for a response after address operation 108 has caused the controller to call what should be a non-responsive address. If there is no response, then there is no problem at the high/low ID pair under test, and the operation flow passes to update ID operation 112. However, if a narrow SCSI device is at the high ID slot under test, it will have configured itself to respond at the low ID matching the controller ID. Accordingly, the call from the controller will produce a response because the narrow SCSI device sees the controller ID in the call from the controller. For example, if a wide SCSI device is in the slot for ID 15 and a controller at ID 7 generates a call to ID 4, then the call which includes source address, ID 7, and target address, ID 4, will produce no response at SCSI ID 4.
- disable operation 114 isolates the problem high ID slot with the narrow SCSI device and disconnects it from the SCSI bus. Since any call from the controller would always produce a response from the narrow SCSI device at the problem high ID slot irrespective of the SCSI ID being addressed, the problem high ID slot with the narrow SCSI device must be isolated or disconnected from the SCSI bus. Once the narrow SCSI device is removed from the high ID slot, there is no further need to isolate the high ID slot.
- the narrow SCSI device aliasing to a controller ID is in segment 2 (cabinet 2). Since there is no way in the preferred embodiment to isolate a single SCSI device, the only available action is to isolate the segment containing the narrow SCSI device.
- disable operation 114 turns off the bus extender for segment 2 until the narrow SCSI device aliasing to the controller ID is removed. Since the bus extender for segment 2 is turned off, mark operation 116 marks all SCSI devices in segment 2 as unusable. In addition mark operation 118 marks the SCSI device at the high ID under test as a narrow device.
- update operation 112 increments or decrements the high/low ID pair depending on whether the test process is moving through the test range from low to high or high to low.
- Decision operation 120 tests whether the updated ID pair is still within the test range or is outside the test range. If the new high/low ID pair is within range, the logical operations return to decision operation 106 to begin the test for the new ID pair. Of course if the new ID pair is out of range, then the device discovery operations are complete, and the operation flow returns to FIG. 5 which returns to FIG. 4 for the next detect or verify operation.
- the operation flow in FIG. 6 branches "No" from decision operation 106 to call operation 122.
- Call operation 122 causes the controller to generate a call from the controller to the low ID in the high/low ID pair under test.
- Call operation also stores whether or not there was a response at the low ID.
- conflict detect operation 124 detects the conflict and the operation flow branches "Yes" to mark operation 118.
- a conflict detected means that two SCSI devices in separate slots responded to the call. In effect a SCSI device at the low ID responded, and at the same time a narrow SCSI device at the high ID responded. Accordingly mark operation 118 marks the narrow SCSI device at the high ID.
- the SCSI device at the high ID is a wide SCSI device and thus is properly installed.
- a narrow SCSI device is at a high ID slot and is aliasing to a low ID, and no SCSI device is installed at the alias low ID location. This latter possibility is the potential future conflict, i.e. a conflict would occur in the future if a SCSI device is installed at the low ID location.
- Call operation 125 addresses the high ID and stores whether or not there was a response at the high ID.
- Decision operation 126 tests for a response at the high ID. If there is a response at the high ID, the SCSI device at the high ID in the high/low ID pair under test must have been properly installed, and the operation flow passes to update operation 112.
- decision operation 130 tests whether call operation 122 produced a response at the low ID. If there was no response at the low ID as well, then there are no device installation faults, and update operation 112 updates the ID pair under test. If there is a response at the low ID, decision operation 130 branches "Yes" to mark operation 118 to mark a narrow SCSI device at a high ID. For example, with no device at ID 2 and a narrow SCSI device at the slot for ID 10, decision operation 126 will detect no response at the high ID 10, but decision operation 130 will detect a response at the alias low ID 2. Accordingly, mark operation 118 will mark a narrow SCSI device at high ID 10.
- decision operation 120 will return the operation flow to FIG. 5 and thereby to FIG. 4 for the next verify or detect operation in FIG. 4. After all verify or detect operations for all SCSI buses are complete, the test for SCSI devices at illegal locations is complete.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
- Bus Control (AREA)
Abstract
Description
- This invention relates to the detection of SCSI (small computer system interface) devices installed at illegal locations on a SCSI bus. In particular, the invention relates to detecting in a mixed environment which contains eight bit SCSI devices and sixteen bit SCSI devices, any eight bit SCSI devices installed at SCSI bus address-identified locations intended for sixteen bit SCSI devices.
- First generation SCSI devices were eight bit devices and were addressed on a SCSI bus with an address identification (ID) of 0 through 7. With the advent of sixteen bit SCSI devices and larger peripheral systems particularly storage systems, the address ID for SCSI devices expanded from 0 through 7 to 0 through 15. With both sizes of SCSI devices available, narrow (8 bit) and wide (16 bit), computer users often mix narrow and wide SCSI devices as they upgrade their system.
- In a peripheral system with mixed narrow and wide SCSI devices, a problem of conflicts in address may occur if the SCSI devices are not properly installed in the system. A narrow SCSI device will only correctly recognize it is being addressed if it is located at an address slot with an ID between 0 and 7. If a narrow SCSI device is installed in a slot with an address ID of 8 to 15, the narrow device will not recognize the high order ID address bit. Accordingly, a narrow SCSI device installed at ID's 8 through 15 will configure itself to respond to a SCSI address line for
ID 0 through 7. For example, a narrow device installed atslot ID 8 will define itself as aSCSI device ID 0. When a controller activates theID 0 address line, it will get a response from a SCSI device actually located atslot 0 and a conflicting response from the narrow device atslot 8 that thinks it is anID 0 SCSI device. This will create bus conflicts and corrupt data. - This problem can be avoided if the user installs only narrow SCSI devices in
slots 0 through 7. However, it frequently happens that the user incorrectly installs a narrow device inslots 8 through 15. In other words the narrow SCSI device is at an illegal location and has an illegal ID. The problem is how to detect narrow SCSI devices installed at illegal locations. -
EP 0 465 079 discloses a configuration method for preventing address conflicts for I/O devices. - In accordance with this invention the above problem has generally been solved by (1) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID that matches a controller ID bus address for the controller attached to the SCSI bus, (2) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to a slot where another SCSI device is installed, and (3) detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to an unused slot where another SCSI device may be installed in the. future.
- The invention, in its broad form, resides in a method for detecting computer system interface devices installed in illegal slots, as recited in
claim 1, and an apparatus for detecting computer system interface devices installed in illegal slots, as recited inclaim 16. - As described hereinafter, a set module sets high ID and low ID address pairs as test pairs for the SCSI subsystem. The low ID is the alias of the high ID if a narrow SCSI device is installed at the high ID slot. A first address module calls a non-responsive ID bus address corresponding to a slot known to be unused. A first test module detects a response when the first address module calls the non-responsive ID bus address. This response indicates a narrow SCSI device is installed at the high ID of the test pair and the narrow SCSI device has configured to an alias bus address matching the controller ID.
- A second address module generates a call to the low ID bus address in the test pair. A second test module detects a conflict in responses when the second address module calls the low ID. The conflict indicates a SCSI device is installed at the low ID and a narrow SCSI device is installed at the high ID of the test pair.
- A third address module generates a call to the high ID bus address in the test pair. A third test module detects no response to the call from the third address module and detects a response to the call from the second address module. This combination of response and no response indicates a narrow SCSI device is installed at the high ID and the narrow SCSI device would conflict in the future with a SCSI device subsequently installed at the unused low ID.
- Preferably, a module responsive to the first test module isolates the narrow SCSI device at the high ID conflicting with the controller ID in order to disconnect this narrow SCSI device from the SCSI bus.
- Advantageously, a module updates the high/low ID test pair to a new test pair until all test pairs have been tested.
- The present invention efficiently detects narrow SCSI devices improperly installed in a slot for wide SCSI devices and such detection will prevent data corruption and parity errors due to conflicts while allowing the SCSI subsystem to continue to operate.
- A more detailed understanding of the invention may be had from the following description of a preferred embodiment, given by way of example, and to be understood with reference to the accompanying drawing wherein:
- FIG. 1 shows logical operations performed to implement a preferred embodiment of the invention to detect a SCSI device at an illegal ID.
- FIG. 2 shows an operating environment for a preferred embodiment of the invention wherein there are six SCSI buses with three segments and four SCSI devices in each segment.
- FIG. 3A shows the details of one SCSI bus in
Cabinet 0 of FIG. 2. - FIG. 3B shows the details of one SCSI bus in
Cabinet 1 of FIG 2. - FIG. 4 illustrates the logical operations to implement a preferred embodiment of the invention in the operating environment of FIG. 2.
- FIG. 5 shows the details of verify or detect operations in FIG. 4.
- FIG. 6 shows the details of the device discovery operation in FIG. 5.
- FIG. 1 illustrates the logical operations in a preferred embodiment of the present invention. To determine when a SCSI device is installed at an illegal location, there are three basic conflict situations that must be detected. First, the operations must detect a conflict between a narrow SCSI device at a high ID (ID address addressable for a wide SCSI device) and a SCSI device at a low ID (ID address addressable for a narrow or wide SCSI device) to which the high ID aliases. Alias of high ID to a low ID refers to the low ID address that a narrow SCSI device would set up to recognize if the narrow device is installed in a high ID slot on the SCSI bus. Second, the operations must detect a potential conflict between a narrow SCSI device at a high ID and no SCSI device at the alias low ID. This is a potential conflict in that there will be a conflict in the future when a SCSI device is installed at the alias low ID. Third, the operations must detect a conflict between a narrow device installed at a high ID and a controller using the low ID to which the high ID device aliases.
- The logical operations begin in FIG. 1 at
operation 10 which provides a set of "test IDs" to be checked for conflict situations. Operation 10 uses bit maps indicating the location of SCSI devices at high ID locations on the SCSI bus that could alias to a low ID. For example if the high IDs are 8 through 15 but only slots forIDs 8,9, and 11-14 are occupied, then onlyIDs 8, 9, 11-14 and their alias IDs would be in the test set of IDs. Alternatively, all IDs could be tested and the test results compared to the bit maps indicating the location of SCSI devices. The bit maps confirm the test results in this alternative. - After
operation 10,decision operation 12 tests whether the test ID aliases to an ID location for a controller. In a SCSI bus with 0-15 IDs, the controllers are usually located atID 6 and ID 7. Accordingly a narrow SCSI device attest ID 14 or ID 15 could alias to a controller ID. If the SCSI bus has only one controller, the logical operations in FIG. 1, which are performed in the controller, would know whether the controller is atID 6 or ID 7. If the test ID does alias to a controller ID, the operation flow branches to detectoperation 14. - The detect
operation 14 causes the controller to call an ID that is known to be non-responsive. The form of the call includes the controller ID as well as the target ID. If the target ID is for a location that is known to be unused or disabled, there should be no response to the call. If there is a response, then detectoperation 14 detects the response. Such a response indicates that there is a slot with an installed SCSI device that has configured its ID address to be the same as the controller's. In particular, there is a narrow SCSI device at the test ID that has caused the test ID to alias to the controller ID. - When
operation 14 detects a response, then isolateoperation 16 isolates the test ID from the SCSI bus and marks the test ID as unusable. The isolation of the test ID is necessary since all actions on the bus by the controller will contain the controller ID which would trigger an improper response from the narrow drive at the test ID aliasing to the controller ID. Isolating the narrow SCSI device at the test ID location will likely require disabling a segment of the SCSI bus. If the segment contains more than one ID location, SCSI devices at those locations will also be cut off from the bus and marked as unusable. - For all test IDs, that do not alias to a controller ID, the operation flow branches "No" at
operation 12 toconflict decision operation 18.Operation 18 tests for a conflict on the SCSI bus in response to a call to the low ID. A bus conflict results if two SCSI devices are responding to a call from the controller. The two responses are mixed on the bus, and a bus conflict manifests itself as a parity error in the response on the bus. A bus conflict at a low ID occurs if there is a SCSI device at the low ID and a narrow SCSI device at the high ID. For all test IDs that produce a bus conflict at the low ID, the logical operation flow branches "Yes" to detectoperation 20. Detectoperation 20 causes the controller to send a call at the high ID.Operation 20 tests for a response at the high ID. Since there was a conflict at the alias low ID, there should be no response detected at the high ID. Thus,operation 20 verifies the "Yes" result fromoperation 18. Afteroperation 20, both the low ID and the high ID that aliases to the low ID are marked as unusable byoperation 22. - If
decision operation 18 does not find a bus conflict, the operation flow branches to detectoperation 24. Detectoperations operation 24 detects that there was a response at the low ID and then generates a call. to the high ID to detect no response at the high ID. Detectoperation 25 detects from the bus map that there is no SCSI device at the low ID and there is a SCSI device at the high ID. This detection combination indicates there is no SCSI device at the low ID location and that a narrow SCSI device at the high ID location is responding at the alias low ID. After the combination ofoperations mark operation 22 marks the low ID and high ID as unusable. In this way, a potential conflict in the future, when a SCSI device is installed at the low ID location, is prevented. - An operating environment, as shown in FIG. 2, for the preferred embodiment of the invention is a system having multiple controllers (or initiators) and a plurality of SCSI devices connected to the controllers over a plurality of SCSI buses. The storage system in FIG. 2 has three cabinets,
Cabinet 0,Cabinet 1 andCabinet 2, for SCSI devices. Each cabinet can hold twenty fourSCSI devices 50, for example hard disk drives, distributed over six SCSI buses,SCSI 1 throughSCSI 6, with four SCSI devices per bus. Each SCSI bus has abus extender chip 52 that enables the bus to be connected to the same bus in other cabinets. Since there are three cabinets and fourSCSI devices 50 per SCSI bus per cabinet, there are twelveSCSI devices 50 per SCSI bus. The bus extender chips 52 are enabled or disable to effectively divide each SCSI bus into three segments with four SCSI devices per segment. The bus extender chip, designed by Digital Equipment Corporation and Symbios Logic, Inc., is a SYM53C120 chip available from Symbios Logic, Inc. - Each cabinet has an Environmental Monitor Unit (EMU) which is a small module having a small processor. The EMU performs some monitoring and control functions with respect to the SCSI devices and SCSI buses in the cabinet. The two functions, performed by the EMU in each cabinet, that are used by the present invention, are (1) the generation of a SCSI device bit map for the cabinet and (2) the "On/Off" control of the six bus extender chips 52 in the cabinet. The SCSI device bit map indicates which of the twenty four SCSI device slots in the cabinet are actually occupied by a SCSI device. In other words, each EMU generates a map where, for example, a binary one at a map location represents a SCSI device at the slot assigned to that map location. Conversely, a binary zero would indicate the slot is empty. The "On/Off" control of bus extender chips 52 is used to divide each SCSI bus into three segments. If
bus extenders 52 in all cabinets are off then onlySCSI bus segment 0, i.e. portion of SCSI bus inCabinet 0 is active. By turning "On"bus extenders 52 inCabinet 0 andCabinet 1,segments bus extenders 52 inCabinet 0 andCabinet 2,segments -
EMU 0 inCabinet 0 is the master EMU and communicates withEMU 1 andEMU 2 inCabinets EMU 0 is also communicating with Controller A and Controller B inCabinet 0. The logical operations implementing the preferred embodiments of the invention are performed by Controllers working with the EMUs as will be described in detail hereinafter. All six SCSI buses are controlled from Controller A and Controller B. The controllers are only located inCabinet 0. A single controller could be used, but reliability is enhanced by using two controllers. - The details for interconnecting SCSI devices with controllers on one SCSI bus are illustrated in FIG 3A for
Cabinet 0 and in FIG. 3B forCabinet 1. FIGS. 3A and 3B also show the interconnection between EMUs, controllers and bus extenders. The SCSI bus and EMU connections inCabinet 2, which are not shown, are structured like the connections inCabinet 1 in FIG. 3B. Each of the six SCSI buses would be implemented as shown in FIGS. 3A and 3B. - In FIG. 3A, the
internal SCSI bus 60 is connected to SCSIdevices internal SCSI bus 60 is controller A at SCSI bus address ID 6.and controller B at SCSI bus address ID 7. - The
internal SCSI bus 60 is connected to SCSI 61 bus external tocabinet 0 through thebus extender chip 66. When thebus extender 66 is turned on, or is enabled, theinternal SCSI bus 60 is connected theSCSI bus 61 external tocabinet 0. In effect,SCSI bus 60 is connected to SCSI buses insidecabinets - Enabling or disabling
bus extender 66 is controlled by theenvironmental monitor unit 0 incabinet 0.Environmental monitor unit 0 responds to a turn on or turn off command from controller A or controller B to turnbus extender 66 on or off. By separate cable the Environmental Monitor Unit 0 (EMU) is connected toEMU 1 incabinet 1 andEMU 2 incabinet 2.EMU 0 is the master EMU communicating information to, and gathering information from,EMU EMU 0 would obtain bit maps fromEMU 1 for the portion of the SCSI bus incabinet 1. Controller A and controller B insidecabinet 0 control all the SCSI devices in all the cabinets. Thus, controllers A and B incabinet 0 call SCSI devices incabinet 0 over theinternal SCSI bus 60 and call SCSI devices incabinets 61Via SCSI bus 60. Controllers A and B communicate with the MasterEnvironmental Unit EMU 0 over signal lines 68. And lastly, controller A and controller B communicate with thehost computing system 70 to respond to requests from the host and provide responses from SCSI devices to the host. In a simpler system the controller function might be performed by the host in which case the SCSI bus connects directly to the host. - In FIG. 3B,
bus extender 72 connects theexternal SCSI bus 61 to theinternal SCSI bus 74 insidecabinet 1.Internal SCSI bus 74 incabinet 1 is connected to each of theSCSI devices ID 8, ID 9,ID 10 and ID 11, respectively. - To properly configure to these SCSI bus ID's,
SCSI devices ID 0,ID 1,ID 2 and ID 3. -
Bus extender 72 is enabled or disabled to connect, or isolate,bus 74 withbus 61 by the on/off control from Environmental Monitor Unit 1 (EMU 1).Environmental Monitor Unit 1 communicates withEMU 0 to receive commands from controllers A and B and to provide bit map information to controllers A andB. EMU 1 gathers the bit map data incabinet 1 for the possible 24 SCSI devices (6 buses, four drives per bus) installed incabinet 1. As mentioned earlier, the structure of the SCSI bus connections, bus extender and EMU connections incabinet 2 would be the same ascabinet 1 except, of course, that the IDs are nowID 12, ID 13,ID 14 and ID 15 for the SCSI device locations. Also, incabinet 2, the EMU is nowEMU 2 rather thanEMU 1. - The logical operations performed by the controllers with the cooperation of the EMU's are shown for a preferred embodiment of the invention in FIG. 4. When the controllers are requested to detect SCSI devices at illegal ID locations, the logical operations begin at receive
operation 80. When receiveoperation 80 recognizes a request to detect SCSI devices having illegal ID's, it starts a process of walking through calls to all of the SCSI device ID's of a SCSI bus to test for responses. Further, this walk-through process is organized by segments of the SCSI bus. In the preferred embodiment, the segmentation is done by the bus extenders. - Verify
operation 82 verifies responses from SCSI devices insegment 0.Operation 82 first turns all the bus extenders off, effectively isolating the SCSI buses insegment 0 from the SCSI buses insegments operation 82 inquires, or calls, SCSI device ID's 0 through 3. The inquiry or call operation is looking for a response from a called ID and compares the existence of a response to the bit map for SCSI Devices in segment 0 (cabinet 0). The bit map should indicate the presence of a SCSI device, and every SCSI device present should produce a response to the call. The verify operation is also looking for errors, such as parity errors, from the SCSI devices to verify that the SCSI devices insegment 0 are operating correctly with the controllers. After verifyoperation 82 is complete,segment 1 detectoperation 84 begins. - In
segment 1 detectoperation 84, onlysegment 2 bus extenders are turned off. Bus extenders insegment 0 andsegment 1 are turned on. Accordingly, the SCSI devices on the bus incabinet 0 are now connected with the SCSI devices incabinet 1 and all of these devices are communicating with the controllers. The controllers now use the active or call operation to call each of the SCSI ID's 0-3 and 11-8. Whether ID's 11-8 are called from high to low or low to high is a matter of choice. Recall that if a narrow SCSI device is at ID location 8-11, it will configure as if it were at an ID 0-3. Therefore, when calls go out to ID's 0-3 and a bus conflict is detected, then a narrow drive has been detected at a high ID. The high ID's are also called so as to confirm that there is "No" response at a high ID. A "No" response at a high ID confirms a conflict at a low ID, or as explained in FIG. 1, indicates a potential future conflict with a future device low ID. The details for operations to detect narrow SCSI devices at a high ID will described hereinafter with reference to FIG. 6. - Detect
operation 86 will detect narrow SCSI devices located in segment 2 (cabinet 2) that conflict either with controllers or with potential future SCSI devices installed at ID locations not currently used. Thesegment 2 detectoperation 86 begins by turning off thesegment 1 bus extenders and turning onsegment 0 andsegment 2 bus extenders. This will isolate segment 1 (cabinet 1) from the SCSI bus and permit the detect operation to work only with slot locations forIDs 0 through 3 and 15 through 12. If narrow SCSI devices were located at slots normally configuring to ID's 12 and 13, the narrow SCSI devices would configure to ID's 4 and 5. Narrow SCSI devices and slots normally configuring to ID's 14 and 15 would instead configure to alias ID's 6 and 7. Devices aliasing to ID 4 and ID 5 would be conflicting with potential future SCSI devices in future slots assigned to ID 4 and ID 5. Devices aliasing toID 6 and ID 7 would conflict with controllers. The details for implementing the detection operations forsegment 2 will be described hereinafter with reference to FIG. 6. - After the detection of narrow SCSI devices in
segment 2,operation 88 verifies the operation of all SCSI devices. The verification begins by turning on all the bus extenders so that all segments of each SCSI bus are now active. The test operation then continues by activating SCSI device ID's 0-3 forsegment 0, 8-11 forsegment 1 and 12-15 forsegment 2. All SCSI device operations should respond correctly or should have been disabled duringoperations - In FIG. 5, the detect
SCSI devices operations request operation 90.Request operation 90 requests the bus extensions on and off, as appropriate, to the verify or detect operation in FIG. 4 that is taking place. If the detectoperation 84 in FIG. 4 is being performed, the request operation would request bus extenders insegment 2 "off" and bus extenders insegments operation 84 is the present operation, then the bit maps forsegment 0 andsegment 1 are the bit maps requested. These requests fromrequest operation 90 are sent to theEnvironmental Monitor Units 0 and 1 (EMU 0 and EMU 1). The EMUs have already generated the bit map of SCSI devices in their cabinet in bitmap generation operation 92. Each EMU and each segment generates the bit map for its particular segment. - Receive
operation 94 inEMU 0 receives the request from the controller or controllers. Depending upon whichoperation EMU 0 to the appropriate EMU orEMUs segments - The EMUs receiving the request passed from receive
operation 94 will then enable or disable bus extenders in their segment by executing enable/disableoperations 96. Similarly, the appropriate EMUs receiving the request for bit maps will then respond by sendoperation 98 sending the requested bit map back to the controller incabinet 0. The controller atoperation 100 receives the bit maps. With bit maps available and the bus extenders appropriately turned on or off, the SCSIdevice discovery operation 102 proceeds to detect SCSI devices at the various SCSI bus IDs to be tested. The details of the SCSI device discovery logical operations are shown in FIG. 6. - In FIG. 6 the logical operations begin with
set operation 104 setting a first high ID and low ID pair to be tested. The pair is of course the high ID and the low ID to which the high ID would alias if a narrow SCSI device is installed at the high ID. It is a matter of choice as to whether the test operations begin at the top or bottom of a range of SCSI address IDs. Detection of SCSI devices aliasing to controller IDs is of primary importance since such a condition would prevent detection of narrow SCSI devices at other high IDs, as will be discussed hereinafter. Accordingly setoperation 104, when detecting devices insegment 1, will set to a high/low ID pair --ID 8 andID 0 or at the other end of the range to ID 11 and ID 3. - When detecting devices in
segment 2, setoperation 104 will first set to the high ID whose alias low ID matches the controller ID of the controller performing the tests. After that high ID is tested, setoperation 104 will set to high ID and low ID combinations forhigh ID 12 and low ID 4 or high ID 13 and low ID 5. If there is a single controller on the SCSI bus, setoperation 104 would also test the high/low ID combination pair where the high ID would alias to the other controller ID if the other controller were present. - If there are dual controllers on the SCSI bus, set
operation 104 for the first controller testing the high/low ID combination pairs insegment 2 will set all high/low ID pairs except for the high ID that aliases to the low ID which is the second controller's ID. The first controller will then tell the other controller on the SCSI bus to test the high ID and low ID combination pair where a narrow SCSI device at the high ID would conflict with the second controller's ID. Alternatively, the first controller testing the high/low ID pairs could tell the second controller not to respond if it saw its ID and then make the high/low ID pair test for the second controller. -
Decision operation 106 detects when theset operation 104 has set a high/low ID pair where the high ID would alias to, i.e. the low ID matches, the ID of the controller. The controller IDs areID 6 and ID 7. If the low ID matches the ID of the controller, the operations branch "Yes" to addressoperation 108.Address operation 108 causes the controller to address a known, non-responsive ID location. A known, non-responsive ID can be an ID in a segment that is disabled by the bus extenders in the segment being turned off. Also a known, non-responsive ID could be ID 4 or ID 5 which are known to be unused. -
Response decision operation 110 is looking for a response afteraddress operation 108 has caused the controller to call what should be a non-responsive address. If there is no response, then there is no problem at the high/low ID pair under test, and the operation flow passes to updateID operation 112. However, if a narrow SCSI device is at the high ID slot under test, it will have configured itself to respond at the low ID matching the controller ID. Accordingly, the call from the controller will produce a response because the narrow SCSI device sees the controller ID in the call from the controller. For example, if a wide SCSI device is in the slot for ID 15 and a controller at ID 7 generates a call to ID 4, then the call which includes source address, ID 7, and target address, ID 4, will produce no response at SCSI ID 4. However, if a narrow SCSI device is installed at slot ID 15 and configured to alias ID 7, the narrow SCSI device will see the ID 7 in the call and will respond. Accordingly, ifdecision operation 110 sees a response, the operation has detected a narrow SCSI device aliasing to the controller ID. - When a response is detected by
operation 110, disableoperation 114 isolates the problem high ID slot with the narrow SCSI device and disconnects it from the SCSI bus. Since any call from the controller would always produce a response from the narrow SCSI device at the problem high ID slot irrespective of the SCSI ID being addressed, the problem high ID slot with the narrow SCSI device must be isolated or disconnected from the SCSI bus. Once the narrow SCSI device is removed from the high ID slot, there is no further need to isolate the high ID slot. In the present embodiment, the narrow SCSI device aliasing to a controller ID is in segment 2 (cabinet 2). Since there is no way in the preferred embodiment to isolate a single SCSI device, the only available action is to isolate the segment containing the narrow SCSI device. Accordingly, disableoperation 114 turns off the bus extender forsegment 2 until the narrow SCSI device aliasing to the controller ID is removed. Since the bus extender forsegment 2 is turned off,mark operation 116 marks all SCSI devices insegment 2 as unusable. Inaddition mark operation 118 marks the SCSI device at the high ID under test as a narrow device. - After the narrow SCSI device is marked,
update operation 112 increments or decrements the high/low ID pair depending on whether the test process is moving through the test range from low to high or high to low.Decision operation 120 tests whether the updated ID pair is still within the test range or is outside the test range. If the new high/low ID pair is within range, the logical operations return todecision operation 106 to begin the test for the new ID pair. Of course if the new ID pair is out of range, then the device discovery operations are complete, and the operation flow returns to FIG. 5 which returns to FIG. 4 for the next detect or verify operation. - If the updated high ID does not alias to a controller ID, then the operation flow in FIG. 6 branches "No" from
decision operation 106 to calloperation 122.
Calloperation 122 causes the controller to generate a call from the controller to the low ID in the high/low ID pair under test. Call operation also stores whether or not there was a response at the low ID. If the call inoperation 122 results in a conflict, conflict detectoperation 124 detects the conflict and the operation flow branches "Yes" to markoperation 118. A conflict detected means that two SCSI devices in separate slots responded to the call. In effect a SCSI device at the low ID responded, and at the same time a narrow SCSI device at the high ID responded. Accordinglymark operation 118 marks the narrow SCSI device at the high ID. - If no conflict is detected by
detection operation 124, there are two possibilities. First, the SCSI device at the high ID is a wide SCSI device and thus is properly installed. Second, a narrow SCSI device is at a high ID slot and is aliasing to a low ID, and no SCSI device is installed at the alias low ID location. This latter possibility is the potential future conflict, i.e. a conflict would occur in the future if a SCSI device is installed at the low ID location. - Call
operation 125 addresses the high ID and stores whether or not there was a response at the high ID.Decision operation 126 tests for a response at the high ID. If there is a response at the high ID, the SCSI device at the high ID in the high/low ID pair under test must have been properly installed, and the operation flow passes to updateoperation 112. - If
decision operation 126 does not detect a response at the high ID,decision operation 130 tests whethercall operation 122 produced a response at the low ID. If there was no response at the low ID as well, then there are no device installation faults, andupdate operation 112 updates the ID pair under test. If there is a response at the low ID,decision operation 130 branches "Yes" to markoperation 118 to mark a narrow SCSI device at a high ID. For example, with no device atID 2 and a narrow SCSI device at the slot forID 10,decision operation 126 will detect no response at thehigh ID 10, butdecision operation 130 will detect a response at the aliaslow ID 2. Accordingly,mark operation 118 will mark a narrow SCSI device athigh ID 10. - After all high/low ID pairs for
segment 1 orsegment 2 have been tested,decision operation 120 will return the operation flow to FIG. 5 and thereby to FIG. 4 for the next verify or detect operation in FIG. 4. After all verify or detect operations for all SCSI buses are complete, the test for SCSI devices at illegal locations is complete. - While a plurality of embodiments for implementing the invention have been described, it will be appreciated that any number of additional variations or alterations in the elements used to implement the invention may be made.
Claims (20)
- A method for detecting computing system interface devices (50) installed in illegal slots in a computing system having a plurality of computing system interface devices (62 - 65, 75 - 79) connected to a host computer (70) through a computing system interface bus (60, 61, 74) and one or more controllers on the bus, said plurality of devices being configurable to actual or alias bus addresses depending on whether the device is installed in a correct or illegal slot attached to the bus, said method comprising the computer implemented steps of:first detecting (12, 14, 106, 108, 110) a computing system interface device installed in an illegal slot that configures the device to an alias bus address that conflicts with a controller bus address; andsecond detecting (18, 122, 124 - 126, 130) a computing system interface device installed in an illegal slot that configures the device to an alias bus address that conflicts with an actual bus address corresponding to the alias bus address.
- The method of claim 1 wherein said first detecting step further comprises the computer implemented steps of:addressing (108) a non-responsive bus address;detecting (110) a response to said addressing step whereby the response indicates a computing system interface device installed in a slot, where the device configures to a controller bus address.
- The method of claim 2 further including the step of:isolating (16, 114) from the bus the computing system interface device configured to the controller bus address.
- The method of claim 1 wherein said second detecting step further comprises the computer implemented steps of:conflict detecting (124, 126, 130) a conflict between a response from a computing system interface device installed in a slot, where the device configures to an actual bus address, and a response from a computing system interface device installed in a slot where the device configures to an alias bus address that matches said actual bus address; andpotential conflict detecting (122, 124, 126, 130) a potential future conflict between a response from a computing system interface device installed in a slot, where the device configures to an alias bus address, and a future response from a computing system interface device installed in the future at a present empty slot at an actual bus address corresponding to the alias bus address.
- The method of claim 4 wherein said potential conflict detecting step comprises the steps of:first addressing (122) a first actual bus address corresponding to the alias bus address and detecting a response in response to said first addressing step;second addressing (125) a second actual bus address where a computing system interface device illegally installed at the second bus address would configure to the first actual bus address and detecting (126) no response to said second addressing step; anddetecting (130) no computing system interface device installed at the first actual bus address.
- The method of claim 1 in which the interface devices are SCSI devices, the interface bus is a SCSI bus, the plurality of SCSI devices being of at least two types, wide and narrow, wide SCSI devices configurable to an actual ID bus address when the wide SCSI device is installed at either a low ID slot or a high ID slot attached to the SCSI bus, narrow SCSI devices configurable to an actual low ID bus addresses when installed in a low ID slot and configurable to an alias low ID bus address when installed in a high ID slot, the method detecting narrow SCSI devices installed in high ID slots,
the first detecting step comprising first detecting a narrow SCSI device installed at a high ID and aliasing to a low ID that matches a controller ID bus address for the controller attached to the SCSI bus;
the second detecting step comprising:second detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to a slot where another SCSI device is installed; andthird detecting a narrow SCSI device installed at a high ID and aliasing to a low ID address corresponding to an unused slot where another SCSI device may be installed in the future. - The method of claim 6 further including the step of setting (104) high ID and low ID address pairs as test pairs for the SCSI subsystem, said low ID being the alias of the high ID if a narrow SCSI device is installed at the high ID slot.
- The method of claim 7 wherein said first detecting step comprises the steps of:detecting (106) if the low ID in the test pair matches the controller ID;calling (108) a non-responsive ID bus address corresponding to a slot known to be unused; andtesting (110) for a response to said addressing step, the response indicating a narrow SCSI device is installed at the high ID of the test pair and the narrow SCSI device has configured to an alias bus address matching the controller ID.
- The method of claim 8 further including the step of isolating (114) the narrow SCSI device at the high ID to disconnect this narrow SCSI device from the SCSI bus.
- The method of claim 9 further including the step of marking (116) the narrow SCSI device at the high ID and indicating the high ID as unusable.
- The method of claim 7 wherein said second detecting step comprises the steps of:calling (122) the low ID bus address in the test pair; anddetecting (124) a conflict in response to said calling step, the conflict indicating a SCSI device is installed at the low ID and a narrow SCSI device is installed at the high ID of the test pair.
- The method of claim 11 further including the step of marking (118) the narrow SCSI device at the high ID.
- The method of claim 7 wherein said third detecting step comprises the steps of:first calling (122) the low ID bus address in the test pair,second calling (125) the high ID bus address in the test pair;detecting (126) no response to said second detecting step; anddetecting (130) a response to said first detecting step, a combination of response to said first calling step and no response to said second calling step indicating a narrow SCSI device is installed at the high ID and would conflict in the future with a SCSI device subsequently installed at the unused low ID.
- The method of claim 13 further including the step of marking (118) the narrow SCSI device at the high ID.
- The method of claim 7 further including the steps of:updating (112) the test pairs to a new test pair after completing said detecting steps for a previous test pair; andrepeating the updating and detecting steps until all test pairs have been tested.
- Apparatus for detecting computing system interface devices (50) installed in illegal slots in a computing system having a plurality of computing system interface devices (62 - 65, 75 - 79) connected to a host computer (70) through a computing system interface bus (60, 61, 74) and one or more controllers on the bus, said plurality of devices being configurable to actual or alias bus addresses depending on whether the device is installed in a correct or illegal slot attached to the bus, the apparatus comprising:first detecting means for detecting (12, 14, 106, 108, 110) a computing system interface device installed in an illegal slot that configures the device to an alias bus address that conflicts with a controller bus address; andsecond detecting means for detecting (18, 122, 124 - 126, 130) a computing system interface device installed in an illegal slot that configures the device to an alias bus address that conflicts with an actual bus address corresponding to the alias bus address.
- The apparatus of claim 16, in which in which the interface devices are SCSI devices, the interface bus is a SCSI bus; the plurality of SCSI devices being of at least two types, wide and narrow, wide SCSI devices configurable to an actual ID bus address when the wide SCSI device is installed at either a low ID slot or a high ID slot attached to the SCSI bus, narrow SCSI devices configurable to an actual low ID bus addresses when installed in a low ID slot and configurable to an alias low ID bus address when installed in a high ID slot, the apparatus detecting narrow SCSI devices installed in high ID slots comprising:a set module setting high ID and low ID address pairs as test pairs for the SCSI subsystem, said low ID being the alias of the high ID if a narrow SCSI device is installed at the high ID slot;a first address module calling a non-responsive ID bus address corresponding to a slot known to be unused;first test module detecting a response when said first address module calls the non-responsive ID bus address, the response indicating a narrow SCSI device is installed at the high ID of the test pair and the narrow SCSI device has configured to an alias bus address matching the controller ID;a second address module generating a call to the low ID bus address in the test pair;a second test module detecting a conflict in responses when said second address module calls the low ID, the conflict indicating a SCSI device is installed at the low ID and a narrow SCSI device is installed at the high ID of the test pair;a third address module generating a call to the high ID bus address in the test pair;a third test module detecting no response to the call from said third address module and detecting a response to the call from said second address module, this combination of response and no response indicating a narrow SCSI device is installed at the high ID and the narrow SCSI device would conflict in the future with a SCSI device subsequently installed at the unused low ID.
- The apparatus of claim 17 further including a module for marking (118) the narrow SCSI device at the high ID.
- The apparatus of claim 17 further including a module responsive to said first test module for isolating (114) the narrow SCSI device at the high ID conflicting with the controller ID in order to disconnect this narrow SCSI device from the SCSI bus.
- The apparatus of claim 17 further including a module updating (112) the test pair to a new test pair until all test pairs have been tested.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/883,782 US5938776A (en) | 1997-06-27 | 1997-06-27 | Detection of SCSI devices at illegal locations |
US883782 | 1997-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0887739A1 EP0887739A1 (en) | 1998-12-30 |
EP0887739B1 true EP0887739B1 (en) | 2003-05-07 |
Family
ID=25383333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP98111785A Expired - Lifetime EP0887739B1 (en) | 1997-06-27 | 1998-06-26 | Detection of SCSI devices at illegal locations |
Country Status (4)
Country | Link |
---|---|
US (1) | US5938776A (en) |
EP (1) | EP0887739B1 (en) |
JP (1) | JP4047458B2 (en) |
DE (1) | DE69814240T2 (en) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230216B1 (en) * | 1999-01-28 | 2001-05-08 | Vlsi Technology, Inc. | Method for eliminating dual address cycles in a peripheral component interconnect environment |
US6301631B1 (en) * | 1999-01-28 | 2001-10-09 | Vlsi Technology, Inc. | Memory mapping method for eliminating dual address cycles in a peripheral component interconnect environment |
US6622177B1 (en) | 2000-07-27 | 2003-09-16 | International Business Machines Corporation | Dynamic management of addresses to an input/output (I/O) device |
US7000042B1 (en) * | 2000-07-31 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Configurable storage array adapted to configure a segmentable bus based on an arrangement of connectors |
WO2002037224A2 (en) * | 2000-11-02 | 2002-05-10 | Pirus Networks | Load balanced storage system |
US6985956B2 (en) * | 2000-11-02 | 2006-01-10 | Sun Microsystems, Inc. | Switching system |
US7089293B2 (en) | 2000-11-02 | 2006-08-08 | Sun Microsystems, Inc. | Switching system method for discovering and accessing SCSI devices in response to query |
US7865596B2 (en) * | 2000-11-02 | 2011-01-04 | Oracle America, Inc. | Switching system for managing storage in digital networks |
US7313614B2 (en) * | 2000-11-02 | 2007-12-25 | Sun Microsystems, Inc. | Switching system |
US9639553B2 (en) * | 2000-11-02 | 2017-05-02 | Oracle International Corporation | TCP/UDP acceleration |
US6668294B1 (en) * | 2001-03-17 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Data corruption avoidance on a backplane bus adapted to receive bus controller cards of different types |
US20020184576A1 (en) * | 2001-03-29 | 2002-12-05 | International Business Machines Corporation | Method and apparatus for isolating failing hardware in a PCI recoverable error |
US6988136B2 (en) * | 2001-10-19 | 2006-01-17 | Hewlett-Packard Development Company, L.P. | Unified management system and method for multi-cabinet data storage complexes |
US6920511B2 (en) * | 2001-10-19 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling communications in data storage complexes |
US7958199B2 (en) * | 2001-11-02 | 2011-06-07 | Oracle America, Inc. | Switching systems and methods for storage management in digital networks |
US6996652B1 (en) * | 2002-09-19 | 2006-02-07 | Inapac Technology, Inc. | High-speed segmented data bus architecture |
WO2004086071A1 (en) * | 2003-03-27 | 2004-10-07 | Advantest Corporation | Test apparatus |
US7082486B2 (en) * | 2004-01-14 | 2006-07-25 | International Business Machines Corporation | Method and apparatus for counting interrupts by type |
US7343430B2 (en) * | 2004-04-29 | 2008-03-11 | Hitachi Global Storage Technologies Netherlands B.V. | Methods and apparatus for improving data integrity for small computer system interface (SCSI) devices |
US9566587B2 (en) | 2012-10-12 | 2017-02-14 | Blue Sky Mines Ltd. | Methods of and systems for treating incinerated waste |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175822A (en) * | 1989-06-19 | 1992-12-29 | International Business Machines Corporation | Apparatus and method for assigning addresses to scsi supported peripheral devices |
JP2547654B2 (en) * | 1990-06-29 | 1996-10-23 | 三洋電機株式会社 | Data processing device |
US5239632A (en) * | 1992-04-16 | 1993-08-24 | Hewlett-Packard Company | Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus |
US5596727A (en) * | 1993-06-02 | 1997-01-21 | Lucent Technologies Inc. | Arrangement for expanding the device capacity of a bus |
US5594879A (en) * | 1993-10-29 | 1997-01-14 | Compaq Computer Corporation | Method of and apparatus for arbitrarily disabling under processor control individual slots on a computer bus |
EP0653704A1 (en) * | 1993-11-05 | 1995-05-17 | Advanced Micro Devices, Inc. | System and method for configuring expansion cards in a computer |
JP2691140B2 (en) * | 1994-09-28 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Information processing apparatus and control method therefor |
US5751977A (en) * | 1994-12-30 | 1998-05-12 | Compaq Computer Corporation | Wide SCSI bus controller with buffered acknowledge signal |
-
1997
- 1997-06-27 US US08/883,782 patent/US5938776A/en not_active Expired - Fee Related
-
1998
- 1998-06-26 EP EP98111785A patent/EP0887739B1/en not_active Expired - Lifetime
- 1998-06-26 JP JP18020298A patent/JP4047458B2/en not_active Expired - Fee Related
- 1998-06-26 DE DE69814240T patent/DE69814240T2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH1196085A (en) | 1999-04-09 |
EP0887739A1 (en) | 1998-12-30 |
DE69814240D1 (en) | 2003-06-12 |
DE69814240T2 (en) | 2004-01-29 |
US5938776A (en) | 1999-08-17 |
JP4047458B2 (en) | 2008-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0887739B1 (en) | Detection of SCSI devices at illegal locations | |
US5204669A (en) | Automatic station identification where function modules automatically initialize | |
EP0404414B1 (en) | Apparatus and method for assigning addresses to SCSI supported peripheral devices | |
US7715450B2 (en) | Sideband bus setting system and method thereof | |
US6044411A (en) | Method and apparatus for correlating computer system device physical location with logical address | |
US20030182592A1 (en) | Failure detection and failure handling in cluster controller networks | |
US7484114B2 (en) | Method and apparatus for providing redundant access to a shared resource with a shareable spare adapter | |
WO1997046934A1 (en) | Bus interface | |
US6971049B2 (en) | Method and apparatus for detecting and isolating failures in equipment connected to a data bus | |
US6735715B1 (en) | System and method for operating a SCSI bus with redundant SCSI adaptors | |
US6460093B1 (en) | Automatic configuration of primary and secondary peripheral devices for a computer | |
CN101384985A (en) | Sas zone group permission table version identifiers | |
US5005172A (en) | Diagnostic system in a data processing system | |
EP0662664A1 (en) | Self-describing data processing system | |
US7281163B2 (en) | Management device configured to perform a data dump | |
JP4076174B2 (en) | Handling node address failures in distributed node systems with processors | |
US8260974B1 (en) | Techniques for accelerating the processing of enclosures in SAS disk storage arrays | |
US4821179A (en) | Communication system configuration detection apparatus and method | |
US5708813A (en) | Programmable interrupt signal router | |
EP1024434B1 (en) | Automatic configuration of primary and secondary peripheral devices for a computer | |
US6457070B1 (en) | Apparatus and method for identifying location of a peripheral unit in a computer system | |
US20030115382A1 (en) | Peripheral device testing system and a peripheral device testing method which can generally test whether or not a peripheral device is normally operated | |
JP4683845B2 (en) | System and method for implementing hidden addresses in a communication module | |
EP2078234B1 (en) | System and method facilitating double address detection | |
CN112416678B (en) | Fan in-place detection device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE FR GB IT |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
17P | Request for examination filed |
Effective date: 19990514 |
|
AKX | Designation fees paid |
Free format text: DE FR GB IT |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: COMPAQ COMPUTER CORPORATION |
|
17Q | First examination report despatched |
Effective date: 20020228 |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Designated state(s): DE FR GB IT |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED. Effective date: 20030507 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REF | Corresponds to: |
Ref document number: 69814240 Country of ref document: DE Date of ref document: 20030612 Kind code of ref document: P |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20040210 |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20100630 Year of fee payment: 13 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20110628 Year of fee payment: 14 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20110629 Year of fee payment: 14 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST Effective date: 20120229 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20110630 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 69814240 Country of ref document: DE Representative=s name: BOEHMERT & BOEHMERT, DE Effective date: 20120315 Ref country code: DE Ref legal event code: R081 Ref document number: 69814240 Country of ref document: DE Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., US Free format text: FORMER OWNER: COMPAQ COMPUTER CORP., HOUSTON, US Effective date: 20120329 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20120626 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 69814240 Country of ref document: DE Effective date: 20130101 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20120626 Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20130101 |