JPS633336B2 - - Google Patents

Info

Publication number
JPS633336B2
JPS633336B2 JP58502379A JP50237983A JPS633336B2 JP S633336 B2 JPS633336 B2 JP S633336B2 JP 58502379 A JP58502379 A JP 58502379A JP 50237983 A JP50237983 A JP 50237983A JP S633336 B2 JPS633336 B2 JP S633336B2
Authority
JP
Japan
Prior art keywords
queue
memory
processing
instruction
code
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
Application number
JP58502379A
Other languages
English (en)
Other versions
JPS59501132A (ja
Inventor
Arufuretsudo Jon Desanteisu
Jozefu Shiigufuriido Shibingaa
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.)
YUNISHISU CORP
Original Assignee
YUNISHISU 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 YUNISHISU CORP filed Critical YUNISHISU CORP
Priority claimed from PCT/US1983/000894 external-priority patent/WO1983004442A1/en
Publication of JPS59501132A publication Critical patent/JPS59501132A/ja
Publication of JPS633336B2 publication Critical patent/JPS633336B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Description

請求の範囲 1 ローカルメモリおよび主メモリを含むプロセ
サを有し、シーケンシヤルに与えられるオブジエ
クトコード列を処理するためのデータ処理システ
ムであつて、 前記オブジエクトコードをシーケンシヤルに受
けて、受けたオブジエクトコードに含まれるオペ
レータがその前の演算結果を必要としない論理的
非従属を示すときを検出し、かつ検出された論理
的に非従属なオペレータとそれに続く論理的に非
従属のオペレータとからなるストリングを論理的
に非従属な待ち行列にする待ち行列形成手段と、 前記待ち行列形成手段から論理的に非従属な待
ち行列に含まれるオペレータを受け、受けたオペ
レータを自身の内容と比較し、この受けたオペレ
ータに対応する主メモリアドレスが自身の内容に
含まれていない場合にはその主メモリアドレスに
対し記号名を現わすコードを割当てて記憶し、か
つそのアドレスを前記主メモリに伝送する連想メ
モリ手段とを備え、前記連想メモリ手段は予めオ
ペレータに対応する主メモリアドレスを記憶しか
つ予め記憶した主メモリアドレスに対応して記号
名コードを記憶しており、 前記連想メモリ手段に結合され、前記連想メモ
リ手段から前記記号名コードを受けてそれにロー
カルメモリアドレスを割当てかつ前記記号名コー
ドの待ち行列を形成するテーブルルツクアツプ手
段を備え、 前記連想メモリ手段は、受けたオペレータに対
応する主メモリアドレスが既に前記主メモリに記
憶されている場合には受けたオペレータに対して
予め割当てられている記号名コードを前記テーブ
ルルツクアツプ手段に伝送し、 前記テーブルルツクアツプ手段は、前記待ち行
成形成手段から前記論理的に非従属な待ち行列を
受けてそれに対し、対応するローカルメモリアド
レスを付けるようにされており、 前記連想メモリ手段からの主メモリアドレスと
前記テーブルルツクアツプ手段からのローカルメ
モリアドレスとを受けて、受けた主メモリアドレ
スが指定する主メモリ内容を、受けたローカルメ
モリアドレスが指定するローカルメモリの記憶位
置へ転送する手段と、 前記テーブルルツクアツプ手段に結合され、前
記論理的に非従属の待ち行列および対応するロー
カルメモリアドレスを記憶するジヨブ待ち行列手
段と、 前記記号名コードによつて前記テーブルルツク
アツプ手段にアドレスし、対応する待ち行列およ
びローカルメモリアドレスを前記ジヨブ待ち行列
手段へ転送する手段と、 各々が前記ローカルメモリに対応して設けられ
かつ前記ジヨブ待ち行列に結合されて対応する論
理的に非従属の待ち行列およびローカルメモリア
ドレスを受けて、複数の論理的に非従属の待ち行
列を同時に並行して実行する複数個の処理装置を
備える、データ処理システム。 2 ローカルメモリと主メモリと連想メモリ手段
とテーブルルツクアツプ手段と待ち行列形成手段
とを含むプロセサを有するデータ処理システムに
おけるデータ処理方法であつて、 シーケンシヤルに与えられるオブジエクトコー
ドを受け、前の演算結果を必要としない論理的に
非従属なオペレータを検出し、この論理的に非従
属なオペレータとそれに続く論理的に従属のオペ
レータとからなるストリングを論理的に非従属な
待ち行列にし、 各待ち行列に記号名を割り当て、 前記論理的に非従属な待ち行列のオペレータを
前記連想メモリ手段で受け、受けたオペレータに
対応する主メモリアドレスが前記連想メモリ手段
に存在しない場合にはその主メモリアドレスに記
号名を割り当て、受けた主メモリアドレスに従つ
て主メモリをアドレスするとともに、オペレータ
およびそれに割当てられた記号名とともに前記テ
ーブルルツクアツプ手段へ転送し、受けた主メモ
リアドレスが既に前記連想メモリ内に存在する場
合には予め割り当てられた記号名を対応するオペ
レータとともに前記テーブルルツクアツプ手段へ
転送し、 受けた記号名コードにローカルメモリアドレス
を割当てるとともに、このローカルメモリアドレ
スに従つて、主メモリから読出された内容を対応
するローカルメモリの記憶位置へ転送し、 受けた記号名コードの待ち行列を形成するとと
もに対応するローカルメモリアドレスを記憶し、 前記論理的に非従属の待ち行列に付された記号
名コードによつてアドレス指定して対応するロー
カルメモリアドレスおよびオペレータを読出して
ジヨブ待ち行列を形成し、 形成されたジヨブ待ち行列を受けて論理的に非
従属の待ち行列を同時並行処理する、データ処理
方法。 関連米国特許 本願と直接または間接に関連する米国特許出願
は以下のとおりである。 1982年6月8日にAlfred J.De Santis等によつ
て出願された「多重処理エレメントのための従属
自由コードを発生する機構」という名称の出願番
号第386339号(特表昭59−501133号)。 1982年6月8日にAlfred J.De Santisによつて
出願された「従属自由コードを用いるための同時
処理エレメント」という名称の出願番号第386336
号(米国特許第4466061号、特表昭59−501131
号)。 発明の背景 発明の分野 この発明は、従属自由コードを発生するための
機構に関し、より特定的には複数の同時処理エレ
メントを用いるためのそのような機構に関する。 先行技術の説明 今日でもなほとんどのコンピユータは、本質的
に順次的である命令言語によつて駆動されまたは
そのような命令言語を実行するVon Neumanタ
イプのものである。さらに、そのような順次的な
言語は、個々の命令の間に多くの従属性を含み、
それによつて個々の命令は順序を無視して実行さ
れることはできない。たとえば以下のようなシー
ケンスを考察する。 C:=Fn(A,B) D:=Fn+i(C,E) この2つの関数FnおよびFn+iは、関数Fnの
結果が次の関数Fn+iに対する入力として用い
られるので、論理的な従属性を有している。 さらに、順次言語の欠点は、シーケンスまたは
ループが繰返されるときにメモリ取出しおよびコ
ード処理に冗長性が存在するということであり、
もしそれが改良されるならば、プロセツサの処理
高は増大されるであろう。 処理システムの処理高を増大させる1つの方法
は、複数のプロセツサを多重処理モードで用いる
ことである。しかしながら、個々のプロセツサは
なお命令を順次的に実行しなければならず、唯一
の同時処理は、個々のプロセツサがプログラムの
別々のセグメントを実行しているときかまたは全
く別のプログラムを実行しているときにのみ存在
する。そのような多重処理システムは、たとえ
ば、Mott等の米国特許第3319226号および
Anderson等の米国特許第3419849号に開示されて
いる。 処理高を増大させるさらに他の試みは、命令実
行の種々の副関数がオーバラツプするパイプライ
ニングを採用することである。これらのステツプ
を一連の命令とオーバラツプさせることによつ
て、命令実行は各クロツク時間行なわれることが
でき、それによつてプロセツサの処理高を増大さ
せる。 処理高を増大させるためのこれらのすべての方
法は、上述したような命令間の論理的従属性のゆ
えに、順次的な命令実行のために設計されてい
る。論理的な従属性のため、種々の命令が互いに
従属性なく実行されて一群のまたは多数の処理エ
レメントによる処理を容易に適合させる真の同時
処理は達成されることができない。 応用言語は、各ステートメントが本質的に互い
に無関係であり、したがつてそのような応用ステ
ートメントを縮小するように設計された処理エレ
メントの回路網によつて同時に実現されることが
できるという点において、命令言語とは異なつて
いる。そのような応用言語プロセツサの例は、
Bolton等の米国特許出願第281064号(米国特許
第4447875号、特開昭58−8358号)および
Hagenmaier等の米国特許出願第281065号(特開
昭58−8359号)において与えられている。これら
の両出願は、1981年7月7日に出願され、本願の
譲受人に譲渡された。そのような応用言語は、そ
れらが設計によつてVon Neuman的意味におけ
る順次的でないという点において、命令言語とは
異なつている。しかしながら、今日用いられるほ
とんどのプログラムライブラリは、命令言語で書
かれており、またそれらのライブラリを用いるべ
きデータ処理システムの更新またはさらに別の世
代は、命令言語を実行するようにされなければな
らない。 処理高が増大され得る1つの方法は、前の処理
の結果に依存しないオブジエクトコードのセグメ
ントを認識し、それらのセグメントを複数の処理
エレメントによつて同時に処理され得る非従属シ
ーケンスまたは待ち行列に形成することである。
このことはもちろん、オペランドがメモリに存在
するときのそのもとの値を破壊することなく処理
がオペランドに対して実行され得るといつた方法
のオペランドの取扱いを必要とする。異なつた記
号名が、この目的のために任意のデータアイテム
を参照するのに指定され得る。コードまたは記号
のそのような待ち行列の配列は、処理装置による
同時処理をさらに適合させる。 この発明の目的は、従属自由命令コードを発生
するための改良された機構を提供することであ
る。 この発明の他の目的は、多重処理エレメントに
よる実行のため従属自由命令コードを提供するこ
とである。この発明のさらに他の目的は、従属自
由命令コードを複数の処理エレメントに同時的態
様で与えるための改良された機構を提供すること
である。 この発明のさらに他の目的は、冗長なメモリ取
出しがなく、かつそのコードが一連のそのような
コードの処理のために再処理されなくてもよい特
性である命令コードを発生するための機構を提供
することである。 発明の概要 上述した目的を達成するために、この発明は、
オブジエクトコードのストリングを受けそれらを
高レベルのタスクに形成し、論理的に非従属であ
るそのようなタスクのシーケンスを決定し、それ
によつてそれらが別々に実行されるようにする、
データプロセツサのためのキヤツシユ機構に向け
られている。このキヤツシユ機構は、種々のタス
クによつて必要とされるすべてのメモリアクセス
を行ない、かつこれらのタスクを、種々のデータ
アイテムがストアされなかつたローカルメモリに
対する対応するポインタまたはリフアレンスとと
もにストアする。このキヤツシユ機構は、記号翻
訳テーブルを利用し、そこではタスクは、ローカ
ルメモリに対する種々のリフアレンスまたはポイ
ンタを表わす記号とともに待ち行列の態様でスト
アされる。この方法において、種々のデータアイ
テムは別々のタスクに用いるための別々の記号ま
たは記号名を割当てられることができ、したがつ
て種々のタスク間の依存性を限定しかつデータ変
更を制御する。 この発明の特徴は、一群の処理エレメントに対
するキヤツシユ機構を与えることであり、そのキ
ヤツシユ機構は順次的なオブジエクトコードのス
トリングをタスクの持ち行列に形成し、各待ち行
列は他のものとは論理的に非従属である。
【図面の簡単な説明】
この発明の上述の目的およびその他の目的、効
果および特徴は、図面を参照して行なう以下の詳
細な説明から一層明らかとなろう。 第1図は、この発明が設計されるためのオブジ
エクトコードのストリングおよびそのオブジエク
トコードから形成される対応する論理的非従属待
ち行列である。 第2図は、この発明によるシステムの概略ブロ
ツク図である。 第3図は、この発明により形成される待ち行列
のフオーマツトを示す。 第4図は、この発明に利用される記号翻訳テー
ブルモジユールの概略ブロツク図である。 第5図は、この発明に用いられる処理エレメン
トの概略ブロツク図である。 第6図は、この発明を示すタイミング図であ
る。 発明の概略説明 上述の目的、効果および特徴を達成するため
に、この発明は3つの異なつた見地、すなわち多
重処理エレメントによる改良されたコード処理、
リフアレンス処理および並列的実行を有する。コ
ード処理において、この発明はまず連結によつて
命令ストリングを予備処理し、一連の連結された
命令の間の関係を調べて、それらの命令を互いに
つないで従属命令の待ち行列を形成する。連結さ
れた命令が互いにつながれるべきかどうかを決定
するために用いられる機構は、続く連結された命
令に対する出力を与える1つの連結された命令へ
の従属である。一旦非従属性が位置決めされる
と、待ち行列が形成される。一旦待ち行列が形成
されると、この発明による機構はその全待ち行列
を1つのステツプで処理することによつて効果的
である。連結された命令を通常的に再処理するた
め数サイクルを必要とするのが、今では1サイク
ルでなされ、また待ち行列は一連のシーケンスの
実行に対し再発生される必要がない。 さらに、コードの処理の間、前に参照されかつ
処理エレメントに対しローカルであるオペランド
リフアレンスは認識され得る。このことは各リフ
アレンスを受けかつそのアイテムがプロセツサの
ローカルメモリにあるかどうかをみるために翻訳
テーブルをスキヤンすることによつて達成され
る。もしリフアレンスがプロセツサのローカルメ
モリに常駐しなければ、この発明はそのリフアレ
ンスに記号を割当て、任意の待ち行列に対応する
個々の記号は1つの処理エレメントに対する後続
の転送のためそこに付加される。一旦対応する待
ち行列が形成されると、それらは複数の処理エレ
メントによつて同時に実行されることができる。 今日の処理システムの設計において、スタツク
配向プロセツサを用いる傾向が多く、そこにおい
ては、プツシユダウンスタツク、または先入れ後
出しスタツクが与えられて、特定の高レベルプロ
グラム言語によつて用いられる再帰的手順および
ネステイツド処理を適合させる。このようなスタ
ツク配向プロセツサが与えられると、親制御プロ
グラムおよび処理システムの一部を形成する他の
ルーチンは、アルゴル60のような本質的に再帰
的である特定の高レベル言語で書かれることがで
きる。この形式の特定のプロセツサモジユール
は、Barton等の特許第3461423号、3546677号、
および3548384号に開示されている。 スタツク機構の機能、先入れ後出し機構は、命
令および関連のパラメータを、特定の高レベル言
語のネストされた構造を反射する方法で操作する
ことである。そのようなスタツクは主メモリに概
念的に常駐し、プロセツサのスタツク機構はスタ
ツク内のトツプデータアイテムに対するリフアレ
ンスを含むようにされている。この方法におい
て、データアイテムの多くの種々のスタツクはメ
モリ内に常駐し、プロセルツサはそれらをプロセ
ツサ内に存在するスタツクレジスタのトツプに対
するアドレスに従つてアクセスし、種々のスタツ
クはそのレジスタの内容の変化によつて別々のと
きアクセスされることができる。 もしプロセツサがそのようなスタツク機構を与
えられなければ、プロセツサは再帰タイプの言語
を、その一般目的のレジスタをそれらがハードウ
エアスタツク機構であるにもかかわらずアドレス
することによつて実行する。 この発明の好ましい実施例は高レベル再帰的言
語で書かれたプログラムを実行するためのそのよ
うなスタツク配向プロセツサに向けられている
が、この発明の内容は再帰的なものとは別の高レ
ベル言語プログラムの形式を実行する設計された
他の形式のプロセツサにも用いることができる。 一旦プログラムがこの高レベル言語で書かれる
と、それはプロセツサのコンパイラによつてオブ
ジエクトコードまたは機械言語コードのストリン
グにコンパイラされ、その形式は特定のプロセツ
サの設計に従つて設計されならびに制御される。
上述したように、今日設計されるほとんどのプロ
セツサはなおVon Neumanタイプのものであり、
それは本来的に順次的でありかつ多くの論理的従
属性を含む。 この発明が「デコンパイル」された高レベル言
語コードの形式で従属自由コードをいかに与える
かということを一般的に示すために、ここで第1
図を参照する。第1図の左欄は、C[I,J]:A
=[I,J]+B[I,J]の計算のための機械言
語コードのストリングを表わす。この計算は多く
のアドレスに対するものであるので、第1図の左
端に示された機械言語コードのストリングはルー
プの一連のシーケンスまたはシリーズにおいて実
行される。 このコードのストリングは4つのコードのグル
ープまたはサブセツトに分割され、その各々のグ
ループは第1図の中央部分のブロツク図によつて
示されるように他のものと大部分論理的に非従属
である。一般的にこの発明の機構は、次の処理が
前の処理またはスイアされた処理と非従属である
とき、論理的に非従属のストリングの端部を決定
する。 この発明において、機構は、第1図の右欄に示
されるように、値呼出しまたはメモリ取出しを実
行しかつオペレータの待ち行列またはデータアイ
テム(またはデータアイテムに対するローカルア
ドレス)を形成する。これらのオペレータおよび
そのデータアイテムは互いに連結され、以下に説
明する方法で処理エレメントに転送され得る。こ
のような連結された命令は、以後タスクとして参
照される。 第1図の例において、4つの別々の待ち行列は
従属連結命令の論理的に非従属なグループであ
り、以下に説明するように別々の処理エレメント
によつて同時に実行され得る。第1図の左欄にお
けるコードのストリングはループのシーケンスに
おいて実行されるべきであるので、第1図の右欄
における新しく発生された待ち行列は再発生され
る必要はない。各一連のループにとつて必要なこ
とは、新たな値およびアレイアイテムがメモリか
ら取出されるということである。また、新たなポ
インタ値は、ストアされる変数に割当てられなけ
ればならない。
【発明の詳細な説明】
この発明によるプロセツサシステムは第2図に
示されており、キヤツシユ機構10はオペレータ
の個々の待ち行列および複数の小さい処理エレメ
ント11a,bおよびcに対するデータリフアレ
ンス、ならびに待ち行列処理エレメント13aを
供給するための機構であり、それらの各々はそれ
自身のローカルメモリ12a,bおよびcならび
にローカルメモリ13bにそれぞれ与えられる。
キヤツシユ機構10は、主メモリ(図示せず)と
直接に通信し、個々の処理エレメントはまた直接
ストレージモジユール14によつて主メモリと通
信する。 機構10は4つのユニツトから構成されてお
り、その4つのユニツトは待ち行列タスクモジユ
ール10a、命令リフアレンスモジユール10
b、記号翻訳モジユール10c、およびジヨブ待
ち行列10dを含む。ここで、これらの個々のユ
ニツトの機能を概略的に説明する。オブジエクト
コードまたは機械言語コードの個々のストリング
は待機タスクモジユール10aによつてメモリか
ら受取られ、待機タスクモジユール10aは、各
命令を直列的に受けてそれらをタスクの待ち行列
にアセンブルするバツフアまたはキヤツシユメモ
リであり、タスクの待ち行列の長さは一連の連結
されたキヤラクタの間の論理的依存性による。待
機タスクモジユール10aは、命令のつながれた
グループが以前の計算の結果を必要としないとき
を決定するのに充分なデコード回路を含む。つな
がれたタスクのそのような待ち行列がアセンブル
されてしまうと、そのオペランドリフアレンスは
命令リフアレンスモジユール10bに転送され、
命令リフアレンスモジユール10bは個々の命令
および割当記号によつて要求される任意のメモリ
取出しを実行する。待機タスクモジユール10a
はまた、記号翻訳モジユール10cに待ち行列番
号を割当てる。 命令リフアレンスモジユール10bは絶対メモ
リアドレスが論理的に保持されているかどうかを
決定する連想メモリであり、もし保持されていな
ければ命令基準モジユール10bはそのアドレス
を主メモリに送り、そのアドレスをストアし、そ
こに記号を割当てることによつてそのメモリアク
セスを行なう。この連想メモリは次に、記号翻訳
モジユール10cに対応するタスクとともにその
記号を転送する。記号翻訳モジユール10cはそ
の記号に対しポインタ(ローカルメモリアドレ
ス)を割当て、そのポインタを主メモリに転送
し、それによつて主メモリはローカルメモリ内に
データアイテムをストアすることができる。オブ
ジエクトコードのストリングの最初の実行の間、
一連の命令に対する待ち行列は記号翻訳モジユー
ル10cにおいて形成されている。これらの待ち
行列が形成される一方、個々のタスクおよびポイ
ンタはジヨブ待ち行列10dに転送される。 記号翻訳モジユール10cは、待機タスクモジ
ユール10aによつて参照され得る種々の待ち行
列記憶位置を有するテーブルルツアツプメモリで
ある。これらの記憶位置は、処理エレメントのロ
ーカルメモリに保持されたつながれた命令および
アイテムの記号のリストを含む。各待ち行列が読
出されるとき、待ち行列に対する記号は、以下に
詳細に説明するように、記号によつて参照される
アイテムの実際の記憶位置に対するポインタを含
むルツクアツプテーブルに対する読出しアドレス
として用いられる。第1図のオブジエクトコード
ストリングの最初の処理の終わりに、ジヨブ待ち
行列10eは個々の作り出された待ち行列を含
み、その作り出された待ち行列はタスクおよびポ
インタによつて同時実行のため各処理エレメント
11a,11b、および11cに直列的に送られ
得る。一方、実行のため必要とされる個々のデー
タアイテムは主メモリから取出されてローカルメ
モリ12a,12bおよび12cの適当な記憶位
置でストアされており、その記憶位置はジヨブ待
ち行列10dにおけるポインタによつてアクセス
される。 オブジエクトコードの最初のループまたは実行
の完了により、すべてのタスク処理が完了されて
しまうまで記号翻訳モジユール10cからジヨブ
待ち行列10dへ以前に作り出された待ち行列を
供給することによつて、一連のループが実行され
得る。 第2図のジヨブ待ち行列10dに待ち行列が常
駐するときのそのフオーマツトは第3図に示され
ている。左から右へ読出される各フイールドは、
乗算命令、加算命令、減算命令、およびI,Jお
よびCフイールドに対するポインタが続くインデ
ツクス命令である。これらは第1図における第1
の待ち行列(Q0)に対応し、そこでは8ビツト
リテラルは各乗算および加算命令の一部となる。 このようにして形成された待ち行列は、将来の
実行のため命令を保持するのみならず、スタツク
環境ならびにそのアドレスおよび実行されるべき
次の待ち行列の記憶位置を識別する。ステツプご
とに1つの待ち行列を利用可能処理エレメントに
与えること以外、コード処理のため他のいかなる
処理ステツプも必要とされない。 第2図の記号翻訳モジユール10cは、第4図
に詳細に示されている。第4図に示されるよう
に、このモジユールはテーブルルツクアツプ機構
であり、待ち行列記号テーブル16の列はつなが
れたタスクに対する記憶位置ならびに第2図の命
令リフアレンスモジユール10bによつて割当て
られる記号名を表わし、また対応する行は第2図
の待機タスクモジユール10aによつて割当てら
れる各待ち行列番号を表わす。上述したように、
記号翻訳モジユールにおけるこのようにして形成
された待ち行列は、行なわれるべき計算の各一連
のループに対し、第2図のジヨブ待ち行列10d
に対する転送のため、ポインタテーブル17にお
けるポインタをアクセスする準備ができている。 第4図において、種々の記号は間接ローカルメ
モリリフアレンスであり、したがつてそこにスト
アされたアイテムは異なつたポインタを与えられ
得るということに注意されたい。すなわち、記号
翻訳テーブルにおける翻訳テーブルの機能によ
り、メインメモリ中のデータセグメントに同一の
記号を割当てることができる。しかしこのセグメ
ントは各小さな処理エレメント11a〜cに関連
のローカルメモリ12a〜cの異なるローカルア
ドレスに格納される。つまり、翻訳テーブル17
の内容はメインメモリから取出された実際のデー
タセグメントではなく、むしろ各ローカルメモリ
に対するアドレスである。したがつて、メインメ
モリ内のデータセグメントに対応する記号または
記号コードは常に翻訳テーブル17に対するアド
レスとして同一の値を持つが異なつた待ち行列に
対してそのテーブルに格納されたローカルメモリ
アドレスを異ならせることができる。これらのロ
ーカルメモリアドレスは、主メモリに各ローカル
メモリをアドレスさせるために主メモリに送られ
るだけでなく、各小さな処理エレメント11a〜
cがそれらの対応するローカルメモリをアドレス
できるようにジヨブ待ち行列10dへも送出され
る。このことは、2つの利点をもたらす。まず第
1は、異なつたポインタを再ネーミングまたは割
当てしてそれを表わすことによつて、任意のデー
タアイテムがローカルメモリ内の1つ以上の記憶
位置にストアされるということである。第2の利
点は、任意の変数が1つの記憶位置にストアされ
てそのポインタを変化することなくそこから出て
いくことができる一方、その変数に対して行なわ
れる処理の結果が同一の記号名であるが異なつた
ポインタを有する別の記憶位置にストアされ得る
ということである。 第2図の個々の処理エレメントは、第5図に示
されている。要約すれば、それらは複数のマイク
ロプログラム化されたマイクロプロセツサから形
成されており、マイクロプロセツサはインテル
8086のような商業的に利用可能なものであり、ま
たはそれらはFaber等の米国特許第3983539号に
開示されたカストマイズされたマイクロプログラ
ム化されたプロセツサであつてもよい。個々のプ
ロセツサは異なつた関数を実行するようにされる
ので、それらはその各関数を実行するのに必要と
されるのみの論理回路を含む特別目的のマイクロ
プロセツサであつてもよい。各回路18は、演算
論理ユニツト、シフトユニツト、乗算ユニツト、
インデキシングユニツト、ストリングプロセツ
サ、およびデコードユニツトである。さらに、シ
ーケンシングユニツト19は第2図のジヨブ待ち
行列10dから命令を受けて、制御ストア20に
ストアされたマイクロ命令をアクセスする。制御
ストアからのマイクロ命令は命令バスIBを介し
て各ユニツトに供給され、ユニツトによつて発生
された任意の状態信号は状態バスCBを介して転
送される。対応するローカルメモリからのデータ
は、AバスABで受けられ、実行された結果はB
バスBBに供給される。 第1図に戻つて、第2図の待機タスクモジユー
ル10aによつて受けられているコードストリン
グにおける種々の命令およびそのモジユールによ
つて形成されるより高レベルの命令またはタスク
のより詳細な説明をここで行なう。第1図の左欄
に示されるように、コードストリングの最初の3
つの命令はデータアイテムIの値呼出しまたはメ
モリ取出し、8ビツト値、および乗算命令であ
る。それらは次のタスク、すなわち第1図の右欄
の第1のタスクによつて示されるリテラル値をI
に乗算するタスク、につながれている。処理は、
加算タスクおよび減算タスクに対し続けられる。
名前呼出し命令は、データアイテムアドレスをス
タツクのトツプにおく命令であり、インデツクス
命令はメモリ内にあるデイスクリプタにおけるポ
インタを挿入する結果となる。このようにして、
第1の待ち行列Q0が形成される。 Q1の配列は、名前呼出し命令の後命令NXLV
が実行されてインデツクス処理およびデータの取
出しを生じるということ以外、同様である。この
ようにして、第2の待ち行列Q1が形成される。
第3の待ち行列Q2の配列において、加算命令が
存在し、この加算命令によつて、スタツクのトツ
プにおける値を破壊するメモリの破壊記憶
(STOD)の前にAおよびBに対しこのように計
算された値が加算される。 第1図の中央のブロツク図からわかるように、
Q2の最後の2つのタスクまたはつながれた命令
の実行は、その値がローカルメモリにストアされ
る計算Q0およびQ1の結果を必要とする。その記
憶位置およびそれらの各ローカルメモリは、リフ
アレンスが実際にそこにストアされているかどう
かを示すためのインデツクスフラグに与えられ
る。この方法において、処理エレメントが同時的
な方法で処理されるとき、Q2のルーチンは必要
な値が計算されかつローカルメモリにストアされ
てしまう前に第2のまたは最終の加算タスクに達
することが可能である。対応する処理エレメント
はそれらの値がまだ利用可能でないということを
検出し、その値が利用可能になるまでそれらの記
憶位置をアクセスし続ける。 第4の待ち行列またはQ3は、値Jを取出しそ
れに1を加算し、スタツクのトツプにおける値を
残したままメモリ内の非破壊ストアを行なう前
に、スタツクのトツプにそのアドレスを挿入す
る。最後の4つの命令は、メモリから値Kを取出
し、それを値J(LSEQ)と比較し、もし値Kが
値Jよりも大きければ次の命令、すなわち偽への
分枝により、プログラムカウンタが再ロードさ
れ、そのルーチンが繰返される。一方、コードス
トリングにおける最後の命令は、ルーチンの終了
を生じる無条件分枝である。 第6図は個々の待ち行列に対する待ち行列実行
時間のタイミング図であり、特定のタスクに対す
る各クロツク時間は2つの番号によつて表わされ
ている。第1の番号は実行されている特定のルー
プまたはシーケンスを表わし、第2の番号は命令
を実行している特定の処理エレメントを表わす。
待ち行列の配列の結果となるコードストリングの
最初の伝送ならびにタスクの実行はほぼ17クロツ
ク時間を必要とし、一方一連のループは実行のた
め5クロツク時間のみを必要とする。というの
は、タスクはQTMおよびIRMにおいて完全に再
処理される必要がないので、個々の従属自由待ち
行列が同時的に実行されるからである。 一般的に、待機タスクモジユールはタスク、こ
れらのタスクの待機、待ち行列実行、タグ予測お
よび分枝訂正に対する命令の同時的なステツプを
実行する。命令基準モジユールは、再ネーミン
グ、記号マネージメントおよび取替の機能を実行
する。記号翻訳モジユールは、並列アクセス、ポ
インタ割当およびタスク割当を与える。小さな処
理エレメントは、独特な処理エレメントが頻繁で
ないタスク実行およびストリングの関数部分に対
し用いられている間、頻繁なタスク実行のため設
けられる。第2図の直接リフアレンスモジユール
15は、ノンスタツクリフアレンスの評価のため
設けられる。 最後に コンパイルされたオブジエクトコードを受けて
そのコードのシーケンスをより高レベルのタスク
に形成し、かつそれがオブジエクトコードストリ
ングの前の実行の結果を必要としないという意味
において他の待ち行列と論理的に無関係であるよ
うなタスクの待ち行列を形成する、データプロセ
ツサのための機構が説明されてきた。この方法に
おいて、そのような待ち行列のシーケンスは、同
時実行のため、非従属処理エレメントに供給され
得る。 記号翻訳テーブルが設けられて、それによつて
データアイテムが参照され、その記号はローカル
メモリに対する任意のポインタを割当てられ、そ
のポインタは変化されて、それによつてデータア
イテムは1つ以上のメモリ記憶位置に常駐するこ
とができ、またデータアイテムはそのアイテムに
対する処理の結果が他の記憶位置にストアされ得
る一方でメモリ内に残ることができる。 この発明の一実施例が説明されたが、請求の範
囲に記載された発明の精神から逸脱することなく
変更および修正が可能であるということは当業者
にとつて明らかであろう。
JP50237983A 1982-06-08 1983-06-08 従属自由コ−ドのためのデ−タアイテムを再ネ−ミングするシステムおよび方法 Granted JPS59501132A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38642089SE 1982-06-08
PCT/US1983/000894 WO1983004442A1 (en) 1982-06-08 1983-06-08 System and method of renaming data items for dependency free code

