The present invention generally relates to the field of semiconductor devices. More specifically, embodiments of the present invention pertain to memory devices, including both volatile and non-volatile memory devices, such as flash memory devices, resistive random-access memory (ReRAM), and/or conductive bridging RAM (CBRAM) processes and devices.
Non-volatile memory (NVM) is increasingly found in applications, such as solid-state hard drives, removable digital picture cards, and so on. Flash memory is the predominant NVM technology in use today. However, flash memory has limitations, such as a relatively high power, as well as relatively slow operation speed. Microprocessor performance can be very sensitive to memory latency. Many non-volatile memory devices have an access time or latency that is relatively slow as compared to the microprocessor. In addition, many implementations of various communication protocols between a microprocessor/host and memory, such as serial peripheral interface (SPI) can add even more latency than is required by the memory array itself.
Reference will now be made in detail to particular embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents that may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be readily apparent to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, processes, components, structures, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention.
Some portions of the detailed descriptions which follow are presented in terms of processes, procedures, logic blocks, functional blocks, processing, schematic symbols, and/or other symbolic representations of operations on data streams, signals, or waveforms within a computer, processor, controller, device, and/or memory. These descriptions and representations are generally used by those skilled in the data processing arts to effectively convey the substance of their work to others skilled in the art. Usually, though not necessarily, quantities being manipulated take the form of electrical, magnetic, optical, or quantum signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer or data processing system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, waves, waveforms, streams, values, elements, symbols, characters, terms, numbers, or the like.
Particular embodiments may be directed to memory devices, including volatile memory, such as SRAM and DRAM, and including non-volatile memory (NVM), such as flash memory devices, and/or resistive switching memories (e.g., conductive bridging random-access memory [CBRAM], resistive RAM [ReRAM], etc.). Particular embodiments can include structures and methods of operating flash and/or resistive switching memories that can be written (programmed/erased) between one or more resistance and/or capacitive states. In one particular example, a CBRAM storage element may be configured such that when a forward or reverse bias greater than a threshold voltage is applied across electrodes of the CBRAM storage element, the electrical properties (e.g., resistance) of the CBRAM storage element can change. In any event, certain embodiments are suitable to any type of memory device, and in particular NVM devices, such as flash memory devices, and may include resistive switching memory devices in some cases.
Referring now to
Various interface signals, such as in a serial peripheral interface (SPI), can be included for communication between host 102 and memory device 104. For example, serial clock (SCK) can provide a clock to device 104, and may be used to control the flow of data to the device. Command, address, and input data (e.g., via I/O pins) can be latched by memory device 104 on a rising edge of SCK, while output data (e.g., via I/O pins) can be clocked out of memory device 104 by SCK or data strobe (DS). Chip select (CS), which may be active low, can be utilized to select memory device 104, such as from among a plurality of such memory devices sharing a common bus or circuit board, or otherwise as a way to access the device. When the chip select signal is de-asserted (e.g., at a high level), memory device 104 can be deselected, and placed in a standby mode. Activating the chip select signal (e.g., via a high to low transition on CS) may be utilized to start an operation, and returning the chip select signal to a high state can be utilized for terminating an operation. For internally self-timed operations (e.g., a program or erase cycle), memory device 104 may not enter standby mode until completion of the particular ongoing operation if chip select is de-asserted during the operation.
In the example interface, data can be provided to (e.g., for write operations, other commands, etc.) and from (e.g., for read operations, verify operations, etc.) memory device 104 via the I/O signals. For example, input data on the I/O can be latched by memory device 104 on edges of SCK, and such input data can be ignored if the device is deselected (e.g., when the chip select signal is de-asserted). Data can be output from memory device 104 via the I/O signals as well. For example, data output from memory device 104 can be clocked out on edges of DS or SCK for timing consistency, and the output signal can be in a high impedance state when the device is deselected (e.g., when the chip select signal is de-asserted).
Referring now to
Referring now to
I/O buffers and latches 904 can control the input of data from interface control and logic 208, and the output of data to interface control and logic 208. For example, chip select based control and clock based control of data read from memory array 202 can be accommodated via I/O buffers and latches 904. That is, registers/latches in I/O buffers and latches 904 can be controlled by way of the toggling of SCK during burst reads and sequential fetch operations, as described herein. SRAM data buffer(s) 204 can buffer/store data between memory array 202 and I/O buffers and latches 904. Address latch block 906 can receive address information via interface control and logic 208, and may provide latched addresses to X-decoder 908 for row addresses, and to Y-decoder 910 for column addresses. Incrementing of addresses can be performed via address latch block 906 and/or control and protection logic 902. Y-decoder 910 can provide column addresses to Y-Gating 912, which can include pass gates or the like to multiplex I/O lines to/from memory array 202. As discussed above, memory array 202 can include an array of volatile memory cells, or non-volatile memory cells (e.g., CBRAM, ReRAM, Flash, etc.).
In one embodiment, a memory device can include: a memory array arranged in a plurality of rows and a plurality of columns; a plurality of memory cell layers at each row and column intersection, where each memory cell layer is configured to be set to a predetermined conductance state such that the plurality of memory cell layers corresponds to a plurality of predetermined conductance states; a row control circuit configured to apply a plurality of voltages to the plurality of rows by applying a plurality of sub-voltages on each row of the plurality of rows, where each sub-voltage of the plurality of sub-voltages corresponds to a different one of the plurality of memory cell layers, and where each sub-voltage is proportional to the voltage of the plurality of voltages on the corresponding row; and a sensing circuit configured to determine a column current flowing through a selected column of the plurality of columns in response to the application of the plurality of voltages to the plurality of rows, where the column current is a sum of currents through each memory cell layer that corresponds to the selected column.
Referring now to
Referring now to
One or more memory devices or memory cell layers at node ij may be configured to provide a path of conductance Gij between row i and column j. For example, input voltages Vi may be applied to the rows (e.g., by row control circuit 402). The currents through all nodes on a given column j may be added up, thus yielding a total current Ij (e.g., can be sensed via sensing circuit 404). For example, the current in the first (j=1) column in
The input Vi can generally be continuous (e.g., analog) variables, and it is desirable for many problems of interest that the conductances Gij also be continuous variables, in order to allow any vector V and matrix G to be used and to make the multiplication as accurate as possible. For a given input vector V, any inaccuracy or unintended change in the value of one or more of the conductances Gij can cause inaccuracy in one or more output currents Ij. Thus, a general case of memory-based vector-matrix multiplication may call for memory cells having conductances that: (i) can be set to a high number of different conductance values in a controllable manner; and (ii) do not change values after being set. This can be difficult to meet with existing memory technologies, and becomes increasingly difficult to meet as most memory technologies are scaled to smaller nodes. Therefore, a challenge for memory-based vector-matrix multiplication is to maximize the numerical accuracy of the computation, while also minimizing the number of stable and repeatable conductance levels that the memory cells are to achieve.
In particular embodiments, a “split-voltage” approach to memory-based vector-multiplication is disclosed. Numerical accuracy can be judged by how well the currents Ij which flow down the j columns match their intended values. Although the current on a given column can be written as a sum of ViGij products (e.g., I1=V1G11+V2G21+V3G31+V4G41), the individual terms (e.g., V2G21) themselves may be of less concern as standalone values. Instead, the sum of the individual products can be of the greater concern, and as such the accuracy and repeatability may be determined primarily based on maintaining this summation of ViGij products as unchanged. In the “sub-voltage” approach of certain embodiments, a third “dimension” or layer, k, is introduced, such that each ViGij product may be written as a sum ViGij=ΣkVkiGkij, where Σk represents a sum over the k-component. The current Ij originally flowing down column j can accordingly be a sum of the k “sub-currents” Ikj, i.e., Ij=ΣkIkj=ΣkΣiVkiGkij. This may provide an additional degree of freedom that allows limitations on the physical conductances that are achievable by a memory cell to be accommodated by suitable choices of the “sub-voltages” Vik and number of layers k.
Referring now to
Referring now to
In particular embodiments, a much higher number of states than in other approaches are achievable with different split-voltage schemes. The split-voltage concept as described herein can allow the multi-level capability of a memory cell to be fully utilized, without requiring such memory cells to provide relatively small changes in conductance, or relatively large currents. In addition, this approach allows for improved resolution near 0 current. Many choices of sub-voltages and numbers of cells are possible in certain embodiments. Table 1 below shows the number of current levels accessible (excluding 0 GV) for various different choices of sub-voltages, whereby the conductance states of a cell are assumed to be equally spaced in increments of “G”, and the input voltage is assumed to be positive (i.e., V>=0) in this example.
In particular embodiments, a number of different column currents is equal to
where NG is the number of predetermined conductance states, NV is the number of memory cell layers, and V/ki is the sub-voltage applied to memory cell layer i. The 1 may be included in order to represent the case where all cells are in an off state and the current is approximately 0 (Table 1 does not include this 0-current state). This example formula above assumes all the sub-voltages are the same sign. For the case where any given sub-voltages could be positive or negative, a 2 may be added in front of the NG, i.e.,
Further, a bit equivalent to the number of different column currents may be equal to the binary logarithm of
when the sub-voltages are the same sign, or the binary logarithm of
when the sub-voltages could be positive or negative.
Referring now to
Referring now to
In one embodiment, a method of controlling a memory device having a memory array arranged in a plurality of rows and a plurality of columns, and a plurality of memory cell layers at each row and column intersection, can include: setting each memory cell layer to a predetermined conductance state such that the plurality of memory cell layers corresponds to a plurality of predetermined conductance states; applying a plurality of voltages to the plurality of rows by applying a plurality of sub-voltages on each row of the plurality of rows, where each sub-voltage of the plurality of sub-voltages corresponds to a different one of the plurality of memory cell layers, and where each sub-voltage is proportional to the voltage of the plurality of voltages on the corresponding row; and determining a column current flowing through a selected column of the plurality of columns in response to the application of the plurality of voltages to the plurality of rows, where the column current is a sum of currents through each memory cell layer that corresponds to the selected column.
Referring now to
Referring now to
Referring now to
Referring now to
While the above examples include circuit, operational, and structural implementations of certain memory cells and programmable impedance devices, one skilled in the art will recognize that other technologies and/or cell structures can be used in accordance with embodiments. Further, one skilled in the art will recognize that other device circuit arrangements, architectures, elements, and the like, may also be used in accordance with embodiments. Further, the resistance levels, operating conditions, and the like, may be dependent on the retention, endurance, switching speed, and variation requirements of a programmable impedance element.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US20/34919 | 5/28/2020 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62855219 | May 2019 | US |