Buffering systems methods for accessing multiple layers of memory in integrated circuits
Embodiments of the invention relate generally to data storage and computer memory, and more particularly, to systems, integrated circuits and methods for accessing memory in multiple layers of memory implementing, for example, third dimension memory technology. In a specific embodiment, an integrated circuit is configured to implement write buffers to access multiple layers of memory. For example, the integrated circuit can include memory cells disposed in multiple layers of memory. In one embodiment, the memory cells can be third dimension memory cells. The integrated circuit can also include read buffers that can be sized differently than the write buffers. In at least one embodiment, write buffers can be sized as a function of a write cycle. Each layer of memory can include a plurality of two-terminal memory elements that retain stored data in the absence of power and store data as a plurality of conductivity profiles.
Latest Patents:
This application incorporates by reference the following related application(s): U.S. patent application Ser. No. 11/095,026, filed Mar. 30, 2005, and titled “Memory Using Mixed Valence Conductive Oxides,”and U.S. patent application Ser. No. 12/001,952, filed Dec. 12, 2007, and titled “Disturb Control Circuits And Methods To Control Memory Disturbs Among Multiple Layers Of Memory”.
FIELD OF THE INVENTIONEmbodiments of the invention relate generally to data storage and computer memory, and more particularly, to systems, integrated circuits and methods to accessing memory cells in multiple layers of memory that implement, for example, third dimension memory cell technology.
BACKGROUND OF THE INVENTIONConventional semiconductor memories typically use access buffers, such as a write buffer and a read buffer, for exchanging data between an interface and a memory array. Flash memory devices, for example, ordinarily use one buffer for writing to Flash memory cells and another buffer for reading therefrom. These buffers are usually sized to accommodate common addressable units of memory, such as a sector or a byte of data. In mass storage applications, Flash memory devices include NAND-type interfaces that serialize, at least in part, address and data onto a common bus. Further, Flash-based memories in mass storage applications typically use a state machine to manage executions of commands. While write and read buffers for conventional memories are functional, they have limitations. Some of these limitations are linked, at least to some degree, to the underlying semiconductor memory technology, such as Flash memory technology.
There are continuing efforts to improve technology for accessing memory.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings. Like reference numerals refer to corresponding parts throughout the several views of the drawings. Note that most of the reference numerals include one or two left-most digits that generally identify the figure that first introduces that reference number. Although the Drawings depict various examples of the invention, the invention is not limited by the depicted examples. Furthermore, the depictions are not necessarily to scale:
In view of the foregoing, integrated circuit 100 can implement a specific amount of data bits to be written per write cycle to reduce, for example, the peak power necessary to program the data bits without exceeding a peak power threshold. Thus, integrated circuit 100 can use smaller write drivers to reduce space or area that otherwise would be consumed to write larger amounts of data bits. Further, integrated circuit 100 can use an adjustable size for write buffers 154 and 156 for selecting a specific amount of data bits that are written per write cycle to provide for a write speed that is equivalent to, or is substantially equivalent to, an interface data rate, especially in implementations in which the rate at which a write voltage is applied to memory cells varies the programming time for memory cells in a write cycle. Between interface data rates and write speeds to memory, it is the latter that usually can determine an interface data rate. By sizing write buffers 154 and 156 appropriately, integrated circuit 100 can effectively set and maintain write speeds independent from modifications in the rate at which a write voltage is applied to memory cells, which, in turn, increases the time to complete a write cycle.
In some embodiments, integrated circuit 100 can vary the rate at which a write voltage is applied to reduce instantaneous changes in current and/or voltage, thereby reducing the “disturb effects,” for example, between memory cells located in, for example, different planes of multiple layers 112 of memory 102. Further, integrated circuit 100 can also vary the rate at which a write voltage increases or decreases to reduce the magnitudes of overshoot voltages when programming memory cells in multiple layers 112 of memory 102, whereby each memory cell can store multiple states. Disturb effects generally refer to the effects, such as the electrical and/or electromagnetic coupling (or otherwise), on neighboring memory cells not selected for programming when other memory cells are written. So, integrated circuit 100 can reduce disturb effects by varying a programming characteristic, such as the write voltage. In at least embodiment, the size of partitions, such as partitions 106a and 106b, can be sized to reduce overall capacitance to increase access times to memory cells, and to further reduce disturb effects by, for example, reducing the amount of memory crossed by or adjacent to an active bit line. In one embodiment, the size of the partitions in memory 102 can be set to be equivalent to the sizes of write buffers 154 and 156. Note that the size of a partition can include any amount of memory cells and configured to be separately accessible for programming and/or reading. Examples of partitions include partitions 108, 109 and 110, as well as partitions 104a and 104b.
In at least one embodiment, the memory cells of memory 102 may be third dimension memory cells. A memory can be “third dimension memory” when it is fabricated above other circuitry components, the components usually including a silicon substrate, polysilicon layers and, typically, metallization layers. By using non-volatile third dimension memory arrays, memory systems can be vertically configured to reduce die size and while preserving overall functionality of an integrated circuit. In at least one instance, a third dimension cell can be a two-terminal memory element that changes conductivity as a function of a voltage differential between a first terminal and a second terminal. One example of third dimension memory is disclosed in U.S. patent application Ser. No. 11/095,026, filed Mar. 30, 2005, and titled “Memory Using Mixed Valence Conductive Oxides,” hereby incorporated by reference in its entirety and for all purposes, describes two-terminal memory cells that can be arranged in a cross-point array. The application describes a two-terminal memory element that changes conductivity when exposed to an appropriate voltage drop across the two terminals. The memory element includes an electrolytic tunnel barrier and a mixed valence conductive oxide. The voltage drop across the electrolytic tunnel barrier causes an electrical field within the mixed valence conductive oxide that is strong enough to move oxygen ions out of the mixed valence conductive oxides and into the electrolytic tunnel barrier. Oxygen depletion causes the mixed valence conductive oxide to change its valence, which causes a change in conductivity. Both the electrolytic tunnel barrier and the mixed valence conductive oxide do not need to operate in a silicon substrate, and, therefore, can be fabricated above circuitry being used for other purposes (such as selection circuitry). The two-terminal memory elements can be arranged in a cross-point array such that one terminal is electrically coupled with an x-direction line and the other terminal is electrically coupled with a y-direction line. A stacked cross-point array consists of multiple cross-point arrays vertically stacked upon one another, sometimes sharing x-direction and y-direction lines between layers, and sometimes having isolated lines. When a first write voltage VW1 is applied across the memory element, (typically by applying ½ VW1 to the x-direction line and ½ −VW1 to the y-direction line) it switches to a low resistive state. When a second write voltage VW2 is applied across the memory element, (typically by applying ½ VW2 to the x-direction line and ½ −VW2 to the y-direction line) it switches to a high resistive state. Typically, memory elements using electrolytic tunnel barriers and mixed valence conductive oxides require VW1 to be opposite in polarity from VW2.
Note that memory 102, which can also be referred to as a “memory array,” in some embodiments, can be implemented using layers 112 of memory elements arranged in blocks or sub-blocks to store data. By utilizing third dimension memory, driving voltage requirements can be met by using multiple, smaller charge pumps in some cases. Further, multiple, simultaneous accesses of memory elements in a memory array can be performed. While various types and designs of charge pump circuits can be used, the implementation of multiple, smaller charge pumps in a third dimension memory allows for die size to be reduced while improving the capabilities of integrated circuit 100, such as faster access times for performing multiple, simultaneous programmable sequences.
Buffering system 150 is configured to implement control signals path 170 and data signals path 172. In operation, one control signal from control signals path 170 is configured to control partition selector 152 to select which one of partition lines 160 is to be written. Another control signal from control signals path 170 can configure write buffer 154 to write to multiple layers 112 of memory 102 (e.g., via a first subset 162 of partition lines), and can further configure write buffer 156 to load data for writing during the next write cycle (e.g., via data signal path 172). During the next write cycle, the roles of write buffers 154 and 156 switch. As such, control signals on control signals path 170 can configure write buffer 154 to write via a second subset 164 of partition lines. Write buffers 154 and 156 can be configured to write and load substantially in synchronicity during a write cycle. For example, buffering system 150 can load write buffer 154 at the same time (or at substantially the same time) buffering system 150 uses write buffer 156 to write to memory 102. Further, the sizes of write buffers 154 and 156 can be sized such that the time to load one write buffer is substantially the same as the time to write to memory cells from the other write buffer. In at least one instance, one write buffer is loaded with data from data signals path 172 at a write data interface data rate, while the write data is written from the other write buffer at a particular write speed.
As an example, consider that the write data interface data rate is eight bits per one unit of time, and a write cycle is about four units of time. Accordingly, at least one write buffer can be configured to include thirty-two bits for writing four groups of eight-bit data. As used herein, the term “interface data rate” generally refers, at least in some embodiments, to the rate at which an amount of data bits (e.g., write data bits) are communicated per unit of time via a memory interface. As used herein, the term “write speed” generally refers, at least in some embodiments, to an amount of data bits written to memory cells (e.g., in a partition) per unit time, where such an amount can be an average number of data bits. In accord with the last example, consider that the write speed would be equivalent to 8 bits per unit time for a write buffer that can write 32 bits in one write cycle lasting four units of time. In one embodiment, the “write speed” can relate to a “programming time,” which, at least in some cases, refers to the approximate amount of time required to program a memory cell. In at least one embodiment, a third dimension memory cell can be programmed in about 500 nanoseconds, or less. In at least one other embodiment, a third dimension memory cell can be programmed in about 50 nanoseconds, or less.
Interface 410 also includes a buffer controller 412 configured to load data into a first write buffer (e.g., write buffer 420), and to write data from a second write buffer (e.g., write buffer 422), whereby buffer controller 412 synchronizes the loading and writing within an interval or write cycle. In one embodiment, interface 410 and buffer controller 412 cooperate to provide interface control and data signals 414 to write buffer 420 and write buffer 422, whereby write data of interface control and data signals 414 is transmitted to the buffers in accordance with an interface data rate. Further, buffer controller 412 is configured to alternately configure write buffer 420 and write buffer 422 to respectively load data at the interface data rate and to write data at a write speed, which can be substantially the same as the interface data rate. In a specific embodiment, buffer controller 412 can include a counter set to count data bits until a number of the data bits that are loaded into one of the write buffers is equivalent to the size of the buffer. So when a particular write buffer is full, or is substantially full, buffer controller 412 switches the operation of the write buffers (e.g., from loading to writing, or vice versa).
During a write operation, an address to which data is being written is latched into address register 430. Address register 430 can generate a control signal for controlling partition selector 440. Further, address register 430 can manage writing data to specific access units, which can be equivalent to the smallest addressable unit of memory. Or, the access units can be larger or smaller. In various embodiments, an access unit can be the width (i.e., the same number of bits wide) as a partition. For example, access units 452 and 454 can reside in partition 1 (“Pt1”) 497 and partition 2 (“Pt2”) 499, respectively. Note that partitions 497 and 499 need not extend across the entire length of memory array 450a. In some embodiments, access units 452 and 454 each can constitute a partition. In at least one embodiment, buffer controller 412 is configured to, in whole or in part, convert write data received at a memory interface having an size to accommodate an interface, such as 8 bits wide, into access units that can be, for example, 6 bits wide. Buffer controller 412 can also do the same, but in a reverse manner, to convert read data received as access units from the array sized at, for example, 6 bits, into read data sized at 8 bits wide, for example, to match read data port width of the memory interface. Note that in some embodiments, access unit sizes and/or partition sizes for writing and reading can be different.
For example, if memory array 450a supported a mass storage application, then its smallest addressable unit of memory can be a sector. In addition, address register 430 can pass the address to address decoder 432. Further to this example, consider that write buffer 420 and write buffer 422 are each configured to write four bytes to access units having the same size. Address register 430 can cooperate with buffer controller 412 to coordinate the writing of each access unit until an entire sector is written. In one write cycle, address register 430 can control partition selector 440 to route write data from write buffer 420 to access unit 452, whereas in another write cycle, address register 430 can cause partition selector 440 to route write data from write buffer 422 to access unit 454. This continues until the sector is written. Similarly, address register 430 can cooperate with buffer controller 412 to coordinate the writing of each access unit in a memory that has the byte as the smallest addressable unit of memory. For example, access units 452 and 454 can be four bits wide. As such, access units 452 and 454 can constitute one byte, which can be an addressable as a memory location. Among other things, address decoder 432 decodes the address to select both a plane (or a layer) and an X-line associated with a row in memory array layer 450a. X-line driver 442 is configured to generate for a selected X-line a programming voltage signal and a read voltage signal during a write cycle and a read cycle, respectively. In at least one instance, write data is transmitted to the write buffers at a write data interface data rate, which is the interface data rate for write data. Note that a read data interface data rate is the interface data rate for read data, which can be the same as, or different from, the write data interface data rate. In some embodiments, there can be more than two write buffers.
In one embodiment, integrated circuit portion 600 implements write override circuit 500 in a two-phase process during a write cycle, whereby both phases can occur in parallel or in series. First, integrated circuit portion 600 detects a write to an access unit including memory cell 622a. In response, write buffer 650 communicates write data 640 to write override circuit 500 and to Y-line voltage switch 610. Second, variable programmer circuit 601 generates an X-line read voltage at X-line output 604, which cause memory cell 622a to read out a state stored therein. Memory cell 622a communicates the state down Y-line 666 to write override circuit 500. If the states are the same, write override circuit 500 does not generate a data miscompare signal 642, thereby disabling Y-line voltage switch 610, which, in turn, blocks a Y-line write voltage at Y-line output 602 from accessing memory cell 622a. As such, write data 640 from write buffer 650 will not be written into array 620. This prevents subjecting memory cell 622a to an unnecessary write voltage, thereby enhancing that cell's reliability. But if the states differ, then write override circuit 500 generates data miscompare signal 642, which indicates that the new data to written is different than the currently-stored data. Thus, data miscompare signal 642 enables Y-line voltage switch 610 to propagate the Y-line write voltage at Y-line output 602 to memory cell 622a so that write data 640 (or a portion thereof) can be written into array 620.
Interface 720 also includes a buffer controller 722 configured to control the reading of data into a first write buffer (e.g., read buffer 770), and the transmitting of data from a second write buffer (e.g., read buffer 772), whereby buffer controller 712 synchronizes the reading and transmitting to a certain interval or read cycle. As used herein, the term “read cycle” generally refers, at least in one embodiment, to an amount of time during which a read buffer is filled, or substantially filled, with read data from layer 450a, the read data being read out from at a particular read speed. As used herein, the term “read speed” generally refers, at least in one embodiment, to the rate at which one or more data bits are read from memory cells, such as third dimension memory cells. In one embodiment, interface 720 and buffer control 712 cooperate to provide interface control 724 to read buffer 770 and read buffer 772 to alternately configure read buffer 770 and read buffer 772 to, for example, respectively read data from layer 450a at a read speed and to transmit the read data at a read data interface data rate. In one read cycle, read buffer 770 can read the data from access unit 752, whereas in another read cycle, buffer 772 can read the data from access unit 754. The read data continues being read out via multiplexer (“MUX”) 760 and interface 720 to an external terminal (not shown), such as an I/O pin, as read data in data signals 404. In at least one embodiment, buffer controller 722 can include a counter set to count data bits until a number of the data bits that is read into one of the read buffers is equivalent to the size of the read buffer. So when a particular read buffer is full, or is substantially full, buffer controller 722 switches the operation of the read buffers (e.g., from read to transmitting, or vice versa). Note that buffer controller 722 can control via multiplexer 760 which of read buffers 770 and 772 will be selected to provide read data.
Note that in some embodiments, the sizes of read buffers 770 and 772 can be determined as a function of a read voltage. As read speeds and/or voltages for memory cells, such as third dimension memory cells, can be less than write speeds and/or voltages for the same cells, then a read cycle can be less than a write cycle. Accordingly, the size of read buffers 770 and 772 can be different than the size of write buffers. In at least one embodiment, the size of read buffers 770 and 772 can be the same size as the write buffers. In some embodiments, there can be more than two read buffers.
Further, third dimension memory cells in memory 810 can be produced with equivalent fabrication processes that produce logic layer 820. As such, both can be manufactured in the same or different fabrication plants, or “fabs,” to form integrated circuit 800 on a single substrate. This enables a manufacturer to first fabricate logic layer 820 using a CMOS process in a first fab, and then port logic layer 820 to a second fab at which additional CMOS processing can be used to fabricate multiple memory layers 812 directly on top of logic layer 820. Note that memory 810 can be vertically stacked on top of logic layer 820 without an intervening substrate. In at least one embodiment, multiple memory layers 812 are fabricated to arrange the third dimension memory cells in a stacked cross point array. In particular, two-terminal memory elements can be arranged in a cross point array such that one terminal is electrically coupled with an X-direction line and the other terminal is electrically coupled with a Y-direction line. A stacked cross point array includes multiple cross point arrays stacked upon one another, sometimes sharing X-direction and Y-direction lines between layers 812, and sometimes having isolated lines. Both single-layer cross point arrays and stacked cross point arrays may be arranged as third dimension memories.
Embodiments of the invention can be implemented in numerous ways, including as a system, a process, an apparatus, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical or electronic communication links. In general, the steps of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the various embodiments of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice embodiments of the invention. In fact, this description should not be read to limit any feature or aspect of the present invention to any embodiment; rather features and aspects of one embodiment can readily be interchanged with other embodiments.
Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; many alternatives, modifications, equivalents, and variations are possible in view of the above teachings. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description. Thus, the various embodiments can be modified within the scope and equivalents of the appended claims.
Further, the embodiments were chosen and described in order to best explain the principles of the invention and its practical applications; they thereby enable others skilled in the art to best utilize the various embodiments with various modifications as are suited to the particular use contemplated. Notably, not every benefit described herein need be realized by each embodiment of the present invention; rather any specific embodiment can provide one or more of the advantages related to the various embodiments of the invention. In the claims, elements and/or operations do not imply any particular order of operation, unless explicitly stated in the claims. It is intended that the following claims and their equivalents define the scope of the invention.
Claims
1. A method for accessing memory in an integrated circuit, comprising:
- alternating selection of a first write buffer for loading and a second write buffer to write a first number of bits during a write cycle; and
- alternating selection of a first read buffer and a second read buffer to read a second number of bits during a read cycle; and
- decoding an address for accessing a number of third dimension memory cells to either write the first number of bits or read the second number of bits, the number of third dimension memory cells residing in at least one layer of multiple layers of the third dimension memory cells.
2. The method of claim 1, wherein the decoding the address comprises
- determining the at least one layer of multiple layers from at least a portion of the address, and
- transmitting the first number of bits in a direction substantially orthogonal to the at least one layer of the multiple layers.
3. The method of claim 1, wherein the first number of bits is different than the second number of bits.
4. The method of claim 1, wherein the alternating selection of the first write buffer and the second write buffer comprises loading a number of bits into the first write buffer at a write data interface data rate that is substantially equivalent to a write speed at which the first number of bits is written.
5. The method of claim 1 and further comprising:
- writing the first number of bits into the number of third dimension memory cells using a programming voltage having a slew rate over at least a portion of the write cycle; and
- implementing the first number of bits as a size for the first write buffer and the second write buffer to maintain a write speed for the slew rate.
6. The method of claim 1 and further comprising:
- implementing the first number of bits as a size for the first write buffer and the second write buffer to maintain compliance with respect to a peak power threshold.
7. A method for accessing memory in an integrated circuit, comprising:
- determining a size for a plurality of write buffers as a function of a slew rate for a programming voltage; and
- configuring a buffer controller to write to a layer constituting one of multiple layers of a memory from a first subset of the write buffers and to load a second subset of the write buffers,
- wherein writing data from the first subset substantially overlaps an interval in which the second subset is loaded.
8. The method of claim 7, wherein the determining the size comprises selecting the slew rate for writing to a plurality of third dimension memory cells disposed in the layer.
9. The method of claim 7, wherein determining the size comprises selecting the size as a multiple of an amount of data bits being loaded at an interface data rate.
10. The method of claim 7, wherein configuring the buffer controller comprises
- setting a counter to count data bits until a number of the data bits that is loaded into the second subset of write buffers is equivalent to the size, and
- configuring the buffer controller to switch the second subset of write buffers from loading to writing.
11. The method of claim 7, wherein determining the size comprises
- determining a size for a plurality of read buffers as a function of a read voltage, and
- configuring the buffer controller to read from the multiple layers of memory into a first subset of the read buffers and a second subset of the read buffers,
- wherein the size of each of plurality of read buffers is different than the size for the plurality of write buffers.
12. The method of claim 7 and further comprising:
- detecting a write of a state to a memory cell storing the same state; and
- preventing the write of the state to the memory cell.
13. The method of claim 12, wherein detecting the write of the state comprises
- reading a stored state in the memory cell,
- comparing the stored state to the state associated with the write, and
- disabling the write if there is a match between the stored state and the state associated with the write.
14. The method of claim 7 and further comprising:
- configuring a write operation to include a read operation for at least one location in the memory;
- comparing write data for the write operation to read data for the read operation; and
- determining whether to disable the write operation to the at least one location.
15. The method of claim 14, wherein the determining comprises disabling the write operation if the write data is substantially identical to the read data.
7327600 | February 5, 2008 | Norman |
7573753 | August 11, 2009 | Atwood et al. |
20080005459 | January 3, 2008 | Norman |
20080084727 | April 10, 2008 | Norman |
- U.S. Appl. No. 12/004,740, filed Dec. 23, 2007, Robert Norman.
- U.S. Appl. No. 12/004,768, filed Dec. 22, 2007, Robert Norman.
- U.S. Appl. No. 11/975,275, filed Oct. 17, 2007, Robert Norman.
- U.S. Appl. No. 11/893,647, filed Aug. 16, 2007, Robert Norman.
- U.S. Appl. No. 11/843,644, filed Aug. 16, 2007, Robert Norman.
- U.S. Appl. No. 12/004,192, filed Dec. 20, 2007, Robert Norman.
- U.S. Appl. No. 12/004,292, filed Dec. 19, 2007, Robert Norman.
- U.S. Appl. No. 12/005,685, filed Dec. 28, 2007, Robert Norman.
- U.S. Appl. No. 12/004,734, filed Dec. 24, 2007, Robert Norman.
- U.S. Appl. No. 12/006,006, filed Dec. 29, 2007, Robert Norman.
- U.S. Appl. No. 12/008,077, filed Jan. 7, 2008, Robert Norman.
- U.S. Appl. No. 12/006,970, filed Jan. 8, 2008, Robert Norman.
Type: Grant
Filed: Jan 9, 2008
Date of Patent: Feb 15, 2011
Patent Publication Number: 20090177833
Assignee:
Inventor: Robert Norman (Pendleton, OR)
Primary Examiner: David Lam
Application Number: 12/008,212
International Classification: G11C 7/10 (20060101);