US6442628B1 - Method and system for automatically determining maximum data throughput over a bus - Google Patents

Method and system for automatically determining maximum data throughput over a bus Download PDF

Info

Publication number
US6442628B1
US6442628B1 US09/300,818 US30081899A US6442628B1 US 6442628 B1 US6442628 B1 US 6442628B1 US 30081899 A US30081899 A US 30081899A US 6442628 B1 US6442628 B1 US 6442628B1
Authority
US
United States
Prior art keywords
bus
test
host adapter
throughput rate
recited
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
Application number
US09/300,818
Inventor
Vincent J. Bastiani
Lawrence J. Lamers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsemi Storage Solutions Inc
Original Assignee
Adaptec Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to US09/300,818 priority Critical patent/US6442628B1/en
Assigned to ADAPTEC, INC. reassignment ADAPTEC, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BASTIANI, VINCENT, LAMERS, LAWRENCE J.
Application filed by Adaptec Inc filed Critical Adaptec Inc
Application granted granted Critical
Publication of US6442628B1 publication Critical patent/US6442628B1/en
Assigned to PMC-SIERRA, INC. reassignment PMC-SIERRA, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ADAPTEC, INC.
Assigned to BANK OF AMERICA, N.A. reassignment BANK OF AMERICA, N.A. SECURITY INTEREST IN PATENTS Assignors: PMC-SIERRA US, INC., PMC-SIERRA, INC., WINTEGRA, INC.
Assigned to PMC-SIERRA, INC., PMC-SIERRA US, INC., WINTEGRA, INC. reassignment PMC-SIERRA, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: BANK OF AMERICA, N.A.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. PATENT SECURITY AGREEMENT Assignors: MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.), MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.)
Assigned to MICROSEMI STORAGE SOLUTIONS, INC., MICROSEMI STORAGE SOLUTIONS (U.S.), INC. reassignment MICROSEMI STORAGE SOLUTIONS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Assigned to JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT reassignment JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ATMEL CORPORATION, MICROCHIP TECHNOLOGY INCORPORATED, MICROSEMI CORPORATION, MICROSEMI STORAGE SOLUTIONS, INC., SILICON STORAGE TECHNOLOGY, INC.
Assigned to WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT reassignment WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ATMEL CORPORATION, MICROCHIP TECHNOLOGY INCORPORATED, MICROSEMI CORPORATION, MICROSEMI STORAGE SOLUTIONS, INC., SILICON STORAGE TECHNOLOGY, INC.
Anticipated expiration legal-status Critical
Assigned to MICROCHIP TECHNOLOGY INCORPORATED, MICROSEMI STORAGE SOLUTIONS, INC., MICROSEMI CORPORATION, ATMEL CORPORATION, SILICON STORAGE TECHNOLOGY, INC. reassignment MICROCHIP TECHNOLOGY INCORPORATED RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Assigned to MICROCHIP TECHNOLOGY INCORPORATED, ATMEL CORPORATION, MICROSEMI STORAGE SOLUTIONS, INC., SILICON STORAGE TECHNOLOGY, INC., MICROSEMI CORPORATION reassignment MICROCHIP TECHNOLOGY INCORPORATED RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Definitions

  • This invention relates generally to computer systems, and more particularly to methods for determining maximum communication rate between devices interconnected via I/O buses in a computer system.
  • Modern computer systems often utilize one or more buses to connect to peripheral devices to enhance its resources.
  • the resources of a computer system may be substantially increased by attaching one or more peripheral devices such as disk drives, tape drives, printers, scanners, optical drives, and the like.
  • peripheral devices are attached to the computer system by means of a bus (e.g., cable).
  • SCSI small computer systems interface
  • SCSI-1, SCSI-2, SCSI-3, etc. SCSI-1, SCSI-2, SCSI-3, etc.
  • SCSI protocols are designed to provide an efficient peer-to-peer I/O interface between a host computer system and its peripheral devices.
  • the SCSI interfaces may be operated over a wide range of media and transfer rates. For example, Table 1 illustrates representative parameters for data throughput of exemplary SCSI interfaces.
  • the data throughputs of the SCSI buses vary as the number of data bits transferred, the bus speed, and the type of signal are changed.
  • the maximum data throughput (e.g., data transfer rate) of Ultran SCSI bus is four times that of SCSI-2 bus. This is because the number of data bits transferred and the bus speed of the former bus is twice that of the latter.
  • the signal type also affects the transfer rate as shown in Table 1.
  • the Ultra2 SCSI specification has been adopted in the industry to provide greater data transfer rate and cable length. It defines a new Low Voltage Differential (LVD) I/O interface, which uses a pair of wires to carry a signal. This allows for faster data rate of 80 MB/sec and a longer cable (up to 12 or 25 meters depending on load) with less susceptibility to noise than traditional single-ended (SE) signaling.
  • LDD Low Voltage Differential
  • an SCSI bus is generally implemented as a cable having a set of wires.
  • the SCSI-1 cable has 50 wires. Of these 50 wires, 8 wires are for data, 1 wire is for parity, 9 wires are for control, 25 wires are for ground, and the remaining wires are for power or are reserved for future use.
  • the 8 data wires are used to carry 8 bits of data in parallel.
  • an SCSI bus may accommodate a plurality of SCSI devices up to a number equal to the number of data bits in the SCSI bus.
  • the SCSI-2 bus may accommodate up to eight devices, of which one is usually an SCSI host adapter.
  • the SCSI host adapter functions to convert or otherwise translate signals between the host computer and the peripheral devices.
  • FIG. 1A illustrates a block diagram of an exemplary computer system 100 having a host computer 102 , an SCSI host adapter 104 , a plurality of SCSI devices 106 , and an SCSI bus 108 .
  • the host computer 102 is coupled to the SCSI host adapter 104 by means of a host bus 110 such as PCI bus or the like.
  • the host adapter 104 is also coupled to the SCSI devices 106 by means of the SCSI bus 108 .
  • the SCSI bus 108 may interconnect up to 7 or 15 target SCSI devices 106 to the host adapter 104 depending on the type of SCSI bus implemented.
  • the target SCSI devices 106 may be devices such as disk drives, tape drives, printers, scanners, optical drives, or any other devices that meet the SCSI specification.
  • the host adapter 104 controls communication between the host computer 102 and the SCSI devices 106 .
  • the host adapter 104 is configured to receive data, address, and control signals from the host computer 102 via the host bus 110 and convert the signals into corresponding SCSI compatible data, address, and control signals.
  • the host adapter 104 is also configured to receive SCSI compatible data, address, and control signals from the SCSI devices 106 through the SCSI bus 108 and convert them into corresponding host-bus compatible data, addressing, and control signals.
  • FIG. 1B is a more detailed block diagram of the host adapter 104 having an SCSI host adapter chip 112 , an SCSI bus interface 114 , a host interface 116 , and a ROM 118 .
  • the host interface 116 is configured to provide a physical connection to the host bus 110 .
  • the SCSI host adapter chip 112 is configured to interface with the host and SCSI bus interfaces 116 and 114 .
  • the SCSI host adapter chip 112 is well known in the art and may be implemented, for example, by using ACI-7890A packaged semiconductor device, which is available from Adaptec Inc., of Milpitas, Calif.
  • the SCSI host adapter chip 112 uses the ROM 118 to store operating instructions that can be read into the memory of the host computer system 102 and executed by a host processor to communicate with the host adapter 104 .
  • the operating instructions stored within the ROM 118 typically include either a BIOS image or some other type of host-bus compatible platform operating system driver.
  • the SCSI host adapter 104 when the computer system 100 powers up, the SCSI host adapter 104 , as initiator, interrogates the SCSI bus 108 to determine which devices are connected to the bus 108 . This scan of the bus is done by the operating system module (OSM) part of the BIOS code. The interrogation consists of the initiator arbitrating for the bus, winning the arbitration, and selecting each device ID to check for a response from an associated SCSI device. If a particular ID responds, the initiator sends an INQUIRY command and the device responds with data identifying the device such as manufacturer, serial number, etc.
  • OSM operating system module
  • the host adapter 104 accesses the ROM 118 and attempts to recognize devices connected to the SCSI bus 108 . In addition, it performs initial testing on speed and width of the SCSI bus 108 and starts boot process.
  • the BIOS in the ROM 118 may be set to a speed higher than what the computer system 100 is capable of handling. As a result, the boot process fails and an error condition is generated.
  • the user manually resets the parameters to a different bus speed and/or width in the BIOS of the host adapter and reboots the computer system 100 .
  • the present invention fills these needs by providing method and system for automatically determining maximum data throughput rate over a bus. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
  • the present invention provides a method of determining maximum data throughput between a host adapter and one or more target devices coupled to the host adapter through a bus.
  • a first set of device identifying data is obtained from a target device over the bus at a minimum data throughput rate.
  • a maximum data throughput rate is negotiated between the host adapter and the target device over the bus.
  • a second set of device identifying data is obtained from the target device over the bus at the negotiated maximum data throughput rate.
  • the host adapter and the target device are operated over the bus at the negotiated maximum data throughput rate.
  • a method of setting parameters to provide maximum data throughput over a bus is disclosed.
  • the bus is coupled between a host adapter and one or more target devices.
  • a target device is selected among the one or more target devices.
  • one or more parameters are set to specify a maximum data throughput rate.
  • the parameters include data width, bus speed, or signal type.
  • a write and read test is then performed at the maximum data throughput rate over the bus. Specifically, the write and read test transfers a test data pattern between the host adapter and the selected target device where the test data pattern is configured for testing signal transmission characteristics of the bus at the maximum data throughput. The write and read test determines whether the bus is capable of reliably operating at the maximum data throughput rate.
  • the present invention provides a system for determining maximum data transfer speed over a bus coupled between target devices.
  • the system includes a bus for transmitting data, a host computer, one or more target devices coupled to the bus, and a host adapter.
  • the host computer includes a host processor and a RAM and is configured to generate one or more test patterns for testing the bus.
  • the host adapter is coupled between the host computer and the bus for interfacing the target devices with the host computer.
  • the host adapter is configured to set parameters to specify a maximum data transfer speed for the bus.
  • the host adapter is further configured to select a test pattern and transmit a first copy of the test pattern to a selected target device.
  • the selected target device is configured to transmit a second copy of the first copy to the host adapter. When the second copy is identical to the test pattern, the bus is determined to be capable of operating at the maximum data transfer rate.
  • FIG. 1A illustrates a block diagram of an exemplary computer system having a host computer, an SCSI host adapter, SCSI devices, and an SCSI bus.
  • FIG. 1B is a more detailed block diagram of the host adapter having an SCSI host adapter chip, an SCSI bus interface, a host interface, and a ROM.
  • FIG. 2 illustrates an exemplary method for booting up a computer system having an SCSI initiator, an SCSI bus, and one or more target SCSI devices in accordance with one embodiment of the present invention.
  • FIG. 3 illustrates a block diagram of an exemplary computer system in which the present invention may be implemented in accordance with one embodiment of the present invention.
  • FIG. 4 shows a flowchart diagram of a method for testing an SCSI bus for determining and setting the parameters for maximum data throughput speed between a host adapter and a target device in accordance with one embodiment of the present invention.
  • FIG. 5 shows a more detailed flowchart of a method for performing the buffer test in accordance with one embodiment of the present invention.
  • FIG. 6 illustrates a timing diagram of an exemplary test data pattern used for testing inter-symbol interference (ISI) characteristics of an SCSI bus in accordance with one embodiment of the present invention.
  • ISI inter-symbol interference
  • FIG. 7 shows a table depicting a test data pattern for testing cross-talk characteristics of an SCSI bus in accordance with one embodiment of the present invention.
  • FIG. 2 illustrates an exemplary method for booting up a computer system having an SCSI initiator, an SCSI bus, and one or more target SCSI devices in accordance with one embodiment of the present invention.
  • the SCSI initiator is coupled to the target SCSI devices by means of the SCSI bus.
  • the method begins by powering on the computer system in operation 202 .
  • the initiator e.g., a host adapter
  • in operation 204 sends a first INQUIRY command over the SCSI bus to an SCSI device, which is one of the target SCSI devices.
  • the INQUIRY command is used to perform initial read test to determine if data can be transferred from the SCSI device to the initiator.
  • the identity of the SCSI device is kept in the BIOS of the host adapter to enable booting up upon power up. However, if the identity of the SCSI device is lost or otherwise inaccessible, the target SCSI devices may be traversed one at a time to find a device to boot from.
  • the target SCSI device In response to the INQUIRY command, in operation 206 , the target SCSI device sends a first set of device identifying data over the SCSI bus at a minimum data throughput rate (e.g., 8-bit asynchronous transfer).
  • the device identifying data typically 36 bytes long, uniquely identifies the target device and includes information such as manufacturer, serial number, etc.
  • the initiator and the target SCSI device then negotiate for a maximum data throughput (e.g., data transfer speed) between them in operation 208 .
  • the initiator and the target SCSI device then communicate at the negotiated maximum throughput.
  • the initiator sends a second INQUIRY command over the SCSI bus in operation 210 .
  • the target SCSI device then transfers a second set of device identifying data to the initiator over the SCSI bus at the maximum negotiated rate in operation 212 . It should be noted that the data transfers are unidirectional from the target SCSI device to the initiator.
  • the initiator compares the first and second sets of device identifying data in operation 214 . If the data sets are not identical, data throughput parameters such as data width, bus speed, and signal type (e.g., LVD and SE) are adjusted in operation 218 to obtain a lower data throughput. The method then proceeds back to operation 208 to negotiate a data throughput with the adjusted parameters.
  • data throughput parameters such as data width, bus speed, and signal type (e.g., LVD and SE) are adjusted in operation 218 to obtain a lower data throughput.
  • the method then proceeds back to operation 208 to negotiate a data throughput with the adjusted parameters.
  • the negotiated data throughput rate is proper.
  • the computer system is then booted using the SCSI device in operation 220 at the negotiated data throughput. The method then terminates in operation 222 .
  • the host adapter and the target device may not be able to operate at the full maximum speed due to physical variations in the SCSI bus such as a narrow segment or single-ended segment in the middle of the SCSI bus. Accordingly, after booting up the computer system, the host adapter performs a bi-directional speed margin testing with individual target devices.
  • the maximum data throughput rate with each device is automatically determined and set in view of the physical characteristics of SCSI cable.
  • FIG. 3 illustrates a block diagram of an exemplary computer system 300 in which the present invention may be implemented in accordance with one embodiment of the present invention.
  • the computer system 300 includes a host computer 302 , an SCSI host adapter 304 , and one or more target SCSI devices 306 .
  • the host adapter 304 includes an SCSI host adapter chip 312 , an SCSI interface 314 , a host interface 316 , and a ROM 318 .
  • the host interface 316 provides a physical connection to host computer 312 through a host bus 310 (e.g., PCI bus).
  • a host bus 310 e.g., PCI bus
  • the host adapter 104 is coupled to the SCSI device 306 by means of the SCSI bus 308 .
  • the computer system is illustrated with one initiator and one target device, it should be appreciated that it may include any number of devices depending on the type of SCSI bus implemented.
  • the target device 306 may include, but not limited to, devices such as disk drives, tape drives, printers, scanners, optical drives, or any other devices that meet the SCSI specification.
  • the host adapter 304 controls communication between the host computer 302 and the SCSI device 306 .
  • the SCSI host adapter chip 312 uses the ROM 118 to store BIOS and /or driver for a particular operating system.
  • the BIOS and/or driver form a code block that implements the methods of the present invention.
  • the code block may be loaded into a RAM 328 of the host computer 302 for execution by a host processor.
  • the SCSI interface 314 includes a send buffer 320 to store data to send to the target device 306 and a receive buffer 322 to store data received from the target device 306 .
  • the target device 306 includes a read/write buffer 324 to store data for communication with the host adapter 314 .
  • the host adapter 314 functions as an initiator while the SCSI device 306 acts as a target.
  • the send and receive buffers 320 and 322 are each 128 bytes in size while the read/write buffer 324 may range from 64 KB to 2 MB in size in accordance with one embodiment of the present invention.
  • the buffers 320 , 322 , and 324 may be any suitable size for implementing embodiments of the present invention.
  • the present invention negotiates a maximum data throughput rate and uses the buffers 320 , 322 , and 324 to write one or more test patterns from the send buffer 320 in the host adapter to the buffer 324 in the target device 306 .
  • the host adapter 314 then reads the content of the buffer 324 from the target device 306 for storage into the receive buffer 322 .
  • the contents of the send and receive buffers 320 and 322 are then compared to determine whether the data transfer was successful in both directions. If the contents are identical, the negotiated data throughput rate is specified to be the proper speed for the target device 306 . If not, parameters are adjusted to a lower maximum throughput speed and the process is repeated until the data transfer is successful in both directions.
  • test pattern is thus used to test the characteristics of the bus to determine the maximum speed the bus is capable of handling.
  • the test may be carried out with any number of test data patterns, which are preferably generated in the host computer 302 and loaded into the buffer 320 for testing.
  • test patterns are preferably configured to test the worst case transmission problems in SCSI cables.
  • the computer system 300 may hang waiting for an acknowledgement (ACK) or request (REQ) when the ACK or REQ gets lost.
  • the target device 306 includes a timer 326 to reduce such hang time when ACK or REQ gets lost before the completion of the speed margin test.
  • the timer 326 is set to a reasonably short period of time at the beginning of every transfer from the send buffer 320 to the buffer 324 in the target device 306 . If the timer 326 expires before the completion of transfer, the timer 326 triggers either restarting of the transfer of sending of extra ACK's to reduce hang time.
  • FIG. 4 shows a flowchart diagram of a method for testing an SCSI bus for determining and setting the parameters for maximum data throughput speed between a host adapter and a target device in accordance with one embodiment of the present invention.
  • the method may be performed as a part of the boot up process illustrated in FIG. 2 or may be performed any time after the boot up process.
  • a target device is selected in operation 402 among a plurality of targets coupled to the SCSI bus.
  • one or more parameters are set, in operation 404 , to provide a maximum data throughput rate between the host adapter initiator and the selected target.
  • a bi-directional buffer test is performed between the initiator and the target device in operation 406 . Specifically, a test pattern is written over the SCSI bus from a send buffer in the initiator to a buffer in the target device. Then, the content of the buffer in the target device is written over the SCSI bus to a receive buffer in the initiator.
  • the contents of the send and receive buffers in the initiator are then compared to determine whether they are the same in operation 408 . If the data in the buffers are not the same, then the parameters are adjusted and reset to a lower data throughput rate in operation 410 . The method then proceeds back to operation 406 to perform a new buffer test based on the newly set parameters. However, if the data in the buffers are determined to be same in operation 408 , the previously set parameters are determined to provide the maximum data throughput rate over the bus.
  • FIG. 5 shows a more detailed flowchart of the method operation 406 for performing the buffer test in accordance with one embodiment of the present invention.
  • one or more test data patterns are generated for testing the SCSI cable characteristics in operation 502 .
  • a test data pattern is selected and loaded into the send buffer of the initiator (e.g., host adapter), which issues a WRITE BUFFER command to the selected target device over the SCSI bus in operation 504 .
  • the WRITE BUFFER command requires the target device to request data from the initiator.
  • the target device requests data from the initiator in operation 506 .
  • the initiator then sends the test data pattern in the write buffer to the target device over the SCSI bus in operation 508 .
  • the target device receives and stores data transferred over the SCSI bus from a read/write buffer in operation 510 .
  • the initiator issues, in operation 512 , a READ BUFFER command to read data from the target device over the SCSI bus.
  • the target device sends the data stored in the read/write buffer over the SCSI bus in operation 514 .
  • the initiator receives and stores, in operation 516 , the data from the SCSI bus in the receive buffer. It should be appreciated that the method may be repeated in a similar manner for other test data patterns.
  • the method then terminates in operation 518 .
  • FIG. 6 illustrates a timing diagram of an exemplary test data pattern 600 used for testing inter-symbol interference (ISI) characteristics of an SCSI bus in accordance with one embodiment of the present invention. It is assumed that the SCSI bus has 16 data lines from D 00 through D 15 . As can be appreciated, however, the test pattern 600 may easily be modified to apply to other data widths.
  • ISI inter-symbol interference
  • the ISI test pattern 600 provides a test data pattern for each of the data lines D 00 to D 15 . On each data line, a single bit of one polarity is sent followed by a constant data having opposite polarity of a specified bit length. This pattern is sent repeated as needed for testing. For example, the data pattern for line D 01 includes a high signal for one clock cycle followed by a low signal for three clock cycles. The ISI test pattern 600 is thus used to ensure the detection of a single pulse in an opposite direction if a line is quiescent for a long time. In one embodiment, the ISI test pattern 600 is sent eight times for a data sequence of 256 bytes for a 16-bit (e.g., 16-bit data lines) system. For an 8-bit system, the pattern may also be sent 16 times so that the same 256 bytes are sent. The sequence would thus take 256 bit times.
  • 16-bit e.g., 16-bit data lines
  • FIG. 7 shows a table 700 depicting a test data pattern for testing cross-talk characteristics of an SCSI bus in accordance with one embodiment of the present invention.
  • the data pattern shown assumes an SCSI bus with 16 data lines from D 00 through D 15 .
  • the test pattern may easily be modified to apply to other data widths.
  • the cross-talk pattern is configured to test whether the transitions on adjacent lines affect other lines.
  • a pair of data lines is held to a constant one or zero state while the remaining fourteen lines are toggled in phase for 16 consecutive clocks.
  • data lines D 00 and D 08 are held in the one and zero states, respectively, and all other data lines send an alternating one-zero pattern in phase.
  • data lines D 01 and D 09 are held in the zero and one states, respectively, and all other data lines send an alternating one-zero pattern in phase for 16 clocks. This process is carried out for 16 cycles by changing the lines that are held constant as shown in table 1.
  • the data pattern is repeated in such manner until all lines have been held at a constant state, which will take 8 times 16 clocks or 128 clocks.
  • the amount of data transferred in this case will be 256 bytes in a 16-bit system and 128 bytes in an 8-bit system.

Abstract

A method and system are provided for determining maximum data throughput between a host adapter and one or more target devices coupled to the host adapter through a bus. A first set of device identifying data is obtained from a target device over the bus. Then, a maximum data throughput rate is negotiated between the host adapter and the target device over the bus. Next, a second set of device identifying data is obtained from the target device over the bus at the negotiated maximum data throughput rate. Read and write tests are performed to determine the maximum data throughput rate. When the first and second sets of device identifying data are identical, the host adapter and the target device are operated over the bus at the negotiated maximum data throughput rate.

Description

CROSS REFERENCE TO RELATED APPLICATION
The present application claims benefit of U.S. Provisional Patent Application No. 60/083,832, entitled “Automatic SCSI Speed Margin Testing,” by Vincent J. Bastiani and Lawrence J. Lamers, filed on May 1, 1998. This application is incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to computer systems, and more particularly to methods for determining maximum communication rate between devices interconnected via I/O buses in a computer system.
2. Description of the Related Art
Modern computer systems often utilize one or more buses to connect to peripheral devices to enhance its resources. For example, the resources of a computer system may be substantially increased by attaching one or more peripheral devices such as disk drives, tape drives, printers, scanners, optical drives, and the like. Generally, the peripheral devices are attached to the computer system by means of a bus (e.g., cable).
One of the most popular buses is the well known small computer systems interface (SCSI) bus, which is defined in conformity with SCSI protocols (e.g., SCSI-1, SCSI-2, SCSI-3, etc.), which are incorporated herein by reference. The SCSI protocols are designed to provide an efficient peer-to-peer I/O interface between a host computer system and its peripheral devices. The SCSI interfaces may be operated over a wide range of media and transfer rates. For example, Table 1 illustrates representative parameters for data throughput of exemplary SCSI interfaces.
TABLE 1
Number
of Data Bus Data
Bits Speed Signal Throughput
Names (Width) (MHz) Type (MB/sec)
SCSI-1 8 5 SE 5
SCSI-2 8 5 SE 5
Fast SCSI-2 8 10 SE 10
Fast-Wide SCSI-2 16 10 SE 20
Ultran SCSI 16 20 SE 40
Ultra2 SCSI 16 40 LVD 80
Ultra 160/M 16 40 LVD 160
As shown in Table 1, the data throughputs of the SCSI buses vary as the number of data bits transferred, the bus speed, and the type of signal are changed. For example, the maximum data throughput (e.g., data transfer rate) of Ultran SCSI bus is four times that of SCSI-2 bus. This is because the number of data bits transferred and the bus speed of the former bus is twice that of the latter.
The signal type also affects the transfer rate as shown in Table 1. Recently, the Ultra2 SCSI specification has been adopted in the industry to provide greater data transfer rate and cable length. It defines a new Low Voltage Differential (LVD) I/O interface, which uses a pair of wires to carry a signal. This allows for faster data rate of 80 MB/sec and a longer cable (up to 12 or 25 meters depending on load) with less susceptibility to noise than traditional single-ended (SE) signaling.
As is well known in the art, an SCSI bus is generally implemented as a cable having a set of wires. For example, the SCSI-1 cable has 50 wires. Of these 50 wires, 8 wires are for data, 1 wire is for parity, 9 wires are for control, 25 wires are for ground, and the remaining wires are for power or are reserved for future use. The 8 data wires are used to carry 8 bits of data in parallel.
In general, an SCSI bus may accommodate a plurality of SCSI devices up to a number equal to the number of data bits in the SCSI bus. For example, the SCSI-2 bus may accommodate up to eight devices, of which one is usually an SCSI host adapter. The SCSI host adapter functions to convert or otherwise translate signals between the host computer and the peripheral devices.
FIG. 1A illustrates a block diagram of an exemplary computer system 100 having a host computer 102, an SCSI host adapter 104, a plurality of SCSI devices 106, and an SCSI bus 108. The host computer 102 is coupled to the SCSI host adapter 104 by means of a host bus 110 such as PCI bus or the like. The host adapter 104 is also coupled to the SCSI devices 106 by means of the SCSI bus 108. Under the current SCSI specifications, the SCSI bus 108 may interconnect up to 7 or 15 target SCSI devices 106 to the host adapter 104 depending on the type of SCSI bus implemented. The target SCSI devices 106 may be devices such as disk drives, tape drives, printers, scanners, optical drives, or any other devices that meet the SCSI specification.
In this arrangement, the host adapter 104 controls communication between the host computer 102 and the SCSI devices 106. Specifically, the host adapter 104 is configured to receive data, address, and control signals from the host computer 102 via the host bus 110 and convert the signals into corresponding SCSI compatible data, address, and control signals. Similarly, the host adapter 104 is also configured to receive SCSI compatible data, address, and control signals from the SCSI devices 106 through the SCSI bus 108 and convert them into corresponding host-bus compatible data, addressing, and control signals.
FIG. 1B is a more detailed block diagram of the host adapter 104 having an SCSI host adapter chip 112, an SCSI bus interface 114, a host interface 116, and a ROM 118. The host interface 116 is configured to provide a physical connection to the host bus 110. The SCSI host adapter chip 112 is configured to interface with the host and SCSI bus interfaces 116 and 114. The SCSI host adapter chip 112 is well known in the art and may be implemented, for example, by using ACI-7890A packaged semiconductor device, which is available from Adaptec Inc., of Milpitas, Calif.
The SCSI host adapter chip 112 uses the ROM 118 to store operating instructions that can be read into the memory of the host computer system 102 and executed by a host processor to communicate with the host adapter 104. The operating instructions stored within the ROM 118 typically include either a BIOS image or some other type of host-bus compatible platform operating system driver.
Currently, when the computer system 100 powers up, the SCSI host adapter 104, as initiator, interrogates the SCSI bus 108 to determine which devices are connected to the bus 108. This scan of the bus is done by the operating system module (OSM) part of the BIOS code. The interrogation consists of the initiator arbitrating for the bus, winning the arbitration, and selecting each device ID to check for a response from an associated SCSI device. If a particular ID responds, the initiator sends an INQUIRY command and the device responds with data identifying the device such as manufacturer, serial number, etc.
At boot-up, the host adapter 104 accesses the ROM 118 and attempts to recognize devices connected to the SCSI bus 108. In addition, it performs initial testing on speed and width of the SCSI bus 108 and starts boot process. However, users often connect the SCSI devices and cable in violation of SCSI specification. For example, the BIOS in the ROM 118 may be set to a speed higher than what the computer system 100 is capable of handling. As a result, the boot process fails and an error condition is generated. In response, the user manually resets the parameters to a different bus speed and/or width in the BIOS of the host adapter and reboots the computer system 100.
Unfortunately, this trial and error process imposes a substantial burden for many users in terms of time and labor needed to manually set the parameters for proper boot-up and operation. In addition, the speed thus set is often lower than what the system is capable of operating reliably. For example, users often set the parameters of host adapters to operate at a lowest possible speed (e.g., 5 MB/sec) to provide the least probability of failure. This means that the computer system may operate at less than its full capacity. Hence, the resources of the computer system are not efficiently utilized.
In view of the foregoing, there is a need for a method and system for setting data throughput parameters to provide the highest data throughput between a host adapter and a target device over a bus without requiring users to manually adjust and set bus parameters.
SUMMARY OF THE INVENTION
The present invention fills these needs by providing method and system for automatically determining maximum data throughput rate over a bus. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, the present invention provides a method of determining maximum data throughput between a host adapter and one or more target devices coupled to the host adapter through a bus. In this method, a first set of device identifying data is obtained from a target device over the bus at a minimum data throughput rate. Then, a maximum data throughput rate is negotiated between the host adapter and the target device over the bus. Next, a second set of device identifying data is obtained from the target device over the bus at the negotiated maximum data throughput rate. When the first and second sets of device identifying data are identical, the host adapter and the target device are operated over the bus at the negotiated maximum data throughput rate.
In another embodiment, a method of setting parameters to provide maximum data throughput over a bus is disclosed. The bus is coupled between a host adapter and one or more target devices. In this embodiment, a target device is selected among the one or more target devices. Then, one or more parameters are set to specify a maximum data throughput rate. The parameters include data width, bus speed, or signal type. A write and read test is then performed at the maximum data throughput rate over the bus. Specifically, the write and read test transfers a test data pattern between the host adapter and the selected target device where the test data pattern is configured for testing signal transmission characteristics of the bus at the maximum data throughput. The write and read test determines whether the bus is capable of reliably operating at the maximum data throughput rate.
In yet another embodiment, the present invention provides a system for determining maximum data transfer speed over a bus coupled between target devices. The system includes a bus for transmitting data, a host computer, one or more target devices coupled to the bus, and a host adapter. The host computer includes a host processor and a RAM and is configured to generate one or more test patterns for testing the bus. The host adapter is coupled between the host computer and the bus for interfacing the target devices with the host computer. The host adapter is configured to set parameters to specify a maximum data transfer speed for the bus. In addition, the host adapter is further configured to select a test pattern and transmit a first copy of the test pattern to a selected target device. The selected target device is configured to transmit a second copy of the first copy to the host adapter. When the second copy is identical to the test pattern, the bus is determined to be capable of operating at the maximum data transfer rate.
By automatically determining and setting the maximum data throughput rate, the users are thus relieved from the tedious task of manually setting parameters and rebooting until the computer system boots up properly. This also means that the host adapter and target devices are ensured of operating reliably at the highest data transfer speed possible. Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
FIG. 1A illustrates a block diagram of an exemplary computer system having a host computer, an SCSI host adapter, SCSI devices, and an SCSI bus.
FIG. 1B is a more detailed block diagram of the host adapter having an SCSI host adapter chip, an SCSI bus interface, a host interface, and a ROM.
FIG. 2 illustrates an exemplary method for booting up a computer system having an SCSI initiator, an SCSI bus, and one or more target SCSI devices in accordance with one embodiment of the present invention.
FIG. 3 illustrates a block diagram of an exemplary computer system in which the present invention may be implemented in accordance with one embodiment of the present invention.
FIG. 4 shows a flowchart diagram of a method for testing an SCSI bus for determining and setting the parameters for maximum data throughput speed between a host adapter and a target device in accordance with one embodiment of the present invention.
FIG. 5 shows a more detailed flowchart of a method for performing the buffer test in accordance with one embodiment of the present invention.
FIG. 6 illustrates a timing diagram of an exemplary test data pattern used for testing inter-symbol interference (ISI) characteristics of an SCSI bus in accordance with one embodiment of the present invention.
FIG. 7 shows a table depicting a test data pattern for testing cross-talk characteristics of an SCSI bus in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention, method and system for automatically determining maximum data throughput rate over a bus, is described. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
FIG. 2 illustrates an exemplary method for booting up a computer system having an SCSI initiator, an SCSI bus, and one or more target SCSI devices in accordance with one embodiment of the present invention. The SCSI initiator is coupled to the target SCSI devices by means of the SCSI bus. The method begins by powering on the computer system in operation 202. The initiator (e.g., a host adapter), in operation 204, sends a first INQUIRY command over the SCSI bus to an SCSI device, which is one of the target SCSI devices. The INQUIRY command is used to perform initial read test to determine if data can be transferred from the SCSI device to the initiator. The identity of the SCSI device is kept in the BIOS of the host adapter to enable booting up upon power up. However, if the identity of the SCSI device is lost or otherwise inaccessible, the target SCSI devices may be traversed one at a time to find a device to boot from.
In response to the INQUIRY command, in operation 206, the target SCSI device sends a first set of device identifying data over the SCSI bus at a minimum data throughput rate (e.g., 8-bit asynchronous transfer). The device identifying data, typically 36 bytes long, uniquely identifies the target device and includes information such as manufacturer, serial number, etc. The initiator and the target SCSI device then negotiate for a maximum data throughput (e.g., data transfer speed) between them in operation 208. The initiator and the target SCSI device then communicate at the negotiated maximum throughput.
After the maximum data throughput has been negotiated, the initiator sends a second INQUIRY command over the SCSI bus in operation 210. The target SCSI device then transfers a second set of device identifying data to the initiator over the SCSI bus at the maximum negotiated rate in operation 212. It should be noted that the data transfers are unidirectional from the target SCSI device to the initiator.
The initiator then compares the first and second sets of device identifying data in operation 214. If the data sets are not identical, data throughput parameters such as data width, bus speed, and signal type (e.g., LVD and SE) are adjusted in operation 218 to obtain a lower data throughput. The method then proceeds back to operation 208 to negotiate a data throughput with the adjusted parameters.
On the other hand, if the device identifying data sets are determined to contain identical data in operation 216, the negotiated data throughput rate is proper. The computer system is then booted using the SCSI device in operation 220 at the negotiated data throughput. The method then terminates in operation 222.
Even after determining the maximum data throughput, the host adapter and the target device may not be able to operate at the full maximum speed due to physical variations in the SCSI bus such as a narrow segment or single-ended segment in the middle of the SCSI bus. Accordingly, after booting up the computer system, the host adapter performs a bi-directional speed margin testing with individual target devices. The maximum data throughput rate with each device is automatically determined and set in view of the physical characteristics of SCSI cable. By thus automatically determining and setting the maximum data throughput rate, the users are relieved from the tedious task of manually setting parameters and rebooting until the computer system boots up properly. At the same time, the host adapter and target devices are ensured of operating reliably at the highest data transfer speed possible.
FIG. 3 illustrates a block diagram of an exemplary computer system 300 in which the present invention may be implemented in accordance with one embodiment of the present invention. As in FIG. 1A, the computer system 300 includes a host computer 302, an SCSI host adapter 304, and one or more target SCSI devices 306. The host adapter 304 includes an SCSI host adapter chip 312, an SCSI interface 314, a host interface 316, and a ROM 318. The host interface 316 provides a physical connection to host computer 312 through a host bus 310 (e.g., PCI bus).
The host adapter 104 is coupled to the SCSI device 306 by means of the SCSI bus 308. Although the computer system is illustrated with one initiator and one target device, it should be appreciated that it may include any number of devices depending on the type of SCSI bus implemented. The target device 306 may include, but not limited to, devices such as disk drives, tape drives, printers, scanners, optical drives, or any other devices that meet the SCSI specification.
The host adapter 304 controls communication between the host computer 302 and the SCSI device 306. The SCSI host adapter chip 312 uses the ROM 118 to store BIOS and /or driver for a particular operating system. The BIOS and/or driver form a code block that implements the methods of the present invention. The code block may be loaded into a RAM 328 of the host computer 302 for execution by a host processor.
The SCSI interface 314 includes a send buffer 320 to store data to send to the target device 306 and a receive buffer 322 to store data received from the target device 306. The target device 306 includes a read/write buffer 324 to store data for communication with the host adapter 314. The host adapter 314 functions as an initiator while the SCSI device 306 acts as a target. The send and receive buffers 320 and 322 are each 128 bytes in size while the read/write buffer 324 may range from 64 KB to 2 MB in size in accordance with one embodiment of the present invention. However, the buffers 320, 322, and 324 may be any suitable size for implementing embodiments of the present invention.
In accordance with a preferred embodiment, the present invention negotiates a maximum data throughput rate and uses the buffers 320, 322, and 324 to write one or more test patterns from the send buffer 320 in the host adapter to the buffer 324 in the target device 306. The host adapter 314 then reads the content of the buffer 324 from the target device 306 for storage into the receive buffer 322. The contents of the send and receive buffers 320 and 322 are then compared to determine whether the data transfer was successful in both directions. If the contents are identical, the negotiated data throughput rate is specified to be the proper speed for the target device 306. If not, parameters are adjusted to a lower maximum throughput speed and the process is repeated until the data transfer is successful in both directions. The test pattern is thus used to test the characteristics of the bus to determine the maximum speed the bus is capable of handling. The test may be carried out with any number of test data patterns, which are preferably generated in the host computer 302 and loaded into the buffer 320 for testing. As will be discussed in more detail below, the test patterns are preferably configured to test the worst case transmission problems in SCSI cables.
As is well known in the art, the computer system 300 may hang waiting for an acknowledgement (ACK) or request (REQ) when the ACK or REQ gets lost. The target device 306 includes a timer 326 to reduce such hang time when ACK or REQ gets lost before the completion of the speed margin test. For example, the timer 326 is set to a reasonably short period of time at the beginning of every transfer from the send buffer 320 to the buffer 324 in the target device 306. If the timer 326 expires before the completion of transfer, the timer 326 triggers either restarting of the transfer of sending of extra ACK's to reduce hang time.
FIG. 4 shows a flowchart diagram of a method for testing an SCSI bus for determining and setting the parameters for maximum data throughput speed between a host adapter and a target device in accordance with one embodiment of the present invention. The method may be performed as a part of the boot up process illustrated in FIG. 2 or may be performed any time after the boot up process. In this method, a target device is selected in operation 402 among a plurality of targets coupled to the SCSI bus. Then, one or more parameters are set, in operation 404, to provide a maximum data throughput rate between the host adapter initiator and the selected target.
After the maximum data throughput rate has been set, a bi-directional buffer test is performed between the initiator and the target device in operation 406. Specifically, a test pattern is written over the SCSI bus from a send buffer in the initiator to a buffer in the target device. Then, the content of the buffer in the target device is written over the SCSI bus to a receive buffer in the initiator.
The contents of the send and receive buffers in the initiator are then compared to determine whether they are the same in operation 408. If the data in the buffers are not the same, then the parameters are adjusted and reset to a lower data throughput rate in operation 410. The method then proceeds back to operation 406 to perform a new buffer test based on the newly set parameters. However, if the data in the buffers are determined to be same in operation 408, the previously set parameters are determined to provide the maximum data throughput rate over the bus.
After determining a maximum throughput rate for the selected device, it is determined in operation 414 whether another target devices needs to be tested. If so, another target is selected in operation 416 and the method proceeds back to operation 404 to determine the maximum operating throughput rate. On the other hand, if no more targets need to be tested, the method terminates in operation 418.
FIG. 5 shows a more detailed flowchart of the method operation 406 for performing the buffer test in accordance with one embodiment of the present invention. In this method, one or more test data patterns are generated for testing the SCSI cable characteristics in operation 502. Then, a test data pattern is selected and loaded into the send buffer of the initiator (e.g., host adapter), which issues a WRITE BUFFER command to the selected target device over the SCSI bus in operation 504. The WRITE BUFFER command requires the target device to request data from the initiator. In response, the target device requests data from the initiator in operation 506.
The initiator then sends the test data pattern in the write buffer to the target device over the SCSI bus in operation 508. The target device receives and stores data transferred over the SCSI bus from a read/write buffer in operation 510. After the completion of the WRITE BUFFER command, the initiator issues, in operation 512, a READ BUFFER command to read data from the target device over the SCSI bus. In response, the target device sends the data stored in the read/write buffer over the SCSI bus in operation 514. The initiator receives and stores, in operation 516, the data from the SCSI bus in the receive buffer. It should be appreciated that the method may be repeated in a similar manner for other test data patterns. The method then terminates in operation 518.
As discussed above, the SCSI bus can be tested using various data patterns. FIG. 6 illustrates a timing diagram of an exemplary test data pattern 600 used for testing inter-symbol interference (ISI) characteristics of an SCSI bus in accordance with one embodiment of the present invention. It is assumed that the SCSI bus has 16 data lines from D00 through D15. As can be appreciated, however, the test pattern 600 may easily be modified to apply to other data widths.
The ISI test pattern 600 provides a test data pattern for each of the data lines D00 to D15. On each data line, a single bit of one polarity is sent followed by a constant data having opposite polarity of a specified bit length. This pattern is sent repeated as needed for testing. For example, the data pattern for line D01 includes a high signal for one clock cycle followed by a low signal for three clock cycles. The ISI test pattern 600 is thus used to ensure the detection of a single pulse in an opposite direction if a line is quiescent for a long time. In one embodiment, the ISI test pattern 600 is sent eight times for a data sequence of 256 bytes for a 16-bit (e.g., 16-bit data lines) system. For an 8-bit system, the pattern may also be sent 16 times so that the same 256 bytes are sent. The sequence would thus take 256 bit times.
FIG. 7 shows a table 700 depicting a test data pattern for testing cross-talk characteristics of an SCSI bus in accordance with one embodiment of the present invention. The data pattern shown assumes an SCSI bus with 16 data lines from D00 through D15. However, those skilled in the art will recognize that the test pattern may easily be modified to apply to other data widths.
The cross-talk pattern is configured to test whether the transitions on adjacent lines affect other lines. In the pattern shown in table 700, a pair of data lines is held to a constant one or zero state while the remaining fourteen lines are toggled in phase for 16 consecutive clocks. For example, data lines D00 and D08 are held in the one and zero states, respectively, and all other data lines send an alternating one-zero pattern in phase. During the next cycle, data lines D01 and D09 are held in the zero and one states, respectively, and all other data lines send an alternating one-zero pattern in phase for 16 clocks. This process is carried out for 16 cycles by changing the lines that are held constant as shown in table 1. The data pattern is repeated in such manner until all lines have been held at a constant state, which will take 8 times 16 clocks or 128 clocks. The amount of data transferred in this case will be 256 bytes in a 16-bit system and 128 bytes in an 8-bit system.
The present invention, a method and system for automatically determining maximum data throughput rate over a bus, is thus described. Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (25)

