(57)【要約】【課題】ＦＩＦＯメモリの任意サイズのデータアクセスにおいて、１バイト単位のアクセスを不要にし、ソフトウェア処理負荷を軽減する。【解決手段】ＦＩＦＯメモリ１０４に対するアクセスバス幅を指定するソフトウェア設定可能なサイズ指定手段１０６と、アクセスバス幅に応じてＦＩＦＯメモリへのアクセスデータ幅を制御する外部インターフェイス手段１０７とを備える。【選択図】  図１
2005078483.tif 000002
【特許請求の範囲】
【請求項１】
ＦＩＦＯ構造を有するメモリ（ＦＩＦＯメモリ）の制御装置であって、
前記ＦＩＦＯメモリに対するアクセスバス幅を指定するソフトウェア設定可能なサイズ指定手段と、
前記アクセスバス幅に応じて前記ＦＩＦＯメモリへのアクセスデータ幅を制御する外部インターフェイス手段と、
を備えるＦＩＦＯメモリ制御装置。
【請求項２】
前記ＦＩＦＯメモリへのアクセス起動に応じて前記ＦＩＦＯメモリの格納データ数を前記サイズ指定手段の設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセス制御を行うＦＩＦＯバスアクセスカウンタを備え、
前記サイズ指定手段は前記設定値を２で除算した再設定値に変更する機能を有し、
前記ＦＩＦＯメモリに対する前記商の回数のアクセス終了時における前記除算の剰余を検出して、前記サイズ指定手段は前記設定値を前記再設定値に変更し、かつ前記ＦＩＦＯバスアクセスカウンタは前記再設定値で前記除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセス制御を行い、
前記再設定値による除算の剰余を検出して、前記サイズ指定手段による再設定値への変更と、前記ＦＩＦＯバスアクセスカウンタによる前記再設定値で最新の除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対して行うアクセス制御とを除算の剰余がなくなるまで繰り返す請求項１記載のＦＩＦＯメモリ制御装置。
【請求項３】
ＦＩＦＯ構造を有するメモリ（ＦＩＦＯメモリ）に対するアクセスバス幅を指定するソフトウェア設定可能なサイズ指定手段と、前記アクセスバス幅に応じて前記ＦＩＦＯメモリへのアクセスデータ幅を制御する外部インターフェイス手段とを有するＦＩＦＯメモリ装置の制御方法であって、
前記ＦＩＦＯメモリへのアクセス起動に応じて前記ＦＩＦＯメモリの格納データ数を前記サイズ指定手段の設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセスを行い、
前記除算の剰余がある場合は、前記サイズ指定手段の設定値を２で除算した再設定値に変更し、前記除算剰余を前記再設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセスを行い、
前記再設定値による除算の剰余がある場合は、前記サイズ指定手段による設定値を２で除算する再設定値への変更と、前記再設定値で最新の除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対して行うアクセスとを除算の剰余がなくなるまで繰り返すＦＩＦＯメモリ制御方法。
【請求項４】
請求項１または２記載のＦＩＦＯメモリ制御装置を有する集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＦＩＦＯ構造のメモリ制御技術に係り、特に、ＦＩＦＯ構造のメモリ（ＦＩＦＯメモリ）を内部に持つ周辺機能に対してバイトサイズを指定できない場合においても、ＣＰＵから連続してＦＩＦＯメモリをアクセスするＦＩＦＯメモリ制御装置およびＦＩＦＯメモリ装置の制御方法に関する。
【背景技術】
【０００２】
ＵＳＢデバイスのように内部のデータ領域にＦＩＦＯ構造のメモリを有する周辺機能において、このＦＩＦＯメモリに対してＣＰＵから連続してアクセスする従来の方法を以下に説明する（例えば、特許文献１参照）。
【０００３】
図３は従来のＦＩＦＯメモリ制御方法を示す装置構成のブロック図である。図３において、３０１はＣＰＵ、３０２はＣＰＵ３０１が外部のメモリや周辺機能ブロックにアクセスするための外部バスインターフェイス、３０３は周辺機能ブロック、３０７はＣＰＵ３０１が使用する外部メモリである。なお、外部バスインターフェイス３０２は一般的なものであり、周辺機能ブロック３０３と外部メモリ３０７へのアクセスは個別に制御される。
【０００４】
周辺機能ブロック３０３はＵＳＢデバイス機能ブロックを実現しており、その内部において、３０５はＵＳＢデータを通信する周辺機能コア、３０４は周辺機能コア３０５の機能を制御するレジスタや外部との通信データを格納するＦＩＦＯメモリを有するメモリ群、３０６はＣＰＵ３０１からメモリ群３０４へのアクセスを制御する外部インターフェイスである。
【０００５】
まず、周辺機能ブロック３０３が受信したＵＳＢデータをＣＰＵ３０１が読み出す場合について説明する。ＣＰＵ３０１は、周辺機能ブロック３０３と外部メモリ３０７にアクセスするために、外部バスインターフェイス３０２の設定を行う。またＣＰＵ３０１は、プログラム制御により、メモリ群３０４のレジスタに動作開始指示を与えて周辺機能ブロック３０３を動作させる。
【０００６】
周辺機能ブロック３０３は、外部からのデータを任意のタイミングで任意のデータ数受信し、これをメモリ群３０４のＦＩＦＯ領域に格納し、さらにレジスタ領域に受信数を格納する。図４はメモリ群３０４のＦＩＦＯ領域に格納された受信データ例を示すメモリマップである。
【０００７】
周辺機能ブロック３０３の受信処理が完了すると、ＣＰＵ３０１は割込み信号などによりこの受信動作の完了を認識し、この受信データをメモリ群３０４のＦＩＦＯ領域より読み出し、外部メモリ３０７に格納する。
【０００８】
このとき、４バイト境界で４の倍数や２バイト境界で２の倍数のサイズのデータは、ＣＰＵ３０１から外部バスインターフェイス３０２を介して３２ビットまたは１６ビット幅で連続して読み出しを行うことができるが、サイズが４の倍数＋１あるいは４の倍数＋３や２の倍数＋１のデータを読み出す場合は、処理時間をかけて最小の１バイト単位で読み出しを行っている。
【０００９】
もしくは、メモリ群３０４のＦＩＦＯ構造のメモリ領域に対してアドレス信号の上位２本を使用して、図５のメモリマップのようにアクセスビット幅毎に仮想アドレスマップを設けて読み出しを行っている。また、ＣＰＵ３０１からＵＳＢデータを送信する場合も、上記受信時の処理と同様の処理を行っている。
【００１０】
【特許文献１】特開平９−１９０３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記従来例のように１バイト単位で処理時間をかけてアクセスする方法や、アドレス信号の上位２本を使用して仮想アドレスマップでアクセスビット幅を作成してアクセスする方法では、ソフトウェア処理の負荷が大きく効率が悪いという欠点を有していた。
【００１２】
本発明は上記従来の問題点を解決するもので、周辺機能ブロックのＦＩＦＯ構造のメモリにおける任意サイズのデータアクセスにおいて、１バイト単位のアクセスを不要にし、ソフトウェア処理負荷を軽減することができるＦＩＦＯメモリ制御装置およびＦＩＦＯメモリ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
この目的を達成するために、本発明のＦＩＦＯメモリ制御装置は、ＦＩＦＯ構造を有するメモリ（ＦＩＦＯメモリ）の制御装置であって、前記ＦＩＦＯメモリに対するアクセスバス幅を指定するソフトウェア設定可能なサイズ指定手段と、前記アクセスバス幅に応じて前記ＦＩＦＯメモリへのアクセスデータ幅を制御する外部インターフェイス手段とを備える。
【００１４】
上記構成によれば、サイズ指定手段によりＦＩＦＯメモリに対するアクセスバス幅をソフトウェアで設定すると、これに応じて外部インターフェイスがＦＩＦＯメモリへのアクセスデータ幅を制御するため、ソフトウェア制御によりサイズ指定手段の設定を適宜変更することにより、任意サイズのデータを連続アクセスすることが可能となる。
【００１５】
さらに、本発明のＦＩＦＯメモリ制御装置において、前記ＦＩＦＯメモリへのアクセス起動に応じて前記ＦＩＦＯメモリの格納データ数を前記サイズ指定手段の設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセス制御を行うＦＩＦＯバスアクセスカウンタを備え、前記サイズ指定手段は前記設定値を２で除算した再設定値に変更する機能を有し、前記ＦＩＦＯメモリに対する前記商の回数のアクセス終了時における前記除算の剰余を検出して、前記サイズ指定手段は前記設定値を前記再設定値に変更し、かつ前記ＦＩＦＯバスアクセスカウンタは前記再設定値で前記除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセス制御を行い、前記再設定値による除算の剰余を検出して、前記サイズ指定手段による再設定値への変更と、前記ＦＩＦＯバスアクセスカウンタによる前記再設定値で最新の除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対して行うアクセス制御とを除算の剰余がなくなるまで繰り返す。
【００１６】
上記構成によれば、ＦＩＦＯメモリに対するアクセスバス幅の初期値をサイズ指定手段に設定すれば、その後はＦＩＦＯバスアクセスカウンタがＦＩＦＯメモリに対するアクセス回数を自動的に制御し、サイズ指定手段がアクセスデータ幅を自動的に制御するため、ソフトウェアによりサイズ指定手段に初期値を設定するだけで、任意サイズのデータを連続アクセスすることができる。
【００１７】
本発明のＦＩＦＯメモリ装置の制御方法は、ＦＩＦＯメモリに対するアクセスバス幅を指定するソフトウェア設定可能なサイズ指定手段と、前記アクセスバス幅に応じて前記ＦＩＦＯメモリへのアクセスデータ幅を制御する外部インターフェイス手段とを有するＦＩＦＯメモリ装置の制御方法であって、前記ＦＩＦＯメモリへのアクセス起動に応じて前記ＦＩＦＯメモリの格納データ数を前記サイズ指定手段の設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセスを行い、前記除算の剰余がある場合は、前記サイズ指定手段の設定値を２で除算した再設定値に変更し、前記除算剰余を前記再設定値で除算した商の回数だけ前記ＦＩＦＯメモリに対するアクセスを行い、前記再設定値による除算の剰余がある場合は、前記サイズ指定手段による設定値を２で除算する再設定値への変更と、前記再設定値で最新の除算剰余を除算した商の回数だけ前記ＦＩＦＯメモリに対して行うアクセスとを除算の剰余がなくなるまで繰り返す。
【００１８】
上記構成によれば、サイズ指定手段によりＦＩＦＯメモリに対するアクセスバス幅をソフトウェアで設定すると、これに応じて外部インターフェイスがＦＩＦＯメモリへのアクセスデータ幅を制御するため、例えばソフトウェア制御によりサイズ指定手段の設定を適宜変更することにより、任意サイズのデータを連続アクセスすることが可能になる。
【発明の効果】
【００１９】
本発明によれば、ソフトウェア制御可能なサイズ指定手段によりＦＩＦＯメモリに対するアクセスバス幅を設定すると、これに応じて外部インターフェイスがＦＩＦＯメモリへのアクセスデータ幅を制御するため、ＦＩＦＯメモリへのアクセスバス幅の初期値を最大にすることが可能になり、ＦＩＦＯメモリとの間のデータ転送回数を減少させることができ、任意サイズのデータを連続アクセスすることが可能になることでＣＰＵの負荷を軽減することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の最良の実施形態について図面を参照しながら説明する。図１は本発明の実施の形態１に係るＦＩＦＯメモリ制御装置のブロック図である。図１において、１０１はＣＰＵ、１０２はＣＰＵ１０１が外部のメモリや周辺機能ブロックにアクセスするための外部バスインターフェイス、１０３は周辺機能ブロック、１０８はＣＰＵ１０１が使用する外部メモリである。
【００２１】
なお、外部バスインターフェイス１０２は一般的なものであり、周辺機能ブロック１０３と外部メモリ１０８へのアクセスは個別に制御される。また、外部バスインターフェイス１０２は任意のバス幅の設定が可能で、最大バス幅は４バイトであるものとする。
【００２２】
周辺機能ブロック１０３はＵＳＢデバイス機能ブロックを実現しており、その内部において、１０５はＵＳＢデータを通信する周辺機能コア、１０４は周辺機能コア１０５の機能を制御するレジスタや外部との通信データを格納するＦＩＦＯ構造のメモリを有するメモリ群、１０６はメモリ群１０４のＦＩＦＯ構造のメモリへのアクセスバス幅を指定するサイズ指定手段、１０７はＣＰＵ１０１からメモリ群１０４へのアクセスをサイズ指定手段１０６に設定されたバス幅に応じて制御する外部インターフェイスである。
【００２３】
まず、周辺機能ブロック１０３が受信したＵＳＢデータをＣＰＵ１０１が読み出す場合について説明する。ＣＰＵ１０１は、周辺機能ブロック１０３と外部メモリ１０８にアクセスするために、外部バスインターフェイス１０２の設定を行う。またＣＰＵ１０１は、プログラム制御により、メモリ群１０４のレジスタに動作開始指示を与えて周辺ブロック１０３を動作させる。
【００２４】
周辺機能ブロック１０３は、外部からのデータを任意のタイミングで任意のデータ数受信し、これをメモリ群１０４のＦＩＦＯ領域に図４のメモリマップに示すように格納し、さらにレジスタ領域に受信数を格納する。
【００２５】
周辺機能ブロック１０３の受信処理が完了すると、ＣＰＵ１０１は割込み信号などによりこの受信動作の完了を認識し、プログラム制御により、レジスタ領域の受信数を基に、まず４バイト幅でアクセスするためにサイズ指定手段１０６に４を設定する。さらに、レジスタ領域の受信データ数をサイズ指定手段１０６の設定値で除算し、その商の回数だけ受信データをメモリ群１０４のＦＩＦＯ領域よりより読み出し、外部メモリ１０８に格納する。
【００２６】
前記除算で割り切れない場合は、サイズ指定手段１０６に２を設定し、前記除算の余りをサイズ指定手段１０６の設定値で除算し、その商の回数だけ受信データをメモリ群１０４より読み出す。その際に、外部インターフェイス１０７は読み出すデータのバス幅を２バイトに制御する。
【００２７】
さらに、この除算で割り切れない場合は、残りのデータは１バイトであるのでサイズ指定手段に１を設定し、１回だけ受信データをメモリ群１０４より読み出す。その際に、外部インターフェイス１０７は読み出すデータのバス幅を１バイトに制御する。
【００２８】
ＣＰＵ１０１から周辺機能ブロック１０３によりＵＳＢデータを送信する場合も、受信の場合と同様にサイズ指定手段１０６にアクセスサイズを設定し、ＣＰＵ１０１から送信データをメモリ群１０４のＦＩＦＯ領域に書込む処理を行う。
【００２９】
このように、外部インターフェイス１０７にて、サイズ指定手段１０６に設定されたバス幅に応じてＦＩＦＯメモリへのアクセス制御を行うことにより、周辺機能ブロック内のＦＩＦＯメモリへのアクセスバス幅を大きくすることが可能になり、ＣＰＵ１０１のデータ転送回数が減少する。また、ソフトウェア負荷が軽減され、ＦＩＦＯ構造のメモリへの連続アクセスが可能となる。
【００３０】
図２は本発明の実施の形態２に係るＦＩＦＯメモリ制御構成のブロック図である。図２において、図１と同一構成部分には同一符号を付して説明する。
【００３１】
図２の周辺機能ブロック２０３においては、周辺機能ブロック１０３の構成に対して、ＦＩＦＯバスアクセスカウンタ２０９が新たに追加されている。また、サイズ指定手段２０６は、サイズ指定手段１０６に対して、初期値として４が設定された後で設定値を２、１と自動的に変更する機能が追加されている。
【００３２】
ＦＩＦＯバスアクセスカウンタ２０９は、サイズ指定手段２０６に設定したサイズに応じて、メモリ群１０４のＦＩＦＯ構造のメモリへのアクセスカウントの制御を行う。
【００３３】
まず、周辺機能ブロック２０３が受信したＵＳＢデータをＣＰＵ１０１が読み出す場合について説明する。ＣＰＵ１０１は、周辺機能ブロック２０３と外部メモリ１０８にアクセスするために、外部バスインターフェイス１０２の設定を行う。またＣＰＵ１０１は、プログラム制御により、メモリ群１０４のレジスタに動作開始指示を与え、同時にサイズ指定手段２０６にバス幅の４を設定し、周辺ブロック２０３を動作させる。
【００３４】
周辺機能ブロック２０３は、外部からのデータを任意のタイミングで任意のデータ数受信し、これをメモリ群１０４のＦＩＦＯ領域に図４のメモリマップに示すように格納し、さらにレジスタ領域に受信数を格納する。周辺機能ブロック２０３の受信処理が完了すると、ＣＰＵ１０１は割込み信号などによりこの受信動作の完了を認識し、メモリ群１０４のＦＩＦメモリにアクセスする。
【００３５】
このアクセスに応じて、ＦＩＦＯバスアクセスカウンタ２０９は、レジスタ内の受信データ数をサイズ指定手段２０６の設定値４で除算し、その商の回数だけメモリ群１０４のＦＩＦＯメモリへのアクセス制御を行う。
【００３６】
除算の余りが１の場合は、サイズ指定手段２０６の値が１になり１バイト分のデータをさらに１回読み出すように制御する。除算の余りが２の場合は、サイズ指定手段２０６の値が２になり２バイト分のデータをさらに１回読み出すように制御する。
【００３７】
除算の余りが３の場合は、サイズ指定手段２０６の設定が２に変更され２バイト分のデータを１回読み出し、さらにサイズ指定手段２０６の設定が１に変更され１バイト分のデータを１回読み出すことで、合計２回の読み出しを行うように制御する。
【００３８】
一方、ＣＰＵ１０１は、ＦＩＦＯバスアクセスカウンタ２０９がレジスタ内の受信データ数をサイズ指定手段２０６の設定値４で除算した商の回数だけメモリ群１０４のＦＩＦＯメモリから連続して読み出し、除算の余りが１または２の場合は商の回数＋１回連続して読み出し、余りが３の場合は自動的にサイズ指定手段２０６の設定が変更されて商の回数＋２回の連続して読み出す。あるいは、割込み等で読み終りを認識する間、受信データ数分連続して読み出し処理を行う。
【００３９】
ＣＰＵ１０１から周辺機能ブロック２０３によりＵＳＢデータを送信する場合も、受信の場合と同様にサイズ指定手段２０６の設定とＦＩＦＯバスアクセスカウンタ２０９の制御により、ＣＰＵ１０１から送信データをメモリ群１０４のＦＩＦＯ領域に書込む処理を行う。
【００４０】
以上のように本実施形態によれば、ＦＩＦＯメモリに対するアクセスバス幅の初期値をサイズ指定手段に設定した後は、ＦＩＦＯバスアクセスカウンタがＦＩＦＯメモリに対するアクセス回数を自動的に制御し、サイズ指定手段がアクセスデータ幅を自動的に制御するため、ソフトウェアによりサイズ指定手段に初期値を設定するだけで、任意サイズのデータを連続アクセスすることができる。
【産業上の利用可能性】
【００４１】
本発明のＦＩＦＯメモリ制御装置およびＦＩＦＯメモリ装置の制御方法は、ソフトウェア制御可能なサイズ指定手段によりＦＩＦＯメモリに対するアクセスバス幅を設定すると、これに応じて外部インターフェイスがＦＩＦＯメモリへのアクセスデータ幅を制御するため、ＦＩＦＯメモリへのアクセスバス幅の初期値を最大にすることが可能になり、ＦＩＦＯメモリとの間のデータ転送回数を減少させることができ、任意サイズのデータを連続アクセスすることが可能になることでＣＰＵの負荷を軽減することができるという効果を有し、ＦＩＦＯ構造のメモリ制御技術等として有用である。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態１に係るＦＩＦＯメモリ制御装置の構成を示すブロック図。
【図２】本発明の実施の形態２に係るＦＩＦＯメモリ制御装置の構成を示すブロック図。
【図３】従来のＦＩＦＯメモリ制御装置の構成を示すブロック図。
【図４】メモリ群のＦＩＦＯ領域に格納された受信データ例を示すメモリマップ。
【図５】アクセスビット幅毎に仮想アドレスマップを設ける従来方式を示す図。
【符号の説明】
【００４３】
１０１、３０１  ＣＰＵ
１０２、３０２  ＣＰＵの外部バスインターフェイス
１０３、２０３、３０３  周辺機能ブロック
１０４、３０４  レジスタおよびＦＩＦＯ構造のメモリ群
１０５、３０５  周辺機能コア
１０６、２０６  サイズ指定手段
１０７、３０６  外部インターフェイス
１０８、３０７  外部メモリ
２０９  ＦＩＦＯバスアクセスカウンタ
【図１】
2005078483.tif 000003
【図２】
2005078483.tif 000004
【図３】
2005078483.tif 000005
【図４】
2005078483.tif 000006
【図５】
2005078483.tif 000007