WO2015170550A1 - 記憶制御装置、記憶装置、および、その記憶制御方法 - Google Patents

記憶制御装置、記憶装置、および、その記憶制御方法 Download PDF

Info

Publication number
WO2015170550A1
WO2015170550A1 PCT/JP2015/061235 JP2015061235W WO2015170550A1 WO 2015170550 A1 WO2015170550 A1 WO 2015170550A1 JP 2015061235 W JP2015061235 W JP 2015061235W WO 2015170550 A1 WO2015170550 A1 WO 2015170550A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
command
memory
read
data
Prior art date
Application number
PCT/JP2015/061235
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 CN201580022404.3A priority Critical patent/CN106255961B/zh
Priority to US15/307,360 priority patent/US20170052739A1/en
Priority to JP2016517847A priority patent/JP6447629B2/ja
Publication of WO2015170550A1 publication Critical patent/WO2015170550A1/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
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result

Definitions

  • This technology relates to a storage control device. More specifically, the present invention relates to a storage control device, a storage device, a storage control method thereof, and a program for causing a computer to execute the method to make access to a storage area efficient.
  • a resistance change memory which is a kind of nonvolatile memory
  • information is recorded by changing a resistance value of a memory cell by applying a current pulse or a voltage pulse.
  • the polarity or magnitude of the voltage or current differs between a pulse that changes a cell in a low resistance state to a high resistance state and a pulse that changes a cell in a high resistance state to a low resistance state. If a pulse for changing to a low resistance state is further applied to a cell that is already in a low resistance state, the cell characteristics may deteriorate. The same applies to a cell in a high resistance state.
  • the present technology has been created in view of such a situation, and aims to make the access to the storage area more efficient when reading and writing to the same address continues.
  • the present technology has been made to solve the above-described problems.
  • the first aspect of the present technology reads out data stored in a predetermined address of the memory array from the memory array as read data and reads out the read data.
  • a storage device including a memory writing unit that writes to a write target address of the array, and a control unit that controls the memory writing unit to operate only when the write target address matches the predetermined address, and This is a storage control method. This brings about the effect that the pre-read process at the time of writing becomes unnecessary.
  • control unit determines whether the write target address and the predetermined address are issued when a command is issued to continuously read and write from the memory array to the same address. You may make it judge that it corresponds.
  • control unit when a command for outputting the read data held in the read data holding unit to the request source is issued, It may be determined that the address matches.
  • control unit sets the write target address and the write target address when a command is issued to perform writing without holding new data in the read data holding unit. It may be determined that the predetermined address matches.
  • control unit includes an address match detection unit that detects the match between the write target address and the predetermined address, and the write target address matches the predetermined address. Whether or not to do so may be determined.
  • an information processing system including a storage device, a memory controller that controls an access request to the storage device, and a host computer that issues an access command to the storage device to the memory controller.
  • the memory device reads the data stored at a predetermined address of the memory array from the memory array as read data and holds the read data holding unit in the read data holding unit, and holds the read data holding unit in the read data holding unit
  • a read data output unit that outputs the read data to the request source, a write data to the memory array, a memory write unit that writes to the write target address of the memory array based on the read data, and the write target Address and the above specified address Only when the bets are matched an information processing system comprising a control unit for controlling so as to operate the memory write unit. This brings about an effect that the pre-read processing when writing is performed in accordance with a request from the host computer.
  • FIG. 12 is a flowchart illustrating an example of a processing procedure of a read command of the storage device 300 according to the embodiment of the present technology.
  • FIG. 38 is a timing diagram illustrating an example of a read command processing procedure in the storage device 300 according to the embodiment of the present technology.
  • 12 is a flowchart illustrating an example of a processing procedure of a write command in the storage device 300 according to the embodiment of the present technology.
  • FIG. 38 is a timing diagram illustrating an example of a write command processing procedure of the storage device 300 according to the embodiment of the present technology.
  • 12 is a flowchart illustrating an example of a processing procedure of an RW command in the storage device 300 according to the first embodiment of the present technology.
  • FIG. 12 is a timing diagram illustrating an example of a processing procedure of an RW command in the storage device 300 according to the first embodiment of the present technology.
  • FIG. 3 is a flowchart illustrating an example of a command reception processing procedure of the memory controller 200 according to the first embodiment of the present technology.
  • 3 is a flowchart illustrating an example of a command transmission procedure of the memory controller 200 according to the first embodiment of the present technology.
  • 12 is a flowchart illustrating an example of a processing procedure of a DATAOUT command of the storage device 300 according to the second embodiment of the present technology.
  • FIG. 28 is a timing diagram illustrating an example of a processing procedure of a DATAOUT command in the storage device 300 according to the second embodiment of the present technology.
  • FIG. 22 is a flowchart illustrating an example of a processing procedure of a BW command in the storage device 300 according to the third embodiment of the present technology.
  • FIG. 28 is a timing diagram illustrating an example of a processing procedure of a single BW command in the storage device 300 according to the third embodiment of the present technology.
  • FIG. 28 is a timing diagram illustrating an example of a processing procedure when a BW command of the storage device 300 according to the third embodiment of the present technology is executed immediately after a read command. It is a figure showing an example of 1 composition of read address detection register 327 in a 4th embodiment of this art.
  • 22 is a flowchart illustrating an example of a processing procedure performed by the IF 320 of the storage device 300 according to the fourth embodiment of the present technology.
  • FIG. 28 is a timing diagram illustrating an example of a processing procedure of a single BW command in the storage device 300 according to the third embodiment of the present technology.
  • FIG. 28 is a timing diagram illustrating an example of a
  • 28 is a timing diagram illustrating an example of a high-speed write processing procedure according to the fourth embodiment of the present technology.
  • 22 is a flowchart illustrating an example of a processing procedure performed by the memory controller 200 according to the sixth embodiment of the present technology.
  • 22 is a flowchart illustrating an example of a processing procedure performed by the memory controller 200 according to the seventh embodiment of the present technology.
  • FIG. 1 is a diagram illustrating a configuration example of a memory system according to an embodiment of the present technology. In this figure and the subsequent figures, only the circuit configuration and signal lines necessary for the description of each embodiment are shown, but other circuits and signal lines necessary for the memory system are also provided.
  • the memory system includes a host computer 100, a memory controller 200, and one or more storage devices 300.
  • the storage device 300 includes an interface (IF) 320 and one or more banks 310.
  • the host computer 100 issues a command for requesting data read processing or write processing to the storage device 300.
  • the host computer 100 continuously transmits a command instructing the operation of the memory controller 200 and an address indicating an operation target of the command through the Host_CmdAddr signal line 109.
  • the host computer 100 transmits / receives data to / from the memory controller 200 through the Host_Data signal line 108.
  • the memory controller 200 communicates with the host computer 100, receives commands, and accesses the storage device 300.
  • the memory controller 200 includes a command address register 210 that temporarily holds a command and an address received via the Host_CmdAddr signal line 109.
  • the memory controller 200 also includes a data buffer 220 that temporarily stores received data.
  • the memory controller 200 also includes a status register 230 that holds the internal state of the storage device 300 received via the Memory_Status signal line 207.
  • the memory controller 200 also includes an ECC circuit 240 that detects and corrects data errors.
  • the memory controller 200 transmits commands instructing various operations of the storage device 300 and the operation target address to the IF 320 in the storage device 300 via the IF_CmdAddr signal line 209. Data is transmitted to and received from the IF 320 via the IF_Data signal line 208. Further, the memory controller 200 receives the internal state of the storage device 300 from the IF 320 via the Memory_Status signal line 207 and holds it in the status register 230.
  • Each bank 310 includes an NVM (Non-Volatile Memory) array 311, a read latch 312, a write latch 313, and a comparator 314.
  • the NVM array 311 is a storage area for storing data.
  • the NVM array 311 has a structure composed of a large number of nonvolatile memory cells arranged on a two-dimensional or three-dimensional lattice and a peripheral circuit that controls the memory cells.
  • the read latch 312 and the write latch 313 are circuits for temporarily holding data when accessing the NVM array 311.
  • the read latch 312 and the write latch 313 may be realized by a latch circuit, a flip-flop circuit, or an SRAM.
  • Comparator 314 is composed of logic gates, compares the contents of read latch 312 and write latch 313, and generates reference signals (Data_Set signal line 317 and Data_Reset signal line 318) when NVM array 311 applies a pulse. It is a circuit for.
  • the read latch 312, the write latch 313, and the comparator 314 are provided in the bank 310 of the storage device 300, but these may be provided in the memory controller 200.
  • control unit may be provided in the memory controller 200.
  • FIG. 2 is a diagram illustrating a resistance state of a resistance change type memory as an example of a nonvolatile memory configuring the NVM array 311 according to the embodiment of the present technology.
  • the memory cell of the resistance change type memory transits to LRS (low resistance state) by the set operation, and transits to HRS (high resistance state) by the reset operation.
  • LRS low resistance state
  • HRS high resistance state
  • a non-volatile memory capable of storing one bit by one memory cell is realized.
  • HRS is defined as a state in which “0” is recorded
  • LRS is defined as a state in which “1” is recorded.
  • the set operation is realized by applying a voltage (or current) pulse called a set pulse to both ends of one memory cell.
  • the reset operation is realized by applying a voltage (or current) pulse called a reset pulse to both ends of one memory cell.
  • FIG. 3 is a diagram illustrating an example of a truth table of the comparator 314 according to the embodiment of the present technology.
  • the comparator 314 When the value to be written (Compare_W) is the same as the existing value (Compare_R), the comparator 314 outputs “0” to both the Data_Set signal line 317 and the Data_Reset signal line 318.
  • the input / output of the comparator 314 is 1 bit, but the input / output of the comparator 314 may be multi-bit. In that case, an operation based on the above truth table is performed in parallel on each input / output bit.
  • the NVM array 311 operates a memory cell specified by the Array_Address signal line 321 in accordance with the value of the Array_Control signal line 322 from the IF 320.
  • the NVM array 311 includes data input buses (Data_Set signal line 317 and Data_Reset signal line 318) necessary for setting or resetting memory cells.
  • the NVM array 311 includes a bus (Read_Latch_In signal line 319) for outputting data read from the memory cell. Further, the NVM array 311 transmits its own state to the IF 320 through the Array_Status signal line 326.
  • the NVM array 311 recognizes “Sense” and “Program” as signals of the Array_Control signal line 322, and does nothing even if other signals are input.
  • the IF 320 When the Array_Status signal line 326 indicates “Ready”, the IF 320 outputs “sense” or “program” as the signal of the Array_Control signal line 322. This causes the NVM array 311 to start a new sense operation or program operation.
  • the Read_Latch_In signal line 319 is an example of a memory reading unit described in the claims.
  • FIG. 4 is a flowchart showing an example of the sensing operation of the NVM array 311 in the embodiment of the present technology. This sensing operation starts when “sense” is output from the IF 320 to the Array_Control signal line 322.
  • the NVM array 311 sets the Array_Status signal line 326 to “being sensed” (step S911).
  • the address value (“0” in the example in the figure) output to the Array_Address signal line 321 the resistance value of the memory cell at the address is measured, and the logical value is determined by comparison with the read threshold. Determination is made (step S912).
  • the data read in this way is output to the Read_Latch_In signal line 319 (step S913).
  • the NVM array 311 sets the Array_Status signal line 326 to “ready”, and the sensing operation is completed (step S914).
  • FIG. 5 is a flowchart showing an example of the program operation of the NVM array 311 in the embodiment of the present technology.
  • This program operation starts when “program” is output as an Array_Control signal from IF 320.
  • the operation target address (Array_Address) is “0” and the value already written in the address # 0 is “0011”. It is assumed that “0100” is set in the Data_Set signal line 317 and “0010” is set in the Data_Reset signal line 318.
  • the NVM array 311 sets the Array_Status signal line 326 to “being programmed” (step S921).
  • the Data_Set signal line 317 only the bit indicated by the value of the Data_Set signal line 317 is selected from the bit string of the address # 0, and the set pulse is applied (step S922).
  • the Data_Set signal line 317 is “0100”
  • the address # 0 is rewritten from “0011” to “0111”.
  • the resistance of the bit to which the pulse is applied is measured, and it is confirmed that “1” is read out. If the resistance change due to the set pulse is incomplete and “1” has not been read (step S923: No), the set pulse is applied again.
  • step S924 the reset pulse is applied again.
  • the Data_Reset signal line 318 is “0010”, only the third bit from the top is selected, and the address # 0 is rewritten from “0111” to “0101”.
  • the NVM array 311 sets the Array_Status signal line 326 to “ready”, and the program operation is completed (step S926).
  • FIG. 6 is a diagram illustrating an example of an address space of the storage device 300 according to the embodiment of the present technology.
  • the address indicated by the IF_CmdAddr signal line 209 in this embodiment includes a bank number and a number uniquely assigned to each of the NVM arrays 311 in the bank which are divided for each minimum access unit.
  • the minimum access unit is, for example, 1 Kbyte.
  • All addresses are 19 bits, the upper 3 bits indicate the bank number, and the lower 16 bits indicate the address in the bank.
  • [command] Access to the storage device 300 by the memory controller 200 is realized by a combination of three commands: a read command, a write command, and an RW command. Each operation is shown below. Note that the RW command is an example of a command indicating that reading and writing from the memory array described in the claims are continuously performed on the same address.
  • FIG. 7 is a flowchart illustrating an example of a read command processing procedure of the storage device 300 according to the embodiment of the present technology.
  • FIG. 8 is a timing diagram illustrating an example of a read command processing procedure of the storage device 300 according to the embodiment of the present technology.
  • the address specified by the IF_CmdAddr signal line 209 points to the address # 0 in the bank # 0.
  • the IF 320 refers to the Array_Status signal line 326 of the bank # 0 and waits until the value becomes “ready” (steps S931 and S932).
  • the IF 320 outputs “0” to the Array_Address signal line 321 of bank # 0 and “sense” to the Array_Control signal line 322 (represented as “S” in the figure) ( Step S933).
  • the NVM array 311 starts a sensing operation, and the Array_Status signal line 326 transitions to “sensed”.
  • the data read from the NVM array 311 is output to the Read_Latch_In signal line 319 and stored in the read latch 312.
  • the Array_Status signal line 326 transitions to “Ready”.
  • the IF 320 waits until the Array_Status signal line 326 becomes “ready” (steps S934 and S935).
  • “Ready” is set (step S934: Yes)
  • the control signal “R” is output to the Latch_Control signal line 323, and the read data stored in the read latch 312 is read via the Read_Latch_Out signal line 324.
  • the IF 320 outputs the read data to the memory controller 200 via the IF_Data signal line 208 (step S936).
  • the Read_Latch_Out signal line 324 is an example of a read data output unit described in the claims.
  • FIG. 9 is a flowchart illustrating an example of a write command processing procedure of the storage device 300 according to the embodiment of the present technology.
  • FIG. 10 is a timing diagram illustrating an example of a write command processing procedure of the storage device 300 according to the embodiment of the present technology.
  • the address specified on the IF_CmdAddr signal line 209 points to the address # 0 in the bank # 0.
  • the memory controller 200 When the memory controller 200 outputs the write command and the address # 0 (represented as “W_A0” in the figure) to the IF_CmdAddr signal line 209, the processing of the write command starts.
  • the memory controller 200 outputs write data (represented as “W_Data” in the figure) to the IF_Data signal line 208 along with the issue of the write command.
  • the IF 320 sequentially outputs the received write data to the Write_Latch_In signal line 325 of the bank # 0 (Step S941).
  • the IF 320 refers to the Array_Status signal line 326 of the bank # 0 and waits for the value to become “ready” (steps S942 and S943).
  • the IF 320 outputs “0” to the Array_Address signal line 321 and “sense” to the Array_Control signal line 322 of the bank # 0 (step S944).
  • the NVM array 311 starts a sensing operation, and the Array_Status signal line 326 transitions to “sensed”.
  • the Array_Status signal line 326 transitions to “Ready”, and at that time, the input of the data read from the NVM array 311 to the read latch 312 is completed.
  • the IF 320 waits until the Array_Status signal line 326 becomes “ready” (steps S945 and S946).
  • “Ready” is set (step S945: Yes)
  • the IF 320 transmits the control signal “C” to the Latch_Control signal line 323, thereby outputting the data accumulated in the read latch 312 and the write latch 313 to the comparator 314. Order to do.
  • read data obtained by the sensing operation via the Compare_R signal line 315 is output from the read latch 312 and write data is output from the write latch 313 via the Compare_W signal line 316 (step S947).
  • the Compare_R signal line 315 and the Compare_W signal line 316 are converted into a Data_Set signal line 317 and a Data_Reset signal line 318 through calculation by the comparator 314, and input to the NVM array 311.
  • the IF 320 outputs “program” to the Array_Control signal line 322 of the bank # 0 (indicated as “P” in the drawing) (step S948).
  • the NVM array 311 starts the program operation, and the Array_Status signal line 326 transits to “being programmed” and returns to “ready” when the program operation is completed.
  • the IF 320 waits until the Array_Status signal line 326 becomes “ready” (steps S951 and S952). When the IF 320 confirms that it is “ready” (step S951: Yes), the write command is completed.
  • FIG. 11 is a flowchart illustrating an example of a processing procedure of the RW command in the storage device 300 according to the first embodiment of the present technology.
  • FIG. 12 is a timing diagram illustrating an example of a processing procedure of the RW command in the storage device 300 according to the first embodiment of the present technology.
  • the address specified on the IF_CmdAddr signal line 209 points to the address # 0 in the bank # 0.
  • the memory controller 200 When the memory controller 200 outputs the RW command and the address # 0 (represented as “W_A0” in the drawing) to the IF_CmdAddr signal line 209, the processing of the RW command starts.
  • the memory controller 200 outputs write data (represented as “W_Data” in the figure) to the IF_Data signal line 208 along with the issuance of the RW command.
  • the IF 320 sequentially outputs the received write data to the Write_Latch_In signal line 325 of the bank # 0 (Step S961).
  • the IF 320 refers to the Array_Status signal line 326 of the bank # 0 and waits for the value to become “ready” (steps S962 and S963).
  • the IF 320 outputs “0” to the Array_Address signal line 321 and “sense” to the Array_Control signal line 322 of the bank # 0 (step S964).
  • the NVM array 311 starts a sensing operation, and the Array_Status signal line 326 transitions to “sensed”.
  • the Array_Status signal line 326 transitions to “Ready”, and at that time, the input of the data read from the NVM array 311 to the read latch 312 is completed.
  • the IF 320 waits until the Array_Status signal line 326 becomes “ready” (steps S965 and S966).
  • “Ready” is set (step S965: Yes)
  • the control signal “C + R” is transmitted to the Latch_Control signal line 323.
  • the data stored in the read latch 312 and the write latch 313 are output to the comparator 314 (step S968) and also output to the Read_Latch_Out signal line 324.
  • the data output to the Read_Latch_Out signal line 324 is output from the IF 320 to the memory controller 200 via the IF_Data signal line 208 (step S967).
  • the Compare_R signal line 315 and the Read_Latch_Out signal line 324 are independent and can be operated simultaneously.
  • the IF 320 then outputs “program” to the Array_Control signal line 322 of the bank # 0 (denoted as “P” in the drawing) (step S969).
  • the NVM array 311 starts the program operation, and the Array_Status signal line 326 transits to “being programmed” and returns to “ready” when the program operation is completed.
  • the IF 320 waits until the Array_Status signal line 326 becomes “ready” (steps S971 and S972). When the IF 320 confirms that it is “ready” (step S971: Yes), the RW command is completed.
  • the operation is the same as that of the write command until the data is read to the read latch 312, but not only the data accumulated in the read latch is output to the comparator 314 but also to the Read_Latch_Out signal line 324. Is also output.
  • the RW command can realize writing and reading to the same address in the same execution time as the write command.
  • step S964 is an example of a memory read procedure described in the claims.
  • Step S967 is an example of a read data output procedure described in the claims.
  • Step S969 is an example of a memory write procedure described in the claims.
  • the memory controller 200 receives a command and an address from the host computer 100 via the Host_CmdAddr signal line 109.
  • the host computer 100 transmits at least two types of commands: a Host_WRITE command that instructs data writing to the storage device 300 and a Host_READ command that instructs reading from the storage device 300. At that time, the address to be accessed by these commands is transmitted.
  • the host computer 100 outputs write data to the memory controller 200 via the Host_Data signal line 108 simultaneously with the transmission of the write command.
  • FIG. 13 is a flowchart illustrating an example of a command reception processing procedure of the memory controller 200 according to the first embodiment of the present technology. Each time the memory controller 200 receives a command from the host computer 100, the memory controller 200 starts the processing of this flowchart.
  • step S981 When a command other than the Host_WRITE command is received (step S981: No), the signal from the Host_CmdAddr signal line 109 is stored in the command address register 210 (step S985).
  • the memory controller 200 receives the write data from the Host_Data signal line 108 and stores it in the data buffer 220 (step S982). Then, it is checked whether or not a read command for the same address as the received Host_WRITE command exists in the command address register 210. If it does not exist in the command address register 210 (step S983: No), the write command and the received address are added to the command address register 210. If it exists in the command address register 210 (step S983: Yes), the last received command among the read commands for the same address is rewritten to the RW command (step S984). The data received together with the Host_WRITE command and stored in the data buffer 220 is set as write data corresponding to the RW command.
  • FIG. 14 is a flowchart illustrating an example of a command transmission procedure of the memory controller 200 according to the first embodiment of the present technology.
  • the memory controller 200 processes instructions stored in the command address register 210.
  • the memory controller 200 takes out the oldest (first added) command address from the command address register 210 at regular time intervals (step S991). Then, it is checked with reference to the status register 230 whether the bank corresponding to the extracted address is “ready”. If it is not “ready” (step S992: No), the process is terminated as it is. If it is “ready” (step S992: Yes), the extracted command address is sent to the IF_CmdAddr signal line 209 (step S993). If the extracted command is a write command or an RW command (step S994: Yes), the write data received from the host computer 100 together with the Host_WRITE command is stored in the data buffer 220. Therefore, it is sent to the IF_Data signal line 208 (step S995). The memory controller 200 deletes the last sent command address from the command address register 210 (step S996) and ends the process.
  • the memory controller 200 determines whether or not a Host_WRITE command for the same address has been received before sending a read command corresponding to the Host_READ command from the host computer 100 to the IF 320. With respect to such a Host_WRITE command, the memory controller 200 can perform processing in a shorter time than executing the read command and the write command by using the RW command.
  • the processing can be speeded up by replacing the read command and the write command for the same address with the RW command.
  • the IF_Data signal line 208 is a data bus shared by a plurality of banks. It is also assumed that a parallel operation is performed such that another command is issued to another bank while writing or reading is being performed in a certain bank. However, in the first embodiment, when issuing a RW command to a certain bank and subsequently issuing a read command or a write command to another bank, it is necessary to avoid data collision. In other words, the memory controller 200 needs to adjust the command issuance interval so that the output of the read data for the RW command and the data input / output for the subsequent command do not collide. In particular, when the time required for the sensing operation is not a constant value, it is difficult to avoid data collision.
  • the DATAOUT command of the storage device 300 that only outputs data from the read latch 312 to the IF 320 is defined, and the same operation as the RW command is realized by a combination of the write command and the DATAOUT command.
  • the DATAOUT command is an example of a command for outputting the read data held in the read data holding unit described in the claims to the request source.
  • FIG. 15 is a flowchart illustrating an example of a processing procedure of the DATAOUT command of the storage device 300 according to the second embodiment of the present technology.
  • FIG. 16 is a timing diagram illustrating an example of a processing procedure of a DATAOUT command in the storage device 300 according to the second embodiment of the present technology.
  • both the write command and the DATAOUT command are issued to address # 0 of bank # 0.
  • the IF 320 When the IF 320 receives the DATAOUT command, the IF 320 outputs the contents of the read latch 312 to the memory controller 200 (step S811).
  • the memory controller 200 first issues a write command, detects that the state of the NVM array 311 has changed from “sensed” to “ready” by the Memory_Status signal line 207, and then issues a DATAOUT command (“DO_A0 in the figure). ").
  • a DATAOUT command (“DO_A0 in the figure). ").
  • data can be output from the read latch 312 while writing from the write latch 313 to the NVM array 311 is being performed (while the Array_Status signal line 326 is “being programmed”). That is, similarly to the RW command, writing to and reading from the same address can be processed with the same execution time as the write command.
  • the DATAOUT command is issued with the address “0” as well as other commands.
  • the DATAOUT command does not access the NVM array 311, only the bank number is required for execution. is there. Therefore, only the portion indicating the bank in the bit string of the address may be output.
  • data output is started from the Read_Latch_Out signal line 324 immediately after the Array_Status signal line 326 becomes “ready”, but in this second embodiment, the output of read data is somewhat delayed. This is because in the second embodiment, the data output is performed after the IF 320 recognizes the DATAOUT command. Further, in the second embodiment, since a function for one RW command is realized by a combination of two commands, the command bus is occupied more than in the first embodiment.
  • the processing can be speeded up by replacing the read command and the write command for the same address with the combination of the write command and the DATAOUT command.
  • the first embodiment described above is a technique that has a great speed improvement effect in that data output can be performed simultaneously in the same execution time as the write command.
  • the data read by inputting the write data first is output later, and the order of the data in the IF_Data signal line 208 is reversed compared to the case where the normal read command and the write command are sequentially executed. End up. Therefore, the control from the memory controller 200 may be complicated depending on the configuration of the memory system.
  • a technique for increasing the speed while taking the same data input / output order as in the case of performing the normal read command and the write command in order will be described. Specifically, in addition to the normal read command and write command, a BW (BLIND WRITE) command is introduced in which the sensing operation performed at the beginning of writing is omitted.
  • BW BLIND WRITE
  • FIG. 17 is a flowchart illustrating an example of a processing procedure of the BW command in the storage device 300 according to the third embodiment of the present technology.
  • the BW command is an example of a command for writing the address to be written described in the claims without holding new data in the read data holding unit.
  • This BW command processing corresponds to a normal write command processing procedure in which processing for outputting “sense” to the Array_Control signal line 322 and subsequent confirmation processing for the Array_Status signal line 326 are omitted. That is, steps S944 to S946 are omitted from the flowchart shown in FIG. Therefore, the description here is omitted.
  • the sensing operation is omitted, and the value already stored in the read latch 312 is output to the Compare_R signal line 315.
  • FIG. 18 is a timing diagram illustrating an example of a processing procedure of a single BW command in the storage device 300 according to the third embodiment of the present technology.
  • FIG. 19 is a timing diagram illustrating an example of a processing procedure when the BW command of the storage device 300 according to the third embodiment of the present technology is executed immediately after the read command.
  • the read data is stored in the read latch 312 by processing the read command first.
  • the comparison in the comparator 314 is performed using the value already stored in the read latch 312 without performing a sense operation again. Thereby, the processing time required for the sensing operation can be reduced. Further, since the processing order is the same as the case where the normal read command and the write command are performed in order, complication of control can be avoided.
  • the processing can be speeded up by replacing the read command and the write command for the same address with the combination of the read command and the BW command.
  • the memory controller 200 accumulates instructions from the host computer 100 and replaces the read command and write command for the same address with other commands.
  • the IF 320 of the storage device 300 performs the processing.
  • FIG. 20 is a diagram illustrating a configuration example of the read address detection register 327 according to the fourth embodiment of the present technology.
  • the read address detection register 327 is provided in the IF 320.
  • the read address detection register 327 is a register in which one register number is assigned to each bank, and holds the address read immediately before in the bank. In the fourth embodiment, the contents of the write processing are switched using this read address detection register 327.
  • the read address detection register 327 is an example of an address match detection unit described in the claims.
  • FIG. 21 is a flowchart illustrating an example of a processing procedure performed by the IF 320 of the storage device 300 according to the fourth embodiment of the present technology.
  • the address X belongs to the bank Y.
  • step S841 When a read command is output to the IF_CmdAddr signal line 209 (step S841: read), the IF 320 executes processing in the same manner as a normal read command (step S842). Thereafter, the read target address is stored in the read address detection register 327. That is, when the address X belongs to the bank Y, after performing the reading process for the address X, the register number Y is overwritten to X (step S843).
  • step S841 When a write command is output to the IF_CmdAddr signal line 209 (step S841: write), a value corresponding to the write target bank is read from the read address detection register 327 and compared with the write target address (step S844). If they match (step S845: Yes), the IF 320 executes the same processing as the BW command (step S846). On the other hand, if they do not match (step S845: No), the same processing as a normal write command is executed (step S847). When writing to the same address as the address read last time, a sensing operation is performed in the reading process. Therefore, since the data read from the NVM array 311 is stored in the read latch 312, the value of the read latch 312 can be referred to as the Compare_R signal without performing a sensing operation, and writing can be performed correctly.
  • the IF 320 initializes the value of the read address detection register 327 with an invalid address (step S848).
  • the IF 320 may handle commands other than the read command and the write command (step S841: other). For example, a command for suspending memory access and entering a low power consumption state can be considered. If there is a possibility that the read latch 312 will change in such a command (step S852: Yes), the read address detection register 327 is initialized (step S853). As a result, when the next write command is received, the wrong value of the read latch 312 is not referred to as the value of the Compare_R signal line 315.
  • FIG. 22 is a timing diagram illustrating an example of a high-speed write processing procedure according to the fourth embodiment of the present technology.
  • the target address “0” is held.
  • writing is performed without performing a sensing operation.
  • the processing speed can be increased by replacing the read command and the write command for the same address with the combination of the read command and the BW command by the IF 320. .
  • the RW command is issued when the memory controller 200 detects that the Host_WRITE command is issued after the Host_READ command for the same address.
  • the host computer 100 is connected to the memory controller 200. Instruct to issue RW command.
  • a Host_RW command, an address, and write data are transmitted from the host computer 100 to the memory controller 200.
  • the memory controller 200 receives the Host_RW command, the memory controller 200 performs the same processing as in FIG. That is, the RW command and the received address are added to the command address register 210, and the write data is stored in the data buffer. Thereafter, the RW command and data are transmitted to the IF 320 by the same processing procedure as in FIG.
  • the host computer 100 may issue the DATAOUT command and the BW command described in the second and third embodiments instead of the RW command.
  • the host computer 100 recognizes that writing is performed immediately after reading from the same address, and issues an RW command or the like from the memory controller 200. Can be instructed to do.
  • the number of times of rewriting is limited in the nonvolatile memory, and it is effective to suppress the variation in the number of times of rewriting between cells in order to extend the rewriting life. Therefore, in order to manage the rewrite life of the nonvolatile memory, a process called wear leveling is known in which data is exchanged between a cell with a large number of rewrites and a cell with a small number of rewrites.
  • a swap area is set in the address space, and processing for temporarily saving data in the main memory to the swap area is generally performed.
  • the host computer often performs a process called data swap, in which data saved in the swap area is read and written to the main memory, and new data is written to the same address in the swap area.
  • data swap a process called data swap, in which data saved in the swap area is read and written to the main memory, and new data is written to the same address in the swap area.
  • FIG. 23 is a flowchart illustrating an example of a processing procedure performed by the memory controller 200 according to the sixth embodiment of the present technology.
  • the host computer 100 transmits the SWAP command and two addresses to be exchanged to the memory controller 200 via the Host_CmdAddr signal line 109.
  • the two addresses respectively indicate different banks or different memory devices.
  • the memory controller 200 When the memory controller 200 receives the SWAP command (step S861), it issues a read command for each of the two addresses to the storage device 300 via the IF_CmdAddr signal line 209. At this time, if the storage devices 300 indicated by the two addresses are the same (step S862: Yes), there is a possibility that the signals collide on the IF_CmdAddr signal line 209 and the IF_Data signal line 208. Therefore, two read commands are issued at a necessary interval so that the two companies do not collide (steps S863 and S864).
  • the memory controller 200 receives the read data output from the IF_Data signal line 208, performs error detection and correction by the ECC circuit 240, and stores it in the data buffer 220 (step S866). After the read data from the two addresses is prepared in the data buffer 220 (step S867: Yes), a BW command is issued to the two addresses and high-speed writing is performed (step S868).
  • step S869 After transmitting the BW command, the Memory_Status signal line 207 is referred to (step S869), and it is confirmed that both of the banks to which the two addresses belong have transitioned from “in program” to “ready” (steps S871, S872). ), The process is terminated.
  • the data swap can be speeded up using the BW command.
  • the recorded value slightly changes every time reading is performed, and if reading is repeated a certain number of times, a reading failure may occur. This is called a read disturb failure.
  • a read disturb failure In order to prevent this read disturb failure, data is rewritten after a certain number of readings. This is called refresh. This refresh is realized by detecting and correcting an error after reading data and writing to the same address again.
  • refresh In the seventh embodiment, a method for speeding up refresh using the BW command described in the third embodiment will be described.
  • FIG. 24 is a flowchart illustrating an example of a processing procedure performed by the memory controller 200 according to the seventh embodiment of the present technology.
  • the memory controller 200 receives a refresh command and an address from the host computer 100 via the Host_CmdAddr signal line 109
  • this processing procedure starts.
  • a read command is transmitted to the address of the storage device 300 indicated by the address received from the host computer 100 via the IF_CmdAddr signal line 209 (step S881).
  • read data output from the IF_Data signal line 208 is received, and error detection and correction are performed by the ECC circuit 240 (step S882).
  • the ECC circuit 240 outputs a signal indicating whether error correction has occurred.
  • the memory controller 200 receives this, and when error correction does not occur (when no read disturb failure has occurred and all bits can be read correctly) (step S883: No), nothing is done. The refresh process is completed. On the other hand, when error correction occurs (when a read disturb failure occurs and an incorrect value is read) (step S883: Yes), a BW command is transmitted to the address together with the corrected data. (Step S884).
  • step S885 the Memory_Status signal line 207 is referred to (step S885), and it is confirmed that the bank has changed from “being programmed” to “ready” (steps S886 and S887), and the processing is terminated.
  • the read data held in the read latch 312 is compared with the data after error correction by ECC, and the write voltage is applied only to the corrected bit by the program operation, and the read disturb failure is corrected.
  • 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 read unit that reads data stored at a predetermined address of the memory array from the memory array as read data and holds the read data in the read data holding unit;
  • a read data output unit that outputs the read data held in the read data holding unit to a request source;
  • a memory writing unit for writing to a write target address of the memory array based on the write data to the memory array and the read data;
  • a control unit that controls the memory writing unit to operate only when the write target address matches the predetermined address.
  • the control unit determines that the write target address matches the predetermined address when a command is issued to continuously read from and write to the memory array at the same address.
  • the storage device according to 1).
  • the control unit determines that the write target address matches the predetermined address when a command for outputting the read data held in the read data holding unit to a request source is issued.
  • the storage device according to (1) determines whether the write target address and the predetermined address are issued when a command is issued to perform writing without holding new data in the read data holding unit.
  • the storage device according to (1) which is determined to match.
  • the control unit includes an address match detection unit that detects the match between the write target address and the predetermined address, and determines whether or not the write target address matches the predetermined address. The storage device according to (1).
  • An information processing system comprising a storage device, a memory controller that controls an access request to the storage device, and a host computer that issues an access command to the storage device to the memory controller,
  • the storage device reads data stored at a predetermined address of the memory array from the memory array as read data and holds the read data holding unit in the read data holding unit, and the read data holding unit holds the data
  • a read data output unit for outputting read data to a request source; a memory write unit for writing to a write target address of the memory array based on the write data to the memory array and the read data; the write target address and the predetermined data
  • An information processing system comprising: a control unit that controls the memory writing unit to operate only when the address matches.
  • a memory read procedure for reading data stored at a predetermined address of the memory array from the memory array as read data and holding the read data in a read data holding unit;
  • a read data output procedure for outputting the read data held in the read data holding unit to a request source;
  • a memory write procedure for writing to the write target address of the memory array based on write data and read data to the memory array only when the write target address of the memory array matches the predetermined address Storage control method.
  • host computer 100 host computer 200 memory controller 210 command address register 220 data buffer 230 status register 240 ECC circuit 300 storage device 310 bank 311 NVM array 312 read latch 313 write latch 314 comparator 327 read address detection register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 同一アドレスに対する読出しおよび書込みが続く際に、記憶領域に対するアクセスを効率化させる。 メモリ読出し部は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとしてメモリアレイから読み出して読出しデータ保持部に保持させる。読出しデータ出力部は、読出しデータ保持部に保持されている読出しデータを要求元に出力する。メモリ書込み部は、メモリアレイに対する書込みデータおよび読出しデータに基づいてメモリアレイの書込み対象アドレスに書込みを行う。制御部は、書込み対象アドレスと読出しデータのアドレスとが一致する場合にのみメモリ書込み部を動作させるよう制御する。

Description

記憶制御装置、記憶装置、および、その記憶制御方法
 本技術は、記憶制御装置に関する。詳しくは、記憶領域に対するアクセスを効率化させる記憶制御装置、記憶装置、および、その記憶制御方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
 不揮発メモリの一種である抵抗変化メモリにおいては、電流パルスあるいは電圧パルスを印加することによってメモリセルの抵抗値を変化させて、情報を記録する。低抵抗状態にあるセルを高抵抗状態に変化させるパルスと、高抵抗状態にあるセルを低抵抗状態に変化させるパルスとでは、その電圧または電流の極性や大きさが異なる。既に低抵抗状態にあるセルへ、低抵抗状態に変化させるパルスを更に印加すると、セルの特性が劣化するおそれがある。高抵抗状態にあるセルにおいても同様である。したがって、このようなメモリセルに書込みを行う際には、書込みパルスを印加する前に現在のセルの状態を読み出して、現在のセルの状態と書き込もうとする値とが一致している場合には、そのセルにはパルス印加を行わないような制御を行うことが望ましい。このような制御を行うことにより、セルの寿命を延ばすことができ、また、不要なパルス印加による消費電力を削減することができる。例えば、抵抗変化を利用した相変化メモリを想定して、メモリセルへの書込みの際に、現在の値を読み出して、現在の値と書き込もうとする値とが異なるビットにのみ書込みパルスを印加する半導体記憶装置が提案されている(例えば、特許文献1参照。)。
特開2010-244607号公報
 上述の従来技術では、メモリセルへの書込みの際に、一旦、現在の値を読み出すことにより、不要なパルス印加を回避している。しかしながら、データを読み出した直後に同じアドレスに新しいデータを書き込む状況を想定すると、同じデータを続けて2回読み出すことになり、無駄な動作を行っていることになる。このような状況は、ウェアレベリングやデータスワップなどにおいて生じるものであり、実用上、高速な処理が要求される。
 本技術はこのような状況に鑑みて生み出されたものであり、同一アドレスに対する読出しおよび書込みが続く際に、記憶領域に対するアクセスを効率化させることを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして上記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する読出しデータ出力部と、上記メモリアレイに対する書込みデータおよび上記読出しデータに基づいて上記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、上記書込み対象アドレスと上記所定のアドレスとが一致する場合にのみ上記メモリ書込み部を動作させるよう制御する制御部とを具備する記憶装置およびその記憶制御方法である。これにより、書込みを行う際のプレリード処理を不要にするという作用をもたらす。
 また、この第1の側面において、上記制御部は、上記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
 また、この第1の側面において、上記制御部は、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
 また、この第1の側面において、上記制御部は、上記書込み対象アドレスについて上記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドが発行された際に上記書込み対象アドレスと上記所定のアドレスとが一致すると判断するようにしてもよい。
 また、この第1の側面において、上記制御部は、上記書込み対象アドレスと上記所定のアドレスとの上記一致を検出するアドレス一致検出部を備えて、上記書込み対象アドレスと上記所定のアドレスとが一致するか否かを判断するようにしてもよい。
 また、本技術の第2の側面は、記憶装置と、上記記憶装置に対するアクセス要求を制御するメモリコントローラと、上記記憶装置に対するアクセスコマンドを上記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、上記記憶装置は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして上記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、上記読出しデータ保持部に保持されている上記読出しデータを要求元に出力する読出しデータ出力部と、上記メモリアレイに対する書込みデータおよび上記読出しデータに基づいて上記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、上記書込み対象アドレスと上記所定のアドレスとが一致する場合にのみ上記メモリ書込み部を動作させるよう制御する制御部とを備える情報処理システムである。これにより、ホストコンピュータからの要求に従って書込みを行う際のプレリード処理を不要にするという作用をもたらす。
 本技術によれば、同一アドレスに対する読出しおよび書込みが続く際に、記憶領域に対するアクセスを効率化させることができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態におけるメモリシステムの構成例を示す図である。 本技術の実施の形態におけるNVMアレイ311を構成する不揮発メモリの一例としての抵抗変化型メモリの抵抗状態を示す図である。 本技術の実施の形態における比較器314の真理値表の一例を示す図である。 本技術の実施の形態におけるNVMアレイ311のセンス動作の一例を示す流れ図である。 本技術の実施の形態におけるNVMアレイ311のプログラム動作の一例を示す流れ図である。 本技術の実施の形態における記憶装置300のアドレス空間の一例を示す図である。 本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示す流れ図である。 本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示すタイミング図である。 本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示す流れ図である。 本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示すタイミング図である。 本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示す流れ図である。 本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示すタイミング図である。 本技術の第1の実施の形態におけるメモリコントローラ200のコマンド受信処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるメモリコントローラ200のコマンド送出手順例を示す流れ図である。 本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示す流れ図である。 本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示すタイミング図である。 本技術の第3の実施の形態における記憶装置300のBWコマンドの処理手順例を示す流れ図である。 本技術の第3の実施の形態における記憶装置300のBWコマンド単体の処理手順例を示すタイミング図である。 本技術の第3の実施の形態における記憶装置300のBWコマンドをリードコマンドの直後に実行する際の処理手順例を示すタイミング図である。 本技術の第4の実施の形態におけるリードアドレス検出レジスタ327の一構成例を示す図である。 本技術の第4の実施の形態における記憶装置300のIF320による処理手順例を示す流れ図である。 本技術の第4の実施の形態における高速ライトの処理手順例を示すタイミング図である。 本技術の第6の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。 本技術の第7の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(RWコマンドを利用する例)
 2.第2の実施の形態(DATAOUTコマンドを利用する例)
 3.第3の実施の形態(BWコマンドを利用する例)
 4.第4の実施の形態(メモリ装置による検出を契機とする例)
 5.第5の実施の形態(ホストコンピュータによるコマンド発行の例)
 6.第6の実施の形態(データスワップの適用例)
 7.第7の実施の形態(リフレッシュの適用例)
 <1.第1の実施の形態>
 [メモリシステムの構成]
 図1は、本技術の実施の形態におけるメモリシステムの構成例を示す図である。なお、この図および以降の図では各実施の形態の説明に必要な回路構成と信号線のみを記しているが、メモリシステムとして必要なその他の回路および信号線も備えるものとする。
 このメモリシステムは、ホストコンピュータ100と、メモリコントローラ200と、1つ以上の記憶装置300とを備える。記憶装置300は、インターフェース(IF)320と、1つ以上のバンク310とから構成される。
 ホストコンピュータ100は、記憶装置300に対するデータのリード処理やライト処理等を要求するコマンドを発行するものである。このホストコンピュータ100は、Host_CmdAddr信号線109により、メモリコントローラ200の動作を指示するコマンドと、コマンドの操作対象を示すアドレスとを連続して送信する。また、このホストコンピュータ100は、Host_Data信号線108により、メモリコントローラ200との間のデータの送受信を行う。
 メモリコントローラ200は、ホストコンピュータ100と通信してコマンドを受信し、記憶装置300に対するアクセスを行うものである。このメモリコントローラ200は、Host_CmdAddr信号線109によって受信したコマンドおよびアドレスを一時的に保持するコマンドアドレスレジスタ210を備える。また、このメモリコントローラ200は、受信したデータを一時的に保持するデータバッファ220を備える。また、このメモリコントローラ200は、Memory_Status信号線207によって受信した記憶装置300内部の状態を保持するステータスレジスタ230を備える。また、このメモリコントローラ200は、データのエラー検出と訂正を行うECC回路240を備える。
 このメモリコントローラ200は、IF_CmdAddr信号線209により、記憶装置300の様々な動作を指示するコマンドと、操作対象のアドレスとを記憶装置300内のIF320に送信する。そして、IF_Data信号線208を介してIF320との間でデータを送受信する。また、このメモリコントローラ200は、Memory_Status信号線207により、記憶装置300内部の状態をIF320から受信して、ステータスレジスタ230に保持する。
 バンク310の各々は、NVM(Non-Volatile Memory:不揮発メモリ)アレイ311と、リードラッチ312と、ライトラッチ313と、比較器314とを備える。NVMアレイ311は、データを記憶する記憶領域である。このNVMアレイ311は、2次元または3次元格子上に並べられた多数の不揮発メモリセルと、それらメモリセルを制御する周辺回路とからなる構造を有する。リードラッチ312およびライトラッチ313は、NVMアレイ311へのアクセスに際してデータを一時的に保持するための回路である。これらリードラッチ312およびライトラッチ313は、ラッチ回路、フリップフロップ回路、または、SRAMなどによって実現してもよい。比較器314は、論理ゲートからなり、リードラッチ312およびライトラッチ313の内容を比較して、NVMアレイ311がパルス印加を行う際の参照信号(Data_Set信号線317およびData_Reset信号線318)を生成するための回路である。
 なお、この実施の形態では、リードラッチ312、ライトラッチ313および比較器314が記憶装置300のバンク310に設けられることを想定したが、これらはメモリコントローラ200に設けるようにしてもよい。
 また、IF320は、特許請求の範囲に記載の制御部の一例であることを想定して説明したが、制御部の機能をメモリコントローラ200に設けるようにしてもよい。
 [NVMアレイの特性]
 図2は、本技術の実施の形態におけるNVMアレイ311を構成する不揮発メモリの一例としての抵抗変化型メモリの抵抗状態を示す図である。
 抵抗変化型メモリのメモリセルは、セット動作によりLRS(低抵抗状態)に遷移し、リセット動作によりHRS(高抵抗状態)に遷移する。低抵抗状態と高抵抗状態との間で抵抗状態を可逆的に変化させることにより、1つのメモリセルによって1ビットを記憶することが可能な不揮発メモリが実現される。この実施の形態では、一例として、HRSを「0」が記録された状態、LRSを「1」が記録された状態と定義する。
 セット動作は、1つのメモリセルの両端にセットパルスと呼ばれる電圧(または電流)パルスを印加することによって実現される。リセット動作は、1つのメモリセルの両端にリセットパルスと呼ばれる電圧(または電流)パルスを印加することによって実現される。
 [比較器]
 図3は、本技術の実施の形態における比較器314の真理値表の一例を示す図である。比較器314は、書き込もうとする値(Compare_W)が、既存の値(Compare_R)と同じ場合には、Data_Set信号線317およびData_Reset信号線318のいずれにも「0」を出力する。一方、Compare_WがCompare_Rと異なっている場合、Compare_W=1ならData_Set信号線317のみを「1」とし、Compare_W=0ならData_Reset信号線318のみを「1」とする。
 なお、同図では比較器314の入出力が1ビットである場合を想定したが、比較器314の入出力は多ビットとすることもできる。その場合、入出力の各ビットに対して並列に、上述の真理値表に基づいた演算を行う。
 [NVMアレイの動作]
 本技術の実施の形態におけるNVMアレイ311は、IF320からのArray_Control信号線322の値に応じて、Array_Address信号線321によって指定されるメモリセルの操作を行う。
 NVMアレイ311は、メモリセルをセットまたはリセットするために必要なデータ入力バス(Data_Set信号線317およびData_Reset信号線318)を備える。また、NVMアレイ311は、メモリセルから読み出したデータを出力するバス(Read_Latch_In信号線319)を備える。また、NVMアレイ311は、Array_Status信号線326により、自身の状態をIF320に伝達する。
 NVMアレイ311は、Array_Control信号線322の信号として「センス(Sense)」および「プログラム(Program)」を認識し、それ以外の信号が入力されても何もしない。
 Array_Status信号線326が「レディ(Ready)」を示すとき、IF320はArray_Control信号線322の信号として「センス」または「プログラム」を出力する。これにより、NVMアレイ311に新たなセンス動作またはプログラム動作を開始させる。
 Array_Status信号線326が「プログラム中(Programming)」または「センス中(Sensing)」を示すとき、IF320からArray_Control信号線322に「センス」または「プログラム」を出力することは禁止される。
 なお、Read_Latch_In信号線319は、特許請求の範囲に記載のメモリ読出し部の一例である。
 図4は、本技術の実施の形態におけるNVMアレイ311のセンス動作の一例を示す流れ図である。このセンス動作は、IF320からのArray_Control信号線322に「センス」が出力されることにより開始する。
 まず、NVMアレイ311は、Array_Status信号線326を「センス中」にする(ステップS911)。次に、Array_Address信号線321に出力されるアドレス値(図の例では「0」)を参照し、当該アドレスのメモリセルの抵抗値を測定して、リード閾値との比較によって、その論理値を判定する(ステップS912)。このようにして読み出されたデータは、Read_Latch_In信号線319に出力される(ステップS913)。
 NVMアレイ311がArray_Status信号線326を「レディ」にセットして、センス動作は完了する(ステップS914)。
 図5は、本技術の実施の形態におけるNVMアレイ311のプログラム動作の一例を示す流れ図である。このプログラム動作は、IF320からのArray_Control信号として「プログラム」が出力されることにより開始する。例として、操作対象のアドレス(Array_Address)は「0」とし、アドレス#0に既に書き込まれている値は「0011」とする。また、Data_Set信号線317には「0100」が、Data_Reset信号線318には「0010」がそれぞれセットされているものとする。
 まず、NVMアレイ311は、Array_Status信号線326を「プログラム中」にする(ステップS921)。次に、Data_Set信号線317を参照して、アドレス#0のビット列のうち、Data_Set信号線317の値によって示されたビットのみを選択して、セットパルスを印加する(ステップS922)。この例ではData_Set信号線317が「0100」であるため、上位から2つめのビットのみが選択され、アドレス#0は「0011」から「0111」に書き換えられる。続いて、パルス印加を行ったビットの抵抗測定を行い、「1」が読み出されることの確認が行われる。セットパルスによる抵抗変化が不完全であり、「1」が読み出されなかった場合には(ステップS923:No)、再度セットパルスの印加が行われる。
 その後、同様に、Data_Reset信号線318を参照して、アドレス#0のビット列のうちData_Reset信号線318によって示されたビットのみを選択して、リセットパルスを印加される(ステップS924)。そして、正しく「0」が読み出されることの確認が行われる。「0」が読み出されなかった場合には(ステップS924:No)、再度リセットパルスの印加が行われる。この例ではData_Reset信号線318が「0010」であるため、上位から3つめのビットのみが選択され、アドレス#0は「0111」から「0101」に書換えられる。
 NVMアレイ311がArray_Status信号線326を「レディ」にセットして、プログラム動作は完了する(ステップS926)。
 [アドレス空間]
 図6は、本技術の実施の形態における記憶装置300のアドレス空間の一例を示す図である。この実施の形態におけるIF_CmdAddr信号線209の示すアドレスは、バンク番号と、バンク内のNVMアレイ311を最小アクセス単位ごとに区切りその個々に対して一意に割当てられた番号とを含む。最小アクセス単位は、例えば1Kバイトである。
 アドレスは全部19ビットであり、上位3ビットがバンク番号、下位16ビットがバンク内のアドレスを示す。1つの記憶装置300に8(2の3乗)個のバンクを有し、1つのバンクに65536(2の16乗)個のアドレスを有する。このとき、1つの記憶装置300あたりの記録容量は、8×65536×1Kバイト=512Mバイトとなる。
 [コマンド]
 メモリコントローラ200による記憶装置300へのアクセスは、リードコマンド、ライトコマンド、および、RWコマンドの3つのコマンドの組み合わせによって実現される。各々の動作を以下に示す。なお、RWコマンドは、特許請求の範囲に記載のメモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドの一例である。
 図7は、本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示す流れ図である。また、図8は、本技術の実施の形態における記憶装置300のリードコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209に指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
 メモリコントローラ200が、リードコマンドおよびアドレス#0(図では「R_A0」と表す)をIF_CmdAddr信号線209に出力すると、リードコマンドの処理が開始する。まず、IF320は、バンク#0のArray_Status信号線326を参照し、その値が「レディ」になるまで待機する(ステップS931、S932)。「レディ」になると(ステップS931:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(図では「S」と表す)(ステップS933)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
 一定時間経過後に、NVMアレイ311から読み出されたデータがRead_Latch_In信号線319に出力され、リードラッチ312に蓄積される。Read_Latch_In信号線319へのデータ出力が完了すると、Array_Status信号線326は「レディ」に遷移する。
 IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS934、S935)。「レディ」になると(ステップS934:Yes)、Latch_Control信号線323に制御信号「R」を出力して、リードラッチ312に蓄積された読出しデータを、Read_Latch_Out信号線324を介して読み出す。そして、IF320は、この読み出したデータを、IF_Data信号線208を介してメモリコントローラ200に出力する(ステップS936)。
 なお、Read_Latch_Out信号線324は、特許請求の範囲に記載の読出しデータ出力部の一例である。
 図9は、本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示す流れ図である。また、図10は、本技術の実施の形態における記憶装置300のライトコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209において指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
 メモリコントローラ200が、ライトコマンドとアドレス#0(図では「W_A0」と表す)をIF_CmdAddr信号線209に出力すると、ライトコマンドの処理が開始する。メモリコントローラ200は、ライトコマンドの発行とともに、書込みデータ(図では「W_Data」と表す)を、IF_Data信号線208に出力する。IF320は、受け取った書込みデータを、バンク#0のWrite_Latch_In信号線325に順次出力する(ステップS941)。
 書込みデータの入力開始と同時に、IF320はバンク#0のArray_Status信号線326を参照し、その値が「レディ」となるのを待つ(ステップS942、S943)。「レディ」になると(ステップS942:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(ステップS944)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
 一定時間経過後に、Array_Status信号線326は「レディ」に遷移し、その時点で、NVMアレイ311から読み出したデータのリードラッチ312への入力が完了している。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS945、S946)。「レディ」になると(ステップS945:Yes)、IF320は、Latch_Control信号線323に制御信号「C」を送信することにより、リードラッチ312およびライトラッチ313に蓄積されたデータを、比較器314に出力するよう命令する。これにより、リードラッチ312からはCompare_R信号線315を介してセンス動作によって得た読出しデータが、ライトラッチ313からはCompare_W信号線316を介して書込みデータが、それぞれ出力される(ステップS947)。Compare_R信号線315とCompare_W信号線316は、比較器314による演算を経て、Data_Set信号線317およびData_Reset信号線318に変換されて、NVMアレイ311に入力される。
 IF320は、続いて、バンク#0のArray_Control信号線322に「プログラム」を出力する(図では「P」と表す)(ステップS948)。これにより、NVMアレイ311がプログラム動作を開始するとともに、Array_Status信号線326は「プログラム中」に遷移し、プログラム動作の完了とともに「レディ」に戻る。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS951、S952)。「レディ」となったことをIF320が確認すると(ステップS951:Yes)、ライトコマンドは完了する。
 図11は、本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示す流れ図である。また、図12は、本技術の第1の実施の形態における記憶装置300のRWコマンドの処理手順例を示すタイミング図である。ここでは例として、IF_CmdAddr信号線209において指定されるアドレスが、バンク#0内のアドレス#0を指している場合を想定する。
 メモリコントローラ200が、RWコマンドとアドレス#0(図では「W_A0」と表す)をIF_CmdAddr信号線209に出力すると、RWコマンドの処理が開始する。メモリコントローラ200は、RWコマンドの発行とともに、書込みデータ(図では「W_Data」と表す)を、IF_Data信号線208に出力する。IF320は、受け取った書込みデータを、バンク#0のWrite_Latch_In信号線325に順次出力する(ステップS961)。
 書込みデータの入力開始と同時に、IF320はバンク#0のArray_Status信号線326を参照し、その値が「レディ」となるのを待つ(ステップS962、S963)。「レディ」になると(ステップS962:Yes)、IF320は、バンク#0のArray_Address信号線321に「0」を、Array_Control信号線322に「センス」を出力する(ステップS964)。これにより、NVMアレイ311がセンス動作を開始するとともに、Array_Status信号線326は「センス中」に遷移する。
 一定時間経過後に、Array_Status信号線326は「レディ」に遷移し、その時点で、NVMアレイ311から読み出したデータのリードラッチ312への入力が完了している。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS965、S966)。「レディ」になると(ステップS965:Yes)、Latch_Control信号線323に制御信号「C+R」を送信する。これにより、リードラッチ312およびライトラッチ313に蓄積されたデータを、比較器314に出力させるとともに(ステップS968)、Read_Latch_Out信号線324にも出力させる。このRead_Latch_Out信号線324に出力されたデータは、IF320からIF_Data信号線208を介してメモリコントローラ200に出力される(ステップS967)。Compare_R信号線315と、Read_Latch_Out信号線324は独立しており、同時動作が可能である。
 IF320は、続いて、バンク#0のArray_Control信号線322に「プログラム」を出力する(図では「P」と表す)(ステップS969)。これにより、NVMアレイ311がプログラム動作を開始するとともに、Array_Status信号線326は「プログラム中」に遷移し、プログラム動作の完了とともに「レディ」に戻る。IF320は、Array_Status信号線326が「レディ」になるまで待機する(ステップS971、S972)。「レディ」となったことをIF320が確認すると(ステップS971:Yes)、RWコマンドは完了する。
 このように、RWコマンドの処理では、データをリードラッチ312に読み出すところまではライトコマンドと同じ動作であるが、リードラッチに蓄積したデータを比較器314に出力するだけでなくRead_Latch_Out信号線324にも出力する。これにより、RWコマンドは、ライトコマンドと同じ実行時間で、同一アドレスへの書込みおよび読出しを実現することができる。
 なお、ステップS964は、特許請求の範囲に記載のメモリ読出し手順の一例である。また、ステップS967は、特許請求の範囲に記載の読出しデータ出力手順の一例である。また、ステップS969は、特許請求の範囲に記載のメモリ書込み手順の一例である。
 [ホストコンピュータおよびメモリコントローラの動作]
 メモリコントローラ200は、Host_CmdAddr信号線109を介して、ホストコンピュータ100からのコマンドおよびアドレスを受信する。ホストコンピュータ100は、記憶装置300へのデータ書込みを指示するHost_WRITEコマンド、記憶装置300からの読出しを指示するHost_READコマンドの少なくとも2種類のコマンドを送信する。その際、それらコマンドのアクセス対象となるアドレスを送信する。また、ホストコンピュータ100は、ライトコマンドの送信と同時に、Host_Data信号線108を介して書込みデータをメモリコントローラ200に出力する。
 図13は、本技術の第1の実施の形態におけるメモリコントローラ200のコマンド受信処理手順例を示す流れ図である。メモリコントローラ200は、ホストコンピュータ100からのコマンドを受信するたびに、この流れ図の処理を開始する。
 Host_WRITEコマンド以外を受信した場合には(ステップS981:No)、Host_CmdAddr信号線109からの信号はコマンドアドレスレジスタ210に格納される(ステップS985)。
 Host_WRITEコマンドを受信した場合には(ステップS981:Yes)、メモリコントローラ200は、Host_Data信号線108から書込みデータを受信して、データバッファ220に格納する(ステップS982)。そして、受信したHost_WRITEコマンドと同じアドレスに対するリードコマンドが、コマンドアドレスレジスタ210に存在するか否かを調べる。コマンドアドレスレジスタ210に存在しない場合には(ステップS983:No)、ライトコマンドと受信したアドレスとをコマンドアドレスレジスタ210に追加する。コマンドアドレスレジスタ210に存在する場合には(ステップS983:Yes)、同じアドレスに対するリードコマンドのうち、最後に受信したものをRWコマンドに書き換える(ステップS984)。そして、Host_WRITEコマンドとともに受信してデータバッファ220に格納したデータを、このRWコマンドに対応する書込みデータとする。
 図14は、本技術の第1の実施の形態におけるメモリコントローラ200のコマンド送出手順例を示す流れ図である。メモリコントローラ200は、コマンドアドレスレジスタ210に蓄積された命令を処理する。
 メモリコントローラ200は、一定時間ごとに、コマンドアドレスレジスタ210から、最も古い(最初に追加された)コマンドアドレスを1つ取り出す(ステップS991)。そして、取り出したアドレスに対応するバンクが「レディ」であるかを、ステータスレジスタ230を参照して調べる。「レディ」でなければ(ステップS992:No)、そのまま処理を終了する。「レディ」であれば(ステップS992:Yes)、取り出したコマンドアドレスをIF_CmdAddr信号線209に送出する(ステップS993)。取り出したコマンドがライトコマンドまたはRWコマンドである場合には(ステップS994:Yes)、Host_WRITEコマンドとともにホストコンピュータ100から受信した書込みデータがデータバッファ220に格納されていることになる。そのため、これをIF_Data信号線208に送出する(ステップS995)。メモリコントローラ200は、最後に送出したコマンドアドレスをコマンドアドレスレジスタ210から削除して(ステップS996)、処理を終了する。
 これら一連の処理により、メモリコントローラ200は、ホストコンピュータ100からのHost_READコマンドに対応するリードコマンドをIF320に送出する前に、同一アドレスに対するHost_WRITEコマンドを受信したか否かを判定する。そのようなHost_WRITEコマンドについては、メモリコントローラ200は、RWコマンドを使用することにより、リードコマンドとライトコマンドを各々実行するよりも短い時間で処理を行うことができる。
 このように、本技術の第1の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドをRWコマンドに差し替えることにより、処理を高速化することができる。
 <2.第2の実施の形態>
 第1の実施の形態において説明したように、IF_Data信号線208は、複数のバンクによって共有されるデータバスである。あるバンクにおいて書込みまたは読出しを行っている間に他のバンクに別のコマンドを発行するといった、並列動作をさせることも想定される。ただし、第1の実施の形態では、あるバンクにRWコマンドを発行した後に、続けて他のバンクにリードコマンドやライトコマンドを発行する場合には、データの衝突を避ける必要がある。すなわち、メモリコントローラ200は、RWコマンドに対する読出しデータの出力と、後続のコマンドに対するデータ入出力とが衝突しないように、コマンドの発行間隔を調節する必要がある。特に、センス動作にかかる時間が一定の値でない場合には、データ衝突の回避が難しくなる。そこで、第2の実施の形態では、リードラッチ312からIF320へのデータ出力のみを行う記憶装置300のDATAOUTコマンドを定義し、RWコマンドと同様の動作を、ライトコマンドとDATAOUTコマンドとの組合せによって実現する。なお、DATAOUTコマンドは、特許請求の範囲に記載の読出しデータ保持部に保持されている読出しデータを要求元に出力する旨のコマンドの一例である。
 [DATAOUTコマンド]
 図15は、本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示す流れ図である。また、図16は、本技術の第2の実施の形態における記憶装置300のDATAOUTコマンドの処理手順例を示すタイミング図である。ここでは例として、ライトコマンドおよびDATAOUTコマンドともに、バンク#0のアドレス#0に発行した場合を想定する。
 IF320は、DATAOUTコマンドを受信すると、リードラッチ312の内容をメモリコントローラ200に出力する(ステップS811)。メモリコントローラ200は、まずライトコマンドを発行し、NVMアレイ311の状態が「センス中」から「レディ」になったことをMemory_Status信号線207により検知した後、DATAOUTコマンドを発行する(図では「DO_A0」と表す)。これにより、ライトラッチ313からNVMアレイ311への書込みが行われている間(Array_Status信号線326が「プログラム中」である間)に、リードラッチ312からデータを出力することができる。すなわち、RWコマンドと同様に、ライトコマンドと同様な実行時間により、同一アドレスへの書込みと読出しとを処理することができる。
 なお、上述の例においてはDATAOUTコマンドにも他のコマンドと同様にアドレス「0」を付して発行しているが、DATAOUTコマンドはNVMアレイ311にアクセスしないため、実行に必要なのはバンク番号のみである。したがって、アドレスのビット列のうちバンクを示す部分のみを出力するようにしてもよい。
 第1の実施の形態においてはArray_Status信号線326が「レディ」になった直後にRead_Latch_Out信号線324からデータ出力が開始されるが、この第2の実施の形態では読出しデータの出力がやや遅れる。これは、第2の実施の形態ではIF320がDATAOUTコマンドを認識してからデータ出力を行うためである。また、この第2の実施の形態では2つのコマンドの組合せによってRWコマンド1つ分の機能を実現するため、第1の実施の形態よりもコマンドバスを多く占有することになる。
 このように、本技術の第2の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドを、ライトコマンドとDATAOUTコマンドの組合せに差し替えることにより、処理を高速化することができる。
 <3.第3の実施の形態>
 上述の第1の実施の形態では、ライトコマンドと同じ実行時間でデータ出力を同時に行える点で速度改善効果が大きい手法である。しかし、書込みデータを先に入力して読出したデータが後で出力されることになり、通常のリードコマンドとライトコマンドを順に行う場合と比べて、IF_Data信号線208におけるデータの順序が逆になってしまう。そのため、メモリシステムの構成によってはメモリコントローラ200からの制御が煩雑になるおそれがある。
 そこで、この第3の実施の形態では、通常のリードコマンドとライトコマンドを順に行う場合と同じデータの入出力順をとりながら、高速化を行うための手法を示す。具体的には、通常のリードコマンドとライトコマンドに加えて、書込みの最初に行われるセンス動作を省略した、BW(BLIND WRITE)コマンドを導入する。
 図17は、本技術の第3の実施の形態における記憶装置300のBWコマンドの処理手順例を示す流れ図である。なお、BWコマンドは、特許請求の範囲に記載の書込み対象アドレスについて読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドの一例である。
 このBWコマンドの処理は、通常のライトコマンドの処理手順において、Array_Control信号線322に「センス」を出力する処理と、その後のArray_Status信号線326の確認処理を省いたものに相当する。すなわち、図9に示した流れ図においてステップS944乃至S946を省いたものになる。したがって、ここでの説明は省略する。この第3の実施の形態では、センス動作が省略され、リードラッチ312に既に格納されている値がCompare_R信号線315に出力される。
 図18は、本技術の第3の実施の形態における記憶装置300のBWコマンド単体の処理手順例を示すタイミング図である。また、図19は、本技術の第3の実施の形態における記憶装置300のBWコマンドをリードコマンドの直後に実行する際の処理手順例を示すタイミング図である。
 先にリードコマンドを処理することにより、読出しデータはリードラッチ312に格納される。そして、BWコマンドの処理においては、改めてセンス動作を行うことなく、リードラッチ312に既に格納されている値を利用して比較器314における比較を行う。これにより、センス動作に要する処理時間を削減することができる。また、処理の順序は通常のリードコマンドとライトコマンドを順に行う場合と同様であるため、制御の煩雑化を避けることができる。
 このように、本技術の第3の実施の形態によれば、同一アドレスに対するリードコマンドおよびライトコマンドを、リードコマンドとBWコマンドの組合せに差し替えることにより、処理を高速化することができる。
 <4.第4の実施の形態>
 上述の第1の実施の形態では、メモリコントローラ200がホストコンピュータ100からの命令を蓄積し、同一アドレスに対するリードコマンドとライトコマンドを他のコマンドに置き換えていた。これに対し、第4の実施の形態では、記憶装置300のIF320がその処理を行う。
 図20は、本技術の第4の実施の形態におけるリードアドレス検出レジスタ327の一構成例を示す図である。このリードアドレス検出レジスタ327はIF320に設けられる。このリードアドレス検出レジスタ327は、バンク毎に1つのレジスタ番号が割当てられており、そのバンクにおいて直前に読出しが行われたアドレスを保持するレジスタである。第4の実施の形態では、このリードアドレス検出レジスタ327を利用して、ライト処理の内容を切り替える。
 なお、リードアドレス検出レジスタ327は、特許請求の範囲に記載のアドレス一致検出部の一例である。
 図21は、本技術の第4の実施の形態における記憶装置300のIF320による処理手順例を示す流れ図である。ここでは、アドレスXはバンクYに属することを想定している。
 IF_CmdAddr信号線209にリードコマンドが出力されると(ステップS841:リード)、IF320は通常のリードコマンドと同様に処理を実行する(ステップS842)。その後、読出し対象となったアドレスを、リードアドレス検出レジスタ327に格納する。すなわち、アドレスXがバンクYに属しているとき、アドレスXに対する読出し処理を行った後、レジスタ番号YがXに上書きされる(ステップS843)。
 IF_CmdAddr信号線209にライトコマンドが出力されると(ステップS841:ライト)、リードアドレス検出レジスタ327から書込み対象のバンクに対応する値が読み出され、書込み対象アドレスと比較される(ステップS844)。それらが一致している場合には(ステップS845:Yes)、IF320はBWコマンドと同様の処理を実行する(ステップS846)。一方、一致していない場合には(ステップS845:No)、通常のライトコマンドと同様の処理を実行する(ステップS847)。前回読み出されたアドレスと同じアドレスに書込みを行う場合、読出し処理の中でセンス動作が行われている。したがって、リードラッチ312にはNVMアレイ311から読み出されたデータが格納されているため、センス動作を行うことなくリードラッチ312の値をCompare_R信号として参照し、正しく書込みを行うことができる。
 このようにして書込みを実行した後には、既にNVMアレイ311の値が更新されており、次に同じアドレスへライトコマンドが発行されたとしても、もはやリードラッチ312の値をCompare_R信号としては使用することはできない。そのため、IF320はリードアドレス検出レジスタ327の値を無効なアドレスで初期化する(ステップS848)。
 IF320は、リードコマンドおよびライトコマンド以外のコマンドを扱う場合もある(ステップS841:その他)。例えば、メモリアクセスを休止して低消費電力状態に入るためのコマンドなどが考えられる。そのようなコマンドにおいて、リードラッチ312に変化を及ぼす可能性がある場合には(ステップS852:Yes)、リードアドレス検出レジスタ327を初期化する(ステップS853)。これにより、次にライトコマンドを受信したときに、誤ったリードラッチ312の値をCompare_R信号線315の値として参照しないようにする。
 図22は、本技術の第4の実施の形態における高速ライトの処理手順例を示すタイミング図である。最初のリードコマンド(図では「R_A0」と表す)の受信時に、その対象アドレス「0」が保持される。その後、同じアドレスに対するライトコマンド(図では「W_A0」と表す)を受信後、センス動作を行うことなく書込みが実行される。
 このように、本技術の第4の実施の形態によれば、IF320によって、同一アドレスに対するリードコマンドおよびライトコマンドを、リードコマンドとBWコマンドの組合せに差し替えることにより、処理を高速化することができる。
 <5.第5の実施の形態>
 上述の第1の実施の形態では、同じアドレスに対して、Host_READコマンドの後にHost_WRITEコマンドが発行されたことを、メモリコントローラ200が検出することにより、RWコマンドの発行を行っていた。これに対し、第5の実施の形態では、同一アドレスに対して読出しを行った直後に書込みを行うことをホストコンピュータ100が予め認識できる場合を想定して、ホストコンピュータ100が、メモリコントローラ200からRWコマンドを発行するよう指示する。
 ホストコンピュータ100からメモリコントローラ200にHost_RWコマンドとアドレス、書込みデータが送信される。メモリコントローラ200は、Host_RWコマンドを受信すると、上述の図13と同様の処理を行う。すなわち、RWコマンドと受信したアドレスをコマンドアドレスレジスタ210に追加し、書込みデータをデータバッファに格納する。その後、上述の図14と同様の処理手順により、IF320にRWコマンドとデータを送出する。
 なお、RWコマンドに代えて、第2および第3の実施の形態において説明したDATAOUTコマンドやBWコマンドをホストコンピュータ100が発行するようにしてもよい。
 このように、本技術の第5の実施の形態によれば、同一アドレスに対して読出しを行った直後に書込みを行うことをホストコンピュータ100が認識して、メモリコントローラ200からRWコマンドなどを発行するように指示することができる。
 <6.第6の実施の形態>
 不揮発メモリには書換回数に制限があり、書換寿命を延ばすためにはセル間の書換回数のばらつきを抑制することが効果的である。そのため、不揮発メモリの書換寿命を管理するために、書換回数の多いセルと少ないセルとの間でデータの入れ替えを行うウェアレベリングと呼ばれる処理が知られている。また、メモリシステムにおいては、アドレス空間にスワップ領域と呼ばれる領域を設定し、メインメモリのデータをスワップ領域に一時的に退避する処理が一般的に行われる。ホストコンピュータは、スワップ領域に退避していたデータを読み出してメインメモリへ書き込むとともに、スワップ領域の同じアドレスに新しいデータを書込む、データスワップと呼ばれる処理をしばしば行う。この第6の実施の形態では、上述の第3の実施の形態において説明したBWコマンドを用いてデータスワップを高速化する手法について説明する。
 図23は、本技術の第6の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。ホストコンピュータ100は、Host_CmdAddr信号線109を介して、SWAPコマンドと、入れ替えの対象となる2つのアドレスをメモリコントローラ200に送信する。ここで、2つのアドレスはそれぞれ、異なるバンクまたは異なるメモリ装置を指すものであることを前提とする。
 メモリコントローラ200は、SWAPコマンドを受信すると(ステップS861)、2つのアドレスそれぞれに対するリードコマンドを、IF_CmdAddr信号線209を介して記憶装置300に発行する。このとき、2つのアドレスが示す記憶装置300が同じ場合には(ステップS862:Yes)、IF_CmdAddr信号線209やIF_Data信号線208において信号が衝突するおそれがある。そこで、両社が衝突しないように、必要な間隔を空けて2つのリードコマンドを発行する(ステップS863、S864)。一方、2つのアドレスが示す記憶装置300が異なっており、IF_CmdAddr信号線209やIF_Data信号線208が独立である場合には、衝突のおそれがないため、2つのリードコマンドを同時に発行する(ステップS865)。
 一定時間経過後、メモリコントローラ200は、IF_Data信号線208から出力される読出しデータを受け取り、ECC回路240によりエラー検出および訂正を行った後、データバッファ220に蓄積する(ステップS866)。データバッファ220に2つのアドレスからの読出しデータが揃った後(ステップS867:Yes)、2つのアドレスにBWコマンドを発行し、高速書込みを行う(ステップS868)。
 BWコマンド送信後、Memory_Status信号線207を参照し(ステップS869)、2つのアドレスがそれぞれ属するバンクが、2つとも「プログラム中」から「レディ」に遷移したことを確認して(ステップS871、S872)、処理を終了する。
 このように、本技術の第6の実施の形態によれば、BWコマンドを用いてデータスワップを高速化することができる。
 <7.第7の実施の形態>
 不揮発メモリにおいては、記録された値が読出しのたびにわずかに変化し、一定回数の読出しを繰り返すと、読出し不良が発生する可能性がある。これをリードディスターブ不良と呼ぶ。このリードディスターブ不良を防ぐために、一定回数の読出しを行った後には、データの再書き込みが行われる。これをリフレッシュと呼ぶ。このリフレッシュは、データを読み出した後、エラーを検出および訂正し、再び同じアドレスに書込みを行うことによって実現される。この第7の実施の形態では、上述の第3の実施の形態において説明したBWコマンドを用いてリフレッシュを高速化する手法について説明する。
 図24は、本技術の第7の実施の形態におけるメモリコントローラ200による処理手順例を示す流れ図である。メモリコントローラ200が、ホストコンピュータ100からHost_CmdAddr信号線109を介してリフレッシュコマンドおよびアドレスを受信すると、この処理手順が開始する。まず、IF_CmdAddr信号線209を介して、ホストコンピュータ100から受信したアドレスが指し示す記憶装置300のアドレスに、リードコマンドを送信する(ステップS881)。一定時間経過後、IF_Data信号線208から出力される読出しデータを受信して、ECC回路240によりエラー検出および訂正を行う(ステップS882)。また、ECC回路240は、エラー訂正が発生したか否かを示す信号を出力する。メモリコントローラ200はこれを受けて、エラー訂正が発生しなかった場合(リードディスターブ不良は発生しておらず、全ビットが正しく読み出せた場合)には(ステップS883:No)、何もせずにリフレッシュ処理は完了となる。一方、エラー訂正が発生した場合(リードディスターブ不良が発生し、誤った値が読み出された場合)には(ステップS883:Yes)、当該アドレスに対して、訂正後のデータとともにBWコマンドを送信する(ステップS884)。
 BWコマンド送信後、Memory_Status信号線207を参照し(ステップS885)、当該バンクが「プログラム中」から「レディ」に遷移したことを確認して(ステップS886、S887)、処理を終了する。
 これにより、リードラッチ312に保持された読出しデータとECCによるエラー訂正後のデータとが比較され、訂正の生じたビットにのみプログラム動作により書込み電圧が印加され、リードディスターブ不良が訂正される。
 このように、本技術の第7の実施の形態によれば、BWコマンドを用いてリフレッシュを高速化することができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
 前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
 前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
 前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部と
を具備する記憶装置。
(2)前記制御部は、前記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(3)前記制御部は、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(4)前記制御部は、前記書込み対象アドレスについて前記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
前記(1)に記載の記憶装置。
(5)前記制御部は、前記書込み対象アドレスと前記所定のアドレスとの前記一致を検出するアドレス一致検出部を備えて、前記書込み対象アドレスと前記所定のアドレスとが一致するか否かを判断する
前記(1)に記載の記憶装置。
(6)記憶装置と、前記記憶装置に対するアクセス要求を制御するメモリコントローラと、前記記憶装置に対するアクセスコマンドを前記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、
 前記記憶装置は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部とを備える
情報処理システム。
(7)メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し手順と、
 前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力手順と、
 前記メモリアレイの書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの前記書込み対象アドレスに書込みを行うメモリ書込み手順と
を具備する記憶制御方法。
 100 ホストコンピュータ
 200 メモリコントローラ
 210 コマンドアドレスレジスタ
 220 データバッファ
 230 ステータスレジスタ
 240 ECC回路
 300 記憶装置
 310 バンク
 311 NVMアレイ
 312 リードラッチ
 313 ライトラッチ
 314 比較器
 327 リードアドレス検出レジスタ

Claims (7)

  1.  メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、
     前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、
     前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、
     前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部と
    を具備する記憶装置。
  2.  前記制御部は、前記メモリアレイからの読出しおよび書込みを同一アドレスに連続して行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
    請求項1記載の記憶装置。
  3.  前記制御部は、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
    請求項1記載の記憶装置。
  4.  前記制御部は、前記書込み対象アドレスについて前記読出しデータ保持部に新たなデータを保持させずに書込みを行う旨のコマンドが発行された際に前記書込み対象アドレスと前記所定のアドレスとが一致すると判断する
    請求項1記載の記憶装置。
  5.  前記制御部は、前記書込み対象アドレスと前記所定のアドレスとの前記一致を検出するアドレス一致検出部を備えて、前記書込み対象アドレスと前記所定のアドレスとが一致するか否かを判断する
    請求項1記載の記憶装置。
  6.  記憶装置と、前記記憶装置に対するアクセス要求を制御するメモリコントローラと、前記記憶装置に対するアクセスコマンドを前記メモリコントローラに発行するホストコンピュータとを具備する情報処理システムであって、
     前記記憶装置は、メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し部と、前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力部と、前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの書込み対象アドレスに書込みを行うメモリ書込み部と、前記書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリ書込み部を動作させるよう制御する制御部とを備える
    情報処理システム。
  7.  メモリアレイの所定のアドレスに記憶されているデータを読出しデータとして前記メモリアレイから読み出して読出しデータ保持部に保持させるメモリ読出し手順と、
     前記読出しデータ保持部に保持されている前記読出しデータを要求元に出力する読出しデータ出力手順と、
     前記メモリアレイの書込み対象アドレスと前記所定のアドレスとが一致する場合にのみ前記メモリアレイに対する書込みデータおよび前記読出しデータに基づいて前記メモリアレイの前記書込み対象アドレスに書込みを行うメモリ書込み手順と
    を具備する記憶制御方法。
PCT/JP2015/061235 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法 WO2015170550A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201580022404.3A CN106255961B (zh) 2014-05-09 2015-04-10 存储控制设备、存储设备及存储控制方法
US15/307,360 US20170052739A1 (en) 2014-05-09 2015-04-10 Storage control device, storage device, and storage control method
JP2016517847A JP6447629B2 (ja) 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-097257 2014-05-09
JP2014097257 2014-05-09

Publications (1)

Publication Number Publication Date
WO2015170550A1 true WO2015170550A1 (ja) 2015-11-12

Family

ID=54392403

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/061235 WO2015170550A1 (ja) 2014-05-09 2015-04-10 記憶制御装置、記憶装置、および、その記憶制御方法

Country Status (4)

Country Link
US (1) US20170052739A1 (ja)
JP (1) JP6447629B2 (ja)
CN (1) CN106255961B (ja)
WO (1) WO2015170550A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113257307A (zh) * 2020-02-13 2021-08-13 华邦电子股份有限公司 存储器装置及数据写入方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
US10622065B2 (en) * 2018-09-12 2020-04-14 Micron Technology, Inc. Dedicated commands for memory operations
US11456033B2 (en) 2018-09-12 2022-09-27 Micron Technology, Inc. Dedicated commands for memory operations
CN110908825B (zh) * 2018-09-17 2024-03-01 兆易创新科技集团股份有限公司 一种数据读取方法、装置、存储设备及存储介质
US11113213B2 (en) 2019-12-30 2021-09-07 Micron Technology, Inc. Determining write commands for deletion in a host interface
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block
CN111813345A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种数据传输方法、装置、服务器及可读存储介质
CN112527401A (zh) * 2021-02-08 2021-03-19 北京紫光青藤微系统有限公司 存储器的启动方法、装置、电子设备及存储介质
US11545231B2 (en) * 2021-02-09 2023-01-03 Micron Technology, Inc. Reset read disturb mitigation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008721A (ja) * 2009-06-29 2011-01-13 Kyocera Mita Corp メモリ制御回路および画像形成装置
JP2014026712A (ja) * 2012-06-19 2014-02-06 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4685082A (en) * 1985-02-22 1987-08-04 Wang Laboratories, Inc. Simplified cache with automatic update
US7107415B2 (en) * 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
KR100564577B1 (ko) * 2003-09-25 2006-03-28 삼성전자주식회사 리셋 상태에서 균일한 저항 범위를 가지는 상 변화 메모리장치 및 방법
JP4273087B2 (ja) * 2005-02-08 2009-06-03 エルピーダメモリ株式会社 半導体記憶装置およびその書込み方法
JP4309421B2 (ja) * 2006-12-25 2009-08-05 エルピーダメモリ株式会社 半導体記憶装置とその書き込み制御方法
JP2010244607A (ja) * 2009-04-03 2010-10-28 Elpida Memory Inc 半導体記憶装置
JP2011150684A (ja) * 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008721A (ja) * 2009-06-29 2011-01-13 Kyocera Mita Corp メモリ制御回路および画像形成装置
JP2014026712A (ja) * 2012-06-19 2014-02-06 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113257307A (zh) * 2020-02-13 2021-08-13 华邦电子股份有限公司 存储器装置及数据写入方法
CN113257307B (zh) * 2020-02-13 2024-04-26 华邦电子股份有限公司 存储器装置及数据写入方法

Also Published As

Publication number Publication date
JPWO2015170550A1 (ja) 2017-04-20
US20170052739A1 (en) 2017-02-23
CN106255961B (zh) 2020-03-31
JP6447629B2 (ja) 2019-01-09
CN106255961A (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
JP6447629B2 (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
KR101626084B1 (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
US9886378B2 (en) Nonvolatile memory system using control signals to transmit varied signals via data pins
JP5929790B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
CN103995756B (zh) 存储控制器、存储设备、信息处理系统和存储控制方法
US9792072B2 (en) Embedded multimedia card (eMMC), host controlling eMMC, and method operating eMMC system
US20180052732A1 (en) Semiconductor device and semiconductor system
KR102561346B1 (ko) 반도체장치
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
CN104040634A (zh) 存储控制装置、存储装置、信息处理系统及其处理方法
US9607667B1 (en) Memory device and electronic apparatus including the same
KR20200023999A (ko) 반도체장치 및 반도체시스템
TW202046326A (zh) 記憶體定址方法及相關聯的控制器
JP2013222315A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5853973B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
CN113076057A (zh) 用于减少读取-修改-写入操作的延迟的系统和方法
CN113467704A (zh) 通过智能阈值检测的命令优化
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP6493062B2 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
US8423819B2 (en) Data storage device, controller, and data access method for a downgrade memory
JP2013205872A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
JP5853843B2 (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
CN103530238A (zh) 存储控制设备、存储设备、信息处理系统及其处理方法

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: 15789159

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016517847

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15307360

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: 15789159

Country of ref document: EP

Kind code of ref document: A1