JP5526697B2 - ストレージ装置およびメモリシステム - Google Patents

ストレージ装置およびメモリシステム Download PDF

Info

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
Application number
JP2009237503A
Other languages
English (en)
Other versions
JP2011086064A (ja
Inventor
健一 中西
敬一 筒井
潤一 越山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2009237503A priority Critical patent/JP5526697B2/ja
Priority to TW99132459A priority patent/TWI442231B/zh
Priority to US12/897,990 priority patent/US20110087836A1/en
Priority to CN201010501335.3A priority patent/CN102043730B/zh
Publication of JP2011086064A publication Critical patent/JP2011086064A/ja
Application granted granted Critical
Publication of JP5526697B2 publication Critical patent/JP5526697B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/0893Caches characterised by their organisation or structure
    • 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/38Universal adapter
    • G06F2213/3854Control 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

本発明は、不揮発性記憶デバイスとランダムアクセスメモリを有するストレージ装置およびメモリシステムに関するものである。
従来からストレージとメモリの速度差は非常に大きく、近年メモリの高速化が進んだことによりさらにその差が開いており、システム全体のパフォーマンスを改善する上で大きな課題となっている。
そこで、その差を改善するために、メモリがディスクキャッシュとして使用されている。
最近、アクセスされたセクタデータをメモリ上に残しておき、次にアクセス要求のあったときにキャッシュ内にその情報があれば、ストレージにアクセスせずに、メモリから読み込むことができる。
これは同じセクタデータを何度も読み出したり、小さなデータをたくさん書き込んだりするときに大きな効果を示している。
実際にHDDやSSDを代表とするストレージ装置は、ランダムアクセスメモリデバイス(RAMD)を内蔵し第1ディスクキャッシュとして使用している。
また、従来システムでは、メインメモリの一部を第2ディスクキャッシュとして使用している。この第2ディスクキャッシュは第1ディスクキャッシュと異なり、CPUが直接管理するディスクキャッシュである。
ただし、第2ディスクキャッシュに存在するデータはストレージ装置から第1キャッシュを経由して読み込んだデータということになる。
キャッシュメモリを有効に活用する技術が特許文献1や2に開示されている。
特許文献1に開示されたディスクキャッシュ装置は、主記憶装置(メインメモリ)上に制御用データのためのソフトキャッシュ領域を有する。
そして、ディスクコントローラはデータ判定手段を持ち、制御用データと判断したデータはキャッシュメモリ上に保持しないことでキャッシュ使用率を改善する。
この技術では、第1ディスクキャッシュと第2ディスクキャッシュのデータの重複を防ぐことができる。
特許文献2に開示されたストレージ装置は、ホストからキャッシュ固定化のファイル領域を指定するための領域通知命令を有し、リード(Read)コマンド実行中にこの領域通知命令を送信する。そして、ストレージ装置は、再度領域通知命令を送るまでの間転送されたデータをキャッシュメモリ上に固定化する。
この技術では、ファイルの特定領域のキャッシュメモリへの固定化が容易に行うことができる。
特開1994-161897号公報 特開2008-026970号公報
しかし、このRAMD上のデータは発生したアクセス要求に基づきストレージ内部で管理され、ホストから直接操作することはできない。
また、第2ディスクキャッシュに存在するデータはストレージ装置から第1キャッシュを経由して読み込んだデータということになる。
つまり、2つのディスクキャッシュに同一のデータが存在する状態が絶えず発生する。 このように、2つのディスクキャッシュが独立に制御されている。
このために、第2ディスクキャッシュ上にロードされたデータは、第1ディスクキャッシュにも同時に存在することになり、メモリの使用効率を低下させ、その結果パフォーマンス改善効果も低下させている。
また、その一方で第2ディスクキャッシュがメインメモリを消費することによりワークメモリが小さくなる。
システムのオペレーティングシステム(OS)はワークメモリが足りない場合、スワップ動作によってストレージアクセスを発生させるため、システム動作のパフォーマンスを低下させる要因となっていた。
また、ストレージから起動するシステムにおいては、CPUモジュールの初期化後にストレージへのアクセスを開始し、たくさんのデータアクセスがストレージに集中する。さらに起動時にしかアクセスしないデータには、ディスクキャッシュの効果が得られない欠点があった。
特許文献1に開示された技術では、保持しないデータを指定するため、あらかじめキャッシュメモリにデータを先読みしておくことができず、起動時にも先読みによる高速化を図ることができない。
この技術では、コントローラはキャッシュメモリにアクセス可能なメモリインターフェースを持たない。そのため、データ、コードへのアクセス前に必ずデータ転送が必要となり、オーバーヘッドとなる。
特許文献2に開示された技術では、バスマスタ転送の場合、データ転送の進捗をCPUは把握できず、領域通知命令を送ることが難しい。
またこの技術では、データ転送中にキャッシュメモリに固定するデータの指定するための領域通知命令を送る。このため、前の処理が実行中でまだデータ転送の開始が不可能な場合に、次のデータをキャッシュ上に準備することができず、先読みによる高速化を図ることができない。
また、コントローラはキャッシュメモリにアクセス可能なメモリインターフェースを持たない。そのため、データ、コードへのアクセス前に必ずデータ転送が必要となり、オーバーヘッドとなる。
本発明は、メインメモリ上に転送するデータ、コードを不要とし、システムの起動時間やコードの起動までの時間を短縮することができ、ひいてはシステム全体の処理の高速化を図ることが可能なストレージ装置およびメモリシステムを提供することにある。
本発明の第1の観点のストレージ装置は、ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、セクタ単位のアドレスによってアクセスされるストレージデバイスと、バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、上記ストレージコントローラは、上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
本発明の第2の観点のメモリシステムは、ホストと、メインメモリモジュールと、上記ホストがアクセスするストレージ装置と、上記ホストと上記メインメモリモジュールと上記ストレージ装置を接続するシステムバスと、を有し、上記ストレージ装置は、ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、セクタ単位のアドレスによってアクセスされるストレージデバイスと、バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、上記ストレージコントローラは、上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
本発明によれば、メインメモリ上に転送するデータ、コードを不要とし、システムの起動時間やコードの起動までに時間を短縮することができ、ひいてはシステム全体の処理の高速化を図ることができる。
本発明の第1の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。 比較例としてのメモリシステムのブロック図である。 比較例におけるSTGCの基本的な内部構成を示す図である。 本発明の実施形態に係るSTGCの基本的な内部構成を示す図である。 本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第1の構成例を示す図である。 本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第2の構成例を示す図である。 本実施形態と比較例のシステムバスから見たメモリマップを示す図である。 本実施形態に係るSTGCを制御する制御レジスタCTRL_REGの構成例を示す図である。 制御レジスタにおけるエラーレジスタの詳細を示す図である。 制御レジスタにおけるステータスレジスタの詳細を示す図である。 STGCを制御するバスマスタレジスタBM_REGの構成例を示す図である。 バスマスタレジスタにおけるバスマスタコマンドレジスタの詳細を示す図である。 バスマスタレジスタにおけるバスマスタステータスレジスタの詳細を示す図である。 PRDテーブルの詳細を示す図である。 本実施形態のSTGC(ストレージコントローラを)システムバスから制御した場合のシーケンスの例として、リードコマンドを実行した場合のフローチャートを示す図である。 図15のフローチャートに対応してリードコマンドを実行した場合に、各レジスタに設定される値の例を示す図である。 本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、ライト(Write)コマンドを実行した場合のフローチャートを示す図である。 図17のフローチャートに対応してライトコマンドを実行した場合に、各レジスタに設定される値の例を示す図である。 本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、セットキャッシュ(Set Cache)コマンドを実行した場合のフローチャートを示す図である。 図19のフローチャートに対応してセットキャッシュコマンドを実行した場合に、各レジスタに設定される値の例を示す図である。 本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、リリースキャッシュ(Release Cache)コマンドを実行した場合のフローチャートを示す図である。 図21のフローチャートに対応してリリースキャッシュ(Release Cache)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。 図15〜図22のような機能を実現するために必要となるディスクキャッシュ領域の管理情報の例について説明するための図である。 リードコマンドのSTGC内部動作を記述したフローチャートを示す図である。 ライトコマンドのSTGC内部動作を記述したフローチャートを示す図である。 キャッシュアウト(Cache Out)処理のSTGC内部動作を記述したフローチャートを示す図である。 セット(Set Cache)コマンドのSTGC内部動作を記述したフローチャートを示す図である。 リリースキャッシュ(Release Cache)コマンドのSTGC内部動作を記述したフローチャートを示す図である。 ストレージ上に保存されたコードをメモリ上に読み込みCPUから実行するまでの時間を比較することで、本発明の実施形態の効果を記述して示す図である、 ストレージモジュールのリセットが解除され、起動する際にSTGCで行われる動作を記述したフローチャートを示す図である。 本実施形態のキャッシュ管理情報の初期値を自動的にロードする機能の効果を示す図である。 本発明の第2の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。
以下、本発明の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態
2.第2の実施形態
<1.第1の実施形態>
図1は、本発明の第1の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。
本第1の実施形態に係るメモリシステム10は、ストレージモジュール20、ホストとしてのCPUモジュール(CPU)30、メインメモリモジュール(MMM)40、システムバス50、およびIOモジュール60,70を有する。
ストレージモジュール20、CPU30、MMM40、およびIOモジュール60,70はシステムバス50により接続される。
本第1の実施形に係るストレージモジュール(STGM)20は、ストレージコントローラ(STGC)21、ランダムアクセスメモリデバイス(RAMD)22、およびストレージデバイス(STGD)23を含んで構成されている。
RAMD22はワード単位のアドレスによってアクセスされ、STGD23はセクタ単位のアドレスによってアクセスされる。
STGC21は、CPU30からアクセス可能なバスに接続する2つのインターフェース機能を有する。
STGC21は、第1のインターフェース機能としてのストレージインターフェース(STGC-IF)24、および第2のインターフェース機能としてのメモリインターフェース(MEM-IF)25を有する。
そして、STGM20は、ストレージインターフェース(STGC-IF)24とメモリインターフェース(MEM-IF)25によりシステムバス50と接続される。
STGC-IF24は、CPU30からの指示に従って、セクタアドレスによって指定されたSTGD23上に記憶されたデータにアクセスを行うためのインターフェースを提供する。
ここで、セクタアドレスによって指定されたデータは、STGC21のレジスタアクセスの繰り返しによって転送される他、バスマスタ機能によって、MMM40との間で、連続するワードサイズのデータとして高速に転送される。
STGC-IF24からのアクセスに対して、STGC21はRAMD22を第1ディスクキャッシュとして使用し、RAMD22上に保存するデータをSTGC21が決定する。
MEM-IF25は、RAMD22上のデータにCPU30がワードアドレスによって直接アクセスするためのインターフェースを提供する。
本実施形態のSTGC21は、第2ディスクキャッシュとして、CPU30がRAMD22上に保持するデータを指定するキャッシュ指定機能と、指定を解除するキャッシュ解除機能とを有する。
キャッシュ指定機能は、第1のインターフェースとしてのSTGC‐IF24を介してSTGC21に対して指示される。
指示には、STGD23のアドレスとデータサイズに関する情報が含まれる。
STGC21は、RAMD22上の未使用領域から、指定されたデータサイズの領域を確保し、STGD23から指定されたアドレスのデータを先に確保した領域に書き込む処理を実施する。
キャッシュ解除機能は、第1のインターフェースとしてのSTGC‐IF24を介してSTGC21に対して指示される。
指示には、STGD23のアドレスに関する情報が含まれ、STGC21はRAMD22上の指定されたデータの領域について、解除指示以降はそのデータをRAMD22上に保持するかはSTGC21の判断で決定する。
本実施形態においては、第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用される。
STGC21は、第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとしてRAMD22上に存在した場合には、第2ディスクキャッシュのデータに切換える機能を有する。
STGC21は、第1ディスクキャッシュとしてRAMD22上に保持されたデータを、STGC21の判断によってSTGD23に書き戻す処理を行う。
STGC21は、第2ディスクキャッシュとしてRAMD22上に保持されたデータは、CPU30から解除指示を受けるまで保持し続ける。
STGC21は、RAMD22に対して第1ディスクキャッシュとしてSTGC21がアクセスを伝えるための信号と、第2ディスクキャッシュとしてCPUバスから直接アクセスを伝えるための信号とを切り替えるための後述する切替器(ARBT)を有する。
STGC21は、キャッシュ管理情報を不揮発性メモリに保持する機能と、その不揮発性メモリに保持された指示内容を、STGM20の起動時に再現する機能を有する。
なお、不揮発性メモリはSTGD23の一部であってもよい。
本実施形態において、メモリモジュールであるSTGD23とRAMD22をあわせたデバイスとして不揮発性ランダムアクセスメモリ(NVRAM)を使用することも可能である。
この場合、MEM-IF25からARBTを介して直接NVRAMにアクセスするパスを設けることで、STGC21内のデータ転送を不要としさらなる高速化が可能となる。
以下、本実施形態に係るメモリシステム10について、STGM20の構成および機能を中心に、必要に応じて一般的なシステムと比較しつつ具体的に説明する。
なお、以下において、理解を容易にするために、比較例についても本実施形態の構成要素と同様の符号を付して説明する。
メモリシステム10において、STGC21はSTGC-IF24を介してCPU30から図示しないレジスタにアクセスされることによってストレージデバイスとして制御され、STGC21の持つバスマスタ機能によってデータ転送を行う。
STGD23は、不揮発性データ記憶領域として使用され、RAMD22はSTGD23とSTGC21の間で入出力されるデータのキャッシュ領域として使用される。
MEM‐IF25は、CPU30からRAMD22をメモリとしてアクセスする機能を提供する。
本実施形態においては、キャッシュ領域に保持されたデータをメインメモリに転送することなく直接アクセスすることができる。
図2は、比較例としてのメモリシステムのブロック図である。
このメモリシステム10Aは、STGM20Aがシステムバス50AにSTGC‐IF24Aにより接続されており、MEM‐IFの機能を有していない。
比較例のメモリシステム10Aでは、ストレージモジュール(STGM)20A内に持つ第1ディスクキャッシュ221に加えて、メインメモリモジュール(MMM)40A上に第2ディスクキャッシュ領域41を確保し使用する。
第1ディスクキャッシュ領域221Aは、STGM20Aに対するアクセス情報とSTGD23Aのアクセス性能を元にSTGC21Aが制御するキャッシュ領域である。
これに対して、第2ディスクキャッシュ41はOSやアプリケーションの要求に従ってCPU30が管理するキャッシュ領域である。
本実施形態のSTGM20は、内蔵するディスクキャッシュ領域を、第1ディスクキャッシュ221と第2ディスクキャッシュ222の両方に使用することを特徴とする。
ディスクキャッシュ領域の管理はSTGC21が行うが、第2ディスクキャッシュ222の割当て要求時に、アドレス情報がCPU30に対して出力されることで、CPU30はどのセクタがどのディスクキャッシュに存在するかを判断することができる。
不要になったディスクキャッシュを開放することもできる。
図3は、比較例におけるSTGCの基本的な内部構成を示す図である。
このSTGC21Aは、システムバス50Aとのインターフェースを制御するストレージインターフェース制御部211A、STGD23Aを制御するストレージデバイス制御部212A、およびRAMD22Aを制御するRAMデバイス制御部213Aを有する。
そして、3つの制御部211A,212A,213Aが1つの内部バスで接続されている。
[本STGCの基本的な内部構成]
図4は、本発明の実施形態に係るSTGCの基本的な内部構成を示す図である。
このSTGC21は、STGC‐IF24とシステムバス50とインターフェースを制御するストレージインターフェース制御部211、STGD23を制御するストレージデバイス制御部212、およびRAMDを制御するRAMデバイス制御部213を有する。
さらに、STGC21は、MEM‐IF25とシステムバス50のインターフェースを制御するメモリインターフェース制御部214を有する。
本実施形態のSTGC21において、RAMデバイス制御部213は比較例のSTGC21Aと同様の内部バスに加えて、メモリインターフェース制御部214と接続されている。
[CPUからRAMDアクセスの構成例]
図5は、本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第1の構成例を示す図である。
図6は、本実施形態において、CPUからディスクキャッシュへ直接アクセス可能なSTGCの第2の構成例を示す図である。
図5の第1の構成例は、RAMD22Bとして2つランダムアクセスポートPT‐A,PT‐Bを持ったメモリを搭載した場合である。
これに対応して、STGC21Bは、2つのRAMデバイス制御部213−1,213−2を有する。
RAMデバイス制御部213‐1は、RAMD22BのランダムアクセスポートPT‐Aと、ストレージインターフェース制御部211およびストレージデバイス制御部213との間に接続されている。
RAMデバイス制御部213‐2は、RAMD22BのランダムアクセスポートPT‐Bと、メモリインターフェース制御部214との間に接続されている。
図6の第2の構成例の場合、RAMデバイス制御部213の前段に2つのポートを含むアービタ(調停装置)215を有し、MEM-IF25経由のCPU30によるアクセスと、STGC21C内のアクセスを調停する仕組みを持った場合の例である。
アービタ215は、ポートPT‐Aがストレージインターフェース制御部211およびストレージデバイス制御部212に接続され、ポートPT‐Bがメモリインターフェース制御部214に接続されている。
2つのアクセスが競合した場合には、アービタ215は、ポートPT−B側のMEM-IF25経由のアクセスを優先し、CPU30の処理の遅延を防ぐ。
図7は、本実施形態と比較例のシステムバスから見たメモリマップを示す図である。
いずれもSTGCを制御するレジスタとしては、制御レジスタCTRL_REGとバスマスタレジスタBM_REGを有する。
本実施形態のメモリマップは、MEM-IF25からアクセスされるアドレス空間を有する。この空間を第2ディスクキャッシュ領域として使用することで、メインメモリであるMMM40へのデータ転送時間を不要とし、メインメモリの消費も不要とすることができる。
[制御レジスタの構成例]
図8は、本実施形態に係るSTGCを制御する制御レジスタCTRL_REGの構成例を示す図である。
例では8ビット(Bit)ごとにレジスタが割り当てられ、一部はリード(Read)時とライト(Write)時でアクセスされるレジスタが切り換る。
データレジスタ(Data Register)DRはCPUとの間でデータ転送を行うためのレジスタであり、CPU30からSTGC21へのデータ転送のときはライト(Write)、STGC21からCPU30へのデータ転送のときはリード(Read)する。
エラーレジスタ(Error Register)ERは後述のステータスレジスタ(Status Register)SRがエラー発生を通知した際にその原因を示すレジスタであり、リード専用である。
セクタ数レジスタ(Sector Num Register)SNRは、転送するセクタ数を設定するレジスタである。この例では8ビットであるため最大255セクタまで指定できる。
セクタアドレスレジスタ(Sector Address Register)SARは、アクセスする先頭セクタアドレスを設定するレジスタである。この例では最大32ビットアドレスまで指定できる。
ステータスレジスタ(Status Register)SRは、STGC21の動作状態を示すレジスタであり、リード専用である。
図9は、制御レジスタにおけるエラーレジスタの詳細を示す図である。
ABRTはアボート(Abort)を意味し、転送が途中で中断されたときに1となる。
図10は、制御レジスタにおけるステータスレジスタの詳細を示す図である。
BSYはビジー(Busy)を意味し、BSY=1はSTGC21がコマンド実行中であることを示す。
DRDYはデータレディ(Data Ready)を意味し、DRDY=1はデータレジスタ(Data Register)DRにデータがセットされリード可能であることを示す。
DRQはデータリクエスト(Data Request)を意味し、DRQ=1はデータレジスタDRが空でありライト可能であることを示す。
ERRはエラー(Error)を意味し、ERR=1はエラーが発生したことを示し、その要因はエラーレジスタERの値から確認できる。
ステータスレジスタSRの値が変化した場合に、CPU30に対して割り込み信号を発生し、状態の変化を知らせる仕組みを持ったシステムも多く存在するが、ここではステータスレジスタSRをポーリングして確認する例について説明する。
コマンドレジスタ(Command Register)CRはSTGC21に対してコマンドを設定するレジスタであり、ライト専用である。
ここでは8ビットの値をオペレーションコード(Operation Code)OCとして使用でき、最大256種類のコマンドが定義可能である。
図11は、STGCを制御するバスマスタレジスタBM_REGの構成例を示す図である。
バスマスタコマンドレジスタ(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に書かれたアドレス情報を元にデータ転送を行う。
図12は、バスマスタレジスタにおけるバスマスタコマンドレジスタの詳細を示す図である。
リードあるいはライト(Read or Write)RoWはデータ転送の方向を設定し、Read(STGCからメインメモリへのデータ転送)=0、Write(メインメモリからSTGCへのデータ転送)=1を示す。
スタートあるいはストップ(Start or Stop)SoSはバスマスタ動作の開始と停止を設定し、Start=1、Stop=0である。
図13は、バスマスタレジスタにおけるバスマスタステータスレジスタの詳細を示す図である。
エラー(Error)ERRはデータ転送が完了しなかったことを示す。
バスマスタアクティブ(Bus Master Active)BMAはバスマスタが動作中であることを示す。
ステータスレジスタ(Status Register)SRの値が変化した場合に、CPU30に対して割り込み信号を発生し、状態の変化を知らせる仕組みを持ったシステムも多く存在するが、ここではステータスレジスタSRをポーリングして確認する例について説明する。
図14は、PRDテーブルの詳細を示す図である。
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の構成は一般的なものであり、本発明の実施形態の特徴を示しているものではなく、本発明の実現例を具体に説明する手段としてとり上げたものである。
図15は、本実施形態のSTGC(ストレージコントローラを)システムバスから制御した場合のシーケンスの例として、リードコマンドを実行した場合のフローチャートを示す図である。
また、図16は、図15のフローチャートに対応してリードコマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
ステップST11において、CPU30はMMM40上に、STGM(ストレージモジュール)20から読み込んだデータを保持するバッファ領域を確保する。
一般的な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ディスクキャッシュとしてディスクキャッシュ領域に保持される。
図17は、本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、ライト(Write)コマンドを実行した場合のフローチャートを示す図である。
また、図18は、図17のフローチャートに対応してライト(Write)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
ステップST21において、CPU30はMMM40上にSTGM(ストレージモジュール)20へ書き込むデータを保持するバッファ領域を確保し、書込みデータを用意する。
一般的な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ディスクキャッシュとしてディスクキャッシュ領域に保持される。
図19は、本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、セットキャッシュ(Set Cache)コマンドを実行した場合のフローチャートを示す図である。
また、図20は、図19のフローチャートに対応してセットキャッシュ(Set Cache)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
ステップST31において、CPU30はSTGC21の制御レジスタCTRL_REGに第2ディスクキャッシュとして読込むデータのセクタ数と、先頭のセクタアドレスと、セクタキャッシュ(Set Cache)のコマンドコード(0xC0)を設定する。
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割り当て失敗)を確認する。
図21は、本実施形態のSTGC(ストレージコントローラ)をシステムバスから制御した場合のシーケンスの例として、リリースキャッシュ(Release Cache)コマンドを実行した場合のフローチャートを示す図である。
また、図22は、図21のフローチャートに対応してリースキャッシュ(Release Cache)コマンドを実行した場合に、各レジスタに設定される値の例を示す図である。
ステップST41において、CPU30はSTGC21の制御レジスタCTRL_REGに第2ディスクキャッシュとして不要となったデータのセクタ数と、先頭のセクタアドレスと、リリースキャッシュ(Release Cache)のコマンドコード(0xC1)を設定する。
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割り当て失敗)を確認する。
次に、図15〜図22のような機能を実現するために必要となるディスクキャッシュ領域の管理情報の例について説明する。
図23は、図15〜図22のような機能を実現するために必要となるディスクキャッシュ領域の管理情報の例について説明するための図である。
この例では、STGC21はキャッシュ管理情報CMIのためのワークメモリとしてRAMD22を使用する。RAMD22上のメモリ領域は、ディスクキャッシュ領域DCRとしてデータを保持する領域と、キャッシュ管理情報領域CMIRにより形成される。
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からのアクセスを禁止する。
図24から図28は、前記4つのコマンド実行時のSTGC内部動作を記述したフローチャートを示している。
図24は、リードコマンドのSTGC内部動作を記述したフローチャートを示す図である。
コマンド処理の動作は制御レジスタCTRL_REGのコマンドレジスタ(Command Register)CRにコマンドのオペレーションコードOCを書き込むことによって開始する。
ステップ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を読み込む。
以上の処理をコマンド終了まで繰り返す。
図25は、ライトコマンドのSTGC内部動作を記述したフローチャートを示す図である。
コマンド処理の動作は制御レジスタCTRL_REGのコマンドレジスタ(Command Register)CRにコマンドのオペレーションコードOCを書き込むことによって開始する。
ステップ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ディスクキャッシュに相当するデータしか存在しない。
図26は、キャッシュアウト(Cache Out)処理のSTGC内部動作を記述したフローチャートを示す図である。
ステップST71において、STGC21はディスクキャッシュ領域からキャッシュアウト(Cache Out)する候補となるセクタを調べる。
候補を決定するにはキャッシュ管理情報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において、最終セクタであると判断されるまで、以上の処理を必要とするセクタ数分繰り返す。


