US20210335406A1 - Mechanism to improve driver capability with fine tuned calibration resistor - Google Patents
Mechanism to improve driver capability with fine tuned calibration resistor Download PDFInfo
- Publication number
- US20210335406A1 US20210335406A1 US17/306,893 US202117306893A US2021335406A1 US 20210335406 A1 US20210335406 A1 US 20210335406A1 US 202117306893 A US202117306893 A US 202117306893A US 2021335406 A1 US2021335406 A1 US 2021335406A1
- Authority
- US
- United States
- Prior art keywords
- calibration
- pull
- output
- impedance
- transistors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 claims abstract description 102
- 238000000034 method Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 abstract description 77
- 230000008901 benefit Effects 0.000 abstract description 3
- 238000013507 mapping Methods 0.000 description 25
- DLMONAQGOXNQGP-UHFFFAOYSA-N 4-(acetyloxymethyl)benzoic acid Chemical compound CC(=O)OCC1=CC=C(C(O)=O)C=C1 DLMONAQGOXNQGP-UHFFFAOYSA-N 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000012216 screening Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 10
- 235000012431 wafers Nutrition 0.000 description 8
- 238000012512 characterization method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/006—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/022—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/06—Acceleration testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/1206—Location of test circuitry on chip or wafer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5002—Characteristic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5004—Voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2254—Calibration
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/75—Array having a NAND structure comprising, for example, memory cells in series or memory elements in series, a memory element being a memory cell in parallel with an access transistor
Definitions
- This disclosure is generally related to electronic devices and more particularly to storage devices.
- Storage devices enable users to store and retrieve data. Examples of storage devices include non-volatile memory devices.
- a non-volatile memory generally retains data after a power cycle.
- An example of a non-volatile memory is a flash memory, which may include array(s) of NAND cells on one or more dies. Flash memory may be found in solid-state devices (SSDs), Secure Digital (SD) cards, and the like.
- a flash storage device may store control information associated with data.
- a flash storage device may maintain control tables that include a mapping of logical addresses to physical addresses. This control tables are used to track the physical location of logical sectors, or blocks, in the flash memory. The control tables are stored in the non-volatile memory to enable access to the stored data after a power cycle.
- a die of the flash storage device may include a number of input-outputs (e.g. DQ lines or pins) interfacing with a controller of the flash storage device.
- Each DQ line may be connected to an output driver, which may pull up output data representing a logic 1 and which may pull down output data representing a logic 0.
- a calibration resistor e.g. a ZQ calibration resistor
- This calibration resistor may be configured such that the flash storage device successfully operates across process, voltage, and temperature variations (PVT).
- a 300 ohm ( ⁇ ) calibration resistor may be used to calibrate each die to a minimum output impedance of 25 ⁇ that allows the controller to correctly read data from the dies at different process corners (e.g. typical, fast-fast, slow-slow, fast-slow, and slow-fast), at different voltages (e.g. input/output power supply voltages (VccQ) between 1.14 V and 1.26 V for non-volatile, double data rate 3 (NV-DDR3) memories), and at different temperatures (e.g. between a minimum operating temperature of ⁇ 40° C. and a maximum operating temperature of 85° C.).
- VccQ input/output power supply voltages
- NV-DDR3 non-volatile, double data rate 3
- the storage device includes a calibration resistor and a die.
- the die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to calibrate the output impedance of the output driver using the calibration resistor.
- the calibration resistor has a resistance that enables the calibration circuit to calibrate the output impedance to a lower impedance than a minimum impedance required by a controller to read the stored data across process, voltage and temperature variations of the die at maximum loading of the controller.
- the storage device includes a calibration resistor, a die, and a controller.
- the die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to calibrate the output impedance of the output driver using the calibration resistor.
- the controller is configured to determine whether the output impedance of the output driver can be calibrated to an impedance lower than a threshold at maximum temperature and minimum voltage.
- the storage device includes a calibration resistor, a die, and a controller.
- the die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to generate a calibration code to calibrate the output impedance of the output driver using the calibration resistor.
- the controller is configured to determine whether the calibration code exceeds a threshold at nominal temperature and voltage.
- FIG. 1 is a block diagram illustrating an exemplary embodiment of a storage device in communication with a host device.
- FIG. 2 is a conceptual diagram illustrating an example of a logical-to-physical mapping table in a non-volatile memory of the storage device of FIG. 1 .
- FIG. 3 is a diagram illustrating a graphical representation of process corners for complementary metal-oxide-semiconductor (CMOS) chips manufactured on a single wafer including the storage device of FIG. 1 .
- CMOS complementary metal-oxide-semiconductor
- FIG. 4 is a conceptual diagram illustrating an example of a die including a calibration circuit and an output driver for communicating data to a controller in the storage device of FIG. 1 .
- FIG. 5 is a conceptual diagram illustrating an example of the output driver depicted in the die of FIG. 4 .
- FIG. 6 is a conceptual diagram illustrating an example of the calibration circuit depicted in the die of FIG. 4 .
- FIGS. 7A and 7B are diagrams illustrating examples of DQ timing charts showing superimposed output patterns in the storage device of FIG. 1 .
- FIG. 8 is a flow chart illustrating a method for testing and binning a die with a modified calibration resistor in the storage device of FIG. 1 .
- FIG. 9 is a flow chart illustrating another method for testing and binning a die with a modified calibration resistor in the storage device of FIG. 1 .
- FIG. 10 is a flow chart illustrating a method for calibrating an output impedance of an output driver in the storage device of FIG. 1 .
- exemplary and “example” are used herein to mean serving as an example, instance, or illustration. Any exemplary embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other exemplary embodiments. Likewise, the term “exemplary embodiment” of an apparatus, method or article of manufacture does not require that all exemplary embodiments of the invention include the described components, structure, features, functionality, processes, advantages, benefits, or modes of operation.
- each DQ may be connected to an output driver, which may include an array of CMOS transistors including pull up transistors that pull up output data representing a logic 1 and pull down transistors to pull down output data representing a logic 0.
- an output driver including a 72-transistor CMOS array may include six parallel pull-up legs each including six parallel pull-up transistors and six parallel pull-down legs each including six parallel pull-down transistors.
- a storage device may include multiple dies sharing a bus with the controller, with multiple output drivers including the CMOS arrays subject to process, voltage, and temperature (PVT) variations.
- PVT process, voltage, and temperature
- different dies may operate at different process corners (e.g. typical, fast-fast, slow-slow, fast-slow, and slow-fast).
- IR drop current-resistance fluctuation
- I/O input-output
- Such PVT variations may affect the output impedance or driver strength of each output driver, which may in turn affect the controller's ability to correctly read data from the dies.
- each pull-up leg and pull-down leg may be calibrated such that its output impedance matches an impedance of a pre-configured, calibration resistor (e.g. a ZQ calibration resistor of 300 ohms for NAND or 240 ohms for DRAM).
- a pre-configured, calibration resistor e.g. a ZQ calibration resistor of 300 ohms for NAND or 240 ohms for DRAM.
- multiple, pre-designed pull-up legs and pull-down legs may be selectively enabled to provide different total output impedances, or driver strength settings, for the output driver to support different capacitance loads (e.g. die stacks) based on the pre-configured calibration resistor.
- the controller may enable a number of pull up legs and pull down legs (e.g. 12 legs) to result in a minimum, total output impedance (e.g. 25 ohms for NV-DDR3) to support a pre-configured, maximum loading of the controller (e.g. 8 dies or another number).
- a smaller number of pull up legs and pull down legs e.g. 8 legs or another number
- a larger total output impedance e.g. 35 and/or 37.5 ohms
- each die may be enabled to result in an even larger total output impedance (e.g. 50 ohms) for an even smaller loading (e.g. 1 die or another number).
- the data output speed of each die may also be similarly pre-configured and limited based on the output impedance and/or capacitance load.
- the storage device may support pre-configured driver strengths or output impedances (e.g. 25 ohm, 35 ohm, 37.5 ohm, and 50 ohm) based on a calibration resistor that allows the controller to read stored data across PVT variations of the dies, at pre-configured loads (e.g. 1, 2, 4, or 8 dies) and pre-configured output rates (e.g. 533 mega transfers per second (MT/s) for eight dies).
- pre-configured loads e.g. 1, 2, 4, or 8 dies
- pre-configured output rates e.g. 533 mega transfers per second (MT/s) for eight dies.
- the pre-configured driver strengths based on the existing calibration resistor may be insufficient to support the resulting higher capacitance loads or speeds.
- the output drivers of a 16 die load even when calibrated to the highest driver strength setting or minimum output impedance for a 300 ohm calibration resistor (e.g. 25 ohms as described above for DDR3), may still not have sufficient capability to successfully drive outputs to the controller across PVT variations of the dies (in contrast to, e.g., an 8 die load).
- a 300 ohm calibration resistor e.g. 25 ohms as described above for DDR3
- the storage device described in the present disclosure includes a calibration resistor that allows the output impedance of the output driver of the die to be calibrated to a lower impedance than the minimum output impedance described above.
- a calibration resistor that allows the output impedance of the output driver of the die to be calibrated to a lower impedance than the minimum output impedance described above.
- the storage device is preconfigured with a minimum output impedance of 25 ohms (or another number) that allows stored data to be read from eight dies (or another number) across PVT variations (i.e. based on a 300 ohm calibration resistor and twelve enabled pull-up/pull-down legs, as described above).
- a calibration resistor having a lower resistance of 240 ohms may be provided to calibrate the output impedance of the output drivers to a lower impedance than the minimum (e.g. 20 ohms or another number, assuming twelve enabled pull-up/pull-down legs).
- the output impedance may be reduced to increase the drive strength of the output drivers, allowing the controller to read stored data from more dies or at higher speeds.
- Such approach may be advantageous over increasing the number of fabricated, parallel pull-up and pull-down legs to reduce the output impedance, for example, which may be limited based on the die area.
- CMOS transistors may not be guaranteed across PVT variations in contrast to the minimum output impedance described above (e.g. 25 ohms).
- a die which is a slow corner e.g. SS
- a typical or fast corner e.g. FF
- calibrating the output impedance based on a larger calibration resistor e.g. 300 ohms
- the storage device may be configured with a sufficient number of CMOS transistors (i.e.
- the number of CMOS transistors may no longer be sufficient. For example, there may not be enough transistors to calibrate the larger output impedance of slow corners to the lower output impedance (e.g. 20 ohms), and increasing the number of transistors in the storage device to compensate for this insufficiency may not be cost-effective or feasible due to limited die area as described above.
- a screening process may be implemented which identifies dies that are unable during calibration to achieve the lower output impedance across PVT variations.
- the screening process may depend on whether the controller is external to the die or internal to the die.
- an external controller of the storage device may determine whether the output impedance of the output driver of a die can be calibrated to the lower impedance (i.e. lower than a threshold such as the minimum output impedance of 25 ohms described above) in a condition where the die is slowest (i.e. at a maximum operating temperature (e.g. 85° C.) and a minimum voltage (e.g. 1.14 VccQ)).
- the controller may send a calibration command to the die, which calibrates the output impedance of the output driver of the die to match the impedance of the lower calibration resistor (e.g. 240 ohms).
- a register e.g. ZQ_cal status or another name
- the controller may determine from the register if calibration is successful or not. If calibration is successful (i.e. the lower impedance of 20 ohms or another number was achieved), the die is determined to operate across PVT variations even with the lower calibration resistor and may accordingly be binned or sorted for products with higher die loads or speeds. If calibration has failed (i.e.
- the die is determined not to operate across PVT variations with the lower calibration resistor and may accordingly be binned or sorted for products with lower die loads or speeds. For example, a die with successful calibration may be sorted for use in a 16 die product (larger memory), while a die with failed calibration may be sorted for use in a 8 die or lower configuration product (smaller memory) to achieve similar speeds, e.g. 533 MT/s. Also, a die with successful calibration may help increase the transfer speed within the same configuration product.
- the controller may access a calibration code used to calibrate the output impedance of the output driver in a register (e.g. ZQ_cal or another name).
- the calibration code may indicate which parallel pull-up or pull-down transistors in a parallel pull-up or pull-down leg are activated to match the output impedance with the impedance of the lower calibration resistor (e.g. 240 ohms or another number) during a successful calibration. For instance, assuming each pull-up/pull-down leg of the output driver includes six parallel transistors, a calibration code of six bits (i.e.
- 63 different calibration codes excluding 000000 may be generated during calibration, and if alternating transistors corresponding to the calibration code 101010 are activated to successfully calibrate output impedance, the register may store the code 101010.
- a characterization process may be implemented in which slow corners are tested for successful calibration using the lower calibration resistor (e.g. 240 ohms) at different voltages and temperatures (VT). Based on the results of the characterization, a calibration code threshold may identified which indicates a maximum calibration code that enables successful calibration across VT variations.
- calibration code 111000 (or some other code) is identified during testing to be the highest calibration code that allows the output impedance to be successfully reduced to 20 ohms even at a maximum operating temperature (e.g. 85° C.) and a minimum voltage (e.g. 1.14 VccQ), the calibration code threshold may be set as that code.
- a maximum operating temperature e.g. 85° C.
- a minimum voltage e.g. 1.14 VccQ
- the internal controller may determine whether the calibration code (e.g. 101010) used to successfully perform calibration of the die to the lower output impedance (e.g. 20 ohms) exceeds the calibration code threshold (e.g. 111000) at a nominal temperature and voltage (e.g. 25° C. and 1.2 VccQ). For instance, after sending a calibration command to the die, the controller may read the ZQ_cal register (or another name) to identify the calibration code which was used to successfully perform the calibration at nominal voltage and temperature conditions. If the identified calibration code does not exceed the calibration code threshold, the die is determined to operate across PVT variations even with the lower calibration resistor and may accordingly be binned or sorted for products with higher die loads or speeds.
- the calibration code e.g. 10101010101010
- the calibration code threshold e.g. 111000
- the controller may read the ZQ_cal register (or another name) to identify the calibration code which was used to successfully perform the calibration at nominal voltage and temperature conditions. If the identified calibration code does not
- the die is determined not to operate across PVT variations with the lower calibration resistor and may accordingly be binned or sorted for products with lower die loads or speeds. For example, a die with a smaller calibration code may be sorted for use in a 16 die product (larger memory), while a die with a larger calibration code may be sorted for use in a 8 die or lower configuration product (smaller memory) to achieve similar speeds, e.g. 533 MT/s. Also, a die with a smaller calibration code may help increase the transfer speed within the same configuration product. Alternatively, the internal controller may perform the same process as the external controller in the other example of screening described above.
- FIG. 1 shows an exemplary block diagram 100 of a storage device 102 which communicates with a host device 104 (also “host”) according to an exemplary embodiment.
- the host 104 and the storage device 102 may form a system, such as a computer system (e.g., server, desktop, mobile/laptop, tablet, smartphone, etc.).
- the components of FIG. 1 may or may not be physically co-located.
- the host 104 may be located remotely from storage device 102 .
- FIG. 1 illustrates that the host 104 is shown separate from the storage device 102 , the host 104 in other embodiments may be integrated into the storage device 102 , in whole or in part. Alternatively, the host 104 may be distributed across multiple remote entities, in its entirety, or alternatively with some functionality in the storage device 102 .
- exemplary embodiments can include more or less than those elements shown in FIG. 1 and that the disclosed processes can be implemented in other environments.
- other exemplary embodiments can include a different number of hosts communicating with the storage device 102 , or multiple storage devices 102 communicating with the host(s).
- the host device 104 may store data to, and/or retrieve data from, the storage device 102 .
- the host device 104 may include any computing device, including, for example, a computer server, a network attached storage (NAS) unit, a desktop computer, a notebook (e.g., laptop) computer, a tablet computer, a mobile computing device such as a smartphone, a television, a camera, a display device, a digital media player, a video gaming console, a video streaming device, or the like.
- the host device 104 may include at least one processor 101 and a host memory 103 .
- the at least one processor 101 may include any form of hardware capable of processing data and may include a general purpose processing unit (such as a central processing unit (CPU)), dedicated hardware (such as an application specific integrated circuit (ASIC)), digital signal processor (DSP), configurable hardware (such as a field programmable gate array (FPGA)), or any other form of processing unit configured by way of software instructions, firmware, or the like.
- the host memory 103 may be used by the host device 104 to store data or instructions processed by the host or data received from the storage device 102 .
- the host memory 103 may include non-volatile memory, such as magnetic memory devices, optical memory devices, holographic memory devices, flash memory devices (e.g., NAND or NOR), phase-change memory (PCM) devices, resistive random-access memory (ReRAM) devices, magnetoresistive random-access memory (MRAM) devices, ferroelectric random-access memory (F-RAM), and any other type of non-volatile memory devices.
- the host memory 103 may include volatile memory, such as random-access memory (RAM), dynamic random access memory (DRAM), static RAM (SRAM), and synchronous dynamic RAM (SDRAM (e.g., DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, and the like).
- RAM random-access memory
- DRAM dynamic random access memory
- SRAM static RAM
- SDRAM synchronous dynamic RAM
- the host memory 103 may also include both non-volatile memory and volatile memory, whether integrated together or as discrete units.
- the host interface 106 is configured to interface the storage device 102 with the host 104 via a bus/network 108 , and may interface using, for example, Ethernet or WiFi, or a bus standard such as Serial Advanced Technology Attachment (SATA), PCI express (PCIe), Small Computer System Interface (SCSI), or Serial Attached SCSI (SAS), among other possible candidates.
- the host interface 106 may be wireless, and may interface the storage device 102 with the host 104 using, for example, cellular communication (e.g. 5G NR, 4G LTE, 3G, 2G, GSM/UMTS, CDMA One/CDMA2000, etc.), wireless distribution methods through access points (e.g.
- IEEE 802.11, WiFi, HiperLAN, etc. Infra Red (IR), Bluetooth, Zigbee, or other Wireless Wide Area Network (WWAN), Wireless Local Area Network (WLAN), Wireless Personal Area Network (WPAN) technology, or comparable wide area, local area, and personal area technologies.
- IR Infra Red
- WLAN Wireless Local Area Network
- WPAN Wireless Personal Area Network
- the storage device 102 includes non-volatile memory (NVM) 110 for non-volatilely storing data received from the host 104 .
- the NVM 110 can include, for example, flash integrated circuits, NAND memory (e.g., single-level cell (SLC) memory, multi-level cell (MLC) memory, triple-level cell (TLC) memory, quad-level cell (QLC) memory, penta-level cell (PLC) memory, or any combination thereof), or NOR memory.
- NVM 110 may include a plurality of memory locations 112 which may store system data for operating the storage device 102 or user data received from the host for storage in the storage device 102 .
- the NVM may have a cross-point architecture including a 2-D NAND array of memory locations 112 having n rows and m columns, where m and n are predefined according to the size of the NVM.
- each memory location 112 may be a block 114 including multiple cells 116 .
- the cells 116 may be single-level cells, multi-level cells, triple-level cells, quad-level cells, and/or penta-level cells, for example.
- Other examples of memory locations 112 are possible; for instance, each memory location may be a die containing multiple blocks.
- each memory location may include one or more blocks in a 3-D NAND array.
- the illustrated memory locations 112 may be logical blocks which are mapped to one or more physical blocks.
- the storage device 102 also includes a volatile memory 118 that can, for example, include a Dynamic Random Access Memory (DRAM) or a Static Random Access Memory (SRAM).
- Data stored in volatile memory 118 can include data read from the NVM 110 or data to be written to the NVM 110 .
- the volatile memory 118 can include a write buffer or a read buffer for temporarily storing data. While FIG. 1 illustrates the volatile memory 118 as being remote from a controller 123 of the storage device 102 , the volatile memory 118 may be integrated into the controller 123 .
- the memory (e.g. NVM 110 ) is configured to store data 119 received from the host device 104 .
- the data 119 may be stored in the cells 116 of any of the memory locations 112 .
- FIG. 1 illustrates data 119 being stored in different memory locations 112 , although the data may be stored in the same memory location.
- the memory locations 112 may be different dies, and the data may be stored in one or more of the different dies.
- Each of the data 119 may be associated with a logical address.
- the NVM 110 may store a logical-to-physical (L2P) mapping table 120 for the storage device 102 associating each data 119 with a logical address.
- the L2P mapping table 120 stores the mapping of logical addresses specified for data written from the host 104 to physical addresses in the NVM 110 indicating the location(s) where each of the data is stored. This mapping may be performed by the controller 123 of the storage device.
- the L2P mapping table may be a table or other data structure which includes an identifier such as a logical block address (LBA) associated with each memory location 112 in the NVM where data is stored. While FIG.
- LBA logical block address
- L2P mapping table 120 stored in one of the memory locations 112 of NVM to avoid unduly obscuring the concepts of FIG. 1 , the L2P mapping table 120 in fact may include multiple tables stored in one or more memory locations of NVM.
- FIG. 2 is a conceptual diagram 200 of an example of an L2P mapping table 205 illustrating the mapping of data 202 received from a host device to logical addresses and physical addresses in the NVM 110 of FIG. 1 .
- the data 202 may correspond to the data 119 in FIG. 1
- the L2P mapping table 205 may correspond to the L2P mapping table 120 in FIG. 1 .
- the data 202 may be stored in one or more pages 204 , e.g., pages 1 to x, where x is the total number of pages of data being written to the NVM 110 .
- Each page 204 may be associated with one or more entries 206 of the L2P mapping table 205 identifying a logical block address (LBA) 208 , a physical address 210 associated with the data written to the NVM, and a length 212 of the data.
- LBA 208 may be a logical address specified in a write command for the data received from the host device.
- Physical address 210 may indicate the block and the offset at which the data associated with LBA 208 is physically written.
- Length 212 may indicate a size of the written data (e.g. 4 KB or some other size).
- the volatile memory 118 also stores a cache 122 for the storage device 102 .
- the cache 122 includes entries showing the mapping of logical addresses specified for data requested by the host 104 to physical addresses in NVM 110 indicating the location(s) where the data is stored. This mapping may be performed by the controller 123 .
- the controller 123 receives a read command or a write command for data 119 , the controller checks the cache 122 for the logical-to-physical mapping of each data. If a mapping is not present (e.g. it is the first request for the data), the controller accesses the L2P mapping table 120 and stores the mapping in the cache 122 .
- the controller 123 executes the read command or write command, the controller accesses the mapping from the cache and reads the data from or writes the data to the NVM 110 at the specified physical address.
- the cache may be stored in the form of a table or other data structure which includes a logical address associated with each memory location 112 in NVM where data is being read.
- the NVM 110 includes sense amplifiers 124 and data latches 126 connected to each memory location 112 .
- the memory location 112 may be a block including cells 116 on multiple bit lines, and the NVM 110 may include a sense amplifier 124 on each bit line.
- one or more data latches 126 may be connected to the bit lines and/or sense amplifiers.
- the data latches may be, for example, shift registers.
- the data is then transferred from the data latches 126 to the controller 123 , after which the data is stored in the volatile memory 118 until it is transferred to the host device 104 .
- the controller 123 stores the programmed data in the data latches 126 , and the data is subsequently transferred from the data latches 126 to the cells 116 .
- the storage device 102 includes a controller 123 which includes circuitry such as one or more processors for executing instructions and can include a microcontroller, a Digital Signal Processor (DSP), an Application-Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), hard-wired logic, analog circuitry and/or a combination thereof.
- DSP Digital Signal Processor
- ASIC Application-Specific Integrated Circuit
- FPGA Field Programmable Gate Array
- the controller 123 is configured to receive data transferred from one or more of the cells 116 of the various memory locations 112 in response to a read command. For example, the controller 123 may read the data 119 by activating the sense amplifiers 124 to sense the data from cells 116 into data latches 126 , and the controller 123 may receive the data from the data latches 126 .
- the controller 123 is also configured to program data into one or more of the cells 116 in response to a write command. For example, the controller 123 may write the data 119 by sending data to the data latches 126 to be programmed into the cells 116 .
- the controller 123 is further configured to access the L2P mapping table 120 in the NVM 110 when reading or writing data to the cells 116 .
- the controller 123 may receive logical-to-physical address mappings from the NVM 110 in response to read or write commands from the host device 104 , identify the physical addresses mapped to the logical addresses identified in the commands (e.g. translate the logical addresses into physical addresses), and access or store data in the cells 116 located at the mapped physical addresses.
- the controller 123 and its components may be implemented with embedded software that performs the various functions of the controller described throughout this disclosure.
- software for implementing each of the aforementioned functions and components may be stored in the NVM 110 or in a memory external to the storage device 102 or host device 104 , and may be accessed by the controller 123 for execution by the one or more processors of the controller 123 .
- the functions and components of the controller may be implemented with hardware in the controller 123 , or may be implemented using a combination of the aforementioned hardware and software.
- the host device 104 stores data in the storage device 102 by sending a write command to the storage device 102 specifying one or more logical addresses (e.g., LBAs) as well as a length of the data to be written.
- the interface element 106 receives the write command, and the controller allocates a memory location 112 in the NVM 110 of storage device 102 for storing the data.
- the controller 123 stores the L2P mapping in the NVM (and the cache 122 ) to map a logical address associated with the data to the physical address of the memory location 112 allocated for the data.
- the controller also stores the length of the L2P mapped data.
- the controller 123 then stores the data in the memory location 112 by sending it to one or more data latches 126 connected to the allocated memory location, from which the data is programmed to the cells 116 .
- the host 104 may retrieve data from the storage device 102 by sending a read command specifying one or more logical addresses associated with the data to be retrieved from the storage device 102 , as well as a length of the data to be read.
- the interface 106 receives the read command, and the controller 123 accesses the L2P mapping in the cache 122 or otherwise the NVM to translate the logical addresses specified in the read command to the physical addresses indicating the location of the data.
- the controller 123 then reads the requested data from the memory location 112 specified by the physical addresses by sensing the data using the sense amplifiers 124 and storing them in data latches 126 until the read data is returned to the host 104 via the host interface 106 .
- FIG. 3 is a two-dimensional graph that is typically used to show the distribution of chip (e.g. die) parameters for CMOS technology. Statistically, most of the CMOS chips will have electrical parameters that meet nominal specifications. These CMOS chips may be plotted around the center 302 of the graph. A number of CMOS chips, however, will deviate from the nominal case towards the process corners. Referring to FIG. 3 , each process corner is represented by a two-letter designation. The first letter refers to the NMOS transistors and the second letter refers to the PMOS transistors, and each letter has either an F designation for fast or an S designation for slow.
- chip e.g. die
- CMOS chips with both types of transistors being slow or fast will be plotted around the slow corner (SS) 304 or fast corner (FF) 306 , respectively.
- CMOS chips that are plotted around cross corners where one type of transistor is faster and the other type of transistor is slower may also be CMOS chips that are plotted around cross corners where one type of transistor is faster and the other type of transistor is slower.
- CMOS chips with slow NMOS transistors and fast PMOS transistors may be plotted around the slow-fast (SF) corner 308 .
- CMOS chips with fast NMOS transistors and slow PMOS transistors may be plotted around the fast-slow (FS) corner 310 .
- all the CMOS chips manufactured on a semiconductor wafer can be plotted within the boundaries spanning the process corners. The performance of the CMOS chips that reside outside these boundaries cannot be guaranteed to operate properly under worst case conditions.
- FIG. 4 illustrates an example diagram 400 illustrating a controller 402 in communication with a die 404 over a bus.
- Die 404 may include a NVM 406 that stores data 407 (e.g. data 119 of FIG. 1 ).
- the controller 402 may correspond to controller 123 of FIG. 1
- the NVM 406 of die 404 may correspond to the memory location 112 of FIG. 1 .
- Each die may include various pins which serve as interfaces between the controller and the die.
- the die may include an input/output (I/O) 408 which is configured to receive inputs and transmit outputs (e.g. input data and commands from the controller to read, write, or erase data, and output data from the NVM 406 ).
- I/O input/output
- I/O 408 may include a number of data lines or pins (DQ) that receive individual bits of input data and send individual bits of output data over a bus 410 .
- the bus 410 may be an 8-bit bus which interfaces with eight DQ pins (DQ7:0), although a different bus width and number of DQs may be used (e.g. a 16-bit bus with 16 DQs).
- DQ7:0 DQ7:0
- a different bus width and number of DQs may be used (e.g. a 16-bit bus with 16 DQs).
- I/O 408 is illustrated in FIG. 4 for die 404 ; however die 404 may include other pins.
- the die may include a CE for receiving a chip-enable signal from the controller, a ready/busy (R/B) for outputting a ready or busy status to the controller, an address latch enable (ALE) for latching addresses into NAND, a command latch enable (CLE) for latching commands into a command register, a RE (read enable) for enabling output data buffers, a WE (write enable) for clocking data, addresses, or commands into the NAND, and a bidirectional data strobe signal (DQS) that clocks the I/O 408 to receive and transmit data over the bus 410 .
- FIG. 4 illustrates a single die in communication with the controller 402 , it should be understood that multiple dies may communicate with the controller over the bus 410 .
- the die 404 may include an output driver 412 for each DQ pin. For clarity, only one output driver 412 is illustrated for DQ7, although separate output drivers may be connected to the other DQs.
- Each output driver 412 may be a CMOS driver that includes pull-up legs 414 (p-type metal-oxide-semiconductor (PMOS) transistors) for pulling up the voltage of the data output on the DQ line to a logic 1 and pull-down legs 416 (n-type metal-oxide-semiconductor (NMOS) transistors) for pulling down the voltage of the data output on the DQ line to a logic 0.
- PMOS p-type metal-oxide-semiconductor
- NMOS n-type metal-oxide-semiconductor
- the die 404 may also include a calibration circuit 418 connected via a ZQ pin to a calibration resistor 420 (RZQ) which is external to the die 404 .
- the calibration circuit 418 may calibrate an output impedance 422 of each output driver 412 based on the resistance of the calibration resistor 420 .
- FIG. 5 illustrates an example of an output driver 502 (a CMOS driver) including pull-up legs 504 (PMOS) and pull-down legs 506 (NMOS) for one of the DQ pins (DQ 508 ).
- Output driver may correspond to output driver 412 of FIG. 4
- pull-up legs 504 and pull-down legs 506 may respectively correspond to pull-up legs 414 and pull-down legs 416 of FIG. 4
- DQ 508 may correspond to one of the DQs in I/O 408 of FIG. 4 .
- FIG. 5 illustrates a specific example of a circuit for the output driver 502
- the output driver 502 is not so limited and may have other transistor arrangements, inputs/outputs, etc.
- each pull-up leg 504 may include a plurality of parallel transistors 510 (PMOS transistors) each having a gate connected to an output high voltage (VOH 512 ) and a drain connected to the DQ 508 .
- the source of each of the parallel transistors 510 may be connected to an enabling pull-up transistor 514 , which may allow the I/O power supply voltage VccQ (e.g. 1.2 V for DDR3) to pass to the source of each of the parallel transistors 510 in response to a pull-up enable signal (PUP 516 ) at the gate of the enabling pull-up transistor 514 .
- VccQ e.g. 1.2 V for DDR3
- each pull-down leg 506 may include a plurality of parallel transistors 518 (NMOS transistors) each having a gate connected to an output low voltage (VOL 520 ) and a source connected to the DQ 508 .
- the drain of each of the parallel transistors 518 may be connected to an enabling pull-down transistor 522 , which may allow the ground voltage supply VssQ (e.g. 0 V) to pass to the drain of each of the parallel transistors 518 in response to a pull-down enable signal (PDN 524 ) at the gate of the enabling pull-down transistor 522 .
- VssQ e.g. 0 V
- Each pull-up leg 504 has an output impedance 526 which is controlled based on the VOH 512 .
- each pull-down leg 506 has an output impedance 528 which is controlled based on the VOL 520 .
- each parallel transistor in a single leg may be configured to have a different impedance (e.g.
- the output impedance of each leg may be configurable based on the selected transistors activated by VOH 512 and VOL 520 .
- the output impedances 526 , 528 of each leg may be 300 ohms.
- the output driver 502 may also have an output impedance 530 which is controlled based on the output impedances 526 , 528 and the PUP 516 and PDN 524 , respectively.
- Output impedance 530 may correspond to output impedance 422 of the output driver 412 of FIG. 4 .
- PUP[0:m] and PDN [0:m] respectively represent bitmaps corresponding to a combination of high/low voltages applied to the gates of the enabling pull-up transistor 514 for each pull-up leg 504 and enabling pull-down transistor 522 for each pull-down leg 506 , where m is the number of parallel pull-up legs and parallel pull-down legs in the output driver.
- a configuration for PUP of 110000 indicates a high voltage is applied only to the first and second enabling pull-up transistor (i.e. only the first and second pull-up legs are activated), while a low voltage is applied to the other enabling pull-up transistors in the other legs.
- a configuration for PDN of 001111 indicates a low voltage is applied only to the first and second enabling pull-down transistor (i.e. only the first and second pull-down legs are activated), while a high voltage is applied to the other enabling pull-down transistors in the other legs.
- the output impedance 530 may thus be controlled not only based on the output impedances 526 , 528 from VOH and VOL, but also based on the PUP and PDN. For instance, if the output impedances 526 , 528 are each configured to be 300 ohms based on VOH and VOL as described above, then if six of the parallel pull-up legs are activated by PUP and six of the parallel pull-down legs are activated by PDN, the output impedance 530 of the output driver 502 may be 25 ohms.
- FIG. 6 illustrates an example of a calibration circuit 600 which may calibrate the output impedance 422 , 530 of the output driver 412 , 502 based on a calibration resistor 602 (RZQ) connected to a ground.
- Calibration circuit 600 may correspond to calibration circuit 418 in FIG. 4
- calibration resistor 602 may correspond to calibration resistor 420 in FIG. 4 .
- the calibration circuit 600 may include a CMOS device including a plurality of parallel pull-up transistors 604 (PMOS transistors) each having a gate connected to an output high voltage (VOH 606 ) and a drain connected to the calibration resistor 602 (e.g.
- NMOS transistors each having a gate connected to an output low voltage (VOL 610 ) and a source connected to the drain of the pull-up transistors
- an enabling pull-up transistor 612 having a source connected to the I/O power supply voltage VccQ (e.g. 1.2 V for DDR3), a gate connected to a pull-up enable signal (PUP 614 ), and a drain connected to the source of the pull-up transistors
- an enabling pull-down transistor 616 having a drain connected to a ground voltage supply VssQ (e.g.
- the CMOS device in the calibration circuit 600 may mirror the CMOS device in the output driver 502 (i.e. with respect to one of the pull-up legs 504 and pull-down legs 506 ).
- each of the parallel pull-up transistors and parallel-pull down transistors may have different impedances (e.g. 20 ohm, 40 ohm, 80 ohm, etc.) that match the corresponding impedances of the transistors in the pull-up legs 504 and pull-down legs 506 .
- VOH 606 may connect to VOH 512 in FIG. 5
- VOL 610 may connect to VOL 520 in FIG. 5
- PUP 614 may connect to PUP 516 in FIG. 5
- PDN 618 may connect to PDN 524 in FIG. 5 .
- the calibration circuit 600 may also include a comparator 620 and a digital-to-analog converter (DAC) counter 622 .
- the comparator 620 may include an input connected to half of the I/O power supply voltage (i.e. VccQ/2), and another input connected to the calibration resistor 602 .
- the DAC counter 622 may include an input connected to an output of the comparator 620 , and an output connected to the VOH 606 .
- the output of the DAC counter 622 may also be connected to the VOL 610 , e.g. via an inverter 624 .
- the output of the DAC counter 622 may be n bits, where n is equal to the number of parallel pull-up transistors 604 and parallel pull-down transistors 608 .
- the output of the DAC counter may include 4 bits, with each bit representing whether a high voltage (logic 1) or a low voltage (logic 0) is to be applied to the gate of each transistor.
- the output of the DAC counter may correspond to the bitmaps represented by VOH[0:n] and VOL[0:n].
- the output of the DAC counter may change (and thus the voltages applied to the gates of the parallel pull-up and pull-down transistors may change) in response to the output of the comparator 620 . That is, the DAC counter may be connected to the comparator 620 such that, when the output of the comparator 620 indicates that the voltage at ZQ (VZQ 626 ) is not equal to VccQ/2, the DAC counter 622 increments. As the incrementing of the DAC counter changes the transistors which are activated and thus the output impedance 628 of the calibration circuit, the VZQ 626 may correspondingly change, in response to which the DAC counter 622 may again increment if VZQ 626 is still not equal to VccQ/2.
- the comparator 620 may thus continue to compare the changing VZQ 626 at different DAC counter outputs until VZQ 626 becomes at least equal to VccQ/2, at which point the output impedance 628 matches the impedance or resistance of the calibration resistor 602 .
- the current DAC counter output may then be carried over to the output driver 412 , 502 as the corresponding VOH[0:n] (VOH 512 ), which calibrates the output impedances 526 of the PMOS transistors to similarly match the impedance of the calibration resistor 602 .
- an inversion of the current DAC counter output may similarly be carried over to the output driver as the corresponding VOL[0:n] (VOL 520 ), which calibrates the output impedances 528 of the NMOS transistors to similarly match the impedance of the calibration resistor 602 .
- the controller 123 may calibrate the output impedance 422 , 530 of the output driver 412 , 502 using the calibration circuit 418 , 600 by sending a calibration command (e.g. a ZQ calibration command) to the die 404 .
- a calibration command e.g. a ZQ calibration command
- the PUP 614 in response to the calibration command, the PUP 614 may be signaled to activate the enabling pull-up transistor 612 , which allows VccQ to pass to the source of the parallel pull-up transistors 604 .
- the DAC counter 622 is incremented until the VZQ 626 matches VccQ/2.
- the output impedance 628 correspondingly matches the impedance of calibration resistor 602 , and the voltages corresponding to the DAC counter output (VOH 606 ) are carried over to the pull-up legs 414 , 504 of the output driver 412 , 502 to be similarly calibrated.
- the output impedance 628 may be 300 ohms in response to a DAC counter of 1010, and thus a VOH of 1010 may be applied to the pull-up legs to calibrate each leg to an output impedance 526 of 300 ohms as described above.
- the PDN 618 may be signaled to activate the enabling pull-down transistor 616 , which allows VssQ to pass to the drain of the parallel pull-down transistors 608 .
- the previous DAC counter output e.g.
- the PUP 516 and PDN 524 may further reduce the total output impedance based on the number of pull-up legs and pull-down legs which are enabled, to result in an output impedance 422 , 530 of, e.g. 25 ohms, as described above.
- the calibration circuit 418 , 600 may be designed to first calibrate the pull-up legs 504 based on the calibration resistor 602 , after which the pull-down legs 506 are calibrated based on the pull-up leg calibration.
- FIG. 6 illustrates a specific example of the calibration circuit 418 , 600 as described, the calibration circuit 600 is not so limited and may have other transistor arrangements, inputs/outputs, components, etc. for calibrating the output impedance 422 , 530 of the output driver 412 , 502 .
- the calibration circuit may be alternatively designed to first calibrate the pull-down legs based on the calibration resistor (e.g. by connecting the calibration resistor 602 to VccQ instead of ground and by activating PDN 618 prior to PUP 614 ), after which the pull-up legs 504 may be calibrated based on the pull-down leg calibration.
- the output impedance 422 , 530 of the output driver 412 , 502 may be calibrated using the calibration circuit 418 , 600 based on the pre-configured calibration resistor.
- the calibration circuit may calibrate the impedance to a minimum output impedance that enables the controller 123 , 402 to read data 119 , 407 stored in the NVM 110 , 406 across PVT variations of the die 404 at a maximum loading of the controller.
- the number and individual impedances of the pull-up and pull-down transistors in the CMOS devices for both the output driver and the calibration circuit may be designed such that, when eight dies share the bus 410 with the controller 402 , the output impedance 422 , 530 may be calibrated to a minimum of 25 ohms using a 300 ohm calibration resistor as described above.
- the calibration may be successfully performed notwithstanding whether the die 404 operates at a nominal corner 302 , a SS corner 304 , FF corner 306 , SF corner 308 , or FS corner 310 , notwithstanding whether the die 404 operates at a nominal voltage (e.g. 1.2 VccQ), a minimum voltage (e.g.
- the minimum output impedance may limit the maximum loading to the controller. For example, if 25 ohms is the minimum output impedance that may be calibrated across PVT variations based on a 300 ohm calibration resistor, the output driver strength may be insufficient to enable the controller to read data from more than eight dies (or another maximum number) sharing the same bus 410 .
- FIG. 7A illustrates an example timing chart 700 depicting superimposed data output voltages on the DQs for different bit patterns (e.g. repeating logic 1's, repeating logic 0's, and alternating logic 1's and 0's) at a data output speed of 650 MT/s and an output driver impedance of 25 ohms.
- a data valid window 702 is located within a data eye of the bit patterns, which represents a time during which the voltages of the data outputs are valid and may be correctly read by the controller. Data may be correctly read when the data valid window 702 exceeds a minimum threshold (e.g. 300 ps or another number).
- the minimum output impedance may limit the length of the data valid window 702 .
- the data valid window 702 may span 339 ps (or another number), which provides minimal timing margin (e.g. 39 ps) over the threshold.
- This small timing margin limits the data output speed, since the data valid window may shrink at higher speeds. For example, if the data output speed is increased from 650 MT/s, the data valid window 702 may shrink below 300 ps (in this example), possibly resulting in more bit errors and reduced storage device performance.
- the calibration resistor 602 may be selected to have a resistance that enables the calibration circuit 418 , 600 to calibrate the output impedance 422 , 530 to a lower impedance than the minimum output impedance described above.
- a 240 ohm resistor (or another resistance smaller than 300 ohms) may be selected as calibration resistor 420 , 602 .
- the calibration circuit may calibrate the output impedance 628 to match the impedance of the calibration resistor (e.g.
- the corresponding VOH 512 , 606 and VOL 524 , 610 may calibrate the pull-up legs 504 and pull-down legs 506 respectively to match the output impedance 628 (e.g. 240 ohms), and the PUP 516 and PDN 524 signals may selectively enable the pull-up legs 504 and pull-down legs 506 to result in the reduced, output impedance 530 for the driver (e.g. 20 ohms).
- the driver e.g. 20 ohms.
- FIG. 7B illustrates an example timing chart 750 depicting superimposed data output voltages on the DQs for different bit patterns at a data output speed of 650 MT/s, similar to FIG. 7A , but with a lower output driver impedance of 20 ohms based on the modified RZQ.
- the data valid window 752 located within the data eye of the bit patterns may be wider than the data valid window 702 due to the lower output impedance, in this example spanning 512 ps (or another larger number).
- a larger timing margin e.g. 212 ps
- the minimum threshold e.g. 300 ps
- the output impedance of the output driver 412 , 502 may still in some cases not be able to be calibrated to the lower impedance (e.g. 20 ohms) across PVT variations.
- the number and individual impedances of the pull-up legs and pull-down legs in the CMOS drivers may be sufficient for calibration based on a 240 ohm resistor to an output impedance of 20 ohms for typical and fast corners (e.g. nominal 302 and FF 306 )
- the number and impedances of the legs may be insufficient for calibration to the lower output impedance when the die 404 is a slow corner (e.g.
- CMOS drivers may be sufficient for calibration to the lower impedance at nominal voltages and temperatures, but not at minimal voltages and maximum temperatures.
- a slow corner may have required all the transistors in the pull-up legs and pull-down legs to be activated to reduce the output impedance to 25 ohms for a 300 ohm resistor, and thus there may not be any more transistors to activate to further reduce the output impedance to 20 ohms. Therefore, a screening process may be implemented to screen out dies (or other chips) which are unable to calibrate the output impedance to the lower impedance based on the modified RZQ. Different examples of screening processes are described below with respect to FIGS. 8 and 9 .
- FIG. 8 illustrates an example flow chart 800 of a method for screening dies in a storage device 102 such as the one illustrated in FIG. 1 .
- the method can be carried out using a storage device 102 such as the one illustrated in FIG. 1 .
- One or more steps in the flow chart can be controlled using the controller as described below (e.g. controller 123 , 402 ), or by some other suitable means.
- the controller may be external to the die.
- a die including a NAND flash memory, DRAM, or other IC may be tested using a modified calibration resistor.
- a manufacturer of die 404 may test ZQ calibration of the die using a calibration resistor 420 , 602 that has a resistance lower than that which may produce a minimum output impedance of the output driver 412 , 502 across PVT variations as discussed above (e.g. 240 ohms instead of 300 ohms for NAND).
- a maximum temperature and minimum voltage may be applied to the die. For instance, referring to FIGS. 4-6 , VccQ may be reduced to a minimum voltage (e.g. 1.14 V for DDR3), and heat may be applied to the transistors in the die 404 to increase the temperature to a maximum operating temperature (e.g. 85° C.). This step allows the die to be tested at the slowest corner boundary of PVT.
- a minimum voltage e.g. 1.14 V for DDR3
- heat may be applied to the transistors in the die 404 to increase the temperature to a maximum operating temperature (e.g. 85° C.). This step allows the die to be tested at the slowest corner boundary of PVT.
- a ZQ calibration command may be issued to the die.
- the controller 123 , 402 may issue a calibration command to the calibration circuit 418 , 600 to calibrate the output impedance 422 , 530 of each output driver 412 , 502 based on the modified calibration resistor. If calibration is successful (e.g. the output impedance 628 was matched to the modified calibration resistor and the output impedance 422 , 530 was subsequently calibrated to the lower output impedance based on PUP/PDN), a calibration status register in the die (e.g. ZQ_cal status) may be updated to indicate calibration was successful; otherwise the register may be updated to indicate calibration has failed.
- a calibration status register in the die e.g. ZQ_cal status
- the controller 123 may check the calibration status register to determine whether calibration is successful, and if calibration was successful, then as represented by block 810 , the die may be sorted or binned for products with larger memories or higher speeds. Alternatively, if calibration was unsuccessful, then as represented by block 812 , the die may be sorted or binned for products with smaller memories or lower speeds. For example, referring to FIGS. 4-6 , if calibration of die 404 is determined to be successful (e.g.
- the die 404 may be implemented in a storage device 102 with more die stacks (e.g. 16 dies instead of 8 dies, or some other larger number), or with greater speeds (e.g. as described above with respect to FIG. 7B ). Otherwise, if calibration of die 404 is determined to be unsuccessful (e.g.
- the die 404 may be implemented in a storage device 102 with less die stacks (e.g. 8 dies or some other smaller number) or with lesser speeds.
- FIG. 9 illustrates an example flow chart 900 of another method for screening dies in a storage device 102 such as the one illustrated in FIG. 1 .
- the method can be carried out using a storage device 102 such as the one illustrated in FIG. 1 .
- One or more steps in the flow chart can be controlled using the controller as described below (e.g. controller 123 , 402 ), or by some other suitable means.
- the controller may be internal to the die.
- a wafer may be sorted for dies with internal controllers.
- the controller 402 may alternatively be internal to die 404 .
- a manufacturer of the die 404 may sort wafers including multiple dies to identify wafers that include such dies having internal controllers for calibration testing.
- a calibration code threshold may be set based on a characterization process. For instance, referring to FIGS. 4-6 , when the calibration circuit 418 , 600 generates outputs from the DAC counter 622 , each output may constitute a calibration code. For example, an output of 1010 from DAC counter 622 may constitute one calibration code (corresponding to activation of first and third PMOS transistors in the pull-up leg of the calibration circuit, as well as activation of first and third NMOS transistors in the pull-down leg of the calibration circuit after inversion by inverter 624 ).
- the calibration of each die 404 based on the modified calibration resistor may be tested across different voltage and temperatures. During the characterization process, different calibration codes resulting in successful calibration may be generated at different temperatures and voltages. The highest calibration code that results in successful calibration even at minimum voltage and maximum temperature may be set as the calibration code threshold.
- the controller determines whether the calibration code of the die is below the calibration code threshold. For instance, referring to FIGS. 4-6 , the controller 123 , 402 may issue a calibration command to the calibration circuit 418 , 600 to calibrate the output impedance 422 , 530 of each output driver 412 , 502 based on the modified calibration resistor.
- the calibration code which is generated to calibrate the output impedance in response to the command may be stored in a calibration code register (e.g. ZQ_cal) accessible by internal controllers. The controller may thus access the calibration code from the register of the die 404 , and determine whether the calibration code is below the threshold or not accordingly.
- the die may be sorted or binned for products with larger memories or higher speeds.
- the die may be sorted or binned for products with smaller memories or lower speeds. For example, referring to FIGS. 4-6 and assuming a calibration code threshold of 1100, if the output impedance 628 was matched to the impedance of the modified calibration resistor such as 240 ohms using a generated calibration code of 1011 or lower, the die 404 may be implemented in a storage device 102 with more die stacks (e.g.
- the die 404 may be implemented in a storage device 102 with less die stacks (e.g. 8 dies or some other smaller number) or with lesser speeds.
- FIG. 10 illustrates an example flow chart 1000 of a method for calibrating an output impedance of an output driver.
- the method can be carried out in a storage device 102 such as the one illustrated in FIG. 1 .
- Each of the steps in the flow chart can be controlled using the controller as described below (e.g. controller 123 , 402 ), or by some other suitable means.
- the controller commands a calibration circuit to calibrate an output impedance of an output driver.
- the output driver is configured to output stored data.
- the calibration circuit is configured to calibrate the output impedance of the output driver using a calibration resistor.
- the controller 123 , 402 may command a calibration circuit 418 , 600 to calibrate an output impedance 422 , 530 of an output driver 412 , 502 .
- the output driver may output stored data (e.g. data 119 , 407 ).
- the calibration circuit may calibrate the output impedance 422 , 530 of the output driver using a calibration resistor 420 , 602 .
- the calibration resistor has a resistance that enables the calibration circuit to calibrate the output impedance to a lower impedance than a minimum impedance required by a controller to read the stored data across process, voltage and temperature variations of the die at maximum loading of the controller.
- the calibration resistor 602 may have a resistance that enables the calibration circuit 418 , 600 to calibrate the output impedance 422 , 530 to a lower impedance than a minimum output impedance required by the controller 123 , 402 to read the stored data (data 119 , 407 ) across PVT variations of the die 404 at a maximum loading of the controller (e.g. 8 dies).
- a 240 ohm resistor may be selected as calibration resistor 420 , 602 in lieu of a 300 ohm resistor for NAND, which may allow the output impedance 530 of the driver to be reduced to a lower impedance of 20 ohms than the minimum output impedance of the output driver across PVT variations (e.g. 25 ohms).
- the minimum output impedance described above may enable the controller 123 , 402 to read data 119 , 407 stored in the NVM 110 , 406 across PVT variations of the die 404 at a maximum loading of the controller.
- the number and individual impedances of the pull-up and pull-down transistors in the CMOS devices for both the output driver and the calibration circuit may be designed such that, when eight dies share the bus 410 with the controller 402 , the output impedance 422 , 530 may be calibrated to a minimum of 25 ohms using a 300 ohm calibration resistor notwithstanding whether the die 404 operates at a nominal corner 302 , a SS corner 304 , FF corner 306 , SF corner 308 , or FS corner 310 , notwithstanding whether the die 404 operates at a nominal voltage (e.g. 1.2 VccQ), a minimum voltage (e.g.
- a nominal voltage e.g. 1.2 VccQ
- a minimum voltage e.g.
- the lower output impedance may not operate across PVT variations.
- the number and individual impedances of the pull-up legs and pull-down legs in the CMOS drivers may be sufficient for calibration based on a 240 ohm resistor to an output impedance of 20 ohms for typical and fast corners (e.g. nominal 302 and FF 306 )
- the number and impedances of the legs may be insufficient for calibration to the lower output impedance when the die 404 is a slow corner (e.g. SS 304 ).
- the output driver further comprises a plurality of parallel pull-up driver transistors and a plurality of parallel pull-down driver transistors.
- the calibration circuit may be configured to set an impedance of the parallel pull-up drive transistors and an impedance of the parallel pull-down driver transistors to the resistance of the calibration resistor.
- the output driver 412 , 502 may include a plurality of parallel pull-up driver transistors 510 in one pull-up leg 504 and a plurality of parallel pull-down driver transistors 518 in one pull-down leg 506 .
- the calibration circuit 418 , 600 may set an impedance of the parallel pull-up driver transistors 510 and parallel pull-down driver transistors 518 (e.g. output impedance 526 , 528 , respectively) to the resistance of the calibration resistor 420 , 602 .
- the output driver may further comprise a plurality of parallel second pull-up driver transistors coupled in parallel with the pull-up driver transistors and a plurality of parallel second pull-down driver transistors coupled in parallel with the pull-down driver transistors.
- the calibration circuit may be further configured to set an impedance of the parallel second pull-up drive transistor and an impedance of the parallel second pull-down driver transistor to the resistance of the calibration resistor.
- the output driver 412 , 502 may include a plurality of parallel second pull-up driver transistors 510 in different pull-up legs 504 and a plurality of parallel pull-down driver transistors 518 in different pull-down legs 506 , where each pull-up leg and pull-down leg are coupled in parallel with each other.
- the calibration circuit 418 , 600 may set an impedance of the parallel pull-up driver transistors 510 and parallel pull-down driver transistors 518 in the multiple pull-up legs and pull-down legs (e.g. output impedance 526 , 528 , respectively) to the resistance of the calibration resistor 420 , 602 .
- the output driver may further comprise a plurality of parallel pull-up driver transistors and a plurality of parallel pull-down driver transistors.
- the calibration circuit may be further configured to control the output impedance of the output driver by controlling the pull-up driver transistors and the pull-down driver transistors.
- the output driver 412 , 502 may include a plurality of parallel pull-up driver transistors 510 and a plurality of parallel pull-down transistors 518 .
- the calibration circuit 418 , 600 may control the output impedance 422 , 530 of the output driver 412 , 502 by controlling the pull-up driver transistors 510 and pull-down driver transistors 518 (e.g. using VOH 512 and VOL 520 , respectively, as well as PUP 516 and PDN 524 , respectively).
- the calibration circuit may comprise a plurality of parallel pull-up calibration transistors.
- the calibration circuit may be further configured to control the pull-up calibration transistors based on the calibration resistor and control the pull-up drivers based on the control of the pull-up calibration transistors.
- the calibration circuit 418 , 600 may include a plurality of pull-up calibration transistors 604 .
- the calibration circuit 418 , 600 may control the pull-up calibration transistors 604 based on the calibration resistor 602 (e.g. using the comparator 620 , DAC counter 622 , and VOH 606 as discussed above), and the calibration circuit may control the pull-up drivers (e.g.
- pull-up driver transistors 510 based on the control of the pull-up calibration transistors (e.g. based on the VOH 512 , 606 that produces the output impedance 628 matching the impedance of the calibration resistor 420 , 602 as discussed above).
- the calibration circuit may comprise an output pulled up by the pull-up calibration transistors and loaded by the calibration resistor.
- the calibration circuit may further comprise a feedback circuit configured to control the pull-up calibration transistors based on the output of the calibration circuit.
- the feedback circuit may be configured to set an impedance of the parallel pull-up calibration transistors to the resistance of the calibration resistor.
- the calibration circuit 418 , 600 may include an output (e.g. VZQ 626 ) pulled up by the pull-up calibration transistors 604 and loaded by the calibration resistor 602 .
- the calibration circuit 418 , 600 may further include a feedback circuit which includes the pull-up calibration transistors and output (VZQ 626 ), the comparator 620 , the DAC counter 622 , and the VOH 606 .
- the feedback circuit controls the pull-up calibration transistors 604 based on the output (e.g. using VOH 606 ), and may set an impedance of the parallel pull-up calibration transistors 604 (e.g. output impedance 628 ) to the resistance of the calibration resistor 602 , as described above.
- the controller may determine whether the output impedance of the output driver can be calibrated to an impedance lower than a threshold at maximum temperature and minimum voltage.
- the threshold may be a function of a resistance of the calibration resistor.
- the controller 123 , 402 may determine whether the output impedance 422 , 530 of the output driver 412 , 502 can be calibrated to an impedance (e.g. 20 ohms) lower than a threshold (e.g. the above-described, minimum output impedance, such as 25 ohms) at maximum temperature and minimum voltage, e.g. as described in connection with blocks 804 , 806 , and 808 of FIG.
- the threshold may be a function of a resistance of the calibration resistor 420 , 602 .
- the minimum output impedance may change depending on the resistance of calibration resistor 602 (e.g. 25 ohms for a 300 ohm resistor, 30 ohms for a 360 ohm resistor, etc.)
- the controller may determine whether a calibration code exceeds a threshold at nominal temperature and voltage.
- the calibration circuit may be configured to generate the calibration code to calibrate the output impedance of the output driver using the calibration resistor. For instance, referring to FIGS. 4-6 and 9 , the controller 123 , 402 may determine whether a calibration code (e.g. the output of DAC counter 622 ) exceeds a threshold (e.g. a calibration code threshold) at nominal temperature and voltage (e.g. 1.2 VccQ for DDR3 and 25° C.), e.g., as described in connection with blocks 904 and 906 of FIG. 9 .
- a calibration code e.g. the output of DAC counter 622
- a threshold e.g. a calibration code threshold
- nominal temperature and voltage e.g. 1.2 VccQ for DDR3 and 25° C.
- the feedback circuit may generate the calibration code based on the output of the calibration circuit.
- the feedback circuit may further be configured to control the pull-up calibration transistors with the calibration code.
- the calibration circuit may be further configured to control the parallel pull-up driver transistors and the parallel pull-down driver transistors of the output driver with the calibration code.
- the feedback circuit e.g. the pull-up calibration transistors and output (VZQ 626 ), the comparator 620 , the DAC counter 622 , and the VOH 606
- the calibration code e.g. the output of the DAC counter 622 corresponding to VOH 606 based on the output of the calibration circuit (e.g. VZQ 626 ).
- the feedback circuit may control the pull-up calibration transistors 604 with the calibration code (e.g. using VOH 606 ).
- the calibration circuit 418 , 600 may control the parallel pull-up driver transistors 510 and the parallel pull-down driver transistors 518 of the output driver 412 , 502 with the calibration code (e.g. using VOH 512 , 606 and VOL 520 , 610 , which may correspond to the inverted output of the DAC counter 622 ).
- the storage device described in the present disclosure allows under-driven, external (third-party) controllers to experience increased data output speeds without access to ZQ calibration codes, e.g., based on the results of the screening process described above with respect to FIG. 8 , and internal controllers to experience increased data output speeds with access to ZQ calibration codes, e.g. based on the results of the screening process described above with respect to FIG. 9 .
- the capacity of the storage device may be bumped with higher die stacks for existing controllers (e.g. to 16 dies instead of 8 dies, based on a successful calibration to the lower output impedance), thereby improving storage device performance.
- new controllers may operate at higher speeds based on the modified calibration resistor, without requiring over-design for worst-case high capacitance scenarios (e.g. without requiring a greater number of transistors to be implemented in increased die areas to handle higher die loads), thereby saving manufacturing costs.
- various output driver strengths may be achieved that may suit signal integrity even if not supported by IC vendors.
- the output impedance may be calibrated to 20 ohms based on a 240 ohm calibration resistor
- the output impedance may similarly be calibrated to other impedances (e.g. 30 ohms) based on other resistances for the calibration resistor (e.g. 260 ohms) that may not be supported across PVT variations, e.g. other than pre-configured driver strength settings of 25 ohms, 35 and/or 37.5 ohms, and 50 ohms.
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
Abstract
Description
- This application is a continuation of U.S. Non-Provisional application Ser. No. 16/858,223 which is herein incorporated by reference.
- This disclosure is generally related to electronic devices and more particularly to storage devices.
- Storage devices enable users to store and retrieve data. Examples of storage devices include non-volatile memory devices. A non-volatile memory generally retains data after a power cycle. An example of a non-volatile memory is a flash memory, which may include array(s) of NAND cells on one or more dies. Flash memory may be found in solid-state devices (SSDs), Secure Digital (SD) cards, and the like.
- A flash storage device may store control information associated with data. For example, a flash storage device may maintain control tables that include a mapping of logical addresses to physical addresses. This control tables are used to track the physical location of logical sectors, or blocks, in the flash memory. The control tables are stored in the non-volatile memory to enable access to the stored data after a power cycle.
- A die of the flash storage device may include a number of input-outputs (e.g. DQ lines or pins) interfacing with a controller of the flash storage device. Each DQ line may be connected to an output driver, which may pull up output data representing a
logic 1 and which may pull down output data representing alogic 0. A calibration resistor (e.g. a ZQ calibration resistor) may also be provided for the controller to calibrate an output impedance of each output driver. This calibration resistor may be configured such that the flash storage device successfully operates across process, voltage, and temperature variations (PVT). For instance, in a flash storage device including 8 dies sharing an 8-bit data bus with the controller, a 300 ohm (Ω) calibration resistor may be used to calibrate each die to a minimum output impedance of 25Ω that allows the controller to correctly read data from the dies at different process corners (e.g. typical, fast-fast, slow-slow, fast-slow, and slow-fast), at different voltages (e.g. input/output power supply voltages (VccQ) between 1.14 V and 1.26 V for non-volatile, double data rate 3 (NV-DDR3) memories), and at different temperatures (e.g. between a minimum operating temperature of −40° C. and a maximum operating temperature of 85° C.). However, as the maximum load to the controller (i.e. the number of dies sharing the bus) and the maximum data output rate over the DQ lines may be limited by the minimum output impedance, such flash storage devices may be limited by the calibration resistor in memory and speed. - One aspect of a storage device is disclosed herein. The storage device includes a calibration resistor and a die. The die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to calibrate the output impedance of the output driver using the calibration resistor. The calibration resistor has a resistance that enables the calibration circuit to calibrate the output impedance to a lower impedance than a minimum impedance required by a controller to read the stored data across process, voltage and temperature variations of the die at maximum loading of the controller.
- Another aspect of a storage device is disclosed herein. The storage device includes a calibration resistor, a die, and a controller. The die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to calibrate the output impedance of the output driver using the calibration resistor. The controller is configured to determine whether the output impedance of the output driver can be calibrated to an impedance lower than a threshold at maximum temperature and minimum voltage.
- A further aspect of a storage device is disclosed herein. The storage device includes a calibration resistor, a die, and a controller. The die comprises an output driver configured to store output data and having an output impedance, and a calibration circuit configured to generate a calibration code to calibrate the output impedance of the output driver using the calibration resistor. The controller is configured to determine whether the calibration code exceeds a threshold at nominal temperature and voltage.
- It is understood that other aspects of the storage device and method will become readily apparent to those skilled in the art from the following detailed description, wherein various aspects of apparatuses and methods are shown and described by way of illustration. As will be realized, these aspects may be implemented in other and different forms and its several details are capable of modification in various other respects. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
- Various aspects of the present invention will now be presented in the detailed description by way of example, and not by way of limitation, with reference to the accompanying drawings, wherein:
-
FIG. 1 is a block diagram illustrating an exemplary embodiment of a storage device in communication with a host device. -
FIG. 2 is a conceptual diagram illustrating an example of a logical-to-physical mapping table in a non-volatile memory of the storage device ofFIG. 1 . -
FIG. 3 is a diagram illustrating a graphical representation of process corners for complementary metal-oxide-semiconductor (CMOS) chips manufactured on a single wafer including the storage device ofFIG. 1 . -
FIG. 4 is a conceptual diagram illustrating an example of a die including a calibration circuit and an output driver for communicating data to a controller in the storage device ofFIG. 1 . -
FIG. 5 is a conceptual diagram illustrating an example of the output driver depicted in the die ofFIG. 4 . -
FIG. 6 is a conceptual diagram illustrating an example of the calibration circuit depicted in the die ofFIG. 4 . -
FIGS. 7A and 7B are diagrams illustrating examples of DQ timing charts showing superimposed output patterns in the storage device ofFIG. 1 . -
FIG. 8 is a flow chart illustrating a method for testing and binning a die with a modified calibration resistor in the storage device ofFIG. 1 . -
FIG. 9 is a flow chart illustrating another method for testing and binning a die with a modified calibration resistor in the storage device ofFIG. 1 . -
FIG. 10 is a flow chart illustrating a method for calibrating an output impedance of an output driver in the storage device ofFIG. 1 . - The detailed description set forth below in connection with the appended drawings is intended as a description of various exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring the concepts of the present invention. Acronyms and other descriptive terminology may be used merely for convenience and clarity and are not intended to limit the scope of the invention.
- The words “exemplary” and “example” are used herein to mean serving as an example, instance, or illustration. Any exemplary embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other exemplary embodiments. Likewise, the term “exemplary embodiment” of an apparatus, method or article of manufacture does not require that all exemplary embodiments of the invention include the described components, structure, features, functionality, processes, advantages, benefits, or modes of operation.
- In the following detailed description, various aspects of a storage device in communication with a host device will be presented. These aspects are well suited for flash storage devices, such as SSDs and SD cards which include NAND cells to store data. However, those skilled in the art will realize that these aspects may be extended to all types of storage devices capable of storing data, for example, integrated circuits (ICs) that include dynamic random access memory (DRAM), field programmable gate arrays (FPGAs), controllers, etc. Accordingly, any reference to a specific apparatus or method is intended only to illustrate the various aspects of the present invention, with the understanding that such aspects may have a wide range of applications without departing from the spirit and scope of the present disclosure.
- When a controller of the storage device reads stored data from a die, the controller may receive individual bits of the data over multiple data outputs (DQs). Each DQ may be connected to an output driver, which may include an array of CMOS transistors including pull up transistors that pull up output data representing a
logic 1 and pull down transistors to pull down output data representing alogic 0. Groups of parallel pull-up transistors in the array may be arranged into parallel pull-up legs, and groups of parallel pull-down transistors in the array may be arranged into parallel pull-down legs, as illustrated for example inFIG. 5 . For instance, an output driver including a 72-transistor CMOS array may include six parallel pull-up legs each including six parallel pull-up transistors and six parallel pull-down legs each including six parallel pull-down transistors. - A storage device may include multiple dies sharing a bus with the controller, with multiple output drivers including the CMOS arrays subject to process, voltage, and temperature (PVT) variations. For example, due to process variations in oxide thickness, channel length, doping concentration, and other factors during the wafer fabrication process, different dies may operate at different process corners (e.g. typical, fast-fast, slow-slow, fast-slow, and slow-fast). Moreover, due to current-resistance fluctuation (IR drop) and varying amounts of heat at transistor junctions, different dies may experience different input-output (I/O) voltages and temperatures, respectively. Such PVT variations may affect the output impedance or driver strength of each output driver, which may in turn affect the controller's ability to correctly read data from the dies.
- Therefore, to account for these PVT variations (and thus varying output impedances), each pull-up leg and pull-down leg may be calibrated such that its output impedance matches an impedance of a pre-configured, calibration resistor (e.g. a ZQ calibration resistor of 300 ohms for NAND or 240 ohms for DRAM). Moreover, multiple, pre-designed pull-up legs and pull-down legs may be selectively enabled to provide different total output impedances, or driver strength settings, for the output driver to support different capacitance loads (e.g. die stacks) based on the pre-configured calibration resistor. For instance, if each pull up leg and pull down leg is calibrated to include an output impedance matching that of the calibration resistor (e.g. 300 ohms), the controller may enable a number of pull up legs and pull down legs (e.g. 12 legs) to result in a minimum, total output impedance (e.g. 25 ohms for NV-DDR3) to support a pre-configured, maximum loading of the controller (e.g. 8 dies or another number). Similarly, a smaller number of pull up legs and pull down legs (e.g. 8 legs or another number) may be enabled to result in a larger total output impedance (e.g. 35 and/or 37.5 ohms) for a smaller loading (e.g. 4 dies or another number), or an even smaller number of pull up legs and pull down legs (e.g. 6) may be enabled to result in an even larger total output impedance (e.g. 50 ohms) for an even smaller loading (e.g. 1 die or another number). The data output speed of each die may also be similarly pre-configured and limited based on the output impedance and/or capacitance load.
- Thus, the storage device may support pre-configured driver strengths or output impedances (e.g. 25 ohm, 35 ohm, 37.5 ohm, and 50 ohm) based on a calibration resistor that allows the controller to read stored data across PVT variations of the dies, at pre-configured loads (e.g. 1, 2, 4, or 8 dies) and pre-configured output rates (e.g. 533 mega transfers per second (MT/s) for eight dies). However, in cases where more dies or higher output rates are desired, the pre-configured driver strengths based on the existing calibration resistor may be insufficient to support the resulting higher capacitance loads or speeds. For instance, the output drivers of a 16 die load, even when calibrated to the highest driver strength setting or minimum output impedance for a 300 ohm calibration resistor (e.g. 25 ohms as described above for DDR3), may still not have sufficient capability to successfully drive outputs to the controller across PVT variations of the dies (in contrast to, e.g., an 8 die load).
- Therefore, to enable the use of larger memories and higher speeds, the storage device described in the present disclosure includes a calibration resistor that allows the output impedance of the output driver of the die to be calibrated to a lower impedance than the minimum output impedance described above. For example, assume the storage device is preconfigured with a minimum output impedance of 25 ohms (or another number) that allows stored data to be read from eight dies (or another number) across PVT variations (i.e. based on a 300 ohm calibration resistor and twelve enabled pull-up/pull-down legs, as described above). In such case, a calibration resistor having a lower resistance of 240 ohms (or another number) may be provided to calibrate the output impedance of the output drivers to a lower impedance than the minimum (e.g. 20 ohms or another number, assuming twelve enabled pull-up/pull-down legs). In this way, the output impedance may be reduced to increase the drive strength of the output drivers, allowing the controller to read stored data from more dies or at higher speeds. Such approach may be advantageous over increasing the number of fabricated, parallel pull-up and pull-down legs to reduce the output impedance, for example, which may be limited based on the die area.
- However, such lower output impedances (e.g. 20 ohms) may not be guaranteed across PVT variations in contrast to the minimum output impedance described above (e.g. 25 ohms). For example, a die which is a slow corner (e.g. SS) may have a larger output impedance for its pull-up or pull-down transistors due to process variations than a die which is a typical or fast corner (e.g. FF). When calibrating the output impedance based on a larger calibration resistor (e.g. 300 ohms), such process variations are accounted for in the design of the storage device. For example, the storage device may be configured with a sufficient number of CMOS transistors (i.e. pull-up and pull-down legs) to calibrate the larger output impedance of even slow corners to the pre-configured, minimum output impedance (e.g. 25 ohms). However, when calibrating the output impedance based on a smaller calibration resistor (e.g. 240 ohms), the number of CMOS transistors may no longer be sufficient. For example, there may not be enough transistors to calibrate the larger output impedance of slow corners to the lower output impedance (e.g. 20 ohms), and increasing the number of transistors in the storage device to compensate for this insufficiency may not be cost-effective or feasible due to limited die area as described above.
- Accordingly, a screening process may be implemented which identifies dies that are unable during calibration to achieve the lower output impedance across PVT variations. The screening process may depend on whether the controller is external to the die or internal to the die. In one example of the screening process, an external controller of the storage device may determine whether the output impedance of the output driver of a die can be calibrated to the lower impedance (i.e. lower than a threshold such as the minimum output impedance of 25 ohms described above) in a condition where the die is slowest (i.e. at a maximum operating temperature (e.g. 85° C.) and a minimum voltage (e.g. 1.14 VccQ)). The controller may send a calibration command to the die, which calibrates the output impedance of the output driver of the die to match the impedance of the lower calibration resistor (e.g. 240 ohms). A register (e.g. ZQ_cal status or another name) may be updated to indicate whether calibration is successful or whether calibration has failed. The controller may determine from the register if calibration is successful or not. If calibration is successful (i.e. the lower impedance of 20 ohms or another number was achieved), the die is determined to operate across PVT variations even with the lower calibration resistor and may accordingly be binned or sorted for products with higher die loads or speeds. If calibration has failed (i.e. the lower impedance of 20 ohms or another number was not achieved), the die is determined not to operate across PVT variations with the lower calibration resistor and may accordingly be binned or sorted for products with lower die loads or speeds. For example, a die with successful calibration may be sorted for use in a 16 die product (larger memory), while a die with failed calibration may be sorted for use in a 8 die or lower configuration product (smaller memory) to achieve similar speeds, e.g. 533 MT/s. Also, a die with successful calibration may help increase the transfer speed within the same configuration product.
- In another example, if the controller is internal to the die, the controller may access a calibration code used to calibrate the output impedance of the output driver in a register (e.g. ZQ_cal or another name). The calibration code may indicate which parallel pull-up or pull-down transistors in a parallel pull-up or pull-down leg are activated to match the output impedance with the impedance of the lower calibration resistor (e.g. 240 ohms or another number) during a successful calibration. For instance, assuming each pull-up/pull-down leg of the output driver includes six parallel transistors, a calibration code of six bits (i.e. 63 different calibration codes excluding 000000) may be generated during calibration, and if alternating transistors corresponding to the calibration code 101010 are activated to successfully calibrate output impedance, the register may store the code 101010. Moreover, in this example, when dies are tested on a wafer, a characterization process may be implemented in which slow corners are tested for successful calibration using the lower calibration resistor (e.g. 240 ohms) at different voltages and temperatures (VT). Based on the results of the characterization, a calibration code threshold may identified which indicates a maximum calibration code that enables successful calibration across VT variations. For instance, if calibration code 111000 (or some other code) is identified during testing to be the highest calibration code that allows the output impedance to be successfully reduced to 20 ohms even at a maximum operating temperature (e.g. 85° C.) and a minimum voltage (e.g. 1.14 VccQ), the calibration code threshold may be set as that code.
- Accordingly in this other example of the screening process, the internal controller may determine whether the calibration code (e.g. 101010) used to successfully perform calibration of the die to the lower output impedance (e.g. 20 ohms) exceeds the calibration code threshold (e.g. 111000) at a nominal temperature and voltage (e.g. 25° C. and 1.2 VccQ). For instance, after sending a calibration command to the die, the controller may read the ZQ_cal register (or another name) to identify the calibration code which was used to successfully perform the calibration at nominal voltage and temperature conditions. If the identified calibration code does not exceed the calibration code threshold, the die is determined to operate across PVT variations even with the lower calibration resistor and may accordingly be binned or sorted for products with higher die loads or speeds. If the identified calibration code exceeds the calibration code threshold, the die is determined not to operate across PVT variations with the lower calibration resistor and may accordingly be binned or sorted for products with lower die loads or speeds. For example, a die with a smaller calibration code may be sorted for use in a 16 die product (larger memory), while a die with a larger calibration code may be sorted for use in a 8 die or lower configuration product (smaller memory) to achieve similar speeds, e.g. 533 MT/s. Also, a die with a smaller calibration code may help increase the transfer speed within the same configuration product. Alternatively, the internal controller may perform the same process as the external controller in the other example of screening described above.
-
FIG. 1 shows an exemplary block diagram 100 of astorage device 102 which communicates with a host device 104 (also “host”) according to an exemplary embodiment. Thehost 104 and thestorage device 102 may form a system, such as a computer system (e.g., server, desktop, mobile/laptop, tablet, smartphone, etc.). The components ofFIG. 1 may or may not be physically co-located. In this regard, thehost 104 may be located remotely fromstorage device 102. AlthoughFIG. 1 illustrates that thehost 104 is shown separate from thestorage device 102, thehost 104 in other embodiments may be integrated into thestorage device 102, in whole or in part. Alternatively, thehost 104 may be distributed across multiple remote entities, in its entirety, or alternatively with some functionality in thestorage device 102. - Those of ordinary skill in the art will appreciate that other exemplary embodiments can include more or less than those elements shown in
FIG. 1 and that the disclosed processes can be implemented in other environments. For example, other exemplary embodiments can include a different number of hosts communicating with thestorage device 102, ormultiple storage devices 102 communicating with the host(s). - The
host device 104 may store data to, and/or retrieve data from, thestorage device 102. Thehost device 104 may include any computing device, including, for example, a computer server, a network attached storage (NAS) unit, a desktop computer, a notebook (e.g., laptop) computer, a tablet computer, a mobile computing device such as a smartphone, a television, a camera, a display device, a digital media player, a video gaming console, a video streaming device, or the like. Thehost device 104 may include at least oneprocessor 101 and ahost memory 103. The at least oneprocessor 101 may include any form of hardware capable of processing data and may include a general purpose processing unit (such as a central processing unit (CPU)), dedicated hardware (such as an application specific integrated circuit (ASIC)), digital signal processor (DSP), configurable hardware (such as a field programmable gate array (FPGA)), or any other form of processing unit configured by way of software instructions, firmware, or the like. Thehost memory 103 may be used by thehost device 104 to store data or instructions processed by the host or data received from thestorage device 102. In some examples, thehost memory 103 may include non-volatile memory, such as magnetic memory devices, optical memory devices, holographic memory devices, flash memory devices (e.g., NAND or NOR), phase-change memory (PCM) devices, resistive random-access memory (ReRAM) devices, magnetoresistive random-access memory (MRAM) devices, ferroelectric random-access memory (F-RAM), and any other type of non-volatile memory devices. In other examples, thehost memory 103 may include volatile memory, such as random-access memory (RAM), dynamic random access memory (DRAM), static RAM (SRAM), and synchronous dynamic RAM (SDRAM (e.g., DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, and the like). Thehost memory 103 may also include both non-volatile memory and volatile memory, whether integrated together or as discrete units. - The
host interface 106 is configured to interface thestorage device 102 with thehost 104 via a bus/network 108, and may interface using, for example, Ethernet or WiFi, or a bus standard such as Serial Advanced Technology Attachment (SATA), PCI express (PCIe), Small Computer System Interface (SCSI), or Serial Attached SCSI (SAS), among other possible candidates. Alternatively, thehost interface 106 may be wireless, and may interface thestorage device 102 with thehost 104 using, for example, cellular communication (e.g. 5G NR, 4G LTE, 3G, 2G, GSM/UMTS, CDMA One/CDMA2000, etc.), wireless distribution methods through access points (e.g. IEEE 802.11, WiFi, HiperLAN, etc.), Infra Red (IR), Bluetooth, Zigbee, or other Wireless Wide Area Network (WWAN), Wireless Local Area Network (WLAN), Wireless Personal Area Network (WPAN) technology, or comparable wide area, local area, and personal area technologies. - As shown in the exemplary embodiment of
FIG. 1 , thestorage device 102 includes non-volatile memory (NVM) 110 for non-volatilely storing data received from thehost 104. TheNVM 110 can include, for example, flash integrated circuits, NAND memory (e.g., single-level cell (SLC) memory, multi-level cell (MLC) memory, triple-level cell (TLC) memory, quad-level cell (QLC) memory, penta-level cell (PLC) memory, or any combination thereof), or NOR memory. TheNVM 110 may include a plurality ofmemory locations 112 which may store system data for operating thestorage device 102 or user data received from the host for storage in thestorage device 102. For example, the NVM may have a cross-point architecture including a 2-D NAND array ofmemory locations 112 having n rows and m columns, where m and n are predefined according to the size of the NVM. In the illustrated exemplary embodiment ofFIG. 1 , eachmemory location 112 may be ablock 114 includingmultiple cells 116. Thecells 116 may be single-level cells, multi-level cells, triple-level cells, quad-level cells, and/or penta-level cells, for example. Other examples ofmemory locations 112 are possible; for instance, each memory location may be a die containing multiple blocks. Moreover, each memory location may include one or more blocks in a 3-D NAND array. Moreover, the illustratedmemory locations 112 may be logical blocks which are mapped to one or more physical blocks. - The
storage device 102 also includes avolatile memory 118 that can, for example, include a Dynamic Random Access Memory (DRAM) or a Static Random Access Memory (SRAM). Data stored involatile memory 118 can include data read from theNVM 110 or data to be written to theNVM 110. In this regard, thevolatile memory 118 can include a write buffer or a read buffer for temporarily storing data. WhileFIG. 1 illustrates thevolatile memory 118 as being remote from acontroller 123 of thestorage device 102, thevolatile memory 118 may be integrated into thecontroller 123. - The memory (e.g. NVM 110) is configured to store
data 119 received from thehost device 104. Thedata 119 may be stored in thecells 116 of any of thememory locations 112. As an example,FIG. 1 illustratesdata 119 being stored indifferent memory locations 112, although the data may be stored in the same memory location. In another example, thememory locations 112 may be different dies, and the data may be stored in one or more of the different dies. - Each of the
data 119 may be associated with a logical address. For example, theNVM 110 may store a logical-to-physical (L2P) mapping table 120 for thestorage device 102 associating eachdata 119 with a logical address. The L2P mapping table 120 stores the mapping of logical addresses specified for data written from thehost 104 to physical addresses in theNVM 110 indicating the location(s) where each of the data is stored. This mapping may be performed by thecontroller 123 of the storage device. The L2P mapping table may be a table or other data structure which includes an identifier such as a logical block address (LBA) associated with eachmemory location 112 in the NVM where data is stored. WhileFIG. 1 illustrates a single L2P mapping table 120 stored in one of thememory locations 112 of NVM to avoid unduly obscuring the concepts ofFIG. 1 , the L2P mapping table 120 in fact may include multiple tables stored in one or more memory locations of NVM. -
FIG. 2 is a conceptual diagram 200 of an example of an L2P mapping table 205 illustrating the mapping ofdata 202 received from a host device to logical addresses and physical addresses in theNVM 110 ofFIG. 1 . Thedata 202 may correspond to thedata 119 inFIG. 1 , while the L2P mapping table 205 may correspond to the L2P mapping table 120 inFIG. 1 . In one exemplary embodiment, thedata 202 may be stored in one ormore pages 204, e.g.,pages 1 to x, where x is the total number of pages of data being written to theNVM 110. Eachpage 204 may be associated with one ormore entries 206 of the L2P mapping table 205 identifying a logical block address (LBA) 208, aphysical address 210 associated with the data written to the NVM, and alength 212 of the data.LBA 208 may be a logical address specified in a write command for the data received from the host device.Physical address 210 may indicate the block and the offset at which the data associated withLBA 208 is physically written.Length 212 may indicate a size of the written data (e.g. 4 KB or some other size). - Referring back to
FIG. 1 , thevolatile memory 118 also stores acache 122 for thestorage device 102. Thecache 122 includes entries showing the mapping of logical addresses specified for data requested by thehost 104 to physical addresses inNVM 110 indicating the location(s) where the data is stored. This mapping may be performed by thecontroller 123. When thecontroller 123 receives a read command or a write command fordata 119, the controller checks thecache 122 for the logical-to-physical mapping of each data. If a mapping is not present (e.g. it is the first request for the data), the controller accesses the L2P mapping table 120 and stores the mapping in thecache 122. When thecontroller 123 executes the read command or write command, the controller accesses the mapping from the cache and reads the data from or writes the data to theNVM 110 at the specified physical address. The cache may be stored in the form of a table or other data structure which includes a logical address associated with eachmemory location 112 in NVM where data is being read. - The
NVM 110 includessense amplifiers 124 and data latches 126 connected to eachmemory location 112. For example, thememory location 112 may be ablock including cells 116 on multiple bit lines, and theNVM 110 may include asense amplifier 124 on each bit line. Moreover, one or more data latches 126 may be connected to the bit lines and/or sense amplifiers. The data latches may be, for example, shift registers. When data is read from thecells 116 of thememory location 112, thesense amplifiers 124 sense the data by amplifying the voltages on the bit lines to a logic level (e.g. readable as a ‘0’ or a ‘1’), and the sensed data is stored in the data latches 126. The data is then transferred from the data latches 126 to thecontroller 123, after which the data is stored in thevolatile memory 118 until it is transferred to thehost device 104. When data is written to thecells 116 of thememory location 112, thecontroller 123 stores the programmed data in the data latches 126, and the data is subsequently transferred from the data latches 126 to thecells 116. - The
storage device 102 includes acontroller 123 which includes circuitry such as one or more processors for executing instructions and can include a microcontroller, a Digital Signal Processor (DSP), an Application-Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), hard-wired logic, analog circuitry and/or a combination thereof. - The
controller 123 is configured to receive data transferred from one or more of thecells 116 of thevarious memory locations 112 in response to a read command. For example, thecontroller 123 may read thedata 119 by activating thesense amplifiers 124 to sense the data fromcells 116 into data latches 126, and thecontroller 123 may receive the data from the data latches 126. Thecontroller 123 is also configured to program data into one or more of thecells 116 in response to a write command. For example, thecontroller 123 may write thedata 119 by sending data to the data latches 126 to be programmed into thecells 116. Thecontroller 123 is further configured to access the L2P mapping table 120 in theNVM 110 when reading or writing data to thecells 116. For example, thecontroller 123 may receive logical-to-physical address mappings from theNVM 110 in response to read or write commands from thehost device 104, identify the physical addresses mapped to the logical addresses identified in the commands (e.g. translate the logical addresses into physical addresses), and access or store data in thecells 116 located at the mapped physical addresses. - The
controller 123 and its components may be implemented with embedded software that performs the various functions of the controller described throughout this disclosure. Alternatively, software for implementing each of the aforementioned functions and components may be stored in theNVM 110 or in a memory external to thestorage device 102 orhost device 104, and may be accessed by thecontroller 123 for execution by the one or more processors of thecontroller 123. Alternatively, the functions and components of the controller may be implemented with hardware in thecontroller 123, or may be implemented using a combination of the aforementioned hardware and software. - In operation, the
host device 104 stores data in thestorage device 102 by sending a write command to thestorage device 102 specifying one or more logical addresses (e.g., LBAs) as well as a length of the data to be written. Theinterface element 106 receives the write command, and the controller allocates amemory location 112 in theNVM 110 ofstorage device 102 for storing the data. Thecontroller 123 stores the L2P mapping in the NVM (and the cache 122) to map a logical address associated with the data to the physical address of thememory location 112 allocated for the data. The controller also stores the length of the L2P mapped data. Thecontroller 123 then stores the data in thememory location 112 by sending it to one or more data latches 126 connected to the allocated memory location, from which the data is programmed to thecells 116. - The
host 104 may retrieve data from thestorage device 102 by sending a read command specifying one or more logical addresses associated with the data to be retrieved from thestorage device 102, as well as a length of the data to be read. Theinterface 106 receives the read command, and thecontroller 123 accesses the L2P mapping in thecache 122 or otherwise the NVM to translate the logical addresses specified in the read command to the physical addresses indicating the location of the data. Thecontroller 123 then reads the requested data from thememory location 112 specified by the physical addresses by sensing the data using thesense amplifiers 124 and storing them in data latches 126 until the read data is returned to thehost 104 via thehost interface 106. -
FIG. 3 is a two-dimensional graph that is typically used to show the distribution of chip (e.g. die) parameters for CMOS technology. Statistically, most of the CMOS chips will have electrical parameters that meet nominal specifications. These CMOS chips may be plotted around thecenter 302 of the graph. A number of CMOS chips, however, will deviate from the nominal case towards the process corners. Referring toFIG. 3 , each process corner is represented by a two-letter designation. The first letter refers to the NMOS transistors and the second letter refers to the PMOS transistors, and each letter has either an F designation for fast or an S designation for slow. Thus, CMOS chips with both types of transistors being slow or fast will be plotted around the slow corner (SS) 304 or fast corner (FF) 306, respectively. There may also be CMOS chips that are plotted around cross corners where one type of transistor is faster and the other type of transistor is slower. By way of example, CMOS chips with slow NMOS transistors and fast PMOS transistors may be plotted around the slow-fast (SF)corner 308. CMOS chips with fast NMOS transistors and slow PMOS transistors may be plotted around the fast-slow (FS)corner 310. Preferably, all the CMOS chips manufactured on a semiconductor wafer can be plotted within the boundaries spanning the process corners. The performance of the CMOS chips that reside outside these boundaries cannot be guaranteed to operate properly under worst case conditions. -
FIG. 4 illustrates an example diagram 400 illustrating acontroller 402 in communication with adie 404 over a bus.Die 404 may include aNVM 406 that stores data 407 (e.g. data 119 ofFIG. 1 ). Thecontroller 402 may correspond tocontroller 123 ofFIG. 1 , and theNVM 406 ofdie 404 may correspond to thememory location 112 ofFIG. 1 . Each die may include various pins which serve as interfaces between the controller and the die. For example, the die may include an input/output (I/O) 408 which is configured to receive inputs and transmit outputs (e.g. input data and commands from the controller to read, write, or erase data, and output data from the NVM 406). I/O 408 may include a number of data lines or pins (DQ) that receive individual bits of input data and send individual bits of output data over abus 410. In the example ofFIG. 4 , thebus 410 may be an 8-bit bus which interfaces with eight DQ pins (DQ7:0), although a different bus width and number of DQs may be used (e.g. a 16-bit bus with 16 DQs). For clarity, only I/O 408 is illustrated inFIG. 4 fordie 404; however die 404 may include other pins. For instance, the die may include a CE for receiving a chip-enable signal from the controller, a ready/busy (R/B) for outputting a ready or busy status to the controller, an address latch enable (ALE) for latching addresses into NAND, a command latch enable (CLE) for latching commands into a command register, a RE (read enable) for enabling output data buffers, a WE (write enable) for clocking data, addresses, or commands into the NAND, and a bidirectional data strobe signal (DQS) that clocks the I/O 408 to receive and transmit data over thebus 410. Moreover, whileFIG. 4 illustrates a single die in communication with thecontroller 402, it should be understood that multiple dies may communicate with the controller over thebus 410. - The
die 404 may include anoutput driver 412 for each DQ pin. For clarity, only oneoutput driver 412 is illustrated for DQ7, although separate output drivers may be connected to the other DQs. Eachoutput driver 412 may be a CMOS driver that includes pull-up legs 414 (p-type metal-oxide-semiconductor (PMOS) transistors) for pulling up the voltage of the data output on the DQ line to alogic 1 and pull-down legs 416 (n-type metal-oxide-semiconductor (NMOS) transistors) for pulling down the voltage of the data output on the DQ line to alogic 0. Thedie 404 may also include acalibration circuit 418 connected via a ZQ pin to a calibration resistor 420 (RZQ) which is external to thedie 404. Thecalibration circuit 418 may calibrate anoutput impedance 422 of eachoutput driver 412 based on the resistance of thecalibration resistor 420. -
FIG. 5 illustrates an example of an output driver 502 (a CMOS driver) including pull-up legs 504 (PMOS) and pull-down legs 506 (NMOS) for one of the DQ pins (DQ 508). Output driver may correspond tooutput driver 412 ofFIG. 4 , pull-uplegs 504 and pull-downlegs 506 may respectively correspond to pull-uplegs 414 and pull-downlegs 416 ofFIG. 4 , andDQ 508 may correspond to one of the DQs in I/O 408 ofFIG. 4 . WhileFIG. 5 illustrates a specific example of a circuit for theoutput driver 502, theoutput driver 502 is not so limited and may have other transistor arrangements, inputs/outputs, etc. - In the example of
FIG. 5 , each pull-upleg 504 may include a plurality of parallel transistors 510 (PMOS transistors) each having a gate connected to an output high voltage (VOH 512) and a drain connected to theDQ 508. The source of each of theparallel transistors 510 may be connected to an enabling pull-uptransistor 514, which may allow the I/O power supply voltage VccQ (e.g. 1.2 V for DDR3) to pass to the source of each of theparallel transistors 510 in response to a pull-up enable signal (PUP 516) at the gate of the enabling pull-uptransistor 514. Similarly, each pull-downleg 506 may include a plurality of parallel transistors 518 (NMOS transistors) each having a gate connected to an output low voltage (VOL 520) and a source connected to theDQ 508. The drain of each of theparallel transistors 518 may be connected to an enabling pull-down transistor 522, which may allow the ground voltage supply VssQ (e.g. 0 V) to pass to the drain of each of theparallel transistors 518 in response to a pull-down enable signal (PDN 524) at the gate of the enabling pull-down transistor 522. - Each pull-up
leg 504 has anoutput impedance 526 which is controlled based on theVOH 512. Similarly, each pull-downleg 506 has anoutput impedance 528 which is controlled based on theVOL 520. VOH[0:n] and VOL[0:n] respectively represent bitmaps corresponding to a combination of high/low voltages applied to the gates of the parallel transistors in the pull-uplegs 504 and pull-downlegs 506, where n is the number of parallel transistors in each leg. For instance, where n=4 (corresponding to four transistors in each pull-up/pull-down leg), a configuration for VOH of 1010 indicates a high voltage is applied only to the first and third transistors of each pull-up leg (i.e. only the first and third PMOS transistors are activated), while a low voltage is applied to the other transistors of each pull-up leg. Similarly, a configuration for VOL of 0101 indicates a low voltage is applied only to the first and third transistor of each pull-down leg (i.e. only the first and third NMOS transistors are activated), while a high voltage is applied to the other transistors of each pull-down leg. The output impedances 526, 528 may thus be controlled based on the activated transistors in each leg. For instance, each parallel transistor in a single leg may be configured to have a different impedance (e.g. 20 ohms, 40 ohms, 80 ohms, etc.), and thus the output impedance of each leg (i.e. the combined impedance of the parallel transistors) may be configurable based on the selected transistors activated byVOH 512 andVOL 520. As an example, if only a 500 ohm and 750 ohm transistor are activated in each pull-up/pull-down leg by VOH and VOL, theoutput impedances - The
output driver 502 may also have anoutput impedance 530 which is controlled based on theoutput impedances PUP 516 andPDN 524, respectively.Output impedance 530 may correspond tooutput impedance 422 of theoutput driver 412 ofFIG. 4 . PUP[0:m] and PDN [0:m] respectively represent bitmaps corresponding to a combination of high/low voltages applied to the gates of the enabling pull-uptransistor 514 for each pull-upleg 504 and enabling pull-down transistor 522 for each pull-downleg 506, where m is the number of parallel pull-up legs and parallel pull-down legs in the output driver. For instance, where m=6 (corresponding to six pull-uplegs 504 and six pull-downlegs 506 in each output driver 502), a configuration for PUP of 110000 indicates a high voltage is applied only to the first and second enabling pull-up transistor (i.e. only the first and second pull-up legs are activated), while a low voltage is applied to the other enabling pull-up transistors in the other legs. Similarly, a configuration for PDN of 001111 indicates a low voltage is applied only to the first and second enabling pull-down transistor (i.e. only the first and second pull-down legs are activated), while a high voltage is applied to the other enabling pull-down transistors in the other legs. Theoutput impedance 530 may thus be controlled not only based on theoutput impedances output impedances output impedance 530 of theoutput driver 502 may be 25 ohms. -
FIG. 6 illustrates an example of acalibration circuit 600 which may calibrate theoutput impedance output driver Calibration circuit 600 may correspond tocalibration circuit 418 inFIG. 4 , andcalibration resistor 602 may correspond tocalibration resistor 420 inFIG. 4 . Thecalibration circuit 600 may include a CMOS device including a plurality of parallel pull-up transistors 604 (PMOS transistors) each having a gate connected to an output high voltage (VOH 606) and a drain connected to the calibration resistor 602 (e.g. via a ZQ pin); a plurality of parallel pull-down transistors 608 (NMOS transistors) each having a gate connected to an output low voltage (VOL 610) and a source connected to the drain of the pull-up transistors; an enabling pull-uptransistor 612 having a source connected to the I/O power supply voltage VccQ (e.g. 1.2 V for DDR3), a gate connected to a pull-up enable signal (PUP 614), and a drain connected to the source of the pull-up transistors; and an enabling pull-down transistor 616 having a drain connected to a ground voltage supply VssQ (e.g. 0 V), a gate connected to a pull-down enable signal (PDN 618), and a source connected to the drain of the pull-down transistors. Thus, the CMOS device in thecalibration circuit 600 may mirror the CMOS device in the output driver 502 (i.e. with respect to one of the pull-uplegs 504 and pull-down legs 506). For instance, each of the parallel pull-up transistors and parallel-pull down transistors may have different impedances (e.g. 20 ohm, 40 ohm, 80 ohm, etc.) that match the corresponding impedances of the transistors in the pull-uplegs 504 and pull-downlegs 506. Similarly, VOH 606 may connect to VOH 512 inFIG. 5 ,VOL 610 may connect toVOL 520 inFIG. 5 ,PUP 614 may connect toPUP 516 inFIG. 5 , andPDN 618 may connect toPDN 524 inFIG. 5 . - The
calibration circuit 600 may also include acomparator 620 and a digital-to-analog converter (DAC)counter 622. Thecomparator 620 may include an input connected to half of the I/O power supply voltage (i.e. VccQ/2), and another input connected to thecalibration resistor 602. TheDAC counter 622 may include an input connected to an output of thecomparator 620, and an output connected to the VOH 606. The output of theDAC counter 622 may also be connected to theVOL 610, e.g. via aninverter 624. The output of theDAC counter 622 may be n bits, where n is equal to the number of parallel pull-uptransistors 604 and parallel pull-downtransistors 608. For instance, if n=4 (the pull-up transistors and pull-down transistors each include 4 parallel transistors), the output of the DAC counter may include 4 bits, with each bit representing whether a high voltage (logic 1) or a low voltage (logic 0) is to be applied to the gate of each transistor. Thus, the output of the DAC counter may correspond to the bitmaps represented by VOH[0:n] and VOL[0:n]. - The output of the DAC counter may change (and thus the voltages applied to the gates of the parallel pull-up and pull-down transistors may change) in response to the output of the
comparator 620. That is, the DAC counter may be connected to thecomparator 620 such that, when the output of thecomparator 620 indicates that the voltage at ZQ (VZQ 626) is not equal to VccQ/2, theDAC counter 622 increments. As the incrementing of the DAC counter changes the transistors which are activated and thus theoutput impedance 628 of the calibration circuit, theVZQ 626 may correspondingly change, in response to which theDAC counter 622 may again increment ifVZQ 626 is still not equal to VccQ/2. Thecomparator 620 may thus continue to compare the changingVZQ 626 at different DAC counter outputs untilVZQ 626 becomes at least equal to VccQ/2, at which point theoutput impedance 628 matches the impedance or resistance of thecalibration resistor 602. The current DAC counter output may then be carried over to theoutput driver output impedances 526 of the PMOS transistors to similarly match the impedance of thecalibration resistor 602. Additionally, an inversion of the current DAC counter output (using inverter 624) may similarly be carried over to the output driver as the corresponding VOL[0:n] (VOL 520), which calibrates theoutput impedances 528 of the NMOS transistors to similarly match the impedance of thecalibration resistor 602. - The
controller 123 may calibrate theoutput impedance output driver calibration circuit die 404. In one example of the calibration process, in response to the calibration command, thePUP 614 may be signaled to activate the enabling pull-uptransistor 612, which allows VccQ to pass to the source of the parallel pull-uptransistors 604. At this stage, theDAC counter 622 may be reset to 0001 (assuming n=4), and the resultingVZQ 626 may be compared against VccQ/2. If the voltages do not match, theDAC counter 622 is incremented until theVZQ 626 matches VccQ/2. When the voltages match, theoutput impedance 628 correspondingly matches the impedance ofcalibration resistor 602, and the voltages corresponding to the DAC counter output (VOH 606) are carried over to the pull-uplegs output driver output impedance 628 may be 300 ohms in response to a DAC counter of 1010, and thus a VOH of 1010 may be applied to the pull-up legs to calibrate each leg to anoutput impedance 526 of 300 ohms as described above. Afterwards, thePDN 618 may be signaled to activate the enabling pull-down transistor 616, which allows VssQ to pass to the drain of the parallel pull-downtransistors 608. At this stage, the previous DAC counter output (e.g. 1010) may be inverted and carried over to the pull-downlegs output impedance 528 of 300 ohms. Finally, thePUP 516 andPDN 524 may further reduce the total output impedance based on the number of pull-up legs and pull-down legs which are enabled, to result in anoutput impedance - Thus, in the above example, the
calibration circuit legs 504 based on thecalibration resistor 602, after which the pull-downlegs 506 are calibrated based on the pull-up leg calibration. However, whileFIG. 6 illustrates a specific example of thecalibration circuit calibration circuit 600 is not so limited and may have other transistor arrangements, inputs/outputs, components, etc. for calibrating theoutput impedance output driver calibration resistor 602 to VccQ instead of ground and by activatingPDN 618 prior to PUP 614), after which the pull-uplegs 504 may be calibrated based on the pull-down leg calibration. - Accordingly, the
output impedance output driver calibration circuit controller data NVM bus 410 with thecontroller 402, theoutput impedance die 404 operates at anominal corner 302, aSS corner 304,FF corner 306,SF corner 308, orFS corner 310, notwithstanding whether thedie 404 operates at a nominal voltage (e.g. 1.2 VccQ), a minimum voltage (e.g. 1.14 VccQ), or a maximum voltage (e.g. 1.26 VccQ), and notwithstanding whether the die operates at a nominal temperature (e.g. 25° C.), a minimum temperature (e.g. −40° C.), or a maximum temperature (e.g. 85° C.). However, the minimum output impedance may limit the maximum loading to the controller. For example, if 25 ohms is the minimum output impedance that may be calibrated across PVT variations based on a 300 ohm calibration resistor, the output driver strength may be insufficient to enable the controller to read data from more than eight dies (or another maximum number) sharing thesame bus 410. - Moreover, the minimum output impedance may limit the data output speed.
FIG. 7A illustrates anexample timing chart 700 depicting superimposed data output voltages on the DQs for different bit patterns (e.g. repeating logic 1's, repeatinglogic 0's, and alternatinglogic 1's and 0's) at a data output speed of 650 MT/s and an output driver impedance of 25 ohms. A datavalid window 702 is located within a data eye of the bit patterns, which represents a time during which the voltages of the data outputs are valid and may be correctly read by the controller. Data may be correctly read when the datavalid window 702 exceeds a minimum threshold (e.g. 300 ps or another number). However, the minimum output impedance may limit the length of the datavalid window 702. For example, when the minimum output impedance of the output drivers for the DQs is 25 ohms and the speed is 650 MT/s, the datavalid window 702 may span 339 ps (or another number), which provides minimal timing margin (e.g. 39 ps) over the threshold. This small timing margin limits the data output speed, since the data valid window may shrink at higher speeds. For example, if the data output speed is increased from 650 MT/s, the datavalid window 702 may shrink below 300 ps (in this example), possibly resulting in more bit errors and reduced storage device performance. - To provide for more die loading and higher data output speeds, the
calibration resistor 602 may be selected to have a resistance that enables thecalibration circuit output impedance calibration resistor controller die 404, as discussed above, the calibration circuit may calibrate theoutput impedance 628 to match the impedance of the calibration resistor (e.g. 240 ohms), thecorresponding VOH 512, 606 andVOL legs 504 and pull-downlegs 506 respectively to match the output impedance 628 (e.g. 240 ohms), and thePUP 516 andPDN 524 signals may selectively enable the pull-uplegs 504 and pull-downlegs 506 to result in the reduced,output impedance 530 for the driver (e.g. 20 ohms). By reducing the output impedance, a larger load to the controller (i.e. additional dies) may be added to the storage device, and higher output speeds may be achieved. - For example,
FIG. 7B illustrates anexample timing chart 750 depicting superimposed data output voltages on the DQs for different bit patterns at a data output speed of 650 MT/s, similar toFIG. 7A , but with a lower output driver impedance of 20 ohms based on the modified RZQ. As can be seen inFIG. 7B , the datavalid window 752 located within the data eye of the bit patterns may be wider than the datavalid window 702 due to the lower output impedance, in this example spanning 512 ps (or another larger number). As a result, a larger timing margin (e.g. 212 ps) over the minimum threshold (e.g. 300 ps) may be provided in the example ofFIG. 7B than in the example ofFIG. 7A , allowing for greater data output speeds. - However, even when the
calibration resistor output driver die 404 is a slow corner (e.g. SS 304). Similarly, the CMOS drivers may be sufficient for calibration to the lower impedance at nominal voltages and temperatures, but not at minimal voltages and maximum temperatures. For instance, a slow corner may have required all the transistors in the pull-up legs and pull-down legs to be activated to reduce the output impedance to 25 ohms for a 300 ohm resistor, and thus there may not be any more transistors to activate to further reduce the output impedance to 20 ohms. Therefore, a screening process may be implemented to screen out dies (or other chips) which are unable to calibrate the output impedance to the lower impedance based on the modified RZQ. Different examples of screening processes are described below with respect toFIGS. 8 and 9 . -
FIG. 8 illustrates anexample flow chart 800 of a method for screening dies in astorage device 102 such as the one illustrated inFIG. 1 . For example, the method can be carried out using astorage device 102 such as the one illustrated inFIG. 1 . One or more steps in the flow chart can be controlled using the controller as described below (e.g. controller 123, 402), or by some other suitable means. The controller may be external to the die. - As represented by
block 802, a die including a NAND flash memory, DRAM, or other IC may be tested using a modified calibration resistor. For instance, referring toFIGS. 4-6 , a manufacturer ofdie 404 may test ZQ calibration of the die using acalibration resistor output driver - As represented by
block 804, a maximum temperature and minimum voltage may be applied to the die. For instance, referring toFIGS. 4-6 , VccQ may be reduced to a minimum voltage (e.g. 1.14 V for DDR3), and heat may be applied to the transistors in thedie 404 to increase the temperature to a maximum operating temperature (e.g. 85° C.). This step allows the die to be tested at the slowest corner boundary of PVT. - As represented by
block 806, a ZQ calibration command may be issued to the die. For instance, referring toFIGS. 4-6 , thecontroller calibration circuit output impedance output driver output impedance 628 was matched to the modified calibration resistor and theoutput impedance - As represented by
block 808, thecontroller 123 may check the calibration status register to determine whether calibration is successful, and if calibration was successful, then as represented byblock 810, the die may be sorted or binned for products with larger memories or higher speeds. Alternatively, if calibration was unsuccessful, then as represented byblock 812, the die may be sorted or binned for products with smaller memories or lower speeds. For example, referring toFIGS. 4-6 , if calibration ofdie 404 is determined to be successful (e.g. theoutput impedance 628 was matched to the impedance of the modified calibration resistor such as 240 ohms and theoutput impedance die 404 may be implemented in astorage device 102 with more die stacks (e.g. 16 dies instead of 8 dies, or some other larger number), or with greater speeds (e.g. as described above with respect toFIG. 7B ). Otherwise, if calibration ofdie 404 is determined to be unsuccessful (e.g. theoutput impedance 628 was not matched to the impedance of the modified calibration resistor such as 240 ohms, or theoutput impedance die 404 may be implemented in astorage device 102 with less die stacks (e.g. 8 dies or some other smaller number) or with lesser speeds. -
FIG. 9 illustrates anexample flow chart 900 of another method for screening dies in astorage device 102 such as the one illustrated inFIG. 1 . For example, the method can be carried out using astorage device 102 such as the one illustrated inFIG. 1 . One or more steps in the flow chart can be controlled using the controller as described below (e.g. controller 123, 402), or by some other suitable means. The controller may be internal to the die. - As represented by
block 902, a wafer may be sorted for dies with internal controllers. For instance, referring toFIG. 4 , although that Figure illustratescontroller 402 as external to die 404, thecontroller 402 may alternatively be internal to die 404. A manufacturer of thedie 404 may sort wafers including multiple dies to identify wafers that include such dies having internal controllers for calibration testing. - As represented by
block 904, a calibration code threshold may be set based on a characterization process. For instance, referring toFIGS. 4-6 , when thecalibration circuit DAC counter 622, each output may constitute a calibration code. For example, an output of 1010 from DAC counter 622 may constitute one calibration code (corresponding to activation of first and third PMOS transistors in the pull-up leg of the calibration circuit, as well as activation of first and third NMOS transistors in the pull-down leg of the calibration circuit after inversion by inverter 624). When characterization is performed for the different dies on the wafer with internal controllers, the calibration of each die 404 based on the modified calibration resistor may be tested across different voltage and temperatures. During the characterization process, different calibration codes resulting in successful calibration may be generated at different temperatures and voltages. The highest calibration code that results in successful calibration even at minimum voltage and maximum temperature may be set as the calibration code threshold. - As represented by
block 906, the controller determines whether the calibration code of the die is below the calibration code threshold. For instance, referring toFIGS. 4-6 , thecontroller calibration circuit output impedance output driver die 404, and determine whether the calibration code is below the threshold or not accordingly. - If the code is determined to be below the calibration code threshold, then as represented by
block 908, the die may be sorted or binned for products with larger memories or higher speeds. Alternatively, if the code is not determined to be below the calibration code threshold, then as represented byblock 910, the die may be sorted or binned for products with smaller memories or lower speeds. For example, referring toFIGS. 4-6 and assuming a calibration code threshold of 1100, if theoutput impedance 628 was matched to the impedance of the modified calibration resistor such as 240 ohms using a generated calibration code of 1011 or lower, thedie 404 may be implemented in astorage device 102 with more die stacks (e.g. 16 dies instead of 8 dies, or some other larger number), or with greater speeds (e.g. as described above with respect toFIG. 7B ). However, if theoutput impedance 628 was matched to the impedance of the modified calibration resistor such as 240 ohms using a generated calibration code of 1100 or higher, then thedie 404 may be implemented in astorage device 102 with less die stacks (e.g. 8 dies or some other smaller number) or with lesser speeds. -
FIG. 10 illustrates anexample flow chart 1000 of a method for calibrating an output impedance of an output driver. For example, the method can be carried out in astorage device 102 such as the one illustrated inFIG. 1 . Each of the steps in the flow chart can be controlled using the controller as described below (e.g. controller 123, 402), or by some other suitable means. - As represented by
block 1002, the controller commands a calibration circuit to calibrate an output impedance of an output driver. The output driver is configured to output stored data. The calibration circuit is configured to calibrate the output impedance of the output driver using a calibration resistor. For instance, referring toFIGS. 4-6 , thecontroller calibration circuit output impedance output driver e.g. data 119, 407). The calibration circuit may calibrate theoutput impedance calibration resistor - The calibration resistor has a resistance that enables the calibration circuit to calibrate the output impedance to a lower impedance than a minimum impedance required by a controller to read the stored data across process, voltage and temperature variations of the die at maximum loading of the controller. For example, referring to
FIGS. 4-6 , thecalibration resistor 602 may have a resistance that enables thecalibration circuit output impedance controller data 119, 407) across PVT variations of the die 404 at a maximum loading of the controller (e.g. 8 dies). For example, a 240 ohm resistor may be selected ascalibration resistor output impedance 530 of the driver to be reduced to a lower impedance of 20 ohms than the minimum output impedance of the output driver across PVT variations (e.g. 25 ohms). The minimum output impedance described above may enable thecontroller data NVM bus 410 with thecontroller 402, theoutput impedance die 404 operates at anominal corner 302, aSS corner 304,FF corner 306,SF corner 308, orFS corner 310, notwithstanding whether thedie 404 operates at a nominal voltage (e.g. 1.2 VccQ), a minimum voltage (e.g. 1.14 VccQ), or a maximum voltage (e.g. 1.26 VccQ), and notwithstanding whether the die operates at a nominal temperature (e.g. 25° C.), a minimum temperature (e.g. −40° C.), or a maximum temperature (e.g. 85° C.). In contrast, the lower output impedance (e.g. 20 ohms) may not operate across PVT variations. For example, although the number and individual impedances of the pull-up legs and pull-down legs in the CMOS drivers may be sufficient for calibration based on a 240 ohm resistor to an output impedance of 20 ohms for typical and fast corners (e.g. nominal 302 and FF 306), the number and impedances of the legs may be insufficient for calibration to the lower output impedance when thedie 404 is a slow corner (e.g. SS 304). - The output driver further comprises a plurality of parallel pull-up driver transistors and a plurality of parallel pull-down driver transistors. The calibration circuit may be configured to set an impedance of the parallel pull-up drive transistors and an impedance of the parallel pull-down driver transistors to the resistance of the calibration resistor. For instance, referring to
FIGS. 4-6 , theoutput driver driver transistors 510 in one pull-upleg 504 and a plurality of parallel pull-down driver transistors 518 in one pull-downleg 506. Thecalibration circuit driver transistors 510 and parallel pull-down driver transistors 518 (e.g. output impedance calibration resistor - The output driver may further comprise a plurality of parallel second pull-up driver transistors coupled in parallel with the pull-up driver transistors and a plurality of parallel second pull-down driver transistors coupled in parallel with the pull-down driver transistors. The calibration circuit may be further configured to set an impedance of the parallel second pull-up drive transistor and an impedance of the parallel second pull-down driver transistor to the resistance of the calibration resistor. For instance, referring to
FIGS. 4-6 , theoutput driver driver transistors 510 in different pull-uplegs 504 and a plurality of parallel pull-down driver transistors 518 in different pull-downlegs 506, where each pull-up leg and pull-down leg are coupled in parallel with each other. Thecalibration circuit driver transistors 510 and parallel pull-down driver transistors 518 in the multiple pull-up legs and pull-down legs (e.g. output impedance calibration resistor - The output driver may further comprise a plurality of parallel pull-up driver transistors and a plurality of parallel pull-down driver transistors. The calibration circuit may be further configured to control the output impedance of the output driver by controlling the pull-up driver transistors and the pull-down driver transistors. For instance, referring to
FIGS. 4-6 , theoutput driver driver transistors 510 and a plurality of parallel pull-downtransistors 518. Thecalibration circuit output impedance output driver driver transistors 510 and pull-down driver transistors 518 (e.g. using VOH 512 andVOL 520, respectively, as well asPUP 516 andPDN 524, respectively). - The calibration circuit may comprise a plurality of parallel pull-up calibration transistors. The calibration circuit may be further configured to control the pull-up calibration transistors based on the calibration resistor and control the pull-up drivers based on the control of the pull-up calibration transistors. For instance, referring to
FIGS. 4-6 , thecalibration circuit calibration transistors 604. Thecalibration circuit calibration transistors 604 based on the calibration resistor 602 (e.g. using thecomparator 620,DAC counter 622, and VOH 606 as discussed above), and the calibration circuit may control the pull-up drivers (e.g. pull-up driver transistors 510) based on the control of the pull-up calibration transistors (e.g. based on theVOH 512, 606 that produces theoutput impedance 628 matching the impedance of thecalibration resistor - The calibration circuit may comprise an output pulled up by the pull-up calibration transistors and loaded by the calibration resistor. The calibration circuit may further comprise a feedback circuit configured to control the pull-up calibration transistors based on the output of the calibration circuit. The feedback circuit may be configured to set an impedance of the parallel pull-up calibration transistors to the resistance of the calibration resistor. For instance, referring to
FIGS. 4-6 , thecalibration circuit calibration transistors 604 and loaded by thecalibration resistor 602. Thecalibration circuit comparator 620, theDAC counter 622, and the VOH 606. The feedback circuit controls the pull-upcalibration transistors 604 based on the output (e.g. using VOH 606), and may set an impedance of the parallel pull-up calibration transistors 604 (e.g. output impedance 628) to the resistance of thecalibration resistor 602, as described above. - As represented by
block 1004, the controller may determine whether the output impedance of the output driver can be calibrated to an impedance lower than a threshold at maximum temperature and minimum voltage. The threshold may be a function of a resistance of the calibration resistor. For instance, referring toFIGS. 4-6 and 8 , thecontroller output impedance output driver blocks FIG. 8 . The threshold may be a function of a resistance of thecalibration resistor - Finally, as represented by
block 1006, the controller may determine whether a calibration code exceeds a threshold at nominal temperature and voltage. The calibration circuit may be configured to generate the calibration code to calibrate the output impedance of the output driver using the calibration resistor. For instance, referring toFIGS. 4-6 and 9 , thecontroller blocks FIG. 9 . - The feedback circuit may generate the calibration code based on the output of the calibration circuit. The feedback circuit may further be configured to control the pull-up calibration transistors with the calibration code. The calibration circuit may be further configured to control the parallel pull-up driver transistors and the parallel pull-down driver transistors of the output driver with the calibration code. For instance, referring to
FIGS. 4-6 , the feedback circuit (e.g. the pull-up calibration transistors and output (VZQ 626), thecomparator 620, theDAC counter 622, and the VOH 606) may generate the calibration code (e.g. the output of the DAC counter 622 corresponding to VOH 606) based on the output of the calibration circuit (e.g. VZQ 626). The feedback circuit may control the pull-upcalibration transistors 604 with the calibration code (e.g. using VOH 606). Thecalibration circuit driver transistors 510 and the parallel pull-down driver transistors 518 of theoutput driver e.g. using VOH 512, 606 andVOL - Accordingly, the storage device described in the present disclosure allows under-driven, external (third-party) controllers to experience increased data output speeds without access to ZQ calibration codes, e.g., based on the results of the screening process described above with respect to
FIG. 8 , and internal controllers to experience increased data output speeds with access to ZQ calibration codes, e.g. based on the results of the screening process described above with respect toFIG. 9 . Similarly, the capacity of the storage device may be bumped with higher die stacks for existing controllers (e.g. to 16 dies instead of 8 dies, based on a successful calibration to the lower output impedance), thereby improving storage device performance. - Additionally, new controllers may operate at higher speeds based on the modified calibration resistor, without requiring over-design for worst-case high capacitance scenarios (e.g. without requiring a greater number of transistors to be implemented in increased die areas to handle higher die loads), thereby saving manufacturing costs. Moreover, various output driver strengths may be achieved that may suit signal integrity even if not supported by IC vendors. For instance, while the above description refers to the example where the output impedance may be calibrated to 20 ohms based on a 240 ohm calibration resistor, the output impedance may similarly be calibrated to other impedances (e.g. 30 ohms) based on other resistances for the calibration resistor (e.g. 260 ohms) that may not be supported across PVT variations, e.g. other than pre-configured driver strength settings of 25 ohms, 35 and/or 37.5 ohms, and 50 ohms.
- The various aspects of this disclosure are provided to enable one of ordinary skill in the art to practice the present invention. Various modifications to exemplary embodiments presented throughout this disclosure will be readily apparent to those skilled in the art, and the concepts disclosed herein may be extended to other magnetic storage devices. Thus, the claims are not intended to be limited to the various aspects of this disclosure, but are to be accorded the full scope consistent with the language of the claims. All structural and functional equivalents to the various components of the exemplary embodiments described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112(f) in the United States, or an analogous statute or rule of law in another jurisdiction, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/306,893 US11309004B2 (en) | 2020-04-24 | 2021-05-03 | Mechanism to improve driver capability with fine tuned calibration resistor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/858,223 US11024353B1 (en) | 2020-04-24 | 2020-04-24 | Mechanism to improve driver capability with fine tuned calibration resistor |
US17/306,893 US11309004B2 (en) | 2020-04-24 | 2021-05-03 | Mechanism to improve driver capability with fine tuned calibration resistor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/858,223 Continuation US11024353B1 (en) | 2020-04-24 | 2020-04-24 | Mechanism to improve driver capability with fine tuned calibration resistor |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210335406A1 true US20210335406A1 (en) | 2021-10-28 |
US11309004B2 US11309004B2 (en) | 2022-04-19 |
Family
ID=76094503
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/858,223 Active US11024353B1 (en) | 2020-04-24 | 2020-04-24 | Mechanism to improve driver capability with fine tuned calibration resistor |
US17/306,893 Active US11309004B2 (en) | 2020-04-24 | 2021-05-03 | Mechanism to improve driver capability with fine tuned calibration resistor |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/858,223 Active US11024353B1 (en) | 2020-04-24 | 2020-04-24 | Mechanism to improve driver capability with fine tuned calibration resistor |
Country Status (1)
Country | Link |
---|---|
US (2) | US11024353B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4177898A3 (en) * | 2021-11-03 | 2023-07-19 | Samsung Electronics Co., Ltd. | Apparatuses and methods for impedance control (zq) calibration |
EP4280216A3 (en) * | 2022-05-18 | 2024-02-07 | INTEL Corporation | Apparatus and method for per memory chip addressing |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11714576B2 (en) * | 2020-10-29 | 2023-08-01 | Micron Technology, Inc. | Memory bus drive defect detection |
US11494198B2 (en) * | 2021-01-04 | 2022-11-08 | Micron Technology, Inc. | Output impedance calibration, and related devices, systems, and methods |
CN117316256A (en) * | 2022-06-22 | 2023-12-29 | 长鑫存储技术有限公司 | Single-ring, double-ring memory device and ZQ calibration method |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6636821B2 (en) * | 2001-07-03 | 2003-10-21 | International Business Machines Corporation | Output driver impedance calibration circuit |
US6998875B2 (en) * | 2002-12-10 | 2006-02-14 | Ip-First, Llc | Output driver impedance controller |
US7088127B2 (en) * | 2003-09-12 | 2006-08-08 | Rambus, Inc. | Adaptive impedance output driver circuit |
CN1980057B (en) * | 2005-12-01 | 2011-10-26 | 瑞昱半导体股份有限公司 | Impedance matching device for output drive circuit |
KR100849065B1 (en) * | 2005-12-15 | 2008-07-30 | 주식회사 하이닉스반도체 | Method for calibrating a driver and an ODT of a synchronous memory device |
US7514954B2 (en) * | 2006-05-10 | 2009-04-07 | Micron Technology, Inc. | Method and apparatus for output driver calibration |
US7459930B2 (en) * | 2006-11-14 | 2008-12-02 | Micron Technology, Inc. | Digital calibration circuits, devices and systems including same, and methods of operation |
US20080198666A1 (en) * | 2007-02-20 | 2008-08-21 | Aaron Nygren | Semiconductor device including adjustable driver output impedances |
US8566846B2 (en) * | 2008-04-04 | 2013-10-22 | Micron Technology, Inc. | System and method for configuring drivers |
US7791367B1 (en) * | 2009-06-05 | 2010-09-07 | Freescale Semiconductor, Inc. | Driver with selectable output impedance |
KR101116362B1 (en) * | 2010-04-30 | 2012-03-09 | 주식회사 하이닉스반도체 | Semiconductor memory device |
US9779039B2 (en) * | 2013-08-29 | 2017-10-03 | Micron Technology, Inc. | Impedance adjustment in a memory device |
KR102126716B1 (en) * | 2014-03-21 | 2020-06-25 | 삼성전자주식회사 | Method of operating nonvolatile memory device and nonvolatile memory device using the same |
US9337807B2 (en) * | 2014-09-30 | 2016-05-10 | Qualcomm Incorporated | Output driver circuit with auto-equalization based on drive strength calibration |
US20170123446A1 (en) * | 2015-10-30 | 2017-05-04 | Sandisk Technologies Inc. | On-chip self calibration of io driver impedance for pvt variation using dynamically adjusted internal reference |
US10224928B1 (en) * | 2018-03-23 | 2019-03-05 | Western Digital Technologies, Inc. | On-die impedance calibration |
-
2020
- 2020-04-24 US US16/858,223 patent/US11024353B1/en active Active
-
2021
- 2021-05-03 US US17/306,893 patent/US11309004B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4177898A3 (en) * | 2021-11-03 | 2023-07-19 | Samsung Electronics Co., Ltd. | Apparatuses and methods for impedance control (zq) calibration |
US11915781B2 (en) | 2021-11-03 | 2024-02-27 | Samsung Electronics Co., Ltd. | Apparatuses and methods for ZQ calibration |
EP4280216A3 (en) * | 2022-05-18 | 2024-02-07 | INTEL Corporation | Apparatus and method for per memory chip addressing |
Also Published As
Publication number | Publication date |
---|---|
US11024353B1 (en) | 2021-06-01 |
US11309004B2 (en) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11309004B2 (en) | Mechanism to improve driver capability with fine tuned calibration resistor | |
US20230066632A1 (en) | Memory device, memory system, and operation method of memory device | |
US11886754B2 (en) | Apparatuses and methods for configuring I/Os of memory for hybrid memory modules | |
US11354041B2 (en) | Read latency reduction through command and polling overhead avoidance | |
US20190080783A1 (en) | Memory system having impedance calibration circuit | |
US10325671B2 (en) | Memory system having impedance calibration circuit | |
CN113196403B (en) | Multimode compatible ZQ calibration circuit in memory device | |
US11892928B2 (en) | Delayed thermal throttling and associated data routing techniques | |
KR102681817B1 (en) | Input-output circuit, memory device having the same and operating method thereof | |
CN113467704B (en) | Command optimization through intelligent threshold detection | |
US11294824B2 (en) | System and method for reduced latency of read-modify-write operations | |
US20180188959A1 (en) | Memory Module With Integrated Training | |
US11347581B2 (en) | System for accelerated training of bit output timings | |
US11315637B2 (en) | Adaptive erase voltage based on temperature | |
US11990900B2 (en) | ZQ resistor calibration circuit in memory device and calibration method thereof | |
US20220156004A1 (en) | Storage device and method of operating the same | |
US20240094919A1 (en) | Toggle mode interface for data integrity protection | |
KR20210123021A (en) | Buffer circuit and operating method thereof | |
EP4396818A1 (en) | Output driver with strength matched power gating | |
CN118398060A (en) | Memory device, memory system, and method for operating memory device | |
TW201833924A (en) | Memory control circuit unit, memory storage device and signal receiving method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGRAWAL, ANKUR;KAUR, SIMARPREET;SIGNING DATES FROM 20200619 TO 20200622;REEL/FRAME:057220/0384 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:057651/0296 Effective date: 20210907 |
|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST AT REEL 057651 FRAME 0296;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:058981/0958 Effective date: 20220203 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:064715/0001 Effective date: 20230818 Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067045/0156 Effective date: 20230818 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067567/0682 Effective date: 20240503 |
|
AS | Assignment |
Owner name: SANDISK TECHNOLOGIES, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:067982/0032 Effective date: 20240621 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS THE AGENT, ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT;ASSIGNOR:SANDISK TECHNOLOGIES, INC.;REEL/FRAME:068762/0494 Effective date: 20240820 |