【レポート】
もう一方の新機能であるトランザクションメモリのサポートに関しては、論文発表では殆ど触れられなかった。ということで、これもTremblay氏への質問の回答に基づく筆者の理解であるが、次のように動くと思われる。
まず、トランザクション開始の命令が実行されると、アーキテクチャ状態をチェックポイントに格納する。そしてトランザクションの命令を実行するが、通常の実行と異なるのは、ロード命令でアクセスしたキャッシュラインにマークを付けるという点である。そして、トランザクションの実行中に、マークを付けたキャッシュラインに対して、他のプロセサコアが書き換えを行うと、それを検出して実行中のトランザクションを失敗させ、ストアバッファをクリアして、チェックポイントの状態に戻る。
また、ストア命令に関しては、キャッシュやメモリにはデータを書き込まず、ストアバッファに溜め込んでおく。そして、トランザクション終了命令が実行された時点で、他のプロセサコアのメモリアクセスを一時的にストップさせて、ストアバッファに溜まった要求を一まとめに完了してしまう。従って、他のプロセサコアから見ると、トランザクションからメモリへのストアが一瞬の間に全て完了したように見える。
簡単な例であるが、預金の引き出しを処理する場合、残高と引き出し額を比較し、十分な残高があれば払い出しを行い、残高から引き出し額を引いて残高を更新するという処理を考えてみよう。ほぼ同時に同じ口座への引き出し要求が来た場合、2つのプロセサで処理を行うと、プロセサAが引き出しを行って残高を更新する前に、プロセサBが残高を読み、その額に基づいて引き出しと残高更新を行ってしまうと正しい処理が出来ない。
このため、Lockなどを使って残高へのアクセスを排他的にするような手法が使われているが、多数のLockを使うようなケースではデッドロックなどが起こりやすく、並列プログラムの開発が難しいという原因の一つとなっている。
この例のケースで、残高の読み込みから更新までをトランザクションとすると、プロセサBが残高を読んだ時点でキャッシュラインにマークが付けられ、プロセサAが残高の更新を行った時点で、プロセサBはマーク付のキャッシュラインの変更を検出してトランザクションを失敗させる。そして、プロセサBは残高読み込みの前の状態に戻り、再度、トランザクションをやり直す。そうすると、プロセサAの残高更新は終わっており、プロセサBは更新された残高に基づいて処理を行うので、正しい結果が得られることになる。
Rockのトランザクション機構では、ストア要求を32エントリのストアバッファに溜めるので、これを超える数のストアが必要なトランザクションは処理できない。しかし、ストアは平均的に10命令に1回程度であるので、約300命令のトランザクションまで処理することが出来る。Tremblay氏によると、Javaなどで出てくるトランザクションは100命令程度の小さいものが多く、この機構が有効に機能するという。また、トランザクションが入れ子になっているNested Transactionはどうするのかと質問したところ、それはサポートしていないということであった。
SPARCアーキテクチャはレジスタウィンドウという機能を持っており、8個のウィンドウをサポートする場合、整数レジスタファイルの必要エントリ数は160個程度になる。Rockの場合は、これが2スレッド分、更に、チェックポイントを格納するために倍増するので、合計では600個を超えるレジスタエントリが必要となると考えられる。そしてRockの整数レジスタファイルは読み出しが7ポート、書き込みが4ポートを必要とする。レジスタファイルの面積は、おおよそポート数の二乗に比例するので、これをまともに作ると膨大なサイズになってしまう。そのため、データの格納部は高密度のSRAMで構成し、フロントエンドに7R4Wのレジスタキャッシュを設ける構成として、面積を抑えている。
以上のように、SunのRockプロセサは、メニーコア、メニースレッドのNiagaraシリーズの思想を継承しつつ、シングルスレッドの実行性能を改善し、さらに意欲的にスカウトスレッドやトランザクションメモリのサポートを取り入れ、次世代のSunの基幹サーバシステム用のプロセサとしての使用を目指している。企業や社会システムの基幹システムは高い信頼度を要求されるので、信頼性向上のため、キャッシュだけではなくアーキテクチャレジスタにはECCを付けてエラー訂正を可能とし、乗算器にはレジジューチェック付けてエラー検出を行っている。また、高速シリアルバスはCRCでエラー検出を行い、エラーが検出されると再送により回復を図る機能を持たせている。
今回のISSCCでの発表で、Rock CPUチップの構造についてはかなりの詳細が明らかになったが、今回の発表では、性能については全く触れられなかった。また、3次キャッシュとメモリコントローラはどのようになっており、最大では64チップを接続することが出来ると言われているRockのマルチプロセサシステムがどのように接続されるかなどについては、全てのDRAMメモリは等距離になるという以外の情報は無く、今後の発表を待たなければならない。
| ISSCC 2008 - Silverthorneは多彩な低電力技術を採用 [2008/3/2] |
| ISSCC 2008 - Intelの巨大チッププロセサ「Tukwila」 [2008/3/2] |
| ISSCC 2008 - 脳の働きに近づくHTMシステム - Jeff Hawkins氏が講演 [2008/2/7] |
| ISSCC 2008 - Microsoftの「サーフェス・コンピューティング」が誕生するまで [2008/2/7] |
| ISSCC 2008 - 低消費電力化が進む高速ディジタル伝送用適応型波形等化回路 [2008/2/7] |
| ISSCC 2008 - Tilera、タイルプロセッサ「TILE64」の詳細を発表 [2008/2/6] |
| ISSCC 2008 - Source Followerを基本構成とする6次280MHzのフィルタの構成 [2008/2/6] |
| ISSCC 2008 - 6角形構造の基本ブロックによるFPAAの構成法による回路設計 [2008/2/6] |
| ISSCC 2008 - Intel、超低消費電力IAプロセッサ「Silverthorne」を発表 [2008/2/6] |
| ISSCC 2008 - FIR LPF用の利得可変回路の開発 [2008/2/6] |
| ISSCC 2008 - 広い可変範囲のリコンフィギュアブルCMOSベースバンドIC [2008/2/6] |
| ISSCC 2008 - Intel、次世代Itanium Processor "TukWila"を発表 [2008/2/5] |
| ISSCC 2008プレビュー - ライフサイエンス用エレクトロニクス [2008/1/20] |
| ISSCC 2008プレビュー - マイクロプロセサセッション [2008/1/20] |
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
読者アンケートのコメントで紹介する春期アニメレビュー [11:20 5/26] |
|
【女性編】悪役にありがちな展開ランキング [11:00 5/26] ホビー |
|
【男性編】悪役にありがちな展開ランキング [11:00 5/26] ホビー |
|
東村アキコ「きせかえユカちゃん」が大ボリュームで帰還 [10:23 5/26] ホビー |
|
[NHK]オウム事件を初ドラマ化 教団の内部資料や証言を基に制作 [10:00 5/26] エンタメ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。