JPH03218514A - I/oバッファのサイズを最適にする方法および最適にされたi/oバッファを有するコンピュータ装置 - Google Patents

I/oバッファのサイズを最適にする方法および最適にされたi/oバッファを有するコンピュータ装置

Info

Publication number
JPH03218514A
JPH03218514A JP2198982A JP19898290A JPH03218514A JP H03218514 A JPH03218514 A JP H03218514A JP 2198982 A JP2198982 A JP 2198982A JP 19898290 A JP19898290 A JP 19898290A JP H03218514 A JPH03218514 A JP H03218514A
Authority
JP
Japan
Prior art keywords
buffer
size
block
database
contents
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2198982A
Other languages
English (en)
Other versions
JPH0585922B2 (ja
Inventor
Michael J Corrigan
マイケル、ジョセフ、コリガン
Gary R Ricard
ゲーリー、ロス、リカード
Richard M Rocheleau
リチャード、マイルズ、ロシュロー
Larry W Youngren
ラリー、ウィリアム、ヤングレン
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 JPH03218514A publication Critical patent/JPH03218514A/ja
Publication of JPH0585922B2 publication Critical patent/JPH0585922B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers

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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理の分野に関するものである。
更に詳しくいえば、本発明はI/Oバッファのサイズを
最適にする方法および装置を記述するものである。
〔従来の技術〕
コンピュータの利用者は今日は彼等のコンビュータ装置
の性能を最適にすることを望んでいる。
利用者とコンピュータ装置の間のデータオペレーション
を終了するために長時間待つことを許容できるようにな
るまでは、今日の利用者は著しく低い性能に耐えること
はないであろう。コンピュータ設計者の目標はコンピュ
ータ装置を、遅く、かつ性能不足の代りに、速く、かつ
応答するように利用者にみえるようにすることである。
コンビュータの設計者に対する特別な努力課題は、補助
記憶装置との間でデータの読み書きを行うために要する
みかけの時間を最も短くすることである。磁気ディスク
または光ディスクのような補助記憶装置は遅いことで知
られている。補助記憶装置との間のデータの読出しと書
込みは、補助記憶装置に設けられているデータベースに
大量のデータを挿入し、そのデータベースから大量のデ
ータを検索する必要がある、データベースおよび映像の
応用においてとくに問題がある。データベースのアプリ
ケーションを利用しているコンピュータの利用者は、デ
ータベース内のデータを迅速にアクセスすることを希望
し、このアクセスを行うために長時間待つことを望まな
い。補助記憶装置との間のI/O動作と並列に、できる
だけ多くの作業を行うことが望ましい。こうすることに
より、利用者がI/O動作を終了するために待つ代りに
、他のタスクを実行できるようにされる。
今日のほとんどのコンピュータ装置は、補助記憶装置と
の間でデータをページするためにバッファを用いる。バ
ッファは主記憶装置のようなより高速の記憶域に設けら
れる。あるコンピュータ装置は二重バッファリングのや
り方を用いる。補助記憶装置へデータを送ることを利用
者が望んだとすると、第1のバッファはデータで充され
、それの内容が補助記憶装置へ非同期で書き込まれる。
非同期書込みを待つことなしに、第2のバッ77にデー
タが充される。第2のバッファが充されると、第2のバ
ッファの内容が補助記憶装置へ非同期で書込まれる。第
1のバッファがそれの書込み動作を終ると、第1のバッ
ファには新しいデータが充され、別の同期書込みが行わ
れる。希望するデータのすべてが補助記憶装置へ送られ
るまで、それら2つのバッファの間で制御が前後に切替
わる。
この二重バッファのやり方は定常状態の環境に対して性
能を向上させるが、動的に変化する独特の各コンピュー
タ環境に対する性能を向上させることはない。また、そ
れらのバッファのサイズの選択が粗雑に行われると、コ
ンピュータ装置の性能に悪影響が加えられることがある
。バッファが小さすぎるとすると、第2のバッファが充
される前に第1のバッファはそれの書込み動作を終らな
い。この場合には、コンピュータ装置は、第1のバッフ
ァに新しいデータを充すことができる前に第1の書込み
動作を終る前に、むだな時間を同期して費やすにちがい
ない。同期して待つことはバッチ作業の全体の経過時間
を長くし、かつ相互作用する作業の応答時間を長くする
から、それは望ましくない。これは利用者にとっては非
常に明らかであって、利用者をなやます。バッファがよ
り大きくされるならば、同期して待つ事は最小にでき、
またはなくすことさえできる。しかし、バッファが大き
すぎると、バッファを充すのに時間がむだに費やされ、
補助記憶装置ができるほど速くは補助記憶装置に対する
データの書込みと読出しを行うことはできない。また、
バッファが大きすぎると、他の処理によって一層効果的
に使用できる主記憶装置内の貴重なメモリが妨げられた
り、むだにされたりする。
〔発明が解決しようとする課題〕
目標は小さすぎたり、大きすぎたりすることなく、全く
適度なバッファを構成することである。
コンピュータ設計者がバッファのサイズを予め設定しよ
うとしたとすると、設計者たちは各利用者の独特で動的
なコンビニータ環境を考慮に入れることができない。あ
る利用者にとってはある時にはバッファは適性なサイズ
のことがあるが、全ての利用者にとってあらゆる時に適
性なサイズであることはない。
本発明の主な目的はコンピュータ装置の性能を向上させ
ることである。
本発明の別の目的は、コンピュータ装置の補助記憶装置
との間のデータのやりとり性能を向上させることである
本発明の別の目的は、コンピュータ装置の補助記憶装置
に設けられているデータベースへのデータの挿入、およ
びデータベースからのデータの検索する性能を最適にす
ることである。
本発明の更に別の目的は、特定の処理環境を基にしてI
/Oバッファのサイズを動的に変更することである。
〔課題を解決するための手段〕
それらの目的およびその他の目的はここで開示する最適
にされたI/Oバッファにより達成される。
この明細書においては最適にされたI/Oバッファを有
するコンピュータ装置について説明する。
I/Oバッファは補助記憶装置へのデータの書込みと、
補助記憶装置からのデータの読出しのために用いられる
。二重バッファのやり方が用いられる。データを補助記
憶装置へ送ることを利用者が希望すると、第1のバッフ
ァがデータで充され、その内容が補助記憶装置へ同期せ
ずに書込まれる。
非同期書込みを待つことなしに、第2のバッファにデー
タが充される。第2のバッファが充されると、第2のバ
ッファの内容は補助記憶装置へ同期せずに書込まれる。
この点までに第1のバッファがそれの書込み動作を終っ
ていないとすると、それらのバッファは小さすぎると判
定され、両方のプロセッサのサイズが増大させられる。
希望する全てのデータが補助記憶装置へ送られるまでは
、制御はそれら2つのバッファの間で前後に切換えられ
る。コンピュータ装置が1つのバッファに新しいデータ
を再び充すことができる前は、そのバッファがそれの書
込み動作を終了することをコンピュータ装置が同期して
待つ必要がなくなるまで、バッファの寸法は増大させら
れる。理想的には、第2のバッファが2分の1というよ
うな所定のしきい値百分率をこえて充された時に、第1
のバッファはそれの書込み動作を終るべきである。第2
のバッファが所定のしきい値百分率をこえて充される前
に、第1のバッファがそれの書込み動作を終ったとする
と、バッファは大きすぎると判定さレテ、両方のバッフ
ァのサイズは小さくされる。
動的に変化する独特なコンピュータ装置を基にして最適
な寸法を達成するための必要に応じて、バッファの寸法
が動的に増大させられ、および減少させられる。
〔実施例〕
第1図は本発明のコンピュータ装置の全体のブロック図
を示す。この好適な実施例においては、コンピュータ1
0はアイビーエム・アプリケーション・システム/40
0中型コンピュータ(IBMApplication 
Systell/400Midrange Compu
ter)である。もっとも、コンピュータ10はパーソ
ナルコンピュータ、メインフレームコンピュータその他
の任意の種類のコンピュータとすることができ、そうし
ても本発明の範囲にいぜんとして含まれる。
コンピュータ10はプロセッサ20を有する。後で説明
するように、そのプロセッサは第2と第3図の流れ図に
示すようにして適当にプログラムされる。プロセッサ2
0には主記憶装置30と補助記憶装置50が接続される
。利用者すなわちユーザーはユーザーインターフエイス
40を介してコンピュータ10と交信する。ユーザーイ
ンターフエイス16もプロセッサ20へ接続される。主
記憶装置30は典型的にはランダムアクセスメモリ(R
AM) 、またはプロセッサ20が使用するためにプロ
セッサが利用できるその他のメモリである。
補助記憶装置50は典型的には磁気ディスクまたは光デ
ィスク、あるいはその他の直接アクセス記憶装置である
。ユーザーインターフエイス40はパーソナルコンピュ
ータ、またはユーザーがコンビニータ10と通信できる
ようにするその他の任意のワークステーションとするこ
とができる。
主記憶装置30は、サイズを動的に変えることができる
I/Oバッファ31と32を有する。補助記憶装置50
はデータベース60を有する。このデータベース60は
セグメント61〜67に分割される。データベース60
にデータを挿入することをユーザーが望んだとすると、
バッファ31にデータが充され、それの内容がデータベ
ース60のセグメント61へ非同期的に書込まれる。
この非同期書込みが終わることを待つことなしに、バッ
ファ32にデータが充される。バッファ32が充される
と、バッファ32の内容がデータベース60のセグメン
ト62に非同期で書込まれる。
この点までにバッファ31がそれの書込み動作を終ると
、バッファ31に新しいデータが書込まれ、内容がデー
タベース60のセグメント63に非同期で書込まれる。
制御はバッファ31と32の間で前後に切換わり、それ
らのバッファは互いに「蛙とび」を行ってデータベース
60のセグメント61〜67に順次書込む。
次に、データベースの挿入動作中にプロセッサ20がバ
ッファ31と32のサイズをどのようにして最適にする
かを示す第2A〜2E図について説明する。ブロック1
01においては挿入するためのオペレーションが存在す
るかどうかを判定する。この好適な実施例においては、
オペレーションを1つまたは複数のデータレコードの群
として定義する。全てのレコードが同じ長さであるとす
ると、ブロック102において、レコードの数にレコー
ドの長さを乗ずることによりオペレーションのサイズを
計算する。この技術は可変長レコ−ドに容易に適合でき
る。この技術は、バッファ31と32(ml図)のサイ
ズをオペレーションのサイズに等しいようにセットを行
う。ブロック103においてバッファ31をクリャし、
ブロック104においては、バッファ31に書込むレコ
ードをバッファ31へ動かす。ブロック105において
バッファ31をデータベース60のセグメント61へ書
込む。バッファ31はいまは「ターゲットバッファ」と
呼ばれる。ターゲットバッファの目的は後で説明する。
上記書込み動作が終ることを待つことなしに、ブロック
111においては挿入するための別のオペレーションを
検査する。1が受けられた時に制御はブロック112へ
動く。ブロック112においては、レコードの数にレコ
ードの長さを乗ずることによりオペレーションのサイズ
を計算する。
ブロック112においてはバッファのサイズ(バッファ
31と32のサイズ)をオペレーションのサイズに等し
くなるようにセットも行う。このオペレーションサイズ
はブロック102において決定されるサイズと通常は同
じであるが、この時に最後の時とは異なる数のレコード
をユーザーが送るものとすると、オペレーションサイズ
を変えることができる。ブロック113においてはバッ
ファ32をクリャする。ブロック114においてはバッ
ファ32に書込むレコードを動がす。バッファ115に
おいてはバッファ32をデータベース60のセグメント
へ非同期的に書込む。そうするといまはバッファ32は
「以前のバッファ」と呼ばれる。この命名の目的につい
ては後で説明する。
ブロック116においてはスタート書込みアドレスを0
にセットする。
バッファ32についての上記書込みオペレーションが終
ることを待つことなしに、ブロック121において別の
挿入オペレーションを検査し、1を受けた時に制御はブ
ロック122へ動く。ブロック122においては挿入の
スタートアドレスをデータベース60の次に挿入すべき
セグメントのアドレスに等しくセットする。この例にお
いては、挿入のスタートアドレスはセグメント63の初
めのアドレス、第1図にアドレス73として示されてい
る、に等しい。
ブロック123においてはスタート書込みアドレスが零
に等しいかどうかを判定する。書込みスタートアドレス
は、ターゲットバッファを充している場所を保持する。
ループを初めて通る時は、書込みスタートアドレスが零
であるようにターゲットバッファを充すことを始め、制
御はブロック124へ動く。ブロック124においては
書込みスタートアドレスを挿入のスタートアドレスに等
しいようにセットし、ブロック125においては書込み
以後のオペレーションの数を零に等しくセットする。ブ
ロック126においては、レコードノ数にレコードの長
さを乗ずることによりオペレーションのサイズを計算す
る。ブロック127においてはバッファのサイズを、オ
ペレーションのサイズに書込みトリガを乗じたものに等
しくセットする。書込みトリガは最初は1に等しいから
、バッファのサイズは最初はオペレーションのサイズに
等しい。
ブロック128においてはターゲットバッファアドレス
を決定する。これは挿入のスタートアドレスをとり、バ
ッファのサイズを2回減ずることにより行われる。ここ
での例においては、挿入のスタートアドレスはアドレス
73であり、アドレス73からバッファサイズのアドレ
スを2回差し引くことによって、セグメント61の初め
におけるターゲットバッファアドレス、第1図にアドレ
ス71として示されている、になる。ブロック129に
おいてTOOSMALLとTOOBICを偽に等しく初
期化する。
ブロック141において、書込み以後のオペレーション
の数が零に等しいかどうかを判定する。
この判定に対しては最初は肯定の回答がされ、そのため
に制御の流れはブロック142へ進む。ブロッグ142
においてはターゲットバッファの内容が補助記憶装置に
完全に書込まれたどうかの判定を行う。ここで説明して
いる例においては、ブロック142においてはバッファ
31からデータベース60のセグメント61への非同期
書込みが終ったかどうかの判定を行う。その判定結果が
否定であれば、バッファ31と32は小さすぎることに
なる。なぜなら、ターゲットバッファに新しいデータを
充す用意ができているのに、その夕一ゲットバソファは
それの非同期書込みオペレーションをまだ終っていない
からである。このことは、書込みオペレーションが終る
のを非同期的に待ち、終ってからターゲットバッファに
新しいデータを充すことができることを意味する。ブロ
ック143においてはTOOSMALLを真にセットす
る。ブロック142における判定の結果が肯定であれば
、制御の流れはブロック143へ進む。
ブロック151においては書込みトリガー1であるか、
現在のバッファにデータがあるしきい値百分率をこえて
充されているか、についての判定を行う。書込みトリガ
ー1であるから、制御の流れはブロック155へ進む。
ブロック155においては、ターゲットバッファの内容
が補助記憶装置へ完全に書込まれた後で、ターゲットバ
ッファからの古いデータのクリャが行われる。書込みオ
ペレーションがまだ終っていないとすると、ブロック1
55においては、ターゲットバッファをクリャするため
には、書込みオペレーションが終るのを非同期的に待た
ねばならない。
ブロック156においては、第1のバッファ31と32
の役割が変わる。ブロック156において最初に実行す
る前は、バッファ31がターゲットバッファで、バッフ
ァ32が前のバッファである。いまは、ブロック156
においてはバッファ31を「現在のバッファ」と呼び、
バッファ31が「ターゲットバッファ」となる。
ブロック161においては、ブロック143においてT
OOSMALL−真にセットされたかどうかの判定を行
う。その判定の結果が肯定であれば、バッファ31と3
2を大きくする必要がある。この好適な実施例において
は、書込みトリガを1だけ増大することによりそれを行
う。これはブロック162において行う。この動作によ
り、制御がこのループを次に通る時に、ブロック127
においてバッファのサイズが大きくされる。その理由は
、バッファのサイズはオペレーションのサイズに書込み
トリガを乗じたものに等しいからである。
ブロック161における判定の結果が否定であれば、ブ
ロック154においてTOOBIG一真とセットしたか
否かの判定をブロック165において行う。この判定の
結果が肯定であればバッファ31と32を小さくする必
要がある。好適な実施例においては、ブロック166に
おいて、書込みトリガを1だけ小さくすることによりバ
ッファ31と32は小さくされる。この動作により、制
御がこのループを次に通る時に、ブロック127におい
てバッファのサイズが小さくされる。というのは、バッ
ファのサイズはオペレーションのサイズに書込みトリガ
を乗じたものに等しいからである。制御の流れがこのル
ープを初めて通る時、または書込みトリガが1である時
は、ブロック165における判定の結果は肯定ではない
ことに注目されたい。ブロック165における判定の結
果が否定であると、バッファのサイズはちょうど正しく
、制御の流れはブロック166へ進む。そこから制御の
流れはブロック171へ進む。このブロックにおいては
、オペレーション(1つまたは複数のレコードを書込む
)が現在のバッファへ動かされる。
ここでの例においては、レコードはバッファ31へ動か
される。ブロック172においては書込み以来のオペレ
ーションの数を1つだけ増加させる。
ブロック173においては、現在のバッファがデータで
一杯かどうかの判定を行う。好適な実施例においては、
書込み以来のオペレーションの数が書込みトリガより大
きいか、それに等しいかを判定することによりその判定
を行う。制御の流れがこのループを初めて通る時はブロ
ック173における判定の結果は肯定である。その理由
は、書込み以来のオペレーションの数と書込みトリガが
両方とも1だからである。ブロック174においては、
現在のバッファの内容を補助記憶装置へ非同期的に書き
込む。この実施例においては、バッファ31の内容がデ
ータベース60のセグメント63へ書込まれる。ブロッ
ク174においては、ブロック174において非同期書
込みが求められた後で、「現在のバッファ」が「前のバ
ッファ」になる。したがって、この実施例においては、
バッファ31はいまは「前のバッファ」である。ブロッ
ク176においては、書込みスタートアドレスが零にリ
セットされる。ブロック181においては、これが最後
のオペレーション(全てのデータがデータベースに書込
まれた)かどうかの判定が行われる。判定結果が、肯定
であれば、プログラムはブロック182で終り、否定で
あれば制御の流れは第2B図のブロック121へ戻る。
この実施例においては、制御の流れがループを最初に通
る時はブロック181における判定結果は否定である。
その理由はデータベースに挿入すべきより多くのデータ
を有するからである。
制御の流れがループを1回目に通ると、データベース6
0のセグメント64にデータを書込むことを希望する。
ブロック122においてはアドレス挿入スタートアドレ
スをアドレス74(第1図)にセットする。ブロック1
28においては、ターゲットバッファアドレスはアドレ
ス71からアドレス72に増大する(第1図)。ブロッ
ク142においては、ターゲットバッファ(バッファ3
2)が補助記憶装置(セグメント62)に完全に書込ま
れたかどうかを判定する。その判定結果が否定であれば
バッファが小さすぎるから、ブロック143においてT
OOSMALL一真にセットする。ブロック156にお
いては第1図のバッファ31と32の呼び方を変える。
バッファ32は現在のバッファになり、バッファ31は
ターゲットバッファになる。ブロック174においては
現在のバッファ(バッファ32)の内容をデータベース
60のセグメント64に非同期的に書込む。それからバ
ッファ32はブロック175において前のバッファにな
る。
全てのデータがデータベース60に書込まれるまでは、
制御の流れはブロック121〜181を循環する。各バ
ッファ31と32が互いに蛙とびをしてデータベース6
0のセグメント61〜67へ書込むにつれて、ループを
通る種々の時刻にそれらのバッファはターゲットバッフ
ァ、前のバッファおよび現在のバッファと呼ばれる。ブ
ロック121〜181を何回も繰返し通った後で、バッ
ファ31と32のサイズが小さすぎることがブロック1
42において判定されると仮定する。書込みトリガ(そ
れは1に初期化されている)がブロック162において
繰返し増加させられ、いまは4であると仮定する。この
ことは、バッファ31と32のサイズがスタート時のそ
れらのバッファのサイズの4倍であることを意味する。
以前はバッファを充すために1回のオペレーションを行
うだけであったのに、いまはバッファを充すのに4回の
オペレーションセグメント61〜67のサイズの4セグ
メント分のデータを行なう。いまはバッファが大きすぎ
ることが可能であるから、ブロック151〜154はい
まは一層有意なものになる。ブロック151においては
、現在のバッファがあるしきい値百分率をこえて充され
るかどうかを判定する。好適な実施例においては、その
しきい値百分率は2分の1であるが、この百分率は異な
る値にセットすることができる。ブロック151におけ
る判定の結果が否定であれば、ブロック152において
前のバッファのアドレスを探す。これは、挿入のスター
トアドレスをとり、バッファのサイズを差し引くことに
よって行われる。
ブロック153においては、前のバッファ(ブロック1
74において非同期書込みを最後に行ったバッファで、
バッファ31または32のいずれか)の内容がデータベ
ース60の適切なセグメントに完全に書込まれたかどう
かの判定を行う。その判定結果が否定であれば、その書
込みオペレーションは早く終わりすぎたから、バッファ
は大きすぎることになる。理想的には、前のバッファの
書込みオペレーションは、現在のバッファが半分以上充
されるまでは、終わるべきではない。ブロック153に
おける判定の結果が肯定であればバッファは大きすぎ、
ブロック154においてTOOBIG−真にセットされ
る。この結果として、ブロック166において書込みト
リがか1だけ減少させられ、制御の流れが次にループを
通る時に、ブロック127においてバッファのサイズが
小さくされる。現在のバッファが一杯であることがブロ
ック173において示されるまでは、ブロック174〜
176における処理は行われない(非同期書込みは行わ
れない)。
好適な実施例においては、将来における最適なバッファ
サイズの第1の近似として過去の使用パターンを使用で
きるように、書込みトリガの値がデータベース60内に
保持される。たとえば、以前の挿入オペレーションのセ
ットが書込みトリガを4に等しくセットしたとすると、
新しい挿入オペレーションのセットが来た時に、制御の
流れがループを初めて通る時に、ブロック127におい
てこの履歴が考慮に入れられる。
次に、データベースの検索オペレーション中に、プロセ
ッサ20がバッファ31と32のサイズをどのようにし
て最適にするかを示す第3A〜3D図の流れ図について
説明する。この検索オペレーションは挿入オペレーショ
ンに類似するから、前に行った説明の多くを応用できる
。読む人の便宜のために、第2図のブロックに類似する
第3図のブロックには、第2図において用いた参照番号
より 100多い参照番号をつけることにする。たとえ
ば第3A図のブロック201は第2A図のブロック10
1に類似する。
ブロック201では検索するオペレーションがあるかど
うかを判定する。オペレーションという用語を、好適な
実施例においては、1つまたは2つのレコードを含んで
いるものと定義する。ブロック201においては、検索
するオペレーションが存在するまで待つ。それから、1
を受けた時に制御の流れはブロック202へ進む。ブロ
ック202においては、レコードの数にレコードの長さ
を乗ずることによりオペレーションのサイズを計算する
。ブロック202においてはバッファ31と32(第1
図)のサイズをオペレーションのサイズに等しくセット
することも行う。ブロック206においてはデータベー
ス60のセグメント61からのオペレーションをバッフ
ァ31へ非同期的に読込む。ブロック207においては
、セグメント62が次に検索されることをユーザーは要
求することを予測する。したがって、セグメント62は
バッファ32に非同期的に読込まれる。
ブロック208においてはバツファ31からオペレーシ
ョンをユーザーインターフエイス40を介してユーザー
へ動かす。
バッファ31が空になると、バツファ32は今は「現在
のバッファ」と呼ばれる。バツファ31は「ターゲット
バッファ」と呼ばれる。ブロック209においては、ユ
ーザーがセグメント62を要求した後で、ユーザーがセ
グメント63を要求するであろうことを予測する。した
がって、セグメント63はターゲットバツファ(バツフ
ァ31)に非同期的に読込まれる。バツファ31は今は
「次のバッファ」と呼ばれる。ブロック210において
はTOOSMALLとTOOBIGを偽に初期化する。
上記の読出しオペレーションを待つことなしに、ブロッ
ク221において検索のための別のオペレーションにつ
いて判定する。それから、1を受けたならば制御の流れ
はブロック222へ進む。検索すべき別のオペレーショ
ンをユーザーが望まないとすると、プログラムはブロッ
ク282に終わる。次のバッファが、補助記憶装置50
から非同期的読出しを介して、いぜんとして充されてい
るという事実が忘れられがちである。セグメント62と
63からのデータを検索することをユーザーは決して明
らかに要求しなかったから、それらのレコードはユーザ
ーへは送られない。ブロック222においては検索のス
タートアドレスをデータベース内の次に検索すべきセグ
メントのアドレスに等しくセットする。この例において
は、検索のスタートアドレスは、第1図にアドレス72
として示されている、セグメント62の初めのアドレス
に等しい。ブロック226においては、レコードの数に
レコードの長さを乗ずることにより、オペレーションの
サイズを計算する。
ブロック241においては、現在のバッファ(バッファ
32)のスタートにあるかどうかを判定する。この判定
結果は、制御の流れがループを初めて通る時は、肯定で
あり(現在のバッファからは何もユーザーへ動かされて
いないから)、制御の流れはブロック242へ動く。ブ
ロック242においては、現在のバッファの内容が補助
記憶装置から完全に読出されたかどうかを判定する。こ
の実施例においては、ブロック207において始めた、
データベース60のセグメント62カラハッファ32へ
の非同期的読出しオペレーションが終わったかどうかを
ブロック242において判定する。その判定結果が否定
であれば、バッファ31と32は小さすぎる。その理由
は、現在のバッファからのデータをユーザーへ動かす用
意ができているが、それの非同期読出しオペレーション
を終わっていないからである。このことは、現在のバッ
ファからデータをユーザーへ動がすことができる前に読
出しオペレーションが終わることを非同期的に待たねば
ならないことを意味する。
ブロック243はTOOSMALLを真にセットする。
ブロック242における判定によって、非同期読出しオ
ペレーションが終わったと判定したとすると、ブロック
243へ制御の流れが動く。
ブロック251においては、読出しトリガが1に等しい
か、または現在のバッファがあるしきい値百分率以下に
空にされたかどうかの判定を行う。
読出しトリガは1に初期化され、流れ図のこの点までは
変えられていないから、ブロック251における判定の
結果は肯定であり、制御の流れはブロック257へ動く
。ブロック253〜254については後で詳しく説明す
る。ブロック257においては現在のバッファからのオ
ペレーションをユーザーへ動かす。読出しトリガが1に
等しいと、現在のバッファにはただ1つのオペレーショ
ンが存在するから、ブロック257においては現在のバ
ッファの内容が全てユーザーへ動かされる。しかし、後
で述べるように、読出しトリガが1より大きいと、現在
のバッファには2つ以上のオペレーションがユーザーへ
動かされる。ブロック258においては、現在のバッフ
ァ中にはもっと多くのオペレーションがあるかどうかの
判定が行われる。その判定結果が、肯定であれば制御の
流れは第3B図のブロック221へ戻り、否定であれば
制御の流れはブロック256へ進む。このブロック25
6においては、第1図のバッファ31と32の呼び方を
変える。ブロック256における処理が初めて実行され
る前は、バッファ31は次のバッファであり、バッファ
32は現在のバッファである。今は、ブロック256に
おいては現在のバッファである。今は、ブロック256
においてはバッファ31は「現在のバッファ」と呼ばれ
、バッファ32は「ターゲットバッファ」になる。
ブロック261においては、ブロック243においてT
OOSMALLが真にセットされたかどうかを判定する
。その判定結果が肯定であると、バッファ31と32を
以後の読出し要求においてより大きくする必要がある。
これは、好適な実施例においては、読出しトリガを1だ
け大きくすることにより行われる。これはブロック26
2において行われる。この動作により、ブロック277
においてターゲットバッファのバッファサイズが大きく
される。その理由は、バッファサイズがオペレーション
のサイズに読出しトリガを乗じたものに等しいからであ
る。ブロック262においてもTOOSMALLを偽に
セットする。
ブロック261における判定結果が否定であれば、ブロ
ック254においてTOOBICが真にセットされたか
どうかの判定がブロック256において行われる。その
判定結果が肯定であれば、以後の読出しにおいてバッフ
ァ31と32をより小さくする必要がある。これは、好
適な実施例においては、読出しトリガを1だけ減少する
ことにより行われる。これはブロック266において行
われる。
この動作により、ブロック277においてバッファのサ
イズが小さくされる。その理由は、バッファサイズがオ
ペレーションのサイズに読出しトリガを乗じたものに等
しいからである。制御の流れがループを初めて通る時、
または読出しトリガが1の時には、ブロック265にお
ける判定の結果は否定である。ブロック265における
判定結果が否定であると、バッファのサイズはちょうど
良く、制御の流れは266へ進み、そこからブロック2
77へ動く。このブロック277においては前に述べた
ようにバッファのサイズが計算される。
ブロック278においては次のオペレーションが補助記
憶装置50からターゲットバッファへ読込まれる。この
例の場合におけるように読出しトリガが1に等しいとす
ると、1つのオペレーション(セグメント64)がター
ゲットバッファ(バッファ32)へ読込まれる。読出し
トリガが増大されて、それによりバッファ31と32の
サイズが増大されたとすると、ターゲットバッファを充
すために必要とするオペレーションの数が、補助記憶装
置50から非同期的に読出される。たとえば、読出しト
リガが4だとすると、4回のオペレーション(これは、
この例では、4つのセグメントに等しい)がターゲット
バッファに読込まれる。
それから制御の流れは第3B図のブロック221へ戻る
求められている全てのデータがデータベース60から検
索されて、ユーザーへ送られるまでは、制御の流れは第
3B〜3D図を循環する。バッファ31と32が互いに
蛙とびしてデータベース60のセグメント61〜67か
らデータを読出す間の種々の時刻に、それらのバッファ
はターゲットバッファ、次のバッファ、現在のバッファ
と呼ばれる。何回か繰返された後で、バッファ31と3
2のサイズが小さすぎると、ブロック242において判
定されたと仮定する。読出しトリガ(これは1に初期化
された)が今は4であると仮定する。このことは、バッ
ファ31と32のサイズが今はスタート時の4倍である
ことを意味する。そうすると、以前はバッファを充すの
にただ1つのオペレーションを要していたのに、今はバ
ッファを充すために4つのオペレーションを要する。そ
うするとブロック251〜254は今は一層重要になる
。というのは、バッファが大きくなりすぎることが今は
可能だからである。ブロック251においては、現在の
バッファがあるしきい値百分率以下に空にされた(オペ
レーションがユーザーへ送られた)かどうかを判定する
。好適な実施例においては、そのしきい値百分率は2分
の1であるが、この百分率は異なる値にセットすること
ができる。ブロック251における判定結果が否定であ
ると、制御の流れはブロック253へ動く。
このブロック253においては、次のバッファ(バッフ
ァ31と32のうち、ブロック278において非同期読
出しがオペレーションが最後に実行されたバッファ)の
内容がデータベース60から完全に読出されたかどうか
の判定が行われる。
この判定結果が否定であれば、その読出しオペレーショ
ンが早く終りすぎるから、それらのバツファは大きすぎ
る。理想的には、現在のバッファが一杯の半分以下に空
にされるまでは、次のバッファの読出しオペレーション
を終らせるべきではない。ブロック253における判定
結果が肯定であれば、それらのバッファは大きすぎる。
そうするとブロック254においてTOOBIGが真に
セットされる。これの効果として、ブロック266にお
いて読出しトリガが1だけ減少させられ、ブロック27
7においてバッファサイズがその減少に応じて小さくさ
れる。
以上、本発明の好適な実施例について説明したが、本発
明の要旨、範囲および教示から逸脱することなしにその
実施例を細部にわたって種々変更できることを当業者は
理解されるであろう。たとえば、データベース応用以外
の応用に本発明を使用できる。
【図面の簡単な説明】
第1図は本発明のコンピュータ装置の全体のブロック図
を示し、第2A〜2E図は本発明の挿入オペレーション
の流れ図を示し、第3A〜3D図は本発明の検索オペレ
ーションの流れ図を示す。 10・・・コンビュータ装置、20・・・プロセッサ、
30・・・主記憶装置、31、32・・・バッファ、4
0・・・ユーザーインターフエイス、50・・・補助記
憶装置、60・・・データベース。

Claims (1)

  1. 【特許請求の範囲】 1、第1のI/Oバッファがそれのデータオペレーショ
    ンを終る前に第2のI/Oバッファが完全に処理される
    ならば、前記第1のバッファのサイズと前記第2のバッ
    ファのサイズを増大させる過程と、 前記第2のバッファがしきい値百分率をトリガする前に
    前記第1のバッファがそれのデータオペレーションを終
    るならば、前記第1のバッファのサイズと前記第2のバ
    ッファのサイズを減少させる過程と、 を備える第1のI/Oバッファと第2のI/Oバッファ
    のサイズを最適にする方法。 2、第1のI/Oバッファの内容がデータベースに完全
    に書かれる前に第2のI/Oバッファが一杯であるなら
    ば、前記第1のバッファのサイズと前記第2のバッファ
    のサイズを増大させる過程と、 前記第2のバッファがあるしきい値百分率をこえて充さ
    れる前に前記第1のバッファの内容が前記データベース
    へ完全に書かれているならば、前記第1のバッファのサ
    イズと前記第2のバッファのサイズを減少させる過程と
    、 を備える、データベースにデータを挿入する時に第1の
    I/Oバッファと第2のI/Oバッファのサイズを最適
    にする方法。 3、第2のI/Oバッファの内容がデータベースから完
    全に読取られる前に第1のI/Oバッファが空であるな
    らば、前記第1のバッファのサイズと前記第2のバッフ
    ァのサイズを増大させる過程と、 前記第1のバッファがあるしきい値以下に空にされる前
    に前記第2のバッファの内容が前記データベースから完
    全に読取られているならば、前記第1のバッファのサイ
    ズと前記第2のバッファのサイズを減少させる過程と、 を備える、データベースからデータを検索する時に第1
    のI/Oバッファと第2のI/Oバッファとのサイズを
    最適にする方法。 4、第1のI/Oバッファと第2のI/Oバッファを有
    する主記憶装置と、 データベースを有する補助記憶装置と、 前記第1のバッファの内容が前記データベースに完全に
    書かれる前に前記第2のバッファが一杯であるならば、
    前記第1のバッファのサイズと前記第2のバッファのサ
    イズを増大させる手段と、前記第2のバッファがあるし
    きい値をこえて充される前に前記第1のバッファの内容
    が前記データベースへ完全に書かれているならば、前記
    第1のバッファのサイズと前記第2のバッファのサイズ
    を増大させる手段と、 を備える、データベースにデータを挿入するために最適
    にされた第1のI/Oバッファと第2のI/Oバッファ
    を有するコンピュータ装置。 5、第1のI/Oバッファと第2のI/Oバッファを有
    する主記憶装置と、 データベースを有する補助記憶装置と、 前記第2のバッファの内容が前記データベースに完全に
    読取られる前に前記第1のバッファが空にされるならば
    、前記第1のバッファのサイズと前記第2のバッファの
    サイズを増大させる手段と、前記第1のバッファがある
    しきい値以下に空にされる前に前記第2のバッファの内
    容が前記データベースから完全に読取られるならば、前
    記第1のバッファのサイズと前記第2のバッファのサイ
    ズを減少させる手段と、 を備える、データベースからデータを検索するために最
    適にされた第1のI/Oバッファと第2のI/Oバッフ
    ァを有するコンピュータ装置。 6、第1のI/Oバッファと第2のI/Oバッファを有
    する主記憶装置と、 補助記憶装置と、 前記第1のバッファの内容が前記補助記憶装置へ完全に
    書かれる前に前記第1のバッファが完全に処理されるな
    らば、前記第1のバッファのサイズと前記第2のバッフ
    ァのサイズを増大させる手段と、 前記第2のバッファがあるしきい値百分率をトリガする
    前に前記第1のバッファの内容が前記補助記憶装置へ完
    全に書込まれているならば、前記第1のバッファのサイ
    ズを前記第2のバッファのサイズを減少させる手段と、 を備える、最適にされた第1のI/Oバッファと第2の
    I/Oバッファを有するコンピュータ装置。 7、第1のI/Oバッファと第2のI/Oバッファを有
    する主記憶装置と、 補助記憶装置と、 前記第2のバッファの内容が前記補助記憶装置から完全
    に読出される前に、前記第1のバッファが空にされるな
    らば、前記第1のバッファのサイズと前記第2のバッフ
    ァのサイズを増大させる手段と、 前記第1のバッファがあるしきい値以下に空にされる前
    に前記第2のバッファの内容が前記補助記憶装置から完
    全に読出されるならば、前記第1のバッファのサイズと
    前記第2のバッファのサイズを減少させる手段、 とを備える、最適にされた第1のI/Oバッファと第2
    のI/Oバッファを有するコンピュータ装置。
JP2198982A 1989-08-31 1990-07-26 I/oバッファのサイズを最適にする方法および最適にされたi/oバッファを有するコンピュータ装置 Granted JPH03218514A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/401,335 US5179662A (en) 1989-08-31 1989-08-31 Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements
US401335 1989-08-31

Publications (2)

Publication Number Publication Date
JPH03218514A true JPH03218514A (ja) 1991-09-26
JPH0585922B2 JPH0585922B2 (ja) 1993-12-09

Family

ID=23587329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2198982A Granted JPH03218514A (ja) 1989-08-31 1990-07-26 I/oバッファのサイズを最適にする方法および最適にされたi/oバッファを有するコンピュータ装置

Country Status (4)

Country Link
US (1) US5179662A (ja)
EP (1) EP0415862B1 (ja)
JP (1) JPH03218514A (ja)
DE (1) DE69028261D1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826101A (en) * 1990-09-28 1998-10-20 Texas Instruments Incorporated Data processing device having split-mode DMA channel
US5410652A (en) * 1990-09-28 1995-04-25 Texas Instruments, Incorporated Data communication control by arbitrating for a data transfer control token with facilities for halting a data transfer by maintaining possession of the token
GB9111524D0 (en) * 1991-05-29 1991-07-17 Hewlett Packard Co Data storage method and apparatus
GB2267588B (en) * 1992-06-06 1996-03-20 Motorola Inc FIFO memory system
US5440692A (en) * 1992-10-27 1995-08-08 Bmc Software, Inc. Method of dynamically expanding or contracting a DB2 buffer pool
AU7090794A (en) * 1993-01-11 1994-09-14 Central Point Software, Inc. Method of transferring data using dynamic data block sizing
JP3305042B2 (ja) * 1993-04-23 2002-07-22 キヤノン株式会社 印刷制御装置
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue
US5664224A (en) * 1993-07-23 1997-09-02 Escom Ag Apparatus for selectively loading data blocks from CD-ROM disks to buffer segments using DMA operations
US5819083A (en) * 1993-09-02 1998-10-06 International Business Machines Corporation Minimal sufficient buffer space for data redistribution in a parallel database system
JPH07141116A (ja) * 1993-11-19 1995-06-02 Sony Corp 補助記憶装置
US6173385B1 (en) 1993-11-19 2001-01-09 Disk Emulation Systems, Inc. Address generator for solid state disk drive
EP0665502B1 (en) * 1994-01-27 2002-06-12 Sun Microsystems, Inc. Asynchronous serial communication circuit
US5544327A (en) * 1994-03-01 1996-08-06 International Business Machines Corporation Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied
US6128714A (en) * 1994-03-17 2000-10-03 Hitachi, Ltd. Method of processing a data move instruction for moving data between main storage and extended storage and data move instruction processing apparatus
KR960009006B1 (en) * 1994-04-18 1996-07-10 Poongsan Co Ltd Manufacture of coin
JP3810449B2 (ja) * 1994-07-20 2006-08-16 富士通株式会社 キュー装置
US5608889A (en) * 1994-08-17 1997-03-04 Ceridian Corporation DNA controller with wrap-around buffer mode
US5797042A (en) * 1995-03-16 1998-08-18 Intel Corporation Method and apparatus for adjusting the buffering characteristic in the pipeline of a data transfer system
US5680564A (en) * 1995-05-26 1997-10-21 National Semiconductor Corporation Pipelined processor with two tier prefetch buffer structure and method with bypass
US5784701A (en) * 1995-09-19 1998-07-21 International Business Machines Corporation Method and system for dynamically changing the size of a hardware system area
US5742789A (en) * 1995-12-28 1998-04-21 Emc Corporation Dynamically adaptive data retrieval for a disk drive storage system
US5799210A (en) 1996-04-18 1998-08-25 Oracle Corporation Method for allocating either private or shared buffer memory for storing data from sort operations in accordance with an assigned value or threshold value
US6601083B1 (en) 1996-08-29 2003-07-29 Frederick John Reznak Multitasking data processing system and method of controlling allocation of a shared resource
US6038620A (en) * 1996-09-09 2000-03-14 International Business Machines Corporation Method and system for optimal high speed match in a high performance controller which ensures an input/output interface stays ahead of a host interface
US5916309A (en) * 1997-05-12 1999-06-29 Lexmark International Inc. System for dynamically determining the size and number of communication buffers based on communication parameters at the beginning of the reception of message
US6046817A (en) * 1997-05-12 2000-04-04 Lexmark International, Inc. Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer
US6031624A (en) * 1997-09-08 2000-02-29 Lexmark International, Inc. Method and apparatus for adaptive data buffering in a parallelized printing system
US5951658A (en) * 1997-09-25 1999-09-14 International Business Machines Corporation System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory
US6233629B1 (en) * 1999-02-05 2001-05-15 Broadcom Corporation Self-adjusting elasticity data buffer with preload value
US6678813B1 (en) * 1999-10-28 2004-01-13 Hewlett-Packard Development Company, L.P. Dynamically adaptive buffer mechanism
US6829662B2 (en) 2001-06-27 2004-12-07 International Business Machines Corporation Dynamically optimizing the tuning of sockets across indeterminate environments
US6871206B2 (en) * 2001-11-20 2005-03-22 Ip-First, Llc Continuous multi-buffering random number generator
US7149764B2 (en) 2002-11-21 2006-12-12 Ip-First, Llc Random number generator bit string filter
US7136991B2 (en) 2001-11-20 2006-11-14 Henry G Glenn Microprocessor including random number generator supporting operating system-independent multitasking operation
US7219112B2 (en) 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US7080060B2 (en) * 2003-01-08 2006-07-18 Sbc Properties, L.P. System and method for intelligent data caching
US7827282B2 (en) * 2003-01-08 2010-11-02 At&T Intellectual Property I, L.P. System and method for processing hardware or service usage data
US7139785B2 (en) 2003-02-11 2006-11-21 Ip-First, Llc Apparatus and method for reducing sequential bit correlation in a random number generator
KR20060066097A (ko) * 2003-08-20 2006-06-15 코닌클리케 필립스 일렉트로닉스 엔.브이. 동적 메모리 버퍼
JP4208079B2 (ja) * 2004-05-14 2009-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースサーバ、プログラム、記録媒体、及び制御方法
JP4547198B2 (ja) * 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP5216463B2 (ja) * 2008-07-30 2013-06-19 株式会社日立製作所 ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージ
US10133883B2 (en) * 2009-02-09 2018-11-20 International Business Machines Corporation Rapid safeguarding of NVS data during power loss event
US20110040762A1 (en) * 2009-08-12 2011-02-17 Globalspec, Inc. Segmenting postings list reader
US9697242B2 (en) * 2014-01-30 2017-07-04 International Business Machines Corporation Buffering inserts into a column store database
CN109725840B (zh) * 2017-10-30 2022-04-05 伊姆西Ip控股有限责任公司 利用异步冲刷对写入进行节流

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3675216A (en) * 1971-01-08 1972-07-04 Ibm No clock shift register and control technique
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US4288860A (en) * 1979-08-02 1981-09-08 Sperry Corporation Dynamic storage synchronizer using variable oscillator and FIFO buffer
CA1162314A (en) * 1979-12-07 1984-02-14 Hideo Ota Data input/output method and system
US4422145A (en) * 1981-10-26 1983-12-20 International Business Machines Corporation Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US4509119A (en) * 1982-06-24 1985-04-02 International Business Machines Corporation Method for managing a buffer pool referenced by batch and interactive processes
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
JPS5969826A (ja) * 1982-10-15 1984-04-20 Hitachi Ltd バツフア制御方式
US5038277A (en) * 1983-11-07 1991-08-06 Digital Equipment Corporation Adjustable buffer for data communications in a data processing system
US4860244A (en) * 1983-11-07 1989-08-22 Digital Equipment Corporation Buffer system for input/output portion of digital data processing system
AU575351B2 (en) * 1983-11-07 1988-07-28 Digital Equipment Corporation Data processing system
US4819156A (en) * 1986-06-13 1989-04-04 International Business Machines Corporation Database index journaling for enhanced recovery
US4843544A (en) * 1987-09-25 1989-06-27 Ncr Corporation Method and apparatus for controlling data transfers through multiple buffers
FR2626693B1 (fr) * 1987-12-03 1990-08-10 France Etat Dispositif et procede a memoire tampon, notamment pour la transposition matricielle ligne-colonne de sequences de donnees

Also Published As

Publication number Publication date
US5179662A (en) 1993-01-12
EP0415862A2 (en) 1991-03-06
EP0415862A3 (en) 1992-08-12
DE69028261D1 (de) 1996-10-02
JPH0585922B2 (ja) 1993-12-09
EP0415862B1 (en) 1996-08-28

Similar Documents

Publication Publication Date Title
JPH03218514A (ja) I/oバッファのサイズを最適にする方法および最適にされたi/oバッファを有するコンピュータ装置
US4509119A (en) Method for managing a buffer pool referenced by batch and interactive processes
EP0130349B1 (en) A method for the replacement of blocks of information and its use in a data processing system
US6665747B1 (en) Method and apparatus for interfacing with a secondary storage system
EP1115060A2 (en) Device and method for performing high-speed low overhead context switch
US7908435B2 (en) Disk controller providing for the auto-transfer of host-requested-data from a cache memory within a disk memory system
JP2008204487A (ja) アウトオブオーダdramシーケンサ
JPH06110926A (ja) 情報検索装置
EP0097256A2 (en) Method and apparatus for managing a buffer pool referenced by batch and interactive process
US5835957A (en) System and method for a fast data write from a computer system to a storage system by overlapping transfer operations
JPH0789334B2 (ja) データベース管理処理方式
JPH04355818A (ja) データ入出力制御装置
CN101202758A (zh) 多客户端的网络虚拟存储方法
JP2735400B2 (ja) 非同期入出力制御方式
JP2787107B2 (ja) バッファ制御方式及び装置
JP2912657B2 (ja) ファイルアクセス処理装置
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH11306053A (ja) データ転送方法およびそれを実施する情報処理装置
CN116382781A (zh) 通用闪存ufs命令处理方法、装置、电子设备及介质
JPH0324612A (ja) ファイル更新検索処理装置
JPS635447A (ja) デイスクキヤツシユ制御方式
JPH05143457A (ja) コンピユータシステムから記憶システムへの高速データ書込のためのシステム及びその方法
JPH04251351A (ja) 磁気ディスクキャッシュ制御方式
JPH0242549A (ja) ライトアフタ型デイスクキヤツシユ制御装置
JPS58189888A (ja) ハ−ドウエア・スタツク装置