WO2015118623A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

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
Application number
PCT/JP2014/052607
Other languages
English (en)
French (fr)
Inventor
洋 内垣内
三浦 誓士
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2015561085A priority Critical patent/JP6100927B2/ja
Priority to PCT/JP2014/052607 priority patent/WO2015118623A1/ja
Priority to US15/116,622 priority patent/US9927996B2/en
Publication of WO2015118623A1 publication Critical patent/WO2015118623A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed 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

 ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、前記メモリサブシステムは、第1のメモリと、第1のメモリへ前記データを書き込む制御回路を備えており、前記第1のメモリは、データの消去単位のサイズがデータの書き込み単位のサイズより大きく、前記制御回路は、前記識別子に基づいて前記データを分類分けし、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込む情報処理装置により、記憶装置の性能及び寿命を向上させつつ、記憶装置のコストを低減することが可能となる。

Description

情報処理装置
 本発明はビッグデータの高速処理に適した情報処理装置に関するものである。
 今後、ビッグデータ解析の需要が高まるため、計算機が扱うデータ量は爆発的に増加する。一方、計算機に搭載できるDRAM容量は限られるため、安価な大容量不揮発性メモリにビックデータを格納し、高速に解析する技術が望まれる。
 大容量不揮発性メモリは、データ消去単位(ブロック)がデータ書き込み単位より大きく、データの上書きができない。また、不揮発性メモリを用いた従来の記憶装置では、異なるタイミングで不要となるデータが不揮発性メモリの同一ブロック内に混在する。このため、記憶装置は物理的に散在する必要なデータをそれぞれのブロックから読み出したのち、データを読み出したブロックを消去し、読み出されたデータを消去されたブロックへ書き戻す。この処理はガーベッジコレクションと呼ばれる。
 特許文献1、2には、不揮発性メモリを用いた記憶装置に対し、データの論理アドレスや書き込み順を基にデータを分類し、その分類を基にデータの書き込み先を決定する技術が開示されている。
米国特許公報US7254668 B1 米国特許公報US7139864 B2
 不揮発性メモリを用いた記憶装置でガーベッジコレクションが発生すると、ホストの読み書きの処理が待たされ、記憶装置の性能が低下する。加えて、ガーベッジコレクションそのものが消去処理を含むため、消去回数に上限のある記憶装置の寿命劣化を招く。更に、ガーベッジコレクションを実行するため、記憶装置に不揮発性メモリを余分に搭載する必要があり、記憶装置のコスト増大の原因となる。これらの問題を解決するには、ガーベッジコレクションを排除する必要がある。
 特許文献1に開示された技術では、論理アドレスを基にデータを分類分けしており、依然として、不揮発性メモリの同じブロック内に必要なデータと不要なデータが混在する。また、特許文献2に開示された技術では、データの書き込み順を基にデータを分類分けしており、依然として、不揮発性メモリの同じブロックに必要なデータと不要なデータが混在する。このため、ガーベッジコレクションを排除しようとすると、不揮発性メモリ上に確保するデータ書き込み先領域のサイズは増大し、記憶装置のコスト増大を招いていた。
 そこで、本発明の目的は、ガーベッジコレクションを排除し、更に、記憶装置に必要な不揮発性メモリの容量を減らすことで、記憶装置のコストを低減することである。
 上記目的を達成するために、本発明は請求の範囲に記載の構成を採用する。
 本発明にかかる情報処理装置は、ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、前記メモリサブシステムは、第1のメモリと、第1のメモリへ前記データを書き込む制御回路を備えており、前記第1のメモリは、データの消去単位のサイズがデータ書き込み単位のサイズより大きく、前記制御回路は、前記識別子に基づいて前記データを分類分けし、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むことを特徴とする。
 また、本発明にかかる情報処理装置は、ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、データの消去可能な順序を示す識別子を基に、前記データを分類分けし、前記メモリサブシステムは、データの消去単位のサイズがデータの書き込み単位のサイズより大きな第1のメモリと、前記ホストの前記書き込み命令により、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むメモリサブシステムの制御回路を備えたことを特徴とする。
 本発明によれば、ビッグデータ解析などに必要な大規模なメモリ空間を不揮発性メモリで安価に提供でき、かつ、データ消去可能な順序を示す識別子の種類が多い場合でも、ガーベッジコレクションを排除し、更に必要な不揮発性メモリの容量を減らすことができる。これにより、記憶装置の性能及び寿命を向上させつつ、記憶装置のコストを低減することが可能となる。
サーバ(情報処理装置)の構成の例を示す図である。 サーバ内のメモリサブシステムの構成の例を示す図である。 メモリサブシステム内の不揮発性メモリのチップ、ブロック、ページの構成と読み書き消去の処理対象の例を示す図である。 サーバの処理対象であり、ビッグデータであるグラフの例を示す図である。 サーバにおいて実行されるグラフ解析処理のシーケンスの例を示す図である。 ホストからメモリサブシステムへ送信される情報の例を示す図である。 グラフ解析前におけるメモリサブシステム制御回路の処理の例を示すフローチャートである。 メモリサブシステム制御回路の処理に用いるデータ管理テーブルの例を示す図である。 メモリサブシステム制御回路によるデータ書き込み処理におけるデータフロー、及びラージグループ番号に対応するデータが格納される不揮発性メモリのチップの例を示す図である。 メモリサブシステム制御回路によるデータ書き込み処理の例を示すフローチャートである。 メモリサブシステム制御回路の処理に用いるブロック管理テーブルの例を示す図である。 グラフ処理における、消去可能なデータ順の例を示す図である。 前スーパーステップの解析結果の格納領域、及び現スーパーステップの開始時に確保される書き込み先領域と不揮発性メモリチップの関係の例を示す図である。 サーバにおける仮想メモリと論理アドレス及び物理アドレスの関係の例を示す図である。 グラフ解析における論理アドレスと物理アドレスの関係の例を示す図である。 グラフ解析のスーパーステップの切れ目もしくはグラフ更新の際のメモリサブシステム制御回路の処理の例を示すフローチャートである。 グラフ解析のスーパーステップの切れ目もしくはグラフ更新の際のメモリサブシステム制御回路の処理における、管理テーブルの更新の例を示す図である。
 以下に添付図面を参照して、好ましいサーバ(情報処理装置)の実施の形態を詳細に説明する。
<A.サーバの構成>
 まず、サーバ(SVR)の構成について、図1と図2を用いて説明する。図1に、情報処理装置であるサーバ全体の構成を示す。サーバは、複数のホスト(Host(1)~Host(N))と、全てのホストを接続するインターコネクト(Interconnect)と、それぞれのホストに接続された複数のメモリサブシステム(MSS(1)~MSS(N))とから構成される。
 ホストは、情報処理回路(CPU)と、この情報処理回路に接続された1個以上のメモリ(DRAM)から構成される。全てのホストはインターコネクトを介して互いに通信することができる。また、ホストはそれぞれ接続されたメモリサブシステムと互いに通信することができる。情報処理回路は、メモリ及びメモリサブシステムから情報を読み込み、情報を書き込むことにより処理を実行する。
 メモリサブシステムは、それぞれ1個のメモリサブシステム制御回路(MSC)と1個以上の不揮発性メモリ(NVM)と1個以上のメモリ(DRAM)から構成される。メモリサブシステム制御回路はホスト、不揮発性メモリ、メモリと互いに通信することができる。
 メモリサブシステムの中のメモリは管理情報などを格納するメモリであり、高速なDRAMが好ましいが、DRAM以外にMRAM、相変化メモリ、SRAM、NORフラッシュメモリ、ReRAMなどのメモリでもよい。また、不揮発性メモリへ書き込むデータと読み出すデータとを一時的に記憶して不揮発性メモリのキャッシュとして使用してもよい。不揮発性メモリはホストから書き込まれたデータを格納するメモリであり、安価で大容量なNANDフラッシュメモリ、相変化メモリ、ReRAMなどが挙げられる。これらはデータ消去単位のサイズがデータ書き込み単位のサイズ以上であるメモリである。
 図2はメモリサブシステムを更に詳細に示したものである。
 メモリサブシステムは、1個のメモリサブシステム制御回路(MSC)と、不揮発性メモリ(NVM(1,1)~NVM(i,j))と、メモリ(DRAM(1)~DRAM(p))とから構成される(i、j、pは自然数)。メモリサブシステム制御回路は、メモリアクセス制御回路(DMAC)とコマンドバッファ(C-BF)と、データバッファ(D-BF)と、アドレスバッファ(A-BF)と、メタデータバッファ(M-BF)と、レジスタ(RG)と、データ再分類ブロック(D-RCLSFY_BLK)と、不揮発性メモリ制御回路(NVMC(1)~NVMC(i))と、DRAM制御回路(DRAMC(1)~DRAMC(p))とから構成される。
 メモリアクセス制御回路(DMAC)は、図1におけるホストと、コマンドバッファと、データバッファと、アドレスバッファと、メタデータバッファと、レジスタと接続されており、接続先間のデータ通信を行う。コマンドバッファ、データバッファ、アドレスバッファ、メタデータバッファ、レジスタのぞれぞれはデータ再分類ブロックとも接続されており、コマンドバッファは、データの読み出し命令、書き込み命令、消去命令を一時的に格納するバッファであり、データバッファは、読み書きされるデータを一時的に格納するバッファである。アドレスバッファは、ホストからの読み出し、書き込み及び消去命令におけるデータのアドレスを一時的に格納するバッファである。なお、データのサイズも一時的に格納することができる。
 メタデータバッファは、ホストからの読み出し、書き込み及び消去命令におけるデータのグループ番号、データの種類(グラフデータ(CSR)、解析結果(MSG)など)などのメタデータを一時的に格納するバッファである。ただし、メタデータはこれらに限定されるものではなく、これ以外の情報であってもよい。
 レジスタは、データ再分類ブロックにおける各制御に必要な制御情報(データの総グループ番号、グループごとのデータサイズ、前回のスーパーステップで書き込まれたデータサイズ、グラフの更新情報など)を格納して、データ再分類ブロックから読み出し可能とするレジスタである。ただし、必要な制御情報はこれらに限定されるものではなく、これ以外の情報であってもよい。
 データ再分類ブロックは、レジスタ、コマンドバッファ、データバッファ、アドレスバッファ、メタデータバッファと通信し、不揮発性メモリ制御回路とDRAM制御回路を制御するものである。
 不揮発性メモリ制御回路(NVMC(1)~NVMC(i))は、不揮発性メモリ(NVM(i,1)~NVM(i,j))に接続されており、接続された不揮発性メモリのデータ読み出しと、データの書き込みと、データの消去を行う。ここで、iは自然数であってチャネル番号を表し、複数のチャネルはそれぞれ独立して通信できるデータ転送バス(I/O)を備える。1つのチャネルに属するj個の不揮発性メモリ(NVM(i,1),NVM(i,2),…,NVM(i,j))は、データ転送バスを共有する。また、各チャネルに属するj個の不揮発性メモリは、メモリとしては独立しているため、不揮発性メモリ制御回路からの命令を独立に処理することができる。j個の不揮発性メモリは、不揮発性メモリ制御回路から物理的に近い順にウェイ(Way1,Way2,…,Wayj)に属する。各不揮発性メモリがデータ処理中か否かを、不揮発性メモリ制御回路は、各不揮発性メモリに接続されたレディービジー線(RY/BY)の信号を読むことで判定することができる。不揮発性メモリ制御回路は、データ再分類ブロックと接続され、互いに通信できる。
 DRAM制御回路(DRAMC(1)~DRAMC(p))は、それぞれメモリ(DRAM(1)~DRAM(p))に接続され、メモリからのデータ読み出しとメモリへのデータの書き込みを行う。また、DRAM制御回路はデータ再分類ブロックと接続され、互いに通信できる。
<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)である。
 不揮発性メモリに格納されたデータはページの単位で読み出され、不揮発性メモリへデータを書き込む際はページの単位で書き込む。また、不揮発性メモリに格納されたデータはブロックの単位で消去される。不揮発性メモリにデータを書き込む際、データの上書きはできない。したがって、例えば図3において消去されたブロック内のページ(PG_e)へデータを書き込むことはできるが、既にデータが書き込まれたページ(PG_d)には新しいデータを書き込むことはできない。以上をまとめると不揮発性メモリは以下の2つの特徴を有する。
 特徴1:消去単位(ブロック)のデータサイズは書き込み単位(ページ)のデータサイズ以上である。
 特徴2:データが既に書き込まれたページなどには新しいデータを上書きできない。
 以下、サーバの処理について、大規模グラフ解析を例に挙げて説明する。まず、図4、5を用いて、サーバで取り扱うグラフの例とそのグラフデータの解析シーケンスの例を説明する。
<C.グラフとグラフ解析シーケンス>
 図4は、サーバで取り扱うグラフの一例を示す図である。ここで例として挙げるグラフは、グラフの頂点(Vertex)に各頂点を一意に特定する頂点番号が割り当てられており、2つの頂点を繋ぐ一本のグラフの辺(Edge)は、その2つの頂点の間に関係性があることを表す。グラフの各頂点及び頂点間の関係性が解析対象のグラフデータとなる。
 一般にグラフ解析の対象となるグラフの頂点は膨大な数となるため、グラフデータは頂点番号に応じてグループに分けられ、グループごとに解析される。ただし、解析対象となるグラフはこの例に限定されるものではなく、頂点間の関係性に方向性を有する有向グラフ(Directed Graph)や、複数種類の関係性を有するMulti-relational Graphや、各頂点及び辺に付帯情報を有するProperty Graph及び付帯情報に重みが付けられたWeighted Graphなど、この例以外のグラフであってもよい。
 図5にサーバにおけるグラフ解析のシーケンスの一例を示す。メモリサブシステム(MSS)内の不揮発性メモリには、グラフデータ(CSR)とグラフ解析の結果(MSG)が格納され、それらはそれぞれグループごと読み書きされる。以下のシーケンスは、N個のホスト及びメモリサブシステムにおいて、同時並行的に実行される。
 時刻1(T1):まず、メモリサブシステムは不揮発性メモリに格納されたグループ1に属するグラフデータ(Read CSR Gr.1)とグラフ解析の結果(Read MSG Gr.1)を読み出し、ホストへ送付する。
 時刻2(T2):次に、ホストは、メモリサブシステムから送られてきたグループ1のグラフデータ及びグラフ解析の結果を解析する(Analyze Gr.1)。これと並行して、メモリサブシステムは、次にホストで解析されるグループ2のグラフデータ(Read CSR Gr.2)及びグラフ解析の結果(Read MSG Gr.2)を読み出す。またこれらと並行して、メモリサブシステムは、グループ1のグラフ解析結果を消去する(Erase MSG Gr.1)。この結果はホストによる解析の後、二度と使われないため、このタイミングで消去が可能である。
 時刻3(T3):それぞれのホストは、グループ1のグラフ解析の結果を他のホストへ伝える。各ホストは他のホストから送られてきたグラフ解析の結果をグループごとにまとめ、メモリサブシステムに送付する。メモリサブシステムは、ホストから送られたグラフ解析の結果を不揮発性メモリの書き込み単位で不揮発性メモリに書き込む(Write MSG(Gr. # at random))。
 以上のシーケンスをグループ順に繰り返し、全てのグループ1~Mの処理の終了後、各ホスト(Host(1)~Host(N))の間で処理終了の同期が実行される(SYNC)。この一連のグループ1~Mの処理及び同期をスーパーステップ(S.S.)と呼び、同期の後、再度グループ1から順に処理は繰り返される。前のスーパーステップでメモリサブシステムに書き込まれたグラフ解析の結果(MSG)は、次のスーパーステップで読み出される。グラフ解析はこのスーパーステップの繰り返しによって実行される。
<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.)を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を更新する。
 次に、サーバがグラフ処理を行う際のメモリサブシステムの処理を図7~17を用いて説明する。
<E.グラフ解析におけるメモリサブシステム制御回路の処理>
(1)グラフ解析開始前の処理
 図7、図8を用いて、グラフ解析開始前のメモリサブシステムの制御に関して説明する。
 図7にメモリサブシステムの制御シーケンスを示す。まず、グラフ解析の開始前、ホストは、メモリサブシステムの制御に必要な情報モリサブシステムのレジスタに書き込む(Step 1 RCV info)。メモリサブシステムの制御に必要な情報は、グラフ解析におけるグループの総数、グループごとのデータサイズ(Size/Gr.)、グラフの頂点数や辺の数などであり、グラフの最短経路探索の場合は、最短経路を求めたい2頂点、すなわち、始点と終点を特定する情報なども含まれる。次に、メモリサブシステム制御回路内のデータ再分類ブロックは、レジスタを参照し(Step 2 Read RG)、ホストから送付されたグループの総数及びグループごとのデータサイズなどを基にして、データの再分類方法を決定する(Step 3 Det. Gr. CLS.)。また、その再分類方法に基づき、データ再分類ブロックは、図8に示すテーブルを作成し、メモリサブシステム内のDRAMへ格納する(Step 4 Make Table)。
 図8(a)Gr-LGrは、ホストから送られたデータのグループ番号と、データ再分類ブロックによって決定されたデータ分類であるラージグループ番号(LGr)との間の対応付けを管理するテーブルである。図8(b)LGr-PAは、ラージグループ番号とデータの書き込み先(Physical Address)の間の対応付けを管理するテーブルである。データの再分類方法の詳細は、(3)データの再分類方法で説明する。
(2)データ書き込み処理
 図9~11を用いて、メモリサブシステムへデータを書き込む際の制御に関して説明する。
 図9に示すように、メモリサブシステムへデータ書き込む際、ホストは、書き込みリクエストと共に、データのグループ番号(Gr.383)、データの種類(MSG)、論理アドレス(Adr)及びデータサイズ(size)を、メモリサブシステム制御回路(MSC)へ送付する(1. Write Req.)。メモリサブシステム制御回路は、メモリサブシステム内のDRAMに格納された管理テーブル(図8(a)Gr-LGr, (b)LGr-PA)を参照し、データの書き込み先を決定する(2. Det. Addr)。図9に示すように、各チャネルに属する複数の不揮発性メモリチップ(NVM chip)に、同一ラージグループに属するデータの書き込み先を分散させ、且つ同時に、不揮発性メモリの同一の消去単位(Block)内は同一ラージグループのデータのみを書き込む。
 図10にデータ書き込み時のデータ再分類ブロックの制御シーケンスを示す。まず、メモリサブシステム制御回路(MSC)内のデータ再分類ブロックは、コマンドバッファを参照し、ホストから送付されたデータ書き込みリクエストを受領する(Step 1 RCV Req.)。次に、データ再分類ブロックは、メタデータバッファ(M-BF)を参照し(Step 2 Read BF)、データのグループ番号を読み出す。同様に、データ再分類ブロックは、アドレスバッファからデータの論理アドレスとデータサイズを読み出す。そのあと、データ再分類ブロックは、メモリサブシステム内のDRAMに格納された管理テーブルGr-LGr(図8(a))を参照し、メタデータバッファから読み出したグループ番号が、どのラージグループ番号に対応するかを判定する。次に、データ再分類ブロックは、管理テーブルLGr-PA(図8(b))のうち、該当するラージグループ番号に対応する行を参照する。そして、データ再分類ブロックは、対応する行のPage cnts.を1増加させる。その結果、Page cnts.がメモリサブシステム制御回路によって決定された閾値を超えた場合、図11に示すブロック管理テーブル(BLK_ST)を参照する。そして、各チャネルに属する不揮発性メモリチップから、1つずつ空きブロック”ERASED”を選択し、管理テーブルLGr-PAのPhysical Addressの項目を更新する。また、選択されたブロックに関して、ブロック管理テーブル(BLK_ST)に記録されているブロックの状態を”ERASED”から”ALLOCATED”に更新し、管理テーブルLGr-PAの対応する行のPage cnts.の値を0に更新する(Step 3 see & update table)。次に、データ再分類ブロックは、管理テーブルLGr-PAのうち、該当するラージグループ番号の行を参照し、データの書き込み先を決定する(Step 4 Det. Addr)。最後に、データ再分類ブロックは、ブロック管理テーブル(BLK_ST)のStatus of blockの欄を”ALLOCATED”から”PROGRAMMED”に更新する(Step 5 Update table)。
(3)データの再分類方法
 図12、図13を用いて、本発明におけるデータの再分類方法の一例に関して説明する。 図12は、グループ及びラージグループに分類されたデータが消去可能となる順を示す。図5のグラフ解析シーケンスに示したように、グラフ解析を実行するホストは、グループ番号順に処理を行い、解析結果のデータ(MSG)もその順に消去可能となる(図12の左の“Erasable”)。データ再分類ブロックは、連続する複数のグループ番号のデータをまとめてラージグループ(LGr.)に分類する。したがって、グループと同様に、解析結果のデータ(MSG)はラージグループ順に消去可能となる(図12の左の“Erasable”)。
 図13に示すように、グラフ解析のスーパーステップの開始時に、メモリサブシステム制御回路(MSC)内のデータ再分類ブロックは、ラージグループ数分の書き込み領域を不揮発性メモリ上に確保する(S.S.2)。1つのラージグループの書き込み先として割り当てる不揮発性メモリの数をN_NVM(図13ではチャネル数に等しく、N_NVM=i)とすると、N_NVM×(ラージグループ数)個の不揮発性メモリの消去ブロックが、スーパーステップの開始時に書き込み先として割り当てられる。ページランク計算の場合、このスーパーステップ開始時に割り当てられる不揮発性メモリの容量と、1ラージグループあたりに消去されるデータ容量が等しくなったとき、トータルで必要となる不揮発性メモリの容量は最小となる。不揮発性メモリの消去ブロックの容量をBLK_sz、総グループ数をg、1ラージグループあたりのグループ数をpとおくと、スーパーステップ開始時に割り当てられる不揮発性メモリの容量は、
(N_NVM×BLK_sz×g)/p
となる。また、1グループあたりのデータサイズをsとすると、1ラージグループあたりに消去されるデータ容量は、
s×p
となる。したがって、これらが等しくなるためのpの条件から、
p= √((N_NVM×BLK_sz×g)/s)
が導かれる。上式に従って、データ再分類ブロックは、幾つのグループを1つのラージグループにまとめたらよいか計算する。
(4)論理アドレスと物理アドレスの関係
 図14、図15を用いて、本発明における論理アドレスと物理アドレスの関係を説明する。
 図14は仮想アドレスと論理アドレスと物理アドレスの関係を示す。仮想アドレスは、OS上で実行されるプロセスが利用するアドレス空間を指し、ページ(V_page)単位で管理される。また仮想アドレスは、通常DRAMや記憶装置の実容量とは関係なく、OSから各プロセスに割り当てられる。一方、論理アドレスは、DRAMや記憶装置毎に割り振られたアドレスであり、ページ単位(L_page)で管理される。また、OSは仮想アドレスと論理アドレスの間の変換を行う(図14、A)。物理アドレスは、記憶装置のデータ格納先を直接指し示すアドレスであり、メモリサブシステムの例では、チャネル、ウェイ、ブロック、ページなどである。通常、記憶装置のコントローラによって、論理アドレスと物理アドレスは変換される(図14、B)。
 次に、図15を用いて、本発明における論理アドレスと物理アドレスの容量の関係の一例を示す。グラフ解析を実行するホストは、グループ1から順に、前スーパーステップの解析結果データ(MSG)を読み出し、読み出し後、データは不要となる。そのため、ラージグループも同様に1から順に不要となる。ホストは、メモリサブシステムに、2スーパーステップ分の解析結果のデータサイズを格納できるだけの論理アドレス空間を割り当てる。メモリサブシステム内の不揮発性メモリの容量である物理アドレス空間の領域は、論理アドレス空間の領域より小さく取ることが可能である。データ再分類ブロックは、スーパーステップの開始時に、次のスーパーステップの解析結果データを格納するための物理アドレス領域(図15、b)を確保する。ここで、bの領域は、1スーパーステップで書き込まれる全てのデータ(Logical内のS.S.2 L_Gr.1 MSG 1-8 ~ S.S.2 L_Gr.32 MSG 1-8)が収まる必要はなく、全ラージグループに属するデータの書き込み先(図15、b: S.S.2 L_Gr.1 MSG 1 ~ S.S.2 L_Gr.32 MSG 1)が一意に定まる領域であればよい。データ再分類ブロックは、不要となった解析結果のデータ(図15、a)を不揮発性メモリから消去し、bの領域が不足した場合は、新たに空き領域となった不揮発性メモリの領域を、新しいbの領域として割り当てる。
(5)グラフ解析中の処理
 図16、図17を用いて、本発明におけるグラフ解析中の制御を説明する。
 図16は、グラフ解析中の処理シーケンスを示す。グラフ解析のスーパーステップの間やグラフデータの更新時、ホストは、メモリサブシステムの制御に必要なデータを、メモリサブシステムのレジスタに書き込む(Step 1 RCV info)。制御に必要なデータは、例えば、前スーパーステップに書き込まれた解析結果(MSG)のデータ量や、各グループのデータサイズ及び頂点数の増減などの情報である。次に、データ再分類ブロックは、レジスタを参照し(Step 2 Read RG)、ホストから送付された情報を基に、データの再分類方法を更新する(Step 3 Update Gr. CLS.)。その後、データ再分類ブロックは、更新された再分類方法を、管理テーブルに反映させる(Step 4 Update table)。
 図17は、データ再分類方法の更新の一例を示す。ホストから送られた前スーパーステップにメモリサブシステムに書き込まれた解析結果のデータサイズの情報を基に、データ再分類ブロックは、図8(a)に示すようにGr-LGrテーブルを更新する。例えば、前スーパーステップに書き込まれた解析結果のデータサイズが、もともと想定されていたデータサイズより大きかった場合、(3)で示した式により、pが減少する。このため、データ再分類ブロックは、1ラージグループに属するグループの数を減少させる(図17(a)Pre S.S. size/Gr.)。これらの制御は、ホストからメモリサブシステムへ、前スーパーステップの間に書き込まれた解析結果のデータサイズが送付されない場合においても、メモリサブシステムが、前スーパーステップの間に書き込まれた解析結果のデータサイズをカウントすることにより、実行可能である。また、グラフが更新された際、各グループのデータ量及び頂点数の増減の情報がホストからメモリサブシステムへ送付された場合、データ再分類ブロックは、図8(b)に示すようにGr-LGrテーブルを更新する。例えば、グラフデータの更新の結果、もともとのラージグループ1に属するグループ内の頂点数及びデータ量が増大し、もともとのラージグループ2に属するグループ内の頂点数及びデータ量が減少した場合、データ再分類ブロックは、ラージグループ1に属するグループの数を減少させ、ラージグループ2に属するグループ数を増大させる(図17(b)Update graph)。これにより、データ再分類ブロックは、ラージグループ間のデータサイズを均等にする。
<F.効果のまとめ>
 以上説明した構成及び処理により得られる主な効果は以下の通りである。
 大容量不揮発性メモリを使用することで、ビッグデータの解析などに必要な大規模なメモリ空間を安価に提供でき、かつ、データ消去可能な順序を示す識別子の種類が多い場合でも、ガーベッジコレクションを排除し、必要な不揮発性メモリの容量を減らすことができる。すなわち、ビッグデータの高速処理を行うサーバにおいて、DRAMなどよりビットコストが安価なNANDフラッシュメモリなどの不揮発性メモリにデータを格納し、かつ、その場合でも、消去可能な順序を示すグループ番号を複数束ねて新しいラージグループを形成し、同一ラージグループのデータが不揮発性メモリの同一消去単位を共有することによって、不揮発性メモリにおけるガーベッジコレクションを排除し、高速なデータ処理を可能にし、更に、グループ番号の数が増大した場合でも、必要な不揮発性メモリの容量を削減することを可能にする。これにより、記憶装置の性能を向上させつつ、記憶装置のコストを低減することが可能となる。
 以上の説明では、データ処理を行うホスト、不揮発性メモリ、及び不揮発性メモリを管理するメモリサブシステム制御回路から構成されるサーバの例を挙げたが、サーバはデータ解析及び不揮発性メモリを管理するホスト、及びホストの管理にしたがって不揮発性メモリを制御するメモリサブシステム制御回路とから構成してもよい。上記では、グループ番号と頂点番号の関係性が固定された状態で大規模グラフを解析する例を挙げたが、グラフが動的に変更する場合、グループ番号と頂点番号の関係性を動的に変更してもよい。また、本願で取り扱うビッグデータ処理は上記グラフ解析に限定されるものではなく、たとえば、MapReduce処理において、Keyに応じて(keyとvalueで制御された)ビッグデータを、key値ごとに複数のグループに分割し、上記処理と同様にメモリ処理を行ってもよい。また、ソースコード上で大きな配列を確保するビッグデータ処理アプリケーションにおいて、同一配列を同一グループとみなして上記メモリ処理を実行しても良く、上記処理の適用範囲は、大規模なデータベースの検索及びデータ抽出などを行う場合も含まれる。そして、これらの処理においてもビッグデータを高速に読み書きできるため、ビッグデータ処理を高速化できる。
 以上、添付図面を参照して具体的に説明したが、好ましい実施の形態は以上の説明に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
SVR・・・サーバ、Host・・・ホスト、Interconnect・・・インターコネクト、MSS・・・メモリサブシステム、CPU・・・情報処理回路、MSC・・・メモリサブシステム制御回路、NVM・・・不揮発性メモリ、DMAC・・・メモリアクセス制御回路、C-BF・・・コマンドバッファ、D-BF・・・データバッファ、A-BF・・・アドレスバッファ、M-BF・・・メタデータバッファ、RG・・・レジスタ、D-RCLSFY_BLK・・・データ再分類ブロック、NVMC・・・不揮発性メモリ制御回路、DRAMC ・・・DRAM制御回路、Ch・・・チャネル(1~i)、Way・・・ウェイ(1~j)、RY/BY・・・レディービジー線、I/O・・・データ転送バス、BLK・・・ブロック(BLK)、PG・・・ページ(PG)、PG_d・・・データが書き込まれているページ、PG_e・・・データが消去されたページ、N_pg・・・1ブロックあたりのページ数、N_blk・・・1チップ当たりのブロック数、Vertex・・・頂点、Edge・・・辺、S.S. ・・・スーパーステップ、CSR・・・グラフデータ、MSG・・・解析結果、SYNC・・・バリア同期、Gr-LGr・・・グループ/ラージグループ変換テーブル、LGr-PA・・・ラージグループ/物理アドレス変換テーブル、BLK_ST・・・ブロック管理テーブル。

Claims (15)

  1.  ホストとメモリサブシステムとを備えた情報処理装置であって、
     前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、
     前記メモリサブシステムは、第1のメモリと、第1のメモリへ前記データを書き込む制御回路を備えており、
     前記第1のメモリは、データの消去単位のサイズがデータの書き込み単位のサイズより大きく、
     前記制御回路は、前記識別子に基づいて前記データを分類分けし、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むことを特徴とする情報処理装置。
  2.  前記ホストは、
     前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方をメモリサブシステムの制御回路に通知することを特徴とする請求項1に記載の情報処理装置。
  3.  前記メモリサブシステムの制御回路は、
     異なる前記識別子の数と前記識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項2に記載の情報処理装置。
  4.  前記ホストは、
     前記データの処理の実行中に、前記データの付帯情報をメモリサブシステムの制御回路に通知することを特徴とする請求項1に記載の情報処理装置。
  5.  前記メモリサブシステムは、
     前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項4に記載の情報処理装置。
  6.  前記データの付帯情報は、
    解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項5に記載の情報処理装置。
  7.  前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第1のメモリの総容量の方が小さいことを特徴とする 請求項1に記載の情報処理装置。
  8.  前記メモリサブシステムは、
     前記第1のメモリよりも高速にアクセス可能な第2のメモリと、不揮発性メモリである前記第1のメモリを備えたことを特徴とする請求項1に記載の情報処理装置。
  9.  前記メモリサブシステムは、
     前記データの分類分けを管理する情報を前記第2のメモリへ書き込むことを特徴とする請求項8に記載の情報処理装置。
  10.  ホストとメモリサブシステムとを備えた情報処理装置であって、
     前記ホストは、前記メモリサブシステムへ、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、データの消去可能な順序を示す識別子を基に、前記データを分類分けし、
     前記メモリサブシステムは、
     データの消去単位のサイズがデータの書き込み単位のサイズより大きな第1のメモリと、
    前記ホストの前記書き込み命令により、第1の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第1の同一消去領域へ書き込み、前記第1の分類とは異なる第2の分類に属する前記データを、前記第1のメモリ内の同時に消去可能な第2の同一消去領域へ書き込むメモリサブシステム制御回路を備えたことを特徴とする情報処理装置。
  11.  前記ホストは、
     前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項10に記載の情報処理装置。
  12.  前記ホストは、
     前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項10に記載の情報処理装置。
  13.  前記データの付帯情報は、
     解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項12に記載の情報処理装置。
  14.  前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第1のメモリの総容量の方が小さいことを特徴とする 請求項10に記載の情報処理装置。
  15.  前記メモリサブシステムは、
     前記第1のメモリよりも高速にアクセス可能な第2のメモリと、不揮発性メモリである前記第1のメモリを備えたことを特徴とする請求項10に記載の情報処理装置。
PCT/JP2014/052607 2014-02-05 2014-02-05 情報処理装置 WO2015118623A1 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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