Abstract:
Aspects for increasing control information from a single general purpose input/output (GPIO) mechanism are described. The aspects include establishing a plurality of voltage levels to indicate a plurality of states for association with installed options on a computer system planar. Further included is the determination of which of the installed options is present via the single GPIO.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to general purpose input/output mechanisms (GPIOs), and more particularly to increasing control information from a single GPIO.  
         BACKGROUND OF THE INVENTION  
         [0002]    A trend emerging in computer system development and manufacturing involves a move toward a building block-based approach, where a system is created by a collection of building blocks. This approach places increasing need on the ability to detect, enable/disable, and customize building blocks to create the desired personality of the system.  
           [0003]    The flexibility of varying the system configuration through building blocks requires that the POST (power-on self test) of the planar be able to detect, enable/disable, and configure the various options installed. This is frequently handled with the use of General Purpose Input Outputs (GPIOs). Typically, a GPIO can only detect two states (high/low) and is dedicated to a function or a particular device. For example, if a particular card is installed, the GPIO may detect a low state, while if the card is not installed, the GPIO may detect a high state.  
           [0004]    The push to a building block model is rapidly increasing the need for GPIOs to assist in the detection of the building blocks installed. However, some systems have to limit the number of GPIOs due to other design considerations. Thus, a need exists for a manner of increasing the amount of control information from GPIOs without increasing the number of GPIOs.  
           [0005]    The present invention addresses such a need.  
         SUMMARY OF THE INVENTION  
         [0006]    Aspects for increasing control information from a single general purpose input/output (GPIO) mechanism are described. The aspects include establishing a plurality of voltage levels to indicate a plurality of states for association with installed options on a computer system planar. Further included is the determination of which of the installed options is present via the single GPIO.  
           [0007]    Through the present invention, an increase in the amount of control/information that is available using GPIOs is achieved in a straightforward and effective manner without increasing the number of GPIOs. With the simple addition of parallel arrangement of resistors in a resistor network and efficient utilization of an unused A/ID already present in the system, multiple states can be detected via the single GPIO. These and other advantages of the aspects of the present invention will be more fully understood in conjunction with the following detailed description and accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]    [0008]FIGS. 1A and 1B illustrate block diagrams of a portion of a computer system planar with a GPIO in accordance with the present invention.  
         [0009]    [0009]FIG. 2 illustrates a block flow diagram of a method that achieves the ability to increase the control information provided by a single GPIO in accordance with the present invention.  
     
    
     DETAILED DESCRIPTION  
       [0010]    The present invention relates to increasing control information of single GPIOs. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.  
         [0011]    Referring now to FIG. 1A, a block diagram of a portion of a planar is illustrated and includes a controller  10  which contains a GPIO  12 . The GPIO  12  is coupled to detect one or more cards  14  via connectors  15 . As an exemplary embodiment of the functionality of the present invention, suppose the planar supports multiple different daughter cards  14 , e.g., daughter card  1 , daughter card  2 , daughter card  3 , daughter card  4 , where each daughter card contains the same chips with minor changes in discrete logic. Thus, the POST needs to know the status of card installation, i.e., which of the daughter cards is installed, or if no card is installed.  
         [0012]    Under traditional operations, GPIOs follow Boolean logic (e.g., 0-low, 1-high) which allows for two states (True/False). Thus, the ability to detect multiple card states, i.e., whether a first card, a second card, a third card, a fourth card, or no card is installed, would require four GPIOs. A first GPIO, e.g., GPIO1, would be connected to a detect pin on daughter card 1, with the installed daughter card 1 grounding the detect pin. A second GPIO, e.g., GPIO2, would be connected to a detect pin on daughter card 2, with the installed daughter card 2 grounding that detect pin. A third GPIO, e.g., GPIO3, would be connected to a detect pin on daughter card 3, with the installed daughter card 3 grounding its detect pin. A fourth GPIO, e.g., GPIO4, would be connected to a detect pin on daughter card 4, with the installed daughter card 4 grounding that detect pin. When a POST routine of a controller reads the GPIOs, a low for GPIO1 indicates that the first card is installed, a low for GPIO2 indicates that the second card is installed, a low for GPIO3 indicates that the third card is installed, a low for GPIO4 indicates that the fourth card is installed, and a high for GPIO1, GPIO2, GPIO3, and GPIO4 indicates that no card is installed.  
         [0013]    In contrast to the traditional operation requiring the use of separate GPIOs for detection of separate states, in accordance with the present invention, a single GPIO is used in conjunction with a resistor network structure  16  and an analog-to-digital (A/D) decoder  18  to detect multiple, separate states. As shown in FIG. 1A, the resistor network  16  includes a plurality of resistors, R 1 , R 2 , R 3 , through Rz, coupled in parallel to a voltage signal sense line  20 . The number of resistors included in the resistor network  16  is dependent upon design needs, particularly the number of states desired to be sensed via the GPIO  12 , as described in more detail with reference to FIG. 2. For the A/D  18  utilized with the GPIO  12  and resistor network  16  in the identification of multiple states with the single GPIO  12 , an unused A/D converter within the system, such as an unused A/D converter of an environmental monitoring chip (e.g., manufactured chips part number LM79, LM80, ADM1024, as is well understood in the art), is suitable for detecting a voltage value that can indicate the status of the device presence via the GPIO  12 .  
         [0014]    In a further embodiment, which card is installed in a slot can be determined without requiring the complexity of configuration registers. As illustrated on FIG. 1B, a card 1-Z ( 14 ) can be inserted into a connector  21 . Since each daughter card  14  has a unique register value (R card), it forces the valve of the voltage on the sense line  20  via the parallel network Rcard/Ra.  
         [0015]    [0015]FIG. 2 illustrates a flow chart of a method that achieves the ability to increase the control information provided by a single GPIO in accordance with the present invention. The process includes establishing unique voltage values for each of a plurality of cards that are being detected via the GPIO  12  (step  22 ). As is well understood in the art, the establishing of unique voltage values results from the circuit of the parallel resistors of the resistor network  16 . Thus, the resistance values are chosen as desired to achieve the voltage signals needed for given system requirements. Preferably, the resistance values chosen allow a unique voltage level to be clearly detectable depending upon which card(s) are present in the system. By way of example, when the presence of four daughter cards is being determined, unique voltage levels of 1 V (volt), 3 V, 5 V, and 7 V may be chosen to represent presence of first, second, third, or fourth daughter cards, respectively.  
         [0016]    With the desired unique voltage levels established, the detection of the voltage level signal can commence (step  24 ). The voltage level signal preferably refers to the voltage from voltage signal sense line  20  being sensed by GPIO  12  that is converted to a digital signal via A/D  18 . The converted voltage level determines the card configuration (step  26 ) when reading from the A/D  18  during a POST routine of controller  10 . The signal read indicates which of the card(s) is present. By way of example, when no card is present, the signal indicates a ground voltage, since the voltage signal sense line  20  is tied to ground (GND) via resistor Ra. When any one of the cards is present, the signal level indicates the voltage level associated with that card (e.g., 1V, 3V, 5V, or 7V).  
         [0017]    This method can also be used to detect how many devices are installed (such as memory SIMMs, I/O backplanes, etc.), since the unique voltage levels also allow for unique sums. Thus, using the example presented above, if the voltage is 1 V, card 1 only is installed. If the voltage is 3 V, card 2 only is installed. If the voltage is 5V, card 3 only is installed. If the voltage is 7 V, card 4 only is installed. If the voltage is 0.83 V, cards 1 and 3 are installed. If the voltage if 0.88 V, cards 1 and 4 are installed. If the voltage is 1.88V, cards 2 and 3 are installed. If the voltage is 2.1 V, cards 2 and 4 are installed. If the voltage is 2.92 V, cards 3 and 4 are installed. If the voltage is 0.65V, cards 1, 2, and 3 are installed. If the voltage is 1.48 V, cards 2, 3, and 4 are installed. And, if the voltage is 0.59 V, cards 1, 2, 3, and 4 are installed.  
         [0018]    The present invention provides a straightforward approach to increasing the control information available from a single GPIO. With the simple addition of parallel arrangement of resistors in a resistor network and efficient utilization of an unused A/D already present in the system, multiple states can be detected via the single GPIO. In this manner, an effective improvement to performance results.  
         [0019]    Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.