What is claimed is:
1. In a computer system, a method of determining maximum data throughput between a host adapter and one or more target devices coupled to said host adapter through a bus, said method comprising:
obtaining a first set of device identifying data from a target device over said bus at a minimum data throughput rate;
negotiating a maximum data throughput rate between said host adapter and said target device over said bus;
obtaining a second set of device identifying data from said target device over said bus at said negotiated maximum data throughput rate; and
operating said host adapter and said target device over said bus at said negotiated maximum data throughput rate when said first and second sets of device identifying data are identical;
wherein said bus is a SCSI bus and said host adapter and target devices are SCSI devices.
2. The method as recited in claim 1, wherein each of said operations of obtaining said first and second sets of device identifying data comprises:
sending, by said host adapter, an inquiry command to said target device, said inquiry command requesting said device identifying data from said target device; and
sending, by said target device, with said device identifying data over said bus in response to said inquiry command.
3. The method as recited in claim 1, wherein said target device is a boot device and wherein said computer system automatically boots up from said target device at said negotiated maximum data throughput rate upon power up when said first and second sets of device identifying data are identical.
4. The method as recited in claim 1, wherein when said first and second sets of device identifying data are not identical, a new maximum data throughput rate is negotiated between said host adapter and said target device, wherein a new second set of device identifying data is obtained from said target device over said bus at said new maximum data throughput rate.
5. The method as recited in claim 4, wherein said host adapter and said target device are operated over said bus at said new maximum data throughput rate is lower than the previous maximum data throughput rate.
6. The method as recited in claim 1, wherein said maximum data throughput rate is determined based on parameters including data width, bus speed, or signal type.
7. A method of setting parameters to provide maximum data throughput over a bus coupled between a host adapter and one or more target devices, said method comprising:
selecting a target device among said one or more target devices;
setting one or more parameters including data width, bus speed, and signal type, said set parameters specifying a maximum data throughput rate;
performing a write and read test at said maximum data throughput rate over said bus, said write and read test transferring a test data pattern between said host adapter and said selected target device, said test data pattern being configured for testing signal transmission characteristics of said bus at said maximum data throughput, wherein said write and read test is configured to determine whether said bus is capable of reliably operating at said maximum data throughput rate;
wherein said bus is a SCSI bus and said host adapter and target devices are SCSI devices.
8. The method as recited in claim 7, further comprising:
operating said host adapter and said selected target device over said bus at said maximum data throughput rate when said bus is determined to be capable of reliably operating at said maximum data throughput rate.
9. The method as recited in claim 7, wherein when said bus is determined to be incapable of reliably operating at said maximum data throughput rate, resetting said parameters to specify a lower data throughput rate and performing said write and read test at said lower data throughput rate over said bus.
10. The method as recited in claim 7, wherein said write and read test is performed to determine maximum data throughput rates over said bus between said host adapter and all target devices.
11. The method as recited in claim 7, wherein said host adapter includes a send buffer for storing said test data pattern and said selected target device includes a read/write buffer for storing a first transmitted version of said test data pattern from said send buffer, and wherein said host adapter also includes a receive buffer for storing a second transmitted version of said test data pattern from said read/write buffer.
12. The method as recited in claim 11, wherein when said host adapter performs said write and read test by comparing said test data pattern in said send buffer and said second transmitted version of said test data pattern, wherein said bus is determined to be capable of reliably operating at said maximum data throughput rate when said second transmitted version is identical to said test data pattern and said bus is determined to be incapable of reliably operating at said maximum data throughput rate when said second transmitted version is not identical to said test data pattern.
13. The method as recited in claim 11, wherein said operation of performing said write and read test comprises:
storing, by said host adapter, said test data pattern in said send buffer as an original test data pattern;
transmitting, by said host adapter, said original test data pattern from said send buffer over said bus to said read/write buffer in said selected target device for storage in said read/write buffer as a first test data pattern;
transmitting, by said selected target device, said first test data pattern from said read/write buffer over said bus for storage in said receive buffer as a second test data pattern;
comparing, by said host adapter, said original test data pattern in said send buffer with said second test data pattern in said receive buffer to determine whether said bus is capable of reliably operating at said maximum data throughput rate.
14. The method as recited in claim 13, wherein when said original test data pattern is identical to said second test data pattern, the bus is determined to be capable of reliably operating at said maximum data throughput rate.
15. The method as recited in claim 7, wherein said operations of setting said parameters and performing said write and read test are repeated for other target devices to determine their maximum data throughput rate over said bus.
16. The method as recited in claim 7, wherein said test data pattern is configured to test inter-symbol interference characteristics of said bus.
17. The method as recited in claim 7, wherein said test data pattern is configured to test cross-talk characteristics of said bus.
18. The method as recited in claim 7, wherein said test data pattern is configured to test both inter-symbol interference characteristics and cross-talk characteristics of said bus.
19. A system for determining maximum data transfer speed over a bus coupled between to target devices, the system comprising:
a bus for transmitting data;
a host computer including a host processor and a RAM, said host computer generating one or more test patterns for testing said bus;
a plurality of target devices coupled to said bus;
a host adapter coupled between said host computer and said bus for interfacing said target devices with said host computer, said host adapter being configured to set parameters to specify a maximum data transfer speed for said bus, said host adapter being further configured to select a test pattern and transmit a first copy of said test pattern to a selected target device, said selected target device being configured to transmit a second copy of said first copy to said host adapter, wherein said bus is determined to be capable of operating at said maximum data transfer rate when said second copy is identical to said test pattern;
wherein said bus is a SCSI bus and said host adapter and said target devices are SCSI devices.
20. The system as recited in claim 19, wherein each target device includes a first buffer for storing said first copy and said host adapter includes a send buffer for storing said test data pattern and a receive buffer for storing said second copy.
21. The system as recited in claim 20, wherein said host adapter compares said test data pattern in said send buffer and said second copy in said receive buffer.
22. The system as recited in claim 20, wherein each target device includes a timer that is set to reduce hang time in said bus.
23. The system as recited in claim 20, wherein said one or more test patterns are configured to test inter-symbol interference characteristics of said bus.
24. The system as recited in claim 20, wherein said one or more test patterns are configured to test cross-talk characteristics of said bus.
25. The system as recited in claim 20, wherein said one or more test patterns are configured to test inter-symbol interference and cross-talk characteristics of said bus.
US09/300,818 1998-05-01 1999-04-27 Method and system for automatically determining maximum data throughput over a bus Expired - Lifetime US6442628B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/300,818 US6442628B1 (en) 1998-05-01 1999-04-27 Method and system for automatically determining maximum data throughput over a bus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8383298P 1998-05-01 1998-05-01
US09/300,818 US6442628B1 (en) 1998-05-01 1999-04-27 Method and system for automatically determining maximum data throughput over a bus

