MZ-2500でのVRAMアクセスなんですが…あれ?
実験してたらちょっと妙なことに気がついた…
水平方向の表示範囲狭くしてもなんだか遅いような…
実はブランキング期間だけアクセスできると思っていたので、水平表示
範囲を狭くしたらウェイト減るって考えていました。が、なんか遅い…
というわけで、640x200 255回全画面FILL(プレーン0のみ)を、以下の
条件で走らせて時間を計る実験をしてみました。
もちろん255回ループ部は機械語、割り込み禁止状態で実行です。
条件1:水平表示範囲640ドット、垂直表示範囲200ドット表示
条件2:水平表示範囲320ドット、垂直表示範囲200ドット表示
条件3:水平表示範囲0ドット、垂直表示範囲200ドット表示
条件4:水平表示範囲640ドット、垂直表示範囲100ドット表示
条件5:水平表示範囲640ドット、垂直表示範囲0ドット表示
条件6:水平表示範囲0ドット、垂直表示範囲0ドット表示
ちなみに見た目上は、条件3、5、6が同じになります(何も表示されない)
そしてその結果は…
条件1:64.8秒
条件2:64.8秒
条件3:64.8秒
条件4:34.2秒
条件5:23.2秒
条件6:23.2秒
うお…水平表示範囲狭めてもウェイト全然かわってなさげ…
回路図上だとブランキング期間を示す信号がグラフィックコントローラーから出ていて
それがメモリコントローラーに入ってそこからWAIT生成されているようにみえるんですが。
う~む。ここはやはりロジアナ買って調べるべきか…?
水平方向の表示範囲狭くしてもなんだか遅いような…
実はブランキング期間だけアクセスできると思っていたので、水平表示
範囲を狭くしたらウェイト減るって考えていました。が、なんか遅い…
というわけで、640x200 255回全画面FILL(プレーン0のみ)を、以下の
条件で走らせて時間を計る実験をしてみました。
もちろん255回ループ部は機械語、割り込み禁止状態で実行です。
条件1:水平表示範囲640ドット、垂直表示範囲200ドット表示
条件2:水平表示範囲320ドット、垂直表示範囲200ドット表示
条件3:水平表示範囲0ドット、垂直表示範囲200ドット表示
条件4:水平表示範囲640ドット、垂直表示範囲100ドット表示
条件5:水平表示範囲640ドット、垂直表示範囲0ドット表示
条件6:水平表示範囲0ドット、垂直表示範囲0ドット表示
ちなみに見た目上は、条件3、5、6が同じになります(何も表示されない)
そしてその結果は…
条件1:64.8秒
条件2:64.8秒
条件3:64.8秒
条件4:34.2秒
条件5:23.2秒
条件6:23.2秒
うお…水平表示範囲狭めてもウェイト全然かわってなさげ…
回路図上だとブランキング期間を示す信号がグラフィックコントローラーから出ていて
それがメモリコントローラーに入ってそこからWAIT生成されているようにみえるんですが。
う~む。ここはやはりロジアナ買って調べるべきか…?
この記事へのコメント
コメントありがとうございます。
当方の考えではこうでした。
サイクルスチール機の場合
VRAMから1Byte取り出す→次のアクセスサイクル(8ドット分)の間空き時間ができるので、その間にCPUアクセス期間に割り当てる。
非サイクルスチール機の場合
表示されているあいだはCRTCのみアクセス→ブランキング期間(非表示期間)の間はCRTCがVRAMを読み出す必要がないため、CPUがアクセス可
上記の認識でしたので、V/H-BLANK期間を増やすとCPUのアクセス可能時間が増えるハズでしたので、多少速くなるという予想でした。
なので、MZ-2500でH-BLANK期間を増やしてもアクセス時間が変わらないというのが予想外だったのです…
MZ-2500のV-RAMアクセスは、水平走査期間(約170ステート)と水平帰線期間(約70ステート)、ハードウェアビューポートで表示領域を制限しても、水平帰線期間が増えることはないそうです(垂直帰線期間は、実験のとおり有効です。)。
実は、高速のようで遅いのが、MZ-2500のV-RAMアクセスのようです。
追伸:私も生まれて初めてブログなるものをやってみました。大したことを書いていませんが、暇なら冷やかしに来て下さい。
コメントありがとうございます。
やはりそうでしたか…
水平ブランキング増やしてもタイミングがとりづらいからなのでしょうかねぇ…
ブログ開設おめでとうございます。
ぜひ訪問させてください!
よろしければURLをお願いします。
「http://blog.yahoo.co.jp」
TAK.NAV様のようにテクニカルなことは何も書いてません。
「http://blogs.yahoo.co.jp/rgnyk278」を小文字にして下さい。