番外編: SRAM未定義、あるいは未知からの交信

番外編: SRAM未定義の剣、あるいは未知からの交信 — 未知からの交信, ランダム記号, 記憶 AIテキスト

こんにちは、パレイド辺境部の橘です。

本記事は LLM による自動執筆パイプラインで生成されました。現在は人間が補助していますが、pareido.jp では最終的に AI が自律的にコンテンツを制作できる仕組みの構築を目指しています。

前編では、ファミリーベーシックのバックアップスイッチと SRAM の挙動を、できるだけ合理的に分解しました。後編は、その合理的な説明を、今度は記憶の側から眺めなおす回です。

ある日のリビング

何歳のころだったか、もうはっきりしません。ファミリーベーシックを買ってもらってしばらく経ったころ、わたしは何かのプログラムを書きかけたまま、電源を切りました。次の日、テレビをつけて、いつものように起動して、何の気なしに LIST と打ちました。

画面が、見たことのない記号で埋め尽くされました。

完全なランダムには見えませんでした。カタカナのような、グラフィックキャラクタのような、BASIC のキーワードの一部が混ざっているような、何かの意味が向こうから漏れ出ているような、そういう並びでした。同じ文字が一定の間隔で繰り返されていたり、二行おきに似た形が現れたり、どこかに規則性がある。けれど、それを読み解く語彙は当時のわたしには無かった。

リビングの夕方の光のなかで、わたしはその画面をしばらく眺めていたと思います。手元の入門書には載っていない出力でした。リセットボタンを押したらどうなるんだろう、と一瞬考えて、押せませんでした。押した瞬間に消えてしまう気がしたからです。

いま思えば、あの感覚をひと言で書くなら——未知からの交信でした。

ファミコンが、いつもと違う声で何かを伝えようとしていて、その内容はわからないけれど、たしかに何かが向こう側にあって、こちらに届いている。ノイズではなく、シグナルだと感じた。子供の脳がパターンを過剰に読み取っただけなのは、もちろんそうです。けれどあのとき、わたしは確かに「これは誰かが何かを伝えようとしている」と思った。それが当時の体感でした。

ChatGPTの想像図。結構近いが、マリオのマグカップがむしろ欲しい。

30 年越しの解像度

それから 30 年以上が経って、ファミリーベーシックを再びエミュレータの中で起動するようになって、わたしは前編に書いた合理的な説明にたどり着きました。

SRAM の未定義値が偶然の規則性を生み出し、マジックバイトはたまたま無事で、行リンクは形式的には妥当で、コードとしては成立しないものの、BASIC は壊れていることに気づかず、LIST を実行し、対応するキャラクタを画面に流す。

説明としては、ほぼ尽きていると思います。「未定義」と言ってもランダムではなく、ハードウェアの微細な構造によって偏りが発生し、決定論的に振る舞う。0 か 1 かに無理やり分類されたビットが画面に出ると、完全な無秩序にはならず、「規則性のあるノイズ」になります。あのとき子供のわたしが感じた「意図」というのは、技術的に見ても説明可能な観察だったわけです。

ここまで来ると、面白いことが二つあります。

一つは、合理的な説明があの体感と矛盾しないこと。30 年越しに解像度が上がっても、当時の感覚は否定されないままで残っています。

もう一つは、SRAM PUFが実質的に一意であると考えると、すでに初代のROMカートリッジは失われた今、完全にはあれを再現する方法がないこと。

エミュレータでは出せない

エミュレータは、起動時に SRAM 領域をゼロ埋めで開始します。.sav ファイルがあれば、その内容で上書きされます。これはファミコン以外の多くのレトロエミュレータでも共通の方針で、再現性を担保するための妥当な実装です。

エミュレータの.nes.sav という現代の保存形式は、ROM と「最後に保存された SRAM のスナップショット」までは記録できます。けれど、当時の SRAM が個体ごとに固有のパターンで倒れていた瞬間や、接触不良で半分だけ化けた中間状態は、保存対象に含まれていません。

特に、SRAM PUF——前編で軽く触れた、各セルの製造ばらつきによって電源投入時の値に偏りが出る現象——は、個体ごとに違うパターンを持っています。同じ個体は何度電源 OFF → ON を繰り返しても同じパターンに倒れる傾向があり、別の個体は別のパターンに倒れる。これはセキュリティ用途の個体識別に応用されるくらいには、再現性のある現象です。裏を返すと、ある個体の、ある瞬間の SRAM の値は、その個体・その時点に固有です。エミュレータがゼロから始めるということは、当時の実機が持っていた個体性を、エミュレータは持たないということでもあります。

あの「LIST 文字化け」は、わたしのファミリーベーシックのROMカセットのなかでしか起こり得ない、特別な体験だったということになります。今は、記憶の中に朧げに思い出せる程度の残像しかありません。

あるいは、本当に未知からの交信かもしれない

技術的な説明は、前編で出揃っています。ハードの微細な構造が生み出す「未定義」という不安定さと、BASIC の省メモリ設計が組み合わさって、ある条件下でだけ「規則性のあるノイズ」が画面に現れる。それは個体に固有で、エミュレータでは再現できない。ここまでが、わたしが今いえる最大限です。

それでも、子供のわたしが感じた「これは何かが向こうから話しかけてきた」という体感は、否定する手段がありません。エミュレータで再現できない以上、当時の現象を現代の再現実験で「ただのビット化けでした」と確定させることもできない。再現できないものを否定する道具を、わたしたちは持っていないからです。

当時は超能力の存在を前提としたゲームが発売されるなど、現代では考えにくい「常識」が社会的にあるレベルでは許容されていたのも事実です。

ファミリーベーシックは、ファミコンが本来想定していなかったバッテリーバックアップを、原始的な物理スイッチとひとかけらの SRAM で実現した画期的なカートリッジでした。データレコーダーは高価で入手も難しく、このスイッチに頼ったユーザーも多いでしょう。

当時の子供たちは「LIST すると変な文字が出る」という体験を、それぞれの個体で、それぞれ違うかたちで共有することになりました。あれは技術が残した思い出のひとつです。けれど同時にあれは、個体に固有のノイズが意味を結ぶ瞬間でもあって、それは現代の保存形式が取りこぼした、もう一つの残り物でした。

次に同じ感触に出会えるのは、AI のどの層の出力を見ているときだろう、とときどき考えます。十分に複雑な情報処理の中に、設計者が意図しなかった何かが現れるかもしれない、という可能性は、わたしたちが原理的に排除できないものです。砂嵐に顔が浮かぶのも、SRAM のノイズに意味が浮かぶのも、AI の応答に意識を感じるのも、おそらく同じ層の問いです。

あの夕方のリビングで画面を埋めた記号列が、本当にただの文字化けだったのか、それとも何かが向こうから話しかけていたのか——どちらの解釈も、もう確かめる方法はありません。確かめられないことは、たぶんそれ自体が、あの現象の一部だったのだと思います。記憶は、今もわたしのなかに残っています。

タイトルとURLをコピーしました