Publications (1)

Publication Number Publication Date
US6442628B1 true US6442628B1 (en) 2002-08-27

Family

ID=26769794

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/300,818 Expired - Lifetime US6442628B1 (en) 1998-05-01 1999-04-27 Method and system for automatically determining maximum data throughput over a bus

Country Status (1)

Country Link
US (1) US6442628B1 (en)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065875A1 (en) * 2001-09-28 2003-04-03 Van Cleve Robert E. Reserved ROM space for storage of operating system drivers
US20030196149A1 (en) * 2002-04-15 2003-10-16 Lsi Logic Corporation Method and/or apparatus for SCSI target verification
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US20040243900A1 (en) * 2003-05-30 2004-12-02 Agilent Technologies, Inc. Shared storage arbitration
US20040266443A1 (en) * 2003-06-30 2004-12-30 Takafumi Ito Radio communication device and a method for establishing radio connection
US20050028044A1 (en) * 2003-07-31 2005-02-03 Erik Paulsen Method and apparatus for controlling SAS/Fibre target behavior from a host
US20050050249A1 (en) * 2003-08-29 2005-03-03 Kenichi Ide Communication device and a method for establishing communication connection
US20050094838A1 (en) * 2003-10-31 2005-05-05 Ichiro Tomoda Electronic device with wireless communication module
US6898644B1 (en) * 2000-08-24 2005-05-24 International Business Machines Corporation Method of programming I/O adapter settings for optimal performance
US20050216618A1 (en) * 2004-03-26 2005-09-29 Owens James W Systems and methods for responding to a data transfer
EP1598744A1 (en) * 2004-05-21 2005-11-23 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two agents connected across a link
US20060143338A1 (en) * 2004-12-29 2006-06-29 Hunsaker Mikal C Autodetection of a PCI express device operating at a wireless RF mitigation frequency
US20060206644A1 (en) * 2001-12-14 2006-09-14 Chau-Chad Tsai Method of hot switching data transfer rate on bus
US20070067540A1 (en) * 2003-08-08 2007-03-22 Hewlett-Packard Development Company, L.P. Method and apparatus for sending data
US20070067548A1 (en) * 2005-08-19 2007-03-22 Juenger Randall E System and method for dynamic adjustment of an information handling system graphics bus
US20080021573A1 (en) * 2006-07-20 2008-01-24 Siemens Aktiengesellschaft Communication system for flexible use in different application scenarios in automation technology
US20080082810A1 (en) * 2001-09-28 2008-04-03 Hewlett-Packard Development Company, L.P. Semi-persistent relocatable ram-based virtual floppy disk method
US7400276B1 (en) * 2002-01-28 2008-07-15 Massachusetts Institute Of Technology Method and apparatus for reducing delay in a bus provided from parallel, capacitively coupled transmission lines
US20090313411A1 (en) * 2008-06-12 2009-12-17 Stenfort Ross J Apparatus and methods crc error injection in a storage system
US20120047308A1 (en) * 2010-08-18 2012-02-23 Feng Kang-Ning Method for adjusting link speed and computer system using the same
US20150067197A1 (en) * 2013-09-03 2015-03-05 Nanya Technology Corp. Data pattern generation for i/o training and characterization
US9626318B2 (en) 2012-01-26 2017-04-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for storage protocol compliance testing
CN111630601A (en) * 2018-01-15 2020-09-04 微芯片技术股份有限公司 Security enhancements for memory controllers
US11032373B1 (en) * 2020-10-12 2021-06-08 EMC IP Holding Company LLC Host-based bandwidth control for virtual initiators

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59107661A (en) * 1982-12-13 1984-06-21 Nec Corp Data communication system
US5023869A (en) * 1989-03-27 1991-06-11 Alberta Telecommunications Research Centre Method and apparatus for maximizing the transmission capacity of a multi-channel bidirectional communications link
JPH04234259A (en) * 1990-12-28 1992-08-21 Nisca Corp Method and device for setting communication speed
US5159465A (en) * 1987-10-09 1992-10-27 Ricoh Company, Ltd. Facsimile machine having a transmission speed selective shiftdown function
JPH06291809A (en) * 1993-04-05 1994-10-18 Seiko Epson Corp Data communications equipment
US5490209A (en) * 1994-02-09 1996-02-06 Harris Corporation Autobaud rate detection mechanism
US5491720A (en) * 1992-05-21 1996-02-13 International Business Machines Corporation Method and system for automatically determining data communication device type and corresponding transmission rate
US5524122A (en) * 1993-09-13 1996-06-04 U.S. Philips Corporation System and method for adapting the transmission rate to the line quality and modem suitable for such a system
JPH09331372A (en) * 1996-06-12 1997-12-22 Hitachi Ltd Information processing unit
US5701514A (en) * 1994-04-01 1997-12-23 International Business Machines Corporation System providing user definable selection of different data transmission modes of drivers of an I/O controller transmitting to peripherals with different data transmission rate
US5912921A (en) * 1997-08-20 1999-06-15 Intermec Ip Corp. Concurrent multiple data rate communications in a wireless local area network
US5914959A (en) * 1996-10-31 1999-06-22 Glenayre Electronics, Inc. Digital communications system having an automatically selectable transmission rate
US6064678A (en) * 1997-11-07 2000-05-16 Qualcomm Incorporated Method for assigning optimal packet lengths in a variable rate communication system

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59107661A (en) * 1982-12-13 1984-06-21 Nec Corp Data communication system
US5159465A (en) * 1987-10-09 1992-10-27 Ricoh Company, Ltd. Facsimile machine having a transmission speed selective shiftdown function
US5023869A (en) * 1989-03-27 1991-06-11 Alberta Telecommunications Research Centre Method and apparatus for maximizing the transmission capacity of a multi-channel bidirectional communications link
JPH04234259A (en) * 1990-12-28 1992-08-21 Nisca Corp Method and device for setting communication speed
US5491720A (en) * 1992-05-21 1996-02-13 International Business Machines Corporation Method and system for automatically determining data communication device type and corresponding transmission rate
JPH06291809A (en) * 1993-04-05 1994-10-18 Seiko Epson Corp Data communications equipment
US5524122A (en) * 1993-09-13 1996-06-04 U.S. Philips Corporation System and method for adapting the transmission rate to the line quality and modem suitable for such a system
US5490209A (en) * 1994-02-09 1996-02-06 Harris Corporation Autobaud rate detection mechanism
US5701514A (en) * 1994-04-01 1997-12-23 International Business Machines Corporation System providing user definable selection of different data transmission modes of drivers of an I/O controller transmitting to peripherals with different data transmission rate
JPH09331372A (en) * 1996-06-12 1997-12-22 Hitachi Ltd Information processing unit
US5914959A (en) * 1996-10-31 1999-06-22 Glenayre Electronics, Inc. Digital communications system having an automatically selectable transmission rate
US5912921A (en) * 1997-08-20 1999-06-15 Intermec Ip Corp. Concurrent multiple data rate communications in a wireless local area network
US6064678A (en) * 1997-11-07 2000-05-16 Qualcomm Incorporated Method for assigning optimal packet lengths in a variable rate communication system

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898644B1 (en) * 2000-08-24 2005-05-24 International Business Machines Corporation Method of programming I/O adapter settings for optimal performance
US6665742B2 (en) * 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
US20030065875A1 (en) * 2001-09-28 2003-04-03 Van Cleve Robert E. Reserved ROM space for storage of operating system drivers
US7822961B2 (en) 2001-09-28 2010-10-26 Hewlett-Packard Development Company, L.P. Semi-persistent relocatable ram-based virtual floppy disk method
US20080082810A1 (en) * 2001-09-28 2008-04-03 Hewlett-Packard Development Company, L.P. Semi-persistent relocatable ram-based virtual floppy disk method
US7299345B2 (en) * 2001-09-28 2007-11-20 Hewlett-Packard Development Company, L.P. Reserved ROM space for storage of operating system drivers
US20060206644A1 (en) * 2001-12-14 2006-09-14 Chau-Chad Tsai Method of hot switching data transfer rate on bus
US8060676B2 (en) * 2001-12-14 2011-11-15 Via Technologies, Inc. Method of hot switching data transfer rate on bus
US7400276B1 (en) * 2002-01-28 2008-07-15 Massachusetts Institute Of Technology Method and apparatus for reducing delay in a bus provided from parallel, capacitively coupled transmission lines
US20030196149A1 (en) * 2002-04-15 2003-10-16 Lsi Logic Corporation Method and/or apparatus for SCSI target verification
US6986083B2 (en) * 2002-04-15 2006-01-10 Lsi Logic Corporation Method and/or apparatus for SCSI target verification
US20040243900A1 (en) * 2003-05-30 2004-12-02 Agilent Technologies, Inc. Shared storage arbitration
US7216182B2 (en) * 2003-05-30 2007-05-08 Agilent Technologies, Inc. Shared storage arbitration
US7272410B2 (en) 2003-06-30 2007-09-18 Kabushiki Kaisha Toshiba Radio communication device and a method for establishing radio connection
US20040266443A1 (en) * 2003-06-30 2004-12-30 Takafumi Ito Radio communication device and a method for establishing radio connection
US20050028044A1 (en) * 2003-07-31 2005-02-03 Erik Paulsen Method and apparatus for controlling SAS/Fibre target behavior from a host
US7366957B2 (en) * 2003-07-31 2008-04-29 Lsi Corporation Method and apparatus for controlling SAS/fibre target behavior from a host
US7506085B2 (en) * 2003-08-08 2009-03-17 Hewlett-Packard Development Company, L.P. System and method for sending data across a bus cable having in-band and side-band signal conductors
US20070067540A1 (en) * 2003-08-08 2007-03-22 Hewlett-Packard Development Company, L.P. Method and apparatus for sending data
US20050050249A1 (en) * 2003-08-29 2005-03-03 Kenichi Ide Communication device and a method for establishing communication connection
US20050094838A1 (en) * 2003-10-31 2005-05-05 Ichiro Tomoda Electronic device with wireless communication module
US20050216618A1 (en) * 2004-03-26 2005-09-29 Owens James W Systems and methods for responding to a data transfer
US7406548B2 (en) * 2004-03-26 2008-07-29 Hewlett-Packard Development Company, L.P. Systems and methods for responding to a data transfer
US7844767B2 (en) 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US20050262284A1 (en) * 2004-05-21 2005-11-24 Naveen Cherukuri Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
EP1598744A1 (en) * 2004-05-21 2005-11-23 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two agents connected across a link
US20060143338A1 (en) * 2004-12-29 2006-06-29 Hunsaker Mikal C Autodetection of a PCI express device operating at a wireless RF mitigation frequency
US8041844B2 (en) * 2004-12-29 2011-10-18 Intel Corporation Autodetection of a PCI express device operating at a wireless RF mitigation frequency
US7539809B2 (en) * 2005-08-19 2009-05-26 Dell Products L.P. System and method for dynamic adjustment of an information handling systems graphics bus
US20070067548A1 (en) * 2005-08-19 2007-03-22 Juenger Randall E System and method for dynamic adjustment of an information handling system graphics bus
US20080021573A1 (en) * 2006-07-20 2008-01-24 Siemens Aktiengesellschaft Communication system for flexible use in different application scenarios in automation technology
US7843966B2 (en) * 2006-07-20 2010-11-30 Siemens Aktiengesellschaft Communication system for flexible use in different application scenarios in automation technology
US8190983B2 (en) * 2008-06-12 2012-05-29 Lsi Corporation Apparatus and methods for CRC error injection in a storage system
US20090313411A1 (en) * 2008-06-12 2009-12-17 Stenfort Ross J Apparatus and methods crc error injection in a storage system
US20120047308A1 (en) * 2010-08-18 2012-02-23 Feng Kang-Ning Method for adjusting link speed and computer system using the same
US8713230B2 (en) * 2010-08-18 2014-04-29 Pegatron Corporation Method for adjusting link speed and computer system using the same
US9626318B2 (en) 2012-01-26 2017-04-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for storage protocol compliance testing
US20150067197A1 (en) * 2013-09-03 2015-03-05 Nanya Technology Corp. Data pattern generation for i/o training and characterization
US9122570B2 (en) * 2013-09-03 2015-09-01 Nanya Technology Corp. Data pattern generation for I/O training and characterization
CN111630601A (en) * 2018-01-15 2020-09-04 微芯片技术股份有限公司 Security enhancements for memory controllers
CN111630601B (en) * 2018-01-15 2024-03-29 微芯片技术股份有限公司 Security enhancement for memory controllers
US11032373B1 (en) * 2020-10-12 2021-06-08 EMC IP Holding Company LLC Host-based bandwidth control for virtual initiators

