JPS62113234A - レコ−ドセツト分類方法 - Google Patents

レコ−ドセツト分類方法

Info

Publication number
JPS62113234A
JPS62113234A JP61262914A JP26291486A JPS62113234A JP S62113234 A JPS62113234 A JP S62113234A JP 61262914 A JP61262914 A JP 61262914A JP 26291486 A JP26291486 A JP 26291486A JP S62113234 A JPS62113234 A JP S62113234A
Authority
JP
Japan
Prior art keywords
cache
record
records
list
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.)
Pending
Application number
JP61262914A
Other languages
English (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.)
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 JPS62113234A publication Critical patent/JPS62113234A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/222Binary data tree
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Threshing Machine Elements (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はステージ式記憶システムにおいてキャッシュを
用いて分類ストリングを生成する方法に関するものであ
る。
B、従来技術およびその問題点 ローリンによる“Sorting and 5ort 
5yste+ms”(Addisou −Wesley
社発行、1975年)において、分類(sorting
)は項目を順番に配置するプロセスとして定義されてい
る。さらに、配列とはパンチカードのデックの配置や磁
気テープ上のレコードの配置のような物理的な配列を含
むが、分類オペレーションの出力は実際の物理的な再配
置を必ずしもいうものではない、とも指摘されている。
1つのファイルにおける配列は他の方法、特にインデッ
クスを使用することにより表現することができる。この
インデックス(又はこれと同等なもの)の再配置は゛論
理的配列″又は″“再配置″と呼ばれる。したがって分
類すべき要素が、リンクされたリストにおいて含まれて
いる場合、分類の順序を変更するには、そのリストにお
ける一連の要素を定めるためのポインタを変更する必要
がある。
最近のデータ処理システムは1階層的に構成されL R
U (least recently used)で管
理されるステージ式記憶システムに接続された命令プロ
セッサを有している。命令プロセッサに最も近く高速に
アクセスされるメモリは階層の上位に配置され。
低速なメモリはど階層の下位に配置される。メモリのコ
ストはその速度に応じて急激に増加するので、多くのコ
ンピュータシステムは物理的なメモリサブシステムを複
数の性能のレベルに分けている。これらのレベルのうち
にはDASDやテープ等のように伝統的にI10装置と
して取り扱われているものもあれば、主メモリとしてシ
ステムのハードウェアに直接取り扱われているものもあ
る。
゛1次記憶装置″又は゛内部記憶装置′″とは、単一の
読取り転送又は単一の書込み転送についてランダムにア
ドレス指定することのできるシステムメモリをいう。″
2次記憶装置″″又は“外部記憶装置”とは、ランダム
にアドレス指定されることがなく直接アクセスするには
あまりに低速な記憶装置、換言すれば、決まったサイズ
のブロックでアクセスしなければならない記憶装置をい
う。
キャッシュメモリは、1次記憶装置を構成するランダム
にアクセスされるメモリのアクセスタイムに比べてさら
に高速のアクセスタイムを有するメモリである。ランダ
ムアクセスメモリの参照はシステムによって管理される
ので、キャッシュの存在はアプリケーションソフトウェ
アにとってはトランスペアレントである。データは、普
通、参照データを含むラインでキャッシュに供給される
1つのラインは別のラインでオーバーレーされるまでは
キャッシュに存在する。キャッシュへのデータ転送およ
びキャッシュからのデータ転送は、普通、LRUアルゴ
リズムをハードウェア化したもので行われる。キャッシ
ュは、一定のメモリロケーションがよくアクセスされる
傾向にあるという原理に基づいて働くものである。主メ
モリのロケーションが読み取られると、これと同時にそ
の内容がキャッシュに記憶される。さらに、このロケー
ションへの読取り参照が自動的にキャッシュへ送られる
。書込みアクセスでは、普通、主メモリおよびキャッシ
ュの両方に書込みが行われる。
キャッシュは主メモリの多くの不連続なロケーションを
あられす場合があるので、主メモリのロケーションがキ
ャッシュにおいて現に重複されているか否かを判断する
のに内容アドレス式レジスタが使用される。
従来の分類方式は内部的手法によるものと外部的手法に
よるものとに分けられる。内部的手法は。
プロセッサの1次記憶装置内に完全に含まれるデータの
リストに対してのみ許容できる性能で適用し得るもので
ある。外部的手法は、1次記憶装置には長すぎるような
データのファイル、したがってテープ又はDASD等の
外部大容景記憶装置に頼らざるを得ないようなデータの
ファイルにうまく適用するものである。外部記憶のプロ
セスにおいては、ファイルの各部分は1次記憶装置に読
み取られ、内部で配列されてから外部装置に再書込みさ
れる。このプロセスは何度も発生し得る。これに対し、
内部的手法は送られるデータをパスごとに再配置する場
合に用いられるものである。再述すれば、外部的手法で
は一般に記憶すべきファイルについてまずパスを実行し
て、これを内部メモリのサイズで幾つかのブロックに分
解し、それからこれらのブロックを分類する。ファイル
の全体が分類し終るまでそのファイルのパスを何度か実
行しより大きな分類されたブロックを連続的に生成する
ことによって、分類されたブロックの集合について組合
せが実行される。たとえば、n個のキーに関する未配列
のリストがあって内部メモリの容址がm(<<n)ワー
ド分である場合、分類パスごとにn / m個の分類さ
れたブロックが生成される。もし後続のパスごとにp−
ウェイ組合せが実行されるとすればlog(n/m)個
のパスが必要となる場合がある。
したがって本発明の目的はCPUの主記憶すなわち内部
メモリを利用する分類オペレーションを改善することに
ある。さらに本発明の他の目的は、キャッシュ内で分類
オペレーションを実行し1分類に関係する資源を最小限
にする手法を提供することである。
C6問題点を解決するための手段 この目的を達成するため本発明のレコードセット分類方
法は、(a)第1のパスにおいて、レコードのサブセッ
トをキャッシュに呼び出して該サブセラ1−においてキ
ーを配列させるステップと。
(b)第2のパスにおいて、配列されたサブセットの要
素について前記キャッシュの容量に見合うように組合せ
を実行するステップとから成ることを特徴としている。
D、実施例 はじめに本発明の実施例を概説する9本実施例は2つの
予想しなかった知見から出たものである。
1つは、LRUで管理される記憶装置の低ミス率は参照
の局在性に基づくものであったということ、もう1つは
、たとえかかる局在性が分類オペレーションで見られな
かったとしても1分類すべき対象のサブセットをキャッ
シュの容量内にうまく納めればミス率はさらに小さくで
きるということである。
前記本発明の目的は、キャッシュが現に分類されている
レコードのキーを保管するためのものであるようなステ
ージ式記憶システムにおいてレコードを内部的な複数の
パスによる分類を行うための方法によって達成される。
この方法は、第1のパスで、(a)レコー[・のキーに
ついての未配列のサブセットをキャッシュに呼び出しこ
れを分類して1つの配列されたサブセットを形成するス
テップと、(b)レコードのキーについてのセットがな
くなるまでステップ(a)を繰り返すステップとを含む
。さらにこの方法は、第2のパスで、(c)置換選択を
用いて、1つの配列された出力が得られるようになるま
でキャッシュにおける複数のキーについての配列された
サブセットを組み合わせ(merqing)、これらの
サブセットがキャッシュ内に入るように且つ分類の間キ
ャッシュミスがルーコードにつきたった1回しか生じな
いように置換選択を動的に制限するステップを含む。
ところでにnuth Lこよる“Art of Com
puterDroqramming’″第3巻1分類お
よび探索、1973年、の第251ないし266頁には
置換選択分類が記載されている。米国特許第42109
61号のような他の文献には1分類(sort) /組
合せ(merqe)オペレーションにおいて配列された
ストリングについてのn−ウェイ式組合せに付随して計
算資源を最小にするということが指摘されている。上記
米国特許によれば、実際のストリングのサイズと予想さ
れたストリングのサイズとの比較結果に基づいて一定の
ストリングの配列の方向が。
組合せの前に、選択的に反転される。
他に、当該技術分野の現状を示すものとして、米国特許
第4417321号および第4510567号や、 S
edqewickによる“Alqorithmg”(A
dison −Wesley社発行、1983年)第1
1章。
優先待ち行列がある6後者の文献には、待ち行列に新た
なエレメントが挿入されるたびに最大のエレメントがそ
の待ち行列から削除されるような抽象データのタイプが
提案されている。これに関して、前者の両特許はこの優
先待ち行列を大容量記憶装置からオフィスシステムへの
分類およびステージングに応用している。この分類方法
はリスト又はバッファから、最下位にランクされたエレ
メントを除外するようにバイアスされているものである
以上に示した文献は本発明・・・・キャッシュにおいて
分類(sort)および組合せ(merqe)のパスを
動的に制限するような複数パスによる分類および組合せ
・・・・を示唆するものではない。
実施例によれば、第1のパスで、キャッシュを充てんす
る未配列の各サブセット内のエレメントの数、および各
々の組合せサイクルにおいて関係するエレメントの数を
個々のパスの間キャッシュに見合うものとする。ここで
は組合せの手法として置換選択を用いているが、オペレ
ーションの完了に必要な時間に多少の犠牲を払えば他の
組合せ方法を使うこともできる。しかしながらどのよう
す場合においても1分類中に生ずるミスはルーコードあ
たり高々1回である。
以下、実施例を詳述する。
キャッシュは競合しやすいものなので、プロセッサ内に
所在する一定の外部スケジューラでキャッシュの制御権
は分類タスクから別のタスク(又はその逆)に切り換え
ることができる0分類タスクが制御権を持っているとき
は、分類して配列すべきストリングの一部がキャッシュ
にロードされることとなる。分類タスクが割り込まれた
ときは。
別のタスクが制御権を取得して部分的に分類された結果
についてのタスクをフラッシュすることができる。キャ
ッシュがフラッシュされている間は、変更されるエント
リだけがメモリにコピーされる。
分類タスクは制御権を取り戻すと、残りのところから、
再開される0部分的に分類された結果は既に分類し終わ
っているからである。キャッシュは。
実際には1分類タスクに関係していてもそうでなくても
常にLRU方式で管理される。このようにキャッシュが
LRU方式で管理されることから、キャッシュの内容は
参照のパターンで決まることになる。もし参照される対
象のセットがキャッシュの容量よりもずっと大きい場合
は、対象が参照されたときキャッシュの内容が部分的に
置き換えられる0本実施例の基本的な概念は、キャッシ
ュ内で分類されるサブストリングを、キャッシュのLR
tJが呼び出されない程度に十分小さく保つことである
。サブストリングのサイズをどれくらい小さくするかを
決めるには、キャッシュのライン数およびサブストリン
グの深さを考慮に入れなければならない。
第1図は典型的な階層式メモリの構成を示す図である。
プロセッサの命令の実行によってメモリアクセスが行わ
れると、アクセスされたロケーションおよびその近傍の
内容がキャッシュにコピーされる。これらのロケーショ
ンに別の参照が行われた場合、低速の主メモリを必要と
するなくキャッシュから直接取出しをすることができる
。第1図に示した環境はメモリの深さの浅いところから
の要求時ページングに関するものである。これは、タス
クの実行について本実施例とは関係のない情報について
の下方への移行および要求に基づいて、よりアクセス可
能な部分に存在する。割込みによってタスクが突然に切
り換わるような多重プログラミング(又は競合)モデル
が、この仮想メモリ要求時ページングモデルに加えられ
る。このようにするのは、適切な作業セットをフラッシ
ュし再構成してから、現タスクを切り換えて関連する作
業セットを除去しなければならないためである。
第2図はLRUで管理されるキャッシュ(以下。
rLRU式キャッシュ」ともいう)の例である。
LRU式キャッシュでは各々の参照と最後の使用につい
ての時間とが関連付けられる。エレメントを置き換えな
ければならないときは、LRUによればキャッシュにお
いて最も長い時間にわたって使用されなかったエレメン
トが選択される。この置換えは時間的には逆行してみえ
る。LRUをキャッシュの1つの参照ストリングに適用
した結果が第2図に示しである。この例では12回のミ
スが生じている。エレメント4への参照が発生したとき
、最も長い期間にわたって使用されていなかったのはエ
レメント2である。そのとき最後に使用されていたのは
エレメントOであり、その前はエレメント3である。し
たがって、LRUは1次にエレメント2が使用されよう
としているとは知らずにエレメント2を選択する。次に
エレメント3への参照のためにミスが生じると、エレメ
ント0が最も長い期間にわたって使用されなかったもの
であるからこれが選択される。
本実施例は、現に分類されているレコードのキーがキャ
ッシュで保管されるようなステージ式記憶システムにお
ける内部的多重パス式レコード分類に関する技術である
。この手法は大きくいって2ステツプから成る。1つは
、レコードのサブセットの分類を、そのセット(ストリ
ング)が尽きるまで続けることである(a)。もう1つ
は、レコードのr層のサブセットのr個のレベルについ
ての置換薫選択(replacement 5elec
tion)による分類である(b)。これはキャッシュ
内に入るようそのサブセットを動的に制限し且つ1つの
レベル内での分類の間にキャッシュの参照ミスの発生が
ルーコード当り高々1回に抑えるようにして行われる。
この手法は、第1のパスの間に分類すべき各サブセット
に関する計算パラメータ(たとえばサブセットのサイズ
S)についての初期設定ステップを含む、1つの組合せ
段階が幾つかの組合せ(merqe)のサブパス(たと
えばnウェイおよびtウェイの組合せ)を含む場合は、
パラメータnおよびLも計算しなければならない。nお
よびしは選択トリー1−におけるノードの数にも対応し
ているということに留意されたい。
本実施例に基づく概念の理解を容易にするためこれを8
つのステップで記述する。ステップエないし3は上記初
期設定ステップに対応し、ステップ4は上記ステップ(
、)に対応する。残りのステップ5ないし8は上記の置
換選択組合せステップ(b)を−膜化したものに対応す
る。
レコードに関する配列されたリストを組合せるために使
用される出力トリーのサイズしを計算する。
トリー組合せオペレーションにおけるキャッシュミス率
が低くなるように制限しながら、できる限りtを大きく
選択する。
tはキャッシュのサイズと、トリー組合せオペレーショ
ンの特性(すなわち、このトリー組合せオペレーション
でどれだけのデータが参照されるかということ)と、分
類されるレコードおよびキーのサイズに基づくものであ
る。
ステップ2 分類すべき未配列のレコードのセットについてサイズS
を計算し、トリー組合せオペレーションのための初期的
な配列リストを生成する。
分類オペレーションにおけるキャッシュミス率が低くな
るように制限しながら、できる限りSを大きく選択する
Sはキャッシュのサイズと、初期的な配列リストを生成
する分類オペレーションの特性(すなわち、この分類オ
ペレーションでどれだけのデータが参照されるかという
こと)と、分類されるレコードおよびキーのサイズとに
基づくものである。
ステップ3 出力トリーについて配列されたリストを生成するために
組合せが必要なサイズSの配列リストの数であるnを計
算する。
分類オペレーションにおけるキャッシュミス率が低くな
るようにnを選択する。
所与のtおよびSに対して、nはプログラムに利用でき
る主記憶装置と、レコードのサイズとに基づくものであ
る。もう少し詳しくいえば、所与のtおよびSに対して
、nは一時にどれだけのレコードが記憶装置に存在し得
るかに基づくものである。nは、一時に記憶装置に存在
し得るレコードの最小の数をtとSとの積で割ったもの
となるように選択される。しは、キャッシュミス率を低
く保ちながらトリー組合せオペレーションで一緒に組み
合わせることのできる配列リストの最大数である。
ステップ4 人力レコードを取得してこれらを分類する。このステッ
プは主記憶装置が一杯になるまで繰り返される。
ステップ5 ステップ4で生成されたn個の配列リストの中間的なセ
ットを選択する。nが1なら、ステップ4で生成された
t個までの配列リストを出力トリーに加えて、ステップ
8へ進む。
ステップ6 上記中間的なセットからL個又はそれより少ない個数の
リストを除去し、これらを組み合わせて。
その合成された配列リストを中間的なセットに加える。
このステップは、中間的なセットが1つの配列リストに
なるまで繰り返される。
ステップ7 上記1つの中間的セットのリストを出力トリーに加える
。ステップ4からn個以上のリストが残っていればステ
゛ツブ5に行く。
ステップ8 作業ファイルバッファが充てんされるまで、リストから
のレコードを出力トリーに組み合わせる。
処理すべきレコードがまだ残っていればステップ4に行
く。
ステップ1において、レコードの配列リストを組み合わ
せるのに使用される出力トリーのサイズtが計算される
。tはトリー組合せオペレーションにおけるキャッシュ
ミス率が゛低くなるように選択すべきものである。ステ
ップ2において、サブセットSのサイズが計算される。
このサブセットSのサイズは、その深さについての下方
の限界表わすものである、すなわち、初期的配列リスト
又はトリー組合せオペレーションを生成するために分類
される未配列レコードのサブセットについてキャッシュ
内に入れることのできるサブセットの深さである。再建
すると、Sは分類オペレーションにおいてキャッシュミ
ス率が低くなるように選択される。ステップ3において
、出力トリーに関する配列リストを生成するのに組合せ
の必要なサイズSの分類されたサブセットの個数nが決
定される。この数nは利用可能な主記憶装置に基づくも
ので、所与のtおよびSに対して変動し得る。
ステップ4では、3個の入力レコードの取得およびそれ
らの分類が行われる。このステップは主記憶装置が一杯
になるまで繰り返される。
前述の如く、ステップ5ないし8は複数のサブパスを組
み合わせるステップに対応するものである。ステップ5
では、ステップ4において生成された配列リストのn個
の中間的なセットが選択される。もしnが1なら、単に
t個の配列リスト(これはステップ4で生成されたもの
である)を取得して、これを出力トリーに加えステップ
8に行く。ステップ8では、作業ファイルバッファが充
てんされるまで、出力トリーについてのリストからレコ
ードが組み合わせられる0作業ファイルバッファが充て
んされると、それらはそのとき書き込まれる。処理すべ
きレコードがまだ残っている場合は、ステップ4に戻ら
ねばならない、nが2以上であるときは、ステップ6へ
のブランチが生ずる。このとき、上記中間的なセットか
らt個またはそれより少ない数のリストが除去され、中
間的セットに加えられる配列リストと組み合わせられる
。このステップは中間的セットが1個の配列リストにな
るまで繰り返される。
ステージ式記憶システムにおいてキャッシュを使った分
類の例を2つ説明する。これらの例はメモリにおける1
2個のレコードを分類するものである。第1の例は従来
技術に基づく分類であり、第2の例は本発明に基づく分
類である。これらの例では、簡単のため、キャッシュ内
では一時に4つのレコードしか保持できないものと仮定
する。
二二に示す分類の手法は置換選択ではなく、単に。
リストの横断およびそのリストにおける最小のエレメン
トの選択に関するものである。この例に関していえば、
レコードはポインタによって論理的な配列でまとめてリ
ンクされているものと仮定する。この場合、分類手法は
単にポインタを書き直すことである。
まず、従来の方法について説明する。
メモリに在る全てのレコードを分類し、分類されたレコ
ードを作業バッファ又は他の出力領域へ適宜移動する。
主メモリ領域に在るレコードは初めは下記の順序でリン
クされているものと仮定する(ただし、これは必ずしも
物理的な順序を仮定しているわけではない)、レコード
の数は12個と仮定する。
分類方法 リストを横断して最下位のレコードを探索しそれを除去
する。再びリストを横断して新たな最下位のレコードを
除去する(以下同様)。この例は説明の簡単のために選
択されたものである。
キャッシュは4つのレコードを保持、又、初めは空であ
ると仮定されている。空であることはIt OtTで表
わすものとする。
キャッシュの初めの状態 キャッシュミスおよびキャツシュヒツトはそれぞれ“−
”および“+”で表わすことにする。
第1のレコード(Z)と第2のレコード(G)とを比較
する。
比較後のキャッシュ 一 〇 〇 これまでのところで最下位のレコード(G)と3番目の
レコード(B)とを比較する。
比較後のキャッシュ G+ これまでのところで最下位のレコード(B)と4番目の
レコード(A)とを比較する。
B+ これまでのところで最下位のレコード(A)と5番目の
レコード(K)とを比較する。
A+ に− Zはキャッシュからフラッシュされたことに留意された
い。
初回のパスはその最後の比較のところまで続く6最後に
これまでのところで最下位のレコード(A)と12番目
のレコード(Y)とを比較する。
A+ 一 リストの始まりのところからの全てのレコードはAを除
いてキャッシュからフラッシュされたことに留意された
い。
これでAは最下位のレコードであるとわかる。
したがってAはバッファ又や出力領域に移動される。第
1のパスの後、Aが除去されてメモリ領域中のレコード
は下記のうよになる。
次に第2のパスが開始され、そのリストに残っているも
のの中で最下位のレコードを捜すため再びリストを横断
する。
1番目のレコード(Z)と2番目のレコード(G)とを
比較する。
一 一 MおよびUはキャッシュからフラッシュされたことに留
意されたい。
これまでのところで最下位のレコード(G)と3番目の
レコード(B)とを比較する。
G+ 一 これまでのところで最下位のレコード(B)と4番目の
レコード(K)とを比較する。
B + に− Aはキャッシュからフラッシュされたことに留意された
い。
これまでのところで最下位のレコード(B)と5番目の
レコード(R)とを比較する。
B+ 一 Zはキャッシュからフラッシュされたことに留意された
い。
これまでのところで最下位のレコード(B)と5番目の
レコード(L)とを比較する。
B+ 一 Gはキャッシュからフラッシュされたことに留意された
い。
第2のパスはその最後の比較のところまで続く。
最後にこれまでのところで最下位のレコード(B)と1
1番目のレコード(Y)とを比較する。
B+ 一 これでBは最下位のレコードであるとわかる。
したがってBはバッファ又は出力領域に移動される。第
2のパスの後、メモリ領域には10個のレコードが存在
する。以上は11個の全てのパスについて続く。
データのパスごとにルコードあたり1回のキャッシュミ
スがあることに留意されたい。
ここでレコードの個数をXとする。そうするとデータに
ついてのパスはx−1回である。1回のパスについての
リストの平均的な長さはx/2である。1回のパスにつ
いてルコードあたり1回のキャッシュミスがあるから、
キャッシュミスの合計の回数は大雑把にいって、 x / 2 (x −1) = (x ” −x ) 
/ 2となる。上記の例でいうと、x=12であるから
(x”−x)/2−66である。
次に、本発明の基づく方法について説明する。
以下の記載は先に示した実施例のステップエないし8に
対応するものである。
ステップ1 出力トリーのサイズtが3と計算されたものと仮定する
ステップ2 未配列レコードのセットのサイズSが4と計算されたも
のと仮定する。
ステップ3 分類されたセットの数nが1と計算されたものと仮定す
る。
ステップ4 s  (=4)個の入力レコードを取得しこれらを分類
する。これは主記憶装置が一杯になるまで繰り返される
主記憶装置は先の従来例の場合と同様、12個のレコー
ドで一杯になるものとし、キャッシュも4個のレコード
を保持できるものとし仮定する。
メモリに在る初めの8個のレコードを分類する。
まず、1番目のレコード(Z)と2番目のレコード(G
)を比較する。
一 これまでのところで最下位のレコード(G)と3番目の
レコード(B)とを比較する。
一 これまでのところで最下位のレコード(B)と4番目の
レコード(A)とを比較する。
B+ これでAは最下位のレコードであるとわかる。
したがってAは配列されたリストの第1のレコードにリ
ンクされる。メモリ領域に存在するレコードは下記の如
くとなる。
このとき、キャッシュの内容は下記の如くである。
S個のレコードは初回のパスでキャッシュからフラッシ
ュされたことに留意されたい。
次に第2のパスの第1段階が開始される。
まず1番目のレコード(Z)と2番目のレコード(G)
とを比較する。
Z+ G+ これまでのところで最下位のレコード(G)と3番目の
レコード(B)とを比較する。
G+ B+ これでBは最下位のレコードであるとわかる。
したがって、Bは配列されたリストにおける第2のレコ
ードにリンクされる。メモリに存在するレコードは下記
の如くとなる。
第2のパスの第2段階では4つのレコードはキャッシュ
からフラッシュされなかったことに留意されたい。
第2のパスの第2段階が開始される。1番目のレコード
(Z)と2番目のレコード(G)とを比較する。
Z+ G+ Gは最下位のレコードであるとわかる。したがってGは
配列されたリストにおける第3のレコードにリンクされ
る。残っているレコードは2だけであるから、Zは配列
されたリス1−における第4のレコードにリンクされる
。かくして配列リストは下記のような論理的に分類され
た順序になる。
第2のパスの第3段階では4つのレコードはキャッシュ
からフラッシュされなかったことに留意されたい。
第1のパスでルーコードあたり1回のキャッシュミスが
生じたが、後続のパスではキャッシュミスは全く発生し
ていない。
ステップ4は主記憶装置が一杯になるまで繰り返される
。すなわち、この例でいうと、S個のレコードの後続の
セットは配列リストに記憶され、その結果は下記の如<
t(=3)個のリンクされたリストである。
A      D      M B      K      P G      L      U Z      RY レコードについての他の2つのサブセットの分類はここ
に示さなかったが、サブセット(ZGBA)が分類され
たのと同じやり方で行われる。これらの全てのサブセッ
トについて、キャッシュミスはルコードあたりわずかに
1つにすぎない。
ステップ5 n=1なので、を個の配列リストは出力トリーに加えら
れてステップ8へ行く。
ステップ8 ステップ4で生成されたt個の配列リストのレコードを
組み合わせる。
次に示すのは、メモリ領域における配列された4つのレ
コードについての3つのリストおよび出力トリーのはじ
めの構造である。
ここで、各リストの最前にあるレコードを分類するため
、分類されているレコードを横断して最下位のレコード
を探索しこれを除去し、再びリストを横断して新たな最
下位のレコードを除去する(以下同様)ものと仮定する
第1のし:+−ド(A)と第2のレコード(D)とを比
較する。
八− り− これまでのところで最下位のレコード(A)と第3のレ
コード(M)とを比較する。
A+ これでAは最下位のレコードであるとわかる。
したがってAはバッファ又は出力領域に移動される。配
列リストにおける次のレコード(B)が組み合わせられ
る。キャッシュのフラッシュが全く生じていないことに
留意されたい、キャッシュミスが発生するのは各レコー
ドを最初に参照したときたけである。メモリ領域におけ
る配列されたレコードについての3つのリストおよび出
力トリーの構造は下記の如くになる。
RY ここで、再び各リストの最前のレコードを比較して最下
位のレコードを捜す。
第1のリストからのレコード(B)と第2のリストから
のレコード(D)とを比較する。
D+ これ・までのところで最下位のレコード(B)と第3の
リストからのレコード(M)とを比較する。
B + M+ これでBは最下位のレコードであるとわかる。
したがってBはバッファ又は出力領域に移動される。配
列リス1−における次のレコード(G)が組み合わせら
れる。キャッシュのフラッシュが全く生じていないこと
に留意されたい。キャッシュミスが発生するのは、各レ
コードを最初に参照したときだけである。メモリ領域に
おける配列されたレコードについての3つのリストおよ
び出力トリーの構造は下記の如くになる。
RY ここで、再び各リストの最前のレコードを比較して最下
位のレコードを捜す。
第1のリストからのレコード(G)と第2のリストから
のレコード(D)とを比較する。
D+ AはキャッシュからフラッシュされたがAは既に出力領
域に移動されていることに留意されたい。
Aはもはや組み合わせられない。
これまでのところで最下位のレコード(D)と第3のリ
ストからのレコード(M)とを比較する。
D+ M+ これでDは最下位のレコードであるとわかる。
したがってDはバッファは出力領域に移動される。
配列リストにおける次のレコード(K)が組み合わせら
れる。キャッシュのフラッシュは、既に移動されたレコ
ードについてだけであり、したがってこれはもはや組み
合わせられないということに留意されたい。メモリ領域
において配列されたレコードについての3つのリストお
よび出力トリーの構造は下記の如くになる。
以上は全ての3つのリストにおける全てのレコードがバ
ッファ又は出力領域に配列された順序で記憶されるまで
同様にして続けられる。ここで重要なのは、ステップ8
の組合せにおいてルコードあたり1回しかキャッシュミ
スが生じないこと、およびキャッシュミスはレコードが
最初に参照されたときに生ずることである。その後、レ
コードはそれが組合せに選択されバッファ又は出力領域
に移動されるまでキャッシュに残る。
ステップ8の組合せにおいては、各レコードが組合せに
入れられるときルコードあたり1回のキャッシュミスが
生じるが後続のパスではキャッシュミスが生じないこと
に留意されたい。ステップ4においてもキャッシュミス
はルコードあたり1回しか生じない。
したがって、レコードの個数をXとして、この例では全
てのステップで合計2x回のキャッシュミスが生じてい
る。従来の方法によればこれは(x”−x)/2である
したがってこの例でいえば、従来の方法だと66回のキ
ャッシュミスが生じるのに対し本発明によればキャッシ
ュミスはわずか24回しか生じない。これはx=12の
場合についての比較であるが、Xが大きくなるにつれて
両方法の差はますます顕著なものとなる。
E1発明の詳細 な説明したように本発明によれば、キャッシュを用いて
レコードセットを有効に分類することができる。
【図面の簡単な説明】
第1図は階層式メモリの構成例を示す図、第2図は成る
参照ス1−リングについてのキャッシュの参照の様子を
説明する図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) 瑞1式メモリの#L成の例 第1図 壇り隈ストリシグ キヤツジ:L参照の撮乎

Claims (1)

  1. 【特許請求の範囲】 下記のステップ(a)および(b)より成るレコードセ
    ット分類方法。 (a)第1のパスにおいて、レコードのキーのサブセッ
    トをキャッシュに呼び出して該サブセットにおいてキー
    を配列させるステップ。 (b)第2のパスにおいて、配列されたサブセットの要
    素について前記キャッシュの容量に見合うように組合せ
    を実行するステップ。
JP61262914A 1985-11-07 1986-11-06 レコ−ドセツト分類方法 Pending JPS62113234A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US796034 1985-11-07
US06/796,034 US4962451A (en) 1985-11-07 1985-11-07 Cache-effective sort string generation method

Publications (1)

Publication Number Publication Date
JPS62113234A true JPS62113234A (ja) 1987-05-25

Family

ID=25167095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61262914A Pending JPS62113234A (ja) 1985-11-07 1986-11-06 レコ−ドセツト分類方法

Country Status (4)

Country Link
US (1) US4962451A (ja)
EP (1) EP0221358B1 (ja)
JP (1) JPS62113234A (ja)
DE (1) DE3688581T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01248232A (ja) * 1988-03-15 1989-10-03 Internatl Business Mach Corp <Ibm> レコード列組合せ方法
JPH0371227A (ja) * 1989-08-02 1991-03-27 Internatl Business Mach Corp <Ibm> ソーテイング方法
JPH05274117A (ja) * 1992-03-25 1993-10-22 Masaru Kiregawa ソート処理方式

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418965A (en) * 1988-06-24 1995-05-23 Mahar; Robert C. Subroutine-type computer program for enhancing the speed of data processing in data management programs systems
US6092153A (en) * 1988-11-14 2000-07-18 Lass; Stanley Edwin Subsettable top level cache
JPH02178730A (ja) * 1988-12-28 1990-07-11 Toshiba Corp 分割法を用いた内部ソート方式
US5224217A (en) * 1988-12-30 1993-06-29 Saied Zangenehpour Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement
JPH0776906B2 (ja) * 1989-06-30 1995-08-16 ディジタル イクイプメント コーポレーション 分類加速装置のための速度及びメモリー制御
US5339411A (en) * 1990-12-21 1994-08-16 Pitney Bowes Inc. Method for managing allocation of memory space
US5355478A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for avoiding cache misses during external tournament tree replacement sorting procedures
US5563997A (en) * 1992-11-16 1996-10-08 Canon Kabushiki Kaisha Method and apparatus for sorting records into a list box in a graphic user interface
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
DE4422208A1 (de) * 1993-11-19 1995-06-01 Hewlett Packard Co Verfahren und Vorrichtung zum stabilen Partitionieren einer sequentiellen Liste in einer Raum-adaptiven Weise
DE4438652A1 (de) * 1993-11-19 1995-05-24 Hewlett Packard Co Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise
US5487166A (en) * 1994-09-19 1996-01-23 Amdahl Corporation Computer with two-dimensional merge tournament sort using offset-value coding
JP3518034B2 (ja) * 1995-03-30 2004-04-12 三菱電機株式会社 ソート方法並びにソート処理装置並びにデータ処理装置
US6311184B1 (en) * 1995-10-06 2001-10-30 International Business Machines Corporation Sort and merge functions with input and output procedures
US7051159B2 (en) * 2003-06-30 2006-05-23 International Business Machines Corporation Method and system for cache data fetch operations
US8839215B2 (en) 2010-07-19 2014-09-16 International Business Machines Corporation String cache file for optimizing memory usage in a java virtual machine
CN103999058B (zh) * 2011-12-16 2017-02-22 国际商业机器公司 带驱动器系统服务器
US10853267B2 (en) * 2016-06-14 2020-12-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Adaptive method for selecting a cache line replacement algorithm in a direct-mapped cache

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6142031A (ja) * 1984-08-03 1986-02-28 Nippon Telegr & Teleph Corp <Ntt> ソ−ト処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4210961B1 (en) * 1971-10-08 1996-10-01 Syncsort Inc Sorting system
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US3845474A (en) * 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
AR221676A1 (es) * 1974-07-12 1981-03-13 Bioresearch Sas Procedimiento para la preparacion de sales estables sulfonicas y/o sulfuricas de la s-adenosil-l-metionina,particularmente utiles como donadores especificos de metilo para las reacciones bioquimicas de transferencia del grupo ch3;asi como tambien las reacciones fundamentales en el metabolismo lipilico,protilico y glucidico
US4037205A (en) * 1975-05-19 1977-07-19 Sperry Rand Corporation Digital memory with data manipulation capabilities
US4077059A (en) * 1975-12-18 1978-02-28 Cordi Vincent A Multi-processing system with a hierarchial memory having journaling and copyback
US4031520A (en) * 1975-12-22 1977-06-21 The Singer Company Multistage sorter having pushdown stacks with concurrent access to interstage buffer memories for arranging an input list into numerical order
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4257097A (en) * 1978-12-11 1981-03-17 Bell Telephone Laboratories, Incorporated Multiprocessor system with demand assignable program paging stores
US4467411A (en) * 1981-03-06 1984-08-21 International Business Machines Corporation Scheduling device operations in a buffered peripheral subsystem
US4510567A (en) * 1981-05-18 1985-04-09 International Business Machines Corp. Qualifying and sorting file record data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6142031A (ja) * 1984-08-03 1986-02-28 Nippon Telegr & Teleph Corp <Ntt> ソ−ト処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01248232A (ja) * 1988-03-15 1989-10-03 Internatl Business Mach Corp <Ibm> レコード列組合せ方法
JPH0371227A (ja) * 1989-08-02 1991-03-27 Internatl Business Mach Corp <Ibm> ソーテイング方法
JPH05274117A (ja) * 1992-03-25 1993-10-22 Masaru Kiregawa ソート処理方式

Also Published As

Publication number Publication date
US4962451A (en) 1990-10-09
EP0221358A3 (en) 1990-04-25
EP0221358A2 (en) 1987-05-13
DE3688581D1 (de) 1993-07-22
DE3688581T2 (de) 1993-12-23
EP0221358B1 (en) 1993-06-16

Similar Documents

Publication Publication Date Title
JPS62113234A (ja) レコ−ドセツト分類方法
US6571244B1 (en) Run formation in large scale sorting using batched replacement selection
Litwin Linear Hashing: a new tool for file and table addressing.
EP0127753B1 (en) Method for executing a distribution sort
JP4921865B2 (ja) アドレス関連テーブル構造を持つスキップ・リスト
US7194589B2 (en) Reducing disk IO by full-cache write-merging
US5487164A (en) Distribution-based replacement selection sorting system
EP0284663B1 (en) Method of handling disk sector errors in dasd cache
US4991088A (en) Method for optimizing utilization of a cache memory
US6871272B2 (en) Data sorting in information storage systems
US5434992A (en) Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US7493464B2 (en) Sparse matrix
JPH0364893B2 (ja)
US7237067B2 (en) Managing a multi-way associative cache
JP3093807B2 (ja) キャッシュ
CN113495692A (zh) 数据存储的方法和键值存储设备
US5414842A (en) External sorting using virtual storage as a work device
EP0717359A2 (en) Register cache for a computer processor
US7080206B2 (en) System and method for adaptively loading input data into a multi-dimensional clustering table
EA005269B1 (ru) Способ организации и хранения данных в базе данных и база данных
US20040047357A1 (en) Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
CN117828133A (zh) 一种基于键差值分离完善lsm树的键值存储方法及系统
Mokhtari et al. The SEPO Model of Computation to Enable Larger-Than-Memory Hash Tables for GPU-Accelerated Big Data Analytics