(57)【要約】  メモリ装置16との間のデータ流に選択的に影響を与えるシステム10である。システム10は、メモリ装置16に出入りするデータを受取る第１のメカニズム24、26を備えている。第２のメカニズム18は、第１のメカニズム24、26に関連したデータレベルをしきい値と比較し、応答して信号を供給する。第３のメカニズム18、24、26はその信号に応答してデータを第１のメカニズム24、26からまたはメモリ装置16に選択的に放出する。特定の実施形態では、第１のメカニズムはデータレベル情報を提供するレベルインジケータを有するＦＩＦＯメモリバッファ24、26を備えている。第３のメカニズム18、24、26はメモリ管理装置18を備え、このメモリ管理装置18はデータレベル情報に基づいて信号を１以上のＦＩＦＯバッファ24、26にまたはメモリ装置16に供給し、これらの１以上のＦＩＦＯバッファ24、26がデータを放出し、あるいはデータをメモリ装置16から受取る。【選択図】      図１
2007524917.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置(16)に出入りするデータをインターセプトする第１のメカニズム(24、26)と、
第１のメカニズム(24、26)に関連したデータレベルを１以上のしきい値と比較し、それに応答して信号を供給する第２のメカニズム(18)と、
その信号に応答してデータを第１のメカニズム(24、26)または前記メモリ装置(16)に選択的に放出する第３のメカニズム(18、24、26)とを具備していることを特徴とするメモリ装置(16)との間のデータ流に選択的に影響を与えるシステム(10、10’)。
【請求項２】
第１のメカニズム(24、26)は、１以上のメモリバッファ(24、26)を備えている請求項１記載のシステム(10、10’)。
【請求項３】
１以上のメモリバッファ(24、26)は、先入れ先出し（ＦＩＦＯ）メモリバッファ(24、26)、レジスタファイル、２重ポートメモリまたはその組合せである請求項２記載のシステム(10、10’)。
【請求項４】
第２のメカニズム(18)は、１以上のメモリバッファ(24、26)のレベルを測定してこれに応答してレベル情報を提供するレベルインジケータを有している請求項３記載のシステム(10、10’)。
【請求項５】
第３のメカニズム(18、24、26)はメモリ管理装置(18)を備えており、このメモリ管理装置(18)は、レベル情報に基づいて信号を１以上のバッファ(24、26)に供給し、それによってこれらの１以上のバッファ(24、26)にデータを放出させ、あるいは前記信号を前記メモリ装置(16)に供給し、それによって前記メモリ装置(16)がデータを前記１以上のバッファ(24、26)に放出するように構成されている請求項４記載のシステム(10、10’)。
【請求項６】
第１のメカニズム(24、26)は、信号に応答して読取りデータ出力をメモリ装置(16)から収集してその読取ったデータをプロセッサに選択的に転送する１以上の読取りバッファ(24)を備え、第１のメカニズム(24、26)は、信号に応答して書込みデータをプロセッサから収集してその書込みデータをメモリ装置(16)に選択的に転送する１以上の書込みバッファ(26)を備えている請求項５記載のシステム(10、10’)。
【請求項７】
第２のメカニズム(18)は、第１のメカニズム(24、26)に関連した書込みデータレベルが１以上の書込みデータレベルしきい値に到達し、あるいはこれを超えたことを決定してそれに応答して信号を供給するメカニズム(18)を備えている請求項６記載のシステム(10、10’)。
【請求項８】
第２のメカニズム(18)は、第１のメカニズム(24、26)に関連した読取りデータレベルが１以上の読取りデータレベルしきい値に到達し、あるいはこれより低くなったことを決定してそれに応答して信号を供給するメカニズム(18)を備えている請求項７記載のシステム(10、10’)。
【請求項９】
メモリ装置(16)は、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）(16)、強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）(16)、仮想チャンネルメモリ（ＶＣＭ）(16)、または同期スタティックランダムアクセスメモリ（ＳＳＲＡＭ）(16)である請求項８記載のシステム(10、10’)。
【請求項１０】
ＦＩＦＯ読取りバッファ(24)および、またはＦＩＦＯ書込みバッファ(26)の１以上のものは２重ポートブロックランダムアクセスメモリ（ＲＡＭ）(24、26)である請求項９記載のシステム(10、10’)。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に関する。とくに、本発明は、メモリ装置との間のデータ流に選択的に影響を与えるためのシステムおよび方法に関する。
【背景技術】
【０００２】
本出願は、ここにおいて参考文献とされている暫定的な米国特許出願第60/483,999号（2003年6月30日出願）について優先権を主張している。本出願はまた、ここにおいて参考文献とされている暫定的な米国特許出願第60/484,025号（2003年6月30日出願）について優先権を主張している。
【０００３】
メモリ装置は、パーソナルコンピュータ、小型無人航空機等を含む種々の応用において使用されている。このような適用には、高速メモリおよび関連した制御装置、ならびにデータバースト、可変データ速度および、またはメモリと付随システムとの間のタイムスタガーデータに効率的に対処できるアービトレータが必要である。
【０００４】
メモリデータアービトレータのような効率的なメモリデータ流制御メカニズムは、とくに、ＳＤＲＡＭ（同期ダイナミックランダムアクセスメモリ）およびＥＳＤＲＡＭ（強化されたＳＤＲＡＭ）用、ＶＣＭ（仮想チャンネルメモリ）、ＳＳＲＡＭ（同期ＳＲＡＭ）、ならびに順次データバースト能力を備えた他のメモリ装置において重要である。データアービトレータは、とくに、データ入力および出力の数がメモリバンクの数を超える適用において、種々のＥＳＤＲＡＭ／ＳＤＲＡＭメモリへの／からのメモリオーバーフローまたはアンダーフローの防止を容易にする。
【０００５】
メモリデータアービトレータは、プロセッサからメモリにデータを書込むために並列直列変換装置を使用し、メモリからプロセッサにデータを読出すために直列並列変換装置を使用することができる。これらの変換装置はしばしばタイミングシーケンサを備えており、このタイミングシーケンサは、タイミングおよびスケジューリングルーチンを使用してメモリへのおよびメモリからのデータ流を並列直列および直列並列変換装置によって選択的に制御し、それによってデータオーバーフローまたはアンダーフローを防止する。
【０００６】
残念ながら、通常のタイミングシーケンサは、可変データ速度、データバーストまたはタイムスタガーデータに効率的に適応しないことが多い。これはメモリ能力を制限し、その結果、システムは大型で、効率が悪く、高価なものになる。
【０００７】
さらに、通常のタイミングシーケンサおよびデータアービトレータのために、しばしば望ましくないシステム設計制約が生じる。たとえば、システムデータ路パイプライン遅延が追加され、あるいは除去されたとき、それにしたがってアービトレータのタイミングを修正しなければならず、これはしばしば時間を要し、高価である。いくつかの例において、必要とされるタイミング修正は、法外に高価である。たとえば、通常のタイミングシーケンサは、ＳＤＲＡＭ／ＥＳＤＲＡＭ中の複数のデータバンクにデータが同時に書込まれなければならない場合に適応するように修正されることができないことが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、可変速度およびバーストおよび、またはランタイムスタガーデータに効率的に適応でき、制限的なデータタイミングまたはスケジューリングを必要としないデータアービトレータが技術的に必要とされている。
【課題を解決するための手段】
【０００９】
この技術的必要性は、本発明のメモリ装置との間のデータ流に選択的に影響を与えるシステムによって解決される。例示的な実施形態において、本発明のシステムは、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）または強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）メモリ装置および関連したデータアービトレータにより使用されるように構成されている。このシステムは、メモリ装置に入っていくデータまたはこのメモリ装置から出てきたデータを受取る第１のメカニズムを備えている。第２のメカニズムは、第１のメカニズムに関連したデータレベルを１以上のしきい値（実時間で変更されることのできる可変しきい値を含むことができる）と比較し、それに応答して信号を出力する。第３のメカニズムは、その信号に応答して第１のメカニズムから、またはメモリ装置からデータを放出する。
【００１０】
さらに特定の実施形態において、システムはさらに、１以上のメモリバッファを含んでいる第１のメカニズムと通信するプロセッサを備えている。第３のメカニズムは、信号に応答して第１のメカニズムからプロセッサにデータを放出し、および、または信号に応答してメモリ装置と第１のメカニズムとの間でデータを転送する。
【００１１】
特定の実施形態において、１以上のメモリバッファは、レジスタファイルまたは先入れ先出し（ＦＩＦＯ）メモリバッファである。第２のメカニズムはレベルインジケータを備えており、このレベルインジケータは１以上のＦＩＦＯメモリバッファのレベルを測定し、それに応答してレベル情報を提供する。第３のメカニズムはメモリ管理装置を備えており、このメモリ管理装置はレベル情報に基づいて信号を１以上のＦＩＦＯバッファに供給し、それによってこれらの１以上のＦＩＦＯバッファにデータを放出させる。第１のメカニズムは１以上のＦＩＦＯ読取りバッファを備えており、それら１以上のＦＩＦＯ読取りバッファは、メモリ装置からの読取りデータ出力を収集し、信号に応答してさらに多くの読取りデータをメモリ装置から選択的に転送する。第１のメカニズムはまた１以上のＦＩＦＯ書込みバッファを備えており、それら１以上のＦＩＦＯ書込みバッファは、プロセッサから書込みデータを収集し、信号に応答してその書込みデータをメモリ装置に選択的に転送する。
【００１２】
第２のメカニズムは、第１のメカニズムに関連した書込みデータレベルが１以上の書込みデータレベルしきい値に到達し、あるいはこれを超えたことを決定し、それに応答して信号を供給する。第２のメカニズムはまた、第１のメカニズムに関連した読取りデータレベルが１以上の読取りデータレベルしきい値に到達し、あるいはこれより下に低下したことを決定し、それに応答して信号を供給する。
【００１３】
さらに特定の実施形態においては、メモリ装置は同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）または強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）である。ＦＩＦＯ読取りバッファおよび、またはＦＩＦＯ書込みバッファの１以上のものは２重ポートブロックランダムアクセスメモリ（ＲＡＭ）である。
【００１４】
本発明の実施形態の新しい設計は、データレベル駆動される読取りバッファおよび書込みバッファを使用することにより容易なものとなる。バッファは、効率的なメモリデータインターフェースを提供し、それは、メモリおよびそのメモリにアクセスする関連したプロセッサが異なった速度で動作するときに、とくに有効である。さらに、通常のデータアービトレータとは異なり、本発明の１実施形態によるバッファを使用することにより、付随するデータアービトレータを再設計する必要なしに、システムにおいてデータ路パイプライン遅延を付加し、あるいは除去できるようになる。
【発明を実施するための最良の形態】
【００１５】
本発明はこの明細書において特定の適用に対する例示的な実施形態を参照して説明されているが、本発明はそれに制限されないことを認識すべきである。当業者は、本発明の技術的範囲内の付加的な修正、適用および実施形態、ならびに本発明が非常に有用なものとなる付加的な分野を認識するであろう。
【００１６】
図１は、本発明の１実施形態によるメモリデータアービトレータ12を使用するコンピュータシステム10のブロック図である。明瞭にするために、電源、クロック回路等のような種々の特徴は図面から除去されている。しかしながら、当業者は、構成すべきコンポーネントおよび特徴、ならびに所定の適用の要求を満たすためにそれらをどのようにして構成すべきかを認識するであろう。
【００１７】
コンピュータシステム10は、データアービトレータ12およびメモリ管理装置18と通信するプロセッサ14を備えている。プロセッサ14は、データをデータアービトレータ12との間で選択的に転送し、また、メモリコマンドをメモリ管理装置18に選択的に提供する。メモリ管理装置18はまた、データアービトレータ12およびメモリ16と通信している。メモリ16は、メモリバス20を介してデータアービトレータ12と通信している。
【００１８】
データアービトレータ12は、プロセッサ14を読取り先入れ先出し（ＦＩＦＯ）バッファ24のセットおよび書込みＦＩＦＯバッファ26のセットとインターフェースするデータフォーマッタ22を備えている。データフォーマッタ22は、ＦＩＦＯバッファ24、26とプロセッサ14との間のデータ流の制御を容易にする。データフォーマッタ22は、読取りＦＩＦＯバッファ24からデータ入力を受取り、プロセッサ14から出てきた定様式データを書込みＦＩＦＯバッファ26に提供する。データフォーマッタ22はプロセッサ14中に構成されてもよいし、あるいは本発明の技術的範囲を逸脱することなく除去されてもよい。
【００１９】
ＦＩＦＯバッファ24、26は、本発明の技術的範囲を逸脱することなく２重ポートメモリ、レジスタファイルまたは他のタイプのメモリとして構成されることができる。さらに、メモリ装置16はＳＤＲＡＭ、強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）、仮想チャンネルメモリ（ＶＣＭ）、同期スタティックランダムアクセスメモリ（ＳＳＲＡＭ）またはその他のタイプのメモリであってもよい。
【００２０】
読取りＦＩＦＯバッファ24は、制御入力（Rd．Buff．Ctrl．）をメモリ管理装置18から受取り、読取りＦＩＦＯバッファレベル情報（Rd．Level）をメモリ管理装置18に提供する。メモリ管理装置18から読取りＦＩＦＯバッファ24に与えられた制御入力（Rd．Buff．Ctrl．）には、読取りおよび書込み両動作に対する制御信号が含まれている。
【００２１】
同様に、書込みＦＩＦＯバッファ26は、制御入力（Wrt．Buff．Ctrl．）をメモリ管理装置18から受取り、書込みＦＩＦＯバッファレベル情報（Wrt．Level）をメモリ管理装置18に提供する。書込みＦＩＦＯバッファ26に対する書込みバッファ制御入力（Wrt．Buff．Ctrl．）には、読取りおよび書込み両動作に対する制御信号が含まれている。
【００２２】
読取りＦＩＦＯバッファ24は入力／出力（Ｉ／Ｏ）スイッチ28から直列入力を受取り、メモリ管理装置18からの制御シグナリングに応答して並列データ出力をデータフォーマッタ22に選択的に供給する。読取りＦＩＦＯバッファ24は、以下さらに詳細に説明するように、並列出力データへ直列入力データを変換するのを容易にする読取りＦＩＦＯバスを備えている。同様に、書込みＦＩＦＯバッファ26はデータフォーマッタ22から並列入力データを受取り、メモリ管理装置18からの制御シグナリングに応答して直列出力データをＩ／Ｏスイッチ28に選択的に供給する。Ｉ／Ｏスイッチ28は制御入力（I/O Ctrl．）をメモリ管理装置18から受取り、読取りＦＩＦＯバッファ24および書込みＦＩＦＯバッファ26をメモリバス20にインターフェースする。
【００２３】
動作において、プロセッサ14が計算を行なうにはメモリ16にアクセスする必要がある。たとえば、プロセッサ14はある計算またはアルゴリズムを完了するためにメモリ16からデータを読取り、あるいはメモリ16にデータを書込む必要があることがある。プロセッサ14がデータをメモリ16に書込まなければならないとき、プロセッサ14は対応したデータ書込みリクエスト（コマンド）をメモリ管理装置18に送る。
【００２４】
その後、メモリ管理装置18はデータアービトレータ12およびメモリ16を制御し、必要に応じてプロセッサ14と通信して、プロセッサ14からデータフォーマッタ22、書込みＦＩＦＯバッファ26、Ｉ／Ｏスイッチ28およびデータバス20を介したメモリ16へのそのリクエストされたデータ転送を行う。メモリ16へのデータオーバーフローを防止するために、書込みＦＩＦＯバッファ26は、プロセッサ14からのデータを捕捉してそのデータをメモリ16に所望の速度で均一に伝送するように動作する。たとえば、書込みＦＩＦＯバッファ26が存在しない場合、プロセッサ14からの大きいデータバーストのために、プロセッサ14とは異なる速度で動作している可能性のあるメモリ16のデータ帯域幅オーバーフローが発生する可能性が高い。
【００２５】
従来は、このようなデータのオーバーフローを阻止するために複雑で制限的なデータスケジューリング方式が使用されていた。従来のデータスケジューリング方法とは異なり、データレベル駆動される書込みＦＩＦＯバッファ26は、遅延その他の下流タイミング変化を効率的に適合させることができる。
【００２６】
技術的によく知られているように、ＦＩＦＯバッファは待ち行列に類似しており、この場合、その待ち行列中の最初の項目がその待ち行列から出力される最初の項目である。同様に、ＦＩＦＯバッファ24、26中の最初のデータは、ＦＩＦＯバッファ24、26から出力される最初のデータである。当業者は、本発明の技術的範囲を逸脱することなく従来のＦＩＦＯバッファ以外のバッファを使用できることを認識するであろう。たとえば、ＦＩＦＯバッファ24、26はレジスタファイルで置換できる。
【００２７】
メモリ管理装置18は、書込みＦＩＦＯバッファ26中のデータレベルを監視する。ＦＩＦＯデータレベルは、待ち行列の長さに類似している。書込みＦＩＦＯバッファ26中のデータレベルが１以上の書込みＦＩＦＯバッファしきい値を越えた場合、これらのＦＩＦＯバッファからのデータは、Ｉ／Ｏスイッチ28およびデータバス20を介してメモリ16に所望の速度で転送され、この速度はメモリ16の速度に基づいている。データしきい値を越えたことに応答して書込みＦＩＦＯバッファ26から転送されるデータの量は、これらＦＩＦＯバッファ中の全てのデータであってもよいし、あるいはデータレベルをこのしきい値より所望の量だけ低下させるのに十分なデータであってもよい。転送されるデータの正確な量は、メモリのデータバーストフォーマットに依存することができる。
【００２８】
メモリ管理装置18は、変化している動作条件を満足させるようにＦＩＦＯバッファしきい値を実時間でまたは必要に応じて調節するアルゴリズムを実行し、システム性能を最適化することができる。当業者は、この教示により過度の実験を行なわずに、実時間で変更可能なしきい値を容易に構成することができる。
【００２９】
書込みＦＩＦＯバッファ26のデータレベルが対応したしきい値を超えるまで、データは書込みＦＩＦＯバッファ26中に残っていてもよい。その代りに、利用可能なデータは書込みＦＩＦＯバッファ26から遅いほうの速度で絶えず引き出され、また、対応したしきい値を越えたデータレベルを有するＦＩＦＯバッファには速いほうの速度が使用される。速いデータ速度はデータレベルをしきい値より低い値に戻すために選択される。したがって、書込みＦＩＦＯバッファ26はデータレベル駆動される。
【００３０】
２以上のデータ速度を使用することにより、データがＦＩＦＯバッファ26中に留まらないようにされる。その代りに、メモリ管理装置18は書込みＦＩＦＯバッファ26を選択的にフラッシュするアルゴリズムを実行して、データがそこに捕捉されないようにしてもよい。その代りに、ＦＩＦＯバッファしきい値は、変化する処理環境に適応するように予め定められたアルゴリズムにしたがってメモリ管理装置18によってダイナミックに調節されてもよい。当業者は、過度の実験を行なわずに、このようなアルゴリズムをどのようにして実施すべきかを認識するであろう。
【００３１】
プロセッサ14がメモリ16からデータを読取らなければならないとき、プロセッサ14は、必要とされるデータアドレス情報を含む対応したメモリコマンドをメモリ管理装置18に送る。その後、メモリ管理装置18は、メモリコマンドに対応したデータがメモリ16からプロセッサ14に転送されることを容易にするためにデータアービトレータ12およびメモリ16を選択的に制御する。
【００３２】
メモリ管理装置18は読取りＦＩＦＯバッファ24のデータレベルを監視して、１以上の読取りＦＩＦＯバッファ24が対応した読取りＦＩＦＯバッファしきい値より低いデータレベルを有することを決定する。最初に、データはメモリ16からＩ／Ｏスイッチ28を通って、サブしきい値データレベルを有する読取りＦＩＦＯバッファに転送される。プロセッサ14が読取りＦＩＦＯバッファ24からデータを検索するにしたがって、メモリ管理装置18は、データレベルが低くなったとき、すなわち、それらが対応した読取りＦＩＦＯバッファしきい値より下に低下したときに、読取りＦＩＦＯバッファ24がデータを充填されることを保証する。ＦＩＦＯバッファ24、26は、データアービトレータとも呼ばれる効率的なメモリデータインターフェースを提供し、それは複数のビデオ機能の間でのメモリ共用を容易にする。
【００３３】
いくつかの構成において、読取りＦＩＦＯバッファ24はメモリ16からのデータバーストに適応することを容易にするため、プロセッサ14は特定の時間に処理できる量より多いデータを受取らない。
【００３４】
書込みＦＩＦＯバッファ26のように、データレベル駆動される読取りＦＩＦＯバッファ24は、メモリ16を、これとは異なる速度またはクロック速度で動作している可能性のあるプロセッサ14に対してインターフェースすることを容易にする。多くの応用において、メモリ16およびプロセッサ14は異なった速度で動作し、メモリ16が速い速度で動作することが多い。書込みＦＩＦＯバッファ26および読取りＦＩＦＯバッファ24は、これらの速度差に適応する。
【００３５】
したがって、読取りＦＩＦＯバッファ24は、本発明の特定の実施形態において直列−並列バッファとして動作する小型のＦＩＦＯバッファである。同様に、書込みＦＩＦＯバッファ26は、並列−直列バッファとして動作する小型のＦＩＦＯバッファである。これらのバッファ24、26は、タイミング不連続、データ速度差等に適応する。結果的に、データアービトレータ12はスケジュールされたタイミングを必要とせず、データレベル駆動される。
【００３６】
当業者は、いくつかの構成において読取りＦＩＦＯバッファ24および、または書込みＦＩＦＯバッファ26が複数のＦＩＦＯバッファではなく単一のＦＩＦＯバッファとして構成されることが可能であることを認識するであろう。ＦＩＦＯバッファ24、26は必ずしも血を直列−並列または並列−直列バッファとして動作しなくてもよい。
【００３７】
メモリ16から読取りを行なっている１以上のＦＩＦＯバッファ24は、これらＦＩＦＯバッファ24中のデータレベルがある定まったしきい値より低くなったときにサービスされる。メモリ16に書込みを行なっている１以上のＦＩＦＯバッファ26は、これらＦＩＦＯバッファ26中のデータレベルがある定まったしきい値より高くなったときにサービスされる。
【００３８】
メモリ管理装置18は、メモリリクエストを処理し易くするコマンドアービトレータ、メモリ制御装置等のような種々のよく知られたモジュールを含んでいることができる。当業者は、本発明の所定の実施形態または構成の要求を満たすためにメモリ管理装置をどのようにして構成し、あるいは、そうでなければ獲得するかを認識するであろう。
【００３９】
さらに、レベルインジケータ出力が組込まれているＦＩＦＯバッファのような、システム10を構成するために使用される種々のモジュールは、広く利用可能である。本発明の種々の実施形態を構成するために必要とされる種々のコンポーネントをレイセオン社に注文することができる。
【００４０】
図２−１乃至２−３は、図１のコンピュータシステム10の例示的な１実施形態10’のさらに詳細な部分ブロック図である。このシステム10’は、図１のシステム10のモジュールおよびコンポーネント12乃至28対応した種々のモジュール12’乃至28’を備えている。とくに、システム10’はプロセッサ14と、データアービトレータ12’と、メモリ16と、メモリ管理装置18’と、データバス20と、データフォーマッタ22’と、読取りＦＩＦＯバッファ24’と、書込みＦＩＦＯバッファ26’と、Ｉ／Ｏスイッチ28’とを備えている。システム10’のモジュールは、システム較正を容易にすると共にプロセッサ14とデータアービトレータ12’との間で転送されるものとしてどのデータが選択されているかをメモリ管理装置18’に知らせるためにデータフォーマッタ22’がメモリ管理装置18’とも通信していることを除き、図１のシステム10の対応したモジュールと同様に接続されている。システム10’の動作は図１のシステム10の動作に類似している。
【００４１】
データフォーマッタ22’は、特定用途向けであってデータ流制御を容易にするように機能する種々のレジスタ40を備えている。レジスタ40は、プロセッサ14をデータリクエスト検出およびデータ幅変換メカニズム42とインターフェースし、このデータリクエスト検出およびデータ幅変換メカニズム42はレジスタ40をＦＩＦＯバッファ24および26に対してインターフェースする。データフォーマッタ22’内に含まれている特定用途向け較正モジュール44は、プロセッサ14ならびにデータリクエスト検出およびデータ幅変換メカニズム42と通信し、特定の応用に必要とされる較正を行なうためにメモリ16に、およびメモリ16から特定較正データが転送されることを可能にする。
【００４２】
データアービトレータ12’は、読取りＦＩＦＯバッファ24をＩ／Ｏスイッチ28’に対してインターフェースするＦＩＦＯ読取りバス46を備えている。複数の書込みＦＩＦＯバス48およびマルチプレクサ（ＭＵＸ）50は、書込みＦＩＦＯバッファ26をＩ／Ｏスイッチ28’に対してインターフェースする。ＭＵＸ50は、メモリ管理装置18’から制御入力を受取る。
【００４３】
Ｉ／Ｏスイッチ28’は、メモリデータバス20をＦＩＦＯ読取りバス46とインターフェースする第１のＤフリップフロップ（ＤＦＦ）52を備えている。第２のＤＦＦ54は、メモリ管理装置18’からのデータＭＵＸ制御信号（Ｉ／Ｏ制御）をＩ／Ｏバッファ／増幅器56に対してインターフェースする。Ｉ／Ｏスイッチ28’中の第３のＤＦＦ58は、ＭＵＸ50をＩ／Ｏバッファ／増幅器56にインターフェースする。
【００４４】
第１のＤＦＦ52および第３のＤＦＦ58は、バスインターフェースを容易にするレジスタ（フリップフロップのセット）として動作する。第２のＤＦＦ54はＩ／Ｏスイッチ28’を通ってバス方向を制御するため、それは単一のフリップフロップであってもよい。
【００４５】
メモリ管理装置18’は、種々のコマンド発生器62と通信しているコマンドアービトレータ60を備えており、これらコマンド発生器62は、プロセッサ14およびデータアービトレータ12’を介して受取られた入力に応答して適切なメモリコマンドおよびアドレス組合せを発生する。コマンド発生器62は、コマンドアービトレータ60を第２のＭＵＸ64に対してインターフェースし、この第２のＭＵＸ64は、コマンドアービトレータ60からの制御シグナリングに応答してメモリインターフェース66へのコマンド流を制御する。
【００４６】
この実施形態において、メモリ16は同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）または強化されたＳＤＲＡＭ（ＥＳＤＲＡＭ）である。メモリインターフェース66は、読取りおよび書込みコマンドのようなコマンドを第１のＩ／Ｏセル68を介してメモリ（ＳＤＲＡＭ）16に選択的に与え、また、対応したアドレス情報を第２のＩ／Ｏセル70を介してメモリ16に与える。Ｉ／Ｏセル68および70は、対応したＤフリップフロップ（ＤＦＦ）72、74およびバッファ／増幅器76、78を備えている。プロセッサ14は、所定のメモリアクセス動作を実施するために必要とされる、データフォーマッタ22’のデータリクエスト検出およびデータ幅変換メカニズム42のような、種々のモジュールおよびバスを選択的に制御する。
【００４７】
この特定の実施形態において、ＦＩＦＯバッファ24、26は、任意のシステムデータ路パイプライン遅延に適応するのに十分なデータ記憶容量を有している。ＦＩＦＯバッファ24、26は、データ路パラメータを処理し、コマンドを保持し、専用読取り動作（ｕＰ読取り）および書込み動作（ｕＰ書込み）に対するデータを記憶するＦＩＦＯバッファを備えている。
【００４８】
この特定の実施形態において、データ路パラメータを処理するＦＩＦＯバッファ（データリクエスト検出およびデータ幅変換メカニズム42に接続されたデータ路ＦＩＦＯバッファ）は単一クロック同期動作を示し、２重ポートブロックＲＡＭである。これは、いくつかの構成可能な論理セルを使用する必要性をなくす。データ路ＦＩＦＯバッファは組込みバス幅変換機能を示す。さらに、いくつかのデータ捕捉レジスタは２重バッファされる。残りのｕＰ読取りおよびｕＰ書込みＦＩＦＯバッファはまたブロックＲＡＭを介して実施され、バス幅変換機能と共に二重クロック同期動作を示す。
【００４９】
この特定の実施形態において、その権利が本出願人に譲渡され、ここにおいて参考文献とされている本出願人の別出願の米国特許出願第 10/844,284号（2004年12月5日出願、“EFFICIENT MEMORY CONTROLLER,”Attorney Docket No.PD-03W077）にさらに詳細に記載されているように、メモリインターフェース66は、命令デコーダおよびシーケンサをマスタースレイブパイプライン形態で使用するＳＤＲＡＭ／ＥＳＤＲＡＭ制御装置である。メモリインターフェース66はまた、上記の参考文献とされた暫定的な特許出願（“CYCLE TIME IMPROVED ESDRAM/SDRAM CONTROLLER FOR FREQUENT CROSS-PAGE AND SEQUENTIAL ACCESS APPLICATIONS”）にさらに詳細に記載されている。
【００５０】
システム10’におけるＦＩＦＯバッファ24、26の動作は、図１のＦＩＦＯバッファ24、26の動作に類似している。ＦＩＦＯバッファ24、26のデータレベルは、以下の表に示されているように、メモリ管理装置18の種々のコマンド発生器62の動作を行わせ／発生させる：
【表１】
2007524917.tif 000003
【００５１】
プロセッサ14は残留フラッシュ信号（残留フラッシュ）をコマンドアービトレータ60に供給し、書込みＦＩＦＯしきい値に到達していないときでも、メモリへの書込みコマンド発生器62にメモリ書込みコマンドを選択的に発生させる。この実施形態において、残留フラッシユ信号は、ＦＩＦＯしきい値の正確な倍数ではないデータレベルを有するデータフレームの端部で発生される。これは、残留データがこのようなフレームの後に書込みＦＩＦＯバッファ26中に留まらないようにする。
【００５２】
図３は、図１乃至図２−３のコンピュータシステムに適用可能な例示的な動作シナリオ100を示す概略図である。図１および３を参照すると、シナリオ100には、第１の読取りＦＩＦＯバッファ102と、第２の読取りＦＩＦＯバッファ104と、第１の書込みＦＩＦＯバッファ106と、および第２の書込みＦＩＦＯバッファ108とがかかわっている。ＦＩＦＯバッファ102乃至108はプロセッサ14および主メモリ16と通信しているメモリ管理装置18のＦＩＦＯ満杯フラグモニタ110と通信する。ＦＩＦＯバッファ102乃至108は、対応したしきい値122乃至128を超えたときに対応した満杯フラグ112乃至118をＦＩＦＯ満杯フラグモニタ110に送信する。
【００５３】
一般に、読取りＦＩＦＯバッファ102および、または104(24)中のデータレベルが対応したしきい値122および、または124より低かったとき、対応した満杯フラグ112および、または114が設定され、それらがメモリ管理装置18をトリガーして読取りＦＩＦＯデータ132のバーストをメモリ16からこれらの読取りＦＩＦＯバッファ102および、または104にそれぞれ放出する。同様に、書込みＦＩＦＯバッファ106および、または108中のデータレベルが対応したしきい値126および、または128を超えたとき、対応した満杯フラグ116および、または118が設定され、それらがメモリ管理装置18をトリガーして書込みＦＩＦＯデータ134のバーストをこれらの書込みＦＩＦＯバッファ106および、または108からメモリ16に転送する。
【００５４】
この特定のシナリオ100において、第１の読取りＦＩＦＯバッファ102中のデータレベルは第１の読取りＦＩＦＯバッファしきい値122より低い。したがって、対応した満杯フラグ112が設定され、それがメモリ管理装置18に読取りＦＩＦＯデータ132のバーストをメモリ16から読取りＦＩＦＯバッファ102に放出させる。このために、第１の読取りＦＩＦＯバッファ102中の読取りデータがしきい値122を超え、それによって第１の読取り満杯フラグ112がオフになる。
【００５５】
同様に、第２の書込みＦＩＦＯバッファ108中のデータレベルは対応した書込みＦＩＦＯしきい値128を超えている。したがって、対応した書込みＦＩＦＯ満杯フラグ118が設定され、それがメモリ管理装置18に書込みＦＩＦＯデータ134のバーストを第２の書込みＦＩＦＯバッファ108からメモリ16に転送させる。
【００５６】
プロセッサ14とＦＩＦＯバッファ102乃至108との間におけるパラメータの読取りおよび書込みを含むデータ転送は、システムクロック速度で、すなわち、プロセッサ14のクロック速度で行なわれる。ＦＩＦＯバッファ102乃至108とメモリ16との間におけるデータ転送は、メモリクロック速度で行なわれる。パラメータ読取りおよび書込みならびにメモリ読取りおよび書込み動作は同時に行なわれることができる。ＦＩＦＯバッファ102乃至108の深さは、少なくとも、対応したしきい値レベル122乃至128にデータバースト当りのデータ量を加えたものと同じ深さである。種々のパイプライン段130の挿入または削除では、メモリタイミング方式は変わらないことに注意すべきである。
【００５７】
図４は、図３の動作シナリオにより使用するために構成された方法140のフロー図である。図３および４を参照すると、この方法140は、フラグ決定ステップ142においてＦＩＦＯフラグ112乃至118が設定されるまで停止している。
【００５８】
次のサービスチェックステップ144において、満杯フラグモニタ110は、ＦＩＦＯバッファ102乃至108のどれがサービスされるべきかを、満杯フラグ112乃至118のどれが設定されたかに基づいて決定する。第１の読取りＦＩＦＯ満杯フラグ112が設定された場合、第１の転送ステップ146において、メモリ16からデータのバーストがメモリクロック速度で転送される。第２の読取りＦＩＦＯ満杯フラグ114が設定された場合、第２の転送ステップ148において、メモリ16からデータのバーストがメモリクロック速度で転送される。第１の書込みＦＩＦＯ満杯フラグ116が設定された場合、第３の転送ステップ150において、データのバーストが第１の書込みＦＩＦＯバッファ106からメモリ16にメモリクロック速度で転送される。同様に、第２の書込みＦＩＦＯ満杯フラグ118が設定された場合、第４の転送ステップ152において、データのバーストが第２の書込みＦＩＦＯバッファ108からメモリ16にメモリクロック速度で転送される。
【００５９】
ステップ146乃至152の後、制御はフラグ決定ステップ142に戻される。満杯フラグ112乃至118は、どのＦＩＦＯバッファがサービスされるべきかをどのフラグがトリガーされたかに基づいて決定するのを容易にするために符号化された優先度であってもよい。ＦＩＦＯ満杯フラグ112乃至118は同時に設定されることができる。
【００６０】
図５は、本発明の１実施形態による方法200のフロー図である。図１および５を参照すると、最初のリクエスト決定ステップ202において、メモリ管理装置18は、読取りＦＩＦＯバッファ24および、または書込みＦＩＦＯバッファ26によりそれぞれ開始されたのはメモリ読取りコマンドであるか、あるいは書込みコマンドであるか、もしくはその両者であるかを決定する。ＦＩＦＯデータレベルがメモリリクエストを駆動する。
【００６１】
書込みコマンドが開始されている場合、制御は書込みＦＩＦＯレベル決定ステップ204に移行される。読取りコマンドが開始されている場合、制御は読取りＦＩＦＯレベル決定ステップ214に移される。読取りおよび書込みの両コマンドが開始されている場合、制御は書込みＦＩＦＯレベル決定ステップ204および読取りＦＩＦＯレベル決定ステップ214にそれぞれ移行される。
【００６２】
書込みＦＩＦＯレベル決定ステップ204において、メモリ管理装置18は、書込みＦＩＦＯバッファ26のレベルを監視し、１以上のレベルが対応した書込みＦＩＦＯしきい値を超えたか否かを決定する。１以上の書込みＦＩＦＯバッファ26が対応したしきい値を超えたデータレベルを有している場合、書込みＦＩＦＯからメモリにデータを転送するステップ206に制御が移される。他の場合、プロセッサから書込みＦＩＦＯにデータを転送するステップ208に制御が移される。当業者は、書込みＦＩＦＯレベル決定ステップ204において実施されるＦＩＦＯレベルしきい値の比較が本発明の技術的範囲を逸脱することなく以上のものの比較のような別のタイプの比較であることが可能なことを認識するであろう。
【００６３】
書込みＦＩＦＯからメモリにデータを転送するステップ206において、図１のメモリ管理装置18は、書込みＦＩＦＯバッファ26がデータをバーストするか、あるいは、そうでなければ、この書込みＦＩＦＯバッファ26からのデータであって対応したしきい値を超えたデータレベルを有するものをメモリ16に均一に転送することを可能にする。データは、対応したデータレベルがしきい値より所望の量だけ低下するまで、書込みＦＩＦＯバッファ26からメモリ16に所望の速度（メモリクロック速度）で転送される。書込みＦＩＦＯバッファ26がデータをメモリにバーストすると同時に、必要とされるデータがプロセッサ14から書込みＦＩＦＯバッファ26に所望の速度で転送可能であることに注意すべきである。これに続いて、プロセッサから書込みＦＩＦＯにデータを転送するステップ208に制御が移される。いくつかの形態では、書込みＦＩＦＯバッファ26中のデータレベルを対応したしきい値より所望の量だけ低い値に戻すのに単一のデータバーストで十分である。
【００６４】
プロセッサから書込みＦＩＦＯバッファにデータを転送するステップ208において、未決定のメモリリクエスト、すなわち、コマンドに対応したデータは、必要とされるだけ所望の速度でプロセッサ14から書込みＦＩＦＯバッファ26に転送される。任意の所定の時間にプロセッサ14から書込みＦＩＦＯバッファ26へのデータ転送速度はしばしば、書込みＦＩＦＯバッファ26からメモリ16へのデータ転送速度とは異なっている。しかしながら、長期間にわたる平均転送速度は等しい可能性がある。次に、オプションのリクエストチェックステップ210に制御が移される。
【００６５】
オプションのリクエストチェックステップ210において、メモリ管理装置18および、またはプロセッサ14は、所望のメモリリクエストがサービスされたか否かを決定する。所望のメモリリクエストがサービスされており、次の遮断ステップ212において遮断が行なわれた（システムがオフにされた）場合、方法200は終了する。その他の場合には、最初のリクエスト決定ステップ202に制御が戻される。
【００６６】
最初のリクエスト決定ステップ202において、読取りメモリリクエストが未決定であることがメモリ管理装置18により決定された場合には、制御は読取りＦＩＦＯレベル決定ステップ214に移行される。この読取りＦＩＦＯレベル決定ステップ214において、メモリ管理装置18は、読取りＦＩＦＯバッファ24の１以上のデータレベルが対応した読取りＦＩＦＯしきい値より低いか否かを決定する。データレベルが対応したしきい値より低い場合、メモリから読取りＦＩＦＯバッファにデータを転送するステップ216に制御が移される。その他の場合には、読取りＦＩＦＯからプロセッサにデータを転送するステップ218に制御が移される。当業者は、ステップ214で行なわれたＦＩＦＯレベルしきい値比較が本発明の技術的範囲を逸脱することなく以下のものの比較のような別のタイプの比較であることが可能なことを認識するであろう。
【００６７】
メモリから読取りＦＩＦＯバッファにデータを転送するステップ216において、メモリ管理装置18はデータをバーストすることを容易にし、あるいは、そうでなければ、読取りＦＩＦＯバッファ24中のデータレベルが対応したしきい値を所望の量だけ超えるまで、もしくは特定のリクエストに対するメモリ16からのデータ転送が終了するまで、メモリ16からこれらの読取りＦＩＦＯバッファ24にデータを均等に転送する。メモリ16が読取りＦＩＦＯバッファ24にデータをバーストすると同時に、必要とされるデータが読取りＦＩＦＯバッファ24からプロセッサ14に所望の速度で転送可能であることに注意すべきである。それに続いて、読取りＦＩＦＯバッファからプロセッサにデータを転送するステップ218に制御が移される。
【００６８】
読取りＦＩＦＯバッファからプロセッサにデータを転送するステップ218において、メモリ管理装置18は、必要とされるデータが読取りＦＩＦＯバッファ24からプロセッサ14に予め定められた速度で転送されることを容易にし、この予め定められた速度は、読取りＦＩＦＯバッファ24とメモリ16との間のデータ転送速度とは異なっていてもよい。いくつかの構成において、書込みＦＩＦＯデータレベルが関連した書込みＦＩＦＯしきい値より低いとき、あるいは読取りＦＩＦＯデータレベルが関連した読取りＦＩＦＯしきい値より大きいときのようなある定まったリクエストが終了しかけているとき、ステップ208および218は、データがＦＩＦＯバッファ24、26中に留まらないようにすることができる。その後、リクエストチェックステップ210に制御が移され、ここで、所望のデータリクエストがまだサービスされていない場合、方法は元のステップ202に戻る。
【００６９】
ステップ204および214から始まるこの方法200の両側は同時に独立して動作することができることに注意すべきである。たとえば、ステップ204乃至208によって表されている左側は任意の終了段階におけるものであってもよく、一方ステップ214乃至218によって表されている右側は任意の終了段階におけるものであってよい。さらに、ステップ206および208は並列におよび同時に動作でき、本発明の技術的範囲を逸脱することなく同じステップの一部として行われることができる。たとえば、ステップ208の機能はステップ206内で行われることができる。同様に、ステップ216および218は並列におよび同時に動作でき、同じステップの一部として行われることができる。さらに、当業者は、ステップ206および216を含む種々のステップ内において別のプロセスが同時に行なわれることが可能なことを認識するであろう。さらに、この方法200のいくつかの例は、本発明の技術的範囲を逸脱することなく並列に進行することができる。
【００７０】
図６ａは、本発明の１実施形態によるコンピュータシステム230のブロック図である。このコンピュータシステム230は、同数のメモリ232、234およびＦＩＦＯバッファ24、26を有している。コンピュータシステム230は、Ｎ個の読取りメモリ（読取りメモリブロック）232と、Ｎ個の書込みメモリ（書込みメモリブロック）234とを含んでいる。Ｎ個の読取りメモリ232はそれぞれ、Ｎ個の対応した読取りメモリ制御装置236と通信している。Ｎ個の読取りメモリ制御装置236はそれぞれ、対応した読取りＦＩＦＯバッファ24と通信してプロセッサ14とインターフェースするのを容易にしている。同様に、Ｎ個の書込みメモリ234はそれぞれ、Ｎ個の対応した書込みメモリ制御装置238と通信している。Ｎ個の書込みメモリ制御装置238はそれぞれ、対応した書込みＦＩＦＯバッファ26と通信してプロセッサ14とインターフェースするのを容易にする。
【００７１】
ＦＩＦＯバッファ24、26のそれぞれとプロセッサ14との間の動作は、プロセッサとＦＩＦＯバッファとの間のプロセスと呼ばれている。このプロセッサとＦＩＦＯバッファとの間のプロセスは独立的であり、以下さらに詳細に説明するように同時に発生することができる。プロセッサとＦＩＦＯバッファとの間のプロセスには、プロセッサ14によって読取りＦＩＦＯバッファ24に発生されたパラメータ読取りコマンド（Ｐ１ ｒｄ・・ＰＮ ｒｄ）に応答して読取りＦＩＦＯバッファ24からプロセッサ14にデータを転送するプロセスが含まれている。プロセッサとＦＩＦＯバッファとの間のプロセスには、パラメータ書込みコマンド（Ｐ１ ｗｒ・・ＰＮ ｗｒ）がプロセッサ14によって書込みＦＩＦＯバッファ26に対して発生されたときにプロセッサ14から書込みＦＩＦＯバッファ26にデータを転送するプロセスも含まれる。
【００７２】
メモリ232、234のそれぞれと対応したＦＩＦＯバッファ24、26との間の対応したメモリ制御装置236、238を介した動作は、メモリとＦＩＦＯバッファとの間のプロセスと呼ばれている。このメモリとＦＩＦＯバッファとの間のプロセスは独立的であり、以下さらに詳細に説明するように同時に発生することができる。メモリとＦＩＦＯバッファとの間のプロセスには、読取りＦＩＦＯ満杯フラグが対応した読取りメモリ制御装置236に転送されることにより示される特定の読取りＦＩＦＯしきい値より低い読取りＦＩＦＯデータレベルに応答して読取りメモリ232から読取りＦＩＦＯバッファ24にデータをバーストするプロセスが含まれている。メモリとＦＩＦＯバッファとの間のプロセスには、書込みＦＩＦＯバッファ26中のデータレベルが特定の書込みＦＩＦＯしきい値を超えたときに対応した書込みメモリ制御装置238に転送される書込みＦＩＦＯ満杯フラグにより示されたときに、書込みＦＩＦＯバッファ26から書込みメモリ234にデータを転送することも含まれている。
【００７３】
図６ｂは、図６ａのシステム230によって使用される種々のサブプロセス242を有する全体的なプロセス240を示すプロセスフロー図である。図６ａおよび６ｂを参照すると、システム230は最初に複数の同時のサブプロセス242をスタートさせる。このサブプロセス242には、並列サブプロセスの第１のセット244と、並列サブプロセスの第２のセット246と、並列サブプロセスの第３のセット248と、並列サブプロセスの第４のセット250とが含まれている。第１の並列サブプロセスのセット244および第２の並列サブプロセスのセット246は、メモリとＦＩＦＯバッファとの間のプロセスである。第３の並列サブプロセスのセット248および第４の並列サブプロセスのセット250は、プロセッサとＦＩＦＯバッファとの間のプロセスである。
【００７４】
第１の並列サブプロセスのセット244において、第１のしきい値チェックステップ252において、読取りメモリ制御装置236は対応した読取りＦＩＦＯバッファ24からの読取りＦＩＦＯ満杯フラグを監視する。第１のしきい値チェックステップ252は、関連した読取りＦＩＦＯデータレベルが特定の読取りＦＩＦＯしきい値より低いことが１以上の読取りＦＩＦＯ満杯フラグにより示されるまで、読取りＦＩＦＯ満杯フラグのチェックを続ける。このような場合、データレベルが特定の読取りしきい値より低い読取りＦＩＦＯと関連している第１の並列サブプロセスのセット244の１以上のプロセスは、対応した読取りバーストステップ254に進む。
【００７５】
読取りバーストステップ254において、トリガーされた満杯フラグを有する読取りＦＩＦＯに対応した制御装置236は対応したメモリ232から対応した読取りＦＩＦＯバッファ24へのデータバーストを開始し、これは、対応した読取りＦＩＦＯデータレベルが対応した読取りＦＩＦＯしきい値を超えるまで行なわれる。適切なメモリ232から適切な読取りＦＩＦＯバッファ24にデータをバーストした後、ステップ254を終了した第１の並列サブプロセスのセット244のサブプロセスは、第１の遮断チェックステップ256において遮断が検出されない限り、最初のしきい値チェックステップ252に戻る。システム遮断コマンドを受けたサブプロセスは終了する。
【００７６】
第２のサブプロセスのセット246では、第２のしきい値チェックステップ258において書込みメモリ制御装置238は対応した書込みＦＩＦＯバッファ26からの書込みＦＩＦＯ満杯フラグを監視する。対応したＦＩＦＯしきい値を超えたデータレベルを有する書込みＦＩＦＯバッファ26に関連したサブプロセスは書込みバーストステップ260に進む。
【００７７】
書込みバーストステップ260において、対応した書込みＦＩＦＯしきい値を予め定められた量だけ超えたデータレベルを有する書込みＦＩＦＯ（トリガーされた書込みＦＩＦＯ）に関連した書込みメモリ制御装置238は、トリガーされた書込みＦＩＦＯバッファ238から対応したメモリ234へのデータバーストを開始する。データバーストは、これらのトリガーされた書込みＦＩＦＯバッファ238中のデータレベルが対応した書込みＦＩＦＯしきい値より予め定められた量だけ低くなるまで行なわれる。
【００７８】
１以上の並列サブプロセス246が関連した書込みバーストステップ260を完了した後、サブプロセス246は、第２の遮断チェックステップ262において遮断が検出されない限り、第２のしきい値チェックステップ258に戻る。システム遮断コマンドを受けたサブプロセス246は終了する。
【００７９】
第３のサブプロセスのセット248では、読取りパラメータ監視ステップ264において読取りＦＩＦＯバッファ24がプロセッサ14からのパラメータ読取りコマンドを監視する。１以上のパラメータ読取りコマンドが１以上の対応した読取りＦＩＦＯバッファ24によって受取られたとき、対応した読取りデータ転送ステップ266が活性化される。
【００８０】
読取りデータ転送ステップ266において、パラメータ読取りコマンドによって指定されたように、プロセッサ14からパラメータ読取りコマンドを受取った読取りＦＩＦＯバッファ236からプロセッサ14にデータが転送される。それに続いて、第３の遮断チェックステップ268においてシステム遮断が決定されない限り、読取りパラメータ監視ステップ264に制御が戻される。システム遮断コマンドを受けたサブプロセス248は終了する。
【００８１】
第４のサブプロセスのセット250では、書込みパラメータ監視ステップ270において書込みＦＩＦＯバッファ26がプロセッサ14からのパラメータ書込みコマンドを監視する。１以上のパラメータ書込みコマンドが１以上の対応した書込みＦＩＦＯバッファ26によって受取られたとき、対応した書込みデータ転送ステップ272が付勢される。
【００８２】
書込みデータ転送ステップ272において、パラメータ書込みコマンドによって指定されたようにプロセッサ14から書込みＦＩＦＯバッファ26にデータが転送される。それに続いて、第４の遮断チェックステップ274においてシステム遮断が決定されない限り、書込みパラメータ監視ステップ270に制御が戻される。システム遮断コマンドを受けたサブプロセス250は終了する。
【００８３】
したがって、全体的なプロセス240を使用するコンピュータシステム230は、ＦＩＦＯバッファ24、26を戦略的に使用して、プロセッサ14と多数のメモリ232、234との間におけるデータ転送を最適化する。
【００８４】
図７ａは、メモリがＦＩＦＯバッファ24、26より少ない（１個のメモリ16を有する）本発明の１実施形態によるコンピュータシステム280のブロック図である。このシステム280は、図１のデータフォーマッタが図７ａには示されていないか、あるいは図７ａではプロセッサ14内に組込まれていることを除いて、図１のシステムに類似している。さらに、Ｉ／Ｏスイッチ28、メモリ管理装置／制御装置18および付随するＦＩＦＯ満杯フラグモニタ282は、メモリとＦＩＦＯとのインターフェース284の一部として示されている。
【００８５】
読取りＦＩＦＯバッファ24および書込みＦＩＦＯバッファ26は、メモリとＦＩＦＯとのインターフェース284に対して満杯フラグまたは別のデータレベルインジケータを与える。読取りＦＩＦＯバッファ24は、それらのそれぞれの読取りＦＩＦＯデータレベルが対応した読取りＦＩＦＯしきい値より低くなったことが対応した読取りＦＩＦＯ満杯フラグより示されたときに、メモリ16から読取りＦＩＦＯバッファ24にバーストされたデータを受取る。読取りＦＩＦＯバッファ24は、パラメータ読取りコマンドの受取りに応答してデータをプロセッサ14に転送する。
【００８６】
同様に、書込みＦＩＦＯバッファ26は、プロセッサ14からパラメータ書込みコマンドを受取った後にプロセッサ14からデータを受取る。データは、書込みＦＩＦＯバッファ26のデータレベルが特定の書込みＦＩＦＯしきい値を超えたことが書込みＦＩＦＯ満杯フラグによって示されたときに書込みＦＩＦＯバッファ26からメモリとＦＩＦＯとのインターフェース284を介してメモリ16にバーストされる。
【００８７】
図７ｂは、図７ａのシステム280によって使用される種々の並列サブプロセス292を有する全体的なプロセス290を示すプロセスフロー図である。並列サブプロセス292には、メモリとＦＩＦＯとの間のプロセスの第１のセット294と、ＦＩＦＯからプロセッサへのサブプロセスの第２のセット296と、プロセッサからＦＩＦＯへのサブプロセスの第３のセット298とが含まれている。
【００８８】
図７ａおよび７ｂを参照すると、全体的なプロセス290はサブプロセス294乃至298を同時に開始させる。メモリとＦＩＦＯとの間のプロセスの第１のセット294は、リクエスト決定ステップ300から始まる。このリクエスト決定ステップ300において、メモリとＦＩＦＯとのインターフェース284のメモリ管理装置／制御装置18および付随する満杯フラグモニタ282は、１以上の読取りまたは書込みメモリリクエストがＦＩＦＯデータレベルに応答して開始されたことをＦＩＦＯ満杯フラグに基づいて決定するために使用される。リクエスト決定ステップ300により決定されるメモリリクエストが生成されない場合、このステップ300は、１以上のリクエストが生成されるまで、ＦＩＦＯ満杯フラグによって開始されたメモリリクエストをチェックし続ける。
【００８９】
１以上のリクエストが生成されたとき、優先度符号化ステップ302に制御が移行し、このステップ302において、メモリ管理装置／制御装置18は、どのリクエストが最初に処理されるべきかを予め定められた優先度符号化アルゴリズムにしたがって決定する。当業者は、本発明の技術的範囲内において技術的に知られている優先度符号化アルゴリズムを含む種々の優先度符号化アルゴリズムを使用してプロセス290を実施することができることを認識するであろう。
【００９０】
読取りメモリリクエストに対して、制御は読取りバーストステップ304に移り、このステップ304においてデータはメモリ16からフラグを与えられたＦＩＦＯバッファ24、すなわち対応した読取りＦＩＦＯしきい値より予め定められた量だけ低いデータレベルを有するＦＩＦＯバッファ24にバーストされる。データバーストは、フラグを与えられたＦＩＦＯバッファ24中のデータレベルが対応した読取りＦＩＦＯしきい値に到達するか、あるいはそれより予め定められた量だけ高くなるまで行なわれる。この場合、第１の遮断決定ステップ308において１以上の遮断が検出されない限り、制御はリクエスト決定ステップ300に戻される。システム遮断コマンドを受けたサブプロセス294は終了する。
【００９１】
書込みメモリリクエストに対して、制御は書込みバーストステップ306に移り、このステップ306においてデータはフラグを与えられた書込みＦＩＦＯバッファ26からメモリ16にバーストされる。フラグを与えられた書込みＦＩＦＯバッファ26は、対応した書込みＦＩＦＯしきい値より予め定められた量だけ高いデータレベルを有するＦＩＦＯバッファである。データバーストは、フラグを与えられた書込みＦＩＦＯバッファ26中のデータレベルが対応した書込みＦＩＦＯしきい値より予め定められた量だけ低くなるまで行なわれる。この場合、第１の遮断決定ステップ308において１以上の遮断が検出されない限り、制御はリクエスト決定ステップ300に戻される。システム遮断コマンドを受けたサブプロセス294は終了する。
【００９２】
ＦＩＦＯからプロセッサへのサブプロセスの第２のセット296は、パラメータ読取りステップ310で開始する。パラメータ読取りステップ310には、読取りＦＩＦＯバッファ24がパラメータ読取りコマンドに対するプロセッサ14の出力を監視することが含まれる。１以上のパラメータ読取りコマンドが１以上対応した読取りＦＩＦＯバッファ24（活動化された読取りＦＩＦＯバッファ24）によって検出されたとき、対応したＦＩＦＯからプロセッサへのステップ312が始まる。
【００９３】
ＦＩＦＯからプロセッサへのステップ312において、データは付勢された読取りＦＩＦＯバッファ24からプロセッサ14にパラメータ読取りコマンドにしたがって転送される。次に、第２の遮断決定ステップ314において１以上のシステム遮断が検出されない限り、パラメータ読取りステップ310に制御が戻される。システム遮断コマンドを受けたサブプロセス296は終了する。
【００９４】
プロセッサからＦＩＦＯへのサブプロセスの第３のセット298は、パラメータ書込みステップ316で始まる。パラメータ書込みステップ316には、書込みＦＩＦＯバッファ26がパラメータ書込みコマンドに対するプロセッサ14の出力を監視することが含まれる。１以上のパラメータ書込みコマンドが１以上の対応した書込みＦＩＦＯバッファ26（活動化された書込みＦＩＦＯバッファ26）によって検出されたとき、対応したプロセッサからＦＩＦＯへのステップ318が始まる。
【００９５】
プロセッサからＦＩＦＯへのステップ318において、データはプロセッサ14から付勢された書込みＦＩＦＯバッファ26にパラメータ書込みコマンドにしたがって転送される。それに続いて、第３の遮断決定ステップ320において１以上のシステム遮断が検出されない限り、パラメータ書込みステップ316に制御が戻される。システム遮断コマンドを受けたサブプロセス298は終了する。
【００９６】
したがって、全体的なプロセス290を使用するコンピュータシステム280は、ＦＩＦＯバッファ24、26を戦略的に使用して、プロセッサ14とメモリ16との間におけるデータ転送を最適化する。
【００９７】
以上、本発明を特定の適用に対する特定の実施形態を参照して説明してきた。当業者は、本発明の技術的範囲内の付加的な修正、適用および実施形態を認識するであろう。
【００９８】
したがって、添付された特許請求の範囲は、本発明の技術的範囲内における任意および全てのこのような適用、修正および実施形態をカバーするものである。
【図面の簡単な説明】
【００９９】
【図１】本発明の１実施形態によるメモリデータアービトレータを使用するコンピュータシステムのブロック図。
【図２−１】図１のコンピュータシステムの例示的な１実施形態のさらに詳細な部分ブロック図。
【図２−２】図１のコンピュータシステムの例示的な１実施形態のさらに詳細な部分ブロック図。
【図２−３】図１のコンピュータシステムの例示的な１実施形態のさらに詳細な部分ブロック図。
【図３】図１乃至図２−３のコンピュータシステムの例示的な動作シナリオを示す概略図。
【図４】図３の動作シナリオにより使用するように適合された方法のフロー図。
【図５】本発明の１実施形態による方法のフロー図。
【図６ａ】同数のメモリおよびＦＩＦＯを備えた本発明の１実施形態によるコンピュータシステムのブロック図。
【図６ｂ】図６ａのシステムによって使用される種々のサブプロセスを有する全体的なプロセスを示すプロセスフロー図。
【図７ａ】メモリがＦＩＦＯより少ない本発明の１実施形態によるコンピュータシステムのブロック図。
【図７ｂ】図７ａのシステムによって使用される種々のサブプロセスを有する全体的なプロセスを示すプロセスフロー図。
【図１】
2007524917.tif 000004
【図２−１】
2007524917.tif 000005
【図２−２】
2007524917.tif 000006
【図２−３】
2007524917.tif 000007
【図３】
2007524917.tif 000008
【図４】
2007524917.tif 000009
【図５】
2007524917.tif 000010
【図６ａ】
2007524917.tif 000011
【図６ｂ】
2007524917.tif 000012
【図７ａ】
2007524917.tif 000013
【図７ｂ】
2007524917.tif 000014
【国際調査報告】
2007524917.tif 000015
2007524917.tif 000016
2007524917.tif 000017