【8bit機】CRTC,VDP,ALU,メモリマップ,MMU 専スレ

1ナイコンさん2008/09/14(日) 15:51:06
64KBの制約の中、各社様々な工夫を凝らした
VRAMのバンク切り替え,MMU管理,I/O空間配置, 専用GPU
高速化のための 直線補完、サイクルスチール、プレーン同時書き込み

当時のマシン(PC,FM,X1,MSX等)のメモリマップのあり方、アクセス方法の技術について語ろう

484ナイコンさん2017/03/19(日) 00:01:12.46
wikiのPC-9821の項を見たけど、

>もっとも、このMATE Xシリーズ初代機以降及び同時期発表のPC-9821Ap3/As3の
>拡張グラフアーキテクチャのグラフィックコントローラからはVRAMプレーンアクセスモード(PEGC)等の
>使用頻度が低いと判断された機能が幾つか廃止されており、一部のPC-9821シリーズ対応MS-DOSゲーム等で
>問題が生じるケースもあった。

と言うかなんで256色モードにプレーンアクセス使うの?

485ナイコンさん2017/03/23(木) 00:43:54.92
256色モードで8プレーンだと、まず端的には4プレーン+4プレーンで相互に干渉しない16色をCPU側で重ね合わせ処理等の必要なく実現できる
もちろん5+3で32色+8色でも構わないし、6+2で64色+4色という構成もあるだろう。
7+1で128色+2色、あるいはパレットの構成次第では128色+影色、といった応用も可能になる。

まあ実際にはそういう使い方されなかったんですけどね。

486ナイコンさん2017/03/24(金) 20:11:38.56
そもそもWindowsでの表示用として作っただけど
表示させる以上の事(動画とかゲーム向け描画とか)は考えてなかったぽいな

487ナイコンさん2017/03/24(金) 20:27:31.68
日本人て誰も使いもしない機能を思いつきでどんどん作って肥大化するの好きだよな

488ナイコンさん2017/03/25(土) 08:11:29.88
無駄に肥大化して身動き取れなくなってシンプルで高性能な黒船に負けるまでがテンプレ

489ナイコンさん2017/03/26(日) 00:40:51.77
>>488
日本人にすら使いこなせないPS4すらも
スマホに負けてるしな

490ナイコンさん2017/03/26(日) 16:47:35.38
朝鮮人が集うスレはここですか?

491ナイコンさん2017/03/29(水) 01:15:42.07
>>13
性能抜群、速いPCだと処理が早く終わる。って感じかな。あと、性能と機能を取り違えてるっぽい書き込みもあるね。

492ナイコンさん2017/03/29(水) 08:23:28.36
何年前のレスにアンカーつけてるんだよ w
エド・はるみがぐ〜って言ってた年だぞ

493ナイコンさん2017/04/16(日) 13:15:56.09
エド・はるみライザップCM出ててビビった

494ナイコンさん2017/04/20(木) 13:59:07.68
HD46505にスプライト機能を拡張するようなことは出来なかったのか

495ナイコンさん2017/04/20(木) 22:49:10.31
X1やX68000がHD46505だっけ確か

496ナイコンさん2017/07/14(金) 18:39:52.14
栄枯盛衰

497ナイコンさん2017/07/23(日) 10:30:16.31
AMIGAは256色で8プレーン持っていなかったっけ?

498ナイコンさん2017/08/20(日) 16:15:33.07
そうだよ。AMIGAに限らずPCのVGA含め当時のハードはみなカラーインデクス(パレット)方式だから。
フルカラーで処理可能なハード世代はWindows対応PC以降。

スマホはさらに後だから時代が違うしタッチパネルぬるぬる動く用途のみに無駄に高速なGPU使ってるからな。
HTMLのページもいったんレンダしたらメモリに置かれてスマホGPUでぬるぬるスクロールするでしょ
ダイアログもα合成しながらぬるりと表汁するし。ゲームと用途が違うし。

499ナイコンさん2017/08/20(日) 19:47:09.37
WindowsPC以前でも、FM77AVとかFM TOWNSとかはフルカラーじゃないか?
まあ、TOWNSはWindowsに首つっこんでるけど。

