JPH05508037A - 端末装置とユーザプログラムとの間のデータ通信を実現するための装置および方法 - Google Patents
端末装置とユーザプログラムとの間のデータ通信を実現するための装置および方法Info
- Publication number
- JPH05508037A JPH05508037A JP91511004A JP51100491A JPH05508037A JP H05508037 A JPH05508037 A JP H05508037A JP 91511004 A JP91511004 A JP 91511004A JP 51100491 A JP51100491 A JP 51100491A JP H05508037 A JPH05508037 A JP H05508037A
- Authority
- JP
- Japan
- Prior art keywords
- data
- message
- processor
- ring buffer
- response
- 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
- 230000006854 communication Effects 0.000 title claims description 153
- 238000004891 communication Methods 0.000 title claims description 150
- 238000000034 method Methods 0.000 title claims description 95
- 239000000872 buffer Substances 0.000 claims description 141
- 230000004044 response Effects 0.000 claims description 71
- 230000008569 process Effects 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 46
- 238000012546 transfer Methods 0.000 claims description 20
- 230000002596 correlated effect Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 230000000875 corresponding effect Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 206010048669 Terminal state Diseases 0.000 description 8
- 230000007958 sleep Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000010561 standard procedure Methods 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 240000008100 Brassica rapa Species 0.000 description 1
- 241000736839 Chara Species 0.000 description 1
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical group [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 239000011574 phosphorus Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 235000021419 vinegar Nutrition 0.000 description 1
- 239000000052 vinegar Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Compositions Of Macromolecular Compounds (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
端末装置とユーザプログラムとの間の
データ通信を実現するための装置および方法マイクロフィッシュアペンディクス
は3つのマイクロフィッシュを含むこの出願に含まれている。マイクロフィッシ
ュ番号1は97のフレームプラス1つのテスト目的フレームの全98フレームを
含む。マイクロフィッシュ番号2は97のフレームプラス1つのテスト目的フレ
ームの全98フレームを含む。マイクロフィッシュ番号3は51フレームプラス
1つのテスト目的フレームの全52フレームを含む。
この特許書類の一部分は著作権保護を受ける資料を含む。
所有者は特許庁のファイルまたは記録に現われる特許書類または特許の開示をだ
れかがファクシミリ再現することに異議はないが、そうでない場合はすべての権
利を有する。
発明の分野
この発明は遠隔端末をホストコンピュータに結合させるためのインターフェース
、および特にユニックス(UNIXTM)(AT&Tの登録商標である)オペレ
ーティングシステムに基づくコンピュータシステムにとって特別に有用であるイ
ンターフェースに関連する。
発明の背景
ユニックスオペレーティングシステムの制御下で動作するコンピュータシステム
において、ユーザ端末装置は人間のオペレータに対して原理インターフェースを
与える。このインターフェースを可能な限り応答性の高いものにするために、こ
れらのユーザ端末装置に対する入力および出力(、I 10)動作は特別な技術
で取扱われる。これらの技術は一般に以下で述べるものである。より詳細な記述
はシー中ショウ(C,Shaw)その他による「ユニックス内部Aシステムオペ
レーションハンドブック(UNIXTl″Internals A S7S75
fe 0peration Handbook ) Jと題された。タブ・ブッ
クス(Tab Books) 、ブルー・リッジ・サミット(Blue Rid
ge Summit ) 、PAの本の131−145頁に含まれており、これ
らの頁はここで引用により援用されている。
通常動作において、ユニックスオペレーティングシステムは各ユーザ端末装置の
ために3つの文字リスト(Cリスト)を維持する。これらのCリストの1つ、す
なわち出力Cリストは表示のために端末装置に送られるべきデータを含む。第2
のCリストである主入力Cリストは、ユーザ端末によって与えられるデータを生
の形で含む。このデータはキーストロークの形である。もしたとえば第1の文字
がタイプされバックスペースキーを用いることによって第2の文字に置換えられ
るなら、生データは、第1のキーが押されそれに続いてバックスペースキーそし
て第2のキーという表示を含むであろう。
第3のCリスト、標準データCリスト、は、標準的に処理されたユーザ端末から
のデータを含む。標準処理はキーストロークデータを文字データに変換する。そ
うする際に、標準処理はデータを固定して、バックスペース、改行およびライン
削除のようなキーストロークを編集する影響を組込む。
ユーザ端末にデータを送るまたはそれからデータを受信するリクエストに応答し
て、典型的なユニックスオペレーティングシステムに基づくコンピュータシステ
ムのホストプロセッサはデータを一度に1文字処理する。ホストプロセッサは各
キーストロークがユーザ端末で行なわれたときに割込まれ、そのキーストローク
を生Cリストにロードする。キャリッジリターンキーストロークが受信された場
合、または十分な数のキーストロークが蓄積した場合、ホストプロセッサは一度
に1つキーストロークを読出して標準処理を行なう。
ユーザ端末からのI10動作はホストプロセッサ上で実行している他のタスクと
比較して相対的に高い優先順位で取扱われる。これらの動作はユーザがコンピュ
ータからの受入可能な応答レベルを知覚することを確実にするような態様で取扱
われる。
ユーザ端末装置を管理するこの「バンズオン」アプローチは、コンピュータの処
理資源のかなりの大部分がこれらの端末I10動作によって独占されることを結
果としてもたらすかもしれない。この型の独占は、たとえば、多数のユーザ端末
がかなり大量のデータの表示をリクエストし、−万能の端末のユーザがその端末
にかなり大量のデータを同時に入力している場合などに発生し得る。
この問題に対する1つの解決策はいわゆる「インテリジェント」端末プロセッサ
をホストシステムに結合することであった。これらのプロセッサは内部バッファ
でキーストロークを集め、あるイベントが発生した場合にバッファをホストプロ
セッサに送る。これらのイベントは、たとえば、キャリッジリターンキーストロ
ーク、プリセット最大より大きなキーストローク間のポーズ、または予め定めら
れた数のキーストロークの収集などを含み得る。これらのイベントのうちの1つ
が発生したときにはいつでも、端末プロセッサは収集された文字ブロックをホス
トプロセッサの生Cリストに転送する。ホストプロセッサはそれからキーストロ
ークを標準的に処理して、標準データCリストのための文字データを生出す。
このように、ホストプロセッサはユーザ端末からの文字ごとの割込みを取扱うと
いう負担から解放されたが、ホストプロセッサは依然としてキーストローク上で
標準処理を行ない、端末を動作させるのに必要な任意の制御機能を実現化する。
加えて、ホストは依然としてたとえばデータがホストへの転送の用意ができてい
ることを示す「インテリジェント」端末プロセッサによって発生された割込に応
答する。このホストと遠隔ユーザ端末との間のこの低減されたレベルのインタラ
クションでさえ、全体のコンピュータシステムの外見上の性能における著しい低
減を生じ得る。
さらに、この構成においてさえ、多くのユニックスオペレーティングシステムに
基づくコンピュータシステムは、データ転送を行なうために定期的にポーリング
される端末装置を取扱うことができない。これらの端末はデータ転送を制御する
ための割込を発生しない。この型の端末は遠隔装置のポーリングを可能にするよ
うに修正された端末110機能を有するユニックスオペレーティングシステムに
基づくコンピュータによって取扱われ得る。代替的に、端末とホストとの間にハ
ードウェアが付加され、定期的に端末をポーリングし、かつ適当なときにホスト
プロセッサへの割込をシミュレートすることが可能である。
発明の概要
この発明はユニックスオペレーティングシステムの制御下で動作するコンピュー
タシステムで実施される。このコンピュータシステムはユーザ端末装置へのI1
0動作を実行するためのホストプロセッサに加えて通信プロセッサを含む。通信
プロセッサはホストプロセッサと共用される一群のメモリ記憶セルに結合される
。端末110機能は通信プロセッサが端末からの割込を取扱い、端末によって与
えられた文字流れデータをデータバッファで保持されるデータに変換するように
通信プロセッサとホストとの間で分割される。ホストプロセッサは定期的にデー
タバッファを調べ、端末によって与えられたデータをそれが利用可能になったと
きにデータバッファから取出す。
この発明の他の局面に従って、メツセージ通過ファシリティの実施例はホストプ
ロセッサと通信プロセッサとの間で実現化される。この実施例はその中にメツセ
ージデータがホストプロセッサによって置かれる環状のキューを含む。
このメツセージデータはホストプロセッサから通信プロセッサへのタスクリクエ
ストを表わす。このキューはメツセージデータを取除き、リクエストされたタス
クを実行する通信プロセッサによって定期的に調べられる。通常動作においては
、ホストプロセッサと通信プロセッサとの間の割込みは何もこのメツセージ通過
ファシリティによって使用されない。
この発明のさらに他の局面に従って、コンピュータシステムは複数個の端末装置
のために状態データを維持するイベント論理を含む。この状態データは端末装置
がサービスされる順序を決定するために通信プロセッサによって使用される。こ
の状態データは不必要な装置ポーリングを排除することによって通信プロセッサ
の性能を著しく改良する。
図面の簡単な説明
図1はこの発明の一実施例を含むユニックスオペレーティングシステムに基づく
コンピュータシステムのブロック図である。
図1aおよび図1bは図1に示された通信プロセッサで使用するのに適したイベ
ント論理の詳細を示すブロック図である。
図2aは図1で示されたコンピュータシステムのプログラムされたホストプロセ
ッサの外見上のアーキテクチャを例示するブロック図である。
図2bは図1で示されたプログラムされた通信プロセッサの外見上のアーキテク
チャを例示するブロック図である。
図20は図1で示されたコンピュータシステムで使用されるメツセージ通過ファ
シリティの動作を説明するために有用なブロック図である。
図3は図1で示されたホストプロセッサの動作を説明するために有用なホストソ
フトウェアオープンシステムコールのフローチャート図である。
図4は図1で示されたホストプロセッサの動作を説明するために有用なホストソ
フトウェア読出システムコールのフローチャート図である。
図5は図1に示されたホストプロセッサの動作を説明するために有用なホストソ
フトウェア書込システムコールのフローチャート図である。
図6は図1に示されたホストプロセッサの動作を説明するために有用なI10制
御(IOCTL)システムコールのフローチャート図である。
図7は図1に示されたホストプロセッサの動作を説明するために有用な発行信号
応答(ISR)レベル信号メツセージ処理のフローチャート図である。
図8は図1に示されたホストプロセッサの動作を説明するめたに有用なホストソ
フトウェアクローズシステムコールのフローチャート図である。
図9は図1に示された通信プロセッサの動作を説明するために有用なウェイトド
レインメツセージに応答して実行された処理のフローチャート図である。
図10は図1に示された通信プロセッサの動作を説明するために有用な受信サー
ビスリクエストのための例証的な処理ステップのフローチャート図である。
図11は図1に示された通信プロセッサの動作を説明するために有用な送信サー
ビスリクエストを処理する際に実行される例証的なステップを例示するフローチ
ャート図である。
この発明の
好ましい実施例の詳細な説明
素!
図1に示されるコンピュータシステムの中央エレメントはホストプロセッサ10
2、共用メモリ112、通信プロセッサ124、直列コントローラ144、およ
び遠隔端末148である。動作において、ユーザプログラムの制御下で動作する
ホストプロセッサ102は遠隔端末148からデータをリクエストし、かつそれ
に送信するためのデータを発生する。
このデータは1対のリングバッファ、出力リングバッファ114および入力リン
グバッファ116を経て転送され、それらは特定端末が使用するためのデータ構
造113のセットで保持される。このコンピュータシステム上で利用可能にされ
た(つまり「オープンにされた」)各端末装置148のための独特のセットのデ
ータ構造113がある。
端末148に送られるべきデータはホストプロセッサ102によって出力リング
バッファ114に置かれる。この発明のこの実施例において、出力リングバッフ
7114は通信プロセッサ124によって定期的にモニタされ、データが端末1
48のうちの1つでの表示に利用可能であるかどうかを判別する。通信プロセッ
サが空ではない出力リングバッファ114を発見した場合、それはバッファ11
4からデータを読出し、そのデータを対応する直列コントローラ144を介して
適当な端末148に送る。
データが遠隔端末の1つで利用可能である場合、それは通信プロセッサ124に
よって端末148から直列コントローラ144を経て転送される。このデータは
入力リングバッフ7116に一度に1文字ストアされる。リングバッファ116
にデータをストアすることに加えて、通信プロセッサ124は隣接バッファ11
8に、入力データの論理分離に関する情報をストアすることが可能である。この
情報は特定の文字(たとえばキャリッジリターンまたは改行)を受信した結果と
して通常はストアされるであろうが、代替的に、それは固定数の文字が受信され
たことか、またはプリセットされた量の時間が最後の文字を受信してから経過し
たことを示してもよい。ホストプロセッサ102上で実行しているプログラムが
ある論理データブロック(たとえばタイプされたライン)をリクエストした場合
、ホストプロセッサは隣接リング118をチェックして、リクエストされたデー
タの境界を決定し、それからデータを入力リングバッファ116からホストロー
カルメモリ106のメモリ場所へ転送する。これらのメモリ場所はリクエストし
ているプログラムにアクセス可能である。
共用メモリ112における出力リングバッファ114、入力リングバッフ711
6および隣接バッファ118の組合わせは、システムに接続される各端末148
のための、ホストプロセッサ102と通信プロセッサ124との間の割込のない
データ通過ファシリティを形成する。この発明のこの実施例において、このデー
タ通過ファシリティはホストプロセッサ102と通信プロセッサ124との間で
メツセージを通すためのより一般的なユーティリティに広げられた。このメツセ
ージ通過ファシリティはこの特定の出願で開示されるが、それは任意の2つの独
立したプロセッサ間で、または共通のプロセッサ上で実行している2つの独立し
たプロセッサ間でメツセージを転送するために一般的な適用性を有する。
例証的な実施例において、メツセージリングバッファ182はメツセージを通信
プロセッサ124に送るためにホストプロセッサ102によって使用される。通
信プロセッサは次に応答リングバッファ184を使用し、メツセージをホストプ
ロセッサ102に送る。双方のプロセッサはメツセージアレイ186にアクセス
可能である。この発明のこの例証的な実施例において、共用メモリ112にはた
だ1つのメツセージリングバッファ182.1つの応答リングバッファ184お
よび1つのメツセージアレイ186しかない。
この機構を介して転送されたメツセージの機能はリクエストを伝える、または端
末148へのまたはそれからのデータと直接関連しないイベントを示すことであ
る。たとえば、ホストプロセッサ102は入力リング116が空であることを発
見すると、メツセージリングバッファ182を介して通信プロセッサ124にW
AIT DATAメツセージを通知するであろう。このメツセージに応答して、
通信プロセッサ124はリクエストされた数の文字が対応する入力リング116
に置かれた場合にホストプロセッサ102にWAIT DATAメツセージを送
る。
このメツセージ通過スキームは端末入力および出力動作のためにホストプロセッ
サ102上で低いオーバーヘッドを達成するためのキーである。このスキームを
使用して、ホストプロセッサはまず応答リングバッファ184をポーリングして
、どのイベントが発生したかを判別し、それから入力リングバッファ116から
戻されたメツセージに対応し得る任意のデータを転送する。
通信プロセッサによって割込まれることなくホストプロセッサ102が動作する
ことを可能にするための代替例として、このシステムはオプションの割込ライン
INT(図1に仮想的に示される)で構成され得る。例証的な実現化例において
、ホストプロセッサ102はI10動作が完了する時間と比較して長い規則正し
い間隔で通信プロセッサ124によって割込まれ得る。これらの割込はメツセー
ジが応答リングバッファ164でベンディングである場合にのみ与えられるであ
ろう。
上述のように、ホストプロセッサ102は通信プロセッサ124によって割込ま
れることなく動作し得る。加えて、通信プロセッサ124は直列コントローラ1
44によって割込まれることなく動作し得る。この発明のこの実施例において、
通信プロセッサ124は割込駆動された環境における同一の通信プロセッサ上で
他の態様で可能であるより速い速度でより多くの直列コントローラにサービスす
るために、通信プロセッサ124が直列コントローラをポーリングすることを可
能にする特別イベント論理158を含む。
詳細な説明
以下は図1−図9を参照するこの発明の例証的な実施例の詳細な説明である。こ
の例証的な実施例のさらなる詳細はこの明細書のアペンディクスとして含まれる
「PC−ホスト/Pc−C0MMインターフェースのためのソフトウェア設計(
Software Design lot PC−host / Pc−C0M
M Interlace ) Jと題された文献において見出され得る。
図1において、ホストCPU102およびホストローカルメモリ106はユニッ
クスオペレーティングシステムに基づくオペレーティングシステムの制御下で動
作するコンピュータを構成する。ユニックスオペレーティングシステムによって
制御される典型的なコンピュータシステムにおいて、遠隔端末への入力および出
力(Ilo)動作の初期化、終了および制御に関連する処理のすべてはホストプ
ロセッサによって取扱われる。
しかしながら、この発明のこの実施例において、ホストプロセッサ102はデー
タのブロックを送るまたは受けることにのみ関係する。実際の遠隔端末装置上で
の初期化、制御および終了動作に関係する処理ステップは通信プロセッサ124
およびその関連するメモリ134によって取扱われる。
この発明のこの実施例で使用されるホストCPU102およびホストローカルメ
モリ106は、インテル・コーポレーション(Intel coop、 )によ
って製造される80286.80386または80486マイクロプロセツサの
いずれかに基づく、多数のIBM互換性のあるパーツチルコンピュータのうちの
いずれであってもよい。図1に示されるように、ホストCPU102を制御する
ソフトウェアは通信プロセッサインターフェースソフトウェア]04を含む。こ
のソフトウェアはユニックスオペレーティングシステムに加えるものであり、通
信プロセッサとオペレーティングシステムとの間のインターフェースを与える。
2つの端末I10データ構造はホストローカルメモリ108に維持されるものと
して図1に例示される。ホスト端末状態構造はメツセージ通過情報ならびに様々
なホスト状態および同期フラグを含む。ホストプロセッサ102はまたホストロ
ーカルメモリ106の標準ユニックスオペレーティングシステムtty構造11
0を維持する。
この発明のこの実施例において、共用メモリ112はテキサス拳インストルメン
゛ン・コーポレーション(Texas Insjrumcnls Corp、
)によって製造されるTMS4256FML回路のようなデュアルポートランダ
ムアクセスメモリ(RAM)集積回路のアレイとして実現化される。これらのR
AMの内容は独立したクロック信号を使用する2つのボートの各々で読出されか
つ書込まれ得る。上述のように、入力リングバッファ114、出力リングバッフ
7116、隣接リングバッファ118および端末状態構造は共用メモリ112で
維持される。このシステムに利用可能な各端末148のためのこれらの構造のセ
ットがある。加えて、ホストプロセッサ102と通信プロセッサ124との間で
タスクリクエストおよびイベントを通すためのメツセージ通過構造180の1つ
のセットがある。
例証的な通信プロセッサはやはりインテル・コーポレーションによって製造され
る80C186マイクロプロセツサである。通信プロセッサローカルメモリは従
来のRAM集積回路を含み得る。例証的な直列コントローラ144はブロック・
インコーホレイテッド(2i1og Inc、)によって製造される285C3
0集積回路であり、例証的なタイマ回路146はインテル・コーポレーションに
よって製造される82C54集積回路である。通信プロセッサ上で実行するプロ
グラムは図1に例示される。
直列通信コントローラ(SCC)制御プログラム126は直列コントローラ14
4のためのコマンドを発生する。
ホストインターフェース128は通信プロセッサ124を共用メモリ112を介
してホストプロセッサ102と同等にする。標準処理アルゴリズム130を使用
して、通信プロセッサ124は端末装置148から受信された、およびそれに送
られたキーストローク上でユニックスオペレーティングシステム標準処理を実行
する。最後に、特定の型の端末との通信を助けるために所望され得る任意のカス
タムプロトコルは、通信プロセッサ124上で実行されるようにプログラムされ
たアルゴリズム132によって実現化される。標準処理アルゴリズム130およ
びカスタムプロトコル132は通信手順である。以下に述べられるように、これ
らの手順は直列コントローラ144ならびにリングバッファ114.116およ
び118と直接相互作用し、端末148と共用メモリ112との間のデータ転送
を行なう。
直列コントローラ144は通信プロセッサ124と遠隔端末装置148との間の
データ転送インターフェースを与える。端末146およびイベント論理158は
共用メモリ112のリングバッファ114.116および118と直列コントロ
ーラ144との間のデータのタイミングおよび移動を調整するために、標準処理
手順130およびカスタムプロトコル手順132によって使用される。
割込駆動されたシステムにおいて、コントローラ144およびタイマ回路146
は通信プロセッサ124に割込み、端末装置からの状態情報を与え、状態情報は
たとえばキーストロークが行なわれた場合、または文字が表示された場合に利用
可能である。状態情報が比較的多数の端末に対して入手され得る場合、伴って起
こる割込は著しい性能負担を意味し得る。しかしながら、もし通信プロセッサが
ポーリングスキームを使用して動作されれば、取付けられた端末装置の各々の状
態に対して直列コントローラ144の各々をポーリングする際に必要とされるか
なりのオーバーヘッドがあるかもしれない。したがって、もし端末装置のすべて
に対する状態データが多数のポーリング動作が並列して行なわれ得るように、通
信プロセッサ124に直接アクセス可能である構造で維持されれば、より効率的
であるかもしれない。
この目的のために、図1に示される処理システムは直列コントローラ144およ
びタイマ回路146を経て端末148の各々の状態をモニタするイベント論理1
58を含む。
イベント論理158によって集められた状態情報は通信プロセッサ124によっ
て処理され、通信手順130および132内のプロトコル特定ルーチンを呼出す
ために使用される。
図1aおよび図1bはイベント論理回路158がコントローラ144およびタイ
マ146とともにどのように構成されるかを例示する例証的な回路のブロック図
である。図1aは別個の続出および書込タイマが各直列チャネルに対して維持さ
れる構成を例示する。図1aにおいて、1つの直列チャネルのための回路が図示
される。5CC164は直列コントローラ144のうちの1つであり、タイマ1
60および162は図1に示されるタイマ146のうちの2つである。イベント
論理158はコントローラ164、送信および受信イベントコンディショナ16
6および168、ならびにタイマ160および162に結合されて、コントロー
ラ164によって与えられた送信および受信サービスリクエスト、ならびにタイ
マ回路160および162によって与えられたセットタイマおよびタイマ経過イ
ベントを、チャネルのための状態ビットに変換する。
図1aに示されるように、チャネルのための状態ビットは通信プロセッサローカ
ルメモリ134に置かれる4つの状態レジスタ150.152.154および1
56において維持される。この発明のこの実施例において、これらのレジスタは
6つのチャネルのための状態ビットを保持する。
これらのチャネルの各々は多数の端末にサービスすることが可能である。レジス
タ154および156の状態の各変化に対して、通信プロセッサ124はチャネ
ルのうちのどれが影響されたかを判別し、影響されたチャネルのために通信手順
130および132(図1に示される)のうちの1つからルーチンを呼出す。
典型的に、別個の通信手順依存ルーチンは送信および受信リクエストのために維
持される。もし前の呼出しの間に通信手順がイベント論理を直列コントローラ1
64イベントとタイマイベントとの双方をモニタするように条件付けたとすれば
、それはサービスレジスタ154または156に加えて、タイムアウト状態レジ
スタ150または152の対応するビットを検査するであろう。チャネルのため
のタイムアウト状態レジスタの対応するビットは、直列コントローライベントか
タイムアウトイベントのどちらが最初に発生したかを示す。
チャネルのための対応する状態ビットはレジスタ150.152.154および
156のうちの各々の対応するビット位置に保持される。より多くの数のチャネ
ルはレジスタの各々のビット位置の数を増やすことによって収容され得る。
通常動作において、通信プロセッサ124は送信サービスレジスタ154および
受信サービスレジスタ156を含むチャネルサービスレジスタ(C3R)155
を定期的にポーリングする。C3R155にセットされるべき1つのビットが発
見された場合、チャネルのための通信手順が呼出される。C3R155における
ビットのセツティングは、直列コントローラ164ならびに/またはタイマ回路
160および162のどのイベントが発生(7たかを示す。C3R155の値は
また通信手順130および132のうちのどのルーチンが呼出されるかを判別す
る。
この論議の目的のために、直列コントローラ164からの2つのイベント、TR
ANSMIT (TX)EMPTYおよびCHARACTERAVAILABL
E、ならびにタイマ160および162からの1つのイベント、タイムアウト、
が考えられるであろう。TX EMPTYイベントはチャネルが端末装置148
のうちの1つに他の文字を送る用意ができていることを示す一方で、CHARA
CTERAVA I LABLE EVENTはチ+*ルが端末装置148のう
ちの1つによって与えられた文字を保持していることを示す。タイムアウトイベ
ントは通信手順130または132によってセットされた時間が経過したことを
示す。受信タイマ160は受信タイムアウトイベントを与え、送信タイマ162
は送信タイムアウトイベントを与える。
典型的に、送信サービスリクエストに対しては、受信サービスリクエストに対し
て呼出されるのとは異なった通信手順のルーチンが呼出される。呼出されたルー
チンはそれがイベント論理158を直列コントローライベントおよびタイマイベ
ントの双方を同時にモニタするように条件付けさえしていたら、タイムアウトレ
ジスタ150および152を検査するであろう。この例において、タイマレジス
タ150および152て保持された値は直列コントローライベントかまたはタイ
ムアウトイベントのどちらが先に発生したかを示すであろう。
図1aに示される送信イベントコンディショナ168は通信プロセッサ124に
よって4つの方法のうちの1つでセットされてもよい。第1のセツティングのた
めに、送信タイマ162からのタイマ終了イベントは送信タイムアウトレジスタ
150のセットビットとして現われ、直列コントローラ164からのTX EM
PTYイベントは送信サービスレジスタ154のセットピットとして現われる。
イベントコンディショナ168の第2のセツティングによりタイマ終了イベント
は送信タイムアウトレジスタ150および送信サービスレジスタ154の双方で
現われる。このセツティングを使用して、直列コントローラ164のTXEMP
TYイベントは取消される。第3のセツティングのために、タイマ終了イベント
は送信タイムアウトレジスタ150のみに現われ、送信サービスレジスタ154
の対応するビットは常にリセットされる。第4のセツティングが使用される場合
、タイム終了イベントおよびTX EMPTYイベントの論理ORは送信サービ
スレジスタ154に現われる。送信タイムアウトレジスタ150の対応するビッ
トは送信タイマ162のタイマ終了イベントが直列コントローラ164のTX
EMPTYイベントの前に発生しさえすればセットされる。
図1aに示される受信イベントコンディショナ166もまた4つの方法でセット
され得る。これらのセツティングにより受信イベント論理は送信イベントコンデ
ィショナ168を参照して上に述べられたのと同一の態様で動作するが、受信タ
イマ160が送信タイマ162の代わりに使用され、直列コントローラ164の
CHARACTERAVAILABLEイベントがTX EMPTYイベントの
代わりに使用されることは除く。
図1bはイベント論理の代替の実現化例を示し、そこで唯一のタイマ160が受
信および送信リクエスト双方のために使用され、唯一のレジスタ152がチャネ
ルタイムアウト状態を示すために使用される。図1bのイベント論理の動作は図
1aのそれとわずかに異なる。図1bのイベントコンディショナ166は少なく
とも4つの方法のうちの1つでセットされ得る。第1のセツティングを使用して
、タイマ終了イベントはタイムアウト状態レジスタ152に現われ、TX EM
PTYイベントは送信サービスレジスタ154に現われ、かつCHARACTE
RAVAILABLEイベントは受信サービスレジスタ156に現われる。第2
のセツティングにより、CHARACTERAVAILABLEイベントは受信
サービスレジスタ156に現われ、TX EMPTYイベントおよびタイマ終了
イベントの論理ORは送信サービスレジスタ154に現われる。タイムアウトレ
ジスタ152の対応するビットはタイマがTX EMPTYイベントが発生する
前に終了しさえすればセットされる。第3のセツティングのために、TxEMP
TYイベントは送信サービスレジスタ154に現われ、タイマ終了イベントおよ
びCHARACTERAVAILABLEイベントの論理ORは受信サービスレ
ジスタ156に現われる。タイムアウトレジスタ152の対応するビットは、タ
イマがCHARACTERAVAILABLEイベントが発生する前に終了しさ
えすればセットされる。第4のセツティングはTX EMPTYおよびCHAR
ACTERAVAILABLEイベントを取消す。このモードにおいて、タイマ
終了イベントはタイムアウト状態レジスタ152および送信サービスレジスタ1
54または受信サービスレジスタ156の適当な1つに現われる。他のサービス
レジスタの対応するビットはリセットに保持される。
図2aおよび図2bはそれぞれのホストプロセッサ102および通信プロセッサ
124のためのシステムソフトウェアの構造の概観を与える。図3ないし図9を
参照してより詳細に説明されるこのソフトウェアは、図1、図1aおよび図1b
に示されるハードウェアとともに使用するためのものである。図2aにおいて、
ユニックスオペレーティングシステムコールインターフェース202はユニック
スオペレーティングシステムの標準部分である。図2aおよび図2bの残りのブ
ロックは標準ユニックスオペレーティングシステムでは認められない。これらの
ブロックは1つ以上の端末装置と通信するために標準ユニックスオペレーティン
グシステムによって使用されるであろう端末装置ドライバおよび行規律モジュー
ルの代わりに呼出される。
m2aおよび図2bに示されるシステムは以下のように動作する。ユニックスオ
ペレーティングシステムの制御下で実行するユーザプログラムは、ユニックスオ
ペレーティングシステムコールインターフェースを介して端末装置に110リク
エストを発する。このリクエストはユーザプログラムファイルとして装置をオー
プンもしくはクローズする、続出もしくは書込動作を実行する、または装置の機
能的特性を変える制御コマンドを発するためのものであってもよい。これらのリ
クエストに応答して、システムコールインターフェース202は通信カードドラ
イバモジュール204内の手順を呼出す。この手順はひいては端末148のため
のリングバッファ管理ルーチンを呼出し、それらはメツセージ通過システム20
6を呼出し得る。
図2bに示されるように、図1の通信プロセッサ124は継続的にメインイベン
トポールループ212を実行する。
このループはイベント論理158を使用してシステムに利用可能な様々な端末装
置の状態を定期的にチェックし、ホストプロセッサ102からの入来メツセージ
をチェックする。入来メツセージ214の処理の結果またはイベント処理手順2
18のうちの1つ(つまり通信手順130および132のルーチン)の実行の結
果は、メツセージをホストプロセッサ102に送り戻すための出力メツセージ通
過手順220の呼出しであってもよい。メツセージ処理手順214およびイベン
ト処理手順218はまた様々な端末148のためのリングバッファデータ構造を
管理するリングバッファ管理手順222を呼出してもよい。
図20はメツセージ通過ファシリティの動作を説明するために有用なブロック図
である。ホストプロセッサ102と通信プロセッサ124との間を通されるメツ
セージはメツセージアレイ186にストアされ、それは図1に示されるメツセー
ジ通過構造およびメツセージデータ構造180の一部である。メツセージアレイ
186はN固定長メツセージとして編成される。この発明のこの実施例において
、これらのメツセージの一部はホストプロセッサ102に割当てられ、残りは通
信プロセッサ124に割当てられる。
共通メモリ112は2つのデータ構造を含み、それらはプロセッサ102および
124によって使用されメツセージ転送を調整する。これらはメツセージリング
バッファ182および応答リングバッファ184である。これらのリングバッフ
ァの各々はM個のスロットを含み、それらはメッセージアレイ186におけるメ
ツセージを示し得る。さらに、各々のバッファは2つのインデックス修飾変数T
AKEPTRおよびPUTPTRを含む。TAKEPTR変数はバッファを介し
て転送されたメツセージを読8すプロセッサによってとられるべき次のメツセー
ジのためにバッファにおけるスロットを示しかつPUTPTR変数はバッファを
介して転送されるメツセージを書込むプロセッサによって使用されるべき次のス
ロットを示す。
通常のメツセージ転送のために、各々のプロセッサはメツセージのインデックス
を値PUTPTRによってアドレス指定されるリングバッファにおける位置で出
力メツセージリングバッファに書込み、それからPUTPTRを増分させる。他
のプロセッサは、その入力リングのPUTPTR値がTAKEPTR値と等しく
ないとき入力メツセージが利用可能であるということを検出する。メツセージエ
リア186におけるメツセージのインデックスはTAKEPTRによってアドレ
ス指定されるリングバッファにおいてスロットを読出すことによって検索される
。値TAKEPTRはそれから増分されリングバッファにおいて次のインデック
ス値を示す。受信プロセッサはそれからメツセージアレイ186におけるメツセ
ージを調べかつリクエストされた動作を行なう。通常、動作はメツセージを応答
としてその出力メツセージリングバッファを使用する親プロセツサへと戻すステ
ップを含む。
この発明のこの実施例において、メツセージは通信プロセッサから応答バッファ
184を介してホストプロセッサ102へと通過される。こうして、応答バッフ
ァ184のPUTPTR変数は、通信プロセッサ124がホストプロセッサ10
2に対してメツセージを発生するときメツセージインデックスが書込まれるであ
ろう次の応答バッファスロットへのポインタを保持する。応答バッファ184の
TAKEPTR変数は応答バッファ184におけるスロットを示し、それはホス
トプロセッサ102によって読出されるべき次のメツセージインデックスを指す
。メツセージバッファ182のエントリPUTPTRおよびTAKEPTRはホ
ストプロセッサ102と通信プロセッサ124との役割が逆転することを除いて
同様に動作する。
この発明のこの実施例において、プロセッサ102または124のいずれか1つ
がメツセージを読出すとき、それは受信されたメツセージによって示されたいず
れかの応答が送り戻されるべく準備されるまでメツセージエントリにとどまる。
受信プロセッサはそれから応答のためにエントリを情報でいっばいにし、かつエ
ントリをもとの送信プロセッサへと送る。このメツセージが送信プロセッサによ
って受信されるとき、メツセージエントリが空としてマークされかつ利用可能な
メツセージのキューに付加される。代替的に、もし少ない数のメツセージ型のみ
が送られ得ると、送信プロセッサは異なるメツセージエントリをメツセージの型
のそれぞれに異なるものへと割当て得る。
上で説明されたメツセージ通過ファシリティは図1ないし図9において示される
ものより一般的な応用を有する。
それは共用メモリ構造を有するいずれか2つのプロセッサの間でかまたは単一の
プロセッサ上で実行するいずれか2つのプロセスの間でプロセスが共通メモリエ
リアにアクセスし得る限りにおいて使用され得る。
出力リングバッファ114および入力リングバッファ116はこのメツセージ通
過ファシリティの応用の一例である。これらのバッファはホストプロセッサ10
2と通信プロセッサ124との間で単純な、効率のよいメツセージ転送をもたら
す。この場合、転送されているメツセージは個々の文字であり、それらは端末1
48から受信されるかまたはそこへ転送されるかのいずれかである。メツセージ
通過ファシリティのこの応用において、メツセージバッファ186に対するいず
れのアナログも必要とされず、なぜなら転送されるべきデータがリングバッファ
のスロット内へと直接ストアされ得るからである。メツセージ通過ファシリティ
のこの応用はメツセージ通過構造、メツセージ通過構造180においていずれの
アナログも有さない隣接リングバッファ118を含む。リング118における値
は入力リングバッフ7116におけるデータにキーボード入力される。隣接リン
グバッファ118におけるエントリの各々は入力バッファスロットナンバーを含
み、それは入力リングバッファ116においてデータの論理的分離を示す。この
発明の実施例において、たとえばこれらのポインタは標準的に処理されているデ
ータに対してラインの終端を示し、かつ文字制限または時間制限が化モードにお
いて転送されているデータのために到達された文字を示す。標準的に処理された
データに対して、隣接リングバッファ118における情報はホストプロセッサに
よって使用され特定文字(たとえばキャリッジリターン)を同定する。こうして
、ホストプロセッサ102がこれられの文字の存在のために各々のメツセージに
おいてデータを走査することは必要とされない。
図3ないし図8は様々な型のI10100ための図1に示されるホストプロセッ
サ102において行なわれた動作を示すフローチャート図である。図3はリモー
ト端末ファイルをオープンする動作を示す。この動作はオープンリクエストがユ
ーザプログラムからユニックスオペレーティングシステムコールインターフェー
ス202によって受信されるとき開始される。この初期設定は図3のステップ3
02に対応する。ステップ304において、ホストプロセッサ102はローカル
メモリ領域106においてホスト端末状態構造108をチェックしリクエストさ
れた端末ファイルが既にオープンであるかどうかを決定する。もしそうでなけれ
ば、ステップ306において、ホストプロセッサ102は端末ファイルがオープ
ンされることをリクエストする通信プロセッサ124に対してメツセージを出す
。ステップ308において、ホストプロセッサはオープンシステムコールプロセ
スをスリープさせオープンリクエストへの応答を待つ。このプロセスがスリープ
状態にある間に、ホストプロセッサ102が他のプロセスを実行し得る。
オープンリクエストに応答して、通信プロセッサ124は新しくオープンされた
端末のために新しい端末状態構造120を発生し、新しいリングバッファ114
.116および118を新しい端末に対して割当て、端末が結合されるチャネル
に対して直列コントローラ(SCC)を開始させ(もしこのチャネルがまだ活性
状態でなければ)かつもとのオープンメツセージをホストプロセッサ102に対
して戻し、それによって端末ファイルがオープンされていたということを示す。
通信プロセッサ124からのオープンメツセージがステップ310においてホス
トプロセッサ102によって受信されるとき、ホストプロセッサはステップ31
0でオープンシステムコールプロセスを起こしかつ新しくオープンされた端末フ
ァイルのためにホスト端末状態構造108においてホスト端末状態エントリを開
始させる。
ステップ312において、ホストプロセッサ102はそれがキャリアの存在をチ
ェックすべきかどうか、すなわちそれが端末がオン−ラインであることをチェッ
クすべきかどうかを決定する。このテストはユニックスオペレーティングシステ
ムコールインターフェース202を介してなされたオープンシステムコールにお
けるフラグセットに基づく。いくつかの型の端末装置たとえばモデムに対して、
キャリアの初期設定がホストプロセッサ102に関して実行するプログラムによ
って制御される。もしステップ312においてオープンシステムコールプロセス
がキャリアを確立すべきでないと決定されると、プロセスはステップ320で完
了しかつ制御はリクエストをもたらしたユーザプログラムへと戻される。
もし、しかしながら、ステップ312において、オープンシステムコールがキャ
リアを確立すべきであると決定されると、制御はステップ314に転送され、こ
こでホストプロセッサ102は共用メモリ112において端末状態構造120を
調べ、キャリアが端末に対して呈されるかどうかを決定する。もしそうであれば
、プロセスはステップ320に分岐しかつ終了する。もしそうでなければ、プロ
セスはステップ316に分岐し、ウェイトキャリアメツセージを通信プロセッサ
124に対して発し、かつ、ステップ318においてスリープされ応答を待つ。
このメツセージに対する通常の応答は通信プロセッサ124が適当な5CC14
4をキャリアが呈されるかどうかを決定するように条件付け、かつキャリアが確
立されていたとき、ウェイトキャリアメツセージをホストプロセッサ102へと
送信し戻すように条件付けるようなものであろう。しかしながら、たとえばハー
ドウェア障害に起因して、キャリアが端末のために決して確立されないというこ
とが起こり得る。この場合に、システムオペレータはタスクを終了したがるかも
しれない。この型の終了はスリープしているオープンシステムコールプロセスが
プロセス終了をリクエストするユニックスオペレーティングシステムからの信号
で起こされることを引起こすであろう。この信号に応答して、プロセスはステッ
プ322において、ウェイト取消キャリアメツセージを発し、通信プロセッサ1
24からのエントリをクリアし、ステップ324において、エントリがクリアさ
れたということを示す応答を待ち、かつ制御をステップ326でユーザプログラ
ムへと戻す。 図4は図2aにおいて示されたユニックスオペレーティングシス
テムコールインターフェース202を介して与えられた読出システムコールに応
答してホストプロセッサ102によって行なわれたステップを示すフローチャー
ト図である。
図4において、読出システムコールはステップ402においてシステムコールイ
ンターフェース202から受信される。第1のステップ404は隣接リングバッ
ファ118にエントリが存在するかどうかを決定する。もし隣接リングエントリ
が存在すると、データはステップ418および420において人力リングバッフ
ァ116の変数TAKEPTRによって示されるスロットから隣接リングバッフ
ァ118においてエントリによってアドレス指定されるスロットまで転送される
。ステップ422において、隣接リングバッファ118の変数TAKEPTRは
進められかつ入力リングバッファ116の変数TAKEPTRは隣接リングバッ
ファ118から元来検索されるアドレス値に設定される。次に、ステップ424
において、読出動作が完了しかつ制御がユーザプログラムへと戻される。
もし、ステップ404において、隣接リングが空であれば、続出システムコール
プロセスがステップ406を呼出し、端末装置が生モードにおいて動作するかど
うかを決定する。この情報は図1に示されたホストローカルメモリ106のtt
y状態構造110に含まれる。もし端末が生モードにおいて動作していなければ
、プロセスはステップ414において通信プロセッサ124に対してウェイトデ
ータメツセージを発し、かつステップ416においてスリープされ、応答を待つ
。
エントリが隣接リングバッファ118において行なわれることを引起こすデータ
がもし端末148によって与えられるとかつ与えられたとき、続出システムコー
ルプロセスが起こされかつ制御が上で説明されたステップ418に転送される。
もし、プロセスがスリープしたままでデータを待つ間に、プロセスを始めたユー
ザプログラムが終了されると、スリープしているプロセスが示されたように終了
信号で割込まれ得る。この場合において、ホストプロセッサ102上で実行する
続出システムコールプロセスがステップ426で通信プロセッサ124に対して
ウェイト取消データメツセージを発し、ステップ428で応答を待ち、かつ制御
をステップ424でユーザプログラムに戻す。
もし、ステップ406において、端末が生モードにおいて動作されていると決定
されると、ステップ408が実行され入力リングバッファにおける文字の数が生
モード端未読出動作に対して転送される文字の最小の数であるVMINよりも大
きいかどうかを決定する。もしそうであれば、入力リングバッファ116におけ
るデータはユーザバッファにコピーされ、変数TAKEPTRが入力リングバッ
ファから取除かれた文字の数だけ増分されかつ制御がステップ412でユーザに
戻される。もし、ステップ408において、メツセージにおける文字の数がVM
INよりも少なければ、制御は上で説明されたステップ414に転送される。
図5は図2aにおいて示されるユニックスオペレーティングシステムホストシス
テムコールインターフェース202を介してリクエストされた書込システムコー
ルに応答してホストプロセッサ102によって行なわれるステップを示す。ステ
ップ502においてリクエストが受信されると、プロセッサ102は書込まれる
べきデータのために出力リングバッファ114において十分な利用可能なスペー
スがあるかどうかをステップ504において決定する。もしそうであれば、デー
タはユーザバッファから出力リングバッファの変数PUTPTRによってアドレ
ス指定されたスロットで起動する出力リングバッファへとコピーされる。データ
がリングバッファ114にロードされたとき、PUTPTRは増分され次の利用
可能なスロットを指す。ステップ510に従って、制御がステップ512でユー
ザプログラムに戻される。
もしステップ504において不十分なスペースが出力リングバッファ114にお
いて発見されると、ステップ506において書込システムコールプロセスがウェ
イトドレインメツセージを通信プロセッサ124に発行する。ステップ508に
おいて、プロセスはスリープされウェイトドレインメツセージへの応答を待つ。
通信プロセッサが端末に対して十分なデータを転送し、それによって出力リング
バッファ114における予め定められた数のスロットが空らになると、それはウ
ェイトドレインメツセージをホストプロセッサ102に戻す。このメツセージは
、プロセッサがスリープしている書込システムコールプロセスを起こしかつ制御
を上で説明されたステップ510に転送することを条件付ける。
ステップ514.516および518はスリープしている書込システムコールプ
ロセスがユニックスオペレーティングシステムからの信号によって起こされると
き、ホストプロセッサ102によって行なわれる処理を示す。この信号はたとえ
ばユーザプロセスが終了されたということを示し得る。ウェイトドレインメツセ
ージに応答して通信プロセッサ124によって行なわれた処理は図9を参照して
以下に説明される。
図6は図2aにおいて示されたユニックスオペレーティングシステムコールイン
ターフェース202を介して呼出されたI10制御(IOCTL)システムコー
ルに応答してホストプロセッサ102によって行なわれるステップを示す。この
発明のこの実施例において、■0CTLシステムコールはI10装置の状態を決
定し、その特性を変化させるかまたはそれに関して特定機能を行なうかのいずれ
かのために使用される。単に装置の状態を質問するコールはTCGETAコール
と呼ばれかつ装置の特性を変化させることを企てるコールはTC8ETAコール
と呼ばれる。TC3BRK、TCXONCおよびTCFLUSHのような他のコ
ールはラインブレーク、フロー制御およびバッファフラッシングのような特定制
御機能をそれぞれに行なう。
10CTLシステムコールがステップ602で受信された後、ステップ604が
実行され、それがTCGETAコールかまたはTC8ETAコールかを決定する
。もしそれがTCGETAコールであれば、ホストプロセッサ102は適切な状
態エントリをホストローカルメモリ106におけるtty構造110からユーザ
バッファ領域へとコピーしかつ制御をユーザプログラムへと戻す。
もし、しかしながら、コールがTC3ETAコールまたは特定機能コールであれ
ば、プロセッサ102はステップ610においてl0CTLメツセージを発生し
かつそれを通信プロセッサ124に送る。ステップ612において、l0CTL
システムコールプロセスがスリープされ通信プロセッサからの応答を待つ。応答
が受信されると、l0CTLシステムコールプロセスが起こされかつ、ステップ
614において、制御がユーザプログラムへと戻される。l0CTLメツセージ
に応答して、通信プロセッサは端末の状態を変化させるためにかまたはリクエス
トされたように特定機能を行なうために必要なステップを行なう。これらのステ
ップは使用される通信手順、直列コントローラおよび端末装置の型に依存する。
図7は通信プロセッサ124から受信されたISR信号メツセージに応答してホ
ストプロセッサ102によって行なわれたステップを示すフローチャート図であ
る。たとえ゛ばキル(kill)文字またはブレイク(b+exk )文字が通
信プロセッサ124におけるキーストロークデータの標準処理の間に現われるか
またはキャリアの降下が検出されるときに、これらのメツセージが発生され得る
。
図7において、信号メツセージがステップ704において通信プロセッサ124
から受信される。ステップ706において、ホストプロセッサはメツセージを評
価しかつ信号を適当なプロセス群へと送信する。これらの信号は例外を示すそれ
ぞれのプロセス群を起こす。信号が群において各々のプロセスによっていかに取
扱われるかということは特定プロセスに依存する。ステップ708において、信
号が受信されたということを示しかつメツセージを戻すために、ホストプロセッ
サ102は適当な信号応答メツセージを通信プロセッサ124に発する。ステッ
プ710において、制御がユーザプログラムに戻される。
図8は図2aのユニックスオペレーティングシステムコールインターフェース2
02からのクローズシステムコールに応答してホストプロセッサ102によって
行なわれるステップのフローチャート図である。このシステムコールがステップ
802で受信された後、プロセッサ102は出力リングバッファ114をチェッ
クしそれが空であるかどうかを決定する。もしバッファが空であれば、端末に転
送されるべきいずれのデータもはや存在しない。この場合、プロセッサ102は
ステップ810において端末のためのクローズメツセージを通信プロセッサ12
4に対して発し、ステップ812においてクローズシステムコールプロセスをス
リープさせ応答を待つ。応答がプロセッサ124から受信されると、ホストプロ
セッサはクローズシステムコールプロセスを起こし、それは制御をステップ81
4でユーザプロセスに戻す。
クローズメツセージに応答して、通信プロセッサ124は直列コントローラ14
4のうちの適当な1つがキャリアを端末装置に落とし、出力リングバッファ11
4、入力リングバッファ116および隣接リングバッファ118の割当を解除し
、共用メモリ112において端末のために端末状態構造の割当を解除しかつクロ
ーズメツセージをホストプロセッサ102に戻すように信号を送る。もしステッ
プ804において、出力リングバッファが空でなければ、ホストプロセッサ10
2はステップ806において通信プロセッサ124に対してウェイトドレインメ
ツセージを発し、かつステップ808においてプロセッサ124が応答するまで
クローズシステムコールプロセスをスリープさせる。
このウェイトドレインメツセージは通信プロセッサ124に出力リングバッファ
114が空になるまで待つように告げる。ホストプロセッサ102が通信プロセ
ッサ124から応答を受取ったとき、それはクローズシステムコールプロセスを
起こしかつ制御を上で説明されたステップ810に転送する。
もしステップ808でスリープしているクローズシステムコールプロセスがユニ
ックスオペレーティングシステムからの信号メツセージによって起こされると、
ホストプロセッサがステップ816においてウェイト取消しドレインメツセージ
を発し、プロセッサ124から残っているメツセージをクリアしかつクローズシ
ステムコールプロセスをスリープさせ応答を待つ。応答が受信されるとき、クロ
ーズプロセスが起こされかつ制御が上で説明されたステップ810に転送される
。
図9、図10および図11は通信プロセッサ124によって行なわれる処理ステ
ップを示すフローチャート図である。図9において示されたプログラムは無限ル
ープであり、ここでは送信サービスレジスタ154および受信サービスレジスタ
156(双方が図1aおよび図1bにおいて示される)において対応するピット
が処理が必要とされているということを示すとき端末装置が処理される。
図9のフローチャートにおいて示されるように、ループにおける第1のステップ
902はメツセージリングバッファ182に対して変数PUTPTRおよびTA
KEPTRを比較しメツセージリングが空であるかどうかを決定する。
もしメツセージリングが空でなければ、ステップ904が実行されTAKEPT
Rによってアドレス指定されたメツセージをメツセージアレイ186から検索し
かつそのメツセージを処理する。それらは、たとえば端末装置148のいずれか
に対するオープン、クローズまたはl0CTLメツセージであり得る。オープン
、クローズおよびl0CTLメツセージを処理する際に通信プロセッサ124に
よって行なわれるステップは図3、図8および図6を参照してそれぞれに上で説
明される。
メツセージが処理された後、あるいはもしメツセージリングバッファ182が空
であったとすれば、通信プロセッサ124はステップ906で受信サービスレジ
スタ156・を調べかつレジスタ156においてセットピットによって表わされ
た各々のチャネルに対して図10において示された機能を行なう。
受信サービスリクエストのすべてが取扱われた後、通信プロセッサ124はステ
ップ908を実行し送信サービスリクエストを取扱う。このステップは送信サー
ビスレジスタ154を調べるステップとレジスタ154においてセットピットに
よって表わされた各々のチャネルに対して図11に示されたステップを行なうス
テップとを含む。
ステップ908の後、通信プロセッサ124は分岐してステップ902へと戻り
、いずれかの新しいメツセージがメツセージリングバッファ182内へと入力さ
れたがどうかを決定する。もしステップ906またはステップ908においてそ
れぞれの受信サービスレジスタ156または送信サービスレジスタ154がいず
れのピットセットも有さないということが発見されると、制御がプログラムにお
ける次のステップへと直接通過する。こうして、受信および送信サービスレジス
タ156および154は通信プロセッサ124のオーバーヘッドをそれがサービ
スされる必要のあるそれらの装置のみをポーリングしかつサービスすることを可
能にすることよって大いに減少させる。さらに典型的なポーリングスキームにお
いて、各々の端末装置148はループを介して各々のパスにおいてポーリングさ
れ、サービスされる必要があるかどうかを決定するであろう。
図10は受信サービスリクエストのための例示的な処理ステップを示す。示され
たステップは図1において示された標準処理手順130によって行なわれたもの
を示す。これらのステップはTTYプロトコルに対応する端末装置の取扱いを説
明する。使用された端末装置の型に依存する変形テ、このフローチャート図もま
たカスタムプロトコル手順132のような他の通信手順によってなされたステッ
プを表わす。
受信サービス処理は受信サービスレジスタ156においてそれらの対応するビッ
トセットを有するチャネルに対してのみ行なわれる。例示的な受信サービス処理
手順における第1のステップ1002は図1bにおけるチャネルタイマ160が
終了したかどうかを決定する。もしそれが終了していなければ、ステップ100
4.1006および1008が実行され、それはチャネルに相関のSccからキ
ーストロークをとり、それを標準処理アルゴリズムに与え、それからそれを入力
リングバッファ内へと置く。ステップ1006でなされた標準処理はたとえばバ
ックスペース文字に応答するPUTPTRにおける値の減分、またはライン削除
文字に応答しての隣接バッファ118のトップエントリに保持された値へのPU
TPTRのリセットを含み得る。もし端末が生モードにおいて動作されていると
すれば、標準処理アルゴリズムが取消される。
もし、標準処理の後、文字が入力リングバッファ116に付加されると、ステッ
プ1008はバッファ116のPUTPTR変数によって示されるスロットで入
力リングバッファ116に文字を付加し、かっPUTPTRを増分させ、次のス
ロットをバッファにおいてアドレス指定する。
ステップ1008を実行した後、通信プロセッサはステップ1010において人
力リングバッファに置かれた文字がライン(E OL)終端の文字であるかまた
はこの文字でプリセットの最小限の数の文字(VMIN)が入力リングバッファ
116においてストアされるかどうかを決定する。
もしこれらの条件のうちのいずれもがかなえられなければ、制御はステップ10
18に転送され、それはこのチャネルに対しての受信サービス処理を終了する。
もし、ステップ1002において、チャネルタイマ160が終了すると、それは
ステップ1003においてリセットされるかまたは再び起動される。タイマのリ
セットもまたチャネル受信サービスレジスタ156においてビットをリセットす
る。もしチャネルタイマ160が終了したかまたはステップ1010においてE
OLもしくはVMIN条件が適えられたとすれば、制御がステップ1o12へと
転送され、ここで入力リングバッファ116の変数PUTPTRに保持された値
が隣接リングバッファ118内へと入力される。次に、ステップ1014におい
て、通信プロセッサ124はチャネルのために残っているウェイトデータメツセ
ージが存在するということを端末プロトコル状態138が示すかどうかを決定す
る。もしそうであれば、つエイトデータメツセージはホストプロセッサ102に
戻され、ウェイティングプロセスを起こす。上で説明されたように、起こされて
いる間、プロセスは入力リングバッファにおけるデータを変数TAKEPTRに
よって示されたスロットから隣接バッファ118において新しく付加されたエン
トリによって示されたスロットまで持っていくがそれらを含みはしない。ウェイ
トデータメツセージが戻された後かまたはもしいずれの残っているウェイトデー
タメツセージも存在しなければ、プロセッサ124はステップ1018へと分岐
する。
もし他のチャネルビットが受信サービスレジスタ156において設定されると、
プログラムはステップ1020で分岐しステップ1002へと戻り、残っている
受信サービスリクエストを有する各々のチャネルを処理する。ステップ1002
へと戻る分岐はサービスされるべき次のチャネルに接続された装置の型に依存す
る異なる通信手順の起点へのものとなり得るであろう。もしいずれの他のビット
もレジスタ156において設定されなければ、ステップ1022が実行され、そ
れは受信サービスリクエスト処理を終了させる。
図11は送信サービスリクエストを処理する際に行なわれる例示的なステップを
示すフローチャート図である。示されるステップは図1の標準処理手順130に
よって行なわれるものに対応する。使用される端末装置の型に依存する変形で、
このフローチャート図もまたカスタムプロトコル手順132のような他の通信手
順によって行なわれるステップを表わす。送信サービス処理は送信サービスレジ
スタ154において設定されたそれらの対応するビットを有するチャネルのため
にのみ行なわれる。
送信リクエストをサービスすることにおける第1のステップ1102はチャネル
上の活性装置のための出力リングバッファ114が装置に送信されるべきデータ
を含むかどうかを決定する。もしそうであれば(すなわちもし出力リングバッフ
ァ114が空でなければ)、ステップ1104.1106および1108が実行
される。これらのステップは出力リング114から文字を取り、それを標準処理
アルゴリズムに与えかつ端末装置での表示のために標準的に処理された文字を直
列コントローラ144に送る。ステップ1106で行なわれた標準処理はたとえ
ばタブ文字を多数のスペース文字へと拡張するステップを含み得る。もし端末装
置が生モードにおいて動作されていると、標準処理アルゴリズムが取消される。
ステップ1104は出力リングバッファ114のためにTAKEPTRを増分さ
せるステップを含む。ステップ1108の後、通信プロセッサ124はステップ
1110でプロトコル状態138をチェックしウェイトドレインメツセージがこ
の端末のために残っているかどうかを決定する。
もしそうであれば、ステップ1112が実行され十分な数の文字が出力バッファ
114から排出されたかどうかを決定する。もしそうであれば、プロセッサ12
4はウェイトドレインメツセージをホストプロセッサ102へと送信し戻す。上
で説明されたように、このメツセージに応答して、ホストプロセッサ102は一
連の文字を出力リングバッファ114に付加するであろう。
ステップ1112の後、またはステップ1110の後、もしいずれの残っている
ウェイトドレインメツセージも存在しなければ、またステップ1102の後、も
しリクエストチャネルのための出力リングバッファ114が空であれば、プロセ
ッサ124はステップ1114に分岐する。ステップ1116で、プロセッサは
ステップ1102へと分岐し送信サービスレジスタ154においてピットセット
を有する次のチャネルを処理する。ステップ1102へと戻る分岐はサービスさ
れるべき次のチャネルに接続された装置の型に依存する異なる通信手順の起点へ
のものとなり得るであろう。セットピットに対応するすべてのチャネルが処理さ
れたとき、ステップ1118が実行され、それは送信サービスリクエスト処理を
終了させる。図9に示されるメインイベントポールループは、それからステップ
908からステップ902へと分岐し受信および送信サービスリクエストが処理
されている間に到達し得たであろういずれのメツセージをも処理する。
ユニックスオペレーティングシステムのための例示的な端末装置インターフェー
スが説明されてきた。装置インターフェースはホストプロセッサによって通常行
なわれる機能をホストプロセッサによって行なわれる1組の機能および専用の通
信プロセッサによって行なわれるセットへと分割する。新規のメツセージ通過フ
ァシリティが使用されホストと通信プロセッサとをリンクし、それによってメツ
セージがコピーされることなしに不均等なプロセッサの間で転送され得る。端末
装置状態データが維持され通信プロセッサによってデータ転送の取扱いを容易に
する。
この発明が例示的な実施例に関して説明されてきたが、それが添付の請求の範囲
の真意および範囲内で上で概説されたように実行され得るということか考慮され
る。
、ホズトソ7Fへアγ−A九ダキ
石1イ言ブロビンプンクトつ譬ア 7−今チクイヤ2小ズ1−ンノトウェアオー
ガソンズZ4コー1しホストックトウーアgを・止・レジ2%、l:I−IL/
Lイ客プロと、/ブメイ/刃で−1しル−ブ要約
ユニックス(ユニックスはユエックス・システム・ラボラトリーズ・インコーホ
レイテッドの登録商標である)オペレーティングシステムの制御の下で動作する
計算機システムにおいて人力/出力(I 10)動作を実現するための装置はメ
インまたはホストプロセッサ(102)に加えて専用の通信プロセッサ(124
)を含む。これらの2つのプロセッサは各々のプロセッサ(図1)によって独立
してアクセスされ得る共用メモリ(112)を介して通信する。
端末I10ドライバおよびライン規律モジュールによって行なわれた機能がホス
ト(102)および通信プロセッサ(124)の間で分割される。通信プロセッ
サ(124)は端末110装置(148)から受信されたデータのすべての標準
処理を行なう。それはまた各々の端末I10装置(148)の瞬時状態を示すデ
ータ構造を維持する。このデータ構造を使用することによって、通信プロセッサ
は実質的に割込みのない環境において動作することが可能であり、状態データ構
造においてサービスを必要とす・るとして示されるI10装置のみをポーリング
する。共用メモリにおけるメツセージファシリティはプロセッサ(102,12
4)間の通信を制御する。各々のプロセッサはメツセージを専用の環状キューを
介して他のものへと送信する。メツセージを受信するために、プロセッサは他の
プロセッサの送信キューを調べる。応答メツセージかもとのメツセージのために
使用されたものと同じメツセージバッファを使用して送信プロセッサへと送り戻
される。
、 −PCT/US 91104093国際謂査報告
Claims (15)
- 1.ユニックスオペレーティングシステムに基づくオペレーティングシステムの 制御の下で動作されるべく構成され、かつ複数個の端末入力/出力(I/O)装 置を含む計算機システムにおいて、前記複数個の端末装置と前記計算機システム に関して実行するユーザプログラムとの間でのデータ通信を実現化するための装 置であって、前記装置は、入力リングバッファデータ構造と、 前記複数個の端末装置に結合されかつそれによって与えられたサービスリクエス ト信号に応答して前記複数個の端末装置のうちの1つによって与えられたデータ を前記入力リングバッファデータ構造内へと収集するための手段を含む通信プロ セッサ手段と、 前記入力リングバッファデータ構造に結合され、前記入力リングバッファデータ 構造を調べ前記端末装置によって与えられたデータをそれが利用可能になるとき に検索するための手段を含むホストプロセッサ手段とを含む装置。
- 2.出力リングデータ構造をさらに含み、前記ホストプロセッサ手段が前記出力 リングデータ構造に結合され、前記複数個の端末装置のうちの前記1つに送信さ れるべきデータを前記出力リングバッファデータ構造内へとロードするための手 段をさらに含み、前記通信プロセッサ手段が前記複数個の端末装置のうちの前記 1つによって与えられたサービスリクエスト信号に応答しデータを前記出力リン グデータ構造から前記複数個の端末装置のうちの前記1つへと転送するための手 段をさらに含む、請求項1に記載のデータ通信装置。
- 3.前記ホストプロセッサ手段が前記複数個の端末装置のうちの前記1つからウ ェイトーデータメッセージリクエストデータを発生するための手段と、 前記通信プロセッサ手段によって与えられた応答メッセージに応答し入力リング バッファデータ構造においてリクエストされたデータをアクセスするための手段 とをさらに含み、 前記通信プロセッサ手段が前記ホストプロセッサによって与えられたウェイトー データメッセージに応答し前記複数個の端末装置のうちの前記1つから累積され たデータを監視し前記ホストプロセッサ手段に対して応答メッセージを発生する ための手段をさらに含む、請求項2に記載のデータ通信装置。
- 4.前記ホストプロセッサ手段および前記通信プロセッサ手段に結合され前記ウ ェイトーデータメッセージおよび前記入力リングバッファデータ構造を保持する ための共用メモリ手段をさらに含み、前記ホストプロセッサ手段および前記通信 プロセッサ手段が前記共用メモリ手段を直接アクセスする、請求項3に記載の装 置。
- 5.前記ホストプロセッサ手段が、 ホストプロセッサ手段がデータの総量を前記出力リングバッファデータ構造内へ とロードすることを待っているということを示すウェイトードレインメッセージ を発生するための手段と、 前記通信プロセッサによって与えられたさらなる応答メッセージに応答してデー タを前記出力リングバッファデータ構造内へとロードするための手段とをさらに 含み、前記通信プロセッサが、 前記ウェイトードレインメッセージに応答し出力リングバッファ手段から前記複 数個の端末装置のうちの前記1つに与えられたデータを監視しホストプロセッサ 手段によって与えられるべきデータの量を収容するために十分なスペースが出力 リングバッファ手段内で利用可能であるときを決定する手段と、 出力リンクバッファデータ構造におけるスペースが利用可能であるとき前記さら なる応答メッセージをホストプロセッサ手段へと発生するための手段とを含む、 請求項4に記載の装置。
- 6.前記共用メモリ手段が、 前記ウェイトーデータメッセージ、前記ウェイトードレインメッセージ、前記応 答メッセージおよび前記さらなる応答メッセージを保持するためのメッセージ記 憶手段と、前記ウェイトーデータおよびウェイトードレインメッセージヘのそれ ぞれのポインタを保持するための入力入力メッセージポインタ手段と、 前記応答およびさらなる応答メッセージヘのポインタを保持するための出力メッ セージポインタ手段とを含み、前記通信プロセッサ手段が前記入力メッセージポ インタ手段を調べ前記ウェイトーデータおよびウェイトードレインメッセージに アクセスし、前記ホストプロセッサ手段が前記出力メッセージポインタ手段を調 べ前記応答メッセージおよび前記さらなる応答メッセージにアクセスする、請求 項5に記載の装置。
- 7.隣接リングバッファデータ構造をさらに含み、前記通信プロセッサ手段が、 境界決めデータ値のための前記1つの端末装置によって与えられたデータを監視 するための手段と、入力リングバッファデータ構造における前記境界決めデータ 値の位置を示すポインタを隣接リングバッファデータ構造内へと入力するための 手段とをさらに含み、前記ホストプロセッサ手段が前記隣接リングバッファデー タ構造において保持されたポインタに応答して入力リングバッファデータ構造か ら境界決めデータ値までのデータを検索しかつそれを含むための手段をさらに含 む、請求項1に記載のデータ通信装置。
- 8.メッセージを通信プロセッサ手段からのメッセージヘと与えかつそこからメ ッセージを受け複数個の端末装置と前記計算機システム上で実行するユーザプロ グラムとの間のデータ通信を実現するためのホストプロセッサ手段を含む計算機 システムにおいて、前記ホストプロセッサ手段と前記通信プロセッサ手段との間 のメッセージ転送を行なう装置は、 前記ホストプロセッサ手段と前記通信プロセッサ手段との間で転送されるメッセ ージを保持するための共用メモリ手段を含み、前記共用メモリ手段は、 複数個の記憶位置を有し、前記通信プロセッサ手段による使用のために前記ホス トプロセッサ手段によって与えられたそれぞれのメッセージを保持するためのメ ッセージリングバッファ手段と、 前記ホストプロセッサ手段による使用のために前記通信プロセッサ手段によって 与えられたそれぞれのメッセージを保持するための複数個の記憶位置を有する応 答リングバッファ手段とを含み、 前記ホストプロセッサ手段および前記通信プロセッサ手段が新しいメッセージが 応答リングバッファ手段およびメッセージリングバッファ手段のそれぞれへと入 力されるときを決定することが可能である装置。
- 9.ユニックスオペレーティングシステムに基づくオペレーティングシステムの 制御の下で動作しかつ複数個の入力/出力(I/O)装置とメモリに結合され前 記計算機システム上で実行するユーザプログラムとの間のデータ通信を実現する ための通信プロセッサを含み、ここで前記複数個のI/O装置の各々は前記通信 プロセッサによって与えられたコマンドを処理し、前記I/O装置の各々の1つ はデータ値が前記1つのI/O装置から転送される準備ができているということ を示すそれぞれの状態信号を与える計算機システムにおいて、前記通信プロセッ サがそれぞれのデータ値を前記複数個のI/O装置から前記メモリヘと効率的に 転送することを可能にする装置は、前記複数個のI/O装置に結合され前記通信 プロセッサによって与えられたコマンドにかつ前記複数個のI/O装置によって 与えられた状態信号に応答し前記複数個のI/O装置の瞬時状態を表わすストア された値を維持するためのイベント論理手段と、 前記ストアされた値を定期的に調べかつ前記複数個のI/O装置を処理し前記値 が転送されるために利用可能であるということを前記ストアされた値が示すとき にのみそれぞれのデータ値をそこから転送するための手段とを含む装置。
- 10.前記イベント論理手段に結合され前記通信プロセッサによって与えられた コマンドに応答し前記I/O装置による前記コマンドのうちの1つの処理のため に時間制限を設定するためのタイマ手段をさらに含み、前記イベント論理手段は 時間制限がその相関のコマンドが処理されてしまう前に経過したときを示すため の前記タイマ手段に結合されかつ前記時間制限がその相関のコマンドが処理され る前に経過したということを示すさらなる値をストアするための手段を含み、前 記ストアされた値を定期的に調べるための前記手段が前記通信プロセッサからの コマンドを処理するための時間制限がコマンドが前記複数個のI/O装置のうち のそれぞれの1つによって処理される前に経過したということを前記さらなるス トアされた値が示すときに前記さらなるストアされた値を調べるためのかつ前記 複数個のI/O装置のうちの1つを処理するための手段を含む、請求項9に記載 の装置。
- 11.ホストプロセッサと、少なくとも1つの端末入力/出力(I/O)装置に 結合された通信プロセッサとホストおよび通信プロセッサによってアクセス可能 である共用メモリとを含む計算機システムにおいて、前記計算機システムがユニ ックスオペレーティングシステムに基づくオペレーティングシステムの制御の下 で動作するように構成され、前記端末I/O装置と前記ホストプロセッサとの間 のデータの転送の方法は、 前記ホストプロセッサが前記端末I/O装置に送られるべきデータを前記共用メ モリにおける出力リングバッファデータ構造へとストアすることを引起こすステ ップと、前記通信プロセッサが前記出力リングバッファデータ構造から転送され るべきデータの存在に関して前記共用メモリを定期的に調べることを引起こすス テップと、前記通信プロセッサが共用メモリにおける前記出力メッセージ構造を 発見する際に、出力リングバッファデータ構造からデータを抽出しかつそのデー タを前記端末I/O装置へと送信することを引起こすステップとを含む方法。
- 12.前記通信プロセッサが前記端末I/O装置によって与えられたデータを前 記共用メモリにおける入力リングバッファデータ構造内へと収集することを引起 こすステップと、 リクエスト処理からのデータに対するリクエストに応答して前記ホストプロセッ サが前記入力リングバッファデータ構造からデータを抽出するステップとをさら に含む、請求項11に記載のデータを転送する方法。
- 13.ユニックスオペレーティングシステムに基づくオペレーティングシステム の制御の下で動作し、かつメモリに結合され複数個の入力/出力(I/O)装置 と前記計算機システム上で実行するユーザプログラムとの間のデータ通信を実現 するための通信プロセッサを含み、前記複数個のI/O装置の各々が前記通信プ ロセッサによって与えられたコマンドを処理し、前記I/O装置の各々の1つが データ値が前記1つのI/O装置から転送されるために準備ができているという ことを示すそれぞれの状態信号を与える計算機システムにおいて、それぞれのデ ータ値を前記複数個のI/O装置から前記メモリヘと効率的に転送する方法は、 前記通信プロセッサによって与えられたコマンドおよび前記複数個のI/O装置 によって与えられた状態信号を監視し前記複数個のI/O装置の瞬時状態を表わ すストアされた値を維持するステップと、 前記ストアされた値を定期的に調べるステップと、前記複数個のI/O装置を処 理し前記データ値が転送されるために利用可能であるということを前記ストアさ れた値が示すときにのみそこからそれぞれのデータ値を転送するステップとを含 む方法。
- 14.時間制限が相関のコマンドが前記複数個のI/O装置のうちの1つによっ て処理される前に経過したときを示すステップと、 前記時間制限がその相関のコマンドが処理される前に経過したということを示す さらなる値をストアするステップと、 前記さらなるストアされた値を定期的に調べ、前記通信プロセッサからのコマン ドを処理するための時間制限が経過したということを前記さらなるストアされた 値が示し、一方でコマンドが前記複数個のI/O装置のそれぞれ1つによって処 理されたということをストアされた値が示すときに前記複数個のI/O装置のう ちの1つの処理を行なうステップとを含む、請求項13に記載のデータを効率的 に転送する方法。
- 15.ユニックスオペレーティングシステムに基づくオペレーティングシステム の制御の下で動作されるべく構成されかつ複数個の端末入力/出力(I/O)装 置を含む計算機システムにおいて、前記複数個の端末装置と前記計算機システム 上で実行する複数個のユーザプログラムとの間でデータ通信を実現するための装 置であって、前記装置は、入力リングバッファデータ構造と、 前記複数個の端末装置に結合されそれによって与えられたサービスリクエスト信 号に応答し前記複数個の端末装置のうちの1つによって与えられたデータを前記 入力リングバッファデータ構造内へと収集するためのかつ前記収集されたデータ に関して標準データ処理ステップを行なうための手段を含む通信プロセッサ手段 と、 前記入力リングバッファデータ構造に結合されそれによって保持されたデータを 境界決め文字の存在のための転送されたデータの調査なしに前記複数個のユーザ プログラムのうちの1つへと転送するためのホストプロセッサ手段とを含む装置 。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/535,721 US5276896A (en) | 1990-06-11 | 1990-06-11 | Apparatus for implementing data communications between terminal devices and user programs |
US535,721 | 1990-06-11 | ||
PCT/US1991/004093 WO1991020040A1 (en) | 1990-06-11 | 1991-06-10 | Remote terminal interface as for a unixtm operating system computer |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05508037A true JPH05508037A (ja) | 1993-11-11 |
Family
ID=24135491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP91511004A Pending JPH05508037A (ja) | 1990-06-11 | 1991-06-10 | 端末装置とユーザプログラムとの間のデータ通信を実現するための装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5276896A (ja) |
EP (1) | EP0533787A1 (ja) |
JP (1) | JPH05508037A (ja) |
WO (1) | WO1991020040A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL193551C (nl) * | 1991-09-19 | 2000-01-04 | Samsung Electronics Co Ltd | Communicatiewerkwijze tussen processoren in een gedecentraliseerd meerknooppuntencentralesysteem. |
DE4207826C2 (de) * | 1992-03-12 | 1995-06-14 | Deutsche Aerospace | Bahn- und Lageregelungssystem (AOCS) mit Prüfsystem |
EP0568082A1 (en) * | 1992-04-30 | 1993-11-03 | Olympus Optical Co., Ltd. | Sewing treatment and management system using an electronic data processing apparatus |
US5450530A (en) * | 1993-11-03 | 1995-09-12 | Rockwell International Corporation | High speed receiver/transmitter interface |
US5548728A (en) * | 1994-11-04 | 1996-08-20 | Canon Information Systems, Inc. | System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory |
US5758084A (en) * | 1995-02-27 | 1998-05-26 | Hewlett-Packard Company | Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections |
US5847954A (en) * | 1995-12-28 | 1998-12-08 | Intel Corporation | Method and apparatus for using translated and raw guest keyboard input in a host shared application program |
US5978857A (en) * | 1997-07-22 | 1999-11-02 | Winnov, Inc. | Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output |
US6615383B1 (en) * | 1998-05-29 | 2003-09-02 | Sun Microsystems, Inc. | System and method for message transmission between network nodes connected by parallel links |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6154796A (en) * | 1998-09-03 | 2000-11-28 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for storing receiving frame status in a holding register |
US6161160A (en) * | 1998-09-03 | 2000-12-12 | Advanced Micro Devices, Inc. | Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains |
AUPQ732400A0 (en) * | 2000-05-05 | 2000-06-01 | Bullant Technology Pty Ltd | Resource consumer structure |
US6799317B1 (en) * | 2000-06-27 | 2004-09-28 | International Business Machines Corporation | Interrupt mechanism for shared memory message passing |
US6988122B2 (en) | 2001-01-09 | 2006-01-17 | International Business Machines Corporation | Ferris-wheel queue |
US7779178B2 (en) * | 2005-06-29 | 2010-08-17 | Intel Corporation | Method and apparatus for application/OS triggered low-latency network communications |
US8966222B2 (en) * | 2010-12-15 | 2015-02-24 | Microsoft Corporation | Message passing in a cluster-on-chip computing environment |
US9479506B2 (en) | 2014-04-16 | 2016-10-25 | Intel Corporation | At least one mechanism to permit, at least in part, allocation and/or configuration, at least in part, of at least one network-associated object |
US10922249B2 (en) * | 2019-01-15 | 2021-02-16 | Microsoft Technology Licensing, Llc | Input/output control code filter |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4293924A (en) * | 1979-05-30 | 1981-10-06 | Allen-Bradley Company | Programmable controller with high density intelligent I/O interface |
JPS5916045A (ja) * | 1982-07-16 | 1984-01-27 | Omron Tateisi Electronics Co | デ−タ収集装置 |
JPS5939188A (ja) * | 1982-08-30 | 1984-03-03 | Hitachi Ltd | 状態変化デ−タ収集方法 |
JPS59181853A (ja) * | 1983-03-31 | 1984-10-16 | Fujitsu Ltd | デ−タ伝送システム |
US4688170A (en) * | 1983-09-22 | 1987-08-18 | Tau Systems Corporation | Communications network for communicating with computers provided with disparate protocols |
US4665501A (en) * | 1983-09-30 | 1987-05-12 | Esprit Systems, Inc. | Workstation for local and remote data processing |
US4788657A (en) * | 1983-12-27 | 1988-11-29 | American Telephone And Telegraph Company | Communication system having reconfigurable data terminals |
JPS61133454A (ja) * | 1984-12-03 | 1986-06-20 | Hitachi Ltd | 端末制御方式 |
US4918589A (en) * | 1985-10-31 | 1990-04-17 | Allen-Bradley Company, Inc. | Method and apparatus for linking processors in a hierarchical control system |
US4809217A (en) * | 1985-10-31 | 1989-02-28 | Allen-Bradley Company, Inc. | Remote I/O port for transfer of I/O data in a programmable controller |
US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
US4742450A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to share copy on write segment for mapped files |
US4885677A (en) * | 1986-07-21 | 1989-12-05 | The Babcock & Wilcox Company | Automatic system for sequential control and fault detection of devices used in batch processes |
US4811216A (en) * | 1986-12-22 | 1989-03-07 | American Telephone And Telegraph Company | Multiprocessor memory management method |
US4885739A (en) * | 1987-11-13 | 1989-12-05 | Dsc Communications Corporation | Interprocessor switching network |
US4972368A (en) * | 1988-03-04 | 1990-11-20 | Stallion Technologies, Pty. Ltd. | Intelligent serial I/O subsystem |
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
US5053945A (en) * | 1988-10-06 | 1991-10-01 | Alphatronix | System and method for performing a multi-file transfer operation |
US4965717A (en) * | 1988-12-09 | 1990-10-23 | Tandem Computers Incorporated | Multiple processor system having shared memory with private-write capability |
US5086504A (en) * | 1989-02-28 | 1992-02-04 | Hewlett-Packard Co. | Method for performing computer system functions defined by a hierarchial programming language having default nodes |
-
1990
- 1990-06-11 US US07/535,721 patent/US5276896A/en not_active Expired - Lifetime
-
1991
- 1991-06-10 JP JP91511004A patent/JPH05508037A/ja active Pending
- 1991-06-10 WO PCT/US1991/004093 patent/WO1991020040A1/en not_active Application Discontinuation
- 1991-06-10 EP EP91911424A patent/EP0533787A1/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US5276896A (en) | 1994-01-04 |
WO1991020040A1 (en) | 1991-12-26 |
EP0533787A1 (en) | 1993-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4972368A (en) | Intelligent serial I/O subsystem | |
JPH05508037A (ja) | 端末装置とユーザプログラムとの間のデータ通信を実現するための装置および方法 | |
US6470398B1 (en) | Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment | |
US6078970A (en) | System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory | |
US4451898A (en) | Asynchronous interface message transmission using source and receive devices | |
US4930069A (en) | Mechanism and method for transferring data between bus units having varying master and slave DMA capabilities | |
US5410709A (en) | Mechanism for rerouting and dispatching interrupts in a hybrid system environment | |
EP0201567B1 (en) | Flow control between a data terminal and a host computer system | |
EP0309676B1 (en) | Workstation controller with full screen write mode and partial screen write mode | |
JP2809389B2 (ja) | プログラムの遠隔呼出方法及び装置 | |
US8359602B2 (en) | Method and system for task switching with inline execution | |
JP2859178B2 (ja) | プロセッサ間データ転送方式及びプロセッサ間データ転送用リングバッファメモリ | |
KR100482316B1 (ko) | 운영체제상에서의콘솔서버방법및장치 | |
JPS59146347A (ja) | プロセス間通信方式 | |
JPS5921051B2 (ja) | 通信制御装置 | |
JP2752834B2 (ja) | データ転送装置 | |
JPS6245575B2 (ja) | ||
JP2000347881A (ja) | 複数プロセス間通信方法及びその装置並びに情報記録媒体 | |
Lindgård et al. | Hierarchical multi‐level computer network for laboratory automation | |
Parish | Evaluation of a screen management protocol | |
Austin et al. | Linking a CYBER76 to a 3600 | |
JPH0512153A (ja) | 制御装置の通信テキスト処理方式 | |
JPS6382536A (ja) | チヤネル装置 | |
JPS62196755A (ja) | デ−タ処理方法 | |
Raffi | Remote terminal communication with RSX-11M |