JP2689490B2 - 受信バッファの制御装置 - Google Patents
受信バッファの制御装置Info
- Publication number
- JP2689490B2 JP2689490B2 JP63143931A JP14393188A JP2689490B2 JP 2689490 B2 JP2689490 B2 JP 2689490B2 JP 63143931 A JP63143931 A JP 63143931A JP 14393188 A JP14393188 A JP 14393188A JP 2689490 B2 JP2689490 B2 JP 2689490B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- flag
- data
- received data
- written
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Information Transfer Systems (AREA)
- Communication Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、データ通信等の外部システムからのデー
タを使用するシステムに適用され、外部からのデータを
貯えるための受信バッファの制御装置に関する。
タを使用するシステムに適用され、外部からのデータを
貯えるための受信バッファの制御装置に関する。
この発明では、受信バッファが複数のブロックに分割
され、ブロックの夫々が占有されているかどうかを示す
第1のフラグと、現在受信中のブロックを示す第2のフ
ラグと、現在受信データの引き渡し中であるブロックを
示す第3のフラグと、ブロックがオーバーフローするか
どうかを示す第4のフラグとが形成されると共に、受信
データを受信することが可能であるかどうかを示す制御
信号が第1のフラグに基づき形成され、制御信号が受信
データを受信することが可能であることを示している場
合に、第1のフラグに基づき不使用中とされ、且つ、第
2のフラグに基づき次に書き込むべきブロックであると
されたブロックが受信データが書き込まれるブロックと
して選択され、選択されたブロックに受信データが書き
込まれ、第1のフラグに基づき使用中とされ、且つ、第
3のフラグに基づき次に読み出すべきブロックであると
されたブロックが貯えられているデータを読み出すブロ
ックとして選択され、選択されたブロックからデータの
読み出しがされることにより、 ブロックの単位で受信データの書き込み及びデータの
読み出しがなされ、また、フローコントロールが単純と
なり、高速動作が可能となる。
され、ブロックの夫々が占有されているかどうかを示す
第1のフラグと、現在受信中のブロックを示す第2のフ
ラグと、現在受信データの引き渡し中であるブロックを
示す第3のフラグと、ブロックがオーバーフローするか
どうかを示す第4のフラグとが形成されると共に、受信
データを受信することが可能であるかどうかを示す制御
信号が第1のフラグに基づき形成され、制御信号が受信
データを受信することが可能であることを示している場
合に、第1のフラグに基づき不使用中とされ、且つ、第
2のフラグに基づき次に書き込むべきブロックであると
されたブロックが受信データが書き込まれるブロックと
して選択され、選択されたブロックに受信データが書き
込まれ、第1のフラグに基づき使用中とされ、且つ、第
3のフラグに基づき次に読み出すべきブロックであると
されたブロックが貯えられているデータを読み出すブロ
ックとして選択され、選択されたブロックからデータの
読み出しがされることにより、 ブロックの単位で受信データの書き込み及びデータの
読み出しがなされ、また、フローコントロールが単純と
なり、高速動作が可能となる。
データ通信では、受信データを一時的に貯える受信バ
ッファが設けられる。従来の受信バッファの一つとし
て、バッファメモリをリング状の構成とみなすリングバ
ッファが知られている。リングバッファは、書き込みア
ドレスと対応するライトポインタ及び読み出しアドレス
と対応するリードポインタとを形成し、両ポインタを使
用してフローコントロールを行う構成である。リングバ
ッファの利点は、バッファの容量を仮想的に常にバッフ
ァ容量分取れることである。
ッファが設けられる。従来の受信バッファの一つとし
て、バッファメモリをリング状の構成とみなすリングバ
ッファが知られている。リングバッファは、書き込みア
ドレスと対応するライトポインタ及び読み出しアドレス
と対応するリードポインタとを形成し、両ポインタを使
用してフローコントロールを行う構成である。リングバ
ッファの利点は、バッファの容量を仮想的に常にバッフ
ァ容量分取れることである。
リングバッファは、最大限有効にメモリを利用してい
るように見えるが、下記のような欠点が生じる。
るように見えるが、下記のような欠点が生じる。
第1に、1バイトづつ受信バイトからデータを取り出
すために、非効率的である。
すために、非効率的である。
第2に、毎回(1バイトづつ)受信バイトの残りの使
用可能バイト数を求め、フローコントロールを行ってい
る。従って、非効率的であるのみならず、オーバーヘッ
ドが増加し、データを取り出す速度が高速とならない。
用可能バイト数を求め、フローコントロールを行ってい
る。従って、非効率的であるのみならず、オーバーヘッ
ドが増加し、データを取り出す速度が高速とならない。
従って、この発明の目的は、効率的で、高速動作が可
能な受信バイトの制御装置を提供することにある。
能な受信バイトの制御装置を提供することにある。
この発明では、受信バッファが複数のブロックに分割
され、ブロックの夫々が占有されているかどうかを示す
第1のフラグと、現在受信中のブロックを示す第2のフ
ラグと、現在受信データの引き渡し中であるブロックを
示す第3のフラグと、ブロックがオーバーフローするか
どうかを示す第4のフラグとが形成されると共に、受信
データを受信することが可能であるかどうかを示す制御
信号が第1のフラグに基づき形成され、制御信号が受信
データを受信することが可能であることを示している場
合に、第1のフラグに基づき不使用中とされ、且つ、第
2のフラグに基づき次に書き込むべきブロックであると
されたブロックが受信データが書き込まれるブロックと
して選択され、選択されたブロックに受信データが書き
込まれ、第1のフラグに基づき使用中とされ、且つ、第
3のフラグに基づき次に読み出すべきブロックであると
されたブロックが貯えられているデータを読み出すブロ
ックとして選択され、選択されたブロックからデータの
読み出しがなされる。
され、ブロックの夫々が占有されているかどうかを示す
第1のフラグと、現在受信中のブロックを示す第2のフ
ラグと、現在受信データの引き渡し中であるブロックを
示す第3のフラグと、ブロックがオーバーフローするか
どうかを示す第4のフラグとが形成されると共に、受信
データを受信することが可能であるかどうかを示す制御
信号が第1のフラグに基づき形成され、制御信号が受信
データを受信することが可能であることを示している場
合に、第1のフラグに基づき不使用中とされ、且つ、第
2のフラグに基づき次に書き込むべきブロックであると
されたブロックが受信データが書き込まれるブロックと
して選択され、選択されたブロックに受信データが書き
込まれ、第1のフラグに基づき使用中とされ、且つ、第
3のフラグに基づき次に読み出すべきブロックであると
されたブロックが貯えられているデータを読み出すブロ
ックとして選択され、選択されたブロックからデータの
読み出しがなされる。
第1のフラグを見ることにより、受信データを書き込
むブロックの選択又は受信データが有るかどうかを知る
ことができる。また、第2のフラグを参照して、順番に
ブロックに受信データを書き込む処理と順番にデータを
読み出す処理が可能となる。これらのフラグを用いて、
ブロック単位で受信データの書き込み及びデータの読み
出しができると共に、フローコントロールを行うことが
できる。従って、1バイトづつ処理する従来の方式に比
して、高速の処理ができ、また、フローコントロールが
単純となる。
むブロックの選択又は受信データが有るかどうかを知る
ことができる。また、第2のフラグを参照して、順番に
ブロックに受信データを書き込む処理と順番にデータを
読み出す処理が可能となる。これらのフラグを用いて、
ブロック単位で受信データの書き込み及びデータの読み
出しができると共に、フローコントロールを行うことが
できる。従って、1バイトづつ処理する従来の方式に比
して、高速の処理ができ、また、フローコントロールが
単純となる。
以下、この発明の一実施例について図面を参照して説
明する。第1図は、この発明を適用できるシステムの概
略を示す。第1図において、1は、外部からのデータ2
例えばシリアルデータが供給される受信データ処理ブロ
ックを示す。この受信データ処理ブロック1には、受信
バイトが設けられ、受信データ処理ブロック1を通じて
外部からのデータ2がアプリケーションブロック3に受
け渡される。具体的には、受信データ処理ブロック1
は、割り込み処理で動作し、アプリケーションブロック
は、メインプログラムで動作する。
明する。第1図は、この発明を適用できるシステムの概
略を示す。第1図において、1は、外部からのデータ2
例えばシリアルデータが供給される受信データ処理ブロ
ックを示す。この受信データ処理ブロック1には、受信
バイトが設けられ、受信データ処理ブロック1を通じて
外部からのデータ2がアプリケーションブロック3に受
け渡される。具体的には、受信データ処理ブロック1
は、割り込み処理で動作し、アプリケーションブロック
は、メインプログラムで動作する。
第2図は、受信バッファの構成及びフラグを示す。受
信バッファは、mバイトづつn個のブロックに分割され
る。従って、受信バッファの容量は、(m×nバイト)
である。例えば(m=2kバイト、n=8、m×n=16k
バイト)とされる。受信バッファと関連して、第1のフ
ラグ〜第4のフラグが発生される。
信バッファは、mバイトづつn個のブロックに分割され
る。従って、受信バッファの容量は、(m×nバイト)
である。例えば(m=2kバイト、n=8、m×n=16k
バイト)とされる。受信バッファと関連して、第1のフ
ラグ〜第4のフラグが発生される。
第1のフラグは、nビット(8ビット)のアクティブ
ブロックフラグ11であり、アクティブブロックフラグ11
は、使用中のブロックを判別するために用いられる。ア
クティブブロックフラグ11を見て、ブロックの夫々が占
有されているかどうかが分る。アクティブブロックフラ
グ11の各ビットは、“1"で使用中(即ち、データが書き
込まれた後で読み出されていない)を表し、“0"で不使
用中(書き込まれたデータがアプリケーションブロック
3に読み出され、その後にデータを書き込んでいない)
を表す。データの書き込みは、アクティブブロックフラ
グ11が“0"のブロックに対してなされ、また、アクティ
ブブロックフラグ11から受信バッファにデータが有るか
どうかが分る。
ブロックフラグ11であり、アクティブブロックフラグ11
は、使用中のブロックを判別するために用いられる。ア
クティブブロックフラグ11を見て、ブロックの夫々が占
有されているかどうかが分る。アクティブブロックフラ
グ11の各ビットは、“1"で使用中(即ち、データが書き
込まれた後で読み出されていない)を表し、“0"で不使
用中(書き込まれたデータがアプリケーションブロック
3に読み出され、その後にデータを書き込んでいない)
を表す。データの書き込みは、アクティブブロックフラ
グ11が“0"のブロックに対してなされ、また、アクティ
ブブロックフラグ11から受信バッファにデータが有るか
どうかが分る。
第2のフラグは、3ビットのカレントアクティブレシ
ーブブロック12であり、割り込みプログラム内で現在受
信中のブロックを示す。このカレントアクティブレシー
ブブロック12から次にデータを書き込むべきブロックが
分る。
ーブブロック12であり、割り込みプログラム内で現在受
信中のブロックを示す。このカレントアクティブレシー
ブブロック12から次にデータを書き込むべきブロックが
分る。
第3のフラグは、3ビットのカレントアクティブアプ
リケーションブロック13であり、メインプログラム内で
現在アプリケーションブロック3に引き渡すのに使用中
のブロックを示す。このカレントアクティブアプリケー
ションブロック13から次に読み出すべきブロックが分
る。
リケーションブロック13であり、メインプログラム内で
現在アプリケーションブロック3に引き渡すのに使用中
のブロックを示す。このカレントアクティブアプリケー
ションブロック13から次に読み出すべきブロックが分
る。
第4のフラグは、8個のブロックの夫々と対応したデ
ータバイト数フラグ14であり、データバイト数フラグ14
は、各ブロックに格納されたデータのバイト数(最大2k
バイト)を示す。このデータバイト数フラグ14を見れ
ば、ブロックの単位で、オーバーフローのおそれを検出
することができる。
ータバイト数フラグ14であり、データバイト数フラグ14
は、各ブロックに格納されたデータのバイト数(最大2k
バイト)を示す。このデータバイト数フラグ14を見れ
ば、ブロックの単位で、オーバーフローのおそれを検出
することができる。
更に、フローコントロールのための制御信号として、
X ON及びX OFFが使用される。X ONが送出される時に
は、受信可能なことを意味し、X OFFが送出される時に
は、メモリに余裕がないので、受信停止を意味する。
X ON及びX OFFが使用される。X ONが送出される時に
は、受信可能なことを意味し、X OFFが送出される時に
は、メモリに余裕がないので、受信停止を意味する。
以上のフラグを用いて、受信データの処理並びにアプ
リケーションブロックの処理がブロックの単位でなされ
る。
リケーションブロックの処理がブロックの単位でなされ
る。
第3図を参照して、割り込みサブルーチンのプログラ
ムで動く受信データの処理動作について説明する。
ムで動く受信データの処理動作について説明する。
最初にステップで、フローコントロールの制御信号
X ONが送出されているかどうかが調べられる。X ONが無
い時には、受信不能であり、X ONが有る時には、受信可
能である。受信可能なことが分かったら、ステップに
移行し、カレントレシーブブロック(受信データを書き
込むブロック)を選択する。この選択は、アクティブブ
ロックフラグ11(第1のフラグ)及びカレントアクティ
ブレシーブブロック12(第2のフラグ)を参照してなさ
れ、不使用中のブロックに対して受信データが書き込ま
れる。また、アクティブブロックフラグ11が変更される
と共に、カレントアクティブレシーブブロック12が選択
されたブロックと対応するものとされる。次に、選択さ
れたブロックに対して受信データが格納される(ステッ
プ)。
X ONが送出されているかどうかが調べられる。X ONが無
い時には、受信不能であり、X ONが有る時には、受信可
能である。受信可能なことが分かったら、ステップに
移行し、カレントレシーブブロック(受信データを書き
込むブロック)を選択する。この選択は、アクティブブ
ロックフラグ11(第1のフラグ)及びカレントアクティ
ブレシーブブロック12(第2のフラグ)を参照してなさ
れ、不使用中のブロックに対して受信データが書き込ま
れる。また、アクティブブロックフラグ11が変更される
と共に、カレントアクティブレシーブブロック12が選択
されたブロックと対応するものとされる。次に、選択さ
れたブロックに対して受信データが格納される(ステッ
プ)。
次に、受信データが格納されたブロックが一杯になっ
たかどうかがデータバイト数フラグ14(第4のフラグ)
から調べられる(ステップ)。若し、一杯の場合に
は、ステップに移行し、残りのブロックが1以下かど
うかがアクティブブロックフラグ11の状態から調べられ
る。残りのブロックが1以下の場合には、オーバーフロ
ーするおそれが有るので、X OFFを送出する(ステップ
)。
たかどうかがデータバイト数フラグ14(第4のフラグ)
から調べられる(ステップ)。若し、一杯の場合に
は、ステップに移行し、残りのブロックが1以下かど
うかがアクティブブロックフラグ11の状態から調べられ
る。残りのブロックが1以下の場合には、オーバーフロ
ーするおそれが有るので、X OFFを送出する(ステップ
)。
第4図を参照して、メインサブルーチンのプログラム
で動くアプリケーションブロックへのデータ転送につい
て説明する。
で動くアプリケーションブロックへのデータ転送につい
て説明する。
最初のステップで、受信データが有るかどうかがア
クティブブロックフラグ11を参照して調べられる。受信
データが有るブロックがカレントアクティブアプリケー
ションブロックとして選択される(ステップ)。この
選択されたブロックの受信データがアプリケーションブ
ロック3に転送される。(ステップ)。
クティブブロックフラグ11を参照して調べられる。受信
データが有るブロックがカレントアクティブアプリケー
ションブロックとして選択される(ステップ)。この
選択されたブロックの受信データがアプリケーションブ
ロック3に転送される。(ステップ)。
次に、ステップで残りのブロックが1以下かどうか
が調べられる。1以下でない時には、X OFFが送出中か
どうかが調べられる(ステップ)。X OFFが送出中の
時には、制御信号X ON(受信することが可能なことを意
味する)を送出する(ステップ)。
が調べられる。1以下でない時には、X OFFが送出中か
どうかが調べられる(ステップ)。X OFFが送出中の
時には、制御信号X ON(受信することが可能なことを意
味する)を送出する(ステップ)。
なお、第3図及び第4図に示すフローチャートは、一
例であって、アプリケーションに応じて変形が可能であ
る。
例であって、アプリケーションに応じて変形が可能であ
る。
この発明では、受信バッファがブロック化されている
ので、外部インターフェースから受信バッファにデータ
を格納する動作と、受信バッファからアプリケーション
ブロックにデータを引き渡す動作とを容易に分離するこ
とができ、受信バッファに対するデータの入出力がブロ
ック単位で行うことができ、高速化を図ることができ
る。また、受信バッファの各ブロックに対応したアクテ
ィブブロックフラグを用意するだけで、受信バッファの
使用状況が分るために、フローコントロールのアルゴリ
ズムが単純とできる。
ので、外部インターフェースから受信バッファにデータ
を格納する動作と、受信バッファからアプリケーション
ブロックにデータを引き渡す動作とを容易に分離するこ
とができ、受信バッファに対するデータの入出力がブロ
ック単位で行うことができ、高速化を図ることができ
る。また、受信バッファの各ブロックに対応したアクテ
ィブブロックフラグを用意するだけで、受信バッファの
使用状況が分るために、フローコントロールのアルゴリ
ズムが単純とできる。
また、受信バッファが一杯で受信不能とされた場合に
は、X OFFが送出されるため、送信側におけるデータの
送信を停止させることができる。
は、X OFFが送出されるため、送信側におけるデータの
送信を停止させることができる。
第1図はこの発明を適用できるシステムの概略を示すブ
ロック図、第2図は受信バッファの構成及びフラグの説
明に用いる略線図、第3図及び第4図はこの発明の一実
施例の説明に用いるフローチャートである。 図面における主要な符号の説明 11:アクティブブロックフラグ、 12:カレントアクティブレシーブブロック、 13:カレントアクティブアプリケーションブロック、 14:データバイト数フラグ。
ロック図、第2図は受信バッファの構成及びフラグの説
明に用いる略線図、第3図及び第4図はこの発明の一実
施例の説明に用いるフローチャートである。 図面における主要な符号の説明 11:アクティブブロックフラグ、 12:カレントアクティブレシーブブロック、 13:カレントアクティブアプリケーションブロック、 14:データバイト数フラグ。
Claims (1)
- 【請求項1】受信バッファが複数のブロックに分割さ
れ、 上記ブロックの夫々が占有されているかどうかを示す第
1のフラグと、現在受信中のブロックを示す第2のフラ
グと、現在受信データの引き渡し中であるブロックを示
す第3のフラグと、上記ブロックがオーバーフローする
かどうかを示す第4のフラグとが形成されると共に、 上記受信データを受信することが可能であるかどうかを
示す制御信号が上記第1のフラグに基づき形成され、 上記制御信号が上記受信データを受信することが可能で
あることを示している場合に、上記第1のフラグに基づ
き不使用中とされ、且つ、上記第2のフラグに基づき次
に書き込むべきブロックであるとされたブロックが上記
受信データが書き込まれるブロックとして選択され、上
記選択されたブロックに受信データが書き込まれ、 上記第1のフラグに基づき使用中とされ、且つ、上記第
3のフラグに基づき次に読み出すべきブロックであると
されたブロックが貯えられているデータを読み出すブロ
ックとして選択され、上記選択されたブロックからデー
タの読み出しがなされることを特徴とする受信バッファ
の制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63143931A JP2689490B2 (ja) | 1988-06-11 | 1988-06-11 | 受信バッファの制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63143931A JP2689490B2 (ja) | 1988-06-11 | 1988-06-11 | 受信バッファの制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01312656A JPH01312656A (ja) | 1989-12-18 |
JP2689490B2 true JP2689490B2 (ja) | 1997-12-10 |
Family
ID=15350410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63143931A Expired - Fee Related JP2689490B2 (ja) | 1988-06-11 | 1988-06-11 | 受信バッファの制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2689490B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58107952A (ja) * | 1981-12-22 | 1983-06-27 | Fujitsu Ltd | バツフアメモリ制御方式 |
JPS6242384A (ja) * | 1985-08-19 | 1987-02-24 | Nec Corp | Fifo読出し制御回路 |
-
1988
- 1988-06-11 JP JP63143931A patent/JP2689490B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH01312656A (ja) | 1989-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0239937B1 (en) | Serial communications controller | |
US4507760A (en) | First-in, first-out (FIFO) memory configuration for queue storage | |
US6925512B2 (en) | Communication between two embedded processors | |
US5151999A (en) | Serial communications controller for transfer of successive data frames with storage of supplemental data and word counts | |
US4742446A (en) | Computer system using cache buffer storage unit and independent storage buffer device for store through operation | |
CN103858393A (zh) | 网络包的并行处理 | |
US6567407B1 (en) | ATM switch circuit capable of increasing use efficiency of address memory, and ATM switch circuit controlling method | |
US6584512B1 (en) | Communication DMA device for freeing the data bus from the CPU and outputting divided data | |
US6289421B1 (en) | Intelligent memory devices for transferring data between electronic devices | |
JP2689490B2 (ja) | 受信バッファの制御装置 | |
JPS60201453A (ja) | 記憶装置アクセス制御方式 | |
JP2615677B2 (ja) | 共用拡張記憶制御方式 | |
JP2533886B2 (ja) | デ―タ転送方式 | |
KR100265056B1 (ko) | 프로세서와직렬입/출력제어기간의인터페이스장치및그방법 | |
JP2552025B2 (ja) | データ転送方式 | |
JPH09185882A (ja) | 入出力データの大きさを異にする先入れ先出しメモリ装置及びその方法 | |
CN115658567A (zh) | 一种fifo装置及其数据传输方法 | |
JPH0721102A (ja) | メッセージ送受信装置 | |
JPS61107593A (ja) | 磁気バブルメモリ装置 | |
JPH02254557A (ja) | 通信制御処理装置 | |
JPH05289961A (ja) | アドレス生成装置 | |
JPS6175427A (ja) | 文字バツフア制御方式 | |
JPH04163664A (ja) | 分散メモリ型の並列計算機システム | |
JPH0644258B2 (ja) | Dma転送先バッファ設定方式 | |
JPS5478040A (en) | Communication controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |