JP5541491B2 - マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法 - Google Patents

マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法 Download PDF

Info

Publication number
JP5541491B2
JP5541491B2 JP2010002063A JP2010002063A JP5541491B2 JP 5541491 B2 JP5541491 B2 JP 5541491B2 JP 2010002063 A JP2010002063 A JP 2010002063A JP 2010002063 A JP2010002063 A JP 2010002063A JP 5541491 B2 JP5541491 B2 JP 5541491B2
Authority
JP
Japan
Prior art keywords
processor
prefetch
instruction
load
instructions
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.)
Expired - Fee Related
Application number
JP2010002063A
Other languages
English (en)
Other versions
JP2011141743A (ja
Inventor
真矢 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010002063A priority Critical patent/JP5541491B2/ja
Publication of JP2011141743A publication Critical patent/JP2011141743A/ja
Application granted granted Critical
Publication of JP5541491B2 publication Critical patent/JP5541491B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

本発明は、マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法に関する。
最近のコンピュータ業界の動向として、TOCを削減するために、HW(ハードウェア)リソースをどう有効利用するかどうかの研究、開発が盛んに行われている。しかしながら、更なるTOCの削減を追及する余地がまだある。
これに関連する技術として、特許文献1には、プリフェッチ用スレッド及びプリチャージ用スレッドを生成するコンパイラ装置が記載されている。これによると、生成された両スレッドがメインプログラムと並列に動作しながら、プログラムの優先度及びキャッシュメモリの使用率を考慮したプリフェッチ及びプリチャージを行う。こうすることで、キャッシュメモリのヒット率を向上させ、キャッシュメモリからの無駄なプリフェッチを防止することができるとされている。
特開2005−078264号公報
しかし、マルチプロセッサを用いたコンピュータシステムの場合、空プロセッサがあっても他のプロセッサとHWが同じであるため、実行すべきプログラムがなければ、空プロセッサは無駄となる。このため、実行すべきプログラムがない場合、空プロセッサをどう有効活用するかが課題となっている。
その対策として、マルチプロセッサのコア内にアウト・オブ・オーダ機能やプリフェッチ機能や分岐予測機能を追加することにより、キャッシュミスによるメモリアクセス時間を隠蔽することができる。しかし、複雑な機能を追加すると、チップ面積が増大してマルチプロセッサ数が増やせないという課題がある。従って、マルチプロセッサを用いたコンピュータシステムの場合、プロセッサ単体の性能を向上させつつ、プロセッサ数を増やすことが課題にあげられる。
本発明の目的は、上記課題を解決し、プロセッサ単体の性能を向上させつつ、プロセッサ数を増やすことができるマルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法を提供することにある。
本発明の第1の観点によれば、複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを有し、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に1つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサが提供される
本発明の第2の観点によれば、複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを備えたマルチプロセッサの処理方法であって、前記マルチプロセッサが、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に1つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサの処理方法が提供される
本発明によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減ができるので、プロセッサ単体の性能を向上することができる。また、複雑なHWを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能でマルチプロセッサ数を増やすことができる。
本発明の実施例に係るマルチプロセッサシステムの全体構成を示す概略ブロック図である。 図1に示すプリフェッチ機構の内部構成を示す概略ブロック図である。 図1に示すマルチプロセッサシステムの動作を示す概略フローチャートである。
以下、本発明に係るマルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法の実施の形態について、図面を参照して詳細に説明する。
本実施の形態は、複数のプロセッサで共有するキャッシュで構成されているマルチプロセッサシステムにおいて、マルチプロセッサの空プロセッサをプリフェッチ処理に使うことにより性能を向上させると共に、空プロセッサがない場合は通常処理を行える柔軟なマルチプロセッサ環境を提供する。具体的には、(1)空プロセッサをプリフェッチ機能にするモードとプリフェッチ専用プロセッサに対応するプロセッサを指定する手段と、(2)プリフェッチ処理で先行するロード命令にデータ依存がある場合は、データ依存を解決する手段とを有する。以下、各手段について説明する。
(1)プリフェッチ機能にするモードとプリフェッチ専用プロセッサに対応するプロセッサを指定する手段は、マルチプロセッサの各コアのモードに情報を設定することで実現する。その設定は、専用命令で行う。各コアのモード情報には、現時点のプロセッサのモードが保持されている。モードの内容は、プリフェッチ機能、通常機能とする。
プリフェッチ機能がオンになると、対となるプロセッサ情報も保持される。対となるプロセッサグループは、OSから見ると1つのプログラム実行単位となる。プリフェッチ機能有効のプロセッサでプログラムを実行する場合は、同じプログラムであるがそれぞれのプロセッサに最適化されたプログラムが実行される。プリフェッチ専用プロセッサに最適化されるプログラムは、ロード命令に関係ない命令(ストア命令、ロード命令に関係ない演算命令等)は、コンパイラによって削除される。データ依存が不明確な命令は、同期命令に変化して残す。空きプロセッサがない場合は、モードを通常機能としてプリフェッチ専用プロセッサに最適化されてないプログラムを実行する。
(2)データ依存を解決する手段は、同期制御とアドレス情報により処理される。その処理は、専用命令で行う。ここでのデータ依存とは、プロセッサ間で発生するロード命令とストア命令のライト・アフター・リード、リード・アフター・ライトである。ライト・アフター・ライトは、プリフェッチ専用プロセッサでストア命令は実行されないので考慮しない。同期方法は、同期型ロード命令でアドレスとデータ長を登録し、同期型ストア命令でデータ依存があるかチェックして、依存があればロード命令をキャンセルする。
上記の各手段は、複数のプロセッサで共有するキャッシュで構成されているマルチプロセッサシステムにおいて、次のようなコンパイラ、OS、コンピュータシステムの各構成により実現される。
(コンパイラ)
1.コンパイラは、同じプログラムソースから複数のプロセッサに最適化されたオブジェクトソースを生成するもので、次のような処理を行う。
1つは、プログラムソースから、ロード系命令とストア系命令のデータ依存を解析し、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換して、オブジェクトソースを生成する。
もう1つは、プログラムソースから、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換して、オブジェクトソースを生成する。
2.上記1で生成された複数種類のオブジェクトソースは、それぞれ並列化される。
3.上記1か2で生成された2種類のオブジェクトソースは、1つのオブジェクトソースにマージされ、実行するプロセッサによって分岐する命令が追加される。
(OS)
4.OSは、上記1か3で生成されたオブジェクトソースと、上記1か3以外で生成されたオブジェクトソースとを識別するための管理情報をもつ。
5.OSは、上記2で並列化されたオブジェクトソースの必要プロセッサ数を保持するための管理情報をもつ。
6.OSは、上記4と5の情報を元にプロセッサのモードをリード・設定・解除する命令を発行する。
7.OSは、上記1か3のオブジェクトソースを実行する前に、複数のプロセッサが共有メモリ空間を確保できる初期化処理を行う。
8.OSは、上記5と6の情報から上記1か3のオブジェクトソースを任意のプロセッサに実行できる。
(コンピュータシステム)
9.コンピュータシステムは、上記1と6の命令を制御するHW(ハードウェア)機構をもつ。
10.HW機構は、受信部と、送信部と、モード制御部と、同期制御部と、モード情報とアドレス情報を保持する部分とからなる。
11.モード情報は、複数のプリフェッチ機能を使用可能なプロセッサ情報とプリフェッチ機能を使用不可能なプロセッサ情報を保持するとともに、複数のプリフェッチ機能を使用可能なプロセッサ情報とプリフェッチ機能を使用不可能なプロセッサ情報をグループ化して管理する情報を持ち、リード・ライトできる。
12.アドレス情報は、複数のプリフェッチ機能を使用不可能なプロセッサ分の領域を持ち、プロセッサの領域は複数の同期制御付ロード系命令に関連する情報を持ち、当該情報は、ロード系命令のロードアドレスとロードサイズと同期制御付ストア系命令実行されるプロセッサのプロセッサ番号をリード・ライトできる。
13.同期制御部は、同期制御付ストア系命令実行した際、プリフェッチ機能を使用可能なプロセッサに仕掛中のロード系命令があった場合、該プロセッサと共有キャッシュとメインメモリにキャンセル指示を発行できる。
14.共有キャッシュは、上記1か3で生成した複数種類のオブジェクトソースのロード系命令によってキャッシュミスが発生した際、種類別に置き換えるウェイをコンピュータシステムが予め決めておき、メインメモリのデータをキャッシュに登録する。
以上説明したように、本実施の形態によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減ができるので、性能を向上することができる。また、複雑なHWを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能でマルチプロセッサ数を増やすことができる。
図1に本発明の実施例に係るマルチプロセッサシステムの全体構成を示す。
図1に示す本実施例のマルチプロセッサシステムは、マルチプロセッサ1000およびメインメモリ1500を含むコンピュータシステム100と、このコンピュータシステム100により実行されるOS(オペレーティングシステム)111およびオブジェクトソース112を含むプログラム110と、コンパイラ120とを有する。以下、コンパイラ120、OS111、マルチプロセッサ1000の順に説明する。
(コンパイラ120)
コンパイラ120は、同じプログラムソースから、マルチプロセッサ1000の複数のプロセッサに最適化されたオブジェクトソース112を生成するもので、次の機能を有する。
1.ロード系命令とストア系命令とIO系命令のデータ依存を解析して、静的にデータ依存がない演算系命令、ストア系命令、分岐系命令、IO系命令をオブジェクトソースから削除し、静的にデータ依存が不明確なロード系命令は同期制御付ロード系命令に変換し、プリフェッチ専用プロセッサのオブジェクトソースを生成する。
2.ロード系命令とストア系命令とIO系命令のデータ依存を解析して、静的にデータ依存が不明確なストア系命令は同期制御付ストア系命令に変換し、プリフェッチ専用プロセッサと対となるプロセッサのオブジェクトソースを生成する。
3.自プロセッサがプリフェッチ専用プロセッサか否かを判断する命令と、前記2種類のオブジェクトソースに分岐する分岐命令を挿入して、1つのオブジェクトソースを生成する。
(OS110)
OS110は、次の機能を有する。
1.コンパイラ120が生成したプリフェッチ機能を使用するオブジェクトソースとプリフェッチ機能を使用しないオブジェクトソースを管理する。
2.プリフェッチ機能を使用するオブジェクトソースを実行する際、モード制御するためにモードリード命令、モード設定命令、モード解除命令を発行する。
3.プリフェッチ機能を使用するオブジェクトソースを実行する際、プリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサのメモリ空間が同一となるように初期設定する。
(マルチプロセッサ1000)
マルチプロセッサ1000は、図1に示すように、プロセッサコア1100と、プロセッサコア群1200と、HW機構であるプリフェッチ機構1300と、共有キャッシュ1400とから構成されている。このマルチプロセッサ1000は、バス等を介してメインメモリ1500に接続されている。
プロセッサコア1100は、プリフェッチ専用プロセッサとして動作可能である。このことは、予めコンピュータシステム100で定義されている。プロセッサコア群1200も、プリフェッチ専用プロセッサとして動作可能である。このことも、予めコンピュータシステム100で定義されている。
プリフェッチ機構1300は、プロセッサコア1100と、プロセッサコア群1200と、共有キャッシュ1400と、メインメモリ1500とにそれぞれ接続されている。
共有キャッシュ1400は、キャッシュコントローラ1410と、タグ群1420と、データ群1430とから成る2ウェイセットアソシアティブ方式のキャッシュで構成される。ここで、ウェイ番号1はプロセッサコア1100で使う専用領域で、ウェイ番号2はプロセッサコア群1200で使う専用領域である。ウェイ番号の決定は、キャッシュミスが発生した際の置き換え処理で決定する。
(プリフェッチ機構1300)
図2は、プリフェッチ機構1300の構成である。プリフェッチ機構1300は、受信部2100と、送信部2200と、モード制御部2300と、同期制御部2400と、モード情報2500と、アドレス情報2600とで構成される。
受信部2100は、マルチプロセッサ1000から、コマンド部とデータ部からなる信号を受信する。この信号は、コンパイラ120で生成した同期制御付ロード系、同期制御付ストア系命令と、OS111が発行するモードリード命令、モード設定命令、モード解除命令の信号である。受信部2100は、バッファを持ち、FIFO(First-In First-Out)で制御する。
送信部2200は、前記各命令のリプライを各プロセッサコアに送信する。
モード制御部2300は、モードリード命令、モード設定命令、モード解除命令に応じて、モード情報2500にリード・ライトし、その結果を送信部2200へ送る。
モード情報2500は、各プロセッサコアの情報を保持する。この情報は、プリフェッチ機構が使用可能か不可能か保持し、使用可能な場合はプリフェッチ専用プロセッサと対となるプロセッサ情報を保持する。
同期制御部2400は、同期制御付ロード系命令、同期制御付ストア系命令に応じて、アドレス情報2600にリード・ライトし、その結果を判定して送信部2200へ送る。アドレス情報2600は、プロセッサコア群1200の数分の領域を持つ。
各プロセッサコアの領域には、複数の同期制御付ロード系命令のロードアドレスとロードサイズを登録できる領域を持っている。同期制御付ロード系命令の場合、アドレス情報2600にプロセッサコア番号とロードアドレスとロードサイズをライトする。同期制御付ストア系命令の場合、アドレス情報2600からプロセッサコア番号とストアアドレスと同じアドレスを検索し、あれば情報を削除する。
(本実施例の動作)
図3は、本実施例の動作フローである。
本実施例に係るマルチプロセッサシステムにおいて、はじめにステップ3010で、OS111のディスパッチャで選択されたプログラムは、OS111のプログラム管理情報からプリフェッチ機能を使用するオブジェクトソースとプリフェッチ機能を使用しないオブジェクトソースかを識別される。その結果、プリフェッチ機能を使用するオブジェクトソースであれば、ステップ3020に、プリフェッチ機能を使用しないオブジェクトソースであれば、ステップ3040になる。
次のステップがステップ3020の場合、OS111のディスパッチャは、モードリード命令を発行してプリフェッチ専用プロセッサが使用可能か判定する。ここで、プリフェッチ専用プロセッサが使用可能かの判定は、プロセッサコア1010のモード情報2500にモードが設定されてない場合は使用可能、モードが設定されている場合は使用不可能と判定する。
その結果、使用可能な場合は、ステップ3030とステップ3040に、使用不可能な場合は、ステップ3040のみとなる。一方、使用可能な場合、OS111のディスパッチャは、プリフェッチ専用プロセッサと対となるプロセッサ群を決定する。
プロセッサ群の決定は、OS111のプログラム管理情報に登録してあるプロセッサ数から決定する。また、OS111のディスパッチャは、プログラム管理情報のプロセッサ数と実行可能なプロセッサ数を比較して少ない方を決め、プリフェッチ機構1300にモード設定命令を発行する。
ここで、並列化プログラムのプロセッサ群のプロセッサ割付アルゴリズムは、予めコンピュータシステム100で定義されている。さらに、OS111のディスパッチャは、プロセッサコア1100とプロセッサコア群1200にプリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサのメモリ空間が同一となるように初期設定する。OS初期設定が終わると、次のステップ3030とステップ3040に移る。
次のステップ3030とステップ3040で、プリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサ群は、1つのオブジェクトソースを実行する。
プリフェッチ専用プロセッサは、プリフェッチ専用プロセッサのオブジェクトソースに分岐し、プリフェッチ専用プロセッサと対となるプロセッサ群は、プリフェッチ専用プロセッサと対となるプロセッサのオブジェクトソースに分岐して、各プロセッサコアで実行される。
プリフェッチ専用プロセッサは、ステップ3050に移る。プリフェッチ専用プロセッサと対となるプロセッサ群は、ステップ3060に移る。
次のステップ3050で、プリフェッチ専用プロセッサは、ロード系命令を実行する。ここで、ロード系命令が同期制御付ロード系命令の場合は、ステップ3070に移る。ロード系命令が同期制御付ロード系命令以外の場合は、ステップ3090に移る。
次のステップ3070で、プリフェッチ専用プロセッサは、同期制御付ロード系命令をプリフェッチ機構1300に発行する。プリフェッチ機構1300は、アドレス情報2600に同じプロセッサコア番号で同じロードアドレスがないか判定する。
その結果、同じプロセッサコア番号で同じロードアドレスがなければ、アドレス情報2600に対となる同期制御付ストア系命令が実行されるプロセッサコア番号とロードアドレスとロードサイズをライトする。一方、同じプロセッサコア番号で同じロードアドレスがあれば、先に同期制御付ストア系命令が実行されていることになり、同期制御付ロード系命令はキャンセルされる。
ここで、同期制御付ストア系命令の前に次の同期制御付ロード系命令がきた場合は、アドレス情報2600の別の領域に次の同期制御付ロード系命令として登録していく。
次のステップ3090で、プリフェッチ専用プロセッサは、同期制御付ロード系命令以外のロード系命令を実行し、メインメモリ1500から共有キャッシュ1400にデータの写しをデータ群1430にコピーすると共に、タグ群1420にタグアドレスを登録する。この登録は、プリフェッチ専用プロセッサと対となるプロセッサ群に上書きされないようにウェイ番号1に登録される。
次のステップ3060で、プリフェッチ専用プロセッサと対となるプロセッサ群は命令を実行する。同期制御付ストア系命令の場合は、ステップ3080に移る。ロード系命令の場合は、プリフェッチ専用プロセッサのキャッシュへのプリフェッチが行われているとキャッシュヒットとなる。キャッシュミスとなった場合は、ウェイ番号2にメインメモリ1500から共有キャッシュ1400にデータの写しをデータ群1430にコピーすると共に、タグ群1420にタグアドレスを登録される。
次のステップ3080で、プリフェッチ専用プロセッサと対となるプロセッサ群は、同期制御付ストア系命令をプリフェッチ機構1300に発行する。プリフェッチ機構1300は、アドレス情報2600に同じプロセッサコア番号で同じロードアドレスがないか判定する。
その結果、同じプロセッサコア番号で同じロードアドレスがなければ、アドレス情報2600に対となる同期制御付ストア系命令実行されるプロセッサコア番号とロードアドレスとロードサイズをライトする。一方、同じプロセッサコア番号で同じロードアドレスがあれば、アドレス情報2600に登録されている情報を削除する。
さらに、プリフェッチ専用プロセッサの同期制御付ロード系命令が仕掛かり中であれば、プリフェッチ専用プロセッサとメインメモリ1500と共有キャッシュ1400にキャンセル指示を発行する。
最後にステップ3100では、プリフェッチ機能を使用するオブジェクトソースであれば、モード解除命令を発行し、ステップ3010に戻る。プリフェッチ機能を使用しないオブジェクトソースであれば、ステップ3010に戻る。
したがって、本実施例によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減できるので、性能を向上することができる。また、複雑なHWを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能で、マルチプロセッサ数を増やすことができる。
なお、上述したマルチプロセッサ内のHW機構であるプリフェッチ機構の内部構成は特に限定されるものではなく、上述した各部の機能を実現可能であれば、各部の機能毎に個別に構成したものでも、各部の機能を一体的に構成したものでも、いずれも適用可能である。
以上、実施の形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施の形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
本発明は、マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法の用途に利用可能である。
100 コンピュータシステム
110 プログラム
111 OS
112 オブジェクトソース
120 コンパイラ
1000 マルチプロセッサ
1100 プロセッサコア
1200 プロセッサコア群
1300 プリフェッチ機構
1400 共有キャッシュ
1410 キャッシュコントローラ
1420 タグ群
1430 データ群
1500 メインメモリ
2100 受信部
2200 送信部
2300 モード制御部
2400 同期制御部
2500 モード情報
2600 アドレス情報

Claims (9)

  1. 複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを有し、
    前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に1つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、
    前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、
    前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、
    前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサ。
  2. 前記複数種類のオブジェクトソースは、それぞれ並列化されることを特徴とする請求項
    に記載のマルチプロセッサ。
  3. 前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとは、1つのオブジェクトソースにマージされ、
    前記1つのオブジェクトソースには、実行するプロセッサによって分岐する命令が含まれていることを特徴とする請求項に記載のマルチプロセッサ。
  4. 前記プリフェッチ機能を使用可能なプロセッサ情報と前記プリフェッチ機能を使用不可能なプロセッサ情報とをリードおよびライト可能に保持するモード情報をさらに有することを特徴とする請求項1に記載のマルチプロセッサ。
  5. 前記プリフェッチ機能を使用不可能なプロセッサ分の領域を持ち、このプロセッサ分の領域は複数の同期制御付ロード系命令に関連する情報を持ち、当該情報は、ロード系命令のロードアドレスとロードサイズと同期制御付ストア系命令実行されるプロセッサのプロセッサ番号をリードおよびライト可能に保持するアドレス情報を含むことを特徴とする請求項に記載のマルチプロセッサ。
  6. 前記同期制御付ストア系命令実行した際、前記プリフェッチ機能を使用可能なプロセッサに仕掛中のロード系命令があった場合、該プロセッサと前記共有キャッシュとメインメモリにキャンセル指示を発行できる同期制御部をさらに有することを特徴とする請求項に記載のマルチプロセッサ。
  7. 前記共有キャッシュは、前記複数種類のオブジェクトソースのロード系命令によってキャッシュミスが発生した際、種類別に置き換えるウェイを予め決めておき、メインメモリのデータをキャッシュに登録することを特徴とする請求項に記載のマルチプロセッサ。
  8. 請求項1からのいずれか1項に記載のマルチプロセッサを用いたことを特徴とするコンピュータシステム。
  9. 複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを備えたマルチプロセッサの処理方法であって、
    前記マルチプロセッサが、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に1つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、
    前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、
    前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、
    前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサの処理方法。
JP2010002063A 2010-01-07 2010-01-07 マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法 Expired - Fee Related JP5541491B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010002063A JP5541491B2 (ja) 2010-01-07 2010-01-07 マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010002063A JP5541491B2 (ja) 2010-01-07 2010-01-07 マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法

Publications (2)

Publication Number Publication Date
JP2011141743A JP2011141743A (ja) 2011-07-21
JP5541491B2 true JP5541491B2 (ja) 2014-07-09

Family

ID=44457536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010002063A Expired - Fee Related JP5541491B2 (ja) 2010-01-07 2010-01-07 マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法

Country Status (1)

Country Link
JP (1) JP5541491B2 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03268041A (ja) * 1990-03-17 1991-11-28 Res Dev Corp Of Japan キャッシュ操作明示化コンピュータ
JP4784792B2 (ja) * 1999-12-22 2011-10-05 学校法人早稲田大学 マルチプロセッサ
US6415356B1 (en) * 2000-01-14 2002-07-02 Sun Microsystems, Inc. Method and apparatus for using an assist processor to pre-fetch data values for a primary processor
US6681318B2 (en) * 2000-09-08 2004-01-20 Sun Microsystems, Inc. Method and apparatus for using an assist processor to prefetch instructions for a primary processor
JP3681647B2 (ja) * 2001-02-21 2005-08-10 株式会社半導体理工学研究センター キャッシュメモリシステム装置
JP2002312180A (ja) * 2001-04-11 2002-10-25 Hitachi Ltd 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス
JP4374221B2 (ja) * 2003-08-29 2009-12-02 パナソニック株式会社 コンピュータシステムおよび記録媒体
US20050071438A1 (en) * 2003-09-30 2005-03-31 Shih-Wei Liao Methods and apparatuses for compiler-creating helper threads for multi-threading
US20050071841A1 (en) * 2003-09-30 2005-03-31 Hoflehner Gerolf F. Methods and apparatuses for thread management of mult-threading
US7328433B2 (en) * 2003-10-02 2008-02-05 Intel Corporation Methods and apparatus for reducing memory latency in a software application
US7552317B2 (en) * 2004-05-04 2009-06-23 Sun Microsystems, Inc. Methods and systems for grouping instructions using memory barrier instructions
US20060026371A1 (en) * 2004-07-30 2006-02-02 Chrysos George Z Method and apparatus for implementing memory order models with order vectors
JP4821907B2 (ja) * 2007-03-06 2011-11-24 日本電気株式会社 メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム
JP5105359B2 (ja) * 2007-12-14 2012-12-26 富士通株式会社 中央処理装置、選択回路および選択方法

Also Published As

Publication number Publication date
JP2011141743A (ja) 2011-07-21

Similar Documents

Publication Publication Date Title
US11500778B2 (en) Prefetch kernels on data-parallel processors
US10592300B2 (en) Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US10019263B2 (en) Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
US10048964B2 (en) Disambiguation-free out of order load store queue
US9965277B2 (en) Virtual load store queue having a dynamic dispatch window with a unified structure
EP2862072B1 (en) A load store buffer agnostic to threads implementing forwarding from different threads based on store seniority
EP2862062B1 (en) A virtual load store queue having a dynamic dispatch window with a distributed structure
EP2862058B1 (en) A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order
US9990198B2 (en) Instruction definition to implement load store reordering and optimization
US20150095588A1 (en) Lock-based and synch-based method for out of order loads in a memory consistency model using shared memory resources
JP5541491B2 (ja) マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法
US20150095591A1 (en) Method and system for filtering the stores to prevent all stores from having to snoop check against all words of a cache
US20230315536A1 (en) Dynamic register renaming in hardware to reduce bank conflicts in parallel processor architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140331

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5541491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees