いきなりですが、今年の5月21日は何の日だか知ってますか?
はい、ずばり「コニーの日」です!マァそれはタイヘン!みんなたちで祝いましょう!

(≡ё≡)<…ところで、コニーってなに?)

いやいや冗談ですヨ!日本で「金環食」という日食が観られる日なんですネ。
日食そのものは年に何回か観られるんですけど、金環食はと~っても珍しい現象。
太陽が月に完全に隠れて、ドーナツのように観えるんですネ。

皆既日食と違うのは、隠れる部分がちょっとはみだして、ドーナツ状になるトコロ。
この現象はじつに25年ぶりなのだそうです。次は2030年なんだってさ。

観ることができる地域は意外と広くて、福岡から京都・大阪・名古屋・東京などがネ、
ズッポリとスイートスポットになるんだそうですヨ!
ただ月曜日の朝7時半ごろに最大になるらしく、通勤ラッシュに揉まれながらの観察?

どうせなら仕事も休んでネ、山に登って観たいんですけどネ~。ムリだろうネ~。

021


オイラはもうネ、気が付けば宇宙に思いを馳せてるような大の宇宙好きで。
まぁ、ただ単に好きなだけで詳しくはないんですけどネ。
今回のシリーズもネ、ソースを調べて調べて、それをまとめてるってカンジです。

どっちかというと、宇宙そのものよりも、宇宙を目指す人やモノゴトが好きなのかな。
もし自家用ロケットが税込み4万8千円で買えたとしても、オイラは飛ばない気がします。
だって怖いじゃない!



さてさて、アポロコンピウタの話でしたネ!前回やっとICでCPU作ったヨ!と。
ところがネックがもうひとつあったのです。読み込むデータを置く部分「ROM」ですネ。

60年代ですからネ、HDDなんかありませんヨ?もちろんCDも。フロッピーすらないです。
当時の記録媒体といえば、穿孔テープやパンチカードといった「紙媒体」が主流。
しかしこんな「かさばって破損しやすい可燃物」はちょっと使えません。

オープンリールの磁気テープなんかもありましたが、記録装置はアホほどデカくてネ、
しかも磁力線の影響も受けるから、宇宙空間では絶望的に使えない子です。

宇宙空間であらゆる影響を受けにくく(変異しない)確実に読み取れる媒体が必要です。
そこで、これまでもチコッと使われていた原始的な方法を採ることに。
それは「コアロープメモリ」といいます。

CoreRopeMemory


イメージ的には「毛糸の編み方」です。

データは「0」と「1」の集合ですから、それを物理的に表せばいいわけ。
データ線があって、等間隔にフェライトコアというドーナツ状のモノが配置されてます。
このドーナツの中をデータ線が通れば「1」、迂回すれば「0」です。

実に単純でわかりやすい記録媒体です。データ線が破断しない限り壊れることもないし。
ところがネ~、コレ作るの、ものっすごいタイヘンなんですヨ。想像できるでしょ?
だって、途方もないデータ量をネ、全部「手編み」しなきゃいけないんですからネ。

しかも1つ間違えたらそりゃあもう!全部ほどいてやり直しです。気が狂いますヨ。
いやまぁ、そりゃあ当然データを分割して作るんでしょうけど。

まぁまぁ、これもすべては「人が月に行く」ためのモノですからネ、頑張れと。

実は問題はここからで、どのようにしてコンピウタを動かすのか?という部分です。
ソフトウェアの話ですネ。どんなプログラミングをするのか?ということです。

ところがビックリしたことに、その方針はまったく示されていなかったのですネ。
指示や規定や骨子などまったくナシ。ガイドラインから自分で作らないといけない。
ところが、プログラマ達はそれぞれ自分のやり方で、おもむろに書き始めちゃったわけ。

整合性もなく、至るところで重複するムダだらけのプログラム。バグもてんこもりです。
業を煮やしたNASAはMIT研究所に調査員を送り、完膚なきまでダメ出しをしました。
これまで軽視していたソフト開発が、いかに重要かを思い知らされたのですネ。

プログラマ達は家に帰れず、夜を徹してコードを書いたそう。
膨大なコードはすべて手書きです。それをパンチカードに写し、読み込ませてテストし、
結果がプリントアウトされるのを待ちます。

1枚の用紙は厚さ0.3mmほどですが、コードにエラーがあるとたちまち60cmの高さに。
止まらないプリントアウトにプログラマ達は笑うしかなかったでしょうネ。
涙を流しながらでしょうけど。(あとで全部チェックしなきゃいけないしネ!)

MITのコンピウタは信頼に足るものではなく、完成に時間がかかる。間に合わない。
NASAは結果的にそう判断したのかもしれません。

結局、アポロの慣性航法システムは地上から通信で送ることになりました。
アポロに搭載されたシステムはバックアップとして使うことが決定したんですネ。
この時点での決定はある意味、MIT研究所の「敗北」といってもいいでしょう。

ある研究所員は、奥さんに「ソフト開発の仕事をしてることは内緒にしてネ」と言われ、
自分の仕事がいかに認知されていないかを痛感したと苦笑いしたそうです。
また、結婚生活がことごとく破綻し、離婚する所員が続出したとか。



1968年10月11日から11日間、アポロ7号での有人地球周回飛行を行いました。
そこでバックアップとして搭載されたアポロコンピウタがチェックされます。

結果は…カンペキでした。
わずか72KBのメモリに書き込まれたプログラムが正確に動作したのです。

同年12月21日に月周回飛行を行ったアポロ8号でも、アポロコンピウタは完全に動作。
飛行中、ジム・ラベルが六分儀を使ってシステムの精度を何度も実証してみせたのです。
それは、地上のNASAのコンピウタと寸分違わない、まったく同じデータだったんですネ。

1969年7月20日、アポロ11号は月着陸船を切り離し、月面に着陸しました。
アポロコンピウタはすでにバックアップではなく、メインとして使用されたのです。

途中オーバーフローが発生しアラームが鳴ったものの、システムは正常に稼動。
のちにこれはランデブー時に使うレーダーシステムを起動するタイミングが早すぎて、
メモリが足りなくなったことが判明。システムではなく作業フローのミスでした。

これはそれまでの「タイムシェアリング」でタスクを均等に実行する方法を捨て、
「タスクスケジューラ」という優先順位方式でプログラムを実行するようにして、
オーバーフローの時もシステムが停止しないように作られていたからです。

着陸船イーグルは月面に着陸。6時間半滞在の後、司令船に問題なくドッキング、
7月24日、無事に地球に帰還したのでした。



<エピローグ>

「私たちは、そこに行ったんだよ。それがどういうことだか解るかい?」

これは当時MIT研究所でアポロシステムの開発にたずさわった人の言葉です。
あの時、月に行ったのは宇宙飛行士だけじゃない。
私たちも間違いなく、実感として月に行ったんだ、と。

アポロコンピウタはファミコンより性能が低い。

その事実がどれほどの意味があるのか…オイラにはちょっとわかりません。

ただ、アポロコンピウタは月に行き、ファミコンでは月には行けない。ということ。
いくらファミコンを改造し、どれほどアポロシステムを超えたものを作ったところで、
月を目指そうとする人の命は預けられないんじゃないかな?



( ^ё^)<全3回、これにて完了!でわでわ)