説明

記憶装置

【課題】複数の通信インタフェースによる送受信データを1つのデータバッファにバッファリングすることが可能な記憶装置を提供すること。
【解決手段】TMINレジスタは、複数の通信インタフェースのデータ送受信周期の中の最小周期のサイクル数が設定される。RMAXレジスタは、最小周期のサイクル数から複数の通信インタフェースの中の動作中のチャネル数を差し引いた値が設定される。制御部11は、最小周期中において、複数の通信インタフェースによるSRAM12への受信データの書込み要求およびSRAM12からの送信データの読出し要求を受け付けて順次実行し、バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数がRMAXレジスタに設定される値以下となるようにバスマスタに対する要求を行なう。したがって、TMIN期間内に各チャネルのアクセスを処理することができ、リアルタイム性を確保することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信インタフェースを制御する技術に関し、特に、共用のデータバッファ(FIFO(First In First Out))を用いて複数の通信インタフェースによるデータの送受信を制御する記憶装置に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータなどの情報処理装置の高機能化、多機能化が進んでおり、それに伴って複数の通信インタフェースが搭載されることが多くなってきている。このような通信インタフェースにおいては、通信速度が高速になると送信データ、受信データの転送が間に合わなくなり、必要な通信速度が得られない場合がある。これを防止するために、データを一時的に保持するデータバッファ(FIFO)が必要不可欠となる。
【0003】
通信インタフェースは、データ送信時に十分な量の送信データをデータバッファに格納しておき、それを順次送信する。また、データ受信時には、受信したデータをデータバッファに順次格納し、CPU(Central Processing Unit)に対して受信処理要求割り込みを発生させる。
【0004】
情報処理装置などに複数の通信インタフェースが搭載される場合、通信インタフェースのそれぞれに対して十分な容量のデータバッファを設けると、回路規模が大きくなってしまう。これに関連する技術として、下記の特許文献1〜4に開示された発明がある。
【0005】
特許文献1は、画像データのDMA転送効率の向上を図ることができる画像データ転送装置及び画像形成装置を提供することを目的とする。画像データ転送装置は、画像データを記憶するメモリと、メモリに記憶された画像データをバスラインを介してDMA転送する複数のDMAコントローラと、これらのDMAコントローラからのバスラインの使用要求を調停する調停器と、メモリ及びDMAコントローラの動作を制御する制御装置とを備えている。制御装置は、複数のDMAコントローラの中の一つだけのDMAコントローラによるDMA転送の第1DMA転送モードか、DMAコントローラの中の2つ以上のDMAコントローラによるDMA転送の第2DMA転送モードかを判断し、第1DMA転送モードと第2DMA転送モードに応じてDMA転送する画像データ量を変化させる。
【0006】
特許文献2は、処理速度を高めることのできる画像処理システムを提供することを目的とする。画像処理システムは、画像データを一次記憶するDRAMと、DRAMのリードライト制御を行うDRAM制御部と、画像データに対して所定の画像処理を行う画像処理部と、画像入力部と、画像出力部と、DRAM制御部と画像処理部との間に配置され、画像データの転送を行なうキャッシュシステムとを備える。キャッシュシステムは、DRAMに対してリードアドレスの先出しによる先読み動作と、データをまとめて後から書き込むライトバック動作を行なう。画像処理部と、画像入力部と、画像出力部とから入出力される画像データは、DMAによりリードキャッシュあるいはライトキャッシュを介してDRAMにリードライトされる。
【0007】
特許文献3は、データの転送効率を向上出来るプロセッサシステム及びデータ転送方法を提供することを目的とする。画像処理システムは、第1画像データを保持するメモリ装置と、メモリ装置から第1画像データを読み出し、第1画像データに含まれる複数のピクセルの集合であるピクセル群MB単位で画像処理を行う複数の第1プロセッサと、複数の第1プロセッサの動作を制御する第2プロセッサとを具備する。メモリ装置は、第1プロセッサへ入力すべき第1画像データと、第1プロセッサにおける処理の結果得られる第2画像データとを保持し、第1画像データと第2画像データの少なくともいずれかの輝度成分Yを連続したアドレスで保持し、且つ各々のピクセル群MBに含まれる輝度成分Yを連続したアドレスで保持する。
【0008】
特許文献4は、バッファSRAMの個数を減らしてチップ面積を削減することが可能なデータ処理装置を提供することを目的とする。データ処理装置は、SDRAMの領域のいずれをIPのそれぞれに割付けるかを示す情報を保持するSDRAMアドレス割付けレジスタと、バッファSRAMの領域のいずれをIPのそれぞれに割付けるかを示す情報を保持するバッファSRAMアドレス割付けレジスタとを含む。バスI/Fは、SDRAMアドレス割付けレジスタおよびバッファSRAMアドレス割付けレジスタを参照してSDRAMから読み出したデータをバッファSRAMに格納する。したがって、IP毎にバッファSRAMを持たせる必要がなくなり、少数のバッファSRAMに統合することが可能となる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2001−243169号公報
【特許文献2】特開2006−072832号公報
【特許文献3】特開2007−293533号公報
【特許文献4】特開2010−186403号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
通信インタフェースの最適なFIFOサイズは、通信速度や処理混雑度などによって異なる。そのため、FIFOサイズが大きめに決定されることが多く、このようなFIFOが全ての通信インタフェースに対して設けられると回路規模が大きくなってしまうといった問題点があった。
【0011】
本発明は、上記問題点を解決するためになされたものであり、その目的は、複数の通信インタフェースによる送受信データを1つのデータバッファにバッファリングすることが可能な記憶装置を提供することである。
【課題を解決するための手段】
【0012】
本発明の一実施例によれば、バスマスタと複数の通信インタフェースとの間に設けられ、複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する記憶装置が提供される。TMINレジスタは、複数の通信インタフェースのデータ送受信周期の中の最小周期のサイクル数が設定される。RMAXレジスタは、最小周期のサイクル数から複数の通信インタフェースの中の動作中のチャネル数を差し引いた値が設定される。SRAMは、複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する。制御部は、SRAMからのデータ読出しおよびSRAMへのデータ書込みを制御する。制御部は、TMINレジスタに設定される最小周期のサイクル数をカウントする自走カウンタを有しており、最小周期中において、複数の通信インタフェースによるSRAMへの受信データの書込み要求およびSRAMからの送信データの読出し要求を受け付けて順次実行し、バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数がRMAXレジスタに設定される値以下となるようにバスマスタに対する要求を行なう。
【発明の効果】
【0013】
制御手段が、最小周期中において、バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数がRMAXレジスタに設定される値以下となるようにバスマスタに対する要求を行なうので、TMIN期間内に各チャネルのアクセスを処理することができ、リアルタイム性を確保することが可能となる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1の実施の形態における記憶装置を含んだシステムの一例を示す図である。
【図2】通信インタフェース2−1〜2−3の内部構成の一例を示す図である。
【図3】本発明の第1の実施の形態における記憶装置1の内部構成の一例を示す図である。
【図4】本発明の第1の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。
【図5】本発明の第2の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。
【図6】本発明の第3の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0015】
(第1の実施の形態)
図1は、本発明の第1の実施の形態における記憶装置を含んだシステムの一例を示す図である。このシステムは、記憶装置1と、通信インタフェース2−1〜2−3とを含み、記憶装置1が内部バス3を介してCPUや割り込みコントローラ(DMAC)などと接続される。なお、図1においては、3個の通信インタフェース2−1〜2−3が記載されているが、通信インタフェースの個数はこれに限られるものではない。また、CPUとDMACとを総称してバスマスタとも呼ぶものとする。
【0016】
記憶装置1は、受信データ(RDATA1〜RDATA3)信号、送信データ(TDATA1〜TDATA3)信号、データ受信要求(RX1〜RX3)信号およびデータ送信要求(TX1〜TX3)信号を介して通信インタフェース2−1〜2−3に接続される。なお、データ受信要求(後述のSRAM12へのデータ書込み)およびデータ送信要求(後述のSRAM12からのデータ読出し)をチャネル側アクセスと呼ぶことにする。
【0017】
また、通信装置1は、データ受信割り込み(RXI1〜RXI3)信号およびデータ送信割り込み(TXI1〜TXI3)信号を内部バス3を介して図示しない割り込みコントローラに出力する。なお、データ受信割り込み(後述のSRAM12からのデータ読出し)およびデータ送信割り込み(後述のSRAM12へのデータ書込み)をバス側アクセスと呼ぶことにする。
【0018】
図2は、通信インタフェース2−1〜2−3の内部構成の一例を示す図である。通信インタフェース2は、受信用シフトレジスタ(RSR)21と、送信用シフトレジスタ(TSR)22と、送受信コントロール部23と、ボーレートジェネレータ24と、内部バス3と接続されるバスインタフェース26と、受信用バッファ(1バイト)27と、送信用バッファ(1バイト)28とを含む。
【0019】
送受信コントロール部23は、シリアルステータスレジスタ(SSR)と、シリアルコントロールレジスタ(SCR)と、シリアルモードレジスタ(SMR)とを含み、これらのレジスタに設定された値に応じて通信インタフェース2全体の制御を行なう。なお、これらのレジスタについては、一般的な通信インタフェースと同様であるので、詳細な説明は行なわない。
【0020】
ボーレートジェネレータ24は、ビットレートレジスタ(BRR)を有しており、このBRRに設定された値に応じて、SCKnからボーレートクロックを生成し、送受信コントロール部23に与える。送受信コントロール部23は、ボーレートジェネレータ24から受けたボーレートクロックに応じてシリアルデータの送受信の制御を行なう。
【0021】
RSR21は、シリアル受信データRxDnを受け、パリティビットと1バイトデータを受信したときに、パリティビットを送受信コントロール部23に出力し、1バイトデータを受信用バッファ27に格納する。このとき、送受信コントロール部23は、RSR21からパリティビットおよびデータを受け、パリティチェックを行なう。
【0022】
TSR22は、送信用バッファ28および送受信コントロール部23から送信データおよびパリティビットを受け、シリアル送信データTxDnに変換して出力する。送受信コントロール部23は、TSR22にデータが格納されるときに、パリティビットを生成してTSR22に格納する。
【0023】
送受信コントロール部23は、8ビットデータを受信したときにRX信号を出力して、記憶装置1に受信用バッファ27からのデータ読出しを要求する。また、送受信コントロール部23は、記憶装置1にTX信号を出力して、記憶装置1にデータ書込みを要求する。また、送受信コントロール部23は、パリティエラーなど発生したときにERI(エラー割り込み)信号を出力する。また、送受信コントロール部23は、TSR22が空になったときにTEI信号を出力する。
【0024】
送受信コントロール部23およびボーレートジェネレータ24は、モジュールバス25、バスインタフェース26および内部バス3を介してCPUと接続されており、CPUによるSSR、SCR、SMR、BRRなどのレジスタ設定が行なわれる。
【0025】
図3は、本発明の第1の実施の形態における記憶装置1の内部構成の一例を示す図である。記憶装置1は、記憶装置1全体の制御を行なう制御部11と、シングルポートSRAM12と、セレクタ13と、バスインタフェース16とを含む。
【0026】
制御部11は、レジスタ(FS1〜FS3、TMIN、RMAX)14を有しており、レジスタの設定に応じて記憶装置1の制御を行なう。FS1〜FS3は、各チャネルの送信FIFOおよび受信FIFOの容量を設定するためのレジスタであり、設定単位はバイトまたはその倍数である。以下の説明においては、設定単位がバイトの場合についてのものである。
【0027】
SRAM12内のチャネル1(通信インタフェース2−1)の送信データ領域はアドレス0〜FS1−1であり、受信データ領域はアドレスFS1〜2×FS1−1である。チャネル2〜3(通信インタフェース2−2〜2−3)についても同様に送信データ領域および受信データ領域が設定される。
【0028】
各チャネルの送信データ領域および受信データ領域の書込みポインタおよび読出しポインタは、FIFO機能を実現するように変更される。CPUまたはDMACが送信データ領域にデータを書込むときはチャネルごとに決められたアドレスに書き込む。また、CPUまたはDMACが受信データ領域からデータを読み出すときもチャネルごとに決められたアドレスからデータを読み出す。
【0029】
TMINは、最も高速な通信インタフェースの周期である最小周期(またはそれ以下)が設定される。TMINの設定単位は、SRAM12のアクセスサイクル数が2クロックで書込みまたは読出しが行なわれる場合は、2クロックとなる。以下、3チャネルとも送受信速度が同じ16サイクルであるとして説明する。
【0030】
RMAXは、CPUまたはDMACの処理待ちアクセス起動回数の最大値である、(TMIN−動作中の全チャネル数)が設定される。TMIN(最小周期)が“16”、全チャネル数(送信、受信のそれぞれが1チャネルとしてカウントされる)が“6”の場合、RMAXが“10”となる。
【0031】
制御部11は、TMINの周期でカウントする図示しない自走カウンタを有している。制御部11は、そのサイクル1でバス側アクセスがなければ、チャネル側アクセスを受け付ける。このとき、データ受信(SRAM12へのデータ書込み)を優先する。その後、制御部11は、バス側アクセス要求の待ち時間の最大がRMAX以下となるように受信データをCPUまたはDMACに出力する。ここで、RMAXは、TMINの50%以上の値である。
【0032】
また、バス側アクセスは、割り込みの処理遅延などによって待たされる場合があるため、FIFO容量の設定はそれを考慮して行なう。すなわち待たされる時間に溜まるデータ量分以上に設定されねばならない。
【0033】
CPUは、各チャネルの送信データを設定し、各通信インタフェース2−1〜2−3のレジスタに必要な設定を行なって、データの送受信を開始する。
【0034】
セレクタ13は、通信インタフェース2−1〜2−3の受信データ(RDATA1〜RDATA3)のいずれかを選択的にSRAM12に出力し、SRAM12から出力されるデータを送信データ(TDATA1〜TDATA3)のいずれかを選択的に出力する。
【0035】
制御部11およびセレクタ13は、モジュールバス15、バスインタフェース16および内部バス3を介してCPUと接続されており、CPUによるレジスタ14の設定などが行なわれる。
【0036】
図4は、本発明の第1の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。上述のように、TMINレジスタに16が設定されている場合、1周期が16サイクルで構成される。
【0037】
通信インタフェース2−1が1バイトのデータ送受信を完了すると、サイクル1において、バス側アクセスがなければ、TX1信号およびRX1信号をイネーブルにする。これによって、通信インタフェース2−1は、次の送信データのTSR22への書込みと、RSR21からの受信データの読出しとを制御部11に要求する。
【0038】
サイクル2において、制御部11は、セレクタ13に通信インタフェース2−1からの受信データを接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル1の受信書込みポインタによって示される。受信データの書込みが完了すると、制御部11は、割り込み要求RXI1信号をイネーブルにして、CPUまたはDMACに対して受信データのアクセス要求を行なう。
【0039】
CPUまたはDMACは、割り込み処理による遅延後に、サイクル10で受信データの読出しを行なう。そして、制御部11は、受信データの読出しが完了するとRXI1信号をディスエーブルにする。
【0040】
なお、図4に示すタイミングチャートにおいて、SRAMの欄の斜線を施していない箇所はチャネル側アクセスを示し、斜線を施している箇所はバス側アクセスを示している。たとえば、斜線を施していないR1は、通信インタフェース2−1による受信データの書込みを示しており、斜線を施しているR1は、CPUまたはDMACによる受信データの読出しを示している。
【0041】
バス側アクセス要求数は制限される。すなわち処理要求数がRMAX以下に制限されるが、CPUまたはDMACからアクセスがあった場合はそのアクセスが最優先され、各チャネルからのデータアクセスは行われない。
【0042】
サイクル3において、チャネル1の送信データの読出し、チャネル2の受信データの書込み、チャネル2の送信データの読出しの3つのチャネル側アクセスがあるが、制御部11は、受信データ優先のラウンドロビン方式で競合を解決する。したがって、サイクル3においては、チャネル2の受信データの書込みが行なわれる。すなわち、制御部11は、セレクタ13をRDATA2に接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル2の受信書込みポインタによって示される。
【0043】
サイクル4において、制御部11は、セレクタ13をRDATA3に接続し、SRAM12への受信データの書込みを行なう。このとき、SRAM12への書込みアドレスはチャネル3の受信書込みポインタによって示される。
【0044】
サイクル5において、制御部11は、セレクタ13をTDATA1に接続し、SRAM12からの送信データの読出しを行なう。このとき、SRAM12からの読出しアドレスはチャネル1の送信読出しポインタによって示される。通信インタフェース2−1は、SRAM12から読出された送信データをTSR22に書込み、シリアルデータに変換して外部に出力する。
【0045】
以降、同様の処理が行なわれて、チャネル側アクセス(T2,T3)の処理が行なわれた後、バス側アクセス(R1〜R3,T1〜T3)の処理が行なわれる。
【0046】
以上説明したように、本実施の形態における記憶装置によれば、制御部11は、バス側アクセスの処理要求数をRMAX以下に制限するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。
【0047】
また、1つのシングルポートSRAM12に複数チャネルの受信データおよび送信データを格納するため、各チャネルに対応したFIFOを設ける必要がなくなり、回路規模を小さくすることが可能となった。
【0048】
(第2の実施の形態)
本発明の第2の実施の形態における記憶装置およびそれを含んだシステムの構成は、図1〜図3に示す第1の実施の形態のものと同様である。したがって、重複する構成および機能の詳細な説明は繰り返さない。
【0049】
本実施の形態においては、RMAXを、処理待ちバーストアクセス要求回数の最大値とする。すなわち、RMAX={(TMIN−全チャネル数)÷バーストサイズ}の整数部分で定義される。したがって、TMIN(最小周期)=16、全チャネル数=6、バーストサイズ=4とすると、RMAX=2となる。
【0050】
図5は、本発明の第2の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。サイクル2において、通信インタフェース2−1がSRAM12に受信データの書込みを行なうと、SRAM12にCPUまたはDMACがバーストアクセスする4バイト分のデータが揃い、制御部11は、割込み要求信号RXI1をイネーブルにする。
【0051】
また、サイクル5において、通信インタフェース2−1が送信するデータが1バースト(4バイト)分だけ通信インタフェース2−1に送られたので、次のバーストデータを要求する割込み要求信号TXI1をイネーブルにする。ここで、RMAX=2であるので、これ以上のバーストアクセス要求は行なわれない。新しい周期が始まり、再びサイクル1になると、またRMAXまで要求可能になり、バーストアクセス処理が終わった回数分だけ追加要求できるようになる。
【0052】
サイクル10〜13において、CPUまたはDMACは、チャネル1の4バイト分の受信データをSRAM12から読出す。また、サイクル15からの4サイクルにおいて、CPUまたはDMACは、チャネル1から送信される4バイト分のデータをSRAM12に書込む。バースト期間中は各チャネルのアクセスは行なえないので、次のサイクル(周期2のサイクル3)で通信インタフェース2−1によるSRAM12への受信データの書込みが行なわれる。
【0053】
以上説明したように、本実施の形態における記憶装置1によれば、制御部11は、バーストアクセス要求回数をRMAX以下に制限するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。
【0054】
(第3の実施の形態)
本発明の第3の実施の形態における記憶装置は、図3に示す第1の実施の形態における記憶装置1と比較して、各チャネルからのアクセス要求がある場合にCPUまたはDMACからのアクセスを待たせるWAIT信号をCPUまたはDMACに出力する点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰り返さない。なお、RMAXの定義は第2の実施の形態において説明した定義と同様であり、RMAX={(TMIN−全チャネル数)÷バーストサイズ}の整数部分で定義される。
【0055】
図6は、本発明の第3の実施の形態における記憶装置1の動作を説明するためのタイミングチャートである。周期1については、図5に示す第2の実施の形態における記憶装置1のタイミングチャートと同様である。周期2のサイクル2の途中において、制御部11は、WAIT信号をイネーブルにしてCPUまたはDMACに対して次のアクセス要求を控えさせるようにする。
【0056】
周期2のサイクル3〜8において、各チャネルのデータアクセスが行なわれる。サイクル8において各チャネルのデータアクセスが完了するため、制御部11は、サイクル8の途中でWAIT信号をディスエーブルにする。これによって、サイクル9以降、CPUまたはDMACは、SRAM12に対するデータアクセスが可能になる。図6においては、周期2のサイクル9からCPUまたはDMACがSRAM12にチャネル1の送信データの書込みを行なっている。
【0057】
以上説明したように、本実施の形態における記憶装置1によれば、制御部11は、バーストアクセス要求回数をRMAX以下に制限するようにWAIT信号を出力するため、TMIN期間内に必ず各チャネルのアクセスが可能になり、最小周期であるTMINを満たすことができるため、リアルタイム性を確保することが可能となった。
【0058】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0059】
1 記憶装置、2−1〜2−3 通信インタフェース、3 内部バス、11 制御部、12 SRAM、13 セレクタ、14 レジスタ、15,25 モジュールバス、16 バスインタフェース、21 RSR、22 TSR、23 送受信コントロール部、24 ボーレートジェネレータ、26 バスインタフェース、27 受信用バッファ、28 送信用バッファ。

【特許請求の範囲】
【請求項1】
バスマスタと複数の通信インタフェースとの間に設けられ、該複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶する記憶装置であって、
前記複数の通信インタフェースのデータ送受信周期の中の最小周期のサイクル数が設定される第1のレジスタと、
前記最小周期のサイクル数から前記複数の通信インタフェースの中の動作中のチャネル数を差し引いた値が設定される第2のレジスタと、
前記複数の通信インタフェースによって受信されたデータおよび送信されるデータを記憶するシングルポートの記憶手段と、
前記記憶手段からのデータ読出しおよび前記記憶手段へのデータ書込みを制御する制御手段とを含み、
前記制御手段は、前記第1のレジスタに設定される最小周期のサイクル数をカウントする自走カウンタを有しており、前記最小周期中において、前記複数の通信インタフェースによる前記記憶手段への受信データの書込み要求および前記記憶手段からの送信データの読出し要求を受け付けて順次実行し、前記バスマスタに対する受信データの読出し要求および送信データの書込み要求の回数が前記第2のレジスタに設定される値以下となるように前記バスマスタに対する要求を行なう、記憶装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−178637(P2012−178637A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−39357(P2011−39357)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】