A variety of option cards may be used in computing devices to provide the computing device with additional functionality, such as additional input port types, graphics capabilities, and similar. The computing devices may use one of the pins of the option card to identify the option card to correctly configure the option card.
Option cards communicate their identity via one of their pins by outputting a voltage in a predefined range, or a voltage step with a magnitude within a predefined range. For example, one pin may support up to 16 predefined ranges (15 active ranges and a zero or no-option card range), and hence up to 16 identifiers. However, as the number of options grows, the number of identifiers also increases. If more than 16 identifiers are employed, it may be inefficient to use another pin to increase the number of identifiers possible for the option card. Additionally, adding another identification pin may lead to incompatibility with older cards.
An example computing device may identify option cards using multiple power state inputs. That is, the computing device may apply a first voltage input to the option card and receive a corresponding first output from the option card. The computing device may additionally apply a second voltage input to the option card and receive a corresponding second output from the option card. In particular, the first and second voltage inputs may correspond to different power states of the computing device. The computing device may use the combination of the first output and the second output to determine the identifier of the option card.
In particular, to enable such a determination, the option cards themselves may include a circuit which provides a first output in response to the first voltage input and a second output in response to the second voltage input. For example, the option cards may include a circuit having two resistors forming a resistor divider, as well as a third resistor which is conditionally added in series and forms part of the resistor divider based in the input voltage. Hence, at a first input voltage, the resistor divider does not include the third resistor and results in a first output, and at the second input voltage, the resistor divider includes the third resistor and results in a second output. Since the additional resistor is added to the resistor divider, the combination of two different active ranges may only be achieved in one way, and hence the option cards may provide 15 choose 2 (15 active ranges, of which two are selected), or 105 active range combinations, as well as a zero or no-option card range, for a total of 106 possible identifiers.
The option card receptacle 102 is to receive an option card 106. For example, the option card receptacle 102 may be a slot on a motherboard (not shown) of the computing device 100. In some examples, the option card receptacle 102 may further include an aperture or the like in a housing of the computing device 100, for example to accommodate an external interface of the option card (e.g., a port or the like). The option card receptacle 102 may further include pin interfaces to interface with the pins of the option card 106.
The controller 104 may include a central processing unit (CPU), a microcontroller, a microprocessor, a processing core, or similar device capable of executing instructions. In particular, the controller 104 may be a chip or integrated circuit integrated on the motherboard of the computing device. The controller 104 may also be interconnected with a non-transitory machine-readable storage medium, such as a memory, that may be electronic, magnetic, optical, or other physical storage device that stores executable instructions. The memory may be integrated with the controller 104.
The controller 104 is generally to apply voltage inputs to the option card 106 and to obtain output values from the option card 106. In particular, the option card receptacle 102 may include an input interface to input a voltage input to the option card 106 and an output interface to read the outputs from the option card 106. The output interface may be an analog-to-digital pin (e.g., associated with the controller 104) which is capable of receiving an analog output from the option card 106 and converting the analog output to a digital value for processing by the controller 104. Accordingly, the controller 104 may control the voltage inputs applied at the input interface to the option card. Additionally, the controller 104 may analyze the outputs received from the option card 106 to determine an identifier of the option card.
Turning now to
The input pin 200 may be a suitable pin which may receive a voltage input from the computing device 100 to be applied to the circuit 204. The output pin 202 be a suitable pin to receive a voltage output from the circuit 204 and provide the voltage to the computing device 100.
The circuit 204 includes suitable components (e.g., including resistors, switches, field-effect transistors, and the like) to conditionally produce at least different first and second outputs based on the voltage input received from the input pin 200. In other words, the circuit 204 produces a first output when a first voltage input is applied to the circuit 204, and a second output when a second voltage input is applied to the circuit 204.
In operation, when the option card 106 is received in the option card receptacle 102, the controller 104 may apply a first voltage input to the option card 106 via the input interface and the input pin 200. In particular, the first voltage input may correspond to a first power state (e.g., a sleep or low-power state). The controller 104 may further detect a first output from the option card 106 via the output pin 202 and the output interface of the option card receptacle 102. When the computing device 100 transitions to a second power state (e.g., a power on state), the controller 104 may apply a second voltage input to the option card 106, via the input interface and the input pin 200. The second voltage input may correspond to the second power state. The controller 104 may further detect a second output from the option card 106 via the output pin 202 and the output interface. The controller 104 may then determine an identifier of the option card based on a combination of the first output and the second output.
For example,
The circuit 204 includes a first resistor 300 having a resistance R1 and a second resistor 302 R2 forming a resistor divider 304 extending from a first source 306. The circuit 204 further includes an output point 308 between the first resistor 300 and the second resistor 302 which provides the output used to determine the identifier of the option card 106. That is, the voltage reading at the output point 308 defines the identifier of the option card 106. Accordingly, the output point 308 is connected to the output pin 202 to provide the output to the computing device 100.
The circuit 204 further includes a third resistor 310 having a resistance R3 which is conditionally included in the resistor divider 304 based on the voltage input. In particular, the third resistor 310 is provided in parallel with a metal-oxide-semiconductor field effect transistor 312 (simply referred to herein as transistor 312) to enable the conditional inclusion of the third resistor 308 in the resistor divider 304. The transistor 312 is fed by a line 314 between a fourth resistor 316 extending from a second source 318 and a second metal-oxide-semiconductor field effect transistor 320, and the second transistor 320 is fed by the input pin 200 of the option card 106 and receives voltage inputs from the computing device 100.
In other examples, the circuit 204 may include the first transistor 312 and third resistor 310 to produce the conditional outputs. In other words, the second transistor 320 and second source 318 may be optional to invert the signal received from the input pin 200, as will be described further below.
For example, referring to
In response to the relatively high voltage 402 applied, the first transistor 312 provides a low resistance. Accordingly, a voltage 404 applied by the first source 306 is substantially shorted through the transistor 312 rather than being routed through the third resistor 310. The voltage 406 at the output point 308, is therefore defined by the ratio of the resistance of the first resistor 300 to the resistance of the second resistor 302, i.e., R1/R2. Hence, the first output corresponding to the first power state (i.e., the sleep state) is also defined by the ratio R1/R2.
Referring to
In response to the relatively low voltage 414 applied, the first transistor 312 provides a high resistance. Accordingly, a voltage 416 applied by the first source 306 is directed through the third resistor 310. The voltage 418 at the output point 308 is therefore defined by the ratio of the resistance of the first resistor 300 to the sum of the resistances of the second resistor 302 and the third resistor 310, i.e., R1/(R2+R3). Hence, the second output corresponding to the second power state (i.e., the power-on state) is also defined by the ratio R1/(R2+R3).
Referring to
At block 502, the controller 104 of the computing device 100 applies a first voltage input to the option card 106 in the option card receptacle 102. In particular, the controller 104 may apply the first voltage input via the input interface to the input pin 200 of the option card 106. The first voltage input may correspond to a first power state of the computing device 100. For example, the first power state may be a sleep state, and hence the first voltage input may have a relatively low magnitude. In some examples, the controller 104 may periodically sample the output from the option card 106 while the computing device 100 is in the sleep state.
Additionally, at block 502, the controller 104 detects a first output of the option card 106 as a result of the application of the first voltage input. In particular, the controller 104 may detect the first output via the output interface to the output pin 202 of the option card 106. The first output may represent, for example, a voltage value, or magnitude of a voltage step output from the circuit 204. Upon receipt of an analog voltage output from the output pin 202, the controller 104 may convert the analog voltage to a digital value for further processing.
At block 504, the controller 104 applies a second voltage input to the option card 106 in the option card receptacle 102. In particular, the controller 104 may apply the second voltage input via the input interface to the input pin 200 of the option card 106. The second voltage input may correspond to a second power state of the computing device 100. In particular, the performance of block 504 may be initiated when the computing device 100 transitions from the first power state to the second power state. For example, the second power state may be a power-on state, and hence the application of the second voltage input by the controller 104 may be performed in response to the computing device 100 being powered on. Further, the second voltage input may have a relatively high magnitude corresponding with signals associated with the power-on state.
Additionally, at block 504, the controller 104 detects a second output of the option card 106 as a result of the application of the second voltage input. In particular, the controller 104 may detect the second output via the output interface to the output pin 202 of the option card 106. The second output may represent, for example, a voltage value, or a magnitude of a voltage step output from the circuit 204.
In some examples, the computing device 100 may additionally include a resistor which provides a pull down signal to the controller 104 to allow the controller 104 to still receive a signal and when no option card is present in the option card receptacle 102. This resistor contributes to the resistor divider of the option card 106, and hence may be considered when considering the first and second outputs at blocks 502 and 504.
At block 506, the controller 104 retrieves a multi-state identifier mapping (e.g., from a memory) to determine the identifier of the option card 106. In particular, the multi-state identifier mapping may include associations between the combinations of possible first and second outputs with an identifier of the option card 106.
For example, the first and second outputs may represent voltage steps output from the circuit 204. To account for minor variances in the output based on imperfections in circuit construction, nearby components causing minor interference, or the like, the multi-state identifier mapping may define ranges for the outputs in the first power state and the second power state, and associate said ranges to the option card identifier. For example, Table 1 shows an example multi-state identifier mapping.
In the above table, a range of magnitudes for the voltage step detected in each of the power states (power-on state or S0 and sleep state or S5) is defined. Each combination of ranges is associated with an option card identifier.
At block 508, the controller 104 determines whether the first output and the second output are substantially the same. That is, the controller 104 may determine whether the first output and the second output both fall within the same range as defined in the multi-state identifier mapping. Option cards built in accordance with the present description include a circuit with an output that varies based on the voltage input. Accordingly, the first output and the second output will differ between the first voltage input and the second voltage input based on the differences of the voltage inputs applied in the first power state and the second power state. In contrast, legacy option cards have a circuit which produces the same output irrespective of the voltage input. Accordingly, the first output and the second output will be substantially the same for both the first voltage input and the second voltage input.
If, at block 508, the controller 104 determines that the first output and the second output are not the same, the method 500 proceeds to block 512, as described below.
If, at block 508, the controller 104 determines that the first output and the second output are substantially the same (i.e., that the first output and the second output both fall within the same one of the predefined ranges of the multi-state identifier mapping), the method 500 proceeds to block 510. In some examples, certain rows of the multi-state identifier mapping (i.e., rows which for which the ranges for the first power state and the second power state are the same) may be flagged to cause the method 500 to proceed to block 510.
At block 510, the controller 104 retrieves a legacy identifier mapping (e.g., from a memory) to determine the identifier of the option card 106. In particular, the legacy identifier mapping may include a further of the multi-state identifier of the option card 106 with a legacy identifier of the option card 106. For example, Table 2 shows an example legacy identifier mapping.
In the above table, a range of magnitudes for the voltage step detected in each of the power states (power-on state or S0 and sleep state or S5) is defined and is the same range for both power states. Further, each range corresponds to a multi-state option card identifier as well as a legacy option card identifier.
At block 512, the controller 104 determines the identifier of the option card 106 based on the mapping(s) retrieved at blocks 506 and 510. In particular, the controller 104 may identify a first range of the predefined ranges (i.e., defined in the mapping(s) retrieved at block 506 and/or 510) in which the first output falls, and a second range of the predefined ranges in which the second output falls.
For example, the controller 104 may simply use the multi-state identifier mapping to identify the row having the first and second ranges select the corresponding option card identifier as the identifier of the option card 106. In particular, the controller 104 may use the multi-state identifier mapping when the first range and the second range are different.
In some examples, when the first range and the second range are the same, after identifying the multi-state option card identifier, the controller 104 may additionally use the legacy identifier mapping to identify the legacy option card identifier corresponding to the multi-state option card identifier and select the legacy option card identifier as the identifier of the option card 106. In other examples, when the first range and the second range are the same, rather than identifying the multi-state option card identifier, the controller 104 may use the legacy identifier mapping to identify the row having the range in which the first output and the second output fall and select the corresponding legacy option card identifier as the identifier of the option card 106.
As described above, example computing devices and option cards may allow for the number of option card identifiers transmitted by a single option card pin to be expanded by using multiple voltage inputs and using a combination of the multiple corresponding outputs to determine the identifier of the option card. The option cards may include a circuit which, in addition to the traditional two resistors forming the resistor divider from which the identifier is obtained, also includes a third resistor. The third resistor is conditionally included in series and forms part of the resistor divider based on the voltage input. Hence, at a first voltage input, the resistor divider does not include the third resistor and results in a first output, and at a second voltage input, the resistor divider does include the third resistor and results in a second output.
To provide the different input voltages, the computing device may apply the first input voltage when it is in a first power state (e.g., sleep state) and the second input voltage when it is in a second power state (e.g., power on state). By using the combination of voltages in each of the states, more identifiers may be communicated on a single pin. Additionally, the option card circuitry structure and computing device readings allow backwards compatibility with option cards without the new resistors. In particular, legacy option cards do not produce outputs which are conditional upon high or low voltage inputs; rather, they produce the same output regardless of input. Accordingly, if the computing device detects that the outputs are different, it may use a multi-state identifier mapping to determine the identifier of the option card, while if the outputs are the same, it may use a legacy identifier mapping to determine the identifier of the option card.
The scope of the claims should not be limited by the above examples, but should be given the broadest interpretation consistent with the description as a whole.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2021/039441 | 6/28/2021 | WO |