(57)【特許請求の範囲】
【請求項１】
複数のＤＭＡ要求ブロックと、該複数のＤＭＡ要求ブロックから受けたＤＭＡ要求に基づいてＳＤＲＡＭへのアクセスを実行するメモリ制御回路とを備えたメモリアクセスシステムであって、
前記メモリ制御回路が、
前記ＤＭＡ要求とともに、アドレス信号と、バーストＤＭＡ要求回数を指示する指示信号とを含むＤＭＡ制御情報信号を受信する受信手段と、
前記アドレス信号に基づいて連続アクセス可能な回数を検出する検出手段と、
前記指示信号により指示されたバーストＤＭＡ要求回数と前記検出手段により検出された連続アクセス可能な回数とのうちで大きくない方を選択する選択手段と、
前記選択手段により選択された回数を、実際に実行する連続ＤＭＡの回数として設定する設定手段とを有し、
前記複数のＤＭＡ要求ブロックのそれぞれが、
バーストＤＭＡ要求回数が前記メモリ制御回路が連続アクセス可能な回数の最大値以下であれば、当該バーストＤＭＡ要求回数をそのままバーストＤＭＡ要求回数として指示し、前記最大値より大きい場合は、当該最大値をバーストＤＭＡ要求回数として指示する指示信号を生成する生成手段と、
アクセス先を指定するメモリアドレス信号を前記メモリ制御回路からのデータアクセス信号によりカウントアップするカウントアップ手段と、
バーストＤＭＡ要求回数を前記データアクセス信号によりカウントダウンするカウントダウン手段と、
前記データアクセス信号により１回のバーストＤＭＡ制御が終了した時点で、カウントダウンされたバーストＤＭＡ要求回数が０か否かを判定する判定手段と、
前記判定手段による判定の結果、前記カウントダウンされたバーストＤＭＡ要求回数が０でない場合に、カウントアップされた前記メモリアドレス信号と、当該カウントダウンされたバーストＤＭＡ要求回数から前記生成手段によって生成される指示信号とに基づいて、再度ＤＭＡ要求を行うように制御する要求制御手段とを有することを特徴とするメモリアクセスシステム。
【請求項２】
前記バーストＤＭＡ要求回数を指示する指示信号の信号線幅を前記連続アクセス可能な回数の最大値に基づいて設計したことを特徴とする請求項１に記載のメモリアクセスシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＤＲＡＭを使用したメモリ制御回路に関するものである。
【０００２】
【従来の技術】
ＳＤＲＡＭは非同期ＤＲＡＭを高速に動作させるために考案された、比較的新しいデバイスである。
【０００３】
その制御方法は、従来の非同期ＤＲＡＭと似ているが、同期用にＣＬＫ信号を使用する、ＳＤＲＡＭへのアクセスはコマンドによって行う、連続してデータのリード／ライトが実行可能（バーストモード）である、等の点が特徴的である。
【０００４】
図４は、標準的なＳＤＲＡＭへのアクセスを示すタイミングチャートである。ここではバースト長（ＢＬ）＝２の場合を示す。
【０００５】
ＳＤＲＡＭへの実際のアクセス方法において、ＳＤＲＡＭコントローラは、まず、ＡＣＴＶコマンドの発行と同時にＲＡＳアドレスを出力し、次にＷＲＩＴＥＡまたはＲＥＡＤＡコマンドの発行と同時にＣＡＳアドレスを出力する。（以下の説明においては、特にことわりのない限り、ＡＣＴＶコマンド後１ＣＬＫで次のコマンドを受け付け可能とする。）
このときＷＲＩＴＡであれば、同時にデータバスラインにライトすべきデータを出力し、ライト動作を行う。ＲＥＡＤＡである場合は、固有のディレイ値（ＣＡＳ  ＬＡＴＥＮＣＹ＝ＣＬ）分遅れた後、ＳＤＲＡＭよりリードデータが出力されるので、これを取り込む。
【０００６】
ところで、上記のＷＲＩＴＡ／ＲＥＡＤＡを利用する場合は、バースト回数が、ＢＵＲＳＴ  ＬＥＮＧＴＨ（＝ＢＬ）で指定される値で一定であるため、任意のバースト回数を実行しようとした場合、ＭＲＳコマンドを発行してＢＬ値を変更し、組み合わせで所望のバースト回数に到達するように制御する必要があり、トータルのスループットは低下してしまう。そこで、上記ＷＲＩＴＡ／ＲＥＡＤＡコマンドを使用せず、ＳＤＲＡＭコントローラが所望のバースト回数に到達した場合に、バースト動作を中断させる方法もある。
図５は、一般的なＤＭＡコントローラの構成の一例を示したブロック図である。一般に、ＤＭＡ要求ブロックはアプリケーションによって構成が異なり、一方、メモリコントローラ部はメモリの種類によって回路が異なるため、様々なアプリケーションやメモリへの対応を容易にするため、アービトレーション部とメモリコントローラ部とは独立した構成をとった方が良い。
【０００７】
この場合、各ＤＭＡ要求ブロック１−１・・・１−Ｎからアービタ回路３へは、ＤＭＡ要求信号ＤＲＥＱ_１・・Ｎ、及びアドレス信号ＡＤＤＲＥＳＳ_１・・・Ｎ、リード／ライトのどちらの要求であるかを示すＤＲ−ＷＸ_１・・・Ｎ、バースト回数を表すＢＳＴＮＵＭ_１・・・Ｎ、ライトデータ用バスＷＲＤＡＴＡ_１・・・Ｎ等の信号が出力される。
【０００８】
これに対して、アービタ回路３から各ＤＭＡ要求ブロック１−１・・・１−Ｎには、負論理のＤＭＡ要求受諾信号であるＲＥＱＡＣＫＸ_１・・・Ｎ、リードデータ用バスのＲＤＤＡＴＡ_１・・・Ｎ、負論理のメモリアクセス信号であるＤＴＡＣＫＸ_１・・・Ｎ信号が出力される。
【０００９】
尚、本説明では、全てのＤＭＡ要求ブロック１−１・・・１−ＮにＷＲＤＡＴＡ及びＲＤＤＡＴＡが接続されているが、実際には各ＤＭＡ要求ブロックは、リードまたはライトのどちらか一方しか行わない場合があり、その場合、使用しないデータバスは接続しなくてもよい。また、この図ではＳＤＲＡＭのリフレッシュを制御する回路を省略している。
【００１０】
一方、アービタ回路３からＳＤＲＡＭコントローラ４へは、調停後のＤＭＡ要求信号ＲＥＱ、及び調停後のアドレス信号ＡＤＲＳ、調停後のリード／ライト識別信号Ｒ−ＷＸ、バースト回数を表すＢＳＴＮＵＭ、ライトデータ用バスＷＲＤＡＴＡ等の信号が出力される。逆にＳＤＲＡＭコントローラ４からアービタ回路３には、リードデータ用バスのＲＤＤＡＴＡ、負論理のメモリアクセス信号であるＯＲＧ＿ＤＴＡＣＫＸが出力される。上記のような構成をとり、アービタ回路３とメモリコントローラ部４との間のインターフェースを統一することにより、さまざまなアプリケーションやメモリへの対応が容易になる。
【００１１】
図６は、このような制御を行う場合のＤＭＡコントローラ全体の動きを示すタイミングチャートである。この例では、バースト長は、予め初期ＭＲＳコマンド発行時に、最大値＝８に設定されている。
【００１２】
また、この図は、最初にＤＭＡ要求ブロック１−１が単独でバーストリードのＤＭＡ要求を発し、ＤＭＡの処理中にＤＭＡ要求ブロック１−２がバーストライトＤＭＡ要求を発した場合を示す。
【００１３】
詳細な制御の流れは以下の通りとなる。
【００１４】
Ｔ０において、アービタ回路は、アービトレーション動作許可の状態で、各ＤＭＡ要求ブロックからのＤＭＡ要求を待っている。
【００１５】
Ｔ１において、ＤＭＡ要求ブロック１−１は、ＤＭＡ制御情報を出力すると同時に、ＤＲＥＱを有効にする。（ここではバースト２のリードであるとする。）アービタ回路３は、ＤＲＥＱの受信をＴ２中に確認すると、他のＤＲＥＱが出力されていないか、さらに他のＤＲＥＱが出力されている場合には、予め定められた優先順位に基づいてＤＭＡ要求ブロックの調停及び選択を行い、選択されたＤＭＡ要求ブロックに関するＤＭＡ制御情報をラッチする。
【００１６】
その後Ｔ３にて、選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１）に対してＤＲＥＱＡＣＫＸを返送する。
【００１７】
同時に、ＳＤＲＡＭコントローラ４に対してラッチしたＤＭＡ制御情報を出力すると同時に、ＲＥＱを有効にする。そしてアービタ回路３は、ＤＭＡ要求の受付及び調停、選択の禁止状態に入る。
【００１８】
ＲＥＱを受けたＳＤＲＡＭコントローラ４は、まずＴ４にて、ＡＣＴＶコマンドの発行によってローアドレスを出力し、次にＴ５にて、ＲＥＡＤコマンドの発行と同時にカラムアドレスを出力する。ＲＥＡＤの場合、ＣＬ（この例ではＣＬ＝２とする）分遅れた後、すなわちＴ７以降、ＳＤＲＡＭ５よりリードデータがＤＱ上に出力されるので、これを取り込む。なお、本例ではコマンドを発行しない場合にＮＯＰ状態としているが、これ以外にＤＥＳＬ、ＰＤなどの状態で待ってもよい。
【００１９】
取り込まれたデータは、一度ＳＤＲＡＭコントローラ４にてラッチされ、各ＤＭＡ要求ブロック１に返送される。データアクセス中は、これを各ＤＭＡ要求ブロック１が読み込めるようＯＲＧ＿ＤＴＡＣＫＸを有効にする。
【００２０】
ＯＲＧ＿ＤＴＡＣＫＸはアービタ回路に返送され、アービタ回路はこれを選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１）に対して、即ちＤＴＡＣＫＸ＿１のみを有効（ローレベル）にする。
【００２１】
ＤＭＡ要求ブロック１は、ＤＴＡＣＫＸ＿１が有効になるとそのタイミングのＲＤＤＡＴＡ＿１からデータを読み込む。
【００２２】
一方ＳＤＲＡＭコントローラ４は、所望の回数分（２回分）データアクセスを要求した後、Ｔ７でＰＲＥコマンドの発行によってバースト動作を中止させる。
【００２３】
また、所望の回数分（２回分）のデータを読み込んだら、Ｔ９にてＯＲＧ＿ＤＴＡＣＫＸ信号を無効（ハイレベル）にする。
【００２４】
アービタ回路３は、Ｔ１０におけるＯＲＧ＿ＤＴＡＣＫＸ信号の立ち上がりを検出したら、ＤＭＡ要求の受付、調停、及び選択の禁止状態をＴ１１にて解除する。
【００２５】
この結果、Ｔ１２においてＤＭＡ要求ブロック１−２のＤＲＥＱ２を認識し、他のＤＲＥＱが出力されていないか、さらに他のＤＲＥＱが出力されている場合には、予め定められた優先順位に基づいて、調停及び選択を行う。
【００２６】
本例では、ＤＭＡ要求ブロック１−２からの要求しかないため、ＤＭＡ要求ブロック１−２からのＤＭＡ制御情報をラッチする。
【００２７】
その後Ｔ１３にて、選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１−２）に対してＤＲＥＱＡＣＫＸを返送する。
【００２８】
同時に、ＳＤＲＡＭコントローラ４に対して、ラッチしたＤＭＡ制御情報を出力し、ＲＥＱを有効にする。そしてアービタ回路３は、再びＤＭＡ要求の受付及び調停、選択の禁止状態に入る。
【００２９】
ＲＥＱを受けたＳＤＲＡＭコントローラ４は、まず、Ｔ１４にて、ＡＣＴＶコマンドの発行によってローアドレスを出力し、次にＴ１５にて、ＷＲＩＴコマンドの発行と同時にカラムアドレスを出力する。
【００３０】
ＷＲＩＴの場合、ＤＭＡ要求ブロック１−２は、ＷＲＩＴコマンドの発行と同じタイミングでＷＲＤＡＴＡ＿２バスにデータを出力する。
【００３１】
このデータは、ＳＤＲＡＭコントローラ４経由でＤＱに出力され、実際にメモリに書き込まれる。メモリに書き込まれている間は、ＯＲＧ＿ＤＴＡＣＫＸが有効になる。
【００３２】
ＯＲＧ＿ＤＴＡＣＫＸはアービタ回路３に返送され、アービタ回路３は、これを選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１−２）に対して、即ちＤＴＡＣＫＸ＿２のみを有効にする。
【００３３】
この例では３回のバーストライトであるため、３回分のデータを書き込んだら、Ｔ１８にてＰＲＥコマンドを発行し、バーストライトを中断するとともに、ＯＲＧ＿ＤＴＡＣＫＸは無効にする。
【００３４】
アービタ回路３は、Ｔ１８におけるＯＲＧ＿ＤＴＡＣＫＸ信号の立ち上がりを検出したら、ＤＭＡ要求の受付、調停、及び選択の禁止状態をＴ１９より解除する。
【００３５】
【発明が解決しようとする課題】
上記従来の制御方法においては、ＳＤＲＡＭへの最大連続アクセス数はＳＤＲＡＭへの設定により制限され、一般的なＳＤＲＡＭにおいてその値は、２５６、８、４、２である。
【００３６】
さらに、バースト長とアドレスの間には特殊な関係が存在する。ＳＤＲＡＭにおいてバーストアクセスする場合、アドレスの更新はＳＤＲＡＭ内部のカウンタで行われる。しかし、アドレスのカウントアップは、設定されたバースト長を超えて桁上がりしないので、任意のアドレスから連続アクセスしようとしても、異なったアドレスにアクセスすることになってしまう。例えば、バースト長が８に設定されている場合、下位アドレスが０Ｃｈから１４ｈまでを５バーストでアクセスしようとしても、実際には、０Ｃｈ、０Ｅｈ、００、０２、０４にアクセスされてしまう。
【００３７】
一方、プリンタ等の電子機器においては、最大の連続ＤＭＡ要求は１０〜１００程度である。また搭載されているメモリ容量も大きくは無いため、カラムアドレスの区切りの良いところからアクセスするといったシステムを構築しづらい。
【００３８】
このような問題に対して、特開２０００−２１５１５５号公報では、区切りの良いところまでシングル転送を行い、その後バースト転送を行うと言った制御が記載されているが、このようにすると回路が複雑になるといった問題点がある。
【００３９】
さらにＤＭＡ要求ブロックの数は１０程度であり、１つのＤＭＡ要求ブロックが長く連続アクセスを行うと、他のＤＭＡ要求ブロックの処理が行えず、プリンタでは、結果としてスループットが遅くなるなどの弊害がある。
【００４０】
また、これらの電子機器では、ＳＤＲＡＭへの供給クロックは、ＳＤＲＡＭが受けうる最大のクロック周波数よりかなり小さく、１つのＤＭＡ要求ブロックが長く連続アクセスを行うとメモリのリフレッシュが行えない、といった弊害も発生しうる。
【００４１】
よって、これらの電子機器においては、比較的簡単な構成で、８バーストを超える連続アクセスを任意のアドレスより開始しうる、メモリ制御システムが要望されていた。
【００４２】
【課題を解決するための手段】
本発明は、上述した課題に対処するために、ＳＤＲＡＭを用いたシステムであって、ＳＤＲＡＭの標準動作クロックよりも遅いクロックで動作するシステムにおいて、比較的簡単な回路によって、任意のアドレスより連続アクセス可能なメモリ制御システムを提供することを目的とするものである。
【００４３】
上記課題を解決するために、本発明によれば、複数のＤＭＡ要求ブロックと、該複数のＤＭＡ要求ブロックから受けたＤＭＡ要求に基づいてＳＤＲＡＭへのアクセスを実行するメモリ制御回路とを備えたメモリアクセスシステムにおいて、前記メモリ制御回路に、前記ＤＭＡ要求とともに、アドレス信号と、バーストＤＭＡ要求回数を指示する指示信号とを含むＤＭＡ制御情報信号を受信する受信手段と、前記アドレス信号に基づいて連続アクセス可能な回数を検出する検出手段と、前記指示信号により指示されたバーストＤＭＡ要求回数と前記検出手段により検出された連続アクセス可能な回数とのうちで大きくない方を選択する選択手段と、前記選択手段により選択された回数を、実際に実行する連続ＤＭＡの回数として設定する設定手段とを有し、前記複数のＤＭＡ要求ブロックのそれぞれが、バーストＤＭＡ要求回数が前記メモリ制御回路が連続アクセス可能な回数の最大値以下であれば、当該バーストＤＭＡ要求回数をそのままバーストＤＭＡ要求回数として指示し、前記最大値より大きい場合は、当該最大値をバーストＤＭＡ要求回数として指示する指示信号を生成する生成手段と、アクセス先を指定するメモリアドレス信号を前記メモリ制御回路からのデータアクセス信号によりカウントアップするカウントアップ手段と、バーストＤＭＡ要求回数を前記データアクセス信号によりカウントダウンするカウントダウン手段と、前記データアクセス信号により１回のバーストＤＭＡ制御が終了した時点で、カウントダウンされたバーストＤＭＡ要求回数が０か否かを判定する判定手段と、前記判定手段による判定の結果、前記カウントダウンされたバーストＤＭＡ要求回数が０でない場合に、カウントアップされた前記メモリアドレス信号と、当該カウントダウンされたバーストＤＭＡ要求回数から前記生成手段によって生成される指示信号とに基づいて、再度ＤＭＡ要求を行うように制御する要求制御手段とを有する。
【００４４】
【発明の実施の形態】
〔実施形態１〕
以下、図面を用いて本発明の１実施形態を詳細に説明する。
【００４５】
本実施形態では、ＤＭＡコントローラ全体の構成は、従来技術の説明に利用した図５に示す一般的な構成を持つ。本実施形態は、ＳＤＲＡＭコントローラ４内の構成に特徴を有する。
【００４６】
図１は、実施形態１におけるＳＤＲＡＭコントローラ４内のＤＭＡ実行回数決定回路のブロック図である。
図２は、このような制御を行う場合のＤＭＡコントローラ４全体の動きを示すタイミングチャートである。本例では、バースト長は、予め初期ＭＲＳコマンド発行時に、最大値＝８に設定しているものとする。
【００４７】
また、ＤＭＡ要求ブロック１−１の最大連続ＤＭＡ要求数は２５回とし、よってＢＳＴＮＵＭ＿１のバス幅は５とする。
【００４８】
処理の流れとして、ＤＭＡ要求ブロック１−１がアドレス００００Ｅｈから、１２回分のバーストリードのＤＭＡ要求を発した場合を例とする。
【００４９】
Ｔ０においてアービタ回路３は、アービトレーション動作許可の状態で、各ＤＭＡ要求ブロック１からのＤＭＡ要求を待っている。
【００５０】
Ｔ１においてＤＭＡ要求ブロック１−１は、ＤＭＡ制御情報を出力すると同時に、ＤＭＡ要求信号（ＤＲＥＱ＿１）を有効にする。
【００５１】
アービタ回路３は、ＤＲＥＱ＿１の受信をＴ２中に確認すると、他のＤＲＥＱが出力されていないか、さらに他のＤＲＥＱが出力されている場合には、予め定められた優先順位に基づいて調停及び選択を行い、選択されたＤＭＡ要求ブロック１に関するＤＭＡ制御情報をラッチする。
【００５２】
その後Ｔ３にて、選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１−１）に対してＤＲＥＱＡＣＫＸを返送する。
【００５３】
同時に、ＳＤＲＡＭコントローラ４に対してラッチしたＤＭＡ制御情報を出力すると同時に、ＲＥＱを有効にする。そしてアービタ回路３はＤＭＡ要求の受付及び調停、選択の禁止状態に入る。
【００５４】
ＲＥＱを受けたＳＤＲＡＭコントローラ４は、まずＴ４にて、ＡＣＴＶコマンドの発行によってローアドレスを出力する。
【００５５】
さらに検出器１１により、アドレス［３：１］の下位３ビットから、連続アクセス可能な数＝１を検出する。これは、例えば、アドレス［３：１］の３ビットを反転して１加えるなどすれば求められる。これとＢＳＴＮＵＭの値＝１２とを比較器１２で比較すると、連続アクセス可能な数＝１の方が小さいので、この比較結果に基づく選択信号に従って、連続アクセス可能な数＝１の方をセレクタ１３で選択し、実際のバーストアクセス数としてＤＭＡ回数設定カウンタ１４に設定する。（ここで、本実施形態では、アドレス０はバイトアクセス時に利用されるものとする。かつ、ここでは簡単のため、１６ｂｉｔ幅アクセスとする。）
次にＴ５にて、ＲＥＡＤコマンドの発行と同時にカラムアドレスを出力する。ＲＥＡＤの場合、ＣＬ（この例ではＣＬ＝２とする）分遅れた後、すなわちＴ７以降ＳＤＲＡＭ５よりリードデータが出力されるので、これを取り込む。
【００５６】
取り込まれたデータは、一度ＳＤＲＡＭコントローラ４にてラッチされ、各ＤＭＡ要求ブロック１に返送される。データアクセス中は、これを各ＤＭＡ要求ブロック１が読み込めるようＯＲＧ＿ＤＴＡＣＫＸを有効にする。
【００５７】
ＯＲＧ＿ＤＴＡＣＫＸはアービタ回路３に返送され、アービタ回路３はこれを選択されたＤＭＡ要求ブロック（ＤＭＡ要求ブロック１−１）に対して出力、即ちＤＴＡＣＫＸ＿１のみを有効（ローレベル）にする。
【００５８】
ＤＭＡ要求ブロック１−１は、ＤＴＡＣＫＸ＿１が有効になると、そのタイミングのＲＤＤＡＴＡ＿１からデータを読み込む。図２においては、Ｔ９でのＣＬＫの立ち上がりでデータＤ１を読み込んでいる。
【００５９】
一方ＳＤＲＡＭコントローラ４は、ＤＭＡ回数設定カウンタ１４に設定された回数分（１回分）データアクセスを要求した後、Ｔ６でＰＲＥコマンドの発行によってバースト動作を中止させる。
【００６０】
また、Ｔ９にてＯＲＧ＿ＤＴＡＣＫＸ信号を無効（ハイレベル）にする。
【００６１】
アービタ回路３は、Ｔ１０においてＯＲＧ＿ＤＴＡＣＫＸ信号の無効を検出したら、ＤＭＡ要求の受付、調停、及び選択の禁止状態をＴ１１より解除する。（これ以降アービタ回路３に関する動作は、本実施形態の説明には直接関係が無いので省略する。）
一方ＤＭＡ要求ブロック１−１は、ＤＴＡＣＫＸ＿１が有効となっている期間、内部で保持しているアドレスをカウントアップし、同じく内部で保持しているＤＭＡ回数をカウントダウンする。この結果ＤＴＡＣＫＸ＿１が無効となった時点で、アドレスは０００１０ｈとなり、ＤＭＡ回数は１１となる。
【００６２】
ここでＤＭＡ要求ブロック１−１は、ＤＭＡ回数が０になっていないので、再度ＤＭＡ要求をＴ１１にて出力する。その際のＤＭＡ制御情報は、アドレス０００１０ｈであり、ＤＭＡ回数は１１である。
【００６３】
再びＤＭＡ要求を受けたＳＤＲＡＭコントローラ４は、新たに受信したアドレス０００１０ｈより、検出器１１にて連続アクセス可能な数＝８を求め、これとＤＭＡ要求回数＝１１とを比較器１２で比較し、連続アクセス可能な数＝８の方をセレクタ１３で選択し、実際のバーストアクセス数としてＤＭＡ回数設定カウンタ１４に設定し、リードＤＭＡを行う。その際ＯＲＧ＿ＤＴＡＣＫＸを８クロックの間有効にする。この結果、ＤＴＡＣＫＸ１も８クロック間有効になる。
【００６４】
ＤＭＡ要求ブロック１は、前回と同様にアドレスを８カウントアップし、ＤＭＡ回数を８カウントダウンする。
【００６５】
この結果、アドレスは０００２０ｈであり、ＤＭＡ回数は３となる。ＤＭＡ要求ブロック１は、ＤＭＡ回数が０になっていないので、再度ＤＭＡ要求をＴ２８にて出力する。
【００６６】
再びＤＭＡ要求を受けたＳＤＲＡＭコントローラ４は、新たに受信したアドレスより連続アクセス可能な数＝８を求め、これをＤＭＡ要求回数＝３と比較する。今回はＤＭＡ要求回数の方が小さいため、こちらが選択され、実際のバーストアクセス数を３とし、アクセスを行う。その際ＯＲＧ＿ＤＴＡＣＫＸを３クロック間有効にし、同様にＤＴＡＣＫＸ１も３クロック間有効になる。
【００６７】
ＤＭＡ要求ブロック１−１は、前回と同様アドレスを３カウントアップし、ＤＭＡ回数を３カウントダウンする。
【００６８】
この結果、アドレス０００２６ｈとなり、ＤＭＡ回数は０となる。ＤＭＡ要求ブロック１−１は、ＤＭＡ回数が０となったので、ＤＭＡ処理を終了する。
【００６９】
このようにして、１２回の連続アクセスを３回に分けて実行するので、この間に、他のＤＭＡ要求ブロック１がＤＭＡ要求を行った場合や、リフレッシュ要求が発生した場合でも、間に割り込むことが可能である。
【００７０】
〔実施形態２〕
実施形態１では、ＢＳＴＮＵＭ信号は、ＤＭＡ要求ブロックの最大連続ＤＭＡ要求数によって決まっていた。一方比較器１２のサイズは、複数のＤＭＡ要求ブロックのうち最も大きな最大連続ＤＭＡ要求数で決定されるため、１つだけしか大きいものが無い場合でも、そのサイズにあわせる必要があり、回路が冗長的になる可能性がある。
【００７１】
そこで、本実施形態では、比較器１２の大きさをＳＤＲＡＭコントローラ４が実行できる最大のＤＭＡ回数にあわせるために、ＤＭＡ要求ブロック１側でＤＭＡ要求回数からＤＢＳＴＮＵＭ信号を生成する回路を、図３のように構成する。
【００７２】
図３は、ＳＤＲＡＭコントローラ４が実行できる最大のＤＭＡ回数は８の場合の例を示している（あらかじめＭＲＳコマンドにて設定する）。
【００７３】
この場合、ＤＢＳＴＮＵＭ信号バス幅は３で良い（ＤＢＳＴＮＵＭ信号+１＝実際のＤＭＡ要求回数とする。よって“０００”でもＤＭＡを１回行い、“１１１”でＤＭＡを８回実行する）。
【００７４】
そこで、ＤＭＡ要求回数設定カウンタ３１の下位３ビットより上をＯＲゲート３２に入力し、その出力をＯＲゲート３３〜３５により下位３ビットと個別にＯＲする。
【００７５】
このような回路構成とすることで、ＤＭＡ要求回数設定カウンタ３１に設定されたバースト要求回数が８以上の場合、ＯＲゲート３２の出力は１となり、更にＯＲゲート３３〜３５の出力も全て１となるので、ＤＢＳＴＮＵＭ信号（ＤＢＳＴＮＵＭ１〜３）は必ず“１１１”となる。
【００７６】
このような構成を持つ各ＤＭＡ要求ブロック１と、実施形態１で示したＳＤＲＡＭコントローラ４とを組み合わせることにより、動作的には実施形態１で示したものと変わることなく、かつＳＤＲＡＭコントローラ４内の比較器も３ビット同士を比較するだけで良くなり、回路の冗長性はなくなる。
【００７７】
また、各ＤＭＡ要求ブロック１とＤＭＡコントローラ２との間のバス幅も最小で済み、ＡＳＩＣ等の集積回路で構成する場合、配線部分の面積を小さくすることが可能となる。
【００７８】
【発明の効果】
以上説明したように、本発明によれば、要求されたＤＭＡ回数と、与えられたＤＭＡ開始アドレスから連続アクセス可能な回数とを比較し、実際に実行するＤＭＡ回数を決定するようにしたので、比較的簡単な構成で、実際にＳＤＲＡＭコントローラが実行可能な連続ＤＭＡ回数を超える連続ＤＭＡを行うことが可能となる。
【００７９】
この場合ＳＤＲＡＭコントローラは、実際には、自身が行うことが可能な連続ＤＭＡを超えた連続ＤＭＡを行うわけではないため、１つのＤＭＡ要求ブロックが長時間バスを占有することは無く、比較的低速クロックを利用する電子機器等においても、リフレッシュ等の他の制御を邪魔することは無い。
【００８０】
また、1回のバーストＤＭＡは、必ず同一コラム内で行われるため、コラムをまたがるＤＭＡを行うために複雑な制御を行う必要が無く、回路も簡単で済む。
【図面の簡単な説明】
【図１】本発明に係る一実施形態のＳＤＲＡＭコントローラ内のＤＭＡ実行回数決定回路のブロック図である。
【図２】第１の実施形態を説明するためのタイミングチャートである。
【図３】第２の実施形態におけるＤＭＡ要求ブロック内のＢＳＴＮＵＭ信号生成回路を示した図である。
【図４】標準的なＳＤＲＡＭへのアクセスを示すタイミングチャートである。
【図５】一般的なＤＭＡコントローラの構成の一例を示したブロック図である。
【図６】従来のＤＭＡコントローラ全体の動きを示すタイミングチャートである。
【符号の説明】
１  ＤＭＡ要求ブロック
２  ＤＭＡコントローラ
３  アービタ回路
４  ＳＤＲＡＭコントローラ
５  ＳＤＲＡＭ
１１  検出器
１２  比較器
１３  セレクタ
１４  ＤＭＡ回数設定カウンタ
３１  ＤＭＡ要求回数設定カウンタ
３２〜３５  ＯＲゲート
【図１】
0004054598.tif 000002
【図２】
0004054598.tif 000003
【図３】
0004054598.tif 000004
【図４】
0004054598.tif 000005
【図５】
0004054598.tif 000006
【図６】
0004054598.tif 000007