JPH0710067B2 - ディジタルデータ通信システム - Google Patents

ディジタルデータ通信システム

Info

Publication number
JPH0710067B2
JPH0710067B2 JP10085A JP10085A JPH0710067B2 JP H0710067 B2 JPH0710067 B2 JP H0710067B2 JP 10085 A JP10085 A JP 10085A JP 10085 A JP10085 A JP 10085A JP H0710067 B2 JPH0710067 B2 JP H0710067B2
Authority
JP
Japan
Prior art keywords
bus
local
memory
register
data
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 - Lifetime
Application number
JP10085A
Other languages
English (en)
Other versions
JPS6187451A (ja
Inventor
ダブリユウ.パトリツク ミカエル
エム.ヒユーズ ジヨーン
ブツチヤナン ジヨージ
エス.ラフイツト デビツト
シヨア ブライアン
エム.ウオルターズ、ジユニア ドナルド
アール.キルブリユウ、ジユニア キヤレル
スク チヤン キ
ピー.サカライゼン ステフアン
エイ.スタムバウ マーク
エヌ.フアニニ オツト
Original Assignee
テキサス インスツルメンツ インコーポレイテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/567,599 external-priority patent/US4571675A/en
Priority claimed from US06/567,596 external-priority patent/US4646232A/en
Priority claimed from US06/567,598 external-priority patent/US4641308A/en
Application filed by テキサス インスツルメンツ インコーポレイテツド filed Critical テキサス インスツルメンツ インコーポレイテツド
Publication of JPS6187451A publication Critical patent/JPS6187451A/ja
Publication of JPH0710067B2 publication Critical patent/JPH0710067B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はループ通信システムに関するもので,とくにロ
ーカルプロセッサを含みかつホストプロセッサをデータ
通信ループと結合させるアダプタに係わるものである。
[従来の技術] トークンリング方式によるローカルエリアネットワーク
は,一方向信号伝送路に連結した多数のステーションの
間でデータの転送を行なうように機能するデータ通信シ
ステムで,各ステーションにはメモリおよび各種の周辺
装置をそなえたホストプロセッサが配置されて,独立し
たワークステーションとして機能するようになってい
る。このリングに対するアクセスは,フリー(使用中)
またはビジー(不使用)のトークン(送信許可証)を個
々のステーション間でリングを巡回させるトークンパッ
シングにより制御される。このようなトークンリング方
式としては,米国特許第3,597,549号にその初期の例が
記載されている。
またさらに進んだものとしては,いわゆるミュンヘンリ
ングがIBMにより開発されており,これについては「Pro
cedings of National Telecommunications Conferenc
e」(1981年11月,A.2.2.1−A.2.2.6頁)にその報告があ
る。さらにこのような通信方式に用いる標準プロトコル
に関しては,IEEEからトークンリングについての802.5号
提案や,欧州コンピュータ製造業者機構(European Com
puter Manufacturers Organization)による同様な報告
がある。
本発明は上記のようなトークンリング方式に用いる。ホ
ストプロセッサと信号伝送路との間を結合するアダプタ
に関するもので,このようなアダプタはホストプロセッ
サのCPU(中央演算装置)とは相対的に独立して動作す
ることが要求され,このため,ホストCPUの諸機能に対
する干渉ないしは妨害を最小限にとどめる必要がある。
さらにこの種のアダプタは,各種の相異るタイプのホス
トCPUと両立しうるものでなければならないため,構成
の異るワークステーションの各々に対して個々に特別の
アダプタを創出する必要はない。
上述のようなループ通信方式は,オフィスビルや製造施
設等の間に半永久的な配線を施すことにより,あらゆる
コンピュータ端末や,ワードプロセッサ,電話,バルク
データ記憶ステーション等々の間でこれを実現すること
が現在期待されており,従ってこれに用いるアダプタは
比較的低コストで,信頼性が高く,保守がほとんど不要
で,小型で,浪費エネルギが少なく,就中,各種相異る
システムとのインターフェースがとれるものでなければ
ならない。
[発明の目的] 故に本発明の目的は,ホストプロセッサシステムをトー
クンパッシング方式による通信ループに結合するのに用
いるデータ通信システム,とくに通信用アダプタを提供
することにある。本発明の目的はさらに,ホストシステ
ムとは独立した処理機能および制御機能を有するととも
に,各種の相異るホストシステムと両立して動作するよ
うにした。通信用アダプタを提供するすることにある。
さらに本発明の目的は,低コストで消費電力が少なく,
また信頼性が高くてかつ両立性に富んだトークンリング
型ローカルエリアネットワークシステム等用の通信用ア
ダプタを提供することにある。
[問題点を解決しようとするための手段] このような目的を達成すべく本発明においては,トーク
ンパッシング方式によるローカルエリアネットワーク型
の通信ループを用いることによって,閉ループ形式の一
方向信号伝送路と連結した多数のステーション間で通信
を行なうに当って,各ステーションにホストCPU,メイン
メモリおよびシステムバスを有する通常の形式のホスト
プロセッサを設ける。メッセージをステーション間で転
送する場合は,前記ホストCPUにより前記メインメモリ
にデータフレームを生成する。
メインメモリには,ホストCPUとは独立して動作するよ
うにした通信用プロセッサをシステムバスを介して接続
し,この通信用プロセッサはこれをローカルCPUと,ロ
ーカル読出し/書込みメモリとローカルバス等によって
構成し,転送すべきメッセージは,ホストCPUによる主
導のもとに,前記システムバスおよびローカルバスを介
して,該ローカル読出し/書込みメモリ内にコピーす
る。ローカルバスには送出/受取りコントローラを接続
してローカル読出し/書込みメモリを直接アクセスし,
当該ステーションがループにアクセスしたとき,すなわ
ちフリーのトークンを受け取った際には,上記送出/受
取りコントローラがそのメッセージフレームをローカル
読出し/書込みメモリから信号伝送路にコピーして,並
列ビット形式から直列ビット形式に変換する。同様にし
て,送出/受取りコントローラが当該ステーション宛の
メッセージを受取ったときは,該送出/受取りコントロ
ーラにより,このメッセージを直列ビット形式から並列
ビット形式に変換して,そのメッセージをローカルバス
を介してローカル読出し/書込みメモリ内にコピーし
て,ローカルCPUに割り込み,ついでメッセージフレー
ムをローカル読出し/書込みメモリからメインメモリに
コピーする。ローカルCPUはローカルバスによりアクセ
スされたROMからフェッチした(取り出した)命令を実
行し,かくてローカルCPUによる命令のフェッチ,送出
/受取りコントローラからの直接アクセスによるデータ
フレームの受渡し,およびホストCPUからのアクセスに
よる送り出しあるいは受取りメッセージフレーム等の動
作は,すべて前記ローカルバスの介入により行なわれこ
ととなり,該バスに対するアクセスを制御すべく,適宜
の優先順位による当該バスのアービトレーション(裁
定)が必要となる。
[実施例] 次に図面を参照して本発明の実施例を説明する。第1図
はトークンリング形式の通信ループを示すもので,複数
個所のノードすなわちステーション10が単一の一方向信
号伝送路11により相互に結合されている。各ステーショ
ン10にはホストプロセッサシステム12が接続されてい
る。これらプロセッサシステム12はいずれもたとえばCP
U,キーボード,ディスクメモリ,CRT表示装置,プリンタ
等をそなえたコンピュータワークステーションによりこ
れを構成することができる。ループ上の信号はシステム
全体の要求に基いて,以下記載するようにビットシリア
ルで,あるいはバントシリアルで,矢印で示すように一
方向に伝播される。このような通信ループの目的は個々
のプロセッサシステム間で高速度データ転送を行なうこ
とにあり,中央ないしマスターステーションを使用せ
ず,その代りにループ全体を構成する各プロセッサステ
ーションが互いに対等の関係で動作するようにしたもの
である。
第1図に示す通信ループは,個々のステーション10を単
一のビルやビル群,あるいは大学のキャンパス等の内部
で相互に連結するローカルエリアネットワークを形成す
るもので,信号伝送路11の長さは数キロメートル以内で
ある。この信号伝送路11としては対撚線等を用い,信号
速度をほぼ1ないし10Mb/secとし,また1ループ内に連
結されるプロセッサステーション10は最大100から200個
所とすることができる。
第1図の通信ループに対するアクセス許可はトークンパ
ッシング方式による制御原理を用いて行なう。このトー
クンパッシング方式はトークンと呼ばれる特殊なビット
シーケンスをあるステーションから次のステーションに
送出し,あるステーションで転送すべきデータがない場
合には,送出されてきたトークンを次のノードに移送す
るのみであるが,ループ内の他のステーション10に転送
すべきデータがある場合には,トークンが受信するまで
待機し,受信されたトークンを「フリー」(不使用)か
ら「ビジー」(使用中)に変更して当該データを次に転
送する。このデータ信号送出ステーションの入力にさき
に送出したメッセージが返ってくることにより,該メッ
セージがループを一巡したものと判断して,当該ステー
ションは再び「フリー」のトークンを送り出すのであ
る。このように構成した第1図の通信ループはトークン
リング型ローカルエリアネットワークに関するIEEE802.
5規格により動作するもので,この種のシステムについ
ては例えば「IBM Systems Journal」(Dixon,Strole,Ma
rkov;1983年第27巻第1号および第2号.47−62頁;198
3)および「IBM Jounal of Research and Developmen
t」(N.C.Strole;第27巻第5号.481−496頁;1983年9
月)等にその記載がある。
各ステーション10はその入力13に信号伝送路11からのデ
ータを受け取って,出力14から次のステーションにその
データを送り出す。データは信号の時間差方式を用いた
マンチェスター符号化手法に基くフォーマットに従って
対撚線上を転送されるが,このようなデータは第1a図お
よび第1b図に示すように,それぞれが8ビットからなる
ビット群,すなわちオクテットのシーケンスからなる。
フリーのトークンは第1a図に示すように,1オクテットの
開始デリミッタと、2オクテット長の物理コントロール
フィールドと,これに引き続く終了デリミッタ(区切符
号)とからなり,物理コントロールフィードは,ビジー
に対しては1,フリーに対しては0の「トークン」のほか
に,アクセス許可の優先レベルを指定する優先コードを
含む。また開始および終了デリミッタは,マンチェスタ
ー符号化手法におけるコードバイオレーションとしての
ビットを含むもので,これらデリミッタはアドレスフィ
ールドやデータフィールドでは現われない。
第1b図に示すデータフレームは,開始デリミッタと,図
示の例ではビジーとするトークンを含む2オクテット長
の物理コントロールフィードとからなり,次のフィール
ドは6バイト長の送出先アドレスである。この場合,1ル
ープあたり最大256個所のステーションにつき1バイト
あれば足りるが,これよりはるかに多数のアドレスを使
用する場合に備えて,予備のバイトをプロトコルに加え
たものである。ついで6バイトのソースアドレスフィー
ルドが続き,このソースアドレスフィールドにより送出
しステーションのアドレスを知らせる。次はデータフィ
ールドで,このフィールドの長さは送出すべきデータの
バイト数により異なり,平均的なメッセージの場合はAS
CIIコードで恐らく200から300バイトであるが,場合に
よっては1フレームあたり数千バイトを送ることも可能
である。データフィールドに引き続き,4オクテットのフ
レームチェックシーケンスが現われる。このフレームチ
ェックシーケンスは,アドレスやデータの誤りをチェッ
クするためのCRCコード(巡回冗長符号)を含むもの
で,このチェック動作は受信ステーションで行なわれ
る。フレームの最後は終了デリミッタと,この終了デリ
ミッタに続く物理コントロールフィールドで,このコン
トロールフィールドはフレームの通過にともなって受信
ステーションにより変更されたビットを含み,これらビ
ットによって,アドレスが認識されたこと,フレームが
コピーされたこと,および送出されたデータ中に誤りが
検出されたかどうか等を知らせる。
送信ステーションは,これが送り出したフレームの先頭
がその出力に受信されるまでは,ループにフリーのトー
クンを重ねて挿入することはなく,開始デリミッタや物
理コンローラフィールド,送信先のアドレス,ソースア
ドレスを認識し次第,フリーのトークンを送出し,送信
済みのフレームの残りの部分を剥ぎ取る。送信および受
信ステーション以外のステーション10は,いずれも受け
取ったフレームを次のステーションにパスするのみで,
そのコピーは行なわない。データストリームに対して各
ステーション10が実行する動作は次の通りである。
a)送信先のアドレスが当該ステーションのアドレスで
ない場合は,受け取ったデータフレームをコピーせずに
次のステーションに引き渡す。
b)送信先のアドレスが当該ステーションのアドレスで
ある場合は,受け取ったデータフレームをコピーして次
のステーションに引き渡す。
c)受け取ったデータフレーム(トークンや物理コント
ロールフィールド等)を次のステーションに伝送する前
に,そのビットの状態を変更することができる。
d)各ステーション自体でデータを創出して他のステー
ションに伝送することができる。
e)データを送出したステーションは,そのステーショ
ンが前に送出したメッセージフレームを,これがリング
を一巡した後,リングから除外ないし剥ぎ取る。データ
を創出したステーションは,開始デリミッタや物理コン
トロールフィールド(ビジーのトークンを含む)および
アドレスをパスした後,フリーのトークンをもう一度送
出する。
次に第2図において,各ステーション10はリングインタ
ーフェース15を有し,このリングインターフェースによ
りライン13の入力信号を内部処理レベルの電圧に変換し
て,ループ信号から信号クロックφsを回収する。リン
グインターフェース15はさらにライン14′に現われる送
信信号にもとづいて,適当な電圧/電流レベルの出力信
号を出力ライン14に供給する。ライン13′に現われる出
力シリアルデータは,上記(a)ないし(e)の各機能
を行なうべくワンチップ集積回路として構成したプロト
コル処理装置16に出力する。この出力シリアルデータ
は,レジスタ17で並列データに変換されるが,該シリア
ルデータをシフトレジスタ17で並列データに変換しかつ
これをコピーする際は,FIFO(First−In First−Out)
バッファ18により入力データをデータバス19と結合させ
る。
メッセージプロセッサチップ20は同じくワンチップ集積
回路として構成され,ローカルCPU21およびローカルRAM
22をそなえたもので,ローカルアドレス/データバス23
およびローカルコントロールバス24を介して,直接メモ
リアクセス方式(DMA)によりRAM22に入力するデータを
受け取る。メッセージプロセッサ20はさらに汎用型タイ
マ25およびバスアービトレータ(またはアービタ)26を
有し,これらはいずれもローカルバス23およびコントロ
ールバス24に接続されている。メッセージプロセッサ20
のローカルCPU21のプログラムは,ローカルバス23から
延長したアドレスバス28とデータバス19によりアクセス
されるROM27内に含まれている。なおこのROM27は,プロ
トコル処理装置16のチップに設けてある。
入力データは上述のように直接メモリアクセス方式によ
りRAM22にコピーされた後,システムインターフェース
チップ30を介して同じくDMAにより,ホストプロセッサ1
2内にコピーされる。このシステムインターフェースチ
ップ30もワンチップ集積回路として構成されている。
上記ホストプロセッサ12はホストCPU31,主メモリ32(RA
M),および例えばCRTやキーボード,ディスク駆動装置
等に接続された各種周辺装置33からなり,これらはいず
れもアドレス/データバス34およびコントロールバス35
により相互に接続されている。なおホストCPU31は,イ
ンターフェースデバイス30をマイクロプロセッサ68000
または8086の制御およびデータフォーマット内蔵型とし
て,これらマイクロプロセッサのいずれかにより構成す
ることができる。
このように構成したホストプロセッサ12はまず送信先の
アドレスや,そのプロセッサ12自体のアドレスおよびメ
ッセージとして送出したいデータバイト等を含むメッセ
ージフレームを,そのメインメモリ32で形成して通信ル
ープ内の他のホストプロセッサ12に送り出す。このメッ
セージフレームはシステムインターフェース30およびロ
ーカルバス23を介してDMA(もしくはメモリマップトI/
O)によりローカルRAM22内にコピーされる。上記メッセ
ージフレームは,フリーのトークンがプロトコル処理装
置16のデコーダ36に入力して認識されるまでローカルRA
M22内に保持され,デコーダ36がそのようなトークンを
認識すると,同じくプロトコル処理装置16内に設けたコ
ントローラ群がローカルバス23,データバス19,FIFOバッ
ファ37を介してこのローカルRAM22からDMAにより当該フ
レームを受け取る。FIFOバッファ37から出力されたデー
タは,シフトレジスタ38によってシリアル化され,マル
チプレクサ39を経由して出力ライン14′に供給される。
他方,図示のステーションにライン13′の入力データを
コピーしない場合は,該データはバス19やバス23にも,
ローカルRAM22にも入力せず,ただちにマルチプレクサ3
9を経て出力ライン14′に導かれる。
[ローカルCPU] 本発明による内部テスト機能つきマイクロプロセッサ
は,これをいろいろな構成とすることができるが,以下
に記載する実施例においては,第2図に示したシステム
で用いたローカルCPU21をそなえたチップ20により構成
する。
このマイクロプロセッサ20は,後でさらに詳述するよう
に,ローカルCPU21に読出し書込み用のローカルスタチ
ックRAM22を組み合わせて用いたワンチップMOS/LSIデバ
イスであり,これらCPU21およびRAM22は,16ビット並列
双方向多重化アドレス/データバス23およびコントロー
ルバス24により,相互に接続されている。このプロセッ
サ20はさらに適当な電源電圧端子およびクロック端子を
そなえており,例えば単一の+5ボルト電源Vccおよび
接地Vssに接続するとともに,デバイス端子に水晶発振
子を接続してオンチップオシレータの周波数を制御する
ことにより,デバイスのローカルタイミングを得る等と
する。
ただし本発明は,上記以外のいろいろなワンチップマイ
クロプロセッサやワンチップマイクロプロセッサを用い
た各種デバイスや,あるいは,上記双方向バス23の代り
にアドレスおよびデータバスを別々に用いたマイクロプ
ロセッサ等にも,適用し得るものである。
第2図のローカルCPU21の機能は,ほぼ在来の中央演算
装置一般と同様である。すなわち,まずバス23,28を介
してROM27にアドレス信号を送って該ROM内のアドレス位
置からバス19,23を介して命令を受け取り,しかるの
ち,受け取った命令を実行する。命令を実行するにあた
っては,RAM22に記憶されているオペランドを指定するア
ドレス信号をバス23を介して送り出すサイクルや,該バ
スを逆方向に伝送されてくるデータを受け取るサイクル
や,さらにはバス23における各サイクル期間中に,デー
タに先行するアドレスを用いてRAM22に演算結果を書き
込むサイクル等,数サイクルのマシンサイクル(クロッ
クや水晶発振子等により生成する)が通常必要である。
以下の記載ではバス23にはCPU21から15ビットのアドレ
スを印加するものとし(16番目のビットは0に配線して
アドレスする)。第2a図のメモリマップに示すように,
この15ビットアドレスによりRAM22およびROM27における
メモリの64キロバイトないし32キロワードを直接アドレ
スする。メモリにおける各16ビットワードは8ビットの
バイト2個からなり,従ってCPUは都合64キロバイトを
アドレスすることとなる。
第2図に示すローカルCPU21は,そのCPUの使用するレジ
スタファイルないし作業レジスタがRAM22内に内蔵され
た,メモリ−メモリ型のアーキテクチャを用いる。この
RAM22はプログラムあるいはデータ記憶用,または第2c
図に示すように「ワークスペース」用に用いることがで
きるもので,各ワークスペースの最初のワードはワーク
スペースポインタ(つねに偶数番アドレスとする)によ
りアドレスし,残りの14個のワードはワークスペースポ
インタ.プラス02からIE(4ビット2進アドレス)によ
りアドレスする。
なお,制御ライン24,16ビットステータスレジスタST
(第3図および第3a図)用のステータスビット,および
割込みレベルの定義は,米国特許第4,402,044号中に掲
げられた表に示されたものと同様である。また,本例に
おけるマイクロプロセッサは,現在のマイクロプロセッ
サのうち,本発明を適用し得るものの単なる一例を示し
たものにすぎないことは,言うまでもない。
第2図のCPU21は付表Aおよび付表Bに記載した命令セ
ットを実行するが,このような命令のほかに,あるいは
これらの命令の代りに,他の命令セットを実行するよう
にしてもよい。付表AおよびBに示す命令セットは,例
えばテキサスインスツルメンツ社(以下TI社という)の
マイクロプロセッサ,部品番号TMS9900の命令セットと
同様のものであるが,この命令セットについては「9900
Family Systems Design」(米国テキサス州(郵便番号
77001).ヒューストン.M/S6404,私書箱1443,TI社 197
8年刊.「Library of Congress Catalog」No.78−05800
5にくわしい。
CPU21のプロセッサアーキテクチャを第3図のブロック
図に,またその一部を拡大して第3a図に示し,さらにそ
のチップのレイアウトを第4図および第4a図に,論理回
路を第5a図ないし第5g図および第6図にそれぞれ示す。
このCPU21は概略的には,算術論理回路すなわちALU40に
各種レジスタ,制御素子,データ伝送路,論理素子類を
組み合せてなるものである。
上記ALU40は16段の並列2進加算論理段からなり,これ
ら加算論理段が該プロセッサの演算部として機能する。
このALU40は,16ビット入力10Aおよび同じく16ビット入
力10Bを受け取って,16ビットの並列出力10Cを出力す
る。16ビット入力10Aは16ビットの並列Aバスから供給
される。これら内部バス上のデータはアクチブ状態で低
レベルとなるもので,バスデータを技術的に正確に表わ
すためには,たとえば符号AについてはA,A−,MAと表わ
すことができるが,ここでは説明および表示を簡単にす
るため,もっぱらAのみで表わすこととする。Aバスは
数個のデータ源のいずれかからデータを受け取るが,そ
の選択はライン41のマイクロコード制御コマンドによっ
て行なう。同様にして,入力10Bは16ビット並列Bバス
から供給され,このBバスも数個のデータ源のいずれか
から,上記ライン41のマイクロコード制御コマンドによ
ってデータを選択して受け取る。ALU40の出力10Cは,同
じくライン41のマイクロコード制御コマンドによる制御
のもとに,PバスもしくはEバスに伝送される。このよう
なALU40は,CPU21におけるマイクロ命令を実行するのに
必要な算術論理機能,すなわち加算,減算,AND処理,OR
処理,排他的OR処理,補数演算等,付表Aに列挙した命
令を実行するのに必要な諸機能をすべて行なうものであ
る。
CPU21はさらに上記ALU40と関連するレジスタを多数そな
えているが,これらレジスタのうちプログラマが係わる
ことのできるのは,プログラムカウンタレジスタすなわ
ちPCレジスタ,ワークスペースポインタレジスタすなわ
ちWPレジスタ,および前記ステータスレジスタSTの3個
のみである。これら以外の内部レジスタについては,命
令の取得および実行中は,プログラマは介入することが
できない。
プログラムカウンタPCは15ビットカウンタで,現在実行
中の命令に引き続く次の命令のワードアドレスを内蔵し
ている。これら15段はそれぞれ16版目のビットを0に配
線した左づめとし,またメモリ27(ローカルROM,第2
図)の命令をワード境界に押し込めることにより1バイ
トのアクセスが行なわれないようにするとともに,偶数
番目のアドレス(ワード)のみ使用しうることとする。
CPU21はプログラムカウンタPC内のアドレスを用いて次
の命令をROMメモリからフェッチし,ついで新しい命令
を実行中にプログラムカウンタPCが歩進する。この場
合,CPU21における現在の命令によってプログラムカウン
タPCのカウント内容が変更されると,この変更後のカウ
ント内容によって指定される位置に,プログラムの分岐
が起こる。プログラムカウンタPCのカウント内容は,割
込みプラス単純な分岐ないしジャンプ命令等,どのよう
なコンテキスト(即ち,プログラムの分脈に依存する)
スイッチング動作によっても変更される。このようなプ
ログラムカウンタPCに対する入力は,ラインEPCを介し
てEバスから行なわれ,またそのカウント内容はライン
PCBを介してBバスに,あるいはラインPCPを介してPバ
スに出力される。このプログラムカウンタPCによる信号
の出入りもすべて,前記ライン41のマイクロコード制御
コマンドによる制御のもとに行なわれることは言うまで
もない。プログラムカウンタPCは2進加算回路を内蔵し
ており,同じく上記マイクロコード制御コマンドによる
制御のもとに,この進加算回路により15ビットレジスタ
のカウント内容に適正なタイミングで1を加える。
前記ステータスレジスタSTは16ビットレジスタで,比較
動作の結果を記憶してステータスの情況を明示し,割込
みマスクレベルを割込み優先回路に供給する。このステ
ータスレジスタSTにおける16個のビット位置の各々は,C
PU21内の特定の機能ないしは状態を表わすもので,この
ような方式の一例としては,前掲米国特許第4,402,044
号に3ビット位置割当て方式についての記載がある。ま
たこの割当て方式に使用する命令としては,先行要件の
チェックを行うのにステータスレジスタSTを用いる命
令,および該ステータスレジスタST全体に新しいパラメ
ータセットを入力するのに該ステータスレジスタSTを使
用する命令がある。ステータスレジスタSTの記憶内容
は,割込みによっても変更を受ける。なお,後述するよ
うにステータスレジスタSTの16ビットは,マイクロコー
ド制御コマンドライン41のコマンド信号にもとづいて,
ラインESTを介してEバスから入力され,あるいはライ
ンSTEを介してEバスに出力される。
CPU21は内部ハードウエアとしてのレジスタの代りに,
そのRAM22にワークスペースと称する複数のワードブロ
ックを用いて命令オペランド操作を行なう。各ワークス
ペースは第2c図に示すように,ローカルRAM22内で他の
用途用に予約されていない適当な部分に,16語の互いに
隣接するメモリワードを占有しており,個々のワークス
ペースレジスタにはデータもしくはアドレスを格納し
て,オペランドレジスタ,アキュミュレータ,アドレス
レジスタ,あるいはインデックスレジスタ等として機能
する。このように構成した16ビットワークスペースをメ
モリアドレススペースの32キロワード内に多数個設ける
ことにより,プログラムのフレキシビリティを高めるこ
とが可能となる。これらワークスペースのローカルRAM2
2内における位置を特定すべく,ワークスペースポイン
タWPと称するハードウエアレジスタを用いる。このワー
クスペースポインタWPは第2c図に示すように,16ビット
ワークスペース内の最初のワードのメモリアドレスを記
憶する15ビットレジスタ(16番目のビットすなわちLSB
を0に配線して左づめとする)である。
CPU21は,レジスタ番号RをワークスペースポインタWP
の内容に2回加えて対応するワードのメモリフェッチを
行なうことによって,第2c図に示すワークスペース内の
いずれかのレジスタをアクセスする。この場合,16番目
のビットが0であるため,上記のような加算操作はワー
クスペースポインタWPにレジスタ番号の2倍を加えるこ
とと等価である。第2c図はワークスペースポインタWP
と,メモリ内におけるそのワークスペースポインタと対
応するワークスペースとの間の関係を示したものであ
る。WPレジスタは制御ROMからのライン41のマイクロコ
ード制御コマンドによる制御のもとに,ラインWPBを介
してその内容がBバスに出力され,あるいはラインDIWP
を介してDIバスから入力される。
上述のようなワークスペースの概念は,サブルーチンや
あるいは割込みの場合等,プログラムを他のプログラム
に変更するコンテキストスイッチング動作を行なうのに
有効なものである。すなわち,従来のマルチレジスタ型
CPUにおいては,コンテキストスイッチングを実行する
ためには,レジスタのファイル内容の少なくとも一部を
記憶してリロードする必要があり,このためには各メモ
リサイクルで各ワードの格納フェッチを行なわなければ
ならない。本発明におけるCPU21は,単にワークスペー
スポインタWPの内容を変更するだけで,こうした動作と
同等の結果を得ることができるのである。すなわち本発
明においては,記憶サイクルを3サイクルとフェッチサ
イクルを3サイクルそれぞれ用いることによって,プロ
グラムカウンタPC,ステータスレジスタST,ワークスペー
スカウンタWPの交換を行なうだけで,コンテキストスイ
ッチングを完全に実行することが可能である。コンテキ
ストスイッチングを行なった後は,新たなルーチン用に
ローカルRAM22内の新しい16ワードワークスペース(第2
c図)の開始アドレスがワークスペースポインタWPに格
納されている。当初のコンテキストを再格納する場合
は,それに応じた時間の節約が得られることは言うまで
もない。なおコンテキストスイッチングを行なわせるの
に必要なCPU21の命令は,付表Aに示したように「ワー
クスペースポインタをブランチしてロード」(BLMP),
「サブルーチンからリターン」(RTWP),「拡張動作」
(XOP),などであり,これらの命令はデバイス割込
み,アリスメチックオーバーフロー割込み,その他CPU
を強制的にサービスサブルーチンにトラップさせること
等により,コンテキストスイッチングを行なわせる命令
等に加えて発せられる。
CPU21内にあってユーザー(プログラマ)の関与しえな
い内部レジスタとしては,メモリアドレスレジスタ,す
なわちMAレジスタ,データレジスタすなわちDレジス
タ,およびKレジスタ等がある。Dレジスタは並列ライ
ンDSを介してスワップバスに入力として接続され,ライ
ンSKに出力されるスワップバス出力は,制御ROMからラ
イン41を経由して供給されるマイクロコード制御コマン
ドによる制御のもとで,Kレジスタ(Kラッチ)に入力さ
れる。このDレジスタは主としてデータ出力ラッチとし
て機能するレジスタで,EバスからラインEDを介して信号
を入力し,出力は16本の並列ラインDDIを介してDIバス
に供給される。ALU40の出力10CからEバスに,さらにラ
インEDを介してDレジスタに,さらにラインDDIを介し
てDIバスおよびAバスを介して該ALUのA入力に通ずる
データ伝送路は,たとえば割り算ルーチンに有効な伝送
路であるが,しかしながらCPU21の出力データは主とし
てEバスからDレジスタに,ラインDSを介してスワップ
バスSに,ライン43を介して16個のアドレス/データバ
ッファ42に伝えられ,かくてローカルアドレス/データ
バス23に入力する。
この場合,スワップバスSへのデータの転送は,実行中
のバイト動作のような要因に応じてストレートに,ある
いはスワップして行なうことができる。このような動作
もまた,前記ライン41のマイクロコード制御アドレスに
よる制御のもとで行なわれることはいうまでもない。
上記アドレス/データバッファ42は通常の双方向トライ
ステートバッファ16個により構成され,各々の入出力端
子がローカルバスライン23の一本に接続されている。こ
れらバッファは常時はライン44を介してPバスからアド
レスを,あるいはライン43を介してデータをそれぞれ受
け取ってバス23に出力する。またCPU21への出力として
は,プログラムまたはデータワードがライン43を経由し
てスワップバスSに,さらにラインSKを介してKレジス
タにそれぞれ与えられる。またPバスに対する入力は,
上記ライン41のマイクロコード制御アドレスによる制御
のもとに,KレジスタからラインPKを介して行ない,この
Pバスを介してKレジスタから出力を得ることも可能で
ある。
ローカルメモリ22またはROM27へのアドレスは通常,Pバ
スを介してCPU21から送出され,このPバスは前記MAレ
ジスタから16本のラインMAPを介して入力を得る。このM
Aレジスタのビットは並列ラインMABを介してBバスに,
さらにALU40のB入力10Bに転送することも可能であり,
あるいは前記同様,ライン41のマイクロコード制御アド
レスによる制御ものとに,ラインEMAを介してEバスか
ら,あるいはラインKMAを介してKレジスタから,それ
ぞれ入力を受け取る。
ユーザーにとって関与しえない内部レジスタとしてはさ
らに,一時記憶レジスタすなわちTレジスタがある。こ
のTレジスタはALU40から16ビット並列出力10Fを受け取
って,三種ある経路のうちいずれかを通ってBバスに出
力する。
すなわち,ラインTBを介して直接Bバスに,伝送路TLB
を介して左にシフトしてBバスに,あるいは伝送路TRB
を介して右にシフトしてBバスに,それぞれ出力する。
Tレジスタはさらに,ALU40へのB入力10Bを伝送路BTを
介してクロックサイクルの3/4の遅延をもって受け取る
こともできる。かくてTレジスタは,掛け算および割り
算用マイクロコードを実行するうえで重要な機能を果す
ものである。
掛け算および割り算を行なうレジスタとしてはさらに,M
Qシフトレジスタ(マルチプライヤ/クオーシェントシ
フトレジスタ)を用いる。このMQレジスタは,ライン41
のマイクロコード制御アドレスにより右シフトまたは左
シフトを行なう機能をもつもので,16ビット並列ラインA
MQおよびDIMQを介してAバスから,あるいはラインMQE
またはラインMQBを介してBバスから,それぞれ入力を
受け取る。
さらに命令レジスタIRは現在の命令を記憶する通常の機
能をもつレジスタで,この命令は所定のマイクロコード
ステートタイム(マシンサイクル)期間中に実行され
る。この命令レジスタIRは,ライン41のマイクロコード
制御アドレスによる制御のもとで,ラインDIIRを介して
DIバスから入力を受け取ったり,あるいはラインIREを
介してEバスに出力したりする。該レジスタIRに入力す
る命令の各種フィールドは,2ビットおよび4ビットの結
線IR2,IR4を介してAバスにも入力することが可能であ
る。ただし各サイクル期間中には,命令レジスタIRの記
憶内容は,16本の並列ラインIRO〜IR15を介してエントリ
ポイントおよびマイクロコントロールゼネレータ回路,
その他もろもろの制御回路等に転送される。
ライン41のマイクロコード制御アドレスはROM45で生成
される。このROM45は本例ではALU40および上記各種レジ
スタの高ビット側領域45Hと低ビット側領域45Lの2領域
に分割されているが,16ビット全部ではなくビット列の
一部分,すなわち高位のビット部や低位のビット部のみ
に用いるマイクロコード制御アドレス41(以下ライン41
のみならず,これらラインを介して伝送される制御アド
レスにも符号41を充当する)が多数あるため,ROM45をこ
のように2つの領域に分割することにより,スペースの
節約をはかることが可能である。このROM45の各領域に
はXアレー45XおよびY選択アレー45Yが形成され,各制
御コマンドライン41に接続したバッファ45BにY選択ア
レー45Yからの選択出力が入力し,これらラインに制御
アドレス41を供給する必要が生じ次第,クロックや論理
信号を導き入れる。マイクロコード制御コマンドライン
41は本例では130本とするが,使用する命令セット(付
表A)に応じて,上記領域45H,45Lに至る46a,46bの8ビ
ットアドレスのアドレッシングレンジ(256)の範囲内
で,適宜選択することが可能である。ライン46a,46bに
おけるこれら8ビット制御ROMアドレスのうち最初のア
ドレスは,エントリポイントロジックにより生成され,
後続のアドレスはマイクロジャンプ(飛越し)回路によ
り生成されて,与えられた命令を実行する。マイクロジ
ャンプアドレスは,制御ROM45の出力41を受け取る8本
のライン47で生成され,次のステート用のジャンプアド
レスを生成することができるもので,ライン47のマイク
ロジャンプアドレスは論理アレー48に供給される。この
論理アレー48は実行エントリポイントアレー49Eもしく
は発信源/送信先アドレスエントリポイントアレー49A
から受け取った入力からエントリポイントを生成するこ
とができる。さらにグループ検出回路50には,前記命令
レジスタIRからの16ビット命令ワードが,ステータスレ
ジスタSTその他の制御部からのステータスビットととも
に入力して,上記エントリポイントアレー49A,49Eに対
する二つの入力信号,すなわち,まず第一にグループ確
認信号を,次にフィールド信号を発生する。この場合,
グループは付表Bに示すようなOPコードの左端の1に引
き続く3ないし4ビットにより生成する。また制御ROM4
5へのライン46a,46bのアドレスも8ビットラッチ51に保
持され得るため,掛け算あるいは割り算命令の場合と同
様,同じステートが再実行される。このためには4ビッ
トのステートカウンタSCを設けて,これにより16回以下
のマイクロコードステートの回数をカウントし,該ステ
ートカウンタSCのオーバーフロー出力によりアドレス保
持ラッチ51の解除を制御することができる。かくて命令
レジスタに入力されてグループ検出回路50,論理アレー4
8,エントリポイントアレー49A,49Eを介してエントリポ
イントを生成する命令により,プロセッサの標準的な動
作(後述するテストモードと対比される)が制御され
る。このようにして生成されたエントリポイントはアド
レスライン46にエントリーされた制御ROM45の開始アド
レスとなる。この開始アドレスにより制御コマンドライ
ン41に入力されるマイクロコード制御アドレスの組合せ
セットが特定され,これらライン41のうちあるものはア
クチブ状態となり,他の大部分は非アクチブ状態にとど
まる。上記アドレスはさらにライン47にジャンプアドレ
スを生成して次のマイクロコードステート用の制御ROM
アドレスを決定するか,あるいは次のステートを再びエ
ントリポイントとするか,またはアドレス保持ラッチ51
により同一のステートとする。与えられた命令に対して
必要な最後のステートに達すると,命令レジスタIRに次
の命令が入力されて次のエントリポイントが生成される
こととなる。
CPU21に入力した割込みコードは割込み制御回路52に加
えられる。この割込み制御回路52にはステータスレジス
タSTからの12〜15番目のビットも入力して割込みマスク
を生成し,外部からの割込みコードと比較する。
制御バスライン24(第2図)はメモリコントロールゼネ
レータ回路53に接続され,このメモリコントロールゼネ
レータ回路53は前記ROM45からのライン41およびライン2
4の信号のほか,チップ内の諸条件に応答してCPU21内外
の必要な制御個所に信号を供給する。
本発明によるシステムの好ましい特徴のひとつはテスト
を行なう方法にあるが,これは,上記ALU40およびこれ
に関連する上記レジスタK,D,MA,PC,WP,T,MQ,ST,IR等が
すべて,1個のMOS/LSIチップに第4a図に示すような規則
的な線型パターンとして形成されているということであ
る。これらレジスタおよびALUは,いずれもメモリセル
様のパターンに配列された16個のビットないし段からな
り,レジスタを構成するビットは並列のラインに,また
バスはこれらラインと直行するラインにそれぞれ配列さ
ている。第3図に示したA,B,DI,EおよびPは(第3図に
示すように各レジスタの側方ではなく)ALU40や各レジ
スタを構成するセルの上部に,それぞれ16本の金属条領
域として配列されている。また前記制御コマンドライン
41はすべて金属バスに対して直交する方向に配列されて
おり,これらラインはいずれもCPU21のALU40および各レ
ジスタを形成するトランジスタの制御用ゲートとして機
能するものである関係上,ポリシリコンにより条線状に
形成されている。また,制御ROM45において制御信号を
生成するのに必要なスペースは,制御される回路に必要
なスペースと略々同等としてある。このようにレイアウ
トを構成することは,これをたとえば前記米国特許第4,
402,044号の「ワイドワード」制御ROMないしデコーダと
ともに用いた場合には,この制御ROMの側方に密着して
配置することができるため,配線用のスペースをほとん
ど無駄にすることがないという点で,すこぶる好都合で
ある。かくてラインA,BDI,E,P等および制御コマンドラ
イン41のほぼ全部を,チップの機能領域ないしセルの上
部あるいは下部に配線することができるため,シリコン
上に不使用部分が残ることがなく,また90°で屈曲する
個所はほとんどすべて,配線部ではなく機能素子として
のセル上に形成してある。第4a図はALU40とレジスタ群
の微小部分を拡大して示したもので,ほぼ上記米国特許
第4,055,444号の教示にもとづいて形成した。Nチャン
ネルシリコンゲートMOSデバイスに用いた金属バスライ
ンおよびポリシリコン制御コマンドライン41の規則的な
パターンを示す。
なお,前述した接続ライン,たとえばラインKDI,ED,EM
A,MAB,DINP等は,その大部分が物理的な線あるいは線状
の導体で形成されているものではなく,実際には単に第
4a図の金属バスラインに沿う金属−シリコン接触領域と
して形成されているものである。
[ALUおよびレジスタ回路] 次に第5a図ないし第5g図を参照して,前記ALU40および
これに関連するレジスタ群の回路の詳細につき説明す
る。これらの回路は全体として,第3図に示したように
結合配置されるもので,第5b図ないし第5g図に示す各回
路はいずれも,第3図の構成におけるALU40およびレジ
スタ群の各々の16ビットのうち1ビット分にほぼ相当す
るものである。残りの15ビットに相当する回路の細部
は、若干の例外を除いていずれも図示(第5b図−第5g
図)のものとほぼ同等である。
ALU 第5e図において,ALU40の16ビットのひとつはAバスに接
続された入力10Aと,トランジスタ10a,10bを介してEバ
スおよびPバスに接続された入力10Bを有する複合論理
回路からなる。トランジスタ10a,10bはそれぞれ「H1ALT
E」,「H1ALTP」で示す制御コマンドライン41にそのゲ
ートが接続されている。なお,本例におけるマイクロコ
ードコマンドライン41については,まず(a)たとえば
「H1」によりクロックの位相「半相1」等を,(b)次
にたとえば「AL」(ALUを表わす)等の発信源を,さら
に(c)「T」または「F」によりそれぞれ「・・・
へ」または「・・・より」を,最後に(d)「P」ある
いは「E」でそれぞれPバスまたはEバス等の送信先を
表すものと約束する。このような約束を用いることによ
り,たとえば「H1ALTP」は当該制御コマンドライン41は
「H1」すなわち「半相1」のクロック期間でオンとな
り,かつALU40からPバスに導通させるラインであるこ
とを意味することとなる。ラインDIAおよびトランジス
タ10cを介してDIバスからAバスに供給される入力は,
「H1クロックでDIからAへ」を表わすコマンド「H1DIT
A」により制御される。図示のビットのキャリーインお
よびキャリーアウトはラインCin,Coutで行なわれ,これ
らラインはALU40の図示のビット構成段の両側のビット
構成段にそれぞれ接続されている。キャリーアウトライ
ンCoutは,クロックQ1(第2d図参照,以下同)でトラン
ジスタ10dにより論理1すなわちVccにプリチャージさ
れ,トランジスタ10eによってクロックQ1が低レベルと
なった後,条件つきでディスチャージされる。このトラ
ンジスタ10eのゲートは,制御コマンドライン41のひと
つに現われるコマンド「S1STOPG」入力(クロックS1で
生成停止を意味する)にもとづいて,NORゲート10fによ
り駆動される。このNORゲート10fの出力は,キャリー生
成条件でコマンド」STOPG」(生成停止)がアクチブと
なったときに,無条件で論理0となる。接続点10gはク
ロックQ1で論理1にプリチャージされ,トランジスタ10
iを介して接続点10hと導通する。このトランジスタ10i
のゲートには反転A入力が印加される。同様にキャリー
伝播回路における接続点10jはクロックQ1で論理1にプ
リチャージされ,トランジスタ10k(同じく上記反転A
入力が印加される)を介して接続点10mと導通する。接
続点10h,10nはクロックQ1で論理1にプリチャージさ
れ,反転B入力および再反転B入力により駆動されるト
ランジスタ10oと,ALU1〜ALU4で示す4本の制御コマンド
ライン41(すべてクロックH2でオンとなる)により駆動
されるトランジスタ10pとからなる複合NAND/NOR論理回
路により,条件つきでディスチャージされる。制御信号
ALU1〜ALU4は,付表Cに記載したALUの動作を司るもの
である。制御コマンドライン41のコマンド「H3LOGIC」
は算術論理制御信号で,このラインが高レベルのとき
は,ALU40はキャリーインラインCinをトランジスタ10qを
介して無条件に接地させることにより論理機能を行なう
が,該ライン41が低レベルにあるときは,キャリーイン
ラインCinは排他的NOR回路10pの一方の入力と導通す
る。このときNORゲート10pの他方の入力には上記接続点
10jからの反転伝播信号が印加される。
なお,ALU40のLSBへのキャリー入力もマイクロコード制
御コマンドライン41により生成され,コマンド「C1FC
O」すなわち「キャリーアウトからキャリーインへ」の
制御信号によって,直前のステートのMSBからのキャー
リアウトラインを現在のステートのLSBにおけるキャリ
ーインラインと導通させるとともに,「STCIN」制御信
号により,ステータスビット3をキャリーインラインと
接続させ,さらにCin制御信号により,LSBに無条件キャ
リーインを生成する。
ワークスペースポインタレジスタ ワークスペースポインタレジスタWPの詳細な回路構成を
第5c図の下部に示す。このワークスペースポインタレジ
スタWPは二つのスタチックインバータ段WPaを有し,そ
の入力接続点WPbはクロックH2時のフイードバック出力
に接続されている。この入力接続点WPbはトランジスタW
Pcを介してDIバスからロードされ,トランジスタWPcの
ゲートにはコマンド「H4WPFDI」(クロックH4でDIからW
Pへ」が入力する。インバータ段WPaの中間接続点WPdは
インバータWPeおよびトランジスタWPfを介してBバスに
接続され,トランジスタWPfのゲートにはコマンド「H1W
PTB」(クロンクH1でWPからBへ)が入力する。
レジスタWPはワークスペースポインタとして機能するほ
か,付表Aの典型的な命令の発信源および発信先のアド
レスを発生する際は,ALU40に対するB入力としても用い
られる。コンテキストスイッチング時には,メモリ22に
書込みを行なうことによりレジスタWPはセーブされ,こ
の動作のための伝送路は,ALU40のB入力とPバスとによ
り形成される。なお,レジスタWPのロードはDIバスを介
してチップ外から行なわれる。
プログラムカウンタおよびインクリメンタ 同じく第5c図に示すように,プログラムカウンタPCは一
対のスタチックインバータPCaを有し,その入力接続点P
CbはクロックQ2でトランジスタPCdを介して入力接続点P
Ccと導通する。この入力接続点PCcとトランジスタPCeを
介して垂直のEバスからロードされ,該トランジスタPC
eのゲートにはコマンド「H4PCFE」(クロックH4でEか
らPCへ)が入力する。このコマンド信号は,当該レジス
タマトリックスを横方向に通過する制御コマンドライン
41のうちの一本から供給されるものである。上記インバ
ータPCa間の中間接続点PCfにおけるプログラムカウンタ
の出力は,トランジスタPCgのゲートに印加され,この
トランジスタPCgからトランジスタPChまたはトランジス
タPCiおよびラインPCPまたはPCBを介してプログラムカ
ウンタのカウント内容が垂直方向のPまたはBバスに読
み込まれる。この場合の信号の転送を制御するコマンド
信号は,コマンド「H1PCTP」(クロックH1でPCからP
へ)およびコマンド「H1PCTB」(クロックH1でPCからB
へ)で,これらは横方向に延びる制御コマンドライン41
から供給される。これら制御コマンドライン41のうちの
一本にコマンド「H3PCINC」が現れると,トランジスタP
CjがオンとなってプログラムカウンタPCが歩進する。す
なわち,クロックH1でトランジスタPCkがオンとなっ
て,図示のプログラムカウンタビットに先行するビット
から延びるキャリーラインPCnと直列に接続されたトラ
ンジスタPCmのゲートに,図示のプログラムカウンタビ
ットのカウント内容がロードされる。各ビットにおける
キャリーラインは,クロックQ1でトランジスタPCpを介
して論理1にプリチャージされる。
上記ラインPCnの各ビットのキャリーイン部は,NORゲー
トを介してトランジスタPCqのゲートに接続され,該NOR
ゲートの一方の入力にはコマンド「H4PCFE」が入力す
る。なお,プログラムカウンタのLSB段は,15ビットのワ
ードアドレスがバス4に送出されるのみであるため,0に
配線される。奇数番のバイトを用いてバイト動作を行な
うには,次の低位の偶数番バイトをアドレスとしてバイ
トスワップ回路Sを能動化させることにより,アドレス
の16番目のビットがつねに0となる。プログラムカウン
タPCのその他の14ビットは第5c図に示すものと同様であ
るが,ただし最後のビットはアドレスFFFF(16進法)を
表わすように切り捨てられる。
メモリアドレスレジスタ 第5c図の上部にメモリアドレスレジスタMAの1ビット分
の回路構成を示す。メモリアドレスレジスタMAは16ビッ
トの各々に一対の標準的なインバータMAa,MAbを有し,H2
でクロックされるトランジスタMAcによりフィードバッ
クされる。このレジスタMAに対するロードは,該レジス
タに各ビットごとに別々のラインEMAおよびトランジス
タMAdを介してEバスから行なわれる。レジスタMA全体
で16個のトランジスタMAdのゲートは,横方向に延びる
制御コマンドライン41のうちの一本から供給されるコマ
ンド「H4MAFE」(クロックH4でEからMAへ)により駆動
され,レジスタMAの各ビットへのロードはラインKMAお
よびトランジスタMAeを介してレジスタK(ラッチ)か
ら行なわれる。トランジスタMAeのゲートにはコマンド
「H4MAFK」が入力する。レジスタMAからの出力は上記2
個のインバータMAa,MAbの中間接続点から取り出され,
トランジスタMAfを介して2個の出力トランジスタMAg,M
Ahに印加される。トランジスタMAgは,制御コマンドラ
イン41のうちの1本から供給されるコマンド「H1MATP」
によりオンとされ,ラインMAPを介してPバスに出力
し,またトランジスタMAhはコマンド「H1MATB」により
オンとされて,ラインMABを介してBバスに出力する。
レジスタMA全体の他のビットも同様に構成され,従って
上記E,P,Bバスにはそれぞれ16本の入出力ラインが接続
されていることとなる。
このようにして構成したレジスタMAは通常,ほとんどの
命令シーケンスの基本的な一部ととしてPバスを介して
バス23にロードされ,またレジスタMAに対するロードは
通常,たとえばWPに2Rを加えることによって,通常ほと
んどの命令について行なうアドレス生成の際に,Eバスを
介してALU40の出力10Cから行なわれる。
データレジスタ データレジスタDはそれぞれ第5b図に示す回路構成とす
る16ビットからなり,各ビットは一対のインバータDa,D
bを有しており,これらインバータは,H2でクロックされ
るトランジスタDcを介してフィードバックされる。この
レジスタDの入力は,トランジスタDdおよびラインE
(16本のラインEDのうちの1本)を介してEバスより供
給され,トランジスタDdは制御コマンドライン41のうち
の一本からのコマンド「H4DFE」(クロックH4でEから
Dへ)により制御される。また該レジスタの出力のひと
つは上記2個のインバータDa,Db間の中間接続点Deおよ
びトランジスタDfから出され,このトランジスタDfによ
り,トランジスタDgおよび都合16本あるラインDDIのう
ちの一本を介してDIバスに接続されている。この出力は
全体で16個のトランジスタDgすべてのゲートに接続され
た,制御コマンドライン41から供給されるコマンド「H1
DTDI」(クロックH1でDからDIへ)により制御される。
データレジスタDの他の出力は計16本のラインDSであ
り,これらラインDSの各々はスワップ回路Sのトランジ
スタSaのゲートに至る。このトランジスタインバータSa
の出力はゲートに「ストレート」を入力するトランジス
タScまたは「スワップ」を入力するトランジスタSdを介
してスワップバスSdに接続されている。レジスタDで都
合16個のトランジスタの各々のゲートに接続された制御
コマンドライン41は,コマンド「H2DTSS」(クロックH2
でDからスワップストレートへ)を送るものであり,ま
たコマンド「H2DTSW」(クロックH2でDからSスワップ
トへ)を送る制御コマンドライン41は,上記トランジス
タSdのゲートに接続されている。なお,Eバスはバストラ
ンジスタDh,Ddを介して,定電圧Vccにプリチャージされ
ている。
上記のように構成したデータレジスタDはほとんどの場
合,Eバスを経由してALU40からデータ出力を受け取るべ
く機能するが,DIバスおよびAバスを介してALU40のA入
力(第3図)に供給されるALUオペランド入力としても
はたらく,このようなデータレジスタDは,主としてデ
ータ出力用に用いられるものであるが,たとえばレディ
(待機)状態やホールド状態および割り算動作時にも使
用される。
Kレジスタ(ラッチ) Kレジスタ(Kラッチ)もそれぞれ同等な16段(ビッ
ト)からなるもので,そのうちの1段を第5b図に示す。
このKレジスタは2個の標準的なインバータKa,Kbを用
い,クロックH1でトランジスタKcを介してフィードバッ
クされる。このインバータ回路の出力はインバータトラ
ンジスタKeのゲートに接続され,このトランジスタKeは
出力トランジスタKf,Kgに接続されている。トランジス
タKfは制御コマンドライン41のうち一本からのコマンド
「Q1KTP」(KからPへ)によりオンとなって,Kレジス
タの出力をラインKPを介してPバスに送る。また計16個
のトランジスタKgはコマンド「Q1KTDI」(KからDIへ)
によりオンとなって,Kレジスタの出力を16本のラインKD
Iを経由してDIバスに送る。さらにKレジスタに対する
ロードは,トランジスタKi,Kjを介してスワップバスS
からストレート状態またはスワップされた状態で行なわ
れる。また制御コマンドライン41のうちの1本からのコ
マンド「H3KFSS」(クロックH3でスワップストレートか
らKへ)により,スワップバスが計16個のトランジスタ
Kiを経てKレジスタの入力と導通し,コマンド「H3KFS
W」(クロックH3でSスワップトからKへ)によりスワ
ップバスが計16個のトランジスタKjを経てKレジスタの
入力と導通してスワップすなわちバイト動作を行なう。
スワップ回路 第5a図に示すスワップ回路は,高位および低位のバイト
をスワップした状態でライン43を介して16ビットのデー
タレジスタDをA/Dバッファ42(第3図)に,あるいは
該バッファからKレジスタにそれぞれ導通させるべく機
能する回路である。バイト動作ではアドレスをスワップ
する必要がなくデータのみスワップすればよいので,ア
ドレスは通常スワップバスを通らず,A/Dバッファ42に接
続されたPバスを介して送り込まれ,あるいは送り出さ
れる。データはKレジスタを介して送り込まれ,データ
レジスタDを介して送り出されるが,いずれの場合にも
スワップバスSを経由する。
一時レジスタ 第5d図に一時レジスタTの16段(ビット)のうちの1段
の詳細を示す。この一時レジスタTは2個の標準的なイ
ンバータ段Ta,Tbを有し,クロックH2でトランジスタTc
を介してフィードバックされる。レジスタTからの出力
は上記インバータTa,Tbで出力たる接続点Tdに現われ,
クロックQ3でトランジスタTgを介して定電圧Vccにプリ
チャージされる接続点Tfに,反転トランジスタTeを介し
て印加される。上記反転トランジスタTeと直列に接続さ
れたトランジスタThは,制御コマンドライン41のうちの
一本から供給されるコマンド「H1NLDI」(H1では命令を
ロードせず)により制御される。接続点TfからBバスに
直接供給される出力は,ラインTBおよびトランジスタTi
を通り,このトランジスタTiは横方向に延びる制御コマ
ンドライン41からのコマンド「H1TTB」(クロックH1で
TからBへ)により制御される。上記接続点Tfはトラン
ジスタTiを介して次の高位のビットのBバスに接続さ
れ,ラインTLB(第3a図)を介して左段に移行する。接
続点TfはさらにトランジスタTkを介して次の低位のビッ
トのBバスに接続され,ラインTLB(第3a図)を介して
右段に移行する。これらのトランジスタTj,Tkは制御コ
マンドライン41のうちの二本から供給されるコマンド
「H1TSLB」(H1で左シフトしてTからBへ),およびコ
マンド「H1TSRB」(H1で右シストしてTからBへ)によ
り,それぞれ制御される。レジスタTに対するロードは
ラインBTおよびクロックQ3でオンとなるトランジスタTm
のほか,インバータTnおよびゲートにコマンド「H1TF
B」が供給されるトランジスタTpを介してBバスから行
なわれる。この入力はクロックサイクルの3/4の遅れを
もって現われるものである。上記インバータTnの出力に
接続されたトランジスタTpの出力は,入力接続点Tqに接
続されてレジスタTに対するロードを行なう。また前記
接続点Tfにはさらに,インバータTnの出力に接続された
トランジスタTrおよびゲートにコマンド「H1TFB」を受
け取るようにしたトランジスタTsが直列に接続されて,B
バスにおける遅延時間後のBバス情報の置換を行なう信
号伝送路を形成する。ALU40からコマンド「F」出力
(第5e図)はトランジスタTtを介して上記入力接続点Tq
に導かれる一方,トランジスタTuにも印加される。この
トランジスタTuはトランジスタTvと直列に接続されてい
るもので,これらトランジスタTu,Tvはいずれもコマン
ド「H1TFF」により制御される。トランジスタTvの出力
はコマンド「F」出力ラインからBバスへの出力として
接続点Tfに供給され,ストレートにあるいは左または右
シフトしてBバスに引き渡される。
MQシフトレジスタ MQ(掛け算/割り算)レジスタも16ビットないし段から
なるもので,そのうちの1ビットの詳細を第5f図に示
す。このMQレジスタは制御コマンドライン41のコマンド
により左または右にシフトするもので,掛け算および割
り算命令が発せられた際に機能するものであるが,一般
的な作業用レジスタとしてもはたらく。このためにはま
ず,入力点MQaにコマンド「H4MQFE」によりトランジス
タMQbおよびラインEMQを介してEバスから,あるいはコ
マンド「H1MQFDI」によりトランジスタMQcおよびライン
DIMQを介してDIバスからロードを行なう。2段のインバ
ータMQu,MQvからなるインバータ回路はクロックQ3でト
ランジスタMQdを介してフィードバックされ,第1段イ
ンバータMQuの出力はクロックH2でトランジスタMQeを介
して第2段インバータMQvの入力と導通する。トランジ
スタMQfは左シフトの機能を行なうもので,上記入力点M
QaをMQレジスタの次の低位のビットにおける対応入力点
MQaに接続する。これは制御コマンドライン41のうちの
一本にコマンド「MD4MQSL」が現われた際に行なわれ
る。なお,このコマンドのHD4は,このような動作が次
のステートタイム,すなわち当該マイクロコードが制御
ROM45で生成されたときから,1クロックサイクル遅れて
行なわれることを意味するものである。制御コマンドラ
イン41にコマンド「HD4MQSR」が現われると,トランジ
スタMQhがオンとなって,接続点MQaがレジスタの次の高
位のビットの対応接続点MQaと導通して右シフトが行な
われる。
MQレジスタの内容は入力点MQaを出力点MQkに接続するイ
ンバータMQiおよび反転トランジスタMQi(再反転用)か
らなる回路を介してE,P,Bバスに供給される。この出力
点MQkは,コマンド「H1MQTB」,「H1MQTP」または「HD1
MQTE」が現われることにより,トランジスタMQmを介し
てこれらバスB,P,Eバスにそれぞれ接続される。第1段
インバータMQuの出力MQnはトランジスタMQbがオンとな
ってコマンド「H4MQFE」によりトランジスタMQqがオン
となったときに,第2段トランジスタMQvと該トランジ
スタMQqを介して導通する。
ステータスレジスタ 16ビットステータスレジスタの1ビット分の回路構成を
第5g図に示す。この回路は一対のインバータSTa,STbを
有し,クロックQ4でトランジスタSTcを介してフィード
バックされる。入力点STdに対するロードはコマンド「H
1STFE」の出現時に,トランジスタSTeを介してEバスか
ら行なわれる。この入力点STdのセットないしロード
は,他の複数個のトランジスタSTfにより,他の信号
源,たとえば制御ROM45からの制御コマンドライン41の
うち,他の適当なラインから供給される信号により行な
われることもある。ステータスレジスタSTの出力は,上
記インバータSTa,STbの中間接続点STQgから反転トラン
ジスタSThにより取り出され,制御コマンドライン41の
コマンド「HDISTE」による制御のもとに,転送トランジ
スタSTiを介してEバスに伝えられる。
制御ROM45から制御コマンドライン41に供給されるコマ
ンドには,12個の制御ステータス信号CS1〜CS12および2
個のセットステータス信号SS1,SS2があり,付表Aの命
令セットおよびステータスビットの表わす内容に基いて
ステータスビットをセットし,あるいは条件つきでセッ
トする。
命令レジスタ 命令レジスタも16ビットレジスタとして構成され,その
各ビットの詳細は5g図に示すごとくである。すなわち,
該レジスタIRは2個のインバータ段IRa,IRbを有し,ク
ロックH2でトランジスタIRcを介してフィードバックさ
れる。またこのレジスタに対するロードはコマンド「H4
1RLD」によりトランジスタIReを介して入力点IRdで行な
われる。さらにレジスタIRはコマンド「H1IRCLR」でト
ランジスタIRfを介して入力点IRdを定電圧源Vccと導通
させることによりクリヤされる。命令レジスタIRからの
正相および補相出力は接続点IRg,IRhから取り出され,
信号IR0〜IR15としてグループ検出回路50(第3図)に
送られ,エントリポイントアドレス等を生成するのに用
いられる。ワークスペースにおける各レジスタのアドレ
スを表わすビットが入力すると,これらビットは,命令
レジスタに達する前に制御コマンドライン41のコマンド
にもとづいてALU40のA入力に供給され,発信源および
送信先のアドレスを生成する。
命令レジスタIRおよびステータスレジスタSTの出力のう
ち,あるものはジャンプ検出回路56(第3図)におい
て,付表Aの命令セットにより表わされるジャンプ命令
やジャンプ状態の何れかを検出する。ジャンプ検出回路
56に入力するトランジスタビットはST0−ST3,ST5,ST0−
ST4,IR4−IR7およびIR4−IR7である。
グループ検出回路50は15個のIRビットおよびその補数ビ
ットを受け取って,命令ワードが11のグループのどれに
入るかを判定する。この判定は先頭のビットコマンド
「1」の位置にもとづいてなされる。ついで次の4ビッ
トフィールド(場合によっては3ビットフィールドで
も,2ビットフィールドでもよい)を用いてPLA(プログ
ラマブルロジックアレー)でエントリポインアドレスを
生成する。
コンプレスト(圧縮)制御ROM CPU21の動作を司る制御コマンドライン41のマイクロコ
ードコマンドは,第6図に示すようにして制御ROM45で
生成される。前記米国特許第4,402,044号の教示によ
り,この制御ROMはコンプレスト(圧縮)型として構成
されているため,チップにおける占有面積を大いに低減
しうるうえに,ワイドワード方式としてあるため,コン
トロールビット,たとえばテストモードで使用するコン
トロールビットの加算処理が容易である。この制御ROM4
5は,8本ある入力アドレスライン46a,46bに与えられる各
アドレスにつき,それぞれ相異るマイクロコードコマン
ドの組合せセットを生成し,各アドレス入力は2分割さ
れて4ビットのXアドレスがライン46aに,同じく4ビ
ットのYアドレスがライン46bにそれぞれ供給される。
この場合,可能な256個のアドレス入力の各々につき,
出力の組合せをただ一種類ずつ生成することも可能であ
るが,命令セットの成立には256以下の状態があればよ
いので,通常の実施態様では上記組合せの種類は256以
下でよい。たとえば付表Aの命令セットを実行するCPU
の場合は,約150のアドレスないしマイクロコード状態
を用いて,約120ないし130本の制御コマンドライン41に
コマンドを選択的に供給することができる(ライン47用
のマイクロジャンプアドレス8個を含む)。
前述のように,制御ROM45はX選択部45Xと選択部45Yと
に二分され,X選択部45Xは16本のXラインにより,また
Y選択部45Yは設定圧縮度により適宜選定した本数のY
ラインにより,それぞれ構成されている。なお,ライン
46bのXアドレスは,標準的なデコーダを用いて16ライ
ンのうち1本を選択するものである。
レジスタ間加算処理のマイクロコード状態 どのようなプロセッサにおいても,もっとも普通に用い
られる命令は加算命令コマンド「ADD」である。この場
合,加算されるべき二つのオペランドは,本例において
はローカルRAM22(第2図)の各レジスタからバス23を
介して得られ,演算結果は該ローカルRAM22の適当なレ
ジスタに記憶される。アドレスモードとしては,米国特
許第4,402,044号に説明されているように,直接アドレ
スモード,間接アドレスモード,自動歩進モード,指標
つきアドレスモード,即値アドレスモード,相対アドレ
スモード等,各種のアドレスモードを使用することが可
能であるが,本例ではワークスペース内に位置する一方
のオペランドには,レジスタ直接アドレスモードを用
い,他方,ワークスペース内にアドレスが位置するレジ
スタ内の他方のオペランドには,レジスタ間接アドレス
モードを用いる。加算結果は同一のレジスタに記憶さ
れ,このレジスタはオペランドに対して直接アクセスさ
れる。なお,加算命令はプログラム作成の際,アセンブ
ラ語でコマンド「ADD *R,R」と称する。
本例においてはさらに,加算命令に実行に7個のコマン
ド「ステート」タイムないしクロックサイクルのそれぞ
れ一部を用い,各マイクロコードステートタイム期間中
に,制御ROM45により相異るマイクロコードコマンドの
セットを生成させる。CPU21に用いるクロックのタイミ
ングシーケンスは第2d図に示すようなもので,互いに重
複期間をもつ4種の半サイクルクロックH1,H2,H3,H4を
含む。クロックH4はあるステートタイムと,これに引き
続くステートタイムのそれぞれ一部からなるものである
ことは無論である。各ステートタイムはさらに1/4サイ
クルクロックQ1,Q2,Q3,Q4を含む。本例の装置はNチャ
ンネルトランジスタを用いて構成されており,従って,
上記各クロックはいずれも正極性である。またステート
タイムは200ナノ秒,すなわち反復頻度は5メガHzと
し,チップに対するクロック入力0,すなわち水晶振動子
の発振周波数はステート周波数の4倍,つまり約20メガ
Hzとする。
ローカルRAM22はCPU21のステートタイム期間内にアクセ
スすることができるため,あるステートタイムのクロッ
クQ2の期間中にバス23にアドレスが送り出されると,同
じステートタイムのクロックQ4またはH4期間中にアドレ
スされた場所の内容がバス23に現われて,CPU21に入力さ
れる。本例における加算命令を実行するにはメモリアク
セスを4回行なう必要があり,最初のメモリアクセスで
命令をフェッチし,次の2回のメモリアクセスでコマン
ド「発信源」オペランドおよびコマンド「送信先」オペ
ランドをそれぞれフェッチし,最後のメモリアクセスで
演算結果をローカルRAM22のコマンド「送信先」の番地
に記憶させる。
ここで例として想定した現在の加算動作命令は,先行す
る命令の実行が完了する前にフェッチされるもので,こ
のようなプリフェッチ方式を用いることにより演算速度
を高めることが可能となる。この場合,先行する命令も
加算の場合のようにALUサイクルおよび送信先の書込み
を用い,かつ現在出されている命令に引き続く次の命令
も加算命令と同様のものであるとすると,現在の加算命
令によって一部占有されているマイクロコードステート
タイム7周期分のうち,最初の2周期分については先行
する命令と現在の命令が共有し,最後の2周期分につい
ては現在の命令と次の命令が共有し,従って中間の3周
期分のみが現在の命令のみにより使用されることとな
る。
下の表は,上記の加算命令コマンド「ADD*R,R」を実行
するためのマイクロコード状態を示すものである。(表
中,A/Dバスはアドレス/データバスの略であり,またDE
Nはデータイネーブルメモリコマンドを表わす。) 上に示すように,7周期分のステートタイムS1−S7のう
ち,まずステートタイムS1(先行する命令と重複する)
期間では,Pレジスタ内のアドレスをバス23に送り出して
メモリスペース内にある場所にアクセスすることによ
り、現命令のワードをフェッチする。(上記メモリスペ
ースはワークスペースやデータに用いるRAM22ではな
く,プログラムを記憶したROM27とするのが普通であ
る)。そうすると、このアクセスした場所の内容が,バ
ス23に戻されると共に、命令レジスタIRにロードされ
る。次にステートタイムS2期間では,先に行なった演算
の結果がメモリアドレスレジスタMA内のRAM22の位置に
書き込まれる。この場合,MAレジスタの記憶内容がバス2
3に送り出された後に,前の加法演算の結果が書き込ま
れる。一方では,S1期間中にプリフェッチした命令ワー
ドから取り出された数に,WPレジスタの記憶内容がALU40
内でS2期間中に加算される。この数は前述のように発信
源レジスタ番号の2倍すなわち2Rである。従って発信源
レジスタのアドレスがS2期間中に計算されてMAレジスタ
に記憶される。つづいてステートタイムS3期間中に,こ
のアドレスがバス23に送り出されて,ワークスペースの
選択されたレジスタに記憶されている発信源アドレスを
アクセスする。この発信源アドレスはRAM22から読み出
された後,バス23を介して戻され,CPU21内のMAレジスタ
およびKレジスタに記憶される。ステートタイムS4期間
では、発信源オペランドのアドレスがKレジスタからバ
ス23に送り出され,ローカルRAM22におけるこのアドレ
スが,バス23でKレジスタに戻される。
S4期間中にはさらに,WPレジスタの記憶内容を命令ワー
ドの「D」フィールドの2倍(表中2Dで表わす)に加算
して,その結果をMAレジスタに記憶させることにより,A
LU40で送信先アドレスを計算する。ついでS5期間では,
このようにして計算されたDアドレス(ワークスペース
内にあり,従って「直接」アドレスである)は,バス23
を経由してMAレジスタから送り出され,一方,Kレジスタ
のオペランドがTレジスタに移行される。次にRAM22の
アドレスされたレジスタの記憶内容がバス23を介して戻
され,同じくS5期間中にCPU21のKレジスタに記憶され
る。これをもって加法演算が実行可能な状態となり,発
信源オペランドはTレジスタに,送信先オペランドはK
レジスタにそれぞれ格納される。従って次のS6期間で
は,KレジスタおよびTレジスタの記憶内容を加算して,
その結果をDレジスタに記憶させることにより,加法演
算を実行する。ただしS6期間中には,プログラムカウン
タPC(すでに歩進されている)内のアドレスをローカル
バス23に送り出し,かつこのアドレスの内容をバス23を
介してROM27か受け取って,S7期間中にCPU21の命令レジ
スタIRにロードすることができるようにするこによっ
て,次に命令がプリフェッチされる。このS7期間中には
さらに,MAレジスタ内のアドレス(S4期間中に計算され
たDアドレス,すなわち送信先アドレス)をバス23にま
ず送り出した後,Dレジスタの記憶内容をバス23に呼び出
すことによって,現在の加算命令の演算結果がRAM22に
書き込まれ,かくて命令「ADD *R,R」の実行が完了す
る。なお,S7期間中にワークスペースポインタWPの内容
をS6期間中にアクセスした命令ワードのSフィールド
(発信源アドレスフィールド)の2倍(表中2Rで表わし
てある)に加算することによって,次の命令の発信源ア
ドレスをALU40で計算するため,次に行なう加法演算が
2ステートタイム分だけすでに実行シーケンスに入って
いることになる。すなわち,上の表のステートタイムS
6,S7はステートタイムS1,S2にそれぞれ相当する期間で
ある。
第7図に上記「ADD *R,R」の命令ワードを示す。この
命令ワードは10ビットワードで,S1期間中にその読み出
しが行なわれ,本例の場合には,PCレジスタによりアド
レスされた場所の内容が読み出される。まず最初の3ビ
ットフィールド「010」が「ADD」を表わし,ビット番号
3の「B」フィールドで,バイト動作であるかワード動
作であるかを指定する。本例では便宜上ワード動作とす
る。B=1ならばオペランドはいずれもバイトであり,
オペランドアドレスはバイトアドレスである。またB=
0の場合はオペランドはワードである。さらにTDフィー
ルドおよびTSフィールド,すなわちビット4,5,10,11は
当該オペランドのアドレスモードをきめるためのもの
で,本例ではTSフィールドは「00」としてSフィールド
(ビット12〜15)で送信先オペランドを有するワークス
ペースのレジスタ番号を表わす。またTDフィールドは,
間接ワークスペースレジスタアドレスモードを意味する
「01」として,Dフィールド(ビット6−9)で送信先オ
ペランドのアドレスを有するワークスペースのレジスタ
番号を表わす。
つぎに「ADD *R,R」命令の実行につきさらに詳細に考
案するが,前掲の表はこれに関して,各種レジスタやバ
スにおける時間の関数としての内容を示しており,以下
これらレジスタやバスのマイクロコードステートタイム
に関連する動作や,これら動作を得るべくライン41に出
力される制御信号等につき検討することとする。
ステートタイムS1期間中は,クロックH1時にコマンド
「H1PCTP」(第5c図)のライン41が高レベルとなって,
トランジスタPCiがオンとなり,PCレジスタの記憶内容が
Pバスに現われる。そこでDEN(データイネーブル)コ
マンドがクロックH1で高レベルとなって,Pバスの信号が
出力バッファ42(第3図),ひいてはバス23にロードさ
れる。このときPCレジスタは,クロックH3期間中にライ
ン41に現われるコマンド「H3PCINC」により歩進され,
第5c図のトランジスタPCiおよびPCmがオンとなるため,
後のS6期間中に次の命令がアクセスされる準備がととの
う。クロックH2で上記DEN信号がコントロールライン41
に現われて,クロックH3でライン24のうち一本にDENコ
マンドが生成され,クロックQ4でRAM22がバス23にデー
タの出力を開始することが可能となる。ここでフェッチ
された命令ワードは,クロックQ4で始まる期間,バス23
に現れており,ブランク時以外はクロックH3ごとに生成
されるコマンド「H3KFSS」により,ラインSKを介してK
レジスタにロードされる。このコマンド「H3KFSS」によ
り,第5b図に示したトランジスタKi都合16個がオンとな
る。このSi期間中には,先行する加算命令に対する演算
が,S6期間につき後述する手順と同様の手順で行なわれ
て,その演算結果をEバスに送り出す。また制御コマン
ドライン41の1本には,コマンド「SAMPI」(サンプル
割込み)が現われて,割込みメモリのサンプリングが行
なわれるため,割込みがある場合には,コンテキストス
イッチング動作が起る。
次のS2期間中は,コマンド「Q1KTDI」が高レベルとな
り,計16個のトランジスタKgがオンとなったときに,Kレ
ジスタ内の命令がクロックQ1でDIバスに伝えられる。な
おこのコマンド「Q1KTDI」は,制御コマンドライン41に
よりブランクされない限り,クロックQ1ごとに現われる
コマンドである。クロックH1で,コマンド「2STA」によ
りDIバスの命令ワードのSフィールドが左シフトして,
第5e図に示すように,4個のトランジスタCaを介してバス
のビット11〜14に伝えられる。クロックH1でコマンド
「H1WPTB」によりトランジスタWPfがオンとなって,ワ
ークスペースポインタWPの内容がBバスに伝えられ,か
くてBバスにはオペランドWPが,またAバスにはオペラ
ンド2Pがそれぞれ現われるため,ALU40が(クロックH2お
よびH3で)動作すると,その和(WP+2R)に相当するメ
モリが,クロックH3期間中に接続点10cで生成される。
遅延クロックH1時,すなわち遅延した1ステートタイム
で,コマンド「ALTE」が制御コマンドライン41に現わ
れ,次のサイクルのクロックH1でALU40の出力がトラン
ジスタ10aを介してEバスに供給される。なお,このS2
期間中にはステートタイムS7につき後述するように,ク
ロックH4でEバスから入力したDレジスタがRAM22に,
先行する命令に対する演算結果が書き込まれる。
ALU40の出力は,クロックH1でS2期間中にEバスに送ら
れる(S1期間中におけるHD1と同様である)。
S3期間中には,発信源アドレスを含むレジスタのアドレ
スが,ALU40の動作により生成される。このALU動作では
クロックH1でコマンド「H1WPTB」によりトランジスタWP
fがオンとなって,ワークスペースポインタWPの内容が
Bバスに伝えられ,これにより第5g図の命令レジスタIR
のビット11〜14がトランジスタIReを介してDIバスのビ
ット11〜14へそれぞれ伝えられる。コマンド「IR2D」に
より、命令ワード(第7図)のDフィールドが、1ビッ
ト分だけ左シフトして2進数の2を乗算し,DIバスを経
由して加算回路(ALU40)のA入力に供給される。ALU40
はデフォールトルールにより加法演算状態にあって、コ
マンド「ALU1」〜「ALU4」が不在であり,入力10cは次
のステートタイムのクロックH1で,トランジスタ10a
(第5d図)のゲートにコマンド「HD1ALTE」が入力する
ことにより,Eバスに供給される。
CPUのテスト 以上,付表Aの命令セットを実行する場合のCPU21の通
常の動作につき説明した。ただしこのCPU21を含むチッ
プのテストを行うためには,上記以外の機能をさらに必
要である。このワンチップCPUデバイスのテストをあら
ゆる命令を用いて行なうことは,使用するデータに依存
する障害が若干あるため,きわめて時間がかかるととも
に,全面的に決定的なものとはならない。
さらに,スタックフォールト,すなわち内部バスが論理
1または0にはりついた状態が生ずると,稀ではあるが
条件次第では,誤り動作が招来されることもある。従っ
てダイナミックメモリデバイスのテストを行なう際に
は,CPUのレジスタ内のあらゆるビットおよびALU内の接
続点のテストは、種々のデータや制御信号のパターンに
つき行なうことが必要である。
CPU21のテストは,テスト以外には何の機能ももたず従
って付表Aの標準的な命令セットの実行には何ら使用さ
れない付加的なマイクロコードを,コントロールROM45
から生成させて用いることにより行なう。このテスト用
マイクロコードを,コントロールROM45から生成させて
用いることにより行なう。このテスト用マイクロコード
は,特定の制御コマンドライン41およびマイクロステー
トを用い,さらに標準的な命令セットのための多数の現
存のマイクロコードステートと同様の信号の組合せを,
これらの制御コマンドライン41に生成させて用いるが,
動作シーケンスが上の表に示した標準シーケンスとは常
に相異るものであるため,マイクロジャンプアドレスも
相異なるものとなる。
CPU21の各種レジスタのレジスタビットは,第8図に示
すようなメモリMEiおよび出力MEoを有するメモリエレメ
ントMEと考えることができる。入力MEiには2個の信号
源IN−A,IN−Bから入力ビットが供給され,これら入力
ビットの入力ラインは,複数個のトランジスタのゲート
に接続された接続点IN−1,IN−2により制御される。一
方,出力MEoも,たとえばMQレジスタ(第5f図)におい
てPバスまたはBバスに至る出力や,Kレジスタ(第5b
図)においてPバスまたはDIバスに至る出力のように,2
本以上の出力バスに接続されている。ただし,フォール
トフラッシング(欠陥洗い出し)の概念の説明を単純化
するため,以下の記載では入力についてのみ説明する。
この場合,たとえば第8図に示す一般回路の入力は,第
5c図におけるMAレジスタの1ビットにトランジスタMAe
およびMAdを介して接続される入力コマンド「MAFDI」お
よび「MAFE」にそれぞれ相当するものであり,この場合
のDIバスおよびEバスは,それぞれ第8図のIN−Aおよ
びIN−Bに対応する。
第8図の回路についての真理値表を付表Dに示す。同表
においてパターンT〜Zは入力データビットIN−Aおよ
びIN−Bと,制御信号IN−1およびIN−2の各種の組合
せを示すもので,良好な回路と欠陥を含む回路について
の初期化サイクルI(T)およびテストサイクルM(T
+1)のメモリ出力MEoを示すものである。
欠陥の可能性はそれぞれ各入力について,たとえば論理
1にスタックした(はりついた)場合は「S@1」で,
また論理0にスタックした場合は「S@0」で,それぞ
れ示したある。表示のパターンはありうべき欠陥をすべ
て検知するのに必要なものである。すなわち,パターン
Tは制御ビットIN−1のまたは制御入力IN−2の「S@
1」すなわち「スタック1」状態を検知するためのもの
であり,パターンUおよびパターンWは,制御ビットIN
−1およびIN−2の「S@0」すなわち「スタック0」
状態を,パターンXおよびパターンZはデータビットIN
−AおよびIN−Bの「S@1」すなわち「スタック1」
状態を,またパターンVおよびパターYはデータビット
IN−Aの「S@0」すなわち「スタック0」状態をそれ
ぞれ検知するものである。
上記のような付表DのテストをCPU21の各レジスタで実
行するためには,これらレジスタの各々についてアルゴ
リズムをマイクロコード型式で書き込んでおく必要があ
る。たとえば最初の状態では、入力データをすべて高レ
ベルとしてメモリエレメントを(すなわち各レジスタを
構成する16ビットをすべて同時に)初期化する。このた
めにはコマンド「DEN」を出力した状態でバス23を介し
て「FFFF」(16進数)を入力し,選択されたレジスタの
2本のバスないし信号源,たとえばMAレジスタビットの
場合のKレジスタおよびEバス,あるいはMQレジスタビ
ットの場合のDIバスおよびEバス,に上記データ(FFF
F)を入力させるマイクロコードを選択する。
この時点ではこれら2入力のための制御信号は,たとえ
ば制御コマンドライン41における「KTMA」および「ETM
A」マイクロコードビットあるいは「DITMQ」および「ET
MQ」マイクロコードビットにより,高レベルに保持され
る。メモリ内容は,(1)当該レジスタにPバスおよび
バス23を介して出力させることによってテストマシンに
より外部チェックを行なうか,または(2)ALU動作お
よびその演算結果に応じて,ステータスの飛越しまたは
割込みを行なうことにより,高レベルであると判定され
る。以上で初期化サイクルI(I)は終りである。つい
でパターンの状態が設定される。このためには、制御ア
ドレスライン41の適当なマイクロコードビットにより制
御信号をすべて低レベルとし,入力データ(バス等)も
マイクロコードコマンドにより,あるいはデータ入力を
論理ゼロとすることにより低レベルとする。この時点で
前記と同様にしてメモリ内容のチェックを行ない,付表
Dに基いてその結果を検出することにより,いずれかの
入力が「スタック1」状態にあるかどうかが判定され
る。こうしたシーケンスが各レジスタについて,またA,
B,DI,Pバス自体について繰り返される。通常の作業と異
るところは,テスト用マイクロコードの接続点を2個の
入力が同時に駆動しようとすることであるが,これは標
準的な命令セットを実行する際には,不要であるどころ
か,きわめて好ましくない状態である。とはいえ,この
状態はスタックフォールトの検知には必要なものではあ
る。スタックフォールトが存在する場合には,通常の動
作時においてもたしかに誤りが発生することがあるが,
この種の誤りはデータ依存性をもつ場合があるため,徹
底的かつ時間のかかるパターンをテストマシンに用いる
必要もありうる。
その他のパターンU,V,W,X,Y,Zについては、まず上述の
ようにして初期化を行なってメモリのビットがすべて高
レベルになったことを確認する。ついで選択されたレジ
スタの選択された2入力に付表Dの真理値表により与え
られる値に従ってデータを入力し,同じくこの真理値表
に従って2つの制御入力を定めて,メモリの各ビットが
高レベルないし低レベルであることを確認する。この作
業は可能な組合せすべてについてチェックが済むまで反
復される。一般には,ある時点である入力に現われるビ
ットはすべて1かまたは0である。この同一シーケンス
をCPUのレジスタすべてについて行なうことにより,ル
ープ内における当該時点での反復回数が増大するが、変
化するのは入力データのみであるため,マイクロコード
の状態数が増大することにはならない。以上のパターン
により,制御メモリの「スタック0」,データビットの
「スタック0」,あるいは同じくデータビットの「スタ
ック1」状態のチェックが行なわれる。
CPU21のテスト項目としてはさらに,コントロールROM45
からのコマンド出力41のチェックがある。このテストを
行なうためには,チップのコントロールROM45の出力に
シフトレジスタSRを設け(第6図),特定のマイクロコ
ードビット「♯LDCR」により,該コントロールROM45の
出力をこのシフトレジスタに並列入力する。標準的な動
作時にはこれら出力41は,レジスタSRに入力されること
はないが,テスト時には上記ビット「♯LDCR」が現われ
て,たとえば130個(その他何個でもよい)のビットが
1サイクル期間中にレジスタSRにすべてロードされ,次
の130サイクルで出力ピンのひとつ,たとえばバス23の
アドレス/データI/Oピンで上記ビットがシリアルにク
ロックされる。いま仮にコントロールROM45に256個の可
能なアドレスがあるとすると,このシーケンス全体とし
ては256回繰り返すことが必要である。コントロールROM
45のアドレスは,カウンタTCからライン46に供給され
る。このカウンタTCは,たとえば8ビットシフトカウン
タで,リセット時にゼロ状態となり,マイクロコードビ
ット「♯LDSR」が入力する度に歩進するようになってい
る。かくして付表Eに「ETST−」,「EESTO」,「TEST
1」,「TEST2」で表示した4本のテストピンに,選択さ
れたコード入力が現われて,テストコントロール回路か
らコントロールビット「♯LDSR」が出力され,このビッ
トによりカウンタTCが歩進され,コントロールROM45か
ら一連のマイクロコードコマンド41が出力されて(CPU
内で処理されるのではなく)上記シフトレジスタSRにロ
ードされる。次のたとえば130クロックサイクル期間中
に,このマイクロコードワードが1回に1ビットずつシ
リアルにシフトして,外部のテストマシンで既知の値と
比較される。
オンチップタイマ 第9図に前記タイマ25をブロック形式で示す。このタイ
マ25は512ビットのプリスケールカウンタ25aを含み,こ
のプリスケールカウンタ25aは,その入力25bにローカル
クロックを受けて出力25cに逆歩進(デクレメント)信
号を発生する。このようなプリスケールカウンタ25a
は,周知の排他的ORフィードバックを有する擬似ランダ
ムシフトカウンタにより,構成することができる。信号
25cは約170マイクロ秒ごとに生成され,タイマデータレ
ジスタ25dに送られる。このタイマデータレジスタ25dに
はタイマラッチ25fから入力25eを介して8ビット値がロ
ードされる。このタイマラッチ25fにはローカルバス23
からロードされ,その内容はこのローカルバスによりア
クセスされたメモリスペース内に現われる。ラッチ25f
の内容はさらに,伝送路25gを介してローカルバス23を
経由してCPU21によっても読み出される。同様にして,
上記タイマデータレジスタ25dの内容もローカルバス23
によりアクセスされたメモリスペースに現われるため,
該内容も伝送路25hを介してローカルバス23を経由し
て,ローカルCPU21により読み出される。
プリスケールカウンタがゼロ状態に逆歩進して出力25c
を生成するたびに,レジスタ25dも逆歩進し,このた
め,ラッチ25fおよびローカルバス23からこのレジスタ2
5dにロードされた値があるカウント数に達すると,レジ
スタ25dはオールゼオ状態となる。この状態は,通常の
形式のNOR構成としたゼロ検出回路25iにより検出され
る。このゼロ検出回路25iの出力25jは,セットリセット
型フリップフロップ25kのセット入力に接続され,この
フリップフロップ25kのリセット入力25mには,MPSTSコン
トロールレジスタの一定のビットが入力する。いまたと
えばリセット状態にあったフリップフロップ25kが入力2
5jによりセットされると,出力25nが現われてCPU21に対
してタイマが割り込んだことを知らせる。この割込み信
号はANDゲート25pの一方に入力に印加され,他方の入力
にはライン25qを介してMPCTLレジスタからビットが供給
されて,タイマ割込みをイネーブルとするかディスイネ
ーブルとするかが決定される。かくして,条件がすべて
ととのっていさえすれば「タイマ割込みアクチブ」信号
がライン25rに出力されて,CPU21に伝送される。
MPCTLレジスタに格納されライン25qに現われる「GPTIE
N」ビットは,該レジスタにワードを書き込むことによ
り,CPU21によってセットあるいはリセットされる。セッ
トされた場合は,この「GPTIEN」ビット(汎用タイマ割
込みイネーブルビット)は「CPTINT」ビット(汎用タイ
マ割込みビット)がライン25mのMPSTSレジスタにセット
されていることを条件に,割込み(優先順位第10位)を
イネーブルする。「GPTINT」ビットがゼロ状態の場合に
「GPTINT」がセットされていることもあるが,このとき
には割込み信号は生成されない。「GPTINT」ビットのセ
ットは,レジスタ25dの逆歩進パルスがカウント1から
オールゼロのカウントとなった後のローカルバスサイク
ルで行なわれる。この「GPTINT」ビットは回路によって
自動的にセットされ,CPU21にそのプログラムによる制御
下でリセットされる。
該ビットはさらにタイマがゼロ以下に逆歩進したときに
セットされ,このビット位置にゼロを含むMPSTSレジス
タに対するワードの書込みが行なわれたときにクリヤさ
れる。以上のようにしてタイマからの割込みが行なわれ
た後は,CPU21のプログラムによってこの割込みがリセッ
トされない限り,CPU21は他の割込みを受け付けない。
上記カウンタデータレジスタ25dには,CPU21によりMPCPL
レジスタにワードの書込みが行なわれて,該MPCPLレジ
スタの「GPTSTART」ビットが0から1にトグルするか,
あるいはレジスタ25dがゼロに逆歩進するかした場合
に,入力25eを介してラッチ25fの内容がロードされる。
レジスタ25dの逆歩進は,前記MPCTLレジスタのタイマス
タートビットが論理0の状態にあったのが,CPU21により
1が書き込まれたときに開始される。前記入力25bにお
けるローカルロック(とりあえず3メガHzとする)はプ
リスケールカウンタ25aにより512分されて,レジスタ25
dの入力25cに逆歩進パルスを形成する。該レジスタ25d
がゼロに逆歩進すると,レジスタ25jの「GPTINT」ビッ
トがセットされ,入力25qで「GPTIEN」がセット状態な
らばライン25rを介してCPU21に割込みが許可される。
レジスタ25dがゼロに逆歩進したサイクルに引き続くロ
ーカルバスサイクルでは,レジスタ25dには直ちにラッ
チ25f内の値がロードされ,従って汎用タイマ割込みの
期間は512×[サイクルタイム]×[ラッチ25fの記憶
値]として与えられる。通常の状況ではこの割込み期間
は約10ミリ秒,すなわちCPU21の30000マシンサイクルご
ととするのがよい。CPU21はRAM22内のレジスタを用い
て,該CPU21のプログラムにより制御のもとに,このハ
ードウエアタイムアウトにもとづいて,多数の相異るタ
イムアウトを生成する。一定時間内にリング11(第1
図)にフリーのトークンまたは開始デリミッタが現われ
ないときは,不良状態が起ったものと想定して不良検出
または不良修正信号が送り出される。
バスアービトレーション バスアービタ26(第2図)はプロトコルハンドラデバイ
ス(チップ)16,システムインターフェースチップ30,あ
るいはその他のDMAデバイスが,ローカルバスをその支
配下におくためのアービトレーション(裁定)を行なう
ことができるようにすべく,設けたものである。すなわ
ち,「SRESET−」ビットによるシステムリセットに引き
続いて、チップ20のCPU21がただちにバス23をその支配
下におくが,このような状態のもとでチップ16およびチ
ップ30は,DMAによる転送を行なうべく該バス23を支配す
るように要求して許可を受けることができる。このため
には,1ないし2以上のDMAサイクルが終り次第,バス23
の支配権をいったんチップに戻す。この場合,ローカル
バス23の帯域幅を最大限に活用するために,現在以降の
バスサイクの要求およびその許可は,現に進行中のバス
サイクルとオーバーラップして行なわれる。
バスアービタ26によるローカルバス23のアービトレーシ
ョンおよび制御は,付表Eに示すハンドシェークペア
「LBRQ−1」,「LBGR1」,「LBRQ2−」,「LBGR2−」
をチップ20に用いて「バス要求/バス使用許可」ハンド
シェークによりコーディネートして行なわれる。
チップ16からの「LBRQ1−」入力は,システムインター
フェースチップ30からの「LBRQ2−」入力よりも優先度
が高い。
外部バスマスタ「チップ16またはチップ30」によって
「LBRQ1−」または「LBRQ2−」がアサートされては要求
が行なわれ,このバス要求に応答して,アービタ26が
「LBGR1−」または「LBGR2−」をアサートした後,バス
サイクル終了時にアドレス/データラインおよびライン
LEN−,LAL,LI/D−,LR/W−をチップ20からフロートさせ
る。
ここにアービタ26により決定されるローカルバス23を優
先順位で列挙すれば次の通りである。
(1)「LBRQ1−」に対する外部マスタ,プロトコルハ
ンドラチップ16。
(2)「LBRQ2−」に対する外部マスタ,システムイン
ターフェースチップ30。
(3)CPU21からのマイクロプロセッサ命令およびデー
タアクセス用内部マスタシステムインターフェースチッ
プ30では,メモリマップトI/OバスコントローラがDMAバ
スコントローラに対する優先度を有する。
また,外部バスマスタが支配権を握っている間に,より
優先順位の高いバスマスタによりローカルバス23の要求
を行なうことも可能である。
すなわち,システムインターフェースチップ30が支配権
をもっているときに,プロトコルハンドラチップ16によ
りバス23の要求を行なってもよい。
これは送出されメッセージが,メモリ32からDMAにより
アドレス22にコピーされている時点で,到来するメッセ
ージが検出された場合に起る。
この場合に行なわれる手順は次の通りである。
(1)現在のバスサイクルのクロッツQ3で「LBGR2−」
のアサートを取り消す。
(2)システムインターフェースチップ30が現在のサイ
クルを完了し(場合によっては待機状態としたうえ
で),そのバス信号をトライステートとして,現にアサ
ートされている「LBRQ2−」をそのままとする。
(3)「LBGR1−」をアサートする。
(4)より高い優先順位のバスマスタ,すなわちチップ
16がそのDMA動作,たとえば到来メッセージフレームのR
AM22へのコピー等を完了したときに,当該マスタにより
「LBRQ1−」のアサートを取り消した後,「LBGR2−」の
アサートを行なう。
(5)ついでシステムインターフェースチップ30が再び
バス23の支配権を取って,送出されるメッセージのコピ
ーを行なう。
[システムインターフェースチップ] 第2図において,システムインターフェースチップ30は
2つのバスインターフェースを形成し,その一方は,シ
ステムデータバス34(およびその制御バス35)に,他方
はローカルアドレス/データバス23に,それぞれ結合さ
れる。このシステムインターフェースチップ30の入出力
ピンについては付表Fに記載してある。ただし,これら
ピンのうちチップ20に接続されているものもあるため,
付表Eに記載のものと同一のものも含まれる。
チップ30には2個の互いに別個のコントローラが設けて
あり,その第一はMMIOレジスタをそなえたメモリチップ
トI/Oコントローラである。このMMIOレジスタは,アダ
プタ10により指示されたメモリマップトレジスタをホス
トシステム12(ホストCPU31)が参照する作業を管理す
る。第2のコントローラはDMAコントローラで,これは
ホストシステムバス34とアダプタのローカルバス23との
間のDMA転送を行なうコントローラである。これらの構
成により,ホストシステム12とアダプタ10との間の各種
の相異る論理インターフェースを,ローカルCPU21で実
行されたコード(ROM27に記憶されたコード)を用いて
取り行なう。なお,ここにいうメモリマップトI/Oおよ
びシステムDMAはホストシステム12側から見た場合のデ
ータ伝送機構をいうもので,チップ30のローカル側のロ
ーカルバス23のメモリスペースにおけるレジスタとは異
る。
メモリマップトI/Oに対しては,アダプタ10は一組の連
続するバスアドレスとして現われる。ビットレベルの状
態および制御情報には2個のレジスタがあてがわれ,CPU
21により実行されるROM27のプログラムコードによっ
て,これらビットの意味が定義されている。メモリマッ
プトI/Oユニットはさらに,アドレスレジスタをアダプ
タ10のローカルバススぺース内の保持するもので,ホス
トシステム12はローカルバスのメモリ内のどのRAM22やR
OM27のバイトをも,間接的にアクセスすることができ
る。ホストシステム12がローカルメモリ22あるいはロー
カルデータスペースの読出しあるいは書込みを行なって
いる間は,CPU21はローカルROM22から閉め出される。こ
のような方式とすることにより,コマンドおよびステー
タスタスクブロックがホストCPU31によって書き込ま
れ,ローカルCPU21により非同期的に検定される。メモ
リマップI/Oユニットはさらに,システムバス割込み確
認サイクル期間中に,プログラマブルな割込みベクトル
をシステムバス34に設定する。
システムインターフェースチップ30はさらに,ローカル
CPU21にオンチップRAM22とシステムメモリ32との間で直
接メモリアクセスを行なうことを可能にすることによ
り,到来するフレームデータあるいはコマンド/ステー
タスのインターチェンジを行なう。この直接メモリアク
セスは,ROM27に記憶されたCPU21用のプログラムによる
完全な制御下で行なわれる。
[システム転送] メッセージの転送を行なう場合,ホストシステム12はま
ず,ホストCPU31による制御のもとに,そのメモリ32に
データフレームを送出する。
ついでCPU31によりシステムインターフェースチップ30
のMMIOレジスタに対する書込みが行なわれて,CPU21の割
込みが行なわれ,MMIOに当該データフレームのシステム
バス34の開始アドレスが示される。
ついでCPU21により,システムからローカルへの転送の
ためシステムDMAが設定されるが,これは割込みに用い
たベクトルアドレスに始まるROM27からのプログラムコ
ードを実行することにより,行なわれる。CPU21が状態
を設定するレジスタは,データフレーム用のシステムバ
ス34アドレスをロードするステートLDMA ADRレジスタ,
ローカルアドレス/データバス23を介してデータフレー
ム用のローカルRAM22アドレスをロードするSDMA ADRレ
ジスタ,SDMA CTLレジスタのコントロールビットをセッ
トしてスタート,SDMA LENレジスタによるフレーム長の
決定,等々である。次にチップ30を介してシステムDMA
を行なって,チップ30のFIFOを用いてシステムRAM32か
らローカルRAM22へデータフレームを転送する。
かくしてバス34からFIFOへのデータワードの転送は,チ
ップ30のシステムコントローラによる制御のもとに行な
われて,システムバスアクセス「SBCLK」に同期され,FI
FOからバス23を介してローカルRAM22への転送は,チッ
プ30のDMAコントローラによる制御のものに行なわれ
て,ローカルバスアクセス「LBCLK」に同期される。FIF
Oがフル状態でない場合は,システム制御側のサイクル
は,まずシステム側のコントローラからシステムバス34
の要求が出され,ホストシステム12からチップ30にバス
使用許可信号が送られ,システムメモリからデータワー
ド(もしくはバイト)がFIFOに送られ,ついでSDMA LEN
レジスタが逆歩進されるという手順で進行する。これら
のサイクルは,SDMA LENレジスタがゼロ状態となるま
で,あるいはSBERRシステムバスエラーピンがアサート
されるか,またはSIFCTLレジスタのDMAHALTビットがセ
ットされるまで続行する。
またFIFOにデータが書き込まれている場合は,ローカル
制御側のサイクルは、まずローカル側のコントローラか
ら信号「LBRQ1−」によりローカルバス23の要求が出さ
れ,「LBGR1」がチップ20によりアサートされ,ついでF
IFOからローカルRAM22に1ワード分のデータが書き込ま
れる,とう手順で進行する。
かくてRAM32からRAM22にフレーム全体がコピーされる
と,システムインターフェースチップ30が再びCPU21に
割り込んで,DAMが完了したことを知らせる。そこでCPU2
1は,ローカルRAM22内のデータを読み取ってチェック,
フォーマット変更,暗号化等の作業を行なう。転送の準
備がととのうと,CPU21はチップ16を状態設定して,該チ
ップ16の2個のレジスタにデータフレームのローカル開
始アドレスおよびフィールド長さを書き込むことによっ
て転送を行なう。かくて転送の支配権はチップ16に移
り,まず送信用FIFO37が制御信号「LBRQ2−」,「LBGR2
−」を用いて,チップ16からのDMAによってチップ20のR
AM22の内容をFIFOに満たすことにより行われる。ついで
チップ16が信号ライン11からフリーのトークンが入力1
3,13′に到着するまで待機し,このトークンが入力する
と,チップ16はこれをビジーのトークンに変更して(ビ
ットを1にセットする)。シリアル化用レジスタ38およ
びマルチプレクサ39を介してFIFO37からのデータが出力
14,14′に送られる。FIFO37がフル状態にない場合に
は,チップ16はつねに「LBRQ2−」信号ラインによるロ
ーカルバス要求をアサートし、チップ20のバスアービタ
26からの信号「LBRQ2」がチップ16に到達すると,ロー
カルRAM22からFIFO37に1ワード分のデータ書き込みが
行なわれる。なお,長さレジスタは各ワードが転送され
る毎に逆歩進し、これは該レジスタがゼロ状態となるま
で続けられる。
上述のようにしたリング11のデータレートは,典型的な
例では約4メガビット/秒または0.5メガビット/秒で
あり,またローカルRAM22からFIFO37への伝送レート
は,ローカルバスアクセスもしくはCPU21のサイクルタ
イムにより定まる最大値をとり,たとえば約333ナノ秒
で,この場合は333ナノ秒ごとに16ビットが伝送され
る,すなわち6メガビット/秒であるということにな
る。従ってFIFO37は、CPU21のサイクルタイムのわずか
0.5/6すなわち1/12を使用するだけで,この転送期間
中,フル状態を維持することができるのである。このた
め,CPU21はチップ16への送信を目的としたデータ伝送用
には,そのサイクルの所々を失うだけで他の作業を行な
うことが可能となる。一方,ホストシステム12は典型的
には8メガHzのシステムアクセスを用いており,システ
ムバス34のデータ伝送レートは2メガバイト/秒となっ
て信号ライン/11の伝送レートの4倍となる。このた
め,フレームをシステムRAM32からローカルRAM22に転送
するDMAは,RAM22からチップ16のFIFO37へ送信を目的と
したオフロード伝送よりも早く行なうことができ,従っ
てホストシステム12からローカルRAM22へのDMAをチップ
16によりRAM22へのDMAとインターリーブさせることも可
能となるが,このような手法はほとんどのデータ伝送動
作では不要のものではある。
付表A 命令セット [データ転送命令] MOV命令はメモリ内にある領域から他の領域へ,あるい
はメモリマップのある位置から他の位置へ,データを転
送するのに用いられる。LOAD命令はレジスタを所望の値
に初期化させるのに用いられる。またSTORE命令はステ
ータスレジスタ(ST)または特定のワークスペースレジ
スタ内のワークスペースポインタ(WP)をセーブするた
めのものである [ただちにロード]−「LI」 動作……本命令LIの直後のワードにおけるアドレスに位
置する16データビットの値が,命令LIのビット12〜15か
らなる4ビットフィールドにより指定されたワークスペ
ースレジスタRにロードされる。
使用目的……このLI命令は,選択されたレジスタをカウ
ンタ値やデータマスク等のプログラム定数で初期化させ
るのに用いられる。
[ただちに割込みマスクをロード]−「LIMI」 動作……本命令の直後のワードにおける低位の4ビット
値(ビット12〜15)が,ステータスレジスタの割込みマ
スク領域のビット12〜15)にロードされる。
使用目的……このLIMI命令は割込みマスクを初期化させ
て,どのシステムの割込みが認識されるかを制御するの
に用いられる。
[ただちにワークスペースポインタにロード]−「LWP
I」 動作……本命令の直後のワードに含まれる16ビット値
が,ワークスペースポインタWPにロードされる。
使用目的……このLWPI命令は,プログラムの1セクショ
ンのためのワークスペースメモリエリアを設定するのに
用いられる。
[ワードを移動]−「MOV」 動作……本命令のビット10〜15により指定された発信源
位置のワードを,該発信源位置に記憶されているデータ
に影響を与えることなく,ビット4〜9で指定された送
信先位置に転送する。この転送中にワード(発信源デー
タ)が0と比較され,その比較結果はステータスレジス
タに記憶される。
使用目的……MOVE命令は,システムのある部分から他の
部分へデータを転送するのに用いられる。
[バイトを移動]−「MOVB」 動作…バイトで動作する以外はMOVE命令と同じ。
使用目的…MOVB命令は,8ビットバイトをあるバイト位置
から他のバイト位置に転送するのに用いられる。
[バイトをスワップ]−「SWPB」 動作……本命令のビット10〜15で指定されたメモリ位置
におけるワードの最上位バイトおよび最下位バイトが交
換される。
使用目的……次のバイト動作に必要な場合にバイトを交
換するのに用いられる。
[ステータスを記憶]−「STST」 動作……ステータスレジスタSTの内容が,本命令のビッ
ト12〜15で指定されるワークスペースレジスタに記憶さ
れる。
使用目的……本命令STSTはステータスレジスタSTの内容
をセーブして後で参照するのに用いられる。
[ワークスペースポインタを記憶]−「STWP」 動作……ワークスペースポインタWPの内容が,本命令の
ビット12〜15で指定されたワークスペースレジスタに記
憶される。
使用目的……このSTWP命令は,ワークスペースレジスタ
WPの内容をセーブして,後で参照するのに用いられる。
・・・・・ [算術命令] これらの命令は,加算(バイトまたはワード),減算
(バイトまたはワード),掛け算,割り算,否定論理,
絶対値演算等の基本的な算術演算を行う。
[加算]−「A」 動作……本命令のビット10〜15で指定された発信源アド
レスに位置するデータが,ビット4〜9で指定される送
信先アドレスに位置するデータに加算される。
使用目的……2進数による加算は多くの数学的機能を発
生させるのに要求される基本的な算術演算であり,一報
の入力がゼロの場合は「パス」として機能する。本命令
はマルチワード加算,少数による加算,コードの変換等
を行なうのに用いられる。
[バイトを加算]−「AB」 動作……上記「加算」と同じであるがワードのかわりに
バイトを用いる。本命令のビット12〜15によるアドレス
される発信源バイトが、ビット4〜9でアドレスされる
送信先バイトに加算され,その和を表わすバイトが送信
先バイト位置に記憶される。ASCII等の8ビットを使用
するサブシステムやデータを扱う際に有用である。
[ただちに加算]−「AI」 動作……本命令AIの直後のワードに含まれる16ビット値
が,該命令のビット12〜15で指定されたワークスペース
レジスタの内容に加算される。
使用目的……ワークスペースレジスタに定数を加算する
のに用いられる。ワークスペースレジスタに含まれるア
ドレスに、定数ディスプレースメントを加算するのに用
いられる。
[ワードを減算]−「S」 動作……16ビットの発信源データ(ビット位置は10〜15
で指定される)が,送信先データ(ビット位置は10〜15
で指定される)引き算され,結果が送信先位置に記憶さ
れる。結果は0と比較される。
使用目的……16ビット2進減算を行なう。
[バイトを減算]−「SB」 動作……ワードのかわりにバイトを用いる以外は,S命令
と同様である。
[歩進]−「INC」 動作……このINC命令のビット10〜15で指定された発信
源アドレスに位置するデータが歩進(インクレメント)
されて,その結果が発信源位置に記憶され,かつ0と比
較される。
使用目的……この命令INCは,バイトアドレスを歩進さ
せてバイトカウンタを歩進させるのに用いられる。
[2ずつ歩進]−「INCT」 動作……本命令のビット10〜15で指定された位置のデー
タに2が加算され,結果が同じ発信源位置に記憶され,
かつ0と比較されてステータスSTがセットされる。上記
INC命令と同様。
使用目的……この命令はワードアドレスを歩進させるの
に用いることができる。ただしこれは,ワード命令にも
とずく自動歩進により自動的に行なわれる。
[逆歩進]−「DEC」 動作……本命令のビット10〜15で指定された発信源アド
レスに位置するデータから1が引き算されて,その結果
が当該位置に記憶され,かつ0と比較される。INCと同
様。
使用目的……バイトカウンタを逆歩進(デクレメント)
させたり,あるいはバイトアドレスを下り方向に処理す
るのにもっとも多く用いられる。
[2ずつ逆歩進]−「DECT」 動作……本命令のビット10〜15で指定された位置のデー
タから2が減算され,結果が同じ発信源位置に記憶さ
れ,かつ0と比較される。上記INC命令と同様。
使用目的……この命令はバイトカウンタを逆歩進させた
り,あるいはバイトアドレスを下り方向に処理するのに
用いられる。
[否定]−「NEG」 動作……本命令のビット10〜15で指定されたアドレスに
おけるデータが,その2の補数に代えられて結果が0と
比較され,ステータスSTがセットされる。
使用目的……この命令NEGは,16ビット数の2の補数をつ
くるのに用いられる。
[絶対値]−「ABS」 動作……本命令のビット10〜15で指定されたアドレスに
おけるデータが0と比較されて,ステータスSTがセット
される。ついで当該データの絶対値が同じ位置に記憶さ
れる。
使用目的……指定された位置のデータをテストして,こ
のデータをその絶対と代えるのに用いられる。本命令は
掛け算等,正負符号をともなわない算術アルゴリズムに
用いることもできる。
[掛け算]−「MPY」 動作……本命令のビット10〜15で指定された発信源アド
レスの16ビットデータが,ビット6〜9で指定された送
信先ワークスペースレジスタRに含まれている16ビット
データと,掛け算される。
正負符号をもたない2進数の積(32ビット)はワークス
ペースレジスタR,R+1に記憶される。
使用目的……この命令MPYは,16ビット×16ビットの2進
法掛け算を行なうのに用いられる。
またそのような32ビットの積どうしを結合して,32ビッ
ト×32ビット等,より大きな乗数および被乗数を用いる
掛け算を行なうこともできる。
[割り算]−「DIV」 動作……ワークスペースレジスタR,R+1(ここでRは
本命令のビット6〜9で指定された送信先アドレスを表
す)に含まれる32ビット数が,本命令のビット10〜15で
指定された発信源アドレスに含まれる16ビットの除数に
よって割り算される。得られた商はワークスペースレジ
スタRに記憶され,また余りはワークスペースレジスタ
R+1に記憶される。割り算は,発信源アドレスにおけ
る除数がレジスタRに含まれるデータよりも大きなとき
のみ行なわれる。
使用目的……このDIV命令は16ビット数による32ビット
数の基本的な2進法割り算を行なうものである。
[符号つき掛け算]−「MPYS」 動作……ワークスペースレジスタR0における符号つき2
の補数が,発信源アドレスにより指定された符号つき2
の補数により掛け算される。結果は符号つき32ビット数
となり,ワークスペースレジスタR0(16個のMBSに対す
る)およびR1(16個のMBSに対する)に記憶される。こ
の演算結果は0と比較される。
使用目的……システムの符号つき掛け算を行なう。
[符号つき割り算]−「DIVS」 動作……ワークスペースレジスタR0における32ビット符
号つき2の補数が,発信源アドレス(ビット10〜15)に
より指定された16ビット符号つき2の補数(除数)によ
り割り算される。得られた符号つき商は,ワークスペー
スレジスタR0に記憶され,余りはレジスタR1に記憶され
る。
・・・・・ [比較命令] これらの命令はテストワードやテストバイトを,基準値
としての定数あるいは他のワードやバイトと比較するの
に用いられる。このような動作はある種の割り算アルゴ
リズムや,数の変換,入力コマンドないしリミット条件
の認識等に用いられるものである。
[ワードを比較]−「C」 動作……本命令のビット12〜15における発信源アドレス
により指定された2の補数である16ビットが,ビット4
〜9における送信先アドレスにより指定された2の補数
でもある16ビットと比較され,その結果にもとずいて適
当なステータスSTがセットされる。両位置の内容は変更
はされない。
使用目的……二つのワードを比較する必要は割り算,数
の変換,パアターン認識等のシステム機能に生ずる。
[バイトを比較]−「CB」 動作……発信源アドレス(ビット10〜15)における2の
補数である8ビットバイトが,送信先アドレス(ビット
4〜9)における2の補数である8ビットと比較され,
ステータスSTがセットされる。
[ただちに比較]−「CI」 動作……指定されたワークスペースレジスタR(ビット
10〜15で指定される)の内容が,本命令の直後のワード
に含まれる値と比較される。
使用目的……このCI命令はデータをテストしてシステム
あるいはプログラムのリミットに達したか,あるいはこ
れを越えたかをチェックし,あるいはコマンドワードを
認識するのに用いられる。
[対応する1を比較]−「COC」 動作……ビット10〜15によりアドレスされた発信源位置
におけるデータが,ビット6〜9で指定されたワークス
ペースレジスタRでテストされるビットに対するマスク
となる。すなわち,発信源データに1を含むレジスタR
のみがレジスタRでチェックされ,ついで,もし発信源
データにより選択されたビット位置すべてにおいて該レ
ジスタRが1を含む場合は,イコールステータス(EQ)
ビットが1にセットされる。
使用目的……このCOC命令はビットのグループを選択的
にテストして,ある種のサブシステムのステータスをチ
ェックしたり,あるいはデータワードのある種の状況を
検定するのに用いられる。
[対応するゼロを比較]−「CZC」 動作……ビット10〜15により指定されたアドレスにおけ
るデータが,ビット6〜9で指定されたワークスペース
レジスタRでテストされるビットに対するマスクとな
る。すなわち,発信源データに1を含むレジスタRのみ
がレジスタRでチェックされ,ついで,もし選択された
ビット位置すべてにおいて該レジスタRが1を含む場合
は,イコールステータス(EQ)ビットが1にセットされ
る。
使用目的……COC命令と同様 ・・・・・ [論理命令] 論理命令はプロセッサがシステムに対してプール論理動
作を行なうことができるようにするもので,論理積演
算,論理和演算,否定演算,排他的論理和演算等を行な
うことができる。プール機能はシステムははで実行され
る。
[ただちにAND]−「ANDI」 動作……ビット12〜15で指定されたワークスペースレジ
スタのビットと,本命令直後のワードに含まれる16ビッ
ト2進定数の対応するビットとで,AND操作が行なわれ
る。得られた16ビットは0と比較されて,レジスタRに
記憶される。
使用目的……この命令は不要のビットをすべて論理0と
して,選択されたビット(論理1のビット)を残すのに
用いられるもので,4ビットのグループ等,ひとつひとつ
のビットや,ワード内の離れた部分のテストを行なうの
に用いることもできる。
[ただちにOR]−「ORI」 動作……指定されたワークスペースレジスタのビット
と,本命令直後のワードに含まれる16ビット2進定数の
対応するビットとで,OR操作が行なわれる。得られた16
ビットはRに記憶され,0と比較される。
使用目的……システムでOR論理の演算を行なうのに用い
られる。
[排他的OR]−「XOR」 動作……ビット10〜15でアドレスされた発信源データの
対応するビットと,ビット6〜9により指定されたワー
クスペースレジスタの定数との間で,排他的OR機能が行
なわれる。演算結果はワークスペースレジスタRに記憶
され,ステータスSTがセットされる。
[否定]−「INV」 動作……発信源アドレスビット12〜15によりアドレスさ
れたデータのビットがその補数と代えられる。結果はゼ
ロと比較されて発信源位置に記憶される。
使用目的……このINV命令は16ビット2進数の1の補数
を作ったり,あるいはシステムデータを反転させたりす
るのに用いられる。
[クリア]−「CLR」 動作……本命令のビット10〜15で指定されたメモリ位置
に,ゼロが記憶される。
使用目的……このCLR命令は,システムのスタート時に
プロブレムアーギュメントをゼロ状態にセットし,デー
タ位置を初期化してゼロとするのに用いられる。
[1にセット]−「SETO」 動作……すべての1(もしくは16進のFFFF)が,本命令
のビット10〜15で指定されたメモリ位置に記憶される。
[対応する1をセット]−「SOC」 動作……本命令のビット10〜15で指定された発信源アド
レスの対応するビットと,ビット4〜9により指定され
る送信先データアドレスとの間でOR演算を行なう命令で
あり,結果はゼロと比較され,送信先位置に記憶され
る。
使用目的……メモリ内の2個のワード間でOR機能を行な
う。
[対応する1をセット,バイト動作]−「SOCB」 動作……ビットの代わりにバイトを用いる以外は上記SO
C命令と同じ。本命令のビット10〜15で指定された発信
源データアドレスの対応するバイトのビットと,ビット
4〜9により指定される送信先データアドレスのバイト
との間で論理OR演算を行なう命令であり,結果はゼロと
比較され,送信先位置に記憶される。
[対応する0にセット]−「SZC」 動作……ビット10〜15でアドレスされた発信源データに
より本命令用のマスクを形成する。発信源データ(ビッ
ト10〜15でアドレスされる)の論理1のビットと対応す
る送信先データ(ビット4〜9でアドレスされる)のビ
ットがクリアされる。結果はゼロと比較され,送信先位
置に記憶される。
使用目的……この命令SZCによりプログラマはデータワ
ードのビットを選択的にクリアすることができる。たと
えば,割込みが実施されたときは,割込み要求ビットは
このSCZ命令を用いることにより,クリアすることが可
能である。
[対応する0にセット,バイト]−「SZCB」 動作……ビットの代わりにバイトを用いる以外は上記SZ
C命令と同じ,ビット10〜15でアドレスされた発信源デ
ータにより,ビット4〜9の送信先アドレスによりアド
レスされたバイトのうち,特定のビットをクリアするた
めのマスクを形成する。この場合クリアされる送信先バ
イトは発信源バイト中で論理1のビットをである。結果
はゼロと比較され,送信先バイトに記憶される。
・・・・・ [シフト命令] これらの命令はメモリ内のワードに対する単純な2進数
掛け算および割り算を実行し,ワード内におけるビット
の位置を再構成することにより,与えられたビットをキ
ャリー(C)ステータスビットで検定するのに用いられ
る。
[右にシフト,算術動作]−「SRA」 動作……ビット12〜15で指定されたワークスペースレジ
スタRの内容が,ビット8〜11により指定される回数Cn
tだけ右にシフトされ,空いた位置に符号つきビット
(最上位ビット)が入る。シフト回数はゼロと比較され
てステータスビットがセットされる。
シフト回数=Cnt(命令に含まれている0から15までの
数)によりシフトされるビットの数が特定される。ただ
しCntがゼロの場合は,シフトカウントはワークスペー
スレジスタ0の4個の下位ビットから取り出される。ま
た,もしCntおびこれら4個の下位ビットがいずれもゼ
ロならば,16ビット位置シフトが行なわれる。
使用目的……このSRA命令によって,Cntで定まる2乗数
による2進法割り算が実行される。
[左にシフト演算]−「SLA」 動作……ビット12〜15で指定されたワークスペースレジ
スタRの内容が,Dnt回数(Dntがゼロのときは,レジス
タROの4個の下位ビットにより定まる数)だけ左にシフ
トされ,空いた位置にゼロが入る。Dntビット8〜11に
より指定される。キャリーには左にシフトされた最後の
ビットの値が含まれ,シフト回数はゼロと比較されて,
ステータスビットがセットされる。
使用目的……このSLA命令によってDntで定まる2乗数に
よる2進法掛け算が実行される。
[右にシフト,論理動作]−「SRL」 動作……ビット12〜15で指定されたワークスペースレジ
スタRの内容が,ビット8〜11により指定されるCnt回
数(Cnt=0のときは,レジスタROの4個の下位ビット
により定まる数)だけ右にシフトされ,空いた位置にゼ
ロが入る。キャリーには右にシフトされた最後のビット
の値が含まれ,シフト回数はゼロと比較されて,ステー
タスビットがセットされる。
使用目的……このSRL命令によって,Dntで定まる2乗数
による2進法割り算が実行される。
[右にシフト,サーキュラシフト動作]−「SRC」 動作……ビット12〜15で指定されたワークスペースレジ
スタRの内容が,ビット8〜11により指定されるCnt回
数だけ右にシフトされる。シフト回数はCntであり,Cnt
=0のときは,レジスタROの4個の下位ビットにより定
まる数である。
使用目的……このSRC命令はデータワード内の特定のビ
ットをチェックしたり,4ビットグループすなわちスワッ
プバイトの位置を変更したりするのに用いられる。
・・・・・ [条件つきブランチ命令] これらの命令により,プログラマは次に来る命令を実行
するか,それともメモリの他の部分に行って次に実行す
る命令を受け取るかを,選択することができる。なおブ
ランチ,はこれをサブルーチン型のブランチとすること
により,プログラメがブランチの発生した点まで戻るこ
とができる。
[ブランチ]−「B」 動作……ビット10〜15で指定された発信源アドレスがプ
ログラムカウンタ内に記憶されて,この発信源アドレス
により特定される場所から,次の命令が得られる。
使用目的……この命令は現在のタスクが完了し次第,プ
ログラムの他の部分にジャンプするのに用いられる。
[ブランチしてインク]−「BL」 動作……ビット10〜15で指定された発信源アドレスがプ
ログラムカウンタ内に記憶されて,この命令BLに引き続
くアドレスが,ワークスペースレジスタR11にセーブさ
れる。
使用目的……この命令は共用サブルーチンジャンプであ
り,メインプログラムおよびサブルーチンは,いずれも
同一のワークスペースレジスタを使用する。ブランチポ
イントでメインプログラムに戻る場合は,このB命令を
サブルーチンの終りに用いて,レジスタR11の内容(す
なわちもとのプログラムカウンタPCのカウント値)をプ
ログラムカウンタにロードさせることができる。
[無条件ジャンプ]−「JMP」 動作……ビット8〜15で指定された符号つきディスプレ
ースメントが,プログラムカウンタPCの現在のカウント
内容に加えられ,プログラムカウンタの内容が更新され
て新しい値となる。ジャンプする先の位置は,現在位置
から-128ないし-127ワード以内になければならない。
使用目的……ジャンプする先のサブプログラムがJMP命
令んの-128ワード以内にある場合は、ジャンプには1メ
モリワードを必要とするのみであるのに反して,ブラン
チ命令には2メモリサイクルを要し,JMP命令はB命令よ
りも早くかつ低いメモリコストで実施しうるため,無条
件JPM命令の方が無条件ブランチ命令よりも好都合であ
る。
[実行]−「X」 動作……ビット10〜15で指定された発信源アドレスに位
置する命令が実行される。
使用目的……この命令Xは,実行すべき命令が可変の原
因に依存するものである場合に用いると好都合である。
[ワークスペースポインタにブランチしてロード]−
「BLWP」 動作……発信源アドレスビットのビット10〜15で指定さ
れたワードがワークスペースポインタにロードされて,
メモリ内の次のワード(発信源アドレス+2)がプログ
ラムカウンタPCにロードされて,分岐動作が行なわれ
る。もとのワークスペースポインタの記憶内容な,新し
いワークスぺースレジスタR13に記憶され,古いプログ
ラムカウンタPCの内容が新しいワークスペースレジスタ
R14に記憶され,さらにステータスレジスタの内容が新
しいワーススペースレジスタR15に記憶される。
使用目的……この命令は転送ベクトル位置が発信源アド
レスにより指定されたコンテキストスイッチングサブル
ーチンジャンプで,新しいワークスペースを用いてワー
クスペースポインタWP,プログラムカウンタPC,ステータ
スレジスタST(すなわち最後の3種のレジスタ)の古い
値がセーブされる。前記BLジャンプと較べた場合のサブ
ルーチンジャンプの長所は,サブルーチンの場合はそれ
自体のワークスペースを受け取るものであって、メイン
プログラムワークスペースの内容がサブルーチン動作に
より分配されない,ということである。
[拡張動作]−「XOP」 動作……ビット6〜9は,このXOP命令から対応するサ
ブプログラムへのコンテキストスイッチングブランチ
に,どの拡張動作転送ベクトルを使用するべきかを指定
する。有効なアドレス,すなわち本命令のビット10〜15
がサブプログラムワークスペースに導入されて,補正数
またはデータをサブプログラム位置に送り出す。
使用目的……この命令は,単一の命令によって呼び出す
ことのできるサブプログラムを特定するのに用いること
ができる。この結果,プログラマは特殊な命令を特定し
て,プロセッサにセットされた標準的な命令の補正を行
なうことが可能となる。
[ワークスペースポインタとともにリターン]−「RTW
P」 動作……この命令はコンテキストスイッチングからのリ
ターン動作であり,サブルーチンワークスペースレジス
タR13,R14,R15の内容をワークスペースポインタWP,プロ
グラムカウンタPC,ステータレジスタSTにそれぞれ転送
して,これらワークスペースポイントWP,プログラムカ
ウンタPC,ステータレジスタSTに再記憶さることによ
り,実行される。
使用目的……この命令は割込み,拡張動作,もしくは上
記BLWP命令等の転送ベクトル動作により得られた,サブ
プログラムからのリターン用に用いられる。
[条件つきジャンプ命令]−「JH」,「JL」,「JL
E」,「JGT」,「JLT」,「JEQ」,「JNE」,「JOC」,
「JNC」,「」,「JNO」,「JOP」 これらの命令により,特定のステータスビットがジャン
プに必要な条件を満たした場合のみ,ビット8〜15によ
り指定された位置へのブランチ動作を行なう。これらの
命令によって,プログラムにデシジョンメーキング機能
をもたせることが可能になる。条件つきジャンプ命令の
ニーモニックを,これらの命令によってテストされるス
テータスビット状態とともに,下に略示する。
動作……ブランチニーモニック(ビット4〜7で指定さ
れる)により示された状態が真であるときには,無条件
ジャンプ命令の場合と同様,相対アドレスを用いてジャ
ンプが行なわれる。すなわち,ビット8〜15によりプロ
グラムカウンタの現在の値に加えられるディスプレース
メントが指定されて,次の命令の位置が決定される。こ
の位置はジャンプ命令の128ワード以内でなければなら
ない。
使用目的……ほとんどのループカウンタを使用するアル
ゴリズムおよびプログラムは,これらの命令を用いて次
の命令シーケンスをどれにするかを決定することが必要
である。
【図面の簡単な説明】
第1図は本発明による特徴を有するマイクロプロセッサ
を適用しうるトークンパッシング型一方向通信ループを
ブロックで示す概略図,第1a図及び第1b図は第1図に示
す通信ループに用いるデータフレームを示すタイミング
図,第2図は第1図に示す通信ループにおけるステーシ
ョンのひとつの概略的な構成を示すブロック図,第2a図
は第2図に示すマイクロプロセッサにおけるローカルCP
Uデバイスに用いるワード,バイトおよびビットの定義
を示す図,第2b図は第2図に示すローカルCPUデバイス
のローカルRAMおよびローカルROMを含むローカルメモリ
のメモリマップを示す図,第2c図は「ワークスペース」
と証するメモリ領域における多数の相隣るメモリ位置を
示す図,第2d図は第2図に示すマイクロプロセッサのロ
ーカルCPUデバイスにおける各種の動作態様時のタイミ
ングチャート図,第3図,第3A図は第2図に示すマイク
ロプロセッサとして用いるローカルCPUないし中央演算
装置を含むMOS/LSIマイクロプロセッサの電気回路構成
を示すブロック図,第3a図は第3図に示すマイクロプロ
セッサの一部をなすローカルCPUを拡大して示すブロッ
ク図,第4図は第3図に示す構成中のローカルCPUを含
む半導体チップを拡大して,該装置の各部のレイアウト
を示すブロック図,第4a図は第4図に示すレイアウトの
一部とくにそのレジスタの線状部を拡大して示す図,第
5a図は第3図および第3a図に示すローカルCPUにおける
スワップバスの配線を示す結線図,第5b図は同じく第3
図および第3a図に示すローカルCPUにおけるデータレジ
スタおよびKレジスタの各段ないしビットの1段ないし
1ビット分の回路構成を示す結線図,第5c図は同じく第
3図および第3a図に示すローカルCPUにおけるメモリア
ドレスレジスタ,プログラムカウンタ,およびワークス
ペースポインタレジスタの各段ないしビットの1段ない
し1ビット分の回路構成を示す結線図、第5d図は同じく
第3図および第3a図に示すローカルCPUにおける一時レ
ジスタの各段ないしビットの1段ないし1ビット分の回
路構成を示す結線図,第5e図は同じく第3図および第3a
図に示すローカルCPUにおけるALUの各段ないしビットの
1段ないし1ビット分の回路構成を示す結線図,第5f図
は同じく第3図および第3a図に示すローカルCPUにおけ
るMQシフトレジスタの各段ないしビットの1段ないし1
ビット分の回路構成を示す結線図,第5g図は同じく第3
図および第3a図に示すローカルCPUにおけるステータス
レジスタおよび命令レジスタの各段ないしビットの1段
ないし1ビット分の回路構成を示す結線図,第6図は第
2図,第3図,第3a図,第4図および第4a図に示すロー
カルCPUに用いるコントロールROMの一例を示す図,第7
図は加法演算動作を行なうのに用いる16ビット命令ワー
ドを示す図,第8図は第3図第5a図ないし第5g図に示す
構成中マイクロコードを用いてテストを行なう回路の一
例を示す図,第9図は第2図に示すステーションの一部
をなすタイマ回路の一例を示す図である。 10……ステーション(アダプタ),11……信号伝送路,12
……ホストプロセッサシステム,16……プロトコルハン
ドラ,20……メッセージプロセッサチップ,21……ローカ
ルCPU,22……ローカルRAM,23……アドレス/データバ
ス,27……ローカルROM,30……ホストCPU,40……ALU,41
……制御コマンド信号,制御コマンドライン,45……コ
ントロールROM,IR,ST,MQ,T,WP,PC,MAD,K……レジスタ,S
……スワップバス。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H04L 29/02 7429−5L G06F 15/16 320 Z (31)優先権主張番号 567598 (32)優先日 1984年1月3日 (33)優先権主張国 米国(US) (31)優先権主張番号 567599 (32)優先日 1984年1月3日 (33)優先権主張国 米国(US) (72)発明者 ジヨージ ブツチヤナン イギリス国イングランド バツクス エム ケー16 9エヌダブリユウ、ニユーポート パグネル、シエリントン、カツターズ クローズ7 (72)発明者 デビツト エス.ラフイツト アメリカ合衆国マサチユーセツツ州、ウエ レスレイヒルズ、チエストナツト ストリ ート15 (72)発明者 ブライアン シヨア イギリス国イングランド エムケー41 7 ピーエイ ベツドフオード、マントンレイ ン(無番地) (72)発明者 ドナルド エム.ウオルターズ、ジユニア アメリカ合衆国テキサス州、ヒユーストン エイピーテイー.991、エルム 6010 (72)発明者 キヤレル アール.キルブリユウ、ジユニ ア アメリカ合衆国テキサス州、シユガーラン ド、パスチユア レイン3034 (72)発明者 キ スク チヤン アメリカ合衆国テキサス州、ヒユーストン エス.ウイルクレスト デイアール. 9901 (72)発明者 ステフアン ピー.サカライゼン アメリカ合衆国テキサス州、ヒユーストン ワイアヴアイン12952 (72)発明者 マーク エイ.スタムバウ アメリカ合衆国テキサス州、ヒユーストン エス.ウイルクレスト ドライブ9901 (72)発明者 オツト エヌ.フアニニ アメリカ合衆国テキサス州、ヒユーストン スパイスレイン10027 (56)参考文献 特開 昭54−150939(JP,A) 国際公開8403192(WO,A)

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】信号伝送路と、 該信号伝送路に接続され、該信号伝送路からディジタル
    データを受信し、該信号伝送路に対してディジタルデー
    タを送信する複数のステーションであって、 各ステーションは、 メインCPUとメインメモリとを含み、該メインCPUと該メ
    インメモリとの間を相互接続するシステムバス手段を有
    するメインプロセッサと、 ローカルCPUとローカルメモリ手段とを含み、該ローカ
    ルCPUと該ローカルメモリ手段との間を相互接続するロ
    ーカルバス手段を有する通信プロセッサと、 該メインCPUにより該メインメモリから該ローカルメモ
    リ手段に対してデータを転送することができ、また、該
    ローカルCPUにより該ローカルメモリから該メインメモ
    リに対してデータを転送することができるように、該ロ
    ーカルバス手段と該システムバス手段とを接続する第一
    のメモリアクセス手段と、 データ転送操作に際しては、該ローカルバス手段に接続
    されて、該ローカルメモリをアクセスする第二のメモリ
    アクセス手段とを含む前記通信プロセッサは、 該ローカルバス手段に接続され、データの転送に関し不
    良状態が起ったものと想定されるときに該ローカルCPU
    に割込み処理を行って上記データ転送操作を解除せしめ
    る制御手段と、 該ローカルバス手段へのアクセスを制御するバスアービ
    タ手段とをさらに含む前記通信プロセッサと、 前記第一、第二のメモリアクセス手段は、該バスアービ
    タ手段に対して作動的に結合され、 該バスアービタ手段は、該第一のメモリアクセス手段、
    該第二のメモリアクセス手段及び該ローカルCPUから各
    別にバス要求信号を受信し、予め設定された優先度で、
    該ローカルバス手段へのアクセスを許容することを含む
    ディジタルデータ通信システム。
  2. 【請求項2】前記バスアービタ手段は、 前記第一のメモリアクセス手段と前記第二のメモリアク
    セス手段と前記ローカルCPUとからの各別のバス要求信
    号の受信に応答して、該第二のメモリアクセス手段が最
    高位の優先度を享有し、該第一のメモリアクセス手段が
    次位の優先度を享有し、該ローカルCPUが最下位の優先
    度を享有するようにして、該ローカルバス手段へのアク
    セスを許容する特許請求の範囲第1項記載のディジタル
    データ通信システム。
  3. 【請求項3】前記信号伝送路に接続された入力端子と受
    信バッファメモリとを有する受信手段を含み、該受信バ
    ッファメモリは、該受信手段の入力端子に接続されて、
    該信号伝送路から入力データを受信し、 該信号伝送路に接続された出力端子のほか入力端子にデ
    ータを受信する送信バッファメモリを有する送信手段を
    含み、該送信バッファメモリは、該送信手段の出力端子
    にデータを転送し、 前記通信プロセッサは、該信号伝送路と該受信手段とか
    らのデータの受信に応動する送信/受信制御手段をさら
    に含み、 前記第二のメモリアクセス手段は、該受信バッファメモ
    リと該送信バッファメモリとを前記ローカルバス手段に
    接続し、受信データを受信バッファメモリからローカル
    メモリ手段に書き込む際に、さらに送信データをローカ
    ルメモリ手段から送信バッファに読み出す際に、送信/
    受信制御手段に連動して、該ローカルメモリ手段にアク
    セスする特許請求の範囲第1項記載のディジタルデータ
    通信システム。
  4. 【請求項4】前記メインメモリでは、送信されるべきデ
    ータの複数ビットで構成されるフレームが、前記メイン
    CPUの制御により、該メインメモリ中に生成され、該フ
    レームが、該メインCPUによる初期化時に、前記システ
    ムバス手段及び前記ローカルバス手段経由で前記ローカ
    ルメモリ手段に転送され、引き続いて、該フレームが、
    前記送信/受信制御手段の制御により、該ローカルバス
    手段及び前記送信バッファメモリ経由で前記送信手段に
    転送されるようにした特許請求の範囲第3項記載のディ
    ジタルデータ通信システム。
  5. 【請求項5】前記通信プロセッサ中の前記ローカルメモ
    リ手段には、ローカル読み出し/書き込みメモリとロー
    カルROMとが含まれ、 該ローカルROMは、前記ローカルバス手段に接続され、
    前記ローカルCPUが、前記バスアービタ手段により制御
    されて、該ローカルバス手段経由で該ローカルROMから
    フェッチされた命令を実行し、 前記メインCPUは、前記システムバス手段経由で前記メ
    インメモリからフェッチされた命令を実行するようにし
    た特許請求の範囲第3項記載のディジタルデータ通信シ
    ステム。
  6. 【請求項6】前記第一のメモリアクセス手段には、メモ
    リマップドI/O手段と制御レジスタとが含まれ、 前記メインCPUは、該メモリマップドI/O手段経由で該制
    御レジスタにアクセスし、 前記ローカル読み出し/書き込みメモリに対する前記シ
    ステムバス手段からの直接メモリアクセス(DMA)は、
    該メインCPUによる該制御レジスタへのデータの書き込
    みに応答して、該制御レジスタにより始動されるように
    した特許請求の範囲第5項記載のディジタルデータ通信
    システム。
  7. 【請求項7】前記信号伝送路は、閉鎖形の一方向伝送路
    であり、 前記各ステーションは、該信号伝送路中の上流方向から
    データを受信し、該信号伝送路中の下流方向にデータを
    送信し、 該信号伝送路へのアクセスは、送信されたデータ中に含
    まれるトークンにより制御され、かつ、閉鎖形の一方向
    伝送路中を巡って、ステーションからステーションへと
    引き継がれるようにした特許請求の範囲第1項乃至第6
    項のうちいずれか1項に記載されたディジタルデータ通
    信システム。
JP10085A 1984-01-03 1985-01-04 ディジタルデータ通信システム Expired - Lifetime JPH0710067B2 (ja)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US56759584A 1984-01-03 1984-01-03
US56773084A 1984-01-03 1984-01-03
US56759784A 1984-01-03 1984-01-03
US567598 1984-01-03
US06/567,599 US4571675A (en) 1984-01-03 1984-01-03 Microprocessor device with integrated auto-loaded timer
US567730 1984-01-03
US06/567,596 US4646232A (en) 1984-01-03 1984-01-03 Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
US567597 1984-01-03
US567599 1984-01-03
US06/567,598 US4641308A (en) 1984-01-03 1984-01-03 Method of internal self-test of microprocessor using microcode
US567596 1984-01-03
US567595 1990-08-15

Publications (2)

Publication Number Publication Date
JPS6187451A JPS6187451A (ja) 1986-05-02
JPH0710067B2 true JPH0710067B2 (ja) 1995-02-01

Family

ID=27560140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10085A Expired - Lifetime JPH0710067B2 (ja) 1984-01-03 1985-01-04 ディジタルデータ通信システム

Country Status (3)

Country Link
EP (1) EP0150084B1 (ja)
JP (1) JPH0710067B2 (ja)
DE (1) DE3582934D1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0193305A3 (en) * 1985-02-13 1989-01-18 Texas Instruments Incorporated System interface for coupling standard microprocessor to a communications adapter
DE3679124D1 (de) * 1985-09-11 1991-06-13 Siemens Ag Schaltungsanordnung zum uebertragen von datensignalen zwischen, ueber ein ringleitungssystem miteinander verbundenen steuereinrichtungen.
DE3679948D1 (de) * 1985-09-11 1991-08-01 Siemens Ag Schaltungsanordnung zum uebertragen von datensignalen zwischen ueber ein ringleitungssystem miteinander verbundenen steuereinrichtungen.
US4727538A (en) * 1986-05-20 1988-02-23 American Telephone And Telegraph Company, At&T Bell Laboratories Information transfer method and arrangement
US4908823A (en) * 1988-01-29 1990-03-13 Hewlett-Packard Company Hybrid communications link adapter incorporating input/output and data communications technology
JPH01229542A (ja) * 1988-03-10 1989-09-13 Meidensha Corp Lanを用いたデータ伝送装置
JP2523882B2 (ja) * 1989-07-13 1996-08-14 株式会社東芝 デ―タ伝送装置
US5287344A (en) * 1991-06-05 1994-02-15 At&T Bell Laboratories Transferring lines in a digital loop carrier transmission system
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5818844A (en) * 1996-06-06 1998-10-06 Advanced Micro Devices, Inc. Address generation and data path arbitration to and from SRAM to accommodate multiple transmitted packets
JP3417369B2 (ja) 1999-11-05 2003-06-16 日本電気株式会社 バススイッチ用アダプタ、バススイッチ用ブリッジ、バススイッチ、およびバススイッチシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54150939A (en) * 1978-05-19 1979-11-27 Oki Electric Ind Co Ltd Bus control system
US4335426A (en) * 1980-03-10 1982-06-15 International Business Machines Corporation Remote processor initialization in a multi-station peer-to-peer intercommunication system
EP0054077B1 (en) * 1980-12-08 1984-11-21 International Business Machines Corporation Method of transmitting information between stations attached to a unidirectional transmission ring
US4481578A (en) * 1982-05-21 1984-11-06 Pitney Bowes Inc. Direct memory access data transfer system for use with plural processors
EP0137804A4 (en) * 1983-02-07 1987-10-12 American Telephone & Telegraph NETWORK INTERFACE.

Also Published As

Publication number Publication date
EP0150084B1 (en) 1991-05-29
JPS6187451A (ja) 1986-05-02
EP0150084A3 (en) 1988-03-23
DE3582934D1 (de) 1991-07-04
EP0150084A2 (en) 1985-07-31

Similar Documents

Publication Publication Date Title
US4777591A (en) Microprocessor with integrated CPU, RAM, timer, and bus arbiter for data communications systems
US4646232A (en) Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
US4641308A (en) Method of internal self-test of microprocessor using microcode
US4694391A (en) Compressed control decoder for microprocessor system
US5577213A (en) Multi-device adapter card for computer
US4403284A (en) Microprocessor which detects leading 1 bit of instruction to obtain microcode entry point address
US4463421A (en) Serial/parallel input/output bus for microprocessor system
US4112490A (en) Data transfer control apparatus and method
Nanya et al. TITAC: Design of a quasi-delay-insensitive microprocessor
US5058114A (en) Program control apparatus incorporating a trace function
US4402042A (en) Microprocessor system with instruction pre-fetch
US7779286B1 (en) Design tool clock domain crossing management
US4402044A (en) Microprocessor with strip layout of busses, ALU and registers
US5243698A (en) Microcomputer
US4422143A (en) Microprocessor ALU with absolute value function
US4584642A (en) Logic simulation apparatus
JPH0710067B2 (ja) ディジタルデータ通信システム
US7054802B2 (en) Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading
KR100499720B1 (ko) 시스템 엘에스아이 설계 방법
US4571675A (en) Microprocessor device with integrated auto-loaded timer
US7051194B2 (en) Self-synchronous transfer control circuit and data driven information processing device using the same
WO1995028676A1 (en) Local semiautonomous dedicated-storage access for parallel processors
US6523153B1 (en) Method of design verification for integrated circuit system and method for generating interface model for design verification
EP0338564B1 (en) Microprogram branching method and microsequencer employing the method
JPS62154032A (ja) インストラクシヨンカツシユメモリ