浮上
第53話です。出張予定が客先の都合で二転三転・・・振り回された1週間でした。欧州では寒波で凄い事になってますが、こちらも天候が不順で、ちょうど日本の梅雨時みたいな気候になってます。本来、寒流に支配される海洋性気候で、この時期は雨期ですから雨は良く降るのですが、一日中降り続くことは希で、夕方から夜、バケツをひっくり返した様な雨が降って、町中が浸水し、真夜中頃雨が上がって、次の朝には日が出てる、って気候なんですが、今年はシトシト雨が降り続く、なんかこれまで経験したことのない気候になってます。
このおかげで、入港する予定の船が入らなかったり、出港が伸びるから時間が無くて諦めていた整備を急遽やってくれ、といった予定外作業の連続でした。疲れた。
「吉村さん、『ドリイ』のAIが落ちました。」
「なんだ、どうしたんだ?」
「CPUの誤動作をカバーしきれなくなって、暴走を防ぐためにCPUをスリープさせたんだと思います。」
「なんでまたそんなことに?」
「放射線の影響でビットエラーが増えたからでしょうね。今、『ドリイ』は触手で拘束されていると思います。」
「長野、水中カメラはまだ下にあるな。」
「はい。今切り替えました。メインに出ます。」
「ああ、やっぱり捉えられていますね。『かいえん』外部艇体の上側にあります。」
「やっぱりあの高速なやつか?」
「そうだと思います。最後に送られたデーターでは、高速型が激しく『ドリイ』に衝突してましたんで。」
「判った。『ドリイ』の事は長崎さん達が上がってから考えよう。長野、緊急浮上のモニターはしているな。」
「はい。現在水深2400m付近を浮上中。分速300mです。かなり早い。」
「それは仕方が無い。ともかく浮上位置を早く掴め。すでにゾディアックは降りてるな。」
「降りてます。浮上位置は本船左舷120m程度です。ゾディアックはすでに向かってます。」
「良し。後は任せよう。手順は訓練通りだからな。それでは『ドリイ』の状況の検討に入ろう。田中、現在の状況を説明してくれ。」
「はい。現状はメインスクリーンでご覧の通りです。現在メインCPUはスリープ状態で、高速移動型の攻撃による高線量放射線でメモリーエラーが大きくなり、データー復元困難になったためスリープしました。ビーコンは生きており、現在も受信中です。またオンライン起動ポートも生きており、起動は可能ですが、放射線量が減少しなければ、またすぐにスリープすると思います。外部装置の線量計は生きていると思われますが、現状ではその数値データーは不明です。最後のデーター転送時の数値では毎秒15万ベクレル強でした。監視自体は水中カメラで可能ですが、『かいえん』が失われましたので、自力脱出以外は不可能です。以上です。」
「田中、スリープ前のエラー結果はダンプできてる?」
「はい、長野さん。まだ解析は済んでませんが。」
「うん、一緒に解析しよう。ひょっとすると、影響を強く受ける部分を切り離すパッチ書けるかも知れない。」
「長野、どういうことだ?」
「『ドリイ』のAIは非常時にダメージを受けたハードウェアを切り離して残ったハードで動作できるように、バスレベルを分けているんです。こういう事態は想定してませんでしたので、内部には限られた部分を切り離すだけのルーチンしか無いですが、数秒程度立ち上がってくれれば、放射線の影響でエラーを出しているメモリーブロックを切り離すスクリプトをアップロードして、切り離す事が出来るかも知れません。でも、ハードを切り離すって、吉村さんのアイディアですよ。お陰で苦労したんですから。」
「ああ、あれか。なんだ実装してあったの?」
「はい、しましたよ。多分ですけれど、64ビット以上のCPUでそんなことやったのは世界初かも知れませんよ。」
「しかし、なんかツイてるのかな?」
「ええ、そうじゃないですかね。苦労したのは僕ですけど・・・」
「まぁ、役に立ったから良いじゃないか。」
田中と長野がエラー結果のダンプリスト解析に入ってすぐ、「かいえん」の耐圧殻が浮上した。防護措置が施されていてすら、接近が難しいほどの線量で汚染されていたため、鈎竿などを使って浮力体を取り付け、「みこもと」の後部ベイまでゾディアックで曳航されることになった。長崎と一の瀬は洗浄が終了するまで耐圧殻の中に閉じ込められていた。洗浄後も線量が安全レベルまで下がらず、後付けされたポリエチレン樹脂の防護被覆を廃棄して、やっと耐圧殻から脱出出来たのだった。おかげで「みこもと」船務から、高レベル放射性廃棄物防護容器が底をついた、との知らせを受け取る事になった。耐圧殻から出た長崎と一の瀬は、船内の医療室で被爆検査と簡単な健康診断を受けた後、吉村の前に現れた。
「おお、長崎御大と一の瀬。ご苦労様でした。一旦休んでもらってからで構わなかったんですが・・・。」
「いや、そうも言ってられないからな。あの黒いタンパクは相当に知恵が回るぞ。それと、どんどん硬くなってる。」
「ええ、こっちでもそう想像はしていたんんですがね。」
「『ドリイ』が捉まってる聞いたんだが?」
「ええ、そちらが耐圧殻を切り離した後、例の触手に捉まりまして・・・一旦は脱出出来るかと思ったんですが、そちらもやられた高速型にぶつかられて、放射線でCPUが止まっちゃいましてね・・・」
「『ドリイ』には助けてもらった恩もあるから、何とか回収できないかなぁ、吉村さんよぉ。」
「一の瀬、今、長野と田中がデーター解析して、障害を受けているAIの部分を切り離してCPUを立ち上げられないか検討中ですわ。プログラムを新しく組むそうですよ。」
「おお、そうかい。うまく行くと良いなぁ。『ドリイ』はもう機械のような気がしねぇからなぁ・・・」
「ところで御大、あの時は何が起きたんです?」
「おお、それだがな、破口に接近して、撮影をしてたんだ。カメラは一の瀬が回してた。そしたら何か飛び出して来たんで、咄嗟に斜め上方に移動して回避しようとしたんだ。それでも向こうの方が早くてな。艇体に絡みつかれてなぁ・・・それで離れようとしたんだが、以外と丈夫ってよりもゴムみたいに伸びるんだ。そうこうしてるうちに、6,7本に絡みつかれて、緊急動力浮上に切り替えた。それでも引っ張り合いでは勝ってたんだが、例の早いのが飛び出して来て、左舷のシュラウド曲げやがった。左舷がアウトになったんで、その分パワーを後部に回して全力離脱したんだが、後部も舵をやられてアウト。右舷側だけじゃどうにもならずに捉まっちまったってわけだ。」
「なるほど・・・しかし、シュラウド曲げるとなると、相当重くないと・・・」
「おお、それよ。最初に食らったショックで艇が横倒しになっちまってな。右舷側だけで姿勢を戻そうとしたんだが、次々に早いのが当たるんで、姿勢が戻らないのよ。『かいえん』を横倒しにするくらいだから、相当重いぞありゃ。」
「なるほどねぇ・・・また進化したって事ですか・・・」
「ああ。このまま行ったら、相当短期間でかなり進化するなありゃ。それとなぁ、確かに柔らかいんだが、引っ張り強度は相当に強いぞ。『かいえん』の動力緊急浮上だと、浮上速度は7ノット近くまで行くからな。ペラを高速型に変えてるから、以前よりはトラクションは落ちてるはずだが、それでも船外機75馬力くらいの力はあるはずだ。限界まで伸びたら大した事は無いのかも知れんが、どこが限界なのか判らん。」
「ところで、3mまでは静かだったのに、どうして突然攻撃行動を起こしたんでしょうねぇ。何か心当たりありますか?」
「それが判らないんだ。何か距離を知る知覚が出来たのだろうか?『かいえん』の知覚対策はほぼ完璧だったはずなんだが?」
「カメラを扱っていたのは俺なんだが、特別なことって言えば、紫外線スポットを点灯した事以外に無い。」
「論理的にはその紫外線スポットを感知した、って事になるが、以前も紫外線スポットは点灯していたからなぁ・・・」
「いや、進化しているから判らんぞ。」
「どちらにせよ、村木たちと相談してみる。ご両人ともご苦労様でした。お疲れでしょうから、とりあえず休息を取って下さい。ひょっとすると、『みずなぎ』を2艇とも出さなければならないかも知れませんので。」
「ああ、サンプル採取なら『みずなぎ』でも出来る範囲はあるからな。判った、お言葉に甘えさせて貰おう。」
「そうしてください。『かいえん』は失いましたが、お二人の出番はまだあると思っていて貰って結構です。」
「期待してるよ。」
吉村が長崎たちと話していた頃、長野と田中は全力でエラーコードダンプの解析をしていた。
「長野さん、どうもこれ、エラーは特定のアドレス範囲に限られるようですね。」
「うん、それは俺も気づいている。ああ、あった、ここだ。ここの0番地からFF3200番地ってのは、えーと、メモリーバンクの最初のチップセットだな。これに対応するバスコントロールのFPGAチップをディセーブルすれば良いのか。田中君、それ以外のエラーアドレスも見てくれる。」
「ああ、もう一つありますね。ただ、ここはあまりエラーを出してませんが・・・最初のアドレスと比べると1/1000以下ですね。」
「そのアドレス範囲呉れますか?」
田中が書き出したアドレスを追った長野は不思議そうな顔でつぶやいた。
「ん?なんでこんな処がエラー出す??」
それは、艇外に設置される各種モーター類からの回転数フィードバックを受けて居るI/Oバスのアドレスだった。
「長野さん、どうかしました?」
「うん、モーターの回転数フィードバックにエラーが出てるんだ。ここには放射性感受性のある素子なんか使ってないんだが?」
「そうですね。なんか磁気が感応してるんじゃないでしょうか?」
「磁気って言ってもなぁ・・・エラーのアキュムレーターダンプ見せてくれます?ん?これは・・・・」
「なんか変ですか?」
「そうか、そうだったんだ!アキュムレーターの内容は素数だよ、これ。ASCIIコードで123579が並んでる。」
「えぇ、それって、もしかして・・・」
「そのもしかしてだよ。偶然でこんな配列になるはず無い。それでもデーターバスとかなら、内部で素数乱数を使っている場合もあるが、ここはI/Oバスなんだよ。本来データー自体は外から来るものなんだ。」
「これは吉村さん呼んだ方が良さそうですね。」
「同感だ。ついでに望月さんと村木さんにも来て貰った方が良いな。」
「すぐに呼びます。」
田中に呼び出された吉村は、望月と村木を伴ってすぐに現れた。
「なんだ、長野、新しいことでも判ったのか?」
「それどころじゃないです。このタンパク塊、いや新生物と呼んだ方が適当だと思いますが、コミュニケーションを取ろうとしています。」
「まさか。確かに知能的ではあるが、そこまで知能があるとは思えない。なんかの偶然じゃないのか?」
「それじゃ吉村さん、モーターの回転数センサーのデーターを取り込むI/Oバスに、偶然で70回以上、素数列が現れる現象を説明してみて下さい。」
「なんだと!素数列がI/Oバスに現れただと・・・一体どうやって・・・そうか磁気か。モーターの回転数センサーはピックアップコイルか。」
「ええ、そうなんです。パルスで回転数取り込んでいるセンサーは別のI/Oになってます。A/D変換が不要ですから。ピックアップ方式のセンサーだけを扱うI/Oバスにだけ現れているんです。」
「放射線の影響じゃないんですか?」
「望月さん、この部分には放射線の影響でどうにかなる素子は使われていません。A/Dもサンプリングが遅くても良い部分ですから、あまり高度なものは使っていないのです。一部は入力電圧の関係でC-MOSですらありません。」
「そうすると、どうやって素数を送るんですか?」
「磁気を発生させて、ピックアップコイルに素数に応じた電圧を発生させているとしか考えられません。」
「そんなことが出来るんですか?」
「理論的には可能です。もっとも実際にやろうとしたら、かなり難しいですが・・・」
「それをこのタンパク塊が実行していると?」
「そうとしか考えられない状況です。吉村さん、エラーを発生しているメモリーは特定しました。切り離すスクリプトも出来てます。『ドリイ』を再起動させて下さい。」
「うむ、判った。どうせ再起動させる予定だったんだ、多少のイレギュラーがあったところで問題無い。しかし、『ドリイ』を乗っ取られる可能性は無いのか?」
「それは否定できません。ただ、乗っ取られたとしても『ドリイ』を失うだけです。長崎さんたちも浮上したんで危険は大きくないかと。」
「よし、再起動させよう。ところで村木、望月、君らの意見はどうかね。」
「吉村さん、生物屋としては興味があります。本当に知性が有り、コミュニケーション能力もあるのなら、おそらく人類発祥以来の最大の発見でしょう。」
「私も問題無いと思います。村木君の希望が本当なら海洋学の新たな展望が開けますから。」
「長野、田中、『ドリイ』再起動だ。かかってくれ。」
「「了解」」
ご意見、ご感想をお待ちします。