JP3352786B2 - プロセッサ回路 - Google Patents

プロセッサ回路

Info

Publication number
JP3352786B2
JP3352786B2 JP27389293A JP27389293A JP3352786B2 JP 3352786 B2 JP3352786 B2 JP 3352786B2 JP 27389293 A JP27389293 A JP 27389293A JP 27389293 A JP27389293 A JP 27389293A JP 3352786 B2 JP3352786 B2 JP 3352786B2
Authority
JP
Japan
Prior art keywords
data
macro cell
address
signal
circuit
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
JP27389293A
Other languages
English (en)
Other versions
JPH07129370A (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 JP27389293A priority Critical patent/JP3352786B2/ja
Publication of JPH07129370A publication Critical patent/JPH07129370A/ja
Priority to US08/557,503 priority patent/US5603023A/en
Application granted granted Critical
Publication of JP3352786B2 publication Critical patent/JP3352786B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Dram (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データ列を高速に所
定の順番で整列させることができるプロセッサ回路に関
し、特にヒープなデータを生成することができ、さら
に、ヒープソートによりデータ列を高速に整列すること
ができるソート・プロセッサ回路に関する。
【0002】
【従来の技術】「ソート処理」とは、任意数のデータを
小さい順(昇順)に、あるいは大きい順(降順)に並べ
る操作である。ソート処理は計算機システムにおける基
本的な操作であり、種々の応用プログラムにおいて多用
されている。したがって、ソート処理を高速化できれ
ば、計算機上で実行される応用プログラムやジョブの全
体としての動作も高速化することが期待される。
【0003】ソート処理を高速化する研究は、計算機の
誕生と同時といってよい頃から行なわれてきた。たとえ
ばハードウェア・ソート・アルゴリズムの提案からソー
ト・プロセッサ(ソート処理を専用に実行するための集
積回路装置)の試作まで、多大な努力がこの分野に払わ
れてきた。しかし、高速で多量のデータを処理すること
ができる、実用に耐えられるハードウェアのソート・プ
ロセッサはいまだに少ないのが現状である。
【0004】ソート処理には数多くのアルゴリズムが存
在するが、現在商用化されているものはすべてマージ・
ソートと呼ばれるアルゴリズムを利用したソートプロセ
ッサである(たとえば「情報処理学会誌」の第33巻、
第12号、第1388頁〜第1402頁を参照)。
【0005】マージソートに対し、ヒープソートと呼ば
れるソート方法が知られている。ヒープソートとは、
「ヒープなデータ」を利用してソートを行なう方法であ
る。
【0006】最初にヒープなデータについて説明する。
ヒープとは、典型的にはラベル付きの整列2分木と呼ば
れるデータ構造である。その例を図32に示す。
【0007】「2分木」とは、次の条件を満たすものを
いう。 (a) 図32の頂点(1)で示されるように、他の頂
点と区別される特別な1つの頂点を有する。この特別な
頂点はルート(根)と呼ばれる。
【0008】(b) ルート以外の頂点は、共通部分を
持たない頂点の集合に分割できる。図32に示される例
の場合には、頂点(2)以下の頂点の集合と、頂点
(3)の頂点の集合とに分割できる。この条件(a)
(b)を備えた頂点の集合を「木」と呼ぶ。
【0009】(c)どの頂点も最大で2個の部分木を持
つ。このとき自分自身を親、部分木の先頭の頂点を子と
呼ぶ。
【0010】2分木の概略の定義は上述のとおりであ
る。2分木では、分岐箇所における親と子とのデータの
関係を規則づけることにより、意味合いの違うデータ構
造を実現できる。
【0011】ヒープとは、どの親と子とをとっても、そ
のデータの間に所定の大小関係が成立する2分木であ
る。たとえば、図32に示されるように、どの親もその
子よりも値の大きなデータを有しているものが一例であ
る。図32に示される例では、親のデータが子のデータ
よりも大きな値であるという規則はあるが、親から分岐
する2つの子の間には順序づけはされていない。したが
ってヒープなデータでは、図32に示される例でわかる
ように、ルートのデータが最大の値(または最小の値)
を有している。
【0012】ヒープなデータを表現するためのデータ構
造の一例に、一次元配列表現がある。一次元配列表現で
は、番地計算で2分木の親子関係が求められる。一次元
配列にヒープなデータを記憶する場合には、以下のよう
な規則が存在する。なお以下の説明では、n個のデータ
が存在し、このデータがn個の要素を有する一次元配列
a[1]からa[n]までに格納されるものとする。ま
た、ルートに対応するデータを単に「ルート」と呼び、
同様に親、子に対応するデータを単に「親」、「子」と
呼ぶこととする。
【0013】(1) a[1]にはルートが格納され
る。 (2) a[i]の子は、a[2]、a[i+1]であ
る。
【0014】(3) a[i](ただしi≠1)の親は
a[i/2](iが偶数の場合)、a[(i−1)/
2](iが奇数の場合)である。以下の説明において
は、iが偶数、奇数の場合を含めてa[i]の親はa
[i/2]として表現するものとする。
【0015】以上のような規則に従って、図32に示さ
れるヒープなデータを一次元配列に記憶させた場合、一
次元配列の格納データは図33に示されるようになる。
図33と図32とを比較すれば容易にわかるように、ル
ートのデータは第1番目の配列a[1]に、子(2)の
データは配列a[2]に、子(3)のデータは配列a
[3]に、というように各子のデータが上述の規則に従
って定まる配列要素に格納されている。
【0016】次にヒープなデータの生成方法について説
明する。配列a[1]〜a[n]にn個のデータが格納
されており、これらデータの格納順序には規則性がない
ものとする。このデータが、以下の処理を行なうことに
よりヒープなデータとなる。
【0017】(1) 2分木の下位の頂点から逆上っ
て、子を持つ頂点のうちの最初のものを見つける。子を
持つ頂点は、必ず2つの子を有するものとすれば、こう
して見つけられる頂点はa[n/2]に対応する頂点で
ある。
【0018】(2) (1)で見つけられた頂点を含
む、それより下の部分木をヒープな状態にする。すなわ
ち、以下のような処理を行なう。なお以下の例では、親
が子よりも大きなデータを持つようなヒープデータを作
成するものとする。
【0019】(a) 自分と、自分の子の値とを比較す
る。自分の方が大きければステップ(3)に進む。子の
方が大きければ、子のうちの大きい方と自分とを入換え
る。
【0020】(b) 自分が移動した位置を中心とし
て、上述のステップ(a)と同じ処理を、自分の方が大
きくなるか、あるいは子がなくなるまで繰返す。
【0021】(3) (2)のステップの処理を、
(1)で発見された頂点から逆上りルートに至るまでの
すべての頂点について繰返し実行する。
【0022】なお、親が子よりも小さいデータであると
いう条件のヒープなデータを生成する場合には、親と子
との大小関係を逆にして考えればよい。
【0023】次にヒープソートについて説明する。ヒー
プソートとは、ヒープな状態のデータを利用して、デー
タを昇順または降順に並べ換えるためのアルゴリズムで
ある。ヒープソートは以下の手順により実行される。な
お、以下の説明では、親が子よりも大きいようなヒープ
データを利用して、データを昇順に並べ換える場合を説
明する。
【0024】(1) 図34に示されるように、ヒープ
なデータを準備する。ヒープなデータのルートには最大
のデータが格納されている。
【0025】(2) ルートのデータと、ヒープなデー
タの最後のデータとを交換する。交換後のこの2分木の
状態を図35に示す。
【0026】(3) 1番最後のデータ(図36におい
ては「21」)を除いた2分木のデータを、ヒープな状
態に並べ換える。このとき、ルートを除いた部分木の各
頂点はすでにヒープな状態となっている。したがって、
ルートのみについて、上述のヒープなデータを生成する
処理のうちのステップ(2)を実行すれば、新しい2分
木をヒープな状態に再整列させることができる。たとえ
ば図35に示される2分木においては、まずルートとそ
の子「16」とが交換される(図36)。次に、交換さ
れた元のルート「4」とその子「13」とが交換される
(図37)。図37を参照して明らかなように、1番最
後のデータ「21」を除いた2分木はヒープなデータと
なっている。そしてこのときのルートには、元のn個の
データのうちの2番目に大きなデータが格納されてい
る。
【0027】(4) ステップ(2)と(3)とを繰返
す。この場合、ステップ(2)では、直前のステップ
(3)でヒープなデータに整列された2分木のルート
と、その2分木の最後のデータとを交換するものとす
る。このとき、ステップ(3)でヒープな状態に再整列
される2分木のデータ数は1つずつ減っていく。
【0028】たとえば、図37に示される2分木におい
てルート「16」と、再整列された2分木の最後のデー
タ「1」とを交換し図38に示される2分木が得られ
る。上述のようにルート「1」を中心として、ヒープな
データを生成する処理のステップ(2)を実行すること
により、図39に示される2分木が得られる。このとき
のルートには、元のn個のデータのうちの3番目に大き
なデータが格納されている。さらに図39に示されるル
ート「13」と、再整列された2分木の最後のデータ
「8」とを交換し、以下ルートを中心として前述のヒー
プなデータを作成するための処理のステップ(2)の処
理を実行する。以下こうした処理を繰返し実行していく
が、その場合、再整列される2分木のデータ数は上述の
ように1ずつ減少していく。また、再整列後のルートに
は、再整列されたデータのうちで最も大きなデータが格
納される。そしてこのルートと、整列された2分木の最
後のデータとを交換していくので、2分木の最後の頂点
からルートに向かって大きいデータが順に格納されてい
く。
【0029】(4)の処理が完全に終了すると、図40
に示されるようなデータが得られる。図40に示される
データが、図33に示されるような一次元配列に、図3
2および図33に示されるような関係で格納されている
ので、最終的にこの配列には、データが昇順に格納され
ていることがわかる。すなわち、ヒープソートにより、
n個のデータが昇順に並べ換えられ、その結果が一次元
配列に格納されている。
【0030】以上のようなヒープソートのアルゴリズム
については従来から知られており、一定の手順で実現で
きることから、ソフトウェアによって処理されてきた。
【0031】
【発明が解決しようとする課題】上述のヒープソートの
アルゴリズムをソフトウェアのみで実現する場合、1回
のソートに、入れ子処理を含む多数回のデータの比較、
書換えを実行しなければならず、処理を高速に行なうこ
とができなかった。さらにデータベースを利用したシス
テムにおいては、このようなソート処理を何回も実行す
る必要があるために、全体の処理はより長くなる。そう
したシステムでは処理対象のデータ量も多いために、ソ
ート処理全体には膨大な時間を要するという問題点があ
った。
【0032】それゆえにこの発明の目的は、ヒープデー
タを高速で生成することができるプロセッサ回路とヒー
プソートを高速で実行できるプロセッサ回路とを提供す
ることである。
【0033】
【課題を解決するための手段】請求項1に記載のプロセ
ッサ回路は、複数個のマクロセルを含むメモリセルアレ
イと、アドレス信号に応答して、メモリセルアレイの任
意の第1のマクロセルアレイを選択するための第1の選
択手段と、第1の選択手段により選択されたアドレスの
マクロセルと、外部との間でデータを入出力するための
手段と、アドレス信号に応答して、第1のマクロセルの
アドレスと所定の関係を有する2つのアドレスの、2つ
のマクロセルを選択するための第2の選択手段と、第2
の選択手段により選択された2つのマクロセルの内容を
比較し、予め定める条件を満たす第2のマクロセルを2
つのマクロセルのうちから選択するための第3の選択手
段と、第1のマクロセルの内容と、第2のマクロセルの
内容とを比較し、第1のマクロセルの内容が、第2のマ
クロセルの内容に対して前記予め定める条件を満たさな
いことを検出して、第1のマクロセルの内容と、第2の
マクロセルの内容とを交換するための交換手段とを含
む。
【0034】請求項2に記載のプロセッサ回路は、請求
項1に記載のプロセッサ回路であって、第2の選択手段
は、第1のマクロセルのアドレスの2倍に等しいアドレ
スのマクロセル、および第1のマクロセルのアドレスの
2倍に1加算した数と等しいアドレスのマクロセルを選
択する。
【0035】請求項3に記載のプロセッサ回路は、請求
項2に記載のプロセッサ回路であって、第3の選択手段
は、他方のマクロセルより大きな値を記憶しているマク
ロセルを選択する。
【0036】請求項4に記載のプロセッサ回路は、請求
項1に記載のプロセッサ回路であって、ある動作サイク
ルにおいて第1の選択手段に与えられたアドレス信号
が、直後の動作サイクルにおいて第1の選択手段に与え
られるアドレス信号の2倍に等しいことと、または第1
の選択手段に与えられるアドレス信号の2倍に1加算し
た数と等しいこと、とのいずれか一方を満たすことを検
出して、動作を禁止する信号を発生するための手段をさ
らに含む。
【0037】請求項5に記載のプロセッサ回路は、請求
項1に記載のプロセッサ回路であって、動作モード設定
信号の第1の値に応答して、第2の選択手段を可能化
し、動作モード設定信号の第2の値に応答して、第2の
選択手段を不能化するとともに、メモリセルアレイの先
頭アドレスのマクロセルを第2のマクロセルとして選択
するための第4の選択手段をさらに含む。
【0038】請求項6に記載のプロセッサ回路は、請求
項5に記載のプロセッサ回路であって、メモリセルアレ
イの先頭アドレスのマクロセルの内容を読出すための手
段をさらに含む。
【0039】請求項7に記載のプロセッサ回路は、請求
項6に記載のプロセッサ回路であって、第3の選択手段
は、第2の選択手段により選択された2つのマクロセル
の内容を比較し、ソートモード設定信号に基づいて、予
め定められる第1の条件と、第1の条件の否定の第2の
条件とのいずれか一方を選択し、選択された条件を満た
すマクロセルを第2のマクロセルとして選択するための
手段を含む。交換手段は、第1のマクロセルの内容と、
第2のマクロセルの内容とを比較し、ソートモード設定
信号に基づいて、第1の条件と第2の条件とのいずれか
一方を選択し、第1のマクロセルの内容が、第2のマク
ロセルの内容に対して、選択された条件を満たさないこ
とを検出して、第1のマクロセルの内容と、第2のマク
ロセルの内容とを交換するための手段を含む。
【0040】請求項8に記載のプロセッサ回路は、請求
項7に記載のプロセッサ回路であって、メモリセルアレ
イの先頭アドレスのマクロセルの内容を読出すための手
段をさらに含む。
【0041】請求項9に記載のプロセッサ回路は、請求
項5に記載のプロセッサ回路であって、第1のマクロセ
ルの内容と、第2のマクロセルの内容との交換が、交換
手段によって行なわれたか否かを検出して交換検出信号
を発生するための手段と、交換検出信号の値に依存し
て、動作モード設定信号を第1または第2の値に選択的
に設定するための動作モード設定手段とをさらに含む。
【0042】請求項10に記載のプロセッサ回路は、請
求項9に記載のプロセッサ回路であって、第2のマクロ
セルのアドレスを検出し、被選択アドレス信号を出力す
るための手段と、交換検出信号が交換の発生を検出した
値となったことに応答して、被選択アドレス信号により
特定されるアドレスを第1の選択手段に与えるためのア
ドレス選択手段をさらに含む。
【0043】請求項11に記載のプロセッサ回路は、請
求項10に記載のプロセッサ回路であって、アドレス選
択手段は、外部から与えられる初期データを格納して出
力するための記憶手段と、交換が発生しなかったことを
示す値から、交換が発生したことを示す値に交換検出信
号が変化したことに応答して、記憶手段に格納されたデ
ータを予め定める値だけ減ずるための減算手段と、交換
検出信号の値に基づいて、被アドレス信号または減算手
段の出力を選択的に第1の選択手段に与えるための手段
とを含む。
【0044】請求項12に記載のプロセッサ回路は、複
数個のマクロセルを含むメモリセルアレイと、第1のア
ドレスイネーブル信号により能動化され、第1のアドレ
ス信号に応答して、メモリセルアレイの任意の第1のマ
クロセルを選択するための第1の選択手段と、第2のア
ドレスイネーブル信号により能動化され、第1のアドレ
ス信号と関連する第2のアドレス信号に応答して、第1
のアドレス信号と所定の関係を有する2つのアドレス
の、2つのマクロセルを選択するための第2の選択手段
と、第2の選択手段により選択された2つのマクロセル
の内容を比較し、予め定める条件を満たす第2のマクロ
セルを2つのマクロセルのうちから選択するための第3
の選択手段と、複数のマクロセルおよび外部回路と接続
可能であり、第1の選択手段により選択されたアドレス
のマクロセルに選択的に接続される第1のデータ線と、
複数のマクロセルおよび外部回路と接続可能であり、第
3の選択手段により選択されたアドレスのマクロセルに
選択的に接続される第2のデータ線とを含む。
【0045】請求項13に記載のプロセッサ回路は、請
求項12に記載のプロセッサ回路であって、第2の選択
手段は、第1のマクロセルのアドレスの2倍に等しいア
ドレスのマクロセルおよび第1のマクロセルのアドレス
の2倍に1加算した数と等しいアドレスのマクロセルを
選択する。
【0046】請求項14に記載のプロセッサ回路は、請
求項13に記載のプロセッサ回路であって、第3の選択
手段は、第2の選択手段により選択された2つのマクロ
セルの内容を比較し、他方のマクロセルより大きな値を
記憶しているマクロセルを2つのマクロセルのうちから
選択する。
【0047】
【作用】請求項1に記載のプロセッサ回路においては、
予め第1の選択手段を用いてメモリセルアレイの各マク
ロセルにデータを設定しておく。ヒープデータの作成時
には第1の選択手段に処理対象のデータが格納されたマ
クロセルのアドレス信号を与える。第1の選択手段はア
ドレス信号に応答して、処理対象のデータを格納した第
1のマクロセルを選択する。第2の選択手段もこのアド
レス信号に応答して、第1のマクロセルのアドレスと所
定の関係を有する2つのアドレスの、2つのマクロセル
を選択する。第3の選択手段は、第2の選択手段により
選択された2つのマクロセルの内容を比較し、予め定め
る条件を満たす第2のマクロセルを2つのマクロセルの
うちから選択する。交換手段は、第1のマクロセルの内
容と、第2のマクロセルの内容とを比較し、第1のマク
ロセルの内容が、第2のマクロセルの内容に対して予め
定める条件を満たさない場合には、第1のマクロセルの
内容と、第2のマクロセルの内容とを交換する。
【0048】請求項2に記載のプロセッサ回路において
は、第2の選択手段は、第1のマクロセルのアドレスの
2倍に等しいアドレスのマクロセル、および第1のマク
ロセルのアドレスの2倍に1加算した数と等しいアドレ
スのマクロセルを選択する。第1のマクロセルが整列2
分木のある頂点に対応するものとすると、第2の選択手
段によって、この頂点の2つのこの頂点のデータを格納
した2つのマクロセルが選択される。
【0049】請求項3に記載のプロセッサ回路において
は、第1のマクロセルの内容と、第2の選択手段により
選択された2つのマクロセルのうち、より大きな値を格
納している方との間で交換手段により比較と交換とが行
なわれる。したがって、整列2分木において、親のデー
タよりも大きなデータを格納した子頂点があると、親頂
点のデータとその子頂点のデータとが交換される。
【0050】請求項4に記載のプロセッサ回路において
は、ある動作サイクルにおいて第1の選択手段に与えら
れたアドレス信号が、直後の動作サイクルにおいて第1
の選択手段に与えられるアドレス信号に対して第2の選
択手段において判断される所定の関係を有しているか否
かが判断される。この関係が成立すると、動作を禁止す
る信号が発生される。これにより、次のような作用が生
ずる。すなわち、ある動作サイクルにおいて交換手段に
より第1および第2のマクロセルの間でデータの交換が
行なわれたとする。このときのアドレス信号が、次に与
えられるアドレス信号に対して前記所定の条件を満たし
ていると、第2の選択手段は、データの交換が発生した
第1のマクロセルを次の動作サイクルの第2のマクロセ
ルとして選択する。第3の選択手段はこのマクロセル
と、もう1つの前記所定の条件を満たすアドレスのマク
ロセルとの間でその内容を比較する。データの交換には
ある程度の時間がかかるので、この際、データ交換の発
生した方のマクロセルの内容が正しく書換えられていな
い可能性があり、そのために第3の選択手段の選択結果
が誤る可能性がある。しかし、このような条件では動作
の禁止信号が発生されるので、正しい結果が得られるよ
うになるまで、このプロセッサ回路の出力を無視するこ
とができる。
【0051】請求項5に記載のプロセッサ回路において
は、動作モード設定信号が第1の値になると、第2の選
択手段が可能化される。第2の選択手段と第3の選択手
段とにより選択されたマクロセルと第1の選択手段によ
り選択された第1のマクロセルとの間で、交換手段によ
り比較/交換動作が行なわれる。動作モード設定信号が
第2の値となると、第2の選択手段が不能化され、メモ
リセルアレイの先頭アドレスのマクロセルが第2のマク
ロセルとして選択される。したがって、第1の選択手段
により選択された第1のマクロセルと、メモリセルアレ
イの先頭アドレスのマクロセルとの間で、交換手段によ
る比較/交換動作が行なわれる。
【0052】請求項6に記載のプロセッサ回路において
は、メモリセルアレイの先頭アドレスのマクロセルの内
容が読出せる。ヒープソートの実行中にはメモリセルア
レイの先頭アドレスのマクロセルには、ソート条件によ
り決まる一定条件でデータが順に交代で格納されるの
で、プロセッサ回路の動作と並行してヒープソートの結
果のうち確定したものを読出すことができる。
【0053】請求項7に記載のプロセッサ回路において
は、第2の選択手段により選択された2つのマクロセル
の内容のうち、ソートモード設定信号に基づいて選択さ
れた条件を満たすマクロセルが第2のマクロセルとして
選択される。同様に交換手段においては、ソートモード
設定信号に基づいて第1の条件と第2の条件とのいずれ
か一方が選択され、第1のマクロセルの内容が、第2の
マクロセルの内容に対して、選択された条件を満たさな
い場合に、第1のマクロセルの内容と第2のマクロセル
の内容とが交換される。第1のマクロセルの内容と、第
2の選択手段にり選択された2つのマクロセルの内容と
のうち、選択された条件を満たす方が第1のマクロセル
に格納されるので、ソートモード設定信号を変えること
により、マクロセルに格納されるデータの順序を変える
ことができる。
【0054】請求項8に記載のプロセッサ回路において
は、請求項7に記載のプロセッサ回路の作用に加え、メ
モリセルアレイの先頭アドレスのマクロセルの内容を読
出すことができる。ヒープソートの実行中にはメモリセ
ルアレイの先頭アドレスのマクロセルには、ソートモー
ド設定信号により選択される条件でデータが順に交代で
格納されるので、異なる条件で行なわれるヒープソート
の結果のうち確定したものを、プロセッサ回路の動作と
並行して読出すことができる。
【0055】請求項9に記載のプロセッサ回路において
は、第1のマクロセルの内容と、第2のマクロセルの内
容との交換が行なわれると、動作モード設定信号が第1
の値にされ、交換が行なわれないと動作モード設定信号
が第2の値に設定される。したがって、第1のマクロセ
ルの内容と第2のマクロセルの内容との交換が行なわれ
る限り、第1のマクロセルと、第3の選択手段により選
択されたマクロセルとの間でその内容の比較/交換が行
なわれる。しかし、第1のマクロセルの内容と第2のマ
クロセルの内容との交換が行なわれない場合には、こう
した動作は終了し、第1のマクロセルと、メモリセルア
レイの先頭アドレスのマクロセルとの間でその内容の比
較/交換が行なわれる。
【0056】請求項10に記載のプロセッサ回路におい
ては、第1のマクロセルと第2のマクロセルとの間でそ
の内容の交換が行なわれると、第2のマクロセルのアド
レスが被選択アドレス信号として第1の選択手段に与え
られる。直前の動作サイクルで第2のマクロセルとして
選択され、かつその内容が第1のマクロセルの内容と交
換されたマクロセルが、直後の動作サイクルでは第1の
マクロセルとして選択される。したがって、第1のマク
ロセルの内容が第2のマクロセルの内容と交換されなく
なるまで、最初に選択された第1のマクロセルの内容の
みを追跡して、第2のマクロセルとの比較/交換動作を
行なわせることができる。
【0057】請求項11に記載のプロセッサ回路におい
ては、記憶手段は、外部から与えられる初期データを格
納して出力する。第1のマクロセルの内容と第2のマク
ロセルの内容とで交換が発生しない場合には、記憶手段
の内容により示されるアドレスが第1の選択手段に与え
られ、そのアドレスのマクロセルと、第4の選択手段に
より選択されるメモリセルアレイの先頭アドレスのマク
ロセルの内容とが比較/交換される。内容の交換が発生
しないことを示す値から、内容の交換が発生したことを
示す値に交換検出信号が変化すると、記憶手段に格納さ
れたデータは予め定める値だけ減算される。交換検出信
号が、内容の交換が発生したことを示す値である場合、
被選択アドレス信号が第1の選択手段に与えられる。マ
クロセルの内容の交換が発生するときにはいつも、被選
択アドレス信号が第1の選択手段に与えられるので、先
頭アドレスのマクロセルに格納されていた内容を追跡し
て、第1のマクロセルと第2のマクロセルとの内容の比
較/交換を繰返し実行できる。一方、交換が発生しない
状態から発生した状態に変化したときに、記憶手段の内
容が予め定める値だけ減じられているので、次に交換が
発生しない状態となったときには、前回よりも予め定め
る値だけ少ないアドレスが記憶手段から第1の選択手段
に与えられて、そのアドレスのマクロセルと、第4の選
択手段により選択されるメモリセルアレイの先頭アドレ
スのマクロセルの内容とが比較/交換されることにな
る。
【0058】請求項12に記載のプロセッサ回路に第1
のアドレスイネーブル信号を与えると第1の選択手段が
能動化され、第1のアドレス信号に応答してメモリセル
アレイの任意の第1のマクロセルを選択する。第1のデ
ータ線を通じて、メモリセルアレイの各マクロセルに、
処理対象のデータを格納することができる。第2のアド
レスイネーブル信号を与えると、第2の選択手段が能動
化され、第2のアドレス信号に応答して、第1のアドレ
ス信号と所定の関係を有する2つのアドレスの、2つの
マクロセルを選択する。第3の選択手段が、第2の選択
手段により選択された2つのマクロセルの内容を比較
し、予め定める条件を満たす第2のマクロセルを2つの
マクロセルのうちから選択する。第1および第2のアド
レスイネーブル信号と、第1および第2のアドレス信号
とを与えることにより、第1のアドレス信号により選択
されるマクロセルの内容が第1のデータ線に読出され、
第2のアドレス信号により選択される2つのマクロセル
のうち、予め定める条件を満たすマクロセルの内容が第
2のデータ線に読出される。これら2つのデータを比較
し、第1のデータ線上のデータが、第2のデータ線上の
データに対して予め定める条件を満たしていない場合に
は、これら2つのデータを入換えて元のマクロセルに書
込むようにすれば、第1および第2のアドレス信号を所
定のアルゴリズムに従って与えることで、ヒープなデー
タの作成と、ヒープソートとを実行できる。第1および
第2のアドレスイネーブル信号を与えるか否かで、この
プロセッサ回路に対する処理を行なうか否かを選択でき
るので、このプロセッサ回路を複数個接続して、より多
数のマクロセルを含むメモリセルアレイを形成し、かつ
そのメモリセルアレイを使用して、ヒープなデータの作
成を実行できる。さらに、第2の選択手段を不能化する
こともできるので、特定の回路を付加することで、ヒー
プソートを簡単に実行する回路も実現できる。
【0059】請求項13に記載のプロセッサ回路におい
ては、第3の選択手段は、第2の選択手段により選択さ
れた2つのマクロセルのうち、他方のマクロセルより大
きな値を記憶しているマクロセルを2つのマクロセルの
うちから選択する。第1のマクロセルと第2のマクロセ
ルとの比較においては、第2のマクロセルの内容が第1
のマクロセルの内容よりも大きければ2つのマクロセル
の内容の交換が行なわれ、そうでなければ交換は行なわ
れない。
【0060】請求項14に記載のプロセッサ回路におい
ては、第2の選択手段は、第1のマクロセルのアドレス
の2倍に等しいアドレスのマクロセルおよび第1のマク
ロセルの2倍に1加算した数と等しいアドレスのマクロ
セルを選択する。一般的な2分木の格納形態でデータを
マクロセルに順次格納したとき、第2の選択手段により
選択される2つのマクロセルは、第1のマクロセルに対
応する頂点を親とする2つの子の頂点に対応する。そし
て、このプロセッサ回路によれば、これら2つの子のう
ち大きい値を有する頂点と、親頂点の値とが比較され、
子頂点の方が大きい場合にはこれらデータの交換が行な
われる。したがってこれら頂点を所定のアルゴリズムに
従って順次選択していくことで、ヒープなデータの生成
を簡単に行なうことができる。ヒープソートを行なう回
路も容易に実現できる。
【0061】
【実施例】以下、この発明の6つの実施例のプロセッサ
回路を順に説明する。図1〜17に示される第1の実施
例のプロセッサ回路は、ヒープデータを生成するための
回路である。図18および19に示される第2の実施例
のプロセッサ回路は、外部からの制御に従って、ヒープ
ソートを高速に実行するための回路である。図3に示さ
れる第3の実施例のプロセッサ回路は、外部からの制御
に従ってヒープソートを高速で実行するとともに、ヒー
プソートの実行と並行して結果を読出すことができる回
路である。図21〜24に示される第4の実施例のプロ
セッサ回路は、外部からの制御に従ってヒープソートを
高速で実行し、かつその実行とともにデータを読出すこ
とができる回路であって、ヒープソートを昇順と降順と
で切換えて実行することができる回路である。図25〜
28に示される第5の実施例のプロセッサ回路は、外部
から所定のデータを与え、かつ外部の制御によりヒープ
なデータの生成がされれば、以下自動的にヒープソート
を高速で実行できる回路である。この回路ではまた、ソ
ート結果をソートの実行と並行して読出すことができ、
かつデータの整列順を指定することもできる。図29お
よび30に示される第6の実施例のプロセッサ回路は、
同様な構成の回路を複数個組合わせることにより、所望
のデータ数のデータのソート処理を実行するための回路
を実現できる回路である。 [第1の実施例] 図1を参照して、本発明の第1の実施例であるヒープソ
ートプロセッサについて説明する。本発明の第1の実施
例のプロセッサ回路であるヒープソートプロセッサ50
は、メモリ54および図示されないCPUに接続されて
使用される。メモリ54は、ヒープソートの対象となる
データを予め格納しておき、ヒープソートプロセッサ5
0内の、後述するマクロセル内に与えるためのものであ
る。メモリ54は、ヒープソートプロセッサ50から読
出されたデータを格納するためにも用いられる。
【0062】ヒープソートプロセッサ50は、メモリセ
ルアレイ64と、第1および第2のデコーダ60および
62と、アドレス判定回路86と、比較書換制御回路6
6とを含む。アドレス判定回路66はなくてもよい。
【0063】メモリセルアレイ64は、第1のマクロセ
ル70と、複数個のマクロセル対72とを含む。各マク
ロセル対72には、後述するようにマクロセル70と同
様の1対のマクロセルが設けられている。これらマクロ
セル70とマクロセル対72内のマクロセルとは、複数
ビットのビット線100および102によって比較書換
制御回路66に接続されている。マクロセル70および
マクロセル対72内の各マクロセルは、後述するように
データ保持部と2ポートの読出し、書込み回路を含むワ
ード単位回路であり、通常の2ポートメモリ回路のもの
と同様である。
【0064】デコーダ60は、図示されないCPUから
与えられるアドレス信号80をデコードし、第1のマク
ロセル70のための選択信号線90と、各マクロセル対
72に含まれるマクロセルのための選択信号線92およ
び94とによって、メモリセルアレイ64内のマクロセ
ルのうちの1つを選択するためのものである。選択され
たマクロセルは、ビット線100と接続される。
【0065】デコーダ62は、後述するように図示され
ないCPUからのアドレス信号80のうちの2ビットを
デコードし、複数のマクロセル対72のうちの1つを、
アドレスデコード信号線96によって選択するためのも
のである。
【0066】比較書換制御回路66は、図示されないC
PUから比較書換制御信号線84を介して与えられるク
ロック信号と、外部データ書込信号と、書換信号とに応
答して、メモリセルアレイ64内の各マクロセルへのデ
ータの書込み、読出し、および後述するようなマクロセ
ル間のデータの交換を行なうためのものである。アドレ
ス判定回路86は、ある動作サイクルにおいてアドレス
信号線80を介して与えられたアドレス信号と、次の動
作サイクルにおいてアドレス信号線80を介して与えら
れるアドレスデータとの間に、後述するような所定の関
係が成立するか否かを判断し、成立する場合にはウェイ
ト信号線88を介して、CPUによる制御動作を一時停
止させるためのウェイト信号を出力するためのものであ
る。アドレス判定回路86で行なわれる処理について
は、図16を参照して後述する。
【0067】なお、メモリ54は、CPUからメモリ制
御信号線82を介して与えられる制御信号に応答して動
作する。
【0068】図2を参照して、マクロセル対72は、と
もにビット線100および102に接続された1対のマ
クロセル110および112と、データ線118および
120によってそれぞれマクロセル110および112
に接続された比較回路114と、第2のデコーダ62
(図1参照)からのアドレスデコード信号線96と、比
較回路114からの比較判定信号線126とに接続さ
れ、アドレスデコード信号と比較判定信号とに応答し
て、マクロセル110および112のうちのいずれか一
方を選択し、選択信号線122および124のいずれか
一方に選択信号を与えるためのマクロセル選択回路11
6とを含む。なお、マクロセル110は選択信号線92
を介して与えられる選択信号に応答してビット線100
に、選択信号線122を介して与えられる選択信号に応
答してビット線102に、それぞれ接続される。マクロ
セル112は、選択信号線94を介して与えられる選択
信号に応答してビット線100に、選択信号線124を
介して与えられる選択信号に応答してビット線102
に、それぞれ接続される。
【0069】図3を参照して、マクロセル選択回路11
6は、2つの論理積回路130および132と、否定回
路134とを含む。論理積回路130の入力の一方は、
アドレスデコード信号線96に接続される。他方の入力
は比較判定信号線126に接続される。論理積回路13
0の出力は選択信号線122に接続される。
【0070】否定回路134の入力には比較判定信号線
126が接続され、その出力は論理積回路132の一方
の入力に接続されている。論理積回路132の他方の入
力はアドレスデコード信号線96に接続される。論理積
回路132の出力は選択信号線124に接続される。
【0071】マクロセル選択回路116の機能は次のと
おりである。選択信号線96に論理0が与えられた場
合、選択信号線122および124の双方とも出力は論
理0である。したがって図2に示されるマクロセル11
0および112のいずれも選択されない。
【0072】アドレスデコード信号線96に与えられる
デコード信号が論理1となった場合を考える。比較判定
信号線126が論理1であれば、論理積回路130の出
力は論理1となる。一方論理積回路132の出力は論理
0となる。したがって、選択信号線122上の信号は論
理1となり、選択信号線124上の信号は論理0とな
り、マクロセル110が選択される。比較判定信号線1
26上の信号が論理0であればその逆となり、マクロセ
ル112が選択される。
【0073】後述するように比較回路114は、マクロ
セル110とマクロセル112との格納内容を比較し、
マクロセル110の格納内容が大きい場合にその比較判
定信号線126上に論理1の信号を出力する。したがっ
てマクロセル選択回路116および比較回路114によ
り、2つのマクロセル110および112のうちのいず
れか大きいデータを格納しているマクロセルが選択され
てビット線102に接続されることになる。なお、図1
に示されるように、マクロセル70の2つの選択信号線
のうち、選択信号線122、124に相当するものは接
地されている。したがってマクロセル70が第2のビッ
ト線102と接続されることはない。
【0074】図4を参照して、マクロセル110は、複
数個の1ビットデータメモリ回路136を含む。各メモ
リ回路136は、選択信号線92と選択信号線122
と、ビット線100と、ビット線102と、データ線1
18とに接続される。後述するようにいずれの1ビット
データメモリ回路136の構成も同様である。
【0075】図5を参照して、マクロセル112も、複
数個(8個)の1ビットデータ回路138を含む。いず
れのデータメモリ回路138も、選択信号線94と、選
択信号線124と、第1のビット線100と、第2のビ
ット線102と、データ線120とに接続される。各1
ビットデータメモリ回路138は、図4に示される1ビ
ットデータメモリ回路136と全く同様の構成である。
したがって以下では、図4に示される1ビットデータメ
モリ回路136について説明することにする。
【0076】図6を参照して、1ビットデータメモリ回
路136は、nチャネルトランジスタ150および15
6と、トランジスタ150および156の一方端子間に
逆平行接続された1対の否定回路152および154と
を含む。nチャネルトランジスタ150および156の
他方端は、それぞれ第1のビット線100と第2のビッ
ト線102とに接続されている。否定回路154の出力
はデータ線118に接続されている。トランジスタ15
0および156のゲート電極は、それぞれ選択信号線9
2および122に接続されている。
【0077】図7を参照して、比較回路114は、配線
164により直列に接続された複数個の1ビット比較回
路160と、配線164に入力が、比較判定信号線12
6に出力がそれぞれ接続された否定回路162とを含
む。各1ビット比較回路160は、それぞれデータ線1
18のうちの対応する1本と、データ線120のうちの
対応する1本とに接続されている。
【0078】図8を参照して、1ビット比較回路160
は、pチャネルトランジスタ172および174と、n
チャネルトランジスタ176および178と、否定回路
184、190、192と、トランスミッションゲート
182、186および188とを含む。
【0079】トランジスタ172および174は、その
入出力端子が電源電位170と配線164との間で直列
に接続されている。トランジスタ176および178
は、その入出力端子が、配線164と接地電位180と
の間で直列になるように接続されている。トランジスタ
174および176のゲート電極は、共通にデータ線1
18に接続されている。
【0080】否定回路192の入力はデータ線120に
接続されている。否定回路192の出力には、トランジ
スタ172および178のゲート電極が共通に接続され
ている。
【0081】トランスミッションゲート182の入出力
端子は、配線164内に挿入されるように接続されてい
る。トランスミッションゲート182の制御端子の一方
は否定回路184の入力とともに、トランスミッション
ゲート186の入出力端子の一方に接続され、他方の制
御端子は否定回路184の出力に接続されている。
【0082】トランスミッションゲート186の他方の
入出力端子は否定回路190の出力に接続され、その制
御端子はそれぞれデータ線120と否定回路192の出
力とに接続されている。
【0083】トランスミッションゲート188の入出力
端子は、トランスミッションゲート186の一方の入出
力端子とデータ線118とに接続されている。トランス
ミッションゲート188の制御端子はそれぞれ、データ
線120と否定回路192の出力とに接続されている。
なお、図7に示されるように、1ビットデータ比較回路
160のうち、最も左側(最下位ビット側)において配
線164が接地電位に接続されている。
【0084】図9を参照して、第1のデコーダ60は、
3つの否定回路218、220および222と、8つの
論理積回路224、226、228、230、232、
234、236および238とを含む。アドレス信号線
80は第0ビット線200と第1ビット線202と第2
ビット線204とを含み、これらは第1のデコーダ60
内で分岐配線206、208および210にそれぞれ分
岐する。各分岐配線206、208、210はさらに第
1のデコーダ内で分岐配線212、214、216に分
岐する。
【0085】分岐配線206は、論理積回路226、2
30、234および238の入力の1つに接続されてい
る。分岐配線212は、否定回路218の入力に接続さ
れ、否定回路218の出力は論理積回路224、22
8、232および236の入力の1つに接続される。分
岐配線208は、論理積回路228、230、236お
よび238の入力の1つに接続される。分岐配線214
は否定回路220の入力に接続され、否定回路220の
出力は論理積回路224、226、232、234の入
力の1つに接続されている。分岐配線210は、論理積
回路232、234、236および238の入力の1つ
に接続される。分岐配線216は否定回路222の入力
に接続され、否定回路222の出力は、論理積回路22
4、226、228および230の入力の1つに接続さ
れている。
【0086】論理積回路224の出力は第0ワード(図
1に示されるマクロセル70)のための選択信号線90
に接続されている。以下、論理積回路226、230、
234、238の出力は選択信号線92に、論理積回路
226、232、236の出力は選択信号線94にそれ
ぞれ接続されている。これら選択信号線は、同一の番号
をふられてはいるが、言うまでもなく別個のワードを選
択するための別個の選択信号線である。
【0087】図10を参照して、第2のデコーダ62
は、否定回路244および246と、3つの2入力論理
積回路248、250および252とを含む。
【0088】アドレス信号線80の第0ビット線200
および第1ビット線202は、第2のデコーダ62内で
それぞれ分岐配線240および242に分岐する。分岐
配線240および242はさらに、分岐配線254およ
び256に分岐する。
【0089】分岐配線240は、論理積回路248およ
び252の一方の入力に接続される。分岐配線254は
否定回路244の入力に接続され、否定回路244の出
力は論理積回路250の一方の入力に接続される。
【0090】分岐配線242は、論理積回路250およ
び252の他方の入力に接続される。分岐配線256
は、否定回路246の入力に接続され、否定回路246
の出力は論理積回路248の他方の入力に接続される。
論理積回路248、250、252の出力は、それぞれ
第1、第2および第3のマクロセル対のための選択信号
線96に接続される。
【0091】図9および図10に示される第1および第
2のデコーダ60および62の選択動作について図11
を参照して簡単に説明する。図11を参照して、外部ア
ドレスが10進数として0〜7の8通りの値をとった場
合を別個に考える。図11の表の第2列には、外部アド
レスを2進数表示したものが示されている。図11の第
3列にはデコード回路60の選択ワードのアドレスが、
第4列にはデコード回路62の選択ワードアドレスがそ
れぞれ示される。なお、外部アドレスが4以上の場合に
おいては、デコード回路62で選択されるワードは本実
施例の場合には存在しない。しかし、マクロセルを多数
配列した場合には、図11において括弧内で示されるよ
うにデコード回路62の選択ワード値が変化していく。
【0092】図11に示されるように、外部アドレスが
10進数で1の場合には、デコード回路60は第1ワー
ドを、デコード回路62は第2ワードおよび第3ワード
をそれぞれ選択する。外部アドレスが2の場合には、デ
コード回路60と62とはそれぞれ、第2ワードと、第
4ワードおよび第5ワードとを選択する。外部アドレス
が3のときには、デコード回路60および62はそれぞ
れ、第3ワードと、第6ワードおよび第7ワードとを選
択する。
【0093】図12を参照して、図1に示される比較書
換制御回路66は、複数個の1ビット比較書換回路26
0を含む。各1ビット比較書換回路260は、第1のビ
ット線100のうちの対応するビット線と、第2のビッ
ト線102のうちの対応するビット線と、外部データ線
98のうちの対応するデータ線と、それぞれ接続されて
いる。比較書換信号線84は、外部データ書込信号線2
64と、書換信号線266と、クロック信号線268と
を含み、これらはすべて、すべての1ビット比較書換回
路260に接続されている。また、比較書換制御回路6
6内にはデータ選択信号線262が形成されており、こ
のデータ選択信号線262は、比較書換制御回路66の
右端で折返される形で、すべての1ビット比較書換回路
260と2度接続されているものとする。
【0094】図13は、1ビット比較書換回路260の
ブロック図である。1ビット比較書換回路260は、比
較回路280と、2つのデータラッチ回路282および
284と、外部データ書込回路292と、データ書換回
路294および296と、否定回路290とを含む。
【0095】データラッチ回路282の入力は第1のビ
ット線100に、出力は読出データ線286にそれぞれ
接続されている。データラッチ回路284の入力は、否
定回路290を介して第2のビット線102に、出力は
読出データ線288にそれぞれ接続されている。読出デ
ータ線286は、外部データ線98に接続され、外部デ
ータ線98は外部データ書込回路292の入力に接続さ
れている。さらにデータ線308を介してデータ書換回
路294の一方の入力に接続されている。読出データ線
286はさらに、他のデータ書換回路296の一方の入
力にも接続されている。読出データ線288はデータ線
310を介してデータ書換回路294の他方の入力に接
続されている。さらに、他方のデータ書換回路296の
他方の入力にも接続されている。なお、クロック信号線
268が1ビット比較書換回260内でクロック信号分
岐線298および300に分岐し、クロック信号をデー
タラッチ回路282および284にそれぞれ与える。
【0096】比較回路280は、データ選択信号線26
2に接続されており、さらに2つの入力端子を有する。
一方の入力端子はデータラッチ回路282の読出データ
線286に接続される。比較回路280の他方の入力端
子は、データラッチ回路284の読出データ線288に
接続される。比較回路280の構成は、図7および図8
に示す比較回路114と同様である。
【0097】外部データ書込回路292の出力は第1の
ビット線100に接続される。外部データ書込回路29
2には、外部データ書込信号線264から書込信号が与
えられる。
【0098】データ書換回路294の出力は、出力信号
線306を介して第1のビット線100に接続されてい
る。データ書換回路294には、それぞれ書換信号分岐
線302とデータ選択信号分岐線304とを介して、書
換信号線266とデータ選択信号線262とからそれぞ
れ信号が与えられる。
【0099】データ書換回路296は、その出力が第2
のビット線102に接続されている。データ書換回路2
96はデータ選択信号線262および書換信号線266
に接続されていることも同様である。
【0100】データラッチ回路282と284とは同様
の構成を有する。図14を参照して、たとえばデータラ
ッチ回路282は、nチャネルトランジスタ320と、
直列に接続された否定回路322および324と、pチ
ャネルトランジスタ326とを含む。
【0101】トランジスタ320の一方の入出力端子は
第1のビット線100に接続され、他方の入出力端子は
否定回路322の入力に接続される。トランジスタ32
0のゲート電極はクロック信号分岐線298に接続され
る。否定回路324の出力は読出データ線286に接続
される。トランジスタ326の2つの入出力端子はそれ
ぞれ、否定回路322の入力と、否定回路324の出力
とに接続される。トランジスタ326のゲート電極はク
ロック信号分岐線298に接続される。
【0102】図14から容易にわかるように、クロック
信号298が論理1となるとビット線100のデータが
このデータラッチ回路282に入力され、クロック信号
が論理0となるとこのデータがデータラッチ回路282
にラッチされる。
【0103】図13に示されるデータ書換回路294お
よび296は同様の構成を有する。図15を参照して、
たとえばデータ書換回路294は、nチャネルトランジ
スタ336および340と、pチャネルトランジスタ3
42と、否定回路332および334とを含む。
【0104】トランジスタ340および342のそれぞ
れの一方の入出力端子は、データ線308、310にそ
れぞれ接続される。トランジスタ340および342の
ゲート電極は、データ選択信号分岐線304に共通に接
続される。トランジスタ340および342の他方の入
出力端子は、それぞれ否定回路332の入力に共通に接
続される。
【0105】否定回路332の出力は否定回路334の
入力に接続され、否定回路334の出力はトランジスタ
336の一方の入出力端子に接続される。トランジスタ
336の他方の入出力端子は出力信号線306に接続さ
れ、ゲート電極は書換信号分岐線302に接続される。
【0106】図16は図1に示されるアドレス判定回路
86のブロック図である。図16を参照して、アドレス
判定回路86は、2つのデータラッチ回路358および
360と、2つの排他的非論理和回路354および35
6と、否定回路364と、論理和回路366とを含む。
なお、本実施例では簡略化のためアドレス信号は3ビッ
トとして示すが、実際にはより多数ビットが使用され、
したがって必要なラッチ回路等の個数もビット数に応じ
て増加する。
【0107】アドレス判定回路86内において、第1ビ
ット線202はアドレス分岐線350に分岐する。第2
ビット線204はアドレス分岐352に分岐する。
【0108】第1ビット線202はデータラッチ回路3
58の入力に接続され、データラッチ回路358の出力
は排他的非論理和回路354の入力の一方に接続され
る。排他的非論理和回路354の入力の他方には、第0
ビット線200が接続される。
【0109】第2ビット線204はデータラッチ回路3
60の入力に接続され、データラッチ回路360の出力
は排他的非論理和回路356の入力の一方に接続され
る。排他的非論理和回路356の入力の他方にはアドレ
ス分岐線350が接続される。
【0110】アドレス分岐線352は、否定回路364
の入力に接続される。排他的非論理和回路354および
356と、否定回路364の出力とは、論理和回路36
6の対応する入力にそれぞれ接続される。論理和回路3
66の出力はウェイト信号線88に接続される。
【0111】このアドレス判定回路86の機能は以下の
ようなものである。ラッチ回路360および358に
は、直前の動作サイクルで与えられたアドレス信号の第
2ビットおよび第1ビットが記憶される。これら第2ビ
ットおよび第1ビットは、次の動作サイクルで与えられ
たアドレス信号の第1ビットおよび第0ビットとそれぞ
れ排他的非論理和回路356および354で比較され
る。前回の第2ビットが今回の第1ビットと一致すれば
排他的非論理和回路356の出力は論理1に、一致しな
ければ論理0になる。同様に前回の第1ビットと今回の
第0ビットとが一致すれば排他的非論理和回路354の
出力は論理1となり、一致しなければ論理0となる。ま
た、今回与えられたアドレス信号の第2ビットが論理1
であれば否定回路364の出力は論理0となり、そうで
なければ論理1となる。すなわち、このアドレス判定回
路86は、直前の動作サイクルで与えられたアドレス信
号の上位2ビットと、今回与えられたアドレス信号の下
位2ビットとが一致し、かつ今回与えられたアドレス信
号の最上位1ビットが0の場合に、論理1のウェイト信
号をウェイト信号線88上に出力し、それ以外の場合に
は論理0の信号をウェイト信号線88上に出力する。つ
まり、アドレス判定回路86は、今回のアドレスが前回
与えられたアドレスの1/2に等しいか否かを判定し、
等しい場合には論理1のウェイト信号を出力するための
ものである。
【0112】図17にアドレス判定回路86の動作を表
形式で示す。図17に示される例の場合には、アドレス
として3ビットではなく6ビットの信号が与えられた場
合を想定している。図17を参照して、直前のデータが
2進数で「110110」である場合、それを2で割っ
た数は2進数で「011011」となる。そこで、仮に
現在のデータが2進数で「011011」であれば、ウ
ェイト信号は論理1となる。同様に直前のデータが2進
数で「110111」であり、現在のアドレスデータが
2進数で「011011」である場合にもウェイト信号
が発生される。このウェイト信号の意味についてはこの
装置の動作において詳しく説明する。
【0113】この第1の実施例のプロセッサ回路は次の
ように動作する。前述のようにこのプロセッサ回路は、
ヒープなデータを生成するための回路である。また、前
述のヒープなデータを生成するためのアルゴリズムの各
ステップにおいて、どの頂点を処理対象とするか、すな
わちどのマクロセルを処理対象の親頂点とするかについ
ては、図示しないCPU側で判断するものとする。
【0114】初期値の設定 図1を参照して、ヒープなデータを生成するためのデー
タは、予めメモリ54内に格納されているものとする。
初期データをメモリセル64内の各マクロセル70(図
1)、110および112(図2)に設定するのは、次
のような処理によって行なわれる。
【0115】まずCPUは、図1に示されるマクロセル
70を選択するアドレス信号をアドレス信号線80を介
して第1のデコーダ60に与える。第1のデコーダ60
は選択信号線90を活性化し、マクロセル70を第1の
ビット線100と接続する。一方、CPUはメモリ制御
信号線82を介してメモリ54に制御信号を与え、メモ
リ54内の所定アドレスのデータを外部データ線98上
に出力させる。
【0116】図13を参照して、CPUが外部データ書
込信号264を与えることにより、外部データ書込回路
292が第1ビット線100上に、外部データ線98か
らのデータを出力する。このデータが図1に示されるマ
クロセル70に書込まれる。この書込みは、データのす
べてのビットについて行なわれる。
【0117】他のマクロセルについても同様である。す
なわち、CPUが、次に選択するマクロセルのアドレス
信号をデコーダ60に与え、デコーダ60がそのマクロ
セルを選択してビット線100に接続する。メモリ54
から外部データ線98に、書込むべきデータを出力し、
比較書換制御回路66を介して所望のマクロセルにその
データを書込む。これをすべての処理対象のデータにつ
いて繰返すことで、メモリセルアレイ64内に処理対象
のデータがすべて格納される。
【0118】ステップ1 図示されないCPUのプログラムにより、前述のヒープ
なデータの生成のためのアルゴリズムのステップ1の処
理が行なわれる。すなわち、最初の子を持つ頂点が見つ
けられる。これにより、その頂点に対応するマクロセル
のアドレスが特定される。このマクロセルは、処理対象
のデータ数から決定される。
【0119】ステップ2 ステップ1で見つけられた頂点より下の2分木をヒープ
な状態にするための処理を行なう。この処理は、より具
体的には次のようにして行なわれる。
【0120】図2を参照して、すべてのマクロセル対7
2において、比較回路114が、第1のマクロセル11
0に格納されたデータと、第2のマクロセル112に格
納されたデータとの比較を行ない、比較判定信号を比較
判定信号線126上に出力している。この比較判定信号
は次のような信号である。
【0121】図8を参照して、データ線118上の信号
が論理1であり、データ線120上の信号が論理0であ
る場合を考える。この場合には、トランジスタ172お
よび174はともにオフ、トランジスタ176および1
78はともにオンとなる。したがって配線164上の電
位は接地電位(Lレベル)となる。
【0122】逆にデータ線120上の信号が論理1、デ
ータ線118上の信号が論理0である場合を考える。こ
の場合、トランジスタ172および174はともにオ
ン、トランジスタ176および178はともにオフであ
る。したがって配線164の電位は電源電位(Hレベ
ル)となる。
【0123】データ線118および120の上の信号が
同レベルであった場合を考える。このとき、トランジス
タ172および174の一方、トランジスタ176およ
び178の一方が必ずオフとなる。またトランスミッシ
ョンゲート182はオンし、配線164はトランスミッ
ションゲート182の左右で同電位となる。
【0124】図7および図8に示すように、配線164
はその最左端(最下位ビット側)で接地電位に接続され
ている。図7を参照して、ある1ビットデータ比較回路
160において、データ線118上の信号が、データ線
120上の信号よりも大きい場合には、そこから左側の
1ビットデータ比較回路における比較結果に関係なく、
その右側では、その1ビットデータ比較回路160によ
って配線164の電位が決まる。また、その1ビットデ
ータ比較回路160において、データ線118の信号と
データ線120の信号とが同じ値であれば、その1ビッ
トデータ比較回路160の左右において、配線164の
電位は等しくなる。
【0125】そこで、仮に最上位ビット(図7における
最も右側)の1ビットデータ比較回路160において、
データ線118のデータがデータ線120上のデータよ
りも大きいと仮定する。この場合には、その右側におけ
る配線164の電位は接地電位(Lレベル)となり、し
たがって比較判定信号線126上にはHレベルが表われ
る。逆にデータ線118上のデータがデータ線120上
のデータよりも小さければ、配線164は電源電位(H
レベル)となり、比較判定信号線126にはLレベルが
表われる。両者が等しければ、配線164の電位は、1
つ左側の1ビットデータ比較回路における比較結果によ
り決まることになる。この回路における比較結果も等し
い場合には、さらにその左側の回路における比較結果で
定まる。仮にデータ線118および120のすべてのビ
ットが等しい場合には、配線164の電位は接地電位と
なる。したがって、比較回路114は、データ線118
のデータ(すなわち図2に示されるマクロセル110に
格納されたデータ)が第2のデータ線120上のデータ
(すなわち図2のマクロセル112に格納されたデー
タ)よりも大きいか等しい場合にはHレベルの比較判定
信号を、それ以外の場合にはLレベルの比較判定信号を
図2および3に示されるマクロセル選択回路116に与
える。
【0126】注意すべきことは、この比較回路114
は、CPUによる制御とは独立に、マクロセル110と
マクロセル112とのデータの比較を常に行ない、その
比較判定信号を出力していることである。これにより、
CPUでは、1対のマクロセル110および112のう
ち、いずれのデータが大きいかを判定するための特別な
処理が不要となり、ヒープデータの生成処理が高速化で
きる。
【0127】再び図1を参照して、CPUが、処理対象
の頂点のアドレスをアドレス信号線80に与えたものと
する。デコーダ60は、このアドレス信号により特定さ
れるマクロセルを選択し、第1のビット線100にこの
マクロセルを接続する。一方、デコーダ62は、図11
に示される関係に従ったマクロセル対72を選択し、そ
のマクロセル対72のマクロセル選択回路116(図2
および3参照)に対し、Hレベルの選択信号をアドレス
デコード信号線96を介して与える。
【0128】図3を参照して、比較判定信号線126上
の信号がHレベルであればマクロセル選択回路116
は、選択信号線122をHレベルに、選択信号線124
をLレベルにする。したがって、マクロセル110(図
2参照)が選択されて第2のビット線102に接続され
る。
【0129】比較判定信号線126がLレベルであれ
ば、マクロセル選択回路116は選択信号線122には
Lレベルの信号を、選択信号線124にはHレベルの信
号をそれぞれ与える。これにより、図2に示されるマク
ロセル112が第2のビット線102に接続される。い
ずれにせよ、第2のデコーダ62(図1参照)により選
択されたマクロセル対72に含まれる1対のマクロセル
110および112(図2参照)のうち、いずれか大き
い方のデータを格納したマクロセルが選択されて、第2
のビット線102に接続される。この処理が、ヒープな
データの生成において、「親の2つの子のうち、いずれ
か大きい方の子を選択する」動作に相当する。
【0130】図12を参照して、第1のデコーダ62よ
り選択されたデータが第1のビット線100を介してそ
れぞれの1ビット比較書換回路260に与えられ、第2
のデコーダ62により選択されたマクロセルのデータは
第2のビット線102を介してそれぞれの1ビット比較
書換回路260に与えられる。
【0131】図13を参照して、データラッチ回路28
2および284は、第1のビット線100および102
のデータを、与えられるクロック信号に応答してラッチ
し、読出データ線286および288を介してそれぞれ
比較回路280に与える。
【0132】比較回路280は、前述の図8に示される
1ビットデータ比較回路160と全く同様の構成であ
り、与えられた2つのデータが等しい場合にはその左右
でデータ選択信号線262を導通させる。データラッチ
回路282からのデータが論理1であり、データラッチ
回路284から与えられるデータが論理0である場合に
は、その右側のデータ選択信号線262の電位を論理1
とし、逆の場合にはその右側のデータ選択信号線262
を論理0とする。この比較回路280は、すべてのビッ
トについて設けられているので、図8を参照して前述し
たように、第1のデコーダ60で選択されたデータが、
第2のデコーダ62およびマクロセル選択回路116に
よって選択されたデータよりも大きい場合には論理1、
それ以外の場合には論理0となるデータ選択信号を出力
する。このデータ選択信号はデータ書換回路294およ
び296に与えられる。
【0133】例えば、図15を参照して、データ書換回
路294は、データ選択信号分岐線304から与えられ
るデータ選択信号が論理1であればデータ線308のデ
ータを選択し、逆であればデータ線310のデータを選
択して、書換信号分岐線302を介して与えられる書換
信号に応答して出力信号線306上に出力する。したが
って、データ書換信号が論理1であれば図13に示され
るデータラッチ回路282の出力が再び第1のビット線
100に出力され、論理0であればデータラッチ回路2
84の出力が第1のビット線100に出力される。
【0134】データ書換回路296で行なわれる処理も
同様であり、データ書換信号が論理1であればデータラ
ッチ回路284の出力を第2のビット線102上に出力
し、論理0であればデータラッチ回路282の出力を第
2のビット線102上に出力する。
【0135】すなわち、第1のデコーダ60により選択
された第1のマクロセルの内容と、第2のデコーダ62
およびマクロセル選択回路116と比較回路114とに
より選択された第2のマクロセルの内容とを比較し、第
1のマクロセルの内容が大きければデータをそのままそ
れぞれのマクロセルに再書込みをし、第1のマクロセル
の内容の方が小さければ、データを入換えてそれぞれの
マクロセルに書込む処理が行なわれる。
【0136】したがって、この第1の実施例のヒープソ
ートプロセッサを用いると、アドレス信号線80に、処
理対象となる頂点のアドレス値を入力し、書換信号線2
66、クロック信号線268などを所望のタイミングで
与えるだけで、親と子のデータの比較/入換えを必要に
応じて自動で実行することができる。この場合、ある親
の2つの子のうちのいずれか大きい方を選択する動作
を、CPUのプログラムで実行する必要がなく、アドレ
ス信号を与えられれば、このプロセッサ回路で自動的に
選択される。
【0137】したがって、この第1の実施例のプロセッ
サ回路によれば、外部から処理対象のデータをマクロセ
ルに記憶させ、従来例で示されるような順番で各頂点を
順に選んでいくだけで、メモリセルアレイ内のマクロセ
ルに、順番にヒープな状態のデータを生成することがで
きる。前述のように、ある親に対する2つの子データの
相互の比較をプロセッサ回路が自動的に行なうので、ヒ
ープな状態のデータの作成が非常に容易になる。しか
も、データが記憶されれば、これら子同士の比較につい
てはハードウェアが常に自動で実行しており、ソフトウ
ェアで子同士のデータを比較する場合と比較してはるか
に高速な動作が可能である。仮に子のデータが書換えら
れた場合であっても、他の親と子の間のデータの書換動
作を実行しているときに、子同士の比較が実質的に並列
に実行されているので、このヒープソートプロセッサの
動作には時間的な無駄がない。
【0138】ただし、このヒープソートプロセッサには
次のような問題点があることを認識する必要がある。親
データは子データとの比較の結果に従って書換えられる
可能性がある。データが書換えられると、隣合うマクロ
セルに格納されたデータとの間で大きさが比較される。
その比較結果により、隣合うマクロセルのうちの選択結
果が異なってくる。こうしたデータの書換えと、書換え
られたマクロセルと、隣合うマクロセルのデータとの間
の比較を行なうには多少の時間が必要である。
【0139】通常であれば、書換えられたマクロセル
や、そのマクロセルに隣合うマクロセルが、すぐ次に子
データとして参照されることはない。他の親子間でのデ
ータ処理を実行するのと平行して、子同士の比較動作が
行なわれ、他の親子のデータ処理が完了するまでには安
定した比較出力が得られる。これは、親と子の比較動作
と子同士の比較動作とが、全く同じ時間を要するためで
ある。したがって、こうした通常の場合には、書換えら
れたマクロセルと、隣合うマクロセルとの間の比較動作
に要する時間は表面には表われない。
【0140】しかし、書換えられたマクロセルや、その
マクロセルに隣合うマクロセルが、次の処理での子デー
タとして参照される可能性もある。この場合には、書換
えられたマクロセルと、隣合うマクロセルとの間での比
較動作が完了していない。その比較結果は信頼できな
い。そのために、仮にこれら2つのマクロセルが選択さ
れ、両者の比較によりいずれか一方のマクロセルがさら
に選択されてそのデータが読出されたとしても、そのデ
ータが真に正しい結果を与えるデータであるということ
はできない。
【0141】このような不都合は、直前において親とし
て選択されたデータが、すぐ次の処理で子のデータとし
て読出されるときに生ずる。したがって、図16に示さ
れるようなアドレス判定回路86が存在しない場合に
は、外部のCPU装置は、自己がこのプロセッサ回路に
与えるアドレス・データを常に監視し、上述したような
問題が生じないようにしなければならない。
【0142】しかし、図16に示されるアドレス判定回
路86は、こうした連続する2つの処理において与えら
れるアドレス信号の間に、上記したような不都合を生ず
る関係が成立するかどうかを常に監視している。そし
て、そうした不都合が生ずる場合には、ウェイト信号を
発生してCPUに与える。
【0143】したがってCPUでは、自己の出力するア
ドレス信号について前述したような問題が生ずるか否か
を監視する必要はなく、単にウェイト信号の値を監視し
ていればよい。仮にウェイト信号が論理1である場合に
は、現サイクルの比較結果が矛盾したものである可能性
があるので、この動作サイクルでの処理は無視し、次の
動作サイクルでもう1度同じアドレスのデータをプロセ
ッサ回路に与えればよい。 [第2の実施例]図18および図19に、本願発明の第
2の実施例のプロセッサ回路であるヒープソートプロセ
ッサ370を示す。この第2の実施例のヒープソートプ
ロセッサ370は、第1の実施例とは異なり、ヒープデ
ータの生成のみならず、その後のヒープソートの実行の
ためのアルゴリズムの一部をハードウェアで実行する機
能を有する。
【0144】この第2の実施例のヒープソートプロセッ
サ370が、図1に示される第1の実施例のヒープソー
トプロセッサ50と異なるのは、マクロセル70を選択
するための2つの選択信号線のうち、選択信号線90と
は異なる側の選択信号線が、外部からのモード指定信号
線378に接続されていることと、図1に示される第2
のデコーダ62に代えて、モード指定信号線378から
分岐するモード指定信号分岐線380に接続され、モー
ド指定信号に応答して可能化または不能化されるデコー
ダ374を含むこととである。またこの第2の実施例に
おいては、第1の実施例に含まれているアドレス判定回
路86については省略されているが、アドレス判定回路
86を含む形式としてもよいことは言うまでもない。な
お、アドレス信号線80は、その第0ビット線および第
1ビット線のみがアドレス信号線382としてデコーダ
374に接続されている。
【0145】図19を参照して、このデコーダ374
は、図10に示されるデコーダ62の3つの2入力論理
積回路248、250および252に代えて、3つの3
入力の論理積回路392、394および396を含み、
さらに入力がモード指定信号分岐線380に接続された
否定回路390を含んでいる。各論理積回路392、3
94、および396の2つの入力と第0ビット線20
0、第1ビット線202、指定回路244および246
との間の接続は、図10に示されるものと同様である。
各論理積回路392、394、および396の3番目の
入力は、いずれも否定回路390の出力に接続されてい
る。
【0146】図19と図10とにおいて、同一の部品に
は同一の参照符号および名称を付し、それらについての
詳しい説明ではここでは繰返さない。
【0147】この第2の実施例のメモリセルアレイ37
2が、図1に示される第1の実施例のメモリセルアレイ
64と異なるのは、マクロセル70の一方の選択信号線
がモード指定信号線378に接続されていることのみで
ある。図18において、図1に示される部品と同一の部
品には同一の参照符号および名称を付し、それらの詳細
な説明についてはここでは繰返さない。
【0148】この第2の実施例のヒープソートプロセッ
サ370は次のように動作する。前述のように、ヒープ
ソートを行なうための第1ステップは、メモリセルアレ
イ372内の複数のマクロセルにヒープなデータを生成
することである。この処理は基本的には、第1の実施例
においてすでに説明した方法と同様の方法で行なわれ
る。
【0149】(1) まず、モード指定信号線378
に、図示されない外部CPUは論理0を与える。この場
合マクロセル70は、図1に示される第1の実施例と同
様に、接地電位に接続されたのと同様となる。図19を
参照して、否定回路390の出力は論理1となる。した
がって論理積回路392、394、および396は、図
10に示される3つの論理積回路248、250、およ
び252と全く同様の動作をする。すなわちデコーダ3
74は可能化される。
【0150】したがって、モード指定信号線378を介
して外部から論理0の信号を与えることにより、図18
に示されるヒープソートプロセッサ370は、第1の実
施例のヒープソートプロセッサと同様の動作を行なう。
この場合、この第2の実施例ではアドレス判定回路86
が設けられていないので、外部CPUで、アドレス信号
線80に与えるアドレス信号の値を監視し、第1の実施
例において説明したような不都合が生じないようにする
必要がある。
【0151】(2) 上述の第1のステップでメモリセ
ルアレイ372内のマクロセルにヒープなデータが生成
されたものとする。ヒープソートのための次のステップ
は、このヒープなデータの最後のデータをルートと交換
し(図32および図34参照)、さらに、交換された最
後のデータを除くデータをもう1度ヒープなデータとす
る(図35および図36参照)ことである。この処理を
行なう場合には、モード指定信号線378に与えるモー
ド指定信号を論理1とする。図19を参照して、否定回
路390の出力は論理0に固定される。論理積回路39
2、394、396の出力は、いずれも論理0に固定さ
れる。すなわち、図18に示されるマクロセル対72の
いずれも、モード指定信号が論理1である場合には選択
されない。デコーダ374は不能化される一方、マクロ
セル70にモード指定信号線378から与えられる選択
信号は論理1となる。したがって、この場合はマクロセ
ル70が選択されてビット線102に接続される。
【0152】(3) 一方、アドレス信号線80には、
ソートすべきデータの数nを示す値を与える。これはデ
コーダ60によってデコードされ、対応する選択信号線
92または94が活性化される。これにより、n番目の
マクロセル110または112(図2参照)が選択さ
れ、第1のビット線100に接続される。
【0153】このようにして、1番目のマクロセルから
読出されたデータは第2のビット線102に、n番目の
マクロセルから読出されたデータは第1のビット線10
0に、それぞれ読出される。比較書換制御回路66は、
ヒープデータの作成時と同様にこの2つのデータを比較
し、第2のビット線102上のデータが第1のビット線
100上のデータよりも大きい場合には両者を書換えて
元のマクロセルに書込む。すでに説明したように、メモ
リセルアレイ372内のマクロセルに格納されたデータ
はヒープなデータである。したがって、図32からもわ
かるように、1番目のマクロセルに格納されたデータ
(ルート)は、n番目のデータ(最後のデータ)よりも
大きい。したがってこのステップの動作ではデータは必
ず交換され、1番目のマクロセルのデータはn番目のマ
クロセルに、n番目のマクロセルのデータは1番目のマ
クロセルに、それぞれ書込まれる。
【0154】以上の処理により、処理対象のn個のデー
タのうち、最も大きなデータがn番目のマクロセルに記
憶される。
【0155】次に、このn番目のデータを除く(n−
1)個のデータを再びヒープなデータとする処理を行な
う。この処理は以下のように行なわれる。
【0156】モード指定信号線378に与えるモード指
定信号を論理0に設定する。これにより、デコーダ37
4は可能化される。
【0157】デコーダ374が可能化されるので、メモ
リセルアレイ372に格納されている(n−1)個のデ
ータを、すでに説明した方法に従って再びヒープな状態
にすることができる。
【0158】(4) 以上のステップ(2)および
(3)の処理を、処理対象のデータが1つになるまで繰
返して実行する。なお、この場合のモード指定信号とア
ドレス信号との選択は、図示されないCPUが所定のア
ルゴリズムに従って行なうことになる。
【0159】以上の(1)〜(4)の手順の実行を完了
したときには、メモリセルアレイ372内の1番目のマ
クロセル70からn番目のマクロセルには、小さい順序
(昇順)でデータがソートされて格納されている。すな
わち、ヒープソートのアルゴリズムに従ったデータのソ
ートが完了されている。ソートが完了した後、アドレス
信号線80に1番目のマクロセルから順番に指定するア
ドレス信号を与えることにより、第1のビット線100
上に昇順でデータを読出すことができる。逆に、n番の
マクロセルから1番のマクロセルまで順番に選択するア
ドレス信号をこのヒープソートプロセッサ370に与え
れば、大きい順(降順)でデータをビット線100に読
出すことができる。
【0160】なお、この第2の実施例においては、1番
目のマクロセルのデータと処理対象の最後のデータとを
入換えるときに、ヒープなデータを作成するときに使用
する比較書換制御回路66を利用した。しかしこの発明
はこれには限定されず、ヒープなデータを作成するため
の比較書換制御回路とは別の専用の回路を用意してもよ
い。またそのときに、別のアドレスデコード回路や別の
ビット線を用いて比較と書換えとを行なうようにしても
よい。
【0161】この第2の実施例では、第1の実施例と同
様にヒープなデータを生成した後、モード指定信号線と
アドレス信号線とを所定のアルゴリズムに従って与える
ことにより、ヒープソートを実行することができる。デ
ータ同士の比較や書換えといった作業を、ソフトウェア
ではなくハードウェアで実行することができるので、ヒ
ープソート処理が非常に高速となる。また、ヒープソー
ト中には、ヒープなデータを生成する処理を繰返し実行
する必要があるが、子データ同士の比較が、ハードウェ
アで常に実行されているので、ヒープなデータの生成処
理が、ソフトウェアで行なう場合と比べてはるかに高速
に行なえる。したがってヒープソート処理全体の速度
は、ソフトウェアのみで行なう場合と比べて非常に高く
なるという効果がある。また、ヒープソート処理を制御
するためのプログラムが比較的単純なものですむという
効果もある。 [第3の実施例]図20に、本発明の第3の実施例のヒ
ープソートプロセッサ400を示す。この第3の実施例
のヒープソートプロセッサ400は、第2の実施例のヒ
ープソートプロセッサ370(図18参照)と比較し
て、メモリセルアレイ372に代えてメモリセルアレイ
402を含むことと、さらに外部へのデータ出力線40
6に接続されたデータラッチ回路404を含むこととに
おいて異なっている。
【0162】図20を参照して、メモリセルアレイ40
2は、図18に示されるメモリセルアレイ372に代え
て、データ線408を介してデータラッチ回路404と
接続されたマクロセル410を含む点において異なって
いる。マクロセル410は、さらにデータ線408と接
続されていることのみにおいて、図18に示される第2
の実施例のマクロセル70と異なっている。その他の点
では、このマクロセル410は図1および図18に示さ
れるマクロセル70と何ら変わりはない。また、マクロ
セル410の構造自体は、たとえば図4〜6に示される
第1の実施例のマクロセル110や112と同じであ
る。したがって、マクロセル410の構造については、
ここではこれ以上詳細には説明しない。
【0163】図20において、図1および図18と同一
の部品には同一の参照符号および名称が与えられてい
る。それらの機能も同一である。
【0164】この第3の実施例のヒープソートプロセッ
サ400の動作は、基本的に第2の実施例のヒープソー
トプロセッサ370(図18参照)と同じである。た
だ、データラッチ回路404を設けたことにより、次の
ような動作が可能である。
【0165】モード指定信号線378上の信号が論理0
のときには、メモリセルアレイ402内のデータが、ヒ
ープなデータに並べ換えられている。このとき、1番目
のマクロセル410は、ヒープな状態に再整列されるデ
ータのうちで、最も大きいものを格納している。そして
このとき、マクロセル410の格納内容は、データ線4
08を介してデータラッチ回路404にコピーされる。
【0166】一方、モード指定信号線378上の信号が
論理1であれば、マクロセル410のデータがデータラ
ッチ回路404に複写されることはない。したがって、
モード指定信号が論理1のときにデータラッチ回路40
4からデータ出力線406を介してその格納内容を読出
せば、モード指定信号が論理1となる直前のマクロセル
410のデータを得ることができる。
【0167】前述のように、マクロセル410に格納さ
れるデータは、ヒープソート実行中には大きなデータか
ら順番に小さなデータに変化していく。したがって、モ
ード指定信号が論理1のときにデータラッチ回路404
の格納内容を読出せば、大きなデータから順番にデータ
を読出すことができる。そして、ヒープソートが完了し
た時点では最後の一番小さなデータがマクロセル410
に格納されており、そのデータをヒープソートの完了と
同時に読出すことができる。第2の実施例のように、ヒ
ープソートが完全に終了した後にすべてのデータを読出
す場合に比べ、ソートの完了と同時にすべての結果を得
ることができるという効果がある。 [第4の実施例]本発明の第4の実施例のプロセッサ回
路であるヒープソートプロセッサにつき、図21〜24
に示す。この第4の実施例のヒープソートプロセッサ
は、第3のヒープソートプロセッサ(図20)の機能に
加え、ヒープソートを昇順と降順とのいずれでも行なう
ことができる点に特徴がある。
【0168】図21を参照して、この第4の実施例のヒ
ープソートプロセッサ420が図20に示される第3の
実施例のヒープソートプロセッサ400と異なるのは、
図20のメモリセルアレイ402に代えて、外部からの
ソートモード信号線422が接続されるメモリセルアレ
イ424を含むことと、図20の比較書換制御回路66
に代え、ソートモード信号線422に接続された比較書
換制御回路432を含むこととである。図21におい
て、図1、図18、図20と同一の部品には同一の参照
符号および名称が与えられており、それらの機能も同一
である。したがって、ここではそれらについての詳しい
説明は繰返さないこととする。
【0169】メモリセルアレイ424が第3の実施例の
メモリセルアレイ402(図20)と異なるのは、図2
0のマクロセル対72に代えて、いずれもソートモード
信号線422に接続された複数個のマクロセル対426
を含むことである。各マクロセル対426とデコーダ6
0および374との間の接続関係は、図20に示される
第3の実施例と全く同様である。
【0170】図22に、このマクロセル対426の構成
を示す。マクロセル対426が図2に示されるマクロセ
ル対72と異なるのは、図2の比較回路126に代え
て、ソートモード信号線422に接続された比較回路4
30を含むことのみである。図22において、図2と同
様の部品には同様の参照符号および名称が付されてお
り、それらの機能も同一である。
【0171】図23に比較回路430の構成を示す。図
23に示される比較回路430は、図7に示される第1
の実施例の比較回路114とほぼ同じであるが、図7の
否定回路162に代えて、ソートモード信号線422に
接続され、与えられるソートモード信号に基づいて、配
線164上の信号のレベルを反転し、またはそのまま
で、比較判定信号線126上に出力するための比較結果
反転処理回路440を含む。図23と図7とにおいて
は、同一の部品には同一の参照符号および名称を付して
いる。
【0172】図24を参照して、比較結果反転処理回路
440は、pチャネルトランジスタ442とnチャネル
トランジスタ444と否定回路446とを含む。トラン
ジスタ442および444のゲート電極はソートモード
信号線422に共通に接続されている。トランジスタ4
42と444との入出力端子の一方は、比較判定信号線
126に共通に接続されている。トランジスタ442の
他方の入出力端子は配線164に接続されている。トラ
ンジスタ444の他方の入力端子は、否定回路446を
介して配線164に接続されている。
【0173】図24に示される比較結果反転処理回路4
40においては、ソートモード信号線422上の信号が
論理1であれば否定回路446の出力が、論理0であれ
ば配線164上の電位がそのまま、それぞれ比較判定信
号線126上に出力される。したがって、ソートモード
信号が論理1であれば比較判定信号は実施例1〜3の場
合と同じになり、ソートモード信号が論理0のときに
は、比較判定信号は実施例1〜3の場合と逆になる。こ
のように比較判定信号が実施例1〜3の場合と逆に設定
されると、このマクロセル対に含まれる2つのマクロセ
ル110および112のうち、いずれか小さい方のデー
タを有するマクロセルが選択されて第2のビット線10
2に接続されることになる。したがって、後に説明する
ように比較書換制御回路432の構成を変えることによ
り、親が子より小さいという条件のヒープなデータ構造
を生成することや、データを降順にヒープソートしたり
する処理が実行できるようになる。
【0174】図25を参照して、この比較書換制御回路
430は、図12に示される第1の実施例の比較書換制
御回路66とほぼ同様であるが、ソートモード信号線4
22に接続され、データ選択信号線262のレベルを、
ソートモード信号に応じて反転したり、そのままにした
りするための比較結果反転処理回路434をさらに含ん
でいる。比較結果反転処理回路434は、ほぼ図24に
示されるものと同様の構成で実現できるので、ここでは
その詳細については説明しない。
【0175】この第4の実施例では、ソートモード信号
線422上のソートモード信号を論理1にすることで第
3の実施例のソートモードプロセッサ400と全く同じ
動作を行なわせることができる。また、ソートモード信
号を論理0とすることで、親が子より小さいという条件
のヒープなデータ構造を作成することと、データを降順
にヒープソートすることとの処理が行なえる。この第4
の実施例のヒープソートプロセッサ420の動作の詳細
は、第3の実施例のものとほぼ同様であるので、ここで
は詳細には繰返さない。 [第5の実施例]実施例2〜4に記載したヒープソート
プロセッサ回路では、ヒープソート実行時には外部CP
Uから、ヒープデータを生成するためのアドレス値を与
える必要がある。外部CPUは、常にヒープソートプロ
セッサを監視し、必要なデータを与えなければならない
ので、ソート処理が完了するまで他の処理を実行するこ
とはできない。また、外部CPUが、他の処理をより優
先的に実行している場合には、ヒープソートプロセッサ
に対して必要なデータを適当なときに与えることができ
なくなる可能性がある。そうした場合には、これらヒー
プソートプロセッサはソート動作を中断しなければなら
ない。ヒープソートプロセッサを含むシステム全体の性
能をあげるためには、CPUによる制御を最小限にして
ソート処理を実行できるヒープソートプロセッサを提供
することが必要である。この第5の実施例は、そうした
要求を満たして、ほぼ自動的にソート処理を実行するた
めヒープソートプロセッサである。
【0176】前述したヒープソートのアルゴリズムを検
討すると、最初にヒープデータを生成した後、ヒープソ
ート中に何回かヒープデータを繰返し生成する過程があ
る。このヒープデータを生成する過程では、対象となる
データのうちのルートを除く部分はヒープ状態になって
いる。そのために、そうしたデータをもう1度完全にヒ
ープな状態とする処理には、明確な法則性が見いだせ
る。そうした法則性を見いだすことにより、ヒープソー
ト処理をハードウェアで自動化することができる。この
第5の実施例はそうした考えに基づいている。
【0177】第5の実施例について説明する前に、ヒー
プソートを実行するために、外部から与える必要がある
データについて検討する。そうしたデータとしては、以
下の2つが考えられる。
【0178】(1) ヒープな状態に再整列すべきデー
タの数。これは、最初に記憶されたデータの総数から、
データをヒープな状態に再整列させるたびに1ずつ減少
していく。
【0179】(2) ヒープなデータの生成時の、処理
対象となる頂点(親データ)のアドレス値。これは、ヒ
ープなデータの生成の開始時には1(ルート)であり、
親と子とのデータの交換が始まった後には、親との間で
データが交換された子のアドレスである。これは、直前
の親データのアドレス値の2倍かまたは2倍に1を加算
した値であり、かつ第2のビット線102(図1などを
参照)にデータが読出されたマクロセルのアドレスであ
る。
【0180】これら2つのデータを自動的に生成するこ
とができれば、最初に記憶されたデータの総数を除い
て、外部からは他のデータを必要としない。さらに、再
整列の対象となるデータの最後とルートとを交換した後
にヒープデータを生成する処理においては、データはす
でにある程度のヒープな状態となっている。すなわち、
ルートを除くと、他の親頂点は、それらの子頂点のいず
れよりも大きな値を有している。また、処理対象の親デ
ータと子データとが比較された結果、子データが大きけ
れば、必ず親データと子データとが書換えられる。した
がって、親データと子データとが書換えられないという
状態が発生した場合には、その親データより上の頂点の
値はいずれもその親頂点の値よりも大きくかつ上にある
頂点の方が大きな値となっている。また親データと子デ
ータとが書換えられないのであるから、処理対象の親デ
ータはその子データのいずれよりも大きい。またそれぞ
れの子データより下の部分木はいずれもすでにヒープな
状態となっている。したがって、親データと子データと
が書換えられなかったときには、処理対象のデータ全体
としてはヒープな状態となっている。その時点でヒープ
な状態が完成したものとして、ヒープデータの生成処理
を終了し、次の処理に以降してもよいことになる。すな
わち、そうした条件が発生した場合には、実施例2(図
18参照)におけるモード指定信号線378上の信号を
論理1とすることができる。
【0181】第5の実施例は、上述の機能をハードウェ
アで実現したものである。図26を参照して、この第5
の実施例のヒープソートプロセッサ450は、基本的に
は図20に示される第3の実施例のヒープソートプロセ
ッサ400と同様の構成を有している。ヒープソートプ
ロセッサ450が図20のヒープソートプロセッサ40
0と異なるのは、アドレス信号線80と、ソート実行信
号線454と、外部データ線476とに接続され、処理
対象となる頂点に対応するマクロセルのアドレスを算出
してアドレス信号線464に出力する機能を有するアド
レス選択回路452と、比較書換制御回路66のデータ
選択信号線262(図12参照)に接続され、データ選
択信号をラッチし、ネクスト信号線468に出力するた
めの1ビットラッチ回路460と、否定回路462と、
アドレスエンコーダ458とを含む。またこのヒープソ
ートプロセッサ450は、図20に示される第3の実施
例のメモリセルアレイ402に代え、複数のマクロセル
対480を含むメモリセルアレイ456を含む。
【0182】図26において、図20と同一の部品には
同一の参照符号および名称が与えられている。それらの
機能も同一であるので、ここではそれらについての詳細
な説明はしないこととする。
【0183】否定回路462の入力はネクスト信号線4
68に接続され、その出力はネクスト信号線472を介
してアドレス選択回路452に接続されている。
【0184】モード指定信号線378はネクスト信号線
468に接続されている。アドレスエンコーダ458
は、データ線474を介してモード指定信号線378に
接続され、選択信号線482、484により各マクロセ
ル対480に接続されている。アドレスエンコーダ45
8は、デコーダ374からのアドレスデコード信号線9
6とモード指定信号線378とのいずれかにより選択さ
れるマクロセルのアドレスをエンコードし、ネクストア
ドレスデータ線470を介してアドレス選択回路452
に与えるためのものである。アドレスエンコーダ458
は、デコーダ60と逆の機能を有するものであり、選択
されているマクロセルから与えられる選択信号から、そ
のマクロセルのアドレス値を求めるためのものである。
【0185】図27を参照して、マクロセル対480
は、マクロセル110および112と、比較回路114
と、マクロセル選択回路490とを含む。図27におい
て、図2と同一の部品には同一の参照符号および名称が
与えられている。それらの機能も同様である。
【0186】マクロセル選択回路490は、図2のマク
ロセル選択回路116と同様にアドレスデコード信号線
96によってデコーダ374(図26)に、選択信号線
122および124によりマクロセル110および11
2に、比較判定信号線126により比較回路114に、
それぞれ接続される。マクロセル選択回路490はさら
に、選択信号線482および484を介してアドレスエ
ンコーダ458(図26)に接続される。
【0187】図28を参照して、マクロセル選択回路4
90は、図3に示される第1のマクロセル選択回路11
6とほぼ同様の構成である。ただしこのマクロセル選択
回路490は、論理積回路130の出力を選択信号線4
82を介して、論理積回路132の出力を選択信号線4
84を介して、ともにアドレスエンコーダ458に与え
るようにされている。
【0188】図29を参照して、アドレス選択回路45
2は、デクリメント回路500と、pチャネルトランジ
スタ502および506と、nチャネルトランジスタ5
04および508とを含む。
【0189】デクリメント回路500は、外部データ線
476およびネクスト信号線472に接続される。デク
リメント回路500は、外部データ線476を介して外
部から与えられたデータ(ソートすべきデータ数)を格
納し、ネクスト信号線472上の信号が論理0から論理
1に変化するごとにその値を1ずつ減少させて出力する
ためのものである。
【0190】pチャネルトランジスタ502およびnチ
ャネルトランジスタ504のゲート電極は、共通にネク
スト信号線472に接続される。pチャネルトランジス
タ502とnチャネルトランジスタ504との入出力端
子の一方は共通に、nチャネルトランジスタ508の一
方の入出力端子に接続される。pチャネルトランジスタ
502の他方の入出力端子はデクリメント回路500の
出力に接続される。nチャネルトランジスタ504の他
方の入出力端子は、ネクストアドレスデータ線470に
接続される。pチャネルトランジスタ502およびnチ
ャネルトランジスタ504は、ネクスト信号線472上
の信号が論理1であればネクストアドレスデータ線47
0上のデータを、論理0であればデクリメント回路50
0の出力を、それぞれ選択してnチャネルトランジスタ
508に与えるように機能する。
【0191】pチャネルトランジスタ506とnチャネ
ルトランジスタ508とのゲート電極は、ソート実行信
号線454に共通に接続される。pチャネルトランジス
タ506およびnチャネルトランジスタ508の一方の
入出力端子は、アドレス信号線464に共通に接続され
る。pチャネルトランジスタ506の他方の入出力端子
には、アドレス信号線80が接続される。pチャネルト
ランジスタ506およびnチャネルトランジスタ508
は、ソート実行信号線454上の信号が論理1であれば
pチャネルトランジスタ502またはnチャネルトラン
ジスタ504の出力を、論理0であればアドレス信号線
80上のデータをそれぞれ選択してアドレス信号線46
4上に出力するように機能する。なお、図29には、ア
ドレス選択回路452のうちの1ビット分の信号につい
てのみ図示されていることに注意すべきである。
【0192】以上をまとめると、アドレス選択回路45
2は次のように動作する。 (1) ソート実行信号が論理0であれば、アドレス信
号線80を介して与えられる外部アドレスデータをヒー
プソートプロセッサ450への入力として選択する。
【0193】(2) ソート実行信号が論理1で、かつ
ネクスト信号線472上のネクスト信号が論理1のとき
には、ネクストアドレスデータ線470上のネクストア
ドレスデータを、ヒープソートプロセッサ450の入力
として選択する。
【0194】(3) ソート実行信号454が論理1
で、かつ、ネクスト信号線472上のネクスト信号が論
理0のときは、デクリメント回路500の出力するデー
タをヒープソートプロセッサ450の入力として選択す
る。
【0195】この第5の実施例のヒープソートプロセッ
サ450は以下のように動作する。 (1) 最初にヒープデータを生成する。この処理は、
これまでの実施例と同様である。このとき、図29に示
されるソート実行信号線454上の信号は論理0に設定
する。CPUからアドレス信号線80に各マクロセルの
アドレスを順次与え、データをマクロセルに格納する。
【0196】図26に示される1ビットラッチ回路46
0には、初期状態で論理0を記憶させておく。デコーダ
380が可能化される。したがって、外部CPUからア
ドレス信号線80を通じて、前述のようにヒープデータ
を作成するための一連のアルゴリズムに従ってマクロセ
ルを選択するアドレス信号を与えることにより、メモリ
セル456内にヒープなデータが生成される。ここまで
は、外部CPUにより制御された動作を行なっている。
【0197】(2) ヒープデータが生成された後、外
部データ線476を介して、ソートしたいデータの数を
図29のデクリメント回路500に記憶させる。このデ
ータの数をたとえばnとする。
【0198】(3) ソートを実行させるために、ソー
ト実行信号線454上のソート実行信号を論理1に設定
する。ここまでの処理が、外部回路により制御されてい
る処理である。
【0199】(4) 前述のようにソートの実行を開始
する直前には、データの書換がおきず、ラッチ回路46
0には論理1が記憶される。図29のネクスト信号線4
72上の信号は論理0となるので、トランジスタ502
はオン、トランジスタ504はオフとなる。トランジス
タ508がオンであるので、アドレス信号線464上に
は、デクリメント回路500の出力データ(すなわち
n)が出力される。このアドレスデータは図26のデコ
ーダ60に与えられ、かつその上位2ビットがデコーダ
374に与えられる。
【0200】デコーダ60は、アドレス信号をデコード
し、n番目のマクロセルを選択する。したがって第1の
ビット線100には、n番目のマクロセルのデータが読
出される。
【0201】モード指定信号線378上のモード指定信
号は論理1であるから、デコーダ380は不能化され、
マクロセル410が選択される。第2のビット線102
には、マクロセル410に格納されているデータが読出
される。
【0202】アドレスエンコーダ458に与えられる信
号のうち、選択されていることを示す値をとるものは、
データ線474からのもののみである。したがってアド
レスエンコーダ458の出力は「1」となる。このアド
レスデータはネクストアドレスデータ線470を介して
アドレス選択回路452に与えられる。
【0203】(5) すでにメモリセル456内にはヒ
ープなデータが生成されている。したがって、マクロセ
ル410と、デコーダ60によって選択されたn番目の
マクロセルとの間でのデータの交換が発生する。データ
選択信号線262には論理0の信号が出力される。
【0204】この論理0の信号は1ビットラッチ回路4
60にラッチされる。ネクスト信号線472上の信号は
論理1となる。図29を参照して、アドレス選択回路4
52において、トランジスタ502はオフ、トランジス
タ504はオンとなる。またこのとき、デクリメント回
路500のデータは、ネクスト信号線472上の信号が
論理0から論理1に変化したことに応答して1減算され
る。アドレス選択回路452は、ネクストアドレスデー
タ線470上のデータを選択し、アドレス信号線464
上に出力する。
【0205】前述のようにネクストアドレスデータ線4
70上のデータが「1」であるので、図26に示される
デコーダ60は第1のマクロセル410を選択する。マ
クロセル410は第1のビット線100に接続される。
【0206】図26を参照して、モード指定信号線37
8上の信号は論理0である。デコーダ374は、アドレ
ス選択回路452からアドレス信号線464および46
6を介して与えられる2ビットのデータをデコードし、
対応のマクロセル対480を選択する。この場合、アド
レスとして与えられるのは「1」であるので、デコーダ
374は、2番目および3番目のマクロセルを含むマク
ロセル対480を選択する。
【0207】図27を参照して、選択されているマクロ
セル対480においては、すでに比較回路114が、マ
クロセル110および112に格納されているデータを
比較し、比較判定信号を比較判定信号線126を介して
マクロセル選択回路490に与えている。マクロセル1
10のデータの方がマクロセル112のデータよりも大
きい場合に比較判定信号は論理1となる。
【0208】図28を参照して、比較判定信号線126
上の信号が論理1であれば選択信号線122上の信号が
ハイレベルとなり、選択信号線482がハイレベルとな
る。一方、比較判定信号が論理0であれば、選択信号線
124および484上の信号がハイレベルとなる。ハイ
レベルの選択信号を与えられたマクロセルが、第2のビ
ット線102に接続される。
【0209】図26に示されるラッチ回路460の出力
は、前述のように論理0である。したがって、デコーダ
374が可能化されており、このヒープソートプロセッ
サ450は、図18に示される第2の実施例のヒープソ
ートプロセッサ370において、モード指定信号線37
8上の信号が論理0となった場合と同様の、ヒープデー
タを生成する動作を実行する。
【0210】ここで、すでに述べたように、メモリセル
アレイ456内のデータは、すでに一旦ヒープな状態と
されており、ただ、ルートに相当するマクロセルの内容
と、n番目のマクロセルとの内容が交換された状態とな
っている。したがって、以下のヒープデータの作成処理
において親と子のデータの書換えが発生したときには、
次の処理対象となる親データのアドレスとしては、親と
書換えられた子のデータのアドレスをそのままデコーダ
60に与えればよい。すなわち、デコーダ374および
マクロセル対480内の比較回路114とマクロセル選
択回路490とにより選択されたマクロセル110また
は112のアドレスを、アドレスエンコーダ458でエ
ンコードし、アドレス選択回路452を介して第1のデ
コーダ60に与えればよい。前述のように図29を参照
して、ネクストデータ線472上の信号が論理1である
ので、ネクストアドレスデータ線470上のデータがア
ドレス選択回路452からアドレス信号線464に出力
されるようになっている。
【0211】(6) データの書換えが発生しなくなる
まで、(5)の動作を繰返して実行する。親と子のデー
タの入換えが発生するかぎり、データ選択信号線262
上には論理0の信号が出力され、ラッチ回路460の出
力は論理0に維持される。
【0212】親と子のデータが入換えられない状態が発
生した場合、比較書換制御回路66からのデータ選択信
号線262上に出力される信号は論理1となる。ラッチ
回路460はこの論理1の信号をラッチし、マクロセル
410と、アドレスエンコーダ458と、デコーダ37
4とに与える。ラッチ回路460の出力はまた、否定回
路462で反転されてアドレス選択回路452にも与え
られる。このように親と子のデータを入換えない状態が
発生したということは、前述のようにメモリセルアレイ
456内のデータが再びヒープな状態となったことを意
味する。
【0213】(7) ネクスト信号線472上の信号が
論理0に、モード指定信号378上の信号が論理1にそ
れぞれ設定されるので、前述のステップ(4)の状態に
戻り、ステップ(4)以下の処理が繰返して実行され
る。ただしこのとき、ステップ(5)で、図29に示さ
れるデクリメント回路500のデータが1減算されてい
る。したがって、次のステップ(4)においてアドレス
選択回路452から出力されるアドレス信号は「n−
1」となる。
【0214】以上ステップ(4)〜(6)の処理を繰返
し実行していくことにより、ヒープソートが行なわれ
る。またこの実施例では、モード指定信号線378が論
理1となるたびにマクロセル410の内容がデータラッ
チ回路404にコピーされ、次にモード指定信号が論理
1になるまでその値が保持されている。したがってヒー
プソートプロセッサ450内においてヒープデータを生
成中に、データラッチ回路404からデータ出力線40
6を介してデータを読出すことにより、ソート途中の結
果を昇順に得ることができる。ヒープソート完了時に
は、最も小さなデータがマクロセル410に格納されて
いることになるので、このデータを読出せば、ヒープソ
ートの完了とほぼ同時にヒープソートの結果のすべてを
得ることができる。
【0215】以上この第5の実施例のヒープソートプロ
セッサ450によれば、図26のモード指定信号線37
8上のモード指定信号と、ヒープソート実行中のヒープ
データ生成時にデコーダ60に与えるべきアドレス信号
とを、それぞれ比較書換制御回路66および1ビットラ
ッチ回路460と、アドレスエンコーダ458およびア
ドレス選択回路452とにより自動的に生成することが
できる。したがってヒープソートの実行開始以後は、外
部CPUが、ヒープソートプロセッサ450を制御する
必要はなく、ヒープソートを自動的に実行することがで
きる。 [第6の実施例]以上述べた実施例では、メモリセルア
レイ内のマクロセルの数がnであれば、n個よりも多数
のデータをヒープな状態とすることは不可能である。し
たがって当然ヒープソートを実行することも不可能であ
る。すなわち、ソートできるデータの数に限界が存在す
る。もちろん、半導体装置の製造技術が進歩すれば、多
量のデータを記憶できる集積回路を製造することが可能
となる。しかし、現在の集積回路技術では、満足できる
程大きな数のデータを記憶するプロセッサ回路を得るこ
とはできない。仮に、製造技術が進歩したとしてもやは
り1つのプロセッサ回路に格納できるデータの数に限界
が存在することには変わりがない。したがって、半導体
回路の製造技術によっては、ソートできるデータの数に
制限を受けないようなプロセッサ回路を得ることが望ま
しい。
【0216】この第6の実施例は、そのようなシステム
を実現できるプロセッサ回路に関する。この実施例で
は、個々のプロセッサ回路をLSI化する。これらプロ
セッサ回路を複数個接続することにより、個々のLSI
の製造技術とは関係なく理論上は制限のない数のデータ
をヒープな状態にしたり、ヒープソートを行なったりす
ることが可能である。
【0217】図30を参照して、この第6の実施例に係
るヒープソートプロセッサシステム520は、複数個の
ヒープソート単位LSI526と、プリデコーダ522
および524と、比較書換制御回路66と、マクロセル
70とを含む。図30において、図1に示されている各
部品に相当する部品には同一の参照符号および名称を与
え、それらについての詳細な説明はここでは繰返さない
ことにする。但し、同一の符号が付された部品であって
も、図1に示される実施例のそれとはビット数が異なっ
ていることに注意すべきである。処理すべきデータが多
くなればなるほど、アドレスを指定するために必要なビ
ット数が増大する。したがって、この図30に示される
実施例の各部品は、一般的にこれまでに述べてきた実施
例の各部品のビット数よりも大きなビット数である。た
とえば、アドレス信号線80を介して与えられるアドレ
ス信号は32ビットである。
【0218】プリデコーダ522は、アドレス信号線8
0を介して与えられるアドレス信号のうちの上位の何ビ
ットかをデコードし、LSI526のうちのいずれか1
つに対してアドレスイネーブル信号線532を介してア
ドレスイネーブル信号を与えるためのものである。
【0219】プリデコーダ524は、モード指定信号線
378上の信号が論理1のときには不能化され、論理0
のときには、アドレス信号線80を介して与えられるア
ドレス信号データを2倍したものの一部をプリデコーダ
522と同様にデコードし、アドレスイネーブル信号線
534上にアドレスイネーブル信号を出力するためのも
のである。
【0220】マクロセル70は、第1の実施例のものと
同じである。この場合、マクロセル70は、プリデコー
ダ522に与えられるデータが「1」であるときには選
択されて第1のビット線100に接続され、またモード
指定信号線378上の信号が論理1であるときには同じ
ように選択されて、第2のビット線102に接続され
る。
【0221】アドレスデータ線80のうち、プリデコー
ダ522に与えられなかった残りのアドレス信号は、ア
ドレス信号線528に分岐して各LSI526に接続さ
れる。また、アドレス信号線528のデータの2倍が、
アドレス信号線530を介して各LSI526に与えら
れる。
【0222】図31を参照して、LSI526は、複数
個のマクロセル対72を含むメモリセルアレイ540
と、デコーダ542および544とを含む。マクロセル
対72の各々は、第1のビット線100と第2のビット
線102とに接続可能である。
【0223】デコーダ542は、アドレス信号線528
と、アドレスイネーブル信号線532とに接続される。
デコーダ542は、アドレスイネーブル信号が与えられ
ていないときにはどのマクロセルも選択しない。アドレ
スイネーブル信号が与えられているときには、デコーダ
542は、アドレス信号線528から与えられるアドレ
ス信号をデコードし、対応のマクロセルを選択するため
に、選択信号線92または94のうちのいずれか1つの
みに選択信号を出力する。
【0224】デコーダ544は、アドレス信号線530
とアドレスイネーブル信号線534とに接続されてい
る。デコーダ544は、アドレスイネーブル信号が与え
られていないときには、マクロセル対72のどの1つも
選択しない。アドレスイネーブル信号が与えられている
ときには、デコーダ544は、アドレス信号線530を
介して与えられるアドレス信号をデコードし、対応のマ
クロセル対72を選択するために、アドレスデコード信
号線96のうちのいずれか1つのみにアドレスデコード
信号を出力する。
【0225】マクロセル対72は、たとえば図2に示さ
れるマクロセル対72と全く同じ構成を有している。し
たがって、あるマクロセル対72が選択されるとき、そ
のマクロセル対に含まれる2つのマクロセルのうち、大
きい方のデータを格納しているマクロセルが選択され、
第2のビット線102に接続される。
【0226】この実施例のヒープソートプロセッサシス
テム520は以下のように動作する。なお以下の説明で
は、個々のLSI526が2の25乗個のデータを記憶
できるものとする。このデータは25ビットのアドレス
信号でアドレスすることができる。2の32乗個のデー
タをソートする場合には、2の7乗個(128個)のL
SI526をビット線100および102で接続する必
要がある。そして、図30に示されるアドレス信号線8
0を介して外部から与えられる32ビットのアドレス信
号のうち、上位7ビットがプリデコーダ522に、下位
25ビットがすべてのLSI526に与えられる。した
がって、プリデコーダ522により選択された唯1つの
LSI526の中の、アドレス信号528で選択された
マクロセルのみが第1のビット線100に接続される。
【0227】プリデコーダ524は、プリデコーダ52
2およびアドレス信号線528で選択されたマクロセル
の、2倍または2倍+1のアドレスのマクロセルを含む
マクロセル対が存在するLSI526を1つのみ選択す
る。選択されたマクロセル対のうち、大きい方のデータ
を格納しているマクロセルが、第2のビット線102に
接続される。
【0228】以下のこのヒープソートプロセッサシステ
ム520の動作は、図2に示される第2の実施例のヒー
プソートプロセッサ370と全く同様である。モード指
定信号線378上の信号を論理0とするか、論理1とす
るかにより、ヒープなデータを生成する処理と、ヒープ
ソートを行なう処理とが行なえることも同様である。な
お、このヒープソートプロセッサシステムでは、モード
指定信号線378上のモード指定信号が論理1の場合に
は、プリデコーダ524が不能化されるので、LSI5
26のいずれも選択されず、第1のマクロセル70(図
30)が第2のビット線102に接続される。この場合
の動作も、第2の実施例と全く同様である。以上のよう
にこの第6の実施例のヒープソートプロセッサシステム
では、入力されるアドレスデータをデコードすることに
より、以上の実施例2〜5のヒープソートプロセッサと
同様の処理が実行できる。さらに処理対象となるデータ
数が増加した場合であっても、単位LSI536の数を
増加させていくことにより、どのように大きな数のデー
タであっても、ヒープな状態に整列させたり、ヒープソ
ートを実行したりすることができる。
【0229】以上この発明を実施例に基づいて詳細に説
明したが、この発明は上述の実施例には限定されず、こ
れ以外にもさまざまな変形を加えて実施できることは言
うまでもない。
【0230】
【発明の効果】以上のように請求項1に記載のプロセッ
サ回路によれば、所定のアルゴリズムに従ってアドレス
信号を順次与えることで、予め定める条件に従ったヒー
プなデータをメモリセルアレイ内に容易に作成できる。
【0231】請求項2に記載のプロセッサ回路において
は、所定のアルゴリズムに従ってアドレス信号を順次こ
のプロセッサ回路に与えることで、整列2分木の1次元
配列へのデータの格納形式に従ったヒープなデータをメ
モリセルアレイ内に容易に作成できる。
【0232】請求項3に記載のプロセッサ回路において
は、所定のアルゴリズムに従ってアドレス信号を順次こ
のプロセッサ回路に与えることで、いずれの頂点も、そ
こから分岐する2つの頂点のいずれよりも大きいデータ
を有するという条件に従うヒープなデータをメモリセル
アレイ内に容易に作成できる。
【0233】請求項4に記載のプロセッサ回路において
は、請求項1に記載のプロセッサ回路の効果に加えて、
第3の選択手段の選択結果が誤る可能性があるような条
件下では、動作の禁止信号が発生される。したがって、
正しい結果が得られるようになるまでは、このプロセッ
サ回路の動作を無効としておくことが簡単にでき、ヒー
プなデータの作成を誤りなく容易に行なうことができ
る。
【0234】請求項5に記載のプロセッサ回路において
は、所定のアルゴリズムに従って、動作モード設定信号
とアドレス信号との値を変化させることにより、ヒープ
なデータの作成のみならず、一旦作成されたヒープなデ
ータをさらにソートすることが簡単にかつ高速に行なえ
る。
【0235】請求項6に記載のプロセッサ回路において
は、さらに、プロセッサ回路の動作と並行してヒープソ
ートの結果のうち確定したものを順次読出すことができ
るので、データ数が多くても、ヒープソートの結果を時
間的な遅れなく得ることができる。
【0236】請求項7に記載のプロセッサ回路において
は、ソートモード設定信号を変えることによりマクロセ
ルの選択の条件を変えることができる。したがって、複
数通りの条件のいずれか1つを選択してヒープなデータ
の作成を行なうことができる。
【0237】請求項8に記載のプロセッサ回路において
は、請求項7に記載のプロセッサ回路の効果に加え、メ
モリセルアレイの先頭アドレスのマクロセルの内容を読
出すことができる。ヒープソートの実行と並行して、ソ
ートモード設定信号により選択される条件に従った順序
で交代で先頭アドレスのマクロセルに格納されるデータ
をプロセッサ回路から読出すことができるので、データ
数が多くても、時間的な遅れなく、所望の条件に従って
ソートされたデータを得ることができる。
【0238】請求項9に記載のプロセッサ回路において
は、ヒープソート中のヒープデータ作成の終了が自動的
に検知され動作モード設定信号の値が変化されるので、
処理対象の頂点を所定の順序で選択するアドレス信号を
プロセッサ回路の第1の選択手段に与えていくだけで、
ヒープソートを簡単に実行できる。
【0239】請求項10に記載のプロセッサ回路におい
ては、ヒープソート中のヒープデータ作成時に、処理す
る必要のある頂点のみを選択して交換手段による比較/
交換処理を実行させることができるので、ヒープソート
実行中のヒープデータの作成を自動的にかつ高速に行な
える。ヒープソート実行中にはヒープデータの作成処理
が複数回繰返し行なわれるので、結果としてヒープソー
トを従来よりはるかに高速に実行できる。
【0240】請求項11に記載のプロセッサ回路におい
ては、ヒープソート中のヒープデータ作成の終了が自動
的に検知されて動作モード設定信号の値が変化されるの
で、処理対象の頂点のアドレスとしてアドレス信号を所
定の順序でプロセッサ回路に与えれば、ヒープソートを
実行できる。しかもそのアドレス信号が、記憶手段に最
初に格納された初期値と減算手段とにより自動的に発生
されるので、最初に必要なデータをメモリセルアレイに
設定し、ヒープなデータを作成し、初期値を記憶手段に
設定しておくだけで、データを所定の条件に従って自動
的かつ高速にソートすることができる。
【0241】請求項12に記載のプロセッサ回路によれ
ば、第1および第2のアドレス信号を所定のアルゴリズ
ムに従って与えることで、ヒープなデータの作成と、ヒ
ープソートとを実行できる。第1および第2のアドレス
イネーブル信号を与えるか否かで、このプロセッサ装置
に対する処理を行なうかどうか選択できるので、このプ
ロセッサ装置を複数個接続して、より多数のマクロセル
を含むメモリセルアレイを形成し、かつそのメモリセル
アレイを使用して、ヒープなデータを作成できる。第2
の選択手段を不能化することもできるので、ヒープソー
トを簡単に実行する回路も実現できる。したがって、処
理対象のデータの数に制限されずに、ヒープソートを行
えるプロセッサ回路を提供できる。
【0242】請求項13に記載のプロセッサ回路によれ
ば、請求項12に記載のプロセッサ回路の効果に加え、
処理対象のデータの数に制限されずに、親の値が必ずそ
の子の値よりも大きいようなヒープなデータの作成と、
データを小さい順番に従って並べ変えるソート処理とが
簡単に行なえる、という効果がある。
【0243】請求項14に記載のプロセッサ回路によれ
ば、整列2分木の頂点を所定のアルゴリズムに従って順
次選択していくことで、親の値が必ずその子の値よりも
大きいようなヒープなデータの生成を、データ数の制限
なく簡単に行なうことができるプロセッサ回路を容易に
作成できる。同様に、マクロセル中のデータを、その値
の小さい順番に、整列2分木の形式で簡単にソート可能
なプロセッサ回路も、処理対象のデータの数に制限を設
けることなく容易に実現できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例のヒープソートプロセッ
サのブロック図である。
【図2】マクロセル対のブロック図である。
【図3】マクロセル選択回路のブロック図である。
【図4】第1のマクロセルのブロック図である。
【図5】第2のマクロセルのブロック図である。
【図6】1ビットデータメモリ回路の回路図である。
【図7】比較回路のブロック図である。
【図8】1ビットデータ比較回路の回路図である。
【図9】第1のデコーダの回路ブロック図である。
【図10】第2のデコーダの回路ブロック図である。
【図11】第1および第2のデコーダの動作を表形式で
示す図である。
【図12】比較書換制御回路のブロック図である。
【図13】1ビット比較書換制御回路の回路ブロック図
である。
【図14】データラッチ回路の回路図である。
【図15】データ書換回路の回路図である。
【図16】アドレス判定回路のブロック図である。
【図17】アドレス判定回路の動作を表形式で示す図で
ある。
【図18】第2の実施例のヒープソートプロセッサのブ
ロック図である。
【図19】第2の実施例のデコーダの回路ブロック図で
ある。
【図20】第3の実施例のヒープソートプロセッサのブ
ロック図である。
【図21】第4の実施例のヒープソートプロセッサのブ
ロック図である。
【図22】マクロセル対のブロック図である。
【図23】比較回路のブロック図である。
【図24】比較結果反転処理回路の回路図である。
【図25】比較書換制御回路のブロック図である。
【図26】本発明の第5の実施例のヒープソートプロセ
ッサのブロック図である。
【図27】マクロセル対のブロック図である。
【図28】マクロセル選択回路の回路ブロック図であ
る。
【図29】アドレス選択回路の回路ブロック図である。
【図30】本発明の第6の実施例のヒープソートプロセ
ッサシステムのブロック図である。
【図31】ヒープソート単位LSIのブロック図であ
る。
【図32】ヒープなデータを示す模式図である。
【図33】一次元配列を模式的に示す図である。
【図34】ヒープなデータを模式的に示す図である。
【図35】ヒープソートの途中経過を模式的に示す図で
ある。
【図36】ヒープソートの途中経過を模式的に示す図で
ある。
【図37】ヒープソートの途中経過を模式的に示す図で
ある。
【図38】ヒープソートの途中経過を模式的に示す図で
ある。
【図39】ヒープソートの途中経過を模式的に示す図で
ある。
【図40】ソートされたデータを模式的に示す図であ
る。
【符号の説明】
112,410,480 マクロセル 50,370,400,420,450 ヒープソート
プロセッサ 54 メモリ 60,62,374,542,544 デコーダ 64,372,402,424,456,540 メモ
リセルアレイ 66,432 比較書換制御回路 72,426 マクロセル対 86 アドレス判定回路 100 第1のビット線 102 第2のビット線 114,280,430 比較回路 116,490 マクロセル選択回路 452 アドレス選択回路 458 アドレスエンコーダ 500 デクリメント回路 520 ヒープソートプロセッサシステム 522,524 プリデコーダ 526 ヒープソート単位LSI

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数個のマクロセルを含むメモリセルア
    レイと、 アドレス信号に応答して、前記メモリセルアレイの任意
    の第1のマクロセルアレイを選択するための第1の選択
    手段と、 前記第1の選択手段により選択されたアドレスのマクロ
    セルと、外部との間でデータを入出力するための手段
    と、 前記アドレス信号に応答して、前記第1のマクロセルの
    アドレスと所定の関係を有する2つのアドレスの、2つ
    のマクロセルを選択するための第2の選択手段と、 前記第2の選択手段により選択された前記2つのマクロ
    セルの内容を比較し、予め定める条件を満たす第2のマ
    クロセルを前記2つのマクロセルのうちから選択するた
    めの第3の選択手段と、 前記第1のマクロセルの内容と、前記第2のマクロセル
    の内容とを比較し、前記第1のマクロセルの内容が、前
    記第2のマクロセルの内容に対して前記予め定める条件
    を満たさないことを検出して、前記第1のマクロセルの
    内容と、前記第2のマクロセルの内容とを交換するため
    の交換手段とを含む、プロセッサ回路。
  2. 【請求項2】 前記所定の関係は、前記第1のマクロセ
    ルのアドレスの2倍に等しいこと、または前記第1のマ
    クロセルのアドレスの2倍に1加算した数と等しいこ
    と、のいずれか一方を満たすこと、である、請求項1に
    記載のプロセッサ回路。
  3. 【請求項3】 前記予め定める条件は、他方のマクロセ
    ルより大きな値を記憶していること、である、請求項2
    に記載のプロセッサ回路。
  4. 【請求項4】 ある動作サイクルにおいて前記第1の選
    択手段に与えられたアドレス信号が、直後の動作サイク
    ルにおいて前記第1の選択手段に与えられるアドレス信
    号に対して前記所定の関係を満たすことを検出して、前
    記直後の動作サイクルの動作を禁止する信号を発生する
    ための手段をさらに含む、請求項1に記載のプロセッサ
    回路。
  5. 【請求項5】 動作モード設定信号の第1の値に応答し
    て、前記第2の選択手段を可能化し、前記動作モード設
    定信号の第2の値に応答して、前記第2の選択手段を不
    能化するとともに、前記メモリセルアレイの先頭アドレ
    スのマクロセルを前記第2のマクロセルとして選択する
    ための第4の選択手段を含む、請求項1に記載のプロセ
    ッサ回路。
  6. 【請求項6】 前記メモリセルアレイの先頭アドレスの
    マクロセルの内容を読出すための手段をさらに含む、請
    求項5に記載のプロセッサ回路。
  7. 【請求項7】 前記第1の選択手段は、前記第2の選択
    手段により選択された前記2つのマクロセルの内容を比
    較し、ソートモード設定信号に基づいて、予め定められ
    る第1の条件と、前記第1の条件の否定の第2の条件と
    のいずれか一方を選択し、選択された条件を満たすマク
    ロセルを前記第2のマクロセルとして選択するための手
    段を含み、 前記交換手段は、前記第1のマクロセルの内容と、前記
    第2のマクロセルの内容とを比較し、前記ソートモード
    設定信号に基づいて、前記第1の条件と、前記第2の条
    件とのいずれか一方を選択し、前記第1のマクロセルの
    内容が、前記第2のマクロセルの内容に対して、選択さ
    れた前記条件を満たさないことを検出して、前記第1の
    マクロセルの内容と、前記第2のマクロセルの内容とを
    交換するための手段を含む、請求項6に記載のプロセッ
    サ回路。
  8. 【請求項8】 前記メモリセルアレイの先頭アドレスの
    マクロセルの内容を読出すための手段をさらに含む、請
    求項7に記載のプロセッサ回路。
  9. 【請求項9】 前記第1のマクロセルの内容と、前記第
    2のマクロセルの内容との交換が、前記交換手段によっ
    て行なわれたか否かを検出して交換検出信号を発生する
    ための手段と、 前記交換検出信号の値に依存して、前記動作モード設定
    信号を前記第1または第2の値に選択的に設定するため
    の動作モード設定手段とをさらに含む、請求項5に記載
    のプロセッサ回路。
  10. 【請求項10】 前記第2のマクロセルのアドレスを検
    出し、被選択アドレス信号を出力するための手段と、 前記交換検出信号が前記交換の発生を検出したことを示
    す値となったことに応答して、前記被選択アドレス信号
    により特定されるアドレスを前記第1の選択手段に与え
    るためのアドレス選択手段をさらに含む、請求項9に記
    載のプロセッサ回路。
  11. 【請求項11】 前記アドレス選択手段は、 外部から与えられる初期データを格納して出力するため
    の記憶手段と、 前記交換が発生しなかったことを示す値から、前記交換
    が発生したことを示す値に前記交換検出信号が変化した
    ことに応答して、前記記憶手段に格納されたデータを予
    め定める値だけ減ずるための減算手段と、 前記交換検出信号の値に基づいて、前記被アドレス信号
    または前記減算手段の出力を選択的に前記第1の選択手
    段に与えるための手段とを含む、請求項10に記載のプ
    ロセッサ回路。
  12. 【請求項12】 複数のマクロセルを含むメモリセルア
    レイと、 第1のアドレスイネーブル信号により能動化され、第1
    のアドレス信号に応答して、前記メモリセルアレイの任
    意の第1のマクロセルを選択するための第1の選択手段
    と、 第2のアドレスイネーブル信号により能動化され、前記
    第1のアドレス信号と関連する第2のアドレス信号に応
    答して、前記第1のアドレス信号と所定の関係を有する
    2つのアドレスの、2つのマクロセルを選択するための
    第2の選択手段と、 前記第2の選択手段により選択された前記2つのマクロ
    セルの内容を比較し、 予め定める条件を満たす第2のマクロセルを前記2つの
    マクロセルのうちから選択するための第3の選択手段
    と、 前記複数のマクロセルおよび外部回路と接続可能であ
    り、前記第1の選択手段により選択されたアドレスのマ
    クロセルに選択的に接続される第1のデータ線と、 前記複数のマクロセルおよび外部回路と接続可能であ
    り、前記第3の選択手段により選択されたアドレスのマ
    クロセルに選択的に接続される第2のデータ線とを含
    む、プロセッサ回路。
  13. 【請求項13】 前記所定の関係は、前記第1のマクロ
    セルのアドレスの2倍に等しいこと、または前記第1の
    マクロセルのアドレスの2倍に1加算した数と等しいこ
    と、のいずれか一方を満たすこと、である、請求項12
    に記載のプロセッサ回路。
  14. 【請求項14】 前記予め定める条件は、他方のマクロ
    セルより大きな値を記憶していることである、請求項1
    3に記載のプロセッサ回路。
JP27389293A 1993-11-01 1993-11-01 プロセッサ回路 Expired - Fee Related JP3352786B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27389293A JP3352786B2 (ja) 1993-11-01 1993-11-01 プロセッサ回路
US08/557,503 US5603023A (en) 1993-11-01 1995-11-14 Processor circuit for heapsorting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27389293A JP3352786B2 (ja) 1993-11-01 1993-11-01 プロセッサ回路

Publications (2)

Publication Number Publication Date
JPH07129370A JPH07129370A (ja) 1995-05-19
JP3352786B2 true JP3352786B2 (ja) 2002-12-03

Family

ID=17534031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27389293A Expired - Fee Related JP3352786B2 (ja) 1993-11-01 1993-11-01 プロセッサ回路

Country Status (2)

Country Link
US (1) US5603023A (ja)
JP (1) JP3352786B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278990B1 (en) * 1997-07-25 2001-08-21 Claritech Corporation Sort system for text retrieval
US6865585B1 (en) * 2000-07-31 2005-03-08 Microsoft Corporation Method and system for multiprocessor garbage collection
US20050181813A1 (en) * 2004-02-12 2005-08-18 Jialin Zou Signal path selection process in cellular network architecture
CN103440120B (zh) * 2013-08-23 2016-05-18 万高(杭州)科技有限公司 电能计量信号处理器的指令译码屏蔽系统与方法
US11227084B2 (en) * 2018-11-14 2022-01-18 Taiwan Semiconductor Manufacturing Company Ltd. Multi-bit standard cell

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3587176T2 (de) * 1984-08-22 1993-07-01 Hitachi Ltd Verfahren und einrichtung zum mischen/sortieren von daten.
US5206947A (en) * 1989-06-30 1993-04-27 Digital Equipment Corporation Stable sorting for a sort accelerator
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
JP3152466B2 (ja) * 1991-04-04 2001-04-03 三菱電機株式会社 ソーティング装置およびソーティング方法
JPH0728624A (ja) * 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法

Also Published As

Publication number Publication date
JPH07129370A (ja) 1995-05-19
US5603023A (en) 1997-02-11

Similar Documents

Publication Publication Date Title
Bhattacharjee et al. ReVAMP: ReRAM based VLIW architecture for in-memory computing
US4467444A (en) Processor unit for microcomputer systems
US5511173A (en) Programmable logic array and data processing unit using the same
US4307445A (en) Microprogrammed control apparatus having a two-level control store for data processor
US7949909B2 (en) Address controlling in the MBIST chain architecture
JPH0476626A (ja) マイクロコンピュータ
US5455955A (en) Data processing system with device for arranging instructions
JPH0160865B2 (ja)
JPS6051134B2 (ja) デ−タ処理システム
JP3352786B2 (ja) プロセッサ回路
Bhattacharjee et al. Crossbar-constrained technology mapping for ReRAM based in-memory computing
JPH0798655A (ja) データアクセス命令解読方法及び装置
JP3578267B2 (ja) マイクロ命令をもとにプログラマブル命令を実行するハードウェア装置
JPH0573268A (ja) 加算器
JP2581282B2 (ja) 非同期比較動作を行う2進大小比較器および比較器セルとその方法
US5875323A (en) Processor using implicit register addressing
JPH0855471A (ja) 同期型半導体記憶装置
JPS594049B2 (ja) コンピュ−タ装置
KR960013358B1 (ko) 비트 슬라이스 프로세서용 레지스터 파일
JPH02235289A (ja) 自己刻時レジスターファイル
JP3451640B2 (ja) Simd計算機
US11700004B2 (en) Direct bi-directional gray code counter
JPH11163736A (ja) プロセッサ
JP3525582B2 (ja) ビット操作回路
JPH0522934B2 (ja)

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020903

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees