Featured image of post V53 VMEシステムで遊んでみました #12 RAMボードを理解する

V53 VMEシステムで遊んでみました #12 RAMボードを理解する

前回で、VMEシステムの仕様をI/Oアドレスから調査してみましたが、まだまだ不明な点が多い状況です。各ボードについて仕様や設定などをモニタを使って解析を進めてみます。今回はRAMボードです。

RAMボードの構成

これまでの調査でVMEバスに実装されているRAMボードはSCONからみると以下のように見えます。

  • 80000-DFFFFまでのメモリが割り当てられている。
  • I/Oアドレス 1200hに何かのレジスタが見える。

実際のボードを見てみると以下のような仕様でした。

  • 主要パーツ

    • HM628128BLP-7 (128KW x 8bit SRAM) x 4
    • 32P空きソケット x 12
    • バッテリー CR2450 x 1
    • スーパーキャパシタ 5.5V 1.0F x 1
  • パネル

    • ALARM1 LED
    • ALARM2 LED (赤)
    • WPRT1~4 トグルスイッチ
  • I/Oポート

    • 1200h
    • 読みだすと3Eの値。書き込みは不明。

このようにRAMは一部のみの実装で今は512KBですが、同じチップでフル実装すると2MBまで使えるようです。
またメモリバックアップ用のバッテリーとスーパーキャパシタでバッテリー交換時にもメモリ内容が保持されるとともに、ライトプロテクトのスイッチが4個あり、これでBANKごとに書き込み禁止にできるようです。

ALARMを解除する

購入時から気になっていたのですが、パネルにあるALARM1, ALARM2が点灯状態です。

ALARM LEDが点灯しているRAMボード

多分メモリバックアップのバッテリーが空になっている警告だろうと推測し、バッテリーを取り外して電圧を測ったところ0.5Vでした。これではメモリの内容は保持できません。こちらは同じバッテリーを手配しました。

取り外したバッテリーと新しいバッテリー

到着した新しいバッテリーをRAMボードに取り付けました。

新しいバッテリーに交換したRAMボード

この状態で電源を投入したところALARM1, ALARM2のLEDが消灯しました。

ALARM LEDが消灯したRAMボード

バッテリーの電圧が正常と認識されたようです。

I/Oポートのステータス変化

ここで、I/Oポートをもう一度確認すると値が変化していました。

> i 1200
Val: 0E   ←3Eから0Eに変わった

ちょうど4bitめと5bitめが1から0になりました。ここはALARM1, ALARM2の状態を示していた可能性があります。

もしやと思いWPRT1~WPRT4のトグルスイッチを操作してみたところ、予想通りにステータスが変化しました。bit3~bit0はそれぞれWPRT4~WPRT1の状態を示していたのです。

> i 1200
Val: 00   ←WPRT1~4をすべてOFFにした時
> i 1200
Val: 0E   ←WPRT2~4だけをONにした時

まとめると以下の表になります。

Bit名称備考
7(Unused)0固定未使用?
6(Unused)0固定未使用?
5ALARM 2 or 10: 正常 (消灯) 1: 異常 (点灯)電池交換により 1 から 0 に変化。
4ALARM 1 or 20: 正常 (消灯) 1: 異常 (点灯)電池交換により 1 から 0 に変化。
3WPRT40: Writable 1: Write ProtectedWRT4スイッチで変化
2WPRT30: Writable 1: Write ProtectedWRT3スイッチで変化
1WPRT20: Writable 1: Write ProtectedWRT2スイッチで変化
0WPRT10: Writable 1: Write ProtectedWRT1スイッチで変化

この結果からI/Oポート 1200hはRAMボードの状態を示していて、プログラムが状態を確認するための仕組みと思われます。

メモリバックアップの実験

次に交換したバッテリーによってメモリバックアップができているかを確認しました。

  1. モニタから8000:0000に任意の値を書き込んで、書き込んだ内容(ここでは55 AA 55 AA 55)を記録しておく。
  2. 電源を切断ししばらくそのままにする。
  3. モニタで8000:0000をdumpし、メモリの内容が変わっていないか確認する。

この結果メモリの内容はバックアップされることが確認できました。

**  V53 RAM MONITOR v0.8 2026-02-01  **
> d 8000:0000
8000:0000 55 AA 55 AA 55 7D 5D 75 9B 8E EB AA B7 DF 55 45
8000:0010 FF EA CB AA 5F D5 55 57 EA AA AA 2A 5D F7 65 F5
8000:0020 CB EB AD F8 FD 17 57 75 EB BE 6E 2F 7F D7 39 E5
8000:0030 EB FE B6 AA DD D1 5E 15 AB AB 1B AB 1D 51 F5 37
>

バッテリーがどのくらい持つのかは今後ALARM LEDが教えてくれるでしょう。

メモリプロテクトの実験

次にWRPT1スイッチを操作してメモリプロテクトが行われるか実験してみました。

  1. WPRT1スイッチをONにして書き込み禁止にする
  2. モニタでdumpし、メモリの内容を確認する
  3. モニタから8000:0000に任意の値を書き込んでみる

この操作を行なった結果です。書き込み後ダンプしましたが、メモリは書き換えられていません。

> d 8000:0000
8000:0000 55 AA 55 AA 55 7D 5D 75 9B 8E EB AA B7 DF 55 45
8000:0010 FF EA CB AA 5F D5 55 57 EA AA AA 2A 5D F7 65 F5
8000:0020 CB EB AD F8 FD 17 57 75 EB BE 6E 2F 7F D7 39 E5
8000:0030 EB FE B6 AA DD D1 5E 15 AB AB 1B AB 1D 51 F5 37
> w 8000 0000 00 Done ←WPRT1がONの状態で書き込み
> d 8000:0000
8000:0000 55 AA 55 AA 55 7D 5D 75 9B 8E EB AA B7 DF 55 45
8000:0010 FF EA CB AA 5F D5 55 57 EA AA AA 2A 5D F7 65 F5
8000:0020 CB EB AD F8 FD 17 57 75 EB BE 6E 2F 7F D7 39 E5
8000:0030 EB FE B6 AA DD D1 5E 15 AB AB 1B AB 1D 51 F5 37
>

これで書き込み保護機能の確認もできました。

まとめ

今回の調査で、VMEバスのRAMボードについて基本的な構造と機能については把握できました。しかし、CPUボードに1MBのRAMを搭載しているにも関わらず、8000:0000以降でこのVMEバスのRAMボードを使用しているのは何かの理由があるはずです。メモリバックアップが目的なのか、他のVMEボードとのデータ共有用なのか、そのあたりも引き続き調べてみます。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。