JP6100927B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP6100927B2 JP6100927B2 JP2015561085A JP2015561085A JP6100927B2 JP 6100927 B2 JP6100927 B2 JP 6100927B2 JP 2015561085 A JP2015561085 A JP 2015561085A JP 2015561085 A JP2015561085 A JP 2015561085A JP 6100927 B2 JP6100927 B2 JP 6100927B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- information processing
- memory subsystem
- host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Description
本発明はビッグデータの高速処理に適した情報処理装置に関するものである。
今後、ビッグデータ解析の需要が高まるため、計算機が扱うデータ量は爆発的に増加する。一方、計算機に搭載できるDRAM容量は限られるため、安価な大容量不揮発性メモリにビックデータを格納し、高速に解析する技術が望まれる。
大容量不揮発性メモリは、データ消去単位(ブロック)がデータ書き込み単位より大きく、データの上書きができない。また、不揮発性メモリを用いた従来の記憶装置では、異なるタイミングで不要となるデータが不揮発性メモリの同一ブロック内に混在する。このため、記憶装置は物理的に散在する必要なデータをそれぞれのブロックから読み出したのち、データを読み出したブロックを消去し、読み出されたデータを消去されたブロックへ書き戻す。この処理はガーベッジコレクションと呼ばれる。
特許文献1、2には、不揮発性メモリを用いた記憶装置に対し、データの論理アドレスや書き込み順を基にデータを分類し、その分類を基にデータの書き込み先を決定する技術が開示されている。
不揮発性メモリを用いた記憶装置でガーベッジコレクションが発生すると、ホストの読み書きの処理が待たされ、記憶装置の性能が低下する。加えて、ガーベッジコレクションそのものが消去処理を含むため、消去回数に上限のある記憶装置の寿命劣化を招く。更に、ガーベッジコレクションを実行するため、記憶装置に不揮発性メモリを余分に搭載する必要があり、記憶装置のコスト増大の原因となる。これらの問題を解決するには、ガーベッジコレクションを排除する必要がある。
特許文献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))とから構成される。
<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)である。
<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つの頂点の間に関係性があることを表す。グラフの各頂点及び頂点間の関係性が解析対象のグラフデータとなる。
<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.)を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を更新する。
<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を用いて、グラフ解析開始前のメモリサブシステムの制御に関して説明する。
<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を用いて、メモリサブシステムへデータを書き込む際の制御に関して説明する。
(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”)。
(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を用いて、本発明における論理アドレスと物理アドレスの関係を説明する。
(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を用いて、本発明におけるグラフ解析中の制御を説明する。
(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.効果のまとめ>
以上説明した構成及び処理により得られる主な効果は以下の通りである。
<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の分類とは異なる第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に記載の情報処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/052607 WO2015118623A1 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6100927B2 true JP6100927B2 (ja) | 2017-03-22 |
JPWO2015118623A1 JPWO2015118623A1 (ja) | 2017-03-23 |
Family
ID=53777457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015561085A Active JP6100927B2 (ja) | 2014-02-05 | 2014-02-05 | 情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9927996B2 (ja) |
JP (1) | JP6100927B2 (ja) |
WO (1) | WO2015118623A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306381A (zh) * | 2019-08-01 | 2021-02-02 | 旺宏电子股份有限公司 | 存储器装置以及存储器的数据存取方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10388369B2 (en) * | 2015-04-28 | 2019-08-20 | Hitachi, Ltd. | Nonvolatile memory control method, control device, and semiconductor storage device |
US10754516B2 (en) * | 2018-06-05 | 2020-08-25 | Ge Inspection Technologies, Lp | User interface |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006515086A (ja) * | 2002-10-28 | 2006-05-18 | サンディスク コーポレイション | ブロック内のページをグループ化する方法及び装置 |
JP2007517333A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | 不揮発性メモリおよび制御データ管理を伴う方法 |
JP2008276647A (ja) * | 2007-05-02 | 2008-11-13 | Seiko Epson Corp | データ記録装置 |
JP2010198209A (ja) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | 半導体記憶装置 |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI585770B (zh) * | 2015-08-11 | 2017-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
-
2014
- 2014-02-05 US US15/116,622 patent/US9927996B2/en active Active
- 2014-02-05 WO PCT/JP2014/052607 patent/WO2015118623A1/ja active Application Filing
- 2014-02-05 JP JP2015561085A patent/JP6100927B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006515086A (ja) * | 2002-10-28 | 2006-05-18 | サンディスク コーポレイション | ブロック内のページをグループ化する方法及び装置 |
JP2007517333A (ja) * | 2003-12-30 | 2007-06-28 | サンディスク コーポレイション | 不揮発性メモリおよび制御データ管理を伴う方法 |
JP2008276647A (ja) * | 2007-05-02 | 2008-11-13 | Seiko Epson Corp | データ記録装置 |
JP2010198209A (ja) * | 2009-02-24 | 2010-09-09 | Toshiba Corp | 半導体記憶装置 |
JP2011186562A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置及び方法 |
JP2012033002A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306381A (zh) * | 2019-08-01 | 2021-02-02 | 旺宏电子股份有限公司 | 存储器装置以及存储器的数据存取方法 |
Also Published As
Publication number | Publication date |
---|---|
US9927996B2 (en) | 2018-03-27 |
US20160350020A1 (en) | 2016-12-01 |
JPWO2015118623A1 (ja) | 2017-03-23 |
WO2015118623A1 (ja) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189389B2 (en) | Memory controller and memory system | |
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
JP5969130B2 (ja) | 情報処理装置 | |
US11630766B2 (en) | Memory system and operating method thereof | |
US11042305B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN105094686A (zh) | 数据缓存方法、缓存和计算机*** | |
JP6139711B2 (ja) | 情報処理装置 | |
US11513949B2 (en) | Storage device, and control method and recording medium thereof | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
CN104461387A (zh) | 一种提高固态硬盘对未映射区域的读性能的方法 | |
US10929303B2 (en) | Data storage device utilizing virtual blocks to improve performance and data storage method thereof | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
US20240143219A1 (en) | Software-hardware combination method for internal mapping address query of zoned namespace | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
US10303368B2 (en) | Storage device that determines data attributes based on continuity of address ranges | |
JP6100927B2 (ja) | 情報処理装置 | |
CN107229580A (zh) | 顺序流检测方法与装置 | |
US10007601B2 (en) | Data storage device and operating method for flash memory | |
US20150234740A1 (en) | Memory system | |
CN110515861B (zh) | 处理刷写命令的存储设备及其方法 | |
CN112181274A (zh) | 提升存储设备性能稳定性的大块的组织方法及其存储设备 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
US20190034121A1 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
TW201624490A (zh) | 記憶體裝置及非暫態電腦可讀取記錄媒體 | |
CN107066208B (zh) | 一种外存设备的非对称读写方法及nvm外存设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170223 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6100927 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |