WO2016076043A1 - インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法 - Google Patents

インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法 Download PDF

Info

Publication number
WO2016076043A1
WO2016076043A1 PCT/JP2015/078607 JP2015078607W WO2016076043A1 WO 2016076043 A1 WO2016076043 A1 WO 2016076043A1 JP 2015078607 W JP2015078607 W JP 2015078607W WO 2016076043 A1 WO2016076043 A1 WO 2016076043A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
interface circuit
memory
side interface
unit
Prior art date
Application number
PCT/JP2015/078607
Other languages
English (en)
French (fr)
Inventor
塁 阪井
禎之 柴原
哲生 吉田
秀信 柿岡
晴彦 寺田
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US15/522,383 priority Critical patent/US20180293025A1/en
Priority to JP2016558933A priority patent/JP6500910B2/ja
Publication of WO2016076043A1 publication Critical patent/WO2016076043A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12015Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising clock generation or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Definitions

  • the present technology relates to an interface circuit, a storage device, an information processing system, and an interface circuit control method. Specifically, the present invention relates to an interface circuit that transmits and receives data in synchronization with a strobe signal, a storage device, an information processing system, and a method for controlling the interface circuit.
  • a non-volatile memory may be used as an auxiliary storage device or storage.
  • This non-volatile memory is broadly divided into flash memory that supports data access in units of large size and non-volatile random access memory (NVRAM: Non-Volatile RAM) that allows high-speed random access in small units.
  • NVRAM Non-Volatile random access memory
  • examples of the nonvolatile random access memory include ReRAM (Resistance RAM), PCRAM (Phase-Change RAM), MRAM (Magnetoresistive RAM) and the like.
  • nonvolatile memories generally transfer data to a memory controller in synchronization with a strobe signal. Then, the memory controller holds the data from the nonvolatile memory in a flip-flop or the like in synchronization with the strobe signal, and fetches and holds the held data in synchronization with the internal clock signal.
  • a method of capturing data after holding it in a plurality of flip-flops in synchronization with the strobe signal is used.
  • the number of cycles of the strobe signal is the same as the number of data, all data may not be output from the final stage of the flip-flop.
  • the memory controller cannot capture some data. Therefore, a memory controller provided with a delay control circuit that adjusts the delay time of the strobe signal has been proposed so that all data can be captured (see, for example, Patent Document 1).
  • the accuracy required for controlling the delay time increases as the data transfer speed between the memory controller and the memory increases.
  • a method for increasing the accuracy of control for example, an oscillation circuit that generates a clock signal having a frequency higher than the transfer frequency is provided, and data is oversampled using the clock signal, or the delay time of the delay element is reduced.
  • the method is known.
  • it is necessary to further provide a circuit for performing oversampling, an oscillation circuit, and the like, which complicates the circuit and increases component costs and design costs.
  • the number of delay elements required for delaying a unit time increases, and similarly, the component cost and the design cost increase.
  • This technology was created in view of such a situation, and aims to accurately transfer data between a memory and a memory controller.
  • a first aspect of the present technology is that the number of cycles is larger than the number of unit data obtained by dividing read data read from a memory cell into predetermined units.
  • a memory-side interface circuit that sequentially transmits the first periodic signal and the unit data in synchronization with each other, and sequentially holds the transmitted unit data in a plurality of stages of holding units in synchronization with the first periodic signal.
  • An interface circuit including a controller-side interface circuit that sequentially reads out and outputs the held unit data in synchronization with a second periodic signal, and a control method thereof.
  • the controller-side interface circuit transmits a read command instructing reading of the read data to the memory-side interface circuit, and the memory-side interface circuit transmits the read data according to the read command.
  • the first periodic signal having the same number of cycles as the number of unit data and the unit data are sequentially transmitted in synchronization with each other, and the controller side interface circuit transmits the first command after transmitting the read command.
  • a periodic signal transmission command for instructing transmission of a periodic signal is transmitted to the memory-side interface circuit, and the memory-side interface circuit may transmit the first periodic signal having a predetermined number of cycles according to the periodic signal transmission command. Good. As a result, a periodic signal having a predetermined number of cycles is transmitted according to the periodic signal transmission command.
  • the controller-side interface circuit transmits a read command instructing reading of the read data to the memory-side interface circuit, and the memory-side interface circuit transmits the read data according to the read command.
  • the first periodic signal having the same number of cycles as the number of unit data and the unit data are sequentially transmitted in synchronization with each other, and the first periodic signal having a predetermined number of cycles may be transmitted. Good.
  • the periodic signal having the same number of cycles as the number of unit data and the unit data are sequentially transmitted in synchronization, and the periodic signal having a predetermined number of cycles is further transmitted.
  • the memory-side interface circuit includes the first cycle until the number of cycles transmitted in the non-transmission period reaches the predetermined cycle number in the non-transmission period in which the read data is not transmitted.
  • the signal may be transmitted repeatedly.
  • the periodic signal is repeatedly transmitted until the number of cycles transmitted within the untransmitted period reaches a predetermined number of cycles.
  • the controller-side interface circuit may transmit a setting command for setting the predetermined number of cycles to the memory-side interface circuit. As a result, the setting command for setting the predetermined number of cycles is transmitted.
  • the controller-side interface circuit transmits a start command for instructing transmission of a predetermined number of pattern data to the memory-side interface circuit, and the memory-side interface circuit is configured according to the start command.
  • the first cycle signal having the same number of cycles as the predetermined number and the pattern data are synchronized and transmitted to the controller side interface circuit, and the controller side interface circuit transmits the transmitted pattern data to the first cycle.
  • a plurality of holding units are sequentially held in synchronization with a signal, the held pattern data are sequentially read in synchronization with the second periodic signal, and a difference between the number of the read pattern data and the predetermined number is determined.
  • the setting command to set the memory side interface It may be transmitted to the road. As a result, the difference between the number of read pattern data and the predetermined number is set as the number of cycles.
  • the unit data includes first and second data
  • the memory-side interface circuit transmits the first data in synchronization with a rising edge of the first periodic signal.
  • the second data may be transmitted in synchronization with the fall of the first periodic signal.
  • the first data is transmitted in synchronization with the rising edge of the periodic signal
  • the second data is transmitted in synchronization with the falling edge of the periodic signal.
  • the unit data is synchronized with a memory cell and a periodic signal having a cycle number larger than the number of unit data obtained by dividing read data read from the memory cell for each predetermined unit. And an interface circuit that sequentially transmits the data.
  • the periodic signal having the number of cycles larger than the number of unit data and the unit data are sequentially transmitted in synchronization.
  • a memory cell a first periodic signal having a cycle number larger than the number of unit data obtained by dividing read data read from the memory cell for each predetermined unit, and the unit data.
  • the memory-side interface circuit that sequentially transmits the unit data, and the transmitted unit data is sequentially held in a plurality of holding units in synchronization with the first periodic signal, and in synchronization with the second periodic signal
  • An information processing system including a controller-side interface circuit that sequentially reads and outputs the held unit data.
  • FIG. 3 is a block diagram illustrating a configuration example of a memory controller according to the first embodiment.
  • FIG. 3 is a block diagram illustrating a functional configuration example of a memory controller according to the first embodiment.
  • FIG. It is a figure which shows the example of 1 structure of the controller side interface circuit in 1st Embodiment.
  • It is a circuit diagram which shows one structural example of the clock enable transmission part and clock transmission part in 1st Embodiment.
  • It is a block diagram which shows one structural example of the data receiving part in 1st Embodiment.
  • FIG. 1 is a block diagram illustrating a configuration example of a memory side interface circuit according to a first embodiment.
  • FIG. It is a circuit diagram which shows one structural example of the clock enable receiving part and strobe transmission part in 1st Embodiment.
  • FIG. 3 is a block diagram illustrating a configuration example of a memory control unit according to the first embodiment. 3 is a flowchart illustrating an example of a storage operation according to the first embodiment.
  • 4 is a flowchart illustrating an example of a read process according to the first embodiment.
  • 4 is a timing chart illustrating an example of timing at which signals are transmitted and received by the memory controller and the nonvolatile memory according to the first embodiment.
  • 6 is a timing chart illustrating an example of timing at which the memory controller according to the first embodiment holds data.
  • 6 is a timing chart illustrating an example of timing at which the memory controller in the comparative example of the first embodiment holds data.
  • It is a circuit diagram which shows one structural example of the data receiving part in the modification of 1st Embodiment.
  • It is a block diagram which shows the function structural example of the memory controller in 2nd Embodiment.
  • It is a block diagram which shows one structural example of the memory control part in 2nd Embodiment.
  • 14 is a flowchart illustrating an example of a read process according to the second embodiment.
  • 10 is a timing chart illustrating an example of timings at which a memory controller and a nonvolatile memory in the second embodiment transmit and receive signals. It is a flowchart which shows an example of the read process in the modification of 2nd Embodiment. It is a timing chart which shows an example of the timing which the memory controller and non-volatile memory in the modification of 2nd Embodiment transmit / receive a signal.
  • It is a block diagram which shows the function structural example of the memory controller in 3rd Embodiment. It is a block diagram which shows one structural example of the memory control part in 3rd Embodiment.
  • 14 is a flowchart illustrating an example of storage operation according to the third embodiment. It is a block diagram which shows the function structural example of the memory controller in 4th Embodiment. It is a block diagram which shows one structural example of the memory control part in 4th Embodiment. 14 is a flowchart illustrating an example of a storage operation according to the fourth embodiment. It is a flowchart which shows an example of the strobe issue number setting process in 4th Embodiment. 10 is a timing chart illustrating an example of timings at which a memory controller and a nonvolatile memory in the second embodiment transmit and receive signals.
  • First embodiment an example of transmitting a strobe signal larger than the number of data
  • Second Embodiment Example in which a strobe signal larger than the number of data is transmitted without receiving a strobe issue command
  • Third Embodiment Example in which a strobe signal having a larger number of cycles set than the number of data is transmitted
  • Fourth Embodiment Example in which a strobe signal having a larger number of cycles calculated with respect to the number of data is transmitted
  • FIG. 1 is a block diagram illustrating a configuration example of an information processing system according to an embodiment.
  • This information processing system includes a host computer 100 and a storage 200.
  • the host computer 100 controls the entire information processing system.
  • the host computer 100 generates an access request or write data and supplies it to the storage 200 via the signal line 109.
  • This access request includes a write request for requesting writing of write data and a read request for instructing reading of read data.
  • the host computer 100 receives read data from the storage 200.
  • the storage 200 includes a memory controller 300 and a nonvolatile memory 400.
  • the memory controller 300 controls the nonvolatile memory 400.
  • the memory controller 300 converts (that is, encodes) the write data into a code word in an error detection and correction code (ECC: Error detection and Correction Code).
  • ECC Error detection and Correction Code
  • the memory controller 300 issues a write command as an access command, and writes the encoded write data by accessing the nonvolatile memory 400 via the signal line 309.
  • the memory controller 300 issues a read command as an access command.
  • the memory controller 300 reads the encoded read data by accessing the nonvolatile memory 400 by a read command. Then, the memory controller 300 converts (that is, decodes) the encoded read data into the original data before encoding. Further, the memory controller 300 detects and corrects errors in the read data based on the ECC. The memory controller 300 supplies the corrected read data to the host computer 100.
  • the non-volatile memory 400 stores data according to the control of the memory controller 300.
  • ReRAM is used as the nonvolatile memory 400.
  • the nonvolatile memory 400 includes a plurality of memory cells, and these memory cells are divided into a plurality of blocks.
  • the block is an access unit of the nonvolatile memory 400 and is also called a sector.
  • Each block is assigned a physical address.
  • a flash memory, a PCRAM, an MRAM, or the like may be used as the nonvolatile memory 400 instead of the ReRAM.
  • the nonvolatile memory 400 is an example of a storage device described in the claims.
  • FIG. 2 is a block diagram illustrating a configuration example of the memory controller 300 according to the first embodiment.
  • the memory controller 300 includes a RAM (Random Access Memory) 302, a CPU (Central Processing Unit) 303, an ECC processing unit 304, and a ROM (Read Only Memory) 305.
  • the memory controller 300 includes a host interface circuit 301, a bus 306, and a controller-side interface circuit 320.
  • the RAM 302 temporarily holds data necessary for processing executed by the CPU 303.
  • the CPU 303 controls the entire memory controller 300.
  • the ROM 305 stores programs executed by the CPU 303.
  • the host interface circuit 301 exchanges data and access requests with the host computer 100.
  • the bus 306 is a common path for the RAM 302, the CPU 303, the ECC processing unit 304, the ROM 305, the host interface circuit 301, and the controller side interface circuit 320 to exchange data with each other.
  • the controller side interface circuit 320 transmits and receives data and commands to and from the nonvolatile memory 400.
  • the ECC processing unit 304 encodes write data and decodes the encoded read data.
  • FIG. 3 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the first embodiment.
  • the memory controller 300 includes an ECC processing unit 304, an access command issuing unit 311, a strobe issuing instruction unit 312, and a controller side interface circuit 320.
  • the strobe issue instruction unit 312 is implemented by the RAM 302, the CPU 303, the ECC processing unit 304, the ROM 305, the host interface circuit 301, the bus 306, the controller side interface circuit 320, and the like in FIG. The same applies to the strobe issue instruction unit 312.
  • the access command issuing unit 311 issues an access command in response to an access request.
  • the access command issuing unit 311 converts a logical address specified by the access request into a physical address.
  • the logical address is an address allocated for each access unit when the host computer 100 accesses the storage 200 in the address space defined by the host computer 100 or the memory controller 300.
  • the physical address is an address allocated in the nonvolatile memory 400 for each access unit when the memory controller 300 accesses the nonvolatile memory 400.
  • the access command issuing unit 311 issues an access command specifying the converted physical address.
  • the access unit of the host computer 100 and the access unit of the nonvolatile memory 400 are different, a plurality of access commands are issued from one access request as necessary.
  • the access command issuing unit 311 supplies the issued access command to the controller side interface circuit 320.
  • the strobe issue instruction unit 312 issues a strobe issue command after transmitting a read command.
  • This strobe issue command is an instruction to issue a periodic signal having a predetermined number of cycles E as a strobe signal without valid data.
  • E is an integer, for example, “2” is set.
  • valid data means individual data obtained by dividing read data in units of transmission, and data not corresponding to the data in the read data is treated as invalid data.
  • the nonvolatile memory 400 sequentially transmits invalid data and a strobe signal to the memory controller 300.
  • the strobe signal is an example of a first periodic signal described in the claims.
  • the strobe issue command is an example of a periodic signal transmission command described in the claims.
  • FIG. 4 is a block diagram illustrating a configuration example of the controller-side interface circuit 320.
  • the controller side interface circuit 320 includes a clock enable transmission unit 325, a chip select transmission unit 330, a command address transmission unit 331, a clock transmission unit 335, and a strobe transmission unit 340.
  • the controller-side interface circuit 320 includes a data transmission unit 341, a data reception unit 350, a clock generation unit 370, a data transmission unit 371, a data reception unit 372, and terminals 381 to 387.
  • the clock enable transmission unit 325 transmits the clock enable signal EN to the nonvolatile memory 400 via the enable line connected to the terminal 381 in synchronization with the clock signal CLK_ctrl.
  • the clock enable signal EN is a signal for instructing whether or not to enable the base clock signal transmitted from the memory controller 300 to the nonvolatile memory 400 in the nonvolatile memory 400.
  • the chip select transmission unit 330 transmits the chip select signal CS to the nonvolatile memory 400 via a signal line connected to the terminal 382 in synchronization with the clock signal CLK_ctrl.
  • This chip select signal CS is a signal for instructing whether or not to enable the access command of the nonvolatile memory 400.
  • the command address transmission unit 331 transmits a command and an address CA to the nonvolatile memory 400 via a command address line connected to the terminal 383 in synchronization with the clock signal CLK_ctrl.
  • the clock transmission unit 335 supplies the base clock signal CK to the nonvolatile memory 400 via a signal line connected to the terminal 384 in synchronization with the clock signal CLK_if.
  • the base clock signal CK is a clock signal used as a reference in the nonvolatile memory 400.
  • the frequency of the clock signal CLK_if is set to k (k is an integer) times the clock signal CLK_crtl described above.
  • the strobe transmission unit 340 transmits the strobe signal DQS to the nonvolatile memory 400 via the strobe line connected to the terminal 385 in synchronization with the clock signal CLK_if.
  • the data transmission unit 341 transmits write data as data DQ for each transmission unit to the nonvolatile memory 400 via a data line connected to the terminal 386 in synchronization with the clock signal CLK_if.
  • the data receiving unit 350 receives the data DQ from the nonvolatile memory 400 through the data line of the terminal 386.
  • the data receiving unit 350 receives a strobe signal from the nonvolatile memory 400 via the strobe line connected to the terminal 385, and sequentially holds the data DQ in synchronization with the strobe signal. Then, the data receiving unit 350 sequentially fetches the held data DQ in synchronization with the clock signal CLK_ctrl and supplies the data DQ to the ECC processing unit 304 via the bus 306.
  • the frequency of the clock signal CLK_ctrl is the same as that of the strobe signal DQS.
  • the structure from which the frequency of these signals differs may be sufficient.
  • the clock signal CLK_ctrl is an example of a second periodic signal described in the claims.
  • the clock generator 370 generates clock signals CLK_ctrl and CLK_if.
  • the clock generation unit 370 supplies the generated clock signal CLK_ctrl to the clock enable transmission unit 325, the chip select transmission unit 330, the command address transmission unit 331, the data reception unit 350, and the data reception unit 372.
  • the clock generation unit 370 supplies the generated clock signal CLK_if to the clock transmission unit 335, the strobe transmission unit 340, the data transmission unit 341, and the data transmission unit 371.
  • the data transmission unit 371 has the same configuration as the data transmission unit 341 except that the data transmission unit 371 transmits data via a data line connected to the terminal 387.
  • the data receiving unit 372 has the same configuration as that of the data receiving unit 350 except that the data receiving unit 372 receives data via a data line connected to the terminal 387.
  • the controller-side interface circuit 320 includes a plurality of transmission / reception circuits having the same configuration in addition to a transmission / reception circuit including a data transmission unit 341 and a data reception unit 350 and a transmission / reception circuit including a data transmission unit 371 and a data reception unit 372. Is provided. For example, a total of eight transmission / reception circuits are provided, and data is transmitted / received via eight data lines. However, in FIG. 4, for convenience of description, only two of the eight are illustrated, and the remaining six transmission / reception circuits are omitted. Similarly, only two of the eight data lines are described, and the remaining six lines are omitted.
  • FIG. 5 is a circuit diagram showing a configuration example of the clock enable transmission unit 325 and the clock transmission unit 335 according to the first embodiment.
  • a is a circuit diagram showing a configuration example of the clock enable transmission unit 325
  • b in the figure is a circuit diagram showing a configuration example of the clock transmission unit 335.
  • the clock enable transmission unit 325 includes an inverter 326, a flip-flop 327, and a driver 328.
  • the inverter 326 inverts the clock signal CLK_ctrl and supplies it to the flip-flop 327.
  • the flip-flop 327 holds the clock enable signal EN in synchronization with the inverted clock signal CLK_ctrl and outputs it to the driver 328.
  • the driver 328 transmits the clock enable signal EN to the nonvolatile memory 400 via the terminal 381.
  • the configurations of the chip select transmission unit 330, the command address transmission unit 331, the data transmission unit 341, and the data transmission unit 371 are the same as those of the clock enable transmission unit 325.
  • the clock transmission unit 335 includes a buffer 336, a flip-flop 337, and a driver 338.
  • the buffer 336 supplies the clock signal CLK_if to the flip-flop 337.
  • the flip-flop 337 holds the base clock signal CK in synchronization with the clock signal CLK_ctrl and outputs it to the driver 338.
  • the driver 338 transmits the base clock signal CK to the nonvolatile memory 400 via the terminal 384.
  • the configuration of the strobe transmission unit 340 is the same as that of the clock transmission unit 335.
  • FIG. 6 is a block diagram illustrating a configuration example of the data receiving unit 350 according to the first embodiment.
  • the data receiving unit 350 includes receivers 351 and 352, a delay synchronization circuit 353, a serial / parallel conversion unit 354, and a clock transfer unit 358.
  • the receiver 351 receives the strobe signal DQS, the preamble signal, and the postamble signal via the terminal 385.
  • the preamble signal is a signal that is output prior to data output.
  • a low-level signal is output as a preamble signal over one clock period of the clock signal CLK_ctrl.
  • the postamble signal is a signal that is output after the data is output.
  • a low-level signal is output over a period of 1.5 clocks of the clock signal CLK_ctrl.
  • the receiver 351 receives the strobe signal DQS between the time when the preamble signal is detected and the time when the postamble signal is detected, and supplies the strobe signal DQS to the delay synchronization circuit 353.
  • the delay synchronization circuit 353 shifts the phase of the strobe signal DQS by 90 degrees.
  • the delay synchronization circuit 353 supplies the phase-shifted strobe signal DQSd to the serial / parallel conversion unit 354 and the clock transfer unit 358.
  • the receiver 352 receives valid data DQ.
  • the receiver 352 supplies the received data DQ to the serial / parallel conversion unit 354.
  • the data DQ is data transferred by a DDR (Double-Data-Rate) method, and is transferred in synchronization with the rising edge of the strobe signal and transferred in synchronization with the falling edge of the signal. Data.
  • DDR Double-Data-Rate
  • the serial / parallel converter 354 divides the data DQ into data transferred in synchronization with the rising edge of the signal and data transferred in synchronization with the falling edge in synchronization with the strobe signal DQSd. .
  • the serial / parallel conversion unit 354 supplies each of the divided data to the clock transfer unit 358.
  • the clock transfer unit 358 holds each of the data divided by the serial / parallel conversion unit 354 in a holding unit such as a flip-flop in synchronization with the strobe signal DQSd, and reads out the data in synchronization with the clock signal CLK_ctrl.
  • the clock transfer unit 358 supplies the read data to the ECC processing unit 304 via the bus 306.
  • FIG. 7 is a circuit diagram showing a configuration example of the serial-parallel conversion unit 354 and the clock transfer unit 358 in the first embodiment.
  • the serial-parallel converter 354 includes flip-flops 355, 356, and 357.
  • the clock transfer unit 358 includes switches 359 and 364, flip-flops 360, 361, 363, 365, 366, 368, and 369, an inverter 369-1, and selectors 362 and 367. Note that the flip-flops 355, 356, and 357 and the flip-flops 360, 361, 363, 365, 366, and 368 are examples of the holding unit described in the claims.
  • the flip-flop 355 holds the data DQ as data DA in synchronization with the strobe signal DQSd and outputs it to the flip-flop 356.
  • the flip-flop 356 holds the data DA as data DB0 in synchronization with the inverted strobe signal DQSd and outputs the data DA to the switch 359.
  • This data DB0 is data transferred in synchronization with the rising edge of the strobe signal.
  • the flip-flop 357 holds the data DA as data DB1 in synchronization with a signal obtained by inverting the strobe signal DQSd and outputs the data DA to the switch 364.
  • This data DB1 is data transferred in synchronization with the fall of the strobe signal.
  • the switch 359 switches the output destination of the data DB0 between the flip-flops 360 and 361 in synchronization with the strobe signal DQSd. For example, every time one cycle of the strobe signal DQSd elapses, the output destination of the data DB0 is switched.
  • the flip-flop 360 holds the data DB0 from the switch 359 as data DC00 in synchronization with the strobe signal DQSd and supplies it to the selector 362.
  • the flip-flop 361 holds the data DB0 from the switch 359 as data DC01 in synchronization with the inverted strobe signal DQSd and supplies it to the selector 362.
  • the flip-flop 369 holds the selector control signal SEL_ctrl in synchronization with the rising edge of the clock signal CLK_ctrl.
  • the flip-flop 369-1 supplies the selector control signal SEL_ctrl to the selectors 362 and 367 and the inverter 369-1.
  • the inverter 369-1 inverts the selector control signal SEL_ctrl from the output terminal of the flip-flop 369 and supplies it to the input terminal of the flip-flop 369.
  • the selector 362 selects one of the data DC00 and DC01 according to the selector control signal SEL_ctrl and outputs it to the flip-flop 363. By this selector control signal SEL_ctrl, the selector 362 switches the data to be selected every time the clock cycle of the clock signal CLK_ctrl elapses, for example.
  • the flip-flop 363 holds the data from the selector 362 as data DD0 in synchronization with the clock signal CLK_ctrl and outputs it to the bus 306.
  • the switch 364 switches the output destination of the data DB1 between the flip-flops 365 and 366 in synchronization with the one-cycle strobe signal DQSd. For example, every time one cycle of the strobe signal DQSd elapses, the output destination of the data DB1 is switched.
  • the flip-flop 365 holds the data DB1 from the switch 364 as data DC10 in synchronization with the strobe signal DQSd and supplies it to the selector 367.
  • the flip-flop 366 holds the data DB1 from the switch 364 as data DC11 in synchronization with the inverted strobe signal DQSd and supplies it to the selector 367.
  • the selector 367 selects one of the data DC10 and DC11 in accordance with the selector control signal SEL_ctrl and outputs the selected data to the flip-flop 368. With this selector control signal SEL_ctrl, the selector 367 switches data to be selected every time the clock cycle of the clock signal CLK_ctrl elapses, for example.
  • the flip-flop 368 holds the data from the selector 367 as data DD1 in synchronization with the clock signal CLK_ctrl and outputs it to the bus 306.
  • the data receiving unit 350 is provided with a plurality of stages of flip-flops (355, 356, 360, etc.). These flip-flops hold data in order in synchronization with the strobe signal DQSd. For this reason, when the strobe signal DQSd having the same number of cycles as the number of data DQ is supplied, the last transmitted data DQ is not held in the final flip-flop (360, etc.), and is not stored in the previous flip-flop. It will remain accumulated. However, the strobe signal having the cycle number E is further transmitted by the strobe issue command. For this reason, the data accumulated in the previous stage is pushed out to the flip-flop at the final stage by these extra strobe signals, and the data receiving unit 350 can capture all the data. As the number of cycles E, a larger constant value is set in advance as the number of stages of flip-flops operating in synchronization with the strobe signal increases.
  • FIG. 8 is a block diagram illustrating a configuration example of the nonvolatile memory 400 according to the first embodiment.
  • the nonvolatile memory 400 includes a data buffer 401, a memory cell array 402, a driver 403, an address decoder 404, a bus 405, a memory side interface circuit 410, and a memory control unit 480.
  • the data buffer 401 holds write data and read data in units of access under the control of the memory control unit 480.
  • the memory cell array 402 includes a plurality of memory cells arranged in a matrix. A nonvolatile memory element is used as each memory cell. Specifically, NAND-type or NOR-type flash memory, ReRAM, PCRAM, MRAM, or the like is used as a storage element.
  • the driver 403 writes data to or reads data from the memory cell selected by the address decoder 404.
  • the address decoder 404 analyzes an address designated by the command and selects a memory cell corresponding to the address.
  • the bus 405 is a common path for the data buffer 401, the memory cell array 402, the address decoder 404, the memory control unit 480, and the memory side interface circuit 410 to exchange data with each other.
  • the memory side interface circuit 410 is an interface for the memory controller 300 and the nonvolatile memory 400 to transmit and receive data and commands. When the memory-side interface circuit 410 transmits read data including data DQ to the memory controller 300, the memory-side interface circuit 410 transmits a strobe signal having a cycle number larger than the number of data DQ and the data DQ in synchronization.
  • the memory control unit 480 controls the driver 403 and the address decoder 404 to write or read data. Further, the memory control unit 480 issues a strobe signal and supplies it to the memory side interface circuit 410.
  • FIG. 9 is a block diagram illustrating a configuration example of the memory-side interface circuit 410 according to the first embodiment.
  • the memory-side interface circuit 410 includes a clock enable receiving unit 415, a chip select receiving unit 420, a command address receiving unit 425, and a receiver 430.
  • the memory side interface circuit 410 includes a strobe transmission unit 435, a data transmission unit 440, a data reception unit 450, a data transmission unit 460, a data reception unit 461, and terminals 471 to 477.
  • the clock enable receiving unit 415 receives the clock enable signal EN through a signal line connected to the terminal 471 in synchronization with the base clock signal CK.
  • the chip select receiver 420 receives the chip select signal CS through a signal line connected to the terminal 472 in synchronization with the base clock signal CK.
  • the command address receiving unit 425 receives a command and an address CA in synchronization with the base clock signal CK via a command address line connected to the terminal 473.
  • the receiver 430 receives the base clock signal CK through a signal line connected to the terminal 474.
  • the base clock signal CK is set to be valid or invalid according to the clock enable signal EN and is supplied to each circuit in the memory side interface circuit 410.
  • the strobe transmission unit 435 transmits the strobe signal DQS to the memory controller 300 via the strobe line connected to the terminal 475 in synchronization with the base clock signal CK.
  • the data transmission unit 440 transmits the data DQ obtained by dividing the read data for each transmission unit to the memory controller 300 via the data line connected to the terminal 476 in synchronization with the base clock signal CK.
  • the strobe transmission unit 435 and the data transmission unit 440 transmit the data DQ and the strobe signal DQS in synchronization.
  • the data DQ is an example of unit data described in the claims.
  • the data receiving unit 450 receives data DQ through a data line connected to the terminal 476 in synchronization with the base clock signal CK.
  • the data transmission unit 460 has the same configuration as the data transmission unit 440 except that the data transmission unit 460 transmits data via a data line connected to the terminal 477.
  • the data receiving unit 461 has the same configuration as the data receiving unit 450 except that the data receiving unit 461 receives data via a data line connected to the terminal 477.
  • FIG. 10 is a circuit diagram showing a configuration example of the clock enable reception unit 415 and the strobe transmission unit 435 in the first embodiment.
  • a is a circuit diagram showing a configuration example of the clock enable receiving unit 415.
  • B in the figure is a circuit diagram showing a configuration example of the strobe transmission unit 435.
  • the clock enable receiving unit 415 includes a receiver 416 and a flip-flop 417.
  • the receiver 416 receives the clock enable signal EN and supplies it to the flip-flop 417.
  • the flip-flop 417 holds the clock enable signal in synchronization with the base clock signal CK and outputs it to the bus 405.
  • the configurations of the chip select receiving unit 420 and the command address receiving unit 425 are the same as those of the clock enable receiving unit 415.
  • the strobe transmission unit 435 includes a driver 436, a selector 437, and a flip-flop 438.
  • the driver 436 adds a preamble signal and a postamble signal to the head and tail of the strobe signal DQS, and transmits them to the memory controller 300 in order.
  • the selector 437 switches the signal from the flip-flop 437 and “0” according to the base clock signal CK, and transmits it to the driver 436.
  • the flip-flop 437 holds the strobe signal DQS issued by the memory control unit 480 in synchronization with the base clock signal CK and outputs it to the selector 436.
  • the configuration of the data transmission units 440 and 460 is the same as that of the strobe transmission unit 435.
  • FIG. 11 is a circuit diagram illustrating a configuration example of the data receiving unit 450 according to the first embodiment.
  • the data receiving unit 450 includes receivers 451 and 454 and flip-flops 452, 453, 455, and 456.
  • the receiver 451 receives the strobe signal DQS via the strobe line.
  • the receiver 454 receives the data DQ and supplies it to the flip-flops 452 and 455.
  • the flip-flop 452 holds the data DQ from the memory controller 300 in synchronization with the strobe signal DQS and supplies it to the flip-flop 453.
  • the flip-flop 453 holds the data DQ in synchronization with the base clock signal CK and outputs it to the bus 405. These flip-flops 452 and 453 hold the data transferred in synchronization with the rise of the strobe signal.
  • the flip-flop 455 holds the data DQ from the memory controller 300 in synchronization with the inverted strobe signal DQS and supplies it to the flip-flop 456.
  • the flip-flop 456 holds the data DQ in synchronization with the inverted base clock signal CK and outputs it to the bus 405.
  • These flip-flops 455 and 456 hold the data transferred in synchronization with the fall of the strobe signal.
  • FIG. 12 is a block diagram illustrating a configuration example of the memory control unit 480 according to the first embodiment.
  • the memory control unit 480 includes a command buffer 481, a command decoder 482, an access control unit 483, and a strobe signal issuing unit 484.
  • the command buffer 481 holds commands in the order received.
  • the command decoder 482 decodes commands.
  • the command decoder 482 reads an unprocessed command from the command buffer 481 and decodes it, and deletes the decoded command from the command buffer 481. Further, the command decoder 482 supplies the access command decoding result to the access control unit 483 and supplies the strobe issue command decoding result to the strobe signal issuing unit 484.
  • the access control unit 483 controls the driver 403 and the address decoder 404 based on the decoding result of the access command, and causes data to be written or read. Further, the access control unit 483 supplies information (such as the data size of read data) necessary for obtaining the number of issued strobe signals to the strobe signal issuing unit 484.
  • the strobe signal issuing unit 484 issues a strobe signal.
  • the strobe signal issuing unit 484 acquires the number of data DQ obtained by dividing the read data in transmission units based on information from the access control unit, and issues a strobe signal having the same number of cycles as that number. Also, the strobe signal issuing unit 484 issues a strobe signal having the number of cycles E according to the decoding result of the strobe issue command.
  • the issued strobe signal is supplied to the memory side interface circuit 410 via the bus 405.
  • FIG. 13 is a flowchart illustrating an example of the operation of the storage 200 according to the first embodiment. This operation starts, for example, when the storage 200 is turned on.
  • the memory controller 300 initializes the nonvolatile memory 400 (step S901), and determines whether or not data writing is requested by a write request (step S903). When data writing is requested (step S903: Yes), the memory controller 300 issues a write command (step S904), and the nonvolatile memory 400 writes data according to the write command (step S905).
  • step S903 when data read is requested by a read request (step S903: No), the storage 200 performs a read process (step S910). After step S905 or S910, the storage 200 returns to step S903.
  • FIG. 14 is a flowchart illustrating an example of a read process according to the first embodiment.
  • the memory controller 300 issues a read command in response to the read request (step S911).
  • the nonvolatile memory 400 reads data according to the read command and transmits a preamble signal (step S912). Then, the nonvolatile memory 400 transmits the data and the strobe signal in synchronization (step S913).
  • the nonvolatile memory 400 determines whether there is data to be transmitted next (step S914). If there is data to be transmitted next (step S914: Yes), the nonvolatile memory 400 returns to step S913. On the other hand, if there is no data to be transmitted next (step S914: No), the nonvolatile memory 400 transmits a postamble signal (step S915).
  • the memory controller 300 that has received the postamble signal issues a strobe issue command (step S916).
  • the non-volatile memory 400 transmits a preamble signal (step S917), transmits a strobe signal with the number of cycles E without valid data (step S918), and transmits a postamble signal (step S919).
  • step S919 the storage 200 ends the read process.
  • FIG. 15 is a timing chart illustrating an example of timing at which the memory controller 300 according to the first embodiment transmits and receives signals.
  • a is a timing chart at timings T0 to T10
  • b in the figure is a timing chart after timing T10.
  • the memory controller 300 sets the chip select signal to a low level (valid) and issues a read command in response to a read request. After issuing the read command, the chip select signal is set to high level (invalid).
  • the nonvolatile memory 400 reads the read data in accordance with the read command, and transmits a preamble signal through the strobe line at timing T4. Then, at timings T5 to T9, the nonvolatile memory 400 transmits four valid data and a four-cycle strobe signal in synchronization, and transmits a postamble signal at timing T10.
  • Each of these data includes data transferred at the rising edge of the strobe signal and data transferred at the falling edge.
  • the four data include eight data of dt0 to dt7.
  • the data size of each of dt0 to dt7 is 8 bits.
  • Dt0, dt2, dt6, and dt8 are transferred in synchronization with the rising edge of the strobe signal, and the remaining data are transferred in synchronization with the falling edge. Therefore, data is transferred in units of 16 bits in synchronization with the strobe signal.
  • the memory controller 300 that has received the postamble signal issues a strobe issue command with the chip select signal set to low level at timing T11.
  • the nonvolatile memory 400 transmits a preamble signal in response to the strobe issue command at timing T14, and transmits a 2-cycle strobe signal at timings T15 and T16. Then, the nonvolatile memory 400 transmits a postamble signal at timing T17.
  • the shaded portion indicates invalid data. “HiZ” indicates a high impedance state.
  • the nonvolatile memory 400 transmits a strobe signal having a number of cycles larger than the number of valid data to the memory controller 300.
  • FIG. 16 is a timing chart showing an example of timing at which the memory controller 300 and the nonvolatile memory 400 in the first embodiment transmit and receive signals. For example, it is assumed that eight data of dt0 to dt7 are sequentially transmitted in synchronization with the strobe signal DQS.
  • the flip-flop 355 sequentially holds the data dt0, dt2, dt4, and dt6 at timings t2, t6, t10, and t14. Then, the subsequent flip-flop 356 sequentially holds the data dt0, dt2, dt4, and dt6 from the flip-flop 356 at timings t4, t8, t12, and t16. On the other hand, flip-flop 357 holds data dt1, dt3, dt5, and dt7 in order at timings t4, t8, t12, and t16.
  • the flip-flop 360 subsequent to the flip-flop 356 holds the data dt0 and dt4 in order at the timings t6 and t14.
  • the flip-flop 361 holds the data dt2 at the timing t12.
  • the transmission of the 4-cycle strobe signal is completed.
  • the last dt6 is not held in the flip-flop 361 at the final stage.
  • the nonvolatile memory 400 transmits extra strobe signals at timings t16 and t20. With these strobe signals, the last data dt6 is pushed out at timing t20 and held in the flip-flop 361 at the final stage. Accordingly, all of the data dt0, dt2, dt4, and dt6 are sequentially output to the subsequent flip-flop 363.
  • the flip-flop 365 subsequent to the flip-flop 357 holds the data dt1 and dt5 in order at the timings t6 and t14.
  • the flip-flop 366 holds the data dt3 at the timing t12.
  • the last dt7 of the data dt1, dt3, dt5, and dt7 is not held in the flip-flop 366 at the final stage.
  • the non-volatile memory 400 transmits extra strobe signals at timings t16 and t20, the last data dt7 is pushed out and held in the flip-flop 361 at the final stage at timing t20. Accordingly, all of the data dt1, dt3, dt5, and dt7 are sequentially output to the subsequent flip-flop 368.
  • FIG. 17 is a timing chart showing an example of the timing at which the memory controller in the comparative example of the first embodiment holds data.
  • a strobe signal having the same number of cycles as the number of valid data is transmitted from the nonvolatile memory 400.
  • the last data dt6 is not held in the flip-flop 361 but remains in the previous flip-flop 356 at the timing T16 when the transmission of the four-cycle strobe signal is completed.
  • the last data dt7 is not held in the flip-flop 365 but remains in the previous flip-flop 357. For this reason, the last data dt6 and dt7 are not output to the subsequent flip-flops 363 and 368, and the memory controller 300 cannot capture all data in synchronization with the clock signal.
  • the memory controller 300 since the nonvolatile memory 400 transmits the strobe signal having the number of cycles larger than the number of data and the data in synchronization with each other, the memory controller 300 includes a plurality of stages. All of the data can be held and captured by the holding unit.
  • the memory controller 300 and the nonvolatile memory 400 transfer data by the DDR method, but may transfer data by a single-data-rate (SDR) method.
  • the memory controller 300 and the nonvolatile memory 400 according to the modification of the first embodiment are different from the first embodiment in that data is transferred by the SDR method.
  • FIG. 18 is a block diagram illustrating a configuration example of the data receiving unit 350 according to the modification of the first embodiment.
  • the data receiving unit 350 according to the modification is different from the first embodiment in that flip-flops 355 and 356 are provided instead of the serial / parallel conversion unit 354.
  • the clock transfer unit 358 of the modified example is different from the first embodiment in that only flip-flops 360 and 363 are provided.
  • the flip-flop 360 is provided at the subsequent stage of the flip-flop 356, and the flip-flop 363 is provided at the subsequent stage of the flip-flop 360. These flip-flops hold data in synchronization with the rising edge of the strobe signal.
  • the nonvolatile memory 400 transmits data in synchronization with the rising edge of the strobe signal having the number of cycles larger than the number of data, so that it is simpler than the case of transmitting in synchronization with the rising edge and falling edge.
  • Data can be transmitted and received by a circuit having a different configuration.
  • the nonvolatile memory 400 issues an extra strobe signal in accordance with a strobe issue command.
  • the nonvolatile memory 400 may issue an extra strobe signal without receiving the strobe issue command.
  • the non-volatile memory 400 of the second embodiment differs from the first embodiment in that it does not receive a strobe issue command.
  • FIG. 19 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the second embodiment.
  • the memory controller 300 according to the second embodiment is different from the first embodiment in that it does not include the strobe issue instruction unit 312.
  • FIG. 20 is a block diagram illustrating a configuration example of the memory control unit 480 according to the second embodiment.
  • the memory control unit 480 according to the second embodiment is different from the first embodiment in that a strobe signal issuing unit 485 is provided instead of the strobe signal issuing unit 484.
  • the strobe signal issuing unit 485 generates a strobe signal having a number of cycles larger than the number of data based on the information from the access control unit 483. For example, when the number of cycles of the extra strobe signal to be issued is set to “2” and the number of data is “4”, a six-cycle strobe signal is issued.
  • FIG. 21 is a flowchart illustrating an example of a read process according to the second embodiment.
  • the read process according to the second embodiment is different from the first embodiment in that steps S915 to S917 are not executed.
  • FIG. 22 is a timing chart showing an example of timing at which the memory controller 300 and the nonvolatile memory 400 in the second embodiment transmit and receive signals.
  • a is a timing chart at timings T0 to T9
  • b in the figure is a timing chart after timing T9.
  • the memory controller 300 issues a read command in response to a read request.
  • the nonvolatile memory 400 reads the read data according to the read command, and transmits a preamble signal at timing T4. Then, at timings T5 to T8, the nonvolatile memory 400 transmits four valid data and a four-cycle strobe signal in synchronization.
  • the nonvolatile memory 400 transmits invalid data and a 2-cycle strobe signal, and transmits a postamble signal at timing T11.
  • the non-volatile memory 400 transmits the strobe signal having the cycle number E after transmitting the strobe signal and data having the same cycle number as the data number. No need to issue.
  • the non-volatile memory 400 transmits the strobe signal having the cycle number E after all the data is transmitted. However, the non-volatile memory 400 transmits the extra strobe signal within the non-transmission period in which the transmission of the read data is interrupted. You may send it.
  • the nonvolatile memory 400 according to the modification of the second embodiment is different from the second embodiment in that an extra strobe signal is transmitted within a non-transmission period.
  • FIG. 23 is a flowchart showing an example of the read process in the modification of the second embodiment.
  • the read processing according to the modified example is different from the second embodiment in that steps S921 and S922 are further executed.
  • step S914 when there is no data to transmit data (step S914: No), the nonvolatile memory 400 repeatedly transmits a strobe signal until the number of cycles reaches a predetermined number E (for example, “2”) (step S921). . Then, the nonvolatile memory 400 determines whether or not there is an unprocessed read command in the command buffer 481 (step S922). If there is an unprocessed read command (step S922: Yes), the nonvolatile memory 400 returns to step S914.
  • a predetermined number E for example, “2”
  • step S922 determines that the transfer of all data has been completed and transmits a postamble signal (step S919).
  • FIG. 24 is a timing chart showing an example of timings at which the memory controller 300 and the nonvolatile memory 400 in the modified example of the second embodiment transmit and receive signals.
  • a is a timing chart at timings T21 to T32
  • b in the figure is a timing chart after timing T32.
  • the memory controller 300 issues a read command CMD1 in response to the read request.
  • the nonvolatile memory 400 reads the read data RD1 in accordance with the read command CMD1, and transmits a preamble signal at timing T24. At timings T25 to T27, the nonvolatile memory 400 transmits the read data RD1 and the strobe signal in synchronization.
  • the memory controller 300 issues a read command CMD2 at timing T26.
  • the nonvolatile memory 400 reads the read data RD2 in accordance with the read command CMD2, and transmits the read data RD2 and the strobe signal in synchronization at timings T28 to T30.
  • the memory controller 300 issues a read command CMD3 at timing T31.
  • a read command CMD3 At timing T31, since the decoding of the read command CMD3 has not been completed, data transmission is interrupted. During this data non-transmission period, the nonvolatile memory 400 transmits invalid data and a strobe signal.
  • the nonvolatile memory 400 reads the read data RD3 according to the read command CMD3, and transmits the read data RD3 and the strobe signal in synchronization at timings T32 to T35.
  • the memory controller 300 issues a read command CMD4 at timing T36. During the period from the timing T36 to T39, data corresponding to the read command CMD4 is not read, and the data is interrupted. In this data non-transmission period, the non-volatile memory 400 repeatedly transmits a strobe signal until two cycles are reached. The nonvolatile memory 400 reads the read data RD4 according to the read command CMD4, and transmits the read data RD4 and the strobe signal in synchronization at timings T39 to T41.
  • the nonvolatile memory 400 transmits the strobe signal during the data non-transmission period, so that it is possible to suppress a decrease in the data transfer rate.
  • the non-volatile memory 400 sets the number of cycles E of extra strobe signals to be issued to a constant value.
  • the number of cycles may be changed under the control of the memory controller 300.
  • the extra number of cycles E can be obtained from the number of flip-flop stages when the memory controller 300 is mounted. For example, when a part of the circuit is provided from another company or a design change is made. Therefore, it is necessary to change the value of the cycle number E.
  • the nonvolatile memory 400 according to the third embodiment is different from the first embodiment in that the value of the cycle number E is changed according to the control of the memory controller.
  • FIG. 25 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the third embodiment.
  • the memory controller 300 of the third embodiment is different from the first embodiment in that it further includes a calibration processing unit 313.
  • the calibration processing unit 313 performs a calibration process for adjusting the impedance and timing of the data line in response to a calibration request from the host computer 100.
  • the calibration processing unit 313 issues a calibration command for requesting output of specific pattern data for performing calibration.
  • a calibration command For example, an MRR (Mode / Register / Read) command in the LPDDR (Low / Power / Double / Data Rate) 2 standard is issued as a calibration command.
  • the calibration command describes the number of cycles of the strobe signal to be issued extra. For this reason, the memory controller 300 can set the number of extra cycles E to be issued by the calibration command.
  • the minimum value that can be set to E is “0”.
  • the calibration command is an example of a setting command described in the claims.
  • FIG. 26 is a block diagram illustrating a configuration example of the memory control unit 480 according to the third embodiment.
  • the memory control unit 480 of the third embodiment differs from the first embodiment in that it further includes a strobe issue number register 486 and an adjustment pattern generation unit 487.
  • the strobe issue number register 486 holds the set cycle number E.
  • the strobe issue number register 486 holds the cycle number E extracted by decoding the calibration command. The held value is valid until the nonvolatile memory 400 is restarted and initialized.
  • the strobe signal issuing unit 484 of the third embodiment reads the cycle number E held in the strobe issue number register 486 and issues an extra strobe signal of that cycle number.
  • the storage 200 can perform startup processing in the same procedure as before.
  • the register may be updated by a command other than the calibration command.
  • the adjustment pattern generation unit 487 generates pattern data for calibration as an adjustment pattern in accordance with a calibration command.
  • FIG. 27 is a flowchart illustrating an example of the operation of the storage 200 according to the third embodiment.
  • the operation of the storage 200 of the third embodiment is different from that of the first embodiment in that step S902 is further executed.
  • the memory controller 300 after initialization of the nonvolatile memory 400 (step S901), sets the number of cycles of the strobe signal to be issued extra along with calibration (step S902). Then, the storage 200 performs the processing after step S903.
  • the memory controller 300 since the memory controller 300 sets the number of cycles of the extra strobe signal to be issued by the calibration command, the number of cycles of the extra strobe signal is changed to an arbitrary value. can do.
  • the number of cycles E of extra strobe signals to be issued is set to a constant value, but the number of cycles E may be obtained by transmitting and receiving known pattern data.
  • the extra number of cycles required can be obtained from the number of flip-flop stages when the memory controller 300 is mounted. For example, when a part of the circuit is provided from another company or a design change is made, It is necessary to check the number of cycles required.
  • the nonvolatile memory 400 according to the fourth embodiment is different from the first embodiment in that the number of extra cycles E to be issued is obtained by transmitting and receiving pattern data.
  • FIG. 28 is a block diagram illustrating a functional configuration example of the memory controller 300 according to the fourth embodiment.
  • the memory controller 300 according to the fourth embodiment is different from the first embodiment in that it further includes a strobe issue number setting unit 314.
  • the strobe issue number setting unit 314 calculates and sets the number of extra strobe signal cycles required.
  • the strobe issue number setting unit 314 issues a measurement start command in response to a strobe issue number setting request from the host computer 100.
  • This measurement start command is a command for instructing the nonvolatile memory 400 to transmit known pattern data as a measurement pattern.
  • the non-volatile memory 400 transmits s pieces of data DQ obtained by dividing the measurement pattern in transmission units in synchronization with the strobe signal in accordance with the measurement start command.
  • the controller side interface circuit 320 receives the data DQ obtained by dividing the measurement pattern in synchronization with the strobe signal.
  • the strobe issue number setting unit 314 calculates the difference between the number r of received data DQ and s as the required number of cycles. For example, when the number s of transmitted data DQ is “10” and the received number r is “8”, “2” is calculated as the necessary cycle number E. Then, the strobe issue number setting unit 314 issues and transmits an issue number setting command for setting the calculated cycle number E.
  • FIG. 29 is a block diagram illustrating a configuration example of the memory control unit 480 according to the fourth embodiment.
  • the memory control unit 480 of the fourth embodiment differs from the first embodiment in that it further includes a strobe issue number register 486 and a measurement pattern generation unit 488.
  • the strobe issue number register 486 holds the cycle number obtained by decoding the issue number setting command.
  • the measurement pattern generation unit 488 generates a measurement pattern based on the decoding result of the measurement start command and supplies the measurement pattern to the memory-side interface circuit 410 via the bus 405.
  • FIG. 30 is a flowchart illustrating an example of the operation of the storage 200 according to the fourth embodiment.
  • the operation of the storage 200 of the fourth embodiment differs from that of the first embodiment in that a strobe issue number setting process (step S930) is executed after the initialization of the nonvolatile memory 400 (step S901).
  • FIG. 31 is a flowchart illustrating an example of a strobe issue number setting process in the fourth embodiment.
  • the memory controller 300 issues and transmits a measurement start command in response to the strobe issue number setting request (step S931).
  • the non-volatile memory 400 generates a measurement pattern in accordance with the measurement start command, and transmits the measurement pattern divided in transmission units (step S932).
  • the memory controller 300 receives the data from the non-volatile memory 400, and calculates the required number of issued strobe signals E from the number s transmitted by the non-volatile memory 400 and the number r received by the memory controller 300 (step S933).
  • the memory controller 300 issues and transmits an issuance number setting command for setting the calculated number (step S934), and the nonvolatile memory 400 sets an extra number of cycles E to be issued in accordance with the issuance number setting command (step S934). Step S935).
  • FIG. 32 is a timing chart illustrating an example of timing at which the memory controller 300 and the nonvolatile memory 400 in the fourth embodiment transmit and receive signals.
  • the nonvolatile memory 400 When the memory controller 300 transmits a measurement start command at timing T50, the nonvolatile memory 400 generates a measurement pattern according to the measurement start command.
  • the nonvolatile memory 400 transmits a preamble signal at timing T53, and transmits data PT0 to PT9 obtained by dividing the measurement pattern in synchronization with the strobe signal at timings T54 to T56. Then, at timing T57, the nonvolatile memory 400 transmits a postamble signal.
  • the memory controller 300 sets the difference between the received number r of PT0 to PT9 and the transmitted number s as the necessary cycle number E.
  • the memory controller 300 sets the difference between the number of data transmissions and the number of receptions obtained by dividing the measurement pattern as the number of cycles of the strobe signal.
  • the number of cycles can be accurately determined and set.
  • the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute these series of procedures or a recording medium storing the program. You may catch it.
  • a recording medium for example, a CD (Compact Disc), an MD (MiniDisc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc), or the like can be used.
  • this technique can also take the following structures.
  • a memory-side interface circuit that sequentially transmits a first periodic signal having a number of cycles larger than the number of unit data obtained by dividing read data read from a memory cell for each predetermined unit and the unit data in order.
  • a controller-side interface that sequentially holds the transmitted unit data in a plurality of stages of holding units in synchronization with the first periodic signal, and sequentially reads out and outputs the held unit data in synchronization with a second periodic signal An interface circuit.
  • the controller-side interface circuit transmits a read command instructing reading of the read data to the memory-side interface circuit
  • the memory-side interface circuit reads the read data in accordance with the read command and sequentially transmits the first periodic signal having the same number of cycles as the number of unit data and the unit data in synchronization with each other
  • the controller-side interface circuit transmits a periodic signal transmission command for instructing transmission of the first periodic signal to the memory-side interface circuit after transmitting the read command,
  • the controller-side interface circuit transmits a read command for instructing reading of the read data to the memory-side interface circuit,
  • the memory-side interface circuit reads the read data in accordance with the read command, sequentially transmits the first periodic signal having the same number of cycles as the number of unit data and the unit data, and sequentially transmits the predetermined data.
  • the interface circuit according to (1) wherein the first periodic signal having the number of cycles is transmitted.
  • the memory-side interface circuit In the non-transmission period in which the read data is not transmitted, the memory-side interface circuit repeatedly transmits the first periodic signal until the number of cycles transmitted in the non-transmission period reaches the predetermined number of cycles.
  • the controller-side interface circuit transmits a start command instructing transmission of a predetermined number of pattern data to the memory-side interface circuit,
  • the memory-side interface circuit synchronizes the first cycle signal having the same number of cycles as the predetermined number and the pattern data in accordance with the start command and transmits the pattern data to the controller-side interface circuit,
  • the controller-side interface circuit sequentially holds the transmitted pattern data in the plurality of stages of holding units in synchronization with the first periodic signal, and the held pattern data in synchronization with the second periodic signal.
  • the unit data includes first and second data
  • the memory-side interface circuit transmits the first data in synchronization with the rising edge of the first periodic signal, and transmits the second data in synchronization with the falling edge of the first periodic signal.
  • the interface circuit according to any one of (1) to (6).
  • a storage device comprising: an interface circuit that sequentially transmits a periodic signal having a cycle number larger than the number of unit data obtained by dividing read data read from the memory cell for each predetermined unit and the unit data in order.
  • a memory cell a memory cell; A memory-side interface circuit for sequentially transmitting the unit data in synchronization with the first periodic signal having a number of cycles larger than the number of unit data obtained by dividing the read data read from the memory cell for each predetermined unit; A controller-side interface that sequentially holds the transmitted unit data in a plurality of stages of holding units in synchronization with the first periodic signal, and sequentially reads out and outputs the held unit data in synchronization with a second periodic signal An information processing system comprising a circuit. (10) The memory-side interface circuit sequentially synchronizes the first period signal having the number of cycles larger than the number of unit data obtained by dividing the read data read from the memory cell for each predetermined unit with the unit data.
  • the controller-side interface circuit sequentially holds the transmitted unit data in a plurality of stages of holding units in synchronization with the first periodic signal, and sequentially reads out the held unit data in synchronization with the second periodic signal And a reception procedure for outputting the output.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Dram (AREA)

Abstract

 メモリとメモリコントローラとの間でデータを正確に転送する。 メモリ側インターフェース回路は、メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と単位データとを同期させて順に送信する。コントローラ側インターフェース回路は、送信された単位データを周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して保持した単位データを順に読み出して出力する。

Description

インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法
 本技術は、インターフェース回路、記憶装置、情報処理装システム、および、インターフェース回路の制御方法に関する。詳しくは、ストローブ信号に同期してデータを送受信するインターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法に関する。
 近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ(NVM:Non-Volatile memory)が用いられることがある。この不揮発性メモリは、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistance RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。
 これらの不揮発性メモリは、一般にストローブ信号に同期してデータをメモリコントローラに転送する。そして、メモリコントローラは、不揮発性メモリからのデータを、ストローブ信号に同期してフリップフロップなどに保持し、保持したデータを内部クロック信号に同期して取り込んで処理する。
 ここで、メモリコントローラの内部クロック信号に同期して信号を取り込む場合には、例えば、ストローブ信号に同期して複数段のフリップフロップにデータを保持してから取り込む方法が用いられる。このように複数段のフリップフロップにデータを保持する構成では、ストローブ信号のサイクル数がデータ数と同じであると、フリップフロップの最終段から、全てのデータが出力されなくなるおそれがある。この場合、メモリコントローラは、一部のデータを取り込むことができなくなってしまう。そこで、データを全て取り込むことができるように、ストローブ信号の遅延時間を調整する遅延制御回路を設けたメモリコントローラが提案されている(例えば、特許文献1参照。)。
特開2006-12363号公報
 しかしながら、上述の従来技術では、メモリコントローラとメモリとの間のデータの転送速度が速くなるほど、遅延時間の制御に要求される精度が高くなる。制御の精度を高くする方法としては、例えば、転送周波数より高い周波数のクロック信号を生成する発振回路を設け、そのクロック信号を用いてデータをオーバーサンプリングする方法や、遅延素子の遅延時間を小さくする方法が知られている。オーバーサンプリングを行う場合は、オーバーサンプリングを行う回路や発振回路などをさらに設ける必要があり、回路が複雑になって部品コストや設計コストが高くなってしまう。また、遅延時間の小さい遅延素子を設ける場合には、単位時間遅延させるのに必要な遅延素子の個数が多くなり、同様に部品コストや設計コストが高くなってしまう。特に、FPGA(Field-Programmable Gate Array)により回路を実装する場合には、FPGAベンダーの提供する基本セルを用いる必要があるが、その基本セルの性能は固定である。このため、基本セルの性能に対応する速度よりも転送速度を速くする場合などにおいて、設計が困難となる。したがって、データの転送速度が速くなるほど、遅延時間の制御が困難になり、データを正確に転送することができなくなるおそれがある。
 本技術はこのような状況に鑑みて生み出されたものであり、メモリとメモリコントローラとの間でデータを正確に転送することを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路とを具備するインターフェース回路、および、その制御方法である。これにより、単位データの個数より多いサイクル数の周期信号と上記単位データとが同期して順に送信されるという作用をもたらす。
 また、この第1の側面において、前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、前記コントローラ側インターフェース回路は、前記リードコマンドの送信後に前記第1の周期信号の送信を指示する周期信号送信コマンドを前記メモリ側インターフェース回路へ送信し、前記メモリ側インターフェース回路は、前記周期信号送信コマンドに従って所定のサイクル数の前記第1の周期信号を送信してもよい。これにより、周期信号送信コマンドに従って所定のサイクル数の周期信号が送信されるという作用をもたらす。
 また、この第1の側面において、前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、さらに所定のサイクル数の前記第1の周期信号を送信してもよい。これにより、単位データの個数と同一のサイクル数の周期信号と単位データとが同期して順に送信され、さらに所定のサイクル数の周期信号が送信されるという作用をもたらす。
 また、この第1の側面において、前記メモリ側インターフェース回路は、前記リードデータが送信されない未送信期間において当該未送信期間内に送信したサイクル数が前記所定のサイクル数に達するまで前記第1の周期信号を繰り返し送信してもよい。これにより、未送信期間内に送信したサイクル数が所定のサイクル数に達するまで周期信号が繰り返し送信されるという作用をもたらす。
 また、この第1の側面において、上記コントローラ側インターフェース回路は、上記所定のサイクル数を設定する設定コマンドを上記メモリ側インターフェース回路へ送信してもよい。これにより、所定のサイクル数を設定する設定コマンドが送信されるという作用をもたらす。
 また、この第1の側面において、前記コントローラ側インターフェース回路は、所定数のパターンデータの送信を指示する開始コマンドを前記メモリ側インターフェース回路に送信し、前記メモリ側インターフェース回路は、前記開始コマンドに従って前記所定数と同じサイクル数の前記第1の周期信号と前記パターンデータとを同期させて前記コントローラ側インターフェース回路に送信し、前記コントローラ側インターフェース回路は、前記送信されたパターンデータを前記第1の周期信号に同期して前記複数段の保持部に順に保持し、前記第2の周期信号に同期して前記保持したパターンデータを順に読み出して当該読み出したパターンデータの個数と前記所定数との差を設定する前記設定コマンドを前記メモリ側インターフェース回路へ送信してもよい。これにより、読み出されたパターンデータの個数と所定数との差がサイクル数に設定されるという作用をもたらす。
 また、この第1の側面において、前記単位データは、第1および第2のデータを含み、前記メモリ側インターフェース回路は、前記第1の周期信号の立上りに同期して前記第1のデータを送信し、前記第1の周期信号の立下りに同期して前記第2のデータを送信してもよい。これにより、上記周期信号の立上りに同期して第1のデータが送信され、上記周期信号の立下りに同期して上記第2のデータが送信されるという作用をもたらす。
 また、本技術の第2の側面は、メモリセルと、前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の周期信号と前記単位データとを同期させて順に送信するインターフェース回路とを具備する記憶装置である。これにより、単位データの個数より多いサイクル数の周期信号と単位データとが同期して順に送信されるという作用をもたらす。
 また、本技術の第3の側面は、メモリセルと、前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路とを具備する情報処理システムである。これにより、単位データの個数より多いサイクル数の周期信号と単位データとが同期して順に送信されるという作用をもたらす。
 本技術によれば、メモリとメモリコントローラとの間でデータを正確に転送することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施の形態における情報処理システムの一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第1の実施の形態におけるコントローラ側インターフェース回路の一構成例を示す図である。 第1の実施の形態におけるクロックイネーブル送信部およびクロック送信部の一構成例を示す回路図である。 第1の実施の形態におけるデータ受信部の一構成例を示すブロック図である。 第1の実施の形態におけるシリアルパラレル変換部およびクロック乗せ換え部の一構成例を示す回路図である。 第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。 第1の実施の形態におけるメモリ側インターフェース回路の一構成例を示すブロック図である。 第1の実施の形態におけるクロックイネーブル受信部およびストローブ送信部の一構成例を示す回路図である。 第1の実施の形態におけるデータ受信部の一構成例を示す回路図である。 第1の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第1の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第1の実施の形態におけるリード処理の一例を示すフローチャートである。 第1の実施の形態におけるメモリコントローラおよび不揮発性メモリが信号を送受信するタイミングの一例を示すタイミングチャートである。 第1の実施の形態におけるメモリコントローラがデータを保持するタイミングの一例を示すタイミングチャートである。 第1の実施の形態の比較例におけるメモリコントローラがデータを保持するタイミングの一例を示すタイミングチャートである。 第1の実施の形態の変形例におけるデータ受信部の一構成例を示す回路図である。 第2の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第2の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第2の実施の形態におけるリード処理の一例を示すフローチャートである。 第2の実施の形態におけるメモリコントローラおよび不揮発性メモリが信号を送受信するタイミングの一例を示すタイミングチャートである。 第2の実施の形態の変形例におけるリード処理の一例を示すフローチャートである。 第2の実施の形態の変形例におけるメモリコントローラおよび不揮発性メモリが信号を送受信するタイミングの一例を示すタイミングチャートである。 第3の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第3の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第3の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第4の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第4の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第4の実施の形態におけるストレージの動作の一例を示すフローチャートである。 第4の実施の形態におけるストローブ発行数設定処理の一例を示すフローチャートである。 第2の実施の形態におけるメモリコントローラおよび不揮発性メモリが信号を送受信するタイミングの一例を示すタイミングチャートである。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(データ数より多いストローブ信号を送信する例)
 2.第2の実施の形態(ストローブ発行コマンドを受信せずにデータ数より多いストローブ信号を送信する例)
 3.第3の実施の形態(データ数に対して設定されたサイクル数多いストローブ信号を送信する例)
 4.第4の実施の形態(データ数に対して算出されたサイクル数多いストローブ信号を送信する例)
 <1.第1の実施の形態>
 [情報処理システムの構成例]
 図1は、実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、ホストコンピュータ100およびストレージ200を備える。
 ホストコンピュータ100は、情報処理システム全体を制御するものである。このホストコンピュータ100は、アクセス要求やライトデータを生成してストレージ200に信号線109を介して供給する。このアクセス要求は、ライトデータの書込みを要求するライト要求や、リードデータの読出しを指示するリード要求を含む。また、ホストコンピュータ100は、ストレージ200からリードデータを受け取る。
 ストレージ200は、メモリコントローラ300および不揮発性メモリ400を備える。このメモリコントローラ300は、不揮発性メモリ400を制御するものである。メモリコントローラ300は、ライト要求に応じて、ライトデータを、誤り検出訂正符号(ECC:Error detection and Correction Code)における符号語に変換(すなわち、符号化)する。メモリコントローラ300は、アクセスコマンドとしてライトコマンドを発行し、不揮発性メモリ400に信号線309を介してアクセスして符号化したライトデータを書き込む。
 また、ホストコンピュータ100からリード要求を受け取った場合、メモリコントローラ300は、アクセスコマンドとしてリードコマンドを発行する。メモリコントローラ300は、リードコマンドにより不揮発性メモリ400にアクセスして符号化されたリードデータを読み出す。そして、メモリコントローラ300は、符号化されたリードデータを、符号化前の元のデータに変換(すなわち、復号)する。また、メモリコントローラ300は、ECCに基づいてリードデータにおける誤りの検出および訂正を行う。メモリコントローラ300は、訂正したリードデータをホストコンピュータ100に供給する。
 不揮発性メモリ400は、メモリコントローラ300の制御に従って、データを記憶するものである。例えば、ReRAMが不揮発性メモリ400として用いられる。この不揮発性メモリ400は、複数のメモリセルを備え、これらのメモリセルは、複数のブロックに分けられている。ここで、ブロックは、不揮発性メモリ400のアクセス単位であり、セクタとも呼ばれる。ブロックのそれぞれには物理アドレスが割り当てられている。なお、ReRAMの代わりに、フラッシュメモリ、PCRAM、および、MRAMなどを不揮発性メモリ400として用いてもよい。なお、不揮発性メモリ400は、特許請求の範囲に記載の記憶装置の一例である。
 [メモリコントローラの構成例]
 図2は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、RAM(Random Access Memory)302、CPU(Central Processing Unit)303、ECC処理部304およびROM(Read Only Memory)305を備える。また、メモリコントローラ300は、ホストインターフェース回路301、バス306およびコントローラ側インターフェース回路320を備える。
 RAM302は、CPU303が実行する処理において必要となるデータを一時的に保持するものである。CPU303は、メモリコントローラ300全体を制御するものである。ROM305は、CPU303が実行するプログラム等を記憶するものである。ホストインターフェース回路301は、ホストコンピュータ100との間でデータやアクセス要求を相互に交換するものである。バス306は、RAM302、CPU303、ECC処理部304、ROM305、ホストインターフェース回路301およびコントローラ側インターフェース回路320が相互にデータを交換するための共通の経路である。コントローラ側インターフェース回路320は、不揮発性メモリ400との間でデータやコマンドを送受信するものである。
 ECC処理部304は、ライトデータを符号化し、また、符号化されたリードデータを復号するものである。
 [メモリコントローラの構成例]
 図3は、第1の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。このメモリコントローラ300は、ECC処理部304、アクセスコマンド発行部311、ストローブ発行指示部312およびコントローラ側インターフェース回路320を備える。
 図3におけるアクセスコマンド発行部311は、図2におけるRAM302、CPU303、ECC処理部304、ROM305、ホストインターフェース回路301、バス306およびコントローラ側インターフェース回路320などにより実現される。ストローブ発行指示部312についても同様である。
 アクセスコマンド発行部311は、アクセス要求に応じてアクセスコマンドを発行するものである。例えば、アクセスコマンド発行部311は、アクセス要求の指定する論理アドレスを物理アドレスに変換する。ここで、論理アドレスは、ホストコンピュータ100やメモリコントローラ300により定義されたアドレス空間において、ホストコンピュータ100がストレージ200にアクセスする際のアクセス単位ごとに割り振られたアドレスである。また、物理アドレスは、メモリコントローラ300が不揮発性メモリ400にアクセスする際のアクセス単位ごとに不揮発性メモリ400において割り振られたアドレスである。
 そして、アクセスコマンド発行部311は、変換した物理アドレスを指定するアクセスコマンドを発行する。ホストコンピュータ100のアクセス単位と不揮発性メモリ400のアクセス単位とが異なる場合には、必要に応じて1つのアクセス要求から、複数のアクセスコマンドが発行される。アクセスコマンド発行部311は、発行したアクセスコマンドをコントローラ側インターフェース回路320に供給する。
 ストローブ発行指示部312は、ストローブ発行コマンドをリードコマンドの送信後に発行するものである。このストローブ発行コマンドは、有効なデータを伴わずに、所定のサイクル数Eの周期信号をストローブ信号として発行することを指示するものである。ここで、Eは整数であり、例えば、「2」が設定される。また、有効なデータは、リードデータを送信単位で分割した個々のデータを意味し、リードデータ内のデータに該当しないデータは無効なデータとして扱われる。不揮発性メモリ400は、リードコマンドを受信した場合に、有効なデータおよびストローブ信号を同期してメモリコントローラ300に順に送信する。一方、ストローブ発行コマンドを受信した場合に不揮発性メモリ400は、無効なデータおよびストローブ信号をメモリコントローラ300に順に送信する。なお、ストローブ信号は、特許請求の範囲に記載の第1の周期信号の一例である。また、ストローブ発行コマンドは、特許請求の範囲に記載の周期信号送信コマンドの一例である。
 [コントローラ側インターフェース回路の構成例]
 図4は、コントローラ側インターフェース回路320の一構成例を示すブロック図である。このコントローラ側インターフェース回路320は、クロックイネーブル送信部325、チップセレクト送信部330、コマンドアドレス送信部331、クロック送信部335、ストローブ送信部340を備える。また、コントローラ側インターフェース回路320は、データ送信部341、データ受信部350と、クロック生成部370と、データ送信部371と、データ受信部372と、端子381乃至387とを備える。
 クロックイネーブル送信部325は、クロック信号CLK_ctrlに同期してクロックイネーブル信号ENを、端子381に接続されたイネーブル線を介して不揮発性メモリ400に送信するものである。このクロックイネーブル信号ENは、メモリコントローラ300から不揮発性メモリ400に送信されるベースクロック信号を不揮発性メモリ400において有効にするか否かを指示する信号である。
 チップセレクト送信部330は、クロック信号CLK_ctrlに同期してチップセレクト信号CSを、端子382に接続された信号線を介して不揮発性メモリ400に送信するものである。このチップセレクト信号CSは、不揮発性メモリ400のアクセスコマンドを有効にするか否かを指示する信号である。
 コマンドアドレス送信部331は、クロック信号CLK_ctrlに同期してコマンドおよびアドレスCAを、端子383に接続されたコマンドアドレス線を介して不揮発性メモリ400に送信するものである。
 クロック送信部335は、クロック信号CLK_ifに同期して、ベースクロック信号CKを、端子384に接続された信号線を介して不揮発性メモリ400に供給するものである。このベースクロック信号CKは、不揮発性メモリ400において基準として用いられるクロック信号である。また、クロック信号CLK_ifの周波数は、前述のクロック信号CLK_crtlのk(kは整数)倍に設定される。
 ストローブ送信部340は、クロック信号CLK_ifに同期してストローブ信号DQSを、端子385に接続されたストローブ線を介して不揮発性メモリ400に送信するものである。データ送信部341は、クロック信号CLK_ifに同期して、ライトデータを送信単位ごとにデータDQとして、端子386に接続されたデータ線を介して不揮発性メモリ400に送信するものである。これらのストローブ送信部340およびデータ送信部341により、ライトデータ内のデータDQとストローブ信号とが同期して順に転送される。
 データ受信部350は、不揮発性メモリ400からのデータDQを端子386のデータ線を介して受信するものである。このデータ受信部350は、端子385に接続されたストローブ線を介して不揮発性メモリ400からストローブ信号を受け取り、そのストローブ信号に同期してデータDQを順に保持する。そして、データ受信部350は、保持したデータDQを、クロック信号CLK_ctrlに同期して順に取り込んでバス306を介してECC処理部304に供給する。
 ここで、クロック信号CLK_ctrlの周波数は、ストローブ信号DQSと同じものとする。なお、これらの信号の周波数が異なる構成であってもよい。また、クロック信号CLK_ctrlは、特許請求の範囲に記載の第2の周期信号の一例である。
 クロック生成部370は、クロック信号CLK_ctrlおよびCLK_ifを生成するものである。このクロック生成部370は、生成したクロック信号CLK_ctrlをクロックイネーブル送信部325、チップセレクト送信部330、コマンドアドレス送信部331、データ受信部350およびデータ受信部372に供給する。また、クロック生成部370は、生成したクロック信号CLK_ifをクロック送信部335、ストローブ送信部340、データ送信部341およびデータ送信部371に供給する。
 データ送信部371は、端子387に接続されたデータ線を介してデータを送信する点以外は、データ送信部341と同様の構成である。データ受信部372は、端子387に接続されたデータ線を介してデータを受信する点以外は、データ受信部350と同様の構成である。
 なお、コントローラ側インターフェース回路320には、データ送信部341およびデータ受信部350からなる送受信回路と、データ送信部371およびデータ受信部372からなる送受信回路との他、同じ構成の複数の送受信回路が設けられている。例えば、全部で8個の送受信回路が設けられ、8本のデータ線を介してデータが送受信される。しかし、図4では、記載の便宜上、8個のうち2個のみが記載され、残りの6個の送受信回路は省略されている。データ線についても同様に、8本のうち2本のみが記載され、残りの6本は省略されている。
 図5は、第1の実施の形態におけるクロックイネーブル送信部325およびクロック送信部335の一構成例を示す回路図である。同図におけるaは、クロックイネーブル送信部325の一構成例を示す回路図であり、同図におけるbは、クロック送信部335の一構成例を示す回路図である。
 クロックイネーブル送信部325は、インバータ326、フリップフロップ327およびドライバ328を備える。インバータ326は、クロック信号CLK_ctrlを反転してフリップフロップ327に供給するものである。フリップフロップ327は、反転されたクロック信号CLK_ctrlに同期してクロックイネーブル信号ENを保持し、ドライバ328へ出力するものである。ドライバ328は、クロックイネーブル信号ENを端子381を介して不揮発性メモリ400に送信するものである。
 なお、チップセレクト送信部330、コマンドアドレス送信部331、データ送信部341およびデータ送信部371のそれぞれの構成は、クロックイネーブル送信部325と同様である。
 クロック送信部335は、バッファ336、フリップフロップ337およびドライバ338を備える。バッファ336は、クロック信号CLK_ifをフリップフロップ337に供給するものである。フリップフロップ337は、クロック信号CLK_ctrlに同期してベースクロック信号CKを保持し、ドライバ338へ出力するものである。ドライバ338は、ベースクロック信号CKを端子384を介して不揮発性メモリ400に送信するものである。なお、ストローブ送信部340の構成は、クロック送信部335と同様である。
 [データ受信部の構成例]
 図6は、第1の実施の形態のデータ受信部350の一構成例を示すブロック図である。このデータ受信部350は、レシーバ351および352と、遅延同期回路353と、シリアルパラレル変換部354と、クロック乗せ換え部358とを備える。
 レシーバ351は、端子385を介してストローブ信号DQS、プリアンブル信号およびポストアンブル信号を受信するものである。ここで、プリアンブル信号は、データの出力に先立って出力される信号であり、例えば、クロック信号CLK_ctrlの1クロック期間に亘ってローレベルの信号がプリアンブル信号として出力される。また、ポストアンブル信号は、データの出力後に出力される信号であり、例えば、クロック信号CLK_ctrlの1.5クロック期間に亘ってローレベルの信号が出力される。レシーバ351は、プリアンブル信号を検出してからポストアンブル信号を検出するまでの間においてストローブ信号DQSを受信し、遅延同期回路353に供給する。
 遅延同期回路353は、ストローブ信号DQSの位相を90度ずらすものである。この遅延同期回路353は、位相をずらしたストローブ信号DQSdをシリアルパラレル変換部354およびクロック乗せ換え部358に供給する。
 レシーバ352は、有効なデータDQを受信するものである。レシーバ352は、受信したデータDQをシリアルパラレル変換部354に供給する。ここで、データDQは、DDR(Double-Data-Rate)方式により転送されるデータであり、ストローブ信号の立上りに同期して転送されるデータと、その信号の立下りに同期して転送されるデータとを含む。
 シリアルパラレル変換部354は、ストローブ信号DQSdに同期して、データDQを、その信号の立上りに同期して転送されたデータと、立下りに同期して転送されたデータとに分割するものである。このシリアルパラレル変換部354は、分割したデータのそれぞれをクロック乗せ換え部358に供給する。
 クロック乗せ換え部358は、シリアルパラレル変換部354により分割されたデータのそれぞれをストローブ信号DQSdに同期して、フリップフロップなどの保持部に保持し、クロック信号CLK_ctrlに同期して読み出すものである。このクロック乗せ換え部358は、読み出したデータをバス306を介してECC処理部304に供給する。
 図7は、第1の実施の形態におけるシリアルパラレル変換部354およびクロック乗せ換え部358の一構成例を示す回路図である。
 シリアルパラレル変換部354は、フリップフロップ355、356および357を備える。また、クロック乗せ換え部358は、スイッチ359および364と、フリップフロップ360、361、363、365、366、368および369と、インバータ369-1と、セレクタ362および367とを備える。なお、フリップフロップ355、356および357と、フリップフロップ360、361、363、365、366および368とは、特許請求の範囲に記載の保持部の一例である。
 フリップフロップ355は、データDQをストローブ信号DQSdに同期してデータDAとして保持し、フリップフロップ356に出力するものである。フリップフロップ356は、反転したストローブ信号DQSdに同期してデータDAをデータDB0として保持し、スイッチ359に出力するものである。このデータDB0は、ストローブ信号の立上りに同期して転送されたデータである。フリップフロップ357は、ストローブ信号DQSdを反転した信号に同期してデータDAをデータDB1として保持し、スイッチ364に出力するものである。このデータDB1は、ストローブ信号の立下りに同期して転送されたデータである。
 スイッチ359は、ストローブ信号DQSdに同期して、データDB0の出力先をフリップフロップ360および361の間で切り替えるものである。例えば、ストローブ信号DQSdの1サイクルが経過するたびに、データDB0の出力先が切り替えられる。
 フリップフロップ360は、ストローブ信号DQSdに同期してスイッチ359からのデータDB0をデータDC00として保持し、セレクタ362に供給するものである。フリップフロップ361は、反転したストローブ信号DQSdに同期してスイッチ359からのデータDB0をデータDC01として保持し、セレクタ362に供給するものである。
 フリップフロップ369は、クロック信号CLK_ctrlの立上りに同期して、セレクタ制御信号SEL_ctrlを保持するものである。フリップフロップ369-1は、そのセレクタ制御信号SEL_ctrlをセレクタ362および367とインバータ369-1とに供給する。インバータ369-1は、フリップフロップ369の出力端子からのセレクタ制御信号SEL_ctrlを反転してフリップフロップ369の入力端子に供給するものである。セレクタ362は、セレクタ制御信号SEL_ctrlに従って、データDC00およびDC01のいずれかを選択し、フリップフロップ363に出力するものである。このセレクタ制御信号SEL_ctrlにより、セレクタ362は、例えば、クロック信号CLK_ctrlのクロック周期が経過するたびに、選択するデータを切り替える。
 フリップフロップ363は、セレクタ362からのデータをクロック信号CLK_ctrlに同期してデータDD0として保持し、バス306に出力するものである。
 スイッチ364は、1サイクルのストローブ信号DQSdに同期して、データDB1の出力先をフリップフロップ365および366の間で切り替えるものである。例えば、ストローブ信号DQSdの1サイクルが経過するたびに、データDB1の出力先が切り替えられる。
 フリップフロップ365は、ストローブ信号DQSdに同期してスイッチ364からのデータDB1をデータDC10として保持し、セレクタ367に供給するものである。フリップフロップ366は、反転したストローブ信号DQSdに同期してスイッチ364からのデータDB1をデータDC11として保持し、セレクタ367に供給するものである。
 セレクタ367は、セレクタ制御信号SEL_ctrlに従って、データDC10およびDC11のいずれかを選択し、フリップフロップ368に出力するものである。このセレクタ制御信号SEL_ctrlにより、セレクタ367は、例えば、クロック信号CLK_ctrlのクロック周期が経過するたびに、選択するデータを切り替える。
 フリップフロップ368は、セレクタ367からのデータをクロック信号CLK_ctrlに同期してデータDD1として保持し、バス306に出力するものである。
 このように、データ受信部350には、複数段のフリップフロップ(355、356および360など)が設けられる。これらのフリップフロップは、ストローブ信号DQSdに同期して順にデータを保持する。このため、データDQの個数と同じサイクル数のストローブ信号DQSdが供給された時点では、最後に送信されたデータDQが最終段のフリップフロップ(360など)に保持されず、その前段のフリップフロップに溜まったままになってしまう。しかし、ストローブ発行コマンドにより、サイクル数Eのストローブ信号がさらに送信される。このため、これらの余分に発行されたストローブ信号により、前段に溜まったデータが最終段のフリップフロップに押し出され、データ受信部350は、全てのデータを取り込むことができる。このサイクル数Eには、ストローブ信号に同期して動作するフリップフロップの段数が多いほど大きな一定の値が予め設定される。
 [不揮発性メモリの構成例]
 図8は、第1の実施の形態における不揮発性メモリ400の一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ401、メモリセルアレイ402、ドライバ403、アドレスデコーダ404、バス405、メモリ側インターフェース回路410、および、メモリ制御部480を備える。
 データバッファ401は、メモリ制御部480の制御に従って、ライトデータやリードデータをアクセス単位で保持するものである。メモリセルアレイ402は、マトリックス状に配列された複数のメモリセルを備える。各々のメモリセルとして、不揮発性の記憶素子が用いられる。具体的には、NAND型やNOR型のフラッシュメモリ、ReRAM、PCRAM、または、MRAMなどが記憶素子として用いられる。
 ドライバ403は、アドレスデコーダ404により選択されたメモリセルに対してデータの書込み、または、データの読出しを行うものである。アドレスデコーダ404は、コマンドにより指定されたアドレスを解析して、そのアドレスに対応するメモリセルを選択するものである。バス405は、データバッファ401、メモリセルアレイ402、アドレスデコーダ404、メモリ制御部480およびメモリ側インターフェース回路410が相互にデータを交換するための共通の経路である。メモリ側インターフェース回路410は、メモリコントローラ300と不揮発性メモリ400とがデータやコマンドを送受信するためのインターフェースである。このメモリ側インターフェース回路410は、データDQからなるリードデータをメモリコントローラ300に送信する際に、データDQの個数より多いサイクル数のストローブ信号とデータDQとを同期させて送信する。
 メモリ制御部480は、ドライバ403およびアドレスデコーダ404を制御して、データの書込み、または、読出しを行わせるものである。また、メモリ制御部480は、ストローブ信号を発行してメモリ側インターフェース回路410に供給する。
 [メモリ側インターフェース回路の構成例]
 図9は、第1の実施の形態におけるメモリ側インターフェース回路410の一構成例を示すブロック図である。このメモリ側インターフェース回路410は、クロックイネーブル受信部415、チップセレクト受信部420、コマンドアドレス受信部425およびレシーバ430を備える。また、メモリ側インターフェース回路410は、ストローブ送信部435と、データ送信部440と、データ受信部450と、データ送信部460と、データ受信部461と、端子471乃至477とを備える。
 クロックイネーブル受信部415は、ベースクロック信号CKに同期してクロックイネーブル信号ENを、端子471に接続された信号線を介して受信するものである。チップセレクト受信部420は、ベースクロック信号CKに同期してチップセレクト信号CSを、端子472に接続された信号線を介して受信するものである。コマンドアドレス受信部425は、ベースクロック信号CKに同期してコマンドおよびアドレスCAを、端子473に接続されたコマンドアドレス線を介して受信するものである。
 レシーバ430は、ベースクロック信号CKを、端子474に接続された信号線を介して受信するものである。このベースクロック信号CKは、クロックイネーブル信号ENに従って有効または無効に設定され、メモリ側インターフェース回路410内の各回路に供給される。
 ストローブ送信部435は、ベースクロック信号CKに同期してストローブ信号DQSを、端子475に接続されたストローブ線を介してメモリコントローラ300に送信するものである。データ送信部440は、リードデータを送信単位ごとに分割したデータDQを、ベースクロック信号CKに同期して、端子476に接続されたデータ線を介してメモリコントローラ300に送信するものである。これらのストローブ送信部435およびデータ送信部440により、データDQおよびストローブ信号DQSが同期して送信される。なお、データDQは、特許請求の範囲に記載の単位データの一例である。
 データ受信部450は、ベースクロック信号CKに同期してデータDQを、端子476に接続されたデータ線を介して受信するものである。
 データ送信部460は、端子477に接続されたデータ線を介してデータを送信する点以外は、データ送信部440と同様の構成である。データ受信部461は、端子477に接続されたデータ線を介してデータを受信する点以外は、データ受信部450と同様の構成である。
 図10は、第1の実施の形態におけるクロックイネーブル受信部415およびストローブ送信部435の一構成例を示す回路図である。同図におけるaは、クロックイネーブル受信部415の一構成例を示す回路図である。同図におけるbは、ストローブ送信部435の一構成例を示す回路図である。
 クロックイネーブル受信部415は、レシーバ416およびフリップフロップ417を備える。レシーバ416は、クロックイネーブル信号ENを受信してフリップフロップ417に供給するものである。フリップフロップ417は、ベースクロック信号CKに同期してクロックイネーブル信号を保持し、バス405へ出力するものである。
 なお、チップセレクト受信部420およびコマンドアドレス受信部425の構成は、クロックイネーブル受信部415と同様である。
 ストローブ送信部435は、ドライバ436、セレクタ437およびフリップフロップ438を備える。ドライバ436は、ストローブ信号DQSの先頭および末尾に、プリアンブル信号およびポストアンブル信号を付加して、それらを順にメモリコントローラ300へ送信するものである。セレクタ437は、フリップフロップ437からの信号と「0」とをベースクロック信号CKに従って切り替えて、ドライバ436へ送信するものである。フリップフロップ437は、メモリ制御部480により発行されたストローブ信号DQSをベースクロック信号CKに同期して保持し、セレクタ436に出力するものである。
 なお、データ送信部440および460の構成は、ストローブ送信部435と同様である。
 [データ受信部の構成例]
 図11は、第1の実施の形態におけるデータ受信部450の一構成例を示す回路図である。このデータ受信部450は、レシーバ451および454と、フリップフロップ452、453、455および456とを備える。
 レシーバ451は、ストローブ線を介してストローブ信号DQSを受信するものである。レシーバ454は、データDQを受信してフリップフロップ452および455に供給するものである。
 フリップフロップ452は、ストローブ信号DQSに同期して、メモリコントローラ300からのデータDQを保持し、フリップフロップ453に供給するものである。フリップフロップ453は、ベースクロック信号CKに同期してデータDQを保持し、バス405へ出力するものである。これらのフリップフロップ452および453には、ストローブ信号の立上りに同期して転送されたデータが保持される。
 フリップフロップ455は、反転したストローブ信号DQSに同期して、メモリコントローラ300からのデータDQを保持し、フリップフロップ456に供給するものである。フリップフロップ456は、反転したベースクロック信号CKに同期してデータDQを保持し、バス405へ出力するものである。これらのフリップフロップ455および456には、ストローブ信号の立下がりに同期して転送されたデータが保持される。
 [メモリ制御部の構成例]
 図12は、第1の実施の形態におけるメモリ制御部480の一構成例を示すブロック図である。このメモリ制御部480は、コマンドバッファ481、コマンドデコーダ482、アクセス制御部483およびストローブ信号発行部484を備える。
 コマンドバッファ481は、コマンドを、受信した順に保持するものである。コマンドデコーダ482は、コマンドをデコードするものである。このコマンドデコーダ482は、コマンドバッファ481から未処理のコマンドを読み出してデコードし、デコードの完了したコマンドをコマンドバッファ481から削除する。また、コマンドデコーダ482は、アクセスコマンドのデコード結果をアクセス制御部483に供給し、ストローブ発行コマンドのデコード結果をストローブ信号発行部484に供給する。
 アクセス制御部483は、アクセスコマンドのデコード結果に基づいてドライバ403およびアドレスデコーダ404を制御し、データの書込み、または、読出しを行わせるものである。また、アクセス制御部483は、ストローブ信号の発行数の取得に必要な情報(リードデータのデータサイズなど)をストローブ信号発行部484に供給する。
 ストローブ信号発行部484は、ストローブ信号を発行するものである。このストローブ信号発行部484は、アクセス制御部からの情報に基づいて、リードデータを送信単位で分割したデータDQの個数を取得し、その個数と同じサイクル数のストローブ信号を発行する。また、ストローブ信号発行部484は、ストローブ発行コマンドのデコード結果に従って、サイクル数Eのストローブ信号を発行する。発行されたストローブ信号は、バス405を介してメモリ側インターフェース回路410に供給される。
 [ストレージの動作例]
 図13は、第1の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。この動作は、例えば、ストレージ200に電源が投入されたときに開始する。
 メモリコントローラ300は、不揮発性メモリ400の初期化を行い(ステップS901)、ライト要求によりデータの書込みが要求されたか否かを判断する(ステップS903)。データの書込みが要求された場合(ステップS903:Yes)、メモリコントローラ300は、ライトコマンドを発行し(ステップS904)、不揮発性メモリ400は、ライトコマンドに従ってデータの書込みを行う(ステップS905)。
 一方、リード要求によりデータの読出しが要求された場合には(ステップS903:No)、ストレージ200は、リード処理を行う(ステップS910)。ステップS905またはS910の後、ストレージ200は、ステップS903に戻る。
 図14は、第1の実施の形態におけるリード処理の一例を示すフローチャートである。メモリコントローラ300は、リード要求に応じてリードコマンドを発行する(ステップS911)。不揮発性メモリ400は、リードコマンドに従ってデータを読み出し、プリアンブル信号を送信する(ステップS912)。そして、不揮発性メモリ400は、データおよびストローブ信号を同期させて送信する(ステップS913)。
 不揮発性メモリ400は、次に送信するデータがあるか否かを判断する(ステップS914)。次に送信するデータがあれば(ステップS914:Yes)、不揮発性メモリ400はステップS913に戻る。一方、次に送信するデータがなければ(ステップS914:No)、不揮発性メモリ400は、ポストアンブル信号を送信する(ステップS915)。
 ポストアンブル信号を受信したメモリコントローラ300は、ストローブ発行コマンドを発行する(ステップS916)。不揮発性メモリ400は、プリアンブル信号を送信し(ステップS917)、有効なデータを伴わずに、サイクル数Eのストローブ信号を送信し(ステップS918)、ポストアンブル信号を送信する(ステップS919)。ステップS919の後、ストレージ200は、リード処理を終了する。
 図15は、第1の実施の形態におけるメモリコントローラ300が信号を送受信するタイミングの一例を示すタイミングチャートである。同図におけるaは、タイミングT0乃至T10におけるタイミングチャートであり、同図におけるbはタイミングT10以降におけるタイミングチャートである。まず、タイミングT0においてメモリコントローラ300は、チップセレクト信号をローレベル(有効)にし、リード要求に応じてリードコマンドを発行する。リードコマンドの発行後は、チップセレクト信号はハイレベル(無効)に設定される。
 不揮発性メモリ400は、リードコマンドに従ってリードデータを読み出し、タイミングT4においてストローブ線を介してプリアンブル信号を送信する。そして、タイミングT5乃至T9において、不揮発性メモリ400は、4つの有効なデータと、4サイクルのストローブ信号とを同期させて送信し、タイミングT10においてポストアンブル信号を送信する。これらのデータのそれぞれは、ストローブ信号の立上りで転送されるデータと、立下りで転送されるデータとを含む。例えば、4つのデータは、dt0乃至dt7の8個のデータを含む。例えば、8本のデータ線によりデータを並列に転送する場合には、dt0乃至dt7のそれぞれのデータサイズは、8ビットである。また、dt0、dt2、dt6およびdt8は、ストローブ信号の立上りに同期して転送され、残りのデータは立下りに同期して転送される。このため、ストローブ信号に同期して、16ビットの単位で、データが転送される。
 ポストアンブル信号を受信したメモリコントローラ300は、タイミングT11においてチップセレクト信号をローレベルにしてストローブ発行コマンドを発行する。不揮発性メモリ400は、タイミングT14において、ストローブ発行コマンドに応じてプリアンブル信号を送信し、タイミングT15およびT16において2サイクルのストローブ信号を送信する。そして、不揮発性メモリ400は、タイミングT17においてポストアンブル信号を送信する。なお、図15において、斜線の部分は、無効なデータを示す。また、「HiZ」は、ハイインピーダンス状態を示す。
 このように、不揮発性メモリ400は、有効なデータの個数より多いサイクル数のストローブ信号をメモリコントローラ300に送信する。
 図16は、第1の実施の形態におけるメモリコントローラ300および不揮発性メモリ400が信号を送受信するタイミングの一例を示すタイミングチャートである。例えば、dt0乃至dt7の8つのデータがストローブ信号DQSに同期して順に送信されるものとする。
 フリップフロップ355は、タイミングt2、t6、t10およびt14において、データdt0、dt2、dt4およびdt6を順に保持する。そして、その後段のフリップフロップ356は、タイミングt4、t8、t12およびt16において、フリップフロップ356からのデータdt0、dt2、dt4およびdt6を順に保持する。一方、フリップフロップ357は、タイミングt4、t8、t12およびt16において、データdt1、dt3、dt5およびdt7を順に保持する。
 フリップフロップ356の後段のフリップフロップ360は、タイミングt6およびt14において、データdt0およびdt4を順に保持する。一方、フリップフロップ361は、タイミングt12においてデータdt2を保持する。
 タイミングT16において、4サイクルのストローブ信号の送信が完了する。この時点では、データdt0、dt2、dt4およびdt6のうち、最後のdt6が、最終段のフリップフロップ361に保持されていない。しかし、不揮発性メモリ400は、タイミングt16およびt20において、余分にストローブ信号を送信する。これらのストローブ信号により、タイミングt20において、最後のデータdt6が押し出されて、最終段のフリップフロップ361に保持される。したがって、データdt0、dt2、dt4およびdt6の全てが、後段のフリップフロップ363に順に出力される。
 また、フリップフロップ357の後段のフリップフロップ365は、タイミングt6およびt14において、データdt1およびdt5を順に保持する。一方、フリップフロップ366は、タイミングt12においてデータdt3を保持する。4サイクルのストローブ信号の送信が完了するタイミングT16において、データdt1、dt3、dt5およびdt7のうち、最後のdt7が最終段のフリップフロップ366に保持されていない。しかし、不揮発性メモリ400は、タイミングt16およびt20において、余分にストローブ信号を送信するため、タイミングt20において、最後のデータdt7が押し出されて最終段のフリップフロップ361に保持される。したがって、データdt1、dt3、dt5およびdt7の全てが、後段のフリップフロップ368に順に出力される。
 図17は、第1の実施の形態の比較例におけるメモリコントローラがデータを保持するタイミングの一例を示すタイミングチャートである。この比較例では、有効なデータのデータ数と同じサイクル数のストローブ信号が不揮発性メモリ400により送信されるものとする。この場合、4サイクルのストローブ信号の送信が完了するタイミングT16において、最後のデータdt6が、フリップフロップ361に保持されておらず、その前段のフリップフロップ356に溜まったままの状態となっている。また、最後のデータdt7も、フリップフロップ365に保持されず、その前段のフリップフロップ357に溜まったままの状態となっている。このため、後段のフリップフロップ363および368に、最後のデータdt6およびdt7が出力されず、メモリコントローラ300は、全てのデータをクロック信号に同期して取り込むことができなくなってしまう。
 これに対して、不揮発性メモリ400がデータ数より多いサイクル数のストローブ信号を発行する構成では、図16に例示したように、全てのデータが最終段のフリップフロップから出力される。このため、メモリコントローラ300は、全てのデータをクロック信号に同期して取り込むことができる。この構成によれば、特許文献1のように位相調整回路を設けなくてよいため、その分、部品コストや設計コストなどを低減することができる。
 このように、本技術の第1の実施の形態によれば、不揮発性メモリ400がデータ数より多いサイクル数のストローブ信号とデータとを同期させて送信するため、メモリコントローラ300は、複数段の保持部にデータの全てを保持させて取り込むことができる。
 [変形例]
 第1の実施の形態では、メモリコントローラ300および不揮発性メモリ400は、DDR方式でデータを転送していたが、SDR(Single-Data-Rate)方式でデータを転送してもよい。第1の実施の形態の変形例のメモリコントローラ300および不揮発性メモリ400は、SDR方式でデータを転送する点において第1の実施の形態と異なる。
 図18は、第1の実施の形態の変形例におけるデータ受信部350の一構成例を示すブロック図である。変形例におけるデータ受信部350は、シリアルパラレル変換部354の代わりにフリップフロップ355および356を備える点において第1の実施の形態と異なる。また、変形例のクロック乗せ換え部358は、フリップフロップ360および363のみが設けられる点において第1の実施の形態と異なる。
 フリップフロップ360は、フリップフロップ356の後段に設けられ、フリップフロップ363は、フリップフロップ360の後段に設けられる。これらのフリップフロップには、ストローブ信号の立上りに同期して、データが保持される。
 このように、変形例によれば、不揮発性メモリ400が、データ数より多いサイクル数のストローブ信号の立上りに同期してデータを送信するため、立上りおよび立下りに同期して送信する場合より簡易な構成の回路によりデータを送受信することができる。
 <2.第2の実施の形態>
 第1の実施の形態では、不揮発性メモリ400は、ストローブ発行コマンドに従って余分のストローブ信号を発行していたが、ストローブ発行コマンドを受信せずに、余分のストローブ信号を発行してもよい。第2の実施の形態の不揮発性メモリ400は、ストローブ発行コマンドを受信しない点において第1の実施の形態と異なる。
 図19は、第2の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第2の実施の形態のメモリコントローラ300は、ストローブ発行指示部312を備えない点において第1の実施の形態と異なる。
 図20は、第2の実施の形態におけるメモリ制御部480の一構成例を示すブロック図である。第2の実施の形態のメモリ制御部480は、ストローブ信号発行部484の代わりにストローブ信号発行部485を備える点において、第1の実施の形態と異なる。
 ストローブ信号発行部485は、アクセス制御部483からの情報に基づいて、データ数より多いサイクル数のストローブ信号を生成する。例えば、余分に発行するストローブ信号のサイクル数が「2」に設定されており、データ数が「4」である場合、6サイクルのストローブ信号が発行される。
 図21は、第2の実施の形態におけるリード処理の一例を示すフローチャートである。第2の実施の形態のリード処理は、ステップS915乃至S917が実行されない点において第1の実施の形態と異なる。
 図22は、第2の実施の形態におけるメモリコントローラ300および不揮発性メモリ400が、信号を送受信するタイミングの一例を示すタイミングチャートである。同図におけるaは、タイミングT0乃至T9におけるタイミングチャートであり、同図におけるbはタイミングT9以降におけるタイミングチャートである。まず、タイミングT0においてメモリコントローラ300は、リード要求に応じてリードコマンドを発行する。
 不揮発性メモリ400は、リードコマンドに従ってリードデータを読み出し、タイミングT4においてプリアンブル信号を送信する。そして、タイミングT5乃至T8において、不揮発性メモリ400は、4つの有効なデータと、4サイクルのストローブ信号とを同期させて送信する。
 そして、タイミングT9およびT10において、不揮発性メモリ400は、無効なデータと、2サイクルのストローブ信号とを送信し、タイミングT11において、ポストアンブル信号を送信する。
 このように、第2の実施の形態によれば、不揮発性メモリ400が、データ数と同じサイクル数のストローブ信号およびデータを送信した後に、サイクル数Eのストローブ信号を送信するため、ストローブ発行コマンドを発行する必要がなくなる。
 [変形例]
 第2の実施の形態では、不揮発性メモリ400は、全てのデータの送信後にサイクル数Eのストローブ信号を送信していたが、リードデータの送信が中断する未送信期間内に余分のストローブ信号を送信してもよい。第2の実施の形態の変形例の不揮発性メモリ400は、未送信期間内に余分のストローブ信号を送信する点において、第2の実施の形態と異なる。
 図23は、第2の実施の形態の変形例におけるリード処理の一例を示すフローチャートである。変形例のリード処理は、ステップS921およびS922をさらに実行する点において第2の実施の形態と異なる。
 次にデータを送信するデータが無い場合(ステップS914:No)、不揮発性メモリ400は、サイクル数が所定数E(例えば、「2」)に達するまで、ストローブ信号を繰り返し送信する(ステップS921)。そして、不揮発性メモリ400は、コマンドバッファ481内に未処理のリードコマンドがあるか否かを判断する(ステップS922)。未処理のリードコマンドがある場合(ステップS922:Yes)、不揮発性メモリ400はステップS914に戻る。
 一方、未処理のリードコマンドが無い場合(ステップS922:No)、不揮発性メモリ400は、全データの転送が完了したと判断してポストアンブル信号を送信する(ステップS919)。
 図24は、第2の実施の形態の変形例におけるメモリコントローラ300および不揮発性メモリ400が信号を送受信するタイミングの一例を示すタイミングチャートである。同図におけるaは、タイミングT21乃至T32におけるタイミングチャートであり、同図におけるbはタイミングT32以降におけるタイミングチャートである。タイミングT21においてメモリコントローラ300は、リード要求に応じてリードコマンドCMD1を発行する。
 不揮発性メモリ400は、リードコマンドCMD1に従って、リードデータRD1を読み出し、タイミングT24においてプリアンブル信号を送信する。そして、タイミングT25乃至T27において、不揮発性メモリ400は、リードデータRD1とストローブ信号とを同期させて送信する。
 一方、メモリコントローラ300はタイミングT26においてリードコマンドCMD2を発行する。不揮発性メモリ400は、リードコマンドCMD2に従ってリードデータRD2を読み出し、タイミングT28乃至T30において、リードデータRD2とストローブ信号とを同期させて送信する。
 また、メモリコントローラ300は、タイミングT31においてリードコマンドCMD3を発行する。タイミングT31では、このリードコマンドCMD3のデコードが完了していないため、データの送信が途切れる。このデータの未送信期間において不揮発性メモリ400は、無効なデータおよびストローブ信号を送信する。そして、不揮発性メモリ400は、リードコマンドCMD3に従ってリードデータRD3を読み出し、タイミングT32乃至T35において、リードデータRD3とストローブ信号とを同期させて送信する。
 そして、メモリコントローラ300は、タイミングT36においてリードコマンドCMD4を発行する。タイミングT36乃至T39の期間は、このリードコマンドCMD4に対応するデータは読み出されておらず、データが途切れる。このデータの未送信期間において不揮発性メモリ400は、2サイクルに達するまで、ストローブ信号を繰り返し送信する。そして、不揮発性メモリ400は、リードコマンドCMD4に従ってリードデータRD4を読み出し、タイミングT39乃至T41において、そのリードデータRD4とストローブ信号とを同期させて送信する。
 このように、変形例によれば、不揮発性メモリ400は、データの未送信期間においてストローブ信号を送信するため、データの転送速度の低下を抑制することができる。
 <3.第3の実施の形態>
 第1の実施の形態では、不揮発性メモリ400は、余分に発行するストローブ信号のサイクル数Eを一定の値としていたが、メモリコントローラ300の制御により、そのサイクル数を変更してもよい。余分に必要なサイクル数Eは、メモリコントローラ300実装時に、フリップフロップの段数から得ることができるが、例えば、一部の回路の提供を他社から受けた場合や設計変更が行われた場合には、サイクル数Eの値を変更する必要が生じる。第3の実施の形態の不揮発性メモリ400は、メモリコントローラの制御に従って、サイクル数Eの値を変更する点において第1の実施の形態と異なる。
 図25は、第3の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第3の実施の形態のメモリコントローラ300は、キャリブレーション処理部313をさらに備える点において第1の実施の形態と異なる。
 キャリブレーション処理部313は、ホストコンピュータ100からのキャリブレーション要求に応じて、データ線のインピーダンスやタイミングなどを調整するキャリブレーション処理を行うものである。キャリブレーション処理において、キャリブレーション処理部313は、キャリブレーションを行うための特定のパターンデータの出力を要求するキャリブレーションコマンドを発行する。例えば、LPDDR(Low Power Double Data Rate)2規格におけるMRR(Mode Register Read)コマンドがキャリブレーションコマンドとして発行される。また、このキャリブレーションコマンドには、余分に発行するストローブ信号のサイクル数が記載される。このため、メモリコントローラ300は、キャリブレーションコマンドにより、余分に発行するサイクル数Eを設定することができる。Eに設定可能な最小値は「0」である。なお、キャリブレーションコマンドは、特許請求の範囲に記載の設定コマンドの一例である。
 図26は、第3の実施の形態におけるメモリ制御部480の一構成例を示すブロック図である。第3の実施の形態のメモリ制御部480は、ストローブ発行数レジスタ486および調整パターン生成部487をさらに備える点において第1の実施の形態と異なる。
 ストローブ発行数レジスタ486は、設定されたサイクル数Eを保持するものである。このストローブ発行数レジスタ486には、キャリブレーションコマンドのデコードにより取り出されたサイクル数Eが保持される。保持された値は、不揮発性メモリ400が再起動し、初期化されるまで有効である。第3の実施の形態のストローブ信号発行部484は、ストローブ発行数レジスタ486に保持されたサイクル数Eを読み出し、そのサイクル数のストローブ信号を余分に発行する。
 特許文献1のように、メモリコントローラ300に位相調整回路を実装する場合は、データ数と同じサイクル数のストローブ信号を発行すればよいため、ストローブ発行数レジスタ486には「0」が設定される。一方、メモリコントローラ300に位相調整回路を実装しない場合には、ストローブ発行数レジスタ486には「0」より大きい一定値が設定される。このように、ストローブ発行数レジスタ486に保持させるサイクル数Eを変更可能な構成とすることにより、メモリコントローラ300の設計の選択肢を増加することができる。
 また、キャリブレーションのときにサイクル数Eを設定することにより、ストレージ200は、従来と同じ手順で起動処理を行うことができる。
 なお、キャリブレーションコマンドによりストローブ発行数レジスタ486の値を変更しているが、キャリブレーションコマンド以外のコマンドにより、このレジスタを更新する構成とすることもできる。
 調整パターン生成部487は、キャリブレーションコマンドに従って、キャリブレーションのためのパターンデータを調整パターンとして生成するものである。
 図27は、第3の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。第3の実施の形態のストレージ200の動作は、ステップS902をさらに実行する点において第1の実施の形態と異なる。
 メモリコントローラ300は、不揮発性メモリ400の初期化(ステップS901)の後、キャリブレーションとともに、余分に発行するストローブ信号のサイクル数の設定を行う(ステップS902)。そして、ストレージ200は、ステップS903以降の処理を行う。
 このように、第3の実施の形態によれば、メモリコントローラ300は、余分に発行するストローブ信号のサイクル数をキャリブレーションコマンドにより設定するため、余分のストローブ信号のサイクル数を任意の値に変更することができる。
 <4.第4の実施の形態>
 第1の実施の形態では、余分に発行するストローブ信号のサイクル数Eを一定の値としていたが、既知のパターンデータの送受信により、サイクル数Eを求めてもよい。余分に必要なサイクル数は、メモリコントローラ300実装時に、フリップフロップの段数から得ることができるが、例えば、一部の回路の提供を他社から受けた場合や設計変更が行われた場合には、必要なサイクル数を確認する必要がある。第4の実施の形態の不揮発性メモリ400は、パターンデータの送受信により、余分に発行するサイクル数Eを求める点において第1の実施の形態と異なる。
 図28は、第4の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第4の実施の形態のメモリコントローラ300は、ストローブ発行数設定部314をさらに備える点において第1の実施の形態と異なる。
 ストローブ発行数設定部314は、余分に必要なストローブ信号のサイクル数を算出して設定するものである。このストローブ発行数設定部314は、ホストコンピュータ100からのストローブ発行数設定要求に応じて、測定開始コマンドを発行する。この測定開始コマンドは、既知のパターンデータを測定パターンとして送信することを不揮発性メモリ400に指示するコマンドである。
 不揮発性メモリ400は、測定開始コマンドに従って、測定パターンを送信単位で分割したs個のデータDQを、ストローブ信号に同期して送信する。コントローラ側インターフェース回路320は、測定パターンを分割したデータDQをストローブ信号に同期して受信する。ストローブ発行数設定部314は、受信されたデータDQの個数rと、sとの差を必要なサイクル数として算出する。例えば、送信されたデータDQの個数sが「10」で、受信された個数rが「8」である場合、必要なサイクル数Eとして「2」が算出される。そして、ストローブ発行数設定部314は、算出したサイクル数Eを設定する発行数設定コマンドを発行して送信する。
 図29は、第4の実施の形態におけるメモリ制御部480の一構成例を示すブロック図である。第4の実施の形態のメモリ制御部480は、ストローブ発行数レジスタ486および測定パターン生成部488をさらに備える点において第1の実施の形態と異なる。また、ストローブ発行数レジスタ486には、発行数設定コマンドのデコードにより得られたサイクル数が保持される。
 測定パターン生成部488は、測定開始コマンドのデコード結果に基づいて測定パターンを生成し、バス405を介してメモリ側インターフェース回路410に供給するものである。
 図30は、第4の実施の形態におけるストレージ200の動作の一例を示すフローチャートである。第4の実施の形態のストレージ200の動作は、不揮発性メモリ400の初期化(ステップS901)の後、ストローブ発行数設定処理(ステップS930)を実行する点において第1の実施の形態と異なる。
 図31は、第4の実施の形態におけるストローブ発行数設定処理の一例を示すフローチャートである。メモリコントローラ300は、ストローブ発行数設定要求に応じて測定開始コマンドを発行して送信する(ステップS931)。不揮発性メモリ400は、その測定開始コマンドに従って、測定パターンを生成し、送信単位で分割して送信する(ステップS932)。メモリコントローラ300は、不揮発性メモリ400からのデータを受信し、不揮発性メモリ400が送信した個数sとメモリコントローラ300が受信した個数rとから、必要なストローブ信号の発行数Eを算出する(ステップS933)。
 メモリコントローラ300は、算出した個数を設定する発行数設定コマンドを発行して送信し(ステップS934)、不揮発性メモリ400は、その発行数設定コマンドに従って、余分に発行するサイクル数Eを設定する(ステップS935)。
 図32は、第4の実施の形態におけるメモリコントローラ300および不揮発性メモリ400が信号を送受信するタイミングの一例を示すタイミングチャートである。タイミングT50において、メモリコントローラ300が測定開始コマンドを送信すると、不揮発性メモリ400は、その測定開始コマンドに従って測定パターンを生成する。不揮発性メモリ400は、タイミングT53においてプリアンブル信号を送信し、タイミングT54乃至T56において、測定パターンを分割したデータPT0乃至PT9をストローブ信号に同期して送信する。そして、タイミングT57において、不揮発性メモリ400は、ポストアンブル信号を送信する。メモリコントローラ300は、PT0乃至PT9のうち受信した個数rと、送信された個数sとの差を必要なサイクル数Eとして設定する。
 このように、第4の実施の形態によれば、メモリコントローラ300は、測定パターンを分割したデータの送信数と受信数との差を、ストローブ信号のサイクル数として設定するため、必要なストローブ信号のサイクル数を正確に求めて設定することができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、
 前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路と
を具備するインターフェース回路。
(2)前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、
 前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、
 前記コントローラ側インターフェース回路は、前記リードコマンドの送信後に前記第1の周期信号の送信を指示する周期信号送信コマンドを前記メモリ側インターフェース回路へ送信し、
 前記メモリ側インターフェース回路は、前記周期信号送信コマンドに従って所定のサイクル数の前記第1の周期信号を送信する
前記(1)記載のインターフェース回路。
(3)前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、
 前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、さらに所定のサイクル数の前記第1の周期信号を送信する
前記(1)記載のインターフェース回路。
(4)前記メモリ側インターフェース回路は、前記リードデータが送信されない未送信期間において当該未送信期間内に送信したサイクル数が前記所定のサイクル数に達するまで前記第1の周期信号を繰り返し送信する
前記(3)記載のインターフェース回路。
(5)前記コントローラ側インターフェース回路は、前記所定のサイクル数を設定する設定コマンドを前記メモリ側インターフェース回路へ送信する
前記(3)または(4)に記載のインターフェース回路。
(6)前記コントローラ側インターフェース回路は、所定数のパターンデータの送信を指示する開始コマンドを前記メモリ側インターフェース回路に送信し、
 前記メモリ側インターフェース回路は、前記開始コマンドに従って前記所定数と同じサイクル数の前記第1の周期信号と前記パターンデータとを同期させて前記コントローラ側インターフェース回路に送信し、
 前記コントローラ側インターフェース回路は、前記送信されたパターンデータを前記第1の周期信号に同期して前記複数段の保持部に順に保持し、前記第2の周期信号に同期して前記保持したパターンデータを順に読み出して当該読み出したパターンデータの個数と前記所定数との差を設定する前記設定コマンドを前記メモリ側インターフェース回路へ送信する
前記(5)記載のインターフェース回路。
(7)前記単位データは、第1および第2のデータを含み、
 前記メモリ側インターフェース回路は、前記第1の周期信号の立上りに同期して前記第1のデータを送信し、前記第1の周期信号の立下りに同期して前記第2のデータを送信する
前記(1)から(6)のいずれかに記載のインターフェース回路。
(8)メモリセルと、
 前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の周期信号と前記単位データとを同期させて順に送信するインターフェース回路と
を具備する記憶装置。
(9)メモリセルと、
 前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、
 前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路と
を具備する情報処理システム。
(10)メモリ側インターフェース回路が、メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信する送信手順と、
 コントローラ側インターフェース回路が、前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力する受信手順と
を具備するインターフェース回路の制御方法。
 100 ホストコンピュータ
 200 ストレージ
 300 メモリコントローラ
 301 ホストインターフェース回路
 302 RAM
 303 CPU
 304 ECC処理部
 305 ROM
 306、405 バス
 311 アクセスコマンド発行部
 312 ストローブ発行指示部
 313 キャリブレーション処理部
 314 ストローブ発行数設定部
 320 コントローラ側インターフェース回路
 325 クロックイネーブル送信部
 326、369-1 インバータ
 327、337、355、356、357、360、361、363、365、366、368、369、417、438、452、453、455、456 フリップフロップ
 328、338、403、436 ドライバ
 330 チップセレクト送信部
 331 コマンドアドレス送信部
 335 クロック送信部
 336 バッファ
 340 ストローブ送信部
 341、371、440、460 データ送信部
 350、372、450、461 データ受信部
 351、352、416、430、451、454 レシーバ
 353 遅延同期回路
 354 シリアルパラレル変換部
 358 クロック乗せ換え部
 359、364 スイッチ
 362、367、437 セレクタ
 370 クロック生成部
 381、382、383、384、385,386、387、471、472.473、474、475、476、477 端子
 400 不揮発性メモリ
 401 データバッファ
 402 メモリセルアレイ
 404 アドレスデコーダ
 410 メモリ側インターフェース回路
 415 クロックイネーブル受信部
 420 チップセレクト受信部
 425 コマンドアドレス受信部
 435 ストローブ送信部
 480 メモリ制御部
 481 コマンドバッファ
 482 コマンドデコーダ
 483 アクセス制御部
 484、485 ストローブ信号発行部
 486 ストローブ発行数レジスタ
 487 調整パターン生成部
 488 測定パターン生成部

