JP3335172B2 - データ処理システム及びそれに使用するための入出力プロセッサ - Google Patents

データ処理システム及びそれに使用するための入出力プロセッサ

Info

Publication number
JP3335172B2
JP3335172B2 JP07174390A JP7174390A JP3335172B2 JP 3335172 B2 JP3335172 B2 JP 3335172B2 JP 07174390 A JP07174390 A JP 07174390A JP 7174390 A JP7174390 A JP 7174390A JP 3335172 B2 JP3335172 B2 JP 3335172B2
Authority
JP
Japan
Prior art keywords
instruction
input
data
memory
channel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP07174390A
Other languages
English (en)
Other versions
JPH02284252A (ja
Inventor
アレン マッケナー クレイグ
ハーツ カプリンスキー セシル
Original Assignee
コーニンクレッカ フィリップス エレクトロニクスエヌ ヴィ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コーニンクレッカ フィリップス エレクトロニクスエヌ ヴィ filed Critical コーニンクレッカ フィリップス エレクトロニクスエヌ ヴィ
Publication of JPH02284252A publication Critical patent/JPH02284252A/ja
Application granted granted Critical
Publication of JP3335172B2 publication Critical patent/JP3335172B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • 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/126Program 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 and has means for transferring I/O instructions and statuses between control unit and main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】 本発明は、一般的に言えば、主プロセッサと組合わせ
た外部メモリと周辺装置のための1つまたはそれ以上の
入出力コントローラの間で入力または出力あるいはこれ
ら両方(入出力)のデータのストリームを制御して、入
出力を実行または管理する負担の軽減を主プロセッサに
行わせるプロセッサに関する。特に、本発明は主プロセ
ッサ、メモリおよび複数の入出力コントローラの間に機
能的に挿設し、入出力コントローラから入出力サービス
・リクエスト信号を受け取り、そのサービス作業を取り
扱うようになっているプログラマブル入出力プロセッサ
に関する。本発明は、また、このような入出力プロセッ
サを利用するデータ処理装置にも関する。
従来、各入力装置または出力装置のコントローラ・ロ
ジックは、普通、主プロセッサに割り込みリクエスト信
号を提供し、メモリと装置の間でのデータの転送の必要
性を含む事象を示す。この信号の主張に応答して、プロ
セッサは約束していた仕事を中断し、この仕事が将来再
開され得るようにメモリに充分な情報を記憶させ、割り
込みリクエストのソースを示すサブプログラムをの実行
を開始させ、次いで、任意の必要なデータを転送する。
これが達成されたとき、主プロセッサは先に記憶されて
いた情報を取り出し、実行されつつあった仕事を再開す
る。
入出力を達成するこの割り込み従動手段は多数の欠点
を持つ。まず、主プロセッサの先行の仕事と状況につい
ての情報を記憶するのに数多くのメモリ・サイクルを必
要とするということがある。
次に、多くのシステムにおいて、ただ1本の割り込み
リクエスト・ラインまたは少数の割り込みリクエスト・
ラインが多数の入出力コントローラおよび装置からプロ
セッサへのすべての事象通告を搬送しなければならな
い。したがって、プロセッサは、ハードウェア、ソフト
ウェア手段の或る種の組合わせによって、種々の装置の
うちのどれが割り込みを生じたのかを識別しなければな
らず、また、いくつかの装置が同時に信号を送ったとき
に、それらのうちどれが最初に処理すべきであるかを識
別しなければならない。これを行っていから、プロセッ
サは選定された装置に特有の、あるいは、選定された装
置と同じタイプのすべての装置に特有のサブプログラム
の実行を開始する。
3番目に、たいていの入力装置および出力装置の動作
は正規のデータ転送以外の状況および事象を生じさせる
可能性がある。たとえば、テープ駆動がその記録媒体の
終りにくる可能性があり、あるいは、通信コントローラ
が受信データにパリティ検査エラーを検出するかも知れ
ない。したがって、サブプログラムはデータ転送を実施
する前になんらかの異常事象が生じているかどうかをチ
ェックしなければならない。普通は、これを行うには、
選定された入出力コントローラ内の状況レジスタを読み
出し、その結果生じた値を翻訳する。さらに、状況値内
の或る種のフラグのビットの翻訳は他のビット/フラグ
の状態に依存するかも知れないし、あるいは、或る種の
ビット/フラグがチェックされるべき順序に関して「優
先権」を持つかも知れない。このような特性はサブプロ
グラム内の「3構造化」意志決定ロジックに通じ、そこ
においては、一連の連続状況審査が要求される。これは
さらにサブプログラムの実行時間を延ばすことになる。
状況が審査され、正規のデータ転送リクエストを示す
ということがわかったときにのみ、サブプログラムはコ
ントローラとメモリの間でデータを実際に転送すること
ができる。この時点で、サブプログラムはコントローラ
に1つまたはそれ以上の指令を送り、その将来の動作を
状態調整することもできる。たとえば、テープ駆動装置
上のレコードに書き込むべきデータの最後が転送されて
しまったとき、このテープ駆動装置はテープの動きを停
止させるように指令を受けなければならないかも知れな
い。また、このプロセス中の或る時点で、ハードウェア
手段とソフトウェア手段の或る種の組合わせによって、
コントローラは現在の事象について割り込みリクエスト
信号の主張を停止し、プロセッサがこの同じ事象につい
て再度割り込まれないように状態調整されなければなら
ない。
最後に、プロセッサはその先行の活動についての情報
を検索して、その活動を再開できるようにしなければな
らず、これにも数多くのメモリ・アクセスを必要とす
る。
次に、割り込み従動入出力種たる欠陥は、上述した機
能のすべてを実施するに要する時間であり、普通のプロ
セッサに見出されると同様の汎用命令セットを使用する
のである。これらのステップを実施するのに要する全時
間のうちほんの短い時間部分が実際のデータ転送に当て
られる。多数の入出力装置があるか、あるいは、そのう
ちのいくつかが高いデータ転送速度を持っているか、ま
たは、これら両方の事実が存在する場合には、種プロセ
ッサの時間のうちの大きな割合の時間がこのような入出
力割り込みに割かれ、演算あるいはシステム制御のより
高いレベルのアスペクトまたはこれら両方のためのシス
テム性能を低下させる可能性がある。最悪の場合には、
入力データが失われたり、出力データが破壊されたりす
るかも知れない。これはプロセッサがすべての事象にタ
イムリに応答できないからである。
Motorola and Signeticsの製作する効率の良い68010
マイクロプロセッサはSignetics 2698 Octal Universal
Asynchronous Receiver/Transmitter(OCTART)(8チ
ャンネル全二重通信コントローラ)からの割り込みリク
エストを処理することができる。この68010は先行の仕
事状態をセーブする(復元する)のにほんの4回だけの
メモリ転送を必要とするだけなので、サブプログラムの
実行は速い。第2に、これはベクトル化した割り込みを
特徴とし、これはどの装置が割り込んでいるかを識別す
るのに要する時間を短縮する。第3に、その記憶された
仕事状態が割り込み装置のベクトル番号を含んでおり、
これは各OCTARTについての独特のサブプログラム・エン
トリ・ポイントの必要性をなくし、各OCTARTはレジスタ
をセーブし、或るレジスタに共通のルーチンに進む前に
割り込み中のOCTARTの識別(アドレス)をロードする命
令を発生する。上記のシステムでは、9600ビット/秒
(普通の通信速度)で全二重を作動させる1つの2698装
置を取り扱う場合、キャラクタを受信、送信するだけ
に、なんらこれらのキャラクタを処理することなく、68
010の処理能力の70%を必要とする。この数値はプロセ
ッサが100%の利用率でシステム・バスを使用すること
ができるという別の仮定も含んでいる。そんなわけで、
他の装置が68010とシステム・バスの使用を分かち合っ
ているか、あるいは、同じプロセッサがデータも処理し
なければならないか、または、これら両方の場合には、
68010はおそらくは1台のこのような入出力コントロー
ラを取り扱う作業にも不充分となる。
多ユーザUNIX(AT&T Bell Laboratoriesの登録商
標)のような用途では、このような性能上の問題に対す
る解決策は、システムに多数のプロセッサを設けること
である。代表的には、各プロセッサが、1台毎に、その
性能が許すだけの数の入出力装置(上記の例では、数は
4本の通信線であるかも知れない)に対して入出力を処
理する仕事に割り当てられる。この解決策はシステムの
サイズを大きくし、コストを高め、ソフトウェア(作動
システム)を複雑にする。
高速装置の場合、割り込み従動入出力に伴なう問題
は、本体コンピュータの「セレクタ・チャンネル」から
マイクロプロセッサ・システムの「DMAコントローラ」
までにわたる特殊化したハードウェア(主プロセッサか
ら独立して装置コントローラとメモリの間において高速
でデータを転送し得る)の開発の必要性を生じさせる。
このような設備は、また、多数の制限を有する。
まず、一般的に言って、これらの設備は少数の高速装
置を取り扱うシステムには良く適合するが、多数の低速
装置を取り扱うには不適当である。このタイプのいくつ
かの装置(セレクタ・チャンネル)は作業に拘束を与え
て、そのうちの1つだけの装置が一度に作動することし
かできないようになる。
第2に、このような装置は、普通、割り込み従動入出
力に必要とされるものとは異なった特殊化信号伝送用イ
ンターフェースを与えるコントローラを取り付けなけれ
ばならない。さらに、製造業者がこのインターフェース
を標準化することは一度もなかった。或る入出力コント
ローラとこのタイプの装置の間のインターフェースの差
は両者の間に付加的な「接着剤」ロジックを設けること
を要求するかも知れないし、このタイプの或る特定の装
置を或る特定の入出力コントローラにインターフェース
接続するのを不可能にするかも知れない。
第3に、このような装置では、普通、直通データ転送
リクエスト以外の事象や条件を取り扱う能力が非常に限
られ、そして、対応したコントローラの文脈や状況を追
跡し、この文脈に基づいて種々に応答する能力が非常に
限られる。
米国特許第4,591,973号が出力データ処理・分配、入
力データ収集・処理、入出力テストおよびシステム監視
を制御するのに汎用マイクロプロセッサを使用する入出
力プロセッサを開示している。このような汎用マイクロ
プロセッサは対応したコントローラの状況および文脈に
応じて事象を取り扱うようにプログラムされ得る。しか
しながら、このような汎用マイクロプロセッサを用いて
の必要な命令の実行のために要する時間では取り扱い得
る入出力のチャンネルの量または数にかなり制限を与え
る。
したがって、本発明の目的は、主プロセッサから実質
的に独立して1つのメモリと複数の入出力コントローラ
との間におけるデータのストリームを制御することので
きるインテリジェント入出力プロセッサを提供すること
にある。
本発明の別の目的は、割り込み従動入出力にとって普
通のものを超えるいかなる特殊なインターフェース作用
信号あるいは技術をも提供しないし、必要ともしないタ
イプの比較的多数の入出力コントローラを取り扱うこと
のできる入出力プロセッサを提供することにある。
本発明のまた別の目的は、前記入出力プロセッサが汎
用プロセッサに比べて1つのコントローラからのリクエ
ストに応答する完全なプロセスに対して回数の少ないメ
モリ転送でよいようにすることにある。
本発明のまたさらに別の目的は、DMAコントローラの
ような主プロセッサと相互作用を行うが、各々が個別に
DMAコントローラで当初使用されていた速度よりも比較
的遅いデータ速度を有する比較的多数の入出力コントロ
ーラ、装置ならびにチャンネルを取り扱うことのできる
入出力プロセッサを提供することにある。
前述の目的および他の目的は、本発明の原理によれ
ば、複数の入出力コントローラ、主プロセッサおよび外
部メモリの間に位置し、主プロセッサから独立してコン
トローラ、メモリ間でデータの転送を行う入出力プロセ
ッサによって達成される。これらの入出力コントローラ
は、入出力プロセッサがコントローラからのリクエスト
信号に割り込むことになるものを受け取るための複数の
入力部を有するために、割り込み従動入出力にとって普
通のものを超えた特殊なインターフェース作用信号また
は技術をなんら必要としない。
入出力コントローラからのリクエスト信号は本発明の
入出力プロセッサ内のリクエスト・ロジック手段に送ら
れる。本発明の動作における1つのオプションによれ
ば、このリクエスト・ロジック手段は各々別々の入出力
コントローラから送られてくる複数のおそらくは同時に
主張されるリクエスト信号のうちの1つを選定し、ま
た、或る定まった優先順位に従って主張される最高優先
度のリクエストに対応する符号化値を入出力プロセッサ
にとって内部的に発生する優先化手段として作用する。
別のオプションでは、各入出力コントローラからのリク
エスト・ラインは、入出力プロセッサに対して外部にあ
る、リクエスト・ロジック手段に送られる同様の符号化
値を発生する符号化手段に送られる。動作について選ば
れるオプションは入出力プロセッサの内部制御レジスタ
内のビットによって与えられてもよいし、入出力プロセ
ッサに送られる制御信号の状態において与えられてもよ
い。
リクエスト手段に加えて、入出力プロセッサはバス・
インターフェースを包含し、これは入出力プロセッサが
外部メモリと入出力コントローラの間で情報を転送でき
るようにする手段を提供し、また、このバス・インター
フェースはそこに接続した外部バス(単数または複数)
の使用を制御し、対応付ける調停手段も包含し、さらに
は、或る任意の入出力コントローラとシステム・メモリ
内の或る特定のバッファとの間でのデータ転送プロセス
の完了のような主要な事象を主プロセッサに知らせるイ
ンタラプト手段を包含する。入出力コントローラとシス
テム・メモリの間におけるデータ転送プロセスに関係し
た情報を種々のテーブル、レジスタの形で記憶するため
の内部メモリ手段が設けられる。入出力プロセッサは、
また、主プロセッサから内部メモリまでの情報の転送を
可能とする構成手段と、内部メモリあるいは外部メモリ
に記憶され得るプログラムを実施するための実行手段と
を包含する。或る任意の入出力コントローラからの各リ
クエスト・ラインに対応して、内部メモリのテーブルに
前記プログラム内の出発アドレスが記憶される。
使用可能とされ、動作状況にセットされた或る任意の
入出力コントローラからのリクエスト信号の主張に応答
して、入出力プロセッサはメモリから実行手段への命令
からなるサブプログラムを読み出す。このサブプログラ
ムのフォーマットならびにケイパビリティは入出力コン
トローラを取り扱う仕事に対して厳密にカスタム化さ
れ、したがって、汎用プロセッサの命令の場合よりも仕
事に際してより効果的となる。このサブプログラムの制
御の下に、入出力プロセッサは次の作業のうちの任意の
ものあるいはすべてを行うことによってリクエストを処
理する。すなわち、コントローラ内の状況レジスタを読
み出すこと、このような状況項目の各々をメモリに記憶
された多数のテーブルのうちの1つに従って翻訳するこ
と、全体的なデータの流れ方向に応じて外部メモリから
あるいはコントローラからデータを読み出すこと、同様
に記憶されたテーブルに従ってデータを翻訳すること、
コントローラあるいはメモリへデータを書き込むこと、
コントローラへその将来の動作を状態調整する指令を送
ること、将来のリクエストに対するそれ自身の応答モー
ドを変更して入出力プロセスの状況ならびに文脈を追跡
すること、多数のメモリ・バッファ領域のうち将来の転
送のためのメモリ・バッファ領域を変更すること、メモ
リ・バッファの転送完了のような主要事象の発生の際に
主プロセッサに対してそれ自身の割り込みリクエストを
主張することである。なお、上記サブプログラムが本発
明の翻訳プログラムを構成する。
この入出力プロセッサは汎用プロセッサに比してコン
トローラからのリクエストに応答する完全なプロセスに
対して要求されるメモリ転送回数を減らすことを意図し
ている。本発明が適用できるシステム・サイズの範囲の
下限において、これは入出力プロセッサが主プロセッサ
と分かち合うシステム・バスの負担を減らし、したがっ
て、演算ならびにより高い制御レベルについての主プロ
セッサのアベイラビリティを高める。多数の入出力コン
トローラを伴なう大型のシステムの場合、バス負担なら
びにプロセッサ・アベイラビリティは、システム・バス
とは別にローカル・バスで入出力コントローラを入出力
プロセッサに接続し、また、システム・バスに接続した
主またはシステム・外部メモリに加えて設けたローカル
外部メモリに接続することによってさらに改善される。
一組のハードウェア・バッファがローカル・バスとシス
テム・バスの間のインターフェースとなる。
メモリ・サイクルの数を最小限に抑える手段の1つと
して、決定テーブル構造があり、ここでは、サブプログ
ラムがただ1回の動作でそれ自身の中の複数のアドレス
のうちの任意のアドレスへ制御を転送でき、状況バイト
の各可能値に対して1つのアドレスとすることができ
る。これは汎用プロセッサに対する割り込みルーチンを
特徴付ける逐次式3構造化意志決定よりも効率が良い。
リクエストが許されたとき、入出力プロセッサはシス
テム・バスの一時支配すなわちオーナシップを要求し、
実行することができる。これに関して、DMAコントロー
ラと同じ要領で主メモリにアクセスする。しかしなが
ら、入出力プロセッサは、多数の入出力コントローラな
らびに装置(DMAコントローラが使用される用途の代表
的なものよりも低いデータ転送速度を有するものが代表
的である)を取り扱うことができる。さらに、このよう
な実施例は例外的な事象、条件をより良好に取り扱うこ
とができ、また、現存のDMAコントローラよりも入出力
プロセッサの文脈、状況の変化をより柔軟に追跡でき
る。
本発明の他の目的、特徴および利点は以下の説明から
明らかとなろう。以下、好ましい実施例を添付図面に関
連して説明する。
第1図は本発明のインテリジェント入出力プロセッサ
を全体的に10で示すブロック図であり、この入出力プロ
セッサは比較的多数の入出力チャンネル(たとえば、32
個)と主プロセッサまたはマイクロプロセッサによって
もアクセスされるメモリとの間でデータの転送を行える
単チップ式特殊化プロセッサであると好ましい。説明は
2つの主要部分に分けるが、第1の部分は入出力プロセ
ッサの構造の論理的回路・機能属性に当て、第2の部分
は命令セットの機能面に当てる。
構造の論理的回路・機能属性 ここで、入出力プロセッサは入出力プロセッサによっ
て取り扱われるべき種々の入出力コントローラ、内部ラ
ンダム・アクセス・メモリ(RAM)14、チャンネル・レ
ジスタ16、補助チャンネル・レジスタ17、多数の他の内
部レジスタ18、決定テーブル・ワード・ラッチ20、命令
ラッチ/デコーダ22およびバス・インターフェース24
(すべて内部データ・バス26に接続している)に接続す
るようにリクエスト・ラインRQNn−0に応答するリクエ
スト・ロジック12を包含する。バス・インターフェース
24はバス26を外部バスのアドレス・データ部分28に選択
的に接続し、種々のバス調停信号、外部割り込み信号、
他の制御、構成信号を接続部30に与え、受け取る。バス
・インターフェース24はライン34を経てシーケンサ32に
よって制御される。シーケンサ32は特殊化された命令セ
ットによって実行手段を含む有限状態機械であり、この
分野で周知のいくつかの技術のうちの任意の技術によっ
て具体化され得る。バス・インターフェース24での制御
通信を与えるのに加えて、シーケンサ32はライン36を経
て内部メモリ14の一部を選定し、内部メモリ・アドレス
のバランスは、普通、ライン50を経てチャンネル・レジ
スタ16によって与えられる。シーケンサ32はライン38上
のリクエスト・ロジック12から入力を受け取る。また、
シーケンサは決定テーブル・ワード・ラッチ20と命令ラ
ッチ/デコーダ22からの或る種の信号も利用できる。シ
ーケンサ32は内部バス26に接続された論理演算装置(AL
U)41も制御する。入出力プロセッサ10のこれら種々の
内部ブロックの相互作用ならびに機能は以下に明らかに
する。
内部リクエスト・ロジック12へのサービス・リクエス
ト・ラインRQNn−0はいくつかの異なった編成を持ち得
る。好ましい実施例では、各サービス・リクエスト・ラ
インは異なったコントローラに接続される(第2図参
照)。各入出力コントローラは「チャンネル」と呼ばれ
る複数の個別の入力プロセスあるいは出力プロセスを包
含する。たとえば、Signetics 2698 Octal Universal A
synchronous Receiver/Transmitter(OCTART)によれば
このようなチャンネルが16個設けられる。リクエスト・
ラインとコントローラのこのような直結の場合、リクエ
スト・ロジック12は「RQ」ラインの中の決った優先度に
従っておそらくは同時に主張されるリクエストの最高優
先度を決定する。その後、入出力プロセッサ10は、普通
は、多重チャンネル式入出力コントローラのうちのどの
チャンネルがサービスされるべきかを決定する。コント
ローラの数がサービス・リクエスト・ラインRQNn−0の
数を超えた場合、信号すなわちラインRQNn−0は外部ロ
ジックによる前記の入力に先立って符号化される、どの
コントローラがサービス・リクエストを主張しているか
を示すコードを代表することができる(第3図から明ら
かとなろう)。内部的に符号化した場合、外部的に符号
化した場合のいずれでも、不活動状態にあるラインRQNn
−0のうちのいずれも「ノー・リクエスト」を示す。
入出力プロセッサ10の能力はそれが取り扱える「チャ
ンネル」の数によって特徴付けられる。全二重通信ライ
ンは2つのチャンネルを必要とする。さらに、システム
が入出力プロセッサ10が入力プロセスあるいは出力プロ
セスについての種々のバッファ・メモリ領域の中で切り
換わることができることを要求する場合には、そのプロ
セスのために余分なチャンネルが必要となる。
第1図において、内部ランダム・アクセス・メモリ
(RAM)14は以下のものを記憶するに充分なサイズを有
する。すなわち、 1)各チャンネル毎に、データの転送を行うべき現在の
メモリ・アドレスを与えるメモリ・アドレス・テーブル
(MAT)。
2)各チャンネル毎に、現在のメモリ・バッファに残っ
ている現在の記憶場所カウント数を与えるメモリ・カウ
ント・テーブル(MCT)。
3)各チャンネル毎に、状況を読み出そうとしており、
また、データの転送を行おうとしている入出力コントロ
ーラ内のベース・アドレスを与える装置アドレス・テー
ブル(DAT)。
4)各チャンネル毎に、装置のリクエストに応じて最初
の命令が取り出されようとしている、レジスタ18内のプ
ログラム・ベース・レジスタ(PCBR)へのオフセットと
して表現されるメモリ・アドレスを与えるプログラム・
カウント・テーブル(PCT)。チャンネルの数がリクエ
ストの数を超えているため、或るチャンネルのPCTエン
トリを使用するプログラマブル手段も設けられる。
5)各々がホストMPUへの割り込みを識別するのに必要
な情報を含んでいる多数のエントリを記憶するに充分な
サイズの割り込みキュー(INTTAB)。この情報は、普通
は、チャンネル番号と割り込みベクトル・コードとから
なる。これらエントリの必要数はすべてのチャンネルに
ついて一度に取り扱える、主プロセッサへの割り込みリ
クエストの最大数に等しい。一般的には、これは1チャ
ンネルあたり少なくとも1である。割り込みキューは2
つの割り込み優先レベルに対応する2つのセクション
(図示せず)に分けると好ましい。
6)各チャンネル毎に、データ・バス(28の部分)と異
なる数のバス幅ビットを有する装置との転送を容易にす
るデータを与える部分データ・テーブル。部分データ・
テーブルは各チャンネル毎にN−1データ・バイトとN
−1の対応する「現在ビット」とからなり、ここで、N
は実施例のバイト内のデータ・バスの幅+各チャンネル
毎にそのチャンネルの入出力コントローラの転送幅を指
定するlog2N「装置データ幅」ビット+外部メモリとの
データ転送が幅Nであるべきか入出力コントローラ幅で
あるべきかを各チャンネル毎に特定する1「メモリXer
幅」ビットである。
図示実施例において、装置データ幅ビットおよびメモ
リXer幅ビットは、実際に、MCTデータと一緒に読み出さ
れ、書き込まれる。この最初の実施例では、N=2であ
り、部分データ・テーブルが各チャンネル毎に1データ
・バイトを記憶し、バイト・ストア・テーブル(BST)
と呼ぶ。
チャンネル・レジスタ16は任意の入出力コントローラ
からのリクエスト信号に応答して入出力プロセッサが作
動しているとき現在のチャンネルの番号を含む。或るチ
ャンネルに対してサービスが開始されたとき、レジスタ
16はリクエスト・ロジック12の出力部からライン38を経
てロードされ、このレジスタの内容は内部メモリへの、
特に、プログラム・カウント・テーブル(PCT)へのイ
ンデックスとして役立ち、選ばれたエントリは実行の開
始点を指定する。前記チャンネル・レジスタ内容は後に
説明するINTERPRET命令の結果として内部バス26を経て
修正もされ得る。チャンネル・レジスタ16は、また、内
部メモリ14内のメモリ・アドレス・テーブル(MAT)、
メモリ・カウント・テーブル(MCT)、装置アドレス・
テーブル(DAT)、バイト・ストア・テーブル(BST)へ
のインデックスとしても役立つ。さらに、補助チャンネ
ル・レジスタ17が或る種の命令と関連して使用するため
の別のインデックスとして与えられる。
レジスタ18は次のように作用する。
1)プログラム・カウント・レジスタ(PC)はプログラ
ム内でシーケンサ32によって実行されている現行命令
(もしあるとして)を指示する。
2)キャラクタ・レジスタ(CHAR)は或る装置とメモリ
の間を通過中のキャラクタを一時的に記憶する。入出力
コントローラとメモリの間のデータはそこを通って流
れ、或る任意の入出力コントローラからの状況がそこに
読み込まれる。
3)装置ベース・レジスタ(DBR)は装置アドレス・テ
ーブルからの重要度の低いアドレス・ビットと連結させ
るべき重要度の高いアドレス・ビットを与え、入出力コ
ントローラのアドレスを構成する。これにより、DATの
幅を最小限に抑えることができる。
4)決定テーブル・ベース・レジスタ(DTBR)は外部メ
モリ内のチップを取り出す決定テーブルのための重要度
の高いアドレス・ビットを与える。
5)プログラム・ベース・レジスタ(PCBR)はプログラ
ム・カウンタ(PC)からの重要度の低いアドレス・ビッ
トと連結させるべき重要度の高いアドレス・ビットを与
えて、命令を取り出されるメモリにアドレスを形成す
る。
6)INT W Index(INTXW)、INT R Index(INTXR)レジ
スタは、それぞれ、或るチャンネル・プログラムが割り
込みをリクエストすべきであることを示しているときに
割り込みキュー(INTTAB)に割り込み情報を書き込むの
に使用され、主プロセッサ・ユニットMPUが割り込みを
認めたときINTTABから割り込みベクトルを読み出すのに
使用されるアドレス・カウントを含む。
もし2つの割り込み優先レベルが与えられた場合に
は、各レベルはそれ自身の(INT)Wカウンタと(INT)
Rカウンタとを有する。真の(ダイナミック・シフティ
ング)First−In First−Out(FIFO)メモリが割り込み
キューを実施するのに用いられる場合には、INTW、INTR
レジスタのいずれも不要となる。
7)割り込みチャンネル・レジスタ(INTCHN)は主プロ
セッサ・ユニットMPUにアクセスすることができ、ここ
から現在の(最も近い)割り込み中のチャンネルの番号
を読み出すことができる。
8)制御レジスタ(CTRL)はホストMPUによってセット
されて入出力プロセッサ10の基本的な動作および構成を
制御することができる。
ここで、命令ラッチ/デコーダ22は内部バス26からの
命令をそれがメモリから読み出されつつあるときにシー
ケンサ32から指令があると捕獲する。命令ワードを捕獲
した後、このブロックはワードを復号し、シーケンサ32
にワードが表わす種々の命令タイプのうちのどれかを定
める一組の信号を与える。シーケンサ32からの制御信号
に応答して、命令ラッチ/デコーダ22は内部バス26内の
選ばれた信号に命令ワード内の種々のサブフィールドを
割り当てる。
同様にして、決定テーブル・ワード・ラッチ20は決定
テーブル・ワードがメモリから読み出されつつあるとき
にシーケンサ32からの指令に基いて内部バス26からのデ
ータを捕獲する。ワードを捕獲した後、ラッチ20はシー
ケンサ32に内容の一部を与え、シーケンサ32からの指令
に基づいて、バス26内の選定信号にワードの他のサブフ
ィールドを置くことができる。
実現性、速度およびコストについての問題は前述の種
々のテーブルを内部メモリ14に収納する能力を制限する
可能性があるが、システム・メモリまたは他の外部メモ
リ内に保たれるチャンネル・プログラムおよび決定テー
ブルを収容する能力を制限する可能性はない。しかしな
がら、もし内部メモリ14が前記のチャンネル・プログラ
ムあるいは決定テーブルまたはこれら両方も収容できる
ならば、プログラム・ベース・レジスタ(PBR)および
決定テーブル・ベース・レジスタ(DTBR)は不要であ
り、入出力プロセッサ10の動作が外部バス28からの命令
サイクルおよび決定テーブル取り出しサイクル(traffi
c)の審査によって強調される。さらに、入出力プロセ
ッサ10は、同じ集積回路およびパッケージ内で一つまた
はそれ以上の入出力コントローラと組み合わせられ、そ
の組み合わせによって、入出力プロセッサ10と入出力コ
ントローラの間の状態読み出し、データ転送その他の情
報通信のために外部のバス28を使用する必要をなくす。
好ましくは、実際の具体例は4つのこのようなAsynchro
nous Receiver/Transmitter(UARTs)(図示せず)を包
含するが、簡略化のためのここではこれ以上の説明は行
わない。
入出力プロセッサ10は、或るシステムと相互作用する
とき、その種々の入力信号および出力信号の名称、機能
について以下に示すように目録形態でリストアップする
ことによってより良く理解して貰えよう。(供給電圧、
クロックのようなラインは簡略化のために省略する。) 第2図は入出力プロセッサ10を使用している比較的小
型のシステム52を示す。このシステム52はホスト・コン
ピュータまたはマイクロプロセッサ(MPU)54と、主メ
モリまたはシステム・メモリ56とからなり、これらはシ
ステム・アドレス・データ・バス58によって相互接続さ
れている。入出力プロセッサ10は、アドレス・データ・
バス58に接続されると同時に、複数の入出力コントロー
ラ60(入出力プロセッサ10に設けられたリクエスト・ラ
インRQNn−0の数より少ないかあるいはそれに等しい数
であり、3つが1例として図示してある)にも接続して
いる。
メモリ56はホストMPU54のためのプログラムおよびデ
ータ、入出力プロセッサ10のためのチャンネル・プログ
ラムおよび決定テーブルを収容しており、また、MPU54
が出力を書き込み、そして、入力を読み出す複数の入出
力バッファ領域を包含する。各入出力コントローラ60
は、DMAコントローラと一緒に使用するための特徴を有
するのと異なり、割り込み従動入出力にとってのみ適当
である必要のあるディスク・ドライブ、テープ・ドライ
ブ、プリンタ、逐次通信リンクのような1つまたはそれ
以上の入出力装置またはチャンネル(図示せず)を制御
する。
各入出力コントローラからの個々の割り込みサービス
・リクエスト出力ラインは入出力プロセッサ10の個々の
リクエスト入力部、たとえば、優先化のためのRQN0−
0、RQN1−0、RQN2−0のようなリクエスト入力部に入
出力プロセッサ10内のリクエスト・ロジック12によって
送られる。この接続法は入出力コントローラ60からのこ
のようなリクエスト・ラインの数が入出力プロセッサ10
によって与えられるリクエスト入力部の数を超えないか
ぎり使用し得る。リクエスト・ロジック12はRQNn−0の
うち最高位優先権を主張したラインに対応する数値コー
ドを発生する。このコードは、入出力プロセッサ10が前
記リクエストのために実行開始したときにチャンネル・
レジスタ16と補助チャンネル・レジスタ17にロードされ
る。
入出力プロセッサ10は、それがシステム・バス58の一
時的支配あるいはオーナーシップを許されるようリクエ
ストするか、あるいは、このようなリクエストを調停の
ために提案するように構成されている。これを行うに
は、入出力プロセッサ10からのBRN出力をホストMPU54
(または他の調停器)に主張する。BGN信号が入出力プ
ロセッサ10に対してホストMPU(または他の調停器)で
主張されたとき、この主張はこのような用途について入
出力プロセッサ10に許可を与える。バス・グラントの受
領を入出力プロセッサ10が認めたことを示す目的で、オ
プションのBGACKN出力が入出力プロセッサ10によって主
張されてもよい。
第3図のシステム68は比較的多数の入出力コントロー
ラ(たとえば、32までのチャンネル)あるいは各々がよ
り高いデータ転送速度を有する同数の入出力コントロー
ラにサービスを行うより複雑かあるいはより高性能かま
たはこれら両方のシステムに適する。ここでは、ホスト
MPU54およびシステム・メモリ56はシステム・バス58に
よって相互接続されており、入出力プロセッサ10とロー
カル外部メモリ72とを相互接続するためにローカル・ア
ドレス・データ・バス70が設けられている。種々の入出
力コントローラ60をローカル・バス70に接続すると有利
であるが、それらのいくつかあるいはすべてをシステム
・バス58に接続してもよい。システム・バス58とローカ
ル・バス70はハードウェア・バッファ・インターフェー
ス74を経て接続されており、ここでは、そこを通るいか
なる流れも、そして、その方向も他のバスの一時的制御
または支配を行うホストMPU54または入出力プロセッサ1
0のいずれかによって制御される。入出力プロセッサ10
のシステム・バス58の一時支配は支配をリクエストする
入出力プロセッサ10からホストMPU54へのBRN出力ならび
にこの支配を許可するためのホストMPU54からの出力BGN
によって達成される。一方、MPU54によるローカル・バ
ス70の一時支配は支配をリクエストするホストMPU70か
ら入出力プロセッサ10へのLBRN出力ならびにこのような
支配を許可する入出力プロセッサ10からホストMPU54へ
の出力LBGNによって達成される。
入出力プロセッサ10にそのリクエスト入力部RQNn−0
のところでどの入出力コントローラが60がサービスを要
求しているのかを示すコードを与えるために、各コント
ローラ60からのサービス・リクエスト割り込みライン64
が前記リクエスト入力を送る出力ライン78を有する外部
エンコーダ76に入力される。同時にいくつものリクエス
トがあった場合には、エンコーダ76が或る種の確定的方
法に従って1つのリクエストを選ぶが、最も単純な方法
はコントローラのうちの所定の優先位である。このよう
な外部的な符号化は入出力コントローラ60からのリクエ
スト・ラインの数が入出力プロセッサ10のリクエスト入
力部の数を超えるシステムで使用されなければならな
い。また、これは入出力プロセッサ10によって内部的に
与えられる厳密な優先位選定が適切でないシステム、た
とえば、「公正な」すなわち回転選定法が望ましいシス
テムでも使用され得る。ここで、入出力コントローラが
それ自体よりインテリジェントとなりつつあり、いくつ
かがどのチャンネルがサービスを要求しているかを示す
かあるいはその優先位を示す割り込みその他の出力を与
える能力を有することは了解されたい。この場合、この
ような出力は外部エンコーダ76で利用されてより情報に
通じた優先化を行うことができる。選定方法とは無関係
に、エンコーダ76はその出力ライン78に選定に対応する
数値コードを発生し、入出力プロセッサ10が前記のリク
エストに対して実行開始となったときにこのコードがチ
ャンネル・レジスタ16ならびに補助チャンネル・レジス
タ17にロードされる。
このようなシステム68において、ホスト・メモリ56は
ホストMPU54のための種々のプログラム、データを収容
しており、ホストMPUが読み出し、書き込みを行う入出
力バッファ領域も包含しているとよい。オプションとし
て、入出力バッファ領域のいくつかまたはすべてをロー
カル外部メモリ72に設けてもよい。チャンネル・プログ
ラムおよび決定テーブルはこのローカル・メモリ72内に
あり、システム・バス58のローディング(traffic)を
減らす。
特殊化した効率の良い命令セットを使用する効果は、
多数の入出力コントローラ60を効率良く取り扱うことで
ある。これは、入出力コントローラが割り込み駆動入出
力だけにしか適していない場合でも効果がある。
命令セットの機能説明 所与の実施例は種々の方法で入出力プロセッサの処理
能力を高める付加的な命令を含み得るが、本発明の適切
な動作にとっては次の最小命令セットが必要である。各
命令タイプの説明では、まず、その一般的な動作を説明
し、次いで、命令ワードのサブフィールドを説明する。
ここで、各命令ワードが種々の命令タイプの間で全体的
に微分するように命令ラッチ/デコーダ22によって復号
される操作コード・サブフィールドを含まなければなら
ないことは了解されたい。
各命令タイプの説明の第3の部分では、シーケンサ32
がそのタイプの命令を実行する際に行うステップを説明
する。すべての命令タイプについてのこれらのステップ
について当然のことであるが、シーケンサ32はプログラ
ム・カウント(PC)・レジスタの内容によって指示され
たアドレスのところでメモリから命令ワードを読み出
し、このワードを命令ラッチ/デコーダ22内にラッチ
し、その後、プログラム・カウント・レジスタの内容を
それが次の高い方のアドレスを示すように増分してしま
っている。このワードが外部56または72から読み出され
ている場合には、シーケンサ32は1つのワードがメモリ
から読み出されることになっていることをバス・インタ
ーフェース24に知らせ、プログラム・ベース・レジスタ
(PCBR)の内容を重要度の高いビットとして、そして、
プログラム・カウント・レジスタの内容を重要度の低い
ビットとして連結することによってアドレスを与え、次
いで、バス・インターフェース24がこのワードがアクセ
スされたことを知らせるのを待つ。
INTERPRET命令 この命令は、普通は、入出力コントローラ60内の状態
レジスタを読み出し、その値を内部または外部のメモリ
の「決定テーブル」へのインデックスとして使用し、こ
のテーブルから対応する値を検索し、その値に基づい
て、チャンネルレジスタの内容を変えるか、あるいは、
プログラムカウントレジスタ(PC)をリロードするか、
または、これらの両方を行ってチャンネルプログラムの
別の部分の実行を開始させることができる。この命令は
現在のチャンネルについて装置アドレステーブル(DA
T)エントリによって与えられたアドレスからの所望の
状態レジスタの変位を指定する装置オフセットサブフィ
ールドを含む。この命令は、また、この実施例によりサ
ポートされる決定テーブル数のうちのどのテーブルがこ
の命令に対して使用されることになっているかを指定す
る決定テーブル数サブフィールドも含む。
INTERPRET命令を示す命令ワードを取り出した後、入
出力プロセッサ10は、まず、このワードをテストしてキ
ャラクタレジスタ(CHAR)を入出力コントローラ60の状
態レジスタからロードすべきかどうか、あるいは、キャ
ラクタレジスタの先行の内容が使用されるべきかどうか
を決定する。当初の実施例では、装置オフセットサブフ
ィールド内の「オールワン」値が「キャラクタレジスタ
の先行内容を使用する」ことを示す。ローディング指定
されない場合には、入出力プロセッサ10は、この段階の
以下の部分で説明する動作を省略する。すなわち、この
特徴は、レジスタを再読み出しすることなく別の方法で
状態レジスタ値を再翻訳する能力のような種々のオプシ
ョンを可能とする。ローディングが指定された場合に
は、シーケンサ32は或るバイトが入出力コントローラ60
から読み出されるべきであることをバスインターフェー
ス24に知らせ、ALU41に命令を与えて、現在のチャンネ
ルについての装置オフセットサブフィールドと装置アド
レステーブル(DAT)エントリの和または排他的ORとし
て、アドレスを与える。バスインターフェース24が、情
報が入出力コントローラから読み出されており、内部デ
ータバス26で利用できることを知らせると、シーケンサ
32はこの情報をキャラクタレジスタにラッチする。
次に、シーケンサ32は内部あるいは外部のメモリ内に
存在する可能性のある或る決定テーブルから読み出し操
作を開始する。最初のメモリに対して、読み出されるべ
きアドレスは上位ビットとしての命令ワードの決定テー
ブル数サブフィールドと下位ビットとしてのキャラクタ
レジスタの内容との連結である。シーケンサ32は、単
に、このアドレスを、決定テーブルを読み出すべき指示
といっしょに内部メモリ14に与えるだけである。次い
で、メモリが指示されたワードの内容を内部データバス
26上に置く。外部メモリについては、シーケンサ32は、
メモリワードを読み出すべきであることをバスインター
フェース24に知らせ、最上位ビットとしての決定テーブ
ルベースレジスタ(DTBR)の内容と、中位ビットとして
の命令ワードの決定テーブル数サブフィールドの内容
と、最下位ビットとしてのキャラクタレジスタの内容と
の連結であるアドレスを、そのバスインターフェース24
に与え、次いで、このデータが読み出されており、内部
データバス26で利用できることを、バスインターフェー
ス24が知らせるまで待機する。アクセスされたメモリの
タイプと無関係に、シーケンサ32はこの情報を決定テー
ブルワードラッチ20にラッチする。
INTERPRET命令について用いられる決定テーブルワー
ドは、2つまたは3つのサブフィールドを含む。それ
は、第1に、別のチャンネルが後続の命令について用い
られ得るようにチャンネルレジスタ16の内容に加えられ
るべき値であり、第2に、別の命令シーケンスが実施さ
れ得るようにプログラムカウントレジスタ(PC)にロー
ドされ得る値であり、第3に、プログラムカウントレジ
スタに前記値を実際にロードすべきであるかどうかの指
示である。この第3の指示は、決定テーブルワードの別
個の1ビットサブフィールドを構成してもよいし、第2
サブフィールドの或る特殊な値に事実上含まれるもので
あってもよい(たとえば、この値がゼロの場合には、こ
れはプログラムカウントレジスタがリロードされるべき
でないことを示してもよい)。第2サブフィールドの或
る(別の)特殊な値は(おそらくは更新されている)現
在のチャンネルに対するPCTエントリがプログラムカウ
ンタにロードされるべきであることを示す。この最後の
機能は別個の状態/状況を多重チャンネル入出力コント
ローラ内の各チャンネルに対して維持するのを可能とす
る。
入出力プロセッサ10のユーザーは、メモリ内の決定テ
ーブル内の種々のワードの内容を符号化し、入出力コン
トローラの状態レジスタから読み出され得る各可能な値
について実施されるべきアクションを指示する。このよ
うなワードの各々は、チャンネルレジスタ(CHAN)につ
いての変更、プログラムカウントレジスタについての変
更を指示したり、あるいは指示しなかったり、もしく
は、これら両方を指示したりすることができる。チャン
ネルレジスタについての「無変更」は最初のサブフィー
ルドでゼロを与えるだけで行われる。
ラッチ20において決定テーブルワードをラッチした
後、シーケンサ32は、チャンネルレジスタ(CHAN)の内
容と第1サブフィールドの内容がALU41により加えられ
るようにし、次いで、その和をチャンネルレジスタ16に
ラッチする。次いで、決定テーブルワードをテストして
プログラムカウントレジスタ(PC)がリロードされるべ
きであるかどうかを調べ、もしリロードすべきである場
合には、第2サブフィールドの内容を内部データバス26
上に置き、この内容をプログラムカウントレジスタにラ
ッチする。
これにより、INTERPRET命令の動作は完了する。この
命令の後、シーケンサ32は、常に、(おそらくはリロー
ドされた)プログラムカウントレジスタによって示され
た命令ワードを取り出し、実行することによって現在の
チャンネルの動作を続ける。
INPUT命令 この命令は、普通、或る任意の入出力コントローラ60
からデータを読み出し、オプションとしてINTERPRET命
令を同様の要領で翻訳する(したがって、おそらくは、
プログラム・カウント・レジスタの内容を変え、このデ
ータを外部メモリ56または72内のチャンネルの現在のバ
ッファ領域に書き込む)。この命令は少なくとも3つの
サブフィールド、すなわち、読み出されるべきデータ・
レジスタを選ぶ装置オフセット、INTERPRET命令につい
て説明したような決定テーブル数、IPUT命令が完了した
後にこのチャンネルについて実行が常に継続すべきであ
るかどうかを示す単ビット「エンド」サブフィールドで
ある。
INPUT命令を示す命令ワードを取り出した後、入出力
プロセッサ10は、まず、このワードをテストし、INTERP
RET命令において説明したように、入出力コントローラ6
0からキャラクタ・レジスタ(CHAR)がロードされるべ
きであるかおうどうかを決定する。もしそうでないなら
ば、入出力プロセッサ10はこのパラグラフの残部で説明
する動作を省略する。この特徴によれば、メモリ・バッ
ファ領域に先に発生したデータを転送する能力のような
種々の融通性を得られる。ローディングが指示されてい
る場合には、シーケンサ32はINTERPRET命令について説
明したような入出力コントローラ60からの読み出し操作
を示す。ただし、現在のチャンネルについて装置データ
幅パラメータをテストし、次いで、指示された幅のデー
タを読み出すようにバス・インターフェース24に信号を
送り、データ幅8ビットより大きいときには、最高位メ
モリ・アドレスのところに記憶されるべきバイトをキャ
ラクタ・レジスタに対してラッチし、現在のチャンネル
についてのバイト・ストア・テーブル・エントリに他の
バイトをラッチし、これら他のバイトについて現在のビ
ットをセットすることを除く。
次に、シーケンサ32は命令ワードをテストし、データ
を翻訳すべきかどうかをそれが指示しているかどうか調
べる。実施例によれば、これは命令ワード内の付加的な
単ビット・サブフィールドによって指摘されてもよい
し、装置テーブル数サブフィールドの或る特殊な値では
当然のものであってもよい(たとえば、この値がゼロの
場合には、これは「無翻訳」を示すかも知れない)。も
し「翻訳」が指示されていない場合には、シーケンサ32
は決定テーブル・ワード・ラッチ内の「ブランチ」ビッ
トと「ライト」ビットをそれぞれ0、1にセットし、こ
のパラグラフの残部で説明する処理操作を省略する。翻
訳が指摘されている場合には、シーケンサ32はINTERPRE
T命令について説明したような決定テーブルからの読み
出し操作を開始し、このデータを決定テーブル・ワード
・ラッチ38内にラッチする。INPUT(またはOUTPUT)命
令で使用される決定テーブルはINTERPRETについて説明
したようなプログラム・カウント値および「ブランチ」
指示を含むが、INTERPRET命令におけるチャンネル・レ
ジスタ(CHAN)に加えられるサブフィールドを省略し、
「ライト」と呼ぶ単ビット・サブフィールドを加える。
入出力コントローラ60から読み出され得る各ありそうな
データ値については、この「ライト」はその値がメモリ
・バッファ領域に書き込まれるべきかどうかを指示す
る。
「ライト」ビットが間違っている場合には、シーケン
サはメモリにデータを書き込まず、次の3つのパラグラ
フで説明するステップを省略する。もし「ライト」ビッ
トが真実である場合には、シーケンサはそのチャンネル
についての装置データ幅およびメモリXfer幅のパラメー
タに従って入出力コントローラ60からのデータを処分す
る。このプロセスは1つの実施例について以下に説明す
るが、ここでは、幅パラメータは8ビットまたは16ビッ
トであってよい。なお、この技術の他のデータ幅(たと
えば、32ビット)への応用は当業者であれば容易に行え
る。
装置データ幅およびメモリXfer幅が共に8ビットであ
る場合、シーケンサ32はメモリ・バイト書き込み操作に
ついてバス・コントローラ24に知らせ、現在のチャンネ
ルについてのメモリ・アドレス・テーブル(MAT)エン
トリからのアドレスを与えると共に、キャラクタ・レジ
スタ(CHAR)からのデータも与える。その後、前記MAT
を1ずつ増分し、現在のチャンネルについてのメモリ・
カウント・テーブル(MCT)エントリを1ずつ減分す
る。
装置データ幅およびメモリXfer幅が共に16ビットであ
る場合、シーケンサ32は上記の作業を同様に進行させ
る。ただし、そのチャンネルについてのキャラクタ・レ
ジスタおよびバイト・ストア・テーブル・エントリから
書き込むべきデータを与え、メモリ・アドレス・テーブ
ル(MAT)エントリを2ずつ増分し、メモリ・カウント
・テーブル(MCT)エントリを2ずつ減分することは除
く。
装置データ幅が8ビットで、メモリXfer幅が16ビット
である場合、シーケンサ32は現在のチャンネルについて
次の情報をテストし、メモリ・アドレス・テーブル(MA
T)エントリ、Mメモリ・カウント・テーブル(MCT)エ
ントリの最も重要度の低いビットとバイト・ストア・テ
ーブル(BST)エントリ内の現在のビットをどう処理す
べきかを決定する。このチャンネルについてのMATエン
トリが偶数で、MCTエントリが1より大きい場合、シー
ケンサ32はキャラクタ・レジスタ(CHAR)からそのチャ
ンネルのBSTエントリへバイトを転送し、BSTエントリの
現在のビットをセットする。メモリ・アドレスが偶数
で、メモリ・カウント値が1の場合、あるいは、メモリ
・アドレスが奇数であるが、チャンネルのBSTの現在ビ
ットが0である場合には、シーケンサ32はメモリ・バイ
ト書き込みについてバス・インターフェース24に知ら
せ、BSTからのデータ・ワードの低次アドレス指定され
たバイトを与え、CHARからの高次のアドレス指定された
バイトを与え、MATエントリマイナス1として(すなわ
ち、最も重要度の低いビット0として)このアドレスを
提供する。いずれにしても、DDW=8、MXW=16の場合、
シーケンサ32は次にMATエントリを1ずつ増分し、MCTエ
ントリを1ずつ減分する。
「ライト」ビットと無関係に、シーケンサ32は、次い
で、「ブランチ」指示の値をテストする。「ブランチ」
が真実である場合、それは決定テーブル・ワードからの
サブフィールドを内部データ・バス26上に置き、それを
プログラム・カウント(PC)・レジスタ内にラッチし、
次いで、その記憶場所から次の命令を取り出し、実行す
るように進行する。
「ブランチ」が間違っている場合、そして、メモリ・
カウント値がゼロであるかあるいは命令ワードからの
「エンド」ビットが0である場合には、シーケンサは次
の命令を取り出し、実行するように進む。
「ブランチ」が間違っており、メモリ・カウント・テ
ーブル(MCT)エントリがゼロでなく、そして、「End」
=1である場合、入出力コントローラからの現在のリク
エストを取り扱うためのプログラムは完了する。この場
合、シーケンサ32はリクエスト・ラインRQNn−0をサン
プリングするアイドル状態に戻る。
OUTPUT命令 この命令は、普通、外部メモリ(56または72)内のチ
ャンネルの現在のバッファ領域からデータを読み出し、
オプションとしてINTERPRET命令について説明したよう
なデータを翻訳し(したがって、おそらくはプログラム
・カウント(PC)・レジスタの内容を変更し)、次い
で、このデータを入出力コントローラ60に書き込む。こ
の命令は少なくとも4つのサブフィールド、すなわち、
入出力コントローラ内のデータ・レジスタを選ぶための
装置オフセットと、INTERPRET命令について説明したよ
うな決定テーブル数と、INPUT命令について説明したよ
うな「エンド」サブフィールドと、データをメモリから
読み出すべきかどうかを示す単ビット「リード」サブフ
ィールドとである。
OUTPUT命令を示す命令ワードを取り出した後、入出力
プロセッサは、まず、「リード」ビットをテストし、キ
ャラクタ・レジスタ(CHAR)がメモリからロードされる
べきかどうかを決定する。もし「read」=0の場合、入
出力プロセッサ10は次の3つのプログラムで説明する動
作を省略する。この特徴によれば、入出力コントローラ
60に先に発生したデータを転送する能力のような種々の
融通性を得ることができる。「read」=1の場合、シー
ケンサ32はそのチャンネルについての装置データ幅、メ
モリXfer幅のパラメータに従ってメモリからデータを得
る。このプロセスを或る実施例について以下に説明する
が、そこにおいては、各幅パラメータは8ビットである
か16ビットである。この技術の他のデータ幅(たとえ
ば、32ビット)への応用は明らかである。
装置データ幅およびメモリ・データ幅が共に8ビット
である場合、シーケンサ32はメモリ・バイト読み出し操
作についてバス・インターフェース23に知らせ、現在の
チャンネルについてメモリ・アドレス・テーブル(MA
T)エントリからのアドレスを与える。その後、前記MAT
エントリを1ずつ増分し、現在のチャンネルについての
メモリ・カウント・テーブル(MCT)エントリを1ずつ
減分する。バス・インターフェース24がデータが内部デ
ータ・バス26で利用できることを示すときは、シーケン
サ32はそれをキャラクタ・レジスタ(CHAR)内にラッチ
する。
装置データ幅およびメモリ・データ幅が共に16ビット
である場合、シーケンサ32は上記の操作を同様に続ける
が、ただし、それはメモリ・ワード読み出し操作を要求
し、前記メモリ・アドレス・テーブル(MAT)エントリ
を2ずつ増分し、前記メモリ・カウント・テーブル(MC
T)を2ずつ減分し、ワードのアドレス指定された低次
のバイトをキャラクタ・レジスタ(CHAR)内にラッチ
し、アドレス指定された高次のバイトをそのチャンネル
についてのバイト・ストア・テーブル(BST)内にラッ
チする。
装置データ幅が8ビットで、メモリ・データ幅が16ビ
ットである場合、シーケンサ32は現在のチャンネルにつ
いての次の情報をテストし、メモリ・アドレス・テーブ
ル(MCT)エントリ、メモリ・カウント・テーブル(MC
T)エントリの最も重要度の低いビットおよびバイト・
ストア・テーブル(BST)エントリの現在のビットをど
のうように処理すべきかを決定する。メモリ・アドレス
が偶数であり、MCTエントリが1より大きい場合、シー
ケンサ32はメモリ・ワード読み出しについてバス・イン
ターフェース24に知らせ、MATエントリからアドレスを
与え、低次のアドレス指定されたデータ・バイトをキャ
ラクタ(CHAR)レジスタ内にラッチし、高次のアドレス
指定されたデータ・バイトをこのチャンネルのためのBS
Tエントリ内にラッチし、エントリの現在のビットをBST
にセットする。メモリ・アドレスが偶数で、MCTエント
リが1を含む場合、あるいは、メモリ・アドレスが奇数
で、チャンネルのBST現在ビットが0である場合、シー
ケンサ32はメモリ・バイト読み出しについてバス・イン
ターフェース24に知らせ、MATエントリからアドレスを
与え、CHARレジスタにこのデータをラッチする。メモリ
・アドレスが奇数で、チャンネルのBST現在ビットがセ
ットされている場合、シーケンサ32は、単に、そのチャ
ンネルについてのBSTエントリの内容をCHARレジスタに
転送するだけである。いずれにしても、DDW=8、MXW=
16の場合、シーケンサ32はメモリ・アドレス・テーブル
・エントリを1ずつ増分し、MCTエントリを1ずつ減分
する。
「Read」ビットとは無関係に、シーケンサ32は、次
に、この命令ワードをテストし、データを翻訳すべきか
どうかを決定する。この実施例によれば、これは命令ワ
ード内の別の単ビット・サブフィールドによって指定さ
れてもよいし、装置テーブル数サブフィールドの或る特
殊な値に当然のものであってもよい(たとえば、この値
がゼロの場合には、それは「無翻訳」を示すかも知れな
い)。翻訳が指定されていない場合には、シーケンサは
決定テーブル・ワード・ラッチ20内の「ブランチ」、
「ライト」ビットを偽、真のそれぞれにセットし、この
パラグラフの残部に説明する処理を省略する。翻訳が指
定されている場合には、シーケンサ32はINTERPRET命令
について説明したように決定テーブルからの読み出し操
作を開始し、このデータを決定テーブル・ワード・ラッ
チ20内にラッチする。OUTPUT命令で使用される決定テー
ブル・ワードはINPUTと同じであり、それはプログラム
・カウント(PC)値、「ブランチ」指示および「ライ
ト」ビットを含む。
「ライト」ビットが1の場合、シーケンサ32は命令ワ
ードをテストし、データを入出力コントローラに置くる
べきかどうかを決定する。これは命令ワード内の付加的
な1ビット・サブフィールドによって指示されてもよい
し、装置オフセット・サブフィールドの或る特殊な値に
当然のものであってもよい(たとえば、「オールワン」
値は「データを送らない」ことを示すかも知れない)。
「ライト」=0または命令ワードが送ることを指定して
いないか、あるいは、これら両方である場合、シーケン
サ32はこのパラグラフの残部におけるステップを省略す
る。さもなければ、次に、現在のチャンネルについての
装置データ幅パラメータをテストする。パラメータが8
ビット入出力コントローラを示す場合には、シーケンサ
は入出力バイト書き込み操作についてバス・インターフ
ェース24に知らせ、キャラクタ(CHAR)レジスタからの
データを与える。16ビット入出力コントローラの場合、
シーケンサ32は入出力ワード書き込み操作についてバス
・インターフェース24を知らせ、CHARレジスタからのワ
ードの低次のアドレス指定されたバイトを与えると共
に、バイト・ストア・テーブル(BST)エントリからの
高次のアドレス指定されたバイトを与える。いずれにし
ても、シーケンサ32はALU41に指令を与えて、このアド
レスを現在のチャンネルについての装置オフセット・サ
ブフィールドおよび装置アドレス・テーブル・エントリ
の内容の和すなわち排他的ORとして与える。
データを入出力コントローラに置くるかどうかに無関
係に、シーケンサ32は、INPUT命令についてまさに説明
した通りに、「ブランチ」および「エンド」ビットの値
ならびにメモリ・カウント・テーブル(MCT)エントリ
に従ってOUTPUT命令を完了する。
SEND TO DEVICE命令 この命令は入出力コントローラ60に或る一定のバイト
値、たとえば、このコントローラおよびその組合わせた
装置の将来の動作を状態調整する指令を送る。これは2
つのサブフィールド、すなわち、INTERPRET命令につい
て先に説明したような装置オフセットと、入出力コント
ローラ60に送るべき8ビット値とである。
SEND TO DEVIC命令を示す命令ワードを取り出した
後、入出力プロセッサ10は入出力バイト書き込み動作に
ついてバス・インターフェース24に知らせ、ALU41に指
令を与えてこのアドレスを現在のチャンネルについての
装置オフセット・サブフィールドおよび装置アドレス・
テーブル(DAT)エントリの和または排他的ORとして与
え、命令デコーダ/ラッチからのデータを与える。シー
ケンサ32は、常に、SEND TO DEVICE命令の後に次の命令
を実行し続ける。
SEND TO MEMORY命令 この命令は現在のメモリ・バッファに或る一定のバイ
ト値を書き込む。これは、たとえば、逐次通信リンクで
誤って受け取られたデータの代わりに或る特殊なキャラ
クタ・コードを使用するのに有用である。この命令は1
つのサブフィールド、すなわち、メモリに書き込むべき
8ビット値を含む。
SEND TO MEMORY命令を示す命令ワードを取り出した
後、シーケンサ32はメモリ・バイト書き込み動作につい
てバス・インターフェース24を知らせ、現在のチャンネ
ルについてのメモリ・アドレス・テーブル(MAT)エン
トリからアドレスを与え、命令デコーダ/ラッチ22から
データを与える。その後、これはこのチャンネルについ
てのMATエントリを1ずつ増分し、このチャンネルにつ
いてのメモリ・カウント・テーブル(MCT)エントリを
1ずつ減分する。シーケンサ32は、常に、SEND TO MEMO
RY命令の後に次の命令を実行するように進む。
INTERRUPT命令 この命令はIRQNライン上にホストMPU54への割り込み
リクエストを生じさせ、普通は、先の命令がメモリ内の
現在のバッファ(56または72)が完了したこと、すなわ
ち、バッファ内のすべての出力データが入出力コントロ
ーラ60に送られてしまったこと、あるいは、入力バッフ
ァが入出力コントローラ60からのデータで満たされてし
まったこと、あるいは、入出力コントローラ60から読み
出された状況値あるいはデータ値のために入力バッファ
が論理的に終了したことを決定したときに使用される。
この命令は2つまたは3つのサブフィールドを含む。す
なわち、前記ホストが割り込みリクエストに応答したと
きにホストMPU54に送られることになる割り込みベクト
ル値と、入出力プロセッサ10がINTERRUPT命令の後にさ
らなる命令を実行するようにオン方向に進むべきかどう
かを示す単ビット「エンド」サブフィールドと、いくつ
かの優先レベルのうちのどの優先レベルでこの割り込み
が記憶あるいは待機させられるべきかを示すオプション
の「レベル」サブフィールドとである。
INTERRUPT命令を示す命令ワードを取り出した後、シ
ーケンサ32は次のように進行する。多層レベル特徴がこ
の実施例で与えられている場合、それは、まず、内部メ
モリ14内のいくつかのキューのうちどのキューで割り込
み情報が記憶されるべきかを選ぶのに「レベル」サブフ
ィールドの値を使用する。いずれにしても、シーケンサ
32は現在のチャンネルの識別(すなわち、チャンネル・
レジスタ(CHAN)の内容)と一緒にベクトル値を命令ワ
ードから(選ばれた)割り込みキュー(INTTAB)に書き
込む。IRQNライン上の入出力プロセッサの割り込みリク
エストと信号がまだ主張されていない場合には、それが
主張される。
もし「エンド」ビットが1の場合、シーケンサ32はそ
のアイドル状態に戻り、この状態において、シーケンサ
は種々の入出力コントローラ60からリクエストと・ライ
ンRQNn−0をサンプリングする。エンドがゼロの場合、
シーケンサはオン状態に続け、次の命令を実行する。
ホストMPU54が割り込みリクエストとに応答したと
き、入出力プロセッサ10は次のように進行する。多層レ
ベル特徴が設けられている場合、入出力プロセッサは、
まず、少なくとも1つのINERRUPT命令が実行される、す
なわち、対応する肯定応答がまだ受け取られていない最
高優先位レベルを選ぶ。次いで、入出力プロセッサ10は
割り込みキュー(INTTAB)から選ばれた最も早い割り込
み命令についての割り込み情報を読み出し、そのベクト
ル値をデータ・ぴん28上の置く。入出力プロセッサ10
は、バス・インターフェース24を経て、ホストMPU54に
応答し、割り込みキュー(INTTAB)から読み出されたチ
ャンネル番号を割り込みチャンネル・レジスタ(INTCH
N)へ転送し、そこから、次いでホストMPU54によって読
み出され得る。
JUMP IF COUNT ZERO命令 この命令は、現行のチャンネルについてのメモリ・カ
ウント・テーブル(MCT)エントリがゼロの場合に新し
い値をプログラム・カウンタ(PC)にロードする。この
命令は、普通は、INPUT、OUTPUTまたはSEND TO MEMORY
命令の後に使用されて、現在のメモリ・バッファがその
命令によって完了したかどうかを決定する。この命令は
1つのサブフィールド、すなわち、メモリ・カウント・
テーブル(MCT)がゼロの場合に引き続いて実施される
べき命令のアドレスを包含する。
JUMP IF COUNT ZERO命令を示す命令ワードを取り出し
た後、シーケンサ32は現行チャンネルについてのメモリ
・カウント・テーブル(MCT)エントリをテストする。
もしそれがゼロならば、シーケンサ32は命令ラッチ/デ
コーダからのサブフィールドを内部データ・バス上に置
き、その値を捕獲すべきことをプログラム・カウンタ
(PC)に知らせる。次に、シーケンサ32は作動し続けて
(おそらくは再ロードされている)プログラム・カウン
タ(PC)によって指示された命令を実行する。このメモ
リ・カウント・テーブル(MCT)エントリがゼロでない
場合、JUMP IF COUNT ZELOの後の次の命令が実行され
る。
JUMP IF COUNT NONZERO命令 この命令は、メモリ・カウント・テーブル(MCT)エ
ントリがゼロでない場合にプログラム・カウンタ(PC)
が再ロードされることを除いて先の命令と同様である。
JUMP命令 この命令は、プログラム・カウンタ(PC)が常に再ロ
ードされることを除いて、先の2つの命令と同様であ
る。
LOAD START ADDRESS命令 この命令は或るチャンネルについてのプログラム・カ
ウンタ・テーブル(PCT)へ新しい値をロードする。そ
れによって、実行が後に行われ得るエントリ・ポイント
を与える。この命令は、常用翻訳またはデータ翻訳ある
いはメモリ・バッファの満了が入出力コントローラまた
はそれに組合わせた装置の状態あるいは入出力プロセス
が主として変化しつつあるかあるいは変更されてしまっ
ていて入出力プロセッサ10が将来のリクエストとに応答
しなければならないことを示すときに有用である。
この命令は2つのサブフィールドを含み、その1つは
将来実施されるべき最初の命令のアドレスを示す。もう
一方のサブフィールドはこの命令アドレスが出発チャン
ネル(RQNn−0ラインに基づくCHANにロードされるチャ
ンネル)あるいは現行のチャンネル(CHANがロードされ
ているためにINTERRURT命令によって修正されたような
チャンネル)についてPCTエントリにロードされるべき
かどうかを示す。第1の形態では、RQNn−0ラインに応
答して実行が開始されるアドレスを変更し、第2の形態
はINTERRUPT命令の「load PC and PCT(CHAN)」特徴と
関連して使用されて多重チャンネル入出力コントローラ
内の各チャンネルに対して個別の文脈/状態を維持す
る。
LOAD START ADDRESS命令を示す命令ワードを取り出し
た後、シーケンサ32はこのサブフィールド値を内部デー
タ・バス26上に置き、内部メモリ14にこの値をチャンネ
ル・レジスタ16または補助チャンネル・レジスタ17によ
って指示されるチャンネルについてプログラム・カウン
ト・テーブル(PCT)エントリに書き込む。
AND DATA、OR DATA、XOR DATA命令 これらの命令は、論理的に、先行命令からのキャラク
タ・レジスタ(CHAR)の内容を命令内の或る一定のバイ
ト値と組合わせ、その結果をキャラクタ・レジスタに戻
して記憶させる。入出力コントローラの設計では、一組
の独立したビットまたはサブフィールドあるいはこれら
両方からなる指令、状況レジスタを設けて、入出力コン
トローラを制御するために、このようなレジスタの内容
を読み出し、ビットまたはサブフィールドのいくつかの
値を変更し、その結果を前記レジスタに戻して書き込む
ことが必要となることは普通のことである。これらの命
令はこのような入出力コントローラ内のこのようなレジ
スタを処理する手段を提供する。
これらの命令の各々は、1つのサブフィールド、すな
わち、前記一定値を含む。これらの命令のうちの1つを
示す命令ワードを取り出した後、シーケンサ32はサブフ
ィールド値を論理演算ユニット(ALU)41の2つの入力
バス43、45のうちの1つに送り、キャラクタ・レジスタ
(CHAR)の内容を他方の入力バスに送り、どの論理操作
が実施されるべきかを論理演算ゆにっとに知らせ、次い
で、その結果をCHARレジスタに戻してそこにラッチす
る。シーケンサ32は、常に、これらの命令の任意のもの
の後に次の命令を取り出し、実行するように進む。
RELOAD命令 この最後の命令は現在のバッファが完了したときに入
出力プロセッサ10をメモリ(56または72)内の別のバッ
ファに切り換え得る手段を提供する。このRELOAD命令は
1つのサブフィールド、すなわち、チャンネル・レジス
タ16の内容に加えられるべき値(Delta CHAN)であり、
補助チャンネル・レジスタ17にロードされ、「再ローデ
ィング・チャンネル」となる別のチャンネルの番号を得
るようになっている。チャンネル・レジスタ16で示され
るチャンネルは「再ローデッド・チャンネル」と呼ぶ。
RELOAD命令を示す命令ワードを取り出した後、シーケ
ンサ32は、まず、前記サブフィールド値を論理演算ユニ
ット41の入力バス43、45のうちの1つに送り、チャンネ
ル・レジスタ16からの値を他方の入力バスに送り、その
後、その結果を補助チャンネル・レジスタ17内にラッチ
する。次に、入出力プロセッサ・データ・バスの幅に依
存して2つまたは3つの連続したサイクルの各々につい
て、1)メモリ・ワード書き込み操作を実施すべきこと
をバス・インターフェース24に知らせ、2)再ローディ
ング・チャンネルのメモリ・アドレス・テーブル・エン
トリ(MAT)からアドレスを与え、3)前記メモリ・ア
ドレス・エントリを転送されるバイトの数だけ増分し、
4)再ローディング・チャンネルのメモリ・カウント・
テーブル(MCT)エントリを転送するバイトの数だけ減
分する。最初(または、最初の2回)の書き込み操作に
ついては、シーケンサ32は再ローデッド・チャンネルに
ついてメモリ・アドレス値の重要度の高い部分と低い部
分として書き込まれるべきデータを与える(これはこの
実施例が主として意図しているホストMPU54について適
切な順序で行われる)。最後の書き込み操作について
は、ゼロは書き込まれるべきデータとして与える。
これらの書き込み操作の完了時、シーケンサ32は再ロ
ーディング・チャンネルについての減分されたメモリ・
カウント値をてすとする。この値がゼロの場合、シーケ
ンサ32は再ローディング・チャンネルについての装置ア
ドレス・テーブル(DAT)エントリの内容を同じチャン
ネルについてのMATエントリに転送し、同じチャンネル
についてのPCTエントリの内容を同じチャンネルについ
てのMCTエントリに転送する。
MCT値が前記の転送を生じさせるかどうかとは無関係
に、シーケンサ32は、次に、入出力プロセッサのデータ
・バスの幅に依存して、2つまたは3つの連続したサイ
クルを実施する。各サイクルにおいて、シーケンサはバ
ス・インターフェース34にメモリ読み出しサイクルを実
施すべきことを知らせ、再ローディング・チャンネルに
ついてのメモリ・アドレス・テーブル(MAT)エントリ
からアドレスを与え、次いで、このアドレスを転送され
るバイトの数だけ増分する。バス・インターフェース24
がデータを内部データ・バス26上で利用できることを知
らせたとき、シーケンサ32はチャンネル・レジスタ16に
よって指示されるメモリ・アドレス・テーブル(MAT)
の重用度の高い部分と低い部分への第1、第2の転送に
ついてのデータを捕獲する(これは実施例が原理的に作
動を意図しているホスト・プロセッサにとって適切な順
序で行われる)。最後の読み出し操作では、シーケンサ
32はチャンネル・レジスタ16によって指示されるメモリ
・カウント・テーブル(MCT)へのデータを捕獲する。
読み出し操作が完了した後、シーケンサ32は、論理演
算ユニット41を使用して再ローディング・チャンネルに
ついてのメモリ・アドレス値を再ローデッド・チャンネ
ルのMAT値(の最初の部分)を読み出したアドレスまで
減じるか、あるいは、先に得ていたこぴいを再ローディ
ング・チャンネルのMATエントリに転送する。これら2
つの作動は同等のものであり、再ローディング・チャン
ネルについてのメモリ・アドレスを読み出されたデータ
の出発時点まで戻すようになっている。
これはRELOAD命令の実行を完了させ、シーケンサ32は
その後に次の順序の命令を実施する。ここで、メモリ・
バッファの完全なリングの実行が続くJUMP IF COUNT ZE
RO(または、NONZERO)によって決定され得ることに注
目されたい。
これらの動作は入出力バッファ「リング」をセットア
ップする主プロセッサ・ソフトウェアのための手段を提
供する。これらのバッファは或る円形の回転する方法で
入出力プロセッサ10によって使用される。第4図はCHAN
=7、Delta CHAN=2の場合にRELOAD命令の2つの異な
った実行の効果を示している。チャンネル7は3つの入
出力バッファのリングを有し、チャンネル9を経て再ロ
ードされる。最初のRELOADは「n]バイトがバッファ領
域1からあるいはそこへ転送された後に発行され、この
時点で、ホストMPUが「current」となり、バッファ2、
3のアドレス、カウント数を提供する。他方のRELOADは
いくらか後に実行され、「m」バイトはバッファ3か
ら、または、そこへ転送され、ホストMPUは小さい「beh
ind」であり、バッファ1についてのアドレス、カウン
ト数をリフレッシュするが、バッファ2についてはまで
それは行われていない。図示したように、再ローディン
グ・チャンネルについての装置アドレス値および内部メ
モリ・アドレス値はシステム・メモリ内の一連のアドレ
ス/カウント対の出発アドレスであり、各バッファの1
対が再ローデッド・チャンネルに割り当てられる。再ロ
ーディング・チャンネルについてのプログラム・カウン
タ・テーブル値と当初のMCT値が入出力バッファの数の
6倍となるようにプログラムが組まれる。
エンディング・メモリ・アドレスのライトバックは主
プロセッサ・ソフトウェアが各バッファに実際に転送さ
れるデータ量を検出できるようにする。これは、特に、
いっぱいになる前に終了し得る入力バッファにとって重
要である。すなわち、状況翻訳またはデータ翻訳を原因
とする場合である。ここで、カウント値へのライティン
グ・バック・ゼロは入出力プロセッサ10が完全なリング
「についてルーピングする」のを防ぐと共に、主プロセ
ッサ・ソフトウェアがバッファの入力データを処理する
前あるいはバッファを新しい出力データで満たす前に同
じバッファを再処理するのを防ぐ。RELOAD命令の後にJU
MP IF COUNT ZERO(または、NONZERO)命令が続き、こ
の状態についててすとを行う。
初期具体例 入出力プロセッサ10の初期具体例では、先に述べたよ
うに、チャンネルが32であり、16ビットの外部、内部デ
ータ・バスと24ビットのメモリ、入出力アドレスを使用
する。メモリ・カウント値は14ビットであり、単ビット
・メモリ・Xfer幅パラメータと単ビット装置データ幅パ
ラメータを持つ同じ16ビット・ワードにおいてプログラ
ムが組まれると便利である。
初期具体例では、リクエストと入力部RQN4−0は5つ
である。入出力プロセッサ10の制御レジスタ(CTRL)の
プログラマブル・ビットはこれらの入力部が外部的に符
号化されるか、あるいは、入出力コントローラのリクエ
ストと出力部に直結されるかどうかを示す。
初期実現化は命令テーブルまたは決定テーブルについ
ての内部メモリをなんら持たない。むしろ、13ビットの
プログラム・カウンタ・ベース・レジスタを方眼紙手
織、その内容が10ビット・プログラム・カウンタの内容
に連結されて命令取り出しのための23ビット・ワード・
アドレスを発生する。さらに、11ビット決定テーブル・
レジスタを方眼紙手織、その内容が4ビット決定テーブ
ル数および8ビット・データ・キャラクタの内容と連結
され、決定テーブル・ワードが取り出される23ビット・
ワード・アドレスを発生する。
これらすべての命令ワード、決定テーブル・ワードは
この実施例では16ビット幅である。ハードウェサを簡略
化するために、種々の命令は各命令の重要度の高い方法
4ビット分のオプコードを復号することによって微分さ
れる。ただし、2つの「JUMP IF COUNT・・・」命令は
次に重要度の高いビットによって微分され、3つの「Lo
gic」命令は2つの次に重要度の高いビットによって微
分される。
さらに、SEND TO MEMORY命令は、SEND TO DEVICEバス
がすべて1を含む装置オフセット・サブフィールドによ
って微分されると同じオプコードを使用する。
上述したように、プログラム・カウンタ(PC)または
プログラム・カウンタ・テーブル(PCT)にロードされ
るサブフィールドは10ビットを含み、決定テーブル数サ
ブフィールドは4ビットを含む。INPUTまたはOUTPUT命
令の決定テーブル数サブフィールド内の値ゼロは「無翻
訳」を識別するが、決定テーブル0はINTERPRET命令内
で意味をもって使用され得る。
装置オフセット・サブフィールドは6ビットを含む。
INTERPRET、INPUT、OUTPUT命令において、すべて1であ
る装置オフセット値(10進法で63)は入出力コントロー
ラが読み出されたり、書き込まれたりしてはいけないこ
とを示す。
INTERPRET命令についての決定テーブル・ワードおよ
びRELOAD命令では、チャンネル番号に加えられるサブフ
ィールドは5ビットを含む。
上記のリクエストと・モード・ビットに加えて、入出
力プロセッサのブローバル・コントロール(CTRL)レジ
スタはリクエストと・ラインのビット・イネイブリング
またはディスエイブリング認識を含み、これは装置リセ
ット信号が与えられたときにディスエイブル認識につい
て状態調整され、その結果、入出力プロセッサは主プロ
セッサが必要とする前に種々のレジスタ、記憶場所をセ
ットアップする前にリクエストとのサービスを行うこと
はない。また、入出力プロセッサがそれ自身のプライベ
イト・バスを持っているかどうか、あるいは主プロセッ
サのバスを分かち合っているかどうかを示すサブフィー
ルドも含む。このサブフィールドはバス・インターフェ
ースの調停ロジックがどのような作動するかを決定す
る。入出力プロセッサおよび主プロセッサが同じバスを
共有している場合には、制御レジスタも2つのフィール
ドを有し、これが入出力プロセッサのバス・アクセスを
絞って制限する。これは主プロセッサがシステム全体が
正しく作用されるようにあるパーセンテージのバス・ア
クセスを保証しなければならない用途にとって必要であ
る。これら2つのフィールドは、それぞれ、入出力プロ
セッサ10がシステム・バス58の制御を保つことになる最
長時間と、入出力プロセッサ10が制御を放棄した後にシ
ステム・バス58の次の要求制御を抑制することになる最
短時間とを表わす。
ここで、種々の変更、追加および省略が発明の範囲内
で本発明の好ましい初期具体例の細部に関して可能であ
ることは了解されたい。
【図面の簡単な説明】
第1図は本発明のインテリジェント入出力プロセッサの
ブロック図である。 第2図は本発明のインテリジェント入出力プロセッサを
用いる比較的小型のシステムのブロック図である。 第3図は本発明のインテリジェント入出力プロセッサを
用いる比較的大型のシステムのブロック図である。 第4図はRELOAD命令の多重実行の効果を示す一連の部分
メモリ・マップである。 図面において、10……インテリジェント入出力プロセッ
サ、12……リクエスト・ロジック、14……内部ランダム
・アクセス・メモリ、16……チャンネル・レジスタ、17
……補助チャンネル・レジスタ、18……内部レジスタ、
20……テーブル・ワード・ラッチ、22……命令ラッチ/
デコーダ、24……バス・インターフェース、26……内部
データ・バス、28……アドレス・データ部分、30……接
続部、32……シーケンサ、41……論理演算ユニット
───────────────────────────────────────────────────── フロントページの続き 合議体 審判長 片岡 栄一 審判官 吉村 宅衛 審判官 今井 義男

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】主プロセッサ(51、54)と、入出力プロセ
    ッサ(10)と、複数の入出力コントローラ(60)と、外
    部メモリ(56)と、前記主プロセッサ(51、54)、前記
    入出力プロセッサ(10)、前記複数の入出力コントロー
    ラ(60)及び前記外部メモリ(56)を相互に接続する外
    部バス手段(58、70、74)とを含み;各入出力コントロ
    ーラ(60)が1つまたはそれ以上のチャンネルを制御
    し;各入出力コントローラ(60)がその入出力コントロ
    ーラへまたはそこからデータを転送するようなサービス
    の要求を指示するサービスリクエスト信号を送出する手
    段(64)を有し;各入出力コントローラ(60)がその入
    出力コントローラ(60)により制御されるチャンネルの
    状態を指示する内部状態レジスタ手段を有し;前記外部
    メモリ(56)が各チャンネルについてアドレス指定可能
    なバッファ領域を有するデータ処理システムであって、 前記入出力プロセッサ(10)は、 前記サービスリクエスト信号を受け取るリクエスト受け
    取り手段(12)を備え、 各チャンネルと前記外部メモリの間のデータ転送を制御
    する制御情報を記憶する内部メモリ手段(14、72)を備
    え、 前記内部メモリ手段(14、72)は、前記主プロセッサ
    (51、54)による読み出しと書き込みのためにアクセス
    可能であり、 更に、それぞれのサービスリクエスト信号に応答してチ
    ャンネルプログラムを実行する実行手段(32)を備え、 更に、前記主プロセッサ及び前記入出力プロセッサの間
    での前記外部バス手段の使用を調停する調停手段(24)
    を備え、 前記実行手段は、入出力コントローラへ及びそこからデ
    ータを転送するタスクに固有の命令セットを実行し、 前記命令セットは、翻訳プログラムを呼び出す命令を含
    み、 前記翻訳プログラムは、内部または外部のメモリ(14、
    56、72)に記憶されたテーブルを利用し、 各テーブルは、前記チャンネル状態または転送データの
    項目の各可能な値についての1つのエントリで構成さ
    れ、 前記命令セットは、インタプリト(INTERPRET)命令を
    含み、該インタプリト命令により、前記翻訳プログラム
    が、入出力コントローラ(60)の状態レジスタから状態
    値を読み出し、その状態値を選択されたテーブルへのイ
    ンデックスとして使用し、選択されたテーブルから対応
    するエントリを抽出し、その対応するエントリに基づい
    て実行すべき次の命令を選択する、 ことを特徴とするデータ処理システム。
  2. 【請求項2】前記翻訳プログラムは、入出力コントロー
    ラ(60)からのデータ値についてのインプット(INPU
    T)命令により呼び出すことができ、前記抽出されたエ
    ントリは、前記データ値がメモリに書き込まれるべきか
    どうかを指示し、更に現在のリクエストについてチャン
    ネルプログラムの実行か継続されるべきかどうかを指示
    する請求項1に記載のデータ処理システム。
  3. 【請求項3】前記翻訳プログラムは、メモリからのデー
    タ値についてのアウトプット(OUTPUT)命令により呼び
    出すことができ、前記抽出されたエントリは、前記デー
    タ値が入出力コントローラに書き込まれるべきかどうか
    を指示し、更に現在のリクエストについてチャンネルプ
    ログラムの実行か継続されるべきかどうかを指示する請
    求項1に記載のデータ処理システム。
  4. 【請求項4】前記実行手段は、命令セットを実行する手
    段を包含し、この命令セットは、 a.入出力コントローラから状態値を読み出して翻訳プロ
    グラムを呼び出すインタプリト(INTERPRET)命令タイ
    プと、 b.入出力コントローラからのデータの読み出し、翻訳プ
    ログラムの呼び出し及び主メモリへのデータの書き込み
    という3つの動作の任意の組み合わせを実行するインプ
    ット(INPUT)命令タイプと、 c.主メモリからのデータの読み出し、翻訳プログラムの
    呼び出し及び入出力コントローラへのデータの送信とい
    う3つの動作の任意の組み合わせを実行するアウトプッ
    ト(OUTPUT)命令タイプと、 d.入出力コントローラへ一定値を送信するセンドツーデ
    バイス(SEND TO DEVICE)命令タイプと、 e.システムメモリに一定値を書き込むセンドツーメモリ
    (SEND TO MEMORY)命令タイプと、 f.システムメモリのバッファ領域にどれだけ記憶場所が
    残っているかに依存して、実行されるべき次の命令を次
    に続く命令アドレス以外のものとして条件付で選択する
    ジャンプイフカウントゼロ(JUMP IF COUNT ZERO)
    命令及びジャンプイフカウントノンゼロ(JUMP IF CO
    UNT NONZERO)命令タイプと、 g.実行されるべき次の命令を次に続く命令アドレス以外
    のものとして無条件で選択するジャンプ(JUMP)命令タ
    イプと、 h.実行が開始されるアドレスを修正し、次に、現行チャ
    ンネルに対応するリクエスト信号が対応する入出力コン
    トローラによりアサート(assert)されるロードスター
    トアドレス(LOAD START ADDRESS)命令タイプと、 i.一定値と前の命令からの値との間で論理演算を実行す
    るアンドデータ(AND DATA)命令、オアデータ(OR D
    ATA)命令及びエックスオアデータ(XOR DATA)命令タ
    イプと、 j.チャンネルに対するシステムメモリのバッファ領域を
    変更するリロード(RELOAD)命令タイプと、 を包含することを特徴とする請求項1記載のデータ処理
    システム。
  5. 【請求項5】請求項1ないし4の何れか1つで使用する
    ための入出力プロセッサにおいて、 前記サービスリクエスト信号を受け取るためのリクエス
    ト受け取り手段を備え、 各チャンネルと前記外部メモリの間のデータ転送を制御
    する制御情報を記憶する内部メモリ手段を備え、 前記内部メモリ手段は、前記主プロセッサによる読み出
    しと書き込みのためにアクセス可能であり、 更に、それぞれのサービスリクエスト信号に応答してチ
    ャンネルプログラムを実行する実行手段を備え、 更に、前記主プロセッサ及び前記入出力プロセッサの間
    での前記外部バス手段の使用を調停する調停手段を備
    え、 前記実行手段は、入出力コントローラへ及びそこからデ
    ータを転送するタスクに固有の命令セットを実行し、 前記命令セットは、翻訳プログラムを呼び出す命令を含
    み、 前記翻訳プログラムは、内部または外部のメモリに記憶
    されたテーブルを利用し、 各テーブルは、前記チャンネル状態または転送データの
    項目の各可能な値についての1つのエントリで構成さ
    れ、 前記命令セットは、インタプリト(INTERPRET)命令を
    含み、該インタプリト命令により、前記翻訳プログラム
    が、入出力コントローラの状態レジスタから状態値を読
    み出し、その状態値を選択されたテーブルへのインデッ
    クスとして使用し、選択されたテーブルから対応するエ
    ントリを抽出し、その対応するエントリに基づいて実行
    すべき次の命令を選択する、 ことを特徴とする入出力プロセッサ。
JP07174390A 1989-03-23 1990-03-20 データ処理システム及びそれに使用するための入出力プロセッサ Expired - Fee Related JP3335172B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/327,845 US5131081A (en) 1989-03-23 1989-03-23 System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers
US327845 1989-03-23

Publications (2)

Publication Number Publication Date
JPH02284252A JPH02284252A (ja) 1990-11-21
JP3335172B2 true JP3335172B2 (ja) 2002-10-15

Family

ID=23278321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07174390A Expired - Fee Related JP3335172B2 (ja) 1989-03-23 1990-03-20 データ処理システム及びそれに使用するための入出力プロセッサ

Country Status (4)

Country Link
US (1) US5131081A (ja)
EP (1) EP0389046B1 (ja)
JP (1) JP3335172B2 (ja)
DE (1) DE69032862T2 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3506118A1 (de) * 1985-02-22 1986-08-28 Robert Bosch Gmbh, 7000 Stuttgart Verfahren zum betreiben einer datenverarbeitungsanlage fuer kraftfahrzeuge
JPH0776950B2 (ja) * 1990-06-22 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及び装置
US5276809A (en) * 1990-06-26 1994-01-04 Digital Equipment Corporation Method and apparatus for capturing real-time data bus cycles in a data processing system
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
JPH05134960A (ja) * 1991-11-08 1993-06-01 Nec Corp ローカルプロセツシング方式
US5333276A (en) * 1991-12-27 1994-07-26 Intel Corporation Method and apparatus for priority selection of commands
JP2568017B2 (ja) * 1992-03-12 1996-12-25 株式会社東芝 マイクロプロセッサ及びそれを使用したデータ処理システム
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
US5488694A (en) * 1992-08-28 1996-01-30 Maspar Computer Company Broadcasting headers to configure physical devices interfacing a data bus with a logical assignment and to effect block data transfers between the configured logical devices
TW390446U (en) * 1992-10-01 2000-05-11 Hudson Soft Co Ltd Information processing system
US5483640A (en) * 1993-02-26 1996-01-09 3Com Corporation System for managing data flow among devices by storing data and structures needed by the devices and transferring configuration information from processor to the devices
US5682551A (en) * 1993-03-02 1997-10-28 Digital Equipment Corporation System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
JPH06274463A (ja) * 1993-03-19 1994-09-30 Hitachi Ltd データ通信システム
US6289402B1 (en) * 1993-07-23 2001-09-11 Amiga Development Llc Bidirectional data transfer protocol primarily controlled by a peripheral device
US5551052A (en) * 1993-08-02 1996-08-27 Xerox Corporation Data bus protocol for high speed chip to chip data transfer
US5734924A (en) * 1993-08-27 1998-03-31 Advanced System Products, Inc. System for host accessing local memory by asserting address signal corresponding to host adapter and data signal indicating address of location in local memory
JP3619532B2 (ja) * 1993-11-08 2005-02-09 株式会社ルネサステクノロジ 半導体集積回路装置
JPH07210500A (ja) * 1994-01-25 1995-08-11 Fujitsu Ltd データ転送制御装置
US5517439A (en) * 1994-02-14 1996-05-14 Matsushita Electric Industrial Co., Ltd. Arithmetic unit for executing division
US5781187A (en) * 1994-05-31 1998-07-14 Advanced Micro Devices, Inc. Interrupt transmission via specialized bus cycle within a symmetrical multiprocessing system
US5564023A (en) * 1994-06-30 1996-10-08 Adaptec, Inc. Method for accessing a sequencer control block by a host adapter integrated circuit
US5625800A (en) * 1994-06-30 1997-04-29 Adaptec, Inc. SCB array external to a host adapter integrated circuit
US5592684A (en) * 1994-07-22 1997-01-07 Dell Usa, L.P. Store queue including a byte order tracking mechanism for maintaining data coherency
US5613156A (en) * 1994-09-27 1997-03-18 Eastman Kodak Company Imaging system with 1-N Parallel channels, each channel has a programmable amplifier and ADC with serial controller linking and controlling the amplifiers and ADCs
FR2726383A1 (fr) * 1994-10-26 1996-05-03 Trt Telecom Radio Electr Systeme de traitement d'informations comportant au moins deux processeurs
EP0732659B1 (en) * 1995-03-17 2001-08-08 LSI Logic Corporation Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
US5799207A (en) * 1995-03-28 1998-08-25 Industrial Technology Research Institute Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device
US5802278A (en) * 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5592622A (en) * 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
KR100365169B1 (ko) * 1995-05-26 2003-05-16 내셔널 세미콘덕터 코포레이션 감소된핀계수를가진집적된제1버스및제2버스콘트롤러
US5603051A (en) * 1995-06-06 1997-02-11 Hewlett-Packard Company Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus
US5913028A (en) * 1995-10-06 1999-06-15 Xpoint Technologies, Inc. Client/server data traffic delivery system and method
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
FR2741174B1 (fr) * 1995-11-14 1998-01-16 Matra Communication Dispositif de transfert d'informations numeriques
US5809285A (en) * 1995-12-21 1998-09-15 Compaq Computer Corporation Computer system having a virtual drive array controller
US5797043A (en) * 1996-03-13 1998-08-18 Diamond Multimedia Systems, Inc. System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs
US6044225A (en) * 1996-03-13 2000-03-28 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller
EP0803803B1 (en) * 1996-04-26 2008-10-01 Texas Instruments Incorporated Method of configuring a data packet transfer device
DE69735614T2 (de) * 1996-10-18 2006-09-07 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragungsgerät und Datenübertragungssystem zur Arbitrierung von mehreren E/A Ports in DMA
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US5984498A (en) 1996-11-21 1999-11-16 Quantum Conveyor Systems, Inc. Device controller with intracontroller communication capability, conveying system using such controllers for controlling conveying sections and methods related thereto
US6784890B1 (en) * 1998-03-02 2004-08-31 Intel Corporation Accelerated graphics port expedite cycle throttling control mechanism
US6449709B1 (en) 1998-06-02 2002-09-10 Adaptec, Inc. Fast stack save and restore system and method
US6085278A (en) * 1998-06-02 2000-07-04 Adaptec, Inc. Communications interface adapter for a computer system including posting of system interrupt status
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
US6192424B1 (en) * 1998-12-11 2001-02-20 Oak Technology, Inc. Bus arbiter for facilitating access to a storage medium in enhanced burst mode using freely specifiable address increments/decrements
US6292856B1 (en) 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request
US6842457B1 (en) * 1999-05-21 2005-01-11 Broadcom Corporation Flexible DMA descriptor support
US20090100295A1 (en) * 2000-01-06 2009-04-16 Super Talent Electronics, Inc. Reliable memory module testing and manufacturing method
US6757291B1 (en) 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
US7032228B1 (en) * 2001-03-01 2006-04-18 Emc Corporation Common device interface
JP3870717B2 (ja) * 2001-05-14 2007-01-24 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6779050B2 (en) * 2001-09-24 2004-08-17 Broadcom Corporation System and method for hardware based reassembly of a fragmented packet
US6920574B2 (en) 2002-04-29 2005-07-19 Apple Computer, Inc. Conserving power by reducing voltage supplied to an instruction-processing portion of a processor
US6880040B2 (en) 2002-06-27 2005-04-12 International Business Machines Corporation Virtual sequential data storage (VSDS) system with router conducting data between hosts and physical storage bypassing VSDS controller
JP2004356673A (ja) * 2003-05-26 2004-12-16 Sony Corp 動きベクトル検出方法及び同方法を用いた画像処理装置
US6826640B1 (en) * 2003-06-04 2004-11-30 Digi International Inc. Bus bandwidth control system
US7321985B2 (en) * 2004-02-26 2008-01-22 International Business Machines Corporation Method for achieving higher availability of computer PCI adapters
US20060293782A1 (en) * 2005-06-27 2006-12-28 Rees Steven D Method for regulating the flow of product along an accumulation conveyor
US8214574B2 (en) * 2006-09-08 2012-07-03 Intel Corporation Event handling for architectural events at high privilege levels
US20090063725A1 (en) * 2007-08-31 2009-03-05 O2Micro Inc. Direct memory access system
JP2010015233A (ja) * 2008-07-01 2010-01-21 Panasonic Corp 集積回路及び電子機器
DE102016005026B3 (de) * 2016-04-24 2017-05-18 Sami Haddadin System und Verfahren zum Steuern eines Roboters
WO2018038703A1 (en) * 2016-08-22 2018-03-01 Hewlett-Packard Development Company, L.P. Connected devices information
WO2020157594A1 (en) 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
TWI773959B (zh) * 2019-01-31 2022-08-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
TWI767175B (zh) 2019-01-31 2022-06-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
WO2020156797A1 (en) 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
CN116521095B (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 响应输出系统、方法、电子设备、存储介质及程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2261567B1 (ja) * 1974-02-20 1977-09-23 Honeywell Bull Soc Ind
US4336588A (en) * 1977-01-19 1982-06-22 Honeywell Information Systems Inc. Communication line status scan technique for a communications processing system
US4296466A (en) * 1978-01-23 1981-10-20 Data General Corporation Data processing system including a separate input/output processor with micro-interrupt request apparatus
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
US4268906A (en) * 1978-12-22 1981-05-19 International Business Machines Corporation Data processor input/output controller
US4271468A (en) * 1979-11-06 1981-06-02 International Business Machines Corp. Multiprocessor mechanism for handling channel interrupts
IT1149252B (it) * 1980-09-09 1986-12-03 Sits Soc It Telecom Siemens Modulo di ingresso-uscita per un elaboratore elettronico
US4514823A (en) * 1982-01-15 1985-04-30 International Business Machines Corporation Apparatus and method for extending a parallel channel to a serial I/O device
US4901232A (en) * 1983-05-19 1990-02-13 Data General Corporation I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
US4591973A (en) * 1983-06-06 1986-05-27 Sperry Corporation Input/output system and method for digital computers
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4602327A (en) * 1983-07-28 1986-07-22 Motorola, Inc. Bus master capable of relinquishing bus on request and retrying bus cycle
US4682304A (en) * 1983-08-04 1987-07-21 Tektronix, Inc. Asynchronous multiple buffered communications interface having an independent microprocessor for controlling host/peripheral exchanges
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
US4987530A (en) * 1985-11-15 1991-01-22 Data General Corp. Input/output controller for a data processing system
JPS6336461A (ja) * 1986-07-31 1988-02-17 Pfu Ltd 汎用チャネル制御方式

Also Published As

Publication number Publication date
US5131081A (en) 1992-07-14
JPH02284252A (ja) 1990-11-21
DE69032862D1 (de) 1999-02-11
DE69032862T2 (de) 1999-07-01
EP0389046A2 (en) 1990-09-26
EP0389046B1 (en) 1998-12-30
EP0389046A3 (en) 1991-12-11

Similar Documents

Publication Publication Date Title
JP3335172B2 (ja) データ処理システム及びそれに使用するための入出力プロセッサ
US5448702A (en) Adapters with descriptor queue management capability
EP0550164B1 (en) Method and apparatus for interleaving multiple-channel DMA operations
US5701495A (en) Scalable system interrupt structure for a multi-processing system
US4432051A (en) Process execution time accounting system
US4803622A (en) Programmable I/O sequencer for use in an I/O processor
US5386532A (en) Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
EP0604471B1 (en) Multi-media signal processor computer system
US4177513A (en) Task handling apparatus for a computer system
JP3253303B2 (ja) コンテキスト切り換え装置及び方法
US6192442B1 (en) Interrupt controller
US4493034A (en) Apparatus and method for an operating system supervisor in a data processing system
US5740406A (en) Method and apparatus for providing fifo buffer input to an input/output device used in a computer system
US5696990A (en) Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
US5805930A (en) System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs
WO2000075789A1 (en) A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
JPH0640321B2 (ja) 割込み処理のためのシステムおよび方法
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
US5638535A (en) Method and apparatus for providing flow control with lying for input/output operations in a computer system
JPH0670783B2 (ja) データ処理システムのコマンド・インタフエース
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
US5072365A (en) Direct memory access controller using prioritized interrupts for varying bus mastership
JPH09160862A (ja) ローカル・サイド及びホスト・サイドの間でデータ・ブロックを転送するためのステータス処理システム
CA1304513C (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
JPH0332818B2 (ja)

Legal Events

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