(57)【要約】【課題】  単位データのビット長が８の倍数でない１０ビットや１２ビット等のデータをメモリ（ビット幅が８，１６ビット）に格納すると、第２のメモリＩＣが必要になるか、メモリスペースに無駄が生じるという問題があった。【解決手段】  メモリのビット幅と同じ１６ビットのバッファレジスタ１３を５個と、要求元から受けたデータを各バッファレジスタに振り分けるデータ分配回路１１とバッファレジスタの一つを選択しメモリへの書き込みデータとする選択回路１２とを入力側のデータバスとメモリデータバスの間に設け、バッファレジスタは、バッファレジスタ１３−１の先頭ビットから最後のバッファレジスタ１３−５の末尾ビットに向けて、先頭から１０ビット（データのビット長）毎に区切った各グループが書込用データのストローブ単位となる様に構成され、データ分配回路１１は各グループに受けた１０ビットデータを分配する。【選択図】      図１  
2005032035.tif 000002
【特許請求の範囲】
【請求項１】
単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータをメモリに格納するメモリデータ格納方式であって、それぞれがメモリのビット幅と同じビット長であり、データ長とメモリのビット幅の最小公倍数をメモリのビット幅で割った個数のバッファと、要求元から受けたデータを前記バッファに振り分けるデータ分配手段と前記バッファの一つを選択しメモリ書込データとする選択手段とを入力側のバスとメモリバスの間に設け、前記バッファは、第１のバッファの先頭ビットから最後のバッファの末尾ビットに向けて、先頭からｄ（ｄはデータのビット長）ビット毎に区切った各グループがメモリ書込データのストローブ単位となる様に構成されることを特徴とするメモリデータ格納方式。
【請求項２】
前記各バッファのデータ入力に選択手段を設けメモリ書込データに替わりメモリ読出データも格納可能とし、メモリ読出要求を受けるとメモリに格納された前記ｄビット長のデータをメモリのワード単位で読み出し前記バッファに格納する手段と、バッファの出力を前記グループ単位で取り出す手段も備え、メモリからの読出データを元のｄビットデータに戻し要求元に送信することを特徴とする請求項１記載のメモリデータ格納方式。
【請求項３】
前記メモリのビット幅ないしワードのビット長を１６ビットとし、単位データのビット長を１０ビットとし、前記バッファを１６ビットとしバッファ数を５としたことを特徴とする請求項１、又は２に記載のメモリデータ格納方式。
【請求項４】
単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータを受け、これをメモリに格納するメモリアクセス回路であって、それぞれがメモリのビット幅と同じビット長であり、データ長とメモリのビット幅の最小公倍数をメモリのビット幅で割った個数のバッファと、要求元から受けたデータを前記バッファに振り分けるデータ分配手段と前記バッファの一つを選択しメモリ書込データとする選択手段とこれらを制御する制御手段とを備え、前記バッファは、第１のバッファの先頭ビットから最後のバッファの末尾ビットに向けて、先頭からｄ（ｄはデータのビット長）ビット毎に区切った各グループがメモリ書込用データのストローブ単位となる様に構成されることを特徴とするメモリアクセス回路。
【請求項５】
前記制御手段は一つのバッファの末尾まで或いはこれを跨いでデータを格納したことを検出する手段と、該検出によりそのバッファデータのメモリへの書込動作を開始する手段を有することを特徴とする請求項４記載のメモリアクセス回路。
【請求項６】
前記各バッファのデータ入力側に選択手段を設けメモリ書込データに替わりメモリ読出データも格納可能となる様にし、要求元からメモリ読出し要求を受け、メモリに格納された前記ｄビット長のデータをメモリのワード単位で読み出し前記バッファに格納する手段と、バッファの出力を前記グループ単位で取り出す手段を備え、メモリからの読み出しデータを元のｄビットデータに戻し要求元に送出することを特徴とする請求項４記載のメモリアクセス回路。
【請求項７】
前記メモリのビット幅ないしメモリのワードのビット長を１６ビットとし、データのビット長を１０ビットとし前記バッファを１６ビットとしバッファ数を５としたことを特徴とする請求項４、５、又は６の何れかに記載のメモリアクセス回路。
【請求項８】
請求項４、５、又は６の何れかに記載のメモリアクセス回路を含むことを特徴とする集積回路。
【請求項９】
請求項７記載のメモリアクセス回路を含むことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデータ格納方式、メモリアクセス回路、及び集積回路に関し、特に単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータをメモリに隙間無く格納するメモリデータ格納方式、その機能を持つメモリアクセス回路、及びこのメモリアクセス回路を含む集積回路に関する。
【背景技術】
【０００２】
従来より、ダイナミックＲＡＭやスタティックＲＡＭ等のメモリＩＣ（集積回路）で１ワードのビット幅が比較的大きい製品はビット幅が８ビット或いは１６ビットである。
【０００３】
一方画像や映像データの中には１画素データのビット幅が８ビットの整数倍とならず、１０ビット或いは１２ビット等になることもあり、この様な画像データを格納する画像メモリにもビット幅が８ビット或いは１６ビットのＤＲＡＭやＳＲＡＭが広く流通し安価であるという理由で使用される。メモリがフラッシュメモリであっても同様である。
【０００４】
従来のメモリ格納方法では、８ビットを越える（例えば１０ビット或いは１２ビット）ワードを格納する場合、１ワードを２アドレス分に格納する。或いは第２のメモリを設けて下位８ビットと残る上位ビットを２個のメモリに分割して格納していた（特許文献１参照。）。
【０００５】
【特許文献１】特開昭６０−５５４５２号公報（第１ページ）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
データの１ワードをメモリの２アドレス分に格納する場合、８ビットを越えるデータを格納する部分に未使用（情報が格納されない）ビットが存在するため、メモリスペースに無駄が生じるという問題がある。
【０００７】
第２のメモリを設ける場合は、メモリを設置するスペースが増え、回路面積が増大してしまうという問題がある。特にディジタルカメラ等の小型携帯機器でデータ格納用のメモリＩＣの個数が増加すると機器に収まらなくなることもある。
【課題を解決するための手段】
【０００８】
本発明の第１のメモリデータ格納方式は、単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータをメモリに格納するメモリデータ格納方式であって、それぞれがメモリのビット幅と同じビット長であり、データ長とメモリのビット幅の最小公倍数をメモリのビット幅で割った個数のバッファと、要求元から受けたデータを前記バッファに振り分けるデータ分配手段と前記バッファの一つを選択しメモリ書込データとする選択手段とを入力側のバスとメモリバスの間に設け、前記バッファは、第１のバッファの先頭ビットから最後のバッファの末尾ビットに向けて、先頭からｄ（ｄはデータのビット長）ビット毎に区切った各グループがメモリ書込データのストローブ単位となる様に構成されることを特徴とする。
【０００９】
本発明の第２のメモリデータ格納方式は、前記第１のメモリデータ格納方式に於いて、前記各バッファのデータ入力に選択手段を設けメモリ書込データに替わりメモリ読出データも格納可能とし、メモリ読出要求を受けるとメモリに格納された前記ｄビット長のデータをメモリのワード単位で読み出し前記バッファに格納する手段と、バッファの出力を前記グループ単位で取り出す手段も備え、メモリからの読出データを元のｄビットデータに戻し要求元に送信することを特徴とする。
【００１０】
本発明の第３のメモリデータ格納方式は、前記第１、又は第２のメモリデータ格納方式に於いて、前記メモリのビット幅ないしワードのビット長を１６ビットとし、単位データのビット長を１０ビットとし、前記バッファを１６ビットとしバッファ数を５としたことを特徴とする。
【００１１】
本発明の第１のメモリアクセス回路は、単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータを受け、これをメモリに格納するメモリアクセス回路であって、それぞれがメモリのビット幅と同じビット長であり、データ長とメモリのビット幅の最小公倍数をメモリのビット幅で割った個数のバッファと、要求元から受けたデータを前記バッファに振り分けるデータ分配手段と前記バッファの一つを選択しメモリ書込データとする選択手段とこれらを制御する制御手段とを備え、前記バッファは、第１のバッファの先頭ビットから最後のバッファの末尾ビットに向けて、先頭からｄ（ｄはデータのビット長）ビット毎に区切った各グループがメモリ書込用データのストローブ単位となる様に構成されることを特徴とする。
【００１２】
本発明の第２のメモリアクセス回路は、前記第１のメモリアクセス回路に於いて、前記制御手段は一つのバッファの末尾まで或いはこれを跨いでデータを格納したことを検出する手段と、該検出によりそのバッファデータのメモリへの書込動作を開始する手段を有することを特徴とする。
【００１３】
本発明の第３のメモリアクセス回路は、前記第１のメモリアクセス回路に於いて、前記各バッファのデータ入力側に選択手段を設けメモリ書込データに替わりメモリ読出データも格納可能となる様にし、要求元からメモリ読出し要求を受け、メモリに格納された前記ｄビット長のデータをメモリのワード単位で読み出し前記バッファに格納する手段と、バッファの出力を前記グループ単位で取り出す手段を備え、メモリからの読み出しデータを元のｄビットデータに戻し要求元に送出することを特徴とする。
【００１４】
本発明の第４のメモリアクセス回路は、前記第１、第２、又は第３の何れかのメモリアクセス回路に於いて、前記メモリのビット幅ないしメモリのワードのビット長を１６ビットとし、データのビット長を１０ビットとし前記バッファを１６ビットとしバッファ数を５としたことを特徴とする。
【００１５】
本発明の第１の集積回路は前記第１、第２、又は第３の何れかのメモリアクセス回路を含むことを特徴とする。
【００１６】
本発明の第２の集積回路は前記第４のメモリアクセス回路を含むことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、データの単位データのビット長がメモリのビット幅の１／ｎ（ｎは自然数）とならないデータをメモリに格納する場合にも、メモリＩＣに対して、データを隙間無く格納するので、無駄なメモリスペースを作らず効率よくデータを格納することができる。
【００１８】
また、メモリＩＣの追加を必要とせず回路基板等の面積の増大を回避できる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明のメモリデータ格納方式によるメモリアクセス回路の第１の実施の形態について図面を参照して詳細に説明する。図１は本実施形態のメモリデータ格納方式によるメモリアクセス回路１の全体構成を示すブロック図である。
【００２０】
メモリアクセス回路１は、１０ビットのデータを１６ビットワードのメモリ２に格納するための回路で、図１に示す様に１０ビットデータバスと１６ビットデータバスとの間に設けられた５個の１６ビットのバッファレジスタ（０）１３−１、バッファレジスタ（１）１３−２、・・、バッファレジスタ（４）１３−５と、１０ビットの入力データを前記５個の１６ビットバッファレジスタに振り分けるデータ分配回路１１と、バッファレジスタに蓄積されたデータをメモリに書き込む際にバッファレジスタを順次選択するセレクタ１２と、これらを制御する制御回路１６とを有する。
【００２１】
５個のバッファレジスタ１３−１〜１３−５はメモリアクセス要求元から１０ビット単位でバス転送されてくるデータを転送順に分割、結合し１６ビット単位のデータにするためのバッファレジスタである。
【００２２】
又、バス転送の周期はメモリアクセス周期より小さくこの差を吸収するためのバッファでもある。
【００２３】
又、メモリ２がＤＲＡＭであればリフレッシュサイクルが発生し、要求もとにメモリアクセスが不可能状態を通知し、アクセス動作やバス動作の停止を指示するが直に停止できない、或いは新たなメモリアクセスから抑止するのでこの分のデータを一時記憶するバッファでもある。
【００２４】
分割、結合の方法は図２に示す通りで、最初に転送された第０データは、バッファレジスタ（０）のビット０〜９に一時記憶され、次の第１データはバッファレジスタ（０）１３−１のビット１０〜１５と、バッファレジスタ（１）１３−２のビット０〜３に一時記憶される。
【００２５】
以下図２に示す様に各データを受け、バッファレジスタに記憶され、第７データがバッファレジスタ（４）１３−５のビット６〜１５に一時記憶される。
【００２６】
バッファレジスタ（０）のビット０〜９を第０グループ、バッファレジスタ（０）１３−１のビット１０〜１５と、バッファレジスタ（１）１３−２のビット０〜３を第１グループとし、以下同様に第７グループ（バッファレジスタ（４）１３−５のビット６〜１５）までグループ定義する。
【００２７】
図１に戻り、データ分配回路１１は入力データ１０ビットをリピートし、上記各グループに分配する。例えばビット０はバッファレジスタ（０）１３−１のビット０、１０、バッファレジスタ（１）１３−２のビット４、・・、バッファレジスタ（４）１３−５のビット６という様に分配する。
【００２８】
セレクタ１２は１６ビットで５ウェイのセレクタである。制御回路１６はメモリアクセス要求元より、メモリアドレスと書込要求を受け、その直後からデータ転送指示（データ送信同期）を受け、バッファレジスタのストローブを指示し、１６ビット単位のデータが準備出来次第、セレクタ１２で選択し書き込みデータとしメモリ２へ送出し、又、アドレスと制御信号を送出しメモリ２の書込を行う。
【００２９】
次に図３を参照し制御回路１６の構成を説明する。制御回路１６はアドレスカウンタ１６３、ＤＴＮ（データ番号）カウンタ１６１、デコーダ１６２とＢＦＮ（バッファ番号）カウンタ１６４、ＭＡ（メモリアクセス）カウンタ１６５、Ｂ（ビット）アドレスレジスタ１６６とアダー１６７を含み構成される。
【００３０】
ＤＴＮカウンタ１６１は３ビットのカウンタでブロック（１０ビットデータが８個を１ブロックとする）内のデータ番号として、０にクリア後要求もとのデータ転送指示受信でインクリメント（＋１）される。
【００３１】
アドレスカウンタ１６３は要求元からのブロックの先頭アドレス（ワードアドレス）をプリセット後メモリアクセス終了で＋１される。ここでブロックとはメモリ２上の４０ワード（８０バイト）の領域である。
【００３２】
デコーダ１６２はＤＴＮカウンタ１６１の値をデコードしバッファレジスタの各１０ビットグループの書込データ用ストローブ信号を生成する。デコードした信号はデータ転送指示（パルス）で有効化される。
【００３３】
ＢＦＮカウンタ１６４は、要求を受け付け時クリアされ、以降メモリアクセス終了でインクリメントされる。但し「１００」の次は「０００」になる変則カウンタである。この出力がバッファレジスタ（０）１３−１〜バッファレジスタ（４）１３−５の選択信号となる。
【００３４】
Ｂアドレスレジスタ１６６にはバッファレジスタ（０）〜バッファレジスタ（４）の連結を想定した場合のビットアドレスをモジュロ２ビットで保持する。クリア後、データ転送指示で「１０１」がアダー１６７で加算される。アダー１６７のキャリーアウトはバッファレジスタの末尾まで或いはこれを跨いでデータが格納されたことを意味しＭＡカウンタ１６５をカウントアップする。
【００３５】
ＭＡカウンタは前記でカウントアップされ、メモリアクセス終了（ワード単位のアクセス終了）でカウントダウンされバッファレジスタ群に何ワード格納データが残っているかを示す。
【００３６】
次の本実施形態の動作について図面を参照し説明する。図３を参照し、制御回路１６がアドレス（ブロック先頭アドレス）と書込要求を受けると、前記アドレスをアドレスカウンタ１６３にプリセットし、ＤＴＮカウンタ１６１、ＢＦＮカウンタ、ＭＡカウンタはクリアする。
【００３７】
次に、第０データのデータ転送指示を受けストローブ＃０パルスが出され、バッファレジスタ（０）１３−１に第０データが取り込まれる。同時にＤＴＮカウンタ１６１が「００１」にインクリメントされる。Ｂアドレスレジスタ１６６には「１０１」がセットされる。
【００３８】
次に第１データのデータ転送指示を受けストローブ＃１パルスが出され、第１データがバッファレジスタ（０）１３−１、とバッファレジスタ（１）１３−２に分割され取り込まれる。
【００３９】
同時にＤＴＮカウンタ１６１が「００２」にインクリメントされる。Ｂアドレスレジスタ１６６には「０１０」がセットされる。この際にアダー１６７のキャリーが発生するのでＭＡカウンタ１６５がインクリメントされ１になる。これが０でないので最初のメモリ２への書き込みアクセスが行われる。
【００４０】
セレクタ１２でバッファレジスタ（０）１３−１が選択され、メモリ２へ書込データとして送出され、メモリアクセス指示でアドレスやＲＡＳ、ＣＡＳがアクティブにされＷＰもアクティブにされる。
【００４１】
ＣＡＳやＷＰは所定時間後インアクティブに戻され（メモリのワードアクセスが終了し）、これでアドレスカウンタ１６３やＢＦＮカウンタ１６４がインクリメントされる。ＭＡカウンタは同時に次ぎのキャリーが無ければデクリメントされ０となる。
【００４２】
以降同様に第７データのバッファレジスタ（４）１３−５への取り込み、メモリアクセスまで動作する。
【００４３】
上記例では、バッファレジスタの末尾まで或いはこれを跨いでデータが格納されたことの検出をアダー１６７のキャリーで行ったが、ＤＴＮカウンタ１６１の３ビット出力を受け、最上位ビットが’１’であればアドワン（＋１）するアドワン／スルー回路でこの最下位ビットをメモリアクセス指示としてもよい。
【００４４】
ここで最上位ビット０が’１’であればアドワンする理由は図２で第０データがバッファレジスタ（０）１３−１の先頭から始まるが、第４データがバッファレジスタ（２）１３−３の後半のバイトから始まるのでアドワンする。
【００４５】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図４は本実施形態のメモリデータ格納方式によるメモリアクセス回路１Ａの全体構成を示すブロック図であり、メモリ２に格納された１０ビット単位のデータを、１６ビット単位で読み出しこれを元の１０ビット単位のデータに戻してから要求元に返す回路も含む。
【００４６】
バッファレジスタ（０）１３−１〜バッファレジスタ（４）１３−５の入力にそれぞれ、１６ビットの２ウェイのセレクタ１４−１〜１４−５を追加し、メモリ２からの読出データを一旦バッファレジスタに受ける。
【００４７】
バッファレジスタ（０）１３−１のビット０〜９のストローブ信号は図３のストローブ＃０と、読み出し動作時のストローブ＃Ｒ０のＯＲ（論理和）とし、ビット１０〜１５ストローブ信号はストローブ＃１とストローブ＃Ｒ０のＯＲとする。
【００４８】
バッファレジスタ（１）１３−２のビット０〜３のストローブ信号はストローブ＃１とストローブ＃Ｒ１のＯＲとする。ビット４〜１３のストローブ信号はストローブ＃２とストローブ＃Ｒ１のＯＲとする。以下同様に１０ビットで区切られたグループ対応のストローブと、バッファレジスタ対応のストローブがＯＲされて供給される。
【００４９】
バッファレジスタの各グループの出力を受け、セレクタ１５を通じて１０ビットデータに変換し、データバスに送出する。ドライバ１７−１は書き込みでイネイブルにされ、ドライバ１７−２は読み出し時にはイネイブルにされる。
【００５０】
制御回路１６Ａは要求元よりメモリアドレス（ブロックベースアドレス）、メモリＲ／Ｗ要求を受け、Ｒｅａｄ、Ｗｒｉｔｅの内指定された動作を行う。Ｒｅａｄではメモリアクセス回路１Ａから１０ビットデータとデータ転送指示を返す。
【００５１】
セレクタ１５は８ウェイの１０ビットセレクタであり、その入力を図５に示す。第１入力にはバッファレジスタ（０）１３−１のビット０〜９までが、第２入力にはバッファレジスタ（０）１３−１のビット１０〜１５とバッファレジスタ（１）１３−２のビット０〜３がという様に入力されている。
【００５２】
本実施形態のメモリ２からの読み出し系の動作を説明すると、メモリ２から読み出されたブロックの先頭１６ビットはセレクタ１４−１を介し、バッファレジスタ（０）１３−１にストローブされ、次の１６ビット以下が順にバッファレジスタ（１）１３−２、バッファレジスタ（２）１３−３というようにストローブされる。
【００５３】
ＢＦＮの１，２，３，４にたいしＤＴＮはそれぞれ１，３，４，６までインクリメントでき、ＢＦＮのＣＯ（キャリアウトの拡張ビット）＝１で３ビット「０００」に対し、ＤＴＮは７迄インクリメントできる。
【００５４】
読み出しではＢＦＮカウンタを読み出しデータをストローブするバッファレジスタ指定とする。又セレクタ１５の選択信号はＤＴＮカウンタとし、ＤＴＮカウンタのインクリメント指示や、データ転送指示はＢＦＮカウンタ値に従って行われる。ＢＦＮ値が１になればデータ転送指示を出した後にカウントアップし、ＢＦＮ値が２になればさらにデータ転送指示とカウントアップを２回行う等である。
【００５５】
尚、図１や図４に示す様にメモリアクセス回路１や１Ａは一つの集積回路に含まれ、メモリ２は別のメモリＩＣとする。
【００５６】
メモリＩＣはＤＲＡＭ、ＳＲＡＭ、フラッシュメモリのいずれであってもよい。
【００５７】
集積回路はメモリアクセス要求元やほかのコントローラやプロセッサ部分等を含んでもよい。
【００５８】
上記実施形態の説明では、１０ビットデータを１６ビットワードのメモリに書き込むため、５個の１６ビットバッファレジスタを用いてデータの結合、分配を行ったがデータビットが１０ビットでなくｄビットの場合も、ｗビットのバッファレジスタをｍ個設け、同様に制御することでメモリにデータを無駄なく格納できる。ここでｗは自然数でメモリの１ワードのビット数で、ｍは自然数で、ｄとｗの最小公倍数をｗで割った値である。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１実施形態のメモリデータ格納方式によるメモリアクセス回路の全体構成を示すブロック図。
【図２】本発明の第１実施形態でメモリ書き込み対象の１０ビットデータがバッファレジスタに分配される様子を示した図。
【図３】図１の制御回路１６の詳細構成を示したブロック図。
【図４】本発明の第２実施形態のメモリデータ格納方式によるメモリアクセス回路の全体構成を示すブロック図。
【図５】図４のセレクタ１５の入力を示した図。
【符号の説明】
【００６０】
１、１Ａ    メモリアクセス回路
１１    データ分配回路
１２    セレクタ
１３−１〜１３−５    バッファレジスタ
１４−１〜１４−５    セレクタ
１５    セレクタ
１６、１６Ａ    制御回路
１６１    ＤＴＮカウンタ
１６２    デコーダ
１６３    アドレスカウンタ
１６４    ＢＦＮカウンタ
１６５    ＭＡカウンタ
１６６    Ｂアドレスレジスタ
１６７    アダー
２    メモリ
【図１】
2005032035.tif 000003
【図２】
2005032035.tif 000004
【図３】
2005032035.tif 000005
【図４】
2005032035.tif 000006
【図５】
2005032035.tif 000007