An intelligent host adapter for coupling a host pc to peripheral i/O devices through i/O channels wherein the host adapter has a master/slave architecture. A master i/O processor includes circuits for coupling the host adapter to a slot in an i/O interface bus of the host pc such as a PCI bus. The master i/O processor also includes circuits for a relatively small fixed number of i/O channels for connection to associated i/O peripheral busses such as SCSI, Fiber Channel and networks (i.e., Ethernet, token ring, etc.). A slave i/O processor is coupled to the master i/O processor via a dedicated master/slave interface bus. The slave i/O processor provides for addition of i/O channels to the host adapter without requiring use of additional slots of the i/O interface bus of the host pc and without using associated i/O computing resources within the host pc.
|
14. A master i/O processor usable in a host computer system, said master i/O processor comprising:
a general purpose processor configured for controlling one or more special purpose processors of a slave i/O processor to perform i/O operations; a host bus interface coupled to said general purpose processor for coupling said master i/O processor to a host pc i/O interface bus; and a slave interface port coupled to the general purpose processor for coupling said master i/O processor to the slave i/O processor.
17. A slave i/O processor comprising:
a master interface port for coupling said slave i/O processor to a corresponding slave interface port of a master i/O processor adapted to be coupled to a host pc i/O interface bus and wherein said slave i/O processor is devoid of any direct connection to a host pc i/O interface bus; and a plurality of special purpose processors for coupling said slave i/O processor to a peripheral i/O bus wherein a host pc indirectly accesses said plurality of special purpose processors through a master i/O processor and coupled to said master interface port.
22. A host i/O adapter comprising:
a master i/O processor comprising: a general purpose processor; a host bus interface coupled to said general purpose processor for coupling said master i/O processor to a host pc i/O interface bus; and a slave interface port; and a slave i/O processor coupled to said master i/O processor through said slave interface port, said slave i/O processor comprising: a master interface port for coupling said slave i/O processor to said slave interface port of said master i/O processor; and a special purpose processor for coupling said slave i/O processor to a peripheral i/O bus, wherein said slave i/O processor is not directly coupled to a host pc i/O interface bus. 1. A host i/O adapter comprising:
a master i/O processor comprising: a general purpose processor; a host bus interface coupled to said general purpose processor for coupling said master i/O processor to a host pc i/O interface bus; a first special purpose processor for coupling said master i/O processor to a peripheral i/O bus; and a slave interface port and a slave i/O processor coupled to said master i/O processor through said slave interface port, said slave i/O processor comprising: a master interface port for coupling said slave i/O processor to said slave interface port of said master i/O processor; and a second special purpose processor for coupling said slave i/O processor to a peripheral i/O bus, wherein said slave i/O processor is not directly coupled to a host pc i/O interface bus. 8. A system comprising:
a host pc having a host i/O interface bus wherein said host i/O interface bus includes a plurality of slots for receiving host adapters; a master host adapter inserted in a slot of said plurality of slots of said host i/O interface bus and electronically coupled to said host pc through said slot wherein said master host adapter includes a first set of i/O channels for coupling said host pc to peripheral i/O devices through associated peripheral i/O busses and wherein said host adapter includes a master/slave bus, distinct from said host i/O interface bus and distinct from said peripheral i/O busses, for coupling said master host adapter to a slave host adapter; and a slave i/O processor coupled to said master/slave bus wherein said slave i/O processor is not inserted in a slot of said plurality of slots and is devoid of direct connection to said host i/O interface bus and wherein said slave i/O processor includes a second set of i/O channels for coupling said host pc to peripheral i/O devices through associated peripheral i/O busses.
2. The host i/O adapter of
3. The host i/O adapter of
6. The host i/O adapter of
7. The host i/O adapter of
16. The master i/O processor of
a first special purpose processor for coupling said master i/O processor to a peripheral i/O bus.
18. The slave i/O processor of
20. The slave i/O processor of
21. The slave processor of
23. The host i/O adapter of
24. The host i/O adapter of
|
1. Field of the Invention
The invention relates generally to an architecture for host I/O adapters as generally practiced in present computing workstations and personal computers and relates more specifically to a master/slave configuration architecture that provides enhanced flexibility for adding I/O channel capabilities to an I/O adapter without requiring additional host I/O slots.
2. Description of Related Art
Present day computing workstations and personal computers (collectively referred to herein as "PCs") interact with peripheral I/O devices through host I/O adapters. Typically, a PC includes an I/O interface bus into which host I/O adapters applied. ISA, EISA, PCI, and others are exemplary of such I/O interfacing buses commonly used in present day PCs. Host adapter cards are plugged into the I/O interface bus and adapt signals from the host I/O interface bus to appropriate signal values for the particular peripheral I/O device or devices attached to the host adapter. For example, a SCSI host adapter plugs into the I/O interface bus of its host PC and provides connection to a SCSI bus on which one or more peripheral I/O devices are attached. Similarly, a fiber Channel host adapter plugs into a slot in the I/O interface bus up its host PC and provides a connection for that PC to a fiber Channel communication medium. Such adapters converge signals from, for example, a PCI I/O interface bus into appropriate signals for the SCSI bus or fiber Channel communication medium and vice versa.
Host adapters as presently known in the art generally include significant processing power to permit the host adapter to perform substantial processing of I/O transactions thereby offloading the processing capabilities of the host PC. Often a host adapter will include a general purpose microprocessor as well as one or more special-purpose I/O channel processors for coupling the adapter to the host I/O interface bus and for coupling the adapter to the I/O peripheral devices (such as SCSI, USB, Ethernet, Fibre Channel, etc.). A single host adapter may include multiple such special-purpose I/O channel processors to permit connection of additional I/O peripheral devices. For example, a single SCSI host adapter may have a single special-purpose I/O channel processor for connection to a host PC PCI bus and multiple special-purpose I/O channel processors for connecting the host adapter to multiple SCSI buses.
Regardless of the number of such special-purpose I/O channel processors for connection to I/O peripheral devices (often referred to as "I/O channels"), present day host adapters have some fixed limit to the number of I/O channels supported by the host adapter interface card. To provide additional I/O channel connections for the host PC, additional duplicate host adapters must be added to the host PC. Each such additional duplicate host adapter utilizes another slot in the host PCI's interface bus. For example, a single SCSI host adapter may provide connections for one or two SCSI interface peripheral buses. To provide additional connections for a host PC to SCSI interface peripheral buses, additional host adapters must be added--each utilizing an additional PCI I/O interface bus slot in the host PC.
Each additional host adapter added to a host PC utilizes an additional slot in the I/O interface bus of the host PC and, in turn, utilizes additional resources within the host PC (i.e., computing resources such as I/O addresses and interrupt IRQs). It is evident from this discussion that a need exists for an improved I/O adapter architecture that permits flexible expansion of I/O channels supported by the host I/O adapter without a over utilizing host PC resources such as I/O interface bus slots and other I/O related computing resources.
The present invention solves the above and other problems, thereby advancing the state of the useful arts, by providing a host I/O adapter architecture that utilizes a master/slave configuration. A host adapter in accordance with the present invention is designated as a master device (also referred to herein as master host adapter or master I/O processor) and includes all processing features of a host adapter as presently known in the art. In addition, the master host adapter of the present invention includes a slave port interface support to communicate with a slave I/O processor. The slave I/O processor of the present invention is a dramatically simplified device relative to the master host adapter. The slave I/O processor includes additional special-purpose I/O channel processors to provide additional I/O channels for the master I/O processor. The slave I/O processor also includes a master port interface to connect to the master I/O processor through its slave port interface. A master/slave bus connects the slave port interface of the master I/O processor and the master port interface of the slave I/O processor to permit communications between the master I/O processor and slave I/O processor. Notably, the slave I/O processor is preferably devoid of a general purpose microprocessor and host bus interface ports. Further, the slave I/O processor is preferably substantially devoid of memory associated with the general purpose microprocessor of the master I/O processor.
The master/slave I/O processor architecture of the present invention permits addition of I/O channels to the master I/O processor without utilizing an additional host PC I/O interface bus slots and associated computing resources in the host PC. In a first preferred embodiment, slave I/O processors are connected to the master I/O processor in a "daughter board" physical configuration. In alternative embodiments, the slave I/O processor may be physically mounted remote from the master I/O processor with appropriate interconnect cabling serving as the master/slave bus for communications between the master I/O processor and slave I/O processor. In all embodiments, the slave I/O processor imposes no burden on the resources of the host PC in that it is not required to be mounted in a host PC I/O interface bus slot and does not consume any related I/O resources of the host PC. Further, the slave I/O processor is substantially simpler than the master I/O processor to thereby reduce the cost of adding he additional I/O channels in a host PC.
The present invention is particularly well-suited for interfacing a PCI bus in a host computer with multiple SCSI or Fibre Channel I/O peripheral buses connected to peripheral components such as data storage subsystems.
The above and other aspects, features, and advantages of the present invention will become apparent from the following description and the attached drawings.
While the invention is susceptible to various modifications and alternative forms, a specific embodiment thereof has been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that it is not intended to limit the invention to the particular form disclosed, but on the contrary, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
Each host adapter 116 as presently practiced in the art occupies one slot 114 of I/O interface bus 112 in host PC 100. As noted above, I/O interface bus 112 may be any of several well-known standard I/O bus interfaces including, for example, a PCI bus.
As noted above, host adapter 116 as presently practiced in the art occupies one slot 114 in I/O interface bus 112. Available slots 114 in such an I/O interface bus 112 are often a valuable resource within host PC 100. Further, in general, each host adapter 116 plugged into a slot 114 of I/O interface bus 112 consumes other related I/O resources within host PC 100 such as interrupt request lines (IRQs) and I/O addresses.
Each host adapter 116 plugged into a slot 114 of I/O interface bus 112 provides for a limited number of I/O channels to adapt signals to a particular I/O bus 150. As presently practiced in the art the number of I/O channels supported by a host adapter may be variable but there exists a fixed maximum number of such channels supported by the host adapter 116. Support for additional I/O channels in host PC 100 requires the insertion of additional host adapters 116--each occupying a slot 114 in I/O interface bus 112 of host PC 100.
Those skilled in the art will recognize that the block diagram of
As noted above, a plurality of I/O processors 204 may be designed into host adapter 116 as presently practiced in the art. As shown in
As distinct from the present state of the art typified by host adapter 116 of
Slave I/O processor 350 is connected to master I/O processor 300 and exchanges signals there with via master/slave bus 380. Slave I/O processor 350 includes master interface port 316. Master interface port 316 of slave I/O processor 350 and slave interface port 312 of master I/O processor 300 coordinate and control the exchange of information between master I/O processor 300 and slave I/O processor 350. Slave I/O processor 350 includes additional I/O processors 204 to permit management of additional I/O channels and associated I/O peripheral buses 150.
Unlike master I/O processor 300, slave I/O processor 350 is preferably of a general purpose processor (CPU) and associated memory. Neither does slave I/O processor 350 include circuitry for adapting to the host I/O interface bus 112. Rather, slave I/O processor 350 is controlled entirely by master I/O processor 300. In essence, slave I/O processor 350 is an extension of the master I/O processor 300 to provide for flexible and scalable management of additional I/O channels through additional I/O processors 204 of slave I/O processor 350. Both master I/O processor 300 and slave I/O processor 350 include well-known circuits for bus arbitrations (arbiter 310). Those skilled in the art will recognize the common need for arbitration in the exchange of information between one of several I/O processors 204 and the host bus interface 308. Exchange of information between a selected one of the I/O processors 204 (either on the master or slave I/O processor 300 or 35, respectively) and the single host bus interface 308 requires coordination and mutual exclusion of other I/O processors 204. The bus arbiter 310 in both the master I/O processor 300 and the slave I/O processor 350 performs this well known function to coordinate the communications. Decode 314 in slave I/O processor performs the function of decoding addresses provided on the control portion of the master/slave bus 380 for selecting an appropriate one of the I/0 processors 204 on the slave I/0 processor 350. Well-known address decode circuits provide this feature.
The master/slave bus 380 is an appropriate bus selected from any of several well-known choices for such a bus. The preferred bus for a particular embodiment of the present invention is that which is preferred for high-speed access in conjunction with the particular components selected for the design. In the preferred embodiment of the invention, CPU 200 is an ARM processor and the master/slave bus 380 is an ARM compatible AHB bus. Those skilled in the art will recognize a wide variety of equivalent selections for implementing the CPU and master/slave interface bus in the structures of the present invention. The data portion of the master/slave interface bus 380 is preferably a high-speed data bus for exchange of large volumes of data between the master I/O processor 300 and the slave I/O processor 350. Such a high-speed bus would preferably have a wide data path such as 64 bits to enable movement of large volumes of data with relatively lower clock rates. The control portion of the mater/slave interface bus 380 need not be particularly high-speed because the volume of transactions on the control portion of the bus is not particularly high. The control portion provides simple addressing and handshake controls to enable the high-speed transfer of information over the data portion of the master/slave interface bus 380.
As noted above, the master and slave I/O processors may be physically configured for mounting in a variety of manners. The master I/O processor preferably occupies a standard slot in the I/O interface bus of the host PC. Key to the invention is the fact that the slave I/O processor does not require a slot 114 in the host PC's I/O interface bus 112 (nor does the slave I/O processor require associated I/O computing resources).
In
Those skilled in the art will readily recognize extensions to the circuits described above with respect to
While the invention has been illustrated and described in the drawings and foregoing description, such illustration and description is to be considered as exemplary and not restrictive in character, it being understood that only the preferred embodiment and minor variants thereof have been shown and described and that all changes and modifications that come within the spirit of the invention are desired to be protected.
Brown, Andrew Carl, Johnson, Russell Andrew
Patent | Priority | Assignee | Title |
9785593, | Sep 17 2014 | HTC Corporation | Portable device with data transmission between main system and subsystem and control method therefor |
Patent | Priority | Assignee | Title |
4250563, | Aug 09 1979 | ALLEN-BRADLEY COMPANY, INC ; Allen-Bradley Company | Expandable programmable controller |
4504927, | Sep 08 1982 | Allen-Bradley Company | Programmable controller with expandable I/O interface circuitry |
4815034, | Mar 18 1981 | Dynamic memory address system for I/O devices | |
4882702, | Mar 31 1986 | Allen-Bradley Company, Inc. | Programmable controller with I/O expansion module located in one of I/O module positions for communication with outside I/O modules |
5047922, | Feb 01 1988 | Intel Corporation | Virtual I/O |
5528621, | Jun 29 1989 | Symbol Technologies, Inc | Packet data communication system |
5548788, | Oct 27 1994 | EMC Corporation | Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory |
5590292, | Dec 08 1992 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Scalable tree structured high speed input/output subsystem architecture |
5603051, | Jun 06 1995 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus |
5619722, | Jan 18 1994 | Teramar Group, Inc. | Addressable communication port expander |
5628637, | Dec 08 1994 | Dell USA, L.P.; DELL USA, L P | Computer system SCSI adapter card including an add-in daughter board providing an external SCSI connector for modular and upgradable SCSI bus routing options |
5758099, | May 29 1996 | LENOVO SINGAPORE PTE LTD | Plug and play protocol for bus adapter card |
5884027, | Jun 15 1995 | Intel Corporation | Architecture for an I/O processor that integrates a PCI to PCI bridge |
6542951, | Aug 04 1999 | Gateway, Inc. | Information handling system having integrated internal scalable storage system |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 26 2000 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Apr 02 2001 | BROWN, ANDREW C | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011788 | /0363 | |
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | BANK OF AMERICA, N A , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 037808 | /0001 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Jan 19 2017 | BANK OF AMERICA, N A , AS COLLATERAL AGENT | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS | 041710 | /0001 |
Date | Maintenance Fee Events |
Apr 01 2008 | ASPN: Payor Number Assigned. |
Apr 11 2008 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 04 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 20 2016 | REM: Maintenance Fee Reminder Mailed. |
Oct 12 2016 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 12 2007 | 4 years fee payment window open |
Apr 12 2008 | 6 months grace period start (w surcharge) |
Oct 12 2008 | patent expiry (for year 4) |
Oct 12 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 12 2011 | 8 years fee payment window open |
Apr 12 2012 | 6 months grace period start (w surcharge) |
Oct 12 2012 | patent expiry (for year 8) |
Oct 12 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 12 2015 | 12 years fee payment window open |
Apr 12 2016 | 6 months grace period start (w surcharge) |
Oct 12 2016 | patent expiry (for year 12) |
Oct 12 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |