JPH04215158A - データ転送制御方法及びインタフェース・システム - Google Patents

データ転送制御方法及びインタフェース・システム

Info

Publication number
JPH04215158A
JPH04215158A JP3023721A JP2372191A JPH04215158A JP H04215158 A JPH04215158 A JP H04215158A JP 3023721 A JP3023721 A JP 3023721A JP 2372191 A JP2372191 A JP 2372191A JP H04215158 A JPH04215158 A JP H04215158A
Authority
JP
Japan
Prior art keywords
task
tasks
port
scheduled
ports
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3023721A
Other languages
English (en)
Other versions
JPH0727503B2 (ja
Inventor
John T Adkins
ジョン・サーマン・アドキンス
James S Pogorzelski
ジェムス・スタンレイ・ポゴゼルスキ
Jacqueline H Wilson
ジャクリーン・ヘゲジュス・ウイルソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH04215158A publication Critical patent/JPH04215158A/ja
Publication of JPH0727503B2 publication Critical patent/JPH0727503B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にディジタル・コン
ピュータ・システム、特にホスト・コンピュータ・シス
テムを直列通信ライン(回線)とインタフェースさせる
サブシステムに関する。
【0002】
【従来の技術】最新のコンピュータ・システムにとって
外部との通信は極めて重要である。システムによっては
同時に動作する幾つかの直列通信リンクを持っている。 同時に動作する多重リンクを制御することは全体のシス
テム・パフォーマンスを低下させる要求をシステム・プ
ロセッサに負わせることがある。
【0003】このパフォーマンス問題の1つの解決方法
は ”高性能” 通信アダプタを使用することである。 これらのアダプタは通信セッションの低いレベルの項目
の全てを処理する。該アダプタはこれらのホスト・シス
テムと通信し、割合に大きなブロックでデータを転送す
る。 受取ったデータ及び送信されるデータはどちらも該アダ
プタとホスト・システムの間でブロック転送により転送
される。前記転送に直接メモリ・アクセス(DMA)を
用いてホスト中央プロセッサの負担を更に軽減すること
ができる。
【0004】アダプタの数が限定されているシステムで
複数の通信ポートを提供するためには、1つのアダプタ
に幾つかのポートを接続することができる。しかしなが
ら、このアプローチは重要な問題を提起することがある
。幾つかの独立したポートに関するデータ及びコマンド
の処理は、特に高い通信速度で、かなり複雑になること
がある。異なる速度及びプロトコルが異なる通信ポート
に用いられると、問題は非常に深刻になる。アダプタが
全ての通信ポートのタイミングのよい処理を保証するこ
とは困難になる。
【0005】データを喪失せずに複数の独立したポート
を処理できる通信ポート・アダプタとして用いるのに適
したシステムが提供されることが望ましい。
【0006】
【発明が解決しようとする課題】本発明の目的はホスト
・コンピュータ・システムで通信ポート・アダプタとし
て用いるのに適したシステムを提供することである。
【0007】本発明のもう1つの目的は1つのアダプタ
で複数の通信ポートが支援され、各々のポートは他のポ
ートに関係なく動作するシステムを提供することである
【0008】更に本発明のもう1つの目的はどのポート
でもデータが失われないことを保証するように通信ポー
トが処理されるシステムを提供することである。
【0009】
【課題を解決するための手段】本発明に従って、直列通
信アダプタは物理的な通信ポートとのインタフェースを
提供する。アダプタで実行するスケジューラは異なる優
先順位レベルでタスクをスケジュールし、時間が重要な
タスクはデータを喪失しないように速やかに実行される
。通信ポートを介して送信されるデータ又は受信された
データはアダプタのバッファに記憶され、アダプタとホ
スト・システムの間のデータ及びコマンドの通信はDM
Aチャネルによって実行されることが望ましい。
【0010】
【実施例】図2で、一般にホスト・システムと呼ばれる
コンピュータ・システムは参照番号10で示す。ホスト
・システム10はシステム・バス16に接続された中央
プロセッサ12及びメイン・メモリ14を含む。1以上
のユーザ・インタフェース入出力装置18もシステム・
バス16に接続される。これらのユーザ・インタフェー
ス入出力装置18は一般に表示装置及びキーボードを含
み、そして大抵はマウスのような指示装置を含む。
【0011】大容量記憶入出力装置20もシステム・バ
ス16に接続され、ホスト・システム10及び1以上の
大容量記憶装置をインタフェースすることが望ましい。 これらの装置は一般に磁気ディスク装置又は光学ディス
ク装置を含む。システムによっては、前記大容量記憶入
出力装置20を含まず、代りにネットワークに接続され
た遠隔の大容量記憶装置に依存する。直列入出力アダプ
タ22もシステム・バス16に接続することが望ましい
。良好な実施例では、前記アダプタ22はホスト・シス
テム10と複数の直列通信ポートの間の通信を提供する
。技術的に既知の種々の他の装置がホスト・システム1
0に含まれることもある。
【0012】図2のシステムはメインのシステム・バス
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の機能を実行する。
【0014】4つの直列ポート・インタフェース32、
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転送を開
始する時期を決める。
【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の全てのデータを転送する。
【0017】アダプタ22の動作を制御するために、中
央プロセッサ28は後で説明する幾つかの異なるルーチ
ンを実行する。次にどのタスクを実行すべきかを決める
タスク・スケジューラ・ルーチンは非常に重要である。 システム・バス・インタフェース24を介してシステム
・バス16へ又はシステム・バス16からのDMA転送
をセットアップし、アダプタ・メモリ30と通信ポート
の間の送受信動作をセットアップし且つ種々の誤り条件
を処理するための種々のルーチンは中央プロセッサ28
によって実行される。
【0018】図3はアダプタでタスクをスケジュールす
るのに用いることが望ましいスケジューラ作業テーブル
50を示す。異なるタスクは図3に示すレベル0からレ
ベル6までの異なる優先順位レベルで動作する。実際に
使用される優先順位の数は特定の実施例に適合するよう
に必要に応じて変更できる。優先順位レベル0は最高の
優先順位であり、優先順位レベル6は最低の優先順位で
ある。
【0019】優先順位の各々は実行待ちのタスクを示す
エントリーを有する。優先順位レベル1〜6の各々はア
ダプタの各々の通信ポートに対応する1つのエントリー
を持つビットマップから成る。もしどれか特定のビット
の値が1であれば、対応するポートはスケジュールされ
た対応するタスクを持っている。
【0020】スケジューラ作業テーブル50にあるビッ
トは種々の割込みハンドラ及び後で詳細に説明するタス
クの実行によりセットされる。ハードウェア割込みが起
きると、適切なハンドラは、どのルーチンを呼出して処
理するかを決定し、スケジューラ作業テーブル50にあ
るビットをセットして前記ルーチンをスケジュールする
。ルーチンが実行されると、該ハンドラはテーブル50
にあるビットをセットして他のルーチンをスケジュール
できる。一般にそれ自身のビットをリセットすることに
より、それ自身がスケジュール解除(unschedu
le)される。
【0021】最高の優先順位レベル、レベル0は現にス
ケジュールされた、当該優先順位レベルのタスクの数を
示すカウンタとして用いられる。この動作の相違点は後
で詳細に説明する。実施例によっては、他の優先順位レ
ベルをこのように用いるか又は全く用いないことが望ま
しいことがある。
【0022】最高の優先順位レベルはシステム・バスD
MA転送を実行するタスクである。タスクがシステム・
バスDMA転送を必要とする毎にレベル0カウンタが増
分され、必要な識別情報がアダプタ・メモリ30にある
リストに加えられる。1つのシステム・バスDMAチャ
ネルだけが使用可能であるから、任意の所与の時刻に1
つのシステム・バスDMAタスクだけが動作できる。残
りのタスクはどれも現に実行中のシステム・バスDMA
タスクが終了し、該残りのタスクが実行できるようにな
るまで待たなければならない。後で説明するようにシス
テム・バスDMAタスクを実行している間に他のタスク
もアダプタで実行することができる。
【0023】通信ポートがフレームを受信し終ったとき
レベル1のタスクが呼出され、受信されたフレームの妥
当性を種々のステップを用いて検査しなければならない
。データ受信タスクは受信されたフレームを検査し、誤
りがあればフラグを立てる。データ受信タスクはシステ
ム・バスにより該受信フレームをホストにDMA転送す
ることもスケジュールする。
【0024】次の優先順位レベル2のタスクはデータ送
信タスクである。このタスクはアダプタ・メモリ30か
ら適切な通信ポートへのデータ転送を開始する。ポート
を介して通信されるデータのフレームのアセンブルが終
るか又は前のフレームが送信を終了すると、データ送信
タスクがスケジュールされる。
【0025】レベル3のタスクは通信ポートに誤りが現
われる毎に呼出される誤り/状況タスクである。このタ
スクによって処理される誤りのタイプは制御信号の予期
しない変更並びにデータ伝送誤りのようなライン誤りを
含むことが望ましい。
【0026】後に説明する状況では、ポートによって生
成される種々の事象即ちデータの送信又は受信はキュー
(待ち行列)に入れて後の処理を待たなければならない
。レベル4はポート応答キューでエントリーを処理する
タスクである。同様に、レベル5は後の処理を待つため
にキューに入れられているポートに送られるコマンドを
処理するタスクである。ポート応答キュー及びポート・
コマンド・キューの使用は通信ポートがその最新の動作
を終了するのを待たことなく種々のタイプの処理を実行
できるようにする。例えば、ホスト・システムに都合の
よいときにコマンドをポートに送ることができ、それら
のコマンドはポートに印加されるまでキューに駐在する
。到来する事象は直列入出力アダプタ22で中央プロセ
ッサ28がそれらを処理できるまでポート応答キューに
記憶される。
【0027】最低の優先順位、レベル6は非活動状態に
なっているタスクを活動化するために使用される。時に
は所定の事象が起きるまでタスクの動作を延期させるこ
とが望ましい。後で説明するように、このタスクは非活
動状態にすることができるので延期されたままである。 所定の事象が起きると、該事象に関連した割込みハンド
ラはポート応答キュー・タスクをスケジュールし、スケ
ジューラ作業テーブル50のレベル6の適切なビットを
セットする。当該ポートの活動化タスクが選択され実行
されると、該延期されたタスクは実行を再開する。
【0028】図4、図5及び図6はタスクをスケジュー
ルし実行する方法を示す。スケジューラは図4で無限ル
ープを実行する。現に選択されたタスク又はプロセスは
終了に至るまでステップ60で実行される。タスクの実
行が終了すると、スケジューラはタスクがスケジュール
される最高の優先順位レベルをステップ62で選択する
。次にステップ64でスケジューラは実行されるタスク
を当該優先順位レベルの範囲内で選択する。選択された
優先順位レベルで2以上のタスクが実行されるように選
択されると、ラウンドロビン方式が用いられ、次にどの
タスクを実行すべきかを決定する。これは、全てのポー
トを同等に処理すること、及び同じ優先順位レベルでタ
スクがスケジュールされている全ての他のポートがサー
ビスされるまでどのポートも所与の優先順位レベルのど
れかでタスクを実行しないことを保証する。タスクが選
択されたのち、制御はステップ60に戻り、該選択され
たタスクが実行される。
【0029】ステップ62および64は極めて速やかに
動作し、割込みできないことが望ましい。なぜなら、し
ばしば起きることがある種々の割込みはスケジューラ作
業テーブル50の更新によってタスクをスケジュールし
、この動作はステップ62及び64の選択プロセスを妨
げるからである。ステップ60のプロセス実行は割込み
可能であり、システム及び通信ポートにより生成された
種々のハードウェア割込みが用いられ、スケジューラ作
業テーブル50内のタスクが更にスケジュールされる。
【0030】図5は割込みを処理する一般的な方法を示
す。アダプタ22でハードウェア割込みが起きると、中
央プロセッサ28の制御は汎用割込みルーチンに移され
る。このルーチンはステップ66で割込みの種類を識別
し、適切な割込みハンドラを実行する。ステップ68で
実行する割込みハンドラは非常に短く且つ割込み不可能
にすることが望ましい。割込みハンドラは一般に割込み
の原因を明らかにし、定期的にスケジュールされたタス
クの1つが見つけることができる適切な領域に1つか2
つのデータ項目をコピーし、ステップ70でスケジュー
ラ作業テーブル50を更新して適切なタスクをスケジュ
ールする。従って、ステップ60でタスクが実行されて
いる間に、追加して実行されるタスクが種々の割込みハ
ンドラによって作業テーブル50でスケジュールされる
【0031】図5の方法は種々のタスクの優先使用を不
可能にするときに使用される。換言すれば、実行中のタ
スクが終了してから別のタスクがスケジューラにより開
始される。大抵のタスクはかなり短いから、これによっ
て大抵のシステムでは問題は生じない。しかしながら、
希望があれば種々のタスクの優先使用を可能にすること
ができる。もしそうなれば、より高い優先順位のタスク
の割込みによるスケジューリングは現在のタスクの実行
を延期させ、より高い優先順位のタスクが直ちに実行さ
れる。図6はこのような状況における割込み処理の流れ
図を示す。
【0032】ハードウェア割込みが起きると、割込みの
種類がステップ72で識別され、ステップ74で適切な
割込みハンドラが実行される。前述のように、割込みハ
ンドラを実行することにより、ステップ76でスケジュ
ーラ作業テーブル50が更新される。そしてステップ7
8で、現に実行中のタスクよりも高い優先順位を持つ作
業がスケジュールされているかどうかを検査する。ステ
ップ80で、より高い優先順位のタスクがスケジュール
されていなければ、現在のタスクの実行が再開される。 もしステップ74で、より高い優先順位のタスクが割込
みハンドラの実行中にスケジュールされたならば、現に
実行中のプロセスはステップ82で中断され、該より高
い優先順位のプロセスの実行を開始するために再びスケ
ジューラが呼出される。
【0033】図7はアダプタ・メモリ30内に記憶され
た重要なデータ構造の一部を示す。メモリ30の主要部
分は送受信バッファ90によって取出すことが望ましい
。これらのバッファ90はメモリ30内で自由に使用で
きる空間から動的に割振られる。送受信バッファ90の
ために自由に使用できる空間のリストは技術的に既知の
方法で維持される。
【0034】ベクトル・テーブル91は種々のタスク及
び割込みで使用するために割振られる。スタック92は
一時的にデータを記憶するためにポート毎に独立して割
振られる。従って、アダプタ22に4つの通信ポートが
設けられると、メモリ30内に4つのスタックが割振ら
れる。別のスタック93はスケジューラによって使用さ
れ、他のポートも、対応するポートがアクセスする種々
のデータ構造を指すポインタを含むポート制御ブロック
94を有する。ポート・コマンド・キュー96はポート
毎に、該ポートに送られたコマンドを含むFIFOキュ
ーを提供する。ポートに送られたコマンドの各々は、ポ
ート・コマンド・エレメントと呼ばれる標準的なサイズ
のデータ構造に入れられ、各々のキューのコマンドは循
環バッファに入れられる。
【0035】ホストに又はホストから送られるデータを
必要とするポート・コマンドが実行されると、該データ
転送プロセスが終了するまで、前記ポートのそれ以上の
コマンドは実行することができない。システムによって
は、ポートを介してデータを転送するピンポン・バッフ
ァを用いることができる。前記の場合、もしポートの1
チャネルが活動状態であれば、他のチャネルは次の転送
のためにセットアップすることができる。ポート・コマ
ンド・キュー96で待っているポート・コマンドは他の
バッファを準備するために実行することができる。
【0036】ポートの各々はポート・コマンド・キュー
96と同様に循環バッファから成る対応するポート応答
キュー98も持っている。ポート応答キュー98はシス
テムが処理せねばならない対応するポートによって生成
されたエントリーを含む。もしポートのシステム・バス
DMA転送が実行中であれば、該ポートが生成している
全ての前記応答はポート応答キュー98に送付されねば
ならない。そのうえ、もしポートが非活動状態であれば
、所定の事象の発生によって活動化させるために該ポー
トによって生成された全ての応答は適切なポート応答キ
ュー98に送付される。
【0037】アダプタ・メモリ30内には、スケジュー
ラ、種々のスケジュールされたタスク及び割込みハンド
ラの実行可能コード100もある。技術的に既知の一時
変数記憶に用いる幾つかの他の位置はアダプタ・メモリ
30にあるが、図7には特に図示しない。スケジューラ
作業テーブル50もメモリ30に含まれる。
【0038】図8はシステム・バスDMAタスクの動作
を示す。前述のように、システム・バス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が開始されると、制御はスケジューラに戻り
、新たに実行されるタスクを選択する。
【0040】しばらくして、ステップ114でシステム
・バスDMA転送が終了する。この時点で、追加のタス
クをステップ116でスケジュールする必要がある。そ
してスケジューラ作業テーブル50のレベル0エントリ
ーがステップ118で復元される。テーブル50のレベ
ル0に戻される値はそれが復元される前に減分されるこ
とが望ましい。
【0041】もしデータをホスト・システムからアダプ
タ22に転送するDMA送信が発生していれば、ポート
・コマンド・キュー96にかかっているロック(後で説
明する)を外す必要がある。そしてポート・コマンド・
キューのタスクがスケジュールされる。データをアダプ
タ22からホスト・システムに転送するDMA受信が終
了すると、ポート応答キュー98のタスクがスケジュー
ルされる。そして当該ポートの応答事象のポート応答キ
ュー98への送付を生じる大域フラグがクリアされ、ポ
ート応答を通常通り処理することができる。これらの動
作の全てはステップ116で行われる。
【0042】図9はデータ送信タスクの動作を示す。フ
レーム割込みの終りがポートによる送信動作の終了を示
すとき、このタスクがスケジュールされる。最初にステ
ップ120で、タスクは関連情報をポート制御ブロック
に入れて終了を合図する。そしてステップ122で、送
信バッファがクリアされ自由になる。ステップ124で
、スケジューラ作業テーブル50に適切なビットをセッ
トすることによりポート・コマンド・キューのタスクが
スケジュールされる。もしステップ126でもう1つの
フレームが送信可能であれば、ステップ128で送信を
開始し、タスクは終了する。もしステップ126で送信
可能なフレームがなければ、タスクは単にリターンする
【0043】図10はデータ受信タスクにより実行され
るステップを示す。最初にステップ130で、通信ポー
トに用いる通信プロトコルを特に処理するためにコード
化されている手順が呼出される。通信ポートに用いるプ
ロトコルは対応するポート制御ブロック94に含まれた
適切な値で指示される。ブロック132に示すステップ
は実際にプロトコル特定手順によって実行される。受信
フレームはステップ134で処理され、ステップ136
で適切なエントリーがポート応答キュー98に加えられ
る。もし受信データ・フレーム内に誤りが起これば、誤
り/状況タスクをスケジュールできる。
【0044】図11は誤り/状況タスクにより実行され
るステップを示す。ステップ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でスケジュール解除さ
れる。
【0046】図13はポート・コマンド・キュー96の
タスクにより実行されるステップを示す。一般に、この
タスクはポート・コマンド・キュー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のエントリーはスケジュール解除される
【0048】図14はタスクがそれ自身を非活動化し次
いで活動化されるときに実行されるステップを示す。最
初にステップ190でポートの SLEEP−ENAB
LE(非活動化イネーブル) 変数がセットされる。タ
スクはステップ191で非活動状態に移行し、ステップ
192で該ポートの現在のコンテキスト(情況)はスタ
ックに保管される。SLEEP−ENABLE変数をス
テップ190でセットすることにより、該ポートで生成
された応答はどれもポート応答キュー98に送られる。 そして非活動状態に移行しているタスクはステップ19
4で脱出し、他の処理が行われる。他の処理が行われて
いる間、ステップ192で保管されたコンテキストはそ
のままポート・スタック92に残る。
【0049】新しい事象がポート応答キュー98に加え
られると、ポート応答キュー98のタスクは非活動状態
のタスクを活動化し、ステップ196で前記コンテキス
トはスタックから復元される。ステップ198でこの活
動化事象が終末条件に達したかどうかを判定する検査が
行われる。もし達していなければ、タスクは単にステッ
プ191に戻り非活動状態に移行する。もし前記事象に
より実際にタスクが活動化されれば、ステップ200で
その実行が再開される。タスクが終了すると、SLEE
P−ENABLE変数はリセットされる。タスクはその
実行中の後の段階でそれ自身を再び非活動状態にし、前
述のシーケンスの事象を反復させることができる。
【0050】非活動状態のタスクの活動化はスケジュー
ル可能な最下位レベルのタスクであるから、前記タスク
が活動化されたとき、ホスト・システム10はステップ
192でスタックに保管されたコンテキストをスタック
の最上部のフレームとして取得することが保証される。 活動化は他のタスク又は割込みによってもスケジュール
され、スケジューラ作業テーブル50のレベル6に適切
なビットをセットする。
【0051】前述のシステムはアダプタ22で種々の通
信サブタスクの優先順位スケジューリングを可能にする
。支援可能な優先順位レベルの数及び通信ポート数は基
本的なスケジューラを変更することなく容易に拡張され
る。良好な実施例のアダプタは2つの異なるレベルのD
MA転送を支援する。1つのレベルはアダプタ・バス2
6によって実行されるDMA転送であり、もう1つのレ
ベルはシステム・バス・インタフェース24によって実
行されるシステム・バス16によるDMA転送である。
【0052】タスクは時間的に最も重要なタスクが最高
の優先順位を持つように良好なスケジューラ作業テーブ
ル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  実行可能コード

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】複数の通信ポートとホスト・システムの間
    のデータ転送を制御する方法であって、該ポートと中間
    メモリの間、及び中間メモリとホスト・システムの間の
    データ転送の部分を実行する複数のタスクを規定し、優
    先順位を該規定されたタスクに割当て、該ポートで起き
    る事象に応答してホスト・システム内で実行されるタス
    クをスケジュールし、且つタスクが終了すると、次に実
    行するタスクとして全てのスケジュールされたタスクの
    中から最高優先順位を持つタスクを選択するデータ転送
    制御方法。
  2. 【請求項2】請求項1記載の方法であって、ラウンドロ
    ビン方式を用いてスケジュールされる全てのポートのタ
    スクが実行されるデータ転送制御方法。
  3. 【請求項3】請求項1記載の方法であって、前記スケジ
    ューリング・ステップは、対応するテーブル・エントリ
    ーに情報を書込むことによって、スケジュールされる各
    々の規定されたタスクのエントリーを取得するテーブル
    を供給するステップを含むデータ転送制御方法。
  4. 【請求項4】請求項3記載の方法であって、テーブル内
    の少なくとも1つのエントリーはポートのうちの1つに
    各々が対応する複数のサブエントリーを有し、対応する
    サブエントリーに情報を書込むことによって、実行され
    るポートのタスクがスケジュールされるデータ転送制御
    方法。
  5. 【請求項5】請求項4記載の方法であって、各々のサブ
    エントリーは1つのデータ・ビットを含むデータ転送制
    御方法。
  6. 【請求項6】請求項3記載の方法であって、テーブル内
    の少なくとも1つのエントリーは対応するタスクがスケ
    ジュールされた回数のカウントを表わし、該エントリー
    内の値を増分することによりタスクがスケジュールされ
    るデータ転送制御方法。
  7. 【請求項7】請求項1記載の方法であって、タスクをス
    ケジュールする事象はホスト・システム又はポートによ
    って呼出されるハードウェア割込みを含むデータ転送制
    御方法。
  8. 【請求項8】請求項7記載の方法であって、タスクをス
    ケジュールする事象は更にスケジュールされたタスクの
    実行を含むデータ転送制御方法。
  9. 【請求項9】複数の通信ポートとホスト・システムをイ
    ンタフェースするインタフェース・システムであって、
    ホスト・システムとのインタフェース、中間メモリ、該
    インタフェース・システムの動作を制御するプロセッサ
    、複数の通信ポート、前記ホスト・インタフェース、前
    記中間メモリ、前記プロセッサ及び前記通信ポートを接
    続するバス、前記プロセッサによって実行される複数の
    通信タスク及び前記タスクの実行をスケジュールする手
    段を含むインタフェース・システム。
  10. 【請求項10】請求項9記載のシステムであって、通信
    タスクの各々は優先順位レベルを割当てられ、より高い
    優先順位レベルを有するスケジュールされたタスクはよ
    り低い優先順位を有するスケジュールされたタスクより
    も前に実行されるインタフェース・システム。
  11. 【請求項11】請求項10記載のシステムであって、前
    記スケジュールする手段は前記タスクに対応するエント
    リーを有するテーブルを含み、対応するテーブル・エン
    トリーに情報を書込むことによってタスクがスケジュー
    ルされるインタフェース・システム。
  12. 【請求項12】請求項11記載のシステムであって、ホ
    スト・システム及び前記通信ポートによって生じた割込
    みに応答して該テーブル・エントリーに情報が書込まれ
    るインタフェース・システム。
  13. 【請求項13】請求項12記載のシステムであって、タ
    スクを実行することによってテーブル・エントリーにも
    情報が書込まれるインタフェース・システム。
  14. 【請求項14】請求項11記載のシステムであって、少
    なくとも1つのエントリーは前記通信ポートの1つに各
    々が対応する複数のビットを含み、実行される前記ポー
    トの1つのタスクはその対応するビットに書込むことに
    よってスケジュールされるインタフェース・システム。
JP3023721A 1990-02-14 1991-01-25 データ転送制御方法及びインタフェース・システム Expired - Fee Related JPH0727503B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/479,777 US5247671A (en) 1990-02-14 1990-02-14 Scalable schedules for serial communications controller in data processing systems
US479777 1990-02-14

Publications (2)

Publication Number Publication Date
JPH04215158A true JPH04215158A (ja) 1992-08-05
JPH0727503B2 JPH0727503B2 (ja) 1995-03-29

Family

ID=23905385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3023721A Expired - Fee Related JPH0727503B2 (ja) 1990-02-14 1991-01-25 データ転送制御方法及びインタフェース・システム

Country Status (10)

Country Link
US (1) US5247671A (ja)
EP (1) EP0442615B1 (ja)
JP (1) JPH0727503B2 (ja)
KR (1) KR950002713B1 (ja)
CN (1) CN1021536C (ja)
AU (1) AU649642B2 (ja)
DE (1) DE69130620T2 (ja)
MY (1) MY105323A (ja)
NZ (1) NZ236764A (ja)
SG (1) SG42809A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07107114A (ja) * 1993-10-01 1995-04-21 Nec Corp 遠隔オフィスネットワーク用システムとその通信方法
US6681260B1 (en) 1999-04-21 2004-01-20 Nec Corporation Data transfer method in function expansion system
JP2011048844A (ja) * 2003-02-11 2011-03-10 Thomson Licensing 非同期通信技術

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3055917B2 (ja) * 1990-05-22 2000-06-26 日本電気株式会社 データ転送制御装置
WO1992017796A1 (en) * 1991-03-28 1992-10-15 The Commonwealth Of Australia Radar control task scheduling
US5293486A (en) * 1991-06-28 1994-03-08 Digital Equipment Corporation Deterministic method for allocation of a shared resource
US5469571A (en) * 1991-07-15 1995-11-21 Lynx Real-Time Systems, Inc. Operating system architecture using multiple priority light weight kernel task based interrupt handling
US5313627A (en) * 1992-01-02 1994-05-17 International Business Machines Corp. Parity error detection and recovery
US5471586A (en) * 1992-09-22 1995-11-28 Unisys Corporation Interface system having plurality of channels and associated independent controllers for transferring data between shared buffer and peripheral devices independently
US5471618A (en) * 1992-11-30 1995-11-28 3Com Corporation System for classifying input/output events for processes servicing the events
US5717870A (en) * 1994-10-26 1998-02-10 Hayes Microcomputer Products, Inc. Serial port controller for preventing repetitive interrupt signals
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
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
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
DE19535546B4 (de) * 1995-09-25 2004-04-08 Siemens Ag Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
US5925105A (en) * 1995-12-28 1999-07-20 Intel Corporation Preventing processor domination during background data transfer in multipoint conferencing
US5754776A (en) * 1995-12-28 1998-05-19 Intel Corporation Re-prioritizing background data transfers in multipoint conferencing
US5802282A (en) * 1995-12-28 1998-09-01 Intel Corporation Recovering missing data during background data transfer in multipoint conferencing
US7116635B2 (en) * 1996-03-28 2006-10-03 Hitachi, Ltd. Process execution method and apparatus
US6400819B1 (en) * 1996-03-28 2002-06-04 Hitachi, Ltd. Method and apparatus for executing communication in real-time and data structure for real-time data communication
US5974496A (en) * 1997-01-02 1999-10-26 Ncr Corporation System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
US6243751B1 (en) 1997-06-11 2001-06-05 Oracle Corporation Method and apparatus for coupling clients to servers
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
US6266715B1 (en) 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6061709A (en) * 1998-07-31 2000-05-09 Integrated Systems Design Center, Inc. Integrated hardware and software task control executive
US6098142A (en) * 1998-08-25 2000-08-01 Leggett; John D. Apparatus and method for using a communications port in polling mode and without interrupts
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
KR100617228B1 (ko) * 1999-03-19 2006-08-31 엘지전자 주식회사 실시간 운영체계 커널의 이벤트 전달 체계 구현방법
US6584517B1 (en) 1999-07-02 2003-06-24 Cypress Semiconductor Corp. Circuit and method for supporting multicast/broadcast operations in multi-queue storage devices
US6603771B1 (en) 1999-07-02 2003-08-05 Cypress Semiconductor Corp. Highly scalable architecture for implementing switch fabrics with quality of services
US6628656B1 (en) 1999-08-09 2003-09-30 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
US6625177B1 (en) 1999-08-09 2003-09-23 Cypress Semiconductor Corp. Circuit, method and/or architecture for improving the performance of a serial communication link
AU7098500A (en) 1999-09-01 2001-03-26 Intel Corporation Branch instruction for processor
US7546444B1 (en) 1999-09-01 2009-06-09 Intel Corporation Register set used in multithreaded parallel processor architecture
US6477610B1 (en) * 2000-02-04 2002-11-05 International Business Machines Corporation Reordering responses on a data bus based on size of response
US7089344B1 (en) 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
US7236976B2 (en) * 2000-06-19 2007-06-26 Aramark Corporation System and method for scheduling events and associated products and services
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6741530B2 (en) * 2001-01-25 2004-05-25 Dphi Acquisitions, Inc. Time critical and non-time critical tasks control system for an optical disk using first and second processors
US7522480B2 (en) 2001-01-25 2009-04-21 Dphi Acquisitions, Inc. Digital tracking servo system with multi-track seek with an acceleration clamp
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US20030065809A1 (en) * 2001-10-03 2003-04-03 Adc Telecommunications, Inc. Scheduling downstream transmissions
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7243367B2 (en) * 2002-01-31 2007-07-10 Brocade Communications Systems, Inc. Method and apparatus for starting up a network or fabric
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
DE10218646A1 (de) * 2002-04-25 2003-11-13 Infineon Technologies Ag An einen Bus angeschlossene Einrichtung
US6792481B2 (en) * 2002-05-30 2004-09-14 Freescale Semiconductor, Inc. DMA controller
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US20050021842A1 (en) * 2003-03-17 2005-01-27 Network Equipment Technologies Real-time packet classification and rate-limiting control packets in a network processor based data-plane
US20040184462A1 (en) * 2003-03-17 2004-09-23 Network Equipment Technologies Sliding window implementation for regulating packets for protocol-based connections
US7353285B2 (en) * 2003-11-20 2008-04-01 International Business Machines Corporation Apparatus, system, and method for maintaining task prioritization and load balancing
TWI283394B (en) * 2004-03-31 2007-07-01 Mstar Semiconductor Inc Data processing method and structure of a multi-function display
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7730257B2 (en) * 2004-12-16 2010-06-01 Broadcom Corporation Method and computer program product to increase I/O write performance in a redundant array
CA2585295C (en) * 2004-12-22 2011-05-10 Pika Technologies Inc. System and method for synchronous processing of media data on an asynchronous processor
DE102004062116B3 (de) * 2004-12-23 2006-05-11 Ab Skf Lageranordnung für einen Computertomographen
US7386642B2 (en) * 2005-01-28 2008-06-10 Sony Computer Entertainment Inc. IO direct memory access system and method
US7680972B2 (en) * 2005-02-04 2010-03-16 Sony Computer Entertainment Inc. Micro interrupt handler
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
GB2433333B (en) 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US7809068B2 (en) 2005-12-28 2010-10-05 Intel Corporation Integrated circuit capable of independently operating a plurality of communication channels
US7861113B2 (en) * 2007-03-16 2010-12-28 Dot Hill Systems Corporation Method and apparatus for operating storage controller system in elevated temperature environment
US8549038B2 (en) * 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
US20130060587A1 (en) * 2011-09-02 2013-03-07 International Business Machines Corporation Determining best time to reach customers in a multi-channel world ensuring right party contact and increasing interaction likelihood
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US20180089117A1 (en) * 2016-09-26 2018-03-29 Wave Computing, Inc. Reconfigurable fabric accessing external memory
US10949328B2 (en) 2017-08-19 2021-03-16 Wave Computing, Inc. Data flow graph computation using exceptions
US10997102B2 (en) 2019-04-01 2021-05-04 Wave Computing, Inc. Multidimensional address generation for direct memory access
US11934308B2 (en) 2019-04-01 2024-03-19 Wave Computing, Inc. Processor cluster address generation
CN111444124A (zh) * 2020-03-25 2020-07-24 苏州琅润达检测科技有限公司 一种高频自主请求的串口分流装置
US11914864B2 (en) 2021-07-01 2024-02-27 Samsung Electronics Co., Ltd. Storage device and method of data management on a storage device
TWI792684B (zh) * 2021-11-17 2023-02-11 瑞昱半導體股份有限公司 資料傳輸方法以及資料傳輸系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6356736A (ja) * 1986-08-28 1988-03-11 Alps Electric Co Ltd マルチタスクosにおける入力装置とプログラムとの結合方式
JPH01193955A (ja) * 1988-01-28 1989-08-03 Nec Software Ltd 受信データの蓄積方式

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3587054A (en) * 1968-09-06 1971-06-22 Bell Telephone Labor Inc Scheme allowing real time alteration of a data processing system operating strategy
US3599162A (en) * 1969-04-22 1971-08-10 Comcet Inc Priority tabling and processing of interrupts
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4261033A (en) * 1977-01-19 1981-04-07 Honeywell Information Systems Inc. Communications processor employing line-dedicated memory tables for supervising data transfers
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses
US4814974A (en) * 1982-07-02 1989-03-21 American Telephone And Telegraph Company, At&T Bell Laboratories Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements
US4494194A (en) * 1982-09-30 1985-01-15 Burroughs Corporation Line support processor for data transfer system
US4479211A (en) * 1982-10-29 1984-10-23 At&T Bell Laboratories Method and apparatus for controlling ports in a digital conference arrangement
US4493036A (en) * 1982-12-14 1985-01-08 Honeywell Information Systems Inc. Priority resolver having dynamically adjustable priority levels
US4667321A (en) * 1983-11-14 1987-05-19 Tandem Computers Incorporated Input-output multiplexer-demultiplexer communications channel
US4636944A (en) * 1984-01-17 1987-01-13 Concurrent Computer Corporation Multi-level priority micro-interrupt controller
US4870566A (en) * 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
CA1241761A (en) * 1985-02-28 1988-09-06 International Business Machines Corporation Interrupt driven prioritized work queue
US4980820A (en) * 1985-02-28 1990-12-25 International Business Machines Corporation Interrupt driven prioritized queue
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US4858108A (en) * 1985-03-20 1989-08-15 Hitachi, Ltd. Priority control architecture for input/output operation
US4751634A (en) * 1985-06-14 1988-06-14 International Business Machines Corporation Multiple port communications adapter apparatus
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4747130A (en) * 1985-12-17 1988-05-24 American Telephone And Telegraph Company, At&T Bell Laboratories Resource allocation in distributed control systems
US4739323A (en) * 1986-05-22 1988-04-19 Chrysler Motors Corporation Serial data bus for serial communication interface (SCI), serial peripheral interface (SPI) and buffered SPI modes of operation
US4821177A (en) * 1986-09-02 1989-04-11 Honeywell Bull Inc. Apparatus for controlling system accesses having multiple command level conditional rotational multiple port servicing priority hierarchy
US4803623A (en) * 1986-10-31 1989-02-07 Honeywell Bull Inc. Universal peripheral controller self-configuring bootloadable ramware
WO1988003682A1 (en) * 1986-11-04 1988-05-19 Unisys Corp I/o system for off-loading operating system functions
US4901226A (en) * 1987-12-07 1990-02-13 Bull Hn Information Systems Inc. Inter and intra priority resolution network for an asynchronous bus system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6356736A (ja) * 1986-08-28 1988-03-11 Alps Electric Co Ltd マルチタスクosにおける入力装置とプログラムとの結合方式
JPH01193955A (ja) * 1988-01-28 1989-08-03 Nec Software Ltd 受信データの蓄積方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07107114A (ja) * 1993-10-01 1995-04-21 Nec Corp 遠隔オフィスネットワーク用システムとその通信方法
US6681260B1 (en) 1999-04-21 2004-01-20 Nec Corporation Data transfer method in function expansion system
JP2011048844A (ja) * 2003-02-11 2011-03-10 Thomson Licensing 非同期通信技術

Also Published As

Publication number Publication date
CN1054160A (zh) 1991-08-28
KR950002713B1 (ko) 1995-03-24
NZ236764A (en) 1995-07-26
JPH0727503B2 (ja) 1995-03-29
AU649642B2 (en) 1994-06-02
SG42809A1 (en) 1997-10-17
EP0442615A3 (en) 1992-12-16
MY105323A (en) 1994-09-30
US5247671A (en) 1993-09-21
EP0442615A2 (en) 1991-08-21
DE69130620D1 (de) 1999-01-28
DE69130620T2 (de) 1999-07-22
AU6935991A (en) 1991-08-15
KR920000035A (ko) 1992-01-10
EP0442615B1 (en) 1998-12-16
CN1021536C (zh) 1993-07-07

Similar Documents

Publication Publication Date Title
EP0442615B1 (en) A communications adapter and method for operating it
EP0617361B1 (en) Scheduling method and apparatus for a communication network
KR100268565B1 (ko) 다중 처리 시스템에서 타스크를 큐잉하기 위한 시스템 및 방법
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
EP0426323B1 (en) Portable, resource sharing file server using co-routines
US7124207B1 (en) I2O command and status batching
US5386512A (en) System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information
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
US5513328A (en) Apparatus for inter-process/device communication for multiple systems of asynchronous devices
JPH04264947A (ja) マルチタスキング・データ処理システム
US5161215A (en) Method for controlling data transfer buffer
US20020120665A1 (en) Portable thread environment
EP0052713A2 (en) A process management system for scheduling work requests in a data processing system
US8090801B1 (en) Methods and apparatus for performing remote access commands between nodes
WO2000023891A1 (en) A processor
US8869171B2 (en) Low-latency communications
JPH04215160A (ja) 情報処理装置
JPH06103218A (ja) データ通信インタフエース及びその動作方法並びにデータ処理プログラムプロダクト
JP2000502202A (ja) 命令プロセッサのジョブスケジューリング
US6704765B1 (en) System for allocating resources among agent processes
JPS59146347A (ja) プロセス間通信方式
JPH0991157A (ja) タスク−デバイスドライバ間通信制御方法
CN118227300A (zh) 一种基于Redis队列的系统阻塞处理方法及装置

Legal Events

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