JP2613931B2 - バッファ制御方式 - Google Patents

バッファ制御方式

Info

Publication number
JP2613931B2
JP2613931B2 JP26942988A JP26942988A JP2613931B2 JP 2613931 B2 JP2613931 B2 JP 2613931B2 JP 26942988 A JP26942988 A JP 26942988A JP 26942988 A JP26942988 A JP 26942988A JP 2613931 B2 JP2613931 B2 JP 2613931B2
Authority
JP
Japan
Prior art keywords
buffer
processing
area
buffers
request source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP26942988A
Other languages
English (en)
Other versions
JPH02116942A (ja
Inventor
政弘 一見
徹也 新北
典郎 嶌田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP26942988A priority Critical patent/JP2613931B2/ja
Publication of JPH02116942A publication Critical patent/JPH02116942A/ja
Application granted granted Critical
Publication of JP2613931B2 publication Critical patent/JP2613931B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概 要〕 入出力処理用の共通バッファ域を有する上位装置と入
出力制御装置間のバッファ獲得/返却動作を制御するバ
ッファ制御方式に関し、 上位処理装置のバッファ獲得/返却処理を制御するバ
ッファ制御手段の負荷の軽減、処理の効率化、バッファ
の動的管理の効率化を目的とし、 各処理要求元のバッファ使用状況を管理するテーブル
部と、入出力制御手段からもアクセスされ処理要求元の
バッファ制御情報が格納されるレジスタ部とバッファ獲
得/返却処理を制御する制御手段とを備えた上位処理装
置とを入出力制御手段間のバッファ獲得/返却動作の制
御方式であって、入出力制御手段は前記レジスタ部が使
用可のとき獲得して処理要求元の要求処理情報を格納
し、前記制御手段は該要求処理情報及び前記テーブル部
の情報を用いてバッファ獲得/返却処理を行って前記テ
ーブル部を更新し、獲得バッファのアドレスを前記レジ
スタ部に格納するように構成する。
〔産業上の利用分野〕
本発明は、入出力処理用の共通のバッファ域を有する
上位装置と入出力制御装置で行われるバッファ獲得/返
却動作を制御するバッファ制御方式に関する。
〔従来の技術〕
電子計算機等の上位処理装置と入出力制御装置との間
で入出力動作を行う場合、その入出力動作を正常に行う
ために必要なバッファの獲得又は返却処理に行われる。
その場合、例えばハイレベルデータリンク制御手順
(HDLC)を使用してデータ通信を行う通信制御装置のよ
うに、上位処理装置と多数の入出力処理要求元との間で
高速かつ大量のデータの入出力動作が行われるときは、
バッファとして大きなメモリ容量を確保する必要がある
こと、入出力制御装置(通信制御装置)間で入出力処理
要求が競合しやすいこと等のため、バッファ制御やバッ
ファのメモリ管理が複雑になるとともに、障害発生率が
高くなるという不都合が生じる。
これを解消するために、従来次のようなバッファ制御
方式が用いられていた。
(a) 分割管理によるバッファ制御方式 この方式は、各入出力制御装置や単一入出力制御装置
配下の複数入出力装置(通信制御装置の場合は複数レイ
ヤ)等の各処理要求元毎にバッファを固定的に割り当
て、各処理要求元は割り当てられたバッファ領域を使用
して入出力動作を行う方式である。
この方式は、バッファが各処理要求元毎に固定的に割
り当てられているためバッファ獲得を行う必要がなく、
バッファの状態管理も各処理要求元毎に行えるので、管
理も比較的容易である。しかしがら、各処理要求元毎に
固定してバッファを専有するために、処理要求元の数が
増えるとバッファとして大きなメモリ容量が必要となり
メモリの使用効率が悪くなるという不都合が生じる。
(b) 一元管理によるバッファ制御方式 この方式は入出力処理用の共通のバッファ域を持ち、
各処理で使用するバッファの獲得や返却等の処理をバッ
ファ制御手段により一元的に管理する方式である。
この法式は、メモリ容量が比較的少容量ですむのでメ
モリの使用効率が良いという利点があるが、反面、複数
の処理が競合するので管理が複雑であり、かつバッファ
制御手段の負荷が高くなるので、効率的な動的管理を実
現するのが難しいという不都合がある。
〔発明が解決しようとする課題〕
一元管理によるバッファ制御方式では、前述のよう
に、メモリの使用効率は良いが、バッファの管理が複雑
でかつバッファ制御手段の負荷が高くなるので、効率的
な動的管理を実現するのが難しいという問題があった。
本発明は、共通バッファ域を使用した一元管理による
バッファ制御方式において、上位装置にあってバッファ
獲得/返却処理を制御するバッファ制御手段の負荷を軽
減し、バッファの動的管理及びバッファ制御を効率的に
行えるように改良したバッファ制御方式を提供すること
を目的とする。
〔課題を解決するための手段〕
前述の課題を解決するために本発明が採用した手段
を、第1図の原理図を参照して説明する。
第1図において、10は電子計算機等の上位処理装置、
20は上位処理装置配下の入出力制御手段である。入出力
制御手段20は複数個の入出力制御装置又は単一の入出力
制御装置により構成され、配下に複数の入出力装置等の
処理要求元(図示せず)が接続される。入出力制御手段
20が通信制御装置の場合、処理要求元は複数のレイヤ群
からなる。
上記処理装置10において、11はメモリで、各バッファ
が割り当てられるバッファ域111、バッファ制御手段に
対する制御プログラムが格納される制御プログラム域11
2等を備えている。
12はバッファ管理手段で、内部にバッファ管理テーブ
ル部12A及びバッファ管理レジスタ部12Bを備え、入出力
制御手段20配下の各処理要求元によるバッファ域111の
使用状況及び入出力処理中の処理要求元の要求処理情報
やバッファ処理状況等を管理する。
バッファ管理テーブル部12Aは、入出力制御手段20配
下の各処理要求元によるバッファ域111の使用状況を各
処理要求元の識別子(以下、iDで示す)で管理する。
バッファ管理レジスタ部12Bは、入出力制御手段20に
よりアクセスされ、処理要求元を識別する処理要求元i
D,バッファ獲得や返却等の要求処理内容,処理開始指
示,当該レジスタ部の使用可否,獲得バッファアドレ
ス,要求処理に必要な要求バッファ量,バッファ処理状
態等のバッファ処理情報を管理する。
13はバッファ制御手段で、配下のメモリ11,バッファ
管理手段12(バッファ管理テーブル部12A,バッファ管理
レジスタ部12B)及び入出力制御手段20を制御して、上
位処理装置10と入出力制御手段との間で行われるバッフ
ァの獲得及び返却処理を制御する。
なお、上位処理装置10には、本発明のバッファ制御方
式を実施するに必要な構成部分のみが示され、必要でな
い構成の図示は省略されている。上位処理装置10のプロ
セッサ(図示せず)に、その機能の一部としてバッファ
制御手段13を持たせるようにすることができる。
本発明は、以上説明したシステムによって実施される
ものであって、以下のように構成される。
すなわち、入出力処理に用いられる共通のバッファ域
111を有するメモリ11と、入出力制御手段20配下の各処
理要求元によるバッファ域111の使用状況を各処理要求
元識別子iDで管理するバッファ管理テーブル部12Aと、
入出力制御手段20からもアクセス可能で、処理中の処理
要求元のバッファ制御情報が格納されるバッファ管理レ
ジスタ部12Bと、メモリ11,バッファ管理テーブル部12A,
バッファ管理レジスタ部12B及び入出力制御手段20を配
下に持ってバッファ獲得及び返却処理を制御するバッフ
ァ制御手段13とを備えた上位処理装置10とを入出力制御
手段20との間で行われるバッファ獲得及び返却動作を制
御するバッファ制御方式であって、 (a) 入出力制御手段20は、バッファ管理レジスタ部
12Bが使用可能状態のときに獲得して使用中状態とし、
該バッファ管理レジスタ部12Bに処理要求元の識別子i
D、要求処理情報を格納して処理開始指示をセットし、 (b) バッファ制御手段13は、バッファ管理レジスタ
部12Bに処理開始指示がセットされたとき、バッファ管
理テーブル部12Aより前記処理要求元のバッファ域111の
使用状況を求め、バッファ管理レジスタ部12Bに格納さ
れた要求処理情報に従ってバッファ域111に対する所望
バッファ処理を行い、この処理結果に基づいてバッファ
管理部12Aを更新するとともに、バッファ管理レジスタ
部12Bに獲得されたバッファのアドレス及び処理終了情
報を格納し、 (c) 入出力制御手段20は、バッファ管理レジスタ部
12Bに格納された処理終了情報よりバッファ制御手段13
における所望バッファ処理の終了及び終了状態を検出
し、終了状態に対応した処理を行う、 ように構成される。
〔作 用〕
入出力制御手段20は、配下の処理要求元より処理要求
があると、バッファ管理レジスタ部12Bが使用可能状態
すなわちビジー解除状態にあることが検出されたときに
それぞれを獲得して使用中状態すなわちビジー状態にす
る。これにより、他の管理要求元からの処理要求は、バ
ッファ管理レジスタ部12Bを獲得できないので待ち状態
になる。
入出力制御手段20は、獲得したバッファ管理レジスタ
部12Bに処理要求元iD、要求処理内容、要求バッファ量
等を格納した後、処理開始指示をセット(オン)する。
バッファ制御手段13は、バッファ管理レジスタ部12B
処理開始指示がオンになったことを検出すると、バッフ
ァ管理テーブル部12Aを参照して処理要求元のバッファ
域111の使用状況を求め、その要求処理内容がバッファ
の獲得であるか返却であるかに従ってバッファ域111に
対して要求バッファ量の獲得又は返却処理を行う。そし
てこの処理結果に従ってバッファ管理テーブル部12Aを
更新するとともにバッファ管理レジスタ部12Bに獲得さ
れたバッファのアドレスを格納する。更に、バッファ獲
得又は返却処理が終了したこと、このバッファ処理が正
常終了か異常終了か等を指示する処理終了情報を、バッ
ファ管理レジスタ12Bに格納する。
このバッファの獲得又は返却処理は、例えば次のよう
にして行われる、すなわち、 各処理要求元には最大使用可能なバッファ個数が割り
当てられ、 バッファ管理テーブル部12Aは、処理要求元に対する
バッファ個数及び実際に使用中のバッファ個数が格納さ
れるバッファ使用率テーブルと、各処理要求元の獲得バ
ッファ個数、獲得バッファの先頭アドレス及びその格納
領域の有効又は無効指示情報が格納されるバッファ使用
情報テーブルと、バッファ域111にある獲得可能な空バ
ッファ域アドレスが格納される空バッファ域テーブルを
備え、 入出力制御手段20は、獲得されたバッファ管理レジス
タ部12Bに要求処理情報として要求処理内容及び要求バ
ッファ個数を格納し、 バッファ制御手段13は、バッファ使用情報テーブルよ
り要求処理内容を検出し、バッファ獲得処理時は、空バ
ッファ域テーブルよりバッファ域111にある空バッファ
域の先頭アドレスをリードしてバッファ使用情報テーブ
ル122及びバッファ管理レジスタ部12Bに格納し、バッフ
ァ管理レジスタ部12Bにある要求バッファ個数とバッフ
ァ使用率テーブル121にある使用バッファ個数の集計が
割当てバッファ個数を越えないときにバッファ域111を
空バッファ域よりバッファ獲得処理を行い、この処理結
果に基づいてバッファ使用情報テーブル部に獲得バッフ
ァ個数を格納し、バッファ使用率テーブルの使用バッフ
ァ個数を更新し、空バッファ域テーブルの空バッファ域
アドレスを更新し、バッファ管理レジスタ部12Bに処理
終了情報を格納し、 バッファ返却処理時は、バッファ管理レジスタ部12B
より返却バッファ域の先頭アドレス及び返却バッファ個
数をリードし、該先頭アドレス及び処理要求元識別子iD
よりバッファ使用情報テーブルの当該処理要求元の使用
情報格納領域を検出してそのバッファ個数を返却バッフ
ァ個数分更新し、更にバッファ使用率テーブルの当該処
理要求元の使用バッファ個数を返却バッファ個数分更新
し、返却バッファ個数を空バッファ域にチェインして空
バッファ域テーブルの空バッファ域アドレスを更新し、
返却バッファが当該処理要求元の獲得バッファ域のバッ
ファであることをチェックし、バッファ管理レジスタ部
に処理終了情報を格納する。(詳細は実施例の動作説明
の項で説明する)。
以上のようにしてバッファ制御手段13におけるバッフ
ァ獲得/返却処理が終了すると、入出力制御手段20はバ
ッファ管理レジスタ部12Bに格納された処理終了情報に
よりバッファ制御手段13の処理終了状態を検出する。そ
のバッファの獲得又は返却処理が正常に終了したことを
検出すると、バッファ管理レジスタ部12Bに格納された
バッファ獲得アドレスに基づいて、バッファ域111に対
し処理要求元の要求するバッファ量の獲得又は返却を行
い、入出力処理終了後、バッファ管理レジスタ部12Bを
使用可能状態すなわちビジー解除に戻す処理を行う。
バッファ管理レジスタ部12Bが使用可能状態になった
ことにより、入出力制御手段20は、配下の他の処理要求
元より処理要求があると、バッファ管理レジスタ部12B
を獲得し、以下この処理要求元について前述のバッファ
獲得,返却を含む入出力制御処理が行われる。
以上のようにして、バッファの使用状況を管理するバ
ッファ管理テーブル部12A及びバッファ処理情報を管理
するバッファ管理レジスタ部12Bを設け、このテーブル
及びレジスタ部の内容を操作することにより、バッファ
の獲得,返却,ビジー等のバッファ制御を行うことがで
きる。これにより、共通バッファ域111を使用する一元
管理によるバッファ制御方式の利点を保持しつつ、バッ
ファ制御手段13の負荷を軽減し、バッファの動的管理及
び制御を効率良く行うことができる。また、入出力制御
手段20は、バッファ制御手段20を意識することなく、バ
ッファ管理レジスタ部12Bをアクセスすることにより、
ビジー検出,バッファの獲得,返却等の入出力制御が可
能となるので、入出力制御を効率良く行うことができ
る。
〔実施例〕
本発明の実施例を、第1図〜第5図を参照して説明す
る。第2図は本発明の一実施例の実施システムにおける
バッファ管理テーブル部及びレジスタ部の説明図、第3
図は本発明の実施例のバッファ制御処理フローチャー
ト、第4図は同実施例のバッファ獲得処理フローチャー
ト、第5図は同実施例のバッファ返却処理フローチャー
トである。第1図については、既に説明したとおりであ
る。
(A)実施システムの構成 第1図のシステムは本発明の一実施例の実施システム
として用いられるが、その内容については既に説明した
ので、以下、バッファ管理手段12のバッファ管理テーブ
ル部12A及びバッファ管理レジスタ部12Bの構成を、第2
図を参照して説明する。
この実施例においては、バッファ域111の範囲内で、
各処理要求元毎にその処理量を考慮して最大使用バッフ
ァ領域(バッファ個数で示される)が予め割り当てら
れ、各処理要求元は、その割当てバッファ個数内でバッ
ファ獲得を行えるようにする。これにより、特定の処理
要求元がバッファ域を独占することが防止され、各処理
要求はその処理量に応じて平等にバッファを獲得して入
出力処理を行うことができる。
第2図のバッファ管理テーブル部12Aにおいて、121は
バッファ使用率テーブルで、各処理要求元に対するバッ
ファ割当て個数及び実際に使用中のバッファ個数が格納
される。iD域には、各処理要求元iDが格納される。割当
てバッファ域には、各処理要求元に割当てられたバッフ
ァ個数(割当てバッファ個数)BNiDが格納される。使用
バッファ域には、実際に使用中のバッファ個数(使用バ
ッファ個数)UNiDが格納される。バッファは所定ブロッ
ク単位で獲得及び返却されるので、割当個数BNiD及び使
用個数UNiDは、ブロックのバッファ個数で示される。な
お、各処理要求元の各情報を区別することきは、その識
別子iDに図示のような数字の添字を付加して(iD0,iD1
等)指示する。
122はバッファ使用情報テーブルで、各処理要求元が
使用中のバッファ情報が格納される。iD域には、各処理
要求元iDが格納される。バッファ個数域には、各処理要
求元がそのバッファ獲得要求毎に獲得したバッファ個数
GNiDが格納される。先頭アドレス域には、各処理要求元
の獲得したバッファのバッファ域111上の先頭アドレス
が格納される。有効/無効域には、その領域の情報が有
効のときは有効ビットが、無効のときは無効ビットがそ
れぞれオンにセットされる。なお、同一処理要求元から
バッファ獲得が複数回行われたときは、その都度別個の
領域にそのバッファ獲得個数NiDが、そのiD、先頭アド
レスとともに格納される。その際、獲得された複数のバ
ッファはチェインされる。
123は、空バッファ域テーブルで、バッファ域111にあ
る獲得可能な空バッファ域アドレスが格納される。先頭
アドレス域には空バッファ域の先頭アドレスADEsが、最
終アドレス域には空バッファ域の最終アドレスADEfがそ
れぞれ格納される。
バッファ管理レジスタ部12Bにおいて、124は第1管理
レジスタ、125は第2管理レジスタで、処理要求元の要
求する処理情報及び獲得したバッファの先頭アドレスが
格納される。第1管理レジスタのiD域には、処理要求元
iDが格納される。返却/獲得域には、要求処理内容がバ
ッファの返却であるか獲得であるかを指示する情報が格
納される。スタート域には処理開始指示としてスタート
ビットが格納される。ビジー域には、使用中/使用可を
指示するビジー情報が格納され、第1管理レジスタ124
がビジーのときは使用中ビットがオンにされ、ビジーで
ないときは使用可ビットがオンにされる。
第2管理レジスタ125の先頭アドレス域には、獲得さ
れたバッファのバッファ域111上の先頭アドレスが格納
される。要求バッファ域には、獲得又は返却を要求する
バッファ個数が格納される。
126は、状態レジスタで、バッファ制御手段13による
獲得/返却処理時のバッファ処理状態が格納される。処
理中/終了域には、バッファ獲得又は返却の処理中であ
るか処理が終了したかを指示する情報が格納される。ス
ティタス域には、処理の正常終了、異常終了及びそのエ
ラー情報(例えば使用バッファ域の割当てオーバ、メモ
リエラーやパリティエラー等のバードエラー)等のステ
ィタス情報が格納される。
(B)実施例の動作 実施例の動作を、(1)全体動作、(2)バッファ獲
得動作、(3)バッファ返却動作に分けて説明する。
(B−1)全体動作 最初に実施例の全体動作を、第3図のバッファ制御処
理フローチャートを参照し、その処理ステップに従って
説明する。
処理S1:初期化処理 バッファ制御手段13は、次の初期化処理を行う。
(i)バッファ使用情報テーブル122内に各情報やデー
タをすべて「0」にクリアする。
(ii)予めシステムより与えられたパラメータにより、
バッファ使用率テーブル121のiD域に各処理要求元iD(i
D0,iD1等)を格納してテーブル領域の割当てを行い、対
応する割当てバッファ域にバッファの割当て個数BN
iD(BNiD0,BNiD1等)を格納する。その際、各処理要求
元に割り当てられたバッファの割当て個数の総数が、バ
ッファ域111の総バッファ個数を越えないことがチェッ
クされる。なお、使用バッファ域は、すべて「0」にク
リアされている(この点については、後の処理S3におい
て説明する)。
(iii)バッファ域111を初期パラメータに従って各処理
要求元に割り当てたバッファ個数に分割し、かつこれら
をすべてチェインする。そして、その先頭アドレスADEs
及び最終アドレスADEfを空バッファ域テーブル123の先
頭アドレス域及び最終アドレス域にそれぞれ格納する。
処理S2 前述の初期化処理が終了すると、入出力制御手段20配
下の処理要求元からの処理要求に従ってバッファの獲得
又は返却処理が行われるが、これらの処理内容につい
て、次の(B−2)及び(B−3)項で説明する。
処理S3 処理S2によるバッファの獲得又は返却制御がすべて終
了すると、バッファ制御手段13は、バッファ使用率テー
ブル121の使用バッファ域の全数値(UNiD0,UNiD1等)を
すべて「0」にクリアする。処理終了時の各処理要求元
のバッファ使用状況は、バッファ使用率テーブル121の
バッファ割当て域及びバッファ使用情報テーブル122に
保持される。
(B−2)バッファ獲得動作(処理S211〜S227) 前述の処理S2中のバッファ獲得動作を、第3図のバッ
ファ獲得処理フローチャートを参照し、その処理ステッ
プに従って説明する。
処理S211,S212,S213 入出力制御手段20は、配下の処理要求元(iD0とす
る)よりバッファ獲得要求があると、第1管理レジスタ
124をポーリングし、ビジー域の使用可ビットがオンに
なるのを待つ(処理S211)。
使用可ビットがオンになったことが検出されると、入
出力制御手段20は、第1管理レジスタ124のiD域に処理
要求元の識別子iD0を、処理内容域に獲得処理をそれぞ
れ格納し、第2管理レジスタ125の要素バッファ域に要
求された獲得バッファ個数(GNiD0)を格納した後、ス
タート域のスタートビットをオンにする(処理S212)。
以下この状態で、入出力制御手段20は、次に説明するバ
ッファ制御手段13におけるバッファ獲得処理が終了する
まで待機する(処理S213)。
以下の処理S221〜S227は、バッファ制御手段13により
行われるバッファ獲得処理である。
処理S211:バッファ制御手段側処理 バッファ制御手段13は、第1管理レジスタ124にスタ
ート域のスタートビットがオンになったことを検出する
と、空バッファ域テーブル123より空バッファ域の先頭
アドレス(ADEs0とする)をリードして、第2バッファ
管理レジスタ125先頭アドレス域に格納する。次いでバ
ッファ使用情報テーブル122の空領域(処理要求元iD0
処理要求が最初ならば、バッファ使用情報テーブル122
の先頭領域になる)を獲得し、そのiD域に処理要求元iD
0を、先頭アドレス域に前述の先頭アドレスADEs0をそれ
ぞれライトし、有効/先頭域の有効ビットをオン(無効
ビットはオフ)にする。
処理S222 バッファ制御手段13は、バッファ使用率テーブル121
より処理要求元iD0のバッファ割当て個数BNiD0及び実際
の使用個数UNiD0(UNiD00とする)(最初は「0」にク
リアされている)をリードする。次いて、このリードさ
れた使用個数UNiD00と要求された獲得バッファ個数GN
iD0を加算したものを新UNiD0(UNiD01で示す) BNiD00≧UNiD01(=UNiD00+GNiD0) が成立するか判定する。この条件が成立するときは次の
処理S223に移り、成立しないときは後述するS226以下の
エラー処理を行う。
処理S223 処理S222において、BNiD00≧UNiD01が成立するときは
要求する個数GNiD0のバッファが獲得可能であるので、
バッファ制御手段13は、バッファ域111上の空バッファ
域の先頭アドレADEs(最初のADEsをADEs0とする)より
要求された個数GNiD0のバッファに処理要求元iD0をライ
トして獲得する。その際、最後のバッファのチェインは
切っておき、次に獲得するバッファがチェインされるよ
うにする。
次いで、バッファ制御手段13は、この獲得処理結果に
従って、バッファ使用情報テーブル122の処理要求元iD0
領域のバッファ個数域に獲得したバッファ個数GNiD0
格納してその内容を更新する。更に、バッファ使用情報
テーブル122の更新結果に基づいて、バッファ使用率テ
ーブル121の内容を更新する。すなわち、バッファ使用
情報テーブル122により処理要求元iD0の全獲得バッファ
個数(使用バッファ個数UNiD01を求め、バッファ使用率
テーブル121の処理要求元iD0領域の使用バッファ個数域
の内容をこのUNiD01に更新する。なお、処理要求元iD0
によりバッファ獲得が複数回行われた場合は、この使用
バッファ個数は、バッファ使用情報テーブル122におけ
る有効な各処理要求元iD0領域(iD0と有効ビットのAND
条件が成立する領域)のバッファ個数域にある各獲得バ
ッファ個数を集計することにより求められる。
処理S224 バッファ制御手段13は、バッファ域111上の空バッフ
ァ域の先頭アドレスADEs0より獲得バッファ個数GNiD0
差し引いたものを残りの空バッファ域の新しい先頭アド
レス(ADEs1とする)として、空バッファ域テーブル123
の先頭アドレス域に格納、更新する。
処理S225 以上のバッファ獲得処理が正常に終了すると、バッフ
ァ制御手段13は、状態レジスタ12のステータス域に正常
終了をセットし、その処理中/終了域の処理終了ビット
をオンにしてバッファ獲得処理を終了する。
処理S226,S227 前述の処理S222において、BNiD0≧UNiD1の条件が成立
しないときは、処理要求元iD0は割当てバッファ個数BN
iD0を越えて獲得バッファ個数を要求したので、バッフ
ァ制御手段13はバッファ使用情報テーブル122の処理要
求元iD0領域の有効/無効域に無効ビットをセット(オ
ン)し、そのバッファ獲得要求を無効にする(処理
S226)。
次いで、状態レジスタ126のステータス域に異常終了
をセットするとともにエラー情報としてオーバしたバッ
ファ個数を表示し、その処理中/終了域の処理終了ビッ
トをオンにして処理を終了する。
以上のようにしてバッファ制御手段13におけるバッフ
ァ獲得処理が終了すると、入出力制御手段20は待機して
いたバッファ獲得処理を再開する。
処理S213,理S214:入出力制御手段側処理 入出力制御手段20は、状態レジスタ126の処理中/終
了域に処理終了ビットがセット(オン)されたこと、す
なわちバッファ制御手段13におけるバッファ獲得処理が
終了したことを検出すると(処理S213)、更にそのステ
ィタス域より処理が正常終了か異常終了かを検出する
(処理S214)。
処理S215,S216 処理S214においてバッファ制御手段13におけるバッフ
ァ獲得処理が正常終了したことが検出されると、入出力
制御手段20は第2管理レジスタ125より獲得バッファの
バッファ域111上の先頭アドレスADEs0及び獲得バッファ
個数GNiD0をリードし(処理S215)、この獲得されたバ
ッファ域に対して行われる処理要求元iD0の入出力動作
を制御する。入出力動作が終了すると、第1管理レジス
タ124のビジー域の使用可ビットをオンにしてビジー解
除状態にする(処理S216)。
処理S217,S218 処理S214において状態レジスタ126のスティタス域に
異常終了が指示されると、入出力制御手段20はそのステ
ィタス域よりオーババッファ個数等のエラー情報をリー
ドし(処理S217)、各エラー内容に応じた異常処理を行
うとともに、エラー情報を制御域(図示せず)にライト
して、どの処理要求元で獲得ミスが行われたか分るよう
にする。この異常処理が終了すると、第1管理レジスタ
124のビジ域の使用可ビットをオンにしてビジー解除状
態にする(処理S218)。
(B−3)バッファ返却動作(処理S231〜S245) 次に、前述の処理S2中のバッファ返却動作を、第5図
のバッファ返却処理フローチャートを参照し、その処理
ステップに従って説明する。
処理S231,S232,S233 一つの処理要求元(同じくiD0とする)は獲得したバ
ッファに対する、リード等の入出力動作が終了して獲得
バッファが不要になると、バッファの返却を入出力制御
手段20に要求する。
入出力制御手段20は、処理要求元iD0よりバッファ返
却要素があると、第1管理レジスタ124をポーリング
し、ビジー域の使用ビットがオンになるのを待つ(処理
S231)。
使用可ビットがオンになったことが検出されると、入
出力制御手段20は、第1管理レジスタ124のiD域に処理
要求元のiD0を、処理内容域に返却処理をそれぞれ格納
し、第2管理レジスタ125の要求バッファ域に返却バッ
ファ個数(RNiD0jで示す)を格納した後、スタート域の
スタートビットをオンにする(処理S232)。以下この状
態で、入出力制御手段20は、次に説明するバッファ制御
手段13におけるバッファ返却処理が終了するまで待機す
る(処理S233)。
以下の処理S241〜S245は、バッファ制御手段13により
行われるバッファ返却処理である。
処理S241:バッファ制御手段側処理 バッファ制御手段13は、第1管理レジスタ124のスタ
ート域のスタートビットがオンになったことを検出する
と、第2管理レジスタ125の先頭アドレス域より先頭ア
ドレスをリードする(この先頭アドレス域には、バッフ
ァ獲得処理時に格納された獲得バッファの先頭アドレス
(ADEsjとする)がそのまま保持されている)。
次いで、バッファ使用情報テーブル122よりこの先頭
アドレスADEsjと処理要求元のiD0を持つ格納領域を検出
する。この格納領域のバッファ個数域にある獲得バッフ
ァ個数(GNiD0jとする)と返却バッファ個数RNiD0jを比
較し、RNiD0j<GNiD0jのとき、すなわち獲得バッファの
一部が返却された場合は、バッファ個数域の値「G
NiD0j」と「GNiD0j−RNiD0j」を更新する。もし、RN
iD0j=GNiD0jのとき、すなわち獲得バッファを全部返却
するときは、当該格納領域の有効/無効域に無効ビット
をセット(オン)して無効化する。
バッファ使用情報テーブル122についての以上の更新
処理が終ると、この更新結果に従って、バッファ使用率
テーブル121の処理要求元iD0の格納領域中の使用バッフ
ァ域にある使用個数(UNiD0jとする)を「UNiD0j−RN
iD0j」に更新する。
処理S242 バッファ制御手段13は、空バッファ域テーブル123よ
り、空バッファ域の最終アドレス(ADEfjとする)をリ
ードし、第2バッファ管理レジスタ125にある返却バッ
ファ個数RNiD0jをそれにチェインしたものを新しい最終
アドレス(ADEfkとする)として、空バッファ域テーブ
ル123の最終アドレス域に格納,更新する。
処理S243 バッファ制御手段13は、バッファ域111の返却先頭ア
ドレスADiD0jより返却バッファ個数RNiD0j分の各バッフ
ァについて、その識別子が処理要求元の識別子iD0に一
致するか判定する(処理S243)。
両者の識別子がすべて一致した場合は、バッファ制御
手段13は、状態レジスタ12のスティタス域に正常終了を
セットし、その処理中/終了域の処理終了ビットをオン
にしてバッファ返却処理を終了する。
バッファ域111のバッファの識別子中にiD0と一致しな
いものが検出された場合は、状態レジスタ126のスティ
タスにその旨を指示するエラー情報を格納し、その処理
中/終了域の処理終了ビットをオンにして処理を終了す
る(処理S245)。
以上のようにしてバッファ制御手段13におけるバッフ
ァ返却に関する処理が終了すると、入出力制御手段20は
待機していたバッファ返却処理を再開する。
処理S233,S234 入出力制御手段20は、状態レジスタ126の処理中/終
了域に処理終了ビットがセット(オン)されたこと、す
なわちバッファ制御手段13におけるバッファ返却処理が
終了したことを検出すると(処理S233)、更にそのスタ
ィタス域より処理が正常終了か異常終了かを検出する
(処理S234)。
処理S235,S236,S237 処理S234においてバッファ制御手段13におけるバッフ
ァ返却処理が正常終了したことが検出されると、入出力
制御手段20は、これにより処理要求元iD0の要求したバ
ッファ返却処理が正常に終了したことを知り、従来と同
様に正常終了時の処理を行う。この処理が終了すると第
1管理レジスタ124のビジー域の使用化ビットをオンに
してビジー解除状態にする(処理S235)。
処理S234において、状態レジスタ126のスティタス域
に異常終了が指示されると、入出力制御手段20はそのス
タィタス域より識別子一不致等のエラー情報をリードし
(処理S236)、各エラー内容に応じた異常処理を行うと
ともに、エラー情報を制御域(図示せず)にライトし
て、どの処理要求元で返却ミスが行われたか分るように
する。この異常処理が終了すると、第1管理レジスタ12
4のビジー域の使用可ビットをオンにしてビジー解除状
態にする(処理S237)。
以上、処理要求元iD0よりバッファ獲得要求及び獲得
したバッファの返却要求があった場合の動作について説
明したが、他の処理要求元よりバッファ獲得又は返却要
求があった場合も同様にして行われる。
同一の処理要求元より複数回バッファ獲得要求があっ
た場合は、各要求毎にバッファ使用情報テーブル122の
空領域が検出され、そのiD域,バッファ個数域,先頭ア
ドレス域にそれぞれ必要な情報が格納され、有効/無効
域に有効ビットがセット(オン)される。更に、同一処
理要求元の全使用情報格納領域のバッファ獲得個数を集
計した値で、バッファ使用率テーブル121のバッファ使
用域の内容(使用バッファ個数UNiD)を更新される。
また獲得したバッファを複数個に分割して順次返却す
る場合は、前述の(B−2)のバッファ返却処理が繰り
返され(処理S235より処理S232に戻って同じ処理を繰り
返す)、その都度、バッファ使用情報テーブル122及び
バッファ使用率テーブルの内容が更新される。
〔発明の効果〕
以上説明したように、本発明によれば、次の諸効果が
得られる。
(1) バッファの使用状況を管理するバッファ管理テ
ーブル部12A及びバッファ処理情報を管理するバッファ
管理レジスタ部12Bを設け、このテーブル及びレジスタ
部の内容を操作することにより、バッファの獲得,返
却,ビジー等のバッファ制御を行うことができる。
(2) 前記(1)により、共通バッファ域111を使用
する一元管理によるバッファ制御方式の利点を保持しつ
つ、バッファ制御手段13の負荷を軽減し、バッファの動
的管理及び制御を効率良く行うことができる。
(3) 入出力制御手段20は、バッファ制御手段20を意
識することなく、バッファ管理レジスタ部12Bをアクセ
スすることにより、ビジー検出,バッファの獲得,返却
等の入出力制御が可能となるので、入出力制御を効率良
く行うことができる。
【図面の簡単な説明】
第1図は、本発明の原理図、 第2図は、本発明の一実施例の実施システムにおけるバ
ッファ管理テーブル部及びバッファ管理レジスタ部の説
明図、 第3図は、同実施例のバッファ制御処理フローチャー
ト、 第4図は、同実施例のバッファ獲得処理フローチャー
ト、 第5図は、同実施例のバッファ返却処理フローチャート
である。 第1図及び第2図において、 10……上位処理装置、11……メモリ、111……バッファ
域、112……制御プログラム域、12……バッファ管理手
段、12A……バッファ管理テーブル部、12B……バッファ
制御テーブル部、121……バッファ使用率テーブル、122
……バッファ使用情報テーブル、123……空バッファ域
テーブル、124……第1管理レジスタ、125……第2管理
レジスタ、126……状態レジスタ、13……バッファ制御
手段、20……入出力制御手段。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】入出力処理に用いられる共通のバッファ域
    (111)を有するメモリ(11)と、入出力制御手段(2
    0)配下の各処理要求元によるバッファ域(111)の使用
    状況を各処理要求元識別子(iD)で管理するバッファ管
    理テーブル部(12A)と、入出力制御手段(20)からも
    アクセス可能で、処理中の処理要求元のバッファ制御情
    報が格納されるバッファ管理レジスタ部(12B)と、メ
    モリ(11),バッファ管理テーブル部(12A),バッフ
    ァ管理レジスタ部(12B)及び入出力制御手段(20)を
    配下に持ってバッファ獲得及び返却処理を制御するバッ
    ファ制御手段(13)とを備えた上位処理装置(10)と入
    出力制御手段(20)との間で行われるバッファ獲得及び
    返却動作を制御するバッファ制御方式であって、 (a) 入出力制御手段(20)は、バッファ管理レジス
    タ部(12B)が使用可能状態のときに獲得して使用中状
    態とし、該バッファ管理レジスタ部(12B)に処理要求
    元の識別子(iD)、要求処理情報を格納して処理開始指
    示をセットし、 (b) バッファ制御手段(13)は、バッファ管理レジ
    スタ部(12B)に処理開始指示がセットされたとき、バ
    ッファ管理テーブル部(12A)より前記処理要求元のバ
    ッファ域(111)の使用状況を求め、バッファ管理レジ
    スタ部(12B)に格納された要求処理情報に従ってバッ
    ファ域(111)に対する処望バッファ処理を行い、この
    処理要求に基づいてバッファ管理部(12A)を更新する
    とともに、バッファ管理レジスタ部(12B)に獲得され
    たバッファのアドレス及び処理終了情報を格納し、 (c) 入出力制御手段(20)は、バッファ管理レジス
    タ部(12B)に格納された処理終了情報よりバッファ制
    御手段(13)における所望バッファ処理の終了及び終了
    状態を検出し、終了状態に対応した処理を行う、 ことを特徴とするバッファ制御方式。
  2. 【請求項2】各処理要求元には最大使用可能なバッファ
    個数が割り当てられ、 バッファ管理テーブル部(12A)は、処理要求元に対す
    るバッファ個数及び実際に使用中のバッファ個数が格納
    されるバッファ使用率デーブル(121)と、各処理要求
    元の獲得バッファ個数、獲得バッファの先頭アドレス及
    びその格納領域の有効又は無効指示情報が格納されるバ
    ッファ使用情報テーブル(122)と、バッファ域(111)
    にある獲得可能な空バッファ域アドレスが格納される空
    バッファ域テーブル(123)を備え、 入出力制御手段(20)は、獲得されたバッファ管理レジ
    スタ部(12B)に要求処理情報として要求処理内容及び
    要求バッファ個数を格納し、 バッファ制御手段(13)は、バッファ使用情報テーブル
    (122)より要求処理内容を検出し、バッファ獲得処理
    時は、空バッファ域テーブル(123)よりバッファ域(1
    11)にある空バッファ域の先頭アドレスをリードしてバ
    ッファ使用情報テーブル(122)及びバッファ管理レジ
    スタ部(12B)に格納し、バッファ管理レジスタ部(12
    B)にある要求バッファ個数とバッファ使用率テーブル
    (121)にある使用バッファ個数の集計が割当てバッフ
    ァ個数を越えないときにバッファ域(111)を空バッフ
    ァ域よりバッファ獲得処理を行い、この処理結果に基づ
    いてバッファ使用情報テーブル部(122)に獲得バッフ
    ァ個数を格納し、バッファ使用率テーブル(121)の使
    用バッファ個数を更新し、空バッファ域テーブル(12
    3)の空バッファ域アドレスを更新し、バッファ管理レ
    ジスタ部(12B)に処理終了情報を格納し、 バッファ返却処理時は、バッファ管理レジスタ部(12
    B)より返却バッファ域の先頭アドレス及び返却バッフ
    ァ個数をリードし、該先頭アドレス及び処理要求元識別
    子(iD)よりバッファ使用情報テーブル(122)の当該
    処理要求元の使用情報格納領域を検出してそのバッファ
    個数を返却バッファ個数分更新し、更にバッファ使用率
    テーブル(121)の当該処理要求元の使用バッファ個数
    を返却バッファ個数分更新し、返却バッファ個数を空バ
    ッファ域にチェインして空バッファ域テーブル(123)
    の空バッファ域アドレスを更新し、返却バッファが当該
    処理要求元の獲得バッファ域のバッファであることをチ
    ェックし、バッファ管理レジスタ部に処理終了情報を格
    納する、 ことを特徴とする請求項1記載のバッファ制御方式。
JP26942988A 1988-10-27 1988-10-27 バッファ制御方式 Expired - Lifetime JP2613931B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26942988A JP2613931B2 (ja) 1988-10-27 1988-10-27 バッファ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26942988A JP2613931B2 (ja) 1988-10-27 1988-10-27 バッファ制御方式

Publications (2)

Publication Number Publication Date
JPH02116942A JPH02116942A (ja) 1990-05-01
JP2613931B2 true JP2613931B2 (ja) 1997-05-28

Family

ID=17472306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26942988A Expired - Lifetime JP2613931B2 (ja) 1988-10-27 1988-10-27 バッファ制御方式

Country Status (1)

Country Link
JP (1) JP2613931B2 (ja)

Also Published As

Publication number Publication date
JPH02116942A (ja) 1990-05-01

Similar Documents

Publication Publication Date Title
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JPH04246745A (ja) 情報処理装置及びその方法
JP3266470B2 (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
JP2613931B2 (ja) バッファ制御方式
JPH0798663A (ja) 非同期i/o制御方式
JPH07244642A (ja) 並列処理計算機
JPS5848289A (ja) バツフアメモリ制御方式
JPH04288638A (ja) コンピュータシステム
JPH0519179B2 (ja)
JP3772003B2 (ja) メモリ管理システムおよびデータ管理方法
JPS62287359A (ja) 疎結合マルチプロセツサシステムにおけるフアイル同時アクセス制御方式
JPS6327936A (ja) フアイル管理方法
JPH09190375A (ja) 共有メモリ管理方法
JPH01137359A (ja) プロセッサの制御方法
JP2005025462A (ja) ストレージシステム、冗長制御コントローラの可変制御パラメータの制御方法及び装置並びに制御プログラム
JPH0895928A (ja) メモリ共有方式
JP3022829B2 (ja) 記憶装置の自動割り当て装置
JPS63311555A (ja) マルチプロセッサシステムにおける共有デ−タ制御方式
JPH0830512A (ja) スレッド制御方式
JPH02247748A (ja) マルチプロセッサによるデータベース処理方式
JPH0799517B2 (ja) 共有資源管理方法
JPH0387941A (ja) 分散データベース処理方式
JPH04245344A (ja) マルチプロセッサシステムのメモリ管理方法
JPS61139842A (ja) プログラムの退避制御方式