JPH04215160A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH04215160A JPH04215160A JP40177690A JP40177690A JPH04215160A JP H04215160 A JPH04215160 A JP H04215160A JP 40177690 A JP40177690 A JP 40177690A JP 40177690 A JP40177690 A JP 40177690A JP H04215160 A JPH04215160 A JP H04215160A
- Authority
- JP
- Japan
- Prior art keywords
- task
- tasks
- port
- scheduled
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012546 transfer Methods 0.000 claims abstract description 39
- 238000004891 communication Methods 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 28
- 238000007616 round robin method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 18
- 239000000872 buffer Substances 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000004913 activation Effects 0.000 description 4
- 238000001994 activation Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は一般にディジタル・コン
ピュータ・システム、特にホスト・コンピュータ・シス
テムを直列通信ライン(回線)とインタフェースさせる
サブシステムに関する。
ピュータ・システム、特にホスト・コンピュータ・シス
テムを直列通信ライン(回線)とインタフェースさせる
サブシステムに関する。
【0002】
【従来の技術】最新のコンピュータ・システムにとって
外部との通信は極めて重要である。システムによっては
同時に動作する幾つかの直列通信リンクを持っている。 同時に動作する多重リンクを制御することは全体のシス
テム・パフォーマンスを低下させる要求をシステム・プ
ロセッサに負わせることがある。
外部との通信は極めて重要である。システムによっては
同時に動作する幾つかの直列通信リンクを持っている。 同時に動作する多重リンクを制御することは全体のシス
テム・パフォーマンスを低下させる要求をシステム・プ
ロセッサに負わせることがある。
【0003】このパフォーマンス問題の1つの解決方法
は ”高性能” 通信アダプタを使用することである。 これらのアダプタは通信セッションの低いレベルの項目
の全てを処理する。該アダプタはこれらのホスト・シス
テムと通信し、割合に大きなブロックでデータを転送す
る。 受取ったデータ及び送信されるデータはどちらも該アダ
プタとホスト・システムの間でブロック転送により転送
される。前記転送に直接メモリ・アクセス(DMA)を
用いてホスト中央プロセッサの負担を更に軽減すること
ができる。
は ”高性能” 通信アダプタを使用することである。 これらのアダプタは通信セッションの低いレベルの項目
の全てを処理する。該アダプタはこれらのホスト・シス
テムと通信し、割合に大きなブロックでデータを転送す
る。 受取ったデータ及び送信されるデータはどちらも該アダ
プタとホスト・システムの間でブロック転送により転送
される。前記転送に直接メモリ・アクセス(DMA)を
用いてホスト中央プロセッサの負担を更に軽減すること
ができる。
【0004】アダプタの数が限定されているシステムで
複数の通信ポートを提供するためには、1つのアダプタ
に幾つかのポートを接続することができる。しかしなが
ら、このアプローチは重要な問題を提起することがある
。幾つかの独立したポートに関するデータ及びコマンド
の処理は、特に高い通信速度で、かなり複雑になること
がある。異なる速度及びプロトコルが異なる通信ポート
に用いられると、問題は非常に深刻になる。アダプタが
全ての通信ポートのタイミングのよい処理を保証するこ
とは困難になる。
複数の通信ポートを提供するためには、1つのアダプタ
に幾つかのポートを接続することができる。しかしなが
ら、このアプローチは重要な問題を提起することがある
。幾つかの独立したポートに関するデータ及びコマンド
の処理は、特に高い通信速度で、かなり複雑になること
がある。異なる速度及びプロトコルが異なる通信ポート
に用いられると、問題は非常に深刻になる。アダプタが
全ての通信ポートのタイミングのよい処理を保証するこ
とは困難になる。
【0005】データを喪失せずに複数の独立したポート
を処理できる通信ポート・アダプタとして用いるのに適
したシステムが提供されることが望ましい。
を処理できる通信ポート・アダプタとして用いるのに適
したシステムが提供されることが望ましい。
【0006】
【発明が解決しようとする課題】本発明の目的はホスト
・コンピュータ・システムで通信ポート・アダプタとし
て用いるのに適したシステムを提供することである。
・コンピュータ・システムで通信ポート・アダプタとし
て用いるのに適したシステムを提供することである。
【0007】本発明のもう1つの目的は1つのアダプタ
で複数の通信ポートが支援され、各々のポートは他のポ
ートに関係なく動作するシステムを提供することである
。
で複数の通信ポートが支援され、各々のポートは他のポ
ートに関係なく動作するシステムを提供することである
。
【0008】更に本発明のもう1つの目的はどのポート
でもデータが失われないことを保証するように通信ポー
トが処理されるシステムを提供することである。
でもデータが失われないことを保証するように通信ポー
トが処理されるシステムを提供することである。
【0009】
【課題を解決するための手段】本発明に従って、直列通
信アダプタは物理的な通信ポートとのインタフェースを
提供する。アダプタで実行するスケジューラは異なる優
先順位レベルでタスクをスケジュールし、時間が重要な
タスクはデータを喪失しないように速やかに実行される
。通信ポートを介して送信されるデータ又は受信された
データはアダプタのバッファに記憶され、アダプタとホ
スト・システムの間のデータ及びコマンドの通信はDM
Aチャネルによって実行されることが望ましい。
信アダプタは物理的な通信ポートとのインタフェースを
提供する。アダプタで実行するスケジューラは異なる優
先順位レベルでタスクをスケジュールし、時間が重要な
タスクはデータを喪失しないように速やかに実行される
。通信ポートを介して送信されるデータ又は受信された
データはアダプタのバッファに記憶され、アダプタとホ
スト・システムの間のデータ及びコマンドの通信はDM
Aチャネルによって実行されることが望ましい。
【0010】
【実施例】図2で、一般にホスト・システムと呼ばれる
コンピュータ・システムは参照番号10で示す。ホスト
・システム10はシステム・バス16に接続された中央
プロセッサ12及びメイン・メモリ14を含む。1以上
のユーザ・インタフェース入出力装置18もシステム・
バス16に接続される。これらのユーザ・インタフェー
ス入出力装置18は一般に表示装置及びキーボードを含
み、そして大抵はマウスのような指示装置を含む。
コンピュータ・システムは参照番号10で示す。ホスト
・システム10はシステム・バス16に接続された中央
プロセッサ12及びメイン・メモリ14を含む。1以上
のユーザ・インタフェース入出力装置18もシステム・
バス16に接続される。これらのユーザ・インタフェー
ス入出力装置18は一般に表示装置及びキーボードを含
み、そして大抵はマウスのような指示装置を含む。
【0011】大容量記憶入出力装置20もシステム・バ
ス16に接続され、ホスト・システム10及び1以上の
大容量記憶装置をインタフェースすることが望ましい。 これらの装置は一般に磁気ディスク装置又は光学ディス
ク装置を含む。システムによっては、前記大容量記憶入
出力装置20を含まず、代りにネットワークに接続され
た遠隔の大容量記憶装置に依存する。直列入出力アダプ
タ22もシステム・バス16に接続することが望ましい
。良好な実施例では、前記アダプタ22はホスト・シス
テム10と複数の直列通信ポートの間の通信を提供する
。技術的に既知の種々の他の装置がホスト・システム1
0に含まれることもある。
ス16に接続され、ホスト・システム10及び1以上の
大容量記憶装置をインタフェースすることが望ましい。 これらの装置は一般に磁気ディスク装置又は光学ディス
ク装置を含む。システムによっては、前記大容量記憶入
出力装置20を含まず、代りにネットワークに接続され
た遠隔の大容量記憶装置に依存する。直列入出力アダプ
タ22もシステム・バス16に接続することが望ましい
。良好な実施例では、前記アダプタ22はホスト・シス
テム10と複数の直列通信ポートの間の通信を提供する
。技術的に既知の種々の他の装置がホスト・システム1
0に含まれることもある。
【0012】図2のシステムはメインのシステム・バス
16に接続される全ての入出力装置を示す。多くの高い
パフォーマンスのシステムは中央プロセッサ12とメイ
ン・メモリ14の間に高速バスを設ける。前記システム
では、入出力制御装置(図示せず)は該高速バスに接続
され、次いで別の入出力バス(図示せず)を介して種々
の入出力装置18、20、22に接続する。前記システ
ムでは、メイン・メモリ14と種々の入出力装置の間で
転送されたデータは入出力制御装置を介して送られ、且
つ入出力制御装置により制御される。下記の複数ポート
の直列アダプタはどちらのタイプのシステムでも同等に
良好に作用することができる。多くの異なるタイプのコ
ンピュータ・システムでインタフェースの使用を可能に
するためには、アダプタとバスの間に適切なインタフェ
ースを設けるだけでよい。
16に接続される全ての入出力装置を示す。多くの高い
パフォーマンスのシステムは中央プロセッサ12とメイ
ン・メモリ14の間に高速バスを設ける。前記システム
では、入出力制御装置(図示せず)は該高速バスに接続
され、次いで別の入出力バス(図示せず)を介して種々
の入出力装置18、20、22に接続する。前記システ
ムでは、メイン・メモリ14と種々の入出力装置の間で
転送されたデータは入出力制御装置を介して送られ、且
つ入出力制御装置により制御される。下記の複数ポート
の直列アダプタはどちらのタイプのシステムでも同等に
良好に作用することができる。多くの異なるタイプのコ
ンピュータ・システムでインタフェースの使用を可能に
するためには、アダプタとバスの間に適切なインタフェ
ースを設けるだけでよい。
【0013】図1は良好な直列入出力アダプタ22を示
す。アダプタ22はシステム・バス・インタフェース2
4を介してシステム・バス16に接続される。インタフ
ェース24は高速バスのアダプタ・バス26に接続され
る。アダプタ・バス26には中央プロセッサ28および
アダプタ・メモリ30も接続される。中央プロセッサ2
8は INTEL 80186プロセッサのような市販
のマイクロプロセッサを使用することができる。アダプ
タ・メモリ30は、技術的に既知のコンピュータ・シス
テム・メモリであり、後で説明する機能を支援する容量
が十分にあるので使用可能である。一般的な使用例では
、アダプタ・メモリ30が持つ 512K バイトの容
量は4つの通信ポートにとって十分である。中央プロセ
ッサ28はアダプタ・メモリ30に記憶されたプログラ
ムを用いてアダプタ22の機能を実行する。
す。アダプタ22はシステム・バス・インタフェース2
4を介してシステム・バス16に接続される。インタフ
ェース24は高速バスのアダプタ・バス26に接続され
る。アダプタ・バス26には中央プロセッサ28および
アダプタ・メモリ30も接続される。中央プロセッサ2
8は INTEL 80186プロセッサのような市販
のマイクロプロセッサを使用することができる。アダプ
タ・メモリ30は、技術的に既知のコンピュータ・シス
テム・メモリであり、後で説明する機能を支援する容量
が十分にあるので使用可能である。一般的な使用例では
、アダプタ・メモリ30が持つ 512K バイトの容
量は4つの通信ポートにとって十分である。中央プロセ
ッサ28はアダプタ・メモリ30に記憶されたプログラ
ムを用いてアダプタ22の機能を実行する。
【0014】4つの直列ポート・インタフェース32、
34、36及び38もアダプタ・バス26に接続される
。図2には4つのポートが示されているが、必要ならば
、もっと多くのポートを1つのアダプタに接続すること
ができる。1枚の直列入出力アダプタ22のカードに接
続できるポート数は、これらのポートに供給できる処理
能力とアダプタ22のカードに接続できる物理的なポー
ト数によってのみ制限される。
34、36及び38もアダプタ・バス26に接続される
。図2には4つのポートが示されているが、必要ならば
、もっと多くのポートを1つのアダプタに接続すること
ができる。1枚の直列入出力アダプタ22のカードに接
続できるポート数は、これらのポートに供給できる処理
能力とアダプタ22のカードに接続できる物理的なポー
ト数によってのみ制限される。
【0015】直列ポートDMA制御装置40はアダプタ
・バス26に接続され、アダプタ・メモリ30とポート
32、34、36、38の間のDMA転送の制御に用い
られる。各々のポートは受信バッファにデータが使用可
能な時期及び送信バッファがデータ受信に使用可能な時
期を示す2つの信号ラインが直にDMA制御装置40に
接続される。DMA制御装置40は前記信号を用いて通
信ポートとアダプタ・メモリ30の間のDMA転送を開
始する時期を決める。
・バス26に接続され、アダプタ・メモリ30とポート
32、34、36、38の間のDMA転送の制御に用い
られる。各々のポートは受信バッファにデータが使用可
能な時期及び送信バッファがデータ受信に使用可能な時
期を示す2つの信号ラインが直にDMA制御装置40に
接続される。DMA制御装置40は前記信号を用いて通
信ポートとアダプタ・メモリ30の間のDMA転送を開
始する時期を決める。
【0016】DMA転送を実行するために、DMA制御
装置40及びシステム・バス・インタフェース24はど
ちらも、アダプタ・バス26のバス・マスタとして動作
することができる。システム・バス・インタフェース2
4及びDMA制御装置40はDMAを用いてデータをア
ダプタ・メモリ30へ転送するか又はアダプタ・メモリ
30から転送する。更に、インタフェース24もシステ
ム・バス16のバス・マスタになり、DMAチャネルを
用いてメイン・メモリ14へ又はメイン・メモリ14か
らデータを転送することができる。本明細書に記述され
た実施例では、システム・バス・インタフェース24に
より1つのDMAチャネルが用いられ、通信ポート32
、34、36及び38の全てのデータを転送する。
装置40及びシステム・バス・インタフェース24はど
ちらも、アダプタ・バス26のバス・マスタとして動作
することができる。システム・バス・インタフェース2
4及びDMA制御装置40はDMAを用いてデータをア
ダプタ・メモリ30へ転送するか又はアダプタ・メモリ
30から転送する。更に、インタフェース24もシステ
ム・バス16のバス・マスタになり、DMAチャネルを
用いてメイン・メモリ14へ又はメイン・メモリ14か
らデータを転送することができる。本明細書に記述され
た実施例では、システム・バス・インタフェース24に
より1つのDMAチャネルが用いられ、通信ポート32
、34、36及び38の全てのデータを転送する。
【0017】アダプタ22の動作を制御するために、中
央プロセッサ28は後で説明する幾つかの異なるルーチ
ンを実行する。次にどのタスクを実行すべきかを決める
タスク・スケジューラ・ルーチンは非常に重要である。 システム・バス・インタフェース24を介してシステム
・バス16へ又はシステム・バス16からのDMA転送
をセットアップし、アダプタ・メモリ30と通信ポート
の間の送受信動作をセットアップし且つ種々の誤り条件
を処理するための種々のルーチンは中央プロセッサ28
によって実行される。
央プロセッサ28は後で説明する幾つかの異なるルーチ
ンを実行する。次にどのタスクを実行すべきかを決める
タスク・スケジューラ・ルーチンは非常に重要である。 システム・バス・インタフェース24を介してシステム
・バス16へ又はシステム・バス16からのDMA転送
をセットアップし、アダプタ・メモリ30と通信ポート
の間の送受信動作をセットアップし且つ種々の誤り条件
を処理するための種々のルーチンは中央プロセッサ28
によって実行される。
【0018】図3はアダプタでタスクをスケジュールす
るのに用いることが望ましいスケジューラ作業テーブル
50を示す。異なるタスクは図3に示すレベル0からレ
ベル6までの異なる優先順位レベルで動作する。実際に
使用される優先順位の数は特定の実施例に適合するよう
に必要に応じて変更できる。優先順位レベル0は最高の
優先順位であり、優先順位レベル6は最低の優先順位で
ある。
るのに用いることが望ましいスケジューラ作業テーブル
50を示す。異なるタスクは図3に示すレベル0からレ
ベル6までの異なる優先順位レベルで動作する。実際に
使用される優先順位の数は特定の実施例に適合するよう
に必要に応じて変更できる。優先順位レベル0は最高の
優先順位であり、優先順位レベル6は最低の優先順位で
ある。
【0019】優先順位の各々は実行待ちのタスクを示す
エントリーを有する。優先順位レベル1〜6の各々はア
ダプタの各々の通信ポートに対応する1つのエントリー
を持つビットマップから成る。もしどれか特定のビット
の値が1であれば、対応するポートはスケジュールされ
た対応するタスクを持っている。
エントリーを有する。優先順位レベル1〜6の各々はア
ダプタの各々の通信ポートに対応する1つのエントリー
を持つビットマップから成る。もしどれか特定のビット
の値が1であれば、対応するポートはスケジュールされ
た対応するタスクを持っている。
【0020】スケジューラ作業テーブル50にあるビッ
トは種々の割込みハンドラ及び後で詳細に説明するタス
クの実行によりセットされる。ハードウェア割込みが起
きると、適切なハンドラは、どのルーチンを呼出して処
理するかを決定し、スケジューラ作業テーブル50にあ
るビットをセットして前記ルーチンをスケジュールする
。ルーチンが実行されると、該ハンドラはテーブル50
にあるビットをセットして他のルーチンをスケジュール
できる。一般にそれ自身のビットをリセットすることに
より、それ自身がスケジュール解除(unschedu
le)される。
トは種々の割込みハンドラ及び後で詳細に説明するタス
クの実行によりセットされる。ハードウェア割込みが起
きると、適切なハンドラは、どのルーチンを呼出して処
理するかを決定し、スケジューラ作業テーブル50にあ
るビットをセットして前記ルーチンをスケジュールする
。ルーチンが実行されると、該ハンドラはテーブル50
にあるビットをセットして他のルーチンをスケジュール
できる。一般にそれ自身のビットをリセットすることに
より、それ自身がスケジュール解除(unschedu
le)される。
【0021】最高の優先順位レベル、レベル0は現にス
ケジュールされた、当該優先順位レベルのタスクの数を
示すカウンタとして用いられる。この動作の相違点は後
で詳細に説明する。実施例によっては、他の優先順位レ
ベルをこのように用いるか又は全く用いないことが望ま
しいことがある。
ケジュールされた、当該優先順位レベルのタスクの数を
示すカウンタとして用いられる。この動作の相違点は後
で詳細に説明する。実施例によっては、他の優先順位レ
ベルをこのように用いるか又は全く用いないことが望ま
しいことがある。
【0022】最高の優先順位レベルはシステム・バスD
MA転送を実行するタスクである。タスクがシステム・
バスDMA転送を必要とする毎にレベル0カウンタが増
分され、必要な識別情報がアダプタ・メモリ30にある
リストに加えられる。1つのシステム・バスDMAチャ
ネルだけが使用可能であるから、任意の所与の時刻に1
つのシステム・バスDMAタスクだけが動作できる。残
りのタスクはどれも現に実行中のシステム・バスDMA
タスクが終了し、該残りのタスクが実行できるようにな
るまで待たなければならない。後で説明するようにシス
テム・バスDMAタスクを実行している間に他のタスク
もアダプタで実行することができる。
MA転送を実行するタスクである。タスクがシステム・
バスDMA転送を必要とする毎にレベル0カウンタが増
分され、必要な識別情報がアダプタ・メモリ30にある
リストに加えられる。1つのシステム・バスDMAチャ
ネルだけが使用可能であるから、任意の所与の時刻に1
つのシステム・バスDMAタスクだけが動作できる。残
りのタスクはどれも現に実行中のシステム・バスDMA
タスクが終了し、該残りのタスクが実行できるようにな
るまで待たなければならない。後で説明するようにシス
テム・バスDMAタスクを実行している間に他のタスク
もアダプタで実行することができる。
【0023】通信ポートがフレームを受信し終ったとき
レベル1のタスクが呼出され、受信されたフレームの妥
当性を種々のステップを用いて検査しなければならない
。データ受信タスクは受信されたフレームを検査し、誤
りがあればフラグを立てる。データ受信タスクはシステ
ム・バスにより該受信フレームをホストにDMA転送す
ることもスケジュールする。
レベル1のタスクが呼出され、受信されたフレームの妥
当性を種々のステップを用いて検査しなければならない
。データ受信タスクは受信されたフレームを検査し、誤
りがあればフラグを立てる。データ受信タスクはシステ
ム・バスにより該受信フレームをホストにDMA転送す
ることもスケジュールする。
【0024】次の優先順位レベル2のタスクはデータ送
信タスクである。このタスクはアダプタ・メモリ30か
ら適切な通信ポートへのデータ転送を開始する。ポート
を介して通信されるデータのフレームのアセンブルが終
るか又は前のフレームが送信を終了すると、データ送信
タスクがスケジュールされる。
信タスクである。このタスクはアダプタ・メモリ30か
ら適切な通信ポートへのデータ転送を開始する。ポート
を介して通信されるデータのフレームのアセンブルが終
るか又は前のフレームが送信を終了すると、データ送信
タスクがスケジュールされる。
【0025】レベル3のタスクは通信ポートに誤りが現
われる毎に呼出される誤り/状況タスクである。このタ
スクによって処理される誤りのタイプは制御信号の予期
しない変更並びにデータ伝送誤りのようなライン誤りを
含むことが望ましい。
われる毎に呼出される誤り/状況タスクである。このタ
スクによって処理される誤りのタイプは制御信号の予期
しない変更並びにデータ伝送誤りのようなライン誤りを
含むことが望ましい。
【0026】後に説明する状況では、ポートによって生
成される種々の事象即ちデータの送信又は受信はキュー
(待ち行列)に入れて後の処理を待たなければならない
。レベル4はポート応答キューでエントリーを処理する
タスクである。同様に、レベル5は後の処理を待つため
にキューに入れられているポートに送られるコマンドを
処理するタスクである。ポート応答キュー及びポート・
コマンド・キューの使用は通信ポートがその最新の動作
を終了するのを待たことなく種々のタイプの処理を実行
できるようにする。例えば、ホスト・システムに都合の
よいときにコマンドをポートに送ることができ、それら
のコマンドはポートに印加されるまでキューに駐在する
。到来する事象は直列入出力アダプタ22で中央プロセ
ッサ28がそれらを処理できるまでポート応答キューに
記憶される。
成される種々の事象即ちデータの送信又は受信はキュー
(待ち行列)に入れて後の処理を待たなければならない
。レベル4はポート応答キューでエントリーを処理する
タスクである。同様に、レベル5は後の処理を待つため
にキューに入れられているポートに送られるコマンドを
処理するタスクである。ポート応答キュー及びポート・
コマンド・キューの使用は通信ポートがその最新の動作
を終了するのを待たことなく種々のタイプの処理を実行
できるようにする。例えば、ホスト・システムに都合の
よいときにコマンドをポートに送ることができ、それら
のコマンドはポートに印加されるまでキューに駐在する
。到来する事象は直列入出力アダプタ22で中央プロセ
ッサ28がそれらを処理できるまでポート応答キューに
記憶される。
【0027】最低の優先順位、レベル6は非活動状態に
なっているタスクを活動化するために使用される。時に
は所定の事象が起きるまでタスクの動作を延期させるこ
とが望ましい。後で説明するように、このタスクは非活
動状態にすることができるので延期されたままである。 所定の事象が起きると、該事象に関連した割込みハンド
ラはポート応答キュー・タスクをスケジュールし、スケ
ジューラ作業テーブル50のレベル6の適切なビットを
セットする。当該ポートの活動化タスクが選択され実行
されると、該延期されたタスクは実行を再開する。
なっているタスクを活動化するために使用される。時に
は所定の事象が起きるまでタスクの動作を延期させるこ
とが望ましい。後で説明するように、このタスクは非活
動状態にすることができるので延期されたままである。 所定の事象が起きると、該事象に関連した割込みハンド
ラはポート応答キュー・タスクをスケジュールし、スケ
ジューラ作業テーブル50のレベル6の適切なビットを
セットする。当該ポートの活動化タスクが選択され実行
されると、該延期されたタスクは実行を再開する。
【0028】図4、図5及び図6はタスクをスケジュー
ルし実行する方法を示す。スケジューラは図4で無限ル
ープを実行する。現に選択されたタスク又はプロセスは
終了に至るまでステップ60で実行される。タスクの実
行が終了すると、スケジューラはタスクがスケジュール
される最高の優先順位レベルをステップ62で選択する
。次にステップ64でスケジューラは実行されるタスク
を当該優先順位レベルの範囲内で選択する。選択された
優先順位レベルで2以上のタスクが実行されるように選
択されると、ラウンドロビン方式が用いられ、次にどの
タスクを実行すべきかを決定する。これは、全てのポー
トを同等に処理すること、及び同じ優先順位レベルでタ
スクがスケジュールされている全ての他のポートがサー
ビスされるまでどのポートも所与の優先順位レベルのど
れかでタスクを実行しないことを保証する。タスクが選
択されたのち、制御はステップ60に戻り、該選択され
たタスクが実行される。
ルし実行する方法を示す。スケジューラは図4で無限ル
ープを実行する。現に選択されたタスク又はプロセスは
終了に至るまでステップ60で実行される。タスクの実
行が終了すると、スケジューラはタスクがスケジュール
される最高の優先順位レベルをステップ62で選択する
。次にステップ64でスケジューラは実行されるタスク
を当該優先順位レベルの範囲内で選択する。選択された
優先順位レベルで2以上のタスクが実行されるように選
択されると、ラウンドロビン方式が用いられ、次にどの
タスクを実行すべきかを決定する。これは、全てのポー
トを同等に処理すること、及び同じ優先順位レベルでタ
スクがスケジュールされている全ての他のポートがサー
ビスされるまでどのポートも所与の優先順位レベルのど
れかでタスクを実行しないことを保証する。タスクが選
択されたのち、制御はステップ60に戻り、該選択され
たタスクが実行される。
【0029】ステップ62および64は極めて速やかに
動作し、割込みできないことが望ましい。なぜなら、し
ばしば起きることがある種々の割込みはスケジューラ作
業テーブル50の更新によってタスクをスケジュールし
、この動作はステップ62及び64の選択プロセスを妨
げるからである。ステップ60のプロセス実行は割込み
可能であり、システム及び通信ポートにより生成された
種々のハードウェア割込みが用いられ、スケジューラ作
業テーブル50内のタスクが更にスケジュールされる。
動作し、割込みできないことが望ましい。なぜなら、し
ばしば起きることがある種々の割込みはスケジューラ作
業テーブル50の更新によってタスクをスケジュールし
、この動作はステップ62及び64の選択プロセスを妨
げるからである。ステップ60のプロセス実行は割込み
可能であり、システム及び通信ポートにより生成された
種々のハードウェア割込みが用いられ、スケジューラ作
業テーブル50内のタスクが更にスケジュールされる。
【0030】図5は割込みを処理する一般的な方法を示
す。アダプタ22でハードウェア割込みが起きると、中
央プロセッサ28の制御は汎用割込みルーチンに移され
る。このルーチンはステップ66で割込みの種類を識別
し、適切な割込みハンドラを実行する。ステップ68で
実行する割込みハンドラは非常に短く且つ割込み不可能
にすることが望ましい。割込みハンドラは一般に割込み
の原因を明らかにし、定期的にスケジュールされたタス
クの1つが見つけることができる適切な領域に1つか2
つのデータ項目をコピーし、ステップ70でスケジュー
ラ作業テーブル50を更新して適切なタスクをスケジュ
ールする。従って、ステップ60でタスクが実行されて
いる間に、追加して実行されるタスクが種々の割込みハ
ンドラによって作業テーブル50でスケジュールされる
。
す。アダプタ22でハードウェア割込みが起きると、中
央プロセッサ28の制御は汎用割込みルーチンに移され
る。このルーチンはステップ66で割込みの種類を識別
し、適切な割込みハンドラを実行する。ステップ68で
実行する割込みハンドラは非常に短く且つ割込み不可能
にすることが望ましい。割込みハンドラは一般に割込み
の原因を明らかにし、定期的にスケジュールされたタス
クの1つが見つけることができる適切な領域に1つか2
つのデータ項目をコピーし、ステップ70でスケジュー
ラ作業テーブル50を更新して適切なタスクをスケジュ
ールする。従って、ステップ60でタスクが実行されて
いる間に、追加して実行されるタスクが種々の割込みハ
ンドラによって作業テーブル50でスケジュールされる
。
【0031】図5の方法は種々のタスクの優先使用を不
可能にするときに使用される。換言すれば、実行中のタ
スクが終了してから別のタスクがスケジューラにより開
始される。大抵のタスクはかなり短いから、これによっ
て大抵のシステムでは問題は生じない。しかしながら、
希望があれば種々のタスクの優先使用を可能にすること
ができる。もしそうなれば、より高い優先順位のタスク
の割込みによるスケジューリングは現在のタスクの実行
を延期させ、より高い優先順位のタスクが直ちに実行さ
れる。図6はこのような状況における割込み処理の流れ
図を示す。
可能にするときに使用される。換言すれば、実行中のタ
スクが終了してから別のタスクがスケジューラにより開
始される。大抵のタスクはかなり短いから、これによっ
て大抵のシステムでは問題は生じない。しかしながら、
希望があれば種々のタスクの優先使用を可能にすること
ができる。もしそうなれば、より高い優先順位のタスク
の割込みによるスケジューリングは現在のタスクの実行
を延期させ、より高い優先順位のタスクが直ちに実行さ
れる。図6はこのような状況における割込み処理の流れ
図を示す。
【0032】ハードウェア割込みが起きると、割込みの
種類がステップ72で識別され、ステップ74で適切な
割込みハンドラが実行される。前述のように、割込みハ
ンドラを実行することにより、ステップ76でスケジュ
ーラ作業テーブル50が更新される。そしてステップ7
8で、現に実行中のタスクよりも高い優先順位を持つ作
業がスケジュールされているかどうかを検査する。ステ
ップ80で、より高い優先順位のタスクがスケジュール
されていなければ、現在のタスクの実行が再開される。 もしステップ74で、より高い優先順位のタスクが割込
みハンドラの実行中にスケジュールされたならば、現に
実行中のプロセスはステップ82で中断され、該より高
い優先順位のプロセスの実行を開始するために再びスケ
ジューラが呼出される。
種類がステップ72で識別され、ステップ74で適切な
割込みハンドラが実行される。前述のように、割込みハ
ンドラを実行することにより、ステップ76でスケジュ
ーラ作業テーブル50が更新される。そしてステップ7
8で、現に実行中のタスクよりも高い優先順位を持つ作
業がスケジュールされているかどうかを検査する。ステ
ップ80で、より高い優先順位のタスクがスケジュール
されていなければ、現在のタスクの実行が再開される。 もしステップ74で、より高い優先順位のタスクが割込
みハンドラの実行中にスケジュールされたならば、現に
実行中のプロセスはステップ82で中断され、該より高
い優先順位のプロセスの実行を開始するために再びスケ
ジューラが呼出される。
【0033】図7はアダプタ・メモリ30内に記憶され
た重要なデータ構造の一部を示す。メモリ30の主要部
分は送受信バッファ90によって取出すことが望ましい
。これらのバッファ90はメモリ30内で自由に使用で
きる空間から動的に割振られる。送受信バッファ90の
ために自由に使用できる空間のリストは技術的に既知の
方法で維持される。
た重要なデータ構造の一部を示す。メモリ30の主要部
分は送受信バッファ90によって取出すことが望ましい
。これらのバッファ90はメモリ30内で自由に使用で
きる空間から動的に割振られる。送受信バッファ90の
ために自由に使用できる空間のリストは技術的に既知の
方法で維持される。
【0034】ベクトル・テーブル91は種々のタスク及
び割込みで使用するために割振られる。スタック92は
一時的にデータを記憶するためにポート毎に独立して割
振られる。従って、アダプタ22に4つの通信ポートが
設けられると、メモリ30内に4つのスタックが割振ら
れる。別のスタック93はスケジューラによって使用さ
れ、他のポートも、対応するポートがアクセスする種々
のデータ構造を指すポインタを含むポート制御ブロック
94を有する。ポート・コマンド・キュー96はポート
毎に、該ポートに送られたコマンドを含むFIFOキュ
ーを提供する。ポートに送られたコマンドの各々は、ポ
ート・コマンド・エレメントと呼ばれる標準的なサイズ
のデータ構造に入れられ、各々のキューのコマンドは循
環バッファに入れられる。
び割込みで使用するために割振られる。スタック92は
一時的にデータを記憶するためにポート毎に独立して割
振られる。従って、アダプタ22に4つの通信ポートが
設けられると、メモリ30内に4つのスタックが割振ら
れる。別のスタック93はスケジューラによって使用さ
れ、他のポートも、対応するポートがアクセスする種々
のデータ構造を指すポインタを含むポート制御ブロック
94を有する。ポート・コマンド・キュー96はポート
毎に、該ポートに送られたコマンドを含むFIFOキュ
ーを提供する。ポートに送られたコマンドの各々は、ポ
ート・コマンド・エレメントと呼ばれる標準的なサイズ
のデータ構造に入れられ、各々のキューのコマンドは循
環バッファに入れられる。
【0035】ホストに又はホストから送られるデータを
必要とするポート・コマンドが実行されると、該データ
転送プロセスが終了するまで、前記ポートのそれ以上の
コマンドは実行することができない。システムによって
は、ポートを介してデータを転送するピンポン・バッフ
ァを用いることができる。前記の場合、もしポートの1
チャネルが活動状態であれば、他のチャネルは次の転送
のためにセットアップすることができる。ポート・コマ
ンド・キュー96で待っているポート・コマンドは他の
バッファを準備するために実行することができる。
必要とするポート・コマンドが実行されると、該データ
転送プロセスが終了するまで、前記ポートのそれ以上の
コマンドは実行することができない。システムによって
は、ポートを介してデータを転送するピンポン・バッフ
ァを用いることができる。前記の場合、もしポートの1
チャネルが活動状態であれば、他のチャネルは次の転送
のためにセットアップすることができる。ポート・コマ
ンド・キュー96で待っているポート・コマンドは他の
バッファを準備するために実行することができる。
【0036】ポートの各々はポート・コマンド・キュー
96と同様に循環バッファから成る対応するポート応答
キュー98も持っている。ポート応答キュー98はシス
テムが処理せねばならない対応するポートによって生成
されたエントリーを含む。もしポートのシステム・バス
DMA転送が実行中であれば、該ポートが生成している
全ての前記応答はポート応答キュー98に送付されねば
ならない。そのうえ、もしポートが非活動状態であれば
、所定の事象の発生によって活動化させるために該ポー
トによって生成された全ての応答は適切なポート応答キ
ュー98に送付される。
96と同様に循環バッファから成る対応するポート応答
キュー98も持っている。ポート応答キュー98はシス
テムが処理せねばならない対応するポートによって生成
されたエントリーを含む。もしポートのシステム・バス
DMA転送が実行中であれば、該ポートが生成している
全ての前記応答はポート応答キュー98に送付されねば
ならない。そのうえ、もしポートが非活動状態であれば
、所定の事象の発生によって活動化させるために該ポー
トによって生成された全ての応答は適切なポート応答キ
ュー98に送付される。
【0037】アダプタ・メモリ30内には、スケジュー
ラ、種々のスケジュールされたタスク及び割込みハンド
ラの実行可能コード100もある。技術的に既知の一時
変数記憶に用いる幾つかの他の位置はアダプタ・メモリ
30にあるが、図7には特に図示しない。スケジューラ
作業テーブル50もメモリ30に含まれる。
ラ、種々のスケジュールされたタスク及び割込みハンド
ラの実行可能コード100もある。技術的に既知の一時
変数記憶に用いる幾つかの他の位置はアダプタ・メモリ
30にあるが、図7には特に図示しない。スケジューラ
作業テーブル50もメモリ30に含まれる。
【0038】図8はシステム・バスDMAタスクの動作
を示す。前述のように、システム・バスDMAタスクは
スケジューラ作業テーブル50を他のレベルとは異なる
ように使用し、スケジューラ作業テーブル・エントリー
は、タスクがスケジュールされるポートを識別するので
はなく、スケジュールされるタスクの数を示す。システ
ム・バスDMAタスクがスケジュールされると、要求さ
れたタスクの表示は別のデータ構造(図示せず)に記憶
され、該スケジュールされたシステム・バスDMAタス
クの1つは希望する任意の優先順位方式により選択され
る。
を示す。前述のように、システム・バスDMAタスクは
スケジューラ作業テーブル50を他のレベルとは異なる
ように使用し、スケジューラ作業テーブル・エントリー
は、タスクがスケジュールされるポートを識別するので
はなく、スケジュールされるタスクの数を示す。システ
ム・バスDMAタスクがスケジュールされると、要求さ
れたタスクの表示は別のデータ構造(図示せず)に記憶
され、該スケジュールされたシステム・バスDMAタス
クの1つは希望する任意の優先順位方式により選択され
る。
【0039】ひとたびシステム・バスDMAタスクが開
始されると、該転送が行われている間に他のアダプタ処
理を開始することができる。スケジューラはできればレ
ベル0をスケジュールしようと試みるから、システム・
バスDMA転送の期間はレベル0のエントリーを0にセ
ットする必要がある。従って、図8で、選択されたシス
テム・バスDMAタスクが実行する最初のステップ10
8は、スケジューラ作業テーブル50のレベル0に反映
される現在のDMAカウントを保管することである。次
に、ステップ110でスケジューラ作業テーブル50の
レベル0に0が入力され、ステップ112でシステム・
バスDMAタスクが開始される。ステップ112でひと
たびDMAが開始されると、制御はスケジューラに戻り
、新たに実行されるタスクを選択する。
始されると、該転送が行われている間に他のアダプタ処
理を開始することができる。スケジューラはできればレ
ベル0をスケジュールしようと試みるから、システム・
バスDMA転送の期間はレベル0のエントリーを0にセ
ットする必要がある。従って、図8で、選択されたシス
テム・バスDMAタスクが実行する最初のステップ10
8は、スケジューラ作業テーブル50のレベル0に反映
される現在のDMAカウントを保管することである。次
に、ステップ110でスケジューラ作業テーブル50の
レベル0に0が入力され、ステップ112でシステム・
バスDMAタスクが開始される。ステップ112でひと
たびDMAが開始されると、制御はスケジューラに戻り
、新たに実行されるタスクを選択する。
【0040】しばらくして、ステップ114でシステム
・バスDMA転送が終了する。この時点で、追加のタス
クをステップ116でスケジュールする必要がある。そ
してスケジューラ作業テーブル50のレベル0エントリ
ーがステップ118で復元される。テーブル50のレベ
ル0に戻される値はそれが復元される前に減分されるこ
とが望ましい。
・バスDMA転送が終了する。この時点で、追加のタス
クをステップ116でスケジュールする必要がある。そ
してスケジューラ作業テーブル50のレベル0エントリ
ーがステップ118で復元される。テーブル50のレベ
ル0に戻される値はそれが復元される前に減分されるこ
とが望ましい。
【0041】もしデータをホスト・システムからアダプ
タ22に転送するDMA送信が発生していれば、ポート
・コマンド・キュー96にかかっているロック(後で説
明する)を外す必要がある。そしてポート・コマンド・
キューのタスクがスケジュールされる。データをアダプ
タ22からホスト・システムに転送するDMA受信が終
了すると、ポート応答キュー98のタスクがスケジュー
ルされる。そして当該ポートの応答事象のポート応答キ
ュー98への送付を生じる大域フラグがクリアされ、ポ
ート応答を通常通り処理することができる。これらの動
作の全てはステップ116で行われる。
タ22に転送するDMA送信が発生していれば、ポート
・コマンド・キュー96にかかっているロック(後で説
明する)を外す必要がある。そしてポート・コマンド・
キューのタスクがスケジュールされる。データをアダプ
タ22からホスト・システムに転送するDMA受信が終
了すると、ポート応答キュー98のタスクがスケジュー
ルされる。そして当該ポートの応答事象のポート応答キ
ュー98への送付を生じる大域フラグがクリアされ、ポ
ート応答を通常通り処理することができる。これらの動
作の全てはステップ116で行われる。
【0042】図9はデータ送信タスクの動作を示す。フ
レーム割込みの終りがポートによる送信動作の終了を示
すとき、このタスクがスケジュールされる。最初にステ
ップ120で、タスクは関連情報をポート制御ブロック
に入れて終了を合図する。そしてステップ122で、送
信バッファがクリアされ自由になる。ステップ124で
、スケジューラ作業テーブル50に適切なビットをセッ
トすることによりポート・コマンド・キューのタスクが
スケジュールされる。もしステップ126でもう1つの
フレームが送信可能であれば、ステップ128で送信を
開始し、タスクは終了する。もしステップ126で送信
可能なフレームがなければ、タスクは単にリターンする
。
レーム割込みの終りがポートによる送信動作の終了を示
すとき、このタスクがスケジュールされる。最初にステ
ップ120で、タスクは関連情報をポート制御ブロック
に入れて終了を合図する。そしてステップ122で、送
信バッファがクリアされ自由になる。ステップ124で
、スケジューラ作業テーブル50に適切なビットをセッ
トすることによりポート・コマンド・キューのタスクが
スケジュールされる。もしステップ126でもう1つの
フレームが送信可能であれば、ステップ128で送信を
開始し、タスクは終了する。もしステップ126で送信
可能なフレームがなければ、タスクは単にリターンする
。
【0043】図10はデータ受信タスクにより実行され
るステップを示す。最初にステップ130で、通信ポー
トに用いる通信プロトコルを特に処理するためにコード
化されている手順が呼出される。通信ポートに用いるプ
ロトコルは対応するポート制御ブロック94に含まれた
適切な値で指示される。ブロック132に示すステップ
は実際にプロトコル特定手順によって実行される。受信
フレームはステップ134で処理され、ステップ136
で適切なエントリーがポート応答キュー98に加えられ
る。もし受信データ・フレーム内に誤りが起これば、誤
り/状況タスクをスケジュールできる。
るステップを示す。最初にステップ130で、通信ポー
トに用いる通信プロトコルを特に処理するためにコード
化されている手順が呼出される。通信ポートに用いるプ
ロトコルは対応するポート制御ブロック94に含まれた
適切な値で指示される。ブロック132に示すステップ
は実際にプロトコル特定手順によって実行される。受信
フレームはステップ134で処理され、ステップ136
で適切なエントリーがポート応答キュー98に加えられ
る。もし受信データ・フレーム内に誤りが起これば、誤
り/状況タスクをスケジュールできる。
【0044】図11は誤り/状況タスクにより実行され
るステップを示す。ステップ140で誤り識別子は割込
みハンドラによってポート制御ブロック94にコピーさ
れ、誤りが生じたポートは当該ポートを後にアクセスす
るタスクを指示する。誤り識別子は発生した誤りのタイ
プを指示する。ステップ142で対応する可能な誤りソ
ースが検査される。ひとたび誤りのソースが識別される
と、ステップ144で当該ポートのポート応答キュー9
8に適切なエントリーが加えられる。これらのエントリ
ーの処理が終了すると、該ポート誤りはホスト・システ
ム10に通知される。
るステップを示す。ステップ140で誤り識別子は割込
みハンドラによってポート制御ブロック94にコピーさ
れ、誤りが生じたポートは当該ポートを後にアクセスす
るタスクを指示する。誤り識別子は発生した誤りのタイ
プを指示する。ステップ142で対応する可能な誤りソ
ースが検査される。ひとたび誤りのソースが識別される
と、ステップ144で当該ポートのポート応答キュー9
8に適切なエントリーが加えられる。これらのエントリ
ーの処理が終了すると、該ポート誤りはホスト・システ
ム10に通知される。
【0045】図12はポート応答キュー98のタスクの
動作を示す。最初にステップ150でポート応答キュー
98が空であるかどうかを検査する。もし空であれば、
自動的にポート応答を該キューに再送するために用いる
フラグがステップ152でクリアされ、ポート応答は通
常の方法で処理される。そしてタスクはステップ154
でそれ自身をスケジューラ作業テーブル50からスケジ
ュール解除して終了する。もしステップ150で該キュ
ーにエントリーがあれば、ステップ156で次のエント
リーが選択される。ステップ158で次のエントリーが
ホスト・システム10へのDMA転送を必要とする応答
であるかどうかを検査する。もしそうなら、バス・マス
タDMAタスクがステップ160でスケジュールされ、
現在のタスクはステップ154でスケジュール解除され
る。もし次のエントリーがDMA転送ではないならば、
ステップ162で該ポートのタスクが非活動状態である
かどうかを検査する。もし非活動状態ではないならば、
ステップ164で該応答はホスト・システム10に送ら
れる。もしタスクが非活動状態であるならば、ステップ
166で非活動状態/活動化タスクがスケジュールされ
、現在のタスクはステップ154でスケジュール解除さ
れる。
動作を示す。最初にステップ150でポート応答キュー
98が空であるかどうかを検査する。もし空であれば、
自動的にポート応答を該キューに再送するために用いる
フラグがステップ152でクリアされ、ポート応答は通
常の方法で処理される。そしてタスクはステップ154
でそれ自身をスケジューラ作業テーブル50からスケジ
ュール解除して終了する。もしステップ150で該キュ
ーにエントリーがあれば、ステップ156で次のエント
リーが選択される。ステップ158で次のエントリーが
ホスト・システム10へのDMA転送を必要とする応答
であるかどうかを検査する。もしそうなら、バス・マス
タDMAタスクがステップ160でスケジュールされ、
現在のタスクはステップ154でスケジュール解除され
る。もし次のエントリーがDMA転送ではないならば、
ステップ162で該ポートのタスクが非活動状態である
かどうかを検査する。もし非活動状態ではないならば、
ステップ164で該応答はホスト・システム10に送ら
れる。もしタスクが非活動状態であるならば、ステップ
166で非活動状態/活動化タスクがスケジュールされ
、現在のタスクはステップ154でスケジュール解除さ
れる。
【0046】図13はポート・コマンド・キュー96の
タスクにより実行されるステップを示す。一般に、この
タスクはポート・コマンド・キュー96で次のエントリ
ーを選択し実行する。種々の事象の発生は次のポート・
コマンド・エントリーの実行を妨げることがある。最初
に、ステップ170でポート・コマンド・キュー96か
ら次のエントリーを選択する。もしステップ172で次
のエントリーがロックされていなければ、システム・バ
スDMA動作を必要とするかどうかをステップ174で
検査する。前期動作が必要ではなく且つステップ176
でポートが使用可能であれば、ステップ177で次のデ
ータ・ブロックの送信がセットアップされ、ステップ1
78でデータ送信タスクがスケジュールされる。前述の
ように、もしポート毎に2つのピンポン・バッファが設
けられるならば、送信は2つまで前処理することができ
る。
タスクにより実行されるステップを示す。一般に、この
タスクはポート・コマンド・キュー96で次のエントリ
ーを選択し実行する。種々の事象の発生は次のポート・
コマンド・エントリーの実行を妨げることがある。最初
に、ステップ170でポート・コマンド・キュー96か
ら次のエントリーを選択する。もしステップ172で次
のエントリーがロックされていなければ、システム・バ
スDMA動作を必要とするかどうかをステップ174で
検査する。前期動作が必要ではなく且つステップ176
でポートが使用可能であれば、ステップ177で次のデ
ータ・ブロックの送信がセットアップされ、ステップ1
78でデータ送信タスクがスケジュールされる。前述の
ように、もしポート毎に2つのピンポン・バッファが設
けられるならば、送信は2つまで前処理することができ
る。
【0047】多くの場合、システム・バスDMA転送を
実行しアダプタ22にデータを転送した後にデータを送
信することができる。もしステップ174の検査結果が
肯定応答であれば、ステップ180で適切なシステムD
MA動作をスケジュールし、ステップ182で現に選択
されたポート・コマンド・キュー96のエントリーをロ
ックする必要がある。そしてこのポートのレベル5のタ
スクはステップ184でスケジュール解除される。図8
に関連して前述したように、システム・バスDMAタス
クの終了により、ステップ182でセットされたロック
が外され、このポートのポート・コマンド・キューのタ
スクは再びスケジュールされる。図13の次回のプロセ
スでは、ステップ174のシステムDMA検査の結果は
否定応答になる。もしステップ172で次のエントリー
がロックされているか又はステップ176で該ポートが
使用できなければ、制御はステップ184に移り、ステ
ップ184でこのポートのスケジューラ作業テーブル5
0内のレベル5のエントリーはスケジュール解除される
。
実行しアダプタ22にデータを転送した後にデータを送
信することができる。もしステップ174の検査結果が
肯定応答であれば、ステップ180で適切なシステムD
MA動作をスケジュールし、ステップ182で現に選択
されたポート・コマンド・キュー96のエントリーをロ
ックする必要がある。そしてこのポートのレベル5のタ
スクはステップ184でスケジュール解除される。図8
に関連して前述したように、システム・バスDMAタス
クの終了により、ステップ182でセットされたロック
が外され、このポートのポート・コマンド・キューのタ
スクは再びスケジュールされる。図13の次回のプロセ
スでは、ステップ174のシステムDMA検査の結果は
否定応答になる。もしステップ172で次のエントリー
がロックされているか又はステップ176で該ポートが
使用できなければ、制御はステップ184に移り、ステ
ップ184でこのポートのスケジューラ作業テーブル5
0内のレベル5のエントリーはスケジュール解除される
。
【0048】図14はタスクがそれ自身を非活動化し次
いで活動化されるときに実行されるステップを示す。最
初にステップ190でポートの SLEEP−ENAB
LE(非活動化イネーブル) 変数がセットされる。タ
スクはステップ191で非活動状態に移行し、ステップ
192で該ポートの現在のコンテキスト(情況)はスタ
ックに保管される。SLEEP−ENABLE変数をス
テップ190でセットすることにより、該ポートで生成
された応答はどれもポート応答キュー98に送られる。 そして非活動状態に移行しているタスクはステップ19
4で脱出し、他の処理が行われる。他の処理が行われて
いる間、ステップ192で保管されたコンテキストはそ
のままポート・スタック92に残る。
いで活動化されるときに実行されるステップを示す。最
初にステップ190でポートの SLEEP−ENAB
LE(非活動化イネーブル) 変数がセットされる。タ
スクはステップ191で非活動状態に移行し、ステップ
192で該ポートの現在のコンテキスト(情況)はスタ
ックに保管される。SLEEP−ENABLE変数をス
テップ190でセットすることにより、該ポートで生成
された応答はどれもポート応答キュー98に送られる。 そして非活動状態に移行しているタスクはステップ19
4で脱出し、他の処理が行われる。他の処理が行われて
いる間、ステップ192で保管されたコンテキストはそ
のままポート・スタック92に残る。
【0049】新しい事象がポート応答キュー98に加え
られると、ポート応答キュー98のタスクは非活動状態
のタスクを活動化し、ステップ196で前記コンテキス
トはスタックから復元される。ステップ198でこの活
動化事象が終末条件に達したかどうかを判定する検査が
行われる。もし達していなければ、タスクは単にステッ
プ191に戻り非活動状態に移行する。もし前記事象に
より実際にタスクが活動化されれば、ステップ200で
その実行が再開される。タスクが終了すると、SLEE
P−ENABLE変数はリセットされる。タスクはその
実行中の後の段階でそれ自身を再び非活動状態にし、前
述のシーケンスの事象を反復させることができる。
られると、ポート応答キュー98のタスクは非活動状態
のタスクを活動化し、ステップ196で前記コンテキス
トはスタックから復元される。ステップ198でこの活
動化事象が終末条件に達したかどうかを判定する検査が
行われる。もし達していなければ、タスクは単にステッ
プ191に戻り非活動状態に移行する。もし前記事象に
より実際にタスクが活動化されれば、ステップ200で
その実行が再開される。タスクが終了すると、SLEE
P−ENABLE変数はリセットされる。タスクはその
実行中の後の段階でそれ自身を再び非活動状態にし、前
述のシーケンスの事象を反復させることができる。
【0050】非活動状態のタスクの活動化はスケジュー
ル可能な最下位レベルのタスクであるから、前記タスク
が活動化されたとき、ホスト・システム10はステップ
192でスタックに保管されたコンテキストをスタック
の最上部のフレームとして取得することが保証される。 活動化は他のタスク又は割込みによってもスケジュール
され、スケジューラ作業テーブル50のレベル6に適切
なビットをセットする。
ル可能な最下位レベルのタスクであるから、前記タスク
が活動化されたとき、ホスト・システム10はステップ
192でスタックに保管されたコンテキストをスタック
の最上部のフレームとして取得することが保証される。 活動化は他のタスク又は割込みによってもスケジュール
され、スケジューラ作業テーブル50のレベル6に適切
なビットをセットする。
【0051】前述のシステムはアダプタ22で種々の通
信サブタスクの優先順位スケジューリングを可能にする
。支援可能な優先順位レベルの数及び通信ポート数は基
本的なスケジューラを変更することなく容易に拡張され
る。良好な実施例のアダプタは2つの異なるレベルのD
MA転送を支援する。1つのレベルはアダプタ・バス2
6によって実行されるDMA転送であり、もう1つのレ
ベルはシステム・バス・インタフェース24によって実
行されるシステム・バス16によるDMA転送である。
信サブタスクの優先順位スケジューリングを可能にする
。支援可能な優先順位レベルの数及び通信ポート数は基
本的なスケジューラを変更することなく容易に拡張され
る。良好な実施例のアダプタは2つの異なるレベルのD
MA転送を支援する。1つのレベルはアダプタ・バス2
6によって実行されるDMA転送であり、もう1つのレ
ベルはシステム・バス・インタフェース24によって実
行されるシステム・バス16によるDMA転送である。
【0052】タスクは時間的に最も重要なタスクが最高
の優先順位を持つように良好なスケジューラ作業テーブ
ル50によって優先順位が決められている。通信ポート
によるデータ損失を避けるためにタイミングよく実行す
る必要があるデータ送信タスク及びデータ受信タスクは
、キュー96及びキュー98に配列された種々のコマン
ド及び応答の処理よりも高い優先順位を有する。それ自
身を非活動状態にするタスクは、当該タスクの時間が重
要な要素ではないことを意味し、全体のうちで最低の優
先順位を有する。システム・バスDMA転送は1つの資
源が全てのポート間で共用されるので隘路になる傾向が
あり、従ってシステム・バスDMAタスクは最高の優先
順位が与えられる。システム・バスDMA転送が行われ
ている間に他のタスクがアダプタ22で実行される機構
が設けられる。優先順位レベル毎にラウンドロビン方式
が用いられるから、ポートが不足することはない。
の優先順位を持つように良好なスケジューラ作業テーブ
ル50によって優先順位が決められている。通信ポート
によるデータ損失を避けるためにタイミングよく実行す
る必要があるデータ送信タスク及びデータ受信タスクは
、キュー96及びキュー98に配列された種々のコマン
ド及び応答の処理よりも高い優先順位を有する。それ自
身を非活動状態にするタスクは、当該タスクの時間が重
要な要素ではないことを意味し、全体のうちで最低の優
先順位を有する。システム・バスDMA転送は1つの資
源が全てのポート間で共用されるので隘路になる傾向が
あり、従ってシステム・バスDMAタスクは最高の優先
順位が与えられる。システム・バスDMA転送が行われ
ている間に他のタスクがアダプタ22で実行される機構
が設けられる。優先順位レベル毎にラウンドロビン方式
が用いられるから、ポートが不足することはない。
【0053】
【発明の効果】以上説明したように本発明によれば、ホ
スト・コンピュータ・システムで通信ポート・アダプタ
として用いるのに適したシステムを提供することができ
る。
スト・コンピュータ・システムで通信ポート・アダプタ
として用いるのに適したシステムを提供することができ
る。
【図1】図2のシステムで使用する良好な直列通信アダ
プタのブロック図である。
プタのブロック図である。
【図2】本発明を適用することのできるホスト・コンピ
ュータ・システムのブロック図である。
ュータ・システムのブロック図である。
【図3】本発明による良好なスケジューラ作業テーブル
を示す図である。
を示す図である。
【図4】良好なアダプタ・システムにおけるタスク実行
の流れ図である。
の流れ図である。
【図5】良好なアダプタ・システムにおける割込みの流
れ図である。
れ図である。
【図6】良好なアダプタ・システムにおける割込みの流
れ図である。
れ図である。
【図7】良好なアダプタに含まれたメモリの内容を示す
図である。
図である。
【図8】本発明によりスケジュール可能な選択機能の動
作の流れ図である。
作の流れ図である。
【図9】本発明によりスケジュール可能な選択機能の動
作の流れ図である。
作の流れ図である。
【図10】本発明によりスケジュール可能な選択機能の
動作の流れ図である。
動作の流れ図である。
【図11】本発明によりスケジュール可能な選択機能の
動作の流れ図である。
動作の流れ図である。
【図12】本発明によりスケジュール可能な選択機能の
動作の流れ図である。
動作の流れ図である。
【図13】本発明によりスケジュール可能な選択機能の
動作の流れ図である。
動作の流れ図である。
【図14】本発明によりスケジュール可能な選択機能の
動作の流れ図である。
動作の流れ図である。
10 ホスト・システム
12 中央プロセッサ
14 メイン・メモリ
16 システム・バス
18 ユーザ・インタフェース入出力装置20 大
容量記憶入出力装置 22 直列入出力アダプタ 24 システム・バス・インタフェース26 アダ
プタ・バス 28 中央プロセッサ 30 アダプタ・メモリ 32 直列ポート・インタフェース 34 直列ポート・インタフェース 36 直列ポート・インタフェース 38 直列ポート・インタフェース 40 直列ポートDMA制御装置 50 スケジューラ作業テーブル 90 送受信バッファ 91 ベクトル・テーブル 92 スタック 93 スタック 94 ポート制御ブロック 96 ポート・コマンド・キュー 98 ポート応答キュー 100 実行可能コード
容量記憶入出力装置 22 直列入出力アダプタ 24 システム・バス・インタフェース26 アダ
プタ・バス 28 中央プロセッサ 30 アダプタ・メモリ 32 直列ポート・インタフェース 34 直列ポート・インタフェース 36 直列ポート・インタフェース 38 直列ポート・インタフェース 40 直列ポートDMA制御装置 50 スケジューラ作業テーブル 90 送受信バッファ 91 ベクトル・テーブル 92 スタック 93 スタック 94 ポート制御ブロック 96 ポート・コマンド・キュー 98 ポート応答キュー 100 実行可能コード
Claims (14)
- 【請求項1】複数の通信ポートとホスト・システムの間
のデータ転送を制御する方法であって、該ポートと中間
メモリの間、及び中間メモリとホスト・システムの間の
データ転送の部分を実行する複数のタスクを規定し、優
先順位を該規定されたタスクに割当て、該ポートで起き
る事象に応答してホスト・システム内で実行されるタス
クをスケジュールし、且つタスクが終了すると、次に実
行するタスクとして全てのスケジュールされたタスクの
中から最高優先順位を持つタスクを選択するデータ転送
制御方法。 - 【請求項2】請求項1記載の方法であって、ラウンドロ
ビン方式を用いてスケジュールされる全てのポートのタ
スクが実行されるデータ転送制御方法。 - 【請求項3】請求項1記載の方法であって、前記スケジ
ューリング・ステップは、対応するテーブル・エントリ
ーに情報を書込むことによって、スケジュールされる各
々の規定されたタスクのエントリーを取得するテーブル
を供給するステップを含むデータ転送制御方法。 - 【請求項4】請求項3記載の方法であって、テーブル内
の少なくとも1つのエントリーはポートのうちの1つに
各々が対応する複数のサブエントリーを有し、対応する
サブエントリーに情報を書込むことによって、実行され
るポートのタスクがスケジュールされるデータ転送制御
方法。 - 【請求項5】請求項4記載の方法であって、各々のサブ
エントリーは1つのデータ・ビットを含むデータ転送制
御方法。 - 【請求項6】請求項3記載の方法であって、テーブル内
の少なくとも1つのエントリーは対応するタスクがスケ
ジュールされた回数のカウントを表わし、該エントリー
内の値を増分することによりタスクがスケジュールされ
るデータ転送制御方法。 - 【請求項7】請求項1記載の方法であって、タスクをス
ケジュールする事象はホスト・システム又はポートによ
って呼出されるハードウェア割込みを含むデータ転送制
御方法。 - 【請求項8】請求項7記載の方法であって、タスクをス
ケジュールする事象は更にスケジュールされたタスクの
実行を含むデータ転送制御方法。 - 【請求項9】複数の通信ポートとホスト・システムをイ
ンタフェースするインタフェース・システムであって、
ホスト・システムとのインタフェース、中間メモリ、該
インタフェース・システムの動作を制御するプロセッサ
、複数の通信ポート、前記ホスト・インタフェース、前
記中間メモリ、前記プロセッサ及び前記通信ポートを接
続するバス、前記プロセッサによって実行される複数の
通信タスク及び前記タスクの実行をスケジュールする手
段を含むインタフェース・システム。 - 【請求項10】請求項9記載のシステムであって、通信
タスクの各々は優先順位レベルを割当てられ、より高い
優先順位レベルを有するスケジュールされたタスクはよ
り低い優先順位を有するスケジュールされたタスクより
も前に実行されるインタフェース・システム。 - 【請求項11】請求項10記載のシステムであって、前
記スケジュールする手段は前記タスクに対応するエント
リーを有するテーブルを含み、対応するテーブル・エン
トリーに情報を書込むことによってタスクがスケジュー
ルされるインタフェース・システム。 - 【請求項12】請求項11記載のシステムであって、ホ
スト・システム及び前記通信ポートによって生じた割込
みに応答して該テーブル・エントリーに情報が書込まれ
るインタフェース・システム。 - 【請求項13】請求項12記載のシステムであって、タ
スクを実行することによってテーブル・エントリーにも
情報が書込まれるインタフェース・システム。 - 【請求項14】請求項11記載のシステムであって、少
なくとも1つのエントリーは前記通信ポートの1つに各
々が対応する複数のビットを含み、実行される前記ポー
トの1つのタスクはその対応するビットに書込むことに
よってスケジュールされるインタフェース・システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40177690A JPH04215160A (ja) | 1990-12-13 | 1990-12-13 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP40177690A JPH04215160A (ja) | 1990-12-13 | 1990-12-13 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04215160A true JPH04215160A (ja) | 1992-08-05 |
Family
ID=18511605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP40177690A Pending JPH04215160A (ja) | 1990-12-13 | 1990-12-13 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04215160A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095136A (ko) | 2013-12-13 | 2016-08-10 | 에누티에누 가부시키가이샤 | 내접 톱니바퀴 펌프 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62219057A (ja) * | 1986-03-20 | 1987-09-26 | Nec Corp | デ−タ送信装置 |
-
1990
- 1990-12-13 JP JP40177690A patent/JPH04215160A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62219057A (ja) * | 1986-03-20 | 1987-09-26 | Nec Corp | デ−タ送信装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160095136A (ko) | 2013-12-13 | 2016-08-10 | 에누티에누 가부시키가이샤 | 내접 톱니바퀴 펌프 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5247671A (en) | Scalable schedules for serial communications controller in data processing systems | |
EP0617361B1 (en) | Scheduling method and apparatus for a communication network | |
US5940612A (en) | System and method for queuing of tasks in a multiprocessing system | |
US5513368A (en) | Computer I/O adapters for programmably varying states of peripheral devices without interfering with central processor operations | |
US6182120B1 (en) | Method and system for scheduling queued messages based on queue delay and queue priority | |
US7124207B1 (en) | I2O command and status batching | |
EP0426323B1 (en) | Portable, resource sharing file server using co-routines | |
US5471618A (en) | System for classifying input/output events for processes servicing the events | |
US5619647A (en) | System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait | |
EP0362105A2 (en) | Method for processing program threads of a distributed application program by a host computer and an intelligent work station in an SNA LU 6.2 network environment | |
US5513328A (en) | Apparatus for inter-process/device communication for multiple systems of asynchronous devices | |
US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
JPH04264947A (ja) | マルチタスキング・データ処理システム | |
EP0249116B1 (en) | Method for controlling data transfer buffer | |
US6961934B2 (en) | Portable thread environment | |
US8090801B1 (en) | Methods and apparatus for performing remote access commands between nodes | |
WO2000023891A1 (en) | A processor | |
WO2020080882A1 (en) | Method for handling kernel service request for interrupt routines in multi-core environment and electronic device thereof | |
JP2566719B2 (ja) | データ通信インタフエース及びその動作方法 | |
JPH04215160A (ja) | 情報処理装置 | |
JP2000502202A (ja) | 命令プロセッサのジョブスケジューリング | |
JPH08202566A (ja) | プロセス間通信システム | |
US6704765B1 (en) | System for allocating resources among agent processes | |
JPH11327793A (ja) | 記憶制御装置 | |
JP2937552B2 (ja) | タスク・スケジューリング方式及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990713 |