Claims (10)

  1.  メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、
     前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路と
    を具備するインターフェース回路。
  2.  前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、
     前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、
     前記コントローラ側インターフェース回路は、前記リードコマンドの送信後に前記第1の周期信号の送信を指示する周期信号送信コマンドを前記メモリ側インターフェース回路へ送信し、
     前記メモリ側インターフェース回路は、前記周期信号送信コマンドに従って所定のサイクル数の前記第1の周期信号を送信する
    請求項1記載のインターフェース回路。
  3.  前記コントローラ側インターフェース回路は、前記リードデータの読出しを指示するリードコマンドを前記メモリ側インターフェース回路へ送信し、
     前記メモリ側インターフェース回路は、前記リードコマンドに従って前記リードデータを読み出して前記単位データの個数と同一のサイクル数の前記第1の周期信号と前記単位データとを同期させて順に送信し、さらに所定のサイクル数の前記第1の周期信号を送信する
    請求項1記載のインターフェース回路。
  4.  前記メモリ側インターフェース回路は、前記リードデータが送信されない未送信期間において当該未送信期間内に送信したサイクル数が前記所定のサイクル数に達するまで前記第1の周期信号を繰り返し送信する
    請求項3記載のインターフェース回路。
  5.  前記コントローラ側インターフェース回路は、所定のサイクル数を設定する設定コマンドを前記メモリ側インターフェース回路へ送信する
    請求項3記載のインターフェース回路。
  6.  前記コントローラ側インターフェース回路は、所定数のパターンデータの送信を指示する開始コマンドを前記メモリ側インターフェース回路に送信し、
     前記メモリ側インターフェース回路は、前記開始コマンドに従って前記所定数と同じサイクル数の前記第1の周期信号と前記パターンデータとを同期させて前記コントローラ側インターフェース回路に送信し、
     前記コントローラ側インターフェース回路は、前記送信されたパターンデータを前記第1の周期信号に同期して前記複数段の保持部に順に保持し、前記第2の周期信号に同期して前記保持したパターンデータを順に読み出して当該読み出したパターンデータの個数と前記所定数との差を設定する前記設定コマンドを前記メモリ側インターフェース回路へ送信する
    請求項5記載のインターフェース回路。
  7.  前記単位データは、第1および第2のデータを含み、
     前記メモリ側インターフェース回路は、前記第1の周期信号の立上りに同期して前記第1のデータを送信し、前記第1の周期信号の立下りに同期して前記第2のデータを送信する
    請求項1記載のインターフェース回路。
  8.  メモリセルと、
     前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の周期信号と前記単位データとを同期させて順に送信するインターフェース回路と
    を具備する記憶装置。
  9.  メモリセルと、
     前記メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信するメモリ側インターフェース回路と、
     前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力するコントローラ側インターフェース回路と
    を具備する情報処理システム。
  10.  メモリ側インターフェース回路が、メモリセルから読み出されたリードデータを所定単位ごとに分割した単位データの個数より多いサイクル数の第1の周期信号と前記単位データとを同期させて順に送信する送信手順と、
     コントローラ側インターフェース回路が、前記送信された単位データを前記第1の周期信号に同期して複数段の保持部に順に保持し、第2の周期信号に同期して前記保持した単位データを順に読み出して出力する受信手順と
    を具備するインターフェース回路の制御方法。
     
PCT/JP2015/078607 2014-11-10 2015-10-08 インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法 WO2016076043A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/522,383 US20180293025A1 (en) 2014-11-10 2015-10-08 Interface circuit, memory device, information processing system, and interface circuit controlling method
JP2016558933A JP6500910B2 (ja) 2014-11-10 2015-10-08 インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-227704 2014-11-10
JP2014227704 2014-11-10

Publications (1)

Publication Number Publication Date
WO2016076043A1 true WO2016076043A1 (ja) 2016-05-19

Family

ID=55954135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078607 WO2016076043A1 (ja) 2014-11-10 2015-10-08 インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法

Country Status (3)

Country Link
US (1) US20180293025A1 (ja)
JP (1) JP6500910B2 (ja)
WO (1) WO2016076043A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156188A (ja) * 2017-03-15 2018-10-04 富士通株式会社 メモリ制御装置、情報処理装置およびメモリ制御方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190023796A (ko) * 2017-08-30 2019-03-08 에스케이하이닉스 주식회사 메모리 시스템, 메모리 시스템의 동작 방법 및 메모리 장치
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
US10915474B2 (en) * 2017-11-29 2021-02-09 Micron Technology, Inc. Apparatuses and methods including memory commands for semiconductor memories
FR3077655A1 (fr) * 2018-02-05 2019-08-09 Proton World International N.V. Gestion d'une memoire non volatile
US10418073B1 (en) * 2018-10-18 2019-09-17 Micron Technology, Inc. Power noise reduction technique for high density memory with frequency adjustments
US11609868B1 (en) * 2020-12-31 2023-03-21 Waymo Llc Control calibration timing to avoid memory write blackout period

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189081A (ja) * 1991-07-20 1993-07-30 Internatl Business Mach Corp <Ibm> 信号転送方法及び信号転送装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100364127B1 (ko) * 1997-12-29 2003-04-11 주식회사 하이닉스반도체 칩-세트
US7308524B2 (en) * 2003-01-13 2007-12-11 Silicon Pipe, Inc Memory chain
US7171508B2 (en) * 2004-08-23 2007-01-30 Micron Technology, Inc. Dual port memory with asymmetric inputs and outputs, device, system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189081A (ja) * 1991-07-20 1993-07-30 Internatl Business Mach Corp <Ibm> 信号転送方法及び信号転送装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156188A (ja) * 2017-03-15 2018-10-04 富士通株式会社 メモリ制御装置、情報処理装置およびメモリ制御方法

