(57)【特許請求の範囲】
【請求項１】
データ保持のためのリフレッシュを必要とするメモリと、
このメモリを共有する複数の処理手段と、
前記メモリのリフレッシュを周期的に要求するリフレッシュタイマ手段と、
このリフレッシュタイマ手段がリフレッシュを要求するタイミングで前記複数の処理手段のいずれかが前記メモリをアクセスするためのバス要求信号の出力あるいはバスの使用を許可するバス許可信号の受信を行っているかを判別するリフレッシュ要求時信号競合有無判別手段と、
このリフレッシュ要求時信号競合有無判別手段でバス要求信号の出力のみが行われていると判別されたときあるいはバス要求信号とバス許可信号の双方が出力あるいは受信されていないと判別されたとき前記リフレッシュタイマ手段による前記メモリのリフレッシュを直ちに開始させる一方、少なくともバス許可信号が出力されていると判別されたときこのバス許可信号の出力の終了を待って直ちに前記リフレッシュタイマ手段による前記メモリのリフレッシュを開始させるバス調停手段と、
このバス調停手段によって前記複数の処理手段のうちでバスの使用を許可するとされた処理手段から送られてきた前記メモリのアドレス等のアクセス用データを選択する第１の選択手段と、
前記リフレッシュタイマ手段の指示によりリフレッシュ用データを発生させるリフレッシュ用データ発生手段と、
前記調停手段から送られてくる制御信号に基づいて第１の選択手段によって選択された前記アクセス用データと前記リフレッシュ用データを択一的に選択して前記メモリに供給する第２の選択手段
とを具備することを特徴とするメモリ制御回路。
【請求項２】
前記複数の処理手段は、ＣＰＵあるいはＤＳＰあるいはこれらの双方によって構成されていることを特徴とする請求項１記載のメモリ制御回路。
【請求項３】
メモリを共有する複数の処理手段からそれぞれメモリのアクセスを行おうとするとき送られてくるバス要求信号をバス調停手段で受信するバス要求信号受信ステップと、
前記メモリをリフレッシュするリフレッシュ要求信号がリフレッシュタイマ手段から周期的に出力されるのをバス調停手段で受信するリフレッシュ要求信号受信ステップと、
前記メモリを共有する複数の処理手段のいずれかに前記メモリをアクセスしてバスの使用を許可するバス許可信号が出力されているのをバス調停手段で判別するバス許可信号出力有無判別ステップと、
前記リフレッシュタイマ手段がリフレッシュを要求するタイミングで前記複数の処理手段の中から前記バス要求信号の受信およびバス許可信号の出力が行われているかをバス調停手段で判別するリフレッシュ要求時信号競合有無判別ステップと、
このリフレッシュ要求時信号競合有無判別ステップでバス要求信号の受信のみが行われていると判別されたときあるいはバス要求信号の受信とバス許可信号の出力の双方が行われていないと判別されたとき前記リフレッシュタイマ手段による前記メモリのリフレッシュを直ちに開始させる一方、少なくともバス許可信号が出力されていると判別されたときこのバス許可信号の出力の終了を待って直ちに前記リフレッシュタイマ手段による前記メモリのリフレッシュを開始させるバス調停ステップ
とを具備することを特徴とするメモリアクセス方法。
【請求項４】
前記バス調停手段は、前記リフレッシュの要求と競合して前記バス許可信号と共にバス要求信号も出力されていると判別したとき、前記メモリのリフレッシュが終了した時点で前記バス要求信号を出力している処理手段にバス許可信号を出力することを特徴とする請求項１記載のメモリ制御回路。
【請求項５】
前記バス調停ステップで前記リフレッシュの要求と競合して前記バス許可信号の出力と共にバス要求信号の受信が行われていると判別したとき、前記メモリのリフレッシュが終了した時点で前記バス要求信号を出力している処理手段にバス調停手段がバス許可信号を出力することを特徴とする請求項３記載のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リフレッシュサイクルでメモリをリフレッシュするメモリ制御回路およびメモリ制御方法に係わり、特に複数のＣＰＵ等の処理装置や処理回路等の処理手段が共有するメモリの制御を行うメモリ制御回路およびメモリ制御方法に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）あるいはＳＤＲＡＭ（Synchronous DRAM）等のある種の半導体メモリは、トランジスタとそれに付随するキャパシタを用いてデータの記憶を行っている。このため、所定のリフレッシュサイクルでリフレッシュを行い、データを保持することが必要である。このようなメモリは複数のＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）によって共有される場合がある。このような場合には、従来からデュアル・ポートＲＡＭ（ランダム・アクセス・メモリ）が使用されていた。
【０００３】
ところが、デュアル・ポートＲＡＭは高価であるだけでなく、ポート端子数の増加によって配線量も多くなり、メモリを搭載した基板の小型化に問題が生じる。そこで、シングル・ポートを有する通常のＲＡＭを複数のＣＰＵが共有すると共に、バスの使用権を獲得できなかったＣＰＵのバスサイクルを一時的に待機させるようにしたメモリ制御回路が提案されている（たとえば特許文献１参照）。この提案のメモリ制御回路では、複数のＣＰＵが同時にメモリにアクセスしようとすると、バス調停回路がバスの使用権を獲得できなかったＣＰＵについての実行され始めたバスサイクルにウェイト（待機）サイクルを挿入するようにしている。そして、そのＣＰＵに対してメモリへのアクセスを待機させるようにしている。
【特許文献１】特開平６−３０１６３１号公報（第００２９、第００３８段落、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、このようにバスの使用権を獲得できなかったＣＰＵに対して、ウェイトサイクルを挿入してメモリへのアクセスを待機させると、アドレスバスを始めとしてそのＣＰＵ側の多くの制御信号がドライブされた状態で待機することになる。その結果として、待機中のＣＰＵ側で無駄な電力が消費され続けることになる。このため、この提案のメモリ制御回路を使用した装置の電力使用効率が悪くなり、装置の小型化に障害となるという問題がある。
【０００５】
そこで本発明の目的は、メモリを共有して使用するＣＰＵやＤＳＰといった複数の処理手段がメモリの使用について競合するとき、競合により使用を待機している処理手段のために無駄な電力を消費させないメモリ制御回路およびメモリ制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明では、（イ）データ保持のためのリフレッシュを必要とするメモリと、（ロ）このメモリを共有する複数の処理手段と、（ハ）前記したメモリのリフレッシュを周期的に要求するリフレッシュタイマ手段と、（ニ）このリフレッシュタイマ手段がリフレッシュを要求するタイミングで前記した複数の処理手段のいずれかが前記したメモリをアクセスするためのバス要求信号の出力あるいはバスの使用を許可するバス許可信号の受信を行っているかを判別するリフレッシュ要求時信号競合有無判別手段と、（ホ）このリフレッシュ要求時信号競合有無判別手段でバス要求信号の出力のみが行われていると判別されたときあるいはバス要求信号とバス許可信号の双方が出力あるいは受信されていないと判別されたとき前記したリフレッシュタイマ手段による前記したメモリのリフレッシュを直ちに開始させる一方、少なくともバス許可信号が出力されていると判別されたときこのバス許可信号の出力の終了を待って直ちに前記したリフレッシュタイマ手段による前記したメモリのリフレッシュを開始させるバス調停手段と、（へ）このバス調停手段によって前記した複数の処理手段のうちでバスの使用を許可するとされた処理手段から送られてきた前記したメモリのアドレス等のアクセス用データを選択する第１の選択手段と、（ト）前記したリフレッシュタイマ手段の指示によりリフレッシュ用データを発生させるリフレッシュ用データ発生手段と、（チ）前記した調停手段から送られてくる制御信号に基づいて第１の選択手段によって選択された前記したアクセス用データと前記したリフレッシュ用データを択一的に選択して前記したメモリに供給する第２の選択手段とをメモリ制御回路に具備させる。
【００１０】
また本発明では、（イ）メモリを共有する複数の処理手段からそれぞれメモリのアクセスを行おうとするとき送られてくるバス要求信号をバス調停手段で受信するバス要求信号受信ステップと、（ロ）前記したメモリをリフレッシュするリフレッシュ要求信号がリフレッシュタイマ手段から周期的に出力されるのをバス調停手段で受信するリフレッシュ要求信号受信ステップと、（ハ）前記したメモリを共有する複数の処理手段のいずれかに前記したメモリをアクセスしてバスの使用を許可するバス許可信号が出力されているのをバス調停手段で判別するバス許可信号出力有無判別ステップと、（ニ）前記したリフレッシュタイマ手段がリフレッシュを要求するタイミングで前記した複数の処理手段の中から前記したバス要求信号の受信およびバス許可信号の出力が行われているかをバス調停手段で判別するリフレッシュ要求時信号競合有無判別ステップと、（ホ）このリフレッシュ要求時信号競合有無判別ステップでバス要求信号の受信のみが行われていると判別されたときあるいはバス要求信号の受信とバス許可信号の出力の双方が行われていないと判別されたとき前記したリフレッシュタイマ手段による前記したメモリのリフレッシュを直ちに開始させる一方、少なくともバス許可信号が出力されていると判別されたときこのバス許可信号の出力の終了を待って直ちに前記したリフレッシュタイマ手段による前記したメモリのリフレッシュを開始させるバス調停ステップとをメモリアクセス方法に具備させる。
【発明の効果】
【００１４】
以上説明したように本発明では、複数の処理手段がメモリをアクセスするとき、これらのうちの１つにアクセスを認めるので、メモリ側はそれ自体にアクセスの競合を調整する機能を備える必要がない。また、処理手段側はメモリとは別の競合を解決する手段にバス要求信号を送ってバスの使用権を与える返答があった時点でメモリに対するアクセスを開始すればよいので、処理手段同士の競合により、あるいはメモリのリフレッシュでその使用を待機している状態で無駄な電力を消費する必要がない。このため、安価なメモリを使用できるだけでなく、装置全体の回路構成を簡略化して消費電力の低減と装置の小型化を実現することができる。
【発明を実施するための最良の形態】
【００１５】
以下実施例につき本発明を詳細に説明する。
【実施例１】
【００１６】
図１は、本発明の一実施例におけるメモリ制御回路の構成を表わしたものである。このメモリ制御回路１０は、第１および第２のＣＰＵ部１１、１２と、これらが共に記憶媒体として使用するメモリとしてのＳＤＲＡＭ部１３を備えている。また、このメモリ制御回路１０には、第１および第２のＣＰＵ部１１、１２のＳＤＲＡＭ部１３に対するアクセスの調停を行う調停部１４と、この調停部１４から出力される選択信号２１の論理に従って、第１および第２のＣＰＵ部１１、１２から入力されるアドレス２２、２３、コマンド２４、２５およびライトアクセス時におけるライトデータ２６、２７のうちの一方のＣＰＵ側を選択して、選択後のアドレス２８、コマンド２９およびライトデータ３０として出力する第１の選択部３１と、この第１の選択部３１の出力したアドレス２８、コマンド２９およびライトデータ３０を入力する第２の選択部３２を備えている。
【００１７】
ここで、調停部１４は、バスの調停を行うバス調停部３４と、ＳＤＲＡＭ部１３をリフレッシュするタイミングを設定するためのリフレッシュタイマ部３５を備えており、第１および第２のＣＰＵ部１１、１２からＳＤＲＡＭ部１３をアクセスするためのバス要求信号３６、３７を受け取り、バス調停部３４がバス許可信号３８、３９によっていずれか一方にバスの使用を許可するようになっている。また、調停部１４はリフレッシュタイマ部３５のタイムアウトで一定周期ごとに第２の選択部３２にリフレッシュ選択信号４１を出力するようになっている。第２の選択部３２は、制御信号選択部４２と、リフレッシュサイクル発生部４３と、初期設定サイクル発生部４４を備えており、電源投入後に初期設定サイクル発生部４４から初期設定サイクルを発生させ、その終了後に初期設定終了信号４５を調停部１４に送出するようになっている。この初期設定終了信号４５が調停部１４に送られてきた後、調停部１４は調停を開始するようになっている。
【００１８】
第２の選択部３２は、初期設定の終了後は、入力されるリフレッシュ選択信号４１の論理に従って、リフレッシュサイクル発生部４３で生成されるリフレッシュサイクルあるいは第１の選択部３１から入力されるアドレス２８、コマンド２９およびライトデータ３０を選択し、ＳＤＲＡＭ部１３に対してアドレス４６、コマンド４７およびライトデータ４８として出力するようになっている。また、ＳＤＲＡＭ部１３は、リードアクセス時にリードデータ４９を第１および第２のＣＰＵ部１１、１２に送出するようになっている。
【００１９】
図２は、調停部の内部の回路構成を更に具体的に示したものである。バス調停部３４は、電源投入後に、図１に示した第２の選択部３２から初期設定終了信号４５が入力されると、それ以降、第１のＣＰＵ部１１と第２のＣＰＵ部１２から入力されるバス要求信号３６、３７が競合すると、これらの調停を行う。そして、いずれか一方にバスの使用を許可するバス許可信号３８あるいは３９を与え、それに対応する論理で選択信号２１を出力する。また、バス調停部３４は、リフレッシュタイマ部３５が出力するリフレッシュ要求信号５１を入力すると、バス要求信号３６、３７よりも優先してリフレッシュ用にリフレッシュ選択信号４１を出力するようになっている。リフレッシュタイマ部３５は、電源投入後、初期設定終了信号４５が入力されると、それ以降は一定周期ごとにリフレッシュ要求信号５１を出力するようになっている。なお、後に説明するようにバス調停部３４はリフレッシュ開始信号５２をリフレッシュタイマ部３５に供給するようになっている。
【００２０】
図３は、第２の選択部を具体的に表わしたものである。制御信号選択部４２は、図１に示した第１の選択部３１からアドレス２８、コマンド２９、ライトデータ３０の供給を受け、リフレッシュサイクル発生部４３からアドレス５４、コマンド５５、ライトデータ５６の供給を受け、また初期設定サイクル発生部４４からアドレス５７、コマンド５９およびライトデータ５８の供給を受けるようになっている。制御信号選択部４２は、リフレッシュ選択信号４１と初期設定サイクル発生部４４から出力される初期設定サイクル選択信号６０を用いて、これら３箇所から入力されるアドレス、コマンド、ライトデータの組からいずれか１組を選択し、アドレス４６、コマンド４７、ライトデータ４８として図１に示すＳＤＲＡＭ部１３に出力するようになっている。
【００２１】
リフレッシュサイクル発生部４３は、リフレッシュ時にリフレッシュ選択信号４１を入力し、アドレス５４、コマンド５５およびライトデータを発生する。また、初期設定サイクル発生部４４は、電源投入後に、初期設定サイクル選択信号６０と共にアドレス５７、コマンド５９およびライトデータ５８を出力し、初期設定サイクルの終了時には初期設定終了信号４５を図１に示した調停部１４に出力するようになっている。
【００２２】
以上のような構成のメモリ制御回路１０の動作を次に具体的に説明する。
【００２３】
図４は、調停部内のリフレッシュタイマ部の動作の様子を表わしたものである。リフレッシュタイマ部３５は、図４（ａ）に示すクロックサイクルで図示しないクロック発生源から、内部で共通的に使用されるクロック６１の供給を受けている。同図（ｂ）に示すように初期設定終了信号４５がアサート（ロー（“Ｌ”）レベルアクティブ）されると、図示しない内部カウンタがカウントを開始し、そのカウント値６２（同図（ｃ））をクロック６１の周期に応じてカウントアップする。そして、所定のリフレッシュ実行周期のカウント値“ｎｎ”に到達すると、同図（ｄ）に示すリフレッシュ要求信号５１をアサート（ロー（“Ｌ”）レベルアクティブ）する。リフレッシュ要求信号５１は、図２に示すバス調停部３４に入力される。バス調停部３４は、図４（ｅ）に示すように、これを基にしてリフレッシュ開始信号５２をアサート（ハイ（“Ｈ”）レベルアクティブのパルス）し、リフレッシュ要求信号５１をハイレベルにネゲートする。同図（ｃ）に示すように内部カウンタのカウント値６２はリフレッシュ要求信号５１がローレベルに変化した時点でカウント値“０”に復帰し、以下、クロック６１に応じて同様の処理を繰り返す。
【００２４】
図５は、メモリ制御回路の電源投入後におけるバス調停部の動作を表わしたものである。同図（ｂ）に示す初期設定終了信号４５のアサート（ローレベルアクティブ）により、図１に示した第１および第２のＣＰＵ部１１、１２からＳＤＲＡＭ部１３へのアクセスが可能になる。図５では、同図（ｃ）に示すように、第１のＣＰＵ部１１がアサート（ローレベルアクティブ）されている。したがって、同図（ｂ）に示す初期設定終了信号４５のアサートにより、同図（ｄ）に示すバス許可信号３８がアサート（ローレベルアクティブ）されている。
【００２５】
図５に示した例では、第１のＣＰＵ部１１がＳＤＲＡＭ部１３にアクセス中に、第２のＣＰＵ部１２から、同図（ｅ）に示すようにバス要求信号３７がアサート（ローレベルアクティブ）されている。しかしながら、これに対して同図（ｆ）に示すバス許可信号３９がアサート（ローレベルアクティブ）されるのは、第１のＣＰＵ部１１のＳＤＲＡＭ部１３に対するアクセスが終了した後である。このＳＤＲＡＭ部１３に対するアクセスの切り替えの時点に、同図（ｇ）に示すように選択信号２１がハイレベルに変化するようになっている。
【００２６】
なお、図５（ｈ）は、図２に示すバス調停部３４が出力するリフレッシュ選択信号４１を示している。また、同図（ｉ）はリフレッシュタイマ部３５（図２）がバス調停部３４に出力するリフレッシュ要求信号５１を示しており、同図（ｊ）はバス調停部３４がリフレッシュタイマ部３５に出力するリフレッシュ開始信号５２を示している。
【００２７】
図６は、第１のＣＰＵ部と第２のＣＰＵ部でバスの要求が競合した場合を示したものである。図６（ａ）〜（ｊ）に示した各信号は、図５（ａ）〜（ｊ）に示した各信号と対応している。第１のＣＰＵ部１１と第２のＣＰＵ部１２が同時にバス要求信号３６とバス要求信号３７をアサートした場合、調停部１４（図１）はどちらか一方に対してバス許可信号をアサートすることになる。図６に示した例では、第１のＣＰＵ部１１のバス要求信号３６（図６（ｃ））に対して同図（ｄ）に示すようにバス許可信号３８がアサートされている。
【００２８】
第２のＣＰＵ部１２のバス要求信号３７（同図（ｅ））に対しては、第１のＣＰＵ部１１のバスサイクルが終了した後に、同図（ｆ）に示すようにバス許可信号３９がアサートされている。
【００２９】
図７は、ＳＤＲＡＭ部に対するリフレッシュタイミングと第１および第２のＣＰＵ部からのバス要求が競合した場合の動作を示したものである。図７（ａ）〜（ｊ）に示した各信号は、図５（ａ）〜（ｊ）に示した各信号と対応している。この図７では、リフレッシュタイミングと第２のＣＰＵ１２からのバス要求信号３７が時期的に重なった場合を示している。図２に示したリフレッシュタイマ部３５から出力されるリフレッシュ要求信号５１（図７（ｉ））（ローレベルアクティブ）に対して、バス調停部３４はリフレッシュ開始信号５２をアサート（ハイレベルアクティブのパルス）し、同時にリフレッシュ選択信号４１（同図（ｈ））をローレベルにして、リフレッシュの実行を優先する。リフレッシュが実行された後、待たされているバス要求信号３７（同図（ｅ））に対してバス許可信号３９（同図（ｆ））をアサートする。
【００３０】
図８は、いずれかのＣＰＵ部がバスを使用中にリフレッシュタイミングになった場合の動作を示したものである。図８（ａ）〜（ｊ）に示した各信号は、図５（ａ）〜（ｊ）に示した各信号と対応している。ここでは、第１のＣＰＵ部１１がバスを使用中に第２のＣＰＵ部がバスの使用を要求し、続いてリフレッシュタイミングが発生した場合のタイミング関係を示している。この場合、第２のＣＰＵ部１２のアクセスによってリフレッシュが優先されるとすると、第１および第２のＣＰＵ部１１、１２が頻繁にＳＤＲＡＭ部１３（図１）をアクセスした場合にそのリフレッシュが長期間行われないことにつながり、好ましくない。そこで、第２のＣＰＵ部１２によるバス要求信号３７（図８（ｅ））が存在するにもかかわらず、バス調停部３４（図２）は第１のＣＰＵ部１１のＳＤＲＡＭ部１３へのアクセスが終了した後にリフレッシュ要求信号５１をアサートする（同図（ｉ））。そして、リフレッシュの実行後に、第２のＣＰＵ部１２に対してバス許可信号３９（同図（ｆ））をアサートすることになる。
【００３１】
次に図１に示した第１の選択部の動作を具体的に説明する。第１の選択部３１は、図１に示した調停部１４から入力される選択信号２１の論理に従って、出力を選択する３種類の入出力テーブルを備えている。
【００３２】
図９は、第１の選択部のアドレス入出力テーブルの内容を表わしたものである。アドレス入出力テーブル７１は、入力として第１のＣＰＵ部１１から入力されるアドレス２２と、第２のＣＰＵ部１２から入力されるアドレス２３と、選択信号２１の３つの情報に対する第１の選択部３１から出力されるアドレス２８の関係を示している。すなわち、選択信号２１が“０”であれば、アドレス２２として示された値“Ａ”がそのままアドレス２８として出力される。また、選択信号２１が“１”であれば、アドレス２３として示された値“Ｂ”がそのままアドレス２８として出力されることになる。アドレス入出力テーブル７１の代わりに、同様の機能を論理回路で構成することも可能である。
【００３３】
図１０は、第１の選択部のライトデータ入出力テーブルの内容を表わしたものである。ライトデータ入出力テーブル７２は、入力として第１のＣＰＵ部１１から入力されるライトデータ２６と、第２のＣＰＵ部１２から入力されるライトデータ２７と、選択信号２１の３つの情報に対する第１の選択部３１から出力されるライトデータ３０の関係を示している。すなわち、選択信号２１が“０”であれば、ライトデータ２６として示された値“Ａ”がそのままライトデータ３０として出力される。また、選択信号２１が“１”であれば、ライトデータ２７として示された値“Ｂ”がそのままライトデータ３０として出力されることになる。ライトデータ入出力テーブル７２の代わりに、同様の機能を論理回路で構成することも可能である。
【００３４】
図１１は、第１の選択部のコマンド入出力テーブルの内容を表わしたものである。コマンド入出力テーブル７３は、入力として第１のＣＰＵ部１１から入力されるコマンド２４と、第２のＣＰＵ部１２から入力されるコマンド２５と、選択信号２１の３つの情報に対する第１の選択部３１から出力されるコマンド２９の関係を示している。すなわち、選択信号２１が“０”であれば、コマンド２４として示された値“Ａ”がそのままコマンド２９として出力される。また、選択信号２１が“１”であれば、コマンド２５として示された値“Ｂ”がそのままコマンド２９として出力されることになる。コマンド入出力テーブル７３の代わりに、同様の機能を論理回路で構成することも可能である。
【００３５】
続いて図３に示した第２の選択部の制御信号選択部の動作を具体的に説明する。制御信号選択部４２は、アドレス入出力テーブル７４、コマンド入出力テーブル７５およびライトデータ入出力テーブル７６の３種類のテーブルを備えている。
【００３６】
図１２は制御信号選択部におけるアドレス入出力テーブルの内容を表わしたものである。アドレス入出力テーブル７４は、入力として図１における第１の選択部３１から出力されるアドレス２８と、図３に示すリフレッシュサイクル発生部４３から出力されるアドレス５４および初期設定サイクル発生部４４から出力されるアドレス５７の３つの情報に対する制御信号選択部４２から出力されるアドレス４６の関係を示している。すなわち、初期設定サイクル選択信号６０が“０”のときは無条件で、初期設定サイクルのためのアドレス５７として示された値“Ａ”がそのままアドレス４６として出力される。それ以外の場合には初期設定サイクル選択信号６０が“１”となっている。このとき、リフレッシュ選択信号４１が“０”であれば、アドレス５４として示された値“Ｂ”がアドレス４６として選択され出力される。また、リフレッシュ選択信号４１が“１”であれば、アドレス２８として示された値“Ｃ”がアドレス４６として選択され出力されることになる。アドレス入出力テーブル７４の代わりに、同様の機能を論理回路で構成することも可能である。
【００３７】
図１３は制御信号選択部におけるコマンド入出力テーブルの内容を表わしたものである。コマンド入出力テーブル７５は、入力として図１における第１の選択部３１から出力されるコマンド２９と、図３に示すリフレッシュサイクル発生部４３から出力されるコマンド５５および初期設定サイクル発生部４４から出力されるコマンド５９の３つの情報に対する制御信号選択部４２から出力されるコマンド４７の関係を示している。すなわち、初期設定サイクル選択信号６０が“０”のときは無条件で、初期設定サイクルのためのコマンド５９として示された値“Ａ”がそのままコマンド４７として出力される。それ以外の場合には初期設定サイクル選択信号６０が“１”となっている。このとき、リフレッシュ選択信号４１が“０”であれば、コマンド５５として示された値“Ｂ”がコマンド４７として選択され出力される。また、リフレッシュ選択信号４１が“１”であれば、コマンド２９として示された値“Ｃ”がコマンド４７として選択され出力されることになる。コマンド入出力テーブル７５の代わりに、同様の機能を論理回路で構成することも可能である。
【００３８】
図１４は制御信号選択部におけるライトデータ入出力テーブルの内容を表わしたものである。ライトデータ入出力テーブル７６は、入力として図１における第１の選択部３１から出力されるライトデータ３０と、図３に示すリフレッシュサイクル発生部４３から出力されるライトデータ５６および初期設定サイクル発生部４４から出力されるライトデータ５８の３つの情報に対する制御信号選択部４２から出力されるライトデータ４８の関係を示している。すなわち、初期設定サイクル選択信号６０が“０”のときは無条件で、初期設定サイクルのためのライトデータ５８として示された値“Ａ”がそのままライトデータ４８として出力される。それ以外の場合には初期設定サイクル選択信号６０が“１”となっている。このとき、リフレッシュ選択信号４１が“０”であれば、ライトデータ５６として示された値“Ｂ”がライトデータ４８として選択され出力される。また、リフレッシュ選択信号４１が“１”であれば、ライトデータ３０として示された値“Ｃ”がライトデータ４８として選択され出力されることになる。ライトデータ入出力テーブル７６の代わりに、同様の機能を論理回路で構成することも可能である。
【００３９】
最後に、電源投入後における第２の選択部の動作を説明する。本実施例のメモリ制御回路１０の電源が投入されると、図３に示した第２の選択部３２における初期設定サイクル発生部４４から初期設定用の信号として、アドレス５７、ライトデータ５８およびコマンド５９が制御信号選択部４２を経由して図１に示すＳＤＲＡＭ部１３に転送される。初期設定サイクルが終了すると、初期設定サイクル発生部４４から初期設定終了信号４５が調停部１４に送出される。
【００４０】
図１５は、電源投入後における第２の選択部の動作状態を示したものである。同図（ａ）は、この初期設定終了信号４５の信号状態を表わしたものである。初期設定終了信号４５がアサート（ロー（“Ｌ”）レベルアクティブ）されると、同図（ｂ）に示すように初期設定サイクル選択信号６０が“０”（ローレベル）の状態から“１”（ハイレベル）の状態に変化する。これまでの状態が同図（ｄ）に示すように初期設定の状態であり、これ以降が通常動作の状態である。
【００４１】
通常動作の状態では、定期的に発生するリフレッシュタイミングによりリフレッシュサイクル信号がリフレッシュサイクル発生部４３からアドレス５４、ライトデータ５５およびコマンド５６として出力される。また、この通常動作時は第１の選択部３１から出力される第１あるいは第２のＣＰＵ部１１、１２から送られてきたアドレス、ライトデータおよびコマンドがアドレス２８、ライトデータ３０、コマンド２９としてＳＤＲＡＭ部１３に転送される。これらは、いずれも図１５（ｂ）に示す初期設定サイクル選択信号６０と同図（ｃ）に示すリフレッシュ選択信号４１により選択され、ＳＤＲＡＭ部１３にアドレス４６、ライトデータ４８およびコマンド４７として出力されることになる。なお、リードサイクル実行時はライトデータは使用されず、ＳＤＲＡＭ部１３が出力するリードデータ４９（図１）は直接、第１および第２のＣＰＵ部１１、１２に転送されることになる。
【００４２】
以上説明したように本実施例のメモリ制御回路１０により、シングル・ポートしか持たないＳＤＲＡＭ部１３を第１および第２のＣＰＵ部１１、１２といった複数のＣＰＵがバスの調停を行って共有して使用することができる。また、本実施例ではリフレッシュサイクルの実行を第１および第２のＣＰＵ部１１、１２といった個々のＣＰＵが行わず、第２の選択部３２と調停部１４の制御により行うことにした。このため、効率的なリフレッシュサイクルの実行が可能になる。
【００４３】
なお、実施例では第１および第２のＣＰＵ部１１、１２がＳＤＲＡＭ部１３を共有したが、これ以上の数のＣＰＵであっても構わず、またＤＳＰがその一部または全部を共有しても構わない。また、共有するメモリはＳＤＲＡＭに限らず、ＤＲＡＭ（Dynamic Random Access Memory）のようにリフレッシュを必要とするメモリであれば特に制限されるものではない。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施例におけるメモリ制御回路の構成を表わしたブロック図である。
【図２】本実施例で調停部の内部の回路構成を具体的に示したブロック図である。
【図３】本実施例の第２の選択部を具体的に表わしたブロック図である。
【図４】本実施例で調停部内のリフレッシュタイマ部の動作の様子を表わしたタイミング図である。
【図５】本実施例でメモリ制御回路の電源投入後におけるバス調停部の動作を表わしたタイミング図である。
【図６】本実施例で第１のＣＰＵ部と第２のＣＰＵ部でバスの要求が競合した場合の各部の動作を表わしたタイミング図である。
【図７】本実施例でＳＤＲＡＭ部に対するリフレッシュタイミングと第１および第２のＣＰＵ部からのバス要求が競合した場合の各部の動作を表わしたタイミング図である。
【図８】いずれかのＣＰＵ部がバスを使用中にリフレッシュタイミングになった場合の各部の動作を表わしたタイミング図である。
【図９】本実施例で第１の選択部のアドレス入出力テーブルの内容を表わした説明図である。
【図１０】本実施例で第１の選択部のライトデータ入出力テーブルの内容を表わした説明図である。
【図１１】本実施例で第１の選択部のコマンド入出力テーブルの内容を表わした説明図である。
【図１２】本実施例の制御信号選択部におけるアドレス入出力テーブルの内容を表わした説明図である。
【図１３】本実施例で制御信号選択部におけるコマンド入出力テーブルの内容を表わした説明図である。
【図１４】本実施例で制御信号選択部におけるライトデータ入出力テーブルの内容を表わした説明図である。
【図１５】本実施例で電源投入後における第２の選択部の動作状態を示したタイミング図である。
【符号の説明】
【００４５】
１０  メモリ制御回路
１１  第１のＣＰＵ部
１２  第２のＣＰＵ部
１３  ＳＤＲＡＭ部
１４  調停部
２８、４６、５４、５７  アドレス
２９、４７、５５、５９  コマンド
３０、４８、５６、５８  ライトデータ
３１  第１の選択部
３２  第２の選択部
３４  バス調停部
３５  リフレッシュタイマ部
４１  選択信号
４２  制御信号選択部
４３  リフレッシュサイクル発生部
４４  初期設定サイクル発生部
４５  初期設定サイクル選択信号
５１  リフレッシュ要求信号
５２  リフレッシュ開始信号
６０  初期設定サイクル選択信号
【図１】
0004689965.tif 000002
【図２】
0004689965.tif 000003
【図３】
0004689965.tif 000004
【図４】
0004689965.tif 000005
【図５】
0004689965.tif 000006
【図６】
0004689965.tif 000007
【図７】
0004689965.tif 000008
【図８】
0004689965.tif 000009
【図９】
0004689965.tif 000010
【図１０】
0004689965.tif 000011
【図１１】
0004689965.tif 000012
【図１２】
0004689965.tif 000013
【図１３】
0004689965.tif 000014
【図１４】
0004689965.tif 000015
【図１５】
0004689965.tif 000016