Cross-Reference to Related Applications
This application is related to the commonly owned copending application entitled "High Function Interface to Video Features", filed May 18, 1990, bearing U.S. Ser. No. 07/525,510, now abandoned, and naming W. J. Piazza, one of the named inventors herein, as sole inventor, the contents of which is specifically incorporated by reference herein in its entirety.
Background to the Invention
1. Technical Field
This invention relates to adapter cards for computer systems. In particular, this invention relates to selection and control of multiple adapter cards within a system.
2. Background Art
In the early days of personal computer systems, the number of peripheral devices attached to a system tended to be small. The systems typically would include a video display, a printer, a disk drive, and perhaps a modem. To control communication between the processor and the peripheral devices, each device was assigned a specific port address (hereafter, port). Adapter cards (hereafter adapters) were used to interface between the processor and each device, and were typically developed to control a single port.
The processor could select a port by placing the port address on the system bus which connected the processor to the other devices in the system. The adapter, which provided the interface between the device and the system bus, would recognize the address and initiate the action directed by the processor. When the processor switched from one device to another, the original device would be deselected by the processor in one bus write operation and then the new device would be addressed by the processor in a second write operation. Typically, each device was controlled by different software because of the differences in the hardware (e.g., printers and modems would each have unique software).
Over time, processors became more powerful, and were able to control many more devices in a system. As the number of peripheral (I/O) devices on a system grew, a plurality of identical devices were often used on the same system. For example, systems applications developed which used multiple video displays instead of the single displays typically found on early computers. Further, adapter technology improved to the point where multiple video ports could be controlled by a single adapter. One result of the improvement of technology in adapters was the situation where multiple types of adapters were used to control a plurality of identical devices. For example, a system which had a single video display with a single port adapter would be expanded to include several additional displays. The displays may have been added one at a time with each having its own adapter. Likewise, several displays may have been added at the same time with a single multi-port video adapter. Therefore, depending on the rate of growth and the timing of the additions to the system, different types of adapters may be used on the same system to control identical displays.
This creates a problem for the software in at least two respects. First, the software may not be compatible with the two types of adapter hardware which would require two versions of software to control identical I/O devices on the same system. Second, there is a performance impact due to the multiple bus writes required to deselect one device and to select another. The compatibility problem also exists in a multi system environment when one system has a single multi-port adapter and a second system has grown from a single device/single port adapter system to multiple devices each having a single port adapter. In that situation, each system would require different software to control the adapters even though the I/O device configuration may be identical (i.e., four displays on a single multi-port adapter in system A and four identical displays on four single port adapters in system B).
In summary, due to the increase in the power and complexity of computers, systems have developed performance problems relating to selection and control of the larger number of I/O devices. In addition, software compatibility problems exist due to the difference in adapter types used on the same system or due to differences in adapter types used in a multisystem environment.
Summary of the Invention
An object of this invention is to switch active adapter ports with a single operation.
Another object of this invention is to control multiple adapters in a single operation.
Yet another object of this invention is to simultaneously place information on the bus from multiple adapters.
A further object of this invention is to use a distributed register to control backlight and contrast on LCD panels.
Still another object of this invention is to control multi-port adapter cards and multiple single port adapter cards with the same software.
The foregoing and other objects, features and advantages of the invention are achieved by distributing some of the addressable registers used by multi-port adapters across multiple single port adapters. Specific bus bit lines assigned to each of the single port adapters correspond with register locations assigned to each port, thereby allowing the simultaneous response of multiple single port adapters to place the same response on the bus as a single multi-port adapter.
Brief Description of the Drawings
FIG. 1 shows a sample distributed register configuration.
FIG. 2 shows a diagram of the distributed register used in a multiple single adapter configuration and the corresponding register in a multi-port adapter configuration.
FIG. 3 shows a configuration with two single port adapters.
Description of the Preferred Embodiment
By way of general description, in a computer system with multiple displays, a register is provided in multi-port adapters which allows the system to activate one display and deactivate another simultaneously. This is accomplished by merely writing to the register. The contents of the register are then used by the adapter to determine which display to deactivate and which display to activate. In like manner, the processor can request status from all of the displays attached to the adapter. Or it can adjust backlighting or contrast for the displays in a single write operation. (In practice, the register can be organized as a single register or as multiple registers. For ease of illustration, it will be treated as a single register herein.) The register in the multi-port adapter enables this single write operation by assigning specific bits in the register to specific display ports.
In a configuration which contains multiple single port adapters, the register is distributed across each of the adapters. By assigning specific bits to each adapter, the processor is able to communicate with multiple single port adapters in the same manner as it communicates with a single multi-port adapter. Each adapter has a switch to indicate which port position it has, which allows it to select the appropriate bits from the bus to place in its register. Also, the switch setting allows each adapter to select the appropriate bus bit lines when replying to the processor. Because the processor is communicating with the displays through a register, and because the processor cannot distinquish the distributed register from the single register on the multi-port card, the processor can communicate with multiple single port adapters in a single operation just as it does with a single multi-port adapter. Therefore, the type of adapter used is transparent to the system software.
A very unique feature of the single port adapters is that distributing the registers across multiple adapters provides better system performance and maintains software compatibility with the multi-port version of the adapter. In other words, on the multi-port adapter, writing to the distributed register allows software to deselect one video port and to select a different video with one write operation because all four video ports are implemented on the same card. But the same capability exists to deselect one port and select another port when using one port cards, even though the operation involves multiple adapter cards.
In FIG. 1, the register fields are shown. For ease of illustration, the register will be referred to as a distributed register whether it is distributed across several adapters or located on a single multi-port adapter. In either case it will function identically from the perspective of the system. The single and multi-port video adapters contain a set of addressable hardware registers (for illustation, in the range 8200h through 8207h). These registers are unique to these adapters (i.e., they are not found on normal video adapters.) They implement the functions of selecting one of four video "ports" to be active (i.e., addressable for updating), sensing the capabilities of a particular video port, and controlling the backlight and contrast of the LCD panels. In addition, the registers can be expanded to control any of the functions on a display which a processor may control in other systems. The numbers 0, 1, 2, and 3 differentiate between four sets of hardware. The video port select field allows the processor to select the desired display by turning on the appropriate bit. For example, the processor can select port 2 and then read the video memory from that port. Control fields for other activity can also be provided. As an example, sophisticated adapters often use piggyback, or daughter, cards to hold additional logic. The piggyback card ID field allows the processor to select and control these daughter cards as well.
As a further example, reading register 8207h on the multi-port adapter allows software to determine which backlights are currently turned on and which are not. On the multi-port adapter, this read operation simply involves gating the four signals to the system bus at the appropriate time, because all four backlights are controlled by this one adapter and therefore they are all available to be gated through a single circuit. However, reading register 8207h will produce the same results when one or more single port video adapters are in the system. In this case, each adapter individually gates only one bit of data onto the system bus, thus providing the response for the video port which it controls. Nonetheless, the system sees the response from all installed video ports simultaneously. The registers are therefore distributed across multiple adapters.
In FIG. 2, bus bit line attachment of a distributed register configuration and a multi-port configuration are illustrated. In the multi-port configuration, the adapter presents information and accepts commands for four displays (0-3) simultaneously. In the distributed configuration, each adapter controls a particular bit for the port address of the display it controls. Since each adapter can write to its particular bus bit line simultaneously with the other adapters, the four distributed adapters (0-3) can appear to the system identically to the multi-port adapter when the system reads or writes to the bus.
Each single port adapter has priority selection means (not shown) identical to that on multi-port adapters. Priority selection of adapters is well known in the art. Further each port has means to activate a single bit line on the bus simultaneously with other single port adapters each of which addresses a different bit line. The priority selection means recognizes the highest priority address to be used and activates its port if that address is assigned to its port or deactivates its port if a higher priority address assigned to a different port is selected. Therefore, the system is protected from physical damage in the event that the activation of more than one non-distributed register is attempted. The assignment of specific bus bit lines to each of the single port adapters which correspond with register locations assigned to each port allows the simultaneous response of multiple single port adapters to place the same response on the bus as a single multi-port adapter.
Note that a priority encoding circuit is contained on the multi-port video adapter so that only one of the four video ports will be selected if more than one bit is accidently turned on when writing to register 8204h. The same priority encoding scheme also works when more than one single port video adapter is installed, because each adapter applies the same priority encoding algorithm (in hardware) to determine which is the highest priority port being selected. If this selected port matches the adapter's own unit number it considers itself in control of the bus, otherwise it remains inactive.
In FIG. 3, a configuration showing two single port adapters is shown. The adapter switches were arbitrarily chosen to select port addresses 0 and 2. A system can be gradually enlarged, as needed, from one to four adapters.
This invention improves performance and ease of programming by allowing the same set of functions (selecting and deselecting video ports, controlling backlights, etc.) to be accomplished with fewer operations to the hardware. In addition, it improves software compatibility. Applications written for a system based on a single video display (such as an application written for a traditional single display system) can be easily transported to a system having multiple video displays. Traditional approaches used in the past to address the problems associated with having more than one of the same hardware function available within the system have been to provide each set of hardware with its own unique address (which uses up available address space quicker and has more impacts to software), and to provide a register within the system which completely disables one set of hardware and enables another, but does not allow for simultaneous control of both (this has a performance penalty associated with it).
While this invention has been described in terms of a preferred embodiment, those skilled in the art will recognize many variations which can be made without departing from the spirit and scope of the invention. For example, a four port multi-port adapter was used for illustrative purposes, but the number of ports and corresponding number of single port adapters on the distributed register can be varied. In addition, the types of display operations shown, such as backlight, and contrast control, could be expanded to other display functions. The address switching means could be accomplished by common hardware switches or, for example, eproms. Bus bit line selection logic and device priority logic could be implemented in hardware or software on the adapter. Therefore, the invention should be limited only by the scope of the claims.