(57)【要約】【課題】ＳＤＲＡＭに対する無駄なサイクルの発生を防止し、ＳＤＲＡＭの利用効率の向上できるＳＤＲＡＭアクセス制御装置を提供する。【解決手段】メモリアクセスリクエストを受け付けバンク別にＳＤＲＡＭコマンドを生成するＳＤＲＡＭコマンド生成手段２と、手段２からのコマンド実行要求を調停しＳＤＲＡＭコマンドキューとデータバス使用キューの空き状況に応じて、該コマンド、データバス使用・方向フラグとライトアクセス時のライトデータを各キューに投入する調停・キューイング手段３と、該コマンドを投入された順番に逐次ＳＤＲＡＭ８へ転送するＳＤＲＡＭコマンドキュー手段４と、データバス使用・方向フラグとライトデータを保持し、投入された順番にライトアクセス時にはライトデータをＳＤＲＡＭ８へ送出し、リードアクセス時にはＳＤＲＡＭ８からリードデータを取り込むデータバス使用キュー手段５を備える。【選択図】  図１
2004310394.tif 000002
【特許請求の範囲】
【請求項１】
アドレス空間が複数のバンクに分割されてなるＳＤＲＡＭ（シンクロナスダイナミックランダムアクセスメモリ）のアクセス制御を行うＳＤＲＡＭアクセス制御装置において、
前記複数のバンクに各別に対応し、独立して当該対応するバンクに対するメモリアクセスリクエストを受け付け、ＳＤＲＡＭコマンドを生成する複数のＳＤＲＡＭコマンド生成手段と、
前記複数のＳＤＲＡＭコマンド生成手段からのＳＤＲＡＭコマンド実行要求の競合を調停し、ＳＤＲＡＭコマンドキューとデータバス使用キューの空き状況に応じて、前記ＳＤＲＡＭコマンドを前記ＳＤＲＡＭコマンドキューに投入し、データバス使用・方向フラグとライトアクセス時のライトデータを前記データバス使用キューに投入する調停・キューイング手段と、
前記調停・キューイング手段から投入された前記ＳＤＲＡＭコマンドを、前記ＳＤＲＡＭコマンドキューに保持し、投入された順番にクロックに同期して逐次前記ＳＤＲＡＭへ転送するＳＤＲＡＭコマンドキュー手段と、
前記調停・キューイング手段から投入された前記データバス使用・方向フラグと前記ライトデータを前記データバス使用キューに保持し、投入された順番に前記データバス使用・方向フラグに応じて、ライトアクセス時には前記ライトデータを前記クロックに同期して前記ＳＤＲＡＭへ送出し、リードアクセス時には前記ＳＤＲＡＭからリードデータを前記クロックに同期して取り込み保持するデータバス使用キュー手段と、を備えてなることを特徴とするＳＤＲＡＭアクセス制御装置。
【請求項２】
前記各ＳＤＲＡＭコマンド生成手段は、対応する前記バンクの状態を、直前に生成した前記ＳＤＲＡＭコマンドと前記ＳＤＲＡＭ自体の状態遷移から算出して保持するステートレジスタと、前記バンクの状態がアクティブ状態のとき、選択されているページのロウアドレスを保持するロウアドレスレジスタを備えていることを特徴とする請求項１に記載のＳＤＲＡＭアクセス制御装置。
【請求項３】
前記各ＳＤＲＡＭコマンド生成手段は、前記バンクの状態が前記アクティブ状態において要求されたメモリアクセスリクエストのページが前記ロウアドレスレジスタに保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみ前記プリチャージコマンドと前記アクティブコマンドを生成することを特徴とする請求項２に記載のＳＤＲＡＭアクセス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＤＲＡＭデバイスに対してバンクインタリーブアクセスを実行できるＳＤＲＡＭアクセス制御装置に関し、特に、メモリバス利用効率を向上できるＳＤＲＡＭアクセス制御装置に関する。
【０００２】
【従来の技術】
近年、コスト面と流通面から、パソコン用に大量に安価に流通しているＳＤＲＡＭを民生用機器に採用することが多くなっている。ＳＤＲＡＭは、パソコンのＣＰＵのキャッシュメモリとの転送効率を上げるために、同一ページ内の連続したアドレスへのバースト転送が可能に設計されている。これをＡＳＩＣ等で使用するためには、一連のＳＤＲＡＭ制御コマンドシーケンスをＳＤＲＡＭに送出する制御装置が必要となる。
【０００３】
このＳＤＲＡＭへのアクセスを制御するＳＤＲＡＭアクセス制御装置としては、例えば、下記の特許文献１や特許文献２に開示されたものが一般に知られている。この特許文献２に記載のＳＤＲＡＭアクセス制御装置５０２は、図６に示すように、アービタ５０６とコマンド生成ブロック５０７とアドレス変換ブロック５０８とデータラッチブロック５０９から構成されており、ブロック５０４，５０５からのＳＤＲＡＭ８へのアクセスを制御している。
【０００４】
ブロック５０４，５０５からのＳＤＲＡＭアクセスリクエストがあるとアービタ５０６を通じてコマンド生成ブロック５０７でアクティブコマンド、プリチャージコマンド等のＳＤＲＡＭコマンドを生成し、平行してアドレス変換ブロック５０８でロウアドレス、カラムアドレス、バンクアドレスを変換し、データラッチブロック５０９でリードデータ、ライトデータのラッチを行う。ＳＤＲＡＭの動作には、リードコマンド、ライトコマンドの前にアクティブコマンドとアクティブ動作時間分のウェイトサイクル、リードコマンドの後にはプリチャージコマンドとプリチャージ動作時間分のウェイトサイクル、ライトコマンドの後には、ライト処理のためのライトリカバリタイムの分のウェイトサイクルとプリチャージコマンドとプリチャージ動作時間分のウェイトサイクルが必要である。しかし、ＳＤＲＡＭはあるバンクにおいてコマンド実行中に別のバンクにおいてもコマンドの実行が可能である。ここで、アドレス変換ブロック５０８にて、アドレスのシフト演算を行い、連続するアクセスリクエストを別のバンクに割り振るようにする。これにより、あるバンクのプリチャージコマンド、アクティブコマンドの動作中に別のバンクのリードコマンド、ライトコマンド動作を行い、オーバヘッドなく連続してアクセスすることができる。
【０００５】
【特許文献１】
特開平８−２１２１７０号公報
【特許文献２】
特開２０００−３１５１７３号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来技術のＳＤＲＡＭアクセス制御装置では、完全にランダムなメモリアドレスへメモリアクセスがリクエストされると、アドレス変換を行ったとしても、必ず交互のバンクへのアクセスが行われず、同一のバンクに対するアクセスが連続して発生することがあり得る。そうなると、図７に示すように、当該バンクへのプリチャージ動作とアクティブ動作が終了するまで次のアクセスを行うことができず、大きなオーバヘッドとなる。
【０００７】
また、リクエストされるメモリアクセスがある程度規則性を持っていて、別バンクへの交互のアクセスが行われるとしても、当該リクエストの発生頻度によっては同一バンクに集中してアクセスが行われることになり、データバスの空いている無駄なサイクル、コマンドが実行可能であるのに実行できるコマンドのない無駄なサイクルが発生する。
【０００８】
近年、ＳＤＲＡＭの価格低下によって、従来の汎用ＤＲＡＭや高速ＳＲＡＭをＳＤＲＡＭで置き換えるケースが多くなっているが、これらの用途ではバースト転送時のバースト長が短く、アドレスの冗長度が高くなる。このような場合は、これらの無駄なサイクルが発生する傾向がより顕著になる。
【０００９】
本発明は、上記問題点に鑑みてなされたもので、その目的は、ＳＤＲＡＭに対する無駄なサイクルの発生を防止し、ＳＤＲＡＭの各バンクの動作率とデータバスの利用効率を向上できるＳＤＲＡＭアクセス制御装置を提供することにある。
【００１０】
【課題を解決するための手段】
この目的を達成するための本発明に係るＳＤＲＡＭアクセス制御装置は、アドレス空間が複数のバンクに分割されてなるＳＤＲＡＭのアクセス制御を行うＳＤＲＡＭアクセス制御装置において、前記複数のバンクに各別に対応し、独立して当該対応するバンクに対するメモリアクセスリクエストを受け付け、ＳＤＲＡＭコマンドを生成する複数のＳＤＲＡＭコマンド生成手段と、前記複数のＳＤＲＡＭコマンド生成手段からのＳＤＲＡＭコマンド実行要求の競合を調停し、ＳＤＲＡＭコマンドキューとデータバス使用キューの空き状況に応じて、前記ＳＤＲＡＭコマンドを前記ＳＤＲＡＭコマンドキューに投入し、データバス使用・方向フラグとライトアクセス時のライトデータを前記データバス使用キューに投入する調停・キューイング手段と、前記調停・キューイング手段から投入された前記ＳＤＲＡＭコマンドを、前記ＳＤＲＡＭコマンドキューに保持し、投入された順番にクロックに同期して逐次前記ＳＤＲＡＭへ転送するＳＤＲＡＭコマンドキュー手段と、前記調停・キューイング手段から投入された前記データバス使用・方向フラグと前記ライトデータを前記データバス使用キューに保持し、投入された順番に前記データバス使用・方向フラグに応じて、ライトアクセス時には前記ライトデータを前記クロックに同期して前記ＳＤＲＡＭへ送出し、リードアクセス時には前記ＳＤＲＡＭからリードデータを前記クロックに同期して取り込み保持するデータバス使用キュー手段と、を備えてなることを特徴とする。
【００１１】
更に、本発明に係るＳＤＲＡＭアクセス制御装置は、前記各ＳＤＲＡＭコマンド生成手段は、対応する前記バンクの状態を、直前に生成した前記ＳＤＲＡＭコマンドと前記ＳＤＲＡＭ自体の状態遷移から算出して保持するステートレジスタと、前記バンクの状態がアクティブ状態のとき、選択されているページのロウアドレスを保持するロウアドレスレジスタを備え、また、前記バンクの状態が前記アクティブ状態において要求されたＳＤＲＡＭアクセスリクエストのページが前記ロウアドレスレジスタに保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみ前記プリチャージコマンドと前記アクティブコマンドを生成することを特徴とする。
【００１２】
【発明の実施の形態】
本発明に係るＳＤＲＡＭアクセス制御装置（以下、適宜「本発明装置」という。）の一実施の形態につき、図面に基づいて説明する。
【００１３】
図１に示すように、本発明装置１は、複数のＳＤＲＡＭコマンド生成部２（２ａ，２ｂ，２ｃ）と、調停・キューイング手段３と、ＳＤＲＡＭコマンドキュー手段４と、データバス使用キュー手段５を備えて構成されている。
【００１４】
ＳＤＲＡＭコマンド生成部２は、本発明装置１の制御対象であるＳＤＲＡＭ８の複数のバンク（ＢＡＮＫ０〜ｎ）に対応してｎ個設けられており、ＳＤＲＡＭ８にアクセスする上位ブロック（図示せず）から対応するバンクに対して要求されたＳＤＲＡＭ８に対するメモリアクセスリクエストを受け付け、当該リクエストに対応したＳＤＲＡＭコマンド（アクティブコマンド、プリチャージコマンド、リードコマンド、ライトコマンド、リフレッシュコマンド等のＳＤＲＡＭ固有の制御コマンド）を生成する。
【００１５】
また、各ＳＤＲＡＭコマンド生成部２は、各ＳＤＲＡＭコマンド生成部２が次に生成可能なＳＤＲＡＭコマンドを求めるために参照するステートレジスタ６と、ＳＤＲＡＭコマンド生成部２に要求されたメモリアクセスリクエストが直前にアクセスしたページと同一ページに対するものかどうかを判定するために参照するロウアドレスレジスタ７を備えている。ステートレジスタ６は、ＳＤＲＡＭコマンド生成部２が直前に生成したＳＤＲＡＭコマンドとＳＤＲＡＭ８自体の状態遷移から、ＳＤＲＡＭ８の対応するバンク内の該当ページの現在の状態を求めて保持する。ロウアドレスレジスタ７は、対応するバンクの状態がアクティブ状態のとき、選択されているＳＤＲＡＭ８の該当ページのロウアドレスを保持する。
【００１６】
更に、各ＳＤＲＡＭコマンド生成部２は、ステートレジスタ６のバンクの状態がアクティブ状態において要求されたＳＤＲＡＭアクセスリクエストのページがロウアドレスレジスタ７に保持されているロウアドレスの属するページと同一のときは、プリチャージコマンドとアクティブコマンドの生成を抑止し、異なる場合にのみプリチャージコマンドとアクティブコマンドを生成するように構成されている。これにより無駄なコマンド生成が防止できる。
【００１７】
調停・キューイング手段３は、ＳＤＲＡＭコマンド生成手段２から送出されたＳＤＲＡＭコマンドによるＳＤＲＡＭコマンド実行要求を受け付け、当該要求が競合する場合にこれらを調停し、コマンド実行順序（優先順）を決定する。また、ＳＤＲＡＭコマンドキュー手段４とデータバス使用キュー手段５が夫々保持するキュースロットの空き状況に応じて、当該コマンド実行順序に従い、受け付けたＳＤＲＡＭコマンドをＳＤＲＡＭコマンドキュー手段３に送出し、データバス使用・方向フラグとライトアクセス時のライトデータをデータバス使用キュー手段４に送出する。
【００１８】
ＳＤＲＡＭコマンドキュー手段４は、調停・キューイング手段３から送出されたＳＤＲＡＭコマンドを、ＳＤＲＡＭコマンドキューのスロットに一旦保持し、受け付けた順番にクロックに同期して逐次ＳＤＲＡＭ８へ転送する。
【００１９】
データバス使用キュー手段５は、調停・キューイング手段３から送出されたデータバス使用・方向フラグとライトデータを受け取りデータバス使用キューのスロットに一旦保持し、データバス使用・方向フラグの値に応じてデータバスの入出力制御を行う。具体的には、受け付けた順番に、ライトアクセス時にはライトデータをクロックに同期してＳＤＲＡＭ８へ送出し、リードアクセス時にはＳＤＲＡＭ８からリードデータをクロックに同期して取り込み保持し、上位ブロック（図示せず）に転送する。
【００２０】
次に、本発明装置１の各手段２〜５の動作について説明する。
【００２１】
上位ブロックから本発明装置１に対して要求されたメモリアクセスリクエストは、メモリアドレスのバンクフィールドの値をもとに分岐し、対応するバンクのＳＤＲＡＭコマンド生成部２にメモリアドレスとともに格納される。また、当該メモリアクセスリクエストがライトアクセスの場合は、ライトデータも同時に対応するバンクのＳＤＲＡＭコマンド生成部２に格納される。
【００２２】
ここで、ＳＤＲＡＭコマンド生成部２は、ステートレジスタ６を参照して担当するＳＤＲＡＭ８のバンクの現在の状態から、次に生成可能なＳＤＲＡＭコマンドを求め、調停・キューイング手段３にＳＤＲＡＭコマンド要求を送出する。例えば、現在のＳＤＲＡＭ８の状態がプリチャージコマンド実行完了状態の時にリードやライトのメモリアクセスリクエストがあれば、アクティブコマンド要求を送出し、当該リクエストの対象ページと同一ページがアクティブ状態であれば即座にリードコマンドまたはライトコマンド要求を送出する。プリチャージコマンド実行状態やライトリカバリタイム等コマンドの実行が不可能なときは当該バンクの状態がコマンド実行可能となるまでコマンド要求を保持し調停・キューイング手段３には送出しない。
【００２３】
次に、ＳＤＲＡＭコマンド生成部２から送出されたＳＤＲＡＭコマンド要求は、調停・キューイング手段３においてＳＤＲＡＭコマンドの実行順序が決定され、ＳＤＲＡＭコマンドキュー手段４のＳＤＲＡＭコマンドキューに投入される。また、ＳＤＲＡＭデータバス９を使用するリードコマンドとライトコマンドでは、コマンドでバスが使用される期間を示すデータバス使用フラグとデータバスの向きを示すデータバス方向フラグがセットされる。
【００２４】
上記の動作を図２、図３に基づき説明する。尚、本説明では、ＣＡＳレイテンシが２、バースト長が４の場合を想定する。
【００２５】
図２、図３に示すように、ＳＤＲＡＭコマンドキューは現在実行中のＳＤＲＡＭコマンドと次のＳＤＲＡＭコマンドを、またデータバス使用キューは現在実行中のコマンドによるデータバスの使用状態と、これから実行されるコマンドによるデータバス使用予定状態を示すフラグが保持されている。
【００２６】
先ず、ライトコマンド要求が入力された場合、図２に示すように、ライトコマンドはコマンドから４クロック分バスを占有するため（バースト長が４）、データバス使用キューに連続する４クロック分の空きがあるかどうかを比較する。また、データバスの入出力の切替えに１クロックを要するので、次のサイクルでデータを出力させるため現在のデータバスの状態が入力になっていないかどうか（出力もしくは空き状態であるか）を比較する。この比較結果が一致したならば、ライトコマンドが実行可能として、ＳＤＲＡＭコマンドキューにライトコマンドを、データバス使用キューに連続する４サイクル分の出力フラグをセットする。比較結果が一致しない場合、以前のＳＤＲＡＭコマンドによるデータバスの使用が続いているとして、新たなＳＤＲＡＭコマンドを各キューに投入せずに次のクロックを待つ。
【００２７】
図３に示すように、リードコマンド要求が入力された場合も、同様にコマンド実行からＣＡＳレイテンシ分の２クロック後から４クロック分の空きとその直前のデータバスの向きを比較して、空きがあればコマンドをＳＤＲＡＭコマンドキューに投入する。また、プリチャージコマンド、アクティブコマンド、リフレッシュコマンドはデータバスを使用しないので、データバス使用キューのフラグの値によらずにＳＤＲＡＭコマンドキューにセットする。尚、ＳＤＲＡＭコマンド生成部２はＳＤＲＡＭ８のバンクの数だけ用意されているので、複数のバンクからのＳＤＲＡＭコマンド要求が競合して調停・キューイング手段３に入力された場合は、調停により決定されたコマンド実行順序（優先順）に従い処理される。ＳＤＲＡＭコマンドキューにセットされた値はクロックにより１段ずつ右シフトされ、逐次ＳＤＲＡＭ８へ転送され、ＳＤＲＡＭ８にて当該ＳＤＲＡＭコマンドが実行される。データバス使用キューにセットされた値もクロックにより１段ずつ右シフトされ、この値によりライトデータを出力する、或いは、ＳＤＲＡＭ８からのリードデータをラッチしてリードデータとして上位ブロックに出力する。
【００２８】
図４はこれらの一連の操作による動作例を示すタイミング図である。図４に示すように、バンク０とバンク１に、ほぼ同時に入力されたメモリアクセスリクエストにより、バンク０のＳＤＲＡＭコマンド生成手段２、バンク１のＳＤＲＡＭコマンド生成手段２で生成されたＳＤＲＡＭコマンドが、調停・キューイング手段３を通じてキューイングされてＳＤＲＡＭ８に投入され、ＳＤＲＡＭ８のバンク０、バンク１で並列に各動作が実行されている。
【００２９】
図５はリードアクセスリクエストとライトアクセスリクエストが交錯する場合を例示するタイミング図である。図５に示すように、３番目に入力されたバンク２に対するライトアクセスリクエストは１番目のバンク０に対するライトアクセスリクエストによるライトコマンドのデータ出力の直後なので間を空けずに続けて実行できるが、２番目に入力されたバンク１に対するリードアクセスリクエストによるリードコマンドはＣＡＳレイテンシの期間の分とデータバスの入出力の切換の時間が必要なため、先に３番目のライトアクセスリクエストによるライトコマンドが実行される。これにより、３回のメモリアクセスリクエスト全体として無駄なサイクルが節約できる。よって、このようなリードアクセスリクエストとライトアクセスリクエストが交錯する場合でも、本発明装置を使用すれば、無駄となるデータバスの空き時間を最小にすることができる。
【００３０】
【発明の効果】
以上説明したように、本発明に係るＳＤＲＡＭアクセス制御装置によれば、バンク別にＳＤＲＡＭコマンドを生成し、生成したＳＤＲＡＭコマンド要求を調停・キューイングし、データバスのスケジューリングを行うことで、ＳＤＲＡＭの各バンクの動作率とデータバスの使用率を上昇させ、ＳＤＲＡＭアクセスの高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明に係るＳＤＲＡＭアクセス制御装置の一実施の形態の構成を示すブロック図
【図２】本発明に係るＳＤＲＡＭアクセス制御装置のライトコマンド要求時における調停・キューイング手段とＳＤＲＡＭコマンドキュー、データバス使用キューの動作を説明する図
【図３】本発明に係るＳＤＲＡＭアクセス制御装置のリードコマンド要求時における調停・キューイング手段とＳＤＲＡＭコマンドキュー、データバス使用キューの動作を説明する図
【図４】本発明に係るＳＤＲＡＭアクセス制御装置によるバンク毎のＳＤＲＡＭコマンド生成とＳＤＲＡＭへのコマンド投入、及び、ＳＤＲＡＭの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図５】リードアクセスリクエストとライトアクセスリクエストが交錯する場合における、本発明に係るＳＤＲＡＭアクセス制御装置によるバンク毎のＳＤＲＡＭコマンド生成とＳＤＲＡＭへのコマンド投入、及び、ＳＤＲＡＭの各バンクの動作状態の時間軸上の推移を示すタイミング図
【図６】従来のＳＤＲＡＭアクセス制御装置の構成例を示すブロック図
【図７】従来のＳＤＲＡＭアクセス制御装置の最悪条件時の動作を示すタイミング図
【符号の説明】
１      本発明によるＳＤＲＡＭアクセス制御装置
２、２ａ、２ｂ、２ｃ    ＳＤＲＡＭコマンド生成手段
３      調停・キューイング手段
４      ＳＤＲＡＭコマンドキュー手段
５      データバス使用キュー手段
６      ステートレジスタ
７      ロウアドレスレジスタ
８      ＳＤＲＡＭ
９      データバス
５０３  従来のＳＤＲＡＭメモリ制御装置
５０４，５０５  ブロック
５０６  アービタ
５０７  コマンド生成ブロック
５０８  アドレス変換ブロック
５０９  データラッチブロック
【図１】
2004310394.tif 000003
【図２】
2004310394.tif 000004
【図３】
2004310394.tif 000005
【図４】
2004310394.tif 000006
【図５】
2004310394.tif 000007
【図６】
2004310394.tif 000008
【図７】
2004310394.tif 000009