(57)【要約】  本発明は、マルチスレッド・オペレーティング・システムに基づくデータ処理システムに関する。このデータ処理システムは、複数のスレッドに基づいてデータを処理する少なくとも１つのプロセッサ（ＰＲＯＣ）と、前記少なくとも１つのプロセッサ（ＰＲＯＣ）と少なくとも１つのコントローラ・ユニット（ＣＵ）に接続された外部周辺装置（ＰＤ）との間の通信を制御する前記少なくとも１つのコントローラ・ユニット（ＣＵ）とを備える。前記少なくとも１つのコントローラ・ユニット（ＣＵ）は、前記少なくとも１つのコントローラ・ユニット（ＣＵ）に接続された前記周辺装置（ＰＤ）からのデータをバッファリングする少なくとも１つのバッファ・メモリ（ＢＭ）と、前記少なくとも１つのバッファ・メモリ（ＢＭ）を、それぞれが専用プリフェッチ・レジスタ（Ａｄｄｒ＿０−Ａｄｄｒ＿３）を有するＮ個のバンク（Ｃ０〜Ｃ３）にマッピングすることによって、前記少なくとも１つのバッファ・メモリ（ＢＭ）へのアクセスを管理する少なくとも１つのメモリ管理ユニット（ＭＭＵ）とを備える。前記複数のスレッド（Ｔ０〜Ｔ３）のうちの少なくとも１つが、前記Ｎ個のバンク（Ｃ０〜Ｃ３）のうちの１つと、その専用プリフェッチ・レジスタ（Ａｄｄｒ＿０〜Ａｄｄｒ＿３）とにマッピングされる。
2008509470.tif 000002
【特許請求の範囲】
【請求項１】
マルチスレッド・オペレーティング・システムに基づくデータ処理システムであって、
複数のスレッドに基づいてデータを処理する少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサと少なくとも１つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記少なくとも１つのコントローラ・ユニットとを備え、
前記少なくとも１つのコントローラ・ユニットが、前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも１つのバッファ・メモリと、前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって、前記少なくとも１つのバッファ・メモリへのアクセスを管理する少なくとも１つのメモリ管理ユニットとを備え、前記複数のスレッドの少なくとも１つが、前記Ｎ個のバンクのうちの１つとその専用プリフェッチ・レジスタとにマッピングされるデータ処理システム。
【請求項２】
スレッド識別情報を記憶するスレッド・レジスタをさらに備える、請求項１に記載のデータ処理システム。
【請求項３】
前記スレッド識別情報が追加アドレス線の形でエンコードされる、請求項２に記載のデータ処理システム。
【請求項４】
マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも１つのプロセッサと、少なくとも１つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記コントローラ・ユニットであって、
前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも１つのバッファ・メモリと、
前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって、前記少なくとも１つのバッファ・メモリへのアクセスを管理する少なくとも１つのメモリ管理ユニットとを備え、前記複数のスレッドの少なくとも１つが、前記Ｎ個のバンクのうちの１つとその専用プリフェッチ・レジスタとにマッピングされるコントローラ・ユニット。
【請求項５】
マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも１つのプロセッサと、前記少なくとも１つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する方法であって、
複数のスレッドに基づいてデータを処理するステップと、
前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングするステップと、
前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって、前記少なくとも１つのバッファ・メモリへのアクセスを管理するステップとを含み、前記複数のスレッドの少なくとも１つが、前記Ｎ個のバンクのうちの１つとその専用プリフェッチ・レジスタとにマッピングされる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサと外部周辺装置との間の通信を制御するデータ処理システム、コントローラ、および方法に関する。
【背景技術】
【０００２】
現代のマイクロプロセッサ・ベースのデータ処理システムの性能を高める場合には、システム機能を拡張するために、汎用インターフェイス（ＳＲＡＭのようなインターフェイス（すなわち、メモリ・マップ・インターフェイス）であってよい）が用いられる。このようなインターフェイスの例として、ユニバーサル・シリアル・バス（ＵＳＢ）・コントローラ、モデム・コントローラ、ＩＥＥＥ  １３９４コントローラなどがある。これらのコントローラは、データ処理システム内のマイクロプロセッサが、そのコントローラに接続された外部装置と通信することを可能にする。たとえば、携帯情報端末（ＰＤＡ）、携帯電話、デジタル・カメラ、ポータブル記憶装置などのような周辺装置は、ＵＳＢインターフェイスを用いてホスト・コンピュータとデータを交換することが可能である。一方、そのような周辺装置は、それぞれがＵＳＢインターフェイスを備えていれば、ホスト・コンピュータなしで互いに通信することも可能である。これらすべてのコントローラやインターフェイスの共通点として、それらは、一般的に、マイクロプロセッサから周辺装置の内部バッファ・メモリへのアクセス要求を処理するように設計されたローカル・メモリ管理ユニットＭＭＵを内蔵している。
【０００３】
メモリ管理ユニットＭＭＵを介しての内部バッファ・メモリのアクセスまたは読み出しには、プリフェッチ時間が必要である。プリフェッチ時間は、メモリ管理ユニットＭＭＵがバッファ・メモリからデータをフェッチするのに必要な時間である。プリフェッチ時間は、一般に、通常の読み出し時間の数倍の長さであることに注意すべきである。
【０００４】
このプリフェッチの制約に適合するために、マイクロプロセッサがデータ処理時のタイミングを減らすことが可能である。その場合は、コントローラのバッファ・メモリへのアクセスの１つ１つについて、プリフェッチ時間に対応する遅延が導入される。代替として、レディ信号が用いられる場合もある。しかしながら、そのようなレディ信号は、すべてのデータ処理プラットフォームで利用可能であるとは限らない可能性がある。
【０００５】
外部拡張されたシステム機能（すなわち、周辺装置）からの読み出しを改善するために、バースト・モードによる読み出しが実施される。この場合は、マイクロプロセッサが、必要な開始アドレス（すなわち、データの読み出しが開始されるべきアドレス）を、プリフェッチ・アドレスとして用いられるレジスタに書き込む。その後、マイクロプロセッサは、プリフェッチ時間だけ待機してから、外部装置へのアクセスを最高速度（すなわち、通常の動作速度）で開始する。これは、順次データにアクセスする場合も同様である。しかしながら、マイクロプロセッサが、外部装置内の別のロケーションにあるデータにアクセスする必要がある場合は、プリフェッチ・サイクルを再度開始しなければならない。したがって、プリフェッチ制約は、レディ信号を要求することなく、また、コントローラが外部装置に対して利用可能な帯域幅を減らすことなく満たされる。詳細については、Ｄａｔａ  Ｓｈｅｅｔ  ｏｆ  Ａｍ２９Ｎ３２３Ｄ  ｏｆ  Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｒｅｖ．Ｂ，Ａｕｇｕｓｔ  ８，２００２を参照されたい。
【０００６】
しかしながら、マルチスレッディングおよびマルチタスキングのデータ処理環境では問題が発生する可能性がある。第１のスレッドが、外部装置のアドレス０ｘ１０００からの５１２バイトにアクセスして、２５６バイトを読み出した後、データ処理システムが、より優先度の高い可能性のある第２のスレッドに切り替わる可能性があり、その第２のスレッドは、別のアドレスをプリフェッチ・アドレスとしてレジスタに書き込む。第２のスレッドがその処理を完了すると、ただちに、外部装置へのアクセスが終了し、データ処理システムは第１のスレッドに再度切り替わる。しかしながら、プリフェッチ・アドレス用レジスタの現在の値が第２のスレッドによって変更されているため、データの破損につながるおそれがある。
【０００７】
米国特許出願公開第２００２／００９１７１９号明細書は、データ・システム環境においてデータのマルチスレッド・セット（ｍｕｌｔｉｔｈｒｅａｄｅｄ  ｓｅｔｓ）に基づいて動作するコンピュータとコンピュータ・ネットワークとの間のメッセージ処理システムに関する。これらの様々なスレッドは、観覧車キュー（ｆｅｒｒｉｓ  ｗｈｅｅｌ  ｑｕｅｕｅ）によって処理される。特に、観覧車キューは、バッファ空間の可用性に関する情報や、さらには着信データのソースに関する情報を有する処理ユニットを備える。データ書き込みの場合は、最初にスレッドが、スレッド自身のための処理ユニットを要求しなければならない。利用可能なバッファ空間がない場合、そのような要求は拒否される。処理ユニットがメモリ装置（すなわち、外部装置）側に配置されている場合、処理ユニットは、どのスレッドがバッファに現在アクセスしているかの情報をまったく有しないために、問題が起こる可能性がある。一方、処理ユニットが読み出し／書き込み要求を拒否した場合、外部装置が読み出し／書き込みを拒否してはならないことから、データ処理システムは故障する可能性がある。観覧車キューは、いくらかのデータのバッファリングと同じ物理バッファの共有とを必要とする複数のスレッドに適用可能である。スレッドが他のスレッドの他の現在の書き込み／読み出し動作に絶対干渉しないようにするには、要求／許可／拒否についての特別の仕組みが必要である。しかしながら、許可／要求／拒否についてそのような仕組みを導入すると、対応するハードウェアの互換性が下がり、また、使用可能な帯域幅が減る。この場合、第１のスレッドがその処理を完了した場合のみ、第２のスレッドが実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、マルチスレッド環境において外部装置との効率的な通信が可能なデータ処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
この目的は、請求項１に記載のデータ処理システムと、請求項４に記載のコントローラと、請求項５に記載の、プロセッサと外部周辺装置との間の通信を制御する方法とによって達成される。
【００１０】
したがって、マルチスレッド・オペレーティング・システムに基づくデータ処理システムが提供される。このデータ処理システムは、複数のスレッドに基づいてデータを処理する少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサと少なくとも１つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記少なくとも１つのコントローラ・ユニットとを備える。前記少なくとも１つのコントローラ・ユニットは、前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも１つのバッファ・メモリと、前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって、前記少なくとも１つのバッファ・メモリへのアクセスを管理する少なくとも１つのメモリ管理ユニットとを備える。前記複数のスレッドのうちの少なくとも１つが、前記Ｎ個のバンクのうちの１つと、その専用プリフェッチ・レジスタとにマッピングされる。
【００１１】
したがって、提供される、マルチスレッド・オペレーティング・システムに基づいたデータ処理システムは、外部周辺装置への高速アクセスが達成されるように、スレッドごとにプリフェッチ・レジスタを効率的に切り替えることを可能にする。プリフェッチ時間の追加を回避することにより、複数のスレッドを効率的にインタリーブすることが可能である。さらに、コントローラは、メモリ・マップ・リソースとしてプロセッサに接続される。複数のスレッドに対しても、帯域幅は減らず、読み出しアクセスを最高速度で実行することが可能である。
【００１２】
本発明の態様によれば、スレッド識別情報を記憶するスレッド・レジスタが設けられる。コントローラ自身は、この情報に基づいて、どのスレッドがバッファ・メモリＢＭに現在アクセスしているかを認識し、この情報に基づいて、各プリフェッチ・レジスタ間の切り換えを行うことにより、プリフェッチ時間の追加を回避することが可能である。
【００１３】
本発明はさらに、マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも１つのプロセッサと、少なくとも１つのコントローラに接続された外部周辺装置との間の通信を制御する前記コントローラに関する。このコントローラは、前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも１つのバッファ・メモリと、前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって、前記少なくとも１つのバッファ・メモリへのアクセスを管理する少なくとも１つのメモリ管理ユニットとを備える。前記複数のスレッドのうちの少なくとも１つが、前記Ｎ個のバンクのうちの１つと、その専用プリフェッチ・レジスタとにマッピングされる。
【００１４】
本発明はさらに、マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも１つのプロセッサと、前記少なくとも１つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する方法に関する。データの処理は複数のスレッドに基づいて行われる。前記少なくとも１つのコントローラ・ユニットに接続された前記周辺装置からのデータはバッファリングされる。前記少なくとも１つのバッファ・メモリへのアクセスは、前記少なくとも１つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するＮ個のバンクにマッピングすることによって管理される。前記複数のスレッドのうちの少なくとも１つが、前記Ｎ個のバンクのうちの１つと、その専用プリフェッチ・レジスタとにマッピングされる。
【００１５】
本発明は、共有メモリ（すなわち、ＳＲＡＭのようなメモリ）がアクセスされるシステムと同様に、周辺装置が複数のスレッドによって効率的にアクセスされることが可能であるように、マルチスレッド・オペレーティング・システムにおいて様々な周辺装置に接続性を提供する考え方に基づく。したがって、周辺装置用インターフェイスは、メモリ管理ユニットによってＮ個のバンクにマッピングされるバッファ・メモリを備える。バッファ・メモリのＮ個のバンクのそれぞれには、専用プリフェッチ・レジスタが関連付けられる。この、プリフェッチ・レジスタ用追加アドレス空間は、インターフェイスにアクセスする様々なスレッドに応じてプリフェッチ・レジスタが遅れずに切り替えられるように、個々のスレッド情報をインターフェイスに伝達するために用いられる。
【００１６】
本発明の以上の態様および他の態様については、以下に記載の実施形態を参照することにより明らかになるであろう。
【発明を実施するための最良の形態】
【００１７】
図１は、第１の実施形態によるデータ処理システムの基本アーキテクチャを示している。少なくとも１つのプロセッサＰＲＯＣが、システム・バスＢを介してコントローラＣＵに接続される。コントローラＣＵは、少なくとも１つの周辺装置ＰＤに接続されることが可能である。コントローラＣＵは、プロセッサＰＲＯＣと周辺装置ＰＤとの間の通信を管理および制御するよう動作する。
【００１８】
図２は、図１のコントローラの基本構成のブロック図である。コントローラＣＵは、コントローラを（たとえば、システム・バスＢを介して）プロセッサＰＲＯＣに接続する汎用インターフェイスＧＩを備える。コントローラはさらに、バッファ・メモリＢＭ、メモリ管理ユニットＭＭＵ、メモリ・アービタＭＡ、および周辺装置インターフェイスＰＤＩを備える。汎用インターフェイスＧＩを有するコントローラは、コントローラがメモリ・マップ・リソースとして様々なプロセッサに接続されることを可能にする。メモリ管理ユニットＭＭＵを用いることにより、汎用インターフェイスＧＩを介して内部バッファ・メモリＢＭにアクセスすることが可能になる。メモリ管理ユニットＭＭＵはさらに、マルチタスキング環境において様々なタスク要求に対してバンクが切り替えられる可能性に備えてバッファ・メモリの仮想セグメンテーションを実施するように動作する。
【００１９】
図３は、図２のバッファ・メモリＢＭのマッピングの基本的表現である。ここでは、６４Ｋ  ＲＡＭのバッファ・メモリＢＭが、４個のバンク、Ｃ０、Ｃ１、Ｃ２、およびＣ３にマッピングまたはセグメント化されている。バッファ・メモリＢＭを異なる４個のバンクＣ０〜Ｃ３にマッピングすることにより、同じ物理メモリＳＲＡＭが、プロセッサＰＲＯＣからは異なるセクションとして見える。６４Ｋ  ＲＡＭをアドレス指定する場合は、１６ビット・アドレス「Ａ１５，０」が必要である。第１の実施形態によれば、プロセッサＰＲＯＣで処理された各スレッドＴ０〜Ｔ３は、バッファ・メモリＢＭのバンクＣ０〜Ｃ３のいずれか１つに関連付けられる。４個のスレッドＴ０〜Ｔ３がプロセッサＰＲＯＣによって処理されると、その４個のバンクは、アドレス範囲４００〜７ＦＣ、８００〜１ＢＦＣ、１Ｃ００〜４ＢＦＣ、および４Ｃ００に対応することが可能である。すなわち、４個のバンクＣ０〜Ｃ３は、同じ物理メモリに内部マッピングされる。スレッドＴ０〜Ｔ３のどれがバンクＣ０〜Ｃ３のどれに関連付けられているかの情報を２ビットにエンコードすることが可能である。したがって、２ビットの追加アドレス「０，０」、「０，１」、「１，０」、「１，１」の各値が４個のバンクＣ０〜Ｃ３のそれぞれを参照するように、追加アドレス線Ａ１７／１６（２ビット）が設けられる。
【００２０】
図４は、第２の実施形態による、図１のコントローラの基本構成を示している。コントローラは、バッファ・メモリＢＭと、メモリ・アービタＭＡと、メモリ管理ユニットＭＭＵと、スレッド・レジスタＴＲと、プリフェッチ・レジスタＡｄｄｒ＿０、Ａｄｄｒ＿１、Ａｄｄｒ＿２、およびＡｄｄｒ＿３と、ＦＩＦＯ  ＦＩＦＯ  ０〜３と、デコーダＤＥＣとを備える。デコーダＤＥＣは、プロセッサＰＲＯＣとのインターフェイスに結合され、メモリ・アービタＭＡは、周辺装置用インターフェイスに結合される。ここでは、本発明の基本原理の説明に必要なユニットだけを明示的に示している。しかしながら、コントローラは他のユニットを備えることも可能である。
【００２１】
プリフェッチ・レジスタＡｄｄｒ＿０、Ａｄｄｒ＿１、Ａｄｄｒ＿２、およびＡｄｄｒ＿３、ならびにＦＩＦＯは、バッファ・メモリＢＭに対する読み出しアクセスの待ち時間（レーテンシー）を短縮するように動作し、バッファ・メモリＢＭの各バンクＣ０〜Ｃ３がそれぞれ専用のプリフェッチ・レジスタＡｄｄｒ＿０、Ａｄｄｒ＿１、Ａｄｄｒ＿２、およびＡｄｄｒ＿３を有するように設けられる。図３について説明したように、スレッド・レジスタＴＲに記憶された、４個のバンクを表す２ビット・アドレスにより、スレッドの１つが４個のバンクＣ０〜Ｃ３のいずれか１つにマッピングされる。したがって、この２ビット・アドレスにより、コントローラは、スレッドＴ０〜Ｔ３のどれがバッファ・メモリＢＭに現在アクセスしているかを明確に識別できる。言い換えると、各スレッドは、バッファ・メモリＢＭの、２ビット・アドレスで指定される異なるセクタまたはバンクにアクセスする。アドレス・ビット０〜１５は、バッファ・メモリＢＭ内のアドレスを指定するために用いられ、アドレス・ビット１６〜１７は、バッファ・メモリＢＭの、異なるセクタまたはバンクを指定する。したがって、スレッド・レジスタＴＲに記憶されているアドレス・ビット１６および１７がチェックされれば、コントローラは、プロセッサまたはプロセッサ上の処理についての情報がまったくなくても、どのスレッドがバッファ・メモリにアクセスしているかを認識する。
【００２２】
以下では、第１および第２の実施形態によるデータ処理システムにおける複数のスレッド（特に、４個のスレッド）の処理の例を示す。第１のスレッドＴ０〜第４のスレッドＴ３は、それぞれ、アドレス・レジスタＡｄｄｒ＿０〜Ａｄｄｒ＿３を使用する。バッファ・メモリＢＭは、全体メモリ・マップ・システム（すなわち、共有メモリ）における２５６Ｋ（（開始アドレス０ｘ２０００  ００００、終了アドレス０ｘ２００３  ＦＦＦＦ）を占有する。前述のように、このバッファ・メモリ空間は、４個のバンクに分割される。各バンクは、Ｃ０（０ｘ２０００  ００００〜０ｘ２０００  ＦＦＦＦ（６４ｋ））、Ｃ１（０ｘ２００１  ００００〜０ｘ２００１  ＦＦＦＦ（６４ｋ））、Ｃ２（０ｘ２００２  ００００〜０ｘ２００２  ＦＦＦＦ（６４ｋ））、およびＣ３（０ｘ２００３  ００００〜０ｘ２００３  ＦＦＦＦ（６４ｋ））である。
【００２３】
処理は、バッファ・メモリＢＭのアドレス０ｘ２００１  ０４００からアクセスする第１のスレッドＴ０で始まるので、このアドレスがプリフェッチ・レジスタＡｄｄｒ＿０に書き込まれる。このアドレスに基づいて、デコーダが、第１のスレッドＴ０が、第１のバンクＣ０にアクセスし、第１のバンクＣ０に関連付けられたＦＩＦＯ０からデータを抽出することを確定する。アドレス・レジスタＡｄｄｒ＿０は、その内容が常に、次に読み出されるべきロケーションを示すようにインクリメントされる。たとえば、第１のスレッドＴ０がアドレス０ｘ２０００  ０４０８にアクセスしているときに割り込みが発生した場合は、プロセッサが第２のスレッドＴ１に切り替わり、第２のスレッドＴ１が、バッファ・メモリのアドレス０ｘ２００１  ０８００にアクセスし、このアドレスを第２のアドレス・レジスタＡｄｄｒ＿１に書き込む。第２のスレッドＴ１は、各データがＦＩＦＯ１にプリフェッチされるまで待機する。デコーダＤＥＣは、第２のスレッドＴ１が、第２のバンクＣ１にアクセスし（アドレス線Ａ１７／１６の値が変更されている）、第２のバンクＣ１に関連付けられたＦＩＦＯ１からそれぞれのデータを抽出することを確定する。第２のアドレス・レジスタは、適宜インクリメントされる。第２のスレッドＴ１がバッファ・メモリへのアクセスを完了した後、プロセッサＰＲＯＣが第１のスレッドＴ０に再度切り替わる。プロセッサＰＲＯＣによるスレッドの切り替えは、アドレス線Ａ１７／１６の値が変更されて、異なる値がスレッド・レジスタＴＲに記憶されたときに検知される。したがって、第１のアドレス・レジスタＡｄｄｒ＿０がプリフェッチ・レジスタとして再度選択され、第１のスレッドＴ０が、第１のバンクＣ０に関連付けられたＦＩＦＯ０へのアクセスを続行することが可能になる。この場合、後続のデータが既に（すなわち、割り込み前に）プリフェッチされているので、プリフェッチ時間だけ待機する必要はない。
【００２４】
前述のコントローラやインターフェイスは、ホスト・コンピュータとデータを交換するインターフェイスとして、携帯情報端末（ＰＤＡ）、携帯電話、デジタル・カメラ、ポータブル記憶装置などの周辺装置において用いられることが可能である。しかしながら、そのような周辺装置は、ホスト・コンピュータを介することなく、互いに通信するためのコントローラまたはインターフェイスを備えることも可能である。その場合は、各周辺装置がそれぞれのインターフェイスを備える。それらのインターフェイスは、ＩＥＥＥ  １３９４コントローラ、ＵＳＢコントローラ、モデム・コントローラなどであってよい。
【００２５】
前述の実施形態では、４個のバンクと４個のスレッドだけの場合を示したが、他の任意の数のスレッドが可能であることにも注意すべきである。しかしながら、ＵＳＢインターフェイスの場合は、４個のバンクが好ましい。プロセッサが、使用可能なバンクより多いスレッドを処理する場合には、２つ以上のスレッドがバンクとその対応するスレッド・レジスタとを共用できるようにして、あえて性能を下げることが可能である。
【００２６】
前述の考え方の唯一の不利点は、実際の物理メモリの場合より多くのアドレス空間を必要とすることである。
【００２７】
本発明の保護の範囲は、本明細書に記載の実施形態に限定されないことに注意されたい。さらには、本発明の保護の範囲は、特許請求項中の参照符号によっても限定されない。「備える、含む（ｃｏｍｐｒｉｓｉｎｇ）」という語は、特許請求項において言及された要素以外の要素を除外しない。要素の前の不定冠詞（ａ（ｎ））は、それらの要素が複数であることを除外しない。本発明の要素を形成する手段は、専用ハードウェアの形で実装されても、プログラムされた汎用プロセッサの形で実装されてもよい。本発明は、新規な特徴のそれぞれ、または特徴の組合せにある。
【図面の簡単な説明】
【００２８】
【図１】第１の実施形態によるデータ処理システムの基本アーキテクチャを示す図である。
【図２】図１のコントローラの基本構成のブロック図である。
【図３】図２のバッファ・メモリＢＭのマッピングの基本的表現を示す図である。
【図４】第２の実施形態による、図１のコントローラの基本構成を示す図である。
【図１】
2008509470.tif 000003
【図２】
2008509470.tif 000004
【図３】
2008509470.tif 000005
【図４】
2008509470.tif 000006
【国際調査報告】
2008509470.tif 000007
2008509470.tif 000008