Patent Publication Number: US-2022237114-A1

Title: Memory system and non-transitory computer readable recording medium

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation U.S. application Ser. No. 14/656,405 filed on Mar. 12, 2015 and is based upon and claims the benefit of priority from U.S. Provisional Application No. 62/072,833, filed Oct. 30, 2014; and Japanese Patent Application No. 2015-028418, filed Feb. 17, 2015, the entire contents of all of which are incorporated herein by reference. 
    
    
     FIELD 
     Embodiments described herein relate generally to a memory system and a non-transitory computer readable recording medium. 
     BACKGROUND 
     A solid state drive (SSD) includes a nonvolatile semiconductor memory and has an interface which is similar to that of a hard disk drive (HDD). For example, at the time of data writing, the SSD receives a write command, logical block addressing (LBA) of a writing destination, and write data from an information processing device, translates the LBA into physical block addressing (PBA) based on a lookup table (LUT), and writes the write data to a position indicated by the PBA. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram showing an example of a structure of an information processing system according to a first embodiment; 
         FIG. 2  is a block diagram showing an example of a relationship between LBA spaces, namespaces, address translation tables, garbage collection units, and management data; 
         FIG. 3  is a flowchart showing an example of a process performed by a reception unit and a configuration unit according to the first embodiment; 
         FIG. 4  is a flow chart showing an example of a process performed by a garbage collection unit and an address translation unit according to the first embodiment; 
         FIG. 5  is a block diagram showing an example of a structure of an information processing system of a second embodiment; 
         FIG. 6  is a data structural diagram showing an example of a translation table according to the second embodiment; 
         FIG. 7  is a flowchart showing an example of a write process of a memory system according to the second embodiment; 
         FIG. 8  is a flowchart showing an example of a read process of the memory system of the second embodiment; 
         FIG. 9  is a block diagram showing an example of a structure of an information processing system according to a third embodiment; and 
         FIG. 10  is a perspective view showing a storage system according to the third embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In general, according to one embodiment, a memory system includes a nonvolatile memory, configuration unit, address translation unit, write unit and control unit. The configuration unit assigns write management areas included in the nonvolatile memory to spaces. The write management area is a unit of an area which manages the number of write. The address translation unit translates a logical address of write data into a physical address of a space corresponding to the write data. The write unit writes the write data to a position indicated by the physical address in the nonvolatile memory. The control unit controls the spaces individually with respect to the nonvolatile memory. 
     Embodiments will be described hereinafter with reference to drawings. In a following description, the same reference numerals denote components having nearly the same functions and arrangements, and a repetitive description thereof will be given if necessary. In the following embodiments, access means both data reading and data writing. 
     First Embodiment 
       FIG. 1  is a block diagram showing an example of a structure of an information processing system according to the present embodiment. 
     An information processing system  1  includes an information processing device  2  and a memory system  3 . The information processing system  1  may include a plurality of information processing device  2 . A case where the information processing system  1  includes a plurality of information processing device  2  is explained later in a second embodiment. 
     The memory system  3  is, for example, an SSD, and includes a controller  4  and a nonvolatile memory  5 . The memory system  3  may be included in the information processing device  2 , and the information processing device  2  and the memory system  3  may be connected through a network in a data communicative manner. 
     In the present embodiment, at least one NAND flash memory is used as the nonvolatile memory  5 . However, the present embodiment can be applied to various nonvolatile memories including a plurality of write management areas, and such various nonvolatile memories may be, for example, a NOR flash memory, magnetoresistive random access memory (MRAM), phase change random access memory (PRAM), resistive random access memory (ReRAM), and ferroelectric random access memory (FeRAM). Here, the write management area is an area of a unit which manages the number of writes. The nonvolatile memory  5  may include a three dimensional memory. 
     For example, the nonvolatile memory  5  includes a plurality of blocks (physical blocks). The plurality of blocks include a plurality of memory cells arranged at crossing points of word lines and bit lines. In the nonvolatile memory  5 , data are erased at once block by block. That is, a block is an area of a unit of data erase. Data write and data read are performed page by page (word line by word line) in each block. That is, a page is an area of a unit of data write or an area of a unit of data read. 
     In the present embodiment, the number of writes is managed block by block. 
     The information processing device  2  is a host device of the memory system  3 . The information processing device  2  sends a configuration command C 1  which associates the blocks of the nonvolatile memory  5  with a space including at least one block to the memory system  3 . 
     In the following description, the space will be explained as a namespace. 
     Furthermore, the information processing device  2  sends a write command C 2  together with namespace identification data (NSID)  6 , LBA 7  which indicates a writing destination, data size  8  of the write data, and write data  9  to the memory system  3 . 
     In the present embodiment, a plurality of namespaces NS 0  to NS M  (M is an integer which is 1 or more) are each space which can be obtained from dividing a plurality of blocks B 0  to B N  (N is an integer which is M or more) included in the nonvolatile memory  5 . In the present embodiment, the namespace NS 0  includes the blocks B 0  to B 2 , and the namespace NS M  includes the blocks B N-2  to B N . The other namespaces NS 1  to NS M-1  are the same as the namespaces NS 0  and NS M . Note that the assignment relationship between the namespaces NS 0  to NS M  and the blocks B 0  to B N  is an example, and the number of the blocks to be assigned to a single namespace can be arbitrarily changed. The number of blocks may be different between namespaces. 
     The controller  4  includes a memory unit  10 , buffer memories F 0  to F M , and a processor  11 . 
     The memory unit  10  stores address translation tables T 0  to T M  corresponding to their respective namespaces NS 0  to NS M . For example, the memory unit  10  may be used as a work memory. The memory unit  10  may be a volatile memory such as dynamic random access memory (DRAM) or static random access memory (SRAM), or may be a nonvolatile memory. The memory unit  10  may be a combination of a volatile memory and a nonvolatile memory. 
     Each of address translation tables T 0  to T M  is data associating LBA with PBA based on the data write with respect to namespaces NS 0  to NS M , and may be LUT, for example. Note that a part of or the whole address translation tables T 0  to TM may be stored in a different memory such as memory  12 . 
     Each of buffer memories F 0  to F M  stores the write data until a data amount becomes suitable based on the data write with respect to namespaces NS 0  to NS M . 
     The processor  11  includes a memory  12 , reception unit  13 , configuration unit  14 , address translation unit  15 , write unit  16 , and garbage collection unit G 0  to G M . 
     The memory  12  stores a program  17  and management data  18 . In the present embodiment, the memory  12  is included in the processor  11 ; however, it may be provided outside the processor  11 . The memory  12  is, for example, a nonvolatile memory. Note that a part of or the whole program  17  and management data  18  may be stored in a different memory such as the memory unit  10 . 
     The program  17  is, for example, a firmware. The processor  11  executes the program  17  to function as the reception unit  13 , configuration unit  14 , address translation unit  15 , write unit  16 , and garbage collection units G 0  to G M . 
     The management data  18  indicates a relationship between the namespaces NS 0  to NS M  and the blocks B 0  to B N . Referring to the management data  18 , which block is in which namespace can be determined. 
     The reception unit  13  receives, from the information processing device  2 , the configuration command C 1  to associate each block with each namespace in the nonvolatile memory  5 . Furthermore, the reception unit  13  receives, from the information processing device  2 , the write command C 2 , NSID 6 , LBA 7 , data size  8 , and data  9 . 
     In the following description, a case where the write commend C 2  is with the NSID 6  which represents the namespace NS 0  is explained for the sake of simplification. However, the write command C 2  can be with the NSID which represents the other namespaces NS 1  to NS M . 
     When the reception unit  13  receives the configuration command C 1  of the namespace, the configuration unit  14  assigns the blocks B 0  to B N  to the namespaces NS 0  to NS M  to generate the management data  18  and stores the management data  18  in the memory  12 . The assignment of the blocks B 0  to B N  to the namespaces NS 0  to NS M  may be performed by the configuration unit  14  observing data storage conditions of the namespaces NS 0  to NS M  in such a manner that the data capacities, access frequencies, write frequencies, the numbers of accesses, the numbers of writes, or data storage ratios are set to the same level between the namespaces NS 0  to NS M . Or, the assignment may be performed based on an instruction from the information processing device  2 , or an instruction from the manager of the memory system  3 . 
     The data capacity here is a writable data size, the access frequency or the write frequency is the number of accesses or the number of writes per unit time, and the data storage ratio is a value which indicates a ratio of an area size which the data is already stored with respect to an area size. 
     Furthermore, the configuration unit  14  transfers an empty block in which no data is stored from a namespace categorized as pre-garbage collection to the other namespace based on the garbage collection result executed for each of the namespaces NS 0  to NS M , and updates the management data  18 . Thus, the wear leveling can be performed between the namespaces NS 0  to NS M . The assignment change between the namespaces NS 0  to NS M  and the blocks B 0  to B N  may be performed by the configuration unit  14  observing the data storage conditions of the namespaces NS 0  to NS M  based on an observation result as in the time of generation of the management data  18 . Or, the assignment change may be performed based on an instruction from the information processing device  2  or an instruction from the manager of the memory system  3 . For example, the change of the namespaces NS 0  to NS M  are performed to convert the empty block of the namespace with lower data capacity, lower access frequency, lower number of access, or lower data storage ratio to the namespace with higher data capacity, higher access frequency, higher number of access, or higher data storage ratio. 
     Furthermore, the configuration unit  14  sets provisioning areas P 0  to P M  which are not normally used for each of the namespaces NS 0  to NS M  in the nonvolatile memory  5  based on the configuration command C 1  for over provisioning. The setting of the provisioning areas P 0  to P M  may be performed by the configuration unit  14  based on the data capacity of each of the namespaces NS 0  to NS M . Or, the setting may be performed based on an instruction from the information processing device  2 , or an instruction from the manager of the memory system  3 . 
     In the present embodiment, the provisioning areas P 0  to P M  are secured in the nonvolatile memory  5 ; however, they may be secured in any other memory in the memory system  3 . For example, the provisioning areas P 0  to P M  may be secured in a memory such as DRAM or static random access memory (SRAM). 
     When the reception unit  13  receives the write command C 2 , the address translation unit  15  executes associating to translate the LBA 7  with the write command C 2  into the PBA for the address translation table T 0  corresponding to the namespace NS 0  which indicates the NSID  6  with the write command C 2 . 
     In the present embodiment, the address translation unit  15  is achieved by the processor  11 ; however, the address translation unit  15  may be structured separately from the processor  11 . 
     Furthermore, the address translation unit  15  performs the address translation based on the address translation tables T 0  to T M ; however, the address translation may be performed by a key-value type retrieval. For example, the LBA is set as a key and the PBA is set as a value for achieving the address translation by key-value type retrieval. 
     The write unit  16  writes the write data  9  in a position indicated by the PBA obtained from the address translation unit  15 . In the present embodiment, the write unit  16  stores the write data  9  in the buffer memory F 0  corresponding to the namespace NS 0  indicated by the NSID 6  with the write command C 2 . Then, the write unit  16  writes the data of the buffer memory F 0  to a position indicated by the PBA when the buffer memory F 0  reaches a data amount suitable for the namespace NS 0 . 
     The garbage collection units G 0  to G M  correspond to the namespaces NS 0  to NS M  and execute the garbage collection in each of the namespaces NS 0  to NS M . The garbage collection is a process to release an unnecessary memory area or a process to secure a continuous available memory area by collecting data written in a memory area with gaps. The garbage collection units G 0  to G M  may be configured to execute garbage collections in parallel, or consecutively. 
     The garbage collection is explained in detail using the garbage collection unit G 0  as an example selected from the garbage collection unit G 0  to G M . The garbage collection unit G 0  first selects the blocks B 0  to B 2  corresponding to the namespace NS 0  based on the management data  18 . Then, the garbage collection unit G 0  performs the garbage collection with respect to the selected blocks B 0  to B 2 . Then, based on a result of the garbage collection performed by the garbage collection unit G 0 , the address translation unit  15  updates the address translation table T 0 . 
     Note that, in the present embodiment, the LBA and the PBA are associated with each other in the address translation tables T 0  to T M  and the block identifiable by the PBA and the NSID are associated with each other in the management data  18 . Therefore, when LBA is a unique address without redundant other LBA and the management data  18  is generated, the namespace NS 0  which is a writing destination can be specified from the LBA  7  attached to the write command C 2  at the processor  11  side. Therefore, after the generation of the management data  18  without redundant LBA  7 , attaching the NSID  6  to the write command C 2  can be omitted, and the NSID  6  may be acquired at the processor  11  side based on the LBA  7 , address translation tables T 0  to T M , and management data  18 . 
       FIG. 2  is a block diagram showing an example of a relationship between LBA spaces, the namespaces NS 0  to NS M , the address translation tables T 0  to T M , the garbage collection units G 0  to G M , and the management data  18 . 
     LBA spaces A 0  to A M  of the information processing device  2  are assigned to the namespaces NS 0  to NS M , respectively. 
     The LBA space A 0  includes logical addresses 0 to E 0 . The LBA space A 1  includes logical addresses 0 to E 1 . The LBA space A M  includes logical addresses 0 to E M . The other LBA spaces A 2  to A M-1  include a plurality of logical addresses similarly. 
     In the following description, the LBA space A 0  and the namespace NS 0  assigned to the LBA space A 0  are explained representatively for the sake of simplification. However, the other LBA spaces A 1  to A M  and namespaces NS 1  to NS M  are structured the same. 
     When writing the data of the LBA space A 0  to the nonvolatile memory  5 , the information processing device  2  sends the write command C 2 , NSID  6  indicating the namespace NS 0  corresponding to the LBA space A 0 , LBA  7  within LBA space A 0 , data size  8 , and write data  9  corresponding to the LBA  7  to the memory system  3 . 
     The management data  18  associates the namespace NS 0  with the blocks B 0  to B 2 . 
     The garbage collection unit G 0  performs the garbage collection with respect to the blocks B 0  to B 2  included in the namespace NS 0  corresponding to the garbage collection unit G 0  based on the management data  18 . 
     As a result of the garbage collection, data arrangement will be changed within the blocks B 0  to B 2 . Therefore, the garbage collection unit G 0  instructs the address translation unit  15  which is omitted in  FIG. 2  to perform the update of address translation table T 0 . The address translation unit  15  updates the address translation table T 0  corresponding to the namespace NS 0  to match the data arrangement after the garbage collection. 
       FIG. 3  is a flowchart showing an example of a process performed by the reception unit  13  and the configuration unit  14  according to the present embodiment. 
     In step S 301 , the reception unit  13  receives the configuration command C 1  of the namespaces NS 0  to NS M . 
     In step S 302 , the configuration unit  14  assigns the blocks B 0  to B N  of the nonvolatile memory  5  to the namespaces NS 0  to NS M  and generates the management data  18 . 
     In step S 303 , the configuration unit  14  stores the management data  18  in the memory  12 . 
       FIG. 4  is a flow chart showing an example of a process performed by the garbage collection unit G 0  and the address translation unit  15  according to the present embodiment. Note that the same process is executed in the other garbage collection units G 1  to G M . The process shown in  FIG. 4  may be performed based on an instruction from the information processing device  2 , for example. Or, the process may be performed based on an instruction from the manager of the memory system  3 . Furthermore, the garbage collection unit G 0  may execute the process of  FIG. 4  voluntarily by, for example, observing the data storage condition of the namespace NS 0  of the garbage collection target and determining the start of the garbage collection appropriately. More specifically, the garbage collection unit G 0  executes the garbage collection with respect to the namespace NS 0  when the number of empty blocks within the namespace NS 0  is a predetermined number or less, or when a ratio of empty blocks to the whole blocks within the namespace NS 0  is a predetermined value or less. 
     In step S 401 , the garbage collection unit G 0  selects the blocks B 0  to B 2  corresponding to the namespace NS 0  which is the garbage collection target based on the management data  18 . 
     In step S 402 , the garbage collection unit G 0  executes the garbage collection with respect to the blocks B 0  to B 2  within the selected namespace NS 0 . 
     In step S 403 , the address translation unit  15  updates the address translation table T 0  corresponding to the namespace NS 0  which is the garbage collection target based on the conditions of the blocks B 0  to B 2  after the garbage collection. 
     In the present embodiment explained as above, a predetermined block amount or a block amount set by the information processing device  2  can be assigned to each of the namespaces NS 0  to NS M , and the data corresponding to the namespaces NS 0  to NS M  can be written to the blocks B 0  to B M  assigned to the namespaces NS 0  to NS M , and different data amounts can be set to the namespaces NS 0  to NS M . 
     In the present embodiment, the garbage collection can be performed in each of the namespaces NS 0  to NS M  independently and efficiently. 
     In the present embodiment, as a result of the garbage collection, the empty block which do not store data can be transferred from the namespace before the garbage collection to the other namespace, and the empty block can be secured within the other namespace. Therefore, the namespace to be assigned to the block can be changed, the wear leveling can be performed between the namespaces NS 0  to NS M , and the life of the nonvolatile memory  5  can be prolonged. 
     In the present embodiment, the provisioning areas P 0  to P M  having different data amounts can be set in each of the namespaces NS 0  to NS M , and the over provisioning can be achieved in each of the namespaces NS 0  to NS M . Thus, the write speed can be accelerated and performance can be maintained, and consequently, the reliability can be improved. 
     In the present embodiment, the address translation tables T 0  to T M  are managed for each of the namespaces NS 0  to NS M , and the address translation and changing of the relationship between the LBA and PBA can be performed efficiently in each of the namespaces NS 0  to NS M . 
     In the present embodiment, if the address translation is performed by the key-value type retrieval, even the data volume of the nonvolatile memory  5  is large, the address translation can be performed efficiently. 
     In the present embodiment, highly sophisticated memory management can be achieved in each of the namespaces NS 0  to NS M , the life of the nonvolatile memory  5  can be prolonged, the production costs can be reduced, and write/read processes to/from the nonvolatile memory  5  divided by the namespaces NS 0  to NS M  can be rapid. 
     In the present embodiment, a compaction unit of each of the namespaces NS 0  to NS M  may be provided instead of or together with garbage collection units G 0  to G M . The compaction unit corresponding to each of namespaces NS 0  to NS M  executes compaction with respect to each of the namespaces NS 0  to NS M  based on the management data  18 . 
     In the present embodiment, the communication of configuration command C 1  between, for example, the information processing device  2  and the memory system  3  may be omitted. For example, the address translation unit  15  may include a part of or the whole functions of the configuration unit  14 . For example, the address translation unit  15  may generate the management data  18  and address translation tables T 0  to T M  of the namespaces NS 0  to NS M  by associating the NSID  6  and LBA  7  added to the write command C 2  with the PBA corresponding to the LBA  7 . The management data  18  and the address translation tables T 0  to T M  may be coupled or divided arbitrarily. The structure in which the communication of the configuration command C 1  is omitted and the address translation unit  15  includes a part of or the whole functions of the configuration unit  14  is explained in detail in the following second embodiment. 
     Second Embodiment 
     In the present embodiment, explained is an information processing system in which a memory system writes write data from a plurality of information processing devices and sends the read data to the information processing devices. 
       FIG. 5  is a block diagram showing an example of a structure of an information processing system of the present embodiment. 
     An information processing system  1 A includes a plurality of information processing devices D 0  to D M  and a memory system  3 A. Each of the information processing devices D 0  to D M  functions similarly to the information processing device  2 . The memory system  3 A differs from the above memory system  3  mainly because it includes a translation table (translation data)  20  instead of the address translation tables T 0  to T M  and management data  18 , it transmits/receives data, information, signal, and command to/from the information processing devices D 0  to D M , and the address translation unit  15  functions as the configuration unit  14 . In the present embodiment, differences from the first embodiment are explained, and the same explanation or substantially the same explanation may be omitted or simplified. 
     The memory system  3 A is included in, for example, a cloud computing system. In the present embodiment, a case where the memory system  3 A is shared with the information processing devices D 0  to D M  is exemplified; however, it may be shared with a plurality of users. At least one of the information processing devices D 0  to D M  may be a virtual machine. 
     In the present embodiment, NSID added to a command is used as an access key to namespaces. 
     In the present embodiment, the information processing devices D 0  to D M  have access rights to their corresponding namespaces NS 0  to NS M . However, only a single information processing device may have access rights to one or more namespaces, or a plurality of information processing devices may have an access right to a common namespace. 
     Each of the information processing devices D 0  to D M  transfers, together with the write command C 2 , an NSID  6 W indicative of its corresponding write destination space, LBA  7 W indicative of the write destination, data size  8 , and write data  9 W to the memory system  3 A. 
     Each of the information processing devices D 0  to D M  transfers, together with a read command C 3 , an NSID  6 R indicative of its corresponding read destination space, and LBA  7 R indicative of the read destination to the memory system  3 A. 
     Each of the information processing devices D 0  to D M  receives read data  9 R corresponding to the read command C 3  or information indicative of a read error from the memory system  3 A. 
     The memory system  3 A includes a controller  4 A and the nonvolatile memory  5 . 
     The controller  4 A includes an interface unit  19 , memory unit  10 , buffer memory F 0  to F M , and processor  11 . In the present embodiment, the number of processor  11  in the controller  4 A can be changed optionally to be one or more. 
     The interface unit  19  transmits/receives data, information, signal, and command to/from external devices such as the information processing devices D 0  to D M . 
     The memory unit  10  stores a translation table  20 . A part of or the whole translation table  20  may be stored in a different memory such as the memory  12 . 
     The translation table  20  is data which associates the LBA, PBA, and NSID with each other. The translation table  20  is explained later with reference to  FIG. 6 . 
     The buffer memories F 0  to F M  are used for write buffer memories and read buffer memories with respect to namespaces NS 0  to NS M . 
     The processor  11  includes the memory  12  storing the program  17 , reception unit  13 , address translation unit  15 , write unit  16 , read unit  21 , and garbage collection units G 0  to G M . When the program  17  is executed, the processor  11  functions as the reception unit  13 , address translation unit  15 , write unit  16 , read unit  21 , and garbage collection units G 0  to G M . 
     The reception unit  13  receives, at the time of data write, the write command C 2 , NSID  6 W, LBA  7 W, data size  8 , and write data  9 W from the information processing devices D 0  to D M  through the interface unit  19 . 
     The reception unit  13  receives, at the time of data read, the read command C 3 , NSID  6 R, and LBA  7 R from the information processing devices D 0  to D M  through the interface unit  19 . 
     When the reception unit  13  receives the write command C 2 , based on the LBA  7 W and NSID  6 W added to the write command C 2 , the address translation unit  15  determines the PBA of the write destination in the namespace indicated by the NSID  6 W. The address translation unit  15  then updates the translation table  20  associating the LBA  7 W, NSID  6 W, and determined PBA with each other. 
     When the read command C 3  is received by the reception unit  13 , based on the LBA  7 R and NSID  6 R added to the read command C 3 , and the translation table  20 , the address translation unit  15  determines the PBA of the read destination indicated by the NSID  6 R. 
     The write unit  16  writes the write data  9 W at a position indicated by the PBA corresponding to the namespace indicated by the NSID  6 W via a buffer memory corresponding to the namespace indicated by the NSID  6 W. 
     The read unit  21  reads the read data  9 R from the position indicated by the PBA corresponding to the namespace indicated by NSID  6 R via the buffer memory corresponding to the namespace indicated by NSID  6 R. Then, the read unit  21  sends the read data  9 R to the information processing device issuing the read commend C 3  via the interface unit  19 . 
     In the present embodiment, the garbage collection units G 0  to G M  execute garbage collection of each of the namespaces NS 0  to NS M  based on the translation table  20 . 
       FIG. 6  is a data structural diagram showing an example of the translation table  20  according to the present embodiment. 
     The translation table  20  manages the LBA, PBA, and NSID with each other. For example, the translation table  20  associates the LBA  200 , PBA  300 , and NS 0  with each other. For example, the translation table  20  associates the LBA  201 , PBA  301 , and NS 0  with each other. For example, the translation table  20  associates the LBA  200 , PBA  399 , and NSM with each other. 
     The address translation unit  15  determines the PBA such that the PBA  300  associated with the LBA  200  and the NSID indicative of the namespace NS 0  and PBA  399  associated with the LBA  200  and the NSID indicative of the namespace NS M  differ from each other. 
     Thus, the address translation unit  15  can select PBA  300  when the NSID received with the LBA  200  indicates the namespace NS 0  and select PBA  399  when the NSID received with the LBA  200  indicates the namespace NS M . 
     Therefore, even if the same logical address is used between a plurality of information processing devices D 0  to D M , the memory system  3 A can be shared with the information processing devices D 0  to D M . 
       FIG. 7  is a flowchart showing an example of a write process of the memory system  3 A according to the present embodiment. 
     As to  FIG. 7 , the explanation thereof is presented given that the write command C 2  is issued from the information processing device D 0  amongst the information processing devices D 0  to D M , and the NSID  6 W which indicates the namespace NS 0  is added to the write command C 2 . However, the process is performed similarly when the write commend C 2  is issued from any of the information processing devices D 1  to D M . Furthermore, the process is performed similarly when the NSID  6 W which indicates any of the other namespaces NS 1  to NS M  is added to the write command C 2 . 
     In step S 701 , the reception unit  13  receives the write command C 2 , NSID  6 W, LBA  7 W, data size  8 , and write data  9 W from the information processing device D 0  via the interface unit  19 . 
     In step S 702 , when the write command C 2  is received by the reception unit  13 , based on the LBA  7 W and NSID  6 W added to the write command C 2 , the address translation unit  15  determines the PBA of a write destination in the namespace NS 0  indicated by the NSID  6 W. 
     In step S 703 , the address translation unit  15  updates the translation table  20  associating the LBA  7 W, NSID  6 W, determined PBA with each other. 
     In step S 704 , the write unit  16  writes the write data  9 W at a position indicated by the PBA corresponding to the namespace NS 0  indicated by the NSID  6 W via the buffer memory F 0  corresponding to the namespace NS 0  indicated by the NSID  6 W. 
       FIG. 8  is a flowchart showing an example of a read process of the memory system  3 A according to the present embodiment. 
     As to  FIG. 8 , the explanation is presented given that the read command C 3  is issued from information processing device DM amongst the information processing devices D 0  to D M , and the NSID  6 R which indicates the namespace NS M  is added to the read command C 3 . However, the process is performed similarly when the read commend C 3  is issued from any of the information processing devices D 1  to D M-1 . Furthermore, the process is performed similarly when the NSID  6 R which indicates any of the other namespaces NS 1  to NS M-1  is added to the read command C 3 . 
     In step S 801 , the reception unit  13  receives the read command C 3 , NSID  6 R, and LBA  7 R from the information processing device D M  via the interface unit  19 . 
     In step S 802 , when the read command C 3  is received by the reception unit  13 , based on the LBA  7 R and NSID  6 R added to the read command C 3 , and translation table  20 , the address translation unit  15  determines the PBA of a read destination. 
     In step S 803 , the read unit  21  reads the read data  9 R from the position indicated by PBA corresponding to the namespace NS M  indicated by NSID  6 R via the buffer memory F M  corresponding to the namespace NS M  indicated by NSID  6 R, and sends the read data  9 R to the information processing devices D M  issuing the read command C 3  via the interface unit  19 . 
     In the present embodiment described above, the nonvolatile memory  5  is divided into a plurality of the namespaces NS 0  to NS M . The information processing devices D 0  to D M  can access the namespaces whose access rights are granted thereto. Consequently, data security can be improved. 
     The controller  4 A of the memory system  3 A controls the namespaces NS 0  to NS M  independently space by space. Therefore, conditions of use of each of the namespaces NS 0  to NS M  may be difference. 
     The memory system  3 A associates the LBA, PBA, and NSID with each other, and thus, even if the same LBA sent from a plurality of independent information processing devices is received, the data can be distinguished based on the NSID. 
     In each of the above embodiments, data in a table format can be implemented as a different data structure such as a list format. 
     Third Embodiment 
     In the present embodiment, the information processing systems  1  and  1 A explained in the first and second embodiments are further explained in detail. 
       FIG. 9  is a block diagram showing of an example of a detail structure of the information processing system  1  according to the present embodiment. 
     In  FIG. 9 , the information processing system  1 B includes an information processing device  2 B and a memory system  3 B. The information processing system  1 B may include a plurality of information processing devices as in the second embodiment. That is, the information processing devices  2  and D 0  to DM of the first and second embodiments correspond to the information processing devices  2 B. 
     The memory systems  3  and  3 A according to the first and second embodiments correspond to the memory system  3 B. 
     the processor  11  of the first and second embodiments corresponds to CPU  43 F and  43 B. 
     The address translation tables T 0  to T M  according to the first embodiment and the translation table  20  of the second embodiment correspond to a LUT  45 . 
     The memory unit  10  of the first and second embodiments corresponds to a DRAM  47 . 
     The interface unit  19  according to the second embodiment corresponds to a host interface  41  and a host interface controller  42 . 
     The buffer memories F 0  to F M  of the first and second embodiments correspond to a write buffer WB and read buffer RB. 
     The information processing device  2 B functions as a host device. 
     The controller  4  includes a front end  4 F and a back end  4 B. 
     The front end (host communication unit)  4 F includes a host interface  41 , host interface controller  42 , encode/decode unit  44 , and CPU  43 F. 
     The host interface  41  communicates with the information processing device  2 B to exchange requests (write command, read command, erase command), LBA, and data. 
     The host interface controller (control unit)  42  controls the communication of the host interface  41  based on the control of the CPU  43 F. 
     The encode/decode unit (advanced encryption standard (AES))  44  encodes the write data (plaintext) transmitted from the host interface controller  42  in a data write operation. The encode/decode unit  44  decodes encoded read data transmitted from the read buffer RB of the back end  4 B in a data read operation. Note that the transmission of the write data and read data can be performed without using the encode/decode unit  44  as occasion demands. 
     The CPU  43 F controls the above components  41 ,  42 , and  44  of the front end  4 F to control the whole function of the front end  4 F. 
     The back end (memory communication unit)  4 B includes a write buffer WB, read buffer RB, LUT unit  45 , DDRC  46 , DRAM  47 , DMAC  48 , ECC  49 , randomizer RZ, NANDC  50 , and CPU  43 B. 
     The write buffer (write data transfer unit) WB stores the write data transmitted from the information processing device  2 B temporarily. Specifically, the write buffer WB temporarily stores the write data until it reaches to a predetermined data size suitable for the nonvolatile memory  5 . 
     The read buffer (read data transfer unit) RB stores the read data read from the nonvolatile memory  5  temporarily. Specifically, the read buffer RB rearranges the read data to be the order suitable for the information processing device  2 B (the order of the logical address LBA designated by the information processing device  2 B). 
     The LUT  45  is a data to translate the logical address LBA into a predetermined physical address PBA. 
     The DDRC  46  controls double data rate (DDR) in the DRAM  47 . 
     The DRAM  47  is a nonvolatile memory which stores, for example, the LUT  45 . 
     The direct memory access controller (DMAC)  48  transfers the write data and the read data through an internal bus IB. In  FIG. 9 , only a single DMAC  48  is shown; however, the controller  4  may include two or more DMACs  48 . The DMAC  48  may be set in various positions inside the controller  4 . 
     The ECC (error correction unit)  49  adds an error correction code (ECC) to the write data transmitted from the write buffer WB. When the read data is transmitted to the read buffer RB, the ECC  49 , if necessary, corrects the read data read from the nonvolatile memory  5  using the added ECC. 
     The randomizer RZ (or scrambler) disperses the write data in such a manner that the write data are not biased in a certain page or in a word line direction of the nonvolatile memory  5  in the data write operation. By dispersing the write data in this manner, the number of write can be standardized and the cell life of the memory cell MC of the nonvolatile memory  5  can be prolonged. Therefore, the reliability of the nonvolatile memory  5  can be improved. Furthermore, the read data read from the nonvolatile memory  5  passes through the randomizer RZ in the data read operation. 
     The NAND controller (NANDC)  50  uses a plurality of channels (four channels CH 0  to CH 3  are shown in the Figure) to access the nonvolatile memory  5  in parallel in order to satisfy a demand for a certain speed. 
     The CPU  43 B controls each component above ( 45  to  50 , and RZ) of the back end  4 B to control the whole function of the back end  4 B. 
     Note that the structure of the controller  4  shown in  FIG. 9  is an example and no limitation is intended thereby. 
       FIG. 10  is a perspective view showing a storage system according to the present embodiment. 
     The storage system  100  includes the memory system  3 B as an SSD. 
     The memory system  3 B is, for example, a relatively small module of which external size will be approximately 20 mm×30 mm. Note that the size and scale of the memory system  3 B is not limited thereto and may be changed into various sizes arbitrarily. 
     Furthermore, the memory system  3 B may be applicable to the information processing device  2 B as a server used in a data center or a cloud computing system employed in a company (enterprise) or the like. Thus, the memory system  3 B may be an enterprise SSD (eSSD). 
     The memory system  3 B includes a plurality of connectors (for example, slots)  30  opening upwardly, for example. Each connector  30  is a serial attached SCSI (SAS) connector or the like. With the SAS connector, a high speed mutual communication can be established between the information processing device  2 B and each memory system  3 B via a dual port of 6 Gbps. Note that, the connector  30  may be a PCI express (PCIe) or NVM express (NVMe). 
     A plurality of memory systems  3 B are individually attached to the connectors  30  of the information processing device  2 B and supported in such an arrangement that they stand in an approximately vertical direction. Using this structure, a plurality of memory systems  3 B can be mounted collectively in a compact size, and the memory systems  3 B can be miniaturized. Furthermore, the shape of each memory system  3 B of the present embodiment is 2.5 inch small form factor (SFF). With this shape, the memory system  3 B can be compatible with an enterprise HDD (eHDD) and the easy system compatibility with the eHDD can be achieved. 
     Note that the memory system  3 B is not limited to the use in an enterprise HDD. For example, the memory system  3 B can be used as a memory medium of a consumer electronic device such as a notebook portable computer or a tablet terminal. 
     As can be understood from the above, the information processing system  1 B and the storage system  100  having the structure of the present embodiment can achieve a mass storage advantage with the same advantages of the first and second embodiments. 
     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 embodiments 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 modifications as would fall within the scope and spirit of the inventions.