• 検索結果がありません。

新世代マイクロプロセッサアーキテクチャ(後編):2.新しいデザインバランス  3.命令セットアーキテクチャとマイクロアーキテクチャ

N/A
N/A
Protected

Academic year: 2021

シェア "新世代マイクロプロセッサアーキテクチャ(後編):2.新しいデザインバランス  3.命令セットアーキテクチャとマイクロアーキテクチャ"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)特集 新世代マイクロプロセッサアーキテクチャ(後編). 2. 新しいデザインバランス. 命令セットアーキテクチャと マイクロアーキテクチャ 大津 金光. 3. 宇都宮大学 工学部情報工学科 [email protected]. 命令セットアーキテクチャとマイクロアーキ テクチャ.  これに対して,RISC 方式では可能な限り各命令の動 作を単純化し,命令のデコードや実行に必要となるハー ドウェアを簡単化かつ規模を縮小することで,動作周波 数を向上させ,実行性能を向上させることを狙った.ま.  プロセッサアーキテクチャを特徴づけるものとして,. た,ほとんどの命令の実行にかかるサイクル数を均一化. 命令セットアーキテクチャとマイクロアーキテクチャと. (大抵は 1 サイクル)しやすくなり,これにより命令実. がある.前者はソフトウェアを記述するための基盤とな. 行パイプラインがスムーズに流れるような構成を作りや. る命令セットに関する仕様であり,後者はその命令を実. すくなった.それと引き換えに,同じ処理内容のプログ. 行するためのハードウェア構成などを表したものである.. ラムを実現するために必要となる命令コードサイズが増. プロセッサアーキテクチャにおいてこの二者は互いに密. 大するため,命令フェッチに必要なバンド幅が大きくな. 接に関係し合っており,互いに切り離せないものである. ったが,デバイス技術等の進化によって,これが問題に. と考えられているが,本稿では命令セットアーキテク. ならなくなったことにより,RISC 方式は実行性能の向. チャとマイクロアーキテクチャの関係について考えてみ. 上を達成することができたのである.. たいと思う..  つまり,デバイス技術の進化により,命令キャッシュ の導入が当たり前に行われ,命令フェッチのためのバン. CISC と RISC. ド幅を稼ぐことができる現在においては,RISC 方式が プロセッサの性能を上げるには適しているということに なるわけである..  命令セットアーキテクチャの大まかな分類としてすぐ 思いつくのは,CISC(複合命令セット計算機)と RISC (縮小命令セット計算機)ではないかと思う.. バイナリ互換性の壁.  今でこそオンチップでの命令キャッシュの導入等によ り,命令のフェッチ動作における命令供給のバンド幅は.  実行性能上有利であることから,CISC プロセッサは. 大きくなり,コードサイズが大きくなりがちな RISC 命. RISC プロセッサで置き換えられ,とっくに滅び去って. 令であってもフェッチ動作そのものが実行性能上のボト. いてもおかしくないはずであるが,現実にはそうはなっ. ルネックになる場面は少ないが,昔は主記憶上から 1 命. ていない.x86 プロセッサのような CISC プロセッサが. 令ずつフェッチしていたこともあり,命令フェッチ動作. 依然として広く使われ続けているのが現状である.. 自体が性能上のボトルネックになる状況であった.その.  この状況は,バイナリ互換性の問題によるものである. ため,命令フェッチに必要なバンド幅を抑える必要があ. が,ある命令セットアーキテクチャ上に構築されたソフ. ったが,それが命令の高機能化,すなわち CISC 化への. トウェア環境 (OS,言語,アプリケーションなど)を. 大きな原動力となっていた.つまり,1 つの命令ででき. 別の命令セットアーキテクチャに移し替えることは難し. るだけ多くの操作を実現できるように命令セットが考え. いということである.構築されたソフトウェア環境の規. られていたのである.. 模が大きければ大きいほど,それだけ移行の困難さは増. 1224. 46 巻 11 号 情報処理 2005 年 11 月.

(2) 2. 新しいデザインバランス 3. 命令セットアーキテクチャとマイクロアーキテクチャ す.RISC プロセッサが登場した際も,コンパイラでソ. ハードウェア. フトウェアのソースコードを再コンパイルすればよいだ けなので,ソフトウェア環境はすぐに移行できると考え られていたが,実際にはそう容易ではなかったようだ.. 機械 命令. 実行. デコード.  前述の通り,命令フェッチ性能が向上した現在にお いては,CISC よりは RISC の方が性能上有利となる が,命令セットを従来の CISC のままに,性能上有利な. ハードウェア. RISC 方式の特徴を取り入れることで,飛躍的に性能向. (RISCop等). 上したシステムが現れるようになった.その例として, 現在の x86 プロセッサが挙げられる.現在の x86 プロ セッサは,命令セット自体は CISC のままでありなが. 機械 命令. プリ デコード. 内部 命令. 実行. デコード. ら,内部では RISC 的な処理を行うことで,他の同世代 ハードウェア変換. の RISC プロセッサと同等の実行性能を達成した.  ここで注目すべき点は,命令実行の前半部分の処理 である命令のデコード処理では CISC 命令を扱いなが. ハードウェア. (VLIW命令等). ら,命令実行の後半部分の処理である実行演算処理では RISC 的な方式を用いていることである.これは,内部 で機械命令を一度扱いやすい形式に変換することで可能. 機械 命令. となっている.つまり,この内部で使用する命令セット. トランス レータ. 内部 命令. デコード. 実行. ソフトウェア変換. によって,機械命令セットとそれを実行する演算処理部 のマイクロアーキテクチャが分離され独立性を持つこと が可能になったということである.これは,同じマイク ロアーキテクチャを用いながらも,(もちろん効率の問. 図-1 命令とデコードおよび実行の関係. 題はあるわけだが)命令セットアーキテクチャを変更で きることを意味する.さらには,命令セットを同じまま に,マイクロアーキテクチャの選択 ・ 変更の自由度が. るが,機械命令を一度デコードして,ハードウェアで扱. 高まるということも意味する.これらの特徴は,今後の. いやすい内部命令形式(RISC 操作と呼ばれることもあ. プロセッサアーキテクチャにとって 1 つの大きな可能性. る)に変換しておくことで, (内部命令のデコード処理. を秘めているのではないかと考える.. も含めての)実行処理にかかるハードウェアコストを軽 くでき,結果として実行性能が向上できるというもので. 命令セットアーキテクチャとマイクロアーキ テクチャの分離. ある.  ここで,この方式で用いられる内部命令は,あくまで もプロセッサ内部のハードウェアレベルのみで使うこと を想定しており,プログラマからは(一部の例外はある.  ここで,命令と実行の関係について見てみることにす. が,通常は)見えず,アクセスする手段もないため,こ. る.なお,区別のため以後は,プロセッサ内部で使用さ. の命令を使ってプログラミングを行うことはできない.. れる命令を内部命令,通常の意味でプログラマが使用す. これに対して,内部命令へのアクセス手段を持たせ,機. る命令を機械命令と呼ぶことにする.. 械命令から内部命令への変換処理をソフトウェアにより. 図 -1 に,プロセッサの機械命令と,デコードおよび. 実行時に行う方法が考えられる(図下段) .. 実行の関係を示す.通常のプロセッサでは,機械命令は.  この方式では, (図中のトランスレータ部分により). プロセッサ内の命令デコーダにより解釈され,その解釈. 機械命令をソフトウェアで別の命令形式(内部命令)へ. した内容に応じた実行処理を行う(図上段) .これに対. と変換し,プロセッサはこの別の命令形式を直接解釈し. して,機械命令を一度解釈(プリデコード)し,プロセ. 実行する.この場合に使用されるプロセッサとしては,. ッサ内部でのみ使用される別の命令表現形式(内部命令. 高性能化に有利な RISC 的手法を用いた高速処理が可能. 形式)に変換しておく方式が考えられる(図中段) .こ. なものが想定される.実際は,ハードウェア構成をでき. の方式は,CISC プロセッサが持つ複雑な機械命令のデ. るだけ単純にしながらも命令レベル並列性を活用した高. コード処理および実行処理を効率化するために用いられ. 速化を行うために,VLIW(超長命令語)プロセッサを IPSJ Magazine Vol.46 No.11 Nov. 2005. 1225.

(3) 特集 新世代マイクロプロセッサアーキテクチャ(後編). 命令 キャッシュ. 命令. プリ デコード. デコード & 実行. トレース キャッシュ. Pentium4シリーズ. 命令 キャッシュ. 命令. プリ デコード. マクロ OP. マクロOP デコード. マイクロ OP. マイクロ OP デコード &実行. AMD K8シリーズ. 図-2 ハードウェアによるプロセッサ内命令変換の例. 用いることが多いと考えられる.命令変換の際に,同時 にコードスケジューリングを施し,命令レベル並列性を. 命令セット変換. 活用することで,VLIW プロセッサで高速実行が可能に なる..  以上のように,ハードウェアあるいはソフトウェアの.  当然,命令の変換をソフトウェアで行うため,変換処. トランスレータで機械命令から内部命令へと命令コード. 理に伴う時間的オーバーヘッドがハードウェアによる変. を変換することにより,CISC 命令セットでありながら,. 換に比べて大きくなり,実行性能を落とすことになる.. プロセッサの実行処理部を RISC 的な構成とすることに. これを回避するために,1 度変換して生成した内部命令. より,プロセッサの性能を高めることができる.ここで. を専用に用意したメモリ領域に保存しておく方法が採ら. は,内部命令変換について,ハードウェアによる方式と. れる.次に同じコードを実行する際には,命令変換を再. ソフトウェアによる方式のそれぞれについていくつかの. 度行うのではなく,保存しておいた(変換済みの)内部. 例を挙げてみたいと思う.. 命令を使うようにすることで,変換処理の機会を極力減.  ハードウェアにより変換を行うものとして,Intel の. らし,性能を低下させないようにするわけである.. Pentium4.  ここで,機械命令の変換を行う(バイナリ)トランス. Opteron や Athlon64) がその代表例といえるだろう.. レータ自体は内部命令により記述されたソフトウェアで. 図 -2 は,それぞれのプロセッサ内部で,命令セット変. あるため,ハードウェア自体は固定したままに,トラン. 換がどこで行われているかを示したものである.. スレータを変更できるような構成にすることが可能であ.  Pentium4 では,x86 機械命令は命令キャッシュから. る.この場合,プロセッサのハードウェアが完成した後. 取り出され,プリデコーダへと送られる.プリデコーダ. に変換効率のより高いトランスレータが開発されたとき. により内部命令であるμ OP へと変換された後,トレー. には,トランスレータを新しいものに入れ替えることで,. スキャッシュに格納される.プロセッサの演算パイプラ. 性能を上げることが可能である.. インはこのトレースキャッシュ内に格納されたμ OP の.  さらには,トランスレータを入れ替えることで,機械. 内容に従って命令実行を進めていく.μ OP はトレース. 命令セットそのものを変更するということも可能になる.. キャッシュでヒットする限り,x86 機械命令からの変換. 機械命令をまったく違う命令セットに変更したり,一部. 処理を必要としない.トレースキャッシュでヒットする. の命令(メディア処理用のベクトル処理命令や,セキュ. ことを期待しているためか,x86 機械命令からμ OP へ. リティを高めるための命令など)の追加作業も容易で. の変換を行うデコーダは 1 サイクルに 1 個の x86 命令を. ある.. 変換する仕様になっており,演算パイプラインの処理性. 1). シリーズと AMD の K8 シリーズ(いわゆる 2). 能の割に命令変換能力は低くなっている.. 1226. 46 巻 11 号 情報処理 2005 年 11 月.

(4) 2. 新しいデザインバランス 3. 命令セットアーキテクチャとマイクロアーキテクチャ AMD K8 シリーズでも,x86 機械命令は命令キャッシュ から取り出され,プリデコーダへと送られるまでは同じ. x86機械命令. である.そこで,機械命令は内部命令であるマクロ OP に変換される.変換されたマクロ OP は,演算パイプラ インを流れていき,整数演算処理パイプラインと浮動小 数点演算パイプラインに分かれたところで,再びデコー ド処理を受け,内部命令の最小単位であるマイクロ OP. Crusoe版 CMS. Efficeon版 CMS. Crusoe VLIW機械命令. Efficeon VLIW機械命令. VLIW (4-way). VLIW (8-way). に変換される.AMD K8 シリーズが特徴的なのは,内 部命令としてマクロ OP とマイクロ OP の 2 種類がある ことである.1 個の x86 機械命令が複数のマクロ OP に 分解され,1 個のマクロ OP が 2 個以上のマイクロ OP に分解されるという構造になっている.これは,機械命 令をいきなりマイクロ OP に変換した場合に予想される 内部命令の管理にかかるコストの増大を抑えるための処 置であろうと推測する.Pentium4 では変換後のμ OP をトレースキャッシュに格納していたが,AMD K8 で. Crusoe. Efficeon. は変換後の内部命令をキャッシュに保存しないので,機 械命令を毎回内部命令へと変換する必要がある.そのた め,演算パイプラインへの内部命令の供給が途絶えない. 図-3 ソフトウェアによるプロセッサ内命令変換の例. ように,x86 機械命令からマクロ OP への変換を行うデ コーダは,1 サイクルに 3 個の x86 命令を変換すること 4). ができるようになっており,演算パイプラインの処理性. IBM の DAISY がある .DAISY は同社の PowerPC の. 能相応の変換能力を備えている.. 機械命令を独自の VLIW 命令セットへと変換する.既.  ソフトウェアによる変換を行う例として,Transmeta の 3). 存の汎用プロセッサ命令セットから独自 VLIW 命令セ. Crusoe や Efficeon の CMS(Code Morphing Software). ットへの変換という意味では,Transmeta のプロセッサ. が有名ではないかと思う.これは,x86 機械命令セット. と DAISY はよく似ている(歴史的には DAISY の方が. で記述されたバイナリコードをそのまま利用し,独自の. 先に世に出ている).. VLIW プロセッサ上で実行することで,高い実行性能と.  以上の例は,ソフトウェアによる命令変換の例である. 低消費電力の両立を目指したプロセッサである.CMS. が,これと似た技術として,命令セットアーキテクチャ. は x86 機械命令を独自 VLIW 命令形式に変換する役割. のバイナリ変換によるエミュレーション技術がある.こ. を担っている.. れはプロセッサ上で,そのプロセッサとは異なる命令セ.   図 -3 は,Crusoe と Efficeon で の 命 令 と CMS と. ットの機械命令を高速に実行できるようにするための技. VLIW プロセッサの関係を示したものである.ここで. 術であるが,プログラムを実行するプロセッサの機械命. Crusoe は 4-way,Efficeon は 8-way の VLIW プロセッ. 令を内部命令として捉えると,上記のソフトウェアによ. サであり,両プロセッサの命令セット間ではバイナリ互. る命令変換と同じものと見ることができる.違いは,プ. 換性はないのであるが,CMS はそれらの命令セットア. ロセッサの持つ機能が命令変換を想定しているか否かで. ーキテクチャの差異についても吸収する役目も果たして. ある.当然,命令変換を想定していれば,それだけ変換. いる.そのため,プログラマは機械命令としては x86 の. 効率が高いことが期待できる.. 機械命令セットだけを相手にしていればよく,その背後.   こ の 例 と し て は,Intel の IA32 Execution Layer が. にある VLIW アーキテクチャが大きく変わることを気. 挙げられるだろう.IA32 Execution Layer は,同社の. にする必要はないことになる.そのため,もし性能の高. Itanium ファミリーのプロセッサ上で,x86 命令セット. いアーキテクチャが出た場合に,それが従来とは大きく. (= IA32)の機械命令を実行できるようにするために開. 異なったものであったとしても,機械命令セットはその. 発された.元々 Itanium シリーズには,x86 機械命令の. ままに,プロセッサ部分のみを大きく変更することが可. ハードウェアデコーダが搭載されていたのであるが,そ. 能となる.背後にある VLIW アーキテクチャの違いは. の性能が低かったため,ソフトウェアで変換するトラン. CMS で吸収される.. スレータが開発されたようだ.x86 機械命令をハードウ.  同様の方式により命令変換を行うシステムとして,. ェアにより直接実行するよりも,ソフトウェアによる命 IPSJ Magazine Vol.46 No.11 Nov. 2005. 1227.

(5) 特集 新世代マイクロプロセッサアーキテクチャ(後編). Frame Cache. Sequencer. Fetch Engine. Optimization Engine. Execution Engine Frame Constructor. Completing Instructions. 図-4 rePLay アーキテクチャ. 令変換を行う方が実行性能が高いという事実は非常に興. 化を行うシステムでもある.CMS や DAISY は機械命令. 味深いことである.下手なハードウェア実装よりも洗練. を VLIW 命令に変換する際に,同時に命令コードの最. されたソフトウェア実装が勝ることもあり得るのである.. 適化を行う.CMS が DAISY と異なるのは,CMS では.  また,Transmeta のプロセッサや DAISY が(OS を含. 実行時の命令コード最適化を一度に行うのではなく,い. む)すべてのソフトウェアの下の層で動作するのに対し,. くつかの段階に分けて行うことである.Crusoe の CMS. IA32 Execution Layer は OS 上のサブシステムとして動. では 2 段階,Efficeon では 4 段階の最適化処理を経て,. 作するという違いがある.そのため,使用できる OS が. 最大限に高速化された命令コードが生成される.それぞ. 限定されるという欠点を持つことになるが,それと引き. れの最適化の段階へと移行する閾値を設けることで,頻. 換えに,アプリケーションが発行する OS のシステムコ. 繁に実行されるコードほど,より強力な最適化が行われ. ールや API コールをフックして,専用の高速処理ルー. るという仕掛けになっており,実行時最適化にかける時. チンに切り替えて実行するという技が使えるため,アプ. 間がより適切なコード部分に配分され,かけたコストに. リケーションの実行性能を上げる余地が大きい.. 対する見返りを最大限にできることが期待される.  ハードウェアにより実行時に命令コード最適化を行. 実行時コード最適化. 5). うシステムとしては,イリノイ大学の rePLay. が挙げ. られる.図 -4 に,rePLay における全体のフレームワー クを示す.rePLay はプログラムの実行が頻繁に行われ.  ここまで,機械命令の命令変換について,ハードウェ. る部分について,そのコード断片をフレームとしてひと. アによる例とソフトウェアによる例を挙げてきたが,こ. まとめにし,定数伝播,共通部分式の削除,冗長コード. れらと関連の深い技術として,実行時コード最適化があ. 削除などの命令コード最適化をハードウェアにより行う.. る.最近盛んに研究されつつある実行時最適化であるが,. 最適化を施されたフレームはフレームキャッシュに保存. 命令コード変換においても,変換と同時に最適化処理を. され,次回以降も再利用されることで,変換のオーバー. 施すことで,実行性能を高めようという研究がいくつか. ヘッドの影響を減らす.. 存在する..  rePLay と似たシステムとして,intel の PARROT.  特にソフトウェアで命令変換処理を行う場合は,どう. ある.PARROT では,トレースキャッシュ上の命令コ. しても実行時のオーバーヘッドにより性能低下が生じる. ードをハードウェアにより最適化をかけ,実行性能の向. ため,最適化処理を行うことで性能を高める必要があっ. 上を図る.図 -5 は PARROT のアーキテクチャを示した. た.そのため,(実現の容易さも伴って)当初はソフト. ものである.PARROT はコールドパイプラインとホッ. ウェアによる方法しか存在しなかったが,最近のチップ. トパイプラインの大きく 2 つのパイプラインから構成さ. 上に集積可能なトランジスタの増大を背景にして,ハー. れる.コールドパイプラインでは,通常プロセッサと同. ドウェアによりコードの最適化を行うものも現れ始めた.. 様の命令実行処理が行われる.ホットパイプラインで.  先に例として挙げた IBM の DAISY や Transmeta の. は,プログラム中の頻繁に実行されるコード部分を 1 本. CMS は,ソフトウェアにより実行時に命令コード最適. のトレースとしてまとめてトレースキャッシュに保存す. 1228. 46 巻 11 号 情報処理 2005 年 11 月. 6). が.

(6) 2. 新しいデザインバランス 3. 命令セットアーキテクチャとマイクロアーキテクチャ. FETCH SELECTOR COLD PIPELINE. BRANCH PREDICT. HOT PIPELINE. Inst. CACHE. TRACE CACHE. TRACE PREDICT. TRACE FILL COLD EXEC. HOT FILTER. OPTIMIZER. HOT EXEC. BLAZING FILTER. TRACE SELECT. SYNCHRONIZED COMMIT. 図-5 PARROT アーキテクチャ. る.ここまでは Pentium4 のパイプラインと似ているが,. 命令セットとマイクロアーキテクチャの分離を可能とす. PARROT が Pentium4 と違うところは,トレースキャ. る,これら命令変換システムの存在意義は果てしなく大. ッシュ中で頻繁に実行されるトレースに対して,ハード. きいのではないかと期待を膨らませる次第である.. ウェアで命令コード最適化をかけることである.. 今後への期待  命令セットアーキテクチャとマイクロアーキテクチャ の関係から,命令セット変換,実行時コード最適化とい う流れでいくつかの事例を紹介してきた.命令の実行を 高速化するためのマイクロアーキテクチャがさまざまに 開発され,進化を遂げていく一方で,それらの新しいマ イクロアーキテクチャと既存の命令セットとの間を橋渡 しする命令変換システムもいろいろと現れてきている.. 参考文献 1)Darrel, B. et al.: The Microarchitecture of the Intel Pentium 4 Processor on 90nm Technology, Intel Technology Journal, Vol.08, Issue 01 (2004). 2)Advanced Micro Devices Inc.: AMD Eighth-Generation Processor Architecture, White Paper (2001). 3)Alexander, K.: The Technology Behind Crusoe Processors, Technical Report, Transmeta (2000). 4)Kemal, E. and Eric, R. A.: DAISY : Dynamic Compilation for 100% Architectural Compatibility, In 24th Annual International Symposium on Computer Architecture, pp.26-37 (1997). 5)Sanjay, J. P. and Steven, S. L.: rePLay : A Hardware Framework for Dynamic Optimization, In IEEE Transactions on Computers, Vol.50, No.6, pp.590-608 (2001). 6)Roni, R. et al.: Power Awareness through Selective Dynamically Optimized Traces, In 31st Annual International Symposium on Computer Architecture (ISCA'04), pp.162-173 (2004). (平成 17 年 8 月 31 日受付). たとえば,従来とはまったく異なるマイクロアーキテク チャを持つプロセッサを開発したとして,アプリケーシ ョンプログラムが揃わなければ誰も使ってくれないとい うことにもなりかねないが,この問題も,対応する命令 変換システムさえ用意することで解決できるかもしれな い.今まで命令セットという思考の枠をはめられていた マイクロアーキテクチャも,その枠を外すことでさらに 大きな進化を遂げられるかもしれない.そういう意味で, IPSJ Magazine Vol.46 No.11 Nov. 2005. 1229.

(7)

参照

関連したドキュメント

Cichon.M,et al.1997, Social Protection and Pension Systems in Central and Eastern Europe, ILO-CEETCentral and Eastern European TeamReport No.21.. Deacon.B.et al.1997, Global

As a result, we have successfully developed new generation rear glass antenna which is applicable to hatchback car’s antenna and which supports FM diversity reception and DAB

of IEEE 51st Annual Symposium on Foundations of Computer Science (FOCS 2010), pp..

シートの入力方法について シート内の【入力例】に基づいて以下の項目について、入力してください。 ・住宅の名称 ・住宅の所在地

編﹁新しき命﹂の最後の一節である︒この作品は弥生子が次男︵茂吉

各新株予約権の目的である株式の数(以下、「付与株式数」という)は100株とします。ただし、新株予約

Tokyo Electric Power Company Annual Report 2010.. Rising awareness of global warming has created new social expectations for TEPCO. We are conscious of global warming as a

International Association for Trauma Surgery and Intensive Care (IATSIC) World Congress on Disaster Medicine and Emergency Medicine (WADEM). International symposium on intensive