langsmith:268
From: MAEDA Atusi <maeda-langsmith atusi.org>
Date: 15 Aug 2005 14:11:28 +0900
Subject: [langsmith:268] Re: evalやVMの分岐の仕方の用語
Tsuguo MOGAMI <mogami brain.riken.go.jp> writes: > P.S. しかしなぜサブルーチンスレッデッドが、ダイレクトスレッデッドより > 遅いのか不思議で仕方がないのでした。 CPUによるので一概に言えませんが,direct threadingのNEXT操作がやること は,おおむねCPUのRET命令がやる処理と同じです. ・仮想命令コードを指しているレジスタRがあって, ・Rが指している語を読み出してPCに入れ, ・Rが次の語を指すようにインクリメントする. つまり, direct threadingのコスト ≒ RET命令のコスト です. 一方,subroutine threadingのコスト= CALL命令のコスト+RET命令のコスト ですから,遅くなるのは,ある意味で自然と言えます. (単純なRISCプロセッサでは,まさに上の通りになると思いますが,たとえば 最近のAMDのプロセッサでは,RET命令を高速化するためにreturn address stackがオンチップでついていたりしますので,汎用レジスタと間接ジャンプ で行なう鵜NEXT処理より本物のRET命令の方が速いかも知れません.) 前田敦司 -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
256 2005-08-06 13:32 [mogami brain.riken.g] プログラミング言語cipher 257 2005-08-06 18:41 ┗[hyuki hyuki.com ] 258 2005-08-06 21:35 ┣[yamanoue cc.kagoshim] 261 2005-08-09 12:10 ┃┗[mogami brain.riken.g] 262 2005-08-09 12:39 ┃ ┗[yamanoue cc.kagoshim] 263 2005-08-09 12:51 ┃ ┗[matz ruby-lang.org ] 264 2005-08-09 18:35 ┃ ┗[ko1 atdot.net ] 265 2005-08-11 16:28 ┃ ┗[mogami brain.riken.g] evalやVMの分岐の仕方の用語 266 2005-08-12 14:34 ┃ ┗[maeda-langsmith atus] 267 2005-08-14 20:21 ┃ ┗[mogami brain.riken.g] -> 268 2005-08-15 14:11 ┃ ┗[maeda-langsmith atus] 259 2005-08-06 21:42 ┗[mogami brain.riken.g]