Current printing systems typically include one or more replaceable printer components, such as inkjet cartridges, inkjet printhead assemblies, toner cartridges, ink supplies, etc. Some existing systems provide these replaceable printer components with on-board memory to communicate information to a printer about the replaceable component, such as ink fill level, marketing information, etc.
A printer in which a replaceable printer component is installed may be turned off at any time. If the printer is turned off while data is being written to the on-board memory of the replaceable printer component, the data stored in the on-board memory may be corrupted.
For these and other reasons, a need exists for the present invention.
The accompanying drawings are included to provide a further understanding of embodiments and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments and together with the description serve to explain principles of embodiments. Other embodiments and many of the intended advantages of embodiments will be readily appreciated as they become better understood by reference to the following detailed description. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. In this regard, directional terminology, such as “top,” “bottom,” “front,” “back,” “leading,” “trailing,” etc., is used with reference to the orientation of the Figure(s) being described. Because components of embodiments can be positioned in a number of different orientations, the directional terminology is used for purposes of illustration and is in no way limiting. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
It is to be understood that the features of the various exemplary embodiments described herein may be combined with each other, unless specifically noted otherwise.
In one embodiment, printing system 104 includes a printer controller 116 and a replaceable printer component 108. Replaceable printer component 108 includes a memory device 109. In one embodiment, the data stored in memory device 109 is atomically updated in response to a write request from printer controller 116. By atomically updating the data stored in memory device 109, the data in memory device 109 is either updated successfully or remains unchanged. Therefore, even if memory device 109 loses power during a write operation, the data stored within memory device 109 is not corrupted.
Printer controller 116 controls the operation of printing system 104 and, as such, receives data and/or control signals from host 102. Printer controller 116 communicates with host 102 via a communication link 106. Communication link 106 includes, for example, an electrical, optical, infrared, or other suitable information transfer path between printer controller 116 and host 102.
Replaceable printer component 108 includes a component of printing system 104 that is insertable in and removable from printing system 104. In one embodiment, replaceable printer component 108 includes a consumable component that is disposed of and replaced at an end of a useful life thereof. An example of such a consumable component includes an ink container or a toner cartridge that contains a supply of marking material for printing system 104. The marking material is deposited on print medium 118 by printing system 104 and depleted during a useful life of the ink container or toner cartridge. As such, the ink container or toner cartridge is disposed of and replaced at an end of a useful life thereof or is remanufactured and reused.
In another embodiment, replaceable printer component 108 includes a printing component that is readily replaced in printing system 104. Examples of such a printing component include a printhead that selectively deposits ink on print medium 118 in response to control signals from printer controller 116 or a printer cartridge that includes a printhead and an ink supply. Thus, replaceable printer component 108 may include an ink container, a printhead, or a printer cartridge if, for example, printing system 104 includes an inkjet printer. In addition, replaceable printer component 108 may include a toner cartridge or a developer drum if, for example, printing system 104 includes a laser printer. Further, replaceable printer component 108 may include a peripheral device of printing system 104, such as an Ethernet card, a duplexer, a paper finisher (e.g., stapler, hole punch, etc.), or another suitable device.
Printer controller 116 and replaceable printer component 108 communicate with each other via a communication link 114. Communication link 114 facilitates information transfer between printer controller 116 and replaceable printer component 108 when replaceable printer component 108 is installed in printing system 104. Communication link 114 includes, for example, an electrical, optical, infrared, or other suitable information transfer path between replaceable printer component 108 and printer controller 116.
Replaceable printer component 108 includes a memory device 109 that stores information for replaceable printer component 108 and/or printing system 104. Memory device 109 includes a non-volatile memory (NVM) 110 and logic 111. In one embodiment, logic 111 is a logic circuit or embedded software running on a processor. In one embodiment, non-volatile memory 110 is a 256-byte or another suitably sized non-volatile memory, such as an EEPROM, a FLASH, or another suitable memory. In one embodiment, non-volatile memory 110 of memory device 109 stores, for example, information that is specific to replaceable printer component 108 and/or information that is applicable to printing system 104. In addition, non-volatile memory 110 can have information to be used by printing system 104 stored therein or can record information for printing system 104. In one embodiment, information that may be stored in non-volatile memory 110 includes operational and/or non-operational parameters for replaceable printer component 108 and/or printing system 104.
In one embodiment, replaceable printer component 108 includes a communication link 112 that electrically couples or communicatively couples memory device 109 with communication link 114 and, therefore, with printer controller 116 when replaceable printer component 108 is installed in printing system 104. As such, when replaceable printer component 108 is installed in printing system 104, memory device 109 communicates with printer controller 116 via communication links 112 and 114. Thus, communication links 112 and 114 include, for example, electrical couplings or connections such as electrical contacts or pins that mate with corresponding electrical nodes or receptacles, respectively.
With replaceable printer component 108 installed in printing system 104, printer controller 116 communicates with memory device 109 through communication links 112 and 114. Logic circuit 111 of memory device 109 atomically updates data stored in non-volatile memory 110 in response to a write request from printer controller 116. In one embodiment, the write request includes an address, data, and a data length indicating the length of the data to be stored at the address. Logic circuit 111 independently from printer controller 116 ensures that the write request is either completed successfully or fails such that the data stored in non-volatile memory 110 is not corrupted. If memory device 109 loses power at any time during the updating of data stored in non-volatile memory 110, logic circuit 111 returns the data stored in non-volatile memory 110 to its pre-write request state upon power up of memory device 109.
Portions of non-volatile memory 110 are reserved for storing information used to perform the atomic updates. The reserved portions store a write state (WRITE_STATE) value, a write address (WRITE_ADDR) value, a write length (WRITE_LEN) value, and write backup (WRITE_BACKUP) data. The write state value stores a first state (WRITING_UPDATE) if an atomic update is in progress and stores a second state (DONE) if an atomic update is not in progress. The write address value stores the address received in a write request. The write length value stores the data length received in a write request. In one embodiment, the data length is up to 64-bytes. The write backup data stores a backup copy of the data stored in non-volatile memory 110 at the address that is to be updated in response to a write request. In one embodiment, the write backup area of non-volatile memory 110 is up to 64-bytes.
In another embodiment, the write backup area is set to twice the size of a page of non-volatile memory 110 and the maximum length (LEN) of the data to be updated is set to the size of a page (PAGE_SIZE) of non-volatile memory 110. In one embodiment, writing to non-volatile memory 110 involves erasing a page by setting all the bits to logic “1” and then selectively programming the bits that should be logic “0”. For example, for a page size of 64-bytes where 40-bytes are to be written at address (ADDR) 30, two pages are first erased before the data is written. Therefore, the write backup area of non-volatile memory 110 is two pages in this embodiment.
The write backup address (backup_addr), which is used in place of the ADDR value in this embodiment, and length (backup_len), which is used in place of the LEN value in this embodiment, are calculated as follows:
Therefore, any write up to the page size irrespective of alignment and the start address is atomic.
At 154, in response to the write request, logic circuit 111 copies the received data length (LEN) of data currently stored in non-volatile memory 110 at the received address (ADDR) to the write backup (WRITE_BACKUP) data area of non-volatile memory 110. At 156, logic circuit 111 writes the received data length (LEN) to the write length (WRITE_LEN) value stored in non-volatile memory 110. At 158, logic circuit 111 writes the received address (ADDR) to the write address (WRITE_ADDR) value stored in non-volatile memory 110.
At 160, logic circuit 111 sets the write state (WRITE_STATE) value stored in non-volatile memory 110 to the first state (WRITING_UPDATE). In one embodiment, logic circuit 111 uses a suitable error detection scheme or code when storing the write state such that a corrupted write state value can be detected. In another embodiment, the write state is encoded using a forward error correction scheme or code. For example, in one embodiment, the write state is stored with a cyclic redundancy check (CRC). At 162, logic circuit 111 updates the received data length (LEN) of data stored at the received address (ADDR) in non-volatile memory 110 with the received data (DATA). At 164, logic circuit 111 sets the write state (WRITE_STATE) value stored in non-volatile memory 110 to the second state (DONE) indicating that the requested write operation completed successfully.
Printing system 104 may be turned off at any time during the write operation described above. If printing system 104 is turned off at any time during the write operation, replaceable printer component 108 and therefore memory device 109 loses power and the write operation is interrupted. If the write operation is interrupted, the state of the data stored in non-volatile memory 110 is unknown. To prevent the data stored in non-volatile memory 110 from remaining in an unknown state, upon power up of memory device 109, logic circuit 111 determines whether a write operation was interrupted. Logic circuit 111 then acts accordingly based on the determination as described below with reference to
If the write state value is valid, then at 188 logic circuit 111 determines whether the write state value is set to the first state (WRITING_UPDATE) or the second state (DONE). If the write state value is set to the second state (DONE), then the power up sequence for memory device 109 is done at 194. If the write state value is set to the first state (WRITING_UPDATE), then at 190 logic circuit 111 reads the write length (WRITE_LEN) value and the write address (WRITE_ADDR) value stored in non-volatile memory 110. Logic circuit 111 copies the write length value of data stored in the write backup (WRITE_BACKUP) data area of non-volatile memory 110 to the write address. Therefore, the data stored at the write address is restored to its pre-write request state. At 192, logic circuit 111 sets the write state (WRITE_STATE) value stored in non-volatile memory 110 to the second state (DONE). The power up sequence for memory device 109 is then done at 194.
Embodiments provide a replaceable printer component including a memory device. Memory device embodiments include a memory and a logic circuit to atomically update data stored in the memory in response to a write request. The logic circuit ensures that a requested write operation is either completed successfully or that the state of the data stored in the memory is maintained or returned to its pre-write request state. Therefore, if memory device embodiments lose power during a write operation, the data stored in the memory does not become corrupted.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
4961088 | Gilliland et al. | Oct 1990 | A |
5610635 | Murray et al. | Mar 1997 | A |
5699091 | Bullock et al. | Dec 1997 | A |
5699553 | Iino et al. | Dec 1997 | A |
5812156 | Bullock et al. | Sep 1998 | A |
5835817 | Bullock et al. | Nov 1998 | A |
5930553 | Hirst et al. | Jul 1999 | A |
6019461 | Yoshimura et al. | Feb 2000 | A |
6039430 | Helterline et al. | Mar 2000 | A |
6126265 | Childers et al. | Oct 2000 | A |
6239879 | Hay | May 2001 | B1 |
6421137 | Endo | Jul 2002 | B1 |
6459860 | Childers | Oct 2002 | B1 |
6480935 | Carper et al. | Nov 2002 | B1 |
6738903 | Haines | May 2004 | B1 |
6817693 | Phillips et al. | Nov 2004 | B2 |
7043623 | Chen et al. | May 2006 | B2 |
7234792 | Forman | Jun 2007 | B2 |
7254592 | Matero | Aug 2007 | B1 |
7620660 | Kodavalla et al. | Nov 2009 | B2 |
7971022 | Kim et al. | Jun 2011 | B2 |
20020060703 | Tsukada | May 2002 | A1 |
20040080775 | Owen et al. | Apr 2004 | A1 |
20040090832 | Asauchi | May 2004 | A1 |
20050212847 | Tsuji | Sep 2005 | A1 |
20050216530 | Meller et al. | Sep 2005 | A1 |
20070005664 | Kodavalla et al. | Jan 2007 | A1 |
20070211291 | Walmsley | Sep 2007 | A1 |
20090313501 | Hallivuori | Dec 2009 | A1 |
Number | Date | Country |
---|---|---|
1289966 | Apr 2001 | CN |
1482000 | Mar 2004 | CN |
1677571 | Oct 2005 | CN |
1020020018156 | Mar 2002 | KR |
1020030072612 | Sep 2003 | KR |
WO-2006138407 | Dec 2006 | WO |
Number | Date | Country | |
---|---|---|---|
20150202906 A1 | Jul 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12994255 | US | |
Child | 14673536 | US |