ぼくのかんがえたさいきょうCPU プロセッサにヒントを与えるHINT命令

 分岐予測機構持つプロセッサでは実際にジャンプした分岐先の番地を履歴として記録する。そして当該番地に分岐する命令が来た時に飛ぶ/飛ばないの予測をして性能を上げる。
という風に、互換性のため命令セットを変えずに性能を上げる方法としてはコードを動的に実行しつつ、そこから得られた情報をプロセッサ内部で利用する。
しかし、静的なヒントがあればそれを利用した方がメカニズムは複雑にならなくていい。しかも命令セットに影響を与えない方法はないだろうか。

と考えていたら思いついた。プロセッサにヒントを与える命令を1つ用意すればいい。それ自身は分岐命令だが後続のデータがそのままヒントとなる。

HINT 分岐先

例:
HINT begin
[ヒント用のバイナリ列]
...
...
begin:
[命令]
...
...

HINT命令自体は飛んでしまうだけで何もしないが、HINT命令の次の位置~分岐先の直前までがプロセッサに設定として読み込まれる。このデータに適切なヘッダを用意すれば
各種設定が簡単にできそうだ。

当初考えていたのは分岐予測のヒントで、本来は動的に処理する分岐予測に対してはじめから分岐先一覧のテーブルを与えようというもの。

例;
HINT begin
分岐先Aのアドレス
分岐先Bのアドレス
分岐先Cのアドレス
...
begin:
命令1
命令2
bra A
...
bra B
...
bra C
...

A: # ここの番地がテーブルに記録される
サブルーチンA

B: # ここの番地がテーブルに記録される
サブルーチンB

C: # ここの番地がテーブルに記録される
サブルーチンC

 これはあくまでもヒントなので、プロセッサのグレードによって分岐予測機構が異なったりなかったりしたら一部を取り込んだり無視したらよい。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック