Memory card, system, and method
By extending the CMD19 command with additional arguments for tuning data sampling timing and voltage levels, the memory card system achieves efficient and precise data transfer, addressing inefficiencies in high-speed operations.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- KIOXIA CORP
- Filing Date
- 2025-03-05
- Publication Date
- 2026-04-23
AI Technical Summary
Existing memory card technologies face challenges in accurately tuning data sampling timing and voltage levels for high-speed data transfer, particularly as they transition to faster speeds, leading to inefficiencies in data reading and writing operations.
The implementation of a novel mechanism in memory cards and hosts that extends the CMD19 command to include additional arguments for tuning data sampling timing and voltage levels, allowing for precise adjustment of data sampling timing and voltage thresholds through pattern data exchange and control units.
Enables high-speed and accurate read/write operations by optimizing data sampling timing and voltage levels, enhancing compatibility with different data transfer methods and reducing tuning time.
Smart Images

Figure JP2025008029_23042026_PF_FP_ABST
Abstract
Description
Memory card, system, and method
[0001] Embodiments of the present invention relate to memory cards, systems, and methods.
[0002] SD card with flash memory TM Memory cards are widespread. SD TM The memory card is SD. TM They are also called cards.
[0003] According to the SD Association standard, the host is an SD TM To ensure accurate reading of data on the memory card, the host can read the SD card. TM A command is defined for tuning the sampling timing of data received from the memory card. Specifically, CMD19 (send tuning block command) is defined.
[0004] Japanese Patent Publication No. 2010-157058
[0005] One embodiment of the present invention provides a memory card, system, and method having a novel mechanism for tuning.
[0006] According to one embodiment, the memory card comprises a non-volatile memory and a controller. The controller is connectable to a host and controls the non-volatile memory. The controller is configured to receive tuning pattern data from the host when it receives a first command for tuning the sampling timing of data received by the host from the controller, the first argument of which is a first value indicating that the host will transmit tuning pattern data used for tuning, and to transmit tuning pattern data to the host when it receives a first command in which the first argument of which is a second value indicating that the memory card will transmit tuning pattern data.
[0007] A diagram showing an example configuration of an information processing system including a memory card of the first embodiment and a host that uses the memory card as an external storage device. A diagram showing the pin arrangement of the connector on the SD Express card. A diagram showing an example configuration of the memory card of the first embodiment. A diagram showing an example configuration of the host of the first embodiment. A diagram for explaining the basic specifications of CMD19 as defined in the SD Association standard. A diagram for explaining an example of an extension of CMD19. A diagram showing a list of arguments for the extended version of CMD19. A flowchart showing the operation procedure when tuning the data sampling timing for writing by the memory card and host of the first embodiment. A diagram for explaining all patterns within the range of UI to be executed when tuning the data sampling timing. A diagram showing an example configuration of the host of the second embodiment. A flowchart showing the operation procedure when tuning the data sampling timing for writing by the memory card and host of the second embodiment. A diagram showing an example configuration of the memory card of the third embodiment. A diagram showing an example configuration of the host of the third embodiment. A diagram showing an example of the eye pattern of the signal waveform of the data line between the memory card and the host of the third embodiment. A diagram showing an example of the voltage threshold of the data signal supported by the memory card of the third embodiment. A flowchart showing the operation procedure when tuning the voltage used for data transfer by the memory card and host of the third embodiment. A diagram showing an example configuration of the memory card of the fourth embodiment. A diagram showing an example configuration of the host of the fourth embodiment. A diagram showing an example of the eye pattern of the signal waveform of the data line between the memory card and host of the fourth embodiment. A diagram showing an example of the center value of the voltage of the data signal supported by the memory card of the fourth embodiment. A flowchart showing the operation procedure when tuning the voltage used for data transfer by the memory card and host of the fourth embodiment.
[0008] The embodiments will be described below with reference to the drawings.
[0009] (First Embodiment) First, the first embodiment will be described.
[0010] Figure 1 shows an example configuration of an information processing system 3, which includes a memory card 1 according to the first embodiment and a host 2 that uses the memory card 1 as an external storage device. The memory card is also referred to as a storage device, and the memory card is also referred to as a memory system.
[0011] Memory card 1 is, for example, an SD card. TM This is a memory card. Memory card 1 supports, for example, UHS (Ultra High Speed)-I. SD that supports UHS-I TM Memory cards are also known as UHS-I cards.
[0012] Host 2 consists of information processing devices such as personal computers, portable players, and digital cameras.
[0013] The memory card 1 includes a non-volatile memory 14, a memory controller 11, an I / O cell 12, and a connector 13.
[0014] The non-volatile memory 14 is, for example, a NAND flash memory.
[0015] The memory controller 11 controls the non-volatile memory 14. The memory controller 11 also controls communication with the host 2. The memory controller is also referred to as a controller.
[0016] I / O cell 12 works in conjunction with I / O cell 22 of host 2 (described later) to function as command line 32, clock line 33, and data line 31 between memory card 1 and host 2. I / O cells are also referred to as interface drivers.
[0017] Connector 13 is a connector having pins 1 to 9 to which the command line 32, clock line 33, and data line 31 are assigned. For example, the data line 31 (DAT0 to 3) is assigned to pins 7, 8, 9, and 1. The command line 32 is assigned to pin 2. The clock line 33 is assigned to pin 5.
[0018] The host 2 includes an I / O cell 22 and a host controller 21.
[0019] The I / O cell 22 cooperates with the I / O cell 12 of the memory card 1 to form a command line 32, a clock line 33, and a data line 31 between the memory card 1 and the host 2.
[0020] The host controller 21 controls communication with the memory card 1.
[0021] In FIG. 1, as an example of the memory card 1, an SD memory card that supports UHS-I is shown. The memory card 1 of the first embodiment may be a memory card when an SD Express card operates in the SD mode. TM The memory card shown. The memory card 1 of the first embodiment may be a memory card when an SD Express card operates in the SD mode.
[0022] FIG. 2 shows the pin arrangement of the connector 13 in the memory card 1-2 which is an SD Express card.
[0023] The memory card 1-2 operates in either the SD mode or the PCIe mode. When operating in the PCIe mode, it uses an interface compliant with the PCI Express (PCIe) standard and a protocol compliant with the NVM Express (NVMe) standard. For this purpose, the connector 13 of the memory card 1-2 has pins 10 to 19 in addition to pins 1 to 9 as shown in FIG. 2. The arrangement of pins 1 to 9 surrounded by the dashed line indicated by the symbol a1 is the same as the arrangement of pins 1 to 9 of the memory card 1 in FIG. 1. When operating in the SD mode, the memory card 1-2 uses only the first-stage pins 1 to 9 out of the first-stage pins 1 to 9 and the second-stage pins 10 to 19.
[0024] FIG. 3 is a diagram showing a configuration example of the memory card 1.
[0025] In addition to the components already described, the memory card 1 has a pattern data storage unit 15. The pattern data storage unit 15 stores tuning pattern data used when the host 2 tunes the sampling timing of the data received from the memory card 1. The tuning pattern data is data that includes a bit pattern that brings about the worst eye aperture conditions when transmitting and receiving using the data line 31.
[0026] Note that in Figure 3, for the sake of clarity, the pattern data storage unit 15 is shown as a separate component from the memory controller 11 and the non-volatile memory 14. The pattern data storage unit 15 may be provided in the built-in memory of the memory controller 11 or in the non-volatile memory 14.
[0027] Figure 4 shows an example configuration of host 2.
[0028] In addition to the components already described, host 2 includes a host CPU 25, a clock unit 23, a sampling clock adjustment unit 24, and a pattern data transmission / reception unit 26.
[0029] The host CPU 25 executes various programs, such as the operating system, firmware, and software for the multimedia player.
[0030] The clock unit 23 generates a clock signal that serves as the basic frequency for the operation of the information processing system 3.
[0031] The sampling clock adjustment unit 24 uses tuning pattern data to tune the data sampling timing when the host 2 reads data from the memory card 1 or when the host 2 writes data to the memory card. Conventionally, tuning the data sampling timing can be performed when the host 2 reads data from the memory card 1 by using CMD 19 as defined in the SD Association standard. In the future, as the speed of the memory card 1 increases, the need to tune the data sampling timing when the host 2 writes data to the memory card 1 will also increase. From this perspective, the memory card 1 of the first embodiment is configured to perform tuning of the data sampling timing for writing. This point will be described later.
[0032] The pattern data transmission / reception unit 26 transmits tuning pattern data to or receives it from the memory card 1.
[0033] Note that in Figure 4, for the sake of clarity, the sampling clock adjustment unit 24 and the pattern data transmission / reception unit 26 are shown as separate components from the host controller 21. The sampling clock adjustment unit 24 and the pattern data transmission / reception unit 26 may be provided as a single unit within the host controller 21.
[0034] Figure 5 is a diagram illustrating the basic specifications of the CMD19.
[0035] Host 2 sends CMD 19 to memory card 1 using command line 32.
[0036] Upon receiving CMD19, memory card 1 sends a response (R1) to host 2 using command line 32. Following this response, memory card 1 sends tuning pattern data (Data Block) to host 2 using data line 31.
[0037] The host 2 receives tuning pattern data from the memory card 1 and tunes the sampling timing of the data received from the memory card 1. Specifically, the host controller 21 receives tuning pattern data via the pattern data transmission / reception unit 26 and performs sampling timing tuning via the sampling clock adjustment unit 25.
[0038] In other words, CMD19 is a command used to request the memory card 1 to send tuning pattern data.
[0039] On the other hand, Figure 6 is a diagram illustrating an example of an extension of CMD19.
[0040] In the first embodiment, when the memory card 1 receives the CMD 19, it interprets the various arguments (TD, DDR, CT, TLT, CLT) enclosed by the dashed line indicated by the symbol b1. Figure 7 shows a list of the arguments for the CMD 19.
[0041] When the argument TD is 0, it indicates that memory card 1 will transmit tuning pattern data, as shown in Figure 5. Argument TD = 0 is the setting when using CMD19 according to its basic specifications.
[0042] On the other hand, if the argument TD is 1, it indicates that host 2 will send tuning pattern data. Returning to Figure 6, we will explain CMD19 when argument TD = 1.
[0043] The purpose of host 2 issuing CMD19 with argument TD=1 is to tune the sampling timing of the data sent from host 2 to memory card 1 so that host 2 can accurately write data to memory card 1. This tuning assumes that host 2 has received tuning pattern data from memory card 1 by issuing CMD19 with argument TD=0, and that the tuning of the sampling timing of the data received from memory card 1 is complete. In other words, it assumes that it has been confirmed that host 2 can accurately read the data from memory card 1.
[0044] Host 2 sends CMD19 with argument TD=1 to memory card 1 using command line 32.
[0045] Upon receiving a CMD19 with argument TD=1, memory card 1 sends a response (R1) to host 2 using command line 32. In the case of a CMD19 with argument TD=1, memory card 1 does not send tuning pattern data, but waits for tuning pattern data to be sent.
[0046] When host 2 receives a response (R1) to CMD 19, it transmits tuning pattern data (Data Block) to memory card 1 using data line 31. Host 2 also transmits data (CS) to detect errors in the tuning pattern data that may occur during transmission and reception.
[0047] Thus, the memory card 1 of the first embodiment can interpret the argument TD of the CMD 19. This allows the host 2 to use the CMD 19 to transmit tuning pattern data to the memory card 1.
[0048] Furthermore, when memory card 1 receives a CMD 19 with argument TD=1, it stores the tuning pattern data sent from host 2 in, for example, the built-in memory of the memory controller 11. Memory card 1 may also store the tuning pattern data sent from host 2 in memory other than the built-in memory of the memory controller 11. For example, memory card 1 may store the tuning pattern data sent from host 2 in non-volatile memory 14. Subsequently, when memory card 1 receives a CMD 19 with argument TD=0, if it has stored tuning pattern data sent from host 2, it transmits the stored tuning pattern data to host 2. If memory card 1 receives a CMD 19 with argument TD=0 without first receiving a CMD 19 with argument TD=1, it transmits the tuning pattern data stored in the pattern data storage unit 15 to host 2.
[0049] In this way, host 2 can receive the tuning pattern data sent from host 2 to memory card 1 from memory card 1 by using CMD19 with argument TD=1.
[0050] The arguments of CMD19 other than argument TD shown in Figures 6 and 7 (DDR, CT, TLT, CLT) will be described later as appropriate.
[0051] Next, referring to the flowchart in Figure 8, we will explain the tuning of the data sampling timing for writing, which is performed collaboratively by the memory card 1 and the host 2 in the first embodiment. Here, we assume that the tuning of the data sampling timing for reading has already been completed.
[0052] First, host 2 sends a CMD 19 (CMD 19 with argument TD = 0) to memory card 1, which is set by argument TD to send tuning pattern data (S101). Meanwhile, memory card 1 receives a CMD 19 with argument TD = 0 from host 2 (S151). Upon receiving a CMD 19 with argument TD = 0, memory card 1 sends the tuning pattern data stored in the pattern data storage unit 15 to host 2 (S152). Host 2 receives and holds the tuning pattern data from memory card 1 (S102).
[0053] Next, host 2 sends CMD19 (CMD19 with argument TD=1) to memory card 1, which is set by argument TD to indicate that host 2 will send tuning pattern data (S103). Meanwhile, memory card 1 receives CMD19 with argument TD=1 from host 2 (S153). Having received CMD19 with argument TD=1, memory card 1 waits for tuning pattern data to be transmitted from host 2.
[0054] After sending the CMD19 with argument TD=1, host 2 then sends the tuning pattern data acquired and stored from memory card 1 to memory card 1 in S102 (S104). Memory card 1 receives and stores the tuning pattern data from host 2 (S154).
[0055] Next, host 2 sends CMD 19 with argument TD = 0 to memory card 1 (S105). Memory card 1 receives CMD 19 with argument TD = 0 from host 2 (S155). At this time, since memory card 1 holds the tuning pattern data sent from host 2, it sends the tuning pattern data it received and holds from host 2 to host 2 in S154, rather than the tuning pattern data stored in pattern data storage unit 15 (S155). Meanwhile, host 2 receives this tuning pattern data from memory card 1 (S106).
[0056] Host 2 compares the pattern data received from memory card 1 in S106 with the pattern data received and held from memory card 1 in S102 (S107). As mentioned above, it is assumed that the tuning of the data sampling timing for reading has been completed, so the pattern data received and held from memory card 1 in S102 can be treated as reference data. Host 2 converts this comparison result into, for example, an evaluation value and stores it.
[0057] Host 2 repeatedly performs the processes S103 to S107, as shown in Figure 9, while shifting the sampling clock by one unit of predetermined time relative to the clock generated by the clock unit 23. CLK_INT is the waveform of the sampling clock that matches the clock generated by the clock unit 23. The lower part of CLK_INT, Clock with delay Tap1, is the waveform of the sampling clock that is shifted by one unit relative to the clock generated by the clock unit 23. Tap1 indicates a shift of one unit. Further down, Clock with delay Tap2 is the waveform of the sampling clock that is shifted by two units relative to the clock generated by the clock unit 23. Tap2 indicates a shift of two units. Similarly, further down, waveforms of the sampling clock that are shifted by N units relative to the clock generated by the clock unit 23 are shown. For example, host 2 performs the processes S103 to S107 until the pattern of the sampling clock deviation covers the range of the UI (unit interval) of the clock generated by the clock unit 23. Alternatively, host 2 may perform the processes S103 to S106 until a certain amount of time has elapsed that exceeds the range of the UI.
[0058] Host 2 determines whether all patterns within the UI range have been executed for processing S103 to S107 (S108). If there are still unexecuted patterns remaining (S108: NO), Host 2 shifts the sampling clock by one unit (S109), returns to S103, and executes the processing in S103.
[0059] If all patterns within the UI range are executed (S108: YES), host 2 selects the optimal amount of shift for the sampling clock based on the comparison result in S107 and sets the sampling point (S110).
[0060] As described above, the memory card 1 of the first embodiment can interpret the argument TD for the CMD 19 and, when the argument TD is a predetermined value, receive tuning pattern data from the host 2 and transmit the tuning pattern data received and held from the host to the host 2. This extension of the CMD 19 enables the host 2 to tune the data sampling timing for writing in addition to reading.
[0061] As a result, the memory card 1 of the first embodiment enables the host 2 to perform high-speed read / write operations more accurately.
[0062] Incidentally, in the processing associated with CMD19, data transmission and reception are sometimes performed using the SDR (single-data rate) method, which uses only one edge of the rising edge of the clock for data transfer. On the other hand, memory card 1 often transmits and receives data using the DDR (double-data rate) method, which uses both the rising and falling edges of the clock for data transfer. Therefore, the memory card according to this embodiment may be configured to use two types of tuning pattern data: one with a data pattern for SDR and another with a data pattern for DDR.
[0063] The DDR argument of CMD19 shown in Figures 6 and 7 specifies either an SDR data pattern or a DDR data pattern for the tuning pattern data transmitted and received between the memory card 1 and the host 2. For example, argument DDR=0 specifies tuning pattern data for SDR data patterns, and argument DDR=1 specifies tuning pattern data for DDR data patterns.
[0064] By providing the argument DDR as an argument to CMD19, for example, it is possible to ensure compatibility of CMD19, such as enabling the use of CMD19 as a command for sending and receiving pattern data in both cases: when host 2 is connected to memory card 1 that sends and receives data using the SDR method, and when host 2 is connected to memory card 1 that sends and receives data using the DDR method.
[0065] (Second Embodiment) Next, a second embodiment will be described. Here, the same reference numerals are used for the same components as in the first embodiment, and redundant explanations of the same components are omitted.
[0066] Figure 10 shows an example configuration of the host 2 in the second embodiment.
[0067] The host 2 of the second embodiment further includes a host-side pattern data storage unit 27 compared to the host 2 of the first embodiment. The host-side pattern data storage unit 27 stores tuning pattern data, similar to the pattern data storage unit 15 of the memory card 1. The tuning pattern data stored in the host-side pattern data storage unit 27 may be the same as or different from the tuning pattern data stored in the pattern data storage unit 15 of the memory card 1. Preferably, the tuning pattern data stored in the host-side pattern data storage unit 27 is created as a bit pattern that produces worse eye aperture conditions than the tuning pattern data stored in the pattern data storage unit 15 of the memory card 1.
[0068] In the second embodiment, the host 2, which stores tuning pattern data in the host-side pattern data storage unit 27, differs from the first embodiment in that, when tuning the sampling timing of data for writing, it does not need to send the CMD 19 with argument TD=0 as described in the first embodiment to the memory card 1 and acquire tuning pattern data from the memory card 1. In other words, in the second embodiment, the process of the host 2 acquiring tuning pattern data from the memory card 1 is unnecessary.
[0069] As a result, compared to the first embodiment, the second embodiment can reduce the time required to tune the data sampling timing for the light.
[0070] Furthermore, by using tuning pattern data created as a bit pattern that generates the worst possible eye aperture conditions, which is held by host 2, more precise tuning becomes possible.
[0071] Figure 11 is a flowchart showing the operation procedure for tuning the data sampling timing for writing to the memory card 1 and host 2 in the second embodiment.
[0072] The differences between the flowchart shown in Figure 8 and the first embodiment are, firstly, that the processes S101 and S102 of the host 2 in Figure 8, and the corresponding processes S151 and S152 of the memory card 1 in Figure 8, are omitted. Secondly, the process S104 of the host 2 in Figure 8 is replaced with transmitting the pattern data stored in the host-side pattern data storage unit 27 to the memory card 1 (S121).
[0073] Thus, in the second embodiment, the host 2 holds the tuning pattern data, which shortens the time required for tuning and enables more precise tuning.
[0074] (Third Embodiment) Next, a third embodiment will be described. Here, the same reference numerals are used for the same components as in the first or second embodiment, and redundant explanations of the same components are omitted.
[0075] The third embodiment extends the CMD19 to enable tuning of the voltage used for data transfer.
[0076] Figure 12 shows an example configuration of the memory card 1 according to the third embodiment.
[0077] The memory card 1 of the third embodiment further includes a threshold level control unit 16 compared to the memory card 1 of the first embodiment. In Figure 12, for the sake of clarity, the threshold level control unit 16 is shown as a separate component from the memory controller 11. The threshold level control unit 16 may be provided as one unit within the memory controller 11.
[0078] The threshold level control unit 16 changes the voltage threshold used for data transfer between the memory card 1 and the host 2 using the data line 31, in response to a request from the host 2. Specifically, the threshold level control unit 16 lowers the upper limit of the voltage threshold for the data signal propagated on the data line 31, or raises the lower limit.
[0079] More specifically, the memory card 1 of the third embodiment interprets the argument TLT of the CMD 19 shown in Figures 6 and 7, and recognizes that the host 2 has requested that the CMD 19 with argument TLT = 1 be changed to change the upper or lower limit of the voltage threshold of the data signal during data transfer using the data line 31.
[0080] Figure 13 shows an example configuration of the host 2 in the third embodiment.
[0081] The host 2 of the third embodiment, compared to the host 2 of the first embodiment, has a threshold level adjustment unit 28 instead of a sampling clock adjustment unit 24. In Figure 13, for the sake of clarity, the threshold level adjustment unit 28 is shown as a separate component from the host controller 21. The threshold level adjustment unit 28 may be provided as one unit within the host controller 21.
[0082] The threshold level adjustment unit 28 uses the CMD 19 to tune the voltage used for data transfer between the host 2 and the memory card 1 using the data line 31. Details of the tuning performed by the threshold level adjustment unit 28 will be described with reference to Figures 14 and 15.
[0083] Figure 14 shows an example of the eye pattern of the signal waveform of data line 31.
[0084] In UHS-I, the minimum upper limit of the threshold for a 1.8V signal (V OH 1.40V is defined as (min), and the maximum value of the lower limit of the threshold (V) OL A maximum voltage of 0.45V is defined. At this voltage, the upper and lower voltage range is 0.95V.
[0085] In the case of eMMC (embedded multimedia card), the V of the 1.2V signal... OH (min) is defined as 0.825V, and V OL (max) is defined as 0.325V. Below, SD TM Considering that memory cards may support 1.2V signals in the future, an explanation regarding 1.2V signals is provided, referencing the eMMC standard.
[0086] In contrast, the memory card 1 of the third embodiment, as shown in Figure 15, has a threshold value of 1.8V for the 1.8V signal, OH In addition to 1.40V (min), it supports, for example, 1.38V, 1.36V, and 1.34V. On the other hand, V OL As for (max), in addition to 0.45V, it supports, for example, 0.47V, 0.49V, and 0.51V. If V OH (min)=1.34V,V OL If data transfer can be performed without problems with a power of (max) = 0.51V, the vertical width will be 0.83. In this case, the slope of the Rise / Fall of the signal is mitigated, which suppresses ringing, relaxes the eye aperture conditions, and further reduces the power consumption. Note that memory card 1 is V OH (min)=1.40V,V OL (max) = 0.45V is preset as the initial value.
[0087] Furthermore, regarding eMMC, as shown in Figure 15, the memory card 1 of the third embodiment has a threshold value of 1,2V signals, V OH In addition to 0.825V, (min) supports, for example, 0.815V, 0.805V, and 0.795V. On the other hand, V OL In addition to 0.325V, it also supports 0.335V, 0.345V, and 0.355V (max).
[0088] Referring to the flowchart in Figure 16, the tuning of the voltage used for data transfer performed collaboratively by the memory card 1 and the host 2 in the third embodiment will be described. Here, it is assumed that the tuning of the data sampling timing for read / write has been completed.
[0089] First, host 2 confirms that data can be written to and read from memory card 1 accurately (S201). The process in S201 may be performed by sending and receiving tuning pattern data using CMD19 with argument TD, but it is not limited to this and can be performed in various other ways.
[0090] Next, host 2 sends CMD19 (argument TLT=1) to memory card 1, which is set by the argument TLT to perform threshold level tuning (S202). This CMD19 with argument TLT=1 is sent to memory card 1 using command line 32. At this time, host 2 uses, for example, a data line to determine the current V OH A value one step lower than (min) or the current V OL A value one step higher than (max) is sent to memory card 1. Host 2, V OH (min) and V OL You can change (max) at the same time, or you can change them separately.
[0091] Alternatively, if memory card 1 receives a CMD19 with argument TLT=1, rather than host 2 specifying a numerical value, it will autonomously, for example, V OH (min) and V OL You can also change (max) and one step at a time.
[0092] Memory card 1 receives CMD 19 with argument TLT = 1 from host 2 (S251), V OH (min), V OL Change (max) (S252).
[0093] Next, host 2 performs data write / read operations on memory card 1 (S203). Host 2 determines whether or not there are any problems with the data write / read operation in S203 (S204). The operations in S203 and S204 may also be performed by sending and receiving tuning pattern data using CMD19 with argument TD, but are not limited to this and can be performed in various other ways.
[0094] If there are no problems writing / reading data to S203 (S204: YES), Host 2 will V OH (min), V OL Determine whether there is room to change the value of (max) (S205). OH (min), V OL If there is room to lower the value of (max) (S205: YES), Host 2 returns to S202 and V OH (min), V OL To determine whether the value of (max) can be changed by another step, a series of processes are executed from S202.
[0095] V OH (min), V OL If there is no room to change the value of (max) (S205: NO), Host 2 terminates tuning.
[0096] Furthermore, if there is a problem writing / reading data in S203 (S204: NO), Host 2 will V OH (min), V OL Restore the (max) value to its original value (S206) and finish tuning.
[0097] As described above, the memory card 1 of the third embodiment interprets the argument TLT for CMD19, and V OH (min), V OL Change the value of (max). With this CMD19 extension, host 2 will V OH (min), V OL By changing (max), it becomes possible to tune the voltage used for data transfer.
[0098] The argument CT of CMD19 shown in Figures 6 and 7 specifies either tuning from the initial state or corrective tuning. For example, argument CT=0 specifies tuning from the initial state, and argument CT=1 specifies corrective tuning.
[0099] For example, in response to CMD19 with TLT=1, V autonomously OH (min) and V OL In the case of memory card 1, which changes (max) one step at a time, if the argument CT=0 is also set, the value will be changed one step at a time from the preset value, and if the argument CT=1 is also set, the value will be changed one step at a time from the current value.
[0100] This eliminates the need to start from preset values each time, thus reducing tuning time.
[0101] (Fourth Embodiment) Next, the fourth embodiment will be described. Here, the same reference numerals are used for the same components as in the first to third embodiments, and redundant explanations of the same components are omitted.
[0102] In the third embodiment, the CMD19 is extended to allow tuning of the voltage used for data transfer. This tuning involves changing either the upper limit or lower limit of the voltage threshold, or both. The fourth embodiment also extends the CMD19 to allow tuning of the voltage used for data transfer. This tuning involves changing the voltage center value.
[0103] Figure 17 shows an example configuration of the memory card 1 according to the fourth embodiment.
[0104] The memory card 1 of the fourth embodiment, compared to the memory card 1 of the third embodiment, has a voltage center value control unit 17 instead of a threshold level control unit 16. In Figure 17, for the sake of clarity, the voltage center value control unit 17 is shown as a separate component from the memory controller 11. The voltage center value control unit 17 may be provided as one unit within the memory controller 11.
[0105] The voltage center value control unit 17 changes the center value of the voltage used for data transfer between the memory card 1 and the host 2 using the data line 31, in response to a request from the host 2. Specifically, the voltage center value control unit 17 lowers the center value of the voltage of the data signal propagated on the data line 31.
[0106] More specifically, the memory card 1 of the fourth embodiment interprets the argument CLT of the CMD19 shown in Figures 6 and 7, and recognizes that the host 2 has requested that the CMD19 with argument CLT = 1 be changed to change the center value of the voltage used for data transfer using the data line 31.
[0107] Figure 18 shows an example configuration of the host 2 in the fourth embodiment.
[0108] The host 2 of the fourth embodiment, compared to the host 2 of the third embodiment, has a voltage center value adjustment unit 29 instead of a threshold level adjustment unit 28. In Figure 18, for the sake of clarity, the voltage center value adjustment unit 29 is shown as a separate component from the host controller 21. The voltage center value adjustment unit 29 may be provided as one unit within the host controller 21.
[0109] The voltage center value adjustment unit 29 uses the existing CMD 19 to tune the voltage used for data transfer between the host 2 and the memory card 1 using the data line 31. The details of the tuning performed by the threshold level adjustment unit 28 will be explained with reference to Figures 19 and 20.
[0110] Figure 19 shows an example of the eye pattern of the signal waveform of data line 31.
[0111] In UHS-I, 0.925V is defined as the center value of a 1.8V signal. For example, as shown in the eye pattern on the left in Figure 19, if the upper limit is 1.40V and the lower limit is 0.45V, the upper and lower range will be 0.95V.
[0112] In the case of eMMC, 0.575V is defined as the center value of the 1.2V signal. For example, as shown in the eye pattern on the right side of Figure 19, if the upper limit is 0.825V and the lower limit is 0.45V, the upper and lower range will be 0.50V.
[0113] In contrast, the memory card 1 of the fourth embodiment supports, for example, 0.915V, 0.905V, and 0.895V in addition to 0.925V for the center value of the 1.8V signal. If data transfer can be performed without problems at a lower power level for the center value, the upper and lower limits can be reduced. In this case, as with the third embodiment, the slope of the signal's Rise / Fall is mitigated, which suppresses ringing, relaxes the eye aperture conditions, and further reduces power consumption. The memory card 1 is initially preset with a center value of 0.925V.
[0114] Furthermore, with respect to the eMMC, as shown in Figure 20, the memory card 1 of the fourth embodiment supports, in addition to 0.575V, for example, 0.565V, 0.555V, and 0.545V with respect to the center value of the 1.2V signal.
[0115] Referring to the flowchart in Figure 21, the tuning of the voltage used for data transfer performed collaboratively by the memory card 1 and host 2 in the fourth embodiment will be described. Here, it is assumed that the tuning of the data sampling timing for read / write has been completed.
[0116] First, the host 2 confirms that data can be written to and read from the memory card 1 accurately (S301). The process in S301 may be performed by sending and receiving tuning pattern data using the CMD 19 with the argument TD, but it is not limited to this and can be performed in various other ways.
[0117] Next, host 2 sends a CMD19 (argument CLT=1) to memory card 1, which is set by the argument CLT to perform voltage center value tuning (S302). This CMD19 with argument CLT=1 is sent to memory card 1 using command line 32. At this time, host 2 sends a value one step lower than the current center value to memory card 1, for example, using the data line.
[0118] Alternatively, instead of host 2 specifying a numerical value, memory card 1 may autonomously lower the voltage center value of the data signal by one step if it receives a CMD 19 with argument CLT=1.
[0119] Memory card 1 receives CMD 19 with argument CLT=1 from host 2 (S351) and lowers the voltage center value of the data signal (S352).
[0120] Next, host 2 performs data write / read operations on memory card 1 (S303). Host 2 determines whether or not there are any problems with the data write / read operation in S303 (S304). The operations in S303 and S304 may also be performed by sending and receiving tuning pattern data using CMD 19 with argument TD, but are not limited to this and can be performed in various other ways.
[0121] If there are no problems writing / reading the data in S303 (S304: YES), the host 2 determines whether there is room to lower the voltage center value of the data signal (S305). If there is room to lower the voltage center value of the data signal (S305: YES), the host 2 returns to S302 and performs a series of operations from S302 to determine whether the voltage center value of the data signal can be lowered by another step.
[0122] If there is no room to lower the voltage center value of the data signal (S305: NO), Host 2 terminates tuning.
[0123] Additionally, if there is a problem writing / reading the data in S303 (S304: NO), Host 2 restores the voltage center value of the data signal to its original value (S306) and terminates tuning.
[0124] In this way, the host 2 repeats the processes from S302 to S304 a predetermined number of times or until the process in S303 fails, and detects the smallest value that can be set as the voltage center value of the data signal.
[0125] As described above, the memory card 1 of the fourth embodiment interprets the argument CLT for the existing CMD 19 and lowers the voltage center value of the data signal. This extension of the CMD 19 allows the host 2 to tune the voltage used for data transfer by lowering the voltage center value of the data signal.
[0126] Furthermore, the argument CT of CMD19, as described in the third embodiment, can also be used in the tuning of the fourth embodiment.
[0127] For example, in the case of memory card 1, which autonomously lowers the voltage center value of the data signal by one step in response to CMD 19 with CLT = 1, if the argument CT = 0 is also set, it lowers the value by one step from the preset value, and if the argument CT = 1 is also set, it lowers the value by one step from the current value.
[0128] This eliminates the need to start the process from a preset value each time, similar to the third embodiment, thus reducing tuning time.
[0129] Furthermore, as explained in the third embodiment, V OH (min), V OL It is preferable to perform both tuning the voltage used for data transfer by changing (max) and tuning the voltage used for data transfer by lowering the voltage center value of the data signal, as described in the fourth embodiment.
[0130] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents.
[0131] 1...Memory card, 2...Host, 3...Information processing system, 11...Memory controller, 12...I / O cell, 13...Connector, 14...Non-volatile memory, 15...Pattern data storage unit, 16...Threshold level control unit, 17...Voltage center value control unit, 21...Host controller, 22...I / O cell, 23...Clock unit, 24...Sampling clock adjustment unit, 25...Host CPU, 26...Pattern data transmission / reception unit, 27...Host-side pattern data storage unit, 28...Threshold level adjustment unit, 29...Voltage center value adjustment unit, 31...Data line, 32...Command line, 33...Clock line.
Claims
1. A memory card comprising: a non-volatile memory; and a controller that is connectable to a host and controls the non-volatile memory, wherein the controller is configured such that when it receives a first command for tuning the sampling timing of data received by the host from the controller, the controller receives the tuning pattern data from the host when it receives a first command in which a first value indicating that the host will transmit tuning pattern data used for the tuning is set as the first argument, and when it receives a first command in which a second value indicating that the memory card will transmit the tuning pattern data is set as the first argument, it transmits the tuning pattern data to the host.
2. The memory card according to claim 1, wherein the controller is configured such that, upon receiving a first command in which the second value is set as the first argument, it determines whether or not it holds the tuning pattern data received from the host, transmits the held tuning pattern data to the host if it holds the tuning pattern data received from the host, and transmits the tuning pattern data stored in the memory card to the host if it does not hold the tuning pattern data received from the host.
3. The memory card according to claim 1, wherein the tuning pattern data received from the host in response to the first command in which the first value is set as the first argument is the tuning pattern data transmitted to the host in response to the first command in which the second value is set as the first argument before the reception of the first command.
4. The memory card according to claim 1, wherein the tuning pattern data received from the host in response to the first command in which the first value is set as the first argument is the tuning pattern data that the host has previously held.
5. A memory card comprising: a non-volatile memory; and a controller that is connectable to a host and controls the non-volatile memory, wherein the controller is configured to change the upper or lower limit of a voltage threshold when it receives a first command for tuning the sampling timing of data received by the host from the controller, the first command having a third value as its second argument indicating tuning the voltage threshold used for data transfer between the controller and the host.
6. The memory card according to claim 5, wherein the controller is configured to set the upper limit threshold to the next smallest value from a selection of multiple values corresponding to the upper limit threshold, or to set the lower limit threshold to the next largeest value from a selection of multiple values corresponding to the lower limit threshold, depending on the first command in which the third value is set as the second argument.
7. A memory card comprising: a non-volatile memory; and a controller that is connectable to a host and controls the non-volatile memory, wherein the controller is configured to lower the center value when it receives a first command for tuning the sampling timing of data received by the host from the controller, the first command having a fourth value as its third argument indicating tuning the center value of the voltage used for data transfer between the controller and the host.
8. The memory card according to claim 1, 5, or 7, wherein the non-volatile memory is a NAND flash memory.
9. The memory card is an SD card that supports UHS (Ultra High Speed)-I. TM A memory card, the memory card according to claim 8.
10. The memory card according to claim 1, 5, or 7, wherein the first command is CMD19 as defined in the SD Association standard.
11. A system comprising: a memory card according to any one of claims 1 to 4; and a host connectable to the memory card, wherein the host is configured to: (1) transmit the tuning pattern data to the memory card by transmitting the first command with the first value set as the first argument to the memory card; (2) receive the tuning pattern data from the memory card by transmitting the first command with the second value set as the first argument to the memory card; and (3) compare the tuning pattern data transmitted to the memory card with the tuning pattern data received from the memory card, repeating this while shifting the sampling clock until the shift in the sampling clock is at least equal to or greater than the unit interval, thereby setting the sampling point for the data to be transmitted by the host to the memory card.
12. A system comprising: a memory card according to claim 5 or 6; and a host connectable to the memory card, wherein the host: (1) transmits the first command with the third value set as the second argument to the memory card; (2) writes predetermined data to the memory card and reads the predetermined data from the memory card; and (3) determines the success or failure of the write and read operations, repeating these actions a predetermined number of times or until the write or read operation fails, thereby detecting the smallest value that can be set as the upper threshold and the largest value that can be set as the lower threshold.
13. A system comprising: a memory card according to claim 7; and a host connectable to the memory card, wherein the host is configured to: (1) transmit a first command with the fourth value set as the third argument to the memory card; (2) write predetermined data to the memory card and read the predetermined data from the memory card; and (3) determine the success or failure of the write and read operations, repeating these actions a predetermined number of times or until the write or read operation fails, thereby detecting the smallest value that can be set as the center value.
14. A method for controlling a memory card that is connectable to a host and includes non-volatile memory, the method comprising: receiving the tuning pattern data from the host in response to a first command for tuning the sampling timing of data received by the host from the memory card, wherein a first value indicating that the host will transmit tuning pattern data used for the tuning is set as the first argument of the first command; and transmitting the tuning pattern data to the host when the first command is received, wherein a second value indicating that the memory card will transmit the tuning pattern data is set as the first argument of the first command.
15. The method according to claim 14, further comprising: when the first command, in which the second value is set as the first argument, determining whether or not the tuning pattern data received from the host is held; if the tuning pattern data received from the host is held, transmitting the held tuning pattern data to the host; and if the tuning pattern data received from the host is not held, transmitting the tuning pattern data held on the memory card to the host.
16. The method according to claim 14, further comprising: when the first command, in which the second value is set as the first argument, determining whether or not the tuning pattern data received from the host is held; if the tuning pattern data received from the host is held, transmitting the held tuning pattern data to the host; and if the tuning pattern data received from the host is not held, transmitting the tuning pattern data held on the memory card to the host.
17. The method according to claim 14, wherein the tuning pattern data received from the host in response to the first command in which the first value is set as the first argument is the tuning pattern data transmitted to the host in response to the first command in which the second value is set as the first argument before the reception of the first command.
18. A method for controlling a memory card that is connectable to a host and includes non-volatile memory, wherein when the host receives a first command for tuning the sampling timing of data received from the memory card, the first command is set with a third value as a second argument indicating tuning of a voltage threshold used for data transfer between the memory card and the host, the upper or lower limit of the threshold is changed.
19. The method according to claim 18, further comprising setting the upper limit threshold to the next smallest value from a selection of values including a plurality of values corresponding to the upper limit threshold, or setting the lower limit threshold to the next largeest value from a selection of values including a plurality of values corresponding to the lower limit threshold of the current threshold, in accordance with the first command in which the third value is set as the second argument.
20. A method for controlling a memory card that is connectable to a host and includes non-volatile memory, wherein when the host receives a first command for tuning the sampling timing of data received from the memory card, the first command is set with a fourth value as the third argument indicating tuning the center value of the voltage used for data transfer between the memory card and the host, the method lowers the center value.
Citation Information
Patent Citations
Memory device, host device, and sampling clock adjusting method
JP2010157058A
System and method for controlling memory
JP2011059762A