500ナイコンさん2017/08/21(月) 18:12:44.83
FM77AVの最大発色数は26万色(18bit)
FM-TOWNSがフルカラーに対応したのは486を搭載した後期型から。
最も古いフルカラー対応はおそらくサピエンスが9801用に出していた
SuperFrameだったはず。

501ナイコンさん2017/08/22(火) 08:47:15.90
ハイパーフレームの方が先だったと

502ナイコンさん2017/08/22(火) 12:21:57.03
俺の方が先だったよ

503ナイコンさん2017/08/23(水) 02:58:21.16
非標準の外付けフレームバッファみたいなのは別扱いじゃないか?

504ナイコンさん2017/11/05(日) 09:23:08.54
88のビデオアートボードのような「拡張スロットに存在する表示回路」的なものって、その部分については「I/O空間内にVRAMをマッピング」に分類される感じなんですかね?

505ナイコンさん2017/11/06(月) 06:34:50.97
88のビデオアート()ボードや98のスーパー/ハイパーフレームは、ソフトウェアからはメインメモリ空間上のバンクメモリとして見える

506ナイコンさん2017/11/06(月) 19:31:58.61
>>505
そういう仕組みだったんですね。
だから、128Kとか768Kの増設メモリとしても使うことが出来たというわけですか。

ビデオアートボードは、スーパーインポーズを省略して、24KHz専用ディスプレイにも
出力可能で安めのバージョンもあれば、購入者はもっと増えたかのも。

507ナイコンさん2017/11/07(火) 09:03:14.81
77AVやX1tZに対抗するためのアイテムなのにSIP省略は
それにしても高すぎた、5万ぐらいだったら

508ナイコンさん2017/11/07(火) 09:49:29.70
どっちかっつとCAIとかの需要を見込んだものだったんじゃないかな
そしたらスーパーインポーズ省略はありえない選択

509ナイコンさん2017/11/07(火) 10:30:19.96
パソコンはTVに求愛し続けて、そしてとうとうTVの中身がパソコンになったとき、
TV離れが始まってるという皮肉

510ナイコンさん2017/12/03(日) 14:46:27.19
FM-7のサブCPUはGPUの走りかい?

511ナイコンさん2017/12/03(日) 21:07:59.31
いいえ

512ナイコンさん2017/12/04(月) 11:24:35.30
母方のおじさんといったあたりではなかろうか

513ナイコンさん2018/01/08(月) 15:18:00.58
>>38以外で
カーソルX座標を設定/取得するポート
カーソルY座標を設定/取得するポート
キャラクタコードを設定/取得するポート
アトリビュートコードを設定/取得するポート

Z80のI/Oポート(256バイト)のうちの4バイトを使って
テキストVRAMを制御する設計にするというような可能性は無かったのかな

514ナイコンさん2018/01/23(火) 12:51:10.40
>>513
MSX2がまさにそんな感じだよ、そのI/OポートがVDPになっている感じ。
VDPにアドレスをセットしてI/Oポート経由でアクセス、または特定のデータを書き込んで
VDPコマンドを実行できた。
VDPはCPUと同時に動けるのでちょっとしたアクセラレーションと言えばカッコいいけど、
実際のVDPコマンドは動作は遅かった。
MSX1は、上記のVDPコマンド無し版という感じ。

515ナイコンさん2018/01/27(土) 05:00:17.84
コストとかどうでもいいなら御三家系の640x200x3bppのVRAM48KBに倣う場合にVRAM側にもメインと同じCPUを割り当ててそっちにも込みで64KBのRAMを与える(便宜上のワークRAMが16KB)とかすると面白そう
メイン側もグラフィック側も1ページ16KBくらいでいいからバンク切り替えで入れ替えできると面白いかな
拡張RAMとか載せる場合もそのバンクRAMのページが増えて行く感じで規格上の最大ページ数が255枚とか(なお物理バスにはそんなに信号線出てない的なオチ)

まあ80年代半ばにメインとグラフィックでDRAM128KBも載せたらお値段幾らするんだよって感じ

