Abstract:
An improved process ensures to the extent possible that the usage memory of an electronically-based electricity meter is always in a state that most recent data may be retrieved. Two separate areas or pages of memory are maintained and updated as to quantitative consumptions, e.g., kiloWatt-hour. Preferably a non-volatile form of memory is used. The older of the two data memories is updated, based on a data validation check. The approach ensures that a previous value is always retained, to prevent full data loss in the event that the power goes down. If one area of memory becomes corrupted, the other value can be retrieved and verified so as to prevent loss of both memory areas, before a subsequent data reading (such as kWh or a unit of time for a kW reading). Use of a relatively smaller unit of measure prevents any significant adverse affects to the accuracy of the value stored. In other words, the maximum data lost is limited to the chosen unit of measure since the most recent previous update.

Description:
PRIORITY CLAIM 
     Priority is hereby claimed to prior filed provisional application with the same title and same indicated inventorship as presently presented, filed on Nov. 25, 1998 and assigned U.S. Ser. No. 60/109,906. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention generally concerns improved processes or techniques for ensuring the integrity of meters during power outages, and more particularly concerns improved memory integrity of electricity meters such that the memory is always in a state that previous data may be retrieved. The subject invention concerns both apparatus and methodology in such areas, including the use of practical computer software applications involving an algorithm approach to producing a useful, concrete and tangible result, i.e., namely, a stored data value for consumed electricity (or other commodity) to be charged to a customer&#39;s account. 
     The general object of metrology (i.e., the science of measurement) is to monitor a physical phenomenon to permit a record of the monitored event(s). If the potential to record the measured or monitored data is lost, then the entire basic purpose of the metering device and/or effort fails. 
     Such basic function and purpose of metering devices can be applied to a number of contexts. One broad area of measurement relates, for example, to utility meters. These may include the monitoring of consumption of a variety of forms of energy or other commodities, such as electricity, water, gas, and oil, to name a few. 
     Historically, a mechanical form of register was used for utility meters. Such an approach provided a relatively dependable field device with certain inherent functional advantages. For example, if the flow of the consumable commodity being measured was interrupted, the mechanical form of gauge simply stopped in its place, automatically reflecting the previous accumulation without other arrangements being required, and without any loss of such accumulated data. After resumption of the flow of the commodity, the mechanical register could then simply begin to add additional flow values to the previous accumulation, so that accurate data was reflected at all times regardless of intermittent commodity flow interruptions. 
     Also, in many instances, the gauge or register required no separate power supply since it was operated directly by the commodity flow. In the case of electricity meters, the mechanical register could be electrically powered. Hence, when power was lost, the measurement function was temporarily moot so no measurement functionality was lost even though the gauge itself would be temporarily without power. 
     As the technology of metering devices progressed, mechanical registers began to be replaced with more electrical-based devices and electronic forms of registers. Generally speaking, all such devices require some form of electrical power for their operation and data storage function. Such fact created the potential for catastrophic loss of accumulated data (i.e., the failure of the entire purpose of the measuring device if data representing accumulated commodity usage were lost). 
     For example, in the case of an electricity meter, electric power is already flowing to (and through) the metering or measuring device. Such fact makes for a convenient supply of electricity, without having to attempt to rely on battery operation or some other source of electrical power. However, such an arrangement, while advantageous in certain aspects, is inherently susceptible to the loss of electrical power to the measuring device (including its register) at the same time there is any power loss to the customer&#39;s location (for example, house or business). 
     Intermittent power outages (or other conditions, such as brown outs) can occur in even the best maintained systems. For example, an electrical power system can become damaged due to storm debris (e.g., falling limbs) or high winds, or from an accident (for example, vehicles such as trucks or cars knocking down utility poles and power lines). Under certain load shedding conditions, it may even become necessary for power to a given location to be deliberately interrupted. 
     Regardless of such causes (or possibly other sources) of power outages, the inherent problem is that an electrical measuring device with an electrically powered register may lose its accumulated data in the event of a routine power outage. Prior attempts have been made to address such technical problem. 
     In one instance, a technique or storage algorithm was used to store electricity meter quantities to a non-volatile memory whenever a power outage occurred. In such prior attempt, the technique involved a relatively early detection of the power outage and consideration of the power supply hold up times to complete the storage of the electricity meter quantities to the non-volatile memory. Such so-called “hold up time” refers to the amount of time a supply will maintain acceptable output power to the circuit after line voltage is removed. Hence, such technique involved the use of relatively complicated and costly power fail detection circuits and power supply hold up components. In addition, most non-volatile memory devices are limited by the maximum number of times an area of memory could be written to over the life of such a device. 
     Other arrangements and aspects of electronic-based electricity meters are known. See, for example, disclosures set forth in U.S. Pat. Nos. 4,783,623; 5,469,049 and 4,509,128. The disclosures of all such patents are hereby incorporated herein by reference. 
     SUMMARY OF THE INVENTION 
     The present invention recognizes and addresses variations of the foregoing problems, and others, concerning metrology operations. Thus, broadly speaking, a principal object of this invention is improved metrology operations. More particularly, a main concern is improved measurement integrity through preservation of data despite intermittent power outages. 
     Another more particular object of the present invention is to provide improved apparatus and methodology for memory integrity for electricity meters. In such context, it is a general object to provide for improved integrity of stored electricity meter quantities including, but not limited to, such items as either energy or demand usage. In such context, it is desired to facilitate the measurement of, for example, certain units of energy for a kiloWatt-hour (kWh) reading or, with reference to units of time for a kilowatt (kW) reading. 
     Still another general object of the present invention is to provide a practical application of computer software for producing a useful, concrete and tangible result, namely, improved memory integrity of metrology results, such as obtained with utility meters, particularly such as electricity meters. In such particular context, it is a present object to remove the need to employ relatively complicated and costly power failure detection circuits and power supply hold up components. 
     In the context of electricity meters, it is another present object to make use of a dual storage technique or algorithm so as to assure there will always be a previous electricity meter value retained, thus preventing full energy loss at power down. In such context, it is a further object to limit the loss of any electricity meter quantity information to a chosen unit of measurement, selected so as to be small enough not to significantly affect the accuracy of a value being stored. 
     It is yet another object of the present invention to provide improved metrology technology which makes improved use of non-volatile memory devices, but without requiring additional circuits for direct fault detection or other arrangements to provide for use of the non-volatile memory. 
     It is another general object of the present invention to provide an apparatus and improved technology which may be advantageously implemented through, and with the assistance of, specific computer software for implementing a memory integrity algorithm for double buffering the stored data involved by maintaining and updating two separate areas of memory for quantities stored, such as electricity meter quantities. Additional objects and advantages of the invention are set forth in, or will be apparent to those of ordinary skill in the art from, the detailed description herein. Also, it should be further appreciated that the modifications and variations to the specifically illustrated, referenced, and discussed features and steps hereof may be practiced in various embodiments and uses of this invention without departing from the spirit and scope thereof, by virtue of present reference thereto. Such variations may include, but are not limited to, substitution of equivalent means and features or steps for those shown, referenced, or discussed, and the functional, operational, or positional reversal of various parts, features, steps, or the like. 
     Still further, it is to be understood that different embodiments, as well as different presently preferred embodiments, of this invention may include various combinations or configurations of presently disclosed steps or features, or their equivalents (including combinations of steps or features or configurations thereof not expressly referenced in the figures or stated in the detailed description). 
     One exemplary present embodiment of the subject invention relates to improved memory integrity making use of a double buffered process of maintaining and updating two areas of memory for quantity stored data, such as for electricity meters. One area holds a most recent reading while the other holds a prior reading. In accordance with such technique or algorithm, the older of such two memories is updated. Practice of such an arrangement and/or technique advantageously permits, for example, an electricity meter, to maintain any quantity, such as an increasing register kWh (kiloWatt-hour) reading in a fault tolerant environment. 
     Other present exemplary embodiments of the subject invention may make use of various memory types, such as non-volatile technology devices. Such devices may include, for example, EEPROM (Electrically Erasable Programmable Read-Only Memories) FLASH memory devices, magnetic media, or battery backed RAM (Random Access Memory). As another aspect of the subject invention, any of such non-volatile technology memory devices may be located either internally or externally to the processing device. 
     In accordance with the subject invention, each such memory device would be utilized so as to constitute double buffered areas, with each buffer having its own checksum value. Such a checksum is a method used to validate data that is transmitted to and from a processing device and its storage media (which, as referenced, may be varied in accordance with the subject invention). Using a dual storage algorithm or technique in accordance with the subject invention assures that a previous value is always retained, thereby preventing full energy loss during any power outage. 
     Further in accordance with exemplary embodiments of the present invention, only one of the at least dual areas (i.e., the older value) is updated to a new value at any one time. In such fashion, in the event one of the areas becomes corrupted, the other value can be retrieved and verified to avoid the possibility of any corruption having a catastrophic effect, which would be constituted by the loss of both memory areas. 
     In still further aspects of the subject invention, the present technique or algorithm manages and oversees the memory write operation so as to coincide (in the instance of an electricity meter) with a certain unit of energy for a kWh reading or unit of time for a kW reading. In accordance with the subject invention, the unit of measure is chosen so as to be small enough that it will not significantly affect the accuracy of the value being stored in the event that the attempted storing (i.e., memory write operation) fails. At the same time it is chosen so as not to be so small as to exceed (cumulatively) the service life of the non-volatile memory device. Such is a concern, for example, in the case of EEPROM devices, which have a limited number of times that a memory location may be written. 
     In accordance with the subject invention, the storing technique or algorithm is not triggered by any power outage, so the need to have the warning of a power failure is removed entirely from the system. 
     In still further embodiments involving the subject technique or algorithm, a write operation to a non-volatile memory can be allowed to fail without entirely defeating the metrology basic function involved. In such event, in accordance with the subject invention, the maximum data lost is the preselected unit of measure since the most recent (i.e., previous) update. For example, if there is a power failure as the process is being operated for replacing the older energy value stored, then the write operation would fail. Upon the return of power, such attempted update of the older value would be found to have a bad checksum. In such instance, in accordance with the subject technique or algorithm, the most recently successfully stored energy value would be returned. Hence, the lost amount of energy (i.e., data about such energy) during the interim would only be the managed incremental unit of energy (i.e., data about such energy). 
     It is to be understood by those of ordinary skill in the art that the subject invention involves both apparatus implementing such techniques and the computer software or other implementations of flow charts and/or algorithms as involved with the subject invention, for constituting a practical application of such techniques or algorithms for producing a useful, concrete and tangible result. 
     Those of ordinary skill in the art will better appreciate the features and aspects of such embodiments and techniques, and others, upon review of the remainder of the specification. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A full and enabling disclosure of the present invention, including the best mode thereof, directed to one of ordinary skill in the art, is set forth in the specification, which makes reference to the appended figures, in which: 
     FIG. 1 is a flow chart representation of exemplary embodiments of memory integrity processes in accordance with the subject invention; 
     FIG. 2 is a schematic diagram representing techniques for double buffered data storage features in accordance with the subject invention; 
     FIG. 3 is a sequence chart showing exemplary events in accordance with the subject invention during a data write condition; 
     FIG. 4 is a sequence chart showing exemplary events in accordance with the subject invention during a data read condition; and 
     FIG. 5 is block diagram schematic overview of certain aspects of the subject invention. 
    
    
     Repeat use of reference characters throughout the present specification and appended drawings is intended to represent same or analogous features, elements, or steps of the invention. Use of certain numbers in the figures are intended to represent data values, events, or locations, rather than specific reference characters, as otherwise discussed in detail throughout the specification. The meaning of the indicated numbers will be clear in context to one of ordinary skill in the art, taken together with the corresponding description thereof in the specification. 
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Those of ordinary skill in the art will appreciate that various modifications may be made to the specific examples and embodiments discussed herein, and that the subject invention is not intended as being limited by such specific examples. Moreover, the description of such specific examples is intended by way of example only, rather than limitation, such that the above-referenced variations within the spirit and scope of the invention may be practiced. 
     Further referencing present exemplary embodiments, it is to be understood that the subject invention involves use of a double buffering technique or algorithm for maintaining and updating two areas of memory for quantity stored. Preferably, such quantities may involve electricity meter quantities of various types (as referenced above) when used in conjunction with electric utility meters. Other embodiments of the subject invention may be practiced with other forms of meters and adapted for use therewith, including various utility meters of the types as referenced above. 
     In conjunction with maintaining and updating two areas of memory for quantity stored, one area holds the most recent reading while the other holds a prior reading. In accordance with the subject invention, the older of such two recorded areas is sequentially updated. 
     As referenced above, various memory types may be used, preferably of any non-volatile technology such as EEPROM, FLASH memory devices, magnetic media, or battery backed RAM, located either internally or externally to the metering device (specifically, the processing device portion thereof). A checksum methodology is used to validate data, with each of the double buffered areas having its own checksum value. The data being validated is that being transmitted to and from a processing device and its storage media, whatever form is practiced by one of ordinary skill in the art in accordance with an embodiment of the subject invention. Use of the present dual storage algorithm or process ensures that there will always be a previous value retained, so as to prevent full energy loss at power down. Since only one of the dual areas (i.e., the older value) is updated to a new value at any one time, the other value can be retrieved if it is found that the one area being then updated is corrupted. If the other value is retrieved and verified, it avoids the possibility of a corruption having a catastrophic effect, i.e., the loss of both memory areas. 
     When in accordance with the subject invention, the unit of measurement is chosen to be small enough so as to not significantly affect the accuracy of the value being stored, the lost amount of energy (i.e., data about such energy) will in the worst case be only such managed incremental unit of energy. Such will occur only in the event the attempted storing (i.e., write operation) fails. The selected unit of measure is in accordance with the subject invention not so small as to exceed the service life of the non-volatile memory device. 
     Referring more specifically to present exemplary embodiments, using a dual storage process, technique, or algorithm in accordance with the subject invention makes certain that there will always be a previous value retained, so as to prevent a full data loss during any power outage. In general, a power outage may occur during the storage of either the first or second stored value in accordance with the subject invention. Upon ultimate restoration of power, both values in the two non-volatile memory areas may be tested to determine if neither, either, or both values are correct. 
     In accordance with the subject invention, if one of the tested values is higher than the other, than the higher value is regarded as the most recent accumulation. This is based on an assumption that a meter is in the power consumption mode, and that it is not running “backwards” because the normally consuming customer is instead, such as through use of a generator, putting energy back onto the power grid. In accordance with the subject invention, the lesser of the two data values (based on such assumption) can be discarded and updated with the next new value since such area of memory is regarded as containing the older of the two values. 
     In the context of the subject invention, such a storage unit or area of memory may be alternatively referred to or envisioned as a “page” of memory or simply as a “page.” 
     A variety of reasons can cause failure of good values to be written to a non-volatile memory or to be read from such a memory. For example, loss of power can occur during a write operation to memory such that the write operation is not able to be completed before the power is completely gone. Another possibility is that noise can occur during a read or write operation. Still another potential reason for failure is simply failure of involved hardware. Yet another failure potential is simply failure of one of the areas or “pages” of the double storage area. Practice of the subject invention involves attempting to recover stored values in the presence of any such failures. 
     Generally speaking in accordance with the subject invention, with either a read or write operation, both areas or pages of the double storage area are read and their corresponding respective checksum values are calculated. The following Table 1 specifies in accordance with the subject invention the resulting potential outcomes of checksum errors and the corresponding actions to be taken per the invention. 
     
       
         
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE 1 
               
             
             
               
                   
                   
               
               
                   
                 Page 2 
                   
               
             
          
           
               
                 Page 1 
                 Checksum good 
                 Checksum bad 
               
               
                   
               
               
                 Checksum good 
                 Checksum errors = 0 
                 Checksum errors = 1 
               
               
                   
                 update oldest value 
                 update both values 
               
               
                 Checksum bad 
                 Chesksum errors = 1 
                 Checksum errors = 2 
               
               
                   
                 update both values 
                 update both values 
               
               
                   
               
             
          
         
       
     
     As expressed in Table 1, the number of checksum errors is used to indicate the validity of the data involved and/or to specify additional action to be taken in accordance with the subject invention. For example, as a result of a write operation, any checksum error occurring whatsoever could call for a second write operation to take place in order to ensure successful storage of the corresponding data. 
     In other words, in Table 1, where checksum is indicated as “bad” or where the number of checksum errors is indicated as equaling 1, results in a second write operation as referenced above. 
     In the event of two checksum errors (i.e., checksum errors=2), the results may be indicating loss of any stored value whatsoever. In such event, it may be impossible to recover any data in the event of a loss of power. However, in this portion of the technique or algorithm, no actual loss of power may have yet occurred. Until such time, the data may be valid. As a result, the occurrence of such a condition (i.e., two checksum errors) could be used to flag a particular measuring unit or processing device for scheduled maintenance. 
     With a read operation, one checksum error could indicate a loss of one unit of measurement, as referenced above. However, the occurrence of two checksum errors would indicate a complete loss of stored data and cause a non-recoverable error. 
     FIG. 1 is a flow chart overview of a memory integrity process or algorithm generally  10  in accordance with the subject invention. Referring to such flow chart explains in great detail operations and functions of exemplary embodiments in accordance with the subject invention and the memory integrity process and algorithm inherently described and defined throughout such flow chart of FIG.  1 . 
     Those of ordinary skill in the art will understand and appreciate that at least a portion of such process or algorithm  10  in accordance with the subject invention involves operation thereof after power restoration after a power outage. For purposes of the present example, it is to be understood that practice of the subject invention is applied to an electricity meter. It is to be likewise understood that variations and modifications of the subject invention may be adapted and applied to other forms of utility meters, and to other types of meters. 
     After start-up of such process  10  as per step  12 , both pages (i.e., Page 1 and Page 2) of data (for example, electricity meter quantities) are read into temporary storage for calculating checksums, per step  14 . As part of such phase of operations of the process, an error counter is cleared and the checksums are calculated from the data entries in both pages, per step  16 . 
     As a next step or operation of such phase of process  10 , the checksums are reviewed (i.e., compared) to determine data validity of both such pages, Page 1 and Page 2, per respective steps  18  and  20 . As illustrated per the flow chart of overall process  10 , various different branches are involved depending on what combination of results are involved with checking the validity of the data for both Page 1 and Page 2. 
     In the instance where both pages are determined to be valid, the subject exemplary process continues along flow line  22  to a determining operation  24 . At least at the point of entering decisional operation  24 , it has been determined that both Page 1 and Page 2 are passed, meaning that the error counter equals zero. Such operation  24  determines whether a read operation or write operation is taking place. If a read operation is taking place, control flows to a further decisional operation  26 , as shown in present FIG.  1 . The functional purpose of decisional operation  26  is to determine whether Page 1 or Page 2 is the more recent value (based on the assumption of an increasing data register). As referenced above, such determination is made by directly comparing the two data values for determining which is a higher value. If it is determined that Page 1 has the higher value, then a page update flag is set per step  28  (in this instance representing setting the value of such update flag to “1”). 
     The result from step  28  of setting such page update flag to 1 is to direct the next write operation to the older of the two pages, which in this instance has been determined (based on the stated assumption) to be Page 1. In view of such result, such denominated Page 1 is then used to restore the active data value, per step  30 , which means that the data from Page 1 is copied into a further location, such as RAM storage. From there, operation continues along flow line generally  32  for returning to the error counter (the flow line destination from a variety of different operations, as shown in FIG.  1 ). 
     If, on the other hand, the determination of decisional operation  26  is that Page 2 is the more recent data, the page update flag will be set to “0” per operational step  34 . 
     To summarize, a page update flag of “1” means that Page 1 data is used during a write operation and a page update flag of “0” means that Page 2 data is used during a write operation. 
     In accordance with this exemplary embodiment of the subject invention, the page update flag is also set to 0 if it is determined that the data values of Pages 1 and 2 are equal. In this way, an affirmative or forward moving flow chart is provided for any possibility. It is to be understood by those of ordinary skill in the art that other arrangements could be practiced, in the event that the value of the data in Page 1 is determined to be equal to that within Page 2. 
     Regardless of whether the Page 1 stored data values were found to be less than the Page 2 stored data values or equal thereto, the present exemplary embodiment of the subject invention per the flow chart of FIG. 1 results in the data in the denominated Page 2 being copied to the alternative storage site, i.e., a RAM storage, per the operation of step  36 . Subsequent operation again proceeds via flow line  32  from step  36 , as referenced above. 
     Returning to decisional operation step  24 , the following more specifically traces function of exemplary embodiments of the subject invention per FIG. 1 in the event that a storing data operation (i.e., a “write” operation) is taking place. 
     Referring to such point in FIG. 1, it has already been determined that both Pages 1 and 2 hold valid data. Proceeding along flow line  38  in view of a write operation being conducted, a page update flag operation or arrangement is utilized in accordance with the subject process or algorithm to toggle write operations between Page 1 or Page 2. 
     It is to be understood that, per preferred operation, a read is performed after a power up. As shown in alternative operational steps  28  and  34 , such operation results in the page update flag being re-initialized to either a “1” or “0” value. 
     Specifically, decisional operation step  40  causes an examination of the above-referenced page update flag. When such flag is set to “0” (see step  34  and its corresponding description), operation branches to a further decisional branch operation generally  42 . If the page update flag is set to “1” (see operational step  28  and its corresponding discussion), operation proceeds to a further decisional operation step generally  44 . 
     Both operational steps  42  and  44  examine their respective data information to determine whether a rollover or reset condition exists. Such a condition exists whenever the new data to be written is less than or equal to the value of the data sums in the respective pages (Page 1 for operational step  42  and Page 2 for operational step  44 ). If the decisional process of operational step  42  results in an affirmative or positive result, then the new data is written into Page 2 storage per Step  46 . If the answer is negative, then such new data is written to the Page 1 storage per step  48 . 
     Operational step  44  works just the reverse to that of operational step  42 , though testing for the same question (i.e., whether a roll over or reset condition exists). If there is an affirmative response, then the new data is written to the Page 1 storage, per step  50 . If the answer is in the negative, then the new data is written to the Page 2 storage, per step  52 . Once such steps are complete, the page update flag is toggled per step  54  and operation continues with return error counter step  56 , just as referenced above in discussion with flow line  32 . 
     Such operational steps or process resulting in the present algorithm, as to the storing data or “write” operation, maintains the most recent and prior data. It also inherently prevents consecutive write operations to a single page, thus extending the “write cycle” life of some memory devices such as EEPROM&#39;s. 
     It is to be understood by those of ordinary skill in the art that whenever a rollover or reset condition exists (i.e., the “yes” decisional branch for decisional operations  42  or  44 ), the new data is written to both Page 1 and Page 2 storage areas. This is to, in effect, start over with fresh or fully updated data in both page storage areas. The successive operations represented by paired steps  46  and  48  and paired steps  50  and  52  (involving indicated flow lines  49  and  53 , respectively) represent such preferred mode of operation within process  10 . 
     Overall operation of the process or algorithm generally  10  will result in returning the number of checksum errors encountered, per step  56 . Very simply, as will be understood by those of ordinary skill in the art, a checksum “error” is determined whenever a calculated checksum is not equal to the stored checksum. 
     The number of possible checksum errors encountered can range anywhere from 0 to 2. Per such scale, 0 equates to no errors, “1” equates to one checksum error and “2” equates to both checksums being determined as erroneous. 
     In such instance of a returned value of “2”, it may be determined that a fatal error has occurred, since data in both storage locations is determined to be invalid, based on the review of checksums per other operational steps in accordance with the process or algorithm generally  10 . A return value of “1” may be handled by the subject process or algorithm as a non-fatal error because it has been determined and is known that one storage location still has valid data. The specific operations in accordance with the subject process or algorithm are discussed as follows. 
     Decisional branch or operational step  18  determines whether the Page 1 checksum is good. If the answer is affirmative, then the Page 2 checksum is evaluated per decisional operation step  20 , as referenced above. However, if the answer is “no” when reviewing the Page 1 checksum (per branch  18 ), then the error counter is incremented per step  58 . As a next operation, the Page 2 checksum is still evaluated, per a decisional branch or operational step  60 . If the answer is no, then the error counter is incremented to two via step  62 , meaning that both pages have failed, as referenced above. 
     When both pages have failed, both values need to be updated, in accordance with the subject invention (see Table 1 as referenced above). Therefore, indication of a read operation per decisional branch  64  results in no read being taken since no valid data is available. However, determination of a write operation per decisional branch  64  results in new data being written to both Page 1 storage and Page 2 storage, per the successive operational steps  66  and  68 . Again, flow operation turns from such point to the flow line  32 , referenced above. 
     On the other hand, an affirmative decision from decisional branch  60  indicates that at least one storage location still has valid data. In this instance it also specifically indicates that Page 2 is the location of such valid data. Therefore, the error counter is set at “1” because only Page 1 has failed. 
     Upon such status, when a decisional operational branch  70  is reached, any determined read operation results in an instructional step to copy Page 2 data to the RAM storage, per step  72 . Such operational step takes place because the subject process or algorithm has determined that only Page 2 holds valid data. 
     In the event of a write operation being instructed as detected in decisional step  70 , it is desirable to write the new data to both storage locations Page 1 and Page 2, since it is known that the Page 1 data is invalid and that it is also time to update the Page 2 data. Again, the successive write operations of steps  66  and  68  are implemented, and the process returns to flow line  32 , as referenced above. 
     Flow line  74  represents a condition wherein it has been determined that the Page 1 data values are valid but that the Page 2 data values are not valid. Operation of a step  76  again results in the error counter being incremented. Because operation is proceeding on the “no” branch from decisional step  20 , it is known not only that a single page has failed, and that Page 2 is the failed page. Therefore, decisional branch  78  operations are similar to (but reverse of) the resulting operations of decisional branch  70 . 
     Specifically, a read instruction detected at decisional branch  78  results in data from Page 1 being copied to RAM storage, per step  80 , since it has been determined that Page 1 is the page with the valid data. If a write operation is detected per decisional branch  78 , then successive steps  82  and  84  result in new data being written to Page 2 storage and Page 1 storage, respectively. In any event, after operation of steps  80 ,  82 , and  84 , flow line  86  returns operation to return error counter step  56 , similar to flow line  32 , as referenced above. 
     FIG. 2 provides in diagrammatical or schematic format representations of features involving a pair of data pages as practiced in exemplary embodiments of the subject invention. Two respective pages generally  88  (First Page or Page 1) and  90  (Second Page or Page 2) are represented. 
     As referenced above, each storage block may be referred to as a page, with each page containing a predetermined number of storage elements (such as called bytes). As is known to those of ordinary skill in the art, some of the bytes within each page will contain the data to be stored and retrieved while one or more of such bytes may hold checksum information, as represented in FIG.  2 . As further understood by those of ordinary skill in the art, the corresponding checksum value for stored data will be stored within the same page, i.e., the first or second page. 
     FIGS. 3 and 4 represent step by step examples of various write and read conditions, respectively, operating in accordance with the subject invention on exemplary sets of changing data values. In other words, FIGS. 3 and 4 provide sequenced examples of events showing how the memory integrity process or algorithm in accordance with the subject invention functions. 
     It should be understood that the numerals indicated in FIGS. 3 and 4 are not intended as reference characters, as referenced in present FIGS. 1 and 2. Instead, they represent discreet events or conditions, as discussed, and exemplary data values, whether new or stored data. 
     It should be further understood that the examples of FIGS. 3 and 4 do not necessarily represent operational conditions as would occur under successive steps as shown per the exemplary events. In other words, actual events could proceed in a different order or fashion than the examples shown. 
     FIG. 3 specifically represents an example of writing data to a non-volatile memory storage device. Generally speaking, Event  1  represents a factory initialized condition, wherein the data values are set to zero in both pages, along with the correct checksums therefor. 
     During operation data will begin to accumulate, such as representing electricity meter quantities (in examples practiced with electricity meters). Once a preselected increment (such as of time) is achieved, the sequence operates to update data in the exemplary non-volatile memory device. Such is represented by Event  2  in present FIG.  3 . In such instance, the exemplary new data value (represented by “20”) is copied to a default page since both pages are initially equal (i.e., both are zero). The actual write step of the new data value to the Page 1 data is represented as exemplary Event  3 . 
     During a successive storage event, the page values will be tested so as to copy the new value to the smaller page value. In this example, the Page 2 data has persisted with the initial value zero. Hence, at exemplary Events  4  and  5 , it is determined that Page 2 contains the lower value data, such that the exemplary further new data value (“33”) is updated to the Page 2 data per Event  5 . The Page 1 data, as illustrated, continues “downward” as yet unchanged through the exemplary sequence. 
     Such operational steps, procedures, or algorithm continues to function until either a data rollover or reset occurs, as represented by exemplary Event  8  of FIG.  3 . In other words, the data rollover condition can occur whenever the meter has achieved the full available value represented by its register. A reset condition is often times triggered by a meter operator or reader at periodic points in the meter life, for a variety of potential maintenance or other reasons not directly related to the determination of data. For whatever reason, exemplary Event  8  of FIG. 3 represents the presentation of such a “new” rollover or reset condition data (“00”). 
     Through operation of the process or algorithm described in detail with reference to present FIG. 1, such a reset or rollover condition is determined by the newer value being less than (or equal to) the last page as written to. In such instance, the exemplary new data value is then written to both pages, as represented by Event  9 , wherein the data for Page 1 and Page 2 is set to the then new data value (“00). See also operational step pairs  46  and  48  and operational step pairs  50  and  52  of present FIG. 1, and their corresponding description. 
     FIG. 3 further represents that any page with a failed checksum will cause a write to occur to both pages. All such examples of such instances are represented by various Event X&#39;s. See, also, the comment descriptions in the right hand column of FIG. 3, showing in Event “X+1” that Page 1 CRC failed, so there is a write to both pages. Again in a subsequent example denominated as Event “X+”, it is noted that Page 2 CRC failed, resulting in a write to both pages. In such exemplary embodiment, it is to be understood by those of ordinary skill in the art that the referenced “CRC” failure involves what is known as cyclic redundancy checksum, a method of checking data bits, a procedure known to those of ordinary skill in the art without discussion of additional detail, and forming no particular aspect of the subject invention. The CRC method disclosed herewith is strictly by way of example and does not in any way limit the broader aspects of the subject invention. 
     As a further aspect of exemplary embodiments of the present invention, it is to be understood that the checksum algorithm or process steps take place before the page comparisons so as to determine data corruption on the pages. In such manner, proper action can be taken to recover or to flag errors, all as referenced in detail within present FIG.  1  and its corresponding description. 
     FIG. 4 represents various examples of reading data from an exemplary non-volatile memory device. The examples follow various specifics represented in present FIG.  1  and the corresponding discussion associated therewith. 
     A checksum test is used together with a determination of the higher stored value of the two pages for deciding which value of data will be retrieved. As represented specifically by exemplary Event Nos.  1  through  4  of present FIG. 4, both a valid checksum test and a determination of the higher of the two page values result in an exemplary new data value being read out from either Page 1 or Page 2 data. 
     Specifically, in exemplary Event  1  of FIG. 4, after a good checksum is determined and after it is found that Page 1 data values are greater than those of Page 2, the exemplary Page 1 data (“28”) is read into the new data value, per Event  2  of FIG.  4 . In exemplary Event  3  of FIG. 4, again after a good checksum determination, if the data value of Page 1 is found to be equal to or less than that of Page 2 (see Event  3  of FIG.  4 ), then the exemplary data of Page 2 (“34”) is read into the new data value (see Event  4  of FIG.  4 ). 
     Events  5  through  8  of FIG. 4 represent various exemplary operational determinations in accordance with the subject invention if a single invalid checksum is detected, which means that the other page is determined to have a good checksum. In such instance, as referenced above, the error value is set equal to “1” or is flagged, and the page corresponding with the good checksum value is used for reading purposes. 
     As referenced above, the juxtaposition of various respective examples as shown in FIG. 4 is not necessarily meant to indicate that operations in actual practice would occur in such sequence, beyond the context of the discussion and description in the present specification. 
     More specifically, Event  5  of FIG. 4 shows by example that the Page 1 CRC determination is found to be bad, resulting per Event  6  of FIG. 4 in the Page 2 data (“34”) being brought forward as new data value from a read operation. In exemplary Event  7  of FIG. 4, the Page 2 CRC is determined to be bad, such that the value per the Page 1 data (“28”) is brought into the new data value (see Event  8  of FIG.  4 ). 
     Events  9  and  10  of FIG. 4 represent a situation in which both checksums are determined to be invalid. In such instance, no read is made and an error value (a “fatal” error) of “2” may be flagged. As shown in Event  9  of FIG. 4 specifically (per the right hand column comment descriptions), both CRC determinations are found to be bad. Per Event  10  of FIG. 4, no read occurs and a fatal error is flagged. 
     FIG. 5 broadly represents in block diagram schematic form various hardware aspects of the subject invention (including various computer software and hardwired implementations thereof). 
     In the example of an electricity meter, such a meter or metering device generally  92  may receive power input generally  94  from a power grid or power distribution system represented by power lines generally  96 . Otherwise incorporated within metering device  92  or associated therewith may be an electronic metrology package or processing device portion generally  98 . As understood from the present disclosure, such processing device portion  98  may include or be associated with an electronic register for outputting electricity meter quantities. Such register may not be visible, because it may use an RF output or other form of output not requiring visualization at meter  92 . 
     Further in accordance with the subject invention, a pair of memory areas  100  and  102 , respectively, may comprise Page 1 and Page 2 double buffered storage elements for practicing the subject process or algorithm. Such two pages  100  and  102  are intended as representing all various forms of non-volatile memory storage devices referenced above and their equivalents. Hence, FIG. 5 shows in broad relationship a schematic of certain basic aspects in accordance with certain embodiments of the subject invention. Such broadly defined depiction is intended as representing variations in any implementation of the subject invention, as to content and use of computer software and/or hardware devices. Those of ordinary skill in the art would be able to formulate corresponding computer software (such as microprocessor executable) for implementing the FIG. 1 flowchart and its related discussion. 
     It is to be understood by those of ordinary skill in the art that the subject memory integrity process or algorithm may be practiced in various embodiments, including various mixtures of computer software implemented devices and hardwired devices. Those of ordinary skill in the art would be able to put into practice their own selected variations of computer software and hardwired implementations of the subject invention, based on the disclosure of this application (including specification and figures thereof). All such modifications and variations are intended to come within the spirit and scope of the present invention. Likewise, the foregoing presently preferred embodiments are exemplary only, and their attendant description is likewise by way of words of example rather than words of limitation.