JP2001517825A - 自主的に循環するデータ処理アーキテクチュア - Google Patents

自主的に循環するデータ処理アーキテクチュア

Info

Publication number
JP2001517825A
JP2001517825A JP2000513191A JP2000513191A JP2001517825A JP 2001517825 A JP2001517825 A JP 2001517825A JP 2000513191 A JP2000513191 A JP 2000513191A JP 2000513191 A JP2000513191 A JP 2000513191A JP 2001517825 A JP2001517825 A JP 2001517825A
Authority
JP
Japan
Prior art keywords
register
slot
data
address
instruction
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.)
Pending
Application number
JP2000513191A
Other languages
English (en)
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 JP2001517825A publication Critical patent/JP2001517825A/ja
Pending 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 少なくとも命令メモリ、命令デコーダ、およびスロット構造を有する電子的データ処理回路が開示される。スロット構造は複数のスロットにより特徴付けられる。各スロットは少なくとも:(1)アドレスレジスタ、(2)データレジスタ、(4)機能レジスタ、および(3)監視回路、を有する。各スロットは、完全な情報が存在するとき、それらの各アドレスレジスタ、データレジスタおよび機能レジスタの情報内容により定義された演算を非同期的に実行する。

Description

【発明の詳細な説明】
【0001】 背景 発明の分野 発明はエレクトロニクスの分野に関する。なお特に、発明はタイミングのため
の中央クロックに依存しない非同期計算機アーキテクチュアおよびデータ処理操
作の制御に関する。
【0002】 関係技術 潜在的にプログラム命令の実行に関する非同期回路を作るための多くの提案が
、以下にリストされた文献のように知られている。
【0003】 1.S.B.Furber, P. Day, J. D. Garside, N.C.Paver and J.V. Woods, AMULE T1: A Micropipelined ARM, Department of Computer Science, The University
, Oxford Road, Manchester, M13 9PL, UK, Undated. 2.Mark Edward Dean, STRIP: A SEIF-Timed Risc Processor, Technical Re
port No. CSL-TR-92-543, Stanford University Computer Systems Laboratory,
July 1992. 3.Jens Sparso and Jorgen Staunstrup , Delay-Insensitive Multi-Ring S tructures , Integration, the VLSI Journal 15,1993. 4.J.D. Garside , A CMOS VLSI Implementation of an Asynchronous ALU,
Department of Computer Science, Manchester, University, Oxford Road, Man
chester, M13 9PL, UK, Undated. 5.S.B. Furber , P. Day, J.D. Garside, N.C.Paver, S.Temple and J.V. W
oods,The Design and Evaluation of an Asynchronous Microprocessor, Depart
ment of Computer Science, The University, Oxford Road, Manchester, M13 9
PL, UK, Undated. 6.Jens Sparso , Jorgen Staunstrup, Michael Dantzer-Sorensen, Design of Delay Insensitive Circuits Using Multi-Ring Structures , European Desi
gn Automation Conference, EURO-VHDL ’92, 1992 IEEE 0-8186-2780,pp.15-20
,August 1992. 7.David E. Mueller, Asynchronous Logics and Application to Informat ion Processing , Switching Theory in Space Technology, Stanford Universit
y Press, pp. 289-297,1963. 8.J. Staunstrup and M.R. Greenstreet, Designing Delay Insensitive C ircuits using “Synchronized Transitions ”,Elsevier Science Publishers B
.V. (North-Holland), IFIP, 1990. 9.Teresa H. Y. Meng, Robert W. Brodersen, David G. Messerschmitt,, A utomatic Synthesis of Asynchronous Circuits from High-Level Specificatio ns , IEEE Transactions on Computer-Aided Design ,Vol. 8, No. 11, pp. 118
5-1205, November 1989. 10.Ivan E. Sutherland, MICROPIPELINES, Communications of the Acm, V
ol. 32, No. 6, pp. 720-738, June 1989. これらの提案にも拘わらず、今日経済的に有利な卓越したプロセッサがブール
クロック論理に基づいており、ブールクロック論理の特徴のため最適化された中
央制御アーキテクチュアを有する。
【0004】 概要 アーキテクチュアは分散された、非同期かつカスケードされた方法で実行され
るプログラムされた命令を許容する特徴を有して記述される。システムはプログ
ラムメモリ、命令デコーダ、およびスロット構造を含む。システムはまたリマッ
プレジスタ、全般的機能要素、および全般的な目的のメモリを含んでもよい。
【0005】 スロット構造は一組のスロットを提供する。各スロットは、プログラム命令か
ら引き出された演算を完成するために必要な情報を収集する半自主的な位置であ
る。スロットは、完全な情報が集められたときスロットが演算を解く作動を開始
するという意味で半自主的である。最初の演算を解いた後、スロットは新しい演
算を解くために自由である。
【0006】 好ましい実施例において、スロットは第1および第2のデータレジスタ複合体、
結果アドレスレジスタ複合体、および機能レジスタ複合体を含む。各複合体は空
および有意味データの交流波面として情報を受けるために有用な多重レジスタを
含んでもよい。複合体は好ましくは、データが転送され得るシステム内の他の位
置を指示するために負荷され得るアドレスレジスタを含む。
【0007】 スロットは好ましくは、そのレジスタ複合体内の情報の完成を監視し、情報の
完全なセットの収集後直ちに演算の解決を開始する。完全な情報が演算数レジス
タ、結果アドレスレジスタ、および機能レジスタに存在するとき、スロットは全
般機能要素に完全な機能呼びを転送し、あるいは他の方法で機能を解決する。全
般機能要素は結果を結果アドレスレジスタに指示されたアドレスに戻す。
【0008】 個々のレジスタ複合体は複合のレジスタ内の情報の完成を個々に監視してもよ
く、複合に関係している作動を開始する。例えば、レジスタ複合体はデータレジ
スタおよびアドレスレジスタを含んでもよい。有意味なデータとアドレス情報が
存在するとき、レジスタ複合体は他のスロットのような指示されたアドレスにデ
ータを転送する操作を開始する。
【0009】 スロット構造は命令間の依存関係を特別に支給する。依存関係は、演算を解く
ために必要な情報が他の演算から引き出される関係である。例えば、もし第1の スロットが第1の演算を実行するために割り当てられ、もし第2のスロットが第 2の演算を実行するために割り当てられ、かつもし第2の演算が第1の演算の結 果を要求するなら、そのとき第2の演算は第1の演算と依存関係を有すると言われ
る。
【0010】 スロット構造は、関係についての情報を記憶するための機構を提供することに
よりプログラム命令間の依存関係を支給する。好ましい実施例において、依存関
係についての情報はスロット内に記憶された結果アドレス情報およびデータアド
レス情報の形をとる。他のスロットへの第1スロット点に記憶されたアドレス情 報、および1つのスロットから他へのこのポインタは、これらのスロットに割り
当てられた演算間の依存関係を反映する。スロットは、中央制御回路からの開始
信号を待つことなく、情報の局部的利用可能な完成に基づいて依存関係に従って
他のスロットに情報を転送し得る。
【0011】 スロット間の依存関係の支給は協働処理を高め、かくして全体の処理速度を速
める。たとえより遅い命令により要求される全情報が解読されかつ割り当てられ
たこれらのより遅い命令に利用可能でないとしても、多くの命令がスロットに解
読され割り当てられ得る。依存情報はスロットに局部的に記憶され、その結果ス
ロットは、それが利用可能になるとき他のスロットにデータを転送する行動をと
る。スロットは情報の完成を局部的に監視し、情報が完成するとき更なる遅れな
くこれらのそれぞれの命令を解決できる。スロットは半自律かつ非同期であり、
それらはプログラム命令により許された全範囲で並列に演算を解く。
【0012】 好ましくは全ての演算が中央クロックに関係無く起こる。情報は有意味データ
および空値の交流波面としてスロットに通信される。しかし、ここにおける記述
を理解した後、スロット構造の多くの利点がクロックされた論理回路を使用する
ときに保持されることが評価されるであろう。
【0013】 本発明の目的はプログラムされた命令を実行する改良された方法および装置を
提供することである。
【0014】 発明の他の目的は、プログラムに固有の協働性を十分に利用するプログラムさ
れた命令を実行する方法および装置を提供することである。
【0015】 発明の他の目的は、非同期および/または半自律データ処理操作を許容するプ ログラムされた命令を実行する方法および装置を提供することである。
【0016】 発明の他の目的は、データ処理演算を解決する多重位置を供給するプログラム
された命令を実行するためのアーキテクチュアを提供することである。
【0017】 発明の他の目的は、演算間の依存関係を明白に実現するプログラムされた命令
を実行するためのアーキテクチュアを提供することである。
【0018】 発明の他の目的は多重データ処理演算を解決するスロット構造を提供すること
である。
【0019】 発明の他の目的は命令間の依存関係を実現するデコーダを提供することである
【0020】 これらおよび他の目的はここに開示される方法および装置を提供することによ
り達成される。
【0021】 発明は添付図面を参照して以下詳細に記述される。
【0022】 好ましい実施例の詳細な記述 発明の構成、作動、利点および目的は、以下の記述および連合された図面から
より良く評価され得る。要素が複数図面で引用されるとき、それが現れる各図に
おいて同じ参照数字で同一視される。書かれた記述が“引用文献としてここに組
込まれた”との注意とともに他の文献(他の特許出願または特許のような)を引
用するときには、まるでそれが記述の一部としてそのまま再製作されたかのよう
に、その文献の完全な内容が読者により考慮されるべきである。文献が引用文献
として組込まれ、その文献が順次引用文献により第3の文献を組み込むときには 、まるでそれが記述の一部としてそのまま再製作されたかのように、その第3の 文献の完全な内容が読者により考慮されるべきであることが意図される。
【0023】 慣例(50−99) 以下に記述される好ましい実施例は、それらが同期論理演算のためシステムク
ロックを必要としない関係の非同期電子的システムである。それらは非ブール論
理原線に基づき、利用データ表現が第1および第2データ状態を有することに限定
されない。(勿論、非同期論理は他のより複雑な関数と同様に、ブール論理を実
行するために構成されても良い)。
【0024】 ある慣例は好ましい実施例を記述するためにここに使用されるであろう。これ
らの慣例の幾つかは以下の記述を理解する補助のため予め議論される。
【0025】 以下に記述される好ましい実施例は、ここに引用文献として組込まれたU.S.特
許5,305,463“空慣例論理システム”に議論されたデータ表現の1つを使用する 。1つのかかる表現において、変数は可能性のある値の数をもつ。各値は単一の
物理的信号線に割り当てられる。各信号線は有意味なデータ状態またはデータの
ない意味を有する他の状態(即ち、空状態)を呈するかもしれない。単一の信号
線のみその時間に有意味な状態にあるかもしれない。変数の値は信号線の値が有
意味な状態にあることを注目することにより決定される。もし全ての信号線が空
状態にあるなら、変数はデータ値をもたない。例えば、いわゆる“二重レール”
表現において、信号2進数字は2つの物理的信号線を使用して表現される。第1の
信号線は数値ゼロ(0)、第2の信号線は数値“1”を割り当てられる。各信号 線は2つの電圧状態、例えばゼロ(0)ボルトまたはファイブ(5)ボルトの1 つを割り当てられてもよい。第1信号線が5ボルト状態を割り当てられ、第2信 号線が0ボルト状態を割り当てられるとき、変数は数値“0”を取る。第2信号
線が5ボルト状態を割り当てられ、第1信号線が0ボルト状態を割り当てられる
とき、変数は数値“1”を取る。両信号線が0ボルト状態にあるとき、変数はデ
ータのない意味をもつ。通常の演算中、両信号線が5ボルト状態にあることは許
されない。他のデータ表現の多様性は、例えば反転論理を使用され得る。説明の
目的のため、2進数字の二重レール表現は、信号線が第1および第2電圧状態を
呈することが出来るとともにこの記述の残余に引き受けられる。
【0026】 以後、もしそれが有意味なデータ状態なら、信号線は“断定された”または“
有意味な”と言われるであろう。もしそれが空状態であるなら、信号線は空であ
ると言われるであろう。変数は、もしその組合された信号線の1つが有意味なデ
ータ状態なら、断定されたまたは有意味なと言われるであろう。変数は、もしそ
の組合された信号線の全てが空状態なら、空と言われるであろう。
【0027】 以下に記述される実施例は好ましくはゲートと共に実行される閾値論理を使用
し、ここに引用文献として組込まれた1996年9月9日に出願されたU.S.特許出願No
.08/771,232“空慣例閾値ゲート”に記述された。ゲートのかかる同族の1つに
おいて、各ゲートは単一の出力および複数の入力を有する。ゲートは断定された
または空であり得る入力を受け、かつゲートは出力物理線をスイッチングルール
に従ってその断定されたまたは空状態に駆動する。
【0028】 好ましくは、閾値ゲートはスイッチングルールにヒステリシス特性をもつ。複
数の断定された入力が閾値を越えるとき、ゲート出力は空から断定されたに切換
える。ゲート出力は、全ての入力が空に戻るまで断定された出力を保持する。か
くして、ゲートは複数の入力信号線および閾値の値により特徴付けられ得る。4 つの入力と3つの閾値を有するゲートは“4の3”ゲートと言われるであろう。
図1および2は4の3ゲートの2つの図式記号を示す。図1の記号はU.S.特許出
願No.08/771,232に使用された記号に対応し、その出願の内容に関して本実施例
の記述に補足するためにここに含まれる。図2は同じゲートの異なる記号であり
、この記述の残余のために使用されるであろう慣例を表わす。入力はバーに接続
する。出力は円から伸ばす。円内の数字は閾値の値を示す。
【0029】 以下に記述される実施例は、ここに引用文献として組込まれたU.S.特許出願No
.08/318,508“空慣例論理システムの非同期レジスタ”に記述されたように、好
ましくは非同期データレジスタを使用する。非同期レジスタは、一組の入力を受
け、それらの値を記憶し、かつこれらの値を対応する組の出力に通過する装置で
ある。以下に記述される実施例に使用されるように、非同期レジスタは、一組の
信号線が新しい有意味な値を呈する前に空状態を通して循環するように、空およ
び有意味なデータの交流波形のタイミングを調節する。
【0030】 図3および4は非同期レジスタの2つの図式記号示す。図3の記号はU.S.特許
出願No.08/318,508に使用された記号に対応し、その出願の内容に関して本実施
例の記述に補足するためにここに含まれる。図4は非同期レジスタの異なる記号
であり、この記述の残余のために使用されるであろう慣例を表わす。記号は(1
)前の軽量線および(2)点に取付けられた続く重量線を有する長方形である。
長方形はメモリ記憶要素を表わす。軽量な前の線は、断定されたときデータがメ
モリ記憶要素に通過することを許容する可能な入力を表わす。重量な続く線は、
出力信号線を監視しかつ“ダック/ナック”(データ認識/空認識を意味する)と
呼ばれる出力信号を発生する“見張り”ゲートを表わす。U.S.特許出願No.08/3
18,508により十分に議論されるように、ダック/ナック信号線は、全ての出力信 号線が空のとき空であり、出力の全ての変数が断定されるとき断定される。断定
されるとき、ダック/ナック信号は、レジスタが新しい空波面を受ける準備ので きた前の回路に指示するために使用され得る。空のとき、ダック/ナック信号は 、レジスタが有意味なデータの新しい波面(即ちデータ波面)を受ける準備ので
きた前の回路に指示するために使用され得る。前の非同期レジスタは続く非同期
レジスタから可能な入力にダック/ナック信号を受信する。システムクロックが レジスタにデータを負荷するトリガーとして必要でないことに注目すべきである
。確かにレジスタは、(1)下流回路がそれを受け入れる準備をされ、かつ(2
)上流回路が利用できる有意味なデータをもつやいなやデータを負荷するであろ
う。
【0031】 自主的に循環するシステムループ 以下により十分に議論されるデータ処理アーキテクチュアは、システムクロッ
ク無しで作動する非同期システムに使用して特に利点がある。アーキテクチュア
の作動および利点は、単純な非同期自主的に循環するシステムループの作動をま
ず理解した後により十分に見られ、かつ評価され得る。
【0032】 図5は自主的に循環するシステムループの要素を示す。ループはメモリ要素10
1、フィールドデコーダ103、および分岐プロセッサ105を含む。分岐プロセッサ1
05は次の命令アドレス107(“NIA”)を発し、それは非同期レジスタ118を通し て命令アドレスバス111へ通過する空の波面に続く有意味な信号の波面として見 られ得る。メモリ101は命令109を発生し、それは非同期レジスタ117を通して命 令バス113へ通過する空の波面に続く有意味な信号の波面として見られ得る。デ コーダ103は命令波面を一連のフィールド信号に転送し、それは非同期レジスタ (示されない)を通してフィールド信号線115へ通過する空信号の波面により従 わされる有意味な信号の波面として見られ得る。
【0033】 分岐プロセッサ105は新しいNIA107の発生を含んでいるフィールド波面により 定義された演算を実行する。メモリが一組のプログラム命令を保持するとき、分
岐プロセッサは電流プログラムアドレスを維持し、アドレススタックを維持し、
かつ状態の分岐、機能呼びからの戻り等のようなプログラム流制御命令に影響を
与えるような機能を実行し得る。
【0034】 自主的循環は、中央制御器またはシステムクロックの介在無しに分配された方
法で命令を読みかつ解読するループを許容する。各要素は空波面を処理した後、
新しい有意味なデータを送るため、または有意味なデータを処理した後に空波面
を送るため、前の要素に信号を送る。例えば、メモリ101が有意味な出力を発生 するとき、それは空波面を受けるために準備ができた分岐プロセッサ105に信号 を送る。分岐プロセッサ105が空波面を送るとき、それは有意味なデータの波面 を受けるように準備ができたデコーダ103へ信号を送る。デコーダ103有意味なデ
ータを送り、それは空波面を受けるように準備ができたメモリ101へ信号を送る 。有意味な波面を前に発生されたメモリは、空波面を送りかつ有意味なアドレス
を受信するように準備のできた分岐プロセッサに信号を送る。前に空波面を送っ
た分岐プロセッサは新しい有意味なアドレスを送り、かつ空波面を受けるために
準備のできたデコーダ103へ信号を送る。前に有意味なデータを送ったデコーダ1
03は空波面を送り、かつ新しい有意味な命令を受けるように準備の出来たメモリ
101へ信号を送る。メモリはそれから新しい有意味な命令を発生し、かつそれ自 身処理を繰り返す。有意味な信号の波面は(アドレスしかつ命令するように)空
の波面により分離されたループの回りを伝播する。
【0035】 図5は非同期レジスタ118および117を使用する自主的循環の機構の部分を示す
。メモリ101の出力に配置された非同期レジスタ117は、分岐プロセッサ105の出 力に配置された非同期レジスタ118と線119を通して通信する。非同期レジスタ11
7は、レジスタ117が有意味な命令をバス113に置いたことを非同期レジスタ118に
信号で送る。これはメモリ101が今空を受ける準備があることを意味する。(1 )メモリ101が空を受ける準備ができていることをレジスタ117が信号で送る、(
2)分岐プロセッサがレジスタ118に空を贈る(これは分岐プロセッサ105が空波
面の処理を完了したことを意味する)、2つの状態が合わされるとき、レジスタ
118は空波面がメモリ101に伝播することを許容する。同様な信号が、デコーダ10
3の出力における非同期レジスタ(示されない)およびレジスタ117間、および非
同期レジスタ(示されない)およびレジスタ118間に起る。
【0036】 各要素は先行循環のそれ自身の完成に基づいて、局部判断に有意味なデータま
たは空を伝播させ、かつそれに続く要素の準備に次の波面を受信させる。もし要
素が循環完了に遅れられると、そのとき先行および/またはそれに続く要素は、 要素が準備できるまで休止するであろう。
【0037】 クロックされた2進ブールシステムにおいて、対称的に中央クロックが規則正 しい間隔で作動を行うように各要素をトリガーする。もし要素が機能しないなら
、それは続く要素にデータとして現れる出力電圧信号のままであろう。次の循環
において、続く要素は欠陥信号でクロックされ、それらに従って作動する。この
ような状態において、外部クロックはある外部回路が介在するまで欠陥をラッチ
するよう回路を附勢するであろう。(例えば、分岐プロセッサがデコーダに伝播
される不感覚アドレスを発生し、かつシステム運転の降伏を起こさせる命令を発
生してもよい)。
【0038】 図5は別々な要素として2つの非同期レジスタを示した。非同期レジスタが機
能ブロックとして一体にされ、それらが図または回路において単独の要素である
必要のないことを評価されるべきである。
【0039】 図6は演算プロセッサと共に自主的に循環するシステムループの要素を示す。
それはメモリ101、デコーダ103および分岐プロセッサのような図5に示されたル
ープの要素と命令アドレスバス111、命令バス113、およびフィールド線115を含 む。図6のループはさらに演算プロセッサ121を含み、それはフィールド線115を
受け、データアドレスバス123およびデータバス125を通してメモリ101にアクセ スをもつ。演算プロセッサ121は、数学的および論理的演算、入力/出力等のよう
なプログラム流制御に直接関係しないデータ処理制御を実行することができる。
【0040】 カスケードアーキテクチュア(200−299) 図7はカスケードスロット構造をもつ自主的に循環するデータ処理アーキテク
チュアの要素を示す。アーキテクチュアは全般的目的のメモリ201、命令メモリ2
02、命令デコーダ205、およびスロット構造209を含む。アーキテクチュアは分岐
プロセッサ203、リマップレジスタ207、および全般的な機能要素211を選択的に 含んでもよい。状態バス213は全般的目的のメモリ201、分岐プロセッサ203(も し存在するなら)、命令メモリ(もし分岐プロセッサ203がないなら)、スロッ ト構造209および全般的な機能要素211間の共通データ経路を提供する。もし分岐
プロセッサ203が存在するなら、分岐プロセッサの出力はデータ経路223を通して
命令メモリ202に接続する。もしリマップレジスタが存在するなら、第1組の局部
信号経路215がデコーダ205をリマップレジスタ207に接続し、第2組の局部信号経
路217がリマップレジスタ207をスロット構造209に接続する。他方、デコーダ205
がスロット構造209に直接接続する。第3組の局部信号経路219はデコーダをスロ ット構造に直接接続する。機能バス221はスロット構造209を全般的な機能要素21
1に接続する。状態バス213はここに引用文献として組込まれたU.S.特許出願No.
08/424,865“空慣例バス”に開示されたようなバスであってもよい。
【0041】 図7の自主的循環のアーキテクチュアは図5および6の自主的循環ループと方
法において似ている。非同期レジスタは示されないが、全ての信号線に空および
有意味なデータの交流波面を調整するため機能的要素および機能に一体にされる
と理解されるべきである。全般的な循環は、(1)命令メモリ202から命令を読 み、(2)デコーダ205でさらに処理のためフィールドに命令を変換し、(3) スロット構造209のスロットにフィールドをマッピングし(もし存在するならリ マップレジスタ207を使用し)、(4)スロット構造209のスロットで解読された
命令により要求された演算を実行し(このステップは全般的な機能要素の使用を
含むかもしれない)、(5)命令メモリ202から新しい命令を呼ぶ、ステップを 含む。命令の型によって、データは状態バス213を通して全般目的メモリ201から
読まれ、またはそこに書かれるかもしれない。
【0042】 このアーキテクチュアにおいて、多くの要素が共通状態バス213を共用し、そ れは、(1)図5または6に示されたように循環ループの一部として、(2)全
般的な目的メモリへの読み書きのため、(3)望まれる他の目的のため、に使用
され得る。
【0043】 図7のアーキテクチュアのスロット構造は多元命令の協働解決を許容する多元
回路を含む。(“解決”なる語はスロット構造のより詳細な記述の後より十分に
評価されるであろうが、この段落の目的のため、解決は命令実行の形として通さ
れ得る。)アーキテクチュアの演算の詳細な記述はスロット構造209およびデコ ーダ205のより詳細な記述の後最も良く理解されるであろう。
【0044】 スロット構造(300−349) 図8は図7のアーキテクチュアにおけるスロット構造の要素を示す。構造は状
態バス213に接続された多元スロット231、233、235、237を含む。
【0045】 リマップレジスタ207は3つのバスAaバス241、Baバス143、およびRaバス24
5(それは図7で項目217として集合的に示された)を通してスロット231、133、
235、237に接続する。デコーダ205はOPバス247およびスロットバス249(それは 図7で項目219として集合的に示された)を通してスロット231、133、235、237 に接続する。OPバス247は以下により十分に議論されるOE、RC、IMおよびOP部分 を含んでいる複数のサブ部品を含む。
【0046】 図8は説明を容易にするため4つのスロットを示すが、より多くのスロットが
略同じ構造、機能および接続でそれが示されたように設けられるであろうことが
期待される。図8はまた、数学論理ユニット251、加算器253、乗算器255および 他の、例えば除算器(示されない)を含んでいる一組の全般的な機能要素211を 示す。これらの要素は、ここに引用文献として組込まれたU.S.特許出願No.08/4
23,770“空慣例インターフェイス回路”に記述された種類のインターフェイス回
路を通して接続された良く知られたクロック回路であってもよい。加算器はここ
に引用文献として組込まれたU.S.特許出願No.08/483,557“空慣例加算器”に記
述されたような全部の加算器から引き出されてもよい。全般的な機能要素は機能
バス221を通してスロットに接続し、それらはまた状態バス213に接続する。
【0047】 図9は図8のスロット構造209の個々のスロット231の詳細な要素を示す。スロ
ット231は、Aレジスタ複合体301、Bレジスタ複合体303、Rレジスタ複合体305
、および機能レジスタ複合体307を含む。各レジスタ複合体は、ダック/ナック信
号を発生および受信する非同期レジスタ、および以下により詳細に議論されるよ
うにバス要求および許可信号を発生または受信する多数の付加的な個々のゲート
を含む。
【0048】 Aレジスタ複合体は、第1および第2のAアドレスレジスタ311、313、第1およ び第2のAデータレジスタ315、317、およびAデータレジスタ319を含む。第1お よび第2のAアドレスレジスタは、空および有意味なアドレスデータの交流波面 を伝播する2レジスタパイプラインを形成する。第1Aアドレスレジスタ311は並
行信号線310の空および有意味なアドレスの交流波面を受け、個々の信号線312に
ダック/ナック信号を戻す。第2Aアドレスレジスタ313は、並行信号線314に第1 Aアドレスレジスタ311から空および有意味なアドレスの交流波面を受ける。第2
Aアドレスレジスタ313はまた、状態バス信号線320に波面を贈り、状態バスから
個々の信号線318にダック/ナック信号を受け、かつ個々の信号線316で第1Aアド
レスレジスタ311にダック/ナック信号を戻す。一組の2の2ゲート341が第2Aア
ドレスレジスタ313の出力をAaバス241およびOPバス247から絶縁する。一組の2
の2ゲート345が機能Aデータレジスタ319の出力を機能バス221から絶縁する。
【0049】 例は第1および第2Aアドレスレジスタを通して空および有意味なアドレス波面
の通路を示すであろう。典型的に、第1Aアドレスレジスタ311は、第2Aアドレ スレジスタ313がデータを保持するとき空を保持し、逆もまた同様である。開始 状態を想定すると、(1)第1Aアドレスレジスタ311が空を保持し、信号線314 に空を贈り、信号線312にNAK(空認識)を戻す、(2)第2Aアドレスレジスタ3
13が意味するアドレスを保持し、有意味なアドレスを信号線320に贈り、信号線3
16にDAK(データ認識)を戻し、(3)上流要素(例えば図7の分岐プロセッサ2
03)が新しい有意味なアドレスを信号線310で第1Aアドレスレジスタ311に贈っ た、(4)下流要素(例えば図7のメモリ要素201)が線318にDAK信号を発生す ることにより有意味なアドレスの受け取りをまだ認識しなかった。この状態にお
いて、第1および第2Aアドレスレジスタ311、313により形成された2つのレジス
タパイプラインは、処理を完全にするため、下流要素(例えばメモリ要素201) のために待っており、その結果パイプラインは次の循環を始めることができる。
【0050】 下流要素(例えばメモリ要素201)が信号線318を通してDAK信号を発生すると き、新しい循環の最初の部分が始まる。このDAK信号は、第2Aアドレスレジスタ
313が信号線314に待っている空波面を伝播することを可能にする。第2Aアドレ スレジスタ313が空を記憶した後、それは状態バスアドレス線320に空を贈り、か
つ信号線316にNAK信号を発生する。このNAK信号は第1Aアドレスレジスタ311が 信号線310に待っている新しい有意味なアドレス波面を伝播することを可能にす る。(もし何らかの理由で新しい有意味な波面が信号線310に存在しないなら、 第1Aアドレスレジスタは新しい有意味な波面が到着するまで単に待つであろう )。第1Aアドレスレジスタ311が有意味なアドレスを記憶した後、それは有意味
なアドレスを信号線314に贈り、かつ信号線312にDAK信号を発生する。このDAK信
号は、第1Aアドレスレジスタ311が空を受ける準備が出来ていることを上流要素
(例えば図7の分岐プロセッサ203)に指示する。
【0051】 下流要素(例えば図7のメモリ要素201)が信号線318を通してNAK信号を発生 するとき、新しい循環の第2の部分が始まる。このNAK信号は第2Aアドレスレジ スタ313が信号線314に待っている新しい有意味なアドレス波面を伝播することを
可能にする。第2Aアドレスレジスタ313が新しい有意味な波面を記憶した後、そ
れは状態バスアドレス線320に有意味なアドレスを贈り、かつ信号線316にDAK信 号を発生する。このDAK信号は第1Aアドレスレジスタ311が信号線310に待ってい
る新しい空波面を伝播することを可能にする。第1Aアドレスレジスタ311が空波
面を記憶した後、それは空を信号線314に贈り、かつ信号線312にNAK信号を発生 する。このNAK信号は、第1Aアドレスレジスタ311が空を受ける準備が出来てい ることを下流要素(例えば図7の分岐プロセッサ203)に指示する。パイプライン
は今その開始状態に戻り、新しい循環を開始する準備ができる。
【0052】 循環の第2部分の終わりに、第2Aアドレスレジスタ313が有意味なアドレス を保持し、空波面が信号線314に待っている。第2Aアドレスレジスタは、下流 要素(例えば図7のメモリ要素201)が古い有意味なアドレスを受け取って空波 面を受ける準備が出来ていることを指示するまで空波面を通過させないであろう
。もしメモリ要素が他のシステム要素に比較して遅いなら、第2Aアドレスレジ
スタ313は単に待つであろう。順次、第1Aアドレスレジスタ311は第2Aアドレ
スレジスタ313のために待つであろう。この状態はシステムの2つの重要な特徴 を示す。最初に、プロセス(例えば循環の新しい段階への前進)の完成が、プロ
セスを完成するために必要な全ての情報の処理位置(例えば第2Aアドレスレジ
スタ)における存在にのみに依存する。もしある要求された情報が、それが必要
とされる位置に伝播されなかったなら、その位置は情報が到着するまで単に待つ
であろう。要求された情報の最後の量が到着した瞬間に、位置は直ちにプロセス
を完成する。遅い要素はシステムを失敗にさせなく、単に遅い要素の速度で作動
するのみである。もしより速いまたはより遅い要素が代用されるなら、回路速度
は従属的に変化するであろうが作動を続けるであろう。結果として全ての作動は
装置が許容するであろう同じ速さで作動する。全回路の最悪な場合の伝播遅れ分
析を実施する必要はなく、またはシステムに無駄なタイミング利得を設計する必
要もない。
【0053】 局地的完成および遅れ無感覚のこれらの特徴は、周期的外部システムが固定さ
れた時間期間の後システムを完成するように位置を附勢するであろう中央制御お
よびクロックシステムと対称的である。もし必要な情報が位置にまだ到着しない
なら、位置は古いまたは無価値な情報を利用し、次のクロック循環でプロセスを
間違って実行する。もしより速いまたはより遅い要素が代用されるなら、システ
ムクロックタイミングは再評価されねばならず、全体のシステムの運転速度は変
えられなくてはならない。
【0054】 上に議論したように、第1および第2Aアドレスレジスタ311、313は空および有
意味なアドレスの交流波面を伝播する2つのレジスタパイプラインを形成する。
レジスタ複合体301は、Aアドレスレジスタ311、313にアナログの方法で作動す る第1および第2Aデータレジスタ315、317で作られた第2の2つのレジスタパイ プラインを含む。第2Aアドレスレジスタおよび第2Aデータレジスタは状態バス
から線318で同じダック/ナック信号を受ける。一組の2の2ゲート341もまた第2
Aデータレジスタ317の出力をAaバス241から絶縁する。
【0055】 Aレジスタ複合体はまた第2Aデータレジスタ317と並行してデータを受ける機
能Aデータレジスタ319を含む。2の2閾値ゲート322は、第2Aデータレジスタ317
からおよび機能Aデータレジスタ319からの2つのダック/ナック信号線出力を第
1Aデータレジスタへの単一ダック/ナック信号線に結合する。機能Aデータレジ
スタ319および第2Aデータレジスタ317の両方は、第1Aデータレジスタ315が有 意味なデータ波面を伝播する前に完全に伝播された空波面を持たねばならない。
同様に、機能Aデータレジスタ319および第2Aデータレジスタ317の両方は、第1
Aデータレジスタ315が空波面を伝播する前に完全に伝播された有意味なデータ 波面を持たねばならない。2の2閾値ゲート324は第2Aアドレスレジスタ313から および第2Aデータレジスタ317からのダック/ナック出力を、状態バス213にアク
セスするためのAレジスタ複合体により単一要求に結合する。
【0056】 機能Aデータレジスタへの接続は第2Aデータレジスタへの接続から多くの方 法で異なる。第1に、機能Aデータレジスタからのデータ出力は並行326で機能バ
ス221に行く。第2に、機能Aデータレジスタへのダック/ナック入力は機能バス から個々の信号線328に受けられる。
【0057】 Bレジスタ複合体は、第1および第2Bアドレスレジスタ321、323、第1および 第2Bデータレジスタ325、327、および機能Bデータレジスタ329を含む。Bレジ
スタは、Bレジスタ受信アドレスおよびBbバス243からのデータを除いて、Aレ
ジスタに略同一に構成される。一組の2の2ゲート343が第2Bアドレスレジスタ32
3の出力をBaバス243から絶縁し、また第2Bデータレジスタ327をOPバス247から
絶縁する。一組の2の2ゲート345は機能Bデータレジスタ329の出力を機能バス22
1から絶縁する。
【0058】 Raレジスタ複合体は、単一、2レジスタパイプラインとして構成された第1お よび第2Rアドレスレジスタ331、333を含む。第1Raアドレスレジスタ331は第2
Raアドレスレジスタからのダック/ナック信号に応答して、Raバス245からの空
および有意味なアドレスの交流波面を伝播する。第2Raアドレスレジスタ333は
バス245からのダック/ナック信号に応答して第1Raアドレスレジスタ331からの 空および有意味なアドレスの交流波面を伝播し、かつ第1Raアドレスレジスタ33
1へダック/ナック信号を戻す。一組の2の2ゲート345が第2Raアドレスレジスタ3
33の出力を機能バス221から絶縁する。
【0059】 機能レジスタ複合体は、単一、2レジスタパイプラインとして構成された単一 第1および第2機能レジスタ335、337を含む。第1機能レジスタ335は第2機能レジ
スタ337からのダック/ナック信号に応答して、OPバス247からの空および有意味 な機能コードの交流波面を伝播する。第2機能レジスタ337はバス221からのダッ
ク/ナック信号に応答して第1機能レジスタ335からの空および有意味な機能コー ドの交流波面を伝播し、かつ第1機能レジスタ335へダック/ナック信号を戻す。 一組の2の2ゲート345が機能レジスタ335の出力を機能バス221から絶縁する。
【0060】 スロットは、情報の波面が処理機能実行の目的のため組み合わされる全般的な
目的位置にある。上に議論されたように、レジスタは局地化された完成および遅
れ無感覚な特徴を有する。同様に、全体としてのスロットはこれらの特徴を有す
る。例えば、(および以下により十分に議論されるであろうように)もしデータ
処理演算が2つの数の加算を含むなら、第1数はAレジスタ複合体301に持って来
られ、第2の数はBレジスタ複合体303に持って来られる。“加算”機能は機能レ
ジスタ複合体307に持って来られ、結果を記憶するためのアドレスがRaレジスタ
複合体305に持って来られる。有意味な情報の完全な組が存在するとき、加算機 能が実行され得る。実際に、加算機能は必要な情報の完成で直ちに行われるであ
ろう。必要な情報が特定の時間期間内に到着しないなら、スロットは全ての情報
が存在するまで待つであろう。他の方法を述べれば、レジスタ複合体の完全な情
報が名称を形成するために言われ得る。名称それ自身は演算を解決する十分な情
報を含む。完全な名称の瞬間に演算解決それ自身が形成される。この方法におい
て、中央タイミング制御は必要ではなく、かつ構造は非同期に作動する。
【0061】 要求された情報の完成に基づく演算を解決するため、スロットの能力は少なく
とも一部においてスロットを監視する回路から引き出される。全ての第2レジス
タが有意味なデータを含むとき、および全ての第2レジスタが空を含むとき、全
ての第2レジスタ313、317、319、323、327、329、333、337からのダック/ナッ ク信号は一連の閾値ゲートを通して集められ、ゲート330でそれが示す1つの信 号に結合される。この信号はスロットバス249の部分となる。全てのレジスタが 有意味なデータを含むとき、名称が形成され、空の波面は伝播され得、次の演算
のためスロットをクリアする。スロットのアドレスはハードワイヤされ、その結
果スロットが自由であるとき、それはそのアドレスをスロットバス249を通して 自由スロットFIFO409に送る。
【0062】 全てのレジスタが空を含むとき、スロットはそのアドレスをスロットバス249 に付加的におき、例えば、バス249から通常絶縁されるが伝送のとき選択的に接 続されるハードワイヤされたアドレスコードを有している。(図10に関して以下
に議論されるように、スロットが新しい名称の情報を受けるために利用可能であ
るスロットバス指示にアドレスを置いている)。スロットアドレスは自由スロッ
トFIFO409(図10)に伝播する。
【0063】 図8を再び参照すると、自主的に循環するデータ処理アーキテクチュアは多元
スロット231、233、235、237を含む。各スロットは自主的に循環するループの別
々な中央として見られ得る。各スロットは解決の異なる名称を集めることのプロ
セスに潜在的にあり得る(即ち、機能を遂行するために必要な情報の量)。異な
るスロットは共通の全般的な機能要素211のプールを共用し得る。
【0064】 命令デコーダ(400−499) 図10は図7のアーキテクチュアにおける命令デコーダ205の要素を示す。デコ ーダ205は命令メモリ202からの出力を信号線222で受け、また自由スロット(即 ち、前の命令の解決を完成しかつ新しい命令のため利用可能であるスロット)の
アドレスをスロットバス249に受ける。内部的に、デコーダは入力レジスタ401、
一組のフィールドレジスタ403、オプコード認識回路405、完成検出回路407、お よび自由スロットFIFO409を含む。
【0065】 作動において、命令メモリ202(図7)はフィールドレジスタ403に対応したフ
ィールドで形式化された有意味な命令を発生する。図10はOEレジスタ411、RCレ ジスタ413、Aレジスタ415、Bレジスタ417、Rレジスタ419、IMレジスタ421、 およびOPレジスタ412を含んでいる可能なフィールドのサブセットを示す。どん な特定のオプコードも幾らかのフィールドのみのために情報を含んでもよい。例
えば、2つの値を加算する命令は、(1)OPレジスタ423(例えばADD命令のオプ コード)、(2)Aレジスタ415(例えば加算されるべき第1数のアドレス)、(
3)Bレジスタ417(例えば加算されるべき第2数のアドレス)、および(4) Rレジスタ419(例えば結果が送られるべきアドレス)の情報を潜在的に含む。I
Mレジスタ421はADDオプコードのために使用されないが、ADD IMMEDIATE命令、そ
れはそれ自身命令に含まれた図面の代わりにメモリ位置からの1つの作用対象の ために使用される。この場合、作用対象はIMレジスタ421に記憶され得る。OEお よびRCレジスタ411、413は他のオプコードへの変更子として使用され得る。例え
ば、SHIFT命令のためOEまたはRCレジスタはシフトの方向(例えば右シフトまた は左シフト)を指示するために使用され得る。
【0066】 他のレジスタは所望の命令セットの最後の選択によって含まれ得る。例えば、
レジスタはパワーPC(TM)の命令セットのためのフィールドに対応して設けられ
得る。プログラマはアセンブリ言語でプログラムを書くことができ、あるいはよ
り高いレベルの言語プログラムをこの命令セットにコンパイルするため存在して
いるツールを使用し得る。代わりにデコーダは、ここに引用文献として組込まれ
たU.S.特許No.5,355,496または5,572,732(“呼出言語”)に開示された命令 セットとして設計され得る。
【0067】 オプコード認識回路405は最新のオプコードにより選択されたレジスタのロー ディングおよび監視を容易にする。オプコード認識回路は、オプコードの各クラ
スの独特な有意味な出力を発生する空通常ゲートの組合せ回路であり得る。各ク
ラスのオプコードはフィールドの組および使用されるレジスタに従って定義され
る。クラスのオプコードが存在するときはいつもそのクラスの信号線は断定され
る。図10は3つのオプコードクラスX、XO、およびDの出力を示す。各フィールド
レジスタ403はクラス信号線X、XO、およびDの適当なそれをタップする入力可能 な回路を含み、その結果、オプコードが特定のフィールドレジスタ403の情報を 含んで存在するときはいつも、そのフィールドレジスタ値を記憶することを可能
にされるであろう。例えば、Aレジスタ415はX、XO、およびD信号線に接続され た連合閾値1ゲート431を有し、それ故Aレジスタは全3クラスオプコードにより
使用される。Bレジスタ417はXおよびXO信号線にのみ接続された連合閾値1ゲー
ト433を有し、それ故第2作用対象がオプコードのDクラスのために使用されない 。クラスDのオプコードはフィールドIM、R、およびAのレジスタのみに使用さ れてもよい。
【0068】 特に、オプコードの3つのクラスより多いことがあるであろう。オプコード検
出回路405は任意に大きな数のクラスを認識するように拡張され得、フィールド レジスタ403の各々の入力可能な回路は適当に拡張され得る。オプコード認識回 路405は、空が内部バス線402に贈られるとき空を発生する。
【0069】 各フィールドレジスタ403のため、閾値2ゲートが下流要素からのダック/ナッ
ク信号とともに連合された可能な回路の出力を結合し、その結果レジスタは、(
1)現在のオプコードがレジスタの有意味データを含み、(2)オプコード検出
回路がそのレジスタの可能な線を断定し、そして(3)下流回路が新しい有意味
なデータを受け入れる準備があることを合図するとき、新しいデータを受け入れ
るであろう。同様に、各フィールドレジスタは、(1)内部バス線が空であり、
(2)下流回路が空を受け入れる準備があることを指示するとき、空波面を伝播
する。(オプコード検出回路405は内部バス線402が空に戻るとともに可能な線を
空に戻すであろう)。
【0070】 フィールドレジスタ403は内部バス402からその有意味情報を受けない1つのレ
ジスタ、スロットレジスタ425を含む。スロットレジスタ425は、さらに命令を処
理するスロット構造209内で特定のスロットのアドレスを記憶する。“スロット 構造”と題する区分で議論され、かつスロット231について図9で示したように 、命令処理を完成したスロットは、信号線を通してスロットバス249に新しい命 令を受け入れることの準備を合図する。これは自由スロットのアドレスを図10の
自由スロットFIFO409のレジスタに置かせるであろう。各時間オプコード検出回 路405は新しい命令を検出し、閾値1ゲート441は自由スロットFIFO409の最後の レジスタ443が利用可能なスロットのアドレスをスロットレジスタ425に通過させ
ることを可能にする。もし多元スロットが利用可能なら、それらは自由スロット
FIFOにおけるアドレスの注文に従って先入れ先だしの基準を利用されるであろう
。もし全てのスロットが占められる(どれも自由でない)なら、自由スロットFI
FO409の全てのレジスタは空値を保持し、次の利用可能な自由スロットのアドレ スがFIFOを通してスロットレジスタ425にカスケードにするであろう。この方法 において、新しいプログラム命令の処理は、全てのスロットがそれらのそれぞれ
の命令を処理している間一時休止し、新しい命令の処理はスロットが利用可能に
なるやいなや再開するであろう。
【0071】 完成検出回路407はフィールドレジスタ403の出力を監視し、現在のオプコード
の全てのレジスタが有意味な波面を伝播されたとき、即ちデコーダ回路が現在の
命令処理を完成し、次の命令に循環する準備があるとき、ゲート445から断定信 号を発生する。例えば閾値6ゲート451はオプコード認識回路405からのオプコー
ド信号線XおよびオプコードクラスXにより使用されたこれらのフィールドレジス
タ、即ちOPレジスタ423、Rレジスタ419、Aレジスタ415、RCレジスタ413、およ
びSLOT425を監視する。全て5つのレジスタおよびX信号線が有意味な波面を伝播
されたとき、閾値6ゲート451はその出力を断定し、この断定された出力(イン バータ455により反転された後)は、命令デコーダ205が現在の命令処理と競争し
たことを示す。完成検出回路407はD、XOのための付加的なゲート453、447、449 およびそれぞれオプコードの付加的なクラスを含み得る。(全てのクラスはフィ
ールドOPを使用し、SLOTの使用を要求するであろう)。
【0072】 非同期レジスタ401は、空の交流波面およびデータが内部バス線402に置かれる
ように命令メモリ202とともにタイミングを整合する。完成検出回路407からの空
信号は非同期レジスタ401が次の有意味な命令波面を通すことを可能にする。完 成検出回路407からの断定信号は非同期レジスタ401が次の空波面を通すことを可
能にする。もしいずれかの要求されたフィールドレジスタのいずれかの下流回路
が有意味または空波面を受けることが出来ないなら、それは組合されたフィール
ドレジスタを前進から次の循環へ阻止するであろう。この方法において、ループ
の全ての要素は、システムワイド同期クロックを参照することなく、完全な波面
の形成で直ちに次の循環に進むであろう。
【0073】 命令デコーダは自由スロットFIFO409からの自由スロットの有効性を監視する 。もし新しい命令を処理するために有用なスロットが無いなら、SLOTレジスタ42
5に有意味なスロットアドレスが無いであろう。順次、現命令についての部分的 に解読されたフィールドは完成されず、解決決定回路407は非同期レジスタ401の
ために新しい命令を通過する信号を出さない。スロットが自由になるとき、その
アドレスはSLOTレジスタ425に伝播され、デコーダは現命令を完成し、かつ現命 令の解読されたフィールドをスロットに伝送する。それから完成検出回路は新し
い命令の信号を出すであろう。
【0074】 命令解決循環の例 図11−23は図7のアーキテクチュアにおいて実行されるべき一連の命令の結果
のシーケンスを示す。各図は13の連続的に表わされた命令501の1つを解読した後
のシステムの状態を示している図である。図11−23の各々は:13一組の命令501 を示す左手の欄、レジスタマップ503を示す中央の欄、およびスロット内容505を
示す右手欄を示す。図11−23は、デコーダ205(図7)が13の命令501の部分的な
情報を13のスロット505に負荷するときのシステムの展開状態を示す。
【0075】 図11−23の各々のスロット欄505は9欄511、513、515、517、519、521、523、
525、527を含む。スロット欄の記入は各16スロット10−25の指定がある。スロッ
ト欄505の各列は1つのスロットに対応する。Aa欄はスロットの“A”アドレスレ
ジスタ、例えば図9のスロットのAaレジスタ318を指定する。“A”欄はスロット
の“A”データレジスタ、例えば図9のスロットの“A” データレジスタ317を指
定する。同様に、指定された欄Af 515、Ba 519、B 521、Bf 523、Ra 525、およ びFunc 527はスロットの対応するレジスタ、例えばそれぞれ図9のスロットのレ
ジスタ319、323、327、329、333および337を指定する。表に記入“0”が現れる
ときは、それは空値を示す。表に他の記入が現れるときは、それは有意味な値を
示す。初期状態として、物理的アドレス10−25を有するスロットが自由であり、
かつそれらのアドレスが数値的に上がる順序で自由スロットFIFO409(図10)に 現れることが考えられる。
【0076】 図11は最初の命令“read5address1”507を解読し、適切なフィールド内容を
スロット10のレジスタに伝送した後のシステムの状態を特別に示す。この命令に
おいて、値“read”はメモリ位置を読むオプコードを指定し、スロット10機能レ
ジスタ529に伝送する。値“address”は読まれるべきメモリ位置を指定し、Afお
よびA機能レジスタ533、535に伝送する。値“5”はメモリの内容が伝送される 仮想レジスタアドレス(スロットレジスタ)を指定する。この例において、仮想
レジスタ“5”はリマップレジスタ表503の記入509により示されるように物理的
スロット10にマップされるであろう。以後、全ての仮想レジスタアドレス“5”
はスロット10 Raアドレスのとして物理的アドレスにより置き換えられるであろ う。これらの値は以下のようにデコーダ205から伝送する。図10に示されるよう に、デコーダ205は信号線222から命令を受信し、スロット10のアドレスが自由ス
ロットFIFO409からスロットレジスタ425へ伝送するであろう。オプコード認識回
路405はREAD命令を検出し、フィールドレジスタA 415、OP 423、およびSLOT 425
を可能にする。OPレジスタ423は“read” オプコードを受け、Aレジスタ415は命
令から“address1”を受ける。Rレジスタ419は仮想レジスタアドレス“5”を 受ける。スロット10のアドレスは自由スロットFIFO409の最後のレジスタ443から
SLOTレジスタ425へ伝送する。初期状態において、スロット10の全てのレジスタ はNAK信号をデコーダ205に送り返し、それはフィールドレジスタが対応バスライ
ン215にそれらの有意味値を伝播することを可能にする。完成回路407は有意味波
面の完成を検出し、フィールドレジスタが空波面を受けるために準備している非
同期レジスタ401に信号を送る。リマップレジスタ207(示されない)はスロット
10 Raをレジスタ“5”の記憶位置に負荷する。
【0077】 加えて、有意味な値“D”がAaおよびBaレジスタ531、537にマップされる。( 命令デコーダ205はD値を発生し、適当なスロットレジスタに伝播のため図10の適
当なフィールドレジスタ403にそれらを記憶する)。このD値は付加的な情報がこ
れらのレジスタに必要ないことを示す。しかし、空値がスロット10 Raに残る。 以下により十分に議論されるように、スロットは読みの結果が送られる位置を含
んでいる演算数の完全な組を集め終わるまで、メモリ読みを初期化しないであろ
う。この情報は後の命令により供給されるであろう。
【0078】 図12は命令“read6address2”を解読後のシステムの状態を示す。この命令 の値は、前の命令の値がスロット10の対応レジスタにマップされた方法と同様に
、スロット11のAa、A、Af、BaおよびFuncレジスタにマップする。スロット10の 値は変更されずに残る。“read5address1”命令のように、結果のアドレスが スロット11 Raレジスタに記憶されるまでメモリ読みは起らない。
【0079】 図13は命令“read7address3”を解読後のシステムの状態を示す。この命令 の値は、最初の命令の値がスロット10の対応レジスタにマップされた方法と同様
に、スロット12のAa、A、Af、BaおよびFuncレジスタにマップする。スロット10 おろび11の値は変更されずに残る。“read5address1”命令のように、結果の アドレスがスロット11 Raレジスタに記憶されるまでメモリ読みは起らない。
【0080】 図14は命令“read8address4”を解読後のシステムの状態を示す。この命令 の値は、最初の命令の値がスロット10の対応レジスタにマップされた方法と同様
に、スロット13のAa、A、Af、BaおよびFuncレジスタにマップする。スロット10 、11おろび12の値は変更されずに残る。“read5address1”命令のように、結 果のアドレスがスロット11 Raレジスタに記憶されるまでメモリ読みは起らない 。
【0081】 図15は仮想レジスタ7の値を仮想レジスタ8の値に加え、結果を仮想レジスタ
9に記憶する命令である命令“add7、8、9”を解読した後のシステムの状態 を示す。レジスタマップはレジスタ9のリマップレジスタフィールド532に値“1
4 Ra”を記憶することにより、レジスタ9をスロット14に割り当て、値“add” はスロット14 Funcレジスタ533に記憶される。
【0082】 最後に、スロット14は仮想レジスタ7および8に記憶される有意味データをそ
れが受けるとき“add”命令を解決するであろう。それは有意味な値をスロット1
4 AおよびBデータレジスタに置くことにより行うであろう。スロット12および13
に組合されている前の命令(“read7address3”および“read8address4”)
は、これらの有意味な値を全般的な目的のメモリ位置から読むであろう。しかし
、スロット12および13が有意味な結果アドレスをそれらのRaレジスタに持たなか
ったので、メモリの読みは起らなかった。“add7、8、9”命令の到着で、シ ステムはやっとレジスタ7およびレジスタ8情報が必要される行き先を持つ。メ
モリからスロット12および13への情報の移動、および再びスロット14への情報の
移動よりはむしろ、スロット14へ直接情報を移動することが望まれる。
【0083】 図15に示されるように、値“14 A”をスロット12 Raレジスタ535に置き、値“
14 B”をスロット13 Raレジスタ537に置くことにより、システムはこの直接移動
を達成する。値“14 A”および“14 B”はADD命令およびその命令のスロット14 への割り当てから決定される。これらの値の位置は、仮想レジスタ7を物理的レ
ジスタ12 Raへ、そして仮想レジスタ8を物理的レジスタ12 Raへマップされるリ
マップレジスタから(図14においてそうであったように)決定される。同様に
、リマップレジスタは、仮想レジスタ7の物理的アドレスが“14 A”になり、仮
想レジスタ8の物理的アドレスが“14 B”になるように更新される。このプロセ
スはスロットへの直列書き込み演算、例えばスロット14への“add”を負荷する 書き込み、およびそれからスロット12および14へのRaレジスタを更新する書き込
みを含み得る。リマップレジスタ207は、特定のオプコードについて命令デコー ダ205からの情報に基づいてこれらの書き込みを整合するため、状態機械を含ん でもよい。代わりに、アーキテクチュアは並行書き込みを許容するため多元バス
経路を備えられ得る。
【0084】 スロット12および13のRaレジスタへのこれらの記入は2つの目的を提供する:
(1)メモリ読み命令の行き先の指示、および(2)読み命令が進められ得るよ
うにより完全な情報の提供。スロット12および13は今や完全な情報を持ち、それ
らのそれぞれの命令を解決し得る。命令の目的のため、システムが命令を処理で
きる速度に関して読み演算が遅く、かつ13番目の命令が解読される後まで読み演
算の結果が戻されないことが考えられる。
【0085】 図16は、仮想レジスタ5の内容を仮想レジスタ9により乗算し、結果を仮想レ
ジスタ9に戻して記憶する命令“mult5、9、9”を解読した後のシステムの状
態を示す。前のADD命令後のこの命令の直列実行を許容するため、“mult”命令 が新スロットに割り当てられ、“mult” オプコードがスロット15 Funcレジスタ
547に書きこまれる。A演算数はレジスタ10 Raにマップされる仮想レジスタ5の 値である。それ故、行き先アドレス“15A”はスロット10 Raレジスタ543に書か れる。同様に、B演算数はレジスタ14 Raにマップされた仮想レジスタ9の値であ
る。それ故、、行き先 “15B”はスロット14 Raレジスタ545に書かれる。仮想レ
ジスタ5のレジスタマップ記入549は“15A”に更新され、仮想レジスタ9のレジ
スタマップ記入551は“15 Ra”に更新される。結果が仮想レジスタ9に書き戻さ
れるので、“D”値はまたスロット15 Baレジスタに書かれる。
【0086】 図17は、仮想レジスタ5の内容をそれ自身により乗算し、結果を仮想レジスタ
5に戻して記憶する命令“add5、5、5”を解読した後のシステムの状態を示 す。“add” オプコードはスロット16 Funcレジスタ553に書かれる。A演算数、 仮想レジスタ5はレジスタ15aに前にマップされていたので、値“16A”はスロッ
ト15Aaレジスタ561に書かれる。B演算数、また仮想レジスタ5は今スロット16 Aレジスタ561にマップされるので、値“16B”はスロット16Aレジスタ559に書
かれる。レジスタ5のリマップレジスタ記入は“16Ra”に更新される。結果が仮
想レジスタ5に書き戻されるので“D”はBaレジスタ563に書かれる。
【0087】 図18は、仮想レジスタ5の内容を8から引算し、結果を仮想レジスタ10に記憶
する命令“sub5、8、10”を解読した後のシステムの状態を示す。“sub”オプコ
ードはスロット17 Funcレジスタ565に書かれる。A演算数、仮想レジスタ5はス ロットレジスタ16 Raに前にマップされていたので、値“17A”はスロット16 Ra レジスタ567に書かれる。レジスタ5のリマップレジスタ記入571は“17R”に更 新される。B演算数、仮想レジスタ8はスロット14 Bレジスタ561にマップされた
ので、値“17B”はスロット14 Baレジスタ569に書かれる。レジスタ8のリマッ
プレジスタ記入575は“17R”に更新される。結果が仮想レジスタ10に書かれ、そ
れ故、仮想レジスタ10のリマップレジスタ記入573は“17Ra”に更新される。
【0088】 図19は、仮想レジスタ10の内容を全般的なメモリアドレス5に書く命令“writ
e10address5”を解読した後のシステムの状態を示す。“write”オプコードは スロット18 Funcレジスタ581に書かれる。A演算数“address5”はスロット18A
およびAfレジスタ583に書かれる。B演算数はスロット17Raレジスタにマップさ れた仮想レジスタ10の内容であり、それ故、値“18B”はスロット17Raレジスタ
585に書かれる。レジスタ10のリマップレジスタ記入587は“18B”に更新される
。結果の行き先がなく、それ故、“D”はスロット18Raレジスタ589に書かれる。
【0089】 図20は、仮想レジスタ9の内容を全般的なメモリアドレス6に書く命令“write
9address6”を解読した後のシステムの状態を示す。“write”オプコードはス
ロット19 Funcレジスタ591に書かれる。A演算数“address6”はスロット19Aお
よびAfレジスタ593に書かれる。B演算数はスロット15 Raレジスタにマップされ
た仮想レジスタ9の内容であり、それ故、値“19B”はスロット15Raレジスタ595
に書かれる。仮想レジスタ9のリマップレジスタ記入597は“19B”に更新される
。結果の行き先がなく、それ故、“D”はスロット19 Raレジスタ592に書かれる 。
【0090】 図21は、全般的なメモリアドレス7の内容を仮想レジスタ9に伝送する命令“r
ead9address7”を解読した後のシステムの状態を示す。“read”オプコードは スロット20 Funcレジスタ601に書かれる。A演算数“address7”はスロット20Af
レジスタ603に書かれる。アドレスはスロット構造内のどこにも転送されず、そ れ故、“D”はスロット20Aaレジスタ607に書かれる。B演算数はなく、かつ“D ”はスロット20Baレジスタ605に書かれる。仮想レジスタ9のリマップレジスタ記
入609は“20Ra”に更新される。
【0091】 図22は、仮想レジスタ5の値を仮想レジスタ8の値に加算し、結果を仮想レジ スタ9に記憶する命令である命令“add5、8、9”を解読した後のシステムの 状態を示す。レジスタマップはレジスタ9のリマップレジスタフィールド623に 値“21 Ra”を記憶することによりレジスタ9をスロット21に割り当て、値“add
”がスロット21 Funcレジスタ611に記憶される。A演算数はレジスタ5の値であ り、それはレジスタ17Aに最後にマップされる。これは先行するスロット演算の
正味の結果が仮想レジスタ5の値をスロット17のレジスタAに引渡すであろうと いうことである。“add5、8、9”のため仮想レジスタ5の値をスロット21に使
用するため、スロット17は、その物理的レジスタ17Aの内容を物理的レジスタ21
Aに転送するように命令される。この転送はフィールド613に記入“21A”によ り記述されるように、スロット21Aのアドレスをスロット17のAaレジスタに記憶
することにより達成される。同様に、レジスタ5のリマップレジスタ記入617が “21A”に更新される。“add5、8、9”演算のためのB演算数はスロット17B に最後にマップされた仮想レジスタ8の値である。記入“21B”は、物理的レジ スタ17Bから物理的レジスタ21Bへの仮想レジスタ8の値の転送を達成するため
に、スロット17レジスタBaのフィールド615に記憶される。記入“21B”はまた、
仮想レジスタ8がスロット21のレジスタBに転送されたことを示すリマップレジ
スタのフィールド619に記憶される。命令“add5、8、9”の結果は、前の命令
“read9address7”の結果に取って代わるであろう仮想レジスタ9に記憶され る。仮想レジスタ9の先行するスレッドは結果を物理的アドレス20RAに記憶され
たが、いま終結するであろう。値“D”は、スレッドを終結しかつ他の情報が完 全であるときスロット20が解決することを許容するレジスタ20RAのフィールド62
1に今記憶される。
【0092】 図23は、仮想レジスタ9の内容を全般的な目的のメモリアドレス8に書く命令
“write9address8”を解読した後のシステムの状態を示す。“write”オプコ ードはスロット22 Funcレジスタ625に書かれる。A演算数、“address8”はス ロット22AおよびAfレジスタ627に書かれる。アドレスは転送されなく、それ故
、“D”はスロット22Aaレジスタ629に書かれる。B演算数はスロット21 Raレジ スタにマップされた仮想レジスタ9の内容であり、それ故、値“22B”はスロッ ト21Raレジスタ631に書かれる。仮想レジスタ9のリマップレジスタ記入633は“
21B”に更新される。結果の行き先がないので、“D”はスロット22Raレジスタ6
35に書かれる。
【0093】 命令解決循環の例:解決 図24−37はそれらのそれぞれの命令のこれらスロットの完全な解決(即ち解決
し)、かつ新しい命令を受けるため自由になるようなシステムの状態を示す。図
24−37の様式は図11−23のそれらと同じである。
【0094】 スロット12および13に存在する情報は図15に示されたように完成され、これら
のスロットは、情報が完成するやいなやそれら各々の命令を解決しはじめる。解
決は表現の明快のためここに記述される。
【0095】 スロットの特徴は、図9を参照して理解されたように、完全な情報が存在する
ときそれらの命令を自動的に解決する。各スロットは機能バス221および状態バ ス213へのアクセスを含む。機能バスに関して、スロットが完全な組の有意味演 算数AおよびB、有意味な機能、および結果が記憶されるであろう有意味結果行
き先アドレスRaを持つとき、Aスロットは全般的な機能要素を呼出すかもしれな
い。図9に示されるように、有意味情報のこれらの4つの量は機能Aデータレジ
スタ319、機能Bデータレジスタ329、Raアドレスレジスタ333および第2機能レジ スタ337に置かれる。閾値4ゲート347はこれら4つのレジスタの各々からダック
/ナック信号を監視する。有意味値が存在するとき、閾値4ゲート347の出力は、
完全な有意味な波面がスロット内に組込まれたことを意味し、有意味な波面はそ
れから機能バス221に伝播する。図11−23に示されるように、全て4つのレジス タを要求しない命令はレジスタに有意味“D”値を置き、それにより有意味な値 を提供し、そのレジスタの完成を意味している。この方法において、スロットは
、完全な波面が組込まれたか否かを検出するためそれ自身を監視する。
【0096】 自己監視の同様なプロセスは状態バスに関して起る。例えば、第2 Aaアドレス
レジスタ313および第2 Aデータレジスタ317が有意味値をもつとき、Aレジスタ 複合体は状態バスにアクセスを要求する閾値2ゲート324を含む。Bレジスタ複 合体303は同様な方法で作動する。
【0097】 図24は、スロット10の“read5address1”の解決後のシステムの状態を示す 。図16に示されるように、スロット15は“mult5、9、9”命令を処理すること
を割り当てられ、レジスタ5のメモリから読んだ情報はスロット15にマップされ
る。結果として、スロット10はアドレスレジスタ543が値15Aで負荷される結果 をもたらす。値15Aを受けた後、スロット10は読む命令の波面を完成する。スロ
ット10は、メモリ位置“address1”および全般的目的のメモリ201への行き先ア
ドレス15Aと通信することにより、“read5address1”命令を実行する。全般 的目的のメモリ201はもっと後に有意味データをスロット15Aに戻す。
【0098】 メモリ読出し命令の情報を伝送した後(および下流回路からDAK信号を受け取 った後)、スロット10はそのレジスタをクリアするため空の波面を伝播する。図
9に示されるように、各複合体301、303、305、307は第1および第2レジスタのパ
イプラインを含む。有意味なデータの波面が第2レジスタに組み込まれる間、空 の波面は第1レジスタに組み込んでいる。第2レジスタがそれらの有意味値を下流
回路に通信するとき、それらはまた、空波面を伝播するため第1レジスタに対応 している信号を出す。
【0099】 図24を参照すると、空値が以下のスロット10レジスタに記憶されたことが結果
である:Aa 701、AおよびAf 703、Ba 705、Ra 707、およびFunc 709。さらに
、全般的な目的のメモリ201がメモリ読みの結果を戻すとき、その値“reg5”が
スロット15Aデータレジスタ711に記憶される。スロット15が他のスロットと独 立してその命令を今解決し得ることが注目されるべきである。しかし、メモリ読
みが遅らされ得ることが考えられ、説明はそれらが解読される順番に命令の解決
を記述するであろう。
【0100】 図25は、スロット12が“read7address3”命令を解決した後のシステムの状 態を示す。スロット10の解決と同様な処理において、スロット12はメモリアドレ
ス“address3”および全般的な目的のメモリ201への行き先アドレス14Aと通信 する。スロット12はそれから以下のスロット12レジスタ:Aa 713、AおよびAf
715、Ba 717、Ra 719、およびFunc 721に空を伝播する。全般的な目的メモリ20
1はメモリ読み“reg7”の結果をスロット14 AおよびAfレジスタ713に戻す。
【0101】 スロット14はAaレジスタ714に有意味な情報が欠けているので、その命令を解
決する準備がまだないことに注目されるべきである。しかし、スロット15はその
Aa、A、およびAfレジスタ716、718に有意味な情報を有する。情報はレジスタ
5の情報をレジスタ16Aに転送することを許すために十分である。この処理の非
同期かつ自己監視の様子は図9を参照して見られ得る。閾値2ゲート324は第2A
aレジスタ318および第2Aレジスタ317の両方を監視する。両方が有意味な情報を
持つとき、有意味な波面は状態バス213について完成され、スロットはAレジス タの内容をAaレジスタ313の内容により指定された位置に伝送することを直ちに
開始する。
【0102】 これはスロット構造の“カスケード”特性の例である。このときシーケンスに
おいて、先行する解読された命令の結果に依存して後に解読された命令で乗算命
令が解読される。これらの依存関係はスロット内に置かれたアドレスのスレッド
に反映される。より早い命令が依存関係について十分な情報を持つことなく解読
され得る。続く命令が解読され、依存関係についての情報がスロットに記憶され
る。それから、より早い解読された命令が解決されるとき、それが(1)スレッ
ドの終りに到達する、または(2)まだ他の必要な情報を待っているスロットに
到達する、の何れかまで、結果はスロットを通してカスケードにする。この特徴
は、中央制御の巻きこみなしに減少された、最小または潜在的に非同期および自
己分配の両方である自然な共働処理可能性を提供する。
【0103】 図26はスロット13が“read8address4”命令を解決した後のシステムの状態 を示す。スロット10の解決と同様な処理において、スロット13はメモリアドレス
“address4”および全般的な目的のメモリ201への行き先アドレス“14B”と通 信する。スロット13はそれから以下のスロット13レジスタに空を伝播する:Aa
725、AおよびAf 727、Ba 729、Ra 731、およびFunc 733。全般的な目的メモリ
201はメモリ読み“reg8”の結果をスロット14 Bおよび14Bfレジスタ739に戻す。
スロット14は、それがAaレジスタ736に有意味な情報を欠いているので、その命 令を解決する準備がまだないことに注目すべきである。
【0104】 図26はまたスロット15のAレジスタ735を通して情報のカスケードの結果を示 す。図25に示されたように、スロット15のAaレジスタ716は有意味アドレス“16
A”を含み、Aレジスタ718は有意味情報“reg5”を含む。これは値“reg5” をレジスタ16Aにカスケードするに十分な情報である。図26はスロット15Aaお よびAレジスタ734、735に空値を示し、スロット16AaおよびAレジスタ736に値
“reg5”を示すことによりこのカスケードを反映する。スロット16がレジスタ1
6Bに値“reg5”をカスケードするための十分な情報を今や持つことが注目され
るべきである。
【0105】 図27はスロット14が“add7、8、9”を解決した後のシステムの状態を示す 。図26に示されたように、スロット14はAf、Bf、RaおよびFuncレジスタの有意
味な情報を含む。この組の情報が完成すると直ちに、スロット14はAおよびB演
算数(“reg7”および“reg8”)およびRaアドレス(“15B”)を機能バス22
1(図8)を通して全般的な機能ADD要素253(図8)に通信する。スロット14は それからAf、Bf、RaおよびFuncレジスタ741、743、745、747に空を伝播する。
全般的な機能ADD要素253はスロット15BおよびBfレジスタ749に結果を戻す。
【0106】 スロット14Aレジスタ742およびBレジスタ744が有意味なデータを保持し続け
ることが注目されるべきである。それがADD機能を完成してさえ、それがそのデ ータの最後をカスケードしかつ全てのレジスタを通して空を循環するまで、スロ
ット14は新しい命令を受ける自由がないであろう。
【0107】 複数の値がカスケードに準備していることがまた注目されるべきである。スロ
ット14Bレジスタ744は値“reg8”をレジスタ17Bにカスケードする準備をして
いる。スロット15Bレジスタ749は値“reg9”をクリアする準備をしている。ス
ロット15Baレジスタが転送アドレスよりむしろ“D”値を保持するので、この値
はクリアされるであろう。“D”値はBfレジスタをクリアしない。Bfレジスタは 機能が実行された後クリアされるであろう。スロット16Aレジスタ751はレジス タ16Bにカスケードする準備がある。
【0108】 図28は上に議論した複数のレジスタをカスケードしかつクリアした後のシステ
ムの状態を示す。スロット14BaおよびBレジスタ755は、値“reg8”をスロッ ト17BおよびBaレジスタ761にカスケードした後にクリアされた。スロット15B
およびBaレジスタ753はクリアされた。(スロット15Bfレジスタは“mult”機 能の演算数である値“reg9”を保持し続ける。)スロット16AaおよびAレジス
タ757は、値“reg5”をスロット16BおよびBfレジスタ759にカスケードした後
空を伝播された。
【0109】 スロット15がAf、Bf、RaおよびFuncレジスタに有意味な値を有することが注
目されるべきである。それは結果をレジスタ19Bに戻す“mult”機能を解決する
準備をしている。
【0110】 図29はスロット15が“mult5、9、9”命令を解決した後のシステムの状態を
示す。以下のスロット15レジスタは演算数をマルチ全般的機能要素255(図8) に
送った後クリアされた:Af 763、Bf 765、Ra 767およびFunc 769。乗算の結果
、“reg9”はスロット19BおよびBfレジスタ771に記憶された。
【0111】 多数のカスケードと解決がいま準備されたことに注目されるべきである。スロ
ット16は“add”機能773を解くことができ、スロット16はそのBレジスタ775の 内容を転送することができ、スロット17はそのBレジスタ777の内容を転送する ことができる。
【0112】 図30はスロット16“add5、5、5”機能の解決および複数値の転送後のシス テムの状態を示す。以下のスロット16レジスタは加算後クリアされた:Af 781 、Ba 783、BおよびBf 785、Ra 787およびFunc 789。スロット17AおよびAfレ
ジスタ791はレジスタ15Aからのカスケードの後、値“reg5”を今保持する。ス
ロット17BaおよびBレジスタ793は値“reg8”をスロット21BおよびBfレジス
タ795にカスケードした後、今空を保持する。
【0113】 図31は、スロット17Aレジスタ799からスロット21AおよびAfレジスタ801に 値“reg5”をカスケードした後のシステムの状態を示す。空が今スロット17Aa
およびAレジスタ797、799に現れる。
【0114】 図32は、スロット17が“sub”機能を解決した後のシステムの状態を示す。 以下のスロット17レジスタは今空を保持する:Af 803、Bf 805、Ra 807、Func
809。結果“reg10”はスロット18BおよびBfレジスタ811に記憶された。
【0115】 図33は、スロット18、19および22がそれらのAレジスタをクリアした後のシス
テムの状態を示す。これら3つのスロットは“write”機能を実行するように割 り当てられ、演算数はそれらそれぞれのBレジスタ複合体に割り当てられた。A
複合体は使用されず、それ故AaおよびAレジスタ813、815はクリアされ得る。 命令が図19、20および23に最初に割り当てられたとき、“D”値がAaレジスタ81
3に置かれたことに注意せよ。この解決は、アドレスおよび“D”値のAおよびA
aレジスタそれぞれへの割り当てで直ちに起った。代わりに、A複合体は最初に 割り当てられたとき空のままにしておかれた。
【0116】 図34はスロット18が“write”命令を解決した後のシステムの状態を示す。以 下のスロット18レジスタは今空を保持する:Af 813、Bf 814、Ra 815、および
Func 817。Bレジスタはまだ有意味な値“reg10”を保持し、行き先アドレスが 供給されるまでそうするであろう。
【0117】 図35はスロット19が“write”命令を解決した後のシステムの状態を示す。ス ロット19Raレジスタの値“D”は結果アドレスがないことを指示する。以下のス ロット19レジスタは今空を保持する:Af 819、Ba 821、B 823、Bf 825、Ra
827、およびFunc 829。スロット18のBレジスタはまだ有意味な値“reg10”を保
持し、行き先アドレスが供給されるまでそうするであろう。
【0118】 図35はまた、命令“read9address7”を実行するよう割り当てられたスロッ ト20の解決を示す。まさに次の命令“add5、8、9”は、値が全てに使用され ることなくレジスタ9を重ね書きするであろう。かくして、より後の命令はアド
レス7から読まれた値に依存しない。依存関係の欠けた特徴として、アーキテク
チュアは以下のスロット20レジスタに“D”値を書いた:Aa、Ba、およびRaレ ジスタ(例えば、図34を見よ)。結果が転送されないので、命令は実行される必
要がない。この図は、以下のレジスタに空値が置かれることで命令の解決を示す
:Aa 831、Af 833、Ba 835、Ra 837およびFunc 839。(Raアドレスは図22の 処理で“D”を要求し、解決はそのときに直ちに起った。図示の目的のため、以 下の命令のシーケンスがここに示される。実行される特定の命令セットに依存し
て、命令デコーダが特定のオプコード経路のために使用されない全てのレジスタ
に“D”値を挿入し得る。加えて、あるいは代わりに、機能フィールドが完全を 要求されるレジスタのサブセットを定義している情報を含むように拡張され、完
全な名称が形成されたことを示すため監視機能を実行するように適当な組合せゲ
ート回路が含まれる)。
【0119】 図36はスロット21が“add5、8、9”命令を解決した後のシステムの状態を 示す。以下のスロット21レジスタは加算後クリアされた:Af 841、Bf 843、Ra
845およびFunc 847。スロット22BおよびBfレジスタ849は、ADD全般的機能要 素253(図8)から戻った後、今値“reg9”を保持する。
【0120】 図37はスロット22が“write9address8”命令を解決した後のシステムの状態
を示す。以下のスロット21レジスタは加算後クリアされた:Af 851、Bf 853、
Ra 855およびFunc 857。
【0121】 スロットは今それらにマップされる命令を待っている安定状態にある。スロッ
トのレジスタ状態はレジスタマップにより指示されたことに正確に一致する。レ
ジスタ5は21Aであり、レジスタ6は11Raである等。命令を解決した全てのスロ
ットは再使用のために解放される。スロット11は他の命令により要求されるべき
レジスタ6を待っているので、決して完成されかつ解決されない。
【0122】 命令メモリ 命令メモリは、ここに引用文献として組込まれたU.S.特許出願No.08/458,139 に開示されたように、大規模なアドレス可能なレジスタであり得る。代わりに、
命令は、ここに引用文献として組込まれたU.S.特許出願No.08/423,770“空慣例 インターフェイス回路”に記述された種類のインターフェイス回路を通して接続
された伝統的な(2つの状態にクロックされた)メモリであり得る。
【0123】 全般的な目的のメモリは待ち行列の付加で命令メモリと同じであり得る。図38
は図7のアーキテクチュアの全般的な目的メモリの要素を示す。図38はメモリ要
素901、メモリ管理器903、書きおよび読みバッファー905、907、およびメモリア
クセス待ち行列909を示す。
【0124】 書きおよび読みバッファー905、907はメモリ要素901を状態バス213に接続する
。これらのバッファーは空および有意味データの交流波面のタイミングを提供す
る。
【0125】 メモリアクセス待ち行列はOPバスに接続し、読みおよび書き作動のシーケンス
を直列化する役に立つ。スロットの命令の解決は非同期である。メモリ読みおよ
び書き要求は、要求しているスロットで更なる命令なしに完成されるべき十分な
情報を有する波面として送られる。メモリアクセス要求は、機能(読みまたは書
き)と同様にメモリアドレスおよびスロットアドレス(書く源、読む行き先)を
含むであろう。オプコード、メモリアドレスおよび行き先アドレスはメモリアク
セス待ち行列に入力される。要求は最初に入り最初に出る基準で実行される。要
求が待ち行列のヘッドに伝播するとき、メモリ管理器はメモリから読むまたはメ
モリへ書くか否かを決定するオプコードを使用する。メモリ管理器はまた、メモ
リに制御信号を供給し、データが正確な位置から検索され、正確な位置に書かれ
ることを確保するため読みバッファー905または書きバッファー907にバスアドレ
ス信号を提供する。メモリ管理器は状態機械として実施されてもよい。
【0126】 リマップレジスタ リマップレジスタは上述の機能を実行し、それは一次的に物理的アドレスに対
する仮想アドレスのマッピングである。U.S特許出願No. 08/458,139に記述され た型のアドレス可能なレジスタファイルが使用され得、レジスタファイルのアド
レス入力はデコーダA、BおよびR出力241、243、245から引き出され、レジスタ
ファイルの出力はメモリ出力である。もし命令セットが仮想レジスタアドレスよ
りもむしろ物理的アドレスを使用するなら、レジスタファイルは必要ではない。
【0127】 リマップレジスタはまたある命令の直列化を実行する。例えば、図17に示され
た命令“add5、5、5”はスロット15Aaレジスタおよびスロット16Aaレジスタ に書き込操作をもたらした。状態機械はオプコードおよび演算数に基づいて2つ
のスロット書き込み循環を通して循環するため、リマップレジスタに加算され得
る。
【0128】 リマップレジスタはまたスロットレジスタに書かれるべき“D”値を発生して もよい。連続的な論理または状態機械はオプコードおよび演算数に基づいて“D ”値を挿入するためリマップレジスタに加算され得る。
【0129】 分岐プロセッサ 選択的な分岐プロセッサが流れ制御命令の取扱いを改善するために付加され得
る。それは分岐命令を実行し、すでに記述されたスロット構造を使用している状
態の試験を可能にする。代わりに、特定化された回路がアドレッシング制御のた
め命令メモリへの入力に挿入され得る。
【0130】 特別な機能 特別な機能要素が数学的、論理的または他の機能を実行する回路を分担される
。これらの回路は実行されるべき命令セットに依存している組合された論理、シ
ーケンス回路または他の回路として実行されてもよい。
【0131】 変形 全般的に、非同期回路で本発明のアーキテクチュアを実行することが好ましい
。クロックされた回路が特別機能または複雑な機能のために使用され、U.S特許 出願No. 08/423,770に記述されたようなインターフェイス回路を使用して接続さ
れ得る。
【0132】 上に示された例は、“パワーPC”(TM)として知られた減少された命令セ
ットコンピュータ例を基本にされた。ここに引用文献として組込まれたU.S特許N
o.5,355,496“プロセス数式および解決の方法およびシステム”に記述されたセ ットのような他の命令セットが使用されてもよい。
【0133】 上述された実施例を学習した後、この技術を実行する者は発明の精神および範
囲内に入る変形を作り得るであろう。上述された実施例は例であるが、請求の範
囲により定義されたような発明の範囲を制限することを意図しない。
【図面の簡単な説明】
【図1】 4ゲートの3の図式記号示す。
【図2】 4ゲートの3の図式記号示す。
【図3】 非同期レジスタの図式記号を示す。
【図4】 非同期レジスタの図式記号を示す。
【図5】 自主的に循環するシステムループの要素を示す。
【図6】 関数プロセッサを有する自主的に循環するシステムループの要素を示す。
【図7】 カスケードスロット構造を有する自主的に循環するデータ処理アーキテクチュ
アの要素を示す。
【図8】 図7のアーキテクチュアにおけるスロット構造の要素を示す。
【図9】 図8のスロット構造のスロットの詳細な要素を示す。
【図10】 図7のアーキテクチュアにおける命令デコーダの要素を示す。
【図11】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図12】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図13】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図14】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図15】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図16】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図17】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図18】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図19】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図20】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図21】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図22】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図23】 図7のアーキテクチュアにおいて実行されるべき一連の命令のシーケンスを示
す。
【図24】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図25】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図26】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図27】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図28】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図29】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図30】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図31】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図32】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図33】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図34】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図35】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図36】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図37】 図11乃至図23の命令のこれらのスロットの完全な実行(即ち解決)と同様にシ
ステムの状態を示す。
【図38】 メモリアクセス待ち行列を含んでいる図7のアーキテクチュアの全般目的メモ
リ要素を示す。
【符号の説明】
101…メモリ、103…デコーダ、105…分岐プロセッサ、107…命令アドレス、10
9…命令、111…命令アドレスバス、113…命令バス、115…フィールド信号線、11
7…非同期レジスタ、118…非同期レジスタ、121…演算プロセッサ、123…データ
アドレスバス、125…データバス、143…バス、201…全般目的メモリ、202…命令
メモリ、203…分岐プロセッサ、205…命令デコーダ、207…リマップレジスタ、2
09…スロット構造、211…機能要素、213…状態バス、213…共通状態バス、215…
局部信号経路、215…対応バスライン、217…局部信号経路、219…局部信号経路 、221…機能バス、222…信号線、223…データ経路、231…スロット、241…バス 、243…バス、245…バス、247…バス、249…スロットバス、251…数学論理ユニ ット、253…加算器、255…乗算器、301…Aレジスタ複合体、303…Bレジスタ複
合体、305…Rレジスタ複合体、307…機能レジスタ複合体、310…並行信号線、3
11…Aアドレスレジスタ、312…信号線、313…Aアドレスレジスタ、314…並行 信号線、315…Aデータレジスタ、316…信号線、317…Aデータレジスタ、318…
信号線、319…Aデータレジスタ、320…状態バス信号線、321…Bアドレスレジ スタ、322…閾値ゲート、323…Bアドレスレジスタ、324…閾値ゲート、325…B
データレジスタ、327…Bデータレジスタ、328…信号線、329…Bデータレジス タ、329…データレジスタ、330…ゲート、331…Rアドレスレジスタ、333…アド
レスレジスタ、335…機能レジスタ、337…機能レジスタ、341…ゲート、343…ゲ
ート、345…ゲート、347…ゲート、401…非同期レジスタ、402…内部バス線、40
3…フィールドレジスタ、405…オプコード認識回路、405…オプコード検出回路 、405…時間オプコード検出回路、407…完成検出回路、411…レジスタ、412…レ
ジスタ、413…レジスタ、415…Aレジスタ、417…Bレジスタ、419…Rレジスタ
、421…レジスタ、423…レジスタ、425…スロットレジスタ、431…ゲート、433 …ゲート、441…ゲート、443…レジスタ、445…ゲート、447…ゲート、451…ゲ ート、501…命令、503…レジスタマップ、503…リマップレジスタ表、505…スロ
ット内容、509…記入、513…欄、529…機能レジスタ、537…レジスタ、532…リ マップレジスタフィールド、533…レジスタ、535…機能レジスタ、537…レジス タ、543…レジスタ、543…アドレスレジスタ、545…レジスタ、547…レジスタ、
549…レジスタマップ記入、551…レジスタマップ記入、553…レジスタ、559…A
レジスタ、561…レジスタ、561…Aレジスタ、563…レジスタ、565…レジスタ、
567…レジスタ、569…レジスタ、571…リマップレジスタ記入、573…リマップレ
ジスタ記入、575…リマップレジスタ記入、581…レジスタ、583…レジスタ、585
…レジスタ、587…リマップレジスタ記入、589…レジスタ、591…レジスタ、592
…レジスタ、593…レジスタ、595…レジスタ、597…リマップレジスタ記入、601
…レジスタ、603…レジスタ、605…レジスタ、607…レジスタ、609…リマップレ
ジスタ記入、611…レジスタ、613…フィールド、615…フィールド、617…リマッ
プレジスタ記入、619…フィールド、621…フィールド、623…リマップレジスタ フィールド、625…レジスタ、627…レジスタ、629…レジスタ、631…レジスタ、
633…リマップレジスタ記入、635…レジスタ、711…Aデータレジスタ、713…レ
ジスタ、714…レジスタ、716…レジスタ、718…レジスタ、718…Aレジスタ、73
4…Aレジスタ、735…Aレジスタ、736…Aレジスタ、739…レジスタ、743…レ ジスタ、742…Aレジスタ、744…Bレジスタ、749…Bレジスタ、751…Aレジス
タ、753…レジスタ、755…Bレジスタ、757…Aレジスタ、759…レジスタ、761 …レジスタ、771…レジスタ、773…機能、775…Bレジスタ、777…Bレジスタ、
791…レジス、793…Bレジスタ、795…レジスタ、797…Aレジスタ、799…Aレ ジスタ、801…レジスタ、811…レジスタ、813…Aレジスタ、849…レジスタ、90
1…メモリ要素、903…メモリ管理器、905…読みバッファー、907…読みバッファ
ー、907…書きバッファー、909…メモリアクセス待ち行列。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キンネイ、ラリー アメリカ合衆国、ミネソタ州 55421 フ リッドレイ、エヌ・イー、グレイシャー・ レーン 1463 Fターム(参考) 5B033 AA10 DD01

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 命令を含む命令メモリと、 命令を受けかつデータの解読されたフィールドを発生する命令デコーダと、 複数のスロットとを含み、各スロットが (1)少なくとも部分的にデータ処理操作を定義する解読されたフィールド
    を受ける機能レジスタと、 (2)少なくとも部分的にデータ処理操作を定義する解読されたフィールド
    を受けるスロットデータレジスタと、 (3)データ処理操作の結果が記憶されるべきである位置を示すアドレスを
    受ける結果アドレスレジスタと、 (4)機能レジスタ、スロットデータレジスタおよび結果アドレスレジスタ
    のデータの完成を検出し、かつデータ処理操作の解決を開始するための有用な信
    号を発生するスロット完成検出回路とを有する 電子的データ処理回路。
  2. 【請求項2】 結果アドレスレジスタが他のスロット内に位置のアドレスを
    受ける請求項1の回路。
  3. 【請求項3】 スロットがさらに、スロットデータレジスタと連合されたス
    ロットデータアドレスレジスタを含み、 スロットデータアドレスレジスタは連合されたスロットデータレジスタのデー
    タが転送されるべきである他のスロットに位置を受ける請求項1の回路。
  4. 【請求項4】 スロットがさらに、スロットデータレジスタおよびスロット
    データアドレスレジスタのデータの完成を監視するスロットデータレジスタ完成
    回路を含む請求項3の回路。
  5. 【請求項5】 スロットが複数のスロットデータレジスタを含む請求項1の
    回路。
  6. 【請求項6】 スロットが複数のスロットデータレジスタ複合体を含み、各
    複合体がスロットデータレジスタとスロットデータアドレスレジスタとを含んで
    いる請求項3の回路。
  7. 【請求項7】 命令デコーダが 少なくとも部分的にデータ処理操作を定義する解読されたフィールドを記憶し
    ているオプコードレジスタと、 少なくとも部分的にデータ処理操作を定義するデコーダデータレジスタと、 オプコードレジスタおよびデコーダデータレジスタのデータの完成を検出する
    デコーダ完成検出回路とを含む請求項1の回路。
  8. 【請求項8】 デコーダがさらに、オプコードレジスタのオプコードについ
    て情報を受け、かつ予定のクラスのオプコードとしてオプコードを確認する信号
    を発生するオプコード認識回路を含み、ここに予定のクラスは命令の解読完成の
    ため要求されるデータの量により特徴付けられる請求項7の回路。
  9. 【請求項9】 デコーダがさらに、空および有意味データの交流波面を伝播
    する非同期レジスタを含み、前記有意味データが解読されるべき命令を含む請求
    項1の回路。
  10. 【請求項10】 第1のプログラム命令を解読位置に通信し、 第1のプログラム命令を、第1データ処理操作を少なくとも部分的に定義する第
    1の複数のフィールドに解読し、 情報の第1の複数のフィールドを第1スロット位置に通信し、 第1スロット位置で、第1データ処理操作の解決に必要な完成セット情報の存在
    を検出し、 第1データ処理操作を解決し、 第1スロット位置からの信号を、第1スロット位置が新しいデータ処理操作を解
    決するために利用可能であることを示す解読位置に通信する ステップを含んでいるプログラムされたデータ処理の電子的方法。
  11. 【請求項11】 完成セット情報の存在を検出するステップが結果アドレス
    情報の存在を検出するステップを含み、ここに結果アドレス情報は、第1データ 処理操作の結果が転送されるべきである位置を指示する請求項10の方法。
  12. 【請求項12】 結果アドレス情報を第1スロット位置に通信するステップ が情報の第1の複数のフィールドを通信するステップから異なる時間に起る請求 項11の方法。
  13. 【請求項13】 結果アドレス情報を第1スロット位置に通信するステップ が情報の第1の複数のフィールドを通信するステップから非同期的に起る請求項 11の方法。
  14. 【請求項14】 プログラムの第2の命令を解読位置に通信し、 第2の命令を、第2データ処理操作を少なくとも部分的に定義する第2の複数
    のフィールドに解読し、 情報の第2の複数のフィールドを第2スロット位置に通信し、 第2スロット位置で、第1データ処理操作の解決に必要な完成セット情報の存 在を検出し、 第2データ処理操作を解決し、 第2スロット位置からの信号を、第2スロット位置が新しいデータ処理操作を
    解決するために利用可能であることを示す解読位置に通信する ステップをさらに含んでいる請求項10の方法。
  15. 【請求項15】 第2データ処理操作を解決するステップが第1データ処理
    操作を解決するステップから非同期的に実行される請求項14の方法。
  16. 【請求項16】 結果アドレス情報を第1スロット位置に通信するステップ をさらに含み、ここに結果アドレス情報は、データ処理操作の結果が転送される
    べきである位置を指示する請求項14の方法。
  17. 【請求項17】 結果アドレス情報を第1スロット位置に通信するステップ が、第1データ処理操作の結果が転送されるべきであるアドレスと通信するステ ップを含む請求項16の方法。
  18. 【請求項18】 データアドレス情報を第1スロット位置に通信するステッ プをさらに含み、データアドレス情報はデータが転送されるべきである第2スロ ット位置に位置を指示する請求項14の方法。
  19. 【請求項19】 第1プログラム命令を解読位置に通信するステップは、ス ロットがデータ処理操作を解決するために利用可能である解読位置で信号を受信
    することに付随的である請求項10の方法。
JP2000513191A 1997-09-24 1998-09-23 自主的に循環するデータ処理アーキテクチュア Pending JP2001517825A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/936,617 US5907693A (en) 1997-09-24 1997-09-24 Autonomously cycling data processing architecture
US08/936,617 1997-09-24
PCT/US1998/019831 WO1999015956A1 (en) 1997-09-24 1998-09-23 Autonomously cycling data processing architecture

Publications (1)

Publication Number Publication Date
JP2001517825A true JP2001517825A (ja) 2001-10-09

Family

ID=25468884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000513191A Pending JP2001517825A (ja) 1997-09-24 1998-09-23 自主的に循環するデータ処理アーキテクチュア

Country Status (6)

Country Link
US (1) US5907693A (ja)
EP (1) EP1025484A4 (ja)
JP (1) JP2001517825A (ja)
AU (1) AU9502098A (ja)
CA (1) CA2304609A1 (ja)
WO (1) WO1999015956A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937053B2 (en) * 2003-06-17 2005-08-30 Honeywell International Inc. Single event hardening of null convention logic circuits
US6791362B1 (en) 2003-12-09 2004-09-14 Honeywell International Inc. System level hardening of asynchronous combinational logic
US7451384B2 (en) * 2004-07-15 2008-11-11 Honeywell International Inc. Error recovery in asynchronous combinational logic circuits
US8981812B2 (en) 2012-02-21 2015-03-17 Wave Semiconductor, Inc. Self-ready flash null convention logic
US9024655B2 (en) 2012-02-21 2015-05-05 Wave Semiconductor, Inc. Multi-threshold flash NCL circuitry
US9203406B2 (en) 2012-02-21 2015-12-01 Wave Semiconductor, Inc. Implementation method for fast NCL data path
US11469914B2 (en) * 2012-08-10 2022-10-11 Viasat, Inc. System, method and apparatus for subscriber user interfaces
US8952727B2 (en) 2012-08-20 2015-02-10 Wave Semiconductor, Inc. Hum generation circuitry
US9047092B2 (en) * 2012-12-21 2015-06-02 Arm Limited Resource management within a load store unit
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9692419B2 (en) 2014-11-15 2017-06-27 Wave Computing, Inc. Compact logic evaluation gates using null convention
US9960771B2 (en) 2016-03-31 2018-05-01 Wave Computing, Inc. Hum generation using representative circuitry
US10318691B2 (en) 2016-06-22 2019-06-11 Wave Computing, Inc. Timing analysis and optimization of asynchronous circuit designs

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3715603A (en) * 1971-10-28 1973-02-06 Rca Corp Threshold gate circuits employing field-effect transistors
US4845633A (en) * 1985-12-02 1989-07-04 Apple Computer Inc. System for programming graphically a programmable, asynchronous logic cell and array
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
US5222237A (en) * 1988-02-02 1993-06-22 Thinking Machines Corporation Apparatus for aligning the operation of a plurality of processors
JP3122756B2 (ja) * 1991-01-12 2001-01-09 直 柴田 半導体装置
US5121003A (en) * 1990-10-10 1992-06-09 Hal Computer Systems, Inc. Zero overhead self-timed iterative logic
WO1992012575A1 (en) * 1991-01-12 1992-07-23 Tadashi Shibata Semiconductor device
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
TW203665B (ja) * 1991-03-21 1993-04-11 Shibata Naoru
DE4115081A1 (de) * 1991-05-08 1992-11-12 Siemens Ag Logikschaltung fuer asynchrone schaltungen mit n-kanal-logikblock und dazu inversem p-kanal-logikblock
JP3421365B2 (ja) * 1992-07-29 2003-06-30 直 柴田 半導体装置

Also Published As

Publication number Publication date
CA2304609A1 (en) 1999-04-01
AU9502098A (en) 1999-04-12
EP1025484A4 (en) 2001-08-16
WO1999015956A1 (en) 1999-04-01
EP1025484A1 (en) 2000-08-09
US5907693A (en) 1999-05-25

Similar Documents

Publication Publication Date Title
US5630157A (en) Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
US5592679A (en) Apparatus and method for distributed control in a processor architecture
US5293500A (en) Parallel processing method and apparatus
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPS61276031A (ja) デ−タ処理装置
JP2001517825A (ja) 自主的に循環するデータ処理アーキテクチュア
JP2001517333A (ja) 自己修飾コード処理装置
JP3155519B2 (ja) スーパスカラ・プロセッサでストア命令を処理する方法及び装置
JPH11272464A (ja) 投機的境界不整列ロ―ド操作方法及び装置
JPH0622035B2 (ja) ベクトル処理装置
US5778248A (en) Fast microprocessor stage bypass logic enable
RU2142157C1 (ru) Способ функционирования системы обработки
JP2000503151A (ja) データの依存性に従って処理エレメントを動的に接続するように構成されたマイクロプセッサ
EP0518420A2 (en) Computer system for concurrent processing of multiple out-of-order instructions
US5761474A (en) Operand dependency tracking system and method for a processor that executes instructions out of order
JP2001142699A (ja) パイプラインプロセッサにおける命令データの転送メカニズム
US5875326A (en) Data processing system and method for completing out-of-order instructions
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
EP0496407A2 (en) Parallel pipelined instruction processing system for very long instruction word
US4803615A (en) Microcode control of a parallel architecture microprocessor
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
EP0924603A2 (en) Compiler controlled dynamic scheduling of program instructions
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system
JP3490005B2 (ja) 命令制御装置及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070410