JP2008509470A - プロセッサと外部周辺装置との間の通信を制御するコントローラおよび方法 - Google Patents
プロセッサと外部周辺装置との間の通信を制御するコントローラおよび方法 Download PDFInfo
- Publication number
- JP2008509470A JP2008509470A JP2007524442A JP2007524442A JP2008509470A JP 2008509470 A JP2008509470 A JP 2008509470A JP 2007524442 A JP2007524442 A JP 2007524442A JP 2007524442 A JP2007524442 A JP 2007524442A JP 2008509470 A JP2008509470 A JP 2008509470A
- Authority
- JP
- Japan
- Prior art keywords
- buffer memory
- controller unit
- banks
- peripheral device
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 32
- 238000004891 communication Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000003139 buffering effect Effects 0.000 claims abstract description 7
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本発明は、マルチスレッド・オペレーティング・システムに基づくデータ処理システムに関する。このデータ処理システムは、複数のスレッドに基づいてデータを処理する少なくとも1つのプロセッサ(PROC)と、前記少なくとも1つのプロセッサ(PROC)と少なくとも1つのコントローラ・ユニット(CU)に接続された外部周辺装置(PD)との間の通信を制御する前記少なくとも1つのコントローラ・ユニット(CU)とを備える。前記少なくとも1つのコントローラ・ユニット(CU)は、前記少なくとも1つのコントローラ・ユニット(CU)に接続された前記周辺装置(PD)からのデータをバッファリングする少なくとも1つのバッファ・メモリ(BM)と、前記少なくとも1つのバッファ・メモリ(BM)を、それぞれが専用プリフェッチ・レジスタ(Addr_0−Addr_3)を有するN個のバンク(C0〜C3)にマッピングすることによって、前記少なくとも1つのバッファ・メモリ(BM)へのアクセスを管理する少なくとも1つのメモリ管理ユニット(MMU)とを備える。前記複数のスレッド(T0〜T3)のうちの少なくとも1つが、前記N個のバンク(C0〜C3)のうちの1つと、その専用プリフェッチ・レジスタ(Addr_0〜Addr_3)とにマッピングされる。
Description
本発明は、プロセッサと外部周辺装置との間の通信を制御するデータ処理システム、コントローラ、および方法に関する。
現代のマイクロプロセッサ・ベースのデータ処理システムの性能を高める場合には、システム機能を拡張するために、汎用インターフェイス(SRAMのようなインターフェイス(すなわち、メモリ・マップ・インターフェイス)であってよい)が用いられる。このようなインターフェイスの例として、ユニバーサル・シリアル・バス(USB)・コントローラ、モデム・コントローラ、IEEE 1394コントローラなどがある。これらのコントローラは、データ処理システム内のマイクロプロセッサが、そのコントローラに接続された外部装置と通信することを可能にする。たとえば、携帯情報端末(PDA)、携帯電話、デジタル・カメラ、ポータブル記憶装置などのような周辺装置は、USBインターフェイスを用いてホスト・コンピュータとデータを交換することが可能である。一方、そのような周辺装置は、それぞれがUSBインターフェイスを備えていれば、ホスト・コンピュータなしで互いに通信することも可能である。これらすべてのコントローラやインターフェイスの共通点として、それらは、一般的に、マイクロプロセッサから周辺装置の内部バッファ・メモリへのアクセス要求を処理するように設計されたローカル・メモリ管理ユニットMMUを内蔵している。
メモリ管理ユニットMMUを介しての内部バッファ・メモリのアクセスまたは読み出しには、プリフェッチ時間が必要である。プリフェッチ時間は、メモリ管理ユニットMMUがバッファ・メモリからデータをフェッチするのに必要な時間である。プリフェッチ時間は、一般に、通常の読み出し時間の数倍の長さであることに注意すべきである。
このプリフェッチの制約に適合するために、マイクロプロセッサがデータ処理時のタイミングを減らすことが可能である。その場合は、コントローラのバッファ・メモリへのアクセスの1つ1つについて、プリフェッチ時間に対応する遅延が導入される。代替として、レディ信号が用いられる場合もある。しかしながら、そのようなレディ信号は、すべてのデータ処理プラットフォームで利用可能であるとは限らない可能性がある。
外部拡張されたシステム機能(すなわち、周辺装置)からの読み出しを改善するために、バースト・モードによる読み出しが実施される。この場合は、マイクロプロセッサが、必要な開始アドレス(すなわち、データの読み出しが開始されるべきアドレス)を、プリフェッチ・アドレスとして用いられるレジスタに書き込む。その後、マイクロプロセッサは、プリフェッチ時間だけ待機してから、外部装置へのアクセスを最高速度(すなわち、通常の動作速度)で開始する。これは、順次データにアクセスする場合も同様である。しかしながら、マイクロプロセッサが、外部装置内の別のロケーションにあるデータにアクセスする必要がある場合は、プリフェッチ・サイクルを再度開始しなければならない。したがって、プリフェッチ制約は、レディ信号を要求することなく、また、コントローラが外部装置に対して利用可能な帯域幅を減らすことなく満たされる。詳細については、Data Sheet of Am29N323D of Advanced Micro Devices,Rev.B,August 8,2002を参照されたい。
しかしながら、マルチスレッディングおよびマルチタスキングのデータ処理環境では問題が発生する可能性がある。第1のスレッドが、外部装置のアドレス0x1000からの512バイトにアクセスして、256バイトを読み出した後、データ処理システムが、より優先度の高い可能性のある第2のスレッドに切り替わる可能性があり、その第2のスレッドは、別のアドレスをプリフェッチ・アドレスとしてレジスタに書き込む。第2のスレッドがその処理を完了すると、ただちに、外部装置へのアクセスが終了し、データ処理システムは第1のスレッドに再度切り替わる。しかしながら、プリフェッチ・アドレス用レジスタの現在の値が第2のスレッドによって変更されているため、データの破損につながるおそれがある。
米国特許出願公開第2002/0091719号明細書は、データ・システム環境においてデータのマルチスレッド・セット(multithreaded sets)に基づいて動作するコンピュータとコンピュータ・ネットワークとの間のメッセージ処理システムに関する。これらの様々なスレッドは、観覧車キュー(ferris wheel queue)によって処理される。特に、観覧車キューは、バッファ空間の可用性に関する情報や、さらには着信データのソースに関する情報を有する処理ユニットを備える。データ書き込みの場合は、最初にスレッドが、スレッド自身のための処理ユニットを要求しなければならない。利用可能なバッファ空間がない場合、そのような要求は拒否される。処理ユニットがメモリ装置(すなわち、外部装置)側に配置されている場合、処理ユニットは、どのスレッドがバッファに現在アクセスしているかの情報をまったく有しないために、問題が起こる可能性がある。一方、処理ユニットが読み出し/書き込み要求を拒否した場合、外部装置が読み出し/書き込みを拒否してはならないことから、データ処理システムは故障する可能性がある。観覧車キューは、いくらかのデータのバッファリングと同じ物理バッファの共有とを必要とする複数のスレッドに適用可能である。スレッドが他のスレッドの他の現在の書き込み/読み出し動作に絶対干渉しないようにするには、要求/許可/拒否についての特別の仕組みが必要である。しかしながら、許可/要求/拒否についてそのような仕組みを導入すると、対応するハードウェアの互換性が下がり、また、使用可能な帯域幅が減る。この場合、第1のスレッドがその処理を完了した場合のみ、第2のスレッドが実行される。
本発明は、マルチスレッド環境において外部装置との効率的な通信が可能なデータ処理システムを提供することを目的とする。
この目的は、請求項1に記載のデータ処理システムと、請求項4に記載のコントローラと、請求項5に記載の、プロセッサと外部周辺装置との間の通信を制御する方法とによって達成される。
したがって、マルチスレッド・オペレーティング・システムに基づくデータ処理システムが提供される。このデータ処理システムは、複数のスレッドに基づいてデータを処理する少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサと少なくとも1つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記少なくとも1つのコントローラ・ユニットとを備える。前記少なくとも1つのコントローラ・ユニットは、前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも1つのバッファ・メモリと、前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって、前記少なくとも1つのバッファ・メモリへのアクセスを管理する少なくとも1つのメモリ管理ユニットとを備える。前記複数のスレッドのうちの少なくとも1つが、前記N個のバンクのうちの1つと、その専用プリフェッチ・レジスタとにマッピングされる。
したがって、提供される、マルチスレッド・オペレーティング・システムに基づいたデータ処理システムは、外部周辺装置への高速アクセスが達成されるように、スレッドごとにプリフェッチ・レジスタを効率的に切り替えることを可能にする。プリフェッチ時間の追加を回避することにより、複数のスレッドを効率的にインタリーブすることが可能である。さらに、コントローラは、メモリ・マップ・リソースとしてプロセッサに接続される。複数のスレッドに対しても、帯域幅は減らず、読み出しアクセスを最高速度で実行することが可能である。
本発明の態様によれば、スレッド識別情報を記憶するスレッド・レジスタが設けられる。コントローラ自身は、この情報に基づいて、どのスレッドがバッファ・メモリBMに現在アクセスしているかを認識し、この情報に基づいて、各プリフェッチ・レジスタ間の切り換えを行うことにより、プリフェッチ時間の追加を回避することが可能である。
本発明はさらに、マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも1つのプロセッサと、少なくとも1つのコントローラに接続された外部周辺装置との間の通信を制御する前記コントローラに関する。このコントローラは、前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも1つのバッファ・メモリと、前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって、前記少なくとも1つのバッファ・メモリへのアクセスを管理する少なくとも1つのメモリ管理ユニットとを備える。前記複数のスレッドのうちの少なくとも1つが、前記N個のバンクのうちの1つと、その専用プリフェッチ・レジスタとにマッピングされる。
本発明はさらに、マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも1つのプロセッサと、前記少なくとも1つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する方法に関する。データの処理は複数のスレッドに基づいて行われる。前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータはバッファリングされる。前記少なくとも1つのバッファ・メモリへのアクセスは、前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって管理される。前記複数のスレッドのうちの少なくとも1つが、前記N個のバンクのうちの1つと、その専用プリフェッチ・レジスタとにマッピングされる。
本発明は、共有メモリ(すなわち、SRAMのようなメモリ)がアクセスされるシステムと同様に、周辺装置が複数のスレッドによって効率的にアクセスされることが可能であるように、マルチスレッド・オペレーティング・システムにおいて様々な周辺装置に接続性を提供する考え方に基づく。したがって、周辺装置用インターフェイスは、メモリ管理ユニットによってN個のバンクにマッピングされるバッファ・メモリを備える。バッファ・メモリのN個のバンクのそれぞれには、専用プリフェッチ・レジスタが関連付けられる。この、プリフェッチ・レジスタ用追加アドレス空間は、インターフェイスにアクセスする様々なスレッドに応じてプリフェッチ・レジスタが遅れずに切り替えられるように、個々のスレッド情報をインターフェイスに伝達するために用いられる。
本発明の以上の態様および他の態様については、以下に記載の実施形態を参照することにより明らかになるであろう。
図1は、第1の実施形態によるデータ処理システムの基本アーキテクチャを示している。少なくとも1つのプロセッサPROCが、システム・バスBを介してコントローラCUに接続される。コントローラCUは、少なくとも1つの周辺装置PDに接続されることが可能である。コントローラCUは、プロセッサPROCと周辺装置PDとの間の通信を管理および制御するよう動作する。
図2は、図1のコントローラの基本構成のブロック図である。コントローラCUは、コントローラを(たとえば、システム・バスBを介して)プロセッサPROCに接続する汎用インターフェイスGIを備える。コントローラはさらに、バッファ・メモリBM、メモリ管理ユニットMMU、メモリ・アービタMA、および周辺装置インターフェイスPDIを備える。汎用インターフェイスGIを有するコントローラは、コントローラがメモリ・マップ・リソースとして様々なプロセッサに接続されることを可能にする。メモリ管理ユニットMMUを用いることにより、汎用インターフェイスGIを介して内部バッファ・メモリBMにアクセスすることが可能になる。メモリ管理ユニットMMUはさらに、マルチタスキング環境において様々なタスク要求に対してバンクが切り替えられる可能性に備えてバッファ・メモリの仮想セグメンテーションを実施するように動作する。
図3は、図2のバッファ・メモリBMのマッピングの基本的表現である。ここでは、64K RAMのバッファ・メモリBMが、4個のバンク、C0、C1、C2、およびC3にマッピングまたはセグメント化されている。バッファ・メモリBMを異なる4個のバンクC0〜C3にマッピングすることにより、同じ物理メモリSRAMが、プロセッサPROCからは異なるセクションとして見える。64K RAMをアドレス指定する場合は、16ビット・アドレス「A15,0」が必要である。第1の実施形態によれば、プロセッサPROCで処理された各スレッドT0〜T3は、バッファ・メモリBMのバンクC0〜C3のいずれか1つに関連付けられる。4個のスレッドT0〜T3がプロセッサPROCによって処理されると、その4個のバンクは、アドレス範囲400〜7FC、800〜1BFC、1C00〜4BFC、および4C00に対応することが可能である。すなわち、4個のバンクC0〜C3は、同じ物理メモリに内部マッピングされる。スレッドT0〜T3のどれがバンクC0〜C3のどれに関連付けられているかの情報を2ビットにエンコードすることが可能である。したがって、2ビットの追加アドレス「0,0」、「0,1」、「1,0」、「1,1」の各値が4個のバンクC0〜C3のそれぞれを参照するように、追加アドレス線A17/16(2ビット)が設けられる。
図4は、第2の実施形態による、図1のコントローラの基本構成を示している。コントローラは、バッファ・メモリBMと、メモリ・アービタMAと、メモリ管理ユニットMMUと、スレッド・レジスタTRと、プリフェッチ・レジスタAddr_0、Addr_1、Addr_2、およびAddr_3と、FIFO FIFO 0〜3と、デコーダDECとを備える。デコーダDECは、プロセッサPROCとのインターフェイスに結合され、メモリ・アービタMAは、周辺装置用インターフェイスに結合される。ここでは、本発明の基本原理の説明に必要なユニットだけを明示的に示している。しかしながら、コントローラは他のユニットを備えることも可能である。
プリフェッチ・レジスタAddr_0、Addr_1、Addr_2、およびAddr_3、ならびにFIFOは、バッファ・メモリBMに対する読み出しアクセスの待ち時間(レーテンシー)を短縮するように動作し、バッファ・メモリBMの各バンクC0〜C3がそれぞれ専用のプリフェッチ・レジスタAddr_0、Addr_1、Addr_2、およびAddr_3を有するように設けられる。図3について説明したように、スレッド・レジスタTRに記憶された、4個のバンクを表す2ビット・アドレスにより、スレッドの1つが4個のバンクC0〜C3のいずれか1つにマッピングされる。したがって、この2ビット・アドレスにより、コントローラは、スレッドT0〜T3のどれがバッファ・メモリBMに現在アクセスしているかを明確に識別できる。言い換えると、各スレッドは、バッファ・メモリBMの、2ビット・アドレスで指定される異なるセクタまたはバンクにアクセスする。アドレス・ビット0〜15は、バッファ・メモリBM内のアドレスを指定するために用いられ、アドレス・ビット16〜17は、バッファ・メモリBMの、異なるセクタまたはバンクを指定する。したがって、スレッド・レジスタTRに記憶されているアドレス・ビット16および17がチェックされれば、コントローラは、プロセッサまたはプロセッサ上の処理についての情報がまったくなくても、どのスレッドがバッファ・メモリにアクセスしているかを認識する。
以下では、第1および第2の実施形態によるデータ処理システムにおける複数のスレッド(特に、4個のスレッド)の処理の例を示す。第1のスレッドT0〜第4のスレッドT3は、それぞれ、アドレス・レジスタAddr_0〜Addr_3を使用する。バッファ・メモリBMは、全体メモリ・マップ・システム(すなわち、共有メモリ)における256K((開始アドレス0x2000 0000、終了アドレス0x2003 FFFF)を占有する。前述のように、このバッファ・メモリ空間は、4個のバンクに分割される。各バンクは、C0(0x2000 0000〜0x2000 FFFF(64k))、C1(0x2001 0000〜0x2001 FFFF(64k))、C2(0x2002 0000〜0x2002 FFFF(64k))、およびC3(0x2003 0000〜0x2003 FFFF(64k))である。
処理は、バッファ・メモリBMのアドレス0x2001 0400からアクセスする第1のスレッドT0で始まるので、このアドレスがプリフェッチ・レジスタAddr_0に書き込まれる。このアドレスに基づいて、デコーダが、第1のスレッドT0が、第1のバンクC0にアクセスし、第1のバンクC0に関連付けられたFIFO0からデータを抽出することを確定する。アドレス・レジスタAddr_0は、その内容が常に、次に読み出されるべきロケーションを示すようにインクリメントされる。たとえば、第1のスレッドT0がアドレス0x2000 0408にアクセスしているときに割り込みが発生した場合は、プロセッサが第2のスレッドT1に切り替わり、第2のスレッドT1が、バッファ・メモリのアドレス0x2001 0800にアクセスし、このアドレスを第2のアドレス・レジスタAddr_1に書き込む。第2のスレッドT1は、各データがFIFO1にプリフェッチされるまで待機する。デコーダDECは、第2のスレッドT1が、第2のバンクC1にアクセスし(アドレス線A17/16の値が変更されている)、第2のバンクC1に関連付けられたFIFO1からそれぞれのデータを抽出することを確定する。第2のアドレス・レジスタは、適宜インクリメントされる。第2のスレッドT1がバッファ・メモリへのアクセスを完了した後、プロセッサPROCが第1のスレッドT0に再度切り替わる。プロセッサPROCによるスレッドの切り替えは、アドレス線A17/16の値が変更されて、異なる値がスレッド・レジスタTRに記憶されたときに検知される。したがって、第1のアドレス・レジスタAddr_0がプリフェッチ・レジスタとして再度選択され、第1のスレッドT0が、第1のバンクC0に関連付けられたFIFO0へのアクセスを続行することが可能になる。この場合、後続のデータが既に(すなわち、割り込み前に)プリフェッチされているので、プリフェッチ時間だけ待機する必要はない。
前述のコントローラやインターフェイスは、ホスト・コンピュータとデータを交換するインターフェイスとして、携帯情報端末(PDA)、携帯電話、デジタル・カメラ、ポータブル記憶装置などの周辺装置において用いられることが可能である。しかしながら、そのような周辺装置は、ホスト・コンピュータを介することなく、互いに通信するためのコントローラまたはインターフェイスを備えることも可能である。その場合は、各周辺装置がそれぞれのインターフェイスを備える。それらのインターフェイスは、IEEE 1394コントローラ、USBコントローラ、モデム・コントローラなどであってよい。
前述の実施形態では、4個のバンクと4個のスレッドだけの場合を示したが、他の任意の数のスレッドが可能であることにも注意すべきである。しかしながら、USBインターフェイスの場合は、4個のバンクが好ましい。プロセッサが、使用可能なバンクより多いスレッドを処理する場合には、2つ以上のスレッドがバンクとその対応するスレッド・レジスタとを共用できるようにして、あえて性能を下げることが可能である。
前述の考え方の唯一の不利点は、実際の物理メモリの場合より多くのアドレス空間を必要とすることである。
本発明の保護の範囲は、本明細書に記載の実施形態に限定されないことに注意されたい。さらには、本発明の保護の範囲は、特許請求項中の参照符号によっても限定されない。「備える、含む(comprising)」という語は、特許請求項において言及された要素以外の要素を除外しない。要素の前の不定冠詞(a(n))は、それらの要素が複数であることを除外しない。本発明の要素を形成する手段は、専用ハードウェアの形で実装されても、プログラムされた汎用プロセッサの形で実装されてもよい。本発明は、新規な特徴のそれぞれ、または特徴の組合せにある。
Claims (5)
- マルチスレッド・オペレーティング・システムに基づくデータ処理システムであって、
複数のスレッドに基づいてデータを処理する少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと少なくとも1つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記少なくとも1つのコントローラ・ユニットとを備え、
前記少なくとも1つのコントローラ・ユニットが、前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも1つのバッファ・メモリと、前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって、前記少なくとも1つのバッファ・メモリへのアクセスを管理する少なくとも1つのメモリ管理ユニットとを備え、前記複数のスレッドの少なくとも1つが、前記N個のバンクのうちの1つとその専用プリフェッチ・レジスタとにマッピングされるデータ処理システム。 - スレッド識別情報を記憶するスレッド・レジスタをさらに備える、請求項1に記載のデータ処理システム。
- 前記スレッド識別情報が追加アドレス線の形でエンコードされる、請求項2に記載のデータ処理システム。
- マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも1つのプロセッサと、少なくとも1つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する前記コントローラ・ユニットであって、
前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングする少なくとも1つのバッファ・メモリと、
前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって、前記少なくとも1つのバッファ・メモリへのアクセスを管理する少なくとも1つのメモリ管理ユニットとを備え、前記複数のスレッドの少なくとも1つが、前記N個のバンクのうちの1つとその専用プリフェッチ・レジスタとにマッピングされるコントローラ・ユニット。 - マルチスレッド・オペレーティング・システムに基づくデータ処理環境において、少なくとも1つのプロセッサと、前記少なくとも1つのコントローラ・ユニットに接続された外部周辺装置との間の通信を制御する方法であって、
複数のスレッドに基づいてデータを処理するステップと、
前記少なくとも1つのコントローラ・ユニットに接続された前記周辺装置からのデータをバッファリングするステップと、
前記少なくとも1つのバッファ・メモリを、それぞれが専用プリフェッチ・レジスタを有するN個のバンクにマッピングすることによって、前記少なくとも1つのバッファ・メモリへのアクセスを管理するステップとを含み、前記複数のスレッドの少なくとも1つが、前記N個のバンクのうちの1つとその専用プリフェッチ・レジスタとにマッピングされる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04103727 | 2004-08-03 | ||
PCT/IB2005/052477 WO2006016298A1 (en) | 2004-08-03 | 2005-07-22 | Controller and a method of for controlling the communication between a processor and an external peripheral device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008509470A true JP2008509470A (ja) | 2008-03-27 |
Family
ID=35169523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007524442A Withdrawn JP2008509470A (ja) | 2004-08-03 | 2005-07-22 | プロセッサと外部周辺装置との間の通信を制御するコントローラおよび方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8099533B2 (ja) |
EP (1) | EP1776632B1 (ja) |
JP (1) | JP2008509470A (ja) |
CN (1) | CN100533371C (ja) |
AT (1) | ATE550720T1 (ja) |
WO (1) | WO2006016298A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658976B2 (en) * | 2014-11-07 | 2017-05-23 | Mediatek Inc. | Data writing system and method for DMA |
WO2018038703A1 (en) * | 2016-08-22 | 2018-03-01 | Hewlett-Packard Development Company, L.P. | Connected devices information |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69614291T2 (de) | 1995-03-17 | 2001-12-06 | Lsi Logic Corp., Fort Collins | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
US5907702A (en) | 1997-03-28 | 1999-05-25 | International Business Machines Corporation | Method and apparatus for decreasing thread switch latency in a multithread processor |
AU7728300A (en) | 1999-11-22 | 2001-06-04 | Ericsson Inc. | Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks |
US6988122B2 (en) | 2001-01-09 | 2006-01-17 | International Business Machines Corporation | Ferris-wheel queue |
US7145913B2 (en) | 2001-02-15 | 2006-12-05 | The Board Of Trustees Of The University Of Illinois | Thread based scalable routing for an active router |
US6845501B2 (en) | 2001-07-27 | 2005-01-18 | Hewlett-Packard Development Company, L.P. | Method and apparatus for enabling a compiler to reduce cache misses by performing pre-fetches in the event of context switch |
US7136991B2 (en) | 2001-11-20 | 2006-11-14 | Henry G Glenn | Microprocessor including random number generator supporting operating system-independent multitasking operation |
US7113985B2 (en) * | 2002-10-15 | 2006-09-26 | Intel Corporation | Allocating singles and bursts from a freelist |
US7143267B2 (en) * | 2003-04-28 | 2006-11-28 | International Business Machines Corporation | Partitioning prefetch registers to prevent at least in part inconsistent prefetch information from being stored in a prefetch register of a multithreading processor |
-
2005
- 2005-07-22 JP JP2007524442A patent/JP2008509470A/ja not_active Withdrawn
- 2005-07-22 CN CNB2005800333600A patent/CN100533371C/zh not_active Expired - Fee Related
- 2005-07-22 WO PCT/IB2005/052477 patent/WO2006016298A1/en active Application Filing
- 2005-07-22 AT AT05774328T patent/ATE550720T1/de active
- 2005-07-22 EP EP05774328A patent/EP1776632B1/en active Active
- 2005-07-22 US US11/573,194 patent/US8099533B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2006016298A1 (en) | 2006-02-16 |
US20110099304A1 (en) | 2011-04-28 |
CN100533371C (zh) | 2009-08-26 |
EP1776632B1 (en) | 2012-03-21 |
CN101040255A (zh) | 2007-09-19 |
US8099533B2 (en) | 2012-01-17 |
EP1776632A1 (en) | 2007-04-25 |
ATE550720T1 (de) | 2012-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7650453B2 (en) | Information processing apparatus having multiple processing units sharing multiple resources | |
US9280290B2 (en) | Method for steering DMA write requests to cache memory | |
KR100227278B1 (ko) | 캐쉬 제어 유닛 | |
KR100847968B1 (ko) | 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법 | |
US7555576B2 (en) | Processing apparatus with burst read write operations | |
US7418540B2 (en) | Memory controller with command queue look-ahead | |
US6700582B2 (en) | Method and system for buffer management | |
US8037254B2 (en) | Memory controller and method for coupling a network and a memory | |
WO2006134804A1 (ja) | 外部デバイスアクセス装置 | |
US6738837B1 (en) | Digital system with split transaction memory access | |
EP1776632B1 (en) | System, controller and method of controlling the communication between a processor and an external peripheral device | |
KR100532417B1 (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
JP5058116B2 (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
JP6249117B1 (ja) | 情報処理装置 | |
JP2005508549A (ja) | アンキャッシュ素子のための帯域幅の向上 | |
US6349370B1 (en) | Multiple bus shared memory parallel processor and processing method | |
US20140136796A1 (en) | Arithmetic processing device and method for controlling the same | |
US7028129B2 (en) | Method and apparatus for converting an external memory access into a local memory access in a processor core | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP4307604B2 (ja) | 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法 | |
JPH10247150A (ja) | データ処理システム | |
JP2001331370A (ja) | マイクロコンピュータ | |
KR20070020391A (ko) | 스트리밍 id 방법에 의한 dmac 발행 메커니즘 | |
KR19990057808A (ko) | 다중 억세스 캐쉬 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080722 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080626 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20091104 |