(57)【要約】【課題】２ポートメモリのリード動作と動作モニタとを相互に影響を及ぼすことなく行う。【解決手段】２ポートメモリ６は、ＦＩＦＯメモリ２において２ポートメモリ３を構成する２ポートＳＲＡＭと同一構成の２ポートＳＲＡＭからなる。この２ポートメモリ６は、２ポートメモリ３と共通のライトアドレスＷＡｄｄ、ライトデータＷＤ、ライトイネーブル信号ＷＥおよび動作クロックが与えられる。これにより２ポートメモリ３，６に同じライトデータＷＤが同じタイミングで同じアドレスにライトされる。２ポートメモリ３は、リードポインタ５によって与えられるリードアドレスＲＡｄｄからリードデータＲＤがリードされる。一方、２ポートメモリ６は、ＣＰＵ７によって与えられるアドレスＡｄｄからリードデータＲＤがリードされる。これにより、２ポートメモリ６は、２ポートメモリ３と異なるタイミングで異なるアドレスからリードデータをリードすることができる。【選択図】図１
2009266176.tif 000002
【特許請求の範囲】
【請求項１】
２ポートメモリからなる主メモリのリードおよびライトのアクセスを制御するメモリ制御システムにおいて、
前記２ポートメモリと同一構成の２ポートメモリからなり、前記主メモリと共通のデータおよびライトアドレスが与えられる一方、前記主メモリのリードアドレスとは関係のない任意のリードアドレスが与えられる副メモリを備えていることを特徴とするメモリ制御システム。
【請求項２】
前記主メモリがＦＩＦＯメモリを構成するメモリであることを特徴とする請求項１に記載のメモリ制御システム。
【請求項３】
前記主メモリがＬＩＦＯメモリを構成するメモリであることを特徴とする請求項１に記載のメモリ制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２ポートメモリのリード動作をモニタするメモリ制御システムに関し、より好適には、ＳＲＡＭを用いた２ポートメモリのリード動作をモニタするメモリ制御システムに関するものである。
【背景技術】
【０００２】
ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などのデバイスでは、その内部において、ハードウェアのＩＰ（Intelligent Property）として用意されているＳＲＡＭを利用することができる。ＳＲＡＭには、２ポート（デュアルポート）のＳＲＡＭも用意されていることから、この２ポートのＳＲＡＭを利用して、（キューと呼ばれる）ＦＩＦＯ（First In First Out）メモリや（スタックと呼ばれる）ＬＩＦＯ（Last In First Out）メモリを構成することができる。
【０００３】
ここで、２ポートメモリでＦＩＦＯメモリを構成する例について説明する。
【０００４】
図４に示すように、ＦＩＦＯメモリ１０１は、２ポートＳＲＡＭからなる２ポートメモリ１０２、ライトポインタ１０３およびリードポインタ１０４を備えている。このＦＩＦＯメモリ１０１において、ライトイネーブル信号ＷＥがアクティブとなった状態でライトポインタ１０３により指定されるライトアドレスＷＡｄｄにライトデータＷＤがライトされる。また、リードポインタ１０４により指定されるリードアドレスＲＡｄｄからリードデータＲＤがリードされる。
【０００５】
このようなＦＩＦＯメモリ１０１では、ライトのポインタ位置（ライトアドレスＷＡｄｄ）とリードのポインタ位置（リードアドレスＲＡｄｄ）とが等しければ、２ポートメモリ１０２にデータが記憶されていない状態（empty）となる。また、このようなＦＩＦＯメモリ１０１では、ライトのポインタ位置（ライトアドレスＷＡｄｄ）とリードのポインタ位置（リードアドレスＲＡｄｄ）から１を減じたポインタ位置とが等しければ、２ポートメモリ１０２にメモリ容量の満杯にデータが記憶されている状態（full）となる。
【０００６】
上記のようなデバイスの開発においては、デバッグやトレース（ＣＰＵやメモリの動きのトレース）のために、２ポートメモリの動作をモニタすることが行われる。一般に、デバイスを動作させるためのソフトウェアの開発にはコストがかかる。このため、例えば、デバッグ機能は製品状態のデバイスには必要ないが、デバイスのデバッグ機能が充実していることにより開発コストを低減することができる。したがって、デバイスには設計の段階からデバッグ機能が組み込まれていることがある。
【０００７】
２ポートメモリの動作をモニタするには、任意のリードアドレスを指定して２ポートメモリからデータをリードすることが行われる。このため、通常のメモリのリード動作とモニタのためのリード動作とを調停するためのアービタが用いられる。アービタは、特許文献１に記載されているように、各所からの要求を調停して、メモリのリード動作とライト動作とを制御している。
【０００８】
ここで、上記のようなＦＩＦＯメモリ１０１をモニタする従来の構成について説明する。
【０００９】
図５に示すように、アービタ１０５は、通常のリード動作のとき、リードポインタ１０４からのリードアドレスＲＡｄｄを２ポートメモリ１０２に与える。これにより、２ポートメモリ１０２からは、リードデータＲＤがリードされる。また、アービタ１０５は、ＣＰＵ１０６からのメモリリクエスト信号ＲＥＱによってアクセス要求を受けると、ＣＰＵ１０６からのアドレスＡｄｄをリードアドレスＲＡｄｄとして２ポートメモリ１０２に与える。これにより、２ポートメモリからは、ＣＰＵ１０６の指定によるリードアドレスＲＡｄｄでリードデータＲＤがリードされる。
【特許文献１】特開２００１−２２２４６１号公報（２００１年８月１７日公開）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記の図５に示す構成では、モニタのためのアービタ１０５を用いているが、アービタ１０５が行うアービトレーションに時間を要する上（通常１クロックの遅延）、２ポートメモリ１０２の通常のリード動作がモニタによって待機状態となることがある。このため、ＦＩＦＯメモリ１０１のリアルタイム動作が損なわれるという不都合がある。特に、図５に示す構成が、高速でパイプライン処理する一部として組み込まれる場合、ＦＩＦＯメモリ１０１の動作がモニタに干渉されることにより、正常に動作しなくなるおそれがある。よって、アービタ１０５を用いたモニタは、ＦＩＦＯメモリ１０１の動作を保証する観点から好ましくない。しかも、アービタ１０５によるモニタも常に所望のタイミングで行うことができることはなく、ＦＩＦＯメモリ１０１のリード動作がモニタに優先されることがある。このため、モニタ処理に時間を要するという不都合がある。
【００１１】
そこで、２ポートメモリに代えて３ポートメモリを利用することが考えられる。３ポートメモリは、ライトおよびリードにそれぞれ用いる２ポート以外の１ポートをモニタに利用できる。ところが、３ポートメモリは、メーカによっては扱っていないことがあり、また、特殊な仕様となっているなどの事情により汎用性に欠けるといった側面もある。このことから、上記のようなデバイスには、２ポートメモリが使用されることが一般的である。
【００１２】
本発明は、上記の問題点に鑑みてなされたものであり、２ポートメモリのリード動作と２ポートメモリの動作モニタとを相互に影響を及ぼすことなく行うことができるメモリ制御システムを提供することを目的としている。
【課題を解決するための手段】
【００１３】
本発明に係るメモリ制御システムは、２ポートメモリからなる主メモリのリードおよびライトのアクセスを制御するメモリ制御システムにおいて、上記の課題を解決するために、前記２ポートメモリと同一構成の２ポートメモリからなり、前記主メモリと共通のデータおよびライトアドレスが与えられる一方、前記主メモリのリードアドレスとは関係のない任意のリードアドレスが与えられる副メモリを備えていることを特徴としている。
【００１４】
上記の構成では、同じライトデータが、主メモリおよび副メモリの同じライトアドレスで指定される格納場所にライトされる。すなわち、主メモリの内容と副メモリの内容とは同じになる。そして、副メモリには、主メモリとは関係のない任意のリードアドレスを与えることができるので、副メモリにおいて主メモリとは関係のない任意のタイミングで任意のリードアドレスのデータをリードすることができる。それゆえ、ＣＰＵなどによって副メモリの動作をモニタすることで、主メモリの動作を実質的にモニタしたことになる。したがって、主メモリの通常のリード動作に影響を及ぼすことなく、主メモリのリード動作を実質的にモニタすることができる。また、モニタを主メモリの動作に影響を及ぼすことなく高速に行うことができる。
【００１５】
前記メモリ制御システムにおいて、前記主メモリがＦＩＦＯメモリを構成するメモリであることが好ましい。また、前記メモリ制御システムにおいて、前記主メモリがＬＩＦＯメモリで構成するメモリであることが好ましい。これにより、ＦＩＦＯメモリまたはＬＩＦＯメモリを含むＡＳＩＣ等のデバイスにおいて、主メモリのリード動作のモニタを主メモリの動作に影響を及ぼすことなく行うことができる。
【発明の効果】
【００１６】
本発明に係るメモリ制御システムは、以上のように、主メモリを構成する２ポートメモリと同一構成の２ポートメモリからなり、前記主メモリと共通のデータおよびライトアドレスが与えられる一方、前記主メモリと関係のない任意のリードアドレスが与えられる副メモリを備えている。このため、主メモリの内容と副メモリの内容とが同じになるので、主メモリのリード動作をモニタするかわりに副メモリのリード動作をモニタすればよい。すなわち、主メモリのリード動作のモニタを実際の動作から実質的に遅延なしで行うことができる。したがって、ＡＳＩＣ等のデバイスにおける２ポートメモリの動作のモニタを効率的に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１７】
本発明の実施形態について図１ないし図３に基づいて説明すると、以下の通りである。
【００１８】
なお、図１ないし図３において各回路間の接続線は、太い実線が複数ビットの信号線を表し、細い実線が１ビットの信号線を表している。
【００１９】
図１に示すように、本実施の形態に係るメモリ制御システム１は、ＦＩＦＯメモリ２（主メモリ）と、２ポートメモリ６（副メモリ）と、ＣＰＵ７とを備えている。
【００２０】
ＦＩＦＯメモリ２は、前述のＦＩＦＯ１０１（図４参照）と同様に構成されており、２ポートメモリ３、ライトポインタ４およびリードポインタ５を有している。
【００２１】
２ポートメモリ３は２ポートＳＲＡＭからなる。この２ポートメモリ３は、ライトイネーブル信号ＷＥがアクティブの状態で、ライトポインタ４から与えられるライトアドレスＷＡｄｄで指定された格納場所にライトデータＷＤをライトする。また、２ポートメモリ３は、リードポインタ５から与えられるリードアドレスＲＡｄｄで指定された格納場所からリードデータＲＤをリードする。
【００２２】
ライトポインタ４は、２ポートメモリ３のライトアドレスＷＡｄｄで指定される末尾の格納場所にライトデータＷＤがライトされると、次の格納場所を指定するようにライトアドレスＷＡｄｄを変更する（ポインタ位置をずらす）。ここでの変更は、ライトアドレスＷＡｄｄに１を加算するものとする。
【００２３】
リードポインタ５は、２ポートメモリ３のリードアドレスＲＡｄｄで指定される先頭の格納場所からリードデータＲＤがリードされると、次にリードされるデータの格納場所を指定するようにリードアドレスＲＡｄｄを変更する（ポインタ位置をずらす）。ここでの変更は、リードアドレスＲＡｄｄに１を加算するものとする。
【００２４】
ライトアドレスＷＡｄｄとリードアドレスＲＡｄｄとは、１対１に対応しており、２ポートメモリ３のライトおよびリードの動作は、ともにライトアドレスＷＡｄｄおよびリードアドレスＲＡｄｄの先頭のアドレスから行われる。これにより、ＦＩＦＯメモリ２は、先にライトしたデータからリードしていく。
【００２５】
２ポートメモリ６は、２ポートメモリ３を構成する上記の２ポートＳＲＡＭと同一構成の２ポートＳＲＡＭからなる。また、この２ポートメモリ６は、ライトポインタ４から、２ポートメモリ３に与えられるライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥと同じライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥが与えられる。また、図示しないが、２ポートメモリ６は、２ポートメモリ３と同じ書込動作クロックが与えられる。このため、２ポートメモリ６は、２ポートメモリ３と同じタイミングで同じライトデータＷＤをライトする。さらに、２ポートメモリ６は、ＣＰＵ７からのアドレスＡｄｄを受けると、そのアドレスＡｄｄで指定される格納場所からリードデータＲＤをリードする。また、図示しないが、２ポートメモリ６は、２ポートメモリ３と同じ読出動作クロックが与えられる。この読出動作クロックは書込動作クロックと同じ周波数である。
【００２６】
上記のように構成されるメモリ制御システム１においては、２ポートメモリ３，６に同じライトデータＷＤが同じタイミングで同じアドレスにライトされる。２ポートメモリ３は、リードポインタ５からリードアドレスＲＡｄｄが与えられると、このアドレスのリードデータＲＤをリードする。一方、２ポートメモリ６は、ＣＰＵ７からアドレスＡｄｄが与えられると、このアドレスのリードデータＲＤをリードする。
【００２７】
これにより、２ポートメモリ６は、２ポートメモリ３と無関係の任意のタイミングで、２ポートメモリ３と無関係の任意のアドレスのリードデータＲｄをリードすることができる。それゆえ、ＣＰＵ７によって２ポートメモリ６の動作をモニタすることで、２ポートメモリ３の動作をモニタしたことになる。したがって、２ポートメモリ３の通常のリード動作に影響を及ぼすことなく、２ポートメモリ３の動作を実質的にモニタすることができる。また、ＣＰＵ７によるモニタをＦＩＦＯメモリ２の動作の影響を受けることなく高速に行うことができる。
【００２８】
続いて、本発明の他の実施の形態について説明する。
【００２９】
図２に示すように、本実施の他の形態に係るメモリ制御システム１１は、ＬＩＦＯメモリ１２と、２ポートメモリ１６と、ＣＰＵ１７とを備えている。
【００３０】
ＬＩＦＯメモリ１２は、スタックとして機能し、２ポートメモリ１３、ライトポインタ１４および減算器１５を有している。
【００３１】
２ポートメモリ１３は２ポートＳＲＡＭからなる。この２ポートメモリ１３は、ライトイネーブル信号ＷＥがアクティブの状態で、ライトポインタ１４から与えられるライトアドレスＷＡｄｄで指定された格納場所にライトデータＷＤをライトする。また、２ポートメモリ１３は、減算器１５から与えられるリードアドレスＲＡｄｄで指定された格納場所からリードデータＲＤをリードする。
【００３２】
ライトポインタ１４は、２ポートメモリ１３のライトアドレスＷＡｄｄで指定される格納場所にライトデータＷＤがライトされると、次の格納場所を指定するようにライトアドレスＷＡｄｄを変更する（ポインタ位置をずらす）。ここでの変更は、ライトアドレスＷＡｄｄに１を加算するものとする。
【００３３】
減算器１５は、ライトポインタ１４からのデータライト後に上記のように変更されたライトアドレスＷＡｄｄ＋から“１”を減算することにより、現在最後に格納されたデータの格納位置を指すリードアドレスＲＡｄｄを出力する。減算器１５の実際の演算は、ライトアドレスＷＡｄｄ＋に“−１”を加算する処理として行われる。
【００３４】
ライトアドレスＷＡｄｄとリードアドレスＲＡｄｄとは、１対１に対応している。２ポートメモリ１３のライト動作は、最後に格納されたデータを指すライトアドレスＷＡｄｄの次のライトアドレスＷＡｄｄ（データ未格納のアドレス）から行われる。また、２ポートメモリ１３のリード動作は、最後に格納されたデータを指すリードアドレスＲＡｄｄから行われる。これにより、ＦＩＦＯメモリ２は、最後にライトしたデータからリードしていく。
【００３５】
２ポートメモリ１６は、２ポートメモリ１３を構成する上記の２ポートＳＲＡＭと同一構成の２ポートＳＲＡＭからなる。また、この２ポートメモリ１６は、ライトポインタ１４から、２ポートメモリ１３に与えられるライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥと同じライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥが与えられる。また、図示しないが、２ポートメモリ１６は、２ポートメモリ１３と同じ書込動作クロックが与えられる。このため、２ポートメモリ１６は、２ポートメモリ１３と同じタイミングで同じライトデータＷＤをライトする。さらに、２ポートメモリ１６は、ＣＰＵ１７からのアドレスＡｄｄを受けると、そのアドレスＡｄｄで指定される格納場所からリードデータＲＤをリードする。また、図示しないが、２ポートメモリ１６は、２ポートメモリ１３と同じ読出動作クロックが与えられる。この読出動作クロックは書込動作クロックと同じ周波数である。
【００３６】
上記のように構成されるメモリ制御システム１においては、２ポートメモリ１３，１６に同じライトデータＷＤが同じタイミングで同じアドレスにライトされる。２ポートメモリ１３は、減算器１５からリードアドレスＲＡｄｄが与えられると、このアドレスのリードデータＲＤがリードされる。一方、２ポートメモリ１６は、ＣＰＵ１７によって与えられるアドレスＡｄｄからリードデータＲＤがリードされる。
【００３７】
これにより、２ポートメモリ１６は、２ポートメモリ１３と無関係の任意のタイミングで、２ポートメモリ１３と無関係の任意のアドレスのリードデータＲＤをリードすることができる。それゆえ、ＣＰＵ１７によって２ポートメモリ１６の動作をモニタすることで、２ポートメモリ１３の動作を実質的にモニタしたことになる。したがって、２ポートメモリ１３の通常のリード動作に影響を及ぼすことなく、２ポートメモリ１３の動作を実質的にモニタすることができる。また、ＣＰＵ１７によるモニタをＬＩＦＯメモリ１２の動作の影響を受けることなく高速に行うことができる。
【００３８】
続いて、本発明のさらに他の実施の形態について説明する。
【００３９】
図３に示すように、本実施のさらに他の形態に係るメモリ制御システム２１は、２ポートメモリ２２，２３と、ＣＰＵ２４，２５とを備えている。
【００４０】
２ポートメモリ２２は２ポートＳＲＡＭからなる。この２ポートメモリ２２は、データライト用のＣＰＵ２４からのライトイネーブル信号ＷＥがアクティブの状態で、ＣＰＵ２４から与えられるライトアドレスＷＡｄｄで指定された格納場所にライトデータＷＤをライトする。また、２ポートメモリ２２は、データリード用のＣＰＵ２５からのリードアドレスＲＡｄｄで指定された格納場所からリードデータＲＤをリードする。
【００４１】
２ポートメモリ２３は、２ポートメモリ２２を構成する上記の２ポートＳＲＡＭと同一構成の２ポートＳＲＡＭからなる。また、この２ポートメモリ２３は、ＣＰＵ２４から２ポートメモリ２２に与えられるライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥと同じライトアドレスＷＡｄｄ、ライトデータＷＤおよびライトイネーブル信号ＷＥが与えられる。また、図示しないが、２ポートメモリ２３は、２ポートメモリ２２と同じ書込動作クロックが与えられる。このため、２ポートメモリ２３は、２ポートメモリ２２と同じタイミングで同じライトデータＷＤをライトする。さらに、２ポートメモリ２３は、外部からのリードアドレスＲＡｄｄを受けると、そのリードアドレスＲＡｄｄで指定された格納場所からリードデータＲＤをリードする。また、図示しないが、２ポートメモリ２３は、２ポートメモリ２２と同じ読出動作クロックが与えられる。この読出動作クロックは書込動作クロックと同じ周波数である。
【００４２】
上記のように構成されるメモリ制御システム２１においては、２ポートメモリ２２，２３に同じライトデータＷＤが同じタイミングで同じアドレスにライトされる。２ポートメモリ２２は、ＣＰＵ２５からリードアドレスＲＡｄｄが与えられると、このアドレスのリードデータＲＤがリードされる。一方、２ポートメモリ２３は、外部から与えられるリードアドレスＲＡｄｄで指定された格納場所からリードデータＲＤがリードされる。
【００４３】
これにより、２ポートメモリ２３は、２ポートメモリ２２と無関係の任意のタイミングで、２ポートメモリ２２と無関係の任意のタイミングで異なるアドレスのリードデータＲＤをリードすることができる。それゆえ、外部からの指示によって２ポートメモリ２３の動作をモニタすることで、２ポートメモリ２２の動作を実質的にモニタしたことになる。したがって、２ポートメモリ２２の通常のリード動作に影響を及ぼすことなく、２ポートメモリ２２の動作を実質的にモニタすることができる。また、２ポートメモリ２２のモニタを２ポートメモリ２２の動作の影響を受けることなく高速に行うことができる。
【００４４】
本発明は、上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００４５】
本発明のメモリ制御システムは、同一構成の２ポートメモリを２つ備え、両メモリに同じデータを同様にしてライトするので、両メモリの内容が同じになる。また、両メモリからのリード動作を個別に行うため、一方の２ポートメモリのリード動作を他方の２ポートメモリのリード動作に影響を及ぼすことなく行うことができる。このため、本メモリ制御システムをＡＳＩＣ等のデバイスにおける２ポートメモリの動作モニタを効率的に行うことに好適に利用できる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態に係るメモリ制御システムの構成を示すブロック図である。
【図２】本発明の他の実施形態に係るメモリ制御システムの構成を示すブロック図である。
【図３】本発明のさらに他の実施形態に係るメモリ制御システムの構成を示すブロック図である。
【図４】２ポートメモリを用いた一般的なＦＩＦＯメモリの構成を示すブロック図である。
【図５】図４のＦＩＦＯメモリに２ポートメモリのモニタ機能を備えた従来のメモリ制御システムの構成を示すブロック図である。
【符号の説明】
【００４７】
１，１１，２１        メモリ制御システム
２                    ＦＩＦＯメモリ
３，１３，２２        ２ポートメモリ（主メモリ）
６，１６，２３        ２ポートメモリ（副メモリ）
７，１７，２４，２５  ＣＰＵ
１２                    ＬＩＦＯメモリ
【図１】
2009266176.tif 000003
【図２】
2009266176.tif 000004
【図３】
2009266176.tif 000005
【図４】
2009266176.tif 000006
【図５】
2009266176.tif 000007