JP5526697B2 - ストレージ装置およびメモリシステム - Google Patents
ストレージ装置およびメモリシステム Download PDFInfo
- Publication number
- JP5526697B2 JP5526697B2 JP2009237503A JP2009237503A JP5526697B2 JP 5526697 B2 JP5526697 B2 JP 5526697B2 JP 2009237503 A JP2009237503 A JP 2009237503A JP 2009237503 A JP2009237503 A JP 2009237503A JP 5526697 B2 JP5526697 B2 JP 5526697B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- random access
- access memory
- function
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3854—Control is performed at the peripheral side
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)
Description
そこで、その差を改善するために、メモリがディスクキャッシュとして使用されている。
これは同じセクタデータを何度も読み出したり、小さなデータをたくさん書き込んだりするときに大きな効果を示している。
ただし、第2ディスクキャッシュに存在するデータはストレージ装置から第1キャッシュを経由して読み込んだデータということになる。
そして、ディスクコントローラはデータ判定手段を持ち、制御用データと判断したデータはキャッシュメモリ上に保持しないことでキャッシュ使用率を改善する。
この技術では、第1ディスクキャッシュと第2ディスクキャッシュのデータの重複を防ぐことができる。
この技術では、ファイルの特定領域のキャッシュメモリへの固定化が容易に行うことができる。
つまり、2つのディスクキャッシュに同一のデータが存在する状態が絶えず発生する。 このように、2つのディスクキャッシュが独立に制御されている。
このために、第2ディスクキャッシュ上にロードされたデータは、第1ディスクキャッシュにも同時に存在することになり、メモリの使用効率を低下させ、その結果パフォーマンス改善効果も低下させている。
システムのオペレーティングシステム(OS)はワークメモリが足りない場合、スワップ動作によってストレージアクセスを発生させるため、システム動作のパフォーマンスを低下させる要因となっていた。
この技術では、コントローラはキャッシュメモリにアクセス可能なメモリインターフェースを持たない。そのため、データ、コードへのアクセス前に必ずデータ転送が必要となり、オーバーヘッドとなる。
またこの技術では、データ転送中にキャッシュメモリに固定するデータの指定するための領域通知命令を送る。このため、前の処理が実行中でまだデータ転送の開始が不可能な場合に、次のデータをキャッシュ上に準備することができず、先読みによる高速化を図ることができない。
また、コントローラはキャッシュメモリにアクセス可能なメモリインターフェースを持たない。そのため、データ、コードへのアクセス前に必ずデータ転送が必要となり、オーバーヘッドとなる。
なお、説明は以下の順序で行う。
1.第1の実施形態
2.第2の実施形態
図1は、本発明の第1の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。
ストレージモジュール20、CPU30、MMM40、およびIOモジュール60,70はシステムバス50により接続される。
RAMD22はワード単位のアドレスによってアクセスされ、STGD23はセクタ単位のアドレスによってアクセスされる。
STGC21は、第1のインターフェース機能としてのストレージインターフェース(STGC-IF)24、および第2のインターフェース機能としてのメモリインターフェース(MEM-IF)25を有する。
そして、STGM20は、ストレージインターフェース(STGC-IF)24とメモリインターフェース(MEM-IF)25によりシステムバス50と接続される。
ここで、セクタアドレスによって指定されたデータは、STGC21のレジスタアクセスの繰り返しによって転送される他、バスマスタ機能によって、MMM40との間で、連続するワードサイズのデータとして高速に転送される。
STGC-IF24からのアクセスに対して、STGC21はRAMD22を第1ディスクキャッシュとして使用し、RAMD22上に保存するデータをSTGC21が決定する。
指示には、STGD23のアドレスとデータサイズに関する情報が含まれる。
STGC21は、RAMD22上の未使用領域から、指定されたデータサイズの領域を確保し、STGD23から指定されたアドレスのデータを先に確保した領域に書き込む処理を実施する。
指示には、STGD23のアドレスに関する情報が含まれ、STGC21はRAMD22上の指定されたデータの領域について、解除指示以降はそのデータをRAMD22上に保持するかはSTGC21の判断で決定する。
STGC21は、第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとしてRAMD22上に存在した場合には、第2ディスクキャッシュのデータに切換える機能を有する。
STGC21は、第1ディスクキャッシュとしてRAMD22上に保持されたデータを、STGC21の判断によってSTGD23に書き戻す処理を行う。
STGC21は、第2ディスクキャッシュとしてRAMD22上に保持されたデータは、CPU30から解除指示を受けるまで保持し続ける。
STGC21は、キャッシュ管理情報を不揮発性メモリに保持する機能と、その不揮発性メモリに保持された指示内容を、STGM20の起動時に再現する機能を有する。
なお、不揮発性メモリはSTGD23の一部であってもよい。
この場合、MEM-IF25からARBTを介して直接NVRAMにアクセスするパスを設けることで、STGC21内のデータ転送を不要としさらなる高速化が可能となる。
なお、以下において、理解を容易にするために、比較例についても本実施形態の構成要素と同様の符号を付して説明する。
STGD23は、不揮発性データ記憶領域として使用され、RAMD22はSTGD23とSTGC21の間で入出力されるデータのキャッシュ領域として使用される。
MEM‐IF25は、CPU30からRAMD22をメモリとしてアクセスする機能を提供する。
本実施形態においては、キャッシュ領域に保持されたデータをメインメモリに転送することなく直接アクセスすることができる。
このメモリシステム10Aは、STGM20Aがシステムバス50AにSTGC‐IF24Aにより接続されており、MEM‐IFの機能を有していない。
第1ディスクキャッシュ領域221Aは、STGM20Aに対するアクセス情報とSTGD23Aのアクセス性能を元にSTGC21Aが制御するキャッシュ領域である。
これに対して、第2ディスクキャッシュ41はOSやアプリケーションの要求に従ってCPU30が管理するキャッシュ領域である。
ディスクキャッシュ領域の管理はSTGC21が行うが、第2ディスクキャッシュ222の割当て要求時に、アドレス情報がCPU30に対して出力されることで、CPU30はどのセクタがどのディスクキャッシュに存在するかを判断することができる。
不要になったディスクキャッシュを開放することもできる。
このSTGC21Aは、システムバス50Aとのインターフェースを制御するストレージインターフェース制御部211A、STGD23Aを制御するストレージデバイス制御部212A、およびRAMD22Aを制御するRAMデバイス制御部213Aを有する。
そして、3つの制御部211A,212A,213Aが1つの内部バスで接続されている。
図4は、本発明の実施形態に係るSTGCの基本的な内部構成を示す図である。
このSTGC21は、STGC‐IF24とシステムバス50とインターフェースを制御するストレージインターフェース制御部211、STGD23を制御するストレージデバイス制御部212、およびRAMDを制御するRAMデバイス制御部213を有する。
さらに、STGC21は、MEM‐IF25とシステムバス50のインターフェースを制御するメモリインターフェース制御部214を有する。
本実施形態のSTGC21において、RAMデバイス制御部213は比較例のSTGC21Aと同様の内部バスに加えて、メモリインターフェース制御部214と接続されている。
図5は、本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第1の構成例を示す図である。
図6は、本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第2の構成例を示す図である。
これに対応して、STGC21Bは、2つのRAMデバイス制御部213−1,213−2を有する。
RAMデバイス制御部213‐1は、RAMD22BのランダムアクセスポートPT‐Aと、ストレージインターフェース制御部211およびストレージデバイス制御部213との間に接続されている。
RAMデバイス制御部213‐2は、RAMD22BのランダムアクセスポートPT‐Bと、メモリインターフェース制御部214との間に接続されている。
アービタ215は、ポートPT‐Aがストレージインターフェース制御部211およびストレージデバイス制御部212に接続され、ポートPT‐Bがメモリインターフェース制御部214に接続されている。
2つのアクセスが競合した場合には、アービタ215は、ポートPT−B側のMEM-IF25経由のアクセスを優先し、CPU30の処理の遅延を防ぐ。
本実施形態のメモリマップは、MEM-IF25からアクセスされるアドレス空間を有する。この空間を第2ディスクキャッシュ領域として使用することで、メインメモリであるMMM40へのデータ転送時間を不要とし、メインメモリの消費も不要とすることができる。
図8は、本実施形態に係るSTGCを制御する制御レジスタCTRL_REGの構成例を示す図である。
データレジスタ(Data Register)DRはCPUとの間でデータ転送を行うためのレジスタであり、CPU30からSTGC21へのデータ転送のときはライト(Write)、STGC21からCPU30へのデータ転送のときはリード(Read)する。
エラーレジスタ(Error Register)ERは後述のステータスレジスタ(Status Register)SRがエラー発生を通知した際にその原因を示すレジスタであり、リード専用である。
セクタアドレスレジスタ(Sector Address Register)SARは、アクセスする先頭セクタアドレスを設定するレジスタである。この例では最大32ビットアドレスまで指定できる。
ステータスレジスタ(Status Register)SRは、STGC21の動作状態を示すレジスタであり、リード専用である。
ABRTはアボート(Abort)を意味し、転送が途中で中断されたときに1となる。
BSYはビジー(Busy)を意味し、BSY=1はSTGC21がコマンド実行中であることを示す。
DRDYはデータレディ(Data Ready)を意味し、DRDY=1はデータレジスタ(Data Register)DRにデータがセットされリード可能であることを示す。
DRQはデータリクエスト(Data Request)を意味し、DRQ=1はデータレジスタDRが空でありライト可能であることを示す。
ERRはエラー(Error)を意味し、ERR=1はエラーが発生したことを示し、その要因はエラーレジスタERの値から確認できる。
コマンドレジスタ(Command Register)CRはSTGC21に対してコマンドを設定するレジスタであり、ライト専用である。
ここでは8ビットの値をオペレーションコード(Operation Code)OCとして使用でき、最大256種類のコマンドが定義可能である。
バスマスタコマンドレジスタ(Bus Master Command Register)BMCRは、STGC21がバスマスタとしてシステムバス50へ行うアクセスを制御するためのレジスタである。
バスマスタステータスレジスタ(Bus Master Status Register)BMSRは、STGC21がバスマスタとして動作している状態を示すためのレジスタである。
バスマスタPRDテーブルアドレスレジスタ(Bus Master PRD Table Address Register)BMPRDTARはメインメモリ上に用意されたPRD(Physical Region Descriptor)テーブルPRDTのアドレスを設定するためのレジスタである。
STGC21はPRDテーブルPRDTからPRDを順次読み込み、PRDテーブルPRDTに書かれたアドレス情報を元にデータ転送を行う。
リードあるいはライト(Read or Write)RoWはデータ転送の方向を設定し、Read(STGCからメインメモリへのデータ転送)=0、Write(メインメモリからSTGCへのデータ転送)=1を示す。
スタートあるいはストップ(Start or Stop)SoSはバスマスタ動作の開始と停止を設定し、Start=1、Stop=0である。
エラー(Error)ERRはデータ転送が完了しなかったことを示す。
バスマスタアクティブ(Bus Master Active)BMAはバスマスタが動作中であることを示す。
ステータスレジスタ(Status Register)SRの値が変化した場合に、CPU30に対して割り込み信号を発生し、状態の変化を知らせる仕組みを持ったシステムも多く存在するが、ここではステータスレジスタSRをポーリングして確認する例について説明する。
PRDテーブルPRDTは複数のPRDテーブルエントリ(PRD Table Entry)PRDTEにより形成され、最終エントリ(Entry)のみEOT=1である。
PRDテーブルエントリ(Entry)PRDTEの内容は、メインメモリ上のデータ領域のアドレスを示すホストメモリ領域物理ベースアドレス(Host Memory Region Physical Base Address)HMRPBAを含む。
さらに、PRDテーブルエントリ(Entry)PRDTEの内容は、最終エントリ(Entry)を示すEOT(End Of Table)と、そのデータ領域のサイズをバイト(Byte)で示すバイトカウント(Byte Count)BCにより形成される。
なお、これらの制御レジスタCTRL_REG、バスマスタレジスタBM_REGの構成は一般的なものであり、本発明の実施形態の特徴を示しているものではなく、本発明の実現例を具体に説明する手段としてとり上げたものである。
また、図16は、図15のフローチャートに対応してリードコマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
一般的なCPUシステムは仮想メモリを使用するためこのバッファ領域は1つの連続するアドレス空間とは限らない。
ステップST12において、確保したバッファ領域からPRDテーブルPRDTをMMM40上に生成する。
ステップST13において、STGC21のバスマスタレジスタBM_REGにデータ転送方向とスタートビット(Start Bit)SoS、PRDテーブルPRDTを保存したMMM40のアドレスを設定する。
ステップST14において、STGC21の制御レジスタCTRL_REGにリードするセクタ数と、先頭のセクタアドレスと、リードのコマンドコード(0x20)を設定する。
STGC21はコマンドの実行を開始し、データの準備ができるとバスマスタとして転送を開始する。
転送開始後、CPU30はSTGC21のバスマスタ動作をバスマスタレジスタBM_REGのバスマスタステータスレジスタ(Bus Master Status Register)BMSRをポーリングして確認する。
ステップST15において、CPU30はバスマスタアクティブ(Bus Master Active)BMA=0によってデータ転送の完了を確認する。
ステップST16において、CPU30はエラービット(Error Bit)ERR=0によってデータ転送の正常終了を確認する。
エラービット(Error Bit)ERR=1の場合には、ステップST19においてバスマスタレジスタBM_REGのバスマスタコマンドレジスタ(Bus Master Command Register)BMCRにストップビット(STOP bit)SoS=1を設定する。
バスマスタ転送完了後、CPU30はSTGC21の動作を制御レジスタCTRL_REGのステータスレジスタ(Status Register)SRをポーリングして確認する。
ステップST17において、CPU30はビジービット(BSY Bit)BSY=0によってコマンドの終了を確認する。
ステップST18において、CPU30はエラービット(Error Bit)ERR=0によって、コマンド実行結果が正常であることを確認する。
エラービット(Error Bit)ERRが1の場合には、ステップST1Aで制御レジスタCTRL_REGのエラーレジスタ(Error Register)ERの値を確認し、エラーの状態(Abort)を確認する。
アクセスしたセクタデータは第1ディスクキャッシュとしてディスクキャッシュ領域に保持される。
また、図18は、図17のフローチャートに対応してライト(Write)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
一般的なCPUシステムは仮想メモリを使用するためこのバッファ領域は1つの連続するアドレス空間とは限らない。
ステップST22において、確保したバッファ領域からPRDテーブルPRDTをMMM40上に生成する。
ステップST23において、バスマスタレジスタBM_REGにデータ転送方向とスタートビット(Start Bit)SoS、PRDテーブルPRDTを保存したMMM40のアドレスを設定する。
ステップST24において、STGC21の制御レジスタCTRL_REGにライトするセクタ数と、先頭のセクタアドレス(Sectorアドレス)と、ライトのコマンドコード(0x30)を設定する。
STGC21はコマンドの実行を開始し、データの受信準備ができるとバスマスタとして転送を開始する。
転送開始後、CPU30はSTGC21のバスマスタ動作をバスマスタレジスタBM_REGのバスマスタステータスレジスタ(Bus Master Status Register)BMSRをポーリングして確認する。
ステップST25において、CPU30はバスマスタアクティブ(Bus Master Active)BMA=0によってデータ転送の完了を確認する。
ステップST26において、CPU30はエラービット(Error Bit)ERR=0によってデータ転送の正常終了を確認する。
エラービット(Error Bit)ERR=1の場合には、ステップST29においてバスマスタレジスタBM_REGのバスマスタコマンドレジスタ(Bus Master Command Register)BMCRにストップビット(STOP bit)SoS=1を設定する。
バスマスタ転送完了後、CPU30はSTGC21の動作を制御レジスタCTRL_REGのステータスレジスタ(Status Register)SRをポーリングして確認する。
ステップST27において、CPU30はビジービット(BSY Bit)BSY=0によってコマンドの終了を確認する。
ステップST28において、CPU30はエラービット(Error Bit)ERR=0によって、コマンド実行結果が正常であることを確認する。
エラービット(Error Bit)ERRが1の場合には、ステップST2Aにおいて制御レジスタCTRL_REGのエラーレジスタ(Error Register)ERの値を確認し、エラーの状態(Abort)を確認する。
アクセスしたセクタデータは第1ディスクキャッシュとしてディスクキャッシュ領域に保持される。
また、図20は、図19のフローチャートに対応してセットキャッシュ(Set Cache)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
STGC21はコマンドの実行を開始し、RAMD22上のディスクキャッシュ領域の空き領域を検索し、指定されたデータをSTGD23から読み込む。
コマンドの実行開始後、CPU30は制御レジスタCTRL_REGのステータスレジスタ(Status Register)SRをポーリングで確認する。
ステップST32において、CPU30はデータレディビット(DRDY Bit)DRDY=1を検出した場合、ステップST33で制御レジスタCTRL_REGのデータレジスタ(Data Register)DRを読み出す。
セットキャッシュ(Set Cache)コマンドの実行結果として、STGC21は指定したデータを割り当てたディスクキャッシュ領域のアドレスを出力する。
ステップST34において、CPU30はビジービット(BSY Bit)BSY=0によって、コマンドの終了を確認する。
ステップST35において、CPU30はエラービット(Error Bit)ERR=0によって、コマンド実行結果が正常であることを確認する。
エラービット(Error Bit)ERR=1の場合には、ステップST36において制御レジスタCTRL_REGのエラーレジスタ(Error Register)ERの値を確認し、エラーの状態(Abort、ここではCache割り当て失敗)を確認する。
また、図22は、図21のフローチャートに対応してリースキャッシュ(Release Cache)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
STGC21はコマンドの実行を開始し、指定されたRAMD22上のディスクキャッシュ領域を検索し、キャッシュアウトの処理を行う。
第1ディスクキャッシュのデータとすることで、ディスクキャッシュ領域の空き領域がなくなった時にキャッシュアウトしてもよい。
コマンドの実行開始後、CPU30は制御レジスタCTRL_REGのステータスレジスタ(Status Register)SRをポーリングで確認する。
ステップST42において、CPU30はビジービット(BSY Bit)BSY=0によって、コマンドの終了を確認する。
ステップST43において、CPU30はエラービット(Error Bit)ERR=0によって、コマンド実行結果が正常であることを確認する。
エラービット(Error Bit)ERR=1の場合には、ステップST44において制御レジスタCTRL_REGのエラーレジスタ(Error Register)ERの値を確認し、エラーの状態(Abort、ここではCache割り当て失敗)を確認する。
図23は、図15〜図22のような機能を実現するために必要となるディスクキャッシュ領域の管理情報の例について説明するための図である。
STGC21は、キャッシュ管理情報CMIによってディスクキャッシュ領域DCRを管理する。ディスクキャッシュ領域DCRはディスクキャッシュエントリ(Disk Cache Entry)DCEとして512Byteを単位として管理される。
キャッシュ管理情報CMIは、複数のキャッシュ管理情報エントリCMIEからなり、キャッシュ管理情報エントリCMIEはSTGD23上のセクタアドレスと管理情報(Management Information)MIにより形成される。
管理情報(Management Information)MIには、第1ディスクキャッシュか第2ディスクキャッシュかを示すキャッシュタイプ(Cache Type)CT、および使用中かどうかを示すユーズド/アンユーズド(Used / Unused)UUSを含む。
管理情報(Management Information)MIには、書込みによってデータが変更されたかを示すダーティフラグ(Dirty Flag)DRTF、キャッシュアウト(Cache Out)するデータを選択するために使用される情報であるLRU Infoが含まれる。
また、STGC21のメモリインターフェース制御部214はディスクキャッシュ領域DCRへのシステムバス50からのアクセスを可能とするが、キャッシュ管理情報領域CMIRへのシステムバス50からのアクセスを禁止する。
ステップST51において、STGC21はバスマスタ機能を使ってMMM40上のPRDテーブルPRDTから最初のPRDテーブルエントリPRDTEを読み込む。
ステップST52において、STGC21は制御レジスタCTRL_REGに書込まれたセクタアドレスとセクタ数からキャッシュ管理情報CMIを検索する。
ステップST53においては、検索の結果ディスクキャッシュ上に該当するデータが存在した場合(キャッシュヒット)には、ステップST54においてそのデータを、バスマスタ機能を使ってMMM40上のデータバッファ領域に転送する。
ステップST55において、先頭のPRDテーブルエントリPRDTE分のデータの転送が完了したかを確認し、ステップST56で転送情報終了か否かの判定処理を経てステップST51に戻って次のPRDテーブルエントリ)PRDTEを読み込む。
ステップST53においてキャッシュミスしたと判定した場合には、ステップST57において新たにデータを読み込むためのディスクキャッシュ領域DCRを検索する。
新しいディスクキャッシュ領域が見つからなかった場合には、ステップST5Bにおいてキャッシュアウト処理を行い、空きディスク領域を確保する。
ステップST58で空き領域があると判断した場合、ステップST59において、STGDから読み出したデータをバスマスタ機能でMMM40上のデータバッファ領域に転送すると同時に、RAMD22上の新たに確保したキャッシュ領域に転送する。
ステップST5Aにおいて、キャッシュ管理情報CMIに登録し、ステップST55で転送終了か否か、ST56で転送情報終了か否かの判定処理を経てステップST51に戻って次のPRDテーブルエントリPRDTEを読み込む。
以上の処理をコマンド終了まで繰り返す。
ステップST61において、STGC21はバスマスタ機能を使ってMMM40上のPRDテーブルPRDTから最初のPRDテーブルエントリPRDTEを読み込む。
ステップST62において、STGC21は制御レジスタCTRL_REGに書き込まれたセクタアドレスとセクタ数からキャッシュ管理情報を検索する。
ステップST63においてキャッシュミスした場合には、ステップST68において新たにデータを書き込むためのディスクキャッシュ領域DCRを検索する。新しいディスクキャッシュ領域が見つからなかった場合には、ステップST6Cにおいてキャッシュアウト処理を行い、空きディスク領域を確保する。
ステップST63においてキャッシュヒットしたと判断した場合、ステップST64において、STGC21はバスマスタ機能を使ってMMM40上のデータをRAMD22上に確保した前記キャッシュ領域に転送する。
ステップST65において、キャッシュ管理情報のダーティフラグ(Dirty Flag Bit)DRTF=1に設定する。
そして、ステップST66において先頭のPRDテーブルエントリPRDTE分のデータの転送が完了したかを確認し、ステップST67で転送情報終了か否かの判定処理を経てステップST61に戻って次のPRDテーブルエントリPRDTEを読み込む。
本発明の実施形態ではSTGC21が制御するRAMD22上に、ディスクキャッシュ領域DCR上のデータに第1ディスクキャッシュと第2ディスクキャッシュの2種類のキャッシュタイプ(Cache Type)CTが存在する。
これに対して、比較例では第1ディスクキャッシュに相当するデータしか存在しない。
候補を決定するにはキャッシュ管理情報CMIの管理情報(Management Information)MIにあるLRU Infoを読み込み使用する。
また、第2ディスクキャッシュはキャッシュアウト(Cache Out)の候補としない。
ステップST72において、候補となったセクタの管理情報MIがダーティフラグビット(Dirty Flag Bit)DRTF=1であった場合、ステップST73において現在RAMD22上にあるセクタデータをSTGD23に書き戻す処理を行う。
ステップST74において、キャッシュ管理情報を未使用にクリアする。
ダーティビット(Dirty Bit)DB=0であったデータは、書き戻しを行わずステップST74においてキャッシュ管理情報をクリアする。
ステップST75において、最終セクタであると判断されるまで、以上の処理を必要とするセクタ数分繰り返す。
ステップST82において、該当するディスクキャッシュデータが見つかった場合には、ステップST83においてそのデータが第1ディスクキャッシュであった場合には、ステップST84においてキャッシュ管理情報を第2ディスクキャッシュに設定変更する。
ステップST82において、該当するディスクキャッシュデータが存在しなかった場合には、ステップST87において、RAMD22上のディスクキャッシュ領域DCRから空き領域を検索する。ステップST88において空き領域が見つからなかった場合には、ステップST8Bにおいてキャッシュアウト(Cache Out)処理を行い空き領域を準備する。
ステップST88で空き領域が有ると判断した場合にはステップST89において、STGD23から該当するセクタデータをRAMD22上に確保したディスクキャッシュ空き領域に転送する。
そして、ステップST8Aにおいてキャッシュ管理情報CMIに第2ディスクキャッシュとして登録する。
ステップST85において指定したセクタデータに割り当てられたRAMD22上の第2ディスクキャッシュのアドレスを制御レジスタCTRL_REGのデータレジスタ(Data Register)DRに設定する。データレジスタDRにデータを設定すると制御レジスタCTRL_REGのステータスレジスタ(Status Register)においてDRDY=1となり、新しいデータがデータレジスタDRに設定されたことを通知する。データレジスタDRのデータが読み出されると、DRDY=0となり、次のデータをデータレジスタDRに設定可能な状態となる。
ステップST86において、最終セクタであると判断されるまで、以上の処理を制御レジスタCTRL_REGのセクタ数(Sector Num)SNに設定されたセクタ数分繰り返す。
ステップST92において、該当するディスクキャッシュデータが見つかった場合には、ステップST93においてさらに第2ディスクキャッシュかどうか確認する。ここで肯定的判定(Yes)であった場合には、ステップST94において第1ディスクキャッシュに設定を変更する。
ステップST95において、最終セクタであると判断されるまで、以上の処理をCTRL_REGのセクタ数(Sector Num)SNに設定されたセクタ数分繰り返す。
第1ディスクキャッシュに変更されたデータは、次にディスクキャッシュ領域の空き領域が必要となった場合にキャッシュアウト(Cache Out)されるセクタの候補となる。
いずれの例でも3つのコードを順番にロードし実行する。
コード(Code)CD1〜CD3を順番にリードコマンドでMMM40上にロードし実行するため全処理時間としては、{T(Read Code1) +T(Exec Code1) + T(Read Code2) + T(Exec Code2) + T(Read Code3) + T(Exec Code3)}となる。
ここで、T(X)はXの処理完了までにかかる時間を示す。
コードCD1、CD2、CD3はすべて異なるセクタに保存されているため、第1ディスクキャッシュの効果は得られない。
先頭のコードCD1はリードコマンドであるが、コードCD2はコードCD1の実行中にセットキャッシュ(Set Cache)コマンドを実行し、コードCD3はコードCD2の実行中にセットキャッシュ(Set Cache)コマンドを実行する。
これによって全処理時間は、{T(Read Code1) + T(Exec Code1) + T(Read Code2 from Disk Cache) + T(Exec Code2) + T(Read Code3 from Disk Cache) + T(Exec Code3)}となる。
コードCD2、コードCD3は第1ディスクキャッシュの効果によりロード時間が短縮されている。
コードCD1〜CD3はすべてセットキャッシュ(Set Cache)コマンドにより第2ディスクキャッシュとしてRAMD22上にロードされ、CPU30はSTGC31のMEM-IF25から直接アクセスすることによってこれらのコードを実行する。
STGC21からアクセスするRAMD22とメインメモリの読み出しに関するパフォーマンスが同等とすれば、STGMからMMM上への転送時間がなくなる。
これによって全処理時間は、{T(Set Cache Code1) + T(Exec Code1) + T(Exec Code2) + T(Exec Code3)}となる。
コードの実行と、セットキャッシュ(Set Cache)コマンドの実行によるRAMD22へのアクセスはSTGC21内のメモリ制御部でアービトレーションされる。そして、MEM-IF25からのアクセスが優先されることによって、セットキャッシュ(Set Cache)の処理時間は多少長くなるが、コードの実行時間を越えなければ上記の全処理時間となる。
実際のCPUモジュールは内部に命令キャッシュ、データキャッシュを持つことから、アービトレーションによるセットキャッシュ(Set Cache)処理時間の延長の影響は実行時間を越えるほど大きくなりにくい。
STGC21はステップST101においてキャッシュ管理情報の初期値をRAMD22上のキャッシュ管理情報領域CMIRにロードする。
この初期値はSTGD23上に保存されるか、STGC21内の不揮発性記憶領域に保存される。
また、STGC21は初期値をその保存領域に設定する手段も提供している。
初期値によって設定されるディスクキャッシュは第1ディスクキャッシュと第2ディスクキャッシュのいずれかあるいは両方を含んでもよい。
ステップST102において、STGC21は初期値に従ってSTGD23からRAMD22上へセクタデータを転送する。
この処理は初期値として登録した全部の第2ディスクキャッシュがロードされるまで繰り返される。
その後、OSやアプリケーションの起動コードであるコードCD1、CD2、CD3をSTGC21よりロードする。
全処理時間としては、{T(Exec BootROM) + T(Read Code1) + T(Exec Code1) + T(Read Code2) + T(Exec Code2) + T(Read Code3) + T(Exec Code3)}となる。
このため、すべての初期化処理が終了するまでSTGC21のバスマスタ機能による外部へのデータ転送を使うことはできない。
ケースCS11は、そういった比較例を記述したものであり、CPUモジュール30の起動コードがブート(Boot)ROM80上から実行され、その終了後にコードCD1、CD2、CD3を順番にMMM40上にロードして実行する(Store And Download)。
コードCD11〜CD13は常に電源起動後初めてアクセスされるために、ディスクキャッシュの効果は得られない。
CPUモジュール30は起動処理終了後、STGD23に対してコードをロードするため、リードコマンドを使用するので、RAMD22上のキャッシュデータは第1ディスクキャッシュとして動作することでも高速化される。
起動処理終了後はこれら第2ディスクキャッシュのデータはすべてリリースキャッシュ(Release Cache)コマンドで開放することも可能である。
図32は、本発明の第2の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。
すなわち、本第2の実施形態では、ストレージモジュール20DにおいてSTGDとして不揮発性記憶デバイスでありかつランダムアクセスメモリとしても使用可能な不揮発性ランダムアクセスメモリ(NVRAM)26が使用されている。
STGDはRAMとしてアクセス可能であるが、一般的にシステムバス上のアドレス空間は全ストレージ空間よりも小さい。
したがって、メモリインターフェース制御部214はセットキャッシュ(Set Cache)コマンド実行時にシステムバス50からそのデータにアクセスするMEM−IF25上のアドレスを決定するNVRAMアドレスに変換を行う機能を持つこともある。
また、キャッシュ管理情報はNVRAM26上の決められた領域に保存するが、ワーク用として使用するキャッシュ管理情報領域と、起動用のキャッシュ管理情報を保存する領域の2つを持つ。
本実施形態に係るストレージモジュールは、内蔵するランダムアクセスメモリデバイスを第1および第2ディスクキャッシュとして使用することで、システムとしてのパフォーマンスを改善することが可能である。
本実施形態では、第2ディスクキャッシュの機能をストレージモジュール上で実現することで、第1ディスクキャッシュと重複したデータの保持によるディスクキャッシュの使用効率の低下を回避し、ディスクキャッシュの対容量効果を高めることができる。
また、本実施形態によれば、メインメモリを第2ディスクキャッシュとして使用したシステムと比較して、メインメモリとストレージモジュール間のデータ転送が発生しないことによるパフォーマンスの改善が可能となる。
同時にメインメモリの使用効率も改善され、スワップ(SWAP)の発生によるシステムパフォーマンスの低下も防ぐことが可能となる。
これに対して、本実施形態では、第2ディスクキャッシュとして指定されたデータも第1ディスクキャッシュのデータとして使用できる。
このことから、結果として第1ディスクキャッシュとしても、CPUから指示されたデータを保持できることになり、ストレージデバイスへのアクセス回数を削減できることで、パフォーマンスの改善が可能となる。
また、本実施形態では、ストレージコントローラが持つ起動用に設定したキャッシュ設定機能の指示内容を不揮発性メモリあるいはストレージデバイスの一部の領域に保持する機能を有する。また、本実施形態では、その領域に保持された指示内容を、ストレージモジュール起動時にディスクキャッシュ上に再現する機能を有する。本実施形態では、これらの機能によって、システムの起動時間の改善を可能とする。
これに対して、本実施形態では、ストレージモジュール自身が、初期状態としてディスクキャッシュ上にデータを展開することが可能である。
このため、本実施形態によれば、CPUモジュールの起動完了後ただちに第1と第2ディスクキャッシュの効果が最大限に発揮され、システムの起動時間を短縮することができる。
Claims (20)
- ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、
セクタ単位のアドレスによってアクセスされるストレージデバイスと、
バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、
上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、
上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、
上記ストレージコントローラは、
上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、
上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、
上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、
上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、
上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、
第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、
上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
ストレージ装置。 - 上記ストレージコントローラは、
第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、
キャッシュ指定を解除するキャッシュ解除機能と、を含む
請求項1記載のストレージ装置。 - 上記キャッシュ指定機能は、
上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
上記指示には、上記ストレージデバイスのアドレスとデータサイズに関する情報が含まれ、
上記ストレージコントローラは、
上記ランダムアクセスメモリデバイス上の未使用領域から、指定されたデータサイズの領域を確保し、上記ストレージデバイスから指定されたアドレスのデータを先に確保した領域に書き込む処理を行う
請求項2記載のストレージ装置。 - 上記キャッシュ解除機能は、
上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
上記指示には、上記ストレージデバイスのアドレスに関する情報が含まれ、
上記ストレージコントローラは、
上記ランダムアクセスメモリデバイス上の指定されたデータの領域について、解除指示以降はそのデータを当該ランダムアクセスメモリデバイス上に保持するか否かを決定する
請求項2または3記載のストレージ装置。 - 上記ストレージコントローラは、
上記第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に存在した場合には、第2ディスクキャッシュのデータに切り換える機能を有する
請求項2から4のいずれか一に記載のストレージ装置。 - 上記ストレージコントローラは、
第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータを、自身の判断によって上記ストレージデバイスに書き戻す処理を行い、
第2ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータは、上記解除指示を受けるまで保持し続ける
請求項2から5のいずれか一に記載のストレージ装置。 - 上記ストレージコントローラは、
上記ランダムアクセスメモリデバイスに対して第1ディスクキャッシュとしてアクセスを伝えるための信号と、第2ディスクキャッシュとして上記バスから直接アクセスを伝えるための信号とを調停して切り替えるためのアービタを有する
請求項2から6のいずれか一に記載のストレージ装置。 - 上記ストレージコントローラは、
キャッシュ管理情報を不揮発性メモリに保持する機能と、
上記不揮発性メモリに保持された指示内容を、起動時に再現する機能と、を有する
請求項1から7のいずれか一に記載のストレージ装置。 - 上記ランダムアクセスメモリデバイスと上記ストレージデバイスは、当該ランダムアクセスメモリデバイスと当該ストレージデバイスの機能を併せ持つ不揮発性ランダムアクセスメモリにより形成される
請求項1から8のいずれか一に記載のストレージ装置。 - 上記メモリコントローラは、
上記第2のインターフェースを介して上記不揮発性ランダムアクセスメモリに直接アクセスするためのパスを有する
請求項9記載のストレージ装置。 - ホストと、
メインメモリモジュールと、
上記ホストがアクセスするストレージ装置と、
上記ホストと上記メインメモリモジュールと上記ストレージ装置を接続するシステムバスと、を有し、
上記ストレージ装置は、
ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、
セクタ単位のアドレスによってアクセスされるストレージデバイスと、
バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、
上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、
上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、
上記ストレージコントローラは、
上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、
上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、
上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、
上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、
上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、
第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、
上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
メモリシステム。 - 上記ストレージコントローラは、
第2ディスクキャッシュとして、上記ホストが上記ランダムアクセスメモリデバイス上に保持するデータを指定するキャッシュ指定機能と、
キャッシュ指定を解除するキャッシュ解除機能と、を含む
請求項11記載のメモリシステム。 - 上記キャッシュ指定機能は、
上記第1のインターフェースをを介して上記ストレージコントローラに対して指示され、
上記指示には、上記ストレージデバイスのアドレスとデータサイズに関する情報が含まれ、
上記ストレージコントローラは、
上記ランダムアクセスメモリデバイス上の未使用領域から、指定されたデータサイズの領域を確保し、上記ストレージデバイスから指定されたアドレスのデータを先に確保した領域に書き込む処理を行う
請求項12記載のメモリシステム。 - 上記キャッシュ解除機能は、
上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
上記指示には、上記ストレージデバイスのアドレスに関する情報が含まれ、
上記ストレージコントローラは、
上記ランダムアクセスメモリデバイス上の指定されたデータの領域について、解除指示以降はそのデータを当該ランダムアクセスメモリデバイス上に保持するか否かを決定する
請求項12または13記載のメモリシステム。 - 上記ストレージコントローラは、
上記第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に存在した場合には、第2ディスクキャッシュのデータに切り換える機能を有する
請求項12から14のいずれか一に記載のメモリシステム。 - 上記ストレージコントローラは、
第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータを、自身の判断によって上記ストレージデバイスに書き戻す処理を行い、
第2ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータは、上記ホストから解除指示を受けるまで保持し続ける
請求項12から15のいずれか一に記載のメモリシステム。 - 上記ストレージコントローラは、
上記ランダムアクセスメモリデバイスに対して第1ディスクキャッシュとしてアクセスを伝えるための信号と、第2ディスクキャッシュとして上記バスから直接アクセスを伝えるための信号とを調停して切り替えるためのアービタを有する
請求項12から16のいずれか一に記載のメモリシステム。 - 上記ストレージコントローラは、
キャッシュ管理情報を不揮発性メモリに保持する機能と、
上記不揮発性メモリに保持された指示内容を、起動時に再現する機能と、を有する
請求項11から17のいずれか一に記載のメモリシステム。 - 上記ランダムアクセスメモリデバイスと上記ストレージデバイスは、当該ランダムアクセスメモリデバイスと当該ストレージデバイスの機能を併せ持つ不揮発性ランダムアクセスメモリにより形成される
請求項11から18のいずれか一に記載のメモリシステム。 - 上記メモリコントローラは、
上記第2のインターフェースを介して上記不揮発性ランダムアクセスメモリに直接アクセスするためのパスを有する
請求項19記載のメモリシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009237503A JP5526697B2 (ja) | 2009-10-14 | 2009-10-14 | ストレージ装置およびメモリシステム |
TW99132459A TWI442231B (zh) | 2009-10-14 | 2010-09-24 | 儲存單元及記憶體系統 |
US12/897,990 US20110087836A1 (en) | 2009-10-14 | 2010-10-05 | Storage unit and memory system |
CN201010501335.3A CN102043730B (zh) | 2009-10-14 | 2010-10-08 | 储存单元及存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009237503A JP5526697B2 (ja) | 2009-10-14 | 2009-10-14 | ストレージ装置およびメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011086064A JP2011086064A (ja) | 2011-04-28 |
JP5526697B2 true JP5526697B2 (ja) | 2014-06-18 |
Family
ID=43855736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009237503A Expired - Fee Related JP5526697B2 (ja) | 2009-10-14 | 2009-10-14 | ストレージ装置およびメモリシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110087836A1 (ja) |
JP (1) | JP5526697B2 (ja) |
CN (1) | CN102043730B (ja) |
TW (1) | TWI442231B (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
TWI464593B (zh) | 2012-03-03 | 2014-12-11 | Nuvoton Technology Corp | 輸出輸入控制裝置與其控制方法 |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
CN104750424B (zh) * | 2013-12-30 | 2018-12-18 | 国民技术股份有限公司 | 一种存储***及其非易失性存储器的控制方法 |
CN104750425B (zh) * | 2013-12-30 | 2018-12-18 | 国民技术股份有限公司 | 一种存储***及其非易失性存储器的控制方法 |
TWI507876B (zh) * | 2014-07-21 | 2015-11-11 | Phison Electronics Corp | 記憶體儲存裝置及控制方法、記憶體控制電路單元及模組 |
CN104298620A (zh) * | 2014-10-10 | 2015-01-21 | 张维加 | 一种耐擦写低能耗的外接计算机加速设备 |
US9990311B2 (en) * | 2015-12-28 | 2018-06-05 | Andes Technology Corporation | Peripheral interface circuit |
KR102507219B1 (ko) * | 2016-02-02 | 2023-03-09 | 에스케이하이닉스 주식회사 | 시스템 및 시스템의 동작 방법 |
FR3055715B1 (fr) * | 2016-09-08 | 2018-10-05 | Upmem | Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue |
KR20180061851A (ko) * | 2016-11-30 | 2018-06-08 | 삼성전자주식회사 | 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템 |
KR20180093648A (ko) * | 2017-02-14 | 2018-08-22 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0216651A (ja) * | 1988-07-05 | 1990-01-19 | Mitsubishi Electric Corp | ディスクキャッシュ制御方式 |
JP3515495B2 (ja) * | 1993-11-16 | 2004-04-05 | 富士通株式会社 | ディスク制御装置及びその制御方法 |
US5732409A (en) * | 1994-03-21 | 1998-03-24 | Legend Research Limited | Caching disk controller implemented by hardwired logic |
US6785774B2 (en) * | 2001-10-16 | 2004-08-31 | International Business Machines Corporation | High performance symmetric multiprocessing systems via super-coherent data mechanisms |
JP2004171469A (ja) * | 2002-11-22 | 2004-06-17 | Toshiba Corp | キャッシュメモリシステムおよびキャッシュメモリ制御方法 |
US7130968B2 (en) * | 2003-03-11 | 2006-10-31 | Pmc-Sierra, Inc. | Cache memory architecture and associated microprocessor design |
JP4100256B2 (ja) * | 2003-05-29 | 2008-06-11 | 株式会社日立製作所 | 通信方法および情報処理装置 |
US7272687B2 (en) * | 2005-02-01 | 2007-09-18 | Lsi Corporation | Cache redundancy for LSI raid controllers |
JP4813843B2 (ja) * | 2005-08-04 | 2011-11-09 | 株式会社日立製作所 | ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 |
US7441070B2 (en) * | 2006-07-06 | 2008-10-21 | Qimonda North America Corp. | Method for accessing a non-volatile memory via a volatile memory interface |
US20080016274A1 (en) * | 2006-07-13 | 2008-01-17 | Xing-Jia Wang | Method of protecting cache memory data in storage system |
JP2008026970A (ja) * | 2006-07-18 | 2008-02-07 | Toshiba Corp | ストレージ装置 |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
JP2008276646A (ja) * | 2007-05-02 | 2008-11-13 | Hitachi Ltd | ストレージ装置及びストレージ装置におけるデータの管理方法 |
US8347041B2 (en) * | 2009-01-02 | 2013-01-01 | Lsi Corporation | System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages |
US8874824B2 (en) * | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
-
2009
- 2009-10-14 JP JP2009237503A patent/JP5526697B2/ja not_active Expired - Fee Related
-
2010
- 2010-09-24 TW TW99132459A patent/TWI442231B/zh not_active IP Right Cessation
- 2010-10-05 US US12/897,990 patent/US20110087836A1/en not_active Abandoned
- 2010-10-08 CN CN201010501335.3A patent/CN102043730B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TWI442231B (zh) | 2014-06-21 |
US20110087836A1 (en) | 2011-04-14 |
JP2011086064A (ja) | 2011-04-28 |
CN102043730B (zh) | 2014-03-05 |
TW201120637A (en) | 2011-06-16 |
CN102043730A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5526697B2 (ja) | ストレージ装置およびメモリシステム | |
US6112265A (en) | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command | |
TWI526829B (zh) | 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體 | |
US9053019B2 (en) | Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices | |
JPH10187533A (ja) | キャッシュシステム、プロセッサ及びプロセッサを動作させる方法 | |
JP2007183962A (ja) | 一体型メモリ及びコントローラ | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
CN112667354B (zh) | 计算机可读取存储介质、虚拟化寄存器装置及访问该装置的方法 | |
JP2010500682A (ja) | フラッシュメモリアクセス回路 | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
WO2015081889A1 (zh) | 一种缓存***和方法 | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
US6898677B2 (en) | Dynamic software accessibility to a microprocessor system with a high speed memory cloner | |
JP2000339220A (ja) | キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム | |
CN114116533B (zh) | 利用共享存储器存储数据的方法 | |
JPH0115903B2 (ja) | ||
JP3964821B2 (ja) | プロセッサ、キャッシュシステム及びキャッシュメモリ | |
US6986013B2 (en) | Imprecise cache line protection mechanism during a memory clone operation | |
JPH07129464A (ja) | 情報処理装置 | |
US8495303B2 (en) | Processor and computer system with buffer memory | |
US6928524B2 (en) | Data processing system with naked cache line write operations | |
JP6885627B1 (ja) | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 | |
JP2008509470A (ja) | プロセッサと外部周辺装置との間の通信を制御するコントローラおよび方法 | |
JP5487587B2 (ja) | アクセス制御方法及び計算機システム | |
CN118113461A (zh) | 一种cxl内存扩展设备、原子操作方法和原子操作*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121001 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
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: 20140318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140331 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5526697 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |