1. Technical Field
The invention relates generally to a usage of a data retaining device, and more particularly, to a method and system for determining a relative amount of usage of a data retaining device based on a potential of a charge storing device coupled to the data retaining device.
2. Background Art
An amount of usage of a data retaining device needs to be determined for various applications. For example, a multi-port cache is usually limited in size so that if the cache is full, some of the ports/word lines of the cache need to be refreshed to make room for new items. A cache replacement algorithm is usually used to select word lines to refresh. Examples of cache replacement algorithms include a Least Recently Used (LRU) algorithm which refreshes the least recently used word line first, and a Least Frequently Used (LFU) algorithm which refreshes the least frequently used word line first. These algorithms require keeping track of usage of a word line of the cache, which is very costly under the present state of the art technology.
Based on the above, there is a need in the art for a solution to determine a usage of a data retaining device in an inexpensive/efficient way.
A system, method and program product for determining a relative amount of usage of a data retaining device are disclosed. A charge storing device is coupled to a data retaining device in a manner that a use of the data retaining device triggers a charging of the charge storing device. On the other hand, in a period that the data retaining device idles, charges in the charge storing device decay due to natural means. As such, a potential of the charge storing device may be used to indicate an amount of usage of the data retaining device. A comparison of the potentials of two charge storing devices coupled one-to-one to two data retaining devices may be used as a basis for determining a relative amount of usage of each of the two data retaining devices by comparing one to the other.
A first aspect of the invention provides a method for determining a relative amount of usage of a data retaining device, the method comprising: providing a data retaining device, the data retaining device being coupled to a charge storing device in a manner that a use of the data retaining device triggers a charging of the charge storing device by a charge source; measuring a potential of the charge storing device; and determining a relative amount of usage of the data retaining device based on the measured potential.
A second aspect of the invention provides a system for determining a relative amount of usage of a data retaining device, the system comprising: a charge source; a charge storing device, the charge storing device being coupled to a data retaining device in a manner that a use of the data retaining device triggers a charging of the charge storing device by the charge source; means for measuring a potential of the charge storing device; and means for determining a relative amount of usage of the data retaining device based on the measured potential.
A third aspect of the invention provides a program product stored on a computer-readable medium, which when executed, enables a computer infrastructure to determine a relative amount of usage of a data retaining device, the program product comprising computer program code for enabling the computer infrastructure to: control measuring of a potential of a charge storing device, the charge storing device being coupled to a data retaining device in a manner that a use of the data retaining device triggers a charging of the charge storing device by a charge source; and determine a relative amount of usage of the data retaining device based on the measured potential.
The illustrative aspects of the present invention are designed to solve the problems herein described and/or other problems not discussed.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various embodiments of the invention, in which:
It is noted that the drawings of the invention are not to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements among the drawings.
A charge storing device 20, e.g., capacitor (20a, 20b), is couple between a charge source 22 (22a, 22b, respectively), e.g., a positive voltage supply (VDD), and a ground 24 (24a, 24b, respectively) through a switch 18 (18a, 18b, respectively). Charge sources 22 may vary in value depending on, e.g., a weighting assigned to them, as will be described later. As such, in the following description, a charge source 22 will be referred to as a weighted charge source (WCS) 22. Potentials, e.g., voltages, of capacitors 20 may be fed to comparator 26 as inputs to be compared therein.
The potential of a capacitor 20 and an output, e.g., a comparison result, of comparator 26 may be measured/obtained by a measuring device 27. It is appreciated that measuring device 27 may include any mechanism[s] that is capable of measuring capacitor 20 potential and/or comparator 26 output.
In operation, when a data retaining device 12, for example, 12a, is accessed/used through data access line 14, with switch 16a being turned on, the corresponding switch 18a is also turned on, which enables a charging of capacitor 20a by weighted charge source 22a. As such, each use of data retaining device 12a triggers a charging of capacitor 20a, which causes an increase in the potential, e.g., voltage, of capacitor 20a. On the other hand, during a period that data retaining device 12a idles, with switches 16a and 18a being turned off, charges on capacitor 20a decay due to natural means, which causes a decrease in the voltage of capacitor 20a. As a consequence, capacitor 20a is functionally coupled to data retaining device 12a through the correspondence between switches 16a and 18a, and the potential, e.g., voltage, of capacitor 20a may be used as an indicator of an amount of usage of data retaining device 12a. In addition, a comparison of the potentials of capacitors 20a and 20b may be a basis for determining a relative amount of usage of data retaining device 12a compared to data retaining device 12b. For example, a lower potential of capacitor 20a than that of capacitor 20b may indicate that data retaining device 12a has been less used than data retaining device 12b, and may be a candidate for a refresh to make room for new data items. In the following description, a voltage of a capacitor 20 will be used as an example of a potential of the same, for illustrative purposes. Please note, as a certain use of data retaining device 12a causes a fixed amount of charges to be injected onto capacitor 20a, the voltage of capacitor 20a is mainly determined by the amount of usage of data retaining device 12a and the initial voltage of the same. That is, in a given period, the exact time when a use of data retaining device 12a occurs does not make significant difference. As such, the current invention may be used with, inter alia, a Least Frequently Used algorithm for replacing cache.
According to one embodiment, a data retaining devices 12, e.g., 12a, may be prioritized so that for the same amount of usages of data retaining devices 12a, 12b, capacitors 20a, 20b, respectively, may end with different voltage values. Various methods may used to achieve a priority. For example, the amount of charge injected onto a capacitor 20 may be controlled to reflect a priority of a data retaining device 12. For example, the sizes of weighted charge sources 22 coupled to each data retaining device 12 may be tuned/weighed to achieve injection of different charges onto different capacitors 20 for the same usage of data retaining devices 12. In addition, a decay rate of a capacitor 20 may be tuned/processed to reflect the priority of the related data retaining device 12. For example, if data retaining device 12a has a priority over data retaining device 12b, capacitor 20a may be tuned to decay more slowly than capacitor 20b.
As is appreciated, a capacitor 20 may be charged to an upper level such that the voltage of the capacitor 20 is no longer sensitive to further charging. In addition, a voltage of a capacitor 20 may decay to a lower level such that the voltage is no longer sensitive to further decay. As such, actions need to be taken to make sure that the voltage of a capacitor 20 has not reach the upper level or the lower level so that the voltage is valid to indicate a relative amount of usage of the related data retaining device 12. That is, a comparison in comparator 26 needs to yield a valid result. According to one embodiment, voltage of a capacitor 20 (here 20a, 20b) may be input into a comparator 28 (28a, 28b, respectively) to be compared with a signal 30 (30a, 30b, respectively). A signal 30 may be controlled to represent a minimum voltage for a capacitor 20 to maintain sensitivity to further decay or a maximum voltage for the capacitor 20 to maintain sensitivity to further charging.
In addition, a voltage level of a capacitor 20 may indicate the validity of data in data retaining device 12. For example, if the voltage of a capacitor 20 has decayed for a long time, the data stored in a data retaining device 12 may have also decayed to be invalid. As such, signal 30 may also be controlled to represent a minimum voltage level of a capacitor 20 to make sure that data stored in a data retaining device 12 is still valid.
A computer system 200 may be responsive to system 10. For example, computer system 200 may control measuring device 27 in performing measurements, and may receive the measurement results as data inputs. Upon processing these data inputs, computer system 200 may control an action on a data retaining device 12 of data retaining sub-system 11.
In operation, control signal 130 and outputs 150 (150a, 150b, 150c) of address comparator 140 are used together to achieve the correspondence between switches 16 and 18 (
According to one embodiment, a use of data retaining device 12a may be assigned with a priority over other types of uses of the same. For example, the amount of charges injected onto capacitors 20a through weighted charge source 110a, which is related to “WRITE”, may be adjusted/controlled according to a certain policy, e.g., improving performance of data retaining sub-system 11. The three actions mentioned above, i.e., “WRITE”, “READ”, and “ACCESS”, each may require different cost of resources for reloading and have a different impact on the performance of data retaining sub-system 11 (
Various methods may be used to adjust/control the charges injected onto capacitor 20a, and all are included in the current invention. For example, the size of weighted charge sources 110 may be tuned to differentiate the charges injected onto capacitor 20a by each of them. For another embodiment, sizes of transistor stacks 120 may also be tuned to channel different amount of charges to capacitor 20a for different uses. It should be appreciated that the various methods of controlling/adjusting charges injected onto capacitor 20a may be used alone or in various combinations, which are all included in the current invention.
As has been described above, the operation of system 10 (
As shown in
Inputs to computer system 200 include measurement result inputs 260 and user instruction inputs 262. Measurement result inputs 260 include measurement results of measuring device 27 (
Next in step S2, measurement controller 247 controls a measurement of a voltage of a capacitor 20. Any means to measure a voltage of a capacitor 20 may be used with the invention and controlled by measurement controller 247. The results of the measurements may be communicated to computer system 200 through measurement result inputs 260 and may be obtained by data collector 240. In addition, results of the comparisons made in comparator 26 may also be communicated to computer system 200 and obtained by data collector 240.
Next in step S3, implementer 248 determines a relative amount of usage of a data retaining device 12 based on the measured voltage of the related/coupled capacitor 20, and determines an action upon the data retaining device 12 based on the usage determination, which may be implemented by data retaining sub-system 11. As described above, a lower voltage of a capacitor 20, e.g., 20a, indicates that the related data retaining device 12a has been used less then other data retaining devices, e.g., 12b. (
According to an alternative embodiment, implementer 248 may compare a measured voltage of a capacitor 20, e.g., 20a, with a preset threshold, e.g., a minimum voltage value. If the measured voltage of capacitor 20a meets the threshold, e.g., lower than the minimum voltage value, the related data retaining device 12a is selected to be taken action upon, e.g., to be refreshed.
In addition, in step S3, comparison validity monitor 250 may optionally monitor whether a measured voltage of a capacitor 20 is valid to indicate a relative amount of usage of data retaining device 12. Specifically, comparison validity monitor 250 may control a signal 30 to represent an upper level threshold and a lower level threshold to be compared with a voltage of a capacitor 20, here e.g., 20a. If the voltage of capacitor 20a is lower than the upper level threshold and is higher than the lower level threshold, the voltage is considered valid to indicate a relative amount of usage of data retaining device 12a. If voltage of capacitor 20a is higher than the upper level threshold, or lower than the lower level threshold, voltage of capacitor 20a is considered invalid to indicate a relative amount of usage of data retaining device 12a. In addition, in the case that a comparison in comparator 26 does not generate a valid result, e.g., voltages of two capacitors 20 are the same, comparison validity monitor 150 may determine selecting a data retaining device 12 to take action upon based on other tests, e.g., a policy.
Moreover, data validity monitor 252 may optionally perform a data validity check. Specifically, data validity monitor 252 may determine whether a data in a data retaining device 12, e.g., 12a, is valid by comparing a voltage of the related capacitor 20a to a threshold which represents the minimum voltage of capacitor 20a to indicate that the data in data retaining device 12a is valid. Specifically, data validity monitor 252 may control signal 30a (
While shown and described herein as a method and system for determining a relative amount of usage of a data retaining device, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a program product stored on a computer-readable medium, which when executed, enables a computer infrastructure to determine a relative amount of usage of a data retaining device. To this extent, the computer-readable medium includes program code, such as data retaining device usage determining system 232 (
In another embodiment, the invention provides a method of generating a system for determining a relative amount of usage of a data retaining device. In this case, a computer infrastructure, such as computer system 200 (
In still another embodiment, the invention provides a business method that performs the process described herein on a subscription, advertising supported, and/or fee basis. That is, a service provider could offer to determine a relative amount of usage of a data retaining device as described herein. In this case, the service provider can manage (e.g., create, maintain, support, etc.) a computer infrastructure, such as computer system 200 (
As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions that cause a computing device having an information processing capability to perform a particular function either directly or after any combination of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form; and/or (c) decompression. To this extent, program code can be embodied as one or more types of program products, such as an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like. Further, it is understood that the terms “component” and “system” are synonymous as used herein and represent any combination of hardware and/or software capable of performing some function(s).
The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art appreciate that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown and that the invention has other applications in other environments. This application is intended to cover any adaptations or variations of the present invention. The following claims are in no way intended to limit the scope of the invention to the specific embodiments described herein.
This patent application is a continuation of U.S. patent application Ser. No. 11/279,639, filed Apr. 13, 2006.
Number | Date | Country | |
---|---|---|---|
Parent | 11279639 | Apr 2006 | US |
Child | 12045744 | US |