US 20070016835 A1
A method and apparatus for parameter monitoring, adjustment, testing, and/or configuration of devices have been disclosed.
1. A method comprising:
connecting one or more devices so that they are in operational communication;
connecting a first subset of said one or more devices so that they are in control communication;
connecting a second subset of said one or more devices so that they are in measurement communication;
receiving one or more messages from one or more devices in said second subset of said one or more devices;
transmitting one or more messages to one or more devices in said first subset of said one or more devices; and
adjusting operation of said one or more devices in said first subset of said one or more devices based on said one or more transmitted messages.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. An apparatus comprising:
a serial data chain controller having a chain output, and a chain input;
a first device having an output, a register having an input and an output, a chain input, and a chain output, said chain input coupled to receive said serial data chain controller chain output, said register input in communication with said chain input, said register output in communication with said first device output;
one or more next devices each having an output, a register having an input and an output, a chain input, and a chain output, each successive next device chain input coupled to receive the prior next device chain output, each next device register input in communication with said next device chain input, said next device register output in communication with said next device output;
a final device having a register having an input and an output, a chain input and a chain output, said chain input coupled to receive a last next device chain output, and said final device chain output coupled to said serial data chain controller input, said register output in communication with said final device output.
15. The apparatus of
16. The apparatus of
17. The apparatus of
18. The apparatus of
19. An apparatus comprising:
means for connecting one or more devices so that they are in operational communication;
means for connecting a first subset of said one or more devices so that they are in control communication;
means for transmitting one or more messages to one or more devices in said first subset of said one or more devices; and
means for adjusting operation of said one or more devices in said first subset of said one or more devices based on said one or more transmitted messages.
20. The apparatus of
means for connecting a second subset of said one or more devices so that they are in measurement communication;
means for receiving one or more measurement communication messages from one or more devices in said second subset of said one or more devices; and
means for adjusting operation of said one or more devices in said first subset of said one or more devices based on said one or more received measurement communication messages.
21. The apparatus of
22. An apparatus comprising:
means for connecting one or more components on an integrated circuit (IC) so that they are in operational communication;
means for connecting a first subset of said one or more components so that they are in control communication;
means for transmitting one or more messages to one or more devices in said first subset of said one or more devices; and
means for adjusting operation of said one or more devices in said first subset of said one or more devices based on said one or more transmitted messages.
23. The apparatus of
24. The apparatus of
25. The apparatus of
This patent application claims priority of U.S. Provisional Application Ser. No. 60/698320 filed 12 Jul. 2005 titled “Method and Apparatus for Parameter Adjustment, Testing, and Configuration”, which is hereby incorporated herein by reference. This application is related to application Ser. No. 11/064,038 filed Feb. 22, 2005 titled “In-Situ Monitor Of Process And Device Parameters In Integrated Circuits”, which is hereby incorporated herein by reference. This application is related to application Ser. No. 11/142,758 filed May 31, 2005 titled “Test Circuits For In Situ Monitor Of Process And Device Parameters In Integrated Circuits”, which is hereby incorporated herein by reference.
The present invention pertains to devices. More particularly, the present invention relates to a method and apparatus for parameter adjustment, testing, and configuration of devices.
Devices, particularly electronic devices, are becoming smaller, faster, and generally more difficult to design and debug at the system level.
Board interconnection testing is possible using JTAG (Joint Test Action Group) if devices have such a capability. Not all devices have such a capability, so this may present a problem.
Device configuration, such as register reads/writes and in-system memory programming, is possible using JTAG, I2C (Inter-integrated Circuit), and other serial interfaces. Device configuration, especially through serial interfaces has been troublesome and limited to EPROM or direct processor links for data download.
Emulation and debug interfaces for processors are possible using JTAG. This may assist in emulation and debugging but has been limited to simple data sourcing and gathering.
System setup configuration, such as board power on/off, and monitoring (power supply voltage and board/component temperature), is possible via, for example the SMBus (System Management Bus) and/or ACPI (Advanced Configuration and Power Interface). However, these interfaces may not assist in debugging. This may present a problem.
The invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
The invention, as exemplified in various embodiments, illustrates device and/or system parameter adjustment, testing, configuration, measurement, monitoring, etc.
For ease of discussion, the interface used in describing various embodiments of the invention will be described as a serial bus of some type and/or a serial chain. The invention is not so limited and other interfaces, such as a parallel bus, parallel chains, etc. may be used.
In one embodiment of the invention, serial interfaces are “extended” or “expanded” to allow for:
In one embodiment of the invention, serial chains may be used to configure and monitor many parameters within devices and systems. The invention in various embodiments addresses many new areas where JTAG and other serial data chain configurations can be used to address specific needs for both configuration and monitoring of parameters within systems and/or devices.
Since various embodiments of the invention cover a wide range of applications, the discussion has been addressed in four major parts. These are:
These four categories are for discussion only and are not intended to limit the scope of the invention or applicability in more than one area. Indeed the present invention, in various embodiments, may be used in all the above areas, and at the same time.
Briefly, the device level is the location where physical interaction takes place. In a device, for example, parameters may be adjusted or monitored, based upon the instructions received in the serial data chain.
Briefly, the interface level allows interaction outside of a device. While serial data is handled within a device, the device as instructed by the serial data chain may have the capability of interacting with the “interface” to affect and/or monitor device conditions.
Briefly, the system level allows adjusting and/or monitoring the devices and interfaces within a system and allows system manipulation and monitoring. Through the serial data chains, systems may be made to perform under specially selected operating conditions to allow configuration, testing, measuring, or monitoring in ways that were previously not possible or were difficult.
Briefly, performance monitoring and trend tracking allows looking at the accumulation of data over time and allows another level of system performance monitoring, trend tracking, failure prediction and analysis, and parameter adjustment as conditions change.
To assist in the description of the invention, interconnect terminology is used. For simplicity of explanation, devices will be illustrated that are interconnected for main “operation,” and interconnected for “control.” These operation and control interconnects may be separate physical interconnects or may be a shared resource. For example, assume that two devices, an output buffer and an input receiver are interconnected so that during main operation the input receiver receives the output buffer's signals. This is the main operational interconnect. In addition, the output buffer and input receiver may have a separate control interface which is connected between the output buffer and the input receiver. This control interface may be used to affect the operation of one or more devices. For example, a control signal emanating from the output buffer may indicate when the buffer has entered a high-Z state and based on this the input receiver may disable input stages so that erroneous signals are not received, input devices do not enter linear mode drawing large amounts of power, etc. What is to be appreciated is that the control interconnect can affect the main interconnect operation.
Possible combinations for type (i)/(iv) are:
Possible combinations for type (ii)/(iii) are:
Note that the other types can be made equivalent to these by adding buffer devices whose function provides a serial control interface to some or all of the interconnect signals.
Some products will fit naturally into some of these types and combinations. For example, clock type products (that distribute a clock signal to multiple “dumb” chips) fit into type (ii) (point to multipoint) with subtype 4 (only the clock chip is “intelligent”).
In one embodiment of the invention, system configuration is possible. The system will contain serial data chains that interconnect devices within the system and allow programming of those devices, monitoring of conditions within those devices, etc.
In one embodiment of the invention, in a system there will be a serial data controller that generates the serial data chain and receives the serial data back from the system. The controller may be one or more devices, and the serial data returning from the system may be returned to the originating device and/or one or more of the other controllers. In one embodiment of the invention the serial chain configurations may be JTAG, SM Bus, I2C (I2C), etc. In one embodiment of the invention, the serial chain may be high-speed serial links, operating with or without a serial protocol.
In one embodiment of the invention, as illustrated in
In one embodiment of the invention, with reference to
In one embodiment of the invention, with reference to
In another embodiment of the invention, the frequency may be relatively fixed and adjustments such as pre-emphasis, termination, etc. may be adjusted to provide the best general signal integrity. This approach may also be employed before a frequency change is made thus insuring that a “fall-back” frequency is working properly.
In one embodiment of the invention, parameters of devices may be configured, modified, etc. This is a device level control. For example, most operations accomplished by a serial data chain are originated at the device level. It is the device itself that contains the circuitry to monitor the serial data chain and react to content on the chain. As an example, to operate with a JTAG serial data chain, all devices that will react to the serial data chain need to have a JTAG port. In systems that have devices with serial data chain capabilities, those devices within the system can begin to act together at the interface level, and then at the system level to monitor, adjust, and control the system.
For example, parameters may be configured and/or monitored. At the device level, the serial scan chain within the device may have control over parameters that influence the system operation and performance. The following list includes many of those device parameters that may be adjusted, monitored, and/or controlled by a serial data chain thus having a system effect. The parameters may be one or more of the following, combinations, or derivatives:
In one embodiment of the invention, parameters related to voltage are signal levels. This includes the actual voltages of VIH, VIL, VOH, VOL (voltage input high, voltage input low, voltage output high, voltage output low—respectively) when operating, for example, in a steady state condition.
In one embodiment of the invention, parameters related to voltage are overshoot and undershoot. This includes when an input or output signal moves beyond its final resting voltage. For example, the amount of overshoot/undershoot can be monitored.
In one embodiment of the invention, parameters related to voltage are Vix and Vox. As differential signal speeds increase, the cross point (or crosspoint) of signals becomes crucial. Vix is the input cross point which could be detected and reported on the serial scan chain. The Vox, which is the differential output signal cross point, could be sensed and adjusted through a serial scan chain. In other embodiments, the Vix and/or Vox may be monitored and/or adjusted.
In one embodiment of the invention, parameters related to voltage are switching noise. Switching noise is caused by (among other things) multiple bits switching at the same time. It is possible to detect the amount of noise present due to switching and report the information on the serial data chain. Some common names for switching noise are “ground bounce”, “simultaneous switching interference”, and “inter symbol interference” (denoted GB, SSI, and ISI respectively).
In one embodiment of the invention, parameters related to voltage are power regulation. Adding a serial data chain to a power regulator may be used to control system turn on, voltage level, power monitoring, etc. For example, if the regulator is of the type that uses an external power device to actually pass the power, contained within many variable regulators is a voltage sense circuit and some form of adjustment mechanism (like an external resistor). If a serial data chain is added to a device of this type, portions of the system power could be under the control of the serial data chain.
In one embodiment of the invention, parameters related to current may be similar to the ones associated with the parameters for voltage discussed above. Additionally, current limits may be monitored, set, and reported through the use of a serial chain.
One of skill in the art will appreciate that a combination of parameters is also possible. For example, a voltage current combination.
In one embodiment of the invention, parameters related to a voltage current combination may be output impedance. A device's output impedance may be modeled as consisting of an ROH, and ROL. Sometimes these are combined to simply be designated as Ro. If there are frequency dependent characteristics to the output, the impedance may be designated as Zo, etc. These parameters and others may be monitored and/or adjusted by, for example, a serial chain in an embodiment of the invention.
In one embodiment of the invention, parameters related to a voltage current combination may be input impedance. There are a variety of adjustable parameters that can be associated with input impedance. One of these could be some form of On Die Termination (ODT). ODT typically is represented by an RT and VT, which may be implemented as described later. These parameters may be monitored and/or adjusted by, for example, a serial chain in an embodiment of the invention.
In one embodiment of the invention, parameters related to time are clock skew. At low operating speeds a clock driver may need very little skew between the device outputs. As system speeds increase, skew is frequently needed between various parts of the system to compensate for timing differences. Monitoring and/or adjustment of the skew may be achieved in one embodiment of the invention.
In one embodiment of the invention, parameters related to time are data input deskewing. As bus frequencies increase, the skew between bits on a data bus has become a significant issue. At times, the skew can be so significant, that accurate data capture is not possible with a single clock. Deskewing the bits realigns the data for accurate capture.
In one embodiment of the invention, parameters related to time are data output deskewing. In some systems, the data becomes skewed as it travels over busses, around corners in traces, and through varying transmission line environments. If the environment is known, it is possible to adjust the skew of the outputs so that all outputs arrive at their destination substantially simultaneously. A corollary to this is to adjust the skew of data destined for different parts of the system so that system timings can be optimized. Additionally, if the environment is not known, for example, a plug-in board may plug into a different chassis, or into different slots in the same chassis, then embodiments of the invention may be used to optimize system timings.
In one embodiment of the invention, parameters related to time are training. As system speeds increase, training of badly skewed data busses may be necessary so that proper bit alignment can be identified and locked in. The serial data chain can be used to initiate, control, regulate, and stop training.
In one embodiment of the invention, parameters related to time are edge alignment, for example center aligned. At low speeds center aligned clocking of devices may be needed. As system speeds have increased, edge aligned clocking may be more beneficial. Edge aligned and center aligned devices have difficulty communicating with each other. Some devices such as the fastest DRAMs (dynamic random access memory) today have center aligned input data and edge aligned output data. Whether a device uses center aligned or edge aligned clocking of data is controllable through a serial data chain. Any clock phase between center and edge aligned is also selectable.
In one embodiment of the invention, parameters related to time are data capture. As system speed increases, there is increased use of phase splitters to accurately capture input data. These often require the use of a PLL (phase locked loop) or DLL (delay locked loop) to perform the capture. The phase splitters or other methods of capture may be under serial data chain control.
One of skill in the art will appreciate that a derivative of parameters is also possible. For example, a time derivative.
In one embodiment of the invention, a time derivative is slew rates. A device output slew rate may be monitored and/or adjusted in an embodiment of the invention.
In one embodiment of the invention, a time derivative is premphasis. It is often necessary for some signals to achieve higher voltage levels initially, with reduced levels later (or with subsequent bits at the same logic level). Often the goal is to achieve an adequate slew rate to insure timing and switching, and then reduced power. The reduced voltage later also helps to ease the initiation of a subsequent transition to the opposite state. Some of the items that the serial data chain may adjust include the presence of premphasis, the amount of premphasis, and the strength of the “post-emphasis” signal. Pre-emphasis is an amplification of high frequency components and/or a reduction of lower frequency components to counteract the frequency dependent loss of a medium.
In one embodiment of the invention, a time derivative is phase offset. The phase offset of a PLL or DLL can be adjusted in one embodiment of the invention by using, for example, a serial data chain.
In one embodiment of the invention, a time derivative is frequency detection. An external clock signal may be compared against a known clock. The differences between the two may be compared, allowing a reporting of the actual frequency, or detecting a good or bad clock. Note that the frequencies need not be in the same range, for example, in one embodiment of the invention a 10 MHz signal may be compared to a 1 MHz signal by dividing by it by 10 before the comparison. In another embodiment the clock compared against may be the serial control clock. In yet another embodiment of the invention, the frequencies may be not related in any manner, yet detection that the clocks have not gone bad may be achieved by, for example, feeding one clock input into the set input and the other clock into the reset input on a flip-flop and observing if the flip-flop output changes state.
In one embodiment of the invention, parameters may be related to temperature. For example, it may be important to monitor temperatures on different chips or even sections of a chip. This may be an early indicator of a problem, such as a circuit malfunction, a system level issue, such as a fan problem, a reliability issue, etc. Temperature may be monitored by a variety of mechanisms, such as, but not limited to, shift in thresholds, changes in resistance, diode drops, oscillator frequency change, etc.
In one embodiment of the invention, a derivative of temperature is a rate of change in temperature. For example, a rapid increase in the temperature of a chip or system may be an early indication of impending failure. In one embodiment of the invention, this may be monitored and under control actions may be taken, for example, shutting down a system power supply if a device becomes too hot for reliable operation.
In one embodiment of the invention, parameters related to device state are internal state machine status. For state machine controlled devices monitoring the state for correct operation (not stalled or in an invalid state) is possible in one embodiment of the invention.
In one embodiment of the invention, parameters related to device state are status. A representation of a device's internal status can be made available. This would allow detection of fault states or states incompatible with connected devices.
One of skill in the art will appreciate that the examples above are but a sampling of parameters that may be monitored and/or controlled. The discussion that follows describes some of the approaches for embodiments of the invention that control and/or monitor parameters.
Clock skew as discussed above may involve input clock and phase splitter operations, output clock and shifting of the clock, edge alignment, center alignment, etc. Some systems are edge aligned, some are centered aligned. In one embodiment of the invention, one part can do both types of alignment, or any range of alignment (±180 degrees shift).
In one embodiment of the invention, a serial data chain is used to affect static phase offset. In PLL and DLL devices, there is a need to “lock” the output signal to the input signal. A block diagram of a PLL is shown in
An example of this is the use of edge aligned clocks to avoid skew between the clock and data in high speed applications. The receiver of the clock and data must then capture the data using a clock that is not properly positioned for a traditional clock/data relationship.
In one embodiment of the invention, as shown in
In one embodiment of the invention, the cross point as illustrated in
As clocking speeds increase and signal integrity becomes of paramount importance in high speed signal lines, the crossing point of differential signals (Vox and Vix) becomes a significant factor as shown in
If signals become distorted, it is possible the crossing point has shifted to a less desirable position as shown in
During the transition where the two input signals (Input and Input*) are making the transition, if the current source 1402 maintains current, and the input FETs (field effect transistors) can actively make the exchange from one side to the other, there should be little disruption in the voltage level 1404 at the current source 1402 as the current switches from one side to the other as shown in
If the crosspoint is not observed, and one side makes a transition before the other, measurable anomalies develop in the voltage at the current source, and if the crosspoints go to the extreme, the current from the current source 1402 will not be maintained. For example, if both sides of the input go temporarily low, both sides of the differential amplifier will shut off, causing the current source 1402 to hit its lower voltage (at 1404) limit (sucking all of the available current) as shown in
If both sides of the differential amplifier turn on as shown in
If the crosspoint is somewhere other than at the ideal, but not at the limits, the voltage effects will still be present, but reduced in size. These characteristics may be accumulated and reported on the serial data chain in an embodiment of the invention.
In one embodiment of the invention on die termination may be monitored and/or adjusted. In applications where On Die Termination (ODT) is used, it is possible to configure the ODT using the serial data stream.
One embodiment of the invention, as shown in the circuit of
In one embodiment of the invention device output slew rates may be monitored and/or adjusted. Device output slew rates are one of the primary causes of transmission line troubles within a system. If the slew rate is too slow, the signal speed also slows down and the actual positioning of the signal edge is less precise, causing poor system performance. If the slew rate is too fast, transmission line and switching noise develop, causing poor signal quality and other problems.
In one embodiment of the invention, the device slew rate may be adjusted and set to a single value through the use of a serial data chain. In another embodiment of the invention, the device slew rate may be adjusted by setting the number of, and timing sequence of, transistors used to drive the output stage. In another embodiment the slew rate may be adjusted through the serial data chain depending upon the status of the transition. Some possibilities are:
In one embodiment of the invention device switching noise may be monitored and/or adjusted. Switching noise may be caused by multiple bits switching in tandem, or by varying the number of bits switching, etc. The switching causes a surge of current through the ground or power structure of the device, creating a voltage difference between the internal and external supply or ground. In the circuit in
In one embodiment of the invention, it is possible to detect the amount of actual noise caused by the switching and to report this information on the serial data chain. The information can be used to identify switching conditions, which may cause device upset or poor output signal quality. Knowing the amount of switching noise may give insight into failure causes or conditions.
In the event that the internal and external GND levels should suddenly become different, most notably if a surge of current flows through the impedance in the ground, Z, due to switching noise, the capacitor shown will force the voltage across the differential amplifier to change and a signal will be generated on the “Noise Detection” output. This signal may be monitored by the serial data chain and report noise levels back to a controller.
In one embodiment of the invention interface level considerations may be monitored and/or adjusted. At the interface level, things become more interesting. While the building blocks remain at the device level, these building blocks may be used to analyze the interface to monitor and/or adjust the interface for optimum performance.
In one embodiment of the invention, not all devices will have serial data capability. Most devices within a system will not have a serial data capability, especially before a large number of devices are available in the market. In the meantime there will be various levels to the amount of control that can be achieved through a serial data chain.
Any device that has a serial data chain (as shown by various embodiments of the present invention) has the capability of controlling or sensing any parameters within itself or in contact with its interfaces as provided those capabilities are built into the device. When two devices with full capability share an interface, it is possible for the two devices to both monitor the interface, adjust the interface, and to test the interface by interacting with the other device to verify the successful achievement of all tests.
In the event that only one device on an interface has a serial data chain, the situation becomes more difficult, but it is still possible to achieve a successful testing or configuration of the interface. As an example of one embodiment, if the non-compliant device (i.e. having no embodiments of the present invention) is a bus driver, and the compliant device (i.e. implementing one or more embodiments of the present invention) is a receiver, the receiver could sense the characteristics of the driver, report those to the controller, and the controller could make adjustments to the receiver to optimize receipt of the data.
As an example of the reverse, where the controlled device is the driver and the non-compliant device is the receiver, the controlled device could adjust to optimize the signal integrity, either by monitoring its own output, or by allowing the controller to dictate conditions, based upon the known bus environment.
In the event that there are two non-compatible devices sitting on an interface, but there are devices with serial data chains sitting around them, the serial data chains could be used to force certain conditions into the non-compatible device, and observations could be made concerning the emergence of correct or incorrect information from those devices.
When dealing with interfaces between devices that have serial data chains, and those that don't, some of the capability is lost, but the capabilities that remain are very usable. The following scenarios exist:
In various embodiment of the invention, these are some of the parameters that can be configured and/or monitored at the Interface level:
With respect to transmission line configuration, in one embodiment of the invention with a serial data chain, it is possible to completely analyze the configuration of a transmission line, and report to the user/controller through the serial data chain. Some of these items are:
Generally, the values of Ro, RT, VREF and VTT will be set for optimum performance over signal line Zo. As a simplified example, the following signal levels could be set.
In this example configuration, the output driver could be driven low (by either serial control or other means). The driver will pull the transmission line low and eventually settle into a voltage divider circuit between VTT and GND. With the example values, the voltage between Ro and RT should eventually settle at ½ of VTT or VDDQ/4. Different values for the parameters will produce different voltage levels on the input to the receiver (so calculations may need to be done).
Once in this configuration, the serial data chain could load data into the DAC, the input Vref bypassed with the mux and the voltage level varied under serial control. Using this technique, the exact trip point for the receiver input could be determined, allowing a determination of several transmission line characteristics. In one embodiment of the invention some form of current limiting may be utilized in the input structure as the two input signals approach each other.
Using the serial data chain several items of merit on the transmission line could be tested. Examples are:
Taking this idea a bit further, one of skill in the art will appreciate that various embodiments of the invention can come up with additional uses for circuits of this type.
For example, if a device senses that it is operating outside of established operation ranges, it could store this in a non-volatile memory that may be retrieved at a later time.
As an example of how the circuit of
In one embodiment of the invention, another method of verifying overshoots would be to utilize an ADC (analog to digital converter) as shown in
While the example in
In one embodiment of the invention, monitoring and/or adjustment of the ODT at the interface level is possible. Using the serial data chain interface to control the ODT characteristics as discussed earlier, it is possible to adapt ODT to the interface environment and adjust for device location within the circuit.
One of skill in the art will appreciate, that expanding upon the programming concept, it may be beneficial to turn off the ODT termination. An example of when this would be necessary is if the device is in the center of a string of devices. It would be best for circuit operation if the device at the end of the string of devices had ODT active (on), but all other devices in the string had no ODT (ODT off) to prevent signal distortion and excessive loading of the line.
By adjusting or turning ODT on and off with the serial data chain, all devices within the chain could be identical products with ODT, and adjusted after they are in a system. An added advantage is that the system configuration can change easily and the termination scheme can self adapt to the new configuration, without needing to have a new system layout or design generated. For instance, in
In one embodiment of the invention, the serial data chain may be used to adjust the ODT to reverse the bus. An additional item that may be configurable using a serial data chain would be the ability to reverse the direction flow of the bus and change the termination scheme. While the serial chain itself (depending upon the speed) may not be fast enough to reconfigure the bus every time a bidirectional bus changed directions, the rules for making the change could be loaded (via the serial data chain) into each device and each device would respond properly to the change in direction. For example, if the device at the far end of the bus suddenly becomes the driver, it would turn off its ODT and drive the bus. Intermediate devices on the bus would keep ODT off regardless of who is driving. If the driver in
In one embodiment of the invention, system level observations, monitoring, and/or adjustments may be made. For example, as system speeds increase, tuning and adjustment of the system to achieve optimum performance is becoming more beneficial. It is also becoming increasingly beneficial to predict the required adjustments to guarantee operation when the system is powered on. Temperature, voltages, and other environmental conditions may affect a system to the point that operation is not possible until real time adjustments are made.
In one embodiment of the invention, power-up configuration of a system is possible. Using a serial data chain approach, the serial data operates at a speed and under conditions that should be operational, even when the system itself is not operational. By utilizing the serial data chains, the system can start diagnostics and proceed with the task of configuring all of the interfaces (internal and external) for maximum performance. Once fully configured, the system should be operational under any circumstances.
By doing a “power-up” configuration of this type, the devices in the system can have a level of adjustability that would not be permissible otherwise. If a device must be built and hardwired to work correctly every time it is inserted into a system, regardless of the configuration or conditions within that system, the device is restricted to a very narrow range of predictable performance characteristics that are adapted to the “average” application. If an application is not “average” or if conditions dynamically change within the application, the “average” device may not work, or may not work at peak performance.
If devices with serial data chains are built to allow adjustments throughout the “normal” range, and possibly into the “extreme”, when an “extreme” or unusual application appears, the adjustments can be made at the system level, either at startup or continuously if conditions are changing.
In one embodiment of the invention, tuning and adjustment of a system is possible. It is rare that conditions will remain constant within systems during normal operation. Temperatures change, usage levels change, voltages change, and configurations change. Powering a system on causes the system to start from a “cold” situation and eventually change to “hot” as time progresses, system usage increases, and maybe external temperatures increase. The only way to maintain optimum performance under changing conditions is to allow adjustment of the system parameters as conditions change. Using a serial data chain to configure devices allows for automatic monitoring of the parameters and adjustments as the need arises.
In one embodiment of the invention, assistance with the design of a system is possible. When designing a new system, usually extensive simulations are done and the designs are tweaked based upon the simulations. The simulations must include all operational conditions, and must very accurately predict the device and system performance to guarantee operation. The design becomes very difficult when devices do not exactly match the application needs. Special problems arise when variable conditions are part of the design and only fixed device parameters are available.
Using a serial data chain to configure the devices, allows a far greater flexibility in the system design, so that the constraints the designer must place on system parameters are less restrictive. If the system after it is built, can provide a wide range of automatic adjustability, the design limitations become less restrictive, and possibly these can be converted to performance improvements and/or reduced costs.
System designs also struggle with unknowns. Until a system is built and operating in its intended final environment, it is difficult to realize and include all of the factors that may affect final operational characteristics. If a system has the capability of self-tuning and adjusting of the actual interface parameters by using the serial data chains, unpredicted anomalies can be tuned out of the system. Components that have no serial data chain would be fixed, or require some other form of adjustment.
Ideally, within a system, the single available component for the application could be inserted, and then adjusted upon power up to correct for the operating environment. The ideal characteristics could be sensed, and then both the drivers and receivers could be adjusted to optimize for the existing conditions. As conditions change, so would the adjustments.
In one embodiment of the invention, monitoring the reliability of a system is possible. For example, a security system built using serial data chain devices (i.e. embodiments of the present invention) and intended to work in a heavily air-conditioned environment could be configured during power up for optimal performance. In the rare event the air-conditioning breaks down the importance of maintaining the security system increases, as workers must exit the area. The increasing heat could have a profound effect on the system performance, causing a shifting of parameters throughout the system.
The serial data chain could be configured to automatically monitor parameters within the system and make adjustments as parameters drift. By constantly adjusting to the changing environment, operation can be guaranteed or extended beyond what a fixed design would provide. If instead, the system was allowed to drift beyond parameter limits, system failure, or false reporting of data would be possible. In this situation, the serial data chain may report this to give an early indication that system failure was eminent. In either case, information from the serial data chain could be sent out to a remote monitoring site, to allow a tracking of conditions within the system.
In one embodiment of the invention, effective environmental testing of a system is possible. Most well designed systems need to go through some form of environmental testing during the product development phase. This usually includes operation under hot, cold, vibrating, or shock (drop) conditions. The environmental tests tend to point out marginal conditions or early failure points within systems that are otherwise working. In these harsh conditions, applying the test equipment necessary to monitor all of the conditions needed is almost impossible. Usually these tests rely upon some gross system failure to point out that there was a failure, and then examination may pinpoint the reason for the failure. Exacerbating the situation is the bulky test equipment with limited numbers of probes and limited data gathering potential. Sustaining a harsh environmental condition with bulky test equipment attached is troublesome at best. As always, attaching test equipment to a device affects the device performance. Frequently, the effects of the test equipment completely disguise the actual operating conditions.
Using the serial scan chain (as described in the present invention) gives complete access to all points in the system controlled by the scan chain. The scan chain is designed into the system, and therefore has no parasitic effect beyond the normal system configuration. Scope-probes, signal analyzers, and other bulky test equipment are not needed. Using a serial scan chain for environmental testing requires only that some form of access to the scan chain be allowed. In some applications, it is possible that the entire scan chain control is within the system, meaning the entire system can be inserted into the environmental chamber without extra bulky attachments. It may be possible for the system to self-monitor, adjust, and either store the information for later retrieval (such as in a non-volatile memory), or report conditions through some external mechanism. Using the serial scan chain in this way will allow monitoring of conditions and viewing of drift or failures as they develop. The adjustment limits can be tested. True operation in a vibrating environment can be observed without concern about shaking bulky probes in the process.
In one embodiment of the invention, failure analysis of a system is possible. Failure analysis is troublesome, especially when being done in the field, or at a customer site. Using a serial scan chain, data can be gathered from all locations within the system and then the problems isolated. Having the actual data from the sensing locations would provide material for failure analysis that is not available by any external probing technique. The failure mechanism would not be affected by the testing method. If multiple systems are failing, a commonality of failures can be researched using the serial data. Failure analysis may be done in real time for one or more systems or may be done off-line in a statistical approach. Norms of operation and failure may be monitored and predicted based on aggregated information from the field, operating unit, as well as input from manufacturers. For example, life testing of devices may yield an early life failure indicator.
In one embodiment of the invention, inter-system failure analysis of a system is possible. Particularly troublesome is a failure that develops at a customer site between vendors. In this scenario both vendors had fully operational systems when tested alone, or in their own labs. When systems are interconnected, frequently in front of a customer, failures are common. A finger pointing exercise frequently follows. If there is a serial data chain present, the system with the serial data chain could both analyze the failure, and possibly make adjustments to adapt to the previously unseen conditions, eliminating the failure. Regardless, the serial data chain should be able to identify conditions on the interface and report those conditions, allowing the user insight into potential problems and which side of the interface is at fault.
In one embodiment of the invention, performance monitoring and trend tracking is possible. Using the serial data chains, it is possible to continuously monitor system performance and parameters within the system. By monitoring the internal conditions, it should be possible to identify patterns that develop under all operating conditions. In the event of a failure, the operating conditions should be accessible and provide insight into the problem, especially in the case of random occurrences that otherwise can not be monitored. In systems that have a finite lifetime, trend tracking will give insight into “time to failure” or “remaining life”. This could be used as a predictive failure mechanism so that repairs or replacement can be done when convenient, rather than in an emergency situation. Some possible applications would allow customers to perform routine maintenance, and report analysis back to the factory. The factory link could be direct from system to factory in applications where security is not an issue. The factory could monitor failure prone areas, and perform corrective action before any failure.
One of skill in the art will appreciate that the present invention may be practiced at the lowest circuit level, at chip level, at board level, system level, and at a network level. What is to be appreciated is the ability of the present invention to be used to configure and/or optimize the operation of components, circuits, chips, boards, systems, and networks depending upon where it is deployed.
For example, embodiments of the invention may be used to adjust circuit performance of individual devices (via parameter adjustment, testing, and configuration of the devices). At the chip level, embodiments of the invention may be used to adjust, for example, drive levels, skew, etc. between blocks of circuitry on an IC. At the board level, embodiments as described above may be used to adjust operation between devices on a circuit board. Also discussed above were embodiments of the invention being used at the system level. One of skill in the art will appreciate that networks of such embodiments may also be deployed.
For the sake of discussion numerous embodiments of the present invention have been illustrated and discussed using a serial interface and/or a dedicated interface or control bus. The invention is not so limited. For example, the present invention may be practiced without the use of a dedicated control bus whether it be serial, parallel, or a combination. For example an existing data bus may be used. For example, referring to
One of skill in the art will appreciate that the output of the memory 705 going to the microprocessor 701 may also benefit from optimization and the technique discussed above may be used to achieve this.
Additionally, not only the outputs but inputs as well may be optimized using various embodiments of the invention.
One of skill in the art will appreciate that other device and interfaces other than the microprocessor to memory interface above may be used as well. For example, in other embodiments I/O buses such as high-speed serial interfaces (Firewire, USB, SATA, Ethernet, etc), as well as parallel buses (backplanes, ATA, SCSI, etc.) may be used for parameter adjustment, testing, and configuration of devices
What is to be appreciated is that by using the techniques described in the present invention, for example, the concept of using a serial data control chain, a parallel data chain control chain, or an existing bus or lines as a control chain, or any combination of these as a control to monitor low level device parameters, adjust interfaces, predict failures, and perform the functions described, gives a new functional capability at device, system, and performance levels. As interface speeds increase, it becomes impossible for a single device with a set interface to adapt to all possible applications at all speeds. Allowing the device to monitor the interface and adapt, will allow a significant boost to interface speed, reliability, and testability.
What is to be appreciated is that for a group of devices, some of the devices may be in different communication subgroups, such as operational, control, and measurement and that these subgroups do not necessarily include the same devices. In
Command and Control 2702 as illustrated in
While the above description of
Thus a method and apparatus for parameter adjustment, testing, and configuration of devices have been described.
Referring back to
Referring back to
For purposes of discussing and understanding the invention, it is to be understood that various terms are used by those of skill in the art to describe techniques and approaches. Furthermore, in the description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one of skill in the art that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. These embodiments are described in sufficient detail to enable those of skill in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention.
Some portions of the description may be presented in terms of algorithms and symbolic representations of operations on, for example, data bits within a computer memory, and/or logic circuitry. These algorithmic descriptions and representations are the means used by those of skill in the arts to most effectively convey the substance of their work to others of skill in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of acts leading to a desired result. The acts are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices.
Further, any of the methods according to the present invention can be implemented in hard-wired circuitry, by programmable logic, or by any combination of hardware and software.
An apparatus for performing the operations herein can implement the present invention. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer, selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, hard disks, optical disks, compact disk-read only memories (CD-ROMs), and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROM)s, electrically erasable programmable read-only memories (EEPROMs), FLASH memories, magnetic or optical cards, etc., or any type of media suitable for storing electronic instructions either local to the computer or remote to the computer.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method. For example, any of the methods according to the present invention can be implemented in hard-wired circuitry, by programming a general-purpose processor, or by any combination of hardware and software. One of ordinary skill in the art will immediately appreciate that the invention can be practiced with computer system configurations other than those described, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, digital signal processing (DSP) devices, set top boxes, network PCs, minicomputers, mainframe computers, and the like. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
The methods of the invention may be implemented using computer software. If written in a programming language conforming to a recognized standard, sequences of instructions designed to implement the methods can be compiled for execution on a variety of hardware platforms and for interface to a variety of operating systems. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, application, driver, . . . ), as taking an action or causing a result. Such expressions are merely a shorthand way of saying that execution of the software by a computer causes the processor of the computer to perform an action or produce a result.
It is to be understood that various terms and techniques are used by those knowledgeable in the art to describe communications, protocols, applications, implementations, mechanisms, etc. One such technique is the description of an implementation of a technique in terms of an algorithm or mathematical expression. That is, while the technique may be, for example, implemented as executing code on a computer, the expression of that technique may be more aptly and succinctly conveyed and communicated as a formula, algorithm, or mathematical expression. Thus, one of skill in the art would recognize a block denoting A+B=C as an additive function whose implementation in hardware and/or software would take two inputs (A and B) and produce a summation output (C). Thus, the use of formula, algorithm, or mathematical expression as descriptions is to be understood as having a physical embodiment in at least hardware and/or software (such as a computer system in which the techniques of the present invention may be practiced as well as implemented as an embodiment).
A machine-readable medium is understood to include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); etc.
As used in this description, “one embodiment” or “an embodiment” or similar phrases means that the feature(s) being described are included in at least one embodiment of the invention. References to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive. Nor does “one embodiment” imply that there is but a single embodiment of the invention. For example, a feature, structure, act, etc. described in “one embodiment” may also be included in other embodiments. Thus, the invention may include a variety of combinations and/or integrations of the embodiments described herein.
Thus a method and apparatus for parameter adjustment, testing, and configuration of devices have been described.