JPH08221371A - 共有メモリ制御方法とその制御回路 - Google Patents
共有メモリ制御方法とその制御回路Info
- Publication number
- JPH08221371A JPH08221371A JP7027010A JP2701095A JPH08221371A JP H08221371 A JPH08221371 A JP H08221371A JP 7027010 A JP7027010 A JP 7027010A JP 2701095 A JP2701095 A JP 2701095A JP H08221371 A JPH08221371 A JP H08221371A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- address
- shared memory
- queue length
- 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
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 FIFOメモリを必要とする複数の処理部
が、少なくとも1つの共有メモリを共有するための共有
メモリ制御回路において、共有メモリを効率よく利用で
きる共有メモリ制御回路を提供することを目的とする。 【構成】 双方向のアドレスチェーンが構成できる共有
メモリ10と、共有メモリ10にデータの書き込みを行
う書き込み制御回路40と、共有メモリ10からデータ
の読み出しを行う読み出し制御回路50と、書き込み制
御回路40と読み出し制御回路50が参照するためのメ
モリ管理用テーブル20及びバッファ管理用テーブル3
0とを有する。
が、少なくとも1つの共有メモリを共有するための共有
メモリ制御回路において、共有メモリを効率よく利用で
きる共有メモリ制御回路を提供することを目的とする。 【構成】 双方向のアドレスチェーンが構成できる共有
メモリ10と、共有メモリ10にデータの書き込みを行
う書き込み制御回路40と、共有メモリ10からデータ
の読み出しを行う読み出し制御回路50と、書き込み制
御回路40と読み出し制御回路50が参照するためのメ
モリ管理用テーブル20及びバッファ管理用テーブル3
0とを有する。
Description
【0001】
【産業上の利用分野】この発明は、共有メモリ制御方法
及びその回路に関するものである。
及びその回路に関するものである。
【0002】
【従来の技術】従来、データの読み書き動作を必要とす
る複数の処理部が、1または2以上の共有メモリを共有
し、それぞれの処理部がそのメモリにデータの読み出し
及び書き込みを行う方法があった。この場合、複数の処
理部が共有する共有メモリは、処理部ごとに論理分割し
て用いる必要があり、そのための共有メモリの制御方法
が種々考えられている。この共有メモリ制御方法の1つ
として例えば、3つの処理部が1つの共有メモリを共有
する場合、その共有メモリを3つの論理分割メモリ、例
えばメモリ1、メモリ2及びメモリ3に分割する方法と
して、メモリ1に対してアドレスチェーン1、メモリ2
に対してアドレスチェーン2、メモリ3に対してアドレ
スチェーン3を構成する方法がある。ここで、共有メモ
リと、共有メモリを論理的に分割した複数のメモリとを
区別するために、論理的に分割してなるメモリのそれぞ
れを論理分割メモリと呼ぶことにする。つまり、メモリ
1、メモリ2およびメモリ3が論理分割メモリである。
る複数の処理部が、1または2以上の共有メモリを共有
し、それぞれの処理部がそのメモリにデータの読み出し
及び書き込みを行う方法があった。この場合、複数の処
理部が共有する共有メモリは、処理部ごとに論理分割し
て用いる必要があり、そのための共有メモリの制御方法
が種々考えられている。この共有メモリ制御方法の1つ
として例えば、3つの処理部が1つの共有メモリを共有
する場合、その共有メモリを3つの論理分割メモリ、例
えばメモリ1、メモリ2及びメモリ3に分割する方法と
して、メモリ1に対してアドレスチェーン1、メモリ2
に対してアドレスチェーン2、メモリ3に対してアドレ
スチェーン3を構成する方法がある。ここで、共有メモ
リと、共有メモリを論理的に分割した複数のメモリとを
区別するために、論理的に分割してなるメモリのそれぞ
れを論理分割メモリと呼ぶことにする。つまり、メモリ
1、メモリ2およびメモリ3が論理分割メモリである。
【0003】上述したように、1つの共有メモリを複数
の論理分割メモリとして使用する場合、ある特定の論理
分割メモリ、例えば上記メモリ2に共有メモリの大半を
占めるデータが入力されることが考えられる。このよう
な場合、メモリ1及びメモリ3に割り当てられる共有メ
モリのメモリ領域が非常に小さくなってしまうという問
題が生じる。この問題を解決するために、各論理分割メ
モリのキュー長に対して、それぞれ予め補償されている
キュー長(以下、補償キュー長と呼ぶ)を設定し、補償
キュー長を越えない範囲でデータを書き込む方法が行わ
れている。ここで、キュー長とは、論理分割メモリに格
納されたデータ数である。
の論理分割メモリとして使用する場合、ある特定の論理
分割メモリ、例えば上記メモリ2に共有メモリの大半を
占めるデータが入力されることが考えられる。このよう
な場合、メモリ1及びメモリ3に割り当てられる共有メ
モリのメモリ領域が非常に小さくなってしまうという問
題が生じる。この問題を解決するために、各論理分割メ
モリのキュー長に対して、それぞれ予め補償されている
キュー長(以下、補償キュー長と呼ぶ)を設定し、補償
キュー長を越えない範囲でデータを書き込む方法が行わ
れている。ここで、キュー長とは、論理分割メモリに格
納されたデータ数である。
【0004】
【発明が解決しようとする課題】しかしながら、論理分
割メモリのキュー長に対してそれぞれ補償キュー長を設
定する場合、次の問題が生じる。論理分割メモリの補償
キュー長の合計を共有メモリの記憶容量に等しくする
と、各論理分割メモリに対して共有メモリを固定的に分
割することになり、共有メモリとしての利点が生じな
い。また、論理分割メモリの補償キュー長の合計を共有
メモリの記憶容量を越えるように設定すると、それぞれ
の補償キュー長で示された各論理分割メモリの記憶容量
が補償キュー長まで補償されないことになる。このた
め、キュー長が補償キュー長に達する以前にデータの書
き込みが不可能となる場合が生ずる。
割メモリのキュー長に対してそれぞれ補償キュー長を設
定する場合、次の問題が生じる。論理分割メモリの補償
キュー長の合計を共有メモリの記憶容量に等しくする
と、各論理分割メモリに対して共有メモリを固定的に分
割することになり、共有メモリとしての利点が生じな
い。また、論理分割メモリの補償キュー長の合計を共有
メモリの記憶容量を越えるように設定すると、それぞれ
の補償キュー長で示された各論理分割メモリの記憶容量
が補償キュー長まで補償されないことになる。このた
め、キュー長が補償キュー長に達する以前にデータの書
き込みが不可能となる場合が生ずる。
【0005】
【課題を解決するための手段】この発明の共有メモリ制
御方法は、データの書き込み及び読み出しを行う少なく
とも第1及び第2の処理部にそれぞれ対応した第1及び
第2のFIFOバッファを共有メモリを用いて構成する
共有メモリ制御方法において、第1及び第2の処理部の
それぞれに対応した第1及び第2の補償キュー長を設定
する第1のステップを有し、さらに、第1の処理部が第
1のデータを共有メモリに書き込むとき、共有メモリに
空き領域がある場合は、第1のデータを空き領域に書き
込み、共有メモリに空き領域がなく、かつ、第1の処理
部により共有メモリ上に格納されているデータのキュー
長が第1の補償キュー長より小さく、かつ、第2の処理
部により共有メモリ上に格納されているデータのキュー
長が第2の補償キュー長より大きい場合は、第2の処理
部により共有メモリ上に格納されている第2のデータを
廃棄し、第2のデータにかえて第1のデータを書き込む
第2のステップを有するものである。
御方法は、データの書き込み及び読み出しを行う少なく
とも第1及び第2の処理部にそれぞれ対応した第1及び
第2のFIFOバッファを共有メモリを用いて構成する
共有メモリ制御方法において、第1及び第2の処理部の
それぞれに対応した第1及び第2の補償キュー長を設定
する第1のステップを有し、さらに、第1の処理部が第
1のデータを共有メモリに書き込むとき、共有メモリに
空き領域がある場合は、第1のデータを空き領域に書き
込み、共有メモリに空き領域がなく、かつ、第1の処理
部により共有メモリ上に格納されているデータのキュー
長が第1の補償キュー長より小さく、かつ、第2の処理
部により共有メモリ上に格納されているデータのキュー
長が第2の補償キュー長より大きい場合は、第2の処理
部により共有メモリ上に格納されている第2のデータを
廃棄し、第2のデータにかえて第1のデータを書き込む
第2のステップを有するものである。
【0006】
【作用】第1のステップは、第1及び第2の処理部のそ
れぞれに対応した第1及び第2の補償キュー長を設定す
るステップである。第2のステップは、第1の処理部が
第1のデータを共有メモリに書き込むとき、共有メモリ
に空き領域がある場合は、第1のデータを空き領域に書
き込み、共有メモリに空き領域がなく、かつ、第1の処
理部により共有メモリ上に格納されているデータのキュ
ー長が第1の補償キュー長より小さく、かつ、第2の処
理部により共有メモリ上に格納されているデータのキュ
ー長が第2の補償キュー長より大きい場合は、第2の処
理部により共有メモリ上に格納されている第2のデータ
を廃棄し、第2のデータにかえて第1のデータを書き込
むステップである。
れぞれに対応した第1及び第2の補償キュー長を設定す
るステップである。第2のステップは、第1の処理部が
第1のデータを共有メモリに書き込むとき、共有メモリ
に空き領域がある場合は、第1のデータを空き領域に書
き込み、共有メモリに空き領域がなく、かつ、第1の処
理部により共有メモリ上に格納されているデータのキュ
ー長が第1の補償キュー長より小さく、かつ、第2の処
理部により共有メモリ上に格納されているデータのキュ
ー長が第2の補償キュー長より大きい場合は、第2の処
理部により共有メモリ上に格納されている第2のデータ
を廃棄し、第2のデータにかえて第1のデータを書き込
むステップである。
【0007】
【実施例】図1は、この発明の第1の実施例である共有
メモリ制御回路を説明するための図である。この第1の
実施例の共有メモリ制御回路は、共有メモリ10をn個
の論理分割されたFIFO形式のメモリとして用いるた
めの制御回路である。FIFO形式のメモリとは、ファ
ースト・イン・ファースト・アウトの順序でデータが読
み出されるのメモリのことである。つまり、データの読
み書きを必要とし、しかもFIFO形式のメモリを必要
をする処理部(図示せず)がn個ある場合、これらn個
の処理部にメモリを共有させるための制御回路である。
ここで、n個の処理部を処理部1、処理部2、…、処理
部nと呼ぶことにする。また、共有メモリ10と区別す
るために、上記処理部に対して論理的に分割してなるF
IFO形式のメモリのそれぞれをバッファと呼ぶことに
し、処理部i(i:1≦i≦n、iは整数)に割り当て
られたバッファをバッファiとする。
メモリ制御回路を説明するための図である。この第1の
実施例の共有メモリ制御回路は、共有メモリ10をn個
の論理分割されたFIFO形式のメモリとして用いるた
めの制御回路である。FIFO形式のメモリとは、ファ
ースト・イン・ファースト・アウトの順序でデータが読
み出されるのメモリのことである。つまり、データの読
み書きを必要とし、しかもFIFO形式のメモリを必要
をする処理部(図示せず)がn個ある場合、これらn個
の処理部にメモリを共有させるための制御回路である。
ここで、n個の処理部を処理部1、処理部2、…、処理
部nと呼ぶことにする。また、共有メモリ10と区別す
るために、上記処理部に対して論理的に分割してなるF
IFO形式のメモリのそれぞれをバッファと呼ぶことに
し、処理部i(i:1≦i≦n、iは整数)に割り当て
られたバッファをバッファiとする。
【0008】共有メモリ10は、書き込みアドレスが入
力されるポートAisと、書き込みデータが入力される
ポートDisとを有し、さらに、読み出しアドレスが入
力されるポートAosと読み出しデータが入力されるポ
ートDosとを有する。書き込み制御回路40及び読み
出し制御回路50は、処理部iに対応したFIFO形式
のバッファiを論理的に構成するための共有メモリ10
の制御回路の主要部である。書き込み制御回路40は、
書き込みバッファ指定信号により、メモリ管理用テーブ
ル20を参照して書き込みアドレスを求め、上記アドレ
スを共有メモリ10のポートAisへ送出し、データの
書き込みを行う。それと共に、書き込み制御回路40
は、アドレスチェーンの再構成に伴う共有メモリ10の
データを更新し、さらに、メモリ管理用テーブル20の
データと、バッファ管理用テーブル30のデータとを更
新する。また、書き込み制御回路40は、書き込みアド
レスを一時記憶するレジスタを有する。このレジスタを
アドレスポインタWPとよぶ。
力されるポートAisと、書き込みデータが入力される
ポートDisとを有し、さらに、読み出しアドレスが入
力されるポートAosと読み出しデータが入力されるポ
ートDosとを有する。書き込み制御回路40及び読み
出し制御回路50は、処理部iに対応したFIFO形式
のバッファiを論理的に構成するための共有メモリ10
の制御回路の主要部である。書き込み制御回路40は、
書き込みバッファ指定信号により、メモリ管理用テーブ
ル20を参照して書き込みアドレスを求め、上記アドレ
スを共有メモリ10のポートAisへ送出し、データの
書き込みを行う。それと共に、書き込み制御回路40
は、アドレスチェーンの再構成に伴う共有メモリ10の
データを更新し、さらに、メモリ管理用テーブル20の
データと、バッファ管理用テーブル30のデータとを更
新する。また、書き込み制御回路40は、書き込みアド
レスを一時記憶するレジスタを有する。このレジスタを
アドレスポインタWPとよぶ。
【0009】読み出し制御回路50は、次に読み出すデ
ータが格納されている共有メモリ10のアドレスを一時
記憶するレジスタを有する。このレジスタをアドレスポ
インタRPとよぶ。読み出しバッファ指定信号によりバ
ッファi(i:1≦i≦n、iは整数)が指定される
と、読み出し制御回路50は、バッファ管理用テーブル
30を参照し、アドレスポインタRPに読み出しアドレ
スを保持して、上記読み出しアドレスを共有メモリ10
のポートAosへ送出し、データの読み出しを行う。そ
れと共に、読み出し制御回路50は、アドレスチェーン
の再構成に伴う共有メモリ10のデータを更新し、さら
に、メモリ管理用テーブル20、バッファ管理用テーブ
ル30を更新する。
ータが格納されている共有メモリ10のアドレスを一時
記憶するレジスタを有する。このレジスタをアドレスポ
インタRPとよぶ。読み出しバッファ指定信号によりバ
ッファi(i:1≦i≦n、iは整数)が指定される
と、読み出し制御回路50は、バッファ管理用テーブル
30を参照し、アドレスポインタRPに読み出しアドレ
スを保持して、上記読み出しアドレスを共有メモリ10
のポートAosへ送出し、データの読み出しを行う。そ
れと共に、読み出し制御回路50は、アドレスチェーン
の再構成に伴う共有メモリ10のデータを更新し、さら
に、メモリ管理用テーブル20、バッファ管理用テーブ
ル30を更新する。
【0010】メモリ管理用テーブル20及びバッファ管
理用テーブル30は、書き込みアドレスの算出と、アド
レスチェーンの再構成に伴う共有メモリ10のデータ更
新等のためのテーブルである。
理用テーブル30は、書き込みアドレスの算出と、アド
レスチェーンの再構成に伴う共有メモリ10のデータ更
新等のためのテーブルである。
【0011】つぎに、共有メモリ10の論理構成を説明
する。第1の実施例の共有メモリ制御回路が、データの
書き込み及び読み出しをリスト処理により行うため、共
有メモリ10は、図2に示されるデータフォーマットを
有する。つまり、共有メモリ10は、図2に示されるメ
モリセルを論理単位とする。各メモリセルは、書き込み
データを格納する記憶部DATA(以下、単にDATA
と呼ぶ)と、アドレスチェーンを構成するための記憶部
QFA(以下、単にQFAと呼ぶ)、記憶部QBA(以
下、単にQBAと呼ぶ)、記憶部MFA(以下、単にM
FAと呼ぶ)、及び記憶部MBA(以下、単にMBAと
呼ぶ)とを有する。
する。第1の実施例の共有メモリ制御回路が、データの
書き込み及び読み出しをリスト処理により行うため、共
有メモリ10は、図2に示されるデータフォーマットを
有する。つまり、共有メモリ10は、図2に示されるメ
モリセルを論理単位とする。各メモリセルは、書き込み
データを格納する記憶部DATA(以下、単にDATA
と呼ぶ)と、アドレスチェーンを構成するための記憶部
QFA(以下、単にQFAと呼ぶ)、記憶部QBA(以
下、単にQBAと呼ぶ)、記憶部MFA(以下、単にM
FAと呼ぶ)、及び記憶部MBA(以下、単にMBAと
呼ぶ)とを有する。
【0012】QFAに格納されるデータは、対応するD
ATAに格納されているデータが属するバッファi(1
≦i≦n、iは整数)を論理構成するアドレスチェーン
の前方向のアドレスである。つまり、DATAに格納さ
れているデータが属するバッファiのデータの中で、当
該DATAに格納されているデータより1データ先に格
納されたデータが格納されたメモリセルのアドレスであ
る。以後、バッファiのデータで構成されているアドレ
スチェーンをバッファ用アドレスチェーンi(i:1≦
i≦n、iは整数)と呼ぶことにする。アドレスチェー
ンの詳細については後述する。
ATAに格納されているデータが属するバッファi(1
≦i≦n、iは整数)を論理構成するアドレスチェーン
の前方向のアドレスである。つまり、DATAに格納さ
れているデータが属するバッファiのデータの中で、当
該DATAに格納されているデータより1データ先に格
納されたデータが格納されたメモリセルのアドレスであ
る。以後、バッファiのデータで構成されているアドレ
スチェーンをバッファ用アドレスチェーンi(i:1≦
i≦n、iは整数)と呼ぶことにする。アドレスチェー
ンの詳細については後述する。
【0013】QBAに格納されるデータは、対応するD
ATAに格納されているデータが属するバッファiのデ
ータで構成されるアドレスチェーンの後ろ方向のアドレ
スである。つまり、対応するDATAに格納されている
データが属するバッファiのデータの中で、当該DAT
Aに格納されているデータより1データ後に格納された
データが格納されたメモリセルのアドレスである。
ATAに格納されているデータが属するバッファiのデ
ータで構成されるアドレスチェーンの後ろ方向のアドレ
スである。つまり、対応するDATAに格納されている
データが属するバッファiのデータの中で、当該DAT
Aに格納されているデータより1データ後に格納された
データが格納されたメモリセルのアドレスである。
【0014】MFAに格納されるデータは、メモリ管理
用アドレスチェーンの前方向のアドレスである。MBA
に格納されるデータは、メモリ管理用アドレスチェーン
の後ろ方向のアドレスである。メモリ管理用アドレスチ
ェーンの詳細については後述する。
用アドレスチェーンの前方向のアドレスである。MBA
に格納されるデータは、メモリ管理用アドレスチェーン
の後ろ方向のアドレスである。メモリ管理用アドレスチ
ェーンの詳細については後述する。
【0015】つぎに、この実施例において構成されるア
ドレスチェーンについて説明する。まず、バッファ用ア
ドレスチェーンについて説明する。図3は、バッファ用
アドレスチェーンiをQFA及びQBAを用いて構成し
ていることを示す図である。図中、メモリセル080
は、アドレス080から始まるメモリセルであり、メモ
リセル080のDATAには、バッファiに書き込まれ
たデータ(m)が格納されている。ここで、データ
(m)は、バッファiに書き込まれたデータの中で、現
在m番目に読み出されるべきデータである。メモリセル
080のQFAには、バッファiに書き込まれたデータ
の中で現在(m−1)番目に読み出されるべきデータ
(m−1)、つまり、データ(m)の1データ前に読み
だされるべきデータが格納されているメモリセルのアド
レスが格納されている。また、メモリセル080のQB
Aには、バッファiに書き込まれたデータの中で現在
(m+1)番目に読み出されるべきデータ(m+1)、
つまり、データmの1データ後に読み出されるデータが
格納されているメモリセルのアドレスが格納されてい
る。図3は、バッファiに書き込まれたデータの順序に
従ってメモリセルを並べた概念図であり、左から右に行
くほど遅く書き込まれたデータが格納されているメモリ
セルとなる。また、矢印は、矢印の起点となる格納領域
に矢印の終点で示されるアドレスが格納されていること
を示している。このように、QFA及びQBAにより、
双方向のバッファ用アドレスチェーンが構成されてい
る。このように双方向の1本のアドレスチェーンによ
り、結合されるメモリセルの書き込み時期の順序関係が
わかる。
ドレスチェーンについて説明する。まず、バッファ用ア
ドレスチェーンについて説明する。図3は、バッファ用
アドレスチェーンiをQFA及びQBAを用いて構成し
ていることを示す図である。図中、メモリセル080
は、アドレス080から始まるメモリセルであり、メモ
リセル080のDATAには、バッファiに書き込まれ
たデータ(m)が格納されている。ここで、データ
(m)は、バッファiに書き込まれたデータの中で、現
在m番目に読み出されるべきデータである。メモリセル
080のQFAには、バッファiに書き込まれたデータ
の中で現在(m−1)番目に読み出されるべきデータ
(m−1)、つまり、データ(m)の1データ前に読み
だされるべきデータが格納されているメモリセルのアド
レスが格納されている。また、メモリセル080のQB
Aには、バッファiに書き込まれたデータの中で現在
(m+1)番目に読み出されるべきデータ(m+1)、
つまり、データmの1データ後に読み出されるデータが
格納されているメモリセルのアドレスが格納されてい
る。図3は、バッファiに書き込まれたデータの順序に
従ってメモリセルを並べた概念図であり、左から右に行
くほど遅く書き込まれたデータが格納されているメモリ
セルとなる。また、矢印は、矢印の起点となる格納領域
に矢印の終点で示されるアドレスが格納されていること
を示している。このように、QFA及びQBAにより、
双方向のバッファ用アドレスチェーンが構成されてい
る。このように双方向の1本のアドレスチェーンによ
り、結合されるメモリセルの書き込み時期の順序関係が
わかる。
【0016】つぎに、メモリ管理用テーブル20及びバ
ッファ管理用テーブル30を表1及び表2を用いて説明
する。まず、メモリ管理用テーブル20を表1を用いて
説明する。メモリ管理用テーブル20は、記憶部A1
(以下、たんにA1と呼ぶ)、記憶部B1(以下、たん
にB1と呼ぶ)、記憶部C1(以下、たんにC1と呼
ぶ)とを有する。A1には、共有メモリ10においてデ
ータが入っていない空のメモリセルの集合を、アドレス
チェーンによって論理結合した場合の先頭のメモリセル
のアドレスが格納されている。このアドレスチェーンを
空きメモリセル用アドレスチェーンと呼ぶことにする。
また、B1には、空きメモリセル用アドレスチェーンに
よるメモリセルの論理結合において、最後尾のメモリセ
ルのアドレスが格納されている。さらに、C1には、空
きメモリセル用アドレスチェーンのキュー長が格納され
ている。ここで、空きメモリセル用アドレスチェーンの
キュー長とは、空きメモリセル用アドレスチェーンによ
り結合されたメモリセル数を示している。この空メモリ
用アドレスチェーンは、後述する共有メモリ10の初期
化のときにつくられる。
ッファ管理用テーブル30を表1及び表2を用いて説明
する。まず、メモリ管理用テーブル20を表1を用いて
説明する。メモリ管理用テーブル20は、記憶部A1
(以下、たんにA1と呼ぶ)、記憶部B1(以下、たん
にB1と呼ぶ)、記憶部C1(以下、たんにC1と呼
ぶ)とを有する。A1には、共有メモリ10においてデ
ータが入っていない空のメモリセルの集合を、アドレス
チェーンによって論理結合した場合の先頭のメモリセル
のアドレスが格納されている。このアドレスチェーンを
空きメモリセル用アドレスチェーンと呼ぶことにする。
また、B1には、空きメモリセル用アドレスチェーンに
よるメモリセルの論理結合において、最後尾のメモリセ
ルのアドレスが格納されている。さらに、C1には、空
きメモリセル用アドレスチェーンのキュー長が格納され
ている。ここで、空きメモリセル用アドレスチェーンの
キュー長とは、空きメモリセル用アドレスチェーンによ
り結合されたメモリセル数を示している。この空メモリ
用アドレスチェーンは、後述する共有メモリ10の初期
化のときにつくられる。
【0017】
【表1】
【0018】
【表2】
【0019】メモリ管理用テーブル20は、さらに記憶
部A2(以下、単にA2と呼ぶ)、記憶部B2(以下、
単にB2と呼ぶ)及び記憶部C2(以下、単にC2と呼
ぶ)とを有する。A2には、補償キュー長超過メモリセ
ル用アドレスチェーンによる論理結合における先頭のメ
モリセルのアドレスが格納されている。B2には、補償
キュー長超過メモリセル用アドレスチェーンによるメモ
リセルの論理結合における最後尾のメモリセルのアドレ
スが格納されている。C2には、補償キュー長超過メモ
リセル用アドレスチェーンのキュー長が格納されてい
る。
部A2(以下、単にA2と呼ぶ)、記憶部B2(以下、
単にB2と呼ぶ)及び記憶部C2(以下、単にC2と呼
ぶ)とを有する。A2には、補償キュー長超過メモリセ
ル用アドレスチェーンによる論理結合における先頭のメ
モリセルのアドレスが格納されている。B2には、補償
キュー長超過メモリセル用アドレスチェーンによるメモ
リセルの論理結合における最後尾のメモリセルのアドレ
スが格納されている。C2には、補償キュー長超過メモ
リセル用アドレスチェーンのキュー長が格納されてい
る。
【0020】ここで、補償キュー長超過メモリセル用ア
ドレスチェーンとは、バッファごとに予め決められたバ
ッファ記憶容量を越えて書き込まれたデータを結合した
ものである。つまり、バッファが記憶しているデータ量
が、すでに補償キュー長を越えており、その状況下でバ
ッファにデータが書き込まれた場合、当該データが格納
されたメモリセルが、論理的に補償キュー長超過メモリ
セル用アドレスチェーンに結合されていく。したがっ
て、補償キュー長超過メモリセル用アドレスチェーンに
より結合されているメモリセルに格納されてるデータに
は、例えばバッファ1に属するものがあったり、バッフ
ァ5に属するものがあったりする。初期状態において
は、この補償キュー長超過メモリセル用アドレスチェー
ンは構成されていない。
ドレスチェーンとは、バッファごとに予め決められたバ
ッファ記憶容量を越えて書き込まれたデータを結合した
ものである。つまり、バッファが記憶しているデータ量
が、すでに補償キュー長を越えており、その状況下でバ
ッファにデータが書き込まれた場合、当該データが格納
されたメモリセルが、論理的に補償キュー長超過メモリ
セル用アドレスチェーンに結合されていく。したがっ
て、補償キュー長超過メモリセル用アドレスチェーンに
より結合されているメモリセルに格納されてるデータに
は、例えばバッファ1に属するものがあったり、バッフ
ァ5に属するものがあったりする。初期状態において
は、この補償キュー長超過メモリセル用アドレスチェー
ンは構成されていない。
【0021】つぎに、バッファ管理用テーブル30を表
2を用いて説明する。バッファ管理用テーブル30に
は、バッファごとに結合されたバッファ用アドレスチェ
ーンに関するデータが格納されている。バッファ管理用
テーブル30は、記憶部Di(i:1≦i≦n、iは整
数)(以下、単にDiと呼ぶ)、記憶部Ei(i:1≦
i≦n、iは整数)(以下、単にEiと呼ぶ)、記憶部
Fi(i:1≦i≦n、iは整数)(以下、単にfiと
呼ぶ)、記憶部Gi(i:1≦i≦n、iは整数)(以
下、単にGiと呼ぶ)、記憶部Hi(i:1≦i≦n、
iは整数)(以下、単にHiと呼ぶ)とを有する。バッ
ファ用アドレスチェーンiに関するデータとして、Di
にヘッドアドレスが格納され、Eiにテイルアドレスが
格納され、Fiにキュー長が格納され、Giに補償キュ
ー長が格納され、Hiに(補償キュー長+1)番目のア
ドレスが格納されている。
2を用いて説明する。バッファ管理用テーブル30に
は、バッファごとに結合されたバッファ用アドレスチェ
ーンに関するデータが格納されている。バッファ管理用
テーブル30は、記憶部Di(i:1≦i≦n、iは整
数)(以下、単にDiと呼ぶ)、記憶部Ei(i:1≦
i≦n、iは整数)(以下、単にEiと呼ぶ)、記憶部
Fi(i:1≦i≦n、iは整数)(以下、単にfiと
呼ぶ)、記憶部Gi(i:1≦i≦n、iは整数)(以
下、単にGiと呼ぶ)、記憶部Hi(i:1≦i≦n、
iは整数)(以下、単にHiと呼ぶ)とを有する。バッ
ファ用アドレスチェーンiに関するデータとして、Di
にヘッドアドレスが格納され、Eiにテイルアドレスが
格納され、Fiにキュー長が格納され、Giに補償キュ
ー長が格納され、Hiに(補償キュー長+1)番目のア
ドレスが格納されている。
【0022】ヘッドアドレスとは、アドレスチェーンに
よるメモリセルの論理結合における先頭のメモリセルの
アドレスである。テイルアドレスとは、アドレスチェー
ンによるメモリセルの論理結合における最後尾のメモリ
セルのアドレスである。キュー長とは、バッファ用アド
レスチェーンiのキュー長である。補償キュー長とは、
バッファiに対して予め設定された記憶容量である。こ
の補償キュー長により、バッファiの記憶容量が補償さ
れる。したがって、G1+G2+…+Gi+…+Gn
(i:1≦i≦n、iは整数)の値を共有メモリ10の
記憶容量と等しくなるように設定することが、共有メモ
リ10の有効利用の点で望ましい。もちろん、G1+G
2+…+Gi+…+Gnの値が共有メモリ10の記憶容
量より小さくなるように設定しても構わない。(補償キ
ュー長+1)番目のアドレスとは、補償キュー長超過メ
モリセル用アドレスチェーンに結合されたバッファiに
属するデータの中で、最初に読み出されるべきデータが
格納されたメモリセルのアドレスである。
よるメモリセルの論理結合における先頭のメモリセルの
アドレスである。テイルアドレスとは、アドレスチェー
ンによるメモリセルの論理結合における最後尾のメモリ
セルのアドレスである。キュー長とは、バッファ用アド
レスチェーンiのキュー長である。補償キュー長とは、
バッファiに対して予め設定された記憶容量である。こ
の補償キュー長により、バッファiの記憶容量が補償さ
れる。したがって、G1+G2+…+Gi+…+Gn
(i:1≦i≦n、iは整数)の値を共有メモリ10の
記憶容量と等しくなるように設定することが、共有メモ
リ10の有効利用の点で望ましい。もちろん、G1+G
2+…+Gi+…+Gnの値が共有メモリ10の記憶容
量より小さくなるように設定しても構わない。(補償キ
ュー長+1)番目のアドレスとは、補償キュー長超過メ
モリセル用アドレスチェーンに結合されたバッファiに
属するデータの中で、最初に読み出されるべきデータが
格納されたメモリセルのアドレスである。
【0023】それでは、この発明の第1の実施例の共有
メモリ制御回路の動作を説明する。まず、図1における
共有メモリ10の初期化について説明する。図4は、共
有メモリ10の初期化を説明するためのフローチャート
である。図1の書き込み制御回路40にリセット信号が
入力されると、書き込み制御回路40は、リスト処理に
より共有メモリ10のメモリセルを論理的に接続する
(手続き(11)、(12))。つまり、メモリセルの
MFA及びMBAを使用して、アドレスチェーンを構成
する。このアドレスチェーンで結合されたメモリセルの
データ格納部は空であるので、初期化により生成される
アドレスチェーンは、上説した空きメモリセル用アドレ
スチェーンである。さらに、空きメモリセル用アドレス
チェーンにより結合されたメモリセルに基づいて、メモ
リ管理用テーブル20のA1にヘッドアドレスを、B1
にテイルアドレスを、C1にキュー長を書き込む(手続
き(13))。以上の動作により、共有メモリ10の初
期化が完了する。
メモリ制御回路の動作を説明する。まず、図1における
共有メモリ10の初期化について説明する。図4は、共
有メモリ10の初期化を説明するためのフローチャート
である。図1の書き込み制御回路40にリセット信号が
入力されると、書き込み制御回路40は、リスト処理に
より共有メモリ10のメモリセルを論理的に接続する
(手続き(11)、(12))。つまり、メモリセルの
MFA及びMBAを使用して、アドレスチェーンを構成
する。このアドレスチェーンで結合されたメモリセルの
データ格納部は空であるので、初期化により生成される
アドレスチェーンは、上説した空きメモリセル用アドレ
スチェーンである。さらに、空きメモリセル用アドレス
チェーンにより結合されたメモリセルに基づいて、メモ
リ管理用テーブル20のA1にヘッドアドレスを、B1
にテイルアドレスを、C1にキュー長を書き込む(手続
き(13))。以上の動作により、共有メモリ10の初
期化が完了する。
【0024】つぎに、書き込み動作を説明する。書き込
みデータが、図1の共有メモリ10のポートDisに入
力されると、それとともに書き込みバッファをバッファ
iと指定する書き込みバッファ指定信号が、書き込み制
御回路40に入力される。書き込みデータがバッファを
指定するデータをヘッダとしてもつ場合は、書き込み制
御回路40で上記書き込みデータのヘッダを解読しても
よい。
みデータが、図1の共有メモリ10のポートDisに入
力されると、それとともに書き込みバッファをバッファ
iと指定する書き込みバッファ指定信号が、書き込み制
御回路40に入力される。書き込みデータがバッファを
指定するデータをヘッダとしてもつ場合は、書き込み制
御回路40で上記書き込みデータのヘッダを解読しても
よい。
【0025】図5は、データの書き込み動作を示すフロ
ーチャートである。バッファiを指定する書き込みバッ
ファ指定信号が入力されると、図1の書き込み制御回路
40は、メモリ管理用テーブル20の空きメモリセル用
アドレスチェーンのキュー長C1の値が、ゼロかどうか
を判定する(手続き(21)、(22))。C1の値が
ゼロでないときは、空きメモリセルが存在しているの
で、図5中のモジュール1を実行する(手続き(2
4))。
ーチャートである。バッファiを指定する書き込みバッ
ファ指定信号が入力されると、図1の書き込み制御回路
40は、メモリ管理用テーブル20の空きメモリセル用
アドレスチェーンのキュー長C1の値が、ゼロかどうか
を判定する(手続き(21)、(22))。C1の値が
ゼロでないときは、空きメモリセルが存在しているの
で、図5中のモジュール1を実行する(手続き(2
4))。
【0026】図6にモジュール1のフローチャートを示
す。まず、アドレスポインタWPの値を、図1中のメモ
リ管理用テーブル20の空きメモリセル用アドレスチェ
ーンのヘッドアドレスA1の値に更新する(手続き(3
1))。つぎに、メモリ管理用テーブル20の空きメモ
リセル用アドレスチェーンのヘッドアドレスA1の値
を、アドレスA1のメモリセルのMBAの値に更新する
(手続き(32))。つぎに、アドレスポインタWPの
値を図1の共有メモリ10のポートAisに送出し、共
有メモリ10のアドレスWPに書き込みデータを書き込
む(手続き(33))。つぎに、メモリ管理用テーブル
20の空きメモリセル用アドレスチェーンのキュー長C
1の値を1つディクリメントする(手続き(34))。
以上の動作により、空きメモリセル用アドレスチェーン
が更新された。
す。まず、アドレスポインタWPの値を、図1中のメモ
リ管理用テーブル20の空きメモリセル用アドレスチェ
ーンのヘッドアドレスA1の値に更新する(手続き(3
1))。つぎに、メモリ管理用テーブル20の空きメモ
リセル用アドレスチェーンのヘッドアドレスA1の値
を、アドレスA1のメモリセルのMBAの値に更新する
(手続き(32))。つぎに、アドレスポインタWPの
値を図1の共有メモリ10のポートAisに送出し、共
有メモリ10のアドレスWPに書き込みデータを書き込
む(手続き(33))。つぎに、メモリ管理用テーブル
20の空きメモリセル用アドレスチェーンのキュー長C
1の値を1つディクリメントする(手続き(34))。
以上の動作により、空きメモリセル用アドレスチェーン
が更新された。
【0027】つぎに、アドレスWPのメモリセルのQF
Aの値を、図1中のバッファ管理用テーブル30のバッ
ファ用アドレスチェーンiのテイルアドレスEiの値に
更新する(手続き(35))。アドレスWPのメモリセ
ルのQFAに示されているアドレス、このアドレスのメ
モリセルのQBAの値を、WPの値に更新する(手続き
(36))。つぎに、バッファ管理用テーブル30のバ
ッファ用アドレスチェーンiのキュー長Fiの値を1つ
インクリメントする(手続き(37))。以上により、
バッファ用アドレスチェーンiが更新された。
Aの値を、図1中のバッファ管理用テーブル30のバッ
ファ用アドレスチェーンiのテイルアドレスEiの値に
更新する(手続き(35))。アドレスWPのメモリセ
ルのQFAに示されているアドレス、このアドレスのメ
モリセルのQBAの値を、WPの値に更新する(手続き
(36))。つぎに、バッファ管理用テーブル30のバ
ッファ用アドレスチェーンiのキュー長Fiの値を1つ
インクリメントする(手続き(37))。以上により、
バッファ用アドレスチェーンiが更新された。
【0028】つぎに、バッファ管理用テーブル30のバ
ッファ用アドレスチェーンiのキュー長Fiの値と、バ
ッファiの補償キュー長Giとを比較し、Fi≦Giで
あれば、モジュール1を終了する。Fi>Giであれ
ば、以下に示す補償キュー長超過メモリセル用アドレス
チェーンの再構成を行う(手続き(38))。まず、F
i=Gi+1のときのみ、つまり補償キュー長超過メモ
リセル用アドレスチェーンにバッファiのデータが1つ
も結合されていないとき、バッファ管理用テーブル30
の(補償キュー長+1)番目のアドレスH1の値を、W
Pの値に更新する(手続き(39)、(40))。つぎ
に、入力データが補償キュー長超過メモリセル用アドレ
スチェーンに結合されるので、メモリ管理用テーブル2
0の補償キュー長超過メモリセル用アドレスチェーンの
キュー長C2の値を1つインクリメントする(手続き
(41))。つぎに、アドレスWPのメモリセルのMF
Aの値を、メモリ管理用テーブル20の補償キュー長超
過メモリセル用アドレスチェーンのテイルアドレスB2
の値に更新する(手続き(42))。つぎに、アドレス
B2のメモリセルのMBAの値を、WPの値に更新する
(手続き(43))。つぎに、メモリ管理用テーブル2
0の補償キュー長超過メモリセル用アドレスチェーンの
テイルアドレスB2の値を、WPの値に更新する(手続
き(44))。モジュール1の手続きは以上の通りであ
る。
ッファ用アドレスチェーンiのキュー長Fiの値と、バ
ッファiの補償キュー長Giとを比較し、Fi≦Giで
あれば、モジュール1を終了する。Fi>Giであれ
ば、以下に示す補償キュー長超過メモリセル用アドレス
チェーンの再構成を行う(手続き(38))。まず、F
i=Gi+1のときのみ、つまり補償キュー長超過メモ
リセル用アドレスチェーンにバッファiのデータが1つ
も結合されていないとき、バッファ管理用テーブル30
の(補償キュー長+1)番目のアドレスH1の値を、W
Pの値に更新する(手続き(39)、(40))。つぎ
に、入力データが補償キュー長超過メモリセル用アドレ
スチェーンに結合されるので、メモリ管理用テーブル2
0の補償キュー長超過メモリセル用アドレスチェーンの
キュー長C2の値を1つインクリメントする(手続き
(41))。つぎに、アドレスWPのメモリセルのMF
Aの値を、メモリ管理用テーブル20の補償キュー長超
過メモリセル用アドレスチェーンのテイルアドレスB2
の値に更新する(手続き(42))。つぎに、アドレス
B2のメモリセルのMBAの値を、WPの値に更新する
(手続き(43))。つぎに、メモリ管理用テーブル2
0の補償キュー長超過メモリセル用アドレスチェーンの
テイルアドレスB2の値を、WPの値に更新する(手続
き(44))。モジュール1の手続きは以上の通りであ
る。
【0029】つぎに、図5のフローチャートにおいて、
C1=0の場合のフローを説明する。まず、Fi≧Gi
の場合、つまりバッファ用アドレスチェーンiのキュー
長Fiの値が、バッファiの補償キュー長Giの値以上
大きいとき、入力データを廃棄し終了する(手続き(2
6))。言い換えれば、空のメモリセルがなく、しかも
図1の共有メモリ10に格納されているバッファiのデ
ータ量が、すでに補償キュー長を越えている場合は、入
力データが廃棄されることになる。一方、Fi<G1の
場合は、モジュール2を実行する(手続き(25))。
C1=0の場合のフローを説明する。まず、Fi≧Gi
の場合、つまりバッファ用アドレスチェーンiのキュー
長Fiの値が、バッファiの補償キュー長Giの値以上
大きいとき、入力データを廃棄し終了する(手続き(2
6))。言い換えれば、空のメモリセルがなく、しかも
図1の共有メモリ10に格納されているバッファiのデ
ータ量が、すでに補償キュー長を越えている場合は、入
力データが廃棄されることになる。一方、Fi<G1の
場合は、モジュール2を実行する(手続き(25))。
【0030】図7にモジュール2のフローチャートを示
す。まず、アドレスポインタWPの値を、補償キュー長
超過メモリセル用アドレスチェーンのヘッドアドレスA
2の値に更新する(手続き(51))。つぎに、メモリ
管理用テーブル20の補償キュー長超過メモリセル用ア
ドレスチェーンのヘッドアドレスA2の値を、アドレス
A2のメモリセルのMBAの値に更新する(手続き(5
2))。つぎに、アドレスポインタWPの値を図1の共
有メモリ10のポートAisに送出し、入力データの書
き込みを行う(手続き(53))。以上の手続き(5
1)、(52)、(53)により、アドレスWPのセル
が、補償キュー長超過メモリセル用アドレスチェーンか
らリリースされ、廃棄されたことになる。つぎに、メモ
リ管理用テーブル20の補償キュー長超過メモリセル用
アドレスチェーンのキュー長C2の値を、1つディクリ
メントする(手続き(54))。以上の動作により、補
償キュー長超過メモリセル用アドレスチェーンの先頭の
メモリセルが、補償キュー長超過メモリセル用アドレス
チェーンからリリースされる。これにより、補償キュー
長超過メモリセル用アドレスチェーンが更新された。つ
ぎに、アドレスWPのメモリセルのQFAに示されてい
るアドレス、このアドレスのメモリセルのQBAの値
を、アドレスWPのメモリセルのQBAの値に更新する
(手続き(55))。つぎに、アドレスWPのメモリセ
ルのQBAに示されているアドレス、このアドレスのメ
モリセルのQFAの値を、アドレスWPのメモリセルの
QFAの値に更新する(手続き(56))。この手続き
(55)、(56)動作により、バッファ用アドレスチ
ェーンh(h:1≦h≦n、h≠i)により、廃棄され
たデータと接続されているメモリセル同士が接続された
ことになる。これにより、バッファ用アドレスチェーン
h(h:1≦h≦n、h≠i)が再構成された。
す。まず、アドレスポインタWPの値を、補償キュー長
超過メモリセル用アドレスチェーンのヘッドアドレスA
2の値に更新する(手続き(51))。つぎに、メモリ
管理用テーブル20の補償キュー長超過メモリセル用ア
ドレスチェーンのヘッドアドレスA2の値を、アドレス
A2のメモリセルのMBAの値に更新する(手続き(5
2))。つぎに、アドレスポインタWPの値を図1の共
有メモリ10のポートAisに送出し、入力データの書
き込みを行う(手続き(53))。以上の手続き(5
1)、(52)、(53)により、アドレスWPのセル
が、補償キュー長超過メモリセル用アドレスチェーンか
らリリースされ、廃棄されたことになる。つぎに、メモ
リ管理用テーブル20の補償キュー長超過メモリセル用
アドレスチェーンのキュー長C2の値を、1つディクリ
メントする(手続き(54))。以上の動作により、補
償キュー長超過メモリセル用アドレスチェーンの先頭の
メモリセルが、補償キュー長超過メモリセル用アドレス
チェーンからリリースされる。これにより、補償キュー
長超過メモリセル用アドレスチェーンが更新された。つ
ぎに、アドレスWPのメモリセルのQFAに示されてい
るアドレス、このアドレスのメモリセルのQBAの値
を、アドレスWPのメモリセルのQBAの値に更新する
(手続き(55))。つぎに、アドレスWPのメモリセ
ルのQBAに示されているアドレス、このアドレスのメ
モリセルのQFAの値を、アドレスWPのメモリセルの
QFAの値に更新する(手続き(56))。この手続き
(55)、(56)動作により、バッファ用アドレスチ
ェーンh(h:1≦h≦n、h≠i)により、廃棄され
たデータと接続されているメモリセル同士が接続された
ことになる。これにより、バッファ用アドレスチェーン
h(h:1≦h≦n、h≠i)が再構成された。
【0031】つぎに、アドレスWPのメモリセルのQF
Aの値を、バッファ管理用テーブルのバッファ用アドレ
スチェーンiのテイルアドレスEiの値に更新する(手
続き(57))。つぎに、アドレスEiのメモリセルの
QBAの値を、WPの値に更新する(手続き(5
8))。
Aの値を、バッファ管理用テーブルのバッファ用アドレ
スチェーンiのテイルアドレスEiの値に更新する(手
続き(57))。つぎに、アドレスEiのメモリセルの
QBAの値を、WPの値に更新する(手続き(5
8))。
【0032】つぎに、バッファ管理用テーブルのバッフ
ァ用アドレスチェーンiのテイルアドレスEiの値を、
アドレスポインタWPの値に更新する(手続き(5
9))。つぎに、バッファ管理用テーブル30のバッフ
ァ用アドレスチェーンiのキュー長Fiの値を、1つイ
ンクリメントする(手続き(60))。以上により、モ
ジュール2の手続きが完了し、書き込み動作が終了す
る。
ァ用アドレスチェーンiのテイルアドレスEiの値を、
アドレスポインタWPの値に更新する(手続き(5
9))。つぎに、バッファ管理用テーブル30のバッフ
ァ用アドレスチェーンiのキュー長Fiの値を、1つイ
ンクリメントする(手続き(60))。以上により、モ
ジュール2の手続きが完了し、書き込み動作が終了す
る。
【0033】つぎに、図8を用いて読み出し動作を説明
する。読み出すバッファをバッファiと指定する読み出
しバッファ指定信号が、図1中の読み出し制御回路50
に入力されると、読み出し制御回路50は、アドレスポ
インタを算出し、さらにメモリ管理用テーブル20、バ
ッファ管理用テーブル30及び共有メモリ10のメモリ
セルのデータの更新を行う。図8は、データの読み出し
動作を示すフローチャートである。バッファiに対する
データの出力要求がくると、図1の読み出し制御回路4
0は、バッファ管理用テーブル30のバッファiのキュ
ー長Fiがゼロかどうかを判定する(手続き(80)、
(81))。Fiの値がゼロのときは、バッファiにデ
ータが存在していないので、データの読み出しは行われ
ない。Fiの値がゼロでないときは、以下の手続きを行
う。まず、アドレスポインタRPの値を、バッファ管理
用テーブル30のバッファiのヘッドアドレスDiの値
に更新する(手続き(82))。つぎに、バッファ管理
用テーブル30のバッファiのヘッドアドレスDiの値
を、アドレスDiのメモリセルのQBAの値に更新する
(手続き(83))。これにより、アドレスRPのメモ
リセルが、バッファ用アドレスチェーンiからリリース
されたことになる。
する。読み出すバッファをバッファiと指定する読み出
しバッファ指定信号が、図1中の読み出し制御回路50
に入力されると、読み出し制御回路50は、アドレスポ
インタを算出し、さらにメモリ管理用テーブル20、バ
ッファ管理用テーブル30及び共有メモリ10のメモリ
セルのデータの更新を行う。図8は、データの読み出し
動作を示すフローチャートである。バッファiに対する
データの出力要求がくると、図1の読み出し制御回路4
0は、バッファ管理用テーブル30のバッファiのキュ
ー長Fiがゼロかどうかを判定する(手続き(80)、
(81))。Fiの値がゼロのときは、バッファiにデ
ータが存在していないので、データの読み出しは行われ
ない。Fiの値がゼロでないときは、以下の手続きを行
う。まず、アドレスポインタRPの値を、バッファ管理
用テーブル30のバッファiのヘッドアドレスDiの値
に更新する(手続き(82))。つぎに、バッファ管理
用テーブル30のバッファiのヘッドアドレスDiの値
を、アドレスDiのメモリセルのQBAの値に更新する
(手続き(83))。これにより、アドレスRPのメモ
リセルが、バッファ用アドレスチェーンiからリリース
されたことになる。
【0034】つぎに、バッファ管理用テーブル30のバ
ッファiのキュー長Fiの値が、バッファiの補償キュ
ー長Giの値より大きいときは、以下の2つの手続きを
行う(手続き(84))。まず、アドレスHiのメモリ
セルのMFAに示されるアドレス、このアドレスのメモ
リセルのMBAの値を、アドレスHiのメモリセルのM
BAの値に更新する(手続き(85))。さらに、アド
レスHiのメモリセルのMBAに示されるアドレス、こ
のアドレスのメモリセルのMFAの値を、アドレスHi
のメモリセルのMFAの値に更新する(手続き(8
6))。以上の手続き(85)、(86)により、補償
キュー長超過メモリセル用アドレスチェーンで結合され
たバッファiのデータの中で、最初に読み出されるデー
タが格納されたメモリセルが、補償キュー長超過メモリ
セル用アドレスチェーンからリリースされる。さらに、
補償キュー長超過メモリセル用アドレスチェーンによっ
て、リリースされたメモリセルと結合されたメモリセル
同士が結合される。以上により、補償キュー長超過メモ
リセル用アドレスチェーンが再構成されたことになる。
ッファiのキュー長Fiの値が、バッファiの補償キュ
ー長Giの値より大きいときは、以下の2つの手続きを
行う(手続き(84))。まず、アドレスHiのメモリ
セルのMFAに示されるアドレス、このアドレスのメモ
リセルのMBAの値を、アドレスHiのメモリセルのM
BAの値に更新する(手続き(85))。さらに、アド
レスHiのメモリセルのMBAに示されるアドレス、こ
のアドレスのメモリセルのMFAの値を、アドレスHi
のメモリセルのMFAの値に更新する(手続き(8
6))。以上の手続き(85)、(86)により、補償
キュー長超過メモリセル用アドレスチェーンで結合され
たバッファiのデータの中で、最初に読み出されるデー
タが格納されたメモリセルが、補償キュー長超過メモリ
セル用アドレスチェーンからリリースされる。さらに、
補償キュー長超過メモリセル用アドレスチェーンによっ
て、リリースされたメモリセルと結合されたメモリセル
同士が結合される。以上により、補償キュー長超過メモ
リセル用アドレスチェーンが再構成されたことになる。
【0035】つぎに、図1の読み出し制御回路50は、
アドレスポインタRPの値を共有メモリ10のポートD
isに送出する(手続き(87))。これにより、アド
レスRPのメモリセルのデータが読み出される。バッフ
ァiからデータが1つ読み出されたので、バッファ監視
用テーブル30のバッファiのキュー長Fiの値を1つ
ディクリメントする(手続き(88))。つぎに、バッ
ファiのキュー長Fiの値が、バッファiの補償キュー
長Giより大きいとき、つまりデータを読み出した後、
以前としてバッファiのデータ量が補償キュー長を越え
ているときは、バッファ監視用テーブル30のバッファ
iの(補償キュー長+1)番目のアドレスHiの値を、
アドレスHiのメモリセルのQBAの値に更新する(手
続き(89)、(90))。
アドレスポインタRPの値を共有メモリ10のポートD
isに送出する(手続き(87))。これにより、アド
レスRPのメモリセルのデータが読み出される。バッフ
ァiからデータが1つ読み出されたので、バッファ監視
用テーブル30のバッファiのキュー長Fiの値を1つ
ディクリメントする(手続き(88))。つぎに、バッ
ファiのキュー長Fiの値が、バッファiの補償キュー
長Giより大きいとき、つまりデータを読み出した後、
以前としてバッファiのデータ量が補償キュー長を越え
ているときは、バッファ監視用テーブル30のバッファ
iの(補償キュー長+1)番目のアドレスHiの値を、
アドレスHiのメモリセルのQBAの値に更新する(手
続き(89)、(90))。
【0036】つぎに、空きメモリセル用アドレスチェー
ンを再構成する。まず、アドレスBiのメモリセルのM
BAの値を、アドレスポインタRPの値に更新する(手
続き(91))。さらに、アドレスRPのメモリセルの
MFAの値を、メモリ管理用テーブルの空きメモリセル
用アドレスチェーンのテイルアドレスB1の値に更新す
る(手続き(92))。以上の手続きにより、空のメモ
リセルとなったアドレスRPのメモリセルが、空きメモ
リセル用アドレスチェーンの最後尾に結合された。
ンを再構成する。まず、アドレスBiのメモリセルのM
BAの値を、アドレスポインタRPの値に更新する(手
続き(91))。さらに、アドレスRPのメモリセルの
MFAの値を、メモリ管理用テーブルの空きメモリセル
用アドレスチェーンのテイルアドレスB1の値に更新す
る(手続き(92))。以上の手続きにより、空のメモ
リセルとなったアドレスRPのメモリセルが、空きメモ
リセル用アドレスチェーンの最後尾に結合された。
【0037】つぎに、メモリ管理用テーブル20の空き
メモリセル用アドレスチェーンのテイルアドレスB1の
値を、RPの値に更新する(手続き(93))。さら
に、空きメモリセル用アドレスチェーンのキュー長C1
の値を1つインクリメントして、読み出しのための手続
きが終了する(手続き(94))。
メモリセル用アドレスチェーンのテイルアドレスB1の
値を、RPの値に更新する(手続き(93))。さら
に、空きメモリセル用アドレスチェーンのキュー長C1
の値を1つインクリメントして、読み出しのための手続
きが終了する(手続き(94))。
【0038】この第1の実施例では、空きメモリセルを
空きメモリセル用アドレスチェーンで結合し、さらに空
きメモリセル用アドレスチェーンのヘッドアドレスをヘ
ッドアドレスA1に格納した。これは、読み出し速度を
高めるための手法であり、必ずしも空きメモリセルをア
ドレスチェーンにより結合する必要はない。なぜなら、
空きメモリセルには、順序関係が存在しないからであ
る。空きメモリセルをアドレスチェーンにより結合しな
い場合は、メモリセルが空きであることを示す第1のフ
ラグをたて、入力データを書き込むときに、第1のフラ
グがたっているメモリセルのうち、任意の1つのメモリ
セルを選べばよい。
空きメモリセル用アドレスチェーンで結合し、さらに空
きメモリセル用アドレスチェーンのヘッドアドレスをヘ
ッドアドレスA1に格納した。これは、読み出し速度を
高めるための手法であり、必ずしも空きメモリセルをア
ドレスチェーンにより結合する必要はない。なぜなら、
空きメモリセルには、順序関係が存在しないからであ
る。空きメモリセルをアドレスチェーンにより結合しな
い場合は、メモリセルが空きであることを示す第1のフ
ラグをたて、入力データを書き込むときに、第1のフラ
グがたっているメモリセルのうち、任意の1つのメモリ
セルを選べばよい。
【0039】また、第1の実施例では、補償キュー長超
過メモリセルを補償キュー長超過メモリセル用アドレス
チェーンで結合し、さらに補償キュー長超過メモリセル
用アドレスチェーンのヘッドアドレスをヘッドアドレス
A1に格納した。これもまた、読み出し速度を高めるた
めの手法であり、必ずしも、補償キュー長超過空きメモ
リセル同士を属するバッファに関係なくアドレスチェー
ンにより結合する必要はない。補償キュー長超過メモリ
セルをアドレスチェーンにより結合しない場合は、メモ
リセルに格納されているデータが補償キュー長を超過し
てバッファに書き込まれていることを示す第3のフラグ
をたて、入力データをバッファi書き込む際に、バッフ
ァhのセルを廃棄する場合は、第3のフラグがたってい
るメモリセルのうち、任意の1つのメモリセルを選べば
よい。
過メモリセルを補償キュー長超過メモリセル用アドレス
チェーンで結合し、さらに補償キュー長超過メモリセル
用アドレスチェーンのヘッドアドレスをヘッドアドレス
A1に格納した。これもまた、読み出し速度を高めるた
めの手法であり、必ずしも、補償キュー長超過空きメモ
リセル同士を属するバッファに関係なくアドレスチェー
ンにより結合する必要はない。補償キュー長超過メモリ
セルをアドレスチェーンにより結合しない場合は、メモ
リセルに格納されているデータが補償キュー長を超過し
てバッファに書き込まれていることを示す第3のフラグ
をたて、入力データをバッファi書き込む際に、バッフ
ァhのセルを廃棄する場合は、第3のフラグがたってい
るメモリセルのうち、任意の1つのメモリセルを選べば
よい。
【0040】以上説明したように、空きメモリセル用ア
ドレスチェーン及び補償キュー長超過メモリセル用アド
レスチェーンを構成しない場合は、メモリセルが空きで
あることを示す第1のフラグ、メモリセルに格納されて
いるデータが補償キュー長を超過してバッファに書き込
まれていることを示す第2のフラグ及びメモリセルに格
納されているデータが補償キュー長内でバッファに書き
込まれていることを示す第3のフラグを示す格納部をメ
モリセルに用意する必要がある。また、この場合、メモ
リセル内の記憶部MFA、MBA及びメモリ管理用テー
ブル20は必要ない。さらに、読み出し動作及び書き込
む動作において、空きメモリセル用アドレスチェーン及
び補償キュー長超過メモリセル用アドレスチェーンの再
構成も必要ない。この構成によれば、使用する制御用の
メモリ領域が、第1の実施例の構成より少なくて済むと
いう効果が生じる。
ドレスチェーン及び補償キュー長超過メモリセル用アド
レスチェーンを構成しない場合は、メモリセルが空きで
あることを示す第1のフラグ、メモリセルに格納されて
いるデータが補償キュー長を超過してバッファに書き込
まれていることを示す第2のフラグ及びメモリセルに格
納されているデータが補償キュー長内でバッファに書き
込まれていることを示す第3のフラグを示す格納部をメ
モリセルに用意する必要がある。また、この場合、メモ
リセル内の記憶部MFA、MBA及びメモリ管理用テー
ブル20は必要ない。さらに、読み出し動作及び書き込
む動作において、空きメモリセル用アドレスチェーン及
び補償キュー長超過メモリセル用アドレスチェーンの再
構成も必要ない。この構成によれば、使用する制御用の
メモリ領域が、第1の実施例の構成より少なくて済むと
いう効果が生じる。
【0041】つぎに、この発明の第2の実施例を示す。
図9は、この発明の第2の実施例を説明するための図で
ある。第2の実施例において、第1の実施例と大きく異
なる点は、第2の実施例の共有メモリ110が、メモリ
セルによる論理構成をとってはおらず、単に、アドレス
を指定してデータを書き込み、またアドレスを指定して
データを読み出す構成のメモリである点である。また、
次に大きく異なる点は、処理部iによって書き込まれた
データ間の順序関係をアドレスチェーンによって関係付
けるのではなく、処理部ごとに用意されたアドレス用F
IFOメモリにアドレスを格納していくことにより、そ
の順序の関係付けを行う点である。
図9は、この発明の第2の実施例を説明するための図で
ある。第2の実施例において、第1の実施例と大きく異
なる点は、第2の実施例の共有メモリ110が、メモリ
セルによる論理構成をとってはおらず、単に、アドレス
を指定してデータを書き込み、またアドレスを指定して
データを読み出す構成のメモリである点である。また、
次に大きく異なる点は、処理部iによって書き込まれた
データ間の順序関係をアドレスチェーンによって関係付
けるのではなく、処理部ごとに用意されたアドレス用F
IFOメモリにアドレスを格納していくことにより、そ
の順序の関係付けを行う点である。
【0042】それでは、第2の実施例の構成を図9を用
いて説明する。この第2の実施例の共有メモリ制御回路
は、第1の実施例と同様、共有メモリ110をn個の論
理分割されたFIFO形式のメモリとして用いるための
制御回路である。つまり、データの読み書きを必要と
し、しかもFIFO形式のメモリを必要をする処理部
(図示せず)がn個ある場合、これらn個の処理部にメ
モリを共有させるための制御回路である。ここで、第1
の実施例と同様にn個の処理部を処理部1、処理部2、
…、処理部nと呼ぶことにする。また、共有メモリ11
0と区別するために、上記処理部に対して論理的に分割
してなるFIFO形式のメモリのそれぞれをバッファと
呼ぶことにし、処理部i(1≦i≦n、iは整数)に割
り当てられたバッファをバッファiとする。
いて説明する。この第2の実施例の共有メモリ制御回路
は、第1の実施例と同様、共有メモリ110をn個の論
理分割されたFIFO形式のメモリとして用いるための
制御回路である。つまり、データの読み書きを必要と
し、しかもFIFO形式のメモリを必要をする処理部
(図示せず)がn個ある場合、これらn個の処理部にメ
モリを共有させるための制御回路である。ここで、第1
の実施例と同様にn個の処理部を処理部1、処理部2、
…、処理部nと呼ぶことにする。また、共有メモリ11
0と区別するために、上記処理部に対して論理的に分割
してなるFIFO形式のメモリのそれぞれをバッファと
呼ぶことにし、処理部i(1≦i≦n、iは整数)に割
り当てられたバッファをバッファiとする。
【0043】共有メモリ110は、書き込みアドレスが
入力されるポートAisと、書き込みデータが入力され
るポートDisとを有し、さらに、読み出しアドレスが
入力されるポートAosと読み出しデータが入力される
ポートDosとを有する。書き込み制御回路140及び
読み出し制御回路150は、処理部iに対応したFIF
O形式のバッファiを論理的に構成するための共有メモ
リ110の制御回路の主要部である。
入力されるポートAisと、書き込みデータが入力され
るポートDisとを有し、さらに、読み出しアドレスが
入力されるポートAosと読み出しデータが入力される
ポートDosとを有する。書き込み制御回路140及び
読み出し制御回路150は、処理部iに対応したFIF
O形式のバッファiを論理的に構成するための共有メモ
リ110の制御回路の主要部である。
【0044】書き込み制御回路140は、空きメモリア
ドレス用メモリ170及び補償キュー長値格納メモリ1
80と接続されており、それぞれのメモリに格納された
情報を読み出す。また、書き込み制御回路140は、空
きメモリアドレス用メモリ170及び補償キュー長値格
納メモリ180からの情報並びに書き込みバッファ指定
信号に基づいて書き込みアドレスを求め、上記書き込み
アドレスを共有メモリ110のポートAisへ送出し、
書き込みデータの書き込みを行う。したがって、書き込
み制御回路140は、書き込みアドレスを一時的に保持
する書き込みアドレスレジスタを有する。さらに、書き
込み制御回路140は、処理部ごとに設けられたアドレ
ス用FIFOメモリ161〜16nに接続されており、
書き込みバッファ指定信号に基づいて、アドレス用FI
FOメモリ161〜16nの1つを選択し、そのアドレ
ス用FIFOメモリに書き込みアドレス値を格納する。
ドレス用メモリ170及び補償キュー長値格納メモリ1
80と接続されており、それぞれのメモリに格納された
情報を読み出す。また、書き込み制御回路140は、空
きメモリアドレス用メモリ170及び補償キュー長値格
納メモリ180からの情報並びに書き込みバッファ指定
信号に基づいて書き込みアドレスを求め、上記書き込み
アドレスを共有メモリ110のポートAisへ送出し、
書き込みデータの書き込みを行う。したがって、書き込
み制御回路140は、書き込みアドレスを一時的に保持
する書き込みアドレスレジスタを有する。さらに、書き
込み制御回路140は、処理部ごとに設けられたアドレ
ス用FIFOメモリ161〜16nに接続されており、
書き込みバッファ指定信号に基づいて、アドレス用FI
FOメモリ161〜16nの1つを選択し、そのアドレ
ス用FIFOメモリに書き込みアドレス値を格納する。
【0045】補償キュー長値格納メモリ180は、バッ
ファごとに予め設定された補償キュー長を格納するメモ
リである。ここで、補償キュー長の合計を共有メモリ1
10に格納できるキュー長の総数に等しくすることが、
共有メモリ110を有効利用する点で望ましい。
ファごとに予め設定された補償キュー長を格納するメモ
リである。ここで、補償キュー長の合計を共有メモリ1
10に格納できるキュー長の総数に等しくすることが、
共有メモリ110を有効利用する点で望ましい。
【0046】読み出し制御回路150は、処理部ごと、
つまりバッファごとに設けられたアドレス用FIFOメ
モリ161〜16nに接続されており、書き込みバッフ
ァ指定信号に基づいて、アドレス用FIFOメモリ16
1〜16nの1つを選択し、そのアドレス用FIFOメ
モリから読み出しアドレス値を読み出す。また、読み出
し制御回路150は、読み出しアドレスを一時的に保持
する読み出しアドレスレジスタを有する。
つまりバッファごとに設けられたアドレス用FIFOメ
モリ161〜16nに接続されており、書き込みバッフ
ァ指定信号に基づいて、アドレス用FIFOメモリ16
1〜16nの1つを選択し、そのアドレス用FIFOメ
モリから読み出しアドレス値を読み出す。また、読み出
し制御回路150は、読み出しアドレスを一時的に保持
する読み出しアドレスレジスタを有する。
【0047】つぎに、第2の実施例の共有メモリ制御回
路における書き込み動作を説明する。書き込みデータ
が、図9の共有メモリ110のポートDisに入力され
ると、それとともに書き込みバッファをバッファiと指
定する書き込みバッファ指定信号が、書き込み制御回路
140に入力される。書き込みデータがバッファを指定
するデータをヘッダとしてもつ場合は、書き込み制御回
路140で上記書き込みデータのヘッダを解読してもよ
い。
路における書き込み動作を説明する。書き込みデータ
が、図9の共有メモリ110のポートDisに入力され
ると、それとともに書き込みバッファをバッファiと指
定する書き込みバッファ指定信号が、書き込み制御回路
140に入力される。書き込みデータがバッファを指定
するデータをヘッダとしてもつ場合は、書き込み制御回
路140で上記書き込みデータのヘッダを解読してもよ
い。
【0048】図10は、データの書き込み動作を説明す
るためのフローチャートである。以下に、書き込みデー
タの書き込み動作を説明する。書き込みデータが、図9
の共有メモリ110のポートDisに入力されると、そ
れとともに書き込みバッファをバッファiと指定する書
き込みバッファ指定信号が、書き込み制御回路140に
入力される。書き込みデータがバッファを指定するデー
タをヘッダとしてもつ場合は、書き込み制御回路140
が上記書き込みデータのヘッダを解読してもよい。
るためのフローチャートである。以下に、書き込みデー
タの書き込み動作を説明する。書き込みデータが、図9
の共有メモリ110のポートDisに入力されると、そ
れとともに書き込みバッファをバッファiと指定する書
き込みバッファ指定信号が、書き込み制御回路140に
入力される。書き込みデータがバッファを指定するデー
タをヘッダとしてもつ場合は、書き込み制御回路140
が上記書き込みデータのヘッダを解読してもよい。
【0049】バッファiを指定する書き込みバッファ指
定信号が、書き込み制御回路140に入力されると、書
き込み制御回路140は、共有メモリ110の現在使用
されていないメモリのアドレスを空きメモリアドレス用
メモリ170から読み出す。空きメモリアドレス用メモ
リ170は、FIFO形式のメモリであり、現在使用さ
れていないメモリのアドレスをすべて記憶している。こ
の第2の実施例では空きメモリアドレス用メモリ170
としてFIFO形式のメモリを使用しているが、空きメ
モリアドレス用メモリ170は、FIFO形式のメモリ
に限らず、FILO形式のメモリまたはランダムに読み
出す形式のメモリでもよい。つまり、空きメモリアドレ
ス用メモリ170は、共有メモリ110の空きメモリア
ドレスの任意の1つを読み出せることができるメモリで
あれば足りる。
定信号が、書き込み制御回路140に入力されると、書
き込み制御回路140は、共有メモリ110の現在使用
されていないメモリのアドレスを空きメモリアドレス用
メモリ170から読み出す。空きメモリアドレス用メモ
リ170は、FIFO形式のメモリであり、現在使用さ
れていないメモリのアドレスをすべて記憶している。こ
の第2の実施例では空きメモリアドレス用メモリ170
としてFIFO形式のメモリを使用しているが、空きメ
モリアドレス用メモリ170は、FIFO形式のメモリ
に限らず、FILO形式のメモリまたはランダムに読み
出す形式のメモリでもよい。つまり、空きメモリアドレ
ス用メモリ170は、共有メモリ110の空きメモリア
ドレスの任意の1つを読み出せることができるメモリで
あれば足りる。
【0050】空きメモリアドレス用メモリ170に空き
メモリアドレスが格納されている場合、書き込み制御回
路140は、その1つを書き込みアドレスレジスタに保
持し、図10のモジュール11を次に実行する。また、
空きメモリアドレス用メモリ170に空きメモリアドレ
スが格納されていない場合、書き込み制御回路140
は、図10の手続き(123)を実行する(手続き(1
21)、(122))。
メモリアドレスが格納されている場合、書き込み制御回
路140は、その1つを書き込みアドレスレジスタに保
持し、図10のモジュール11を次に実行する。また、
空きメモリアドレス用メモリ170に空きメモリアドレ
スが格納されていない場合、書き込み制御回路140
は、図10の手続き(123)を実行する(手続き(1
21)、(122))。
【0051】つぎに、空きメモリアドレス用メモリ17
0に空きメモリアドレスが格納されている場合に実行さ
れる図10のモジュール11の手続きを説明する。 図
11は、モジュール11の手続きを説明するためのフロ
ーチャートである。まず、書き込み制御回路140は、
書き込みアドレスレジスタが保持しているアドレス値を
共有メモリ110のポートAisへ送出し、書き込みデ
ータを共有メモリ110に書き込む(手続き(13
1))。つぎに、書き込み制御回路140は、バッファ
iを指定する書き込みバッファ指定信号により、アドレ
ス用FIFOメモリの中でアドレス用FIFOメモリ1
6iを特定する。その後、書き込み制御回路140は、
書き込みアドレスレジスタが保持しているアドレス値を
アドレス用FIFOメモリ16iに格納し、モジュール
11の手続きを終了する(手続き(132))。
0に空きメモリアドレスが格納されている場合に実行さ
れる図10のモジュール11の手続きを説明する。 図
11は、モジュール11の手続きを説明するためのフロ
ーチャートである。まず、書き込み制御回路140は、
書き込みアドレスレジスタが保持しているアドレス値を
共有メモリ110のポートAisへ送出し、書き込みデ
ータを共有メモリ110に書き込む(手続き(13
1))。つぎに、書き込み制御回路140は、バッファ
iを指定する書き込みバッファ指定信号により、アドレ
ス用FIFOメモリの中でアドレス用FIFOメモリ1
6iを特定する。その後、書き込み制御回路140は、
書き込みアドレスレジスタが保持しているアドレス値を
アドレス用FIFOメモリ16iに格納し、モジュール
11の手続きを終了する(手続き(132))。
【0052】つぎに、空きメモリアドレス用メモリ17
0に空きメモリアドレスが格納されていない場合に実行
される図10の手続き(123)を以下に説明する。ま
ず、書き込み制御回路140は、補償キュー長値格納メ
モリ180に格納されたバッファごとの補償キュー長の
データの中で、バッファiに対応した補償キュー長のデ
ータを読み出し、その補償キュー長の値とアドレス用F
IFOメモリ16iに格納されているアドレスデータの
キュー長の値とを比較する。その結果、アドレス用FI
FOメモリ16iに格納されているアドレスデータのキ
ュー長の値が、補償キュー長の値より小さい場合は、図
10のモジュール12を実行する。また、アドレス用F
IFOメモリ16iに格納されているアドレスデータの
キュー長の値が、補償キュー長の値より小さくない場合
は、入力される書き込みデータを廃棄する。
0に空きメモリアドレスが格納されていない場合に実行
される図10の手続き(123)を以下に説明する。ま
ず、書き込み制御回路140は、補償キュー長値格納メ
モリ180に格納されたバッファごとの補償キュー長の
データの中で、バッファiに対応した補償キュー長のデ
ータを読み出し、その補償キュー長の値とアドレス用F
IFOメモリ16iに格納されているアドレスデータの
キュー長の値とを比較する。その結果、アドレス用FI
FOメモリ16iに格納されているアドレスデータのキ
ュー長の値が、補償キュー長の値より小さい場合は、図
10のモジュール12を実行する。また、アドレス用F
IFOメモリ16iに格納されているアドレスデータの
キュー長の値が、補償キュー長の値より小さくない場合
は、入力される書き込みデータを廃棄する。
【0053】以下に、アドレス用FIFOメモリ16i
に格納されているアドレスデータのキュー長の値が補償
キュー長の値より小さい場合に、実行される図10のモ
ジュール12の手続きを説明する。 図12は、モジュ
ール12の手続きを説明するためのフローチャートであ
る。まず、書き込み制御回路140は、補償キュー長値
格納メモリ180に格納される補償キュー長の値とアド
レス用FIFOメモリ16k(k:1≦k≦n)のキュ
ー長とをそれぞれ比較する(手続き(141))。そし
て、格納されているアドレスデータのキュー長の値が補
償キュー長の値より大きいアドレス用FIFOメモリを
特定する(手続き(142))。特定されたアドレス用
FIFOメモリの中で、その1つを選び、当該アドレス
用FIFOメモリに格納されているアドレスデータの1
つを廃棄する(手続き(143))。ここで、特定され
たアドレス用FIFOメモリの中でその1つを選ぶ最適
な方法の1つとしては、補償キュー長の値からアドレス
データのキュー長の値までの超過分が最も大きいアドレ
ス用FIFOメモリを選ぶ方法があげられる。
に格納されているアドレスデータのキュー長の値が補償
キュー長の値より小さい場合に、実行される図10のモ
ジュール12の手続きを説明する。 図12は、モジュ
ール12の手続きを説明するためのフローチャートであ
る。まず、書き込み制御回路140は、補償キュー長値
格納メモリ180に格納される補償キュー長の値とアド
レス用FIFOメモリ16k(k:1≦k≦n)のキュ
ー長とをそれぞれ比較する(手続き(141))。そし
て、格納されているアドレスデータのキュー長の値が補
償キュー長の値より大きいアドレス用FIFOメモリを
特定する(手続き(142))。特定されたアドレス用
FIFOメモリの中で、その1つを選び、当該アドレス
用FIFOメモリに格納されているアドレスデータの1
つを廃棄する(手続き(143))。ここで、特定され
たアドレス用FIFOメモリの中でその1つを選ぶ最適
な方法の1つとしては、補償キュー長の値からアドレス
データのキュー長の値までの超過分が最も大きいアドレ
ス用FIFOメモリを選ぶ方法があげられる。
【0054】書き込み制御回路140は、上述の廃棄さ
れたアドレスデータの値を書き込みアドレスレジスタに
保持し、そのアドレス値を共有メモリ110のポートA
isへ送出する。これにより、書き込みデータを共有メ
モリ110へ書き込む(手続き(144))。さらに、
書き込み制御回路140は、書き込みアドレスレジスタ
が保持しているアドレス値をアドレス用FIFOメモリ
16iに格納し(手続き(145))、モジュール12
の手続きを終了する。
れたアドレスデータの値を書き込みアドレスレジスタに
保持し、そのアドレス値を共有メモリ110のポートA
isへ送出する。これにより、書き込みデータを共有メ
モリ110へ書き込む(手続き(144))。さらに、
書き込み制御回路140は、書き込みアドレスレジスタ
が保持しているアドレス値をアドレス用FIFOメモリ
16iに格納し(手続き(145))、モジュール12
の手続きを終了する。
【0055】つぎに、第2の実施例の共有メモリ制御回
路における読み出し動作を説明する。読み出しバッファ
をバッファiと指定する読み出しバッファ指定信号が、
読み出し制御回路150に入力されると、読み出し制御
回路150は、アドレス用FIFOメモリ16iからF
IFOの順序関係により読み出されたアドレスデータを
読み出し、当該アドレスデータを読み出しアドレスレジ
スタに保持する。その後、読み出し制御回路150は、
当該アドレスデータを共有メモリ110のポートAos
へ送出し、共有メモリ110の当該アドレスに格納され
ているデータを読み出す。
路における読み出し動作を説明する。読み出しバッファ
をバッファiと指定する読み出しバッファ指定信号が、
読み出し制御回路150に入力されると、読み出し制御
回路150は、アドレス用FIFOメモリ16iからF
IFOの順序関係により読み出されたアドレスデータを
読み出し、当該アドレスデータを読み出しアドレスレジ
スタに保持する。その後、読み出し制御回路150は、
当該アドレスデータを共有メモリ110のポートAos
へ送出し、共有メモリ110の当該アドレスに格納され
ているデータを読み出す。
【0056】また、読み出し制御回路150の読み出し
アドレスメモリへ保持されたアドレスデータは、空きメ
モリアドレス用メモリ170に格納される。
アドレスメモリへ保持されたアドレスデータは、空きメ
モリアドレス用メモリ170に格納される。
【0057】上説した第2の実施例は、処理部ごとのF
IFOメモリを共有メモリ110を用いて実現するため
の共有メモリ制御回路であるが、この第2の実施例は、
さらに、処理部ごとのFILOメモリを共有メモリ11
0を用いて実現するための共有メモリ制御回路にも変形
可能である。この場合、図9のアドレス用FIFOメモ
リ161〜16nをFILO形式のメモリに置換すれ
ば、容易に実現可能である。
IFOメモリを共有メモリ110を用いて実現するため
の共有メモリ制御回路であるが、この第2の実施例は、
さらに、処理部ごとのFILOメモリを共有メモリ11
0を用いて実現するための共有メモリ制御回路にも変形
可能である。この場合、図9のアドレス用FIFOメモ
リ161〜16nをFILO形式のメモリに置換すれ
ば、容易に実現可能である。
【0058】以上詳細に説明したように、この発明の第
2の実施例の共有メモリ制御回路は、処理部ごとにアド
レスチェーンを構成する方法をとってはおらず、それぞ
れのバッファの書き込みデータの論理的順序関係をアド
レス用FIFOメモリを用いることによって実現してい
る。
2の実施例の共有メモリ制御回路は、処理部ごとにアド
レスチェーンを構成する方法をとってはおらず、それぞ
れのバッファの書き込みデータの論理的順序関係をアド
レス用FIFOメモリを用いることによって実現してい
る。
【0059】一般に、FIFO形式のメモリは、連続的
なメモリ領域にデータを格納していく。つまり、書き込
みに関しては、書き込みアドレスを示すライトポインタ
を書き込みごとにインクリメントすることにより実現さ
れる。また、読み出しに関しては、読み出しアドレスを
示すリードポインタを読み出しごとにインクリメントす
ることにより実現される。このように、ライトポインタ
およびリードポインタを用いることにより、ファースト
・イン・ファースト・アウトの順序関係をつくる。した
がって、第2の実施例の共有メモリ制御回路において、
例えば、図9のアドレス用FIFOメモリが部分的なメ
モリエラーを起こし、アドレスデータが1部破壊したと
しても、アドレス用FIFOメモリが連続的なメモリ領
域にデータを格納しているため、破壊したアドレスの次
のアドレスを特定でき、破壊したアドレスデータを除い
て、アドレスデータ間のファースト・イン・ファースト
・アウトの順序関係が保たれる。つまり、共有メモリ1
10上の読み出しデータ間のファースト・イン・ファー
スト・アウトの順序関係は、アドレスデータの1部破壊
によっては、破壊したアドレスデータに対応する読み出
しデータを除いては崩れることはない。
なメモリ領域にデータを格納していく。つまり、書き込
みに関しては、書き込みアドレスを示すライトポインタ
を書き込みごとにインクリメントすることにより実現さ
れる。また、読み出しに関しては、読み出しアドレスを
示すリードポインタを読み出しごとにインクリメントす
ることにより実現される。このように、ライトポインタ
およびリードポインタを用いることにより、ファースト
・イン・ファースト・アウトの順序関係をつくる。した
がって、第2の実施例の共有メモリ制御回路において、
例えば、図9のアドレス用FIFOメモリが部分的なメ
モリエラーを起こし、アドレスデータが1部破壊したと
しても、アドレス用FIFOメモリが連続的なメモリ領
域にデータを格納しているため、破壊したアドレスの次
のアドレスを特定でき、破壊したアドレスデータを除い
て、アドレスデータ間のファースト・イン・ファースト
・アウトの順序関係が保たれる。つまり、共有メモリ1
10上の読み出しデータ間のファースト・イン・ファー
スト・アウトの順序関係は、アドレスデータの1部破壊
によっては、破壊したアドレスデータに対応する読み出
しデータを除いては崩れることはない。
【0060】
【発明の効果】以上詳細に説明したようにこの発明によ
れば、各処理部は、処理部毎に予め設定された補償キュ
ー長に達するまでは、共有メモリを論理的に分割したバ
ッファへの書き込みが補償される。さらに、共有メモリ
内に空きメモリが存在する場合は、たとえ処理部が書き
込んだデータ量が予め設定された補償キュー長を越えて
も、データの書き込みができる。したがって、共有メモ
リにおける未使用領域の有効利用が図れる。
れば、各処理部は、処理部毎に予め設定された補償キュ
ー長に達するまでは、共有メモリを論理的に分割したバ
ッファへの書き込みが補償される。さらに、共有メモリ
内に空きメモリが存在する場合は、たとえ処理部が書き
込んだデータ量が予め設定された補償キュー長を越えて
も、データの書き込みができる。したがって、共有メモ
リにおける未使用領域の有効利用が図れる。
【図1】第1の実施例を示すブロック図である。
【図2】共有メモリ10のデータフォーマットを示す図
である。
である。
【図3】アドレスチェーンを説明するための図である。
【図4】初期化を説明するフローチャートである。
【図5】第1の実施例の書き込み動作を説明するフロー
チャートである。
チャートである。
【図6】モジュール1の手続きを説明するフローチャー
トである。
トである。
【図7】モジュール2の手続きを説明するフローチャー
トである。
トである。
【図8】第1の実施例の読み込み動作を説明するフロー
チャートである。
チャートである。
【図9】第2の実施例を示すブロック図である。
【図10】第1の実施例の書き込み動作を説明するフロ
ーチャートである。
ーチャートである。
【図11】モジュール11の手続きを説明するフローチ
ャートである。
ャートである。
【図12】モジュール12の手続きを説明するフローチ
ャートである。
ャートである。
10、110 共有メモリ 20 メモリ管理用テーブル 30 バッファ管理用テーブル 40、140 書き込み制御回路 50、150 読み込み制御回路 161〜16n アドレス用FIFOメモリ 170 空きメモリアドレス用メモリ 180 補償キュー長値格納メモリ
Claims (7)
- 【請求項1】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFIFOバッファを共有メモリを用いて構成
する共有メモリ制御方法において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を設定する第1のステップと、 前記第1の処理部が第1のデータを前記共有メモリに書
き込むとき、前記共有メモリに空き領域がある場合は、
前記第1のデータを前記空き領域に書き込み、前記共有
メモリに空き領域がなく、かつ、前記第1の処理部によ
り前記共有メモリ上に格納されている前記データのキュ
ー長が前記第1の補償キュー長より小さく、かつ、前記
第2の処理部により前記共有メモリ上に格納されている
前記データのキュー長が前記第2の補償キュー長より大
きい場合は、前記第2の処理部により前記共有メモリ上
に格納されている第2のデータを廃棄し、前記第2のデ
ータにかえて前記第1のデータを書き込む第2のステッ
プとを有する共有メモリ制御方法。 - 【請求項2】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFILOバッファを共有メモリを用いて構成
する共有メモリ制御方法において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を設定する第1のステップと、 前記第1の処理部が第1のデータを前記共有メモリに書
き込むとき、前記共有メモリに空き領域がある場合は、
前記第1のデータを前記空き領域に書き込み、前記共有
メモリに空き領域がなく、かつ、前記第1の処理部によ
り前記共有メモリ上に格納されている前記データのキュ
ー長が前記第1の補償キュー長より小さく、かつ、前記
第2の処理部により前記共有メモリ上に格納されている
前記データのキュー長が前記第2の補償キュー長より大
きい場合は、前記第2の処理部により前記共有メモリ上
に格納されている第2のデータを廃棄し、前記第2のデ
ータにかえて前記第1のデータを書き込む第2のステッ
プとを有する共有メモリ制御方法。 - 【請求項3】 請求項1または請求項2記載の共有メモ
リ制御方法において、 さらに、前記第2のステップは、前記共有メモリに空き
領域がなく、かつ、前記第1の処理部により前記共有メ
モリ上に格納されている前記データのキュー長が前記第
1の補償キュー長以上の場合は、前記第1のデータを廃
棄することを特徴とする共有メモリ制御方法。 - 【請求項4】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFIFOバッファを共有メモリを用いて構成
する共有メモリ制御方法において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を設定する第1のステップと、 前記第1の処理部が第1のデータを前記共有メモリに書
き込むとき、前記共有メモリに空き領域がある場合は、
前記第1のデータを前記空き領域に書き込み、かつ、前
記空き領域のアドレスを前記第1のFIFOメモリに格
納し、前記共有メモリに空き領域がなく、かつ、前記第
1の処理部により前記共有メモリ上に格納されている前
記データのキュー長が前記第1の補償キュー長より小さ
く、かつ、前記第2の処理部により前記共有メモリ上に
格納されている前記データのキュー長が前記第2の補償
キュー長より大きい場合は、前記第2の処理部により前
記共有メモリ上に格納されている第2のデータを廃棄
し、前記第2のデータにかえて前記第1のデータを前記
共有メモリ上に書き込み、かつ、前記第1のデータが格
納されたアドレスを前記第1のFIFOメモリに格納す
る第2のステップと、 前記第1の処理部が前記共有メモリから前記データを読
み出すとき、前記第1のFIFOメモリからFIFOの
順序に従って次に読み出されるべき第1のアドレスを読
み出し、前記共有メモリの前記第1のアドレスに格納さ
れている前記データを読み出す第3のステップとを有す
る共有メモリ制御方法。 - 【請求項5】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFILOバッファを共有メモリを用いて構成
する共有メモリ制御方法において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を設定する第1のステップと、 前記第1の処理部が第1のデータを前記共有メモリに書
き込むとき、前記共有メモリに空き領域がある場合は、
前記第1のデータを前記空き領域に書き込み、かつ、前
記空き領域のアドレスを前記第1のFILOメモリに格
納し、前記共有メモリに空き領域がなく、かつ、前記第
1の処理部により前記共有メモリ上に格納されている前
記データのキュー長が前記第1の補償キュー長より小さ
く、かつ、前記第2の処理部により前記共有メモリ上に
格納されている前記データのキュー長が前記第2の補償
キュー長より大きい場合は、前記第2の処理部により前
記共有メモリ上に格納されている第2のデータを廃棄
し、前記第2のデータにかえて前記第1のデータを前記
共有メモリ上に書き込み、かつ、前記第1のデータが格
納されたアドレスを前記第1のFILOメモリに格納す
る第2のステップと、 前記第1の処理部が前記共有メモリから前記データを読
み出すとき、前記第1のFILOメモリからFILOの
順序に従って次に読み出されるべき第1のアドレスを読
み出し、前記共有メモリの前記第1のアドレスに格納さ
れている前記データを読み出す第3のステップとを有す
る共有メモリ制御方法。 - 【請求項6】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFIFOバッファを共有メモリを用いて構成
する共有メモリ制御回路において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を格納する第1のメモリと、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2のFIFOメモリと、 前記データの1つである第1のデータと、前記第1のデ
ータの書き込み主体が前記第1の処理部であることを示
す第1の指定信号とを入力とする第1の制御回路と、 読み出し主体が前記第1の処理部であることを示す第2
の指定信号を入力とする第2の制御回路とを有し、 前記第1の制御回路は、前記第1のデータおよび前記第
1の指定信号が入力されたとき、前記共有メモリに空き
領域がある場合は、前記第1のデータを前記空き領域に
書き込み、かつ、前記空き領域の第1のアドレスを前記
第1のFIFOメモリに格納し、前記共有メモリに空き
領域がなく、かつ、前記第1のFIFOメモリのキュー
長が前記第1の補償キュー長より小さく、かつ、前記第
2のFIFOメモリのキュー長が前記第2の補償キュー
長より大きい場合は、前記第2のFIFOメモリに格納
されている第2のアドレスのデータの1つを廃棄し、前
記第2のアドレスにより示される前記共有メモリの領域
に前記第1のデータを書き込み、かつ、前記第2のアド
レスを前記第1のFIFOメモリに格納し、 前記第2の制御回路は、前記第2の指定信号が入力され
たとき、前記第1のFIFOメモリからFIFOの順序
に従って次に読み出されるべき第3のアドレスを読み出
し、前記共有メモリの前記第3のアドレスに格納されて
いる前記データを読み出すことを特徴とする共有メモリ
制御回路。 - 【請求項7】 データの書き込み及び読み出しを行う少
なくとも第1及び第2の処理部にそれぞれ対応した第1
及び第2のFILOバッファを共有メモリを用いて構成
する共有メモリ制御回路において、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2の補償キュー長を格納する第1のメモリと、 前記第1及び第2の処理部のそれぞれに対応した第1及
び第2のFILOメモリと、 前記データの1つである第1のデータと、前記第1のデ
ータの書き込み主体が前記第1の処理部であることを示
す第1の指定信号とを入力とする第1の制御回路と、 読み出し主体が前記第1の処理部であることを示す第2
の指定信号を入力とする第2の制御回路とを有し、 前記第1の制御回路は、前記第1のデータおよび前記第
1の指定信号が入力されたとき、前記共有メモリに空き
領域がある場合は、前記第1のデータを前記空き領域に
書き込み、かつ、前記空き領域の第1のアドレスを前記
第1のFILOメモリに格納し、前記共有メモリに空き
領域がなく、かつ、前記第1のFILOメモリのキュー
長が前記第1の補償キュー長より小さく、かつ、前記第
2のFILOメモリのキュー長が前記第2の補償キュー
長より大きい場合は、前記第2のFILOメモリに格納
されている第2のアドレスのデータの1つを廃棄し、前
記第2のアドレスにより示される前記共有メモリの領域
に前記第1のデータを書き込み、かつ、前記第2のアド
レスを前記第1のFILOメモリに格納し、 前記第2の制御回路は、前記第2の指定信号が入力され
たとき、前記第1のFILOメモリからFILOの順序
に従って次に読み出されるべき第3のアドレスを読み出
し、前記共有メモリの前記第3のアドレスに格納されて
いる前記データを読み出すことを特徴とする共有メモリ
制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7027010A JPH08221371A (ja) | 1995-02-15 | 1995-02-15 | 共有メモリ制御方法とその制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7027010A JPH08221371A (ja) | 1995-02-15 | 1995-02-15 | 共有メモリ制御方法とその制御回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08221371A true JPH08221371A (ja) | 1996-08-30 |
Family
ID=12209145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7027010A Pending JPH08221371A (ja) | 1995-02-15 | 1995-02-15 | 共有メモリ制御方法とその制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08221371A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415416B1 (en) | 1998-10-16 | 2002-07-02 | Matsushita Electric Industrial Co., Ltd. | Method for improving the efficiency of designing a system-on-chip integrated circuit device |
JP2009207208A (ja) * | 1997-02-07 | 2009-09-10 | Alcatel-Lucent Usa Inc | Tcp接続の性能改善方法 |
CN102395958A (zh) * | 2011-08-26 | 2012-03-28 | 华为技术有限公司 | 一种数据包的并发处理方法及设备 |
-
1995
- 1995-02-15 JP JP7027010A patent/JPH08221371A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009207208A (ja) * | 1997-02-07 | 2009-09-10 | Alcatel-Lucent Usa Inc | Tcp接続の性能改善方法 |
US6415416B1 (en) | 1998-10-16 | 2002-07-02 | Matsushita Electric Industrial Co., Ltd. | Method for improving the efficiency of designing a system-on-chip integrated circuit device |
US6886150B2 (en) | 1998-10-16 | 2005-04-26 | Matsushita Electric Industrial Co., Ltd. | Method for designing integrated circuit device |
CN102395958A (zh) * | 2011-08-26 | 2012-03-28 | 华为技术有限公司 | 一种数据包的并发处理方法及设备 |
WO2012119420A1 (zh) * | 2011-08-26 | 2012-09-13 | 华为技术有限公司 | 一种数据包的并发处理方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0702500B1 (en) | Method of multicasting and multicast system | |
US8230174B2 (en) | Multi-queue address generator for start and end addresses in a multi-queue first-in first-out memory system | |
US5893162A (en) | Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists | |
US5825767A (en) | ATM switch with input and output ports | |
US5179558A (en) | Routing apparatus and method for high-speed mesh connected local area network | |
US20080013535A1 (en) | Data Switch and Switch Fabric | |
US7082499B2 (en) | External memory control device regularly reading ahead data from external memory for storage in cache memory, and data driven type information processing apparatus including the same | |
US6728256B1 (en) | Shared buffer control device | |
US7870310B2 (en) | Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system | |
US12095654B2 (en) | Interconnection device | |
US7523232B2 (en) | Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system | |
JP2628701B2 (ja) | 優先順位付き情報パケット用交換装置 | |
KR100560277B1 (ko) | 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체 | |
JPH08221371A (ja) | 共有メモリ制御方法とその制御回路 | |
US6912566B1 (en) | Memory device and method for operating the memory device | |
US6647477B2 (en) | Transporting data transmission units of different sizes using segments of fixed sizes | |
CN115391257A (zh) | 数据总线通信 | |
US6314489B1 (en) | Methods and systems for storing cell data using a bank of cell buffers | |
JPS6361530A (ja) | パケツトスイツチ | |
EP0710047B1 (en) | Method and apparatus for multicast of ATM cells | |
JP2964958B2 (ja) | Atmスイッチ | |
JPH06164641A (ja) | Fifoメモリ・パケットスイッチ | |
KR100243414B1 (ko) | 가상연결단위의 큐잉장치 및 방법 | |
JP2982771B2 (ja) | 共有バッファ型atmスイッチ | |
CN117354268A (zh) | 一种报文的缓存方法、装置、电子设备及存储介质 |