News Column

Patent Issued for Updating Data in a One-Time Programmable Data Storage Device

September 2, 2014



By a News Reporter-Staff News Editor at Information Technology Newsweekly -- From Alexandria, Virginia, VerticalNews journalists report that a patent by the inventors McNall, Walter Lee (Meridian, ID); Briggs, Randall D. (Boise, ID), filed on October 11, 2012, was published online on August 19, 2014.

The patent's assignee for patent number 8810846 is Marvell International Ltd. (Hamilton, BM).

News editors obtained the following quote from the background information supplied by the inventors: "The present disclosure relates to integrated circuits, and more particularly to updating data in a non-volatile data storage device.

"Integrated circuits (ICs) utilize non-volatile data storage ('memory') to store data that must be retained even if power is removed from the IC. In many applications, the data stored in the non-volatile memory is updatable by the IC. For example, a device may include an IC to tally the number of occurrences of an event (or events) through the lifetime of the device. The IC may update event occurrence data in the non-volatile memory each time the event occurs. The updated data is retained when the device is powered down and the event count can be resumed when the device is powered-up again. An example of updateable data is a printer page count, i.e., tallying the total number of pages printed through the life of a printer. The most recent printer page count must be retained when the printer is turned off or unplugged. Updateable data may also include universal serial bus (USB) endpoint data, external component identification data, and/or many other types of data.

"ICs utilize rewritable non-volatile memory to store updateable data that must be retained when the device is powered down. Examples of rewritable non-volatile memory include electrically erasable programmable read only memory (EEPROM), flash memory, and ferroelectric random access memory (FeRAM). Rewritable non-volatile memory may be incorporated into an IC when it is manufactured or may be added to a system as a discrete element. In many applications, only a relatively small amount of rewritable non-volatile memory (e.g., 2 Kbytes) is required to store all of the updateable data through the device's life. However, extra processing steps are required to incorporate even a small amount of rewritable non-volatile memory into an IC. These extra processing steps often increase the cost of the IC disproportionately. Adding rewritable non-volatile memory as a discrete element in a system is also expensive and is often not an option. An improved approach is desirable."

As a supplement to the background information on this patent, VerticalNews correspondents also obtained the inventors' summary information for this patent: "The following embodiments relate to systems and methods of updating data stored in a one-time programmable (non-rewritable) non-volatile storage device ('OTP'). The OTP is segmented so that updated data may be written to unused areas. Valid data may be differentiated from stale data in the OTP using a valid data recognition technique.

"In a preferred embodiment, an apparatus comprises a one-time programmable (OTP) data storage device and a processor. The processor updates an allocated memory area in the data storage device by writing updated data to unused areas in the allocated memory area. The processor also distinguishes updated data from out-of-date data previously stored in the allocated memory area. The processor may: distinguish updated data from the out-of-date data by locating a first unblown bit in the allocated memory area; locate the first unblown bit in the allocated memory area by incrementing a pointer value and determining whether respective corresponding bits are unblown until the pointer value corresponds to an unblown bit; distinguish the updated data from the out-of-date data by locating a first unblown bit in an index in the data storage device; update the index by locating a first unblown bit in the index and blowing the unblown bit when the allocated memory area is updated by writing the updated data to an unused data block; and/or determine whether the allocated memory area includes unused data blocks based on an index of bits, wherein each bit in the index corresponds to a respective data block. The index may include a plurality of bits corresponding to respective data blocks in the allocated memory area. Examples of data that may be updated include a printer page count, a printer identification, universal serial bus endpoint data, and printer cartridge identification data. Any other type of updatable data may be updated. If the updated data is a printer page count, the processor may update the allocated memory area by blowing one bit in the allocated memory area for each page that is printed. If the updated data is printer cartridge identification data, the processor may update the allocated memory area by writing updated data to an unused memory block in the allocated memory area. The processor may identify valid printer cartridge identification data based on an index of bits, wherein each bit corresponds to a respective memory block. The apparatus may further comprise an application specific integrated circuit having the processor and the OTP non-rewritable data storage device. The processor may be selected from a group consisting of: a hardware processor, a firmware processor, and a software processor.

"A method comprises updating an allocated memory area in a one-time programmable (OTP) data storage device by writing updated data to unused areas of the allocated memory area, and distinguishing the updated data from out-of-date data previously stored in the allocated memory area. The method may also include one or more of the following acts: distinguishing the updated data from the out-of-date data by locating a first unblown bit in the allocated memory area; locating the first unblown bit in the allocated memory area by incrementing a pointer value and determining whether respective corresponding bits are unblown until the pointer value corresponds to an unblown bit; distinguishing the updated data from the out-of-date data by locating a first unblown bit in an index in the data storage device; updating the index by locating a first unblown bit in the index and blowing the unblown bit when the allocated memory area is updated by writing the updated data to an unused data block; and/or determining whether the allocated memory area includes unused data blocks based on an index of bits, wherein each bit corresponds to a respective data block. The index may include a plurality of bits that correspond to respective data blocks in the allocated memory area. Examples of data that may be updated include a printer page count, a printer identification, universal serial bus endpoint data, and printer cartridge identification data. Any other type of updatable data may be updated. If the updated data is a printer page count, the method may further include updating the allocated memory area by blowing one bit in the allocated memory area for each page that is printed. If the updated data is printer cartridge identification data, the method may include updating the allocated memory area by writing the updated data to an unused memory block in the allocated memory area and identifying valid printer cartridge identification data based on an index of bits, wherein each bit corresponds to a respective memory block.

"An apparatus comprises one or more of: means for updating an allocated memory area in a one-time programmable (OTP) data storage device; means for distinguishing the updated data from out-of-date data previously stored in the allocated memory area; means for distinguishing the updated data from the out-of-date data by locating a first unblown bit in the allocated memory area; means for locating the first unblown bit in the allocated memory area by incrementing a pointer value and determining whether respective corresponding bits are unblown until the pointer value corresponds to an unblown bit; means for distinguishing the updated data from the out-of-date data by locating a first unblown bit in an index in the data storage device; means for updating the index by locating a first unblown bit in the index and blowing the unblown bit when the allocated memory area is updated by writing the updated data to an unused data block; and/or means for determining whether the allocated memory area includes unused data blocks based on an index of bits, wherein each bit corresponds to a respective data block.

"A computer readable storage medium has processor executable instructions to: update an allocated memory area in a data storage device by writing updated data to unused areas of the allocated memory area; distinguish updated data from out-of-date data previously stored in the allocated memory area; distinguish updated data from the out-of-date data by locating a first unblown bit in the allocated memory area; locate the first unblown bit in the allocated memory area by incrementing a pointer value and determining whether respective corresponding bits are unblown until the pointer value corresponds to an unblown bit; distinguish the updated data from the out-of-date data by locating a first unblown bit in an index in the data storage device; update the index by locating a first unblown bit in the index and blowing the unblown bit when the allocated memory area is updated by writing the updated data to an unused data block; and/or determine whether the allocated memory area includes unused data blocks based on an index of bits, wherein each bit in the index corresponds to a respective data block.

"Other systems, methods, and features of the invention will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the following claims.

"The preferred embodiments will now be described with reference to the attached drawings."

For additional information on this patent, see: McNall, Walter Lee; Briggs, Randall D.. Updating Data in a One-Time Programmable Data Storage Device. U.S. Patent Number 8810846, filed October 11, 2012, and published online on August 19, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8810846.PN.&OS=PN/8810846RS=PN/8810846

Keywords for this news article include: Information Technology, Marvell International Ltd, Information and Data Storage.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Information Technology Newsweekly


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters