(57)【要約】【課題】ＲＡＭに対して二つの異なるアクセス元からのアクセスが競合した場合に一方のアクセスを次のアクセスサイクルまで待たせる必要がなく、回路面積と消費電力を低減させる。【解決手段】ＲＡＭ３に対してアクセス元１、２からのメモリアクセスが競合した場合、メモリアクセス調停回路１０によって、アクセス元２からのメモリアクセスを、そのアクセスサイクル内で遅延させて、次のメモリアクセスまでにＲＡＭ３に対してメモリアクセスが行われるように調停する。メモリアクセス調停回路１０は、メモリアクセスが発生したときのみ、内部クロック信号、タイミング制御信号およびＲＡＭ３に対するクロック信号を生成し、アクセス発生時にのみメモリアクセス調停回路１０が動作させ、メモリアクセスが発生しないときには動作させないため、消費電力を低減できる。【選択図】図１
2009104486.tif 000002
【特許請求の範囲】
【請求項１】
シングルポートＲＡＭ回路に対して二つのアクセス元から独立してアクセス可能とするために、該二つのアクセス元からのアクセスが競合した場合に、一方のアクセス元からのアクセスが終了した後に他方のアクセス元からのアクセスを実行させるように調停するメモリアクセス調停回路であって、
該他方のアクセス元からのアクセスをそのアクセスサイクル内で遅延させて、次のアクセスまでに該シングルポートＲＡＭ回路に対してアクセスが行われるように、内部クロック信号、タイミング制御信号および、該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成するクロック信号・タイミング信号生成部を有するメモリアクセス調停回路。
【請求項２】
前記クロック信号・タイミング信号生成部は、前記二つのアクセス元のうちの少なくともいずれかからアクセスが発生したときのみ、前記内部クロック信号、前記タイミング制御信号および、前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する請求項１に記載のメモリアクセス調停回路。
【請求項３】
前記クロック信号・タイミング信号生成部は、前記一方のアクセス元からのアクセスが発生した場合に、前記他方のアクセス元からのアクセス状況によらず、常に同じタイミングで前記シングルポートＲＡＭ回路に対してアクセスを実行させるように、前記内部クロック信号、前記タイミング制御信号および、前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する請求項１に記載のメモリアクセス調停回路。
【請求項４】
前記二つのアクセス元からのアクセスの競合を検出するアクセス競合検出部と、
前記シングルポートＲＡＭ回路に出力するためのチップセレクト信号、ライトイネーブル信号およびライトデータ信号をそれぞれ生成するＲＡＭ制御信号生成部と、
該シングルポートＲＡＭ回路から出力されたリードデータを取り込み可能とするリードデータ保持部と、
アクセス完了後に該アクセス競合検出部を構成するフリップフロップを初期化するリセット信号を生成するリセット信号生成部とをさらに有する請求項１に記載のメモリアクセス調停回路。
【請求項５】
前記クロック信号・タイミング信号生成部は、
前記他方のアクセス元からのアクセスが発生した場合に、前記一方のアクセス元からのアクセス状況に応じて前記シングルポートＲＡＭ回路へのアクセスタイミングを制御するように、前記内部クロック信号、前記タイミング制御信号および、該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成し、
該アクセス状況として前記一方のアクセス元からのアクセスが発生していないときは、前記アクセス競合検出部によってアクセスの競合がないと判断して、該シングルポートＲＡＭ回路に対して該他方のアクセス元からのアクセスを即座に実行させ、
該アクセス状況として該一方のアクセス元からのアクセスが発生しているときには、該アクセス競合検出部によりアクセスの競合があると判断して、該一方のアクセス元からのアクセスが終了してから該他方のアクセス元からのアクセスを実行させるようにする請求項４に記載のメモリアクセス調停回路。
【請求項６】
前記クロック信号・タイミング信号生成部は、
前記二つのアクセス元からのアクセスがほぼ同時に発生し、かつ前記アクセス競合検出部によりアクセスの競合が検出された場合には、前記他方のアクセス元からのアクセスの実行を前記一方のアクセス元からのアクセスの終了後に遅らせるように、前記内部クロック信号、前記タイミング制御信号および前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する請求項４に記載のメモリアクセス調停回路。
【請求項７】
前記クロック信号・タイミング信号生成部は、
前記二つのアクセス元からのアクセスがほぼ同時に発生し、かつ前記アクセス競合検出部によりアクセスの競合が検出されなかった場合には、前記他方のアクセス元からのアクセスを先に実行させた後に、前記一方のアクセス元からのアクセスを実行させるように、前記内部クロック信号、前記タイミング制御信号および該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する請求項４または６に記載のメモリアクセス調停回路。
【請求項８】
前記クロック信号・タイミング信号生成部は、
前記他方のアクセス元からのアクセスについて、前記一方のアクセス元からのアクセスと衝突しないように、少なくとも一定時間の間隔をおいて実行されるように、前記内部クロック信号、前記タイミング制御信号および前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する請求項１に記載のメモリアクセス調停回路。
【請求項９】
前記クロック信号・タイミング信号生成部は、
遅延素子とＤ型フリップフロップとインバータ素子とＥＸＯＲ素子とＯＲ素子とセレクタ素子とを組み合わせて構成され、該遅延素子は、前記二つのアクセス元からの各アクセスのセットアップ時間とホールド時間が確保されるように遅延幅が設定されている請求項１に記載のメモリアクセス調停回路。
【請求項１０】
少なくとも前記二つのアクセス元と前記シングルポートＲＡＭ回路との間に介装された請求項１〜９のいずれかに記載のメモリアクセス調停回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シングルポートＲＡＭ回路（Ｓｉｎｇｌｅ  Ｐｏｒｔ  ＲＡＭ回路）に対して二つの異なるアクセス元から独立してアクセス可能とするためのメモリアクセス調停回路に関する。
【背景技術】
【０００２】
従来、シングルポートＲＡＭ回路に対して、ＣＰＵ（中央演算処置装置）などの二つの異なるアクセス元からメモリアクセスが行われる場合には、仕様上、各々のアクセス元からのメモリアクセスが同時に発生しないように制御されていた。また、二つの異なるアクセス元から同時にメモリアクセスが行われる場合には、デュアルポートＲＡＭ回路（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ回路）が使用されていた。
【０００３】
さらに、例えば特許文献１には、シングルポートＲＡＭ回路とメモリアクセス調停回路とを組み合わせて、二つの異なるアクセス元からのメモリアクセスが同時に発生した場合に、一方のアクセス元からのメモリアクセスを１クロック周期だけ遅延させ、タイムシェアリングにアクセスさせるようなメモリアクセスの調停処理が為されていた。
【特許文献１】特開平６−１６１８７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術には、以下のような問題がある。
【０００５】
二つの異なるアクセス元から同時にメモリアクセスが行われる場合に、デュアルポートＲＡＭ回路を用いると、シングルポートＲＡＭ回路よりもその占有回路面積と消費電力が大きくなる。
【０００６】
また、このシングルポートＲＡＭ回路に対して、二つの異なるアクセス元から独立してメモリアクセスを実行させる場合に、一方のアクセス元がメモリアクセスしているときに他方のアクセス元からのメモリアクセスが発生すると、シングルポートＲＡＭ回路へのメモリアクセスが競合する。そこで、一方のアクセス元からのメモリアクセスが終了した後に、他方のアクセス元からのメモリアクセスが実行されるように、メモリアクセスの調停を制御する必要がある。
【０００７】
上記特許文献１に記載されている従来のシングルポートＲＡＭ回路では、二つの異なるアクセス元からのメモリアクセスが同時に発生した場合に、一方のアクセス元からのメモリアクセスを、１クロック周期だけ遅延させて次のアクセスサイクルまで待たせる必要がある。よって、このシングルポートＲＡＭ回路では、次のアクセスサイクルまでメモリアクセスを遅らせることができないシステムには、適用することができない。
【０００８】
しかも、上記シングルポートＲＡＭ回路に組み合わせて用いるメモリアクセス調停回路は、メモリアクセスが発生していないときにも、常にクロックが供給されて動作しているため、電力が常に消費されている。
【０００９】
本発明は、上記従来の問題を解決するもので、デュアルポートＲＡＭ回路の場合に比べて占有回路面積および消費電力を低減できると共に、シングルポートＲＡＭ回路に組み合わせて用いる従来のメモリアクセス調停回路の場合に、シングルポートＲＡＭ回路に対して二つのアクセス元から各々独立してメモリアクセス可能で、シングルポートＲＡＭ回路に対してメモリアクセスが競合した場合に、一方のアクセス元からのメモリアクセスを、従来のように、１クロック周期だけ遅延させて次のアクセスサイクルまで待たせる必要がなく、シングルポートＲＡＭ回路に組み合わせて用いる従来のメモリアクセス調停回路と比べて消費電力を低減させることができるメモリアクセス調停回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のメモリアクセス調停回路は、シングルポートＲＡＭ回路に対して二つのアクセス元から独立してアクセス可能とするために、該二つのアクセス元からのアクセスが競合した場合に、一方のアクセス元からのアクセスが終了した後に他方のアクセス元からのアクセスを実行させるように調停するメモリアクセス調停回路であって、該他方のアクセス元からのアクセスをそのアクセスサイクル内で遅延させて、次のアクセスまでに該シングルポートＲＡＭ回路に対してアクセスが行われるように、内部クロック信号、タイミング制御信号および、該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成するクロック信号・タイミング信号生成部を有するものであり、そのことにより上記目的が達成される。
【００１１】
また、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記二つのアクセス元のうちの少なくともいずれかからアクセスが発生したときのみ、前記内部クロック信号、前記タイミング制御信号および、前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する。
【００１２】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記一方のアクセス元からのアクセスが発生した場合に、前記他方のアクセス元からのアクセス状況によらず、常に同じタイミングで前記シングルポートＲＡＭ回路に対してアクセスを実行させるように、前記内部クロック信号、前記タイミング制御信号および、前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する。
【００１３】
さらに、好ましくは、本発明のメモリアクセス調停回路において、前記二つのアクセス元からのアクセスの競合を検出するアクセス競合検出部と、前記シングルポートＲＡＭ回路に出力するためのチップセレクト信号、ライトイネーブル信号およびライトデータ信号をそれぞれ生成するＲＡＭ制御信号生成部と、該シングルポートＲＡＭ回路から出力されたリードデータを取り込み可能とするリードデータ保持部と、アクセス完了後に該アクセス競合検出部を構成するフリップフロップを初期化するリセット信号を生成するリセット信号生成部とをさらに有する。
【００１４】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記他方のアクセス元からのアクセスが発生した場合に、前記一方のアクセス元からのアクセス状況に応じて前記シングルポートＲＡＭ回路へのアクセスタイミングを制御するように、前記内部クロック信号、前記タイミング制御信号および、該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成し、該アクセス状況として前記一方のアクセス元からのアクセスが発生していないときは、前記アクセス競合検出部によってアクセスの競合がないと判断して、該シングルポートＲＡＭ回路に対して該他方のアクセス元からのアクセスを即座に実行させ、該アクセス状況として該一方のアクセス元からのアクセスが発生しているときには、該アクセス競合検出部によりアクセスの競合があると判断して、該一方のアクセス元からのアクセスが終了してから該他方のアクセス元からのアクセスを実行させるようにする。
【００１５】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記二つのアクセス元からのアクセスがほぼ同時に発生し、かつ前記アクセス競合検出部によりアクセスの競合が検出された場合には、前記他方のアクセス元からのアクセスの実行を前記一方のアクセス元からのアクセスの終了後に遅らせるように、前記内部クロック信号、前記タイミング制御信号および前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する。
【００１６】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記二つのアクセス元からのアクセスがほぼ同時に発生し、かつ前記アクセス競合検出部によりアクセスの競合が検出されなかった場合には、前記他方のアクセス元からのアクセスを先に実行させた後に、前記一方のアクセス元からのアクセスを実行させるように、前記内部クロック信号、前記タイミング制御信号および該シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する。
【００１７】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、前記他方のアクセス元からのアクセスについて、前記一方のアクセス元からのアクセスと衝突しないように、少なくとも一定時間の間隔をおいて実行されるように、前記内部クロック信号、前記タイミング制御信号および前記シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成する。
【００１８】
さらに、好ましくは、本発明のメモリアクセス調停回路におけるクロック信号・タイミング信号生成部は、遅延素子とＤ型フリップフロップとインバータ素子とＥＸＯＲ素子とＯＲ素子とセレクタ素子とを組み合わせて回路構成され、該遅延素子は、前記二つのアクセス元からの各アクセスのセットアップ時間とホールド時間が確保されるように遅延幅が設定されている。
【００１９】
さらに、好ましくは、本発明のメモリアクセス調停回路において、少なくとも前記二つのアクセス元と前記シングルポートＲＡＭ回路との間に介装されている。
【００２０】
上記構成により、以下に、本発明の作用について説明する。
【００２１】
シングルポートＲＡＭ回路（Ｓｉｎｇｌｅ  Ｐｏｒｔ  ＲＡＭ回路）に対して、二つの異なるアクセス元から独立してアクセスさせる場合、一方のアクセス元からのアクセスが実行されているときに他方のアクセス元からのアクセスが発生すると、シングルポートＲＡＭ回路へのアクセスが競合する。このような場合に、一方のアクセス元からのアクセスが終了した後に、他方のアクセス元からのアクセスを実行させる調停制御が必要となる。ただし、次のアクセスサイクルまでアクセスを遅らせることができないシステムの場合には、発生したアクセスサイクル内でアクセスを実行させる必要がある。
【００２２】
そこで、本発明では、メモリアクセス調停回路によって、シングルポートＲＡＭ回路に対して二つの異なるアクセス元から独立してアクセス可能とするために、二つの異なるアクセス元からのアクセスが競合した場合に、二つの異なるアクセス元からの一方のアクセスが終了した後に、他方のアクセス元からのアクセスを実行させる際に、他方のアクセス元からのアクセスをそのアクセスサイクル内で遅延させて、次のアクセス（またはアクセスサイクル）までにシングルポートＲＡＭ回路に対してアクセスが行われるように調停制御を行う。
【００２３】
上記メモリアクセス調停回路は、アクセスが発生したときのみ、内部クロック信号、タイミング制御信号およびシングルポートＲＡＭ回路に出力するためのクロック信号を生成するクロック信号・タイミング信号生成部を有している。これにより、アクセス発生時にのみメモリアクセス調停回路が動作し、外部からアクセスが発生しないときにはメモリアクセス調停回路が動作しないため、電力が常に消費される従来のメモリアクセス調停回路に比べて消費電力が低減されることになる。
【００２４】
上記クロック信号・タイミング信号生成部は、遅延素子とＤ型フリップフロップとインバータ素子とＥＸＯＲ素子とＯＲ素子とセレクタ素子とが組み合わされて構成されている。この遅延素子は、二つのアクセス元からの各アクセスのセットアップ時間とホールド時間が確保されるように、遅延幅が設定されている。
【００２５】
さらに、メモリアクセス調停処理が複雑化して時間的な誤差が大きくなることを防ぐため、本発明のメモリアクセス調停手法は単純化されている。例えば、一方のアクセス元からのアクセスが発生した場合に、他方のアクセス元からのアクセスと衝突（競合）しないように、少なくとも一定時間の間隔をおいて同じタイミングでシングルポートＲＡＭ回路に対してアクセスが実行される。また、他方のアクセス元からのアクセスが発生した場合には、一方のアクセス元からのアクセス状況に応じてシングルポートＲＡＭ回路へのアクセスタイミングが制御される。一方のアクセス元からのアクセスが発生していないときにはアクセスの競合がないと判断してシングルポートＲＡＭ回路に対する他方のアクセス元のアクセスが即座に実行され、一方のアクセス元からのアクセスが発生しているときにはアクセスの競合があると判断して、その一方のアクセス元のアクセスが終了してからシングルポートＲＡＭ回路に対して他方のアクセス元のアクセスが実行される。
【発明の効果】
【００２６】
以上により、本発明によれば、デュアルポートＲＡＭ回路（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ回路）を使用しないため、占有回路面積および消費電力が低減される。また、二つの異なるアクセス元から各々独立してアクセス可能であり、同時にアクセスが発生した場合でも、シングルポートＲＡＭ回路に対してアクセスが競合することはない。このとき、シングルポートＲＡＭ回路に対するアクセスは、そのアクセスサイクル内で実行されるため、次のアクセスサイクルまで待つ必要がない。さらに、従来のようにメモリアクセス調停回路に常時動作させるクロック信号が供給されないため、アクセスがない場合にはメモリアクセス調停回路が動作しないため、消費電力を低減させることができる。
【発明を実施するための最良の形態】
【００２７】
以下に、本発明のメモリアクセス調停回路の実施形態について、図面を参照しながら詳細に説明する。
【００２８】
図１は、本発明の実施形態に係るメモリアクセス調停回路の各アクセス元およびシングルポートＲＡＭ回路への接続状態を模式的に示すブロック図である。
【００２９】
図１において、本実施形態のメモリアクセス調停回路１０は、ＣＰＵ（中央演算処理装置）などの二つの異なるアクセス元１およびアクセス元２とシングルポートＲＡＭ回路３（以下、単にＲＡＭ３という）との間に介装されて、ＲＡＭ３に対して二つのアクセス元１、２から独立してメモリアクセス可能とするために、二つのアクセス元１、２からのメモリアクセスが競合した場合に、一方のアクセス元１からのメモリアクセスが終了した後に他方のアクセス元２からのメモリアクセスを実行させるように調停制御するようになっている。
【００３０】
アクセス元１から出力されたチップセレクト信号ＣＥＮ１、クロック信号ＣＬＫ１、ライトイネーブル信号ＷＥＮ１、アドレス信号Ａ１およびライトデータＷＤ１、並びにアクセス元２から出力されたチップセレクト信号ＣＥＮ２、クロック信号ＣＬＫ２、ライトイネーブル信号ＷＥＮ２、アドレス信号Ａ２およびライトデータＷＤ２はメモリアクセス調停回路１０に供給されるようになっている。このメモリアクセス調停回路１０からは、チップセレクト信号ＣＥＮ、クロック信号ＣＬＫ、ライトイネーブル信号ＷＥＮ、アドレス信号ＡおよびライトデータＷＤがＲＡＭ３に供給されて、ＲＡＭ３に対してメモリアクセス動作が行われる。また、ＲＡＭ３から出力されたリードデータＲＤは、メモリアクセス調停回路１０を経由して、所望のアクセス元１またはアクセス元２にリードデータＲＤ１またはリードデータＲＤ２としてデータ供給される。
【００３１】
メモリアクセス調停回路１０は、これら二つのアクセス元１およびアクセス元２と、ＲＡＭ３との間で受け渡される各種信号を制御することによって、ＲＡＭ３に対するメモリアクセスの競合を防ぎ、正常にメモリ動作させるようにする。
【００３２】
即ち、メモリアクセス時に、チップセレクト信号ＣＥＮがＬｏｗレベル（ローアクティブ）とされ、クロック信号ＣＬＫが立ち上げられる。また、ライトイネーブル信号ＷＥＮがＬｏｗレベルのときにはライト（メモリへのデータ書き込み）、Ｈｉｇｈレベルのときにはリード（メモリからのデータ読み出し）が行われる。これらのチップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤは、アクセス元１からのメモリアクセスが実行されるときのみ、チップセレクト信号ＣＥＮ１、ライトイネーブル信号ＷＥＮ１、アドレス信号Ａ１およびライトデータＷＤ１に切り替えられ、また、それ以外のとき、例えばアクセス元２からのメモリアクセスが実行されるときには、チップセレクト信号ＣＥＮ２、ライトイネーブル信号ＷＥＮ２、アドレス信号Ａ２およびライトデータＷＤ２に切り替えられて、メモリアクセス調停回路１０からＲＡＭ３に信号出力される。なお、各々のアクセス元１およびアクセス元２からのメモリアクセスにおいて、チップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤは、十分なセットアップ時間とホールド時間が確保されているものとする。
【００３３】
メモリアクセス調停回路１０は、ＲＡＭ３に対して二つの異なるアクセス元１およびアクセス元２からのメモリアクセスが競合した場合に、一方のアクセス元１からのメモリアクセスが終了した後に他方のアクセス元２からのメモリアクセスを実行させる際に、他方のアクセス元２からのメモリアクセスをそのアクセスサイクル内で遅延させて、次のアクセス（または次のアクセスサイクル）までにＲＡＭ３に対してメモリアクセスが行われるように調停制御を行うようになっている。
【００３４】
例えば、一方のアクセス元１からのメモリアクセスが発生した場合には、他方のアクセス元２からのアクセス状況によらず、常に同じタイミングでＲＡＭ３に対してメモリアクセスを実行させる。
【００３５】
また、他方のアクセス元２からアクセスが発生した場合は、アクセス元１からのアクセス状況に応じて、ＲＡＭ３へのアクセスタイミングを制御する。例えばアクセス元１からのメモリアクセスが発生していないときには、メモリアクセスの競合がないと判断して即座に他方のアクセス元２のメモリアクセスを実行させるようにする。また、アクセス元１からのメモリアクセスが発生しているときには、メモリアクセスに競合があると判断して、そのアクセス元１からのメモリアクセスを終了させてからアクセス元２からのメモリアクセスを実行させるようにする。
【００３６】
ここで、二つのアクセス元１およびアクセス元２からのメモリアクセスがほぼ同時に発生した場合には、メモリアクセスの競合が検出される場合と、メモリアクセスの競合が検出されない場合とがある。メモリアクセスの競合が検出された場合には、上述したように、アクセス元２からのメモリアクセスの実行をアクセス元１からのメモリアクセスの終了後に遅らせる。一方、メモリアクセスの競合が検出されなかった場合には、アクセス元２からのアクセスを先に実行させ、その後に、アクセス元１からのアクセスを実行させる。したがって、アクセス元１からのメモリアクセスについては、アクセス元２からのメモリアクセスと衝突しないように、常に一定時間以上の間隔をおいて実行されるように調停制御する。
【００３７】
図２は、図１のメモリアクセス調停回路の具体的構成例を示す回路図である。なお、図２において、枠線で囲まれた信号は、メモリアクセス調停回路１０への入出力信号であり、その他はメモリアクセス調停回路１０の内部信号である。また、アドレス信号Ａ、ライトデータＷＤ、リードデータＲＤは、複数ビット分だけ、同様の回路が必要である。さらに、全てのフリップフロップＦＦに供給されるシステムリセット信号は、ここでは省略している。
【００３８】
図２において、このメモリアクセス調停回路１０は、クロック信号・タイミング信号生成部１１、アクセス競合検出部１２、ＲＡＭ制御信号生成部１３、リードデータ保持部１４およびリセット信号生成部１５を有している。
【００３９】
クロック信号・タイミング信号生成部１１では、二つのアクセス元１およびアクセス元２の少なくともいずれかからメモリアクセスが発生したときに、メモリアクセス調停回路１０の内部クロック信号、タイミング制御信号および、ＲＡＭ３に出力するためのクロック信号がそれぞれ生成される。
【００４０】
アクセス競合検出部１２では、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとの競合の有無が検出される。即ち、アクセス競合検出部１２では、二つのアクセス元１、２からのメモリアクセスの競合を検出する。
【００４１】
ＲＡＭ制御信号生成部１３では、ＲＡＭ３に対するチップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤなどが生成される。
【００４２】
リードデータ保持部１４では、ＲＡＭ３から出力されたリードデータＲＤが取り込まれるようになっている。
【００４３】
リセット信号生成部１５では、メモリアクセス完了後に、アクセス競合検出部１２を構成するフリップフロップＦＦを初期化するためのリセット信号が生成される。
【００４４】
これらのクロック信号・タイミング信号生成部１１、アクセス競合検出部１２、ＲＡＭ制御信号生成部１３、リードデータ保持部１４およびリセット信号生成部１５について更に具体的に説明する。
【００４５】
クロック信号・タイミング信号生成部１１は、遅延素子ＤＬＹ１〜ＤＬＹ７と、Ｄ型フリップフロップＦＦ１〜ＦＦ６と、インバータ素子ＩＮＶ１〜ＩＮＶ１２と、ＥＸＯＲ素子ＥＸＯＲ１〜ＥＸＯＲ６と、ＯＲ素子ＯＲ１およびＯＲ２と、セレクタ素子ＳＥＬ１〜ＳＥＬ５とを組み合わせて構成して、メモリアクセス時に、内部クロック信号、タイミング制御信号および、ＲＡＭ３に出力するためのクロック信号がそれぞれ生成される。各遅延素子ＤＬＹ１〜ＤＬＹ７は、クロック信号・タイミング信号生成部１１の回路全体として、各アクセス元１、２からのメモリアクセスのセットアップ時間とホールド時間が確保されるように遅延幅が設定されている。
【００４６】
セレクタ素子ＳＥＬ１は、アクセス元１からのチップセレクト信号ＣＥＮ１に応じて制御され、フリップフロップＦＦ１からの出力信号ＴＧＬ０またはその出力信号ＴＧＬ０をインバータ素子ＩＮＶ１により反転させた信号が選択されてフリップフロップＦＦ１に出力される。セレクタ素子ＳＥＬ１からの出力信号はフリップフロップＦＦ１のデータ入力端子Ｄに供給され、アクセス元１からのクロック信号ＣＬＫ１のタイミングに応じて出力端子Ｑから出力される。フリップフロップＦＦ１からの出力信号ＴＧＬ０は遅延素子ＤＬＹ１、ＥＸＯＲ素子ＥＸＯＲ１の一方の入力およびインバータ素子ＩＮＶ１に供給され、遅延素子ＤＬＹ１ではＴＧＬ０が３０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ１の他方の入力に供給される。ＥＸＯＲ素子ＥＸＯＲ１では、フリップフロップＦＦ１からの出力信号ＴＧＬ０と遅延素子ＤＬＹ１によりＴＧＬ０が３０ｎｓ遅延された出力信号とがＥＸＯＲ演算される。ＥＸＯＲ素子ＥＸＯＲ１からの出力信号はインバータ素子ＩＮＶ２により反転されて内部クロック信号ＣＬＫ１０が生成される。
【００４７】
また、この内部クロック信号ＣＬＫ１０は、フリップフロップＦＦ２のクロック入力端子ＣＬＫに供給される。フリップフロップＦＦ２のデータ入力端子Ｄには出力端子Ｑからの信号ＴＧＬ１をインバータ素子ＩＮＶ１により反転させた信号が供給され、内部クロック信号ＣＬＫ１０のタイミングに応じて出力端子Ｑから出力される。フリップフロップＦＦ２からの出力信号ＴＧＬ１は遅延素子ＤＬＹ２、ＥＸＯＲ素子ＥＸＯＲ２の一方の入力およびインバータ素子ＩＮＶ３に供給され、遅延素子ＤＬＹ２ではＴＧＬ１が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ２の他方の入力端に供給される。ＥＸＯＲ素子ＥＸＯＲ２では、フリップフロップＦＦ２からの出力信号ＴＧＬ１と、遅延素子ＤＬＹ２によりＴＧＬ１が２０ｎｓ遅延された出力信号とがＥＸＯＲ演算される。ＥＸＯＲ素子ＥＸＯＲ２からの出力信号はインバータ素子ＩＮＶ４により反転されて内部クロック信号ＣＬＫ１１が生成される、
さらに、この内部クロック信号ＣＬＫ１１は、フリップフロップＦＦ３のクロック入力端子ＣＬＫに供給される。フリップフロップＦＦ３のデータ入力端子Ｄには出力端子Ｑからの信号ＴＧＬ２をインバータ素子ＩＮＶ５により反転させた信号が供給され、内部クロック信号ＣＬＫ１１のタイミングに応じて出力端子Ｑから出力される。フリップフロップＦＦ３からの出力信号ＴＧＬ２は遅延素子ＤＬＹ３、ＥＸＯＲ素子ＥＸＯＲ３の一方の入力およびインバータ素子ＩＮＶ５に供給され、遅延素子ＤＬＹ３では出力信号ＴＧＬ２が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ３の他方の入力端に供給される。ＥＸＯＲ素子ＥＸＯＲ３では、フリップフロップＦＦ３からの出力信号ＴＧＬ２と、遅延素子ＤＬＹ３により出力信号ＴＧＬ２が２０ｎｓ遅延された信号とがＥＸＯＲ演算される。ＥＸＯＲ素子ＥＸＯＲ３からの出力信号ＣＬＫ＿ＴＭＰ１はインバータ素子ＩＮＶ６により反転されて内部クロック信号ＣＬＫ１２が生成される。
【００４８】
さらに、この内部クロック信号ＣＬＫ１２は、フリップフロップＦＦ４のクロック入力端子ＣＬＫに供給される。フリップフロップＦＦ４のデータ入力端子Ｄには出力端子Ｑからの出力信号ＴＧＬ３をインバータ素子ＩＮＶ７により反転させた信号が供給され、内部クロック信号ＣＬＫ１２のタイミングに応じて出力端子Ｑから出力される。フリップフロップＦＦ４からの出力信号ＴＧＬ３は遅延素子ＤＬＹ４、ＥＸＯＲ素子ＥＸＯＲ４の一方の入力端およびインバータ素子ＩＮＶ７に供給され、遅延素子ＤＬＹ４では出力信号ＴＧＬ３が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ４の他方の入力に供給される。ＥＸＯＲ素子ＥＸＯＲ４では、フリップフロップＦＦ４からの出力信号ＴＧＬ３と、遅延素子ＤＬＹ４によりＴＧＬ３が２０ｎｓ遅延された信号とがＥＸＯＲ演算される。ＥＸＯＲ素子ＥＸＯＲ４からの出力信号はインバータ素子ＩＮＶ８により反転されて内部クロック信号ＣＬＫ１３が生成される。
【００４９】
ＯＲ素子ＯＲ１は、アクセス元２からのクロック信号ＣＬＫ２およびチップセレクト信号ＣＥＮ２が供給されて内部クロック信号ＣＬＫ２０が出力され、遅延素子ＤＬＹ５に供給される。この遅延素子ＤＬＹ５では内部クロック信号ＣＬＫ２０が１５ｎｓ遅延されて内部クロック信号ＣＬＫ２＿ＤＬＹが生成される。
【００５０】
セレクタ素子ＳＥＬ２は、アクセス元１からのライトイネーブル信号ＷＥＮ１に応じて制御され、ＥＸＯＲ素子３からの出力信号ＣＬＫ＿ＴＭＰ１をインバータ素子ＩＮＶ９により反転させた信号または”１”が選択されて内部クロック信号ＣＬＫ１＿Ｂとして出力される。
【００５１】
セレクタ素子ＳＥＬ３は、詳細に後述するアクセス競合検出部１２からのアクセス競合検出信号ＡＣＣ＿ＣＯＬ＿ＴＭＰに応じて制御され、フリップフロップＦＦ５からの出力信号または、その信号をインバータ素子ＩＮＶ１１により反転させた信号が選択されて信号出力される。セレクタ素子ＳＥＬ３からの出力信号は、フリップフロップＦＦ５のデータ入力端子Ｄに供給されて、遅延素子ＤＬＹ５からの内部クロック信号ＣＬＫ２＿ＤＬＹのタイミングに応じて、フリップフロップＦＦ５の出力端子Ｑから出力される。フリップフロップＦＦ５からの出力信号は、遅延素子ＤＬＹ６、ＥＸＯＲ素子ＥＸＯＲ５の一方の入力端およびインバータ素子ＩＮＶ１１に供給され、遅延素子ＤＬＹ５ではその出力信号が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ５の他方の入力端に供給される。ＥＸＯＲ素子ＥＸＯＲ５では、フリップフロップＦＦ５からの出力信号と、その出力信号を遅延素子ＤＬＹ６により２０ｎｓ遅延させた信号とがＥＸＯＲ演算されて信号出力される。
【００５２】
また、セレクタ素子ＳＥＬ４は、後述するアクセス競合検出部１２からのアクセス競合検出信号ＡＣＣ＿ＣＯＬに応じて制御され、フリップフロップＦＦ６からの出力信号または、その出力信号をインバータ素子ＩＮＶ１２により反転させた信号が選択されて信号出力される。セレクタ素子ＳＥＬ４からの出力信号はフリップフロップＦＦ６のデータ入力端子Ｄに供給されて、インバータ素子ＩＮＶ８からの内部クロック信号ＣＬＫ１３のタイミングに応じて出力端子Ｑから信号出力される。フリップフロップＦＦ６からの出力信号は、遅延素子ＤＬＹ７、ＥＸＯＲ素子ＥＸＯＲ６の一方の入力端およびインバータ素子ＩＮＶ１２に供給され、遅延素子ＤＬＹ６ではその出力信号が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ６の他方の入力端に供給される。ＥＸＯＲ素子ＥＸＯＲ６では、フリップフロップＦＦ６からの出力信号と、その出力信号を遅延素子ＤＬＹ７により２０ｎｓ遅延させた信号とがＥＸＯＲ演算されて信号出力される。
【００５３】
これらのＥＸＯＲ素子ＥＸＯＲ５およびＥＸＯＲ６からの各出力信号はＯＲ素子２の各入力端にそれぞれ供給される。セレクタ素子ＳＥＬ５は、後述するＲＡＭ制御信号生成部１３からの信号ＡＣＣ１＿ＯＵＴに応じて制御され、ＥＸＯＲ素子ＥＸＯＲ３からの出力信号ＣＬＫ＿ＴＭＰ１またはＯＲ素子ＯＲ２からの出力信号ＣＬＫ＿ＴＭＰ２が選択されてクロック信号ＣＬＫとして信号出力されて、ＲＡＭ３に供給される。
【００５４】
次に、アクセス競合検出部１２は、ＥＸＯＲ素子ＥＸＯＲ７と、Ｄ型フリップフロップＦＦ７およびＦＦ８とを組み合わせて構成されて、二つのアクセス元１、２からのメモリアクセスの競合を検出する。
【００５５】
ＥＸＯＲ素子ＥＸＯＲ７は、クロック信号・タイミング信号生成部１１からの信号ＴＧＬ０およびＴＧＬ３が供給され、これらがＥＸＯＲ演算されてＡＣＣ１＿ＶＬＤが生成される。ＥＸＯＲ素子ＥＸＯＲ７からの出力信号ＡＣＣ１＿ＶＬＤは、フリップフロップＦＦ７のデータ入力端子Ｄに供給され、クロック信号・タイミング信号生成部１１からの内部クロック信号ＣＬＫ２０のタイミングに応じて出力端子ＱからＡＣＣ＿ＣＯＬ＿ＴＭＰとして信号出力される。このフリップフロップＦＦ７からの出力信号ＡＣＣ＿ＣＯＬ＿ＴＭＰは、次段のフリップフロップＦＦ８のデータ入力端子Ｄに供給されて、クロック信号・タイミング信号生成部１１からの内部クロック信号ＣＬＫ２＿ＤＬＹのタイミングに応じて、フリップフロップＦＦ８の出力端子Ｑからその出力信号としてアクセス競合検出信号ＡＣＣ＿ＣＯＬが出力される。これらのフリップフロップＦＦ７およびＦＦ８は、リセット端子ＲＳＴに、後述するリセット信号生成部１５から、フリップフロップＦＦ７およびＦＦ８の各リセット端子ＲＳＴにそれぞれ供給されるリセット信号ＣＯＬ＿ＲＳＴに応じてリセットされる。
【００５６】
次に、ＲＡＭ制御信号生成部１３は、ＥＸＯＲ素子ＥＸＯＲ８とセレクタ素子ＳＥＬ６とを組み合わせて構成されて、ＲＡＭ３に対するチップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤなどが出力される。
【００５７】
ＥＸＯＲ素子ＥＸＯＲ８は、クロック信号・タイミング信号生成部１１からの信号ＴＧＬ１およびＴＧＬ３が供給され、これらがＥＸＯＲ演算されて出力信号ＡＣＣ１＿ＯＵＴが生成出力される。セレクタ素子ＳＥＬ６は、ＥＸＯＲ素子ＥＸＯＲ８からの出力信号ＡＣＣ１＿ＯＵＴに応じて制御され、アクセス元１からのチップセレクト信号ＣＥＮ１、ライトイネーブル信号ＷＥＮ１、アドレス信号Ａ１およびライトデータＷＤ１、または、アクセス元２からのチップセレクト信号ＣＥＮ２、ライトイネーブル信号ＷＥＮ２、アドレス信号Ａ２およびライトデータＷＤ２が選択されて、チップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号ＡおよびライトデータＷＤとしてＲＡＭ３に供給される。
【００５８】
次に、リードデータ保持部１４は、セレクタ素子ＳＥＬ７およびＳＥＬ８とＤ型フリップフロップＦＦ９およびＦＦ１０とを組み合わせて構成して、ＲＡＭ３から出力されたリードデータＲＤが取り込まれる。
【００５９】
セレクタ素子ＳＥＬ７は、アクセス元１からのライトイネーブル信号ＷＥＮ１に応じて制御され、フリップフロップＦＦ９からの出力信号またはＲＡＭ３からのリードデータＲＤが選択されて信号出力される。このセレクタ素子ＳＥＬ７からの出力信号は、フリップフロップＦＦ９のデータ入力端子Ｄに供給され、クロック信号・タイミング信号生成部１１からの内部クロック信号ＣＬＫ１＿Ｂのタイミングに応じてフリップフロップＦＦ９の出力端子Ｑからその出力信号が信号出力され、アクセス元１にその出力信号としてライトデータＲＤ１が供給される。
【００６０】
また、セレクタ素子ＳＥＬ８は、アクセス元２からのライトイネーブル信号ＷＥＮ２に応じて制御され、フリップフロップＦＦ１０からの出力信号またはＲＡＭ３からのリードデータＲＤが選択されて信号出力される。このセレクタ素子ＳＥＬ８からの出力信号は、フリップフロップＦＦ１０のデータ入力端子Ｄに供給され、クロック信号・タイミング信号生成部１１からの内部クロック信号ＣＬＫ２＿Ｂのタイミングに応じてフリップフロップＦＦ１０の出力端子Ｑからその出力信号が出力され、アクセス元２にその出力信号としてライトデータＲＤ２が供給される。
【００６１】
次に、リセット信号生成部１５は、インバータ素子ＩＮＶ１３およびＩＮＶ１４と、セレクタ素子ＳＥＬ９と、Ｄ型フリップフロップＦＦ１１と、遅延素子ＤＬＹ８と、ＥＸＯＲ素子ＥＸＯＲ９とを組み合わせて構成しており、メモリアクセス完了後に、アクセス競合検出部１２を構成するフリップフロップＦＦ７およびＦＦ８をそれぞれ初期化するためのリセット信号ＣＯＬ＿ＲＳＴを生成する。
【００６２】
セレクタ素子ＳＥＬ９は、アクセス競合検出部１２からのアクセス競合検出信号ＡＣＣ＿ＣＯＬに応じて制御され、フリップフロップＦＦ１１からの出力信号または、その出力信号をインバータ素子ＩＮＶ１３により反転させた信号が選択されて信号出力される。このセレクタ素子ＳＥＬ９からの出力信号はフリップフロップＦＦ１１のデータ入力端子Ｄに供給され、クロック信号・タイミング信号生成部１１からの内部クロック信号ＣＬＫ２＿Ｂのタイミングに応じてフリップフロップＦＦ１１の出力端子Ｑからその出力信号が出力される。フリップフロップＦＦ１１からの出力信号は遅延素子ＤＬＹ８、ＥＸＯＲ素子ＥＸＯＲ９の一方の入力端およびインバータ素子ＩＮＶ１３に供給され、遅延素子ＤＬＹ８では、その出力信号が２０ｎｓ遅延されてＥＸＯＲ素子ＥＸＯＲ９の他方の入力端に供給される。ＥＸＯＲ素子ＥＸＯＲ９では、フリップフロップＦＦ１１からの出力信号とその出力信号を遅延素子ＤＬＹ８により２０ｎｓ遅延させた信号がＥＸＯＲ演算されて出力される。このＥＸＯＲ素子ＥＸＯＲ９からの出力信号は、インバータ素子ＩＮＶ１４により反転されて、アクセス競合検出部１２のフリップフロップＦＦ７およびＦＦ８のＲＳＴ端子にそれぞれ供給されてそのフリップフロップＦＦ７およびＦＦ８をリセットするためのリセット信号ＣＯＬ＿ＲＳＴを生成する。
【００６３】
以下に、ＲＡＭ３に対するアクセス元１からのメモリアクセスと、ＲＡＭ３に対するアクセス元２からのメモリアクセスとを、メモリアクセス調停回路１０により調停制御する方法について、図３〜図６に示すメモリアクセス調停回路１０の内部信号とＲＡＭ３への出力信号の変化に基づいて説明する。なお、図３〜図６には、アクセス元１の入出力信号ＣＬＫ１およびＲＤ１、アクセス元２の入出力信号ＣＬＫ２およびＲＤ２と、メモリアクセス調停回路１０の内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂと、ＲＡＭ３の入出力信号として、クロック信号ＣＬＫ、チップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤとが示されている。図３〜図６に示されている内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂには、図２に下線を付けてその回路上の出力箇所を示している。また、内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂのうち、内部クロック信号は、ＣＬＫ２＿ＤＬＹ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂであり、タイミング制御信号は、ＡＣＣ１＿ＶＬＤおよびＡＣＣ＿ＣＯＬである。
【００６４】
図３は、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとが競合しない場合について、メモリアクセス調停回路１０による調停方法を説明するためのタイミングチャートである。
【００６５】
図３において、アクセス元１では、チップセレクト信号ＣＥＮ１のＬｏｗレベルにおいてクロック信号ＣＬＫ１の立ち上がりがアクセス発生とされる。メモリアクセス調停回路１０では、このクロック信号ＣＬＫ１の立ち上がりにおいて、内部信号ＡＣＣ１＿ＶＬＤがＨｉｇｈレベルに立ち上げられる。内部信号ＡＣＣ１＿ＶＬＤは、アクセス元１からのアクセス状態を表す信号であり、これがＨｉｇｈレベルのときにはアクセス元１からのアクセス中であることを示している。アクセス元１からのメモリアクセスが終了すると、内部信号ＡＣＣ１＿ＶＬＤはＬｏｗレベルに下げられる。
【００６６】
メモリアクセス調停回路１０からは、ＡＣＣ１＿ＶＬＤがＨｉｇｈレベルである期間にＲＡＭ３に対するメモリアクセスが行われる。図３に示すタイミングで、アクセス元１からのチップセレクト信号ＣＥＮ１、ライトイネーブル信号ＷＥＮ１、アドレス信号Ａ１、ライトデータＷＤ１が、チップセレクト信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤにＲＡＭ３への出力信号として切り替えられ、その後、クロック信号ＣＬＫが立ち上がって変化する。
【００６７】
ライトイネーブル信号ＷＥＮ１がＨｉｇｈレベルのときには、リードアクセスとなり、ＲＡＭ３から出力されたリードデータＲＤが内部クロック信号ＣＬＫ１＿Ｂによりメモリアクセス調停回路１０のリードデータ保持部１４に取り込まれ、ＲＤ１としてアクセス元１に出力される。内部クロック信号ＣＬＫ１＿Ｂはリードのときにのみ用い、その位相はクロック信号ＣＬＫの逆相である。アクセス元１およびアクセス元２のうち、ここではアクセス元１について、図３に示すアクセスが競合しない場合と、後述する図４に示すアクセスが競合する場合とのいずれの場合でも、同じタイミングでＲＡＭ３に対してメモリアクセスが行われる。
【００６８】
アクセス元２についても、アクセス元１の場合と同様に、チップセレクト信号ＣＥＮ２のＬｏｗレベルにおいてクロック信号ＣＬＫ２の立ち上がりがアクセス発生とされる。メモリアクセス調停回路１０では、このクロック信号ＣＬＫ２の立ち上がりにおいて、アクセス元１のメモリアクセス状態が確認される。アクセス元１のメモリアクセス状態を示す信号は、内部信号ＡＣＣ１＿ＶＬＤであり、メモリアクセス調停回路１０のアクセス競合検出部１２では、クロック信号ＣＬＫ２の立ち上がり時における内部信号ＡＣＣ１＿ＶＬＤがラッチされる。ただし、内部信号ＡＣＣ１＿ＶＬＤとクロック信号ＣＬＫ２は非同期であるため、内部信号ＡＣＣ１＿ＶＬＤは、クロック信号ＣＬＫ２を１５ｎｓ遅延させた内部信号ＣＬＫ２＿ＤＬＹにより再度ラッチされる。ラッチされた信号ＡＣＣ＿ＣＯＬは、アクセス競合を検出する信号となる。
【００６９】
アクセス元２については、図３に示すように、信号ＡＣＣ＿ＣＯＬがＨｉｇｈレベルにならない場合に、アクセス元１とのアクセス競合は発生していないと判断され、メモリアクセス調停回路１０からＲＡＭ３に対して最も早い期間で即座にアクセス元２のメモリアクセスが行われる。
【００７０】
図４は、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとが競合する場合について、メモリアクセス調停回路１０による調停方法を説明するためのタイミングチャートである。
【００７１】
図４に示すように、内部信号ＡＣＣ＿ＣＯＬがＨｉｇｈレベルになる場合には、アクセス元１およびアクセス元２の各メモリアクセスの競合が発生していると判断され、メモリアクセス調停回路１０では、アクセス元１およびアクセス元２の一方のアクセス元、ここではアクセス元１からのメモリアクセスが終了してから、他方のアクセス元であるアクセス元２からのメモリアクセスが行われる。
【００７２】
図３および図４に示すタイミングで、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤにＲＡＭ３への出力信号が切り替えられ、クロック信号ＣＬＫが立ち上がって変化する。ライトイネーブル信号ＷＥＮ２がＨｉｇｈレベルのときにはリードアクセスとなり、ＲＡＭ３から出力されたリードデータＲＤが内部クロック信号ＣＬＫ２＿Ｂによりメモリアクセス調停回路１０のリードデータ保持部１４に取り込まれ、リードデータＲＤ２としてアクセス元２に出力される。ＣＬＫ１＿Ｂもリードのときにのみ用い、その位相はクロック信号ＣＬＫの逆相である。なお、内部信号ＡＣＣ＿ＣＯＬは、ＣＬＫ２＿Ｂの立ち上がりにおいてＬｏｗレベルにリセットされる。
【００７３】
図３および図４に示すタイミングチャートにおいて、内部信号ＡＣＣ１＿ＶＬＤのＨｉｇｈ幅（７０ｎｓ）、クロック信号ＣＬＫ２と内部クロック信号ＣＬＫ２＿ＤＬＹ間の遅延量（１５ｎｓ）、クロック信号ＣＬＫのパルス幅（２０ｎｓ）などの時間幅が各々設定されている。これは、メモリアクセス調停回路１０からＲＡＭ３に対するメモリアクセスのセットアップ時間とホールド時間を確保するためである。
【００７４】
アクセス元１からのアクセスと、アクセス元２からのアクセスとが時間的に十分に離れていれば問題は生じないが、アクセス元１からのアクセスと、アクセス元２からのアクセスとが時間的に十分に離れていない場合や、ほぼ同時である場合でも、セットアップ時間とホールド時間の制約を満たせるように、遅延量を設定する必要がある。ここでは、メモリアクセス調停回路１０のアクセス競合検出部１２によりアクセスの競合が検出されるときと、検出されないときについて、セットアップ時間とホールド時間を確認する。
【００７５】
図４に示すように、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとに競合が検出されるときには、各々のメモリアクセスにおいて、セットアップ時間とホールド時間をそれぞれ２０ｎｓ確保することができる。この場合、セットアップ時間とホールド時間とを合計した期間は、メモリ入出力信号の矢印で示す（アクセス元１）の期間４０ｎｓｅｃであり、それに続く（アクセス元２）の期間であるが、セットアップ時間は、メモリ入出力信号の（アクセス元１）または（アクセス元２）の開始からクロック信号ＣＬＫの立ち上がりまでの期間であり、ホールド時間は、クロック信号ＣＬＫの立ち上がりから（アクセス元１）または（アクセス元２）の終了までの期間である。
【００７６】
一方、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとに競合が検出されないときには、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとの時間間隔によりセットアップ時間やホールド時間が変動する。図３に示すように、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスが時間的に十分に離れていれば（所定の期間だけ離れていれば）、問題は生じない。よって、確認が必要な場合は、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスがほぼ同時に発生する場合と、アクセス元１からのメモリアクセス終了とほぼ同時にアクセス元２からのメモリアクセスが発生する場合である。
【００７７】
まず、前者のアクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスがほぼ同時に発生する場合のタイミングチャートについて、図５に示している。
【００７８】
図５は、アクセス元から１のメモリアクセスと、アクセス元２からのメモリアクセスとがほぼ同時に発生し、両メモリアクセスが競合しない場合について、メモリアクセス調停回路１０による調停方法を説明するためのタイミングチャートである。
【００７９】
この場合、アクセス元１からのメモリアクセスは一定時間の間隔をおいて実行されるため、アクセス元２からのメモリアクセス後にアクセス元１からのメモリアクセスが実行されることになる。それぞれのメモリアクセスのセットアップ時間とホールド時間は、１５ｎｓ〜２０ｎｓとなる。
【００８０】
次に、後者のアクセス元１からのメモリアクセス終了とほぼ同時にアクセス元２からのメモリアクセスが発生する場合のタイミングチャートについて、図６に示している。
【００８１】
図６は、アクセス元１からのメモリアクセス終了とほぼ同時にアクセス元２からのメモリアクセスが発生し、両メモリアクセスが競合しない場合について、メモリアクセス調停回路１０による調停方法を説明するためのタイミングチャートである。
【００８２】
この場合、アクセス元１からのメモリアクセス後にアクセス元２からのメモリアクセスが実行されることになる。それぞれのメモリアクセスのセットアップ時間とホールド時間は、１５ｎｓ〜２０ｎｓとなる。
【００８３】
それ以外の場合については、それぞれのメモリアクセスの間隔が広がるため、セットアップ時間とホールド時間は、図５および図６の場合以上に確保される。
【００８４】
さらに、各々のメモリアクセスに要する最大の時間（アクセス元からアクセスが発生してＲＡＭ３のリードデータＲＤを取り込むまでの時間）は、アクセス元１からのメモリアクセスは７０ｎｓの期間かかり、アクセス元２からのメモリアクセスは１１０ｎｓ（アクセス元１からのメモリアクセス７０ｎｓ＋アクセス元１のメモリアクセスが終了してからアクセス元２のメモリアクセスが終了する時間４０ｎｓ）の期間かかる。実際には、遅延素子の誤差を考慮して、アクセス元１とアクセス元２のアクセスサイクルは、それぞれ、１００ｎｓ以上および１５０ｎｓ以上であると想定する。アクセス元１からのアクセスをそのアクセス元１のアクセスサイクル内に収まるように遅延させて、次のアクセス元２のアクセスまでにＲＡＭ３に対してアクセスが行われ、また、アクセス元２からのアクセスを、アクセス元１のアクセスサイクルに連続するアクセス元２のアクセスサイクル内に収まるように遅延させて、次のアクセス元１のアクセスまでにＲＡＭ３に対してアクセスが行われる。
【００８５】
以上により、本実施形態のメモリアクセス調停回路１０では、ＲＡＭ３に対して二つの異なるアクセス元１およびアクセス元２から独立してメモリアクセス可能とするために、アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとが競合した場合に、一方のアクセス元１（またはアクセス元２）のメモリアクセスが終了した後に他方のアクセス元２（またはアクセス元１）からのメモリアクセスを実行させる際に、他方のアクセス元からのアクセスをそのアクセスサイクル内で遅延させて、次のメモリアクセスまでにＲＡＭ３に対してメモリアクセスが行われるように調停処理を行う。
【００８６】
クロック信号・タイミング信号生成部１１は、メモリアクセスが発生したときのみ、内部クロック信号、タイミング制御信号およびＲＡＭ３に対するクロック信号を生成し、アクセス発生時にのみメモリアクセス調停回路１０が動作し、メモリアクセスが発生しないときにはメモリアクセス調停回路１０が動作しないため、消費電力を低減することができる。
【００８７】
なお、上記実施形態では、特に説明しなかったが、シングルポートＲＡＭ回路に対して二つのアクセス元から独立してアクセス可能とするために、二つのアクセス元からのアクセスが競合した場合に、一方のアクセス元からのアクセスが終了した後に他方のアクセス元からのアクセスを実行させるように調停するメモリアクセス調停回路であって、他方のアクセス元からのアクセスをそのアクセスサイクル内で遅延させて、次のアクセスまでにシングルポートＲＡＭ回路に対してアクセスが行われるように、内部クロック信号、タイミング制御信号および、シングルポートＲＡＭ回路に出力するためのクロック信号をそれぞれ生成するクロック信号・タイミング信号生成部を有していれば、デュアルポートＲＡＭ回路の場合に比べて占有回路面積および消費電力を低減できると共に、シングルポートＲＡＭ回路に組み合わせて用いる従来のメモリアクセス調停回路の場合に、シングルポートＲＡＭ回路に対して二つのアクセス元から各々独立してメモリアクセス可能で、シングルポートＲＡＭ回路に対してメモリアクセスが競合した場合に、一方のアクセス元からのメモリアクセスを、従来のように、１クロック周期だけ遅延させて次のアクセスサイクルまで待たせる必要がなく、シングルポートＲＡＭ回路に組み合わせて用いる従来のメモリアクセス調停回路と比べて消費電力を低減させることができる本発明の目的を達成することができる。
【００８８】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【００８９】
本発明は、シングルポートＲＡＭ回路（Ｓｉｎｇｌｅ  Ｐｏｒｔ  ＲＡＭ回路）に対して二つの異なるアクセス元から独立してメモリアクセス可能とするためのメモリアクセス調停回路の分野において、デュアルポートＲＡＭ回路（Ｄｕａｌ  Ｐｏｒｔ  ＲＡＭ回路）を使用しないため、占有回路面積および消費電力が低減される。また、二つの異なるアクセス元から各々独立してアクセス可能であり、同時にアクセスが発生した場合でも、シングルポートＲＡＭ回路に対してアクセスが競合することはない。このとき、シングルポートＲＡＭ回路に対するアクセスは、そのアクセスサイクル内で実行されるため、次のアクセスサイクルまで待つ必要がない。さらに、常時動作させるクロック信号が供給されず、アクセスがない場合にはメモリアクセス調停回路が動作しないため、消費電力を低減させることができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施形態に係るメモリアクセス調停回路の各アクセス元およびシングルポートＲＡＭ回路への接続例を模式的に示すブロック図である。
【図２】図１のメモリアクセス調停回路の具体的構成例を模式的に示す回路図である。
【図３】アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとが競合しない場合について、アクセス元１の入出力信号として、クロック信号ＣＬＫ１およびリードデータＲＤ１、アクセス元２の入出力信号として、クロック信号ＣＬＫ２およびリードデータＲＤ２と、メモリアクセス調停回路１０の内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂと、ＲＡＭ３の入出力信号として、クロック信号ＣＬＫ、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤの各信号波形を模式的に示すタイミングチャートである。
【図４】アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとが競合する場合について、アクセス元１の入出力信号として、クロック信号ＣＬＫ１およびリードデータＲＤ１、アクセス元２の入出力信号として、クロック信号ＣＬＫ２およびリードデータＲＤ２と、メモリアクセス調停回路１０の内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂと、ＲＡＭ３の入出力信号として、クロック信号ＣＬＫ、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤの各信号波形を模式的に示すタイミングチャートである。
【図５】アクセス元１からのメモリアクセスと、アクセス元２からのメモリアクセスとがほぼ同時に発生し、かつ両メモリアクセスが競合しない場合について、アクセス元１の入出力信号として、クロック信号ＣＬＫ１およびリードデータＲＤ１、アクセス元２の入出力信号として、クロック信号ＣＬＫ２およびリードデータＲＤ２と、メモリアクセス調停回路１０の内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂと、ＲＡＭ３の入出力信号として、クロック信号ＣＬＫ、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤの各信号波形を模式的に示すタイミングチャートである。
【図６】アクセス元１からのメモリアクセス終了とほぼ同時にアクセス元２からのメモリアクセスが発生し、かつ両メモリアクセスが競合しない場合について、アクセス元１の入出力信号として、クロック信号ＣＬＫ１およびリードデータＲＤ１、アクセス元２の入出力信号として、クロック信号ＣＬＫ２およびリードデータＲＤ２と、メモリアクセス調停回路１０の内部信号ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿ＢおよびＣＬＫ２＿Ｂと、ＲＡＭ３の入出力信号として、クロック信号ＣＬＫ、チップイネーブル信号ＣＥＮ、ライトイネーブル信号ＷＥＮ、アドレス信号Ａ、ライトデータＷＤおよびリードデータＲＤの各信号波形を模式的に示すタイミングチャートである。
【符号の説明】
【００９１】
１、２  アクセス元
３  ＲＡＭ
１０  メモリアクセス調停回路
１１  クロック信号・タイミング信号生成部
１２  アクセス競合検出部
１３  ＲＡＭ制御信号生成部
１４  リードデータ保持部
１５  リセット信号生成部
ＣＬＫ、ＣＬＫ１、ＣＬＫ２  クロック信号
ＣＥＮ、ＣＥＮ１、ＣＥＮ２  チップセレクト信号
ＷＥＮ、ＷＥＮ１、ＷＥＮ２  ライトイネーブル信号
Ａ、Ａ１、Ａ２  アドレス信号
ＷＤ、ＷＤ１、ＷＤ２  ライトデータ
ＲＤ、ＲＤ１、ＲＤ２  リードデータ
ＡＣＣ１＿ＶＬＤ、ＣＬＫ２＿ＤＬＹ、ＡＣＣ＿ＣＯＬ、ＣＬＫ１＿Ｂ、ＣＬＫ２＿Ｂ  調停回路内部信号
【図１】
2009104486.tif 000003
【図２】
2009104486.tif 000004
【図３】
2009104486.tif 000005
【図４】
2009104486.tif 000006
【図５】
2009104486.tif 000007
【図６】
2009104486.tif 000008