JPS6035692B2 - バッファ管理方式 - Google Patents

バッファ管理方式

Info

Publication number
JPS6035692B2
JPS6035692B2 JP56048541A JP4854181A JPS6035692B2 JP S6035692 B2 JPS6035692 B2 JP S6035692B2 JP 56048541 A JP56048541 A JP 56048541A JP 4854181 A JP4854181 A JP 4854181A JP S6035692 B2 JPS6035692 B2 JP S6035692B2
Authority
JP
Japan
Prior art keywords
buffer
queue
buffers
referenced
main memory
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
Application number
JP56048541A
Other languages
English (en)
Other versions
JPS57169983A (en
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 JP56048541A priority Critical patent/JPS6035692B2/ja
Publication of JPS57169983A publication Critical patent/JPS57169983A/ja
Publication of JPS6035692B2 publication Critical patent/JPS6035692B2/ja
Expired 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 本発明はバッファ管理方式に関し、特に主記憶と外部記
憶との間で転送される複数の単位データブロックに関し
て主記憶上にもうけられた該データブロック内容保持用
のバッファをキュー制御により連結処理しバッファキュ
ー群として管理するバッファ管理方式に関する。
すなわち、本発明はデータベース管理システム、ファイ
ルシステムなどにおいて、主記憶と外部記憶との間でデ
ータブロックの入出力を行う際のバッファ管理を効率よ
く行う方式に関するものである。
入出力の単位データブロックはページと呼ばれ、ページ
番号によって一意に識別されるようになっている。従釆
のバッファ管理の方法として、バッファ全体をLRU、
FIFOその他類似の方法で1本のキューにまとめて管
理する方法がある。しかしながら、この方法では目的と
するページのバッファが主記憶上にない場合、キュー全
体のサーチをして、すべてのバッファが目的とするペー
ジのものでないことを認かめないと目的とするページが
主記憶上にないということがわからず、無駄が多い。ま
た、目的とするページのバッファがキューの後の方にあ
る場合もそれを見つけるまでに時間がかかるという欠点
を持っている。本発明の目的はバッファのサーチにハッ
シュ機構を用いて、目的とするページのバッファが主記
憶上にない場合はその事実を早く判定でき、目的とする
ページのバッファが主記憶上にある場合はそれを早く見
つけることができ、さらに主記憶と外部記憶との間で行
われる入出力の回数をできるだけ減らすようにくふうを
ほどこしたバッファ管理方式を提供することにある。そ
してそのために本発明は、主記憶と外部記憶との間で転
送される複数の単位データブロックに関して、主記憶上
にもうけられた該データブロック内容保持用のバッファ
をキュー制御により連結処理しバッファキュー群として
管理するバッファ管理装置において、上記データブ。
ックの固有番号をハッシュテーフルェントリ番号に変換
するハツシュ処理部と、各ェントリ位置にそれぞれ、{
i}参照中更新バッファキューの先頭位置情報、‘ii
}参照中非更新バッファキューの先頭位置情報、‘ii
i)非参照中更新バッファキューの先頭位置情報および
【iv)非参照中非更新バッファキューの先頭位置情報
を保持するハッシュテーブルと、該ハッシュテーブル内
の各ェントリ中の上記各種先頭位置情報によりキュー制
御される複数のバッファを保持するバッファ領域とを有
し、上記バッファを部分集合に分割して制御するととも
に、当該バッファの属性にもとづいて各種の処理を行う
ようにしたことを特徴とする。以下に、まず従来技術の
問題点を指摘しつつ、本発明の要部を説明する。
従来方式において、バッファのサーチに時間がかかるの
は目的とするバッファが主記憶上にないときは主記憶上
にある正しい内容をもったすべてのバッファについてそ
れが目的とするページに対応するものでないことを確か
めなければその事実がわからず、また目的とするページ
のバッファが主記憶上にあるときでも、単にバッファキ
ュー全体を先頭からたどるような方法をとる限り、ほと
んどすべてのバッファについてそれが目的とするページ
に対応するものでないことを確かめた後に見つかるとい
うことが起こるからである。
このような事態が起こることを防ぐために、本発明にお
いては、正しい内容を持つたバッファの集合をSとする
とき、Sを互いに共通部分を持たないm個の部分集合S
,,S2・・・…Smに分割し、目的とするページのバ
ッファのサーチに際しては、まずそのバッファがS,,
S2・・・・・・,Smのどれに属するかを判定し、例
えばSiに属すると判断された場合はSiの各バッファ
が目的とするページのものであるか杏かを調べるという
方法をとる。これによって各バッファが目的とするペー
ジのものであるか調べる回数が約1/mに減ることが期
待され、効率の改善が期待される。各部分集合Siに属
するバッファはキューにつないで管理するのであるが、
主記憶と外部記憶の間の入出力の回数を減らす目的で、
現在ブ。
グラムから参照されて処理が進行中のものと、そうでな
い非参照中のものとに分けられ、さらにそのそれぞれは
外部記憶から主記憶し、読み込まれた後内容が更新され
たものとそのような更新が未だ行なわれていないものと
に分けられて管理される。つまり、Sは4m本のキュー
につないで管理されることになる。プログラムが処理中
のバッファは参照中キューになければならないこととし
、参照中キューにあるバッファは非参照中キューに移さ
れるまでは他のページのために使用することを目的とし
て転用されることなくその内容を保つたままで主記憶上
に存在し続けることが保障される。この機能を活用する
ことによって本バッファ管理装置のユーザは複数のペー
ジの内容主記憶上に固定して同時に処理したり、たびた
び参照すると予想されるページの内容を主記憶上に固定
して処理を進めることができる。バッファを更新された
ものと非更新のものとに分けて管理するのはバッファの
内容を外部記憶に書き出す回数を減らすことを目的とし
たものである。ページの内容を更新するには、まずその
ページの内容のバッファに読み込み参照中のバッファキ
ューに挿入し、その内容を主記憶上で直接更新する。そ
の後、そのバッファを参照中更新キューに移すと更新が
有効となる。しかし、外部記憶に対する更新はこの時点
では行われず、後になってそのバッファが他のページの
ために使用されることを目的として転用される時、その
内容を書き出すことによって行われる。これによって、
同一ページに対して2回以上の更新が行われる場合、最
後の更新が済んだあとの書き出しのみを行い、途中の書
き出しを省略できる可能性があり、無用な出力を減らす
ことができる。また、主記憶上にないページを参照する
時、全バッファがすでに使われていると、それらのうち
のどれかをそのページ用のバッファとして転用するので
あるが、その際非更新キューにつながっているバッファ
を優先させて転用するようにすれば、非更新バッファは
転用する際にその内容を書き出す必要がないので、書き
出しの回数を減らすことができる。以下、本発明を図面
により説明する。
図は本発明による実施例のバッファ管理機構であり、図
中、1はハッシュ処理部、2はm個のェントリを有する
ハッシュテーフル、3は使用中のバッファを保持する使
用中バッファ領域、4は禾使用のバッファを保持する未
使用バッファ領域、5〜8はハッシュテーブル2内の各
ェントリの内容を示し、5は参照中更新バッファキュー
の先頭位置情報保持部、6は参照中非更新バッファキュ
ーの先頭位置情報保持部、7は非参照中非更新バッファ
キューの先頭位置情報保持部、8は非参照中非更新バッ
ファキューの先頭位置情報保持部、9は未使用バッファ
キューの先頭位置情報保持部、10はGET処理部であ
り、指定されたページ番号に対応するページの内容を持
つバッファをユーザーに返送する処理を行うもの、1
1‘まPUT処理部であり、バッファ内容の更新を有効
にする処理を行うもの、12はFREE処理部であり、
バッファを非参照中キューに移す処理を行うもの、13
は参照中更新バッファキュー、14は参照中非バッファ
キュー、15は非参照中更新バッファキュー、16は非
参照中非更新バッファキュー、17は未使用バッファキ
ューである。主記憶上にあるハッシュテーブル1の中に
はm個のェントリが存在し、それらの各ヱントリには参
照中更新バッファキュー13、参照中非更新バッファキ
ュー14、非参照中更新バッファキュー15、非参照中
非更新バッファキュ−16のそれぞれの先頭位置情億が
記載されている。
ハッシュ処理部1はページ番号が与えられると、所定の
ハッシュ関数にもとづきハッシュテーブル中のェントリ
の位置を計算し当該ェントリにアクセスする。しかる後
、与えられたページ番号を持つページのバッファはその
ェントリからつながる4本のキュー(図示の例では13
〜16)のうちのどれかにつながる。さらにそれらとは
独立に、内容としてはどのページに対応する内容も持っ
ていない未使用のバッファをつないだキュ−が1本だけ
存在する。以上のバッファキュー群に対して、GET処
理部1 0、PUT処理部1 1、FREE処理部1
2が所要の処理動作を実行する。まず、GET処理部1
0の動作は以下の通りである。
最初に、指定されたページ番号をもつにハツシュテーブ
ル2中のェントリを求め、そこからつながるキューの中
にそのページに対応するバッファがあるか否かを調べる
。参照中キューにあった場合はそのバッファを当該バッ
ファ管理機構を使用中のユーザに返す。非参照中キュー
にあった場合、それが更新キューにあったか非更新キュ
ーにあったかに従って対応する参照中キューに移し、そ
のバッファをュ−ザに返す。4本のキューの中に指定さ
れたページのバッファがなかった場合は主記憶上にない
のであるから、そのページのために空きバッファを1枚
用意し、そこへそのページの内容を外部記憶から読み込
んで、それを参照中非更新キューに挿入し、そのバッフ
ァをユーザに返す。
空きバッファを用意するには、未使用キューが空でなけ
ればそれにつながるバッファの1つを、禾使用キューが
空であればどこかの非参照中キューの中の1つを転用し
て用いる。転用に当っては、どこかに非参照中非更新キ
ューで空でないものがあった場合にはそのキューの最後
尾のものを転用し、すべての非参照中非更新キューが空
であった場合には非参照中更新キューで空でないものを
さがし、そのキューの最後尾のバッファの内容を外部記
憶のそのバッファに対応するページの内容を記憶する部
分に書き出したあと、そのバッファを転用する。未使用
キューもすべての非参照中キューも空であった場合は本
バッファ管理機構は動作不能とする。参照中キュー内の
バッファは主記憶上に固定されており、処理が進行中な
ので、ここでの転用候補とはしない。次に、PUT処理
部11の動作は以下の通りである。
GET処理部10によって参照中キューに挿入されたバ
ッファの内容は、そのバッファ内で実際の更新を行った
後、PUT処理部11の制御によってその更新が有効と
される。PUT処理部11は指定されたバッファが参照
中更新キューにある場合は何もせず、参照中非更新キュ
ーにある場合は参照中更新キューに移す処理を行う。次
に、FREE処理部12の動作は以下の通りである。プ
ログラムで処理中の参照中バッファが必ずしも主記憶上
に存在し続けている必要がなくなった時点において、該
バッファを指定してFREE処理部12を起動すると、
該FREE処理部12には当該バッファを以後他のペー
ジ用として転用可能にするよう制御を行う。FREE処
理部12は指定された参照中キュー内のバッファを、更
新キュー内にあるか、非更新キュー内にあるかに従って
対応する非参照中キューの先頭に移す。この結果、非参
照中キューはLRUアルゴリズムによつて管理されてい
ることになり、ユーザによる連続的なべージの参照要求
列に対して、対応するバッファが主記憶上に存在する確
率が高くなるであろうと期待される。本発明によれば、
目的とするページのバッファが主記憶上にあるか否かを
サーチする際に、全バッファの集合の一部についてそれ
が求めているものであるか否かを調べるのみで済むので
、見つかるまで、あるいは求めているものが主記憶上に
ないことが判定されるまでの時間が短く、効率の向上が
期待できる。
また、バッファキュー参照中のものと非参照中のものと
に分けたことによって複数ページを主記憶上に固定して
同時に処理したり、後に参照することが明らかなべージ
やいましば参照するページのバッファを積極的に主記憶
上に固定することによって不要な入出力動作を省くこと
ができる。さらに更新されたバッファと更新されていな
いバッファのキューを分けたことによって複数回にわた
る更新や、空きバッファの用意のためのバッファの転用
の際の不要な出力を省くことができる。
【図面の簡単な説明】
図は本発明による実施例のバッファ管理機構である。

Claims (1)

    【特許請求の範囲】
  1. 1 主記憶と外部記憶との間で転送される複数の単位デ
    ータブロツクに関して、主記憶上にもうけられた該デー
    タブロツク内容保持用のバツフアをキユー制御により連
    結処理しバツフアキユー群として管理するバツフア管理
    装置において、上記データブロツクの固有番号をハツシ
    ユテーブルエントリ番号変換するハツシユ処理部と、各
    エントリ位置にそれぞれ、(i)参照中更新バツフアキ
    ユーの先頭位置情報、(ii)参照中非更新バツフアキユ
    ーの先頭位置情報、(iii)非参照中更新バツフアキユ
    ーの先頭位置情報および(iv)非参照中非更新バツフア
    キユーの先頭位置情報を保持するハツシユテーブルと、
    該ハツシユテーブル内の各エントリ中の上記各種先頭位
    置情報によりキユー制御される複数のバツフアを保持す
    るバツフア領域とを有し、上記バツフアを部分集合に分
    割して制御するとともに、当該バツフアの属性にもとづ
    いて各種の処理を行なうようにしたことを特徴とするバ
    ツフア管理方式。
JP56048541A 1981-03-31 1981-03-31 バッファ管理方式 Expired JPS6035692B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56048541A JPS6035692B2 (ja) 1981-03-31 1981-03-31 バッファ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56048541A JPS6035692B2 (ja) 1981-03-31 1981-03-31 バッファ管理方式

Publications (2)

Publication Number Publication Date
JPS57169983A JPS57169983A (en) 1982-10-19
JPS6035692B2 true JPS6035692B2 (ja) 1985-08-16

Family

ID=12806222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56048541A Expired JPS6035692B2 (ja) 1981-03-31 1981-03-31 バッファ管理方式

Country Status (1)

Country Link
JP (1) JPS6035692B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59207479A (ja) * 1983-05-11 1984-11-24 Hitachi Ltd 主記憶制御方式
JP3453757B2 (ja) * 1989-05-29 2003-10-06 株式会社日立製作所 バッファ管理方法

Also Published As

Publication number Publication date
JPS57169983A (en) 1982-10-19

Similar Documents

Publication Publication Date Title
EP3746906B1 (en) Cache for efficient record lookups in an lsm data structure
EP0072179B1 (en) Clearing invalid addresses in cache memory
US3938100A (en) Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
US6003043A (en) Text data registering and retrieving system including a database storing a plurality of document files therin and a plural-character occurrence table for a text index and an update text buffer to retrieve a target document in cooperation with the database
EP0019358B1 (en) Hierarchical data storage system
US9514041B2 (en) Memory controller and memory system
JPWO2004025475A1 (ja) データベースの再編成システム、並びに、データベース
JPH0668736B2 (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
JP2708657B2 (ja) スプリット制御方法
JPH0776944B2 (ja) 仮想索引機構
US5659739A (en) Skip list data structure enhancements
EP0173909A2 (en) Look-aside buffer least recently used marker controller
JPS6035692B2 (ja) バッファ管理方式
US5293617A (en) Data base system capable of quickly restoring a data block in a data section when a fault occurs during operation
EP0442690A2 (en) Data cache store buffer for high performance computer
CN111581440B (zh) 硬件加速b+树操作装置及其方法
US5684995A (en) Segment division management system
US20050278482A1 (en) Method and system for data processing for controlling a cache memory
JPH03116248A (ja) データベースのデータ保全方式
JP3335919B2 (ja) ディスクキャッシュ制御装置
US5659744A (en) Data file store system with means for efficiently managing freeing of data blocks
JP2604787B2 (ja) 二次元データ格納方式
JPS62204352A (ja) データベースの更新処理方法
JPH09293055A (ja) 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体
JPH0283640A (ja) データベース更新方法