JPH01157150A - マルチチャンネルデータ通信制御器 - Google Patents

マルチチャンネルデータ通信制御器

Info

Publication number
JPH01157150A
JPH01157150A JP63194725A JP19472588A JPH01157150A JP H01157150 A JPH01157150 A JP H01157150A JP 63194725 A JP63194725 A JP 63194725A JP 19472588 A JP19472588 A JP 19472588A JP H01157150 A JPH01157150 A JP H01157150A
Authority
JP
Japan
Prior art keywords
data
bits
character
bit
characters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP63194725A
Other languages
English (en)
Other versions
JP2812959B2 (ja
Inventor
John Wishneusky
ジョン ウィッシュニスキー
Cecil Kaplinsky
セシル カプリンスキー
Anthony O'toole
アンソニー オツール
Shahin Hedayat
シャヒン ヘダヤット
Shrikant Acharya
シュリカント アチャーヤ
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.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic 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 Cirrus Logic Inc filed Critical Cirrus Logic Inc
Publication of JPH01157150A publication Critical patent/JPH01157150A/ja
Application granted granted Critical
Publication of JP2812959B2 publication Critical patent/JP2812959B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 1森分更 本発明は、大略、マルチチャンネルデータ通信制御器に
関するものであって、更に詳細には、ホストの処理能力
に対する依存性を最小として広範囲のプロトコル及びそ
の他のホストシステムの要件を取り扱う菖にカスタム化
することの可能な柔軟性があり汎用性がありエンジンを
基礎としたアーキテクチャ−を持った通信制御器に関す
るものである。
従】1え」 2つのコンピュータ間又は1つのコンピュータシステム
の種々の構成部品間のコミュニケーション即ち通信(同
期及び非同期)は、屡々、−度に1ビツトづつ直列的に
行なわれている。然し乍ら、マイクロプロセサ、マイク
ロコントローラ、及びその他の計算装置は、実際のデー
タキャラクタとして、データ、ビットを並列(屡々、−
度に8ビツト)で取り扱う。従って、データが電話回線
で送られるか(その場合にはモデムを使用することが必
要である)又は直接的に周辺装置(例えば、シリアルプ
リンタ)へ送られるかに拘らず、「ホスト」プロセサ(
パラレルデータ)と例えばモデム又はシリアルプリンタ
(シリアルデータ)等のホストが通信する装置との間に
は通信インターフェースが必要とされる。
このインターフェース装置は、ホストから出力されるパ
ラレルデータをシリアルデータビットに変換することが
必要であり、入力するシリアルデータビットをホスト用
のデータキャラクタに変換することが必要である。更に
、それは、エラーチエツク及びその他の種々のプロトコ
ルに関連する要求を実行する場合があり且つホストシス
テムとのインターフェース及びホストが通信するシリア
ル装置を取り扱う場合がある。
この様なインターフェース装置は、通常、データコミュ
ニケーションコントローラ即ちデータ通信制御器又はシ
リアルコントローラと呼ばれる。
何故ならば、該制御器は、ホストのシリアルボート(モ
デム、シリアルプリンタ、又はその他のシリア装置に接
続されている)の1つを介してデータの伝送及び受信を
制御するからである。ホストプロセサの各シリアルポー
ト、即ち通信[チャンネルJはこの様な装置によって制
御されねばならない。
各チャンネルに対して別の制御器が使用される場合に巻
き込むハードウェアのオーバーヘッド即ち費用の幾らか
を回避する為に、マルチチャンネル装置が開発された。
該装置は、大略、各付加的なチャンネルに対してハード
ウェアを二重にすることにより、マルチプル即ち複数個
の通信チャンネルを同時的に処理する。
データは、屡々、マルチチャンネルを介して同時的に送
られるので、最近のマルチチャンネル制御器は、マルチ
チャンネルを横断してのデータの伝送及び受信の両方に
対して、ハードウェアデータ待ち行列(「先入れ先出し
」待ち行列、乃至はrFIFOJ)を有する様になった
。これらのFIFOは、ホストプロセサがこの様なデー
タをアクセスする為の時間を持つ迄、−時的に各チャン
ネルに関連するデータを格納する。
マルチチャンネル制御器は、又1種々のレジスタ(各チ
ャンネルに対して、ボー速度及びキャラクタ寸法等の通
信パラメータを格納する為)、タイマー/カウンター(
データの伝送及び受信の同期を取る為)、及びデータビ
ットの送受信及びデータキャラクタの組み立て/分解の
主要なタスクを実行する為の略ランダムなロジックを有
している。
例えばナショナルセミコンダクタN516550ACE
 (FIFOを具備する非同期通信要素)等の現在のU
ART、又シグネティックスの5CC26980c t
 a IUART (8チヤンネルユニバ一サル非同期
レシーバ/トランスミッタ)等のマルチチャンネルUA
RTでさえも、パラメータの設定(例えば、ボー速度及
びデータキャラクタ寸法)を超える柔軟性は殆どないホ
ストシステムを提供している。
ユーザがカスタム化したプロトコル又は異なったプロト
コルの集りを実行することを所望する場合、現在の制御
器は、この様なタスクを非能率的に実行する(何故なら
ば、ホストの処理能力に広範に依存−例えば、rXon
/XoffJデータフロー制御の実行−及び「特別の」
キャラクタを認識する能力に欠け、又FIFO及びタイ
マー/カウンタの数及び寸法を修正する能力でさえも欠
如している)か、又はこの様なタスクを実行することは
全く不可能である。
この分野において興味のあるものは、インテル8273
.8273−4.8273−8プログラマブルHDLC
/5DLCプロトコル制御器であり、それは、技術的に
はマイクロプログラムによってプログラムされるもので
はあるが、HDLC及び5DLC同期プロトコルに専用
のアーキテクチャ−の周辺に構築されるものである。例
えば、UART適用において同一のアーキテクチャ−を
使用することは、不可能であるか、又は極めて非能率的
な装置となる。
更に、現在のシステム設計技術は、カスタムプロトコル
に対してはカスタム制御器アーキテクチャ−を必要とす
る。この様なカスタム制御器適用によりマルチプルチャ
ンネルをサポートすることが可能ではあるが、このこと
は、各付加的なチャンネルに対しての単一チャンネルア
ーキテクチャ−を実際上二重とすることによって達成さ
れる。
この様に柔軟性を欠如する結果、種々の通信要求を持っ
たユーザは、チップの大きさが大き過ぎることとなるか
(過剰に不必要な特徴を具備するので)又はチップの大
きさが小さすぎる(ユーザの要求を満足させることが不
可能)こととなる。
且−五 本発明は、以上の点に鑑みなされたものであって、上述
した如き従来技術の欠点を解消し、ホストシステムに対
する依存性を最小とし広範囲のプロトコル及びその他の
ホストシステムの要求を取り扱うべくカスタム化させる
ことが可能であり、柔軟性に富み、汎用性があり、且つ
エンジンをベースとしたアーキテクチャ−を持ったマル
チチャンネルデータ通信制御器を提供することである。
皇−處 従って、ホストシステムに対して及びホストが通信する
複数個のシリアル装置に対しての柔軟性のあるデータ通
信アーキテクチャ−が必要とされており、即ち、エンジ
ンを基礎とし、マイクロプログラムアーキテクチャ−で
、制御器の外部インターフェースを取り扱う為の専用プ
ロセサを有するものが必要とされている6本発明は、常
に存在するタスクのシリアルデータを送信し且つ受信す
ること、及びホストへ又はホストからキャラクタを送っ
たり受信したりすることを、専用プロセサを使用して迅
速に且つ能率的に行なうことを可能としている。このこ
とは、汎用のメインエンジンをこれらの時間的に重要な
タスクの負担を軽減し、それがキャラクタの組み立て及
び分解及びデータのFIFO内の維持及びエラーチエツ
ク及びその他のプロトコル関連タスク等の比較的複雑な
(時間的には重要性は少ないが)タスクを実行すること
を可能としている。
本発明は、例えば、良く使用されている4又は5ボー(
baud)速度に制限されるべきものではなく、妥当な
範囲内において(付加的な外部クロック源の必要性無し
に)事実上任意の特定したボー速度を実施することを可
能としている。更に、チップの基本的なアーキテクチャ
−に対して修正を施すこと無しに、単にマシンをマイク
ロコード化することによって、カスタムプロトコルを実
施することが可能であり、設計時間をかなり減少させて
いる。ユーザインターフェース全体をカスタム化させる
ことが可能である。ユーザは、特定のチャンネルに対し
て、タイマー/カウンタの数のみならず、FI FO(
RAMに実現されている)の寸法を修正することが可能
である。この様な「制御」特徴は、専用のランダムロジ
ックで固定される代わりに、ファームウェアで実現され
且つ汎用エンジンによって実施されるので、ユーザをイ
ンタラブドする方法及び優先順位付けさえも修正するこ
とが可能である。
この汎用アーキテクチャ−の柔軟性は、制御器を特定の
ユーザの要求に対して一層カスタム化させることを可能
とし、制御器自身による性能が高速であるばかりか、ホ
スト処理能力に対する依存性を一層軽減させることを可
能としている。従来ホストによりソフトウェアでのみ可
能であったことが、−層迅速に制御器自身によって実行
することが可能である。最後に、この汎用アーキテクチ
ャ−は、設計時間を短縮化し、且つ向上した機能性を具
備するより小型のチップとすることを可能としている。
本発明は、3つの階層のプロトコルからなるヒエラルキ
ーから構成され、汎用のマルチチャンネルデータ通信ア
ーキテクチャ−を提供することによって上述した如き従
来技術の欠点を解消している。
第1階層のプロセサ、即ちrビットエンジン」(又は、
幾つ、かの実施例においては、「キャラクタエンジン」
又は所要のデータ単位により定義されるエンジン)が、
最も頻繁に発生するタスク、即ち本制御器が直接的に通
信する複数個のシリアル装置への又はそれからのシリア
ルデータの送信及び受信、を取り扱う。後述する現在の
実施例においては、2個のビットエンジンを使用してお
り、即ちその1つは各ビットを各外部シリアル装置(「
出力ビツトエンジン」即ちrOBEJ )へ伝送するも
のであり、且つ他の1つは各この様な装置から各ビット
を受け取る為のもの(「入力ビットエンジン」即ち「よ
りE」)である。
複数個のシリアル装置は、制御器の関心(ビットの送信
及び受信の両方に対して)を得るべく同時的に競争する
ので、これらのビットエンジンはサービス用の全ての要
求を取り扱わねばならない。
IBEは各入力ビットをサンプルし且つ認識せねばなら
ず、一方OBEは各出力ビットの伝送を同期させる。両
方のビットエンジンは、常にサービスの為に「メインエ
ンジン」をインタラブド、即ち中断させ、各入力ビット
を伝送し、又は次の出力ビットを要求し、又そのビット
エンジンの次の「状態」に対応する適宜のタイマー/カ
ウンタに修正させねばならない。
後に詳説する如くこれらのビットエンジンによって実行
される精密な機能に拘らず、ビットエンジンは、次のビ
ットを伝送するか又は受信せねばならない期間である次
のビット期間をミスしない様に、極めて迅速に(rビッ
ト時間」において)これらの機能を実行せねばならない
。従って、最も高い優先度はこれらのビットエンジンに
与えられる。
該ビットエンジンからインタラブドを受け取ると、メイ
ンエンジンは、キャラクタの組み立て及び分解の「フォ
アグランド(前景)」タスクも迅速に実行せねばならな
い。換言すると、特定のチャンネルから出力すべきホス
トからのデータキャラクタが与えられると、メインエン
ジンはそのキャラクタを個々のビットに分解し、その際
に次のビット転送の準備が出来ている場合にOBEがこ
の様なビットをアクセスするのに間に合う様に分解が行
われねばならない。同様に、メインエンジンは、IBE
によって受け取られた各ビットを、完成された場合にホ
ストへ転送されるべく形成されるキャラクタに組み立て
ねばならない。
本システムに入力され且つ出力される不断のビットの流
れに対しての次の優先度は、「バスインターフェースロ
ジック」 (即ちBIL)であり。
それはホストプロセサに対する「ユーザインターフェー
ス」を司る。データキャラクタは、秩序圧しい態様で、
ホストへ送られ且つホストから受け取られねばならない
。周期的にメインエンジンがその残存する「バックグラ
ウンド(背景)」タスクを実行することを可能とする一
方、BILがバス、を支配してこれらのタスクを実行す
ることを可能とする為にデータ及びアドレスバス上でア
ービトレーション即ち仲裁が行われねばならない。
従って、最低の優先度は、メインエンジンによって実行
されるこれらのバックグラウンドタスクの為にリザニブ
されている。これらのタスクは、FIFO内のデータの
管理、データキャラクタを送信又は受信する為にホスト
プロセサをインタラブドすることの必要性の為のスキャ
ニング、及び種々のタイミング遅れ、流れ制御及びブレ
ーク検知機能の実行等を包含している。要約すると、メ
インエンジンは、バックグラウンドにおいて、カスタム
化プロトコルに関連する複雑でキャラクタ指向の(従っ
て時間的な重要性は比較的低い)タスク及びホストシス
テムのその他の特別の要求を実行する。
従って、この3階層プロセサヒエラルキーは、時間的に
重要なタスクをビットエンジンとメインエンジン(フォ
アグラウンドタスク)によって迅速に且つ能率的に実施
することを可能とし、且つユーザインターフェースをB
ILによって処理し、一方汎用メインエンジンを比較的
自由な状態とさせてユーザがファームウェアを介して制
御器内に組み込むことが可能な巨大なプレイの複雑な(
バ、  ツタグラウンド)タスクを実行することを可能
としている。その結果、効率的で且つ一見カスタム化さ
れたチップが得られ、それは迅速に設計することが可能
であり、且つマルチチャンネルデータ通信に関連する時
間のかかるタスクを実行する為の責任をホストプロセサ
から取り除いている。
3つの階層のプロセサの間の能率的な相互作用を得る為
に、この汎用アーキテクチャ−の構成に多数の独特の特
徴が組み込まれている。これらの特徴の殆どは、ホスト
プロセサのジャグを容易としており、ホストプロセサを
より世俗的なしかし時間のかかる多くのタスクを処理す
ることの責任から解除している。これらの特徴は、後に
詳細に説明するが、以下に要約的に説明する。
この様な特徴の1つは「良好データインタラブド」であ
り、それは、殆どの制御器は外部装置から受け取るシリ
アルデータをキャラクタの形に組み立てるのみならず、
そのデータに関して成る程度のエラーチエツクを実行す
る為に、作られた。
従って、ホストシステムが制御器から受け取る各キャラ
クタの「ステータス」をチエツクすることは一般的であ
る。そのステータスが、例えば、キャラクタの伝送が伝
送エラーとなったことを表す場合、ホストは適宜のサー
ビスルーチンを実行してこの様なエラーを処理する場合
がある。各キャラクタの存在及びステータスのチエツク
(どのような動作を行なうべきかを決定する為に)は、
ホストプロセサが実行する為には非常に時間のかかるタ
スクである。
良好データインタラブドという特徴は、その様なタスク
に関連するオーバーヘッドの殆どをホストプロセサから
取り除いている0本制御器によって受け取られるデータ
の殆どは「良好データ」である(即ち、通信エラーの結
果ではなく、又ユーザによって指定される特別のキャラ
クタの如き例外でもない)ので、可能なステータスの各
タイプをホストプロセサに通知する為にホストプロセサ
をインタラブドすることは実際上必要性がない。
むしろ、データのタイプのステータスが1つのキャラク
タから次のキャラクタに変化したことを通知し且つ転送
の為に使用可能なr良好データ」のキャラクタの数をホ
ストへ通知する為にホストをインタラブドすることが必
要であるに過ぎない。
従って、例えば、22個のキャラクタを受け取ると(1
0個の「良好データ」のキャラクタと、それに続いて、
不当なキャラクタ、ユーザによって指定された特別のキ
ャラクタ、次いで10個の良好キャラクタ)、ホストは
4回(22回ではない)インタラブドされることが必要
とされるに過ぎない、即ち転送用に10個の良好データ
のキャラクタが与えられていることをホストに通知し、
2回目は不当なキャラクタを受け取ったことをホストに
通知し、且つ3度目は、ホストが「待ち望んでいた」特
別のキャラクタが到着したことをホストに通知する。最
後の4度目のインタラブドは。
良好なキャラクタの第2のストリング(列)をホストに
通知することであるが、それはそのストリングが何等か
のその他のタイプのキャラクタステータス(例えば、不
当キャラクタ又は特別例外キャラクタ)によって破断さ
れた時のみ又はキャラクタのホストが指定したスレッシ
ュホールドを受け取った時である。
本発明の汎用アーキテクチャ−により可能とされた別の
独特のユーザインターフェースの特徴は、「自動化デー
タ転送」であり、それは本制御器とホストプロセサとの
間のデータ転送の為に使用される実際の機構を包含して
いる。マルチプルチャンネルを包含することが可能であ
るかも知れないが、このアーキテクチャ−はRAMにお
いてFIFOを実現する上で本来的な柔軟性を維持し、
−方専用ハードウエアFIFOによって達成されるもの
と同等の性能を与えている。
現在の制御器は、固定アドレスを具備する専用ハードウ
ェアFIFOを使用し、ホストプロセサが制御器へ又は
制御器からデータブロックを転送する為にポインターを
操作することを必要とする。
例えば、ホストが16個のキャラクタからなるブロック
を受け取ることを所望する場合、現在の制御器は、ホス
トが制御器に受領チャンネルに関連するFIFOのアド
レスを供給することが必要である。
自動化データ転送機構は、メインエンジンをポインター
操作のオーバーヘッドから解除する。メインエンジンを
このタスクで過剰に負担をかける代わりに、BILは、
関連するアドレス動作機構を持ったマルチプル専用ハー
ドウェアFIFOの代わりに、1組のポインタ/カウン
タハードウェアでこのタスクを実行すべく設計されてい
る。以下に説明する好適実施例は、実際に2組のポイン
タ/カウンタを使用して、引き続くインタラブドのパイ
プライン動作を与える。
従って、ホストは、3つの独特のアドレスを「記憶」す
るだけに過ぎず、即ちデータを受け取る為に1つと、そ
のデータのステータスを受け取る為に1つと、データを
転送する為に1つである。
ホストは、FIFOの実際の寸法又は位置のいずれも知
る必要はない。適宜のチャンネル番号及び方向でさえも
本制御器によって維持される。
従って、上述した例において、16個のキャラクタのデ
ータを受け取ったことを表すインタラブドを受け取ると
(ホストはそのデータがr良好データ」であるか否かを
既に知っている)、ホストは「データFIF○の受け取
り」の為に「アドレス」を供給することのみが必要であ
り、且つ自動化データ転送機構は、そのデータが格納さ
れているRAM内の実際の初期アドレスへのポインター
を使用することによりそのアドレスに応答する。
更に、専用カウンタは、16個の全てのキャラクタが転
送される迄、キャラクタのカウントを自動的にデクリメ
ントし1、一方これらのキャラクタが格納されている実
際のRAMアドレスへポインターをインクリメントさせ
る。同一の機構が、ホストによるデータの転送のみなら
ずステータス情報の転送を許容し、ホストから実際のア
ドレスを維持し且つポインターを操作することの責任を
取り除いている。
上に説明したBIL機構は、アドレス動作方法を(「文
脈指向アドレス動作」)、このアーキテクチャ−の別の
独特の特徴である「状態インタラブド処理」機構と共用
している。文脈指向アドレス動作は、ホスト、BIL及
びメインエンジンに関連する特定のチャンネルに拘らず
機能を実行する為に、これらをイネーブルさせる為に実
行される。このアドレッシング機能は、特定のチャンネ
ルに関連する適宜の資源をアクセスすることとは別に、
ホスト、BIL及びメインエンジンによって実行される
機能が基本的にチャンネルと独立しているので、有用で
ある。
従って、ローカル及びグローバルなアドレスが使用され
る。グローバルアドレスとは、IBE。
OBE、BIL、メインエンジン及びチャンネルに特定
的ではない制御器のその他のモジュールと関連する実際
のハードウェアレジスタのみならず、FIFO及びその
他のRAMを基礎にしたデバイスの実際の「メモリマッ
プコした位置のことを言う、ローカルアドレスは、基本
的に、メモリマツプを特定のチャンネルに関連する等価
のセグメントに区画分けする。従って、ローカルアドレ
スは、チャンネルのいずれかにおいて対応するレジスタ
をアクセスするために使用することが可能である。
ローカル/グローバルアドレス動作手法は、今日の多く
のコンピュータの命令の組によってサポートされている
が、メインエンジンのインタラブドハンドラーにおいて
使用される文脈指向アドレス動作機構は、そのマイクロ
コード化したエンジンが、専用インタラブドベクトル動
作機構と結合されて、ハードワイアードステートマシン
の如くに動作することを可能とさせる。「文脈RAMJ
として指定されたRAMのエリアは、ファームウェアル
ーチンへの一連のエントリ個所(即ちチャンネル番号及
びそれらの方向(即ち、伝送か又は受領か)の各組合せ
に対して1つ)を有している。
IBE又はOBEからのインタラブドを受け取ると、ビ
ットエンジンによって供給される既知のチャンネル番号
及び方向を使用して、メインエンジンは、直ぐに適宜の
ファームウェアルーチンのエントリポイント(文脈RA
Mテーブルに含まれている)へベクトル動作させる1文
脈指向アドレス動作は、このベクトル化処理を、それが
あたかもハードワイアードであるかの様に迅速に発生す
ることを可能とする。
更に、付加的な機構(以下に説明する「文脈リターン」
命令コ、−ド(opcode) )が、これらのベクト
ルがチャンネル番号/方向組合せが存在する場合よりも
一層ルーチンが存在する場合であっても、これらのベク
トルが適宜のファームウェアルーチンに対してポイント
する即ち指し示すことを可能とする。このことは、各ル
ーチンの終了の前にファームウェア自身に文脈RAMエ
ントリポイントを修正させ、次の適宜の(その同一のチ
ャンネル及び方向に対する次のビットエンジンインクラ
ブトの後に何時か後の時間に実行されるべき)ルーチン
の既知のエントリポイント内にローディングさせること
によって達成される。
最後に、独特の機構である[キャラクタ組み立て/分解
」命令は、キャラクタの組み立て及び分解に関連する時
間的に重要なフォアグランドタスクの汎用メインエンジ
ンの実行を容易とさせる。
これらの独特の命令コードは、その各々が1マシンサイ
クルにおいてメインエンジンのALUによって実行され
、キャラクタ組み立て/分解処理の基本的なビュルディ
ングブロックを表している。
要約すると、これらの命令は4つの命令コードを持って
おり、即ち、 (1) ri s h]命令コードは組
み立てられたキャラクタが右揃えとなる様に、受け取っ
たビットを組み立て中のキャラクタにおける適宜の位置
内に効率的にシフトさせ、(2)「oshJ命令コード
は、キャラクタ分解に対して同等の機能を実行し、(3
)rbcapJ命令コードは、キャラクタ全体が伝送又
は受信された時を表す為にビットカウントをデクリメン
トさせ、−方そのキャラクタの蓄積されたパリティをビ
ット毎に計算しくパリティ発生の為と出力するキャラク
タの為及びパリティエラー検知の為及び入力キャラクタ
の為の両方)、且つブレーク条件(キャラクタ全体がゼ
ロで構成されている)に対するチエツクを行ない、(4
)r文脈リターン」命令コーードにおいては、各ファー
ムウェアルーチンがその時に現在のチャンネルを介して
のデータの伝送又は受領の為に実行されるべき適宜のル
ーチンのエントリポイントをリターンさせる。
上に要約した3階層処理アーキテクチャ−は、その関連
する良好データインタラブド、自動化データ転送、状態
インタラブド処理、及びキャラクタ組み立て/分解機構
と共に、本発明の好適実施例(CL−CD180 8チ
ャンネル非同期通信制御器rMcccOcTARTJ 
)として後に詳細に説明する。
注意すべきことであるが、本発明によって達成される柔
軟性は、同期及、び非同期プロトコルを取り扱うことの
可能な多数のその他の実施例を実現することを可能とす
る6例えば、キャラクタ指向プロトコル(charac
ter−oriented protocol)は、ビ
ットエンジンを「キャラクタエンジン」に変換させ、且
つ付加的なキャラクタv!、識ロジック、及び多分DM
Aハードウェア(メモリ処理能力を高速化させる為)及
びCRCエラーチエツクハードウェア(メインエンジン
の負担を軽くする為)等を付加することによっ、て実現
させることが可能である。ビット指向プロトコルでさえ
も、インテリジェント「バッファマネジャー」及び[メ
モリコントローラ」を必要とする場合があるかも知れな
いが、このアーキテクチャ−で実現させることが可能で
ある。
付加的なハードウェアサポートが必要であるかも知れな
いが、複雑なカスタム化した同期プロトコルでさえもこ
の汎用アーキテクチャ−を単に再マイクロコード化する
ことによって取り扱うことが可能であり、マルチチャン
ネル通信制御器をカスタム化させる為に必要な時間を著
しく減少させている。
可変数のタイマー/カウンタ、フロー制御(例えば、r
Xon/XoffJ)、特別キャラクタ検知、インタラ
ブド処理、及び現存のプロダクトエミュレーションでさ
えもこのようにして実現させることが可能である。更に
、この汎用アーキテクチャ−を「記憶ロジックアレイ(
SLA)J技術を使用して実現することにより、多様な
ハードウェアロジック変形例を単にメタルマスクの変化
によって達成することが可能である。
災胤災 以下、添付の図面を参考に、本発明の具体的実施の態様
に付いて詳細に説明する。
以下の説明は、単に例示的なものであって、何等特定的
な限定を付することを意図してなされるものではない。
本発明の好適実施例に関して説明するが、その他の実施
例(カスタム同期及びその他のシリアルプロトコル、「
セントロニクス」インタフェース等のパラレルプロトコ
ル、及び制御器のユーザインターフェースへの種々の改
良を実現するもの)は以下の記載の範囲に自明なもので
ある。
アーキテクチャ− 第1b図は、シグネティックス5CC26980cta
lUARTの典型的なマルチチャンネルUARTアーキ
テクチャ−を図示している。注意すべきことであるが、
ブロックA1は、2つの外部のシリアルデバイス(装@
)のいずれかへ又はそれからシリアルデータを伝送する
か又は受信する為、及びデータキャラクタを組み立て且
つ分解(チャンネルA4及びチャンネルB5を使用して
)する為の専用ロジックを有している。
チャンネルA内の専用ロジックは、1つの外部シリアル
装置と通信を行なう為にデータキャラクタを組み立て且
つ分解する為に、ビットを保持用レジスタ内にシフト入
力し且つそれからシフト出力させる。この様なロジック
は、チャンネルB内に複製されており、2つの別々の外
部シリアル装置との通信の為にキャラクタの組み立て及
び分解を行なうことを可能としている。付加的なタイミ
ングロジック6は、ハードウェアカウンタレジスタ内に
ロードされる予め定義されたパラメータに基づいて、こ
の様な通信を行なう為の適宜のボー速度(baud r
ate)を実現する為に使用されている。
注意すべきことであるが、タイミングロジック、及びそ
の入力ポート、出力ピン、チャンネルA及びチャンネル
Bモジュール等を包含するブロックAの全ては、8チヤ
ンネル装置の機能性を得るために、もうあと3つ複製さ
れている。換言すると、この8チヤンネルroctar
tJは、その殆どの部分が、第1a図に示した2チヤン
ネルrduartJのロジックを複製させることによっ
て形成されいる。勿論、あるロジックは複製されていな
い。例えば、ホストプロセサとの通信を取り扱う操作制
御7及びインタラブド制御8モジユール、及びボー速度
発生器9及びその他のタイミングロジック10等がそれ
である。然し乍ら、該2チヤンネル装置(第1a図)に
おけるロジックのかなりの部分が単純に複製されてこの
8チヤンネル装置を形成している。
第1a図及び第1b図を第2図(本発明の好適実施例M
CCC0CTARTのブロック@)と比較すると、この
概略のブロック図からでさえも。
この様なロジックの複製が行なわれていないことを理解
することが可能である。外部シリアル装置からデータの
ビットを受け取る為に単に1つのエンジンIBE  A
が設けられているに過ぎない。
このエンジンは、これらのビットをデータキャラクタに
組み立てる為のロジックを有することもない。その代わ
りに、8個の外部シリアル装置のいずれかからのデータ
をサンプルし且つ受け取゛す、次いでキャラクタ組み立
てを実行する為のファームウェアルーチンを実行するメ
インエンジンBをインタラブドするためにのみの専用と
なっている。
同様に、外部シリアル装置へデータのビットを伝送する
為に単に1つのエンジンOBE  Cが設けられている
に過ぎない、このエンジンは、データキャラクタを分解
する為のロジックを有するものではなく、8個の外部シ
リアル装置のいずれかへのデータ転送の同期をとり、フ
ァームウェアを介してキャラクタ分解機能を開始し且つ
転送用の付加的なデータビットを与える為にする為にメ
インエンジンをインタラブドするためにのみの専用とさ
れている。
従って、これら2つのI10ビットエンジンは、それら
のロジックを複数個複製することによってではなく、複
数個のチャンネルにおいてビットの伝送及び受領の「時
分割」処理に対する時分割多重方式を使用することによ
って、複数個のチャンネルを取り扱う。基本的に、該2
つのビットエンジンの各々は、各チャンネルを迅速にス
キャンして、入力するビットをサンプル即ち採取し且つ
出力ビットを伝送乃至は送信する。
MCCC0CTARTは1例えばシグネティックスOc
 t a l UART等のその他のマルチチャンネル
シリアル制御器が実行するものと、同一の基本的機能(
外部装置とのシリアルデータ転送、ホストプロセサとの
データキャラクタ転送、及びキャラクタ組み立て及び分
解)を1個のチップ上で実行する。然し乍ら、MCCC
0CTARTは、これらの機能をプロセサの3つの個別
的な階層に分離させる。
BIL  Dはインタラブド及びデータキャラクタ転送
を包含する全てのホストプロセサとの通信を処理する。
IBE及び○BEは、外部装置との全てのシリアルデー
タ転送を処理する。メインエンジンは、キャラクタ組み
立て及び分解の時間的に重要な機能を実行することが可
能とされ、又マイクロコード制御下で(即ち、多大のカ
スタム化用の柔軟性を持って)多くのその他の複雑な内
部データ管理及びプロトコル指向機能を実行することも
可能としている。
例えば、シグネティックス0ctalUARTの受領デ
ータFIFOは、3つのキャラクタの固定容量を持って
いる。このことは、ある通信要求に対しては十分である
かも知れないが、その他の場合に不十分となり、データ
転送中に大きな遅れとなる。MCCC0CTARTアー
キテクチャ−は、ハードウェアFIF○ではなくRAM
を基礎としたPIFOEを有しており、且つこれらのF
IFOの寸法を再度決定することが可能であるから(動
的に、又はファームウェアを修正することにより)、F
IFOの寸法をユーザの特定の要求に合せてカスタム化
させることが可能である。
1つのチャンネルは3キヤラクタFIFOを必要とする
場合があるかも知れず、一方別のチャンネルは10キヤ
ラクタFIFOを必要とする場合があるかも知れず、又
更に別のチャンネルはFIFOをぜんぜん必要としない
場合があるかも知れない、 更に、カウンタ/タイマー
は、データビットの伝送又は受領の同期、伝送又は受領
されるキャラクタ又はデータビットの数のカウント、又
は特定のデータキャラゲタの受領の間にどれだけの時間
が経過したかの決定等の多様な目的の為に作用すること
が可能である。この様なカウンタ/タイマーの異なった
使用態様の数は事実上無制限である。 従って、カウン
タ/タイマー等の特徴の数及び寸法のみならず正確な機
能をカスタム化することが可能であることは極めて有用
である。このことは、MCCC0CTARTにおいては
、ファームウェアを変化させることによって達成される
。カウンタ/タイマーは所望の数だけ且つ所望の大きさ
とすることが可能であり、この様な目的の為に形成され
るRAMの量によってのみ制限されるに過ぎない。更に
重要な点であるが、カウンタの機能性は真にプログラム
することが可能である(例えば、カウンタをデクリメン
トする速度は、ある時刻を過ぎると加速する場合がある
。一方、シグネティックスの0ctalUARTは、4
つのカウンタ/タイマーを与える制限された柔軟性を提
供するのみであり、それはあるタイマー/カウンタの値
を特定することが可能であるという意味においてのみr
プログラム」する(即ち、パラメータ化する)ことが可
能であるに過ぎない。それらの正確な機能性は修正する
ことが出来ず、又それらの数及び寸法もユーザの明細に
従ってカスタム化させることは不可能である。その結果
、ハードウェア資源の機能性は不十分なものであり、又
その使用・度は非効率的である。
フロー制御(rXon/Xo f fJ )は、MCC
C0CTARTのファームウェア内において完全に実現
させることが可能であり、そのことはホストプロセサを
このタスクから解放することを意味している。本制御器
は、データストリーム内における成る特別のキャラクタ
を「埋込命令」として解釈するべくプログラムさせるこ
とが可能である。専用ランダムロジックを使用する代わ
りに、汎用マイクロコード化アーキクテクチャーを使用
することから得られる柔軟性は著しく向上され、その具
体的な例は正に無限である。
要するに、過去においてはホストの著しい相互作用を介
してのみ達成することが可能であったソフトウェア構格
の多くをMCCC0CTARTのファームウェアで実現
することが可能である。この様な柔軟性は、例えばシグ
ネティックス0CtalUART、又はシグネティック
スの初期の通信制御器で、5CN2651プログラマブ
ル通信インターフェース、5CN2652/5CN68
652マルチプロトコル通信制御器、5CN2661/
5CN68661工ンハンストプログラマブル通信イン
ターフェース、及び5CN2681シリーズDUART
等において従前に存在した固定型のランダムロジック構
成の場合には全く得ることが不可能なものである。
注意すべきことであるが、多くの制御器(コントローラ
)が「プログラマブル」という用語を使用しているが、
それは実際上単に[パラメータ設定可能」、即ちユーザ
は、制御器が特定のデータに関して固定した機能を実行
する為に制御によって使用される特定のデータの値(例
えば−16個のボー速度の1つ)にレジスタを設定する
ことが可能であるということ、であることを意味するに
過ぎない。
一方、MCCC0CTARTは、制御器によって使用さ
れるデータパラメータのみならず、制御によって実行さ
れる実際の機能的ステップ(カスタムプロトコルの実行
及び特定のホストインタラブドの優先度付け)及び制御
器によって使用される「仮想資源」のカスタム化(例え
ば、可変FIFO深さ、及びカウンタ/タイマーの可変
の数、寸法及び機能性)を修正することが可能である。
MCCC0CTARTを以前のシリアル制御器と区別し
ているプロセサの3つの階層に加えて、第2図は又、例
えば、ホストプロセサが各端部においてモデムを必要と
する電話回線を介して別のコンピュータと通信をしてい
る場合、MCCC0CTARTが使用する「モデム制御
ロジック」(rMcL」)Fを示している。MCLは、
スタンダードなモデム「ハンドシェイク」信号(「デー
タセットレディ」、[キャリア検知」、[送信要求J及
び「送信の為にクリア」)を与え、メインエンジンをこ
のタスクから解放している。モデム制御ロジックの同様
の構成の多数の例が当該技術分野において存在している
。例えば、ナショナルセミコンダクタlN58250−
B非同期通信要素、N516450/lN8250A/
N5I6C450/lN582C50A非同期通信要素
及びNS 16550 F I FO付き非同期通信要
素等がある。然し乍ら、これらの制御器のいずれもが、
MCCC0CTARTアーキテクチャ−の中心である汎
用マイクロコード化メインエンジンBにおいて本質的な
柔軟性を所有するものではない。
MCCC0CTARTの3つの「プロセサ」モジュール
(即ち、I10ビットエンジン、BIL及びメインエン
ジン)に付いて詳細に説明するが。
その説明において特に上に要約した独特の機能(良好デ
ータインタラブド、自動化データ転送。
ステートインタラブド処理、及びキャラクタ組み立て/
分解)に特に焦点を当てる。
I Oビットエンジン 第3a図は、入力ビツトエンジンの内部構成要素を示し
ており、その機能はデータのビットを受け取る為に全て
の外部装置をスキャンすることである(各チャンネルは
それ自身のボー速度を持っている)。ビットが受け取ら
れると、入力ビツトエンジンはメインエンジンのインタ
ラブド処理機1をインタラブドし、それはそのビットを
処理する為に適宜のファームウェアルーチンを開始させ
る。
チャンネルスキャナー2はIBEのマスターチャンネル
カウンタである。MCCCOCTARTは最大8個迄の
外部装置と通信するので、チャンネルスキャナーは、M
CCC0CTARTのシステムクロックによってクロッ
ク動作されて、1から8へ繰返しカウントを行なう。従
って、そのシステムクロックの各サイクルの期間中に、
チャンネルスキャナーの値はスキャン中の現在のチャン
ネルを表す。
各チャンネルに対して1つのボー速度カウントレジスタ
3(本実施例においては16ビツト)及び1つのボー速
度延長カウントレジスタ4(本実施例においては5ビツ
ト)が設けられている。これらのレジスタは、ボー速度
延長カウントレジスタを最大桁5ビツトとして、カスケ
ード構成とされている。共に、それらは初期的に、各ビ
ットに対して2回そのチャンネルから入力をサンプルす
ることが必要な(即ち、「半ビツト時間」)クロック数
(チャンネル総数で除算)に等しい値がロードされる。
ボー速度カウントレジスタは、1716ビツト時間(8
チヤンネルの場合)がロードされ、且つボー速度延長カ
ウントレジスタは、8の値がロードされ、複合カウント
はサンプリングを半ビツト時間の間隔で発生させる。従
って、これら2つのレジスタは、1/16ビツト時間増
分で、1/16ビツト時間から2ビツト時間への範囲を
アクセスすることが可能である。
例えば、1,200ビット/秒のボー速度のチャンネル
及び10MHのシステムクロックが与えられると、各1
秒の間に、l、200ビツトが送られるか又は受け取ら
れ、且つ一千万個のクロックが発生する。従って、3個
のチャンネルの形態を仮定すると、ボー速度カウントレ
ジスタは、チャンネル数で割ったビット当たりのクロッ
ク数(即ち、10,000,000を1,200’t’
割ったもの)、即ち約2,778の値にセットされると
、各ビット(「ビット時間」)毎に一度入力をサンプル
すべく同期してゼロへカウントダウンする(デクリメン
タ−5を介して)。従って、ボー速度カウントレジスタ
は、その値の半分(即ち、1.389)にセットされ、
各半ビツト時間毎にビットをサンプルすることを許容す
る。
IBEは2つのモードの内の1つのモードにおいて入力
をサンプルするが、それらの2つのモードとは、「同期
サンプル」モード(半ビツト時間毎又は全ビット時間毎
のいずれに入力がサンプルされる)及び「ゼロサーチ」
モード(二進rOJが検知される迄可及的に多くのデー
タがサンプルされる)である。各チャンネルに対して2
つの制御ビットが存在する。制御モードビット6は、ど
のモードでIBEが動作するかを決定しくボー速度延長
カウントレジスタは、IBEが同期サンプルモードで動
作する周波数を決定する)、且つ制御イネーブルビット
7は、そのチャンネルがイネーブルされるか否かを決定
する(何故ならば、特定のチャンネルを完全にディスエ
ーブルさせることが望ましい場合があるからである)。
ボー速度カウントレジスタ(初期的にはホストによって
設定される)、ボー速度延長カウントレジスタ、及び制
御ビットの1次の状態jの値は期間レジスタ8内に維持
される。ボー速度カウントレジスタ又はボー速度延長カ
ウントレジスタがゼロへ(以下に説明する如くに)デク
リメントされると、カウンタMUX9はこの事実を検知
し且つそのチャンネルに対応する期間レジスタからの夫
々の値を再ロードする。
このMCCC0CTART実施例によって処理されるも
のの如き非同期プロトコルにおいては、通常のキャラク
タは「開始ビット」 (二進「O」)及び「ストップビ
ット」 (二進「1」)によって「フレーム」化され、
キャラクタ自身(通常5乃至8ビツト)はそれらの間に
ある。
開始ビットに対するサーチが開始すると、各チャンネル
に対する現在の制御モードビット(ボー速度カウントレ
ジスタに関連している)によって示される如く、IBE
は常にゼロサーチモードにある。このモードの期間中、
ボー速度カウントレジスタはデクリメントされない。そ
の代わりに、現在のチャンネル上の入力は可及的に頻繁
にサンプルされ(即ち、nをチャンネル数として、各r
n番目」のクロック)、チャンネルMUXIOを喚起し
て現在のチャンネル入力をサンプルさせる。
制御ロジック11は、サンプルした入力をチエツクする
(制御モードビットから、それがゼロサーチモー、ドに
あることを知りながら)。サンプルしたビットが二進「
0」でない場合、ゼロサーチが繰返し行なわれる。この
処理は、二進rOJが検知されるまで(潜在的な開始ビ
ットの「端部」を表す)、無限的に継続し、その時点に
おいて、制御ロジックは、現在の制御モードピットを修
正することによって、IBEを同期サンプルモードへ変
換させる。この時点において、有効な開始ビットが検知
されていない場合も有り得る(例えば。
ノイズが瞬間的に「0」の値を発生した場合)。
この可能性は同期サンプルモードにおいて処理される。
同期サンプルモードになると、各チャンネルがスキャン
され(n個のチャンネルに対してn番目毎のクロック)
、現在のスキャンされるチャンネルはチャンネルスキャ
ナーによって表される。対応するボー速度カウントレジ
スタ及びボー速度延長カウントレジスタは、2個のカス
ケードレジスタとして、デクリメンタ−によってデクリ
メントされる。これら2つのレジスタのいずれかがゼロ
に到達すると、それはその初期値で再ロードされ、それ
はその対応する期間レジスタ8内に維持される(各チャ
ンネルに対して1つ)。
ボー速度延長期間レジスタは、初期的に、半ビツト時間
でサンプルすべくセットされる。このことは、有効開始
ビットが検知されるか否かを決定する為に、潜在的開始
ビットの「中間」を検査することを可能とさせる(この
時点において「0」が再度検知されると仮定される)。
この、カスケード構成としたボー速度カウントレジスタ
及びボー速度延長カウントレジスタをデクリメントする
処理は、ボー速度延長カウントレジスタがゼロに到達し
、現在のチャンネルから入力をサンプルする時間である
ことを表す迄、継続する0次いで、チャンネルMUXが
喚起され、現在のチャンネルの入力をサンプルさせる。
制御ロジックは、同期サンプルモードにおいては、ゼロ
サーチモードにおけるのとは多少異なって機能する。そ
れは、制御モードピット(ゼロサーチモードにおける如
く)から、IBEが同期サンプルモードにあるか否かを
決定する。ボー速度延長カウントレジスタは、チャンネ
ルスキャナーが各チャンネルをスキャンする速度(n個
のチャンネルが与えられたとして、nサイクル毎)と比
較して比較的頻繁にゼロに到達するので、制御ロジック
は付加的な機能を実行せねばならない。
比較的頻繁ではないが、ボー速度延長カウントレジスタ
がゼロに到達すると、制御ロジックはサンプルしたビッ
ト(チャンネルMUXの喚起により受領)をサンプルデ
ータビットレジスタ内ヘロードし且つサンプルビットフ
ラッグ(各チャンネルに対して1個)をセットする。こ
のフラッグは。
サンプルしたビットはメインエンジンによる検査の為の
準備がなされていることを表す。メインエンジンがこの
ビットをサンプルすると、それは該フラッグをクリアす
る(それは、ボー速度延長カウントレジスタが再度その
チャンネルに対してゼロに到達する時の前である)。し
かし、メインエンジンは、インタラブドを介して、ビッ
ト(現在のチャンネルに対して)が検査の為に準備がな
されていることをどうにかして通知されねばならない。
この問題を解消する為に、サンプルビットフラッグは、
又、制御ロジックに対して、IBEのインタラブドロジ
ック14を喚起することの必要性を通知しくそれがサン
プルデータビットをロードし且つサンプルデータビット
フラッグをセットする前に)、それによりメインエンジ
ンをインタラブドさせ、メインエンジンに対してビット
が検査の為に準備がなされていることを通知する。従っ
て、多くのn番目のサイクル期間の間、ボー速度延長カ
ウントレジスタは未だゼロへカウントダウンしているが
、制“御ロジックは条件付きによってメインエンジンに
対するインタラブドを開始する。
IBEは任意の与えられた時間においてメインエンジン
に対する1つのインタラプトペンディングのみを持つこ
とが可能であるので、制御ロジックがインタラブドベン
ディングフラッグ15をチエツクすることが必要である
。それがセットされると、制御ロジックは別のインタラ
ブドを開始することはできない。それがセットされず、
且つそのチャンネルに対してのサンプルビットフラッグ
がセットされると、制御ロジックはインタラブドロジッ
クを喚起し、それをしてメインエンジンをインタラブド
させる。
更に、制御ロジックは、現在サンプルされたデータビッ
トをテストし、且つ、それが二進「1」である場合にの
5み、1次の状態」の制御モードビット期間レジスタか
ら制御モードビットレジスタを再ロードする(無効開始
ビットの場合には、現在の制御モードビットをセットさ
せ、且つゼロサーチモードを自動的に再開させる)。
従って、ゼロサーチモード(常に初期的なモード)にお
いて、制御ロジックはサンプルデータレジスタをロード
し、且つ、サンプルビットが二進rOJである場合に、
制御モードピットを修正し、IBEを同期サンプルモー
ドとさせる。同期サンプルモードにおいて、全てのn番
目のサイクルの期間中(nチャンネルの場合)、制御ロ
ジックがインタラブドベンディングフラッグをチエツク
し、且つ、それがセットされておらず且つサンプルデー
タビットフラッグがセットされていると、制御ロジック
はインタラブドロジックを喚起してメインエンジンをイ
ンタラブドする。ボー速度延長カウントレジスタがゼロ
に到達しく比較的頻繁ではなく)でビットをサンプルさ
せると、制御ロジックもサンプルデータビットレジスタ
をロードし且つそのチャンネルに対するサンプルビット
フラッグをセットする。対応するボー速度期間レジスタ
からボー速度カウントレジスタを再ロードする付加的ロ
ジック(二進「1」が検知された場合にのみ制御モード
ピットを再ロードする)は、有効な開始ビットが検知さ
れる迄、IBEが自動的にゼロサーチモードに留まるこ
とを保証する。
然し乍ら、残りのロジックの殆どは、メインエンジンに
おけるファームウェアルーチンによって実行される。I
BEは初期的にゼロサーチモードにあり(開始ビットの
初期端部に対するサーチ)且つこの処理は二進「0」 
(開始ビットの初期端部)が検知される迄継続し、その
時点において、制御ロジックは制御モードピットを修正
し、IBEを同期サンプルモード(半ビツト時間)とさ
せることに付いては既に説明したゆ 同期サンプルモードにおいて、IBEはチャンネルを常
にスキャンする(n個のチャンネルの各々がn番目のサ
イクル毎にスキャンされる)が、チャンネル入力をサン
プルする代わりに、nサイクル毎に、制御ロジックは、
インタラブドが現在ベンディング(未決)ではなく且つ
チャンネルのサンプルビットフラッグがセットされると
、インタラブドを開始する。
このインタラブド機能(メインエンジンがサンプルビッ
トを検査することを許容するのに必要)に加えて、制御
ロジックは、開始ビット端部(ゼロサーチモードで検知
される)が実際に有効な開始ビットであるか否かを検証
する上で、メインエンジンを助けねばならない、上述し
た如く、同期サンプルモードは、初期的に、IBEをし
て半ビツト時間毎に入力をサンプルさせる。従って、潜
在的開始ビットの「中間」がサンプルされる。インタラ
ブドされると、メインエンジンは、有効な開始ビットを
チエツクする(状態インタラブド処理において後に説明
する)ファームウェアルーチンを喚起することを知得す
る。
そのファームウェアルーチンが開始ビットが有効である
と決定(何故ならば、ビットの端部と中間の間の「0」
から「1」へ値が変化したので)すると、そのル−チン
はそれ自身のエントリーポイントを「文脈RAMJ内へ
ロードさせ、有効な開始ビットが検知される迄、そのチ
ャンネル上で各サンプルビットの後に同一のルーチンを
実行させる。然し乍ら、ファームウェアルーチンが、開
始ビットが有効であると決定(ビットがその初期端部か
らその中間へ二進rOJを維持すると仮定)すると、そ
れは「開始ビット終端」ルーチンに対するエントリーポ
イントをロードし、且つボー速度延長期間レジスタを修
正し、IBEを同期サンプルモードに留まらせる。
IBEは、半ビツト時間でサンプルし、次に、申立られ
た開始ビットの終端をサンプルする(そのサンプルは、
該ファームウェアによって無視される)。このインタラ
ブドにおいて、フォアグラウンドルーチンはボー速度延
長期間レジスタを再ロードして、将来のサンプルをして
全ビット時間間隔で発生させる。
然し乍ら、ボー速度期間レジスタは、キャラクタの第1
ビツトの「中間」 (半ビツト時間の後)がサンプルさ
れ、メインエンジンに対して付加的なインタラブドを発
生する後追、ボー速度カウントレジスタ内にロードされ
ることはない。そのキャラクタの引き続くビットに対し
てのみならず(1ビツト時間間隔で)そのキャラクタの
この第1ビツトの中間のサンプリングからインタラブド
が発生される。これらのインタラブドの各々は、メイン
エンジンをしてそのファームウェアを喚起して、該サン
プルしたビットからそのキャラクタを組み立てる。これ
らの機能は、メインエンジン及びキャラクタ組み立て/
分解セクシJンにおいて以下に詳細に説明する。
IBEによって取られる最後のアクションは、ストップ
ビットの検知を包含する。メインエンジンはデータキャ
ラクタの幅(ビット数)を知っているので、それは、何
時ストップビットが発生するかを知っており、該ストッ
プビットの中間をサンプルした後に、そのストップビッ
トが実際に有効であるか否かを決定する。有効であれば
、メインエンジンファームウェアルーチンは、単に1次
の状態」制御モードビット(期間レジスタに関連)を修
正し、究極的にIBEをゼロサーチモードに戻しく次の
キャラクタの開始ビットの初期端部を捜索)、キャラク
タ検知処理全体を再度開始させる。ストップビットが無
効であると、メインエンジンファームウェハはその事実
を検知し且っフレーミングエラーをホストプロセサに通
知することが可能である。
第3b図に示したOBEは、IBEの機能と極めて類似
した態様で機能する。チャンネルスキャナー2は、8番
目のクロックサイクル毎に1つの態様で、8個のチャン
ネルをカウントする同一の機能を実行する。ボー速度カ
ウントレジスタ3は、IBEにおけるものと同一である
。しかし、ボー速度延長カウントレジスタ4は一層簡単
な機能を実施し、それは、通常、全ビット時間サンプリ
ングを行なうべくセットされ、その際にOBEをして特
定したボー速度でビットを出力させることを可能とさせ
る。開始ビット又ctストップビット検知は必要ではな
い(メインエンジンファームウェアルーチンはキャラク
タをスタートビット及びストップビットによってフレー
ム構成させるが、その処理はOBHにとって透明である
)。スタート及びストップビットの検知を行なうことが
必要ではないので、1つ又はそれ以上のチャンネルをデ
ィスエーブルさせることを許容する為に制御イネーブル
ビット7は未だ存在しているが、「制御モードビット」
の必要性は存在しない。
制御ロジックにおいて及びメインエンジンをインタラブ
ドする処理において差は存在しない。サンプルデータビ
ットレジスタの代わりに、OBEは、1ビツト(各チャ
ンネルに対して出力すべき「次の」ビット)を有する出
力データビットレジスタを有している。第2ビツトはデ
ータ出力ラッチレジスタ内にラッチされて、外部シリア
ル装置に対する連続的な出力を発生し、2ビツト出カバ
イブラインを形成する。サンプルビットフラッグの代わ
りに、IBEは出力ビツト必要フラッグを有し、それは
メインエンジンに対して、該2ビツトパイプラインをフ
ィル即ち充填する為に出力の付加的なビットが必要であ
ることを示す。
制御ロジックはIBHにおけるよりも著しく簡単である
。それは、単に、出力データビットをデータ出力ラッチ
内に移動させ、且つ出力ビツト必要フラッグをセットす
るだけである。更に、インタラブドがベンディング即ち
未決でない場合(即ち、インタラブドベンディングフラ
ッグ15がセットされていない場合)、制御ロジックは
インタラブドロジック14をしてメインエンジンをイン
タラブトさせる。
この処理は、キャラクタの全てのビットが送られる(最
後のストップビットを含んで)迄継続し、その時点にお
いて、該処理は単純に何度も繰返し行なわれる。メイン
エンジンは、次のキャラクタを分解し且つ該2ビツトパ
イプラインをそのキャラクタのビットで充填するが、そ
の処理もOBEにとっては完全に透明であり、1つのキ
ャラクタを次のものから区別することは必要ではない。
IBE及びOBE機能は極めて個別的であり、且つMC
CC0CTARTの残部にとって比較的透明である。そ
れらの機能性をビットの送りだし及び受け取りに拘束さ
せることにより(スタートビット及びストップビット検
知でさえも主にメインエンジンファームウェアによって
制御される)、それらは例えば高度にカスタム化したプ
ロトコル又はメインエンジンに対する埋込命令(ファー
ムウェア制御の下で殆どいかなる想像可能な機能の実行
も可能とする)の如き非常に異なった目的に対して再使
用する為に著しい量の柔軟性を維持している。
ハードウェアを複製すること無しに、IBE及びOBE
を、スタートビット、ストップビット。
中間ビット、又は非同期型の又は同期型の想像可能など
のようなプロトコルも検知する為に使用することが可能
である。付加的なハードウェアが必要な場合があるが、
ファームウェア制御型メインエンジンにより提供される
柔軟性の特徴をフルに活用して、IBE及びOBEの完
全な機能性を極めて効率的に使用することが可能である
バスインターフェースロジック (自動化データ転送) IBE及びOBEは、MCCC0CTART(7)イン
ターフェースを外部シリアル装置で処理するが、BIL
はMCCC0CTARTのその他のインターフェースを
そのホストプロセサで処理する。
OBEが転送する為にビットに分解する為にメインエン
ジンに対してホストからキャラクタを受け取らねばなら
ず、且つ、その逆に、IBEによって受け取られ且つメ
インエンジンによってデータキャラクタに組み立てられ
るビットはホストへ転送されねばならない。全てのシリ
アル制御器はこれらのデータキャラクタ転送機能を実行
せねばならないが、このデータ転送処理を自動化するB
ILの方法はむしろユニークであり、ホストプロセサか
ら何時FIFOが空であるかを決定する為のかなりの責
任を取り除いている。この処理は、又、各チャンネルに
対するポインターアドレス機能の複製を回避することに
より実効コストにおいて著しい減少をもたらしている。
例えばシグネテイックス5CC2698等の第1図に示
した如き現存のシリアル制御器は、単にアドレスをデコ
ードしくそれはホストによって維持され且つ供給されね
ばならない)且つ読取/書込回路を提供する。ホストプ
ロセサはその他のことを行なわねばならない。例えば、
この様な制御によってキャラクタが組み立てられ且つホ
ストへ転送する準備がなされたとすると、ホストプロセ
サは、マルチプルのチャンネルの中で、どのアドレス(
チャンネルに従属)が第1データキヤラクタを有してい
るかを決定し、且つそのアドレスを制御器に特定せねば
ならない。更に、各キャラクタが転送された後に、各ホ
ストは、FIFOが空であるか否かを決定せねばならな
い。
BILはこの処理におけるホストの役割を著しく簡単化
させる。文脈指向アドレス動作のMCCC0CTART
の使用に起因しく状態インタラブド処理に関し後に説明
する)、ホストはどのチャンネルからデータを受け取っ
たかを特定することは必要ではない。BILはこの情報
に対してのアクセスを持っており(バックグラウンドフ
ァームウェアルーチンによってロードされる)、且つそ
れをホストへ供給することが可能である。
メインエンジンのファームウェアルーチンは、そのデー
タを転送することが可能であることを示す為にホストを
インタラブドすることの必要性を検知する0例えば、M
CCC0CTARTは、メインエンジンがホストプロセ
サによって伝送されたデータキャラクタを分解し且つO
BEを介して個々のビットを伝送する為の準備がなされ
る迄、FIFOに該データキャラクタを格納させる。フ
ァームウェアルーチンは、特定のチャンネルの伝送デー
タFIFOが何時空であるかを検知し、ホストがインタ
ラブドされそのチャンネルを介して伝送されるべき付加
的なデータキャラクタを送ることが可能であることを示
す。
ファームウェアルーチンは、又、特定のチャンネルの受
け取りデータFIFOにおけるホストが特定したスレッ
シュホールドが何時到達したか(例えば、何時5バイト
が8バイトFIFO内に格納されたか)を検知し、ホス
トをインタラブドしてそれがこ熟らのデータキャラクタ
を受け取ることが可能であることを示す。伝送及び受け
取りインタラブドに加えて、外部装置の1つとしてモデ
ムを使用する場合、ファームウェアは、又、そのモデム
のステータス信号が何時変化したかを検知し、ホストが
インタラブドされてそれがモデムの新たなステータスを
読み取ることが可能であることを示す。
注意すべきことであるが、メインエンジンのファームウ
ェアルーチン(その機能を修正することは可能)は、通
常、このホストプロセサをインタラブドする為の必要性
を決定するタスクを実行する。更に、該ファームウェア
は、又、適宜のBILレジスタを初期化して、BILが
必要なデータ転送を実行することを可能とさせる。
該ファームウェアは、そのレジスタが「アイドル」状態
にある場合、この様なレジスタの2つのバンクの1つか
ら、3つのレジスタ、即ち受け取りインタラブドレジス
タ1、伝送インタラブドレジスタ2、及びモデムインタ
ラブドレジスタ3、の1つのレジスタを初期化させる(
特定のインタラブドに対して)。該ファームウェアは、
どのタイプのインタラブドが必要とされるかを知ってい
るので、それは該3個のレジスタのどれを初期かさせる
べきかを知っている。この初期化は、適宜のレジスタを
、チャンネル番号4(例えば、その伝送データFIFO
が空であるチャンネル)及びそのインタラブドの状態5
(初期的には「アサート(assert)する為の準備
完了」)でローディングさせることを包含する。その状
態は、究極的に、「アサ−テッド(asserted)
 Jへ次いでr確認(acknowledged) J
に変化され1次いでその「アイドル」状態へ戻される。
更に、該ファームウェアはポイントレジスタ6及びカウ
ントレジスタ7の対応するバンクを初期化させる(各[
インタラブドタイプ」に対して)。
パイプラインを形成する為に本実施例においてこれらの
レジスタの各々の2つのバンクがあり、メインエンジン
が次のインタラブドの準備をしている間にBILが1つ
のインタラブドに応答することを可能とさせる。特定の
バンクに対して、ポインタレジスタの各組は、ポインタ
受け取りデータ/ステータスレジスタ8及びポインタ伝
送データレジスタ9を有している。特定のバンクに対し
て、カウントレジスタの各組は、カウント受け取りデー
タ/ステータスレジスタ10及びカウント伝送データレ
ジスタ11を有している。
ポインタ受け取りデータ/ステータスレジスタは、「ロ
ーカルアドレス」を有しており、即ち、チャンネル番号
を連結された場合に、それは該受け取りFIFOのその
チャンネル内の最初の(初期的な)データキャラクタの
実際の位置に対してrポイント(指摘)」する。この[
文脈指向アドレス動作」 (以下の状態インタラブド処
理の部分において説明する)の方法は、MCCC0CT
ART(BILを包含する)の種々の構成要素が、ホス
トがチャンネル番号(BILが内部的に維持している)
を特定することの必要性無しに、実際のレジスタ及びF
IFO位置をアドレスすることを可能とする。受け取り
FIFOは、インターリーブした受け取りデータ(偶数
アドレスにおいて)及びステータス情報(奇数アドレス
において)を有している。ポインタ伝送データレジスタ
も、該伝送FIFOの最小(初期的)位置をポイントす
るローカルアドレスを有している。伝送FIFOは、メ
インエンジンがデータキャラクタを分解する準備が完了
する迄、ホストによって伝送されるデータキャラクタを
格納する。
カウント受け取りデータ/ステータスレジスタは、MC
CC0CTARTによって受け取られ且つホストプロセ
サへ伝送する準備が完了しているデータキャラクタの総
数(初期的に)を有している。カウント伝送データレジ
スタ(初期的にはO)は、ホストによって実際に転送さ
れるデータキャラクタの数をカウント即ち計数する。
該ファームウェアがこれらのレジスタ(インタラブドレ
ジスタ、対応するポインタ及びカウンタレジスタの3つ
のタイプの内の1つ)を初期化すると、BILハードウ
ェハは、インタラブド制御ロジック12を介して、制御
を行なう。インタラブド制御ロジックは、インタラブド
レジスタを常にスキャンする。これらのインタラブドレ
ジスタの1つの状態が該ファームウェアによってその「
アサート準備完了」にセットされると、インタラブド制
御ロジックがホストプロセサに対するインタラブドをア
サート即ち積極的に動作させる。
次いで、該ホストは、「インタラブド確認」を出すこと
によって、そのインタラブドに応答する。
ホストのインタラブド確認信号は、1乃至7の数で構成
されており、それはスタンダードなモトローラ6800
0インタラブドレベルを表している。ホストプロセサは
、以前に、文脈アドレスメモリ(各チャンネルに対して
)を所望のインタラブドレベルへ初期化している。イン
タラブド制御ロジックは、インタラブド確認レベルを、
対応するチャンネルに対しての文脈アドレスメモリ内の
予め特定したレベルと比較する。それらが合致し、且つ
対応するインタラブド5の状態が「アサート」されると
、該インタラブドはMCCC0CTARTに対して意図
される。そうでなければ、ホストのインタラブド確認は
その他のほかの装置に対して意図され、且つインタラブ
ド制御ロジックは単にその確認信号を無視する。
インタラブド制御ロジックがそのインタラブドが正確に
確認されたことを決定すると、それはインタラブドスタ
ック13の頂部へ情報(即ち、実行中の現在のインタラ
ブドの関する情報)を押し上げることによってその事実
を格納する。この情報は、インタラブドのタイプ(即ち
、伝送、受け   ′取り、モデム、又は「何も無し」
)を表す2ビツトから構成される。この情報は、チャン
ネル番号と組合わさ°れると、後にアドレス翻訳ロジッ
ク14(データ伝送用に適切なレジスタをアドレスする
為に)又はポインタ・カウンタレジスタ(その特定のタ
イプのインタラブドに対してのポインタを正確にインク
リメント及びデクリメントする為に)によって後の時間
において使用することが可能である。
インタラブド制御ロジックがこの情報をインタラブドス
タック上に押し上げると、インタラブド制御ロジックが
ステータスベクトルをホストプロセサへ送る。このベク
トルは、「チップIDJ(他のチップもある場合に、ど
のチップがホストをインタラブドしているかをホストが
決定することを可能とする)及びインタラブドのタイプ
(受け取りデータインタラブド用の「良好データ」とし
てステータス情報を含む)を有している。伝送されるべ
きキャラクタの数、チャンネル番号、及び付加的な雑多
な情報はホストによってアクセスされることが可能であ
る。
「良好データインタラブド」機構(以下に説明)は、ホ
ストを、受け取った各データキャラクタのステータスを
チエツクするタスクから解放している。その代わりに、
ホストは、受け取るべきキャラクタの数を正確に知り、
且つそれらが全て特定のステータスタイプであることを
知る。
ホストがこのステータスベクトルを受け取ると、それは
データ伝送を開始すべく手続を進めることが可能である
。上述した如く、ホストのジャグは極端に簡単化されて
いる。ホストは4つのアドレスを維持することが必要で
あるに過ぎない。1つのアドレスは、モデムステータス
を受け取る為に使用される。第2のアドレスはデータキ
ャラクタを伝送する為に使用される。第3のアドレスは
データキャラクタを受け取る為に使用され、且つ第4の
アドレスはデータステータス情報を受け取る為に使用さ
れる。注意すべきことであるが、チャンネル数及びFI
FOアドレス(ここにデータキャラクタが格納される)
は、全てMCCCOCARTによって維持される。ホス
トは、この情報を維持することは必要ではない。
更に重要なことであるが、ホストは、例えば、「良好デ
ータ」の10個のキャラクタが受け取りデータFIFO
において待機していることを知っている。これらのキャ
ラクタの正確な位置を知ること無しに、ホストは、単純
に、1つのみの受け取りデータアドレスを指定すること
によって読取を開始する。BILのアドレス翻訳ロジッ
クは、最初のアドレスキャラクタの実際のアドレスを完
成し、且つそのアドレスを自動的にインクリメントして
残りのキャラクタにアクセスする。
これらの4個のアドレスの1つを受け取ると、アドレス
翻訳ロジックはそのレジスタ又はFIFOデータの実際
のアドレスを決定する。注意すべきことであるが、この
アドレス翻訳ロジックは、データキャラクタの転送の為
にのみ使用されるものではなく、レジスタの読取及び書
込の全ての為に使用される。従って、アドレス翻訳ロジ
ックは、最初に、このアドレスが「グローバルレジスタ
」(即ち、いずれの特定のチャンネルとも関連していな
いレジスタ)であるか否かを決定する。そうである場合
には、それはホストの特定したアドレスに単にゼロを付
加し、且つそのレジスタに関して読取か又は書込動作の
いずれかを開始する6そのアドレスがrチャンネルレジ
スタ」である場合、アドレス翻訳ロジックは既知のチャ
ンネル番号をそのアドレスに付加し、且つそのレジスタ
に関して読取又は書込動作のいずれかを開始する。モデ
ムインタラブドはこのカテゴリイに入る。BILはデー
タのブロックを転送する必要がなく、従ってそれは、単
に、ホストの「モデムステータスレジスタ」に対するア
クセス(モデムからの最近変化されたステータス信号を
有する)及びインタラブド用装置のその他のチャンネル
特定的レジスタに対してのアクセスをサポート即ち支持
する。
ホストが通常のデータキャラクタ転送を開始せず単にM
CCC0CART上のレジスタから読み取るか又はそれ
に書込を行なう上述した場合において、データバスイン
ターフェース16が動作する場合がある。殆どの場合、
データは単にホストとMCCC0CTARTとの間で転
送され、データバスインターフェースは単に内部データ
バスと外部データバスとの間の通信の同期を取るに過ぎ
ない。然し乍ら、ホストがこのインターフェースを「プ
ログラム」することを欲する場合、付加的なタスクを実
行することが可能である。例えば、ホストは、それがあ
るレジスタに書込を行なう場合に、付加的な情報(例え
ば、チャンネル番号)をそのレジスタに書き込むことを
欲する場合があるかも知れない。データバスインターフ
ェースはこのタスクを実行することが可能である。その
他の実施例において、ファームウェアの制御下において
、多様なその他のタスクを実施することが可能であり、
無制限の可能性を形成する。
然し乍ら、アドレス翻訳ロジックがホストが実際にデー
タキャラクタ転送を開始することを決定する場合、即ち
ホストがポインターレジスタの2つのバンク(ポインタ
ー受け取りデータ/ステータスレジスタ8及びポインタ
ー伝送データレジスタ9)の内の1つと関連するアドレ
スを供給する場合、アドレス翻訳ロジックは、単に、そ
のポインターレジスタによってポイントされる位置をア
クセスする(チャンネル番号を付加して)。この位置は
、ホストによって読み取られるべき最初のデータキャラ
クタの受け取りFIFOにおける正確な位置(奇数アド
レスの場合、又は偶数アドレスに対してはステータス情
報)であるか、又はホストによってデータが転送される
べき転送FIFO内の最初の位置である。
アドレス翻訳ロジックが、1組のポインタ操作ロジック
17及びカウンタ操作ロジック18を介して、ポインタ
レジスタ及びカウントレジスタがそれらの重要なタスク
を実行することを支持するのはこの時点においてである
。チャンネル毎を基礎にする場合に付加的なロジックは
必要ではない。
この1組のロジック及びポインタ及びカウンタレジスタ
の2つのバンクで十分である。注意すべきことであるが
、現在勤作中のインタラブドのタイプ(受け取りデータ
、受け取りステータス、又は伝送データ)に関する情報
は、インタラブドスタックの頂部から得ることが可能で
ある。
ホストによるデータ伝送の場合、適宜のポインタレジス
タ(データキャラクタが書き込まれる最初の位置にポイ
ントすべくファームウェアが初期化する)は、ホストが
書込動作を開始する度に単に1(ポインター操作ロジッ
クを介して)だけインクリメントさせる。このことは、
ホストがアドレスを維持しく且つインクリメントさせる
こと)の必要性を取り除いており、正確なグローバルア
ドレスを維持する必要性はない。
カウントレジスタ(ファームウェアは書き込まれるべき
データキャラクタの総数で初期化する)は、1だけデク
リメントされ(カウンタ操作ロジックを介して)、BI
Lがホストによって実際に書き込まれたデータキャラク
タの正確なカウントを維持することを可能とする。
ホストによるデータの受領の場合、カウントレジスタは
末だ1だけデクリメントされるが、ポインタレジスタ(
それはデータキャラクタが読み取られる位置をポイント
する)は2だけインクリメントされる(何故ならば、ス
テータス情報はデータキャラクタ間においてインターリ
ーブされている)、このことは、ホストがステータス情
報を受け取ることを回避するこを可能としている(何故
ならば、良好データインタラブド機構によって、ホスト
は既に該データのステータスを知っているからである)
ホストによるステータスの受領の場合、ポイントレジス
タは奇数アドレスをポイントする(そのステータスが関
連するデータキャラクタを通過して1個のバイト)。読
取動作が開始されるが、その最初のデータキャラクタの
ステータスをホスト、ポインターレジスタ及びカウント
レジスタへの転送はインクリメントもデクリメントもさ
れない。
このことは、ホストが受け取ったデータのステータスを
既に知っていたものではない制限された条件を考えるま
で、異常なことにように思えるかも知れない、−船釣に
、殆どの受け取ったデータキャラクタは「良好データ」
であるので、そのステータスを知られている。然し乍ら
、ステータスが何等かのエラー又は特別のキャラクタの
タイプである場合、良好データインタラブド特徴は正確
なタイプのエラー又は特別キャラクタを表すものではな
い(その他の実施例において、異なったタイプのエラー
又は所望の特別キャラクタの数に依存して、ホストがい
ずれのキャラクタのステータスをチエツクすることの必
要性を解消することが実現可能であるかも知れないが)
従って、ホストはエラー又は特別キャラクタのタイプを
チエツクし1次いでその状態をソフトウェアサービスル
ーチンで処理することを所望するかも知れない。この様
な場合に、ブロックデータ転送は通常必要ではない。従
って、ポインターレジスタは、この時にはインクリメン
トされずに、ホストソフトウェアサービスルーチンが後
の時間において該特別キャラクタを読み取ることを可能
とする。
インタラブドが処理されると(即ち、ホストが全てのデ
ータキャラクタの転送又は受領を完了)。
ホストは「インタラブド終了」信号をBILへ送る(イ
ンタラブドレジスタの状態を「インタラブド終了」に修
正)。この信号を受け取ると、インタラブド制御ロジッ
クは、インタラブドスタックの頂部から情報を取り出す
。この状態において、ファームウェアは、そのインタラ
ブドレジスタバンクを更にデータ転送させる為に再度イ
ネーブルさせる(そのインタラブドレジスタ状態をその
「アイドル」状態に変化させることにより)前に必要と
なることのある何等かの付加的なりリーンアップを(適
宜の折りに)実行することが可能であり、その時に、B
ILは、ファームウェアから出された場合に(チャンネ
ル、ポイント、及びカウントレジスタを初期化した後に
、該状態を「アサート準備完了」状態に変化させること
によって)次のインタラブドに対してこの処理を繰り返
し行なうことが可能である。
インタラブドスタックの頂部が「インタラブド無し」 
(上述した如く)を表す値を有する場合、ポインタレジ
スタ及びカウントレジスタはアイドル状態のままである
。特定の時間においてインタラブドが処理されていない
が、BILはホストから読取及び書込要求の受け取り、
及びアドレス翻訳(上述した如く)メ実行を継続して行
ない、ホストがMCCC0CART上のグローバル又は
ローカル(チャンネル特定性)レジスタに対して読取及
び書込を行なうことを可能とする。
メインエンジン ■ I10ビットエンジン(上述した)は、例えばモデム及
びシリアルプリンタ等の外部シリアル装置に対するMC
,CC0CTARTのインターフェースを処理する。こ
のインターフェースを介してビットがMCCC0CTA
RTへ及びそれから転送される。バスインターフェース
ロジック(これも上述した)は、外部ホストプロセサに
対するMCCC0CTARTのその他のインターフェー
スを処理する。このインターフェースを介して、キャラ
クタがMCCC0CTARTから及びそこへ転送される
(MCCCOCTARTへのパラメータ及び命令も同じ
)。
これらの2つのインターフェースの間にメインエンジン
(第5図に図示)が設けられており、それは、外部シリ
アル装置へ送るべきOBE用のビットにキャラクタ(ホ
ストからBILによって受領)から分解し、且つビット
(IBEを介して外部装置から受領)をホストへ送るべ
きBIL用のキャラクタに組み立てる主要なタスクを実
行する。
これらの主要なビット指向型(従って、時間重要型)の
タスクに加えて、メインエンジンは、例えばデータFI
FOの管理、タイマー/カウンタの維持、複雑なプロト
コル関連タスク、及びその他のファームウェア内にプロ
グラムされる所望のタスク等の多様な複雑なキャラクタ
指向型(従って時間重要性の少ない)タスクも実行せね
ばならな()。
メインエンジンのアーキテクチャ−の殆どは、どのよう
なマイクロプログラム化されたエンジンにとってもスタ
ンダードなものである。例えば、マイクロコードROM
Iは、レジスタ間のデータ転送及びALUの動作を制御
するマイクロコード(ファームウェア)のシーケンスを
有している。
スタンダードなマイクロコードシーケンサ2が設けられ
ており、それはマイクロコードROM内へのアドレスを
インクリメントして、その物理的アドレスに従って逐次
にマイクロ命令を実行させる。
勿論、事実上いかなるマイクロコードシーケンサの場合
における如く、この逐次的な実行は、「分岐」命令(そ
れは実行を特定したアドレスへ転送させる)又は「サブ
ルーチンコール」 (それは単に分岐であるが、現在の
アドレスの次に続くアドレスを格納して、サブルーチン
が[サブルーチンリターン」マイクロ命令によって、完
了された時に実行をその位置ヘリターンさせることが可
能である)によって、修正させることが可能である。
いかなるマイクロプログラムエンジンの場合にもそうで
ある様に、マイクロ命令デコーダ3が設けられており、
それは種々のフィールドのマイクロ命令を認識し且つこ
れらのフィールドにおけるビットをこの様なビットによ
って制御されるハードウェアへそらさせる。例えば、マ
イクロ命令デコーダは、マイクロ命令のあるフィールド
をメインエンジン内に位置されていないチップのレジス
タに対するアドレスとして認識し、その場合に、それは
これらのビットをアドレスロジック4内へそらさせ、そ
れは適宜のレジスタを読取又は書込させる。該チップの
レジスタの幾つかのみが物理的にメインエンジンレジス
タファイル5内に位置しており、一方その他は該チップ
上の他の個所にある場合があり、それらはチップの内部
アドレス・バスを介してアクセスされることが必要であ
るから、該アドレスロジックが必要である。
ALU6は、他の2つのALUとは異なっている。それ
は、基本的な論理的且つ演算命令を実行することが可能
であり、その結果はフォアグランドアキュムレータ7又
はバックグラウンドアキュムレータ8のいずれかにゲー
ト入力される。成るALU操作はステータスフラッグを
セットさせる(例えば、rゼロフラッグ」はALU操作
の結果がゼロに等しいことを表す)。これらのステータ
スフラッグは、フォアグラウンドインデックスレジスタ
9、又はバックグラウンドインデックスレジスタ10の
いずれかの中にゲート入力され、爾後のマイクロ命令に
よってテストすることが可能である。上述した特徴は事
実上いずれのALUにとってもスタンダードである。
然し乍ら、メインエンジンには3つの著しく非スタンダ
ードであり且つ全く独特の要素がある。
その1つはALU自身の中に存在しており、キャラクタ
組み立て及び分解の処理は極めて迅速に行われねばなら
ないという事実から派生している。
OBEからインタラブドを受け取り、例えば、それが送
るべき次のビットを必要とすることを表す場合、メイン
エンジンは、OBEがそのビットを特定したボー速度で
送信するのに同期してキャラクタ(ホストによって供給
)からそのビットを剥離せねばならない、同じことが次
のビットに対しても言え、且つそのキャラクタの全ての
ビットが送信される迄、次々のビットに対して言える。
従って、スタンダードな論理的且つ演算的命令を実行す
ることに加えて、ALUは、キャラクタ組み立て及び分
解処理の迅速な実行を容易とさせる為に構成された幾つ
かの独特の命令を実行する。
これらの独特のマイクロ命令操作コードに付いては以下
に説明する。
第2の独特の特徴は前に説明した良好データインタラブ
ド機構であり、それにより、メインエンジン内のファー
ムウェハは、受け取ったビットをキャラクタに組み立て
且つこれらのキャラクタのステータス(良好データ、パ
リティエラー等)を決定した後に、1つのキャラクタか
ら次のキャラクタへステータス変化があった時を決定し
、且つBIL内にレジスタをセットアツプしてホストを
ステータス変化に対してインタラブドさせ、その際にホ
ストから各キャラクタのステータスをチエツクするタス
クを解放する。この手順に付いては以下に説明する。
メインエンジンの第3の独特の特徴は、そのインタラブ
ド処理器11において使用される機構である。この機構
は、ビットエンジンの1つからインタラブドを受け取る
と(ビットが外部シリアル装置の1つから受け取られた
か又は送信することが必要であることを表す)1文脈R
AM12内に維持されているファームウエアエントリイ
ポイントを介して、チャンネル番号及びキャラクタ組み
立て又は分解処理の状態を再決定することの必要性無し
に、適宜のファームウェアルーチンを直ぐにアクセスさ
せる。このことは、以下に説明する如く、疑似状態マシ
ン及びインタラブドベクトル化機能によって達成される
以下に説明するメインエンジンの3つの独特の特徴に加
えて、メインエンジンは、キャラクタ組み立て及び分解
の少なくとも時間的に重要なタスクに対して、主にイン
タラブド駆動されることに注意すべきである。インタラ
ブドを実行する場合、メインエンジン(ファームウェア
によって制御されている)はこれらの時間的に重要なタ
スクをフォアグラウンドで実行する(即ち、それは直ぐ
にインタラブドに応答する)。これらのタスクは、時間
的に非常に重要なので、ファームウェアのタスクが可及
的に簡単化されたもの(ハードウェアの能力と比較して
)であることが重要である。例えば、このことが、独特
のキャラクタ組み立て/分解マイクロ命令命令コードに
対する理由である。
キャラクタ組み立て及び分解の基本的なステップを1サ
イクルで実行することにより、全処理を比較的迅速に行
なうことが可能である。
インタラブドを実行中でない場合、メインエンジン(未
だファームウェア制御下にある)はバックグラウンドに
おいて時間的により重要性の少ないその他のタスクを実
行する(即ち、インタラブド間において比較的のんびり
としたペースで)。
これらのバックグラウンドタスクは、それほど時間的に
拘束されていないので、−層複雑なものとすることが可
能である。それらは、全キャラクタが組み立て中及び分
解中の間に(即ち、キャラクタ時間)、実行することが
可能である。
これらのバックグラウンドタスクは、現在の実施例にお
いては、事実上無制限である。ファームウェアは、比較
的汎用のALUを使用して、メインエンジンをして巨大
なアレイのタスクを実行させる。本実施例においてバッ
クグラウンドにおいて実行される主要タスクの1つに付
いては既に言及した、即ち良好データインラブド機構(
以下に説明する)。キャラクタのステータスの決定は時
間的に重要ではないので(それはキャラクタ時間におい
て実施されることを必要とするのみ)、典型的に500
マイクロ秒未満かかり、このタスクはバックグラウンド
において実行することが可能である。
その他のバックグラウンドタスクは、FIFO及びカウ
ンタ/タイマーの管理を包含する。例えば、上述した如
く、メインエンジンは、ホストへ転送すべきキャラクタ
の初期数(与えられたインタラブドに対して)をBIL
のカウントレジスタ内にロードさせる為の責任がある。
別の例は、組み立てたキャラクタの受け取りデータFI
FO内への格納である。キャラクタが組み立てられ、且
つそのステータスが決定されると、それは受け取すデー
タFIFOの次の自由な位置内に格納させねばならない
(特定のチャンネルに対して)。
付加的なバックグラウンドタスクは、複雑なプロトコル
指向タスクを包含する6例えば、ホストがrXon/X
offJフロー制御(データ転送を停止させ且つ再度開
始することを可能とするハンドシェイクプロトコル、例
えば1つの装置のデータバッファが満杯の時)を実行す
ることを所望する場合、ファームウェアは、インタラブ
ドが必要な条件のメインエンジンの検知を制御し、次い
で適宜の動作を発生させる。事実上無制限の極めて複雑
なプロトコル関連特徴(特に、同期プロトコルに対して
)を本実施例及びその他の実施例において実施すること
が可能である。
最後であるが非常に重要な本実施例において実施される
バックグラウンドタスクは、ホストインタラブド条件の
検知の為の不変のチャンネルのスキャニング(及び、所
望により、モデム信号のステータスにおける変化の検知
)である。上述した如く、メインエンジンファームウェ
アは、何時ホストをインタラブドすることが必要である
かを決定する(例えば、伝送データFIFOが空の時)
ファームウェアは、常に、チャンネルをスキャンし、F
IFOをチエツクして、これらの条件のいずれかが充足
されるか否かを決定する。充足する場合、それは適宜の
BILレジスタをセットアツプしく上述した如<)、B
ILにホストをインタラブドすることの必要性を通知す
る。
これらのバックグラウンドタスクのどれもが、「ビット
時間」内に実行されることを必要とするものではない。
従って、それらをバックグラウンドで実行され、一方メ
インエンジンはこれらの比較的複雑なタスクを実行する
十分な時間を持っている。メインエンジンの3つの特に
独特の特徴の説明に続いて、典型的なデータ通信セツシ
ョンの期間中にメインエンジンによって実行されるフォ
アグラウンド及びバックグラウンドタスクの例である。
一一タ ンタラプ メインエンジンファームウェアがIBEを介して受け取
ったビットをデータキャラクタに組み立てた後、そのフ
ァームウェアは、この様なデータキャラクタの各々のス
テータスを決定せねばならず、従ってホストはキャラク
タ自身のみならず、そのキャラクタに関してのステータ
ス情報も受け取ることが可能である(例えば、パリティ
エラーがそのキャラクタの伝送中に発生したか否か)。
事実止金てのシリアル制御器は、このタイプのステータ
ス情報をホストへ供給する。
しかし、外部装置から伝送されたデータキャラクタの多
くのはパリティ又はその他の通信エラーを発生するもの
ではなく、且つホストがシリアル制御器に検知すること
を要求する場合のある数個の特別のキャラクタでもない
ので、極めて大多数のキャラクタに対して、そのキャラ
クタが「良好データ」であることを決定する為にだけ全
てのキャラクタに対してホストがステータス情報を受け
取り且つ検査することを要求することは極めて非効率的
である。
従って、ホストは受け取ったデータキャラクタのステー
タスにおける変化を通知するのみであるということは本
発明の顕著な特徴であり、従ってホストは、10個のデ
ータキャラクタの各々の個別的なステータスを受領し且
つチエツクすること無しに、これら良好なデータの10
個のキャラクタを転送することの必要性を表すインタラ
ブドを受け取るだけである。
この特徴の多様な可能なファームウェア(及びハードワ
イヤードロジック)実施例がある。MCCC0CTAR
Tにおいて使用される好適実施例は、その基礎となるロ
ジックを第6図に示しであるが、最初に栄領したデータ
キャラクタのステータスのファームウェアによる決定を
包含している。
このステータスは、3つのカテゴリーの1つの中に入る
場合がある。該キャラクタは、パリティエラー又はフレ
ーミングエラー等の通信エラーを発生したものかも知れ
ず、又は該キャラクタは、ホストが、MCCC0CTA
RTに検知するこ・とを要求した特別のキャラクタの1
つであるかも知れず、又はそのキャラクタは単位「良好
データ」であるかも知れない。
その他の実施例において、ホストに各可能なタイプのス
テータス情報に対する異なったインタラブドを供給し、
ホストがその他のいかなるステータスチエツク動作を実
行することの必要性を完全に解消することが望ましい場
合がある。然し乍ら、この実施例において、該キャラク
タの正確なステータスはそのキャラクタと共に格納され
るが、ユーザは3つの異なったインタラブドの1つのみ
が与えられる。
該ファームウェアは、各ビットが受け取られる毎に受領
中の該キャラクタのステータスを決定する。例えば、以
下に詳細に説明する独特のALU命令コードによって継
続的なパリティチエツクが実行される。1つのキャラク
タの全てのビットが受け取られると、蓄積されたパリテ
ィチエツクは、そのキャラクタに対してパリティエラー
が発生したか否かに関する情報を有している。フレーミ
ングエラーもこの様にして検知されるが、何等独特のA
LU命令コードの助は無しに該ファームウェア自身によ
って行なわれる0通信エラーが発生しない場合、該ファ
ームウェアは、該データキャラクタをホストが特定した
「特別」のキャラクタと比較して、受領したキャラクタ
が該特別のキャラクタのいずれかと合致するか否かを決
定する。通信エラーが発生せず、且つ該キャラクタが特
別のキャラクタでないと、該キャラクタは「良好データ
」とみなされる。
該ファームウェアが該キャラクタのステータスを決定し
た後、それは、勿論、データキャラクタ自身とそれに関
連するステータス情報の両方を受け取りデータFIFO
内に書き込まねばならない。
更に、該ファームウェアは、そのキャラクタのステータ
スは前のキャラクタのステータスと異なっているか否か
を決定する。異なっている場合、該ファームウェアはB
ILにホストをインタラブドすることを通知せねばなら
ず、その前のキャラクタのステータスを表すと共に同一
のステータスを持ったその前のキャラクタ迄の連続的な
キャラクタの数を表す。
このタスクを実施する為に、該ファームウェアは、異な
ったステータスを持ったキャラクタを受け取る迄(又は
ホストが特定したキャラクタのスレッシュホールドを受
け取る迄)、特定のステータスのキャラクタのカウント
を維持せねばならない。その時点において、該ファーム
ウェアは、チャンネル番号をBILの受け取りインタラ
ブドレジスタ内に書き込み且っ「アサート準備完了」フ
ラッグ(前述した如く)をセットせねばならないばかり
か、そのチャンネルに対してカウントレジスタをセット
アツプせねばならず(これも前述した)、従ってBIL
のインタラブド制御ロジックは、ホストに対して、伝送
する準備が完了した特定のデータタイプのデータキャラ
クタの数を通知することが可能である。次いで、該ファ
ームウェアは、該カウンタを1にリセットし、且つ、前
のキャラクタのステータスからそのステータスが変化し
た最も最近に受け取られたキャラクタで開始して、この
処理を繰り返す。
例えば、良好なデータの6個のキャラクタを受け取り、
次にパリティエラーとなる1つのキャラクタが続き、次
いでホストによって検知が要求されていた特別キャラク
タが続き、次に更に3個の良好なデータが続くと仮定す
る。更に、受け取りデータFIFOが8個のキャラ、フ
タを保持することが可能であるが、ホストがそのスレッ
シュホールドを5にセットするものと仮定する。
該ファームウェアは、rステータスカウント」をゼロに
初期化し、且つ「最後のステータスタイプ」を「良好デ
ータ」に初期化し、次いで最初のキャラクタ及びそれに
関連するステータス情報(「良好データ」)を受け取り
データFIFO内に格納する(メインエンジンファーム
ウェアによって実行される別のバックグラウンドタスク
である受け取りデータFIFOポインターのインクリメ
ントをしながら)。次いで、該ファームウェアは、該ス
レッシュホールドに到達しておらず且つそのステータス
タイプは変化していないことを決定する。該ファームウ
ェアは、次いで、ステータスカウンタを1へインクリメ
ントする。この同一の処理は、次の4個のキャラクタの
各々に対して継続し、該ステータスカウンタは究極的に
5へインクリメントされる。
6番目のキャラクタとそのステータス(「パリティエラ
ー」)を格納した後であるが、ステータスカウンタが6
へインクリメントされる前に、該ファームウェアは、ス
テータスカウンタがホストが特定したスレッシュホール
ドと等しいことを決定し且つBILレジスタをセットア
ツプして(前述した如<)、BILにホストへの最初の
インタラブドを発生させ、ホストに良好データの5個の
キャラクタが受け取りデータFIF○からホストへ転送
されるべき準備が完了していることを通知する。次いで
、ホストは、全てが「良好なデータ」であることを知り
ながら(各キャラクタのステータスをチエツクする必要
性無しに)、適宜にこれら5個のキャラクタを検索する
ことが可能である。
該ファームウェアは、ステータスカウンタをゼロにリセ
ットした後に、6番目のデータキャラクタの処理を継続
する。6番目のデータキャラクタの処理が再開され、該
ファームウェアはステータスタイプは変化しなかったこ
とを決定し、次いでステータスカウンタを1へインクリ
メントする。
然し乍ら、7番目のキャラクタを処理すると、該ファー
ムウェアは、スレッシュホールドに到達していないが、
そのステータスタイプは変化された(「良好なデータ」
から「エラー」へ)ことを決定する。該ファームウェア
は、この新たなステータスタイプ(この特定の実施例に
おいて「エラー」を示すのみ)、且つBILレジスタを
セットアツプして、BILをしてホストに対して第2イ
ンタラブドを発生させ、ホストにステータスタイプ「良
好データ」 (前のキャラクタ)の1個のキャラクタが
受け取られたことを通知する0次いで、該ファームウェ
アは、ステータスカウンタをゼロにリセットし、次いで
そのステータスカウンタの通常のインクリメントを実行
する(この場合、ステータスカウンタを1へインクリメ
ントする)。
次いで、該ファームウェアは、8番目キャラクタ及びそ
のステータス情報(「特別」)を受け取すデータFIF
O内に格納する。該ファームウェアは、再度、ステータ
スタイプが変化したこと(「エラー」から「特別」へ)
を決定し、且つこの新たなステータスタイプを(この特
定の実施例において「特別」を表すのみ)格納し、且っ
BILレジスタをセットアツプしてBILをしてホスト
への3番目のインタラブドを発生し、ホストに、ステー
タスタイプの1つのキャラクタ「エラー」が受け取られ
たことを通知する。次いで、該ファームウェアはステー
タスレジスタをゼロにリセットし、次いでそのステータ
スカウントをインクリメントする。注意すべきことであ
るが、「エラー 」又は「特別」ステータスタイプに対
して、ホストは、適切に応答する為に、受け取った通信
エラー又は特別のキャラクタの正確なタイプを決定する
為に付加的な処理(多分、ソフトウェアにおいて、イン
タラブドサービスルーチンにおいて)実行することが必
要な場合があるかも知れない。
次いで、該ファームウェアは、9番目のキャラクタ及び
そのステータス情報(「良好データJ)を受け取りデー
タFIFO内に格納し、再度、そのステータスタイプが
変化([特別」から「良好データ」へ)したことを決定
する。該ファームウェアは、この新たなステータスタイ
プ(「良好データ」)を格納し、且つBILレジスタを
セットアツプして、BILをしてホストに対しての4番
目のインタラブドを発生させ、該ホストに対してステー
タスタイプ「特別」の1個のキャラクタが受け取られた
ことを通知する。次いで、該ファームウェアは、ステー
タスカウンタをゼロにリセットし、次いでそのステータ
スカウンタをインクリメントする。 。
次いで、該ファームウェアは、10番目のキャラクタ及
びそのステータス情報(「良好データ」)を受け取りデ
ータFIFO内に格納するが、この時は、スレッシュホ
ールドに到達しないばかりか、ステータスタイプが「良
好データ」のまま留まることを決定する。従って、該フ
ァームウェアは、単位、ステータスカウンタを2へイン
クリメントし、且つ11番目のキャラクタに対してこの
処理を繰返し行ない、ステータスカウンタを3へインク
リメントする。究極的に、付加的なキャラクタは、ステ
ータスタイプの変化となるか、又は「良好データ」キャ
ラクタ゛の数がホストが特定したスレッシュホールドと
等しくない、その時点において別のインタラブドが発生
する。
この例において、注意すべきことであるが、11個のキ
ャラクタが受け取られたとしても、ホストは4回インタ
ラブドされたに過ぎない(データステータスタイプにお
ける3つの変化とホストが特定した受け取りFIFOス
レッシュホールドを超えた場合の1回に対応)。更に、
ホストは、「良好データJの9個のキャラクタのステー
タスをチエツクすること又は転送することは必要ではな
い。然し乍ら、「パリティエラー」及び「特別」キャラ
クタを発生したキャラクタは、ホストによる付加的な処
理を必要とする場合がある。然し乍ら、通信エラー及び
特別キャラクタは、あまり頻繁に発生することはなく(
「良好なデータ」と比較して)、且つホストによる特別
な処理を常に必要とする(インタラブドサービスルーチ
ンにおいて)。従って、この機構は、これらの巨大な大
多数のキャラクタが単に「良好なデータ」であったとし
ても、ホストが受け取った全てのデータキャラクタのス
テータスをチエツクすることを必要とする現存するシリ
アル制御器よりも、ホストの処理能力の一層効率的な使
用となる。
インタラブド処理 上述した良好データインタラブド機構は、比較的ゆった
りとしたペースでメインエンジンのバックグラウンドフ
ァームウェアルーチンによって実行されるので、メイン
エンジンのフォアグラウンドファームウェアルーチンは
、インタラブド駆動を基礎にして非常に時間的に重要な
キャラクタ組み立て及び分解タスクを実行せねばならな
い。換言すると、I10ビットエンジンからインタラブ
ドを受け取ると、メインエンジンはビット時間における
これらのインタラブドに迅速に応答せねばならない。
この処理の速度を向上させる為の1つの明らかな方法は
、特別のマイクロ命令命令コード(以下に説明する)を
使用することであり、それはキャラクタ組み立て及び分
解の基本的な構成要素ステップの多くを1マシンサイク
ル内において発生することを可能とする。MCCC0C
TART内において使用される付加的な方法は、第5図
におけるメインエンジンのインタラブド処理器モジュー
ル内に示した適宜のファームウェアルーチンを迅速に喚
起させることである。メインエンジンが工10ビットエ
ンジンのいずれかからインタラブドを受け取ると、この
状態インタラブド処理機構は、2つのマシンサイクルに
おいて適宜のファームウェアルーチンの実行を開始する
上述した如く、I10ビットエンジンの各々はメインエ
ンジンに対するインタラブドを開始することが可能であ
る。インタラブドが発生されるサイクルの期間中、メイ
ンエンジンのインタラブド処理器11は、最初に、実際
に2つのインタラブドが存在する場合に(IBEから1
つとOBEから1つ)、これら2つのインタラブドの優
先度付けをせねばならず、次いでより高い優先度のイン
タラブドを確認せねばならない。この実施例において、
IBEインタラブドは、OBEインタラブドよりも高い
優先度が与えられている。何故ならば、IBEインタラ
ブド(通常、半ビツト時間)はOBEインタラブド(通
常、全ビット時間)よりも−層頻繁に発生するからであ
る。
インタラブド処理器は、サンプルビットフラッグ(IB
E)又は出力ビツト必要フラッグ(OBE)のいずれか
をクリアすることによってインタラブドを確認する。こ
の確認を受け取ると、IBE(又は0BE)はチャンネ
ル番号及びオプションのインターフェースビット(−1
ビツト、即ち、OBEインタラブドの為に使用されずI
BEによってサンプルされたビット)をインタラブド処
理器の文脈レジスタ13内に駆動する。該インタラブド
処理器は、又、文脈レジスタをT/Rビットでロードし
、該インタラブドが伝送インタラブド(OBE)である
か、又は受け取りインタラブド(IBE)であるかを表
す。
文脈レジスタは、インタラブド処理器がI10ビットエ
ンジンインタラブトをパイプライン動作することを可能
とし、インタラブド処理器が次のインタラブドに対して
のフォアグランドコードに対してベクトル化の処理中に
メインエンジンのフォアグラウンドコードが1つのイン
タラブドに応答する。
インタラブド処理器は、適宜のファームウェアルーチン
の開始アドレスを得る為に「文脈」 (即ち、チャンネ
ル番号及びT/Rビット)を使用する。上述した如く、
全てのファームウェアルーチンは、その文脈に対する次
のファームウェアルーチンの開始アドレスでプログラム
されている。例えば、ファームウェアルーチンが、有効
開始ビットが検知されることを決定すると、それは、そ
の文脈に対して次のインタラブドが発生する場合に、通
常のキャラクタビットを処理するファームウェアルーチ
ンが実行されるべきであることを知得する。従って、全
てのファームウェアルーチンは。
制御をリターンする前に、対応する文脈RAM位置にお
ける次の適宜のファームウェアルーチンのエントリイボ
インドを格納する(その文脈に対して)。このことは、
次のセクションで説明する独特の「文脈リターン」マイ
クロ命令命令コードにより達成される。
文脈RAMは、各可能な文脈に対して1ワードのメモリ
を有している。即ちチャンネル及び方向の各組合せに対
して、従って、M(、CC0CTART内の文脈RAM
は、8個のチャンネルの各々の2つの方向(伝送又は受
領)の各々に対して、16ワードのメモリを有している
。文脈RAM内のメモリの各ワードは、適宜のファーム
ウェアルーチン(同一の文脈に対する前に実行したファ
ームウェアルーチンの「文脈リターンjマイクロ命令に
より既にロードされている)の開始アドレス(エントリ
ーポイント)を有している。
然し乍ら、注意すべきことであるが、ファームウェアル
ーチンの数は異なった文脈の数に対応しない。従って、
文脈RAMにおけるエントリーポイントは、特定の文脈
に関連するファームウェアルーチンに対しての単なるベ
クトルのみならず、むしろ、その文脈の現在のr状態」
をも表すベクトル(例えば、チャンネル5上のキャラク
タ組み立ての初期状態で、その場合に、有効開始ビット
が検知されたか否かの決定がなされる)を表す。
換言すると、文脈RAMのエントリーは2つの目的を達
成する。即ち、(1)特定の文脈の対する進行における
ファームウェアタスクの現在の「状態」を表す適宜のフ
ァームウェアルーチン(多数の現存するルーチンの中で
)の現在の選択、及び(2)そのファームウェアルーチ
ンのあ開始位置に対するベクトル、である。
従って、インタラブド処理器がサイクルNにおいてビッ
トエンジンインタラブトを受け取ると、それは、インタ
ラブド(存在する場合)に優先度を付け、より優先度の
高いインタラブドを確認し、文脈をフェッチし、且つ、
N+2サイクルにおいて、その文脈をメインエンジンイ
ンデックスレジスタ内にロードする(その間に、該ファ
ームウェアルーチンの最初のマイクロ命令がフェッチさ
れる)。従って、I10ビットエンジンがメインエンジ
ンをインタラブドするサイクルに続く2つのマシンサイ
クルで、適宜のファームウェアルーチンの最初のマイク
ロ命令が実行される。
文脈をメインエンジンのインデックスレジスタ内にロー
ドすることによって、フォアグラウンドルーチンは、チ
ャンネル特定レジスタ及びFIFO位置をアドレスする
為にこの文脈にアクセスすることが可能である。更に、
それらは、以下に説明するri s hJマイクロ命令
命令コードを介して、インターフェースビットをテスト
し、又はそれを組み立て中のデータキャラクタ内に付加
することが可能である。
上述した如く、インタラブド処理器は、「2段階インタ
ラブドパイプライン」を維持し、それはファームウェア
命令のメインエンジンの実行と同時的に動作する。従っ
て、ファームウェアインタラブドルーチンがその最初の
フォアグラウンド命令を実行する一方、インタラブド処
理器は次のIBE又はOBEインタラブドを確認する(
存在する場合)。インタラブドルーチンの2番目の命令
の期間中、インタラブド処理器は、2番目のインタラブ
ドルーチンの最初の命令をフェッチ動作することをサポ
ートする準備が完了する。従って、最初のインタラブド
ルーチンの2番目の命令が文脈リターン命令である場合
、実行される次の命令は2番目のインタラブドルーチン
の最初の命令である。
従って、メインエンジンは、インタラブド処理機構に起
因して何等実行サイクルを「失う」ことはない。この機
構がI10ビットエンジンインタラブトを処理するこれ
ら2つのサイクルの期間中、メインエンジンはい並列的
に、バックグラウンドコードを実行するか、又は最初(
少なくとも2つの内の)のフォアグラウンドI10ビッ
トエンジンインタラブトサービスルーチンを実行してい
る。
キャラクタ み立て/ ビット時間においてキャラクタを組み立て且つ分解する
為のメインエンジンの能力に対する主要な理由は(フォ
アグラウンドのインタラブド駆動タスクとして)、1つ
のマシンサイクルでキャラクタの組み立て及び分解の重
要な構成要素ステップをALUが実行することを可能と
すべく設計されたカスタム化したマイクロ命令命令コー
ドを使用することである。この様な命令コードは4つあ
り、即ちキャラクタ組み立ての基本的なビットごとのス
テップを実行するもの(rishJ)と、キャラクタ組
み立ての対応するステップを実行するもの(roshJ
)と、パリティをチエツクし且つ蓄積し且つブレーク条
件を検知しながら組み立て中のキャラクタ内のビットの
現在の数をカウントする基本的なビット毎のステップを
実行するもの(rbcapJ)と、現在の文脈に対して
実行されるべき次のファームウェアルーチンのエントリ
ーポイントをその文脈に対応する文脈RAM位置内に書
き込むもの(「文脈リターン」)との4つである。
rishJ命令コードの目的は、それが特定したレジス
タ内において右揃えとなる迄、ビット毎にキャラクタを
組み立てることである。その目標は、−膜化したタスク
を実行することであり、従って同一のri s hJマ
イクロ命令を、最後の繰返しの後に、キャラクタが組み
立てられ且つ右揃えとされる迄、繰返し使用することが
可能である(組み立て中のキャラクタの特定のビット間
の区別をすること無しに)。
マイクロ命令命令コードは、rish  rl。
r2」 (第7a図に図示)の形態であり、r2はキャ
ラクタ組み立て用に特定されたレジスタであり、且つr
lは、シフト用情報として使用されるエンコードされた
キャラクタ長さ(この実施例においては5乃至8ビツト
)を有している。rルジスタは、実際上、以下に説明す
るrbcapJ命令コードに対して主に使用されるが、
その2つの最小桁ビットはこのrishJ命令コードの
為に使用される。
rishJ命令コードの結果は以下の如くであるsrl
の最小桁ビットが[00」であると、そのキャラクタは
5ビツトの長さである。従って。
r2レジスタ(8ビツトレジスタ)の最小桁5ビットは
5ビットシフトレジスタとして処理され、一方最大桁3
ビットはゼロに設定される。「iSh」命令コードの各
実行の期間中、最小桁5ビツトは右へ1ビットシフトさ
れ(最小桁ビットは破壊される)、現在の受け取ったビ
ットはALUのインデックスレジスタからr2の5番目
の最小桁ビットによって前に占有されていた位置内に転
送される。より桁位置の低いビットは最初に転送され(
取り決めによって)、且つ、この命令を5回繰返し行な
った後に、データキャラクタを形成する5個の受け取ら
れたビットは、第7a図に示した如く、r2レジスタ内
において右揃えされる。
6ビツト、7ビツト、及び8ビツトのキャラクタの場合
、該命令は、単に、r2を6ビツト、7ビツト、又は8
ビツトのシフトレジスタとして処理し、且つ、右へ1ビ
ットシフトした後に、現在のビットをr2の6番目、7
番目、又は8番目の最小桁位置内に挿入する。従って、
rishJ命令コードの実行結果は、以下の如くに纏め
ることが可能である(■はIBEによって受け取られた
現在のビットであり、且つrl[1:01はエンコード
されたキャラクタ長さを有しており、且つr2[7:O
]は組み立てられ右揃えされたキャラクタを有している
)。
rlO:Oト00の場合  r2= OO01r2[4
:1]r1[1:0]=01の場合  r2= 001
 r2[5:11ris hJ命令コードは、メインエ
ンジンハードウェアをしてr2の5.6.7、又は8個
の最小桁ビットを1ビツト右側ヘシフトさせ(rlを2
個の最小桁ビットにおける値に依存して)、その処理中
においてr2の最小桁ビットを破壊する。
次いで、それはALUのインデックスレジスタから現在
のビットをフェッチし、且つそれをr2の5番目、6番
目、7番目、又は8番目の最小桁ビット内に挿入しく該
シフトの後に)、r2の3.2、又は1最大桁ビット内
に二進rOJをゲート入力させる。
従って、1マシンサイクルにおいて、rishJ命令は
、キャラクタ組み立ての基本的なステップを実行し、そ
れは、5,6,7.又は8回繰り返すことにより(即ち
、キャラクタの各ビットに対して1度)1組み立てられ
且つr2内において右揃えされたキャラクタが発生され
る。
roshJマイクロ命令命令コードは、第7b図に示し
てあり、ゴ1shJ命令コードに類似しているが、キャ
ラクタ分解の為のものである。
roshJ命令コードの形態は、ro s h  r 
14であり、その場合、rルジスタはホストプロセサに
よって送られるキャラクタを有している。メインエンジ
ンハードウェアは、単にrルジスタを1ビツト右へ回転
させ、シフト後にrlの最小桁ビット(rl[0])を
rlの最大桁ビット内に回転入力させるのみならず、そ
のビットを、ビット伝送(以下に説明する)のサポート
においてパリティの発生の為のrb c a pJ全命
令より使用する為に、メインエンジンのインデックスレ
ジスタ内に格納する。
従って、ro s hJ全命令、単に、rl内における
キャラクタの最小桁ビットを分解し、それをインデック
スレジスタ内に格納し、且つrlを右へ1ビットシフト
し、従ってr’oshJ命令の次の実行が該キャラクタ
の2番目の最小桁ビットであったものに対して同一の動
作を行ない、且つ、該キャラクタの全てのビットが分解
され且つOBEを介して伝送される為の準備がなされる
迄、以下同様に繰返し行なわれる。
ro@hj命令コード(opcode)が該分解したビ
ットをインデックスレジスタ内に格納し、且つそのビッ
トをrlの最大桁ビット位置内に回転入力させた後、通
常のro u t dJマイクロ命令はそのビットをr
lから内部データバスを介してOBE出力データ(チャ
ンネルアクセスレジスタ内のホストによって特定された
チャンネルに対し)へ転送する。
第7c図に示したrb c a pJ全命令、3つの著
しいタスクを同一のマシンサイクルにおいて実行する。
それは、ビット3のカウントを維持し、該カウントはデ
クリメントされ、且つそれがゼロに到達すると(キャラ
クタの全てのビットが処理されたことを表す)、ALU
のインデックスレジスタ内に「ゼロ」フラッグを設定す
る(条件付き分岐マイクロ命令による使用の為、例えば
、キャラクタ全ては組み立てられたか又は分解されたか
を知る為にファームウェアが必要とする時)。
該rb c a pJ全命令、又、蓄積した「ブレーク
ビット」を該インデックスレジスタ内の現在のビットと
論理的にrORJ動作させることにより「ブレーク」条
件2(全てゼロ)を検知するのみならず、継続的なパリ
ティ発生を実行しく且つパリティエラーを決定)工する
rb c a pJ命令コードの形態は、rbcapr
l、r2Jであり、rlは「オプションレジスタ」4で
あり、且つr2は「操作レジスタ」5である。オプショ
ンレジスタr1は、8ビツトレジスタであって、その2
つの最小桁ビットはエンコードされたキャラクタ長さ(
ri s hJ命令コードに関連して既に上述した)を
有している。これらのビットは、3番目及び4番目の最
小桁ビットと共に、rb c a pJ命令コードによ
って使用されることはない。rb c a pJ命令コ
ードは、rlの4個の最大桁ビットを使用し、それは(
最大桁から最小桁へかけて)パリティが奇数であるか又
は偶数のタイプであるかを表す1ビツトと、該パリティ
のタイプ(パリティ無しの場合にro OJ、強制パリ
ティに対して「01」 [奇数に対して1へ又偶数に対
して0へ強制]、且つ通常パリティに付いて「10」 
「「11」は不使用])を表す2ビツトと、パリティを
無視すべき場合に設定される1ビツトとを有している。
操作レジスタr2も8ビツトレジスタであり、その2つ
の最大桁ビット及び4つの最小桁ビットのみであるが、
それらのビットが使用される。最大桁ビットは、蓄積し
たパリティを表し、次の最大桁ビットは「ブレーク検知
」ビットを表し、且つ4つの最小桁ビットは現在のキャ
ラクタに対して処理されるビットの蓄積したrカウント
」を表す。
上述した如く、rカウント」は単にデクリメントされ且
つゼロに対してテストされ、それが、もし真である場合
には、インデックスレジスタ内の「ゼロフラッグ」をセ
ットさせる。「蓄積パリティ」ビット及びインデックス
レジスタ内の現在のビットは、どのタイプのパリティ操
作がrl内において特定されているかに依存して、新た
なr蓄積パリティ」ビットを決゛定する為に使用される
受領したビットの場合、キャラクタの全てのビットが全
て受け取られると、サンプルしたパリティビットを該蓄
積パリティビットに対して比較してパリティエラーが実
際に発生したか否かを決定することが可能である。
rb c a pJ命令コードの3番目及び最後の操作
は、「ブレーク」検知を包含する。上述した如く、「ブ
レーク検知」ビットと現在のビットとに関して論理rO
RJを単純に実行することにより、キャラクタの全ての
ビットが処理された後の「ブレーク検知」ビットの状態
は、ブレーク条件が満足されたか否かを表す、換言する
と、キャラクタのいずれかのビットがゼロでない場合、
[ブレーク検知jビットはそのキャラクタに対してセッ
トされる。そうでないと、該ビットはゼロのままであり
、該ブレーク条件が満足されることを表す。
「ブレーク検知」ビット出力は、インデックスレジスタ
のrcJフラッグへ接続されており、従ってそれは条件
付き分岐及びリターンマイクロ命令によってテストされ
得る。
4番目の独特のマイクロ命令命令コードである「文脈リ
ターン」命令コードは第7d図に示してあり、それは今
までの説明において何度も出てきた。このマイクロコー
ドが書き込まれると、プログラマ−は、現在のルーチン
の完了後に(与えられた文脈に対して)どのルーチンを
実行するかを知っている(多分、与えられたルーチンに
対して複数個の出口がある場合には、条件的に)。従っ
て、r文脈リターン」命令コードは、単に、条件付き又
は条件無しのリターン命令であり、それはスタンダード
のリターン実行を行なうのみならず、その文脈に対応す
る文脈RAM位置内に書き込むべき「文脈リターン」命
令(即ち、その文脈に対して実行されるべき次のルーチ
ンのエントリイボインド)内に特定されたアドレスをコ
ピーする。
例えば、命令rrxz  addrJに対して、ALU
はインデックスレジスタ内のゼロフラッグがセットされ
ているか否かを決定する。決定されておれば、特定され
たアドレスを現在の(既知の)文脈に対応する文脈RA
M位置内に書き込んだ後に、スタンダードなリターンが
実行される。決定されていない場合、そのルーチン内の
次のマイクロ命令の実行は逐次的に継続する。
従って、「文脈リターン」命令コードは、「rx  a
ddrJ、rrxz  addrJ、rrXnz  a
ddrJ 、rrxc  addrJ、rrXnc  
addrJ、rrxi  add rJ 、又は「rx
ni  addrJの形態である。該命令コードのこれ
らの異なった形態は、リターン(及び文脈RAM内への
アドレスの書込)が発生するか否かを決定する条件にお
いてのみ異なる。rrxJ命令コードは、無条件リター
ンでる。rrxzJ及びrrxnzJ命令コードは、A
LUインデックスレジスタ内の「ゼロフラッグ」がセッ
トされているか又はセットされていないかの条件に従っ
てリターンする。rrxcJ及びrrxncJ命令コー
ドは、ALUのインデックスレジスタないの「Cフラッ
グ」がセットされているか又はセットされていないかの
条件に拠ってリターンする。最後に、rrxiJ及びr
rxniJ命令コードは、ALUのインデックスレジス
タ内の「iフラッグ」がセットされているか又はセット
されていないかの条件に拠ってリターンする。
透 MCCC0CTARTの上述した構成要素の一体的な動
作は、典型的な通信セツションの一部の期間中のそれら
の動作を検討することによって良く理解することが可能
である。
ホストプロセサが、最初に、種々のパラメータ(例えば
、キャラクタ毎のビット数、及び所望のボー速度)をM
CCC0CTART(7)適宜(7)L/ジスタ内に書
き込むことによって、使用中の各チャンネルの種々のレ
ジスタを初期化させることによって、通信セツションを
開始する0例えば、グローバルチャンネルアクセスレジ
スタがあり、それに対して、ホストはコンフィギャー即
ち特定の形態に構成すべきチャンネル(8個の可能なチ
ャンネルの内)の数を書き込む。そのレジスタを初期化
させた後に、ホストは、特定のチャンネルを参照する必
要性無しに、単にローカルアドレス動作を使用すること
が可能である。
従って、チャンネル番号を再度特定する必要性無しに又
種々のボー速度受け取りレジスタ用の1つを超えるアド
レスを監視する必要性無しに、単にIBE内のボー速度
期間カウントレジスタへ書込を行なうことによって、ボ
ー速度を受け取りデータに対して特定することが可能で
ある。更に、ホストは、パリティオプション、キャラク
タ長さ、及びMCCC0CTARTにより検知されるべ
き特別のキャラクタ等のパラメータでその他のレジスタ
を初期化させることが可能である。又、ホストは種々の
インタラブドモードのいずれかをサポートさせることが
可能であり(MCCCOCTARTがホストをインタラ
ブドする条件を特定する為に)、且つデータを伝送又は
受け取る為にチャンネルのいずれかを活性化させること
が可能である。
実際のデータ転送自身のみならず(例えば、ホストが特
定のチャンネルを介してデータキャラクタを伝送する場
合、又はそのチャンネルからキャラクタを受け取る場合
)この「パラメータ化」の全ては、BILによって制御
される。例えば、MCCC0CTARTのレジスタのい
ずれかを初期化させる為にパラメータを送ることをホス
トが所望する場合には、BILのアドレス翻訳ロジック
が、ホストによって特定されたアドレスを、グローバル
アドレス(ホストが特定したアドレスの最大桁ビット上
にゼロを付加することにより)又はローカルアドレス(
ホストが特定したアドレスの最大桁ビット上に既知のチ
ャンネル番号を付加することにより)のいずれかに翻訳
する。このアドレス翻訳機構は、前に詳細に説明した。
注意すべきことであるが、データ転送の場合、ホストが
BILのポインターレジスタをアドレスすると、アドレ
ス翻訳ロジックはこれらのレジスタを、ポインター及び
カウンタ操作ロジック(爾後のキャラクタにアクセスす
る為)を活性化するのみならず、データFIFO内への
ポインターとして使用する。
ホストが特定したアドレスを翻訳すると、BILはその
アドレスを内部アドレスバスに沿って送り、適宜のレジ
スタをイネーブルして、ホストによる読取又は書込動作
の開始と共に、内部次いで外部のデータバスを介してデ
ータを送信又は受信する(多分、データバスインターフ
ェースにより、上述した如くそのデータは多少修正され
る)6多分最も顕著ごとは、BILが、アドレスポイン
ターを維持し且つ操作することにより、(上述した)デ
ータキャラクタ転送処理を自動化させ、その際にホスト
プロセサがこのタスクを実行することの必要性を除去し
ていることである。
本発明の実施例に戻ると、ホストによってMCCC0C
TARTのレジスタがパラメータ化され(且つデータの
受領及び/又は送信の為に1つ又はそれ異常のチャンネ
ルが活性化された)後に、メインエンジンが文脈RAM
 (全ての活性チャンネルに対して)をrスタートビッ
ト確認」ファームウェアルーチンの開始アドレスで初期
化し、且つゼロサーチを開始させるIBEをイネーブル
させて、活性チャンネルのいずれかにおいてスタートビ
ットの初期端部を探す。
I10ビットエンジンの部分において上述した如く、入
力ビツトエンジンは、二進「0」がサンプルされる迄、
n番目のサイクル毎に(尚、nはチャンネル数)各活性
チャンネルの入力をサンプルし、その時点において、ス
タートビット端部が仮定され、且つIBEがそのボー速
度カウンタを活性化させ、半ビツト時間毎にサンプリン
グを行なわせる。スタートビット端部がチャンネル1に
おいて検知されたと仮定する。注意すべきことであるが
、IBEは今や文脈を知っており(チャンネル1に沿っ
てのデータの受信)、且つBILのみならずメインエン
ジンをイネーブルさせて、その文脈情報をアクセスする
この時間中に、メインエンジンのファームウェアは、そ
の時間において適宜のバックグラウンドルーチンを実行
する(例えば、ホストがインタラブドされるべき条件に
対してのスキャニング)。
申立られたスタートビットの中間がサンプルされると、
IBEはメインエンジンをインタラブドしくそのバック
グラウンドルーチンの1つの実行中に)、その時点にお
いて、メインエンジンは直ぐにこのインタラブドに応答
し、上述した状態インタラブド処理機能(既に初期化さ
れたチャンネル1上のデータの受領の為の文脈RAMエ
ントリーを具備)を使用して「スタートビット確認」ル
ーチンを喚起させる。
次いで、このフォアグラウンドファームウェアルーチン
が、IBEのサンプルデータレジスタ内におい1得られ
る最初のサンプルしたビットの「中間」を検査する。そ
れが二進「1」である場合、無効スタートビットが検知
され、該ルーチンは、それ自身のスタートアドレスを「
チャンネル1受け取りデータ」文脈に対応する文111
FiRAM位置内にロードした後に単純に外部に出る(
次のスタートビット端部が見つかり且つ該申立たスター
トビットの中間をサンプルした後にこのルーチンを実行
させる)。
I10ビットエンジンの部分において説明した如く、無
効スタートビットの場合、IBEは自動的にゼロサーチ
モードに復帰しく申立たスタートビット自身の「中間」
を検査した後に)、且つ有効スタートビットの場合には
同期サンプルモードを継続する(ファームウェアが現在
の文脈に対してのボー速度期間延長カウントレジスタを
修正してIBEをして全ビット時間(半ビツト時間では
ない)サンプリングを実行するが)。
然し乍ら、究極的に、サンプルし、たビットは二進「O
」であり、有効スタートビットが検知されたことを表し
、且つ該ルーチンは、「オプション」レジスタを初期化
しくホストが特定したキャラクタ長さ及びパリティタイ
プで)且つ次のルーチン(スタートビットの終端で喚起
される)のエントリイボインドを文脈RAM内に格納し
た後に、外部へ出る。注意すべきことであるが、半ビツ
ト時間後に(即ち、スタートビットの終端において)チ
ャンネル1上の次の入力をサンプルする為によりEは既
にボー速度を再ロードしている。
例えば、このルーチン用のマイク占コードは。
以下の如きものである。
スタートビット 曾ルーチン 5trt  rxni  5trt    有効スター
ト、レベルサーチへ復帰 mov  opt、rcountカウント及びパリティ
初期化 rx   5tcnt    確認スタートビット認識
スタートビットの終端をサンプルした後に、よりEは再
度メインエンジンをインタラブドし、その時点において
、インタラブド処理器が該ルーチン(そのエントリイボ
インドは、上述した如く、以前に文脈RAM内にロード
された)を喚起し。
それはチャンネル1用のIBEボー速度延長カウント期
間レジスタを修正することにより、半ビツト時間ではな
く、全ビット時間においてIBEをしてサンプリングを
開始させることにより、スタートビットの終端を処理す
る。注意すべきことであるが、この修正が効果を表す時
速に、IBEはデータキャラクタの最初のビットの中間
のサンプルを完了している(半ビツト時間で)、然し乍
ら、現在のルーチンは、サンプルしたデータを無視しく
スタートビットの終端において)、且つ「キャラクタ組
み立て」ルーチンのアドレスを文脈RAM内に格納した
後にリターンする。
データキャラクタの最初のビットの中間をサンプルする
と、IBEは再度メインエンジンをインタラブドし、キ
ャラクタ組み立てルーチンを実行させる。このルーチン
は、その最初のサンプルしたビットを、上述したris
hJ命令を使用して、組み立て中のキャラクタ内に挿入
する。注意すべきことであるが、rishJ命令の繰返
しの実行は1組み立てられたキャラクタを右揃えとさせ
る。
次いで、メインエンジンがrb c a pJ命令を実
行して、(1)キャラクタカウントをデクリメントして
、キャラクタ組み立てが次のビットの後に完了する場合
に「ゼロフラッグ」をセットさせ、(2)継続的パリテ
ィ発生を実行しく従って、キャラクタの終端において、
ホストがその様に特定すると。
その発生したパリティ値を受信したパリティビットと比
較することが可能である)、且つ(3)各データビット
を(キャラクタの全てのビットが「0」である場合に、
「ブレーク」キャラクタを決定する為に)現在のキャラ
クタに対する以前の「OR」の蓄積値と論理的にroR
J動作させることにより継続的な「ブレーク検知」チエ
ツクを実行する。
次いで、このルーチンは、「ゼロフラッグ」をテストし
て、キャラクタ組み立てが次のビットの後に完了するか
否かを決定する。否定の場合には、同一のルーチンのエ
ントリイボインドを(キャラクタ組み立てを継続する為
に)文脈RAM内に格納した後にリターンする。そうで
ない場合には、このルーチンは、オプシ目ンレジスタ(
rl)内の「パリティタイプ」をチエツクして、パリテ
ィがこのキャラクタと共に伝送されるか否かを決定する
。否定の場合には、それは、「パリティ無し最終キャラ
クタビット」ルーチンのエントリイボインドを文脈RA
M内に格納する。そうでない場合には、それは、「パリ
ティ有り最終キャラクタビット」ルーチンのエントリイ
ボインドを文脈RAM内に格納する。
付加的なルーチンが、パリティ又はフレーミングエラー
が発生したか否か、且っ「ブレーク」キャラクタ(全て
ゼロ)が受け取られたが否がを決定し、且つ適宜のフラ
ッグをセットする。IBEの制御モードビットを修正し
くスタートビット検知を開始する為に)、組み立てたキ
ャラクタを一時的保持用レジスタ内に格納し、且つキャ
ラクタ組み立てが完了したことを表すフラッグをセット
した後に、「スタートビット確認」ルーチンのエントリ
イボインドを文脈RAM内に格納することによって、本
処理を繰返し行なう。
全てのチャンネルは同様の処理が行なわれ、IBEはメ
インエンジンをインタラブドして、インタラブド処理器
をしてファームウェアフォアグラウンドルーチンを開始
させて、キャラクタを組み立て且つ通信エラーを検知す
る。同様の処理は、OBEを介して伝送されるビットに
対して実行される(但し、ro s hJ命令はキャラ
クタ分解の為に使用され、且つスタート、ストップ及び
パリティビットをサンプルし且つ確認する代わりに、こ
れらのビットは単にキャラクタビットと共に伝送される
)。
メインエンジンがI10ビットエンジンインタラブトに
応答してキャラクタを組み立て及び分解していない間、
メインエンジンのファームウェアバックグラウンドルー
チンが実行される。これらのバックグラウンドルーチン
は、例えばキャラクタ組み立ての完了の検知(時々、次
のキャラクタが受信され且つ組み立てられる前)及びR
AM内の受信データFIFOの次の自由なエリア内への
組み立てたキャラクタの格納等の多様な機能を実行する
ことが可能である。その他のルーチンは。
受信キャラクタのステータスを検査し、且つこのステー
タス情報をRAM内の受信データFIFO内に格納する
(データ自身とインターリーブされている)。ホストが
その様に特定すると、バックグラウンドルーチンは、受
信したキャラクタをホストが特定した「特別」キャラク
タと比較し、且つそのことをホストに通知する為に付加
的なステータスFIFOビットを設定する。
上述した如く、ホストは、MCCC0CTARTがキャ
ラクタをインタラブドし且つホストに通知する態様を変
化させる場合がある。これらの変化は、実行時にチップ
へ異なったパラメータ値を書き込むだけでなく、例えば
、ホストの明細に対する通信処理を著しくカスタム化さ
せる為に実際にファームウェアルーチンを書き込むこと
も包含する。この様な場合の1例は、rXon/Xof
f」フロー制御の実行である。MCCC0CTART用
に特別に設計すること無しに、この特徴は単にファーム
ウェアの変化によって付加させることが可能であり、ホ
ストプロセサから著しい処理時間を解除させている。本
汎用マイクロコードエンジンの柔軟性が著しく高いので
、その他の多数の変形例が存在することは勿論である。
本実施例に戻ると、キャラクタが継続して到着すると、
ホストをインタラブドすることが必要(例えば、伝送デ
ータFIF○が空の場合、又は受信データFIFOスレ
ッシュホールド(ホストによって特定されている)に到
達した場合)な時間に到達する。上述した良好データイ
ンタラブド機構及びこれも上述したBILの自動化デー
タ転送機構が役割を果たすのはこの時点である。ホスト
がインタラブドされ且つ特定のステータスタイプのデー
タがホストへ転送される(且つデータがホストから受け
取られる)処理は、既に、良好データインタラブド及び
1動化データ転送の部分のいて詳細に説明したの。
以上、本発明の具体的実施の態様に付いて詳細に説明し
たが、本発明はこれら具体例にのみ限定されるべきもの
では無く1本発明の技術的範囲を逸脱すること無しに種
々の変形が可能であることは勿論である。
【図面の簡単な説明】
第1a図及び第1b図は典型的なマルチチャンネルデー
タ通信制御器の柔軟性に欠けるアーキテクチャ−を示し
た各概略図であって、2チヤンネル(第1a図)から専
用ロジックを繰り返すことによって8チヤンネル(第1
b図)とすることを示しており、第2図は本発明の好適
実施例であるMCCC0CTARTの汎用アーキテクチ
ャ−を示す概略図、第3a図はMCCC0CTARTの
入力ビツトエンジン(IBE)のアーキテクチャ−を詳
細に示した概略図、第3b図はMCCC0CTARTの
出力ビツトエンジン(OBE)のアーキテクチャ−を詳
細に示した概略図、第4図はMCCC0CTARTのバ
スインターフェースロジック(B I L)のアーキテ
クチャ−であって特に自動化データ転送機能を詳細に示
した概略図。 第5図はMCCC0CTARTのメインエンジンモジュ
ールのアーキテクチャ−であって特に状態インタラブド
処理機能を詳細に示した概略図、第6図は良好データイ
ンタラブド機構(ランダムロジックにても実現可能)の
ファームウェア実施例の基礎となるロジックの流れを示
した概略図、第7d図乃至第7d図はMCCC0CTA
RTのメインエンジンモジュールにおけるALUによっ
て実行されるキャラクタ組み立て/分解命令コード(r
ishJ、ro s hJ、rbcapJ、「Cont
ext  returnJ)のロジックの流れを示した
各説明図、である。 (符号の説明) 6:タイミングロジック 7:操作制御器 8:インタラブト制御器 9:ボー速度発生器 10:タイミングロジック A:入力ビットエンジン B:メインエンジン C:出力ビツトエンジン D:バスインターフェースロジック E :RAMベースFIFO F:モデム制御ロジック

Claims (1)

  1. 【特許請求の範囲】 1、ホストプロセサ等の計算装置と1組の外部装置等の
    1つ又はそれ以上の計算装置との間の通信インターフェ
    ースとして機能する装置において、1つ又はそれ以上の
    ビットのデータを有する複数個のデータキャラクタを格
    納する手段を具備する格納エリア、前記格納エリアから
    前記ホストプロセサへ前記データキャラクタを伝送する
    手段、前記ホストプロセサから前記データキャラクタを
    受け取り且つ前記データキャラクタを前記格納エリア内
    に格納する手段、1つ又はそれ以上の外部装置から単位
    時間当たり1つ又はそれ以上のビットのデータを受け取
    る手段、1つ又はそれ以上の外部装置へ単位時間当たり
    1つ又はそれ以上のビットのデータを送る手段、前記1
    つ又はそれ以上のビットのデータを受け取る手段によっ
    て受け取られた前記1つ又はそれ以上のビットのデータ
    をデータキャラクタに組み立てる手段、前記組み立てた
    データキャラクタを前記格納エリア内に格納する手段、
    前記ホストプロセサから前記データキャラクタを受け取
    る手段によって受け取られ且つ前記格納エリア内に格納
    されたデータキャラクタを前記1つ又はそれ以上のビッ
    トのデータを送る手段によって前記1つ又はそれ以上の
    外部装置へ送るべき1つ又はそれ以上のビットのデータ
    に分解する手段、本装置がデータキャラクタを組み立て
    且つ分解するステップを修正する手段を具備しており本
    装置のプログラムを行なう手段、を有することを特徴と
    する装置。 2、特許請求の範囲第1項において、外部装置から受け
    取られたデータキャラクタに関する複数個のタイプのス
    テータス情報の任意の1つを認識する手段、最も最近に
    受け取ったデータキャラクタが次前に受け取ったデータ
    キャラクタと異なったタイプのものである場合に第1信
    号を発生する手段、前記第1信号に応答し且つ最も最近
    に受け取ったデータキャラクタがその直前の1つ又はそ
    れ以上のデータキャラクタの前のタイプと異なるタイプ
    のものであることを前記ホストプロセサへ通知する手段
    、を有することを特徴とする装置。 3、特許請求の範囲第1項において、前記データキャラ
    クタを前記ホストプロセサへ伝送する手段、及び前記ホ
    ストプロセサからデータキャラクタを受け取る手段とが
    、前記データキャラクタが前記ホストプロセサへ伝送さ
    れるか又はそれから受け取られる前記格納エリアにおけ
    る位置を前記ホストプロセサから受け取ること無しにそ
    の位置をアクセスする手段を有していることを特徴とす
    る装置。 4、特許請求の範囲第1項において、前記データキャラ
    クタを組み立て且つ分解する手段が、各々が本装置に対
    して特定の機能を実行することを支持する複数個の制御
    信号を具備する複数個の制御ワードを有する制御格納エ
    リア、各々が前記制御ワードの予め定義されたシーケン
    スの第1制御ワードの前記制御格納エリアにおける位置
    を具備する複数個のベクトルを有する文脈格納エリア、
    特定した順序で制御ワードのシーケンスを実行する手段
    、を有する装置であって、且つ、前記実行する手段が、
    データキャラクタを1つ又はそれ以上のビットのデータ
    へ分解し且つ前記1つ又はそれ以上のビットのデータを
    前記外部装置の1つへ伝送した後にどの外部装置へ前記
    1つ又はそれ以上のビットのデータが伝送されたかを決
    定する手段と、1つ又はそれ以上のビットのデータが前
    記外部装置の1つから受け取られ且つ前記1つ又はそれ
    以上のビットのデータがデータキャラクタに組み立てら
    れた後にどの外部装置から前記1つ又はそれ以上のビッ
    トのデータが受け取られたかを決定する手段と、前記1
    つ又はそれ以上のビットのデータが伝送されたか又は受
    け取られた前記外部装置に対応するベクトルを決定し且
    つ前記シーケンスの第1制御ワードへアクセスする為に
    前記ベクトルを使用する手段と、前記制御ワードによっ
    て本装置に特定の機能を実行させることにより前記第1
    制御ワード次いで前記シーケンスにおける爾後の制御ワ
    ードを実行する手段と、以前に前記シーケンスの前記第
    1制御ワードの位置を有していた前記ベクトルを修正し
    前記ベクトルをして前記1つ又はそれ以上のビットのデ
    ータが伝送されたか又は受け取られた前記外部装置に対
    応する異なったシーケンスの制御ワードの前記第1制御
    ワードの位置を有さしめる手段と、を有することを特徴
    とする装置。 5、特許請求の範囲第1項において、それにより本装置
    が1つ又はそれ以上のビットのデータをデータキャラク
    タに組み立てる前記手段が、制御ワードを実行する手段
    を有しており、前記制御ワードは、nを組み立てるべき
    前記キャラクタにおけるビット総数としそれがn回繰り
    返された場合にその組み立てられたnビットキャラクタ
    をデータ格納装置内に右揃えで格納させる機能を本装置
    に実行させる複数個の制御信号を有しており、前記機能
    は、組み立てられる前記キャラクタにおけるビットの総
    数であるnを決定する為に前記制御ワードの第1部分を
    使用し、前記キャラクタが組み立てられているデータ格
    納装置を識別する為に前記制御ワードの第2部分を使用
    し、前記データ格納装置のn個の最下位ビットを1ビッ
    ト右へシフトさせ、外部装置から受け取られた現在のビ
    ットを前記データ格納装置のn番目の最下位ビットとし
    て組み立て中のキャラクタ内へ挿入し、前記現在のビッ
    トよりもより上位の前記データ格納装置の各ビット内に
    ゼロを挿入する、上記各ステップを有することを特徴と
    する装置。 6、特許請求の範囲第1項において、それによって本装
    置がデータキャラクタを1つ又はそれ以上のビットのデ
    ータへ分解する前記手段が、制御ワードを実行する手段
    を有しており、前記制御ワードは、本装置をして前記キ
    ャラクタが組み立てられる第1データ格納装置を識別す
    る為に前記制御ワードの一部を使用し且つ前記第1デー
    タ格納装置のビットをシフトさせる複数個の制御信号と
    、前記1つ又はそれ以上のビットを伝送する前記手段に
    よって前記外部装置の1つへ伝送すべき前記第1データ
    格納装置の前記最小桁ビットを前記シフトの前に格納す
    る手段とを有することを特徴とする装置。 7、特許請求の範囲第1項において、それにより本装置
    が1つ又はそれ以上のビットのデータをデータキャラク
    タに組み立てる前記手段が、制御ワードを実行する手段
    を有しており、前記制御ワードは、nを前記組み立て中
    のキャラクタにおけるビット総数として、n回繰り返さ
    れた場合に、組み立てられたnビットキャラクタに関す
    る最終機能の実行となる中間機能を前記中央処理モジュ
    ールに実行させる複数個の制御信号を有しており、前記
    中間機能は、前記既に受け取ったキャラクタに基づいて
    組み立て中のキャラクタの蓄積したパリテイエラーチェ
    ックステータスの決定、前記既に受け取ったキャラクタ
    のビットに基づいて組み立て中のキャラクタの蓄積した
    ブレーク条件ステータスの決定、及び前記入力データモ
    ジュールにより既に受け取られた前記組み立て中のキャ
    ラクタの現在のビット数の決定、を有しており、且つ前
    記最終機能が、前記組み立てたキャラクタのパリテイエ
    ラーチェックステータスの決定、前記組み立てたキャラ
    クタのブレーク条件ステータスの決定、及び前記組み立
    てたキャラクタのビット総数の決定、を有することを特
    徴とする装置。 8、特許請求の範囲第4項において、前記データキャラ
    クタを伝送するか又は受け取った前記外部装置に対応す
    る次のシーケンスの制御ワードの前記第1制御ワードの
    位置を前記ベクトルに有させる前記ベクトルを修正する
    手段が、制御ワードを実行する手段を有しており、前記
    制御ワードが前記中央処理モジュールをして前記ベクト
    ルをその様に修正させる複数個の制御信号を有すること
    を特徴とする装置。 9、第2装置から受け取ったデータのステータスを第1
    装置へ通知する方法において、前記データの各項目を前
    記データに関する複数個のタイプのステータス情報の1
    つに分類し、最も最近に受け取ったデータ項目がその直
    前のデータの1つ又はそれ以上の項目の前のタイプとは
    異なったタイプであることを前記第2装置へ通知する、
    上記各ステップを有することを特徴とする方法。 10、特許請求の範囲第9項において、前記前のタイプ
    のデータの項目の数を前記第2装置へ通知するステップ
    を有することを特徴とする方法。 11、特許請求の範囲第9項において、前記ステータス
    情報のタイプが、前記第2装置からデータの前記項目を
    伝送する処理においてエラーが発生した場合のエラーデ
    ータ項目タイプ、前記データの項目が特別例外データの
    予め定義した項目の1つである場合の例外データ項目タ
    イプ、及び前記データの項目がエラーデータ項目タイプ
    でも例外データ項目タイプでもない場合の良好データ項
    目タイプを有していることを特徴とする方法。 12、各々が本装置をして特定の機能を実行させる複数
    個の制御信号を具備する複数個の制御ワードを有する制
    御格納エリア、各々が前記制御ワードの予め定義したシ
    ーケンスの第1制御ワードの前記制御格納エリアにおけ
    る位置を具備する複数個のベクトルを有する文脈格納エ
    リア、各々が1つ又はそれ以上のビットのデータを有す
    るデータキャラクタ、前記データキャラクタを1つ又は
    それ以上のビットのデータへ分解し且つ前記ビットのデ
    ータを1つ又はそれ以上の外部装置へ伝送する手段、1
    つ又はそれ以上の外部装置からデータビットを受け取り
    且つ前記データビットをデータキャラクタに組み立てる
    手段、制御ワードのシーケンスを特定した順序で実行す
    る手段、を有する装置において、前記実行する手段が、
    データキャラクタを1つ又はそれ以上のビットのデータ
    に分解し且つ前記1つ又はそれ以上のビットのデータを
    前記外部装置の1つへ伝送した後に前記1つ又はそれ以
    上のビットのデータが伝送された外部装置を決定する手
    段と、前記外部装置の1つから1つ又はそれ以上のビッ
    トのデータが受け取られ且つ前記1つ又はそれ以上のビ
    ットのデータがデータキャラクタに組み立てられた後に
    どの外部装置から前記1つ又はそれ以上のビットのデー
    タを受け取ったかを決定する手段と、前記1つ又はそれ
    以上のビットのデータが伝送されたか又は受け取られた
    前記外部装置に対応するベクトルを決定し且つ前記シー
    ケンスの第1制御ワードにアクセスする為に前記ベクト
    ルを使用する手段と、前記制御ワードにより本装置が特
    定の機能を実行させることにより前記第1制御ワード次
    いで前記シーケンスにおける爾後の制御ワードを実行す
    る手段と、以前に前記シーケンスの前記第1制御ワード
    の位置を有しており前記ベクトルをして前記1つ又はそ
    れ以上のビットのデータが伝送されたか又は受け取られ
    た前記外部装置に対応する制御ワードの異なったシーケ
    ンスの前記第1制御ワードの位置を有さしめる前記ベク
    トルを修正する手段とを有することを特徴とする装置。 13、各々が1つ又はそれ以上のビットのデータを有す
    るデータキャラクタ、1つ又はそれ以上の外部装置から
    データビットを受け取る手段、及び、制御ワードを実行
    することにより前記受け取ったデータビットをデータキ
    ャラクタに組み立てる手段、を有する装置において、前
    記制御ワードは、nを組み立て中のデータキャラクタに
    おけるビットの総数として、n回繰返し行なわれた場合
    に、組み立てられたnビットキャラクタをデータ格納装
    置内に右揃えさせる機能を本装置に実行させる複数個の
    制御信号を有しており、前記機能は、前記組み立て中の
    キャラクタにおけるビット総数nを決定する為に前記制
    御ワードの第1部分を使用し、前記キャラクタが組み立
    て中のデータ格納装置を識別する為に前記制御ワードの
    第2部分を使用し、前記データ格納装置のn個の最小桁
    ビットを右へ1ビットシフトさせ、外部装置から受け取
    った現在のビットを前記データ格納装置のn番目の最小
    桁ビットとして組み立て中のキャラクタ内に挿入し、前
    記現在のビットよりも一層桁位置の高い前記データ格納
    装置の各ビット内にゼロを挿入する、上記各ステップを
    有することを特徴とする装置。 14、各々が1つ又はそれ以上のビットのデータを有す
    るデータキャラクタ、データビットを1つ又はそれ以上
    の外部装置へ伝送する手段、制御ワードを実行すること
    により1つ又はそれ以上の外部装置へ伝送する為にデー
    タキャラクタをデータビットへ分解する手段、を有する
    装置において、前記制御ワードが、前記キャラクタが組
    み立てられる第1データ格納装置を識別する為に本装置
    をして前記制御ワードの一部を使用させ且つ前記第1デ
    ータ格納装置のビットをシフトさせる複数個の制御信号
    と、前記1つ又はそれ以上のビットを伝送する手段によ
    り前記外部装置の1つへ伝送すべき前記第1データ格納
    装置の前記最小桁ビットを前記シフトの前に格納する手
    段と、を有することを特徴とする装置。 15、各々が1つ又はそれ以上のビットのデータを有す
    るデータキャラクタ、1つ又はそれ以上の外部装置から
    データビットを受け取る手段、制御ワードを実行するこ
    とにより前記データビットをデータキャラクタに組み立
    てる手段、を有する装置において、前記制御ワードが、
    nを組み立て中の前記キャラクタにおけるビット総数と
    して、n回繰返し行なわれた場合に、組み立てたnビッ
    トキャラクタに関する最終機能の実行となる中間機能を
    中間処理モジュールに実行させる複数個の制御信号を有
    しており、前記中間機能が、前記既に受け取られたキャ
    ラクタのビットに基づいて組み立て中のキャラクタを蓄
    積したパリテイエラーチェックステータスの決定、前記
    既に受け取ったキャラクタのビットに基づいて組み立て
    中のキャラクタの蓄積したブレーク条件ステータスの決
    定、及び既に受け取った組み立て中のキャラクタの現在
    のビット数の決定、を有しており、且つ前記最終機能が
    、前記組み立てたキャラクタのパリテイエラーチェック
    ステータスの決定、前記組み立てたキャラクタのブレー
    ク条件ステータスの決定、及び前記組み立てたキャラク
    タのビット総数の決定、を有することを特徴とする装置
    。 16、特許請求の範囲第12項において、前記ベクトル
    を修正する手段が、制御ワードを実行する手段を有して
    おり、前記制御ワードは本装置をして前記ベクトルをそ
    の様に修正させる複数個の制御信号を有することを特徴
    とする装置。
JP63194725A 1987-08-05 1988-08-05 マルチチャンネルデータ通信制御器 Expired - Lifetime JP2812959B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84,717 1987-08-05
US07/084,717 US4975828A (en) 1987-08-05 1987-08-05 Multi-channel data communications controller

Publications (2)

Publication Number Publication Date
JPH01157150A true JPH01157150A (ja) 1989-06-20
JP2812959B2 JP2812959B2 (ja) 1998-10-22

Family

ID=22186784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63194725A Expired - Lifetime JP2812959B2 (ja) 1987-08-05 1988-08-05 マルチチャンネルデータ通信制御器

Country Status (2)

Country Link
US (1) US4975828A (ja)
JP (1) JP2812959B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190349A (zh) * 2021-04-29 2021-07-30 汕头大学 主机任务异步执行的方法、系统及计算机存储介质
CN113571003A (zh) * 2020-04-28 2021-10-29 佳纶生技股份有限公司 具有回复机制的显示装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179663A (en) * 1988-02-19 1993-01-12 Hitachi, Ltd. Data transfer controller
US5228130A (en) * 1988-09-14 1993-07-13 National Semiconductor Corporation Multi-channel peripheral interface using selectively flaggable channel register sets for concurrent write in response to any selected channel register write instruction
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
US5165022A (en) * 1989-10-23 1992-11-17 International Business Machines Corporation Channel and control unit having a first I/O program protocol for communication with a main processor and a second universal I/O program protocol for communication with a plurality of I/O adapters
US5218683A (en) * 1989-10-30 1993-06-08 Hayes Microcomputer Products, Inc. Method and apparatus for concealing the enablement of a device by modifying a status word
US5278956A (en) * 1990-01-22 1994-01-11 Vlsi Technology, Inc. Variable sized FIFO memory and programmable trigger level therefor for use in a UART or the like
US5379386A (en) * 1991-09-05 1995-01-03 International Business Machines Corp. Micro channel interface controller
US5469566A (en) * 1992-03-12 1995-11-21 Emc Corporation Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units
US5465322A (en) * 1993-01-04 1995-11-07 Xerox Corporation Apparatus and method for parsing a stream of data including a bitmap and creating a table of break entries corresponding with the bitmap
US5566352A (en) * 1993-01-04 1996-10-15 Cirrus Logic, Inc. Register-read acknowledgment and prioritization for integration with a hardware-based interrupt acknowledgment mechanism
GB2288954B (en) * 1994-04-15 1998-10-14 Vlsi Technology Inc Method and apparatus for providing programmable serial communications
US5590313A (en) * 1994-06-30 1996-12-31 International Business Machines Corporation Multiple protocol device interface subsystem and method
GB9414277D0 (en) * 1994-07-14 1994-08-31 Phonelink Plc On-line communications
GB2306079B (en) * 1994-07-14 1999-07-07 Phonelink Plc Modem adapter
US5553293A (en) * 1994-12-09 1996-09-03 International Business Machines Corporation Interprocessor interrupt processing system
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US6157984A (en) * 1997-05-15 2000-12-05 Seagate Technology, Llc Integrated controller/processor for disc drive having direct memory access
JP3208706B2 (ja) * 1997-06-10 2001-09-17 富士通株式会社 情報活用システム
US6157968A (en) * 1998-01-26 2000-12-05 Motorola Inc. Interface with selector receiving control words comprising device identifiers for determining corresponding communications parameter set for interface port transfer of data words to peripheral devices
GB9810512D0 (en) * 1998-05-15 1998-07-15 Sgs Thomson Microelectronics Detecting communication errors across a chip boundary
US6631115B1 (en) * 1999-01-28 2003-10-07 International Business Machines Corporation Method, apparatus and program product for balancing communication loads over a network
US6591369B1 (en) * 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. System and method for communicating with an integrated circuit
US6735193B1 (en) * 1999-10-28 2004-05-11 Avaya Technology Corp. Method and apparatus for suppression of packets during silence periods in a packet telephony system
US7588185B2 (en) * 2001-06-07 2009-09-15 3M Innovative Properties Company RFID data collection and use
US6826676B2 (en) * 2001-11-19 2004-11-30 Intel Corporation Extending immediate operands across plural computer instructions with indication of how many instructions are used to store the immediate operand
US6874080B2 (en) * 2001-11-19 2005-03-29 Intel Corporation Context processing by substantially simultaneously selecting address and instruction of different contexts
US6901507B2 (en) * 2001-11-19 2005-05-31 Intel Corporation Context scheduling
AU2003267694A1 (en) * 2002-10-18 2004-05-04 Koninklijke Philips Electronics N.V. Data processing apparatus that processes incoming bits
DE10350353A1 (de) * 2003-10-29 2005-06-02 Siemens Ag Verfahren zur Aufwandsbeschränkung bei der Übertragung von unidirektionalen Informationsströmen
US7281192B2 (en) * 2004-04-05 2007-10-09 Broadcom Corporation LDPC (Low Density Parity Check) coded signal decoding using parallel and simultaneous bit node and check node processing
JP5109274B2 (ja) * 2006-03-27 2012-12-26 富士通株式会社 文字表示装置、文字表示方法およびそのためのプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61288246A (ja) * 1985-06-14 1986-12-18 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 多重ポ−ト通信システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4012718A (en) * 1975-04-11 1977-03-15 Sperry Rand Corporation Communication multiplexer module
US4336588A (en) * 1977-01-19 1982-06-22 Honeywell Information Systems Inc. Communication line status scan technique for a communications processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61288246A (ja) * 1985-06-14 1986-12-18 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 多重ポ−ト通信システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113571003A (zh) * 2020-04-28 2021-10-29 佳纶生技股份有限公司 具有回复机制的显示装置
CN113190349A (zh) * 2021-04-29 2021-07-30 汕头大学 主机任务异步执行的方法、系统及计算机存储介质
CN113190349B (zh) * 2021-04-29 2023-09-01 汕头大学 主机任务异步执行的方法、系统及计算机存储介质

