"バスマスタと複数の通信インタフェースとの間に設けられ、該複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する記憶装置であって、前記複数の通信インタフェースのデータ送受信周期の中の最小周期のサイクル数が設定される第1のレジスタと、前記最小周期のサイクル数から前記複数の通信インタフェースの中の動作中のチャネル数を差し引いた値が設定される第2のレジスタと、前記複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶するシングルポートの記憶手段と、前記記憶手段からのデータ読出しおよび前記記憶手段へのデータ書込みを制御する制御手段とを含み、前記制御手段は、前記第1のレジスタに設定される最小周期のサイクル数をカウントする自走カウンタを有しており、前記最小周期中において、前記複数の通信インタフェースによる前記記憶手段への受信データの書込み要求および前記記憶手段からの送信データの読出し要求を受け付けて順次実行し、前記バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数が前記第2のレジスタに設定される値以下となるように前記バスマスタに対する要求を行なう、記憶装置。通信インタフェースの最適なFIFOサイズは、通信速度や処理混雑度などによって異なる。そのため、FIFOサイズが大きめに決定されることが多く、このようなFIFOが全ての通信インタフェースに対して設けられると回路規模が大きくなってしまうといった問題点があった。本発明は、上記問題点を解決するためになされたものであり、その目的は、複数の通信インタフェースによる送受信データを1つのデータバッファにバッファリングすることが可能な記憶装置を提供することである。本発明の一実施例によれば、バスマスタと複数の通信インタフェースとの間に設けられ、複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する記憶装置が提供される。TMINレジスタは、複数の通信インタフェースのデータ送受信周期の中の最小周期のサイクル数が設定される。RMAXレジスタは、最小周期のサイクル数から複数の通信インタフェースの中の動作中のチャネル数を差し引いた値が設定される。SRAMは、複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する。制御部は、SRAMからのデータ読出しおよびSRAMへのデータ書込みを制御する。制御部は、TMINレジスタに設定される最小周期のサイクル数をカウントする自走カウンタを有しており、最小周期中において、複数の通信インタフェースによるSRAMへの受信データの書込み要求およびSRAMからの送信データの読出し要求を受け付けて順次実行し、バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数がRMAXレジスタに設定される値以下となるようにバスマスタに対する要求を行なう。制御手段が、最小周期中において、バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数がRMAXレジスタに設定される値以下となるようにバスマスタに対する要求を行なうので、TMIN期間内に各チャネルのアクセスを処理することができ、リアルタイム性を確保することが可能となる。第1の実施の形態図1は、本発明の第1の実施の形態における記憶装置を含んだシステムの一例を示す図である。このシステムは、記憶装置1と、通信インタフェース2-1~2-3とを含み、記憶装置1が内部バス3を介してCPUや割り込みコントローラDMACなどと接続される。なお、図1においては、3個の通信インタフェース2-1~2-3が記載されているが、通信インタフェースの個数はこれに限られるものではない。また、CPUとDMACとを総称してバスマスタとも呼ぶものとする。記憶装置1は、受信データRDATA1~RDATA3信号、送信データTDATA1~TDATA3信号、データ受信要求RX1~RX3信号およびデータ送信要求TX1~TX3信号を介して通信インタフェース2-1~2-3に接続される。なお、データ受信要求後述のSRAM12へのデータ書込みおよびデータ送信要求後述のSRAM12からのデータ読出しをチャネル側アクセスと呼ぶことにする。また、通信装置1は、データ受信割り込みRXI1~RXI3信号およびデータ送信割り込みTXI1~TXI3信号を内部バス3を介して図示しない割り込みコントローラに出力する。なお、データ受信割り込み後述のSRAM12からのデータ読出しおよびデータ送信割り込み後述のSRAM12へのデータ書込みをバス側アクセスと呼ぶことにする。図2は、通信インタフェース2-1~2-3の内部構成の一例を示す図である。通信インタフェース2は、受信用シフトレジスタRSR21と、送信用シフトレジスタTSR22と、送受信コントロール部23と、ボーレートジェネレータ24と、内部バス3と接続されるバスインタフェース26と、受信用バッファ1バイト27と、送信用バッファ1バイト28とを含む。送受信コントロール部23は、シリアルステータスレジスタSSRと、シリアルコントロールレジスタSCRと、シリアルモードレジスタSMRとを含み、これらのレジスタに設定された値に応じて通信インタフェース2全体の制御を行なう。なお、これらのレジスタについては、一般的な通信インタフェースと同様であるので、詳細な説明は行なわない。ボーレートジェネレータ24は、ビットレートレジスタBRRを有しており、このBRRに設定された値に応じて、SCKnからボーレートクロックを生成し、送受信コントロール部23に与える。送受信コントロール部23は、ボーレートジェネレータ24から受けたボーレートクロックに応じてシリアルデータの送受信の制御を行なう。RSR21は、シリアル受信データRxDnを受け、パリティビットと1バイトデータを受信したときに、パリティビットを送受信コントロール部23に出力し、1バイトデータを受信用バッファ27に格納する。このとき、送受信コントロール部23は、RSR21からパリティビットおよびデータを受け、パリティチェックを行なう。TSR22は、送信用バッファ28および送受信コントロール部23から送信データおよびパリティビットを受け、シリアル送信データTxDnに変換して出力する。送受信コントロール部23は、TSR22にデータが格納されるときに、パリティビットを生成してTSR22に格納する。送受信コントロール部23は、8ビットデータを受信したときにRX信号を出力して、記憶装置1に受信用バッファ27からのデータ読出しを要求する。また、送受信コントロール部23は、記憶装置1にTX信号を出力して、記憶装置1にデータ書込みを要求する。また、送受信コントロール部23は、パリティエラーなど発生したときにERIエラー割り込み信号を出力する。また、送受信コントロール部23は、TSR22が空になったときにTEI信号を出力する。送受信コントロール部23およびボーレートジェネレータ24は、モジュールバス25、バスインタフェース26および内部バス3を介してCPUと接続されており、CPUによるSSR、SCR、SMR、BRRなどのレジスタ設定が行なわれる。図3は、本発明の第1の実施の形態における記憶装置1の内部構成の一例を示す図である。記憶装置1は、記憶装置1全体の制御を行なう制御部11と、シングルポートSRAM12と、セレクタ13と、バスインタフェース16とを含む。制御部11は、レジスタFS1~FS3、TMIN、RMAX14を有しており、レジスタの設定に応じて記憶装置1の制御を行なう。FS1~FS3は、各チャネルの送信FIFOおよび受信FIFOの容量を設定するためのレジスタであり、設定単位はバイトまたはその倍数である。以下の説明においては、設定単位がバイトの場合についてのものである。SRAM12内のチャネル1通信インタフェース2-1の送信データ領域はアドレス0~FS1-1であり、受信データ領域はアドレスFS1~2×FS1-1である。チャネル2~3通信インタフェース2-2~2-3についても同様に送信データ領域および受信データ領域が設定される。各チャネルの送信データ領域および受信データ領域の書込みポインタおよび読出しポインタは、FIFO機能を実現するように変更される。CPUまたはDMACが送信データ領域にデータを書込むときはチャネルごとに決められたアドレスに書き込む。また、CPUまたはDMACが受信データ領域からデータを読み出すときもチャネルごとに決められたアドレスからデータを読み出す。TMINは、最も高速な通信インタフェースの周期である最小周期またはそれ以下が設定される。TMINの設定単位は、SRAM12のアクセスサイクル数が2クロックで書込みまたは読出しが行なわれる場合は、2クロックとなる。以下、3チャネルとも送受信速度が同じ16サイクルであるとして説明する。RMAXは、CPUまたはDMACの処理待ちアクセス起動回数の最大値である、TMIN-動作中の全チャネル数が設定される。TMIN最小周期が16、全チャネル数送信、受信のそれぞれが1チャネルとしてカウントされるが6の場合、RMAXが10となる。制御部11は、TMINの周期でカウントする図示しない自走カウンタを有している。制御部11は、そのサイクル1でバス側アクセスがなければ、チャネル側アクセスを受け付ける。このとき、データ受信SRAM12へのデータ書込みを優先する。その後、制御部11は、バス側アクセス要求の待ち時間の最大がRMAX以下となるように受信データをCPUまたはDMACに出力する。ここで、RMAXは、TMINの50以上の値である。また、バス側アクセスは、割り込みの処理遅延などによって待たされる場合があるため、FIFO容量の設定はそれを考慮して行なう。すなわち待たされる時間に溜まるデータ量分以上に設定されねばならない。CPUは、各チャネルの送信データを設定し、各通信インタフェース2-1~2-3のレジスタに必要な設定を行なって、データの送受信を開始する。セレクタ13は、通信インタフェース2-1~2-3の受信データRDATA1~RDATA3のいずれかを選択的にSRAM12に出力し、SRAM12から出力されるデータを送信データTDATA1~TDATA3のいずれかを選択的に出力する。制御部11およびセレクタ13は、モジュールバス15、バスインタフェース16および内部バス3を介してCPUと接続されており、CPUによるレジスタ14の設定などが行なわれる。図4は、本発明の第1の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。上述のように、TMINレジスタに16が設定されている場合、1周期が16サイクルで構成される。通信インタフェース2-1が1バイトのデータ送受信を完了すると、サイクル1において、バス側アクセスがなければ、TX1信号およびRX1信号をイネーブルにする。これによって、通信インタフェース2-1は、次の送信データのTSR22への書込みと、RSR21からの受信データの読出しとを制御部11に要求する。サイクル2において、制御部11は、セレクタ13に通信インタフェース2-1からの受信データを接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル1の受信書込みポインタによって示される。受信データの書込みが完了すると、制御部11は、割り込み要求RXI1信号をイネーブルにして、CPUまたはDMACに対して受信データのアクセス要求を行なう。CPUまたはDMACは、割り込み処理による遅延後に、サイクル10で受信データの読出しを行なう。そして、制御部11は、受信データの読出しが完了するとRXI1信号をディスエーブルにする。なお、図4に示すタイミングチャートにおいて、SRAMの欄の斜線を施していない箇所はチャネル側アクセスを示し、斜線を施している箇所はバス側アクセスを示している。たとえば、斜線を施していないR1は、通信インタフェース2-1による受信データの書込みを示しており、斜線を施しているR1は、CPUまたはDMACによる受信データの読出しを示している。バス側アクセス要求数は制限される。すなわち処理要求数がRMAX以下に制限されるが、CPUまたはDMACからアクセスがあった場合はそのアクセスが最優先され、各チャネルからのデータアクセスは行われない。サイクル3において、チャネル1の送信データの読出し、チャネル2の受信データの書込み、チャネル2の送信データの読出しの3つのチャネル側アクセスがあるが、制御部11は、受信データ優先のラウンドロビン方式で競合を解決する。したがって、サイクル3においては、チャネル2の受信データの書込みが行なわれる。すなわち、制御部11は、セレクタ13をRDATA2に接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル2の受信書込みポインタによって示される。サイクル4において、制御部11は、セレクタ13をRDATA3に接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル3の受信書込みポインタによって示される。サイクル5において、制御部11は、セレクタ13をTDATA1に接続し、SRAM12からの送信データの読出しを行なう。このとき、SRAM12からの読出しアドレスはチャネル1の送信読出しポインタによって示される。通信インタフェース2-1は、SRAM12から読出された送信データをTSR22に書込み、シリアルデータに変換して外部に出力する。以降、同様の処理が行なわれて、チャネル側アクセスT2,T3の処理が行なわれた後、バス側アクセスR1~R3,T1~T3の処理が行なわれる。以上説明したように、本実施の形態における記憶装置によれば、制御部11は、バス側アクセスの処理要求数をRMAX以下に制限するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。また、1つのシングルポートSRAM12に複数チャネルの受信データおよび送信データを格納するため、各チャネルに対応したFIFOを設ける必要がなくなり、回路規模を小さくすることが可能となった。第2の実施の形態本発明の第2の実施の形態における記憶装置およびそれを含んだシステムの構成は、図1~図3に示す第1の実施の形態のものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。本実施の形態においては、RMAXを、処理待ちバーストアクセス要求回数の最大値とする。すなわち、RMAX={TMIN-全チャネル数÷バーストサイズ}の整数部分で定義される。したがって、TMIN最小周期=16、全チャネル数=6、バーストサイズ=4とすると、RMAX=2となる。図5は、本発明の第2の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。サイクル2において、通信インタフェース2-1がSRAM12に受信データの書込みを行なうと、SRAM12にCPUまたはDMACがバーストアクセスする4バイト分のデータが揃い、制御部11は、割込み要求信号RXI1をイネーブルにする。また、サイクル5において、通信インタフェース2-1が送信するデータが1バースト4バイト分だけ通信インタフェース2-1に送られたので、次のバーストデータを要求する割込み要求信号TXI1をイネーブルにする。ここで、RMAX=2であるので、これ以上のバーストアクセス要求は行なわれない。新しい周期が始まり、再びサイクル1になると、またRMAXまで要求可能になり、バーストアクセス処理が終わった回数分だけ追加要求できるようになる。サイクル10~13において、CPUまたはDMACは、チャネル1の4バイト分の受信データをSRAM12から読出す。また、サイクル15からの4サイクルにおいて、CPUまたはDMACは、チャネル1から送信される4バイト分のデータをSRAM12に書込む。バースト期間中は各チャネルのアクセスは行なえないので、次のサイクル周期2のサイクル3で通信インタフェース2-1によるSRAM12への受信データの書込みが行なわれる。以上説明したように、本実施の形態における記憶装置1によれば、制御部11は、バーストアクセス要求回数をRMAX以下に制限するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。第3の実施の形態本発明の第3の実施の形態における記憶装置は、図3に示す第1の実施の形態における記憶装置1と比較して、各チャネルからのアクセス要求がある場合にCPUまたはDMACからのアクセスを待たせるWAIT信号をCPUまたはDMACに出力する点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、RMAXの定義は第2の実施の形態において説明した定義と同様であり、RMAX={TMIN-全チャネル数÷バーストサイズ}の整数部分で定義される。図6は、本発明の第3の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。周期1については、図5に示す第2の実施の形態における記憶装置1のタイミングチャートと同様である。周期2のサイクル2の途中において、制御部11は、WAIT信号をイネーブルにしてCPUまたはDMACに対して次のアクセス要求を控えさせるようにする。周期2のサイクル3~8において、各チャネルのデータアクセスが行なわれる。サイクル8において各チャネルのデータアクセスが完了するため、制御部11は、サイクル8の途中でWAIT信号をディスエーブルにする。これによって、サイクル9以降、CPUまたはDMACは、SRAM12に対するデータアクセスが可能になる。図6においては、周期2のサイクル9からCPUまたはDMACがSRAM12にチャネル1の送信データの書込みを行なっている。以上説明したように、本実施の形態における記憶装置1によれば、制御部11は、バーストアクセス要求回数をRMAX以下に制限するようにWAIT信号を出力するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"