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, automotive electronics, home appliances, 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 serial clock 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). For example, input data may be clocked either on one edge (SDR/STR) or both edges (DDR/DTR) of SCK for command, address, or data, or a combination of both. Similarly, output data may be clocked on either one edge (SDR/STR) or both edges (DDR/DTR) of SCK or DS for data. Further, output data may, but is not required to, use the same clocking mode as the input data. Also, in some devices/arrangements, DS can be an optional signal. Further, while 4 or 8 I/O lines are shown in the particular example of
Referring now to
Referring now to
I/O buffers and latches 304 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 304. That is, registers/latches in I/O buffers and latches 304 can be controlled by way of the toggling of serial clock 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 304. Address latch block 306 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 310 for column addresses. Incrementing of addresses can be performed via address latch block 306 and/or control and protection logic 302. Y-decoder 310 can provide column addresses to Y-Gating 312, 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 order to perform read operations on a standalone non-volatile memory (NVM) device (e.g., 104), such a memory device may require a power-hungry charge pump, band gap, and/or other circuits. In existing NVM devices, these circuits may not be turned off during standby because a read request may arrive at any time, and it can take too long for the memory device to turn these circuits on to support the incoming read request. Accordingly, systems that spend relatively long periods of time without needing to access an external NVM (e.g., because they run primarily from internal memory, are in a standby mode, etc.) can consume excess power.
In one approach, the read charge pump, band gap, and other circuits can be turned off by switching the NVM device to power down mode by software control. For example, this can be done by an explicit command that is typically initiated by software. However, in eXecute-in-Place (XiP) mode, where there is no a-priori knowledge of when an instruction-cache miss will occur and thereby when a read request may be initiated, software may not be utilized to insert a wake-up command.
Particular embodiments can include an automatic switching to power down mode for power savings in the memory device. For example, a data strobe signal (e.g., part of the JEDEC xSPI spec) may be utilized in some cases. Certain embodiments also support modifications to the host controller (e.g., 102) and/or to the memory device (e.g., 104), in order to implement the power down entry/exit as described herein. In one embodiment, the host controller can be modified to accommodate switching to the power down mode, and exiting therefrom. In another embodiment, the memory device can be modified for automatic switching to the power down mode, as well as exiting therefrom. Such implementations may be compatible with existing xSPI host controllers, whereby the XiP system is designed such that longer cache-miss latency can be tolerated in certain situations. Further, the data strobe signal can be utilized, such as to indicate to the host that data is ready to be output from the memory device.
In one embodiment, a method of controlling a memory device can include: (i) determining, by the memory device, a time duration in which the memory device is in a standby mode; (ii) automatically switching the memory device from the standby mode to a power down mode in response to the time duration exceeding a predetermined duration; (iii) exiting from the power down mode in response to signaling from a host device via an interface; and (iv) toggling a data strobe when data is ready to be output from the memory device in response to a read command from the host device.
In one embodiment, a memory device can include: (i) a counter circuit configured to determine a time duration in which the memory device is in a standby mode; (ii) a controller configured to automatically switch the memory device from the standby mode to a power down mode in response to the time duration exceeding a predetermined duration; (iii) the controller being configured to exit from the power down mode in response to signaling from a host device via an interface; and (iv) a data path circuit configured to toggle a data strobe when data is ready to be output from the memory device in response to a read command.
In one embodiment, a host device can include: (i) a counter circuit configured to determine a time duration in which a memory device is in a standby mode, wherein the host device is coupled to the memory device via an interface; (ii) a controller configured to send a power down command to the memory device via the interface in response to the time duration exceeding a predetermined duration; (iii) the controller being configured to send a wake-up command to the memory device to exit from the power down mode; and (iv) a data path circuit configured to send a read command to the memory device after the memory device has returned to the standby mode.
Referring now to
In this particular case, the host controller can be changed to accommodate the function of determining when the memory device has been in standby mode for a sufficiently long time such that the power down command can be issued, and with no change to the corresponding NVM. In this way, the host controller can detect a pre-specified “long” period of time in which no accesses were made to the NVM, and then can send a command to the NVM to switch to a “power down” mode. As a result, the use of unnecessary power in the memory device can be avoided in cases whereby the memory device is not to be accessed for this long period of time. It should be noted that, while changes to either the host device or the memory device are independently discussed herein, both the host device and the memory device can include modifications to implement certain embodiments in some cases.
Referring now to
Referring now to
In example 600, the memory device can be in a standby mode until time 602 when the duration of this standby mode has been determined by the host device to exceed a predetermined duration. As discussed above, this determination can include counting a number of clock cycles during which the memory device is in a standby mode and that exceed a predetermined number. This duration is indicated in the diagram as “Long.” As a result, the host device can prepare to send a sleep command to the memory device, which can also increase the ICC of the memory device to a level above the standby mode current such that the incoming command can be detected. The host device may issue this sleep command that results in the memory device entering power down mode at 604. During the power down mode, various circuits (e.g., charge pumps, band gap generators, etc.) can be disabled on the memory device in order to reduce the current drawn by the memory device to a lower level, as shown at 604. This status can remain until an SPI bus request (e.g., a pulse signal) is received in the host device to indicate that a request for an SPI access is to come from the host device. For example, a bus master may send this SPI bus request signal to the host device. In response, the host device can provide a wake-up command to the memory device in order to exit from the power down mode at 606.
Referring now to
In example 700, the memory device can determine a time duration in which the memory device is in a standby mode at 702. At 704, a comparison can be made to determine if this time duration exceeds a predetermined time duration, such as by counting a predetermined number of cycles. For example, this predetermined time duration to define a “long duration” can be a configuration value that is provided from the host device to the memory device, and/or it can be a default or pre-defined value that comes with the memory device, and in any event may be a value that is stored in a register on the memory device. If this long duration is exceeded, at 706, the memory device can automatically switch itself from the standby mode into a power down mode. The memory device can wake up upon receiving a signal from the host device via the interface (e.g., SPI bus). For example, such signaling can include simply an activation of the chip select signal at 708 and/or detection of a read command at 710. In response, the memory device can exit from the power down mode and wake-up to be ready to receive a command at 712. In addition, the data strobe signal can be deactivated (e.g., driven by the memory device to a logic low or logic high) until data is ready at 714. Once the data is ready to be provided from the memory device in response to the read command, the data strobe can be toggled and the data may be output, at 716. This data strobe toggling can indicate to the host that the read data is ready from the memory device
Referring now to
Referring now to
Referring now to
In example 1000, the memory device can exit from the power down mode by receiving a read command as detected at 1002. This can cause the memory device to begin waking up and powering on all the circuitry that is needed for executing the read operation, and this may be ready to begin at 1004. When data is ready to be output from the memory device to satisfy the read request at 1006, the data strobe signal can toggle in order to indicate to the host device that the data is ready. Once the chip select is de-activated (e.g., goes high), the memory device can return to a standby state, which may include releasing its control on the data strobe signal such that the data strobe is in a high impedance state.
Certain embodiments may be particularly applicable in systems that can tolerate occasional longer latency for some cache misses. However, this situation may be mitigated somewhat by keeping critical code on chip (e.g., on host device 102), and/or by ensuring wake up of the NVM by performing a pre-read at the beginning of a critical code section that is to be executed on the host device.
While the above examples include circuit, operational, and structural implementations of certain memory arrangements and devices, one skilled in the art will recognize that other technologies and/or architectures, as well as other modes of operation, 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. 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.
This application claims the benefit of U.S. Provisional Application No. 62/940,334, filed Nov. 26, 2019, and which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6321315 | LaBerge | Nov 2001 | B1 |
7292494 | Hsu et al. | Nov 2007 | B2 |
7372716 | Roehr et al. | May 2008 | B2 |
7397721 | Lee | Jul 2008 | B2 |
7436699 | Tanizaki et al. | Oct 2008 | B2 |
7562180 | Gyl et al. | Jul 2009 | B2 |
7593263 | Sokolov et al. | Sep 2009 | B2 |
8787097 | Chong | Jul 2014 | B1 |
8806071 | Zitlaw | Aug 2014 | B2 |
8966151 | Zitlaw | Feb 2015 | B2 |
9037890 | De Caro et al. | May 2015 | B2 |
9454421 | McClain et al. | Sep 2016 | B2 |
9812183 | Intrater et al. | Nov 2017 | B2 |
9812200 | Intrater et al. | Nov 2017 | B2 |
10290334 | Intrater et al. | May 2019 | B2 |
10613763 | Intrater | Apr 2020 | B2 |
10726888 | Intrater et al. | Jul 2020 | B2 |
20090153253 | Mei | Jun 2009 | A1 |
20100124102 | Lee et al. | May 2010 | A1 |
20130083611 | Ware | Apr 2013 | A1 |
20140189415 | Chen | Jul 2014 | A1 |
20140254238 | Gilbert et al. | Sep 2014 | A1 |
20150143020 | Ferreira et al. | May 2015 | A1 |
20150241956 | De Caro et al. | Aug 2015 | A1 |
20160154454 | Tu | Jun 2016 | A1 |
20170040057 | Cho | Feb 2017 | A1 |
20170206031 | Yin | Jul 2017 | A1 |
20180107417 | Shechter | Apr 2018 | A1 |
20210334028 | Ellis | Oct 2021 | A1 |
Number | Date | Country | |
---|---|---|---|
20210157389 A1 | May 2021 | US |
Number | Date | Country | |
---|---|---|---|
62940334 | Nov 2019 | US |