Embodiments relate generally to memory cell arrangements and methods for reading state information from a memory cell bypassing an error detection circuit.
With the continuing shrinking of the dimensions of memory cells (e.g., non-volatile memory cells) and with the introduction of multi-bit memory cells or multi-level memory cells to store a plurality of bits of information in one respective memory cell, the failure probability of bits stored in the memory cells will increase.
One countermeasure to address the increased bit failures might be to enhance the error correction capability within a memory cell arrangement including the memory cells. In this context, it is to be understood that the stronger and thus usually more complex an error correction process is, the higher usually the latency will be expected to be in reading state information from a memory cell.
However, latency may become an important parameter, e.g., in the comparison of a solid state disc (SDD) with a hard disc drive (HDD), and therefore will probably gain more and more attention in a memory cell arrangement.
In a conventional memory cell arrangement, an error correction process (ECC) is applied at every read access to a memory cell.
In an embodiment, an integrated circuit having a memory cell arrangement is provided. The memory cell arrangement may include at least one memory cell, at least one error correction circuit, and a controller configured to control a read operation to read state information from the at least one memory cell by reading a memory cell state information bypassing the at least one error correction circuit, or by reading the memory cell state information and supplying it to the at least one error correction circuit.
In the drawings, like reference characters generally refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of embodiments of the invention. In the following description, various embodiments of the invention are described with reference to the following drawings, in which:
In various embodiments, the computer arrangement 102 may be configured as or may include any device having a processor, e.g., having a programmable processor such as, e.g., a microprocessor (e.g., a CISC (complex instruction set computer) microprocessor or a RISC (reduced instruction set computer) microprocessor). In various embodiments, the computer arrangement 102 may be configured as or may include a personal computer, a workstation, a laptop, a notebook, a personal digital assistant (PDA), a radio telephone (e.g., a wireless radio telephone or a mobile radio telephone), a camera (e.g., an analog camera or a digital camera), or another device having a processor (such as, e.g., a household appliance (such as, e.g., a washing machine, a dishwashing machine, etc.))
In an embodiment, the computer arrangement 102 may include one or a plurality of computer arrangement-internal random access memories (RAM) 104, e.g., one or a plurality of computer arrangement-internal dynamic random access memories (DRAM), in which, for example, data to be processed may be stored. Furthermore, the computer arrangement 102 may include one or a plurality of computer arrangement-internal read only memories (ROM) 106, in which, for example, the program code may be stored, which should be executed by a processor 108 (e.g., a processor as described above), which may also be provided in the computer arrangement 102.
Furthermore, in an embodiment, one or a plurality of input/output interfaces 110, 112, 114 (in
The input/output interfaces 110, 112, 114 may be implemented as analog interfaces and/or as digital interfaces. The input/output interfaces 110, 112, 114 may be implemented as serial interfaces and/or as parallel interfaces. The input/output interfaces 110, 112, 114 may be implemented as one or a plurality of circuits, which implements or implement a respective communication protocol stack in its functionality in accordance with the communication protocol which is respectively used for data transmission. Each of the input/output interfaces 110, 112, 114 may be configured in accordance with any communication protocol. In an embodiment, each of the input/output interfaces 110, 112, 114 may be implemented in accordance with one of the following communication protocols:
In an embodiment, the first input/output interface 110 is a USB interface (in alternative embodiments, the first input/output interface 110 may be configured in accordance with any other communication protocol such as, e.g., in accordance with a communication protocol which has been described above).
In an embodiment, the computer arrangement 102 optionally may include an additional digital signal processor (DSP) 116, which may be provided, e.g., for digital signal processing. Furthermore, the computer arrangement 102 may include additional communication modules (not shown) such as, e.g., one or a plurality of transmitters, one or a plurality of receivers, one or a plurality of antennas, and so on.
The computer arrangement 102 may also include additional components (not shown), which are desired or required in the respective application.
In an embodiment, some or all of the circuits or components provided in the computer arrangement 102 may be coupled with each other by means of one or a plurality of computer arrangement-internal connections 118 (for example, by means of one or a plurality of computer busses) configured to transmit data and/or control signals between the respectively coupled circuits or components.
Furthermore, as has been described above, the computer system 100, in accordance with an embodiment, may include the memory cell arrangement 120.
The memory cell arrangement 120 may in an embodiment be configured as an integrated circuit. The memory cell arrangement 120 may further be provided in a memory module having a plurality of integrated circuits, wherein at least one integrated circuit of the plurality of integrated circuits includes a memory cell arrangement 120, as will be described in more detail below. The memory module may be a stackable memory module, wherein some of the integrated circuit may be stacked one above the other. In an embodiment, the memory cell arrangement 120 is configured as a memory card.
In an embodiment, the memory cell arrangement 120 may include a memory cell arrangement controller 122 (for example, implemented by means of hard wired logic and/or by means of one or a plurality of programmable processors, e.g., by means of one or a plurality of programmable processors such as, e.g., one or a plurality of programmable microprocessors (e.g. CISC (complex instruction set computer) microprocessor(s) or RISC (reduced instruction set computer) microprocessor(s)).
The memory cell arrangement 120 may further include a memory 124 having a plurality of memory cells. The memory 124 will be described in more detail below.
In an embodiment, the memory cell arrangement controller 122 may be coupled with the memory 124 by means of various connections. Each of the connections may include one or a plurality of lines and may thus have a bus width of one or a plurality of bits. Thus, by way of example, an address bus 126 may be provided, by means of which one or a plurality of addresses of one or a plurality of memory cells may be provided by the memory cell arrangement controller 122 to the memory 124, on which an operation (e.g., an erase operation, a write operation, a read operation, an erase verify operation, or a write verify operation, etc.) should be carried out. Furthermore, a data write connection 128 may be provided, by means of which the information to be written into the respectively addressed memory cell may be supplied by the memory cell arrangement controller 122 to the memory 124. Furthermore, a data read connection 130 may be provided, by means of which the information stored in the respectively addressed memory cell may be read out of the memory 124 and may be supplied from the memory 124 to the memory cell arrangement controller 122 and via the memory cell arrangement controller 122 to the computer arrangement 102, or, alternatively, directly to the computer arrangement 102 (in which case the first input/output interface 110 would directly be connected to the memory 124). A bidirectional control/state connection 132 may be used for providing control signals from the memory cell arrangement controller 122 to the memory 124 or for supplying state signals representing the state of the memory 124 from the memory 124 to the memory cell arrangement controller 122.
In an embodiment, the memory cell arrangement controller 122 may be coupled to the first input/output interface 110 by means of a communication connection 134 (e.g., by means of a USB communication connection).
In an embodiment, the memory 124 may include one chip or a plurality of chips. Furthermore, the memory cell arrangement controller 122 may be implemented on the same chip (or die) as the components of the memory 124 or on a separate chip (or die).
In an embodiment, the memory 124 may include a memory cell field (e.g. a memory cell array) 202 having a plurality of memory cells. The memory cells may be arranged in the memory cell field 202 in the form of a matrix in rows and columns, or, alternatively, for example, in zig zag form. In other embodiments, the memory cells may be arranged within the memory cell field 202 in any other manner or architecture.
In general, each memory cell may, for example, be coupled with a first control line (e.g. a word line) and with at least one second control line (e.g., at least one bit line).
In an embodiment, in which the memory cells are arranged in the memory cell field 202 in the form of a matrix in rows and columns, a row decoder circuit 204 configured to select at least one row control line (e.g., a word line) of a plurality of row control lines 206 in the memory cell field 202 may be provided as well as a column decoder circuit 208 configured to select at least one column control line (e.g., a bit line) of a plurality of column control lines 210 in the memory cell field 202.
In an embodiment, the memory cells are non-volatile memory cells.
A “non-volatile memory cell” may be understood as a memory cell storing data even if it is not active. In an embodiment, a memory cell may be understood as being not active, e.g., if currently access to the content of the memory cell is inactive. In another embodiment, a memory cell may be understood as being not active, e.g., if the power supply is inactive. Furthermore, the stored data may be refreshed on a regular timely basis, but not, as with a “volatile memory cell” every few picoseconds or nanoseconds or milliseconds, but rather in a range of hours, days, weeks or months. Alternatively, the data may not need to be refreshed at all in some designs.
The non-volatile memory cells may be memory cells selected from a group of memory cells consisting, e.g., of:
In alternative embodiments, also other types of non-volatile memory cells may be used.
In various embodiments, the memory cells may be resistive memory cells.
Furthermore, the memory cells may be electrically erasable read only memory cells (EEPROM).
In an embodiment, the memory cells may be Flash memory cells, e.g., charge storing memory cells such as, e.g., floating gate memory cells or charge trapping memory cells.
In an embodiment, each charge trapping memory cell includes a charge trapping layer structure for trapping electrical charge carriers. The charge trapping layer structure may include one or a plurality of two separate charge trapping regions. In an embodiment, the charge trapping layer structure includes a dielectric layer stack including at least one dielectric layer or at least two dielectric layers being formed above one another, wherein charge carriers can be trapped in at least one dielectric layer. By way of example, the charge trapping layer structure includes a charge trapping layer, which may include or consist of one or more materials being selected from a group of materials that consists of: aluminum oxide (Al2O3), yttrium oxide (Y2O3), hafnium oxide (HfO2), lanthanum oxide (LaO2), zirconium oxide (ZrO2), amorphous silicon (a-Si), tantalum oxide (Ta2O5), titanium oxide (TiO2), and/or an aluminate. An example for an aluminate is an alloy of the components aluminum, zirconium and oxygen (AlZrO). In one embodiment, the charge trapping layer structure includes a dielectric layer stack including three dielectric layers being formed above one another, e.g., a first oxide layer (e.g., silicon oxide), a nitride layer as charge trapping layer (e.g., silicon nitride) on the first oxide layer, and a second oxide layer (e.g., silicon oxide or aluminum oxide) on the nitride layer. This type of dielectric layer stack is also referred to as ONO layer stack. In an alternative embodiment, the charge trapping layer structure includes two, four or even more dielectric layers being formed above one another.
In an embodiment, the memory cells may be multi-bit memory cells. As used herein the term “multi-bit” memory cell is intended to, e.g., include memory cells which are configured to store a plurality of bits by spatially separated electric charge storage regions or current conductivity regions, thereby representing a plurality of logic states.
In another embodiment, the memory cells may be multi-level memory cells. As used herein the term “multi-level” memory cell is intended to, e.g., include memory cells which are configured to store a plurality of bits by showing distinguishable voltage or current levels dependent on the amount of electric charge stored in the memory cell or the amount of electric current flowing through the memory cell, thereby representing a plurality of logic states.
In an embodiment, address signals are supplied to the row decoder circuit 204 and the column decoder circuit 208 by means of the address bus 126, which is coupled to the row decoder circuit 204 and to the column decoder circuit 208. The address signals uniquely identify at least one memory cell to be selected for an access operation (e.g., for one of the above described operations). The row decoder circuit 204 selects at least one row and thus at least one row control line 206 in accordance with the supplied address signal. Furthermore, the column decoder circuit 208 selects at least one column und thus at least one column control line 210 in accordance with the supplied address signal.
The electrical voltages that are provided in accordance with the selected operation, e.g., for reading, programming (e.g., writing) or erasing of one memory cell or of a plurality of memory cells, are applied to the selected at least one row control line 206 and to the at least one column control line 210.
In the case that each memory cell is configured in the form of a field effect transistor (e.g., in the case of a charge storing memory cell), in an embodiment, the respective gate terminal is coupled to the row control line 206 and a first source/drain terminal is coupled to a first column control line 210. A second source/drain terminal may be coupled to a second column control line 210. Alternatively, with a first source/drain terminal of an adjacent memory cell, which may then, e.g., also be coupled to the same row control line 206 (this is the case, e.g., in a NAND arrangement of the memory cells in the memory cell field 202).
In an embodiment, by way of example, for reading or for programming, a single row control line 206 and a single column control line 210 are selected at the same time and are appropriately driven for reading or programming of the thus selected memory cell. In an alternative embodiment, it may be provided to respectively select a single row control line 206 and a plurality of column control lines 210 at the same time for reading or for programming, thereby allowing to read or program a plurality of memory cells at the same time.
Furthermore, in an embodiment, the memory 124 includes at least one write buffer memory 212 and at least one read buffer memory 214. The at least one write buffer memory 212 and the at least one read buffer memory 214 are coupled with the column decoder circuit 208. Depending on the type of memory cell, reference memory cells 216 may be provided for reading the memory cells.
In order to program (e.g., write) a memory cell, the data to be programmed may be received by a data register 218, which is coupled with the data write connection 128, by means of the data write connection 128, and may be buffered in the at least one write buffer memory 212 during the write operation.
In order to read a memory cell, the data read from the addressed memory cell (represented, e.g., by means of an electrical current, which flows through the addressed memory cell and the corresponding column control line 210, which may be compared with a current threshold value in order to determine the content of the memory cell, wherein the current threshold value may, e.g., be dependent from the reference memory cells 216) are, e.g., buffered in the read buffer memory 214 during the read operation. The result of the comparison und therewith the logic state of the memory cell (wherein the logic state of the memory cell represents the memory content of the memory cell) may then be stored in the data register 218 and may be provided via the data read connection 130, with which the data register 218 may be coupled.
The access operations (e.g., write operations, read operations, or erase operations) may be controlled by a memory-internal controller 220, which in turn may be controlled by the memory cell arrangement controller 122 by means of the bidirectional control/state connection 132. In an alternative embodiment, the data register 218 may directly be connected to the memory cell arrangement controller 122 by means of the bidirectional control/state connection 132 and thus directly controlled thereby. In this example, the memory-internal controller 220 may be omitted. In an example, the memory-internal controller 220 may include a memory-internal internal error detection circuit and/or a memory-internal error correction circuit 222, as will be described in more detail below. In an example, the memory-internal controller 220 (which may be implemented as an ARM controller, for example) may include a Tightly Coupled Memory (TCM) circuit (e.g., a memory which resides directly on a processor, e.g., the memory-internal controller 220), which in turn may include a memory-internal error detection circuit and/or a memory-internal error correction circuit 222, e.g., a parity-check error detection circuit and/or a parity-check error correction circuit.
In an embodiment, the memory cells of the memory cell field may be grouped into memory blocks or memory sectors, which may be commonly erased in an erase operation. In an embodiment, there are so many memory cells included in a memory block or memory sector such that the same amount of data may be stored therein as compared with a conventional hard disk memory sector (e.g., 512 byte), although a memory block or memory sector may alternatively also store another amount of data.
Furthermore, other common memory components (e.g., peripheral circuits such as, e.g., charge pump circuits, etc.) may be provided in the memory 124, but they are neither shown in
In this example, the memory cell arrangement controller 122 may include a host interface circuit 302 which serves as an interface to the computer arrangement 102, for example. In general, the host interface circuit 302 is configured to provide a communication interface to a memory cell arrangement-external device. Furthermore, the memory cell arrangement controller 122 may include one or more error detection circuits and/or one or more error correction circuits (in
The memory cell arrangement controller 122 of
In one embodiment, the memory cell portion 500 is arranged as a NAND memory cell field (although another coupling architecture may be provided in an alternative embodiment).
In an embodiment, the NAND memory cell portion 500 (e.g., a NAND memory cell array portion 500) may include word lines 502 (in general, an arbitrary number of word lines 502, in one embodiment, 1024 word lines 502) and intersecting bit lines 504 (in general, an arbitrary number of bit lines 504, in one embodiment, 512 bit lines 504).
The NAND memory cell array portion 500 may include NAND strings 506, each NAND string 506 having memory cells 508 (e.g., charge storing memory cells 508 such as, e.g., charge trapping memory cells 508 or floating gate memory cells 508). Furthermore, an arbitrary number of memory cells 508 can be provided in the NAND string 506, in accordance with one embodiment, 32 memory cells 508. The memory cells 508 are connected in series source-to-drain between a source select gate 510, which may be implemented as a field effect transistor, and a drain select gate 512, which may also be implemented as a field effect transistor. Each source select gate 510 is positioned at an intersection of a bit line 504 and a source select line 514. Each drain select gate 512 is positioned at an intersection of a bit line 504 and a drain select line 516. The drain of each source select gate 510 is connected to the source terminal of the first charge trapping memory cells 508 of the corresponding NAND string 506. The source of each source select gate 510 is connected to a common source line 518. A control gate 520 of each source select gate 510 is connected to the source select line 514.
In one embodiment, the common source line 518 is connected between source select gates 510 for NAND strings 506 of two different NAND arrays. Thus, the two NAND arrays share the common source line 518.
In an embodiment, the drain of each drain select gate 512 may be connected to the bit line 504 of the corresponding NAND string 506 at a drain contact 522. The source of each drain select gate 512 is connected to the drain of the last charge trapping memory cell 508 of the corresponding NAND string 506. In one embodiment, at least two NAND strings 506 share the same drain contact 522.
In accordance with the described embodiments, each memory cell 508 may include a source 524 (e.g., a first source/drain region), a drain 526 (e.g., a second source/drain region), a charge storage region 528 (e.g., a floating gate stack or a dielectric layer stack) and a control gate 530 (e.g. a gate region). The control gate 530 of each memory cell 508 may be connected to a respective word line 502. A column of the NAND memory cell array portion 500 may include a respective NAND string 506 and a row of the NAND memory cell array portion 500 may include those memory cells 508 that are commonly connected to a respective word line 502.
In an alternative embodiment, the memory cell portion 500 is a NOR memory cell array portion 500. In yet another embodiment, the memory cell portion 500 may be arranged in accordance with any other suitable architecture.
As shown in
The coupling may be provided, e.g., via a first read path 602, which may start from the output of the memory cell field 202 and may extend to the input of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222. An output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 may be coupled with an output of the memory 124. Thus, in an example, raw data read from the memory cells are provided at the output of the memory cell field 202 and first error corrected data (e.g., raw data being error corrected using the memory-internal error detection circuit and/or the memory-internal error correction circuit 222) may be provided at the output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222.
Furthermore, a second read path 604 may be provided in the memory 124. The second read path 604 may start from the output of the memory cell field 202 and may extend to the output of the memory 124, bypassing the memory-internal error detection circuit and/or the memory-internal error correction circuit 222. Thus, the data being transferred via the second read path 604 might not pass the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 and thus would not be processed by the memory-internal error detection circuit and/or the memory-internal error correction circuit 222. This may save a substantial amount of processing time. Thus, in an example, data being transferred via the second read path 604 may be available at the output of the memory 124 earlier than the data being transferred via the first read path 602, which would be processed by the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 (illustratively, the processing time for carrying out the error detection and/or error correction operation on the read data would be saved). The option of bypassing the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 when reading data from the memory cell field 202 may be used in an embodiment in order to shorten the read latency, in other words the time required for carrying out a read operation, as will be described in more detail below.
An output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 may be coupled with an input of the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122, wherein the one or more error detection circuits and/or one or more error correction circuits 304 may be configured to detect/correct errors using, e.g., a Bose, Ray-Chaudhuri (BCH) error detection/correction scheme. The coupling of the output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 with the input of the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122 may be provided e.g. via a third read path 606, which may start from the output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 and may extend to the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122. An output of the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122 may be coupled with an input of the host interface circuit 302.
Furthermore, a fourth read path 608 may be provided in the memory cell arrangement controller 122. The fourth read path 608 may start from the output of the memory-internal error detection circuit and/or the memory-internal error correction circuit 222 and may extend to the input of the host interface circuit 302, bypassing the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122.
Thus, the data being transferred via the fourth read path 608 might not pass the one or more error detection circuits and/or one or more error correction circuits 304 and thus would not be processed by the one or more error detection circuits and/or one or more error correction circuits 304. This may save a substantial amount of processing time. Thus, in an example, data being transferred via the fourth read path 608 may be available at the input of the host interface circuit 302 earlier than the data being transferred via the third read path 606, which would be processed by the one or more error detection circuits and/or one or more error correction circuits 304 (illustratively, the processing time for carrying out the error detection and/or error correction operation on the read data in the one or more error detection circuits and/or one or more error correction circuits 304 would be saved). The option of bypassing the one or more error detection circuits and/or one or more error correction circuits 304 when reading data from the memory cell field 202 may be used in an embodiment in order to even further shorten the read latency, in other words the time required for carrying out a read operation, as will be described in more detail below.
Thus, in an example, depending on whether the first read path 602 or the second read path 604 is selected, raw data read from the memory cells or first error corrected data may be provided at the output of the memory 124 and may be supplied to the input of the one or more error detection circuits and/or one or more error correction circuits 304 of the memory cell arrangement controller 122 or to the input of the host interface circuit 302.
It is to be noted that in an example, the four read paths can be arbitrarily selected independent from each other and in any meaningful combination (e.g., it may be selected to use the first read path 602 and the third read path 606, or the first read path 602 and the fourth read path 608, or the second read path 604 and the third read path 606, or the second read path 604 and the fourth read path 608, for example, as desired). Various parameters which may be used for deciding which read paths should be selected will be described further below. One example of a parameter that could be used is an expected failure rate of the memory cells of the memory cell arrangement 120.
As will be described in more detail below, in an implementation, the memory cell arrangement controller 122 may be configured to enable or disable the respective read paths 602, 604, 606, 608. In other words, the memory cell arrangement controller 122 may be configured to enable or disable, e.g., the TCM bypass path (e.g., the second read path 604) and/or the BCH bypass path (e.g., the fourth read path 608), e.g., as needed or desired according to, e.g., the expected failure rate of the memory cells of the memory cell arrangement 120.
In an example, even if one or more bypass paths are enabled, the respectively bypassed error detection/error correction circuit (e.g., 222, 304) may be used for error detection. In this example, it may be provided that in case that the respective error detection/error correction circuit (e.g., 222, 304) used for error detection detects an error in the supplied read data, the data which may already have bypassed the respective error detection/error correction circuit (e.g., 222, 304) and supplied to the next component in the memory cell arrangement 120 (e.g., the one or more error detection circuits and/or one or more error correction circuits 304 or the host interface circuit 302) may be castaway. An error correction may be provided in this case on the erroneous data and the error corrected read data may be re-sent or provided to the respective component in the memory cell arrangement 120 (e.g., the one or more error detection circuits and/or one or more error correction circuits 304 or the host interface circuit 302).
In an embodiment, it has been realized that the fail probability of the memory cells of a memory cell arrangement is usually low or zero at the beginning of its life-time (e.g., in case of a non-volatile memory cell arrangement) and typically increases with the cycling of the device, in other words with the number of access operations (e.g., read or write operations) performed on the memory cells of a memory cell arrangement. Taking into account that the fail probability may be highly dependent on the life-time history of the memory cells of a memory cell arrangement, in an implementation, the latency can be reduced in early lifetime by means of bypassing one or more of usually provided error detection circuits and/or one or more error correction circuits (ECC).
Referring back to the example shown in
As will be described in more detail below, a step-wise addition of error detection and/or error correction capability may be provided in an implementation according to one or more predefined criteria. By way of example, one or more error detection circuits and/or error correction circuits may be step-wise additionally enabled in accordance with one or more predefined criteria.
The endurance failure diagram 700 includes a cycle axis 702 showing a number of (write and/or erase and/or read) cycles carried out on the memory cells of a memory cell arrangement, and a failure axis 704 showing the number of failures in the memory cells of a memory cell arrangement. Furthermore, the endurance failure diagram 700 includes a characteristic 706 which illustrates that in an example, the number of failing memory cells increases with the number of (write and/or erase and/or read) cycles carried out on the memory cells of the memory cell arrangement. It is to be understood that the characteristic 706 is only exemplary and may vary dependent on the type of memory cells and the architecture of the memory, for example.
Referring also to the latency diagram 750 in
Furthermore, the latency diagram 750 of
As shown in
With an increasing number of cycles, the number of failures might further increase. In this example, it is assumed for illustrative purposes, that in a fourth lifetime interval 764 (e.g., extending from about 5800 cycles to about 7300 cycles in this example), the error correction capability of the one or more memory-internal error correction circuits 222 is no longer sufficient to cover all fails (in other words, even the first corrected data include errors, which could not have been corrected by the one or more memory-internal error correction circuits 222). However, it is assumed that in the fourth lifetime interval 764 the one or more memory-internal error correction circuits 222 are capable of correcting most of the errors that occur in the read data. Thus, in an example, in the fourth lifetime interval 764, the memory cell arrangement may still be operated in the third operating mode.
In this fourth lifetime interval 764, e.g., the one or more error detection circuits 304 start to again detect errors in the read data, this time in the first corrected data. In case of a detected error, the data that are bypassing the one or more error correction circuits 304 (in this case the first corrected data) might be withdrawn from the memory interface circuit 308 and would not be supplied uncorrected to the output of the memory cell arrangement. In this case, the erroneous data are supplied to the one or more error correction circuits 304 (e.g., using BCH error correction) to be corrected, thereby providing error corrected data at the output of the one or more error detection circuits 304. The error corrected data would then be supplied to the memory interface circuit 308 for being output by the memory cell arrangement. This would lead to a significant delay of the data read in this single case, but since the number of withdrawals of first corrected data read from the memory cells from the memory interface circuit 308 is still low, the total latency might still be significantly shorter compared with the case, in which the one or more error correction circuits 304 would always be used for error correction of the first corrected data in the fourth lifetime interval 764. As shown in
As shown in
It should be noted that in case a higher number of error correction circuits with possibly increasing error correction capability than two would be provided, a step-wise addition of error correction power and thereby a step-wise increase of latency might be provided.
After an even higher number of cycles, the situation may occur, in which the number of errors becomes so high that it can no longer be corrected even when using all the error correction circuits provided in the memory cell arrangement. This would result in the end of life of the memory cell arrangement, in
In various embodiments, a very low latency in the beginning of the lifetime of a memory cell arrangement may be achieved.
In another example, it may be provided that even after an enabling of one or more error correction circuits, one or more of the enabled error correction circuits may be individually disabled in case that it is determined that the respective enabled error correction circuit is currently not needed. Thus, in an example, an arbitrary individual enabling and disabling of the error correction circuits in the memory cell arrangement may be provided.
In an embodiment, it may be provided to bypass one or more ECC circuits, but still using the one or more bypassed ECC circuits in parallel for error detection (e.g. for cyclic redundancy check, CRC) and withdraw fail affected data (e.g., before they are output by the memory cell arrangement).
In an embodiment, a plurality (e.g., more than three) error correction circuits may be provided and may be coupled with each other in series (illustratively, they may be chained). In this case, individually selected error correction circuit(s) may be bypassed, e.g., in the manner as described above.
Furthermore, a parallel execution of data streaming at the host interface (e.g., the memory interface 308) and ECC computation (e.g., for error detection) may be provided in various embodiments.
In an implementation, a circuit (e.g., a switch or a controller) may be additionally provided (e.g., near the host interface), which may be configured to interrupt the data stream, e.g., in case a ECC computation indicates errors and thus results in the detection of an error in the data stream read from the memory cells.
A variety of different parameters may be used in order to determine as to whether one or more of the error correction circuits should be enabled or disabled. In an example, a fail-probability of the memory cells in the memory cell arrangement (in other words, in the memory system) may be determined, e.g., measured.
In case the fail-probability of the memory cells in the memory cell arrangement is low (e.g., below a predefined fail-probability threshold), one or more enabled error correction circuits may be disabled (e.g., individually disabled). Alternatively or in addition, one or more error correction circuits may be bypassed (which would result in a low latency) and the bypassed one or more error correction circuits may be used for error detection. In case an error is detected, data that is bypassed by the respective one or more error correction circuits may be withdrawn and the data may be error corrected using the previously bypassed one or more error correction circuits. The error corrected data may then replace the withdrawn data.
In case the fail-probability (or fail-rate) of the memory cells in the memory cell arrangement becomes so high that it increases above a specified level (by way of example, in case the fail-probability exceeds the predefined fail-probability threshold), the selected bypass read paths may be disabled and/or one or more previously bypassed or disabled error correction circuits may be enabled (or re-enabled).
Illustratively, in various embodiments, the determined fail-rate (alternatively or in addition history information about the usage and/or characteristics of the memory cell arrangement) may be taken into account in deciding as to whether, and if so, which error correction circuit(s) should be enabled or disabled.
In an embodiment, a dynamic bypass of ECC circuits for latency reduction may be provided (e.g. inside the memory cell arrangement controller and/or inside memory device itself). One or more bypassed ECC circuits may be used in parallel for error detection.
Furthermore, in an example, the fail-rate may be memory sector dependent within the memory. In this case, the fail-probability may be stored in the memory cell arrangement, e.g., in the memory and/or in the memory cell arrangement controller, to dynamically decide which bypass-mode to use, in other words, which ECC circuits should be disabled and which ECC circuits should be enabled.
Illustratively, multiple ECC-Units (ECC circuits) coupled in series may be used to reduce latency.
As will be described in more detail below, various embodiments achieve a reduction of the average latency e.g. over the entire lifetime of a memory cell arrangement. In the examples, it is assumed that the data stored in the memory cells are error protected using redundancy information that has been generated in accordance with all provided error correction circuits. By way of example, in case n (n is an arbitrary integer value greater than 0) error correction schemes (ECCs) are provided which may be independent from each other and which may be configured such that they do not interfere with each other, the stored data is encoded in accordance with the provided ECC (e.g. all the data is encoded and stored in accordance with ECC1, ECC2, ECC3, . . . , ECCn). Furthermore, it is assumed that before reading a piece of data (e.g., a memory block), it is known which ECC should be chosen in order to achieve optimized latency. It is to be noted that this can be different for different pieces of data. Furthermore, this can even change over the lifetime of the memory cell arrangement.
As shown in
As shown in
This described example could be extended to an arbitrary number of error corrections which could be individually enabled and disabled according to the determined average latency, for example.
In an example, the determination or calculation of the average latency may be implemented using a counter, for example. If data are withdrawn, a certain predefined value may be added to a current counter value of that counter. If no data are withdrawn, the counter value may be reduced (in an example not below the counter value zero). If the counter value reaches a certain predefined value (e.g., representing the certain limit as described above), the next ECC (e.g., ECC1 or ECC2) may be enabled.
By way of example, a counter value x may be provided to calculate the average latency. To withdraw data might cost, for example, 20 times more than the initial latency. In one example, the counter value x may be initialized with an initialization value (e.g., “0”). If data is withdrawn, e.g., the value “20” may be added to the counter value x. If the read data go through the memory cell arrangement without withdraw (i.e., no error has been detected for the read data), the counter value x may be reduced, e.g., by the value “1”. If the counter value x reaches or exceeds e.g. a limit value “120” (the larger the limit value, the larger the integration time), the next ECC (e.g., ECC1 or ECC2) may be enabled by default.
The at least one error correction circuit 1404 may include a plurality of error correction circuits. Furthermore, the plurality of error correction circuits may be coupled with each other in series.
In an example, at least one error detection circuit may be provided. The at least one error detection circuit may be configured to carry out error detection based on at least one error detection process selected from a group of error detection processes consisting of:
The at least one error correction circuit may be implemented together with the at least one error detection circuit. The at least one error correction circuit may include a plurality of error correction circuits. The plurality of error correction circuits may be coupled with each other in series (e.g., forming an error correction circuit chain). In this example, an input of the first error correction circuit of the plurality of error correction circuits may be configured to receive the read memory cell state information, an input of the second error correction circuit of the plurality of error correction circuits may be configured to receive information representing the read memory cell state information, and the second error correction circuit may have a higher error correction capability than the first error correction circuit. Furthermore, in an example, the controller may be configured to control the second error correction circuit to carry out an error correction process on the information representing the read memory cell state information in case the first error correction circuit is unable to correct an error in the read memory cell state information.
In another example of this embodiment, the first error correction circuit may be configured to carry out error correction based on a parity-check error correction process, and the second error correction circuit is configured to carry out error correction based on a Bose, Ray-Chaudhuri (BCH) error correction process.
In another example of this embodiment, the at least one error correction circuit may be configured to carry out error correction based on at least one error correction process selected from a group of error correction processes consisting of:
Furthermore, the controller may be configured to determine as to whether to control the read operation to read state information from the at least one memory cell by reading the memory cell state information bypassing the at least one error correction circuit, or by reading the memory cell state information and supplying it to the at least one error correction circuit depending on an error detection signal provided by the at least one error detection circuit, wherein the error detection signal indicates as to whether the read state information comprises an error or not.
The at least one memory cell may include at least one non-volatile memory cell. Furthermore, the at least one memory cell may include at least one resistive memory cell. In an example of this embodiment, the at least one memory cell may include at least one Flash memory cell. In an example, the at least one memory cell may include at least one charge storing memory cell such as, e.g., at least one floating gate memory cell or at least one charge trapping memory cell. Furthermore, the at least one memory cell may include a plurality of memory cells, wherein the plurality of memory cells may be serially source-to-drain coupled with each other. In an example, the plurality of memory cells may be coupled with each other in accordance with a NAND coupling structure.
In another embodiment, an integrated circuit having a memory cell arrangement is provided. The memory cell arrangement may include a memory cell, an error correction circuit, an output coupled to the memory cell and to the output, a first read path from the memory cell to the output bypassing the error correction circuit, a second read path from the memory cell via the error correction circuit to the output, and a controller configured to control a read operation to read state information from the memory cell such that the read operation may include a first read mode, in which the read state information is supplied to the output via the first read path, and a second read mode, in which the read state information is supplied to the output via the second read path.
In an example of this embodiment, the at least one error detection circuit may include at least one further error correction circuit. Furthermore, in an example, the integrated circuit may further include a third read path from the memory cell to the output bypassing the further error correction circuit, and a fourth read path from the memory cell via the further error correction circuit to the output. The fourth read path may include the second read path.
In an example of this embodiment, the error correction circuit and the further error correction circuit may be coupled with each other in series.
In an example of this embodiment, at least one error correction circuit may be provided. The at least one error detection circuit may be configured to carry out error detection based on at least one error detection process selected from a group of error detection processes consisting of:
The at least one error correction circuit may include at least one further error correction circuit. Furthermore, the error correction circuit and the at least one further error correction circuit may be coupled with each other in series. In another example of this embodiment, an input of a first error correction circuit of the plurality of error correction circuits may be configured to receive the read memory cell state information, an input of a second error correction circuit of the plurality of error correction circuits may be configured to receive information representing the read memory cell state information, and the second error correction circuit may have a higher error correction capability than the first error correction circuit.
In another example of this embodiment, the controller may be configured to control the second error correction circuit to carry out an error correction process on the information representing the read memory cell state information in case the first error correction circuit is unable to correct an error in the read memory cell state information.
The first error correction circuit may be configured to carry out error correction based on a parity-check error correction process, and the second error correction circuit may be configured to carry out error correction based on a Bose, Ray-Chaudhuri (BCH) error correction process.
In another example of this embodiment, the at least one error correction circuit may be configured to carry out error correction based on at least one error correction process selected from a group of error correction processes consisting of:
In an example, the controller may be configured to determine as to whether to control the read operation to read state information from the at least one memory cell by reading the memory cell state information bypassing the at least one error correction circuit, or by reading the memory cell state information and supplying it to the at least one error correction circuit depending on an error detection signal provided by the at least one error detection circuit, wherein the error detection signal indicates as to whether the read state information comprises an error or not.
In an example, the at least one memory cell may include at least one non-volatile memory cell. In another example, the at least one memory cell may include at least one resistive memory cell. Furthermore, the at least one memory cell may include at least one Flash memory cell. In another example, the at least one memory cell may include at least one charge storing memory cell such as, e.g., at least one floating gate memory cell or at least one charge trapping memory cell.
In another example, the at least one memory cell may include a plurality of memory cells, wherein the plurality of memory cells may be serially source-to-drain coupled with each other. The plurality of memory cells may be coupled with each other in accordance with a NAND coupling structure.
In another embodiment, an integrated circuit having a memory cell arrangement is provided. The memory cell arrangement may include an error detection circuit, an error correction circuit, and a controller. The controller may be configured to control a read operation to read state information from the at least one memory cell by reading, in a first read mode, a memory cell state information bypassing the error correction circuit, to determine, using the error detection circuit, as to whether the read memory cell state information fulfills a predefined criterion, and depending on whether the read memory cell state information fulfills the predefined criterion, to remain in the first read mode, or to switch to a second read mode, in which the memory cell state information is read and supplied to the error correction circuit for error correction.
In an example of this embodiment, the predefined criterion may be information about the number of programming cycles carried out on the memory cell arrangement or a part of the memory cell arrangement. The predefined criterion may be information about as to whether the error detection circuit detects an error in the read memory cell state information. In another example of this embodiment, the integrated circuit may further include a further error correction circuit. Furthermore, the controller may be further configured to determine, as to whether the read memory cell state information fulfills a further predefined criterion, and depending on whether the read memory cell state information fulfills the further predefined criterion, to remain in the first read mode or the second read mode, or to switch to a third read mode, in which the memory cell state information is read and supplied to the further error correction circuit for error correction.
In another example of this embodiment, the further predefined criterion may be information about the number of programming cycles carried out on the memory cell arrangement or a part of the memory cell arrangement. Furthermore, the further predefined criterion may be information about as to whether the error correction circuit is able to correct an error in the read memory cell state information.
In another example, the error detection circuit may be configured to carry out error detection based on at least one error detection process selected from a group of error detection processes consisting of:
The further error correction circuit may have a higher error correction capability than the error correction circuit.
In another example, the error correction circuit may be configured to carry out error correction based on a parity-check error correction process, and the further error correction circuit may be configured to carry out error correction based on a Bose, Ray-Chaudhuri error correction process.
In yet another example, the error correction circuit may be configured to carry out error correction based on at least one error correction process selected from a group of error correction processes consisting of:
The memory cell may include a non-volatile memory cell. In another example, the memory cell may include a resistive memory cell. Furthermore, the memory cell may include a Flash memory cell. Moreover, the memory cell may include a charge storing memory cell such as e.g. a floating gate memory cell or a charge trapping memory cell.
In an example, the integrated circuit may further include a plurality of memory cells, wherein the plurality of memory cells may be serially source-to-drain coupled with each other. In an example, the plurality of memory cells may be coupled with each other in accordance with a NAND coupling structure.
In another embodiment, as shown in
The failure class diagram 1800 may include a failure class axis 1802 illustrating different failure classes, which may be assigned to various error correction processes. Furthermore, the failure class diagram 1800 may include a yield axis 1804 illustrating a yield that is achieved for the respective memory cells. In an embodiment, each failure class may be assigned with one error correction process which would be provided for error correction in case the memory cell arrangement has been classified into this failure class. It should be noted that the classification of the memory cell arrangement into a respective failure class may change over the lifetime of the memory cell arrangement or for other reasons. In general, an arbitrary number of failure classes and assigned error correction processes may be provided. The error correction processes may have different error correction capabilities. In an example, the initial classification of the memory cell arrangement with respect to the failure class may be provided during the device test before shipping the device, in other words, the memory cell arrangement. In an embodiment, it may be provided that portions of the memory, (e.g. memory pages or memory sectors or memory blocks) may be individually classified into different failure classes. In this case, an error correction assignment table including the assignment of the respective portion of the memory to the respective error correction process (or failure class) may be provided for each classified portion. The classification of the memory cell arrangement may be carried out by determining error patterns and error distributions in a memory cell arrangement test process and then determining the suitable error correction process that will correct most of the occurring errors with least processing costs. Furthermore, in an alternative example, during the operation of the memory cell arrangement, e.g., soft information (e.g., soft decoded information read from the memory cells, e.g., using a kind of oversampling in reading the content of the memory cells) in the device may be monitored and may be used for selecting one or more available error correction circuits or for switching from one or more currently used error correction circuits to better suitable error correction circuits. Furthermore, in alternative examples, adaptive error correction processes or schemes may be provided. The adaptive error correction processes or schemes may be adapted to the maturity of the manufacturing process used, for example. Alternatively, the adaptive error correction processes or schemes may be adapted to predefined requirements such as e.g. predefined quality requirements.
In this example, four error correction processes and thus four failure classes 1806, 1808, 1810, 1812, are provided. In this example, the first failure class 1806 (which shows the least errors in the memory cells) is assigned to a first error correction process, e.g., a turbo code error correction process. Furthermore, the second failure class 1808 may include a memory cell arrangement having more or more severe and more difficult to correct errors and may be assigned to a second error correction process, e.g., a first BCH error correction process. Furthermore, the third failure class 1810 may include a memory cell arrangement having even more or more severe and more difficult to correct errors and may be assigned to a third error correction process, e.g. a second BCH error correction process, which may provide a higher error correction capability than the first BCH error correction process. Eventually, in this example, the fourth failure class 1812 may include a memory cell arrangement having the most or the most severe and/or most difficult to correct errors and may be assigned to a fourth error correction process, e.g., a Reed-Solomon error correction process. In an example, in case a memory cell arrangement is classified into one of the failure classes, the respectively assigned error correction process (implemented by a respective error correction circuit) is selected for being used for error correction when reading the content of the memory cells of the memory cell arrangement.
In an example, the information read from the memory cells may include soft information, which may be taken into account when selecting the one or more error correction circuits 1902, 1904, 1906, or 2004, 2006, 2008, to be used for error correction.
As shown in
In
As shown in
While the invention has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.