JP2021536643A - ハイブリッドメモリシステムインタフェース - Google Patents

ハイブリッドメモリシステムインタフェース Download PDF

Info

Publication number
JP2021536643A
JP2021536643A JP2021513846A JP2021513846A JP2021536643A JP 2021536643 A JP2021536643 A JP 2021536643A JP 2021513846 A JP2021513846 A JP 2021513846A JP 2021513846 A JP2021513846 A JP 2021513846A JP 2021536643 A JP2021536643 A JP 2021536643A
Authority
JP
Japan
Prior art keywords
storage
memory
computing system
subblock
data
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.)
Ceased
Application number
JP2021513846A
Other languages
English (en)
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 マイクロン テクノロジー,インク.
Publication of JP2021536643A publication Critical patent/JP2021536643A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • 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/0661Format or protocol conversion arrangements

Abstract

本開示は、ハイブリッドメモリシステムインタフェースに関連する装置及び方法を含む。例示的なコンピューティングシステムは、処理リソースと、ハイブリッドインタフェースを介して処理リソースに結合されたストレージシステムとを備える。ハイブリッドインタフェースは、ブロックレベルのストレージ入力/出力(I/O)アクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートするストレージシステムへのI/Oアクセスパスを提供することができる。

Description

本開示は一般的に、半導体メモリ及び方法に関し、より詳細には、ハイブリッドメモリシステムインタフェースに関連する装置及び方法に関する。
ストレージシステム等のメモリシステムは、コンピュータ、携帯電話、ハンドヘルド電子デバイスなどの電子システムに実装されてよい。ソリッドステートドライブ(SSD)、組み込みマルチメディアコントローラ(eMMC)デバイス、ユニバーサルフラッシュストレージ(UFS)デバイスなどの様々な電子デバイスは、いくつかの処理リソース(例えば、ホストプロセッサ、周辺装置のプロセッサ等)によってアクセス可能なデータを記憶するための不揮発性ストレージコンポーネントを含み得る。不揮発性ストレージコンポーネントは、電源が入っていないときに記憶されたデータを保持することで永続的なデータを提供し、種々のメモリの中でも特に、NANDフラッシュメモリ、NORフラッシュメモリ、読み込み専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、並びに、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)、強誘電性ランダムアクセスメモリ(FeRAM)、磁気抵抗性ランダムアクセスメモリ(MRAM)、プログラム可能な導電性メモリなどの抵抗変化型メモリを含み得る。メモリシステムは、データを維持するために電力を必要とする揮発性ストレージコンポーネントも含み得る。揮発性メモリコンポーネントは、メインシステムメモリ及び/または一時ストレージに使用されることが多い。揮発性メモリの例には、特に、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、及び、サイリスタランダムアクセスメモリ(TRAM)が含まれる。
本開示のいくつかの実施形態による、メインメモリを含むホストとメモリシステムとを含むコンピューティングシステムの形の装置のブロック図である。 一部のアプローチによる、装置のブロック図である。 本開示のいくつかの実施形態による、コンピューティングシステムの一部を表すシステム/アプリケーションレベルのブロック図である。 本開示のいくつかの実施形態による、中央処理装置(CPU)を含むコンピューティングシステムの一部の概略図である。 本開示のいくつかの実施形態による、コンピューティングシステムを操作するための方法の例を示す例示的な流れ図である。
本開示は、ハイブリッドメモリシステムインタフェースに関連する装置及び方法を含む。例示的なコンピューティングシステムは、処理リソースと、ハイブリッドインタフェースを介して処理リソースに結合されたストレージシステムとを備える。ハイブリッドインタフェースは、ブロックレベルのストレージ入力/出力(I/O)アクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートするストレージシステムへのI/Oアクセスパスを提供することができる。
パーソナルコンピュータ、ラップトップ、タブレット、ファブレット、スマートフォン、モノのインターネット(IoT)対応デバイスなどのコンピューティングシステムは、コンピューティングシステムと関連付けられたデータ及び/または命令を記憶する1つまたは複数のメモリリソースを備えてよい。本明細書で使用される場合、「IoT対応デバイス」は、物理デバイス、車両、家庭用電気製品、並びに電子機器、ソフトウェア、センサ、アクチュエータ、及び/またはそのような物体が接続し、データを交換することを可能にするネットワーク接続と共に組み込まれた他のデバイスを含む。IoT対応デバイスの例には、サイバーフィジカルシステムの中でも特に、ウェアラブルテクノロジー、スマートホームデバイス、インテリジェントショッピングシステム、及び、監視デバイスが含まれる。さらに、コンピューティングシステムは、コンピューティングシステム上で実行するアプリケーションに共通サービスを提供するオペレーティングシステムなどのシステムソフトウェアを実行する1つまたは複数の処理リソースを含んでよい。オペレーティングシステムの例は、Android(登録商標)、Linux(登録商標)、Unix(登録商標)、Windows(登録商標)などを含む。
演算の間、コンピューティングシステムの中央処理装置(CPU)等のプロセッサは、ファームウェア、コンピュータコード、メタコード、データベースファイルなどの命令を実行して、コンピューティングシステムに機能を提供してよい。命令を実行するために、命令に関連するいくつかのデータ要求と、いくつかのデータ要求に関連するデータ及び/または命令とは、いくつかのそれぞれのアクセス操作を実行することによって、ストレージシステムからアクセスされてよい。一部のアプローチでは、CPUとストレージシステムの間のI/Oバスは、特定のサイズのみであってよく、CPUにローカルのメモリ(例えば、コンピューティングシステムのメインメモリの内部及び/または外部のキャッシュなど)は、仲介デバイスとして働いてよく、この場合、I/Oバスのサイズ要件を満たすために、いくつかのデータ要求のサイズが修正されてよい。例えば、特定のサイズよりも小さいサイズを有するいくつかのデータ要求は、メインメモリで集約されてよい。次に、I/Oアクセス要求(例えば、特定のサイズに等しいサイズを有する要求)が、集約されたデータ要求に基づいて生成され、特定のサイズのI/Oバスを介してストレージシステムに転送されてよい。したがって、様々なサイズの要求、または要求に関連するデータ及び/または命令をサポートする柔軟性の欠如は、コンピューティングシステムのリソースを消費する場合がある。
一方、本明細書の本開示のいくつかの実施形態は、ハイブリッドメモリシステムインタフェースを利用することによって、命令の実行に関連して消費されるリソースの量を減らし得る。例えば、サブブロックレベルのストレージI/O要求などの要求に関連するデータ及び/または命令は、データ及び/または命令を記憶するストレージシステムから、処理リソース(例えば、CPU)によって直接アクセスされてよい。したがって、一部の実施形態では、いくつかの実施形態によるメインメモリは、必ずしも仲介デバイスとして利用されない場合があり、これによって、メインメモリを介したデータ及び/または命令の転送に関連するレイテンシを短縮することができる。
本開示の以下の詳細な説明では、本開示の一部を形成し、本開示の1つまたは複数の実施形態をどのように実施し得るかを例示として示す添付図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実施することが可能となるように十分詳細に説明されており、本開示の範囲から逸脱することなく、他の実施形態が利用されてよいこと、また、プロセスの変更、電気的変更及び/または構造的変更がなされてよいことが理解されよう。本明細書で使用される場合、特に、図面の参照符号に関する「N」等の指定子は、そのように指定されたいくつかの特定の特徴を含むことができることを示す。本明細書で使用される場合、「いくつかの」特定のものは、そのようなものの1つまたは複数を指す(例えば、いくつかのメモリアレイは、1つまたは複数のメモリアレイを指すことができる)。「複数の」は、そのようなものの複数を指すことを意図している。
本明細書中の図は、最初の数字(単数または複数)が図面の図番に対応し、残りの数字が図面の要素またはコンポーネントを識別するという番号付けの慣習に従う。異なる図における類似の要素またはコンポーネントは、類似の数字を使用することによって識別されてよい。例えば、104は、図1における要素「04」を参照してよく、類似の要素は、図3において304として参照されてよい。認識されるように、本明細書における様々な実施形態において示される要素は、本開示のいくつかの追加の実施形態を提供するように追加、交換、及び/または除去することができる。さらに、認識されるように、図において提供される要素の比率及び相対的大きさは、本発明の特定の実施形態を示すことを意図しており、制限的に取らえられるべきではない。
図1は、本開示のいくつかの実施形態による、メインメモリ109を含むホスト102と、ストレージシステム104とを備えるコンピューティングシステム100の形の装置のブロック図である。本明細書で使用される場合、ホスト102及び/またはストレージシステム104は、別個に「装置」と見なされてもよい。
コンピューティングシステム100(例えば、モバイルシステム)は、モバイルデバイスなどのコンピューティングデバイスであってよい。本明細書で使用される場合、「モバイルデバイス」は、携帯可能であり、携帯用電源を利用し、手で保持及び操作するために十分に小さいデバイスを指す。しかしながら、実施形態はそのようなものに限定されない。一例として、ホスト102は、様々なタイプのホストの中でも特に、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、スマートフォン、メモリカードリーダ、IoT対応デバイスを含み得る。
システム100は、本明細書において示されるように、1つまたは複数のメモリリソースを含むストレージシステム104にI/Oアクセスパスを介して結合された(例えば、接続された)ホスト102を含む。システム100は、別個の集積回路を含むことができる、またはホスト102及びメモリシステム104の両方が、同一の集積回路上にあってよい。システム100は、例えば、サーバシステム及び/または高性能コンピューティング(HPC)システム、及び/またはこれらの一部であってよい。
ホスト102は、システムマザーボード及び/またはバックプレーンを含むことができ、処理リソース103など、いくつかの処理リソース(例えば、1つまたは複数のプロセッサ、マイクロプロセッサ、または何らかの他のタイプの制御回路)を含むことができる。処理リソース103は、命令の実行に関連して生成され得るデータ要求の受信に応答して、メモリリソース108−1,・・・,108−Nに記憶されたデータ及び/または命令にアクセスしてよい。例えば、アプリケーションを開始する要求の受信に応答して、処理リソース103は、アプリケーションの起動に関連する命令を読み出すために、メモリリソース108−1,・・・,108−Nにアクセスしてよい。例えば、処理リソース103は、命令の実行に関連するデータを読み出すために、メモリリソース108−1,・・・,108−Nにアクセスしてよい。本明細書でさらに説明するように、I/Oアクセスパス173を提供するハイブリッドインタフェース(図示せず)は、データ要求のサイズに基づいて、様々なタイプのストレージI/Oアクセス要求に対応し得る。
ホスト102は、処理リソース103にローカルなデータを記憶するハードウェア及び/またはソフトウェアデバイスを含み得るキャッシュ101(例えば、CPUキャッシュ)を備える。ストレージシステム104から読み出されたデータ及び/または命令セット(例えば、処理リソース103によって実行可能な命令セット)は、キャッシュ101にコピーすることができ、それによって、処理リソース103は、データ及び/または命令セットにキャッシュ101からアクセスすることができる。
ホスト102は、メモリ管理ユニット105を備える。メモリ管理ユニット105は、仮想メモリアドレスと物理メモリアドレスの間の変換を実行するハードウェアコンポーネントであってよい。メモリ管理ユニット105は、データ要求のサイズが一致することを要求され得るプラットフォームメモリ管理モデルをさらに規定することができる。いくつかの実施形態では、メモリ管理ユニット105は、ブロックサイズ及びサブブロックサイズのデータ要求の両方が互いに変換されることなく(例えば、サブブロックサイズのデータ要求がブロックサイズのデータ要求に集約されずに)処理され得るように、プラットフォームメモリ管理モデルを柔軟に規定することができる。
ホスト102は、メインメモリ109を備える。いくつかの実施形態では、メインメモリ109は、コンピューティングシステム100の演算と関連するデータの1つまたは複数のページを記憶するために使用され得る、RAM、DRAM、SRAMなどの揮発性メモリであってよい。実施形態は、揮発性メモリに限定されないが、メインメモリは、揮発性メモリに加えてまたはその代わりに、不揮発性メモリを含んでよい。
図1に示すように、ストレージシステム104は、コントローラ106及びメモリリソース108−1,・・・,108−Nを備えることができる。本明細書で使用される場合、ホスト102、ストレージシステム104、コントローラ106、及び/またはメモリリソース108−1,・・・,108−Nは、別個に「装置」と見なされてもよい。
コントローラ106は、状態機械、シーケンサ、または何らかの他のタイプのコントローラであってよく、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイなどの形式のハードウェア及び/またはファームウェア(例えば、マイクロコード命令)を含むことができる。コントローラ106は、例えば、コンピューティングシステム100の演算を促進するように実行される命令のアクセスパターンを制御することができる。
図1に示すように、コントローラ106は、それぞれの通信チャネル107−1,・・・,107−Nを介して、メモリリソース108−1,・・・,108−Nに通信可能に結合される。通信チャネル107−1,・・・,107−Nは、要求、データ及び/または命令がコントローラ106とメモリリソース108−1,・・・,108−Nの間で転送されることを可能にし得る。
図1に示すように、ストレージシステム104は、コントローラ106に結合された1つまたは複数のメモリリソース108−1,・・・,108−Nを備えてよい。一部の実施形態では、ストレージシステム104は、ハイブリッドストレージシステムであってよく、メモリリソース108−1,・・・,108−Nは、異なる種類のメモリリソースであってよい。例えば、メモリリソース108−1は、3D Xpointメモリリソース、強誘電体RAM(FeRAM)などの新たな不揮発性メモリリソースであってよく、メモリリソース108−Nは、NANDメモリリソースであってよい。実施形態は、これらの特定の例に限定されず、メモリリソース108−1,・・・,108−Nは、新たな不揮発性メモリリソースなど、同じ種類のメモリリソースであってよい。
異なる種類のメモリリソース108−1,・・・,108−Nは、様々な特性を示すストレージI/Oアクセス要求をサポート(例えば、実行するために利用)することができる。例えば、様々な特性は、特定のストレージI/O要求の実行の頻度、要求のサイズ、要求の実行が消費するリソース(例えば、メモリリソース及び/または処理リソース)の量、要求が実行され得る速度、または他の適切な特性を含み得る。さらに、異なる種類のメモリリソース108−1,・・・,108−Nは、本明細書に記載するように、様々なサイズを有するストレージI/Oアクセス要求をサポートすることができる。例えば、NANDフラッシュリソースなどの一部のメモリリソースは、ブロックレベルのストレージI/O要求のみをサポートしてよく、他のメモリリソースはサブブロックレベルのストレージI/O要求をサポートしてよい。
ホスト102は、ストレージシステム104へのI/Oアクセスパス173を提供するハイブリッドインタフェース(図示せず)を介してストレージシステム104に通信可能に結合することができる。I/Oアクセスパス173は、ブロックレベルのストレージI/Oアクセス要求とサブブロックレベルのストレージI/O要求の両方をサポートすることができる。様々な実施形態において、ブロックレベルのストレージI/O要求は、ホストキャッシュラインサイズより大きいサイズ(例えば、4キロバイト)を有するストレージI/O要求を指してよく、サブブロックレベルのストレージI/O要求は、ホストキャッシュラインサイズ以下のサイズ(例えば、32、64、及び/または128バイト)を有するストレージI/O要求を指してよい。
I/Oアクセスパス173は、ブロックレベル及びサブブロックレベルの両方のI/Oアクセス要求をサポートできるので、ハイブリッドインタフェースは、(例えば、アプリケーションの実行に関連して生成された)データ要求のサイズに基づいて様々なタイプのストレージI/Oアクセス要求を生成し得る。例えば、ハイブリッドインタフェースは、受信したデータ要求がブロックサイズのデータ要求である場合に、ブロックレベルのストレージI/Oアクセス要求を生成してよい。例えば、ハイブリッドインタフェースは、受信したデータ要求がサブブロックサイズのデータ要求である場合に、サブブロックレベルのストレージI/Oアクセス要求を生成してよい。したがって、複数のサブブロックサイズのデータ要求は、ストレージシステム104との間の転送のために集約されることなく、複数の別個のサブブロックレベルのストレージI/Oアクセス要求を介して処理することができる。言い換えると、ハイブリッドインタフェースは、複数のサブブロックサイズのデータ要求が、ストレージシステム104との間で転送するためにブロックサイズのデータ要求に集約されるのを防ぐように構成されてよい。
複数のサブブロックサイズのデータ要求が、転送のために集約されることなく処理することができることにより、サブブロックサイズのデータ要求のために、処理リソース103がメモリリソース108−1,・・・,108−Nに直接アクセスすることが可能になる。例えば、データ要求がサブブロックサイズのデータ要求である場合、ハイブリッドインタフェースは、処理リソース103に、サブブロックレベルのアクセス可能性を有する(例えば、データ要求に関連するデータ及び/または命令セットを記憶する)メモリリソース108−1,・・・,108−Nの特定の1つへの直接アクセスを提供することができる。本明細書で使用する場合、ブロックレベルのストレージI/Oアクセス要求をサポートするメモリリソースは、ブロックレベルのアクセス可能性を有するメモリリソースと呼ぶことができ、サブブロックレベルのストレージI/Oアクセス要求をサポートするメモリリソースは、サブブロックレベルのアクセス可能性を有するメモリリソースと呼ぶことができる。例えば、新たな不揮発性メモリリソースなどの第1のタイプのメモリリソース108−1,・・・,108−Nは、サブブロックレベルのアクセス要求をサポートでき、NANDなどの第2のタイプのメモリリソース108−1,・・・,108−Nは、ブロックレベルのアクセス要求をサポートできるが、サブブロックレベルのアクセス要求をサポートしない場合がある。実施形態はそのように限定されないが、第1のタイプ及び第2のタイプの不揮発性メモリリソースのうちの1つだけが、サブブロックレベルのストレージI/Oアクセス要求をサポートしてよい。サブブロックレベルのアクセス可能性を有するメモリリソース108−1,・・・,108−Nの一部は、ブロックレベルのアクセス可能性を有するメモリリソース108−1,・・・,108−Nの他の部分よりもアクセス時間が短い及び/または耐久性が高い場合がある。
メインメモリ(例えば、109)を仲介として使用せずに、ストレージシステム104のメモリリソース108への直接アクセスを可能にすることは、様々な方法で利用することができる。多くの場合、ホスト102とストレージシステム104の間で要求、データ、及び/または命令を通信する際に、メインメモリ109は、要求、データ、及び/または命令が転送される仲介デバイスとして機能し得る。一例として、ストレージシステム104に記憶されたデータ及び/または命令の読み込み操作を実行することは、処理リソース103がデータ及び/または命令セットにメインメモリ109からアクセスできるように、データ及び/または命令セットをメインメモリ109にコピーすることを伴ってよい。
しかしながら、いくつかの実施形態によるハイブリッドインタフェースは、ストレージシステム104への直接アクセスを提供することができる。一例として、ハイブリッドインタフェースは、(例えば、サブブロックレベルのI/Oアクセス要求もサポートするI/Oアクセスパスを備えることによって)複数のサブブロックサイズのデータ要求をブロックサイズの要求に集約する必要性を排除することができ、したがって、ストレージI/Oアクセス要求、データ、及び/または命令セットはまた、メインメモリ109を介して転送することなく、処理リソース103とメモリリソース108−1,・・・,108−Nとの間で直接通信されてよい。したがって、メインメモリ109のリソースは、他の操作のために保存され得る。いくつかの実施形態では、直接アクセス要求のサイズは、例えば、CPUキャッシュラインサイズ以下の要求に制限されてよいが、実施形態はそのように限定されない。サブブロックサイズのデータ要求に関連する直接アクセスを有効にする方法のさらなる詳細は、図3、図4及び図5に関連して説明する。
図2は、一部のアプローチによるコンピューティングシステム210の一部を表すシステム/アプリケーションレベルのブロック図である。コンピューティングシステム210の一部は、コンピューティングシステムの操作を担当するユーザ空間212及びシステム空間214(例えば、カーネル空間)などのソフトウェアスタックと、ストレージシステム232を含むハードウェア部分とを含み得る。
ユーザ空間212及びシステム空間214は、オペレーティングシステムの一部であってよい。例えば、ユーザ空間212及びシステム空間214のオペレーティングシステムは、それぞれ、アンドロイド(登録商標)ユーザ及びそれに関連付けられたLinux(登録商標)カーネルのオペレーティングシステムを表してよい。そのような実施形態では、コンピューティングシステム210の一部は、「ソフトウェアストレージスタック」と見なされてよい(例えば、コンピューティングシステム210の一部は、オペレーティングシステムのソフトウェアベースのカーネルの実装を表してよい)。
ストレージシステム232内の(例えば、ファイルとして編成される)データ/命令にアクセスするための操作(例えば、読み込み及び/または書き込み)を実行するためのコマンド(例えば、要求)は、ユーザ空間212のアプリケーション216に関連する命令の実行の一部としてライブラリコンポーネント218に発行されてよい。ユーザ空間212(例えば、ユーザ空間212のアプリケーション216)から発行可能なコマンドは、例えば、ストレージシステム232上で、それぞれ、読み込み操作及び書き込み操作を実行するためのfread()及び/またはfwrite()を含んでよい。
ユーザ空間212のライブラリコンポーネント218は、コマンドをカーネル空間214にルーティングするためにユーザ空間212によって利用できるいくつかの命令を記憶してよい。例えば、ユーザ空間212は、アプリケーション216の実行に関連するコマンドに対応する命令(例えば、Cベースの命令)を探してよく、ライブラリコンポーネント218から読み出された命令をカーネル空間(例えば、ページキャッシュ224)にルーティングしてよい。読み出された命令は、元のバイトレベル(例えば、サブブロックレベル)コマンドを4kBコマンドなどのブロックレベル(例えば、ブロックレベル)コマンドに変換してよい。ライブラリコンポーネント218は、少なくともCベースの言語を含む様々な言語での命令を含む標準関数のライブラリであってよい。
書き込み及び/または読み込みコマンドに加えて、ライブラリコンポーネントはまた、例えば、ページキャッシュ224に対して他のコマンドを発行してよい。他のコマンドは、ファイルを特定のメモリ位置にマップするマッピングコマンド(例えば、mmap)と、ファイルをメモリ位置に割り当てる及び/またはファイルが割り当てられるメモリ位置にポインタを返す割り当てコマンド(例えば、malloc)とを含み得る。
仮想ファイルシステムコンポーネント220は、処理リソース(例えば、ホストと関連付けられた処理リソース)によって実行可能な命令を含んでよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上でファイルシステムコンポーネント222の上に抽象化層を設けるように最終的に命令が実行されてよい。例えば、仮想ファイルシステムコンポーネント220は、ローカルストレージデバイス及び/またはネットワークストレージデバイスにアクセスするように実行され得る命令を含んでよい。一部の実施形態では、仮想ファイルシステム220は、透過的に(例えば、クライアントアプリケーション対話なしに)ローカルストレージデバイス及び/またはネットワークストレージデバイスにアクセスするように実行され得る命令を含んでよい。仮想ファイルシステムコンポーネント220と関連付けられた命令は、カーネル空間とファイルシステムコンポーネント222の間のインタフェースを指定してよい。
ファイルシステムコンポーネント222は、処理リソース(例えば、ホストと関連付けられた処理リソース)によって実行可能な命令を含んでよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上で、コンピューティングシステム210と関連付けられたデータがどのように記憶及び/または取り出されるかを制御するように最終的に命令が実行されてよい。例えば、ファイルシステムコンポーネント222は、ストレージシステム104からデータを記憶及び/または読み出すように実行可能な命令を含んでよい。
デバイスマッパーコンポーネント226は、処理リソース(例えば、ホストと関連付けられた処理リソース)によって実行可能な命令を含んでよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上で物理ブロックデバイスをより高位の仮想ブロックデバイスにマップするように最終的に命令が実行されてよい。デバイスマッパーコンポーネント226は、論理ボリューム管理(LVM)、ソフトウェアRAID(redundant array of independent disks)、及び/またはdm−cryptディスク暗号化(例えば、カーネル空間214における透過ディスク暗号化サブシステム)の基盤を形成し、ファイルシステムスナップショットなどの追加機能を提供する。
ページキャッシュコンポーネント224は、処理リソース(例えば、ホストと関連付けられた処理リソース)によって実行可能な命令を含んでよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上で、仮想ファイルシステムコンポーネント220からルーティングされたコマンドをバッファリングするように最終的に命令が実行されてよい。ページキャッシュコンポーネント224は、「ディスクキャッシュ」と呼ばれてよく、ストレージシステム(例えば、図1に示されるストレージシステム104)に置かれ、特定のストレージシステムメモリリソース(例えば、メモリリソース108−1〜108−N)へのアクセス要求に関連付けられてよい。
いくつかのデバイスのうちの1つ(例えば、コンピューティングシステム210のストレージシステム232)に記憶されたデータが修正される場合、コンピューティングシステム210は最初に、ページキャッシュコンポーネント223内のページのキャッシュバージョンを修正し、ページを「ダーティ」ページとしてマークしてよい。後の時点で、「ダーティ」ページの新しいコンテンツをページキャッシュからドライバコンポーネント230にコピーして、同じページが短期間に2回更新された場合にストレージデバイス232で必要とされる書き込み操作の回数を減らすことができる。
コマンドはページキャッシュコンポーネント224でバッファリングされるが、バッファリングされたコマンドは、メモリ管理ユニット(MMU)によって規定されるプラットフォームメモリ管理モデルに一致するように、より大きなサイズを有する個々のコマンドを形成するために(例えば、サブブロックレベルからブロックレベルに)集約されてよい。メモリ管理ユニット(MMU)は、仮想メモリアドレスと物理メモリアドレスの間の変換を実行するハードウェアコンポーネントである。
ブロック層228は、処理リソース(例えば、ホストに関連付けられた処理リソース)によって実行可能な命令を記憶してよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上で、ページキャッシュコンポーネント224からルーティングされるコマンドを編成及びスケジュールし、ストレージシステム232に(例えば、ドライバコンポーネント230を介して)さらにルーティングするように最終的に命令が実行されてよい。ブロック層228は、ストレージシステム232に、ルーティングされたコマンドを最終的に再順序付け、再優先順位付け、及び/またはマージするためにバッファリングされたアクセスを提供してよい。
ドライバコンポーネント230は、処理リソース(例えば、ホストと関連付けられた処理リソース)によって実行可能な命令を含んでよい、及び/またはハードウェアリソースがプロビジョニングされて、ハードウェアリソース上でコンピューティングシステム210と関連付けられた様々なコンポーネントにドライバサポートを提供するように最終的に命令が実行されてよい。例えば、ドライバコンポーネント230は、ホスト、メモリシステム、及び/またはコンピューティングシステム200と関連し得る他の周辺機器(図示せず)と関連付けられたドライバをロード及び/または更新する命令を実行するように構成されてよい。ブロック層228からルーティングされたコマンドは、ドライバコンポーネント230を介して、例えば、コントローラ及びストレージデバイスを含むストレージシステム232にルーティングされてよい。ブロックレベルコマンドに集約され、ストレージシステム232で受信されるバイトレベルコマンドは、ストレージデバイスのコントローラ(例えば、図1に示すコントローラ106)によって実行されてよい。
一部のアプローチでは、コンピューティングシステム232の一部は、ブロックレベルのストレージI/Oアクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートするI/Oアクセスパスを提供することができるハイブリッドインタフェースを欠く場合があり、そのため、サブブロックレベルのアクセス可能性が不足する。したがって、複数のバイトレベルコマンド(例えば、複数のサブブロックサイズのデータ要求)は、サブブロックレベルのアクセス可能性がないI/Oアクセスパスを介して転送されるブロックレベルのコマンド(例えば、ブロックサイズのデータ要求)にページキャッシュコンポーネント224で集約されることが必要な場合がある。一方、いくつかの実施形態では、対応するサブブロックレベルのストレージI/Oアクセス要求はハイブリッドインタフェースのI/Oアクセスパスを介して転送できるので、複数のサブブロックサイズのデータ要求をページキャッシュコンポーネント224を介してルーティングする必要はない。したがって、本開示の一部の実施形態では、ストレージシステム104の一部は、ページキャッシュコンポーネント224などの別個のコンポーネントを有することなく、ページキャッシュコンポーネント224によって提供されたであろう機能を提供するためのページキャッシュとして割り当てられてよい。
図3は、本開示のいくつかの実施形態による、コンピューティングシステム300の一部を表すシステム/アプリケーションレベルのブロック図を示す。コンピューティングシステム300の一部及びストレージシステム304は、それぞれ、図1に関連して説明したコンピューティングシステム100の少なくとも一部及びストレージシステム104に類似してよい。さらに、ハイブリッドインタフェース340は、図1に関連して説明したI/Oアクセスパス173を有するハイブリッドインタフェースに類似してよい。
コンピューティングシステム300の一部は、コンピューティングシステムの操作を担当するユーザ空間334(例えば、userland)及びカーネル336(例えば、システム空間)などのソフトウェアスタックと、ストレージシステム304を含むハードウェア部分とを含み得る。本明細書で使用される場合、「システム空間」または「カーネル空間」は、コンピューティングシステム300の一部に関連付けられたメモリ位置であり、コンピューティングシステム300に関連付けられたハードウェアプロセッサによって実行されてコンピューティングシステムを制御し得る命令を記憶する。一方、本明細書で使用される場合、「ユーザ空間」は、コンピューティングシステム300の一部に関連付けられたメモリ位置であり、コンピューティングシステムによって実行されるアプリケーション338に対応する命令が記憶される。アプリケーション338に対応する命令は、図1に関連して説明した処理リソース103などのハードウェアプロセッサによって実行されて、ユーザの利益のために調整された機能、タスク、またはアクティビティのグループを行ってよい。
一部の実施形態では、ユーザ空間334及びシステム空間336は、オペレーティングシステムの一部であってよい。例えば、ユーザ空間334及びシステム空間336のオペレーティングシステムは、それぞれ、アンドロイド(登録商標)ユーザ及びそれに関連するLinux(登録商標)カーネルのオペレーティングシステムを表してよい。そのような実施形態では、コンピューティングシステム300の一部は、「ソフトウェアストレージスタック」と見なされてよい(例えば、コンピューティングシステム300の一部は、オペレーティングシステムのソフトウェアベースのカーネルの実装を表してよい)。
ファイルシステム342は、ハイブリッドインタフェース430に含まれてよい。ファイルシステム342は、第1の部分342−1及び第2の部分342−2を有することができ、それぞれ、各ドライバ(例えば、ドライバ344−1及び344−2)に結合される。ファイルシステム342の部分342−1及び部分342−2は、仮想ファイルシステムであってよく、ストレージシステム304などのローカルストレージデバイス及び/またはネットワークストレージデバイスにアクセスするために実行され得る命令を含んでよい。仮想ファイルシステムに含まれる命令は、ストレージシステム304との間でデータ及び/または他の命令を通信するために利用されるファイルシステム340の部分342−1及び部分342−2のうちの1つを指定してよい。ドライバ344−1及び344−2は、コンピューティングシステム(例えば、コンピューティングシステム100)に関連付けられた様々なハードウェアコンポーネント(例えば、プロセッサ、メモリデバイス、周辺機器など)とインタフェースする仮想(例えば、ソフトウェア)ドライバであってよい。
いくつかの実施形態では、ファイルシステム342は、ブロックレベルのストレージI/Oアクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方を管理するように構成されてよい。ファイルシステム342の各部分は、異なるタイプのストレージI/Oアクセス要求を管理するために利用されてよい。例えば、第1の部分はブロックレベルのストレージI/Oアクセス要求を管理するように構成することができ、第2の部分はサブブロックレベルのストレージI/Oアクセス要求を管理するように構成することができる。
したがって、サブブロックレベルのストレージI/Oアクセス要求に対応するサブブロックサイズのデータ要求は、ブロックレベルサイズのデータ要求に集約されることなく処理することができる。一例として、処理リソース(例えば、図1に関連して説明した処理リソース103)は、サブブロックサイズのデータ要求の受信に応答して、ストレージシステム304(の、例えば、サブブロックレベルのアクセス可能性を有するメモリリソース)にハイブリッドインタフェース340を介して直接アクセスし、サブブロックサイズのデータ要求に関連する命令セットをストレージシステム304から直接、実行するように構成されてよい。命令セットは、処理リソースにモバイルアプリケーションを起動させ得る。
様々な実施形態では、ハイブリッドインタフェース340のファイルシステム342は、直接アクセス(DAX)対応のファイルシステム部分を含み得る。DAX対応ファイルシステムは、(例えば、ユーザ空間334から)ストレージシステム304に直接読み込み及び/または書き込み操作を実行することができるファイルシステムを指す。別の言い方をすれば、データ、コマンド、命令、及び/または要求は、メインメモリ(例えば、メインメモリ109)を介してルーティング、転送、及び/またはコピーすることなく、ストレージシステム304との間で直接ルーティング、転送、及び/またはコピーされてよい。したがって、一部の実施形態では、ストレージシステム304は、(例えば、読み込み/書き込みを実行するために)ストレージシステム304への直接アクセスのために、ユーザ空間334に直接マッピングすることができる。
一部の実施形態では、要求、データ、及び/または命令は、共有バスを介してストレージシステム304との間で通信されてよい。例えば、要求、データ、及び/または命令がブロックレベルまたはサブブロックレベルのどちらに対応するかに関係なく、要求、データ、及び/または命令は、同じ共有バスを介してストレージシステム304から通信されてよい。しかしながら、実施形態はそのようなものに限定されない。例えば、ブロックレベル及びサブブロックレベルの要求、データ、及び/または命令は、異なるそれぞれのバスを介してストレージシステム304との間で通信されてよい。例えば、サブブロックレベルのストレージI/Oアクセス要求は、ブロックレベルのストレージI/Oアクセスを通信するために利用されるバスとは異なるバスを介して通信されてよい。
一部の実施形態では、データベース管理システム(DBMS)に関連するデータ、ファイルメタデータ、及び/またはファイルシステム340のメタデータなどのサブブロックサイズのデータベースファイルは、ファイルシステム342の第2の部分342−2を介して処理リソース(例えば、処理リソース103)によって直接アクセスされてよい。例えば、DBMSに関連するデータ、ファイルメタデータ、及び/またはファイルシステム340のメタデータなどの複数のサブブロックサイズのデータベースファイルは、処理リソースによって同時に実行されているプロセスによって同時にアクセスされてよい。NoSQL、SQLite、クラウドベースのDBMS、または他の適切なDBMSなどのDBMSは、ユーザ空間334で実行されるデータベースシステムプロセス及び/またはアプリケーションであってよい。DBMSは、エンドユーザが、コンピューティングシステム300の一部と関連付けられたデータベース内のデータを作成、読み込み、更新、及び/または削除することを可能にし得る。
図4は、本開示のいくつかの実施形態による、中央処理装置(CPU)452を含むコンピューティングシステム450の一部の概略図を示す。メインメモリ409及びストレージシステム404は、図1に関連して説明したメインメモリ109及びストレージシステム104に類似してよい。
図4に示すように、CPU452は、I/Oアクセスパス471を介して、コンピューティングシステム450の一部の他のコンポーネント(例えば、メインメモリ409、無線458、周辺コンポーネント460、及び/またはストレージシステム404)に結合される。I/Oアクセスパス471は、本明細書で説明されるように、ホスト102をストレージシステム404に結合することができるハイブリッドインタフェース(例えば、ハイブリッドインタフェース340)によって提供することができる。I/Oアクセスパスは、ブロックレベルのストレージI/Oアクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートすることができる。これは、サブブロックレベルのストレージアクセス要求をストレージシステムとの間で転送するために集約することなしに処理できるように、ファイルシステムによって管理されてよい。I/Oアクセスパス471は、システムバスを含んでよく、システムバスは、コンピューティングシステムの主要なコンポーネントを接続して、データを通信するためのデータバス、データの宛先を決定するためのアドレスバス、データに関連付けられた操作を決定するための制御バスの機能を組み合わせる。
無線コンポーネント458は、コンピューティングシステム450の一部のトランシーバであってよい。一例として、トランシーバは、コンピューティングシステム450の一部の送信機及び受信機の両方を含むデバイスであってよい。コンピューティングシステム450の一部は、無線コンポーネント458を利用して、他のデバイスと無線通信してよい。
周辺コンポーネント460(例えば、周辺I/Oデバイス)は、コンピューティングシステム(例えば、コンピューティングシステム450の一部)に情報を出し入れするために実行可能な命令を含んでよい。一例として、周辺コンポーネント460は、入力デバイス(例えば、マウス及び/またはキーボード)、出力デバイス(例えば、モニタ及び/またはプリンタ)、及び/またはストレージデバイス(例えば、ハードディスクドライブ(HDD)及び/またはソリッドステートドライブ(SDD))などのコンピューティングシステム450の様々なコンポーネントを含んでよい。さらに、デジタル時計、スマートフォン、及び/またはタブレットコンピュータなどの他のコンピューティングシステムもまた、それらのデバイスを周辺デバイスとして使用することを可能にする特定のインタフェースを備えてよい。周辺コンポーネント460はまた、コンピューティングシステムの一次コンテナ内に収容される統合された周辺デバイスであってよい。一例として、モバイルデバイスのデジタルカメラは、例えばラップトップ及び/またはデスクトップの外部周辺デバイスであるキーボード、マウス、及び/またはプリンタとは対照的に、統合された周辺デバイスであってよい。
周辺コンポーネント460(例えば、統合周辺デバイス)は、欠陥補正、デモザイク(色補間)、ホワイトバランス、色調整、明度及び/またはコントラスト強調のためのガンマ調整、色変換、及び/またはダウンサンプリングなどの色補正操作を含む様々な操作を行うために利用できる画像信号プロセッサ(ISP)をさらに含んでよい。画像信号プロセッサを含む周辺コンポーネント460は、コンピューティングデバイスのデジタルカメラ(例えば、モバイルデバイスのデジタルカメラ)を含んでよい。
メインメモリ409は、コンピューティングシステム450の一部の演算と関連するデータの1つまたは複数のページを記憶するために使用し得る、RAM、DRAM、SRAMなどの揮発性メモリであってよい。実施形態は、揮発性メモリに限定されないが、メインメモリは、揮発性メモリに加えてまたはその代わりに、不揮発性メモリを含んでよい。
一部のアプローチでは、メインメモリは、要求、データ、及び/または命令が転送される仲介デバイスとして機能してよい。一例として、ストレージシステムから読み出されたデータ及び/または命令セットは、CPU452などの処理リソースがメインメモリからのデータ及び/または命令セットにアクセスできるように、メインメモリにコピーすることができる。別の例として、サブブロックサイズのデータ要求は、実行される前にメインメモリでバッファリングされてよく、それによって、サブブロックサイズのデータ要求をブロックサイズのデータ要求に集約することができる。これらのアプローチでは、要求、データ、及び/または命令の転送により、メインメモリに圧力がかかり得る追加の操作が発生する場合がある。特に、モバイルシステムのメインメモリのリソースは比較的不足している場合があり、メインメモリにかかる圧力は、モバイルシステムの操作に関連する深刻なレイテンシを招き得る。
したがって、いくつかの実施形態では、以下でさらに説明するように、メインメモリ409は、メインメモリ409を介してデータを転送することなく、コンピューティングシステム(例えば、モバイルシステム)のデバイス間で直接、要求、データ、及び/または命令を転送することによって、追加の操作を実行する負担から解放され得る。
例えば、CPU452は、ストレージシステム404(の、例えば、サブブロックレベルのアクセス可能性を有するメモリリソース)から直接、サブブロックサイズのデータ要求に対応する命令セットを実行してよい。言い換えると、CPU452は、命令セットがメインメモリにコピーされ、CPUがメインメモリから命令セットにアクセスするこれらのアプローチとは対照的に、命令セットを最初にメインメモリに転送することなく、(例えば、ストレージシステム404の)サブブロックレベルのアクセス可能性を有するメモリリソースから命令セットを実行するように構成されてよい。
例えば、ダイレクトメモリアクセス(DMA)転送は、DMAに関連付けられたデータをメインメモリを介して転送せずに実行されてよい。本明細書で使用される場合、DMA転送は、CPU(例えば、CPU452)とは独立した、送信元デバイスと宛先デバイスの間のデータ転送を指す。CPUによって指示される操作ではなく、DMA転送を実行することにより、プロセス全体をCPUがプロビジョニングする必要のない操作を指示する負担からCPUを解放し得る。一部のアプローチでは、DMA転送は、送信元デバイスと宛先デバイス(例えば、コンポーネント458、460、及び/または462のうちの1つ)の間で転送されるデータが、宛先デバイスで受信される前にメインメモリを介して転送されるように、メインメモリを利用することに関連付けられてきた。
一方、ハイブリッドインタフェースは、周辺コンポーネント460(例えば、周辺I/Oデバイス)からのデータが、最初に周辺コンポーネント460からメインメモリ409に転送されることなく、ストレージシステムのメモリリソースに直接記憶されることを可能にするように構成されてよい。言い換えると、(例えば、ストレージシステム404がI/Oアクセスパス471のバスを介して結合される)周辺コンポーネント460のプロセッサ(例えば、ISP)は、例えば、サブブロックレベルのアクセス可能性を有するメモリリソースがプロセッサによって直接アクセスされ得るように、ハイブリッドインタフェースを介してストレージシステム404に直接アクセスするように構成されてよい。
図5は、本開示のいくつかの実施形態による、コンピューティングシステム(例えば、モバイルシステム)を操作するための方法570の例を示す例示的な流れ図である。明示的に述べられていない限り、本明細書で説明される方法の要素は、特定の順番または順序に制約されない。さらに、本明細書で説明されるいくつかの方法の実施形態またはその要素は、同じ時点で、または実質的に同じ時点で実行されてよい。
ブロック572において、方法570は、処理リソースを介して、ストレージシステムに対して特定のサイズを有するデータ要求をもたらす命令セットを実行することを含み得る。ストレージシステムは、それぞれ図1、図3及び/または図4に関連して説明したストレージシステム104、304、及び/または404に類似してよい。ストレージシステムは、ストレージシステムへの入力/出力(I/O)アクセスパスを提供することができるハイブリッドインタフェースを介して、処理リソース(例えば、図1に関連して説明した処理リソース103)に結合されてよい。本明細書で説明するように、I/Oアクセスパスは、ブロックレベルのストレージI/Oアクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートすることができる。
ブロック574において、方法570は、データ要求に対応するデータのストレージシステムへのI/O転送を実行する前に、データ要求がブロックレベルのストレージI/Oアクセス要求に対応するか、またはサブブロックレベルのストレージI/Oアクセス要求に対応するかを判断することを含み得る。ブロック576において、方法570は、データ要求がブロックレベルのストレージI/Oアクセス要求に対応すると判断することに応答して、サイズがブロックサイズ未満のデータ要求を集約することに関連付けられた第1のファイルシステム部分を介してデータ要求を管理することを含み得る。ブロック578において、方法570は、データ要求がサブブロックレベルのストレージI/Oアクセス要求に対応すると判断することに応答して、サイズがブロックサイズ未満のデータ要求を集約することを防ぐことに関連付けられた第2のファイルシステム部分を介してデータ要求を管理することを含み得る。第1のファイルシステム部分及び第2のファイルシステム部分は、それぞれ、図3に関連して説明したファイルシステム342の第1の部分342−1及び第2の部分342−2に類似し得る。一部の実施形態では、第2のファイルシステム部分によって管理されるデータは、データベース管理システム(DBMS)、ファイルメタデータ、及び/またはファイルシステムのメタデータを含むことができる。
一部の実施形態では、方法570は、命令セットを実行する前に、処理リソースによって、命令セットを記憶するストレージシステムのメモリリソースに直接アクセスすることをさらに含み得る。方法570は、記憶された命令セットをモバイルシステムのメインメモリに転送することなく、メモリリソースから直接、命令セットを実行することをさらに含み得る。
一部の実施形態では、ストレージシステムは、複数のサブブロックサイズのデータベースファイルを記憶するメモリリソースを含み得る。この例では、方法570は、処理リソースによって同時に実行されるプロセスによって、複数のサブブロックサイズのデータベースファイルへの同時アクセスを提供することをさらに含み得る。
一部の実施形態では、モバイルシステムは、周辺I/Oデバイス(例えば、周辺コンポーネント460)及びメインメモリを含み得る。この例では、方法570は、最初に周辺I/Oデバイスからメインメモリに転送されることなく、サブブロックレベルのアクセス可能性を有するストレージシステムのメモリリソースに直接、周辺(I/O)デバイスからのサブブロックサイズのデータを記憶できるようにすることによってDMAを実行することをさらに含み得る。図4に関連して説明したように、DMA転送とは、CPUなどの処理リソースとは独立した送信元デバイスと宛先デバイス間のデータ転送を指す。
本明細書中で特定の実施形態が示され、説明されたが、同じ結果を達成すると想定される構成が、示されている特定の実施形態を置き換え得ることを当業者は理解されよう。この開示は、本開示の1つまたは複数の実施形態の適合または変形を含むことを意図している。上記説明は、限定的でなく例示的に行われたことが理解されよう。上記実施形態の組み合わせ、及び本明細書で特に説明されていない他の実施形態は、上記説明を見直した当業者にとって明らかであろう。本開示の1つまたは複数の実施形態の範囲は、上記構造及び方法が使用される他の用途を含む。したがって、本開示の1つまたは複数の実施形態の範囲は、添付の特許請求の範囲の権利が与えられる均等物の全範囲とともに、添付の特許請求の範囲を参照して判断されるべきである。
前述の「発明を実施するための形態」では、本開示を簡素化する目的のために、単一の実施形態にいくつかの特徴を一緒にまとめている。本開示の方法は、本開示の開示された実施形態が各請求項に明確に記載されたものより多くの特徴を使用する必要があるという意図を表すものとして解釈されるべきではない。むしろ、以下の請求項が表すように、発明の主題は、単一の開示された実施形態の全ての特徴よりも少ない特徴にある。したがって、以下の請求項は、本明細書によって発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (20)

  1. 処理リソースと、
    ハイブリッドインタフェースを介して前記処理リソースに結合されたストレージシステムと、
    を備える、メモリ操作用のコンピューティングシステムであって、
    前記ハイブリッドインタフェースは、ブロックレベルのストレージ入力/出力(I/O)アクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートする前記ストレージシステムへのI/Oアクセスパスを提供する、
    前記コンピューティングシステム。
  2. 前記ハイブリッドインタフェースは、
    前記ブロックレベルのストレージI/Oアクセス要求を管理するように構成された第1の部分と、
    前記サブブロックレベルのストレージI/Oアクセス要求を管理するように構成された第2の部分であって、直接アクセス可能なファイルシステム部分である前記第2の部分と、
    を含むファイルシステムを備える、請求項1に記載のコンピューティングシステム。
  3. 前記ストレージシステムは、
    第1のタイプの不揮発性メモリリソースと、
    第2のタイプの不揮発性メモリリソースと、
    を備えるハイブリッドメモリストレージシステムであり、
    前記第1のタイプ及び前記第2のタイプの不揮発性メモリリソースのうちの1つのみが、サブブロックレベルのストレージI/Oアクセス要求をサポートする、
    請求項1に記載のコンピューティングシステム。
  4. ブロックレベルのストレージI/O要求は、ホストキャッシュラインサイズより大きいサイズを有するストレージI/O要求に対応し、サブブロックレベルのストレージI/O要求は、前記ホストキャッシュラインサイズ以下のサイズを有するストレージI/O要求に対応する、請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  5. 前記ハイブリッドインタフェースは、アプリケーションの実行に関連して生成されたサブブロックサイズのデータ要求に応答して、前記サブブロックサイズのデータ要求が前記ストレージシステムとの間で転送するためにブロックサイズのデータ要求に集約されるのを防ぐように構成される、請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  6. 前記ハイブリッドインタフェースは、いくつかのアプリケーションの実行に関連して生成された複数のサブブロックサイズのデータ要求の受信に応答して、それぞれのサブブロックサイズのデータ要求が前記ストレージシステムとの間で転送するために集約されることなく処理されるように、それぞれの複数の別個のサブブロックサイズのストレージI/Oアクセス要求を生成するように構成される、請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  7. 前記ストレージシステムは、複数のサブブロックサイズのデータベースファイルを記憶するメモリリソースを備え、前記ハイブリッドインタフェースは、前記処理リソースによって同時に実行されているプロセスによって、前記複数のサブブロックサイズのデータベースファイルへの同時アクセスを提供するように構成される、請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  8. 前記コンピューティングシステムは、モバイルシステムであり、
    前記ストレージシステムは、各アプリケーションを開始することに関連して、前記処理リソースによって実行可能な命令セットを記憶するように構成され、且つ、
    前記ハイブリッドインタフェースは、特定のアプリケーションを開始する要求に応答して、前記記憶された命令セットを前記モバイルシステムのメインメモリに転送することなく、前記要求に対応する前記記憶された命令セットへの前記処理リソースによる直接アクセスを提供するように構成される、
    請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  9. 周辺I/Oデバイスと、
    メインメモリと、
    をさらに備え、
    前記周辺I/Oデバイス及び前記メインメモリは、バスを介して前記処理リソース及び前記ストレージシステムに結合され、且つ、
    前記ハイブリッドインタフェースは、前記周辺I/Oデバイスからのデータが、最初に前記周辺I/Oデバイスから前記メインメモリに転送されることなく、前記ストレージシステムのメモリリソースに直接記憶されることを可能にするように構成される、
    請求項1〜3のいずれか一項に記載のコンピューティングシステム。
  10. メモリ操作用のコンピューティングシステムであって、
    ストレージシステムであって、
    ブロックレベルのアクセス可能性を有する第1のメモリリソースと、
    サブブロックレベルのアクセス可能性を有する第2のメモリリソースと、
    を備える前記ストレージシステムと、
    ブロックレベルとサブブロックレベルの両方のストレージ入力/出力(I/O)アクセス要求を管理するように構成されたハイブリッドインタフェースと、
    前記ハイブリッドインタフェースを介して前記ストレージシステムに結合された処理リソースであって、
    サブブロックサイズのデータ要求の受信に応答して、前記ハイブリッドインタフェースを介して前記第2のメモリリソースに直接アクセスし、且つ、
    前記サブブロックサイズのデータ要求に関連付けられた命令セットを、前記第2のメモリリソースから直接実行する
    ように構成された前記処理リソースと、
    を備える、前記コンピューティングシステム。
  11. 前記ストレージシステム及び前記処理リソースにバスを介して結合されたメインメモリをさらに備え、前記処理リソースは中央処理装置(CPU)であり、前記処理リソースは、前記命令セットを最初に前記メインメモリに転送せずに、前記第2のメモリリソースから前記命令セットを実行するように構成される、請求項10に記載のコンピューティングシステム。
  12. 前記処理リソースは、前記ストレージシステムがバスを介して結合された周辺I/Oデバイスのプロセッサである、請求項10に記載のコンピューティングシステム。
  13. 前記コンピューティングシステムは、モバイルシステムであり、前記命令セットは、前記CPUにモバイルアプリケーションを起動させる、請求項10〜12のいずれか一項に記載のコンピューティングシステム。
  14. 前記ブロックレベルのアクセス可能性を有する前記第1のメモリリソースは、NANDフラッシュメモリリソースである、請求項10〜12のいずれか一項に記載のコンピューティングシステム。
  15. バイトレベルのアクセス可能性を有する前記第2のメモリリソースは、新たな不揮発性メモリリソースを含む、請求項10〜12のいずれか一項に記載のコンピューティングシステム。
  16. 処理リソースを介して、ストレージシステムに対して特定のサイズを有するデータ要求をもたらす命令セットを実行することであって、前記ストレージシステムは、ブロックレベルのストレージ入力/出力(I/O)アクセス要求とサブブロックレベルのストレージI/Oアクセス要求の両方をサポートする前記ストレージシステムへのI/Oアクセスパスを提供するハイブリッドインタフェースを介して前記処理リソースに結合される、前記命令セットを実行することと、
    前記データ要求に対応するデータの前記ストレージシステムへのI/O転送を実行する前に、前記データ要求がブロックレベルのストレージI/Oアクセス要求に対応するか、またはサブブロックレベルのストレージI/Oアクセス要求に対応するかを判断することと、
    前記データ要求がブロックレベルのストレージI/Oアクセス要求に対応すると判断することに応答して、サイズがブロックサイズ未満のデータ要求を集約することに関連付けられた第1のファイルシステム部分を介して前記データ要求を管理することと、
    前記データ要求がサブブロックレベルのストレージI/Oアクセス要求に対応すると判断することに応答して、サイズがブロックサイズ未満のデータ要求を集約することを防ぐことに関連付けられた第2のファイルシステム部分を介して前記データ要求を管理することと、
    を含む、コンピューティングシステムを操作する方法。
  17. 前記第2のファイルシステム部分によって管理される前記データは、データベース管理システム(DBMS)に関連するデータを含む、請求項16に記載の方法。
  18. 前記コンピューティングシステムはモバイルシステムであり、前記方法は、
    前記命令セットを実行する前に、前記処理リソースによって、前記命令セットを記憶する前記ストレージシステムのメモリリソースに直接アクセスすることと、
    前記記憶された命令セットを前記モバイルシステムのメインメモリに転送することなく、前記メモリリソースから直接、前記命令セットを実行することと、
    をさらに含む、請求項16に記載の方法。
  19. 前記ストレージシステムは、複数のサブブロックサイズのデータベースファイルを記憶するメモリリソースを備え、
    前記方法は、前記処理リソースによって同時に実行されているプロセスによって、前記複数のサブブロックサイズのデータベースファイルへの同時アクセスを提供することをさらに含む、
    請求項16に記載の方法。
  20. 前記コンピューティングシステムは、周辺入力/出力(I/O)デバイスとメインメモリとをさらに備えるモバイルシステムであり、
    前記方法は、前記周辺(I/O)デバイスからのサブブロックサイズのデータを、最初に前記周辺I/Oデバイスから前記メインメモリに転送することなく、サブブロックレベルのアクセス可能性を有する前記ストレージシステムのメモリリソースに直接、記憶できるようにすることによって、ダイレクトメモリアクセス(DMA)を実行することをさらに含む、
    請求項16に記載の方法。
