CPUアーキテクチャについて語れ 15at JISAKU
CPUアーキテクチャについて語れ 15 - 暇つぶし2ch705:Socket774
09/05/28 23:20:44 czz930Bl
密度についてはその通り
命令数は増えるが、命令長が短いのでトータルでは密度が上がる

インタプリタの実装では、スタックトップはメモリではなくレジスタに置ける
スタックが空の時にスタックを参照する命令を実行するとエラーだが、
これはバイトコード検証であらかじめはじいてあるのでノーチェックで良い

一工夫すればスタックの上2段をレジスタにキャッシュすることもできる

load x
load y
add

というシーケンスを考える
最初のload命令でレジスタAに値をキャッシュする
次のload命令では別のレジスタBにキャッシュしたい。どうすればいいか?

最初のload命令の実行後、スタックレベルに応じてインタプリタを切り替えればよい!
つまり、別のインタプリタループのloadルーチンを実行し、そこでレジスタBにキャッシュする

addルーチンは加算結果をレジスタAに置き「スタックレベル=1」のインタプリタに戻る
add命令はオペランドを二つ使うため、「スタックレベル=2」のインタプリタにだけ実装すればよい

インタプリタの切り替えは、ただの状態遷移なのでオーバーヘッドは皆無である


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch