(57)【特許請求の範囲】
【請求項１】
所定データ幅のバスラインを通して入力されるデータの書込・読み出しを行うＦＩＦＯメモリ制御装置において、
上記所定データ幅に応じた２以上のバッファメモリが並列に配置されたＦＩＦＯメモリ部と、
前記各バッファメモリへの書込アドレスを指定する２以上のライトポインタと、
入力データのデータ幅情報に基づき、前記２以上のバッファメモリの内、有効なデータに対応したバッファメモリと、無効なデータに対応したバッファメモリとに、それぞれ前記ライトポインタを割り振るとともに、前記有効なデータに対応したバッファメモリの指定された書込アドレスへデータの書き込みを許可するセレクタと、を備え、
任意のデータ幅の入力データを、前記セレクタで割り振られたライトポインタにより前記各バッファメモリに詰めて書き込むことを特徴とするＦＩＦＯメモリ制御装置。
【請求項２】
入力データのデータ幅情報に基づき前記各バッファメモリ間でデータの並べ替えを行うデータ並替部を備え、
前記各バッファメモリに書き込まれたデータを入力された順に並べ替えて読み出すことを特徴とする請求項１記載のＦＩＦＯメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＦＩＦＯメモリ制御装置に関する。
ＦＩＦＯメモリは入出力装置間における高速のデータ転送に一般的に用いられているが、シリアル転送を行うためデータ幅の異なるデータを連続して転送するときには不必要なデータまで転送することになって実効的なデータ転送速度が低下しその解決が望まれている。
【０００２】
【従来の技術】
図４はＦＩＦＯメモリ制御装置を用いてデータ転送を行うシステムの構成を示したものである。同図において、11は転送元システム全体を制御するプロセッサ、12は転送すべきデータが格納されている転送元ＲＡＭ、13はＦＩＦＯメモリ制御装置、14は転送先システム内の転送先ＲＡＭ、15はプロセッサ１に代わって転送元ＲＡＭ12から転送先ＲＡＭ14へのデータ転送を制御するＤＭＡＣであり、転送元ＲＡＭ12に格納されているデータをＦＩＦＯメモリ制御装置13に送り、さらにＦＩＦＯメモリ制御装置13から転送先ＲＡＭ14へ転送するようにしている。転送元及び転送先の記憶装置としてＲＡＭ以外にハードディスク等の記憶装置が用いられる。
【０００３】
図５は上記ＦＩＦＯメモリ制御装置13の構成を示すブロック図である。入力データはＲＡＭ等のバッファメモリで構成されるＦＩＦＯメモリ部16に格納される。ＦＩＦＯメモリ部16における入力データの書込アドレスと読出アドレスはそれぞれライトポインタＷとリードポインタＲで指定される。ライトポインタＷは１バイトのデータが書き込まれるつど＋１されて次の書込アドレスを指定し、また、リードポインタＲは１バイトのデータが読み出されるつど＋１されて次の読出アドレスを指定する。
【０００４】
図６は上記ＦＩＦＯメモリ制御装置を用いて転送元ＲＡＭから転送先ＲＡＭへ３２ビット幅のデータバスラインを通してデータ転送を行う場合におけるデータの流れを模式的に示したものである。同図に示した転送元ＲＡＭの１つのます目には８ビットのデータが格納され、各列に４バイト（１ワード）のデータが格納される。従って、３２ビット幅を有する１ワード分のデータは、最下位ビットを示すＤ０から最上位ビットを示すＤ３２までの８ビットごとに区切られて同一列の４つのます目に格納されることになる。
【０００５】
上記構成において、転送されるデータが全て３２ビット幅である場合には転送元ＲＡＭの全てのます目に有効なデータが格納されることになる。しかし、１６ビット幅あるいは８ビット幅のデータが混在している場合には転送する必要のない無効なデータが転送元ＲＡＭに含まれる場合が生じ、例えば、図６に見られるように、転送元ＲＡＭの各ます目には１から８までの番号を付した有効なデータの他に、”ｘ”で示した無効なデータが含まれる場合が生じる。
【０００６】
同図(1) に示した例では、４行３列のます目からなる転送元ＲＡＭに全部で３ワード分のデータが格納されており、そのうち１列目に格納されている点線で囲んだ１ワード目のデータはデータ幅が１６ビットであり、番号１、２を付した上位２バイトが有効なデータ、”ｘ”で示した下位２バイトが無効なデータである。２列目に格納されている２ワード目のデータはデータ幅が３２ビットであり、番号３、４、５、６を付した全４バイトとも有効である。３ワード目のデータはデータ幅が１６ビットであり、”ｘ”を付した上位２バイトが無効なデータ、番号７、８を付した下位２バイトが有効なデータである。
【０００７】
ＦＩＦＯメモリ部は８ビット×ｎワード（ｎ＝１、２・・・）の容量を有する４個のバッファメモリ＃１〜＃４を並列に配置したものから成っており、３２ビット幅の入力データを並列転送することができる。バッファメモリの並列配置数はデータバスライン幅に応じて設定される。
【０００８】
転送元ＲＡＭに格納されているデータをＦＩＦＯメモリ部に書き込む場合、同図(1) に示したように、まず、ライトポインタＷ及びリートポインタＲがクリアされ、バッファメモリ＃１〜＃４に対する書込アドレス及び読出アドレスは”０”に指定される。同図中バッファメモリ＃１の上部に付されている番号１、２・・・ｎは書き込み・読み出しのアドレスを示しており、他のバッファメモリ＃２、＃３、＃４に対しても共通に用いられる。
【０００９】
次に、図中点線で囲まれた１ワード目の４バイトがそれぞれバッファメモリ＃１〜＃４の書込アドレス”０”に書き込まれる。ついで、同図(2) に示したように、ライトポインタＷは＋１されて次の書込みアドレス”１”を指定し、点線で囲まれた２ワード目の４バイトが書き込まれる。ついで、同図(3) に示したように、ライトポインタＷは＋１されて次の書込みアドレス”２”を指定し、点線で囲んだ３ワード目のデータが書き込まれる。以上の過程によって転送元ＲＡＭに格納されている３ワード分のデータがバッファメモリ＃１〜＃４に書き込まれることになる。
【００１０】
データの読み出しの際には、同図(4) に示したように、バッファメモリ＃１〜＃４に書き込まれたデータは、リードポインタＲで指定された読出アドレス”０”から順次転送先ＲＡＭに送られる。
【００１１】
【発明が解決しようとする課題】
以上述べたように、所定のデータ幅のデータバスラインを通してデータを転送する場合、データ幅に応じた複数のバッファメモリを並列に配置したものでＦＩＦＯメモリ部を構成し、上記所定のデータ幅のデータを並列処理する。従来はこれらのバッファメモリへの書込アドレスを１個のライトポインタで指定していた。そのため、図６で説明したように３２ビット幅のデータバスラインを通して１６ビット幅のデータが入力された場合にも４個のバッファメモリ＃１〜＃４の全てに対して一つのライトポインタが割り振られ、４個のバッファメモリ＃１〜＃４の全てに同一の書込アドレスが指定されることになる。
【００１２】
従って、４個のバッファメモリのうち２個のバッファメモリ＃１、＃２には、１６ビット幅のデータが書き込まれることになるが、残りの２個のバッファメモリ＃３、＃４には転送する必要のない無効なデータが書き込まれるか、あるいはデータが書き込まれることなく空きが生じることとなる。即ち、上述した無効なデータを含む全てのデータについて書き込みが行われ、かつ、同じ順序で読みだされていた。その結果、無効なデータの格納のためにＦＩＦＯメモリ部の容量が無駄に費やされ、これらの無効なデータの書き込み・読み出しのため実効的な転送速度が低下するという問題があった。
【００１３】
そこで本発明は、データ幅の異なるデータを連続して転送することを可能にし以て実効的なデータ転送速度を向上させることを目的とする。
【００１４】
【課題を解決するための手段】
上記課題の解決は、所定データ幅のバスラインを通して入力されるデータの書き込み・読み出しを行うＦＩＦＯメモリ制御装置において、上記所定データ幅に応じた複数のバッファメモリが並列に配置されたＦＩＦＯメモリ部と、上記各バッファメモリへの書込アドレスを指定する複数のライトポインタと、入力データのデータ幅情報に基づき上記各バッファメモリに上記各ライトポインタを割り振るとともに上記各バッファメモリの指定された書込アドレスへデータを書き込むか否かを選択するセレクタを備え、任意のデータ幅の入力データを、上記セレクタで割り振られたライトポインタにより上記各バッファメモリに詰めて書き込むことを特徴とするＦＩＦＯメモリ制御装置、
あるいは、入力データのデータ幅情報に基づき上記バッファメモリ間でデータの並び替えを行うデータ並替部を備え、上記各バッファメモリに書き込まれたデータを入力された順に並び替えて読み出すことを特徴とする上記ＦＩＦＯメモリ制御装置によって達成される。
【００１５】
本発明では、各バッファメモリに異なるライトポインタを割り振ることができ、また、各バッファメモリの指定された書込アドレスへデータを書き込むか否かを入力データのデータ幅情報に基づいて選択することができるので、例えば、図６で説明した例において、３２ビット幅のデータバスラインを通して１６ビット幅のデータが入力されたとき２個のバッファメモリ＃１、＃２に１つのライトポインタを割り振って書込アドレスを指定し、この書込アドレスに１６ビット幅のデータを書き込むようにする。そして、残りの２個のバッファメモリ＃３、＃４にはデータの書き込みを行わず、次に入力されるデータを書き込むようにすれば、各バッファメモリに無効なデータを書き込むことなく有効なデータのみを詰めて書き込むことが可能となる。
【００１６】
また、データ幅の異なるデータが詰めて書き込まれた場合、入力されたデータの上位ビットと下位ビットの関係が正しく反映されずにバッファメモリに格納される場合が生じる。そこで、各バッファメモリに格納されているデータを入力データのデータ幅情報に基づいて並び替えることにより上位ビットと下位ビットの関係を修正して外部へ読み出すことができる。
【００１７】
【発明の実施の形態】
図１は本発明の実施例に係るＦＩＦＯメモリ制御装置の構成を示すブロック図であり、１は１個当たり８ビット×ｎワード（ｎ＝１、２・・・）の容量を有する４個のバッファメモリ＃１〜＃４が並列に配置されたＦＩＦＯメモリ部、２はバッファメモリ＃１〜＃４への書込アドレスを指定する２つのライトポインタＷ１、Ｗ２を制御するライトポインタ制御部、３は入力データのデータ幅情報に基づきバッファメモリ＃１〜＃４にライトポインタＷ１、Ｗ２を割り振るとともに、バッファメモリ＃１〜＃４の指定された書込アドレスへデータを書き込むか否かを選択するセレクタ、４は入力データのデータ幅情報に基づきバッファメモリ＃１〜＃４間でデータの並び替えを指示する並替コードを発生する並替コード部、５は並替コードに基づいてバッファメモリ＃１〜＃４間でデータの並替えを行うデータ並替部、６はデータ並替部５から出力されたデータをラッチするデータラッチ部、７はリードポインタＲを制御するリードポインタ制御部である。
【００１８】
図２、図３は上記ＦＩＦＯメモリ制御装置を用いて３２ビット幅のデータバスラインを通して３ワード分のデータを転送元ＲＡＭから転送先ＲＡＭへ転送する場合におけるデータの流れを説明するものであり、図２はデータの書き込み固定を説明する図、図３はデータの読み出し過程を説明する図である。図６と同一機能を有するものには同一記号を付している。以下、図１〜図３を参照して本発明の実施例を説明する。
【００１９】
まず、図２(1) に示したように、転送元ＲＡＭに格納されている点線で囲んだ１ワード目の４バイトが３２ビットバスラインを通して入力され、これと同期してバイトイネーブル（ＢＥ）信号とライトイネーブル（ＷＥ）信号が入力される。ＢＥ信号は入力データのデータ幅情報を示すものである。
【００２０】
上記１ワード目の入力データとともに入力されたＢＥ信号は”１１００”で表され、右から順に最下位バイトから最上位バイトまでのデータが有効か無効かを示すビットを並べたものである。ここで、ビット”１”は有効なデータ、”０”は無効なデータであることを示している。従って、上述のＢＥ信号は１ワード目の入力データのデータ幅が１６ビットであって、番号１、２が付されている上位２バイトが有効であり、”ｘ”が付されている下位２バイトが無効であることを示している。
【００２１】
ライトポインタ制御部２はデータ転送開始時にライトポインタＷ１、Ｗ２の指定する書込アドレスをクリアしてそれぞれ”０”に設定しセレクタ３へ送る。セレクタ３はＢＥ信号に基づいてライトポインタ制御部２から送られてきたライトポインタＷ１、Ｗ２をバッファメモリ＃１〜＃４へ割り振る。即ち、セレクタ３は、送られてきたＢＥ信号から１ワード目の上位２バイトが有効、下位２バイトが無効であることを認識し、上位２バイトを格納するバッファメモリ＃１、＃２にライトポインタＷ１を割り振り、下位２バイトを格納するバッファメモリ＃３、＃４にライトポインタＷ２を割り振る。そして、有効なデータである上位２バイトが格納されるバッファメモリ＃１、＃２にイネーブル信号を送ってライトポインタＷ１によるデータの書込みを許可する。これによってバッファメモリ＃１、＃２に上位２バイトが書き込まれる。
【００２２】
ついで、ライトポインタ制御部２にはライトポインタＷ１によりデータの書き込みが行われたことが通知され、ライトポインタ制御部２はライトポインタＷ１の書込アドレスを＋１する。一方、無効なデータである下位２バイトに割り振られたバッファメモリ＃３、＃４にはイネーブル信号は送られず、書込アドレス”０”も変わらない。以上のようにして、ＦＩＦＯメモリ部１には有効なデータである上位２バイトが書き込まれ、無効なデータである下位２バイトは書き込まれないことになる。
【００２３】
続いて、同図(2) に示したように、点線で囲んだ２ワード目の入力データが送られてくる。２ワード目の入力データは４バイト全てが有効であり、ＢＥ信号は”１１１１”となっている。上記ＢＥ信号の意味は前述と同様である。セレクタ３は、上位２バイトを格納するバッファメモリ＃１、＃２にライトポインタＷ１を割り振り、下位２バイトを格納するバッファメモリ＃３、＃４にライトポインタＷ２を割り振る。そして、全てのバッファメモリ＃１〜＃４にイネーブル信号を送ってデータの書込みを許可する。これによってバッファメモリ＃１、＃２の書込アドレス”１”に上位２バイトが書き込まれ、バッファメモリ＃３、＃４の書込アドレス”０”に下位２バイトが書き込まれる。
【００２４】
ついで、ライトポインタ制御部２はライトポインタＷ１、Ｗ２の書込アドレスをそれぞれ＋１する。以上のようにして、２ワード目の４バイトはそれぞれバッファメモリ＃１〜＃４に詰めて書き込まれることになる。
【００２５】
同図(3) に示したように、点線で囲んだ３ワード目の入力データは上位２バイトが無効、下位２バイトが有効であり、ＢＥ信号は”００１１”となっている。セレクタは上位２バイトを格納するバッファメモリ＃１、＃２にライトポインタＷ１を割り振り、下位２バイトを格納するバッファメモリ＃３、＃４にライトポインタＷ２を割り振る。そして、有効なデータである下位２バイトに割り振られたバッファメモリ＃３、＃４にのみイネーブル信号を送ってデータの書込みを許可する。これによってバッファメモリ＃３、＃４に下位２バイトが書き込まれ、ライトポインタ制御部２はライトポインタＷ２の書込アドレスを＋１する。無効なデータである上位２バイトに割り振られたバッファメモリ＃１、＃２にはイネーブル信号は送られず、書込アドレス”１”は変わらない。以上のようにして、ＦＩＦＯメモリ部１には有効なデータである下位２バイトが書き込まれ、無効なデータである上位２バイトは書き込まれないことになる。
【００２６】
以上のように２つのライトポインタＷ１、Ｗ２を用いて書き込まれたデータはＦＩＦＯメモリ部１の内部で各ワードの上位ビットと下位ビットとの関係が正しく反映されない状態で書き込まれている。そこで、ＢＥ信号に基づいてデータの並び替えを指示するための並替コードを生成し、読み出しの際には並替コードを用いてデータを並び替えて出力し転送先ＲＡＭに送る。即ち、図３に示したようにバッファメモリ＃１、＃２のアドレス”０”に格納されているデータは下位バイトであり、バッファメモリ＃３、＃４のアドレス”０”に格納されているデータは上位バイトであることがＢＥ信号によって認識できるので、上位２バイトと下位２バイトを並び替える並替コードを作成し並替コード部４に格納する。そして、読み出しの際には、上記並替コードとともにバッファメモリ＃１〜＃４のアドレス”０”に格納されているデータがデータ並替部５に入力され、下位２バイトと上位２バイトの並び替えが行われる。以下同様にしてデータの並び替えを行うことにより上位ビットと下位ビットの関係が修正されて転送先ＲＡＭへ送られることになる。
【００２７】
なお、上述の読み出し過程はリードポインタＲをバッファメモリ＃１〜＃４に割り振ることによって行われ、図１においてリードポインタ制御部７からバッファメモリ＃１〜＃４へアドレスを割り振る信号及びデータの読み出しを許可するイネーブル信号が送られるが、リードポインタＲの動作は従来例と同様なのでここでは動作の説明及び図１における信号線等は省略してある。
【００２８】
上記実施例は３２ビット幅と１６ビット幅のデータを混在させて転送する場合を示したものであり、２つのライトポインタを用いることによって無効なデータの転送を阻止することができるが、８ビット幅のデータが混在している場合等には３つ以上のライトポインタを用いることによって同様な効果を得ることができる。
【００２９】
【発明の効果】
以上述べたように、本発明によればＦＩＦＯメモリを用いてデータのシリアル転送を行う場合に、無効なデータの転送を行うことなく有効なデータのみを転送することができるので、データ幅の異なるデータを連続して転送することが可能となり実効的なデータ転送速度の向上を図る上で有益である。
【図面の簡単な説明】
【図１】  本発明に係るＦＩＦＯメモリ制御装置の構成を示すブロック図
【図２】  ＦＩＦＯメモリ部へのデータ書き込み過程を説明する図
【図３】  ＦＩＦＯメモリ部からのデータ読み出し過程を説明する図
【図４】  データ転送システムの構成を示すブロック図
【図５】  従来のＦＩＦＯメモリ制御装置の構成を示すブロック図
【図６】  従来のデータ書き込み・読み出し過程を説明する図
【符号の説明】
１、16  ＦＩＦＯメモリ部              ７  リードポインタ制御部
２  ライトポインタ制御部              11  プロセッサ
３  セレクタ                          12  転送元ＲＡＭ
４  並替コード部                      13  ＦＩＦＯメモリ制御装置
５  データ並替部                      14  転送先ＲＡＭ
６  データラッチ部                    15  ＤＭＡＣ
【図１】
0003931384.tif 000002
【図２】
0003931384.tif 000003
【図３】
0003931384.tif 000004
【図４】
0003931384.tif 000005
【図５】
0003931384.tif 000006
【図６】
0003931384.tif 000007