WO2016092676A1 - Storage device and control method therefor - Google Patents

Storage device and control method therefor Download PDF

Info

Publication number
WO2016092676A1
WO2016092676A1 PCT/JP2014/082883 JP2014082883W WO2016092676A1 WO 2016092676 A1 WO2016092676 A1 WO 2016092676A1 JP 2014082883 W JP2014082883 W JP 2014082883W WO 2016092676 A1 WO2016092676 A1 WO 2016092676A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
time interval
nonvolatile memory
controller
data
Prior art date
Application number
PCT/JP2014/082883
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2014/082883 priority Critical patent/WO2016092676A1/en
Publication of WO2016092676A1 publication Critical patent/WO2016092676A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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

Definitions

  • the present invention relates to high reliability and high speed of a storage device using a nonvolatile memory.
  • phase change memory In a storage device equipped with a nonvolatile memory, particularly a phase change memory, current is passed through the phase change memory to generate Joule heat, thereby changing the resistance value of the memory and writing data. Conventionally, when writing to the same memory cell occurs continuously, the circuit that flows current to the phase change memory waits for a certain interval to relax the heat generated by the previous writing, and then the next writing An electric current was passed (see Patent Document 1).
  • Joule heat is generated in memory cells when data is written to nonvolatile memory, especially phase change memory. After writing data to the memory, if the next write current is passed without leaving a sufficient time interval, the heat generated during the previous write is not sufficiently relaxed, and the memory becomes hotter than expected. On the other hand, the phase change memory has an optimum temperature for writing data. For this reason, if data is written in a state where the temperature is higher than the optimum temperature, the data cannot be written properly, and an error occurs.
  • An object of the present invention is to solve the above-described problems of the prior art and provide a storage device that operates with high reliability and high speed.
  • One aspect of the present invention is a storage device including a controller and a nonvolatile memory.
  • the nonvolatile memory has a structure that generates heat during operation.
  • the controller issues a command for instructing a predetermined operation to the nonvolatile memory.
  • the controller holds an optimum value of the time interval between operations by commands.
  • the command issue timing interval can be used substantially.
  • the physical area of the nonvolatile memory operated by the command has a predetermined physical arrangement relationship with other physical areas of the nonvolatile memory operated by the next command. In this case, the control is performed so that the operation according to the next command is performed after the optimal value of the time interval or a time longer than the optimal value has elapsed.
  • the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between operations by the command, and the nonvolatile memory operated by the command If the physical area is adjacent to the physical area of another non-volatile memory that is operated by the next command, the next command is executed until the optimal value of the command issuance time interval or a time longer than the optimal value has elapsed. Wait and issue the next command after waiting. In this way, the optimum value of the command issue time interval is secured.
  • the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between the operations by the command, and the non-volatile operated by the command.
  • the next command is issued after the next command. In this way, the optimum value of the command issue time interval is secured.
  • the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between the operations by the command, and the non-volatile operated by the command. If the physical area of the non-volatile memory is adjacent to the physical area of another non-volatile memory that is operated by the following command, an alternative physical area that is not adjacent to the physical area of the non-volatile memory that has been rewritten by the command is selected. The following command is issued to the alternative physical area instead of the physical area of the non-volatile memory. In this way, the optimum value of the command issue time interval is secured.
  • a nonvolatile memory holds data that defines an optimum value of a time interval between commands as an optimum value of a time interval between operations by commands.
  • the controller can read the optimum value of the time interval between commands from the nonvolatile memory as necessary.
  • the optimal value of the time interval between commands is the optimal value of the time interval between the data write command and the data write command, the optimal value of the time interval between the data write command and the data erase command, the data erase command and the data write.
  • the optimum value of the time interval between commands and the optimum value of the time interval between data erasure commands can be considered.
  • the controller manages the execution time of the last executed command for each physical area corresponding to the unit of writing or erasing data in the nonvolatile memory by the command.
  • the physical area one defined in advance as a page or a block can be considered.
  • the storage device is a storage device including a controller and a nonvolatile memory.
  • the controller can issue a command to a physical area within a predetermined range of the nonvolatile memory, and can refer to the optimum value information of the time interval between commands, and the physical arrangement of the physical area of the nonvolatile memory from which the command is issued Information can be referred to.
  • the second area of the nonvolatile memory to which the next command is to be issued is adjacent to the first area and immediately If the optimal value of the time interval cannot be satisfied when the command is issued, perform one of the following operations.
  • the next command is issued to the second area.
  • the next command is issued to a third area different from the second area before the optimal value of the time interval or a time longer than the optimal value elapses.
  • another command after the next command is preferentially issued before the optimal value of the time interval or a time longer than the optimal value elapses.
  • the controller can access a management table that manages the physical area in a predetermined range in which commands are issued and the type and time information of the last issued command in the physical area in association with each other. It is a simple configuration. More preferably, the controller refers to the physical arrangement information when storing the physical area in a predetermined range and the type and time information of the last issued command in the physical area. An adjacent physical area adjacent to the physical area in the range is extracted, and the type and time information of the last issued command is stored in the physical area in a predetermined range in association with the adjacent physical area. By referring to such a table, the time interval of commands can be controlled.
  • the table may be divided into a plurality of pieces instead of a single table. Further, the physical position of the storage device storing the information is not limited as long as the information can be accessed.
  • Another aspect of the present invention is a method for controlling a storage device having a memory cell array in which a plurality of memory cells are arranged.
  • the appropriate time interval between the first command that instructs the memory cell to perform the first operation and the second command that instructs the memory cell to perform the second operation is stored as appropriate time interval information.
  • a physical arrangement relationship between a range in which the first command is issued simultaneously among the plurality of memory cells and a range in which the second command is issued simultaneously among the plurality of memory cells is stored as physical arrangement relationship information. .
  • the second command After issuing a first command to a memory cell in a first range among a plurality of memory cells, and before issuing a second command to a memory cell in a second range among the plurality of memory cells Based on the physical arrangement relationship information, it is determined whether or not the first range and the second range are different ranges and a predetermined physical arrangement relationship defined in advance. If the predetermined physical arrangement relationship is defined in advance, the second command is not issued for the second range at a time less than the appropriate time interval between the first command and the second command. To control.
  • the first command At a time point less than the appropriate time interval of the second command, control is performed so that the second command is not issued for the second range.
  • FIG. 1 is a configuration diagram showing an example of the overall configuration of a storage system that is an embodiment to which a first example of the present invention is applied.
  • FIG. FIG. 2 is a configuration diagram illustrating an example of a configuration of a storage device in the storage system of FIG. 1.
  • FIG. 3 is a schematic diagram illustrating an example of a configuration of blocks and pages in the chip of the nonvolatile memory in FIG. 2. It is explanatory drawing which shows an example of the temperature change at the time of erase
  • notations such as “first”, “second”, and “third” are attached to identify the constituent elements, and do not necessarily limit the number or order.
  • a number for identifying a component is used for each context, and a number used in one context does not necessarily indicate the same configuration in another context. Further, it does not preclude that a component identified by a certain number also functions as a component identified by another number.
  • a storage device disclosed in the present application includes a controller and a nonvolatile memory, and the controller issues a data write command to the nonvolatile memory, The controller holds the optimum value of the time interval between commands, and after the controller issues the command to the nonvolatile memory, the nonvolatile memory in which the physical area of the nonvolatile memory rewritten by the command is rewritten by the next command In the case where it is adjacent to the physical area, the next command is issued after the optimal value of the time interval or a time longer than the optimal value has elapsed.
  • SS storage system
  • FIG. 1 shows a configuration example of a storage system (SS) which is a first embodiment to which the present invention is applied.
  • the storage system (SS) includes an SSD controller (SSD controller) and a plurality of storage devices (SSD (1) to SSD (N)) connected to the SSD controller.
  • SSD controller SSD controller
  • SSD (1) to SSD (N) storage devices
  • the SSD controller and the storage devices SSD (1) to SSD (N) communicate data and commands, and the SSD controller is connected to a host device (Host) that executes information processing and communicates data and commands with each other.
  • Hos host device
  • the SSD controller is composed of an information processing circuit (CPU) and one or more DRAM chips (DRAM) connected to the information processing circuit (CPU).
  • An information processing circuit (CPU) performs data communication with each other between connected DRAM chips (DRAM).
  • the SSD controller (SSD controller) processes commands sent from the host device (Host) and issues commands to the storage devices (SSD (1) to SSD (N)). Further, the status of each storage device is managed, and the status is notified to the host device (Host) as necessary.
  • Each storage device (SSD (1) to SSD (N)) is composed of one control circuit (Controller), one or more nonvolatile memory chips (NVM) and one or more DRAM chips (DRAM).
  • the One control circuit (Controller) performs data communication with the nonvolatile memory chip (NVM) and the DRAM chip (DRAM) and controls them.
  • FIG. 2 shows details of each storage device (SSD) constituting the storage system (SS) shown in FIG.
  • the storage device consists of one control circuit (Controller), a non-volatile memory chip (NVM (1,1) to NVM (i, j)), and a DRAM chip (DRAM (1) to DRAM (p)) It consists of. i, j, and p are natural numbers.
  • Controller consists of an interface, data register (RG), time interval control block (TIME_MNG), nonvolatile memory control circuit (NVMC (1) to NVMC (i)), and DRAM It is composed of control circuits (DRAMC (1) to DRAMC (p)). Each will be described below.
  • the interface is connected to the SSD controller in FIG. Further, it is connected to the data register (RG) and the time interval control block (TIME_MNG), and performs data communication with each other.
  • RG data register
  • TIME_MNG time interval control block
  • the data register (RG) is connected to the interface and the time interval control block (TIME_MNG), and performs data communication with each other. Further, the data register (RG) stores a time interval value between commands necessary for control by the time interval control block (TIME_MNG).
  • the time interval control block is a time interval setting block (INT_CNFG), a time interval update block (INT_UPDT), a time wait block (T_WAIT), a subsequent command issue block (NN_CMD), and another physical area command issue It is composed of blocks (OTR_CMD).
  • the time interval control block (TIME_MNG) includes a data register (RG), nonvolatile memory control circuits (NVMC (1) to NVMC (i)), and DRAM control circuits (DRAMC (1) to DRAMC (p)). They are connected and perform data communication with each other.
  • the non-volatile memory control circuit (i_ch) is connected to the non-volatile memory (NVM (i_ch, 1) to NVM (i_ch, j)), and reads data from the non-volatile memory (NVM) The data is written into the nonvolatile memory (NVM) and the data in the nonvolatile memory (NVM) is erased.
  • i_ch is a natural number from 1 to i.
  • j nonvolatile memory chips (NVM (i_ch, 1), NVM (i_ch, 2), ..., NVM (i_ch, j)) belonging to the channel i_ch (Ch i_ch) are connected to the data transfer bus (I / O ).
  • j nonvolatile memory chips belonging to each channel can independently process instructions from the nonvolatile memory control circuit (NVMC).
  • the j non-volatile memory chips belong to the way 1, way 2, way..., way j in order of physical proximity from the non-volatile memory control circuit (NVMC).
  • the non-volatile memory control circuit (NVMC) determines whether each non-volatile memory chip is processing data by reading the signal of the ready busy line (RY / BY) connected to each non-volatile memory chip. Can do.
  • the nonvolatile memory control circuits (NVMC (1) to NVMC (i)) are connected to the time interval control block (TIME_MNG) and perform data communication with each other.
  • TIME_MNG time interval control block
  • the DRAM control circuits (DRAMC (1) to DRAMC (p)) are connected to the DRAM chips (DRAM (1) to DRAM (p)), respectively, and read data from the DRAM chips and write data to the DRAM chips. .
  • the DRAM control circuits (DRAMC (1) to DRAMC (p)) are connected to the time interval control block (TIME_MNG) and perform data communication with each other.
  • TIME_MNG time interval control block
  • Each non-volatile memory NVM chip (NVM chip) is composed of N_b blocks, and each block is composed of N_p pages.
  • Data stored in the non-volatile memory chip (NVM chip) is read in units of pages, and when data is written in the non-volatile memory chips, data is written in units of pages. The data stored in the nonvolatile memory NVM chip is erased in units of blocks.
  • N_b blocks in the nonvolatile memory chip are arranged in two vertical and horizontal directions
  • N_p pages in the block are similarly arranged in two vertical and horizontal directions. However, they may be arranged in three directions of length, width and depth, respectively.
  • Joule heat is generated when data is written or erased, and the heat is also propagated to physically adjacent blocks or pages. For example, when data is written to one of pages (page (L)) and (page (2L)) adjacent in the vertical direction in the same block, heat is transmitted to the other (P1).
  • FIG. 4 shows a case where the control circuit (Controller) continuously erases the non-volatile memory (NVM) in two adjacent blocks.
  • A, B, and C represent the order of time passage.
  • A one block (block (1)) is erased (Erase).
  • the temperature of the cells in (block (1)) has risen to the optimum temperature for data erasure (High ⁇ T).
  • heat propagates to a part of the adjacent block (block (2)).
  • the cells in (block (1)) and the part of (block (2)) adjacent to (block (1)) are at room temperature (Low T) and the optimal temperature for data erasure It becomes the intermediate temperature (Mid T) of (High T).
  • FIG. 5 shows a case where the control circuit (Controller) continuously performs a write operation to the nonvolatile memory (NVM).
  • Fig. 5 (a) shows a case where the control circuit (Controller) writes data continuously on two adjacent pages of the non-volatile memory (NVM).
  • A, B, and C represent the order of time passage.
  • FIG. 5B shows a case where the control circuit (Controller) continuously writes to adjacent cells existing in a page of the nonvolatile memory (NVM).
  • A, B, and C represent the order of time passage.
  • the memory cell (Cell) is indicated by a circle.
  • the memory cell into which data is written and the adjacent memory cell have a temperature (Mid T) between room temperature (Low T) and the optimum temperature for data writing (High T).
  • FIG. 6 shows a case where the control circuit (Controller) erases data after a data write operation to the nonvolatile memory (NVM).
  • FIG. 6A shows a case where the control circuit (Controller) erases data after performing a data write operation in the same block (block) of the nonvolatile memory (NVM).
  • one block is divided by at least one page.
  • A, B, and C represent the order of time passage.
  • the cell in the page rises to the optimum temperature (High ⁇ T) for data writing.
  • heat is transmitted to a region in a block adjacent to the page.
  • the cells in the page and the area adjacent to the page are between the room temperature (Low T) and the optimum temperature for data writing (High T) (Mid T) It becomes.
  • the shaded area (X) becomes higher than the optimum temperature for erasing data, and the data in that area cannot be erased properly. If time passes and it becomes the C stage, the temperature of the memory cell in a block will fall to room temperature. If data in the block is erased at this stage, the memory cells in the block reach the optimum temperature for data erase, and data can be erased appropriately (R to erase).
  • FIG. 6B shows a case where the control circuit (Controller) erases data after performing a data write operation in two adjacent blocks of the nonvolatile memory (NVM).
  • one block is divided by at least one page.
  • A, B, and C represent the order of time passage.
  • the cell in the page rises to the optimum temperature (High ⁇ T) for data writing.
  • heat is transmitted to a block (block (1)) including the page (page) and a partial area in the block (block (2)) adjacent to the page (page).
  • the cells in the page and the area adjacent to the page are between the room temperature (Low T) and the optimum temperature for data writing (High T) (Mid T) It becomes. If the immediately adjacent block (block (2)) is erased at this stage, the shaded area (X) becomes higher than the optimum temperature for data erasure, and data in that area cannot be erased appropriately. If time passes and it becomes the C stage, the temperature of the memory cell in an adjacent block (block (2)) will fall to room temperature. If the data in the adjacent block (block (2)) is erased at this stage, the memory cells in the adjacent block (block (2)) will be at the optimum temperature for erasing data, and data can be erased appropriately. Yes (R to erase).
  • FIG. 7 shows a case where data is written after the control circuit (Controller) performs a data erasing operation on the nonvolatile memory (NVM).
  • FIG. 7A shows a case where the control circuit (Controller) performs data writing after performing the data erasing operation in the same block of the nonvolatile memory (NVM).
  • A, B, and C represent the order of time passage.
  • the data in the block is erased (Erase).
  • the temperature of the cells in the block has risen to the optimum temperature (High T) for data erasure.
  • the cells in the block are lowered to a temperature (MidMT) between room temperature (Low T) and a temperature optimum for data erasure (High T).
  • the shaded area (X) rises to a temperature higher than the optimum temperature for data writing, and data can be written appropriately to the cells in that area. Absent. If time passes and it becomes the C stage, the memory cell in a block will fall to room temperature. If data is written to the page at this stage, the memory cells in the page have the optimum temperature for data writing, and data can be written appropriately (R to write).
  • FIG. 7B shows a case in which the control circuit (Controller) performs data writing after performing a data erasing operation in two adjacent blocks of the nonvolatile memory (NVM).
  • A, B, and C represent the order of time passage.
  • ReRAM is a nonvolatile memory other than the phase change memory. Control with spacing is effective. ReRAM creates or extinguishes current paths (such as oxygen vacancy paths) in materials by applying voltage. As a result, the electric resistance of the memory element is changed and “0” or “1” is written. At the time of writing, current also flows through the memory element, so Joule heat is also generated.
  • the present invention can be applied to a memory that generates heat during operation and has a characteristic that the heat generation affects the operation.
  • ⁇ D Setting of physical arrangement of block and page in nonvolatile memory>
  • FIGS. 1-10 An example of a method for setting the physical arrangement of blocks and pages in the nonvolatile memory will be described with reference to FIGS.
  • FIG. 8 (a) shows an example of management information (List) representing the physical arrangement of blocks and pages in the non-volatile memory (NVM).
  • NVM chip nonvolatile memory chip having a three-dimensional structure
  • a block and a page (page (not shown in FIG. 8)) are arranged in a three-dimensional direction.
  • management information # of pages (x), (y), (z)
  • management information # of pages (x), (y), (z)
  • information on how many blocks are arranged in the x, y, and z directions in one nonvolatile memory chip is recorded in the management information.
  • FIG. 9 shows an example in which the physical arrangement of blocks and pages in the nonvolatile memory is set in the control circuit (Controller).
  • the time interval setting block (INT_CNFG) inside the control circuit (Controller) represents the physical arrangement of blocks and pages recorded in the non-volatile memory (NVM) chip. Management information is read from the chip (Read List) and recorded in the data register (RG) in the control circuit (Controller).
  • FIG. 10 shows an example of a method for initially setting the optimum value of the time interval between commands.
  • the time interval setting block (INT_CNFG) inside the control circuit (Controller) is the optimum value of the time interval between commands recorded in the non-volatile memory (NVM) chip. Is read (Read Int.) And the value is recorded in the data register (RG) in the control circuit (Controller).
  • the control circuit (Controller) uses this optimum value recorded in the data register (RG) to perform F.R. G. H.
  • the control described in is executed.
  • This optimum value includes the time interval between the erase command and the erase command, the time interval between the erase command and the write command, the time interval between the write command and the erase command, the time interval between the write command and the write command, and the like.
  • the optimal value of the time interval between commands does not disappear even if an unexpected power shutdown occurs. Since the optimum value of the time interval between commands can be read from the nonvolatile memory (NVM) chip and recorded in the data register (RG), a highly reliable server, storage system and storage device (SSD) can be realized.
  • FIG. 11 shows an example of a method for changing the optimum value of the time interval between commands.
  • the optimum value of the time interval between commands also changes depending on the usage status and state of the nonvolatile memory. Therefore, after the initial setting described with reference to FIG. 10, it is necessary to change the optimum value of the time interval according to the situation and state.
  • the time interval update block (INT_UPDT) inside the controller receives the read bit error rate before error correction together with the data (A-a.aRead ERR). Based on the result, the optimum value of the time interval between commands is updated (B. update). For example, when the error rate is high, there is a possibility that the corresponding page and block are being deteriorated.
  • the time interval update block (INT_UPDT) reads management information such as the number of erases and the number of reads recorded in the memory (DRAM) (A-b. Read Table). Based on the result, the optimum value of the time interval between commands is updated (B. update). For example, when the number of times of erasing and reading of the corresponding block is large, there is a possibility that the corresponding block has been deteriorated. Therefore, the optimum value of the time interval between commands is lengthened.
  • control circuit constantly updates the optimal value of the time interval between commands according to the usage status such as the read bit error rate of the nonvolatile memory (NVM), the number of erases and the number of reads.
  • NVM nonvolatile memory
  • SSD storage system and storage device
  • control circuit stores the updated optimal value of the time interval between commands in the nonvolatile memory (NVM) chip (C. UPDT Int).
  • NVM nonvolatile memory
  • the optimum value of the time interval between the latest commands can be maintained, so even if an unexpected power interruption occurs, the optimum value of the time interval between the latest commands will not be lost. Since the optimum value of the time interval between the commands can be read from the nonvolatile memory (NVM) chip and recorded in the data register (RG), a highly reliable server, storage system and storage device (SSD) can always be realized.
  • the initial value of the optimal value is not read from the chip and is stored in the controller from the beginning, or the optimal value is set.
  • Other implementation methods are conceivable, such as holding in a memory (DRAM) instead of a data register (RG) in the controller.
  • DRAM memory
  • RG data register
  • FIG. 12 shows a conceptual diagram of this operation.
  • FIG. 13 shows this operation flow.
  • the control circuit (Controller) issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 12 A.CMD 0 and Fig.13 Step 1).
  • the control circuit (Controller) refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks or pages affected by the heat generated by the execution of the command (CMD 0).
  • Read List of Step 2 in FIG. 13
  • the control circuit (Controller) updates the table for managing the time interval (FIG. 12 B. Update Table and FIG. 13 Step 2 Update TBL).
  • FIG. 14 is a table in which the physical block address (Physical Block Address) is an entry, and the next command (CMD 1) is erased in the time interval between the first command (CMD 0) and the next command (CMD 1). Used for commands.
  • the physical block address Physical Block Address
  • CMD 1 the next command
  • FIG. 14 (a) is an example of a table (BLK TBL1) that manages only time intervals.
  • FIG. 14 (b) is an example of a table (BLKBLTBL2) for managing time intervals together with other block management information (erase count (P / E cycle) and read count (Read cycle)).
  • BLKBLTBL2 a table for managing time intervals together with other block management information (erase count (P / E cycle) and read count (Read cycle)).
  • the control circuit (Controller) has a row corresponding to the physical block address 18057 in the time interval management table (BLK TBL1) (BLK TBL2) shown in FIG. 14 and two physically adjacent blocks (physical block address 18056). And "Erase” indicating that the command issued by CMD 0 is erased is written in the CMD column of the row corresponding to 158), and the time when the CMD ⁇ 0 erase command is executed in the Time column of the same row (3.14. 22.33.52.358.782).
  • Blocks that are physically adjacent to each other are determined based on management information representing a physical arrangement in the nonvolatile memory.
  • this management information can be configured as a table in which the physical block addresses 18057 are associated with the physical block addresses 18056 and 18058, for example.
  • the data may be in other formats instead of the table configuration data.
  • the control circuit sets a block (physical block address 24333) physically adjacent to the row corresponding to the physical block address 24332 of the time interval management table (BLK TBL1) (BLK TBL2) shown in FIG. “Write” is written in the CMD column of the corresponding row to indicate that the command issued by CMD 0 is a write, and the time when the write command of CMD 0 is executed in the Time column of the same row (3.14.22.33.52.147. 095) is written.
  • BLK TBL1 time interval management table
  • FIG. 15 is a table in which the physical page address (Physical Page Address) is an entry, and the next command (CMD 1) is written in the time interval between the first command (CMD 0) and the next command (CMD 1). Used for commands.
  • FIG. 15 (a) is an example of a table (PG TBL1) that manages only time intervals.
  • Fig. 15 (b) is an example of a table (PG TBL2) for managing time intervals together with physical address-logical address conversion.
  • the control circuit (Controller), the row corresponding to the physical page address 4332577 in the time interval management table (PG TBL1) (PG TBL2) shown in FIG. 15 and two physically adjacent pages (physical page address 432576). And 432578) are written in the CMD column of the row corresponding to CMD 0, and “Write” indicating that the command issued by CMD 0 is write is written, and the time when the write command of CMD 0 is executed in the Time column of the same row (6.8. 08.50.32.334.905).
  • the physically adjacent pages are determined based on management information representing the physical arrangement in the nonvolatile memory.
  • the control circuit (Controller) has a row corresponding to the physical page address 689300 in the time interval management table (PG TBL1) (PG TBL2) shown in FIG. 15 and another page ( “Erase” is written in the CMD column of the row corresponding to the physical page address 689301) to indicate that the command issued by CMD 0 is erase, and the time when the CMD 0 erase command was executed in the Time column of the same row ( 6.8.08.50.13.028.347) is written.
  • PG TBL1 time interval management table
  • control circuit (Controller) confirms whether there is a next command following CMD 0 (FIG. 13 Step 3). If there is no next command, the process returns to this confirmation routine (N in Step 13 in FIG. 13).
  • control circuit erases (or writes) the physical block (or data) with the next command (CMD 1) in the time interval management table (or A line corresponding to (physical page) is referenced (FIG. 13 Step 4).
  • the control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time between commands recorded in the data register (RG). It is determined whether or not the interval is longer than the optimum value (FIG. 13, Step 5).
  • the next command (CMD 1) is executed as it is (Step 7 in FIG. 13).
  • the time waiting block (T_WAIT) in the control circuit (Controller) waits until the time interval becomes longer than the optimum value (Step 6 in FIG. 13). .
  • the time waiting block (T_WAIT) executes the next command (CMD 1) (FIG. 12 C. CMD 1 and FIG. 13 Step 7).
  • FIG. 16 shows a conceptual diagram of this operation.
  • FIG. 17 shows this operation flow.
  • control circuit issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 16 A.CMD 0 and Fig.17 Step 1).
  • control circuit refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks and pages affected by the heat generated by the execution of the command (CMD (0). (Read (List of Step 2 in FIG. 17).
  • the control circuit updates the table for managing the time interval (Fig. 16B. Update Table and Fig.17 Step 2 Update TBL).
  • the method for updating the time interval management table is the same as the method described in F.
  • the control circuit After updating the time interval management table, the control circuit (Controller) checks whether there is a next command following CMD 0 (FIG. 17 Step 3).
  • Step 3 Y the control circuit (Controller) erases (or writes) the physical block (or physical) with the next command (CMD 1) in the time interval management table. Refer to the line corresponding to (Page) (Fig. 17 Step 4).
  • the control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time interval between the commands recorded in the data register RG. It is determined whether or not it is longer than the optimum value (FIG. 17 Step 5).
  • Step 17: CMD 1 the next command (CMD-1) is executed as it is (Step 17: CMD 1 1). If the time interval is shorter than the optimum value (N in FIG. 17 ⁇ Step 5), the next and subsequent command issue block (NN_CMD) in the Controller has a command after CMD 1 (CMD ⁇ 2 and later) ( Figure 17 Step 6 )
  • the row corresponding to the physical block (or physical page) from which data is erased (or written) by CMD 2 is referred (Step 4 in FIG. 17).
  • next and subsequent command issue block compares the current time with the time when the previous command (CMD 0) described in the table was executed, and those time intervals were recorded in the data register RG. It is determined whether or not the time interval between commands is longer than the optimum value (FIG. 17 Step 5). Thereafter, when the time interval is longer than the optimum value, the next command is executed (FIG. 16 ⁇ C. CMD 2 and FIG. 17 ⁇ Step 7 CMD 2), and when the time interval is shorter than the optimum value (FIG. 17 Step 5 N) executes Step 6.
  • control circuit manages the time interval, so that F.I.
  • F.I As described above, it is possible to process other commands preferentially without leaving a time interval and to read / write data to / from the storage device at high speed. Further, unlike the following example H, there is no need to change the command issue destination address.
  • Control to issue command to another physical page Hereinafter, an example of control for issuing a command to another physical page will be described with reference to FIGS.
  • FIG. 18 shows a conceptual diagram of this operation.
  • FIG. 19 shows this operation flow.
  • control circuit issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 18 A.CMD 0 and Fig.19 Step 1).
  • control circuit refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks and pages affected by the heat generated by the execution of the command (CMD (0). (Read List of Step 2 in FIG. 19).
  • control circuit updates the table for managing the time interval (Fig. 18B. Update Table and Fig. 19 Step 2 Update TBL).
  • the method for updating the time interval management table is the same as the method described in F.
  • the control circuit (Controller) After the time interval management table is updated, the control circuit (Controller) checks whether there is a next command following CMD0 (FIG. 19 Step 3). If there is no next command, the process returns to this confirmation routine (N in Step 19 in FIG. 19). When the next command exists (FIG. 19 Step 3 Y), the control circuit (Controller) deletes (or writes) the physical block (or data) with the next command (CMD 1) in the time interval management table (or A row corresponding to (physical page) is referenced (FIG. 19, Step 4).
  • the control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time interval between the commands recorded in the data register RG. It is determined whether or not it is longer than the optimum value (FIG. 19, Step 5).
  • the separate physical area command issue block (OTR_CMD) in the control circuit (Controller) erases data with the next command (CMD 1) (or The physical block (or physical page) to be written is changed to another physical block (or physical page) if possible (FIG. 19, Step 6).
  • CMD ⁇ 1 After the change, issue the following command (CMD ⁇ 1 in Step 7 in Fig. 19).
  • the first command may be written to another physical page (Pm) that is not physically adjacent to the physical page (P0) written by the write command (CMD 0) (no influence of heat)
  • the data of the next command (CMD 1) may be written to the physical page (Pq) in another nonvolatile memory chip (NVM (i, 1)) (FIG. 18 C-1. CMD 1). -2. CMD 1).
  • the controller manages the time interval so that F.I.
  • F.I As described above, by changing the physical area of the nonvolatile memory corresponding to the command without leaving a time interval, it is possible to read / write data from / to the storage device at high speed. In addition, the order of command issuance is not changed as in the previous G example.
  • server SVR
  • FIG. 20 shows an example of a server (SVR) in which a memory module (MM) is connected to each host device (Host).
  • a host device (Host) composed of an information processing circuit (CPU) and a memory (DRAM) performs information processing.
  • the storage device (memory module (MM)) of the present application is connected to the host device (Host) for main memory expansion or cache use.
  • the memory module (MM) includes a non-volatile memory (NVM), a flash memory (DRAM), and a control circuit (Controller) that controls them. Examples of the interface between the host device (Host) and the memory module (MM) include PCIe.
  • a plurality of host devices (Hosts) are connected to each other via an interconnect network (Interconnect) or the like, and can communicate information.
  • Interconnect interconnect network
  • control circuit (Controller) in the memory module (MM) causes F. G. H.
  • the control is executed.
  • FIG. 21A shows an example in which a non-volatile memory DIMM (Dual Inline Memory Module) (NVM-DIMM) is directly connected to an information processing circuit (CPU) in each host device (Host).
  • a non-volatile memory DIMM control circuit (DIMMCPUCTL) is mounted, and the E.I.C. for the non-volatile memory DIMM (NVM-DIMM) connected to the information processing circuit (CPU).
  • DIMMCPUCTL non-volatile memory DIMM control circuit
  • a memory (DRAM) is connected in the information processing circuit (CPU).
  • the host device composed of an information processing circuit (CPU), memory (DRAM), and nonvolatile memory DIMM (NVM-DIMM) is connected to each other via an interconnect network (Interconnect) and the like to communicate information. Can do.
  • Interconnect interconnect network
  • FIG. 21B shows a first embodiment of a non-volatile memory DIMM (NVM-DIMM).
  • the non-volatile memory DIMM (NVM-DIMM) is composed of a plurality of non-volatile memory (NVM) chips (NVM chip), and an information processing circuit (DIMM CTL) is processed according to an instruction from the non-volatile memory DIMM control circuit (DIMM CTL).
  • CPU to communicate data.
  • FIG. 21C shows a second embodiment of the nonvolatile memory DIMM (NVM-DIMM).
  • the nonvolatile memory DIMM includes a plurality of nonvolatile memory (NVM) chips (NVM chips) and a nonvolatile memory control circuit (Controller).
  • the nonvolatile memory control circuit (Controller) G. H. Executes part or all of the above control, and reads, writes, and erases data with respect to the nonvolatile memory (NVM).
  • the nonvolatile memory control circuit (Controller) communicates data with the information processing circuit (CPU).
  • CPU information processing circuit
  • a non-volatile memory that generates heat when data is written or erased, even if data is continuously written to or erased from another cell, page, or block of the non-volatile memory.
  • the time interval between commands is identified, and the time interval between the commands is compared with the optimum value, thereby waiting for the command or executing another command with priority.
  • the physical area to which data is written (erased) can be changed by a command, thereby reducing the error rate at the time of data writing or data erasing and reading / writing data to / from the storage device at high speed. It becomes possible.
  • DRAM and nonvolatile memory are used in the storage device (SSD) or memory module (MM), and a phase change memory is used as the nonvolatile memory.
  • SSD storage device
  • MM memory module
  • a phase change memory is used as the nonvolatile memory.
  • random access memory such as MRAM, phase change memory, SRAM, NOR flash memory, or ReRAM, which is a resistance change type memory, may be used as the memory.
  • a NAND flash memory or ReRAM may be used instead of the phase change memory, and can be applied to either case.
  • the storage device (SSD) is constituted by one storage device (SSD). It may be a system, and the server may be composed of a single computing node.
  • the embodiment of the present application is configured by a control circuit (Controller), a memory (DRAM), a register, and a nonvolatile memory, but manages an area for executing control, an optimum value, and a time interval.
  • the area to be performed is not limited to the above example.
  • a part of the control may be executed in the chip or in the host, or a part of the time interval may be managed in the controller or the chip.
  • the present invention made by the present inventor has been specifically described based on the embodiment.
  • the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • It can be used in the semiconductor memory field and the like, and a storage device that operates at high speed and with high reliability can be provided.
  • Time interval management table for pages PG_TBL2 Time interval for page and physical logical address conversion management table P0, Pm, Pq... physical page SVR ... Server Host (1)-Host (N) ... Host Interconnect ... Interconnect MM (1) to MM (N).
  • Memory module NVM-DIMM Non-volatile memory DIMM DIMM CTL ... Non-volatile memory DIMM control circuit

Abstract

Provided is a storage device that achieves a reduction in error rate at the time of data write and data erasure in the storage device to thereby enable high-speed data reading and writing. The storage device is provided with a controller and a nonvolatile memory. The nonvolatile memory is structured to generate heat when operated. The controller issues a command ordering a predetermined operation to the nonvolatile memory. The controller is able to refer to an optimum value of a time interval between the operations by the commands. When, after the command was issued to the nonvolatile memory, a physical domain of the nonvolatile memory operated by the command has a predetermined physical placement relationship with another physical domain of the nonvolatile memory to be operated by the next command, the controller controls the operation by the next command to be performed after the elapse of time equal to or greater than the optimum value of the time interval.

Description

記憶装置およびその制御方法Storage device and control method thereof
 本発明は、不揮発性メモリを用いた記憶装置の高信頼化及び高速化に係る。 The present invention relates to high reliability and high speed of a storage device using a nonvolatile memory.
 不揮発性メモリ、特に相変化メモリを搭載した記憶装置においては、相変化メモリに電流を流し、ジュール熱を発生させることで、メモリの抵抗値を変化させ、データの書き込みを行う。従来、同じメモリセルへの書き込みが連続して発生した場合、相変化メモリに電流を流す回路は、前回の書き込みによって発生した熱を緩和させるために、一定間隔時間を空けたのち、次の書き込み電流を流していた(特許文献1参照)。 In a storage device equipped with a nonvolatile memory, particularly a phase change memory, current is passed through the phase change memory to generate Joule heat, thereby changing the resistance value of the memory and writing data. Conventionally, when writing to the same memory cell occurs continuously, the circuit that flows current to the phase change memory waits for a certain interval to relax the heat generated by the previous writing, and then the next writing An electric current was passed (see Patent Document 1).
特開2012-142083号公報JP 2012-142083
 不揮発性メモリ、特に相変化メモリにデータを書き込む際、メモリセルにジュール熱が発生する。メモリにデータを書き込んだのち、十分な時間間隔を空けずに次の書き込み電流を流すと、前回書き込んだ際に発生した熱が十分緩和していないため、メモリは想定以上の高温となる。一方、相変化メモリには、データを書き込むための最適な温度が存在する。このため、想定される最適な温度よりも高温になった状態でデータの書き込みが行われると、データが適切に書き込めず、エラーが発生する。 * Joule heat is generated in memory cells when data is written to nonvolatile memory, especially phase change memory. After writing data to the memory, if the next write current is passed without leaving a sufficient time interval, the heat generated during the previous write is not sufficiently relaxed, and the memory becomes hotter than expected. On the other hand, the phase change memory has an optimum temperature for writing data. For this reason, if data is written in a state where the temperature is higher than the optimum temperature, the data cannot be written properly, and an error occurs.
 従来技術では、同じメモリセルに、連続してデータの書き込みが発生した場合、メモリセルに電流を流す回路は、1回目の書き込みから一定の時間間隔を空けたのち、2回目の書き込みのための電流を流していた。これにより、同じメモリセルに対して連続して書き込みが発生した場合においても、最適な温度でデータを書き込むことができ、エラーの発生を低減させていた。 In the prior art, when data is continuously written to the same memory cell, a circuit for supplying a current to the memory cell waits for a certain time interval from the first write and then performs the second write. Current was flowing. As a result, even when data is continuously written to the same memory cell, data can be written at an optimum temperature, and the occurrence of errors is reduced.
 しかし、発明者らの検討によれば、あるメモリセルで発生した熱は、隣接セルや物理的に距離が近いメモリセルにも伝搬する。このため、物理的に距離が近い2つのメモリセルに対して、連続して書き込みが発生した場合、はじめにデータを書き込んだセルで発生した熱の影響により、次にデータを書き込むメモリセルが想定以上の高温となり、適切にデータが書き込めない。また、同じメモリセルへ連続して書き込みが発生した場合、従来技術では、時間間隔を空けなければならず、性能が低下する問題があった。 However, according to studies by the inventors, heat generated in a certain memory cell propagates to adjacent cells and memory cells that are physically close to each other. For this reason, when data is written to two memory cells that are physically close to each other, the memory cell to which data is next written is more than expected due to the effect of heat generated in the cell to which data is first written. The data becomes too hot to write data properly. In addition, when continuous writing to the same memory cell occurs, the conventional technique has a problem that the time interval must be kept and performance is deteriorated.
 本発明の目的は、上記従来技術の課題を解決し、高信頼且つ高速に動作する記憶装置を提供することにある。 An object of the present invention is to solve the above-described problems of the prior art and provide a storage device that operates with high reliability and high speed.
 本願において開示される発明のうち、代表的なものを示すと次のとおりである。 Among the inventions disclosed in the present application, representative ones are as follows.
 本発明の一つの側面は、コントローラと、不揮発性メモリとを備えた記憶装置である。不揮発性メモリは動作にともなって発熱する構造である。コントローラは、不揮発性メモリに対して所定動作を指示するコマンドを発行する。また、コントローラは、コマンドによる動作間の時間間隔の最適値を保持する。動作間の時間間隔の最適値は、実質的には、コマンドの発行タイミングの間隔を用いることができる。また、コントローラは、コマンドを不揮発性メモリに発行したのち、コマンドによって動作した不揮発性メモリの物理領域が、次のコマンドによって動作する不揮発性メモリの他の物理領域と所定の物理的配置関係にある場合、時間間隔の最適値もしくは最適値より長い時間が経過したのちに、前記次のコマンドによる動作を行うように制御する。 One aspect of the present invention is a storage device including a controller and a nonvolatile memory. The nonvolatile memory has a structure that generates heat during operation. The controller issues a command for instructing a predetermined operation to the nonvolatile memory. In addition, the controller holds an optimum value of the time interval between operations by commands. As the optimum value of the time interval between operations, the command issue timing interval can be used substantially. In addition, after the controller issues a command to the nonvolatile memory, the physical area of the nonvolatile memory operated by the command has a predetermined physical arrangement relationship with other physical areas of the nonvolatile memory operated by the next command. In this case, the control is performed so that the operation according to the next command is performed after the optimal value of the time interval or a time longer than the optimal value has elapsed.
 本発明の具体的な好ましい態様では、コントローラは、コマンドによる動作間の時間間隔の最適値として、コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、コマンドによって動作した不揮発性メモリの物理領域が、次のコマンドによって動作する他の不揮発性メモリの物理領域と隣接している場合、コマンドの発行の時間間隔の最適値もしくは最適値より長い時間が経過するまで、次のコマンドを待機させ、待機後、次のコマンドを発行する。このようにして、コマンドの発行の時間間隔の最適値を確保する。 In a specific preferable aspect of the present invention, the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between operations by the command, and the nonvolatile memory operated by the command If the physical area is adjacent to the physical area of another non-volatile memory that is operated by the next command, the next command is executed until the optimal value of the command issuance time interval or a time longer than the optimal value has elapsed. Wait and issue the next command after waiting. In this way, the optimum value of the command issue time interval is secured.
 本発明の他の具体的な好ましい態様では、コントローラは、コマンドによる動作間の時間間隔の最適値として、コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、コマンドによって動作した不揮発性メモリの物理領域が、次のコマンドによって動作する他の不揮発性メモリの物理領域と隣接している場合、次のコマンドを飛び越して、次のコマンドの次以降のコマンドを発行する。このようにして、コマンドの発行の時間間隔の最適値を確保する。 In another specific preferred aspect of the present invention, the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between the operations by the command, and the non-volatile operated by the command. When the physical area of the non-volatile memory is adjacent to the physical area of another non-volatile memory operated by the next command, the next command is issued after the next command. In this way, the optimum value of the command issue time interval is secured.
 本発明の他の具体的な好ましい態様では、コントローラは、コマンドによる動作間の時間間隔の最適値として、コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、コマンドによって動作した不揮発性メモリの物理領域が、次のコマンドによって動作する他の不揮発性メモリの物理領域と隣接している場合、コマンドによって書き換わった不揮発性メモリの物理領域と隣接しない代替物理領域を選定し、他の不揮発性メモリの物理領域に代えて、代替物理領域に対して次のコマンドを発行する。このようにして、コマンドの発行の時間間隔の最適値を確保する。 In another specific preferred aspect of the present invention, the controller holds in advance an optimum value of the time interval between the issuance of a command and the next command as an optimum value of the time interval between the operations by the command, and the non-volatile operated by the command. If the physical area of the non-volatile memory is adjacent to the physical area of another non-volatile memory that is operated by the following command, an alternative physical area that is not adjacent to the physical area of the non-volatile memory that has been rewritten by the command is selected. The following command is issued to the alternative physical area instead of the physical area of the non-volatile memory. In this way, the optimum value of the command issue time interval is secured.
 具体的な装置構成の典型例としては、例えば不揮発性メモリは、コマンドによる動作間の時間間隔の最適値として、コマンド間の時間間隔の最適値を規定したデータを保持している。コントローラは、必要に応じてコマンド間の時間間隔の最適値を、不揮発性メモリ内から読み出すことができる。 As a typical example of a specific device configuration, for example, a nonvolatile memory holds data that defines an optimum value of a time interval between commands as an optimum value of a time interval between operations by commands. The controller can read the optimum value of the time interval between commands from the nonvolatile memory as necessary.
 コマンドには種々のものが考えられる。時間間隔の最適値はコマンドに毎に定めることが望ましい。例えば、コマンド間の時間間隔の最適値は、データ書き込みコマンドとデータ書き込みコマンドの間の時間間隔の最適値、データ書き込みコマンドとデータ消去コマンドの間の時間間隔の最適値、データ消去コマンドとデータ書き込みコマンドの間の時間間隔の最適値、および、データ消去コマンドとデータ消去コマンドの間の時間間隔の最適値などが考えられる。 * Various commands can be considered. It is desirable to determine the optimum value of the time interval for each command. For example, the optimal value of the time interval between commands is the optimal value of the time interval between the data write command and the data write command, the optimal value of the time interval between the data write command and the data erase command, the data erase command and the data write The optimum value of the time interval between commands and the optimum value of the time interval between data erasure commands can be considered.
 また、他の具体的な装置構成の例としては、コントローラは、コマンドによる、不揮発性メモリのデータの書き込みまたは消去の単位に対応する物理領域ごとに、最後に実行されたコマンドの実行時刻を管理する。物理領域の具体例としては、ページやブロックとして予め定義されているものが考えられる。 As another specific example of the device configuration, the controller manages the execution time of the last executed command for each physical area corresponding to the unit of writing or erasing data in the nonvolatile memory by the command. To do. As a specific example of the physical area, one defined in advance as a page or a block can be considered.
 また、本発明の他の観点である記憶装置は、コントローラと、不揮発性メモリとを備えた記憶装置である。コントローラは、不揮発性メモリの所定範囲の物理領域に対してコマンドを発行し、コマンド間の時間間隔の最適値情報を参照可能であり、コマンドが発行される不揮発性メモリの物理領域の物理的配置情報を参照可能である。また、コマンドを不揮発性メモリの第1の物理領域に発行したのち、次のコマンドが発行されるべき不揮発性メモリの第2の領域が、第1の領域と隣接しており、かつ、直ちに次のコマンドを発行すると時間間隔の最適値を満足できない場合、次のいずれかの操作を行う。すなわち、時間間隔の最適値もしくは最適値より長い時間が経過するまで待機したのちに、前記次のコマンドを前記第2の領域に発行する。もしくは、時間間隔の最適値もしくは最適値より長い時間が経過するまえに、次のコマンドを第2の領域とは異なる第3の領域に発行する。もしくは、時間間隔の最適値もしくは最適値より長い時間が経過するまえに、次のコマンドの次以降の別コマンドを優先的に発行する。 The storage device according to another aspect of the present invention is a storage device including a controller and a nonvolatile memory. The controller can issue a command to a physical area within a predetermined range of the nonvolatile memory, and can refer to the optimum value information of the time interval between commands, and the physical arrangement of the physical area of the nonvolatile memory from which the command is issued Information can be referred to. In addition, after the command is issued to the first physical area of the nonvolatile memory, the second area of the nonvolatile memory to which the next command is to be issued is adjacent to the first area and immediately If the optimal value of the time interval cannot be satisfied when the command is issued, perform one of the following operations. That is, after waiting until the optimal value of the time interval or a time longer than the optimal value elapses, the next command is issued to the second area. Alternatively, the next command is issued to a third area different from the second area before the optimal value of the time interval or a time longer than the optimal value elapses. Alternatively, another command after the next command is preferentially issued before the optimal value of the time interval or a time longer than the optimal value elapses.
 好ましい具体的な構成例としては、コントローラは、コマンドが発行される所定範囲の物理領域と、物理領域に最後に発行されたコマンドの種類および時間の情報を対応付けて管理する管理テーブルにアクセス可能な構成である。さらに好ましくは、コントローラは、管理テーブルに、所定範囲の物理領域と、物理領域に最後に発行されたコマンドの種類および時間の情報を格納する際に、物理的配置情報を参照することにより、所定範囲の物理領域に隣接する隣接物理領域を抽出し、隣接物理領域に対応付けて、所定範囲の物理領域に最後に発行されたコマンドの種類および時間の情報を格納する。このようなテーブルを参照することで、コマンドの時間間隔を制御することができる。なお、以下の説明でも同様であるが、各情報が関連付けられていれば、テーブルは単一のテーブルでなく複数に分割されていてもよい。また、情報にアクセスすることが可能であれば、情報を格納している記憶装置の物理的な位置は問わない。 As a preferred specific configuration example, the controller can access a management table that manages the physical area in a predetermined range in which commands are issued and the type and time information of the last issued command in the physical area in association with each other. It is a simple configuration. More preferably, the controller refers to the physical arrangement information when storing the physical area in a predetermined range and the type and time information of the last issued command in the physical area. An adjacent physical area adjacent to the physical area in the range is extracted, and the type and time information of the last issued command is stored in the physical area in a predetermined range in association with the adjacent physical area. By referring to such a table, the time interval of commands can be controlled. Although the same applies to the following description, as long as each information is associated, the table may be divided into a plurality of pieces instead of a single table. Further, the physical position of the storage device storing the information is not limited as long as the information can be accessed.
 本発明の他の観点は、複数のメモリセルを配列したメモリセルアレイを有する記憶装置の制御方法である。この方法では、メモリセルに対して第1の動作を指示する第1のコマンドと、メモリセルに対して第2の動作を指示する第2のコマンドの適正時間間隔を適正時間間隔情報として記憶する。また、複数のメモリセルのうち同時に第1のコマンドが発行される範囲と、複数のメモリセルのうち同時に第2のコマンドが発行される範囲の物理的配置関係を物理的配置関係情報として記憶する。複数のメモリセルのうち第1の範囲のメモリセルに対して第1のコマンドを発行した後、複数のメモリセルのうち第2の範囲のメモリセルに対して第2のコマンドを発行する前に、物理的配置関係情報に基づいて、第1の範囲と第2の範囲が異なる範囲であり、かつ、予め規定されている所定の物理的配置関係か否かを判定する。予め規定されている所定の物理的配置関係であった場合には、第1のコマンドと第2のコマンドの適正時間間隔未満の時点では、第2の範囲に対して第2のコマンドを発行しないように制御する。 Another aspect of the present invention is a method for controlling a storage device having a memory cell array in which a plurality of memory cells are arranged. In this method, the appropriate time interval between the first command that instructs the memory cell to perform the first operation and the second command that instructs the memory cell to perform the second operation is stored as appropriate time interval information. . Further, a physical arrangement relationship between a range in which the first command is issued simultaneously among the plurality of memory cells and a range in which the second command is issued simultaneously among the plurality of memory cells is stored as physical arrangement relationship information. . After issuing a first command to a memory cell in a first range among a plurality of memory cells, and before issuing a second command to a memory cell in a second range among the plurality of memory cells Based on the physical arrangement relationship information, it is determined whether or not the first range and the second range are different ranges and a predetermined physical arrangement relationship defined in advance. If the predetermined physical arrangement relationship is defined in advance, the second command is not issued for the second range at a time less than the appropriate time interval between the first command and the second command. To control.
 また、好ましい態様では、物理的配置関係情報に基づいて、さらに、第1の範囲と第2の範囲が完全にあるいは一部重複する範囲であった場合においても、同様に、第1のコマンドと第2のコマンドの適正時間間隔未満の時点では、第2の範囲に対して第2のコマンドを発行しないように制御する。 Further, in a preferred embodiment, based on the physical arrangement relationship information, even when the first range and the second range are completely or partially overlapping, the first command At a time point less than the appropriate time interval of the second command, control is performed so that the second command is not issued for the second range.
 本発明によれば、物理的に距離の近い別のセルに対して、データの書き込みや消去等が連続して発生した場合においても、適切にデータの書き込みや消去等を行うことができる。上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。 According to the present invention, even when data writing or erasing is continuously performed on another cell that is physically close to the cell, data writing or erasing can be appropriately performed. Problems, configurations, and effects other than those described above will be clarified by the following description of embodiments.
本発明の第一の実施例を適用した実施の形態であるストレージシステムの全体構成の一例を示す構成図である。1 is a configuration diagram showing an example of the overall configuration of a storage system that is an embodiment to which a first example of the present invention is applied. FIG. 図1のストレージシステム内の、記憶装置の構成の一例を示す構成図である。FIG. 2 is a configuration diagram illustrating an example of a configuration of a storage device in the storage system of FIG. 1. 図2の不揮発性メモリのチップ内のブロック、ページの構成の一例を示す模式図である。FIG. 3 is a schematic diagram illustrating an example of a configuration of blocks and pages in the chip of the nonvolatile memory in FIG. 2. 不揮発性メモリ内の隣接する2つのブロックに書き込まれたデータを連続して消去する際の温度変化の一例を示す説明図である。It is explanatory drawing which shows an example of the temperature change at the time of erase | eliminating the data written in two adjacent blocks in a non-volatile memory continuously. 不揮発性メモリへデータを連続して書き込む際の温度変化の一例を示す説明図である。It is explanatory drawing which shows an example of the temperature change at the time of writing data continuously to a non-volatile memory. 不揮発性メモリへデータを書き込んだのち、連続してデータを消去する際の温度変化の一例を示す説明図である。It is explanatory drawing which shows an example of the temperature change at the time of erasing data continuously after writing data in a non-volatile memory. 不揮発性メモリ内のデータを消去した後、連続してデータを書き込む際の温度変化の一例を示す説明図である。It is explanatory drawing which shows an example of the temperature change at the time of writing data continuously after erasing the data in a non-volatile memory. 不揮発性メモリ内のブロック及びページの物理配置を表す管理情報及び不揮発性メモリ内のブロックの物理配置の一例を示す説明図である。It is explanatory drawing which shows an example of the management information showing the physical arrangement of the block in a non-volatile memory, and a page, and the physical arrangement of the block in a non-volatile memory. 不揮発性メモリ内のブロック及びページの物理配置を設定する方法の一例を示す模式図である。It is a schematic diagram which shows an example of the method of setting the physical arrangement | positioning of the block in a non-volatile memory, and a page. コマンド間の時間間隔の最適値を設定する方法の一例を示す模式図である。It is a schematic diagram which shows an example of the method of setting the optimal value of the time interval between commands. コマンド間の時間間隔の最適値を変更する方法の例を示す模式図である。It is a schematic diagram which shows the example of the method of changing the optimal value of the time interval between commands. コマンド処理後、一定時間間隔後に次のコマンドを実行する制御の一例を示す模式図である。It is a schematic diagram which shows an example of the control which performs the next command after a fixed time interval after command processing. コマンド処理後、一定時間間隔後に次のコマンドを実行する制御の一例を示すフローチャートである。It is a flowchart which shows an example of the control which performs the following command after a fixed time interval after command processing. 各物理ブロックにおいて前回コマンドが実行された時刻を管理する、時間間隔管理テーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the time interval management table which manages the time when the last command was performed in each physical block. 各物理ページにおいて前回コマンドが実行された時刻を管理する、時間間隔管理テーブルの一例を示す模式図である。It is a schematic diagram which shows an example of the time interval management table which manages the time when the last command was performed in each physical page. コマンド処理後、次のコマンド以外のコマンドを優先的に実行する制御の一例を示す模式図である。It is a schematic diagram which shows an example of the control which preferentially executes commands other than the next command after command processing. コマンド処理後、次のコマンド以外のコマンドを優先的に実行する制御の一例を示すフローチャートである。It is a flowchart which shows an example of the control which preferentially executes commands other than the next command after command processing. コマンド処理後、次のコマンドが対象とする物理領域を変更したのち、次のコマンドを実行する制御の一例を示す模式図である。It is a schematic diagram which shows an example of the control which performs the next command after changing the physical area which the next command makes object after command processing. コマンド処理後、次のコマンドが対象とする物理領域を変更したのち、次のコマンドを実行する制御の一例を示すフローチャートである。It is a flowchart which shows an example of the control which performs the next command after changing the physical area which the next command makes object after command processing. 本発明の第二の実施例を適用した実施の形態であるサーバーの全体構成の一例を示す構成図である。It is a block diagram which shows an example of the whole structure of the server which is embodiment which applied the 2nd Example of this invention. 本発明の第二の実施例を適用した実施の形態であるサーバーの全体構成の別の例を示す構成図である。It is a block diagram which shows another example of the whole structure of the server which is embodiment which applied the 2nd Example of this invention.
 実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。 Embodiments will be described in detail with reference to the drawings. However, the present invention is not construed as being limited to the description of the embodiments below. Those skilled in the art will readily understand that the specific configuration can be changed without departing from the spirit or the spirit of the present invention.
 以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。 In the structure of the invention described below, the same portions or portions having similar functions are denoted by the same reference numerals in different drawings, and redundant description may be omitted.
 本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。 In this specification and the like, notations such as “first”, “second”, and “third” are attached to identify the constituent elements, and do not necessarily limit the number or order. In addition, a number for identifying a component is used for each context, and a number used in one context does not necessarily indicate the same configuration in another context. Further, it does not preclude that a component identified by a certain number also functions as a component identified by another number.
 図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。 The position, size, shape, range, etc. of each component shown in the drawings and the like may not represent the actual position, size, shape, range, etc. in order to facilitate understanding of the invention. For this reason, the present invention is not necessarily limited to the position, size, shape, range, and the like disclosed in the drawings and the like.
 本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。 In this specification, a component expressed in the singular shall include the plural unless specifically indicated otherwise.
 本発明の代表的な実施の形態によれば、本願で開示される記憶装置は、コントローラと、不揮発性メモリから構成され、コントローラは、前記不揮発性メモリに対してデータの書き込みコマンドを発行し、コントローラは、コマンド間の時間間隔の最適値を保持し、コントローラは、コマンドを不揮発性メモリに発行したのち、コマンドによって書き換わった不揮発性メモリの物理領域が、次のコマンドによって書き換わる不揮発性メモリの物理領域と隣接した場合、時間間隔の最適値もしくは最適値より長い時間が経過したのちに、次のコマンドを発行することを特徴とする。
<A.ストレージシステムの構成>
 まず、本発明の記憶装置を適用した第一の実施例に係るストレージシステム(SS)の構成について、図1、図2を用いて説明する。
According to a typical embodiment of the present invention, a storage device disclosed in the present application includes a controller and a nonvolatile memory, and the controller issues a data write command to the nonvolatile memory, The controller holds the optimum value of the time interval between commands, and after the controller issues the command to the nonvolatile memory, the nonvolatile memory in which the physical area of the nonvolatile memory rewritten by the command is rewritten by the next command In the case where it is adjacent to the physical area, the next command is issued after the optimal value of the time interval or a time longer than the optimal value has elapsed.
<A. Storage system configuration>
First, the configuration of the storage system (SS) according to the first embodiment to which the storage device of the present invention is applied will be described with reference to FIGS.
 図1に、本発明を適用した第一の実施の形態であるストレージシステム(SS)の構成例を示す。ストレージシステム(SS)は、SSDコントローラ(SSD controller)及びSSDコントローラと接続された複数の記憶装置(SSD(1)~SSD(N))から構成される。SSDコントローラと記憶装置SSD(1)~SSD(N)は、データ及びコマンドの通信を行い、SSDコントローラは、情報処理を実行する上位装置(Host)と接続され、互いにデータ及びコマンドの通信を行う。 FIG. 1 shows a configuration example of a storage system (SS) which is a first embodiment to which the present invention is applied. The storage system (SS) includes an SSD controller (SSD controller) and a plurality of storage devices (SSD (1) to SSD (N)) connected to the SSD controller. The SSD controller and the storage devices SSD (1) to SSD (N) communicate data and commands, and the SSD controller is connected to a host device (Host) that executes information processing and communicates data and commands with each other. .
 SSDコントローラは、情報処理回路(CPU)と、この情報処理回路(CPU)に接続された1個以上のDRAMチップ(DRAM)から構成される。情報処理回路(CPU)は接続されたDRAMチップ(DRAM)の間で互いにデータ通信を行う。SSDコントローラ(SSD controller)は、上位装置(Host)から送られたコマンドを処理し、記憶装置(SSD(1)~SSD(N))へコマンドを発行する。また、各記憶装置の状態を管理し、必要に応じて、それらの状態を上位装置(Host)へ通知する。 The SSD controller is composed of an information processing circuit (CPU) and one or more DRAM chips (DRAM) connected to the information processing circuit (CPU). An information processing circuit (CPU) performs data communication with each other between connected DRAM chips (DRAM). The SSD controller (SSD controller) processes commands sent from the host device (Host) and issues commands to the storage devices (SSD (1) to SSD (N)). Further, the status of each storage device is managed, and the status is notified to the host device (Host) as necessary.
 記憶装置(SSD(1)~SSD(N))は、それぞれ、1個の制御回路(Controller)と1個以上の不揮発性メモリチップ(NVM) と1個以上のDRAMチップ(DRAM)から構成される。1個の制御回路(Controller)は、不揮発性メモリチップ(NVM) 及びDRAMチップ (DRAM) と互いにデータ通信を行い、それらを制御する。 Each storage device (SSD (1) to SSD (N)) is composed of one control circuit (Controller), one or more nonvolatile memory chips (NVM) and one or more DRAM chips (DRAM). The One control circuit (Controller) performs data communication with the nonvolatile memory chip (NVM) and the DRAM chip (DRAM) and controls them.
 図2は、図1に示したストレージシステム(SS)を構成する各記憶装置(SSD)の詳細を示したものである。 FIG. 2 shows details of each storage device (SSD) constituting the storage system (SS) shown in FIG.
 記憶装置(SSD)は、1つの制御回路(Controller)と、不揮発性メモリチップ(NVM(1,1)~NVM(i,j)) と、DRAM チップ(DRAM (1)~DRAM(p))とから構成される。i、j、pは自然数である。 The storage device (SSD) consists of one control circuit (Controller), a non-volatile memory chip (NVM (1,1) to NVM (i, j)), and a DRAM chip (DRAM (1) to DRAM (p)) It consists of. i, j, and p are natural numbers.
 1つの制御回路(Controller)は、インターフェース(Interface)と、データレジスタ(RG)と、時間間隔制御ブロック(TIME_MNG)と、不揮発性メモリ制御回路(NVMC(1)~NVMC(i))と、DRAM制御回路(DRAMC(1)~DRAMC(p))とから構成される。以下に各々について説明する。 One controller (Controller) consists of an interface, data register (RG), time interval control block (TIME_MNG), nonvolatile memory control circuit (NVMC (1) to NVMC (i)), and DRAM It is composed of control circuits (DRAMC (1) to DRAMC (p)). Each will be described below.
 インターフェース(Interface)は、図1におけるSSDコントローラ(SSD controller)と接続されている。また、データレジスタ(RG)と、時間間隔制御ブロック(TIME_MNG)と接続されており、互いにデータ通信を行う。 The interface is connected to the SSD controller in FIG. Further, it is connected to the data register (RG) and the time interval control block (TIME_MNG), and performs data communication with each other.
 データレジスタ(RG)は、インターフェース(Interface)と、時間間隔制御ブロック(TIME_MNG)と接続されており、互いにデータ通信を行う。また、データレジスタ(RG)は、時間間隔制御ブロック(TIME_MNG)が制御に必要な、コマンド間の時間間隔の値などを格納する。 The data register (RG) is connected to the interface and the time interval control block (TIME_MNG), and performs data communication with each other. Further, the data register (RG) stores a time interval value between commands necessary for control by the time interval control block (TIME_MNG).
 時間間隔制御ブロック(TIME_MNG)は、時間間隔設定ブロック(INT_CNFG)と、時間間隔更新ブロック(INT_UPDT)と、時間待機ブロック(T_WAIT)と、次以降コマンド発行ブロック(NN_CMD)と、別物理領域コマンド発行ブロック(OTR_CMD)から構成される。また、時間間隔制御ブロック(TIME_MNG)は、データレジスタ(RG)と、不揮発性メモリ制御回路(NVMC(1)~NVMC(i))及びDRAM制御回路(DRAMC(1)~DRAMC(p))と接続されており、互いにデータ通信を行う。 The time interval control block (TIME_MNG) is a time interval setting block (INT_CNFG), a time interval update block (INT_UPDT), a time wait block (T_WAIT), a subsequent command issue block (NN_CMD), and another physical area command issue It is composed of blocks (OTR_CMD). The time interval control block (TIME_MNG) includes a data register (RG), nonvolatile memory control circuits (NVMC (1) to NVMC (i)), and DRAM control circuits (DRAMC (1) to DRAMC (p)). They are connected and perform data communication with each other.
 不揮発性メモリ制御回路(NVMC(i_ch))は、不揮発性メモリ(NVM(i_ch,1)~NVM(i_ch,j))に接続されており、不揮発性メモリ(NVM)からのデータ読み出しと、不揮発性メモリ(NVM)へのデータの書き込み及び不揮発性メモリ(NVM)のデータの消去を行う。ただし、i_chは1~iまでの自然数である。また、チャネルi_ch(Ch i_ch)に属するj個の不揮発性メモリチップ(NVM(i_ch,1), NVM(i_ch,2), …, NVM(i_ch,j))は、データ転送バス(I/O)を共有する。また、各チャネルに属するj個の不揮発性メモリチップは、不揮発性メモリ制御回路(NVMC)からの命令を独立に処理することができる。j個の不揮発性メモリチップは、不揮発性メモリ制御回路(NVMC)から物理的に近い順にウェイ(Way)1, ウェイ(Way)2, …, ウェイjに属する。各不揮発性メモリチップがデータ処理中か否かを、不揮発性メモリ制御回路(NVMC)は、各不揮発性メモリチップに接続されたレディービジー線(RY/BY)の信号を読むことで判定することができる。不揮発性メモリ制御回路(NVMC(1)~NVMC(i))は、時間間隔制御ブロック(TIME_MNG)と接続され、互いにデータ通信を行う。 The non-volatile memory control circuit (NVMC (i_ch)) is connected to the non-volatile memory (NVM (i_ch, 1) to NVM (i_ch, j)), and reads data from the non-volatile memory (NVM) The data is written into the nonvolatile memory (NVM) and the data in the nonvolatile memory (NVM) is erased. However, i_ch is a natural number from 1 to i. In addition, j nonvolatile memory chips (NVM (i_ch, 1), NVM (i_ch, 2), ..., NVM (i_ch, j)) belonging to the channel i_ch (Ch i_ch) are connected to the data transfer bus (I / O ). Also, j nonvolatile memory chips belonging to each channel can independently process instructions from the nonvolatile memory control circuit (NVMC). The j non-volatile memory chips belong to the way 1, way 2, way..., way j in order of physical proximity from the non-volatile memory control circuit (NVMC). The non-volatile memory control circuit (NVMC) determines whether each non-volatile memory chip is processing data by reading the signal of the ready busy line (RY / BY) connected to each non-volatile memory chip. Can do. The nonvolatile memory control circuits (NVMC (1) to NVMC (i)) are connected to the time interval control block (TIME_MNG) and perform data communication with each other.
 DRAM制御回路(DRAMC(1)~DRAMC(p))は、それぞれDRAMチップ(DRAM(1)~DRAM(p))に接続され、DRAMチップからのデータ読み出しとDRAMチップへのデータの書き込みを行う。また、DRAM制御回路(DRAMC(1)~DRAMC(p))は、時間間隔制御ブロック(TIME_MNG)と接続され、互いにデータ通信を行う。
<B.不揮発性メモリNVMチップ内の構成>
 図3を用いて、不揮発性メモリチップ内の構成を説明する。
The DRAM control circuits (DRAMC (1) to DRAMC (p)) are connected to the DRAM chips (DRAM (1) to DRAM (p)), respectively, and read data from the DRAM chips and write data to the DRAM chips. . The DRAM control circuits (DRAMC (1) to DRAMC (p)) are connected to the time interval control block (TIME_MNG) and perform data communication with each other.
<B. Configuration in Nonvolatile Memory NVM Chip>
The configuration in the nonvolatile memory chip will be described with reference to FIG.
 それぞれの不揮発性メモリNVMチップ(NVM chip)は、N_b個のブロック(block)から構成され、各ブロックはN_p個のページ(page)から構成される。ただし、N_b及びN_pは自然数である。例えば、容量8GB/chipの不揮発性メモリにおける1ブロックのデータサイズが1MBで、1ページのデータサイズが8kBの時、N_b=8k=(8GB/1MB)であり、N_p=128=(1MB/8kB)である。不揮発性メモリチップ(NVM chip)に格納されたデータはページ単位で読み出され、不揮発性メモリチップにデータを書き込む際は、ページ単位でデータを書き込む。また、不揮発性メモリNVMチップに格納されたデータはブロック単位で消去される。 Each non-volatile memory NVM chip (NVM chip) is composed of N_b blocks, and each block is composed of N_p pages. However, N_b and N_p are natural numbers. For example, when the data size of one block in a non-volatile memory with a capacity of 8 GB / chip is 1 MB and the data size of one page is 8 kB, N_b = 8k = (8 GB / 1 MB) and N_p = 128 = (1 MB / 8 kB ). Data stored in the non-volatile memory chip (NVM chip) is read in units of pages, and when data is written in the non-volatile memory chips, data is written in units of pages. The data stored in the nonvolatile memory NVM chip is erased in units of blocks.
 図3では、簡単のため、不揮発性メモリチップ内のN_b個のブロックは、縦と横の2方向に並んで配置され、ブロック内のN_p個のページも同様に縦と横の2方向に並んで配置されているが、それぞれ縦・横及び奥行きの3方向に配置されていてもよい。不揮発性メモリとして相変化メモリを用いる場合は、データの書き込み、消去の際にジュール熱が発生し、物理的に隣接するブロックやページにも熱が伝搬する。例えば、同一ブロック内で縦方向に隣接するページ(page(L))と(page(2L))は、どちらか一方にデータを書き込む際、もう一方に熱が伝搬する(P1)。縦方向に隣接するページ(page(1))と(page(2))(P2)や、別ブロックに属するページ(page(N_p))と(page(L))(P3)も同様である。縦方向に隣接するブロック(block(1))と(block(M+1))に関しても、どちらか一方のデータを消去する際、もう一方に熱が伝搬する(B1)。横方向に隣接するブロック(block(M+1))と(block(M+2))も同様である。 In FIG. 3, for simplicity, N_b blocks in the nonvolatile memory chip are arranged in two vertical and horizontal directions, and N_p pages in the block are similarly arranged in two vertical and horizontal directions. However, they may be arranged in three directions of length, width and depth, respectively. When a phase change memory is used as a non-volatile memory, Joule heat is generated when data is written or erased, and the heat is also propagated to physically adjacent blocks or pages. For example, when data is written to one of pages (page (L)) and (page (2L)) adjacent in the vertical direction in the same block, heat is transmitted to the other (P1). The same applies to pages (page (1)) and (page (2)) (P2) adjacent in the vertical direction, and pages (page (N_p)) and (page (L)) (P3) belonging to different blocks. Regarding the blocks (block (1)) and (block (M + 1)) adjacent to each other in the vertical direction, when one of the data is erased, heat propagates to the other (B1). The same applies to the blocks (block (M + 1)) and (block (M + 2)) adjacent in the horizontal direction.
 このように物理的に隣接するブロックやページに対して、連続してデータの書き込みや消去が実行される場合、熱の伝搬による影響を考慮した制御が必要となる。
<C.コマンド間の時間間隔を空けた制御の具体例>
 図4~図7を用いて、図2に示した制御回路(Controller)が行うコマンド間の時間間隔を空けた制御の具体例を説明する。
In this way, when data writing or erasing is continuously performed on physically adjacent blocks or pages, it is necessary to control in consideration of the influence of heat propagation.
<C. Specific example of control with time interval between commands>
A specific example of control with a time interval between commands performed by the control circuit (Controller) shown in FIG. 2 will be described with reference to FIGS.
 図4は、制御回路(Controller)が不揮発性メモリ(NVM)に対して、隣接する2ブロックで連続して消去を行う場合を示す。A、B、Cは時間経過の順を表す。まず、Aで、1つのブロック(block(1))が消去される(Erase)。この時、(block(1))内のセルは、データ消去に最適な温度(High T)まで温度が上昇している。この時、熱が隣接するブロック(block(2))の一部に伝搬する。一定時間経過後(B)、(block(1))内のセル及び(block(1))に隣接する(block(2))の一部は、室温(Low T)とデータ消去に最適な温度(High T)の中間の温度(Mid T)となる。したがって、Bの段階ですぐに(block(2))を消去すると、斜線Xの領域はデータ消去に最適な温度よりも高温まで上昇してしまい、その領域内のデータは適切に消去できない。更に時間が経過し、Cの段階になれば、(block(1))及び(block(2))内のメモリセルの温度は室温まで低下する。この段階で(block(2))を消去すれば、(block(2))内のメモリセルは、データ消去に最適な温度となるため、適切にデータを消去できる(R to erase)。 FIG. 4 shows a case where the control circuit (Controller) continuously erases the non-volatile memory (NVM) in two adjacent blocks. A, B, and C represent the order of time passage. First, in A, one block (block (1)) is erased (Erase). At this time, the temperature of the cells in (block (1)) has risen to the optimum temperature for data erasure (High 消去 T). At this time, heat propagates to a part of the adjacent block (block (2)). After a certain period of time (B), the cells in (block (1)) and the part of (block (2)) adjacent to (block (1)) are at room temperature (Low T) and the optimal temperature for data erasure It becomes the intermediate temperature (Mid T) of (High T). Therefore, if (block (2)) is erased immediately at the stage B, the shaded area X rises to a temperature higher than the optimum temperature for data erasure, and the data in that area cannot be erased properly. Further, when the time elapses and the stage C is reached, the temperature of the memory cells in (block (1)) and (block (2)) decreases to room temperature. If (block (2)) is erased at this stage, the memory cell in (block (2)) has the optimum temperature for data erasure, so that data can be erased appropriately (R to erase).
 図5は、制御回路(Controller)が不揮発性メモリ(NVM)に対して、連続して書き込み動作を行う場合を示す。 FIG. 5 shows a case where the control circuit (Controller) continuously performs a write operation to the nonvolatile memory (NVM).
 図5(a)は、制御回路(Controller)が不揮発性メモリ(NVM)の隣接する2つのページで連続して書き込みを行う場合を示す。A、B、Cは時間経過の順を表す。 Fig. 5 (a) shows a case where the control circuit (Controller) writes data continuously on two adjacent pages of the non-volatile memory (NVM). A, B, and C represent the order of time passage.
 まず、Aで、1つのページ(page(1))にデータが書き込まれる(Write)。(page(1))内のセルは、データ書き込みに最適な温度(High T)まで温度が上昇する。また、熱が隣接するページ(page(2))の一部に伝搬する。一定時間経過後(B)、(page(1))内のセル及び(page(1))に隣接する(page(2))の一部は、室温(Low T)とデータ書き込みに最適な温度(High T)の中間の温度(Mid T)となる。したがって、Bの段階で、すぐに(page(2))にデータを書き込むと、斜線Xの領域はデータ書き込みに最適な温度よりも高温となり、その領域のセルに対して適切にデータを書き込みできない。更に時間が経過し、Cの段階になれば、(page(1))及び(page(2))内のメモリセルの温度は室温まで低下する。この段階で(page(2))にデータを書き込めば、(page(2))内のメモリセルは、データ書き込みに最適な温度となり、適切にデータを書き込むことができる(R to write)。 First, in A, data is written to one page (page (1)) (Write). The cell in (page (1)) rises in temperature to the optimum temperature (High T) for data writing. In addition, heat propagates to a part of the adjacent page (page (2)). After a certain period of time (B), the cells in (page (1)) and the part of (page (2)) adjacent to (page (1)) are the room temperature (Low T) and the optimal temperature for data writing It becomes the intermediate temperature (Mid T) of (High T). Therefore, if data is written immediately (page (2)) at stage B, the shaded area X becomes higher than the optimum temperature for data writing, and data cannot be written appropriately to the cells in that area. . If more time elapses and the stage C is reached, the temperature of the memory cells in (page (1)) and (page (2)) is lowered to room temperature. If data is written in (page (2)) at this stage, the memory cell in (page (2)) has an optimum temperature for data writing, and data can be written appropriately (R to write).
 図5(b)は、制御回路(Controller)が不揮発性メモリ(NVM)のページ内に存在する隣接セルに対して、連続して書き込みを行う場合を示す。A、B、Cは時間経過の順を表す。図中メモリセル(Cell)を円で示している。まず、Aで、ページ(page)内の左上のメモリセル(Cell)に対して、データを書き込む(Write)。この時、左上のメモリセルは、データ書き込みに最適な温度(High T)まで温度が上昇する。また、熱が隣接するメモリセルに伝搬する。一定時間経過後(B)、データを書き込んだメモリセル及び隣接するメモリセルは、室温(Low T)とデータ書き込みに最適な温度(High T)の中間の温度(Mid T)となる。したがって、Bの段階で、すぐに隣接するメモリセル(斜線X)にデータを書き込むと、(X)で示される2つのメモリセルは、データ書き込みに最適な温度よりも高温となり、適切にデータを書き込むことができない。更に時間が経過し、Cの段階になれば、2つのメモリセルの温度は室温まで低下する。この段階で2つのメモリセルにデータを書き込めば、2つのメモリセルの温度はデータ書き込みに最適な温度となり、適切にデータを書き込める(R to write)。 FIG. 5B shows a case where the control circuit (Controller) continuously writes to adjacent cells existing in a page of the nonvolatile memory (NVM). A, B, and C represent the order of time passage. In the figure, the memory cell (Cell) is indicated by a circle. First, in A, data is written to the upper left memory cell (Cell) in the page (Write). At this time, the temperature of the upper left memory cell rises to the optimum temperature (High T) for data writing. Also, heat propagates to adjacent memory cells. After a lapse of a certain time (B), the memory cell into which data is written and the adjacent memory cell have a temperature (Mid T) between room temperature (Low T) and the optimum temperature for data writing (High T). Therefore, if data is immediately written to the adjacent memory cell (hatched X) in stage B, the two memory cells indicated by (X) will be hotter than the optimum temperature for data writing, and the data will be appropriately transferred. Cannot write. If more time elapses and the stage C is reached, the temperatures of the two memory cells are lowered to room temperature. If data is written to two memory cells at this stage, the temperature of the two memory cells becomes the optimum temperature for data writing, and data can be written appropriately (R to write).
 図6は、制御回路(Controller)が不揮発性メモリ(NVM)に対して、データ書き込み動作ののち、データの消去を行う場合を示す。 FIG. 6 shows a case where the control circuit (Controller) erases data after a data write operation to the nonvolatile memory (NVM).
 図6(a)は、制御回路(Controller)が不揮発性メモリ(NVM)の同一ブロック(block)内において、データ書き込み動作を行った後、データの消去を行う場合を示す。この例では、1つのブロック(block)は少なくとも1つのページ(page)によって分割されている。A、B、Cは時間経過の順を表す。まず、Aで、block内の1つのページ(page)にデータが書き込まれる(Write)。ページ(page)内のセルは、データ書き込みに最適な温度(High T)まで温度が上昇する。また、この時、熱がページ(page)に隣接するブロック(block)内の領域に伝搬する。一定時間経過後(B)、ページ(page)内のセル及びページ(page)に隣接する領域は、室温(Low T)とデータ書き込みに最適な温度(High T)の中間の温度(Mid T)となる。この段階ですぐにブロック(block)を消去すると、斜線(X)の領域はデータ消去に最適な温度よりも高温となり、その領域内のデータを適切に消去できない。時間が経過し、Cの段階になれば、ブロック(block)内のメモリセルの温度は室温まで低下する。この段階でブロック(block)のデータを消去すれば、ブロック(block)内のメモリセルは、データ消去に最適な温度となり、適切にデータを消去することができる(R to erase)。 FIG. 6A shows a case where the control circuit (Controller) erases data after performing a data write operation in the same block (block) of the nonvolatile memory (NVM). In this example, one block is divided by at least one page. A, B, and C represent the order of time passage. First, in A, data is written to one page (page) in the block (Write). The cell in the page rises to the optimum temperature (High な T) for data writing. At this time, heat is transmitted to a region in a block adjacent to the page. After a certain period of time (B), the cells in the page and the area adjacent to the page are between the room temperature (Low T) and the optimum temperature for data writing (High T) (Mid T) It becomes. If the block is erased immediately at this stage, the shaded area (X) becomes higher than the optimum temperature for erasing data, and the data in that area cannot be erased properly. If time passes and it becomes the C stage, the temperature of the memory cell in a block will fall to room temperature. If data in the block is erased at this stage, the memory cells in the block reach the optimum temperature for data erase, and data can be erased appropriately (R to erase).
 図6(b)は、制御回路(Controller)が不揮発性メモリ(NVM)の隣接する2ブロックにおいて、データ書き込み動作を行った後、データの消去を行う場合を示す。この例では、1つのブロック(block)は少なくとも1つのページ(page)によって分割されている。A、B、Cは時間経過の順を表す。まず、Aで、1つのブロック(block(1))内の1つのページ(page)にデータが書き込まれる(Write)。ページ(page)内のセルは、データ書き込みに最適な温度(High T)まで温度が上昇する。また、この時、熱がページ(page)を含むブロック(block(1))及びページ(page)に隣接するブロック(block(2))内の一部の領域に伝搬する。一定時間経過後(B)、ページ(page)内のセル及びページ(page)に隣接する領域は、室温(Low T)とデータ書き込みに最適な温度(High T)の中間の温度(Mid T)となる。この段階ですぐに隣接するブロック(block(2))を消去すると、斜線(X)の領域はデータ消去に最適な温度よりも高温となり、その領域内のデータを適切に消去できない。時間が経過し、Cの段階になれば、隣接するブロック(block(2))内のメモリセルの温度は室温まで低下する。この段階で隣接するブロック(block(2))のデータを消去すれば、隣接するブロック(block(2))内のメモリセルは、データ消去に最適な温度となり、適切にデータを消去することができる(R to erase)。 FIG. 6B shows a case where the control circuit (Controller) erases data after performing a data write operation in two adjacent blocks of the nonvolatile memory (NVM). In this example, one block is divided by at least one page. A, B, and C represent the order of time passage. First, in A, data is written to one page (page) in one block (block (1)) (Write). The cell in the page rises to the optimum temperature (High な T) for data writing. At this time, heat is transmitted to a block (block (1)) including the page (page) and a partial area in the block (block (2)) adjacent to the page (page). After a certain period of time (B), the cells in the page and the area adjacent to the page are between the room temperature (Low T) and the optimum temperature for data writing (High T) (Mid T) It becomes. If the immediately adjacent block (block (2)) is erased at this stage, the shaded area (X) becomes higher than the optimum temperature for data erasure, and data in that area cannot be erased appropriately. If time passes and it becomes the C stage, the temperature of the memory cell in an adjacent block (block (2)) will fall to room temperature. If the data in the adjacent block (block (2)) is erased at this stage, the memory cells in the adjacent block (block (2)) will be at the optimum temperature for erasing data, and data can be erased appropriately. Yes (R to erase).
 図7は、制御回路(Controller)が不揮発性メモリ(NVM)に対して、データ消去動作を行った後、データの書き込みを行う場合を示す。 FIG. 7 shows a case where data is written after the control circuit (Controller) performs a data erasing operation on the nonvolatile memory (NVM).
 図7(a)は、制御回路(Controller)が不揮発性メモリ(NVM)の同一ブロック内において、データ消去動作を行った後、データの書き込みを行う場合を示す。A、B、Cは時間経過の順を表す。まず、Aで、ブロック(block)内のデータが消去される(Erase)。この時、ブロック(block)内のセルは、データ消去に最適な温度(High T)まで温度が上昇している。一定時間経過後(B)、ブロック(block)内のセルは、室温(Low T)とデータ消去に最適な温度(High T)の中間の温度(Mid T)まで低下する。この段階ですぐにページ(page)にデータを書き込むと、斜線(X)の領域はデータ書き込みに最適な温度よりも高温まで温度上昇してしまい、その領域のセルに対して適切にデータを書き込めない。時間が経過し、Cの段階になれば、ブロック(block)内のメモリセルは室温まで低下する。この段階でページ(page)にデータを書き込めば、ページ(page)内のメモリセルは、データ書き込みに最適な温度となり、適切にデータを書き込むことができる(R to write)。 FIG. 7A shows a case where the control circuit (Controller) performs data writing after performing the data erasing operation in the same block of the nonvolatile memory (NVM). A, B, and C represent the order of time passage. First, at A, the data in the block is erased (Erase). At this time, the temperature of the cells in the block has risen to the optimum temperature (High T) for data erasure. After a certain period of time (B), the cells in the block are lowered to a temperature (MidMT) between room temperature (Low T) and a temperature optimum for data erasure (High T). If data is written to the page immediately at this stage, the shaded area (X) rises to a temperature higher than the optimum temperature for data writing, and data can be written appropriately to the cells in that area. Absent. If time passes and it becomes the C stage, the memory cell in a block will fall to room temperature. If data is written to the page at this stage, the memory cells in the page have the optimum temperature for data writing, and data can be written appropriately (R to write).
 図7(b)は、制御回路(Controller)が不揮発性メモリ(NVM)の隣接する2つのブロックにおいて、データ消去動作を行った後、データの書き込みを行う場合を示す。A、B、Cは時間経過の順を表す。まず、Aで、1つのブロック(block(1))内のデータが消去される(Erase)。この時、ブロック(block(1))内のセルは、データ消去に最適な温度(High T)まで温度が上昇している。この時、熱が隣接するブロック(block(2))の一部に伝搬する。一定時間経過後(B)、ブロック(block(1))内のセル及びブロック(block(1))に隣接するブロック(block(2))の一部は、室温(Low T)とデータ消去に最適な温度(High T)の中間の温度(Mid T)まで低下する。この段階ですぐにページ(page)にデータを書き込むと、斜線(X)の領域はデータ書き込みに最適な温度よりも高温まで温度上昇してしまい、その領域のセルに対して適切にデータを書き込めない。時間が経過し、Cの段階になれば、メモリセルの温度は室温まで低下する。この段階でページ(page)にデータを書き込めば、ページ(page)内のメモリセルは、データ書き込みに最適な温度となり、適切にデータを書き込むことができる(R to write)。 FIG. 7B shows a case in which the control circuit (Controller) performs data writing after performing a data erasing operation in two adjacent blocks of the nonvolatile memory (NVM). A, B, and C represent the order of time passage. First, in A, data in one block (block (1)) is erased (Erase). At this time, the temperature of the cells in the block (block (1)) has increased to the optimum temperature (High T) for data erasure. At this time, heat propagates to a part of the adjacent block (block (2)). After a certain period of time (B), cells in the block (block (1)) and a part of the block (block (2)) adjacent to the block (block (1)) can be erased at room temperature (Low T) and data The temperature drops to an intermediate temperature (Mid T) between the optimum temperature (High T). If data is written to the page immediately at this stage, the shaded area (X) rises to a temperature higher than the optimum temperature for data writing, and data can be written appropriately to the cells in that area. Absent. If time passes and it becomes the C stage, the temperature of a memory cell will fall to room temperature. If data is written to the page at this stage, the memory cells in the page have the optimum temperature for data writing, and data can be written appropriately (R to write).
 図4~図7を用いて以上で説明した例では、主に相変化メモリの書き込み及び消去時における熱の影響に関して議論したが、相変化メモリ以外の不揮発性メモリであるReRAMにおいても、上記時間間隔を空ける制御は有効である。ReRAMは、電圧を加えることで、物質中の電流の通り道(酸素空孔パスなど)を作成もしくは消滅させる。これによって、メモリ素子の電気抵抗を変化させ、”0”or”1”を書き込む。この書き込みの際、メモリ素子には電流も流れるため、ジュール熱も発生する。 In the example described above with reference to FIGS. 4 to 7, the influence of heat at the time of writing and erasing the phase change memory is mainly discussed. However, the above-mentioned time is also applied to ReRAM which is a nonvolatile memory other than the phase change memory. Control with spacing is effective. ReRAM creates or extinguishes current paths (such as oxygen vacancy paths) in materials by applying voltage. As a result, the electric resistance of the memory element is changed and “0” or “1” is written. At the time of writing, current also flows through the memory element, so Joule heat is also generated.
 例えば、図5(b)のように、まず左上のメモリセルにデータ書き込む場合、熱や電場の影響が物理的に隣接するメモリセルに伝搬する。時間間隔を十分空けない状態で、隣接するメモリセルに対してデータを書き込むと、熱や電場の影響で書き込みに最適な電圧値が変化するため、書き換えた後のメモリセルの抵抗値が所望の値とずれてしまう。これによって、次にこの隣接するメモリセルに書き込まれたデータを読み出す際、読み出しエラーが発生する。また、所望の電圧とは異なる電圧で書き込みを行っているため、所望の電圧で書き込みを行った場合と比べて、データの保持期間も短くなる。したがって、ReRAMにおいても、適切な時間間隔ののち、次のコマンドを実行することにより、高信頼なサーバー、ストレージシステムおよび記憶装置(SSD)を提供できる。このように、本発明は動作時に発熱し、発熱が動作に影響する特性を有するメモリに適用が可能である。
<D.不揮発性メモリ内のブロック及びページの物理配置の設定>
 以下、図8、図9を用いて、不揮発性メモリ内のブロック及びページの物理配置の設定方法の例を説明する。
For example, as shown in FIG. 5B, when data is first written to the upper left memory cell, the influence of heat or an electric field propagates to the physically adjacent memory cell. If data is written to adjacent memory cells without sufficient time interval, the optimum voltage value for writing changes due to the influence of heat and electric field. Therefore, the resistance value of the memory cell after rewriting has a desired value. It will deviate from the value. This causes a read error when the data written in the adjacent memory cell is read next time. In addition, since data is written at a voltage different from the desired voltage, the data retention period is also shorter than when data is written at the desired voltage. Therefore, even in ReRAM, a highly reliable server, storage system, and storage device (SSD) can be provided by executing the following command after an appropriate time interval. As described above, the present invention can be applied to a memory that generates heat during operation and has a characteristic that the heat generation affects the operation.
<D. Setting of physical arrangement of block and page in nonvolatile memory>
Hereinafter, an example of a method for setting the physical arrangement of blocks and pages in the nonvolatile memory will be described with reference to FIGS.
 図8(a)は、不揮発性メモリ(NVM)内のブロック及びページの物理配置を表す管理情報(List)の例を示す。3次元構造を持つ不揮発性メモリチップ(NVM chip)では、ブロック(block)及びページ(page(図8には図示せず))が3次元方向に並ぶ。このような場合、管理情報には、1つのブロック(block)の中でx、y、z方向にそれぞれ幾つのページ(page)が並ぶかという情報が記録される(# of pages (x),(y),(z))。同様に、管理情報には、1つの不揮発性メモリチップ内でx、y、z方向にそれぞれ幾つのブロック(block)が並ぶかという情報が記録される。 FIG. 8 (a) shows an example of management information (List) representing the physical arrangement of blocks and pages in the non-volatile memory (NVM). In a nonvolatile memory chip (NVM chip) having a three-dimensional structure, a block and a page (page (not shown in FIG. 8)) are arranged in a three-dimensional direction. In such a case, information on how many pages are arranged in the x, y, and z directions in one block (block) is recorded in the management information (# of pages (x), (y), (z)). Similarly, information on how many blocks are arranged in the x, y, and z directions in one nonvolatile memory chip is recorded in the management information.
 図8(b)に示すように、不揮発性メモリ(NVM chip)のx方向に32ブロック、y方向に32ブロック、z方向に16ブロック並ぶ場合、管理情報(List)の“# of blocks (x),(y),(z)”には、それぞれ、32、32、16が記録される。
As shown in FIG. 8B, when 32 blocks are arranged in the x direction, 32 blocks in the y direction, and 16 blocks in the z direction of the nonvolatile memory (NVM chip), “# of blocks (x ), (y), (z) "are recorded as 32, 32, and 16, respectively.
 図9は、不揮発性メモリ内のブロック(block)及びページ(page)の物理配置を制御回路(Controller)に設定する例を示す。制御回路(Controller)へ電源が投入された直後、制御回路(Controller)内部の時間間隔設定ブロック(INT_CNFG)は、不揮発性メモリ(NVM)チップ内に記録された、ブロック及びページの物理配置を表す管理情報をチップ内から読み出し(Read List.)、制御回路(Controller)内のデータレジスタ(RG)に記録する。 FIG. 9 shows an example in which the physical arrangement of blocks and pages in the nonvolatile memory is set in the control circuit (Controller). Immediately after power is supplied to the control circuit (Controller), the time interval setting block (INT_CNFG) inside the control circuit (Controller) represents the physical arrangement of blocks and pages recorded in the non-volatile memory (NVM) chip. Management information is read from the chip (Read List) and recorded in the data register (RG) in the control circuit (Controller).
 このように、不揮発性メモリ内のブロック及びページの物理配置の情報を不揮発性メモリに記録することにより、不揮発性メモリの種類や世代が変わり、物理配置が変更されても、制御回路(Controller)のロジックを変更することなく、後述するF.G.H.の制御が実行できる。これにより、低コストで高信頼のサーバー、ストレージシステムおよび記憶装置(SSD)を提供できる。
<E.コマンド間の時間間隔の最適値の設定及び変更> 
 以下、図10、図11を用いて、コマンド間の時間間隔の最適値の設定及び変更方法の例を説明する。
As described above, by recording the physical arrangement information of blocks and pages in the nonvolatile memory in the nonvolatile memory, even if the type and generation of the nonvolatile memory changes and the physical arrangement is changed, the control circuit (Controller) Without changing the logic of F. described later. G. H. Can be controlled. Thereby, a low-cost and highly reliable server, storage system, and storage device (SSD) can be provided.
<E. Setting and changing the optimal time interval between commands>
Hereinafter, an example of a method for setting and changing the optimum value of the time interval between commands will be described with reference to FIGS.
 図10は、コマンド間の時間間隔の最適値を初期設定する方法の例を示す。制御回路(Controller)へ電源が投入された直後、制御回路(Controller)内部の時間間隔設定ブロック(INT_CNFG)は、不揮発性メモリ(NVM)チップ内に記録された、コマンド間の時間間隔の最適値を読み出し(Read Int.)、その値を制御回路(Controller)内のデータレジスタ(RG)に記録する。制御回路(Controller)は、データレジスタ(RG)に記録されたこの最適値を用いて、F.G.H.で述べる制御を実行する。この最適値には、消去コマンドと消去コマンドの時間間隔、消去コマンドと書き込みコマンドの時間間隔、書き込みコマンドと消去コマンドの時間間隔、書き込みコマンドと書き込みコマンドの時間間隔などが含まれる。 FIG. 10 shows an example of a method for initially setting the optimum value of the time interval between commands. Immediately after power is supplied to the control circuit (Controller), the time interval setting block (INT_CNFG) inside the control circuit (Controller) is the optimum value of the time interval between commands recorded in the non-volatile memory (NVM) chip. Is read (Read Int.) And the value is recorded in the data register (RG) in the control circuit (Controller). The control circuit (Controller) uses this optimum value recorded in the data register (RG) to perform F.R. G. H. The control described in is executed. This optimum value includes the time interval between the erase command and the erase command, the time interval between the erase command and the write command, the time interval between the write command and the erase command, the time interval between the write command and the write command, and the like.
 コマンド間の時間間隔の最適値を不揮発性メモリ(NVM)チップ内へ記録することにより、不測の電源遮断が生じてもコマンド間の時間間隔の最適値は消えることがなく、電源の再投入時に、コマンド間の時間間隔の最適値を不揮発性メモリ(NVM)チップから読み出し、データレジスタ(RG)に記録できるため、高信頼のサーバー、ストレージシステムおよび記憶装置(SSD)を実現できる。 By recording the optimal value of the time interval between commands in the non-volatile memory (NVM) chip, the optimal value of the time interval between commands does not disappear even if an unexpected power shutdown occurs. Since the optimum value of the time interval between commands can be read from the nonvolatile memory (NVM) chip and recorded in the data register (RG), a highly reliable server, storage system and storage device (SSD) can be realized.
 図11は、コマンド間の時間間隔の最適値を変更する方法の例を示す。コマンド間の時間間隔の最適値は、不揮発性メモリの使用状況や状態によっても変化する。したがって、図10を用いて説明した初期設定の後、それらの状況や状態に応じて、時間間隔の最適値を変化させる必要がある。制御回路(Controller)内部の時間間隔更新ブロック(INT_UPDT)は、不揮発性メモリ(NVM)からデータを読み出す際、エラー訂正前の読み出しビットエラー率をデータと共に受け取る(A-a. Read ERR)。その結果を基に、コマンド間の時間間隔の最適値を更新する(B. update)。例えば、エラー率が高い場合、該当ページ及びブロックの劣化が進んでいる可能性が考えられるため、コマンド間の時間間隔の最適値を長くする。また、時間間隔更新ブロック(INT_UPDT)は、メモリ(DRAM)に記録されている消去回数や読み出し回数などの管理情報を読み出す(A-b. Read Table)。その結果を基に、コマンド間の時間間隔の最適値を更新する(B. update)。例えば、該当ブロックの消去回数や読み出し回数が多い場合、該当ブロックの劣化が進んでいる可能性が考えられるため、コマンド間の時間間隔の最適値を長くする。 FIG. 11 shows an example of a method for changing the optimum value of the time interval between commands. The optimum value of the time interval between commands also changes depending on the usage status and state of the nonvolatile memory. Therefore, after the initial setting described with reference to FIG. 10, it is necessary to change the optimum value of the time interval according to the situation and state. When reading data from the nonvolatile memory (NVM), the time interval update block (INT_UPDT) inside the controller (Controller) receives the read bit error rate before error correction together with the data (A-a.aRead ERR). Based on the result, the optimum value of the time interval between commands is updated (B. update). For example, when the error rate is high, there is a possibility that the corresponding page and block are being deteriorated. Therefore, the optimum value of the time interval between commands is lengthened. Further, the time interval update block (INT_UPDT) reads management information such as the number of erases and the number of reads recorded in the memory (DRAM) (A-b. Read Table). Based on the result, the optimum value of the time interval between commands is updated (B. update). For example, when the number of times of erasing and reading of the corresponding block is large, there is a possibility that the corresponding block has been deteriorated. Therefore, the optimum value of the time interval between commands is lengthened.
 このように、制御回路(Controller)が不揮発性メモリ(NVM)の読み出しビットエラー率や、消去回数や読み出し回数などの利用状況に合わせてコマンド間の時間間隔の最適値を更新することにより、常に高信頼のサーバー、ストレージシステムおよび記憶装置(SSD)を提供できる。 In this way, the control circuit (Controller) constantly updates the optimal value of the time interval between commands according to the usage status such as the read bit error rate of the nonvolatile memory (NVM), the number of erases and the number of reads. Highly reliable server, storage system and storage device (SSD) can be provided.
 さらに、制御回路(Controller)は、更新されたコマンド間の時間間隔の最適値を不揮発性メモリ(NVM)チップへ格納する(C. UPDT Int)。これにより、最新のコマンド間の時間間隔の最適値を保持できるため、不測の電源遮断が生じても、最新のコマンド間の時間間隔の最適値は消えることがなく、電源の再投入時に、最新のコマンド間の時間間隔の最適値を不揮発性メモリ(NVM)チップから読み出し、データレジスタ(RG)に記録できるため、常に高信頼のサーバー、ストレージシステムおよび記憶装置(SSD)を実現できる。以上は、コマンド間の時間間隔の最適値の初期設定方法及び変更方法の一例であり、例えば最適値の初期値はチップから読まずにコントローラ内に初めから保持しておくことや、最適値をコントローラ内のデータレジスタ(RG)ではなくメモリ(DRAM)内に保持するなど、他の実現方法も考えられる。
<F.コマンド間の時間間隔を空ける制御> 
 以下、図12~15を用いて、コマンド間の時間間隔を空ける制御の例を説明する。
Further, the control circuit (Controller) stores the updated optimal value of the time interval between commands in the nonvolatile memory (NVM) chip (C. UPDT Int). As a result, the optimum value of the time interval between the latest commands can be maintained, so even if an unexpected power interruption occurs, the optimum value of the time interval between the latest commands will not be lost. Since the optimum value of the time interval between the commands can be read from the nonvolatile memory (NVM) chip and recorded in the data register (RG), a highly reliable server, storage system and storage device (SSD) can always be realized. The above is an example of the initial setting method and the changing method of the optimal value of the time interval between commands.For example, the initial value of the optimal value is not read from the chip and is stored in the controller from the beginning, or the optimal value is set. Other implementation methods are conceivable, such as holding in a memory (DRAM) instead of a data register (RG) in the controller.
<F. Control to make time interval between commands>
In the following, an example of control for providing a time interval between commands will be described with reference to FIGS.
 図12は本動作の概念図を示す。 FIG. 12 shows a conceptual diagram of this operation.
 図13は本動作フローを示す。 FIG. 13 shows this operation flow.
 まず、制御回路(Controller)は、不揮発性メモリ(NVM)に対してコマンド(CMD 0)を発行する(図12 A.CMD 0及び図13 Step 1)。次に、制御回路(Controller)は、不揮発性メモリ(NVM)内のブロック及びページの物理配置を表す管理情報を参照し、コマンド(CMD 0)の実行によって発生する熱の影響が及ぶブロックやページを決定する(図13 Step 2のRead List)。この結果を基に、制御回路(Controller)は、時間間隔を管理するためのテーブルを更新する(図12 B. Update Table 及び図13 Step 2のUpdate TBL)。 First, the control circuit (Controller) issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 12 A.CMD 0 and Fig.13 Step 1). Next, the control circuit (Controller) refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks or pages affected by the heat generated by the execution of the command (CMD 0). (Read (List of Step 2 in FIG. 13). Based on the result, the control circuit (Controller) updates the table for managing the time interval (FIG. 12 B. Update Table and FIG. 13 Step 2 Update TBL).
 図14及び図15に時間間隔の管理テーブルの一例を示す。 14 and 15 show an example of a time interval management table.
 図14は、物理ブロックアドレス(Physical Block Address)をエントリとするテーブルであり、初めのコマンド(CMD 0)と次のコマンド(CMD 1)の時間間隔のうち、次のコマンド(CMD 1)が消去コマンドである際に用いる。 FIG. 14 is a table in which the physical block address (Physical Block Address) is an entry, and the next command (CMD 1) is erased in the time interval between the first command (CMD 0) and the next command (CMD 1). Used for commands.
 図14(a)は、時間間隔のみを管理するテーブル(BLK TBL1)の一例である。 FIG. 14 (a) is an example of a table (BLK TBL1) that manages only time intervals.
 図14(b)は、他のブロック管理情報(消去回数(P/E cycle)及び読み出し回数(Read cycle))と共に、時間間隔を管理するテーブル(BLK TBL2)の一例である。 FIG. 14 (b) is an example of a table (BLKBLTBL2) for managing time intervals together with other block management information (erase count (P / E cycle) and read count (Read cycle)).
 例えば、CMD 0で、物理ブロックアドレス18057に対応するブロック内のデータを消去したとする。この時、制御回路(Controller)は、図14に示す時間間隔管理テーブル(BLK TBL1)(BLK TBL2)の物理ブロックアドレス18057に対応する行と、物理的に隣接する2つのブロック(物理ブロックアドレス18056及び18058)に対応する行のCMD列に、CMD 0で発行したコマンドが消去であることを示す”Erase”を書き込み、同行のTime列に、CMD 0の消去コマンドが実行された時間(3.14.22.33.52.358.782)を書き込む。物理的に隣接するブロックは、不揮発性メモリ内の物理配置を表す管理情報を基に決定される。この管理情報は、図示しないが、例えば、物理ブロックのアドレス18057に対して、隣接する物理ブロックのアドレス18056及び18058が関連付けられたテーブルとして構成することができる。あるいは、テーブル構成のデータでなく、他の形式のデータでもよい。 For example, assume that the data in the block corresponding to the physical block address 18057 is erased with CMD 0. At this time, the control circuit (Controller) has a row corresponding to the physical block address 18057 in the time interval management table (BLK TBL1) (BLK TBL2) shown in FIG. 14 and two physically adjacent blocks (physical block address 18056). And "Erase" indicating that the command issued by CMD 0 is erased is written in the CMD column of the row corresponding to 158), and the time when the CMD 時間 0 erase command is executed in the Time column of the same row (3.14. 22.33.52.358.782). Blocks that are physically adjacent to each other are determined based on management information representing a physical arrangement in the nonvolatile memory. Although not shown, this management information can be configured as a table in which the physical block addresses 18057 are associated with the physical block addresses 18056 and 18058, for example. Alternatively, the data may be in other formats instead of the table configuration data.
 別の例として、CMD 0で、物理ブロックアドレス24332に対応するブロック内のページにデータを書き込んだとする。この時、制御回路(Controller)は、図14に示す時間間隔管理テーブル(BLK TBL1)(BLK TBL2)の物理ブロックアドレス24332に対応する行と、物理的に隣接するブロック(物理ブロックアドレス24333)に対応する行のCMD列に、CMD 0で発行したコマンドが書き込みであることを示す”Write”を書き込み、同行のTime列に、CMD 0の書き込みコマンドが実行された時間(3.14.22.33.52.147.095)を書き込む。 As another example, assume that data is written to a page in a block corresponding to the physical block address 24332 with CMD 0. At this time, the control circuit (Controller) sets a block (physical block address 24333) physically adjacent to the row corresponding to the physical block address 24332 of the time interval management table (BLK TBL1) (BLK TBL2) shown in FIG. “Write” is written in the CMD column of the corresponding row to indicate that the command issued by CMD 0 is a write, and the time when the write command of CMD 0 is executed in the Time column of the same row (3.14.22.33.52.147. 095) is written.
 図15は、物理ページアドレス(Physical Page Address)をエントリとするテーブルであり、初めのコマンド(CMD 0)と次のコマンド(CMD 1)の時間間隔のうち、次のコマンド(CMD 1)が書き込みコマンドである際に用いる。 FIG. 15 is a table in which the physical page address (Physical Page Address) is an entry, and the next command (CMD 1) is written in the time interval between the first command (CMD 0) and the next command (CMD 1). Used for commands.
 図15(a)は、時間間隔のみを管理するテーブル(PG TBL1)の一例である。 FIG. 15 (a) is an example of a table (PG TBL1) that manages only time intervals.
 図15(b)は、物理アドレス-論理アドレス変換と共に、時間間隔を管理するテーブル(PG TBL2)の一例である。 Fig. 15 (b) is an example of a table (PG TBL2) for managing time intervals together with physical address-logical address conversion.
 例えば、CMD 0で、物理ページアドレス432577に対応するページにデータを書き込んだとする。この時、制御回路(Controller)は、図15に示す時間間隔管理テーブル(PG TBL1)(PG TBL2)の物理ページアドレス432577に対応する行と、物理的に隣接する2つのページ(物理ページアドレス432576及び432578)に対応する行のCMD列に、CMD 0で発行したコマンドが書き込みであることを示す”Write”を書き込み、同行のTime列に、CMD 0の書き込みコマンドが実行された時間(6.8.08.50.32.334.905)を書き込む。物理的に隣接するページは、不揮発性メモリ内の物理配置を表す管理情報を基に決定される。別の例として、CMD 0で、物理ページアドレス689300に対応するページを含むブロックを消去したとする。この時、制御回路(Controller)は、図15に示す時間間隔管理テーブル(PG TBL1)(PG TBL2)の物理ページアドレス689300に対応する行と、CMD 0で消去したブロックに含まれる別のページ(物理ページアドレス689301)に対応する行のCMD列に、CMD 0で発行したコマンドが消去であることを示す”Erase”を書き込み、同行のTime列に、CMD 0の消去コマンドが実行された時間(6.8.08.50.13.028.347)を書き込む。 Suppose, for example, that data is written to the page corresponding to the physical page address 432577 with CMD 0. At this time, the control circuit (Controller), the row corresponding to the physical page address 4332577 in the time interval management table (PG TBL1) (PG TBL2) shown in FIG. 15 and two physically adjacent pages (physical page address 432576). And 432578) are written in the CMD column of the row corresponding to CMD 0, and “Write” indicating that the command issued by CMD 0 is write is written, and the time when the write command of CMD 0 is executed in the Time column of the same row (6.8. 08.50.32.334.905). The physically adjacent pages are determined based on management information representing the physical arrangement in the nonvolatile memory. As another example, assume that a block including a page corresponding to the physical page address 689300 is erased with CMD 0. At this time, the control circuit (Controller) has a row corresponding to the physical page address 689300 in the time interval management table (PG TBL1) (PG TBL2) shown in FIG. 15 and another page ( “Erase” is written in the CMD column of the row corresponding to the physical page address 689301) to indicate that the command issued by CMD 0 is erase, and the time when the CMD 0 erase command was executed in the Time column of the same row ( 6.8.08.50.13.028.347) is written.
 図13に戻り説明を続ける。図14または図15に示した時間間隔管理テーブルの更新後、制御回路(Controller)は、CMD 0に続く次のコマンドがあるか否か確認する(図13 Step 3)。次のコマンドが無い場合、この確認ルーチンに戻る(図13 Step 3のN)。 Referring back to FIG. After updating the time interval management table shown in FIG. 14 or FIG. 15, the control circuit (Controller) confirms whether there is a next command following CMD 0 (FIG. 13 Step 3). If there is no next command, the process returns to this confirmation routine (N in Step 13 in FIG. 13).
 次のコマンドが存在する場合(図13 Step 3のY)、制御回路(Controller)は、時間間隔管理テーブルのうち、次のコマンド(CMD 1)でデータを消去する(もしくは書き込む)物理ブロック(もしくは物理ページ)に対応する行を参照する(図13 Step 4)。 When the next command exists (FIG. 13 Step Y 3 Y), the control circuit (Controller) erases (or writes) the physical block (or data) with the next command (CMD 1) in the time interval management table (or A line corresponding to (physical page) is referenced (FIG. 13 Step 4).
 制御回路(Controller)は、現在時刻と、テーブルに記載された前回コマンド(CMD 0)が実行された時間を比較し、それらの時間間隔が、データレジスタ(RG)に記録されたコマンド間の時間間隔の最適値より長いか否か判定する(図13 Step 5)。 The control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time between commands recorded in the data register (RG). It is determined whether or not the interval is longer than the optimum value (FIG. 13, Step 5).
 その結果、時間間隔が最適値より長ければ (図13 Step 5のY)、そのまま次のコマンド(CMD 1)を実行する(図13 Step 7)。時間間隔が最適値より短ければ(図13 Step 5のN)、制御回路(Controller)内部の時間待機ブロック(T_WAIT)は、時間間隔が最適値より長くなるまで、待機する(図13 Step 6)。待機後、時間待機ブロック(T_WAIT)は、次のコマンド(CMD 1)を実行する(図12 C. CMD 1及び図13 Step 7)。
<G.次以降のコマンドを先に実行する制御> 
 以下、図16、図17を用いて、次以降のコマンドを先に実行する制御の例を説明する。
As a result, if the time interval is longer than the optimum value (Y in Step 5 in FIG. 13), the next command (CMD 1) is executed as it is (Step 7 in FIG. 13). If the time interval is shorter than the optimum value (N in Step 5 in FIG. 13), the time waiting block (T_WAIT) in the control circuit (Controller) waits until the time interval becomes longer than the optimum value (Step 6 in FIG. 13). . After waiting, the time waiting block (T_WAIT) executes the next command (CMD 1) (FIG. 12 C. CMD 1 and FIG. 13 Step 7).
<G. Control to execute the following command first>
Hereinafter, an example of control for executing the next and subsequent commands first will be described with reference to FIGS. 16 and 17.
 図16は本動作の概念図を示す。 FIG. 16 shows a conceptual diagram of this operation.
 図17は本動作フローを示す。 FIG. 17 shows this operation flow.
 まず、制御回路(Controller)は、不揮発性メモリ(NVM)に対してコマンド(CMD 0)を発行する(図16 A.CMD 0及び図17 Step 1)。次に、制御回路(Controller)は、不揮発性メモリ(NVM)内のブロック及びページの物理配置を表す管理情報を参照し、コマンド(CMD 0)の実行によって発生する熱の影響が及ぶブロックやページを決定する(図17 Step 2のRead List)。 First, the control circuit (Controller) issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 16 A.CMD 0 and Fig.17 Step 1). Next, the control circuit (Controller) refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks and pages affected by the heat generated by the execution of the command (CMD (0). (Read (List of Step 2 in FIG. 17).
 この結果を基に、制御回路(Controller)は、時間間隔を管理するためのテーブルを更新する(図16 B. Update Table 及び図17 Step 2のUpdate TBL)。時間間隔管理テーブルの更新方法は、F.で説明した方法と同じである。時間間隔管理テーブルの更新後、制御回路(Controller)は、CMD 0に続く次のコマンドがあるか否か確認する(図17 Step 3)。 Based on this result, the control circuit (Controller) updates the table for managing the time interval (Fig. 16B. Update Table and Fig.17 Step 2 Update TBL). The method for updating the time interval management table is the same as the method described in F. After updating the time interval management table, the control circuit (Controller) checks whether there is a next command following CMD 0 (FIG. 17 Step 3).
 次のコマンドが無い場合、この確認ルーチンに戻る(図17 Step 3のN)。次のコマンドが存在する場合(図17 Step 3のY)、制御回路(Controller)は、時間間隔管理テーブルのうち、次のコマンド(CMD 1)でデータを消去(もしくは書き込む)物理ブロック(もしくは物理ページ)に対応する行を参照する(図17 Step 4)。 If there is no next command, return to this confirmation routine (N in Step 3 in Fig. 17). When the next command exists (FIG. 17 Step 3 Y), the control circuit (Controller) erases (or writes) the physical block (or physical) with the next command (CMD 1) in the time interval management table. Refer to the line corresponding to (Page) (Fig. 17 Step 4).
 制御回路(Controller)は、現在時刻と、テーブルに記載された前回コマンド(CMD 0)が実行された時間を比較し、それらの時間間隔が、データレジスタRGに記録されたコマンド間の時間間隔の最適値より長いか否か判定する(図17 Step 5)。 The control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time interval between the commands recorded in the data register RG. It is determined whether or not it is longer than the optimum value (FIG. 17 Step 5).
 その結果、時間間隔が最適値より長ければ (図17 Step 5のY)、そのまま次のコマンド(CMD 1)を実行する(図17 Step 7のCMD 1)。時間間隔が最適値より短い場合(図17 Step 5のN)、Controller内部の次以降コマンド発行ブロック(NN_CMD)は、CMD 1の次以降のコマンド(CMD 2以降)があれば(図17 Step 6)、時間間隔管理テーブルのうち、CMD 2でデータを消去する(もしくは書き込む)物理ブロック(もしくは物理ページ)に対応する行を参照する(図17 Step 4)。 As a result, if the time interval is longer than the optimum value (FIG. 17: Step 5 Y), the next command (CMD-1) is executed as it is (Step 17: CMD 1 1). If the time interval is shorter than the optimum value (N in FIG. 17 図 Step 5), the next and subsequent command issue block (NN_CMD) in the Controller has a command after CMD 1 (CMD 以降 2 and later) (Figure 17 Step 6 ) In the time interval management table, the row corresponding to the physical block (or physical page) from which data is erased (or written) by CMD 2 is referred (Step 4 in FIG. 17).
 次に、次以降コマンド発行ブロック(NN_CMD)は、現在時刻と、テーブルに記載された前回コマンド(CMD 0)が実行された時間を比較し、それらの時間間隔が、データレジスタRGに記録されたコマンド間の時間間隔の最適値より長いか否か判定する(図17 Step 5)。以降は、時間間隔が最適値より長い場合は、次のコマンドを実行し(図16 C. CMD 2及び図17 Step 7のCMD 2)、時間間隔が最適値より短い場合(図17 Step 5のN)は、Step 6を実行する。 Next, the next and subsequent command issue block (NN_CMD) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and those time intervals were recorded in the data register RG. It is determined whether or not the time interval between commands is longer than the optimum value (FIG. 17 Step 5). Thereafter, when the time interval is longer than the optimum value, the next command is executed (FIG. 16 図 C. CMD 2 and FIG. 17 図 Step 7 CMD 2), and when the time interval is shorter than the optimum value (FIG. 17 Step 5 N) executes Step 6.
 このように、制御回路(Controller)が時間間隔を管理することによって、F.のように時間間隔を空けず、別コマンドを優先的に処理し、記憶装置に対してデータの高速な読み書きが可能となる。また、次のHの例のように、コマンド発行先のアドレスの変更処理を行う必要がない。
<H.別の物理ページにコマンドを発行する制御> 
 以下、図18、図19を用いて、別の物理ページにコマンドを発行する制御の例を説明する。
In this way, the control circuit (Controller) manages the time interval, so that F.I. As described above, it is possible to process other commands preferentially without leaving a time interval and to read / write data to / from the storage device at high speed. Further, unlike the following example H, there is no need to change the command issue destination address.
<H. Control to issue command to another physical page>
Hereinafter, an example of control for issuing a command to another physical page will be described with reference to FIGS.
 図18は本動作の概念図を示す。 FIG. 18 shows a conceptual diagram of this operation.
 図19は本動作フローを示す。 FIG. 19 shows this operation flow.
 まず、制御回路(Controller)は、不揮発性メモリ(NVM)に対してコマンド(CMD 0)を発行する(図18 A.CMD 0及び図19 Step 1)。 First, the control circuit (Controller) issues a command (CMD 0) to the non-volatile memory (NVM) (Fig. 18 A.CMD 0 and Fig.19 Step 1).
 次に、制御回路(Controller)は、不揮発性メモリ(NVM)内のブロック及びページの物理配置を表す管理情報を参照し、コマンド(CMD 0)の実行によって発生する熱の影響が及ぶブロックやページを決定する(図19 Step 2のRead List)。 Next, the control circuit (Controller) refers to management information representing the physical arrangement of blocks and pages in the non-volatile memory (NVM), and blocks and pages affected by the heat generated by the execution of the command (CMD (0). (Read List of Step 2 in FIG. 19).
 この結果を基に、制御回路(Controller)は、時間間隔を管理するためのテーブルを更新する(図18 B. Update Table 及び図19 Step 2のUpdate TBL)。時間間隔管理テーブルの更新方法は、F.で説明した方法と同じである。 Based on this result, the control circuit (Controller) updates the table for managing the time interval (Fig. 18B. Update Table and Fig. 19 Step 2 Update TBL). The method for updating the time interval management table is the same as the method described in F.
 時間間隔管理テーブルの更新後、制御回路(Controller)は、CMD 0に続く次のコマンドがあるか否か確認する(図19 Step 3)。次のコマンドが無い場合、この確認ルーチンに戻る(図19 Step 3のN)。次のコマンドが存在する場合(図19 Step 3のY)、制御回路(Controller)は、時間間隔管理テーブルのうち、次のコマンド(CMD 1)でデータを消去する(もしくは書き込む)物理ブロック(もしくは物理ページ)に対応する行を参照する(図19 Step 4)。 After the time interval management table is updated, the control circuit (Controller) checks whether there is a next command following CMD0 (FIG. 19 Step 3). If there is no next command, the process returns to this confirmation routine (N in Step 19 in FIG. 19). When the next command exists (FIG. 19 Step 3 Y), the control circuit (Controller) deletes (or writes) the physical block (or data) with the next command (CMD 1) in the time interval management table (or A row corresponding to (physical page) is referenced (FIG. 19, Step 4).
 制御回路(Controller)は、現在時刻と、テーブルに記載された前回コマンド(CMD 0)が実行された時間を比較し、それらの時間間隔が、データレジスタRGに記録されたコマンド間の時間間隔の最適値より長いか否か判定する(図19 Step 5)。 The control circuit (Controller) compares the current time with the time when the previous command (CMD 0) described in the table was executed, and the time interval between them is the time interval between the commands recorded in the data register RG. It is determined whether or not it is longer than the optimum value (FIG. 19, Step 5).
 その結果、時間間隔が最適値より長ければ (図19 Step 5のY)、そのまま次のコマンド(CMD 1)を実行する(図19 Step 7のCMD 1)。 As a result, if the time interval is longer than the optimal value (Y in Step 19 in FIG. 19), the next command (CMD-1) is executed as it is (CMD-1 in Step 19 in FIG. 19).
 時間間隔が最適値より短い場合(図19 Step 5のN)で、制御回路(Controller)内部の別物理領域コマンド発行ブロック(OTR_CMD)は、次のコマンド(CMD 1)でデータを消去する(もしくは書き込む)物理ブロック(もしくは物理ページ)を、可能ならば別の物理ブロック(もしくは物理ページ)に変更する(図19 Step 6)。 When the time interval is shorter than the optimal value (N in Step 19 Step 5), the separate physical area command issue block (OTR_CMD) in the control circuit (Controller) erases data with the next command (CMD 1) (or The physical block (or physical page) to be written is changed to another physical block (or physical page) if possible (FIG. 19, Step 6).
 該変更ののち、次のコマンドを発行する(図19 Step 7のCMD 1)。例えば、前回のコマンド(CMD 0)と次のコマンド(CMD 1)が共に書き込みであった場合、図18に示すように、不揮発性メモリチップ(NVM(1,1))の中で、はじめの書き込みコマンド(CMD 0)によって書き込んだ物理ページ(P0)とは物理的に隣接していない(熱の影響が無い)別の物理ページ(Pm)に次コマンド(CMD 1)のデータを書き込んでもよいし(図18 C-1. CMD 1)、別の不揮発性メモリチップ(NVM(i,1))内の物理ページ(Pq)に次コマンド(CMD 1)のデータを書き込んでもよい(図18 C-2. CMD 1)。 の After the change, issue the following command (CMD 図 1 in Step 7 in Fig. 19). For example, if the previous command (CMD 0) and the next command (CMD 1) are both written, as shown in FIG. 18, in the nonvolatile memory chip (NVM (1,1)), the first command The data of the next command (CMD 1) may be written to another physical page (Pm) that is not physically adjacent to the physical page (P0) written by the write command (CMD 0) (no influence of heat) However, the data of the next command (CMD 1) may be written to the physical page (Pq) in another nonvolatile memory chip (NVM (i, 1)) (FIG. 18 C-1. CMD 1). -2. CMD 1).
 このように、コントローラが時間間隔を管理することによって、F.のように時間間隔を空けず、コマンドに対応する不揮発性メモリの物理領域を変更することで、記憶装置に対してデータの高速な読み書きが可能となる。また、先のG例のようにコマンド発行の順番が変更されることがない。
<I.サーバーへの適用例>
 次に、図20、図21を用いて、本発明の第二の実施例であるサーバー(SVR)を説明する。
In this way, the controller manages the time interval so that F.I. As described above, by changing the physical area of the nonvolatile memory corresponding to the command without leaving a time interval, it is possible to read / write data from / to the storage device at high speed. In addition, the order of command issuance is not changed as in the previous G example.
<I. Application example to server>
Next, a server (SVR) according to a second embodiment of the present invention will be described with reference to FIGS.
 図20は、各上位装置(Host)にメモリモジュール(MM)が接続されたサーバー(SVR)の例を示す。情報処理回路(CPU)とメモリ(DRAM)から構成される上位装置(Host)は、情報処理を行う。上位装置(Host)には、主記憶拡張やキャッシュ用途として、本願の記憶装置(メモリモジュール(MM))が繋がる。メモリモジュール(MM)は、不揮発性メモリ(NVM), メモリ(DRAM)及びそれらを制御する制御回路(Controller)から構成される。上位装置(Host)とメモリモジュール(MM)のインターフェースとしては、PCIeなどが挙げられる。複数の上位装置(Host)はインターコネクトネットワーク(Interconnect)等により互いに接続され、情報を通信することができる。 FIG. 20 shows an example of a server (SVR) in which a memory module (MM) is connected to each host device (Host). A host device (Host) composed of an information processing circuit (CPU) and a memory (DRAM) performs information processing. The storage device (memory module (MM)) of the present application is connected to the host device (Host) for main memory expansion or cache use. The memory module (MM) includes a non-volatile memory (NVM), a flash memory (DRAM), and a control circuit (Controller) that controls them. Examples of the interface between the host device (Host) and the memory module (MM) include PCIe. A plurality of host devices (Hosts) are connected to each other via an interconnect network (Interconnect) or the like, and can communicate information.
 第一の実施例で述べた記憶装置(SSD)と同様に、メモリモジュール(MM)内の制御回路(Controller)によって、F.G.H.の制御が実行される。 Like the storage device (SSD) described in the first embodiment, the control circuit (Controller) in the memory module (MM) causes F. G. H. The control is executed.
 図21(a)は、各上位装置(Host)内の情報処理回路(CPU)に、不揮発性メモリDIMM(Dual Inline Memory Module )(NVM-DIMM)が直接接続された例を示す。情報処理回路(CPU)内には、不揮発性メモリDIMM制御回路(DIMM CTL)が実装され、情報処理回路(CPU)に接続された不揮発性メモリDIMM(NVM-DIMM)に対して、E.F.G.の制御を行う。情報処理回路(CPU)内には、他にもメモリ(DRAM)が接続される。また、情報処理回路(CPU)とメモリ(DRAM)と不揮発性メモリDIMM(NVM-DIMM)から構成される上位装置(Host)は、インターコネクトネットワーク(Interconnect)等により互いに接続され、情報を通信することができる。 FIG. 21A shows an example in which a non-volatile memory DIMM (Dual Inline Memory Module) (NVM-DIMM) is directly connected to an information processing circuit (CPU) in each host device (Host). In the information processing circuit (CPU), a non-volatile memory DIMM control circuit (DIMMCPUCTL) is mounted, and the E.I.C. for the non-volatile memory DIMM (NVM-DIMM) connected to the information processing circuit (CPU). F. G. Control. In addition, a memory (DRAM) is connected in the information processing circuit (CPU). In addition, the host device (Host) composed of an information processing circuit (CPU), memory (DRAM), and nonvolatile memory DIMM (NVM-DIMM) is connected to each other via an interconnect network (Interconnect) and the like to communicate information. Can do.
 図21(b)は、不揮発性メモリDIMM(NVM-DIMM)の第一の実施例を示す。不揮発性メモリDIMM(NVM-DIMM)は、複数の不揮発性メモリ(NVM)のチップ(NVM chip)から構成され、不揮発性メモリDIMM制御回路(DIMM CTL)からの命令に応じて、情報処理回路(CPU)との間で、データを通信する。 FIG. 21B shows a first embodiment of a non-volatile memory DIMM (NVM-DIMM). The non-volatile memory DIMM (NVM-DIMM) is composed of a plurality of non-volatile memory (NVM) chips (NVM chip), and an information processing circuit (DIMM CTL) is processed according to an instruction from the non-volatile memory DIMM control circuit (DIMM CTL). CPU) to communicate data.
 図21(c)は、不揮発性メモリDIMM(NVM-DIMM)の第二の実施例を示す。不揮発性メモリDIMM(NVM-DIMM)は、複数の不揮発性メモリ(NVM)のチップ(NVM chip)及び不揮発性メモリ制御回路(Controller)から構成される。不揮発性メモリ制御回路(Controller)は、F.G.H.の制御の一部もしくは全てを実行し、不揮発性メモリ(NVM)に対するデータの読み出し、書き込み、消去を行う。また、不揮発性メモリ制御回路(Controller)は、情報処理回路(CPU)との間で、データを通信する。
<J.実施例の効果のまとめ>
 以上説明した本発明の実施例によって得られる主な効果は以下の通りである。
FIG. 21C shows a second embodiment of the nonvolatile memory DIMM (NVM-DIMM). The nonvolatile memory DIMM (NVM-DIMM) includes a plurality of nonvolatile memory (NVM) chips (NVM chips) and a nonvolatile memory control circuit (Controller). The nonvolatile memory control circuit (Controller) G. H. Executes part or all of the above control, and reads, writes, and erases data with respect to the nonvolatile memory (NVM). The nonvolatile memory control circuit (Controller) communicates data with the information processing circuit (CPU).
<J. Summary of Effects of Examples>
The main effects obtained by the embodiment of the present invention described above are as follows.
 物理的に距離の近い別のセルに対して、データの書き込みが連続して発生した場合においても、十分な時間間隔を空けることで、データ書き込みの際のエラーを低減する。また、記憶装置のコントローラが次のコマンドを優先的に処理することによって、もしくは記憶装置のコントローラが書き込み先のセルを変更することによって、高速にデータを書き込むことができる。 ∙ Even when data is written continuously to other cells that are physically close to each other, a sufficient time interval is provided to reduce errors during data writing. In addition, data can be written at high speed when the controller of the storage device preferentially processes the next command, or when the controller of the storage device changes the write destination cell.
 すなわち、データの書き込み時や消去時に熱が発生する不揮発性メモリにおいて、不揮発性メモリの別のセルやページ、ブロックに対して、連続して書き込みや消去が発生した場合でも、各物理領域に対して前回実行されたコマンドの時刻を管理することによって、コマンド間の時間間隔を同定し、その時間間隔を最適値と比較することによって、コマンドを待機させる、もしくは別のコマンドを優先的に実行する、もしくはコマンドでデータが書き込まれる(消去される)物理領域を変更することができ、これにより、データ書き込みやデータ消去時のエラー率を低減しつつ、記憶装置に対してデータの高速な読み書きが可能となる。 In other words, in a non-volatile memory that generates heat when data is written or erased, even if data is continuously written to or erased from another cell, page, or block of the non-volatile memory, By managing the time of the last executed command, the time interval between commands is identified, and the time interval between the commands is compared with the optimum value, thereby waiting for the command or executing another command with priority. Or, the physical area to which data is written (erased) can be changed by a command, thereby reducing the error rate at the time of data writing or data erasing and reading / writing data to / from the storage device at high speed. It becomes possible.
 以上で述べた本発明の第一及び第二の実施例では、記憶装置(SSD)もしくはメモリモジュール(MM)内にDRAM及び不揮発性メモリを用い、不揮発性メモリとして相変化メモリを用いる例を中心に説明したが、メモリとしてDRAMの代りに、MRAM、相変化メモリ、SRAM、NORフラッシュメモリ、または抵抗変化型メモリであるReRAMのようなランダムアクセスメモリを用いてもよく、不揮発性メモリとしては、相変化メモリの代りにNANDフラッシュメモリやReRAMを用いてもよく、いずれの場合にも適用可能である。 In the first and second embodiments of the present invention described above, DRAM and nonvolatile memory are used in the storage device (SSD) or memory module (MM), and a phase change memory is used as the nonvolatile memory. As described above, instead of DRAM, random access memory such as MRAM, phase change memory, SRAM, NOR flash memory, or ReRAM, which is a resistance change type memory, may be used as the memory. A NAND flash memory or ReRAM may be used instead of the phase change memory, and can be applied to either case.
 以上で述べた本発明の第一及び第二の実施例では、記憶装置(SSD)、メモリモジュール(MM)が複数接続された場合を説明したが、1つの記憶装置(SSD)から構成されるシステムでもよく、サーバーに関しては、単一計算ノードから構成されていてもよい。 In the first and second embodiments of the present invention described above, the case where a plurality of storage devices (SSD) and memory modules (MM) are connected has been described. However, the storage device (SSD) is constituted by one storage device (SSD). It may be a system, and the server may be composed of a single computing node.
 以上で述べた本願の実施例では、本願の実施形態は制御回路(Controller)、メモリ(DRAM)、レジスタ、不揮発性メモリから構成されるが、制御を実行する領域や最適値及び時間間隔を管理する領域は上記の例に限定されず、例えば、制御の一部をチップ内部やHostで実行してもよく、制御装置やチップの内部で時間間隔の一部を管理してもよい。 In the embodiment of the present invention described above, the embodiment of the present application is configured by a control circuit (Controller), a memory (DRAM), a register, and a nonvolatile memory, but manages an area for executing control, an optimum value, and a time interval. The area to be performed is not limited to the above example. For example, a part of the control may be executed in the chip or in the host, or a part of the time interval may be managed in the controller or the chip.
 以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。 As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say. For example, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace the configurations of other embodiments with respect to a part of the configurations of the embodiments.
 半導体メモリ分野等に利用し、高信頼且つ高速に動作する記憶装置を提供することができる。 It can be used in the semiconductor memory field and the like, and a storage device that operates at high speed and with high reliability can be provided.
CPU…情報処理回路 
Controller…制御回路 
NVM…不揮発性メモリ 
SS…ストレージシステム
SSD controller…ストレージシステム制御回路
SSD(1)~SSD(N)…記憶装置
Interface…インターフェース
RG…データレジスタ
TIME_MNG…時間間隔制御ブロック
INT_CNFG…時間間隔設定ブロック
INT_UPDT…時間間隔更新ブロック
T_WAIT…時間待機ブロック
NN_CMD…次以降コマンド発行ブロック
OTR_CMD…別物理領域コマンド発行ブロック
NVMC(1) ~NVMC(i)…不揮発性メモリ制御回路
DRAMC(1) ~DRAMC(p)…DRAM制御回路
I/O…データ転送バス
RY/DY…レディービジー線
Ch. 1~i…チャネル
Way 1~j…ウェイ
block…データ消去ブロック
N_b…1チップあたりのブロック数
page…ページ
N_p…1ブロックあたりのページ数
High T…データ書き込みもしくはデータ消去に最適な温度
Mid. T…室温とHigh Tの中間温度
Low T…室温
Cell…メモリセル
List…不揮発性メモリ内のブロック及びページの物理配置を表す管理情報
Int…コマンド間の時間間隔の最適値
TIME_INT…コマンド間の時間間隔の最適値
P/E Table…ブロックの消去回数管理テーブル
Time Table…時間間隔管理テーブル
BLK_TBL1…ブロックに対する時間間隔管理テーブル
BLK_TBL2…ブロックに対する時間間隔及び消去・読出回数管理テーブル
PG_TBL1…ページに対する時間間隔管理テーブル
PG_TBL2…ページに対する時間間隔及び物理論理アドレス変換管理テーブル
P0,Pm,Pq…物理ページ
SVR…サーバー
Host(1) ~Host(N)…ホスト
Interconnect…インターコネクト
MM(1) ~MM (N)…メモリモジュール
NVM-DIMM…不揮発性メモリDIMM
DIMM CTL…不揮発性メモリDIMM制御回路
CPU ... Information processing circuit
Controller ... Control circuit
NVM… Non-volatile memory
SS ... Storage system
SSD controller ... Storage system control circuit
SSD (1) -SSD (N) ... Storage device
Interface… Interface
RG: Data register
TIME_MNG ... Time interval control block
INT_CNFG: Time interval setting block
INT_UPDT ... Time interval update block
T_WAIT ... Time wait block
NN_CMD ... Next command issuing block
OTR_CMD ... Block for issuing another physical area command
NVMC (1)-NVMC (i) ... Non-volatile memory control circuit
DRAMC (1) to DRAMC (p) ... DRAM control circuit
I / O: Data transfer bus
RY / DY ... Lady Busy Line
Ch. 1 to i ... Channel
Way 1 ~ j ... Way
block ... Data erase block
N_b ... Number of blocks per chip
page ... page
N_p ... Number of pages per block
High T: Optimum temperature for data writing or erasing
Mid. T… The intermediate temperature between room temperature and High T
Low T ... room temperature
Cell ... Memory cell
List: Management information indicating the physical arrangement of blocks and pages in non-volatile memory
Int: Optimum time interval between commands
TIME_INT: Optimum time interval between commands
P / E Table: Block erase count management table
Time Table… Time interval management table
BLK_TBL1 ... Time interval management table for blocks
BLK_TBL2: Time interval and erase / read count management table for blocks
PG_TBL1 ... Time interval management table for pages
PG_TBL2: Time interval for page and physical logical address conversion management table
P0, Pm, Pq… physical page
SVR ... Server
Host (1)-Host (N) ... Host
Interconnect ... Interconnect
MM (1) to MM (N)… Memory module
NVM-DIMM: Non-volatile memory DIMM
DIMM CTL ... Non-volatile memory DIMM control circuit

Claims (15)

  1.  コントローラと、不揮発性メモリとを備えた記憶装置であって、
     前記不揮発性メモリは動作にともなって発熱する構造であり、
     前記コントローラは、前記不揮発性メモリに対して所定動作を指示するコマンドを発行し、
     前記コントローラは、前記コマンドによる動作間の時間間隔の最適値を参照可能であり、
     前記コントローラは、前記コマンドを前記不揮発性メモリに発行したのち、前記コマンドによって動作した前記不揮発性メモリの物理領域が、次のコマンドによって動作する前記不揮発性メモリの他の物理領域と所定の物理的配置関係にある場合、
     前記時間間隔の最適値もしくは最適値より長い時間が経過したのちに、前記次のコマンドによる動作を行うように制御することを特徴とする記憶装置。
    A storage device comprising a controller and a non-volatile memory,
    The non-volatile memory has a structure that generates heat during operation,
    The controller issues a command for instructing a predetermined operation to the nonvolatile memory;
    The controller can refer to the optimum value of the time interval between operations by the command,
    After the controller issues the command to the nonvolatile memory, the physical area of the nonvolatile memory operated by the command is different from the other physical area of the nonvolatile memory operated by the next command. If there is a placement relationship,
    The storage device is controlled to perform an operation according to the next command after an optimal value of the time interval or a time longer than the optimal value has elapsed.
  2.  請求項1において、
     前記コントローラは、
     前記コマンドによる動作間の時間間隔の最適値として、前記コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、
     前記コマンドによって動作した前記不揮発性メモリの物理領域が、次のコマンドによって動作する前記他の不揮発性メモリの物理領域と隣接している場合、
     前記コマンドの発行の時間間隔の最適値もしくは最適値より長い時間が経過するまで、前記次のコマンドを待機させ、待機後、前記次のコマンドを発行することにより、
     前記コマンドの発行の時間間隔の最適値を確保することを特徴とする記憶装置。
    In claim 1,
    The controller is
    As the optimum value of the time interval between operations by the command, the optimum value of the time interval between the issue of the command and the next command is held in advance,
    When the physical area of the nonvolatile memory operated by the command is adjacent to the physical area of the other nonvolatile memory operated by the next command,
    By waiting for the next command until the optimal value of the time interval for issuing the command or a time longer than the optimal value elapses, and after waiting, issuing the next command,
    A storage device that secures an optimum value of a time interval for issuing the command.
  3.  請求項1において、
     前記コントローラは、
     前記コマンドによる動作間の時間間隔の最適値として、前記コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、
     前記コマンドによって動作した前記不揮発性メモリの物理領域が、次のコマンドによって動作する前記他の不揮発性メモリの物理領域と隣接している場合、
     前記次のコマンドを飛び越して、前記次のコマンドの次以降のコマンドを発行することにより、
     前記コマンドの発行の時間間隔の最適値を確保することを特徴とする記憶装置。
    In claim 1,
    The controller is
    As the optimum value of the time interval between operations by the command, the optimum value of the time interval between the issue of the command and the next command is held in advance,
    When the physical area of the nonvolatile memory operated by the command is adjacent to the physical area of the other nonvolatile memory operated by the next command,
    By skipping the next command and issuing a command after the next command,
    A storage device that secures an optimum value of a time interval for issuing the command.
  4.  請求項1において、
     前記コントローラは、
     前記コマンドによる動作間の時間間隔の最適値として、前記コマンドと次のコマンドの発行の時間間隔の最適値を予め保持し、
     前記コマンドによって動作した前記不揮発性メモリの物理領域が、次のコマンドによって動作する前記他の不揮発性メモリの物理領域と隣接している場合、
     前記コマンドによって書き換わった前記不揮発性メモリの物理領域と隣接しない代替物理領域を選定し、前記他の不揮発性メモリの物理領域に代えて、前記代替物理領域に対して前記次のコマンドを発行することにより、
     前記コマンドの発行の時間間隔の最適値を確保することを特徴とする記憶装置。
    In claim 1,
    The controller is
    As the optimum value of the time interval between operations by the command, the optimum value of the time interval between the issue of the command and the next command is held in advance,
    When the physical area of the nonvolatile memory operated by the command is adjacent to the physical area of the other nonvolatile memory operated by the next command,
    An alternative physical area that is not adjacent to the physical area of the nonvolatile memory rewritten by the command is selected, and the next command is issued to the alternative physical area instead of the physical area of the other nonvolatile memory. By
    A storage device that secures an optimum value of a time interval for issuing the command.
  5.  請求項1において、
     前記不揮発性メモリは、
     前記コマンドによる動作間の時間間隔の最適値として、前記コマンド間の時間間隔の最適値を規定したデータを保持し、
     前記コントローラは、
     前記コマンド間の時間間隔の最適値を、前記不揮発性メモリ内から読み出すことを特徴とする記憶装置。
    In claim 1,
    The nonvolatile memory is
    As the optimum value of the time interval between operations by the command, data that defines the optimum value of the time interval between the commands is retained,
    The controller is
    A storage device, wherein an optimum value of a time interval between the commands is read from the nonvolatile memory.
  6.  請求項5において、
     前記コマンド間の時間間隔の最適値は、
     前記不揮発性メモリに対するデータ書き込みコマンドとデータ書き込みコマンドの間の時間間隔の最適値、データ書き込みコマンドとデータ消去コマンドの間の時間間隔の最適値、データ消去コマンドとデータ書き込みコマンドの間の時間間隔の最適値、および、データ消去コマンドとデータ消去コマンドの間の時間間隔の最適値のうち、少なくとも1つを含むことを特徴とする記憶装置。
    In claim 5,
    The optimal value of the time interval between the commands is
    The optimum value of the time interval between the data write command and the data write command for the nonvolatile memory, the optimum value of the time interval between the data write command and the data erase command, and the time interval between the data erase command and the data write command. A storage device comprising at least one of an optimum value and an optimum value of a time interval between a data erase command and a data erase command.
  7.  請求項5において、
     前記コントローラは、
     前記不揮発性メモリの管理情報に基づいて、前記コマンド間の時間間隔の最適値を変更することを特徴とする記憶装置。
    In claim 5,
    The controller is
    A storage device, wherein an optimum value of a time interval between the commands is changed based on management information of the nonvolatile memory.
  8.  請求項7において、
     前記不揮発性メモリの管理情報は、
     前記不揮発性メモリのデータ消去単位に対する消去回数、データ読み出し単位に対する読み出し回数、および、前記データ読み出し単位に対する読み出しエラー率のうち、少なくとも一つを含むことを特徴とする記憶装置。
    In claim 7,
    The management information of the nonvolatile memory is
    A storage device comprising at least one of an erase count for a data erase unit of the nonvolatile memory, a read count for a data read unit, and a read error rate for the data read unit.
  9.  請求項1において、
     前記コントローラは、
     前記コマンドによる、前記不揮発性メモリの前記データの書き込みまたは消去の単位に対応する物理領域ごとに、最後に実行された前記コマンドの実行時刻を管理することを特徴とする記憶装置。
    In claim 1,
    The controller is
    A storage device that manages the execution time of the last executed command for each physical area corresponding to a unit of writing or erasing the data in the nonvolatile memory according to the command.
  10.  コントローラと、不揮発性メモリとを備えた記憶装置であって、
     前記コントローラは、
     前記不揮発性メモリの所定範囲の物理領域に対してコマンドを発行し、
     前記コマンド間の時間間隔の最適値情報を参照可能であり、
     前記コマンドが発行される前記不揮発性メモリの物理領域の物理的配置情報を参照可能であり、
     前記コマンドを前記不揮発性メモリの第1の物理領域に発行したのち、次のコマンドが発行されるべき前記不揮発性メモリの第2の領域が、前記第1の領域と隣接しており、かつ、直ちに前記次のコマンドを発行すると前記時間間隔の最適値を満足できない場合、
     前記時間間隔の最適値もしくは最適値より長い時間が経過するまで待機したのちに、前記次のコマンドを前記第2の領域に発行するか、もしくは、
     前記時間間隔の最適値もしくは最適値より長い時間が経過するまえに、前記次のコマンドを前記第2の領域とは異なる第3の領域に発行するか、もしくは、
     前記時間間隔の最適値もしくは最適値より長い時間が経過するまえに、前記次のコマンドの次以降の別コマンドを優先的に発行する、
     ことを特徴とする記憶装置。
    A storage device comprising a controller and a non-volatile memory,
    The controller is
    Issue a command to a predetermined range of physical area of the non-volatile memory,
    It is possible to refer to the optimum value information of the time interval between the commands,
    It is possible to refer to physical arrangement information of a physical area of the nonvolatile memory to which the command is issued,
    After issuing the command to the first physical area of the non-volatile memory, a second area of the non-volatile memory to which a next command is to be issued is adjacent to the first area; and If the next command is issued immediately and the optimal value of the time interval cannot be satisfied,
    After waiting until the optimal value of the time interval or a time longer than the optimal value elapses, the next command is issued to the second area, or
    Issuing the next command to a third area different from the second area before the optimal value of the time interval or a time longer than the optimal value elapses, or
    Prior to issuing the next command after the next command prior to the optimal value of the time interval or a time longer than the optimal value elapses;
    A storage device.
  11.  請求項10において、
     前記コントローラは、
     前記コマンドが発行される所定範囲の物理領域と、当該物理領域に最後に発行されたコマンドの種類および時間の情報を対応付けて管理する管理テーブルにアクセス可能な、
     ことを特徴とする記憶装置。
    In claim 10,
    The controller is
    It is possible to access a management table that manages the physical area in a predetermined range where the command is issued and the type and time information of the last issued command in the physical area in association with each other.
    A storage device.
  12.  請求項11において、
     前記コントローラは、
     前記管理テーブルに、前記所定範囲の物理領域と、当該物理領域に最後に発行されたコマンドの種類および時間の情報を格納する際に、
     前記物理的配置情報を参照することにより、前記所定範囲の物理領域に隣接する隣接物理領域を抽出し、
     前記隣接物理領域に対応付けて、前記所定範囲の物理領域に最後に発行されたコマンドの種類および時間の情報を格納する、
     ことを特徴とする記憶装置。
    In claim 11,
    The controller is
    In the management table, when storing the physical area in the predetermined range and the type and time information of the last issued command in the physical area,
    By referring to the physical arrangement information, an adjacent physical area adjacent to the physical area of the predetermined range is extracted,
    In association with the adjacent physical area, information on the type and time of the last issued command is stored in the physical area in the predetermined range.
    A storage device.
  13.  請求項11において、
     前記コントローラは、
     前記管理テーブルを参照するとともに、前記コマンド間の時間間隔の最適値情報を参照することにより、直ちに前記次のコマンドを発行すると前記時間間隔の最適値を満足できないか否かを判定する、
     ことを特徴とする記憶装置。
    In claim 11,
    The controller is
    By referring to the management table and referring to the optimum value information of the time interval between the commands, it is determined whether or not the optimum value of the time interval cannot be satisfied if the next command is issued immediately.
    A storage device.
  14.  複数のメモリセルを配列したメモリセルアレイを有する記憶装置の制御方法であって、
     前記メモリセルに対して第1の動作を指示する第1のコマンドと、前記メモリセルに対して第2の動作を指示する第2のコマンドの適正時間間隔を適正時間間隔情報として記憶し、
     前記複数のメモリセルのうち同時に前記第1のコマンドが発行される範囲と、前記複数のメモリセルのうち同時に前記第2のコマンドが発行される範囲の物理的配置関係を物理的配置関係情報として記憶し、
     前記複数のメモリセルのうち第1の範囲のメモリセルに対して第1のコマンドを発行した後、
     前記複数のメモリセルのうち第2の範囲のメモリセルに対して第2のコマンドを発行する前に、
     前記物理的配置関係情報に基づいて、前記第1の範囲と第2の範囲が異なる範囲であり、かつ、予め規定されている所定の物理的配置関係か否かを判定し、
     予め規定されている所定の物理的配置関係であった場合には、前記第1のコマンドと第2のコマンドの適正時間間隔未満の時点では、前記第2の範囲に対して第2のコマンドを発行しないように制御する記憶装置の制御方法。
    A method of controlling a storage device having a memory cell array in which a plurality of memory cells are arranged,
    Storing an appropriate time interval between a first command for instructing a first operation for the memory cell and a second command for instructing a second operation for the memory cell as appropriate time interval information;
    The physical arrangement relationship between the range in which the first command is issued simultaneously among the plurality of memory cells and the range in which the second command is issued simultaneously among the plurality of memory cells is used as physical arrangement relationship information. Remember,
    After issuing a first command to a first range of memory cells of the plurality of memory cells,
    Before issuing a second command to a second range of memory cells of the plurality of memory cells,
    Based on the physical arrangement relationship information, it is determined whether the first range and the second range are different ranges, and a predetermined physical arrangement relationship defined in advance,
    In the case of a predetermined physical arrangement relationship defined in advance, at a time less than an appropriate time interval between the first command and the second command, the second command is applied to the second range. A method of controlling a storage device that controls not to issue.
  15.  前記物理的配置関係情報に基づいて、前記第1の範囲と第2の範囲が同じ範囲であった場合にも、前記第1のコマンドと第2のコマンドの適正時間間隔未満の時点では、前記第2の範囲に対して第2のコマンドを発行しないように制御する記憶装置の制御方法。 Based on the physical arrangement relationship information, even when the first range and the second range are the same range, at a time point less than the appropriate time interval between the first command and the second command, A storage device control method for controlling not to issue a second command to the second range.
PCT/JP2014/082883 2014-12-11 2014-12-11 Storage device and control method therefor WO2016092676A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/082883 WO2016092676A1 (en) 2014-12-11 2014-12-11 Storage device and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/082883 WO2016092676A1 (en) 2014-12-11 2014-12-11 Storage device and control method therefor

Publications (1)

Publication Number Publication Date
WO2016092676A1 true WO2016092676A1 (en) 2016-06-16

Family

ID=56106923

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/082883 WO2016092676A1 (en) 2014-12-11 2014-12-11 Storage device and control method therefor

Country Status (1)

Country Link
WO (1) WO2016092676A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005108395A (en) * 2003-09-12 2005-04-21 Renesas Technology Corp Storage device
US20130080680A1 (en) * 2011-09-22 2013-03-28 Phison Electronics Corp. Memory storage device, memory controller, and temperature management method
JP2014174849A (en) * 2013-03-11 2014-09-22 Toshiba Corp Semiconductor memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005108395A (en) * 2003-09-12 2005-04-21 Renesas Technology Corp Storage device
US20130080680A1 (en) * 2011-09-22 2013-03-28 Phison Electronics Corp. Memory storage device, memory controller, and temperature management method
JP2014174849A (en) * 2013-03-11 2014-09-22 Toshiba Corp Semiconductor memory device

Similar Documents

Publication Publication Date Title
JP5547154B2 (en) Memory device
JP5677336B2 (en) Memory device
US8949511B2 (en) Nonvolatile semiconductor storage system
US20130329491A1 (en) Hybrid Memory Module
US20170262380A1 (en) Switch module and storage system
JP2009199199A (en) Storage system and its data write method
JP5847940B2 (en) Semiconductor device
US10713157B2 (en) Storage system and method for improving read performance using multiple copies of a logical-to-physical address table
US20180211707A1 (en) Semiconductor memory device and method of controlling semiconductor memory device
US11609712B2 (en) Write operations to mitigate write disturb
JP2020149588A (en) Memory system and memory controller
JP6073495B2 (en) Semiconductor device
US20170171106A1 (en) Quality of service management method in fabric network and fabric network system using the same
JP2005339231A (en) Memory card, semiconductor device, and method for controlling semiconductor memory
US10365834B2 (en) Memory system controlling interleaving write to memory chips
JP5281163B2 (en) Semiconductor device and memory module
KR102650603B1 (en) Nonvolatile memory device, operation method of the nonvolatile memory device, and operation method of memory controller controlling the nonvolatile memory device
JP6360627B2 (en) Nonvolatile memory control method, control device, and semiconductor memory device
US20180113803A1 (en) Operation method of memory controller and operation method of storage device including the same
WO2016092676A1 (en) Storage device and control method therefor
JP5782556B2 (en) Nonvolatile semiconductor memory system
KR20210054584A (en) Access unit and managed segment memory behavior
JP2010026950A (en) Storage device
JP2011070470A (en) Semiconductor memory device
JP5968508B2 (en) Nonvolatile semiconductor memory system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14907939

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP