JP6145193B2 - メモリへの読取り又は書込み - Google Patents

メモリへの読取り又は書込み Download PDF

Info

Publication number
JP6145193B2
JP6145193B2 JP2016083229A JP2016083229A JP6145193B2 JP 6145193 B2 JP6145193 B2 JP 6145193B2 JP 2016083229 A JP2016083229 A JP 2016083229A JP 2016083229 A JP2016083229 A JP 2016083229A JP 6145193 B2 JP6145193 B2 JP 6145193B2
Authority
JP
Japan
Prior art keywords
block
cache
read
write
block size
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
Application number
JP2016083229A
Other languages
English (en)
Other versions
JP2016149155A (ja
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 JP2016149155A publication Critical patent/JP2016149155A/ja
Application granted granted Critical
Publication of JP6145193B2 publication Critical patent/JP6145193B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、データの記憶又は取出しに関し、詳細には、アプリケーションに関するデータ・ストリームの読取り及び/又は書込みに関する。
1つ又は複数のプロセッサによって実行される、コンピュータ上で実行されているアプリケーションの速度は、主に、処理されることになる情報に対するアクセス速度によって、且つさらなる処理のため又は入力のためのいずれかに必要とされるまで、処理された情報を記憶することができる速度によって決定される。
異なる性質、特に、異なる速度を備え、それによって、異なる価格を有する異なるメモリ・タイプがコンピュータ・システム内で使用される。更に、メモリとアプリケーションを実行するプロセッサとの間で使用される異なるバス、並びにバスに接続された構成要素は読取り速度及び/又は書込み速度に影響を及ぼす。更に、メモリの特性は進化しており、コンピュータ内で使用されるメモリ又はコンピュータによって使用されるメモリは、より高速なメモリに更新され得る。メモリ間の基本的な分割は、メモリは、頻繁にアクセスされる命令及びデータに関する高速ストレージとして使用されるバッファ・メモリであるキャッシュであるか、又はメモリは、いわゆる、メイン・メモリ若しくはストレージのいずれかである。基本的に、2つのタイプのメモリI/O(即ち、書込み/読取り)動作が存在する。即ち、ストレージに直接的にアクセスする動作、又はそれを通じてすべてのデータ・ストリームがメイン・メモリに且つ/又はメイン・メモリから渡されるキャッシュを使用する動作である。現在、キャッシュを使用することは既定のソリューションである。しかし、時として、ストレージに直接的にアクセスすることは、より効率的な可能性があり、オーバヘッドがより少なくなる可能性がある。
WO2008/004149は、フラッシュ・メモリの時間オーバヘッドと摩耗とを最小限に抑えるために、ストレージとして使用されるフラッシュ・メモリの一部がフラッシュ・メモリの残りの部分用のバッファとして使用されるように割り振られる解決策を開示する。この解決策では、すべての書込み要求及び読取り要求はメモリ・コントローラを通過する。メモリ・コントローラがメモリに書き込まれることになるデータ・ストリームを受信するとき、メモリ・コントローラは受信されたデータ・ストリームのサイズを所定数のデータ・パケットと比較して、データ・ストリームが所定数のデータ・パケットよりも大きい場合、そのデータ・ストリームはその目標宛先に直接的に記憶され、そうでない場合、そのデータ・ストリームはその目標宛先に対して後で記憶されて、そのデータ・ストリームがそこに存在する限り、バッファ部分から読み取られるように、バッファ部分用に記憶される。バッファ部分からのデータが記憶されて、同じ目標宛先を有する1個を超えるデータが存在する場合、最新のデータだけが記憶される。
フラッシュ・メモリに直接アクセスすることはより効率的である可能性があるとはいえ、WO2008/004149の解決策はストレージ内で依然として発生し、メモリ・コントローラへのデータ・ストリーム及びメモリ・コントローラからのデータ・ストリームはキャッシュを通過する。
WO2008/004149
以下の説明は、本発明のいくつかの態様の基本的な理解をもたらすために、本発明の簡素化された要約を提示する。この要約は本発明の広範囲な概要ではない。本発明の主な要素/重要な要素を識別すること、又は本発明の範囲を描くことは意図されない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、本発明のいくつかの概念を簡素化された形態で提示することである。
いくつかの実施例の態様は、データ・ストリームのブロック・サイズに関する情報と、キャッシュを使用しようと、又はストレージを直接的に使用しようと、そのブロック・サイズに関して決定されたキャッシュ及びストレージ性能とに基づいて決定するステップと、それに応じて動作するステップとを含む。
本発明の様々な態様は、独立クレームに定義されるような方法、装置、及びコンピュータ・プログラム製品を含む。本発明のさらなる実施例は独立クレームで開示される。
以下の説明では、添付の図面を参照して、異なる実施例がより詳細に説明される。
ある実施例による簡素化されたブロック図である。 実施例を示す流れ図である。 実施例を示す流れ図である。 実施例を示す流れ図である。
次に、本発明のすべての実施例ではなく、そのいくつかが示される添付の図面を参照して、本発明の例示的な実施例が以下でより十分に説明される。実際に、本発明は、多くの異なる形態で実施可能であり、本明細書に記載される実施例に限定されると解釈されるべきではない。むしろ、これらの実施例は、本開示が適用可能な法的要件を満たすように提供される。本明細書はいくつかの場所で「ある」、「一」、又は「いくつかの」(1つ若しくは複数の)実施例を参照する場合があるが、これは必ずしもそれぞれのそのような参照が(1つ若しくは複数の)同じ実施例を指すとは限らず、又はその特徴が単一の実施例だけに適用されるとも限らない。異なる実施例の単一の特徴は、組み合わされて他の実施例を提供することも可能である。
本発明の実施例は、コンピューティング装置、コンピュータ、対応する構成要素に、且つ/又はキャッシュの使用をサポートする任意のコンピューティング・システム又はコンピューティング・ネットワークに適用可能である。コンピューティング装置は、任意の種類のプロセッサ、オペレーティング・システム、及び1つのメモリ/複数のメモリを含むことが可能である。したがって、すべての用語及び表現は、広く解釈されるべきであり、実施例を限定するのではなく、実施例を例示することが意図される。
ある実施例によるコンピューティング装置の一般的な構成が図1に例示される。図1は、コンピューティング装置のいくつかの構成要素だけを示す簡素化されたブロック図であり、これらの構成要素はある実施例を示すために使用されている。このコンピューティング装置は、ここで詳細に説明される必要がない他の構成要素、モジュール、接続、結合などを含むことが可能である点を理解されたい。
コンピューティング環境を示すコンピューティング装置100は、アプリケーション120を実行する、バス101を経由して決定構成要素130に結合されたプロセッサ110を備える。決定構成要素130、それによって、プロセッサ及びアプリケーションは、更に、バス102を経由してキャッシュ140に結合されて、バス103を経由してストレージ150に結合される。ある実施例を用いて下で説明される決定構成要素130の機能性を実施するコンピューティング装置100は、先行技術手段だけでなく、例えば、キャッシュを使用するか、又はストレージを直接的に使用するかを決定するための手段も備える。より詳細には、コンピューティング装置は、ある実施例を用いて説明される機能性を実施するための手段を備え、コンピューティング装置は、それぞれの別個の機能に関して別個の手段を備えることが可能であるか、又は手段は2つ以上の機能を実行して、異なる実施例の機能を組み合わせるようにすら構成されることも可能である。
一般に、プロセッサ110は中央処理装置(CPU)であるが、プロセッサは追加の演算プロセッサであってもよい。コンピューティング装置はその他の構成要素及び/又はキャッシュを備えることが可能であり、ストレージはインターネットを経由してアクセス可能な別のコンピューティング装置内に位置することも可能である点を理解されたい。
決定構成要素130はある実施例を用いて下で説明される機能性を実行するように構成され、決定構成要素130は、異なる実施例からの機能性を実行するように構成されることも可能である。このために、決定構成要素は、決定表131を記憶するための少量のメモリを備えることが可能であり、実装形態に応じてプロセッサ110に接続され、又はそれ自体がそれらの機能性を実行するためのプロセッサ(図1に示されず)を備える。更に、この決定構成要素は、その他のユニットを備えることが可能であり、この決定構成要素は、例えば、制御情報、データ、及び書込み要求又は読取り要求を受信並びに転送するための異なるインターフェースを備える。
ある実施例による決定構成要素は、一般に、内部メモリと装置の様々なインターフェースとに接続されたコントローラ、制御ユニット、マイクロコントローラなどであってよい。決定構成要素は、シングル・チップ・コンピュータ要素、若しくはチップセットなど、マイクロプロセッサとして、又は算術演算のために使用されるストレージ領域を提供するための少なくとも1つのメモリと算術演算を実行するための演算プロセッサとを含むボードとして構成可能である。決定構成要素は、1つ若しくは複数の実施例の1つ若しくは複数の機能を実行するような形でプログラムされている、1つ若しくは複数のコンピュータ・プロセッサ、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、及び/又はその他のハードウェア構成要素を備えることが可能である。ある実施例は、装置内にロードされるとき、決定ユニットを構成するプログラム命令を備えた、任意のコンピューティング装置配布媒体上/データ・ストレージ媒体上で実施されるコンピュータ・プログラムとしてこの決定構成要素を提供する。ソフトウェア・ルーチン、「プログラム・ライブラリ」を構成するプログラム・スニペット、並びにアプレット及びマクロを含む、プログラム製品とも呼ばれるプログラムは、任意の媒体内に記憶可能であり、コンピューティング装置内にダウンロード可能である。
キャッシュ140及びストレージ150は、揮発性メモリ及び/又は不揮発性メモリであってよく、キャッシュ140及びストレージ150は異なるタイプのものであってよい。例えば、キャッシュ及び/又はストレージは、アプリケーション120の動作に関連するステップを実行するために、ソフトウェア・アプリケーション又はオペレーティング・システムなどのコンピュータ・プログラム・コード、中央処理装置又は対応するプロセッサに関する情報、データ、コンテンツなどを記憶することが可能である。キャッシュ及び/又はストレージは、例えば、ランダム・アクセス・メモリ、ハード・ディスク、フラッシュ・メモリ、固体メモリ(SSD)、又はその他の固定データ・メモリ・デバイス若しくは固体データ・ストレージ・デバイスであってよい。更に、キャッシュ及び/若しくはストレージ、又はその(それらの)一部は、装置に取外し可能に接続された取外し可能メモリであってよい。
バス102及びバス103は、構成要素同士の間で任意の種類のデータを転送する任意のタイプのバスであってよく、バス102及びバス103は異なるタイプのものであってよい。バスは、複数のワイヤ上でデータを並列に搬送する並列バスであってよく、若しくはビット・シリアル形態でデータを搬送する直列バスであってよく、又は並列接続とビット・シリアル接続の両方を使用するバスであってもよい。したがって、バス102及びバス103は、データの転送を実現する異なる接続及び構成要素を含む任意の物理的な構成であってよい。
コンピューティング装置は1つのエンティティとして図1に示されているが、メモリは1つ若しくは複数の物理的又は論理的なエンティティの形で実施可能である。例えば、キャッシュ及び/又はストレージは、複数のコンピューティング装置にわたる分散型(共有)ストレージ・デバイスとして実施可能であり、バスはコンピューティング装置内で、又はコンピューティング装置間でデータを転送することができる。これらのユニット及び機能は、ソフトウェア構成要素及び/又はソフトウェア・ハードウェア構成要素並びに/或いは(読出し専用メモリなどの媒体上に永久に記録されるか、若しくは配線されたコンピュータ回路の形で実施される)ファームウェア構成要素であってよい。
図2は、ある実施例による決定構成要素の機能性を例示する。この実施例では、決定構成要素は、ある幾つかのブロック・サイズに関して測定することによって、キャッシュを使用するのがより効率的であるか、又はストレージに直接的に記憶することがより効率的であるか、即ち、これらのメモリ・タイプのうちのどのメモリ・タイプがより効率的なメモリ・タイプであるかを決定する。その幾つかのブロック・サイズは、例えば、512kB、1kB、2kB、4kB、...1024kBであってよい。(ブロックは書込み及び/又は読取りの単位である。)
この実施例では、決定構成要素は、読取り(入力)及び書込み(出力)に関して、下で説明されるステップを別個に実行する。これらは、ほとんど同時に実行されること、及び/又は下で説明される順序とは別の順序で実行されることが可能である点を理解されたい。別の実施例では、決定構成要素は、読取り又は書込みにだけに関して下で説明されるステップを実行し、次いで、読取りと書込みの両方に関する結果を使用する。しかし、読取り及び書込みは別個のタスクであるため、読取りと書込みの両方に関するステップを実行することは、コンピューティング装置内でI/Oの全体的な性能が最も効率的に利用可能にされるという利点を有する。
示される実例では、分かり易いように、読取り(又は、書込み)のための時間は、どちらがより効率的であるかを決定するための決定ファクタとして使用されると仮定される。しかし、決定ファクタとして何が使用されるかについて制限は存在せず、決定ファクタは異なるファクタの組合せであってよい。例えば、決定ファクタは、CPUリソースなど、プロセッサ・リソースの使用に関する場合があり(より効率的な方法は、同じ量の作業に関してより少ないCPUリソースを使用するか、若しくは同じ量のCUリソースがより多い作業を実行する)、又は決定ファクタは、時間とプロセッサ・リソース使用の両方を考慮に入れる場合もある。更に、コンピューティング装置の読取り動作及び/又は書込み動作を使用するアプリケーションは、決定ファクタに影響を与える要件を有する場合がある。ある実施例では、例えば、選択リストをユーザに提供することによって、ユーザに決定ファクタを選択する機会が与えられる場合があり、その場合、ユーザの選択が使用される。
決定構成要素は、第1のブロック・サイズを測り(ステップ201)、ステップ202で、キャッシュから量を読み取ると同時に、それにかかる時間を測定する。次いで、ステップ203において、ストレージから直接的に同じ量が読み取れられ、それにかかる時間が測定される。次に、ステップ204において、決定ユニットは、より効率的であったメモリ・タイプ、即ち、示される実例では、最も高速のメモリ・タイプを選択して、ステップ205において、そのメモリ・タイプを読取り用のブロック・サイズと関連付ける。次いで、ステップ206において、すべてのブロック・サイズがメモリ・タイプと関連付けられているかどうかが検査される。そうでない場合、決定構成要素は、次のブロックに関して上記のステップを実行し、即ち、ステップ201にとどまる。すべてのブロック・サイズがメモリ・タイプと関連付けられた場合、それらのブロック・サイズは読取り(入力)のために使用できる状態にある(ステップ207)。
この実施例では、上記のステップは、次いで、書込みに関して繰り返される。即ち、読取りの代わりに、ステップ202及びステップ203において書込みが実行される。その場合、その結果は、図1に例示されるように、読取り及び書込みに関して別個のブロック・サイズ固有のメモリ・タイプの選択を有する決定表であってよく、読取り用のメモリ・タイプは書込み用と同じであるか、又は異なる。
この実施例のある利点は、使用すべきメモリ・タイプを決定するとき、それらの現実の機能性に従って、すべての構成要素、異なるバスなどが考慮に入れられることである。これは、プロセッサの負荷が最小限に抑えられ、それによって、生成される熱が少なくなり、必要とされるエネルギーが少なくなるというさらなる利点を有する。
本発明のさらなる実施例では、時間を測定することなど、測定を実行する代わりに、決定構成要素は、メモリ(即ち、キャッシュ及びストレージ)のサイズ、当面どの程度の空きメモリが存在するか、バス速度など、システム・パラメータを取得して、その情報を使用して、それぞれのブロック・サイズに関してより効率的なメモリ・タイプ(キャッシュを経由して記憶するか、又はストレージに直接的に記憶するか)を計算する。
さらなる実施例では、決定構成要素は、測定と計算の両方を行い、ハードウェアを確認するために、それらの測定結果を計算された結果と比較するように構成される。ハードウェアの確認によって実現される利点は、考えられる障害を検出するのを助け、それによって、何らかのより大きな障害が発生する前に障害の修正を促すことである。
測定/計算を例示する上記の説明は、ある間隔で、電源がオンにされるとき、及び/又はオペレーティング・システム・オンライン更新、ドライバ更新、キャッシュ管理ソフトウェア更新、新しいメモリ・ボードが設置されているなど、コンピューティング装置内にハードウェア変更若しくはソフトウェア変更が存在するときに実行可能である。
別の実施例では、測定/計算は、データ・ストリームが開始するたびに、そのデータ・ストリームによって使用されるブロック・サイズに対して実行される。
図3は、決定構成要素が、ステップ301において、データ・ストリームのブロック・サイズの表示と、データ・ストリームが読み取られることになるか、又は書き込まれることになるかに関する情報とを受信する状況を例示する。その場合、決定構成要素は、受信された表示を使用して、ステップ302において、図2を用いて上で例示されたように、例えば、作成された表から値を取得し、その値は、「キャッシュ」又は「ストレージ」のいずれかである。受信されたブロック・サイズが試験された幾つかのブロック・サイズのうちの1つでない場合、即ち、それがそのブロック・サイズに関連するメモリ・タイプを有さない場合、実装形態に応じて、そのブロック・サイズは次のブロック・サイズに切り上げられるか、若しくは切り捨てられるか、又は最も近いブロック・サイズが使用される。次いで、ステップ303において、そのデータ・ストリームに関して、取得されたメモリ・タイプが使用される。例えば、データ・ストリームが書き込まれることになる場合、ステップ302でどちらが取得されたかに応じて、データ・ストリームは決定構成要素からキャッシュ又はストレージのいずれかに転送される。
上記の内容は、データ・ストリームのブロック・サイズの表示と、データ・ストリームが読み取られることになるか又は書き込まれることになるかに関する情報とが決定構成要素を通過するが、実際のデータ・ストリームが決定構成要素を通らない実装形態にも適用される。
決定構成要素は、アプリケーションに対して透過的であり得る。しかし、図4は、幾つかのブロック・サイズが読取り/書込みに関して対応するメモリ・タイプと関連付けられた後で、決定構成要素が、ステップ401において、最適ブロック・サイズを決定して、ステップ402において、その最適ブロック・サイズをアプリケーションに通知する、ある実施例を示す。最適ブロック・サイズは、好ましくは、図2を用いて説明された手順の間に取得された測定結果及び/又は計算結果を使用して決定され、最適条件は、最善の総合結果(例えば、最善の速度又は最善の性能)を提示するものである。したがって、この実施例は、動的な最適値が通知されることを実現し、この値はコンピューティング環境と、そのコンピューティング環境に行われた変更とを考慮に入れる測定及び/又は計算によって取得されている。そのような値を通知することは効率性を改善するが、開発者によって行われた推定に基づく、即ち、それがハード・コーディングされた時点での開発者の最善の推定である、先行技術のハード・コーディングされた通知値の場合、これは稀である。
図2から図4において上で説明されたステップ及び関連する機能は、絶対的な発生順序ではなく、これらのステップのうちのいくつかは、同時に又は提示された順序とは別の順序で実行されることが可能である。例えば、読取り測定及び書込み測定は、別のブロック・サイズを測る(ステップ201及び206)前に、1つのブロック・サイズに関して実行可能である(ステップ202〜205)。それらのステップ間で、又はそれらのステップ内でその他の機能を実行することも可能である。それらのステップのうちのいくつか又はそれらのステップの一部を省略することも可能である。例えば、データを読み取る/書き込むアプリケーションは読取り及び/又は書込みに関してその独自の制御を要求することができ、その場合、データ・ストリームは決定構成要素を通過するが、決定構成要素は、その要求に応答して、使用されることになるメモリ・タイプを取得せず、即ち、ステップ302及び303は、その場合、省略される。更に、それらのステップのうちのいくつか若しくはそれらのステップの一部を一緒に統合すること、又は対応するステップ若しくはステップの一部で置換することも可能である。例えば、ステップ202及びステップ203で時間を測定する代わりに、又はそれに加えて、CPU使用を測定することが可能である。
技術が進展するにつれて、この発明性のある概念を様々な方法で実施することが可能である点は当業者に明らかになるであろう。本発明及びその実施例は上で説明された実例に限定されず、特許請求の範囲内で変形し得る。

Claims (15)

  1. コンピューティング環境に関する方法であって、
    ある複数のブロック・サイズに関し、当該ブロック・サイズのブロックをキャッシュから読み取るためにかかる時間、前記ブロックを前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取るためのプロセッサ・リソースの使用量、前記ブロックを前記キャッシュに書き込むためのプロセッサ・リソースの使用量、及び前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためのプロセッサ・リソースの使用量を含む一群のファクタのうちの少なくとも1つのファクタの決定と、前記キャッシュの代わりにストレージを直接的に使用した場合の前記少なくとも1つのファクタの決定と、を含む決定を行うステップと
    前記決定によって得られた結果に基づき、キャッシュを使用すること及びストレージを直接的に使用することのいずれがより効率的な方法であるかを前記複数のブロック・サイズの各々に対して選択し
    前記複数のブロック・サイズの各々と前記選択された方法を関連付けするステップと、
    前記複数のブロック・サイズの一つのブロック・サイズであるデータ・ストリームのブロック・サイズに応答して、当該データ・ストリームに対して、前記複数のブロック・サイズの一つに関連付けされたより前記選択されたより効率的な方法を使用するステップと、を含む方法。
  2. 前記決定を行うステップが一つ以上のファクタを測定することによって行われる、請求項1に記載の方法。
  3. 前記決定を行うステップが、
    前記コンピューティング環境のメモリ使用の前記効率に影響を及ぼすシステム・パラメータを取得するステップと
    前記取得されたシステム・パラメータを使用することによって、前記複数のブロック・サイズに対して前記少なくとも1つのファクタを計算するステップと、
    を更に含む、請求項1に記載の方法。
  4. 前記コンピューティング環境のメモリ使用の前記効率性に影響を与えるシステム・パラメータを取得するステップと
    前記取得されたシステム・パラメータを使用することによって、前記複数のブロック・サイズに関して、キャッシュを使用すること及びストレージを直接的に使用することの効率性を計算するステップと、
    前記コンピューティング環境内のハードウェアを確認するために、対応する測定結果を計算結果と比較するステップと
    を更に含む、請求項2に記載の方法。
  5. データ・ストリームのブロック・サイズに関する情報を受信するステップと、
    前記データ・ストリームの前記ブロック・サイズが前記複数のブロック・サイズのどの一つに対応するかを決定するステップと、
    前記データ・ストリームに関して、前記関連付けられた方法を使用するステップと
    を更に含む、請求項2に記載の方法。
  6. 前記選択が実行された前記測定結果に基づいて、最適ブロック・サイズを決定するステップと、
    前記最適ブロック・サイズをアプリケーションに通知するステップと、
    を更に含む、請求項2に記載の方法。
  7. 前記選択が実行された前記計算結果に基づき、最適なブロック・サイズを決定するステップと、
    前記最適なブロック・サイズをアプリケーションに適用するステップと、
    を更に含む、請求項3に記載の方法。
  8. 前記読み取るためのステップと前記書き込むためのステップとを別個に実行するステップを更に含む、請求項3に記載の方法。
  9. ある複数のブロック・サイズに関して、当該ブロック・サイズのブロックをキャッシュから読み取るためにかかる時間、前記ブロックを前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取るためのプロセッサ・リソースの使用量、前記ブロックを前記キャッシュに書き込むためのプロセッサ・リソースの使用量、及び前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためのプロセッサ・リソースの使用量、を含む一群のファクタのうちの少なくとも1つのファクタの決定と、前記キャッシュの代わりにストレージを直接的に使用した場合の前記少なくとも1つのファクタの決定と、を含む決定を行なうこと、
    前記決定によって得られた結果に基づき、キャッシュを使用すること及びストレージを直接的に使用することのいずれがより効率的な方法であるかを前記複数のブロック・サイズの各々に対して選択すること、及び
    前記複数のブロック・サイズの各々と前記選択された方法を関連付けすること、
    前記複数のブロック・サイズの一つのブロック・サイズであるデータ・ストリームのブロック・サイズに応答して、データ・ストリームに対して、前記複数のブロック・サイズの一つに関連付けされた前記選択されたより効率的な方法を使用すること、
    を装置上で実行させるように構成されたコンピュータ・プログラム・コードを備えたコンピュータ・プログラム。
  10. 前記決定が一つ以上のファクタを測定することによって行うこと、を装置上で実行させるように構成された、請求項9に記載のコンピュータ・プログラム。
  11. 前記コンピュータ・プログラム・コードが更に、
    メモリ使用の前記効率に影響を及ぼす、コンピューティング環境のシステム・パラメータを取得すること、
    前記取得されたシステム・パラメータを使用することによって、前記複数のブロック・サイズに関して、キャッシュを使用すること及びストレージを直接的に使用することのいずれがより効率的な方法であるかを計算すること、によって一つ以上のファクタの決定を行うこと
    を装置上で実行させるように構成された、請求項9に記載のコンピュータ・プログラム。
  12. ある複数のブロック・サイズに関して、当該ブロック・サイズのブロックをキャッシュから読み取るためにかかる時間、前記ブロックを前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためにかかる時間、前記ブロックを前記キャッシュから読み取るためのプロセッサ・リソースの使用量、前記ブロックを前記キャッシュに書き込むためのプロセッサ・リソースの使用量及び前記ブロックを前記キャッシュから読み取りかつ前記キャッシュに書き込むためのプロセッサ・リソースの使用量を含む一群のファクタのうちの少なくとも1つのファクタの測定と、前記キャッシュの代わりにストレージを直接的に使用した場合の前記少なくとも1つのファクタの測定と、を含む測定を行なう手段と、
    前記測定から得られた結果に基づき、キャッシュを使用すること及びストレージを直接的に使用することのいずれがより効率的な方法であるかを前記複数のブロック・サイズの各々に対して選択する手段と、
    前記複数のブロック・サイズの各々と前記選択された方法を関連付けする手段と、
    データ・ストリームのブロック・サイズに対応する前記複数のブロック・サイズの一つのブロック・サイズに関連付けされたより効率的な方法を使用する手段と、
    を備えた装置。
  13. 前記装置が更に、前記キャッシュと、前記ストレージと、データ・ストリームが通過する構成要素とを備え、前記構成要素が、少なくとも、データ・ストリームに対して、前記対応するブロック・サイズに関係付けされた前記選択されたより効率的な方法に基づいて前記キャッシュ又は前記ストレージを使用する手段を備えた、請求項12に記載の装置。
  14. ある複数のブロック・サイズに関して、当該ブロック・サイズのブロックを読み取るためにかかる時間、前記ブロックを書き込むためにかかる時間、前記ブロックを読み取りかつ書き込むためにかかる時間、前記ブロックを読み取るためのプロセッサ・リソースの使用量、前記ブロックを書き込むためのプロセッサ・リソースの使用量、及び前記ブロックを読み取りかつ書き込むためのプロセッサ・リソースの使用量を含む一群のファクタのうちの少なくとも1つのファクタを測定することによってキャッシュを使用すること及びストレージを直接的に使用することのいずれがより効率的な方法であるかを測定し、
    得られた測定結果に基づき、キャッシュを使用すること及びストレージを直接的に使用することに対して各測定されたブロック・サイズに対してより効率的な方法を選択し、
    前記各測定されたブロック・サイズを前記選択された方法と関連付け、
    前記各測定されたブロック・サイズの一つに対応するブロック・サイズを有するデータ・ストリームに応答して、当該データ・ストリームに対して、前記対応するブロック・サイズに関連付けされた前記選択されたより効率的な方法を使用する、
    ように構成されたコンピュータ構成要素。
  15. 前記コンピュータ構成要素が、コントローラ、制御ユニット、マイクロコントローラ、シングル・チップ・コンピュータ要素、チップセット又はボードである、請求項14に記載のコンピュータ構成要素。
JP2016083229A 2010-06-29 2016-04-18 メモリへの読取り又は書込み Active JP6145193B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20105743 2010-06-29
FI20105743A FI20105743A0 (fi) 2010-06-29 2010-06-29 Muistista lukeminen tai muistiin kirjoittaminen

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013517421A Division JP6005637B2 (ja) 2010-06-29 2011-06-21 メモリへの読取り又は書込み

Publications (2)

Publication Number Publication Date
JP2016149155A JP2016149155A (ja) 2016-08-18
JP6145193B2 true JP6145193B2 (ja) 2017-06-07

Family

ID=42308195

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013517421A Active JP6005637B2 (ja) 2010-06-29 2011-06-21 メモリへの読取り又は書込み
JP2016083229A Active JP6145193B2 (ja) 2010-06-29 2016-04-18 メモリへの読取り又は書込み

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013517421A Active JP6005637B2 (ja) 2010-06-29 2011-06-21 メモリへの読取り又は書込み

Country Status (6)

Country Link
US (1) US8775738B2 (ja)
EP (1) EP2588964B1 (ja)
JP (2) JP6005637B2 (ja)
KR (1) KR101569372B1 (ja)
FI (1) FI20105743A0 (ja)
WO (1) WO2012001234A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101873296B1 (ko) * 2011-09-15 2018-07-03 삼성전자주식회사 저장공간 확장이 가능한 단말기 및 그 저장공간 확장방법
US9921962B2 (en) * 2015-09-24 2018-03-20 Qualcomm Incorporated Maintaining cache coherency using conditional intervention among multiple master devices
KR20220022139A (ko) 2020-08-18 2022-02-25 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0460730A (ja) * 1990-06-28 1992-02-26 Nec Corp キャッシュ制御方式
EP0667579A1 (en) * 1994-02-09 1995-08-16 Ballard Synergy Corporation Cache for optical storage device
JPH10269143A (ja) * 1997-03-25 1998-10-09 Mitsubishi Electric Corp ディスクキャッシュ装置のキャッシュパラメータ制御方法及びディスクキャッシュ装置
US6266742B1 (en) * 1997-10-27 2001-07-24 International Business Machines Corporation Algorithm for cache replacement
JPH11353230A (ja) * 1998-06-04 1999-12-24 Toshiba Corp コンピュータ装置
JP4508608B2 (ja) * 2003-11-13 2010-07-21 株式会社日立製作所 統合キャッシュを備えた記憶装置アダプタ
US7401188B2 (en) * 2005-06-29 2008-07-15 Intel Corporation Method, device, and system to avoid flushing the contents of a cache by not inserting data from large requests
WO2007072287A2 (en) * 2005-12-20 2007-06-28 Koninklijke Philips Electronics N.V. Method of controlling disk accesses between a hard-disk drive and a number of stream buffers
US7409502B2 (en) 2006-05-11 2008-08-05 Freescale Semiconductor, Inc. Selective cache line allocation instruction execution and circuitry
CN101479805A (zh) 2006-06-30 2009-07-08 Nxp股份有限公司 具有闪速缓存部分的闪速存储器装置及其使用方法
US20080184003A1 (en) * 2007-01-30 2008-07-31 Kabushiki Kaisha Toshiba Data transmission control apparatus and data transmission control method
US7895397B2 (en) * 2007-09-12 2011-02-22 Intel Corporation Using inter-arrival times of data requests to cache data in a computing environment
US7886110B2 (en) * 2007-12-27 2011-02-08 Intel Corporation Dynamically adjusting cache policy based on device load in a mass storage system
JP5577238B2 (ja) * 2008-02-29 2014-08-20 パナソニック株式会社 アクセス装置、情報記録装置、コントローラ、及び情報記録システム
US8433854B2 (en) * 2008-06-25 2013-04-30 Intel Corporation Apparatus and method for cache utilization
US8601213B2 (en) 2008-11-03 2013-12-03 Teradata Us, Inc. System, method, and computer-readable medium for spool cache management

Also Published As

Publication number Publication date
EP2588964B1 (en) 2019-12-25
KR20140012934A (ko) 2014-02-04
US20110320718A1 (en) 2011-12-29
FI20105743A0 (fi) 2010-06-29
KR101569372B1 (ko) 2015-11-16
JP6005637B2 (ja) 2016-10-12
JP2016149155A (ja) 2016-08-18
CN102971719A (zh) 2013-03-13
EP2588964A1 (en) 2013-05-08
JP2013533551A (ja) 2013-08-22
WO2012001234A1 (en) 2012-01-05
US8775738B2 (en) 2014-07-08

Similar Documents

Publication Publication Date Title
TWI380178B (en) System and method for managing memory errors in an information handling system
US10025504B2 (en) Information processing method, information processing apparatus and non-transitory computer readable medium
US9916265B2 (en) Traffic rate control for inter-class data migration in a multiclass memory system
US10853219B2 (en) Real-time input/output bandwidth estimation
JP6145193B2 (ja) メモリへの読取り又は書込み
JP6761870B2 (ja) 低電力メモリのスロットリング
US10643736B2 (en) Method, apparatus and electronic device for read/write speed testing
JP2012512472A (ja) データバースト間の競合の解決
EP2908248B1 (en) Memory data pushing method and device
US9740618B2 (en) Memory nest efficiency with cache demand generation
JP7038656B2 (ja) キャッシュへのアクセス
US20120254656A1 (en) Method, apparatus and system for providing memory sparing information
JP2007293846A (ja) メモリに関する保守および調整操作を行う方法およびシステム
JP2023508117A (ja) 不揮発性メモリモジュールのエラー報告
US10209749B2 (en) Workload allocation based on downstream thermal impacts
US9092486B2 (en) Extensible I/O activity logs
CN102971719B (zh) 对存储器读取或写入的方法、设备及组件
US11556259B1 (en) Emulating memory sub-systems that have different performance characteristics
EP4033346A1 (en) Affinity-based cache operation for a persistent storage device
KR101335343B1 (ko) 메모리 관리 장치 및 방법
JP2014157476A (ja) 計測装置及び計測方法
US20190391837A1 (en) Processing division device, simulator system and processing division method
RU2504000C1 (ru) Способ копирования данных в кэш-памяти и устройство для его осуществления
TW410300B (en) Detection method for the storage capacity of high speed cache
WO2017020194A1 (zh) 一种文件***保护方法、装置及存储设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170512

R150 Certificate of patent or registration of utility model

Ref document number: 6145193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250