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

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

Info

Publication number
JPS62501526A
JPS62501526A JP61500666A JP50066686A JPS62501526A JP S62501526 A JPS62501526 A JP S62501526A JP 61500666 A JP61500666 A JP 61500666A JP 50066686 A JP50066686 A JP 50066686A JP S62501526 A JPS62501526 A JP S62501526A
Authority
JP
Japan
Prior art keywords
mark
address
mark bit
storage location
bits
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
JP61500666A
Other languages
English (en)
Other versions
JPH083801B2 (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 JPS62501526A publication Critical patent/JPS62501526A/ja
Publication of JPH083801B2 publication Critical patent/JPH083801B2/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

【発明の詳細な説明】 出題の出願に直接的または間接的に関連した米国特許出願は以下のとおりである 。
Gary Ey Logsdon等によって1984年6月5日出願され、「可 変自在の応用性言語コードを用いる2進方向のグラフとしてストアされたプログ ラムを評価する縮小プロセッサのためのグラフマネージャ(Graph Mar +agcr for a Reduction Processor Eval uating PrograIIls St、ored as Binary  Directed Graphs Employing Variable−F ree Applicatfve Language Codes) Jと題さ れる、連続番号第617.526号。
Gary E、 Logsdon等によって1984年6月5日に出願され、そ して「可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされ たプロゲラg Programs 5tored as 131nary Dt reeted Graphs Employing Varlable−Frc c Applicative Language Codes) J と題され る、連続番号第617,531号。
Gary E、Logsdonによって1984年6月5日に出願され、そして 「可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされたプ ログラムを評価する縮小プロセッサのための状態コンセントレータおよび中央記 憶(Condition Concentrator Central 5to reror a Reduction Proeessor Evaluatt ng Programs 5toredas Binary Directed  Graphs EIlploytng Variable−Free App licative Language Codes)Jと題される連続番号第6 1・7.532号。
Gary E、 Logsdon等によって1985年1月11日に出願され、 「可変自在の応用性言語コードを用いる2進方向のグラフとしてストアされたプ ログラムを評価する縮小プロセッサのためのアロケータ(AIlocator  rOr a Reduction Processor Evaluating  ProgralIls 5toredas Binary Directed  Graphs Employing Vartable−Free Appl icatfve [、anguage Codes) Jと題される連続番号第 690.846号。
この発明は2進方向のグラフとして表わされたプログラムを評価するようにされ たデジタルプロセッサのためのシステムメモリおよびアロケータに関するもので あって、特に同等のグラフの累進的な置換えによってそのようなグラフを評価す るプロセッサに関するものである。
先行技術の説明 今日、市場におけるほとんどのデジタルコンピュータは未だにJohn von  Neutnannによって最初に仮定された型であり、それらは指令の実行が シーケンシャルである。FORTRANおよびC0BOLのようなコンピュータ をプログラムするための最初のより高レベルの言語はこの編成を反映し、そして コンピュータによって実行されるアルゴリズムの設計と同様、記憶管理および制 御フローの管理の責任をプログラマに任せた。純LISPのような純粋な応用性 言語は、プログラマのこれらの管理責任を軽減することで命令言語とは異なる。
純LISPに代わるものはセイントアンドリューススタティック言語(Saln t Andrcws 5tatic Language)、すなわち5ASLで 、これはDavtd A、Turnerによって開発され$ (SASL言語マ ニュアル(SASL LanguageManual)、1976年、セイント  アントリユース大学)。
「コンビネータ(coa+blnator) Jと呼ばれる多数の定数を導入す ることによって、この言語は可変自在表示に変換されてもよい(D、A、Tur ner、r応用性言語のための新実現化例技術(A New Implemen tatlon Teehn!que forAppHcatlve Langu ages)Jソフトウェア−実践および経験(Sof’tvare−Pract ice and Uxperlenee)第9巻、31−49頁、1’979年 )。この表示は(アーギュメントの機能と、そして結果としてリターン機能をと ってもよい)より高いオーダの関数および(たとえ1個または2個以上のアーギ ュメントが規定されていなくても結果を戻してもよい)非厳密関数(non−s trlet I’unctjons)を取扱うのに特に有利である。
Turnerによって開発された実現比例技術は、プラス、マイナスなどのよう な1組の原始関数(priIIlitive f’unctions)およびよ り高いオーダの非厳密関数である1組のコンビネータを採用する。これらのオペ レータは置換規則によって正式に規定され、それらのいくつがの具体例はS f  g x−f x (g x) Y h−h (Y h) Cf x y=f y x 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−グラフとして知られる。
)置換規則はそのためグラフ変換規則として解釈されてもよく、これらのグラフ (およびそれゆえ、それらが表わすプログラム)は縮小で知られる処理中にがな り単純な性質のプロセッサによって評価されてもよい。そのような縮小プロセッ サは[可変自在応用性言語コードを用いる樹形のグラフとしてストアされたプロ グラムを実行するための縮小プロセッサ(Rcduction Process or for Executing Progra、ms 5tored as  Treel)ke Graphs Ea+playlng Varlable −Prcc Applfcatlve Language Codes)J と 題されるBoltOn等のアメリカ特許番号箱4,447,875号で開示され る。
縮小処理の詳細はTurnerの書類で見られるが簡単な具体例が役に立つ。第 1八図ないし第1D図は5ASLプログラムを表わすグラフの縮小を例示する。
サクセサ2 ここにおいて サクセサx−i+x このプログラムは1ilA図のグラフで表わされるコンビネータの表現 Cl2(プラス1) に解釈(コンパイル)される。このグラフの連続的な変換は以下のものを生み出 す。
I (プラス1) 2 C規則を用いる(第1B図)プラス 12 1規則を用 いる(第1c図)3 プラス規則を用いる(第1D図) グラフを減じるために行なわれる置換は、ポインタおよびコンビネータコードの ような多数の異なるデータの操作を必要とし、これらのデータはレジスタファイ ル内を1つのロケーションからさらに別のロケーションにシフトされる。上に引 用されたBo l t On等の出願で開示された実施例では、各グラフ縮小段 階はレジスタファイル転送のシーケンスを必要とした。しかしながら多くの場合 、レジスタ間の必要な転送は同時に行なわれ、速度がその結果増加する。
これらの転送の1つを行なった後、プロセッサは次の変換位置をめてグラフを横 切らなくてはならない([リデックス(redex)Jと呼ばれる)。この探索 の間、ノードは検査され、モしてノードの左側がポインタを示すがまたはコンビ ネータを示すかを判定するといった様々な検査が行なわれる。再び、Bo 1  t on等の出願で説明された機械では、これらの検査はシーケンシャルに行な われなくてはならないが、多くの場合これらの検査は同時に行なわれ得る。
そこでこの発明の目的は、一連の置換を通して2進方向のグラフ評価のための改 良された処理システムを提供することである。
この発明の別の目的は、各置換が多数の同時のレジスタの転送によ7てより速く 達成されることができるプロセッサを提供することである。
この発明のさらに別の目的は、アロケータが、それぞれのグラフを評価する際に 用いるための縮小プロセッサへの転送のだめの新しいノードのアドレスを選択す るような縮小プロセッサのためのアロケータおよびシステムメモリを提供するこ とである。
発明の要約 上で確認された目的を達成するために、この発明は応用性言語縮小(reduc t ton)ブロセーIすに用いるためのアロケータおよびシステムメモリにあ る。アロケータはシステムメモリに結合され、関数の置換に必要なシステムメモ リ上の新しいノードのアドレスを選択する。
この発明の特徴は2進方向のグラフで表わされた応用性言語プログラムを評価す るように意図された縮小プロセッサのためのアロケータおよびシステムメモリに ある。
図面の簡単な説明 この発明の上記およびその他の目的、利点および特徴は図面に関連して以下の明 細書を検討することで容易に明らかとなるであろう。
第1A; B、C,およびD図はこの発明が意図される型の2進の方向のグラフ を示す。
第2図はこの発明を採用するシステムを例示する。
第3図はこの発明のグラフマネージャセクションの図である。
第4図はこの発明のデータセクションの図である。
第5図はこの発明の状態コンセントレータの図である。
第6図はそこからグラフが形成される型のノードのフォーマットの図である。
第7A図ないし0図はこの発明のアロケータを詳細に示す図である。
第8A図およびB図はこの発明のシステムメモリの図である。
発明の詳細な説明 この発明を用いるシステムは′:j12図に例示される。主たる要素はグラフマ ネージャ10でこれは減じられるべきグラフのいつかのノードを蓄え、グラフ縮 小に必要な一連の置換を行なうためにそれらのノードが操作されることを可能に するデータセクションを含む。システムはグラフのノードのすべてに記憶を与え るシステムメモリ11と、それらのアドレスがグラフマネージャによって用いら れるために待機する、使用されていないワードをめてシステムメモリを走査する アロケータ12とを含む。アロケータはまた、待機アドレスの数のカウントを維 持する。サービスプロセッサ13はホストプロセッサ(図示されていない)への 非常に様々なデータ転送を支持し、また、浮動少数点演算設備も備える。
先行技術のシステムのグラフ縮小技術に関する特定の問題は、第1八図ないし第 1D図を再び参照してより良く例示され得る。第1A図のグラフから第1B図へ の変換において、ノードbの右のセルの内容物はノードaの右のセルに転送され なくてはならず、ノードCの右のセルはノードfの左のセルに転送されなくては ならず、そしてノードaの右のセルはノードfの右のセルに転送されなくてはな らない。先行技術の縮小プロセッサでは、この一連の転送はシーケンシャルに行 なわれ、そして第1B図のグラフを第1C図のそれに、そして以下そのように縮 小するために同様の一連の転送が行なわれた。この発明の目的は並列レジスタ転 送機構を提供することであり、それによってレジスタ転送の各シーケンスが同時 に行なわれ、こうし5て縮小処理の速度を上げる。
先行技術のシステムに関するさらに別の問題は、縮小処理を導く状態(cond  it 1on)の検査に関する。第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図に示され、これはレジスタファイル30にストア されたノードの原型をストアするために用いられるスタックメモリである。第4 図の演算論理装置32は簡単な算術演算子を実行し、そしてバスインク−フェイ スユニット31はシステムメモリおよびシステムの他のユニットと交信する。
第3図の状態コンセントレータ21は、第5図により詳細に説明される。これは 演算論理装置32、アロゲータ12およびサー ビスプロセッサ13からと同様 、レジスタファイル30からの入力も受取る。これらの入力は13の「状態グル ープ」に集められる。40aないし40rnの各ガード発生器は、1組のガード に状態グループを写像する。
これは以下により詳細に説明される。検査サイクルの間、各ガード発生器はその ガードのサブセットをガードバス41に向け、このバスは優先順位エンコーダ4 2への入力である16行のオーブンコレクタバスである。優先順位エンコーダの 出力は幅4ピッ!・で、最高位の優先順位の真のガードを同定し、そこではライ ン0のガードが最高位の優先順位を有し、ライン15のガードが最低位の優先順 位を有する。この出力は変位値として用いられ、これは第3図の制御レジスタ2 2aからのベースアドレスと結び付けられて、制御記憶22bに次のマイクロ命 令のアドレスを発生する。
ノードのフォーマット 上に示されるように、第6図はSKグラフのノードがシステムメモリ11、レジ スタファイル30の種々のレジスタおよび経路バッファ50内にあるフォーマッ トを例示する。各ノードは4ビツトのノード型フィールド(NT)、マークピッ トおよび各々が30ビツトの左と右のセルのフィールド(LCおよびRC)を含 む。左および右のセルフイールドはさらに、2ビツトのセル型フィールド(CT )、4ビツトのサブ型フィールド(ST)および24ビツトの内容物フィールド (C)に再分割される。種々のSK演算子および値はこれらのフィールドの特別 な値の組合わせでコード化される。
アロケータおよびシステムメモリ 第2図のシステムメモリ11はノードの像およびそれらの関連したマークピット をストアするために特定的に設計されている。SK線縮小間、ノードはグラフに 加えられ、そしてそこから捨てられる。グラフに加えられるノードは新しいノー ドと呼ばれ、そしてグラフから捨てられるノードは不要部分ノードと呼ばれる。
それらが新しいノードとして再利用されるように不要部分の整理は不要部分のノ ードを集める処理である。この発明は2つの明確な段階、すなわちマーク段階と その後の走査段階からなるマーク走査(Mark−8can)アルゴリズムを用 いる。
メモリの各ノードは上に示されたように、関連したマークピットを有する。マー ク段階の間、アクティブなグラフ全体は交差し、それが訪れられるとき各ノード のマークピットをセットする。それゆえ、マーク段階の最後ではグラフのノード と関連したマークピットはセットされ、そしてその他すべてがリセットされる。
走査段階の間、メモリの各ノードに対するマークピットはシーケンシャルに走査 される。各マークピットが一度検査されると、2つのうち1つの処置がとられる : もしマークピットがセットされるなら、関連したノードはグラフ内にあり、再使 用されることができない。マークピットは次のマーキング段階の準備をしてリセ ットされる; もしマークピットがリセットされるなら、関連したノードは縮少’It (re dueer)によって再使用されてもよい。それが新しいノードに対して縮少器 によるいくつかの未来の要求に応答して、出されているよ・)に、この場合、ノ ードのアドレスはrセーブコされなくてはならない。これらの「セーブされた」 アドレスは新しいノードアドレス(N N A)と名付けられる。
伝統的な実現化例では、縮小はすべてのマークピットが調べられた後に再び始め られる。
この発明では、マーク段階は縮小を行なうのと同じプロセッサ、すなわち第2図 のグラフマネージャ10によって行なわれる。しかしながら、走査段階は特別な 目的のプロセッサのアロケータ12によって行なわれる。走査機能を果たすため にはグラフマネージャ10が必要とされないので、それはマーク段階を完了する や否や縮小を再び始めることができる。同時に、アロケータ12はマークのない ノードを捜してメモリを走査し始め、それはそれからグラフマネージャ12によ って用いられるために待機する。
走査段階は縮小と同時に行なわれるので、この実施例で不要部分整理の休止の有 効な長さは単にマーク段階で費される時間であり、これは伝統的な実現化例にお けるよりも大いに短く、そして(メモリのサイズではなく)グラフのサイズのみ に依存する。
」−で述べられたように、アロケータ12の唯一の目的はグラフマネージャ10 に縮小の間、再使用が可能であるノードのアドレスを供給することである。アロ ケータ12は、それらの関連したマークピットがリセットされたノードをめてメ モリを走査することによって、これらのノードを位置決めする。これらのノード のアドレスはそれから、グラフマネージャに新しいノードアドレスを供給する、 待ち行列(ノードキュー)に置かれる。
縮小の間、アロケータ12およびグラフマネージャ10は両方ともシステムメモ リ11にアクセスし、アロケータ12はマークピットを読出しそしてリセットし 、そしてグラフマネージャ10はノ・−ドにアクセスする。メモリコンテンショ ンを減じるために、メモリ動作の特別なセットがアロケータ12で利用可能であ る。アロケータ12はマークピットのみに関連があり、モしてノードの内容物に は関連がないのでそれが可能となるこれらの動作は、マークベクトルへのアクセ スを可能にする。マークベクトルは8個のシーケンシャルアドレスでノードのマ ークピットを含むビットベクトルである。マークベクトルは2つのクロックの通 常のメモリアクセスの代わりに、1つのクロックでアクセスされることができる 。こうして、特別な動作を用いて、アロケータは16クロツクの代わりに1つの クロックで8個のマークピットにアクセスすることができる。
第2図のアロケータ12は第7A図に、より詳細に例示される。これは3つの機 能ユニット、すなわち、ベクトルフエツチャ70と、ベクトル検査器71と、ノ ードキュー72とからなる。ベクトルフエツチャ70は第7B図に、より詳細に 例示される。
ベクトルフェッチャ70は処理するためにベクトル検査器71にマークベクトル を供給する。ベクトル検査器71がベクトルをリフストするときはいつでも、ベ クトルフェッチャ70は第2図のシステムメモリ11からベクトルを読出し、そ してそれをベクトル検査器71に転送する。次にベクトルフェッチャは、読出さ れたばかりのマークベクトルに対してシステムメモリ11のマー・・クビットを リセットするメモリ動作を開始する。これは走査段階が終わると、走査されたす べてのマークピットがリセットされることを確実にする。゛ベクトルフェッチャ 70は第7B図に、より詳細に例示される。
マーク段階の間、第2図のサービスプロセッサ13は、一旦走査段階が始まると 走査されるべきマークベクトルの数を第7B図の走査カウントレジスタ53にロ ードする。
マークベクトルが処理されるたびに、走査カウントレジスタ73は減少する。レ ジスタの値がOに等しいとき、マークベクトルのフェッチングは終了し、そして 走査完了信号が表わされる。このレジスタは長さが21ビツトである。
また、マーク段階の間、第2図のサービスプロセッサ13は、−1走査段階が始 まると走査されるべき第1のマークベクトルのアドレスをMVアドレスレジスタ 74にロードする。レジスタはアドレスの最上位の21ビツトを含み(最下位の 3ビツトはいつも零に等しい)、そし、て新1.いマークベクトルの各々がメモ リから読出される前に増加する。
ベクトルフエツチャ状態機械75はベクトルフエッチャの動作を制御する。上に 述べられたように、走査段階が始まる前に、MVアドレスレジスタ74および走 査カウントレジスタ73にはそれらの最初の値がロードされる。走査段階が一旦 始まると、ベクトルフエツチャ状態機械はMVアドレスレジスタ74によってア ドレスされたマークベクトルを読出す。ベクトルフエツチャ状態機械75はメモ リのインターフェイス信号を操作することによって、この読出しを行なう。マー クベクトルがデータバスDB (7: 0)」二に存在するとき、状態機械75 はBEGIN CHECK信号を表わして第7A図のベクトル検査器71に知ら せる。
一旦マークベクトルがベクトル検査器71によ−)で受取られると、状態機械7 5はメモリインターフェイス信号を用い゛r、MVアドレス!−・ジスタフ4に よってアドレスされたマー クベクトル内にマークピッ1−をリセットするさら に別のメモリ動作を実行する。リセット動作が尤了すると、状態機械75はベク トル検査器71からのCHECK 0VER信号がベクトル検査器71がさらに 別のマークベクトルを必要としていることを示して表わされるまで、アイドルの ままである。リセット動作と同時に、状態機械75はMVアドレスレジスタ74 を増加させ、そL5て走査カウントレジスタ73を減少させる。もし2走査カウ ント1/ジスタフ3が零でないなら、さらに別のマークベクトルか以前に説明さ れたようにフェッチされる。もし走査カウントレジスタ73が零なら、走査完了 信号がグラフマネージャに表わされる。もし走査完了が表明され、そして十分な ノードが表わされないなら、グラフマネージャは不要部分の整理を開始する。
ベクトル検査器71は受取られた化ベクトルから8個までのノードアドレスを発 生する。これらのアドレスは発生されると第7A図のノードキューに加えられる 。ベクトル検査器7】はもしノードキュー72からのFULL信号が表わされな いなら、ベクトルフェッチャ70からマークベクトルを要求する。第7A図のベ クトル検査器71は第7C図により詳細に例示される。
第7C図において、アト1/スカウンタ76は簡単には新しいノードアドレス( NNA)の最上位の21ビツトを含む、アップカウンタである。走査段階が始ま る前に、アドレスカウンタ76は第7B図のMVアドレスレジスタ74より1つ 少ない値に等しい値がロードされる。一旦走査段階が始まると、第7A図のベク トルフェッチャがBEG IN CHECK信号を表わすごとに、アドレスカウ ンタ76は増加し、そして新しいマークベクトルがベクトルレジスタ77にロー ドされる。ベクトルレジスタ77は8ビツト幅のレジスタである。セット論理8 0の出力はこのレジスタへの入力で、出力はエンコーダ78に行く。エンコーダ 78はベクトルレジスタ77の値に基づいた3ビット変位を発生する。変位はベ クトルの最下位のマークのないビットの順序を示す位置に対応する。たとえば、 ベクトルは3の変位を発生する。ベクトルに少なくとも1つのマークのないビッ トがある限り、新しいノードアドレスVALID信号がベクトル検査器71から の新しいノードアドレスが有効で、そしてキュー72にロードされるべきことを 第7A図のノードキュー72に示し、て、表わされるであろう。もしベクトルレ ジスタ77の出力がすべて1なら、エンコーダ80はCHECK 0VER信号 を表わし、新しいマークベロトルがベクトルレジスタ77にロードされてもよい ことをベクトルフェッチャに示すであろう。
変位レジスタ79は新しいノードアドレスの最下位の3ビツトを含むレジスタで ある。エンコーダ78が新しい変位を発生するごとにそれはロードされる。24 ビツトの新しいノードアドレスは単に3ビット変位レジスタと21ビットアドレ スカウンタ76の連結である。
セット論理80はBEGIN CHECK信号の状態に依存して2つの・うちの 1つの方法で動作する。もしBEGIN CHECK信号が表わされるなら、ベ クトルレジスタ77にロードされるべきマークベクトルがデータバスDB (7 : 0)上に存在する。ゆ入に、セツI−論理80は単にベクトルレジスタ77 にロードされるべく、マークベクトルを変化されないままで通過する。
もしBEGIN CHECK信号が表わされないなら、セット論理80はベクト ルレジスタ77の出力をとり、最下位のOビットを1にセットし、そして新しい 値をベクトルレジスタの入力に供給する。たとえば、もし7ベクI・ルレジスタ 77が値 を含むなら、次のクロック上でベクトルレジスタフ7にロー ドされるべきセッ ト論理80の出力はとなるであろう。要約すると、ベクトルレジスタ77の値は 、レジスタ内に少なくとも1つのマークのないビット(0)がある限り、各クロ ック上でセット論理80によつて換えられる。ベクトルレジスタ77の値の名々 に対して、エンコーダ78は変位1.・ジスタフ9に口=−ドさAする新り、い 変位を生み出す。
第7A図のノードキュー72は第2図のグラフマネージャ10による将来の使用 のために、新しい、ノードアドレスをストアするために用いられる。ノードキュ ー72は幅が24ビツトで、深さが256エントリである。新しい5ノードアド レスはそれらが発生されるとベクトル検査器71によってキュー・にロードされ 、それらが必要とさねると、グラフマネージャによってキューから取り除かれる 。
ノードキュー72と関連したカウンタは、キュ・−の中の多数のノードの後をた どり、そして2つの信号を発生するために用いられる。FULL信号はキューが それ以上いかなる新しいノードアドレスをも受取ることができないときに表わさ れる。ベクトルフェッチャ70はF U L 1.信号が表わされるまでマーク ベクトルをフェッチし続け、そうして、その信号が表わされるとそれはメモリか らマークベクトルを要求することを停止する。それからアロケータ12は一時的 にアイドルになり、再び始めるためにノー ドキューでの十分な余裕を待つ。
ENOUGHN0DES信号はキュー72に9個または10個以上のノードがあ るどきに表わされる。グラフマネージャ10はコンビネータの実行を完成するの に十分な新しいノードアドレスがあるかを確かめるために、コンビネータを実行 する前にこの信号を検査する。
第2図のシステムメモリ11はその3つのりクゴスタ、すなわちグラフマネージ ャ10、アロケータ13、および第8A図のりフレッシュ論理、のための様々な 演井を支持する。各メモリアクセスに必要とされるタロツク数は、行なわれる動 作の型に依存する。利用可能なメ王り動作は以下のとおりである。すなわち、ノ ー ドおよびマークピットを読出す、ノー ドおよびマークピットを読出1−、 、次にマークピットをセットする、ノードおよびマークピットを読出し、次にマ ークピットをリセットする、ノードを書込む、マークベクトルを読出す、マーク ベクトルをリセットする、リフレッシュする、要求をしない。
バスアービタ86の目的はシステムメモリ\のアクセスを制御することである。
バスは実際にはデータバスとアドレスバスの2つのバスからなる。バスは第2図 の4つの主要機能ユニットの中でデータを転送するために用いられる。
バスlの転送のほとんどがシステムメモリ11を含む。それゆえ、簡潔さのため に、バスへのアクセスはシステムメモリ11が次の動作を滲実行する準備ができ ているとき(すなわちそれがアイドルであるとき)のみに可能である。
バスアービタはバス利用可能(BUSAVL)信号を表わすことによってバスが 利用可能であることを示す。
メモリタイミングおよび制御81は以下に説明される2個の記憶アレイに制御情 報およびタイミング信号を提供する。タイミングおよび制御信号の発生は選択さ れた動作に依存する。
ノードのためのマークピットは、マークメモリ83にストアされる。これらのマ ークピットは行なわわている動作の型に依存して、2つの方法の1つでアクセス され得る。
マークメモリ83のマークメモリア1ノイ90はm8 B図により詳細に示され 、そして各々が14のアドレス入力と、チップ可能化入力と、書込可能化入力と 、データ入力と、データ出力とを有する16KX1のスタティックRAMから形 成される。もし、チップが選択され(すなわちチップ可能化が表わされ)、モし て書込可能化が表わされるなら、データ人力にある値はアドレスされたロク“− ジョンでストアされるであろう。もし、チップが選択され、そし°C書込可能化 が表わされないなら、アドレスロケータ3ンにストアされた値はデー タ出力に 存在するであろう。もしチップが可能化されないなら、データ出力はトライステ ートされ、そしてRAMの内容物は葉化しないままである。
第8B図は、ボードパーティシコニングの付加された複雑さを無視して、マーク メモリがどのように構成されているかを機能的に例示し2ている。アドレスバス AB (17:3)からの14個のビットおよびMARK BIT IN信号は メモリア1ノ・イのずべ°CのRAMに送られる。8個のRAMの各行は独自の チップ可能化信号を有する。RAMの8列の各々は独自の書込可能化および共有 データ出力ラインを有する。
デコーダ91は7つの2進の重みが付1ノられた入力AB(23二1.7)を受 取り、そして可能化されると、128個の相互に排他的なアクティブロー出力( 0−127)を与える。デコーダ91はM A P、 K M E M ORY  E N A13 L E信号が表わされると可能化される。デコーダ71が不 能化にされると、すべての出力が表わさA1ない。たとんば、もしデコーダ91 ・\のAB(23;17)入力がと等しく、そしてM A RK M E M  ORY E N A B L Eが表わされると、デコーダの第3の最F位の出 力(2)は(LOW)と表明され、その他すべては表明されないであろう。
書込可能化発生器92は5つの入力信号の関数である8個の7′クチイブロ一書 込可能化信号を与える。発生器はMARK VECTOR0PERATION信 号の状態に依存して、2つの方法のうち1づを動作させる。もしMARK VE CTOR0PERATION信号が表イ〕されるなら、書込可能化発生器72は AB (2: 0)入力を無視し、そしてM A RK M E M ORY  W RI TE倍信号表わされるとき、すべての8個の書込可能を表わす。もし MARK VECTOROr’ERATION信号が表わされないなら、書込可 能化発生器92はMARK MEMORY WRITE信号が表わされるとき、 8個の書込可能化のうち1つだけを表わすであろう。AB (2: 0)ライン は8個の書込可能化のどれが表わされるかを決定するためにデコードされる。
マルチプレクサ93はデータ出力ラインの1つからMARK BIT 0UTP UT信号の値を選択する。AB(2: 0)ラインは8個の出力ラインのどれが 選択されるかを決定するために用いられる。
駆動ブロック94はMARK VECTORREAD信号によって制御される8 個のトライステートドライバを含む。もしMARK VECTORREAD信号 が表わされるなら、トライステートドライバは可能化され、8個のデータ出力ラ インの値をデータバスDB (7: 0)にゲートする。もしMARK VEC TORREAD信号が表わされないなら、ドライバはトライステートされる。
第8A図のシスムチメモリをアクセスするとき、グラフマネージャ10は各マー クビットがその関連したノード−概念的にはノードの65番目のビットとともに 直接にストアされているのを見る。マークメモリ83へのグラフマネージャのア クセスを可能にする2つのシステムメモリ動作がある。両方がマークピットをま ず最初に読出し、そして次にどちらかがそれをセットまたはリセットする。これ らは単一のシステムメモリ動作であると考えられるが、実際には2つのマークメ モリ動作が行なわれる。マークピットは動作の第1のクロックの間に読出されそ してストアされ、次に第2のクロックの間にセットまたはリセットされる。
1つのマークピットのみにアクセスするマークメモリ83によって行なわれた動 作は単一ビット動作とされる。MARK VECTOR0PERAT1ON 5 IGNALはすべての単一ビット動作に対し5て表わされないであろう。
マークメモリアドレスAB(23:17)の最」1位の7ビツトは第8B図のデ コーダ91によっC用いられ、メモリアレイ90のRAMの1行を選択する。ア ドレスAB(16: 3)の次の14の最下位ビットは選択されたRAMの各々 の単一ビットをアドレスするのに用いられる。MARK N・iEMOR,Y  WRITE信号は表わされず、メモリアレイ90のデータ出力ラインへ8個の7 ドレスされたビットの転送を可能にする。最下位のメモリアドレスAB (2:  0)の3ビツトはマルチブレク9によっC用いられ、MARK B IT 0 UTPUT信号のソースとして8個の出力う・インの1つを選択する。MARK  BITOU T P U T信号はそれがストアされているグラフマネージャ にまで行く。
単一ビット書込みはマークメモリ単一ビットのセットおよびリセット動作を実行 するのに用いられる。メモリアドレスAB (23: 17)の最上位の7ビツ トはデコーダ91によって用いられ、メモリアレイ90のRAMの1行を選択す る。アドレスAB(16:3)の次の14の最下位のビットは、8個の選択され たRAMの各々の単一ビットをアドレスするために用いられる。MARK BI T IN信号はセット動作に対しては1そしてリセット動作に対しては0である 。MARK ME〜l0RY WRITE信号が表わされると、8個の書込可能 化信号の1つが強制的に表わされるようにし、こうしてMARK BIT IN 信号の値がアドレスされたビットの1つだけに書込まれることを引き起こす。ア ドレスAB (2; 0)の最下位の3ビツトは書込可能化のどれが表わされる かを決定するであろう。
第2図のシステムメモリ11にアクセスするとき、アロケータ12は各マークピ ットが8ビツトマークベクトルのメモリにストアされているのを見る。アロケー タ12はこれらのマークベクトルを読出しまたはリセットすることができる。ア ロケータ12によって与えられたアドレスは8の倍数であり、最下位の3ビツト は常に0である。マークベクトルにアクセスするz B A図のマークメモリ8 3によって行なわれる動作はマークベクトル動作といわれる。MARK VEC TOR0PERATION信号はすべてのマークベクトル動作に対して表わされ るであろう。
メモリアドレスAB(23:17)の最上位の7ビツトはデコーダ91によって 用いられ、メモリアレイ90のRAMの1行を選択する。アドレスAB(16: 3)の次の14の最下位ビットは選択されたRAMの各々の単一ビットをアドレ スするために用いられる。MARK MEMORY WRITE信号は表わされ ず、メモリアレイ90のデータ出力ラインへの8個の7ドレスされたビットの転 送を可能にする。MARK VECTORREAD信号は表わされ、ドライバ9 4を介してデータバスDB (7: 0’)の最下位の8個のライン」−に8個 のデータ出力ラインの値をゲートする。アロケータは第7A図のベクトル検査器 71のデータバス上でデータをラッチする。
マークベクトル書込はマークメモリリセット動作を行なうのに用いられる。メモ リアドレスAB (23: 16)の最上位の7ビツトはデコーダ91によって 用いられ、メモリアレイ9GのRAMの1行を選択する。アドレスAB(16:  3)の次の14の最下位ビットは8個の選択されたRAMの各々の単一ビット をアドレスするのに用いられる。MARK BIT IN信号はリセット動作の ために0である。M、ARK MEMORY WRITE信号が表わされ、タベ ての8個の書込可能化信号が強制的に表わされるようにし、こうしてMARK  I(IT IN信号の値が8個のすべてのアト1/スされたビットに岩込まれる ことを引き起こす。これはアドレスされたマークベクトルをリセットするであろ う。
第8A図の°ノードメモリ84は従来のメモリで、幅が1ノードである。これも またエラー修正のために1個のノードにつき8個の検査ビットを含む。エラー検 出器および修正器85はノードメモリ84で発生ずるかもしれない、いかなるエ ラーも検出し、そして修正する。これは各々の64ビツトワードに8個の検査ビ ットをストアすることによって行なわれる。これらの検査ビットを用いて、すべ ての1li−ビットエラーは修正され、すべての2倍およびいくつかの多数ビッ トのエラーもまた検出されることができる。
エラー修正は最大の性能のために「脇で(on the 5jde)Jなされる であろう。これは修正されなかったデータが直接にリクエスタに戻され、それと 同時にEDCによって検査されることを意味する。もしエラーが検出されると、 データ修正が行なオ)れ得るようにメモリサイクルは延ばされる。
エラーの起こる可能性がわずかであるので、サイクルは滅多に延ばされることな く、そしてメモリは修正されなかったメモリと同じ速度で働く。
結語 可変自在応用言語コードを用いる2進のグラフと17でストアされるプログラム を評価する縮小プロセッサのためのアロケータおよびシステムメモリが、上で説 明されてきた。
これらのグラフはノードからなり、これは物理的にはシステムメモリ内の記憶ロ ケーションであり、そして縮小プロセッサは新しいノードを必要とし、そしてま たその縮小処理の間、ノードまたは記憶ロケーションを捨てる。メモリ内に存在 する時、各ノードはその最」二位ビットとしてマークピットを含み、これはセッ トされたとき、ノードがグラフに用いられていることを示し、そしてリセットさ れたとき、ノードまたはJ己憶ロケーションがグラフマネージャ(こよる将来の 使用利用可能であるごとを示す。
グラフマネージャおよびアロケータはとともに動作し、グラフマネージャはそれ らの縮小処理での使用のためにメモリにストアされる種々のノードをマークし、 一方アロケータは用いられていない記憶ロケ−=ジョンがあるがどうかを見るた めに記憶ロケーションの選択されたグループを走査し、そして次にグラフマネー ジャによって用いるためにキュー内にそれらの用いられていない記憶ロケーショ ンのアドレスを置く。多数の記憶ロケーションを平行に走査することに適応させ るために、システムメモリはノードメモリおよびマークピットメモリに分割され 、そのため多数のシーケンシャル記憶ロケーションのためのマークピットは平行 に検査され、どのノードロケーションがグラフマネージャによる使用に対して空 いているかを決定する。
この発明の1つの実施例だけが開示されたが、当業者にとつで変形および修正が 特許請求範囲に記載の発明の精神および範囲から逸脱することなしになされても よいことは明らかであろう。
FIG、2゜ FIG、4゜ J−一一 国際調査報告

Claims (10)

    【特許請求の範囲】
  1. 1.複数個の記憶ロケーションを持ったメモリを有する処理システムにおいて、 各記憶ロケーションはセットされると記憶ロケーションが使用のために割当てら れたことを示し、そしてリセットされると記憶ロケーションが使用可能であるこ とを示すマークビット位置を有し:前記メモリに結合され、複数個のシーケンシ ャル記憶ロケーションからマークビットを平行にフェッチするマークビットアド レス手段を含み、前記フェッチされたマークビットはマークビットベクトルを形 成し;前記マークビットアドレス手段に結合され、リセットにマークされたビッ トのための前記マークビットベクトルを検査するための検査手段と;さらに 前記マークビットベクトルのリセットマークビットによって示されるそれらの記 憶ロケーションのためのアドレスを形成するためのアドレス形成手段とを含む、 割当て手段。
  2. 2.前記アドレス発生手段に結合され、前記発生された記憶ロケーションアドレ スを受取るための待ち合わせ手段をさらに含む、特許請求の範囲第1項に記載の 割当て手段。
  3. 3.前記マークビットアドレス手段が、前記記憶ロケーションの前記マークビッ ト位置に結合され、平行にフェッチされたマークビットをリセットするリセット 手段を含む、請求の範囲第1項に記載の割当て手段。
  4. 4.前記マークビットアドレス手段が前記記憶ロケーションからフェッチされる べきマークビットベクトルの数のカウントを受取る走査カウント手段を含む、請 求の範囲第3項に記載の割当て手段。
  5. 5.マークビットベクトルを形成する各複数個のマークビットのフェッチの後に 、前記マークビットアドレス手段を増加させ、そして前記走査カウント手段を減 少させる手段をさらに含む、請求の範囲第4項に記載の割当て手段。
  6. 6.複数個の記憶ロケーションを有するメモリを有する処理システムにおいて、 各記憶ロケーションがセットされると記憶ロケーションが割当てられたことを示 し、そしてリセットされると記憶ロケーションが使用可能であることを示すマー クビット位置を有し: 前記記憶ロケーションに結合され、それらの記憶ロケーションを割当てるように 選択されたマークビットをセットするマークビットセッティング手段と;選択さ れたマークビットがマークビットベクトルを形成する複数個のシーケンシャル記 憶ロケーションからマークビットを平行にフェッチするマークビットアドレス手 段と;前記マークビットアドレス手段に結合され、リセットされたマークビット のために前記マークビットベクトルを検査する検査手段と;さらに 前記リセットされたマークビットによって示された記憶ロケーションのためのア ドレスを発生するアドレス発生手段とを含む、組合わせ。
  7. 7.前記アドレス発生手段に結合され、前記発生された記憶ロケーションアドレ スを受取るための待ち合わせ手段をさらに含む、請求の範囲第5項に記載の紐合 わせ。
  8. 8.前記マークビットアドレス手段が、前記記憶ロケーションの前記マークビッ ト位置に結合され、平行にフェッチされるマークビットをリセットするリセット 手段を含む、請求の範囲第6項に記載の組合わせ。
  9. 9.前記マークビットアドレス手段が、前記記憶ロケーションからフェッチされ るべきマークビットベクトルの数のカウントを受取る走査カウント手段を含む、 請求の範囲第8項に記載の組合わせ。
  10. 10.マークビットベクトルを形成する各々の複数個のマークビットのフェッチ 後、前記マークビットアドレス手段を増加させ、そして前記走査カウント手段を 減少させる手段をさらに含む、請求の範囲第9項に記載の組合わせ。
JP61500666A 1985-01-11 1986-01-13 度数を含まない関数型言語コ−ドを用いる2進有向グラフとしてストアされたプログラムを評価する縮小プロセッサのためのシステムアロケ−タ Expired - Lifetime JPH083801B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US06/690,846 US4598361A (en) 1985-01-11 1985-01-11 Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US690846 1985-01-11
PCT/US1986/000045 WO1986004165A1 (en) 1985-01-11 1986-01-13 Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Publications (2)

Publication Number Publication Date
JPS62501526A true JPS62501526A (ja) 1987-06-18
JPH083801B2 JPH083801B2 (ja) 1996-01-17

Family

ID=24774199

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US4598361A (ja)
JP (1) JPH083801B2 (ja)
WO (1) WO1986004165A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435752A (en) * 1973-11-07 1984-03-06 Texas Instruments Incorporated Allocation of rotating memory device storage locations
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
JPH083801B2 (ja) 1996-01-17
WO1986004165A1 (en) 1986-07-17
US4598361A (en) 1986-07-01

Similar Documents

Publication Publication Date Title
EP0449661B1 (en) Computer for Simultaneously executing plural instructions
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
JPS60179851A (ja) デ−タ処理装置
JPH0778738B2 (ja) ディジタル・コンピュータ・システム
CA1157569A (en) Address pairing apparatus for a control store of a data processing system
US5097407A (en) Artificial intelligence processor
US3624616A (en) Dynamic allocation of multidimensional array memory space
US4758949A (en) Information processing apparatus
US4616315A (en) System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
JPS62501526A (ja) 変数を含まない関数型言語コードを用いる2進有向グラフとしてストアされたプログラムを評価する縮少プロセッサのためのシステムアロケータ
US4451883A (en) Bus sourcing and shifter control of a central processing unit
US3337851A (en) Memory organization for reducing access time of program repetitions
JPS5987566A (ja) メモリアクセス検出方式
EP0061586A2 (en) Data processing apparatus with extended general purpose registers
US5276853A (en) Cache system
US5506974A (en) Method and means for concatenating multiple instructions
GB2037466A (en) Computer with cache memory
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
JPH02126340A (ja) データ処理システム
JPH0415844A (ja) キャッシュメモリ制御回路
JPS5810248A (ja) 状態履歴記憶方式
JPH0760389B2 (ja) パイプライン処理型情報処理装置
Rizk et al. Microcoding an abstract machine for parallel logic programming
JPS62147530A (ja) マイクロプログラム制御方式