(57)【要約】【課題】  複数のリードポートを設けた場合でも回路規模を削減できる記憶装置を提供する。【解決手段】  記憶装置２１は、少なくとも１つのライトポート２８と、複数の異なるアドレスのリードデータを出力可能な複数のリードポート２４Ａ、２４Ｂと、１サイクルに書き込みまたは読み出しのどちらか一方のみが可能なシングルポートメモリ２２と、ｎ個のデータをパッキングしてシングルポートメモリ２２に書き込むデータパック部２３と、シングルポートメモリ２２から読み出したデータをアンパッキングするデータアンパック部２５と、書き込み用の１つ書き込みアドレスと読み出し用の複数の読み出しアドレスを制御しながらシングルポートメモリ２２にアドレスを所定の順序で選択出力するメモリアドレス制御部２７とを備える。【選択図】          図４
2006012235.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのライトポートと、
複数の異なるアドレスのリードデータを出力可能な複数のリードポートと、
１サイクルに書き込みまたは読み出しのどちらか一方のみが可能なシングルポートメモリと、
前記ライトポートから入力されたｎ個のデータをパッキングして前記シングルポートメモリに書き込むデータパック部と、
前記各リードポートに対応して設けられ、前記シングルポートメモリから読み出したデータをアンパッキングするデータアンパック部と、
書き込み用の１つ書き込みアドレスと読み出し用の複数の読み出しアドレスを制御しながら前記シングルポートメモリにアドレスを所定の順序で選択出力するメモリアドレス制御部とを備えることを特徴とする記憶装置。
【請求項２】
前記複数のリードポートは、それぞれ異なるクロック周波数で読み出されることを特徴とする請求項１記載の記憶装置。
【請求項３】
前記データパック部のパッキング数ｎは下記の関係式（１）を満たす整数であることを特徴とする請求項２または請求項３記載の記憶装置。
ｎ≧(ライトクロック周波数＋リードクロック周波数の合計)／前記シングルポートメモリの動作クロック周波数          （１）
【請求項４】
前記メモリアドレス制御部は、前記複数のリードポートのクロック周波数比に応じて、一定の順序でアドレスを切り替えることを特徴とする請求項１から請求項３のいずれか一項に記載の記憶装置。
【請求項５】
前記メモリアドレス制御部は、前記複数のリードポートの読み出し状況に応じて、前記シングルポートメモリに出力するアドレスの選択方式を変更することを特徴とする請求項１から請求項４のいずれか一項に記載の記憶装置。
【請求項６】
前記データパック部は、非同期のＦＩＦＯメモリを備えることを特徴とする請求項１から請求項５のいずれか一項に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のリードポートを設けた記憶装置に関する。
【背景技術】
【０００２】
一般に、画像データや音声データを処理する装置として、回路ブロック間でのデータ転送時の動作タイミングを調整するために、入力側動作と出力側動作が非同期に実現できるＦＩＦＯ型の記憶装置を備えた情報処理装置が提案されている。
【０００３】
図１はこのような従来の情報処理装置を示す図である。図１に示すように、情報処理装置１は、ＦＩＦＯ(First In First Out)メモリ２Ａ、２Ｂ、データ処理装置３Ａ、３Ｂ、出力制御部４Ａ、４Ｂを有する。ＦＩＦＯメモリ２Ａ、２Ｂはシングルポートメモリである。この情報処理装置１は、ある入力データを、それぞれ異なるタイミングで動作する複数の処理で使用する場合、シングルポートのＦＩＦＯメモリ２Ａ、２Ｂに一旦データを取り込むことで、それ以降のデータ処理を異なるタイミングで実行できるようにしている。
【０００４】
上記構成では同一の入力データを保持するために、ＦＩＦＯメモリ２Ａ、２Ｂを処理回路ごとに複数持たなければならないため、回路規模の増大の原因となっていた。この回路規模の増大という問題点を解決するものとしてデュアルポートメモリを備えた情報処理装置が提案されている。
【０００５】
図２は、従来のデュアルポートメモリを用いた情報処理装置を示す図である。図２に示すように、この情報処理装置１１は、デュアルポートを有するＦＩＦＯメモリ１２、データ処理装置３Ａ、３Ｂ、出力制御部４Ａ、４Ｂを備える。ＦＩＦＯメモリ１２は、データの入力(書き込み)と出力(読み出し)とを同時に、すなわち、互いに非同期に、行えるようにするためのデュアルポートメモリである。このデュアルポートメモリに対するデータの入力、出力動作はそれぞれ非同期に制御される。
【０００６】
図３は、デュアルポートメモリ（１Ｗ２Ｒ）を使用した従来例の記憶装置のブロック図である。図３に示すように、記憶装置２０は、デュアルポートメモリ１２、入力制御部１３、出力制御部１４Ａ、１４Ｂ、ライトポイント１５、リードポインタ１６Ａ、１６Ｂ、フラグ制御部１７を備える。デュアルポートメモリ１２は、１つのライトポートと複数のリードポートを備える。また、記憶装置２０はライトクロックドメインとリードクロックドメインを有する。入力制御部１３は、ライトポートから入力された入力データをデュアルポートメモリ１２に送る。
【０００７】
出力制御部１４Ａ、１４Ｂは、それぞれのリードポートへリードデータを供給する。ライトポイント１５は、ライトアクセスするアドレスを指定するものである。リードポインタ１６Ａ、１６Ｂは、リードアクセスするアドレスを指定するものである。フラグ制御部１７は、ライトポインタ１５とリードポインタ１６Ａ、１６Ｂの遅いほうの値とを比較してＦＵＬＬフラグｗｆｕｌｌを生成する。また、フラグ制御部１７は、ライトポインタ１５とリードポインタ１６ＡからエンプティフラグＥＭＰＴＹ＿Ａを生成し、ライトポインタ１５とリードポインタ１６ＢからエンプティフラグＥＭＰＴＹ＿Ｂを生成する。このように構成することにより、シングルポートメモリを用いた構成よりも回路規模を小さくできる。また、このようなデュアルポートメモリを用いた記憶装置として特許文献１記載のＦＩＦＯ回路が提案されている。
【０００８】
特許文献１記載のＦＩＦＯ回路は、デュアルポートメモリを備え、ＦＩＦＯに取り込まれたデータを再利用するために、１つのポインタと複数のリードポインタとを備えるというものである。
【０００９】
【特許文献１】特開２０００−７６８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、図３で示した記憶装置２０や特許文献１記載のＦＩＦＯ回路では、複数のリードポートを有するデュアルポートメモリの使用を前提としているため、１つのシングルポートメモリを用いた場合に比べて回路規模が大きく、記憶装置全体の回路規模が大きくなるという問題がある。
【００１１】
そこで、本発明は、上記従来例の問題点に鑑み、複数のリードポートを設けた場合でも回路規模を削減できる記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の記憶装置は、請求項１に記載のように、少なくとも１つのライトポートと、複数の異なるアドレスのリードデータを出力可能な複数のリードポートと、１サイクルに書き込みまたは読み出しのどちらか一方のみが可能なシングルポートメモリと、前記ライトポートから入力されたｎ個のデータをパッキングして前記シングルポートメモリに書き込むデータパック部と、前記各リードポートに対応して設けられ、前記シングルポートメモリから読み出したデータをアンパッキングするデータアンパック部と、書き込み用の１つ書き込みアドレスと読み出し用の複数の読み出しアドレスを制御しながら前記シングルポートメモリにアドレスを所定の順序で選択出力するメモリアドレス制御部とを備えることを特徴とする。
【００１３】
請求項１記載の発明によれば、書き込むときはｎ個のデータをパッキングしてシングルポートメモリに書き込み、読み出すときはシングルポートメモリから読み出したデータをアンパッキングするようにし、書き込み用の１つ書き込みアドレスと読み出し用の複数の読み出しアドレスを制御しながらシングルポートメモリにアドレスを所定の順序で選択出力するので、１つのシングルポートメモリを用いた場合でも、見かけ上は常に書き込みと読み出しを行うことができる。これにより、複数のリードポートを設けた場合でも回路規模を削減することができる。
【００１４】
また、本発明は、請求項２に記載のように、請求項１記載の記憶装置において、前記複数のリードポートは、それぞれ異なるクロック周波数で読み出されることを特徴とする。請求項２記載の発明によれば、複数のリードポートは、それぞれ異なるクロック周波数で読み出すことができるので、リードポートのアクセスを異なるクロック同期で行うことができる。
【００１５】
また、本発明は、請求項３に記載のように、請求項２または請求項３記載の記憶装置において、前記データパック部のパッキング数ｎは下記の関係式（１）を満たす整数であることを特徴とする。
【００１６】
ｎ≧(ライトクロック周波数＋リードクロック周波数の合計)／前記シングルポートメモリの動作クロック周波数          （１）
請求項３記載の発明によれば、この関係式を利用することで見かけ上は常に書き込みと読み出しを行うことができる記憶装置を提供できる。
【００１７】
また、本発明は、請求項４に記載のように、請求項１から請求項３のいずれか一項に記載の記憶装置において、前記メモリアドレス制御部は、前記複数のリードポートのクロック周波数比に応じて、一定の順序でアドレスを切り替えることを特徴とする。請求項４記載の発明によれば、固定順序方式を用いてアドレス制御を行うことができる。
【００１８】
また、本発明は、請求項５に記載のように、請求項１から請求項４のいずれか一項に記載の記憶装置において、前記メモリアドレス制御部は、前記複数のリードポートの読み出し状況に応じて、前記シングルポートメモリに出力するアドレスの選択方式を変更することを特徴とする。請求項５記載の発明によれば、これにより、ダイナミックなアドレス制御を行うことができる。また、本発明は、請求項６に記載のように、請求項１から請求項５のいずれか一項に記載の記憶装置において、前記データパック部は、非同期のＦＩＦＯメモリを備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、複数のリードポートを設けた場合でも回路規模を削減できる記憶装置を提供できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を実施するための最良の形態について実施例を用いて説明する。
【実施例】
【００２１】
図４は、本実施例に係る記憶装置２１のブロック図である。本実施例では、シングルポートＲＡＭを使用した場合の構成例である。図４に示すように、記憶装置２１は、シングルポートメモリ２２、データパック部２３、リードポート２４Ａ、２４Ｂ、データアンパック部２５Ａ、２５Ｂ、フラグ制御部２６、メモリアドレス制御部２７、ライトポート２８を備える。本実施例では、シングルポートメモリ２２の制御回路の動作クロックとして、ライトクロックを使用する場合について説明する。
【００２２】
記憶装置２１は、１つのライトポート２８と、複数の異なるアドレスのリードデータを出力可能な複数のリードポート２４Ａ、２４Ｂを有する。リードポート２４Ａ、２４Ｂは、それぞれが異なるクロックで動作可能なように、データアンパック部２５Ａ、２５Ｂの前段に少数ワード数の非同期ＦＩＦＯメモリ３０Ａ、３０Ｂが配置されている。このリードポート２４Ａ、２４Ｂは、複数の異なるアドレスのリードデータを出力可能である。
【００２３】
シングルポートメモリ２２は、１サイクルに書き込みまたは読み出しのどちらか一方のみが可能なメモリである。シングルポートメモリのワード幅は、入力されるデータのｎ倍で構成されている。これにより、ｎ個のデータをパッキングできる。例えば、シングルポートメモリ２２は、入出力されるデータが８ビット幅の場合、３２ビット幅のバス幅を有する。このように構成することで、８ビットを４回溜めてから３２ビットでライトすることで４回分を１度にライトすることができる。
【００２４】
また、リードするときも、３２ビットを一度に読み出すことができ、この読み出したデータを４回に分けることでリードデータとして供給することができる。シングルポートメモリ２２は、メモリアドレス制御部２７からのアドレスに応じて内部メモリにライトデータｗｄａｔａを書き込み、またリードデータｒｄａｔａを読み出す。
【００２５】
データパック部２３は、ライトポートから入力されたｎ個のデータをパッキングしてシングルポートメモリ２２に書き込む。ここで、データパッキングのパッキング数ｎは下記の関係式（１）を満たす整数を確保する必要がある。
・ｎ≧(ライトクロック周波数＋すべてのリードクロック周波数の合計)／前記シングルポートメモリの動作クロック周波数            （１）
この関係式（１）は、関係式（２）のように表すこともできる。
ｎ≧(ＣＷ＋ＣＲ１＋ＣＲ２＋ ・・・)／ＣＭ          （２）
関係式（２）において、ＣＷはライトクロック周波数(Ｈｚ)、ＣＲｘはリードクロック周波数(Ｈｚ)、ＣＭはメモリ動作クロック周波数(Ｈｚ)をそれぞれ表す。
【００２６】
図４に示した構成では、ライトクロック周波数ＣＷ＝シングルポートメモリの動作クロック周波数ＣＭである。たとえば、ライトクロック周波数ＣＷが５０ＭＨｚで書き込み、リードポート１のクロック周波数ＣＲ１が５０ＭＨｚで読み出し、リードポート２のクロック周波数ＣＲ２が１００ＭＨｚで読み出したい場合、関係式（２）から、
・ｎ≧(５０＋５０＋１００)／５０＝４
となるので、最低パッキング数ｎ＝４が必要となる。
【００２７】
データパック部２３は、ライトイネーブルＷＥのアサートともに入力された入力データを有効データとして順次取り込み、ｎ個データパッキングを行い、ｎ個のパッキング完了かつメモリアドレス制御部２７で生成されるライトアドレスセレクト信号のアサートの条件で、シングルポートメモリ２２へパッキングデータの書き込みを行う。
【００２８】
データアンパック部２５Ａ、２５Ｂは、シングルポートメモリ２２から読み出されたパッキングデータｒｄａｔａをｎ個のデータＲＤＡＴＡにアンパッキング（分割）して、順次リードポート２４Ａ、２４Ｂに出力する。図４では、リードポート２４Ａ、２４Ｂごとに異なるクロック周波数で動作可能なように、アンパッキングする前に少数ワード数の非同期ＦＩＦＯメモリ３０Ａ、３０Ｂでパッキングデータをバッファリングして、非同期ＦＩＦＯメモリ３０Ａ、３０Ｂから読み出したデータをアンパッキングする構成としている。
【００２９】
データアンパック部２５Ａ、２５Ｂは、シングルポートメモリ２２から読み出されたパッキングデータｒｄａｔａを受け取るごとに、リードイネーブル信号ｒｅをアサートして、リードポインタ３２、３３をインクリメントさせる。データパック部２５Ａ、２５Ｂは、フラグ制御部２６からフルフラグｆｕｌｌ、エンプティフラグｅｍｐを受け取ると、これらをメモリアドレス制御部２７へ出力し、エンプティフラグｅｍｐを受け取ると、エンプティフラグＥＭＰＴＹをリードポート２４Ａ、２４Ｂに出力する。データアンパック部２５Ａ、２５Ｂは、パッキングデータｒｄａｔａを受け取るごとに、リードイネーブル信号ＲＥをリードポート２４Ａ、２４Ｂに出力する。
【００３０】
ライトポインタ３１、リードポインタ３２、３３は、シングルポートメモリ２２への書き込み信号ｗｅ、シングルポートメモリ２２からの読み出し信号ｒｅ＿Ｘを受けて、それぞれ対応するアドレスをインクリメントする。したがって、このライトポインタ３１、リードポインタ３２、３３が、書き込みおよび読み出しが実行されるたびに、対応するライトアドレスまたはリードアドレスのアドレスカウントをインクリメントするアドレス生成部に相当する。
【００３１】
フラグ制御部２６は、ライトポインタ３１からの書き込みアドレスｗａｄｄｒと複数のリードポインタ３２、３３からの読み出しアドレスｒａｄｄｒからフルフラグｗｆｕｌｌ／エンプティフラグｒｅｍｐ＿１、ｒｅｍｐ＿２を生成する。このフラグ制御部２６は、ライトポインタ３１とリードポインタ３２、３３の内で一番遅いポインタの値とを比較してフルフラグｗｆｕｌｌを生成し、ライトポインタ３１と個々のリードポインタ３２、３３からエンプティフラグｒｅｍｐを生成する。なお、フルフラグｗｆｕｌｌは１つのライトポートに対応して１つ生成される。エンプティフラグｒｅｍｐはリードポートの数に応じて生成される。
【００３２】
メモリアドレス制御部２７は、メモリ選択の方式に応じて、書き込み用の１つの書き込みアドレスｗａｄｄｒと読み出し用の複数の読み出しアドレスｒａｄｄｒ＿１、ｒａｄｄｒ＿２を制御しながらシングルポートメモリ２２にアドレスａｄｄｒを所定の順序で選択出力すると共に、選択されているアドレスを示すアドレスセレクト信号(wsel、rsel_１、…)をアサートする。
【００３３】
図５はメモリアドレス制御部２７における入出力信号を説明する図である。メモリアドレス制御部２７は、メモリ選択の方式に応じて、書き込み用の１つの書き込みアドレスｗａｄｄｒ、読み出し用の複数の読み出しアドレスｒａｄｄｒ＿１、フルフラグｆｕｌｌ、エンプティフラグｅｍｐｔｙを受け、シングルポートメモリ２２にアドレスａｄｄｒを所定の順序で選択出力すると共に、選択されているアドレスを示すアドレスセレクト信号(wsel、rsel_１、…)をアサートする。
【００３４】
図６は、メモリアドレスの選択方式を説明する図である。図６に示すように、メモリ選択の方式としては、１)固定順序でアドレスを切替える方式、後段のリードポート２４Ａ、２４Ｂの非同期ＦＩＦＯメモリ３０Ａ、３０Ｂのフラグを参照して、２)Ｅｍｐｔｙポートを優先してアドレス選択する方式、３)Ｆｕｌｌポートを除外してアドレスを選択する方式等の方式をとることができる。
【００３５】
１）の固定順序方式は、複数のリードポートのクロック周波数比に応じて一定の順序でアドレスを切り替えるという方式である。
２）のＥｍｐｔｙポート優先方式は、リードポート２４Ａ、２４Ｂの非同期ＦＩＦＯメモリ３０Ａ、３０Ｂのフラグを参照して、データの足りないところを優先的に割り当てるという方式である。
３）のＦｕｌｌポート除外方式は、リードポート２４Ａ、２４Ｂの非同期ＦＩＦＯメモリ３０Ａ、３０Ｂのフラグを参照して、Ｆｕｌｌになっているポートを除外して他のポートにリードを優先的に割り当てるという方式である。なお、メモリアドレスの選択方式はここで上げた例に限られず他のアドレス選択方式を用いてもよい。
【００３６】
このメモリドレス制御部２７は、複数のリードポート２４Ａ、２４Ｂの読み出し状況に応じて、シングルポートメモリ２２に出力するアドレスの選択方式を変更するようにしてもよい。これにより、ダイナミックなアドレス制御を行うことができる。
【００３７】
本実施例によれば、入力データをそれぞれ異なるタイミングで動作する複数の処理で使用する場合などで、従来複数のＦＩＦＯを使用しなければならなかったが、本発明では複数のリードポートを有するＦＩＦＯを使用することで、1つのシングルポートメモリで機能を実現できる。メモリの占有面積は、シングルポートメモリ、またはデュアルポートメモリの回路規模でほぼ決定される。シングルポートメモリは、デュアルポートメモリのほぼ半分以下の回路規模となる。このため、メモリ自体の半分以下の回路規模となる。これにより、記憶装置の回路規模を削減することができる。
【００３８】
また、回路サイズが小さいシングルポートメモリを使用してＦＩＦＯメモリを実現できるので、ＡＳＩＣ（特定用途向けＩＣ）のチップサイズ削減によるコストダウンが可能である。
【００３９】
さらに、各リードポートをそれぞれ異なるクロックで動作させることが可能である。これにより、デュアルポートメモリを用いた場合、リードポートのアクセスがすべて同一のクロック同期でしか行えないため、リードポートのアクセスを異なるクロック同期で行うことができないという問題を解決できる。
【００４０】
本実施例の記憶装置は、例えば画像処理装置における画像圧縮部分に適用することができる。タグ情報を有するＬａｂ色空間で表現された画素の情報を圧縮する際に、ａを圧縮するとき、ｂを圧縮するときにそれぞれタグ情報が必要である場合でも、本実施例で説明した記憶装置によれば、圧縮に必要なタグ情報をそれぞれのタイミングで読み出すことができる。
【００４１】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。例えば上記実施例では２つのリードポートを有する場合を例をとって説明したがリードポートの数は、３ポートでも、４ポートでもよく、リードポートの数は特に限定されない。
【図面の簡単な説明】
【００４２】
【図１】従来の情報処理装置を示す図である。
【図２】従来のデュアルポートメモリを用いた情報処理装置を示す図である。
【図３】デュアルポートメモリを使用した従来例の記憶装置のブロック図である。
【図４】本実施例に係る記憶装置のブロック図である。
【図５】メモリアドレス制御部における入出力信号を説明する図である。
【図６】メモリアドレスの選択方式を説明する図である。
【符号の説明】
【００４３】
２１  記憶装置
２２  シングルポートメモリ
２３  データパック部
２４Ａ、２４Ｂ  リードポート
２５Ａ、２５Ｂ  データアンパック部
２６  フラグ制御
２７  メモリアドレス制御部
２８  ライトポート
【図１】
2006012235.tif 000003
【図２】
2006012235.tif 000004
【図３】
2006012235.tif 000005
【図４】
2006012235.tif 000006
【図５】
2006012235.tif 000007
【図６】
2006012235.tif 000008