WO2015118623A1 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- WO2015118623A1 WO2015118623A1 PCT/JP2014/052607 JP2014052607W WO2015118623A1 WO 2015118623 A1 WO2015118623 A1 WO 2015118623A1 JP 2014052607 W JP2014052607 W JP 2014052607W WO 2015118623 A1 WO2015118623 A1 WO 2015118623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- memory
- information processing
- memory subsystem
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Definitions
- the present invention relates to an information processing apparatus suitable for high-speed processing of big data.
- the data erase unit (block) is larger than the data write unit, and data cannot be overwritten. Further, in a conventional storage device using a nonvolatile memory, unnecessary data is mixed in the same block of the nonvolatile memory at different timings. Therefore, the storage device reads necessary data physically scattered from each block, erases the block from which the data has been read, and writes the read data back to the erased block. This process is called garbage collection.
- Patent Documents 1 and 2 disclose a technique for classifying data based on a logical address of data and a writing order for a storage device using a nonvolatile memory and determining a data writing destination based on the classification. ing.
- garbage collection occurs in a storage device using a non-volatile memory
- the read / write processing of the host is awaited and the performance of the storage device is degraded.
- the garbage collection itself since the garbage collection itself includes an erasure process, the life of the storage device having an upper limit in the number of erasures is deteriorated.
- garbage collection it is necessary to install an extra nonvolatile memory in the storage device, which increases the cost of the storage device. To solve these problems, garbage collection must be eliminated.
- an object of the present invention is to reduce the cost of the storage device by eliminating garbage collection and further reducing the capacity of the nonvolatile memory required for the storage device.
- An information processing apparatus is an information processing apparatus including a host and a memory subsystem, the host including an identifier indicating an erasable order of data and a data write command to the memory subsystem.
- the memory subsystem includes a first memory and a control circuit for writing the data to the first memory, and the first memory includes: The size of the data erasing unit is larger than the size of the data writing unit, and the control circuit classifies the data based on the identifier, and the data belonging to the first classification is simultaneously stored in the first memory. Writing to the first erasable first erasable area and simultaneously erasing the data belonging to the second classification different from the first classification in the first memory And writes such to the second identical erasure area.
- An information processing apparatus is an information processing apparatus including a host and a memory subsystem, and the host issues a data write command to the memory subsystem and processes the data.
- An information processing circuit for classifying the data based on an identifier indicating an erasable order of data, wherein the memory subsystem has a first data erasure unit size larger than a data write unit size; According to the write command of the memory and the host, the data belonging to the first class is written to the first erasable area in the first memory which can be simultaneously erased, and is different from the first class.
- a large-scale memory space required for big data analysis or the like can be provided inexpensively with a nonvolatile memory, and garbage collection is eliminated even when there are many types of identifiers indicating the order in which data can be erased.
- the capacity of the necessary non-volatile memory can be reduced. Thereby, it is possible to reduce the cost of the storage device while improving the performance and life of the storage device.
- FIG. 1 shows a configuration of an entire server that is an information processing apparatus.
- the server includes a plurality of hosts (Host (1) to Host (N)), an interconnect connecting all the hosts, and a plurality of memory subsystems (MSS (1) to MSS connected to each host). (N)).
- the host includes an information processing circuit (CPU) and one or more memories (DRAM) connected to the information processing circuit. All hosts can communicate with each other via the interconnect. In addition, the hosts can communicate with each connected memory subsystem.
- the information processing circuit reads information from the memory and the memory subsystem and executes processing by writing the information.
- Each memory subsystem is composed of one memory subsystem control circuit (MSC), one or more nonvolatile memories (NVM), and one or more memories (DRAM).
- the memory subsystem control circuit can communicate with the host, the non-volatile memory, and the memory.
- the memory in the memory subsystem is a memory for storing management information and the like, and a high-speed DRAM is preferable.
- a memory such as an MRAM, a phase change memory, an SRAM, a NOR flash memory, or a ReRAM may be used.
- data to be written to and read from the nonvolatile memory may be temporarily stored and used as a cache for the nonvolatile memory.
- the non-volatile memory is a memory for storing data written from the host, and includes an inexpensive and large-capacity NAND flash memory, a phase change memory, a ReRAM, and the like. These are memories whose data erase unit size is greater than or equal to the data write unit size.
- Fig. 2 shows the memory subsystem in more detail.
- the memory subsystem includes one memory subsystem control circuit (MSC), nonvolatile memory (NVM (1, 1) to NVM (i, j)), and memory (DRAM (1) to DRAM (p)).
- the memory subsystem control circuit includes a memory access control circuit (DMAC), a command buffer (C-BF), a data buffer (D-BF), an address buffer (A-BF), and a metadata buffer (M-BF).
- DMAC memory access control circuit
- C-BF command buffer
- D-BF data buffer
- A-BF address buffer
- M-BF metadata buffer
- a register RG
- D-RCLSFY_BLK data reclassification block
- NVMC (1) to NVMC (i) nonvolatile memory control circuit
- DRAMC DRAMC (1) to DRAMC (p)
- the memory access control circuit is connected to the host, command buffer, data buffer, address buffer, metadata buffer, and register in FIG. 1, and performs data communication between the connection destinations.
- Each of the command buffer, data buffer, address buffer, metadata buffer, and register is also connected to the data reclassification block, and the command buffer temporarily stores data read instructions, write instructions, and erase instructions.
- the data buffer is a buffer that temporarily stores data to be read and written.
- the address buffer is a buffer for temporarily storing data addresses in read, write, and erase commands from the host. The data size can also be temporarily stored.
- the metadata buffer is a buffer that temporarily stores metadata such as data group numbers and data types (graph data (CSR), analysis results (MSG), etc.) in read, write, and erase commands from the host.
- metadata is not limited to these, and may be other information.
- the register stores the control information necessary for each control in the data reclassification block (total group number of data, data size for each group, data size written in the previous super step, graph update information, etc.) This is a register that can be read from the data reclassification block.
- the necessary control information is not limited to these, and may be other information.
- the data reclassification block communicates with the register, command buffer, data buffer, address buffer, and metadata buffer, and controls the nonvolatile memory control circuit and the DRAM control circuit.
- the nonvolatile memory control circuits (NVMC (1) to NVMC (i)) are connected to the nonvolatile memories (NVM (i, 1) to NVM (i, j)), and data of the connected nonvolatile memories Read, write data, and erase data.
- i is a natural number and represents a channel number
- each of the plurality of channels includes a data transfer bus (I / O) that can communicate independently.
- J nonvolatile memories (NVM (i, 1), NVM (i, 2),..., NVM (i, j)) belonging to one channel share a data transfer bus.
- j nonvolatile memories belonging to each channel are independent as memories, instructions from the nonvolatile memory control circuit can be processed independently.
- the j non-volatile memories belong to ways (Way1, Way2,..., Wayj) in the order of physical proximity from the non-volatile memory control circuit.
- the nonvolatile memory control circuit can determine whether or not each nonvolatile memory is processing data by reading a signal of a ready / busy line (RY / BY) connected to each nonvolatile memory.
- the nonvolatile memory control circuits are connected to the data reclassification block and can communicate with each other.
- the DRAM control circuits (DRAMC (1) to DRAMC (p)) are connected to the memories (DRAM (1) to DRAM (p)), respectively, and read data from the memory and write data to the memory.
- the DRAM control circuits are connected to the data reclassification block and can communicate with each other.
- the data stored in the non-volatile memory is read in page units, and when data is written to the non-volatile memory, it is written in page units.
- Data stored in the nonvolatile memory is erased in units of blocks. Data cannot be overwritten when data is written to the non-volatile memory. Therefore, for example, data can be written to the page (PG_e) in the erased block in FIG. 3, but new data cannot be written to the page (PG_d) in which data has already been written.
- the nonvolatile memory has the following two characteristics.
- Feature 1 The data size of the erase unit (block) is equal to or larger than the data size of the write unit (page).
- FIG. 4 is a diagram illustrating an example of a graph handled by the server.
- a vertex number that uniquely identifies each vertex is assigned to a vertex (Vertex) of the graph
- an edge (Edge) of two graphs connecting two vertices is the two vertices. It shows that there is a relationship between.
- Each vertex of the graph and the relationship between the vertices become graph data to be analyzed.
- the graph data is divided into groups according to the vertex numbers and analyzed for each group.
- the graph to be analyzed is not limited to this example.
- the directed graph (Directed Graph) having a directivity in the relationship between vertices, the multi-relational graph having multiple types of relationships, and each vertex.
- graphs other than this example may be used, such as Property Graph having accompanying information on the sides and Weighted Graph with attached information weighted.
- Fig. 5 shows an example of the graph analysis sequence in the server.
- the non-volatile memory in the memory subsystem stores graph data (CSR) and graph analysis results (MSG), which are read and written for each group.
- CSR graph data
- MSG graph analysis results
- Time 1 First, the memory subsystem reads the graph data (Read CSR Gr.1) and the graph analysis result (Read MSG Gr.1) belonging to group 1 stored in the nonvolatile memory and sends them to the host To do.
- Time 3 Each host communicates the results of group 1 graph analysis to other hosts. Each host collects the results of graph analysis sent from other hosts for each group and sends them to the memory subsystem. The memory subsystem writes the result of the graph analysis sent from the host into the nonvolatile memory in units of writing to the nonvolatile memory (Write MSG (Gr. # At random)).
- FIG. 6 is a diagram illustrating information sent from the host to the memory subsystem before starting graph analysis, during data writing, and during graph analysis.
- the memory subsystem writes data into the nonvolatile memory based on the information sent from the host.
- C During graph analysis (SS / Update) While executing the graph analysis, for example, at the timing of the break of the super step, the data size of the analysis result written to the memory subsystem in the previous super step, the number of analyzed vertices, etc. (Size / Pre SS) are displayed.
- the host sends to the memory subsystem.
- the host sends graph update information (Update info.) To the memory subsystem at the timing when the graph data is updated.
- the memory subsystem updates the data reclassification method based on the information sent from the host.
- processing of the memory subsystem when the server performs graph processing will be described with reference to FIGS. ⁇ E.
- Processing of memory subsystem control circuit in graph analysis> (1) Processing Before Starting Graph Analysis With reference to FIGS. 7 and 8, control of the memory subsystem before starting graph analysis will be described.
- Fig. 7 shows the memory subsystem control sequence.
- the host writes in the information memory subsystem register necessary for controlling the memory subsystem (Step 1 RCV info).
- Information necessary for the control of the memory subsystem includes the total number of groups in the graph analysis, the data size (Size / Gr.) For each group, the number of vertices and the number of edges in the graph, etc. Also included are information for specifying the two vertices for which the shortest path is to be obtained, that is, the start point and the end point.
- the data re-classification block in the memory subsystem control circuit refers to the register (Step 2, Read RG), and re-classifies the data based on the total number of groups sent from the host and the data size of each group.
- the classification method is determined (Step 3, Det. Gr. CLS.). Further, based on the reclassification method, the data reclassification block creates a table shown in FIG. 8 and stores it in the DRAM in the memory subsystem (Step 4 Make Table).
- FIG. 8 (a) Gr-LGr is a table that manages the association between the group number of data sent from the host and the large group number (LGr) that is the data classification determined by the data reclassification block. is there.
- FIG. 8 (b) LGr-PA is a table for managing the association between the large group number and the data write destination (Physical Address). Details of the data reclassification method will be described in (3) Data Reclassification Method. (2) Data Write Processing The control for writing data to the memory subsystem will be described with reference to FIGS.
- the host when data is written to the memory subsystem, the host sends a data group number (Gr. 383), data type (MSG), logical address (Adr), and data size (size) together with the write request. Is sent to the memory subsystem control circuit (MSC) (1. Write Req.).
- the memory subsystem control circuit determines the data write destination by referring to the management tables (FIG. 8 (a) Gr-LGr, (b) LGr-PA) stored in the DRAM in the memory subsystem (2. Det. Addr). As shown in FIG.
- write destinations of data belonging to the same large group are distributed to a plurality of nonvolatile memory chips (NVM chips) belonging to each channel, and at the same time, the same erase unit (Block) of the nonvolatile memory Only the data of the same large group is written.
- NVM chips nonvolatile memory chips
- FIG. 10 shows a control sequence of the data reclassification block at the time of data writing.
- the data reclassification block in the memory subsystem control circuit refers to the command buffer and receives a data write request sent from the host (Step 1 RCV Req.).
- the data reclassification block refers to the metadata buffer (M-BF) (Step 2 Read BF), and reads the group number of the data.
- the data reclassification block reads the logical address and data size of data from the address buffer.
- the data reclassification block refers to the management table Gr-LGr (FIG. 8A) stored in the DRAM in the memory subsystem, and the group number read from the metadata buffer is assigned to which large group number.
- Gr-LGr FIG. 8A
- the data reclassification block refers to the row corresponding to the corresponding large group number in the management table LGr-PA (FIG. 8B). Then, the data reclassification block includes the Page cnts. Increase by one. As a result, Page cnts. Exceeds the threshold value determined by the memory subsystem control circuit, the block management table (BLK_ST) shown in FIG. 11 is referred to. Then, an empty block “ERASED” is selected one by one from the nonvolatile memory chips belonging to each channel, and the Physical Address item of the management table LGr-PA is updated.
- the state of the block recorded in the block management table (BLK_ST) is updated from “ERASED” to “ALLOCATED”, and Page cnts. Is updated to 0 (Step 3 see & update table).
- the data reclassification block refers to the row of the corresponding large group number in the management table LGr-PA and determines the data write destination (Step 4 Det. Addr).
- the data reclassification block updates the “Status of block” column of the block management table (BLK_ST) from “ALLOCATED” to “PROGRAMMED” (Step 5 Update table).
- FIG. 12 shows the order in which data classified into groups and large groups can be erased.
- the host that executes the graph analysis performs processing in the order of group numbers, and the analysis result data (MSG) can also be deleted in that order (“Erasable” on the left of FIG. 12).
- the data reclassification block classifies data of a plurality of consecutive group numbers and classifies them into a large group (LGr.). Therefore, like the group, the analysis result data (MSG) can be deleted in the order of the large group (“Erasable” on the left in FIG. 12).
- FIG. 14 shows the relationship between virtual addresses, logical addresses, and physical addresses.
- the virtual address indicates an address space used by a process executed on the OS, and is managed in units of pages (V_page).
- the virtual address is normally assigned to each process from the OS regardless of the actual capacity of the DRAM or the storage device.
- the logical address is an address assigned to each DRAM or storage device, and is managed in units of pages (L_page).
- the OS performs conversion between the virtual address and the logical address (FIG. 14, A).
- the physical address is an address that directly points to the data storage destination of the storage device, and in the example of the memory subsystem, is a channel, a way, a block, a page, or the like.
- the logical address and the physical address are converted by the controller of the storage device (FIG. 14, B).
- the host that executes the graph analysis reads the analysis result data (MSG) of the previous super step in order from the group 1, and the data becomes unnecessary after the reading. For this reason, the large group becomes unnecessary in order from 1 as well.
- the host allocates a logical address space that can store the data size of the analysis result for two super steps to the memory subsystem.
- the area of the physical address space which is the capacity of the nonvolatile memory in the memory subsystem, can be made smaller than the area of the logical address space.
- the data reclassification block secures a physical address area (FIG.
- FIG. 16 shows a processing sequence during graph analysis.
- the host writes data necessary for controlling the memory subsystem to the memory subsystem register (Step 1 RCV info).
- the data necessary for the control is, for example, information such as the data amount of the analysis result (MSG) written in the previous super step, the data size of each group, and the number of vertices.
- the data reclassification block refers to the register (Step 2 Read RG), and updates the data reclassification method based on the information sent from the host (Step 3 Update Gr. CLS.). Thereafter, the data reclassification block reflects the updated reclassification method in the management table (Step 4 Update table).
- FIG. 17 shows an example of updating the data reclassification method.
- the data reclassification block updates the Gr-LGr table as shown in FIG. 8A based on the data size information of the analysis result written in the memory subsystem in the previous super step sent from the host. For example, when the data size of the analysis result written in the previous super step is larger than the originally assumed data size, p is reduced by the equation shown in (3). Therefore, the data reclassification block reduces the number of groups belonging to one large group (FIG. 17 (a) Pre SS size / Gr.). These controls are used when the memory subsystem does not send the analysis result data size written during the previous super step to the memory subsystem even if the data size of the analysis result written during the previous super step is not sent.
- the data reclassification block displays the Gr ⁇ Update the LGr table. For example, if the number of vertices and the amount of data in the group belonging to the original large group 1 increase and the number of vertices and the amount of data in the group belonging to the original large group 2 decrease as a result of updating the graph data, The classification block reduces the number of groups belonging to the large group 1 and increases the number of groups belonging to the large group 2 (FIG. 17 (b) Update graph). As a result, the data reclassification block equalizes the data size between the large groups. ⁇ F. Summary of effects> The main effects obtained by the configuration and processing described above are as follows.
- large-capacity non-volatile memory By using large-capacity non-volatile memory, large-scale memory space required for big data analysis etc. can be provided at low cost, and even if there are many types of identifiers indicating the order in which data can be erased, garbage collection can be performed. The capacity of the non-volatile memory required can be reduced.
- a non-volatile memory such as a NAND flash memory whose bit cost is lower than that of a DRAM or the like, and even in that case, a plurality of group numbers indicating the erasable order
- a plurality of group numbers indicating the erasable order By bundling to form a new large group, data in the same large group share the same erase unit in the non-volatile memory, thereby eliminating garbage collection in the non-volatile memory and enabling high-speed data processing.
- a server including a host that performs data processing, a nonvolatile memory, and a memory subsystem control circuit that manages the nonvolatile memory
- the server manages data analysis and the nonvolatile memory.
- You may comprise from a host and the memory subsystem control circuit which controls a non-volatile memory according to management of a host.
- a large-scale graph was analyzed with the relationship between the group number and vertex number fixed. However, when the graph changes dynamically, the relationship between the group number and vertex number is dynamically changed. It may be changed.
- the big data processing handled in the present application is not limited to the above graph analysis.
- big data (controlled by key and value) according to the key is divided into a plurality of groups for each key value.
- the memory processing may be performed in the same manner as the above processing.
- the memory process may be executed by regarding the same array as the same group.
- the scope of the process includes a large-scale database search and data This includes cases such as extraction. In these processes, big data can be read and written at high speed, so that the big data processing can be speeded up.
- SVR ... Server, Host ... Host, Interconnect ... Interconnect, MSS ... Memory subsystem, CPU ... Information processing circuit, MSC ... Memory subsystem control circuit, NVM ... Non-volatile Memory, DMAC ... Memory access control circuit, C-BF ... Command buffer, D-BF ... Data buffer, A-BF ... Address buffer, M-BF ...
Abstract
Description
<A.サーバの構成>
まず、サーバ(SVR)の構成について、図1と図2を用いて説明する。図1に、情報処理装置であるサーバ全体の構成を示す。サーバは、複数のホスト(Host(1)~Host(N))と、全てのホストを接続するインターコネクト(Interconnect)と、それぞれのホストに接続された複数のメモリサブシステム(MSS(1)~MSS(N))とから構成される。
<B.不揮発性メモリの構造と読み書き消去処理>
次に、図3を用いて、不揮発性メモリ内の構成及びデータの読み出しと書き込みと消去の処理を説明する。それぞれの不揮発性メモリは、N_blk個のブロック(BLK)から構成され、各ブロックはN_pg個のページ(PG)から構成される。ここで、N_blkとN_pgは自然数である。例えば、不揮発性メモリである容量8GB/chipのNANDフラッシュメモリにおける1ブロックのデータサイズが1MBで、1ページのデータサイズが8kBの時、N_blk=8k=(8GB/1MB)であり、N_pg=128=(1MB/8kB)である。
<C.グラフとグラフ解析シーケンス>
図4は、サーバで取り扱うグラフの一例を示す図である。ここで例として挙げるグラフは、グラフの頂点(Vertex)に各頂点を一意に特定する頂点番号が割り当てられており、2つの頂点を繋ぐ一本のグラフの辺(Edge)は、その2つの頂点の間に関係性があることを表す。グラフの各頂点及び頂点間の関係性が解析対象のグラフデータとなる。
<D.ホストとメモリサブシステム間の通信>
図6を用いて、ホストとメモリサブシステムの間の通信を説明する。図6は、グラフ解析開始前、データ書き込み時、及びグラフ解析中に、ホストがメモリサブシステムへ送付する情報を示す図である。
(a)グラフ解析開始前(Before Analysis)
ホストがグラフ解析を開始する前、ホストはメモリサブシステムへ、グループ番号の総数(Total Gr.#,図5のMに対応)とグループごとのデータサイズ(Size/Gr.)を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を決定し、各グループ番号のデータの書き込み先を決定する。
(b)データ書き込み時(Write)
ホストがメモリサブシステムへデータ書き込み命令を発行する際(Write)、ホストはメモリサブシステムへ、書き込みデータのグループ(Gr.)の番号と、データの種類(グラフデータ(CSR)、解析結果(MSG)など)と、書き込みデータ(data)と、論理アドレス(Adr)と書き込みデータサイズ(size)を送付する。メモリサブシステムはホストから送付された上記情報を基に、データを不揮発性メモリへ書き込む。
(c)グラフ解析中(S.S./Update)
グラフ解析を実行中、例えばスーパーステップの切れ目のタイミングなどで、前スーパーステップにメモリサブシステムへ書き込まれた解析結果のデータサイズや、解析された頂点数など(Size/Pre S.S.)を、ホストはメモリサブシステムへ送付する。また、グラフ解析中にグラフデータが更新された場合、グラフデータが更新されたタイミングなどで、ホストはメモリサブシステムへグラフの更新情報(Update info.)を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を更新する。
<E.グラフ解析におけるメモリサブシステム制御回路の処理>
(1)グラフ解析開始前の処理
図7、図8を用いて、グラフ解析開始前のメモリサブシステムの制御に関して説明する。
(2)データ書き込み処理
図9~11を用いて、メモリサブシステムへデータを書き込む際の制御に関して説明する。
(3)データの再分類方法
図12、図13を用いて、本発明におけるデータの再分類方法の一例に関して説明する。 図12は、グループ及びラージグループに分類されたデータが消去可能となる順を示す。図5のグラフ解析シーケンスに示したように、グラフ解析を実行するホストは、グループ番号順に処理を行い、解析結果のデータ(MSG)もその順に消去可能となる(図12の左の“Erasable”)。データ再分類ブロックは、連続する複数のグループ番号のデータをまとめてラージグループ(LGr.)に分類する。したがって、グループと同様に、解析結果のデータ(MSG)はラージグループ順に消去可能となる(図12の左の“Erasable”)。
(N_NVM×BLK_sz×g)/p
となる。また、1グループあたりのデータサイズをsとすると、1ラージグループあたりに消去されるデータ容量は、
s×p
となる。したがって、これらが等しくなるためのpの条件から、
p= √((N_NVM×BLK_sz×g)/s)
が導かれる。上式に従って、データ再分類ブロックは、幾つのグループを1つのラージグループにまとめたらよいか計算する。
(4)論理アドレスと物理アドレスの関係
図14、図15を用いて、本発明における論理アドレスと物理アドレスの関係を説明する。
(5)グラフ解析中の処理
図16、図17を用いて、本発明におけるグラフ解析中の制御を説明する。
<F.効果のまとめ>
以上説明した構成及び処理により得られる主な効果は以下の通りである。
Claims (15)
- ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、
前記メモリサブシステムは、第1のメモリと、第1のメモリへ前記データを書き込む制御回路を備えており、
前記第1のメモリは、データの消去単位のサイズがデータの書き込み単位のサイズより大きく、
前記制御回路は、前記識別子に基づいて前記データを分類分けし、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むことを特徴とする情報処理装置。 - 前記ホストは、
前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方をメモリサブシステムの制御回路に通知することを特徴とする請求項1に記載の情報処理装置。 - 前記メモリサブシステムの制御回路は、
異なる前記識別子の数と前記識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項2に記載の情報処理装置。 - 前記ホストは、
前記データの処理の実行中に、前記データの付帯情報をメモリサブシステムの制御回路に通知することを特徴とする請求項1に記載の情報処理装置。 - 前記メモリサブシステムは、
前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項4に記載の情報処理装置。 - 前記データの付帯情報は、
解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項5に記載の情報処理装置。 - 前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第1のメモリの総容量の方が小さいことを特徴とする 請求項1に記載の情報処理装置。
- 前記メモリサブシステムは、
前記第1のメモリよりも高速にアクセス可能な第2のメモリと、不揮発性メモリである前記第1のメモリを備えたことを特徴とする請求項1に記載の情報処理装置。 - 前記メモリサブシステムは、
前記データの分類分けを管理する情報を前記第2のメモリへ書き込むことを特徴とする請求項8に記載の情報処理装置。 - ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへ、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、データの消去可能な順序を示す識別子を基に、前記データを分類分けし、
前記メモリサブシステムは、
データの消去単位のサイズがデータの書き込み単位のサイズより大きな第1のメモリと、
前記ホストの前記書き込み命令により、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むメモリサブシステム制御回路を備えたことを特徴とする情報処理装置。 - 前記ホストは、
前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項10に記載の情報処理装置。 - 前記ホストは、
前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項10に記載の情報処理装置。 - 前記データの付帯情報は、
解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項12に記載の情報処理装置。 - 前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第1のメモリの総容量の方が小さいことを特徴とする 請求項10に記載の情報処理装置。
- 前記メモリサブシステムは、
前記第1のメモリよりも高速にアクセス可能な第2のメモリと、不揮発性メモリである前記第1のメモリを備えたことを特徴とする請求項10に記載の情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015561085A JP6100927B2 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
PCT/JP2014/052607 WO2015118623A1 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
US15/116,622 US9927996B2 (en) | 2014-02-05 | 2014-02-05 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/052607 WO2015118623A1 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015118623A1 true WO2015118623A1 (ja) | 2015-08-13 |
Family
ID=53777457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/052607 WO2015118623A1 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9927996B2 (ja) |
JP (1) | JP6100927B2 (ja) |
WO (1) | WO2015118623A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016174744A1 (ja) * | 2015-04-28 | 2016-11-03 | 株式会社日立製作所 | 不揮発性メモリの制御方法、制御装置、および半導体記憶装置 |
US10754516B2 (en) * | 2018-06-05 | 2020-08-25 | Ge Inspection Technologies, Lp | User interface |
US20210035644A1 (en) * | 2019-08-01 | 2021-02-04 | Macronix International Co., Ltd. | Memory apparatus and data access method for memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276647A (ja) * | 2007-05-02 | 2008-11-13 | Seiko Epson Corp | データ記録装置 |
JP2010198209A (ja) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | 半導体記憶装置 |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7254668B1 (en) * | 2002-10-28 | 2007-08-07 | Sandisk Corporation | Method and apparatus for grouping pages within a block |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
-
2014
- 2014-02-05 US US15/116,622 patent/US9927996B2/en active Active
- 2014-02-05 JP JP2015561085A patent/JP6100927B2/ja active Active
- 2014-02-05 WO PCT/JP2014/052607 patent/WO2015118623A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276647A (ja) * | 2007-05-02 | 2008-11-13 | Seiko Epson Corp | データ記録装置 |
JP2010198209A (ja) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | 半導体記憶装置 |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160350020A1 (en) | 2016-12-01 |
JPWO2015118623A1 (ja) | 2017-03-23 |
JP6100927B2 (ja) | 2017-03-22 |
US9927996B2 (en) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189389B2 (en) | Memory controller and memory system | |
JP5002201B2 (ja) | メモリシステム | |
JP5969130B2 (ja) | 情報処理装置 | |
US11630766B2 (en) | Memory system and operating method thereof | |
US11042305B2 (en) | Memory system and method for controlling nonvolatile memory | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
US20100088461A1 (en) | Solid state storage system using global wear leveling and method of controlling the solid state storage system | |
US20150120988A1 (en) | Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same | |
JP6139711B2 (ja) | 情報処理装置 | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
CN104461387A (zh) | 一种提高固态硬盘对未映射区域的读性能的方法 | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US10929303B2 (en) | Data storage device utilizing virtual blocks to improve performance and data storage method thereof | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
US20230281118A1 (en) | Memory system and non-transitory computer readable recording medium | |
US10303368B2 (en) | Storage device that determines data attributes based on continuity of address ranges | |
US9213498B2 (en) | Memory system and controller | |
JP6100927B2 (ja) | 情報処理装置 | |
CN107229580A (zh) | 顺序流检测方法与装置 | |
US20130326120A1 (en) | Data storage device and operating method for flash memory | |
CN112181274A (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US20190034121A1 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
TW201624288A (zh) | 快取記憶體裝置及非暫態電腦可讀取記錄媒體 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14881927 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015561085 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15116622 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14881927 Country of ref document: EP Kind code of ref document: A1 |