サイクルスチールが実装されてないときのVRAMの挙動ってどうなんだろう

ふと気になったので分かる範囲で調べてみた次第。とりあえず手元にある資料が「FM-7 ユーザーズマニュアルシステム仕様」なんでそこを当たってみる。

FM-7の場合、VRAMはサブCPUのアドレス空間に配置されている。実際のVRAMは富士通のMB8116というメモリを24個使って48kB分のメモリとしている、ということのようだ。

MB8116についてぐぐってみると、アドレスバスが7本、データバスが入力/出力それぞれ1本ずつという構成の所謂デュアルポートRAMというもののようだ。このメモリのアドレス空間は内部的には14ビットで、上位7bit、下位7ビットを続けてアドレスバスに入力するようになっている。つまり1チップあたり2^14ビット=2048オクテットの容量。

(2017/3/30追記)コメントで指摘されたように、MB8116はデュアルポートメモリではなかった。(追記終わり)

で、FM-7の場合、水平同期周波数が15.75kHzで、1/15750秒が1024ピクセル分に相当するとのこと。つまり、1ピクセルにつき1/16.128M秒。ビデオ回路はVRAMを読み出す際に24個のMB8116全てから同時に読み出すことができるのであれば、一回のアクセスで8ピクセル分のデータを読み出せるので、1/2.016M秒ごとにアクセスできればいいということになる。データシートによれば、データを読み出す際のメモリ側のアクセス時間は最小で375nsということなので、アドレスバスをサブCPU側とビデオコントローラ側で共用する以上、走査を行っている期間(つまり垂直・水平帰線期間以外)はCPUはVRAMにアクセスできない(サブCPU側からアクセスしようとすると帰線期間までウエイトがかかる)、という解釈でいいのだろうか。

コメント(3)

  • 投稿者: Anonymous User
  • 投稿日時: 2016/09/28(水) 02:11[JST]

サブシステムのVRAMアクセスフラグとなずけられたI/O、$D409がハードウェア的にはどう機能してるのか知りたいと思います。

  • 投稿者: Anonymous User
  • 投稿日時: 2017/03/15(水) 17:24[JST]

入力ポート1つ、出力ポート1つというのは
普通のシングルポートのD-RAMじゃないですか。
デュアルポートメモリが載ってたらCPUが待つ
必要ないですよ。

  • 投稿者: KtJ
  • 投稿日時: 2017/03/30(木) 21:32[JST]

ご指摘ありがとうございます。言われてみれば確かに入力/出力ポートそれぞれ一つだとデュアルポートにはなりませんね



Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。