The instant invention relates generally to controlling processes executed using logic circuitry, and more particularly to methods and systems for determining convergence of iterative processes and estimating a scaling factor in decoding processes based on switching activity of the logic circuitry.
With the advent of computer technology applications based on iterative processes have become increasingly important and are now a mainstay of countless present day applications such as, for example, numerical computation, iterative decoding, and adaptive filtering.
A major problem of the execution of iterative processes is the determination of the iterative process having converged to a solution. Typically, iterative processes are either performed for a preset number of iterations or by performing additional computation for determining if a stopping criterion has been fulfilled. In the first case the number of iterations is determined such that a likelihood that iterative processes have converged within this number of iterations is high, i.e. convergence is achieved in worst case scenarios. Therefore, most iterative processes have converged but are still continued until the predetermined number of iterations has been performed, requiring substantial processing capabilities and time. In the second case additional computation is performed—usually comprising complex matrix calculations—to determine convergence, again requiring substantial processing capabilities and time.
Furthermore, in numerous iterative processes such as for example iterative decoding processes, a scaling factor is applied to input signal data in order to ensure proper processing of the same. For example, in stochastic decoding processes a scaling factor is applied to the input signal data to ensure a level of switching activity such that nodes are prevented from locking in a hold state. In state of the art decoding processes simulated code words are used to determine the scaling factor based on the Bit Error Rate (BER) performance of the decoding process, requiring substantial processing capabilities and time.
It would be advantageous to provide a method and system that overcome at least some of the above-mentioned limitations.
In accordance with an aspect of the present invention there is provided a method comprising:
executing an iterative process using logic circuitry comprising logic gates;
sensing switching activity of a plurality of the logic gates to determine switching data indicative of a total switching activity of the plurality of the logic gates;
iterating the iterative process using the logic circuitry until convergence is indicated by the switching data, the convergence indicated by an amount of switching activity below a predetermined threshold; and,
providing output data determined by the iterative process.
In accordance with an aspect of the present invention there is provided a method comprising:
executing an iterative process using logic circuitry comprising logic gates;
sensing switching activity of a logic gate to determine switching data indicative of a total switching activity of the logic gate;
iterating the iterative process using the logic circuitry until one of convergence, divergence, anomaly and error is indicated by the switching data; and,
providing one of output data determined by the iterative process, data indicative of the divergence, and data indicative of the anomaly.
In accordance with an aspect of the present invention there is provided a method comprising:
executing a first portion of a decoding process using logic circuitry comprising logic gates;
sensing switching activity of a plurality of the logic gates to determine switching data indicative of a total switching activity of the plurality of the logic gates;
determining a scaling factor based on the switching data; and,
using the logic circuitry executing a second portion of the decoding process with the scaling factor being applied to at least a portion of data of the second portion of the decoding process.
In accordance with an aspect of the present invention there is provided a method comprising:
executing a plurality of processes using different portions of a logic circuitry comprising logic gates;
sensing switching activity of a plurality of the logic gates of each portion of the logic circuitry to determine switching data indicative of a total switching activity of the plurality of the logic gates of each portion of the logic circuitry; and,
allocating resources to each of the plurality of processes in dependence upon the switching data.
In accordance with an aspect of the present invention there is provided a method comprising:
processing signal data using logic circuitry comprising logic gates;
sensing switching activity of a plurality of the logic gates to determine switching data indicative of a total switching activity of the plurality of the logic gates;
determining data indicating a change in the signal data if the switching data are indicative of a change of the total switching activity of the plurality of the logic gates; and,
providing the data indicating a change.
In accordance with an aspect of the present invention there is provided a method comprising:
providing data of two datasets to respective input ports of logic gates of a logic circuitry;
sensing switching activity of a plurality of the logic gates to determine switching data indicative of a total switching activity of the plurality of the logic gates;
determining data indicative of one of a similarity and dissimilarity between the two datasets in dependence upon the switching data; and,
providing the data indicative of one of a similarity and dissimilarity.
In accordance with an aspect of the present invention there is provided a system comprising:
logic circuitry comprising a plurality of logic gates, the logic circuitry for executing a process; sensing circuitry connected to the logic circuitry, the sensing circuitry for sensing switching activity of a at least some logic gates of the plurality of the logic gates; and,
process control circuitry connected to the sensing circuitry and the logic circuitry, the process control circuitry for performing:
In accordance with an aspect of the present invention there is provided a system comprising:
sensing circuitry for being connected to logic circuitry comprising logic gates for executing a process, the sensing circuitry for sensing switching activity of a plurality of the logic gates; and,
process control circuitry connected to the sensing circuitry and for being connected to the logic circuitry, the process control circuitry for performing:
Exemplary embodiments of the invention will now be described in conjunction with the following drawings, in which:
a to 1d are simplified block diagrams illustrating various embodiments of a system for controlling execution of a process according to the invention;
a is a simplified flow diagram of a method for determining convergence of an iterative process according to an embodiment of the present invention;
b is a simplified flow diagram of a method for determining a scaling factor in a decoding process according to an embodiment of the present invention;
c is a simplified flow diagram of a method for allocating processing resources according to an embodiment of the present invention;
d is a simplified flow diagram of a method for detecting a change in signal data according to an embodiment of the present invention; and,
e is a simplified flow diagram of a method for comparing two datasets according to an embodiment of the present invention.
The following description is presented to enable a person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the scope of the invention. Thus, the present invention is not intended to be limited to the embodiments disclosed, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Referring to
Referring to
Dynamic power consumption of a digital logic gate is expressed as:
Pdyn=CLV2DDp0→1f, (1)
where Pdyn is the dynamic power consumption, f is the clock frequency, CL is the load capacitance driven by the logic gate, VDD is the supply voltage, and p0→1 is the frequency of 0-to-1 signal transitions, i.e. the dynamic power consumption is data-dependent. The total dynamic power consumption is then expressed as the sum of the dynamic power consumption of the individual logic gates. Therefore, the total dynamic power consumption of the logic circuitry 102 is dependent upon the sum of the signal transitions of its logic gates 104, i.e. the total switching activity of the logic gates 104.
Furthermore, the total switching activity of the logic gates 104 depends on the data processed. For example, when an iterative process has converged to a solution there are only little or no changes in the data processed resulting in a low total switching activity of the logic gates 104. Further, in decoding processes the total switching activity of the logic gates 104 varies with the Signal to Noise Ratio (SNR) of the input signal.
The relation between the total dynamic power consumption of the logic circuitry 102 and the data of the process executed using the logic circuitry 102 is exploited to control the process by measuring the total dynamic power consumption of the logic circuitry 102 or, alternatively, by measuring the total power consumption of the logic circuitry 102—with the total power consumption being the sum of the total dynamic power consumption and the total static power consumption—using a load measurement circuit 110 interposed between the power supply 112 and the power supply port 109. Load measurement circuits measure, for example, average power consumption of a plurality of clock cycles or power consumption per clock cycle using, for example, current measurement techniques such as high frequency measurement techniques using, for example, a measurement circuit comprising low-resistance fast Field Effect Transistor (FET) switches and high frequency capacitors. Referring still to
For example, during execution of an iterative process using the logic circuitry 102 total power consumption is measured and compared to a predetermined threshold. If the total power consumption is below the predetermined threshold—indicative of the iterative process being converged—control data indicative of convergence are provided to the logic circuitry 102 via the control port 116. Upon receipt of the control data the logic circuitry 102 stops the iterative process and provides output data via the output port 108.
Optionally, the process control circuitry 114 is connected to at least one temperature sensor 118 disposed within the logic circuitry 102 for measuring temperature of the logic circuitry 102. This allows accounting for the temperature dependence of the power consumption of the logic circuitry 102 providing increased accuracy of the control data.
Further optionally, the process control circuitry 114 is connected to memory 120, the memory 120 for storing a plurality of predetermined thresholds and/or control data. This adds flexibility to the system by enabling retrieval of different predetermined thresholds and/or control data for different processes executed and, furthermore, enabling a process of self-learning during, for example, a calibration procedure. The control process performed by the process control circuitry 114 is performed, for example, in hardware implemented fashion or, alternatively, by executing executable commands stored, for example, in the memory 120, using the process control circuitry 114.
As shown in
Alternatively, as shown in system 200 in
Referring to
For example, during execution of an iterative process using the logic circuitry 302 only the total power consumption of the logic gates 304B is measured and compared to a predetermined threshold. For example, the logic gates 304B are the logic gates determining a portion of the iterative process that is indicative of convergence such as up/down counters of a stochastic decoder or logic gates determining a given bit position such as the Most Significant Bit (MSB). If the total power consumption is below the predetermined threshold—indicative of the iterative process being converged—control data indicative of convergence are provided to the logic circuitry 302 via the control port 316. Upon receipt of the control data the logic circuitry 302 stops the iterative process and provides output data via the output port 308.
Referring to
For example, during execution of an iterative process using the logic circuitry 402 the total switching activity of the logic gates 404B is measured and compared to a predetermined threshold. For example, the logic gates 404B are the logic gates determining a portion of the iterative process that is indicative of convergence such as up/down counters of a stochastic decoder or logic gates determining a given bit position such as the Most Significant Bit (MSB). If the total switching activity is below the predetermined threshold—indicative of the iterative process being converged—control data indicative of convergence are provided to the logic circuitry 402 via the control port 416. Upon receipt of the control data the logic circuitry 402 stops the iterative process and provides output data via the output port 408.
As shown in
Optionally, the process control circuitry 414 is connected to memory 420, the memory 420 for storing a plurality of predetermined thresholds and/or control data. This adds flexibility to the system by enabling retrieval of different predetermined thresholds and/or control data for different processes executed and, furthermore, enabling a process of self-teaching during, for example, a calibration procedure. The control process performed by the process control circuitry 414 is performed, for example, in hardware implemented fashion or, alternatively, by executing executable commands stored, for example, in the memory 420, using the process control circuitry 414.
Referring to
For example, the switching activity is sensed at predetermined time intervals during execution of the iterative process. To reduce processing, the process of sensing switching activity is optionally started after elapse of a predetermined initial execution time interval during which convergence of the iterative process is not expected to take place. Depending on system characteristics such as processing time and accuracy, the switching activity is sensed per clock cycle of the logic circuitry or is sensed over a predetermined number of clock cycles of the logic circuitry. Load measurement circuits capable of measuring power consumption per clock cycle operate, for example, at twice the clock speed of the logic circuitry.
The above method and its implementations of sensing of the switching activity and its timing are implementable using each of the systems shown in
Using the systems shown in
Optionally, data indicative of at least one of predetermined thresholds, predetermined initial execution time interval, and predetermined number of clock cycles are stored in the memory, for example, in the form of a lookup table and are retrieved by the process control circuitry. For example, the process control circuitry receives from the logic circuitry via the control port control data indicative of the iterative process and the process control circuitry then retrieves the respective data from the memory.
For example, the thresholds are determined through experimentation by executing various iterative processes on the logic circuitry, determining convergence by other means—for example, calculating if a given convergence criterion has been met—and sensing the corresponding switching activity. Alternatively, the thresholds are determined theoretically based on knowledge of the data processed in the iterative process and the design of the logic circuitry using, for example, density evolution techniques. Further alternatively, the thresholds are determined in a self-learning process, for example, the thresholds are determined through experimentation by executing various iterative processes on the logic circuitry, determining convergence by other means and sensing the corresponding switching activity. Such a self-learning process is, for example, executed during calibration using various predetermined test signals in decoding or adaptive filtering.
Optionally, test and calibration circuitry is included within the circuit and calibration is performed by the circuit to determine a switching threshold and an associated power consumption for a converged process and data set. During normal operation of the circuit the test and calibration circuitry is disabled such that it does not consume power. The inclusion of the test and calibration circuitry within the circuit enables, for example, recalibration and testing internal to the circuit in case of, for example, poor performance.
Further optionally, data indicative of a change or gradient of the total switching activity between sensed switching activities are determined and used for determining convergence of the iterative process. Alternatively, data indicative of a change or gradient of the power consumption are determined. During execution of numerous types of iterative processes the switching activity decreases when the iterative process converges to a solution and the switching activity remains substantially constant after convergence of the iterative process, i.e. larger values of the change of the switching activity are followed by values of the change of the switching activity close to zero or equal to zero. This enables determining the convergence of an iterative process without predetermined thresholds for the switching activity or, alternatively, provides an additional switching activity based indicator of convergence in situations where the switching activity stays above the predetermined threshold.
Optionally, in order to reduce processing of the process control circuitry, the switching activity of only a predetermined portion of the logic circuitry is sensed—using one of the systems shown in
Additionally, the above method provides a simple and effective method for detecting divergence—when an iterative process fails to converge—or anomalies—when the iterative process produces unexpected data resulting in a different pattern of power consumption during execution. For example, during execution of the iterative process the power consumption—or switching activity—is sensed at predetermined time intervals and compared to predetermined thresholds corresponding to each predetermined time interval. If the sensed power consumption is outside a predetermined range, the process control circuitry determines control data indicative of divergence or an anomaly. Based on the control data, execution of the process is stopped or corrective action is taken such as determining a scaling factor for scaling data determined by the iterative process in step i for use in a following iteration step in order for the process to converge. Furthermore, this method is beneficial for detecting an error occurring during execution of a stochastic decoding process. If an error occurs during execution of a stochastic decoding process it is reflected in the power consumption. Again, sensing the power consumption during execution of the stochastic decoding process at predetermined time intervals and comparing the sensed power consumption to predetermined thresholds corresponding to each predetermined time interval reveals presence of an error occurring during execution. Alternatively, statistically evaluating a series of sensed power consumption data against a known progression allows for detection of errors and anomalies.
Referring to
For example, the switching activity is sensed at predetermined time intervals during execution of the decoding process. Optionally, to reduce processing the process of sensing switching activity is performed only during a predetermined first portion of the decoding process. Depending on system characteristics such as processing time and accuracy, the switching activity is sensed per clock cycle of the logic circuitry or is sensed over a predetermined number of clock cycles of the logic circuitry.
The above method and its implementations of sensing of the switching activity and its timing are implementable using each of the systems shown in
Optionally, data indicative of various scaling factors in dependence upon a sensed switching are stored in the memory, for example in the form of a lookup table and are retrieved by the process control circuitry. For example, the process control circuitry receives from the logic circuitry via the control port control data indicative of the decoding process and in dependence upon the sensed switching activity, the process control circuitry then retrieves the respective scaling factor from the memory.
Alternatively, the switching activity is sensed during a calibration process using a test signal and a scaling factor determined therefrom is used for following data transmissions. Such a process is applicable where the signal quality is substantially constant or substantially constant for a longer period of time with the calibration being repeated at predetermined time intervals.
Again, in order to reduce processing of the process control circuitry, the switching activity of only a predetermined portion of the logic circuitry is sensed—using one of the systems shown in
Referring to
Referring to
Referring to
Numerous other embodiments of the invention will be apparent to persons skilled in the art without departing from the spirit and scope of the invention as defined in the appended claims.
This application claims the benefit of U.S. Provisional Patent Application No. 60/907,606 filed Apr. 11, 2007, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60907606 | Apr 2007 | US |