JPH04268649A - メモリへのデータブロックのエントリを制御する方法 - Google Patents

メモリへのデータブロックのエントリを制御する方法

Info

Publication number
JPH04268649A
JPH04268649A JP3294645A JP29464591A JPH04268649A JP H04268649 A JPH04268649 A JP H04268649A JP 3294645 A JP3294645 A JP 3294645A JP 29464591 A JP29464591 A JP 29464591A JP H04268649 A JPH04268649 A JP H04268649A
Authority
JP
Japan
Prior art keywords
memory
data
data block
computer system
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3294645A
Other languages
English (en)
Other versions
JPH0799509B2 (ja
Inventor
Chandrasekaran Mohan
チャンドラセカラン、モハン
Inderpal S Narang
インデルパル、エス、ナランダ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04268649A publication Critical patent/JPH04268649A/ja
Publication of JPH0799509B2 publication Critical patent/JPH0799509B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は多重システムデータ共用
複合系をサービスするキャッシュへのデータのキャッシ
ングに関する。特に本発明は共用キャッシュにおける一
つのデータベースシステムによるデータページの、他の
システムがそのページの後のコピーのキャッシングを行
うことが出来るようなキャッシングに関する。本発明は
そのような条件を検出し、共用キャッシュへの非更新ペ
ージの入力を防止する技術に関する。
【0002】
【従来の技術】個々に動作する複数のコンピュータシス
テムがデータを共用するデータベースシステムでは、異
なるシステムでのデータの一貫性を維持するために大規
模なロッキングが必要である。「コンピュータ・アーキ
テクチャ・アンド・デザイン(COMPUTER AR
CHITECTURE AND DESIGN)、アデ
イスン・ウェズリ(Addison Wesley)出
版、1989でA.J.ヴァンデゴール(A.J. v
an de Goor)は拡散したプロセサ間での共用
データが、そのデータへのパスが複数であり、そのデー
タを局所的に変更する機会があるためにデータの複数の
一致しないコピーの存在する確率の問題を生じさせるも
のとしてデータの一貫性の問題を論じている。
【0003】このデータ一貫性の問題の解決法が提案さ
れている。それらのすべては本質的に中央ロケーション
からとり出されるデータの大域ロックの存在にもとづく
ものである。データのページ化を考えると、多重コンピ
ュータシステム内の一つのディスクに記憶されるデータ
を記憶する一つのコンピュータシステムがデータページ
の大域ロックを獲得し、そのページを得て更新する。こ
のロックはそのページが更新のために獲得されているこ
とを他のコンピュータシステムに知らせる。そのページ
のロックを解く前に、そのロックを保持するコンピュー
タシステムはそのページをディスクに書込み、その後他
のコンピュータシステムにそれらシステムのローカルキ
ャッシュに保持されうるそのページのコピーを無効にす
るメッセージを発生して送る。このページのロックはそ
のページにアクセスするすべての他のコンピュータから
肯定応答が入るまで解放されない。この方法は米国特許
第4399504号明細書に示されている。本出願人か
ら市販されている製品はデータ共用特徴を備えたIMS
/VSシステムである。
【0004】従来の大域ロックシステムはデータの一貫
性を維持する上において大きな利点を与える。しかしな
がら、それに固有のオーバヘッドの問題には一つのペー
ジが更新されるときI/O手順を行い、そして他のシス
テムにそれを知らせてロックを解くためのI/O手順後
のメッセージ交換を行う必要がある。
【0005】非データ共用の単一システムの場合にこの
従来のIBM  IMS/VSを用いると、このIBM
  IMS/VSはトランザクション間でデータ一貫性
を維持する場合に、各トランザクションが完全にコミッ
トされる前に変更されたデータをログレコードと共に記
憶手段に書込むためにデータを更新する必要のあるコミ
ットポリシーを実行することによる余分なオーバヘッド
が生じる。これには夫々の変更トランザクションについ
てページ当り一つのI/O手順が必要であり、これがオ
ーバヘッドコストを増加させる。
【0006】他方、単一システム内のIBM  DB2
の非データ共用の場合は一つのトランザクションにコミ
ットするために更新されたページを記憶手段に書きもど
すためのI/O手順を必要としないポリシーに従う。上
記のプロトコルが、複数のコンピュータシステムが1以
上のデータ記憶サイトをアクセスするデータ共用状況の
下にあるIBM  DB2で用いられるとすると、パフ
ォーマンスは記憶手段への所要の書きもどしとメッセー
ジの遅れのために著しく劣化する。これに関してはアデ
イスン・ウェズリ(Addison−Wessley 
)出版社、1986年の「データベース・システム入門
(AN INTRODUCTION TO DATAB
ASE SYSTEMS )」の第1巻第593〜59
5ページのC.J.デート(C.J. Date )の
同時性についての論文を参照されたい。
【0007】多重レベルの記憶手段を含む多重コンピュ
ータ、データ共用システムにおいては、記憶手段の第一
レベルが独立動作するコンピュータシステムで共用され
る1以上の直接アクセス記憶装置(DASD)からなる
。階層配置される記憶システムについての代表的な分類
法によれば、DASDと他のそのような記憶機構を「2
次」記憶手段に分類する。これに関し、2次記憶手段は
、データがCPUにより直接に照合されうるようになる
前にデータを「1次」記憶手段に動かさねばならないす
べてのファシリティを含む。詳細についてはアデイスン
・ウェズリ(Addison Wesley)出版社1
990年、デティール(Detiel)著「オペレーテ
ィングシステム(OPERATINGSYSTEMS 
)」第2版を参照されたい。また更に、キャッシング技
術は共用データ用の高速で高頻度のアクセスを受ける記
憶手段を与えるのに有用である。 種々の理由によりデータはDASDからの獲得後にデー
タベースシステムにより共用キャッシュに入れられる。 これに関しては共用キャッシュは多重コンピュータ、デ
ータ共用システムについての1次レベルの記憶手段に含
まれる。
【0008】
【発明が解決しようとする課題】そのような構成では、
一つのコンピュータシステムが一つのデータブロックを
キャッシングの目的をもってDASDから得て他のコン
ピュータシステムにより変更し、キャッシュしたがDA
SDにもどされていない場合に一つの潜在的な問題があ
る。この場合、DASDから得られた前のブロックをキ
ャッシュ内の更新されたブロックの「ダウンレベル」バ
ージョンと呼ぶ。この問題はDASDバージョンのロッ
クの費用を発生させずにこのダウンレベルバージョンに
よる更新ブロックの重ね書きを防止することである。
【0009】一般に大域ロックプルトコルはデータ共用
の場合に目的とするもののレコードへのアクセスを直列
化するためにデータベースシステムで用いられる。本発
明者等はこれらを更に広く用いられるようにしようとす
るものである。また一般的に異なるデータベースシステ
ムからのそのページへの更新を直列化するためのそのペ
ージでの大域ロックがある。ここで述べる直列化を回避
するには、2次記憶手段から異なるデータベースシステ
ムにより共用キャッシュにダウンレベルページを挿入す
ることである。
【0010】本発明の目的は、共用キャッシュ内の任意
のデータページが他の共用データ記憶資源から得られた
そのページの前のバージョンで重ね書きされないように
する、共用データ多重コンピュータシステムにおける方
法および装置を提供することである。
【0011】本発明の一つの重要な利点は、一つのDA
SDから得られそして複数の自律コンピュータシステム
により共用されるメモリにキャッシュされたデータの一
貫性を維持しつつDASDアクセス用に既知の方法およ
び装置の維持を許すことである。
【0012】本発明の重要な目的は、データが共用され
る電子的メモリ内でキャッシュされる多重システムデー
タ共用複合体を動作させるための方法を提供することで
ある。
【0013】
【課題を解決するための手段】多重システムデータ共用
複合体には第1コンピュータシステムで実行するデータ
ベースシステムは共用キャッシュ内で更新されたページ
をキャッシュし、その間、他のデータベースシステムが
DASDから得られるそのページのコピーのキャッシュ
を試みる。本発明はそのような条件を検出し、ロックの
ような直列化機構を用いずにDASDから得られるコピ
ーの入力を阻止する。
【0014】本発明の特徴はキャッシュにデータブロッ
クを入れるときの一致性を保証するために高レベルロッ
クを必要とせずに、多重システムデータ共用複合体にお
ける共用キャッシュの動作を行わせる技術にある。本発
明においてはキャッシュへのデータブロックの挿入に用
いられる「条件付書込」手順と、データブロックに対し
て出される第1読取要求がキャッシュミスを生じさせる
時点でのデータブロックの「所有権」の追跡を開始する
キャッシュ登録簿が重要である。第1のキャッシュミス
の時点でキャッシュ登録簿が要求されたデータブロック
を含むように更新され、そして要求を出すコンピュータ
システムがそのブロックの現コピーを有するものとして
識別される。読取要求に応じてキャッシュミス表示を受
けると、要求を出すコンピュータシステムがDASDか
らそのデータブロックをとり出してキャッシュに置く。 このDASDからのデータブロックをキャッシュに置く
には条件付書込オペレーションが用いられる。条件付書
込オペレーションではキャッシュ登録簿がDASDから
得られるページ保持するコンピュータシステムについて
チェックされ、そのコンピュータシステムがそのキャッ
シュ登録簿にそのページの現コピーを有するものとして
、またレコードされていれば、この条件付書込オペレー
ションは受け入れられそのページがキャッシュに挿入さ
れる。コンピュータシステムの要求を満足させておくた
めに条件付書込要求を出す能力は、そのキャッシュに識
別されたデータブロックの更新されたバージョンを置く
他のコンピュータシステムからの書込動作または適正化
された再使用されている登録簿入力によってのみ無効と
される。
【0015】
【実施例】本発明は不揮発性電子メモリの形の共用キャ
ッシュを含む多重システムデータ共用複合体の構造にお
いて、データの数種のバージョン間に一貫性を維持しつ
つデータ資源を共用できるようにキャッシュを動作させ
る方法を提供するものである。
【0016】多重コンピュータデータ共用システムにお
けるデータの一貫性のポリシーが更新されたページの書
込みを要求すれば、重要な特徴を有するアーキテクチャ
が用いられる。そのようなアーキテクチャが図1に示さ
れている。これは複数の独立して動作するコンピュータ
システム10,11,12を含み、これらコンピュータ
システムが直接アクセス記憶装置(DASD)14と1
5に記憶されたデータを共用する。DASD14と15
は例えば多重ディスクとそのためのデイスクドライブを
含むものとすることが出来る。このアーキテクチャはN
個のコンピュータシステムS1〜SNを含み、夫々のシ
ステムがデータベース管理システム(DBMS)を含ん
でいる。このDBMSはDASD14と15におけるデ
ータベースの含むデータの作成、構成および変更を制御
すると共にデータベース内のデータへのアクセスを制御
する。また、これらコンピュータシステムにより共用さ
れるキャッシュとして機能する高速不揮発性電子メモリ
16が設けられる。このメモリ16は高速リンク18,
19,20によりコンピュータシステム10,11,1
2に付加される。以後このメモリ16をNVメモリとも
称する。
【0017】DASD14および15へのアクセスとメ
モリ16へのアクセスを比較すると、メモリ16は比較
的高速の半導体メモリである。更に、メモリ16のコン
ピュータシステムへの付加は例えば非常に高速(数百メ
ガバイト/秒)のデータ転送を与える光ファイバ通信チ
ャンネルで行われる。一般的に比較的高速のメモリ16
において行われるI/O動作は数十マイクロ秒であり、
比較的低速のDASDとのI/Oは数十ミリ秒である。
【0018】メモリ16は好適にはすべてのメモリ動作
を管理するプロセッサの形である管理ロジック17を含
む。この管理ロジック17は例えば局部プログラムメモ
リと私用メモリを有する高性能マイクロプロセッサを含
むことが出来、管理ロジック装置がコンピュータシステ
ム10,11,12とメッセージ型のメモリアクセスト
ランザクションにおいて関係づけることが出来るように
なっている。
【0019】コンピュータシステム10,11,12に
ついてはそれらのエンティティは例えばIBM/309
0システムを含むことが出来、このシステムの夫々は私
用キャッシュを有する多重プロセッサアーキテクチャを
含み、また、IMS/VSまたはDS2タイプのデータ
ベース管理システムをサポートすることが出来る。
【0020】本発明は図1のデータ共用複合体で実施さ
れる。図2は本発明の実施に必要な構成要件を示す。メ
モリ16内には共用キャッシュ20で示す半導体メモリ
がある。この共用キャッシュ20は好適には不揮発性で
ある従来の多重ポート高速ランダムアクセスメモリを含
むことが出来る。この共用キャッシュ20はデータブロ
ックの記憶に用いられる。例えば、キャッシュ20はデ
ータページ21の記憶に用いることが出来る。
【0021】管理ロジック17はシステムリスト22と
ページ登録簿24の記憶の維持のための私用のメモリ資
源を有する。リストおよび登録簿22と24は従来通り
に管理ロジック17によりアクセスされる。例えば、周
知のハッシングルックアップ機構を用いてそれらデータ
構造をアクセスすることが出来る。システムリスト22
は、夫々がメモリ16に機能的に接続された一つのコン
ピュータシステムを識別する複数のエントリを含むデー
タ構造である。例えばコンピュータシステムS1,S2
,……,SNが接続されるとすれば、それらがこのシス
テムリスト22にリストされる。
【0022】共用キャッシュ20は「ストアスルー」キ
ャッシュとは異なり、「ストアイン」キャッシュとして
動作する。これに関し、「ストアイン」キャッシュとは
、2次記憶手段に同時に更新されたページを書込む(「
ストアスルー」)必要を伴わずに更新されたページが書
込みうるキャッシュである。
【0023】共用キャッシュ20にキャッシュされたペ
ージはソフトウェアで指定された名前で識別される。そ
れ故、共用キャッシュ20への読取または書込み要求に
はその要求のオブジェクトであるページの名前の特定が
必要である。登録簿24はREADコマンドまたはWR
ITEコマンドのオブジェクトであるページ名で周知の
やり方で索引づけされる。登録簿24内の代表的なエン
トリは25で示してある。本発明においては、それに関
連する登録簿25のフィールドを図2に示す。これらは
ページ名フィールド26、空ビット(EB)フィールド
27、ページアドレスフィールド28、変更ビット(C
B)フィールド30およびシステム有効ビットベクトル
(SV  BIT  VECTOR)フィールド31を
含む。
【0024】ページ名フィールド26は登録簿24に管
理ロジック17を索引づけするフィールドである。管理
ロジック17がREADコマンドまたはWRITEコマ
ンドを受けるとすると、それにはそのページを識別する
パラメータPの値が伴う。管理ロジック17はPの値を
ハッシングプロセスに供し、このプロセスがページ名が
既にあれば、それにより直ちに登録簿をアクセスするた
めに、そのロジックで使用される値を発生する。ページ
名フィールドが置かれてしまうと、ページアドレスフィ
ールド28がその識別されたページの共用キャッシュ内
のアドレスをポイントするために用いられる。本発明の
実施においては登録簿エントリはそのページの読取要求
がはじめに入ったときに発生される。この時点で登録簿
のページアドレスフィールドは、そのページが次の書込
動作において書込まれるまでブランクとされる。
【0025】EB,CBおよびSV  BIT  VE
CTORフィールドの夫々の意味を表Iに示す。
【0026】                          
       表    I空ビット  =1    
そのページ用のデータがキャッシュ内にない(そのペー
ジの                  登録簿エン
トリのみ存在する)。            =0 
   そのページ用のデータがキャッシュの「キャッシ
ュ内ページ                  アド
レス」フィールド内に示された位置に存在する。  変
更ビット=1    キャッシュされたページが変更さ
れる。すなわちそのページ             
     のDASDバージョンがNVメモリ内のもの
と比較してダウ                  
ンレベルである。            =0   
 キャッシュされたページは変更されない。すなわち、
ページ                  のDAS
DバージョンはNVメモリ内のものと同一である。 システム有効ビ    キャッシュに付加されるシステ
ム毎に1ビット。1であればットベクトル      
識別されたシステムメモリ内にキャッシュされたページ
は有(SVBV)      効である。0であればそ
のページは有効でない。このビット         
         アレイのサイズは具体的実施により
決まる。
【0027】管理ロジック17は必要に応じて登録簿エ
ントリを作成し、管理し、削除する。登録簿24内のエ
ントリの正確な構成は本発明に特有のものであるが、こ
れらのアクティビティは周知の機構を用いて行われる。 管理ロジック17は本発明に特有な読取および書込み動
作に従って、共用キャッシュ20からデータを得てそれ
にデータを入れるために周知のごとくに構成されている
。管理ロジック17はまた「キャッシュミス」および「
キャッシュヒット」信号を発生する周知のキャッシュ管
理能力を有する。これら信号は共用キャッシュ20に接
続されるコンピュータシステムによって与えられるRE
ADコマンドに応じて発生される。「キャッシュミス」
信号は、識別されたページが共用キャッシュ20にない
ことを示し、「キャッシュヒット」信号は識別されたペ
ージがキャッシュ20にあることを示す。
【0028】READコマンドおよびWRITEコマン
ドは図1の多重システム複合体内のコンピュータシステ
ムで発生される。これらコマンドは管理ロジック17か
らの応答を引き出す。本発明はコマンドと応答が周知の
メッセージプロトコルによりコンピュータシステムと管
理ロジックとの間で交換されうるようにしようとするも
のである。更に、本発明は、管理ロジック17から応答
が入るまで、READコマンドまたはWRITEコマン
ドを出すコンピュータシステムが待機状態を維持するか
ら、共用キッシュ20へのアクセスが同期的となるよう
にしようとするものである。共用キャッシュ20を形成
する半導体メモリの速度は同期メッセージ通過構成に特
有の遅延を減少させる。
【0029】本発明はまた、図1の多重システムデータ
共用複合体のコンピュータシステムが周知の手段、例え
ばIBM  IMS形システムの共用ディスク能力を用
いてDASDへのアクセスを得るようにしようとするも
のである。周知のように、そのようなアクセスは一つの
コンピュータシステムが一つのDASDにREADコマ
ンドまたはWRITEコマンドが与えられる間、待機状
態に入らないから非同期である。
【0030】図2に示すように、各コンピュータシステ
ムは識別されたバッファを含んでいる。このバッファは
そのコンピュータシステムとNVメモリ16との間で交
換されるデータをステージするために用いられる。例え
ばコンピュータシステム10はバッファ101を含み、
また、バッファ120がコンピュータシステム12に設
けられる。このデータ共用複合体のすべてのコンピュー
タシステムがそのような私用バッファを有する。更に、
コンピュータシステムの内の一つが管理ロジック17に
READコマンドまたはWRITEコマンドを出せば、
このコンピュータシステムはそれ自体のバッファ内の、
要求されたデータが入れられるべき、あるいは得られる
べきアドレスを送る。
【0031】本発明はDASDから共用キャッシュへの
データの動きおよびそのように動かされたデータの更新
に関する。これに関し、共用キャッシュへの入力のため
にDASDからコンピュータシステムにより得られるデ
ータページは表Iではそのページの登録簿エントリが変
更ビット1を有するとき「ダウンレベル」ページとされ
る。DASDから得られたページについての登録簿内の
変更ビットおよび空ビットが共に0にセットされると、
そのページは「クリーンページ」とされる。これに関し
、そのページのDASDバージョンは共用キャッシュ2
0内のそのページのバージョンと同一である。
【0032】本発明は一群の固有のコマンドとそれらコ
マンドの実行により生じる変化の登録簿エントリの登録
に依存する。これらコマンドをまず説明する。次に、他
のシステムから読取要求によりキャッシュミスが生じた
後にページのダウンレベルバージョンをキャッシュしよ
うとする間に更新されたページをキャッシュする一つの
システムの可能性にもかかわらず、そのページのデータ
の完全性を維持しつつ、図1の多重システムデータ共用
複合体内にページをキャッシュするためにいかにしてそ
れらコマンドが非ブロッキング直列化をサポートするか
について説明する。本発明の実施に当っては、一つの与
えられたページをオブジェクトとするコマンドがメモリ
16内の管理ロジック17によりそのページについての
他のコマンドと直列化される。
【0033】ここにおいて図1のメモリシステム16は
次のコマンドをサポートする:CONNECTコマンド
。これはNVメモリ16に接続する図1の多重システム
データ共用複合体におけるデータベースシステムのイン
スタンスのようなソフトウェアシステムにより実行され
る。CONNECTコマンドに応じて管理ロジック17
がこの接続システムの識別をシステムリスト22に入れ
て登録簿24に現在存在するすべてのエントリおよびそ
の後になされるすべてのエントリのSVビットベクトル
内にこの接続システムについてのフィールドを与える。
【0034】READ  PAGE  CS,P,バッ
ファアドレス。Sはそのコマンドを出すシステムを識別
し、Pは要求されたページを識別し、バッファアドレス
はそのページを配布すべきそのシステムのバッファのア
ドレスを示す。
【0035】WRITE  PAGE(S,P,CB=
1,バッファアドレス)。このコマンドは「無条件」W
RITEである。WRITE  PAGEコマンドが出
されると、そのコマンドを共に入力されるパラメータは
識別されたページについてのCBフィールドに対応する
CBパラメータを含む。このページの更新は変更ビット
を1にセットすることにより示される。
【0036】CONDITIONAL  WRITE(
S,P,CB=0,バッファアドレス)。このCOND
ITIONAL  WRITEコマンドはNVメモリに
、条件付きで書込むコンピュータシステムが2次記憶手
段から得たが変更されていないページを入れるために用
いられる。
【0037】図3において、READ  PAGEコマ
ンドに応じた管理ロジック処理についての動作の流れが
示されている。まず、管理ロジック17はWAIT状態
50となっており、そこからUNCONDITIONA
L  WRITE,CONDITIONAL  WRI
TEまたはREAD  PAGEのプロセスを含む少な
くとも三つのプロセスの内の任意の一つに出ることが出
来る。図3において、上記の形を有するREADコマン
ドが入ったと仮定する。これはREADプロセスステッ
プ60で示される。READ  PAGEコマンドを与
える際に、それを出すコンピュータシステムはそれ自体
(SI、すなわちi番目のシステム)、要求されたペー
ジ(P)、および読取られたページを送るべきコンピュ
ータシステム内のバッファアドレスを識別する。管理ロ
ジック17で行われるこの読取プロセスは三つのケース
を有する。
【0038】第一のケースは、識別されたページPのエ
ントリが登録簿24にあり、そのページのEビットが0
にセットされて要求されたページが共用キャッシュ20
にあることを示すとき生じる。これら条件は夫々決定ス
テップ61と62でテストされる。再決定が肯定である
場合には、この読取プロセスがステップ63でそのエン
トリのSVビットベクトル内の識別されたi番目のコン
ピュータシステム(SI)に対応するビットを1にセッ
トし、ステップ64で特定されたバッファアドレスのデ
ータページをもどし、ステップ66でキャッシュビット
標識をもどす。
【0039】このケースの意味は、共用キャッシュ20
にすでにあるページについて読取要求が出れば、そのペ
ージはキャッシュビット標識と共にリクエスタに無条件
でもどされることである。リクエスタについてのSビッ
トはこのシステムのもつページPのコピーが現在のもの
であることを示すために第1の状態(1)に条件づけら
れる。
【0040】第2のケースでは、登録簿24にページP
についてのエントリはあるが、そのページが共用キャッ
シュ20にまだ入れられていないものとする。この場合
、ページ読取ステップ60に続き、決定ステップ61の
結果が肯定、決定ステップ62の結果が否定となる。 ここで、要求を行うシステムのSビットは第1状態(す
なわち「1」)に条件づけられ、キャッシュミスが出さ
れる。この場合、前のREAD  PAGEコマンドは
管理ロジック17に入っており、登録簿のエントリをつ
くるがそのページはまだDASDからとり出されていな
い。
【0041】最後のケースではページP用の登録簿エン
トリはなく、管理ロジック17は決定ステップ61の否
定出力に従ってステップ70,71,72を次々に実行
する。これに関し、ステップ70で管理ロジックはペー
ジP用の登録簿エントリをつくり(使用可能な記憶手段
があるとして)、まずこのつくられたエントリ用の全S
Vビットベクトルを第2状態(好適には「0」)に条件
づける。次に、Eビットが1に、CBが0にセットされ
、要求システム用のSビットが第1状態に条件づけられ
る。最後に、キャッシュミスがステップ68で出され、
このロジックは待機状態となる。
【0042】この最後のケースではシステムSIはペー
ジP用の第1READ要求を出しており、このページが
共用キャッシュ20に入れられる前の次のREAD要求
はステップ60,61,62,67,68を経る。要求
されたページがDASDから共用キャッシュ20に上げ
られてしまうと、READ要求はステップ60,61,
62,63,64,66を経る。
【0043】更新されたページを共用キャッシュ20に
書込むために管理ロジックで用いられるこのプロセスは
図4に示してある。ページはREAD  PAGEコマ
ンドにより共用キャッシュ20からとり出された後に更
新出来る。あるいは、ページはDASDから得られた後
であって、そのページが共用キャッシュ20に入れられ
る前にも更新しうる。システムSIがページPを獲得し
、そのページを更新しておりそして今、そのページを共
用キャッシュ20に書込まねばらならないものとする。 システムSIは更新されたこのページPの書込みのため
にCB=1のWRITEコマンドを出す。このWRIT
Eコマンドに応じた管理ロジックによる処理を図4に示
す。
【0044】図4においては三つのケース、すなわち、
ページP用のエントリが登録簿24にあり、そしてE=
0(そのページが共用キャッシュ20にある)であるケ
ース、ページP用のエントリはあるが、そのページはま
だいずれの形でも共用キャッシュ20に入れられていな
いケース、あるいは登録簿にそのページP用のエントリ
がないケース、がある。
【0045】第1のケースでは管理ロジック17(図4
)で行われる書込プロセスはステップ70,71,72
を経てステップ73,74,75,76を実行する。 ステップ73でページP用の登録簿エントリのCBフィ
ールドが1にセットされる。次にステップ74でページ
Pの現在のバージョンがWRITEコマンドを有するバ
ッファアドレスのデータで重ね書きされる。次に、その
ページのデータエントリ用のSV  BIT  VEC
TOR内のSビットがWRITEコマンドを出すシステ
ム用のSビットを除きすべて0にセットされる。ステッ
プ75により管理ロジックはそのコマンドの許可をステ
ップ76で要求システムにもどし待機状態50に入る。
【0046】第2のケースでは管理ロジック17は待機
状態50からステップ70と71を経て決定ステップ7
2で否定となり、ステップ77,78,79,75,7
6を実行する。ステップ77で要求されたページ用の登
録簿エントリ内の変更ビットが1にセットされる。ステ
ップ78で共用キャッシュ20内にページP用のスペー
スが割当てられ、データがシステムS1のバッファアド
レスからそのスペースに移され、そのページのキャッシ
ュアドレスがそのページの登録簿エントリのページアド
レスフィールドに置かれる。次にステップ79で空ビッ
トがページPの登録簿エントリ内に0にセットされ、ス
テップ75が実行され、それに続きブロックはそのコマ
ンドの許可をもどし待機状態50に入る。
【0047】第3のケースではページP用の登録簿エン
トリがないとき、決定ステップ71は否定となり、ステ
ップ81〜85,76が実行され、それに続きロジック
は待機状態50に入る。ステップ81で登録簿エントリ
がページPについてつくられ、ステップ82でそのペー
ジのエントリ用のスペースが共用キャッシュに割当てら
れる。ステップ83と84において、登録簿エントリ内
の関連するビットが条件づけられる。ステップ83でそ
のページのSVビットベクトル内のすべてのビットが0
に初期化され、Eビットが0にセットされる。次にステ
ップ84で要求システム(ビットSI)用のSビットが
1にされ、変更ビットも1にセットされてそのページが
変更されたことを示し、そのページのアドレスがエント
リに置かれる。ステップ85でページP用の登録簿エン
トリが登録簿に入れられ、そのページがキャッシュの割
当てられた位置に置かれる。このときロジックは許可を
もどし、待機に入る。
【0048】図4の書込プロセスは要求が拒否されない
のであるから無条件である。更に、WRITEケースの
いずれの実行も問題のページについての変化ビットをセ
ットしそのページのSVビットベクトルのすべてのビッ
トを0にするものであり、書込コンピュータシステムに
ついてのビットを保管する。次のCONDITIONA
L  WRITEの説明から明らかとなるように、WR
ITW中の非書込コンピュータシステムのSビットを0
にすることは共用キャッシュへのダウンレベルページの
エントリを防止する。しかしながら、このWRITEは
後に生じる無条件WRITEの完了を妨げるものではな
い。常に一つのシステムのみが一つのページを変更する
ようにするため、本発明ではWRITEロックを書込シ
ステムにより獲得する。
【0049】管理ロジック17において用いる条件付き
書込処理を示す図5の処理においてシステムS1がNV
メモリからキャッシュミスを受け、2次記憶手段からペ
ージを受けたがまだそれを変更しておらず、共用キャッ
シュ20にそれをキャッシュしようとしているものとす
る。管理ロジック17に送られるパラメータ群内でシス
テムS1は変更ビットを0にセットし、そのコンピュー
タシステムの所有するそのページがそのページの2次記
憶手段バージョンと等しいことを示す。ここでも三つの
ケースがある。
【0050】第1のケースではシステムS1がCB=1
の条件付WRITEコマンドを出す。このコマンドはス
テップ90に入り、登録簿24がページPに対応するエ
ントリについてチェックされる。このページが登録簿で
あればステップ91は肯定となり、ステップ92でその
エントリの空ビットがチェックされてそのページがキャ
ッシュにあるかどうかを決定する。もしステップ92が
肯定であればそのページではキャッシュにある。この時
点でシステムSI用のSビットは、他のシステムがその
ページを変更したかどうかの決定のためにそのページエ
ンリトのSVビットベクトル内でチェックされる。S1
ビットが1にセットされれば、そのページへの変更は生
じておらず、ステップ93は肯定となる。ここで管理ロ
ジック17はそのページがキャッシュにあり、S1によ
り与えられるページがキャッシュ内のページと同じであ
り、そのページでの重ね書きが要求されないことを決定
する。このように管理ロジック17はステップ95でC
ONDITIONAL  WRITEの許可を示す適正
なコードをもどす。しかしながら、システムSIのメモ
リから共用キャッシュ20へのデータの転送はない。こ
のロジックは次に待機に入る。
【0051】第2のケースではページP用の登録簿エン
トリがあり、ステップ91は肯定となる。しかしながら
、ステップ92で管理ロジック17が、そのページがキ
ャッシュになく、決定ステップ92が否定となるとする
と、次に決定ステップ97に入る。ステップ97でペー
ジP用のSVビットベクトルのビットSIが検査される
。このビットが1にセットされていれば、システムSI
は有効ページを所有する。この時点で決定ステップ97
は肯定となる。共用キャッシュ内にスペースが割当てら
れ、そのページのデータがシステムS1のバッファアド
レスからそのスペースに移される。ステップ100でE
ビットが0にセットされる。ステップ102でページア
ドレスが登録簿にセットされ、登録簿にエントリが置か
れる。最後に管理ロジックがシステムSIにCONDI
TIONAL  WRITEの許可をもどし待機に入る
【0052】このケースではステップ97は否定である
とする。このときシステムSIは有効ページを所有せず
、条件付書込処理がステップ105で終了し、管理ロジ
ック17がCONDITIONAL  WRITEコマ
ンドの拒否をシステムSIにもどし、待機状態50に入
る。
【0053】最後に管理ロジックが受け入れたCOND
ITIONAL  WRITEコマンドに応じて、登録
簿24にページP用のエントリがなされなかったと決定
すれば、決定ステップ91は否定となり、コマンド処理
が終了しそのコマンドがステップ105で拒否され、管
理ロジックは待機状態50に入る。 本発明の実施態様例 図6を参照して本発明の具体的実施態様の一例を述べる
。コマンドと処理を上述のものとすると、この例は、一
つのページについてのコマンドが直列に処理される場合
にNVメモリで複数のシステムが非ブロッキング直列化
をもってそのページを読取り、更新しうるとき、本発明
はこのページのダウンレベルバージョンをそのページの
最新のコピーに重ね書きしないようにするものであるこ
とを示す。非ブロッキング直列化は、ブロッキング直列
化には要求の待ち行列化、要求の回復が必要であり、複
雑な回復機構が必要であるから、ブロッキング直列化よ
り有利である。
【0054】この例ではデータを共用する二つのシステ
ムS1とS2があるものとする。この例における事象の
シーケンスを示すため、ページPについての代表的な登
録簿エントリ200を用いる。また、時間の経過を下向
きの矢印「時間」で示す。
【0055】まず、動作209でシステムS1がページ
PについてのREAD  PAGEコマンドを出すもの
とする。更に、NVメモリはPについての登録簿エント
リを有しないものとする。この場合、管理ロジックは動
作210でREAD処理のケース3を実行し、P用の登
録簿エントリをつくり、ページ各フィールドを満たすこ
とによってそのエントリを初期化し、空ビットフィール
ドを1にセットし、ページアドレスフィールドを0にセ
ットし、変化ビットフィールドを0にセツトし、S1と
S2フィールドにS1=1,S2=0を付加する。ケー
ス3の読取処理の終りに、動作211でNVメモリがシ
ステムS1にキャッシュミス標識を出し、その場合S1
は動作212で2次記憶手段からのページPの読取プロ
セスを開始する。
【0056】次にS2が動作214でページPについて
のREAD  PAGEコマンドを出すとする。この場
合、管理ロジックは動作215で読取処理ケース2を実
行し、S2=1をセットし、動作216でキャッシュミ
スをもどす。この時点でシステムS2は動作218で2
次記憶手段からのページPの読取処理を開始する。
【0057】ここでシステムS2はページPのDASD
バージョンを得る最初のシステムであるとする。このバ
ージョンではシステムS2は動作219でCONDIT
IONAL  WRITEをCB=0と共にNVメモリ
に出す。ページPについてのページエントリを得たがそ
のページのコピーがキャッシュになく、SVビットベク
トルビットがS2=1であると、管理ロジック17は動
作220でCONDITIONAL  WRITEコマ
ンド処理ステップ90,91,92,97,99,10
0,102を実行し、そのページを共用キャッシュ20
に入れ、Eビットを0にセットし、そのページのキャッ
シュアドレスを登録簿に入れ、動作221でCONDI
TIONAL  WRITEの許可を出す。
【0058】次にシステムS1がそれをDASDから読
取る前にシステムS2がページPを更新し、動作223
でCB=1と共にWRITEコマンドを出すとする。こ
れに応じ、管理ロジック17は動作225でWRITE
処理のケース1を実行し、SV  BIT  VECT
OR内のビットS1を0に変化させる。これは、システ
ムS1の所有するページPのコピーがダウンレベルであ
ることを示す。
【0059】最後に、ページPについて動作212にお
けるシステムS1により開始されるディスク読取処理が
完了したとする。このとき、システムS1は動作227
でページPのダウンレベルバージョンをCONDITI
ONAL  WRITEコマンドによりNVメモリに置
こうとする。管理ロジック17はCONDITIONA
L  WRITE処理のステップ90〜93を経て、決
定ステップ93を否定とし、動作228でCONDIT
IONAL  WRITEを拒否する。CONDITI
ONAL  WRITEの拒否により、システムS1は
他のREADPAGEコマンド動作230でNVメモリ
からページPを得ることが出来る。
【0060】第1レベルの記憶手段から得たページを共
用NVメモリに移すための非ブロッキング逐次化プロセ
スは、登録簿エントリまたはデータがないことによりコ
マンドがキャッシュミスを生じさせてもNVメモリが第
1READ  PAGEコマンドでそのページのキャッ
シング(SVビットベクトル内)の追跡を開始するから
、良好に機能する。他のシステムからの無条件WRIT
EコマンドはページP用の変更ビットをセットし、その
ページのSVビットベクトル内の書込システム以外のす
べての他のシステムのSビットをリセットする。次のC
ONDITIONAL  WRITEコマンドの処理は
(a)SVビットベクトル内の書込システムのSビット
または(b)ページ用の登録簿エントリの欠除による。 NVメモリは上記いずれの場合もCONDITIONA
L  WRITEコマンドを拒否する。
【0061】ケース(a)についてCONDITION
AL  WRITEコマンドを拒否する理由は、他のシ
ステムがそのページを更新していることがあり、あるい
はNVメモリがそのエントリを失った後再びつくったこ
とがありうるからである。
【0062】ケース(b)についてCONDITION
AL  WRITEコマンドが拒否される理由は、次の
シナリオ、すなわちシステムS1がページPのREAD
  PAGEコマンドを出してキャッシュミスを受ける
場合について述べる。システムS1はこのとき、2次記
憶手段からそのページを読取る。その間、システムS2
がページPのREAD  PAGEコマンドを出し、キ
ャッシュミスを受け、システムS1の前に2次記憶手段
からページPを得る。ここでシステムS2はページPに
入るためにCONDITIONAL  WRITEコマ
ンドを出し、ページPを更新してCB=1と共にWRI
TEコマンドを出し、システムS1用のSビットに無効
をマークする。(これは図6に示す処理である)。次に
システムS2はページPをNVメモリから除去しそれを
2次記憶手段に書込む。ページPについての登録簿エン
トリと共用キャッシュの割当では盗用可能であり、NV
メモリにより盗用される。ここで、システムS1のCO
NDITIONAL  WRITEコマンドが許可され
るべきものとすると、ページPのダウンレベルコピーが
NVメモリにキャッシュされる。従ってCONDITI
ONAL  WRITEコマンドはそのページPについ
ての登録簿エントリがない場合には拒否されねばならな
い。 CB=1を伴うCONDITIONAL  WRITE
本発明ではCONDITIONAL  WRITEコマ
ンドは変更ビットを1にセットしてコンピュータシステ
ムにより出すことが出来る。これに関し、このコマンド
はそのコンピュータシステムが更新した、2次記憶手段
から得られるページをNVメモリに入れるために用いら
れる。この場合、コンピュータシステムは、CB=1を
除き上記と同一のパラメータ群を有するCONDITI
ONALWRITEコマンドで更新されたページをキャ
ッシュに入れるように管理ロジック17を促す。この条
件で一つのページに対する更新の直列化のための大域ロ
ックが回避される。そのような大域ロックの回避は次の
1〜12に示す通りである。 1.  システムS1がページP用のREAD  PA
GEを出す。 2.  システムS2がページP用のREAD  PA
GEを出す。 3.  システムS2がページPを得て、その共用キャ
ッシュへの条件付き書込みの前にそのバッファでそのペ
ージを更新する。 4.  システムS2がCB=1として、ページPにつ
いてのCONDITIONAL  WRITEを出す。 5.  システムS1がページPを得て、そのページを
そのバッファで更新する。
【0063】6.  システムS1がCB=1としてペ
ージPのCONDITIONAL  WRITEを出す
。 7.  システムS1のCONDITIONAL  W
RITEは、ページPのSVビットベクトル内のビット
S1が「無効」とマークされる(その値は0)から拒否
される。 8.  システムS1がページPのREAD  PAG
Eを出す。 9.  S1のREAD  PAGEコマンドに応じて
管理ロジックがページPのSVビットベクトル内のビッ
トS1を「有効」にセットする(値1)。 10.  システムS1が共用キャッシュまたは2次記
憶手段からページPの最新のバージョンを得る。このバ
ージョンはシステムS2でなされた更新を含みうる。 11.  システムS1がそのバッファ内のページPを
更新する。 12.  システムS1がCB=1としてCONDIT
IONAL  WRITEコマンドを出す。
【0064】他のシステムがページPを更新していない
とすると、システムS1のCONDITIONAL  
WRITEコマンドは受け入れられ、そしてそれはシス
テムS1とS2の更新を含みうる。従って本発明のこの
例では任意のコンピュータシステムにおいて共用キャッ
シュ20への条件付き書込についてのシステムの障害に
はCONDITIONAL  WRITEコマンドが続
き、そしてこれはシステムがそのページの更新を行なお
うとする限り続く。このように、大域ロックを避け、C
ONDITIONAL  WRITEコマンドで更新が
直列化される。 最良の態様 本発明では図1に示し説明したものが最良のシステムの
実施態様である。本発明は管理ロジック17およびコン
ピュータシステム10,11,12のデータベース管理
システムのプログラミングの形で実施しうる。そのよう
なプログラミングは図3,4,5のプロセスフロー図、
図6の動作のフロー図、およびそれらについての説明か
ら実現しうる。これに関し、管理ロジック17は図2の
共用キャッシュ20へのDASDから得られたデータの
非ブロック化キャッシングのための機構として実現しう
る。これは、管理ロジックが上記の説明およびフロー図
から引き出しうる回路を用いた部分的または完全にハー
ドワイヤードとされたものとすることを妨げるものでは
ない。
【0065】
【発明の効果】本発明によれば、共用データ多重コンピ
ュータシステムにおいて、共用キャッシュ内の任意のデ
ータページが他の共用データ記憶資源から得られたその
ページの前のバージョンで重ね書きされないようにする
ことができる。
【図面の簡単な説明】
【図1】共用キャッシュとして用いられる高速不揮発性
メモリを含む多重システムデータ共用複合体のブロック
図。
【図2】図1の共用メモリと本発明の実施に必要なデー
タ構造の詳細を示すブロック図。
【図3】本発明によるREADコマンドについてのプロ
セスフローを示す図。
【図4】本発明による無条件WRITEについてのプロ
セスフロー図。
【図5】本発明によるCONDITIONAL  WR
ITEコマンドについてのプロセスフロー図。
【図6】本発明の方法を示すフロー図。
【符号の説明】
10,11,12  コンピュータシステム14,15
  DASD 16  NVメモリ 18,19,20  高速リンク 17  管理ロジック 20  共用キャッシュ 22  システムリスト 24  登録簿

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】比較的高速のメモリ、WRITEコマンド
    に応じてそのメモリにデータを記憶し、READコマン
    ドに応じてそのメモリからデータを得、さらにデータ表
    記を発生し削除するための手段、データを記憶するため
    の少なくとも1個の比較的低速の記憶手段、および、前
    記メモリおよび上記記憶手段に接続される複数のコンピ
    ュータシステムを含む装置において、メモリへのデータ
    ブロックのエントリを制御する方法であって、データブ
    ロックについて第1コンピュータシステムから上記メモ
    リにREADコマンドを与えるステップと、このREA
    Dコマンドに応じて上記メモリのデータブロックのデー
    タ表記を発生するステップと、第2コンピュータシステ
    ムにおいて上記記憶手段から上記データブロックを読取
    るステップと、上記メモリに上記データブロックを入れ
    るために上記第2コンピュータシステムからWRITE
    コマンドを発生させるステップと、このWRITEコマ
    ンドに応じ、上記データ表記が削除されていれば上記メ
    モリへの上記データブロックのエントリを防止し、そう
    でなければ、上記メモリに上記データブロックを選択的
    に入れるステップと、を有する、メモリへのデータブロ
    ックのエントリを制御する方法。
  2. 【請求項2】比較的高速のメモリ、WRITEコマンド
    に応じて上記メモリにデータを記憶し、READコマン
    ドに応じて上記メモリからデータを得るための手段、デ
    ータを記憶するための少なくとも1個の比較的低速の記
    憶手段、および上記メモリと記憶手段に接続される複数
    のコンピュータシステムを含む装置において、メモリへ
    のデータブロックのエントリを制御する方法であって、
    上記メモリ内のデータブロックを得るために上記メモリ
    へのデータブロックの挿入前に第1コンピュータシステ
    ムから上記メモリに送出されるREADコマンドに応じ
    、夫々が上記複数のコンピュータシステムの夫々につい
    ての複数のシステム表記を含む、上記メモリでのデータ
    ブロックのデータ表記を記憶するステップと、上記RE
    ADコマンドに応じて上記第1コンピュータシステムに
    ついての上記システム表記を上記データブロックのその
    バージョンが有効であることを示す第1状態に条件づけ
    るステップと、上記データブロックが第2コンピュータ
    システムで更新されたバージョンに変えられて上記メモ
    リに入力されるならば、上記第1コンピュータシステム
    についてのシステム表記を、上記データブロックのその
    バージョンが有効でないことを示す第2状態に変えるス
    テップと、上記第1コンピュータシステムで上記記憶手
    段から上記データブロックを読取るステップと、上記メ
    モリに上記データブロックを入れるためのWRITEコ
    マンドを上記第1コンピュータシステムから出すステッ
    プと、このWRITEコマンドに応じ、上記第1コンピ
    ュータシステムについてのシステム表記が上記第2状態
    にセットされるなら、上記メモリへの上記第1システム
    からの上記データブロックのエントリを阻止し、そうで
    なければ上記データブロックを上記メモリに選択的に入
    れるステップと、を有する、メモリへのデータブロック
    のエントリを制御する方法。
  3. 【請求項3】前記READコマンドは、前記メモリを前
    記データブロックのデータ表記の存在についてチェック
    するステップと、上記データ表記があり、かつ上記デー
    タブロックが上記メモリにあれば、前記第1コンピュー
    タシステムについてのシステム表記を前記第1状態にセ
    ットして、上記第1コンピュータシステムに、上記デー
    タブロックが上記メモリ内にあることの標識をもどし、
    そうでなければ上記システム表記を上記第1状態にセッ
    トし、上記データブロックが上記メモリにないことの標
    識を上記第1コンピュータシステムに与えるステップと
    、を含んでいる、請求項2に記載の方法。
  4. 【請求項4】前記READコマンドは、前記データ表記
    が記憶されないならばそれを記憶するステップと、まず
    上記データ表記内のシステム表記のすべてを前記第2状
    態に条件づけるステップと、前記第1コンピュータシス
    テムについてのシステム表記を前記第1状態にセットす
    るステップと、上記第1システムに、前記データブロッ
    クが記憶されていないことの標識を与えるステップと、
    を更に含んでいる請求項3に記載の方法。
  5. 【請求項5】前記選択的に入力するステップは、前記デ
    ータ表記が記憶され、かつ前記データブロックが前記メ
    モリにないとき、前記第1コンピュータシステムについ
    てのシステム表記が前記第2状態にセットされれば、上
    記データブロックのエントリを拒否し、そうでなければ
    前記第1コンピュータシステムから上記メモリにそのデ
    ータブロックを入れるステップと、  を含んでいる、
    請求項2に記載の方法。
  6. 【請求項6】前記選択的に入力するステップは、前記デ
    ータブロックが前記メモリにあれば前記第1コンピュー
    タシステムに、また、上記第1コンピュータシステムに
    ついてのシステム表記が前記第2状態にセットされてい
    れば前記WRITEコマンドが拒否されることの標識を
    与え、そうでなければ、上記WRITEコマンドが受け
    入れられたことの標識を上記第1コンピュータシステム
    に与えるステップと、を含んでいる、請求項2に記載の
    方法。
  7. 【請求項7】前記データ表記が削除されていれば前記メ
    モリへの前記データブロックのエントリを阻止し、前記
    第1コンピュータシステムにその阻止の標識を与える、
    請求項5に記載の方法。
  8. 【請求項8】比較的高速のメモリ、データを記憶するた
    めの少なくとも1個の比較的低速の記憶手段、およびこ
    のメモリと記憶手段に接続される複数のコンピュータシ
    ステムを含む装置にいおいて、メモリへのデータのキャ
    ッシングを直列化するための非ブロック化装置であって
    、上記メモリにないデータブロックを読取るための要求
    に応じ、夫々が夫々のコンピュータシステム内のデータ
    ブロックのバージョンが有効かどうかを表わす複数のシ
    ステム表記を含むシステム有効ベクトルを発生し上記メ
    モリに記憶するためのシステム有効ベクトル手段と、一
    つのコンピュータシステムからの要求に応じて、要求シ
    ステムについてのシステム表記を、そのシステムが上記
    データブロックの有効バージョンを有することを示す状
    態に条件づけると共に、他のすべてのシステム表記を、
    非要求システムがそのデータブロックの有効バージョン
    を有さないことを示すように条件づけるための、上記メ
    モリ内のデータブロックの更新バージョンを入れる第1
    WRITE手段と、上記記憶手段から得られるデータブ
    ロックのバージョンを保持する一つのコンピュータシス
    テムからの要求に応じて上記メモリに入れ、上記システ
    ム表記に応じて、上記要求システムが上記データブロッ
    クの有効バージョンを有することを示すように条件づけ
    られると上記メモリに上記データブロックを入れるため
    の第2WRITE手段と、を備えた、メモリへのデータ
    のキャッシングを直列化するための非ブロック化装置。
  9. 【請求項9】比較的高速のメモリ、データ記憶のための
    少なくとも1個の比較的低速の記憶手段、このメモリお
    よび記憶手段に接続される複数のコンピュータシステム
    、およびWRITEコマンドに応じて上記メモリにデー
    タを記憶させ、READコマンドに応じてそのメモリか
    らデータを獲得し、そのメモリに記憶されたデータブロ
    ックのデータコピーを発生するロジック手段を含む装置
    にいおいて、メモリにデータブロックを入れる方法であ
    って、上記メモリからデータブロックを読取るためのR
    EADコマンドを第1コンピュータシステムから送出す
    るステップと、このREADコマンドに応じ、上記デー
    タブロックの夫々がそのコンピュータシステムがそのデ
    ータブロックの有効バージョンを有することを示す第1
    状態および有効バージョンを有しないことを示す第2状
    態に条件づけうる上記コンピュータシステムのシステム
    表記を含む第1情報フィールドを含んだデータコピーを
    発生するステップと、このREADコマンドに応じて、
    第1コンピュータシステムのシステム表記を上記第1状
    態に条件づけるステップと、第2コンピュータシステム
    において上記データブロックを更新し、それを上記メモ
    リに書込むステップと、上記メモリへの上記更新データ
    ブロックの書込みに応じて上記第1コンピュータシステ
    ムのシステム表記を上記第2状態に変更するステップと
    、上記第1コンピュータシステムにおいて、上記データ
    ブロックを得て変更するステップと、上記変更されたデ
    ータブロックを上記メモリに入れるためのWRITEコ
    マンドを上記第1コンピュータシステムから出すステッ
    プと、上記第1コンピュータシステムのシステム表記の
    上記第2状態に応じて上記第1システムから上記メモリ
    への上記データブロックのエントリを阻止するステップ
    と、(a)  上記第1コンピュータシステムにおいて
    上記メモリからの上記データブロックの読取りのための
    READコマンドを出すステップと、(b)  このR
    EADコマンドに応じて上記第1コンピュータシステム
    のシステム表記を上記第1状態に変えるステップと、(
    c)  上記メモリへの上記変更され、更新されたデー
    タブロックのエントリのためのWRITEコマンドを上
    記第1コンピュータシステムから出すステップと、(d
    )  上記第1コンピュータシステムのシステム表記が
    上記第1条件となっていれば上記変更され、更新された
    データブロックを上記メモリに入れ、そうでない場合に
    は上記変更され更新されたデータブロックが上記メモリ
    に入れられるまで上記ステップ(a)〜(d)を実行す
    るステップと、を含んでいる、メモリにデータブロック
    を入れる方法。
JP3294645A 1990-12-14 1991-11-11 メモリへのデータブロックのエントリを制御する方法 Expired - Lifetime JPH0799509B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/628,211 US5276835A (en) 1990-12-14 1990-12-14 Non-blocking serialization for caching data in a shared cache
US628211 2000-07-28

Publications (2)

Publication Number Publication Date
JPH04268649A true JPH04268649A (ja) 1992-09-24
JPH0799509B2 JPH0799509B2 (ja) 1995-10-25

Family

ID=24517943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3294645A Expired - Lifetime JPH0799509B2 (ja) 1990-12-14 1991-11-11 メモリへのデータブロックのエントリを制御する方法

Country Status (3)

Country Link
US (1) US5276835A (ja)
EP (1) EP0490526A3 (ja)
JP (1) JPH0799509B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04284548A (ja) * 1991-03-14 1992-10-09 Nec Corp データベース排他制御方式
US5426747A (en) * 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
JP2533266B2 (ja) * 1991-06-14 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
EP0553743A1 (en) * 1992-01-31 1993-08-04 Motorola, Inc. A cache controller
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5408653A (en) * 1992-04-15 1995-04-18 International Business Machines Corporation Efficient data base access using a shared electronic store in a multi-system environment with shared disks
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
US5715424A (en) * 1992-12-10 1998-02-03 International Business Machines Corporation Apparatus and method for writing data onto rewritable optical media
JP2784440B2 (ja) * 1993-04-14 1998-08-06 インターナショナル・ビジネス・マシーンズ・コーポレイション データ・ページの転送制御方法
US5519846A (en) * 1993-12-23 1996-05-21 Unisys Corporation Multiprocessor system with scheme for managing allocation and reservation of cache segments in a cache system employing round-robin replacement and exclusive access
TW243509B (en) * 1994-01-31 1995-03-21 Ibm Data processor with memory cache and method of operation
US5546579A (en) * 1994-05-02 1996-08-13 International Business Machines Corporation Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store
US5574902A (en) * 1994-05-02 1996-11-12 International Business Machines Corporation Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5893147A (en) * 1994-12-22 1999-04-06 Intel Corporation Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory
US5671390A (en) * 1995-05-23 1997-09-23 International Business Machines Corporation Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
US5692182A (en) * 1995-10-05 1997-11-25 International Business Machines Corporation Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS
US5727220A (en) * 1995-11-29 1998-03-10 International Business Machines Corporation Method and system for caching and referencing cached document pages utilizing a presentation data stream
US6012085A (en) * 1995-11-30 2000-01-04 Stampede Technolgies, Inc. Apparatus and method for increased data access in a network file object oriented caching system
US6122637A (en) * 1995-11-30 2000-09-19 Yohe; Thomas Patrick Apparatus and method for increased data access in an object oriented caching system
US5835943A (en) * 1995-11-30 1998-11-10 Stampede Technologies, Inc. Apparatus and method for increased data access in a network file oriented caching system
US5682514A (en) * 1995-11-30 1997-10-28 Stampede Technologies, Inc. Apparatus and method for increased data access in a network file oriented caching system
US6065100A (en) * 1996-11-12 2000-05-16 Micro-Design International Caching apparatus and method for enhancing retrieval of data from an optical storage device
US7447712B2 (en) 1997-09-28 2008-11-04 Global 360, Inc. Structured workfolder
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US7930278B2 (en) * 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6353836B1 (en) 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6553391B1 (en) * 2000-06-08 2003-04-22 International Business Machines Corporation System and method for replicating external files and database metadata pertaining thereto
US6618793B2 (en) * 2000-12-18 2003-09-09 Redback Networks, Inc. Free memory manager scheme and cache
US6850938B1 (en) 2001-02-08 2005-02-01 Cisco Technology, Inc. Method and apparatus providing optimistic locking of shared computer resources
US7895173B1 (en) 2001-06-27 2011-02-22 Microsoft Corporation System and method facilitating unified framework for structured/unstructured data
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
US7020746B2 (en) * 2003-01-28 2006-03-28 Microsoft Corporation Method and system for an atomically updated, central cache memory
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7222117B1 (en) 2003-11-14 2007-05-22 Advent Software, Inc. Segmented global area database
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US8176022B1 (en) 2006-08-26 2012-05-08 Radames Garcia Locking protocol using dynamic locks and dynamic shared memory
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US8458217B1 (en) 2009-08-24 2013-06-04 Advent Software, Inc. Instantly built information space (IBIS)
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US8769350B1 (en) 2011-09-20 2014-07-01 Advent Software, Inc. Multi-writer in-memory non-copying database (MIND) system and method
US8332349B1 (en) 2012-01-06 2012-12-11 Advent Software, Inc. Asynchronous acid event-driven data processing using audit trail tools for transaction systems
CN103309754B (zh) * 2012-03-15 2017-02-15 宇龙计算机通信科技(深圳)有限公司 终端和数据分区管理方法
US9223780B2 (en) 2012-12-19 2015-12-29 Microsoft Technology Licensing, Llc Non-blocking caching technique
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US9842660B1 (en) 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US9122588B1 (en) 2013-03-15 2015-09-01 Virident Systems Inc. Managing asymmetric memory system as a cache device
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9021188B1 (en) 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool
CN115398874A (zh) 2019-09-12 2022-11-25 创新先进技术有限公司 日志结构存储系统
WO2019228571A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
EP3682344A4 (en) 2019-09-12 2020-12-02 Advanced New Technologies Co., Ltd. ENERGY STORAGE SYSTEMS
WO2019228570A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
EP3695304B1 (en) 2019-09-12 2023-04-12 Advanced New Technologies Co., Ltd. Log-structured storage systems
EP3669263B1 (en) * 2019-09-12 2022-03-02 Advanced New Technologies Co., Ltd. Log-structured storage systems
CN111183450B (zh) 2019-09-12 2024-04-19 创新先进技术有限公司 日志结构存储系统
EP3695328A4 (en) 2019-09-12 2020-12-09 Alibaba Group Holding Limited NEWSPAPER STRUCTURE STORAGE SYSTEMS
US10942852B1 (en) 2019-09-12 2021-03-09 Advanced New Technologies Co., Ltd. Log-structured storage systems

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080651A (en) * 1977-02-17 1978-03-21 Xerox Corporation Memory control processor
US4126894A (en) * 1977-02-17 1978-11-21 Xerox Corporation Memory overlay linking system
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4551799A (en) * 1983-02-28 1985-11-05 Honeywell Information Systems Inc. Verification of real page numbers of stack stored prefetched instructions from instruction cache
US4891749A (en) * 1983-03-28 1990-01-02 International Business Machines Corporation Multiprocessor storage serialization apparatus
JPS6079460A (ja) * 1983-10-07 1985-05-07 Nec Corp 密結合多重演算装置における制御方式
US4561051A (en) * 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus
US4920485A (en) * 1986-09-02 1990-04-24 Amdahl Corporation Method and apparatus for arbitration and serialization in a multiprocessor system
US4809168A (en) * 1986-10-17 1989-02-28 International Business Machines Corporation Passive serialization in a multitasking environment
US4843542A (en) * 1986-11-12 1989-06-27 Xerox Corporation Virtual memory cache for use in multi-processing systems
JPS63267670A (ja) * 1987-04-23 1988-11-04 Murata Mach Ltd 自動ワインダ−
JPS63277943A (ja) * 1987-05-09 1988-11-15 Citizen Watch Co Ltd 電子体温計
JPS6478361A (en) * 1987-06-22 1989-03-23 Hitachi Ltd Data processing system
US4888681A (en) * 1987-10-19 1989-12-19 International Business Machines Corporation Space management system for data files having shared access
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JPH01303527A (ja) * 1988-05-31 1989-12-07 Hitachi Ltd 共有資源の管理方法
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
JP2685530B2 (ja) * 1988-09-14 1997-12-03 株式会社日立製作所 共用データの管理方法
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5130922A (en) * 1989-05-17 1992-07-14 International Business Machines Corporation Multiprocessor cache memory system using temporary access states and method for operating such a memory
US5075846A (en) * 1989-09-29 1991-12-24 Motorola, Inc. Memory access serialization as an MMU page attribute

Also Published As

Publication number Publication date
JPH0799509B2 (ja) 1995-10-25
EP0490526A2 (en) 1992-06-17
US5276835A (en) 1994-01-04
EP0490526A3 (en) 1993-11-10

Similar Documents

Publication Publication Date Title
JPH04268649A (ja) メモリへのデータブロックのエントリを制御する方法
JP2505939B2 (ja) デ―タのキャストアウトを制御する方法
JP2603369B2 (ja) ローカルキャッシュに共通のページ間の一貫性を確保する方法
US5546579A (en) Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store
US5574902A (en) Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store
US5537574A (en) Sysplex shared data coherency method
US5355477A (en) Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
US7120746B2 (en) Technique for data transfer
US5408653A (en) Efficient data base access using a shared electronic store in a multi-system environment with shared disks
CN101807169B (zh) 事务型存储器访问的混合硬件软件实现
Franklin et al. Client-server caching revisited
EP0667578B1 (en) Apparatus and method for checking cache coherency with double snoop mechanism
US8051046B2 (en) Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6353836B1 (en) Method and apparatus for transferring data from the cache of one node to the cache of another node
US7003635B2 (en) Generalized active inheritance consistency mechanism having linked writes
US5715447A (en) Method of and an apparatus for shortening a lock period of a shared buffer
US20020188821A1 (en) Fast priority determination circuit with rotating priority
US7533223B1 (en) System and method for handling memory requests in a multiprocessor shared memory system
JP2781092B2 (ja) システム間排他制御方式
US7024520B2 (en) System and method enabling efficient cache line reuse in a computer system
US20040068619A1 (en) Linked-list early race resolution mechanism
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
EP1162539B1 (en) Recovering data from one or more failed caches
Cho et al. Maintaining cache coherency in a multisystem data sharing environment
JP2765672B2 (ja) データ転送及びデータ除去のための制御方法並びにコンピュータ・システム