JP2021513846A 2018-09-12 2019-08-14 ハイブリッドメモリシステムインタフェース Ceased JP2021536643A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/128,882 2018-09-12
US16/128,882 US10977198B2 (en) 2018-09-12 2018-09-12 Hybrid memory system interface
PCT/US2019/046454 WO2020055534A1 (en) 2018-09-12 2019-08-14 Hybrid memory system interface

Publications (1)

Publication Number Publication Date
JP2021536643A true JP2021536643A (ja) 2021-12-27

Family

ID=69720771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021513846A Ceased JP2021536643A (ja) 2018-09-12 2019-08-14 ハイブリッドメモリシステムインタフェース

Country Status (7)

Country Link
US (2) US10977198B2 (ja)
EP (1) EP3850474A4 (ja)
JP (1) JP2021536643A (ja)
KR (1) KR20210043001A (ja)
CN (1) CN112703481A (ja)
TW (1) TWI741357B (ja)
WO (1) WO2020055534A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2003330871A (ja) * 2002-05-13 2003-11-21 Nec Engineering Ltd データ転送装置
JP2009003934A (ja) * 2007-06-20 2009-01-08 Samsung Electronics Co Ltd データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US20100037024A1 (en) * 2008-08-05 2010-02-11 Convey Computer Memory interleave for heterogeneous computing
JP2016509283A (ja) * 2012-12-22 2016-03-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated 不揮発性メモリの使用を介した揮発性メモリの電力消費の低減
JP2016062406A (ja) * 2014-09-19 2016-04-25 国立大学法人 筑波大学 メモリシステム、メモリシステムの制御方法及びプログラム

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128669A (en) * 1997-09-30 2000-10-03 Compaq Computer Corporation System having a bridge with distributed burst engine to decouple input/output task from a processor
US7103357B2 (en) * 1999-11-05 2006-09-05 Lightsurf Technologies, Inc. Media spooler system and methodology providing efficient transmission of media content from wireless devices
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6480939B2 (en) * 2000-12-29 2002-11-12 Intel Corporation Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US7660306B1 (en) * 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US20090055157A1 (en) * 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
US8170062B2 (en) * 2009-04-29 2012-05-01 Intel Corporation Packetized interface for coupling agents
US9123409B2 (en) 2009-06-11 2015-09-01 Micron Technology, Inc. Memory device for a hierarchical memory architecture
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US8832403B2 (en) * 2009-11-13 2014-09-09 International Business Machines Corporation Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses
US8103910B2 (en) * 2009-11-13 2012-01-24 International Business Machines Corporation Local rollback for fault-tolerance in parallel computing systems
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US9263102B2 (en) * 2010-09-28 2016-02-16 SanDisk Technologies, Inc. Apparatus, system, and method for data transformations within a data storage device
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9058338B2 (en) 2011-10-26 2015-06-16 International Business Machines Corporation Storing a small file with a reduced storage and memory footprint
US10102170B2 (en) * 2012-05-18 2018-10-16 Dell Products, Lp System and method for providing input/output functionality by an I/O complex switch
US9602437B1 (en) * 2012-10-03 2017-03-21 Tracey M. Bernath System and method for accelerating network applications using an enhanced network interface and massively parallel distributed processing
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9910675B2 (en) * 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US9921980B2 (en) * 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
US9648148B2 (en) * 2013-12-24 2017-05-09 Intel Corporation Method, apparatus, and system for QoS within high performance fabrics
WO2015130314A1 (en) * 2014-02-28 2015-09-03 Hewlett-Packard Development Company, L.P. Mapping mode shift
EP3140743B1 (en) * 2014-05-08 2021-11-24 Micron Technology, INC. Hybrid memory cube system interconnect directory-based cache coherence methodology
US9460019B2 (en) * 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
US10685042B2 (en) 2014-12-22 2020-06-16 Amazon Technologies, Inc. Identifying join relationships based on transactional access patterns
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
US9841914B2 (en) * 2015-05-05 2017-12-12 Sap Se Managed energy-efficient hybrid main memory systems
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
US20170060434A1 (en) * 2015-08-27 2017-03-02 Samsung Electronics Co., Ltd. Transaction-based hybrid memory module
WO2017049590A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Systems and methods for input/output computing resource control
US9779026B2 (en) * 2016-01-14 2017-10-03 Seagate Technology Llc Cache bypass utilizing a binary tree
US9620201B1 (en) 2016-04-26 2017-04-11 Sandisk Technologies Llc Storage system and method for using hybrid blocks with sub-block erase operations
US10762030B2 (en) * 2016-05-25 2020-09-01 Samsung Electronics Co., Ltd. Storage system, method, and apparatus for fast IO on PCIE devices
US10713202B2 (en) * 2016-05-25 2020-07-14 Samsung Electronics Co., Ltd. Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports
US10521118B2 (en) * 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US9927975B2 (en) * 2016-08-03 2018-03-27 Micron Technology, Inc. Hybrid memory drives, computer system, and related method for operating a multi-mode hybrid drive
EP3812900B1 (en) * 2016-12-31 2023-11-29 Intel Corporation Systems, methods, and apparatuses for heterogeneous computing
US10402335B2 (en) * 2017-03-31 2019-09-03 Intel Corporation Method and apparatus for persistently caching storage data in a page cache
US10261708B1 (en) * 2017-04-26 2019-04-16 EMC IP Holding Company LLC Host data replication allocating single memory buffers to store multiple buffers of received host data and to internally process the received host data
US11379411B2 (en) * 2019-01-07 2022-07-05 Vast Data Ltd. System and method for replicating file systems in remote object storages
GB2621499B (en) * 2019-02-25 2024-05-08 Mobileye Vision Technologies Ltd Systems and methods for vehicle navigation
US11127167B2 (en) * 2019-04-29 2021-09-21 Nvidia Corporation Efficient matrix format suitable for neural networks
CN117053812A (zh) * 2020-03-30 2023-11-14 御眼视觉技术有限公司 使用电子地平线导航交通工具
US20220027379A1 (en) * 2020-07-21 2022-01-27 Observe, Inc. Data capture and visualization system providing temporal data relationships

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JP2003330871A (ja) * 2002-05-13 2003-11-21 Nec Engineering Ltd データ転送装置
JP2009003934A (ja) * 2007-06-20 2009-01-08 Samsung Electronics Co Ltd データ管理システム及びデータ管理方法、並びにデータ管理方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US20100037024A1 (en) * 2008-08-05 2010-02-11 Convey Computer Memory interleave for heterogeneous computing
JP2016509283A (ja) * 2012-12-22 2016-03-24 クゥアルコム・インコーポレイテッドQualcomm Incorporated 不揮発性メモリの使用を介した揮発性メモリの電力消費の低減
JP2016062406A (ja) * 2014-09-19 2016-04-25 国立大学法人 筑波大学 メモリシステム、メモリシステムの制御方法及びプログラム

Also Published As

Publication number Publication date
CN112703481A (zh) 2021-04-23
TWI741357B (zh) 2021-10-01
US20210191887A1 (en) 2021-06-24
KR20210043001A (ko) 2021-04-20
WO2020055534A1 (en) 2020-03-19
US20200081853A1 (en) 2020-03-12
EP3850474A1 (en) 2021-07-21
US11835992B2 (en) 2023-12-05
US10977198B2 (en) 2021-04-13
TW202030594A (zh) 2020-08-16
EP3850474A4 (en) 2022-06-29

Similar Documents

Publication Publication Date Title
WO2016082196A1 (zh) 文件访问方法、装置及存储设备
EP3729251A1 (en) Virtualized ocssds spanning physical ocssd channels
US20170344430A1 (en) Method and apparatus for data checkpointing and restoration in a storage device
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
TWI696188B (zh) 混合式記憶體系統
US11645011B2 (en) Storage controller, computational storage device, and operational method of computational storage device
US20240078187A1 (en) Per-process re-configurable caches
US11151064B2 (en) Information processing apparatus and storage device access control method
US20190042415A1 (en) Storage model for a computer system having persistent system memory
US11157191B2 (en) Intra-device notational data movement system
KR20180041037A (ko) 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
US20230229357A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US11921639B2 (en) Method for caching data, a host device for caching data, and a storage system for caching data
TWI741357B (zh) 用於記憶體操作之運算系統及其操作方法
US10936219B2 (en) Controller-based inter-device notational data movement system
US20200348874A1 (en) Memory-fabric-based data-mover-enabled memory tiering system
US10572382B2 (en) Method of operating data storage device and method of operating data processing system including the same
US11822813B2 (en) Storage device, operation method of storage device, and storage system using the same
US20230359578A1 (en) Computing system including cxl switch, memory device and storage device and operating method thereof
US20230359389A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
US20230084539A1 (en) Computational storage device and storage system including the computational storage device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210506

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210506

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220728

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221206

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20230425