Software refreshed memory device and method
12 claims: 2 independent, 10 dependent
- 1A method of refreshing a memory cell (170) of a memory array (160), the method comprising:for a plurality of memory cells of said memory array (160), determining whether each individual memory cell of said plurality of memory cells requires a refresh;determining whether a given cell (170) requiring a refresh is in a written state or in an erased state;and if said given cell (170) is in said written state, individually refreshing said given cell (170) by issuing a refresh write instruction to said given cell;characterised in that said refresh write instruction is the same instruction during the refresh operation and during the write operation;waiting for a first period of time since said given cell (170) was refreshed;and determining whether said given cell (170) requires another refresh.
- 2The method of Claim 1, further comprising, of said given cell (170) is in said erased state, refreshing said given cell by issuing a refresh erase instruction to said given cell (170).
- 7Apparatus comprising a processor (120) and memory device (110) comprising a plurality of cells that must be periodically refreshed, wherein each of said plurality of cells in a written state is configured to be individually refreshed via a write instruction received from the processor (120), wherein said processor (120) is configured to determine whether each individual cell (170) of said plurality of cells needs to be refreshed, wherein said write instruction is the same instruction during a refresh operation and during a write operation, and wherein said processor (120) is also configured to wait a period of time since a first individual memory cell (170) was refreshed and to determine whether said first individual memory cell (170) was refreshed and to determines whether said first individual memory cell (170) needs to be refreshed again.
Independent claims3
60 paragraphs, as filed
Background of the Invention
Field of the Invention
0001This invention relates generally to computer memory devices and more particularly to memory devices that must be periodically refreshed to avoid losing data.
Description of the Related Art
0002Certain memory devices can maintain the information stored in the memory indefinitely, even when the power to the memory device is turned off. These memory devices are known as non-volatile memory devices. Some examples of non-volatile memory devices include magnetic random access memories (MRAMs), erasable programmable read only memories (EPROMs), and variations thereof.
0003Other memory devices require power to maintain the information stored in the memory. These memory devices, which are known as volatile memory devices, must be periodically refreshed to avoid losing data. One common example of a volatile memory device is a dynamic random access memory (DRAM), wherein voltages stored in capacitors represent digital bits of information. Because the voltage stored in a capacitor dissipates over time, the capacitors of a DRAM must be periodically recharged to maintain the information stored in the DRAM.
0004Conventional volatile memory devices include a plurality of individual memory cells configured in an array, which typically comprises a configuration of intersecting rows and columns. To maintain the information stored in a conventional volatile memory device, each memory cell in the array is typically refreshed at least several times per second. For example, in some conventional DRAMs, each memory cell must be refreshed about once every 64 milliseconds to avoid losing the information stored in the DRAM. Accordingly, conventional volatile memory devices typically include refresh circuitry to ensure that every memory cell is refreshed at least as often as necessary to avoid losing data, which is commonly at least several times per second. <patcit id="pcit0001" dnum="US5574684A"><text>US-5.574.684</text></patcit> describes a refresh method for a flash memory checking whether the threshold voltage of a cell is between two voltage limits (Program W and Erase W) and if this situation occurs, refreshing the cell by programming a zero ("0") by means of a write operation.
Summary of the Invention
0005In one embodiment, a method of refreshing a cell is specified in claim 1.
0006In another aspect a memory device is specified in claim 7.
Brief Description of the Drawings
0007<figref idref="f0001">Figure 1</figref> illustrates a computer system that includes a volatile memory device.
0008<figref idref="f0002">Figure 2</figref> illustrates a computer system having a software refreshed memory device in accordance with one embodiment of the present invention.
0009<figref idref="f0003">Figure 3</figref> illustrates a method of refreshing a memory cell in accordance with one embodiment of the present invention.
0010<figref idref="f0004">Figure 4</figref> illustrates a method of refreshing a plurality of memory cells in accordance with one embodiment of the present invention.
0011<figref idref="f0005">Figure 5</figref> illustrates a method of refreshing a plurality of memory cells in accordance with one embodiment of the present invention.
Detailed Description
0012<figref idref="f0001">Figure 1</figref> illustrates a computer system 100 that includes a conventional volatile memory device 110. The computer system 100 also comprises a processor 120 coupled to the memory device 110 via a bus 130. The memory device 110 comprises an address/data/control module 140 and memory refresh circuitry 150, both of which are coupled to the processor 120 via the bus 130. The memory device 110 also comprises a memory array 160 coupled to the address/data/control module 140 via line 200 and to the memory refresh circuitry 150 via line 210. Those of ordinary skill in the art will understand that lines 200 and 210 may be implemented in the memory device 110 as part of a single physical bus. The memory array 160 comprises a plurality of memory cells 170; which are interconnected by a plurality of intersecting rows 180 and columns 190.
0013To perform operations in the memory device 110, the processor 120 transmits certain signals to the memory device 110 via the bus 130. For example, to read data stored at a particular memory address, the processor 120 issues a read command, together with the memory address, to the bus 130. The address/data/control module 140 receives and processes the read command by accessing the memory array 160 via line 200. Specifically, the address/data/control module 140 generates a read control signal on line 200 and addresses the desired memory cell 170 by activating the appropriate row 180 and column 190. The address/data/control module 140 then receives the data stored at the addressed memory cell 170 via line 200, and passes the data to the processor 120 via the bus 130.
0014In addition, to write data to a particular memory address, the processor 120 issues a write command, together with the memory address and the data to be stored, to the bus 130. The address/data/control module 140 receives and processes the write command by generating a write control signal on line 200 and addressing the desired memory cell 170, as described above. The address/data/control module 140 then passes the data to be stored to the addressed memory cell 170 via line 200.
0015Because the data stored in the memory cells 170 dissipates over time, the memory cells 170 must be periodically refreshed to avoid losing the data stored in the memory device 110. The primary function of the memory refresh circuitry 150 is to perform these periodic memory refresh operations. When the memory refresh circuitry 150 determines that it is necessary to perform a memory refresh operation, the memory device 110 is made unavailable to the processor 120 to perform other operations, such as a read operation or a write operation.
0016To perform a memory refresh operation, the memory refresh circuitry 150 typically sequentially addresses the rows 180 of the memory array 160. When a given row 180 of the array 160 is addressed, the memory refresh circuitry generates a refresh control signal on line 210, which causes all of the memory cells 170 in the addressed row 180 to be refreshed simultaneously. By refreshing a large number of memory cells 170 simultaneously, the memory refresh circuitry 150 advantageously reduces the amount of time required to perform a memory refresh operation, thereby reducing the amount of time that the memory device 110 is unavailable to the processor 120 to perform other operations.
0017Because the memory device 110 is unavailable to perform other operations during a memory refresh operation, it is desirable to time memory refresh operations such that they occur at times when they will not conflict with requests from the processor 120. Therefore, the memory refresh circuitry 150 is often configured to identify time periods when the processor 120 is not likely to issue requests to the memory device 110, and to perform memory refresh operations during these identified time periods. On the other hand, because power is required to perform a memory refresh operation, it is desirable to minimize the number of memory refresh operations performed. Thus, the memory refresh circuitry 150 is also often configured to perform memory refresh operations as infrequently as possible, while preserving the data stored in the memory device 110.
0018Nevertheless, to avoid losing data stored in conventional volatile memory devices 110, the memory refresh circuitry 150 must perform memory refresh operations frequently, often many times per second. For example, in some embodiments, each memory cell 170 must be refreshed at least about once every 64 milliseconds to avoid losing data. In these embodiments, to avoid losing the information stored in the memory device 110, the memory refresh circuitry 150 must ensure that every memory cell 170 is refreshed at least more often than about 15 times per second.
0019<figref idref="f0002">Figure 2</figref> illustrates a computer system 250 having a software refreshed memory device 260 in accordance with one embodiment of the present invention. The computer system 250 also comprises a processor 270 coupled to the memory device 260 via a bus 280. The computer system 250 further comprises a set of memory refresh instructions 290, which are implemented in software that can be executed by the processor 270. The memory device 260 comprises an address/data/control module 300 which is coupled to the processor 270 via the bus 280. The memory device 260 also comprises a memory array 310 coupled to the address/data/control module 300 via line 350. The memory array 310 comprises a plurality of memory cells 320, which are interconnected by a plurality of intersecting rows 330 and columns 340.
0020The computer system 250 illustrated in <figref idref="f0002">Figure 2</figref> can perform memory read and write operations using the same methods described above in connection with <figref idref="f0001">Figure 1</figref>. In addition to these methods, however, the computer system 250 can perform memory read and write operations in a variety of other ways that are well-known to those of ordinary skill in the art.
0021In some embodiments, the memory cells 320 of the software refreshed memory device 260 comprise volatile memory cells, which are preferably more stable than conventional DRAM memory cells. For example, in one embodiment, the memory cells 320 can avoid losing data even though the time interval between successive memory refresh operations is about 0.1 seconds. In another embodiment, the time interval between successive memory refresh operations can be about one second. In yet another embodiment, the time interval between successive memory refresh operations can be about one hour. In yet another embodiment, the time interval between successive memory refresh operations can be about one day to one week.
0022In some embodiments, the memory cells 320 of the software refreshed memory device 260 comprise programmable conductor random access memory (PCRAM) cells, which are described in <patcit id="pcit0002" dnum="US5761115A"><text>U.S. Patent Nos. 5,761,115</text></patcit>, <patcit id="pcit0003" dnum="US5896312A"><text>5,896,312</text></patcit>, <patcit id="pcit0004" dnum="US5914893A"><text>5,914,893</text></patcit>, <patcit id="pcit0005" dnum="US6084796A"><text>6,084,796 to Kozicki et al</text></patcit>. ("the Kozicki patents"), in <patcit id="pcit0006" dnum="US6348365B"><text>U.S. Patent No. 6,348,365 to Moore et al</text></patcit>. ("the Moore patent"), and in the following <patcit id="pcit0007" dnum="US6858482B"><text>U.S. patent Nos. 6.858.482</text></patcit> entitled "Method of Manufacture of Programmable Conductor Memory" filed April 10, 2002, <patcit id="pcit0008" dnum="US6864500B"><text>6.864.500</text></patcit> entitled "Programmable Conductor Memory Cell Structure and Method Therefor" filed April 10, 2002, and <patcit id="pcit0009" dnum="US6855975B"><text>6.855.975</text></patcit> entitled "Thin Film Diode Integrated with Chalcogenide Memory Cell" filed April 10, 2002. As discussed in more detail in these references, a PCRAM cell comprises a pair of electrodes and can exist in one of two possible states. In the first state, an electrical short exists between the electrodes of the PCRAM cell In the second state, an open circuit exists between the electrodes of the PCRAM cell.
0023Some embodiments of a PCRAM cell comprise a glass ion conductor, such as a chalcogenide-metal ion glass, and two electrodes disposed at the surface of the glass ion conductor and spaced a distance apart from one another. In one embodiment, a PCRAM cell comprises germanium selenide with a Group IV metal (e.g., silver) dissolved therein, such as Ag/Gc<sub>3</sub>Se<sub>7</sub>. Preferably, one of the electrodes comprises a Group IV metal, and the glass element of the PCRAM cell contains the same metal.
0024In operation, when a voltage having a first polarity is applied across the electrodes of a PCRAM cell, a conductive path is created between the electrodes along the sidewalls of the via in which the glass element is formed. When a voltage having the opposite polarity is applied across the electrodes, the metal ions re-dissolve into the cell body, thereby causing the conductive path to disappear. The presence or absence of a conductive path within a PCRAM cell can be detected by measuring the electrical resistance between the electrodes. When a conductive path is present, an electrical short exists between the electrodes, and the resistance between the electrodes is low (<i>e.g</i>., on the order of milliohms). On the other hand, when no conductive path is present, an open circuit exists between the electrodes, and the resistance between the electrodes is high (<i>e.g</i>., on the order of megaohms).
0025The features of <figref idref="f0002">Figure 2</figref> are referenced throughout the discussion below of operation processes.
0026Typically, the memory cells 320 of the memory device 260 are capable of existing in one of two states, <i>i.e</i>., a "written" state or an "erased" state. For example, if a memory cell 320 comprises a capacitor capable of holding a charge, the presence of a charge in the capacitor would correspond to the written state, and the absence of a charge in the capacitor would correspond to the erased state. Similarly, if a PCRAM cell acts as a memory cell 320, the presence of a conductive path between the electrodes would correspond to the written state, while the absence of a conductive path between the electrodes would correspond to the erased state. Those of ordinary skill in the art will understand that, in general, the presence of an element of interest within a memory cell 320 will correspond to the written state, whereas the absence of an element of interest will correspond to the erased state.
0027As discussed above in connection with <figref idref="f0001">Figure 1</figref>, when a memory cell 170 of a conventional volatile memory device 110 is placed in a particular state, the memory cell 170 remains in the given state for a relatively short period of time, such as, for example, about 64 milliseconds. Because such conventional memory cells 170 retain their assigned states for such a short time period, each memory cell 170 must be refreshed often, such as, for example, at least more often than about 15 times per second.
0028By contrast, when a memory cell 320 of the software refreshed memory device 260 illustrated in <figref idref="f0002">Figure 2</figref> is placed in a particular state, the memory cell 320 advantageously remains in the given state for a relatively long period of time. For example, in some embodiments, each memory cell 320 can maintain a given state for a period of seconds, minutes, hours, days, weeks, or longer. Accordingly, the data stored in the memory device 260 can be preserved while performing memory refresh operations less frequently, such as, for example, about once every few weeks, rather than several times per second.
0029Because memory refresh operations can occur less frequently, the computer system 250 can advantageously perform these memory refresh operations by executing a set of memory refresh instructions 290 implemented in software, rather than in hardware. For example, in some embodiments, the memory refresh instructions 290 constitute part of the operating system of the computer system 250.
0030By implementing the memory refresh instructions 290 in software, rather than in hardware, the memory device 260 can advantageously be simplified. For example, the need for the memory refresh circuitry 150 and for a unique refresh control signal on line 210, as illustrated in <figref idref="f0001">Figure 1</figref>, are advantageously eliminated. Another advantage of implementing the memory refresh instructions 290 in software, rather than in hardware, is that the processor 270 (<figref idref="f0002">Figure 2</figref>) can perform more sophisticated algorithms, as compared to the memory refresh circuitry 150 (<figref idref="f0001">Figure 1</figref>), for determining when to perform a memory refresh operation.
0031<figref idref="f0003">Figure 3</figref> illustrates a method of refreshing a memory cell 320 (<figref idref="f0002">Figure 2</figref>) in accordance with one embodiment of the present invention. In a first step 400, the process begins. In a next step 402, the processor 270 reads the state of the memory cell 320. The state of the memory cell 320 is assigned a logical value, which corresponds to a digital bit of data. For example, in some embodiments, the written state of a memory cell 320 may correspond to a logical "1", while the erased state of the memory cell 320 corresponds to a logical "0". In some alternative embodiments, on the other hand, the written state of a memory cell 320 may correspond to a logical "0", while the erased state of the memory cell 320 corresponds to a logical "1".
0032In a step 404, the processor 270 determines whether the data bit stored in the memory cell 320 is a "1" or a "0". If the data bit is a "1", then, in a step 406, the processor 270 writes a "1" to the memory cell 320. For example, if a "1" corresponds to the written state, then, during step 406, the processor 270 issues a "write instruction" to the memory cell, i.e., a write command, is issued, and the memory cell 320 is placed in the written state. If, during step 404, the processor 270 determines that the data bit stored in the memory cell 320 is a "0", then, in a step 408, the processor 270 writes a "0" to the memory cell 320. For example, if a "0" corresponds to the erased state, then, during step 408, the processor 270 issues an "erase instruction" to the memory cell, i.e., a write command is issued, and the memory cell 320 is placed in the erased state.
0033A write instruction issued during a memory refresh operation can be the same as a write instruction issued during a standard write operation to the memory device 260. Similarly, an erase instruction issued during a memory refresh operation can be the same as an erase instruction issued during a standard write operation to the memory device 260. Accordingly, as discussed above, the need for a unique refresh control signal, which is utilized only during memory refresh operations, is advantageously eliminated. After the processor 270 completes step 406 or step 408, then, in a final step 410, the process ends.
0034In the method illustrated in <figref idref="f0003">Figure 3</figref>, it is assumed that a memory cell 320 (<figref idref="f0002">Figure 2</figref>) will not remain in the written state or in the erased state indefinitely unless it is periodically refreshed by issuing a write instruction or an erase instruction, whichever is appropriate, to the memory cell 320. In some embodiments, however, the memory cells 320 tend to revert to one particular state over time. For example, in some embodiments, the memory cells 320 tend to revert to the erased state over time. In these embodiments, when a memory cell 320 is placed in the written state, the memory cell 320 will not remain in the written state indefinitely unless it is periodically refreshed by performing a write operation on the memory cell 320. On the other hand, because the natural tendency of the memory cells 320 is to revert to the erased state, a memory cell 320 placed in the erased state will remain in this stale indefinitely, without needing to be refreshed. In these embodiments, the method illustrated in <figref idref="f0003">Figure 3</figref> can advantageously be simplified by eliminating either step 406 or step 408, whichever corresponds to the erased state.
0035Moreover, in the method illustrated in <figref idref="f0003">Figure 3</figref>, it is assumed that each memory cell 320 (<figref idref="f0002">Figure 2</figref>) is capable of existing in one of only two states. Nevertheless, in light of the present disclosure, those of ordinary skill in the art will understand how the method illustrated in <figref idref="f0003">Figure 3</figref> can be modified if the memory cells 320 are capable of existing in more than two states.
0036If a memory refresh operation comprises the method illustrated in <figref idref="f0003">Figure 3</figref>, then each memory cell 320 (<figref idref="f0002">Figure 2</figref>) is refreshed individually, rather than refreshing a large number of memory cells 320 simultaneously, as discussed above in connection with <figref idref="f0001">Figure 1</figref>. By evaluating each memory cell 320 individually, the processor 270 can determine whether each individual memory cell 320 needs to be refreshed, thereby advantageously avoiding performing unnecessary refresh operations on memory cells 320 that do not need to be refreshed.
0037<figref idref="f0004">Figure 4</figref> illustrates a method of refreshing a plurality of memory cells 320 (<figref idref="f0002">Figure 2</figref>) in accordance with one embodiment of the present invention. To perform this method, the computer system 250 maintains a counter having a value which corresponds to a particular address in the memory array 190. In a first step 450, the memory cell 320 at the address corresponding to the current value of the counter is refreshed, using the method illustrated in <figref idref="f0003">Figure 3</figref> or another suitable method. In a next step 452, the value of the counter is incremented, and in a next step 454, a timer is reset and started.
0038In a step 456, the processor 270 determines whether the timer has exceeded a predetermined minimum wait time. The appropriate value for the minimum wait time can be determined by considering a number of factors, such as, for example, the maximum time that a memory cell 320 can retain its assigned state, the time required to refresh a memory cell 320, the number of memory cells 320 to be refreshed, and the like. As discussed above, this predetermined minimum wait time can advantageously be a relatively long period of time, such as, for example, a period of seconds, minutes, hours, days, or longer. In one embodiment, the predetermined minimum wait time is a period of about one minute. In another embodiment, the minimum wait time is a period of about one hour. In yet another embodiment, the minimum wait time is a period of about one day to one week.
0039If the minimum wait time has not yet been reached, then, in a step 458, the processor 270 determines whether the memory cell 320 at the address corresponding to the current value of the counter needs to be refreshed. A number of different conditions may indicate that the memory cell 320 at the current address does not need to be refreshed. For example, as discussed above, in some embodiments, when a memory cell 320 is in the erased state, the memory cell 320 does not need to be refreshed. Moreover, if the processor 270 performs a write operation to the memory cell 320 sometime after the timer is reset and started during step 454, then the memory cell 320 does not need to be refreshed until the next memory refresh cycle.
0040If, while waiting for the timer to reach the minimum wait time, the processor 270 determines that the memory cell 320 at the current address does not need to be refreshed, then the process returns to step 452, where the value of the counter corresponding to the current memory address is incremented, and the process continues, as described above. On the other hand, If, once the timer reaches the minimum wait time, the memory cell 320 at the current address still needs to be refreshed, then the process proceeds to a step 460, where the processor 270 determines whether system resources are available to refresh the memory cell 320. In making this determination, the processor 270 may evaluate a wide variety of factors, such as, for example, the demands on the processor 270 and on the memory device 260 or other devices in the computer system 250, and the like.
0041If system resources are available, then the process returns to step 450, where the memory cell 320 at the current address is refreshed and the process continues, as described above. On the other hand, if system resources are not available to refresh the memory cell 320, then, in a step 462, the processor 270 determines whether the timer has exceeded a predetermined maximum wait time. As with the minimum wait time, the appropriate value for the maximum wait time can be determine by considering a number of factors, such as, for example, the maximum time that a memory cell 320 can retain its assigned state, the time required to refresh a memory cell 320, the number of memory cells 320 to be refreshed, and the like. As discussed above, this predetermined maximum wait time can advantageously be a relatively long period of time, such as, for example, a period of seconds, minutes, hours, days, weeks, or longer. In one embodiment, the maximum wait time is a period of about one hour. In another embodiment, the maximum wait time is a period of about one week. In yet another embodiment, the maximum wait time is a period of about one month.
0042If the maximum wait time has not yet been reached, then, in a step 464, the processor 270 determines whether the memory cell 320 at the address corresponding to the current value of the counter needs to be refreshed. As discussed above in connection with step 458, a number of different conditions may indicate that the memory cell 320 at the current address does not need to be refreshed.
0043If the memory cell 320 at the current address does not need to be refreshed, then the process returns to step 452, where the value of the counter corresponding to the current memory address is incremented, and the process continues, as described above. On the other hand, if the memory cell 320 at the current address needs to be refreshed, then the processor 270 continues to monitor whether system resources have become available to refresh the memory cell 320.
0044Once the timer reaches the predetermined maximum wait time, if system resources have not become available and the memory cell 320 at the current address still needs to be refreshed, then the process proceeds to a step 466, where the processor 270 forces certain system resources to be relinquished by other processes, such that the necessary resources become available to refresh the memory cell 320. The process then returns to step 450, where the memory cell 320 at the current address is refreshed, and the process continues, as described above.
0045In one embodiment, the process illustrated in <figref idref="f0004">Figure 4</figref> is repeatedly performed, without interruption, by the processor 270. In this embodiment, the memory refresh operation is an ongoing process, which is constantly occurring in the background of other processes being executed by the processor 270. The minimum wait time and the maximum wait time can advantageously be selected and adjusted such that each memory cell 320 is refreshed as infrequently as possible, while preserving the information stored in the memory device 310.
0046<figref idref="f0005">Figure 5</figref> illustrates another method of refreshing a plurality of memory cells 320 in accordance with one embodiment of the present invention. In a first step 500, the process begins, and in a next step 502, a timer is reset and started. As with the method illustrated in <figref idref="f0004">Figure 4</figref>, the computer system 250 of <figref idref="f0002">Figure 2</figref> maintains a counter having a value which corresponds to a particular address in the memory array 310 to perform the method illustrated in <figref idref="f0005">Figure 5</figref>. In a step 504, the memory cell 320 at the address corresponding to the current value of the counter is refreshed, using the method illustrated in <figref idref="f0003">Figure 3</figref> or another suitable method. In a next step 506, the value of the counter is incremented.
0047In a step 508, the processor 270 determines whether the memory refresh operation is complete. A number of conditions may indicate that the memory refresh operation is complete. For example, the memory refresh operation may be considered complete when each memory cell 320 in a memory array 310 has been refreshed, or when each memory cell 320 in a particular block of memory has been refreshed.
0048If the memory refresh operation is not yet complete, then, in a step 510, the processor 270 determines whether system resources are available to refresh the memory cell 320 at the address corresponding to the current value of the counter. If system resources are available, then the process returns to step 504, where the memory cell 320 at the current address is refreshed, and the process continues, as described above.
0049On the other hand, if system resources are not available to refresh the memory cell 320, then, in a step 512, the processor 270 determines whether the timer has exceeded a predetermined maximum wait time. As discussed above in connection with <figref idref="f0004">Figure 4</figref>, the appropriate value for the maximum wait time can be determined by considering a number of factors, such as, for example, the maximum time that a memory cell 320 can retain its assigned state, the time required to refresh a memory cell 320, the number of memory cells 320 to be refreshed, and the like. Moreover, as discussed above, this predetermined maximum wait time can advantageously be a relatively long period of time, such as, for example, a period of seconds, minutes, hours, days, weeks, or longer.
0050In one embodiment, the maximum wait time discussed above in connection with <figref idref="f0004">Figure 4</figref> corresponds to the maximum time that the processor 270 can wait before it forces system resources to become available to refresh an individual memory cell 320. In the process illustrated in <figref idref="f0005">Figure 5</figref>, on the other hand, the maximum wait time corresponds to the maximum time that the processor 270 can wait before it forces system resources to become available to refresh all of the remaining memory cells 320 in the memory array 310 or in the block of memory being refreshed. Thus, in one embodiment, the maximum wait time is a period of about one day. In another embodiment, the maximum wait time is a period of about one week. In yet another embodiment, the maximum wait time is a period of about one month to two months.
0051If the maximum wait time has not yet been reached, then process returns to step 510, where, as described above, the processor 270 continues to monitor whether system resources have become available to refresh the memory cell 320. Once the timer reaches the predetermined maximum wait time, if system resources have not become available, then the process proceeds to a step 514, where the processor 270 forces certain system resources to be relinquished by other processes, such that the necessary resources become available to refresh the memory cell 320. The process then returns to step 504, where the memory cell 320 at the current address is refreshed, and the process continues, as described above.
0052This process repeats until, during step 508, the processor 270 determines that the memory refresh operation is complete. Once this determination is made, the process then proceeds to a step 516, where the memory address counter is reset. In a final step 518, the process ends.
0053In one embodiment, the process illustrated in <figref idref="f0005">Figure 5</figref> is repeated by the processor 270 periodically. In this embodiment, the memory refresh operation is performed periodically, rather than being a constantly ongoing process, as described above in connection with <figref idref="f0004">Figure 4</figref>. The processor 270 can advantageously call and perform this process at regular time intervals or at irregular time intervals, depending upon the requirements of the computer system 250 and upon the longevity of the data stored in the memory cells 320.
0054The processes illustrated in <figref idref="f0003">Figures 3</figref>, <figref idref="f0004">4</figref> and <figref idref="f0005">5</figref> are merely examples of algorithms that can be implemented in the memory refresh instructions 290. Those of ordinary skill in the art will understand that these exemplary algorithms can be easily modified by adding, removing, or varying certain steps. Moreover, in light of the present disclosure, those of ordinary skill in the art will understand how to develop a wide variety of alternative algorithms.
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US5497140A | Cites | United States of America | Examiner |
| US5768193A | Cites | United States of America | Examiner |
| US6396744B1 | Cites | United States of America | Examiner |
| EP0156722A | Cites | European Patent Office (EPO) | – |
| WO0186400A | Cites | World Intellectual Property Organization (WIPO) | – |
| US4625296A | Cites | United States of America | – |
| US5148546A | Cites | United States of America | – |
| US5497140A | Cites | United States of America | – |
| US5574684A | Cites | United States of America | – |
| US5768193A | Cites | United States of America | – |
| US6166959A | Cites | United States of America | – |
| US6396744B1 | Cites | United States of America | – |
| PATENT ABSTRACTS OF JAPAN vol. 1998, no. 04, 31 March 1998 (1998-03-31) & JP 9 312094 A (NEC ENG LTD), 2 December 1997 (1997-12-02) | Non-patent | – | – |
31 members in 9 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 234001 | United States of America | – | |
| 23400102 | United States of America | A | |
| 0327056 | United States of America | W |
Members31
| Document | Office | Kind | |
|---|---|---|---|
| US830760A | United States of America | A | |
| US936552A | United States of America | A | |
| US2004044841A1 | United States of America | A1 | |
| WO2004021359A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2003268251A1 | Australia | A1 | |
| TW200416735A | Taiwan Province of China | A | |
| WO2004021359A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP1540657A2 | European Patent Office (EPO) | A2 | |
| KR20050057034A | Republic of Korea | A | |
| CN1689111A | China | A | |
| JP2005537598A | Japan | A | |
| US7010644B2 | United States of America | B2 | |
| US2006104142A1 | United States of America | A1 | |
| KR100626933B1 | Republic of Korea | B1 | |
| TWI263221B | Taiwan Province of China | B | |
| US2007258308A1 | United States of America | A1 | |
| US7307908B2 | United States of America | B2 | |
| CN100483546C | China | C | |
| US7564731B2 | United States of America | B2 | |
| US2009257299A1 | United States of America | A1 | |
| US7768861B2 | United States of America | B2 | |
| US2010262791A1 | United States of America | A1 | |
| EP2293305A1 | European Patent Office (EPO) | A1 | |
| US7944768B2 | United States of America | B2 | |
| EP1540657B1This record | European Patent Office (EPO) | B1 | |
| AT517417T | Austria | T | |
| ATE517417T1 | Austria | T1 | |
| JP4891544B2 | Japan | B2 | |
| EP2293305B1 | European Patent Office (EPO) | B1 | |
| AT557398T | Austria | T | |
| ATE557398T1 | Austria | T1 |
54 legal events, as 8 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent expired after termination of 20 yearsExpiredPE20 | PE20 | GB | |
| Expiry of rightR071 | R071 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Fee paymentPLFP | PLFP | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed against granted patent, or epo opposition proceedings concluded without decisionGrantedR097 | R097 | DE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Patent lapsedLapsedMM4A | MM4A | IE | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Deletion acc. to par. 5 (withdrawal of the translation of the ep patent)MK05 | MK05 | AT | |
| Discontinued in the netherlands as no translation has been filedVDEP | VDEP | NL | |
| Dpma publication of mentioned ep patent grantGrantedR096 | R096 | DE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Request for extension of the european patent (deleted)DAX | DAX | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1540657
- Application
- 37492048
Titles3
- German
- DURCH SOFTWARE AUFGEFRISCHTE SPEICHEREINRICHTUNG UND VERFAHREN
- English
- SOFTWARE REFRESHED MEMORY DEVICE AND METHOD
- French
- DISPOSITIF DE MEMOIRE RAFRAICHIE PAR LOGICIEL ET PROCEDE
Classification
- CPC, 11
- G11C5/005
- G11C11/40603
- G11C11/406
- G11C11/40622
- G11C13/0011
- G11C13/0033
- G11C13/0069
- G11C16/3431
- G11C13/0004
- G11C11/40611
- G11C11/408
- IPC, 7
- G11C11 406
- G11C16 34
- G06F12 00
- G11C5 00
- G11C13 00
- G11C13 02
- H10D62 10
Designated states1
- Contracting states, 1
- Türkiye