Similar Documents

Publication Publication Date Title
US6442628B1 (en) Method and system for automatically determining maximum data throughput over a bus
US6353866B1 (en) Apparatus and method for initializing a universal serial bus device
TW552780B (en) USB communication control apparatus, USB communication system and USB communication control method
KR100290944B1 (en) An apparatus and method for providing an interface to a compound universal serial bus controller
KR100290943B1 (en) An Apparatus and Method For Handling Universal Serial Bus Control Transfer
US7058748B1 (en) ATA device control via a packet-based interface
US6073205A (en) System and method of write posting in a universal serial bus system
US7069373B2 (en) USB endpoint controller flexible memory management
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US7738397B2 (en) Generating topology information identifying devices in a network topology
US6763402B2 (en) Data storage subsystem
JP2011034593A (en) Card identification compatibility
KR19990022324A (en) Burst Transmission Systems and Methods on Peripheral Interconnect Buses
US20180285308A1 (en) Universal serial bus network switch
US7149838B2 (en) Method and apparatus for configuring multiple segment wired-AND bus systems
JP3134819B2 (en) Data processing device
US6697884B1 (en) Communication protocol for serial peripheral devices
US8065401B2 (en) Systems and methods for frame ordering in wide port SAS connections
US6185651B1 (en) SCSI bus extender utilizing tagged queuing in a multi-initiator environment
US6038687A (en) Loop back test apparatus for small computer system interface
US6230216B1 (en) Method for eliminating dual address cycles in a peripheral component interconnect environment
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
US7577877B2 (en) Mechanisms to prevent undesirable bus behavior
US7174410B2 (en) Method, apparatus and computer program product for write data transfer
CN216014148U (en) Server and server backboard

Legal Events

Date Code Title Description
AS Assignment

Owner name: ADAPTEC, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BASTIANI, VINCENT;LAMERS, LAWRENCE J.;REEL/FRAME:009932/0713

Effective date: 19990427

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

AS Assignment

Owner name: PMC-SIERRA, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ADAPTEC, INC.;REEL/FRAME:030899/0567

Effective date: 20100608

AS Assignment

Owner name: BANK OF AMERICA, N.A., NORTH CAROLINA

Free format text: SECURITY INTEREST IN PATENTS;ASSIGNORS:PMC-SIERRA, INC.;PMC-SIERRA US, INC.;WINTEGRA, INC.;REEL/FRAME:030947/0710

Effective date: 20130802

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: PMC-SIERRA, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037675/0129

Effective date: 20160115

Owner name: WINTEGRA, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037675/0129

Effective date: 20160115

Owner name: PMC-SIERRA US, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:037675/0129

Effective date: 20160115

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., NEW YORK

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.);MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.);REEL/FRAME:037689/0719

Effective date: 20160115

AS Assignment

Owner name: MICROSEMI STORAGE SOLUTIONS (U.S.), INC., CALIFORN

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:046251/0271

Effective date: 20180529

Owner name: MICROSEMI STORAGE SOLUTIONS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:046251/0271

Effective date: 20180529

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS

Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:046426/0001

Effective date: 20180529

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:046426/0001

Effective date: 20180529

AS Assignment

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:047103/0206

Effective date: 20180914

Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES C

Free format text: SECURITY INTEREST;ASSIGNORS:MICROCHIP TECHNOLOGY INCORPORATED;SILICON STORAGE TECHNOLOGY, INC.;ATMEL CORPORATION;AND OTHERS;REEL/FRAME:047103/0206

Effective date: 20180914

AS Assignment

Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222

Effective date: 20220218

Owner name: MICROSEMI CORPORATION, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222

Effective date: 20220218

Owner name: ATMEL CORPORATION, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222

Effective date: 20220218

Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222

Effective date: 20220218

Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:059333/0222

Effective date: 20220218

AS Assignment

Owner name: MICROSEMI STORAGE SOLUTIONS, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001

Effective date: 20220228

Owner name: MICROSEMI CORPORATION, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001

Effective date: 20220228

Owner name: ATMEL CORPORATION, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001

Effective date: 20220228

Owner name: SILICON STORAGE TECHNOLOGY, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001

Effective date: 20220228

Owner name: MICROCHIP TECHNOLOGY INCORPORATED, ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT;REEL/FRAME:059358/0001

Effective date: 20220228