【誤訳訂正書】
【提出日】平成21年4月20日(2009.4.20)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
マルチスレッディングシステム中でアプリケーションのメインスレッドを実行する段階と、
１以上の不良ロードを有する領域に前記メインスレッドが入った場合に、メインスレッドのために１以上の演算を実行する１以上のヘルパースレッドのコードを、前記メインスレッドのコンパイル中に生成することにより、前記メインスレッドから前記１以上のヘルパースレッドを生成する段階と、
前記１以上のヘルパースレッドをそれぞれ時間枠と関連付ける段階と、
前記１以上のヘルパースレッドを、後の実行のための実行キューに置く段階と、
前記関連付けられた時間枠までに実行されていない前記実行キュー内の前記１以上のヘルパースレッドを、実行することなく終了させる段階と
を備える方法。
【請求項２】
スレッドコンテキストのリストを保持するためのスレッドプールを作成する段階と、
前記１以上のヘルパースレッドを生成するために前記スレッドプールから１以上のスレッドコンテキストを割り当てる段階と
を更に備える請求項１に記載の方法。
【請求項３】
前記メインスレッドが前記領域から出た場合に、前記１以上のヘルパースレッドを終了する段階と、
前記１以上のヘルパースレッドと関連付けられた前記スレッドコンテキストを解放して、前記スレッドプールに戻す段階と
を更に備える請求項２に記載の方法。
【請求項４】
前記ヘルパースレッドのそれぞれに関連する前記時間枠を決定する段階
を更に備える請求項１から３のいずれかに記載の方法。
【請求項５】
前記終了させる段階において、前記時間枠が終了した１以上のヘルパースレッドが前記メインスレッドによってアクセスされていない場合であっても、前記時間枠が終了した１以上のヘルパースレッドをそれぞれ終了させる
請求項１から４のいずれかに記載の方法。
【請求項６】
前記メインスレッドが前記領域から出た場合に、前記１以上のヘルパースレッドによって生成された結果を放棄する段階
を更に備え、
前記結果は、前記メインスレッドの他の領域によって再使用されない
請求項１から５のいずれかに記載の方法。
【請求項７】
前記メインスレッドの実行中にキャッシュミスを生じさせる前記１以上の不良ロードを特定する段階
をさらに備える請求項１から６のいずれかに記載の方法。
【請求項８】
前記１以上のヘルパースレッドは、前記メインスレッド用のデータをプリフェッチする
請求項１から７のいずれかに記載の方法。
【請求項９】
コンピュータに、
マルチスレッディングシステム中でアプリケーションのメインスレッドを実行する段階と、
１以上の不良ロードを有する領域に前記メインスレッドが入った場合に、メインスレッドのために１以上の演算を実行する１以上のヘルパースレッドのコードを前記メインスレッドのコンパイル中に生成することにより、前記メインスレッドから前記１以上のヘルパースレッドを生成する段階と、
前記１以上のヘルパースレッドをそれぞれ時間枠と関連付ける段階と、
前記１以上のヘルパースレッドを、後の実行のための実行キューに置く段階と、
前記関連付けられた時間枠までに実行されていない前記実行キュー内の前記１以上のヘルパースレッドを、実行することなく終了させる段階と
を備える方法
を実行させるプログラム。
【請求項１０】
前記方法が、
スレッドコンテキストのリストを保持するためのスレッドプールを作成する段階と、
前記１以上のヘルパースレッドを生成するために前記スレッドプールから１以上のスレッドコンテキストを割り当てる段階と
を更に備える請求項９に記載のプログラム。
【請求項１１】
前記方法が、
前記メインスレッドが前記領域から出た場合に、前記１以上のヘルパースレッドを終了する段階と、
前記１以上のヘルパースレッドと関連付けられた前記スレッドコンテキストを解放して、前記スレッドプールに戻す段階と
を更に備える請求項１０に記載のプログラム。
【請求項１２】
前記方法が、
前記ヘルパースレッドのそれぞれに時間枠を決定する段階
を更に備える
請求項９から１１のいずれかに記載のプログラム。
【請求項１３】
前記終了させる段階において、前記時間枠が終了した１以上のヘルパースレッドが前記メインスレッドによってアクセスされていない場合であっても、前記時間枠が終了した１以上のヘルパースレッドをそれぞれ終了させる
請求項９から１２のいずれかに記載のプログラム。
【請求項１４】
前記方法が、
前記メインスレッドが前記領域から出た場合に、前記１以上のヘルパースレッドによって生成された結果を放棄する段階
を更に備え、
前記結果は、前記メインスレッドの他の領域によって再使用されない
請求項９から１３のいずれかに記載のプログラム。
【請求項１５】
前記方法が、
前記メインスレッドの実行中にキャッシュミスを生じさせる前記１以上の不良ロードを特定する段階
をさらに備える請求項９から１４のいずれかに記載のプログラム。
【請求項１６】
前記１以上のヘルパースレッドは、前記メインスレッド用のデータをプリフェッチする
請求項９から１５のいずれかに記載のプログラム。
【請求項１７】
マルチスレッディング動作を実行することができるプロセッサと、
前記プロセッサに結合するメモリと、
前記メモリから前記プロセッサに実行されるプロセスと
を備え、
前記プロセスにより、前記プロセッサは、
マルチスレッディングシステム中でアプリケーションのメインスレッドを実行し、
１以上の不良ロードを有する領域に前記メインスレッドが入った場合に、メインスレッドのために１以上の演算を実行する１以上のヘルパースレッドのコードを前記メインスレッドのコンパイル中に生成させることにより、前記メインスレッドから前記１以上のヘルパースレッドを生成し、
前記１以上のヘルパースレッドをそれぞれ時間枠と関連付け、
前記１以上のヘルパースレッドを、後の実行のための実行キューに置き、
前記関連付けられた時間枠までに実行されていない前記実行キュー内の前記１以上のヘルパースレッドを、実行することなく終了させる
データ処理システム。
【請求項１８】
前記アプリケーションのコンパイル中にコンパイラによって、前記１以上のヘルパースレッドのコードが生成される
請求項１７に記載のデータ処理システム。
【請求項１９】
前記プロセスにより、前記プロセッサは更に、
前記メインスレッドの実行中にキャッシュミスを生じさせる前記１以上の不良ロードを特定する
請求項１７または１８に記載のデータ処理システム。
【請求項２０】
前記１以上のヘルパースレッドは、前記メインスレッド用のデータをプリフェッチする
請求項１７から１９のいずれかに記載のデータ処理システム。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】０００２
【訂正方法】変更
【訂正の内容】
【０００２】
メモリ待ち時間は、現在のプロセッサの高い性能を達成するに際して重大なボトルネックとなっている。アプリケーションのメモリアクセスパターンの予測が困難であり、ワーキングセットがかなり大きくなっているために、今日の多くの大きいアプリケーションはメモリ集約的である。キャッシュデザインの向上およびプリフェッチ技術における新しい開発にもかかわらず、メモリのボトルネック問題は依然として続いている。この問題は、従来のストライドベースのプリフェッチ技術に逆らう傾向にある、ポインタ集中のアプリケーションの実行の際により悪化する。
【特許文献１】米国特許出願公開第２００２／００９５６６号明細書
【特許文献２】米国特許出願公開第２００２／００９７７２５号明細書
【特許文献３】米国特許出願公開第２００２／０１２０６６３号明細書
【特許文献４】米国特許出願公開第２００３／００７４６５３号明細書
【特許文献５】米国特許出願公開第２００３／０１０１４４４号明細書
【特許文献６】米国特許出願公開第２００４／００５４９９０号明細書
【特許文献７】米国特許出願公開第２００４／０１２８４８９号明細書
【特許文献８】米国特許出願公開第２００４／０１５４０１１号明細書
【特許文献９】米国特許第６９５９４３５号明細書
【特許文献１０】米国特許第７２４３２６７号明細書
【非特許文献１】Ammons, Ball, Larus: "Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling", 1997, ACM SIGPLAN, pp. 85-96
【非特許文献２】Luk: "Tolerating Memory Latency through Software-Controlled Pre-Execution in Simultaneous Multithreading Processors"
【非特許文献３】Annavaram et al: "Data Prefetching by Dependence Graph Precomputation"
【非特許文献４】LIAO S ET ALTERI: "Speculative Precomputations on Intel Architectures" TUTORIAL ON ARCHITECTURE AND COMPILER SUPPORT FOR SPECULATIVE PRECOMPUTATION - 12TH ANNUAL INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES - NEW ORLEANS, LOUISIANA, SEPT. 27 - OCT. 1, 2003
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００３１
【訂正方法】変更
【訂正の内容】
【００３１】
図１に示すように、データ処理システムの形態であるコンピュータシステム１００は、マイクロプロセッサ１０３と、ＲＯＭ１０７、揮発性ＲＡＭ１０５、および不揮発性メモリ１０６とを接続するバス１０２を含む。インテル社からのペンティアム（登録商標）プロセッサ、またはモトローラ社からのパワーＰＣプロセッサであってよいマイクロプロセッサ１０３は、図１の例に示すようにキャッシュメモリ１０４に結合されている。バス１０２は、これらの様々な構成要素を互いに相互接続し、また、これらの構成要素１０３、１０７、１０５、および１０６を、マウス、キーボード、モデム、ネットワークインターフェース、プリンタ、および当該技術分野で周知の他のデバイスなどの入出力（Ｉ／Ｏ）デバイス１１０と同様にディスプレイコントローラおよびディスプレイデバイス１０８にも相互接続する。一般的に、入出力デバイス１１０は、入出力コントローラ１０９を介してシステムに接続される。揮発性ＲＡＭ１０５は、典型的には、リフレッシュまたはメモリ内のデータを保持するために継続的に電源供給を必要とする、動的ＲＡＭ（ＤＲＡＭ）として実行される。不揮発性メモリ１０６は、典型的には、磁気ディスク装置、磁気光学ディスク装置、光ディスク装置、あるいはＤＶＤ  ＲＡＭまたはシステムから電源供給がなくなった後でもデータを保持する他の型のメモリシステムである。一般的に、不揮発性メモリはまた、必ずしも必要ではないが、ランダムアクセスメモリであってよい。図１では、不揮発性メモリが、データ処理システムの残りの構成要素に直接的に接続しているローカルデバイスである一方で、システムから離れている不揮発性メモリを、モデムやイーサネット（登録商標）インターフェースのようなネットワークインターフェースを介してデータ処理システムに接続されているネットワーク上の記憶装置として、本発明が利用してもよいことを理解されるであろう。バス１０２は、当該技術分野の当業者にとって周知の様々なブリッジ、コントローラ、および／またはアダプタを介してお互いに接続されている、一つ以上のバスを含んでいてよい。一実施形態においては、入出力コントローラ１０９は、ＵＳＢ周辺機器の制御のためのＵＳＢ（ユニバーサルシリアルバス）アダプタ、あるいは入出力デバイス１１０の中に含まれるＰＣＩデバイスの制御のためのＰＣＩコントローラを含んでいる。他の実施形態においては、入出力コントローラ１０９は、ファイアウォール装置としても知られる、ＩＥＥＥ１３９４装置の制御のためのＩＥＥＥ１３９４コントローラを含む。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００３３
【訂正方法】変更
【訂正の内容】
【００３３】
一実施形態によれば、ヘルパースレッドのコード（例えば、ソースコードおよびバイナリ実行コード）は、プロセッサ１０３のようなプロセッサによって実行されるオペレーティングシステム（ＯＳ）によって揮発性ＲＡＭ１０５のようなメモリ中にロードされて実行される、インテル社から入手可能なオートヘルパーコンパイラのようなコンパイラによって生成される。典型的なシステム１００の中で稼動しているオペレーティングシステムは、マイクロソフト社からのウインドウズ（登録商標）、または、アップルコンピュータ社からのマックＯＳ（登録商標）であってよい。他の例では、オペレーティングシステムは、リナックス（登録商標）、または、ユニックス（登録商標）であってもよい。組み込みの実時間オペレーティングシステムのような、他のオペレーティングシステムを利用してもよい。