US 20090119052 A1
A margin testing system comprises a margin testing controller and a frequency control module. The margin testing controller is internal to and integrated with an electronic system under test and is coupled with a plurality of components that are configured to provide the functionality of the electronic system under test. The plurality of components includes a processor of the electronic system under test. The frequency control module is in communication with the margin testing controller. The frequency control module is configured for varying a clock frequency associated with at least one of the components for frequency margin testing the at least one of the components in response to command of the margin testing controller.
1. A margin testing system comprising:
a margin testing controller internal to and integrated with an electronic system under test and coupled with a plurality of components configured to provide functionality of said electronic system under test, wherein said plurality of components includes a processor of said electronic system under test; and
a frequency control module in communication with said margin testing controller, said frequency control module configured for varying a clock frequency associated with at least one of said components for frequency margin testing said at least one of said components in response to command of said margin testing controller.
2. The margin testing system of
a frequency synthesizer generating a clock signal at a selected frequency in response to command of said margin testing controller.
3. The margin testing system of
a voltage control module in communication with said margin testing controller, said voltage control module varying a voltage applied said at least one of said components for voltage margin testing of said at least one of said components in response to command of said margin testing controller; and
a fault bypass module in communication with said margin testing controller, said fault block module disabling selected automatic fault response mechanisms of said electronic system under test in response to command of said margin testing controller.
4. The margin testing system of
a digital potentiometer incorporated in a feedback circuit of a voltage regulator supplying voltage to said at least one of said components so as to adjust a resistance associated with said feedback circuit, thereby adjusting an output voltage of said regulator in response to command of said margin testing controller.
5. The margin testing system of
an external system in communication with said margin testing controller for transmitting an initiation command to said margin testing controller for initiating margin testing of one or more marginable components of said plurality of components.
6. The margin testing system of
a module for monitoring response of said electronic system under test to any of said clock frequency and said voltage variations.
7. The margin testing system of
a Baseboard Management Controller (BMC).
8. The margin testing system of
an Inter-integrated Circuit-based bus providing communication between said BMC and said frequency and voltage control modules.
9. The margin testing system of
10. The margin testing system of
a computer system.
11. The margin testing system of
a server employing an IPMI protocol
12. The margin testing system of
front-side bus components of said computer system.
13. The margin testing system of
14. The margin testing system of
a central processing unit of said electronic system under test.
15. The margin testing system of
a memory module of said electronic system under test.
This application claims priority and is a continuation to the co-pending patent application Ser. No. 10/606,714, entitled “METHOD AND CONSTRUCT FOR ENABLING PROGRAMMABLE, INTEGRATED SYSTEM MARGIN TESTING,” with filing date Jun. 26, 2003, and assigned to the assignee of the present invention, the disclosure of which is hereby incorporated herein by reference.
The present application is also related to the following commonly owned U.S. patent applications, incorporated in their entirety herein by reference: U.S. Pat. No. 7,400,996 filed Jun. 26, 2003, entitled “USE OF I2C-BASED POTENTIOMETERS TO ENABLE VOLTAGE RAIL VARIATION UNDER BMC CONTROL,” naming as inventors Benjamin T. Percer, Naysen J. Robertson and Akbar Monfared; U.S. patent application Ser. No. 10/606,715 filed Jun. 26, 2003, entitled “METHODS AND SYSTEMS FOR MASKING FAULTS IN A MARGIN TESTING ENVIRONMENT” naming as inventors Benjamin T. Percer and Naysen J. Roberston; and U.S. Pat. No. 7,437,258, filed Jun. 26, 2003, entitled “USE OF I2C PROGRAMMABLE CLOCK GENERATOR TO ENABLE FREQUENCY VARIATION UNDER BMC CONTROL,” naming as inventors Naysen J. Robertson, Benjamin T. Percer, and Kirk Yates.
The present invention relates generally to systems and methods for monitoring and testing various modules in an electronic system, such as a computer system. More particularly, the invention provides methods and systems for enabling programmable, integrated margin testing of a computer system.
Electronic systems often include a myriad of subsystems and components that require monitoring and/or testing during development, and/or manufacturing while in use in the field to ensure their proper operation within specified operating conditions. Many of these components typically exhibit subtle failures at margins or extremes of such specified operating conditions. Hence, it is desirable to test a system to variations of operating conditions, such as, ambient temperature, clock frequencies and power rail voltages, associated with selected components thereof, during development and manufacturing, to ensure system reliability. Such testing of a system, especially at the extremes or margins of the operating conditions, is herein referred to as margin testing. Margin testing can also ensure that a particular design can be readily adapted to evolving changes in manufacturing processes.
Traditionally, circuitry for margin testing is implemented by providing a plurality of access points in a system under test (SUT) that allow external adjustment of the system's power rail voltages, and input of alternate wave functions for distribution to the system's fundamental clock networks. Such traditional approaches, however, suffer from a number of shortcomings. For example, such approaches typically require physical modification of the SUT, e.g., physical switching of various components for selecting different frequencies, that may lead to accidental damage and/or unreliable test results. Further, such approaches typically require multiple manufacturing “load-options” to bypass the system's integral fault trigger circuits during testing, and additional ports for providing feedback to an external test system, thereby adding to the complexity and expense of margin testing.
Moreover, external test systems can be expensive, and are often large and utilize valuable floor space. In addition, such external test systems require control software to manage, monitor and control analog/digital function generators, thereby adding complexity to the process of synchronizing the SUT's operation with specific control inputs issued by the external test system. Moreover, the use of an external test system can render generation and testing of scripts for margin testing more complicated. In particular, test scripts must execute additional control commands to interface with the test station, e.g., the test system's generators that provide various stimuli to the SUT.
Another disadvantage of such traditional margin testing systems relates to a high level of hardware specificity that causes such systems to be generally non-extensible. For example, in such traditional margin testing systems, the processes and procedures utilized for margin testing of a present SUT can not be readily extended to processes and procedures suitable for margin testing of a future version of the SUT.
Hence, there is a need for enhanced systems and methods for readily performing margin testing of a computer system. There is also a need for such systems and methods that allow margin testing without a need for physical modifications of the system under test.
The present invention relates generally to improved systems and methods for margin testing of selected components and/or subsystems of an electronic device, such as a computer system (e.g., a server) or a network switch. As discussed in detail below, a margin testing system according to the teachings of the invention can include a digital parameter adjuster, such as a digital frequency synthesizer or a digital potentiometer, that operates under control of a controller. The parameter adjuster can vary the value of (“step”) an operating parameter of interest, e.g., frequency or voltage, associated with selected components of the computer system through a plurality of test values in response to commands from the controller. More particularly, the output of the parameter adjuster, and hence the value of the operating parameter applied to one or more components under test, can be varied over a selected range, via command signals from the controller, and the response of the system can be collected, monitored and/or analyzed.
Although the following embodiments of margin testing systems of the invention are described with reference to computer systems, it should be understood that margin testing systems according to the teachings of the invention can also be incorporated in other electronic systems, such as, network switches, for which margin testing is needed.
The exemplary computer system 10 includes a controller 14 that can provide a plurality of management functions, as described below, and is in communication, via a system interface 16, with the host processor 12 on which an operating system (OS) and one or more management agents run. The system interface 16 can be, for example, any suitable communications bus, such as a PCI bus.
The controller 14 can be implemented, for example, as an application specific integrated circuit (ASIC), or alternatively, it can consist of several different chips. By way of example, in some embodiments of the invention described in more detail below, the controller 14 can be an intelligent processing controller, commonly referred to as Baseboard Management Controller (BMC) that can support Intelligent Platform Management Interface (IPMI) protocol. The IPMI protocol is an open standard that provides a standardized message interface between a management application running on a host processor and the hardware platform.
The exemplary controller 14 can communicate, via a communications bus 18, with a hardware monitor module 20 and a digital parameter adjuster module 22 to transmit command signals to these modules and/or to receive information therefrom. The communications bus 18 can be any suitable proprietary or public bus. For example, in embodiments in which the controller is BMC, the bus 18 can be a private I2C (Inter-integrated Circuit) bus or an Intelligent Platform Management Bus (IPMB). Alternatively, the bus 18 can be an ASA or a USB bus, or any other suitable communications bus.
Moreover, the controller 14 can communicate with an external system 24, via a bus 26, that can instruct the controller to initiate margin testing of the device 10. The external system 24 can be, for example, a terminal that can communicate with the controller via a bus, such as, an RS232 bus. Alternatively, the external system 24 can be a remote computer that can communicate with the controller 14 via a computer network connection, such as, a LAN-based Ethernet connection. The bus 26 can be any suitable bus, such as, a LAN-based Ethernet connection. The controller can also initiate margin testing in response to setting of a switch or a jumper.
The system 10 further includes a plurality of other subsystems and components that cooperatively provide the system's functionality. Many of these subsystems or components require monitoring and/or testing during development, manufacturing and/or in the field to ensure proper design and/or operation of the computer device. More specifically, many of these components require margin testing to ensure their reliability under various operating conditions. Such components 28 for which margin testing is desired, herein referred to as marginable components, can include, for example, central processing units (CPU), memory modules, internal communication buses, voltage regulators, or any other component or subsystem of components of interest for which margin testing may be required.
The digital parameter adjuster 22 can adjust a selected operating parameter of one or more of the marginable components 28 directly, e.g., to adjust clock frequency, or via one or more intermediate modules 30 that generate a selected operating parameter for application to these components. For example, in some embodiments, described in more detail below, in which the parameter adjuster is a digital potentiometer, the intermediate module can be a voltage regulator whose output can be adjusted by varying the resistance of the digital potentiometer under commands from the controller.
The hardware monitor 20 can monitor the components in real time through sensors 32 associated with specific component properties, e.g., voltage, temperature, operating frequency, etc. The sensors 32 can generate data indicative of the response of the components 28 to variation of one or more operating parameters, such as, temperature, voltage, or driving frequency. The hardware monitor 20 receives this response data, and can transmit the data to the controller 14 for analysis, as discussed in more detail below. Although in this schematic illustration, the sensors 32 and the hardware monitor 20 are shown as separate modules, those having ordinary skill in the art will appreciate that some or all of the sensors can be integrated in the hardware monitor.
With continued reference to
For example, with reference to the flow chart of
In some embodiments, power can remain on through the margin configuration phase, thus eliminating the need to switch off the system power (step F), although the computer system should be designed to withstand dynamic variance to the affected parameters for enabling this approach. Acknowledgements are used to guarantee synchronicity of the BMC and a margin test station that issues commands. The test station will poll the BMC for acknowledgement after issuance of each command that requires a response. If no response is received within a pre-defined period, the test station may re-send the command, process a defined exception sequence, or time-out or halt with a fail exit code.
The use of a digital parameter adjuster internal to a computer system under test and responsive to command signals from an internal controller of such a computer system provides a number of advantages. For example, it allows margin testing without a need for invasive physical modifications of the system, such as, the use of jumpers and resistor banks. Further, it obviates the need for external test equipment and lengthy set-up time for testing. In addition, it can allow testing under software control without human intervention. Moreover, the digital parameter adjuster can be readily selected to provide a requisite resolution for variation of an operating parameter of interest.
Further, the incorporation of a margin testing system according to the teachings of the invention in a computer system advantageously provides non-invasive approaches to address and fix design defects in post production. For example, if an ASIC, due to a bug, is found to require a VIO voltage that is a few percent above a normal value, a voltage margin testing system of the invention, such as those described in detail below, can be employed to supply the requisite voltage to this ASIC. Further, the use of programmable elements, such as a programmable frequency synthesizer, in margin testing systems of the invention facilitates follow-up platform designs. That is, the same frequency synthesizer can be utilized in a follow-on design, which, for example, increases front-side bus frequency, thus simplifying the follow-on design and mitigating risks associated with design change and generally reducing associated costs of material procurement.
Typically, out-of-band operation is preferable for performing margin testing of a computer system because the system's OS and its agents can be susceptible to crashes and other aberrant behavior under stresses associated with margin testing. It is desirable to monitor and log the progress of a margin test. For example, if a failure occurs at a test point, it is desirable to log information regarding the test point and other related data. An out-of-band agent, such as a BMC that is powered by a non-margined voltage rail, e.g., a stand-by power source, will not be affected by system level margin settings, and hence will be available to perform such monitoring and logging of a margin test.
A margin testing system according to the teachings of the invention can be implemented in a variety of different ways to allow programmable integrated margin testing of a computer system, e.g., a server. By way of example,
Each margin testing block 34, 36, and 38 incorporates devices and associated circuitry required for performing margin testing of selected components of the server under control of the controller 14. Exemplary implementations of each of these modules are provided further below.
With continued reference to
A stand-by power source 40 can provide power to the controller 14 to ensure that the controller can function when the system's primary power source (not shown) is switched off. In addition, the stand-by power source 40 can supply power to other elements, such as VCB 34, FCB 36, and FBB 38, that participate in margin testing of the computer system. Further, the controller 14 can transmit commands to a power control circuitry 42 via the bus 18 to control switching the server's primary power source from on to off and vice versa.
The external system 22, which can be, for example, a user or a script entity, can transmit commands to the controller 14 for initiating margin testing of the server. More particularly, the external system 22, via a user or a preprogrammed instruction set, can transmit a command to the controller 14 to cause the controller to initiate margin testing of selected components of the server. Such a margin test is typically initiated with the primary power off, and with the stand-by source providing power to the controller, and to the ancillary margin testing blocks, e.g., the VCB 34, the FCB 36, and the FBB 38. In response to commands from the external system 22, the controller transmits command signals to one or more margin testing blocks, such as, the VCB, FCB, and/or FBB to effect resumption of testing of marginable components of the server. Typically, the controller 14 instructs the FBB 38 to mask selected faults during the performance of the margin test, as discussed in more detail below.
In many embodiments of the invention, the controller 14 includes firmware that can be programmed to step the voltage or the frequency applied to marginable components of a system under test through a discrete number of pre-defined values, upon initiation of margin testing. Alternatively, upon initiation of margin testing, the external system 22 can transmit a series of commands to the controller, each of which can instruct the controller to set the frequency or voltage to a desired test value. At each value of the voltage or frequency, the system's response can be monitored and analyzed.
With continued reference to
In preferred embodiments of the invention, components and subsystems for which margin testing can be performed, i.e., marginable components, default to a nominal state until instructed, for example, by the controller 14, to do otherwise. For example, rails voltages default to nominal values unless programmed, for example, via the VCB, to deviate from these values. Furthermore, these default values can be re-set when the system power is cycled.
With reference to
The voltage control block 34 can be implemented in a variety of different ways. In one such implementation, which is described in more detail below (See
Referring again to
With continued reference to
By way of example, with reference to
As further illustration of the implementation and the functionality of the FBB module,
With continued reference to
However, in this example, the FBB 38 receives this interrupt signal. If no voltage margin testing of the computer system is in progress, the FBB transmits the interrupt signal to the power control element 42 so that appropriate actions can be taken in response to a voltage fault. However, during voltage margin testing of a power rail monitored by the LM87, the rail's voltage may be varied more than a threshold that would normally cause a voltage fault. For example, it is customary to vary a rail's voltage by more than 5 percent for voltage margin testing thereof. Thus, during voltage margin testing, the FBB 38 operates in margin mode, e.g., in response to a command from the controller 14, and “masks” the interrupt signal generated by the LM87 from the power control element. In other words, the FBB, rather than transmitting the interrupt signal received from the LM87, provides the power control element 42 with an appropriate signal level indicating that no faults have been detected. Such masking of the interrupt signal ensures that the power control element will not disrupt voltage margin testing while it provides response to voltage faults during normal operation of the system.
With continued reference to
With continued reference to
Those having ordinary skill in the art will appreciate that an FBB module of the invention can also be utilized to mask faults other than those described above, if desired. For example, during frequency margin testing, the FBB can be employed to mask system detected faults that may be generated in response to a clock frequency applied to one or more marginable components crossing selected thresholds.
By way of another example, the FBB can be designed to intervene within the normal thermal response mechanisms of an Intel Xeon-class processor. The dual- and multi-class Xeon processors include thermal monitoring features, e.g., TCC (thermal control circuitry), that allow automatic and/or externally invoked modulation of core clock duty cycle in response to high temperature operating conditions, which can be similar to those encountered in a margin temperature testing environment. The FBB can be programmed to respond to such thermal-related processor signals, e.g., PROCHOT#, THERMTRIP, etc, in such a way so as to disable or to invoke duty cycle modulation—modulation that incidentally degrades performance—to obtain a desired processor response behavior. This can be useful when qualifying computer-intensive systems that require full availability of processing power under all supported operating conditions. In production, the FBB can be employed to configure and dynamically respond according to thermal rules defined for a given platform, thus allowing leverage of design components and connectivity schemes on platforms specified according to different customer installation models.
Exemplary embodiments of the frequency control block and the voltage control block will be provided below. For example, the following embodiment illustrates the incorporation of a digital frequency synthesizer according to the teachings of the invention in a server computer system, which employs Intelligent Platform Management Interface (IPMI) protocol, for frequency margin testing.
The illustrated BMC controller employs a private I2C (Inter-Integrated Circuit) bus 58 for communication with selected subsystems and components of the server. For example, in this exemplary embodiment, the BMC 56 communicates, via the I2C bus 58, with the hardware monitor 20 and a serial electrically erasable programmable read-only memory (SEEPROM) 60 that contains information for the server's motherboard identification. It should be understood that the BMC 56 can also utilize the I2C bus 58 for communication with other internal server modules not shown here.
The BMC 56 further employs an I2C based Intelligent Platform Management Bus (IPMB) to communicate with and manage one or more field replaceable units (FRUs), such as illustrated FRUs 62 and 64. These FRUs can be intelligent devices, such as satellite management controllers, or passive devices, such as SEEPROMS.
With continued reference to
More particularly, the BMC 56 can communicate with the frequency synthesizer 66 to vary its output clock frequency over a number of discrete values within a selected range. This variation of the output clock frequency can be utilized for frequency margin testing of the marginable system components 68. In other words, the BMC 56 can dynamically issue margin control commands to the clock generator to vary its output frequency.
A variety of I2C configurable integrated circuit clock generators can be employed in the practice of the invention for frequency margin testing. Such contemporary clock generators advantageously provide high accuracy and internal feedback regulation that render them particularly suitable for frequency margin testing that typically calls for low-jitter, and high-speed clock frequencies. Spread spectrum functionality is also available to help mitigate EMI (Elctro-Magnetic Interference) issues.
By way of example,
A reference signal, generated by the crystal oscillator 72 or provided by an external source, is fed into a phase locked loop circuit 78 that generates an output signal at a frequency that is a binary multiple of the reference signal based on the instructions stored in the register 76. More particularly, the exemplary phase locked loop circuit 78 includes a phase detector 80, a low pass filter 82, a voltage controlled oscillator (VCO) 84, and a modulo-n divider 86. The divider 86, which is coupled to the register 76, receives an output signal of the VCO and generates an output signal at a frequency that is a selected binary fraction of the frequency of the VCO signal. More specifically, the instruction stored in the register 76 determines the binary factor by which the frequency of the divider's output signal differs from that of its input signal, namely, the frequency of the VCO's output signal. The phase detector 78 compares the phase of the divider's output signal with that of the reference signal, and generates a correction signal based on any measured difference that is in turn applied, via a low pass filter 82, to the VCO 84 to shift the VCO's output frequency, if needed, and ultimately lock the VCO's output frequency to a desired binary multiple of the reference frequency. In this manner, the frequency synthesizer generates an output signal at a frequency determined by the instructions received, for example, from the BMC 56 (
A variety of commercially available programmable frequency synthesizers can be employed in the practice of the invention. For example, a clock generator suitable for use in the practice of the invention can be selected to be a programmable phase-locked loop clock generator marketed under trade designation FS7140/FS7145 by AMI Semiconductor of Pocatello, Id., U.S.A.
With reference to
With reference to
In another embodiment schematically depicted in
A frequency margin testing system or a voltage margin testing system according to the teachings of the invention is preferably implemented such that clock frequencies or power rail voltages applied to marginable system components default to nominal values until instructed to do otherwise, for example, in response to commands from the controller. By way of example, with reference to
In the absence of a signal applied to the SEL input of each MUX by BMC 56, the output of each multiplexer, and hence the frequencies applied to the clock distribution chip or voltage select signals applied to the VRM type regulators, are determined by the default input signals, namely signals C and D. For frequency margin testing, the controller can transmit one or more commands to the I2C I/O expander to set the values of its output pins corresponding to signals A and/or B, which provide input signals for multiplexer 100 and 102, respectively. In addition, the controller applies a signal to the SEL pin of either, or both, multiplexers to cause the multiplexer to route the signals received from the I2C I/O expander to its output pins. Thus, the output signal of one or both multiplexers changes from default values to values dictated by the controller, which in turn causes adjustment of the frequency generated by the clock distribution chip 100 and/or voltage select signals applied to the VRM-type regulators. In this manner, default clock frequencies and default VRM voltages are employed in the absence of contrary instructions from the controller, and margin frequency or margin voltage tests are readily accomplished in response to commands from the controller.
Typically, the level of granularity required for frequency margin testing is not as fine as that needed for voltage margin testing. However, programmable clock generation devices that provide fine frequency resolution are available if the ability to perform precise and granular frequency variation is imperative to the completion of a margin test plan.
A testing system of the invention, such as the above exemplary system, can be employed to perform frequency margin testing of various components of a computer system. By way of example, a frequency margin testing system according to the invention can be incorporated into an Itanium Processor Family (IPF) based computer server to provide frequency margin testing of the server's front-side bus (FSB) clock frequency. Such a frequency margin testing of the FSB may be desired, for example, when the server's CPUs are replaced with CPUs of a new generation.
With reference to the flow chart of
The BMC monitors the self test. If the test fails, the BMC stores the test results and information regarding the test point, e.g., test frequency, on non-volatile memory. The BMC then switches off the main system power supply (step D), and sends another command to the frequency synthesizer to instruct the synthesizer to apply another test frequency, e.g., a frequency of 190 MHz, to the FSB (step E). If the self-test is successful, the BMC allows the boot process to proceed to the stage of loading the operating system, logs the test result, switches the main power off, and instructs the synthesizer to apply another test frequency to the FSB. In this manner, the frequency synthesizer applies a number of different test frequencies within a selected range to the FSB, and the BMC stores the test results.
Upon completion of the test under BMC control, test results can be examined to identify failure points, if any, and to provide any necessary trouble-shooting to ensure that the upgraded server will function reliably. Further, the margin test results can be uploaded onto a database for reliability/quality analysis.
Alternatively, with reference to the flow chart of
In some embodiments of the invention, a descriptor file can be provided that includes a policy for BMC to follow in performing margin testing of the system under test. For example, such a descriptor file can include parameters associated with a margin test, e.g., voltage values for different test points, instructions regarding the steps to be taken in case of failure at a test point, etc. The BMC can gather information regarding the results of a margin test, e.g., failure or success of the test, at a particular test point by, for example, reading (“snooping”) data regarding the test results transmitted on a bus, e.g., an RS232 bus, to an external terminal, or by communicating with IPMI daemons running on the system's OS. Based on the obtained test results and the policy defined in the descriptor file, the BMC can take a subsequent action. For example, the test results data may indicate the failure of the test at a particular test point, and the descriptor file may indicate that in case of a first failure at a test point, the test should be re-run. In such a case, the BMC will reset the test value for another execution of the test at the previously failed test point. Those having ordinary skill in the art will appreciate that a descriptor file can include instructions other than those provided above.
Another operating parameter for which margin testing is typically needed relates to voltage applied to various components of a system under test.
A digital voltage adjuster 110, having an I2C communications interface 110 a for coupling to the I2C bus, is incorporated in the server, in a manner described in detail below, to allow voltage margin testing of marginable components of the server. The digital voltage adjuster can be implemented as a single integrated circuit, or alternatively, it can be implemented as a plurality of integrated circuits.
The digital voltage adjuster 110 is coupled to a voltage regulator 112, which receives an input voltage and generates a regulated output voltage that can be utilized as a rail voltage for application to various components of the server, such as marginable components 114. In other words, the voltage regulator 112, which can be a linear or a switching regulator, can provide a regulated voltage rail for supplying power to various components and modules of the server.
The voltage adjuster 110, in response to command signals received from the BMC controller, can affect variation of the regulator's output voltage over a selected range for margin testing of one or more components to which such voltage variation is applied. For example, the BMC can instruct the digital voltage adjuster 110, via commands transmitted on the I2C bus 58, to cause variation of the regulator's output voltage, and hence variation of the voltage applied to the components 114. For example, the voltage applied to the components 114 can be stepped through a plurality of values within a selected range for performing voltage margin testing.
In one preferred embodiment, the digital voltage adjuster is selected to be a digital potentiometer that can function as a digitally controlled variable resistor in a feedback resistance network of the voltage regulator 112 to adjust the regulator's output voltage. For example, with reference to
More particularly, with reference to both
With continued reference to
In general, the degree of deviation of the initial voltage value from the specified value depends, among other factors, on the tolerance of the digital potentiometer. For example, if the full range of the digital potentiometer's resistance tolerance is 5 percent, the initial voltage value can be set about 5 percent below the specified value to ensure that the margin voltage will not exceed a threshold that would damage the system components.
Subsequently, the BMC 56 transmits a command to the power control module 42 to switch on the system's primary power source. Various implementation of the power control module 42, and its communication with the BMC 56, are known to those having ordinary skill in the art. The hardware monitor 20 records the regulator's output voltage, and communicates the recorded voltage to the BMC. Typically, the voltage read by the hardware monitor will be below a tolerable range of the specified value. In such a case, the controller 56 will re-issue another command to instruct the digital potentiometer to correct the regulator's output voltage in the direction of the specified value. Based on a particular implementation of the controller's firmware, this voltage calibration cycle may be performed once, or it may be iterated several times before a sufficiently accurate voltage is read back from the hardware monitor.
Upon setting the regulator's output voltage to the desired test value, the controller 56 can instruct the power control module 42 to switch on the computer system's main power source. The system can then execute, for example, its built-in self-test, which can be monitored by the controller. This process can be repeated at subsequent test voltages to obtain data regarding the system's response to a plurality of discrete test voltages.
Although one digital voltage adjuster is shown in the above exemplary embodiments, those having ordinary skill in the art will appreciate that two or more digital voltage adjusters, e.g., digital potentiometers, can be utilized in a server, or any other suitable computer system, in accordance with the teachings of the invention to adjust voltage variation of different voltage rails within the server. Thus, the process of setting rail voltages to test values can be performed across multiple component modules to accomplish testing of the computer system in an aggregate margin state. Similarly, in the above frequency margin testing embodiments, more than one clock frequency can be set at a time for performing aggregate margin frequency testing.
A variety of digital potentiometers can be employed in the practice of the present invention. For example, a quad digitally controlled potentiometer having an I2C interface and marketed by Xicor, Inc. of Milpitas, California under the trade designation X9409 can be utilized as a digital voltage adjuster in a voltage margin testing system of the invention.
Some embodiments of the invention, a feedback signal, for example, from the BMC controller, is periodically fed into a digital voltage adjuster, e.g., a digital potentiometer, that forms a portion of a resistive feedback circuit of a voltage regulator, as described above, to adjust the resistance of the voltage adjuster so as to set the regulator's voltage with a desired accuracy to a selected value. For example,
A voltage margin system according to the invention, such as those described above, that incorporates a digital voltage adjuster in a computer system, such as a server, that operates under control of a controller internal to the computer system for voltage testing of selected components of the computer system provides a number of advantages. For example, such a voltage margin testing system is non-invasive in that it does not require utilizing jumpers or switches for modifying resistive values of feedback circuitry of voltage regulators for adjusting the regulators' output voltages, which can be time-consuming and can adversely affect the testing accuracy. Further, a voltage margin testing system of the invention obviates the need for external test equipment, and allows performing voltage testing automatically by software control. Moreover, a voltage testing system of the invention renders voltage testing during development, manufacturing, or in the field, practical, thus enhancing product reliability.
Another advantage of a voltage margin testing of the invention is that it facilitates root-cause analysis of system failures. For example, in some cases, intermittent failures can be made repeatable, and hence more readily diagnosed and corrected, by varying power rails voltages. Other advantages of a voltage margin testing of the invention are readily recognizable by those having ordinary skill in the art.
By way of example, a voltage margin testing of the invention can be utilized to test a 2.5 volt power rail that supplies power to DDR SDRAM DIMMs in a server. Such a test may be required, for example, during manufacturing to qualify DIMMs obtained from a new DRAM vendor. Such a voltage margin test can be conducted, for example, as follows. Initially, the BMC controller can be placed in a special mode, for example, by gaining console access to the BMC and issuing a mode-change command. In this mode, the BMC will unlock a command that performs automated voltage margin testing of the DIMM rail. More particularly, the BMC can vary the voltage of the DIMM rail over a number of values (e.g., centered about the nominal voltage value of 2.5 V), each of which corresponds to a test point, by issuing commands to the digital potentiometer, as described above.
The test of the system at one such exemplary test point can be accomplished as follows. With the server's main power source off, the BMC, which can be powered by a standby power source, transmits an I2C message to the digital potentiometer to cause it to adjust its resistance so that the power rail's voltage is at 2.25 V (10% less than the nominal voltage). Subsequently, the BMC switches on the server's main power source. The system executes its built-in self-test (BIST), which is monitored by the BMC, as part of the early boot process. If the BIST fails, the BMC logs the result and information regarding the test point, e.g., test voltage, to non-volatile memory, turns off the server's main power source, and instructs the digital potentiometer to set the next test voltage, e.g., 2.375 volts. If the BIST is successful, the BMC allows the boot process to proceed to the operating system (OS) load stage, logs the success of the test, followed by turning off the main power source, and instructing the digital potentiometer to set the next test point. After the OS load stage, various system-level subsystem stress diagnostics can be executed, either automatically through scripted batch calls, or via BMC command messages to the OS agents. Run logs can be stored off-system or on local hard disks for later analysis.
Once all test points are executed, results data can be collected and examined. If there are failures at one or more of the test points, the test executor can conduct root-cause analysis of the failures. Further, the margin test information can be uploaded into a database for reliability/quality analysis.
In a similar fashion, the above exemplary voltage margin testing can be performed by instructing the BMC to set the test voltage to an initial value. A diagnostics software can then be executed on the server to collect information regarding selected operations of the server at this test voltage. The information can be analyzed and recorded, or be recorded for future analysis. Subsequently, the BMC can be instructed to set a new test voltage, and the above process can be iterated to obtain data at all desired test voltages.
With reference to
Those having ordinary skill in the art will appreciate that various modifications can be made to the above embodiments without departing from the scope of the invention.