JPH0776907B2 - 分類加速装置の制御 - Google Patents

分類加速装置の制御

Info

Publication number
JPH0776907B2
JPH0776907B2 JP2172505A JP17250590A JPH0776907B2 JP H0776907 B2 JPH0776907 B2 JP H0776907B2 JP 2172505 A JP2172505 A JP 2172505A JP 17250590 A JP17250590 A JP 17250590A JP H0776907 B2 JPH0776907 B2 JP H0776907B2
Authority
JP
Japan
Prior art keywords
records
record
processing element
input
output
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 - Fee Related
Application number
JP2172505A
Other languages
English (en)
Other versions
JPH03129520A (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.)
National Semiconductor Corp
Original Assignee
National Semiconductor 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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of JPH03129520A publication Critical patent/JPH03129520A/ja
Publication of JPH0776907B2 publication Critical patent/JPH0776907B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、分類加速装置に関し、特に、リバウンド分類
装置を併合装置として使用して多数のレコードを迅速に
且つ効率良く分類することの出来る分類加速装置に関す
る。本発明の加速装置は、極めて少ない部品を使用し、
その他の点では安価に製造することができ、上位コンピ
ュータとは独立に作動し、信頼性が高い。
(従来の技術とその問題点) 分類アルゴリズムのパイプライン方式VLSI装置は公知で
ある。IBMの開発したリバウンド分類装置は、データが
左側に沿って流れ下り、右側に沿って流れ上るU形状の
パイプラインを成すものとして視覚化することの出来る
一組の処理要素を含む。該処理要素は、同時に作動し
て、分類処理を高速化する。各要素は、二つのレコード
からのデータを比較し、その比較の結果に応じて、左側
に沿っての垂直下降運動及び右側に沿っての垂直上昇運
動を行うか、又は、『比較的に重い』レコードが左下方
へ動かされ且つ『比較的に軽い』レコードが右上方へ動
かされて結局は右側の上端から分類された順に出てゆく
こととなる様に水平交換を行う。この種のリバウンド分
類装置は、分類操作の高速化に利点を有するが、所要の
ハードウェアのコストが高いので、特に多数のレコード
を分類するために斯かる分類装置を広く使用することが
出来なかった。
複数の処理要素を使う他の種類の分類システムが提案さ
れている。しかし、全ての既知の種類のシステムには、
特に作動速度、ハードウェアのコスト、安定性及び信頼
性に関して限界がある。
(発明の概要) 本発明の或る面は、従来の分類装置の問題の根源及び限
界の発見と認識に関する。処理動作が数個の要素によっ
て同時に行われる分類装置は、分類操作を高速化するの
には有利であるが、分類できるレコードの個数が限られ
ているという点で限界がある。例えば、前述のIBMの分
類装置は、分類要素の総数より一つだけ多いレコードを
含むレコードのグループを分類できる。よって、15個の
処理要素は、最大で16個のレコードを含むグループを分
類する。大規模な分類では、斯かるシステムを使うハー
ドウェアの量とコストとは膨大となる。
本発明の分類加速装置にはリバウンド分類装置を設けら
れ、限られた数の処理要素が同時に作動して割合に少数
のレコードをグループに分類する。この時、同じリバウ
ンド分類装置が、分類されたグループを併合して、より
小さなグループのレコードの全てを分類された順に包含
する大きなグループにするのにも使われる。本発明の分
類加速装置では、例えば16個のデータ項目を分類するハ
ードウェアが、16路・併合を行うのにも使われる。分類
されるべきレコードの個数が大きくなっても、大分類の
ための処理要素の数を増やす必要はない。
本発明を取り入れた分類加速装置は、典型的にはアドレ
ス及びデータのバスを通じて上位コンピュータと上位メ
モリーとに接続される。該分類加速装置は、上位処理装
置とは独立に作動してレコードを高速で分類し、その分
類されたレコードを上位メモリーに格納する。該分類加
速装置の独立動作によって、上位コンピュータは、分類
及び併合操作が行われているときに自由に他の操作を行
うことが出来る。
好適な実施例では、分類加速装置は、入力部と、出力部
と、分類制御部と、分類部とを含む。分類制御部は、入
力部を制御してレコードのグループを分類部へ逐次に送
らせると共に、出力部を制御して複数の分類されたグル
ープを局所作業メモリー又は上位コンピュータのメモリ
ーの作業部分に格納させる。入力部、分類部、及び出力
部は、分類制御部から制御されて、レコードのグループ
を未分類の順序で受け取り、次にこのレコードのグルー
プの分類を、分類された順序で該グループを格納する。
これは、次に、分類されたレコードのグループを併合し
て、大きな分類されたグループ又はストリングにする。
該分類加速装置の分類部は、1期間に、或る最大個数の
レコードを下降順又は上昇順に分類することが出来、そ
の数は、或る実施例では16である。分類された16のグル
ープが作られると、これらのグループを一連の操作を通
じて併合して一つの大きな分類済みストリングとするこ
とが出来る。16個の大きな分類済みストリングが作られ
ると、それらは併合されて、より長いストリングとな
る。全てのレコードが分類されるまで、各回で16倍大き
なストリングを作りながら、このプロセスが繰り返され
る。この方法は、N lon wを越えない値に比例する速度
で分類をするが、ここでNはレコードの数であり、wは
処理要素の数より1だけ大きい数である。
この様な分類及び併合の機能を達成するために、分類部
又はリバウンド分類装置は僅かに15個の処理要素を有す
るだけでよい。処理要素はレコードのキーバイトを比較
して順序を決める。処理要素は、2個のレコード記憶要
素を介して互いに接続される。処理要素及びレコード記
憶要素の構成は垂直のコラムを見ることが出来、新たに
入力されたレコードは該コラムの頂部左側に入り、分類
されたレコードが該コラムの頂部右側から出てゆく。
レコードは16個のグループに分類され、格納部又は作業
空間メモリーに格納される。充分な数のグループが分類
された後、併合操作が始まる。併合のために、どの分類
されたグループに属するかを示すタグが各レコードに付
される。上昇分類では、各グループの最小のレコード
は、リバウンド分類装置から押し出されるまでリバウン
ド分類装置内に置かれる。このレコードは、分類された
各グループの最小のレコードの全集合のうちの最小のレ
コードである。リバウンド分類装置に送り込まれた次の
レコードは、全てのレコードのうちの最小のレコードを
以前から含んでいたグループから逐次に選択される。こ
の新しいレコードは、分類されたグループに由来するも
のであるので、最初の最小のレコードに等しいか又はそ
れより大きくなければならない。この手順は継続され、
新しいレコードは、最後に出力されたレコードの出所と
なったグループから選択される。全てのストリングが使
い尽くされると、併合は完了し、分類済みレコードの一
つの大きなグループが出来ている。
本発明の分類及び併合機能を迅速に且つ効率的に達成す
るために、本設計に色々な特徴が取り入れられる。外部
ハードウェアとの協働で、データが該分類加速装置に入
った点から、それが上位処理装置に戻るまで、そのデー
タは変造に関して検査される。それらのレコードが強化
されたリバウンド分類装置から出た後、となり合うレコ
ードの大きさを比較して、それらが適切に並べられてい
るか否か判定することによって、該分類加速装置の分類
及び併合特徴の正しい動作も検査される。
データが該システムを通過する際に該データの保全性を
検査する二つの方法が使われる。第1の方法では、バイ
トパリティを使ってデータ伝送のエラーを検出する。デ
ータの8ビットは9個のビット値でひ表される。余分の
ビットは、データの出所で計算されたパリティ値を示
す。レコードの保全性は、送信されたデータからパリテ
ィ値を計算し直し、その新しく計算された値を、送信さ
れたパリティビットと比較することによって検査され
る。不一致は、伝送エラーを示す。
データ保全性を保証するために使われる第2の方法は、
2レベル検査合計方式を使用する。検査合計は、各レコ
ードがリバウンド分類装置に入ってくるときに多数のバ
イトに対して計算される。検査合計は、後に、強化され
たリバウンド分類装置からレコードが出てゆくときに計
算し直されて、先に計算されていた検査合計と比較され
る。この比較により、リバウンド分類装置で発生するこ
とある2種類のエラーが検査される。第1の種類のエラ
ーは、データ経路での単一ビット故障(記憶要素故障を
含む)に由来し、第2の種類は、レコード同士の間の不
適切に制御されたバイトのスワッスング(交換)に由来
する(処理要素制御故障)。
分類順序検査装置は、強化されたリバウンド分類装置か
ら出てゆくレコードを、適切な分類について検査する。
シフトレジスターとして作用する特別の記憶要素は、一
つのレコードを保持し、比較論理と協働して、分類され
たレコードが適切な順序に並べられているか否か判定す
る。該比較論理の出力は、リバウンド分類装置がレコー
ドを不適切に分類したか否かを示す。
分類順序検査装置は、隣接するレコードのキーが等しい
か否かを示す『タイ』ビットも提供する。ユーザーソフ
トウェアは、この『タイ』ビットを利用して、分類加速
装置の容量を越えたキーフィルドに対して分類を行う
か、或いはユーザーが重複するレコードの分類後除去を
行うのを補助する。
本発明に従って構成された分類加速装置は、好適な実施
例では、ハードウェア要件を極めて小さくしながら、多
数のレコードの高速で安定した分類を達成する特徴を更
に含んでいる。一つの特徴は、分類加速装置で多数の分
類/併合を行うためのパイプライン制御である。このパ
イプライン制御は、異なるグループからのレコードを混
合せずに、且つ、新しいレコードのグループを該リバウ
ンド分類装置で分類する前に該リバウンド分類装置から
見かけレコードを流すことを必要とせずに、レコードの
グループを分類することを可能にする。
該パイプライン制御は、先のグループの最後のレコード
が第1処理要素によって検査された直後に分類加速装置
が新しいレコードのグループをリバウンド分類装置に押
し込み始めることを可能にする。パイプライン制御は、
リバウンド分類装置と並列の一系統のシフトレジスター
により達成される。新しいレコードのグループがリバウ
ンド分類装置に入る時、新しいレコードの組がリバウン
ド分類装置に入ったことを示す境界値が第1パイプライ
ンシフトレジスターにセットされる。該境界値は、第1
のレコードと共に、処理要素を通過するとき、シフトレ
ジスターの該系列を通してシフトされる。該値は、該処
理要素に対して、該境界値に続くレコードを、他のグル
ープのレコードと比較してはならないことを示す。この
様にして、リバウンド分類装置は完全にレコードが装填
された状態に保たれることが出来、レコードの随意の数
の異なるグループのレコードのローディング及びアンロ
ーディングが重なり合うことが可能となる。
分類加速装置の他の特徴は、安定分類の実行に関する。
安定分類は、等しいキーを持ったレコードは、入る際と
同じ相対的順序で分類加速装置から出てゆく様な分類で
ある。安定分類は、等しいキーを持ったレコードの順序
が既に決まっている様なアプリケーションで必要とされ
るものである。安定分類をリバウンド分類装置に組み込
むために、追加のハードウェアが付加され、アルゴリズ
ムが修正されている。
安定分類は、レコードの出所であるグループにより、そ
のレコードを識別するビットをセットすることによって
実施される。このグループ指定は、等しいキーを有する
異なるグループからのレコードを、入ってきた順序でリ
バウンド分類装置から出てゆかせる。『順序』ビット
は、等しいキーを持った同じグループからのレコード
を、入ってきた順にリバウンド分類装置から出てゆかせ
る。
分類加速装置の他の特徴は、データを格納するのに要す
るメモリーの量により約10%程度大きい作業空間メモリ
ーを必要とするに過ぎなくする様な併合先読み/メモリ
ー管理構成に関する。この特徴は、メモリーの使用効率
を高めるだけでなく、作業空間メモリーを線型拡張し、
これにより作業空間の上位システム管理を簡単にする。
最適の併合により、データを処理する回数が減り、従っ
て、併合/分類アルゴリズムを実行するのに要する時間
が短くなる。
作業空間記憶装置の割付は、分類制御部によって管理さ
れる。分類制御部は、分類されたデータに充分な記憶装
置が配分されているか否かを判定する。好適な実施例で
は、拡張された併合/分類アルゴリズムが入力フェーズ
及び出力フェーズの使用により分類及び併合の順序づけ
を制御する。
入力フェーズは、分類及び併合から成り、入力ストリン
グを構成する未分類レコードの全てが、レコードのグル
ープを分類することにより又はレコードのグループを併
合することによって処理され終わるまで、続く。全ての
入力レコードが分類又は併合された後で、出力フェーズ
が始まる。
この時点で、作業空間記憶装置の複数の領域に数個の分
類済みグループ又はストリングがある。出力フェーズ
は、一連の併合と、これに続く、レコードの分類を完了
させる最後の併合とから成る。
分類加速装置の併合機能の速度を更に高めるために、分
類加速装置はストリング番号又はタグ抽出先読み特徴を
利用する。本発明のこの特徴は、分類制御部により作ら
れた、与えられたレコードがどの入力ストリングに由来
するものであるのかを示す情報を利用する。この情報
は、分類制御部が次のレコードをリバウンド分類装置に
送ることを可能にするために必要である。先に記載した
ように、適切な併合は、次の入力レコードが最後の出力
レコードと同じグループに由来するレコードであること
を必要とする。若しストリング情報が分類制御部に送ら
れるのが遅過ぎると、リバウンド分類装置は次の入力レ
コードを待ちながら機能停止する。大概の場合、タグ先
読みは次の分類済みレコードがリバウンド分類装置から
出てゆく前にタグ情報を分類制御部に提供する。これに
より、次の入力レコードはリバウンド分類装置の入力で
待機することが出来るので、併合操作に遅延は生じな
い。
タグ先読み論理は、最小のレコードのグループ(上昇分
類の場合)を、それが実際に該分類装置から出力される
前に、早く決定する。これにより、次のレコードが出力
される前に分類加速装置は次の入力レコードへアクセス
を開始することが出来る。この技術を使って、非常に短
いレコードの場合、又は分類判定がレコードに対して非
常に遅くなされる場合を除いて、併合のレコード間遅延
を完全に無くすることが出来る。
該分類加速装置の一つの付加的特徴は、指標付けを行っ
て、レコード記憶要素として使われる可変長シフトレジ
スターを実現する循環RAMを使用することである。レコ
ードデータが処理要素間を通過する該レコードデータを
保持するためにRAMが使われる。この方法では、色々な
レコードの大きさに対処する様に、1ビット可変長シフ
トレジスターがプログラムされる。該ビットは、該可変
長シフトレジスターを通してシフトされるとき、RAMの
各行を順次に作動可能に、RAMはデータを読み出すか又
は書き込む。よって、この特徴は、極めて少ない量の論
理を使いながら、長さが可変となる様にしてシフトレジ
スターを実現する。この方法は、低速で、作動に多量の
電力を要するデータ用シフトレジスターを使用しない。
他の特徴及び利点は、添付図面と関連させて以下の詳し
い記述を読むことにより、もっと充分に理解できる。
(実施例) 参照数字10は、本発明の原理に従って構成された分類加
速装置を示す。分類加速装置10は、アドレス及びデータ
バス13を通じて上位コンピュータ11、上位メモリー12、
及び作業空間メモリー18に接続されており、上位コンピ
ュータ11からコマンドデータを受信して、上位メモリー
12に格納されているレコードを分類し、その分類したレ
コードをメモリー12に格納するようになっている。
コマンドデータは、例えば、分類されるべきレコードの
一グループのメモリー12におけるスタートアドレス又は
併合されるべきレコードのスタートアドレス、各グルー
プ内のレコードの長さ、各レコード内のキーフィールド
の長さ、所望の分類のモード、グループ内のレコードの
数、及び分類済みレコードを格納するメモリー12内のス
タートアドレスを含む。このコマンドデータの受信後、
分類加速装置10は、上位処理装置とは独立に作動して、
指定されたレコードを高速で分類又は併合し、その分類
されたレコードを上位メモリー12に格納する。上位コン
ピュータは、コマンド信号を分類加速装置10に供給した
後、他の操作を自由に行う。
図示の分類加速装置10は、システムインターフェース15
を通じて上位バス13に接続された局所アドレス及びデー
タバス14を含む。作業空間を提供する局所メモリー16
は、局所バス14に接続されている。局所メモリー16は随
意のものであるが、作業空間は図示のシステムに必要な
ものである。図示の局所メモリー16の代わりに、或い
は、それに加えて、上位メモリー12の一部を使って、局
所メモリー16の提供する作業空間の代わりとなる作業空
間を設けることが出来る。局所バス14は、入力部21、出
力部22、及び分類順序づけ装置34に接続するインターフ
ェース20を通じてリバウンド分類装置18に接続されてい
る。図示の様に、入力部21は、パリティ検査装置23、バ
ッファー24、LW(長ワード)からバイトへのアンパック
装置25、タグ挿入装置26及び検査パリティ/検査合計計
算装置27を含む。出力部22は、順序検査装置29を通じて
分類装置18に接続されており、検査合計及びパリティ生
成装置30、バイトから長ワードへのパッカー31、長ワー
ドバッファー32及びパリティ検査/生成回路33を含む。
リバウンド分類装置18及びインターフェース20は分類順
序づけ装置34に接続されており、この装置34は、上位プ
ロセッサ11から送られたコマンドデータを受信し、後述
するように入力、分類、格納、併合及び出力の動作を監
視し制御する。分類順序づけ装置34は、レジスターアレ
イ35と、ROM38に格納されているマイクロプログラムか
ら作動する命令レジスター37に接続されたALU36とを含
む。ALU37は、入力、分類、併合及び出力の操作の管理
制御を行う。分類順序づけ装置34は、分類順序、タグ先
読み及び雑務制御回路39を含む。分類操作及び併合操作
中にメモリーからレコードを迅速に取り出すために入力
部21に送られたアドレスを選択すると共に、他の機構も
実行する。
強化されたリバウンド分類装置18は、16個のレコードの
グループに対して、該レコードのキーの審査を通じて同
時処理操作を実行するように設計されている。これは、
その処理操作が実行される15個の部40-54を含み、この
部の個数は、処理されるグループのレコードの個数より
1だけ少ない。部40-54の各々は、処理要素と、付随の
レコード記憶要素とを含む。リバウンド分類装置18の特
徴は、記憶回路56の使用を通じてレコード記憶要素を実
現することに関し、この回路56は、RAM及び読み書き回
路を含み、RAMインデックス回路58の制御下で作動す
る。
別の特徴はレコードの別々のグループの混合を防止しな
がら遅延を防ぐために、強化されたリバウンド分類装置
18への装填及び排出を制御するパイプライン制御回路60
の設置に関する。レコード制御回路62は、部40-54の処
理要素とパイプライン制御回路60とにタイミング信号を
供給する。
追加の特徴は、ハードウェア要件を小さくし且つ他の利
点を達成しながら多数のレコードの高速分類を達成出来
る態様で分類及び併合の両方を行うための強化リバウン
ド分類装置18の使用に関する。特別の特徴は、後述する
ように、安定した信頼できるレコード分類及び分類済み
レコードの併合を容易にする態様で、処理操作中に個々
のレコードを識別することに関する。
以上に記載した分類加速装置の作動時には、コマンドデ
ータが最初にインターフェース部を通じて分類順序づけ
装置34に送られる。分類順序づけ装置34は、入力される
べきレコードの各グループの第1レコードの開始アドレ
ス、該グループのレコードの長さ、各レコードのキーフ
ィールドの長さ、レコードの個数及び開始アドレス、並
びに、分類済みレコードを格納するべき場所に関する他
のデータを含む、対応する制御データを作ってレジスタ
ーアレイ35に格納する。コマンドデータが分類順序づけ
装置34を通じて送られた後、次の動作が始まり、入力部
21はアドレス回路23を使ってレコードデータを上位メモ
リー12から取り出し、次に、入力部21はバイト挿入装置
25を使って、修正されたレコードを作る。修正されたレ
コードの連続的なストリームをリバウンド分類装置18に
送ることが出来、各々の修正されたレコードは或る偶数
個の逐次バイトから或る。
好ましくは、修正されたレコードは、各々、第2図に示
されている形を有し、該分類装置に最初に入る先行の1
個以上のキーバイドKと、これに続くタグバイトT(バ
イト挿入装置25により付加される)と、1個以上のデー
タバイトDとを含む。レコード中に偶数個のバイトを得
ることが必要な場合には後続のパッドバイトPが、図示
の様に、バイト挿入装置25により各レコードに付加され
る。
タグバイトTの挿入は、与えられたレコードの出所とし
ての入力ストリングを確実に且つ効率的に識別すること
を可能にし、且つ後述するように迅速な併合操作を容易
にする特徴である。他の特徴によると、後述するよう
に、高度に安定した分類操作を保証するために使われる
『順序』ビットを各レコードが含んでおり、この『順
序』ビットは好ましくはタグバイトに包含される。
操作の入力フェーズでは、分類操作が行われて16個のレ
コードが図示のリバウンド分類装置18の中へシフトされ
る。一つのグループの最後のレコードがリバウンド分類
装置18内にシフトされると同時に、そのグループの16個
のレコードは、分類された順に該リバウンド分類装置か
ら出始める。この様にして16個のレコードの分類済みス
トリングが形成され、出力部22によって作業空間メモリ
ー16に送り込まれる。
他の特徴は、動作速度を高めるパイプライン制御回路60
の使用に関する。16個のレコードの各分類済みグループ
がリバウンド分類装置18から出てゆくとき、他の分類動
作が開始されて他の16個のレコードのグループが実際上
同時にリバウンド分類装置18内にシフトされる。パイプ
ライン制御回路60は、この二つのグループのレコードを
混合せずにこの操作を行わせる様に設計されている。
16個のレコードの第2のストリングが分類されて出力部
22によって送られて作業空間メモリー16に格納されてゆ
くとき、16個のレコードの第3のグループがリバウンド
分類装置18内にシフトされてゆき、次に、各々16個の分
類済みレコードから成る16個のストリングが作業空間メ
モリー16に格納されるまで第4及び後続の16個のレコー
ドのグループがシフトされてゆく。後に詳しく説明する
ように、『アップ併合』操作が行われ、この操作によ
り、各々16個のレコードから成る16個の分類済みストリ
ングからレコードが取り出されてリバウンド分類装置18
内にシフトされて、256個の分類済みレコードから成る
単一のストリングが形成され、これが作業空間メモリー
に格納される。最後のレコード又は分類又は併合の直後
に併合を開始することが出来る。
256個のレコードの単一のストリングが格納された後、
他の分類操作が行われて、各々16個のレコードから成る
他の16個のストリングが作業空間メモリー16に格納さ
れ、その後に他のアップ併合操作が行われて256個の分
類済みレコードの第2のストリングが形成され格納され
る。各々256個のレコードから成る16個のストリングが
形成され格納された後、更に他のアップ併合操作を行っ
て4096個のレコードから成る単一のストリングを形成し
格納すことが出来る。
入力ストリングが4096個より多いレコードを有するなら
ば、入力ストリング全体が処理されるまで、追加の分類
及びアップ併合操作が行われる。入力フェーズでは、レ
コードは全て4096個のレコードを包含する数個のストリ
ングに分類されるが、最後のストリングだけは例外で、
入力ストリングの長さに応じて4096個の少ないレコード
を包含することがある。形成されることの出来るストリ
ングの数は、使用可能なメモリーによってのみ限定され
る。
入力フェーズの分類及びアップ併合操作が完了すると、
出力フェーズが始まって、必要に応じて併合が行われて
ストリングの数が16以下に減らされ、次に最後の併合が
行われて分類済みレコードが上位メモリー12の、上位コ
ンピュータ11からの最初のコマンドで指定されるアドレ
スから始まるアドレスに直接書き込まれる。更に他の特
徴は、併合されるべきストリングの作業メモリー又は中
間メモリーにおける格納の管理と、格納されているスト
リングを中間メモリーから併合のためにリバウンド分類
装置18に供給する方法とに関する。
分類加速装置10は、パリティ及び検査合計の検査を含む
検査操作に関連する特徴も含んでおり、これらの検査
は、処理エラーを検出すると共に、分類加速装置10から
出力される分類済みレコードの保全性を保証しながら最
適な分類及び併合の操作が出来る様に行われる。
パイプライン制御を有するリバウンド分類装置(第3図
ないし第5図) 分類加速装置10の心臓部は、第3図に単純化された形で
示されているリバウンド分類装置18である。第4A図及び
第4B図は、該分類装置中のデータの流れの、簡単化され
た例を示す。リバウンド分類装置18の構成は、第5図に
詳しく示されており、分類装置18の個々の回路は他の図
に示されている。
分類装置18は、典型的には名前又は番号のASCII表示を
提供するバイトであるレコードのキーに割り当てられた
数値に一致する順にレコードを配列する。該分類装置
は、希望に応じてレコードを上昇又は下降の順に分類す
ることが出来る。本書において動作を記述し、混乱をな
るべく無くするために、レコードキーの比較に言及する
ときには『より大きい』及び『より小さい』という用語
を使用する。『より大きい』キー及び『より小さい』キ
ーに付随する実際のキー値は、行われている分類が上昇
分類である下降分類であるかに依存し、本書における
『より大きい』及0『より小さい』という用語の使用は
発明に対する限定と解されるべきではないことが分か
る。
第3図を参照すると、分類装置18は、実際にN個のレコ
ードキーを比較することの出来るN−1要素のリバウン
ド分類装置である。Nは図示の実施例では16であり、N
−1個の処理要素はPE0ないしPEN-1と示されていて、第
1図に示されている部40-54に包含されている。
キー比較は、一時に1バイトずつ、N−1個の処理要素
の全てで行われるか又は並列に動作する。キーのバイト
の比較は、キーからのバイトが一致しなくなるまで続け
られる。その時、該バイトの符号を除いた二進値に基づ
いて、どのキーがより大きいか判断される。上昇分類で
は、より大きなキーは、より大きな符号無し二進バイト
値を持っているキーである。下降分類では、より大きな
キーは、より小さな符号無し二進バイト値を持っている
キーである。
N−1要素リバウンド分類装置は、以下の特性を持った
ブラックボックスと見ることの出来るものである。N−
1個のレコードが装填された後、新しいレコードがこの
箱に投入されると、この新しいレコードと、既に該箱の
中にあるN−1個のレコードとの中の最小のレコードが
該箱から出てくる。
第3図に略図示されている様に、リバウンド分類装置
は、各々IERSとして示されている要素間レコード格納部
を介して接続されたN−1個の処理要素から成ってお
り、2個のIERSが各PEに付随している、各PEは各期間に
2個の入力ガイドを受け入れて2個の出力バイトを作
る。各IERSは各期間に1バイトを受入れて1バイトを作
る。各IERSはレコードの半分を保持し、シフトレジスタ
として作動する。IERSのバイト入力は出力においてR/2
期間後に作られるが、ここではRはレコード中のバイト
の数である。処理要素及び要素間レコード格納部の構成
は、垂直のコラムと見なすことの出来るものであり、新
しいレコードは該カラムの、第3図の頂部左側及び右側
から出入りする。
IERS要素は、次のようにしてPEに接続されている: (a) 該コラムを下るPEmからの出力バイトは、IERSm
への入力である。
(b) IERSmの出力は、IERSN+N−3への入力である
IERSN−2を除いて、下降するPEm+1への入力である。
リバウンド分類装置への入力は、PE0への入力である。
(c) 該コラムを上昇するPEmからの出力バイトは、
該分類装置の出力であるPE0を除いて、IERSN−1+m−
1への入力である。
(d) IERSN−1+m−1の出力は、PEm−1への入力
である。
より大きなキーを持ったレコード(最後のシーケンスで
遅くに分類するもの)は該コラムの底に向かって降下
し、より小さなキーを持ったレコード(最後のシーケン
スで早くに分類するもの)は該コラムの頂部へ向かって
上昇する。本発明の加速装置では、比較されるべきレコ
ードのグループは、該コラムに入る新しいレコードが該
コラム中に既に在るレコードと混合されるのを防止する
『境界』条件を作ることによって分離される。これによ
り、実際に、グループが該コラムから流し去られ、新し
いグループが装填される。
各PEは、該コラムを下降するレコード及び上昇するレコ
ードの第1バイトが与えられたときに処理を開始する。
若し下降しているレコードが上昇しているレコードより
大きければ、それは該コラムを下降し続け、そして、上
昇しているレコードは該コラムを上昇し続ける。若し下
降しているレコードが上昇しているレコードより小さけ
れば、それは逆に該コラムを上昇させられ、上昇してい
たレコードは逆に該コラムを下降させられる。各IERSは
レコードの半分を内蔵しているだけなので、偶数番号の
PEは、奇数番号のPEとは半レコードだけ位相がずれてい
る。
本発明の加速装置のパイプライン制御は、新しいレコー
ドが与えられた時、キーの終わりが到達した時、及びそ
れらを比較するべきか否か(『境界』条件)を知る様に
PEの順序づけを制御する。
第4A図及び第4B図において、4個の2バイトレコードの
組を分類すの単純化された3要素リバウンド分類装置が
示されており、図示の加速装置10は僅か4バイトだけを
必要とするものであり、簡単のために、この例では2バ
イトを使われる。図示の単純化されたリバウンド分類装
置への下記の入力シーケンスを考察する。2個の数字が
それぞれレコードである: 85393274 この例では、以下の仮定を用いる: (a) 該キーはレコードの全体である。
(b) 箱は処理要素を表す。
(c) 箱と箱との間の垂直線は、1個の数字を保持す
る要素間レコード格納部を表す。
(d) 垂直線の隣に示されている数字は、IERSに包含
されているデータの値を表す。xは、『無頓着な人』デ
ータ(“don't care"date)を示す。
(e) 『<−』という記号は、新しいグループの第1
バイトを示す(『境界』条件)。
(f) PR状態は、PEの中に示されている『DS』、『P
V』、『PH』、『EV』、及び『xx』という記号で指示さ
れている。
(g) DS=決定状態(垂直に通過) (h) PV=垂直に通過 (i) PH=水平に通過 (j) FV=垂直に押し進める(垂直に通過) (k) xx=頓着しない(don't care)。
図示の状態は、分類装置の動作を理解するのに役立つ。
例えば、PEの初期状態は、データをIERSに装填する『R
V』である。4番目のクロック後に、最低のPE要素が『D
E』(決定)状態に入り、二つの記録の第1の可能な比
較が行われる。
14クロック後に最後のデータ値『5』が分類装置の出力
に現れる。よって、該出力ストリームは『32397485』と
なる。
第5図において、前述の処理要素PE0、PE1及びPEN−2
は、部40、41及び54に包含されている。
部40の処理要素は、2個のマルチプレクサ65及び66、制
御回路67及び比較器67を含む。上左側のUL入力ライン69
は、マルチプレクサ65の1入力とマルチプレクサ66の1
入力とに接続されている。第2のLR入力ライン70はマル
チプレクサ65の第2入力とマルチプレクサ66の第2入力
とに接続されている。マルチプレクサ65及び66の出力
は、それぞれ、下左側のLL出力ライン71及び上右側のUR
出力ライン72に接続されている。マルチプレク65及び66
は、比較器68の出力により制御される制御回路67によっ
て制御され、比較器68の入力はULライン69及びLRライン
70に接続されている。
処理要素がバイトを垂直に移動させている時には、マル
チプレクサ65及び66は、バイトがULライン69から下方に
LLライン71へ移動し、バイトがLRライン70から上方にUT
ライン72へ移動することとなる様に制御される。バイト
が水平に移動させられる反対の状態では、ULライン69上
のバイト入力はマルチプレクサ66を通じてURライン72へ
送られ、LRライン70上のバイト入力はマルチプレクサ65
を通じて左方にLLライン71へ送られる。ライン69-72
は、バイトの全てのビットを並列に送る複数の信号経路
を提供し、バイトは一つ一つ順次に送られる。
部40-54の全ての処理要素は、同じ機能を実行する。各
処理要素が、各期間に以下の情報を受け取る: (a) 第5図のULライン69を通じて加えられる、コラ
ムを下降するレコードの次のバイト。
(b) 第5図のLRライン70を通じて加えられる、コラ
ムを上昇するレコードの次のバイト。
(c) 現在のバイトがレコードの最後のバイトであれ
ば真であり、そうでなければ偽であるブール値。(この
値は第6図においてE/ORECと呼ばれており、これについ
ては後述するが、これはPE制御論理を示す;それは偶数
番号のPEについてはERECと呼ばれ、奇数番号のPEについ
てはORECと呼ばれる。) (d) 現在のバイドがキーに続く第1のバイトであれ
ば真であり、そうでなければ偽であるブール値。(この
値は第6図ではE/OTAGと呼ばれており、偶数番号及び奇
数番号のPEについてETAG及びOTAGと呼ばれる。) (e) 現在のレコードが『垂直に移動させられてい
る』ならば真であり、そうでなければ偽であるブール
値。『垂直に移動』は、コラムを下るしコードからのバ
イトはコラムを下って移動させられ、コラムを上るレコ
ードからのバイトはコラムを登って移動させられること
を意味する。(この値は第6図においてFORCEVと呼ばれ
ている。) (f)『上昇』分類については真で、『下降』分類につ
いては偽であるブール値。(この値は第6図でASCENDIN
Gと呼ばれている。) 各処理要素が、以下の内容状態情報を維持する: (a) 現在のレコードのうちのどれが『より大きい』
かということについて判断がなされていなければ真であ
り、そうでなければ偽であるブール値。(第6図のDECI
DING。) (b) 判定がされた後に使用される、バイトが『垂直
に移動させられている』ならば真であり、バイトが『水
平に移動させられている』ならば偽であるブール値。
(第6図のPASSV。) 受信された情報と現在の内部状態情報とに基づいて、各
処理要素は各期間に以下の情報を作る: (a) コラムを下るべき次のバイト。このバイトは第
5図のLLライン71から下降させられる。
(b) コラムを上るべき次のバイト。このバイトは第
5図のURライン72から上昇させられる。
(c) 内部状態情報についての新しい値。
処理要素の動作について、上記の情報に関して簡単に説
明する。処理要素が垂直に移動させる様にされているな
らば、下降するレコードの全てのバイトが下方に通過さ
せられ、上昇するレコードのバイトは、下記の判断プロ
セスとは無関係に上方に通過させられる。これは、分類
装置に装填をし、それを空にし、分類されるべきレコー
ドのグループを分離するのに使われる。
処理要素が垂直に移動させる様にされていなければ、次
の様になる。判断が既に行われていれば、先に行われた
その判断に基づいてバイトは垂直又は水平に移動させら
れ続ける。そうでなければ、現在の入力バイトが比較さ
れる。それらが等しくなければ、この時点で判断が行わ
れる。上昇中のバイトが下降中のバイトより大きけれ
ば、上昇中のバイトは下方に移動させられ、下降中のバ
イトは上方に移動させられる(水平に移動)。そもなけ
れば、上昇中のバイトは上向に移動させられ、下降中の
バイトは下方に移動させられる(垂直に移動)。判断が
される時、処理要素は、各レコードの残りのバイトを同
じ方向に移動させるために、垂直に移動させたか又は水
平に移動させたかを思い出す。
上昇/下降の入力の状態は、比較における大小の意味を
判断するのに使われる。
第3図の要素間レコード格納部即ち、IERSは、バイトの
レコードの半分を内蔵する可変長シフトレジスターであ
る。Rは長さのレコードについては、期間TにおけるIE
RSへのバイト入力は、期間T+R/2でその出力に作られ
る。これは、該シフトレジスターの長さがR/2でなけれ
ばならないことを意味する。前述したように、ユーザー
レコードは、付加された少なくとも一つのバイト(タグ
バイト『を有し、生じた長さが奇数であれば、パッドバ
イトも付加される。
第5図に示されている回路において、各シフトレジスタ
ーは、比較器論理への安定なインターフェースを提供す
るラッチと組み合わせて記憶回路56のRAM部を使用する
ことによって実現される。第3図の第1システムレジス
ターIERS0は、RAM部74と読み書き回路76とによって実現
されており、この回路76は、LL出力ライン71に接続され
た書込み入力と、出力ラッチ回路78を通じて次の部41の
UL入力ライン69′に接続された読み出し出力とを有す
る。出力ラッチ回路78は、該シフトレジスターの余分の
行を形成し、キーバイトの比較のために安定した状態を
保証する。この余分の行のためのラッチと、少なくとも
一つのRAM行とがデータ経路中になければならないの
で、該シフトレジスターの最小サイズは2行である。こ
れにより、リバウンド分類装置のための最小レコード長
さが4バイトに設定される。
RAMは、最大レコードサイズの半分から1を引いた数に
等しい個数の行と、処理要素の個数の2倍の8倍に等し
い個数のコラムとを有する。現行の実施例では、処理要
素の個数は15であり、各行は2×15×8、即ち、240ビ
ット幅となる。最大レコードサイズは40であるので、
(40/2)−1、即ち、19個の行がある。これで、全体と
してのRAMサイズは4560ビットとなる。
RAM部74及び読み書き回路76によってシフトレジスターI
ERS0が構成されているのと同様に、第3図のシフトレジ
スターIERS−1はRAM部80と読み書き回路82とによって
構成されており、この回路82は,部41のUR出力ラインに
接続された書込み入力と、部40の処理要素のラインLRラ
イン70に接続された出力ラッチ回路84を通じて接続され
た読み出し回路とを有する。出力ラッチ回路84は、ラッ
チ回路78と同様に、シフトレジスターの余分の行を形成
する。
第5図に示されている部41及び54の処理要素及びシフト
レジスターは、部40のそれらと実質的に同一であり、対
応する要素はダッシュ記号及び二重ダッシュ記号で指示
されている。部41は例外であり、タグ先読み回路100を
含むものとして示されており、第13図ないし第17図との
関連で後述する様にして処理の中断を回避する。分類装
置18のRAM部74及び80及びその他の部41-54の行イネーブ
ルはRAMインデックス回路から駆動され、後述するよう
に、形の異なる二つの回路58及び58′が第7図及び第8
図に示されている。
分類装置18の部41-54は、境界指示を格納するように構
成された要素を含むパイプライン制御回路60に接続され
ており、この指示は、分類装置18におけるコードのシフ
トと同期して一つの要素から他の要素へシフトされる。
該要素のうちの或るものは、処理要素の制御回路にFORC
EV信号を加えて、或る状態の際に処理要素に垂直方向に
のみシフトを行わせて一グループのレコードの他のグル
ープのレコードとの混合を回避する。
FORCEV信号を部40、41及び54に加えるパイプライン要素
は第5図において参照数字91、92及び93で示されてお
り、該要素も境界条件信号をシフトさせる。追加のパイ
プライン要素は境界条件信号のシフトのためだけに使わ
れるが部54、41及び40についてのパイプライン要素はそ
れぞれ参照数字94、95及び96で指示されている。次に、
パイプライン要素の動作について、第11図との関連で詳
しく説明する。
処理要素制御論理(第6図) 第6図は、部40の制御回路67の論理回路を示し、同様の
論理回路が制御回路67′及び67″と分類装置18の他の部
の制御回路とに包含されている。前記のFORCEV信号は、
ライン101を通じてORゲート102の一入力に加えられ、こ
のゲートは出力をNEW PASS Vライン103に出力する。OR
ゲート102の第2入力はマルチプレクサ104に接続されて
おり、このマルチプレクサは、タッチ106の出力に接続
されたライン105上のDECIDING信号によって制御され
る。ラッチ106は、ORゲート108を通じて、ライン109上
のE/OREC信号から、又は3入力を有するANDゲート110の
出力から加えられる信号から、制御される。
ANDゲート110の一入力はDECIDINGライン105に接続され
ている。第2入力はライン111を通じて比較回路689の出
力に接続されており、ここで、上左側入力69及び下右側
入力70の信号が等しいときにUL=LR信号が生成される。
該ANDゲートの第3入力は『−E/OTAG』ライン112に接続
されている。
マルチプレクサ104の一入力はPASS Vライン113に接続さ
れており、このラインはラッチ114の出力に接続され、
このラッチにライン103上のNEW PASS V信号が加えられ
る。マルチプレクサ104の第2入力はORゲート116の出力
に接続されており、このゲートの一入力はUL=LRライン
111に接続され、第2入力はマルチプレクサ118の出力に
接続されている。マルチプレクサ118の一入力はライン1
19を通じて、比較器68からのUL>LR信号ラインに接続さ
れている。
第2入力は、ライン120で比較回路68から加えられるUL/
LR信号に接続されている。マルチプレクサ118はORゲー
ト112の出力から制御され、このゲートは接続された入
力ライン123及び124を有し、これにASCENDING信号及びE
/OTAG信号が加えられる。第6図の制御論理の動作は、P
E要素が行う動作に関する以上の説明から明らかであろ
う。
前記した様に、RAM部74及び84及び分類装置18の他の部4
1-54の行イネーブルはRAMインデックス回路から駆動さ
れるが、形の異なる二つの回路58及び58′が第7図及び
第8図に示されている。
RAMインデックス回路(第7図) 第7図のRAMインデックス回路58は、単一のデコーダ131
及びガウンタ132から成る。該カウンタはカウント入力1
33を通じてU/2のカウントを装填され、各カウントで装
填された後、1までカウントダウンし、その後、動作が
反復される。カウント132の出力は、デコーダ131及び多
芯出力ライン134を通じて部40のRAM部74及び84と、他の
部41-54の対応するRAM部とに送られる。デコーダ131の
出力は、次の行に進む前に、RAM行イネーブルを、最初
は読み出しに、次に書込みに、駆動する。始動時及びカ
ウンタが1に達した後の初期値(U/2)は、ユーザーの
指定したレコードサイズの低位ビットを除く全てのビッ
トに由来する(2で割る)。ユーザーレコードには少な
くとも1バイト(タグバイト)が付加されており、生じ
た長さが若し奇数であれば、パッドバイトも付加される
ことを想起しなければならない。これは、若しユーザー
レコードサイズがUであれば、U/2=(R/2)−1である
ことを意味する。
代替のRAMインデックス回路(第8図) 第8図のRAMインデックス回路58′は、追加の論理を犠
牲にして、アドレス指定論理の最短サイクル時間を短縮
する。回路58′は1ビット可変長シフトレジスター136
から記憶回路56のRAM行イネーブルを駆動するが、この
シフトレジスターは、半レコードの最大長に対応する個
数のステージを有し、出力は多芯ライン134′を通じて
記憶回路56の行イネーブルに接続されている。シフトレ
ジスター136のステージはリング形に構成されている。
該シフトレジスターの長さは、多芯ライン133′を通じ
てデコーダ138に加えられる初期制御データの使用によ
り、レコード長の半分から1を引いた長さとなるように
構成され、この制御データは、上位コンピュータから供
給された制御データからレコード長が決定された後に使
用される。単一のビットが該シフトレジスターリングを
循環して、次の行へ進む前に、最初に読み出しのため
に、次に書込みのために、行イネーブルを提供する。
リングとしてのシフトレジスター136の動作を達成する
ために、デコーダ138の入力はユーザーレコード長の低
位ビットを除く全てのビットであり、これは分類装置18
へのレコード長入力の半分から1を引いた値である。デ
コーダの出力は0が該デコーダに入力されるときに表明
されるデコーダ出力に該シフトレジスターの出口端部が
接続される様に、該シフトレジスターに接続されてい
る。該シフトレジスターの次のビット(ビット0内にシ
フトするもの)は、1が該デコーダに入力されるときに
表明されるデコーダ出力に接続されている、等々であ
る。
よって、デコーダ138の出力は単一ビットを該シフトレ
ジスターに装填し、これはNシフト後に該シフトレジス
ターの外にシフトするが、ここでNはレコード長の半分
から1を引いて得られる数である。これは初期化時と、
該ビットがシフトレジスターから出る時とに起こり、斯
くしてリングを形成する。シフトとシフトとの間で、使
用可能にされた行は最初に読み出され、次に書き込まれ
る。
レコード制御回路62(第9図及び第10図) 第9図及び第10図は、レコード制御回路62の諸部分を示
す。第9図に示されている部分62Aは、主としてレコー
ドタイミングに使用され、第10図に示されている部分62
Bは主としてタグタイミングに使用される。これらの部
分は、処理要素及びパイプライン制御のためのタイミン
グ情報を作る。第9図及び第10図のレコード制御回路
は、初期化時に以下の情報を受け取る: (a) ユーザーレコードのサイズの半分、U/2。これ
は、レコードサイズが奇数ならば0に向かって先端から
切られ、第9図のライン141に加えられる。
(b) キーのサイズ。これは第10図のライン142に加
えられる。
第9図及び第10図のレコード制御回路は、次の様に、構
成要素を包含すると共に内部状態条件を維持する: (a) 第9図のレコードバイトカウンタRCTR143。こ
れはU/2に初期化され、期間毎に、カウンタ値から得ら
れるロード/デクリメント信号によりデクリメントされ
る(初期化時又はRLTR=1の時にロード、その他の時は
デクリメント)。ゼロを通過してデクリメントされる
と、カウンタ143はU/2にリセットされる。
(b) 第10図のタグバイトカウンタTCTR146。これ
は、INITライン149で加えられる信号により制御される
マルチプレクサ148を通じて加えられる信号を通してK
に初期化される。カウンタ146は、期間毎にライン144上
の信号によりデクリメントされる。デクリメントされた
時にカウンタ146が0であれば、該カウンタは、マルチ
プレクサ148を通じてライン141から加えられる信号によ
ってU/2にセットされる。
ラッチ回路152の出力で第9図のライン150に生成される
ブール値RCNT。この回路152の入力は排他的OR回路153の
出力に接続されており、この回路153の一入力はカウン
タ143のRCTR=0出力に接続され、第2入力はライン150
に接続されている。値RCNTは、各PEにおいてどの半レコ
ードが進行中であるかを示す。これは、レコードの第1
の半分が偶数PEに入ろうとしており、レコードの第2の
半分が奇数PEに入ろうとしていることを示す偽に初期化
される。これは、レコードバイトカウンタがゼロを通過
してデクリメントされるときに変化する。それが偽であ
れば真となり、真であれば偽となる。
次にタグバイトに会うのが偶数PEであるか偶数PEである
かを示しブール値TCNT。この値は第10図のライン156上
でラッチ回路157の出力で生成される。この回路157は排
他的OR回路158の出力に接続され、該排他的OR回路の一
入力はカウンタ146の出力のTCTR=0ラインに接続さ
れ、第2入力はライン156に接続されている。
内部状態情報に基づいて、該レコード制御は以下の出力
を生成する: (a) レコードの最後のバイトが偶数処理要素に与え
られることを示すブール値EREC。この値は、AND回路162
の出力のラッチ回路161に接続されたライン160上に生成
される。こ回路162の入力はRCNTライン150とRCTRカウン
タ143のRCTR=0出力とに接続されている。
(b) レコードの最後のバイトが奇数処理要素に与え
られることを示すブール値OREC。この値は、AND回路166
の出力のラッチ回路165に接続されたライン164上に生成
され、該AND回路の入力はカウンター143のRCTR=0出力
及び−RCNTライン167に接続されており、このライン167
はインバータ168を通じてRCNTライン150に接続されてい
る。
(c) レコードの第1バイトが偶数処理要素又は奇数
処理要素に与えられることを示すブール値PCADV。これ
はカウンタ143のRCTR=0出力に接続されたラッチ回路1
72の出力のライン170上に生成される。
(d) レコードキーに続く第1のバイト、即ち、『タ
グ』バイトが偶数処理要素に与えられることを示すブー
ル値ETAG。これは、入力がTCNTライン156とTCTRカウン
タ146のTCTR=0出力とに接続されているAND回路176の
出力のラッチ回路175に接続されているライン174上に生
成される。
(e) レコードキーに続く第1のバイトが奇数処理要
素に与えられることを示すブール値OTAG。これは、AND
回路180の出力のラッチ回路179に接続されたライン178
上に生成される。該AND回路の入力はカウンタ146のTCTR
=0出力と−TCNTライン181とに接続されており、この
ライン181はインバータ182を通じてTCNTライン150に接
続されている。
パイプライン制御回路60(第11図) 非常に重要な特徴は、リバウンド分類装置に装填し、且
つこれを空にすることを可能にすると共に別々のグルー
プのレコードの混合を防止するパイプライン制御回路60
に関する。
回路60のパイプライン要素91-94及び96の回路は第11図
に示されている。パイプライン要素91は、分類装置18の
第1部40の処理要素と連携しており、入力ライン186を
有し、これに、該分類装置への新しいレコードの入力と
同期する関係で信号が加えられる。入力ライン186は、
ラッチ189に出力接続されているマルチプレクサ188の一
入力に接続されており、該ラッチの出力は、マツチプレ
クサ188の第2入力に接続されているライン190に接続さ
れている。
マルチプレクサ194の出力に接続されているラッチ193の
出力のライン192上にFORCEVO信号が生成され、マルチプ
レクサ194の一入力はライン192に接続され、その第2入
力はORゲート196の出力に接続されている。ORゲート196
の入力は、ライン186及び190に、更に次のステージのFO
RCEVIライン192′に接続されている。
マルチプレクサ188及び194は、第9図のレコード制御回
路162Aからライン170を通じて加えられる信号PCADVによ
り制御される。該分類装置の処理要素と連携する他の全
てのパイプライン要素の回路は、要素91のそれと実質的
に同一である。ライン186が『BNDm−1』から来ること
と、93には『FORCEVm+1』入力が無いことを除いて。
パイプライン要素94及び96の回路も第11図に示されてい
る。要素94は、要素91のマルチプレクサ188及びラッチ1
89に対応するマルチプレクサ198及びラッチ199を有す
る。同様に、要素96は、マルチプレクサ198′及びラッ
チ199′を有し、最後の出力信号NEWSTREAMOUTはライン2
00上に生成される。
作動時には、パイプライン制御回路60は各期間中に以下
の情報を受け取る: (a) レコードの第1バイトが偶数処理要素又は奇数
処理要素に与えられることを示す、回路部分62A(第9
図)からのプール値PCADV。
(b) ライン186上に加えられるブール値『NEWSTREA
M』。これは、リバウンド分類装置に与えられる現在の
バイトが、新しいグループのレコードの分類を、既にリ
バウンド分類装置内にあるレコードとは別に開始させる
ことを示す。
パイプライン制御回路60は以下の内部状態情報を維持す
る: (a) 要素91のライン190及び他の要素の該ラインに
対応するラインに生成される各PEについてのブール値
『BNDO』ないし『BNDN−2』。この値は、レコードの第
1バイトが偶数処理要素又は奇数処理要素に最後に与え
られた時以来、レコードグループ同士の間の『境界』が
リバウンド分類装置を『下って』来たことを示す。
(b) ブール値『BNDN−1』は、レコードの第1バイ
トが偶数処理要素又は奇数処理要素に最後に与えられた
とき以来、レコードグループ間の境界がIERS『N−2』
からIERS『N+N−3』の中に移動したことを示す。
(c) 処理要素『PEN−2』ないし『PE1』についての
ブール値。これは、第11図に示されている94ないし96に
続く要素により生成される。この各々の値は、レコード
の第1バイトが最後に偶数処理要素又は奇数処理要素に
与えられたとき以来、レコードグループ間の『境界』が
リバウンド分類装置を『昇って』そのPEまで戻ってきた
ことを示す。
(d) その処理要素が『垂直に通過させる様にされて
いる』ことを示す、各処理要素についてのブール値(第
11図の『FORCEVO』ないし『FORCEVN−2』)。
受け取った情報と、現在の内部状態とに基づいて、パイ
プライン制御は各期間に以下の情報を作る: (a) その処理要素が『垂直に押し進める』べきこと
を示す、各処理要素についてブール値(『FORCEV0』な
いし『FORCEVN−2』)。
(b) リバウンド分類装置が出力する現在のレコード
バイトが、分類されるレコードの新しいグループの第1
バイトであることを示す、ライン200上のブール値「NEW
STREAMOUT』。これは、異なるグループからのレコード
の比較を防止するために分類順序検査装置により使用さ
れる。パイプライン制御は、レコードの第1バイトが偶
数処理要素又は奇数処理要素に与えられる毎に、その内
部情報を更新する(『PCADV』、半レコード毎に)。
『境界』値は、その頂部からレコードと並列にリバウン
ド分類装置に入り、左側を下り、底を横断し、右側を上
る。
PE『N』についての新しい「垂直に押し進める』値は、
下記のいずれかが真であればセットされる: 『境界』がPE『N−1』についてセットされているか、
又は、PE0について『境界』がIERSに入ろうとしている
(『NEWSTREAMIN』)。
『境界』がPE『N』についてセットされている。
『垂直に押し進める』がPE『N+1』についてセットさ
れている。これは最後のPEには適用されない。
この操作は、境界に位置する又は境界より上の全てのPE
を垂直に押し進める。これは、境界の一方の側のレコー
ドと、別の側のレコードとの混合を防止するが、境界の
同じ側のレコードの分類を許す。
分類順序づけ装置34(第1図) 先に指摘したように、内部境界の無い分類装置18は『魔
法の分類箱』と見なすことの出来るものであり、レコー
ドは該箱に押し込まれ、箱の中の全てのレコード(押し
込まれたレコードを含む)のうちの最小のレコードが飛
び出してくる。
加速装置10の分類及び併合の操作は、分類装置18等のN
−1要素リバウンド分類装置を使って、データの分類済
みのN個のストリングを併合して一つの大きな分類済み
ストリングにするという問題を認め、分析することによ
って良く理解することが出来るものである。以下のアル
ゴリズムを考察する。
1) 分類装置18内に境界を設定して、第11図との関連
で上記した新しい分類操作を開始する。
2) 第1のN−1ストリングの第1(最小)レコード
を分類装置18に押し込む。
3) N番目のストリングの第1(最小)レコードを分
類装置18に押し込む。全ての第1レコードのうちの最小
のレコードが飛びだす;これが、併合されたストリング
のうちの第1(最小)レコードである。
4) 飛び出したレコードの出所となったストリングを
識別し、そのストリングから次のレコードを分類装置18
に押し込む。飛び出すレコードは、入力されたストリン
グのいずれかに残留している最小のレコードであり、従
って併合/分類済みストリングの次のレコードである。
5) 前記ステップを繰り返す。いずれかの入力された
ストリングの最後のレコードが分類装置18から飛び出す
とき、人工的レコード(『実際の』レコードのいずれよ
りも大きい)を、そのストリングの『次の』レコードと
して押し込む。第1の人工的レコードが分類装置18から
飛び出すとき、より小さい(即ち、『実際の』)レコー
ドは分類装置18内に残っていないので、併合は終了す
る。
このアルゴリズムの下で動作した分類装置18の出力はN
個の入力ストリングの併合である;これは、以下の様に
記すことにより証明することが出来る。
(a) 分類装置18から出力される各レコードは、分類
装置内に現在ある全てのレコードのうちの最小のレコー
ドである。
(b) 出力されるレコードは、同じ入力ストリングの
次のレコードと置換され、これは、該入力ストリングが
分類されるので該出力レコードより小さくはないので、
該分類装置から出力される次のレコードは、該分類装置
から出力される現在のレコードより小さくはない;即
ち、分類装置から出力されるレコードは、分類された順
となっている。
(c) 全ての入力ストリングの全てのレコードが結局
は分類装置から出力される。
上記のアルゴリズムを使って併合を行うために、分類装
置内の与えられたレコードの出所がどのストリングであ
るかを知ることが望ましい。また、そのストリング内の
次のレコードを発見する方法と、そのストリングに残留
しているレコードがあるか否か判断する方法とを知るこ
とも望ましい。以下の節は、所望の情報を得て使用する
好適な構成を示す。人工的レコードの代わりに、本発明
は全てのストリングが空となり、NEWSTREAMINが表明さ
れるまで、最低の番号の、空でないストリングを使用す
る。
タグ挿入及び除去(第1図及び第2図) 図示の分類加速装置は、入力部21のバイト挿入装置25を
使って、各レコードに、それが分類装置に送り込まれる
際にタグバイトを挿入することにより、分類装置内の与
えられたレコードの出所がどの入力ストリングであるか
を監視し続ける。第2図との関連で前述した様に、キー
フィールドの最後のバイトの直後で且つデータフィール
ドの第1バイトより前の位置にタグバイトを挿入するの
が好ましい。レコードのタグバイトは、この併合操作の
どの入力ストリングが該レコードを内蔵していたかを記
述する指標を含む。8ビットタグバイトは、256個に及
びストリングを併合操作に入力する事を可能にする;実
際、このバイトの1ビットを使って、後述する様に安定
な分類操作を実施し保証して、最大で128個のストリン
グを併合することが出来る。図示の実施例は、分類装置
内の処理要素の数(15)によって、一時に併合出来るス
トリングが16個に限定されていて、ストリング識別のた
めに4ビットを必要とするだけである。
上位メモリーへの転送のため、或いは局所メモリー16へ
の一時的格納のために、完全に分類されたレコードのス
トリングが出力部22によって出力される出力操作におい
て、出力部22のデータパッカー31は、入力部21によって
先に挿入されてあったタグを、レコードから、該レコー
ド分類装置から出力される際に除去するので、タグが記
憶装置中のスペースを占めることはない。後述するよう
に、ユーザーは、最後の併合パスによってレコードがユ
ーザーのバッファーに出力される時にタグをレコード中
に残しておくべきことを随意に指定することが出来る。
レコードが分類装置から出力されるとき、そのレコード
の出所である入力ストリングを判定するためにタグバイ
トが検査される。このストリング番号は分類順序づけ装
置34のストリングは選択論理回路39に送り込まれ、分類
順序づけ装置34は、ROM38内のマイクロコードにより制
御され、ストリング選択論理回路39の出力を使用して、
分類装置に入力される次のレコードのアドレスを決定す
る;そのレコードアドレスは、ストリング選択論理回路
39の生成したストリング番号と共に、入力部22に与えら
れて次のレコードの読み出しを開始させる。
ストリング選択論理回路39(第12図) 一般的に、次の入力レコードを提供するべく選択される
ストリングは、その指標が現在の出力レコードのタグ中
にあったストリングと同じである。例外は、将来のスト
リングが使い尽くされたときである。上記のアルゴリズ
ムで使用される、そのストリングからの次のレコードの
代わりに人工的な大きなレコードを使用する技術は、働
きはするけれども、ぎこちなくて時間を食う;使い尽く
されていないストリングを採集して、そのストリングか
らレコードを入力するのが遥かに効率的(且つ同じく正
確)であることが分かっている(分類の安全性を守るた
めに、今は、最低の、空でないストリングを選択しなけ
ればならない)。この操作は、ストリング選択論理回路
39により行われる。
ストリング選択論理回路39は、各入力ストリングについ
て1ビットを含む妥当なビットのファイルを使い、且
つ、これから説明する機能を実行する回路を使って作動
する。斯かる回路の一部が第12図に示されており、これ
については、第13図ないし第17図に示されているタグ先
読み論理の動作との関連で後述する。併合操作の開始時
に、入力ストリングのいずれもが使い尽くされていない
ことを示すために、妥当なビットのファイルが全部ゼロ
にセットされる。指定されたストリングが使い尽くされ
ている(即ち、該ビットが1である)か否かを調べるた
めに、出力レコードからのタグは有効ビットのファイル
を指す;そうでなければ、そのストリング番号は分類順
序づけ装置へ出力される。指定されたストリングが使い
尽くされていれば、使い尽くされていない最低番号のス
トリングを発見するために優先順位符号化が有効ビット
のファイルに対して行われて、このストリングの番号が
分類順序づけ装置に送られる。若し全ての入力ストリン
グが使い尽くされていれば、そのことを分類順序づけ装
置に知らせるフラグがセットされる。
分類順序づけ装置34は併合操作の現在の状態を維持する
ためにレジスターアレイ35にレジスターの二つのファイ
ルを内蔵している;一つのファイルは各ストリングにつ
いての次のレコードアドレスを内蔵し、他のファイルは
各ストリングの最後のレコードアドレスを内蔵する。ス
トリング選択論理からストリング指標を得ると、分類順
序づけ装置はそのストリングについて次のレコードアド
レスを第1ファイルから取り出して、それを入力部21に
送る;これは、そのストリングについての次のレコード
アドレスを更新する。ストリング中の最後のレコードの
アドレスが入力部21に送られたとき(次のレコードアド
レスを第2レジスターファイル中のそのストリングにつ
いての最後のレコードアドレスと比較することにより判
定される)、分類順序づけ装置はストリング選択論理の
ビットファイル中のそのストリングに対応する有効ビッ
トをセットして、そのストリングが今使い尽くされたこ
とを示す。
ストリング選択論路回路39は、併合されるべきストリン
グの数が16より少ないときにも使われる。前記のアルゴ
リズムは、ストリングの数が分類装置中の要素の数より
1大きい時にだけ働く。併合されるべきストリングがそ
れより少ないときには、そのストリング数を正しい値と
するために数個の『空白』ストリング(レコードを全く
含んでいない)を該併合に付加しなければならない。ス
トリング選択論理回路39は、『空白』ストリングの一つ
からのレコードを分類装置に最初に装填しようとする試
み(前記アルゴリズムの第1ステップに記載した)によ
って実際に『現実の』のストリングの一つからのレコー
ドが装填されることとなることを保証するのに使われ
る。これは、併合操作の開始時にストリング選択論理回
路39において『空白』ストリングの妥当なビットをゼロ
の代わりに1に初期化することによって実行される。
タグ先読み及び付随の論理(第12図ないし第17図) 特殊化されたストリング選択論理及び高速分類順序づけ
装置でも、現在のレコードについてのタグの出力と次の
入力レコードのアドレスの入力プロセッサへの送付との
間に遅れがある。入力部21は、新しいレコードの始めの
バイトを、それらが分類装置に入力され得ることとなる
前に、取り出さなければならない。これが累積してレコ
ードとレコードとの間に顕著な遅れが生じ、これに起因
して入力部21は分類装置を機能停止させてデータ待ちさ
せると共に併合プロセスを減速させる。
この遅れを無くするために、分類加速装置は、最小のレ
コードのタグを、それが実際に分類装置から出力される
前に判定するべくタグ先読み論理を実施する。
タグ先読み論理はストリング選択論理と関連して作用す
るが、ストリング選択論理は、第12図に示されていて、
分類装置18に加えられるべき次のレコードのタグについ
ての三つの可能な値の選択を行うものである。その三つ
の値は、後述する様にして第17図の論理回路によりライ
ン202上に生成される『PE1TAG』と、ライン203に加えら
れる、入力レコードのタグ『ITAG』と、タイン207(上
記した)を通じて状況データが加えられる優先順位エン
コーダ206によりライン204上に生成される、残っている
タグを持った最低番号のストリームのタグと、である。
マルチプレクサ208は、ライン209に加えられるPV0制御
信号により操作されて、ITAG信号及びPE1TA信号からWIN
TAG信号をライン21上に生成する。PV0が真であればPE1T
AGが選択され、そうでなければITAGが選択される。ライ
ン210上のWINTAGストリームの状況がストリーム状況参
照部212により検査され、この参照部はライン213上に出
力信号を生成し、この信号は、WINTAG信号及びALTTAG信
号が加えられるマルチプレクサ214に加えられる。WINTA
Gストリームが空でなければ、WINTAGは、マルチプレク
サ214の出力ライン216上に生成されるNEXTTAGとして使
われる。その他の場合には、空でない最低番号のストリ
ームがライン216上のNEXTTAGとして使われる。
タグ先読み論理回路100は、次に列挙する要素を含む、
即ち、ライン202上のPE1TAG信号とライン218上バックア
ップ・タグBTAGとを生成するのに使われる第13図に示さ
れている回路と;PE0が現在のレコードについて判断をし
た時にライン220上にDECISION信号を表明するのに使わ
れる第14図に示されている論理回路と;PE0を励起するレ
コードの妥当性を検査するライン222上のVALTAG信号を
生成するための、第15図に示されている論理回路と;タ
グをBTAGライン218から第15図の回路のPE1TAGライン202
へ進ませるADVTA信号をライン224上に生成する第16図に
示されている論理回路と;PE0から出る現在のレコードの
最後の半分においてタグが発見された時にTAGSEEEN信号
をライン226上に生成する第17図に示されている回路
と、を含んでいる。
タグ先読み論理回路の動作に関して、分類装置から出力
されるレコードは常にPE0から来ることを記しておく。P
E0の入力は、分類装置に入力されるレコードと、PE1の
上側の出力により供給されるIERS N−1の出力とであ
る。入力レコードのタグは知られている;PE1内のレコー
ドのタグはPE1内の特別の論理によってタグ選択論理39
に与えられる(第12図及び第13図のライン202上のPE1TA
G)。タグ先読み論理PE0の内部状態を監視し、判断がな
されるのを待つ(第14図のライン220上のDECISION):
判断がなされた時、どのレコードがPE0から出てよくレ
コードであるかを調べるためにPE0についての『垂直に
通過』状態ビット(第12図のPV0)が検査される。その
時、このレコードのタグ(第12図のWINTAG)がストリン
グ選択論理(第12図)への入力として使われ、これによ
り実際の出力でのレコードの半分に及ぶジャンプを得
る。この方法を使うことによって、非常に小さいレコー
ドの場合又は『判断(Decision)』がレコードについて
非常に遅くに行われるときを除いて、併合時のレコード
間遅延を完全に無くすることが出来る。
第13図の論理回路はマルチプレクサ228を包含し、この
マルチプレクサは、第16図の回路からのライン224上のA
DVTAG信号の反転によって操作され、その一入力はラッ
チ回路229に接続されており、これは出力ライン202に接
続されている。マルチプレクサ228の第2入力は、第10
図のレコード制御回路62Bからのライン178上のOTAG信号
により操作されるマルチプレクサ230の出力に接続され
ている。
マルチプレクサ230の一入力はライン231のUR1に接続さ
れ、その第2入力はライン218のBTAGに接続されてい
る。ライン218は、ライン178から制御されると共にその
入力ライン218及び231に接続されている、マルチプレク
サ234から駆動されるラッチ232の出力に接続されてい
る。
PE1から出るレコードについてのタグ(第13図のライン2
02上のPE1TAG)は、次の様にして抽出される:前進しな
いタグであれば(−ADVTAG)、PE1TAGの先の値がラッチ
される。ライン224上の前進するタグ(−ADVTAG)が真
であり、タグPE1から出てゆこうとしているならば(ラ
イン178上のOTAG)そのタグがライン231のUR1を通じて
選択される。タグが前進中でタグがPE1から出てゆかな
いならば、バックアップ・タグ(ライン218上のBSAG)
が選択され、該バックアップ・タグは、タグがPE1から
出てゆく時に回路232によってラッチされる(OTAG)。
第14図を参照すると、ライン220上のDECISION信号はAND
ゲート236により生成され、このゲートの一入力はDECEN
Bライン237に接続され第2入力はAND回路238の出力に接
続されており、この回路238の入力は、−DECIDING0ライ
ン239と、第15図の回路からのVALTAGライン220とに接続
されている。
第15図を参照すると、ライン220上のVALTAG信号は、3
個のANDゲート243、244及び245に接続された入力を有す
るOR回路242の出力に接続されたラッチ240の出力で生成
される。ゲート243、244及び245の入力は、ライン220及
び226と、第9図のERECライン160反転から得られる−ER
ECライン246と、前記した様に第9図及び第10図のレコ
ード制御回路から得られる他の信号とに接続されてい
る。
ライン220上のVALTAG信号は、PE1から出るレコードにつ
いてのタグ(PE1TAG)がPE0から出るレコードについて
のタグであれば、そのタグの妥当性を検査する。VALTAG
はレコードの最後のバイトがPE0から出る時に撤回され
る(−EREC及びVALTAG)。若しタグがレコードの最初の
半分の中にあれば、レコードがPE0に入り始める時にVAL
TAGが表明される(EREC及びTAGSEEN)。タグがレコード
の第2の半分の中にあれば、該タグがPE1を出た直後にV
ALTAGが表明される(TCTR=0及びTCNT及び−RCNT)。
第16図の回路に関して、出力ライン224はラッチ250に接
続されており、これは、二つのANDゲート253及び254に
接続された入力を有するORゲート252の出力に接続され
ており、ANDゲート253の入力はライン160及び226に接続
され、ANDゲート254の入力は第9図及び第10図の回路か
らのライン146、156及び167に接続されている。
タグは、ADVTAGによりBTAGからPE1TAGへ進められる。そ
のタグがレコードの最初の半分の中にあれば、PE0に与
えられるレコードの第1バイト時にADVTAGが表明される
(EREC及びTAGSEEN)。タグがレコードの第2の半分の
中にあれば、ADVTAGは、該タグがPE1から出る時に表明
される(TCTR=0及びTCNT及び−RCNT)。
第17図は、PE0から出る現在のレコードの最後の半分の
時にタグが見られたか否か監視し続ける論理を示す。こ
の論理は、一入力が−ERECライン246に接続されているA
NDゲート258の出力に接続されている。ゲート258の第2
入力はORゲート259の出力に接続されており、該ORゲー
トの一入力はライン226に接続され第2入力はANDゲート
260に接続されており、該ANDゲートの入力は第9図及び
第10図のレコード制御回路からのライン150及び156に接
続されている。ライン226上のTAGSEENは、レコードの最
後のバイトがPE0から出るときに撤回される(−ERE
C)。TAGEENは、レコードの最初の半分の際にタグPE1か
ら出るときに表明される(TCTR=0及びTCNT及びRCN
T)。
分類順序づけ装置34(第1図及び第18図ないし第22図) 分類加速装置の他の区域は、処理されるべきデータスト
リングを操作するが、分類順序づけ装置は外部メモリー
アドレスを計算し、分類加速装置の全体を制御する。
分類加速装置の図示の好適な実施例は、図示の16路強化
リバウンド分類装置18を使用するが、以下の部は、開示
した分類装置18のそれと同等の機能特性を有するN路分
類装置の使用に一般化されている。
前述した様に、分類順序づけ装置34は、レジスターアレ
イ36及びフラグレジスター37を含む制御プロセッサを有
する。レジスターアレイ36は好ましくは4個のバンクを
成す64個の32ビット・レジスターであり、フラグレジス
ターは32ビット・レジスターである。制御プロセッサは
ALU37も包含するが、これは好ましくは32ビットALUであ
る。実用的実施例では、この構成は1個のレジスターの
読み出し、ALU操作の実行、及び同レジスターへの一つ
の133nsクロックでの書込みを行うことが出来る。
レジスターアレイは二つの目的に役立つ。上位プロセッ
サは、これらのレジスターを初期化することによって分
類加速装置へ制御情報を伝え、制御プロセッサは、その
マイクロコード化されたプログラムの変数として、それ
らを使用する。アドレス、カウント、及び状況情報は該
アレイ中に維持される。該アレイは各々16個のレジスタ
ーから成る4個のバンクとして組織されている。各バン
クを変数で指標付けすることが出来、併合操作からのタ
グをストリング指標から、取り出されるべき次のレコー
ドを指すアドレスに速やかに変換することを可能にす
る。
制御プロセッサ用のマイクロプログラムは、例えば各々
60ビットから成る512個のマイクロワードから成るアレ
イを成してROM38に格納され、各マイクロワードはALUオ
ペランドのソース、実行されるべきALU操作、ALU操作の
宛先、及び実行されるべき次のマイクロワードの記憶場
所を制御するフィールドに分割される。マイクロワード
中の追加のフィールドは、色々な宛先へのデータの書込
みを可能にすると共にマイクロプログラム実行の流れを
制御し、マイクロコード・サブルーチンが支援されるこ
とが出来る。本発明は、以下に詳しく説明すると共に第
18図ないし第22図に部分的に示したが分類操作を行うた
めに特定の形の制御プロセッサの使用に限定されるもの
ではない。第18図は、分類順序づけ装置の動作の理解に
重要な中間記憶装置の構成を示し、第19図ないし第22図
は分類の安定性を得るのに重要な分類順序づけ装置の変
化例を示す。
中間記憶装置の構成(第18図) 分類加速装置10が使用するアルゴリズムは、色々なサイ
ズの領域に組織された中間記憶装置を必要とする。最小
の領域は、中間記憶区域の底に位置し、N個のレコード
から成るN個に及びストリングを保持するのに使われ
る。第2の領域は、第1の領域の端に位置し、N×N個
のレコードから成るN個のストリングを保持するために
使われる。各々の領域は、その前の領域よりもN倍大き
い。第18図は、Nが図示の実施例の場合のように16では
なくて4である場合に使用される組織の例を示す。この
例では、第1領域R0は4個のレコードを格納し、第2領
域R1は16個のレコードの4個のストリングを格納する、
即ち、それはN×N個のレコードを格納する。第3の領
域R2は、その1/4だけ示されているが、64個のレコード
の4個のストリングを、即ち、N×N×N個のレコード
を格納する。
Nが16である図示の実施例では、第1領域R0は16個のレ
コードの16個のストリング(256レコード)を格納し、
第2領域R1は4096個のレコードを格納し、第3レコード
R2は65、536個のレコードを格納する。後の領域は、そ
の前の領域のレコードの数の16倍を包含する。使用可能
なメモリーに応じて、随意の数の追加の領域を設けるこ
とが出来る。
中間記憶装置の場所と大きさとは、操作初期化時にレジ
スターアレイにベースアドレス及びエンドアドレスを装
填することによってプログラムされる。操作のために充
分な記憶装置が割り当てられれば、制御プロセッサは該
操作を保留して上位プロセッサに割り込む。該エンドア
ドレスを増大させることにより、該記憶装置を動的に拡
張することが出来る。
拡張された併合・分類アルゴリズム 図示の実施例では、ROM38に格納されるマクロプログラ
ムに、拡張された併合・分類アルゴリズムが埋め込まれ
るが、該アルゴリズムを実現するために同等の手段を使
用することも出来る。該アルゴリズムは、強化されたリ
バウンド分類装置のN路併合能力を利用して、制限の無
い個数のレコードを並べ変える。該アルゴリズムは、入
力フェーズ及び出力フェーズと呼ばれる二つのフェーズ
から成る。後述する様に、これらのフェーズを構成する
分類及び併合の操作の順序は、分類の安定性、メモリー
の効率、及び動作のために重要である。
入力フェーズ 入力フェーズは、分類及び併合から成り、実際上、入力
ストリングを構成する未分類レコードの全てが処理され
るまでである。各分類操作によりN個の未処理レコード
が操作され、中間記憶装置の領域0にN個のレコードの
分類済みストリングが作られる。各併合操作により、満
杯となった領域のN個の分類済みストリングが処理さ
れ、入力ストリングの各々よりN倍大きな次の領域に単
一の分類済みストリングが作られる。
入力フェーズは、入力ストリングの始めのN個のレコー
ドを分類してN個のレコードの一つのストリングを領域
0に作ることから始まる。その後、入力ストリングの次
のN個のレコードが分類されて、N個のレコードの第2
のストリングとなる。このプロセスは、N個のレコード
のN個のストリングが領域0に生じるまで続き、その時
点で分類は中止され、該ストリングは併合されて、領域
1のN×N個のレコードの単一のストリングとなる。
この併合は終わると、入力フェーズは入力ストリングの
分類を再開する。結局、N個のレコードのN個の新しい
ストリングが領域0に作られ、分類が中止され、それら
が併合されて領域1のN×N個の第2のストリングとな
る。このプロセスは、領域1にN×Nの長さのストリン
グがN個出来るまで続き、その時点で、それらは併合さ
れて、領域2のN×N×N個のレコードの単一のストリ
ングとなる。領域の数は、使用可能な中間記憶装置の量
によって制限される。
入力フェーズは、入力ストリングの全体が処理されるま
で、可能な時には併合を行いながら、継続する。入力ス
トリング中のレコードの数は、操作が初期化される時に
レジスターアレイにプログラムされる。コマンドレジス
ターには数個のオプション・ビットがあり、その一つ
は、入力ストリングが分類されるべきレコードの全てを
包含しているか否かを示す。このビット(ENDビット)
がセットされていなければ、制御プロセッサは、出力フ
ェーズが始まる前に上位処理装置に割り込み、上位処理
装置が同じ分類操作で他の入力ストリングを包含するこ
とを可能にする。レコードカウントレジスターは、入力
ストリングが処理されるに従って継続的にデクリメント
される。
出力フェーズ 入力フェーズの終了時には、複数の領域内に数個のスト
リングがある。出力フェーズは、この数をN以下に減ら
す一連の併合操作と、直接に宛先アドレスへの最後の併
合とから成る。
出力フェーズの開始時には、各領域にN−1個の完全な
長さのストリングがあると共に、領域0には不完全な長
さのストリングがある。この不完全な長さのストリング
は、分類されているレコードの総数モジュールNから成
り(0であることもあり得る)これは、レコードの総数
が必ずしもNの倍数ではないから存在するものである。
分類を安定させるために、最高の領域から最低の領域へ
と優先順位が割り当てられる。一つの領域の中では、優
先順位は最低のストリングから最高のストリングへの順
である。これは、ストリングが作られた順と一致する。
出力フェーズは、非常に効率的で信頼できる態様で進行
する。最低の空でない領域から併合が行われてゆき、こ
の併合は、関係するストリングの総数がN以下であると
いう制限の範囲内で、なるべく多数の領域を含む。この
併合により、該併合に含まれなかった空でない最初の領
域に新しい不完全なストリングが作られる。
これらの複数領域併合は、上か2番目の領域に達するま
で続く。この時点で、一番上の領域と2番目に高い領域
との両方が含まれていれば、それらは、宛先の記憶場所
に書き込まれる分類操作の最後の併合に参加する。最高
の領域が包含され得なければ、2番目に高い領域は参加
を禁じられ、出力は、2番目に高いレベルの部分的併合
をつくり出す。
後の場合は、動作最適化を表す。最後の二つの領域のス
トリングの大きさは分類操作全体のサイズに関して重要
であるので、これらのストリングの取扱は、2番目に高
い領域から、ちょうど充分なだけのストリングを最高の
領域の不完全なストリングに併合して、正確にN個のス
トリングを残すことによって、最小限度にされる。これ
は『最善の』併合と呼ばれる。その時、N個のストリン
グが最後に併合に参加する。
分類操作の全段階を通じて、指標付けを可能にするため
に、各領域のストリング総数がレジスターアレイの一つ
のバンクに維持される。不完全なストリングの長さは、
該アレイ内の他のレジスターに維持される。他のストリ
ングの長さは、それらの領域の番号から分かる。
不完全なストリングの長さを維持するレジスターは1個
だけしかないので、不完全なストリングは常時1個だけ
存在できる。出力フェーズは全ての併合に不完全なスト
リングを含み、これらの併合の各々が、より大きな不完
全なストリングをより高い領域につくり出す。不完全な
ストリングの長さのためのレジスターは、新しい不完全
なストリングのサイズを反映するように継続的に更新さ
れる。不完全なストリングも『最善の』併合に参加す
る。
中間記憶装置の管理 中間記憶装置の構成は、第18図との関係で上記されてい
る。この節は、分類操作の入力フェーズで制御プロセッ
サにより実行される簿記について詳しく説明するもので
ある。
制御プロセッサは、該操作のために充分な記憶装置が割
り当てられているか否かを判断しなければならない。動
作をなるべく悪化させずに、この判断を行うために、レ
ジスターアレイ35内の2個のレジスターを使って、最高
の活動状態領域の番号と最高の活動状態アドレスとを維
持する。拡張された併合・分類アルゴリズムの中の各分
類又は併合の開始時に、現在の領域が最高の活動状態領
域と比較される。若しそれが最高の活動状態領域引く1
より小さければ、その分類又は併合は正常に続く;そう
でなければ、制御プロセッサは、新しいストリングを最
高領域に作りかけており、進むのに充分な記憶装置が割
り当てられれいるか否か確かめなければならない。
この確認は、最高活動状態アドレスレジスターを使っ
て、他の完全なストリングのための余地が次の領域にあ
るか否か判断することから始まる。若しあれば、拡張併
合・分類は正常に進行する;若し無ければ、制限プロセ
ッサは、現在の領域から別個のストリングが次の領域の
不完全なストリングに嵌まり込むか判定し、その情報を
使って、それらのストリングが併合されたならば何個の
追加レコードを処理できるか判定する。若しこの数が入
力ストリングに残っているレコードの数より少なけれ
ば、制御プロセッサは上位プロセッサに割り込んで、操
作を完了するためにもっと多量の記憶装置が割り当てら
れなければならないことを指摘する。
許容可能な追加のレコードの数が、残っているレコード
の数より多ければ、追加の記憶装置無しで操作を完了す
ることが出来る。コマンドレジスターにENDビットがセ
ットされると、このレベルに残っているストリングの数
と、将来の入力から形成されるこのレベルの追加のスト
リングの数と、次のレベルのストリングの数との和が等
しくNとなる様に、制御プロセッサはこのレベルからち
ょうど充分なストリングを併合する。『最善の』併合が
行われたことを出力フェーズに対して指摘するフラグが
セットされ、この特別の不完全なストリングの長さがレ
ジスターアレイ内のレジスターに保存される。このレジ
スターは、出力フェーズが使用する不完全なストリング
の長さのためのレジスターと同じではない。
ENDビットがセットされなければ、コマンドレジスター
内の追加のオプション・ビット(LOCKビット)が検査さ
れる。このLOCKビットがセットされていれば、制御プロ
セッサは、なるべく多数のストリングを次のレベルの特
別の不完全なストリングに併合し、併合フラグを設置
し、特別の不完全なストリングの長さを保存し、レベル
0のストリングを作り続ける。LOCKビットがセットされ
ていなければ、上位プロセッサは割り込まれて、ENDビ
ットをセットし、LOCKビットをセットし、又は記憶装置
エンドアドレスを増大させることを許される。
『最善の』併合は、拡張併合・分類の動作が最適化する
ことを保証する。制御プロセッサは操作中のレコードの
総数を知らず、上位プロセッサが中間記憶装置のサイズ
を固定する許可を与えているのて『短縮』併合が起こ
る。一旦固定されると、記憶装置アドレスの終端を増大
させることは違法となる。この併合は、与えられた量の
記憶装置で分類することの出来るレコードの数を最適化
する。
分類制御 前述の入力フェーズの分類プロセスは、分類加速装置
が、入力ストリングからN個の未整理レコードを読み込
み、それらを分類し、その結果を中間記憶装置の領域0
中の新しいストリング中に置くことを必要とする。
好ましくは、分類制御は、マイクロコード中の単一ルー
プの中に存する。最初に、入力ストリングが使い尽くさ
れたか否か調べるためにレコードカウントレジスターが
検査される。使い尽くされていれば、制御は出力フェー
ズに移転する。より多数の入力レコードがあれば、レジ
スターアレイ内のソースアドレスが入力プロセッサに渡
される。このレジスターは、操作が初期化された時に入
力ストリングのアドレスが装填されたレジスターであ
り、この時にレコード当たりのバイトの数だけインクリ
メントされる。該アレイ内の他のカウントレジスターは
1だけインクリメントされ、カウントがNに達するまで
分類ループは継続する。
併合制御 純粋にマイクロコードで取り扱われるのが好ましい分類
制御とは異なって、併合制御用のマイクロコードは、前
述の併合アルゴリズムによりストリング選択回路39で加
速されるのが好ましい。ストリング選択論理について前
述した。分類順序づけ装置は入力プロセッサが各レコー
ドに挿入するタグの供給も行う。
分類安定性 『安定な』分類は、同じキーを持ったレコードが、入っ
たときと同じ相対的順序で該分類からでるような分類で
ある。設計を単純なままに保ち、追加の記憶装置及び時
間要件を小さくするために、N路併合アルゴリズムで既
に必要とされたタグバイトを使用して分類安定性を保証
する。この特徴は、総レコードサイズを割合に小さく保
つと共に、分類順序づけ装置又はリバウンド分類装置の
大幅な変更を必要としない。
この所定の順序が変更されないことを保証するために、
特別のハードウェア及びアルゴリズムを使用する特別の
特徴が分類加速装置10に含まれている。
前述した様に、キーバイトに続いて、残りのデータバイ
トの前にタグバイトが入力レコードストリングに挿入さ
れる。タグバイトの高位4ビットは、レコードの出所と
なったストリングの番号(併合について)、又はゼロ
(分類について)にセットされる。
タグバイトは常に処理要素において『上昇』順に比較さ
れる。タグバイトをキーの前に、しかし残りのデータの
前に置くことにより、処理要素は、残りの非キーバイト
が与えられる前に、それらのバイトをどの経路に通すか
決定することが出来る。ストリング番号は、等しいキー
を持った異なるストリングからのレコードを、それが入
って来た順にリバウンド分類装置から出て行かせる。
『順序』ビットは、等しいキーを持った同じストリング
からのレコードを、それらが入って来た順次リバウンド
分類装置から出て行かせる。
分類順序づけ装置強化 与えられた併合のために、一緒に分類プロセスに入った
レコードのストリングが選択される。即ち、選択される
或るレコードの前に、しかし、選択される他のレコード
の後に分類プロセスに入って選択されないレコードは無
い(それらは、可能性としては、この併合に属すること
があり得る)。
各ストリングに対して独自に番号が選択されるが、それ
は、そのストリング中のレコードが分類プロセスに入っ
た、同じ併合内の他のストリングに対しての相対順位を
示す。ストリングの各レコードは、タグサイトの高位ビ
ットに挿入されたストリング番号を持っている。異なる
ストリングからの2個のレコードの順序が、それらのタ
グバイトが比較されるときに解明されていなければ、そ
れらが入ってきたのと同じ順序で併合から出て行くこと
をストリング番号が保証する。
分類済みストリングが作業空間の領域に書き込まれてゆ
くとき、それらは、その領域の使用可能な最低の行に書
き込まれる。領域が満杯になると、その次に高い領域の
使用可能な最低の行に併合されてゆく。これから分かる
ように、部分的併合(後述する)が無い場合には、最高
の領域は分類に最初に入ったストリングを包含し、2番
目に高い領域は2番目に入ったストリングを包含する、
等々である。領域内では、最低の行は、最初に分類に入
ったストリングを包含し、次の行は2番目に入ったスト
リングを包含する、等々である。
下記の記述においては、0から始まるストリング番号が
順に割り当てられる。別様に指定されない限りは、行の
グループ内ではストリング番号は最低の行から最高の行
へと順に割り当てられる。第19図に示されている様に、
『S』の下のコラム内のストリング番号0ないし15は順
に並んでおり、ストリング15は最高のアドレスHAにあ
り、ストリング0は最低のアドレスLAにある。
併合に参加するストリングにストリング番号を割り当て
る異なる場合が4種類にある: 1) 或る領域が満杯で、次に高い領域への完全併合が
行われる時、ストリング番号はグループとして16個の行
に割り当てられる(第19図に示されている様にして)。
2) 作業空間の量が限られているために部分的併合が
行われるときには、2番目に高い領域の、全てではない
行が最高領域に併合される。この場合、ストリング番号
は、グループとして、最高領域の最後の行に収まる2番
目に高い領域の最高番号の行のうちのなるべく多くの行
に割り当てられる。第20図の例では、Nは最高領域の番
号である。
3) (全ての入力データが作業空間メモリー内に置か
れた後)最後の併合が行われるとき、部分的併合が起こ
っていなければ、ストリング番号はグループとして最高
領域内の全ての行に割り当てられ、その後、空でない全
ての領域が割り当てられるまで、2番目に高い領域内の
全ての行に割り当てられる、等々である。この状態は第
21図に示されており、ここで最後の併合はFMで指示され
ている。
4) 最後の併合が行われる時、部分的併合が起こって
いなければ、手順はもっと複雑である。以下のことが指
摘されなければならない: (a) 1回だけ、部分的併合が行われる。
(c) 常に、2番目に高い領域から最高領域へであ
る。
(c) それ以上の、最高領域への併合は行われない
(それは満杯となっている)。
次の手順が行われる。最初に、ストリング番号が、グル
ープとして、最高領域の、最後の行を除いた全ての行へ
割り当てられる。その後、それらは、グループとして、
部分的併合の直後に残っていた2番目に高い領域内の行
に割り当てられる。次に、最高領域の最後の行にストリ
ング番号が割り当てられる。その後、2番目に高い領域
内の、割り当てされずに残っている行にグループとして
割り当てが行われる。最後に、残っている空でない領域
にグループとして領域の下降順に割当が行われる。
部分的併合後の最善の併合のためのストリング番号割当
を示す第22図において、データは以下の様に表されてい
る: pppppp=部分的併合の結果。
aaaaaa=その部分的併合後に2番目に高い領域に付加さ
れた行。
bbbbbb=その部分的併合の直後に2番目に高い領域に残
っている行。
++++++=他の満杯の行。
リバウンド分類装置強化 分類装置に入る各レコードのタグバイトの最下位ビット
(『順序』ビットと呼ばれる)は1にセットされる。
順次ビットは、同じストリング番号を持ったレコードの
順位を保存するために使われる。順位ビットは次のよう
に取り扱われる(それは1にセットされたリバウンド分
類装置に入ることを想起): (a) 処理要素が垂直に通過させることを決定し、或
いは既に垂直に通過させつつあるならば: 1) 『下方に』通過させられるタグバイト(下った来
たタグバイト)の順位ビットは1にセットされる。
2) 『上方に』通過させられるタグバイト(昇って来
たタグバイト)の順位ビットは変更されない。
(b) 処理要素が水平に通過させることを決定し、或
いは既に水平に通過させつつあるならば: 1) 『下方に』通過させられるタグバイト(昇って来
たタグバイト)の順位ビットは0にセットされる。
2) 『上方に』通過させられるタグバイト(下った来
たタグバイト)の順位ビットは1にセットされる。
(c) IERS『N−2』からIERS『N−2+N−1』へ
渡されるタグバイトの順位ビットは1にセットされる。
この方法の安定性は例によって示すことが出来、その例
では、2個の重複するレコードがあるとする。この説明
のために、重複するレコードは、完全に等しいキー及び
等しいタグを持ったレコードであると仮定する。
第1レコードはERSに入り、第2レコードがERSに入るま
で他のレコードと混じっている。第2レコードと会うた
めに、第1レコードは上を向いて、その順位ビットを1
にセットされなければならない。ERSは分類されている
ので、第2レコードは真っ直ぐに下方に進んで第1レコ
ードと出会い、その順序ビットをセットされたままに保
つ。この二つのレコードは正確に等しく、順位ビットを
含み、よって垂直に移動し続ける。追加の重複レコード
が無ければ、この重複レコードは、より大きなレコード
を通過し続け、或いは上のレコードは下方に向きを変え
(これは、その順序ビットをクリアする)、上がってく
る次の重複レコードと出会う(このレコードの順位ビッ
トは、まだセットされたままである)。これにより、該
重複レコードは、より大きなレコードが通り越すか、他
の重複レコードが入るか、又はERSが流されるまでは、E
RSが現在の位置を保つ。
今、示す必要があるのは、重複レコードの、出てゆくグ
ループに入る新しいレコードは該グループの底に落下す
ることである。新しいレコードは、重複レコードの出て
ゆくグループの各レコードと出会うとき、その新しいレ
コードは下降中であり旧レコードは上昇中である。上昇
するレコードは常にその順序ビットがセットされる。垂
直に通過させられる下降するレコードの順位ビットも同
じく常にセットされる。これは、新しいレコードは、該
グループの底に達するまで該コラムを下って垂直に移動
し続けることを意味する。
叙上から、垂直に通過する時に順位ビットを変更せず、
そのままにしておく様に規則を変更することが出来ると
結論することが出来る。これにより、下方に向けられた
レコードは、若し下り続けるのであれば、その順位ブッ
トを0にセットされたままに保つことが許されるが、下
方に向けられたレコードは、その下にあるものが全てそ
れより大きいので、決して下降し続けない。これによ
り、PE内の論理が単純化される。
順位ビットの、指摘した使用によって、位置を変更する
ことのあるレコードは、それらの初期順位を保存させら
れる。
データ保全性特徴 外部ハードウェアとの協働により、分類加速装置を通過
するデータは、データが該装置に入った点から、出てゆ
くまで、変造に関して検査される。また、レコードを分
類又は併合する時には、分類加速装置の正しい動作と、
併合のための入力レコードの正しい整理とを確実にする
ために、出力レコードの順位が検査される。
エラー検出コード パリティ 分類装置外のデータ経路が、バイトパリティの使用によ
り検査される。バイトパリティは、8ビットのデータを
9ビット値で表す方式である。余分のビットは、データ
の出所で計算されたパリティ値を担っている。該データ
からパリティ値を計算し直し、その新しく計算されが値
をパリティビットと比較することによって、パリティ検
査が行われる。等しくないことは、該データ中のエラー
を指摘するものである。
分類加速装置10には、上位システムからデータ及びパリ
ティが供給される。データが入るとき、該パリティは好
ましくは検査をされる。この時点で検出されたエラー
は、システムパリティエラーとして分類され、その様な
ものとして報告される。
システムバスインタフェースからのデータ経路のパリテ
ィ保護は、リバウンド分類装置まで続く。データがリバ
ウンド分類装置に入るとき、データパリティが再び検査
され、エラーは内部データエラーとして報告される。
出力時に、リバウンド分類装置はパリティを持ったデー
タを生成する。このデータがシステムバスインタフェー
スに達したとき、そのパリティが検査され、不一致は内
部パリティエラーとして報告される。パリティ値は、シ
ステムバスインターフェースで再生されて、該データと
共に上位システムに渡され、これにより該上位システム
は上記の様にデータパリティを検査することが出来るこ
ととなる(分類順序づけ装置からのデータのためのパリ
ティを提供するためにパリティがシステムバスインター
フェースで再生される)。
検査合計計算(第23図) 分類加速装置内で、2レベル検査合計方式を使ってデー
タ保全性が保証される。検査合計保護は、多数のバイト
に渡って検査合計を検査するエラー検出方法である。検
査合計は、後に、該検査合計を計算し直して、それを先
に計算されてあった検査合計と比較することにより、検
査される。検査合計は以下の公式により計算される: i=0ないしnについては、検査合計=f (検査合計、データ〔i〕) 各レコードが分類装置に入るとき、レコードの検査合計
が計算される。この検査合計についての関数(f)は、
第23図との関係で後述するPARブロックを使い、データ
バイトのパリティを使用して、モジュール256でデータ
バイトに加算されるものとして該検査合計又は該検査合
計のビット反転形を選択する。『ビット反転』操作はバ
イトに対して行われ、これにより、該バイト内の最上位
ビットと最下位ビットとが交換され、上か2番目のビッ
トと下から2番目のビットとが交換される、等々であ
り、結局、全てのビットが異なる位置を持つこととな
る。
これらのレコード検査合計が互いにモジュール256加算
されて、レコードのグループについての検査合計とな
る。
分類装置を出るレコードは、同様に計算された検査合計
を有する。分類装置がレコードのグループを処理して、
残りのレコードが流し去られた後、入力検査合計及び出
力検査合計が比較される。
レコード検査合計のこの単純加算は、結合的性質を持っ
た関数をつくり出す:即ち、レコード検査合計を合計す
る順序は、その結果として得られる検査合計には影響を
与えない。このことは、該分類装置の主な機能がレコー
ドの並べ直しであるので、重要である。
レコード検査合計の計算は結合的ではない。
二つのレコードのバイトnがそれらのバイト間で交換さ
れれば、その二つのレコードの検査合計の和は異なるこ
とになる。
交換されたバイトの例は、次のとおりである: この検査合計を求める方式は、分類装置18で2種類のエ
ラーについて検査を行うことが出来る:即ち、データ経
路での単ビット故障(記憶要素故障を含む)と、レコー
ド間の不適切に強制されたバイト交換(PE制御不良)。
検査合計操作は第23図の論理回路を使って実現される
が、これはEDCNEQ信号をライン270上に生成し、このラ
インは、二つの部の出力を比較するNEQ比較回路272の出
力に接続される。第23図に示されている上側の部は、加
算回路274の出力に接続された出力ラッチ273を含み、こ
の加算回路274の一入力は該ラッチ273の出力に接続され
ている。
加算回路274の他方の入力は、一入力がERECライン160に
接続されているAND回路275の出力に接続されている。AN
D回路275の他方の入力は、加算回路278の出力に接続さ
れているラッチ276の出力に接続されている。加算回路2
78の一出力はマルチプレクサ280の出力に接続されてお
り、該マルチプレクサの一入力はラッチ276の出力に接
続され第2入力はREVERSE BITSブロック281に接続され
ている。ブロック281は、前述の、バイトのビット反転
を行う。
マルチプレクサ280はPARブロック282により制御され、
その入力はIBYTEライン283(リバウンド分類装置に入る
バイト)に接続されており、IBYTEは加算器278の第2入
力にも接続されている。該論理の2番目に低い部は1番
低いのと実質的に同一であり、対応する要素はダッシュ
記号付番号で示されている。差異は、ライン283′がOBY
TEライン(リバウンド分類装置から出るバイト)である
のに対して、ライン283はIBYTEラインであることであ
る。
分類順序検査装置(第24図ないし第28図) レコードが分類装置から出るとき、該レコードは、一つ
のレコードを保持する特別の記憶要素に入る。この記憶
要素はシフトレジスターの様に振る舞い、該記憶要素の
入力及び出力を検査する比較論理が、分類装置から出る
レコードが正しく整理されていることを確認するのを可
能にする。該比較論理は、出力を除いて、分類装置に使
用されている処理要素と同様である。該比較論理の出力
は、レコードの減少(『下降』分類について増大)シー
ケンスが検出されたことを示す信号である(分類順序エ
ラー)。
分類順序検査装置は、出力ストリング中のレコードが次
のレコードと同じキーを持っていることを示す『タイ』
ビットを提供するのにも使われる。この『タイ』ビット
は、リバウンド分類装置からの出力上のタグバイトの最
下位ビットである。ユーザーソフトウェアは、この『タ
イ』ビットを利用して、後続の節で説明するように加速
装置10の容量を越えるキーフィールドに対して分類を行
い、或いは重複レコードの分類後の処理を補助すること
が出来る。分類加速装置は、普通は、レコードを出力す
る前に該レコードからタグバイトを取り除くが、ユーザ
ーが希望する場合にはタグバイトをレコードに残したま
まにしておく様に分類加速装置に指令することも出来
る。
分類順序検査操作は、第24図ないし第28図に示されてい
る論理回路により実施される。第27図に示されている回
路は出力ライン286を包含し、このライン上に前述のSRT
ERR信号が生成される。ライン286は、−RESETライン290
に接続された一入力を有するANDゲート289の出力に接続
されたラッチ288の出力に接続されている。ANDゲート28
9の他方の入力は、ORゲート282の他方の入力に接続され
ており、このORゲートの一入力はライン286に接続され
第2入力はANDゲート294に接続されている。ANDゲート2
94は、CHKING信号及びEQUAL信号をそれぞれ受信するラ
イン295及び297に接続された入力を有する。ANDゲート2
94への第3入力はマルチプレクサに接続されている。該
マルチプレクサの一入力は『A<B』であり、他方は
『A>B』である。該マルチプレクサは、ASCENDING及
びETAGを入力とするORゲートにより制御される。
該分類順序検査装置の回路は、更に、第24図、第25図、
第26図及び第28図に示されている論理回路を含む。第24
図おおいて、比較回路298が設けられており、この回路
は、前述のB<A信号をライン296上に生成し、且つ、
A=B信号及びA<B信号をタイン299及び300上に生成
する。比較回路298の一入力はUR0ライン302に直結さ
れ、比較回路298の他方の入力はカスケード接続された
2個のIERS要素303及び304を通じてライン302に接続さ
れている。これらは、一つのレコードブロックを保持す
る前述の特別の記憶要素を形成する。
第25図において、ライン295上のCHKING信号はラッチ306
により生成され、該ラッチはANDゲート308の出力に接続
されており、このゲートの一入力にはタイン309上の−N
EWSTREAMOUT信号が加えられるが、この一NEWSTREAMOUT
信号は、第11図に示されているパイプライン回路の生成
するNEWSTREAMOUT信号の逆である。ゲート308の第2入
力はORゲート310の出力に接続されており、このORゲー
トの一入力はERECライン160に接続され第2入力はライ
ン295に接続されている。
第26図において、ライン297上のEQUAL信号は、ORゲート
314の出力に接続されたラッチ312の出力に生成され、こ
のORゲートの一入力はERECライン160に接続され第2入
力はANDゲート316の出力に接続されている。ANDゲート3
16の一入力はA=Bライン299(第24図)に接続され、
他方はライン297に接続されている。
第28図は、ライン318上に生成されるTIED信号を生成す
るのに使われる回路を示し、このライン318はANDゲート
320の出力に接続されたラッチ回路319の出力に接続され
ており、このANDゲートは、CHKINGライン295、第10図の
回路からのETAGライン174及びEQUALライン297に接続さ
れた入力を有する。
分類加速装置の容量を越えること 加速装置10は、使用可能な作業空間メモリーがユーザー
のファイル中のレコードを分類するのに充分でないとき
にも使うことの出来るものである。非常にありふれた2
種類の場合に対処するアルゴリズムが設けられる。第1
の場合は、レコードの総数を分類するのに充分な作業空
間メモリーが使用できない時である。第2の場合は、レ
コード及び/又はキーの長さが分類加速装置の許容する
最大長さを上回るときである。
使用可能な作業空間メモリーを越えること ユーザーレコードを分類するのに充分な作業空間メモリ
ーを使用できないときには、ユーザーは、『外部併合』
と呼ばれるものを使用することが出来る。これは単に、
分類操作を完了するのに要する各併合パスの入力及び出
力のためにレコード記憶装置をユーザーが管理しなけれ
ばならないことを意味する。
始めに、ユーザーは、分類加速装置10を使用して、使用
可能な作業空間メモリーに収まる、なるべく多数のレコ
ードを分類する。この数を計算する必要はない。分類加
速装置が満杯になったことを示す指示が出されるまで、
単にレコードが分類加速装置に送られる。レコードのこ
れらの分類済みストリングは、その後、ユーザーが使用
することの出来る記憶装置内に置かれる(これらは、例
えばディスクに書き込まれてもよい)。全てのレコード
が分類され終わったとき、即ち、16個の分類済みストリ
ングが作られたとき、ユーザーは、分類加速装置10を合
併装置として使用して、その分類済ストリングを併合す
る。これは、バッファー付き入力及び出力で行うことが
出来、従って、分類加速装置が非常に僅かなメモリーを
使用できればよい。この併合から得られる分類済みスト
リングを再び記憶装置内に置くことが出来る。このアル
ゴリズムを繰り返し使うことが出来、これは追加のレコ
ード記憶装置の利用可能性によってのみ限定される。
最大レコード長を越えること レコード長が、分類加速装置が許容する最大長を越える
場合が2種類ある。
第1の、最も単純な場合は、レコード全体が大き過ぎる
が、キーと、元のレコードへのポインタとの合計が収ま
るときである。この場合、元もキーと、これに続く、元
のレコードを指すポインタを包含するバイトとから成る
新しいレコードが分類加速装置に入力される。分類が完
了したとき、ユーザーは、単に、該ポイントを使って元
のレコードの内容へアクセスして、その分類済みレコー
ドを処理する。
第2の場合は、レコードが大き過ぎて、キーと、元のレ
コードを指すポインタとの合計が収まらない時に起こ
る。この場合、ユーザーは新しいレコードを再び入力す
るが、この時にはユーザーは、収まるだけの、なるべく
多数のキーバイトだけを入力し、ポインタのために余地
を端部に残しておく。これらの、先端を切ったキーでの
分類時には、ユーザー『タイ』ビットを検査できるよう
にタグバイトが出力されるべき旨の要求が好ましい。
多くの場合、この様にして与えられる先端を切られたキ
ーは、レコードの分類された順序を判断するのに充分な
程度に独特である。重複する、先を切られたキーを持っ
たレコードのグループの位置を突き止めるには、『タ
イ』ビットを検査するだけでよい。このレコードのグル
ープは、そのとき、元のレコードからの残りのキーバイ
トのうちの、収まるだけの数のキーバイトを新しいキー
として使うことによって、更に分類することが出来る。
重複するキーが報告されなくなるか、又は全てのキーバ
イトが処理され終わるまで、重複する先を切られたキー
を持ったレコードの全てのグループに対して、このプロ
セスを反復することが出来る。
このプロセスは、より大きな最大レコード長を持った分
類加速装置を使うよりも早く作用する可能性があること
を指摘しなければならない。その理由は、分類加速装置
の速度がR*N*LOG16(N)に比例し、ここでRは分
類加速装置に与えられるレコードの長さであり、Nはレ
コードの個数である。より小さなRの値(最大のRによ
り制限される)を使えば、レコードの最初のパス分類
は、より高速となる。後続のパスがあるならば、そのパ
スは、同様に、遥かに小さなNの値を使って重複を解明
するであろうが、これは遥かに高速であろう。
本発明の新規な思想の範囲から逸脱せずに修正、変形を
行うことが出来ることが理解されよう。
【図面の簡単な説明】
第1図は、本発明に従って構成された分類加速装置の略
ブロック図であり、上位コンピュータ及び上位メモリー
に接続されて示されている。 第2図は、該加速装置の強化されたリバウンド分類装置
に送られる、入力レコードから作られたレコードの形式
を示す。 第3図は、本発明の加速装置のリバウンド分類加速装置
を単純化した一般的形で示すと共に、これに付随する記
憶回路及びパイプライン回路を示す略図である。 第4A図及び第4B図は、第3図に示されている分類装置等
の分類装置を通るデータの流れの単純化した例を示す。 第5図は、第1図の分類加速装置に使用された、強化さ
れたリバウンド分類装置及びこれに付随する記憶回路の
構成を詳しく示す略図である。 第6図は、第5図に示されているリバウンド分類装置の
処理要素の制御回路の論理回路を示す。 第7図は、第1図及び第5図に示されている記憶回路と
共に使用することの出来るRAMインデックス回路の一つ
の形を示す。 第8図は、第1図及び第5図に示されている記憶回路と
共に使用することの出来るRAMインデックス回路の他の
形を示す。 第9図は、レコードタイミング信号を供給する、第1図
の加速装置のレコード制御回路の一部を示す。 第10図は、タグタイミング信号を供給する、第1図の加
速装置のレコード制御回路の他の部分を示す。 第11図は、第1図及び第5図に示されているパイプライ
ン制御回路の詳細を示す。 第12図は、第1図の加速装置の分類順序づけ装置のスト
リング選択論理回路のタグ選択回路を示す。 第13図ないし第17図は、第1図の加速装置をタグ先読み
論理回路のいろいろな部分を示す。 第18図は、第1図の分類加速装置の使用する中間記憶装
置の組織の例を示す。 第19図ないし第22図は、最適の併合操作を得るために使
用されるストリング番号割り当てを示す。 第23図は、第1図の強化されたリバウンド分類装置のイ
ンターフェースの検査合計論理回路を示す。 第24図ないし第27図は、第1図の強化されたリバウンド
分類装置のインターフェースの分類順序検査装置の論理
回路の部分を示す。 第28図は、連続する二つのレコードが同じキーを有する
ことを示す信号を生成するために使われる、分類順序検
査装置の論理回路の追加の部分を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブライアン チャールズ イーデム アメリカ合衆国 カリフォルニア州 95130 サン ホセ ティベラン ウェイ 5042 (72)発明者 リチャード ペーラム ヘリウェル アメリカ合衆国 コロラド州 80908 コ ロラド スプリングス シュープ ロード 4425 (56)参考文献 特開 昭63−284638(JP,A) 米国特許4090249(US,A)

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】複数のレコードのグループからレコードを
    入力として受け取り、前記複数のレコードのグループの
    それぞれがN個のレコードを有しており、複数のN個の
    レコードのグループの別の1つの後続しているグループ
    の入力の間に分類された順序で前記複数のレコードのグ
    ループの第1グループを出力し、複数のレコードのグル
    ープのそれぞれからレコードを混合しないで既に分類さ
    れた順序で前記レコードのグループの第1のものに後続
    して分類された順序でN個のレコードの後続しているグ
    ループを出力するパイプライン制御システムであって、
    前記複数のレコードのグループの1つのレコードを分類
    された順序で配置する分類手段と、前記処理要素手段に
    よって比較されたレコードデータを記憶する記憶手段
    と、前記第1処理要素手段から前記最後の処理要素手段
    へのレコードデータの移動を制御すると共に複数のN個
    のレコードのグループのそれぞれからレコードの混合を
    防ぐ前記処理要素手段のそれぞれに結合されたパイプラ
    イン制御手段とを備えており、前記分類手段は、レコー
    ドを受け取る単一入力手段と分類された順序でレコード
    を出力する単一出力手段と、レコードデータを比較する
    複数の処理要素手段とを含んでおり、前記処理要素手段
    のそれぞれは、レコードデータを受け取る入力手段及び
    レコードデータを出力する出力手段を有しており、前記
    入力手段は、上部左側入力及び下部右側入力を有してお
    り、前記出力手段は、上部右側出力及び下部左側出力を
    有しており、前記分類手段は、更に、前記上部左側入力
    から前記下部左側出力へ及び上記下部右側入力から上記
    上部右側出力へレコードデータの転送を実行するために
    第1モードで動作するべくそして前記上部左側入力から
    前記上部右側出力へ及び上記下部右側入力から上記下部
    左側出力へレコードデータの転送を実行するために第2
    モードで動作するべく前記処理要素手段を制御する処理
    要素制御手段を有しており、前記処理要素手段の第1の
    ものの前記上部左側入力は、前記単一入力手段に結合さ
    れており、前記処理要素手段の残りのもののそれぞれの
    前記上部左側入力は、先行している処理要素手段の前記
    下部左側出力に結合されており、前記処理要素手段の最
    後のものの前記下部左側出力は、その前記下部右側入力
    に接続されており、前記第1処理要素手段の前記上部右
    側出力は、前記単一出力手段に結合されており、前記残
    りの処理要素手段のそれぞれの前記上部右側出力は、先
    行している処理要素手段の前記下部右側入力に接続され
    ており、前記第1モードでの全ての前記処理要素手段の
    動作は、レコードデータを前記処理要素手段を介して前
    記最後の処理要素手段へ逐次転送させ、前記処理要素手
    段を介して前記単一出力手段へ逐次もとに転送させ、前
    記記憶手段は、前記複数の処理要素手段のそれぞれの前
    記下部左側出力及び前記下部右側入力に結合されている
    ことを特徴とするパイプライン制御システム。
  2. 【請求項2】前記パイプライン制御手段は、強制垂直信
    号を生成する強制垂直手段を備えており、前記強制垂直
    信号は、レコードの前記別のグループの第1レコードの
    入力が前記第1処理要素へ印加されるのと同時に前記第
    1処理要素手段へ印加され、前記最後の処理要素手段に
    よってレコードの前記別のグループの前記第1レコード
    が転送されるまで、前記処理要素手段をオペレーション
    の前記第1モードで動作させるべく前記第1処理要素手
    段から前記最後の処理要素手段へ向ってレコードデータ
    の逐次転送と協同して前記処理要素手段のそれぞれへ印
    加されることを特徴とする請求項1に記載のパイプライ
    ン制御システム。
  3. 【請求項3】前記強制垂直手段は、複数の強制垂直要素
    を含んでおり、前記強制垂直要素のそれぞれは、N個の
    レコードの前記別のグループのレコードと混合すること
    からN個のレコードの前記1つのグループのレコードを
    防ぐために、前記処理要素手段の1つへ前記強制垂直信
    号を印加するために、前記処理要素手段の1つへ個々に
    接続されていることを特徴とする請求項2に記載のパイ
    プライン制御システム。
  4. 【請求項4】前記強制垂直要素は、入力信号を受信する
    入力手段と、前記処理要素手段へ前記強制垂直信号を送
    信すると共に、前記強制垂直要素の隣接するものへ状態
    信号を送信する出力手段とを備えていることを特徴とす
    る請求項3に記載のパイプライン制御システム。
  5. 【請求項5】前記パイプライン制御手段は、複数の境界
    標識要素手段を含んでおり、前記境界標識要素手段のそ
    れぞれは、レコードが前記処理要素手段の1つから別の
    前記処理手段へ動くので、レコードと並列に動く境界値
    を維持するために前記処理要素手段の1つと協同するこ
    とを特徴とする請求項4に記載のパイプライン制御シス
    テム。
  6. 【請求項6】パイプライン制御システムでソーターを制
    御する方法であって、前記パイプライン制御システム
    は、複数のレコードのグループからレコードを入力とし
    て受け取るソーターを有しており、前記複数のレコード
    のグループのそれぞれがN個のレコードを有しており、
    N個のレコードの複数のグループの別の1つの後続して
    いるグループの入力の間に、分類された順序で前記複数
    のレコードのグループの第1グループを出力し、複数の
    レコードのグループのそれぞれからレコードを混合しな
    いで既に分類された順序で前記レコードのグループの第
    1のものに後続して分類された順序でN個のレコードの
    後続しているグループを出力し、前記パイプライン制御
    システムは、更に、パイプライン制御手段を有してお
    り、前記ソーターは、レコードを受け取る単一入力手段
    と、分類された順序でレコードを出力する単一出力手段
    を有しており、前記ソーターは、更に、レコードデータ
    を比較する複数の処理要素手段を含んでおり、前記処理
    要素手段のそれぞれは、レコードデータを受け取る入力
    手段及びレコードデータを出力する出力手段を有してお
    り、前記入力手段は、上部左側入力及び下部右側入力を
    有しており、前記出力手段は、上部右側出力及び下部左
    側出力を有しており、前記上部左側入力から前記下部左
    側出力へ及び上記下部右側入力から上記上部右側出力へ
    レコードデータの転送を実行するために第1モードで動
    作するべくそして前記上部左側入力から前記上部右側出
    力へ及び上記下部右側入力から上記下部左側出力へレコ
    ードデータの転送を実行するために第2モードで動作す
    るべく前記処理要素手段を制御する処理要素制御手段を
    有しており、前記処理要素手段の第1のものの前記上部
    左側入力は、前記単一入力手段に結合されており、前記
    処理要素手段の残りのもののそれぞれの前記上部左側入
    力は、先行している処理要素手段の前記下部左側出力に
    結合されており、前記処理要素手段の最後のものの前記
    下部左側出力は、その前記下部右側入力に接続されてお
    り、前記第1処理要素手段の前記上部右側出力は、前記
    単一出力手段に結合されており、前記残りの処理要素手
    段のそれぞれの前記上部右側出力は、先行している処理
    要素手段の前記下部右側入力に接続されており、前記第
    1モードでの全ての前記処理要素手段の動作は、レコー
    ドデータを、前記処理要素手段を介して前記最後の処理
    要素手段へ逐次転送させ、前記処理要素手段を介して前
    記単一出力手段へ逐次もとに転送させるように構成され
    ており、前記方法は、前記1つのグループの前記残りの
    N−1個のレコードの出力の間に前記1つのグループの
    N番目のレコードの後でN個のレコードの別のグループ
    の第1レコードを直接前記ソーターの前記単一入力手段
    へ入力し、N個のレコードの前記別のグループが前記ソ
    ーターへ入力されたことを示すために第1信号を生成
    し、前記パイプライン制御手段へ前記第1信号を入力
    し、前記第1信号に応じて第1強制垂直信号を生成し、
    前記第1処理要素手段に前記別のグループの第1レコー
    ドを前記処理要素手段の次のものへ押しやるために前記
    処理要素手段の第1のものへ前記第1強制垂直信号を送
    り、前記別のグループの第1レコードの直後でかつ前記
    1つのグループの残りのレコードの出力の間に前記ソー
    ターへ前記別のグループの残りのN−1個のレコードを
    入力し、追加の強制垂直信号を順次生成し、前記別のグ
    ループの前記第1レコードの受け取りと同期させて前記
    処理要素手段のそれぞれへ前記追加の強制垂直信号の1
    つを送り、前記追加の強制垂直信号は前記処理要素手段
    に前記別のグループのレコードを前記処理要素手段の次
    のものへ押しやり、前記1つのグループのレコードと前
    記別のグループのレコードとの相互交換を防ぎ、前記別
    のグループの前記第1レコードが前記最後の処理要素手
    段から転送されるまで前記強制垂直信号のそれぞれを維
    持し、逆順序で前記処理要素手段のそれぞれから前記強
    制垂直信号を順次取り除き、レコードの最初に分類され
    たストリングに続いてすぐに分類された順序でレコード
    の次のストリングを形成するために前記別のグループの
    レコードを出力する段階を具備することを特徴とする方
    法。
  7. 【請求項7】前記ソーターからレコードの新しい分類さ
    れたグループが出てくることを示すために、分類された
    順序で配置されたレコードの前記次のストリングの第1
    レコードの出力の間に第3信号を生成する段階を含むこ
    とを特徴とする請求項6に記載のソーターを制御する方
    法。
  8. 【請求項8】1つの処理要素から次の処理要素へレコー
    ドが動くので、レコードに付随するために境界信号を生
    成する段階を含むことを特徴とする請求項7に記載のソ
    ーターを制御する方法。
  9. 【請求項9】前記第1処理要素手段に入力されたレコー
    ドがレコードの前記別のグループの第1のレコードであ
    ることを示す入力信号を生成する手段と、前記入力信号
    を受け取りかつ複数の強制垂直信号を逐次生成する強制
    垂直手段と、前記強制垂直信号のそれぞれは、レコード
    の前記別のグループの前記第1のレコードを受け取る前
    記処理要素手段と同期で前記処理要素手段の1つへ印加
    され、前記強制垂直信号のそれぞれは、前記処理要素手
    段を前記第1モードで動作させ、レコードの前記別のグ
    ループの前記最初のレコードが前記最後の処理要素手段
    から転送されるまで前記強制垂直信号のそれぞれを維持
    し、逆順序で前記処理要素手段のそれぞれから前記強制
    垂直信号を逐次取り除くラッチ手段とを更に備えている
    ことを特徴とする請求項1に記載のパイプライン制御シ
    ステム。
JP2172505A 1989-06-30 1990-06-29 分類加速装置の制御 Expired - Fee Related JPH0776907B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37503589A 1989-06-30 1989-06-30
US375035 1989-06-30

Publications (2)

Publication Number Publication Date
JPH03129520A JPH03129520A (ja) 1991-06-03
JPH0776907B2 true JPH0776907B2 (ja) 1995-08-16

Family

ID=23479235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2172505A Expired - Fee Related JPH0776907B2 (ja) 1989-06-30 1990-06-29 分類加速装置の制御

Country Status (1)

Country Link
JP (1) JPH0776907B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4090249A (en) 1976-11-26 1978-05-16 International Business Machines Corporation Apparatus for sorting records in overlap relation with record loading and extraction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63284638A (ja) * 1987-05-18 1988-11-21 Nippon Telegr & Teleph Corp <Ntt> デ−タ整列装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4090249A (en) 1976-11-26 1978-05-16 International Business Machines Corporation Apparatus for sorting records in overlap relation with record loading and extraction

Also Published As

Publication number Publication date
JPH03129520A (ja) 1991-06-03

Similar Documents

Publication Publication Date Title
JPH0776906B2 (ja) 分類加速装置のための速度及びメモリー制御
JPH0776909B2 (ja) 分類加速装置のデータ保全性特徴
JPH0776910B2 (ja) リバウンド分類装置を併合装置として使用する分類加速装置
US5349659A (en) Hierarchical ordering of logical elements in the canonical mapping of net lists
US7020855B2 (en) Digital circuit layout techniques using identification of input equivalence
US4899273A (en) Circuit simulation method with clock event suppression for debugging LSI circuits
EP0481248A2 (en) Vector merge sort
US5185886A (en) Multiple record group rebound sorter
US6360352B2 (en) Digital circuit layout techniques
JPH0776908B2 (ja) 分類加速装置の安定分類
JPS6142031A (ja) ソ−ト処理装置
Saucier et al. Multi-level synthesis on PALs
JPH0776907B2 (ja) 分類加速装置の制御
US6167556A (en) System for logic extraction from a layout database
Maurer Scheduling blocks of hierarchical compiled simulation of combinational circuits
JPH1091677A (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
Hollaar A design for a list merging network
JPH0317780A (ja) 記号列検索方法および装置
JP2930087B2 (ja) 論理設計支援システム
JPH10134084A (ja) データ処理装置
JPH0752450B2 (ja) 辞書デ−タ検索装置
JPH0926872A (ja) パイプラインマージソータ
Das et al. A regularity-driven fast gridless detailed router for high frequency datapath designs
JPH07319928A (ja) Cad装置、及びcad装置による順序回路合成方法
JPH01158571A (ja) 論理回路変換装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080816

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees