blueadmin Site Admin
Joined: 28 Jun 2004 Posts: 806
|
Posted: Thu Nov 25, 2004 5:48 am Post subject: |
|
|
CM-65さん、興味深いご質問ありがとうございます。
オーバークロックに関しては以前から、開発メンバー内でも話題に上がっており、そこから疑問に関する情報をご紹介をしたいと思います。(答えではないかもしれません。)
blueMSXではTobias Keizer氏の分析した情報と資料を基に開発の参考にさせていただいており、こちらがその資料の一部になります。 (実際のマシンを使用しタイミングの分析を表したものです。)
| Code: | Instruction Time to execute Speed
Z80 R800 Improvment
adc a,n addc .a,n 1.96 0.28 7.00 x
adc a,r addc .a,r 1.12 0.14 8.00 x
adc hl,ss addc .hl,ss 4.19 0.28 15.00 x
add hl,ss add .hl,ss 3.07 0.14 22.00 x
add ii,pp add ii,pp 4.19 0.28 15.00 x
and (ii+d) and .a,[ii+d] 5.31 0.70 7.60 x
call nn call nn 4.75 0.70 6.80 x
call x,nn call x,nn 4.75 0.70 6.80 x
ccf notc 1.12 0.14 8.00 x
cpd cmp .a,[.hl--] 4.47 0.56 8.00 x
cpdr cmpm .a,[.hl--] 5.87 0.56 10.50 x
dec ss dec ss 1.68 0.14 12.00 x
dec ii dec ii 2.79 0.28 10.00 x
di di di 1.12 0.14 8.00 x
djnz djnz d dbnz d 3.63 0.28 13.00 x
ld (hl),r ld [.hl],r 1.96 0.28 7.00 x
ld (ii+d),n ld [ii+d],n 5.31 0.70 7.60 x
sbc a,r subc .a,r 1.12 0.14 8.00 x
sbc hl,ss subc .hl,ss 4.19 0.28 15.00 x
scf scf setc 1.12 0.14 8.00 x |
ご覧いただいたとおり、R800はZ80少なくともx6倍以上の速さでインストラクションが処理されています。 当然これ以外の要素も絡んできますが、我々の理解では21.477MHzのZ80が通常のTurbo-Rと同等の速度になるのは少々考えにくいのではと思われます。 ただし、blueMSXに限っての事ではありませんが、MSXエミュレーター全般でデータの読み書きのタイミングが完全に正しいとはいえないところもあると思われ、実際のところははっきりしていません。 当然オーバークロック事態にもバグが存在し、どちらかというと、(バグというよりは)未だ解明されていない不透明な部分であるといえます。ダニエルいわく、openMSXの開発者の方々と話題に上れば、意見を聞いてみたいとの事でした。
あと、オーバークロック上で正しく動作がしないソフト(デモ)なども存在し、おそらくVRAMやメモリ周りの(同期できないため)、タイミング取れない事からだと思います。 もし、メモリ周りが同期していれば、速度差がもっとはっきり体感できるかもしれません。 _________________ -- blueMSX forum administrator -- |
|