The present disclosure relates generally to memory devices and, more particularly, to methods and apparatus to configure reference voltages.
Electronic memory devices include nonvolatile memory devices and volatile memory devices. Nonvolatile memory devices persist data regardless of whether power is applied. Volatile memory devices persist data as long as power is applied. Dynamic random access memory (DRAM) is a form of volatile memory. To persist data, a DRAM device performs self-refresh cycles. During a self-refresh cycle, electrical charges on DRAM cells are refreshed to ensure that they reflect the most recent programmed data.
To write or program data into a DRAM device, a memory controller provides voltage levels representative of corresponding logic values (e.g., a binary zero or a binary one) to data lines of the DRAM device. The DRAM device interprets the voltage levels to determine the corresponding logic levels intended by the memory controller. The DRAM device then writes or programs the logic levels to corresponding memory cells at address locations specified by the memory controller.
The figures are not to scale. Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.
Examples disclosed herein may be used to configure reference voltages (e.g., data line reference voltages) in dynamic random access memory (DRAM) devices. DRAM is a volatile memory that stores data as long as power is applied. That is, unlike nonvolatile memory (e.g., flash memory) which persists data even when power is removed, DRAM persists data only when power is applied and loses data contents when power is removed. However, DRAM has much higher data access speeds (e.g., read/write speeds) than nonvolatile memory. Many types of electronic devices include DRAM and nonvolatile memory. For example, electronic devices use nonvolatile memory to satisfy long-term storage needs of data needing to be persisted when power is removed from the electronic devices. However, the electronic devices use DRAM to satisfy data throughput requirements to facilitate high-speed processing for data access intensive applications. In some examples, upon power up or during operation, an electronic device can copy data (e.g., frequently accessed data, most recently accessed data, and/or data that will be accessed as part of an initialized program or process) from the nonvolatile memory and store the data in the DRAM so that any subsequent accesses to that data can be performed at the DRAM at higher speeds than can be achieved using the nonvolatile memory.
To access and control DRAM, a volatile memory controller (e.g., a DRAM controller) is provided in circuit between a processor and the DRAM. In some examples, a volatile memory controller (e.g., a DRAM controller) is integrated with the processor (e.g., on a same die as the host processor or on a separate die but in the same chip package). When the processor requires data to be read from the DRAM, the processor sends a read request to the memory controller. In turn, the memory controller sends a corresponding read command to the DRAM, receives the requested data from the DRAM, and sends the received data to the processor. When the processor requires data to be written to the DRAM, the processor sends a write request to the memory controller along with the data to be written. In turn, the memory controller sends a write command and the data to the DRAM.
During a write operation, the memory controller provides voltage levels on the data lines of the DRAM corresponding to logic values (e.g., binary zeros and/or binary ones) of the data to be written. To identify the logic values to be written, the DRAM uses a data line reference voltage value (VREFDQ) to compare against the voltage levels provided by the memory controller on the data lines. In DRAM devices based on prior versions of the JEDEC (Joint Electron Device Engineering Council) DDRx standards, the VREFDQ was generated externally and provided to the DRAM devices via a power supply pin. However, in newer DRAM devices such as double data rate fourth generation (DDR4) (e.g., defined by the JEDEC Association in JEDEC Specification JESD79-4A), the VREFDQ is generated in the DRAM device. The VREFDQ level generated in the DRAM directly affects the accuracy with which the DRAM identifies the intended logic values provided by the DRAM controller at the data lines of the DRAM. For example, to detect a binary one at a data line of the DRAM, the voltage applied by the memory controller on the data line must exceed the VREFDQ level generated by the DRAM, and to detect a binary zero at the data line, the voltage applied by the memory controller on the data line must be less than the VREFDQ level. In such examples, if the VREFDQ level is too high, the DRAM may not properly identify binary ones at the data lines because the voltage levels applied by the memory controller for intended binary ones may not exceed the VREFDQ level generated by the DRAM. If the VREFDQ level is too low, the DRAM may not properly identify binary zeros at the data lines because the voltage levels applied by the memory controller for the intended binary zeros may not be less than the VREFDQ level generated by the DRAM.
A possible solution for generating an appropriate VREFDQ level in a DRAM involves calibrating and setting a VREFDQ value in the DRAM during a memory die fabrication phase. Alternatively, when a memory module having a number of DRAM devices is installed in a processor system, all of the DRAM devices may be set to use the same VREFDQ value. However, such solutions result in poor data detection accuracy because post-fabrication factors discussed above in connection with
In memory circuits having multiple DRAM devices, the memory controller must be able to access each DRAM device independent of the other DRAM devices during a VREFDQ margining process to determine the optimal VREFDQ of each DRAM device. To facilitate such individual DRAM device access, some DRAM devices are provided with a per-DRAM addressability (PDA) mode. An example per-DRAM mode is defined by the JEDEC Association in JEDEC Specification JESD79-4A. Examples disclosed herein may be used with any JEDEC standard for DRAM and/or DDR memory devices. However, examples disclosed herein are not limited to the JEDEC Association standard for PDA mode and are not limited for use with DDR and/or DRAM devices. As such, examples disclosed herein are described in connection with a per-device addressability (PDA) mode and may be used in connection with devices other than DRAM devices. When used in connection with DRAM devices, the per-device addressability mode is a per-DRAM addressability mode.
A DRAM device includes a number of mode registers, which are configuration registers to set a number of configurations for use in operating the DRAM device. To program the mode registers, a memory controller issues mode register set (MRS) commands via, for example, memory device control lines. When control lines of a number of memory devices are in circuit with one another and with the control lines of the memory controller, an MRS command issued by the memory controller is simultaneously provided to all of the in-circuit memory devices. As part of the mode registers, the DRAM device includes a VREFDQ mode register that is used to set the VREFDQ value for use by that DRAM device. To determine the optimal VREFDQ value during a VREFDQ margining process, the memory controller must be able to configure each memory device independent of the others so that each memory device is configured with its own optimal VREFDQ value. As such, the memory controller must be able to issue MRS commands to each memory device exclusive of other in-circuit memory devices. To determine the memory device for which an MRS command is intended, the memory controller uses the PDA mode to selectively issue MRS commands to individual ones of the memory devices. In the PDA mode, each memory device of a number of in-circuit memory devices is able to detect when an MRS command is intended for receipt by it based on a binary value provided to its data input/output line zero (DQ0) (e.g., data bit 0) by the memory controller. That is, in the PDA mode the data input/output line zero (DQ0) of each memory device operates as a memory device select line. For example, a binary zero on the data input/output line zero (DQ0) of a memory device during the PDA mode indicates device selection of that memory device so that the memory device processes an MRS command issued by the memory controller.
During initialization (e.g., at power up), the mode registers of a DRAM device are reset to default values, or invalid values. As such, the DRAM device does not have an optimal VREFDQ value 130 programmed in its VREFDQ mode register.
The per-device VREFDQ values of
In addition, during the VREFDQ margining process, undesirable results may arise when VREFDQ training values 122 are decremented too low or are incremented too high. For example, when decrementing the VREFDQ training values 122 to identify the minimum VREFDQ margin value 128, at some point a VREFDQ training value 122 will be too low to allow the DRAM device to detect a binary zero at its data input/output line zero (DQ0) and respond to (e.g., qualify) an MRS command. That is, the VREFDQ training values 122 will be decremented to a value so low that a voltage level provided by a memory controller to represent binary zero on the data input/output line zero (DQ0) of the memory device will not be lower than the currently set VREFDQ training value 122. Under such circumstances, the memory device is no longer able to reliably respond to subsequent MRS commands because the memory device cannot detect the binary zero on its data input/output line zero (DQ0) used to qualify the MRS commands to continue the VREFDQ margining process. Additionally, when incrementing the VREFDQ training values 122 to identify the maximum VREFDQ margin value 126, at some point a VREFDQ training value 122 will be too high to allow the DRAM device to detect a binary one at its data input/output line zero (DQ0) and ignore an MRS command that is not intended for it. That is, the VREFDQ training values 122 are incremented to a value so high that a voltage level provided by a memory controller to represent a binary one on the data input/output line zero (DQ0) of the memory device will not exceed the currently set VREFDQ training value 122. Under such circumstances, the memory device is no longer able to reliably detect binary ones and, as such, will qualify and process all MRS commands issued by the memory controller even though some or all MRS commands are not intended for it (e.g., the memory controller may be performing VREFDQ margining processes on other in-circuit memory devices in a selective manner using the PDA mode).
Examples disclosed herein overcome the above challenges to enable DRAM devices to correctly qualify MRS commands in a PDA mode during VREFDQ margining processes. Examples disclosed herein provide two VREFDQ values, one for use to qualify MRS commands, and one for use in testing different ones of the VREFDQ training values 122 during memory access operations of a VREFDQ margining process to find the maximum VREFDQ margin 126, the minimum VREFDQ margin 128, and the optimal VREFDQ value 130. The VREFDQ value used for qualifying MRS commands is referred to herein as an MRS qualify VREFDQ value. The VREFDQ value used for testing different ones of the VREFDQ training values 122 is referred to herein as an operational VREFDQ value.
Examples for performing a VREFDQ margining process include an example MRS qualify VREFDQ multiple-set technique and an example MRS qualify VREFDQ single-set technique. Using the example MRS qualify VREFDQ multiple-set technique, the MRS qualify VREFDQ value can be set in a memory device multiple times when necessary without needing to reset/re-initialize the memory device. Using the example MRS qualify VREFDQ single-set technique, the MRS qualify VREFDQ value is settable one time in a memory device between memory device resets/re-initializations. As such, once an MRS qualify VREFDQ value is set once in the memory device, the memory device must be reset/re-initialized should a different MRS qualify VREFDQ value need to be set in the memory device (e.g., the previously set MRS qualify VREFDQ value is not useful by the memory device to properly qualify MRS commands). In both the MRS qualify VREFDQ multiple-set technique and the MRS qualify VREFDQ single-set technique, when an acceptable MRS qualify VREFDQ value is set in the memory device, the memory device can use the acceptable MRS qualify VREFDQ value to properly qualify MRS commands in the PDA mode during a VREFDQ margining process to increment/decrement the operational VREFDQ value to test different ones of the VREFDQ training values 122 for determining VREFDQ margins (e.g., the maximum VREFDQ margin 126 and the minimum VREFDQ margin 128 of
In the illustrated example, the memory module 200 includes eight DRAM devices 202, of which three are shown as DRAM0, DRAM1, and DRAMn. A more detailed view of the DRAM0 memory device 202 is shown in the illustrated example. The memory device 202 of the illustrated example includes example mode registers 204, example memory banks 206, and an example data bus 208. The example mode registers 204 are used to store settings for different features of the memory device 202 including, for example, VREFDQ values, latency, burst sequence, burst length, etc. The mode registers 204 of the illustrated example remain programmed until they are reprogrammed or power is removed from the memory device 202. An example VREFDQ mode register 210 is shown as part of the mode registers 204. The example VREFDQ mode register 210 stores VREFDQ values for use by the memory device 202. In the illustrated example, the VREFDQ mode register 210 stores an example MRS qualify VREFDQ value 212 and an example operational VREFDQ value 214 received from a memory controller (e.g., the example memory controller 302 of
In examples disclosed herein, the operational VREFDQ value 214 is used by the memory device 202 to determine binary values at the data lines of the data bus 208 based on comparing voltage levels at those data lines to the operational VREFDQ value 214. Although examples disclosed herein are described in connection with determining the operational VREFDQ value 214 for use with the data lines of the data bus 208, examples disclosed herein can be similarly used to determine operational VREF values for use with control lines (e.g., control lines 318 of
The memory banks 206 include corresponding arrays of memory cells that can be addressed for data access by a memory controller. The data bus 208 is in circuit with data lines of the memory module 200 to receive data to be written from a memory controller and/or to send data read from the memory device 202 to the memory controller. In the illustrated example, the data bus 208 is shown as including a plurality of data lines (DQ0, DQ1, DQn−1, DQn). In the illustrated example, a data input/output line zero (DQ0) 216 is used as a memory device select line during a PDA mode. For example, when a memory controller performs a VREFDQ margining process on the DRAM0 memory device 202 in the PDA mode, the memory controller provides a binary value of zero on the data input/output line zero (DQ0) 216 of the DRAM0 memory device 202 to select the DRAM0 memory device 202. In this manner, when the DRAM0 memory device 202 detects the binary zero at its data input/output line zero (DQ0) 216, the DRAM0 memory device 202 qualifies an MRS command from the memory controller as intended to be received and processed by the DRAM0 memory device 202.
To determine binary values corresponding to voltage values on the data bus 208, the memory device 202 is provided with an example data receiver (Rx) 220. The example data receiver 220 compares voltage levels on the data lines of the data bus 208 to the operational VREFDQ value 214 during a non-PDA mode to determine binary values provided by a memory controller. During a PDA mode, the example data receiver 220 compares a voltage level on the data input/output line zero (DQ0) 216 to the MRS qualify VREFDQ value 212 to determine a binary value on the data input/output line zero (DQ0) 216. The memory device 202 is also provided with a resistor ladder 218 to generate VREFDQ values (e.g., the MRS qualify VREFDQ value 212 and the operational VREFDQ value 214) for use by the data receiver 220 to determine logic levels based on voltages applied to the data bus 208.
To qualify MRS commands from a memory controller based on a binary value applied to the data input/output line zero (DQ0) 216, the memory device 202 is provided with an example MRS command qualifier 222. For example, the MRS command qualifier 222 qualifies an MRS command from the memory controller based on the binary value of the data input/output line zero (DQ0) 216. In the illustrated example, if the binary value is zero, the MRS command qualifier 222 determines that the memory controller has selected the memory device 202 and, thus, the MRS command qualifier 222 qualifies an MRS command from the memory controller.
By using the MRS qualify VREFDQ value 212 and the operational VREFDQ value 214 in accordance with the teachings of this disclosure, the MRS qualify VREFDQ value 212 can be set in the memory device 202 for use by the memory device 202 when it is operating in the PDA mode during a VREFDQ margining process to qualify MRS commands from the memory controller independent of VREFDQ training values set for the operational VREFDQ value 214 during a VREFDQ margining process. In this manner, during the VREFDQ margining process, the memory controller can set the operational VREFDQ value 214 to different incremented/decremented VREFDQ training values (e.g., the VREFDQ training values 122 of
To determine when to use the MRS qualify VREFDQ value 212 and when to use the operational VREFDQ value 214, the memory device 202 is provided with an example command decoder 224. The command decoder 224 of the illustrated example is configured to detect and decode MRS commands from a memory controller. In this manner, when the example command decoder 224 detects an MRS command while the memory device 202 is in PDA mode, the command decoder 224 causes the data receiver 220 to use the MRS qualify VREFDQ value 212 to detect the binary value at the data input/output line zero (DQ0) 216 for use by the MRS command qualifier 222 to qualify the MRS command. In some examples, alternative configurations may involve the use of a different data input/output line (DQn) other than data input/output line zero (DQ0) and/or multiple data input/output lines for qualifying MRS commands. When the example command decoder 224 does not detect an MRS command in PDA mode from the memory controller, the command decoder 224 causes the data receiver 220 to use the operational VREFDQ value 214 to determine binary values on the data bus 208 during write operations.
To program or set values in the mode registers 204, the memory device 202 is provided with an example mode register interface 226. For example, the mode register interface 226 may set a PDA mode enable bit in the mode registers 204, may set MRS qualify VREFDQ values 212 in the VREFDQ mode register 210, may set operational VREFDQ values 214 in the VREFDQ mode register 210, and/or may set any other values in the mode registers 204.
The memory controller 302 is provided with the example MRS command generator 310 to generate MRS commands for use in configuring the DRAM0-DRAMn memory devices 202. For example, the MRS command generator 310 may generate an MRS command to place the DRAM0-DRAMn memory devices 202 in PDA mode when the PDA mode is selected by the memory mode selector 304. In the illustrated example, the MRS command generator 310 places the DRAM0-DRAMn memory devices 202 in PDA mode by generating an MRS command that sets a PDA mode enable bit in one of the mode registers 204 (
The memory controller 302 is provided with the example memory interface 312 to send control signals (e.g., MRS commands), addresses, and data to the memory devices 202 of the memory module 200. For example, the memory interface 312 sends MRS commands 316 generated by the MRS command generator 310 to control lines 318 of the memory devices 202. Although not shown, in some examples the memory interface 312 may send the MRS commands 316 using the control lines 318 and an address bus 320 of the DRAM0-DRAMn memory devices 202. The example memory interface 312 also sends VREFDQ training values (e.g., the VREFDQ training values 122) to a data bus 322 of the memory module 200 using corresponding MRS commands 316. In the illustrated example, the data bus 322 of the memory module 200 is formed by concatenating the data buses (e.g., the data bus 208) of each of the DRAM0-DRAMn memory devices 202. As such, the data bus 322 of the memory module 200 includes a number of data input/output lines zero (DQ0) corresponding to different ones of the memory devices 202 as shown in
The memory controller 302 is provided with the example comparator 314 to compare read back binary values to previously written binary values during a VREFDQ margining process to determine whether a maximum VREFDQ margin 126 or a minimum VREFDQ margin 128 has been reached. For example, during a VREFDQ margining process, the memory controller 302 writes a binary test value of one to the memory device 202 for use in finding the maximum VREFDQ margin 126, and writes a binary test value of zero to the memory device 202 for use in finding the minimum VREFDQ margin 128. When the memory controller 302 reads back the previously written binary test value, the example comparator 314 compares the read back binary test value to the previously written binary test value to determine whether the values match. If the comparator 314 determines that the values match, a corresponding VREFDQ margin 126, 128 has not been reached because the writing of the binary test value to the memory device 202 did not fail (e.g., did not produce an error).
The example memory controller 302 is provided with the MRS qualify VREFDQ register 313 to store the MRS qualify VREFDQ value 212 for programming into the memory devices 202. For example, a programmer/software developer can receive from a memory device manufacturer of the memory devices 202 a default value for the MRS qualify VREFDQ value 212 that is known to be in an acceptable VREFDQ range for use by the memory devices 202 to qualify MRS commands 316. In some examples, the memory device manufacturer determines the default value for the MRS qualify VREFDQ value 212 based on circuit simulations, laboratory testing, and/or empirical analysis of a number of memory devices. The programmer/software developer then programs the default value for the MRS qualify VREFDQ value 212 in a basic input/output system (BIOS) firmware region of an electronic device in which the memory devices 202 and the memory controller 302 are located. The default MRS qualify VREFDQ value 212 can be provided in the BIOS firmware at a time of manufacture of the electronic device in which the memory devices 202 and the memory controller 302 are located and/or during a firmware update after the manufacturing process. During a system initialization (e.g., a boot process), the BIOS firmware provides the MRS qualify VREFDQ value 212 to the memory controller 302, and the memory controller 302 stores the MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ register 313. In this manner, the memory controller 302 can program the MRS qualify VREFDQ value 212 in the memory devices 202 for use by the memory devices 202 to qualify MRS commands 316. In some examples, if the default value for the MRS qualify VREFDQ value 212 does not provide acceptable results for memory devices 202 to successfully qualify MRS commands 316, the memory device 302 can increment/decrement the MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ register 313 one or more times, and program the one or more incremented/decremented MRS qualify VREFDQ value 212 in the memory devices 202 until an acceptable MRS qualify VREFDQ value 212 is found. For example, the memory controller 302 can determine that it has found an acceptable MRS qualify VREFDQ value 212 when all of the memory devices 202 respond as expected to MRS commands 316. In the illustrated example, one MRS qualify VREFDQ register 313 is shown for use in programming all of the memory devices 202 with the same MRS qualify VREFDQ value 212. However, in other examples, more than one MRS qualify VREFDQ register 313 can be provided so that different ones of the memory devices 202 can be programmed with different MRS qualify VREFDQ values 212.
The example memory controller 302 is provided with the operational VREFDQ register 315 to store the operational VREFDQ value 214 for programming into the memory devices 202. For example, during a VREFDQ margining process, the memory controller 302 can store different ones of the VREFDQ training values 122 in the operational VREFDQ registers 315 for programming in the memory devices 202 to find optimal operational VREFDQ values 214 (e.g., the optimal VREFDQ value 130). When the memory controller 302 determines the optimal operational VREFDQ values 214, the optimal operational VREFDQ values 214 can be stored in the operational VREFDQ registers 315 and programmed by the memory controller 302 in corresponding ones of the memory devices 202.
To enable programming the MRS qualify VREFDQ value 212 separately from the operational VREFDQ value 214, the example VREFDQ mode register 210 includes an example MRS qualify VREFDQ range field 402, an example MRS qualify VREFDQ level field 404, an example VREFDQ training range operational mode field 406, and an example VREFDQ training level operational mode field 408. In the illustrated example, the MRS qualify VREFDQ value 212 is programmed in the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404. Also in the illustrated example, the operational VREFDQ value 214 is programmed in the VREFDQ training range operational mode field 406 and the VREFDQ training level operational mode field 408. In this manner, when the operational VREFDQ value 214 is incremented/decremented based on different VREFDQ training values 122 (
In the illustrated example, the MRS qualify VREFDQ range field 402 is a one-bit field, and the MRS qualify VREFDQ level field 404 is a 6-bit field. However, any other number of bits may be used for each field and/or any number of fields may be used. The example MRS qualify VREFDQ range field 402 is used to specify a lower voltage range (e.g., 0%-50% of a main voltage supply VDDQ) or an upper voltage range (e.g., 51%-100% of a main power supply VDDQ) in which the binary values stored in the MRS qualify VREFDQ level field 404 specifies the MRS qualify VREFDQ value 212. For example, the MRS qualify VREFDQ range field 402 specifies whether binary value in the MRS qualify VREFDQ level field 404 specifies a MRS qualify VREFDQ value 212 in a lower voltage range (e.g., a binary zero set in the MRS qualify VREFDQ range field 402) or in an upper voltage range (e.g., a binary one set in the MRS qualify VREFDQ range field 402).
In the illustrated example, the VREFDQ training range operational mode field 406 is a one-bit field, and the VREFDQ training level operational mode field 408 is a 6-bit field. However, any other number of bits may be used for each field and/or any number of fields may be used. The example VREFDQ training range operational mode field 406 is used to specify a lower voltage range (e.g., 0%-50% of a main voltage supply VDDQ) or an upper voltage range (e.g., 51%-100% of a main power supply VDDQ) in which the binary value stored in the VREFDQ training level operational mode field 408 specifies the operational VREFDQ value 214. For example, the VREFDQ training range operational mode field 406 specifies whether a binary value in the VREFDQ training level operational mode field 408 specifies an operational VREFDQ value 214 in a lower voltage range (e.g., a binary zero set in the VREFDQ training range operational mode field 406) or in an upper voltage range (e.g., a binary one set in the VREFDQ training range operational mode field 406).
In the example MRS qualify VREFDQ multiple-set technique, all of the MRS qualify VREFDQ range field 402, the MRS qualify VREFDQ level field 404, the VREFDQ training range operational mode field 406, and the VREFDQ training level operational mode field 408 are exposed external to the memory device 202 for access by the memory controller 302. In the example MRS qualify VREFDQ multiple-set technique, the memory controller 302 sets the MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404 of all of the memory devices 202 during a non-PDA mode (e.g., before entering into a PDA mode) by using an MRS command that addresses the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404 as described below in connection with
In the example MRS qualify VREFDQ single-set technique, the VREFDQ training range operational mode field 406 and the VREFDQ training level operational mode field 408 are exposed external to the memory device 202 for access by the memory controller 302. However, the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404 are not exposed external to the memory device 202 for access by the memory controller 302. The MRS qualify VREFDQ single-set technique uses a first-write detection technique to set the MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404 as described below in connection with
After setting the MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ range field 402 and the MRS qualify VREFDQ level field 404, each memory device 202 can use the MRS qualify VREFDQ value 212 during the PDA mode to qualify subsequent MRS commands 316 intended to be received by it for setting the operational VREFDQ value 214 with a particular VREFDQ training value 122 (
During subsequent iterations of a VREFDQ margining process, any operational VREFDQ value 214 that was set in the VREFDQ training range operational mode field 406 and the VREFDQ training level operational mode field 408 during a previous iteration is replaced or overwritten by a new operational VREFDQ value 214 to test for a VREFDQ margin based on that new operational VREFDQ value 214. In this manner, the process of testing different VREFDQ training values 122 for use as the operational VREFDQ value 214 can be repeated by re-programming different values in the VREFDQ training range operational mode field 406 and the VREFDQ training level operational mode field 408 (overwriting the previously tested operational VREFDQ value 214) so that new operational VREFDQ values 214 (e.g., incremented/decremented VREFDQ training values 122) can be tested.
When an acceptable MRS qualify VREFDQ value 212 is found, the MRS qualify VREFDQ value 212 programmed into the example MRS qualify VREFDQ range field 402 and the example MRS qualify VREFDQ level field 404 no longer needs to be changed. In some examples, a default MRS qualify VREFDQ value 212 in the MRS qualify VREFDQ register 313 of the memory controller 302 is a useful value for all of the memory devices 202. In such examples, the memory controller 302 can program the MRS qualify VREFDQ value 212 once into the example MRS qualify VREFDQ range field 402 and the example MRS qualify VREFDQ level field 404 without needing to cycle through multiple values to find a useful MRS qualify VREFDQ value 212. In the illustrated example, after an acceptable MRS qualify VREFDQ value 212 is identified, any time a subsequent system reset clears the example MRS qualify VREFDQ range field 402 and the example MRS qualify VREFDQ level field 404, the memory controller 302 can re-program the previously identified acceptable MRS qualify VREFDQ value 212 from the MRS qualify VREFDQ register 313 to the memory devices 202.
The example VREFDQ selection circuit 500 of
In the illustrated example of
In the illustrated example, the resistor ladder 506 is used by the VREFDQ selection circuit 500 to generate the MRS qualify VREFDQ value 212 and the operational VREFDQ value 214 based on a main voltage supply VDDQ. In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated example, the resistor ladder 506 is used by the VREFDQ selection circuit 550 to generate the MRS qualify VREFDQ value 212 and the operational VREFDQ value 214 based on a main voltage supply VDDQ. In the illustrated example of
The switching between the MRS qualify VREFDQ value 212 and the operational VREFDQ value 214 of the illustrated examples of
The memory device 202 processes an MRS command 316 from the memory controller 302 to enter a VREF training mode (operation 704). The VREF training mode enables the memory controller 302 to test a VREFDQ training value 122 (
During the PDA mode, the memory device 202 receives and qualifies an MRS command 316 from the memory controller 302 to set the operational VREFDQ value 214 (operation 708). For example, the memory controller 302 uses the MRS command 316 to selectively target the memory device 202 to set the operational VREFDQ value 214 based on a VREFDQ training value (e.g., a VREFDQ training value 122 of
The memory device 202 receives and qualifies an MRS command 316 to exit the PDA mode (e.g., a PDA-disable mode) (operation 712). For example, the memory controller 302 disables the PDA mode, and enables the non-PDA mode to enable writing and reading data to test the operational VREFDQ value 214 for the memory device 202. During the non-PDA mode, the memory controller 302 controls the memory device 202 to perform a test data write operation (operation 714) and a test data read operation (operation 716). The memory controller 302 then performs an error check (operation 718) based on the write and read operations to determine whether a VREFDQ margin has been reached. For example, if the VREFDQ margining process is being performed to find the maximum VREFDQ margin 126 (
In the illustrated example, when an error is not detected at operation 718 (e.g., a VREFDQ margin is not found) the process of testing another VREFDQ training value 122 as the operational VREFDQ value 214 repeats to test a next incremented or decremented VREFDQ training value 122. In this manner, the VREFDQ margining process is repeated until a VREFDQ margin is reached (e.g., the maximum VREFDQ margin 126 or the minimum VREFDQ margin 128).
While example manners of implementing the memory devices 202 are illustrated in
As mentioned above, the example processes of
The example process of
The example process of
The example process of
The example process of
The command decoder 224 then determines whether the MRS qualify VREFDQ value 212 needs to be re-programmed (block 908). For example, the memory controller 302 may send a subsequent reset command to reset the memory device 202. In such examples, the memory controller 302 may use the reset command to subsequently re-program a different MRS qualify VREFDQ value 212 if the memory controller 302 determines that the memory device 202 (or any of the other memory devices 202) is not correctly responding to MRS commands (e.g., the memory device(s) 202 is/are not correctly qualifying MRS commands 316 based on the previously set MRS qualify VREFDQ value 212). If the command decoder 224 determines at block 908 that the MRS qualify VREFDQ value 212 needs to be re-programmed, control returns to block 902 at which the memory device 202 undergoes a device reset so that the memory controller 302 can subsequently program a different MRS qualify VREFDQ value 212 in the VREFDQ mode register 210. Otherwise, if the command decoder 224 determines at block 908 that the MRS qualify VREFDQ value 212 does not need to be re-programmed, control advances to block 910 at which the memory device 202 performs a VREFDQ margining process. In the illustrated example, VREFDQ margining process of block 910 may be implemented using the example process described below in connection with
The example process of
The example process of
The example command decoder 224 detects an MRS command 316 (block 1006). For example, an MRS command 316 from the memory controller 302 is received on the control lines 318 and/or the address bus 320 (
The example mode register interface 226 disables the PDA mode (block 1012). For example, the command decoder 224 decodes a PDA-disable MRS command from the memory controller 302 and the example mode register interface 226 updates a corresponding one of the mode registers 204 to disable the PDA mode. As such, the memory device 202 begins operating in a non-PDA mode. The memory device 202 performs write and read operations for testing of the VREFDQ training value 122 (block 1014). For example, if the VREFDQ margining process is being used to find a maximum VREFDQ margin (e.g., the maximum VREFDQ margin 126 of
The command decoder 224 determines whether to set a final operational VREFDQ value 214 (block 1016). For example, when the memory controller 302 determines that it has found both the maximum VREFDQ margin 126 and the minimum VREFDQ margin 128, the memory controller 302 determines the final operational VREFDQ value 214 (
Otherwise, if the command decoder 224 does not receive a final operational VREFDQ value 214, the memory controller 302 has not yet found both the maximum VREFDQ margin 126 and the minimum VREFDQ margin 128 of the memory device 202 and must continue performing the VREFDQ margining process on the memory device 202. As such, when the command decoder 224 determines, at block 1016, that a final operational VREFDQ value 214 is not yet available to be set, control returns to block 1004 to perform another iteration of the VREFDQ margining process based on another VREFDQ training value 122. In this manner, the VREFDQ margining process of
The example process of
The example process of
The example memory mode selector 304 (
The example voltage controller 308 (
The example MRS command generator 310 (
The example memory controller 302 tests the VREFDQ training value 122 (block 1116). For example, the memory controller 302 controls the memory devices 202 to perform write and read operations to compare read back values to written binary test values. That is, first the memory controller 302 sends a write command to the memory devices 202 to write a binary test value corresponding to the VREFDQ margin for which the memory controller 302 is testing. For example, if the memory controller 302 is determining a maximum VREFDQ margin 126, the memory controller 302 writes a binary test value of one to the memory devices 202. If, for example, the memory controller 302 is determining a minimum VREFDQ margin 128, the memory controller 302 writes a binary test value of zero to the memory devices 202. After writing the binary test value, the memory controller 302 sends a read command to the memory devices 202 to read back the stored values. In this manner, the memory controller 302 can use the stored values read back from the memory devices 202 to determine whether a maximum VREFDQ margin 126 or the minimum VREFDQ margin 128 has been reached.
The example comparator 314 (
When the example comparator 314 determines at block 1118 that a VREFDQ margin has not been reached, control returns to block 1106 to test a next decremented/incremented VREFDQ training value 122 as the operational VREFDQ value 214. When the example comparator 314 determines at block 1118 that a VREFDQ margin has been reached, control advances to block 1120 at which the memory controller 302 determines whether any one or more additional VREFDQ margin(s) is/are to be determined. For example, the voltage controller 308 may determine whether a maximum VREFDQ margin 126 and/or a minimum VREFDQ margin 128 has yet to be determined for one or more memory devices 202 to enable the voltage controller 308 to determine operational VREFDQ values 214 for all of the memory devices 202 of the memory module 200 (
When the memory controller 302 determines at block 1120 that one or more VREFDQ margins are to be determined, control returns to block 1106 to perform the VREFDQ margining process to determine the one or more additional VREFDQ margins. When the memory controller 302 determines at block 1120 that no more VREFDQ margins are to be determined, the voltage controller 308 determines the operational VREFDQ values 214 for the memory devices 202 (block 1122). For example, the voltage controller 308 determines the operational VREFDQ values 214 for each memory device 202 to be an optimal VREFDQ value (e.g., the optimal VREFDQ value 130 of
The memory controller 302 sets the operational VREFDQ values in the corresponding memory devices 202 (block 1124). For example, the memory mode selector 304 can put the memory devices 202 in PDA mode, and the MRS command generator 310 can send MRS commands 316 and corresponding operational VREFDQ values 214 to respective ones of the memory devices 202. In this manner, each of the memory devices 202 can program its corresponding one of the operational VREFDQ values 214 in a corresponding mode register 204 (
The processor platform 1200 of the illustrated example includes a processor 1212. The processor 1212 of the illustrated example is hardware. For example, the processor 1212 can be implemented by one or more integrated circuits, logic circuits, microprocessors or controllers from any desired family or manufacturer.
The processor 1212 of the illustrated example includes a local memory 1213 (e.g., a cache). The processor 1212 of the illustrated example is in communication with a main memory including a volatile memory 1214 and a non-volatile memory 1216 via a bus 1218. The volatile memory 1214 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 1216 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 1214, 1216 is controlled by one or more memory controllers. In the illustrated example of
The processor platform 1200 of the illustrated example also includes an interface circuit 1220. The interface circuit 1220 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a PCI express interface.
In the illustrated example, one or more input devices 1222 are connected to the interface circuit 1220. The input device(s) 1222 permit(s) a user to enter data and commands into the processor 1212. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 1224 are also connected to the interface circuit 1220 of the illustrated example. The output devices 1224 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a printer and/or speakers). The interface circuit 1220 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip or a graphics driver processor.
The interface circuit 1220 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 1226 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The processor platform 1200 of the illustrated example also includes one or more mass storage devices 1228 for storing software and/or data. Examples of such mass storage devices 1228 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
Coded instructions 1232 for use by the memory devices 202 and/or the memory controller 302 to implement the example processes of
Examples disclosed herein are useful to perform VREFDQ margining processes using a PDA mode to configure operational VREFDQ levels in memory devices relatively faster and more reliably than prior techniques. Examples disclosed herein substantially reduce or eliminate configuring memory devices with an operational VREFDQ value during a VREFDQ margining process with which the memory devices become unresponsive by being unable to qualify subsequent MRS commands from a memory controller, or become erroneously responsive by qualifying subsequent MRS commands from a memory controller that are not intended for them, due to the operational VREFDQ value being too high or too low. Prior techniques that cause such unresponsiveness or erroneous responsiveness to MRS commands must repeatedly perform a memory initialization procedure to reset the memory devices out of the unresponsive or erroneously responsive state so that the memory devices can continue with the VREFDQ margining process. However, performing the memory initialization procedure repeatedly in such manner produces unfavorable results such as increased boot times of corresponding processor systems because the processor systems must await proper configuration of the memory devices before completing a boot process. Examples disclosed herein decrease boot times of processor systems by using an MRS qualify VREFDQ value separate from an operational VREFDQ value as disclosed herein so that memory devices can use the MRS qualify VREFDQ value to reliably qualify MRS commands so that memory devices do not become unresponsive or erroneously responsive to MRS commands from a memory controller even when an operational VREFDQ value is incremented or decremented with different VREFDQ training values during a VREFDQ margining process.
Examples disclosed herein are useful to improve BER associated with reading memory cells. For example, determining an optimal operational VREFDQ value for each memory device independent of other memory devices in a same memory module increases the accuracy with which each memory device determines binary values based on voltage levels applied at its data bus. In this manner, examples disclosed herein may be used to improve data reliability of memory devices.
The following pertain to further examples disclosed herein.
Example 1 is a method to configure reference voltage values for use with data lines of a memory device. The method of Example 1 includes setting a first reference voltage value in the memory device for use during operation of the memory device in a per-device addressability mode, the first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during the per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and setting a second reference voltage value in the memory device for use during operation of the memory device in a non-per-device addressability mode, the non-per-device addressability mode to enable writing data to the memory device, the second reference voltage value for use by the memory device to determine a second logic value at the data line of the memory device during a write operation.
In Example 2, the subject matter of Example 1 can optionally include that the setting of the first and second reference voltage values in the memory device includes storing the first and second reference voltage values in a mode register of the memory device.
In Example 3, the subject matter of any one of Examples 1-2 can optionally include setting the first reference voltage value using a first field of the mode register during the non-per-device addressability mode, and setting the second reference voltage value using a second field of the mode register during the per-device addressability mode.
In Example 4, the subject matter of any one of Examples 1-3 can optionally include, when a reference voltage margin of the memory device is not reached based on the second reference voltage value, overwriting the second reference voltage value in the second field of the mode register without overwriting the first reference voltage value in the first field of the mode register.
In Example 5, the subject matter of any one of Examples 1-4 can optionally include receiving the first reference voltage value at the memory device when the memory device is not in the per-device addressability mode.
In Example 6, the subject matter of any one of Examples 1-5 can optionally include receiving the first reference voltage value at the memory device as part of a command from a memory controller, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 7, the subject matter of any one of Examples 1-6 can optionally include receiving the second reference voltage value at the memory device as part of a command from a memory controller, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
In Example 8, the subject matter of any one of Examples 1-7 can optionally include that the setting of the first and second reference voltage values in the memory device is performed by a memory controller sending corresponding mode register set commands to the memory device.
In Example 9, the subject matter of any one of Examples 1-8 can optionally include that the setting of the first and second reference voltage values in the memory device is performed by the memory device based on receiving corresponding mode register set commands from a memory controller.
Example 10 is a memory device to configure reference voltage values for use with data lines of the memory device. The memory device of Example 8 includes a mode register interface to: set a first reference voltage value in the memory device for use during operation of the memory device in a per-device addressability mode, the first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during the per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and set a second reference voltage value in the memory device for use during operation of the memory device in a non-per-device addressability mode, the non-per-device addressability mode to enable writing data to the memory device, the second reference voltage value for use by the memory device to determine a second logic value at the data line of the memory device during a write operation.
In Example 11, the subject matter of Example 10 can optionally include a mode register, the mode register interface to set the first and second reference voltage values in the mode register.
In Example 12, the subject matter of any one of Examples 1-11 can optionally include a first field and a second field of the mode register, the mode register interface to set the first reference voltage value using the first field of the mode register during the non-per-device addressability mode, and the mode register interface to set the second reference voltage value using the second field of the mode register during the per-device addressability mode.
In Example 13, the subject matter of any one of Examples 1-12 can optionally include that the mode register interface is further to, when a reference voltage margin of the memory device is not reached based on the second reference voltage value, overwrite the second reference voltage value using the second field of the mode register without overwriting the first reference voltage value in the first field of the mode register.
In Example 14, the subject matter of any one of Examples 1-13 can optionally include a data receiver to receive the first reference voltage value at the memory device when the memory device is not in the per-device addressability mode.
In Example 15, the subject matter of any one of Examples 1-14 can optionally include a command decoder to receive the first reference voltage value at the memory device as part of a command from a memory controller, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 16, the subject matter of any one of Examples 1-15 can optionally include a command decoder to receive the second reference voltage value at the memory device as part of a command from a memory controller, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
Example 17 is an apparatus including the memory device of any one of Examples 1-16, and further including: one or more processors; a network interface in communication with the one or more processors; and a memory controller in communication with the one or more processors and the memory device, the memory controller to send the first reference voltage value and the second reference voltage value to the memory device.
Example 18 is at least one article of manufacture including machine readable instructions that, when executed, cause a memory controller to at least: set a first reference voltage value in a memory device for use during operation of the memory device in a per-device addressability mode, the first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during the per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and set a second reference voltage value in the memory device for use during operation of the memory device in a non-per-device addressability mode, the non-per-device addressability mode to enable writing data to the memory device, the second reference voltage value for use by the memory device to determine a second logic value at the data line of the memory device during a write operation.
In Example 19, the subject matter of Example 18 can optionally include that the setting of the first and second reference voltage values in the memory device includes sending the first and second reference voltage values to the memory device to store in a mode register of the memory device.
In Example 20, the subject matter of any one of Examples 18-19 can optionally include that the instructions are to cause the memory controller to set the first and second reference voltage values in the memory device by sending the first reference voltage value to the memory device during the non-per-device addressability mode to store using a first field of the mode register, and sending the second reference voltage value to the memory device during the per-device addressability mode to store using a second field of the mode register.
In Example 21, the subject matter of any one of Examples 18-20 can optionally include that the instructions are further to cause the memory controller to, when a reference voltage margin of the memory device is not reached based on the second reference voltage value, overwrite the second reference voltage value using the second field of the mode register without overwriting the first reference voltage value in the first field of the mode register.
In Example 22, the subject matter of any one of Examples 18-21 can optionally include that the instructions are further to cause the memory controller to send the first reference voltage value to the memory device when the memory device is not in the per-device addressability mode.
In Example 23, the subject matter of any one of Examples 18-22 can optionally include that the instructions are further to cause the memory controller to send the first reference voltage value to the memory device as part of a command, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 24, the subject matter of any one of Examples 18-23 can optionally include that the instructions are further to cause the memory controller to send the second reference voltage value to the memory device as part of a command, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
In Example 25, the subject matter of any one of Examples 18-24 can optionally include that the instructions are to cause the memory controller to send the first and second reference voltage values to the memory device using corresponding mode register set commands.
Example 26 is a memory controller to configure reference voltage values for use with data lines of a memory device. The memory controller of Example 26 includes: a voltage controller to: select a first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during a per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and select a second reference voltage value for use by the memory device during operation of the memory device in a non-per-device addressability mode to determine a second logic value at the data line of the memory device during a write operation, the non-per-device addressability mode to enable writing data to the memory device; and a memory interface to send the first and second reference voltage values to the memory device for setting in the memory device.
In Example 27, the subject matter of Example 26 can optionally include a command generator to generate a first command to cause the memory device to store the first reference voltage value in a mode register of the memory device, and generate a second command to cause the memory device to store the second reference voltage value in the mode register.
In Example 28, the subject matter of any one of Examples 26-27 can optionally include that the first command is to cause the memory device to set the first reference voltage value using a first field of the mode register during the non-per-device addressability mode, and the second command is to cause the memory device to set the second reference voltage value using a second field of the mode register during the per-device addressability mode.
In Example 29, the subject matter of any one of Examples 26-28 can optionally include a comparator to determine when a reference voltage margin of the memory device is not reached based on a comparison of a first binary value written to the memory device and a second binary value read from the memory device, and the voltage controller is further to select a third reference voltage value to overwrite the second reference voltage value using the second field of the mode register without overwriting the first reference voltage value in the first field of the mode register.
In Example 30, the subject matter of any one of Examples 26-29 can optionally include that the memory interface is to send the first reference voltage value to the memory device when the memory device is not in the per-device addressability mode.
In Example 31, the subject matter of any one of Examples 26-30 can optionally include a command generator to generate a command to send the first reference voltage value to the memory device, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 32, the subject matter of any one of Examples 26-31 can optionally include a command generator to generate a command to send the second reference voltage value to the memory device, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
Example 33 an apparatus including the memory controller of any one of claims Examples 26-32, and further including: one or more processors; a network interface in communication with the one or more processors; and a memory device in communication with the one or more processors and the memory controller, the memory device to receive the first reference voltage value and the second reference voltage value from the memory interface of the memory controller.
Example 34 is a memory controller to configure reference voltage values for use with data lines of a memory device. The memory controller of Example 34 includes: voltage selection means for: selecting a first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during a per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and selecting a second reference voltage value for use by the memory device during operation of the memory device in a non-per-device addressability mode to determine a second logic value at the data line of the memory device during a write operation, the non-per-device addressability mode to enable writing data to the memory device; and memory interface means for sending the first and second reference voltage values to the memory device for setting in the memory device.
In Example 35, the subject matter of Example 34 can optionally include command generation means for generating a first command to cause the memory device to store the first reference voltage value in a mode register of the memory device, and generating a second command to cause the memory device to store the second reference voltage value in the mode register.
In Example 36, the subject matter of any one of Examples 34-35 can optionally include that the first command is to cause the memory device to set the first reference voltage value using a first field of the mode register during the non-per-device addressability mode, and the second command is to cause the memory device to set the second reference voltage value using a second field of the mode register during the per-device addressability mode.
In Example 37, the subject matter of any one of Examples 34-36 can optionally include comparator means for determining when a reference voltage margin of the memory device is not reached based on a comparison of a first binary value written to the memory device and a second binary value read from the memory device, and the voltage selection means further for selecting a third reference voltage value to overwrite the second reference voltage value using the second field of the mode register without overwriting the first reference voltage value in the first field of the mode register.
In Example 38, the subject matter of any one of Examples 34-37 can optionally include that the memory interface means is for sending the first reference voltage value to the memory device when the memory device is not in the per-device addressability mode.
In Example 39, the subject matter of any one of Examples 34-38 can optionally include a command generation means for generating a command to send the first reference voltage value to the memory device, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 40, the subject matter of any one of Examples 34-39 can optionally include a command generation means for generating a command to send the second reference voltage value to the memory device, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
Example 41 is an apparatus including the memory controller of any one of Examples 34-40, and further including: one or more processors; a network interface in communication with the one or more processors; and a memory device in communication with the one or more processors and the memory controller, the memory device to receive the first reference voltage value and the second reference voltage value from the memory interface means of the memory controller.
Example 42 is a memory device to configure reference voltage values for use with data lines of the memory device. The memory device of Example 42 includes: mode register interface means for: setting a first reference voltage value in the memory device for use during operation of the memory device in a per-device addressability mode, the first reference voltage value for use by the memory device to determine a first logic value at a data line of the memory device during the per-device addressability mode, the per-device addressability mode to enable access to the memory device exclusive of other memory devices in circuit with the memory device; and setting a second reference voltage value in the memory device for use during operation of the memory device in a non-per-device addressability mode, the non-per-device addressability mode to enable writing data to the memory device, the second reference voltage value for use by the memory device to determine a second logic value at the data line of the memory device during a write operation.
In Example 43, the subject matter of Example 42 can optionally include mode register means, the mode register interface means for setting the first and second reference voltage values in the mode register means.
In Example 44, the subject matter of any one of Examples 42-43 can optionally include a first field and a second field of the mode register means, the mode register interface means for setting the first reference voltage value using the first field of the mode register means during the non-per-device addressability mode, and the mode register interface means for setting the second reference voltage value using the second field of the mode register means during the per-device addressability mode.
In Example 45, the subject matter of any one of Examples 42-44 can optionally include that the mode register interface means is further for, when a reference voltage margin of the memory device is not reached based on the second reference voltage value, overwriting the second reference voltage value using the second field of the mode register means without overwriting the first reference voltage value in the first field of the mode register means.
In Example 46, the subject matter of any one of Examples 42-45 can optionally include data receiver means for receiving the first reference voltage value at the memory device when the memory device is not in the per-device addressability mode.
In Example 47, the subject matter of any one of Examples 42-46 can optionally include command decoder means for receiving the first reference voltage value at the memory device as part of a command from a memory controller, the command not being exclusive to the memory device, the command also intended to set the first reference voltage value in the other memory devices in circuit with the memory device.
In Example 48, the subject matter of any one of Examples 42-47 can optionally include command decoder means for receiving the second reference voltage value at the memory device as part of a command from a memory controller, the command being intended to be processed by the memory device exclusive of one or more of the other memory devices in circuit with the memory device.
Example 49 is an apparatus including the memory device of any one of Examples 42-48, and further including: one or more processors; a network interface in communication with the one or more processors; and a memory controller in communication with the one or more processors and the memory device, the memory controller to send the first reference voltage value and the second reference voltage value to the memory device.
Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.