JPH0758780A - 一時データをバッファリングするための方法および装置 - Google Patents

一時データをバッファリングするための方法および装置

Info

Publication number
JPH0758780A
JPH0758780A JP6144412A JP14441294A JPH0758780A JP H0758780 A JPH0758780 A JP H0758780A JP 6144412 A JP6144412 A JP 6144412A JP 14441294 A JP14441294 A JP 14441294A JP H0758780 A JPH0758780 A JP H0758780A
Authority
JP
Japan
Prior art keywords
buffer
temporary data
protocol
data
logical
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.)
Withdrawn
Application number
JP6144412A
Other languages
English (en)
Inventor
David Thielen
シーレン ディヴィッド
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH0758780A publication Critical patent/JPH0758780A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 複数のデバイス間で一時データの伝送を行な
う場合にも、各プロトコルに別々のバッファを割り当て
ることなしにその伝送を可能とする。 【構成】 複数のプロトコル間で伝送された一時データ
をバッファリングするコンピュータ方法および装置であ
って、複数のシフト論理バッファを備えた単一の物理バ
ッファを利用する。各プロトコルに物理バッファ内の論
理バッファを割り当てる。一時データは、対応する論理
バッファをシフトし、つまり、データを排除するために
第1の論理バッファをシフトし、且つ、同じデータを含
めるように次の論理バッファをシフトすることにより、
複数のプロトコル間で伝送される。この結果、物理バッ
ファにデータを再書込する必要は排除される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ通信に関
し、更に言えば、コンピュータとモデム間のデータ転送
を規制する通信プロトコルに関する。
【0002】
【従来の技術】通信の分野では、通信リンクを介して送
信コンピュータから受信コンピュータへデータの転送を
行なうことが良く知られている。このような通信リンク
は、専用電話回線、若しくは物理ケーブル、若しくは電
話回線を介して一時的に確立された接続を通じて、確立
することができる。通信リンクが2つのコンピュータ間
で電話回線を通じて確立された場合、2つのコンピュー
タ間の通信リンクは、一般に、図1に示されているよう
な方法で規定される。これは従来のコンピュータシステ
ムのブロック図である。図1に示された従来のコンピュ
ータシステムでは、受信コンピュータ100が受信モデ
ム(変調/復調器)110に接続される。受信モデム1
10は、電話回線を通じて、送信コンピュータ115に
接続された送信モデムと通信する。送信コンピュータ1
15は、最初にデジタルデータを送信モデム112に伝
送することによって、受信コンピュータ100にデータ
を伝送する。送信モデム112は、デジタルデータを電
話回線を通じて伝送される信号に、周波数変調技術を用
いてエンコードする。受信モデム110は、信号からデ
ジルデータを取り出すためにその信号を復調し、そのデ
ジタルデータを受信コンピュータ100に伝送する。
【0003】図1を参照して上述されているような一般
的なモデム対モデム通信は非同期的である。即ち、デー
タは受信コンピュータ100のクロックに関して非同期
に到達するため、受信コンピュータ100は、データの
到達のタイミングを予想することができない。このた
め、受信コンピュータ100は、メモリ120に、デー
タの流れを制御する多数の通信プロトコル122を記憶
している。各プロトコル122は、通信リンクからCP
U130へのI/O制御140を介したデータ流れを制
御するため、受信コンピュータのCPU130によって
実行される実行可能コンピュータプログラムとして実施
される。プロトコル122は、一般に、アプリケーショ
ンプログラム150によって提供され(メモリでは別個
に示されている)、アプリケーションプログラム150
のサブプログラムとしてアプリケーションプログラムに
よって呼び出される。上で記述した各プロトコル122
は、メモリ120の対応するプロトコルバッファ124
を要求する。このプロトコルバッファ124は、コンピ
ュータと通信インタフェース間で一時的にデータを記憶
しておくためのものである。各プロトコルバッファ12
4は、例えば、対応プロトコルのために提供されるデー
タセグメントのような、固定サイズのメモリの物理ブロ
ックを表示する別個の物理バッファである。各プロトコ
ル122は、一時データを次のプロトコル、コンピュー
タ、若しくはモデムに適切に伝送することができるとそ
れ自身の必要に従って判断するまでは、その一時データ
をその対応プロトコルバッファに記憶する。一般には、
別々のバッファ124が、CPU130で実行中のオペ
レーティングシステム(図示していない)によって割り
当てられたメモリブロックを用いて各々実施される。こ
の結果、従来のコンピュータシステムによってn個のプ
ロトコルを動作させるには、n個のバッファ124を実
施するのに十分なメモリであるn個のメモリ割り当てを
必要とする。各プロトコル122が、モデム110、C
PU130、若しくは前に実行されたプロトコル122
の1つからデータを受け取った場合、プロトコルはその
対応するバッファ124にそのデータを書き込む。この
ため、n個のプロトコル122の制御下でコンピュータ
100と受信モデム110間でデータの転送を行なう場
合、コンピュータ110は、同じデータをn回も書込お
よび再書込する必要がある。
【0004】
【発明の概要】本発明の目的は、各プロトコルのために
別々のバッファの割り当てを必要とせずに、多数のプロ
トコルの制御下で、複数のデバイス間で伝送される一時
データをバッファリングする(buffering)ことにある。
本発明の他の目的は、一時データがプロトコルの1つに
伝送される毎にその一時データを再書込することを必要
とせずに、多数のプロトコルの制御下で、複数のデバイ
ス間で伝送される一時データをバッファリングすること
にある。本発明の他の目的は、以下の記述から明らかと
なるだろう。上の目的は本発明によって実現される。本
発明は、多数のプロトコル間で伝送される一時データを
バッファリングするためのコンピュータ方法および装置
を提供する。この方法および装置は、多数のシフト論理
バッファをそこに有しているような単一の物理バッファ
を利用する。本発明の好ましい実施例において、一時デ
ータはコンピュータとモデム間で逐次伝送される。各プ
ロトコルは、物理バッファ内の隣接メモリの別々の領域
である論理バッファに割り当てられる。シフト論理バッ
ファは、単一物理バッファ内部の各論理バッファの開始
点と終了点に対するポインタによって規定される。この
ポインタは、プロトコル間でデータが伝送された場合に
は変更される。プロトコルは、コンピュータとモデムの
ような、複数のデバイス間で逐次転送されるデータの流
れを制御する。各プロトコルは、物理バッファに論理バ
ッファを保持する。論理バッファは、プロトコルへ伝送
された一時データやプロトコルからいまだに伝送されて
いない一時データを含んだ物理バッファのシフト領域で
ある。データが逐次的に転送されたとき、そのデータ
は、デバイス間での転送の順序に対応する順番で物理バ
ッファに隣接して記憶される。プロトコルはデータの流
れを制御する。各プロトコルは、それ自身の必要に従っ
てデータを要求し且つ保持する。各プロトコルは、デー
タを、物理バッファの対応する論理バッファにバッファ
リングすることによって保持する。データは、伝送を行
ったプロトコルの論理バッファをシフトしてそのデータ
を含まないようにすることにより、また、データが伝送
されるプロトコルのためにバッファをシフトしてその同
じデータを含むようにすることにより、次のプロトコル
に伝送される。
【0005】論理バッファは、論理バッファを定義する
ポインタを変更(receding)することによってシフトされ
る。第1のプロトコルが第2のプロトコルにデータを伝
送した場合、対応する第1の論理バッファは、伝送デー
タが記憶されるロケーションに先行する物理バッファの
メモリロケーションをポインタが指し示すようにそのポ
インタを第1の論理バッファの終了点に変更することに
より、伝送データを排除するようシフトされる。第2の
論理バッファは、伝送データが記憶されるロケーション
に先行する物理バッファのメモリロケーションを指し示
すようにポインタを第2の論理バッファの開始点に変更
することによってシフトされる。この結果、多数の物理
バッファが必要とされることはなく、また、プロトコル
間を伝送させる毎に一時データを再書き込みする必要も
ない。
【0006】
【実施例】本発明は、多数のプロトコル間で伝送される
一時データをバッファリングするための方法および装置
を提供する。本発明によって提供されるこの方法および
装置は、多数のシフト論理バッファをそこに有している
ような単一の物理バッファを利用する。シフト論理バッ
ファは、単一の物理バッファ内部の各論理バッファの開
始点と終了点に対するポインタによって規定される。こ
のポインタの開始点と終了点は、データが複数のプロト
コル間で伝送される場合に変更される。プロトコルは、
デバイス間、コンピュータとモデムの間で、逐次的に転
送されるデータ流れを制御する。各プロトコルは、物理
バッファに論理バッファを保持する。論理バッファは、
プロトコルへ伝送された一時データやプロトコルからい
まだに伝送されていない一時データを含んでいる物理バ
ッファのシフト領域である。データが逐次的に転送され
たとき、そのデータは、デバイス間での転送の順序に対
応する順番で物理バッファに隣接して記憶される。プロ
トコルはデータの流れを制御する。各プロトコルは、そ
れ自身の必要に従ってデータを要求し且つ保持する。デ
ータは、伝送を行ったプロトコルの論理バッファをシフ
トしてそのデータを含まないようにすることにより、ま
た、データが伝送されるプロトコルのためにバッファを
シフトしてその同じデータを含むようにすることによ
り、次のプロトコルに伝送される。
【0007】論理バッファは、論理バッファを定義する
ポインタを変更することによってシフトされる。第1の
プロトコルが第2のプロトコルにデータを伝送した場
合、対応する第1の論理バッファは、伝送データが記憶
されるロケーションに先行する物理バッファのメモリロ
ケーションをポインタが指し示すようにそのポインタを
第1の論理バッファの終了点に変更することにより、伝
送データを排除するようシフトされる。第2の論理バッ
ファは、伝送データが記憶されるロケーションに先行す
る物理バッファのメモリロケーションを指し示すように
ポインタを第2の論理バッファの開始点に変更すること
によってシフトされる。この結果、多数の物理バッファ
が必要とされることはなく、また、プロトコル間を伝送
させる毎に一時データを再書き込みする必要もない。本
発明のより好ましい実施例におけるコンピュータシステ
ムのブロック図が図2に示されている。コンピュータ2
00は図1のモデム110に接続される。コンピュータ
200は、図1のI/O制御ユニット140を介してC
PU130およびモデム110によってアクセスされ得
るメモリ220も含む。メモリ220は、データが第2
のコンピュータへ転送される際に、若しくは第2のコン
ピュータから転送される際にコンピュータ200とモデ
ム110間における一時データの流れを制御するよう
な、一組のプロトコル222を記憶する。図2に示され
たコンピュータシステムは、単一の物理的な共通のプロ
トコルバッファ224を提供する。各プロトコル222
は、この共通プロトコルバッファ224を利用して、一
時データを次のプロトコルのうちの1つに、つまり、ア
プリケーションを実行中のCPU130若しくはモデム
110に適切に伝送することができると判断するまで、
その一時データを保持する。
【0008】プロトコル222は、コンピュータとモデ
ム間のようなデバイス間で逐次的に転送されるデータ流
れを制御する。データが逐次的に転送される場合、その
データは、デバイス間の転送順に対応するような順番で
共通プロトコルバッファ224に隣接して記憶される。
プロトコル222に伝送されたときにデータを記憶する
各プロトコル222のため、共通プロトコルバッファ2
24の論理バッファ226の組のうちの1つが保持され
る。論理バッファ226は、共通プロトコルバッファ2
24内部の固定されていない隣接した複数の領域であ
り、そのロケーションは本発明によって制御される。本
発明は、共通プロトコル224内部の論理バッファ22
6のロケーションを制御することにより、プロトコル2
22間でデータ伝送を行なう。本発明は、各論理バッフ
ァ226の開始点と終了点を変更することによって論理
バッファ226をシフトする。各プロトコル222は、
一時データを伝送することができるとそのプロトコル2
22が判断するまで、その対応する論理バッファ226
を用いてその一時データを記憶する。プロトコル222
が、データを次のプロトコル222に伝送することがで
きると判断した場合、本発明は、伝送プロトコルのため
に提供された論理バッファ226をシフトすることによ
ってそのデータをもはや含まないようにすることによ
り、および、データが伝送されるプロトコルのために提
供された論理バッファ226をシフトすることによって
そのデータを含むようにすることにより、データを転送
する。
【0009】一旦、一時データが共通プロトコルバッフ
ァ224に記憶されると、プロトコル222間で伝送を
行なうために新たなロケーションへ書込が行われる必要
はない。共通プロトコルバッファ224に書き込まれた
第1のデバイスから一時データが転送された場合、その
一時データは、共通プロトコルバッファ224に書き込
まれた最後の一時データにちょうど先行し、且つ、逐次
的に隣接した、メモリロケーションに記憶される。この
一時データは第2のデバイスに転送されるまでこのロケ
ーションに残される。プロトコル222が実行された場
合、一時データは、伝送を行ったプロトコル222から
その一時データを排除し、且つその一時データをそれが
伝送されるプロトコル224に含めるよう論理バッファ
224をシフトすることにより、プロトコル222間で
伝送される。共通プロトコルバッファ224の各論理バ
ッファ226は、論理バッファ226の開始点に対する
開始ポインタ228と、論理バッファ226の終了点に
対する終了ポインタ229とを保持することによって定
義される。ポインタ228、229は、論理バッファ2
26が一時データをそこに保持しているときに論理バッ
ファ226で使用される。例えば、図2に示されている
ように、開始ポインタ228は各論理バッファ226に
対して保持され、ポインタ229も各論理バッファ22
6に対して保持される。第1のプロトコル222が次の
プロトコル222に一時データを伝送すると、第1のプ
ロトコル222に対応する第1の論理バッファ226の
終了点に対する終了ポインタ229が、共通プロトコル
バッファ224の先行するメモリロケーションを指し示
すよう変更される。こうすることによって、第1の論理
バッファ226は、一時データを記憶する共通プロトコ
ルバッファ224部分を排除する。また、次のプロトコ
ル222に対応する次の論理バッファ226の開始点に
対する開始ポインタ228が、共通プロトコルバッファ
224の先行するメモリロケーションを指し示すよう変
更される。こうすることによって、次の論理バッファ
は、一時データを記憶する共通プロトコルの部分を含め
る。
【0010】好ましい実施例において逐次的に実行中の
プロトコル間で一時データを伝送するための方法におけ
る動作を更に表示するため、図3、図4で特別な実施例
を提供する。図3は、共通プロトコルバッファ300の
一例を示す。この共通プロトコルバッファ300は、例
えば、図2に示すようなコンピュータ200とモデム2
10の間で伝送された文字の流れであるような、一時デ
ータの一連の単一バイトをバッファリングするのに適す
るように設計されている共通プロトコルバッファ224
である。ここに例示した共通プロトコルバッファ300
は、隣合う1組のメモリバイト(0〜21という番号が
付されている)を含む。共通プロトコルバッファ300
の22バイトというサイズは、単なる例示にすぎない。
図2に示されたプロトコル222の例である3つのプロ
トコル301、302、303が示されている。各プロ
トコル301、302、303は、バッファ300の対
応する論理バッファ311、312、313のそれぞれ
を参照する。論理バッファ311、312、313は、
図2に示された論理バッファ226の例である。バッフ
ァ300のある時点における状態の一例が図3に示され
ている。この図は、所定時におけるバッファ300のそ
の時点での状態を表示する。この現在の状態では、論理
バッファ311はバイト4〜7を含み、論理バッファ3
12はバイト8〜13を含み、領域313はバイト14
〜19を含む。プロトコル301は、論理バッファ31
1(バイト 4)の開始点に対する開始ポインタ228
と、論理バッファ311の終了点に対する終了ポインタ
229とをアクセスすることによって論理バッファ31
1を参照する。同様に、プロトコル302は、論理バッ
ファ312(バイト8)の開始点に対する開始ポインタ
228と論理バッファ312(バイト13)の終了点に
対する終了ポインタ229とをアクセスすることによっ
て論理バッファ312を参照する。プロトコル303
は、論理バッファ313の開始点(バイト14)に対す
る開始ポインタと、論理バッファ313の終了点(バイ
ト19)に対する終了ポインタ229とをアクセスする
ことによって論理バッファ313を参照する。例示した
共通プロトコルバッファ300は、また、図3に示され
た現状態において、バイト20〜バイト3を含む自由領
域320をも含む(好ましい方法は、バイト0〜バイト
21を覆うように、つまり、バイト0を指示するポイン
タが1バイトづつディクリメントされてバイト21を指
示するようにして、バッファ300を実施する。)。自
由領域は、領域313の終了点に対するポインタのちょ
うど後側のバイトで始まって、領域311の開始点に対
するポインタのちょうど前のバイトで終了するものと認
識することができる。
【0011】例示された共通プロトコルバッファ300
の次の状態の一例が図4に示されている。図4に示され
た次の状態の一例は、一時データがプロトコル301、
302、303の間で伝送を行った後の、図3に示され
たバッファ300の状態を表す。この状態において、バ
イト6、7に記憶された一時データは、プロトコル1か
らプロトコル302に伝送される。図4に示すように、
一時データは、論理バッファ311、312をシフトし
て領域411、412となることによって、プロトコル
301からプロトコル302に伝送される。特に、論理
バッファ311の終了点を指示していた終了ポインタ2
29は、バイト7の代わりにバイト5を指示するように
変更され、論理バッファ312の開始点を指示する開始
ポインタ228は、バイト8の代わりにバイト6を指示
するように変更される。この結果、論理バッファ312
は、バイト6、7に記憶された一時データを含むように
更新されるが、論理バッファ311は、その同じ一時デ
ータを排除するように更新される。この方法で、一時デ
ータは、(論理バッファ311のその一時データが本来
的にバッファされていた)プロトコル301から(一時
データを論理バッファ312に現在バッファしている)
プロトコル302へ伝送される。
【0012】好ましい実施例においては、上に述べた動
作は、メモリ120に記憶されたマスタ通信ドライバ2
30によって実行される。マスタ通信ドライバ230
は、シフト論理バッファ226のロケーションを保持
し、また、第1のデバイスから転送された新たなデータ
が配置される共通プロトコルバッファのロケーション
と、第2のデバイスに転送されるデータが書き込まれる
ロケーションとを追跡する。更に、マスタ通信ドライバ
230は、NextByteInポインタを保持する。
このポインタは、共通プロトコルバッファ224のバイ
トを指示しており、ここでは、第1のデバイスから転送
された一時データの次のバイトが共通プロトコルバッフ
ァ224に記憶される。マスタ通信ドライバ230は、
また、第2のデバイスに転送される共通プロトコルバッ
ファ224の次のバイトを指示するような、NextB
yteOutポインタ640を保持する。図5は、第1
のデバイスから第2のデバイスにデータが転送されたと
きに(例えば、コンピュータ100からモデム110
へ、若しくはその逆に)、図2に示されたマスタ通信デ
ライバ230によって実行されるステップの流れ図であ
る。ステップ502〜516は、転送されたデータの新
たなバイトのそれぞれに関して反復される。ステップ5
02で、マスタ通信ドライバ230は、NextByt
eInポインタが、最後の論理バッファ226の終了ポ
インタ229よりも大きいかどうかを判断する。この終
了ポインタ229は、第2のデバイスにデータを転送す
る前に実行するために最後のプロトコル224に提供さ
れてものである。もし大きくなければ、マスタ通信ドラ
イバ230は、バッファは一杯になってしまうことか
ら、新たな文字を書き込むためのスペースが共通プロト
コルバッファ224に存在していないかどうかを判断す
る。この場合、制御はステップイ504に進み、マスタ
通信ドライバ230は、ポインタNextByteOu
tが最後の論理バッファ226の終了ポインタ229よ
り小さいかどうかを判断する。
【0013】もしポインタNextByteOutが最
後の論理バッファ226の終了ポインタより小さけれ
ば、これは1つ若しくはそれ以上のデータが共通プロト
コルバッファの最後の論理バッファ226から書き出さ
れることを意味することとなり、この結果、これらの文
字が記憶されたメモリはもはや最後のプロトコルによっ
ては必要とされない。この場合、最後の論理バッファ2
26は、ステップ506で、ポインタNextByte
Outが指示する同一のバイトを指示するように割り当
てられる。制御は、その後、再びステップ502を実行
するためにループする。しかしながら、もしマスタ通信
ドライバ230が、ステップ504において、Next
ByteOutポインタが最後の論理バッファ226の
終了ポインタ229より小さくないと判断すれば、制御
は単にループし、NextByteOutポインタが終
了ポインタ229より小さくなるまでステップ502と
ステップ504を反復する。マスタ通信ドライバが、ス
テップ502において、NextByteInドライバ
は最後のプロトコルに対する終了ポインタ229より大
きいと判断すれば、マスタ通信ドライバ230は、一時
データを共通プロトコルバッファ224に書き込むため
の余地が存在すると判断する。もしそうならば、制御は
ステップ508に進む。ポインタNextByteIn
は、1バイトづつディクリメントされることによって変
更される。その後、ステップ510で、次のプロトコル
222に対する次の論理バッファ226の開始ポインタ
228が、1バイトだけディクリメントされることによ
って変更される。その後、ステップ512で、マスタ通
信ドライバ230は、ポインタNextByteInに
よって指示された共通プロトコルバッファ224のロケ
ーションに新たなバイトを書き込む。
【0014】制御は、その後ステップ514に進む。こ
こでは、論理バッファ224のいずれかに記憶された一
時データをシフトすることを次のプロトコルが要求して
いるかどうかが判断される。もしそうならば、ルーチン
「データ伝送」がステップ516で呼び出される。さも
なければ、制御はステップ502〜516を反復するた
めにループする。ステップ516が実行された後、制御
はまた、ステップ502〜516を反復するためにルー
プする。ルーチンPassDataが図6に示されてい
る。この図は、多数のデータのバイトがプロトコルAか
らプロトコルBに伝送されたときに実行されるステップ
を示す。ステップ602で、プロトコルAのために提供
された共通プロトコルバッファ224の領域226の終
了点を指示する終了ポインタ229が、伝送すべき文字
数だけディクリメントされることによって変更される。
ステップ604で、プロトコルBのために提供された領
域226の開始点を指示する開始ポインタ228もま
た、伝送すべき文字数だけディクリメントされることに
よって変更される。ルーチンはその後戻る。本発明は特
別の実施例を参照して記述されているが、本発明の意図
から逸脱することなく本発明の形態および範囲に様々な
変更を加えることができることは当業者には明らかであ
ろう。本発明の範囲は特許請求の範囲によって規定され
る。
【図面の簡単な説明】
【図1】各プロトコルによって使用される多数の物理バ
ッファを備えた従来のコンピュータシステムのブロック
図。
【図2】本発明の好ましい実施例のコンピュータシステ
ムのブロック図。
【図3】本発明の好ましい実施例の共通プロトコルバッ
ファの一例を示す。
【図4】データがプロトコル間で伝送された後の、図3
に示された共通プロトコルバッファの一例を示す。
【図5】データが第1のデバイスから第2のデバイスに
転送されるときにマスタ通信ドライバによって実行され
るステップの流れ図。
【図6】好ましい実施例において、2つのプロトコルの
間でデータが伝送されるときに実行されるステップの流
れ図。

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 一時データをバッファリングするための
    方法において、前記一時データは、第1のデバイスから
    第2のデバイスへ転送される間に複数のプロトコル間で
    転送されるものであり、前記方法はコンピュータにより
    実行され、 (a)コンピュータによって記憶された物理バッファの
    領域を備えた対応する論理バッファを複数のプロトコル
    の各々に対して規定する段階と、但し、前記物理バッフ
    ァは前記一時データを含むデータを伝送順に隣接して記
    憶するものであり、 (b)第1のプロトコルが前記一時データを要求したと
    きに、この第1のプロトコルに割り当てられた物理バッ
    ファの第1の論理バッファをシフトして物理バッファの
    新たな部分を含めることにより、且つ、前記新たな部分
    に前記一時データを記憶することにより、前記第1のデ
    バイスから前記第1のプロトコルへ一時データを伝送す
    る段階と、 (c)最後のプロトコルが前記一時データを要求したと
    きに、この最後のプロトコルに割り当てられた物理バッ
    ファの最後の論理バッファをシフトして前記一時データ
    を記憶する物理バッファの部分を含めることにより、且
    つ、前記第1の論理バッファをシフトして前記一時デー
    タを記憶する部分を排除することにより、前記第1のプ
    ロトコルから前記最後のプロトコルへ一時データを伝送
    する段階と、 を備えることを特徴とする方法。
  2. 【請求項2】 請求項1記載の方法において、更に、第
    2のデバイスが一時データを要求したときにこの第2の
    デバイスに一時データを転送し、且つ、一時データが第
    2のデバイスに転送された後に前記最後の論理バッファ
    をシフトして前記一時データを記憶する部分を排除する
    ことにより、前記第2のプロトコルから前記第2のデバ
    イスへ前記一時データを伝送する段階を備える方法。
  3. 【請求項3】 請求項1記載の方法において、段階
    (c)は更に、一時データを含むデータを記憶する前記
    物理バッファ内の中間論理バッファがその各々に割り当
    てられているような複数の中間プロトコルの中の幾つか
    に、前記第1のプロトコルから前記一時データを伝送す
    ることを備えており、前記第1、中間、および最後の論
    理バッファが、 (i)前記一時データを記憶する先行する論理バッファ
    の一部を含めるように各中間プロトコルに割り当てられ
    た各中間論理バッファをシフトする段階と、 (ii)前記一時データを記憶する部分を排除するよう
    に前記先行する論理バッファをシフトする段階と、を実
    行することにより、前記一時データが前記第1、中間、
    および最後のプロトコルの間で伝送された順序に対応す
    るような順序で前記物理バッファ内に隣接して提供され
    る方法。
  4. 【請求項4】 請求項3記載の方法において、ステップ
    (b)は前記第1プロトコルが前記一時データを要求す
    る毎に反復され、ステップ(c)は中間プロトコルが一
    時データを要求する毎に反復される方法。
  5. 【請求項5】 請求項3記載の方法において、各中間論
    理バッファをシフトする段階(c)(i)は、各中間論
    理バッファの開始点を指し示す開始ポインタを物理バッ
    ファの先行するメモリロケーションを指し示すように割
    り当てることを備え、先行する論理バッファをシフトす
    る段階(c)(ii)は、各中間論理バッファの終了点
    を指し示す終了ポインタを前記物理バッファの先行する
    メモリロケーションを指し示すように割り当てることを
    備える方法。
  6. 【請求項6】 請求項3記載の方法において、更に、前
    記第1のプロトコルに割り当てられた前記第1の論理バ
    ッファに将来的に含めるために、最後のプロトコルによ
    って第2のデバイスに既に伝送されたデータを記憶する
    物理バッファの最後の論理バッファの一部を解放する段
    階(d)を備える方法。
  7. 【請求項7】 請求項6記載の方法において、単一バッ
    ファの最後の論理バッファの一部を解放する前記段階
    は、前記最後の論理バッファの終了点を指し示す終了ポ
    インタを物理バッファの先行するメモリロケーションを
    指し示すように割り当てることを備える方法。
  8. 【請求項8】 請求項3記載の方法において、前記第1
    のデバイスはコンピュータであり、前記第2のデバイス
    はモデムである方法。
  9. 【請求項9】 請求項3記載の方法において、前記第1
    のデバイスはモデムであり、前記第2のデバイスはコン
    ピュータである方法。
  10. 【請求項10】 一時データをバッファリングするため
    の方法において、一時データは、複数のサブプログラム
    の制御下で第1のデバイスから第2のデバイスへ転送さ
    れる間に複数のプロトコル間で伝送されるものであり、
    前記方法はコンピュータにより実行され、 (a)複数のサブプログラムの各々に対して、コンピュ
    ータによって記憶された物理バッファの領域であるよう
    な対応する論理バッファを規定する段階と、但し、前記
    物理バッファは、一時データを含むデータを該データの
    伝送順に隣接して記憶しており、 (b)第1のサブプログラムが前記データを要求したと
    きに、この第1のサブプログラムに割り当てられた物理
    バッファの第1の論理バッファをシフトして物理バッフ
    ァの新たな部分を含めることにより、且つ、前記一時デ
    ータを前記物理バッファの前記新たな部分に記憶するこ
    とにより、前記第1のデバイスから前記第1のサブプロ
    グラムへ前記一時データを伝送する段階と、 (c)最後のサブプログラムが前記一時データを要求し
    たときに、この最後のサブプログラムに割り当てられた
    物理バッファの最後の論理バッファをシフトして前記一
    時データを記憶する物理バッファの部分を含めることに
    より、且つ、前記第1の論理バッファをシフトして前記
    一時データを記憶する部分を排除することにより、前記
    第1のサブプログラムから前記最後のサブプログラムへ
    一時データを伝送する段階と、 を備えることを特徴とする方法。
  11. 【請求項11】 請求項10記載の方法において、更
    に、第2のデバイスが一時データを要求したときにこの
    第2のデバイスにデータを転送し、且つ、一時データが
    第2のデバイスに既に転送された後に前記最後の論理バ
    ッファをシフトして前記一時データを記憶する部分を排
    除することによって、前記第2のサブプログラムから前
    記第2のデバイスへ前記データを伝送する段階を備える
    方法。
  12. 【請求項12】 請求項10記載の方法において、第1
    のサブプログラムから最後のサブプログラムに前記一時
    データを伝送する段階(c)は、更に、その各々に物理
    バッファの中間論理バッファが割り当てられているよう
    な複数の中間サブプログラムの中の幾つかに、前記第1
    のサブプログラムから、前記一時データを伝送すること
    を備えており、前記第1、中間、および最後の論理バッ
    ファは、 (i)前記一時データを記憶する先行する論理バッファ
    の一部を含めるように各中間サブプログラムに割り当て
    られた各中間論理バッファをシフトする段階と、 (ii)前記一時データを記憶する部分を排除するよう
    に前記先行する論理バッファをシフトする段階と、を実
    行することにより、前記一時データが前記第1、中間、
    および最後のサブプログラムの間で伝送された順序に対
    応するような順序で前記物理バッファ内に隣接して提供
    される方法。
  13. 【請求項13】 請求項12記載の方法において、ステ
    ップ(b)は、前記第1サブプログラムが前記一時デー
    タを要求する毎に反復され、ステップ(c)は、中間サ
    ブプログラムが一時データを要求する毎に反復される方
    法。
  14. 【請求項14】 請求項12記載の方法において、各中
    間論理バッファをシフトする段階(ci)は、各中間論
    理バッファの開始点を指し示す開始ポインタを物理バッ
    ファの先行するメモリロケーションを指し示すように割
    り当てることを備え、先行する論理バッファをシフトす
    る段階(cii)は、各中間論理バッファの終了点を指
    し示す終了ポインタを前記物理バッファの先行するメモ
    リロケーションを指し示すように割り当てることを備え
    る方法。
  15. 【請求項15】 請求項12記載の方法において、更
    に、前記第1のサブプログラムに割り当てられた前記第
    1の論理バッファに将来的に含めるために、最後のサブ
    プログラムによって第2のデバイスに既に伝送されたデ
    ータを記憶する物理バッファの最後の論理バッファの一
    部を解放する段階(d)を備える方法。
  16. 【請求項16】 請求項15記載の方法において、単一
    バッファの最後の論理バッファの一部を解放する段階
    は、前記最後の論理バッファの終了点を指し示す終了ポ
    インタを物理バッファの先行するメモリロケーションを
    指し示すように割り当てることを備える方法。
  17. 【請求項17】 コンピュータシステムと遠隔デバイス
    の間で伝送される一時データを複数のプロトコルの制御
    下でバッファリングするコンピュータシステムにおい
    て、 一時データを含むデータを該一時データが転送される順
    序で隣接して記憶するような物理バッファを記憶するメ
    モリと、 複数のプロトコルの各々に対して、物理バッファ内の論
    理バッファであるような対応する論理バッファを規定す
    る手段と、 第1のプロトコルが一時データを要求したときに、この
    第1のプロトコルに割り当てられた物理バッファの第1
    の論理バッファをシフトして物理バッファの新たな部分
    を含めることにより、且つ、前記一時データを前記新た
    な部分に記憶することにより、前記コンピュータシステ
    ムから前記第1のプロトコルへ前記一時データを伝送す
    る手段と、 最後のプロトコルが一時データを要求したときに、この
    最後のプロトコルに割り当てられた物理バッファの最後
    の論理バッファをシフトして前記一時データを記憶する
    第1の論理バッファの部分を含めることにより、且つ、
    前記物理バッファをシフトして前記一時データを記憶す
    る部分を排除することにより、前記第1のプロトコルか
    ら前記最後のプロトコルへ一時データを伝送する段階
    と、 前遠隔デバイスがデータを要求したときに、前記最後の
    プロトコルから該遠隔デバイスに前記一時データを転送
    する手段と、 を備えることを特徴とする方法。
  18. 【請求項18】 請求項17記載のコンピュータシステ
    ムにおいて、第1のプロトコルから最後のプロトコルに
    前記一時データを伝送する手段は、その各々に物理バッ
    ファの中間論理バッファが割り当てられているような複
    数の中間プロトコルの中の幾つかに、前記第1のプロト
    コルから前記一時データを伝送するものであり、前記第
    1、中間、および最後の論理バッファは、前記第1、中
    間、および最後のプロトコルの間で一時データが伝送さ
    れる順序に対応するような順序で前記物理バッファ内部
    に隣接して提供されており、 (i)前記先行する論理バッファの一部を含めるように
    各中間プロトコルに割り当てられた各中間論理バッファ
    をシフトする手段と、 (ii)前記一時データを記憶する部分を排除するよう
    に前記先行する論理バッファをシフトする手段と、を備
    えるコンピュータシステム。
  19. 【請求項19】 請求項18記載のコンピュータシステ
    ムにおいて、各中間論理バッファをシフトして前記部分
    を含める手段は、各中間論理バッファの開始点を指し示
    す開始ポインタを物理バッファの先行するメモリロケー
    ションを指し示すように割り当てることを備え、先行す
    る論理バッファをシフトする手段は、各中間論理バッフ
    ァの終了点を指し示す終了ポインタを前記物理バッファ
    の先行するメモリロケーションを指し示すように割り当
    てることを備えるコンピュータシステム。
JP6144412A 1993-06-30 1994-06-27 一時データをバッファリングするための方法および装置 Withdrawn JPH0758780A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8577093A 1993-06-30 1993-06-30
US08/085770 1993-06-30

Publications (1)

Publication Number Publication Date
JPH0758780A true JPH0758780A (ja) 1995-03-03

Family

ID=22193823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6144412A Withdrawn JPH0758780A (ja) 1993-06-30 1994-06-27 一時データをバッファリングするための方法および装置

Country Status (4)

Country Link
US (1) US5596726A (ja)
EP (1) EP0637155A1 (ja)
JP (1) JPH0758780A (ja)
CA (1) CA2125607A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003083B2 (en) 2013-03-28 2015-04-07 Fujitsu Semiconductor Limited Buffer circuit and semiconductor integrated circuit

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
JPH10289180A (ja) * 1997-02-12 1998-10-27 Canon Inc 通信処理装置及び方法
US6473840B2 (en) 1998-06-19 2002-10-29 International Business Machines Corporation Data processing system having a network and method for managing memory by storing discardable pages in a local paging device
US6304831B1 (en) * 1998-11-09 2001-10-16 Crystal Group Inc. Computer having multiple alarm function communication paths
US7095749B1 (en) * 2000-06-12 2006-08-22 Koninkijke Phillips Electronics N.V. Apparatus and method for extraction of different types of packets from respective portions of a single buffer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4499576A (en) * 1982-08-13 1985-02-12 At&T Bell Laboratories Multiplexed first-in, first-out queues
EP0273083B1 (en) * 1986-12-30 1993-10-06 International Business Machines Corporation Non-locking queueing mechanism
GB9012970D0 (en) * 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5247626A (en) * 1990-05-29 1993-09-21 Advanced Micro Devices, Inc. Fddi controller having flexible buffer management
US5355457A (en) * 1991-05-21 1994-10-11 Motorola, Inc. Data processor for performing simultaneous instruction retirement and backtracking
US5488694A (en) * 1992-08-28 1996-01-30 Maspar Computer Company Broadcasting headers to configure physical devices interfacing a data bus with a logical assignment and to effect block data transfers between the configured logical devices
US5335326A (en) * 1992-10-01 1994-08-02 Xerox Corporation Multichannel FIFO device channel sequencer
US5486876A (en) * 1993-04-27 1996-01-23 Array Microsystems, Inc. Video interface unit for mapping physical image data to logical tiles

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003083B2 (en) 2013-03-28 2015-04-07 Fujitsu Semiconductor Limited Buffer circuit and semiconductor integrated circuit

Also Published As

Publication number Publication date
US5596726A (en) 1997-01-21
EP0637155A1 (en) 1995-02-01
CA2125607A1 (en) 1994-12-31

Similar Documents

Publication Publication Date Title
JPH0758780A (ja) 一時データをバッファリングするための方法および装置
EP0725351A2 (en) Expedited message transfer in a multi-nodal data processing system
US5781741A (en) Message communications system in a parallel computer
US7111289B2 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
KR960012423B1 (ko) 비동기식 디지탈 프로세서 사이에 정보를 교환하기 위한 방법 및 장치
US7113516B1 (en) Transmit buffer with dynamic size queues
US5404137A (en) High speed transition signalling communication system
US6633928B2 (en) Fast process context switching buffer
KR20040066311A (ko) 직접 메모리 접근매체의 데이터 전송 장치 및 방법
US5875299A (en) disk access apparatus for performing a stride processing of data
JPH0844652A (ja) 計算機システムおよび入出力命令の発行方法
CN112352403B (zh) 用于数据的缓冲传输的设备
JPH09185882A (ja) 入出力データの大きさを異にする先入れ先出しメモリ装置及びその方法
Stallman The supdup protocol
JP2552025B2 (ja) データ転送方式
JPH04160459A (ja) データ転送装置
JPH01272339A (ja) サイクリツクデータ伝送方式
CN118132474A (zh) 基于dma的数据传输系统
JPH09326832A (ja) 共用バッファ装置及びその制御方法
JP2001136186A (ja) 多重通信装置
JPH08137662A (ja) データ送信方法及びデータ送信装置
JPS60186954A (ja) デ−タ転送制御方式
JPH04370859A (ja) 上位装置と下位装置とにおけるデータの送受信方式
JPH023345B2 (ja)
JPS637720B2 (ja)

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010904