JP2019191863A - 記憶装置,情報処理プログラムおよび情報処理システム - Google Patents

記憶装置,情報処理プログラムおよび情報処理システム Download PDF

Info

Publication number
JP2019191863A
JP2019191863A JP2018083044A JP2018083044A JP2019191863A JP 2019191863 A JP2019191863 A JP 2019191863A JP 2018083044 A JP2018083044 A JP 2018083044A JP 2018083044 A JP2018083044 A JP 2018083044A JP 2019191863 A JP2019191863 A JP 2019191863A
Authority
JP
Japan
Prior art keywords
command
information
flash memory
calculation
storage device
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.)
Granted
Application number
JP2018083044A
Other languages
English (en)
Other versions
JP7131053B2 (ja
Inventor
慎哉 桑村
Shinya Kuwamura
慎哉 桑村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018083044A priority Critical patent/JP7131053B2/ja
Priority to US16/368,935 priority patent/US11074012B2/en
Publication of JP2019191863A publication Critical patent/JP2019191863A/ja
Application granted granted Critical
Publication of JP7131053B2 publication Critical patent/JP7131053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】半導体メモリへの読み書きを行うためのコマンドを送信する送信元装置からのコマンド発行回数を削減し、負荷を軽減する記憶装置を提供する。【解決手段】情報処理システム1において記憶装置10は、半導体メモリ104−1〜104−4と、メモリコントローラ100を備える。メモリコントローラは、論理アドレスを複数の物理アドレスに変換する情報111を備え、送信元装置2から演算コマンドを受信すると、演算コマンド処理部112が情報111に基づいて、論理アドレスを物理アドレスに変換し、演算コマンドを複数のコマンドに分割する。【選択図】図1

Description

本発明は、記憶装置,情報処理プログラムおよび情報処理システムに関する。
近年、SSD(Solid State Drive)において、ハードウェアで実装されていたフラッシュメモリ制御部としての機能をソフトウェアで実装し、SSDのフラッシュメモリをソフトウェアから直接制御できるようにしたソフトウェア制御型SSDが提案されている。なお、ソフトウェア制御型SSDをソフトウェア定義型SSDという場合がある。
図8はソフトウェア制御型SSDの構成を示す図である。
SSD300は、フラッシュメモリコントローラ302及びフラッシュメモリ322−1〜322−4を備える。フラッシュメモリ322−1〜322−4としては、例えば、不揮発性メモリであるNANDフラッシュメモリが用いられる。
フラッシュメモリコントローラ302は、ホストインタフェース(ホストI/F)331およびフラッシュメモリインタフェース(フラッシュメモリI/F)332−1,332−2を備える。フラッシュメモリI/F332−1は、ホストI/F331およびフラッシュメモリ322−1,322−2に接続され、フラッシュメモリI/F332−2は、ホストI/F331およびフラッシュメモリ322−3,322−4に接続されている。
以下では、フラッシュメモリ322−1〜322−4のいずれかを指して、フラッシュメモリ322と記載することがある。また、フラッシュメモリI/F332−1,332−2のいずれかを指して、フラッシュメモリI/F332と記載することがある。
各フラッシュメモリ322におけるデータの消去単位はブロックと呼ばれ、データの読み書き単位はページと呼ばれる。1ブロックのサイズは、例えば、数Mバイトであり、1ページのサイズは、例えば、数Kバイトから十数Kバイトである。
フラッシュメモリI/F332−1は、フラッシュメモリ322−1,322−2から読み出されるデータの誤り訂正を行なう。一方、フラッシュメモリI/F332−2は、フラッシュメモリ322−3、322−4から読み出されるデータの誤り訂正を行なう。
フラッシュメモリ322から読み出されたデータは、フラッシュメモリI/F332を介してホストI/F331に入力される。
ホスト装置301において実行されるアプリケーション311やライブラリ312は、フラッシュメモリ322の物理アドレスを、ソフトウェア側から直接指定することで、フラッシュメモリ322に対するデータアクセスを行なう。
これにより、アプリケーション311やライブラリ312は、フラッシュメモリ322に対するデータのリードやライトを細かく制御することができ、アプリケーション311やライブラリ312に応じた最適化されたデータアクセスをフラッシュメモリ322に対して行なうことができる。
特開2018−5686号公報 特開2003−203486号公報 特開2010−160605号公報 米国特許出願公開第2010/0174951号明細書 特開2015−7843号公報
Jaeyoung Do, Yang-Suk Kee, Jignesh M. Patel, Chanik Park, Kwanghyun Park, David J. DeWitt: "Query Processing on Smart SSDs: Opportunities and Challenges," SIGMOD ’13, 2013 ACM SIGMOD International Conference on Management of Data, pages 1221-1230, June 22 - 27, 2013
しかしながら、このような従来のソフトウェア制御型SSDにおいて、アプリケーション311やライブラリ312からのフラッシュメモリ322への読み書きはページ単位で行なわれる。そして、フラッシュメモリ322における検索対象データの格納場所はアプリケーション311が管理しているので、アプリケーション311等がフラッシュメモリ322のページ毎に検索コマンドを発行する必要がある。すなわち、ホスト装置301からSSD300へのコマンド発行回数が多くなり、ホスト装置301のCPU(Central Processing Unit)負荷が高くなるという課題がある。
また、フラッシュメモリのページサイズは一般に数KB〜十数KBであるため、アクセス対象のデータサイズが大きい場合には、さらにコマンド発行数が増大する。
例えば、ページサイズが8KBである場合に、データサイズが8MBであると1024ページとなり、データサイズが8GBでは約105万(=1024×1024)となる。
1つの側面では、本発明は、コマンド発行回数を削減し、負荷を軽減することができるようにすることを目的とする。
このため、この記憶装置は、半導体メモリと、前記半導体メモリを制御するメモリコントローラとを備える。前記メモリコントローラが、論理アドレスを複数の物理アドレスに変換する情報を備え、演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する。
一実施形態によれば、コマンド発行回数を削減し、負荷を軽減することができる。
実施形態の一例としての情報処理システムの構成を例示する図である。 実施形態の一例としての情報処理システムにおける変換情報を例示する図である。 実施形態の一例としての情報処理システムのSSDにおける演算処理時の各部の処理の概要を説明するためのシーケンス図である。 実施形態の一例としての情報処理システムにおけるホストI/Fによる処理を説明するためのフローチャートである。 実施形態の一例としての情報処理システムのSSDにおける演算処理時の各部の処理の変形例の概要を説明するためのシーケンス図である。 実施形態の一例としての情報処理システムにおける変換情報の変形例を示す図である。 実施形態の一例としての情報処理システムにおける変換情報の変形例を示す図である。 ソフトウェア制御型SSDの構成を示す図である。
以下、図面を参照して本記憶装置,情報処理プログラムおよび情報処理システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのソフトウェア定義型SSD10を備える情報処理システム1の構成を例示する図である。
図1に示す情報処理システム1は、ホスト装置2およびソフトウェア定義型SSD10を備え、ビッグデータ処理、データベースアプライアンス、ストレージシステム等の様々な技術に適用することができる。
[ホスト装置]
ホスト装置2は、例えばサーバ機能を備えた情報処理装置であり、CPU20および記憶装置23を備え、ソフトウェア定義型SSD10に通信可能に接続される。
記憶装置23は、例えば、メモリやHDD(Hard Disk Drive)であり、種々のデータやOS(Operating System),プログラムを格納する。そして、この記憶装置23に変換情報111が格納される。
変換情報111は、SSD10における物理アドレスと論理アドレスとを対応付ける情報である。
図2は実施形態の一例としての情報処理システム1における変換情報111を例示する図である。
図2に例示する変換情報111において、論理アドレスは16進数で表され、論理ブロックアドレス(LBA:Logical Block Addressing)で表される。物理アドレスはSSD10における物理位置情報であり、チャネル番号,チップ番号,ブロック番号およびページ番号の組み合わせで表される。
この図2に示す例においては、例えば、論理アドレス“000000 - 3fffff”は物理アドレス“0,0,0,0 - 0,0,0,255”に対応する。
変換情報111は、この変換情報111をSSD10のレジスタ等の図示しない記憶装置に保存させる設定コマンドとともに、ホスト装置2からSSD10に対して送信される。
変換情報111は、例えば、SSD10においてフラッシュメモリ104に書き込みが行なわれる度に更新される。
ホスト装置2は、変換情報111が更新されると、更新後の変換情報111をSSD10に設定コマンドとともに速やかに送信することが望ましい。
SSD10において、後述する演算コマンド処理部112は、ホスト装置2から送信された変換情報111を図示しないレジスタ等の記憶装置に格納する。
CPU20は種々の制御や演算を行なう処理装置であり、例えば、アプリケーション21またはライブラリ22を実行することで、ソフトウェア定義型SSD10が提供する記憶領域に対して読み出しや書き込み等のデータアクセスを行なう。以下、アプリケーション21またはライブラリ22のことを単にアプリケーション21等という場合がある。
アプリケーション21等は、SSD10の物理情報を管理し、ウェアレベリング及びガーベージコレクションを制御する。これにより、データをSSD10のフラッシュメモリ104−1〜104−4に分散して配置することが可能になり、高スループットかつ低レイテンシの高速な読み出し処理等が実現される。
ホスト装置2は、SSD10にデータを登録する場合、複数のフラッシュメモリ104に分散してデータを書き込み、書き込みアドレスを記録する。すなわち、ホスト装置2においてアプリケーション21等は、SSD10に対して、書き込みを目的とするデータアクセス命令を発行する。
例えば、ホスト装置2は、SSD10に登録されたデータを使用する場合、読み出し命令または演算命令をSSD10に発行する。
また、ホスト装置2において、アプリケーション21等はSSD10に対して演算の実行を指示する演算命令(演算コマンド)を発行する。
演算命令が実行を指示する演算としては、例えば、SSD10のフラッシュメモリ104−1〜104−4が記憶するデータの検索や、データに対する統計演算等が挙げられる。本情報処理システム1において、アプリケーション21等がSSD10に発行する演算コマンドは、論理アドレス(LBA:Logical Block Addressing)を用いてアクセス先の範囲領域を指定する演算命令であってもよい。
以下、演算が検索である例について示す。すなわち、ホスト装置2のアプリケーション21等は、SSD10に対して、演算コマンドとして検索コマンドを発行する。
このような検索コマンドにおいては、SSD10のフラッシュメモリ104−1〜104−4の記憶領域における検索対象の範囲領域(アクセス先)を論理アドレスを用いて指定してキーワードの検索を指示してもよい。
従来のソフトウェア制御型SSDの使用に際しては、ホスト装置2のアプリケーション21等は、SSD10に対してSSD10におけるページ単位で演算コマンドを発行する。すなわち、検索対象の範囲領域が複数ページにわたる場合には、検索対象のページ数と同数の検索コマンドが発行される。なお、ページは、フラッシュメモリ104に対してデータの書き込みや読み出しが行なわれる単位サイズ(データアクセスサイズ,読み書きサイズ)の領域であり、一般に数KBから十数KBのデータサイズを有する。
これに対して、本情報処理システム1においては、ホスト装置2のアプリケーション21等は、ソフトウェア制御型SSD10に対してページ単位の多数の演算コマンドを発行する代わりに、論理アドレスを用いてアクセス先を指定する1つの演算コマンドを発行してもよい。以下、アプリケーション21やライブラリ22から発行される論理アドレスを用いてアクセス先を指定する演算コマンドを範囲指定演算コマンド(第1演算コマンド)という場合がある。
本情報処理システム1において、ホスト装置2のアプリケーション21やライブラリ22は、複数ページをアクセス先とする1つの範囲指定演算コマンドを発行してもよい。
例えば、ホスト装置2のアプリケーション21やライブラリ22は、SSD10に対して、論理アドレス“000000”を始点とするサイズ“0x100000”の範囲領域(アクセス先)を検索対象とする1つの検索コマンドをSSD10に対して発行する。
ホスト装置2は、SSD10にデータを登録する場合、複数のフラッシュメモリ104に分散してデータを書き込み、書き込みアドレスを記録する。一方、SSD10に登録されたデータを使用する場合、ホスト装置2は、読み出し命令または演算命令をSSD10に発行する。
また、ホスト装置2は、記憶装置23に格納した変換情報111をフラッシュメモリコントローラ100に送信して、フラッシュメモリコントローラ100のレジスタ等に格納させる設定コマンドを発行する機能を有する。
[SSD]
ソフトウェア定義型SSD10は、フラッシュメモリコントローラ100および1つ以上(図1に示す例では4つ)のフラッシュメモリ104−1〜104−4を備える。以下、ソフトウェア定義型SSD10を単にSSD10という場合がある。
フラッシュメモリ104−1〜104−4は半導体メモリである。フラッシュメモリ104−1〜104−4としては、例えば、不揮発性メモリであるNANDフラッシュメモリが用いられる。
以下、フラッシュメモリを示す符号としては、複数のフラッシュメモリのうち1つを特定する必要があるときには符号104−1〜104−4を用いるが、任意のフラッシュメモリを指すときには符号104を用いる。
フラッシュメモリ104においては、ページ単位(例えば、数KB〜十数KB)でデータの書き込みや読み出しが行なわれ、ブロック単位(例えば、数MB)でデータの消去が行なわれる。
フラッシュメモリコントローラ100は、フラッシュメモリ104−1〜104−4に対するデータアクセスを制御する。フラッシュメモリコントローラ100は、ホストI/F101,フラッシュメモリI/F103−1,103−2,演算コマンド処理部112,変換情報111及び1つ以上(図1に示す例では2つ)の演算部102−1,102−2を備える。
ホストI/F101は、ホスト装置2,フラッシュメモリI/F103−1,103−2および演算コマンド処理部112に接続されている。フラッシュメモリI/F103−1は、ホストI/F101、演算部102−1およびフラッシュメモリ104−1,104−2に接続されている。また、フラッシュメモリI/F103−2は、ホストI/F101、演算部102−2およびフラッシュメモリ104−3,104−4に接続されている。
以下、フラッシュメモリI/Fを示す符号としては、複数のフラッシュメモリI/Fのうち1つを特定する必要があるときには符号103−1,103−2を用いるが、任意のフラッシュメモリI/Fを指すときには符号103を用いる。さらに、以下、演算部を示す符号としては、複数の演算部のうち1つを特定する必要があるときには符号102−1,102−2を用いるが、任意の演算部を指すときには符号102を用いる。
フラッシュメモリ104−1〜104−4としては、例えば、不揮発性メモリであるNANDフラッシュメモリが用いられる。
ホストI/F101は、ホスト装置2との間で行なわれる通信を制御する。
例えば、ホスト装置2から読み出し命令を受信した場合、ホストI/F101は、データの転送先に指定した読み出し命令を、アクセス先のフラッシュメモリ104に対応するフラッシュメモリI/F103へ出力する。ホストI/F101は、フラッシュメモリI/F103から受信したデータをホスト装置2へ転送する。
演算部102は、データに対する所定の演算を行なう。演算部102としての機能は、例えば回路装置により実現してもよい。
演算部102が行なう演算としては、例えば、フラッシュメモリ104が記憶するデータの検索や、データに対する統計演算等が挙げられる。
演算部102は、これらの機能を実現するための既知の回路装置の組み合わせにより実現してもよい。
前述の如く、本実施形態においては、演算部102がフラッシュメモリ104が記憶するデータの検索を行なう例について示す。
演算部102は、後述する演算コマンド処理部112から受信するページ単位演算コマンドに従って、フラッシュメモリ104が記憶するデータをページ単位で処理(演算)する。
演算部102は、フラッシュメモリI/F103から受信したデータを用いて演算を行なって、演算結果を演算コマンド処理部112へ出力する。
本SSD10においては、演算部102を備え、従来においてはホスト装置において実行される演算をこの演算部102によって実行することで、データ(フラッシュメモリ104)の近くで演算を行なうデータ近傍演算(Near Data Processing)を実現する。
このようなデータ近傍演算においては、SSD10からホスト装置2へのデータの移動コストが削減されることで、高性能化および省電力化を実現することができる。また、ホスト装置2における演算による負荷を軽減することできる。
フラッシュメモリI/F103は、フラッシュメモリ104とメモリコントローラ100との間で行なわれる通信を制御する。具体的には、フラッシュメモリI/F103−1は、フラッシュメモリコントローラ100とフラッシュメモリ104−1,104−2との間で行なわれる通信を制御する。また、フラッシュメモリI/F103−2は、フラッシュメモリコントローラ100とフラッシュメモリ104−3,104−4との間で行なわれる通信を制御する。
例えば、ホスト装置2からの読み出し命令をホストI/F101を介して受信した場合、フラッシュメモリI/F103は、読み出し命令をフラッシュメモリ104へ出力し、フラッシュメモリ104は、データをフラッシュメモリI/F103へ出力する。そして、フラッシュメモリI/F103は、フラッシュメモリ104から受信したデータをホストI/F101へ出力する。
また、 フラッシュメモリI/F103−1は、フラッシュメモリ104−1及びフラッシュメモリ104−2から読み出されるデータの誤り訂正を行なう。一方、フラッシュメモリI/F103−2は、フラッシュメモリ104−3及びフラッシュメモリ104−4から読み出されるデータの誤り訂正を行なう。
さらに、フラッシュメモリI/F103は、フラッシュメモリ104から受信したデータを演算部102へ出力する。
演算コマンド処理部112は、ホスト装置2から受信した範囲指定演算コマンド(第1演算コマンド)に基づき、演算部102に実行させる複数のコマンド(第2演算コマンド)を作成する。演算コマンド処理部112は、ホスト装置2が発行した論理アドレスを用いてフラッシュメモリ104におけるアクセス先を指定する1つの範囲指定演算コマンドに基づき、ページ単位でフラッシュメモリ104におけるアクセス先を指定する複数の演算コマンドを作成する。
具体的には、演算コマンド処理部112は、範囲指定演算コマンドに含まれる論理アドレスに基づいて変換情報111を参照して物理アドレスに変換し、物理アドレスであるページをアクセス先とする(ページ単位の)複数の演算コマンドを作成する。以下、範囲指定演算コマンドに基づいて作成されたページ単位の演算コマンドをページ単位演算コマンドという場合がある。
演算コマンド処理部112は、1つの範囲指定演算コマンドを、そのアクセス先をページ単位に分割することで複数のページ単位演算コマンドに分割すると言える。
例えば、図2に例示する変換情報111において、論理アドレス=000000を始点とするサイズ=0x1000000 (16MiB)の記憶領域を処理対象として指定する演算コマンド(範囲指定演算コマンド)に基づいて、ページ単位演算コマンドを作成する例について示す。
なお、1ブロックは256ページで構成され、1ページのサイズが16KiB(キビバイト)であるものとする。
演算コマンド処理部112は、変換情報111を参照して範囲指定演算コマンドの論理アドレスを物理アドレスに変換する。
これにより、論理アドレス“000000 - 3fffff”は物理アドレス“(0,0,0,0) - (0,0,0,255)”に変換される。
同様にして、論理アドレス“400000 - 7fffff”は物理アドレス“(1,0,0,0) - (1,0,0,255)”に、論理アドレス“800000 - bfffff”は物理アドレス“(2,0,0,0) - (2,0,0,255)”に、論理アドレス“c00000 - ffffff”は物理アドレス“(3,0,0,0) - (3,0,0,255)”に、それぞれ変換される。
演算コマンド処理部112は、変換された物理アドレスを参照し、この物理アドレスにおける各ページをそれぞれアクセス先とする演算コマンドを作成することで、ページ毎の演算コマンド(ページ単位演算コマンド)を作成する。
演算コマンド処理部112は、論理アドレスの範囲に対応する物理アドレスの範囲に含まれるページのそれぞれ毎にページ単位読み出しコマンドを作成する。
本例においては、演算コマンド処理部112は、以下の各ページに対応する1024個のページ単位演算コマンドを作成する。
(0,0,0,0), (0,0,0,1), ..., (0,0,0,255)
(1,0,0,0), (1,0,0,1), ..., (1,0,0,255)
(2,0,0,0), (2,0,0,1), ..., (2,0,0,255)
(3,0,0,0), (3,0,0,1), ..., (3,0,0,255)
本実施形態においては、演算コマンドが指定範囲に対してキーワード検索を行なう検索コマンドであるので、演算コマンド処理部112は、上記の各ページをそれぞれの処理対象領域とする1024個のページ単位読み出しコマンドおよび1024個のページ単位検索コマンドを作成する。
ページ単位検索コマンドは、フラッシュメモリ104からページ単位でデータを読み出すためのコマンドである。このページ単位読み出しコマンドをフラッシュメモリI/F103に発行することで、フラッシュメモリI/F103に処理対象領域として指定するページのデータをフラッシュメモリ104から読み出させる。
ページ単位検索コマンドは、ページ単位読み出しコマンドによって読み出されたページ単位のデータに対して検索を行なうためのコマンドである。このページ単位検索コマンドを演算部102に発行することで、フラッシュメモリ104から読み出されたページ単位のデータを演算部102に予め設定されたキーワードを用いて検索を行なわせる。
演算コマンド処理部112は、範囲指定演算コマンドを分割して複数のページ単位演算コマンド(ページ単位読み出しコマンド,ページ単位検索コマンド)を作成するということができる。
演算コマンド処理部112は、作成したページ単位読み出しコマンドをフラッシュメモリI/F103に発行する。
また、演算コマンド処理部112は、演算部102から受信した演算結果をホスト装置2へ転送する機能を有する。
(B)動作
上述の如く構成された実施形態の一例としての情報処理システム1のSSD10における演算処理時の各部の処理の概要を、図3に示すシーケンス図に従って説明する。
なお、本処理に先だって、ホスト装置2がSSD10に対して変換情報111を保存させる設定コマンドを発行し、ホストI/F101が、ホスト装置2から受信した変換情報111を演算コマンド処理部112に転送する。演算コマンド処理部112は、転送された変換情報111を図示しないレジスタ等の記憶装置に格納する。
ホスト装置2が演算コマンドとして検索コマンドを検索キーであるキーワードとともにSSD10に発行する。この検索コマンドは、論理アドレスを用いてアクセス先の範囲領域を指定して検索を指示する範囲指定演算コマンドである。演算部102は、ホストI/F101から受け取ったキーワードをレジスタ等の記憶装置に格納する。
ホストI/F101は、演算部102にキーワードを設定する。キーワードは例えば、図示しないレジスタ等の記憶装置に格納される(矢印A1参照)。
演算コマンド処理部112は、ホストI/F101が受信した範囲指定演算コマンド(検索コマンド)に基づき(分割して)、複数のページ単位演算コマンド(ページ単位読み出しコマンド)を作成する(矢印A2参照)。
具体的には、演算コマンド処理部112は、範囲指定演算コマンドに含まれる論理アドレスに基づいて変換情報111を参照することで、処理対象領域を物理アドレスに変換して複数のページに分割する。
演算コマンド処理部112は、例えば、ホスト装置2から受信した演算コマンドの処理対象を、分割して得た複数のページに逐次書き換えることで、複数のページ単位読み出しコマンドを作成する。
演算コマンド処理部112は、作成した複数のページ単位読み出しコマンドをフラッシュメモリI/F103に発行する(矢印A3参照)。この際、フラッシュメモリ104から読み出したデータの転送先を演算部102に設定する。
フラッシュメモリI/F103は、フラッシュメモリ104にページ単位読み出しコマンドを発行する(矢印A4参照)。これにより、フラッシュメモリ104からページ転移でデータの読み出しが開始される。フラッシュメモリ104から読み出されたデータはフラッシュメモリI/F103に転送される(矢印A5参照)。
フラッシュメモリI/F103は、フラッシュメモリ104に発行したページ単位読み出しコマンドに対する応答として、フラッシュメモリ104から転送されたデータを演算部102に転送する(矢印A6参照)。
フラッシュメモリ104から演算部102へのデータ転送は、例えば、数十バイト単位で行なわれる。
また、フラッシュメモリI/F103は、フラッシュメモリ104から完了通知(読み出し完了)を受け取ると、ホストI/F101に完了通知(読み出し完了)を送信する。
演算部102は、フラッシュメモリ104から転送されたデータに対して、設定されたキーワードを用いて検索を行なう(矢印A7参照)。すなわち、演算部102は、フラッシュメモリI/F103から受け取ったデータにおいて、キーワードに一致するデータが存在するかを調べる。キーワードに一致するデータが見つかった場合には、そのデータの位置をレジスタ等の記憶装置に記録する。
演算部102は、データ転送の終了時に、検索結果を演算コマンド処理部112に転送する(矢印A8参照)。演算部102は、複数のページ単位読み出しコマンドに対する応答をまとめて演算コマンド処理部112に転送してもよい。また、演算部102は、複数のページ単位読み出しコマンドに対する応答をフラッシュメモリI/F103から転送される都度、順次、演算コマンド処理部112に転送してもよい。
演算コマンド処理部112は、演算部102から転送された検索結果をホストI/F101を経由してホスト装置2に応答する(矢印A9参照)。
次に、実施形態の一例としての情報処理システム1におけるホストI/F101による処理を、図4に示すフローチャート(ステップS1〜S11)に従って説明する。
ホストI/F101がホスト装置2からコマンドを受信すると、ホストI/F101は、受信したコマンドの種類を確認する(ステップS1)。
ステップS1における確認の結果、受信したコマンドが検索コマンド(範囲指定検索コマンド)である場合には(ステップS1の“検索”ルート参照)、ステップS2に移行する。
ステップS2において、ホストI/F101は、データ(応答データ)の転送先を演算部102に設定する。
一方、ステップS1における確認の結果、受信したコマンドが読み出しコマンドである場合には(ステップS1の“読み出し”ルート参照)、ステップS3に移行する。ステップS3においては、ホストI/F101は、ホストI/F101をデータ(応答データ)の転送先として設定する。すなわち、ホストI/F101は、ホストI/F101をデータの転送先として指定した読み出し命令を、アクセス先のフラッシュメモリ104に対応するフラッシュメモリI/F103へ出力する。
ステップS4において、ホストI/F101は、ホスト装置2から受信したコマンドを演算コマンド処理部112に対して発行する。
ステップS5において、ホストI/F101は、ホスト装置2から受信したコマンドが読み出しコマンドであるかを確認する。確認の結果、コマンドが読み出しコマンドでない場合には(ステップS5のNOルート参照)、ステップS8に移行する。
一方、ステップS5における確認の結果、コマンドが読み出しである場合には(ステップS5のYESルート参照)、ステップS6に移行する。ホストI/F101は、フラッシュメモリI/F103からデータを受け取り(ステップS6)、受け取ったデータをホスト装置2に転送する(ステップS7)。
ステップS8において、フラッシュメモリI/F103が全てのデータの転送を完了すると、ホストI/F101は、このフラッシュメモリI/F103から完了通知を受け取る。
ステップS9において、ホストI/F101は、ホスト装置2から受信したコマンドが検索コマンドであるかを確認する。確認の結果、コマンドが検索コマンドである場合には(ステップS9のYESルート参照)、ステップS10に移行する。
ステップS10において、ホストI/F101は、演算コマンド処理部112から検索結果を受け取り、ステップS11において、ホスト装置2に検索結果を応答する。
また、ステップS9における確認の結果、コマンドが検索コマンドでない場合には(ステップS9のNOルート参照)、ステップS11において、ホストI/F101は、例えば、読み出しコマンドや書き込みコマンドに対する結果(成功/失敗)を示すコマンドステータスをホスト装置2に応答する。
(C)効果
このように、実施形態の一例としての情報処理システム1によれば、SSD10のフラッシュメモリコントローラ100が演算コマンド処理部112を備え、ホスト装置2から発行される範囲指定演算コマンドに基づき、複数のページ単位読み出しコマンドを作成する。
これにより、ホスト装置2において、1つの範囲指定演算コマンドを送信するだけで、ソフトウェア定義型SSD10の複数ページを対象とする演算処理を実行させることができる。従って、ホスト装置2におけるソフトウェア定義型SSD10に対するコマンド発行回数を削減することができ、ホスト装置2のCPU20の負荷を軽減することができる。
例えば、演算対象データのサイズが16MiBであり、ページ単位読み出しコマンドサイズが16KiBである場合に、従来手法では、ホスト装置2が16MiB×16KiB=1024回の演算コマンドを発行するところを、本情報処理システム1においては、1つの範囲指定演算コマンドを発行すればよい。
また、ホスト装置2においてCPU20によるコマンド発行の負荷が軽減することで、CPU20が他のタスクを処理することができ、ホスト装置2の全体の処理を高速化することができる。
さらに、ホスト装置2の負荷が軽減することで、消費電力も削減することができる。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、変換情報111は、SSD10に対して1つに限定されるものではなく、複数備えてもよい。すなわち、アプリケーション21毎やVM(Virtual Machine:仮想マシン)毎に変換情報111を備えてもよい。
変換情報111を複数備える場合には、ホスト装置2のアプリケーション21やライブラリ22は、演算コマンド処理部112が使用する変換情報111を指定して範囲指定演算コマンドの転送を行なうことが望ましい。
また、上述した実施形態においては、ホスト装置2が変換情報111を管理し、ホスト装置2は、予め変換情報111の全体をSSD10に転送して、フラッシュメモリコントローラ10100のレジスタ等に格納しているが、これに限定されるものではない。
ホスト装置2は、変換情報111のうち、演算コマンドの対象となる範囲領域に対応する一部分だけを抽出してSSD10に転送してもよい。以下、変換情報111のうち演算コマンドの対象となる範囲領域に対応する一部分を部分変換情報111という場合がある。
図5は実施形態の一例としての情報処理システム1のSSD10における演算処理時の各部の処理の変形例の概要を説明するためのシーケンス図である。
なお、図中、既述の符号と同一の符号を付した処理は同様の部分を示しているので、その説明は省略する。
本変形例においては、ホストI/F101が、演算部102にキーワードを設定した後に(矢印A1参照)、演算コマンド処理部112は、ホスト装置2から送信された部分変換情報111をホストI/F101から読み込み(矢印A21参照)、レジスタ等に格納する。
その後、演算コマンド処理部112は、ホストI/F101が受信した範囲指定演算コマンド(検索コマンド)に基づき(分割して)、複数のページ単位演算コマンド(ページ単位読み出しコマンド)を作成する(矢印A22参照)。
具体的には、演算コマンド処理部112は、範囲指定演算コマンドに含まれる論理アドレスに基づいて部分変換情報111を参照することで、処理対象領域を物理アドレスに変換して複数のページに分割する。
演算コマンド処理部112は、例えば、ホスト装置2から受信した演算コマンドの処理対象を、分割して得た複数のページに逐次書き換えることで、複数のページ単位読み出しコマンドを作成する。
本変形例においては、ホスト装置2からSSD10に対して、変換情報111の全体を転送する代わりに、その一部のみを転送することで、転送に要する時間や通信帯域等の負荷を軽減することができる。また、変換情報111の全体を転送する代わりに、その一部のみを転送することは、フラッシュメモリ104への書き込みが頻繁に行なわれ、変換情報111の更新頻度が高い場合に特に有効である。
ホスト装置2は、範囲領域に対応する一部分の変換情報111の転送を、範囲指定演算コマンドの発行に先立って行なってもよく、また、範囲指定演算コマンドとともにSSD10に転送してもよい。
また、図2に例示した変換情報111においては、一の論理アドレスに対して一の物理アドレスが対応付けられているが、これに限定されるものではなく、種々変形して実施することができる。
図6および図7はそれぞれ実施形態の一例としての情報処理システム1における変換情報111の変形例を示す図である。
変換情報111においては、論理アドレスには任意のアドレッシングが可能である。図6に例示する変換情報111は、一の論理アドレスに対して複数(図6に示す例では2つ)の範囲領域の物理アドレスが対応付けられている。
これにより、ホスト装置2のアプリケーション21やライブラリ22が範囲指定演算コマンドにおいて1つの論理アドレスを用いた範囲指定演算コマンドを発行することで、SSD10において演算コマンド処理部112が、2つの範囲領域のそれぞれに対応するページ単位読み出しコマンドを発行する。
図6に示す例において、例えば、ホスト装置2のアプリケーション21やライブラリ22が範囲指定演算コマンドにおいて1つの論理アドレス“0”を用いた範囲指定演算コマンドを発行すると、SSD10において演算コマンド処理部112が、物理アドレス“0,0,0,0 - 0,0,0,255”および“1,0,0,0 - 1,0,0,255”の各範囲に含まれるページのそれぞれ毎にページ単位読み出しコマンドを作成する。
また、図7に例示する変換情報111は、一の論理アドレスに対して2つのページの物理アドレスが対応付けられている。
図7に示す例において、例えば、ホスト装置2のアプリケーション21やライブラリ22が範囲指定演算コマンドにおいて1つの論理アドレス“0”を用いた範囲指定演算コマンドを発行すると、SSD10において演算コマンド処理部112が、物理アドレス“0,0,0,0”および“1,0,0,0”の各ページのそれぞれ毎にページ単位読み出しコマンドを作成する。
上述した実施形態および変形例において、演算コマンド処理部112や演算部102の少なくとも一部は、上述した機能を実現するための既知の回路装置の組み合わせにより実現してもよい。
また、演算コマンド処理部112や演算部102としての機能をCPUやMPU(Micro-processor Unit)等のプロセッサ(図示省略)がプログラム(情報処理プログラム,演算コプログラム)を実行することで実現してもよく、種々変形して実施することができる。
なお、これらの演算コマンド処理部112および演算部102としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
演算コマンド処理部112および演算部102としての機能を実現する際には、内部記憶装置(本実施形態ではSSD10の図示しないメモリ)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではSSD10のプロセッサ)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
半導体メモリと、
前記半導体メモリを制御するメモリコントローラとを備え、
前記メモリコントローラが、
論理アドレスを複数の物理アドレスに変換する情報を備え、
演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
ことを特徴とする、記憶装置。
(付記2)
前記メモリコントローラが、
論理アドレスを用いて前記半導体メモリにおけるアクセス先を指定する1つの第1演算コマンドに基づき、データアクセスサイズ単位で前記半導体メモリにおけるアクセス先を指定する複数の第2演算コマンドを作成し、
前記第2演算コマンドに従って、前記半導体メモリが記憶するデータをデータアクセスサイズ単位で処理する
ことを特徴とする、付記1記載の記憶装置。
(付記3)
前記メモリコントローラが、前記情報を前記演算コマンドの送信元装置から受信する
ことを特徴とする、付記1または2記載の記憶装置。
(付記4)
前記メモリコントローラが、前記演算コマンドの実行に先だって、当該演算コマンドの処理に用いられる部分の前記情報を前記演算コマンドの送信元装置から受信する
ことを特徴とする、付記3記載の記憶装置。
(付記5)
半導体メモリと、
前記半導体メモリを制御するメモリコントローラとを備える記憶装置において、
前記メモリコントローラのプロセッサに、
論理アドレスを複数の物理アドレスに変換する情報を記憶し、
演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
処理を実行させる、情報処理プログラム。
(付記6)
前記プロセッサに、
論理アドレスを用いて前記半導体メモリにおけるアクセス先を指定する1つの第1演算コマンドに基づき、データアクセスサイズ単位で前記半導体メモリにおけるアクセス先を指定する複数の第2演算コマンドを作成し、
前記第2演算コマンドに従って、前記半導体メモリが記憶するデータをデータアクセスサイズ単位で処理する
処理を実行させる、付記5記載の情報処理プログラム。
(付記7)
前記プロセッサに、前記情報を前記演算コマンドの送信元装置から受信する
処理を実行させる、付記5または6記載の情報処理プログラム。
(付記8)
前記プロセッサに、前記演算コマンドの実行に先だって、当該演算コマンドの処理に用いられる部分の前記情報を前記演算コマンドの送信元装置から受信する
処理を実行させる、付記7記載の情報処理プログラム。
(付記9)
情報処理装置と、
前記情報処理装置と通信可能に接続され、半導体メモリと、前記半導体メモリを制御するメモリコントローラとを備える記憶装置と
を備える情報処理システムであって、
前記情報処理装置が、前記記憶装置に対して演算コマンドを発行し、
前記記憶装置において、前記メモリコントローラが、
論理アドレスを複数の物理アドレスに変換する情報を備え、
前記情報処理装置から前記演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
ことを特徴とする、情報処理システム。
(付記10)
前記情報処理装置が、前記記憶装置に対して、論理アドレスを用いて前記半導体メモリにおけるアクセス先を指定する1つの第1演算コマンドを発行し、
前記記憶装置において、前記メモリコントローラが、
前記第1演算コマンドに基づき、データアクセスサイズ単位で前記半導体メモリにおけるアクセス先を指定する複数の第2演算コマンドを作成し、
前記第2演算コマンドに従って、前記半導体メモリが記憶するデータをデータアクセスサイズ単位で処理する
ことを特徴とする、付記9記載の情報処理システム。
(付記11)
前記情報処理装置が、前記情報を格納し、前記情報を前記記憶装置に送信する
ことを特徴とする、付記9または10記載の情報処理システム。
(付記12)
前記情報処理装置が、前記演算コマンドの発行に先だって、格納した前記情報のうち、当該演算コマンドの処理に用いられる部分を前記記憶装置に送信する
ことを特徴とする、付記11記載の情報処理システム。
1 情報処理システム
2 ホスト装置
21 アプリケーション
22 ライブラリ
10 SSD
11 プロセッサ
100 フラッシュメモリコントローラ
101 ホストインタフェース(I/F)
102−1,102−2,102 演算部
103−1,103−2,103 フラッシュメモリインタフェース(I/F)
104−1〜104−4,104 フラッシュメモリ
111 変換情報
112 演算コマンド処理部

Claims (6)

  1. 半導体メモリと、
    前記半導体メモリを制御するメモリコントローラとを備え、
    前記メモリコントローラが、
    論理アドレスを複数の物理アドレスに変換する情報を備え、
    演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
    ことを特徴とする、記憶装置
  2. 前記メモリコントローラが、
    論理アドレスを用いて前記半導体メモリにおけるアクセス先を指定する1つの第1演算コマンドに基づき、データアクセスサイズ単位で前記半導体メモリにおけるアクセス先を指定する複数の第2演算コマンドを作成し、
    前記第2演算コマンドに従って、前記半導体メモリが記憶するデータをデータアクセスサイズ単位で処理する
    ことを特徴とする、請求項1記載の記憶装置。
  3. 前記メモリコントローラが、前記情報を前記演算コマンドの送信元装置から受信する
    ことを特徴とする、請求項1または2記載の記憶装置。
  4. 前記メモリコントローラが、前記演算コマンドの実行に先だって、当該演算コマンドの処理に用いられる部分の前記情報を前記演算コマンドの送信元装置から受信する
    ことを特徴とする、請求項3記載の記憶装置。
  5. 半導体メモリと、
    前記半導体メモリを制御するメモリコントローラとを備える記憶装置において、
    前記メモリコントローラのプロセッサに、
    論理アドレスを複数の物理アドレスに変換する情報を記憶し、
    演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
    処理を実行させる、情報処理プログラム。
  6. 情報処理装置と、
    前記情報処理装置と通信可能に接続され、半導体メモリと、前記半導体メモリを制御するメモリコントローラとを備える記憶装置と
    を備える情報処理システムであって、
    前記情報処理装置が、前記記憶装置に対して演算コマンドを発行し、
    前記記憶装置において、前記メモリコントローラが、
    論理アドレスを複数の物理アドレスに変換する情報を備え、
    前記情報処理装置から前記演算コマンドを受信すると、前記情報に基づいて、前記演算コマンドを複数のコマンドに分割する
    ことを特徴とする、情報処理システム。
JP2018083044A 2018-04-24 2018-04-24 記憶装置,情報処理プログラムおよび情報処理システム Active JP7131053B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018083044A JP7131053B2 (ja) 2018-04-24 2018-04-24 記憶装置,情報処理プログラムおよび情報処理システム
US16/368,935 US11074012B2 (en) 2018-04-24 2019-03-29 Storage device, information processing system, and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018083044A JP7131053B2 (ja) 2018-04-24 2018-04-24 記憶装置,情報処理プログラムおよび情報処理システム

Publications (2)

Publication Number Publication Date
JP2019191863A true JP2019191863A (ja) 2019-10-31
JP7131053B2 JP7131053B2 (ja) 2022-09-06

Family

ID=68237877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018083044A Active JP7131053B2 (ja) 2018-04-24 2018-04-24 記憶装置,情報処理プログラムおよび情報処理システム

Country Status (2)

Country Link
US (1) US11074012B2 (ja)
JP (1) JP7131053B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901733B1 (en) * 2019-07-01 2021-01-26 Western Digital Technologies, Inc. Open channel vector command execution
US10901624B1 (en) 2019-07-01 2021-01-26 Western Digital Technologies, Inc. Dummy host command generation for supporting higher maximum data transfer sizes (MDTS)
US11934684B2 (en) 2021-12-14 2024-03-19 Western Digital Technologies, Inc. Maximum data transfer size per tenant and command type
KR20230092227A (ko) 2021-12-17 2023-06-26 삼성전자주식회사 멀티코어 프로세서 및 스토리지 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160605A (ja) * 2009-01-07 2010-07-22 Panasonic Corp 半導体記憶装置、ホスト機器及び半導体記憶システム
JP2012108912A (ja) * 2010-11-15 2012-06-07 Samsung Electronics Co Ltd データ格納装置、使用者装置及びそれの住所マッピング方法
WO2015162752A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 データベース演算部を備えるフラッシュモジュール、及びストレージ装置
WO2016135874A1 (ja) * 2015-02-25 2016-09-01 株式会社日立製作所 計算機及びデータベースの管理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003203486A (ja) 2002-01-08 2003-07-18 Seiko Epson Corp 半導体記憶装置及びその制御方法
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US8924631B2 (en) * 2011-09-15 2014-12-30 Sandisk Technologies Inc. Method and system for random write unalignment handling
US20150378886A1 (en) * 2013-04-08 2015-12-31 Avalanche Technology, Inc. Software-defined ssd and system using the same
JP6160294B2 (ja) 2013-06-24 2017-07-12 富士通株式会社 ストレージシステム、ストレージ装置及びストレージシステムの制御方法
US8819335B1 (en) * 2013-08-30 2014-08-26 NXGN Data, Inc. System and method for executing map-reduce tasks in a storage device
US9053790B1 (en) * 2014-07-01 2015-06-09 Sandisk Technologies Inc. Counter for write operations at a data storage device
JP6306737B2 (ja) * 2014-11-04 2018-04-04 株式会社日立製作所 半導体メモリデバイス、及び、半導体メモリデバイスを有するストレージ装置
KR102398611B1 (ko) * 2015-05-07 2022-05-17 에스케이하이닉스 주식회사 메모리 시스템
JP6790515B2 (ja) 2016-07-05 2020-11-25 富士通株式会社 ソリッドステートドライブ
US9965356B2 (en) * 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
KR102618699B1 (ko) * 2016-09-28 2024-01-02 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
US10242704B2 (en) * 2017-08-08 2019-03-26 Western Digital Technologies, Inc. Command clustering for data storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160605A (ja) * 2009-01-07 2010-07-22 Panasonic Corp 半導体記憶装置、ホスト機器及び半導体記憶システム
JP2012108912A (ja) * 2010-11-15 2012-06-07 Samsung Electronics Co Ltd データ格納装置、使用者装置及びそれの住所マッピング方法
WO2015162752A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 データベース演算部を備えるフラッシュモジュール、及びストレージ装置
WO2016135874A1 (ja) * 2015-02-25 2016-09-01 株式会社日立製作所 計算機及びデータベースの管理方法

Also Published As

Publication number Publication date
JP7131053B2 (ja) 2022-09-06
US20190324692A1 (en) 2019-10-24
US11074012B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
US11989160B2 (en) Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10289304B2 (en) Physical address management in solid state memory by tracking pending reads therefrom
JP5431453B2 (ja) 記憶要求を追加データ記憶コマンドに変換するための装置、システム及び方法
CN107003935B (zh) 用于优化数据库去重的装置、方法和计算机介质
JP5603997B2 (ja) ストレージ装置及びデータ制御方法
JP4975396B2 (ja) 記憶制御装置及び記憶制御方法
JP7131053B2 (ja) 記憶装置,情報処理プログラムおよび情報処理システム
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
JP2011521315A (ja) マルチプロセッサ/マルチスレッド環境における記憶要求を調整するための装置、システム及び方法
JP2011518380A (ja) 仮想アドレス及び物理アドレスを効率的にマッピングするための装置、システム及び方法
KR20090032821A (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
JP7054001B2 (ja) 情報処理システム、管理装置および制御方法
JP6558059B2 (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US20160246587A1 (en) Storage control device
US11003577B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program of access control with respect to semiconductor device memory
US20200310668A1 (en) Methods and systems of efficiently storing data
JP5531476B2 (ja) 情報処理装置及び情報処理プログラム
KR20190048453A (ko) 저장 장치 및 메모리 시스템
JP2006251990A (ja) データベース再編成プログラムおよびデータベース再編成方法
US11256435B2 (en) Method and apparatus for performing data-accessing management in a storage server
JP2014225297A (ja) フラッシュメモリモジュール及びストレージ装置
KR102673715B1 (ko) 호스트 커널에 부착되는 솔리드 스테이트 드라이브의 데이터 제어 시스템 및 방법
JP4466530B2 (ja) ディスクアレイ装置及び論理アドレス制御方法並びにプログラム
JP2020052852A (ja) ストレージ及び情報処理システム。
JP2004355040A (ja) ディスク制御装置およびデータ先読み方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

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: 20220726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220808

R150 Certificate of patent or registration of utility model

Ref document number: 7131053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150