JPS62501455A - 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケータ - Google Patents

変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケータ

Info

Publication number
JPS62501455A
JPS62501455A JP61500657A JP50065786A JPS62501455A JP S62501455 A JPS62501455 A JP S62501455A JP 61500657 A JP61500657 A JP 61500657A JP 50065786 A JP50065786 A JP 50065786A JP S62501455 A JPS62501455 A JP S62501455A
Authority
JP
Japan
Prior art keywords
memory
mark
bit
vector
mark bit
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.)
Granted
Application number
JP61500657A
Other languages
English (en)
Other versions
JPH0731619B2 (ja
Inventor
ログスドン,ゲイリー・エル
シーヴエル,マーク・アール
ウインチエル,マイケル・エイ
Original Assignee
ユニシス・コーポレイション
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 ユニシス・コーポレイション filed Critical ユニシス・コーポレイション
Publication of JPS62501455A publication Critical patent/JPS62501455A/ja
Publication of JPH0731619B2 publication Critical patent/JPH0731619B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 可夕旦乍−9り坦l−411タニー1L匂朋駐A−ん進方J←19掲題の出願に 直接的または間接的に関連した米国特許出願は以下のとおりである。
Gary E、 Logsdon等によって1984年6月5日出願され、「可 変自在の応用性’+”i’ ii?jコードを用いる2進方向のグラフとしてス トアされたプログラムを評価する縮小プロセッサのためのグラフマネージャ(G rapb Manager for a Reduetion Process or EvaluatingPrograms 5tored as Bina ry Directed Graphs Employlng Varfabl e−Pree Applicative Language Codes) J と題される、連続番号箱61.7,526号。
Gary E、 Logsdon笠によって1984年6月50に出願され、そ して「可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされ たプロゲラg Programs 5tored as Binary Dlr ectcd Graphs Eaploying Varlablc−Free  Applicative Language Codes) Jと題される、 連続番号箱617,531号。
Gary E、 Logsdonによって1984年6月5日に出願され、そし て「可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされた プログラムを評価する縮小プロセッサのだめの状態コンセントレータおよび中央 記ta(Condition Concentrator Central 5 tore1’or a Reduction Processor Evalu ating Programs 5toredas Binary Direc ted Graphs Ellploying Variable−Free  Applicatlve Language Codes)Jと題される連続番 号箱617.532号。
Gary E、 Logsdon等によって1985年1月11日に出願され、 [可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされたプ ログラムを評価する縮小プロセッサのためのアロケータ(Allocator  ror a Rcductlon Processor Evaluating  Programs 5toredas Binary DirCcted G rapbs Employing Varlable−Frae Applfc ativc Language Codes) Jと題される連続番号箱690 .846号。
明細書 この発明は2進方向のグラフとして表わされたプログラムを評価するようにされ たデジタルプロセッサのためのシステムメモリおよびアロケータに関するもので あって、特に同等のグラフの累進的な置換えによってそのようなグラフを評価す るプロセッサに関するものである。
先行技術の説明 今日、市場におけるほとんどのデジタルコンピュータは未だにJ o h n  v o n N e u rn a n nによって最初に仮定された型であり 、それらは指令の実行がシーケンシャルである。FORTRANおよびC0BO Lのようなコンピュータをプログラムするための最初のより高レベルの言語はこ の編成を反映し、そしてコンピュータによって実行されるアルゴリズムの設:1 ゛と同様、記憶管理および制御フローの管理の責任をプログラマに任せた。純L ISPのような純粋な応用性言語は、プログラマのこれらの管理責任を軽減する ことで命令言語とは異なる。
純LISPに代わるものはセイントアントリューススタテイソク言語(Sain t Andrews 5tatic Languago)、すなわち5ASLで 、これはDavid A、Turnerによって開発された(SASL言語マニ ュアル(SASL LanguageManual)、1976年、セイント  アントリユース大学)。
「コンビネータ(comblnator) Jと呼ばれる多数の定数を導入する ことによって、この言語は可変自在表示に変換されてもよい(D、A、Turn er、r応用性言語のための新実現化例技術(^New liplementa tjon Technique forApplicatjve Langua ges)Jソフトウェア−実践および経験(Sortwa、re−Practi ce and Experience)第9巻、31−49頁、1979年)。
この表示は(アーギュメントの機能と、そして結果としてリターン機能をとって もよい)より高いオーダの関数および(たとえ1個または2個以上のアーギュメ ントが規定されていなくても結果を戻してもよい)非厳密関数(non−str ict functions)を取扱うのに特に有利である。
Turnerによって開発された実現比例技術はプラス、マイナスなどのような ]お1の原始関数(prjmjNνefυnctj。
ns)およびより高いオーダの非厳密関数である1組のコンビネータを採用する 。これらのオペレータは置換規則によって正式に規定され、それらのいくつかの 具体例はS f g x−f x (g x) Y h−h (Y h’) Cfxy−fyx B f g x−f (g x) cond p x y−x、 pが真の場合y、 pが偽の場合 プラス mn−r、mとnは既に数が縮小され(reduced)ていなくては ならず、r はmとnの合計 である。
他のコンビネータおよびそれらの定義は、トに引用されたTurnerの著書の 中で見られるはずである。
このコンビネータ表示は便宜上2進方向のグラフとして表わされてもよく、そこ では各ノードが関数をアーギュメントに与えることを表わす。(これらのグラフ は最初の2つのコンビネータの名前からSK−グラフとして知られる。
)置換規則はそのためグラフ変換規則として解釈されてもよく、これらのグラフ (およびそれゆえ、それらが表わすプログラム)は縮小で知られる処理中にかな り単純な性質のプロセッサによって評価されてもよい。そのような縮小プロセッ サは「可変自在応用性言語コードを用いる樹形のグラフとしてストアされたプロ グラムを実行するための縮小プロセッサ(Reduction Proeess or I’or IExeeutingPrograIlls 5tored  as Treeljkc Graphs If+ploylngvarlabl e−Free Applieative Language Codes)Jと 題されるBolton等のアメリカ特訂呑号第4.447.875号で開示され る。
縮小処理の詳細はTurnerの書類で見られるが簡単な具体例が役に立つ。第 1A図ないし第1D図は5ASLプログラムを表わすグラフの縮小を例示する。
サクセサ2 ここにおいて サクセサX−1+X このプログラムは第1A図のグラフで表わされるコンビネータの表現 CI2 (プラス1) に解釈(コンパイル)される。このグラフの連続的な変換は以下のものを生み出 す。
I (プラス1) 2 C規則を用いる(第1B図)プラス 12 1規則を用 いる(第1c図)3 プラス規則を用いる(第1D図) グラフを減じるために行なわれる置換は、ポインタおよびコンビネータ表示 ド のような多数の異なるデータの操作を必要とし、これらのデータはレジスタファ イル内を1つのロケーションからさらに別のロケーションにシフトされる。」二 に引用されたBoltorl等の出願で開示された実施例では、各グラフ縮小段 階はレジスタファイル転送のシーケンスを必要と1,5た。しかしながら多くの 場合、レジスタ間の必要な転送は同時に行なわれ、速度がその結果増加する。
これらの転送の1つを行なった後、プロセッサは次の変換位置をめてグラフを横 切らなくてはならない(「リデックス(redex)Jと呼ばれる)。この探索 の間、ノードは検査され、そしてノードの左側がポインタを示すがまたはコンビ ネータを示すかを判定するといった様々な検査が行なわれる。再び、Bo 1  t on等の出願で説明された機械では、これらの検査はシーケンシャルに行な われなくてはならないが、多くの場合これらの検査は同時に行なわれ得る。
そこでこの発明の目的は、一連の置換を通して2進方向のグラフ評価のための改 良された処理システムを提供することである。
この発明の別の目的は、各置換が多数の同時のレジスタの転送によってより速く 達成されることかで八るプロセッサを提供することである。
この発明のさらに別の目的は、アロケータが、それぞれのグラフを評価する際に 用いるための縮小プロセッサへの転送のための新しいノードのアドレスを選択す るような縮小プロセッサのためのアロケータおよびシステムメモリを提供するこ とである。
発明の要約 」−で確認された目的を達成するために、この発明は応用性言語縮小(redu ction)プロセッサに用いるためのアロケータおよびシステムメモリにある 。アロケータはシステムメモリに結合され、関数の置換に必要なシステムメモリ 上の新しいノードのアドレスを選択する。
この発明の特徴は2進方向のグラフで表わされた応用性言語プログラムを評価す るように意図された縮小プロセッサのためのアロケータおよびシステムメモリに ある。
図面の簡単な説明 この発明の」二足およびその他の目的、利点および特徴は図面に関連して以下の 明細書を検討することで容易に明らかとなるであろう。
第1A、B、C,およびD図はこの発明が意図される型の2進の方向のグラフを 示す。
第2図はこの発明を採用するシステムを例示する。
第3図はこの発明のグラフマネージャセクションの図である。
第4図はこの発明のデータセクションの図である。
第5図はこの発明の状態コンセントレータの図である。
第6図はそこからグラフが形成される型のノードのフォーマットの図である。
第7八図ないし0図はこの発明のアロケータを詳細に示す図である。
第8A図およびB図はこの発明のシステムメモリの図である。
発明の詳細な説明 この発明を用いるシステムは第2図に例示される。主たる要素はグラフマネージ ャ10でこれは減じられるべきグラフのいつかのノードを蓄え、グラフ縮小に必 ザな一連の置換を行なうためにそれらのノードが操作されることを可能にするデ ータセクションを含む。システムはグラフのノードのすべてに記憶を与えるシス テムメモリ11と、それらのアドレスがグラフマネージャによって用いられるた めに待機する、使用されていないワードをめてシステムメモリを走査するアロケ ータ12とを含む。アロケータはまた、待機アドレスの数のカウントを維持する 。サービスプロセッサ13はホストプロセッサ(図示されていない)への非常に 様々なデータ転送を支持し、また、浮動少数点演算設備も備える。
先行技術のシステムのグラフ縮小技術に関する特定の問題は、第1八図ないし第 1D図を再び参照してより真く例示され得る。第1A図のグラフから第1B図へ の変換において、ノードbの右のセルの内容物はノードaの右のセルに転送され なくてはならず、ノードCの右のセルはノードfの左のセルに転送されなくては ならず、モしてノードaの右のセルはノードfの右のセルに転送さねなくてはな らない。先行技術の縮小プロセラづでは、この一連の転送はシーケンシャルに行 なわれ、そして第1B図のグラフを第1C図のそれに、そして以下そのように縮 小するために同様の一連の転送が行なわれた。この発明の目的は並列レジスタ転 送機構を提供することであり、そtlによってレジスタ転送の各シーケンスが同 時に行なわれ、こうり、て縮小処理の速度を−にげる。
先行技術のシステムに関するさらに別の問題は、縮小処理を導く状態(cond ition)の検査に関する。第1A図のリデックスか変換され得る前に、ブロ セッザは保持されているいくつかの状態を判定しなくてはならない。先行技術の ブロセッヅでは、これらの状態はンーケ“ンシャルに検査され、そして各検査の 結果は2方向の分岐のうち1一つの経路を選択するのに用いられる。この発明の さらに別の目的は、状態検査機構を提供することであり、それによって、多方向 の分岐の中から1つの経路を選択するためにいくつかの状態が同時に検査されて もよい。
第2図のグラフマネージャ10はそのアロケータ12との交信を含めて、第3図 にわずかであるがより詳しく示されている。グラフマネージャはデータセクショ ン20.状態コンセントレータ21および制御セクション22を含む。
データセクション20は縮小されるグラフの部分をストアし、フィールドがその 中にある種々のレジスタの間を同時に転送されることを可能にする。これらのフ ィールドのいくつかの値は下に説明される理由で状態コンセントレータ21に送 られる。このデータセクションは第4図により詳細に示される。
制御セクション22は書込可能制御記憶22bを有する簡単な状態機械であって 、そこでは状態機械のためのマイクロプログラムがストアされる。マイクロ命令 アドレスは状態コンセトレータ21から受取られた置換フィールドを制御レジス タ22aの次のアドレスフィールドと結び付けることによって発生され、この制 御レジスタは順に選択されたマイクロ命令を受取る。
第4図に例示される第3図のデータセクション20の機構は、グラフの置換を行 なうためにレジスタ間を並列転送するための、1次機構であるレジスタファイル 30を含む。
経路バッファ50もまた第4図に示され、これはLフジスタフアイル30にスト アされたノードの原型をストアするために用いられるスタックメモリである。第 4図の演算論理装置32は簡単な算術演算子を実行し、そしてバスインク−フェ イスユニット31はシステムメモリおよびシステムの他のユニットと交信する。
第3図の状態コンセントレータ21は、第5図により詳細に説明される。これは 演算論理装置32、アロケータ12およびサービスプロセッサ13からと同様、 レジスタファイル30からの入力も受取る。これらの入力は13の「状態グルー プ」に集められる。40aないり、、 40 mの各ガード発生器は、1組のガ ードに状態グループを写像する。
これは以下により詳細に説明される。検査サイクルの間、各ガード発生器はその ガードのサブセットをガードバス41に向け、このバスは優先順位エンコーダ4 2への入力である16行のオーブンコレクタバスである。優先順位エンコーダの 出力は幅4ビットで、最高位の優先順位の真のガードを同定し、そこではライン 0のガードが最高位の優先順位を有し、ライン15のガードが最低位の優先順位 をaする。この出力は変位値として用いられ、これは第3図の制御レジスタ22 aからのベースアドレスと結び付けられて、制御記憶22bに次のマイクロ命令 のアドレスを発生する。
ノードのフォーマット 上に示されるように、第6図はSKグラフのノードがシステムメモリ11、レジ スタファイル30の種々のレジスタおよび経路バッファ50内にあるフォーマッ トを例示する。各ノードは4ビツトのノード型フィールド(N T)、マークピ ットおよび各々が30ビットの左と右のセルのフィールド(LCおよびRC)を 含む。左および右のセルフイールドはさらに、2ビツトのセル型フィールド(C T)、4ビツトのサブ型フィールド(ST)および24ビツトの内容物フィール ド(C)に再分割される。種々のS K演算子および値はこれらのフィールドの 特別な値の組合わせでコード化される。
アロケータおよびシステムメモリ 第2図のシステムメモリ11はノードの像およびそれらの関連したマークビット をストアするために特定的に設計されている。SK線縮小間、ノードはグラフに 加えられ、そしてそこから捨てられる。グラフに加えられるノードは新しいノー ドと呼ばれ、そしてグラフから捨てられるノードは不要部分ノードと呼ばれる。
それらが新しいノードとして再利用されるように不要部分の整理は不要部分のノ ードを集める処理である。この発明は2つの明確な段階、すなわちマーク段階と その後の走査段階からなるマーク走査(Mark−9can)アルゴリズムを用 いる。
メモリの各ノードは上に示されたように、関連したマークピットを有する。マ、 −り段階の間、アクティブなグラフ全体は交差し、それが訪れられるとき各ノー ドのマークピットをセットする。それゆえ、マーク段階の最後ではグラフのノー ドと関連したマークピットはセットされ、そしてその他すべてがリセットされる 。走査段階の間、メモリの各ノードに対するマークピットはシーケンシャルに走 査される。各マークピットが一度検査されると、2つのうち1つの処置がとられ る: もしマークピットがセットされるなら、関連したノードはグラフ内にあり、再使 用されることができない。マークピットは次のマーキング段階の準備をしてリセ ットされる; もしマークピットがリセットされるなら、関連したノードは縮少器(redue er)によって再使用され一〇もよい。それが新しいノードに対し、て縮少器に よるいくつかの未来の要求に応答して、出されているように、この場合、ノー  ドのアドレスは「セーブ」されなくてはならない。これらの「セーブされた」ア ドレスは新j7いノードアドレス(NNA)と名付けられる。
伝統的な実現化例では、縮小はすべてのマークピットが調べられた後に再び始め られる。
この発明では、マーク段階は縮小を行な・)のと同じプロセッサ、すなわち第2 図のグラフマネージャ10によって行なわれる。しかしながら、走査段階は特別 な目的のプロセッサのアロケータ12によって行なわれる。走査機能を果たすた めにはグラフマネージャ10が必要とされないので、それはマーク段階を完了す るや否や縮小を再び始めることができる。同時に、アロケータ12はマークのな いノードを捜してメモリを走査し始め、それはそれからグラフマネージャ12に よって用いられるために待機する。
走査段階は縮小と同時に行なわれるので、この実施例で不要部分整理の休止の有 効な長さは単にマーク段階で費される時間であり、これは伝統的な実現化例にお けるよりも大いに短く、そして(メモリのサイズではなく)グラフのサイズのみ に依存する。
」二で述べられたように、アロケータ12の唯一の[]的はグラフマネージャ1 0に縮小の間、再使用が可能であるノードのアドレスを供給することである。ア ロケータ12は、それらの関連したマークピットがリセットされたノードをめて メモリを走査することによって、これらのノードを位置決めする。これらのノー ドのアドレスはそれから、グラフマネージャに新しいノードアドレスを供給する 、待ち行列(ノードキュー)に置かれる。
縮小の間、アロゲータ12およびグラフマネージャ10は両方ともシステムメモ リ11にアクセスし、アロケータ12はマークピットを読出しそしてリセットし 、そしてグラフマネージャ10はノードにアクセスする。メモリコンテンション を減じるために、メモリ動作の特別なセットがアロケータ12で利用可能である 。アロケータ12はマークピットのみに関連があり、モしてノードの内容物には 関連がないのでそれが可能となるこれらの動作は、マークベクトルへのアクセス を可能にする。マークベクトルは8個のシーケンシャルアドレスでノードのマー クピットを含むビットベクトルである。マークベクトルは2つのクロックの通常 のメモリアクセスの代わりに、1つのクロックでアクセスされることができる。
こうして、特別な動作を用いて、アロケータは16クロツクの代わりに1つのク ロックで8個のマークピットにアクセスすることができる。
第2図のアロケータ12は第7A図に、より詳細に例示される。これは3つの機 能ユニット、すなわち、ベクトルフェッチャ70と、ベクトル検査′&71と、 7ノードキユー72とからなる。ベクトルフエソチャ70は第7B図に、より詳 細に例示される。
ベクトルフエツチャ70は処理するためにベクトル検査器71にマークベクトル を供給する。ベクトル検査器71がベクトルをリフストするときはいっでも、ベ クトルフエッチャ70は第2図のシステムメモリ11からベクトルを読出し、そ してそれをベクトル検査器71に転送する。次にベクトルフェッチャは、読出さ れたばかりのマークベクトルに対してシステムメモリ11のマークピットをリセ ットするメモリ動作を開始する。これは走査段階が終わると、走査されたすべて のマークピットがリセットされることを確実にする。ベクトルフェッチャ70は 第7B図に、より詳細に例示される。
マーク段階の間、第2図のサービスプロセッサ13は、一旦走査段階が始まると 走査されるべきマークペクトノドの数を第7B図の走査カウントレジスタ53に ロードする。
マークベクトルが処理されるたびに、走査カウントレジスタ73は減少する。レ ジスタの値が0に等しいとき、マークベクトルのフエツチングは終了し、そして 走査完了信号が表わされる。このレジスタは長さが21ビツトである。
また、マーク段階の間、第2図のサービスプロセッザ13は、一旦走査段階が始 まると走査されるべき第1のマークベクトルのアドレスをMVアドレスレジスタ 74にロードする。レジスタletアドレスの最−1−位の21ビットを含み( 最下位の3ビツトはいつも零に等し、い)、そして新しいマークベクトルの各々 がメモリから読出される前に増加する。
ベクトルフエツチャ状態機械75はベクトルフエツチャの動作を制御する。上に 述べられたように、走査段階が始まる前に、MVアドレスレジスタ74および走 査カウントレジスタ73にはそれらの最初の値がロードされる。走査段階が一旦 始まると、ベクトルフエツチャ状態機械はMVアドレスレジスタ74によってア ドレスされたマ・−クベクトルを読出す。ベクトルフエツチャ状態機械75はメ モリのインターフェイス信号を操作することによって、この読出しを行なう。マ ークベクトルがデータバスDB (7: O)上に存在するとき、状態機械75 はBEGIN CHECK信号を表わして第7A図のベクトル検査器71に知ら せる。
一旦マークベクトルがベクトル検査器71にJ、っで受取られると、状態8!械 75はメモリインター′ノJイス信HEを用いて、MVアドレスレジスタ74に よってアドレスさイまたマークベクトル内にマ・、−クビッl−をリセットする さらに別のメモリ動作を実行する。リセット動作が完了すると、状態機械75は ベクトル検査器71からのCHE CK 0VER信号がベクトル検査器71が さらに別のマークベクトルを必要としていることを示して表わされるまで、アイ ドルのままである。リセット動作と同時に、状態機械75はMVアト1ノスレジ スタ74を増加さぜ、そして走査カウントレジスタ73を減少させる。もし走査 カウコ・トレジスタ73が零でないなら、さらに別のマークベクトルが以前に説 明されたようにフェッチされる。もし走査カウントレジスタ73が零なら、走査 完了信号がグラフマネージャに表わされる。もし走査完了が表明され、’c L 、て十分なノードが表わされないなら、グラフマネージャは不要部分の整理を開 始する。
ベクトル検査器71は受取られた各ベクトルから8個までの5ノードアドレスを 発ηIする。これらのアトL・スは発生されると第7A図のノードキューに加え られる。ベクトル検査器71はもj7ノードキユー72からのFULL信号が表 わされないなら、ベクトルフエツチャ70からマークベクトルを要求する。第7 A図のベクトル検査器71は第7C図により詳細に例示される。
第7C図において、アドレスカウンタ76は簡単には新しいノードアドレス(N NA)の最上位の21ビツトを含む、アップカウンタである。走査段階が始まる 前に、アドレスカウンタ76は第7B図のMVアドレスレジスタ74より1つ少 ない値に等しい値がロードされる。一旦走査段階が始まると、第7A図のベクト ルフェッチャがBEG IN CHECK信号を表わすごとに、アドレスカウン タ76は増加し、そして新しいマークベクトルがベク)・ルレジスタ77にロー ドされる。ベクトルレジスタ77は8ビツト幅のレジスタである。セット論理8 oの出力はこのレジスタへの入力で、出力はエンコーダ78に行く。エンコーダ 78はベクトルレジスタ77の値に基づいた3ビット変位を発生する。変位はベ クトルの最下位のマークのないビットの順序を示す位置に対応する。たとえば、 ベクトルは3の変位を発生する。ベクトルに少なくとも1つのマークのないビッ トがある限り、新しいノードアドレスVALID信号がベクトル検査器71から の新しいノードアドレスが有効で、そしてキュー72にロードされるべきことを 第7A図のノードキュー72に示して、表わされるであろう。もしベクトルレジ スタ77の出力がすべて1なら、エンコーダ80はCHECK 0VER信号を 表わし、新しいマークベクトルがベクトルレジスタ77にロードされてもよいこ とをベクトルフエツチャに示すであろう。
変位レジスタ79は新し、いノードアドレスの最下位の3ビツトを含むレジスタ である。エンコーダ78が新しい変位を発生ずるごとにそれはロードされる。2 4ビツトの新しいノードアドレスは単に3ビット変位レジスタと21ビツトアド レスカウンタ76の連結である。
セット論理80はBEGIN CHECK信号の状態に依存して2つのうちの1 つの方法で動作する。もし、BEGIN CHECK信号が表わされるなら、ベ クトルレジスタ77にロードされるべきマークベクトルがデータバスDB(7: 0)上に存在する。ゆえに、セット論理80は単にベクトルレジスタ77にロー ドされるべく、マークベクトルを変化されないままで通過する。
もしBEGIN CHECK信号が表わされないなら、セット論理80はベクト ルレジスタ77の出力をとり、最下位のθビットを1にセラl−L、そし、て新 しい値をベクトルレジスタの入力に供給する。たとえば、もしベクトルレジスタ 77が値 100101、11 を含むなら、次のクロック上でベクトルレジスタ77にロードされるべきセット 論理80の出力はとなるであろう。要約すると、ベクトルレジスタ77の値は、 レジスタ内に少なくとも1つのマークのないビット(0)がある限り、各クロッ ク」二でセット論理80にょって換えられる。ベクトルレジスタ77の値の各々 に対し、て、エンコーダ78は変位レジスタ79にロードされる新しい変位を生 み出す。
第7AI:JJのノードキュー72は第2図のグラフマネージャ10による将来 の使用のために、新しいノーへドアドレスをストアするために用いられる。ノー ドキュー72は幅が24ビツトで、深さが256エントリである。新[、いノー ドアドレスはそれらが発生されるとベクトル検査器71によってキューにロード され、それらが必要とされると、グラフマネージャによってキューから取り除か れる。
ノードキュー72と関連したカウンタは、キューの中の多数のノードの後をたど り、そして2つの信号を発生するために用いられる。FULL信号はキューがそ れ以上いかなる新しい、ノードアドレスをも受取ることができないときに表わさ れる。ベクトルフェッチャ70はFULL信号が表わされるまでマークベクトル をフェッチし続け、そうして、その信号が表わされるとそれはメモリからマー  クベクトルを要求することを停止する。それからアロケータ12は一時的にアイ ドルになり、再び始めるためにノー ドキューでの十分な余裕を待つ。
ENOUGHN0DES信号はキュー72に9個または10個以上のノードがあ るときに表わされる。グラフマネージャ10はコンビネー 夕の実行を完成する のに十分な新しいノー ドアドレスがあるかを確かめるために、コンビネータを 実行する前にこの信号を検査する。
第2図のシステムメモリ11はその3つのりクエスタ、すなわちグラフマネージ ャ10、アロ′r−夕13、および第8A図のリフレッシュ論理、のための様々 な演算を支持する。各メモリアクセスに必要とされるクロック数は、行なわれる 動作の型に依存する。利用可能なメモリ動作は以下のとおりである。すなわち、 ノードおよびマークピットを読出す、ノードおよびマ・−クビットを読出し、次 にマークピットをセットする、ノードおよびマークピットを読出し、次にマーク ピットをリセットする、ノードを書込む、マークベクトルを読出す、マークベク トルをリセットする、リフレッシュする、要求をしない。
バスアービタ86の目的はシ、ステムバスへのアクセスを制御することである。
バスは実際にはデータバスとアドレスバスの2つのバスからなる。バスは第2図 の4つの主要機能ユニットの中でデータを転送するために用いられる。
バス−にの転送のほとんどがシステムメモリれゆえ、簡潔さのために、バスへの アクセスはシステムメモリ11が次の動作を各実行する準備ができているとき( すなわちそれがアイドルであるとき)のみに可能である。
バスアービタはバス利用可能(BUSAVL)信号を表わすことによってバスが 利用可能であることを示す。
メモリタイミングおよび制御81は以下に説明される2個の記憶アレイに制御情 報およびタイミング信号を提供する。タイミングおよび制御信号の発生は選択さ れた動作に依存する。
ノードのためのマークピットは、マークメモリ83にストアされる。これらのマ ークピットは行なわれている動作の型に依存して、2つの方法の1つでアクセス され得る。
マークメモリ83のマークメモリアレイ90は第8B図により詳細に示され、そ して各々が14のアドレス入力と、チップ可能化入力と、書込可能化入力と、デ ータ入力と、データ出力とを有する16K X ]のスタティックRAMから形 成される。もしチップが選択され(すなわちチップ可能化が表わされ)、そして 書込可能化が表わされるなら、データ入力にある値はアドレスされたロケーショ ンでストアされるであろう。もしチップが選択され、そして書込可能化が表わさ れないなら、アドレスロケ−シコンにストアされた値はデータ出力に存在するで あろう。もしチップが可能化されないなら、データ出力はトライステートされ、 そしてRAMの内容物は変化しないままである。
第8B図は、ボードパーティショニングの付加された護雑さを無視して、マーク メモリがどのように構成されているかを機能的に例示している。アドレスバスA B (17:3)からの14個のビットおよびMARK BIT IN信号はメ モリアレイのすべてのRAMに送られる。8個のRAMの各行は独自のチップ可 能化信号を有する。RAMの8列の各々は独自の書込可能化および共有データ出 力ラインを有する。
デコーダ91は7つの2進の重みが付けられた入力AB(23:17)を受取り 、そして可能化されると、128個の相互に排他的なアクティブロー出力(0− 127)を与える。デコーダ91はM A RK M E M ORY E N  ABLE信号が表わされると可能化される。デコーダ71が不能化にされると 、すべての出力が表わされない。たとえば、もしデコーダ91へのAB(23: 17)入力がoooooi。
と等しく、そしてM A RK M E M ORY E N A B L E が表わされると、デコーダの第3の最下位の出力(2)は(LOW)と表明され 、その他すべては表明されないであろう。
書込可能化発生器92は5つの入力信号の関数である8個のアクティブロー書込 可能化信号を与える。発生器はMARK VECTOR0PERATION信号 の状態に依存して、2つの方法のうち1つを動作させる。もしMARK VEC TOR0PERATION信号が表わされるなら、書込可能化発生器72はAB  (2: 0)入力を無視し、そしてMARK MEMORY WRITE信号 が表わされるとき、すべての8個の書込可能を表わす。もしMARK VECT OR0PERATION信号が表わされないなら、書込可能化発生器92はMA RK MEMORY WRITE信号が表わされるとき、8個の書込可能化のう ち1つだけを表わすであろう。AB (2: 0)ラインは8個の書込可能化の どれが表わされるかを決定するためにデコードされる。
マルチプレクサ93はデータ出力ラインの1つがらMARK BIT 0UTP UT信号の値を選択する。AB(2: 0)ラインは8個の出力ラインのどれが 選択されるかを決定するために用いられる。
駆動ブoツク94はMARK VECTORREAD信号によって制御される8 個のトライステートドライバを含む。もしMARK VECTORREAD信号 が表わされるなら、トライステートドライバは可能化され、8個のデータ出力ラ インの値をデータバスDB (7: O)にゲートする。もしMARK VEC TORREAD信号が表わされないなら、ドライバはトライスデートされる。
第8A図のシスムチメモリをアクセスするとき、グラフマネージャ10は各マー クピットがその関連したノード−概念的にはノードの65番目のビットとともに 直接にストアされているのを見る。マークメモリ83へのグラフマネージャのア クセスを可能にする2つのシステムメモリ動作がある。両方がマークビットをま ず最初に読出し、そして次にどちらかがそれをセットまたはリセットする。これ らは単一のシステムメモリ動作であると考えられるが、実際には2つのマークメ モリ動作が行なわれる。マークピットは動作の第1のクロックの間に読出されそ してストアされ、次に第2のクロックの間に七ノドまたはりセットされる。
1つのマー りじツトのみにアクセスするマー クメ(m−1,I 83によっ て行なわれた動作はtit−tr・タト動作とされろ。MARK VECTOR op Eh AT xo N sxc NAx。
はずべてのill −ビット マークメモリアドレスAB(23:17)のIK?!、−、1位の7ビツトは第 8B図のデコーダ91によって用いられ、メモリア1/イ90のR,A Mの1 行を選択する。アドレスAB(16: Nlの各々の単一ビットをアト1/スするのに用いられる。MA RK M E  M ORY W RI T E信号は表わさ4z−4”、 ytモリアレ・イ 90のデータ出力ラインへ8個のアドレスされたビットの転送を可能にする。最 下位のメモリアドレスAB (2: 0)の3ビツトはマルチプレクサによって 用いられ、MARK B IT 0LITPUT信号のソ・−スとし68個の出 力ラインの1一つを選択する。MARK BITOUTPUT信号はそれがスト 1されているグラフマネージャにまで行く。
単一ビット書込みはマークメモリ単一ビットのセラ!・およびリセット動作を実 行するのに用いられる。メモリアドレスAB(23:17)の最」1位の7ビツ トはデコーダ91によって用いられ、メモリアレイ90のRAMの1行を選択す る。7′ドレスAB (16: のビットは、8個の選択されたRAMの各々の単一ビットをアドレスするために 用いられる。MARK BIT IN信号はセット動作に対しては1そしてリセ ット動作に対しては0である。MARK MEMOR¥ WRITE信号が表わ されると、8個の書込可能化信号の1つが強制的に表わされるようにし、こうし てMARK BIT IN信号の値がアドレスされたビットの1つだけに書込ま れることを引き起こす。アドレスAB (2: 0)の最下位の3ビツトは書込 可能化のどれが表わされるかを決定するであろう。
第2図のシステムメモリ11にアクセスするとき、アロケータ12は各マークピ ットが8ビツトマークベクトルのメモリにストアされているのを見る。アロケー タ12はこ、れらのマークピットルを読出しまたはリセットすることができる。
アロケータ12によって与えられたアドレスは8の倍数であり、最下位の3ビツ トは常にOである。マークベクトルにアクセスする第8A図のマークメモリ83 によって行なわれる動作はマークベクトル動作といわれる。MARK VECT OR0PERATION信号はすべてのマークベクトル動作に対して表わされる であろう。
メモリアドレスAB(23:17)の最上位の7ビツトはデコーダ91によって 用いられ、メモリアレイ90のRAMの1行を選択する。アドレスAB(16: 3)の次の14の最下位ビットは選択されたRAMの各々の単一ビットをアドレ スするために用いられる。MARK MEMORY WRITE信号は表わされ ず、メモリアレイ90のデータ出力ラインへの8個のアト1ノスされたビットの 転送を可能ニスル。MARK VECTORREAD信号は表わされ、ドライバ 94を介(7てデータバスDB (7’: 0)の最下位の8個のラインl−に 8個のデータ出力ラインの値をゲートする。アロケータは第7A図のベクトル検 査器71のデータバス上でデータをラッチする。
マークベクトル書込はマークメモリリセット動作を行なうのに用いられる。メモ リアドレスAB (23: 16)の最」1位の7ビツトはデ;1− ダ91に よ−)で用いられ、メモリアレイ90のRA Mの1行を選択する。アドレスA B(16: たR A Mの各々の単一ビットをアトl、・・スするのに用いられる。MAR K BIT IN信号はリセッI・動作のために0である。>i A RK M  E M ORY ’A’ RI T E信号が表わされ、すべての8個の書込 =1能化信号が強制的に表わされるようにし5、こうしてh・IARK BIT  IN信号の値が8個のすべてのアドレスされたビットに書込まれることを引き 起こす。これはアドレスされたマークベクトルをリセットするてあろ・)。
第8A図のノードメモリ84は従来のメモリで、幅が1ノードである。これもま たエラー修正のために1個のノードにつき8個の検査ビットを含む。エラー検出 器および修正器85はノードメモリ84で発生するかもしれない、いがなるエラ ーも検出しそして修正する。これは各々の64とットワードに8個の検査ビット をストアすることによって行なわれる。これらの検査ビットを用いて、すべての 単一ビットエラーは修正され、すべての2倍およびいくつかの多数ビットのエラ ーもまた検出されることができる。
エラー修正は最大の性能のために「脇で(on i、heside)Jなされる であろう。これは修正されなかったデータか直接にリクエスタに戻され、それと 同時にEDCによって検査されることを意味する。もしエラーが検出されると、 データ修正が行なわれ得るようにメモリサイクルは延ばされる。
エラーの起こる可能性がわずかであるので、サイクルは滅多に延ばされることな く、そしてメモリは修正されなかったメモリと同じ速度で働く。
結語 可変自在応用言語コードを用いる2進のグラフとしてストアされるプログラムを 評価する縮小プロセッサのためのアロケータおよびシステムメモリが、上で説明 されてきた。
これらのグラフはノードからなり、これは物理的にはシステムメモリ内の記憶ロ ケーションであり、そして縮小プロセッサは新しいノードを必要とし、そしてま たその縮小処理の間、ノードまたは記憶ロケーションを捨てる。メモリ内に存在 する時、各ノードはその最上位ビットとしてマークビットを含み、これはセット されたとき、ノードがグラフに用いられていることを示し、そしてリセットされ たとき、ノ〜 ドまた11.1′記憶ロケーシヨンがグラフマネージャによる将 来の使用利用可能であることを示す。
グラフマネージャおよびアロケータはとともに動作し、グラフマネー ジャIJ それらの縮小処理での使用のためにメモリにストアされる種々のノードをマーク し、一方アロケータは用いられていない記憶ロケ−シコンがあるかどうかを見る ために記憶ロケ−ションの選択されたグループを走査し、そして次にグラフマネ ージャによって用いるためにキュー内にそれらの用いられていない記憶ロケーシ ョンのアドレスを置く。多数の記憶ロケーションを平行に走査することに適応さ せるために、システムメモリはノードメモリおよびマークビットメモリに分割さ れ、そのため多数のシーケンシャル記憶ロケーションのためのマークビットは平 行に検査され、どのノードロケーションがグラフマネー、ジャによる使用に対1 .て空いているかを決定する。
この発明の1つの実施例だ1」が開示されたが、当業者にとって変形および修正 が特許請求範囲に記載の発明の精神および範囲から逸脱することなしになされて もよいことは明らかであろう。
FIG、2゜ FIG、4゜ 国際調を報告

Claims (10)

    【特許請求の範囲】
  1. 1.複数個の記憶ロケーションを有する記憶ロケーションメモリと; 複数個のマークビット位置を含むマークビットメモリとを含み、その位置の各々 が前記記憶ロケーションメモリの記億ロケーションに対応し、マークビットがセ ットされるとそのロケーションが割当てられ、マークビットがリセットされると 対応する記億ロケーションが使用可能であることを示す、処理システム。
  2. 2.記憶ロケーションの前記メモリと前記マークビットメモリに結合され、両方 のメモリに平行にアクセスするためのメモリアクセス手段をさらに含む、請求の 範囲第1項に記載のシステム。
  3. 3.前記マークビットメモリをアクセスするためのマークビットアクセス手段を さらに含む、請求の範囲第1項に記載のシステム。
  4. 4.前記マークビットアクセス手段が、前記記憶ロケーションメモリの複数個の シーケンシャル記憶ロケーションを表わす複数個のマークビットをアクセスする 並列アドレス手段を含む、請求の範囲第1項に記載のシステム。
  5. 5.前記マークビットアクセス手段が、前記マークビットメモリの単一のマーク ビット位置にアクセスするための手段を含む、請求の範囲第3項に記載のシステ ム。
  6. 6.記億ロケーションのメモリと; 複数個のマークされたビット位置を有するマークビットメモリとを含み、その位 置の各々が、前記メモリの前記記憶ロケーションの1つに対応し、そのマークビ ット位置はセットされると対応する記憶ロケーションが割当てられ、そしてリセ ットされると対応する記憶ロケーションが使用可能であることを示し; 記憶ロケーションの前記メモリと前記マークビットメモリの両方に結合される処 理手段と;さらに前記マークビットメモリおよび前記処理手段に結合され、使用 可能な記億ロケーションのロケーションのために前記マークビット位置を検査し 、それらのアドレスを前記処理手段に転送するための割当手段とを含む、処理シ ステム。
  7. 7.記憶ロケーションの前記メモリと前記マークビットメモリに結合され、両方 のメモリに平行にアクセスするためのメモリアクセス手段をさらに含む、請求の 範囲第6項に記載のシステム。
  8. 8.前記マークビットメモリにアクセスするためのマークビットアクセス手段を さらに含む、請求範囲第6項に記載のシステム。
  9. 9.前記マークビットアクセス手段が前記記憶ロケーションメモリの複数個のシ ーケンシャル記憶ロケーションを示す複数個のマークビットにアクセスするため の平行アドレス手段を含む、請求の範囲第8項に記載のシステム。
  10. 10.前記マークビットアクセス手段が前記マークビットメモリの単一のマーク ビット位置にアクセスするための手段を含む、請求の範囲第8項に記載のシステ ム。
JP61500657A 1985-01-11 1986-01-13 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケータ Expired - Lifetime JPH0731619B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US690842 1985-01-11
US06/690,842 US4616315A (en) 1985-01-11 1985-01-11 System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
PCT/US1986/000044 WO1986004168A1 (en) 1985-01-11 1986-01-13 System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Publications (2)

Publication Number Publication Date
JPS62501455A true JPS62501455A (ja) 1987-06-11
JPH0731619B2 JPH0731619B2 (ja) 1995-04-10

Family

ID=24774180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61500657A Expired - Lifetime JPH0731619B2 (ja) 1985-01-11 1986-01-13 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケータ

Country Status (6)

Country Link
US (1) US4616315A (ja)
EP (1) EP0187713B1 (ja)
JP (1) JPH0731619B2 (ja)
CA (1) CA1264200A (ja)
DE (1) DE3687277T2 (ja)
WO (1) WO1986004168A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8515482D0 (en) * 1985-06-19 1985-07-24 Int Computers Ltd Search apparatus
NL9001262A (nl) * 1990-06-05 1992-01-02 Oce Nederland Bv Werkwijze voor het in een logisch georganiseerd systeem, van door digrafen te representeren groepen van met elkaar in relatie staande entiteiten, distribueren van status-informatie betreffende een digraaf en een inrichting voor het toepassen van een dergelijke werkwijze.
SE9002558D0 (sv) * 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
CA2166420C (en) * 1993-07-01 2006-03-28 James R. Woodhill System and method for distributed storage management on networked computer systems
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6038665A (en) * 1996-12-03 2000-03-14 Fairbanks Systems Group System and method for backing up computer files over a wide area computer network
US8316345B2 (en) * 2007-06-01 2012-11-20 Microsoft Corporation Program abstraction based on program control

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3469239A (en) * 1965-12-02 1969-09-23 Hughes Aircraft Co Interlocking means for a multi-processor system
CH553450A (de) * 1972-12-19 1974-08-30 Hasler Ag Einrichtung zur buchfuehrung ueber die belegung von speicherzellen in einer datenverarbeitenden anlage.
NL7600816A (nl) * 1975-02-10 1976-08-12 Siemens Ag Geheugeninrichting.
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
JPS57111872A (en) * 1980-12-27 1982-07-12 Fujitsu Ltd List processing system
JPS5866157A (ja) * 1981-10-16 1983-04-20 Nec Corp 記憶セル

Also Published As

Publication number Publication date
CA1264200A (en) 1990-01-02
WO1986004168A1 (en) 1986-07-17
DE3687277T2 (de) 1993-04-15
JPH0731619B2 (ja) 1995-04-10
EP0187713A3 (en) 1989-08-30
US4616315A (en) 1986-10-07
EP0187713A2 (en) 1986-07-16
DE3687277D1 (de) 1993-01-28
EP0187713B1 (en) 1992-12-16

Similar Documents

Publication Publication Date Title
US7240159B2 (en) Data processor having cache memory
JP5077531B2 (ja) コマンド順序依存性を追跡する方法および装置
JP2776132B2 (ja) オペランド内の情報のスタティックおよびダイナミック・マスキングを兼ね備えるデータ処理システム
US20040103262A1 (en) Vector register file with arbitrary vector addressing
US3611306A (en) Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
JPS60179851A (ja) デ−タ処理装置
JPS6298440A (ja) プログラマブルアクセスメモリ
JPH04225431A (ja) 命令キャッシュ効率を増大するコンピュータ命令をコンパイルする方法
CA1157569A (en) Address pairing apparatus for a control store of a data processing system
US6463514B1 (en) Method to arbitrate for a cache block
US3624616A (en) Dynamic allocation of multidimensional array memory space
US5293622A (en) Computer system with input/output cache
US5283890A (en) Cache memory arrangement with write buffer pipeline providing for concurrent cache determinations
JPS62501455A (ja) 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケータ
US6553478B1 (en) Computer memory access
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
JPH0282330A (ja) ムーブアウト・システム
KR100861896B1 (ko) 데이터 프로세싱 장치 및 데이터 프로세싱 방법
EP0061586A2 (en) Data processing apparatus with extended general purpose registers
JPS62501526A (ja) 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮少プロセッサのためのシステムアロケータ
GB2037466A (en) Computer with cache memory
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
US6763421B2 (en) Instruction pair detection and pseudo ports for cache array