(57)【要約】複数のデータデバイス（Ａ、Ｂ、Ｃ）がバスアービタ（Ｓ）を介して外部メモリ（Ｆ）とインタフェースして、各データデバイス（Ａ、Ｂ、Ｃ）によるバーストモードアクセスをサポートする１つまたは複数の読出しレジスタ（Ｒ１、Ｒ２、Ｒ３）がメモリ（Ｆ）に設けられ、各レジスタ（Ｒ１、Ｒ２、Ｒ３）は対応するデバイス（Ａ、Ｂ、Ｃ）によるバーストモードアクセスをサポートする。アービタ（ｓ）は、アクセス要求デバイスの識別に従って初期アクセスバースト後に使用すべきレジスタを選択する。したがって、メモリ（Ｆ）は複数のバーストモードアクセスを並列にサポートする。
2005503612.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータデバイスと、インタフェースを介しての前記デバイスによる外部メモリに対するアクセスを制御するバスアービタとを備えた装置において、前記外部メモリは１つまたは複数の読出しレジスタを備え、該読出しレジスタはそれぞれ、対応するデータデバイスによるバーストモードアクセスをサポートするように適合され、前記アービタは、アクセスを要求する前記データデバイスの識別に従って初期アクセスバースト後に使用すべき前記読出しレジスタを選択することを特徴とする装置。
【請求項２】
前記データデバイスの識別は固定である、請求項１記載の装置。
【請求項３】
前記データデバイスの識別はプログラム可能なアドレス範囲に基づく、請求項１記載の装置。
【請求項４】
前記識別の割り振りは動作要件に基づいて動的に変更される、請求項１記載の装置。
【請求項５】
前記データデバイスの識別は二進符号化される、先行する請求項のいずれか一項に記載の装置。
【請求項６】
前記データデバイスはプロセッサまたは直接メモリアクセスモジュールを含む、先行する請求項のいずれか一項に記載の装置。
【請求項７】
前記メモリはフラッシュメモリまたはＲＡＭメモリを含む、先行する請求項のいずれか一項に記載の装置。
【請求項８】
各データデバイスによるバーストモードアクセスをサポートするように、バスアービタを介して複数のデータデバイスを外部メモリにインタフェースする方法において、前記メモリに１つまたは複数の読出しレジスタが設けられ、該読出しレジスタはそれぞれ、対応するデータデバイスによるバーストモードアクセスをサポートするために使用され、前記アービタは、アクセスを要求する前記データデバイスの識別に従って初期アクセスバースト後に使用すべき前記読出しレジスタを選択することを特徴とする方法。
【請求項９】
添付図面の中の図３および図４を参照して明細書に実質的に説明した装置。
【請求項１０】
添付図面の中の図３および図４を参照して明細書に実質的に説明した方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、単一のバスアービタを介してプロセッサのような１つまたは複数のデバイスを外部メモリにインタフェースすることに関するものである。
【背景技術】
【０００２】
フラッシュメモリに対するアクセスを高速化するために、初期アクセスに複数の連続したメモリアドレスコードが組み込まれて、データブロックをレジスタ中に読み出し、それから、すべてのデータがアクセスされるまで、レジスタが後続アクセスで増分的にアクセスされ、すべてのデータがアクセスされると、プロセスを繰り返すことができるページモードまたはバーストモードが開発された。バーストモードの利点は、後続する各アクセスが初期アクセスよりもはるかに短くなり得、通常、１２８ビットブロックに最初にアクセスする際の７０ナノ秒と比較して、１６ビットの場合に３０ナノ秒であることである。バーストモードアクセスを図１に示し、図１では、初期アクセスがアドレスコードＮを有し、後続アクセスがアドレスコードＮ＋１、Ｎ＋２、およびＮ＋３を有する。そして、このデータバーストの後に、範囲Ｍ内のアドレスコードを有する第２のデータバーストが続く。
【０００３】
バーストモードアクセスは、プロセッサがコードを線形的に実行して連続アドレスコードを生成し、よって初期アクセスで提示されると、これを後続アクセスで繰り返す必要がないため、これを短くすることができることを利用している。しかし、プロセッサが、後続アクセスですべてのデータにはアクセスしない場合、おそらく、その代わりに他のアドレスにあるデータを要求することから、より長い初期アクセスがより頻繁に行われるため高速アクセスの恩恵が低減することになる。
【０００４】
さらに、複数のプロセッサ間でバーストモードアクセスを使用してフラッシュメモリを共有すると、状況によっては実用的でなくなる問題が出現する。したがって、たとえば、ＡＳＩＣに埋め込まれた複数のプロセッサは、プロセッサ間のアクセス優先度を決定する単一のバスアービタを介して単一の外部フラッシュメモリにアクセスしたほうが有益である。複数のメモリではなく単一のフラッシュメモリを使用することで、コストが削減され、また、ＡＳＩＣとメモリの間のインタフェース接続に必要なピンの数が最小に保たれる。しかし、バーストモードアクセスがプロセッサのうちの１つまたは複数に使用され、かつ他のプロセッサによるバーストの割り込みを回避することによって恩恵を最大化すべき場合、他のプロセッサのアクセスの待ち時間が増大する。したがって、１つのプロセッサによるバーストモードアクセスの有効利用と、他のプロセッサが受けるアクセスの待ち時間との間には妥協がある。これは、個々のプロセッサがより高い優先度のアクセスを要求し、必ずしもバーストモードアクセス自体を使用することなく、他のプロセッサによるバーストモードアクセスを妨害する場合に悪化する。この問題は、優先度のより高いプロセッサにより高い実効ＭＩＰＳレートでの実行も要求される場合に悪化する。
【０００５】
図２は、アドレス範囲Ｍにわたる第２のプロセッサからのより優先度の高いアクセスによる割り込みを受ける、アドレス範囲Ｎにわたる第１のプロセッサによるバーストモードアクセスを示している。初期アクセスＮの後には後続アクセスＮ＋１が続けられるが、アクセスが第２のプロセッサのより優先度の高いアクセスＭに与えられてから、アドレス範囲Ｎ内の後続アクセスの完了が可能になる。このアクセスが完了すると、アクセスは第１のプロセッサに戻される。しかし、これは、後続するアクセスＮ＋３が完了する前に、より長い初期アクセスＮ＋２を再度開始しなければならない。次に、第２のプロセッサが再び、優先度が高いことによりアクセスＭ＋１で割り込み、その後、アクセスが、Ｎ＋４およびＮ＋５で再び第１のプロセッサに戻される。このように、アドレス範囲Ｎのバーストモードの有効利用は、より優先度の高いアドレス範囲Ｍに対するアクセスによって上手くいかず、アドレス範囲Ｍ自体は、アドレスコードＭおよびＭ＋１が連続アドレスであるにも関わらずバーストモードを利用することができない。したがって、平均データスループットはかなり損なわれ、あらゆるプロセッサからのあらゆるアクセスに対して最大アクセス時間という最悪の場合に近づく。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、単一のバスアービタを介して１つまたは複数のプロセッサを外部メモリにインタフェースして、上記問題のいくつかを軽減または克服する方法を提供することにある。
【課題を解決するための手段】
【０００７】
これは、本発明の一態様によれば、アービタがメモリに対する各アクセスに関連するプロセッサまたは他のデバイスを識別し、メモリが、各アクセスに関連するプロセッサまたは他のデバイスの識別に従って選択された複数ブロック読出しレジスタを有するように構成することによって達成される。
【０００８】
したがって、メモリは、それぞれに関連するバーストデータを別個のブロック読出しレジスタに保持し、アービタによって提示される各アクセスで識別されたプロセッサに従って各レジスタからデータを読み出すことによって複数のバーストモードアクセスを並列にサポートすることができる。
【０００９】
ブロック読出しレジスタの個数は、必ずしもプロセッサの個数と同数である必要はない。プロセッサよりもレジスタが少ない場合、アービタはブロック読出しレジスタのうちの１つまたは複数を、より低い帯域幅要件を有するものとして好適に選択される特定のプロセッサ間で共有することができる。プロセッサよりもレジスタが多い場合、アービタは２つ以上のレジスタを使用して、単一プロセッサからの２つ以上のアドレスコード範囲またはデータバーストをサポートすることができる。一例として、これは、異なるアドレス範囲で連続して発生するコードおよびデータアクセスを効果的に分けることができる。
【００１０】
別の態様によれば、本発明は、単一のバスアービタを介してプロセッサまたは他のデバイスを外部メモリにインタフェースする方法にあり、この方法では、アービタがメモリに対する各アクセス毎にメモリアドレスコードの範囲を識別し、メモリが、各アクセスに関連するアドレスコード範囲の識別に従って選択される複数のブロック読出しレジスタを有する。
【発明を実施するための最良の形態】
【００１１】
これより、本発明について、添付図面を参照して例として説明することにする。
【００１２】
図３は、３つのプロセッサコアＡ、Ｂ、およびＣと、バスアービタとを組み込んだシステムオンチップＡＳＩＣを示す。バスアービタは、複数のピンインタフェースＩを通して外部フラッシュメモリデバイスＦに接続される。フラッシュメモリデバイスＦは、バーストモードアクセス機構と、３つのブロック読出しレジスタＲ１、Ｒ２、およびＲ３を二進符号化選択システムとともに組み込み、たとえば、２本のワイヤによって最大で４つの別個のブロック読出しレジスタを選択することができる。
【００１３】
プロセッサＡ、Ｂ、およびＣはアクセス要求をバスアービタＳに提示し、バスアービタＳは、インタフェースＩを介してフラッシュメモリＦにアクセスを与える際に所定の優先度に従って調整する。バスアービタは、アクセスが与えられているプロセッサを識別し、これがフラッシュメモリデバイスに伝達され、それによってそのプロセッサに、フラッシュメモリ中のデータに対するアクセス用に選択されている特定のブロック読出しレジスタが関連付けられる。したがって、この例では、各ブロック読出しレジスタＲ１、Ｒ２、およびＲ３を選択して、対応するプロセッサＡ、Ｂ、およびＣにフラッシュメモリアクセスを与えることができる。プロセッサの識別は、好ましくは二進符号化され、たとえば、ワードベースのフラッシュデバイスで通常使用されないＡ［０］アドレス信号を使用することができる。
【００１４】
フラッシュメモリはバーストモードアクセスをサポートすることが可能なため、各ブロック読出しレジスタは、データバーストを保持して、増分であっても、または減分であってもよい連続アドレスでの多重アクセスをサポートすることができる。このデータは、バスアービタの制御下でレジスタから読み出して、各プロセッサに戻すことができる。したがって、インタフェースを介して渡されるデータは、異なるブロック読出しレジスタ間としてインタリーブされるが、これはバーストモードアクセスの効率を減ずるものではなく、バーストモードアクセスの効率は、データが各ブロック読出しレジスタに別個に格納されることによって保持される。したがって、バスアービタＳは、バーストモードアクセスを妨害することによる効率の低減を考慮することなく、単純に所定の優先度に基づいて調整する。
【００１５】
２つのプロセッサが、最初に別個のブロック読出しレジスタにセットアップされた各データバーストにアクセスする様式を図４に示す。一方のデータバーストが初期アクセスＮによってセットアップされ、他方が初期アクセスＭによってセットアップされる。データバーストＭはデータバーストＮに割り込むが、後続アクセスＮ＋１〜Ｎ＋５およびＭ＋１はすべてアクセス期間が短いという恩恵を受ける。
【００１６】
本発明によりバスアービタに対して行われる変更は、バスアービタが単一ブロック読出しレジスタを有する標準的な外部フラッシュメモリに接続される場合に、標準モードでのバスアービタの動作を妨げるものではないことが理解されるであろう。
【００１７】
また、本発明についてフラッシュメモリに対するアクセスに関連して説明したが、本発明は外部ＲＡＭに対するアクセスにも等しく適用することが可能なことも理解されるであろう。
【００１８】
最後に、メモリにアクセスしているプロセッサまたは他のデバイスの識別は固定であることができるが、プログラム可能なアドレス範囲に基づいてデバイスにアクセス識別を割り振ることも可能である。また、識別の割り振りはシステム要件に基づいて動的に変更することが可能である。たとえば、アクセスを要求しているデバイスは、プロセッサではなく直接メモリアクセスＤＭＡモジュールであってもよい。
【図面の簡単な説明】
【００１９】
【図１】単一プロセッサと外部フラッシュメモリの間の通常のバーストモードアクセスを示す。
【図２】２つのプロセッサがバスアービタを介して外部フラッシュメモリにアクセスし得る方法を示す。
【図３】本発明の一実施形態の概略図である。
【図４】バスアービタが、図３の実施形態における外部フラッシュメモリに対する複数のプロセッサによるアクセスを制御する方法を示す。
【図１】
2005503612.tif 000003
【図２】
2005503612.tif 000004
【図３】
2005503612.tif 000005
【図４】
2005503612.tif 000006
【国際公開パンフレット】
2005503612.tif 000007
2005503612.tif 000008
2005503612.tif 000009
2005503612.tif 000010
2005503612.tif 000011
2005503612.tif 000012
2005503612.tif 000013
2005503612.tif 000014
2005503612.tif 000015
2005503612.tif 000016
【国際調査報告】
2005503612.tif 000017
2005503612.tif 000018
2005503612.tif 000019