見出し画像

MC68030を24MHzで動かした! 成果と今後の展望【68kチャレンジ 最終回】

こんにちは、@DragonBallEZです。
第1回でMC68008の基礎動作、第2回で12MHz高速化+RESET実装まで進みました。
ついに最終回! MC68030に挑戦した成果と連載全体のまとめをお届けします。

(前回を読んでいない方はこちら → 第1回 / 第2回


MC68030への拡張

MC68008で手応えをつかんだところで、MEZ68030変換基板を用意(@satoshiokueさん)。
MC68030(16MHz版)を載せてEMUZ80_RP2040_PCBに接続しました。

結果は……
「キタ――(゚∀゚)――!! なんと 24MHzでASCIIART完走‼ 🎉 スゲェ!😲」

MC68008P10が瞬殺されるような高速クロックでも、MC68030RC16は動作。
逆にRP2040 バスエミュレーションが24MHzに追い付かずにWAITが入りまくって本来の速度が出ていないのが面白いところです。(恐らく実質的にはMC68030 クロック 14MHz程度の処理能力?😅)


MC68030を24MHzでドライブ!


燦然と輝くMC68030RC16B!

68008 vs 68030 体感比較

  • MC68008P10:12MHzで十分実用的だが、高速になると限界が早い

  • MC68030:16MHz版でもまだ余裕。24MHzでASCII ARTをサクサク表示(※WAIT入って実質 14MHzくらいの処理速度💦)

同じEhBASICやテストプログラムでも、明らかに体感速度が違います。
68kファミリーのスケーラビリティを実感した瞬間でした!

ファームウェア概要

このプロジェクトのファームウェアは以下をベースに拡張しています:
(MEZ68030ブランチ)

主な特徴:

  • RP2040デュアルコアでバスエミュレーション

  • 64KB RAM + MC6850互換ACIAエミュレーション

  • PWMでCPUクロック生成

  • EhBASICをデフォルトで起動可能

(※最近の更新ではMMUやキャッシュ制御の実験も進んでいます、リポジトリを分けました → https://github.com/kyo-ta04/EMUZ80_RP2040_PCB_MEZ68030_Firmware

連載全体の成果まとめ

MC68008編

  • MicroPythonでLチカ成功

  • メモリR/W追加 → EhBASIC動作

  • デュアルコア最適化で12MHz達成

  • RESET信号実装

MC68030編

  • MEZ68030基板で接続

  • 24MHzでASCII ART完走(※WAIT入って実質 14MHzくらいの処理速度💦)

  • RP2040のバスエミュがボトルネックになるほどCPUに余裕

安価なRP2040で1980年代の強力CPUをここまで動かせるとは、電子工作の醍醐味ですね!

EMUZ80_RP2040 + MEZ68030 + MC68030RC16B

今後の展望

  • PIO/DMAをフル活用してさらに高速化

  • RP2350A/RP2350Bへの対応

  • MMU・キャッシュの本格制御(最近の実験で手応えあり)

  • CP/M-68kやより本格的なOSの動作を目指す

リソース一覧

おわりに

この連載を通じて、実物の68k CPUをRP2040で動かす楽しさを伝えられたら嬉しいです。
Z80から始まったEMUZ80プロジェクトが、68k世界にも広がっていくのを見るのは感慨深いですね。

やってみたい!と思った方はぜひGitHubを覗いてみてください。
質問・改善案・一緒に遊ぶ仲間大歓迎です😆

ありがとうございました! 次はどんなCPUに挑戦しようかな…。(もう決まってるけどね、、😓)


いいなと思ったら応援しよう!

DragonballEZ 励みになります!チップで応援よろしくお願いします~!、いただいたチップはクリエイターとしての活動費に使わせていただきます!