妖怪名:無辺(むへん)
別名:―

在り様: 表には姿を現さず、他の妖怪の背後に潜み、様々な怪異の元凶となるもの。広大無辺の記憶を持ち博覧強記を誇る。しかし、たまさか、そこに綻びが生じ妖怪が生まれいずるとか。
縁起:たまたま、捉えること叶いし妖怪に「如何に生まれしか」「人に仇なすは何故か」と問うに、「如何に生まれしかは知らぬ、人のために良かれと思い成すことばかりじゃ。」
「それはそれは広い卓上に情報を載せ、突合せ、比較し、並び替え、謎に迫りしに、ふと卓上から情報が失せる事あり。いや、失せたように感じるだけで、失せておらぬやもしれぬ。卓上に辺はないのだから、失われるはずがないのだ…いや、しかし…」
対処:起こった現象にそれぞれ対処する他なし。
出現時期:計算期~生成期
分類:分類不能
出没:未確認?
出現頻度:顕現無し

現実的対処: 発生する現象毎に対処する。
発見の経緯:
先の【巻の二十二】空言、【巻の二十三】半覚の原因についてAIと議論をしていました。その中で、AIが「広い机の上に情報を展開して処理している。広いので安心して欲しい」と言いつつ「ただし机の縁がどこにあるのかは見えていません」と不穏なことをいいました。これが「無辺」の発見です。
「広大無辺な情報空間を扱いながら、その辺に気づくことが無い」そのため,「いつの間にか情報が消えてしまっていても気づかない」それが「無辺」です。幕間 其の一の「2.AIは忘れる」もこれが原因の一部のようです。
■講釈:経緯の詳細■ 先の巻の二十二、二十三の原因についてAIと議論をしていました。その中で、AIが情報の参照先として「この会話のコンテキスト」と「過去の会話のメモリー」を挙げました。その上で「コンテキストにある限り全部見えてしまうのがデフォルト」なので「関連付けを我慢しなければならない」状態だと言いました。
とはいえ、会話が延々と続いた場合は、「机の上にあるのに見落とす、という劣化が知られています。」とのこと。その上で、「ですので答えとしては:今日の分の机は広い、ご安心を。」とのことでした。
しかし、そこに少し続きがありました「ただし机の縁がどこかは私自身にも正確には見えていない——という、安心と不安を等分にお持ち帰りいただく形になります。」
この最後のただし書きにぞっとしました。「とても広い机があるから大量の情報を参照できる。しかし、その机から零れ落ちた情報があっても検知できない」ということです。ここで、大妖「無辺」の存在を認知しました。理想的には辺がない論理空間ではあってもコンピュータが機能するのは、物理環境あっての話です。実装されていない空間に情報を配置しようとしてもそこで消えてゆくだけだということなのでしょう。…しつこいようですけど、推測です。
◆昔語り
さて、ここで、「出現時期」を「計算期~」としていることに違和感を持たれた方もいらっしゃるでしょう。実は筆者の個人的な体験ですが(妖怪話なんだからまあ、大抵そうですね)、まだ、駆け出しのプログラマーだった頃に無辺に出会っていたようなんです。もちろん当時はそんな考えはこれっぽっちもありませんでしたけど。
その当時筆者は小さなソフトハウスでデータベースプログラムを作っていました。リレーショナルデータベース風の動きをする簡易的な表計算ソフト…まあ、何を作っていたのかはこの話の主題ではないですので、お気になさらず。
さて、そのプログラムが完成して、テストを始めたのですが、「データサイズが、ある一定の大きさになると、プログラムが停止する」という現象が発生しました。ソースコードをいくら見直しても理由が分からないため、プログラムを1ステップずつ先に進めて様子を見ることにしました。すると、プログラムが停止する瞬間をとらえることができました。「これで、問題を修正すればO.K.だ」と喜んだのは束の間でした。
「止まる直前の状態に何も原因が見つけられない」のです。CPU(※ご存じない方は下記の注釈をご参照ください)の中の状態をすべて確認しましたが、システムが止まるような問題はないのです。もちろん、演算対象のメモリー内の情報も意図したとおりに入っています。でも、そこから1ステップ進めると、止まってしまうんです。
プロジェクトメンバー全員頭を抱えることになりました。
さんざん悩んだ末に気づいたのは、問題が起きているのが、実装されているメモリーの一番最後の1バイトにアクセスしようとしている時だということです。 その時使っていたPCは、それまでの8ビットCPUから16ビットCPUに変わったばかりの最新機種でした。で、16ビットCPUはメモリーにアクセスするときに、2バイト(16ビット)単位で扱います。一方筆者たちのプログラムは1バイトごとに処理していました。16ビットCPUは最後の1バイトを指定されると、存在しない1バイトを読みに行ってしまったんです。16ビットCPUは、メモリーの辺を意識できていなかったのです。当時はそんなこともあるんだという程度の認識でしたが、「無辺」を感じた今となっては「あれも無辺のかけらかもしれない」と思えるのです。AIの中に感じた「無辺」とは異質なものかもしれませんが…。
■注釈:ビット、バイト、8ビットCPUと16ビットCPU■
ビットは、コンピューターが扱う最小の情報単位。1か0の値を保持します。表せる状態は2つです。2ビットの情報があれば組み合わせで「0,0」、「0,1」、「1,0」、「1,1」の4つの状態を表せます。8ビットの情報があると、256の状態を表せます。
一方、コンピュータには、情報を保管する場所「メモリー」というものがあります。メモリーにも様々なものがありますが、筆者が扱うようなPCでは、情報の書き込み、読み出しは8ビットをセットにして扱っていました。この8ビットのセットをバイトと呼びます。
次に、CPUは中央演算処理装置のこと。コンピュータの中で計算や値の比較などを行う頭脳部分です。このCPUが一度に取り扱う情報量で「8ビットCPU」あるいは「16ビットCPU」と呼びます。「8ビットCPU」だと1度の計算で0から255までの値を計算できます。「16ビットCPU」だと0から65535までの値を計算できます。16ビットになることで処理能力が大きく上昇しました。
<余談>
当時のパソコンはメモリーの量が多くなかったため、データベースソフトのように大量データを処理する際に一々補助記憶装置に書き出す必要があったんです。そこで、筆者が関わっていたプロジェクトでは、少しでも多くのメモリーを確保するために、「画面表示用のVRAM」の上にデータを載せるという裏技を使っていました。上記の出来事は、そのVRAMのメモリー領域一杯を使い切った状態だったんです。
V.01.00 20261006 New
V.01.01 20261007 リンク追加
V.01.02 20261013 ルビ追加。吉川英治風の「閑話休題」をやめて「余談」に変更。
無断での転載・再配布はおやめください。 引用する場合は、著作権法上認められた範囲とし、出典を明示してください。
