JP2571757B2 - 信号処理装置及び該装置を使用する - Google Patents

信号処理装置及び該装置を使用する

Info

Publication number
JP2571757B2
JP2571757B2 JP60041773A JP4177385A JP2571757B2 JP 2571757 B2 JP2571757 B2 JP 2571757B2 JP 60041773 A JP60041773 A JP 60041773A JP 4177385 A JP4177385 A JP 4177385A JP 2571757 B2 JP2571757 B2 JP 2571757B2
Authority
JP
Japan
Prior art keywords
data
address
microcode
bus
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.)
Expired - Fee Related
Application number
JP60041773A
Other languages
English (en)
Other versions
JPS60217438A (ja
Inventor
ダブリユ.キヤンデイ ドナルド
イー.オツト グランビイル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS60217438A publication Critical patent/JPS60217438A/ja
Application granted granted Critical
Publication of JP2571757B2 publication Critical patent/JP2571757B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3017Runtime instruction translation, e.g. macros
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

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)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はデータの処理装置ならびに方法に関するもの
で,とくにスレッデッドインタープリティブランゲージ
(TIL)を用いたデータ処理装置ならびに方法に係わる
ものである. [従来の技術] 技術の進歩にともない,演算およびデータ処理上の要
求をいずれも満たすような,高速ディジタルコンピュー
タに対する要望が高まっている. 中央処理装置(CPU)を用いて所定のタスクを行なう
速度はさまざまな要因により定まるが,そのような要因
としては,中央処理装置自体の実効速度がどれほどであ
るかということと,該装置にどのような言語を使用する
かということが,あげられる.実効速度はコスト要因と
デバイス技術の現状の関数であり,またプログラミング
言語は一般には,与えられたタスクに対するプログラム
速度と実行速度を向上させるように設定することが可能
な要因である.最適のプログラム言語はアセンブリコー
ドを機械語に翻訳するアセンブリ語であり,しかも,当
面するアプリケーションがその使用を許す場合には,も
っとも効率の高い言語である.しかしながら,ほとんど
のプログラム言語はソース言語をターゲット言語に変換
するに当って,コンパイラを使用するものであり,効率
の高いコードを作成しようとすれと,コンパイラはいき
おい複雑なものとなるのが通常であり,また小型のマイ
クロコンピュータやミニコンピュータではほとんど使用
不能の大量のメモリを必要とする.このため,大型のコ
ンパイラを使用することなくプログラム効率を高めるべ
く,さまざまの言語が開発されており,そのような言語
のひとつとして,一般に「スレッデッドインタープリテ
ィブランゲージ」として分類されている言語がある.こ
のスレッデッドインタープリティブランゲージは,他の
高レベルの言語よりも実行速度が高く,これと同等のア
センブリ語プログラムに較べて20%ないし75%しか実行
速度が低くない.くわえて,スレッデッドインタープリ
ティブランゲージはきわめてコンパクトにコンパイルさ
れ,従って同等のアセンブリ語よりもメモリが少なくす
むコードを用いている.なお上記各言語については,た
とえば「Threaded Interpretive Languages」(R.G.レ
リジャー.1981)および「Staeting Foeth」(レオ・ブ
ロディ)にその記載がある. このようなスレッデッドインタープリティブランゲー
ジはソース語を受けて,一旦ターゲット語を作成するこ
となく,直接そのソース語を実行するものである.すな
わちスレッデッドコードインタープリタは,ソース語を
中間言語ないしは内部フォームに翻訳した後,この内部
フォームを実行する.この内部フォームは,あらかじめ
設定された内部フォームのアドレスのリストからなるも
ので,このリストをスレッドすなわち縫い合せた後に,
これらアドレスないし内部フォームの各々を次々と実行
する.翻訳の効率を高めるため,スレッデッドインター
プリティブランゲージは逆ポーランド記法で動作する一
連のスタックを用いる.すなわち,個々の表現を評価す
る順序を特定し,たとえば,数字や識別子,オペランド
等は,これらが適用される順序と同じ順序で現われるよ
うにするのである. さらに,スレッデッドインタープリティブランゲージ
は一般に,いずれも後入れ先出し(Last−in First−ou
t)プッシュダウン型のスタックを2個,すなわちデー
タスタックとリターンスタックを用いる.データスタッ
クは数字やオペランドのアドレスを記憶するのに用いら
れ,リターンスタックはプログラムフロー制御パラメー
タを記憶するのに用いられる.スレッデッドインタープ
リティブランゲージの使用中は,実行すべきタスクの各
々について,プログラムステップを複数回実行しなけれ
ばならない.前記内部フォームのためのアドレスのリス
トは,通常2次的コード体,あるいはただ単に「セカン
ダリ」と呼ばれ,またインタープリタにより実行される
内部フォームは「プリミティブ」と呼ばれる.所望の動
作を実現する機械語からなるコード体である.スレッデ
ッドリストの各スレッドはプリミティブで終り,ついで
もう一度,上記セカンダリのスレッドに戻って他のプリ
ミティブを実行する.かくてプリミティブが実行される
度に,所定のセカンダリのアドレスを記憶することが要
求され,このプリミティブが実行され次第,これらのア
ドレスが検索されてプログラム中の適切な位置に戻され
るのである.もっとも効率の高いプログラミングアプリ
ケーションは,明らかに,多数のセカンダリをスレッド
することなく一連のプリミティブを実行するようなアプ
リケーションである.この種のプログラムの実行速度
は,アセンブリ語プログラムの場合とほぼ等しい. 所定のプログラミングアプリケーションに従来のマイ
クロプロセッサを用いて,スレッデッドインタープリテ
ィブランゲージを実施する場合には,与えられたプリミ
ティブを形成する機械語コードを実行するのに,有限数
のクロックサイクルが必要とされる.たとえば,インテ
ル社のZ80マイクロプロセッサを用いたマイクロプロセ
ッサベースのシステムに,スレッデッドインタープリテ
ィブランゲージを適用した場合には,データスタックの
最上位の内容を複写するためのプリミティブは,マイク
ロプロセッサに約30種類のタイミング状態を必要とす
る.また,べつのプリミティブを実行する場合は,Z80マ
イクロプロセッサベースのシステムは,データスタック
の最上位の内容を破棄するのに約10種類のタイミング状
態を必要とする.スレッデッドインタープリティブラン
ゲージには,プリミティブがもっとも効率の高い動作レ
ベルであるため,プリミティブレベルで実行すること
で,プログラム言語の効率の限界が定まってしまうこと
となる.このような理由により,プログラムの一部を高
速で実行し,またプリミティブをきわめて高速で実行す
ることにより,スレッデッドインタープリティブランゲ
ージの実行効率を高めるべくした代替技術の開発が望ま
れてきたのである. 〔問題点を解決しようとするための手段〕 かくて本発明は,上記のような要望に応えるべくした
スレッデッドインタープリティブプロセッサを提供する
ものである.このスレッデッドインタープリティブプロ
セッサは,制御信号を伝送するデータバスを設けて処理
速度を高めるようにするもので,後入れ先出しロータリ
ースタックを用いて,その複数個のデータレジスタにデ
ータを記憶させる.これらデータレジスタは,これを同
時にアドレスしうるものとすることにより,データが該
レジスタの1個または複数個に同時に入力し,あるいは
これから出力されうるようにする.また演算論理ユニッ
トを用いて,個々のデータレジスタに記憶されたデータ
に対する演算論理動作を行なう.この演算論理ユニット
にデータを入力するためには,第1および第2のバスを
設けて,上記ロータリースタック内のデータレジスタの
うち選択されたレジスタの出力と,これらバスを選択的
にインターフェースさせる.さらに第3のバスを設け
て,前記演算論理ユニットの出力をロータリースタック
のデータレジスタのうち,選択された1個のレジスタに
選択的に接続させる.さらに第4のバスを設けて,上記
第1および第2のバスからのデータを,前記ロータリー
スタックのデータレジスタのうち,選択された1個のレ
ジスタの入力に転送する.前記第1,第2,第3および第4
のバスの接続関係,および前記演算論理ユニットにより
行なわれる動作の種類を制御するマイクロコード命令
は,適宜の記憶手段に記憶させておく.これらマイクロ
コード命令は,プログラム命令に応答してデータバスを
介してアドレスされ,適宜の情報を含んだ選択マイクロ
コード命令を出力する.さらに適宜の制御機構を設け
て,前記第1,第2,第3および第4のバスにおけるデータ
の流れ,および前記演算論理ユニットにより行なわれる
機能を,選択されたマイクロコード命令に応答して制御
する.ついで,この選択されたマイクロコード命令に応
答して実行されるべき機能が,前記ロータリースタック
内の適宜のデータレジスタに記憶されているデータを同
時に処理することにより,前記演算論理ユニットによっ
て実行される. 本発明による装置の他の実施例においては,上記マイ
クロコードアドレスは,これを複数のグループ形式で記
憶手段に格納し,各グループのアドレスを所定のパター
ンに配列する.データバスに出力されたプログラム命令
に応答して,これら複数のグループのうち1グループを
選択して,その内容たるマイクロコードアドレスを順次
データバスに供給する.ついで,これらマイクロコード
アドレスの各々をアクセスすることにより,適宜のマイ
クロコードアドレスを前記制御メカニズムに出力させ
て,命令を実行する.命令の実行後は,次のマイクロコ
ードアドレスが第2の記憶手段からアクセスされて,デ
ータバスに供給される. 本発明による装置のさらに他の実施例においては,2次
的な後入れ先出しロータリースタックを用いて,その複
数のデータレジスタにデータを記憶させる.この2次ロ
ータリースタック内のデータレジスタも,同時にこれを
アドレスしうるようなものとする.該2次ロータリース
タックのデータレジスタのうちから選択されたレジスタ
からのデータは,第1および第2のバスを介して前記演
算論理ユニットの入力に転送され,またこの演算論理ユ
ニットの出力は,2次ロータリースタックのデータレジス
タのうち,選択された1個のレジスタに第3のバスを介
して接続する.さらに上記第1および第2のバスの一方
からのデータは,第4のバスを介して,2次ロータリース
タックのデータレジスタのうち選択された1個のレジス
タの入力に転送される.さらに適宜のスイッチ機構を設
けて,2次ロータリースタックと上記第1,第2,第3および
第4のバスとの間のスイッチングを行なうことにより,
転送バスを2次ロータリースタックとインターフェース
させる. ついでマイクロコードデータ命令をアクセスして,2次
ロータリースタック内のデータレジスタに記憶されてい
るデータの処理を行なう.さらに適宜のタイミングユニ
ットを用いて,上記スイッチ機構を定期的に動作させる
ことにより,2次ロータリースタック内のデータレジスタ
のデータが,前記第1,第2,第3および第4のバスおよび
前記演算論理ユニットにより処理されうるようにするこ
とにより,2次ロータリースタックのデータレジスタにお
けるデータの処理が,1次ロータリースタックにおけるデ
ータの処理とは独立して行なわれるようにする. [実施例] 次に図面を参照して本発明の実施例を説明する.第1
図は本発明によるスレッデッドインタープリティブラン
ゲージプロセッサ(以下単にTILプロセッサという)の
一実施例の基本構成を示すブロック図である.この本発
明によるTILプロセッサは,1サイクルあるいはわずか数
サイクル以内で,多重の選択および演算動作を実行する
能力をもつもので,メイン入出力データバス10(以下単
にI/Oデータバスという)およびアドレスバス12を有し
これらバスはI/Oサブシステム/外部メモリ14(以下単
にメモリという)とインターフェースしている.I/Oデー
タバス10にはさらに,演算論理ユニット16(以下単にAL
Uという)がインターフェースしており,このALU16に入
力するデータに対して演算論理動作を行なうことができ
る. 上記ALU16にはさらに,パラメータスタック18がイン
ターフェースしており,ハードウエアで後入れ先出し
(LIFO)スタックを構成する.I/Oデータバス10にはさら
にリターンスタック20がインターフェースしており,こ
のリターンスタック20も後入れ先出しスタックとして構
成されて,データおよびアドレスを記憶する.これらパ
ラメータスタック18およびリターンスタック20に蓄えら
れたデータは,データマニピュレータ22により処理され
る.このデータマニピュレータ22は,上記ALU16の動作
を制御するとともに,その選択位置ないしアドレスにマ
イクロコード命令を記憶する.データマニピュレータ22
はさらに,I/Oデータバス10から入力したマイクロコード
命令アドレスに応答して動作する.これらマイクロコー
ド命令は,前記スタック18,20に関連してデータをどの
ようにシフトさせるか,また前記16に入力したデータに
対して該ユニットのどのような機能を実行させるかを決
定するものである.パラメータスタック18,リターンス
タック20およびデータマニピュレータ22の動作は,すべ
てシステムクロック26により制御される.このシステム
クロック26はさらに上記メモリ14にも接続されて,その
タイムベースを与える. 第1図に示す構成は2水準制御方式を用いるもので,
その第1レベルの制御は,「プリミティブ」の実行を行
なうためのものである.ここにいう「プリミティブ」と
は,TILプロセッサにより実行される基本命令であって,
たとえばパラメータスタック18内のデータを処理した
り,該スタック内に記憶されているデータに対して演算
動作や論理動作を行なったり,パラメータスタック18内
からデータをシフトさせたり,あるいはこのスタックに
対してデータをシフトさせたりする命令を含むものであ
るが,このような動作については後で詳述する.第2レ
ベルの動作は「セカンダリ」と称するスレッデッドリス
トにより,前記プリミティブ命令を実際にスレッドす
る.すなわち「縫い合せる」こと等である.このセカン
ダリは本質的には,一群のプリミティブ命令と,これら
命令を実行するのに必要なステップとからなるサブルー
チンである. 前記I/Oデータバス10およびアドレスバス12にはさら
に,第1レベルメモリ24がインターフェースしており,
データマニピュレータ22用のマイクロコード命令をアド
レス形式で記憶するのに用いられる.これらのマイクロ
コード命令は,I/Oデータバス10からデータマニピュレー
タ22に入力されて,命令が実行される.動作時には,該
第1レベルメモリ24はアドレスバス12によりアドレスさ
れ,マイクロコード命令アドレスがI/Oデータバス10に
出力して,データマニピュレータ22の制御が行なわれ
る.上記パラメータスタック18による処理の大部分につ
いては,マイクロコード命令にコード化された諸機能が
1クロックサイクル以内に実行される.ただし後述する
ように,ALU16による掛け算動作等,若干の機能について
は,付加的なクロックサイクルが用いられる. さらにスレッデッド命令制御回路28を設けて,I/Oデー
タバス10およびアドレスバス12を介して第2レベルメモ
リ30とインターフェースさせることにより,TILプロセッ
サの第2レベルの制御が行なわれる.動作時には,アド
レスバス12を介して第2レベルメモリ30をアドレスする
ことにより,該第2レベルメモリ30に記憶された複数の
スレッデッドリストのうちのひとつが,上記スレッデッ
ド命令制御回路28により実行開始され,ついで第1レベ
ルメモリ24のためのデータがアドレス形式で,第2レベ
ルメモリ30から出力される.このアドレスはスレッデッ
ド命令制御回路28により,I/Oデータバス10からフェッチ
されて,アドレスバス12に伝送される.このようにアド
レスがアドレスバス12に供給され,第1レベルメモリ24
がアドレスされると,該アドレスに記憶されているデー
タが出力されて,データマニピュレータ22内のマイクロ
コード命令が選択され,プリミティブが実行される.第
1レベルメモリ24のためのアドレスが,アドレスバス12
に供給されてデータマニピュレータ22がアドレスされる
のと同時に,スレッデッドリストのための次の順次アド
レスが,スレッデッド命令制御回路28により第2レベル
メモリ30から選択され,先行する命令が実行された後,
アドレスバス12に供給される. かくして次のマイクロコードアドレスがI/Oデータバ
ス10に送られて,プリミティブの実行完了後,データマ
ニピュレータ22がアドレスされ,スレッデッドリスト中
の順次命令を実行することが可能となる.従ってスレッ
デッド命令制御回路28は,所望のスレッデッドリストを
ステップして,第1レベルメモリ24からのマイクロコー
ドアドレスを,順次I/Oデータバス10に伝送することと
なる.これらマイクロコードアドレスはI/Oデータバス1
0に供給されると,ただちにデータマニピュレータ22に
よりフェッチされ,該アドレスに応答する記憶場所に記
憶されている命令が実行される. 所望のスレッデッドリストが実行された後,別のスレ
ッデッドリストがメモリから選択されて実行される.メ
モリ14は多数のスレッデッドリストを容易に実行しうる
ようにすべく構成してあり,このために該メモリ14はI/
Oデータバス10およびアドレスバス12の両者と接続され
て,第2レベルメモリ30を補完する.かくして,本発明
によるTILプロセッサを一枚のチップ上で製作する際に
発生する,メモリの容量上の制約を解消することが可能
となる.メモリ内からデータを検索する記憶場所を決定
するためには,アドレスバス12にアドレスを供給するだ
けでよく,このようなデータの検索はスレッデッド命令
制御回路28による制御のもとで行なわれる. 本発明によるTILプロセッサを用いてプログラムを実
行するに当っては,プリミティブの実行に先立って多数
のセカンダリを実行しなければならない場合がある.こ
こにいうプリミティブとは最低レベルで実行される命令
のことであり,これが実行された後には次の高いレベル
に戻り,この次のレベルがすなわちセカンダリである.
マイクロコード命令のリストのスレッド後,次のスレッ
デッドリストが選択される.これらのリストが実行され
る順序は第3レベル動作の実行により定まる.なお上記
各レベルについては「Threaded Intepretive Language
s」(R.G.レリジャー,1981)にその詳細な説明がある. TILを現在行なわれているようにソフトウエア形式で
実現する場合は,プリミティブの実行には有限数のステ
ップすなわちクロックサイクルが必要となる.たとえ
ば,パラメータスタックから1ワードのデータを抽出し
て,該スタック内の残りのデータワードを1記憶場所分
だけシフトアップさせるためには,システムクロック26
のクロックサイクルにして約10ないし15サイクルが必要
となる場合がありうる.システムクロック26がこのよう
なタスクを行なっている期間中は,システムのその他の
個所は待機状態を保持せざるをえない.故に本発明にお
いては,演算論理動作を行なう回路をALU16のかたちで
実現することに加えて,パラメータスタック18をハード
ウエア形式で遂行することとするものであり,単純な処
理であろうと複雑な処理であろうと,システムクロック
26の1サイクル期間内で,効果的に行なわれるようにし
たものである.このようにしたため,きわめて基本的な
プリミティブを行なう場合でも,特定のプリミティブの
実行速度は約10ないし15倍向上し,より複雑なプリミテ
ィブに対しては,実行速度の向上率は約40から50倍に近
づくこととなる.ソフトウエア化したTILのプリミティ
ブ実行速度は,機械語による実行速度とほぼ同等ないし
はこれに近いため,本発明はプリミティブの実行速度
を,現在もっとも効率の高いプログラミング手法以上の
レベルにまで,向上させるものである. [第1レベルのプログラム実行=プリミティブ] 第1図について説明したTILプロセッサのより全体的
な構成を第2図に示す.同図において,ALU16はバス34を
介して一方向トランスファゲート32とインターフェース
しており,このゲート32はデータフローがALU16から外
部に向うような方向としてある.このALU16は16ビット
ワイドのALUで,このようなALUは4ビットALUを4個カ
スケード接続して構成することができる.該ALU16は2
入力と1出力を有し,入力するデータに対してさまざな
な演算論理動作を行なう.このようなALU16の代表的な
機能については,「TTL DaTa Book」(第2版,第7−2
73頁,第1表および第2表,テキサスインスツルメンツ
社,1976)にその記載がある. 一方向トランスファゲート32の出力はインターフェー
スバス36に接続され,このインターフェースバス36は双
方向トランスファゲート40を介してI/Oデータバス10と
コミュニケートしている.これらトランスファゲート3
2,40は制御入力(図面中CTLで示してある.以下同)を
有し,この制御入力によりデータフローの経路が決定さ
れる.ALU16にはさらに4本の制御ライン42を介して制御
信号が入力し,この制御信号により,該ALU16の演算論
理機能が選定される.なお後述するように,これらの制
御信号は前記データマニピュレータ22におけるマイクロ
コード命令から,得られるものである. 本発明においてはさらに,後入れ先出しロータリース
タック44を設けて,これに16ビットのデータワードを記
憶させる.このロータリースタック44は各16ビットワイ
ドのデータレジスタ8個からなるもので,これらデータ
レジスタを並列にアドレスすることにより,データがこ
れらレジスタのすべてに同時に入力し,あるいは該レジ
スタのすべてから同時に出力することができる.これら
レジスタのうち,どのレジスタからデータを出力し,ま
たどのレジスタにデータを入力するかは,制御信号によ
り制御する. 上記ロータリースタック44の一方の出力およびALU16
の一方の入力には,第1の出力データバス46がインター
フェースしており,またロータリースタック44の他方の
出力,およびALU16の他方の入力には第2の出力データ
バス48がインターフェースしており,ロータリースタッ
ク44の一方の入力には前記インターフェースバス36がイ
ンターフェースしている.さらにロータリースタック44
の他方の入力には,入力データバス50がインターフェー
スするとともに,第2の出力データバス48と入力データ
バス50とは,一方向トランスファゲート52を介して互い
にインターフェースすることにより,制御信号に応答し
てロータリースタック44の出力からその入力にデータが
選択的に戻されるようにする.ALU16の第1の入力と第2
の出力データバス48との間には一方向トランスファゲー
ト54が設けてあり,ALU16の第2の入力と第1の出力デー
タバス46との間には一方向トランスファゲート56が設け
てあり,これにより制御信号に応答してALU16へのデー
タ転送が選択的に制御される.さらにインターフェース
バス36と第1の出力データバス46との間には,一方向ト
ランスファゲート38が接続され,I/Oデータバス10からの
データが双方向トランスファゲート40を経由して伝送さ
れて,ALU16の入力に供給される.また第2の出力データ
バス48とアドレスバス12との間には,双方向トランスフ
ァゲート57が接続されて,これらの間のデータフローを
制御する. 上記トランスファゲート32,38,40,52,56および57は,
前記ロータリースタック44,ALU16およびI/Oデータバス1
0に接続された各バスのデータフローを制御するもので
ある.また後述するごとく,上記制御信号はいずれも制
御ワードの1ビットで構成され,生成される制御ワード
によりデータフローの方向が変更される.すなわち,た
とえばロータリースタック44からデータを取り出してこ
れをALU16で処理する場合は,一方向トランスファゲー
ト52が非動作状態となり,トランスファゲート54,56が
動作状態となって,ロータリースタック44の出力をALU1
6の両入力と導通させる.ロータリースタック44内の適
切なレジスタは,制御ワードに応じて適切な出力データ
バス46,48とインターフェースしている.ALU16はさらに
制御ライン42を介して情報を受け取って,そのデータ入
力に対して算術動作を行なうのか,あるいは論理動作を
行なうのかを決定する.このデータは,ALU16から一方向
トランスファゲート32に出力され,該ゲートが動作状態
であれば,インターフェースバス36に至る.データをロ
ータリースタック44に戻す場合は,トランスファゲート
38,40が非動作状態とされ,ロータリースタック44には
適宜の制御信号が供給されて,ロータリースタック44内
のどのレジスタに当該データを入力するかを決定する.
すべての制御信号を含む制御ワードが生成され次第,全
動作がシステムクロック26の1サイクル以内に行なわれ
る. パラメータスタック18でプリミティブを実行するため
には,制御信号を生成して各種トランスファゲートやス
タック,およびALU16を制御する必要があり,この制御
信号を生成するためには,第1レベルメモリ24をアドレ
スしなければならない.しかしてこの第1レベルメモリ
24は,その選択アドレス位置に複数の制御ワードを記憶
する機能をもったマイクロコード読出し専用メモリ(以
下単にROMという)60からなっている.またアドレスデ
コーダ62を設けてインターフェースバス64を介して命令
レジスタ58の出力を受け取り,後述のように,受け取っ
たアドレス入力をデコードして,当該アドレスがプリミ
ティブのアドレスであるか,それとも制御機能のアドレ
スであるかを判定する.アドレスデコーダ62の出力はイ
ンターフェースバス66を介してマイクロコードROM60の
アドレスポートに入力される.ついでマイクロコードRO
M60にアドレスされた制御ワードは,制御ラッチ68に出
力されてその出力の制御ワードをラッチする.この制御
ラッチ68の出力の制御ワードは,各種のレジスタや制御
機能を動作させる複数の制御ビットを生成するもので,
たとえば制御ワード中の4個の順次ビットがALU16の制
御ライン42に割り当てられて,その算術機能あるいは論
理機能を行なわせる.従って制御ワードとそのビットの
論理状態により,全バスにおけるデータの流れおよび選
択データに対してALU16が行なう動作が決定される. 上記マイクロコードROM60は,制御ワードを出力して
プリミティブを実行するものであるが,「機能的な」制
御ワードを出力してTILプロセッサの他の機能を制御す
るものでもある.このため,マイクロコードROM60はプ
リミティブを実行し,かつTILプロセッサの全動作を制
御する制御ワードを記憶しており,このようなマイクロ
コードROM60におけるプリミティブ制御ワードもしくは
機能的制御ワードを適宜アドレスすべく,前記アドレス
デコーダ62はインターフェースバス64からアドレスを受
け取って,そのアドレスがプリミティブ制御ワードに対
応するマイクロコードアドレスであるか,あるいはメモ
リ24またはメモリ30のアドレス位置に対応するアドレス
であるかを判定する.たとえば,マイクロコードROM60
におけるアドレス位置0ないし64をプリミティブ制御ワ
ードに割り当て,これらアドレス位置のうちのいずれか
をインターフェースバス64から受け取ったときに、アド
レスデコーダ62からインターフェースバス66を介して,
そのアドレスをマイクロコードROM60に伝送して,プリ
ミティブ制御ワードを出力する.また64を越えるアドレ
スについては,アドレスデコーダ62は与えられたグルー
プのアドレスに対して,マイクロコードROM60内の特定
のアドレス位置をアドレスする.たとえばアドレスデコ
ーダ62にアドレス65ないし512が入力した場合,アドレ
スデコーダ62はマイクロコードROM60内の一つのアドレ
ス位置をアドレスして,機能的制御ワードを出力する.
同様にして513以上のアドレスにより,アドレスデコー
ダ62は第2の機能的制御ワードをアドレスする.かくて
I/Oデータバス10に供給され命令レジスタ58を介してク
ロック送りされたアドレスにより,プリミティブ制御ワ
ードもしくは機能的制御ワードのアドレスが行なわれ
る.この機能的制御ワードのはたらきについては後述す
る. 上記のようにロータリースタック44は後入れ先出しス
タックで,そのデータレジスタのいずれかひとつの入力
に,インターフェースバス36または入力データバス50か
らデータを受け取り,またそれらデータレジスタのいず
れかから出力バス46および48にデータを出力するもので
ある.ロータリースタック44にデータが格納される場合
には,これを「プッシュ」動作と称し,またロータリー
スタック44からデータが取り出される場合には,これを
「ポップ」動作と称する.かくてロータリースタック44
にデータがプッシュされる度毎に,先行するデータが該
スタック内にプッシュダウンされる.本実施例において
は,このロータリースタック44は8データレジスタのみ
の深さとし,従ってもっとも優先度の低いデータレジス
タのデータは,他の個所に格納するか,あるいは破棄す
るかする必要がある.こうしたデータを維持すべく,本
発明においては,オーバーフロースタック76を設けて,
このオーバーフロースタック76を後入れ先出しスタック
として構成することにより,データを受け取ってそのデ
ータを該スタックにプッシュするか,あるいはスタック
の最上位のデータをポップアウトする.このオーバーフ
ロースタック76の入力は入力データバス50に接続され,
その出力はインターフェースバス36に接続されている. ロータリースタック44にデータが入力した場合には,
インターフェースバス36はロータリースタック44内で優
先順位のもっとも高いレジスタに接続され,また入力デ
ータバス50は一方向トランスファゲート52経由で出力デ
ータバス48に,またオーバーフロースタック76の入力に
接続される. ついで出力データバス48が,ロータリースタック44内
で優先順位のもっとも低いレジスタに接続されて,オー
バーフロースタック76の入力にデータを出力する.以上
のすべての動作,すなわちプリミティブの実行は制御ラ
ッチ68によるマイクロコード命令出力によって,すべて
1クロックサイクル以内に行なわれる. [第2レベルの動作=スレッデッドリスト] 第2図において,前記I/Oデータバス10にはさらに,
双方向トランスファゲート82を介して読出し専用・等速
呼出し組合せメモリ(以下単にROM/RAMという)80がイ
ンターフェースされている.このROM/RAM80のROM部はデ
ータを固定的に記憶し,またRAM部はI/Oデータバス10を
介してデータをアクセスして,該RAM部の選択アドレス
位置にそれを「書き込む」とともに,当該選択アドレス
位置からデータを「読み出し」てI/Oデータバス10に戻
す機能をもった,プログラマブルまメモリ部である.従
ってこのROM/RAM80のRAM部は外部からプログラミングを
行なうことができるという点で,融通性に富むものであ
るといえる. 上記ROM/RAM80はアドレスバス12に接続され,このア
ドレスバス12を介してアドレスされる.ROM/RAM80の選択
位置と対応するアドレスバス12のアドレスにより,ROM/R
AM80内に記憶されているデータが,双方向トランスファ
ゲート82に出力される.ただしこのデータは,前記制御
ラッチ68によって適切な機能的制御ワードが出力されな
いかぎり,I/Oデータバス10には出力されない.すでに述
べたごとく,この機能的制御ワードはI/Oデータバス10
に出力され,命令レジスタ58を介してクロック送りされ
た先行アドレスに応答して,生成されるものである.ま
たROM/RAM80によりI/Oデータバス10に出力されるデータ
のほかに,メモリ14からもI/Oデータバス10にデータを
送ることができる.これを容易に行なうようにすべく,I
/Oデータバス10とメモリ14との間に双方向トランスファ
ゲート84を設け,制御ラッチ68から受け取った適当な制
御信号により,この双方向トランスファゲート84を制御
する.かくて上記トランスファゲート82,84はメモリ14,
80のいずれかからのみのデータを,任意の時点でI/Oデ
ータバス10とインターフェースさせることが可能とな
る. アドレスをI/Oデータバス10からアドレスバス12に転
送すべく命令ポインタ86を設け,その入力インターフェ
ースバス88を介してI/Oデータバス10に接続し,出力を
インターフェースバス90を介してアドレスバス12と接続
させる.この命令ポインタ86はI/Oデータバス10からア
ドレスバス12へのアドレスによりクロックするととも
に,インクリメント制御ライン(INC)98を介してこの
アドレスを1ずつ増加させる機能をもったデータレジス
タである.このインクリメント(歩進)機能については
後述する. ROM/RAM80に記憶されたデータは,プリミティブ制御
ワード用のアドレスと機能的制御ワード用のアドレスと
の組合せであり,これらデータは「リスト」に配列され
ている.これらリストは,各リストがマイクロコードRO
M60により出力さるべきプリミティブ制御ワード用,お
よび機能的制御ワード用のアドレスのグループからなる
という点で,サブルーチンに準ずるものである.いま,
あるリストの初期アドレスがアドレスバス12に供給され
て双方向トランスファゲート82が動作すると,ROM/RAM80
のアドレスされた記憶場所に記憶されていたデータがI/
Oデータバス10に出力されて,命令レジスタ58にロード
される.次のクロックサイクルで,このデータは命令レ
ジスタ58を介してアドレスデコーダ62にクロック送りさ
れ,このアドレスデコーダ62は,これがプリミティブ制
御ワード用のアドレスであるか,あるいは機能的制御ワ
ード用のアドレスであるか判定して,マイクロコードRO
M60が適宜の制御ワードを出力する.このアドレスが命
令レジスタ58を介してクロック送りされて制御ワードを
出力させた後,命令ポインタ86により別のアドレスがア
ドレスバス12に同時に入力されて,ROM/RAM80における所
定のスレッデッドリスト中の次の順番のデータがアドレ
スされる. 後述のように,命令ポインタ86には先のクロックサイ
クルにおけるアドレスがロードされており,このアドレ
スがクロック送りされるか,あるいは当該アドレスを該
ポインタに記憶してインクリメント(歩進)させる. スレッデッドリストの実行を開始させるためには,ス
レッデッドリストの初期アドレスをROM/RAM80から,あ
るいはメモリ14から,I/Oデータバス10に伝送して命令レ
ジスタ58にロードする.ついでこのアドレスは,命令ポ
インタ86を介してアドレスバス12に直接クロック送りさ
れ,該ポインタ内でインクリメントされる.このアドレ
スを命令ポインタ86にロードするか,あるいは単にイン
クリメントさせてこれから先行するアドレスを出力させ
るかを決定するため,デコーダ92を設けてこれをI/Oデ
ータバス10とインターフェースさせる.このデコーダ92
は,I/Oデータバス10に出力されたアドレスがプリミティ
ブ命令に対応するものか,あるいはスレッデッドリスト
の実行を開始させるのに要する命令等よりレベルの高い
命令に対応するものかを判定するものである.さきに述
べたような,プリミティブ用のマイクロコードROM60の
アドレス位置が0ないし64である場合についていえば,
デコーダ92はアドレス内のより高次のビットの存在を検
出して,I/Oデータバス10上のデータが64より上である
か,あるいは以下であるかを判断する.64以下であると
判断されたときは,命令ポインタ86をインクリメントさ
せ,64より上であると判断されたときは,命令ポインタ8
6にI/Oデータバス10のアドレスをロードして,次のクロ
ックサイクルでこのアドレスをクロックさせる. [第3レベルの動作−メインプログラム] ROM/RAM80に記憶されているリストの「縫い合せ(ス
レッド トギャザ)」は,メインプログラムすなわち第
3レベルの動作により行なわれる.このメインプログラ
ムは,本質的にはROM/RAM80またはメモリ14内の特定の
記憶場所に記憶されたアドレス群からなるもので,この
アドレスリストの各アドレスは,前述のスレッデッドリ
ストのうち,特定のひとつの初期アドレスを示すアドレ
スとすることができる.メインプログラムが進行するに
ともない,第2レベルの動作のスレッデッドリストが実
行される.ある特定のスレッデッドリストの実行が完了
した後,メインプログラムの次のステップをI/Oデータ
バス10に入力しなければならないが,これを行なうため
にはまず,リターンスタック20にアドレスを格納して1
だけインクリメントさせる.このアドレスをインクリメ
ントさせるためには,リターンスタック20とI/Oデータ
バス10との間にインクリメント用レジスタ94を設け,制
御バス96を介してデコーダ92によりこのインクリメント
用レジスタ94を制御する.該インクリメント用レジスタ
94は,制御ラッチ68により出力された制御ワードによっ
て制御され,I/Oデータバス10からリターンスタック20に
データを転送するとともに,インクリメント用ラッチと
してはたらくことによって,データがあるクロックサイ
クルでロードされ,次のクロックサイクルでクロック送
りされて,1だけインクリメントされる. 上記デコーダ92はメインプログラムにおけるスレッデ
ッドリスト,あるいはステップの初期アドレスを表すア
ドレスを互いに区別するもので,I/Oデータバス10上のデ
ータがスレッデッドリストではなく,メインプログラム
に割り当てられたアドレスであると該デコーダ92が判定
した場合には,インクリメント用レジスタ94が1だけイ
ンクリメントされ,リターンスタック20を介してクロッ
ク送りされる.スレッデッドリストの実行が完了した
後,リターンスタック20がポップアップしてインクリメ
ントされたアドレスが,トランスファゲート98を介して
I/Oデータバス10に出力される.このアドレスはメイン
プログラムの次の順次アドレスとなって,命令ポインタ
86を介してアドレスバス12にクロック送りされ,ROM/RAM
80もしくはメモリ14をアドレスする. [ロータリーデータレジスタスタック] 第2図について説明したロータリーデータレジスタス
タック44の構成を,第3図に拡大して示す.図示のごと
く,このロータリーデータレジスタスタック44は,8個の
16ビットワイドのデータレジスタ1ないし8からなる.
これらデータレジスタ1ないし8の入力には,入力イン
ターフェースバス104を介してレジスタ/バス選択回路1
02がインターフェースし,その出力には出力インターフ
ェースバス108を介してレジスタ/バス選択回路106がイ
ンターフェースしている.レジスタ/バス選択回路102
は,前記インターフェースバス36および入力データバス
50とインターフェースして,データレジスタ1ないし8
のうちから選択されたひとつにその保持情報を転送する
ものであり,またレジスタ/バス選択回路106は出力デ
ータバス46,48とインターフェースして,データレジス
タ1ないし8のうちから選択されたひとつから,データ
を転送するものである.なおバス36,50は,これらを同
時に同一のデータレジスタに結合したり,あるいは同時
に2個の別々のデータレジスタに結合したりすることが
可能であり,また出力データバス46,48も,同一のデー
タレジスタからデータを受け取ることも,あるいは同時
に別々の2個のデータレジスタからデータを受け取るこ
とも可能である. 上記レジスタ/バス選択回路102,106はいずれもスタ
ックポインタ110に接続され,このスタックポインタ110
により,前記データレジスタ1ないし8のうち,どれが
ロータリーデータレジスタスタック44内でもっとも優先
順位が高いかを決定する.この場合,該スタックに対し
てデータを出し入れする度に,レジスタ1を最優先スタ
ックとして指定してデータをシフトするのでなく,単に
スタックポインタ110を適宜のレジスタにインクリメン
トさせるようにする.すなわち,たとえばレジスタ4が
最優先レジスタとして指定され,第2優先順位のレジス
タからデータを出力させる場合は,レジスタ/バス選択
回路106によりレジスタ3を出力レジスタとして選択し
て,そのデータを出力データバス46,48のうち適宜のも
ののみを入力させる.ただし,ロータリーデータレジス
タスタック44にデータがプッシュされたときには,スタ
ックポインタ110がインクリメントされ,レジスタ/バ
ス選択回路102による選択により,レジスタ5にデータ
が入力される.このデータがロータリーデータレジスタ
スタック44にプッシュされると,優先度のもっとも低い
レジスタ,すなわちこの場合にはレジスタ5のデータ
を,スタックポインタ110のインクリメント動作に先立
ってオーバーフロースタック76内に格納しなければなら
ない. ロータリーデータレジスタスタック44内の優先度のも
っとも低いレジスタから,オーバーフロースタック76へ
のデータ伝送を行なうためには,レジスタ/バス選択回
路106をレジスタ5の出力を,出力データバス46と結合
させてトランスファゲート52を動作させることにより,
出力データバス46を入力データバス50と接続させる.後
述のごとく,一回の動作すなわち1クロックサイクル期
間中に,出力データがオーバーフロースタック76にクロ
ック送りされ,スタックポインタ110はインクリメント
され,インターフェースバス36からのデータが,現時点
においてロータリーデータレジスタスタック44内でもっ
とも優先度の高いレジスタ5に入力される.従って,ロ
ータリーデータレジスタスタック44とオーバーフロース
タック76とで,上位8個のデータレジスタが同時にアド
レス可能の,比較的深いスタックが構成されることとな
る. 次に第3図につき説明したロータリーデータレジスタ
スタック44のうちのデータレジスタ1の概略の構成を第
4図に示す.この第4図において,インターフェースバ
ス36,入力データバス50および出力データバス46,48はい
ずれも16ビットワイドのバスであり,図示の関係上,そ
の接続部のみを示してある.レジスタ1は16個のD型フ
リップフロップからなるものであるが,図面ではそのう
ち最初の2個,すなわちビット0およびビット1に対応
するフリップフロップと,最初のフリップフロップ,す
なわちビット15に対応するフリップフロップのみを示し
てある.これら図示のフリップフロップのうち,ビット
0はD型フリップフロップ112に対応し,ビット1はD
型フリップフロップ114に対応し,ビット15はD型フリ
ップフロップ116に対応するものであり,フリップフロ
ップ114と116との間の点線はレジスタ1に含まれるその
他のフリップフロップを表す.フリップフロップ112の
D入力にはAND/OR反転ゲート118の出力が接続され,フ
リップフロップ114のD入力にはAND/OR反転ゲート120の
出力が接続され,フリップフロップ116のD入力にはAND
/OR反転ゲート122の出力が接続されている.ビット2な
いし14に対応するフリップフロップ(図示せず)にも,
それぞれ対応するAND/OR反転ゲートが接続されているこ
とはいうまでもない. AND/OR反転ゲート118を構成するANDゲートの一方の1
入力は,入力データバス50のビット1に接続され,他方
のANDゲートに1入力は,インターフェースバス36のビ
ット1に接続されている.同様にして,AND/OR反転ゲー
ト120を構成するANDゲートの一方の1入力は,入力デー
タバス50のビット2に接続され,他方のANDゲートの1
入力はインターフェースバス36のビット2に接続されて
いる.さらに同様に,AND/OR反転ゲート122における内部
ANDゲートの一方の1入力は,入力データバス50のビッ
ト15に接続され,他方のANDゲートに1入力は,インタ
ーフェースバス36のビット15に接続されている.これら
反転ゲート118〜122の出力にインターフェースバス36又
は入力データバス50のいずれかからの各ビットが現れる
ためには,各反転ゲート内の内部ANDゲートの対応するA
ND入力に,イネーブル信号を入力してやることが必要で
あるが,これらのイネーブル信号は3−8デコーダ124
および3−8デコーダ126により供給される.一方のデ
コーダ124は,上記ゲート118〜122がインターフェース
バス36からフリップフロップ112〜116のD入力にデータ
を転送するようにイネーブルするものであり,他方のデ
コーダ126は,ゲート118〜122が入力データバス50から
フリップフロップ112〜116のD入力にデータを転送する
ようにイネーブルするものである.これらデコーダ124,
126の各々は8出力で,これら出力の各々は前記データ
レジスタ1ないし8の同様なゲートに,それぞれ接続さ
れている. 上記デコーダ124の入力には3ビット加算回路128の出
力が接続され,上記デコーダ126の入力には3ビット加
算回路130の出力が接続されている.これら加算回路12
8,130の入力は,3ビットアップダウンカウンタ132の出力
に接続されている.このアップダウンカウンタ132は制
御ラッチ68からの制御ワード出力により制御されて,前
記データレジスタ1ないし8のうち,もっとも優先順位
の高いものを決定する.加算回路128,130はマイクロコ
ード命令に応答して動作し,上記アップダウンカウンタ
132の3ビット出力を選択的にシフトさせることによ
り,スタック内の最上位のレジスタとは優先度の異なる
レジスタを選択する.加算回路128,130から出力された
3ビット選御ワードは,それぞれデコーダ124,126によ
りデコーダされ,これにより適宜のデータレジスタを選
択する.この場合,どのようなプリミティブを実行する
場合にもバス36,50を使用する必要がないため,デコー
ダ124,126には制御ラッチ68の出力に接続されたイネー
ブル入力を設けてある.このイネーブル入力はこれを制
御することにより,インターフェースバス36,50の一方
もしくは双方を,ロータリーデータレジスタスタック44
内のデータレジスタの入力から効果的に分離することが
できる. 上記フリップフロップ112のQ出力は,NANDゲート34の
1入力およびNANDゲート136の1入力に接続され,NANDゲ
ート134の出力は出力データバス46のビット0に接続さ
れ,またNANDゲート136の出力は出力バス48のビット0
に接続されている.さらに上記フリップフロップ114の
Q出力はNANDゲート138の1入力およびNANDゲート140の
1入力に接続され,NANDゲート138の出力は出力データバ
ス46のビット1に接続され,またNANDゲート140の出力
は出力バス48のビット1に接続されている.またさら
に,上記フリップフロップ116のQ出力は,NANDゲート14
2の1入力およびNANDゲート144の1入力に接続され,NAN
Dゲート142の出力は出力データバス46のビット15に接続
され,またNANDゲート144の出力は出力バス48のビット1
5に接続されている. さらに,NANDゲート134,138,142の他の入力には3−8
デコーダ146のビット0が接続され,またNANDゲート13
6,140,144の他の入力には3−8デコーダ148のビット0
が接続されている.3−8デコーダ146は出力データバス4
6を選択する機能をもつもので,3−8デコーダ148は出力
バス48を選択する機能をもつものである.上記アップダ
ウンカウンタ132の出力には3ビット加算回路150の入力
が接続され,この加算回路150の出力は前記デコーダ146
の入力に接続されている.アップダウンカウンタ132の
出力にはさらに,3ビット加算回路152の入力が接続さ
れ,この加算回路152の出力は前記デコーダ148の入力に
接続されている.これら加算回路150,152およびこれら
回路と組み合せて用いられる前記デコーダ146,148は,
前記加算回路128,130およびデコーダ124,126とそれぞれ
同等の動作を行なうものである. 動作時には,前記アップダウンカウンタ132は,その
3ビット出力が前記データレジスタ1ないし8のうち,
もっとも優先順位の高いレジスタを表す状態にシフトさ
れている.この場合,かりにインターフェースバス36か
ら優先順位第2位のレジスタにデータが入力されるもの
とすると,まずデコーダ124がイネーブルされて加算回
路128に命令が与えられて,アップダウンカウンタ132の
出力が1だけシフトされ,この結果レジスタ選択回路の
内容が1だけシフトされる.命令を実行するに当って,
インターフェースバス36からのデータと同時に入力デー
タバス50からデータを入力する必要のある場合は,デコ
ーダ126もイネーブルされて適宜の信号が加算回路130に
入力され,ロータリーデータレジスタスタック44内の最
上位の内容に関して所望のデータレジスタが選択され
る.デコーダ146,148および加算回路150,152による所望
の出力バスの選択も,上記と同様にして行なわれる. 次に第5図に前記オーバーフロースタック76の構成を
示す.このオーバーフロースタック76は,記憶容量256K
のRAM154を記憶手段として用いる.このRAM154は読出し
および書込みの両方の機能をもつもので,8ビットアドレ
ス入力を介してアドレスすることにより,16ビットのデ
ータポートからデータの読出しまたは書込みを行なうこ
とができる.このRAM154のアドレス入力A0〜A7には,8ビ
ットのアップダウンカウンタ156の出力が接続され,こ
のアップダウンカウンタ156の入力は,制御ラッチ68の
出力に現われるマイクロコード命令によって制御され
る.該アップダウンカウンタ156は,前記アップダウン
カウンタ132と同期して動作することにより,ロータリ
ーデータレジスタスタック44にデータをロードすること
によって,該スタック内のもっとも優先順位の低いデー
タがRAM154にロードされるように,前記スタックポイン
タ110およびロータリーデータレジスタスタック44を制
御する.RAM154にはさらに,読出し書込みイネーブル回
路158が接続され,該RAM154の出力ポートからデータの
読出しを行なうか,あるいはRAM154に対するデータ書込
みを行なうかを決定する.この読出し書込みイネーブル
回路158は,前記制御ラッチ68から出力されるマイクロ
コード命令により制御される. 前記入力データバス50のビット0には,双方向バスト
ランシーバ160の一方のポートが接続され,その他方の
ポートはRAM154のD0入力に接続されている.また,前記
インターフェースバス36のビット0には,双方向バスト
ランシーバ162の一方のポートが接続され,その他方の
ポートはRAM154の上記D0入力に接続されている.さらに
入力データバス50のビット15には,双方向バストランシ
ーバ164の一方のポートが接続され,その他方のポート
はRAM154のD15入力に接続されている.インターフェー
スバス36のビット15には,双方向バストランシーバ166
の一方のポートが接続され,その他方のポートはRAM154
のD15入力に接続されている.これらバストランシーバ1
60ないし166は双方向ゲートで,それぞれ3状態出力を
もち,入力データバス50の各ビットとインターフェース
バス36の各ビットのいずれかを選択するとともに,RAM15
4に対するデータの流れ方向を選択する.トランシーバ1
60,162はいずれもRAM154のデータ入力D0と関連し,同様
にトランシーバ164,166はいずれもRAM154のデータ入力D
15と関連している.上記同様のトランシーバが入力デー
タバス50とインターフェースバス36との間に接続され,R
AM154のデータ入力D1ないし14とそれぞれ関連している
ことはいうまでもない. バス/方向選択回路170はその出力に4本の制御ライ
ンが接続され,トランシーバ160〜166にそれぞれ導かれ
ている.これら4本の制御ラインのうち2本の制御ライ
ン172は,トランシーバ160,164を制御するもので,これ
によりRAM154が入力データバス50と接続される.残りの
2本の制御ライン174はトランシーバ162,166を制御する
もので,これによりRAM154のデータ入力がインターフェ
ースバス36と接続される.制御ライン172,174の「1」
「0」状態に応じて,データはインターフェースバス36
および入力データバス50のいずれかからRAM154へ,また
RAM154からバス36,50のいずれかへと流れ,あるいはデ
ータの流れが禁止される. [システム動作] 動作時には,システムの動作はまず第3レベル,すな
わちメインプログラムで行なわれ,ついでプリミティブ
レベルにスレッドダウンされる. これは通常,メインプログラムの1ステップをアドレ
スすることによって行なわれ,これにより,システムの
動作がROM/RAM80に記憶されたスレッデッドリストのひ
とつに伝えられる.このスレッデッドリストが実行され
た後,プログラムはメインプログラムの次のステップに
戻される.上記スレッデッドリストを実行するに当って
は,該リスト内の各アドレスがI/Oデータバス10に供給
されて,当該アドレスと対応する所定のプリミティブが
順次実行される.スレッデッドリストの終りでは,リタ
ーン命令によりすべてのトランスファゲートが動作状態
となって,システムがメインプログラムに戻される.以
下の記載では3種のレベルの動作についてのみ説明する
が,多数の「スレッド」をメインプログラムとプリミテ
ィブレベルとの間に用いることも可能である. 好ましい実施例においては,プリミティブは前記制御
ラッチ68により出力される制御ワードによって設定され
る.前述のごとく,この制御ワードはTILプロセッサの
各種のバスにデータの流れを形成するもので,所望のプ
リミティブに対するアドレスを適宜選択することによ
り,該TILプロセッサは所定数のクロックサイクル期間
内にプリミティブを実行する.ほとんどの場合,プリミ
ティブはすべて1クロックサイクル内に実行される.た
だし,ALU16による掛け算動作をともなうプリミティブな
どのように,その実行に2ないし4クロックサイクルを
かけて,十分な時間を確保する必要のある動作もある.
所望の実行動作がプリミティブとして設定されていない
場合は,多数のプリミティブを第2レベルの動作におけ
るスレッデッドリストとして実行することにより,当該
動作を行なう必要がある.そのためには多くのクロック
サイクルが必要であり,従ってこの場合は,可能な限り
多数のプリミティブをあらかじめ作成して,TILプロセッ
サの実行速度を高くするようにするのが望ましい. 本実施例に使用するプリミティブ命令群を第1表に示
す.この第1表において,「p」は前記ロータリースタ
ック44を構成するデータレジスタ1ないし8のうち,い
ずれかのレジスタに格納されたアーギュメントを意味す
る.また各アーギュメントの優先度は「p1,p2,p3,...」
で表され,このうち例えば「p1」がデータレジスタ1な
いし8のうち,もっとも優先順位の高いレジスタに格納
されたアーギュメントを意味するものとする.さらに符
号「f」はフラッグで,このフラッグは本質的には,レ
リバント(連関)ビットをただ一個だけ含むデータワー
ドである.なお,以上の用語については,たとえば「St
arting Forth」(レオ・ブロディ,1981)にその説明が
ある. 第6図に,前記第3レベル動作たるメインプログラム
の3ステップを示すプログラムのフローチャートを,第
2レベル動作のための関連スレッデッドリスト,および
これらスレッデッドリストのひとつに対するプリミティ
ブレベルの動作とともに示す.この第3レベルにおける
メインプログラムの図示の部分は,プログラムステップ
180「MASK ADD」と,プログラムステップ182「1−」
と,プログラムステップ183「MASK ADD」とからなるも
のである.これらプログラムステップ180〜183は,前記
ROM/RAM80またはメモリ14におけるアドレス位置を表す
ものである.メインプログラムのこれら第3レベルのア
ドレス位置それぞれには,実行すべき特定の機能に対す
る第2レベルのアドレスが記憶されている.本例では,
ステップ180〜183のアドレスはすべて,第2レベル動作
におけるスレッデッドリストの最初の第2レベルアドレ
スに対応するものである.MASK ADDステップ180はこれと
関連するスレッデッドリスト184に流れ,「1−」ステ
ップ182はこれと関連するスレッデッドリスト185に流
れ,さらにMASK ADDステップ183はこれと関連するスレ
ッデッドリスト187に流れる. メインプログラムでは,MASK ADDプログラムステップ1
80,183は上記スレッデッドリスト184,187によりそれぞ
れ行なわれる機能を表すものである.実際には,これら
スレッデッドリスト184,187は同等の機能ないしはサブ
ルーチンであるため,同一のメモリを占有する.従って
プログラムステップ180,183に含まれる第2レベルのア
ドレス位置は,同一のデータ,すなわちMASK ADDスレッ
デッドリストの最初のアドレスをその内容とするもので
ある.このMASK ADDプログラムステップにより得られる
機能は,与えられたワードの一部をマスクして,このマ
スクされたワードをほかのアーギュメントに加算して,
オーナメント(修飾)ワードを用いてその結果のORを取
る. これは論理1状態で8ビットとなり,論理0状態で8
ビットとなるアーギュメントAを生成することにより達
成される.アーギュメントAおよび他の任意のアーギュ
メント,たとえばアーギュメントBに対して論理AND機
能が行なわれると,該アーギュメントBの最初の半分の
みが出力されて,マスクドワードとなる.ついでこの結
果がアーギュメントCに加算されて,その結果が論理OR
演算によりオーナメントワードと組み合せられる.この
オーナメントは,あとで認識用に用いるために,マスク
ドビットのうちの任意の1ビットにおける論理1とする
ことができる. アーギュメントにはアーギュメントA,アーギュメント
B,アーギュメントC,アーギュメントDの四種類があり,
これら四種類のアーギュメントは前記ロータリースタッ
ク44にプッシュされて,該スタック内の上位四個のデー
タレジスタを占有している.いったんプログラムのロー
ディングが行なわれると,そのプログラムが上記プログ
ラムステップ180からスレッデッドリスト184にスレッデ
ダウンする.このスレッデッドリスト184は,「AND」と
ラベルされたプログラムステップ186,「+」とラベルさ
れたプログラムステップ188,「OR」とラベルされたプロ
グラムステップ190,および「RETURN」プログラムステッ
プ192からなるものである.スレッデッドリスト184にお
けるこれらプログラムステップの各々の実行中は,プリ
ミティブレベルの実行にプログラムが流れて,第2レベ
ルの実行における次の順番のプログラムステップに戻
る.プログラムステップ186「AND」はプリミティブレベ
ルの「AND」とラベルされたプログラム194に流れ,
「+」プログラムステップ188はプリミティブレベルの
「+」とラベルされたプログラム196に流れ,「OR」プ
ログラムステップ190は「OR」とラベルされたプリミテ
ィブレベルのプログラム198に流れる.図示の簡単にす
るため,第6図ではスレッデッドリスト186,187のプリ
ミティブレベルプログラムは省略してあるが,たとえば
スレッデッドリスト187はスレッデッドリスト184と同等
であり,従って,プリミティブレベルのプログラムステ
ップ194,196,198は,いずれもスレッデッドリスト187に
より使用されるプログラムステップである. スレッデッドリスト184の実行中は,MASK ADD動作によ
ってデータレジスタ1ないし8内のデータが処理され,
優先順位の高い4個のレジスタのデータのみが取り扱わ
れる.この場合のMASK ADD動作を第2表に示す.この第
2表において,DR1は最優先データレジスタで,DR2〜DR4
はこの順に優先順位が低いデータレジスタである.また
Arg AないしARG Dは処理対象としてのアーギュメントを
表し,Arg Aがマスク用ワード,Arg Dがオーナメントであ
る. 次に第6図に示す3ステップ第3レベルプログラムの
動作について,第2図および第6図を参照して説明す
る.なお本例では,プリミティブ命令を表すアドレス
は,アドレス位置0ないし64を割り当て,第2レベル動
作のスレッデッドリストにおけるプログラムステップの
ためのアドレスには,アドレス位置65ないし512を割り
当て,メインプログラム,すなわち第3レベルにおける
プログラムステップには,513以上のメモリ位置を割り当
てることとする. 第3レベル動作のプログラムステップ180をアドレス
するためには,このプログラムステップの第3レベルの
アドレスを前記I/Oデータバス10にロードすることが,
まず必要である.さらに前記トランスファゲート82,84
を適宜動作状態として,このアドレスを含むメモリ14,8
0の一方を選択する.この第3レベルのアドレスが高レ
ベル動作であることをデコーダ92により判定し,この判
定にもとづいて,インクリメント用レジスタにアドレス
をロードして,当該アドレスを1だけインクリメントさ
せる.上記デコーダ92はさらに命令ポインタ86を制御し
て,これに第3レベルのアドレスをロードする.次のク
ロックサイクルでは,レジスタ94に記憶されているイン
クリメントされた第3レベルのアドレスが,リターンス
タック20に記憶され,さきに命令ポインタ86にロードさ
れていた第3レベルのアドレスが,アドレスバス12にク
ロック送りされる.第3レベルのアドレスがアドレスバ
ス12に現れると,この第3レベルのアドレスに含まれて
いるデータが,メモリ14,18のうちI/Oデータバス10に接
続された方のメモリから,該I/Oデータバス10に供給さ
れる.命令ポイント88の内容が上記のようにアドレスバ
ス12にクロック送りされるとともに,命令レジスタ58の
内容がアドレスデコーダ62にクロック送りされ,アドレ
スのアドレス位置が64以上で高レベルステップであるた
め,前述のように,上記クロック動作により制御ラッチ
68から機能的制御ワードが出力されることとなる.かく
て出力された制御ワードにより,各種のトランスファゲ
ートが動作状態となって,次の命令を受け取る. プログラムステップ180の第3レベルのアドレスに含
まれているデータは,MASK ADDスレッデッドリスト184の
最初の第2レベルのアドレスであり,これが次の命令と
なる.この第2レベルのアドレスはI/Oデータバス10に
供給され,デコーダ92により第2レベルのスレッデッド
リストアドレスであるものとして,デコードされる.上
記のようにこの最初のアドレスは,インクリメント用レ
ジスタ94にロードされてそのアドレスをインクリメント
させることなく,命令ポインタ86およびさらに命令レジ
スタ58にロードされる. 次にクロックサイクルでは,命令レジスタ58の第2レ
ベルのアドレスがアドレスコデーダ62にクロック送りさ
れ,また命令ポインタ86の第2レベルのアドレスがアド
レスバス12にクロック送りされる.このステップを第6
図にフローライン200で示す.第2レベルのアドレスは
高レベルの命令であるため,制御ラッリ68により機能的
制御ワードが出力される.この機能的出力ワードによ
り,トランスファゲート82,84が動作状態とされて,ど
のメモリからAND命令のためのマイクロコードアドレス
を受け取るべきかを決定する.かくて選択されたメモリ
14又はメモリ80からのANDマイクロコードアドレスが,
アドレスバス12における第2レベルのアドレスによって
検索され,I/Oデータバス10に供給される.このステップ
を第6図にフローライン202で表す. プログラムステップ186で上記のごとくI/Oデータバス
10に供給されたマイクロコードアドレスは,マイクロコ
ードRAM60のためのアドレスであり,これがプリミティ
ブのアドレスであって,スレッデッドリストの最初のア
ドレスではないことを,デコーダ92により識別して,命
令ポインタ86にマイクロコードアドレスをロードする代
りに,その内容をインクリメントさせる.かくて命令ポ
インタ86には,スレッデッドリスト184におけるプログ
ラムステップ188のための第2レベルのアドレスがロー
ドされる.また,上記のように命令ポインタ86の内容が
インクリメントされるとともに,命令レジスタ58にI/O
データバス10のマイクロコードアドレスがロードされ
る. 次のクロックサイクルでは,命令レジスタ58の内容が
アドレスデコーダ62にクロック送りされて,マイクロコ
ードROM60をアドレスする.このアドレスはプリミティ
ブアドレスであり,従ってプリミティブ制御ワードが制
御ラッチ68により出力されて,ロータリースタック44内
の適宜のトランスファゲートを動作状態として,所望の
機能を行なう.このアドレスはAND機能のアドレスであ
り,従ってALU16の入力に接続されたトランスファゲー
ト54,56が動作状態となって,ロータリースタック44内
の第1および第2のデータレジスタのデータが,出力デ
ータバス46,48に供給される.該ALU16の出力は,トラン
スファゲート32およびインターフェースバス36を介し
て,ロータリースタック44の第2のデータレジスタとイ
ンターフェースしている.このようにして,データレジ
スタDR1とデータレジスタDR2のアーギュメントAとの間
で論理ANDの演算が行なわれて,その演算結果がロータ
リースタック44の入力に与えられる. マイクロコードアドレスが命令レジスタ58にクロック
送りされるのと同時に,命令ポインタ86内のインクリメ
ントされた第2レベルのアドレスが,アドレスバス12に
クロック送りされる.このインクリメントされた第2レ
ベルのアドレスは,「+」プリミティブ用のマイクロコ
ードアドレスを含むプログラムステップ188のアドレス
を表すもので,このマイクロコードアドレスをI/Oデー
タバス10に供給するために,前記トランスファゲート8
2,84の一方が動作状態とされる.これらトランスファゲ
ート82,84は,いずれも前記制御ラッチ68により出力さ
れる制御ワードによって制御されるもので,後述するよ
うに,RETURN命令など特別の場合以外は,プリミティブ
アドレスの後には常にメモリからのアドレスが引き続く
ものであるため,上記トランスファゲート82,84の一方
が必ず動作状態とされる.このため,所定のプリミティ
ブ命令が実行されるのと並行して,所定のスレッデッド
リスト中の次の順次アドレスがフェッチされる.このス
テップを第6図において,ANDプリミティブレベルプログ
ラム194から「+」プログラムステップ188に至るフロー
ライン204で示す. 次のクロックサイクルでは,ALU16から出力されたデー
タが,第2優先順位のデータレジスタに入力され,スタ
ックポインタがインクリメントされるため,該第2のデ
ータレジスタが第1のデータレジスタとなる.従って,
アーギュメントAおよびアーギュメントBに対する論理
AND演算の結果が,ロータリースタック44の最上位レジ
スタに記憶される.さらに,前記オーバーフロースタッ
ク76内の最上位の内容が,もっとも優先順位の低いデー
タレジスタに格納される. ALU16からのデータがロータリースタック44内に入力
されるにともない,デコーダ92が命令ポインタ86をプロ
グラムステップ190のための第2レベルのアドレスに,
デコーダ92によりインクリメントして,命令レジスタ58
内のマイクロコードアドレスがアドレスデコーダ62にク
ロック送りされ,マイクロコードROM60がアドレスされ
て「+」プログラムステップ196のためのプリミティブ
制御ワードが出力される.このマイクロコードアドレス
により,制御ラッチ68から制御ワードが出力されて,ロ
ータリースタック44内の第1順位および第2順位のデー
タレジスタDR1,およびDR2が出力バス46,48に接続される
結果,トランスファゲート54,56が動作状態とされて,
このデータをALU16に入力する.ALU16はさらに加算動作
を行なうように制御され,その出力はトランスファゲー
ト32を介して,インターフェースバス36に供給される.
このインターフェースバス36は,ロータリースタック44
内の第2優先順位のデータレジスタとインターフェース
しており,次のクロックサイクルでALU16からの前記出
力が該レジスタに入力する. 同じクロックサイクル中に,ORプログラムステップ190
のための第2レベルのアドレスがすでにアドレスバス12
に出力されており,この第2レベルのアドレスに含まれ
ているマイクロコードアドレスがフェッチされて,I/Oデ
ータバス10に供給される.このステップを第6図にフロ
ーライン208で示す.上記マイクロコードアドレスによ
ってマイクロコードROM60がアドレスされ,論理OR機能
に対応する制御ワードが出力される.I/Oデータバス10に
現れたマイクロコードアドレスの存在はデコーダ92によ
り検知されて,命令ポインタ86がプログラムステップ19
2のための次の第2レベルのアドレスにインクリメント
され,さらに命令レジスタ58に論理OR機能のためのマイ
クロコードアドレスがロードされる. 次のクロックサイクルでは,命令レジスタ58のマイク
ロコードアドレスがアドレスデコーダ62にクロック送り
されて,マイクロコードROM60がアドレスされ,論理OR
機能に対応する制御ワードが出力される.このステップ
を第6図にフローライン210で示す.この制御ワードに
より,ロータリースタック44内の優先順位第1位および
第2位のデータレジスタDR1,およびDR2がALU16の入力に
接続されて,論理OR機能が実行され,その結果がインタ
ーフェースバス36にロードされる.このインターフェー
スバス36は,ロータリースタック44内の優先順位第2位
のデータレジスタとインターフェースしている. ただ今のクロックサイクルでは,命令ポインタ86のイ
ンクリメントされた第2レベルのアドレスがアドレスバ
ス12に供給され,プログラムステップ192に対応するデ
ータレジスタがアドレスされる.このデータレジスタに
は,RETURN命令のためのマイクロコードアドレスが記憶
されており,このマイクロコードアドレスがI/Oデータ
バス10に供給されて,命令レジスタ58にロードされる.
これと同時に,当該アドレスがマイクロコードアドレス
であることがデコーダ92によって検知され,命令ポイン
タ86の内容がインクリメントされる.このステップを第
6図にフローライン212で示す.なお後述するように,
プログラムステップ192はスレッデッドリスト184内での
最後のプログラムステップであるため,命令ポインタ86
内のインクリメントされたアドレスは未使用のままに終
る. 次のクロックサイクルでは,命令レジスタ58における
RETURN命令のためのマイクロコードアドレスが,アドレ
スデコーダ62にクロック送りされて,該RETURN命令のた
めの制御ワードが,制御ラッチ68から出力される.ま
た,命令ポインタ86内のインクリメントされた第2レベ
ルのアドレスがアドレスバス12に供給される.しかしな
がら,RETURN命令によってトランスファゲート82,84両方
が非動作状態とされているために,メモリ14またはメモ
リ80のいずれかから出力されたデータはI/Oバス10には
伝送されず,RETURN制御ワードによりスタック20がトラ
ンスファゲート98を介してポップされて,第3レベル動
作のためのインクリメントされた第3レベルのアドレス
が出力される.このステップは前記プログラムステップ
182に対応するステップである.この第3レベルのアド
レスは命令レジスタ58にロードされ,デコーダ92により
当該アドレスが第3レベル動作のアドレスであることが
判定され,この第3レベルのアドレスが命令ポインタ86
にロードされる.このステップを,第6図においてRETU
RNプログラムステップ192からメインプログラムにおけ
るプログラムステップ182に至るフローライン214で示
す. プログラムステップ182のための第3レベルのアドレ
スからなる命令ポインタ86の内容が,アドレスバス12に
クロック送りされると,プログラムステップ182の第3
レベルのアドレスに対応するデータレジスタの内容がI/
Oバス10に供給される.これはスレッデッドリスト185の
最初の第2レベルのアドレスであり,このステップを第
6図にフローライン216で示す.このスレッデッドリス
ト185は,プリミティブ「1−」であるプログラムステ
ップ218と,RETURNプログラムステップ220とからなるも
のである.I/Oデータバス10に現れた第2レベルのアドレ
スは,デコーダ92によって検知され,当該アドレスがス
レッデッドリスト185の最初のアドレスであることが,
このデコーダによってさらに検知される.このため,該
第2レベルのアドレスは,命令レジスタ58および命令ポ
インタ86にロードされる. 次のクロックサイクルでは,命令レジスタ58の第2レ
ベルのアドレスがアドレスデコーダ62にロードされ,ま
た命令ポインタ86の第2レベルのアドレスがアドレスバ
ス12にロードされる.このアドレスデコーダ62は,当該
アドレスが高レベルの命令であるものとしてデコード
し,適宜の機能的制御ワードを出力することにより,ト
ランスファゲート82もしくはトランスファゲート84を動
作状態として,メモリ14,80のいずれかをI/Oデータバス
10とインターフェースさせる.プログラムステップ218
の最初のアドレスがアドレスバス12に供給されると,プ
リミティブ「1−」のためのマイクロコードが選択され
たメモリからフェッチされて,I/Oバス10に供給される.
このステップを第6図にフローライン222で示す. プリミティブの実行が終了すると,プログラムはフロ
ーライン224に沿って戻す.これは前述のように,プリ
ミティブの第2レベルアドレスがクロック送りされて,
命令ポインタ86がインクリメントされ,プログラムステ
ップ220のための第2レベルのアドレスが,アドレスバ
ス12にロードされるのが,わずか1クロックサイクルで
行なわれる.この第2レベルのアドレスは,第2レベル
の動作をフローライン226に沿って,第3レベル動作に
おけるプログラムステップ183にプログラムを戻すRETUR
N命令のアドレスである.前述のように,RETURNマイクロ
コードアドレスが命令レジスタ58にクロック送りされた
場合には,制御ラッチ68から出力された制御ワードは機
能的制御ワードであり,第3レベル動作におけるプログ
ラムステップ183のためのインクリメントされた第3レ
ベルのアドレスであるリターンスタック20が,この機能
的制御ワードによってポップされる.ついでプログラム
はフローライン228に沿って進行してスレッデッドリス
ト187に至り,フローライン230に沿って戻って,次の第
3レベルのアドレスがI/Oバス10に供給されることとな
る. スレッデッドリスト184を実行する場合は,フローラ
イン202,204が第1のクロックサイクルを表わし,フロ
ーライン206,208が第2のクロックサイクルを表わし,
フローライン210,212が第3のクロックサイクルを表わ
す.従って,このスレッデッドリスト184のステップを
行なって所望の機能を得るためには,都合3クロックサ
イクルが必要であるにすぎない.またリターンスタック
20をポップして,第3レベル動作のための次の順次アド
レスをI/Oデータバス10に入力するためには,付加的な
クロックサイクルを必要とする. [マスクド動作システム] 第2図のシステムと同様のシステムに,さらにメイン
システム動作と並行してマスクド動作を行なわせるよう
にした,マスクド動作システムの構成を第7図の概略的
ブロック図に示す. ロータリースタック44と並列にシャドーロータリース
タック240を設けて,このシャドーロータリースタック2
40を,ロータリースタック44を構成するデータレジスタ
と同様の8個の16ビットワイドのデータレジスタにより
構成する.さらにマルチプレクサ242を設けて,その2
入力をインターフェースバス36および入力データバス50
とインターフェースさせる.このマルチプレクサ242
は,ロータリースタック44とインターフェースするため
の一対の出力インターフェースバス244と,上記シャド
ーロータリースタック240とインターフェースするため
の一対の出力インターフェースバス246とをもち,バス3
6,50をシフトさせて出力インターフェースバス244もし
くは出力インターフェースバス246とインターフェース
させる.ロータリースタック44と前記シャドーロータリ
ースタック240の出力にはマルチプレクサ248を設け,そ
の2出力を前記データバス46,48とインターフェースさ
せる.さらにロータリースタック44は,一対の入力イン
ターフェースバス250を介してこのマルチプレクサ248と
インターフェースし,同様にシャドーロータリースタッ
ク240も,一対の入力インターフェースバス252を介して
該マルチプレクサ248とインターフェースする.マルチ
プレクサ248は,入力インターフェースバス250,または
入力インターフェースバス252を出力データバス46,48と
インターフェースするようにスイッチするものである.
上記マルチプレクサ242,248は,いずれもマルチプレッ
クス信号(MUX)により制御される. 前記オーバーフロースタック76の近傍にもシャドーオ
ーバーフロースタック254を設け,さらにマルチプレク
サ256の2入力をインターフェースバス36および入力デ
ータバス50にそれぞれ接続する.このマルチプレクサ25
6は,このオーバーフロースタック76とインターフェー
スするための一対の出力インターフェースバス258と,
オーバーフロースタック254とインターフェースするた
めの一対の出力インターフェースバス260とをもち,バ
ス36,50を出力インターフェースバス258および出力イン
ターフェースバス260のいずれかにスイッチさせるもの
である.このマルチプレクサ256も前記MUX信号により制
御される. さらにリターンスタック20と並列にシャドーリターン
スタック262を設け,またマルチプレクサ264の2入力を
前記インクリメント用レジスタ94およびトランスファゲ
ート98とインターフェースさせることにより,該マルチ
プレクサ264をI/Oデータバス10とインターフェースさせ
る.このマルチプレクサ264は,出力インターフェース
バス266を介してリターンスタック20とインターフェー
スする一対の出力と,出力インターフェースバス268を
介してシャドーリターンスタック262とインターフェー
スする一対の出力とをもち,インクリメント用レジスタ
94からの出力データを,リターンスタック20もしくはシ
ャドーリターンスタック262に入力し,あるいはリター
ンスタック20またはリターンスタック262をI/Oデータバ
ス10にポップするはたらきをする.このマルチプレクサ
264も,前記MUX信号により制御される. さらに命令レジスタ58と並列にシャドー命令レジスタ
270を設け,またマルチプレクサ272の入力をI/Oデータ
バス10とインターフェースさせて,該I/Oデータバス10
をその2出力間でスイッチさせる.リターンスタック26
2の一方の出力は,インターフェースバス274を介して命
令レジスタ58とインターフェースし,他方の出力はイン
ターフェースバス276を介して,命令レジスタ270とイン
ターフェースしている.さらにマルチプレクサ278の出
力をインターフェースバス64とインターフェースさせ
て,その2入力の一方を該インターフェースバス64とイ
ンターフェースするようスイッチする.このマルチプレ
クサ278の2入力の一方は,インターフェースバス280を
介して命令レジスタ58の出力に接続され,他方の入力は
インターフェースバス282を介して,前記シャドー命令
レジスタ270の出力とインターフェースしている.これ
らマルチプレクサ272,278は,I/Oバス10とアドレスデコ
ーダ62の間にある命令レジスタ58もしくはシャドー命令
レジスタ270のいずれかと,インターフェースするよう
に作用する. さらに前記命令ポインタ90と並列にシャドー命令ポイ
ンタ284を設け,またマルチプレクサ286の入力をI/Oデ
ータバス10とインターフェースさせて,該入力をその2
出力の間でスイッチさせる.このマルチプレクサ286の
一方の出力は,インターフェースバス288を介して命令
ポインタ90とインターフェースし,他方の出力はインタ
ーフェースバス290を介して,シャドー命令ポインタ284
とインターフェースしている.さらにマルチプレクサ29
2の出力を,アドレスバス12とインターフェースさせ
て,該出力をその2出力間でスイッチさせる.これらマ
ルチプレクサ292の2出力の一方は,インターフェース
バス294を介して命令ポインタ90とインターフェース
し,他方はインターフェースバス296を介して,シャド
ー命令ポインタ284とインターフェースしている.これ
らマルチプレクサ286,292は,命令ポインタ90もしくは
シャドー命令ポインタ284をI/Oデータバス10とアドレス
バス12との間で,インターフェースさせるものである. 前記シャドー命令ポインタ284は,命令ポインタ90と
同様に構成され,これらシャドー命令ポインタ284およ
び命令ポインタ90はいずれも,これにデータをロードし
たり,あるいはこれに含まれるデータがその出力に転送
されるに先立って該データをインクリメントさせたりす
るはたらきをもつものである.上述のように,デコーダ
92はそのインクリメント機能やデータのロード機能のた
めの制御信号を供給するもので,その出力はマルチプレ
クサ298によってマルチプレックスされる.このマルチ
プレクサ298の2出力のうち一方は,命令ポインタ90の
インクリメント入力に接続され,他方は前記シャドー命
令ポインタ284のインクリメント入力に接続されてい
る.該マルチプレクサ298も前記MUX信号により制御され
る. 前記システムクロック26にはさらにシャドータイマ30
0が接続されて,定期的に前記MUX信号を生成する.好ま
しい実施例においてはこのMUX信号は,システムクロッ
ク26の10サイクルごとに出力されるものとし,MUX信号が
発生されていない期間中は,前記シャドーロータリース
タック240,シャドーオーバーフロースタック254,シャド
ーリターンスタック262,シャドー命令レジスタ270およ
びシャドー命令ポインタ284(以下これらを一括してシ
ャドー回路という)は,いずれもシステムから機能的に
分離され,従って該システムは第2図について前述した
と同様の構成となり,このMUX信号の発生しない9サイ
クル期間中は,全体のシステムは上述したと同様にして
動作することとなる.上記のごとく,システムクロック
26の十番目のサイクルごとに前記MUX信号が発生する
と,システムの動作は上記シャドー回路に移る.すなわ
ちMUXの発生している1サイクル期間中は,これらシャ
ドー回路が結合されて,当該1サイクルの動作はすべて
第2図について説明したと同様にして,該シャドー回路
により行なわれる.たとえば次のシャドー動作は,スレ
ッデッドリストの中間をステップして,これに設定され
ているプリミティブのひとつを実行する動作とすること
ができる.上述のように,プリミティブは先行するプリ
ミティブの実行中に,後続のプリミティブのためのマイ
クロコードアドレスを命令レジスタ58にロードするよう
にして実行される. MUX信号が生成されると,シャドー命令レジスタ270が
インターフェースバス64とインターフェースして,この
レジスタに記憶されている情報が,アドレスデコーダ62
に転送される.この場合,シャドー命令レジスタ270に
ロードされている情報は,プリミティブのためのマイク
ロコードアドレスであるため,制御ラッチ68の出力に制
御ワードが生成され,各種のトランスファゲートが動作
状態とされて,プリミティブを実行する制御機能が行な
われる. シャドー命令ポインタ284に格納されているシャドー
スレッデッドリストには,次のステップのためのインク
リメントされた第2レベルのアドレスが含まれており,
上記のようにMUX信号が生成された場合には,この第2
レベルのアドレスがマルチプレクサ292を介してアドレ
スバス12にクロック送りされて,スレッデッドリスト中
の次の順番のデータレジスタがアドレスされ,該アドレ
スのマイクロコードアドレスが,I/Oデータバス10に供給
される.次のプリミティブのマイクロコードがI/Oデー
タバス10に供給されたマイクロコードは,ただちにシャ
ドー命令レジスタ270にロードされ,デコーダ92がマル
チプレクサ298を介して,シャドー命令ポインタ284をイ
ンクリメントさせる.このため,当該クロックサイクル
の終了前に,シャドー命令レジスタ270には次に実行す
べきプリミティブのためのマイクロコードがロードさ
れ,シャドー命令ポインタ284がインクリメントされ
て,シャドースレッデッドリストにおける次の第2レベ
ルのアドレスが請求されることとなる. MUX信号の発生中は,マルチプレクサ242,248を介して
シャドーローダースタック240が入力バス36,50および出
力バス46,58とインターフェースし,また,前記マルチ
プレクサ256を介して,シャドーオーバーフロースタッ
ク254が入力バス36,50とインターフェースする. シャドーロータリースタック240は,後述のようにそ
れ自体の独立したスタクポインタをもっており,このス
タックポインタはロータリースタック44とは独立して動
作するものである.ロータリースタック44のデータレジ
スタとオーバーフロースタック76のデータレジスタのみ
をスイッチすることにより,各種トランスファゲートお
よびALU16は,シャドー動作のために動作を改めて繰り
返す必要はない.ついで,制御ラッチ68の出力における
制御ワードにより設定されたプリミティブ命令が,第6
図について前述したと同様にして,シャドーロータリー
スタック240内のデータに対して実行される. MUX信号の発生中は,前記シャドーリターンスタック2
62も,インクリメント用データレジスタ94およびトラン
スファゲート98とインターフェースする.前述のよう
に,このシャドリターンスタック262は第3レベル動作
のためのアドレスを格納するのに用いられるものであ
り,より低いレベルの動作から戻るときに,このアドレ
スがスタックからポップされる.該リターンスタック26
2もそれ自体独立したスタックポインタをもち,リター
ンスタック20とは同等の構成としてある.かくて前記シ
ャドー回路を設けることによって,メインプログラムと
並行して独立のシャドープログラムを実行させることが
可能となる.この独立したシャドープログラムは,上述
のように10サイクル中の1サイクル期間だけ行なわれる
のに対して,メインプログラムは逆に10サイクルのう
ち,9サイクル期間にわたって行なわれるものであるた
め,メインプログラムよりも低速度で進行する.また,
前記シャドータイマ300はハードウエアとして構成され
たタイマであるため,メインプログラムが動作モードと
なって動作がシャドープログラムに戻らないということ
が起こる可能性はない.かくてシャドープログラムはメ
インプログラムとは完全に独立して行なわれ,従ってメ
インプログラム又はシステムの動作をモニターすること
ができるとともに,システム外からの侵入の有無を検知
することが可能となる.そして,シャドー回路により,
適切に動作するメインプログラムにインターフェースさ
せるための中断の必要性が実質的に省かれる. 次に,第8図にロータリースタック44およびシャドー
ロータリースタック240の構成を拡大して示す.ロータ
リースタック44は,前述のように8個のデータレジスタ
1ないし8からなり,シャドーロータリースタック240
もこのロータリースタック44と同等に構成されているた
め,同じく8個のデータレジスタ9ないし16からなって
いる.従って,シャドーロータリースタック44とシャド
ーロータリースタック240の両者により,都合16個のデ
ータレジスタからなる単一のスタックが形成されること
となる. 前記入力データバス50およびインターフェースバス36
にはさらに,バス/レジスタ選択回路302がインターフ
ェースしており,このバス/レジスタ302がインターフ
ェースしており,このバス/デジスタ選択回路302の複
数の出力が,同じく複数の入力インターフェースバス30
4を介して,上記データレジスタ1ないし16とそれぞれ
インターフェースしている.同様に,前記出力データバ
ス46および出力データバス48にはさらに,バス/レジス
タ選択回路306がインターフェースしており,このバス
/レジスタ選択回路306の複数の出力が,同じく複数の
インターフェースバス308を介して,上記データレジス
タ1ないし16とインターフェースしている.さらに,前
記スタックポインタ110は,マルチプレクサ312を介して
シャドースタックポインタ310とマルチプレックスされ
て,上記バス・レジスタ選択回路301,306に対する制御
信号を生成する.マルチプレクサ312の動作は,MUX信号
により制御される.これらバス/レジスタ選択回路302,
306およびデータレジスタ1〜16は,前述のロータリー
スタック44,シャドーロータリースタック240およびマル
チプレクサ242,248に相当するものである. 前記バス/レジスタ選択回路302と306の動作は,第3
図につき前述したバス/レジスタ選択回路102,106の動
作と同様である.スタックポインタ110およびシャドー
スタックポインタ310は,マルチプレクサ312を介してマ
ルチプレックスされた制御信号を有するアップダウンカ
ウンタである.すなわち,これらスタックポインタ110
およびシャドースタックポインタ310はいずれも,3ビッ
トのアップダウンカウンタとして構成され,スタックポ
インタ310はさらに,常時高論理状態とした第4のビッ
ト有している.この高論理状態をスタックポインタ310
の第4ビットに用いることにより,スタックポインタ11
0をレジスタ1ないし8に専用としたまま,つねにレジ
スタ9ないし16がアドレスされることとなる.またマル
チプレクサ312,314の接続状態により,スタックポイン
タ110もしくはスタックポインタ310がインクリメントさ
れて,関連するデータレジスタのうち,適宜のものを最
優先データレジスタとして選択する.マルチプレクサか
ら制御信号が除去された後は,別のインクリメント用制
御信号がこれに入力するまで,データは該マルチプレク
サにラッチされる.ロータリースタック44およびシャド
ーロータリースタック240の動作は,3−8デコーダの代
りに4−16デコーダを使用する点以外は,第4図につい
て説明したものと同様である.さらにシャドーオーバー
フロースタック254およびリターンスタック262の動作
も,第5図を参照してオーバーフロースタック76につき
説明したと同様である.さらに付加的なアップダウンカ
ウンタ156を用いることにより,RAM154と並列に追加した
第2の265Kメモリをアドレスするデータビットが得られ
る.かくて,バス/方向選択回路170およびこれと関連
するトランスファゲートは,改めて動作を繰り返す必要
がなくなる. なお,上述の実施例における構成回路としては,たと
えば次のようなものを使用することができる. 名称 ラインドライバ 符号 32,38,52,56 部品番号 74KS244 メーカー テキサスインスツルメンツ 名称 ALU 符号 16 部品番号 74LS181 メーカー テキサスインスツルメンツ 名称 トランシーバ 符号 40,41,82,84,160,162,164,166 部品番号 74LS243 メーカー テキサスインスツルメンツ 名称 フリップフロップ 符号 112,114,116 部品番号 7474 メーカー テキサスインスツルメンツ 名称 AND/OR 符号 118,120,122 部品番号 7451 メーカー テキサスインスツルメンツ 名称 3−8デコーダ 符号 124,126,146,148 部品番号 74LS138 メーカー テキサスインスツルメンツ 名称 3ビット加算回路 符号 128,130,150,152 部品番号 74283 メーカー テキサスインスツルメンツ 名称 3ビットアップダウンカウンタ 符号 132,156 部品番号 74S169 メーカー テキサスインスツルメンツ 名称 NANDゲート 符号 134,136,138,140,142,144 部品番号 7401 メーカー テキサスインスツルメンツ [発明の効果] 以上に説明したように,本発明によるTILプロセッサ
は,パラメータスタックの動作をハードウエア化したこ
とを特徴とするもので,これにより該動作をシステムク
ロックの1クロックサイクルで行なうことが可能とな
る.また,多数のスレッデッド命令もこれをハードウエ
ア化したため,メモリに対して頻繁にフェッチ動作を行
なうことなく,それらの命令を順次実行することができ
るようになる.さらにまた,パラメータスタックにはロ
ータリースタックを用いるとともに,複数のデータバス
をその出力および入力に接続したため,ロータリースタ
ック内のデータレジスタの出力のうち,1ないしはそれ以
上を選択してロータリースタックからのデータの流れを
制御することにより,該スタックの内容を効果的に処理
することが可能となる.このデータに対して演算論理動
作を行なうためには,ハードウエアとしての論理演算ユ
ニットを用いる.さらに,ロータリースタックの動作は
すべて,アドレスバスに順次供給されるアドレスに応答
して出力されるマイクロコード命令により制御される.
これらマイクロコード命令により,各クロックサイクル
で実行されるプリミティブレベルの命令がイネーブルさ
れる.またマイクロコード命令のたねのプログラムアド
レスは,内部および外部メモリを用いてこれを記憶する
ようにしたことも,本発明装置の特徴である. 以上本発明の実施例につき記載してきたが,本発明に
よる方法および装置はこの実施例に限定されるものでな
く,記載の実施例に適宜各種の追加ないし変更を加えて
もよいことはいうまでもない.
【図面の簡単な説明】
第1図は本発明によるTILプロセッサの実施例を示すブ
ロック図,第2図は第1図に示すTILプロセッサの構成
を拡大して示すブロック図,第3図は該実施例における
ロータリーデータレジスタファイルの構成を示す拡大ブ
ロック図,第4図は第3図に示すロータリーデータレジ
スタファイルに含まれるレジスタのひとつを示す概略
図,第5図は本実施例におけるオーバーフローデータレ
ジスタの構成を示すブロック図,第6図は本発明による
TILプロセッサの3種の動作態様を示すフローチャー
ト,第7図は本発明によるマスクドTILプロセッサを示
す拡大ブロック図,第8図は第7図に示すマスクドTIL
プロセッサのロータリースタックの構成を示す拡大ブロ
ック図である. 10……I/Oデータバス,12……アドレスバス,14……I/0サ
ブシステム・外部メモリ,16……ALU,18……パラメータ
スタック,20,262……リターンスタック,22……データマ
ニピュレータ,24……第1レベルメモリ,26……システム
クロック,28……スレッデッド命令制御回路,30……第2
レベルメモリ,36……インターフェースバス,44,240……
ロータリースタック,46,48……出力バス,50……データ
入力バス,58,270……命令レジスタ,60……マイクロコー
ドROM,76,254……オーバーフロースタック,80……ROM/R
AM,86,284……命令ポインタ,
───────────────────────────────────────────────────── フロントページの続き (72)発明者 グランビイル イー.オツト アメリカ合衆国テキサス州.ラボツク 第57 ストリート 3408 (56)参考文献 特開 昭57−5153(JP,A) 特開 昭51−117843(JP,A) 特開 昭57−197653(JP,A) 特開 昭56−157541(JP,A) 特開 昭55−43635(JP,A) 特開 昭50−56135(JP,A)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】データ及びプログラム命令伝送用の主信号
    バスと、 スタックに構成され、データを記憶すべく該主信号バス
    に接続された複数のデータレジスタと、 上記データレジスタの入力又は出力のすべてが該主信号
    バスに対して同時的にインターフェース可能であり、或
    いは、該データレジスタでの選択された出力が該データ
    レジスタでの選択された入力に対してインターフェース
    可能であるように、該データレジスタの出力端子と該デ
    ータレジスタの入力端子との間、及び、該データレジス
    タの入出力端子と該主信号バスとの間を選択的に相互接
    続するためのステアリング手段と、 上記ステアリング手段を制御可能にするようなマイクロ
    コード命令を予め定められたアドレス領域に記憶するた
    めのマイクロコード記憶手段と、 上記主信号バスに接続され、プログラム命令を含むデー
    タを記憶するメモリ手段と、 上記主信号バスに対して作動的に結合し、上記メモリ手
    段からプログラム命令をフェッチし、該プログラム命令
    に応答して、上記マイクロコード記憶手段に対するアド
    レス指定を行って、該マイクロコード記憶手段での選択
    されたマイクロコード命令にアクセスするフェッチ手段
    と、 上記データレジスタ、上記マイクロコード記憶手段、上
    記ステアリング手段、上記メモリ手段及び上記フェッチ
    手段に対して作動的に結合し、連続クロックサイクルに
    よるタイミング機能を提供するシステムクロック手段
    と、 を含む信号処理装置。
  2. 【請求項2】上記主信号バスに接続され、上記マイクロ
    コード記憶手段のマイクロコードアドレスに対応し、各
    々が一連のプログラム命令を含んでいる複数のプログラ
    ム命令リストを記憶する第2のメモリ手段と、 上記第2のメモリ手段のアドレス指定により、プログラ
    ム命令の選択されたリストにアクセスして、マイクロコ
    ード命令がグループとして実行可能となるように、アク
    セス済みの選択されたプログラム命令リストに対応する
    マイクロコードアドレスを該主信号バスに乗せる手段と
    をさらに含んで成る特許請求の範囲第(1)項記載の信
    号処理装置。
  3. 【請求項3】データ及びプログラム伝送用の主信号バス
    と、 上記主信号バス上にプログラム命令及びデータを乗せる
    ためのプログラム命令手段と、 a)並列接続に配置された複数個のデータレジスタ b)該複数個のデータレジスタに作動的に連係して、デ
    ータ処理動作時に、複数個のデータレジスタ全体に対し
    て選択された1個のデータレジスタの最先順位を決定す
    るスタックポインタ c)同時的アドレス指定の可能な全データレジスタの入
    出力端子 を有し、データを記憶する後入れ先出しパラメータスタ
    ックと、 複数個の出力パラメータバスと、 上記データレジスタのうちの選択された1個のデータレ
    ジスタの出力端子に対して上記パラメータバスの1個を
    選択的に接続する第1のインターフェース手段と、 複数個の入力パラメータバスと、 上記データレジスタのうちの選択された1個のデータレ
    ジスタの入力端子に対して上記パラメータバスの1個を
    選択的に接続する第2のインターフェース手段と、 上記出力パラメータバスを選択的に相互接続し、上記デ
    ータレジスタのうちの選択された1個のデータレジスタ
    の出力端子から供給されるデータについて演算論理操作
    を行う演算論理手段と、 上記演算論理手段の出力端子と上記入力パラメータバス
    の1個とを該演算論理手段からの出力がデータレジスタ
    の1個に対して記憶可能になるように、選択的に接続す
    る第3のインターフェース手段と、 上記出力パラメータのバスの1個と上記入力パラメータ
    バスの1個とを上記データレジスタの1個内のデータが
    該データレジスタの他の1個に対して直接的に入力可能
    になるように、選択的に接続する第4のインターフェー
    ス手段と、 上記第1、第2、第3、第4のインターフェース手段及
    び上記演算処理手段を制御して、上記データレジスタ内
    のデータに応じて所定のタスクを実行させる制御手段
    と、 上記主信号バスに対して作動的に接続され、該主信号バ
    スからプログラム命令を取り出す取出し手段と、 上記制御手段のためのマイクロコード命令を記憶するマ
    イクロコード記憶手段と、を含んでなり、 上記プログラム命令手段は、上記主信号バス上のプログ
    ラム命令に応答して、上記マイクロコード記憶手段を制
    御し、上記データレジスタに記憶されているデータが上
    記第1、第2、第3、第4のインターフェース手段によ
    り操作可能となるように、選択されたマイクロコード命
    令を上記制御手段に対して出力し、さらに、該選択され
    たマイクロコード命令による規定に従って、各別のデー
    タレジスタ間でデータを転送することにより、該データ
    レジスタのうちの選択された1個の出力端子から供給さ
    れるデータについて演算論理操作を実行可能にすること
    により、上記演算論理手段からデータを該データレジス
    タのうちの選択されたデータレジスタの入力端子に対し
    て転送することにより、そして、各別のデータレジスタ
    と該主信号バスとの間でデータを転送することにより、
    該選択されたマイクロコード命令を該演算論理手段に対
    して出力することを特徴とし、ボードクロックでの1サ
    イクル中に多重のタスクを実行する信号処理装置。
  4. 【請求項4】上記プログラム命令手段が、スレッデッド
    命令処理装置を含んで成り、 該スレッデッド命令処理装置は、上記主信号バスに対し
    て作動的に接続されたマイクロコード記憶手段向けの複
    数個のプログラム命令を各別に含む複数個のリストを記
    憶する記憶手段と、 上記リストのうちの選択された1個の開始点について上
    記記憶手段をアドレス指定する手段と、上記取り出し手
    段がプログラム命令へのアクセスを確立できるように、
    上記リストのうちの選択された1個の各プログラム命令
    を逐次的に、上記主信号バス上に乗せ、上記制御手段に
    より先行の命令が実行される期間中に、後続の命令を上
    記主信号バス上に乗せる手段とを有する特許請求の範囲
    第(3)項記載の信号処理装置。
  5. 【請求項5】a)並列接続で配置された複数個のシャド
    ウデータレジスタ b)複数個のシャドウデータレジスタに対して作動的に
    連係して、データ処理動作時に、複数個のシャドウデー
    タレジスタ全体に対して1個の選択されたシャドウデー
    タレジスタの最先順位を決定するシャドウスタックポイ
    ンタ を有し、データを記憶するシャドウ後入れ先出しパラメ
    ータスタックと、 すべてのシャドウデータレジスタの、同時的にアドレス
    指定可能な入出力端子と、 上記第1、第2のインターフェース手段に対して作動的
    に連係し、第1、第2の状態を有し、 第1の状態では、該パラメータスタックを動作可能にす
    るとともに、該信号処理装置からシャドウパラメータス
    タックを遮断し、第2の状態では、該第1、第2のイン
    ターフェース手段が上記出力パラメータバス及び上記入
    力パラメータバスを該パラメータスタック内のそれぞれ
    のデータレジスタに対して選択的に接続するのを禁止す
    るとともに、該第1、第2のインターフェース手段が該
    入力パラメータバス及び該出力パラメータバスを該シャ
    ドウパラメータスタック内のそれぞれのシャドウデータ
    レジスタに対して選択的に接続することを可能にするス
    イッチング手段と、 上記スイッチング手段を作動させて、周期性をもって第
    2の状態を確保し、該パラメータスタックが該パラメー
    タスタックに関して使用されるプログラム動作に並行す
    る全く異なるプログラム動作中に使用されるように、上
    記制御手段に対して入力されるマイクロコード命令に応
    答して、該パラメータスタックの動作を中断し、該制御
    手段に対して入力されるマイクロコード命令に応答し
    て、上記シャドウパラメータスタックの動作を可能にす
    るタイミング手段とをさらに含んで成る特許請求の範囲
    第(3)項又は第(4)項記載の信号処理装置。
  6. 【請求項6】データ及びプログラム命令伝送用の主信号
    バスと、 アドレスバスと、 複数個のデータレジスタを備え、各データレジスタが同
    時的にアドレス指定されて、複数個のデータレジスタに
    対してデータを入力し、複数個のデータレジスタからデ
    ータを出力するような後入れ先出しデータスタックと、 1個の出力端子及び少なくとも2個の入力端子を備え、
    入力データについて演算論理操作を実行する演算論理手
    段と、 上記複数個のデータレジスタの出力端子を上記演算処理
    手段の1個の入力端子に対して作動的に接続して、該デ
    ータレジスタのうちの選択された1個から該演算論理手
    段の1個の入力端子に向けてデータを転送する第1のバ
    ス手段と、 上記複数個の出力端子を上記演算論理手段の他の1個の
    入力端子に対して作動的に接続して、該データレジスタ
    のうちの選択された1個から、該演算論理手段の他の1
    個の入力端子向けてデータを転送する第2のバス手段
    と、 上記演算論理手段の出力端子を上記複数個のデータレジ
    スタの入力端子及び該主信号バスに対して作動的に接続
    して、該データレジスタのうちの選択された1個または
    該主信号バスに向けて、該演算論理手段からの出力を選
    択的に転送する第3のバス手段と、 上記第2のバス手段を上記複数個のデータレジスタの入
    力端子に対して作動的に接続して、該第2のバス手段か
    ら該データレジスタのうちの選択された1個の入力端子
    に向けてデータを転送する第4のバス手段と、 上記主信号バス及びアドレスに対して作動的に接続さ
    れ、予め定められたアドレス領域にアドレス形式のマイ
    クロコード命令を記憶するための第1レベルのメモリを
    規定し、記憶済みのマイクロコード命令が、上記第1、
    第2、第3、第4のバス手段及び演算論理手段に対する
    制御動作を可能にするマイクロコード記憶手段と、 上記主信号バスに対して作動的に接続され、上記マイク
    ロコード記憶手段をアドレス指定して、該マイクロコー
    ド記憶手段から、記憶済みのマイクロコード命令のうち
    の選択された幾つかを出力すべく、プログラム命令に応
    答し、かつ、該主信号バスに接続され、プログラム命令
    としてのコード化されたアドレスを該主信号バスから受
    領する命令レジスタ及び該命令レジシタと該マイクロコ
    ード記憶手段との間に挿入配置され、コード化されたア
    ドレスとしての該マイクロコード記憶手段への入力を確
    保すべく、該命令レジスタからコード化されたアドレス
    出力の受領動作を可能にするアドレスデコーダを含むア
    ドレス指定手段と、 上記マイクロコード記憶手段の出力端子に接続配置さ
    れ、ラッチされた状態では、上記マイクロコード記憶手
    段からの出力としてのアドレス形式のマイクロコード命
    令を受領する制御ラッチと、 それぞれのデータレジスタ間でデータを転送することに
    より、該データレジスタのうちの選択された幾つかの出
    力端子から供給されるデータについての演算論理操作を
    可能にすることにより、該演算論理手段からデータレジ
    スタのうちの選択された幾つかの入力端子に向けてデー
    タを転送することにより、さらに、それぞれのデータレ
    ジスタと該主信号バスとの間で、該選択されたマイクロ
    コード命令で規定されるようにデータを転送することに
    より、上記データタック内のデータレジスタに記憶され
    たデータが、該演算論理手段にて、同時的に操作、演算
    可能となるように、マイクロコード記憶手段から選択さ
    れ、そこに該命令レジスタ及び該アドレスデコーダによ
    り供給されるようなマイクロコード命令に応答して、上
    記第1、第2、第3、第4のバス手段及び該演算論理手
    段についてのデータフローを制御するための制御手段
    と、 上記主信号バス及び上記アドレスバスに対して作動的に
    接続され、各々が一連のマイクロコードアドレスを含ん
    でいる複数個のマイクロコードアドレスリストを選択さ
    れた領域に記憶するための第2レベルのメモリを規定す
    るマイクロコードアドレス記憶手段と、 アクセスされ選択されたリストに関するマイクロコード
    アドレスを逐次的に、上記主信号バス上に、乗せるべ
    く、該主信号バス上に乗っているプログラム命令に応答
    して、マイクロコードアドレスリストのうちの選択され
    た1個にアクセスするように上記マイクロコードアドレ
    ス記憶手段をアドレス指定し、かつ、該主信号バスと該
    アドレスバスとに接続され、該両バス間に挿入配置され
    て、該マイクロコードアドレス記憶手段への入力を確保
    すべく、1個のアドレスを介して該主信号バスから該ア
    ドレスバスに向けてクロックを付与するためのデータレ
    ジスタから成る命令ポインタを含んでいるところのマイ
    クロコードアドレス記憶手段のアドレスを指定する手段
    とを含んでなり、 上記マイクロコードアドレス記憶手段から選択されアク
    セスされたリストに関するマイクロコードアドレスは、
    予め定められた機能マイクロコード命令の出力に依存し
    て、制御ラッチにより上記マイクロコード記憶手段から
    の出力として該主信号バス上に乗せられ、 上記制御手段は、上記リスト選択アドレス指定手段に対
    して作動的に連係し、該リストの選択された1個内のマ
    イクロコードアドレスを該マイクロコード記憶手段に向
    けて逐次的に供給し、該マイクロコード記憶手段中の各
    マイクロコードアドレス領域に位置するマイクロコード
    命令が該制御手段による該データスタック中のデータの
    操作を可能にするように、選択されたリストに含まれて
    いるマイクロコードアドレスに対応する記憶済みのマイ
    クロコード命令のうちの選択された幾つかを出力するこ
    とを特徴とするスレッデッドインタープリティブデータ
    を処理する信号処理装置。
  7. 【請求項7】一度に1個以上のデータレジスタに対して
    データが入力可能であり、一度に1個以上のデータレジ
    スタからデータが出力可能であるように、同時的にアド
    レス指定可能な予備データレジスタファイル中の複数個
    のデータレジスタに第1のデータ群を記憶する工程と、 第1の記憶媒体中の予め定められたアドレス領域にマイ
    クロコード命令を記憶する工程と、 各グループが予め定められたマイクロコードアドレスの
    配列を有する複数個のグループに分けられて配列された
    マイクロコード命令のアドレスを第2の記憶媒体に記憶
    する工程と、 マイクロコードアドレスのグループのうちの選択された
    1個にアクセスして、マイクロコードアドレスの選択さ
    れた1個を逐次的に主信号バス上に乗せる工程と、 a)主信号バスからマイクロコードアドレスを取り出
    し、 b)取り出されたマイクロコードアドレスにおけるマイ
    クロコード命令をアドレス形式にし、 c)アドレス形式のマイクロコード命令に従って、予備
    データレジスタファイル中のデータレジスタのうちの選
    択された幾つかからのデータに対してアクセスし、 d)アドレス形式のマイクロコード命令に従って、選択
    されたデータについての演算論理操作を実行し、 e)記憶媒体に記憶すべく、演算論理操作の結果を主信
    号バスに向けて転送し、或いは、アドレス形式のマイク
    ロコード命令に従って、演算論理操作の結果を予備デー
    タレジスタファイル中のデータレジスタのうちの選択さ
    れた1個に向けて逆方向に転送し、 f)データ選択過程での異なる選択済みデータに関する
    ものではあるが、同時的に発生する選択済みデータにつ
    いての演算論理操作に関し、アドレス形式化し、アクセ
    スし、実行するという諸ステップにより、 主信号バス上に乗っているアドレス中に存在するマイク
    ロコード命令を実行する工程と、 マイクロコードアドレスの選択されたグループにおける
    次のアドレスを信号バス上に乗せ、同時的に、演算論理
    操作が実行されている現在選択中のデータに対応するマ
    イクロコード命令を実行する工程とを含んで成るスレッ
    デッドインタープリティブランゲージを実行するための
    方法。