516ナイコンさん2018/01/27(土) 08:29:07.77
>>515
VRAM側にCPU持たせるのはFM-7/FM-8で実例あるし64KB越えるRAMを搭載したMB-S1なんて機種もあったな

517ナイコンさん2018/01/27(土) 23:22:08.35
>>515
コスト度外視なんて言えば尚更、それがMSX2に搭載されたv9938だったと思う。
メインCPUから見たら相手がサブCPUだろうがVDPだろうが大して違いが無いわけで、
v9938なんてCPUどころか専用のVLSIですよ。

キャプテンシステムでの需要見込みなどもあったんだろうけど、あの時代にしても結構な
投資だったんじゃないのなと今更ながらに思う。キャプテンシステムの大コケと、
バブル崩壊?のダブルパンチの影響か、MSXの命運も共にオワタ、なのかなぁ?www

そして最後には16bit, 32bitの波にのまれてWindowsで終了…

518ナイコンさん2018/01/29(月) 12:56:51.80
>>516
S1はなぁ、、、16KB×3面分のVRAMを実装すべきところを1面ケチって
メモリ不足に苦しむ残念なマシンとなった

519ナイコンさん2018/01/29(月) 19:57:47.11
>>518
まあメモリー高かったからねぇ
苦肉の策だったんだろうな
まあ48KB載っけてりゃ多少の延命できたと思うけどもう時代は16bitに移行しはじめてたから結局たいして変わらなかったんじゃないかな
もうちょいでるのが早ければ良かったんだけど

520ナイコンさん2018/01/29(月) 20:01:01.82
S1デビュー遅かったよね。
77AVもちょっと遅かったなぁとか77は早すぎた(3.5インチ高杉)とかいろいろ面白かったね。

521ナイコンさん2018/01/29(月) 20:54:00.88
>>518
メモリ不足というより、標準搭載のメモリだけだとMPUウェイトに泣いたというのも
大きいんじゃないかと。
標準状態でVRAM表示をONにすると、MPUは表示期間中2クロックに1回しかメモリ
アクセスできなくなる仕様に見える。
普通そういうウェイトは「VRAMアクセスする場合は」という風に被害を限定するもん
だけど、悲しいかなS1の場合メインメモリの64k DRAMの一部をVRAMに割り当てて
いる関係上、標準搭載のメモリだけという状態だとどこにアクセスしてもウェイトが
かかる。

テキストだけの表示ならそうはならないようだけど、ゲームには辛いわな。

522ナイコンさん2018/01/30(火) 02:08:55.26
日立は自分のところでメモリも作ってたんだから
速い奴回してやれば良かったのになあ。

523ナイコンさん2018/01/30(火) 02:48:48.94
>>522
まさにソレ。

2MHzの68B09の場合、サイクルタイム250ns未満のDRAMを持ってくれば、
CRTCの表示読み出しとMPUのリード/ライトをノーウェイトで両立出来る。
これをやったのがS1とほぼ同時期発売のFM-77。

一方のS1はサイクルタイム270ns/260ns のDRAMを用いたため「妥協なし」
のサイクルスチールを実現できなかった。
やはり半導体事業部からは冷遇されていたのか、メインメモリには自社の
HM4864P-2を使っていたものの、VRAMにはTIのTMS4416N-15や三菱の
M5M4416P-15を使った機体を見たことがある。
社内特別納入価格とかも…無理っぽかった雰囲気。

524ナイコンさん2018/01/30(火) 07:17:05.46
>>521
あれ、それってサイクルスチールないってことなのか
S1のスレでサイクルスチールあると書いてあったり当時もある風の雰囲気だったけど
それは実は速くなくて遅い要員があるってことなのか

525ナイコンさん2018/01/30(火) 18:02:54.25
320*200モードでのページ切替はFMや8801にできない技だったのにほとんど活用されなかった
しかもあいつら垂直帰線中しかアクセスできないフルウエイトのくせに

526ナイコンさん2018/01/30(火) 22:04:01.33
S1がVRAMアクセスにサイクルスチールしているのかいないのかと聞かれたら、している。
では、そこに妥協があるのか無いのかと聞かれたら、ある。
これは使ったメモリのサイクルタイムから来る制限のため。

100%ウェイトがかかるのかと言われれば確率は1/2なので、メモリサイクル=MPUクロックが
500nsで済む場合と1000nsかかる場合があって、単純に平均を取ると750ns。逆数を取って
クロック周波数に変換すれば 1.33MHz。まぁMPUが100%メモリアクセスしているわけじゃない
から実際はもう少しマシだと思うけど、標準状態でRAM上のプログラムを実行する場合、
メモリアクセスはすべてウェイト覚悟となるのでゲームなんかも1.33MHzを覚悟することに。

ちなみに、>>525で指摘のある FM-8/7/new7 では確かに表示期間中MPUはHALTされる。
なのでMPUが動けるのは帰線期間中のみとなる。ただ、帰線期間は垂直だけじゃなくて水平
周期中にもあるので状況は少しマシ…とはいえ2MHzのマシンで体感速度は1/3の600kHzあたり orz
さすがにこれでは話にならないのでVRAMアクセスフラグなるI/Oを設定してこれの改善を図っ
ている。
このフラグをONにするとVRAMを読み書き出来るものの上記の状態で体感速度 600kHzに低下。
OFFにするとVRAMアクセスは不能になるもののHALTは掛らず最高速度に復帰。
これをこまめにON/OFFし、直線描画の際に描画座標計算をする場面とか、そういうのは普通に
最高速度・ノーウェイトで動けるようにしている。

…8801は知らん

527ナイコンさん2018/02/11(日) 14:22:23.55
http://map.grauw.nl/resources/video/texasinstruments_tms9918.pdf
TMS9918のデータシート見て思ったんだけど
何でパレットの並びがこんなにバラバラになってたんだろう
赤系が6,8,9で緑系が2,3,12とか

528ナイコンさん2018/02/12(月) 00:36:00.95
9918のカラーはRGBの均等割りとかじゃなくて、
わざわざ北米の児童向けのカラーセット組んで合わせたとか聞いた。

余談だけど、MSX2のV9938系もカラーパレットはRGB各3bitで512色だけど
実際の出力は単純な均等割りになっていなくて、γチャートで見るとRが膨らんでたりする。

あとMSX2の起動時のカラーパレットは9918に合わせてあるというけど実際はズレてる…ってのは有名か

529ナイコンさん2018/02/14(水) 13:13:14.66
>>528
でも、ヤマハの技術者さん達はあれで問題ないと思っていたという…

530ナイコンさん2018/02/14(水) 21:09:22.79
まー、出力先が当時のテレビだからね。ヘタするとRF。しかたないね。

R成分が強いのなら、赤が流れやすかった当時のテレビにあわせた意図的なものだったりしないのかな?

531ナイコンさん2018/02/16(金) 20:31:02.65
8ビットパソコンでもVRAMを標準で32KB/48KB積んでいる機種(X1,SMC-777等)は
16色パックドピクセル(2ドット1バイト)にする選択肢は無かったんだろうか

532ナイコンさん2018/02/20(火) 14:02:59.47
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
――――――♪

533ナイコンさん2018/02/21(水) 02:00:45.07
>>518-519
検索するとVRAM 48KBみたいだけど32KBしかなかったって事ですか?

534ナイコンさん2018/02/23(金) 21:24:35.43
標準搭載RAMが96KB(構成としては64KB+16KB+16KB)で、グラフィック表示ONにすると
その内の48KBがVRAMとして用いられるようになっている。

16KBx2は普通にVRAM2プレーンとして扱えばいいので特に問題ではないが、もう1プレーン分
をメインRAM64KBの1部で兼用させたので問題となった。
S1のVRAMアクセスにはウェイトがかかるのだが、メインRAMの一部を共用したため標準搭載の
メインRAM全域のアクセスにまでウェイトがかかる事態となった。
恐らくROMアクセスにはウェイトが掛らないが、標準のDRAMアクセスにはウェイトが掛るという状態。
このため、BASICの実行速度は高速、なのにゲームの動作は鈍足という…なんだかなぁな話。

新着レスの表示
レスを投稿する