図27は、セット(Set Cache)コマンドのSTGC内部動作を記述したフローチャートを示す図である。
ステップST81において、STGC21は制御レジスタCTRL_REGに書込まれたセクタアドレスとセクタ数からキャッシュ管理情報を検索する。
ステップ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に設定されたセクタ数分繰り返す。
図28は、リリースキャッシュ(Release Cache)コマンドのSTGC内部動作を記述したフローチャートを示す図である。
ステップST91において、STGC21は制御レジスタCTRL_REGに書き込まれたセクタアドレスとセクタ数からキャッシュ管理情報CMIを検索する。
ステップST92において、該当するディスクキャッシュデータが見つかった場合には、ステップST93においてさらに第2ディスクキャッシュかどうか確認する。ここで肯定的判定(Yes)であった場合には、ステップST94において第1ディスクキャッシュに設定を変更する。
ステップST95において、最終セクタであると判断されるまで、以上の処理をCTRL_REGのセクタ数(Sector Num)SNに設定されたセクタ数分繰り返す。
第1ディスクキャッシュに変更されたデータは、次にディスクキャッシュ領域の空き領域が必要となった場合にキャッシュアウト(Cache Out)されるセクタの候補となる。
図29は、ストレージ上に保存されたコードをメモリ上に読み込みCPUから実行するまでの時間を比較することで、本発明の実施形態の効果を記述して示す図である。
いずれの例でも3つのコードを順番にロードし実行する。
ケースCS1は、従来と同じコードをメモリ上に読み込み実行する動作である(Store And Download)。
コード(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ディスクキャッシュの効果は得られない。
ケースCS2は、コードCD2、コードCD3のロード時間をセットキャッシュ(Set Cache)コマンドによって短縮した動作である。
先頭のコード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ディスクキャッシュの効果によりロード時間が短縮されている。
ケースCS3は、コードCD1,CD2,CD3を実行するメモリとして第2ディスクキャッシュをそのまま使用した動作である(Execute In Place)。
コード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)処理時間の延長の影響は実行時間を越えるほど大きくなりにくい。
図30は、ストレージモジュールのリセットが解除され、起動する際にSTGCで行われる動作を記述したフローチャートを示す図である。
同時並列的にSTGD23、RAMD22に対するリセットも解除される。
STGC21はステップST101においてキャッシュ管理情報の初期値をRAMD22上のキャッシュ管理情報領域CMIRにロードする。
この初期値はSTGD23上に保存されるか、STGC21内の不揮発性記憶領域に保存される。
また、STGC21は初期値をその保存領域に設定する手段も提供している。
初期値によって設定されるディスクキャッシュは第1ディスクキャッシュと第2ディスクキャッシュのいずれかあるいは両方を含んでもよい。
ステップST102において、STGC21は初期値に従ってSTGD23からRAMD22上へセクタデータを転送する。
この処理は初期値として登録した全部の第2ディスクキャッシュがロードされるまで繰り返される。
図31は、本実施形態のキャッシュ管理情報の初期値を自動的にロードする機能の効果を示す図である。
前提とするシステムは、図2や図3に示すブート(Boot)ROM80から初期起動コードを実行し、CPU周辺デバイスの初期化、特にMMM40を制御するメモリコントローラの初期化などを行う。
その後、OSやアプリケーションの起動コードであるコードCD1、CD2、CD3をSTGC21よりロードする。
ケースCS11は、ブート(Boot)ROM80によるCPUモジュール30の初期化処理終了後にSTGM20からの起動コードの読み込みを始める動作である。
全処理時間としては、{T(Exec BootROM) + T(Read Code1) + T(Exec Code1) + T(Read Code2) + T(Exec Code2) + T(Read Code3) + T(Exec Code3)}となる。
同時並列的にSTGD23、RAMD22に対するリセットも解除されるが、CPUモジュール30は自らの初期化処理を開始した状態であり、MMM40の初期化は一般的にCPUモジュール30の初期化処理の中で行われる。
このため、すべての初期化処理が終了するまでSTGC21のバスマスタ機能による外部へのデータ転送を使うことはできない。
ケースCS11は、そういった比較例を記述したものであり、CPUモジュール30の起動コードがブート(Boot)ROM80上から実行され、その終了後にコードCD1、CD2、CD3を順番にMMM40上にロードして実行する(Store And Download)。
コードCD11〜CD13は常に電源起動後初めてアクセスされるために、ディスクキャッシュの効果は得られない。
ケースCS12は、STGC21の起動処理としてコードCD11〜CD13をセットキャッシュ(Set Cache)コマンドによって、CPUモジュール30の起動処理が終了する前あらかじめ第2ディスクキャッシュとしてロードしておく。ケースCS12は、このことにより、起動時間を短縮する例である。
CPUモジュール30は起動処理終了後、STGD23に対してコードをロードするため、リードコマンドを使用するので、RAMD22上のキャッシュデータは第1ディスクキャッシュとして動作することでも高速化される。
ケースCS13は、STGC21の起動処理として、コードCD11〜CD13をMMM40に転送せず、RAMD22上で直接実行する。ケースCS13は、このことによりSTGM20からMMM40へのデータ転送時間を不要とし、起動時間を短縮する例である(第2ディスクキャッシュの効果、Execute In Place)。
起動処理終了後はこれら第2ディスクキャッシュのデータはすべてリリースキャッシュ(Release Cache)コマンドで開放することも可能である。
<2.第2の実施形態>
図32は、本発明の第2の実施形態に係るストレージ装置を搭載したメモリシステムの構成例を示す図である。
本第2の実施形態に係るメモリシステム10Dが上述した第1の実施形態に係るメモリシステム10と異なる点は、以下のとおりである。
すなわち、本第2の実施形態では、ストレージモジュール20DにおいてSTGDとして不揮発性記憶デバイスでありかつランダムアクセスメモリとしても使用可能な不揮発性ランダムアクセスメモリ(NVRAM)26が使用されている。
STGDはRAMとしてアクセス可能であるが、一般的にシステムバス上のアドレス空間は全ストレージ空間よりも小さい。
したがって、メモリインターフェース制御部214はセットキャッシュ(Set Cache)コマンド実行時にシステムバス50からそのデータにアクセスするMEM−IF25上のアドレスを決定するNVRAMアドレスに変換を行う機能を持つこともある。
また、キャッシュ管理情報はNVRAM26上の決められた領域に保存するが、ワーク用として使用するキャッシュ管理情報領域と、起動用のキャッシュ管理情報を保存する領域の2つを持つ。
以上説明したように、本実施形態によれば、以下の効果を得ることができる。
本実施形態に係るストレージモジュールは、内蔵するランダムアクセスメモリデバイスを第1および第2ディスクキャッシュとして使用することで、システムとしてのパフォーマンスを改善することが可能である。
本実施形態では、第2ディスクキャッシュの機能をストレージモジュール上で実現することで、第1ディスクキャッシュと重複したデータの保持によるディスクキャッシュの使用効率の低下を回避し、ディスクキャッシュの対容量効果を高めることができる。
また、本実施形態によれば、メインメモリを第2ディスクキャッシュとして使用したシステムと比較して、メインメモリとストレージモジュール間のデータ転送が発生しないことによるパフォーマンスの改善が可能となる。
同時にメインメモリの使用効率も改善され、スワップ(SWAP)の発生によるシステムパフォーマンスの低下も防ぐことが可能となる。
また、一般的な第1ディスクキャッシュは、キャッシュ上に保持するデータをCPUから指示する機能を有していない。
これに対して、本実施形態では、第2ディスクキャッシュとして指定されたデータも第1ディスクキャッシュのデータとして使用できる。
このことから、結果として第1ディスクキャッシュとしても、CPUから指示されたデータを保持できることになり、ストレージデバイスへのアクセス回数を削減できることで、パフォーマンスの改善が可能となる。
また、本実施形態では、ストレージコントローラが持つ起動用に設定したキャッシュ設定機能の指示内容を不揮発性メモリあるいはストレージデバイスの一部の領域に保持する機能を有する。また、本実施形態では、その領域に保持された指示内容を、ストレージモジュール起動時にディスクキャッシュ上に再現する機能を有する。本実施形態では、これらの機能によって、システムの起動時間の改善を可能とする。
一般的なメモリシステムではCPUモジュールの起動処理が完了し、メインメモリおよびストレージモジュールへアクセス可能が状態になってから、ストレージ上に必要なデータへのアクセスが開始される。このため、ストレージから必要なデータがメモリ上に展開されるまでのタイムラグが大きい。
これに対して、本実施形態では、ストレージモジュール自身が、初期状態としてディスクキャッシュ上にデータを展開することが可能である。
このため、本実施形態によれば、CPUモジュールの起動完了後ただちに第1と第2ディスクキャッシュの効果が最大限に発揮され、システムの起動時間を短縮することができる。
10、10D・・・メモリシステム、20・・・ストレージモジュール(STGM)、21・・・ストレージコントローラ、211・・・ストレージインターフェース制御部、212・・・ストレージデバイス制御部、213・・・RAMデバイス制御部、214・・・メモリインターフェース制御部、22・・・ランダムアクセスメモリデバイス(RAMD)、23・・・ストレージデバイス(STGD)、24・・・ストレージインターフェース(STGC-IF)、25・・・メモリインターフェース(MEM-IF)、30・・・CPUモジュール、40・・・メインメモリモジュール(MMM)、50・・・システムバス。

Claims (20)

  1. ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、
    セクタ単位のアドレスによってアクセスされるストレージデバイスと、
    バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、
    上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、
    上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、
    上記ストレージコントローラは、
    上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、
    上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、
    上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、
    上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、
    上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、
    第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、
    上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
    ストレージ装置。
  2. 上記ストレージコントローラは、
    第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、
    キャッシュ指定を解除するキャッシュ解除機能と、を含む
    請求項1記載のストレージ装置。
  3. 上記キャッシュ指定機能は、
    上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
    上記指示には、上記ストレージデバイスのアドレスとデータサイズに関する情報が含まれ、
    上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイス上の未使用領域から、指定されたデータサイズの領域を確保し、上記ストレージデバイスから指定されたアドレスのデータを先に確保した領域に書き込む処理を行う
    請求項2記載のストレージ装置。
  4. 上記キャッシュ解除機能は、
    上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
    上記指示には、上記ストレージデバイスのアドレスに関する情報が含まれ、
    上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイス上の指定されたデータの領域について、解除指示以降はそのデータを当該ランダムアクセスメモリデバイス上に保持するか否かを決定する
    請求項2または3記載のストレージ装置。
  5. 上記ストレージコントローラは、
    上記第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に存在した場合には、第2ディスクキャッシュのデータに切り換える機能を有する
    請求項2から4のいずれか一に記載のストレージ装置。
  6. 上記ストレージコントローラは、
    第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータを、自身の判断によって上記ストレージデバイスに書き戻す処理を行い、
    第2ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータは、上記解除指示を受けるまで保持し続ける
    請求項2から5のいずれか一に記載のストレージ装置。
  7. 上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイスに対して第1ディスクキャッシュとしてアクセスを伝えるための信号と、第2ディスクキャッシュとして上記バスから直接アクセスを伝えるための信号とを調停して切り替えるためのアービタを有する
    請求項2から6のいずれか一に記載のストレージ装置。
  8. 上記ストレージコントローラは、
    キャッシュ管理情報を不揮発性メモリに保持する機能と、
    上記不揮発性メモリに保持された指示内容を、起動時に再現する機能と、を有する
    請求項1から7のいずれか一に記載のストレージ装置。
  9. 上記ランダムアクセスメモリデバイスと上記ストレージデバイスは、当該ランダムアクセスメモリデバイスと当該ストレージデバイスの機能を併せ持つ不揮発性ランダムアクセスメモリにより形成される
    請求項1から8のいずれか一に記載のストレージ装置。
  10. 上記メモリコントローラは、
    上記第2のインターフェースを介して上記不揮発性ランダムアクセスメモリに直接アクセスするためのパスを有する
    請求項9記載のストレージ装置。
  11. ホストと、
    メインメモリモジュールと、
    上記ホストがアクセスするストレージ装置と、
    上記ホストと上記メインメモリモジュールと上記ストレージ装置を接続するシステムバスと、を有し、
    上記ストレージ装置は、
    ワード単位のアドレスによってアクセスされるランダムアクセスメモリデバイスと、
    セクタ単位のアドレスによってアクセスされるストレージデバイスと、
    バスに接続され、当該バスを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェースと、
    上記バスに接続され、上記ランダムアクセスメモリデバイス上のデータに上記バスを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェースと、
    上記バスを介し、上記第1のインターフェースおよび上記第2のインターフェースを介して指定されるアドレスに応じて、上記ランダムアクセスメモリデバイスと上記ストレージデバイスへのアクセスを制御するストレージコントローラと、を有し、
    上記ストレージコントローラは、
    上記第1のインターフェースを介して提供されるセクタアドレスによって指定された上記ストレージデバイス上に記憶されたデータにアクセスを行うための第1のインターフェース機能と、
    上記ランダムアクセスメモリデバイス上のデータに上記第2のインターフェースを介して指定されるワードアドレスによって直接アクセスするための第2のインターフェース機能と、
    上記第1のインターフェース機能によるアクセスに対して、上記ランダムアクセスメモリデバイスを第1ディスクキャッシュとして使用し、かつ、当該ランダムアクセスメモリデバイスに保存するデータを決定する機能と、
    上記セクタアドレスによって指定されたデータを、レジスタアクセスの繰り返しによって転送する機能と、
    上記セクタアドレスによって指定されたデータを、バスマスタ機能によって連続するワードサイズのデータとして上記第1のインターフェースおよび上記バスを通して転送する機能と、
    第2ディスクキャッシュとして、上記バスを介して上記ランダムアクセスメモリデバイス上に保持するデータが指定されるキャッシュ指定機能と、を含み、
    上記第2ディスクキャッシュとして保持されたデータは、第1ディスクキャッシュとしても使用可能である
    メモリシステム。
  12. 上記ストレージコントローラは、
    第2ディスクキャッシュとして、上記ホストが上記ランダムアクセスメモリデバイス上に保持するデータを指定するキャッシュ指定機能と、
    キャッシュ指定を解除するキャッシュ解除機能と、を含む
    請求項11記載のメモリシステム。
  13. 上記キャッシュ指定機能は、
    上記第1のインターフェースをを介して上記ストレージコントローラに対して指示され、
    上記指示には、上記ストレージデバイスのアドレスとデータサイズに関する情報が含まれ、
    上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイス上の未使用領域から、指定されたデータサイズの領域を確保し、上記ストレージデバイスから指定されたアドレスのデータを先に確保した領域に書き込む処理を行う
    請求項12記載のメモリシステム。
  14. 上記キャッシュ解除機能は、
    上記第1のインターフェースを介して上記ストレージコントローラに対して指示され、
    上記指示には、上記ストレージデバイスのアドレスに関する情報が含まれ、
    上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイス上の指定されたデータの領域について、解除指示以降はそのデータを当該ランダムアクセスメモリデバイス上に保持するか否かを決定する
    請求項12または13記載のメモリシステム。
  15. 上記ストレージコントローラは、
    上記第2ディスクキャッシュとして指定されたデータがすでに第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に存在した場合には、第2ディスクキャッシュのデータに切り換える機能を有する
    請求項12から14のいずれか一に記載のメモリシステム。
  16. 上記ストレージコントローラは、
    第1ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータを、自身の判断によって上記ストレージデバイスに書き戻す処理を行い、
    第2ディスクキャッシュとして上記ランダムアクセスメモリデバイス上に保持されたデータは、上記ホストから解除指示を受けるまで保持し続ける
    請求項12から15のいずれか一に記載のメモリシステム。
  17. 上記ストレージコントローラは、
    上記ランダムアクセスメモリデバイスに対して第1ディスクキャッシュとしてアクセスを伝えるための信号と、第2ディスクキャッシュとして上記バスから直接アクセスを伝えるための信号とを調停して切り替えるためのアービタを有する
    請求項12から16のいずれか一に記載のメモリシステム。
  18. 上記ストレージコントローラは、
    キャッシュ管理情報を不揮発性メモリに保持する機能と、
    上記不揮発性メモリに保持された指示内容を、起動時に再現する機能と、を有する
    請求項11から17のいずれか一に記載のメモリシステム。
  19. 上記ランダムアクセスメモリデバイスと上記ストレージデバイスは、当該ランダムアクセスメモリデバイスと当該ストレージデバイスの機能を併せ持つ不揮発性ランダムアクセスメモリにより形成される
    請求項11から18のいずれか一に記載のメモリシステム。
  20. 上記メモリコントローラは、
    上記第2のインターフェースを介して上記不揮発性ランダムアクセスメモリに直接アクセスするためのパスを有する
    請求項19記載のメモリシステム。
JP2009237503A 2009-10-14 2009-10-14 ストレージ装置およびメモリシステム Expired - Fee Related JP5526697B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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