This is blueMSX forum for the users
Navigation :: blueMSX forum
FAQ :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in

Z80のスピードに関して

 
Post new topic   Reply to topic    blueMSX forum Forum Index -> blueMSXへの質問
View previous topic :: View next topic  
Author Message
CM-65
Guest





PostPosted: Sun Nov 21, 2004 6:09 am 
Post subject: Z80のスピードに関して
Reply with quote

10月31日投稿の「今後の予定など・・・」の質問に答えて頂き、
誠にありがとうございました。

今回、v2.0.0を早速使ってみました。
そこで疑問に思ったことがあるのですが、
「ツール」→「マシン構成編集」の「エキストラ」タブにある、CPU周波数に関してですが、
マシン構成をMSX2+とした時に、Z80のCPU周波数を21.477MHzにしてみたのですが、
通常時(3.579MHz)と比べると、少ししか速度が向上した印象がありませんです。
ゲームで見比べてみると、
信長の野望 武将風雲録では、通常のMSX2+とTurboRでは、そのスピードには
大きな違いを感じるのですが、MSX2+で21.477MHz設定時と、
MSX2+の通常のスピードと比べると、ほとんど変わらないといった感じでした。

私は、MSX実機のクロックアップ改造をしたことがないので、3.579MHz以上の周波数が、
改造していないものと比べて、見た目のスピードがどのくらい違うのかは
わかりません。本体内の他のハードウエアとの兼ね合いもあるでしょうし・・・

しかし、21.477MHzが、TurboR時に近いスピードになるのではないかと
想像していたので、v2.0.0での現在の結果が気になりました。

今回の21.477MHz時の動作は、適切な動作と考えるべきでしょうか?
Back to top
blueadmin
Site Admin


Joined: 28 Jun 2004
Posts: 806

PostPosted: Thu Nov 25, 2004 5:48 am 
Post subject:
Reply with quote

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 --
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    blueMSX forum Forum Index -> blueMSXへの質問 All times are GMT
Page 1 of 1

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group