【発明の詳細な説明】構造演算用演算装置本発明は、構造演算用演算装置に関する。以下においては、この演算装置をコアセルと呼ぶ。
発明の背景コンピュータは、1940年代に発明された。その時以来、それは革命的な速度で発展せしめられた。それにも拘らず、今日のコンピュータは、最初のものとほとんと同じアーキテクチャを存する。
大部分の改良はハードウェアにおいてなされてきた。
VLS Iの導入およびリソグラフ技術の向上は、ワンチップコンピュータの製造を可能にしたが、それはわずか5年前にはスーパーコンピュータと呼ばれていたものである。大きさは指数関数的に縮小し、線幅は、今では1μmより小となっている。クロック速度およびアクティブトランジスタの数は、多くのオーダーの大きさ増大した。物理的制約により、恐らくは線幅の限界は0.2μmとなると思われる。
同じ期間中に、コンピュータのアーキテクチャは、シリコンの使用においては改善されなかった。逆に、大部分のコンピュータは、速度の増大のために最適のシリコン量よりも多くを使用してきている。
これら双方の事実は、次の5年間における単一プロセッサの速度の向上を停止せしめると思われる。並列ブロセッサが導入されたが、複雑性の増大のためにハードウェアの経費が増大し、また、たいていの形式のプログラムにおいて、プログラミングの経費か非常に増大する。
相互の関連を見ると、ハードウェアの経費は縮小されたが、新システムのプログラミングの経費はかなり増大し、間もなく手におえな(なりそうである。
コンピュータは、ソフトウェアおよびハードウェアにおけるさまざまなユニットの複雑な集合体である。発展のさまざまな絶倒および段階が、特別の確立された標準を作り出し、それらがシステム内において広く用いられている。この非一様性のために、極めて多くのインタフェースが存在している。
性質および様式の異なる全てのこれらのインタフェースおよび絶倒は、使用者またはプログラマ−による機械の使用を困難にした。それは、多くの知識を要求し、またプログラマ−は、複雑性のために隠れたエラーを導入する可能性がある。
しかし、最近、いわゆるリグクシ3ンブロセツザ(reduetion processor)が発展しつつある。リダクションプロセッサは、演算式を含むある構造を有するプログラムを実行し、この構造はいくつかのりダクションステップにおいてリジュース(reduce)される。従って、プログラムは、他の種類のコンピュータにおけるように、与えられたシーケンスによっては実行されない。
リダクションプロセッサを、ある限度の大きさを超えて発展させるのには、ある困難が存在する。
プログラム言語の発展最初の電子コンピュータの開発は、フォートラン、コボル、アルゴル、ベーシック、パスカルなどの、この形式のコンピュータに適するいくつかのプログラム言語の発展を開始せしめた。これらの言語は、主として、通常のコンピュータ、すなわちジョン・フォノ・ノイマンにより開発された原理に従って設計されたコンピュータ、により順次実行されるべき指令または命令のシーケンスから成るプログラムを通常は与える事実により、命令型言語と呼ばれており、以下においては通常型語とも呼ばれる。これらの言語の困難か増大するのに伴って、他の一連の言語、リスプ、イスライム(ISW[M)スキーム(Scheme) (リスプの方言)、エムエル(ML)、ホープ(Hope) 、 ニスニーニスエル(SASL) 、などが開発された。これらの言語の開発の背後の原動力は、概念上の簡単さであり、特定の機械はその設計に影響を及ぼさなかった。関数型言語が注意を引くまでには、ある時間を要した。その1つの理由は、関数型プログラムの実行が低速度であったためである。その後の発展により、これらの関数型プログラムは、通常の形式のコンピュータによって実行されるのを目的とするものではないが、ある場合には、通常のコンピュータによって実行される通常型(命令型)言語のプログラムにおけると近い、または同じ、実行速度を示しうるようになった。
ソフトウェアの危機関数型言語を発展させるための大きい努力を開始させたのは、命令型言語に係る困難であった。人々は、1970年頃にソフトウェアの危機を唱え始めた。プログラムは、ますます複雑化し、しばしば多くのエラーを含有し、読むのが困難になり、理解しにくくなり、特に修正が困難となった。1つの理由は、高レベルの命令型言語がプログラミングを簡単化するはずであるという期待が高すぎたからである。これらの言語は、想像はど高レベルにはなかったのである。命令型言語は、なお初期のコンビコータ、すなわちノイマン形コンピュータの基本思想に適合しており、プログラミングのレベルは、依然として機械レベルにかなり近い。
関数型プログラム言語は、通常型プログラム言語の欠点のうちのあるものを軽減するいくつかの性質を育する。
さらに進んだ情報および理解のためには、テキストとしてrFunctional Programming Using 5tandard MLJ、Ake WikstrOm、Prentice )fall 1987を参照されたい。
本発明の目的および利点の完全な理解のためには、コンピユーテイングにおける機能的なアプローチを構成するものの理解、特に、歴史的にもっと一般的な命令型アプローチとの比較においての理解が、本質的に重要である。
「関数型アプローチJという表現は、プログラムが関数型言語で書かれ、この言語に特に適したハードウェアを含むコンピュータにおいて記憶されかつ実行されることを意味する。同様に、「命令型アプローチ」という表現は、プログラムが命令型言語で書かれ、命令型言語に適したハードウェアを含むコンピュータにおいて記憶されかつ実行されることを意味する。
しかし、関数型言語で書かれたプログラムを通常のコンピュータにおいて記憶し、かつ実行することは可能である。その逆もまた可能である。すなわち、命令型言語で書かれたプログラムは、関数型言語で書かれたプログラムの実行に適したコンピュータにおいて実行されうる。
関数型言語の性質関数型言語で書かれたプログラムは、オブジェクトの性質の定義の組として、また計算規則として見られつる。
定義は宣言部分であり、計算規則、またはりダクションまたは書直し規則は、コンピュータが実行中に使用する演算部分である。関数型言語は、コンピュータに対する高レベルのインタフェースをなし、それは、プログラマ−がコンピュータのハードウェアに関連した細部を抽出し去ることを可能ならしめる。肯定的側面効果として、関数型プログラムはしばしば、通常の命令型プログラムよりも短く、かつ理解しやすい。関数型言語の主たる欠点の1つは、関数型プログラムが通常のコンピュータにより実行されるためには、それが通常型言語に翻訳されなくてはならないことである。これは、コンパイラすなわち翻訳プログラムによって行なわれてきた。関数型ブログラムを効果的に記憶しかつ実行するタスクのための専用ハードウェアが存在していなかった事実により、関数型アプローチのある利点が阻害されていたことは明ら本発明は、アクティブストレージ内に存在し、以下においてコアセルと呼ばれる特定のアクティブメモリセルを提供することを目的としており、このセルは、全ての種類のりダクションを行ないうる。一方、アクティブストレージはまた、ある形式のりダクションの限定された部分のみを行ないつる、他の形式のメモリセルをも含有する。数値演算は、コアセルに接続された数値演算論理装置(数値ALU)において行なわれうるが、実際のりダクション演算はコアセル内において行なわれる。
本発明のもう1つの目的は、以下においてオブジェクトストレージと呼ばれる、限定的メモリセルを含む好ましくは連想メモリ、と協働するコアセルであって、情報転送のためにその連想メモリに直接接続されているセルはこのセルのみである、該コアセルを提供することである。
本発明のさらにもう1つの目的は、複数のレベルの表現を記憶しつるコアセルを提供することである。コアセル内に記憶される表現内の基本命令は、コアセル内において実行されるべきである。
本発明のもう1つの目的は、構造演算、すなわちコンピュータプログラムによって与えられた構造をリジュースする演算のためのコアセルを提供することである。そのセルにおいては、セル内の表現のサイズは、実行に関係する表示グラフの技に対応している。通常の種類のコンピュータは、構造演算の概念に基づく種類のプログラム言語、例えばリスプ(リスプコリスト処理言語)または他の任意の関数型または宣言型コンピュータ言語を用いる時に特に有利な、構造演算のためのコアセルを備えうる。言語リスプは、リストまたはリストから構成された構造を取扱いかつ処理するのに特に適しており、例えばエキスパートシステムを作りあげるために、人工知能内において使用される。それはまた、記号式数学、VLSIの設計、ロボット工学、自然言語理解、などにおいても使用される。その場合、コアセルは、これらのリストを、書直しまたは/かつリジュースすることにより、処理する手段となりうる。
リダクシヨンによる実行実行されるべきプログラムは、クロジャー(closure) ’の方向性グラフによって表わされ、プログラムのそれぞれの部分はクロジャーによって表わされる。実行中に、クロジャーのこの方向性グラフは、使用されている言語のりダラシ3ン規則に従って次第にリジュースされる。
実行可能なりロジャーがなくなれば、プログラムの実行は終ったのである。クロジャーの方向性グラフは木構造と見なされ、その木の中のそれぞれのノード(node)がクロジャーであり、最上部のノードはルーツ(root)と呼ばれる。この場合、リダクションによる実行は、通常は、本構造の下部を上にしてリジュースすることによって行なわれ、ルーツから最も遠い木の部分からリジュースして、ルーツまで進んで行く。この種の実行は、通常は、要求被部動形実行(demand driven execution)と呼ばれる。すなわち、プログラムの他部分の実行の結果に依存するプログラム部分の実行は、その結果の得られるまで延期される。
定義以下には、本明細書において用いられる表現に関するリストと、それらの予定された意味とをあげる。
エレメント データ構造内の何か大きい部分リスト エレメントの順序づけられたシーケンスで、それぞれのエレメントはリストでありうる挿入されたリスト 全体が1クロジヤー内に記憶されるほど小さいリストの部分。
任意の長いリストを代表することを可能にする。
クロジャー プロセスを定める階層構造をもった全体。全てのクロジャーは、そのクロジャーを一意に定めるルーツを有する。リダクション機械におけるリダクション作業は、クロジャーに対して行なわれる。その機械の全状態はりダクションにより変形される。
オブジェクトストレージ オブジェクトを記憶するストレージセルを含むメモリ。例えば連想メモリストレージセル オブジェクトストレージ内のセル。
それは、他のストレージセル内に記憶されている他のセルクロジャーに関連するセルクロジャーを記憶する。
セルクロジャー ストレージセル内の内容ストレーノセルフィールド ストレージセル内のフィールドクロツヤ−エレメント ストレージセルフイールド内に記憶されたデータエレメントクロジャー識別子 クロジャーを一意に指示するクロジャーセルエレメント力!ニカルクロノヤー それ以上リジュースされないクロジャー、すなわち、このセルクロジャーがさらにリジュースされなくてはならないようにリジュースされつる、ある他のセルクロジャーを指示するいかなるクロジャー識別子をも含まないセルクロジャー目標 実行されるべき、すなわちリジュースされるべきクロジャー親(father) 値/ffr示フィ一フィールド内くとも1つのクロジャー識別子を有するクロジャー子(son) 子を指示するクロジャー識別子ニよりもう1つのクロジャーにリンクしたクロジャー子は親でもありうる。親は子でもありうる。子は1つより多くの親を有しうる。
親は1つより多くの子を存しつる。
クロジャー位置 クロジャーがルーツであるか、あるいはノードであるかルーツ りロジャーの木の中での最上部のクロジャーセルノード クロジャーの木の中でのルーツでないクロジャーセルホエア(*here) クロジャー位置を含有するストレージセルフイールドタイプ セルクロジャー内のタイプコード、すなわち、オブジェクト、例えば命令コード、の性質を表わすビットパターンレージ−(1azy) セルクロジャー内のエレメントで、それが実行可能であるか、延期された評価であるか、非アクティブであるか、を指示する識別子 ストレージセル内に記憶されているオブジェクトを示すのに用いられる特殊な種類のクロジャーエレメント環境 オブジェクトは、それらに同じ環境を与えることによりグループ化されつる値/指示 クロジャーエレメントは、簡単な値、(value/des、 ) すなわち直接的表示、無、または他のクロジャーへの指示、すなわち間接的表示、のいずれかを記憶するコアセル 本発明の構造演算装置。コアセルは、リジュース用クロジャーに係る構造演算を行ないつる数値ALU 基本的な数値および論理演算を行ないつる数値演算装置。コアセルは、数値演算に数値ALUを用いるフルレジスタ コアセル内の全平面を通って延長するレジスタコアワード コアセル内のフルレジスタの内容限定的レジスタ 値/指示タイプのクロジャーセルエレメントを含む大きさの限定された量の平面を通って延長するコアセル内のレジスタエレメントワード 限定的なレジスタ、または限定的レジスタと同じ延長を有するフルレジスタの部分、の内容ナム(num)ワード 値または指示を表わすエレメントワードの部分タグワード ナムワードにおける表示の特徴を示すタグを存するエレメントワードの部分リダクション 使用される特定のプログラム言語の規則に従ったクロジャーの書直し/再構成発明の要約本発明の主要目的を達成するための、構造演算処理の方法は、a)い(つかのレジスタ内にデータワードを記憶せしめるステップであって、それぞれのデータワードがマーク部分および情報部分を有し、該マーク部分が問題となっているレジスタが使用されているか否かを示すマークを含む、前記データワードを記憶せしめるステップと、b)前記データワードがリスト内に配置されており、該リストのそれぞれを所定数の前記レジスタに記憶せしめるステップであって、使用されているとのマークを有する前記レジスタに記憶されている前記リスト内のそれぞれの前記ワードの前記マーク部分が、前記リストの1つの少なくとも一部分が実際の前記レジスタに記憶されていることと、一部分、を該実際のレジスタに記憶されている前記リストが、それがどのような種類のリストであるのか、また前記レジスタ内の前記リストの配列のどこから前記リスト間の関係か明らかになるのか、についてのリスト命令を含むことと、を示している、前記ステップと、C)前記レジスタを制御し、かつ該レジスタに記憶されているリストに属する前記リスト命令を用いることにより、該リストを該レジスタ間において再配列し、前記リスト命令に従ってレジスタ内容を入力/出力するステップと、を含む。
本発明の構造演算処理用の演算装置は、a)データリストの入力および出力のための少なくとも1つの入力/出力手段と、b)それぞれがデータワードを記憶するようにされたいくつかのレジスタであって、それぞれのデータワードがマーク部分および情報部分を有し、該マーク部分が問題となっているレジスタが使用されているか否かを示すマークを含み、それぞれの前記リストが所定数の前記レジスタに記憶されつるようになっており、使用されているとのマークを有する前記レジスタのうちのそれぞれの該レジスタの前記マーク部分が、前リストの1つの少なくとも一部分が実際のレジスタに記憶されていることと、一部分を該実際のレジスタに記憶されている前記リストが、それがどのような種類のリストであるのか、また前記レジスタ内の前記リストの配列のどこから前記リスト間の関係が明らかになるのか、についてのリスト命令を含むことと、を示す前記いくつかのレジスタと、C)前記レジスタを制御し、かつ該レジスタに記憶されているリストに属する前記リスト命令を用いることにより、該リストを該レジスタ間において再配列し、かつ前記リスト命令に従ってレジスタ内容を入力/出力する制御装置と、2.前記レジスタ内に記憶されている前記リストを、リストの木であってそのリストの1つがルーツリストである該リストの木として配置する請求項1記載の方法。
を含む。
リストは、好ましくはリストの木として前記レジスタ内に配置され、記憶されており、その木のリストの1つはルーツリストである。別個の識別子レジスタ内の、記憶されたリストの木の識別子は、好ましくは記憶される。
記憶されたリストの木の環境は、別の環境レジスタに記憶されうる。前記水のルーツリストは、好ましくは、記憶されるべき前記実際の木のレベルに依存して異なったレジスタ内に配置される。あるレジスタは、1行の主レジスタを含むベースレジスタのマトリックス内に配置される。lレベルのみを含む木は、好ましくは主レジスタ内に記憶される。2レベルを含む木で、そのルーツリストを存するものは、好ましくは前記主レジスタ内に記憶され、そのブランチリストはベースレジスタ内に記憶される。補助レジスタと呼ばれる、余分のレジスタの組は、前記マトリックスの外に配置されつる。3レベルを含む木は、好ましくは前記補助レジスタ内に記憶され、そのエレメントの1つは、前記レジスタのマトリックス内に記憶される。
リストの木のルーツリストは、エレメントに分割可能であり、とのような種類のりダクションを行なうべきかに関する情報は制御手段によりルーツリストの第1エレメントから得られ、他のエレメントはリジュースされるべきデータを表わす。前記ルーツリストの第1エレメント内の情報は、どのような種類の命令を実行すべきかを推論するために#御手段により用いられる命令コードを含むか、または、前記ルーツリストの前記第1エレメント内の情報は、ファンクションの定義を表わすリストの木のルーツを含み、その情報はルーツリストをリジュースするために行なうべき動作を推論するために制御手段により用いられる。
前記ルーツリストの第1エレメント内の情報は、ファンクションの定義を表わすリストの木のルーツを含む。
■リスト内の最大ワード数は、好ましくは4である。
前記リストの木の最大深度は、好ましくは3レベルである。もし該深度が3レベルであり、もし前記レジスタ内に記憶されている前記ルーツリストのリスト命令が、該ルーツリストが1つまたはそれ以上のブランチを有することを示していれば、制御手段は該ブランチの■つだけをレジスタ内に記憶せしめる。
構造りダクションは、ペースレジスタ内、またはベースおよび補助レジスタ内、などのレジスタ内に配置されたデータオブジェクトに対して行なわれる。
前記レジスタのデータスタックは、好ましくはスライスされたように配置され、それによって、それぞれのデータスタック内の同じ位置を有するそれぞれのスタックビットエレメントは、全ての前記レジスタに属する全てのスタックエレメントを含む平面であって該レジスタが問題となっている平面上のスタックビットエレメントを有している前記平面内において、互いにビット毎に接続されうるようになっている。あるレジスタは、他のものより長いスタックを有するので、ある前記平面は、長いレジスタに属するスタックビットエレメントのみを有する。
ペースレジスタと名づけられている少なくともいくつかのレジスタは、Nをある整数として、NXNレジスタのマトリックスにおける、行および列をなして配列されている。前記ペースレジスタのスタックエレメントは、ビット毎に相互接続されている。前記ベースレジスタスタック内のそれぞれのビットにおいて、それぞれの列に対しては列ワイヤが備えられ、それぞれの行に対しては行ワイヤか備えられ、同じ行および列番号を育する前記列ワイヤと前記行ワイヤとの間のそれぞれの交点には、制御可能なスイッチが備えられている。それぞれのペースレジスタは、少なくともその最も近い行ワイヤおよび列ワイヤによる、制御可能なレジスタ接続を有する。接続は、前記行に沿ってと、前記列に沿ってとの双方における、相隣るベースレジスタ間に設けられる。制御手段か、$JI(ill可能スイッチおよび制御可能なレジスタ接続を制御し、実行されるべき命令の種類に依存して、少なくとも3種類の接続、すなわち、a)1つのレジスタからもう1つのレジスタへの簡単な接続と、b)レジスタ間における、いずれの方向にも1つずつの、2つの別個の接続と、C)レジスタ間における時間多重接続であって、2つの相次ぐ位相において、記憶されているリストエレメントが1方向および他方向へ移送される前記時間多重接続と、の1つを行なう。
レジスタスタック内のそれぞれのセルは、好ましくは、a)内部1ビツトレジスタと、b)該1ビツトレジスタに接続可能な、少なくとも1つの内#1ワイヤバスと、C)少なくとも1つの内部的な、制御可能な接続であって、それぞれか、前記少なくとも1つの1ワイヤバスの1つを、以下の素子、すなわち前記セルの外部のバス、前記レジスタスタックのもう1つのものに属するセルの1つ、の一方に接続可能ならしめる、前記制御手段によって制御可能なスイッチを含む、前記接続と、を含む。少なくとも1つの内部1ビツトレジスタは、インバータなどの人力バッファ手段と、インバータなどの出力バッファ手段と、該バッファ手段間に接続された制御可能スイッチと、を含む。前記入力バッファ手段および前記出力バッファ手段は、制御可能スイッチにより、別個に前記少なくとも1つの内部!ワイヤバスに接続可能である。
前記レジスタの位置に依存して、レジスタセルのあるものは、前記内部レジスタに対する前記接続の1つではない、少なくとも1つのその内部接続に固定的に接続された固定値を育する。
前記部分レジスタ内の内容を比較するために比較器が接続され、比較結果を、アクセスと呼ばれる外部バス内のワイヤへ供給する。
図面の簡単な説明本発明のさらに完全な理解のため、また、本発明の他の諸口的および諸利点の理解のためには、添付図面と共に以下の説明を参照されたい。添付図面において、第1図は、本発明のコアセルを含むリダクションプロセッサの構造を概略的に示し、第2A図は、セルクロジャーを記憶しうるストレージセルの実施例を示し、第28INから第2D図までは、本発明のコアセルの実施例内に使用されつるコアレジスタを示し、第2E図は、コアセルの実施例内のコアレジスタの可能な配置を示し、第3A図から第3F図までは、本発明のコアセル内における異なるデータストレージの形式を示し、第4図、第5図、および第6図は、本発明のコアセルの動作の例を示し、第7図は、本発明のコアセル内における、第1形式の動作平面の第1実施例のブロック図を示し、第8図は、第7図に示されている第1形式の動作平面に対する、全ての形式の可能な接続を有する完全なレジスタセルの設計の実施例を概略的に示し、第9AINから第9F図までは、レジスタセル内において使用されるべき、異なる種類の成分の例を示し、第1θ図および第11図は、第7図に示されている第1形式の動作平面内における、異なるレジスタセルの概略的設計を示し、第12図は、本発明のコアセル内における、第2形式の動作平面(属性平面)の第1実施例のブロック図を示し、第13図から第15図までは、第12図に示されている第2形式の動作平面内における、異なるレジスタセルの概略的設計を示し、第16図および第17図は、レジスタ間の転送の2例を概略的に示し、第18図から第24図までは、コアセル内におけるデータ移送の異なる例を示し、第25図は、本発明のコアセル内における第1形式の動作平面の第2実施例のブロック図を示し、第26図は、動作平面内のレジスタセルの@2実施例の設計を概略的に示す。
実施例の説明第1図において、コアセルは、単一のりダクションプロセッサ、すなわち、もっと複雑なりダクションプロセッサの一部分として備えられうる比較的に簡単なりダクションプロセッサ、の実施例内に含まれているように示されている。このリダクションプロセッサの概略的構造は、第1図から明らかである。しかし、その構造は、極めてさまざまなものでありうることに注意すべきである。
例えば、コアセルの異なる平面は、1チツプ上に並べて配置することもでき、または、平行ではあるが異った層内に配置することもでき、この場合には概略的に図示されているようになる。
第1図の単一のりダクションプロセッサは、いくつかのコアレジスタ3pを含むコアセル2pと、それぞれがセルクロジャーを記憶することができ且つまた好ましくはりジュース用演算の限定された組を与えつる、複数のメモリストレージセルを含むオブジェクトストレージ4pと、もし第1図の単一リダクションプロセッサが、いくつかの単一リダクションプロセッサを含むもっと複雑なりダクションプロセッサの一部分ならば、多重プロセッサ間の通信を実現するためのプロセッサ回路網のデータ転送手段5pと、を含む。データ転送手段5pは、セルクロジャーを他の単一プロセッサへ転送するために、そのセルクロジャーを一時的に保持するようになっているいくつかのレジスタを含む。転送手段5pは、本発明の実際のコアセルの一部分ではないので、これ以上それについては説明しない。
制御装置前記プロセッサはさらに、コアセル2p内のエレメントを制御するための制御装置6pを含む。さらにそれは、数値ALU lpを含む。制御装置6pは、論理ゲートアレイであり、コアセルにより操作されるべきクロジャーの内容により制御される。制御装置6pも数値ALUlpも、本発明の一部分ではない。従って、これらは詳細には説明せず、これらへの、またこれらからの信号のみを、以下に実施例と共に説明する。制御装置の設計に関するこれ以上の情報については、Carver MeadおよびLynn Conway著のテキストr Introduction to VLSISystemsJ 、Addisoo Wesley Publishing Company、 1980を参照されたい。
オブジェクトストレージコアレジスタは、オブジェクトストレージ4pから導かれる構造を含む。オブジェクトストレージは、■レベル構造、すなわちセルクロジャーのみを記憶しつる。コアレジスタは、ルベル構造、すなわちセルクロジャー、を転送するのに十分な広さのバスにより、オブジェクトストレージに接続されている。しかし、コアセルは、3レベルのオブジェクト構造まで内容として含みつる。4つの場合が存在する。すなわち、0,1.2、または3レベルのオブジェクト構造がコアセル内に記憶されつる。
以下に説明されるように、もし3レベルのオブジェクト構造が記憶されるとすれば、その頂部レベル(ルーツ)およびそのブランチの1つのみが記憶される。そうでなければ、全てのレベルが記憶される。
コアセル構造コアセルは全体として、い(っかのコアレジスタ3pを含存する構造演算のための演算装置である。コアレジスタは、リストの木を記憶する。それぞれのリストは、ワードを含む。レジスタのあるもの、限定的レジスタ、はそれぞれエレメントワードを記憶し、エレメントワードはナムワードおよびタグワードを含む。タグワードは、ナムワードの表示の特徴を示す。例えば、もしナムヮードが値を表わす場合は、タグワードはナムヮードに含まれる値の種類、例えばそれが整数であるか、または浮動小数点数などであるか、を示す。コアセルは、それが備えているレジスタの数による、ある長さのリストを一時に処理しうるのみである。リストを記憶するために用いられるレジスタの数は、好ましくは4であり、これは記憶されるリストが4エレメントまたはそれ以下を有しうろことを意味する。例えば、レジスタは、32ビツトを占有するナムワードと、6ビツトのタグワードとを含みうる。この場合には、4エレメントを存するリストは、好ましくは38ビツトの4倍を占有する。
しかし、任意の長さのリストも取扱われつる。しかし、その場合はそれぞれのそのようなリストは、それぞれがコアセル内において処理されるべき最大の長さに一致するか、またはそれよりも短い長さを有するいくつかのリストに、分割されなくてはならない。コアセルは、ある深度の木を一時に処理しつるのみである。
もっと大きい深度を有する木も処理されうるが、限定された深度を有する木の一部分のみが、一時にコアセル内に記憶される。
すなわち、木の一部分を一時に処理しつるのみなのである。
固定された数のレジスタが、リストを記憶しつる。使用されないレジスタは特に不使用としてマークされる。
リストの木は、計算を制御し、また行なうために用いられ、これは、制御装置6pからのms下において、もし必要ならば数値ALU tpと協働して行なわれる。計算は、リストの水内の内容を書直すことによって行なわれる。
インタフェース二オブジェクトストレージーコアセル好ましくは連想メモリであるオブジェクトストレージ4pと、コアセルとは、信号適応を行なう変換インタフェース9pと、クロジャーの広さのバス8p、すなわち、レジスタ平面NUMに接続された部分的バス0BJv(垂直オブジェクトバス)と、レジスタ平面HEADに接続された部分的バスTAGとを含むバス、従ってルベル構造を転送しつるバスと、により相互接続されている。インタフェース9pは、クロジャーの広さのバスOBJ 8pを経てのコアレジスタ3pからの信号を、オブジェクトストレージ内のストレージセルに対して適する信号に、増幅して変換する。それはまた、読取り動作におけるオブジェクトストレージからの信号を、コアセルレジスタに対し適合するように、増幅して変換する。
このインタフェースは、オブジェクトストレージ4p内に配置されているように示されているが、それは代わりにコアセルと共にも配置されつる。しかし、インタフェース9pは、本発明のコアセルの一部分とみなされるべきものではないので、ここでは説明しない。
コアセル平面第1図から明らかなように、コアレジスタは、平面NUM、HEAD%BOOLSTYPE、LAZY。
CLO3/S IMPLEとして図示されているいくつかの部分に分けられている。異なる部分は、異なる数の平面を含む。第1図には、読みやすくするためにわずがな平面のみを示した。以下においては、TYPE、WHERE、LAZY、およびCLOS/S IMPLEの諸平面は、属性平面と呼ばれる。
ナムワードはレジスタ平面NUM内に記憶され、タグワードはレジスタ平面HEAD内に記憶されうる。例えば、32のNUM平面と6HEAD平面とが存在しつる。
第1図に示されているプロセッサの実施例においては、例えば、5つのレジスタ平面TYPEと、1つのレジスタ平面WHEREと、2つのレジスタ平面LAZYと、1つのレジスタの平面CLO3/S IMPLEと、が存在する。これらの平′面内のコアレジスタ部分に与えられるべき情報は、以下の説明において明らかにされ、そこでは、コアセルの動作も説明され、それは、該情報の実際の説明の前に行なわれる。
コアセルの動作コアセルの発展の背景を与えるために、本発明のコアセルの実際の発展以前に発展せしめられ、我々の同時係属出願第・・・号にさらに説明されている、特定のオブジェクトストレージ4pの説明を参照する。しかし、本発明の構造演算用演算装置はまた、もっと通常の種類の計算およびストレージ装置にも接続されうろことに気づくべきである。コアセルは構造演算のみを行なう装置であること、およびそれは数値演算を行なうためには数値演算装置(数値ALU)を利用すること、に注意すべきである。通常は、プロセッサは、数値演算と構造演算部分との双方を行なう演算論理装置(A L U)を備えており、この従来技術のALUは、構造および数値演算のためにどのようにも相異なる機能部分に分割されていない。
従来のALUを使用する時に、コアセル内において行なわれる構造演算と同等の演算を行なうためには、小さいプログラムが必要である。
オブジェクトストレージの能力オブジェクトストレージ4pは、通常のRAN形メモリよりも実質的に多くの知能を存する。それは連想的であり、通常のRAN形メモリによって提供される[読取りJおよびr書込みJよりも多くのサービスを提供することができる。
オブジェクトストレージはストレージセルに分割されており、そのそれぞれはいくつかのストレージエレメントを含む。提供されるサービスは高レベルのものである。
例えば、それは、ただ1つのメモリ命令を用いることによって、特定のデータエレメントの全ての存在を、個々のストレージセル内のいかなる場所にあったとしても発見し、その発見された特定のデータエレメントを広域的に、すなわちオブジェクトストレージ全体の中で、新しい値に書直すことができる。オブジェクトストレージは連想的なものであるから、この書直しの動作は、影響を受けるストレージセルの数に関係なく、物理的メモリサイクルの2サイクルによって行なわれつる。
ストレージセルストレージセルの実施例は、第2A図に示されている。
それは、2種類のクロジャーエレメントを記憶することができ、記憶されるべきエレメントに特に適するストレージフィールドを含む。第2A図においては、これらのフィールドは、それらの中に記憶されるべきエレメントと同じ名称を与えられている。
第1種のクロジャーエレメント第り種のエレメントは、ストレージセルの相異なる状態を記述する。この種類の1つのエレメントはLAZYであり、これは、そのセルが、セルの残余の内容が受動的情報であるexec tであるとみなされる、すなわち、実行可能な状態にある場合の、アイドルにあるか、またはウェイトにある、すなわちセルの評価が延期されていて、それが実行されうる前に結果を待ちつつある、かを示す。もう1つの第1種のエレメントはTYPEであり、これは形式コード(par、seq、apply。
1istSunifなど)を含む。これらの第1種のエレメントは、平面LAZY、WHERE、およびTYPE内に備えられたコアレジスタの部分内に記憶されるようになっている。しかし、コアセルには、CLO3/SIMPLEと呼ばれる余分の平面も備えられ、そこには、レジスタ内の情報がクロジャーであるのか、または単純な値であるのかが示される。応用によっては、他の平面も備えられつる。
第2種のクロジャーエレメント第2種のエレメントは、識別、環境、または値を記述する。これらは、IDENT IF IER。
ENV IRONMENTSVALUE/DESであ6゜これら第2種のエレメントは、平面HEADおよびNUM内に備えられたコアレジスタの部分内に記憶されるようになっている。これらのエレメントはそれぞれエレメントワードを含み、エレメントワードは、コアセル内に平面NUM内に記憶されるべきナムワードと、コアセル内の平面HE A D内に記憶されるべきタグワードとに分割される。応用によっては、他の平面も備えられうる。
タグワード第2種のクロジャーエレメントはそれぞれ、ナムワードの特徴を示すタグワードを有する。タグには2種類、間接タグ、すなわち識別子および環境に用いられるタグと、直接タグ、すなわち単純な値などに用いられるタグと、が存在する。間接タグの例は、els、canon。
およびopenである。もしタグワードがclsであれば、それは、ナムワードがリジュース可能なりロジャーを表わしていることを意味する。もしタグワードがcanonであれば、それは、ナムワードか、それ以上リジュースされえないクロジャーを表わしていることを意味する。もしタグワードがopenであれば、それは、ナムワードが、クロジャーが挿入されたリストであることを表わしていることを意味する。直接タグの例は、discrScontSunused、およびnothingである。もしタグワードがdiscrであれば、それは、ナムワードが整数であることを意味する。もしタグワードがcontであれば、それは、ナムワードが浮動小数点値であることを意味する。もしタグワードがunusedであれば、それは、ナムワードが意味を欠いていることを意味する。
もしタグワードがnothingであれば、それは、ナムワードが何も表わしていないこと、すなわち、何もマークされていないフィールドを含むクロジャーの統合は、何も生じないことを意味する。応用によっては、他の間接的または直接的タグワードも用いられうる。
識別子もしストレージセル内の識別子フィールドが識別子エレメントを含んでいれば、そのストレージセル内のセルクロジャーは、コアセルへ転送されつる。ストレージセルフイールドVALUE/DESは、それぞれ他のセルクロジャーを示す識別子を含むことができ、それによって、この他のセルクロジャーへのリンクを与える。記憶されているクロジャーの集められたものは、方向性グラフ、または識別子によって結合されたセルクロジャーの木とみられうる。
環境フィールドは、回路網部分、すなわち、クロジャーの環境を与えるクロジャーの木、におけるルーツクロジャーを示す識別子を含みつる。しかし、環境フィールドは、他の用途をも有しつる。環境は、構造のクリエータ(creator)のトラックを、クリエートされた全てのセルクロジャーの環境内にそのクリエータの識別子を記憶することにより、保存するために使用されうる。例えば、内部の同じ名称を有する全ての記号が同じものを表わすベき部分木(5ubtree)内の全てのクロジャーセルは、同じ環境を有することによりグループを形成しうる。このようにして、構造全体は、1回の動作のみにより、木の中の1クロジヤーから、ルーツを経て、アクセスされうる。環境は、コアセル内において行なわれる動作に影響を与えず、本発明の一部をなすものではないので、これ以上それについては説明しない。
このようにして、もしクロジャーの環境が与えられれば、この環境内のルーツクロジャーが見出される。環境のルーツクロジャーは、そのストレージセル内のフィールドWHERE内に特定のマーク(例えば「IJ)を備えている。環境のノードクロジャーは、フィールドWHERE内に、他のマーク(例えば「OJ)を備えてコアセルの実施例内において使用されつるレジスタは、第2B図から第2D図までに示され、コアセルの実施例内において使用されうるレジスタの配置は、第2E図に示されている。
第2B図には、レジスタが示されている。この図は、レジスタがレジスタセルから構成されていることを示しており、それぞれのセルは1ビツトの情報を記憶することかできる。レジスタの描き方は、レジスタがコアセル内の相異なる平面を貫いて延長し、それぞれのレジスタセルが1平面内にあることを示している。
第2C図は、コアセル内の全平面を貫いて延長するレジスタ、すなわちフルレジスタを示す。この種類のレジスタは、NUMおよびHEAD平面内に位置するレジスタセル内に識別子または値を保持しつる。それはまた、BOOLSTYPE、WHERE、LAZY、およびCLO3/S IMPLEの諸子面内に位置するレジスタセル内に、前述の状態を保持する。
第2D図は、コアセルのNUMおよびHEAD平面のみを貫いて延長するレジスタ、すなわち限定的レジスタを示す。
第2E図は、コアセルの実施例内におけるレジスタの可能な配置を示す。このコアセルは、好ましくはペースレジスタマトリックスと呼ばれる、正方形をなして配列されたペースレジスタを有する。これらのレジスタは、その辺の一方に沿った、主レジスタと呼ばれる主要行を有する。ペースレジスタの列は、副レジスタと呼ばれ、それぞれ底部に1つの主レジスタを有する。コアセルにはさらに、識別子レジスタおよび環境レジスタが備えられつる。ペースレジスタマトリックスの側部には、1列の補助レジスタが配置されている。
コアセルの実施例において、主レジスタ以外の全てのペースレジスタは、第2D図に示されている種類のもの、すなわち限定的レジスタでありえ、第2E図の残余のレジスタは、第2C図に示されている種類のもの、すなわちフルレジスタでありうる。
コアセルのハードウェア構造のさらに詳細な説明の前に、第3A図から第3F図までを参照しつつ、さまざまなデータのストレージ形式の簡単な説明を行ない、また、第4A図から第4H図まで、第5A図から第5G図まで、および第6A図から第6G1gまでを参照しつつその動作のいくつかの例を与える。
単純な値第3A図に示されているように、リダクションの結果である単純な値25は、主レジスタのうちの特定レジスタ内に置かれる。
ルベル構造目標とは、リジュースされるためにコアセル内にロードされるもののことである。第3B図に示されているように、通常は他のセルクロジャーに対する関連のないクロジャーである、ルベルのみを含む目標は主レジスタ内に記憶される。例は、簡単な数値演算、すなわち値1.2、および3の加算を示す。数値命令(+)は第1主レジスタ内に記憶され、処理されるべきエレメントは他の主レジスタ内に記憶される。
2レベル構造第3C図に示されているように、2レベル構造を含む木は、主レジスタ内に水平に記憶された、親であるルーツリストと、ペースレジスタ内に垂直に記憶された、子であるリストと、を有する。この例においては、リスト表示((12) (34))を有する構造は、ペースレジスタマトリックス内に記憶されている。ルーツリスト、すなわちサブリスト内の第1エレメントであるlおよび3は、主レジスタ内に記憶され、子リスト、すなわち(12)および(34)は副レジスタ内に垂直に記憶されている。この種類のストレージのその他の例は、以下に、例えば第4図に関連して与えられる。
3レベル構造第3E図に示されているように、3レベル構造を含む目標の木のルーツは、補助レジスタの1つに記憶され、またその単一の子は、主レジスタ内に記憶される。
第3D図において、目標の木の、命令のトランスポーズ(Tr)であるルーツは、補助レジスタの1つに記憶され、リスト(xd+、tdt、1dt)であるその子は、主レジスタ内に記憶されている。このリスト内のそれぞれのエレメントは、子を示す識別子である。第3E図において、これらの子はペースレジスタ内に垂直にロードされており、そこではid+は、それが示すリスト、すなわち(123)と交換されており、またそこではid2は、それが示すリスト、すなわち(111213)と交換されており、またそこではidyは、それが示すリスト、すなわち(212223)と交換さ第3F図に示されているように、バイブラインモードで記憶される木は、主レジスタ内に目標リストをロードされ、また補助レジスタ内に目標の親をロードされ、その処理されるべき命令およびエレメントは、双方の種類のレジスタ内に記憶される。バイブラインモードの動作は、好ましくは、数値表現をリジュースする時に用いられる。1つの利点は、中間結果が、オブジェクトストレージの代わりにコアセル内に一時的に記憶されうること第4A図から第4H図までに示されている第1例は、リジュース可能なりロジャーunify(par(I par (1) 3)par (I par(1) 2) )として与えられた並列値の単一化である。このリジュース可能なりロジャーは、単一化の並列構造として書き直されるべきものである。
第4A図は、最初のりジュース可能なりロジャーを示す。第4B図は、このリジュース可能なりロジャーが、とのようにオブジェクトストレージ内に記憶されるかを示す、FJA図には、リジュース可能なりロジャーの異なる部分が記憶されるストレージセルが区画されている。
第4B図には、エレメントクロジャーと、セルクロジャーとの間のリンクが区画されている。識別子id+を有するセルクロジャーは、タグclsを有し、かつタイプフィールド内にタイプコードunifyを存しており、識別子idz、s d 2 、およびicLを有するセルクロジャーは、それらのタイプフィールド内にタイプコードparを有している。識別子id+を育するセルクロジャーは、その最初の2つの値/指示クロジャーエレメントとして、識別子id、およびid4を有するセルクロジャーへの指示を含む。これらのセルクロジャーのタグはキャノンとなっている。識別子idzを育するセルクロジャーの、第1および第3の値/指示クロジャーエレメントは、タグdiscrをもった離散値を有し、また、その第2値/指示クロジヤーエレメントは、識別子tdzを有するセルクロジャーを指示し、従ってタグcanonを存する。識別子idsを有するセルクロジャーの第1値/指示クロジヤーエレメントは、整数を与えられているので、タグdiscrを有する。識別子id4を有するセルクロジャーの、第1および第3の値/指示クロジャーエレメントは、タグdiscrを有する離散値を与えられ、また、その第2値/指示クロジヤーエレメントは、識別子xdxを有するセルクロジャーを指示し、従ってタグcanonを有する。
第4C図に示されているように、識別子id+を存するセルクロジャーをもつストレージセルの内容が、まずコアセル内にロードされて、その識別子がクロジャーのタイプコードunifyを含めid、として識別子レジスタ内に配置され、また、第1動作ステップにおいて、目標としての値/指示エレメントが主レジスタ内にロードされる。これが実際にどのように行なわれるかは第18図に示されており、さらに以下に説明される。
第4D[に示されているように、識別子id2およびidtを存する子は、それらの第1値/指示エレメントの内容か、その識別子によりマークされている主レジスタ内に配置されるように、ペースレジスタ内に垂直にロードされ、また、その値/指示エレメントの残余のものは、その上の垂直列内のレジスタ内にロードされる。これらの子のそれぞれの、タイプコードparもまた主レジスタ内にロードされる。タイプコードは、TYPE平面内に位置するレジスタセル内にロードされる。
第4E図に示されているように、ペースレジスタの第1垂直列内の内容が主レジスタ内に配置され、第2垂直列が主レジスタに平行なペースレジスタの行内に配置されるように、ペースレジスタの内容は90°トランスボーズされる。トランスポーズ動作は第23図に示されており、以下においてさらに説明される。識別子レジスタと、主レジスタとに与えられているタイプコードのparとuntfyとは交換され、これは制御装置によって自動的に行なわれる。ここで、ペースレジスタは、諸列内に配置された3つの子を有する親を含む。それぞれの子は、ここで、命令makeを用いて目的ストレージ内ヘロードし返される。オブジェクトストレージからの応答として、記憶された子に対する識別子が、主レジスタへ供給されて記憶される。一種のゲートアレイである制御装置6pが、特に諸レジスタの平面CLO3/S IMPLEからTYPEまでの中の内容を検出して命令を行なう、すなわち、そこに見出されたfIl?に従ってスイッチおよびゲートを制御することを知るべきである。
子は、id+以後のシーケンスの順に命名され、既に6存されている名称は用いられない。しかし、名称の順序は重要ではなく、従って任意でありうる。
第4F図に示されているように、第1子は識別子idzを得、識別子fdtを6育しているエレメントクロジャーを含存する第2子は、識別子id4を得、第3子は識別子idsを得る。識別子idz、ida、idsを有するセルクロジャーにリンクしたエレメントクロジャーを有する親は、その識別子id+を保持し、次にオブジェクトストレージ内に記憶される。
第4G図は、リジュース可能なりロジャーpar(unify(11)unify(par(1) par(1))unify(23))を記憶しているストレージセルを示す。このリジュース可能なりロジャー自体は、第4H図に示されている。第4G図および第4H図は、第4A図および第4B図と同様に示されており、従って自己説明的になっている。
第4G図にはまた、タイプコードunifyを有するセルクロジャーが記号execをLAZYフィールド内に与えられ、識別子id+を有するセルクロジャーが記号wa i tを与えられていることが示されていて、これはexecとマークされたセルクロジャーが、それらの内容を値にリジュースするために、識別子xd+により示されているセルクロジャー以前に実行されるべきことを意味する。第4HrMのクロジャーは、さらに処理を受けるために、後の時点に、コアセル内ヘロードし返されつる。例えば、識別子id2を有するセルクロジャーは、その値/指示エレメント内の値lおよびlが同じであるために、値lを有することになり、識別子1d、を育するセルクロジャーは、その値/指示エレメント内の値2および3が同じでないために、無(nothing)を与える。
それぞれの単一化は、数値ALUにおいて行なわれ、数値ALUは前記値を比較器において比較し、その比較の結果を制御装置6pへ供給する。制御装置はそこで論理ゲートアレイをセットして、それによりコアセルの第1主レジスタ内の情報を供給する。リダクションの結果、カノニカルな指示または単純な値が得られるか、または何も得られなければ、それは、リジュースされたクロジャーへのそれぞれの間接的指示が、値の直接的指示に変えられるように、第2種のエレメントクロジャーを記憶するよう動作しうるオブジェクトストレージ内の全てのストレージフィールドに対し全体的に分配される。これは、第21図に関連して以下にさらに説明されるunify−id動作によって行なわれる。
例2この例は、セルクロジャーが挿入されたリストを含むことを意味する、ハードウェア命令1ist expansionである。この種の命令は、他のりダクションの補助ステップである。ハードウェア命令の1ist eXpansionは第24図に示されており、第24図に関連してさらに説明される。
機械は、ex、typeと呼ばれる例示的命令のりダクションを行ない、該命令は、ex、type(11ist(231ist(456))?)の形式を有する値およびリストを含む任意の種類の命令でありうる。この形式は第5A図に示され、そのセルクロジャーは第5B図に示されている。第5A図および第5B図は、第4A図および第4B図と同様に区画されており、従って自己説明的になっている。
第5C図に示されているように、識別子td+を存するセルクロジャーは、識別子およびタイプコードを識別子レジスタ内に有するコアセルの主レジスタ内ヘロードされる。第2主レジスタの内容は間接的エレメントopenによりマークされているので、それがリンクされているセルクロジャーは、第5D11から明らかなように、ペースレジスタ内に垂直に子としてロードされる。
第24図にさらに詳細に示されているハードウェア命令1ist expandは、次に第3主レジスタ内の離散値7を、第3ベース列内のidaの隣りの位置へ移動せしめ、第2主レジスタの上の第2列内のリストの部分を第3列へ移動せしめてその最下部エレメント(値3)を第3主レジスタ内に配置し、それにタイプコード1istを与える。
次に、新しいリスト展開が行なわれ、主レジスタの上の第3列内の内容が第4列内に配置されて、タイプ1istを与えられる。離散値である第3主レジスタの内容は、第5F図から明らかなようにタグdiscrを与えられる。
次に、命令makeを用いて、第4列内のリストがオブジェクトストレージ内に記憶される。それは、識別子id2を有するストレージセル内に記憶される。そのわけは、それはアイドルになっており、第5G図から明らかなように、識別子idtの供給は、第4主レジスタ内に記憶されるべきコアセルへ送り返されるからである。
この後、リダクションの結果がオブジェクトストレージ内ヘロードし返される前に、いくらかの他の種類のりダクションがex、typeについて行なわれる。
例3数値命令が実行される。数値命令は、+、−、ネ、/、mod、などでありうる。命令の後には引数が続く。この例においては、リスト内の数の間の加算が行なわれる。
機械は、ファンジョンappty (+ 1ist (12))を有するapply(application)のりダクションを行なう。
app l ica t i onは第6A図に示され、そのセルクロジャーは第6B図に示されている。第6A図および第6B図は、第4A図および第4B図と同様に区画されているので、自己説明的になっている。
よびタイプコードを存するコアセルの主レジスタ内ヘロードされる。数値命令(+)は命令としてマークされている。第2主レジスタ内の内容は間接的エレメントopenとしてタグされているので、それがリンクされているセルクロジャーは、第6D図から明らかなように、子としてペースレジスタ内に垂直にロードされる。
次に、リスト展開が行なわれ、第2主レジスタ内の離散値にdiscrのタグが与えられ、リスト展開された値2に対しタイプコードフィールド内に1istのマークが与えられる。これが行なわれるわけは、識別子icLを有するリストが、2.3、または4エレメントのいずれを存していたとしても機械は同じ動作をするからである。新しいリスト内にはlエレメントしか存在していないので、第6F図から明らかなように、機械は、マーク1istを、主レジスタがdiscrである値を含有する旨の表示で置換する。
その時、主レジスタは、命令マーク(+)と2つの離散値とを含み、これは制御装置をして、直接的に、または例えば、命令が記憶されるオブジェクトストレージの非書込み可能部分に記憶されている命令に関する情報によって、数値ALUを#御して命令(加算)を行なわしめ、その数値演算の結果をカノニカル値として、第6G図に示されているように第1主レジスタへ送らしめる。
タイプコードフィールド内の記号appiyは、ファンクションapplicationが行なわれるべきことのマークである。この場合は単純な値3である結果の値は、識別子id+の全での存在をこの値に交換するために、広域的に分配される。
コアセルのハードウェア構造平面NUMおよびHEADのレジスタセルは、平面2pとインタフェース9pとの間において、バス0BJv。
idババスなわち識別子バス、およびenvバスすなわち環境バス、内のワイヤに接続されている。OB J v /<スは、バス部分vO1vl、v2、およびF3を含む。
他の諸平面の目的および接続は、以下に後述される。
このようにして、コアレジスタセルのアレイは、諸レジスタに垂直に諸平面内へrスライスJされ、同じNUMまたはHEAD平面に属するが、異なるコアレジスタに属するレジスタセルは、第7図に示されているように互いに接続されている。
第7図に示されている少なくともNUM平面およびHEAD平面の構造内には、NXN個のレジスタS o、 。
から5N−1+N−1までのマトリックスをなして、レジスタセルの正方形か配置されている。、二のマトリックス内のレジスタはペースレジスタと呼ばれ、レジスタセルはペースレジスタセルと呼ばれる。
ペースレジスタは多くの応用において、一時記憶クロジャーエレメントとして用いられる。レジスタの表示は、ペース、主、および補助レジスタのような表示の1つの種類か、説明がレジスタの実際の位置に関する時に使用され、子、目標、および親レジスタのような表示のもう1つの種類が、説明がレジスタの機能に関する時に使用されるという意味において、厳密に区別されている。
図示されている実施例においてはN=4であり、これは好ましいものではあるが、マトリックスの、他の大きさも選択可能である(図示はされていない)。第7図に示されているように、最下行のペースレジスタセルS0゜、S、。、Sl。
、およびS3゜は、平面に特有のバスho内の線に接続されており、これらは主レジスタセルである。主レジスタセルS、。、Sl。、S、。、およびS z、 oは、目標ルーツレジスタとして最も頻繁に使用され、導体NUOないしNU3から成るバスNUを経て、数値ALU ipに接続されている。
しかし、本発明の教示する所によれば、数値演算を必要としない簡単なプロセッサを用いることも可能である。
そのような場合には、数値ALU tpを省略することができる(第1図参照)。
識別子レジスタセルIDは線idに接続され、環境レジスタセルENVは線envに接続されている。
バス線hiは、iを0と3との間の数として、スイッチSW、、によりバス線viに接続されつる。バス線ho、hl、h2、h3を含むバスは、0BJh、すなわち水平オブジェクトバスと名づけられる。バス0BJhは、なかんずく、データをコアセル内において垂直に、すなわちレジスタの列内にロードするのに用いられ、そのデータは、オブジェクトストレージによりバス0BJvを供給される。これは、第20図に関連してさらに以下に説明される。
バス線id、env、vO,vl、F2、F3は、それぞれスイッチSW、、、、。s S W s * w、 k。、SWl。、S Wvl、bO,5Wvt、ho %およびSW*s、boにより、バス線hOに接続されつる。バス線C,,,C,,C,、およびCvを含むバスresは、制御装置6pに接続されており、レジスタに0などの定数をセットするのに用いられつる。バス線C+nは識別子レジスタセルに接続され、バス線CIはレジスタセルFO1Fl、F2、およびF3に接続されており、バス線C1はスイッチS W c b 、 h 。
によりバス線hOに接続可能であり、バス線Cvは、iを0と3との間の数として、スイッチSW、、c、によりバス線viに接続可能である。バスresはそのスイッチと共に、ある応用においては省略されつる(図示されデータの水内には、親と呼ばれる頂部レベルがある。
親は時々、第7図内に左方に配置されている補助レジスタセルFO1F1、F2、F3内に記憶される。図示されている実施例においては、全ての補助レジスタは、コアワードを記憶しうる。それぞれの補助レジスタセルは、バス線idと、バス線idに対して垂直に走るバス0BJh内の線hO1hl、h2、h3の1つにそれぞれ接続されている。補助レジスタセルは、コアセルが行ないつる動作の少数のものにおいて使用される。従って、補助レジスタは、本発明のコアセルのある応用においては省略されうる(図示されていない)。また、1列より多くの補助レジスタを有するコアセルを用いることも可能である(図示されていない)。
以上から明らかなように、それぞれのレジスタは、諸平面2p内において同じ位置を育する、いくつかの諸平面2p内のレジスタセルにより構成される。従って、第7図はそれぞれのレジスタの1セル、すなわち1ビツト、しか示していないが、全レジスタは第7図に用いられている符号を名称として与えられる。第7図がら明らかなように、レジスタは行および列をなして配列されている。
補助レジスタ領域FO,Fl、F2、F3は列であり、N個のペースレジスタ領域S0.。ないしSo、s、S+、sないしS 1.s 、St、oないしSo、s 、 オJ:ヒss、o ナイしS s、 sは、それぞれ列であって子を記憶しつる。
レジスタセル間の接続接続は、それぞれの平面内の隣接するペースレジスタセル間に、垂直方向および水平方向の双方において行なわれる。図示されている実施例においては偽fである固定的なプログラムされた値を有する接続もまた、オブジェクトストレージを利用する水平行上の最外部のペースレジスタセルのそれぞれに対してなされる。
それは、レジスタセル内のN端子(北)(第8図参照)に接続され、北−南方向におけるシフトが行なわれる時に用いられる。
トランスポーズ可能な位置が接続されるように、ペースレジスタセル間の対角線方向における接続も設定可能である。これは、iがjと異なるものとして、セルS1.1がセルS r、 +に接続可能であることを意味する。それぞれのペースレジスタセルは、最も近い右下方に位置するペースレジスタセルに接続されている。ただし、その位置にペースレジスタセルが存在しているものとする。それぞれの補助、識別子、環境、およびペースレジスタセルは、Xおよびyを0と3との間の数として、それぞれ出力ACC,,,ACC,,,ACC,、、、およびA CC、、、アにより、平面BOOLの1つに接続されている。
以下においては、平面NUMおよびHEAD内に存在すべき総称レジスタセルを説明する(第8図)。この総称レジスタセル内に用いられるスイッチおよびゲートの実施例は、第9A図から第9F図までに示されている。
この総称レジスタセルから、補助レジスタセル(第1θ図)および識別子レジスタセル(第11図)の実施例が得られる。
さらに以下においては、ATTRI BUTE平面内に存在すべきレジスタセルの実施例を説明する。第13図には、識別子レジスタセルが表示されている。第14図には補助レジスタセルが示され、第15図には主レジスタセルが示されている。
平面NUMおよびHEAD内の総称レジスタセル第8図においで、レジスタセルの実施例は、2つの内部バスa1およびす、と、中央レジスタrつとを含む。
バスa6およびす、lは、レジスタセルの外部のいくつかの接続に接続されている。第8図の実施例は、外部への全ての可能な接続を備えた総称レジスタセルを示している。通常は、特定のレジスタセルは、第8図に示されている全ての接続を備えてはいない。レジスタセルの配置により、1つまたはそれ以上を欠いている。接続された端子間の全てのワイヤは、第7図に示されている配線から明らかである。全てのレジスタセルが、第8図に示されている全ての外部接続を有するとは限らないことも、第7図から明らかである。従って、全てのレジスタセルおよびそれらの接続についての詳細な説明は行なわない。
バスa1バスam′は、スイッチSW、、および端子Vを経て垂直バス線VXに接続されている。ただし、Xは0と3との間の数である。さらに、それは、スイッチSW、Ilおよび端子Hを経て、yを0と3との間の数として水平バス線hyに接続され、また隣りのレジスタセル内のスイッチSW□ (東)に接続されている端子W(西)を経て左方のレジスタセルにも接続され、さらにもしレジスタセルが主レジスタセルならば、端子NUにより直接、数値演算袋(tipにも接続されている。バスamはまた、右下方のレジスタセルに、そのレジスタセル内に備えられたスイッチ5WDbへの端子り、を経て接続され、さらに、下方のレジスタセルにも、そのレジスタセル内に備えられたスイッチSW、(北)への端子S(南)を経て接続されている。本レジスタセルは、バスaXに接続されている端子CおよびSWCを経て、セットまたはリセットされうる。バスa、はさらに、スイッチSW、を経て中央内部レジスタr8の入力に接続され、またこスイッチSW、。を経て同レジスタrIlの出力に接続されている。
バスb、lバスb、は、スイッチSWtおよび端子Eを経て右方のレジスタセルに接続され、また、スイッチ5Wlllbおよび端子D1を経て諸レジスタセルの対角線にも接続され、さらにまた、スイッチSWNおよび端子Nを経て上方のレジスタセルにも接続されている。バスb11はまた、SW、、を経て中央内部レジスタr1の入力に接続され、さらにスイッチSW、。を経て同レジスタr、の出力に接続されている。
中央内部レジスタ中央内部レジスタセルは、好ましくはCMOSインバータである2つのインバータQlおよびG2と、それらの間の制御可能スイッチSW0とを含む。完全なレジスタセルはさらに、バスallおよびbえと、スイッチSW、、、SWl。、SW、、、SW、、と、このセルを外部に接続する諸スイッチと、を含む。中央内部レジスタrえの出力は、スイッチSW、、および端子Hを経、またスイッチS W voおよび端子Vを経て、それぞれ水平バスと、垂直バスとに接続されつる。中央内部レジスタrtは(以下に説明される)動的状態を記憶する。
スイッチの動作コア内の全てのレジスタセル内にある全ての制御可能スイッチは、例えばPAL (プログラマブルアレイロジック)などのゲートアレイを含む、制御装置6pに接続されたワイヤを経て制御される。このゲートアレイは、コアセル内に記憶されている情報を用いて、いずれのスイッチを開放し、次にいずれのスイッチを閉成すべきかを決定する。ゲートアレイの動作は、クロックにより同期せしめられる。スイッチは2方向性のものであるが、あるもの、例えば入力および出力スイッチSW□1および5WHOは、1方向においてのみ使用される。
比較装置COMP比較装置COMPは、第1NANDゲートGlを含む。
■入力はインバータQ1の非反転入力に接続され、他人力はインバータQ2の入力に接続されている。装置COMPはさらに、第2NANDゲートG2をも含む。1入力はインバータQlの出力に接続され、他人力はインバータQ2の出力に接続されている。ゲートGlおよびG2の出力は、平面BOOLの1つに至る1ワイヤバスACCに接続されている。双方のNANDゲートは、2つの直列接続されたMOS−FET)ランジスタによって構成され、それらの直列接続されたソース/ドレイン路は接地とBOOL平面との間に接続され、それらのゲートはNANDゲートの入力であり、最上部のMOS−FET)ランジスタのドレインは出力である(第9D図参照)。この比較装置COMPは、連想探索中、すなわちセルコア内のエレメントが、オブジェクトストレージ内または該セルコアの他部分内のエレメントと比較されるべき時に、用いられる。その時、比較されるべきエレメントは、さらに以下に説明されるように、比較すべきエレメントを含存するレジスタセルの入力に印加される。
インバータおよびスイッチインバータQ1およびG2は、エンハンスメント形の2つのMOS−FETトランジスタ(第9A図)によって、または第98INに示されているように接続された1つのエンハンスメント形および1つのデプレション形のMOS−FETトランジスタによって、または2つの相補形MO3−FET)ランジスタ(第9C図)によって、構成される。レジスタセル内の制御可能スイッチは、MOS−FET)ランジスタ(第9E図)によって、または第9F図に示されているように接続された(エンハンスメント形(EE MOS)の)2つの相補形MOS−FETトランジスタによって、構成されうる。制御装置t6pは、制御信号Cによりスイッチを制御する。第9F図かられかるように、スイッチは、より速い状態遷移を実現するためには、制御信号とその補数信号との双方によってυImされうる。
第8図の総称レジスタセルは、コアセル内の全てのレジスタセルの基本と見ることができる。すなわち、それらは同様に設計されうる。総称レジスタセルから得られるレジスタセルは、端子および付随する出力および入力スイッチの数によってのみ異なる。これらの得られたセルは、第8図に示されているセルと同じ参照番号を与えられている。
NUMおよびHEAD平面内のベースレジスタセルベースレジスタセルS、、。
、SO,l 、S、1、およびS8.、はスイッチSW、、および端子Dbをもたず、ペースレジスタセルS a、o 、S+、o s Sz、t 、Ss、sはDaC端子もたず、主レジスタセル(S 、、、からSs、。まで)はS端子をもたず、残余のペースレジスタセル(S=、+からS s、 sまで)はNU端子をもたない。いずれのペースレジスタセルもC端子をもたずまたSWcスイッチももたず−その代わりに、垂直および水平バスと、端子VおよびHとが、バス線CyまたはC2により供給される一定値によってレジスタセルをセットまたはリセットするのに用いられる。
NUMおよびHEAD平面内の補助レジスタセル第1O図に示されている補助レジスタセルは、yを0と3との間の数として、端子Hy、V、C1およびACCのみを有し、■端子はバス線IDに接続され、C端子はバス線C1に接続されている。
NUMおよびHEAD平面内の識別子/環境レジスタセ第11図に示されている識別子レジスタセルは、端子V、C1およびACCのみを育し、■端子はバス線IDに接続され、C端子はバス線CImに接続されている。環境レジスタセル(図示されていない)は、第1I図の識別子レジスタセルと同様のものであるが、この実施例においては、C端子およびSW2スイッチがない。他の実施例においては、環境レジスタセルは、C端子およびSWcスイッチを含みつる。
連想探索およびBOOL平面連想探索中においては、比較は、平面BOOLに至るアクセス配線およびバスに対して行なわれる。2つのANDゲートG1およびG2は、キー値、すなわちQlの入力上の比較されるべき記憶値である値と、G2の入力上の記憶値を比較する。この比較中に、キー値は、内部バスa、またはbつを経てQlへ転送される。スイッチSWoはその時オフ状態にある、すなわち開放されている必要がある。もし供給された値、すなわちキー値が、記憶値と一致しなければ、充電されたBOOL平面はNANDゲー1−GlおよびG2を経て放電せしめられる。
もし一致すれば、BOOL平面は充電された状態に留まる。
レジスタセル毎に1バス線ACCが存在する、レジスタ内の全てのバス線ACCは、並列に接続されて、平面BOOL内の同じバス線に接続されつる。あるいは、平面NUMおよびHEAD内に備えられている全てのレジスタセルのバス線ACCは、これらの平面のためのBOOL平面内のバス線に接続可能であり、ATTRIBUTE平面内に備えられている全てのレジスタセルは、同じBOOL平面内、またはATTRI BUTE平面のための第2BOOL平面内に備えられた別個のバス線に接続可能である。BOOL平面か1つ備えられるのか、2つ備えられるのか、およびバス線が■つ備えられるのか、2つ備えられるのかは、選択の問題であり、#纒装置6pに記憶される制御命令の形式による。2つより多(のBOOL平面の設置も、本発明の範囲内にある。備えられるBOOL平面の数は、連想探索の細分性、すなわち、行なわれつる異なる連想探索の数およびそれらが行なわれる程度、すなわち、関連しうるレジスタの諸部分、を指示する。
このようにして、比較は、BOOL平面内の同じバス線に接続されているレジスタの部分に対し同時に行なわれる。もし全てのNANDゲー)GlおよびG2が同じ出力(高レベル)を有すれば、比較の結果は「一致」となり、そうでない場合は、その結果は不「一致」となる。ただし、「一致」は、双方の情報片が同一であることを意味する。このようにして、平面BOOLはバス線に対する平面であり、仮想的な、すなわち「想像上の」平面とみなされつる。すなわち、バス線は、必ずしも平面内に備えられる必要はなく、直接制御装置6pに接続されつる。
ATTRI BUTE平面の構成ATTRI BUTE平面は、平面NUMおよびHEADとは異なる構成を有し、その構成は第12図に示されている。第7図におけると同じ参照符号が、同じ構成を育するエレメントに対しては用いられている。この種類の平面は、スイッチSW、。、SW、l、SW、、、およびSW、と、1つの識別子レジスタセルIDtと、4つの補助レジスタセルF Ot 、 F 1 ? SF 2 r 、 F 3 tと、主レジスタセルS0゜、S、、、 、S、、。、およびSl、。のみを含むペースレジスタユニットと、を含む。
このように、ペースレジスタマトリックスは、第7図に示されているレジスタ平面における同様に、スイッチSW、、、S Wv+、w s 5Wvz、b* s SWws、hoのそれぞれにより、それぞれのバス線vO1MISV2、v3に、またバス線hOに接続された主レジスタセルの行S0.。
からS8.。までのみにリジュースされている。iを0と3との間の数とするとき、バス線hiは、スイッチSW、、によりバス線viに接続可能である。しかし、l(ス線■0、vl、v2、v3は、平面NUMおよびHEAD内の同じ名称のバス線ではなく、インタフェース9pの他の入力に接続可能であり、従って、オブジェクトストレージ4pの他部分、好ましくはレージ−、ホエア、およびタイプの諸部分(第1図参照)に接続可能である。
別の方式においては、バス線vO1v1、v2、およびv3は、全くオブジェクトストレージ4pに接続される必要がなく、その代わりにバス線idを、オブジェクトストレージからの状態転送に使用することができ(第1図参照)、すなわちオブジェクトストレージ内のレージ−、ホエア、およびタイプが、コアセル内の対応平面内のバス線idに結合せしめられる。また、主レジスタセルの行S69.からSs、。までと、識別子レジスタセルIDTと、補助レジスタセルF07からF3.までとは、第7図に示されているレジスタ平面内におけると同様に、バス線CI4.Cf s Ck 、およびCvを含むバスresに接続されている。
そのほか、識別子レジスタセルID、の垂直列と、4つの補助レジスタセルF3ア、F2t、、Fly、およびFOTとが、バス線idに接続されており、バス線idはさらに、制御装置6pに至る第2バス線cont (第1図には示されていない)に接続されている。制御装置6pは、このバス上を転送されうる情報を用いて、行なわれるべきリダクションの種類を決定することができる。
第12図に示されている種類のレジスタ平面内のそれぞれのレジスタセルは、そのアクセスワイヤおよびバス線ACCのほかに、iを0と3との間の数または記号ID、FOからF3までとして、出力線SD、を有し、これは、問題となっている出力線に接続されているレジスタセルの状態を直接検査するのに用いられる。
ATTRI BUTE平面内の識別子レジスタセル第13図は、ATTRI BUTE平面内に存在する識別子レジスタセルTD、の実施例を示す。それは、4端子v、C0NT、s[)、 およびAcct−1rする。端子Vに接続されうる。端子C0NTは、スイッチS Wcastを経て内部レジスタrえの出力に接続されている。端子SDは、内部レジスタrRの出力、すなわちインバータQ、の出力に接続されている。端子Cはバス線C1dに接続される。
ATTRT BUTE平面内の補助レジスタセル第14図は、yを0と3との間の数として、ATTRI B U T E平面内に存在する補助レジスタセルFytの実施例を示す。識別子レジスタセルID、と比較すると、このレジスタは1つ余分な端子、すなわち端子Hを有する。端子Hは、yをOと3との間の数として、バス線hyに接続されつる。他の諸端子は、識別子レジスタセルI D tの対応する諸端子における接続と同様に接続される。端子Cはバス線CIに接続される。
ATTRT BUTE平面内の主レジスタセル第15図は、Xを0と3との間の数として、ATTRIBUTE平面内に存在する主レジスタセルS81.の実施例を示す。それは、6端子V、E、H,W、SD、およびACCを有する。端子SDは、内部レジスタr、の出力、すなわちインバータQ、の出力に接続されている。
他の諸端子は、NUMおよびHEAD平面内のレジスタセルの対応する諸端子における接続と同様に接続される。
いずれの主レジスタセルもC端子をもたず、またSWeスイッチももたない一代りに、垂直および水平バスと、端子VおよびHとが、バス線C7またはCkにより供給される一定値によってレジスタセルをセットまたはリセットするのに使用される。
スタンバイストレージモードスタンバイストレージモードループは、セル内に備えられたループの一方または双方により形成される。1つのループは、スイッチSW、。と、バスb、と、スイッチS W b+と、インバータQlと、スイッチSW0と、インバータQ2と、により形成される。もう1つのループは、スイッチSW、。と、バスamと、スイッチSW、、と、インバータQlと、スイッチSW9と、インバータQ2と、により形成される。一方または双方のループ内のスイッチが閉成されると、信号は2つのインバータQlおよびQ2を経て伝搬することができ、インバータQ1の入力における、またインバータQ2に出力における信号レベルは、安定する−これがセル内へのデータの記憶され方である。セルは動的状態を記憶する。
出力モード出力モードにおいては、Q2の出力は一方のバスa11またはblへ転送されることができ、そこから、適切なスイッチが制御されて、その出力を1つまたはそれ以上の出力端子(N、S、E、W、など)へ転送することができる。他方のバスb、またはa8は、任意のモードで使用されつる。もしSWoがオフ、すなわち開放、されていれば、インバータQ2の出力は安定している。すなわち、それはスイッチSW0が閉成されるまで変化しえない。インバータのこの出力は、閉成された時のスイッチSW、、を経てバスb11へ、閉成された時のスイッチSW、。を経てバスamへ、閉成された時のスイッチS W e II m lを経て出力contへ、さらに直接端子SDへ、転送されうる。バスb、およびak上の情報は、さらに以下において例によって示されるように、レジスタセルと問題にされる外部バスとの間に接続されたスイッチを制御することによってそのレジスタセルが接続されるそれぞれの外部バスへ転送されつる。
入力モード入力モードにおいては、1つのスイッチSW、、またはSWlがオン、すなわち閉成されている。従って、1端子(N、S、E、W、など)の状態が、局部バスa、またはbRへ転送され、さらにそこから中央内部レジスタr、lへ転送される。
転送コアセル内の任意のレジスタセルからコアセル内の他のレジスタセルへ、端子接続を経て、2位相サイクル中にデータを転送することができる。垂直、水平、または対角線方向における2つのペースレジスタセルのスワップは、3位相サイクル中に可能である。
スイッチSW0は、インバータQlおよび02間の転送が全コアセル内において同時に行なわれるように、主クロックにより直接に、かつレジスタ内の全てのセルにおいて同時にクロックされる。他の諸スイッチは、主クロックから得られる信号によって制御されるが、主クロックの同期内において異なった、適切な位相間隔に置かれる。主クロックは、コアセルの全ての動作に対する基準信号として用いられる。
クロックサイクルは、クロック位相0、a、および/またはbに分割される。位相0は、第1の拡張可能な位相、すなわち中央内部レジスタr、がスタンバイストレージモードにある時−データが安定している時、である。
位相aはバスa8からの移送中に用いられ、位相すはバスb、からの移送中に用いられる。
1方向転送、すなわちレジスタセルから、またはレジスタセルへ、のみの転送は、2位相クロックサイクル中に行なわれる。第1位相0は安定している。2位相クロックサイクルにおいては、位相aまたは位相すは、移送のために用いられる。
2方向転送、すなわちそれぞれの内容を交換するための2レジスタセル間での移送は、3位相クロックサイクル中に行なわれる。位相0は安定している。位相aおよびb中には、移送は異なる方向において行なわれる。
例えば2つの5位相を有する、3位相より多いクロックサイクルも本発明の範囲内にあることに注意すべきである。
スイッチS W、、およびS W、、は常態においては閉成されている。その時、双方の局部バスa11およびす、は、レジスタセルの記憶状態を保持している。内部バスa。
またはす、が、記憶されるべき新しい値の入力のために使用されるべき時には、適切なスイッチSW、、またはS W、、がそれぞれ開放されるべく1liIJIIIJされる。垂直または水平バスなどの外部バスの1つへのスイッチは、そのバス上の情報が内部バスへ転送されるためには十分に長い、短い間隔の開閉成される。
シフト回路網、すなわち諸端子に接続されたスイッチを含む、異なるレジスタセル間の回路網を用いて、レジスタセル内の内容を、北Nまたは南Sまたは西Wまたは東Eへ転送することも可能である。
■方向転送動作の例第16A図は、2つの相隣るベースレジスタセルを示し、データは、送信セルである左方のセルから、受信セルである右方のセルへ転送されるべきものとする。
制御装置6pからの制御信号が、諸スイッチを制御する。第16B図は、異なる位相中における転送により影響される全スイッチの状態を示し、低レベル値は開放されたスイッチを表わし、高レベル値は閉成されたスイッチを表わす。実際の転送は、位相すにおいて起こる。転送は、以下のように行なわれるC以下の諸ステップには、第16A図および第16B図におけると同じ番号が付せられている):0、送信セルおよび受信セルの双方において、回路が安定しており、sw、、sw、。、SW、I、SW、。、5WbIは閉成されており、他のスイッチは全て開放されている(このステップは、全てのスイッチに関連しているので、第16A図にはマークされていない)。この安定モードは、第16B図における位相Oに対応している。
1、第1位相(位相b)のクロック間隔中に、送信セルおよび受信セルの双方におけるスイッチSWoが開放された時、2、送信セルおよび受信セルの双方において、スイ・ツチSW、。が開放され、スイッチSW、。が閉成され、3、送信セルと受信セルとの間のスイッチSWよが閉成され、4、送信セルおよび受信セルの双方において、スイッチSW、、が開放され、5、送信セル内のスイッチSW−1が開放され、受信セル内のスイッチS W 、 +が閉成される。これにより、送信セルの内部レジスタから受信セルの内部レジスタへのデータの伝搬が可能ならしめられる。
6、第2位相(位相O)のクロック間隔中に、送信セルおよび受信セルの双方におけるスイッチSW0が閉成された時、7、送信セルと受信セルとの間のスイッチSW8が開放され、8、受信セルおよび送信セルの双方において、まずスイッチSW、。およびSW、。か閉成され、その後スイッチSW1およびSW、、が閉成される。これにより、上記ステップOで説明された安定モード、すなわち位相0に復帰する。
2方向転送動作の例第17A図は相隣るベースレジスタセルを示しており、2つの別のペースレジスタセル内のデータが2方向転送動作によって交換される。制置装置6pからの制御信号が、諸スイッチを制御する。第17B図は、異なる位相中における転送によって影響される全てのスイッチの状態を示しており、低レベル値は開放されたスイッチを、高レベル値は閉成されたスイッチを表わす。双方のレジスタセルが送信セルおよび受信セルとして働くので、それらを以下においては「セル1」および「セル2」と呼ぶ。セル2からセルlへの、一方の転送は位相aにおいて行なわれ、セルlからセル2への他方向への転送は位相すにおいて行なわれる。以下の諸ステップには、第17A図および第17B図におけると同じ番号が付せられている。転送は以下のように行なわれる:0、双方のセルにおいて、回路は安定しており、SWo、SW、。、SW、、、SW、。、S W、、は閉成されており、他のスイッチは全て開放されている(このステップは、全てのスイッチに関連しているので、第1.7A図にはマークされていない)。この安定モードは、第17B図における位相0に対応している。
1、第1位相(位相a)のクロック間隔中に、セルlおよび2内のスイッチSWoが開放された時、2、セルlおよび2内のスイッチSW、。が閉成され、セルlおよび2内のスイッチSW、。が開放され、3、セル間のスイッチSWtが閉成され、4、セルlおよび2内のスイッチS W、、が開放され、5、セルl内のスイッチS W、、が閉成され、セル2内のスイッチ5Wblが開放される。
これにより、セル2からセルlへのデータの伝搬が可能ならしめられる。
第2位相(位相b)のクロック間隔中の、スイッチSW0がなお開放されている時に、6、セルlおよび2内のスイッチSW、。が開放され、セル1および2内のスイッチSW、。が閉成され、7、セルlおよび2内のスイッチSW、、が開放され、8、セルl内のスイッチSW、Iが開放され、セル2内のスイッチSW、、が閉成される。これにより、セルlからセル2へのデータの伝搬が可能ならしめられる。
9、第3位相(位相0)のクロック間隔中に、セルlおよび2の双方におけるスイッチSW0が閉成された時、10、セル間のスイッチSWzが開放され、11、双方のセル内において、まずスイッチSW、。およびSW、。が閉成され、その後スイッチSW、、およびSW、 lが閉成される。これにより、上記ステップ0で説明された安定モード、すなわち位相0に復帰する。
スイッチSW、。およびSW、。に対する制御信号位相0中の省略解釈により、諸信号はオンに、すなわち諸ゲートは閉成、される。その時、全ての局部バスは、記憶状態を保持している。入力のために用いられるノくスは、Xをaまたはbとして、スイッチSWQおよびスイッチSW0゜に対する制御信号をオフ、すなわち開放、にセットすることにより制御される。入力動作中に、いくつかのバスが、ある端子(E、V、D、Hlなど)により短時間の間短絡されうる。
スイッチSW0への制御信号の下降部分から、スイッチS W x。(Xはaまたはb)への制御信号の下降部分までには、遅延時間が存在する。もしそれが短かければ、問題は起こらない。しかし、もしその時間がmsの領域まで長くなると、バスX* (Xはaまたはb)は、その動的状態を失いうる。
スイッチSW0への制御信号の上昇部分から、スイッチSW、l(Xはaまたはb)への制御信号の上昇部分までには、遅延時間が存在する。もしそれが負になると、インバータQ2からインバータQlまでの局部バスX。
へは、誤った値が伝搬しうる。従って、正の該遅延時間が用いられる。
スイッチSWI 、sw、、SWD 、SW、等に対する制これらのスイッチは常態においてはオフ、すなわち開放されている。その時全ての局部バスは分離されている。
入力または出力のために用いられるバスは、それに接続されている端子スイッチへの制御信号を、該スイッチをオン、すなわち閉成、するようにセットすることにより制御される。この動作中に、いくつかのバスがあるスイッチ(SW、、SWv、5Wl)、SW、、など)により、短時間の間短絡されうる。その後、諸バスは正しい値を得る。
スイッチSW9への制御信号の下降部分から、スイッチSW、(Zは、H,D、N、V%Eなど、すなわちスイッチを備えた内部バスaつおよびす、に接続されている任意の端子)への制御信号の上昇部分までには、遅延時間が存在する。もしそれが負になると、局部バスxII(Xはaまたはb)の値が変化せしめられつる。その時は、レジスタの値がセットされつる。従って、この遅延時間は、正であるべきである。
スイッチswx (Zは、H,D、N、V、EfLど、すなわちスイッチを備えた内部バスamおよびb麓に接続されている任意の端子)への制御信号の上昇部分から、スイッチSWx□への制御信号の下降部分までには、遅延時間が存在する。もしそれが負になると、値は入力まで伝搬しえない。従って、正の該遅延時間が用いられる。
スイッチS W、、への制御信号の上昇部分から、スイッチSW工への制御信号の下降部分までには、遅延時間が存在する。もしそれが負になると、局部バスが変更され、レジスタが誤った値にセットされる可能性がある。従って、正の該遅延時間が用いられる。
スイッチS W 、 +および5WbIに対する制御信号路信号は、位相0中に省略時解釈によりオンされる。
しかし、スイッチSW0への制御信号の上昇部分から、スイッチSW、、およびSW、、に対する制御信号の上昇部分までには、わずかな遅延がな(ではならない。
もしこの遅延が負になると、インバータQ2の入力上の値は、バスXt (xはaまたはb)へ伝搬しえない可能性がある。従って、正の該遅延が用いられる。
コアセルの計算代表的なリスト命令は、■機械サイクル中に行なわれる。
前述のように、コアセルは構造演算を行なう。全てのステップは、コアレジスタにより、それが含有するリスト内の語命令を用いて行なわれる。命令の例は以下の通りである。
length 目標の長さが計算される、map リストのエレメントに対しファンクションが適用される。もしリストが挿入されたリストを含有すれば、命令はこれらの挿入されたリストのエレメントにも適用される。
(命令mapは、以下においてさらに説明される)filter ファンクションが適用され、リストのエレメントをフィルタする。filterは、挿入されたリストがあればそれに対しても適用される。
join 全でのエレメントが、挿入されたリストのエレメント内に再書込みされる。この命令は、挿入されたリストがあればそれに対しても適用される。
transpose 小さいマトリックスがトランスポーズされる。もしそれがリストのエレメントを含有すれば、それらは交換される。挿入されたリストは処理される。(命令transposeは、以下においてさらに説明される)。
コアセルは、★いくつかのレジスタ、好ましくはペースレジスタ内のリジュースされるべき目標を、また、★ある場合、例えば3レベル構造がリジュースされる時には、好ましくは補助レジスタ内の目標のルーツおよびペースレジスタマトリックス内の残余の構造を、記憶する。
コアセル内の一時ストレージにおいては、4つの場合、すなわち、0,1,2、または3レベルのオブジェクトを記憶する場合がある。
簡単な木、すなわち単一の値(0レベルのオブジェクト)は、第1主レジスタ内に記憶される。
ルベルのみを含む木は、主レジスタ内に記憶される。
2レベルを含む木は、主レジスタに水平に記憶された、親であるルーツリストと、ペースレジスタに垂直に記憶された子であるリストと、を有しつる。あるいはその代わりとして、ルーツは補助レジスタに、またその子の1つは主レジスタに記憶されることもできる。制御装置6pは、行なわれるべき実際の演算に基づいて、これらの異なる方式の一方または他方を選択しうる。
3レベルを含む木は、そのルーツリストを補助レジスタの1つに記憶され、またその2レベルの子の1つをペースマトリックスに記憶される。
このように、目標の木のルーツリストは、好ましくは、木の構造のレベルと、行なわれるべき演算とに基づいて、コアセル内の諸レジスタの異なる場所に記憶される。
目標の木のルーツは、unifyなどのりジュース可能な種類のクロジャーである。ファンクションの適用(apply ・・・)においては、第1エレメントは、ファンクションの定義として用いられるクロジャー構造を間接的に指示する命令または識別子であり、他の諸エレメントは、命令/ファンクションの定義に対する引数である。
コアセルストレージの制御コアレジスタ内に記憶される情報は、オブジェクトストレージ4p内の情報から得られる。コアレジスタ内の情報は、以下のようにして記憶される。
ATTRIBUTE平面内におけるストレージ制御ATTRI BUTE平面内のコアレジスタは、オブジェクトストレージバスOBJに接続されている。記憶された状態は、識別子レジスタTD、、補助レジスタFoTからF3tまで、およびペースレジスタS、。からS2゜まで、に記憶された状態から成る。
ATTRI BUTE平面内のコアレジスタセルへの制御ワードは、スイッチSW□、SW、、、。、(ただしiは0と3との間の数)、sw、、、、o 、swc、、、。、S wWl、 bo、SW、、、、、 、および5Wvi、hoと、識別子レジスタID、と、補助レジスタFoTからF3tまでと、主レジスタS0.。からS3.。までと、へのより小さい制御ワードを含む。
制御ワードは、制御装置6pに接続されたいくつかの制御ワイヤを経て転送される。制御ワイヤは、使用されるスイッチの種類により、2相制御対ワイヤまたは単相制御車ワイヤでありうる(第9E図および第9F図参照)。
主レジスタSo、。からSx、oまでの中のそれぞれのセルへの制御ワードは、それぞれのペースレジスタに対する1つの共通部分および個別的諸部分を経て転送される。
共通部分は、コアセルのスイッチSW、。、SW、。、およびSW、(第15図参照)を制御する。しかし、ここでの説明内容は単に例として見られるべきものであること、またいくつか他の実施例が考えられうることに注意すべきである。
HEADおよびNUM平面内におけるストレージ制御平面HEADおよびNUM内のコアレジスタは、オブジェクトストレージバスOBJと、アクセスバスACCと、resバスと、数値ALUバスNUと、に接続されている。記憶された状態は、2つの単一レジスタJDおよびENVと、補助レジスタFOからF3までと、ペースレジスタS1.6からS5.、までと、の記憶された状態から成る。
コアレジスタへの制御ワードは、スイッチSW□、SW、、、、、(ただしiは0と3との間の数)、S W ld、 ha 、S Web、 km 、S W@+111. bes S Wv r、 be、S Wry、 km 、および5wt1.。、SW□。、SW、、、5Wvt1およびSW、sと、単一レジスタIDおよびENVと、補助レジスタFOからF3までと、ペースレジスタS、。からS3.までと、への制御ワードから成る。
制御ワードは、副部装置6pに接続されたいくつかの制御ワイヤを経て転送される。制御ワイヤは、使用されるスイッチの種類により、2相制御対ワイヤまたは単相制御車ワイヤでありうる(第9E図および第9F図)。
それぞれのペースレジスタセルへの制御ワードは、それぞれのペースレジスタに対する1つの共通部分および個別的諸部分を含む。共通部分は、コアセルのスイッチSW、。、SWl。、およびSWo (第8図参照)を制御する。しかし、ここでの説明内容は単に例として見られるべきものであること、またいくつか他の実施例が考えられうることに注意すべきである。
コアレジスタの動作の例第18図から第24図までは、第7図から得られる。
第7図に用いられている参照符号は、第18図から第24図までに対しても適用される。しかし、多くの参照番号は、読みやすくするために省略されている。また、第18図から第24図までの説明においては、レジスタセルの表示は諸子面2pを貫通して延長する全レジスタを意味するものとする。
1、オブジェクトストレージ4pに対するアクセスmpx−mv命令:オブジェクトストレージの動作mpx−mvにより、オブジェクトストレージが読取られ、主レジスタがセットされる。アクセスされたオブジェクトは、第18図に、移送が行なわれる先のレジスタセルに向かう矢印を有する太線によって示されているように、バスvO1vl、v2、v3を経て主レジスタSo、o 、S+、* 、St、++、S3゜へ、バスidを経てレジスタIDへ、またバスenvを経てレジスタENVへ、移送される。同時に、主レジスタ内の古い内容は、オブジェクトストレージ4p内にクロジャーとして記憶される。このようにして、mpx−rlv命令は、現在のコアセルクロジャーを、オブジェクトストレージ内に記憶せしめ、また実行されるべき次のすプジェクトストレージクロジャーを、コアセル内ヘロードする。
fetch命令:第19図および第201Nは、主レジスタの1つの中に記憶された識別子が存在しており、その識別子がその示す情報のために交換されるべき状況を示す。例えばSt、。内に記憶されている識別子(第19図参照)がオブジェクトストレージ4pへ供給され、そのオブジェクトストレージはその識別子とそれが示す内容とを見出し、その内容はバス線VOからv3までの上に供給されて、最終的にはペースレジスタの垂直列、例えばst、からS t、 、までにロードされる(第20図参照)。
この動作は、ペースレジスタS29.内の識別子を、バスhOおよびスイッチid+a、h。を経て垂直バスidへ転送することによって開始される(第19図)。記憶されている値は、任意の他のレジスタからも同様にして転送されつる。
動作は(第201N参照)、オブジェクトストレージ4pからバス線vO1vl、v2、v3上へ供給された値を、本例においてはレジスタSt、・、St、+ s St、x、S、1である適切なレジスタ内へ、それらの値をスイッチSW、、、sw、、、sw、、、SWoおよびバスho。
hl、h2、h3を経て転送して、ロードすることにより続けられる。
オブジェクトストレージの演算であるmakeおよびunify−idは、コアセル内の内容がオブジェクトストレージ内に記憶されるべき時に、使用されうる。
make 命令:動作makeの第1ステツIブにおいては、第20図におけると同様ではあるが逆の方向に、問題となっているレジスタの内容が転送される。この動作はまた、環境レジスタの内容をも転送する。コアセルから供給された情報として記憶されたものと同じ情報を存するオブジェクトを発見するために、連想探索がオブジェクトストレージ内において行なわれる。もしオブジェクトが発見されれば、そのオブジェクトを示す識別子が戻され、もしオブジェクトが発見されなければ、使用されていない識別子が戻される。双方の場合において、識別子は、オブジェクトストレージから、バス線idを使用してコアセル内の識別子レジスタへ転送される。別の方法として、識別子は、影響を受けたレジスタ列内の主レジスタへ転送されることも可能である。このようにして、コアセルの内容と識別子との間の連想が作り出された。
unify−id 命令:動作unify−idは第21図に示されており、レジスタの1つ、例えばSl、。からの識別子を、問題となっているレジスタセルを水平バスhOに接続し、また全SW、、、SW□1.などを経て水平バスhOに接続することによって、全ての垂直バスid%env、vo、vl、v2、v3へ分配する。これは、例えば、ある識別子の存在を探索し、発見されたこの識別子の存在を新しい、リジュースされた簡単な値によって置換することを含む、連想探索および置換、を行なう時に使用されうる動作である。
unffy−idに類似した動作が、第1ステツプにおいてmakeを用いてコアセルの内容に対する一意の識別子を得、第2ステツプにおいてそのコアセルの内容をオブジェクトストレージに接続されたバス線上に供給せしめることによって、オブジェクトストレージをしてその識別子と、それが示す内容とを記憶せしめることも可能である。
2、数値リダクション数値リダクションにおいては、リジュースすべきオブジェクト、すなわち目標は、主レジスタ内に置かれる。
一般に、目標全体がリダクションに参加する。通常、主レジスタS0.。は、異なる命令に対しては異なるビットパターンをなす命令コードを保持する。レジスタS1゜、およびSt、。は、2項演算、すなわち2つのオペランドを存する演算のために使用され、レジスタS1.。は単項演算、すなわち1つのオペランドを有する演算のために使用される。一般に、後続のレジスタはリスト形式で使用され、従ってそれらの内容はりダクション後には左方へ移動せしめられる。
本質的な数値演算は、その後目標のレジスタS1゜、およびS、。の間において行なわれる。数値ALUの主加算器は、これらの2レジスタに接続されている。
他の諸レジスタは、mul、d i v、およびmodのような命令において、補足的目的のために用いられつる。
以下の命令形式が用いられうる。
単項命令レジスタS01.が命令を保持し、レジスタS1.。がオペランドを保持する。
レジスタS3.。およびSl、。は使用されない。数値ALUの結果は、全ての主レジスタへ戻される。非バイブラインの場合には、それはレジスタS1.。内ヘセーブされる。バイブラインの場合には、それは直ちに、補助レジスタ内またはペースレジスタ内ヘセーブされる。
2項命令レジスタS0.。が命令を保持し、レジスタS1.。、Sl、。がオペランドを保持する。レジスタSs、。は使用されない。結果は、全ての主レジスタへ戻される。バイブラインの場合には、それは直ちに、補助レジスタ内またはペースレジスタ内ヘセーブされる。
mum divSmod命令レジスタS0.。が命令を保持し、レジスタSt、。およびS28.がオペランドを保持する。レジスタS8.。は、中間結果を一時記憶するのに用いられうる。最終結果は、レジスタS1゜内ヘセーブされる。
unif)’リダクションunityリダクションは、数値ALUを用いて、レジスタS0゜内の内容を、レジスタS3.。内の内容と比較する。他の主レジスタも、単一化を行なう時に使用されつる。次の動作を評価するために、諸レジスタのHEAD平面内に記憶されているタグワードが、比較の結果と共に用いられる。
命令mul、div、およびmodは、完全に数値演算装置内において、それらのインナループ(1nnerloop)を行なう。計算された中間値は、数値演算装置と、コアセル内の主レジスタとの間のワイヤ上、すなわちNUババス上、動的に記憶されつる。
3、構造のりダクション構造のりダクションに際しては、リジュースすべきオブジェクト、すなわち目標は、主レジスタ内に置かれる。
一般に、いくらかの、または全てのペースレジスタがリダクションに参加する。
通常は、主レジスタS0.。が、異なる命令に対しては異なるビットパターンをなす命令コードを保持する。
m a p命令は、ファンクシジンfと、引数としてのリスト(e+ 、・・・、e、)とを有し、そのファンクションをそのリストの全エレメントに適用する。この命令は、全てのファンクション適用の結果であるリスト(fel、・・・、fe、)を戻す。ただし、fe+はfをelに適用した結果を表わす。
マツピング命令フォーマット:(map f 1ist)命令mapは、補助レジスタセル内にロードされる。
使用すべきファンクションは、補助レジスタセル内にロードされる。リストは、主レジスタS、9.からSl、。までにロードされる。第22a図に示されているように、主レジスタ内に記憶されたエレメントは、ペースレジスタマトリックスにおいて2段階アップして転送される。
すなわち、XをOと3との間の数として、レジスタS8.。内の内容は、レジスタS□、、へ転送される。この転送は、垂直バス線vOからv3までを用いて行なわれる。次に、第22b図に示されているように、補助レジスタFOからFlまでの内容が、水平にペースレジスタへ同報通信される。すなわち、FOの内容はS6.。からS5,0までへコピーされ、PIの内容はSs、IからSs Iまでへコピーされる。もしエレメントが(リストでない)単純な値であれば、それが置かれているレジスタセル、例えばSl、tの内容と、その下のレジスタセル、例えばSl、+の内容とは、1段階下方ヘシフトされる。
ここで、適用されるべきファンクションは主レジスタセル、例えばSl、。内に存在しており、そのファンクションを適用されるべきエレメントは、いまこの主レジスタセルの上のレジスタセル、例えば81.1内に存在している。もしエレメントがリストであれば、レジスタのその列においてシフトは行なわれない。第22c図においては、e+、eb、およびe、は単純な値を表わし、またe4は挿入されたリストを表わしているものと仮定されている。その場合、ペースレジスタマトリックス内のそれぞれの列は、オブジェクトストレージ内にクロジャーとして記憶される。その後、これらの記憶されたクロジャーは、続いての処理のために、コアセル内ヘコードされる。もし記憶されたクロジャーが単純な値を含有していたとすれば、それはコアセル内に通常のようにコードされる。すなわち、第22d図に示されているように、fはSo、。内に記憶され、eiはS、。
内に記憶される。
一方、もし記憶されたクロジャーが挿入されたリストを含有していたとすれば、それは、前述のように、第22a図に示されているようにロードされるが、その際、elはe4によって表わされるリスト内の第1エレメントとなり、e、はe、内の第2エレメントとなり、等となる。これは、map命令が、挿入された諸リストに対して再帰的に作用することを可能ならしめる。
このようにして、2レベル構造を有する命令map(map、 f、 (@!IF −−t ”H))は、((f−@!1)、 、・p (’、%))に書面され、これは実行後にはルベル構造(fed、 +、、 fen)に書面される。ただし、feIは、fをe、に対して適用した時の結果を表わす。
3(またはそれ以上)レベル構造を有する命令map(”P# ft Par(”lI”z (”ky −・z’x)t ”z tH))(ただし、(ek、・・・、e、)は挿入されたリスト)は、中間ステップとしてPar((fr ”l)# 0.、(”Py L (”)C# ”t%H)b ”t CL @H))に書面され、さらにその後par((L @11)、−t ((L ”k)y−y<ft %))#−t (ft an))に書面されて、これは実行後、2レベル構造par(fed、 −、t (fek、 、、、 f〜)、 、−t f@n)に書面される。、ただし、feIは、fをelに対して適用した時の結果を表わし、(f eb 、・・・、fe、)は挿入されたリストである。
このようにして、ファンクションfは、引数リスト内の全エレメントに対し、再帰的に適用される。
コアセルがどのようにmap命令を再構成し、かつ実行するかの例を以下に説明する。記述を短縮するために、「レジスタ」の代わりに省略形regを、「識別子」の代わりに1dentを、「オブジェクトストレージ」のであり、ただしfは、f (x)=abs (x)+1として定義される。機械識別子を用いた機械表示は、idl : (!aap f 1d2)id2 K (−1−21d3)id3 g (−7−8)でありうる。ただし、1dent idlは、(mapf 1d2)構造などを示す。
以下において、iは0と3との間の数である。以下の諸ステップが行なわれる。
ステップ1:mapがreg FO内に、fがregFl内に、また1dent id2がreg SlI内に記憶される。
ステップ2:1dent id2が展開される。すなわち、reg sO,@が−1を含有し、reg S、、。
が−2を含有し、またreg s2.Gが1dentid3を含有する。
ステップ3:reg S+、oの内容がreg S+、tへ転送される。不使用とマークされたレジスタは影響を受けない。
ステップ4:mapおよびfが水平に同報通信される。
すなわち、reg S+、+がfを含有し、regS6.。がmapを含有する。不使用とマークされたレジスタは影響を受けない。
ステップS:S、、を内に単純な値を有する列は1段階下方へ圧縮される。すなわち、reg So、+が−1を含有し、reg So、sがfを含有し、reg sl、1が−2を含有し、reg S+、。がfを含有し、第3列はタッチされない。
ステップ6:ベースレジスタマトリックス内の全ての列がストレージ内に、idl = (id6 id71d8)id6 : (f −1)idl : (f −2)idl : (map f 1d3)として(再)記憶される。
ステップ7:1dent id8によって示されてしするクロジャーが、fはreg s・、。内に、−1はreg Sr、。内に、というように主レジスタ内にロードされる。
ステップ8:前記ファンクション、すなわちf (x)=abs (X)+1が、引数に適用されて結果2を生じこれがreg Sr、s内に記憶される。
ステップ9:1dent id6に対する連想探索がストレージ内において行なわれ、1dent id6の全ての存在が2によって置換される:idl : (2id) 1d8)id7 ! (f −2)id8 ! (鮎p f 1d3)ステップ10:1dent id7に対してステップ7からステップ9までが行なわれ、結果3を生じる。ストレージは:idl : (231d8)id8 : (貼p f 1d3)となる。
ステップ11:1dent id8に対してステップIからステップ6までが行なわれ、その結果ペースマトリックス列の2つがストレージ内に記憶される:ial t (231d8)id8 S (id91dlo)id9 : (f −7)idlo z (f −8)ステップ12:1dent id9および1dlOに3 対してステップ7からステップ9までが行なわれ、それ1 ぞれ結果8および9を生じる。ストレージは:idl : (231d8)Lda t (89)となる。これは、(23(89))と読取られ、ファンクションfが引数リスト内の全エレメントに適用されたことになる。
上述の諸ステップは、コアセルにより、異なったさらに効率的な方法で行なわれうろことに注意すべきである。
例えば、オブジェクトストレージ内に中間結果を記憶せしめる代りに、適切な場合には、コアセル内においてさらにリダクシタン/実行を行なうことができる。
transposeフォーマット:(transpose 1ist)transpose命令は、補助レジスタの1つ、例えばFOにロードされ、リスト引数、例えば諸リストのリストは、ベーズレジスタマトリックスにロードされる(第23図参照)。ペースレジスタマトリックスの内容はトランスポーズされる。このようにして、3レベル構造(traruipose。
を有する命令transposeは、その結果が2レベル構造に書き直されるように実行される。
説明用の例:リスト構造((1234)。
(5678)。
(9101112)。
において、第1リスト、すなわち(1234)は、第1Mのペースレジスタ、すなわちペースレジスタS、、。からS o、 zまでに記憶され、第2リスト、すゎなち(5678)は、第2列のペースレジスタ、すなわちペースレジスタS+、。からS14までに記憶されており、等、の前記リスト構造は、((15913)。
(261014)。
(3)1115)。
にトランスポーズされる。ただし、第1リスト、すなわち(15913)は、第1列のペースレジスタ、すわなちペースレジスタS0.。からS01までに記憶され、等となる。
s w a pフォーマット: (swap m 11st)s w a p命令は、3レベル構造(swapm ((”1.l# 0.)’において、iおよびjがペースレジスタマトリックス内におけるエレメントの位置を示すものとしてエレメントe+、□を育する諸リストのリストを含む、前記3レベル構造を有する命令swapが、エレメント(e+s、I、・・・)がエレメント(ea*1.l、・・・)と場所を代えた2重構造に書画されるよう、実行される。
skipフォーマット: (skip m 1ist)skip命令は、3レベル構造(sskip!11 ((81,I、−)tにおいて、iおよびjがペースレジスタ内におけるエレメントの位置を示すものとしてエレメントe1.jを有する諸リストのリストを含む、前記3レベル構造を有する命令5kipが、エレメント(e wa、 r 、・・・)の削除された2重構造に書画されるよう、実行される。
4、リストの抽出リストを含有する目標は、主レジスタ内に置かれる。
もしリストが、挿入されたリストであるエレメントを含有すれば、これらの挿入されたリストは、補助レジスタに垂直に記憶される。
expand−1ist動作は、1サイクル中に行なわれつる。ペースレジスタの内容は、主レジスタの内容を除外して、対角線的に右下方へ1段階シフトされ、主レジスタの内容は垂直バスへ転送されて、その列内の最上部のペースレジスタに挿入される(第24図参照)。
expand−1i s tを繰返して用いれば、主レジスタセルをデータによって「満たす」ことができる。
ここに説明されたコアセルおよびレジスタセルの設計は、本発明の実施例を構成するのであるが、本発明はそれらの正確な設計に制限されるものではないこと、および本発明の範囲から逸脱することなく、そこには変更が行なわれうること、を理解すべきである。
コアセルの他の実施例第25図は、コアセルのもう1つの実施例を示す。第7図におけると同じ参照符号が、同じコアセルエレメントに対して用いられている。ts7図におけると異なる接続を有するコアセルエレメントには′のマークが付けられている。好ましい実施例である第7図の実施例と、第25図に示されている実施例との閏の主な相違は、ペースレジスタセルS ’ Ll 、S’ +、e 、S’ *。、およびS′、1が、スイッチをもたないワイヤres’に接続可能であることである。さらに、バスJIIC,,およびcrが省略されている。さらに、yを0と3との間の数とするとき、ペースレジスタセルs0.2のW(西)端子は、ペースレジスタセルS8.アのE(東)端子に接続されておらず、その代りに、これらの端子は、f(偽)信号を供給される。コアセル内部の接続は、ある命令に対してはいくぶん異なるように行なわれうるが、それはファンクション的な相違ではなく、コアレジスタ内のどのスイッチが制御されるべきかの相違に過ぎない。
レジスタセル間の接続もまた、わずかに異なっていることが示されるが、これもまたそれぞれのレジスタセルの内部のどの内部スイッチがliIImされるべきかの問題である。
第26図は、セル内において制御されるべきスイッチは、異なる方法で配置されうること、しかし、セルはなお同じファンクションを有しうること、の事実の例を与えるための、コアレジスタセルの第2実施例を示す。第8図におけると同じ参照符号が、同じセルエレメントに対しては用いられている。第8図におけると異なる接続を育するエレメントには、′のマークが付けられている。
第8図および第26図に示されている両実施例間の主な相違は、第26図においては端子CおよびスイッチSWcが省略され、かつ端子VおよびHがそれぞれ1つのスイッチしかもっていないことと、スイッチをもっている端子り、L=、およびDが、スイッチをもっている端子DaおよびDbの代わりに用いられていることと、である。
以上においては、本発明を特定の実施例に関して説明してきたが、本技術分野に習熟している者ならば、本発明の真の精神および範囲から逸脱することなく、さまざまな変更が可能であり、またその諸エレメントに対し等価のものを代用しうることを理解しつるはずである。さらに、本発明の本質的教示から逸脱することなく改変を行なうことも可能である。
FIG、4BF旧、4CFIG、/+DF旧、4E FIG、4FFI3.4GFIG、5CFIG、5DFIG、6AFIG、6BDb N総称レジスタセルか1Mおよび(メD平面)FIG、9A FIG、98 FIG、9C送1セル 受信セルベースレジスタセル1 ベースレジスタセル2送信セ、、 受信セルFIG、18 FIG、19要 約 書構造演算処理の方法および演算装置が説明される。データワードがいくつかのレジスタに記憶され、それぞれのデータワードはマーク部分および情報部分を有する。
マーク部分は、問題となっているレジスタが使用されているか否かを示すマークを含む。データワードは、リスト内に配置される。それぞれのリストは、所定数のレジスタに記憶される。レジスタに記憶されているリスト内のそれぞれのワードのマーク部分は、使用されているマークを有するとき、リストの1つの少な(とも一部分が実際のレジスタに記憶されていることを示す。一部を該実際のレジスタに記憶されているリストは、それがとのような種類のリストであるか、またレジスタ内のリストの配列のどこからリスト間の関係が明らかになるのか、についてのリスト命令を含む。レジスタは、レジスタに記憶されているリストに属するリスト命令を用い、リストをレジスタ間において再配列し、かつリスト命令に従ってレジスタの内容を入力/出力する、制御装置により制御される。
国際調査報告++11er+++++le+u1^−111,,1,−11−PCT/SE 91100514国際調査報告PCT/SE 91100514