表題番号:1999A-177
日付:2002/02/25
研究課題ソフトウェアによる投機的例外処理の実現に関する研究
研究者所属(当時) | 資格 | 氏名 | |
---|---|---|---|
(代表者) | 理工学部 | 教授 | 深澤 良彰 |
- 研究成果概要
- 計算機の高速化の主要な技術として命令レベルでの並列処理が挙げられる。命令レベル並列処理においてその並列性を高く引き出すためには、命令の投機的実行を行ない、同時に実行可能な命令の数を増やすことが重要である。しかしながら、ロード命令等の例外を起こす可能性のある命令を投機的に実行することは、プログラムの実行時間に大きな遅延を起こさせる可能性がある。この問題を解決する投機的実行支援機構がいくつか提案されているが、それらにはハードウェア制御を行なうためにハードウェアの使用量が増大する、あるいは再実行の必要のない命令まで再実行するためにレジスタを多く必要としてしまうという問題点が存在する。
本方式では、投機的例外をソフトウェアで処理することでハードウェアの使用量が増大するという問題を解決した。同時に、例外を起こした投機命令およびそれに依存する投機命令の命令アドレスをたどることで、必要のある命令だけの再実行を行ない、レジスタの使用量が増大するという問題も解決した。
具体的には、本方式では、投機的例外処理をセンチネルスケジューリングやnon-excepting 命令方式と同様に、ソフトウェアで制御を行なう。また、例外を起こした投機命令およびそれに依存する投機命令の命令アドレスをたどることにより、必要な命令、即ち例外を起こした命令に依存する投機命令だけを再実行する。これにより、再実行のために保証されなければならないレジスタの数が増大することを防ぐことができ、並列性を高めることができる。本方式では、この機能をハードウェアの負担をできる限り少なくするように、例外が起こったときに起動される割込みハンドラにその処理法を記述する。
評価結果を分析してみると、本方式は、性能という点でブースティング方式、non-exceping命令方式、センチネルスケジューリング方式より高い並列性を引き出せているといえる。また、本方式と同様にソフトウェアで投機的例外処理を制御する、non-excepting命令方式やセンチねスケジューリング方式と比較して、近年の多くのプロセッサが所有するレジスタ数32で明確な性能の差が現れている。本評価では小規模なコードを対象としているが、既存のプロセッサにより大規模なコードに本方式を適用した場合、その性能の差は顕著に表れてくるものと推察される。