Also Published As

Publication number Publication date
JP2812959B2 (ja) 1998-10-22
US4975828A (en) 1990-12-04

Similar Documents

Publication Publication Date Title
JPH01157150A (ja) マルチチャンネルデータ通信制御器
US5291614A (en) Real-time, concurrent, multifunction digital signal processor subsystem for personal computers
EP0092429B1 (en) Special instruction processing unit for data processing system
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
JP2539614B2 (ja) ポインタアドレスを発生するための装置および方法
US4156910A (en) Nested data structures in a data driven digital data processor
US4298927A (en) Computer instruction prefetch circuit
EP1840742A2 (en) Method and apparatus for operating a computer processor array
WO2002082267A1 (en) Fpga coprocessing system
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
JPH056906B2 (ja)
US4897779A (en) Method and apparatus for optimizing inter-processor instruction transfers
US5586289A (en) Method and apparatus for accessing local storage within a parallel processing computer
EP1449071B1 (en) Context scheduling
US6964049B2 (en) Smart internetworking operating system for low computational power microprocessors
US4837688A (en) Multi-channel shared resource processor
US20060184708A1 (en) Host controller device and method
US4156909A (en) Structured data files in a data driven digital data processor
Bertolotti et al. Modular design of an open-source, networked embedded system
EP1269333A1 (en) Method and apparatus for adding user-defined execution units to a processor using configurable long instruction word (cliw)
EP4052141A1 (en) System and method for constructing filter graph-based media processing pipelines in a browser
JPS6187451A (ja) ディジタルデータ通信システム
JPS62165242A (ja) プロセツサ
KR20090004394A (ko) 입력 소스로부터의 직접적인 명령어들의 실행
US6389528B2 (en) Processor with a control instruction for sending control signals without interpretation for extension of instruction set