(57)【要約】【課題】複数のマスタからのバスアクセスの順番を制御して、アクセスの効率を高めるとともに、優先度の高いマスタからの要求が後回しにされることによって、システム全体の処理に不具合が生じることを防止したバスシステムを提供する。【解決手段】バスシステムＢＳ１は、Ｎ個のマスタＭＳからの情報を選択してＳＤＲＡＭコントローラＳＣに与えるマルチプレクサＭＵＸと、データ転送要求のあるマスタのうち１つを選択してバス権を与えるバス権調停部ＡＲ１を備えている。また、ｐｒｉ信号比較部ＰＣ１と、追い越し監視・記録部ＯＶ１と、バンクアドレス監視部ＢＡＭと、前回アクセスバンクアドレス保持部ＢＡＨと、優先順位設定レジスタＲＳ１、再追い越し禁止期間設定レジスタＲＳ２およびバンクアドレス位置指定レジスタＲＳ３を有するレジスタ部ＲＳＰとを備えている。【選択図】図４
2009205313.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタからスレーブであるＳＤＲＡＭへのアクセスを可能とするバスシステムであって、
前記複数のマスタの優先順位を確認し、アクセスを要求しているマスタのうちで最も優先順位が高い第１のマスタについて、最高順位信号を出力する信号比較部と、
前記複数のマスタからのバス権要求が輻輳した場合のバス権調停時に、前記第１のマスタよりも、前回アクセスした前記ＳＤＲＡＭの第１のバンクと異なる第２のバンクにアクセスを要求する第２のマスタに優先的にバス権を与えるバス権許可信号を出力することで、前回のアクセスに基づく前記第１のバンクへのＳＤＲＡＭコマンドの発行期間のうちに、前記第２のバンクへのアクセス準備を実行する第１のバンクインタリーブ期間を実現するバス権調停部と、
前記バス権許可信号と、前記最高順位信号とを受け、前記第１のマスタであるにも拘わらず、バス権を与えられなかったマスタを、アクセスを追い越されたマスタとして認識して、追い越し信号を出力する追い越し監視・記録部と、を備え、
前記バス権調停部は、
前記第１のマスタの要求するアクセスを、前記前回のアクセスに基づく前記第１のバンクへのＳＤＲＡＭコマンドの発行期間後に受け付けることで、前記第２のバンクへのアクセス準備期間のうちに、前記第１のバンクへの新たなアクセス準備を実行する第２のバンクインタリーブ期間を実現し、
前記追い越し信号を受けた場合は、前記第２のバンクインタリーブ期間に続いて、前記第１のマスタからの要求に基づく前記第１のバンクへの前記ＳＤＲＡＭコマンドの発行期間を設けて、前記第１のマスタのアクセスが、前記第２のマスタのアクセスを再追い越しするように制御する、バスシステム。
【請求項２】
前記複数のマスタが出力するアドレスのどの部分が前記ＳＤＲＡＭのバンクアドレスに相当するかを設定し、バンクアドレス位置指定信号を出力するバンクアドレス位置指定レジスタと、
前記バンクアドレス位置指定信号を受けてバンクアドレス位置を判断し、バス権が許可されたマスタによりアクセスされた前記ＳＤＲＡＭのバンクのアドレスを保持し、その情報を前回アクセスバンクアドレス信号として出力する前回アクセスバンクアドレス保持部と、
前記バンクアドレス位置指定信号および前記前回アクセスバンクアドレス信号を受け、前回アクセスしたバンクと同じバンクにアクセスを要求しているマスタに対しては連続要求信号を出力するバンクアドレス監視部と、
前記第１のマスタが、前記第２のマスタのアクセスを再追い越しすることを禁止する期間を規定し、再追越禁止期間信号を出力する再追い越し禁止期間設定レジスタと、を備え、
前記バス権調停部は、
前記連続要求信号に基づいて、前記第２のマスタに優先的にバス権を与え、
前記再追越禁止期間信号に基づいて、前記第２のバンクインタリーブ期間に続いて、前記第１のバンクへの前記ＳＤＲＡＭコマンドの発行期間を設ける、請求項１記載のバスシステム。
【請求項３】
複数のマスタからスレーブであるＳＤＲＡＭへのアクセスを可能とするバスシステムであって、
前記複数のマスタからのバス権要求が輻輳した場合のバス権調停時に、優先順位が最も高い第１のマスタよりも、前回アクセスした前記ＳＤＲＡＭの第１のバンクと異なる第２のバンクにアクセスを要求し、かつ予め定めたアクセス長の短いアクセスを要求する第２のマスタにバス権を与えることで、前回のアクセスに基づく前記第１のバンクへのＳＤＲＡＭコマンドの発行期間のうちに、前記第２のバンクへのアクセス準備を実行する第１のバンクインタリーブ期間を実現するバス権調停部を備え、
前記バス権調停部は、
前記複数のマスタのうち、前記第２のマスタを指定する短アクセスマスタ指定信号に基づいて、前記第２のマスタにバス権を与え、
前記第１のマスタの要求するアクセスを、前記前回のアクセスに基づく前記第１のバンクへのＳＤＲＡＭコマンドの発行期間後に受け付けることで、前記第２のバンクへのアクセス準備期間のうちに、前記第１のバンクへの新たなアクセス準備を実行する第２のバンクインタリーブ期間を実現する、バスシステム。
【請求項４】
前記複数のマスタのうち、前記第２のマスタが何れであるかが設定され、前記短アクセスマスタ指定信号を出力する、短アクセスマスタ設定レジスタを備える、請求項３記載のバスシステム。
【請求項５】
前記短アクセスマスタ指定信号は、
前記複数のマスタのうち前記アクセス長の短いアクセスを要求するマスタが生成して前記バス権調停部に与える、請求項３記載のバスシステム。
【請求項６】
前記予め定めたアクセス長は、
全アクセスに要するクロックサイクル数が、バンクインタリーブ期間の２倍以内で終わる個数で規定される長さに相当する、請求項３記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスシステムに関し、特に、メモリとしてＳＤＲＡＭ（Synchronous Dinamic Random Access Memory）を有したシステムＬＳＩに使用されるバスシステムに関する。
【背景技術】
【０００２】
システムＬＳＩは、ＣＰＵ（Central Processing Unit）や、その他のバスマスタ（以後、マスタと称す）と、メモリやその他のバススレーブ（以後、スレーブと称す）がバスシステム（本明細書ではインタコネクト部をバスシステムと称する）に接続される形で構成されている。
【０００３】
マスタはバスシステムを介してスレーブにアクセスし、データのやり取りを行う。複数のマスタがある場合において、幾つかのマスタがバスアクセスを要求したとき、バスシステムはどのマスタにバスの使用権を与えるかについての制御を行う。
【０００４】
その制御の一例としては、特許文献１においては、ＳＤＲＡＭの同一バンクに連続したアクセス要求があった場合には、その処理を後回しにして、優先順位の最も高い他の処理のアクセス要求を先に受け付けるという制御が開示されている。
【０００５】
また、特許文献２においては、複数のブロックからのメモリアクセス要求があった場合に、直前にメモリアクセスを許可したバンクとは異なるバンクにアクセスするように、複数のブロックの優先順位を変更するという制御が開示されている。
【０００６】
【特許文献１】特開２００４−３１８４７６号公報
【特許文献２】特開２００４−２５２９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
複数のマスタがバスアクセスを要求した場合に、特許文献１および２に開示された制御を採用すると、本当に優先しなければならない処理であっても後回しにされ、結果として、システム全体の処理に不具合が生じる可能性があった。
【０００８】
本発明は、上記のような問題点を解決するためになされたものであり、複数のマスタからのバスアクセスの順番を制御して、アクセスの効率を高めるとともに、優先度の高いマスタからの要求が後回しにされることによって、システム全体の処理に不具合が生じることを防止したバスシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る１の実施の形態においては、バスシステムが、Ｎ個のマスタからの情報を選択してＳＤＲＡＭコントローラに与えるマルチプレクサと、データ転送要求のあるマスタのうち１つを選択してバス権を与えるバス権調停部を備えている。また、ｐｒｉ信号比較部と、追い越し監視・記録部と、バンクアドレス監視部と、前回アクセスバンクアドレス保持部と、優先順位設定レジスタ、再追い越し禁止期間設定レジスタおよびバンクアドレス位置指定レジスタを有するレジスタ部とを備えている。
【発明の効果】
【００１０】
上記実施の形態によれば、優先順位がより低いマスタからのアクセスであっても、ＳＤＲＡＭバンクアドレスが前回のアクセスとは異なるアクセスを要求するマスタにバス権を優先的に与え、また、バス権を受けたアクセスには、所定の再追い越し禁止期間を設定して、その期間にＳＤＲＡＭコマンドが発行されるようにすることで、バンクインタリーブの回数を増やして、ＳＤＲＡＭへのアクセスに消費されるクロックサイクルの削減、すなわちＳＤＲＡＭアクセスにかかる時間を削減できるという効果がある。また、追い越しを受けた優先順位がより高いマスタからのアクセスについては、再追い越し禁止期間の終了後は、再追い越しを行うことで、終了時間が元々終了する予定の時刻よりも遅くなることを防止できる。
【発明を実施するための最良の形態】
【００１１】
＜前提技術の説明＞
本発明の説明に先立って、図１〜図３を用いて、複数のマスタからＳＤＲＡＭへのアクセスが可能なシステムＬＳＩにおけるバス権調停動作についての前提技術を説明する。
【００１２】
図１はバスシステムＢＳの構成を示すブロック図である。
図１に示すバスシステムＢＳは、Ｎ個のマスタＭＳに対して、ＳＤＲＡＭ１０を制御するＳＤＲＡＭコントローラＳＣをスレーブとして有する例を示している。
【００１３】
図１に示すようにバスシステムＢＳは、Ｎ個のマスタＭＳからの情報を選択してＳＤＲＡＭコントローラＳＣに与えるマルチプレクサＭＵＸと、マスタＭＳのそれぞれに設定された優先順位に基づいてバス権の制御を行うバス権調停部ＡＲと、各マスタＭＳの優先順位を設定する優先順位設定レジスタＲＳ１（レジスタ部ＲＳＰに配設）とを備えている。
【００１４】
なお、各マスタＭＳとバスシステムＢＳとのインタフェースをマスタインタフェースと呼称し、バスシステムＢＳとＳＤＲＡＭコントローラＳＣとのインタフェースをスレーブインタフェースと呼称し、ＳＤＲＡＭコントローラＳＣとＳＤＲＡＭ１０とのインタフェースをＳＤＲＡＭインタフェースと呼称する。
【００１５】
優先順位設定レジスタＲＳ１によって設定された各マスタＭＳの優先順位は、ｐｒｉ（ｉ）信号によってバス権調停部ＡＲに伝えられる。ここで、ｉ＝１〜Ｎであり、Ｎ個のマスタＭＳに割り当てられた番号（マスタ１、マスタ２、・・・マスタＮ）に対応している。
【００１６】
各マスタＭＳは、バスアクセスを行うに際して、バス権調停部ＡＲに対してＡＶＡＬＩＤ（ｉ）信号をアサートしてバス権を要求する。バス権調停部ＡＲは、複数のマスタＭＳからバスアクセスの要求がある場合、最も優先順位の高いマスタＭＳにバスの使用権を与え、バスの使用権を得たマスタＭＳだけがバスアクセスを行うことができる。
【００１７】
すなわち、ＡＶＡＬＩＤ（ｉ）信号を受けたバス権調停部ＡＲは、ｉ番のマスタＭＳに許可を与えるバス権許可信号（ｉ）をアサートし、アサートされた信号（ｉ）に対応するｉ番のマスタＭＳからの情報がマルチプレクサＭＵＸによって選択されて、スレーブであるＳＤＲＡＭコントローラＳＣに転送される。例えば、バス許可信号（１）がアサートされた場合、マスタ１の情報（アドレス、制御信号、データ）が選択されてスレーブに転送される。
【００１８】
マスタからデータを転送する動作をトランザクションと呼称し、トランザクションはアドレス転送とデータ転送とで構成される。アドレス転送に際してはマスタがＡＶＡＬＩＤ（ｉ）信号をアサートして出力し、ＡＶＡＬＩＤ（ｉ）信号がアサートされている期間に転送先のアドレスを転送する。
【００１９】
複数のマスタＭＳがトランザクションを発行した場合のタイミングを図２に示す。
図２においては、マスタインタフェースでのタイミングとスレーブインタフェースでのタイミングを示しているが、簡略化のためデータ転送のタイミングは示していない。また、バス権の優先順位は、マスタ１、マスタ２、バスマスタ３の順に高いものとする。
【００２０】
まず、クロックサイクル"１"でマスタ１からアドレス（Ａ１０〜Ａ１３）の転送が行われ、その途中のクロックサイクル"３"でマスタ２とマスタ３がバスアクセスの要求を発行するが、マスタ１がバスを使用中なので待たされることになる。待たされている期間をハッチングを付して示す。
【００２１】
クロックサイクル"５"において、優先順位の高いマスタ２がバス権を獲得しアドレス（Ａ２０〜Ａ２３）の転送を開始する。最後にマスタ３がクロックサイクル"９"からアドレス（Ａ３０〜Ａ３３）の転送を開始する。
【００２２】
この例では、各マスタＭＳは複数のトランザクションをロック付トランザクションで行っており、転送途中で他のマスタに（たとえ自分より優先順位の高いマスタであっても）割り込まれることはない。これは、スレーブがＳＤＲＡＭである場合には重要である。
【００２３】
すなわち、ＳＤＲＡＭへのアクセスに際しては、リードコマンドやライトコマンドを発行する前に、バンクの非活性化（プリチャージ）、バンクの活性化といった準備動作をする期間（準備期間）が必要である。ＳＤＲＡＭの同一ページ内の連続したアクセスであればこの準備動作は最初の１回だけで済むので、１回のアクセスをできるだけ長くして（ＳＤＲＡＭの同一ページ内のアクセスを多くして）準備動作によるオーバーヘッドを少なくした方が効率が良い。このため、ロック付トランザクションにより、１つのマスタからの一連のアクセス中に他のマスタからのアクセスに割り込まれないようにしている。
【００２４】
図２で示されるタイミングで複数のマスタからバスアクセスが行われた場合に、ＳＤＲＡＭコントローラＳＣから発行されるＳＤＲＡＭコマンドの発行タイミングを図３に示す。
【００２５】
図３に示す、"ＰＲ"、"ＡＣ"および"ＲＤ"はそれぞれ、バンクプリチャージコマンド、バンク活性化コマンド、リードコマンドを示す。なお、ＳＤＲＡＭコントローラＳＣは、ＳＤＲＡＭの所定のバンクへのアクセスを行った後、当該バンクへのプリチャージを行わずに放置するように構成されている。
【００２６】
従って、アクセスに際しては、バンクプリチャージ、バンク活性化を行った後、リードコマンドあるいはライトコマンド（"ＷＲ"は図示せず）を発行するので、各マスタＭＳからのアクセスに際しては、ＳＤＲＡＭコントローラＳＣは、"ＰＣ"→"ＡＣ"→"ＲＤ（ＷＲ）"の順でコマンドを発行する。
【００２７】
また、ＳＤＲＡＭコントローラＳＣでは、アクセスするバンクが異なり、相前後する２つのアクセスにおいて、"ＰＲ"と"ＡＣ"コマンドは、先行するアクセスのＳＤＲＡＭコマンドの合間に発行することができる。つまり、先行するＳＤＲＡＭのアクセス中に、バンクプリチャージとバンク活性化を行って、次のアクセスの準備することができる。これをバンクインタリーブと言う。バンクインタリーブは、異なるバンクに対するアクセスが相前後して行われる場合に実行できる。
【００２８】
図３においては、バンクインタリーブとして、マスタ３によるアクセスの"ＰＲ"コマンドと"ＡＣ"コマンドは、先行するマスタ２によるアクセスのＳＤＲＡＭコマンドの合間（クロックサイクル"１６"と"２０"）に発行されている。
【００２９】
なお、バンクインタリーブの動作は、図３の下の部分において、アクセス期間を帯状に示すことで模式的に表しており、アクセスとアクセスが重なっている部分がバンクインタリーブが行われていることを表している。
【００３０】
すなわち、クロックサイクル"２"〜"９"の期間がマスタ１によるアクセス期間Ｂ１であり、クロックサイクル"１０"〜"２３"の期間がマスタ２によるアクセス期間Ｂ２であり、クロックサイクル"１６"〜"２９"の期間がマスタ３によるアクセス期間Ｂ３であり、バンクインタリーブはクロックサイクル"１６"〜"２３"の期間で実行されている。
【００３１】
なお、図３において、マスタ１とマスタ２によるアクセス期間は重なっていない（オーバーラップしていない）。これは、マスタ１とマスタ２によるアクセスが同じバンク０に対するアクセスであり、バンクインタリーブできないからである。このように、前後するアクセスが同じバンクに対するアクセスである場合、バンクインタリーブができず、ＳＤＲＡＭへのアクセスに多くのクロックサイクルを消費して、アクセスの効率が悪い。
【００３２】
＜Ａ．実施の形態１＞
＜Ａ−１．装置構成＞
図４は本発明に係る実施の形態１のバスシステムＢＳ１の構成を示すブロック図である。なお、図１に示したバスシステムＢＳと同一の構成については同一の符号を付し、重複する説明は省略する。
【００３３】
図４に示すバスシステムＢＳ１は、Ｎ個のマスタＭＳに対して、ＳＤＲＡＭ１０を制御するＳＤＲＡＭコントローラＳＣをスレーブとして有する例を示している。
【００３４】
図４に示すようにバスシステムＢＳ１は、Ｎ個のマスタＭＳからの情報を選択してＳＤＲＡＭコントローラＳＣに与えるマルチプレクサＭＵＸと、データ転送要求のあるマスタのうち１つを選択してバス権を与えるバス権調停部ＡＲ１を備えている。また、ｐｒｉ信号比較部ＰＣ１と、追い越し監視・記録部ＯＶ１と、バンクアドレス監視部ＢＡＭと、前回アクセスバンクアドレス保持部ＢＡＨと、優先順位設定レジスタＲＳ１、再追い越し禁止期間設定レジスタＲＳ２およびバンクアドレス位置指定レジスタＲＳ３を有するレジスタ部ＲＳＰとを備えている。
【００３５】
ｐｒｉ信号比較部ＰＣ１は、各マスタＭＳからＡＶＡＬＩＤ（ｉ）信号を受けるとともに、優先順位、すなわち優先順位設定レジスタＲＳ１から出力されるｐｒｉ（ｉ）信号を監視して、どのマスタが一番優先順位が高いか判断して転送要求を出しているマスタのうちで最も優先順位が高いマスタを示すｔｏｐ＿ｐｒｉ（ｉ）信号（最高順位信号）を出力する。
【００３６】
追い越し監視・記録部ＯＶ１は、バス権の調停が行われたときに追い越しがあったか否かを監視し、追い越しがあった場合に追い越されたマスタがどれであったかを記録し、追い越されたマスタについての情報を、追い越されたマスタを示すｏｖｅｒｔａｋｅｎ（ｉ）信号（追い越し信号）として出力する。なお、追い越しがあったか否かは、バス権調停部ＡＲ１からのバス権許可（ｉ）信号とｐｒｉ信号比較部ＰＣ１からのｔｏｐ＿ｐｒｉ（ｉ）信号に基づいて判断する。
【００３７】
バンクアドレス監視部１は、マスタが出力するアドレスＡＤＤＲ（ｉ）を監視し、前回アクセスしたバンクのと同じバンクにアクセスを要求しているマスタに対してはｈｉｔ（ｉ）信号（連続要求信号）をアサートする。このために、バンクアドレス監視部ＢＡＭには、バンクアドレス位置指定レジスタＲＳ３からのバンクアドレス位置指定信号および前回アクセスバンクアドレス保持部ＢＡＨからの前回アクセスバンクアドレス信号が入力される。
【００３８】
前回アクセスバンクアドレス保持部ＢＡＨは、バンクアドレス位置指定レジスタＲＳ３からバンクアドレス位置指定信号を受け取って、バンクアドレス位置を判断し、バス権が許可されたマスタによりアクセスされたＳＤＲＡＭ１０のバンクのアドレスを保持し、その情報を前回アクセスバンクアドレス信号として出力する。すなわち、前回アクセスバンクアドレス保持部ＢＡＨには、マルチプレクサＭＵＸで選択されたアドレスＳＡＤＤＲが入力され、このうちＳＤＲＡＭ１０のバンクアドレスに相当する部分が保持される。なお、ＳＤＲＡＭ１０のバンクアドレスの保持は、バス権許可（ｉ）信号がアサートされたときに行われる。
【００３９】
優先順位設定レジスタＲＳ１は、各マスタＭＳの優先順位を設定し、優先順位をｐｒｉ（ｉ）信号として出力する。ここで、ｉ＝１〜Ｎであり、Ｎ個のマスタＭＳに割り当てられた番号（マスタ１、マスタ２、・・・マスタＮ）に対応している。
【００４０】
再追い越し禁止期間設定レジスタＲＳ２は、再追い越し（詳細は後述）するのを禁止する期間を設定し、再追越禁止期間信号を出力する。
【００４１】
バンクアドレス位置指定レジスタＲＳ３は、各マスタＭＳが出力するアドレスのどの部分がＳＤＲＡＭ１０のバンクアドレスに相当するかを設定し、バンクアドレス位置指定信号を出力する。
【００４２】
＜Ａ−２．動作＞
次に、図４を参照しつつ、図５および図６を用いて、バスシステムＢＳ１の調停動作について説明する。なお、図５には、複数のマスタＭＳがトランザクションを発行した場合のタイミングを示し、図６には、図５で示されるタイミングで複数のマスタＭＳからバスアクセスが行われた場合に、ＳＤＲＡＭコントローラＳＣ１から発行されるＳＤＲＡＭコマンドの発行タイミングを示す。
【００４３】
図５においては、マスタインタフェースでのタイミングとスレーブインタフェースでのタイミングを示しているが、簡略化のためデータ転送のタイミングは示していない。また、バス権の優先順位は、マスタ１、マスタ２、バスマスタ３の順に高いものとする。
【００４４】
まず、クロックサイクル"１"でマスタ１からアドレス（Ａ１０〜Ａ１３）の転送が行われ、その途中のクロックサイクル"３"でマスタ２とマスタ３がバスアクセスの要求を発行するが、マスタ１がバスを使用中なので待たされることになる。待たされている期間をハッチングを付して示す。
【００４５】
ここで、マスタ２がアクセスを要求するＳＤＲＡＭ１０のバンク０は、前回のアクセス、すなわちマスタ１がアクセスしているＳＤＲＡＭ１０のバンク０と同一なので、バンクアドレス監視部ＢＡＭが、クロックサイクル"３"でｈｉｔ（２）信号をアサートして出力する。
【００４６】
マスタ１のアクセス終了後のクロックサイクル"５"でバス権の調停が行われる。優先順位はマスタ２の方が上であるが、ｈｉｔ（２）信号がアサートされているため、バス権調停部ＡＲ１は、マスタ３にバス権を与える。
【００４７】
一方、追い越し監視・記録部ＯＶ１は、マスタ２がマスタ３に追い越されたことを検知し、クロックサイクル"５"でｏｖｅｒｔａｋｅｎ（２）信号をアサートする。
【００４８】
バス権調停部ＡＲ１は、再追い越し禁止期間設定レジスタＲＳ２から出力される再追越禁止期間信号を受け、再追い越し禁止期間の間は、新たなバス権の調停は行わない。ここで、再追い越し禁止期間は、クロックサイクル"５"および"６"の期間であり、その期間にマスタ３からアドレス（Ａ３０およびＡ３１）の転送が行われる。
【００４９】
バス権調停部ＡＲ１は、ｏｖｅｒｔａｋｅｎ（２）信号がアサートされているので、再追い越し禁止期間が終わった後のクロックサイクル"７"では、バス権をマスタ２に与え、バス権を得たマスタ２は、マスタ３でのアドレス（Ａ３２およびＡ３３）の転送に先立って、アドレス（Ａ２０〜Ａ２３）の転送を行う。これが、再追い越しである。
【００５０】
マスタ２のアクセスが終わった後、クロックサイクル"１１"でバス権がマスタ３に与えられ、マスタ３でのアドレス（Ａ３２およびＡ３３）の転送が開始される。
【００５１】
ここで、図５の最下段には、前回アクセスバンクアドレス保持部ＢＡＨに保持される、バス権が許可されたマスタによりアクセスされたＳＤＲＡＭ１０のバンクのアドレスが示されており、バンク０、１、０、１の順にバス権が与えられたことが示されている。
【００５２】
バス権調停部ＡＲ１は、データ転送要求のある複数のマスタＭＳのうち１つを選択してバス権を与える。その選択方法について説明する。
【００５３】
バス権調停部ＡＲ１は、バンクアドレス監視部ＢＡＭが出力するｈｉｔ（ｉ）信号と、優先順位設定レジスタＲＳ１から出力されるｐｒｉ（ｉ）信号とに基づいて、優先順位が最も高く、前回のアクセスとは異なるバンクアドレスにアクセスを要求しているマスタ（図５の例ではマスタ３）を選択する。従って、前回のアクセスと同じバンクアドレスにアクセスを要求するマスタ（図５の例ではマスタ２）は、自分よりも優先順位が低いが（ｐｒｉ（ｉ）信号で判断）、ＳＤＲＡＭバンクアドレスが前回のアクセスとは異なるアクセス（ｈｉｔ（ｉ）信号で判断）を要求するマスタ（図５の例ではマスタ３）にバス権調停で負けて追い越されることになる。
【００５４】
このアクセスが追い越されたマスタは、自分を追い越したマスタよりもアクセスの優先順位が高いので、ある程度時間が経過した後は、自分のアクセスを追い抜いたアクセスを再度追い越して、自分のアクセスが終わる予定であった時間が大幅に遅れないようにする。
【００５５】
このためには、追い越しを受けたマスタが何れであるかを記録しておく必要があり、バス権調停において追い越しを受けたアクセスを発行したマスタを記録する方法について説明する。
【００５６】
追い越されたか否かということは、あるマスタの優先順位が一番高いのに、バス権調停部ＡＲ１が他のマスタにバス権を与えたことで判断できる。
【００５７】
すなわち、ｐｒｉ信号比較部ＰＣ１から出力されるｔｏｐ＿ｐｒｉ（ｉ）信号により、どのマスタが一番優先順位が高いか判断する。
【００５８】
バス権調停部ＡＲ１は、追い越し監視・記録部ＯＶ１が出力するｏｖｅｒｔａｋｅｎ（ｉ）信号により、追い越されたマスタからのアクセスの再追い越しを行うようバス権の調停を行う。ただし、先に説明したように、各マスタからのトランザクションをロック付トランザクションで行っていると、転送途中で他のマスタ（たとえ自分より優先順位の高いマスタであっても）が割り込むことはできないので、ロック付トランザクションは使えない。
【００５９】
そこで、本発明では"ｃｈｕｎｋ信号"と呼称する技術思想を導入する。
すなわち、ＡＶＡＬＩＤ（ｉ）信号とともに各マスタＭＳから与えられるｃｈｕｎｋ（ｉ）信号は、マスタからの１回のアクセスをできるだけ長くして（ＳＤＲＡＭの同一ページ内のアクセスを多くして）、準備動作によるオーバーヘッドを少なくして効率的なアクセスを実現するという要求を満たすための信号である。ｃｈｕｎｋ信号がアサートされている場合は、通常は１つのマスタからの一連のアクセス中に他のマスタからのアクセスに割り込まれることはないが、例外として、再追い越しが行われるときのみは、ｃｈｕｎｋ信号がアサートされていても、他マスタからの割り込みを許す信号である。
【００６０】
次に、追い越したアクセスが再追い越しされるまでの期間について説明する。
すなわち、追い越したアクセスが再追い越しされるまでの時間がある程度ないとバンクインタリーブの効果が十分に得られないので、本発明では再追い越し禁止期間設定レジスタＲＳ２を設けて、再追い越しが可能となるまでの時間を制御している。バス権調停部ＡＲ１は、再追い越し禁止期間の設定値に基づいて再追い越しのためのバス権切り換え制御を行う。
【００６１】
ここで、再追い越し禁止期間の設定条件について、本発明を適用した場合の効果とともに、ＳＤＲＡＭコントローラＳＣ１から発行されるＳＤＲＡＭコマンドの発行タイミングを示す図６を用いて説明する。
【００６２】
図６の上半分においては、本発明を適用せずにバンクインタリーブを行う例を比較のために示しており、マスタ３によるアクセス期間Ｂ３において、クロックサイクル"１８"〜"２１"の期間でバンクインタリーブが実行されている。
【００６３】
しかし、本発明を適用しない場合、マスタ１とマスタ２によるアクセス期間は重なっていない（オーバーラップしていない）。これは、マスタ１とマスタ２によるアクセスが同じバンク０に対するアクセスであり、バンクインタリーブできないからである。このように、前後するアクセスが同じバンクに対するアクセスである場合、バンクインタリーブができず、マスタ３によるアクセス期間Ｂ３が終わるのはクロックサイクル"２８"となる。
【００６４】
一方、図６の下半分には、本発明を適用してバンクインタリーブを行う例を示している。図６において、マスタ１およびマスタ２によるアクセス期間Ｂ１およびＢ２が重なっていないという点では、本発明を適用しない場合と同じであるが、マスタ１によるアクセスの後、マスタ３によるアクセスが行われ、マスタ３によるアクセス期間Ｂ３１において、マスタ１によるアクセス期間Ｂ１との間でバンクインタリーブＡ（第１のバンクインタリーブ）が実行される。そして、バス権調停部ＡＲ１は、マスタ１によるアクセス期間Ｂ１の終了後（ＳＤＲＡＭコマンドの発行終了後）に、マスタ２によるアクセスを受け付けることで、マスタ３によるアクセスの途中でマスタ２が割り込んだ形となる。その結果、マスタ２によるアクセス期間Ｂ２において、マスタ３によるアクセス期間Ｂ３１との間でバンクインタリーブＢ（第２のバンクインタリーブ）が実行される。そして、マスタ２によるアクセス期間Ｂ２が終了した後、最後に、マスタ３による残りのアクセス（期間Ｂ３２）が行われる。マスタ３によるアクセス期間Ｂ３２は、クロックサイクル"２５"で終了することとなる。従って、クロックサイクル"２８"の終了のタイミングとクロックサイクル"２５"の終了のタイミングとの差の時間Ｔが、時間削減分となる。
【００６５】
このように、マスタ１とマスタ３、およびマスタ３とマスタ２とはお互い異なるバンクへのアクセスなので、それぞれの間でバンクインタリーブが可能となり、トータルでのＳＤＲＡＭ１０へのアクセス期間を短縮することができる。
【００６６】
ここで、バンクインタリーブＡは、マスタ３によるアクセスに応答してバンクプリチャージコマンドＰＲおよびバンク活性化コマンドＡＣを発行する準備期間に相当し、バンクインタリーブＢは、マスタ２によるアクセスに応答してバンクプリチャージコマンドＰＲおよびバンク活性化コマンドＡＣを発行する準備期間に相当する。なお、バンクインタリーブＢでは、マスタ３によるアクセスに応答してＳＤＲＡＭコマンドであるリードコマンドＲＤも発行されている。このバンクインタリーブＢの期間が、再追い越し禁止期間であり、以下のように定義される。
【００６７】
すなわち、マスタ２によるアクセスに応答してコマンド"ＰＲ"を発行した後、コマンド"ＲＤ"（または"ＷＤ"）のＳＤＲＡＭコマンドを発行するまでの期間が、マスタ３によるアクセスに応答してＳＤＲＡＭコマンドを発行する期間として使用される再追い越し禁止期間である。
【００６８】
この期間に、マスタ２によるアクセスに応答してコマンド"ＰＲ"および"ＡＣ"を発行するとともに、マスタ３によるアクセスに応答してＳＤＲＡＭコマンドを発行することで、トータルでのＳＤＲＡＭ１０へのアクセス期間を短縮することができる。
【００６９】
例えば図６の例では、追い越されたマスタ２によるアクセスに応答して、リードコマンドＲＤを発行するまでに、追い越したマスタ３によるアクセスに応答して２個のリードコマンドを発行することができる。バスシステムは、このコマンド数に対応するデータ量（これをＱとする）のリクエストをマスタ３から受け付けることになる。従って、このリクエストを受け付けている期間が再追い越し禁止期間設定レジスタＲＳ２に設定される。
【００７０】
そして、再追い越し禁止期間の終了後は、マスタ２によるアクセスに応答して、コマンド"ＲＤ"等のＳＤＲＡＭコマンドを発行する。そして、全てのＳＤＲＡＭコマンドの発行が終わった後に、マスタ３によるアクセスに応答して、残りのＳＤＲＡＭコマンドを発行する。
【００７１】
このようにマスタ３によるアクセスを途中で止めて、マスタ２にアクセス権を与えることが、マスタ２による再追い越しであり、これにより、マスタ２によるアクセスの終了時間が、元々終了する予定だった時間より遅くなるのを防ぐことができる。
【００７２】
＜Ａ−３．効果＞
以上説明したように、本発明に係る実施の形態１のバスシステムＢＳ１によれば、バス権調停部ＡＲ１は、優先順位がより低いマスタからのアクセスであっても、ＳＤＲＡＭバンクアドレスが前回のアクセスとは異なるアクセスを要求するマスタにバス権を優先的に与え、また、バス権を受けたアクセスには、所定の再追い越し禁止期間を設定して、その期間にＳＤＲＡＭコマンドが発行されるようにする。従って、バンクインタリーブの回数を増やして、ＳＤＲＡＭ１０へのアクセスに消費されるクロックサイクルの削減、すなわちＳＤＲＡＭアクセスにかかる時間を削減できるという効果がある。
【００７３】
また、追い越しを受けた優先順位がより高いマスタからのアクセスについては、再追い越し禁止期間の終了後は、再追い越しを行うことで、終了時間が元々終了する予定の時刻よりも遅くなることを防止できる。
【００７４】
＜Ｂ．実施の形態２＞
＜Ｂ−１．装置構成＞
図７は本発明に係る実施の形態２のバスシステムＢＳ２の構成を示すブロック図である。なお、図４に示したバスシステムＢＳ１と同一の構成については同一の符号を付し、重複する説明は省略する。
【００７５】
図７に示すようにバスシステムＢＳ２は、バスシステムＢＳ１とは異なり、追い越し制御のためのｐｒｉ信号比較部ＰＣ１および追い越し監視・記録部ＯＶ１および再追越禁止期間設定レジスタＲＳ２有していない。代わって、レジスタ部ＲＳＰには、短いアクセスしか要求しないマスタを示す短アクセスマスタ設定レジスタＲＳ４を有し、短アクセスマスタ設定レジスタＲＳ４から出力されるｓｈｏｒｔ（ｉ）信号（短アクセスマスタ指定信号）がバス権調停部ＡＲ１に与えられる。
【００７６】
バス権調停部ＡＲ１は、バス権調停の際、優先順位が最も高いマスタがアクセスするバンクが前回アクセスのバンクと同じだった場合、優先順位が低くてもアクセス長の短いアクセスを要求するマスタにバス権を与える。アクセス長の短いマスタが何れであるかは、短アクセスマスタ設定レジスタＲＳ４に予め設定されており、短アクセスマスタ設定レジスタＲＳ４から出力されるｓｈｏｒｔ（ｉ）信号に基づいて判断する。
【００７７】
なお、短アクセスマスタ設定レジスタＲＳ４には、複数のマスタＭＳのうち、全アクセスに要するクロックサイクル数が、バンクインタリーブの期間の２倍以内で終わってしまうような短いアクセスしか要求しないマスタが何れであるかの情報が、ソフトウエア的に予め設定されている。
【００７８】
＜Ｂ−２．動作＞
次に、図７を参照しつつ、図８および図９を用いて、バスシステムＢＳ２の調停動作について説明する。なお、図８には、複数のマスタＭＳがトランザクションを発行した場合のタイミングを示し、図９には、図７で示されるタイミングで複数のマスタＭＳからバスアクセスが行われた場合に、ＳＤＲＡＭコントローラＳＣ１から発行されるＳＤＲＡＭコマンドの発行タイミングを示す。
【００７９】
図８においては、マスタインタフェースでのタイミングとスレーブインタフェースでのタイミングを示しているが、簡略化のためデータ転送のタイミングは示していない。また、バス権の優先順位は、マスタ１、マスタ２、バスマスタ３の順に高いものとする。
【００８０】
まず、クロックサイクル"１"でマスタ１からアドレス（Ａ１０〜Ａ１３）の転送が行われ、その途中のクロックサイクル"３"でマスタ２とマスタ３がバスアクセスの要求を発行するが、マスタ１がバスを使用中なので待たされることになる。待たされている期間をハッチングを付して示す。
【００８１】
ここで、マスタ２がアクセスを要求するＳＤＲＡＭ１０のバンク０は、前回のアクセス、すなわちマスタ１がアクセスしているＳＤＲＡＭ１０のバンク０と同一なので、バンクアドレス監視部ＢＡＭが、クロックサイクル"３"でｈｉｔ（２）信号をアサートして出力する。
【００８２】
マスタ１のアクセス終了後のクロックサイクル"５"でバス権の調停が行われる。優先順位はマスタ２の方が上であるが、ｈｉｔ（２）信号がアサートされているため、バス権調停部ＡＲ１は、マスタ２にバス権を与えることができない。
【００８３】
一方、マスタ３は、その要求するアクセスが短い（アクセスするデータ量が少ない）マスタであるので、短アクセスマスタ設定レジスタＲＳ４からｓｈｏｒｔ（３）信号が出力されており、バス権調停部ＡＲ１は、マスタ２より先行されるアクセスを選択するのにあたって、アクセスの短いマスタ３を選ぶことになる。
【００８４】
これは、マスタ３が要求するアクセスが、バンクインタリーブの期間の２倍以内で終わってしまうような短いアクセスであるので、マスタ１とのバンクインタリーブおよびマスタ２とのバンクインタリーブの期間で終わり、追い越されたアクセスに再追い越しさせるような制御が不要となるからである。
【００８５】
バス権調停部ＡＲ１は、マスタ３のアドレス転送が終わった後のクロックサイクル"７"では、バス権をマスタ２に与え、バス権を得たマスタ２は、アドレス（Ａ２０〜Ａ２３）の転送を行う。
【００８６】
次に、本発明を適用した場合の効果について、ＳＤＲＡＭコントローラＳＣ１から発行されるＳＤＲＡＭコマンドの発行タイミングを示す図９を用いて説明する。
【００８７】
図９の上半分においては、本発明を適用せずにバンクインタリーブを行う例を比較のために示しており、マスタ３によるアクセス期間Ｂ３において、クロックサイクル"１８"〜"２１"の期間でバンクインタリーブが実行されている。
【００８８】
しかし、本発明を適用しない場合、マスタ１とマスタ２によるアクセス期間は重なっていない（オーバーラップしていない）。これは、マスタ１とマスタ２によるアクセスが同じバンク０に対するアクセスであり、バンクインタリーブできないからである。このように、前後するアクセスが同じバンクに対するアクセスである場合、バンクインタリーブができず、マスタ３によるアクセス期間Ｂ３が終わるのはクロックサイクル"２５"となる。
【００８９】
一方、図９の下半分には、本発明を適用してバンクインタリーブを行う例を示している。図９において、マスタ１およびマスタ２によるアクセス期間Ｂ１およびＢ２が重なっていないという点では、本発明を適用しない場合と同じであるが、マスタ１によるアクセスの後、マスタ３によるアクセスが行われ、マスタ３によるアクセス期間Ｂ３において、マスタ１によるアクセス期間Ｂ１との間でバンクインタリーブＡが実行される。
【００９０】
そして、バス権調停部ＡＲ１は、マスタ１によるアクセス期間Ｂ１の終了後（ＳＤＲＡＭコマンドの発行終了後）に、マスタ２によるアクセスを受け付けることで、マスタ３によるアクセスの途中でマスタ２が割り込んだ形となる。その結果、マスタ２によるアクセス期間Ｂ２において、マスタ３によるアクセス期間Ｂ３との間でバンクインタリーブＢが実行される。
【００９１】
マスタ３によるアクセス期間Ｂ３は、マスタ２とのバンクインタリーブの期間で終了することとなり、また、マスタ２によるアクセス期間Ｂ２は、クロックサイクル"２１"で終了することとなるので、クロックサイクル"２５"の終了のタイミングとクロックサイクル"２１"の終了のタイミングとの差の時間Ｔが、時間削減分となる。
【００９２】
このように、マスタ１とマスタ３、およびマスタ３とマスタ２とはお互い異なるバンクへのアクセスなので、それぞれの間でバンクインタリーブが可能となり、トータルでのＳＤＲＡＭ１０へのアクセス期間を短縮することができる。
【００９３】
＜Ｂ−３．効果＞
以上説明したように、本発明に係る実施の形態２のバスシステムＢＳ２によれば、バス権調停部ＡＲ１は、優先順位がより低いマスタからのアクセスであっても、ＳＤＲＡＭバンクアドレスが前回のアクセスとは異なるアクセスを要求するマスタであって、かつ全アクセスに要するクロックサイクル数が、バンクインタリーブの期間の２倍以内で終わってしまうマスタにバス権を優先的に与えるようにする。従って、バンクインタリーブの回数を増やして、ＳＤＲＡＭ１０へのアクセスに消費されるクロックサイクルの削減、すなわちＳＤＲＡＭアクセスにかかる時間を削減できるという効果があるとともに、追い越されたアクセスに再追い越しさせるような制御が不要となって、再追い越し制御のための構成も不要となり、バスシステムの構成を簡略化できる。
【００９４】
＜Ｂ−４．変形例＞
以上説明した本発明に係る実施の形態２のバスシステムＢＳ２においては、レジスタ部ＲＳＰに短アクセスマスタ設定レジスタＲＳ４を有し、短アクセスマスタ設定レジスタＲＳ４から出力されるｓｈｏｒｔ（ｉ）信号がバス権調停部ＡＲ１に与えられる構成を示したが、ｓｈｏｒｔ（ｉ）信号を該当するマスタが生成してバスシステムに伝える構成であっても良い。当該構成を採用する場合のバスシステムＢＳ３の構成を図１０に示す。
【００９５】
図１０に示すように、レジスタ部ＲＳＰには、優先順位設定レジスタＲＳ１とバンクアドレス位置指定レジスタＲＳ３を有するのみであり、ｓｈｏｒｔ（ｉ）信号は各マスタのうち該当するマスタが生成してバス権調停部ＡＲ１に与える構成となっている。なお、ｓｈｏｒｔ（ｉ）信号を出力するマスタは、図７に示した短アクセスマスタ設定レジスタＲＳ４に相当する構成を備えている。
【００９６】
このような構成を採用することで、バスシステムＢＳ３は、実施の形態２のバスシステムＢＳ２と同様の効果を奏するとともに、短アクセスマスタ設定レジスタＲＳ４を必要としないので構成をさらに簡略化できる。
【図面の簡単な説明】
【００９７】
【図１】一般的なバスシステムの構成を示すブロック図である。
【図２】複数のマスタがトランザクションを発行した場合のタイミングを示す図である。
【図３】ＳＤＲＡＭコントローラから発行されるＳＤＲＡＭコマンドの発行タイミングを示す図である。
【図４】本発明に係る実施の形態１のバスシステムの構成を示すブロック図である。
【図５】複数のマスタがトランザクションを発行した場合のタイミングを示す図である。
【図６】ＳＤＲＡＭコントローラから発行されるＳＤＲＡＭコマンドの発行タイミングを示す図である。
【図７】本発明に係る実施の形態２のバスシステムの構成を示すブロック図である。
【図８】複数のマスタがトランザクションを発行した場合のタイミングを示す図である。
【図９】ＳＤＲＡＭコントローラから発行されるＳＤＲＡＭコマンドの発行タイミングを示す図である。
【図１０】本発明に係る実施の形態２のバスシステムの変形例の構成を示すブロック図である。
【図１】
2009205313.tif 000003
【図２】
2009205313.tif 000004
【図３】
2009205313.tif 000005
【図４】
2009205313.tif 000006
【図５】
2009205313.tif 000007
【図６】
2009205313.tif 000008
【図７】
2009205313.tif 000009
【図８】
2009205313.tif 000010
【図９】
2009205313.tif 000011
【図１０】
2009205313.tif 000012