Also Published As

Publication number Publication date
JPWO2016076043A1 (ja) 2017-08-24
JP6500910B2 (ja) 2019-04-17
US20180293025A1 (en) 2018-10-11

Similar Documents

Publication Publication Date Title
JP6500910B2 (ja) インターフェース回路、記憶装置、情報処理システム、および、インターフェース回路の制御方法
KR102401271B1 (ko) 메모리 시스템 및 그 동작 방법
US20070156996A1 (en) Memory system with improved additive latency and method of controlling the same
US20140237177A1 (en) Memory module and memory system having the same
US10224082B2 (en) Semiconductor device and method of operation
JP2014241057A (ja) インターフェース制御回路、メモリシステム、および、インターフェース制御回路の制御方法
US20200066325A1 (en) Semiconductor devices and semiconductor systems including the semiconductor devices
US11188260B2 (en) Memory module and memory system including the same
US10445176B2 (en) Memory system, memory device and operating method thereof
TWI729239B (zh) 半導體裝置
US20180074895A1 (en) Semiconductor device, semiconductor system, and method thereof
KR102427896B1 (ko) 반도체장치
KR20140108379A (ko) 리프레쉬 어드레스 생성기 및 이를 포함하는 휘발성 메모리 장치
US9449673B2 (en) Memory device and memory system having the same
KR20190088236A (ko) 반도체장치 및 반도체시스템
KR102608909B1 (ko) 반도체장치
US10553261B2 (en) Semiconductor memory apparatus with memory banks and semiconductor system including the same
KR20210079121A (ko) 반도체장치 및 반도체시스템
US11783880B2 (en) Operating method of memory device for extending synchronization of data clock signal, and operating method of electronic device including the same
US20180260345A1 (en) Memory module and memory system including the same
US9043511B2 (en) Semiconductor memory device and operation method thereof
US10290333B2 (en) Semiconductor device
JP2012063874A (ja) チップセレクト信号を切り替えるセレクタ、ストレージ装置、及び電子機器
US11328753B2 (en) Methods of performing self-write operation and semiconductor devices used therefor
US11705170B2 (en) Memory device related to performing a column operation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15859046

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016558933

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15522383

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15859046

Country of ref document: EP

Kind code of ref document: A1