JP60041773A 1984-03-02 1985-03-02 信号処理装置及び該装置を使用する Expired - Fee Related JP2571757B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US585478 1984-03-02
US06/585,478 US5179734A (en) 1984-03-02 1984-03-02 Threaded interpretive data processor

Publications (2)

Publication Number Publication Date
JPS60217438A JPS60217438A (ja) 1985-10-31
JP2571757B2 true JP2571757B2 (ja) 1997-01-16

Family

ID=24341626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60041773A Expired - Fee Related JP2571757B2 (ja) 1984-03-02 1985-03-02 信号処理装置及び該装置を使用する

Country Status (4)

Country Link
US (1) US5179734A (ja)
EP (1) EP0154529B1 (ja)
JP (1) JP2571757B2 (ja)
DE (1) DE3586603T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868745A (en) * 1986-05-30 1989-09-19 Hewlett-Packard Company Data processing system and method for the direct and indirect execution of uniformly structured object types
JPS6412339A (en) * 1987-07-06 1989-01-17 Oki Electric Ind Co Ltd Forth machine
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
JP2882495B2 (ja) * 1991-02-08 1999-04-12 三菱電機株式会社 通信機
FR2678402A1 (fr) * 1991-06-28 1992-12-31 Philips Electronique Lab Dispositif de traitement d'informations.
US5367650A (en) * 1992-07-31 1994-11-22 Intel Corporation Method and apparauts for parallel exchange operation in a pipelined processor
JP3226055B2 (ja) * 1992-09-16 2001-11-05 松下電器産業株式会社 情報処理装置
US6487626B2 (en) * 1992-09-29 2002-11-26 Intel Corporaiton Method and apparatus of bus interface for a processor
JPH06168116A (ja) * 1992-11-30 1994-06-14 Mitsubishi Electric Corp マイクロコンピュータ
US5748964A (en) 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
US6704923B1 (en) 1994-12-20 2004-03-09 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
AU4469896A (en) 1994-12-23 1996-07-19 Southwestern Bell Technology Resources, Inc. Flexible network platform and call processing system
US5774726A (en) * 1995-04-24 1998-06-30 Sun Microsystems, Inc. System for controlled generation of assembly language instructions using assembly language data types including instruction types in a computer language as input to compiler
US5734927A (en) * 1995-06-08 1998-03-31 Texas Instruments Incorporated System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
US6535903B2 (en) * 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
US6091897A (en) 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
ATE244417T1 (de) * 1996-11-13 2003-07-15 Paran Arik Echtzeitprogramm-sprachbeschleuniger
US6016539A (en) * 1997-11-03 2000-01-18 Teragen Corporation Datapath control logic for processors having instruction set architectures implemented with hierarchically organized primitive operations
AU1292799A (en) * 1997-11-03 1999-05-24 Teragen Corporation Direct cache accessing primary operations hierarchically organized to snippets and threads implemented in isa processor
US6216218B1 (en) 1997-11-03 2001-04-10 Donald L. Sollars Processor having a datapath and control logic constituted with basis execution blocks
EP1062577A2 (en) * 1998-12-08 2000-12-27 Koninklijke Philips Electronics N.V. Method of executing an interpreter program
US7120572B1 (en) 2000-01-06 2006-10-10 Sun Microsystems, Inc. Memory efficient program pre-execution verifier and method
DE10131084A1 (de) * 2001-06-27 2003-01-09 Klaus Schleisiek Vorrichtung zur Datenverarbeitung
US7506322B2 (en) * 2001-12-13 2009-03-17 Synopsys, Inc. System and method of utilizing a hardware component to execute an interpretive language
JP3719509B2 (ja) * 2002-04-01 2005-11-24 株式会社ソニー・コンピュータエンタテインメント シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法
US7185331B2 (en) * 2002-08-27 2007-02-27 Inrange Technologies Corporation Method and apparatus for downloading executable code in a non-disruptive manner
GB2430052A (en) * 2005-09-07 2007-03-14 Tandberg Television Asa CPU with a buffer memory directly available to an arithmetic logic unit
US7962731B2 (en) * 2005-10-20 2011-06-14 Qualcomm Incorporated Backing store buffer for the register save engine of a stacked register file
JP2009538488A (ja) * 2006-05-26 2009-11-05 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー コンピュータの円環状レジスタ配列

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3675218A (en) * 1970-01-15 1972-07-04 Ibm Independent read-write monolithic memory array
US3881172A (en) * 1971-12-01 1975-04-29 Struthers Dunn Process control computer
US3889243A (en) * 1973-10-18 1975-06-10 Ibm Stack mechanism for a data processor
US3938103A (en) * 1974-03-20 1976-02-10 Welin Andrew M Inherently micro programmable high level language processor
US4001788A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Pathfinder microprogram control system
US4193197A (en) * 1976-07-06 1980-03-18 Aquasonic Products Corp. Fluid supply unit and systems for dental and medical instruments
JPS5833572B2 (ja) * 1977-10-21 1983-07-20 株式会社東芝 情報処理方式
US4245302A (en) * 1978-10-10 1981-01-13 Magnuson Computer Systems, Inc. Computer and method for executing target instructions
JPS5569855A (en) * 1978-11-20 1980-05-26 Panafacom Ltd Data processing system
US4323963A (en) * 1979-07-13 1982-04-06 Rca Corporation Hardware interpretive mode microprocessor
JPS56157541A (en) * 1980-05-06 1981-12-04 Kinki Keisokki Kk Pseudo and multi central processor
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
JPS575153A (en) * 1980-06-10 1982-01-11 Nippon Telegr & Teleph Corp <Ntt> Information processor
BG33404A1 (en) * 1980-07-22 1983-02-15 Kasabov Registrating arithmetic device
US4375678A (en) * 1980-08-25 1983-03-01 Sperry Corporation Redundant memory arrangement providing simultaneous access
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
US4405983A (en) * 1980-12-17 1983-09-20 Bell Telephone Laboratories, Incorporated Auxiliary memory for microprocessor stack overflow
US4430708A (en) * 1981-05-22 1984-02-07 Burroughs Corporation Digital computer for executing instructions in three time-multiplexed portions
JPS57197653A (en) * 1981-05-29 1982-12-03 Mitsubishi Electric Corp Control device of microprogram
US4491937A (en) * 1982-02-25 1985-01-01 Trw Inc. Multiport register file
US4737933A (en) * 1983-02-22 1988-04-12 Storage Technology Partners CMOS multiport general purpose register
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4611278A (en) * 1983-04-01 1986-09-09 Honeywell Information Systems Inc. Wraparound buffer for repetitive decimal numeric operations
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system

Also Published As

Publication number Publication date
EP0154529A3 (en) 1988-03-16
DE3586603D1 (de) 1992-10-15
EP0154529A2 (en) 1985-09-11
US5179734A (en) 1993-01-12
JPS60217438A (ja) 1985-10-31
DE3586603T2 (de) 1993-01-28
EP0154529B1 (en) 1992-09-09

Similar Documents

Publication Publication Date Title
JP2571757B2 (ja) 信号処理装置及び該装置を使用する
CA1176757A (en) Data processing system for parallel processings
US3949379A (en) Pipeline data processing apparatus with high speed slave store
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US4297743A (en) Call and stack mechanism for procedures executing in different rings
US4118773A (en) Microprogram memory bank addressing system
US7873814B1 (en) Microcode based hardware translator to support a multitude of processors
US7000094B2 (en) Storing stack operands in registers
EP0185215A2 (en) Forth-like language microprocessor
US3988719A (en) Microprogrammed data processing systems
US4954943A (en) Data processing system
EP0138419A2 (en) Central processing unit for a digital computer
EP0476722B1 (en) Data processing system
EP0938703A4 (en) REAL TIME PROGRAMMING LANGUAGE ACCELERATOR
US4562538A (en) Microprocessor having decision pointer to process restore position
US4124893A (en) Microword address branching bit arrangement
US6718539B1 (en) Interrupt handling mechanism in translator from one instruction set to another
JPS5811654B2 (ja) デ−タシヨリシステム
US6691306B1 (en) Use of limited program space of general purpose processor for unlimited sequence of translated instructions
US4087857A (en) ROM-initializing apparatus
GB2024475A (en) Memory access controller
US4812971A (en) Central processing unit for a digital computer
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US6662298B2 (en) Method and apparatus for manipulation of non-general purpose registers for use during computer boot-up procedures

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees