US20230298684A1 - Memory system and information processing system - Google Patents
Memory system and information processing system Download PDFInfo
- Publication number
- US20230298684A1 US20230298684A1 US17/939,180 US202217939180A US2023298684A1 US 20230298684 A1 US20230298684 A1 US 20230298684A1 US 202217939180 A US202217939180 A US 202217939180A US 2023298684 A1 US2023298684 A1 US 2023298684A1
- Authority
- US
- United States
- Prior art keywords
- test
- information
- storage area
- host
- executed
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 12
- 238000012360 testing method Methods 0.000 claims abstract description 296
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000007726 management method Methods 0.000 description 42
- 238000000034 method Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 30
- 238000010586 diagram Methods 0.000 description 17
- 230000009471 action Effects 0.000 description 14
- 238000012005 ligant binding assay Methods 0.000 description 14
- 230000002950 deficient Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/46—Test trigger logic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
Definitions
- Embodiments described herein relate generally to a memory system and an information processing system.
- SSD solid state drive
- FAT final assembling and testing
- FIG. 1 is a block diagram illustrating an example of a configuration of an information processing system that includes a memory system according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating an example of an internal configuration of a nonvolatile memory according to the embodiment of the present invention.
- FIG. 3 is a block diagram illustrating an example of a storage area of the nonvolatile memory according to the embodiment of the present invention.
- FIG. 4 is a block diagram illustrating an example of data stored in an available area of the nonvolatile memory according to the embodiment of the present invention.
- FIG. 5 is a block diagram illustrating an example of data stored in a RAM according to the embodiment of the present invention.
- FIG. 6 is a block diagram illustrating an example of a functional configuration of a processor of a host according to the embodiment of the present invention.
- FIG. 7 is a block diagram illustrating an example of a functional configuration of a CPU according to the embodiment of the present invention.
- FIG. 8 illustrates an example of namespaces included in the nonvolatile memory before shipment of the memory system according to the embodiment of the present invention.
- FIG. 9 A illustrates a first part of an example of a test execution status management table according to the embodiment of the present invention.
- FIG. 9 B illustrates a second part of the example of the test execution status management table according to the embodiment of the present invention.
- FIG. 10 illustrates an example of an identify namespace data structure which stores the same information as test information according to the embodiment of the present invention.
- FIG. 11 illustrates another example of an identify namespace data structure which stores the same information as test information according to the embodiment of the present invention.
- FIG. 12 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a write operation or a read operation according to the embodiment of the present invention.
- FIG. 13 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a wait operation according to the embodiment of the present invention.
- FIG. 14 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a write operation, a wait operation and a read operation according to the embodiment of the present invention.
- FIG. 15 is a sequence diagram illustrating a part of an example of the procedure of a test process executed in the host and the memory system according to the embodiment of the present invention.
- FIG. 16 is a sequence diagram illustrating a part subsequent to the example of the procedure of the test process executed in the host and the memory system according to the embodiment of the present invention.
- a memory system comprises a nonvolatile memory that includes storage areas, and a controller configured to control the nonvolatile memory.
- the storage areas include at least a first storage area on which a test related to a write operation and a read operation has been executed, and a second storage area on which the test has not been executed.
- the controller manages first test information and second test information, the first test information including status information indicating that a test related to a write operation and a read operation on the first storage area has been executed, the second test information including status information indicating that a test related to a write operation and a read operation on the second storage area has not been executed.
- the controller In response to receiving, from the host, a command to acquire information related to the second storage area, the controller transmits the second test information that corresponds to the second storage area to the host.
- the controller executes the test related to the write operation and the read operation on the second storage area.
- the controller updates the status information of the second test information with a first value indicating that the test on the second storage area has been executed.
- FIG. 1 is a block diagram illustrating an example of a configuration of an information processing system that includes a memory system according to an embodiment of the present invention.
- the information processing system 1 includes a host 2 and a memory system 3 .
- the host 2 is an information processing device.
- the host 2 is, for example, a personal computer or a server computer.
- the host 2 accesses the memory system 3 . Specifically, the host 2 transmits a write command that is a command to write data, to the memory system 3 .
- the host 2 transmits a read command that is a command to read data, to the memory system 3 .
- the memory system 3 is a storage device.
- the memory system 3 is, for example, an SSD including a NAND flash memory.
- the memory system 3 is connectable to the host 2 through a bus 4 .
- the host 2 and the memory system 3 are connectable through the bus 4 .
- the bus 4 is, for example, a PCI ExpressTM bus (PCIeTM bus).
- the bus 4 is mainly used for transmission of a command (I/O command or management command) from the host 2 to the memory system 3 and transmission of a response from the memory system 3 to the host 2 .
- the I/O command is a command for writing or reading data to or from a nonvolatile memory.
- the I/O command for example, is a write command or a read command.
- the management command is a command for managing the memory system 3 .
- the management command is, for example, an identify command defined in the NVMe standard.
- the identify command is a command for acquiring information related to a controller 5 included in the memory system 3 or information related to a namespace.
- the communication between the host 2 and the memory system 3 through the bus 4 is executed on the basis of, for example, the NVM ExpressTM (NVMeTM) standard.
- NVMeTM NVM ExpressTM
- one namespace may correspond to one storage area of the memory system 3 .
- Each of a plurality of namespaces is a set of contiguous logical addresses.
- the logical address is an address used by the host 2 to logically specify an address in a memory space of the memory system 3 .
- a logical block address (LBA) may be used as the logical address.
- Each of the namespaces is used by the host 2 to access the memory system 3 .
- the host 2 includes a processor 21 and a memory 22 .
- the processor 21 is a central processing unit (CPU).
- the processor 21 communicates with the memory system 3 through the bus 4 .
- the processor 21 executes a software (host software) that is loaded onto the memory 22 .
- the host software is loaded from the memory system 3 onto the memory 22 .
- the host software includes an operating system, a file system, a device driver, and an application program.
- the memory 22 is a volatile memory.
- the memory 22 is, for example, a random access memory such as a dynamic random access memory (DRAM).
- DRAM dynamic random access memory
- the memory system 3 includes the controller 5 , a nonvolatile memory 6 and a random access memory (RAM) 7 .
- the controller 5 is a memory controller.
- the controller 5 is, for example, a control circuit such as a system-on-a-chip (SoC).
- SoC system-on-a-chip
- the controller 5 is communicatively connected to the nonvolatile memory 6 .
- the controller 5 performs writing of data into the nonvolatile memory 6 .
- the controller 5 performs reading of data from the nonvolatile memory 6 .
- the controller 5 is communicatively connected to the RAM 7 .
- the controller 5 performs writing of data to the RAM 7 .
- the controller 5 performs reading of data from the RAM 7 .
- the controller 5 performs communication with the outside through the bus 4 .
- the nonvolatile memory 6 is a nonvolatile memory.
- the nonvolatile memory 6 is, for example, a NAND flash memory.
- the nonvolatile memory 6 is, for example, a flash memory of a two-dimensional structure or a flash memory of a three-dimensional structure.
- the nonvolatile memory 6 includes multiple planes. Each of the planes includes multiple blocks. Each of the blocks is a unit of a data erase operation.
- the data erase operation is an operation of erasing data.
- Each of the blocks is also referred to as a physical block, an erase block, a flash block, or a memory block.
- Each of the blocks includes multiple pages.
- Each of the pages is a unit of a data write operation and a data read operation.
- the data write operation is an operation of writing data.
- the data read operation is an operation of reading data.
- Each of the pages includes a plurality of memory cells that are connected to a single word line.
- the RAM 7 is a volatile memory.
- the RAM 7 is, for example, a dynamic RAM (DRAM).
- DRAM dynamic RAM
- the RAM 7 temporarily stores received write data or read data read from the nonvolatile memory 6 . That is, the RAM 7 is used as a write buffer or a read buffer.
- the controller 5 includes a host interface circuit 51 , a CPU 52 , a direct memory access controller (DMAC) 53 , an error correction code (ECC) circuit 54 , a nonvolatile memory interface circuit 55 , and a RAM interface circuit 56 .
- the host interface circuit 51 , the CPU 52 , the DMAC 53 , the ECC circuit 54 , the nonvolatile memory interface circuit 55 , and the RAM interface circuit 56 are connected to an internal bus 50 .
- the host interface circuit 51 is a hardware interface.
- the host interface circuit 51 performs communication with the outside.
- the host interface circuit 51 receives various commands.
- the various commands include, for example, I/O commands and management commands.
- the CPU 52 is a processor.
- the CPU 52 controls the host interface circuit 51 , the DMAC 53 , the ECC circuit 54 , the nonvolatile memory interface circuit 55 , and the RAM interface circuit 56 .
- the CPU 52 loads a control program (firmware) from a ROM (not shown) or the nonvolatile memory 6 onto the RAM 7 .
- the CPU 52 executes the control program (firmware).
- the CPU 52 executes various processes on the basis of instructions included in the firmware.
- the CPU 52 performs, for example, as a flash translation layer (FTL), management of data stored in the nonvolatile memory 6 and management of blocks included in the nonvolatile memory 6 .
- the management of data stored in the nonvolatile memory 6 is, for example, management of mapping information.
- the mapping information is information indicative of a corresponding relationship between logical addresses and physical addresses.
- Each of the physical addresses is an address that indicates a physical storage location included in the nonvolatile memory 6 .
- the management of blocks included in the nonvolatile memory 6 is, for example, management of defective blocks (bad blocks) included in the nonvolatile memory 6 , wear leveling, and garbage collection.
- the DMAC 53 is a circuit which executes direct memory access (DMA).
- the DMAC 53 executes data transfer between the RAM 7 and the memory 22 of the host 2 .
- the ECC circuit 54 is a circuit which performs encoding of data and decoding of data.
- the ECC circuit 54 adds an error correction code (ECC), as a redundant code, to data to be written into the nonvolatile memory 6 (ECC encoding).
- ECC error correction code
- ECC decoding error correction code
- the nonvolatile memory interface circuit 55 is a circuit which controls the nonvolatile memory 6 .
- the nonvolatile memory interface circuit 55 includes, for example, nonvolatile memory control circuits 551 - 0 , 551 - 1 , 551 - 2 , and 551 - 3 .
- the nonvolatile memory control circuits 551 - 0 , 551 - 1 , 551 - 2 , and 551 - 3 are connected to channels ch0, ch1, ch2, and ch3, respectively.
- each of the nonvolatile memory control circuits 551 - 0 , 551 - 1 , 551 - 2 and 551 - 3 is connected to one or more nonvolatile memory chips (flash dies) through a corresponding channel.
- the nonvolatile memory control circuit 551 - 0 is connected to nonvolatile memory chips 60 - 000 , . . . , through the channel ch0.
- the nonvolatile memory control circuit 551 - 1 is connected to nonvolatile memory chips 60 - 100 , . . . , through the channel ch1.
- the nonvolatile memory control circuit 551 - 2 is connected to nonvolatile memory chips 60 - 200 , . . . , through the channel ch2.
- the nonvolatile memory control circuit 551 - 3 is connected to nonvolatile memory chips 60 - 300 , . . . , through the channel ch3.
- the RAM interface circuit 56 is a circuit which controls the RAM 7 .
- the RAM interface circuit 56 is, for example, a circuit which controls a DRAM.
- FIG. 2 is a block diagram illustrating an example of an internal configuration of the nonvolatile memory 6 according to the embodiment of the present invention.
- the number of channels is four
- the number of banks is four
- the number of planes is two
- nonvolatile memory chips 60 are connected to each of the four channels ch0, ch1, ch2, and ch3.
- Each of the four banks B0 to B3 includes eight nonvolatile memory chips 60 .
- Two nonvolatile memory chips 60 connected to each of the four channels ch0, ch1, ch2, and ch3 are included in the same bank.
- a bank is a unit of a parallel operation in which nonvolatile memory chips 60 perform according to interleaved operations.
- nonvolatile memory chips 60 - 000 , 60 - 001 , 60 - 100 , 60 - 101 , 60 - 200 , 60 - 201 , 60 - 300 and 60 - 301 constitute the bank B0.
- Nonvolatile memory chips 60 - 010 , 60 - 011 , 60 - 110 , 60 - 111 , 60 - 210 , 60 - 211 , 60 - 310 , and 60 - 311 constitute the bank B1.
- Nonvolatile memory chips 60 - 020 , 60 - 021 , 60 - 120 , 60 - 121 , 60 - 220 , 60 - 221 , 60 - 320 , and 60 - 321 the constitute bank B2.
- Nonvolatile memory chips 60 - 030 , 60 - 031 , 60 - 130 , 60 - 131 , 60 - 230 , 60 - 231 , 60 - 330 , and 60 - 331 constitute the bank B3.
- Each of the nonvolatile memory chips 60 includes two planes # 0 and # 1 .
- Each of the nonvolatile memory chips 60 is configured to cause two blocks to operate parallel, wherein one of the two blocks is included in the plane # 0 and the other is included in the plane # 1 .
- the nonvolatile memory 6 is configured to cause 32 blocks to operate in parallel at a maximum.
- FIG. 3 is a block diagram illustrating an example of storage areas of the nonvolatile memory 6 according to the embodiment of the present invention.
- the nonvolatile memory 6 includes an available area 61 , an untested area 62 and an unavailable area 63 .
- the available area 61 is a storage area which is available for data storage among tested areas. Each tested area is a storage area on which a test in a FAT process has been executed among storage areas included in the nonvolatile memory 6 .
- the available area 61 includes, for example, multiple blocks which are available for data writing.
- the test in the FAT process includes, for example, a test related to a write operation of writing data and a test related to a read operation of reading data.
- the untested area 62 is a storage area on which the test in the FAT process has not been executed among the storage areas included in the nonvolatile memory 6 .
- the unavailable area 63 is a storage area which is determined as unavailable.
- the unavailable area 63 includes, for example, blocks that are determined as defective blocks by the controller 5 .
- FIG. 4 is a block diagram illustrating an example of data stored in the available area of the nonvolatile memory according to the embodiment of the present invention.
- the data stored in the available area 61 of the nonvolatile memory 6 includes user data 64 , management tables 65 , test information 66 , and an identify namespace data structure 67 .
- the user data 64 is data written in the available area 61 on the basis of a received write command.
- the management tables 65 are tables in which management information is stored.
- the management information is information which is generated by the controller 5 to manage the memory system 3 .
- the management tables 65 includes, for example, a logical-to-physical address translation table (L2P table) and a test execution status management table.
- the L2P table is a table which stores mapping information used for logical-to-physical address translation.
- the test execution status management table is a table which stores information indicating an execution status of the test for each plane or each block of the nonvolatile memory 6 . The details of the L2P table and the test execution status management table are described later.
- the test information 66 is information related to the test on each of the storage areas included in the nonvolatile memory 6 .
- the test information 66 includes, for each of storage areas of the nonvolatile memory 6 that correspond to namespaces, respectively, information indicating whether or not the test in the FAT process has been executed.
- the test information 66 is information which is provided to the host 2 to notify the host 2 of tested areas and untested areas.
- the test information 66 may include, for each storage area corresponding to a namespace, information indicating whether or not the test related to a write operation has been executed, and information indicating whether or not the test related to a read operation has been executed.
- test information 66 may include, for each storage area corresponding to a namespace, information indicating the content of the test related to a write operation, and information indicating the content of the test related to a read operation.
- the test information 66 is individually managed for each storage area included in the nonvolatile memory 6 .
- a plurality of items of test information 66 that correspond to the storage areas included in the nonvolatile memory 6 in a one-to-one relationship are stored in the nonvolatile memory 6 .
- the identify namespace data structure 67 is a data structure used to describe various types of information related to capabilities and settings of a namespace in a predetermined format.
- the identify namespace data structure 67 corresponds to a namespace.
- the identify namespace data structure 67 includes, for example, a vendor specific area.
- the vendor specific area is an area in which information specific to a vendor can be described.
- the identify namespace data structure 67 includes a vendor specific area, the same information as the test information 66 is described in the vendor specific area. Thereby, the identify namespace data structure 67 stores the same information as the test information 66 .
- FIG. 5 is a block diagram illustrating an example of data stored in the RAM 7 according to the embodiment of the present invention.
- the data stored in the RAM 7 includes user data 71 , an L2P table 72 , a test execution status management table 73 , and test information 74 .
- the user data 71 includes, for example, write data to be written into the nonvolatile memory 6 , and read data read from the nonvolatile memory 6 .
- the L2P table 72 is a logical-to-physical address translation table which stores a correspondence relationship between logical addresses and the physical addresses of the nonvolatile memory 6 in a unit of predetermined size such as a sector.
- the L2P table 72 is loaded from the management tables 65 stored in the nonvolatile memory 6 onto the RAM 7 .
- the test execution status management table 73 is a table which stores, for each plane or each block of the nonvolatile memory 6 , information indicating an execution status of the test.
- the test execution status management table 73 stores information indicating a plane or a block on which the test has been executed, and information indicating a plane or a block on which the test has not been executed.
- the test execution status management table 73 is loaded from the management tables 65 stored in the nonvolatile memory 6 onto the RAM 7 .
- the test information 74 is information related to the test.
- the test information 74 is the same data as part of the test information 66 stored in the nonvolatile memory 6 .
- the test information 74 is loaded from the nonvolatile memory 6 onto the RAM 7 .
- FIG. 6 is a block diagram illustrating the functional configuration of the processor 21 of the host 2 according to the embodiment of the present invention.
- the processor 21 includes a command issuance unit 211 and a testing unit 212 .
- the command issuance unit 211 and the testing unit 212 may be partly or wholly realized by another hardware of the host 2 .
- the command issuance unit 211 issues various commands to the memory system 3 .
- the various commands include I/O commands and management commands.
- the I/O commands include a write command and a read command.
- the management commands includes, for example, an identify command.
- the command issuance unit 211 is configured to transmit an identify command that specifies a certain namespace, to the memory system 3 .
- the testing unit 212 requests the memory system 3 to execute the test on a storage area corresponding to a namespace.
- the testing unit 212 requests the memory system 3 to execute the test on a storage area corresponding to a namespace on the basis of the test information 66 received from the memory system 3 .
- the testing unit 212 may know in advance a plurality of operations which should be executed as the test on each storage area.
- the testing unit 212 may know the operations to be executed as the test on the basis of information that is included in the received test information 66 and indicates the content of the test.
- the testing unit 212 determines the operations to be executed.
- the testing unit 212 instructs the command issuance unit 211 to issue commands that correspond to the determined operations.
- FIG. 7 is a block diagram illustrating the functional configuration of the CPU 52 according to the embodiment of the present invention.
- the CPU 52 includes a read/write control unit 521 , a data arrangement unit 522 , a block management unit 523 , and a failure determination unit 524 .
- the read/write control unit 521 , the data arrangement unit 522 , the block management unit 523 , and the failure determination unit 524 may be partly or wholly realized by another hardware of the controller 5 .
- the read/write control unit 521 executes a read process and a write process.
- the read process is a process of instructing the nonvolatile memory 6 to execute a data read operation.
- the write process is a process of instructing the nonvolatile memory 6 to execute a data write operation.
- the write process is a process of writing data into the nonvolatile memory 6 .
- the read/write control unit 521 instructs the nonvolatile memory 6 to execute a data read operation on the basis of a read command.
- the read/write control unit 521 instructs the nonvolatile memory 6 to execute a data write operation on the basis of a write command.
- the read/write control unit 521 executes a completion response generation process.
- the completion response generation process is a process of generating a command completion response to be indicated to the host 2 .
- the read/write control unit 521 executes a warning generation process.
- the warning generation process is a process of generating a warning that notifies the host 2 that the untested area 62 is accessed.
- the read/write control unit 521 may generate a command completion response including a warning.
- the data arrangement unit 522 executes garbage collection. For example, the data arrangement unit 522 executes garbage collection on the basis of the fact that the number of free blocks included in the nonvolatile memory 6 falls below a threshold.
- the free blocks each refer to a block not including valid data.
- the valid data means data stored in a physical storage location that is indicated by a physical address referred to from the L2P table 72 , in other words, data associated with a logical address.
- the block management unit 523 manages each of the blocks included in the nonvolatile memory 6 .
- the block management unit 523 updates the L2P table 72 on the basis of a data write operation based on a write command, or on the basis of garbage collection executed by the data arrangement unit 522 .
- the block management unit 523 registers the block with the available area 61 as a free block.
- the block management unit 523 manages an execution state of the test for each plane or each block included in the nonvolatile memory 6 .
- the block management unit 523 updates the test execution status management table 73 such that the execution status of the test for each plane or each block included in the storage area indicates that the test has been executed.
- the failure determination unit 524 determines whether or not each block included in a storage area on which the test is in progress is a defective block.
- the defective block is a block in which data writing or reading cannot be executed correctly.
- the failure determination unit 524 instructs the block management unit 523 to register the detected defective block with the unavailable area 63 .
- FIG. 8 illustrates an example of the relationship between the storage areas of the nonvolatile memory 6 and the namespaces before shipment of the memory system 3 according to the embodiment of the present invention.
- a storage area 601 and a storage area 602 are included in the nonvolatile memory 6 . It is assumed that the capacity of the nonvolatile memory 6 is 4 TB.
- the storage area 601 is a storage area on which the test related to a write operation and a read operation has been executed. It is assumed that the capacity of the storage area 601 is 1 TB.
- the storage area 601 is a storage area corresponding to a namespace NS A.
- the storage area 602 is a storage area on which the test related to a write operation and a read operation has not been executed. It is assumed that the capacity of the storage area 602 is 3 TB.
- the storage area 602 is a storage area corresponding to a namespace NS B.
- the namespace NS A is a namespace for which the test has been executed.
- a namespace for which the test has been executed is a namespace for which the test on a corresponding storage area has been executed.
- a FAT completion status is associated with the namespace NS A.
- the FAT completion status is status information indicating whether the test related to a write operation and a read operation for a namespace has been executed.
- the FAT completion status is included in, for example, an identify namespace data structure corresponding to the namespace NS A as part of test information. Since the namespace NS A is a namespace for which the test has been executed, a value indicating the fact is associated with the namespace NS A as a FAT completion status.
- the FAT completion status corresponding to the namespace NS A is, for example, 01h.
- the namespace NS B is a namespace for which the test has not been executed.
- a namespace for which the test has not been executed is a namespace for which the test on a corresponding storage area has not been executed.
- a FAT completion status is associated with the namespace NS B. The FAT completion status is included in, for example, an identify namespace data structure corresponding to the namespace NS B as part of test information.
- the namespace NS B is a namespace for which the test has not been executed, a value indicating the fact is associated with the namespace NS B as a FAT completion status.
- the FAT completion status corresponding to the namespace NS B is, for example, FFh.
- a storage area having a capacity of 2 TB in total is associated with the namespace NS A.
- a storage area having a capacity of 2 TB is associated with the namespace NS B.
- a portion of the storage area 602 having a capacity of 1 TB is allocated to the namespace NS A in addition to the storage area 601 .
- a portion of the storage area 602 having a capacity of 2 TB is allocated to the namespace NS B.
- the test on the portion of the storage area 602 that is newly allocated to the namespace NS A has not been executed, the FAT completion status corresponding to the namespace NS A is changed to a value indicating that the test has not been executed.
- FIG. 9 A and FIG. 9 B illustrate an example of the test execution status management table 73 according to the embodiment of the present invention.
- test execution status management table 73 information indicating whether or not the test related to a write operation and a read operation has been executed is stored for each plane.
- a total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch0 and the bank B0 are tested areas (r1, r2, r3 and r4) on which the test related to a write operation and a read operation has been executed.
- a total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch1 and the bank B0 are also tested areas (r17, r18, r19 and r20).
- a total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch2 and the bank B0 are also tested areas (r33, r34, r35 and r36).
- a total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch3 and the bank B0 are also tested areas (r49, r50, r51 and r52).
- a part of the blocks included in the tested areas is used as the storage area 601 corresponding to the namespace NS A.
- Each of planes included in each of nonvolatile memory chips 60 that belong to combinations of the banks B1 to B3 and the four channels ch0 to ch3 is an untested area (r5 to t16, r21 to r32, r37 to r48 and r53 to r54). Blocks included in the untested areas is used as the storage area 602 corresponding to the namespace NS B.
- the capacity of the storage area 602 corresponding to the namespace NS B is approximately three times larger than the capacity of the storage area 601 corresponding to namespace NS A.
- the blocks which are used as the storage area 602 are approximately three times as many as the blocks which are used as the storage area 601 .
- the test execution status management table 73 may store information indicating an execution status of the test for a unit smaller than a plane, such as a unit of a block.
- FIG. 10 illustrates an example of the identify namespace data structure 67 which stores test information according to the embodiment of the present invention.
- the memory system 3 transmits the identify namespace data structure 67 to the host 2 .
- the identify namespace data structure 67 stores information related to a namespace designated in the identify command.
- the identify namespace data structure 67 stores various types of information related to the namespace, such as the size (the number of LBAs) and the capacity of the namespace. For example, in the initial area of 8 bytes (07:00) of the identify namespace data structure 67 , information indicating the size of the namespace is stored.
- the areas of the 384th byte to the 4095th byte of the identify namespace data structure 67 are vendor specific areas. The vendor specific areas are areas which are available for storage of information specific to a vendor of a storage device.
- the area of the 4000th byte of the identify namespace data structure 67 is used to store a FAT completion status as test information that corresponds to the namespace designated in the identify command.
- the FAT completion status indicates that the test related to a write operation and a read operation for the namespace designated in the identify command has not been executed (FFh), or is in progress (00h), or has been executed (completed: 01h).
- FIG. 11 illustrates another example of the identify namespace data structure 67 which stores the same information as test information according to the embodiment of the present invention.
- the identity namespace data structure 67 corresponding to a namespace that is designated in an identify command received from the host 2 stores test information.
- the test information includes a FAT completion status corresponding to the designated namespace, and information indicating whether or not each of multiple operations on the designated namespace has been executed.
- the FAT completion status corresponding to the designated namespace is stored in the area of the 4000th byte of the identify namespace data structure 67 corresponding to the designated namespace.
- Information indicating whether or not the test related to a write operation for the designated namespace has been executed is stored in the area of the 4002nd byte of the identify namespace data structure 67 .
- the information in the area of the 4002nd byte indicates, for example, whether or not the test related to a sequential write on the namespace has been executed.
- the sequential write is an operation for sequentially writing data from a start logical address (start LBA) to an end logical address (end LBA) of the namespace.
- Information indicating whether or not the test related to a read operation on the designated namespace has been executed is stored in the area of the 4003rd byte of the identify namespace data structure 67 .
- the information in the area of the 4003rd byte indicates, for example, whether or not the test related to a sequential read on the namespace has been executed.
- the sequential read is an operation for sequentially reading data from the start logical address (start LBA) to the end logical address (end LBA) of the namespace.
- FFh indicates “not executed”, and 00h indicates “in progress”, and 01h indicates “completed”.
- information in the area of the 4000th byte indicates 00h.
- Information in the area of the 4001st byte, information in the area of the 4002nd byte and information in the area of the 4003rd byte indicate FFh.
- the information in the area of the 4000th byte indicates 00h.
- the information in the area of the 4001st byte indicates 01h.
- the information in the area of the 4002nd byte and the information in the area of the 4003rd byte indicate FFh.
- the information in the area of the 4000th byte indicates 00h.
- the information in the area of the 4001st byte and the information in the area of the 4002nd byte indicate 01h.
- the information in the area of the 4003rd byte indicates FFh.
- the information in the area of the 4000th byte, the information in the area of the 4001st byte, the information in the area of the 4002nd byte, and the information in the area of the 4003rd byte indicate 01h.
- test information includes information indicating the specific content of the test to be executed.
- FIG. 12 illustrates an example of the identify namespace data structure 67 which stores the same information as test information indicating a write operation or a read operation, according to the embodiment of the present invention.
- the identify namespace data structure 67 that corresponds to a namespace designated in an identify command received from the host 2 stores test information.
- the test information includes information indicating the content of a test related to a write operation, and information indicating the content of a test related to a read operation.
- information indicating the content of a test related to a write operation or a read operation is stored.
- the information indicating the content of the test includes an action code, a size, an opcode, sequential/random, a FAT completion status, a start LBA, an end LBA, the number of logical blocks (NBL), execution time (EXTIM), and an interval.
- the action code is information indicating a command set issued by the host 2 .
- the action code is stored in an area having a size of 2 bytes that includes an area of the 400th byte and an area of the 401st byte of the identify namespace data structure 67 .
- the action code indicating 0001h represents Admin Command Set which is management commands defined in the NVMe standard.
- the action code indicating 0002h represents NVM Command Set which is I/O commands defined in the NVMe standard.
- the action code indicating 8000h represents Wait which is a wait operation. It should be noted that a vendor specific command which is a command specific to a vendor may be used as an I/O command.
- NVM Command Set is selected as a command set issued by the host 2 .
- the size is information indicating the number of bytes of the information that indicates the content of the test (here, 40 bytes).
- the size is stored in an area of the 402nd byte of the identify namespace data structure 67 .
- the opcode is information indicating the type of a command issued by the host 2 .
- the opcode is stored in an area of the 404th byte of the identify namespace data structure 67 .
- the opcode indicating 00h represents a flush command.
- the opcode indicating 01h represents a write command.
- the opcode indicating 02h represents a read command.
- the sequential/random is information indicating sequential access or random access.
- the sequential/random is stored in an area of the 405th byte of the identify namespace data structure 67 .
- 00h indicates sequential access
- 01h indicates random access.
- the FAT completion status is information indicating whether or not the test that is indicated by the information described in the areas from the 400th byte to the 439th byte has been executed.
- the FAT completion status is stored in an area having a size of 2 bytes that includes an area of the 406th byte and an area of the 407th byte of the identify namespace data structure 67 .
- the FAT completion status indicating FFh indicates that the test has not been executed.
- the FAT completion status indicating 00h indicates that the test is in progress.
- the FAT completion status indicating 01h indicates that the test is completed.
- the start LBA and the end LBA are information which specifies a range of LBAs accessed in the test.
- the start LBA is stored in an area that has a size of 8 bytes from the 408th byte to the 415th byte of the identify namespace data structure 67 .
- the end LBA is stored in an area that has a size of 8 bytes from the 416th byte to the 423rd byte of the identify namespace data structure 67 .
- the number of logical blocks is information indicating the number of LBAs written or read on the basis of a command issued by the host 2 .
- the NLB is stored in an area that has a size of 4 bytes from the 424th byte to the 427th byte of the identify namespace data structure 67 .
- the execution time is information indicating a time for which access to the range of the LBAs designated by the start LBA and the end LBA is continuously executed.
- the EXTIM is stored in an area that has a size of 4 bytes from the 428th byte to the 431st byte of the identify namespace data structure 67 .
- the execution time is not specified.
- a valid value other than 0 needs to be set in the EXTIM.
- the EXTIM may be ignored.
- the interval is information indicating a time interval between two successive commands issued by the host 2 .
- the interval is stored in an area that has a size of 4 bytes from the 432nd byte to the 435th byte of the identify namespace data structure 67 .
- the host 2 is configured to issue a command at freely selected time intervals.
- the host 2 On the basis of the 40 bytes of information stored as test information in the identify namespace data structure 67 , the host 2 is configured to transmit a plurality of write commands or a plurality of read commands to the memory system 3 .
- the host 2 transmits a plurality of write commands to the memory system 3 such that data is sequentially written from the start LBA to the end LBA.
- the write commands are generated on the basis of the information described in the areas from the 400th byte to the 439th byte.
- Each of the write commands includes, for example, a namespace identifier, a start LBA, a data size, and a data pointer.
- the namespace identifier identifies a namespace into which write data is written.
- the start LBA indicates the first LBA into which the write data is written.
- the data size indicates the size of the write data, in other words, the number of LBAs into which the write data is written according to the write command.
- the data pointer indicates a buffer address in the memory 22 of the host 2 in which the write data is stored.
- the host 2 transmits a plurality of read commands to the memory system 3 such that data is sequentially read from the start LBA to the end LBA.
- Each of the read commands includes, for example, a namespace identifier, a start LBA, a data size, and a data pointer.
- the namespace identifier identifies a namespace from which read data is read.
- the start LBA indicates the first LBA from which the read data is read.
- the data size indicates the size of the read data, in other words, the number of LBAs from which the read data is read.
- the data pointer indicates a buffer address in the memory 22 to which the read data is transferred.
- test information includes information indicating the content of a wait operation
- FIG. 13 illustrates an example of the identify namespace data structure 67 which stores the same information as test information indicating a wait operation, according to the embodiment of the present invention.
- the identify namespace data structure 67 corresponding to a namespace designated in an identify command received from the host 2 stores the same information as test information.
- the test information may include information indicating a wait operation in addition to information indicating a write operation and information indicating a read operation.
- An action code indicating 8000h is information representing “Wait” which is the wait operation.
- a size (here, 16 bytes) is information indicating the number of bytes of the information representing the wait operation.
- a FAT completion status is information indicating whether or not the test (wait operation) indicated by the information described in the area from the 400th byte to the 415th byte has been executed.
- the FAT completion status indicating FFh indicates that the wait operation has not been executed.
- the FAT completion status indicating 00h indicates that the wait operation is in progress.
- the FAT completion status indicating 01h indicates that the wait operation is completed.
- Waiting time is information which specifies the waiting time in seconds.
- the WTS is stored in an area having a size of 4 bytes from the 408th byte to the 411th byte of the identify namespace data structure 67 .
- Waiting time is information which specifies the waiting time in milliseconds.
- the WTMS is stored in an area having a size of 4 bytes from the 412th byte to the 415th byte of the identify namespace data structure 67 .
- FIG. 14 illustrates an example of the identify namespace data structure 67 which stores the same information as test information indicating a write operation, a wait operation and a read operation according to the embodiment of the present invention.
- the identify namespace data structure 67 corresponding to the namespace NS B stores the same information as test information.
- the test information includes information indicating the content of a test related to a write operation (write test), information indicating a wait operation, and information indicating the content of a test related to a read operation (read test).
- the information indicating the content of the test related to a write operation is stored in areas (first entry) which start from an address 190h and have a size of 40 bytes in the identify namespace data structure 67 .
- the area specified by the address 190h and an offset 0 corresponds to the area of the 400th byte from the first area of the identify namespace data structure 67 .
- each value is shown in a little endian format. For this reason, regarding a bit string having a size of two or more bytes, lower bits of the bit string are stored in an area corresponding to an address lower than an area in which higher bits of the bit string are stored.
- a value (28h) indicating that the size of information indicating the content of the test related to a write operation is 40 bytes is stored.
- an opcode (01h) indicating a write operation is stored.
- an end LBA (0000000037E3F8A7h) of the range of LBAs that is the target of the test related to a write operation is stored.
- an NLB (00000100h) indicating the number of the LBAs to which data is written by a write command is stored.
- the information indicating a wait operation is stored in areas (second entry) having a size of 16 bytes starting from an address 1B8h.
- a value (10h) indicating that the size of information indicating a wait operation is 16 bytes is stored.
- WTS 00000708h indicating that the waiting time is 1800 seconds is stored.
- the waiting time indicates a waiting time inserted between the test related to a write operation that is stored in the first entry and the test related to a read operation that is stored in the third entry.
- WTMS is not specified.
- the information indicating the content of the test related to a read operation is stored in areas (third entry) having a size of 40 bytes starting from an address 1C8h.
- a value (28h) indicating that the size of information indicating the content of the test related to a read operation is 40 bytes is stored.
- an opcode (02h) indicating a read operation is stored.
- an end LBA (0000000037E3F8A7h) in the range of the target LBAs of the test related to a read operation is stored.
- an NLB (00000100h) indicating the number of LBAs from which data is read by a single read command is stored.
- FIG. 15 and FIG. 16 are sequence diagrams illustrating the procedure of the test executed in the memory system 3 and the host 2 according to the embodiment of the present invention.
- the host 2 transmits an identify command to the memory system 3 (S 101 ).
- the identify command includes a namespace identifier specifying a certain namespace included in the nonvolatile memory 6 of the memory system 3 .
- the controller 5 of the memory system 3 transmits the identify namespace data structure 67 which stores test information to the host 2 (S 102 ). Specifically, the controller 5 identifies a namespace specified by the namespace identifier included in the received identify command. The controller 5 transmits the identify namespace data structure 67 corresponding to the identified namespace to the host 2 . The identify namespace data structure 67 stores the same information as test information related to the identified name space.
- the host 2 confirms the content of the received test information (S 103 ).
- the received test information includes: a first entry including information that indicates the content of a test related to a write operation; a second entry including information that indicates a wait operation; and a third entry including information that indicates the content of a test related to a read operation. The operation indicated by the information included in each of the entries has not been executed.
- the host 2 transmits, to the memory system 3 , a request to execute a write test on a specified namespace, and data to be written (S 104 ). Specifically, on the basis of the information included in the first entry of the test information, the host 2 generates write commands each including a namespace identifier of the specified namespace. The host 2 transmits the generated write commands to the memory system 3 as the request to execute the write test.
- the data to be written is any data generated by the host 2 .
- the controller 5 of the memory system 3 updates a FAT completion status included in the first entry with a value (00h) indicating that the test is in progress (S 105 ).
- the controller 5 of the memory system 3 writes data into the nonvolatile memory 6 (S 106 ). Specifically, on the basis of each of the write commands received from the host 2 , the controller 5 executes, as the test related to a write operation, an operation of writing the data into storage areas in the nonvolatile memory 6 that are allocated for the specified namespace. When a defective block into which data cannot be correctly written is detected while the test related to a write operation is executed, the controller 5 may execute a process of replacing the detected defective block by another block.
- the controller 5 of the memory system 3 updates the FAT completion status included in the first entry with a value (01h) indicating “completed” (S 107 ).
- the controller 5 of the memory system 3 transmits, to the host 2 , notice indicating that the test related to a write operation for the specified namespace has been successfully completed (successful completion of writing) (S 108 ).
- the host 3 transmits, to the memory system 3 , an identify command specifying the same namespace as the namespace specified by the identify command that was transmitted to the memory system 3 in S 101 (S 109 ).
- the controller 5 of the memory system 3 transmits the identify namespace data structure 67 which stores test information to the host 2 (S 110 ).
- the host 2 In response to receiving the identify namespace data structure 67 , the host 2 confirms whether or not the FAT completion status included in the first entry of the test information is a value (01h) indicating “completed” (S 111 ). When the FAT completion status included in the first entry is not a value indicating “completed”, the host 2 stops the test for the namespace.
- the controller 5 of the memory system 3 After transmitting the identify namespace data structure 67 which stores the same information as test information to the host 2 , the controller 5 of the memory system 3 updates the FAT completion status included in the second entry of the test information with a value (00h) indicating “in progress” (S 112 ). The second entry stores information indicating the wait operation.
- the wait operation is an operation of waiting for a certain time after data is written into the nonvolatile memory 6 . Accordingly, after transmitting the identify namespace data structure 67 in S 110 , the controller 5 of the memory system 3 recognizes that a wait is in progress by the host 2 .
- the controller 5 of the memory system 3 updates the FAT completion status included in the second entry with a value (01h) indicating “completed” (S 114 ).
- the host 2 After the elapse of the certain time from the start of the wait, the host 2 transmits, to the memory system 3 , an identify command which specifies the same namespace as the namespace specified by the identify command that was transmitted to the memory system 3 in S 101 (S 115 ).
- the controller 5 of the memory system 3 transmits the identify namespace data structure 67 which stores test information to the host 2 (S 116 ).
- the host 2 In response to receiving the identify namespace data structure 67 , the host 2 confirms whether or not the FAT completion status included in the second entry of the test information is the value (01h) indicating “completed” (S 117 ). When the FAT completion status included in the second entry is not the value indicating “completed”, the host 2 suspends the test for the namespace.
- the host 2 transmits, to the memory system 3 , a request to execute a read test on a specified namespace (S 118 ). Specifically, on the basis of the information included in the third entry of the test information, the host 2 generates read commands each including a namespace identifier of the specified namespace. The host 2 transmits the generated read commands to the memory system 3 as the request to execute the read test.
- the controller 5 of the memory system 3 updates the FAT completion status included in the third entry with a value (00h) indicating “in progress” (S 119 ).
- the controller 5 of the memory system 3 reads data from the nonvolatile memory 6 (S 120 ). Specifically, on the basis of each of the read commands received from the host 2 , the controller 5 reads data from storage areas in the nonvolatile memory 6 that are allocated for the specified namespace.
- the controller 5 of the memory system 3 In response to a successful completion of reading data from all the storage areas, which are allocated for the specified namespace, the controller 5 of the memory system 3 updates the FAT completion status included in the third entry to a value (01h) indicating “completed” (S 121 ).
- the controller 5 of the memory system 3 transmits, to the host 2 , the data read from the specified namespace, and notice indicating that the test related to a read operation has been successfully completed (successful completion of reading) (S 122 ).
- the host 2 When the host 2 receives the data and the successful completion of reading from the memory system 3 , the host 2 transmits, to the memory system 3 , an identify command specifying the same namespace as the namespace specified by the identify command that was transmitted to the memory system 3 in S 101 (S 123 ).
- the controller 5 of the memory system 3 transmits the identify namespace data structure 67 which stores the same information as test information to the host 2 (S 124 ).
- the host 2 In response to receiving the identify namespace data structure 67 , the host 2 confirms whether or not the FAT completion status included in the third entry of the test information is the value (01h) indicating that the test is completed (S 125 ). When the FAT completion status included in the third entry is not the value indicating “completed”, the host 2 stops the test for the namespace.
- the host 2 confirms whether or not the data written in the nonvolatile memory 6 on the basis of the write commands is correctly read from the nonvolatile memory 6 on the basis of the read commands (S 126 ). In other words, the host 2 confirms whether or not the data transmitted to the memory system 3 matches the data received from the memory system 3 .
- the host 2 determines that the specified namespace should not be used as a storage area into which user data is writable (S 127 ).
- the host 2 determines that the specified namespace is used as a storage area into which user data is writable (S 128 ).
- test information transmitted from the memory system 3 to the host 2 may be merely information indicating whether or not the test for a namespace has been executed.
- the host 2 transmits a request to execute the test to the memory system 3 on the basis of the known content of the test.
- the host 2 and the controller 5 can perform a process similar to the process explained in FIG. 15 and FIG. 16 .
- each storage area of the nonvolatile memory 6 may be a storage area other than the storage areas corresponding to the namespaces.
- the controller 5 can notify the host 2 whether each storage area is an untested area or a tested area.
- the controller 5 can execute the test on the untested area. Accordingly, the controller 5 can execute the test on the untested area in accordance with the request from the host 2 after the shipment of the memory system 3 . This enables the memory system 3 including an untested area to be shipped out. In other words, the time for executing the test in the FAT process can be reduced.
- the nonvolatile memory 6 of the memory system 3 includes an untested area and a tested area.
- the host 2 may use only the tested area.
- the host 2 may request the memory system 3 to execute the test on the untested area.
- the test on the untested area can be executed at a certain time determined by the host 2 .
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
According to one embodiment, a controller configured to manage second test information including status information indicating that a test related to a write operation and a read operation on a second storage area has not been executed. In response to receiving a command for acquiring information related to the second storage area from a host, the controller transmits the second test information to the host. When execution of the test on the second storage area is requested by the host, the controller executes the test related to the write operation and the read operation on the second storage area, and updates the status information of the second test information.
Description
- This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2022-041506, filed Mar. 16, 2022, the entire contents of which are incorporated herein by reference.
- Embodiments described herein relate generally to a memory system and an information processing system.
- In recent years, memory systems that control nonvolatile memory are widely used. As one of such memory systems, a solid state drive (SSD) that includes a NAND flash memory is known. In a final assembling and testing (FAT) process for the memory system such as the SSD, a test related to a write operation and a read operation is executed.
- As the capacity of the memory system is increased, the time for executing the test in the FAT process of the memory system is lengthened. Thus, there is a need for technology which can shorten the time for executing the test for the memory system.
-
FIG. 1 is a block diagram illustrating an example of a configuration of an information processing system that includes a memory system according to an embodiment of the present invention. -
FIG. 2 is a block diagram illustrating an example of an internal configuration of a nonvolatile memory according to the embodiment of the present invention. -
FIG. 3 is a block diagram illustrating an example of a storage area of the nonvolatile memory according to the embodiment of the present invention. -
FIG. 4 is a block diagram illustrating an example of data stored in an available area of the nonvolatile memory according to the embodiment of the present invention. -
FIG. 5 is a block diagram illustrating an example of data stored in a RAM according to the embodiment of the present invention. -
FIG. 6 is a block diagram illustrating an example of a functional configuration of a processor of a host according to the embodiment of the present invention. -
FIG. 7 is a block diagram illustrating an example of a functional configuration of a CPU according to the embodiment of the present invention. -
FIG. 8 illustrates an example of namespaces included in the nonvolatile memory before shipment of the memory system according to the embodiment of the present invention. -
FIG. 9A illustrates a first part of an example of a test execution status management table according to the embodiment of the present invention. -
FIG. 9B illustrates a second part of the example of the test execution status management table according to the embodiment of the present invention. -
FIG. 10 illustrates an example of an identify namespace data structure which stores the same information as test information according to the embodiment of the present invention. -
FIG. 11 illustrates another example of an identify namespace data structure which stores the same information as test information according to the embodiment of the present invention. -
FIG. 12 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a write operation or a read operation according to the embodiment of the present invention. -
FIG. 13 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a wait operation according to the embodiment of the present invention. -
FIG. 14 illustrates an example of an identify namespace data structure which stores the same information as test information indicating a write operation, a wait operation and a read operation according to the embodiment of the present invention. -
FIG. 15 is a sequence diagram illustrating a part of an example of the procedure of a test process executed in the host and the memory system according to the embodiment of the present invention. -
FIG. 16 is a sequence diagram illustrating a part subsequent to the example of the procedure of the test process executed in the host and the memory system according to the embodiment of the present invention. - Various embodiments will be described hereinafter with reference to the accompanying drawings.
- In general, according to one embodiment, a memory system comprises a nonvolatile memory that includes storage areas, and a controller configured to control the nonvolatile memory. The storage areas include at least a first storage area on which a test related to a write operation and a read operation has been executed, and a second storage area on which the test has not been executed. The controller manages first test information and second test information, the first test information including status information indicating that a test related to a write operation and a read operation on the first storage area has been executed, the second test information including status information indicating that a test related to a write operation and a read operation on the second storage area has not been executed. In response to receiving, from the host, a command to acquire information related to the second storage area, the controller transmits the second test information that corresponds to the second storage area to the host. When execution of the test related to the write operation and the read operation on the second storage area is requested by the host, the controller executes the test related to the write operation and the read operation on the second storage area. When the test related to the write operation and the read operation on the second storage area has been completed, the controller updates the status information of the second test information with a first value indicating that the test on the second storage area has been executed.
- A configuration of a memory system according to an embodiment of the present invention will be described.
FIG. 1 is a block diagram illustrating an example of a configuration of an information processing system that includes a memory system according to an embodiment of the present invention. Theinformation processing system 1 includes ahost 2 and amemory system 3. - The
host 2 is an information processing device. Thehost 2 is, for example, a personal computer or a server computer. Thehost 2 accesses thememory system 3. Specifically, thehost 2 transmits a write command that is a command to write data, to thememory system 3. Thehost 2 transmits a read command that is a command to read data, to thememory system 3. - The
memory system 3 is a storage device. Thememory system 3 is, for example, an SSD including a NAND flash memory. Thememory system 3 is connectable to thehost 2 through abus 4. - The
host 2 and thememory system 3 are connectable through thebus 4. Thebus 4 is, for example, a PCI Express™ bus (PCIe™ bus). Thebus 4 is mainly used for transmission of a command (I/O command or management command) from thehost 2 to thememory system 3 and transmission of a response from thememory system 3 to thehost 2. The I/O command is a command for writing or reading data to or from a nonvolatile memory. The I/O command, for example, is a write command or a read command. The management command is a command for managing thememory system 3. The management command is, for example, an identify command defined in the NVMe standard. The identify command is a command for acquiring information related to acontroller 5 included in thememory system 3 or information related to a namespace. - The communication between the
host 2 and thememory system 3 through thebus 4 is executed on the basis of, for example, the NVM Express™ (NVMe™) standard. In the communication between thehost 2 and thememory system 3 through thebus 4, one namespace may correspond to one storage area of thememory system 3. Each of a plurality of namespaces is a set of contiguous logical addresses. The logical address is an address used by thehost 2 to logically specify an address in a memory space of thememory system 3. As the logical address, a logical block address (LBA) may be used. Each of the namespaces is used by thehost 2 to access thememory system 3. - Hereinafter, an internal configuration of the
host 2 will be described. Thehost 2 includes aprocessor 21 and amemory 22. - The
processor 21 is a central processing unit (CPU). Theprocessor 21 communicates with thememory system 3 through thebus 4. Theprocessor 21 executes a software (host software) that is loaded onto thememory 22. For example, the host software is loaded from thememory system 3 onto thememory 22. The host software includes an operating system, a file system, a device driver, and an application program. - The
memory 22 is a volatile memory. Thememory 22 is, for example, a random access memory such as a dynamic random access memory (DRAM). - An internal configuration of the
memory system 3 will then be described. Thememory system 3 includes thecontroller 5, anonvolatile memory 6 and a random access memory (RAM) 7. - The
controller 5 is a memory controller. Thecontroller 5 is, for example, a control circuit such as a system-on-a-chip (SoC). Thecontroller 5 is communicatively connected to thenonvolatile memory 6. Thecontroller 5 performs writing of data into thenonvolatile memory 6. Thecontroller 5 performs reading of data from thenonvolatile memory 6. Thecontroller 5 is communicatively connected to theRAM 7. Thecontroller 5 performs writing of data to theRAM 7. Thecontroller 5 performs reading of data from theRAM 7. Thecontroller 5 performs communication with the outside through thebus 4. - The
nonvolatile memory 6 is a nonvolatile memory. Thenonvolatile memory 6 is, for example, a NAND flash memory. Thenonvolatile memory 6 is, for example, a flash memory of a two-dimensional structure or a flash memory of a three-dimensional structure. Thenonvolatile memory 6 includes multiple planes. Each of the planes includes multiple blocks. Each of the blocks is a unit of a data erase operation. The data erase operation is an operation of erasing data. Each of the blocks is also referred to as a physical block, an erase block, a flash block, or a memory block. Each of the blocks includes multiple pages. Each of the pages is a unit of a data write operation and a data read operation. The data write operation is an operation of writing data. The data read operation is an operation of reading data. Each of the pages includes a plurality of memory cells that are connected to a single word line. - The
RAM 7 is a volatile memory. TheRAM 7 is, for example, a dynamic RAM (DRAM). For example, theRAM 7 temporarily stores received write data or read data read from thenonvolatile memory 6. That is, theRAM 7 is used as a write buffer or a read buffer. - An internal configuration of the
controller 5 will then be described. Thecontroller 5 includes ahost interface circuit 51, aCPU 52, a direct memory access controller (DMAC) 53, an error correction code (ECC)circuit 54, a nonvolatilememory interface circuit 55, and aRAM interface circuit 56. Thehost interface circuit 51, theCPU 52, theDMAC 53, theECC circuit 54, the nonvolatilememory interface circuit 55, and theRAM interface circuit 56 are connected to aninternal bus 50. - The
host interface circuit 51 is a hardware interface. Thehost interface circuit 51 performs communication with the outside. Thehost interface circuit 51 receives various commands. The various commands include, for example, I/O commands and management commands. - The
CPU 52 is a processor. TheCPU 52 controls thehost interface circuit 51, theDMAC 53, theECC circuit 54, the nonvolatilememory interface circuit 55, and theRAM interface circuit 56. TheCPU 52 loads a control program (firmware) from a ROM (not shown) or thenonvolatile memory 6 onto theRAM 7. TheCPU 52 executes the control program (firmware). TheCPU 52 executes various processes on the basis of instructions included in the firmware. TheCPU 52 performs, for example, as a flash translation layer (FTL), management of data stored in thenonvolatile memory 6 and management of blocks included in thenonvolatile memory 6. The management of data stored in thenonvolatile memory 6 is, for example, management of mapping information. The mapping information is information indicative of a corresponding relationship between logical addresses and physical addresses. Each of the physical addresses is an address that indicates a physical storage location included in thenonvolatile memory 6. The management of blocks included in thenonvolatile memory 6 is, for example, management of defective blocks (bad blocks) included in thenonvolatile memory 6, wear leveling, and garbage collection. - The
DMAC 53 is a circuit which executes direct memory access (DMA). TheDMAC 53 executes data transfer between theRAM 7 and thememory 22 of thehost 2. - The
ECC circuit 54 is a circuit which performs encoding of data and decoding of data. TheECC circuit 54 adds an error correction code (ECC), as a redundant code, to data to be written into the nonvolatile memory 6 (ECC encoding). When data is read from thenonvolatile memory 6, theECC circuit 54 performs error correction of the read data by using an ECC added to the read data (ECC decoding). - The nonvolatile
memory interface circuit 55 is a circuit which controls thenonvolatile memory 6. The nonvolatilememory interface circuit 55 includes, for example, nonvolatile memory control circuits 551-0, 551-1, 551-2, and 551-3. The nonvolatile memory control circuits 551-0, 551-1, 551-2, and 551-3 are connected to channels ch0, ch1, ch2, and ch3, respectively. When thenonvolatile memory 6 includes a plurality of nonvolatile memory chips, each of the nonvolatile memory control circuits 551-0, 551-1, 551-2 and 551-3 is connected to one or more nonvolatile memory chips (flash dies) through a corresponding channel. For example, the nonvolatile memory control circuit 551-0 is connected to nonvolatile memory chips 60-000, . . . , through the channel ch0. The nonvolatile memory control circuit 551-1 is connected to nonvolatile memory chips 60-100, . . . , through the channel ch1. The nonvolatile memory control circuit 551-2 is connected to nonvolatile memory chips 60-200, . . . , through the channel ch2. The nonvolatile memory control circuit 551-3 is connected to nonvolatile memory chips 60-300, . . . , through the channel ch3. - The
RAM interface circuit 56 is a circuit which controls theRAM 7. TheRAM interface circuit 56 is, for example, a circuit which controls a DRAM. - An example of an internal configuration of the
nonvolatile memory 6 will then be described.FIG. 2 is a block diagram illustrating an example of an internal configuration of thenonvolatile memory 6 according to the embodiment of the present invention. Here, a case where the number of channels is four, the number of banks is four, and the number of planes is two will be described. - In
FIG. 2 , eight nonvolatile memory chips 60 are connected to each of the four channels ch0, ch1, ch2, and ch3. - Each of the four banks B0 to B3 includes eight nonvolatile memory chips 60. Two nonvolatile memory chips 60 connected to each of the four channels ch0, ch1, ch2, and ch3 are included in the same bank. A bank is a unit of a parallel operation in which nonvolatile memory chips 60 perform according to interleaved operations. Here, nonvolatile memory chips 60-000, 60-001, 60-100, 60-101, 60-200, 60-201, 60-300 and 60-301 constitute the bank B0. Nonvolatile memory chips 60-010, 60-011, 60-110, 60-111, 60-210, 60-211, 60-310, and 60-311 constitute the bank B1. Nonvolatile memory chips 60-020, 60-021, 60-120, 60-121, 60-220, 60-221, 60-320, and 60-321 the constitute bank B2. Nonvolatile memory chips 60-030, 60-031, 60-130, 60-131, 60-230, 60-231, 60-330, and 60-331 constitute the bank B3.
- Each of the nonvolatile memory chips 60 includes two
planes # 0 and #1. Each of the nonvolatile memory chips 60 is configured to cause two blocks to operate parallel, wherein one of the two blocks is included in theplane # 0 and the other is included in theplane # 1. - In other words, when the number of the channels is four, the number of the banks is four, and the number of the planes is two, the
nonvolatile memory 6 is configured to cause 32 blocks to operate in parallel at a maximum. - Storage areas of the
nonvolatile memory 6 will then be described.FIG. 3 is a block diagram illustrating an example of storage areas of thenonvolatile memory 6 according to the embodiment of the present invention. - The
nonvolatile memory 6 includes anavailable area 61, anuntested area 62 and anunavailable area 63. - The
available area 61 is a storage area which is available for data storage among tested areas. Each tested area is a storage area on which a test in a FAT process has been executed among storage areas included in thenonvolatile memory 6. Theavailable area 61 includes, for example, multiple blocks which are available for data writing. The test in the FAT process includes, for example, a test related to a write operation of writing data and a test related to a read operation of reading data. - The
untested area 62 is a storage area on which the test in the FAT process has not been executed among the storage areas included in thenonvolatile memory 6. - The
unavailable area 63 is a storage area which is determined as unavailable. Theunavailable area 63 includes, for example, blocks that are determined as defective blocks by thecontroller 5. - Data stored in the
available area 61 will then be described.FIG. 4 is a block diagram illustrating an example of data stored in the available area of the nonvolatile memory according to the embodiment of the present invention. - The data stored in the
available area 61 of thenonvolatile memory 6 includesuser data 64, management tables 65,test information 66, and an identifynamespace data structure 67. - The
user data 64 is data written in theavailable area 61 on the basis of a received write command. - The management tables 65 are tables in which management information is stored. The management information is information which is generated by the
controller 5 to manage thememory system 3. The management tables 65 includes, for example, a logical-to-physical address translation table (L2P table) and a test execution status management table. The L2P table is a table which stores mapping information used for logical-to-physical address translation. The test execution status management table is a table which stores information indicating an execution status of the test for each plane or each block of thenonvolatile memory 6. The details of the L2P table and the test execution status management table are described later. - The
test information 66 is information related to the test on each of the storage areas included in thenonvolatile memory 6. Thetest information 66 includes, for each of storage areas of thenonvolatile memory 6 that correspond to namespaces, respectively, information indicating whether or not the test in the FAT process has been executed. Thetest information 66 is information which is provided to thehost 2 to notify thehost 2 of tested areas and untested areas. Thetest information 66 may include, for each storage area corresponding to a namespace, information indicating whether or not the test related to a write operation has been executed, and information indicating whether or not the test related to a read operation has been executed. Further, thetest information 66 may include, for each storage area corresponding to a namespace, information indicating the content of the test related to a write operation, and information indicating the content of the test related to a read operation. Thetest information 66 is individually managed for each storage area included in thenonvolatile memory 6. In other words, a plurality of items oftest information 66 that correspond to the storage areas included in thenonvolatile memory 6 in a one-to-one relationship are stored in thenonvolatile memory 6. - The identify
namespace data structure 67 is a data structure used to describe various types of information related to capabilities and settings of a namespace in a predetermined format. The identifynamespace data structure 67 corresponds to a namespace. The identifynamespace data structure 67 includes, for example, a vendor specific area. The vendor specific area is an area in which information specific to a vendor can be described. In a case where the identifynamespace data structure 67 includes a vendor specific area, the same information as thetest information 66 is described in the vendor specific area. Thereby, the identifynamespace data structure 67 stores the same information as thetest information 66. - Data stored in the
RAM 7 will then be described.FIG. 5 is a block diagram illustrating an example of data stored in theRAM 7 according to the embodiment of the present invention. - The data stored in the
RAM 7 includesuser data 71, an L2P table 72, a test execution status management table 73, and testinformation 74. - The
user data 71 includes, for example, write data to be written into thenonvolatile memory 6, and read data read from thenonvolatile memory 6. - The L2P table 72 is a logical-to-physical address translation table which stores a correspondence relationship between logical addresses and the physical addresses of the
nonvolatile memory 6 in a unit of predetermined size such as a sector. The L2P table 72 is loaded from the management tables 65 stored in thenonvolatile memory 6 onto theRAM 7. - The test execution status management table 73 is a table which stores, for each plane or each block of the
nonvolatile memory 6, information indicating an execution status of the test. The test execution status management table 73 stores information indicating a plane or a block on which the test has been executed, and information indicating a plane or a block on which the test has not been executed. The test execution status management table 73 is loaded from the management tables 65 stored in thenonvolatile memory 6 onto theRAM 7. - The
test information 74 is information related to the test. Thetest information 74 is the same data as part of thetest information 66 stored in thenonvolatile memory 6. Thetest information 74 is loaded from thenonvolatile memory 6 onto theRAM 7. - A functional configuration of the
processor 21 of thehost 2 will then be described.FIG. 6 is a block diagram illustrating the functional configuration of theprocessor 21 of thehost 2 according to the embodiment of the present invention. - The
processor 21 includes acommand issuance unit 211 and atesting unit 212. Thecommand issuance unit 211 and thetesting unit 212 may be partly or wholly realized by another hardware of thehost 2. - The
command issuance unit 211 issues various commands to thememory system 3. The various commands include I/O commands and management commands. The I/O commands include a write command and a read command. The management commands includes, for example, an identify command. Thecommand issuance unit 211 is configured to transmit an identify command that specifies a certain namespace, to thememory system 3. - The
testing unit 212 requests thememory system 3 to execute the test on a storage area corresponding to a namespace. Thetesting unit 212 requests thememory system 3 to execute the test on a storage area corresponding to a namespace on the basis of thetest information 66 received from thememory system 3. Thetesting unit 212 may know in advance a plurality of operations which should be executed as the test on each storage area. Thetesting unit 212 may know the operations to be executed as the test on the basis of information that is included in the receivedtest information 66 and indicates the content of the test. Thetesting unit 212 determines the operations to be executed. Thetesting unit 212 instructs thecommand issuance unit 211 to issue commands that correspond to the determined operations. - A functional configuration of the
CPU 52 of thecontroller 5 will then be described.FIG. 7 is a block diagram illustrating the functional configuration of theCPU 52 according to the embodiment of the present invention. - The
CPU 52 includes a read/write control unit 521, adata arrangement unit 522, ablock management unit 523, and afailure determination unit 524. The read/write control unit 521, thedata arrangement unit 522, theblock management unit 523, and thefailure determination unit 524 may be partly or wholly realized by another hardware of thecontroller 5. - The read/
write control unit 521 executes a read process and a write process. The read process is a process of instructing thenonvolatile memory 6 to execute a data read operation. The write process is a process of instructing thenonvolatile memory 6 to execute a data write operation. The write process is a process of writing data into thenonvolatile memory 6. Specifically, the read/write control unit 521 instructs thenonvolatile memory 6 to execute a data read operation on the basis of a read command. The read/write control unit 521 instructs thenonvolatile memory 6 to execute a data write operation on the basis of a write command. In addition, the read/write control unit 521 executes a completion response generation process. The completion response generation process is a process of generating a command completion response to be indicated to thehost 2. In a case where a storage area designated in a read command or a write command is anuntested area 62, the read/write control unit 521 executes a warning generation process. The warning generation process is a process of generating a warning that notifies thehost 2 that theuntested area 62 is accessed. Specifically, the read/write control unit 521 may generate a command completion response including a warning. - The
data arrangement unit 522 executes garbage collection. For example, thedata arrangement unit 522 executes garbage collection on the basis of the fact that the number of free blocks included in thenonvolatile memory 6 falls below a threshold. The free blocks each refer to a block not including valid data. The valid data means data stored in a physical storage location that is indicated by a physical address referred to from the L2P table 72, in other words, data associated with a logical address. - The
block management unit 523 manages each of the blocks included in thenonvolatile memory 6. Theblock management unit 523 updates the L2P table 72 on the basis of a data write operation based on a write command, or on the basis of garbage collection executed by thedata arrangement unit 522. When a block which does not include valid data arises, theblock management unit 523 registers the block with theavailable area 61 as a free block. - The
block management unit 523 manages an execution state of the test for each plane or each block included in thenonvolatile memory 6. When the test on a storage area has been completed, theblock management unit 523 updates the test execution status management table 73 such that the execution status of the test for each plane or each block included in the storage area indicates that the test has been executed. - The
failure determination unit 524 determines whether or not each block included in a storage area on which the test is in progress is a defective block. The defective block is a block in which data writing or reading cannot be executed correctly. When a defective block is detected in the test being executed on a storage area, thefailure determination unit 524 instructs theblock management unit 523 to register the detected defective block with theunavailable area 63. - The relationship between the storage areas of the
nonvolatile memory 6 and namespaces will be described.FIG. 8 illustrates an example of the relationship between the storage areas of thenonvolatile memory 6 and the namespaces before shipment of thememory system 3 according to the embodiment of the present invention. Here, astorage area 601 and astorage area 602 are included in thenonvolatile memory 6. It is assumed that the capacity of thenonvolatile memory 6 is 4 TB. Thestorage area 601 is a storage area on which the test related to a write operation and a read operation has been executed. It is assumed that the capacity of thestorage area 601 is 1 TB. Thestorage area 601 is a storage area corresponding to a namespace NS A. - The
storage area 602 is a storage area on which the test related to a write operation and a read operation has not been executed. It is assumed that the capacity of thestorage area 602 is 3 TB. Thestorage area 602 is a storage area corresponding to a namespace NS B. - The namespace NS A is identified by a namespace identifier “NSID=1”. In a case where the capacity per LBA is 4096 KB, the namespace NS A includes, for example, a set of contiguous LBAs from LBA=0 to LBA=DF8FE29h. The namespace NS A is a namespace for which the test has been executed. A namespace for which the test has been executed is a namespace for which the test on a corresponding storage area has been executed. In addition, a FAT completion status is associated with the namespace NS A. The FAT completion status is status information indicating whether the test related to a write operation and a read operation for a namespace has been executed. The FAT completion status is included in, for example, an identify namespace data structure corresponding to the namespace NS A as part of test information. Since the namespace NS A is a namespace for which the test has been executed, a value indicating the fact is associated with the namespace NS A as a FAT completion status. The FAT completion status corresponding to the namespace NS A is, for example, 01h.
- The namespace NS B is identified by a namespace identifier “NSID=2”. The namespace NS B includes, for example, a set of contiguous LBAs from LBA=DF8FE2Ah to LBA=37E3F8A7h. The namespace NS B is a namespace for which the test has not been executed. A namespace for which the test has not been executed is a namespace for which the test on a corresponding storage area has not been executed. A FAT completion status is associated with the namespace NS B. The FAT completion status is included in, for example, an identify namespace data structure corresponding to the namespace NS B as part of test information. Since the namespace NS B is a namespace for which the test has not been executed, a value indicating the fact is associated with the namespace NS B as a FAT completion status. The FAT completion status corresponding to the namespace NS B is, for example, FFh.
- Here, when the namespace NS A is extended to, for example, a size corresponding to a capacity of 2 TB, a storage area having a capacity of 2 TB in total is associated with the namespace NS A. When the namespace NS B is reduced to, for example, a size corresponding to a capacity of 2 TB, a storage area having a capacity of 2 TB is associated with the namespace NS B. A portion of the
storage area 602 having a capacity of 1 TB is allocated to the namespace NS A in addition to thestorage area 601. A portion of thestorage area 602 having a capacity of 2 TB is allocated to the namespace NS B. In this case, the test on the portion of thestorage area 602 that is newly allocated to the namespace NS A has not been executed, the FAT completion status corresponding to the namespace NS A is changed to a value indicating that the test has not been executed. - The test execution status management table 73 will be described.
FIG. 9A andFIG. 9B illustrate an example of the test execution status management table 73 according to the embodiment of the present invention. - In the test execution status management table 73, information indicating whether or not the test related to a write operation and a read operation has been executed is stored for each plane.
- A total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch0 and the bank B0 are tested areas (r1, r2, r3 and r4) on which the test related to a write operation and a read operation has been executed. A total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch1 and the bank B0 are also tested areas (r17, r18, r19 and r20). A total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch2 and the bank B0 are also tested areas (r33, r34, r35 and r36). Moreover, a total of four planes included in two nonvolatile memory chips 60 that belong to a combination of the channel ch3 and the bank B0 are also tested areas (r49, r50, r51 and r52).
- A part of the blocks included in the tested areas is used as the
storage area 601 corresponding to the namespace NS A. - Each of planes included in each of nonvolatile memory chips 60 that belong to combinations of the banks B1 to B3 and the four channels ch0 to ch3 is an untested area (r5 to t16, r21 to r32, r37 to r48 and r53 to r54). Blocks included in the untested areas is used as the
storage area 602 corresponding to the namespace NS B. - The capacity of the
storage area 602 corresponding to the namespace NS B is approximately three times larger than the capacity of thestorage area 601 corresponding to namespace NS A. Thus, the blocks which are used as thestorage area 602 are approximately three times as many as the blocks which are used as thestorage area 601. - The test execution status management table 73 may store information indicating an execution status of the test for a unit smaller than a plane, such as a unit of a block.
- Hereinafter, the identify
namespace data structure 67 transmitted by thememory system 3 to thehost 2 in response to receiving an identify command from thehost 2 will be described.FIG. 10 illustrates an example of the identifynamespace data structure 67 which stores test information according to the embodiment of the present invention. - When a namespace identifier is included in an identify command received from the
host 2, thememory system 3 transmits the identifynamespace data structure 67 to thehost 2. - The identify
namespace data structure 67 stores information related to a namespace designated in the identify command. The identifynamespace data structure 67 stores various types of information related to the namespace, such as the size (the number of LBAs) and the capacity of the namespace. For example, in the initial area of 8 bytes (07:00) of the identifynamespace data structure 67, information indicating the size of the namespace is stored. The areas of the 384th byte to the 4095th byte of the identifynamespace data structure 67 are vendor specific areas. The vendor specific areas are areas which are available for storage of information specific to a vendor of a storage device. - For example, the area of the 4000th byte of the identify
namespace data structure 67 is used to store a FAT completion status as test information that corresponds to the namespace designated in the identify command. The FAT completion status indicates that the test related to a write operation and a read operation for the namespace designated in the identify command has not been executed (FFh), or is in progress (00h), or has been executed (completed: 01h). - Test information including a plurality of completion statuses will then be described.
FIG. 11 illustrates another example of the identifynamespace data structure 67 which stores the same information as test information according to the embodiment of the present invention. - The identity
namespace data structure 67 corresponding to a namespace that is designated in an identify command received from thehost 2 stores test information. The test information includes a FAT completion status corresponding to the designated namespace, and information indicating whether or not each of multiple operations on the designated namespace has been executed. - The FAT completion status corresponding to the designated namespace is stored in the area of the 4000th byte of the identify
namespace data structure 67 corresponding to the designated namespace. - Information indicating whether or not a format operation on the designated namespace has been executed is stored in the area of the 4001st byte of the identify
namespace data structure 67. - Information indicating whether or not the test related to a write operation for the designated namespace has been executed is stored in the area of the 4002nd byte of the identify
namespace data structure 67. The information in the area of the 4002nd byte indicates, for example, whether or not the test related to a sequential write on the namespace has been executed. The sequential write is an operation for sequentially writing data from a start logical address (start LBA) to an end logical address (end LBA) of the namespace. - Information indicating whether or not the test related to a read operation on the designated namespace has been executed is stored in the area of the 4003rd byte of the identify
namespace data structure 67. The information in the area of the 4003rd byte indicates, for example, whether or not the test related to a sequential read on the namespace has been executed. The sequential read is an operation for sequentially reading data from the start logical address (start LBA) to the end logical address (end LBA) of the namespace. - In any information, FFh indicates “not executed”, and 00h indicates “in progress”, and 01h indicates “completed”.
- When none of a format operation, the test related to a write operation and the test related to a read operation has been executed, information in the area of the 4000th byte indicates 00h. Information in the area of the 4001st byte, information in the area of the 4002nd byte and information in the area of the 4003rd byte indicate FFh.
- When a format operation has been executed, and both the test related to a write operation and the test related to a read operation have not been executed, the information in the area of the 4000th byte indicates 00h. The information in the area of the 4001st byte indicates 01h. The information in the area of the 4002nd byte and the information in the area of the 4003rd byte indicate FFh.
- When a format operation and the test related to a write operation has been executed, and the test related to a read operation has not been executed, the information in the area of the 4000th byte indicates 00h. The information in the area of the 4001st byte and the information in the area of the 4002nd byte indicate 01h. The information in the area of the 4003rd byte indicates FFh.
- When a format operation, the test related to a write operation and the test related to a read operation have been executed, the information in the area of the 4000th byte, the information in the area of the 4001st byte, the information in the area of the 4002nd byte, and the information in the area of the 4003rd byte indicate 01h.
- Hereinafter, a case where test information includes information indicating the specific content of the test to be executed will be described.
FIG. 12 illustrates an example of the identifynamespace data structure 67 which stores the same information as test information indicating a write operation or a read operation, according to the embodiment of the present invention. - The identify
namespace data structure 67 that corresponds to a namespace designated in an identify command received from thehost 2 stores test information. The test information includes information indicating the content of a test related to a write operation, and information indicating the content of a test related to a read operation. - Here, in areas having a size of 40 bytes from the 400th byte to the 439th byte, information indicating the content of a test related to a write operation or a read operation is stored. The information indicating the content of the test includes an action code, a size, an opcode, sequential/random, a FAT completion status, a start LBA, an end LBA, the number of logical blocks (NBL), execution time (EXTIM), and an interval.
- The action code is information indicating a command set issued by the
host 2. The action code is stored in an area having a size of 2 bytes that includes an area of the 400th byte and an area of the 401st byte of the identifynamespace data structure 67. The action code indicating 0001h represents Admin Command Set which is management commands defined in the NVMe standard. The action code indicating 0002h represents NVM Command Set which is I/O commands defined in the NVMe standard. The action code indicating 8000h represents Wait which is a wait operation. It should be noted that a vendor specific command which is a command specific to a vendor may be used as an I/O command. - Here, the action code is set to 0002h. In this case, NVM Command Set is selected as a command set issued by the
host 2. - The size is information indicating the number of bytes of the information that indicates the content of the test (here, 40 bytes). The size is stored in an area of the 402nd byte of the identify
namespace data structure 67. - The opcode is information indicating the type of a command issued by the
host 2. The opcode is stored in an area of the 404th byte of the identifynamespace data structure 67. In the case of NVM command Set, the opcode indicating 00h represents a flush command. The opcode indicating 01h represents a write command. The opcode indicating 02h represents a read command. - The sequential/random is information indicating sequential access or random access. The sequential/random is stored in an area of the 405th byte of the identify
namespace data structure 67. In the sequential/random, 00h indicates sequential access, and 01h indicates random access. - The FAT completion status is information indicating whether or not the test that is indicated by the information described in the areas from the 400th byte to the 439th byte has been executed. The FAT completion status is stored in an area having a size of 2 bytes that includes an area of the 406th byte and an area of the 407th byte of the identify
namespace data structure 67. The FAT completion status indicating FFh indicates that the test has not been executed. The FAT completion status indicating 00h indicates that the test is in progress. The FAT completion status indicating 01h indicates that the test is completed. - The start LBA and the end LBA are information which specifies a range of LBAs accessed in the test. The start LBA is stored in an area that has a size of 8 bytes from the 408th byte to the 415th byte of the identify
namespace data structure 67. The end LBA is stored in an area that has a size of 8 bytes from the 416th byte to the 423rd byte of the identifynamespace data structure 67. - The number of logical blocks (NLB) is information indicating the number of LBAs written or read on the basis of a command issued by the
host 2. The NLB is stored in an area that has a size of 4 bytes from the 424th byte to the 427th byte of the identifynamespace data structure 67. - The execution time (EXTIM) is information indicating a time for which access to the range of the LBAs designated by the start LBA and the end LBA is continuously executed. The EXTIM is stored in an area that has a size of 4 bytes from the 428th byte to the 431st byte of the identify
namespace data structure 67. When the EXTIM is 0, the execution time is not specified. In the case of random access, a valid value other than 0 needs to be set in the EXTIM. In the case of sequential access, the EXTIM may be ignored. - The interval is information indicating a time interval between two successive commands issued by the
host 2. The interval is stored in an area that has a size of 4 bytes from the 432nd byte to the 435th byte of the identifynamespace data structure 67. When the interval is 0, thehost 2 is configured to issue a command at freely selected time intervals. - On the basis of the 40 bytes of information stored as test information in the identify
namespace data structure 67, thehost 2 is configured to transmit a plurality of write commands or a plurality of read commands to thememory system 3. - In a case where the action code indicates 0002h, the opcode indicates 01h, and the sequential/random indicates 00h, the
host 2 transmits a plurality of write commands to thememory system 3 such that data is sequentially written from the start LBA to the end LBA. The write commands are generated on the basis of the information described in the areas from the 400th byte to the 439th byte. Each of the write commands includes, for example, a namespace identifier, a start LBA, a data size, and a data pointer. The namespace identifier identifies a namespace into which write data is written. The start LBA indicates the first LBA into which the write data is written. The data size indicates the size of the write data, in other words, the number of LBAs into which the write data is written according to the write command. The data pointer indicates a buffer address in thememory 22 of thehost 2 in which the write data is stored. - In a case where the action code indicates 0002h, and the opcode indicates 02h, and the sequential/random indicates 00h, the
host 2 transmits a plurality of read commands to thememory system 3 such that data is sequentially read from the start LBA to the end LBA. Each of the read commands includes, for example, a namespace identifier, a start LBA, a data size, and a data pointer. The namespace identifier identifies a namespace from which read data is read. The start LBA indicates the first LBA from which the read data is read. The data size indicates the size of the read data, in other words, the number of LBAs from which the read data is read. The data pointer indicates a buffer address in thememory 22 to which the read data is transferred. - Hereinafter, a case where test information includes information indicating the content of a wait operation will be described.
FIG. 13 illustrates an example of the identifynamespace data structure 67 which stores the same information as test information indicating a wait operation, according to the embodiment of the present invention. - The identify
namespace data structure 67 corresponding to a namespace designated in an identify command received from thehost 2 stores the same information as test information. The test information may include information indicating a wait operation in addition to information indicating a write operation and information indicating a read operation. - Here, in an area having a size of 16 bytes from the 400th byte to the 415th byte, information representing a wait operation is stored.
- An action code indicating 8000h is information representing “Wait” which is the wait operation.
- A size (here, 16 bytes) is information indicating the number of bytes of the information representing the wait operation.
- A FAT completion status is information indicating whether or not the test (wait operation) indicated by the information described in the area from the 400th byte to the 415th byte has been executed. The FAT completion status indicating FFh indicates that the wait operation has not been executed. The FAT completion status indicating 00h indicates that the wait operation is in progress. The FAT completion status indicating 01h indicates that the wait operation is completed.
- Waiting time (WTS) is information which specifies the waiting time in seconds. The WTS is stored in an area having a size of 4 bytes from the 408th byte to the 411th byte of the identify
namespace data structure 67. - Waiting time (WTMS) is information which specifies the waiting time in milliseconds. The WTMS is stored in an area having a size of 4 bytes from the 412th byte to the 415th byte of the identify
namespace data structure 67. - Hereinafter, the identify
namespace data structure 67 which stores test information indicating the content of a test related to a write operation, the content of a wait operation and the content of a test related to a read operation will be described.FIG. 14 illustrates an example of the identifynamespace data structure 67 which stores the same information as test information indicating a write operation, a wait operation and a read operation according to the embodiment of the present invention. - Here, it is assumed a case where an identify command which specifies the namespace identifier NSID2 of the namespace NS B is received from the
host 2. - The identify
namespace data structure 67 corresponding to the namespace NS B stores the same information as test information. The test information includes information indicating the content of a test related to a write operation (write test), information indicating a wait operation, and information indicating the content of a test related to a read operation (read test). - The information indicating the content of the test related to a write operation is stored in areas (first entry) which start from an
address 190h and have a size of 40 bytes in the identifynamespace data structure 67. The area specified by theaddress 190h and an offset 0 corresponds to the area of the 400th byte from the first area of the identifynamespace data structure 67. Here, each value is shown in a little endian format. For this reason, regarding a bit string having a size of two or more bytes, lower bits of the bit string are stored in an area corresponding to an address lower than an area in which higher bits of the bit string are stored. - In areas of 2 bytes specified by the
address 190h and twooffsets - In an area of 1 byte specified by the
address 190h and an offset 2, a value (28h) indicating that the size of information indicating the content of the test related to a write operation is 40 bytes is stored. - In an area of 1 byte specified by the
address 190h and an offset 4, an opcode (01h) indicating a write operation is stored. - In an area of 1 byte specified by the
address 190h and an offset 5, a value (00h) indicating sequential access is stored. - In areas of 2 bytes specified by the
address 190h and twooffsets - In areas of 8 bytes specified by an
address 198h and eightoffsets 0 to 7, a start LBA (000000000DF8FE2Ah) of a range of LBAs that is a target of the test related to a write operation is stored. - In areas of 8 bytes specified by an address 1A0h and eight
offsets 0 to 7, an end LBA (0000000037E3F8A7h) of the range of LBAs that is the target of the test related to a write operation is stored. - In areas of 4 bytes specified by the address 1A8h and four
offsets 0 to 3, an NLB (00000100h) indicating the number of the LBAs to which data is written by a write command is stored. - Here, neither execution time (1ACh to 1AFh) nor an interval (1B0h to 1B7h) is specified.
- The information indicating a wait operation is stored in areas (second entry) having a size of 16 bytes starting from an address 1B8h.
- In areas of 2 bytes specified by the address 1B8h and two
offsets - In an area of 1 byte specified by the address 1B8h and offset 2, a value (10h) indicating that the size of information indicating a wait operation is 16 bytes is stored.
- In areas of 2 bytes specified by the address 1B8h and two
offsets - In areas of 4 bytes specified by an address 1C0h and four
offsets 0 to 3, WTS (00000708h) indicating that the waiting time is 1800 seconds is stored. The waiting time indicates a waiting time inserted between the test related to a write operation that is stored in the first entry and the test related to a read operation that is stored in the third entry. - Here, WTMS is not specified.
- The information indicating the content of the test related to a read operation is stored in areas (third entry) having a size of 40 bytes starting from an address 1C8h.
- In the areas of 2 bytes specified by an address 1C8h and two
offsets - In the area of 1 byte specified by the address 1C8h and offset 2, a value (28h) indicating that the size of information indicating the content of the test related to a read operation is 40 bytes is stored.
- In the area of 1 byte specified by the address 1C8h and offset 4, an opcode (02h) indicating a read operation is stored.
- In the area of 1 byte specified by the address 1C8h and offset 5, a value (00h) indicating sequential access is stored.
- In the areas of 2 bytes specified by the address 1C8h and two
offsets - In the areas of 8 bytes specified by an address 1D0h and eight
offsets 0 to 7, a starting LBA (000000000DF8FE2Ah) in the range of the target LBAs of the test related to a read operation is stored. - In the areas of 8 bytes specified by an address 1D8h and eight
offsets 0 to 7, an end LBA (0000000037E3F8A7h) in the range of the target LBAs of the test related to a read operation is stored. - In the areas of 4 bytes specified by an address 1E0h and four
offsets 0 to 3, an NLB (00000100h) indicating the number of LBAs from which data is read by a single read command is stored. - Here, neither execution time (1E4h to 1E7h) nor an interval (1E8h to 1E3h) is specified.
- Next, the test executed in the
memory system 3 and thehost 2 will be described.FIG. 15 andFIG. 16 are sequence diagrams illustrating the procedure of the test executed in thememory system 3 and thehost 2 according to the embodiment of the present invention. - For example, when the
memory system 3 is connected to thehost 2, thehost 2 transmits an identify command to the memory system 3 (S101). The identify command includes a namespace identifier specifying a certain namespace included in thenonvolatile memory 6 of thememory system 3. - In response to receiving the identify command, the
controller 5 of thememory system 3 transmits the identifynamespace data structure 67 which stores test information to the host 2 (S102). Specifically, thecontroller 5 identifies a namespace specified by the namespace identifier included in the received identify command. Thecontroller 5 transmits the identifynamespace data structure 67 corresponding to the identified namespace to thehost 2. The identifynamespace data structure 67 stores the same information as test information related to the identified name space. - The
host 2 confirms the content of the received test information (S103). The received test information includes: a first entry including information that indicates the content of a test related to a write operation; a second entry including information that indicates a wait operation; and a third entry including information that indicates the content of a test related to a read operation. The operation indicated by the information included in each of the entries has not been executed. - On the basis of the information included in the first entry of the test information, the
host 2 transmits, to thememory system 3, a request to execute a write test on a specified namespace, and data to be written (S104). Specifically, on the basis of the information included in the first entry of the test information, thehost 2 generates write commands each including a namespace identifier of the specified namespace. Thehost 2 transmits the generated write commands to thememory system 3 as the request to execute the write test. The data to be written is any data generated by thehost 2. - When the
host 2 requests thememory system 3 to execute the test related to a write operation on the namespace, thecontroller 5 of thememory system 3 updates a FAT completion status included in the first entry with a value (00h) indicating that the test is in progress (S105). - The
controller 5 of thememory system 3 writes data into the nonvolatile memory 6 (S106). Specifically, on the basis of each of the write commands received from thehost 2, thecontroller 5 executes, as the test related to a write operation, an operation of writing the data into storage areas in thenonvolatile memory 6 that are allocated for the specified namespace. When a defective block into which data cannot be correctly written is detected while the test related to a write operation is executed, thecontroller 5 may execute a process of replacing the detected defective block by another block. - When writing of the data into all the storage areas, which are allocated for the specified namespace, has been successfully completed, the
controller 5 of thememory system 3 updates the FAT completion status included in the first entry with a value (01h) indicating “completed” (S107). - The
controller 5 of thememory system 3 transmits, to thehost 2, notice indicating that the test related to a write operation for the specified namespace has been successfully completed (successful completion of writing) (S108). - When the successful completion of writing is received from the
memory system 3, thehost 3 transmits, to thememory system 3, an identify command specifying the same namespace as the namespace specified by the identify command that was transmitted to thememory system 3 in S101 (S109). - In response to receiving the identify command, the
controller 5 of thememory system 3 transmits the identifynamespace data structure 67 which stores test information to the host 2 (S110). - In response to receiving the identify
namespace data structure 67, thehost 2 confirms whether or not the FAT completion status included in the first entry of the test information is a value (01h) indicating “completed” (S111). When the FAT completion status included in the first entry is not a value indicating “completed”, thehost 2 stops the test for the namespace. - After transmitting the identify
namespace data structure 67 which stores the same information as test information to thehost 2, thecontroller 5 of thememory system 3 updates the FAT completion status included in the second entry of the test information with a value (00h) indicating “in progress” (S112). The second entry stores information indicating the wait operation. The wait operation is an operation of waiting for a certain time after data is written into thenonvolatile memory 6. Accordingly, after transmitting the identifynamespace data structure 67 in S110, thecontroller 5 of thememory system 3 recognizes that a wait is in progress by thehost 2. - The
host 2 executes a wait (S113). Specifically, thehost 2 waits for a certain time (here, 1800 seconds=30 minutes) on the basis of the waiting time (WTS or WTMS) included in the second entry of the test information. - After the elapse of the certain time from the transmission of the identify
namespace data structure 67 in S110, thecontroller 5 of thememory system 3 updates the FAT completion status included in the second entry with a value (01h) indicating “completed” (S114). - After the elapse of the certain time from the start of the wait, the
host 2 transmits, to thememory system 3, an identify command which specifies the same namespace as the namespace specified by the identify command that was transmitted to thememory system 3 in S101 (S115). - In response to receiving the identify command, the
controller 5 of thememory system 3 transmits the identifynamespace data structure 67 which stores test information to the host 2 (S116). - In response to receiving the identify
namespace data structure 67, thehost 2 confirms whether or not the FAT completion status included in the second entry of the test information is the value (01h) indicating “completed” (S117). When the FAT completion status included in the second entry is not the value indicating “completed”, thehost 2 suspends the test for the namespace. - On the basis of the information included in the third entry of the test information, the
host 2 transmits, to thememory system 3, a request to execute a read test on a specified namespace (S118). Specifically, on the basis of the information included in the third entry of the test information, thehost 2 generates read commands each including a namespace identifier of the specified namespace. Thehost 2 transmits the generated read commands to thememory system 3 as the request to execute the read test. - When the
host 2 requests thememory system 3 to execute the test related to a read operation on the specified namespace, thecontroller 5 of thememory system 3 updates the FAT completion status included in the third entry with a value (00h) indicating “in progress” (S119). - The
controller 5 of thememory system 3 reads data from the nonvolatile memory 6 (S120). Specifically, on the basis of each of the read commands received from thehost 2, thecontroller 5 reads data from storage areas in thenonvolatile memory 6 that are allocated for the specified namespace. - In response to a successful completion of reading data from all the storage areas, which are allocated for the specified namespace, the
controller 5 of thememory system 3 updates the FAT completion status included in the third entry to a value (01h) indicating “completed” (S121). - The
controller 5 of thememory system 3 transmits, to thehost 2, the data read from the specified namespace, and notice indicating that the test related to a read operation has been successfully completed (successful completion of reading) (S122). - When the
host 2 receives the data and the successful completion of reading from thememory system 3, thehost 2 transmits, to thememory system 3, an identify command specifying the same namespace as the namespace specified by the identify command that was transmitted to thememory system 3 in S101 (S123). - In response to receiving the identify command, the
controller 5 of thememory system 3 transmits the identifynamespace data structure 67 which stores the same information as test information to the host 2 (S124). - In response to receiving the identify
namespace data structure 67, thehost 2 confirms whether or not the FAT completion status included in the third entry of the test information is the value (01h) indicating that the test is completed (S125). When the FAT completion status included in the third entry is not the value indicating “completed”, thehost 2 stops the test for the namespace. - When the FAT completion status included in the third entry is the value indicating a completion, the
host 2 confirms whether or not the data written in thenonvolatile memory 6 on the basis of the write commands is correctly read from thenonvolatile memory 6 on the basis of the read commands (S126). In other words, thehost 2 confirms whether or not the data transmitted to thememory system 3 matches the data received from thememory system 3. - When the data written in the
nonvolatile memory 6 is not correctly read from the nonvolatile memory 6 (S126 No), thehost 2 determines that the specified namespace should not be used as a storage area into which user data is writable (S127). - When the data written in the
nonvolatile memory 6 is correctly read from the nonvolatile memory 6 (S126 Yes), thehost 2 determines that the specified namespace is used as a storage area into which user data is writable (S128). - By the above procedure, the testing process for the namespace NS B is completed.
- Here, the procedure of the testing process in a case where test information includes the content of a test related to a write operation, the content of a wait operation and the content of a test related to a read operation is described. It should be noted that the test information transmitted from the
memory system 3 to thehost 2 may be merely information indicating whether or not the test for a namespace has been executed. When the test related to a write operation and a read operation for the namespace has not been executed, thehost 2 transmits a request to execute the test to thememory system 3 on the basis of the known content of the test. - In this way, even when the test information is merely information indicating whether or not the test for a namespace has been executed, the
host 2 and thecontroller 5 can perform a process similar to the process explained inFIG. 15 andFIG. 16 . - Also, a case where the
nonvolatile memory 6 includes a plurality of storage areas each corresponding to one of a plurality of namespaces is described. However, each storage area of thenonvolatile memory 6 may be a storage area other than the storage areas corresponding to the namespaces. - As explained above, according to the embodiment of the present invention, the
controller 5 can notify thehost 2 whether each storage area is an untested area or a tested area. When execution of a test on an untested area is requested by thehost 2, thecontroller 5 can execute the test on the untested area. Accordingly, thecontroller 5 can execute the test on the untested area in accordance with the request from thehost 2 after the shipment of thememory system 3. This enables thememory system 3 including an untested area to be shipped out. In other words, the time for executing the test in the FAT process can be reduced. - Since the time required for the FAT process for each
memory system 3 is shortened, the number ofmemory systems 3 to be shipped can be increased, and the production costs of thememory systems 3 can be reduced. - The
nonvolatile memory 6 of thememory system 3 includes an untested area and a tested area. Thus, for example, thehost 2 may use only the tested area. When use of the untested area is needed, thehost 2 may request thememory system 3 to execute the test on the untested area. In this way, the test on the untested area can be executed at a certain time determined by thehost 2. As a result, it is possible to reduce the processing load on thehost 2 related to the test on the untested area. - While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel devices and methods described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modification as would fall within the scope and spirit of the inventions.
Claims (12)
1. A memory system comprising:
a nonvolatile memory that includes storage areas; and
a controller configured to control the nonvolatile memory, wherein
the storage areas include at least a first storage area on which a test related to a write operation and a read operation has been executed, and a second storage area on which the test has not been executed, and
the controller is configured to:
manage first test information and second test information, the first test information including status information indicating that a test related to a write operation and a read operation on the first storage area has been executed, the second test information including status information indicating that a test related to a write operation and a read operation on the second storage area has not been executed;
in response to receiving, from the host, a command to acquire information related to the second storage area, transmit the second test information that corresponds to the second storage area to the host;
when execution of the test related to the write operation and the read operation on the second storage area is requested by the host, execute the test related to the write operation and the read operation on the second storage area; and
when the test related to the write operation and the read operation on the second storage area has been completed, update the status information of the second test information with a first value indicating that the test on the second storage area has been executed.
2. The memory system of claim 1 , wherein
the second test information further includes first information and second information, the first information indicating content of the test that is related to the write operation executed on the second storage area, the second information indicating content of the test that is related to the read operation executed on the second storage area, and
the controller is configured to:
receive, from the host, write commands that are issued by the host and are based on the first information included in the second test information;
execute, as the test related to the write operation on the second storage area, operations of writing first write data from the host into the second storage area in accordance with the received write commands;
receive, from the host, read commands that are issued by the host and are based on the second information included in the second test information; and
execute, as the test related to the read operation on the second storage area, operations of reading data from the second storage area and operations of transmitting the read data to the host in accordance with the received read commands.
3. The memory system of claim 2 , wherein
the first information includes information indicating a start logical address and an end logical address of a range of logical addresses on which the write operation is executed, and information indicating a number of logical addresses to which data is written in accordance with a write command, and
the second information includes information indicating a start logical address and an end logical address of a range of logical addresses on which the read operation is executed, and information indicating a number of logical addresses from which data is read in accordance with a read command.
4. The memory system of claim 2 , wherein
the second test information further includes third information that indicates a wait time that is inserted between the test related to the write operation and the test related to the read operation, and
the read commands are issued by the host after elapse of the wait time from completion of writing data into the second storage area.
5. The memory system of claim 2 , wherein
the first information includes status information that indicates whether the test related to the write operation has been executed,
the second information includes status information that indicates whether the test related to the read operation has been executed, and
the controller is configured to:
when the test related to the write operation on the second storage area has been completed, update the status information included in the first information with a first value indicating that the test related to the write operation has been executed; and
when the test related to the read operation on the second storage area has been completed, update the status information included in the second information with a first value indicating that the test related to the read operation has been executed.
6. The memory system of claim 1 , wherein
the first storage area is a storage area corresponding to a first namespace that is used by the host to access the memory system, and
the second storage area is a storage area corresponding to a second namespace that is used by the host to access the memory system.
7. An information processing system comprising:
a memory system comprising a nonvolatile memory that includes storage areas, and a controller configured to control the nonvolatile memory; and
a host, wherein
the storage areas include at least a first storage area on which a test related to a write operation and a read operation has been executed, and a second storage area on which the test has not been executed,
the controller manages first test information and second test information, the first test information including status information indicating that a test related to a write operation and a read operation on the first storage area has been executed, the second test information including status information indicating that a test related to a write operation and a read operation on the second storage area has not been executed,
the host is configured to:
acquire test information of a storage area of the storage areas from the memory system; and
when the status information which is included in the acquired test information indicates that the test for the storage area has not been executed, request the memory system to execute a test related to a write operation and a read operation on the storage area, and
the controller is configured to:
in response to receiving, from the host, a command to acquire information related to the second storage area, transmit the second test information that corresponds to the second storage area to the host;
when execution of the test related to the write operation and the read operation on the second storage area is requested by the host, execute the test related to the write operation and the read operation on the second storage area; and
when the test related to the write operation and the read operation on the second storage area has been completed, update the status information of the second test information with a first value indicating that the test on the second storage area has been executed.
8. The information processing system of claim 7 , wherein
the second test information further includes first information and second information, the first information indicating content of the test related to the write operation executed on the second storage area, and the second information indicating content of the test related to the read operation executed on the second storage area,
the host is configured to:
transmit, to the memory system, write commands that are based on the first information included in the second test information; and
transmit, to the memory system, read commands that are based on the second information included in the second test information,
the controller is configured to:
execute, as the test related to the write operation on the second storage area, operations of writing first write data from the host into the second storage area in accordance with the write commands; and
execute, as the test related to the read operation on the second storage area, operations of reading data from the second storage area and operations of transmitting the read data to the host in accordance with the read commands, and
the host is configured to determine whether the second storage area is used to write data depending on whether the data transmitted from the memory system matches the first write data.
9. The information processing system of claim 8 , wherein
the first information includes information indicating a start logical address and an end logical address on which the write operation is executed, and information indicating a number of logical addresses to which data is written in accordance with a write command, and
the second information includes information indicating a start logical address and an end logical address on which the read operation is executed, and information indicating a number of logical addresses from which data is read in accordance with a read command.
10. The information processing system of claim 8 , wherein
the second test information further includes third information that indicates a wait time that is inserted between the test related to the write operation and the test related to the read operation, and
the host is configured to transmit the read commands to the memory system after elapse of the wait time from completion of execution of the write commands.
11. The information processing system of claim 8 , wherein
the first information includes status information that indicates whether the test related to the write operation has been executed,
the second information includes status information that indicates whether the test related to the read operation has been executed, and
the controller is configured to:
when the test related to the write operation on the second storage area has been completed, update the status information included in the first information with a first value indicating that the test related to the write operation has been executed; and
when the test related to the read operation on the second storage area has been completed, update the status information included in the second information with a first value indicating that the test related to the read operation has been executed.
12. The information processing system of claim 7 , wherein
the first storage area is a storage area corresponding to a first namespace that is used by the host to access the memory system, and
the second storage area is a storage area corresponding to a second namespace that is used by the host to access the memory system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022041506A JP2023136080A (en) | 2022-03-16 | 2022-03-16 | Memory system and information processing system |
JP2022-041506 | 2022-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230298684A1 true US20230298684A1 (en) | 2023-09-21 |
Family
ID=88067267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/939,180 Pending US20230298684A1 (en) | 2022-03-16 | 2022-09-07 | Memory system and information processing system |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230298684A1 (en) |
JP (1) | JP2023136080A (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835430A (en) * | 1997-07-25 | 1998-11-10 | Rockwell International Corporation | Method of providing redundancy in electrically alterable memories |
US5875195A (en) * | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and apparatus for error injection techniques |
US6467054B1 (en) * | 1995-03-13 | 2002-10-15 | Compaq Computer Corporation | Self test for storage device |
US20110219276A1 (en) * | 2010-03-08 | 2011-09-08 | Fujitsu Semiconductor Limited | Apparatus and method for testing semiconductor integrated circuits, and a non-transitory computer-readable medium having a semiconductor integrated circuit testing program |
US20150287478A1 (en) * | 2014-04-02 | 2015-10-08 | Lsi Corporation | Bad memory unit detection in a solid state drive |
-
2022
- 2022-03-16 JP JP2022041506A patent/JP2023136080A/en active Pending
- 2022-09-07 US US17/939,180 patent/US20230298684A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6467054B1 (en) * | 1995-03-13 | 2002-10-15 | Compaq Computer Corporation | Self test for storage device |
US5875195A (en) * | 1997-03-31 | 1999-02-23 | International Business Machines Corporation | Method and apparatus for error injection techniques |
US5835430A (en) * | 1997-07-25 | 1998-11-10 | Rockwell International Corporation | Method of providing redundancy in electrically alterable memories |
US20110219276A1 (en) * | 2010-03-08 | 2011-09-08 | Fujitsu Semiconductor Limited | Apparatus and method for testing semiconductor integrated circuits, and a non-transitory computer-readable medium having a semiconductor integrated circuit testing program |
US20150287478A1 (en) * | 2014-04-02 | 2015-10-08 | Lsi Corporation | Bad memory unit detection in a solid state drive |
Also Published As
Publication number | Publication date |
---|---|
JP2023136080A (en) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144888B (en) | Memory system | |
US11030093B2 (en) | High efficiency garbage collection method, associated data storage device and controller thereof | |
US12019602B2 (en) | Key-value storage device and operating method thereof | |
JP7155028B2 (en) | Memory system and control method | |
US20150012687A1 (en) | Method for managing commands in command queue, memory control circuit unit and memory storage apparatus | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
JP7381678B2 (en) | memory system | |
US11861202B2 (en) | Memory system | |
US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US20230091792A1 (en) | Memory system and method of controlling nonvolatile memory | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
CN113900582A (en) | Data processing method and corresponding data storage device | |
JP4242245B2 (en) | Flash ROM control device | |
JP2021033845A (en) | Memory system and control method | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
US11853200B2 (en) | Memory system and controller to invalidate data corresponding to a logical address | |
US20230298684A1 (en) | Memory system and information processing system | |
CN107562639B (en) | Erase block read request processing method and device | |
KR101756228B1 (en) | Memory apparatus | |
CN107562654B (en) | IO command processing method and device | |
US11061610B2 (en) | Memory system | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
CN112540932B (en) | Memory controller and write assist method | |
US20230297262A1 (en) | Memory system and control method | |
CN114637706B (en) | Storage System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |