「新たにJavaScriptなどの軽量言語を効率的に実行できる、「Tagged Pointer(タグ付きポインタ)」と呼ぶ機構を64ビットコアに盛り込んだ。」 / “日経コンピュータReport - アームがプロセッサを64ビット化:…” http://t.co/GUNHeqU7
2012-11-22 11:21:08@maeda H/W 支援ってなんでしょうね ぱっと思いついたのは (1) メモリアクセス時,bit 上位を無視する (2) タグによる分岐の支援(特化した branch prediction),(3) その他
2012-11-22 11:23:08@_ko1 @miterada もっとも抽象的にはタグによって処理を変える処理,少し具体的には1)タグの種類によってそれぞれの(正常)処理に分岐 2)タグがある値ならオーバーヘッドなしで正常処理,そうでなければトラップとかですかねえ.
2012-11-22 11:38:30@kiszk "Upper 8 bits of address can be configured for Tagged Pointers → Meaning interpreted by software"…上位8ビット無視するだけかな? @_ko1 @miterada
2012-11-22 11:44:06@maeda @kiszk @_ko1 データのポインタのタグとは別に、PCのタグを利用できないかな。同じアドレスの命令でも、PCのタグによって動作が変わるとか。
2012-11-22 11:48:53@miterada なるほど.X番地の関数を呼ぶのと,X+2^56番地を呼ぶのとでは,同じコードでも動作が異なる? @kiszk @_ko1
2012-11-22 11:52:01@maeda @kiszk @_ko1 特権レベルとかをPC上位にエンコードしてるみたいなもんかな。コンディションコードもいれちゃえば条件ジャンプなんて不要だ!
2012-11-22 11:55:07@miterada おー,同じADDでもccによってやったりやらなかったりとか? …いやいや,それはもともとARMに入ってます.ADDEQ, ADDNE, ADDGTとかhttp://t.co/HP69pnrm @kiszk @_ko1
2012-11-22 12:00:45@maeda @kiszk @_ko1 へえ、そうなんですか。コンパイラがうまく使えるのかな、ADDEQとか。しかし考えてみれば条件ジャンプにポインタタグを使うのも意味ないですな。普通の条件ジャンプと一緒だ。うーん。
2012-11-22 12:12:48@miterada コードのコンパクトさとか,分岐と違ってバイプライン処理を乱さないとかの利点があるんでしょうね.後者を強調するのはpredicationなんて言うんだと思います. @kiszk @_ko1
2012-11-22 12:17:06@maeda @kiszk @_ko1 @miterada おー、KL1の処理系を思い出しました。上位2bitがタグになってて、変数、atom,整数を区別できるの。「PIMにはタグ付きポインタのハードウェア支援機構入れてもらった」って近山先生が言ってたような…。
2012-11-22 14:29:28@dyokoyama 68k等では上位bitのタグ(マスクしないでも比較命令で型判別できる),SPARCなんかだと下位bitのタグ(下位2bitが0でないとトラップする加算命令や,アラインメントが狂ってるとバスエラー)が定石でした @kiszk @_ko1 @miterada
2012-11-22 14:47:02@tshindoh ありがとうございます.48bitしか使わないけど,上位16bitにもちゃんとした値(オール0かオール1)入れなきゃいけない.でも,モードによって8bit自由な値が入れられるようにしたってことなのかな.@miterada @kiszk @_ko1
2012-11-22 14:52:42関連する技法をスライドにまとめてみました.→ 実行時のデータ型の表現手法 on @slideshare http://t.co/XSZ24otp http://t.co/9t6aLjBW
2012-11-23 16:59:2664bit 命令セットでは CC 消えてるような。32bit なら別だけど。 ARMのtagged pointerと条件付き命令 http://t.co/5A5XCfup
2012-11-23 17:06:45a seeker