JPH0782427B2 - ソ−ト処理方式 - Google Patents

ソ−ト処理方式

Info

Publication number
JPH0782427B2
JPH0782427B2 JP2843486A JP2843486A JPH0782427B2 JP H0782427 B2 JPH0782427 B2 JP H0782427B2 JP 2843486 A JP2843486 A JP 2843486A JP 2843486 A JP2843486 A JP 2843486A JP H0782427 B2 JPH0782427 B2 JP H0782427B2
Authority
JP
Japan
Prior art keywords
cpu
sort
memory
sorted
cpus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2843486A
Other languages
English (en)
Other versions
JPS62186328A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2843486A priority Critical patent/JPH0782427B2/ja
Publication of JPS62186328A publication Critical patent/JPS62186328A/ja
Publication of JPH0782427B2 publication Critical patent/JPH0782427B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、情報処理の分野におけるソート処理方式、
すなわち、大量のデータを特定フィールドの値に基づい
て一定の順序に配列させる処理方式に関するものであ
る。
〔従来の技術〕
第6図は従来のソート処理方式を示すブロツク構成図で
ある。図において、27はCPU(中央処理装置)、28はメ
モリ、29,30はメモリ28上のデータを示すものであり、2
9は未ソートレコード群を、30はソート済レコード群を
それぞれ表わしている。
第7図は、第6図のソート処理方式においてソートすべ
きレコードの形式を示す図である。図において、31はm
バイトのKEY部とnバイトの非KEY部とから成る形式のレ
コードである。ここで、mは自然数、nは0ないし自然
数である。
上記第6図に示す従来のソート処理方式においては、1
個のCPU27とメモリ28から成る普通の計算機によつて、
ソート処理は以下のように実行される。すなわち、図示
されないデイスク装置等の入出力機器から未ソートレコ
ード群29がメモリ28上に読み込まれた後に、整形されて
未ソートレコード群29のデータがメモリ28上に作られ
る。未ソートレコード群29は、第7図に示すような形式
のレコード31が並べられたものである。未ソートレコー
ド群29に対して、メモリ28上に存在する図示されないソ
ートプログラムが実行されて、ソート済レコード群30が
メモリ28上に作り出される。ソートプログラムのアルゴ
リズムとしては、例えばCQ出版社発行の「My Compute
r」、1985,No.18の第84〜85頁に掲載されているクイツ
クソートアルゴリズムがある。
〔発明が解決しようとする問題点〕
上記のような従来のソート処理方式では、ソート処理が
1個のCPU27とメモリ28から成る普通の計算機上でソフ
トウエアにより行われていた。そして、未ソートレコー
ド群29のレコード数をNとした時、ソフトウエアでソー
トした場合のクイツクソートのような最も速いアルゴリ
ズムを使つても、O(Nlog2N)回の比較操作が必要であ
ることが知られている。そのために、レコード数Nが大
きくなると、ソート処理の所要時間が大変に長くなると
いう問題点があつた。
この発明は、かかる問題点を解決するためになされたも
ので、より迅速にソート処理ができるソート処理方式を
得ることを目的とする。
〔問題点を解決するための手段〕
この発明に係るソート処理方式は、ソートすべき全レコ
ードを各々ローカルメモリを持つ複数個の各CPUローカ
ルメモリに部分レコード群として分散して配置し、各CP
Uは自己のローカルメモリに入っている部分レコード群
に対してソートを行い、複数個のCPUのうち一部のCPUの
ソート結果をバスを介して共通メモリに転送し、共通メ
モリに転送されたソート結果と共通メモリに転送されて
いない他の一部のCPUのソート結果をマージソートする
ようにしたものである。
〔作用〕
この発明のソート処理方式においては、各々ローカルメ
モリを持つ複数個のCPU、例えば4個のCPUのうちで2個
の各CPUがそれぞれ自己のローカルメモリに入っている
部分レコード群に対してソートを行い、それぞれのソー
ト結果をバスを介してフェッチ・ストアの動作を行うこ
とにより共通メモリに転送し、共通メモリに転送された
ソート結果と共通メモリに転送されていない他の一部の
CPUのソート結果とをマージソートするようにすれば、
共通メモリに対するアクセスの頻度は4個の各CPUが一
斉にフェッチ・ストアの動作を行った場合のそれに比べ
れば低くなる(2回で済む)ので、共通メモリに対する
メモリ競合/バス競合が起こりにくくなり、高速度にソ
ート処理を実行することができる。
〔実施例〕
第1図はこの発明の一実施例であるソート処理方式を示
すブロツク構成図である。図において、1は共通メモ
リ、2は共通バス、3,4,5,6はそれぞれCPU(I),CPU
(II),CPU(III),CPU(IV)である。7,8,9,10はそれ
ぞれローカルメモリ(I),ローカルメモリ(II),ロ
ーカルメモリ(III),ローカルメモリ(IV)であり、
これらは各CPU(I)3〜(IV)6のローカルメモリで
ある。各CPU(I)3〜(IV)6が自己のローカルメモ
リにアクセスするか、共通メモリ1にアクセスするかは
メモリアドレスの範囲で切り分けられる。各CPU(I)
3〜(IV)6が実行するプログラムは、通常ローカルメ
モリに入つている。11,12,13,14は割り込みを通知する
割り込みインタフエース信号、15は割り込み制御装置で
あり、あるCPUが他のCPUに対して割り込みを発生させる
ために使われる。
第2図,第3図,第4図,及び第5図は、それぞれ第1
図のソート処理方式におけるソート処理の内容を説明す
るための図である。第2図〜第5図において、16,17,1
8,19はそれぞれ未ソート部分レコード群、20,21,22,23,
24,25はそれぞれソート済部分レコード群、26は最終結
果であるソート済レコード群である。
次に、上記第1図に示すこの発明の一実施例であるソー
ト処理方式のソート処理について、第2図〜第5図を参
照して説明する。第2図において、図示されない外部入
出力装置から各未ソート部分レコード群16〜19がそれぞ
れローカルメモリ(I)7〜(IV)10にロードされてい
る。各未ソート部分レコード群16〜19は、ソートすべき
全レコードをほぼ等しいレコード数になるように4つの
部分レコード群に前もつて分割されているものである。
未ソート部分レコード群16がローカルメモリ(I)7上
に生成されると、CPU(I)3はこれに対しソートプロ
グラムを実行することによりソート処理を行い、ソート
済部分レコード群20を生成する。ソートプログラムにお
けるアルゴリズムは前出のクイツクソートアルゴリズム
が使われる。CPU(I)3と同様に各CPU(II)4,CPU(I
II)5,CPU(IV)6においても、同様の操作が同時に並
行して行われる。レコード数をNとした時、クイツクソ
ートアルゴリズムは平均1.39Nlog2N回の比較操作が行わ
れる。全体のレコード数Nをソートする場合に比べて、
ここでは約 の数のレコードをソートするので、平均1.39 回の比較操作を行えば良い。この比を求めると、 となり、全体のレコードをソートする時間の 以下の時間で実行できる。
以上のような部分ソートを終了すると、奇数番目のCPU
(I)3とCPU(III)5は、第3図に示すように各ソー
ト済部分レコード群20,22をそれぞれ共通メモリ1に転
送する。すなわち、各CPU(I)3,(III)5は、それぞ
れローカルメモリ(I)7,(III)9からソート済デー
タをフエツチしてこれを共通メモリ1にストアする。こ
のことは、2個のCPUが、データアクセスだけに限つて
もそれぞれ2回のメモリアクセスのうちの1回を共通メ
モリ1にアクセスするという割合なので、ここで、命令
読み出し等を入れると共通メモリ1へのアクセス比率は
さらに下がり、このため、2個のCPUの間で共通メモリ
1に対するメモリ競合/バス競合が起きにくいという特
長がある。
もしここで、4個のCPUが同時にソート済データを共通
メモリ1に転送したとすると、共通メモリ1に対するメ
モリ競合/バス競合が起きやすくなり転送速度はより遅
くなる。以上のデータ転送処理に要する時間は、クイツ
クソートの時と同じ単位(1回の比較操作に要する時
間)を使うと と見積もられる。さて、CPU(I)3がこのような操作
を終了すると、割り込みインタフエース信号11,割り込
み制御装置15,割り込みインタフエース信号12を介してC
PU(II)4にその旨を伝える。CPU(II)4はこれを受
けて、第4図に示される内容の処理を開始する。すなわ
ち、共通メモリ1に入つているCPU(I)3のソート済
部分レコード群20の部分ソート結果と、ローカルメモリ
(II)8に入つている自己のソート済部分レコード群21
の部分ソート結果を順次に読み出し、2WAYマージソート
処理を実行して、ソート済部分レコード群24の部分ソー
ト結果として共通メモリ1上にストアする。2WAYマージ
ソート処理については、例えばCQ出版社発行の「My Com
puter」、1985,No.18の第91頁に記載されている。ま
た、CPU(IV)6についても、第4図に示すようにCPU
(II)4と同様の処理が同時に並行して実行される。こ
の場合、データアクセスだけを考えた時、CPU(II)4
とCPU(IV)6がそれぞれ3回に2回の割合で共通メモ
リ1にアクセスするため、メモリ競合は、第3図に示す
場合よりも多い。この処理に要する時間は、おおよそ と見積もられる。
このように、CPU(II)4とCPU(IV)6は以上の処理を
終了すると、それぞれ割り込み制御装置15を介してCPU
(I)3にその旨を知らせる。CPU(I)3は各CPU(I
I)4とCPU(IV)6が共に上記処理を終了したことを知
ると、第5図に示す内容の処理を開始する。すなわち、
共通メモリ1上にCPU(II)4により生成されたソート
済部分レコード群24のマージソート結果と、CPU(IV)
6により生成されたソート済部分レコード群25のマージ
ソート結果を順次に読み出し、2WAYマージソート処理を
実行して、ソート済レコード群26の最終のマージソート
結果を作り出す。このための処理時間は、おおよそレコ
ード数Nと見積もられる。そして、以上のすべての処理
時間を合計すると、 となる。
一方、従来のソート処理方式によつてソート処理を行つ
た場合には、1.39Nlog2Nの処理時間が必要になる。例え
ば、N=1214=16384レコードとすると、log2N=14, となり、それぞれの処理時間は次のようになる。
1.39Nlog2N=19.46N すなわち、この発明のソート処理方式によつてソート処
理を行つた場合には、従来のソート処理方式によつてソ
ート処理を行つた場合に対して、 倍だけ高速度にソート処理を実行できることが分かる。
なお、上記実施例では、4個のCPUを使用した場合につ
いて説明したが、例えば8個のCPUを使用した場合にも
容易に適用できることは明らかである。
また、上記実施例では、第5図に示す最終のソート処理
をCPU(I)3が行うようになつているが、その他のCPU
(II)4〜(IV)6がこれを行うようにしても良く、あ
るいは、これらとは別個のCPUを共通バス2にさらに接
続して、そのCPUに実行させるようにしても良い。
また、上記実施例では、第2図に示すようなソート処理
はクイツクソートアルゴリズムを用いて行つているが、
その他のソートアルゴリズムを用いて行つても良い。
また、上記実施例では、第3図に示すようにCPU(I)
3とCPU(III)5がソート済データを共通メモリ1に転
送するようになつているが、各CPU(I)3〜(IV)6
の4個のCPUすべてがソート済データを共通メモリ1に
転送し、第4図に示すようなソート処理を共通メモリ1
上で行うようにしても良い。
〔発明の効果〕
この発明は以上説明したとおり、ソート処理方式におい
て、ソートすべき全レコードを各々ローカルメモリを持
つ複数個の各CPUのローカルメモリに部分レコード群と
して分散して配置し、各CPUは自己のローカルメモリに
入っている部分レコード群に対してソートを行い、複数
個のCPUのうち一部のCPUのソート結果をバスを介して共
通メモリに転送し、共通メモリに転送されたソート結果
と共通メモリに転送されていない他の一部のCPUのソー
ト結果をマージソートするようにしたので、共通メモリ
に対するメモリ競合/バス競合が起こりにくくなり、こ
の種の従来のソート処理方式と比べて、ソート処理の速
度を大幅に向上することができるという優れた効果を奏
するものである。
【図面の簡単な説明】
第1図はこの発明の一実施例であるソート処理方式を示
すブロツク構成図、第2図,第3図,第4図,及び第5
図は、それぞれ第1図のソート処理方式におけるソート
処理の内容を説明するための図、第6図は従来のソート
処理方式を示すブロツク構成図、第7図は、第6図のソ
ート処理方式においてソートすべきレコードの形式を示
す図である。 図において、1……共通メモリ、2……共通バス、3〜
6……CPU(I)〜CPU(IV)、7〜10……ローカルメモ
リ(I)〜ローカルメモリ(IV)、12…14……割り込み
インタフエース信号、15……割り込み制御装置、16〜19
……未ソート部分レコード群、20〜25……ソート済部分
レコード群、27……CPU、28……メモリ、29……未ソー
トレコード群、26,30……ソート済レコード群である。 なお、各図中、同一符号は同一、又は相当部分を示す。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】各々ローカルメモリを持つ複数個のCPU
    と、この各CPUがアクセス可能な共通メモリと、この共
    通メモリと各CPUを接続するバスとを有する装置におい
    て、ソートすべき全レコードを前記各CPUのローカルメ
    モリに部分レコード群として分散して配置し、前記各CP
    Uは自己のローカルメモリに入っている前記部分レコー
    ド群に対してソートを行い、前記複数個のCPUのうち一
    部のCPUのソート結果を前記バスを介して前記共通メモ
    リに転送し、前記共通メモリに転送されたソート結果と
    前記共通メモリに転送されていない他の一部のCPUのソ
    ート結果をマージソートすることを特徴とするソート処
    理方式。
JP2843486A 1986-02-12 1986-02-12 ソ−ト処理方式 Expired - Lifetime JPH0782427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2843486A JPH0782427B2 (ja) 1986-02-12 1986-02-12 ソ−ト処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2843486A JPH0782427B2 (ja) 1986-02-12 1986-02-12 ソ−ト処理方式

Publications (2)

Publication Number Publication Date
JPS62186328A JPS62186328A (ja) 1987-08-14
JPH0782427B2 true JPH0782427B2 (ja) 1995-09-06

Family

ID=12248557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2843486A Expired - Lifetime JPH0782427B2 (ja) 1986-02-12 1986-02-12 ソ−ト処理方式

Country Status (1)

Country Link
JP (1) JPH0782427B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02259828A (ja) * 1989-03-31 1990-10-22 Mitsubishi Electric Corp ファイル併合処理方式
GB2276446B (en) * 1993-03-26 1996-07-03 Honda Motor Co Ltd Method of measuring the position of a hole

Also Published As

Publication number Publication date
JPS62186328A (ja) 1987-08-14

Similar Documents

Publication Publication Date Title
JPH0225536B2 (ja)
JPS5823375A (ja) デ−タ−処理システムにおけるキヤツシユの選択的クリア方法および装置
US4371924A (en) Computer system apparatus for prefetching data requested by a peripheral device from memory
US4187538A (en) Read request selection system for redundant storage
US5848411A (en) Method for distributedly processing a plurality of jobs in a data processing system
JPH0782427B2 (ja) ソ−ト処理方式
JPH02171846A (ja) トランザクション処理方式
EP0376003A2 (en) Multiprocessing system with interprocessor communications facility
JPH0581337A (ja) データ処理装置
JPH0328926A (ja) データ処理装置
JP2588932B2 (ja) ソート処理装置
JPS58221447A (ja) デ−タ処理装置
JPH02289005A (ja) 計数情報の整列処理方式
JP2531207B2 (ja) チャネル装置
JPH0351912A (ja) データセット単位のスプール領域返却方式
JP2625145B2 (ja) メモリアクセス制御装置
JP2825589B2 (ja) バス制御方式
JP2531209B2 (ja) チャネル装置
JPS6120172A (ja) マルチマイクロプロセツサシステム
JPS61118847A (ja) メモリの同時アクセス制御方式
JPH02129724A (ja) プログラム実行方式
JPH01100651A (ja) データ処理方式
JPH01283653A (ja) メモリプール管理方式
JPS61296455A (ja) メモリサイズの判別方法
JPH01188959A (ja) 情報履歴記憶装置