Publications (2)

Publication Number Publication Date
JPS59501132A JPS59501132A (ja) 1984-06-28
JPS633336B2 true JPS633336B2 (ja) 1988-01-22

Family

ID=22175249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50237983A Granted JPS59501132A (ja) 1982-06-08 1983-06-08 従属自由コ−ドのためのデ−タアイテムを再ネ−ミングするシステムおよび方法

Country Status (1)

Country Link
JP (1) JPS59501132A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122941A (ja) * 1973-03-26 1974-11-25
JPS5011743A (ja) * 1973-06-04 1975-02-06
JPS5023949A (ja) * 1973-06-27 1975-03-14
JPS51130135A (en) * 1975-05-07 1976-11-12 Fujitsu Ltd Information processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122941A (ja) * 1973-03-26 1974-11-25
JPS5011743A (ja) * 1973-06-04 1975-02-06
JPS5023949A (ja) * 1973-06-27 1975-03-14
JPS51130135A (en) * 1975-05-07 1976-11-12 Fujitsu Ltd Information processing system

Also Published As

Publication number Publication date
JPS59501132A (ja) 1984-06-28

Similar Documents

Publication Publication Date Title
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) Concurrent processing elements for using dependency free code
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
US5197137A (en) Computer architecture for the concurrent execution of sequential programs
US4187539A (en) Pipelined data processing system with centralized microprogram control
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US4574349A (en) Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
JP3461704B2 (ja) 条件コードを使用する命令処理システムおよびコンピュータ
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPS6028015B2 (ja) 情報処理装置
JPH0682320B2 (ja) データ処理装置
US5907693A (en) Autonomously cycling data processing architecture
US4456958A (en) System and method of renaming data items for dependency free code
US5390306A (en) Pipeline processing system and microprocessor using the system
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
EP0061586A2 (en) Data processing apparatus with extended general purpose registers
US5506974A (en) Method and means for concatenating multiple instructions
JPS633336B2 (ja)
JPS6313216B2 (ja)
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JPS59501133A (ja) 多重処理エレメントのための従属自由コ−ドを発生する機構
JP2522372B2 (ja) デ―タ駆動形計算機
JPH03100829A (ja) プログラム内蔵型計算機
JPH01276231A (ja) データ処理装置