JPH08129457A - 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置 - Google Patents

外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置

Info

Publication number
JPH08129457A
JPH08129457A JP7228904A JP22890495A JPH08129457A JP H08129457 A JPH08129457 A JP H08129457A JP 7228904 A JP7228904 A JP 7228904A JP 22890495 A JP22890495 A JP 22890495A JP H08129457 A JPH08129457 A JP H08129457A
Authority
JP
Japan
Prior art keywords
data
list
allocation
segment
cache
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.)
Pending
Application number
JP7228904A
Other languages
English (en)
Inventor
Dennis J Dahlen
デニス・ジェイムズ・ダーレン
David A Elko
ディビッド・アレン・エルコ
Audrey A Helffrich
オードリー・アン・ヘルフリッチ
Richard P King
リチャード・パービン・キング
Jeffrey M Nick
ジェフリー・マーク・ニック
Stewart L Palmer
スチュワート・ローンドン・パルマー
Wendell W Wilkinson
ウェンデル・ウィリー・ウィルキンソン
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 JPH08129457A publication Critical patent/JPH08129457A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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

Landscapes

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

Abstract

(57)【要約】 (修正有) 【課題】複数個のデータ処理システムによって共用され
る外部データ記憶機構のデータ・ストラクチャを最適化
する。 【解決手段】外部データ記憶機構におけるデータ・スト
ラクチャは、その作成及び構成を割り当てられた記憶ス
ペースの量に基づいて第1割振りパラメータを含む第1
割振りコマンドによって割振りされる。第1割振りパラ
メータの値を決定し、それによってデータ・ストラクチ
ャの第1構成を決定するための手段と、データ・ストラ
クチャの実際の用途を決定し、それによってデータ・ス
トラクチャの第2構成を決定するための手段と、データ
・ストラクチャの第1構成を第2構成と比較するための
手段と、比較手段からの出力に応答して、第2割振りパ
ラメータを持った第2割振りコマンドを、データ・スト
ラクチャの再割振りのためにデータ・ストラクチャに発
生するための発生手段とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して云えば、構
造化外部記憶機構(SES)用のキャッシュ記憶システ
ムにおいて使用するための方法及び装置に関するもので
ある。更に詳しく云えば、本発明は、既存のストラクチ
ャ(例えば、キャッシュ或いはリスト)に対する割振り
コマンドを再発生するための、及び記憶資源がSES機
構において使用可能になる時及びプロセッサ・サイクル
が変更を行うために使用可能になる時、そのストラクチ
ャを拡大、縮小、又は再配分するようそれに対する新し
い割振りパラメータを割り当てるための方法及び装置に
関するものである。
【0002】
【従来の技術】SESは、複数個のデータ処理システム
を結合するために使用され、又、共用のデータ・オブジ
ェクト(例えば、キャッシュ・オブジェクト及びリスト
・オブジェクト)のためのリポジトリである。SES
は、定義されたメッセージ・プロトコルを通して共用の
システムから受信したコマンド或いはメッセージを別々
に処理することを可能にする処理能力を持っている。そ
の共用のシステムの各々は、その共用のシステムを動作
させているプロセッサ(例えば、ホスト・プロセッサ)
におけるメインライン処理への割込みを行うことなくS
ESからの通知を受け取ることを可能にするSESサポ
ート機構を有する。これらのコマンドを処理する場合、
SESは、コマンド送信システムに或いは他のシステム
にメッセージを発生することがある。SESでは、コマ
ンド直列化機構が、データ・オブジェクトの整合性を保
持しながら、多数のコマンドの並列的実行を可能にす
る。SESは、共用のシステムからの複数個のコマンド
に応答して独立したコマンド実行を行うことができ、少
なくとも2つの異なるタイプの共用データ・オブジェク
トを記憶すること及びそれらオブジェクトに関して動作
することができる。更に、各共用プロセッサにおけるサ
ポート機構は、複数個の個別データ・オブジェクト・タ
イプを含む共用の結合装置と対話することができ、そし
てその結合装置から通知を受けることができる。
【0003】キャッシュ・ストラクチャ又はリスト・ス
トラクチャは、オペレーティング・システムが「キャッ
シュ・ストラクチャの割振り(allocate−ca
che−structure)」コマンド或いは「リス
ト・ストラクチャの割振り(allocate−lis
t−structure)」コマンドを発生する時、S
ES機構において作成される。ディレクトリ・エントリ
及びデータ・エレメントの作成のためにそのストラクチ
ャに割り当てられるSES記憶装置の量及び各々の相対
的な数は、その割振りコマンドと関連したリクエスト・
オペランドを通して指定され、「割振りパラメータ」と
呼ばれる。しかし、それら割振りパラメータの値は、期
待されるストラクチャ用途に基づいて算定されるが、実
際の用途から逸脱することがある。更に、用途はワーク
ロードの指示機能であり、それによって、短い期間で動
的に変化し、長い期間では記憶ストラクチャの境界を越
えて成長する。
【0004】通常のシステムが遭遇する問題は、実際の
用途に最適に適合するように割振りパラメータを調節す
ることである。一般的な解決法は、キャッシュ(又は、
リスト)ストラクチャを割振り解除すること及び割振り
パラメータに対する新しい値をそれに再割振りすること
であった。しかし、この技法はいくつかの厳しい欠陥を
持っている。
【0005】第1に、キャッシュ(又は、リスト)スト
ラクチャによって与えられるサービスは、その割振り解
除オペレーション及びその後の割振りオペレーションの
期間の間中断する。第2に、リクエストされた記憶資源
は、その割振りリクエストを満たすように使用可能では
ないことがある。例えば、その記憶装置は、割振り解除
オペレーションと割振りオペレーションとの間の期間に
おいて、第2のキャッシュ(又は、リスト)に割り当て
られていることがあり、或いは、その記憶装置が全く使
用可能でないこともあった。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、割振り解除オペレーション及びその後の割振りオペ
レーションの間、キャッシュ・ストラクチャ又はリスト
・ストラクチャによって与えられるサービスを中断させ
ることなく、データ・ストラクチャ(例えば、キャッシ
ュ又はリスト)が縮小、拡大、或いは再配分されること
を可能にするための、及びリクエストされた記憶資源が
その割振りリクエスト(例えば、キャッシュ・ストラク
チャの割振り、或いはリスト・ストラクチャの割振り)
を満足させるように使用可能であることを保証するため
の方法及び装置を提供することにある。
【0007】
【課題を解決するための手段】本発明の第1の特徴によ
れば、複数個のデータ処理システムによって共用される
外部データ記憶機構のデータ・ストラクチャを最適化す
るための装置が提供される。そのデータ・ストラクチャ
は第1の割振りコマンドによって割振りされる。第1の
割振りコマンドは、そのデータ・ストラクチャの作成の
ために割り当てられた外部データ記憶機構における記憶
スペースの量に基づいて第1割振りパラメータを含む。
その装置は、第1割振りパラメータの値を決定し、それ
によって、データ・ストラクチャの第1構成を決定する
ための手段と、データ・ストラクチャの実際の用途を決
定し、それによって、そのデータ・ストラクチャの第2
構成を決定するための手段と、データ・ストラクチャの
第1構成をデータ・ストラクチャの第2構成と比較する
ための手段と、比較手段からの出力に基づいて、第2割
振りパラメータを持った第2割振りコマンドを、データ
・ストラクチャの再割振りのためにそのデータ・ストラ
クチャに対して発生するための手段と、を含み、その発
生手段は、外部データ記憶機構における記憶スペース及
び処理サイクルが第2割振りパラメータを実行するため
に使用可能になる時、データ・ストラクチャの第1構成
を第2構成に調節するための手段を含み、第2割振りパ
ラメータが得られるまで、データ・ストラクチャの再割
振りは未決のままであり、すべての処理コマンドは外部
データ記憶機構によって受け付けられそして処理される
ことを特徴とする。
【発明の実施の形態】
【0008】従って、本発明は、資源の再配分をトリガ
するためのイニシアティブが与えられるとストラクチャ
資源を再配分するための方法及び装置を提供する。その
再配分は、内部制御装置機能によって命令されるのでは
なくプログラム指定された目標に従うものであり、資源
は付属のプログラムによって再配分され且つアドレス可
能であり、従って、ストラクチャ資源は、依然としてホ
ストによる使用中の間でも再配分される。追加の記憶装
置の割当て及び記憶装置の解放は、物理的な記憶装置再
配分の間でも使用中のままであるそのストラクチャにお
けるオブジェクトに対する進行中のプログラム・オペレ
ーションに影響を与えない。そのストラクチャにおける
オブジェクトに対して実行されるコマンドは、ストラク
チャ資源の動的再配分と同時に実行し続ける。更に、本
発明は、ホスト・プログラムにより使用中のディレクト
リ及びデータ・エレメントの間で資源のプログラム指示
動的再配分を行う。
【0009】ディレクトリ・エントリ資源はデータ・エ
レメント資源に変換可能であり、逆に、データ・エレメ
ントは、必要に応じて、ディレクトリ・エントリ資源に
変換可能である。更に詳しく云えば、SESのための記
憶装置モデルは、使用可能な全記憶装置が記憶装置、即
ち、バイト・アドレス可能な記憶装置の個々のバイトを
アドレスできる命令のアドレシング範囲を越えることを
許容する。1つの例は、処理エレメントが32ビット・
アドレスに制限され、それによって、バイト・アドレス
可能記憶装置を4ギガバイトに制限するが、4ギガバイ
ト以上の記憶装置が導入される時である。この場合、デ
ィレクトリ・エントリ資源は、下位の4ギガバイト範囲
に存在しなければならない。データ・オブジェクトはこ
の範囲内に、又はその外側に存在するであろう。従っ
て、データ・エレメントは、それらがバイト・アドレス
可能な領域内にある場合に、ディレクトリ・エントリ資
源に変換可能である。これは「制御記憶装置」と呼ばれ
る。
【0010】SESストラクチャは、それがコマンド実
行のために十分に使用可能である時、拡大、縮小、又は
再配分可能である。本発明によるSESストラクチャの
記憶装置モデルはデータ記憶装置及び制御記憶装置の間
の規定された関係を維持する。拡大又は縮小リクエスト
はターゲット・サイズ及びターゲット比率によって指定
される。本発明は、SESストラクチャ記憶装置の保留
の拡張又は縮小にそれを適用することにおいて独特且つ
新規である。更に、拡大及び縮小は、一定の状態で遂行
されるのではなく、変化の量が拡大、縮小、又は再配分
プロセスの各呼出しによって決定される最適な状態で遂
行される。。キャッシュ又はリスト・ストラクチャはサ
イズを拡大又は縮小可能であり、或いは、ディレクトリ
・エントリ及びデータ・エレメントの相対的数は「再配
分」オペレーションにおいて変更可能(即ち、再配分可
能)である。更に、本発明は、プログラムの新しい割振
りの進行を決定するための手段、その新しい割振りの進
行を終了させるための手段、及びターゲットを変更する
ための手段を含む。
【0011】従って、新しいパラメータは、必ずしもS
ES機構によって直ちに作用される必要はない。ターゲ
ットが得られるまで、割振りプロセスは保留のままでよ
く、プロセスは継続的である。この期間中、すべてのコ
マンドがSES機構によって受け付けられ、遅延なしに
処理される。従って、通常のシステムにおけるようにサ
ービスの中断はない。
【0012】
【実施例】図面、特に、図1を参照すると、ストラクチ
ャ10、20、及び30を含むキャッシュ・ストラクチ
ャ・ジオメトリが示される。キャッシュ・ストラクチャ
のためのすべての記憶装置は、固定制御セグメント、デ
ータ記憶セグメント、ディレクトリ・エントリ記憶セグ
メント、及び境界記憶セグメントを含む複数個の固定サ
イズ記憶セグメントから成る。
【0013】固定制御セグメント1はキャッシュ・スト
ラクチャの固定制御を含む。これらのセグメントはその
キャッシュ・ストラクチャの生涯を通して(即ち、拡
大、縮小、及び再配分を通して)無変更のままである。
【0014】ディレクトリ・エントリ(DE)記憶セグ
メント2はキャッシュ・ディレクトリを含み、そのよう
に、ディレクトリ・エントリだけを含む。ディレクトリ
・エントリのサイズは一定であり、そのストラクチャが
最初に作成された時に設定される。しかし、ディレクト
リ・エントリの数、従って、ディレクトリ・エントリ・
セグメントの数は、拡大、縮小、又は再配置によって変
更可能である。
【0015】データ記憶セグメント3はデータ・エレメ
ントだけを含む。データ・エレメントのサイズは一定で
あり、そのストラクチャが最初に作成された時に設定さ
れる。しかし、データ・エレメントの数、従って、デー
タ記憶セグメントの数は、拡大、縮小、又は再配分によ
って変更可能である。
【0016】境界記憶セグメント4は、ディレクトリ・
エントリ及びデータ・エレメントの両方を含むことが可
能である。このセグメントにおけるすべてのディレクト
リ・エントリは、(図1に示されるように)そのセグメ
ントのすべてのデータ・エレメントのように連続してい
る。境界は、ディレクトリ・エントリ及びデータ・エレ
メントを分離する境界セグメントにおけるロケーション
であり、リクエストされたターゲット・ディレクトリ対
データの比(TDTDR)が一致するようにその記憶装
置を分割する。1つのキャッシュ・ストラクチャには1
つの境界セグメントしかない。
【0017】キャッシュ・ストラクチャは少なくとも1
つのデータ・オブジェクト及びディレクトリを含み、そ
のディレクトリはその少なくとも1つのデータ・オブジ
ェクトを位置指定する少なくとも1つのディレクトリ・
エントリを含むことが可能であることに留意すべきであ
る。しかし、キャッシュ・ストラクチャはデータ・オブ
ジェクトなしで作成可能であり、有用な且つ期待される
状況である。そのキャッシュがデータを持たない場合、
それは「ディレクトリ・オンリ・キャッシュ」と呼ば
れ、ローカル・キャッシュ・コヒーレンシを維持するた
めに使用される。又、いくつかのデータ・オブジェクト
でもってキャッシュ・ストラクチャを作成し、しかる
後、データ・オブジェクトを全く持たないようにそのキ
ャッシュを再配分することも可能である。これは、デー
タ・オブジェクトを作成し直すためにキャッシュが2回
再配分されるという点でディレクトリ・オンリ・キャッ
シュとはわずかに異なっている。このようなオペレーシ
ョンをディレクトリ・オンリ・キャッシュは遂行するこ
とができない。
【0018】更に、ディレクトリ及びデータ・オブジェ
クトが必ずしも割振りに拘束されないことは注目され
る。事実、それらは記憶資源として扱われるだけであ
る。ディレクトリに対するデータの拘束は、書込みコマ
ンドが実行されそしてそのデータが事前にそのストラク
チャに存在しなかった時に生じる。更に、ディレクトリ
・オブジェクトの割当てはデータ・オブジェクトの割当
て及び拘束とは別個に生じる。多分、それは、たとえデ
ータ・オブジェクトが記憶資源として存在しても、多数
のディレクトリ・オブジェクトが関連のデータ・オブジ
ェクトを持たない場合である。従って、書込みコマンド
が生じるまで拘束は起こらない。
【0019】図1に示されるように、3つのキャッシュ
・ストラクチャの表示は、ストラクチャ10をストラク
チャ20に縮小する方法及びストラクチャ20をストラ
クチャ30に再配分する方法を示す。図1は、ストラク
チャ30がストラクチャ20に再配分されるもの及びス
トラクチャ20がストラクチャ10に拡大されるものと
して示される。
【0020】SES機構のシステム構成全体が、例え
ば、本願の出願人に譲渡された米国特許出願07/86
0,946号(1992年3月30日出願)及び同07/
860,803号(1992年3月30日出願)に開示
されたものに従って構成される。従って、そのシステム
の詳細な説明は以下では行われず、精々、本発明に対す
るバックグランドを与えるだけに留める。
【0021】簡単に云えば、それらシステムでは、図2
に示されるように、複数個の中央処理コンプレックス
(CPC)10A−10NがSES機構16にに接続さ
れる。そのSES機構はCPCによりアクセス可能な記
憶装置を含み、CPCにおけるプログラムによってリク
エストされたオペレーションを遂行する。複数のSES
機構を設けることも可能であり、その場合、それらSE
Sの各々は、CPC10A−10Nのすべて又は或るサ
ブセットに接続されたそれ自身のI/Sチャネル及びメ
ッセージ・パスを有するものでよい。図3に示されるよ
うに、CPC10A−10Nの各々は、それぞれ、ロー
カル・キャッシュ24A−24Nを有し、SES機構1
6は1つ又は複数個のSESキャッシュ26を含む。ダ
イレクト・アクセス記憶装置(DASD)40、ローカ
ル・キャッシュ24A−24N、及びSESキャッシュ
26は3レベル記憶ハイラーキを形成する。その最低レ
ベルの記憶装置はDASD40であり、中間レベルの記
憶装置はSESキャッシュ26であり、そして最高レベ
ルの記憶装置はローカル・キャッシュ24A−24Nで
ある。DASD40及びSESキャッシュ26はプロセ
ッサ10A−10Nによって共用され、それぞれ、I/
Oオペレーション及びメッセージ・オペレーションによ
ってアクセスされる。ローカル・キャッシュ24は各プ
ロセッサ10において形成され、CPU命令を使用して
アクセスされる。
【0022】CPC10A−10Nの各々は、IBMマ
ニュアルSA22−7201−00に記載されているよ
うなエンタプライズ・システム・アーキテクチャ/39
0のオペレーション原理に従ったIBM社のシステム、
又は他の同様なシステムであってもよい。CPC10A
−10Nの各々は1つ又は複数個の中央処理装置(CP
U)を含む。よく知られているように、CPUはデータ
を処理するためのプログラムの実行を制御するために、
IBM社のMVSオペレーティング・システム等のよう
なオペレーティング・システムを実行する。そのような
プログラムの1つは上記のSESオペレーションのバル
クを遂行し、本願ではそれを「プログラム」と呼ぶこと
にする。本発明はIBMアーキテクチャ及び上記オペレ
ーティング・システムのコンテキストで以下に開示され
るけれども、本発明はそのようなアーキテクチャ及びシ
ステムに限定されものではなく、他のシステムにおける
オペレーションにも適合可能である。
【0023】図2に示されるように、SES機構16は
多数のストラクチャ(例えば、キャッシュ及びリスト)
45−48を有する。そのSES機構は個別の記憶スト
ラクチャを持ったプログラムを与える。これらの間に、
リスト・ストラクチャ(例えば、46、47)及びキャ
ッシュ・ストラクチャ(例えば、45、48)がある。
各ストラクチャのタイプに対して、一組のコマンド及
び、後述のように、グローバル・オブジェクトを参照す
るための付加的コマンドが与えられる。特定のストラク
チャの作成、削除、及び属性が割振りコマンド及び割振
り解除コマンドを通してプログラムにより制御される。
それら割振りされたストラクチャ45ー48は同じタイ
プのものでよく、同時に存在し得るものであるが、それ
らは別々のSES記憶ロケーションにあり、ストラクチ
ャ識別子(SID)によって位置指定される。そのSI
D値は、コマンドによってターゲット・ストラクチャの
識別を与えれる。キャッシュ・ストラクチャ・コマンド
又はリスト・ストラクチャ・コマンドのような特定のス
トラクチャ・タイプのコマンドは所与のタイプの単一ス
トラクチャの内容だけをアドレス又は変更する。
【0024】SESの記憶装置はデータ・オブジェクト
及び制御オブジェクトを含む。データ・オブジェクトは
何れの記憶ロケーションにも存在し得るし、一方、制御
オブジェクトは、一般には、制御領域に制限される。図
2、図3、及び図4に示されるようにSESの記憶装置
及び制御領域を区切ってストラクチャにすることはプロ
グラムによって管理される。データ・オブジェクトは、
オプショナル付属データ領域を持ったテーブル又はリス
トにおいて編成される。残りのオブジェクトは制御オブ
ジェクトである。データ・オブジェクト及び制御オブジ
ェクトに割り当てられた記憶装置の相対的な量は、割振
りコマンドにおけるプログラム指定されたパラメータに
よって決定される。
【0025】図3を参照すると、記憶装置ハイラーキを
通して移動するデータは名前(ローカル・キャッシュ2
4A及び24Bにおける列50A及び50B、及びSE
Sキャッシュ26における列51)を与えられる。ロー
カル・キャッシュ24A、24Bにおけるデータ領域
は、それぞれ、列52A及び52Bに示され、ローカル
・キャッシュ24A及び24Bにおけるオプショナル付
属データ領域は、それぞれ、列53A及び53Bに示さ
れる。ローカル・キャッシュ24A及び24Bにおける
各エントリは、それぞれ、列54A、54Bに示される
状態インディケータを含む。各SESキャッシュ26
は、データ領域(列56)及び付属データ領域(列5
7)を含むデータ・テーブル55を有する。データ・サ
イズは、1とデータ領域エレメント・サイズの「n」倍
との間の可変性の範囲でもって可変的である。データ領
域エレメント・サイズはSESキャッシュ26に対して
一定であり、256バイトを最小サイズとした2の累乗
である。付属データのオプショナル・フィールドはデー
タと関連づけ可能である(列53A、53B、及び5
7)。データ(列50A、50B、及び51)の名前
は、プログラミング・プロトコルによって割り当てられ
た16バイト値である。そのデータはDASD40に恒
久的に常駐する。
【0026】データのコピー又は新しいバージョンは、
SESキャッシュ26又はローカル・キャッシュ24A
及び24Bの任意の組合せでも常駐可能である。例え
ば、データ・オブジェクトはSESキャッシュ26及び
ローカル・キャッシュ24A−24Nのサブセットに常
駐可能であり、或いはそれは、ローカル・キャッシュ2
4A−24Nのサブセットには存在するが、SESキャ
ッシュ26には常駐しなくてもよい。
【0027】各ローカル・キャッシュ24A−24N
は、CPCにおけるそれぞれのSESサポート機構を利
用することによってプログラムにより維持されるプロセ
ッサ記憶領域であり、「ベクトル定義(DEFINE
VECTOR)」命令によって定義されたローカル・キ
ャッシュ・ベクトルを含む。
【0028】各SESキャッシュ26は、ディレクトリ
60と、列56及び57におけるデータ領域エレメント
の集合をオプション的に有するデータ・テーブル55と
より成るSES機構16における1つのストラクチャで
ある。ディレクトリ60は、前述の名前列51、各ディ
レクトリ・エントリの状態を表すための状態列61、及
びディレクトリ60における各エントリからデータ・テ
ーブル55におけるエントリを指すための登録列62を
含む。各キャッシュ・ストラクチャはストラクチャ識別
子SIDによって指定される。SESキャッシュ26に
おける各SESキャッシュ・ストラクチャは「キャッシ
ュ・ストラクチャ割振り(ALLOCATE−CACH
E−STRUCTURE)」コマンドによって作成され
る。そのコマンドはプログラムにおける初期設定プロシ
ージャによって発生され、データ領域エレメントのサイ
ズ及び数、ディレクトリ・エントリの数、記憶クラスの
数、及び追放クラスの数を含むようにSESキャッシュ
・ストラクチャのアトリビュートを決定する。
【0029】ローカル・キャッシュ24は「ローカル・
キャッシュ付加(ATTACH−LOCAL−CACH
E)」コマンドによってSESキャッシュ26に付加さ
れる。そのコマンドは、SES機構16において制御を
初期設定し、発生されたコマンドをSESキャッシュ1
6からSESサポート機構(図示されていない)に送る
一組のパスとそのローカル・キャッシュとを関連付け
る。ローカル・キャッシュ24は、それが記憶装置ハイ
ラーキに参加できるようにSESキャッシュ26に付加
される。ローカル・キャッシュ24Aー24N及びSE
Sキャッシュ26におけるデータのコピーのコヒーレン
シはSESキャッシュ26における制御によって維持さ
れ、それぞれのCPC10A−10Nにおける種々のS
ESサポート機構に発生コマンドとして送られる「相互
無効化(CROSS−INVALIDATE)」コマン
ドによって強化される。
【0030】ディレクトリ60は完全な関連づけアレー
として配列されたディレクトリ・エントリの集合であ
る。それらディレクトリ・エントリは記憶クラスに区分
される。変更されたディレクトリ・エントリのサブセッ
トは追放クラスに区分される。名前を付けられたデータ
・オブジェクトが2つの高いレベルのハイラーキ(SE
Sキャッシュ26及びローカル・キャッシュ24)に置
かれる時、その状態は状態列61に登録され、そのロケ
ーションはSESキャッシュ・ディレクトリによって登
録列62に登録される。状態情報は、データが変更され
るか、変更されないか、追放のためにロックされるか、
或いはSESキャッシュ26に常駐するかを表示する。
ロケーション情報は、ローカル・キャッシュ24A−2
4Nのうちのどれがコピーを含んでいるかを表す。或る
「SES読取り(SES−READ)」コマンド及び
「SES書込み(SES−WRITE)」コマンドはS
ESキャッシュ・ディレクトリにおけるローカル・キャ
ッシュ・コピーを登録する。「SES書込み」コマンド
及び「SES無効化」コマンドは登録を取り消し、ロー
カル・コピーを無効にする。
【0031】データがローカル・キャッシュ24におい
て見つけられる時、データの状態は有効又は無効であ
る。ローカル・キャッシュ・エントリの状態はSESサ
ポート機構(図示されていない)における制御によって
維持される。データはCPU命令によって有効にされ、
SES書込み及びSES無効化オペレーションによって
無効にされる。データの有効状態はCPU命令によって
テストされる。有効に名前を付けられたオブジェクト
は、ローカル・キャッシュ・コヒーレンシを維持するた
めにSESキャッシュ・ディレクトリ60に登録されな
ければならない。ローカル・キャッシュ・コヒーレンシ
は無効化プロセスによって維持される。登録されたロー
カル・キャッシュ・エントリは、無効なものとしてテス
トすることがある。
【0032】SESキャッシュ55は、通常、DASD
40よりも小さい。従って、変更されたデータはSES
キャッシュ26からバッキングDASD40に周期的に
転送(即ち、追放)されなければならない。追放はプロ
グラムによって制御され、追放オペレーションに対する
「SES読取り」コマンドを発生することを伴う。その
追放オペレーションは追放直列化をセットし、ローカル
・キャッシュ24に置かれてもよいし或いは置かれなく
てもよいデータ・ブロックを主記憶装置にコピーする。
そのデータ・ブロックをDASD40にコピーするI/
Oオペレーションが実行される。追放直列化を解放する
SESアンロック追放ロック・オペレーションが発生さ
れる。ローカル・キャッシュ24A−24Nの1つに対
して多数の追放プロセスが同時存在可能である。データ
が追放をロックされる時、いつもローカル・キャッシュ
24A−24Nに対する識別子及び追放プロセスに対す
る識別子がディレクトリ60に置かれる。
【0033】最低使用頻度(LRU)未変更データ及び
ディレクトリ資源は、新しいリクエストに合致するため
に必要とされる時にSESキャッシュ26によって再利
用される。データ・オブジェクトは、プログラムによっ
ていくつかの記憶クラスのうちの1つにマップされる。
各記憶クラスは、再利用プロセスを制御する再利用ベク
トルを有する。これは、記憶クラスへのSES記憶装置
の割当てがワークロード特性の変化を説明するよう動的
に調節されることを可能にする。再利用ベクトルはプロ
グラムによって維持される。
【0034】図4はCPC10A−10NとSES機構
16との接続を示すものであり、各CPC10A−10
Nは、それぞれ、プロセッサ記憶装置65A−65Nを
含む。1つのリスト・ストラクチャ46の内容が図4に
示される。SES機構における他のリスト・ストラクチ
ャが図4に示されたリスト・ストラクチャと同じである
ことは明らかであろう。
【0035】リスト・ストラクチャ46はリスト・スト
ラクチャ制御66、ユーザ制御67、オプショナルに
は、ロック・テーブル68、及びリスト制御69、リス
ト・エントリ制御71を有するリスト・セット70より
成る。各ロック・テーブル68は、ゼロで始まる番号を
連続的に付けられた一連の1つ又は複数個のエントリよ
り成る。そのリスト・ストラクチャのタイプは、ロック
・テーブル・エントリがグローバル・ロック・マネージ
ャ(GLM)オブジェクト、又はローカル・ロック・マ
ネージャ(LLM)オブジェクト、或いはそれらの両方
を持っているかどうかを決定する。
【0036】リスト・ストラクチャ制御66は、リスト
・ストラクチャ46が作成される時に初期設定される。
リスト・ストラクチャ制御66は、ストラクチャ・サイ
ズ、リスト・ストラクチャのタイプ、ロック・テーブル
・エントリのカウント、非ゼロ・ロック・テーブル・エ
ントリのカウント、ロック・テーブル・エントリのサイ
ズ、リスト・カウント、リスト・エレメントのサイズ、
リスト・セット・エントリのカウント、ユーザ識別子の
ベクトル、及び67において別個に示されたユーザ制御
のようなそのストラクチャのアトリビュートを含む。
【0037】ユーザ制御67は、リスト・ストラクチャ
のユーザが付加される時に作成されそして初期設定され
る。ユーザ制御67はリスト通知トークン、システム識
別子、ユーザ付加制御、及びユーザ状態を含む。
【0038】リスト制御69は、リスト・エントリのカ
ウント、リスト・エレメントのカウント、リスト・エン
トリのカウントの限界又はリスト・エレメントのカウン
トの限界、リスト・モニタのテーブル、リスト状態遷移
のカウント、及びユーザ・リスト制御を含む。各リスト
72は一連の0個の又は1つ以上のエントリより成る。
リスト・ストラクチャのタイプは、リスト・ストラクチ
ャ70がデータ・リスト・エントリ73付属リスト・エ
ントリ74又はそれらの両方を含むかどうかを決定す
る。そのリスト・ストラクチャが付属リスト・エントリ
を含む場合、各リスト・エントリに関連した正確に1つ
の付属リスト・エントリがある。そのリスト・ストラク
チャがデータ・リスト・エントリを含む場合、所与のリ
スト・エントリと関連した1つ又は複数個のデータ・リ
スト・エントリがあっても、或いはなくてもよい。
【0039】上記リスト・エントリ制御71の1つはリ
スト72の各エントリと関連付けられる。制御71は、
リスト・エントリ・ロケーション情報及び付属領域74
におけるデータを管理するための他の情報を含む。リス
ト・コマンドは、ロック・テーブル・エントリを書き込
むための手段を与える。コマンドはグローバル・ロック
・マネージャを比較し、そして条件付きでグローバル・
ロック・マネージャ、ローカル・ロック・マネージャ、
又はグローバル・ロック・マネージャ及びローカル・ロ
ック・マネージャの両方を置換することが可能である。
又、リスト・コマンドは、ロック・テーブル68におけ
るエントリ又は次の非ゼロ・ロック・テーブル・エント
リを読み取るための手段、或いはロック・テーブル68
をクリアするための手段を与える。
【0040】又、リスト・コマンドはリスト72におけ
る1つのエントリを条件付きで作成、読取り、置換、移
動、又は削除するための手段を与える。これらのプロセ
ス中、多数の比較がリクエスト可能である。それらはリ
スト番号比較、バージョン番号比較、グローバル・ロッ
ク・マネージャ(GLM)比較、又はそれらの組合せを
含む。更に、グローバル・ロックが比較される時、ロー
カル・ロックLLMが比較可能である。リスト・エント
リは、1つのリスト72から同じストラクチャにおける
他のリストに、又は1つの位置から同じリスト72にお
ける他の位置に移動可能である。
【0041】リスト72におけるリスト・エントリの位
置は、それが作成される時に決定され、そのリストにお
ける何れかのエントリが作成され、削除され、或いは移
動させられ時に変更可能である。リスト・エントリ又は
リスト・エントリ位置は、リスト・エントリ識別子、オ
プショナル・リスト・エントリ名、オプショナル・リス
ト・カーソル、又は位置によってリスト・セット70内
に位置指定される。リスト・エントリ識別子はリスト・
セット70にとって独特であり、SES機構16によっ
て割り当てられる。リスト・エントリ名は如何なる特定
な例においてもリスト・セット70にとって独特であ
り、そのプログラムによって与えられる。位置はリスト
番号、方向、及びオプショナル・リスト・エントリ・キ
ーによって指定される。
【0042】リスト・エントリ・キーが存在する時、キ
ー付きのリスト・エントリは、左端位置において最低の
数値キーを持ったキーによって順序付けられる。同じキ
ー値を持ったエレメントは、同じキー値内の最初又は最
後のものによって位置指定可能である。キー付きでない
リスト・エントリが作成される又は移動させられる時、
ターゲット・リスト・エントリ位置は、いつもキー付き
位置及び同じキー値における最初の又は最後のものよっ
て位置指定される。
【0043】リスト・コマンドは、リスト72の1つの
エントリを同時に書き込み及び移動するための手段、移
動し及び読み取るための手段、又は読み取り及び削除す
るための手段を与える。複数個のリスト・エントリが同
期的に削除可能であり、複数個のデータ・リスト・エン
トリ73又は付属リスト・エントリ74が同期的に読み
取り可能である。データ・リスト・エントリ73は、メ
ッセージ・オペレーション・ブロックによって主記憶装
置内の指定されたデータ領域にいつも戻される。付属リ
スト・エントリは、コマンドに依存して、メッセージ応
答ブロック又はデータ領域に戻される。通常、データ・
リスト・エントリ73はアプリケーション・プログラム
・データを含み、付属リスト・エントリ74はそれと関
連した制御データを含む。
【0044】リスト・モニタリングはSESリスト機能
であり、それは「リスト・ストラクチャ・ユーザ付加
(ATTACH−LIST−STRUCTURE−US
ER)」コマンド及び「リスト・モニタ登録(REGI
STER−LIST−MONITOR)」コマンドによ
るリスト・ストラクチャ・ユーザによってオプショナル
的にリクエストされる。その「リスト・ストラクチャ・
ユーザ付加」コマンドは、リスト・ストラクチャ・ユー
ザが常駐するシステム及びユーザと関連したリスト通知
ベクトル(LNV)をSESに対して識別する。「リス
ト・モニタ登録」コマンドはユーザがリストをモニタし
始めるのを許容する。
【0045】各プロセッサ記憶装置65A−65Nは、
リスト通知ベクトルのグローバル・サマリ(LNVG
S)エントリ、多数のリスト通知ベクトルのローカル・
サマリ(LNVLS)エントリ、及び多数のリスト通知
ベクトル(LNV)を含む。そのLNVは「ベクトル定
義(DEFINE VECTOR)」命令によって作成
される。LNVのサイズは、種々のリスト・ユーザの間
で変わり得るものである。LNVは「リスト・ストラク
チャ・ユーザ付加」コマンドによってSESリスト・ス
トラクチャ46に付加される。LNVにおける各エント
リはSESリスト・ストラクチャ46におけるリスト7
2と関連付けられる。エンプティ状態から非エンプティ
状態への遷移及び非エンプティ状態からエンプティ状態
への遷移は、CPUからLNVにおける適当なエントリ
を周期的にポーリングすることによって検出される。
「ベクトル・エントリ・テスト(TEST VECTO
R ENTRY)」命令はこのために与えられる。
【0046】LNVエントリは、エンプティ状態へのリ
スト遷移の結果として1にセットされ、非エンプティ状
態へのリスト遷移の結果として0にセットされる。ユー
ザがリストをモニタしている時、エンプティから非エン
プティへの及び非エンプティからエンプティへのリスト
の状態遷移の結果、SES機構16は、ユーザ付加を開
始させる「リスト通知(LIST NOTIFICAT
ION)」コマンドをシステムに発生する。
【0047】その「リスト通知」コマンドは、モニタさ
れたリスト72のエンプティ又は非エンプティ状態を反
映するようにその指定されたリスト通知ベクトル(LN
V)エントリを更新させる。その「リスト通知」コマン
ドは、モニタされたリスト72の非エンプティ状態を反
映するように、その指定されたリスト通知ベクトルのグ
ローバル・サマリ(LNVGS)及びリスト通知ベクト
ルのローカル・サマリ(LNVLS)を更新させること
も可能である。
【0048】固定の又はプログラム修正可能なキャッシ
ュ(又は、リスト)制御が設けられる。固定のキャッシ
ュ制御は、キャッシュが割振りされそしてそのキャッシ
ュが割振り解除されるまで変化しないままである時に初
期設定される。プログラム修正可能キャッシュ制御は、
キャッシュが割振りされそしてその後のSESコマンド
によって変更可能である時に初期設定される。
【0049】拡大、縮小、及び再配分と関連した固定キ
ャッシュ制御が以下に要約される。即ち、 最大追放クラス(MCC):追放クラスの数を指定する
整数。 最大記憶クラス(MSC):記憶クラスの数を指定する
整数。 最大ストラクチャ・サイズ(MXSS):キャッシュの
ために割振り可能なSES記憶装置の単位の最大数を指
定する整数。
【0050】拡大、縮小、及び再配分と関連したプログ
ラム修正可能なキャッシュ制御が以下に要約される。即
ち、 ターゲット・データ領域エレメントのカウント(TGD
AEC):キャッシュ・ストラクチャにおけるディレク
トリ・エントリへの割当てに使用可能なデータ領域エレ
メントの最大数に対するターゲットを指定する整数。 ターゲット・ディレクトリ・エントリのカウント(TG
DEC):キャッシュ・ストラクチャにおける可能なデ
ィレクトリ・エントリの最大数に対するターゲットを指
定する整数。 ターゲット・ストラクチャ・サイズ(TSS):割振り
されるべきユニットのターゲット数を指定する整数。 トータルデータ領域エレメントのカウント(TDAE
C):キャッシュに対して割振りされたデータ領域エレ
メントの数を指定する整数。 トータルディレクトリ・エントリのカウント(TDE
C):キャッシュに対して割振りされたディレクトリ・
エントリの数を指定する整数。 マージナル・ストラクチャ・サイズ(MRSS):リク
エストされた比に無関係に、キャッシュに対して割振り
可能なSES記憶装置のユニットの最小数を指定する整
数。 最小配分可能なストラクチャ・サイズ(MASS):キ
ャッシュに対して割振り可能な且つリクエストされた比
を実質的に満足するSES記憶装置のユニットの最小数
を指定する整数。 保留のディレクトリ対データの比(PDTDR):「キ
ャッシュ・ストラクチャ割振り(ALLOCATE C
ACHE STRUCTURE)」コマンドにおける最
後のリクエストされたターゲットのディレクトリ対デー
タの比を含むフィールド。 再配分進行中インディケータ(REIPI):再配分プ
ロセスがキャッシュ・ストラクチャに対して現在アクテ
ィブであるかどうかを表す値。 ストラクチャ・サイズ変化インディケータ(SSC
I):拡大又は縮小プロセスがキャッシュ・ストラクチ
ャに対して現在アクティブであるかどうかを表す値。
【0051】ターゲット・ストラクチャ・サイズの値
は、ターゲット・ストラクチャ・サイズ・オブジェクト
にそれを置く前に、記憶セグメント・サイズの最も近い
倍数まで丸められる。
【0052】リスト・ストラクチャ制御は固定のリスト
・ストラクチャ制御及びプログラム修正可能なリスト・
ストラクチャ制御を含む。固定のリスト・ストラクチャ
制御は、リスト・ストラクチャが作成される時に初期設
定され、そしてそれが割振り解除されるまでそのまま変
更されない。プログラム修正可能なリスト・ストラクチ
ャ制御は、そのリスト・ストラクチャが作成される時に
初期設定される。プログラム修正可能なリスト・ストラ
クチャ制御の値はSESコマンドによって変更可能であ
る。
【0053】拡大、縮小、又は再配分と関連した固定の
リスト・ストラクチャ制御は以下のように要約される。
即ち、 最大ストラクチャ・サイズ(MXSS):そのリストに
対して割振り可能なSES記憶装置のユニットの最大数
を指定する整数。
【0054】拡大、縮小、又は再配分と関連したプログ
ラム修正可能な制御は以下のように要約される。即ち、 リスト・セット・エレメント・カウント(LSEL
C):そのリスト・セットにおけるリスト・エントリ、
又は再試行データ・ブロック、或いはその両方に割り当
てられたリスト・エレメントの数を指定する整数。 リスト・セット・エントリ・カウント(LSEC):そ
のリストセットにおける既存のリスト・エントリの数を
指定する整数。 最大のリスト・セット・エントリ・カウント(MLSE
LC):リスト・エントリ又は再試行データ・ブロッ
ク、或いはその両方への割当てに使用可能なリスト・エ
レメントの最大数を指定する整数。 最大のリスト・セット・エントリ・カウント(MLSE
C):リスト・セットにおける可能なリスト・エントリ
の最大数を指定する整数。 ターゲット最大エレメント・カウント(TMELC):
リスト・セットにおけるリストエントリ又は再試行デー
タ・ブロックへの割当てに使用可能なリスト・エレメン
トの最大数に対するターゲットを指定する整数。 ターゲット最大エントリ・カウント(TMEC):リス
ト・セットにおける可能なリスト・エントリの最大数に
対するターゲットを指定する整数。 ターゲット・ストラクチャ・サイズ(TSS):割振り
されるべきSES記憶装置のターゲット数を指定する整
数。 マージナル・ストラクチャ・サイズ(MRSS):リク
エストされた比に関係なく、リスト・ストラクチャに対
して割振り可能なSES記憶装置のユニットの最小数を
指定する整数。 最小の配分可能なストラクチャ・サイズ(MASS):
リスト・ストラクチャに対して割振り可能な且つリクエ
ストされた比を実質的に満足するSES記憶装置のユニ
ットの最小数を指定する整数。 保留のエントリ対エレメントの比(PETELR):
「リスト・ストラクチャ割振り」コマンドにおける最後
のリクエストされたターゲット・エントリ対エレメント
の比を含むフィールド。 再配分進行中インディケータ(REIPI):再配分プ
ロセスがリスト・ストラクチャに対して現在アクティブ
であるかどうかを表す値。 ストラクチャ・サイズ変更インディケータ(SSC
I):拡大又は縮小プロセスがリスト・ストラクチャに
対して現在アクティブであるかどうかを表す値。
【0055】ターゲット・ストラクチャ・サイズの値
は、TSSオブジェクト内にそれを置く前に記憶セグメ
ント・サイズの最も近い倍数に丸められる。SES記憶
セグメント・サイズは4096の2の累乗倍バイトのS
ES記憶装置サイズである。
【0056】又、キャッシュ割振りプロセスを完了させ
ること及びリスト割振りプロセスを完了させることに関
して、ステータス状態が、必要に応じて及び更に詳細に
後述するように与えられる。ステータス状態の例は、そ
のストラクチャが初期割振りプロセスを完了させていな
いことを表す「割振り未完了」である。
【0057】コマンド静止は、メッセージ応答をその後
放棄した時のオブジェクト参照の順方向完了の作用によ
って、又はそのような参照をやめることによって、特定
のコマンド実行の通常の完了として定義されるが、それ
は、「キャッシュ・ストラクチャ割振り」又は「リスト
・ストラクチャ割振り」のようなコマンドによって開始
されるバックグランド処理に対してはモデル依存する。
そのコマンド静止機能は、1992年3月30日出願の
米国特許出願07/860,330号に開示されてい
る。
【0058】SES機構は、同じ又は異なるSESオブ
ジェクト(図2)に影響する異なるコマンドを潜在的に
は同時に実行する複数個のメッセージ・プロセッサを含
み得るので、CPC(図2の10B、10C、10N)
でもって実行し及びSESキャッシュ・オブジェクト
(45、48)又はリスト・オブジェクト(46、4
7)をアクセスするプロセスにとってはそのSES内の
コマンド実行のオーバラップが見えないことを保証する
ように、これらコマンドの実行を同期化するルールがそ
のSES内に設定される。
【0059】SES機構における記憶装置オブジェクト
はSES機構のコマンドの実行中に参照される。オブジ
ェクト参照は、オブジェクトにおける明示値を取り出す
こと又は記憶することである。コマンドの実行中、その
コマンドに対するオブジェクトのすべて又はいくつかが
フェッチ可能であり、中間結果はその後の修正のために
維持可能であり、そして最終結果はそれらをオブジェク
トに入れる前に一時的に保持可能である。
【0060】1つのコマンドのオブジェクト参照は、サ
ブチャネルにおいて見られるように、先行のすべてのコ
マンドの参照後に、及び後続のコマンドの参照前に生じ
る。メッセージ・コマンドによるすべてのオブジェクト
参照は、他のメッセージ・コマンドによって見られるよ
うに、(1)ステータスがサブチャネルにおいて引き出
される、又は(2)サブチャネル・ステータスがCPU
にとって使用可能にされる(即ち、コマンドがサブチャ
ネルにおいて見られるように順序付けられる)、前に完
了する。オブジェクト参照は3つのタイプ、即ち、フェ
ッチ、ストア、更新のものである。
【0061】オブジェクトがソースとしてだけコマンド
実行に参加する時、そのオブジェクトはフェッチ型オブ
ジェクトであり、そのオブジェクトに対する参照はフェ
ッチ参照である。フェッチ型オブジェクトは、アクセス
がフェッチのためであることを表すことによって個々の
コマンド定義において識別される。
【0062】オブジェクトが新しい値によって置換され
る範囲までデスティネーションとしてだけコマンド実行
に参加する時、そのオブジェクトはストア型オブジェク
トであり、そのオブジェクトに対する参照はストア参照
である。
【0063】或るコマンドでは、オブジェクトはソース
及びデスティネーションとして参加する。これらのケー
スでは、そのオブジェクトに対する参照は、まず、フェ
ッチにありそして次に、ストアにある。このオブジェク
トは更新型オブジェクトであり、2つのアクセスの組合
せは「更新参照」である。その更新参照は、他のコマン
ドによるアクセスを防ぐようにインターロックされる。
インターロックされた更新の参照と関連したフェッチ・
アクセス及びストア・アクセスは必ずしも相互の直後に
生じるものではなく、他のコマンドに対する参照と関連
したすべてのフェッチ及びストア・アクセスは更新参照
のフェッチ・アクセス及びストア・アクセスの間の同じ
オブジェクトにおいて生じないようにされる。上記の要
件の制限内で、更新参照と関連したフェッチ及びストア
・アクセスは前の項で説明したフェッチ及びストアと同
じルールに従う。
【0064】オブジェクト参照に対しては、1つのオブ
ジェクト内のすべてのバイトへのアクセスはすべてのC
PUによって見られるように同時的であるように見え
る。フェッチ型参照の場合、他のコマンドのためのオブ
ジェクトへのストア・アクセスは、そのオブジェクトに
含まれるバイトがフェッチされようとしている時には許
されない。ストア型参照の場合、他のコマンドのための
オブジェクトへのアクセスは、フェッチ又はストアの何
れでも、そのオブジェクトにおけるバイトがストアされ
ようとしている時には許されない。SES内のロック
は、これらのオブジェクト同時参照ルールを強化するた
めに使用され、それについては更に詳細に後述すること
にする。
【0065】割振りプロセスのコマンド又はチェックポ
イントはいくつかのオブジェクトを同時に参照すること
ができる。それらオブジェクトへに参照は、すべてのメ
ッセージ・コマンドによって見られるように同時的であ
るように見えなければならない。割振りプロセスの他の
コマンド又はチェックポイントに対する記憶アクセス
は、何れかのオブジェクトにおけるバイトがフェッチ又
はストアされようとしている時には何れのオブジェクト
に対しても許されない。何れかのストア型オブジェクト
におけるバイトがストアされようとしている時には何れ
のストア型オブジェクトに対する割振りプロセスの他の
コマンド又はチェックポイントによるフェッチ・アクセ
スは許されない。
【0066】キャッシュ割振りプロセスのチェックポイ
ントによって参照されるオブジェクトのセットは「キャ
ッシュ・ストラクチャ割振り」コマンドにおいて指定さ
れる。リスト割振りプロセスのチェックポイントによっ
て参照されるオブジェクトのセットは「リスト・ストラ
クチャ割振り」コマンドにおいて指定される。
【0067】オブジェクトはオブジェクト・ハイラーキ
に従って配列される。静的SES制御に続いて、先ず、
動的SES制御及び再試行テーブルが後続する。再試行
テーブル・エントリは、更に、再試行インデックスによ
って順序付けられる。共通のオブジェクト記憶領域をア
クセスする多数のエンジンを持ったSES機構に対し
て、コマンド同時性の要件は、各オブジェクトの内部ロ
ックをそれが参照される前に得ること、及びそのコマン
ドが抑止され或いは完了するまでそれらロックをすべて
保つことによって満たすことが可能である。共用ロック
は、フェッチ型オブジェクトに対して得られ、排他ロッ
クはストア型オブジェクト及び更新型オブジェクトに対
して得られる。
【0068】上記要件の制限内で、更新参照と関連した
フェッチ及びストア・アクセスは、前の項で説明したフ
ェッチ及びストアと同じルールに従う。
【0069】キャッシュ・ストラクチャ・リクエストは
キャッシュ・ストラクチャ・リクエスト・オペランドを
通して行われる。次のような多数のキャッシュ・ストラ
クチャ・リクエスト・オペランドがある。即ち、それら
は、「割振りタイプ(AT)」、「配分優先順位インデ
ィケータ(API)」、「データ領域エレメント特性
(DAEX)」、「データ許容係数(DTF)」、「デ
ィレクトリ許容係数(DITF)」、「ターゲット・デ
ィレクトリ対データ比(TDTDR)」、及び「ターゲ
ット・ストラクチャ・サイズ(TSS)」を含む。キャ
ッシュ・ストラクチャ・リクエスト・パラメータは「キ
ャッシュ・ストラクチャ割振り」コマンドに含まれる。
【0070】「割振りタイプ(AT)」は、割振りコマ
ンドがどのようなアクションを取るべきかを示す値であ
り、ストラクチャ・サイズ・インディケータ(SS
I)、ユーザ・ストラクチャ制御インディケータ(US
CI)、及び比率インディケータ(RI)を含む。次の
ような多数のアクションがリクエスト可能である。即
ち、それは、再配分を開始又は継続すること、再配分を
開始又は継続し、USC(ユーザ・ストラクチャ制御)
更新すること、拡大又は縮小を開始又は継続すること、
拡大又は縮小を開始又は継続し、USCを更新するこ
と、拡大又は縮小を開始又は継続し、再配分を開始又は
継続すること、拡大又は縮小を開始又は継続し、再配分
を開始又は継続し、USCを更新すること、前の割振り
プロセスを停止させること、及びUSCだけを更新する
ことを含む。ストラクチャ権限(SAU)はいつも比較
ストラクチャ権限リクエスト・オペランドと比較され、
それらが一致する時、それはストラクチャ権限リクエス
ト・オペランドと置換される。初期割振りプロセスが完
了しない場合、割振りタイプは無視される。
【0071】配分優先順位インディケータ(API)
は、拡大又は縮小プロセスにおいて正確な比率を設定す
る場合に生じる競合の解消及びいつキャッシュが最初に
割振りされるかを指示する値である。APIにおける
「1」の値は、正確な比率を維持することがそのストラ
クチャに割り当てられる記憶資源の量を最大にするより
も高い優先順位のものであることを表す。「0」の値
は、記憶資源を最大にすることがより高い優先順位のも
のであることを表し、確度の低い比率は許容されるであ
ろう。
【0072】データ領域エレメント特性(DAEX)
は、各データ領域エレメントにおけるバイトの数を指定
する整数である。
【0073】データ許容係数(DTF)は、縮小又は再
配分の何らかのチェックポイントの後に、変更したデー
タ領域エレメントの合計数のパーセンテージとして使用
可能でなければならないデータ領域エレメントの最小数
を指定する値である。
【0074】ディレクトリ許容係数(DITF)は、縮
小又は再配分の何らかのチェックポイントの後に、変更
したデータ領域エレメントの合計数のパーセンテージと
して使用可能でなければならないディレクトリ・エント
リの最小数を指定する値である。
【0075】ターゲット・ディレクトリ対データ比(T
DTDR)は、キャッシュにおいて可能なデータ領域エ
レメントに対するディレクトリ・エントリの相対的数の
ためのターゲットを指定する2つの整数より成るフィー
ルドである。第1バイトにおける指定された整数をそれ
ら2つの数の和で除したものは、ディレクトリ・エント
リ及びデータ領域エレメントの合計カウントのうちのデ
ィレクトリ・エントリより成る部分を示す分数を表す。
第2バイトにおける指定された整数をそれら2つの数の
和で除したものは、ディレクトリ・エントリ及びデータ
領域エレメントの合計カウントのうちのデータ領域エレ
メントより成る部分を示す分数を表す。
【0076】第1フィールドの値は非ゼロでなければな
らない。第2フィールドの値を第1フィールドの値で除
したものは最大データ領域サイズを越えてはならない。
第2フィールドがゼロであり且つキャッシュ・ストラク
チャが作成されようとしている時、データ領域エレメン
トは作成されず、キャッシュ・ストラクチャはディレク
トリのみのキャッシュであると考えられる。
【0077】ターゲット・ストラクチャ・サイズ(TS
S)オペランドは割振りされるべきSES記憶装置のタ
ーゲット数を指定する整数である。
【0078】キャッシュ・ストラクチャ・プロセスはS
ESキャッシュ・ストラクチャ・コマンドによって呼び
出し可能であり、例えば、キャッシュ・ストラクチャを
割振りすること、キャッシュ・ストラクチャを作成する
こと、ターゲット・ストラクチャ・サイズ・オブジェク
トを更新すること、ターゲット・カウント・オブジェク
トを更新すること、キャッシュ割振りプロセスをチェッ
クポイント指定すること、及びキャッシュ割振りプロセ
スを完了させることを含む。コマンドによって呼び出さ
れたプロセスにセットはコマンド記述においてリストさ
れる。
【0079】キャッシュ・ストラクチャを割振りするた
めには、キャッシュ・ストラクチャは、未だ存在してい
ないストラクチャに対する「キャッシュ・ストラクチャ
割振り」コマンドの第1の呼出しが成功した時に作成さ
れる。キャッシュ・ストラクチャは、「キャッシュ・ス
トラクチャ割振り」コマンドの1つ又は複数個の呼出し
が成功した後に、最初に、拡大され、縮小され、又は再
配分される。これらのオペレーションは、一般的に、
「キャッシュ割振りプロセス」と呼ばれる。拡大、縮
小、及び再配分は初期割振りプロセスの完了後に開始さ
れる。
【0080】説明をキャッシュ・ストラクチャの作成に
転ずると、キャッシュ・ストラクチャが作成される時、
ターゲット・ディレクトリ対データ比(TDTDR)及
び付属割当てインディケータ(AAI)は作成されたス
トラクチャのアトリビュートを決定する。TDTDRの
第2フィールドがゼロである時、データ領域エレメント
及び付属領域エレメントはディレクトリ・オンリのキャ
ッシュである。
【0081】TDTDRの第2フィールドが非ゼロであ
り且つAAIがオンである時、付属領域はディレクトリ
・エントリに割り当てられる。TDTDRの第2フィー
ルドが非ゼロであり且つAAIがオフである時、付属領
域は作成されない。
【0082】キャッシュ・ストラクチャが作成される
時、(1)ストラクチャ識別子(SID)値と関連した
ストラクチャ識別子ベクトルにおける作成されたビット
がセットされ、(2)キャッシュ・ストラクチャ制御が
初期設定される。この初期設定オペレーションは、LC
IDベクトルをゼロに初期設定すること、ストラクチャ
権限(SAU)オペランドをストラクチャ権限内に配置
すること、USCオペランドをユーザ・ストラクチャ制
御に配置すること、AAIをAAIオペランドの値に等
しくセットすること、MCCオペランドを最大追放クラ
ス・オブジェクトに配置すること、MSCオペランドを
最大記憶クラス・オブジェクトに配置すること、DAE
Xオペランドをデータ領域エレメント特性オブジェクト
に配置すること、MDASオペランドを最大データ領域
サイズ・オブジェクトに配置すること、ターゲット・ス
トラクチャ・サイズ・オブジェクト及びターゲット・カ
ウント・オブジェクトを更新すること、キャッシュ・ス
トラクチャ・オブジェクト、最大キャッシュ・ストラク
チャ・オブジェクト、及びマージナル・キャッシュ・ス
トラクチャ・オブジェクトを更新すること、並びにフリ
ー・スペース・オブジェクト及びフリー制御スペース・
オブジェクトを更新することを含む。
【0083】更に、キャッシュ・ストラクチャが作成さ
れる時、最大ストラクチャ・サイズ・オブジェクトは、
次の2つのうちの小さい方に初期設定される。即ち、 (1)モデルがサポートし得る最大記憶装置サイズ。 (2)SESセグメント・サイズの最も近い整数倍に丸
められた最大ストラクチャ・サイズ・リクエスト・オペ
ランド。
【0084】キャッシュ・ストラクチャが作成される
が、それが完全には割振りされない時、「キャッシュ・
ストラクチャ割振り」コマンド、「キャッシュ・ストラ
クチャ割振り解除」コマンド又は「キャッシュ・ストラ
クチャ情報読取り」コマンド以外のそのストラクチャに
対して発生されたすべてのキャッシュ・ストラクチャ・
コマンドは抑止されるか、或いは初期割振り未完了ステ
ータス状態でもって終了する。
【0085】TSSオブジェクトを更新するためには、
キャッシュ・ストラクチャが作成される時、そのTSS
オブジェクトは次の2つのうちの小さい方にセットされ
る。即ち、 (1)最大キャッシュ・ストラクチャ・オブジェクト (2)SESセグメント・サイズの最も近い整数倍に丸
められたTSSリクエスト・オペランド。
【0086】TSSリクエスト・オペランドがマージナ
ル・ストラクチャ・サイズ及び最大ストラクチャ・サイ
ズによって指定された範囲内にあり且つ拡大又は縮小リ
クエストが成功する時、TSSオブジェクトは、SES
セグメント・サイズの最も近い整数倍に丸められたTS
Sリクエスト・オペランドにセットされる。
【0087】再配分リクエストが対応の拡大又は縮小リ
クエストなしに開始され且つストラクチャ・サイズ変更
インディケータがゼロである時、ターゲット・ストラク
チャ・サイズ・オブジェクトは、ターゲット・カウント
・オブジェクトを更新する前にストラクチャ・サイズ・
オブジェクト値によって置換される。再配分リクエスト
が対応の拡大又は縮小リクエストなしに開始され且つス
トラクチャ・サイズ変更インディケータが1である時、
TSSオブジェクトは変更されない。この場合、拡大又
は縮小プロセスは継続するが、新しいディレクトリ対デ
ータ比は有効となる。これら2つの割振りプロセスは組
み合わされる。
【0088】TSSリクエスト・オペランドが最大スト
ラクチャ・サイズ・オブジェクトよりも大きく且つ拡大
リクエストが成功する時、TSSオブジェクトは最大ス
トラクチャ・サイズ・オブジェクトに等しくセットされ
る。
【0089】TSSリクエスト・オペランドがマージナ
ル・ストラクチャ・サイズ・オブジェクトよりも小さく
且つ縮小リクエストが成功する時、TSSオブジェクト
はマージナルストラクチャ・サイズ・オブジェクトに等
しくセットされる。
【0090】ターゲット・カウント・オブジェクトを更
新するためには、作成又は再配分リクエストが成功する
時、ターゲット・ディレクトリ・カウント対ターゲット
・データ領域エレメント・カウントの比がTDTDRリ
クエスト・オペランドによって指定された比に実質的に
等しくなるように、その逆比が最大データ領域サイズよ
り小さいか又はそれに等しくなるように、及びターゲッ
ト・カウントがTSSに与えられる可能な最大カウント
となるように、ターゲット・カウントは更新される。
【0091】作成リクエストは成功するがターゲットス
トラクチャ・サイズは最小の配分可能なストラクチャ・
サイズよりも小さい時、新しいターゲット・カウントの
比は最良の可能なものとなるが、保留のディレクトリ対
データ比から大きく変更したものでもよい。
【0092】拡張又は縮小リクエストが成功する時、新
しいターゲット・ディレクトリ・エントリ・カウント対
ターゲット・データ領域エレメント・カウントの比が保
留のディレクトリ対データ比に実質的に等しくなるよう
に、その逆比が最大データ領域サイズよりも小さいか又
はそれに等しくなるように、及びターゲット・カウント
がTSSに与えられる可能な最大カウントになるように
更新される。
【0093】前のキャッシュ割振りプロセスが停止する
時、割振りタイプによって指定されるように、SS、T
DEC、及びTDAECは最も最近のチェックポイント
におけるそれらの値を含む。追放される過程にある如何
なる記憶装置も最も最近のチェックポイントにおけるそ
れの使用と両立して使用するように回復される。
【0094】ターゲット・ストラクチャ・サイズ及びタ
ーゲット・カウント値の割当てにおいて競合が生じるこ
とがある。例えば、最大の記憶サイズの割当ては、実質
的には正確でない比率を生じたり、或いは全く割り当て
可能でないオブジェクトを生じることがある。それとは
逆に、その比率を最適に満足させるために少量の記憶装
置を割り当てることは、小さすぎて効果的に利用されな
いストラクチャを生じることがある。そのような競合
は、制御スペースの不足、大きい比率又は大きい比較的
優良なコンポーネントとの比率の内訳、ストラクチャを
MASS以下に縮小すること、リクエストされたオブジ
ェクトをサポートするデータ・ストラクチャの根底とな
るタイプ、記憶管理アルゴリズムにおける固有の拘束、
又はこれら要素のうちの1つ又は複数個の組合せから生
じ得るものである。
【0095】そのような競合が存在し、配分優先順位イ
ンディケータがB'0'である時、ターゲット・ストラク
チャ・サイズは第1の考察事項であり、ターゲット比は
第2の考察事項である。更に詳しく云えば、その割振り
プロセスは、たとえターゲット・ストラクチャ・サイズ
への更なる進行の結果、新しいトータル・ディレクトリ
・エントリ・カウント・オブジェクト対新しいトータル
・データ領域エレメント・カウント・オブジェクトの比
が、現在のトータル・ディレクトリ・エントリ・カウン
ト・オブジェクト対現在のトータル・データ領域エレメ
ント・カウント・オブジェクトの比、及びターゲット・
ディレクトリ・エントリ・カウント・オブジェクト対タ
ーゲット・データ領域エレメント・カウント・オブジェ
クトの比の範囲外となっても継続しなければならない。
【0096】そのような競合が存在し且つ配分優先順位
インディケータがB'1'である時、ターゲット比は第1
の考察事項となり、ターゲット・ストラクチャ・サイズ
は第2の考察事項になる。更に詳しく云えば、割振りプ
ロセスは、ターゲット・ストラクチャ・サイズへの更な
る進行の結果、新しいトータル・ディレクトリ・エント
リ・カウント・オブジェクト対新しいトータル・データ
領域エレメント・カウント・オブジェクトの比が、現在
のトータル・ディレクトリ・エントリ・カウント・オブ
ジェクト対現在のトータル・データ領域エレメント・カ
ウント・オブジェクトの比、及びターゲット・ディレク
トリ・エントリ・カウント・オブジェクト対ターゲット
・データ領域エレメント・カウント・オブジェクトの比
の範囲外となる場合には完了しなければならない。
【0097】何れの場合でも、ターゲット比及びターゲ
ット・ストラクチャ・サイズを与えられたターゲット・
カウント・オブジェクトはできるだけ大きくなければな
らない。
【0098】データ領域エレメント及びディレクトリ・
エントリに対するターゲット指定された許容レベルは更
なる割振り拘束である。
【0099】縮小又は再配分プロセスは、次のような時
にはチェックポイントを作ることはできない。即ち、
(1)提示されたチェックポイントにおけるトータル・
データ領域エレメント・カウントの新しい値が現在の値
よりも小さく且つ「新しい値から変更されたデータ領域
エレメントのカウントを減じた結果」が許容し得るデー
タ領域エレメント・カウントよりも小さい時、又は
(2)提示されたチェックポイントにおけるトータル・
ディレクトリ・エントリ・カウントの新しい値が現在の
値よりも小さく且つ「新しい値から変更されたデータ領
域エレメントのカウントを減じた結果」が許容し得るデ
ータ領域エレメント・カウントよりも小さい時。何れか
の状態が生じる時、割振りプロセスは前のチェックポイ
ントにおいて停止し、応答コード0が戻される。
【0100】2つの割振り拘束、即ち、許容可能なデー
タ領域エレメント・カウント及び許容可能なディレクト
リ・エントリ・カウントは、縮小又は再配分リクエスト
が指定され且つ対応する許容係数がゼロでない時だけ強
制される。許容レベルは、データ領域エレメントに対し
てはセット可能であるが、ディレクトリ・エントリに対
してはセット可能ではなく、或いは、ディレクトリ・エ
ントリに対してはセット可能であるが,データ領域エレ
メントに対してはセット可能ではない。
【0101】許容可能なカウントは次のように計算され
る。即ち、「許容し得るデータ領域エレメント・カウン
ト」は、変更されたデータ領域エレメントの合計数とデ
ータ許容係数オペランドの値を100で除した値との積
の結果である。その結果は端数を切り捨てられて最も近
い整数値にされる。
【0102】「許容可能なディレクトリ・エントリ・カ
ウント」は、変更されたディレクトリ・エントリの合計
数とデータ許容係数オペランドの値を100で除した値
との積の結果である。その結果は端数を切り捨てられて
最も近い整数値にされる。
【0103】両方の許容カウントがゼロである場合、タ
ーゲット・カウントが得られるまで縮小及び再配分が継
続可能である。
【0104】キャッシュ割振りプロセスを「チェックポ
イント指定(checkpointing)」すること
は、プログラム修正可能なキャッシュ制御の新しい値が
プログラムにとって見えるものとなるようにそのキャッ
シュ制御を更新するものとして定義される。チェックポ
イント・パラメータは、「キャッシュ情報読取り」コマ
ンドに応答してそのプログラムにおいてレポートされた
ものであり、トータル・ディレクトリ・エントリ・カウ
ント(TDEC)、トータル・データ領域エレメント・
カウント(TDAEC)、ストラクチャ・サイズ(S
S)、ターゲット・ストラクチャ・サイズ(TSS)、
現ディレクトリ・エントリ・セグメント・カウント(D
ESC)、及び現データ・セグメント・カウント(デー
タSC)を含む。
【0105】「キャッシュ・ストラクチャ割振り(AC
S)」コマンドは、成功の応答コードが戻される時、い
つもチェックポイント指定される。又、初期割振りが完
了した後、成功したACSコマンドの実行中いつも、又
はバックグランド処理が成功のACSコマンド(そのオ
ペレーションは後述される)の結果として継続する時、
チェックポイント指定可能である。成功のACSコマン
ドのバックグランド処理は、成功の応答コードが戻され
る時に停止する。本願で定義されるように、バックグラ
ンド処理は、メッセージ応答が送られてしまった後にメ
ッセージ・プロセッサによって実行される何らかの機能
のことであり、それは割振りプロセスのチェックポイン
ト指定を生じることもある。一方、フォアグランド処理
は、メッセージ応答を送る前に生じる何らかの処理とし
て定義される。
【0106】キャッシュ割振りプロセスがチェックポイ
ント指定される時、ストラクチャ・サイズ、トータル・
ディレクトリ・エントリ・カウント、トータル・データ
領域エレメント・カウントのキャッシュ・オブジェク
ト、及びフリー・スペース及びフリー制御スペースのグ
ローバル・オブジェクトが更新される。新しいストラク
チャ・サイズ・オブジェクトは前のストラクチャ・サイ
ズ・オブジェクト及びTSSオブジェクトの範囲内であ
る。新しいトータル・ディレクトリ・エントリ・カウン
ト・オブジェクト対トータル・データ領域エレメント・
カウント・オブジェクトに比は、前のトータル・ディレ
クトリ・エントリ・カウント・オブジェクト対トータル
・データ領域エレメント・カウント・オブジェクトの比
及びターゲット・ディレクトリ・エントリ・カウント・
オブジェクト対ターゲット・データ領域エレメント・カ
ウント・オブジェクトの比の範囲内である。
【0107】初期割振りプロセスは次のような時に完了
する。即ち、(1)コマンドがストラクチャ・オブジェ
クトに抗して処理可能である時、又は(2)マージナル
・ストラクチャ・サイズを作成するには不十分な使用可
能な記憶装置があるため、キャッシュ・ストラクチャが
作成されない時。
【0108】キャッシュ・ストラクチャは作成されない
が初期割振りが完了する時、トータル・ディレクトリ・
エントリ・カウント、トータル・データ領域エレメント
・カウント、ストラクチャ・サイズ、及び最大ストラク
チャ・サイズ応答オペランドがゼロにセットされる。そ
のような状態は、マージナルなサイズのストラクチャを
作成するに不十分な記憶資源が存在する時に生じる。計
算された最小の配分可能なストラクチャ・サイズ及びマ
ージナルなストラクチャ・サイズは応答オペランドにお
いて戻される。
【0109】成功の応答コードが戻される時、ATリク
エスト・オペランドにおいて指定されたようにすべての
リクエストされたキャッシュ割振りプロセスが完了す
る。
【0110】ディレクトリ及びデータ領域エレメントを
作成するためには、キャッシュ・ストラクチャに割り当
てられた使用可能な記憶装置が配分され、それによっ
て、ディレクトリ・エントリ(DE)及びデータ領域エ
レメント(DAE)を作成する。作成される各DE及び
DAEの数は、使用可能な記憶装置の量、AAIの設
定、指定されたTDTDR、DAE特性(DAEX)及
び指定されたTSS及び最大ストラクチャ・サイズの関
数である。その結果生じるDE及びDAEの数は、それ
ぞれ、トータル・ディレクトリ・エントリ・カウント
(TDEC)制御フィールド及びトータル・データ領域
エレメント・カウント(TDAEC)制御フィールドに
入れられる。データ領域エレメント及び付属領域にとっ
て必要な記憶装置は、DAEX、AAI、及びTDTD
Rによって決定される。割振りプロセスのその後の実行
は、TDAEC及びTDECを増加又は減少させること
ができる。しかし、DAEX及びAAIは一定である。
【0111】「キャッシュ・ストラクチャ割振り」コマ
ンド及び「キャッシュ・ストラクチャ情報読取り」コマ
ンドを含むようにそのシステムによって使用される複数
個のキャッシュ・ストラクチャ・コマンドがある。
【0112】ACSコマンドは、ユーザ・ストラクチャ
制御を更新し、(1)キャッシュ・ストラクチャを作成
し、(2)キャッシュ・ストラクチャの初期割振りを継
続又は完了する。一旦初期割振りが完了すると、ACS
コマンドは拡大、縮小、又は再配分を開始又は継続し、
更に詳しく後述するように割振りタイプに依存して、ユ
ーザ・ストラクチャ制御又はそれの任意の組合せを更新
する。
【0113】ACSコマンドは、次のような時にユーザ
・ストラクチャ制御リクエスト・オペランドの値でもっ
てユーザ・ストラクチャ制御を更新する。即ち、(1)
キャッシュ・ストラクチャが作成され、(2)初期割振
りプロセスが完了し、ストラクチャ権限(SAU)比較
が成功し、且つ割振りタイプ(AT)リクエスト・オペ
ランドにおけるユーザ・ストラクチャ制御インディケー
タ(USCI)がオンである。SAU生成はプログラム
によって行われ、本発明の範囲外である。
【0114】ACSコマンドは、次のような時にキャッ
シュ・ストラクチャを作成する。即ち、(1)ストラク
チャ識別子ベクトルの指定され作成されたビットがオフ
であり、(2)SAU比較が成功し、(3)TSSオペ
ランドが関連の制御をつくるに十分であり、(4)TS
Sオペランドが最大ストラクチャ・サイズ(MRSS)
オペランドよりも小さいか又はそれに等しく、且つ
(5)マージナル・ストラクチャ・サイズ(MRSS)
のキャッシュ・ストラクチャを作成するために使用可能
な十分な記憶装置がある。
【0115】ACSコマンドは、次のような時にキャッ
シュ・ストラクチャの初期割振りを継続する。即ち、
(1)ストラクチャ識別子ベクトルの指定され作成され
たビットがオンであり、(2)SAU比較が成功し、
(3)ストラクチャの初期割振りが完了していない。
【0116】ACSコマンドは、次のような時にキャッ
シュ・ストラクチャの拡大を開始又は継続する。即ち、
(1)ストラクチャの初期割振りが完了しており、
(2)SAU比較が成功し、(3)ストラクチャ・サイ
ズ(SS)インディケータがオンであり、且つ(4)指
定されたTSSがSSオブジェクトの値よりも大きいか
又はそれに等しい。
【0117】ACSコマンドは、次のような時にキャッ
シュ・ストラクチャの縮小を開始又は継続する。即ち、
(1)ストラクチャの初期割振りが完了しており、
(2)SAU比較が成功し、(3)ストラクチャ・サイ
ズ(SS)インディケータがオンであり、且つ(4)指
定されたTSSがSSオブジェクトの値よりも小さい。
【0118】ACSコマンドは、次のような時にキャッ
シュ・ストラクチャの再配分を開始又は継続する。即
ち、(1)ストラクチャの初期割振りが完了しており、
(2)SAU比較が成功し、且つ(3)比率インディケ
ータ(RI)がオンである。
【0119】ACSプロセスは、次のような時、設定さ
れたチェックポイントにおいてチェックポイント指定さ
れ、完了する。即ち、(1)ストラクチャの初期割振り
完了しており、(2)SAU比較が成功し、且つ(3)
ATが停止を指定する。
【0120】リクエストされたキャッシュ・ストラクチ
ャ・プロセスが完了する時、すべてのプロセスがチェッ
クポイント指定され、TDEC、TDAEC、MXS
S、SS及び成功応答コード(RC)が応答オペランド
において戻される。
【0121】割振りプロセスが完了する前にモデル依存
の時間期間(例えば、数ミリ秒)が経過した時、プロセ
スはチェックポイント指定され、TDEC、TDAE
C、MXSS、SS及び成功RCは応答オペランドにお
いて戻される。
【0122】比較ストラクチャ権限リクエスト・オペラ
ンド及びSAU制御が一致しない時、SAU、USC、
及び表示RCが応答オペランドにおいて戻される。キャ
ッシュ・ストラクチャが存在せず、TSSリクエスト・
オペランドが次のような時、即ち、(1)キャッシュ・
ストラクチャに対する関連の制御の作成を可能にするに
は不十分であるか時、又は(2)MXSSリクエスト・
オペランドよりも大きい時、そのリクエストをサポート
するに必要なMASS及びMRSSは、それぞれ、MA
SS及びMRSS応答オペランドに入れられる。MAS
S、MRSS、及び表示RCはプログラムに戻される。
【0123】一旦初期割振りが完了すると、割振り未完
了ステータス状態は最早認識されない。更に詳しく云え
ば、拡大、縮小、又は再配分が進行中である時、割振り
未完了は認識されない。作成されたが縮小オペレーショ
ンが未完了なストラクチャに対するコマンドは正常に実
行される。更に詳しく云えば、コマンドは前記の縮小を
スケジュールされたオブジェクトを参照及び更新するこ
とができる。縮小は完了することを保証されない。例え
ば、キャッシュが変更されたデータでもって満杯である
時、縮小は完了し得ない。
【0124】キャッシュ・ストラクチャが縮小される
時、そのキャッシュ・ストラクチャに割り当てられた記
憶セグメントが解放されるよう、データ領域及びディレ
クトリ・エントリ記憶セグメント相互間で移行される。
変更されたデータの移行が未変更のデータ領域又はディ
レクトリ・エントリの再利用を必要とする時、再利用ベ
クトル機構は使用されない。従って、最低使用頻度(L
RU)順序づけを、縮小オペレーションを通して保管す
ることはないであろう。
【0125】ストラクチャ・サイズはモデル依存の制御
にとって必要な非プログラム・アドレス可能な記憶装置
を含むことができる。TSSオペランドは、プログラム
・アドレス可能なオブジェクト及び非プログラム・アド
レス可能オブジェクトの両方に適応するに十分に大きく
なければならない
【0126】応答が成功裏に戻される前にインターフェ
ース制御チェックが生じる時、プログラムはコマンドを
再発生することができる。SAUがそのコマンドにおい
て指定された権限に合致し且つSI及びSAUの組合せ
が独特である時、キャッシュ・コマンドの実行は成功の
RCでもって完了した。
【0127】キャッシュ・ストラクチャを作成するには
不十分なスペースしかSESにない時、成功のRCが戻
される。プログラムは、戻されるストラクチャ・サイズ
を調べることによってこの状態を決定することができ
る。ストラクチャ・サイズがゼロである場合、キャッシ
ュ・ストラクチャは作成されなかった。リクエストされ
たストラクチャ・サイズがSESセグメント・サイズの
整数倍でない時、TSSは、SESセグメント・サイズ
の最も近い整数倍に丸められる。SESは、自由な又は
未変更のDA及びDEが存在する範囲への縮小を進行す
るだけである。キャッシュ・ストラクチャが変更された
データ及びディレクトリ・エントリで満杯の時、SES
による進行は行われない。縮小を容易にするためには、
簡単に前述したようにデータ・エレメント及びディレク
トリ・エントリが追放される追放プロセスがその縮小プ
ロセスと平行して実行可能である。
【0128】更に、キャッシュ・ストラクチャの拡大及
び縮小は、そのキャッシュ・ストラクチャの初期割振り
が完了するまで開始されることはない。初期割振りが進
行中である時にACSが発生され且つATオペランドが
サイズ変更を表す場合、そのATオペランドは無視さ
れ、初期割振りが継続する。しかし、拡大又は縮小が進
行中であり、且つ「キャッシュ・ストラクチャ割振り」
コマンドが発生され、ATオペランドがサイズ変更を表
す場合、TSSオペランドの新しい値が選ばれる。作成
されたが割振りを未だ完了していないストラクチャに対
するSES機構において認識されるコマンドは、「割振
り未完了」のような表示的応答及びステータス・コード
でもって抑止される。「キャッシュ・ストラクチャ割振
り解除」、「ACS」、及び「キャッシュ・ストラクチ
ャ情報読取り」コマンドは例外であり、正規に実行され
る。
【0129】最大ストラクチャ・サイズが指定される場
合、その後の拡大をサポートするためにモデル依存制御
を形成するようストラクチャが作成される時に記憶装置
が使用されるので、注意を払わなければならない。割振
りプロセスが進行中でなく且つ指定された資源サイズが
既存のサイズに一致したキャッシュに対してACSコマ
ンドが発生される場合、そのコマンドは直ちに実行さ
れ、成功の応答コードが戻される。キャッシュ・ストラ
クチャにおける唯一の効果は、リクエストされた時にS
AU及びUSCを更新することである。
【0130】実用上の事項として、ハッシュ・テーブル
のサイズはMXSSに基づかなければならず、それによ
って、キャッシュ・ストラクチャがその後に拡大される
時、そのハッシュ・テーブルを再作成する必要をなくす
る。キャッシュ・アーキテクチャの実施は、ディレクト
リ走査プロセス及び割振りプロセスの同時実行をサポー
トしなければならない。特に、縮小及び再配分のサポー
トにおけるデータ領域及びディレクトリ・エントリの移
行は「ディレクトリ読取り」又は「ローカル・キャッシ
ュ切り離し」コマンドの実行を妨害してはならない。
【0131】キャッシュ・ストラクチャ情報読取りに関
しては、「キャッシュ・ストラクチャ情報読取り」コマ
ンドは指定されたキャッシュ・ストラクチャに対するキ
ャッシュ制御(例えば、一定の及びプログラム可能な)
の値を戻す。キャッシュ制御の値は応答オペランドに置
かれ、その制御値は成功の応答コードと共に戻される。
SESキャッシュに対するTDEC及びTDAECは、
それぞれ、TDECオペランド及びTDAECオペラン
ドに置かれ、AAIはAAIオペランドに置かれ、最大
記憶装置クラスはMSCオペランドに置かれ、最大追放
クラスはMCCオペランドに置かれ、データ領域エレメ
ント特性はDAEXオペランドに置かれ、キャッシュ・
ストラクチャ・サイズはSSオペランドに置かれ、最大
ストラクチャ・サイズはMXSSオペランドに置かれ、
最小配分可能なストラクチャ・サイズはMASSオペラ
ンドに置かれ、マージナル・ストラクチャ・サイズはM
RSSオペランドに置かれ、保留のディレクトリ対デー
タ比はPDTDRオペランドに置かれ、進行インディケ
ータ内再配分はREIPIオペランドに置かれ、ストラ
クチャ・サイズ変更インディケータはSSCIオペラン
ドに置かれ、ユーザ・ストラクチャ制御はUSCオペラ
ンドに置かれ、ストラクチャ権限はSAUオペランドに
置かれ、ターゲットストラクチャ・サイズはTSSオペ
ランドに置かれ、ターゲット・ディレクトリ・エントリ
・カウントはTGDECオペランドに置かれ、ターゲッ
トデータ領域エレメント・カウントはTGDAECオペ
ランドに置かれ、そしてLCIDベクトルはLCIDV
オペランドに置かれる。
【0132】リスト・ストラクチャ・リクエストはリス
ト・ストラクチャ・オペランドを通して行われる。「割
振りタイプ(AT)」、「配分優先順位インディケータ
(API)」、「エレメント許容係数(ETF)」、
「ターゲット・エントリ対エレメント比(TETEL
R)」、及び「ターゲット・ストラクチャ・サイズ(T
SS)」を含む複数個のリスト・ストラクチャ・オペラ
ンドがある。リスト・ストラクチャ・リクエスト・パラ
メータはリスト・ストラクチャ割振りコマンドに含まれ
る。
【0133】割振りタイプ(AT)は割振りコマンドが
どんなアクションを取るべきかを表す値であり、ストラ
クチャ・サイズ・インディケータ(SSI)、ユーザ・
ストラクチャ制御インディケータ(USCI)、及び比
率インディケータ(RI)を含む。リクエスト可能なア
クションは、再配分を開始又は継続すること、再配分を
開始又は継続し且つUSCを更新すること、拡大又は縮
小を開始又は継続すること、拡大又は縮小を開始又は継
続し且つUSCを更新すること、拡大又は縮小を開始又
は継続し且つ再配分を開始又は継続すること、拡大又は
縮小を開始又は継続し且つ再配分を開始又は継続し且つ
USCを更新すること、前の割振りプロセスを停止させ
ること、及びUSCだけを更新することを含む。
【0134】ストラクチャ権限はいつも比較のストラク
チャ権限リクエスト・オペランドと比較され、そしてそ
れらが一致する時、何らかの割振り機能の発生の際にス
トラクチャ権限リクエスト・オペランドと置換される。
初期割振りプロセスが完了してない場合、割振りタイプ
は無視される。
【0135】配分優先順位インディケータ(API)は
拡大又は縮小プロセス時の又はリストが最初に割振りさ
れる時の正確な比率の設定における競合の解消を指示す
る値である。APIの「1」の値は、正確な比率を維持
することがそのストラクチャに割り当てられる記憶資源
の量を最大にすることよりも高い優先順位である。
「0」の値は、記憶資源を最大にすることが高い優先順
位であり、低い精度の比率が許容されるであろうことを
示す。
【0136】エレメント許容係数(ELTE)は、縮小
又は再配分プロセスにおける何れかのチェックポイント
後に使用可能とならなければならないデータ・リスト・
エレメントの最小数を、割り当てられたデータ・リスト
・エレメントの合計数のパーセンテージとして指定する
値である。
【0137】エントリ許容係数(ETF)は、縮小又は
再配分プロセスにおける何れかのチェックポイント後に
使用可能とならなければならないリスト・エントリの最
小数を、割り当てられたリスト・エントリの合計数のパ
ーセンテージとして指定する値である。
【0138】ターゲット・エントリ対エレメント比(T
ETELR)は、リスト・セットにおいて可能なリスト
・エレメントに対するリスト・エントリの相対的な数に
対するターゲットを指定する2つの2進整数より成るフ
ィールドである。それら2つの数の和でもって第1フィ
ールドにおいて指定された整数を除したものは、リスト
・エントリより成る最大リスト・セット・エレメント及
び最大リスト・セット・エントリ・カウントの合計の分
数である。それら2つの数の和でもって第2フィールド
において指定された整数を除したものは、データ・リス
ト・エントリ及び再試行データ・ブロックと関連のリス
ト・エレメントより成る最大リスト・セット・エレメン
ト及び最大リスト・セット・エントリ・カウントの合計
の分数を表す。
【0139】両フィールドが非ゼロである場合、及び第
1フィールドでもって第2フィールドを除した時に得ら
れた値が最大データ・リスト・エントリのサイズよりも
小さいか又はそれに等しい場合、オペランドは有効であ
る。
【0140】ターゲット・ストラクチャ・サイズ(TS
S)は、割振りされた記憶装置のターゲット数を指定す
る整数である。
【0141】リスト・ストラクチャ・プロセッサは、プ
ログラムによって発生されたSESリスト・ストラクチ
ャ・コマンドにより呼出し可能であり、割振り、作成、
チェックポイント指定、及びリスト割振りプロセスの完
了を含む。コマンドによって呼び出されたプロセスのセ
ットはコマンド記述においてリストされる。リスト・ス
トラクチャを割振りするために、ユーザ・ストラクチャ
制御は「リスト・ストラクチャ割振り(ALST)」コ
マンドを介して条件付きで更新される。リスト・ストラ
クチャは、未だ存在しないストラクチャに対するALS
Tコマンドの最初の成功した呼出し時に作成される。リ
スト・ストラクチャは、ALSTコマンドの1つ又は複
数の成功した呼出し後、先ず、割振りされるか、拡大さ
れるか、縮小されるか、又は再配分される。これらのオ
ペレーションは、一般には、リスト割振りプロセスと呼
ばれる。拡大、縮小、及び再配分は初期割振りプロセス
の完了に伴って開始される。
【0142】リスト・ストラクチャが作成される時、リ
スト・ストラクチャ・タイプはその作成されたストラク
チャの属性を決定する。リスト・ストラクチャ・タイプ
は、カウンタ、ロック、データ、付属、名前、及びキー
の各々に対するインディケータを持ち、それらの各々は
その分野では一般に知られている。
【0143】指定されたリスト・ストラクチャ・タイプ
におけるカウント・インディケータがオフであり且つ割
振りが成功する時、各リストに対するリスト制御はリス
ト・エントリ・カウント及びリスト・エントリ・カウン
ト制限を含んでいる。指定されたリスト・ストラクチャ
・タイプにおけるカウント・インディケータがオンであ
り且つ割振りが成功する時、各リストに対するリスト制
御はリスト・エレメント・カウント及びリスト・エレメ
ント・カウント制限を含んでいる。
【0144】指定されたリスト・ストラクチャ・タイプ
におけるロック・インディケータがオンであり且つ割振
りが成功する時、ロック・テーブル・エントリ特性によ
って指定された幅及びロック・テーブル・エントリ・カ
ウントによって指定された長さを持ったロック・テーブ
ルが上記のリスト・ストラクチャ46において作成され
る。
【0145】指定されたリスト・ストラクチャ・タイプ
におけるデータ・インディケータがオンであり且つ割振
りが成功する時、記憶装置がリスト・エレメントの作成
に対して割振りされる。リスト・エレメントのサイズは
リスト・エレメント特性によって指定される。
【0146】指定されたリスト・ストラクチャ・タイプ
における付属インディケータがオンであり且つ割振りが
成功する時、そのストラクチャにおいて作成された各リ
スト・エントリは、64バイトのサイズを持った付属リ
スト・エントリを有する。指定されたリスト・ストラク
チャ・タイプにおける名前インディケータがオンであり
且つ割振りが成功した時、そのストラクチャにおいて作
成された各リスト・エントリはそれと関連したリスト・
エントリの名前を有する。指定されたリスト・ストラク
チャ・タイプにおけるキー・インディケータがオンであ
り且つ割振りが成功する時、そのストラクチャにおいて
作成された各リスト・エントリはそれと関連したリスト
・エントリ・キーを有する。
【0147】リスト・ストラクチャが作成される時、 (1)フリー・スペース及びフリー制御スペース・グロ
ーバル制御が更新される。 (2)SIDベクトルにおける適正に作成されたビット
がオンにセットされる。 (3)TSS及びターゲット・カウント・オブジェクト
の更新を含むリスト・ストラクチャ及びリスト制御が初
期設定される。 更に、リスト・ストラクチャが作成される時、MXSS
オブジェクトは、SES記憶セグメント・サイズの次の
整数倍に丸められたMXSSリクエスト・オペランドの
値に初期設定され、そのモデルがサポートし得る最大の
記憶装置サイズに制限される。
【0148】リスト・ストラクチャが作成されるが完全
には割振りされていない時、ALSTコマンド、リスト
・ストラクチャ割振り解除コマンド、及びリスト・スト
ラクチャ制御読取りコマンドを除くそのストラクチャに
発生されたすべてのリスト・ストラクチャ・コマンドが
割振り未完了ステータス状態でもって抑止又は終了させ
られる。
【0149】TSSオブジェクトの更新に関して、リス
ト・ストラクチャが作成される時、TSSオブジェクト
は次のような使用可能な最大の記憶装置サイズに等しく
セットされる。即ち、それは (1)TETELRを与えられた参照可能なオブジェク
トをサポートする。 (2)SESセグメント・サイズの最も近い整数倍に等
しいか又はそれよりも小さい。 (3)MXSSオブジェクト及びMRSSオブジェクト
によって指定された範囲内にある。
【0150】TSSリクエスト・オペランドがマージナ
ル・ストラクチャ・サイズ及び最大ストラクチャ・サイ
ズによって指定された範囲内にあり且つ拡大リクエスト
或いは縮小リクエストが成功する時、TSSオブジェク
トは、SESセグメント・サイズの最も近い整数倍に丸
められたTSSリクエスト・オペランドにセットされ
る。
【0151】再配分リクエストが対応する拡大又は縮小
リクエストなしで開始され且つストラクチャ・サイズ変
更インディケータがゼロである時、TSSオブジェクト
は、ターゲット・カウント・オブジェクトを更新する前
にSSオブジェクト値によって置換される。再配分リク
エストが対応する拡大又は縮小リクエストなしで開始さ
れ且つストラクチャ・サイズ変更インディケータが1で
ある時、TSSオブジェクトは変更されない。この場
合、拡大又は縮小プロセスは継続するが、新しいエント
リ対エレメント比は有効となる。それら2つの割振りプ
ロセスは組み合わされる。
【0152】TSSリクエスト・オペランドがMXSS
オブジェクトよりも大きく且つ拡大リクエストが成功す
る時、TSSオブジェクトはMXSSオブジェクトに等
しくセットされる。TSSリクエスト・オペランドがM
RSSオブジェクトよりも小さく且つ縮小リクエストが
成功する時、TSSオブジェクトはMRSSオブジェク
トに等しくセットされる。
【0153】ターゲット・カウント・オブジェクトはT
MELCオブジェクト及びTMECオブジェクトを含
む。そのターゲット・カウント・オブジェクトの更新は
種々の時間に行われる。例えば、作成リクエスト又は再
配分リクエストが成功する時、ターゲット・カウント
は、TMELCに対するTMECの比がTETELRリ
クエスト・オペランドにより指定されるような比に実質
的に等しくなるように、その逆比がゼロよりも大きく且
つ最大データ・リスト・エントリ・サイズよりも小さい
か或いはそれに等しくなるように、及びターゲット・カ
ウントがターゲット・ストラクチャ・サイズを与えられ
る可能な最大カウントとなるように更新される。
【0154】拡大リクエスト又は縮小リクエストが成功
する時、ターゲット・カウントは、新しいTMELCに
対する新しいTMECの比が保留のエントリ対エレメン
ト比(PETELR)に実質的に等しくなるように、そ
の逆比がゼロよりも大きく且つ最大データ・リスト・エ
ントリ・サイズよりも小さいか又はそれに等しくなるよ
うに、及びターゲット・カウントがターゲット・ストラ
クチャ・サイズを与えられる可能な最大カウントとなる
ように更新される。
【0155】ターゲット・ストラクチャ・サイズ及びタ
ーゲット・カウント値の割当てにおいて競合が生じるこ
とがある。例えば、使用可能な最大の記憶装置サイズを
割り当てることは、実質的に正確でない比率を作成する
ことがあり、或いは全く割り当て可能でないオブジェク
トを作成することがある。逆に、その比率を最適に満足
させるために少量の記憶装置を割り当てることは小さ過
ぎて効果的に利用し得ないストラクチャを作成すること
がある。そのような競合は、制御スペースの不足から、
又は大きな比率の明細或いは大きな比較的基本的なコン
ポーネントの明細から、又はMASS以下にストラクチ
ャを縮小することから、又はリクエストされたオブジェ
クトをサポートする基礎的なデータ・ストラクチャのタ
イプから、又は記憶管理アルゴリズムにおける固有の拘
束から、又はこれらの要素の1つ又は複数個の組合せか
ら生じることがある。
【0156】そのような競合が存在し且つ配分優先順位
インディケータがB'0'である時、ターゲット・ストラ
クチャ・サイズは主要な考察事項であり、ターゲット比
率は二次的な考察事項である。特に、割振りプロセス
は、たとえ、ターゲット・ストラクチャ・サイズに向け
ての更なる進行の結果として、現在の「最大リスト・セ
ット・エントリ・カウント」オブジェクト対現在の「最
大リスト・セット・エレメント・カウント」オブジェク
トの比及び「ターゲット最大エントリ・カウント」オブ
ジェクト対「ターゲット最大エレメント・カウント」オ
ブジェクトの比の範囲の外になる新しい「最大リスト・
セット・エントリ・カウント」オブジェクト対新しい
「最大リスト・セット・エレメント・カウント」オブジ
ェクトの比を生じても継続しなければならない。
【0157】そのような競合が存在し且つ配分優先順位
インディケータがB'1'である時、ターゲット比率は主
要な考察事項であり、ターゲット・ストラクチャ・サイ
ズは二次的な考察事項である。特に、割振りプロセス
は、ターゲット・ストラクチャ・サイズに向けての更な
る進行の結果として、現在の「最大リスト・セット・エ
ントリ・カウント」オブジェクト対現在の「最大リスト
・セット・エレメント・カウント」オブジェクトの比及
び「ターゲット最大エントリ・カウント」オブジェクト
対「ターゲット最大エレメント・カウント」オブジェク
トの比の範囲の外になる新しい「最大リスト・セット・
エントリ・カウント」オブジェクト対新しい「最大リス
ト・セット・エレメント・カウント」オブジェクトの比
を生じた場合、完了しなければならない。
【0158】何れの場合でも、ターゲット・カウント・
オブジェクトは、ターゲット比及びターゲット・ストラ
クチャ・サイズをできるだけ大きく与えられなければな
らない。
【0159】リスト・エレメント及びリスト・エントリ
に対する指定された許容レベルは更なる割振り拘束であ
る。
【0160】縮小及び再配分プロセスは、次のような場
合、チェックポイントを作成することができない。即
ち、(1)提示されたチェックポイントにおける「最大
リスト・セット・エレメント」カウントの新しい値が現
在の値よりも小さく且つその「新しい値」マイナス「割
り当てられたリスト・エレメントのカウント」が「許容
可能なリスト・エレメント」カウントよりも小さい時、
又は(2)提示されたチェックポイントにおける「最大
リスト・セット・エントリ」カウントの新しい値が現在
の値よりも小さく且つその「新しい値」マイナス「割り
当てられたリスト・エントリのカウント」が「許容可能
なリスト・エントリ」カウントよりも小さい時。何れの
状態が生じても、割振りプロセスは前のチェックポイン
トにおいて停止し、応答コード0が戻される。
【0161】2つの割振り拘束、即ち、「許容可能なリ
スト・エレメント」カウント及び「許容可能なリスト・
エントリ」カウントは、縮小又は再配分リクエストが指
定され且つ対応する許容係数がゼロでない時だけ強制さ
れる。いずれの許容係数もゼロである場合、対応する割
振り拘束は存在しない。許容レベルはデータ・リスト・
エレメントに対してセットされるが、リスト・エントリ
に対してはセットされず、或いは、同様に、リスト・エ
ントリに対してはセットされるがデータ・リスト・エレ
メントに対してはセットされない。
【0162】許容可能なカウントは次のように計算され
る。即ち、「許容可能リスト・エレメント・カウント」
は、割り当てられたデータ・リスト・エレメントの合計
数と「エレメント許容係数」オペランドを100で除し
た値との積である。その結果は切り捨てられて最も近い
整数値にされる。
【0163】「許容可能リスト・エントリ・カウント」
は、割り当てられたリスト・エントリの合計数と「エレ
メント許容係数」オペランドを100で除した値との積
である。その結果は切り捨てられて最も近い整数値にさ
れる。
【0164】両方の許容係数がゼロである場合、マージ
ナル・ストラクチャ・サイズが達成されるまで縮小又は
再配分は継続することができる。
【0165】リスト割振りプロセスをチェックポイント
指定することは、プログラム修正可能なリスト制御を、
その制御の新しい値がそのプログラムにとって見ること
ができるように更新することとして定義される。初期割
振りが完了した後、成功の応答コードが戻される時、A
LSTコマンドはいつもチェックポイント指定される。
更に、成功のALSTコマンドの実行中にいつも、又は
バックグランド処理が成功のALSTコマンドの結果と
して継続する時、割振りプロセスはチェックポイント指
定可能である。成功のALSTコマンドの処理は、成功
の応答コードが戻される時に停止する。
【0166】リスト割振りプロセスがチェックポイント
指定される時、MLSEC、MLSELC、及びストラ
クチャ・サイズ・リスト・ストラクチャ・オブジェクト
と、フリー・スペース及びフリー制御スペース・グロー
バル・オブジェクトとが更新される。新しいストラクチ
ャ・サイズ・オブジェクトは前のストラクチャ・サイズ
・オブジェクト及びTSSオブジェクトの範囲内にあ
る。新しいMLSECオブジェクト対新しいMLSEL
Cオブジェクトの比は前のMLSECオブジェクト対前
のMLSELCオブジェクトの比及びTMECオブジェ
クト対TMELCオブジェクトの比の範囲内にある。
【0167】初期割振りプロセスは次のような時に完了
する。即ち、(1)コマンドがストラクチャ・オブジェ
クトに抗して処理可能である時、(2)マージナル・ス
トラクチャ・サイズ(MRSS)を作成するには不十分
な使用可能な記憶装置があるためにリスト・ストラクチ
ャが作成されない時。
【0168】リスト・ストラクチャは作成されないが初
期割振りが完了する時、不十分な記憶装置しか使用可能
でない場合には、MASS及びMRSS応答オペランド
は非ゼロである。TSSリクエスト・オペランドが無効
であった場合、RC応答オペランドも非ゼロである。
【0169】リスト・ストラクチャに関する種々のオペ
レーションを遂行するために使用される利用可能な複数
個のリスト・ストラクチャ・コマンドがある。リスト・
ストラクチャ・コマンドはリスト・ストラクチャ割振り
コマンドを含み、そのコマンドはユーザ・ストラクチャ
制御を更新し、そして(1)リスト・ストラクチャを作
成し、又は(2)リスト・ストラクチャの初期割振りを
継続又は完了する。一旦初期割振りが完了すると、リス
ト・ストラクチャ割振りコマンドは拡大、縮小、再配分
を開始又は継続し、或いは、割振りタイプ・リクエスト
・オペランドに従ってユーザ・ストラクチャ制御又はそ
れらの任意の組合せを開始又は継続する。
【0170】ユーザ・ストラクチャ制御は、次のような
時に更新される。即ち、(1)リスト・ストラクチャが
作成される時、(2)初期割振りプロセスが完了し、ス
トラクチャ権限比較が成功し、そしてATリクエスト・
オペランドにおけるUSCIがオンである時。
【0171】ALSTコマンドは、次のような時にリス
ト・ストラクチャを作成する。即ち、(1)ストラクチ
ャ識別子ベクトルの指定されそして作成されたビットが
オフである時、(2)SAU比較が成功する時、(3)
TSSオペランドがリクエストされたロック・テーブル
・エントリ、リスト、及び関連の制御を作成するに十分
である時、(4)TSSオペランドがMXSSオペラン
ドよりも小さい時、及び(5)マージナル・サイズのリ
スト・ストラクチャを作成するに十分な利用可能な記憶
装置がある時。ALSTコマンドは、次のような時にリ
スト・ストラクチャの初期割振りを継続する。即ち、
(1)ストラクチャ識別子ベクトルの指定されそして作
成されたビットがオンである時、(2)SAU比較が成
功する時、及び(3)そのストラクチャの初期割振りが
完了していない時。
【0172】ALSTコマンドは、次のような時にリス
ト・ストラクチャの拡大を開始又は継続する。即ち、
(1)そのストラクチャの初期割振りが完了している
時、(2)SAU比較が成功する時、(3)ストラクチ
ャ・サイズ・インディケータがオンである時、(4)指
定されたTSSがストラクチャ・サイズ・オブジェクト
の値よりも大きいか又はそれに等しい時。
【0173】リスト・ストラクチャ割振りコマンドは、
次のような時にリスト・ストラクチャの縮小を開始又は
継続する。即ち、(1)そのストラクチャの初期割振り
が完了している時、(2)SAU比較が成功する時、
(3)ストラクチャ・サイズ・インディケータがオンで
ある時、及び(4)指定されたTSSがストラクチャ・
サイズ・オブジェクトの値よりも小さい時。
【0174】リスト・ストラクチャ割振りコマンドは、
次のような時にリスト・ストラクチャの再配分を開始又
は継続する。即ち、(1)そのストラクチャの初期割振
りが完了している時、(2)SAU比較が成功する時、
及び(3)RIがオンである時。
【0175】リスト・ストラクチャプロセスは次のよう
な時にチェックポイント指定され、その設定されたチェ
ックポイントにおいて完了する。即ち、(1)そのスト
ラクチャの初期割振りが完了している時、(2)SAU
比較が成功する時、及び(3)ATが停止を指定する
時。
【0176】割振りプロセスが完了する時、すべての割
振りプロセスがチェックポイント指定され、MASS、
MRSS、SS、TMEC、TMELC、MLSEL
C、MXSS、及び成功したRCが応答オペランドにお
いて戻される。
【0177】割振りプロセスが完了する前にモデル依存
の時間期間(例えば、数ミリ秒)が経過した時、プロセ
スはチェックポイント指定され、MLSEC、MLSE
LC、MXSS、MASS、MRSS、SS、TME
C、TMELC、及び経過時間期間RCが応答オペラン
ドにおいて戻される。
【0178】比較ストラクチャ権限リクエスト・オペラ
ンド及びSAU制御が一致しない時、SAU、USC、
及び表示RCが応答オペランドにおいて戻される。リス
ト・ストラクチャが存在せず且つTSSが(1)リクエ
ストされたロック・テーブル・エントリの作成、リス
ト、及び関連の制御を可能にするには不十分である時、
又は(2)MXSSリクエスト・オペランドよりも大き
い時、そのリクエストをサポートするに必要なMRSS
及びMASS及び表示的RCはプログラムに戻される。
【0179】リストがロック・テーブルだけで割振りさ
れる時、TSSは、ロック・テーブル・エントリ・サイ
ズ及び指定されたロック・テーブル・エントリ・カウン
トをサポートするに必要な記憶装置が小さい時でも割振
りされる。ロック・テーブルのオペレーションはよく知
られているものと考えられ、従って、ここではそれを説
明しないことにする。一旦初期割振りが完了すると、割
振り未完了ステータス状態は最早認識されない。更に詳
しく云えば、割振り未完了ステータスは、拡大、縮小、
又は再配分が進行中である間、認識されない。作成され
てはいるが縮小オペレーションが未完了であるストラク
チャに対するコマンドは、正規に実行される。更に詳し
く云えば、コマンドは、縮小のためにスケジュールされ
たオブジェクトを参照及び更新可能である。縮小は完了
することを保証されない。割り当てられたリスト・エン
トリの存在は縮小プロセスの完了を妨げることがある。
リスト・ストラクチャが縮小される時、リスト・エント
リ制御及びリスト・エントリは、そのリスト・ストラク
チャに割り当てられた記憶セグメントが解放されるよう
に記憶セグメント相互間で移行する。
【0180】一般に当業者には知られているハッシュ・
テーブル及びBツリーのようなリスト・ストラクチャに
おけるリスト・エントリの効率的なサーチのために作成
されたストラクチャは、リスト・ストラクチャが拡大又
は縮小される時、サイズを調節可能である必要はない。
しかし、十分なパフォーマンスを与えるためには、その
ようなストラクチャのサイズは、リスト・ストラクチャ
が最初に割振りされた時に最大ストラクチャ・サイズ・
リクエストの値に基づかなければならないことが望まし
い。
【0181】既存のリスト(それに対して割振りプロセ
スが進行中であり且つ指定された資源サイズが既存のサ
イズに一致する)に対するALSTコマンドが発生され
る時、そのコマンドは直ちに実行され、成功の応答コー
ドが戻される。リスト・ストラクチャに関する唯一の効
果は、リクエストされた時にSAU及びUSCを更新す
ることである。リスト・エントリ名が存在する時、ハッ
シュ・テーブルのサイズは最大ストラクチャ・サイズに
基づくのが好ましく、それによって、リスト・ストラク
チャが拡大される時、ハッシュ・テーブルを再形成する
ことを回避している。
【0182】リスト・ストラクチャ(例えば、図4にお
けるリスト・ストラクチャ46)の実施は、拡大、縮
小、又は再配分の同時実行及び他のすべてのリスト・ス
トラクチャ・コマンドをサポートしなければならない。
縮小又は再配分のサポートにおけるデータ及び制御の移
行は、「複数リスト・エントリ」コマンドを含む移行し
たデータ及び制御を参照するコマンドの実行を妨害しな
いように制御されなければならない。ストラクチャ・サ
イズは、モデル依存の制御に必要な非プログラム・アド
レス可能な記憶装置を含むことが望ましい。TSSオペ
ランドは、プログラム・アドレス可能なオブジェクト及
び非プログラム・アドレス可能なオブジェクトの両方に
適応するよう十分に大きいことが望ましい。
【0183】応答コードが成功裏に戻される前にインタ
ーフェース制御チェック状態が生じる時、プログラムは
コマンドを再発生可能である。SAUがそのコマンド上
で指定された権限と一致し且つSI及びSAUの組合せ
が独特である時、第1コマンドの実行は成功したRCで
もって完了したことになる。
【0184】SESには、リスト・ストラクチャを作成
するには不十分なスペースしか存在しない場合、成功の
応答コードが戻される。プログラムは、戻されるストラ
クチャ・サイズを調べることによって、この状態を決定
することができる。ストラクチャ・サイズがゼロである
場合、リスト・ストラクチャは作成されなかったことに
なる。
【0185】キー機能をサポートするために、当業者に
知られているBツリーは静的に割振り可能である。エン
トリが作成され、移動され、或いは削除される時、その
Bツリーを平衡して保持するためにオーバヘッドが存在
することがある。従って、複数個のキーが使用されなけ
ればキーが割振りされる必要はなく、そのストラクチャ
を割振りするためには更なる記憶装置が必要となること
がある。
【0186】リクエストされたストラクチャ・サイズが
SESセグメント・サイズの整数倍でない時、そのスト
ラクチャ・サイズはSESセグメント・サイズの最も近
い整数倍に丸めされる。最大ストラクチャサイズを指定
する時には注意を払わなければならない。それは、その
後の拡大をサポートするようモデル依存の制御を構築す
るためにストラクチャが使用される時、記憶装置が使用
されることがあるためである。
【0187】リスト・ストラクチャの初期割振りが完了
してしまうまで拡大又は縮小を開始することはできな
い。初期割振りが進行中の間にALSTが発生される場
合、TSSオペランドは無視され、その初期割振りは続
けられる。しかし、拡大又は縮小が進行中であり且つA
LSTコマンドが発生される場合、TSSオペランドの
新しい値が選択される。
【0188】作成されたストラクチャに対するSES機
構(しかし、それに対する割振りは未だ完了していな
い)において認識されるコマンドは表示応答及びステー
タス状態によって抑止される。「リスト・ストラクチャ
割振り解除」、「ALST」、及び「リスト・ストラク
チャ制御読取り」コマンドは例外であり、正規に実行さ
れる。SESは、そのストラクチャに未使用の記憶装置
が存在する範囲まで縮小を進行させることができるだけ
である。リスト・セットがフルである時、進行を行うこ
とはできない。縮小を容易にするためには、縮小リクエ
ストに適応するには不十分な未使用の記憶装置がある
時、プログラム(即ち、メイン・プログラム)はリスト
・エントリを削除する責任がある。
【0189】もう1つのリスト・ストラクチャ・コマン
ドは、リスト・ストラクチャ制御を戻す「リスト・スト
ラクチャ制御読取り」コマンドである。リスト・ストラ
クチャ制御及び成功のRCは応答オペランドにおいて戻
される。
【0190】次に、本発明によるキャッシュ・ストラク
チャの拡大、縮小、及び再配分の論理的フローに言及す
る。図5を参照すると、ステップ1では、処理が停止し
ているかどうかを割振りタイプ(AT)が表しているか
どうかが決定される。ステップ1で割振りタイプが「停
止」を表している場合、ステップ2において、「ストッ
プ・プロセッサ」サブルーチンが呼び出され、バックグ
ランド・タスクを停止させる。一般には、ストップ・プ
ロセッサは、本来、チェックポイント・カウントを最終
カウントにする。更に、ストップ・プロセッサはすべて
のバックグランド追放活動を停止させる。すべての部分
的に追放されたセグメントに対して、ストップ・プロセ
ッサはそれら追放されたエントリ又はエレメントを追放
待ち行列から除去し、それらを適当なフリー(例えば、
データ・エレメント或いはディレクトリ・エントリ)リ
ストに置く。
【0191】このようにして、ストップ・プロセッサは
チェックポイント・カウントを現在の値に更新する。そ
こで、ステップ6において、タスク完了表示がプログラ
ムに戻される。
【0192】処理停止が表示されず、且つステップ3に
おいて、ユーザ・ストラクチャ制御が更新されるべきこ
とを割振りが表示する場合、このオペレーション(例え
ば、ユーザ・ストラクチャ制御を更新する)はステップ
4において行われる。ステップ5では、拡大、縮小、又
は再配分が行われるべきかどうかが決定される。ステッ
プ5においてユーザ・ストラクチャ制御の更新だけが行
われるべきこと(例えば、キャッシュ・ストラクチャの
拡大、縮小、又は再配分がないこと)を割振り制御が表
す場合、ステップ6において、タスク完了表示がプログ
ラムに戻され、プロセスは終了する。
【0193】ステップ5において割振りタイプが拡大、
縮小、又は再配分を表す場合、又はステップ3において
ユーザ・ストラクチャ制御の更新がない場合、プロセス
はステップ7に続き、キャッシュが拡大又は縮小される
べきかどうかが決定される。キャッシュが拡大又は縮小
されるべき場合、ステップ8に示されるように、新しい
(例えば、リクエストされた)ターゲット・ストラクチ
ャ・サイズ(TSS)がTSSオペランド・フィールド
に保管される。拡大又は縮小が行われるべきでない場
合、TSSオペランドは、サイズ変更が進行中であれば
変更されずにそのままにされ、或いはステップ9におい
て現在のSSオペランドに等しくセットされる。
【0194】ステップ10では、再配分が必要かどうか
が決定される。割振りタイプが再配分を示す場合、ステ
ップ11に示されるように、新しい(例えば、リクエス
トされた)ターゲット・ディレクトリ対データ比(TD
TDR)が内部TDTDRフィールドに保管される。再
配分が生ずべきでない場合、ステップ12において、内
部TDTDRがその保留DTDRに等しくセットされ
る。
【0195】ステップ13では、「ターゲット・ストラ
クチャ・ジオメトリ計算」サブルーチンが呼び出されて
所与の(内部)ストラクチャ・サイズ及びTDTDRか
らターゲットDEセグメント・カウントDESC、ター
ゲット・データ・セグメント・カウントDATASC、
ターゲット境界、ターゲットDEカウント、及びターゲ
ット・データ・エレメント・カウントを計算する。
【0196】フローは図6に示されるようにステップ1
4に続き、拡大が行われるべきかどうかが決定される。
拡大が示される(例えば、ターゲット・ストラクチャが
現ストラクチャ・サイズよりも大きい)場合、ステップ
15において、ターゲットDEセグメント・カウントD
ESCが現DEセグメント・カウントDESCよりも大
きいかどうかを決定することによってDEセグメントが
必要かどうかが決定される。DEセグメントが必要であ
ることが決定される場合、ステップ16において、必要
な新しいDEセグメントのカウント(DESC)が記憶
マネージャからリクエストされる。記憶マネージャは、
ストラクチャ割振りに対する記憶セグメントの割当てを
調整する結合機構機能であり、記憶容量を管理し且つキ
ャッシュを編成するように動作する。必要な新しいDE
セグメントのカウントは、どちらが小さいにしても、タ
ーゲットDEセグメント・カウント及び現DEセグメン
ト・カウントにおける差或いはターゲット・ストラクチ
ャ・サイズ及び現ストラクチャ・サイズにおける差であ
る。拡大及び再配分の両方がある場合、更に多くのDE
セグメントが必要となるであろうが、更に少ないデータ
・セグメントが必要となることもある。このようにし
て、必要なDEセグメントのカウントは、実際には、必
要な記憶セグメントの合計数よりも多いことがある。こ
の状況が生じた場合、余分なデータ・セグメントが追放
される時にその追放されたデータ・セグメントをDEセ
グメントに対してスワップすることによって更なるDE
セグメントが得られる。
【0197】記憶マネージャは、ステップ16において
実際に得られた新しいDEセグメントのカウントを戻
す。ステップ17では、必要なDEセグメントすべてが
得られたかどうかが決定される。DEセグメントすべて
が得られなかった場合(例えば、DEセグメントの数が
リクエストされた数よりも少ない場合)、ステップ18
において、TDTDRが維持されるようにターゲット・
データ・セグメントの数が再計算される。ターゲット・
データ・セグメントのカウントは、実際に使用可能なデ
ータ・セグメントよりも多くのデータ・セグメントを得
ることを回避するために再計算される。従って、記憶装
置が浪費されることはない。
【0198】ステップ14では、拡大が表示され(例え
ば、ターゲット・ストラクチャ・サイズが現ストラクチ
ャ・サイズよりも大きい)且つデータ・セグメントが必
要とされる(例えば、ステップ19に示されるように、
ターゲット・データ・セグメント・カウントが現データ
・セグメント・カウントよりも大きい)場合、ステップ
20において、必要とされる新しいデータ・セグメント
のカウントが記憶マネージャからリクエストされる。必
要とされる新しいデータ・セグメントのカウントはター
ゲット・データ・セグメント及び現データ・セグメント
のカウントにおける差、又はターゲット・ストラクチャ
・サイズ及び現ストラクチャ・サイズにおける差であ
る。拡大及び再配分の両方がある場合、更に多くのデー
タ・セグメントが必要とされるが、必要なDEセグメン
トは更に少なくなる。従って、必要とされるデータ・セ
グメントのカウントは、実際には、必要とされる記憶セ
グメントの合計数よりも多くなる。このケースの場合、
余分なDEセグメントが追放される時、その追放された
DEセグメントをデータ・セグメントに対してスワップ
することによって更なるデータ・セグメントが得られ
る。記憶マネージャは、ステップ20において実際に得
られた新しいデータ・セグメントのカウントを戻す。
【0199】ステップ21では、中間的ストラクチャ・
サイズが、現ストラクチャ・サイズと、得られた新しい
DEセグメントのDESCカウントと、得られた新しい
データ・セグメントのカウントとの和に等しくセットさ
れる。
【0200】ステップ22では、その中間的ストラクチ
ャ・サイズは現データ・ストラクチャ・サイズSSより
も大きいかどうかが決定される。その中間的ストラクチ
ャ・サイズがTSSよりも小さい場合、ステップ23に
おいて、「ターゲット・ストラクチャ・ジオメトリ計
算」サブルーチンが呼び出され、その中間的ストラクチ
ャ・サイズ及びターゲットDTDRに基づいて、新しい
ターゲットDEセグメント・カウントDESC、新しい
ターゲット・データ・セグメント・カウントDATAS
C、新しいターゲット境界、及び新しいターゲット・デ
ータ・エレメント・カウントを計算する。
【0201】ステップ24において、チェックポイント
が中間的ストラクチャ・サイズに等しくセットされ、そ
してストラクチャ・サイズをその中間的ストラクチャ・
サイズに等しくセットし、トータルDEカウントをター
ゲットDEカウントに等しくセットし、トータル・デー
タ・エレメント・カウントをターゲット・データ・エレ
メント・カウントに等しくセットし、現DEセグメント
・カウントをターゲットDEセグメント・カウントに等
しくセットし、現データ・セグメント・カウントをター
ゲット・データ・セグメント・カウントに等しくセット
することによって更新される。
【0202】図7に示されるように、ステップ25にお
いて、キャッシュ・ストラクチャ割振り(ACS)バッ
クグランド・タスクがアクティブであるかどうかが決定
される。それが肯定される場合、インクレメンタル・プ
ロセッサ(リスト・ストラクチャに関連して更に詳しく
後述する)に対するカウントが現在のリクエストに対し
て更新される(例えば、再ターゲット指定される)。A
CSバックグランド・タスクがアクティブでない場合、
フローは直ちにステップ27に進み、そこでは、縮小、
再配分、或いは境界変動があるかどうかが決定される。
縮小、再配分、或いは境界変動のような行うべきバック
グランド・ワークがある場合、ステップ28においてイ
ンクレメンタル・プロセッサがワークのタイム・スライ
スに呼び出される。ステップ28では、ACSバックグ
ランド・タスクがバックグランドにおいて走るようにス
ケジュールされる。それについては、図8及び図9に関
連して更に詳しく後述する。ステップ29において、タ
スク未完了表示が戻される。しかし、ステップ27にお
いて、バックグランド・ワークが必要ないということが
決定される場合、ステップ30において、タスク完了表
示がプログラムに戻される。
【0203】図8及び図9は、キャッシュ・ストラクチ
ャ割振り(ACS)インクレメンタル・プロセッサのオ
ペレーションを示す(リスト・モデルに対するインクレ
メンタル・プロセッサについては後述する)。図8のス
テップ1では、ターゲット・データ・セグメント・カウ
ントDATASCが現データ・セグメント・カウントD
ATASCよりも小さいかどうかが決定される。ターゲ
ット・データ・セグメント・カウントが現データ・セグ
メント・カウントよりも小さい(例えば、データ・セグ
メント数が縮小されようとしている)場合、「n」個の
データ・セグメントが追放されるべきである。この場
合、「n」はターゲット・データ・セグメント・カウン
トと現データ・セグメント・カウントとの差である。
【0204】更に詳しく云えば、ステップ2では、デー
タ・セグメント・アドレスが昇順にソートされる。
「n」個の最も低いアドレスを持ったセグメントがそれ
らのデータ・エレメントから追放されるべきである。メ
インライン処理がこれら追放可能なデータ・エレメント
を再使用することがないようにするためのブロッキング
・アドレスが、[追放される最高のアドレスされたセグ
メント(セグメントn)]+[セグメント・サイズ−
1]に等しくセットされる。結局、このブロッキング・
アドレスよりも小さいアドレスを持ったすべてのデータ
・エレメントが追放されるであろう。ブロッキング・フ
ラッグがセットされ、ブロッキングが有効である時をメ
インライン・コードが検出することを可能にする。
【0205】すべての追放可能なエレメントがフリー・
データ・エレメントのリストから除去され、それらが使
用されないようにする。それらは、データ・エレメント
追放待ち行列に置かれる。ディレクトリ・エントリ・ル
ックアップ・テーブルを形成するために、キャッシュ・
ディレクトリが走査される。そのルックアップ・テーブ
ルにおける各ロケーションは追放されるべきデータ・エ
レメントに対応する。そのロケーションの内容は、その
データ・エレメントを含むディレクトリ・エントリであ
る。そのデータ・エレメントを含むディレクトリ・エン
トリがない場合、データ・エレメントは未使用であり、
そのルックアップ・テーブル・ロケーションはゼロを含
む。
【0206】ステップ3では、縮小がリクエストされた
かどうか(TSSが現ストラクチャ・サイズよりも小さ
いかどうか)が決定される。それが肯定される場合、ス
テップ4において、中間的ストラクチャ・サイズが現ス
トラクチャ・サイズSS−1に等しくセットされる。従
って、TSSに到達するまで、ストラクチャ・サイズは
一時に1セグメントずつ減少してステップ状に縮小を行
う。
【0207】ステップ5では、「ターゲット・ストラク
チャ・ジオメトリ計算」サブルーチンが呼び出され、中
間的ストラクチャ・サイズSS及びターゲットDTDR
に基づいて中間的DEセグメント・カウントDESC、
中間的データ・セグメント・カウントDATASC、及
び中間的境界を計算する。この計算の結果、中間的デー
タ・セグメント・カウント又は中間的DEセグメント・
カウントがそれぞれの現セグメント・カウントよりも小
さいものになるであろう。しかし、これら2つのカウン
トのうちの1つだけが小さくなり、両方が小さくなるこ
とはないであろう。
【0208】ステップ6では、中間的DEセグメント・
カウントDESCが現DEセグメント・カウントDES
Cよりも小さいかどうかが決定される。その中間的DE
セグメント・カウントがその現DEセグメント・カウン
トよりも小さい場合、ステップ8において、DEセグメ
ント追放プロセッサ(例えば、図12に関連して更に詳
しく後述されるサブルーチン)が呼び出される。中間的
データ・セグメント・カウントが現データ・セグメント
・カウントよりも小さい場合、ステップ7において、デ
ータ・セグメント追放プロセッサ(図10及び図11に
関連して更に詳しく後述される)が呼び出される。ステ
ップ9では、DEセグメント又はデータ・セグメントが
完全に追放されたたかどうかが決定される。DEセグメ
ント又はデータ・セグメントが完全には追放されない場
合、ターゲットを得ることができない。ステップ23に
おいて、ストップ・プロセッサが呼び出され、バックグ
ランド・タスクを停止する。得られた最終的なサイズ及
びカウント(SS、TDEC、及びTDAEC)は前の
チェックポイントからのものである。
【0209】ステップ9においてDEセグメント又はデ
ータ・セグメントが完全に追放されたことが決定された
場合、ステップ10において、記憶セグメントは記憶マ
ネージャに対して解放され、チェックポイント・カウン
トが更新される。チェックポイント・カウントは、スト
ラクチャ・サイズを中間的ストラクチャ・サイズに等し
くしトータルDEカウントを中間的DEカウントに等し
くし、トータル・データ・エレメント・カウントを中間
的データ・エレメント・カウントに等しくし、現DEセ
グメント・カウントを中間的DEセグメント・カウント
に等しくし、現データ・セグメント・カウントを中間的
データ・セグメント・カウントに等しくすることによっ
て更新される。更に、ステップ10において、境界移動
プロセッサ(サブルーチン)が呼び出され、境界セグメ
ントにおけるディレクトリ・エントリを追放しそしてデ
ータ・エレメントを作成することによって境界をそれの
新しいロケーションに移動させる。
【0210】しかる後、プロセスはステップ3に戻り、
そのストラクチャが更に縮小されるべきかどうかを決定
する。その境界移動サブルーチンは、データ・セグメン
トを追放するために使用されたルックアップ・テーブル
と同様の境界セグメント・ルックアップ・テーブルを使
用する。このテーブルはストラクチャ作成中に作成さ
れ、そしてメインライン・コードによって維持されなけ
ればならない。その境界移動サブルーチンは、データ・
エレメントのための道を作るためにディレクトリ・エン
トリを追放するか、或いはディレクトリ・エントリのた
めの道を作るためにデータ・エレメントを追放するであ
ろう。ディレクトリ・エントリ及びデータ・エレメント
の追放は、DEセグメント追放ルーチン又はデータ・エ
レメント・セグメント追放ルーチンにおいて生じるもの
と同じである。
【0211】プロセスは、図9に示されるステップ11
に続く。縮小がリクエストされなかった場合、又は更な
る縮小が生ずべき場合(TSSが現ストラクチャ・サイ
ズよりも小さい必要がないことがステップ3において決
定された場合)、ステップ11において、現データ・セ
グメントが再配分のために追放されるべきかどうか(例
えば、ターゲット・データ・セグメントが現データ・セ
グメント・カウントよりも小さいかどうか)が決定され
る。それがそのように決定される場合、ステップ12に
おいて、データ・セグメント追放プロセッサ(後述す
る)が呼び出されてデータ・セグメントを追放する。ス
テップ13において、そのセグメントが成功裏に追放さ
れたかどうかが決定される。そのセグメントが成功裏に
追放されなかった場合、それらターゲットを達成するこ
とができない。ステップ23において、ストップ・プロ
セッサが呼び出され、バックグランド・タスクを停止さ
せる。得られた最終的なサイズ及びカウント(SS、T
DEC、及びTDAEC)は前のチェックポイントから
のものである。セグメントが成功裏に追放された場合、
ステップ14において、その追放されたデータ・セグメ
ントをDEセグメントに対してスワップするための試み
が行われる。ステップ15において、そのスワップが成
功したかどうかが決定される。スワップが成功しない場
合、必要なDEセグメントを得ることができないので、
再配分を継続することはできない。ステップ23におい
て、ストップ・プロセッサが呼び出され、そのバックグ
ランド・タスクを停止させる。得られた最終的なサイズ
及びカウント(SS、TDEC、及びTDAEC)は前
のチェックポイントからのものである。
【0212】スワップが成功したことがステップ15に
おいて決定された場合、ステップ16において、チェッ
クポイント・カウントが更新される。例えば、ストラク
チャ・サイズは変更されないままであるが、トータルD
Eカウントは、そのトータルDEカウントと記憶セグメ
ントにおけるDEのカウントに等しくされる。トータル
・データ・エレメント・カウントは、そのトータル・デ
ータ・エレメント・カウントから記憶セグメントにおけ
るデータ・エレメントのカウントを減じたもの等しくさ
れる。現DEセグメント・カウントは、その現DEセグ
メント・カウントに1を加えたものに等しくされる。現
データ・セグメント・カウントは、その現データ・セグ
メント・カウントがら1を減じたものに等しくされる。
【0213】ステップ16においてチェックポイント・
カウントが更新された後、プロセスはステップ11に戻
り、追放されるべき更なるデータ・セグメントがあるか
どうかを決定する。追放されるべき更なるデータ・セグ
メントがないことがステップ11において決定される場
合(例えば、ターゲット・データ・セグメント・カウン
トが現データ・セグメント・カウントよりも小さくない
場合)、ステップ17において、DEセグメントが追放
されるべきかどうかが決定される。具体的には、ターゲ
ットDEセグメント・カウントが現DEセグメント・カ
ウントよりも小さいかどうかが決定される。ターゲット
DEセグメント・カウントが現DEセグメント・カウン
トよりも小さい場合、ステップ18において、DEセグ
メント追放プロセッサが呼び出される。ステップ19に
おいて、データ・セグメントが成功裏に追放されたかど
うかが決定される。そのセグメントが成功裏に追放され
なかった場合、ターゲット・カウントを得ることはでき
ない。ステップ23において、ストップ・プロセッサが
呼び出され、バックグランド・タスクを停止させる。得
られた最終的なサイズ及びカウント(SS、TDEC、
及びTDAEC)は前のチェックポイントからのもので
ある。
【0214】そのセグメントが成功裏に追放された場
合、プロセスはステップ20に進み、その追放されたD
Eセグメントがデータ・セグメントに対してスワップさ
れる。このオペレーションはいつも成功する。更に、チ
ェックポイント・カウントが更新される。例えば、スト
ラクチャ・サイズは変更されないままであるが、トータ
ルDEカウントは、そのトータルDEカウントから記憶
セグメントにおけるDEのカウントを減じたものに等し
くされる。トータル・データ・エレメント・カウント
は、そのトータル・データ・エレメント・カウントと記
憶セグメントにおけるデータ・エレメントのカウントの
和に等しくされる。現DEセグメント・カウントは、そ
の現DEセグメント・カウントから1を減じたものに等
しくトされる。現データ・セグメント・カウントは、そ
のデータ・セグメント・カウントに1を加えたものに等
しくされる。
【0215】しかる後、プロセスはステップ17に戻
り、更なるDEセグメントが追放されるべきかどうかを
決定する。追放すべき更なるDEセグメントがない場合
(例えば、ターゲットDEセグメント・カウントが現D
Eセグメント・カウントよりも小さくないことが決定さ
れる場合)、ステップ21において、境界が移動される
べきか(例えば、ターゲット境界が現境界に等しくない
ので)どうかが決定される。その境界が移動されるべき
場合、ステップ22において、境界移動プロセッサが呼
び出される。境界が移動されるべきでない(例えば、タ
ーゲット境界が現境界に等しい)ことがステップ21に
おいて決定される場合、そのプロセスは完了する。
【0216】図10及び図11は簡単に上述したデータ
・エレメント・セグメント追放オペレーションを示す。
図10のステップ1では、最低のアドレスされたデータ
・セグメントが追放されるように選択される。そのフレ
ームにおける第1データのルックアップ・テーブルにお
けるロケーションをアドレスするようにポインタが設定
される。セグメント追放されたフラッグが完了状態にリ
セットされ、プロセスはステップ2に続く。
【0217】ステップ2において、ディレクトリ・エン
トリ(DE)アドレスがそのデータ・エレメントに対し
てルックアップ・テーブルからフェッチされる。ステッ
プ3において、そのDEが有効であるかどうかが決定さ
れる。そのアドレスがゼロであるか又はディレクトリ・
エントリが有効でない(アクチブであるか)ことがステ
ップ3において決定される場合、このデータ・エレメン
トは既に追放されたものとして決定される。そのデータ
・エレメントが追放されている場合、プロセスはステッ
プ10において継続し、次のデータ・エレメントを得
る。
【0218】ステップ4では、ディレクトリ・エントリ
がこのデータ・エレメントを含んでいるかどうかが決定
される。ディレクトリ・エントリがこのデータ・エレメ
ントを含んでいない場合、プロセスはステップ10に継
続し、追放すべき次のデータ・エレメントを得る。
【0219】ステップ5において、そのデータ・エレメ
ントが変更されるかどうかが決定される。そのデータ・
エレメントが変更される場合、このデータ・エレメント
の内容は新しいロケーションにコピーされなければなら
ない。ステップ6において、何らかのフリー・データ・
エレメントがあるかどうか(フリー・データ・エレメン
ト・リストが空でない場合)が決定される。それが肯定
される場合、新しいデータ・エレメントがフリー・デー
タ・エレメント・リストから得られ、そしてそのデータ
はそれのロケーションにコピーされる。新しいデータ・
エレメントはディレクトリ・エントリに付加され、現デ
ータ・エレメントは追放待ち行列に入れられる。
【0220】ステップ6において、フリー・データ・エ
レメントが存在しないことが決定される場合、プロセス
はステップ7に続き、セグメント追放のフラッグが未完
了をマークされる。そのデータ・エレメントがフリーで
あるかどうかに関係なく、ステップ7及び8に続いてス
テップ10が生じ、すべてのデータ・エレメントが処理
されてしまったかどうか及び追放すべき次のデータ・エ
レメントを得るように進行すべきかどうかが決定され
る。データ・エレメントが変更されないことがステップ
5において決定される場合、このデータ・エレメントは
ステップ9において再利用可能である。その再利用プロ
セスは、追放待ち行列上にこのデータ・エレメントを置
くであろう。
【0221】図11に関連して、そのセグメントにおけ
るすべてのデータ・エレメントが処理されたことがステ
ップ10において決定される場合、プロセスは単に戻る
だけである。その決定がなされない場合、ステップ11
において、ルックアップ・テーブル・ポインタがそのテ
ーブルにおける次のデータ・エレメント・ロケーション
にバンプされ、プロセスはステップ2に戻る。すべての
データ・エレメントが処理されてしまった時、プロセス
は完了する。
【0222】図12は、簡単に前述したディレクトリ・
エントリ(DE)追放オペレーションを示す。ステップ
1において、記憶マネージャの待ち行列における第1D
Eセグメントが追放されるべく選択され、ブロッキング
範囲が、そのDEセグメントの開始及び終了に等しくセ
ットされる。そのブロッキング範囲は、メインライン処
理がこれらの追放可能なディレクトリ・エントリを再使
用しないようにするために使用される。結局、この範囲
内のアドレスを持ったすべてのディレクトリ・エントリ
が追放されるであろう。ステップ1において決定される
ように、ブロッキングが有効である時をメインライン・
コードが検出することを可能にするために、ブロッキン
グ・ディレクトリ・フラッグがセットされる。すべての
追放可能なディレクトリ・エントリは、それらが使用さ
れないようにするためにフリーDEのリストから除去さ
れなければならない。それらはDE追放待ち行列上に置
かれる。そのフレームにおける第1DEのアドレスに対
するポインタがセットされる。ステップ1において、セ
グメント追放済みフラッグが完了状態にリセットされ
る。
【0223】ステップ2では、このDEが有効であるか
どうかが決定される。このDEが有効でない(例えば、
アクティブでない)場合、このデータ・エレメントは既
に追放されていなければならず、プロセスはステップ8
に継続して処理すべき次のディレクトリ・エントリを得
る。そのDEが有効である場合、プロセスはステップ3
に継続し、DEがエンプティである(例えば、データを
含んでいない)かどうか或いはそのデータが未変更であ
るかどうかを決定する。DEがエンプティであるか或い
はデータが未変更である場合、このエレメントはステッ
プ7において再使用可能である。ステップ7における再
使用プロセスは、このディレクトリ・エントリを追放待
ち行列上に置くであろう。しかる後、プロセスはステッ
プ8に継続し、追放すべき次のDEを得る。
【0224】ステップ3において、DEがエンプティで
ないこと又はデータが変更されないことが決定される場
合、ディレクトリ・エントリは新しいDEにコピーされ
なければならない。具体的には、プロセスはステップ4
に継続し、何らかのフリー・ディレクトリ・エントリが
存在するかどうかを決定する。フリーDEリストがエン
プティでない(フリーDEがある)ことがステップ4に
おいて決定される場合、ステップ6において、DEがそ
のリストから得られ、古いDEがそれにコピーされる。
このディレクトリ・エントリが存在する待ち行列は、す
べて、順方向及び逆方向ポインタが新しいエントリを指
示するように更新されなければならない。その新しいデ
ィレクトリ・エントリは追放待ち行列上に置かれる。
【0225】フリーDEが存在しないことがステップ4
において決定される場合、プロセスはステップ5に継続
し、セグメント追放済みフラッグが未完了をマークされ
る。DEがフリーであるかどうかに関係なく、ステップ
5及びステップ6はステップ8に継続し、すべてのディ
レクトリ・エントリが処理されてしまったかどうかが決
定される。そのセグメントにおけるすべてのディレクト
リ・エントリが処理された場合、プロセスは単に戻るだ
けである。すべてのディレクトリ・エントリが処理され
たのではない場合、ステップ9において、DEポインタ
はそのセグメントにおける次のDEにバンプされ、プロ
セスはステップ2に戻る。このようにして、すべてのD
Eが処理されてしまった時、プロセスは完了する。
【0226】図13及び図14は境界セグメント再編成
を示し、そこでは、3072個のセグメントのTSSで
もって最初に割振りされたリストが63個のセグメント
によって4080個の新しいサイズに拡大される時、2
つの図示した境界セグメントのジオメトリが変化する。
新しい境界フレーム・ジオメトリは、ストラクチャが最
初に割振りされた時に設定された1:4のエントリ対エ
レメントの比を維持することを必要とする。
【0227】図13及び図14は、それらを一緒にした
場合、リスト・ストラクチャが次のような3つのタイプ
のセグメントを含むことを示す。即ち、(1)固定オブ
ジェクトと関連したフル・セグメント(これらセグメン
トは、リスト・エントリにとって望ましい再配分がLE
IDテーブルを拡大させない(その場合、固定オブジェ
クト・セグメントの数は1つ又は複数個のフル・セグメ
ントだけ増加する)場合に拡大、縮小、又は再配分の活
動に参加しない)、(2)LEC(リスト・エントリ制
御ブロック)、ノード及LEL(リスト・エレメント)
と関連したフル・セグメント、及び(3)境界セグメン
ト。境界セグメントを持たないリスト・ストラクチャが
想像可能である。そのようなリスト・ストラクチャは、
すべてのLECが或る数のフル・セグメントにきれいに
適合するということ、すべてのノードが或る数のフル・
セグメントにきれいに適合するということ、及びすべて
のLELが或る数のフル・セグメントにきれいに適合す
るということにおいて正常ではないであろう。そのよう
なストラクチャが単一のセグメントによって拡大される
べき場合、その新しいセグメントがLEC、ノード、又
はLELに対して全面的に使用された場合にはLEC対
LELの既存の比を維持することが不可能であるので、
境界セグメントが必然的に現れるであろう。境界セグメ
ントの役割は、既存のLEC対LELの比をそのままに
しておくために、種々のタイプのオブジェクトが同じセ
グメントを占めるようにすることである。
【0228】リスト・モデルに対するロジック及びプロ
セッサを説明する前に、「予約セグメント」と呼ばれる
本発明のもう1つの特徴を説明することにする。「リス
ト・エントリ・制御ブロック」(LEC)は、構成され
た「リスト・エントリ制御」と、付属リスト・エントリ
(ストラクチャがそれらを有する場合)と、データ・リ
スト・エントリ(ストラクチャがそれらを有する場合)
を構成するリスト・エレメントに対するポインタのアレ
ーと、リスト上の右及び左へのリスト・エントリ制御ブ
ロックに対するポインタとを含む制御記憶装置における
オブジェクトである。
【0229】「リスト・エレメント」(LEL)は、デ
ータを含み、256、512、1K、2K、又は4Kバ
イトのサイズとなり得る設計済みオブジェクトである。
LEC対LELの比は、ALST(リスト・ストラクチ
ャ割振り)コマンドのリクエスト・オペランドであるタ
ーゲット・エントリ対エレメントの比によって決定され
る。リスト・ストラクチャがデータ・リスト・エントリ
を有する時、所与のリスト・エントリは0から256個
までのリスト・エントリを有することができる(それら
リスト・エントリは、ALSTコマンドの最大データ・
リスト・エントリ・サイズ(MDLES)リクエスト・
オペランド、及びリスト・エントリ書込み(WLE)コ
マンド及びリスト・エントリ書込み及び移動(WML
E)コマンドのデータ・リスト・エントリ・サイズ(D
LES)リクエスト・オペランドによって決定され
る)。MDLESは、どれか1つのLECに割当て可能
なLELの数を与える。DLESは、リスト・エントリ
が作成され又は修正される時に特定のリスト・エントリ
に割り当てられるLELの数を与える。WLE及びWM
LEコマンドはリスト・エントリを作成及び修正するた
めに使用される。
【0230】リスト・エントリと関連するリスト・エレ
メントはデータ・リスト・エントリを構成する。
【0231】ストラクチャが最初に割り当てられる時、
1つの記憶セグメントは直ちに得られるが、ターゲット
・ストラクチャ・サイズを得るために必要な残りのセグ
メントは、すべて、単に「予約」されるだけであり、
「予約セグメント」と呼ばれる。即ち、記憶マネージャ
は問題のSIDにとって必要なセグメントをすべて除去
するが、リスト・ストラクチャ・デスクリプタに対して
必要な第1セグメントだけを供給する。
【0232】しかる後、それらセグメントは、それらが
リスト・ヘッダ、ロック・テーブル・エントリ、リスト
・エントリ、リスト・エレメント等を持ったストラクチ
ャを形成する必要がある時、一時に1つずつ記憶マネー
ジャから得られる。同様に、既に存在するストラクチャ
が拡大される時、必要なセグメントが予約され、しかる
後、一時に1つのセグメントを得るためにリクエストが
行われる。一時に1つのセグメントを生じさせるため
に、記憶マネージャは、比較的大きい時間期間上に少量
ずつそれの活動を分布させることができる。プロセッサ
は、通常のシステムにおけるように、多数のセグメント
に関連した記憶リクエストを満足させることに拘束され
るため、フォアグランド・オペレーションは待機のため
には行われない。
【0233】セグメントがストラクチャから除去される
こと又は異なるタイプのセグメントと交換されることを
必要とする縮小、再配分、又は再配分を伴う拡大のリク
エストが到達する時、いくつかのセグメントは使用され
てないかもしれない。これが生じる時、予約セグメント
を操作することによってTSS又はTETELRにでき
るだけ近接する試みが行われる。セグメントの追放は、
生じるにしても、予約セグメントが処理された後しか生
じない。
【0234】キーを指定するALSTリクエスト・オペ
ランドによってリスト・ストラクチャが割振りされる
時、サーチ・ツリーはリスト・セットにおける各リスト
を与えられる。リスト・エントリが作成される時、その
リスト・エントリと関連したリスト・エントリ制御ブロ
ックにキーが書き込まれる(そのキーはWLE及びWM
LEコマンドのリクエスト・オペランドである)。キー
が存在するようになる時、それらを含むリスト・エント
リ制御ブロックに対するポインタは、サーチ・ツリー・
ノードと呼ばれるオブジェクトに書き込まれる。各ノー
ドは、キーを含むリスト・エントリ制御ブロックに対す
るポインタのアレーを有する。又、各ノードは左側のノ
ード及び右側のノードに対するポインタも有する。所与
のリストに対するサーチ・ツリーを構成するノードは、
「n」個の異なるキーがそのリストと関連したリスト・
エントリにおいて見つけられる時、所与のキーがlo
g"n"回も位置指定されるようにこれらポインタによっ
て連結される(但し、log"n"は2をベースとしたn
の対数である)。
【0235】サーチ・ツリー・ノードにとって必要なス
ペースはリスト・エントリ制御ブロックにとって必要な
スペースに直接に比例する。従って、ストラクチャ拡大
としては、両タイプのオブジェクトに対して、更に多く
のスペースが必要である。逆に、ストラクチャ縮小とし
ては、両タイプのオブジェクトと関連したスペースはそ
のストラクチャから除去される。
【0236】リスト・モデルの拡大/縮小/再配分(e
/c/r)設計に説明を転ずると、そのような設計は、
第1レベルのフォアグランド再配分プロセッサ、第2レ
ベルのフォアグランド再配分プロセッサ、及びインクレ
メンタル・プロセッサを含む。拡大/縮小/再配分オペ
レーションはいつもALSTコマンドによって開始され
る。しかし、少量のフォアグランド処理が完了すると、
それ以上のイニシアティブをプログラムによって与えら
れることなく、活動のバルクがバックグランドにおいて
遂行可能になる。アクティブなフォアグランド・オペレ
ーションがない時、作業のわずかなインクレメントが行
われる。拡大/縮小/再配分作業のインクレメントは、
プログラムがALSTコマンドを発生する場合にも遂行
されるであろう。従って、インクレメンタル・プロセッ
サは、それがフォアグランドから又はバックグランドか
ら呼出し可能であるので、正確にはバックグランド・プ
ロセッサではない。
【0237】第1レベルのフォアグランド再配分プロセ
ッサは、ALSTコマンドのリクエスト・オペランドを
調べて、どのようなタイプのオペレーションがリクエス
トされているか及びそのオペレーションが既に実際に進
行中であるかどうかを正確に決定する。そのリクエスト
されたオペレーションが既に進行中である場合、必要な
ことはインクレメンタル・プロセッサが呼び出されるこ
とだけである。これはスポット上にタイム・スライスを
持ったオペレーションを与える。現在アクティブなオペ
レーションがない場合、又は拡大、縮小、又は再配分の
パラメータが変化した(例えば、新しいTSS又はTE
TELRに)場合、第2レベルのフォアグランド・プロ
セッサの1つが呼び出されて、拡大、縮小、又は再配分
活動を開始させ又は再指示しなければならない。第1レ
ベルのフォアグランド・プロセッサは、その作業のバル
クを適当なエージェントに指示するディスパッチャと殆
ど同じである。第1レベルのフォアグランド・プロセッ
サの更なる責任は、新しいTSS又は新しいTETEL
Rリクエスト・オペランドを含むALSTコマンドが到
達する場合、進行中の如何なる拡大、縮小又は再配分活
動も閉め出すことである。これは、第2レベルのフォア
グランド・プロセッサが最も最近のチェックポイントに
よって捕捉された静止位置から開始することを可能にす
る。
【0238】第2レベルのフォアグランド拡大/縮小/
再配分プロセッサは、リスト・エレメント(LEL)を
含むストラクチャの拡大のためのプロセッサ、付属リス
ト・エントリだけを含むストラクチャの拡大のためのプ
ロセッサ、リスト・エレメント(LEL)を含むストラ
クチャの縮小のためのプロセッサ、付属リスト・エント
リだけを含むストラクチャの縮小のためのプロセッサ、
リスト・エレメント(LEL)を含むストラクチャの結
合した縮小及び再配分のためのプロセッサ、リスト・エ
レメント(LEL)を含むストラクチャの単なる再配分
のためのプロセッサ、及び進行している拡大/縮小/再
配分オペレーションを停止させるためのプロセッサを含
む。
【0239】LELを含むストラクチャの拡大のための
プロセッサでは、TSSを使用してターゲット・ストラ
クチャ・ジオメトリが計算される。TSSを得るために
必要な記憶セグメントはリクエストされる。それらリク
エストされたセグメントすべてが得られる場合、中間的
TSSがそのTSSに等しくセットされる。それらセグ
メントが得られない場合、中間的TSSは、SSと「得
られたセグメントの数にページ/セグメントを乗じたも
の」との和にセットされる。SSは4Kページに換算し
てある。従って、そのストラクチャが1セグメントだけ
拡大される場合、SSは「セグメント・サイズを4Kで
除したもの」だけ増加されなければならず、従って、S
Sは「セグメントの数に1つのセグメントにおける4K
ページの数を乗じたもの」だけ増加される。
【0240】TSSを得るには不十分な記憶装置しか使
用可能でない時、又は制御セグメント及びデータ・セグ
メント正しい混合が得られない場合、拡大オペレーショ
ンに対するイニシアティブは、一旦境界セグメント再編
成が完了すると放棄される。その後、拡大オペレーショ
ンが再開されるべき場合(即ち、SSが中間的TSSか
らそのTSSまで増加される)、拡大コマンドがフォア
グランドから再駆動されなければならない。
【0241】境界セグメント再編成が必要な場合、イン
クレメンタル・プロセッサ(更に詳しく後述する)は、
その境界セグメント再編成を遂行するようにバックグラ
ンドにおいてスケジュールされる。
【0242】TSSが得られた場合、MLSEC、ML
SELC、及びSSオブジェクトは、TSSリクエスト
・オペランドによって指定されたストラクチャ・サイズ
を反映するように更新される。TSSを得ることができ
なかった場合、MLSEC、MLSELC、及びSSオ
ブジェクトは、実際に生じたサイズの増加を反映するよ
うに更新される。境界セグメントのターゲット・ジオメ
トリを得ることはいくつかのオペレーションを取り得る
が、境界セグメントにおけるスペースは、ターゲット・
ジオメトリが既に得られたものとして扱われる。例え
ば、LELのために空けなければならないLEC占有の
スペースは、LELが使用可能な他のスペースがない場
合、フォアグランド・オペレーションにおいてオン・ザ
・フライで移動する。
【0243】LELを含むストラクチャの縮小のための
プロセッサでは、TSSを使用してターゲット・ストラ
クチャ・ジオメトリが計算される。TETELRを満足
させるに必要なセグメントの混合が保持される間にTS
Sを得るために、現在使用中でない予約セグメントが戻
される。
【0244】1つ又は複数個の予約セグメントが戻され
た場合、予約セグメントの戻りから生じたSSに対し
て、ストラクチャ・ジオメトリが計算される。この計算
は、境界セグメントのジオメトリを決定し、MLSE
C、MLSELC、及びSSオブジェクトは予約セグメ
ントを戻すこと及び境界セグメントを再編成することに
よって得られたストラクチャ・サイズを反映するように
更新される。これは、たとえこの再編成が下記のように
行われなかったとしても行われる。
【0245】予約セグメントだけを戻すことによってT
SSが得られた場合、及び境界セグメント再編成が必要
とされる場合、インクレメンタル・プロセッサは境界セ
グメント再編成を行うようにバックグランドにおいてス
ケジュールされる。境界セグメントのターゲット・ジオ
メトリを得ることは時間をとることがある(例えば、数
オペレーションをとることがある)が、境界セグメント
におけるスペースは、そのターゲット・ジオメトリが既
に得られたものとして扱われる。例えば、LELのため
に空けられるべきLEC占有のスペースは、LELが使
用可能な他のスペースがない場合、フォアグランド・オ
ペレーションによってオン・ザ・フライで移動する。
【0246】予約セグメントを戻すことによってTSS
が得られなかった場合、インクレメンタル・プロセッサ
はフル・セグメント追放及び境界セグメント再編成を行
うようにバックグランドにおいてスケジュールされる。
MLSEC、MLSELC、及びSSは、1つ又は複数
個の予約セグメントが戻されなかった場合には変更され
ていない。インクレメンタル・プロセッサがフル・セグ
メントを追放した時、それはこれらセグメントを更新
し、ストラクチャ・ジオメトリを再計算し、そしてTS
Sが未だ得られなかった場合に次のフル・セグメントの
追放を進めるであろう。インクレメンタル・プロセッサ
は、TSSが得られてしまうまで、又は追放されるべき
セグメントから移動しなければならないLEC、LE
L、及びノードに対するそれ以上のスペースがなくなる
まで、縮小オペレーションに対するイニシアティブを維
持するであろう。境界セグメント再編成は、各フル・セ
グメントの追放後直ちに生じる。
【0247】再配分のためのプロセッサは、TETEL
Rを使用して、ターゲット・ストラクチャ・ジオメトリ
を計算する。TETELRを得るために、第1予約セグ
メントが交換される。(例えば、新しい比率がLELよ
りもLECに望ましいものである場合、LELセグメン
トがLEC及びノード・セグメントと交換される。新し
い比率がLECよりもLELに望ましいものである場
合、LEC及びノード・セグメントがLELセグメント
と交換される)。
【0248】2つ又はそれ以上の予約セグメントが交換
される場合、それら予約セグメントの交換から生じた混
合に対してストラクチャ・ジオメトリが計算される。こ
の計算は、境界セグメントのジオメトリを決定する。更
に、既存のセグメントの混合において使用可能なLEC
及びLELの数を反映するように、MLSEC及びML
SELCオブジェクトが更新される。
【0249】予約セグメントを交換することによってT
ETELRが得られる場合、境界セグメント再編成が必
要であるかどうかが決定される。それが必要である場
合、インクレメンタル・プロセッサは、境界セグメント
再編成を行うようにバックグランドにおいてスケジュー
ルされる。境界セグメントのターゲット・ジオメトリを
得ることは時間を取る(例えば、数オペレーションを取
る)ことがあるが、境界セグメントにおけるスペース
は、ターゲット・ジオメトリが既に得られたかのように
扱われる。例えば、LELのために空けられるべきLE
C占有のスペースは、LELが使用可能な他のスペース
がない場合、フォアグランド・オペレーションによって
オン・ザ・フライで移動する。
【0250】予約セグメントの交換によってTETEL
Rが得られなかった場合、インクレメンタル・プロセッ
サは、フル・セグメントの追放を行うようにバックグラ
ンドにおいてスケジュールされる。MLSEC、MLS
ELC、及びSSは、予約セグメントが交換されなかっ
た場合には同じままである。しかる後、インクレメンタ
ル・プロセッサがフル・セグメントを追放しそして反対
のタイプのセグメントに対してそれを交換した時、それ
は、これらオブジェクトを更新し、ストラクチャ・ジオ
メトリを再計算し、TETELRが未だ得られていない
場合には次のフル・セグメント追放を進める。インクレ
メンタル・プロセッサは、TETELRが得られてしま
うまで、又は追放されるべきセグメントから移動しなけ
ればならないLEC、LEL、及びノードに対するそれ
以上のスペースがなくなるまで、再配分オペレーション
に対するイニシアティブを維持するであろう。
【0251】再配分を伴う拡大のためのプロセッサで
は、TSS及びTETELRを使用してターゲット・ス
トラクチャ・ジオメトリが計算される。TSS及びTE
TELRを得ることは、新しい記憶セグメントをリクエ
ストすることによって、及び予約セグメントを交換する
ことによって試みられる。(即ち、新しい比率がLEL
よりもLECに望ましいものである場合、LELセグメ
ントがLECセグメント及びノード・セグメントと交換
される。新しい比率がLECよりもLELに望ましいも
のである場合、LECセグメント及びノード・セグメン
トがLELセグメントと交換される)。
【0252】すべてのリクエストされたセグメントが得
られた場合、中間的TSSはそのTSSに等しくセット
される。すべてのリクエストされたセグメントが得られ
なかった場合、中間的TSSはSSと「得られたセグメ
ントの数をページ/セグメントに乗じたもの」との和に
等しくセットされる。
【0253】TSSを得るには不十分な記憶装置しか使
用可能でない時、又は制御及びデータ・セグメントの正
しい混合が得られない場合、それにも関わらず、TET
ELRを得るための試みが行われる。即ち、一旦、得る
ことのできたすべての記憶装置がそのストラクチャに加
えられてしまうと、再配分オペレーションが開始され、
そのストラクチャのエレメント(LEC、ノード、及び
LEL)をTETELRリクエスト・オペランドにより
指定された比率にさせる。その再配分オペレーションに
対するイニシアティブは、TETELRが得られるま
で、又は不十分なスペースの状態が遭遇するまで、又は
ETF或いはELTFがその再配分を終了させるまで放
棄されない。その後、拡大オペレーションが再開される
べき場合、(即ち、中間的TSSから、最初に指定され
たTSSまで、SSが増加するようにそれが再開される
べき場合)、コマンドはフォアグランドから再駆動され
なければならない。
【0254】境界セグメント再編成が必要な場合、又は
更なるセグメントの交換を可能にするためにフル・セグ
メントの追放が必要な場合、インクレメンタル・プロセ
ッサは、境界セグメントの再編成又はフル・セグメント
の追放及び交換を行うようにバックグランドにおいてス
ケジュールされる。
【0255】TSS及びTETELRが得られる場合、
TSSにおけるストラクチャ・サイズ及びTETELR
におけるLEC対LELの比を反映するように、MLS
EC、MLSELC、及びSSが更新される。しかる
後、RC=0が戻される。
【0256】TSS及びTETELRが得られなかった
場合、SSは中間的TSSにおけるストラクチャ・サイ
ズを反映するように更新され、MLSEC及びMLSE
LCは、既存のセグメントの混合における使用可能なL
EC及びLELの数を反映するように更新される。更な
るチェックポイントがインクレメンタル・プロセッサ追
放及び交換セグメントとして生じるであろう。セグメン
トが追放されそして反対のタイプのセグメント(例え
ば、LELに対するLEC)と交換した時、インクレメ
ンタル・プロセッサはSS、MLSEC、及びMLSE
LCオブジェクトを更新し、ストラクチャ・ジオメトリ
を再計算し、そしてTETELRが未だ得られていない
場合には次のフル・セグメント追放を進めるであろう。
インクレメンタル・プロセッサは、TETELRが得ら
れるまで、又は追放されるべきセグメントから移動しな
ければならないLEC、LEL、及びノードに対して更
なるスペースがなくなるまでこのオペレーションに対す
るイニシアティブを維持するであろう。
【0257】再配分は、LEC対LELの比の変化に関
連する。現在の比が5対1(即ち、5つのLECセグメ
ント対1つのLELセグメント)であり且つ1対5とい
う新しい比が望ましいと仮定すると、その新しい比はL
ECの1つのセグメント及びLELの5つのセグメント
を必要とする。この新しい比率を得るために、LECの
4つのセグメントが追放され、LELで満たされるべき
データ・セグメントと交換されなければならない。これ
は、LELの所望の5つのセグメントを与え、LECの
所望の1つのセグメントを残す。ノード・セグメントに
関連した更に複雑なシナリオが存在する。
【0258】境界セグメントのターゲット・ジオメトリ
を得ることはいくつかのオペレーションを取り得るが、
各フル・セグメント追放に続いて、境界セグメントにお
けるスペースは、あたかもターゲット境界セグメント・
ジオメトリが既に得られているかのように扱われる。例
えば、LELのために空けなければならないLEC占有
スペースは、LELが使用可能な他のスペースがない場
合にフォアグランドによってオン・ザ・フライで移動す
る。再配分を伴う縮小のためのプロセッサでは、ターゲ
ット・ストラクチャ・ジオメトリは、TSS及びTET
ELRを使用して計算される。使用されてないどのよう
な予約セグメントでも戻すことによって、及び予約セグ
メントを交換することによって、TSS及びTETEL
Rを得ることが試みられる(即ち、新しい比率がLEL
よりもLECに望ましいものである場合、LELセグメ
ントがLEC及びノード・セグメントと交換される。新
しい比率がLECよりもLELに望ましいものである場
合、LEC及びノード・セグメントがLELセグメント
と交換される)。
【0259】1つ又は複数個の予約セグメントが戻され
る場合、或いは2つ又はそれ以上の予約セグメントが交
換される場合、予約セグメントの戻り又は交換に起因す
るSSに対して、ストラクチャ・ジオメトリが計算され
る。この計算は境界セグメントのジオメトリを決定す
る。MLSEC、MLSELC、及びSSオブジェクト
は、予約セグメントを戻すこと又は交換することによっ
て得られたストラクチャ・サイズを反映するように更新
される。
【0260】TSS及びTETELRが予約セグメント
だけを戻すこと又は交換することによって得られた場
合、及び境界セグメント再編成が必要な場合、インクレ
メンタル・プロセッサは、境界セグメント再編成を行う
ようにバックグランドにおいてスケジュールされる。境
界セグメントのターゲット・ジオメトリを得ることは時
間(例えば、数オペレーション)を取ることがあるが、
境界セグメントにおけるスペースは、あたかもターゲッ
ト・ジオメトリが既に得られたかのように扱われる。例
えば、LELのために空けられるべきLEC占有スペー
スは、LELが使用可能な他のスペースがない場合、フ
ォアグランドによってオン・ザ・フライで移動する。
【0261】予約セグメントを操作してもTSS及びT
ETELRを得ることができなかった場合、インクレメ
ンタル・プロセッサは、フル・セグメント追放及び境界
セグメント再編成を行うようにバックグランドにおいて
スケジュールされる。MLSEC、MLSELC、及び
SSは、1つ又は複数個の予約セグメントが戻されなか
った場合には変更されない。しかる後、インクレメンタ
ル・プロセッサがフル・セグメントを追放した時、それ
はこれらオブジェクトを追放し、ストラクチャ・ジオメ
トリを再計算し、そしてTSSが未だ得られていない場
合、次のフル・セグメント追放を進めるであろう。イン
クレメンタル・プロセッサは、TSSが得られてしまう
まで、又は追放されるべきセグメントから移動しなけれ
ばならないLEC、LEL、及びノードに対する更なる
スペースがなくなるまで、再配分を伴う縮小に対してイ
ニシアティブを維持するであろう。
【0262】付属だけを伴う拡大のためのプロセッサに
対して、TSSを使用してターゲット・ストラクチャ・
ジオメトリが計算される(LELは存在しないが、ノー
ドが存在する場合には、境界セグメント・ジオメトリが
ストラクチャ・サイズ変更のように変わるであろう)。
しかる後、TSSを得るに必要な記憶セグメントがリク
エストされる。リクエストされたすべてのセグメントが
得られた場合(即ち、TSSが得られた場合)、アクシ
ョンは必要ない。それが得られなかった場合、中間的T
SSがSSと「得られたセグメントの数にページ/セグ
メントを乗じたもの」との和に等しくセットされる。し
かる後、その中間的TSSを使用してターゲット・スト
ラクチャ・ジオメトリが再計算される。
【0263】TSSを得るには不十分な記憶装置しか使
用可能でない時、境界セグメント再編成が完了すると、
拡大オペレーションに対するイニシアティブは放棄され
る。その後、拡大オペレーションが再開されるべき場合
(即ち、SSが中間的TSSからそのTSSまで増加す
るよう再開されるべき場合)、拡大コマンドがフォアグ
ランドから再駆動されなければならない。境界セグメン
ト再編成が必要な場合、インクレメンタル・プロセッサ
は境界セグメント再編成を行うようバックグランドにお
いてスケジュールされる。
【0264】TSSが得られれた場合、MLSEC及び
SSオブジェクトは、TSSリクエスト・オペランドに
よって指定されたストラクチャ・サイズを反映するよう
に更新される。TSSが得られた場合、SS及びMLS
ECオブジェクトは、中間的TSSにおけるストラクチ
ャ・サイズを反映するように更新される。何れの場合で
も、一旦追加の記憶装置が記憶マネージャから得られて
しまうと、SSCIビットはリセットされ、RC=0が
戻される。
【0265】境界セグメントのターゲット・ジオメトリ
を得ることはいくつかのオペレーションを取ることがあ
るが、境界セグメントにおけるスペースは、あたかもタ
ーゲット・ジオメトリが既に得られているかのように扱
われる。例えば、ノードのために空けられるべきLEC
占有のスペースは、ノードが使用し得る他のスペースが
ない場合、フォアグランド・オペレーションによってオ
ン・ザ・フライで移動する。
【0266】付属だけを伴う縮小のためのプロセッサで
は、TSSを使用してターゲット・ストラクチャ・ジオ
メトリが計算される。現在使用中でない予約セグメント
がTSSを得るために戻される。1つ又は複数個の予約
セグメントが戻された場合、その予約セグメントの戻り
に起因するSSに対するストラクチャ・ジオメトリが計
算される。この計算は、境界セグメントのジオメトリを
決定する。LELは存在しない。しかし、ノードが存在
しない場合、ストラクチャ・サイズが変化する時に境界
セグメントのジオメトリも変化するであろう。しかる
後、MLSEC及びSSは、予約セグメントを戻すこと
及び境界セグメントを再編成することによって得られた
ストラクチャ・サイズを反映するように更新される(た
とえ、この再編成が、必要に応じて、後述のように起こ
らなかったとしても)。
【0267】予約セグメントだけを戻すことによってT
SSが得られた場合、及び境界セグメント再編成が必要
である場合、インクレメンタル・プロセッサは、境界セ
グメント再編成を行うようにバックグランドにおいてス
ケジュールされる。境界セグメントのターゲット・ジオ
メトリを得ることは時間(即ち、いくつかのオペレーシ
ョン)を取ることがあるが、境界セグメントにおけるス
ペースは、あたかもターゲット・ジオメトリが既に得ら
れているかのように扱われる。例えば、ノードのために
空けられるべきLEC占有のスペースは、ノードが使用
し得る他のスペースがない場合、フォアグランド・オペ
レーションによってオン・ザ・フライで移動する。
【0268】予約セグメントを戻すことによってTSS
が得られなかった場合、インクレメンタル・プロセッサ
は、フル・セグメント追放及び境界セグメント再編成を
行うようにバックグランドにおいてスケジュールされ
る。1つ又は複数個の予約セグメントが戻されなかった
場合、MLSEC及びSSは変更されない。しかる後、
インクレメンタル・プロセッサがフル・セグメントを追
放した時、それはこれらオブジェクトを更新し、ストラ
クチャ・ジオメトリを再計算し、そしてTSSが未だ得
られていない場合に次のフル・セグメント追放を進める
であろう。インクレメンタル・プロセッサは、TSSが
得られてしまうまで、又は追放されるべきセグメントか
ら移動しなければならないLEC及びノードに対する更
なるスペースがなくなるまで、縮小オペレーションに対
するイニシアティブを維持する。境界セグメント再編成
は、各フル・セグメントの追放の直後に生じる。
【0269】プロセッサが進行中の再配分を停止させる
ためには、SS、MLSEC、及びMLSELCオブジ
ェクトは整合しており、それが最後の(即ち、最も最近
の)チェックポイントに存在するかのようにストラクチ
ャのサイズ及びジオメトリを反映する。停止は、そのス
トラクチャがチェックポイント指定されたSS、MLS
EC、及びMLSELCと整合した状態で残されること
を必要とする。フル・セグメントLEC追放が進行中で
ある場合、その追放は停止され、LECセグメントはア
クティブ・デューティに戻される(即ち、使用のために
利用可能/自由である)。
【0270】フル・セグメント・ノード追放が進行中で
ある場合、追放は停止され、ノード・セグメントはアク
ティブ・デューティに戻される。フル・セグメントLE
L追放が進行中である場合、その追放は停止され、追放
されたLELは追放済み待ち行列からLELフリー・リ
ストに戻される。これは、LELセグメントをアクティ
ブ・デューティに戻すという効果を有する。
【0271】境界セグメント再編成が進行中である場
合、その境界セグメント再編成は、最後のチェックポイ
ントによって表された状態にストラクチャ・ジオメトリ
を維持するためには完了まで進まなければならない。境
界セグメント再編成の実際の完了は、インクレメンタル
・プロセッサをバックグランド・タスクとしてスケジュ
ールすることによって達成される。しかし、境界セグメ
ント再編成は、あたかもそれが既に完了してしまったか
のように見えるように行われる。
【0272】「境界セグメント・ディレクトリ」は、リ
スト・エントリ作成又は置換が境界セグメントにおける
オブジェクトの即時活用を必要とする時に、「公示され
た」エントリ及びエレメント・カウント(最後のチェッ
クポイントによって表された)がインクレメンタル・プ
ロセッサによって未だ得られてない場合、断片的な境界
セグメント再編成をオン・ザ・フライでフォアグランド
・オペレーションが行うことを可能にする。上記の理由
は、境界セグメント再編成がいつもチェックポイント後
に生じ、そのチェックポイントによって表された状態を
いつも反映するということである。
【0273】「境界セグメント追放」として知られたも
う1つのオペレーションは、ストラクチャが縮小される
べき時に、及び恐らく1つ又は2つの境界セグメントを
除いて追放すべき残されたセグメントがない時に必要と
なる。境界セグメント追放が進行中である場合、その境
界セグメント追放は停止され、追放されようとしている
境界セグメントは、最後のチェックポイントよって表さ
れたジオメトリに復元される。最も最近のチェックポイ
ントによって表されたストラクチャ・ジオメトリの復元
は、拡大/縮小/再配分「停止」コマンドが結合機構に
よって実行される時に生じる単一のオペレーションで完
了するように見えるよう行われる。
【0274】RC=0は、いつも、その拡大/縮小/再
配分「停止」コマンドに応答して戻され、そしてREI
PI及びSSCIビットは、「停止」コマンドが結合機
構に到達した時に進行中であった境界セグメント再編成
オペレーションを完了させるためにインクレメント的な
活動が必要であるかどうかに関係なく、いつも、直ちに
ゼロにリセットされる。
【0275】リスト・モデルに対してインクレメンタル
・プロセッサを更に詳細に見ると、そのインクレメンタ
ル・プロセッサは、拡大/縮小/再配分オペレーション
(即ち、拡大、縮小、再配分、再配分を伴う拡張、又は
再配分を伴う縮小)を継続するためにフォアグランドか
ら直接に呼び出される。再配分オペレーションのための
コマンドをリスト・モデルALSTコードが受け取る
時、それは、その再配分オペレーションがフォアグラン
ドにおいて完了し得ない時にいつもバックグランドにお
いてスケジュールされる。インクレメンタル・プロセッ
サが動作している再配分オペレーションが現タイム・ス
ライスの終りまでに完了していない時、インクレメンタ
ル・プロセッサは、それ自身をバックグランド実行のた
めにスケジュールする。
【0276】インクレメンタル・プロセッサは、LE
C、ノード、及びLELセグメントを追放すること、こ
れらセグメントを記憶マネージャに戻すこと、又はTS
S或いはTETELRを得るために或るタイプのセグメ
ントを他のタイプのものと交換することを含むいくつか
のタスクを持っている。更に、インクレメンタル・プロ
セッサは、TSS及びTETELRに対して、又は中間
的ストラクチャ・サイズ及び保留のエントリ対エレメン
トの比に対して計算されたストラクチャ・ジオメトリに
適合するように境界セグメントを再編成する。
【0277】最終的又は中間的目標は、再配分コマンド
が最初に処理される時に呼び出される第2レベルのフォ
アグランド・プロセッサによって、先ず計算される。し
かし、最終目標が得られていない場合、フル・セグメン
トが追放される度に、インクレメンタル・プロセッサは
ストラクチャ・ジオメトリを再計算し、新しい目標を設
定しなければならない。
【0278】再配分を伴わない拡大オペレーションで
は、インクレメンタル・プロセッサの唯一のタスクは境
界セグメント再編成である。そのストラクチャが付属リ
スト・エントリしか持たない場合、及びキー・サポート
がない場合、このタスクも消滅する。しかし、再配分オ
ペレーションは、一般に、LEC、LEL、及びノード
が或るセグメントから他のセグメントに移動することを
必要とするであろう。この「追放」は、追放されたセグ
メントが記憶マネージャに戻されるか又は異なるタイプ
のセグメントと交換される時にいつもチェックポイント
が取られる。
【0279】「単なる縮小」(即ち、再配分を含まない
縮小)の場合にフル・セグメントが解放される時点でエ
ントリ対エレメントの比をストラクチャ・サイズと整合
して保持するために、境界セグメント・ジオメトリは、
それがSS、MLSEC、及びMLSELCを整合して
保持しなければならないLEC、LEL、及びノードの
混合を反映するように調節される。境界セグメントの実
際の再編成はその直後に生じる。「境界セグメント・デ
ィレクトリ」は、リスト・エントリ作成又は置換が境界
セグメントにおけるオブジェクトの即時活用を必要とす
る時に、「公示された」エントリ及びエレメント・カウ
ントがインクレメンタル・プロセッサによってまだ得ら
れてない場合、フォアグランド・オペレーションがオン
・ザ・フライで行われるのを可能にする。
【0280】TSS及びTETELRが得られている場
合、それ以上のアクションは必要ない。TSS及びTE
TELRが得られてなく且つそれ以上のオペレーション
が遂行され得ない(例えば、追放のための目標に決めら
れたセグメントから除去されるべきLEC、LEL、及
びノードに対するそれ以上のフリー・スペースがないた
めに可能な更なる追放がない、又は必要とされる記憶セ
グメントが記憶マネージャから全く得ることができな
い)場合、それ以上のアクションは必要ない。別の方法
として、インクレメンタル・プロセッサは、バックグラ
ンド作業待ち行列において再待ち行列化される。
【0281】上記のように、本発明は、プログラム制御
の下に記憶資源をSESストラクチャ(キャッシュ又は
リスト)に加えるための、或いはSESストラクチャか
ら除去するするための装置及び方法を提供する。ストラ
クチャ資源の再配分は、オペレータによって又はそのS
ESに付加されたホスト・プロセッサにおいて走るプロ
グラムによってイニシアティブが与えられると生じ、内
部制御装置機能によって指示されるのではなく、プログ
ラム指定の目標に従うものである。再配分される資源は
付加プログラムによってアドレス可能であり、従って、
本発明はストラクチャ資源を、それらがホスト・プログ
ラムによる使用中のままであっても、再配分するための
手段及び方法を与える。追加記憶装置の割当て又は記憶
装置の解放は、物理的記憶装置再配分の間、ストラクチ
ャにおける使用中のままのオブジェクトに対するプログ
ラムの進行中のオペレーションに影響を与えない。その
ストラクチャにおけるオブジェクトに抗して実行される
コマンドは、ストラクチャ資源の動的な再配分と同時に
実行し続ける。
【0282】更に、本発明は、ホスト・プログラムによ
る使用中のデータ・エレメントとディレクトリとの間の
資源のプログラム指示動的再配分を与える。ディレクト
リ・エントリ資源は、プログラム制御の下に、データ・
エレメント資源に、及びその逆に変換される。本発明に
よって、データ及び制御情報より成り、通常のキャッシ
ュ割振りシステムにおける整数とは対照的に拡大及び縮
小リクエストがターゲット・カウント及びターゲット比
によって指定されるSESは、コマンド実行のために十
分に使用可能である。SESストラクチャに対する記憶
モデルの独特な点は、データ記憶装置及び制御記憶装置
の二重関係であり、それぞれの相対的比率である。本発
明による拡大及び縮小の特徴は、記憶サイズ及びユーテ
ィリティを動的に最適化するようこれらの関係を維持す
る。
【0283】SESストラクチャ記憶装置を拡大、縮
小、又は再配分する判断は、そのSES機構にとって外
部のプログラムによって行われ、ACS及びALSTを
介してコミュニケートされる。保留の拡大及び縮小オペ
レーションはメイン・プログラムに影響を与えることな
く維持され、(固定サイズの場合とは対照的に)各ケー
スに対して動的に遂行される。従って、本発明の場合、
変更の量は、拡大又は縮小プロセスの各呼出しによって
決定される。
【0284】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0285】(1)複数個のデータ処理システムによっ
て共用される外部データ記憶機構のデータ・ストラクチ
ャを最適化するための装置であって、前記データ・スト
ラクチャは該データ・ストラクチャの作成及び該データ
・ストラクチャの構成を割り当てられた前記外部データ
記憶機構における記憶スペースの量に基づいて第1割振
りパラメータを含む第1割振りコマンドによって割振り
され、前記第1割振りパラメータの値を決定し、それに
よって前記データ・ストラクチャの第1構成を決定する
手段と、前記データ・ストラクチャの実際の用途を決定
し、それによって前記データ・ストラクチャの第2構成
を決定する手段と、前記データ・ストラクチャの第1構
成を前記データ・ストラクチャの第2構成と比較する比
較手段と、前記比較手段からの出力に応答して、第2割
振りパラメータを持った第2割振りコマンドを、前記デ
ータ・ストラクチャの再割振りのために前記データ・ス
トラクチャに発生する発生手段と、を含み、前記発生手
段は、前記外部データ記憶機構における記憶スペース及
び処理サイクルが前記第2割振りパラメータを実行する
ために使用可能になる時、前記データ・ストラクチャの
第1構成を前記第2構成に対して調節する調節手段を含
むこと、及び前記第2割振りパラメータが得られるま
で、前記データ・ストラクチャの再割振りは保留のまま
であり、すべての処理コマンドは前記外部データ記憶機
構によって受け付けられ且つ処理されることを特徴とす
る装置。 (2)前記調節手段は前記データ・ストラクチャのサイ
ズを拡大する手段を含むことを特徴とする上記(1)に
記載の装置。 (3)前記調節手段は前記データ・ストラクチャのサイ
ズを縮小する手段を含むことを特徴とする上記(1)に
記載の装置。 (4)前記データ・ストラクチャは少なくとも1つのデ
ータ・オブジェクト及び前記少なくとも1つのデータ・
オブジェクトをそれぞれ位置指定する少なくとも1つの
ディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節手段は前記データ・ストラクチャの前
記少なくとも1つのディレクトリ・エントリ及び前記少
なくとも1つのデータ・オブジェクトの相対的数を変更
する手段を含むことを特徴とする上記(1)に記載の装
置。 (5)前記データ・ストラクチャは少なくとも1つのデ
ータ・オブジェクト及び前記少なくとも1つのデータ・
オブジェクトをそれぞれ位置指定する少なくとも1つの
ディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節手段は前記データ・ストラクチャのサ
イズを拡大するための手段及び前記データ・ストラクチ
ャの前記少なくとも1つのディレクトリ・エントリ及び
前記少なくとも1つのデータ・オブジェクトの相対的数
を変更する手段を含むことを特徴とする上記(1)に記
載の装置。 (6)前記データ・ストラクチャは少なくとも1つのデ
ータ・オブジェクト及び前記少なくとも1つのデータ・
オブジェクトをそれぞれ位置指定する少なくとも1つの
ディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節手段は前記データ・ストラクチャのサ
イズを縮小する手段及び前記データ・ストラクチャの前
記少なくとも1つのディレクトリ・エントリ及び前記少
なくとも1つのデータ・オブジェクトの相対的数を変更
する手段を含むことを特徴とする上記(1)に記載の装
置。 (7)前記第2割振りパラメータの実行の進行を測定す
る測定手段を含むことを特徴とする上記(1)に記載の
装置。 (8)前記測定手段からの入力に基づいて前記第2割振
りパラメータの実行の進行を終了させる手段を含むこと
を特徴とする上記(7)に記載の装置。 (9)前記測定手段からの入力に基づいて前記第2割振
りパラメータを変更する手段を含むことを特徴とする上
記(8)に記載の装置。 (10)複数個のデータ処理システムによって共用され
る外部データ記憶機構のデータ・ストラクチャを最適化
する方法であって、前記データ・ストラクチャは該デー
タ・ストラクチャの作成及び該データ・ストラクチャの
構成を割り当てられた前記外部データ記憶機構における
記憶スペースの量に基づいて第1割振りパラメータを含
む第1割振りコマンドによって割振りされ、前記第1割
振りパラメータの値を決定し、それによって前記データ
・ストラクチャの第1構成を決定するステップと、前記
データ・ストラクチャの実際の用途を決定し、それによ
って前記データ・ストラクチャの第2構成を決定するス
テップと、前記データ・ストラクチャの第1構成を前記
データ・ストラクチャの第2構成と比較して比較出力を
供給するステップと、前記比較出力に応答して、第2割
振りパラメータを持った第2割振りコマンドを、前記デ
ータ・ストラクチャの再割振りのために前記データ・ス
トラクチャに発生するステップと、前記外部データ記憶
機構における記憶スペース及び処理サイクルが前記第2
割振りパラメータを実行するために使用可能になる時、
前記データ・ストラクチャの第1構成を前記第2構成に
対して調節するステップと、を含み、前記第2割振りパ
ラメータが得られるまで、前記データ・ストラクチャの
再割振りは保留のままであり、すべての処理コマンドは
前記外部データ記憶機構によって受け付けられ且つ処理
されることを特徴とする方法。 (11)前記調節するステップは前記データ・ストラク
チャのサイズを拡大するステップを含むことを特徴とす
る上記(10)に記載の方法。 (12)前記調節するステップは前記データ・ストラク
チャのサイズを縮小するステップを含むことを特徴とす
る上記(10)に記載の方法。 (13)前記データ・ストラクチャは少なくとも1つの
データ・オブジェクト及び前記少なくとも1つのデータ
・オブジェクトをそれぞれ位置指定する少なくとも1つ
のディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節するステップは前記データ・ストラク
チャの前記少なくとも1つのディレクトリ・エントリ及
び前記少なくとも1つのデータ・オブジェクトの相対的
数を変更するステップを含むことを特徴とする上記(1
0)に記載の方法。 (14)前記データ・ストラクチャは少なくとも1つの
データ・オブジェクト及び前記少なくとも1つのデータ
・オブジェクトをそれぞれ位置指定する少なくとも1つ
のディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節するステップは前記データ・ストラク
チャのサイズを拡大するステップ及び前記データ・スト
ラクチャの前記少なくとも1つのディレクトリ・エント
リ及び前記少なくとも1つのデータ・オブジェクトの相
対的数を変更するステップを含むことを特徴とする上記
(10)に記載の方法。 (15)前記データ・ストラクチャは少なくとも1つの
データ・オブジェクト及び前記少なくとも1つのデータ
・オブジェクトをそれぞれ位置指定する少なくとも1つ
のディレクトリ・エントリを含むディレクトリを含むこ
と、及び前記調節するステップは前記データ・ストラク
チャのサイズを縮小するステップ及び前記データ・スト
ラクチャの前記少なくとも1つのディレクトリ・エント
リ及び前記少なくとも1つのデータ・オブジェクトの相
対的数を変更するステップを含むことを特徴とする上記
(10)に記載の方法。 (16)前記第2割振りパラメータの実行の進行を測定
するステップを含むことを特徴とする上記(10)に記
載の方法。 (17)前記測定するステップに基づいて前記第2割振
りパラメータの実行の進行を終了させるステップを含む
ことを特徴とする上記(16)に記載の方法。 (18)前記測定するステップに基づいて前記第2割振
りパラメータを変更するステップを含むことを特徴とす
る上記(16)に記載の方法。 (19)前記ストラクチャのサイズを拡大するステップ
は、前記拡大するステップの継続が前記少なくとも1つ
のディレクトリ・エントリ及び前記少なくとも1つのデ
ータ・オブジェクトの相対的数を変更させる時を決定す
るステップと、前記拡大するステップの継続が前記少な
くとも1つのディレクトリ・エントリ及び前記少なくと
も1つのデータ・オブジェクトの相対的数を変更させる
ことが決定される時に前記拡大するステップを終了させ
るステップと、を含むことを特徴とする上記(11)に
記載の方法。 (20)前記ストラクチャのサイズを縮小するステップ
は、前記縮小するステップの継続が前記少なくとも1つ
のディレクトリ・エントリ及び前記少なくとも1つのデ
ータ・オブジェクトの相対的数を変更させる時を決定す
るステップと、前記縮小するステップの継続が前記少な
くとも1つのディレクトリ・エントリ及び前記少なくと
も1つのデータ・オブジェクトの相対的数を変更させる
ことが決定される時に前記縮小するステップを終了させ
るステップと、を含むことを特徴とする上記(12)に
記載の方法。 (21)前記ストラクチャのサイズを縮小するステップ
は、前記縮小するステップの継続が前記少なくとも1つ
のディレクトリ・エントリの数を所定の量より少なく減
少させる時を決定するステップと、前記拡大するステッ
プの継続が前記少なくとも1つのディレクトリ・エント
リの数を前記所定の量よりも少なくさせることが決定さ
れる時に前記縮小するステップを終了させるステップ
と、を含むことを特徴とする上記(12)に記載の方
法。 (22)前記ストラクチャのサイズを縮小するステップ
は、前記縮小するステップの継続が前記少なくとも1つ
のデータ・オブジェクトの数を所定の量より少なく減少
させる時を決定するステップと、前記拡大するステップ
の継続が前記少なくとも1つのデータ・オブジェクトの
数を前記所定の量よりも少なくさせることが決定される
時に前記縮小するステップを終了させるステップと、を
含むことを特徴とする上記(12)に記載の方法。 (23)複数個のデータ処理システムと結合し且つ複数
個の記憶資源を記憶するための少なくとも1つのキャッ
シュ・ストラクチャ及びリスト・ストラクチャを有する
外部データ記憶機構を使用し、前記少なくとも1つのキ
ャッシュ・ストラクチャ及びリスト・ストラクチャを管
理する装置であって、前記少なくとも1つのキャッシュ
・ストラクチャ及びリスト・ストラクチャに割振りコマ
ンドを再発生する手段と、前記少なくとも1つのキャッ
シュ・ストラクチャ及びリスト・ストラクチャに割振り
パラメータを割り当てる手段と、前記外部データ記憶機
構における記憶資源が使用可能になる時、及びプロセッ
サ・サイクルが前記割振りパラメータを実行するために
使用可能になる時、前記割振りパラメータに基づいて前
記少なくとも1つのキャッシュ・ストラクチャ及びリス
ト・ストラクチャのサイズを調節する手段と、を含み、
前記割振りパラメータが得られるまで、割振りプロセス
は保留のままであること、すべてのコマンドは前記外部
データ記憶機構によって受け付けられ且つ処理されるこ
と、及び前記少なくとも1つのキャッシュ・ストラクチ
ャ及びリスト・ストラクチャにおけるデータ・エレメン
ト及びディレクトリ・エントリの相対的比率は前記調節
するための手段によって維持されることを特徴とする装
置。
【0286】
【発明の効果】本発明によれば、割振り解除オペレーシ
ョン及びその後の割振りオペレーションの間、キャッシ
ュ・ストラクチャ又はリスト・ストラクチャによって与
えられるサービスをさせる必要なくデータ・ストラクチ
ャ(例えば、キャッシュ又はリスト)を縮小、拡大、或
いは再配分することができ、又、リクエストされた記憶
資源が割振りリクエスト(例えば、キャッシュ・ストラ
クチャの割振り、或いはリスト・ストラクチャの割振
り)を満足させるように使用可能であることを保証でき
る。
【図面の簡単な説明】
【図1】キャッシュ・ストラクチャ・ジオメトリを示
す。
【図2】キャッシュ・ストラクチャ及びリスト・ストラ
クチャを含むSESにおける多数のストラクチャを示
す。
【図3】キャッシュ・ストラクチャを持ったSES機構
を含むデータ処理システムの3レベル記憶ハイラーキを
示す。
【図4】図2に示されたストラクチャのうちのリスト・
ストラクチャの1つを示す。
【図5】キャッシュ・ストラクチャの拡大、縮小、及び
再配分を示すフローチャートの一部分である。
【図6】キャッシュ・ストラクチャの拡大、縮小、及び
再配分を示すフローチャートの一部分である。
【図7】キャッシュ・ストラクチャの拡大、縮小、及び
再配分を示すフローチャートの一部分である。
【図8】キャッシュ・ストラクチャ割振りのインクレメ
ンタル・プロセッサのオペレーションを示すフローチャ
ートの一部分である。
【図9】キャッシュ・ストラクチャ割振りのインクレメ
ンタル・プロセッサのオペレーションを示すフローチャ
ートの一部分である。
【図10】データ・エレメント・セグメント追放オペレ
ーションを示すフローチャートの一部分である。
【図11】データ・エレメント・セグメント追放オペレ
ーションを示すフローチャートの一部分である。
【図12】ディレクトリ・エントリセグメント追放オペ
レーションを示すフローチャートである。
【図13】リスト・ストラクチャに対する境界セグメン
ト再編成の一部分を示す。
【図14】リスト・ストラクチャに対する境界セグメン
ト再編成の一部分を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディビッド・アレン・エルコ アメリカ合衆国ニューヨーク州、プウキー プシー、リンデン・ロード 18 (72)発明者 オードリー・アン・ヘルフリッチ アメリカ合衆国ニューヨーク州、プウキー プシー、モンエル・アベニュー 6 (72)発明者 リチャード・パービン・キング アメリカ合衆国ニューヨーク州、ソーンウ ッド、ワレン・アベニュー 540 (72)発明者 ジェフリー・マーク・ニック アメリカ合衆国ニューヨーク州、フィッシ ュキル、プリマウス・ロード 43 (72)発明者 スチュワート・ローンドン・パルマー アメリカ合衆国ニューヨーク州、ヨークタ ウン・ハイツ、ハノーバー・ロード 1798 (72)発明者 ウェンデル・ウィリー・ウィルキンソン アメリカ合衆国ニューヨーク州、ハイド・ パーク、リチャード・ロード 9

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】複数個のデータ処理システムによって共用
    される外部データ記憶機構のデータ・ストラクチャを最
    適化するための装置であって、 前記データ・ストラクチャは該データ・ストラクチャの
    作成及び該データ・ストラクチャの構成を割り当てられ
    た前記外部データ記憶機構における記憶スペースの量に
    基づいて第1割振りパラメータを含む第1割振りコマン
    ドによって割振りされ、 前記第1割振りパラメータの値を決定し、それによって
    前記データ・ストラクチャの第1構成を決定する手段
    と、 前記データ・ストラクチャの実際の用途を決定し、それ
    によって前記データ・ストラクチャの第2構成を決定す
    る手段と、 前記データ・ストラクチャの第1構成を前記データ・ス
    トラクチャの第2構成と比較する比較手段と、 前記比較手段からの出力に応答して、第2割振りパラメ
    ータを持った第2割振りコマンドを、前記データ・スト
    ラクチャの再割振りのために前記データ・ストラクチャ
    に発生する発生手段と、 を含み、 前記発生手段は、前記外部データ記憶機構における記憶
    スペース及び処理サイクルが前記第2割振りパラメータ
    を実行するために使用可能になる時、前記データ・スト
    ラクチャの第1構成を前記第2構成に対して調節する調
    節手段を含むこと、及び前記第2割振りパラメータが得
    られるまで、前記データ・ストラクチャの再割振りは保
    留のままであり、すべての処理コマンドは前記外部デー
    タ記憶機構によって受け付けられ且つ処理されることを
    特徴とする装置。
  2. 【請求項2】前記調節手段は前記データ・ストラクチャ
    のサイズを拡大する手段を含むことを特徴とする請求項
    1に記載の装置。
  3. 【請求項3】前記調節手段は前記データ・ストラクチャ
    のサイズを縮小する手段を含むことを特徴とする請求項
    1に記載の装置。
  4. 【請求項4】前記データ・ストラクチャは少なくとも1
    つのデータ・オブジェクト及び前記少なくとも1つのデ
    ータ・オブジェクトをそれぞれ位置指定する少なくとも
    1つのディレクトリ・エントリを含むディレクトリを含
    むこと、及び前記調節手段は前記データ・ストラクチャ
    の前記少なくとも1つのディレクトリ・エントリ及び前
    記少なくとも1つのデータ・オブジェクトの相対的数を
    変更する手段を含むことを特徴とする請求項1に記載の
    装置。
  5. 【請求項5】前記データ・ストラクチャは少なくとも1
    つのデータ・オブジェクト及び前記少なくとも1つのデ
    ータ・オブジェクトをそれぞれ位置指定する少なくとも
    1つのディレクトリ・エントリを含むディレクトリを含
    むこと、及び前記調節手段は前記データ・ストラクチャ
    のサイズを拡大するための手段及び前記データ・ストラ
    クチャの前記少なくとも1つのディレクトリ・エントリ
    及び前記少なくとも1つのデータ・オブジェクトの相対
    的数を変更する手段を含むことを特徴とする請求項1に
    記載の装置。
  6. 【請求項6】前記データ・ストラクチャは少なくとも1
    つのデータ・オブジェクト及び前記少なくとも1つのデ
    ータ・オブジェクトをそれぞれ位置指定する少なくとも
    1つのディレクトリ・エントリを含むディレクトリを含
    むこと、及び前記調節手段は前記データ・ストラクチャ
    のサイズを縮小する手段及び前記データ・ストラクチャ
    の前記少なくとも1つのディレクトリ・エントリ及び前
    記少なくとも1つのデータ・オブジェクトの相対的数を
    変更する手段を含むことを特徴とする請求項1に記載の
    装置。
  7. 【請求項7】前記第2割振りパラメータの実行の進行を
    測定する測定手段を含むことを特徴とする請求項1に記
    載の装置。
  8. 【請求項8】前記測定手段からの入力に基づいて前記第
    2割振りパラメータの実行の進行を終了させる手段を含
    むことを特徴とする請求項7に記載の装置。
  9. 【請求項9】前記測定手段からの入力に基づいて前記第
    2割振りパラメータを変更する手段を含むことを特徴と
    する請求項8に記載の装置。
  10. 【請求項10】複数個のデータ処理システムによって共
    用される外部データ記憶機構のデータ・ストラクチャを
    最適化する方法であって、 前記データ・ストラクチャは該データ・ストラクチャの
    作成及び該データ・ストラクチャの構成を割り当てられ
    た前記外部データ記憶機構における記憶スペースの量に
    基づいて第1割振りパラメータを含む第1割振りコマン
    ドによって割振りされ、 前記第1割振りパラメータの値を決定し、それによって
    前記データ・ストラクチャの第1構成を決定するステッ
    プと、 前記データ・ストラクチャの実際の用途を決定し、それ
    によって前記データ・ストラクチャの第2構成を決定す
    るステップと、 前記データ・ストラクチャの第1構成を前記データ・ス
    トラクチャの第2構成と比較して比較出力を供給するス
    テップと、 前記比較出力に応答して、第2割振りパラメータを持っ
    た第2割振りコマンドを、前記データ・ストラクチャの
    再割振りのために前記データ・ストラクチャに発生する
    ステップと、 前記外部データ記憶機構における記憶スペース及び処理
    サイクルが前記第2割振りパラメータを実行するために
    使用可能になる時、前記データ・ストラクチャの第1構
    成を前記第2構成に対して調節するステップと、 を含み、 前記第2割振りパラメータが得られるまで、前記データ
    ・ストラクチャの再割振りは保留のままであり、すべて
    の処理コマンドは前記外部データ記憶機構によって受け
    付けられ且つ処理されることを特徴とする方法。
  11. 【請求項11】前記調節するステップは前記データ・ス
    トラクチャのサイズを拡大するステップを含むことを特
    徴とする請求項10に記載の方法。
  12. 【請求項12】前記調節するステップは前記データ・ス
    トラクチャのサイズを縮小するステップを含むことを特
    徴とする請求項10に記載の方法。
  13. 【請求項13】前記データ・ストラクチャは少なくとも
    1つのデータ・オブジェクト及び前記少なくとも1つの
    データ・オブジェクトをそれぞれ位置指定する少なくと
    も1つのディレクトリ・エントリを含むディレクトリを
    含むこと、及び前記調節するステップは前記データ・ス
    トラクチャの前記少なくとも1つのディレクトリ・エン
    トリ及び前記少なくとも1つのデータ・オブジェクトの
    相対的数を変更するステップを含むことを特徴とする請
    求項10に記載の方法。
  14. 【請求項14】前記データ・ストラクチャは少なくとも
    1つのデータ・オブジェクト及び前記少なくとも1つの
    データ・オブジェクトをそれぞれ位置指定する少なくと
    も1つのディレクトリ・エントリを含むディレクトリを
    含むこと、及び前記調節するステップは前記データ・ス
    トラクチャのサイズを拡大するステップ及び前記データ
    ・ストラクチャの前記少なくとも1つのディレクトリ・
    エントリ及び前記少なくとも1つのデータ・オブジェク
    トの相対的数を変更するステップを含むことを特徴とす
    る請求項10に記載の方法。
  15. 【請求項15】前記データ・ストラクチャは少なくとも
    1つのデータ・オブジェクト及び前記少なくとも1つの
    データ・オブジェクトをそれぞれ位置指定する少なくと
    も1つのディレクトリ・エントリを含むディレクトリを
    含むこと、及び前記調節するステップは前記データ・ス
    トラクチャのサイズを縮小するステップ及び前記データ
    ・ストラクチャの前記少なくとも1つのディレクトリ・
    エントリ及び前記少なくとも1つのデータ・オブジェク
    トの相対的数を変更するステップを含むことを特徴とす
    る請求項10に記載の方法。
  16. 【請求項16】前記第2割振りパラメータの実行の進行
    を測定するステップを含むことを特徴とする請求項10
    に記載の方法。
  17. 【請求項17】前記測定するステップに基づいて前記第
    2割振りパラメータの実行の進行を終了させるステップ
    を含むことを特徴とする請求項16に記載の方法。
  18. 【請求項18】前記測定するステップに基づいて前記第
    2割振りパラメータを変更するステップを含むことを特
    徴とする請求項16に記載の方法。
  19. 【請求項19】前記ストラクチャのサイズを拡大するス
    テップは、 前記拡大するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリ及び前記少なくとも1つのデータ
    ・オブジェクトの相対的数を変更させる時を決定するス
    テップと、 前記拡大するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリ及び前記少なくとも1つのデータ
    ・オブジェクトの相対的数を変更させることが決定され
    る時に前記拡大するステップを終了させるステップと、 を含むことを特徴とする請求項11に記載の方法。
  20. 【請求項20】前記ストラクチャのサイズを縮小するス
    テップは、 前記縮小するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリ及び前記少なくとも1つのデータ
    ・オブジェクトの相対的数を変更させる時を決定するス
    テップと、 前記縮小するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリ及び前記少なくとも1つのデータ
    ・オブジェクトの相対的数を変更させることが決定され
    る時に前記縮小するステップを終了させるステップと、 を含むことを特徴とする請求項12に記載の方法。
  21. 【請求項21】前記ストラクチャのサイズを縮小するス
    テップは、 前記縮小するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリの数を所定の量より少なく減少さ
    せる時を決定するステップと、 前記拡大するステップの継続が前記少なくとも1つのデ
    ィレクトリ・エントリの数を前記所定の量よりも少なく
    させることが決定される時に前記縮小するステップを終
    了させるステップと、 を含むことを特徴とする請求項12に記載の方法。
  22. 【請求項22】前記ストラクチャのサイズを縮小するス
    テップは、 前記縮小するステップの継続が前記少なくとも1つのデ
    ータ・オブジェクトの数を所定の量より少なく減少させ
    る時を決定するステップと、 前記拡大するステップの継続が前記少なくとも1つのデ
    ータ・オブジェクトの数を前記所定の量よりも少なくさ
    せることが決定される時に前記縮小するステップを終了
    させるステップと、 を含むことを特徴とする請求項12に記載の方法。
  23. 【請求項23】複数個のデータ処理システムと結合し且
    つ複数個の記憶資源を記憶するための少なくとも1つの
    キャッシュ・ストラクチャ及びリスト・ストラクチャを
    有する外部データ記憶機構を使用し、前記少なくとも1
    つのキャッシュ・ストラクチャ及びリスト・ストラクチ
    ャを管理する装置であって、 前記少なくとも1つのキャッシュ・ストラクチャ及びリ
    スト・ストラクチャに割振りコマンドを再発生する手段
    と、 前記少なくとも1つのキャッシュ・ストラクチャ及びリ
    スト・ストラクチャに割振りパラメータを割り当てる手
    段と、 前記外部データ記憶機構における記憶資源が使用可能に
    なる時、及びプロセッサ・サイクルが前記割振りパラメ
    ータを実行するために使用可能になる時、前記割振りパ
    ラメータに基づいて前記少なくとも1つのキャッシュ・
    ストラクチャ及びリスト・ストラクチャのサイズを調節
    する手段と、 を含み、 前記割振りパラメータが得られるまで、割振りプロセス
    は保留のままであること、 すべてのコマンドは前記外部データ記憶機構によって受
    け付けられ且つ処理されること、及び前記少なくとも1
    つのキャッシュ・ストラクチャ及びリスト・ストラクチ
    ャにおけるデータ・エレメント及びディレクトリ・エン
    トリの相対的比率は前記調節するための手段によって維
    持されることを特徴とする装置。
JP7228904A 1994-09-12 1995-09-06 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置 Pending JPH08129457A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US304458 1994-09-12
US08/304,458 US5581737A (en) 1994-09-12 1994-09-12 Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures

Publications (1)

Publication Number Publication Date
JPH08129457A true JPH08129457A (ja) 1996-05-21

Family

ID=23176604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7228904A Pending JPH08129457A (ja) 1994-09-12 1995-09-06 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置

Country Status (2)

Country Link
US (2) US5581737A (ja)
JP (1) JPH08129457A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117634546A (zh) * 2024-01-11 2024-03-01 珠海金智维信息科技有限公司 生成式智能体及其构建方法

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581737A (en) * 1994-09-12 1996-12-03 International Business Machines Corporation Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures
US5680566A (en) * 1995-03-03 1997-10-21 Hal Computer Systems, Inc. Lookaside buffer for inputting multiple address translations in a computer system
US5894564A (en) * 1995-06-07 1999-04-13 International Business Machines Corporation System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed
US5784699A (en) * 1996-05-24 1998-07-21 Oracle Corporation Dynamic memory allocation in a computer using a bit map index
US5966733A (en) * 1997-06-24 1999-10-12 Hewlett-Packard Company Optimizing data movement with hardware operations
US6496823B2 (en) 1997-11-07 2002-12-17 International Business Machines Corporation Apportioning a work unit to execute in parallel in a heterogeneous environment
US6163833A (en) * 1997-12-31 2000-12-19 Daewoo Telecom Ltd. Memory managing method for use in a data communications system
US6360263B1 (en) * 1998-02-25 2002-03-19 International Business Machines Corporation Dynamic resource allocation for user management in multi-processor time shared computer systems
US6237000B1 (en) 1998-05-01 2001-05-22 International Business Machines Corporation Method and apparatus for previewing the results of a data structure allocation
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6317744B1 (en) * 1999-08-23 2001-11-13 International Business Machines Corporation Method, system and program products for browsing fully-associative collections of items
US6542970B1 (en) 1999-08-23 2003-04-01 International Business Machines Corporation Method, system and program products for copying coupling facility list structures
US6546414B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility lock structures
US6594667B2 (en) 1999-08-23 2003-07-15 International Business Machines Corporation Method, system and program products for modifying coupling facility structures
US6546466B1 (en) 1999-08-23 2003-04-08 International Business Machines Corporation Method, system and program products for copying coupling facility cache structures
US6584554B1 (en) 1999-08-23 2003-06-24 International Business Machines Corporation Directed allocation of coupling facility structures
US6609214B1 (en) 1999-08-23 2003-08-19 International Business Machines Corporation Method, system and program products for copying coupling facility structures
US6266783B1 (en) 1999-08-23 2001-07-24 International Business Machines Corporation System-managed rebuild of coupling facility structures
US6530038B1 (en) 1999-09-16 2003-03-04 International Business Machines Corporation Streamlined initialization and refresh of file system directory limits
JP2001109661A (ja) * 1999-10-14 2001-04-20 Hitachi Ltd キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
US6859217B2 (en) * 2000-07-19 2005-02-22 Microsoft Corporation System and method to display and manage data within hierarchies and polyarchies of information
US6862595B1 (en) 2000-10-02 2005-03-01 International Business Machines Corporation Method and apparatus for implementing a shared message queue using a list structure
US6963882B1 (en) 2000-10-02 2005-11-08 International Business Machines Corporation Method and apparatus for processing a list structure
US6691121B1 (en) * 2000-10-27 2004-02-10 Bmc Software, Inc. Method and apparatus for online and dynamic extension of IMS data entry databases
US6957230B2 (en) * 2000-11-30 2005-10-18 Microsoft Corporation Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values
US7031989B2 (en) * 2001-02-26 2006-04-18 International Business Machines Corporation Dynamic seamless reconfiguration of executing parallel software
US6748491B2 (en) 2001-04-19 2004-06-08 International Business Machines Corporation Designing a cache using an LRU-LFU array
US6745295B2 (en) 2001-04-19 2004-06-01 International Business Machines Corporation Designing a cache with adaptive reconfiguration
US6792509B2 (en) 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US7047413B2 (en) * 2001-04-23 2006-05-16 Microsoft Corporation Collusion-resistant watermarking and fingerprinting
US6910158B2 (en) * 2001-10-01 2005-06-21 International Business Machines Corporation Test tool and methods for facilitating testing of duplexed computer functions
US6944787B2 (en) * 2001-10-01 2005-09-13 International Business Machines Corporation System-managed duplexing of coupling facility structures
US6954817B2 (en) * 2001-10-01 2005-10-11 International Business Machines Corporation Providing at least one peer connection between a plurality of coupling facilities to couple the plurality of coupling facilities
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6813726B2 (en) 2001-10-01 2004-11-02 International Business Machines Corporation Restarting a coupling facility command using a token from another coupling facility command
US7099935B2 (en) * 2001-10-01 2006-08-29 International Business Machines Corporation Dynamically determining whether to process requests synchronously or asynchronously
US6952704B2 (en) * 2001-11-26 2005-10-04 Microsoft Corporation Extending a directory schema independent of schema modification
US6944626B2 (en) * 2001-11-26 2005-09-13 Microsoft Corp. Dynamically generated schema representing multiple hierarchies of inter-object relationships
US7389335B2 (en) 2001-11-26 2008-06-17 Microsoft Corporation Workflow management based on an integrated view of resource identity
AU2003205150A1 (en) * 2002-01-18 2003-07-30 Idetic, Inc. Method and system for storage and retrieval of arbitrary content and application data
US7469300B2 (en) * 2002-01-18 2008-12-23 Mobitv, Inc. System and method for storage and retrieval of arbitrary content and application data
AU2002302464A1 (en) * 2002-03-25 2003-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and devices for dynamic management of a server application on a server platform
GB0207969D0 (en) 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
GB0207967D0 (en) * 2002-04-08 2002-05-15 Ibm Data processing arrangement and method
US7120746B2 (en) * 2002-09-09 2006-10-10 International Business Machines Corporation Technique for data transfer
US7711840B2 (en) * 2003-10-23 2010-05-04 Microsoft Corporation Protocol for remote visual composition
US7379952B2 (en) * 2004-01-30 2008-05-27 Oracle International Corporation Techniques for multiple window resource remastering among nodes of a cluster
US7269705B1 (en) * 2004-04-23 2007-09-11 Seidl Matthew L Memory space management for object-based memory system
US7962453B2 (en) * 2004-04-26 2011-06-14 Oracle International Corporation Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes
JP4340616B2 (ja) * 2004-10-04 2009-10-07 富士通株式会社 ディスクアレイ装置
US20060129740A1 (en) * 2004-12-13 2006-06-15 Hermann Ruckerbauer Memory device, memory controller and method for operating the same
US7487320B2 (en) * 2004-12-15 2009-02-03 International Business Machines Corporation Apparatus and system for dynamically allocating main memory among a plurality of applications
US20060200469A1 (en) * 2005-03-02 2006-09-07 Lakshminarayanan Chidambaran Global session identifiers in a multi-node system
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US7814065B2 (en) 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US7979624B2 (en) * 2006-03-31 2011-07-12 Intel Corporation Techniques to truncate data files in nonvolatile memory
US8880826B2 (en) * 2009-10-20 2014-11-04 Dell Products, Lp System and method for write once read many (WORM) storage in an information handling system
US8838910B2 (en) 2010-06-07 2014-09-16 International Business Machines Corporation Multi-part aggregated variable in structured external storage
US8341368B2 (en) 2010-06-07 2012-12-25 International Business Machines Corporation Automatic reallocation of structured external storage structures
US9383939B2 (en) 2013-03-15 2016-07-05 International Business Machines Corporation Migrating and retrieving queued data in byte-addressable storage
US9658968B1 (en) * 2015-11-09 2017-05-23 International Business Machines Corporation Implementing hardware accelerator for storage write cache management

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309352A (en) * 1990-05-18 1994-05-03 Tektronix, Inc. Method and system for optimizing termination in systems of programmable devices
US5313636A (en) * 1990-09-27 1994-05-17 Intellicorp, Inc. Mosaic objects and method for optimizing object representation performance in an object-oriented representation system
US5291593A (en) * 1990-10-24 1994-03-01 International Business Machines Corp. System for persistent and delayed allocation object reference in an object oriented environment
US5333311A (en) * 1990-12-10 1994-07-26 Alsoft, Inc. Optimizing a magnetic disk by allocating files by the frequency a file is accessed/updated or by designating a file to a fixed location on a disk
US5293631A (en) * 1991-08-06 1994-03-08 Hewlett-Packard Company Analysis and optimization of array variables in compiler for instruction level parallel processor
US5388266A (en) * 1992-03-30 1995-02-07 International Business Machines Corporation Management of data objects used intain state information for shared data at a local complex
US5394542A (en) * 1992-03-30 1995-02-28 International Business Machines Corporation Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered
US5457793A (en) * 1992-03-30 1995-10-10 International Business Machines Corporation Software cache management of a shared electronic store in a supplex
CA2086691C (en) * 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
US5604863A (en) * 1993-11-01 1997-02-18 International Business Machines Corporation Method for coordinating executing programs in a data processing system
US5544345A (en) * 1993-11-08 1996-08-06 International Business Machines Corporation Coherence controls for store-multiple shared data coordinated by cache directory entries in a shared electronic storage
US5537635A (en) * 1994-04-04 1996-07-16 International Business Machines Corporation Method and system for assignment of reclaim vectors in a partitioned cache with a virtual minimum partition size
US5581737A (en) * 1994-09-12 1996-12-03 International Business Machines Corporation Method and apparatus for expansion, contraction, and reapportionment of structured external storage structures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117634546A (zh) * 2024-01-11 2024-03-01 珠海金智维信息科技有限公司 生成式智能体及其构建方法

Also Published As

Publication number Publication date
US5822562A (en) 1998-10-13
US5581737A (en) 1996-12-03

Similar Documents

Publication Publication Date Title
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JP2512675B2 (ja) デ―タ処理制御方法及びコンピュ―タ・システム
US5251308A (en) Shared memory multiprocessor with data hiding and post-store
US7337296B2 (en) Managing physical memory in a virtual memory computer
US7882505B2 (en) Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs
EP0323013A2 (en) Method of operating a multiprocessor system employing a shared virtual memory
WO1999041668A1 (en) Compression store free-space management
WO1991020036A1 (en) Method for efficient non-virtual main memory management
JPH07175698A (ja) ファイルシステム
JPH05210637A (ja) 同時アクセス管理方法
EP0150195A1 (en) ON-DEMAND PAGE ORGANIZATION DIAGRAM FOR A MULTIPLE BUFFER PROCESSING SYSTEM FOR SHARED MEMORY ADDRESS TRANSLATION.
JPH0279141A (ja) 仮想索引機構
US5671405A (en) Apparatus and method for adaptive logical partitioning of workfile disks for multiple concurrent mergesorts
US5394539A (en) Method and apparatus for rapid data copying using reassigned backing pages
JP3701890B2 (ja) 圧縮メモリ・システムの再利用スペース予約
EP0404560B1 (en) multiprocessor system and method
US20090320036A1 (en) File System Object Node Management
US6804754B1 (en) Space management in compressed main memory
JPH03141442A (ja) タスク制御方式
JP3030030B2 (ja) 領域管理処理方式
JPS603229B2 (ja) 情報処理方式
JP3013742B2 (ja) キャッシュメモリ管理方式
JP2765672B2 (ja) データ転送及びデータ除去のための制御方法並びにコンピュータ・システム
JP2001184242A (ja) キャッシュ制御方法および計算機システム
JPH0329041A (ja) 分散ページング制御方式