二項順序関係により投機的メモリアクセスを制御するキャッシュシステム
6
0
0
全文
(2) スレッドの投機実行時にはメモリアクセスの実行に対 して次の 3 つの拡張をそれぞれ施す事で,これらの条件 を満たす事ができる.. Processor. ld A. ld A st buf $. st buf. st buf. IPC1. $. i.(a)依存関係の検出のため,プロセッサはロード のアドレスを記録し,ストアのアドレスを他 のプロセッサに通知する.依存関係の違反は, 記録したロードアドレスに対して,先行スレッ ドから通知が来た場合として検出でき,スレッ ドの相対的な順序関係で判定が可能である. (b)依存関係の解決のため,プロセッサはストア のアドレスを記録し,後続スレッドでロード が実行された場合には,依存関係を満たすた めに次項で説明するキャッシュにコミットさ れた結果をフォワードする.この時,ストア されたデータを持つ先行スレッドのうちロー ドに対して最新のデータを有しているスレッ ドを判定する必要がある. ii. ストアは結果をキャッシュにのみコミットし,投 機が失敗した場合には,キャッシュ上のデータを 無効にする事で,実行を取り消す事ができる. iii. 投機が成功した後にキャッシュにコミットされて いる結果をメモリにコミットする.生成依存関係 を満たすためには次の 2 つの方法が考えられる. (a)投機の成功が確認された時にスレッド単位で 逐次にストアの結果を反映する [4, 7, 6].逐次 にデータをメモリに書き戻す事で生成依存関 係を満たす事はできるが,オーバヘッドが大 きく,この操作によってバスが占有され,他 のスレッドの実行を阻害する. (b)投機が成功した後初めてアクセスされた時に 最新のデータであるかを確認する.データの メモリへの書き戻しをアクセス時に遅延およ び分散させる事ができるため,他のスレッド の実行を妨げず,投機の成功時にメモリ操作 に伴うオーバヘッドをなくす事ができる.本 稿では上記方法を実現する方式を提案する.. $ IPC2. (a). (b). Shared Bus. 図 1: 依存関係の解決. 我々は,この節で述べたスレッドの投機実行モデルを 用いたプロセッサにおいて,メモリアクセスを投機的に 行う事を可能とするキャッシュ機構を実現する. 2.1 スレッドの投機実行における問題点 マルチプロセッサの各プロセッサにスレッドを分配し, 投機に並列実行するシステムでは,各プロセッサで実行 されるスレッド間の依存関係を解決するために,プロセッ サを跨いだ依存関係の検出および解決機構が必要である. レジスタ値に関する依存関係の解決には,プログラムを 解析し命令列を生成する方法 [1] および値予測を用いる 方法が用いられている.一方,メモリに関しては実行時 にハードウェアによる依存関係の検出および解決をする 方法が用いられている [3, 2, 7, 5, 8]. 命令の投機実行では一般に,プロセッサはスケジュー ル制御の一部としてキュー構造をしたストアバッファを 用いて,メモリアクセス命令のコミット前の依存関係を 管理している (図 1(a)).しかし,スレッドの投機実行で は投機の確定までの時間が長く,さらにキュー構造を用 いた依存関係の検出には full-associative な検索が必要で あるため,実装には大量のハードウェア資源が必要であ り,処理の遅延が大きい. また,ストアバッファは各プロセッサで独立に使用 され,プロセッサ間で情報を共有する事はない.そのた め,スレッド間の依存関係を検出するためには図 1(b) の IPC1 で示した各プロセッサのストアバッファ間に専用の 通信機構を追加する必要がある.一方,従来のマルチプ ロセッサでは IPC2 で示した共有バス上で通信する事に よってキャッシュ間でデータの一貫性を保っている.そ のため,投機的実行によるプロセッサを跨ぐメモリデー タの依存関係の検出および解消を実現するためには,ス トアバッファを拡張するよりも,共有バス上の通信を拡 張した方が,ハードウェアの追加量が少なく,命令の実 行時間に与える影響が少ない. 2.2 投機的メモリアクセス スレッドの投機実行がプログラムを逐次実行した場合 と同じ結果を得るためには,プロセッサでのメモリアク セスの実行時には次の 3 つの条件を満たす必要がある.. 1. ロードはスレッドを逐次実行した場合に同一のア ドレスに対して直前に実行されたストア値を読む. つまり,プロセッサは実行時にスレッド間の依存 関係を (a) 検出および (b) 解決する必要がある. 2. 投機が失敗した場合にはストアの実行結果が取り 消せる. 3. 投機が成功した場合にはストアの実行結果をメモ リに反映する.この時,生成依存関係を満たすた めに,後続スレッドによる結果を上書きしてはい けない.. 3. 提案方式. 前節で述べたように,並列に投機実行されるスレッド 間のメモリに関する依存関係を効率良く処理するために はキャッシュおよびキャッシュの一貫性維持のための通 信プロトコルを拡張する必要がある. これまでにマルチプロセッサのキャッシュ一貫性プロ トコルを拡張してスレッドの投機実行に伴うメモリアク セスを処理する方法が提案された [2, 7, 5, 8] .しかし, 集中的制御機構によるリンクリストを用いた投機的デー タの管理 [2, 7, 8] や,スレッドの投機成功時の投機的 データのバーストな書き戻し [5, 8] という問題点がある. 我々は,キャッシュ間の投機的データの全順序関係を 集中的に管理するのは冗長であり,2 つのキャッシュ間 の投機的データの順序関係を把握すれば十分である事に 注目した.投機的データの二項順序関係を個々のキャッ シュにおいて分散的に管理する事により,投機的データ の順序関係を定数時間で判定可能という特徴を持った キャッシュ機構を提案する.この方式は,集中的な管理 機構を用いる場合に比べ実装に必要なハードウェア量が 少なく,処理にかかる遅延が小さい.また,投機的データ のキャッシュ間でのフォワードによりスレッド間の依存 関係の投機的解消が実現でき,投機成功時に投機的デー タの書き戻しを必要としない特徴を持つ.. 2 −36−.
(3) 3.1 基本アイディア ストアバッファでの依存関係の検出および解決の機能 と共有バス上の通信によるキャッシュ一貫性維持の機能 を融合させ,スレッドの投機実行時の依存関係の検出およ び解決をするため,キャッシュおよびスヌープ型のキャッ シュ一貫性プロトコルを拡張する.2.2 節で述べた投機的 メモリアクセスの拡張を次のようにキャッシュ機構に対 して適用する.. Time. T1. T2. ld A (a). 態を拡張してロードを記録する.先行スレッ ドからの通知としては invalidation 要求を利用 する. (b)プロセッサの private キャッシュのブロック状 態を拡張してストアを記録する.後続スレッ ドからのリード要求に対してキャッシュにの みコミットされた結果をフォワードする.こ の時メモリを更新しない. 2. 投機の成功が確定するまで変更されたブロックを メモリに書き戻さない. 3.(a)投機の成功が確認された時にキャッシュにコ ミットされていたストアの結果をすべてメモ リに書き戻す.この操作をスレッド単位で逐 次に行う. (b)投機時のデータの順序関係を記録しておき, 投機が成功した後初めてアクセスされた時に バス要求を送る事で最新のデータを判定する.. 1. Pk がリード要求を出す. 2. P j は T ID j < T IDk ならば acknowledge を返す. 3. (2) で acknowledge を返したプロセッサ数を n と し,その m 番目のプロセッサを Pkm とする. (a)n = 0 の場合,Pk がメモリからデータを読み 込む.. T4. st A. 1.(a)プロセッサの private キャッシュのブロック状. 3.2 二項関係を用いた依存関係の判定 投機的メモリアクセスをキャッシュ一貫性プロトコル を拡張して処理する場合, スレッドおよびスレッドから のメモリアクセスの順序関係をバス要求時を効率良く判 定する必要がある. スレッドの投機実行では分岐依存関係によりスレッド に全順序関係が存在し,メモリアクセスについても実行 時にスレッド単位で全順序関係を把握する事によって依 存関係を検出できる.しかし,実行時に順不同で実行さ れるメモリアクセスの全順序関係を更新するには,ベク トルを用いて管理した場合には更新を行うため,リスト を用いて管理した場合には検索を行うためにプロセッサ 台数に比例した回数の操作が必要である.全順序を管理 するには情報を集中的に処理する必要があるが, 中央主 権的な機構では処理が集中しボトルネックとなり,各プ ロセッサで情報を管理するとプロセッサ台数の記憶容量 が必要である. 2.2 節で述べたように投機実行されるスレッド間の依存 関係を解決するためには,あるスレッドからのバス要求 に対して最新のデータを持っているスレッドのみを判定 する事ができればよい. バス要求時にバス要求とキャッシュブロックの順序関 係を判定するため,投機的メモリアクセスに伴うバス要求 および acknowledge にはスレッド番号を付加し, キャッ シュブロックのスレッド番号と比較する. システムが N 個のプロセッサ Pi (1 ≤ i ≤ N) で構成さ れ,Pi で投機実行しているスレッド番号を T IDi とする. バス要求に対してデータを供給するためのアルゴリズム を以下に示す:. T3. st A. P1. P4. P3. P2. State TID Data. O 1 d1 Time. O 3 d3. I. I. 5JCTGF$WU. 1.Req4 2.Ack1. 2.Ack3 3.Effective (b). 4.Forward3. 図 2: 投機的な依存関係の解決. (b)n = 1 の場合,Pk1 が Pk にデータをフォワー ドする. (c)n ≥ 2 の 場 合 ,Pkm は k0 = k1 , k2 , ..., km−1 , km+1 , ..., kn に対して T IDkm > T IDk0 ならば, Pkm が Pk にデータをフォワードする. 図 2 では,P1 , P3 が acknowledge を返し,(3c) の判定 によって P3 がデータを P4 に供給する. 上記アルゴリズムにおいて,各プロセッサ Pi は T IDi < T ID j または,T IDi > T ID j の比較のみを行う.すなわ ち,他のスレッドとの相対的な順序関係のみを判定する. 従って,各プロセッサでは他のプロセッサで実行されて いるスレッドとの二項順序関係を記録すれば,メモリア クセスの依存関係を解決できる. 3.3 キャッシュ一貫性スキームの拡張 依存関係を検出するために,キャッシュブロックの状 態を拡張して投機的メモリアクセスのロードとストアを 別々に記録する.また,通常のメモリアクセスに対する バス要求とは区別するため,投機的メモリアクセスに対 しては別の種類のバス要求を用いる. 依存関係検出のため,各プロセッサは invalidation 要 求に対して要求が先行スレッドからの要求であるかを判 定する.スヌープが投機的にロードしたと記録されたブ ロックにヒットした場合には,プロセッサは依存関係に 違反してロードを実行した事になり,スレッドの投機実 行を取り消す. 投機的に依存関係を解消するため,各プロセッサはリー ド要求に対して前節で述べた方法によって要求に対して 最新のデータを持っているか判定する.要求に対する最 新のデータを持っていると判定したプロセッサは,データ を要求元のプロセッサにフォワードする.この時,フォ ワードされるデータでメモリを更新できないので,フォ ワード元のプロセッサは該当ブロックの状態を shared dirty にする. フォワード元のスレッドの投機が失敗した場合には, フォワード元のデータに加え,フォワードされたデータ を無効化する必要がある.要求元のプロセッサは該当ブ ロックをローカルに投機的に変更されたと同様に扱い, フォワード元のスレッドが投機に失敗した事が通知され. 3 −37−.
(4) た場合には,プロセッサは要求元のスレッドの投機失敗 と判定する. 3.4 生成依存関係の回避 生成依存関係を満たすため,スレッドの依存関係の順序 に従ってスレッド順に投機的なストアの結果をメモリに 反映させる.しかし,この方法では 2.2 の (3a) で述べた ように,投機成功時のバスが占有され処理のオーバヘッド が大きい.成依存関係を満たしながら投機的データの書 き戻しを遅延させメモリを更新すれば問題を解決できる. しかし,投機時にはデータの順序関係に関する情報は保 持しているが,投機が成功すると,その情報を消去するた め,単純には遅延させられない.プロセッサは,保持する 投機的データの別のインスタンスを他のプロセッサが生 成した場合には,投機的データの順序関係を Versioning Bufffer と呼ぶバッファに保持しておく.投機の成功後に 初めてアクセスされた時に Versioning Buffer を読み,他 のプロセッサの投機が成功したか確認し,当該ブロック のデータが最新であるか判定する.後続スレッドにより 投機的データが他に生成された場合で,そのスレッドの 投機が成功していた場合には,当該ブロックを無効にし, データをフォワードあるいはメモリから読み込む. 後続 スレッドの投機が失敗していた場合や先行スレッドによ り投機的データが他に生成された場合には,該当ブロッ クは最新であり,プロセッサは所有権を有する.. 4. 実装. 4.1 スレッド操作と二項関係のマスクによる管理 各プロセッサで実行されているスレッドの順序関係お よび投機の成否を把握するため,プロセッサはスレッド 操作時に,次の 3 つの通信を行う.. • スレッドの投機開始時に他のプロセッサにスレッ ド番号を通知する.. • すべての先行スレッドの投機が成功し,さらに自. Processor1 Processor2. #1. #3. #4. ]. ACK✢. Shared Bus 図 3: acknowkedge 信号線の構成. レッドであるか判定できる. 4.2 共有バスの構成とバス要求の拡張 共有バスはアドレスバスとデータバス,さらに調停, スヌープ結果,acknowledge,negative acknowledge 用の 信号線から構成される.3.2 節で述べたように複数の acknowledge が単一の要求に対して返される可能性があ るため,図 3 のように acknowledge 信号線は複数本と し各線に異なるプロセッサを割り当てて使用する.複数 の acknowledge をビットベクトルとして扱う事が可能で ある. 投機的メモリアクセス時には,通常のバス要求とは別 のバス要求を使用するが,スレッドの開始時にプロセッ サと実行中のスレッドの対応を Thread Mask に記録した ため,投機的メモリアクセスに伴うバス要求にスレッド 番号を付加する事なく,メモリアクセスと投機的データ の依存関係を判定できる.また,投機成功後のアクセス 時に投機的データがまだ有効か確認するためのバス要求 を追加し,Versioning Buffer にエントリがあった場合に 使用する. 4.3 キャッシュブロックの状態の拡張 投機的データのフォワードを行なうためキャッシュの 状態は MOESI 方式を拡張し,以下の MOESI と直交する 状態ビットを追加する.. スレッドの実行が終了した時,つまり,投機の成 功が確定した時に,他のプロセッサにスレッド番 号を通知する. • スレッドの投機が失敗した時に他のプロセッサに スレッド番号を通知する. バス要求にスレッド番号を付加するのではなく,スレッ ドの投機開始時にプロセッサとスレッドの対応関係を記 憶する.さらに,他のプロセッサでのスレッドの投機開始 時に自スレッドとの二項順序関係を予め計算し記憶する. スレッドの二項順序関係の記録には,ビットマスク構 造をした Thread Mask を用いる.Thread Mask の各ビッ トは他のプロセッサで実行されているスレッドとの順 序関係を示している.具体的には,システムが N 個の プロセッサ Pi (1 ≤ i ≤ N) で構成され,Pi で投機実行 しているスレッド番号を T IDi とすると,P j の Thread Mask(b1 b2 ...bN ) のビット bi は,T ID j < T IDi ならばセッ トされる.従ってスヌープ操作時は,バス要求を出した プロセッサに対応する Thread Mask のビットを読むだけ で順序関係の判定ができる. また,投機的データのフォワードにより依存関係を解 消した場合には,フォワード元のスレッドの投機の失敗 をフォワード先のスレッドの投機の失敗の原因と判定す る必要があり,ビットマスク構造をした Forward Mask を 用いる.Forward Mask の各ビットは他のプロセッサで実 行されているスレッドがフォワード元のスレッドである 事を示している.他のプロセッサからスレッドの投機の 失敗が通知されたときには,そのプロセッサに対応する Forward Mask のビットを読むだけでフォワード元のス. #2. Processor3 Processor4. • SpL は該当ブロックに対して投機的に読んだ事を 示す状態ビットで,投機的ロードを行なった時に セットする.スレッドの投機が成功した時および 投機が失敗した時にリセットする. • SpM は該当ブロックに対して投機的に変更された ことを示す状態ビットで,投機的ストアが行なわ れた時および投機的データがフォワードされた時 にセットする.スレッドの投機が成功した時にリ セットする.投機が失敗した時に,SpM がセット されたブロックをすべて invalidate する. • Stale は実行中のスレッドの投機が成功した時に invalidate すべき事を示す状態ビットで,より投機 的なスレッドがストアを行なった時にセットする. つまり,Stale は現在実行中のスレッドに対しては 有効であるが,同一プロセッサ上で次に実行される スレッドに対しては有効ではない可能性がある事 を示している.投機の失敗を検出するために SpL がセットされたブロックの invalidation を投機が成 功するまで遅らせるために使用する. • Commit と Squash はオプションの状態ビットで, Commit は投機が成功した時にセットされ,Squash は 投 機 が 失 敗 し た 時 に セ ッ ト さ れ る .た だ し , Commit と Squash は相互排他的にセットされ, 投機の成功や失敗時に行なわれる状態の遷移を投 機後のアクセス時に遅延するために使用する.. 4.4. Versioning Buffer. Versioning Buffer は複数のキャッシュに同時に存在す る投機的データを管理するために使用される.Versioning. 4 −38−.
(5) Buffer のエントリはアドレスタグとスレッド番号と後続. 資源. パラメータ. スレッドによる投機的データが他のプロセッサに存在す る事を示すビットマスクにより構成される.後続スレッ ドからの投機的ストアに伴うバス要求により snoop され たブロックが投機的に変更されている場合,Versioning Buffer にそのブロックのためのエントリを割り当て,要求 を出したスレッドに対応するビットをセットする.投機 的ストアに伴うバス要求に対して投機的フォワードによ り fill された場合にも Versioning Buffer にエントリを割 り当てる.投機が成功した後にはじめてアクセスされる 時に update 要求をバスに出し,より投機的であったデー タからの acknowledge があった場合には invalidate する. 4.5 複数のスレッドを同時に投機実行するプロセッサに 対する拡張 プロセッサが M 個のスレッドを同時に投機実行 す る 場 合 ,キ ャ ッ シ ュ ブ ロ ッ ク の 状 態 ビ ッ ト SpL, SpM, Commit, Squashed を ブ ロ ッ ク 毎 に M 組 ず つ (S pLi , S pMi , Commiti , S quashedi ) 用意し,プロセッサが 内部で i 番目のスレッドを実行している時は,S pLi , S pMi をブロックの状態ビットとして使用する. また,Thread Mask を (b11 b12 ..bi j ..bN M ) と拡張し,bi j はプロセッサ Pi の j 番目のスレッドとの順序関係を示す ビットとする.そして,バス要求にプロセッサ内部での スレッドの番号を付加する事で対応する. 同一プロセッサ内で投機実行されたスレッドが同じア ドレスに対してストアをしようとした場合,異なるデータ として処理しなければならない.しかし,従来のキャッ シュは 1 つのアドレスに対して単一のブロックしか保持 しない.そこでプロセッサは,スレッドがストアしよう とした時に,同一ブロックが先行スレッドにより変更さ れていた場合にはスレッドをサスペンドし,後続スレッ ドにより変更されていた場合には該当ブロックを無効と し,後続スレッドの実行を取り消し,実行中のスレッドの 実行を続ける.このようにする事によって,キャッシュ のブロックの割当方針を変更しないで対処する事が可能 である.. Reorder Buffer. 64 エントリ 32KB, 2-way 32KB, 2-way, 2 バンク, 1 cycle 8 バンク, 10 cycle. 性能評価. 任意個の要素プロセッサとメモリコントローラがバ スを共有している CMP アーキテクチャをモデル化した シミュレータを用い性能を評価した.要素プロセッサ は MIPS-II に準拠した命令セットを持ち,private な 1 次 キャッシュを備える.アーキテクチャは R10000 [12] と 同様 1 サイクルに 4 命令まで同時に発行できる out-oforder なスーパースカラを用いた.表 1 にハードウェア資 源の設定を示す.実行時ループ再構成方式 [1] に基づい てスレッド (ブロック) を投機実行する機能を持ち,各プ ロセッサは同時に 4 スレッドまで投機実行可能である. 実行時ループ再構成方式は逐次プログラムを実行時に ループ部分を投機並列実行する投機的 SPMD 形式のス レッドに再構成するため,各イテレーションは規則的に スレッドに割当てられる.メモリアクセスは投機的に行 われ,提案したキャッシュ機構を用いて処理する. シミュレーションでは共有バスはスプリット・トラン ザクションを用い,使用の競合をモデル化した.バスア クセス用のバッファと Versioning Buffer のエントリ数は 任意個である. SPEC CPU95 ベンチマークの中から compress∗1 , go∗2 ,. 表 1: Configuration Parameter. ታⴕᤨ㑆 E[ENG. /. . /. . /. . EQORTGUU. IQ. VQOECVX. 図 4: 実行時間. tomcatv∗3 を実行し性能を評価した.図 4 にプロセッサ台 数を変化させた時の実行時間を示す.明かに,プロセッ サ台数の増加に伴い性能が低下する. バスの使用率の時間による変化を compress は図 5,go は図 6,tomcatv は図 7 にそれぞれ示す.スレッドの投機 実行を行う事によってバスの使用が著しく増加している 事が判る.しかし,今回用いたプログラムの投機実行の 対象となったループの隣合うイテレーション間で同一の キャッシュラインに対してストアを実行するために false sharing が発生し投機が失敗し,投機が失敗したスレッド によるバスの使用によってプログラム全体の実行が遅く なったと考えられる.. 関連研究. 6. Multiscalar の ARB [3] ではプロセッサが multi-value の共有キャッシュを用いて投機的メモリアクセスの履 歴を記録するが,メモリアクセスの latency が長く,バ ンド幅が必要で,スレッドの投機成功時に投機的データ を書き戻す必要があり,高速化の実現が不可能である. Multiscalar の SVC [2] は private キャッシュを用いて投 機的メモリアクセスの履歴を記録し,キャッシュ一貫性 100 1 50 0 100 2 ࡃࠬ↪₸ . 5. 命令キャッシュ データキャッシュ メモリ. 50 0 100 4 50 0 100 8 50 0 0. 0.5M. 1M 1.5M ᤨ㑆 E[ENG. 2M. 図 5: compress 実行時のバス使用率. ∗1. 入力データは”100 q 2131” で圧縮/ 解凍は 3 回実行 ∗2 入力データは”5 5”. ∗3. 5 −39−. 入力データのサイズは 64x64. 2.5M.
(6) 100. 本稿で述べた実装法を用いる事により,遅延が少なく定 数時間の判定を可能とした. さらに,提案した方式では投機的データのフォワード による依存関係の解決,投機的データの書き戻しの遅延 を実現できるため,スレッド並列実行の高速化が実現で きる. しかし性能測定の結果,従来の逐次プログラムを用い た場合,プロセッサ台数を増加させ並列度を上げると性 能が低下する事が判った.対象としたプログラムのルー プで隣合うイテレーションが投機的データの生成位置に 関して false sharing の状況にある事が性能低下の原因で ある.投機的メモリ共有の実現に向けて,今後は投機的 に生成されたデータの管理単位を小さくする事を検討し, その場合のキャッシュ機構への副作用を検証する.. 1 50 0 100. ࡃࠬ↪₸ . 2 50. 0 100 4 50. 0 100 8 50. 参考文献 0 0. 0.5M. 1M ᤨ㑆 E[ENG. 1.5M. 2M. 図 6: go 実行時のバス使用率 100 1 50 0 100. ࡃࠬ↪₸ . 2 50. 0 100 4 50. 0 100 8 50 0 0. 2M. 4M 6M ᤨ㑆 E[ENG. 8M. 10M. 図 7: tomcatv 実行時のバス使用率. プロトコルを利用して集中的機構が投機的データの全順 序関係をリンクリストを用い管理するため,依存関係判 定の latency が長く高速化が不可能である. Hydra [7] は private キャッシュを write-through にし, 共有バスと L2 キャッシュの間にスレッド単位に割当てた バッファに投機的データを記録する.この方式では Write 共有バスの競合とバンド幅が問題である. TLDS [5] は invalidation 方式のキャッシュ一貫性プロ トコルを拡張したが,投機的データのフォワードが不可 能であり,スレッドの投機成功時に shared な状態の投機 的データの書き戻しが必要であり,高速化の実現に問題 がある. I-ACOMA の MDT [8] は共有テーブルで投機的データ の管理をするため,メモリアクセスの平均 latency が長 く,スレッドの投機成功時に投機的データを書き戻す必 要があり,高速化が不可能である.. 7. おわりに. 本稿では,二項関係を用いて順序関係を管理する手法 を用い,マルチプロセッサ上でスレッドの投機実行にと もなう投機的メモリアクセスを実現するキャッシュ機構 を提案した.二項関係を用いる事により,個々のキャッ シュにおいて順序関係の判定を分散して実現可能であり,. [1] J. Tamatsukuri, T. Matsumoto, and K. Hiraki. “An Architecture for Speculative Parallel Execution with Loop Analyzer”. IPSJ SIGNotes ARC-119-011. August 1996. [2] S. Gopal, T.N. Vijaykumar, J. E. Smith and G. S. Sohi. “Speculative Versioning Cache”. Proc. of the 4th Int. Symp. on High-Performance Computer Architecture (HPCA4), Feb 1998. [3] M. Franklin and G. S. Sohi. “ARB: A Hardware Mechanism for Dynamic Reordering of Memory References”. IEEE Transactions on Computers, Vol. 45, No. 5, May 1996. [4] G. S. Sohi, S. Breach, and T. N. Vijaykumar. “Multiscalar Processors”. Proc. of the 22nd Int. Symp. on Computer Architecture (ISCA’95), June 1995. [5] J. G. Steffan, C. B. Colohan, A. Zhai and T. C. Mowry. “A Scalable Approach to Thread-Level Speculation”. Proc. of the 27th Int. Symp. on Computer Architecture (ISCA’00), June 2000. [6] J. G. Steffan and T. C. Mowry. “Architectural Support for Thread-Level Data Speculation”. Technical Report CSRI-TR-350, Computer Science Research Institute, University of Toronto, February 1997. [7] L. Hammond, M. Willey, and K. Olukotun. “Data Speculation Support for a Chip Multiprocessor”. Proc. of the 8th Int. Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-VIII), October 1998. [8] M. Cintra, J. Martinez and J. Torrellas. “Architectural Support for Scalable Speculative Parallelization in Shared-Memory Systems”. Proc. of the 27th Int. Symp. on Computer Architecture (ISCA’00), June 2000. [9] V. Krishnan and J. Torrellas. “A Chip Multiprocessor Architecture with Speculative Multithreading”. IEEE Transactions on Computers, Vol. C-48, No. 9, September 1999. [10] P. Marcuello and A. Gonzalez. “Clustered Speculative Multithreaded Processors”. Proc. of the 1999 Int. Conference on Supercomputing (ICS’99), June 1999. [11] H. Akkary and M.A. Driscoll. “A Dynamic Multithreading Processor”. Proc. of the 31st Int. Symp. on Microarchitecture (MICRO31), November 1998. [12] K. C. Yeager. “The Mips R10000 Superscalar Microprocessor”. IEEE Micro, Vol. 16, No. 2, April 1996.. 6-E −40−.
(7)
関連したドキュメント
Jabra Talk 15 SE の操作は簡単です。ボタンを押す時間の長さ により、ヘッドセットの [ 応答 / 終了 ] ボタンはさまざまな機
タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.
層の項目 MaaS 提供にあたっての目的 データ連携を行う上でのルール MaaS に関連するプレイヤー ビジネスとしての MaaS MaaS
※ 本欄を入力して報告すること により、 「項番 14 」のマスター B/L番号の積荷情報との関
2 号機の RCIC の直流電源喪失時の挙動に関する課題、 2 号機-1 及び 2 号機-2 について検討を実施した。 (添付資料 2-4 参照). その結果、
モノづくり,特に機械を設計して製作するためには時
この設備によって、常時監視を 1~3 号機の全てに対して実施する計画である。連続監
を育成することを使命としており、その実現に向けて、すべての学生が卒業時に学部の区別なく共通に