-過去ログ-
■ 北朝鮮の原子力ムラ -2012年4月1日(日)00時18分
北朝鮮の原子力事業は1956年、ソ連と原子力研究協定を結んだところから始まる。1961年には平壌の北80キロの寧辺に研究施設の建設が始まり、翌年には2メガワット出力の研究用軽水炉IRT-2000が建設された。この施設はソ連の強い監視下にあり、当時は医療用アイソトープの生産程度にしか利用できなかったものと思われる。そのため直後から北朝鮮は独力による原子炉の建設に邁進することになる。
原子力関連の研究施設、教育施設は平安北道に集中した。1970年代始めに北朝鮮はIRT-2000の熱出力を倍加した。1977年には熱出力は8メガワットに達するようになった。1979年、北朝鮮は熱出力25メガワットの黒鉛減速・炭酸ガス冷却炉の建設を始めた。これは1984年に完成したが英国のコールダーホール型原子炉をそっくりモデルにした� �のである。1986年に運転を開始したこの原子炉では発電も行い、電力出力は5メガワットに達した。
同年、原子力工業省が設立され、寧辺に電力出力50メガワット、寧辺北西20キロの泰川に200メガワットの原子炉の建設を開始した。北朝鮮は1974年にIAEAに加盟、1985年にはNPT(核不拡散条約)にも加盟した。またソ連から発電用原子炉を供給してもらう協定も結んでいる。核不拡散の遵守によって北朝鮮はソ連から発電用原子炉の供給を約束されたものと思われる。この時期北朝鮮は、少なくとも表面上は核兵器開発などおくびにも出さず、発電用原子炉の建設を重視していたことがわかる。しかしソ連は北朝鮮の兵器核開発に対して疑惑を抱いていた筈だ。
この体制はソ連の崩壊にはじまる一連の流れの中で大きく変化することに� �る。
原子力技術は、様々な科学技術の中でもイデオロギー的な骨組みの中に位置することが大きい技術である。多くの国家指導層ではその国家の存在に関わるものとされ、しかし大衆には強く忌避されるのも常である。核兵器の有効性については、実戦利用から有益な勝利を得られる可能性が、現状核を欲しがるタイプの国家には特に薄く、政治利用が唯一の有効利用となる。従い原子力技術もいきおい政治化されがちとなる。つまり物理的現実より観念と関係者の利害が優先される。
現在の日本の原子力産業がそうであるように、1980年代末の北朝鮮の原子力関係者も研究者、行政、現場の三者が強固に結合して互いを護っていた。とても実現不可能な輝かしい未来を喧伝し、不都合を糊塗し、狭い社会的繋がりを� �持していたが、これは当時の北朝鮮の政治的状況を考えると致し方ないものであろう。特に彼らはソ連との繋がりが強固であり、金日成独裁を脅かす可能性を常に疑われ続けてきた。
1991年にソ連が崩壊すると、北朝鮮の原子力関係者の後ろ盾は失われた。以後1993年まで政治的には冷や飯を食らう状況にあったが、原子力事業の優先順位は形式的には変化は無く、関係者は優先度の高い配給を受けることが出来た。しかし金正日体制への移行に伴う権力整理の中で、原子力関係者はほぼ丸ごと政治犯として排除されることになる。これは核兵器開発体制を確立する為のものとされるが、北朝鮮の原子力技術の中核がここで失われ、その後北朝鮮はパキスタンとの協力での核開発を模索することになる。こういった状況はそもそも金正 日らの望むところではなかったとされるが、1993年の北朝鮮の原子力開発において何があったのか、明らかになったのは最近のことである。
1993年の粛清は原子力工業省とその傘下の放射化学研究所、304研究所らの現場機関、原子力科学委員会、平北物理大学核物理学科と広範に及び、研究者や行政関係者らおよそ800人が、平安北道大舘郡に新設された政治犯収容所である第202教化所に送り込まれた。これは原子力事業全般の人民武力部と国防委員会への移管に伴う処置だった。
北朝鮮の原子力関係者の結合は、ただ単にこの移管を行政担当者の排除のみに終わらせなかった。研究者も技術者ももはや切り離せない一体のものとして扱われたのだ。
第202教化所は元は金日成の見学用のモデル農村"躍進村"だった。ここ� �千里馬運動・主体農法のモデル農場として整備されたが、主体農法で荒廃してからは農場としての機能を捨てて見学コースとしてのみ存在していた。これを政治犯収容所に転用されたのである。元来この措置は一時的なものを意図していたらしい。第202教化所は政治犯収容所としては破格の好待遇環境であり、労働も山の裏手に建設されていた核濃縮プラントを格納する地下施設の建設に関わるもので、けっして悪条件というものでは無かった。
しかし翌年金日成が死去し、北朝鮮の経済、そして食糧事情は極端に悪化してゆく。第202教化所の状況も極めて劣悪なものとなっていった。収容されていた原子力関係者たちは外部との接触を絶たれていたために、これは自分たちを処分しようとする方針があるに違いないと確信するよ� �になっていた。彼らはIAEA査察に伴って核濃縮プラントを隠匿する混乱にまぎれて、虎の子の濃縮プルトニウム5キログラムを秘匿することに成功した。彼らが第202教化所で組み立てたのはシンプルなショットガン型だったとされている。
1995年夏、第202教化所は消滅した。これは水害によるもので、大規模な地滑りによって壊滅的な被害を蒙ったとされている。この水害の原因は、収容された人々が周囲の木々を伐り過ぎたからだという。この時には放射性物質は検出されていない。
この時期の第202教化所の様子は混乱を極めたものだった。咸鏡北道の新しい政治犯収容所である第16号管理所の噂が、彼らがやはり処分されるのだという観測に火をつけた。第16号管理所は核爆発実験のトンネル労働者確保のための施設でもあり 、その環境の苛烈さは恐怖の的となった。しかし、原子力は国家にとって極めて重要で彼らが換えることの出来ない研究者、技術者、管理者であり、いずれ再び重用される時が来るという観測も存在していた。事実この時期は、IAEA査察等から彼らを隠す意図が存在していた。しかし第202教化所の内部では、この2つの見方をとる二派に分裂して抗争が始まっていた。悲観派の最右翼がクーデター派で、彼らが核爆弾製造へと突っ走ったとされるが、実際にはクーデターの手法も、その際に連係すべき軍第6、第7軍団との関係も、一切存在していなかった。彼らはあまりに狭いコミュニティに引き篭もり過ぎて、権力と関係の無い外部人脈を欠いていたのだ。楽観派はせっせと木を伐って薪の収入を得ていたという。彼らはあまりに楽観的に過 ぎていた。実際には原子力工業省は解体され、行政関係者は元の地位に戻ることなど不可能だった。研究者、技術者も隔離環境の生活になる筈だった。
1995年夏の水害で、第202教化所に生き残った者がいたかどうかは不明である。こうして北朝鮮の原子力ムラは自滅的な消滅を遂げた。5キログラムのプルトニウムの所在は不明となり、中距離弾道ミサイルの開発と連動した核弾頭開発の試みはこの時点で頓挫した。北朝鮮は寧辺の保管済み燃料棒を処理するしか高濃度核物質を手に入れるあてが無くなった。また原子力技術の中心的人員を失ったことによって、北朝鮮は10年の足踏みを余儀なくされたのである。
-----------------------------------------------------------------------------
はい、後半嘘です。現在北朝鮮の核開発は国防委員会� ��管轄下にあるものと思われますが、詳細は不明です。10年の足踏みは北朝鮮の核開発の謎の一つです。
イデオロギーの枠組みが付いてまわる種類の技術は、単なる技術や経済ではその存在を論じることができません。思想とそれに基づく広範囲な説得が必要なのですが、思想というのはえてして小規模なカルトに閉じがちなものです。多分、思想を扱う技術がまず先行して必要なのでしょう。
……来年は軽いネタにしたいと思います。まじぽか二期とか。
■ プログラミング HAL/Sと、長征本訂正箇所について -2012年1月3日(火)18時43分
スペースシャトル搭載計算機専用プログラミング言語HAL/S本こと"プログラミング HAL/S"のデータを公開いたします。以下のurlからダウンロードしてください。
プログラミング HAL/S pdf版
プログラミング HAL/S epub版
pdf版はandroid7インチタブレット等での見え方を考慮して、上下左右余白を小さく修正しました。epub版はそれでも文字が小さくて見え辛かったりする場合向けですが、図表が大きいのでこれまた見え辛かったりするかも知れません。
先日頒布いたしました同人誌"宇宙の傑作機No.17 長征二号"に、いくつかミスを見つけました。申し訳ありません。今のところ見つけた箇所は以下の通りです。
目次には"6:長征二号Fと神舟"とあるのに本文該当箇所見出しには"長征二号F"としかない。これは目次の"長征二号Fと神舟"が正しい見出しとなります。
16ページ6行目、"紅光□"は"紅光沟"です。
19ページ16行目、"□光琰"は"萧光琰"です。
33ページ図20、二段目エンジンエンジンは姿勢制御スラスターをYF-24としていますが、これはYF-23です。二段目エンジン系全部合わせてYF-24と呼ばれます。
80ページ、最近の遥感衛星打ち上げ時のフェアリングについて、最新の遥感13号打ち上げで新しい断熱被覆が使用されています。これは段付きではなく大きめのシートを継ぎ合わせたようなものになっています。
85ページ5行目、"RD-170と同時代でありを採用し"は、"RD-170と同時代であり"が正しい本文となります。
- 89ページ25行目、"ただ、この神□は非再生冷却式のノズルを持つと思われ、恐らくは固体ロケット機である。"ここに関しては、よく考えてみたのですが神龙の推進形式は実際のところ不明です。この文章は丸ごと無視してください。
■ Make:Tokyo meeting07と宇宙の傑作機新刊 -2011年12月3日(土)23時04分
Make: Tokyo meeting 07で、ガンマ線カウンタの基板を貰われて頂いた方へ:データ一式は、
にあります。HAL/S本のデータは、年明けに公開いたします。
同人誌"宇宙の傑作機No.17 長征二号"をコミックマーケット81、12月30日(二日目)東フ24b、風虎通信にて頒布いたします。
1970年代から現在まで中国の宇宙開発の主役であり続けているワークホース、長征二号とそのバリエーション、長征三号、四号、風暴、そして弾道ミサイル東風五号についての本です。バリエーション含めて計171+2機(原稿を書き終わった後に2機打ち上がった)という圧倒的な打ち上げ実績は、特に1996年以降の大改革と打ち上げ回数の増大、そして信頼性の向上によるものが大きいでしょう。本書では中国の品質保証体制や有人システムの体制も記述しています。これらを理解するためには中国の宇宙開発史を知ることも必要でしょう。本書では文化大革命と宇宙開発の深い関係についても触れています。
勿論、長征二号の構造についてもた� ��ぷりと解説しています。長征二号のタンク構造は意外なものでした。二段目の分離構造も、実はトラス構造のところで分離するんじゃ無いんですね。量産性の高いエンジン構成、アクセス性の良いマンホールも見逃せません。そして将来の代替機、長征五号らにもちょっと触れています。
--------------------------------------------------------------------------
さて、ちょいと書きそびれてしまった、中国の宇宙開発の黒歴史、1996年2月15日の大惨事に関して、西昌射場周辺の地理について説明をここでしたい。
図は、西昌射場周辺のgoogle mapより取得した上空写真である。画像取得日は2006年11月となっている。これに番号を振った。1は射点(二番射点)、2は墜落現場、3は衛星組立棟、4は新設されたと思しき住宅地、5は打ち上げ管制及び管理棟である。現在打ち上げ時はここより射点側へは立ち入り禁止となっている。実際にはちょっと先の道路上が境界である。また管理棟のとなりのビルの屋上が観望台になっていて、観光客はここで打ち上げを観る。
問題は4で、およそ80棟ほどが確認できるようだ。もしこれが1996年以降に建設されたとすれば、墜落現場にあったとされる集落の規模と一致することからみて、現在の射点作業者の住宅だと考えることが出来るだろう。
3の位置関係も見てほしい。かつては2を経由せずに移動することは出来なかったものと思われる。� ��落の破壊状況を撮影した外国人技術者は、3で作業していたものと思われる。中国側は、どうしても集落の惨状を外国人が見てしまうことを防げなかったのだ。で、後に2を経由しない道路が建設されたようだ。もしかすると現在も2を全く経由しないルートを取っているのかもしれない。2には現在、荒地と公共施設、そして公園と科学館があるのみである。
■ 放射線とコンピュータと半導体についての基礎的な諸々 #5 -2011年7月14日(木)23時09分
コンピュータシステムにおいて最も複雑で、最も問題を起こしやすいのはソフトウェアです。開発手法によっては複雑さに対する問題発生の割合をかなり低くすることができますが、バグを無くすことはできません。重要なのはバグが発生することを見越して対策することと、テストです。
ポインタを示すデータがビットエラーを起こしたとしても、例えば例外で捕捉してそこから復帰できれば良いのですし、あらかじめ問題の無いことを確認できれば良いのです。
更に小型システム向けの簡単なテクニックについて述べていきます。まずフラグとしてbool値を使うことは避けましょう。どうせアクセスは最低でもバイト単位なのです。0x00を書き込み時には偽値に、0xffを真値に割り当て、読み出しの時に8ビットの中で4ビット以 下しか立っていなければ偽値、それ以上なら真値とみなせば、なんと4ビットまでビットエラーを許容できてしまいます。ただ普通はここまでコストを掛けなくても良いでしょう。2ビット、3ビットをフラグ表現に割り当てるという手法で充分です。
割り算の分母に変数を使うのは避けたいところです。もし分母が0になったら0除算が起きます。できるだけ割り算はビットシフトに置き換えましょう。
プログラムをSRAMに展開するのは避けるべきです。フラッシュマイコンの利点は、プログラムをフラッシュメモリから直接実行できる点にあります。フラッシュメモリの耐放射線性は、例えばできるだけ定数テーブルを利用するなどして生かすことが重要です。フラッシュメモリの空き容量は復帰処理に戻るコードで埋めておきまし� �う。
その他の素子、部品についても述べておきましょう。
抵抗やコンデンサ、インダクタは材質にもよりますが、ほとんど放射線の影響を受けません。炭素皮膜抵抗、金属皮膜抵抗、積層セラミックコンデンサ等は、放射線耐性を考慮する必要はありません。
トランジスタも気になるのはトータルドーズだけで、適切に寿命を設定すれば問題なく使える筈です。FETは放射線に対して弱いのですが、まずトータルドーズ耐性に関しては定格耐圧でだいたいのところ見当がつきます。パワーMOSFET、それもn型ではラッチアップに良く似た現象が起こりますが、これはラッチではなく破壊現象です。ドレイン側の寄生ダイオードに逆電圧降伏を起こすだけの電圧が発生すれば、ソース側の寄生ダイオードを経由して電流が流れてし� �います。p型だとソース側に逆電圧が必要で、すると必要な電圧はかなり高くなるのでこの現象はあまり考える必要がありません。これも耐圧によって耐放射線性が違いますが、同時にドレイン側電圧と耐圧の差が重要になります。n型の弱さは、Hブリッジでモータドライバを組んだものを放射線環境で使うのに躊躇する原因となります。しかしMOSFETでも最近話題のSiCは原理的に放射性耐性がかなり強い筈です。
ダイオードも耐性はモノによってバラバラです。とはいえスイッチングデバイスではないので気にするのは基本的にはトータルドーズだけでしょう。
フォトカプラやフォトMOSリレーは放射線に比較的弱いため、宇宙ではあまり人気がありません。宇宙では基本絶縁は考えません。衛星ではけっきょく電源の根っこはバッ� ��リなのですから。地上で絶縁が必要な場合はパルストランスを選択しましょう。
太陽電池はガラス位でしかシールドできないので、耐放射線性は極めて重要です。ガリ砒素太陽電池は強く、変換効率も高いのですがいかんせん高価です。ですから宇宙での寿命如何では結晶シリコン太陽電池は候補に挙がります。性能は高く比較的安価なので、性能劣化を見込んでも充分使い物になります。とはいってもやっぱり高価です。
電荷結合素子であるCCDはDRAM程度の耐性を持ちますが、CMOS撮像素子の耐性はSRAMそのものです。ビットが化けます。とはいえ多少化けたからといって深刻な影響が出るようなものでも無いので、多くの場合放置されます。画像をフレームとして送り出すロジック部のほうが放射線の影響は致命的です。例えば データフレームから垂直同期信号が消えうせたら、受け手は画像を丸ごと取りこぼすでしょう。
ただ、ここで暗黙の前提としている原発災害による放射線に対しては、撮像素子の放射線耐性は考える必要はまずありません。撮像素子は鉛ブロックなどでシールドしておいて、ミラーで光路を屈曲させて外の光景を素子に届ければいいのです。放射線はミラーで反射されたりしません。厳密にはX線は電磁波なので浅い角度では反射しますが、二段屈曲で全て遮る事ができる筈です。こういう工夫は原子力工学の黎明期では当たり前のことでした。
原発災害による放射線という意味では、実のところ宇宙とは耐放射線性の考え方が随分変わってきます。核種崩壊で粒子に与えられる数MeV程度のエネルギーでは、いまどきのデバイスな� ��事実上ラッチアップを考慮する必要はありません。宇宙での陽子線は太陽フレア由来で数百MeVのエネルギーがあったりしますし、ガンマ線に至っては重力崩壊によって与えられたと思しき滅茶苦茶なエネルギーのものがあったりします。宇宙用ではこういうエネルギーに対処する必要がありましたが、地上ではその必要がありません。
逆に炉心近くの環境では、数キログレイの放射線環境に耐えるものが要求されます。地球低軌道では100グレイ程度に耐えればいいと考える事が多いのですが、従ってトータルドーズ及びアップセットは本格的な考慮が必要です。トータルドーズに関しては、性能劣化を睨みながら頻繁にボード交換を行うといった対処が地上では可能です。
そもそも地上で動くロボットには、重量制限が事実上あ りません。3mm厚のアルミなんて薄紙一枚な遮蔽ではなく充分な遮蔽が行えます。例えば核種崩壊による数MeVのガンマ線なら、50ミリの鉛、90ミリの鋼で放射線量は1/100にできます。放射線量を1/100にできれば、低軌道用の耐放射線設計でも充分使い物になります。遮蔽を有効に使うためには、素子の高密度実装による被遮蔽面積の最小化が必須となるでしょう。
しかし、放射線環境で半導体デバイスを使おうと考える前に、使わないでできないか、まず考えていただきたいと思います。モータの駆動もリレーが使えます。リレーの制御も直接ケーブルを引っ張って駆動することができます。センサの代わりに棒が使えないか、PWM制御の代わりにカムが使えないか、考える事ができるでしょう。
何を意味するディストリビューターとスパークプラグの端子に錆ありません
■ 放射線とコンピュータと半導体についての基礎的な諸々 #4 -2011年7月13日(水)21時25分
ここまでは素子の耐放射線性について述べてきました。次に設計で耐放射線性を向上する方法について述べていきます。
対策の代表例が冗長化です。
完全に同じものを並べてもフォールトトレラントシステムとして無意味です。古い冗長化フォールトトレラントシステムは、構成要素の品質にばらつきがあるか、構成要素の一部にしか故障原因が及ばないという条件下でしか想定品質を達成できません。故障が独立事象である条件は少ないのです。これが更に同じところに一箇所にまとめるとなると全くの愚の骨頂なのですが、コンピュータの耐放射線対策に限ってこれは有効です。これは放射線によるエラーが極めて微細な規模で、そのスケールでは隣のCPUはおろか隣のレジスタでさえ遠く離れていて、同時に影響を与える� �がないからです。但し、チップ内のゲートの規模で物理的に隣接する場合は別です。
CPUを複数積んで多数決を行わせるという方式は、大きく分けて、独立したコンピュータの出力を多数決する疎結合と、CPUだけを3つ並べて、メモリやI/Oは共有する密結合の二種類に分けられます。
シャトルのAP-101sは4+1の疎結合、現行世代ソユーズのTsVM-101はMIPS互換CPUを3重にしての密結合です。ただAP-101のそれは放射線対策ではなく、開発されたのがまだ"トランジスタが寿命で壊れる"時代だったからです。冗長計算機の歴史を眺めると、この素子レベル寿命の短さを前提としたものが多く存在しています。今時の品質の揃ったコンピュータを冗長化しても、通常、コンピュータに問題を起こす原因は冗長系全てに等しく降りかかるので、その冗� �系とやらは全滅するのが通常です。原因が放射線でなければ。
疎結合と密結合だと、疎結合のほうがコンピュータが独立している分同期が難しく同期周期も遅くなり、異常を起こした計算機のクラスタへの復帰にも時間がかかります。ただ同期バスとプロトコルの工夫で冗長化できるため、比較的安価で構成が柔軟にでき、ハードウェアの信頼性も上がります。
密結合は同期速度を高速にでき、ソフトウェアに頼らない信頼性を提供できます。疎結合計算機では多くの場合ソフトウェアにバグがあると終わりです。しかし一方で密結合計算機のCPUエラーの検出とリセット、復帰は実現しようとすると結構面倒くさい処理です。
CPUを複数構成にせず、CPU内部でフリップフロップ単位やレジスタ単位で冗長化できれば面倒は何一 つ不要となりベストです。FPGAならこれが可能です。耐放射線用として売っているFPGAなら、開発環境のほうで三重多数決冗長を自動付与する機能がメーカで用意されていますので、これを使えば簡単に耐放射線性を与える事ができます。
CPUのソフトコアとして宇宙業界でよく見るのはSPARCです。これはフリーIP(LEON-3)があるからという理由だけでの選択です。FPGA内にハードIPとしてCPUが搭載されている場合がありますが、これには三重多数決冗長などを付与することは出来ないことに注意しましょう。Vertex-II ProのハードIPのCPUは使われることがありますが、これはSOIプロセスによる耐性に期待しているからです。
放射線対策の次の代表例が誤り訂正です。
DRAMや高速SRAMのECC用メモリは64ビットに対して8ビット程度の誤り訂正符号の格納メモリを用意していますが、これではどうやっても64ビット中1ビットまでしか誤り訂正できません。(考えてみてください。誤り訂正に必要な情報が得られたとします。誤ったビットの反転したものが正しいビットなのですから、必要なのはそのビットの位置です。すると64ビット中の位置を特定するためには5ビット必要です。2つ分の情報には10ビット必要になります)
強度の高い放射線環境では、ずっと強い誤り訂正能力が必要です。
アップセットでは普通、通信エラーのようなバーストエラー は考慮しなくてもいいでしょう。しかしSRAMは別です。マルチビットエラーはECCの保護範囲を超えます。SRAMでマルチビットエラーに対処するには、複数の物理デバイスを利用する事が有効です。FPGAなら、各ビット毎に割り当てるSRAMブロックを変えましょう。
誤り訂正符号を長くすれば誤り訂正ビット数が増え、強くなりますが、メモリ巡回をおこなって頻繁に誤り訂正を行えば同様の結果が得られます。これは運用環境での放射線強度と共によく考慮すべきでしょう。
また誤り訂正符号方式も何を採用するか、考えるべきです。リードソロモン符号化はバーストエラーに対処できますから通信システムによく採用されますが、コンピュータ内でバーストエラーに対処する必要があるか、ちょっと考えてみるべきでしょう。ロジッ� ��規模が小さく動作速度を高速化できる巡回ハミング符号やBCH符号を使うべきです。
そして結局、多数決冗長も誤り訂正も、確率的な対処です。三重多数決も、うち2つが同時に同じエラーを発生させる可能性までは除去しません。その可能性が低いことに依存した手法に過ぎません。五重にすると多数決回路のゲート遅延が大変です。わずかな可能性でも絶対に誤りが許せないものには、素子レベルの耐放射線性が必要です。
■ 放射線とコンピュータと半導体についての基礎的な諸々 #3 -2011年7月12日(火)21時02分
完全空乏SOIプロセスで作られたSRAMは耐放射線性を備えます。同様に完全空乏SOIプロセスCPUの中のSRAMも普通、耐放射線性を持つものと思われます。従来これらは高価かハイパフォーマンスに過ぎて、宇宙開発業界からは手を出しにくいものでした。しかしFPGAを使うコンピュータが現れるようになり、状況が変わりました。
長いこと宇宙業界で人気があったのはxilinx社のVertex-II Proですが、これは恐らく内蔵したPowrPC405e CPUコアがIBMの1.3umSOIプロセスに依存していた事が理由でしょう。ですから台湾UMCの1.3umバルクプロセスに製造を移した廉価版では耐放射線性に疑問が付くことになります。またCPUコアを持たないバージョンも耐性を持たないでしょう。NASAは極めて放射線環境の厳しい深宇宙ミッションにVertex-II Proを使いました。
Vertex-4以降のSOIプロセスを使った最新のXilinx FPGAも好まれます。ただしアップセットは低頻度ながらやっぱり起きるために、使用者は対策が必要です。残念ながらVertex-7などの28nmプロセス製品はTSMCのHigh-kプロセスでの製造となりSOIではなくなるようです。14nmプロセスではTMSCはFinFETプロセスを採用する可能性がありますので、その時には再び耐放射線性が期待できるようになるでしょう。
Actel社のアンチヒューズFPGAは昔から宇宙開発業界で多用されたFPGAでしたが、フラッシュFPGAも人気があります。フラッシュメモリは書き換え電圧が高いためゲート酸化膜が厚く、トータルドーズ耐性があります。高い書き換え電圧は、ビットを書き換えるのに大きなパワーが必要だという事でもあります。SRAM FPGAもフラッシュFPGAも結局ルックアップテーブルの構造の話であり、ロジックセルのゲート単体であればSOIを使ったほうがラッチアップもアップセットも耐性が上です。しかしSRAM FPGAのルックアップテーブルと比べるとフラッシュFPGAのルックアップテーブルの耐性は大きく、この部分の破壊を気にする必要は事実上ありません。耐圧が高いのでラッチアップ耐性も高くなります。そしてゲートのアップセットに対しては、後述しますがFPGAの場合、ロジックを工夫することで対処が可能です。
フラッシュ混載CPUはそのフラッシュ書き換えのために16Vという過去のデバイスより遥かに高い内部耐圧を持っています。つまりラッチアップに対して強い耐性があります。フラッシュマイコンの中でも50MHzとか70MHzとか妙に低速でしか使えないタイプのマイコンは恐らくロジック部の耐圧も高いと思われます。最近のフラッシュ混載CPUは、内部電圧をフラッシュとCPUで分けてCPUのクロックを上げたり、High-KでCPUのクロックを� �げたりしたものがあるようですが、前者はハズレ、後者はアタリですね。
コンピュータはCPUだけでは作れません。メモリはどうでしょうか。先に述べたようにSRAMはきわめて脆弱です。あまりに弱すぎるので、放射線一発で複数のビットが反転するマルチビットのアップセットが発生することがあります。こういうエラーは発生アドレスに規則性が見えますから、物理的な位置関係を推測するとマルチビットエラーであることがわかったりします。
これがDRAMになると変わって来ます。DRAMの値を持っているのはコンデンサの容量で、これは微細化で容量が減っても、放射線の飛跡に発生する電荷に比べればまだ充分に大きいのです。SRAMに比べてビット当たり基本4桁アップセット耐性が違います。また最近のデバイスの微細化はHigh- Kが一緒についてきますから、トータルドーズ耐性が向上しています。
MRAMなら完璧です。磁気記憶素子であるMRAMは、読み書き用のアンプのトータルドーズくらいしか心配する要素がありません。FeRAM等も見所があります。
PROMは放射線でビットが変わることはありません。EPROM、EEPROMだと変わる可能性がありますが、その可能性は極めて低いものです。フラッシュメモリも放射線にはきわめて強いです。最新のものであるほど絶縁膜が薄くなるのでトータルドーズ耐性が落ちますが、それでも耐性は桁違いです。絶縁膜にHigh-k材を使うようになれば耐性向上が予想されます。
ただ、SSDやSDカードのようなストレージパッケージとなると耐放射線性はかなり悪化します。コントローラICが弱いのです。普通コントローラには先進プ� ��セスなど使ったりしません。ですからフラッシュメモリを使う際は、生のフラッシュメモリを使用することになるでしょう。その場合、放射線以外の原因による、フラッシュメモリのリードエラーの多さに自力で対処しなければいけません。フラッシュメモリは、放射線が無くても、ナチュラルにリード/ライトエラーを多発します。
I/OコントローラもプロセッサやFPGAと比べると数段遅れた製造プロセスを使うのが普通です。パソコンを放射線環境で使おうとするとき、最も問題になるのがサウスブリッジなどのI/Oコントローラでしょう。パソコンの放射線に対する弱さの原因はここにあります。ハードディスクやSSDのコントローラも脆弱です。
■ 放射線とコンピュータと半導体についての基礎的な諸々 #2 -2011年7月11日(月)21時28分
以上を踏まえてマイコン達を眺めてみましょう。世の中にはTTLマイコンなんてものはありませんでした。いやありましたけどメジャーなのは2901くらいですし。あとはみんなMOSでした。最初はNMOSかHMOS、そうして全てがCMOSに移行したのです。NMOSやHMOSの耐放射線性は論外といってよい水準のものでした。
宇宙でZ80を使った例というのを私は知りません。選ぶ理由がありませんでした。昔はTTLディスクリートのCPUが使われましたし、今ならC言語が使える8051がインテルの無償ライセンスで使い放題なのです。アメリカでは放射線に強いサファイア基板でいっぱい作ったからという理由でCDP1802(COSMAC)が多用された時代がありました。アメリカのコンサバな衛星は古くはディスクリートで作られたNSSC-1、その後MIL-STD-1750A規格コンピュータに移 行します。フラッシュマイコンでレジスタが少なくシンプルなPICは耐放射線性で評価される時もあります。Atmelは耐放射線性デバイスを作っているくせに自社のAVRマイコンをラインナップに加えない点を見ると、AVRは耐放射線性に難があるのかも知れません。
2000年代前半辺りまで、CMOSデバイスはプロセス微細化のたびに放射線に弱くなっていました。同時に放射線が影響を与える素子当たりのターゲット面積も減っていますが、素子数が増えているので結局全体で見ると弱くなっています。90年代後半からはこれに加えて駆動電圧の低下が問題となり始めます。CPUの場合、キャッシュメモリが耐放射線性のアキレス腱となりました。
耐放射線性のあるハイパフォーマンスコンピュータというのは長いこと開発が難しい存在でした� �SRAMでできたキャッシュメモリはひどく放射線に弱く、簡単にアップセットを起こしてしまいます。SRAMとはすなわち1ビット当たり6個のトランジスタを意味します。高性能CPUではキャッシュメモリや内蔵スクラッチメモリの大きさは物理的に巨大なものになります。そしてRISC CPUのキャッシュメモリの使用を停止すると、それはひどく遅い代物になってしまいました。
実質、前世紀において先端的なデバイスの耐放射線性は無きに等しかったのです。
これは今世紀になって変化します。まずSOIプロセスの実用化です。SOI(silicon-on-insulator)プロセスの採用はサファイア基板に準じた耐放射線性を素子に与え、ラッチアップとアップセット耐性を大幅に向上させました。SOIには完全空乏型と部分空乏型があり、部分空乏型はゲート下に空乏層でない部分が残っているため、放射線が電界を作ってしまうとそれでアップセット動作を起こしやすく耐放射線性に劣ります。完全空乏型はP型基板の上にSOIが全体を覆い、n型の下にP型が無く、寄生ダイオードを作れないため、極めて高いラッチアップ耐性を持ち、飛跡� ��電荷を収集できる領域が狭くなり、更にn型とp型の両方を貫通するような放射線の飛び込む可能性も少なくなるため、アップセットにも大幅な耐性向上が見込めます。
IBMとAMDはSOIプロセスを採用しました。AMDは当初部分空乏型を採用しました。IBMは完全空乏型、IBMの技術の入ったPS3のCPU、Cellも90nm,65nm,45nm全てのプロセスで完全空乏型SOIだと思われます。同様にマイクロソフトのXBOX360のCPUがIBMの90nmおよび65nm完全空乏SOIプロセス、最新型ではCPU+GPU統合チップが45nmSOIプロセスです。任天堂WiiのCPUもIBMの90nm完全空乏SOIプロセスによるものです。
そしてHigh-k絶縁膜によってCMOSデバイスのトータルドーズ耐性はきわめて強くなりました。IntelのプロセッサだとPentium4とCoreシリーズの境が変化の分水嶺です。
High-Kはインテルのプロセッ サにとって、漏れ電流を少なくするための切り札でした。絶縁膜を厚くすればトータルドーズ耐性が向上し、漏れ電流も少なくなりますが、スイッチング電圧が高くなります。High-K絶縁膜は、膜厚を保ちながらゲート電圧を低くしても、同等の電界を作り出せます。つまるところ絶縁膜を厚くできるのでトータルドーズ耐性が向上しました。
将来Intelが採用すると見られる三次元構造はいわゆるFinFETで、電極にはさまれたフィン構造のシリコンを完全に空乏層にでき、耐放射線性がSOI並みに見込めるものと思われます。
■ 放射線とコンピュータと半導体についての基礎的な諸々 #1 -2011年7月10日(日)23時00分
以下は海外の本や論文、公開情報を漁れば全て出てくる話です。アマゾンで耐放射線性半導体に関する本も色々買えますし、ネットで読める論文も沢山あります。私は宇宙屋やっていますが、実のところ基礎は独学です。業務上知りえた情報とそれに近いものは削っています。特に半導体のデバイス特定に関する情報は、海外の公開されている情報以外は、えーとアレなんでアレですとしか言えません。
まず、"昔のCPUは配線が太いから放射線に強く、現在のCPUはひたすら弱い"なんてことは全くありません。最新のCPUの中には放射線に強いものも相当数あり、恐らく将来はさらに強くなります。現在最も強い民生CPUはゲーム機のものでしょう。
放射線は大きく分けて、X線やガンマ線のような電磁波と、電子や水素原子核(アルフ� ��線)、ヘリウム原子核などの粒子に分類できます。まぁ電磁波も光子と考えれば全部粒子です。
うち、エネルギーが小さい粒子は薄いアルミ板で防げたりします。アルミで3ミリもあるとぜんぜん防げます。しかし高いエネルギーを持った重い粒子はガンガン貫通してきます。ガンマ線もガンガン透過します。コンピュータの敵は重粒子とガンマ線です。
放射線の影響は累積的に性能をゆっくり劣化させるトータルドーズと、一撃でおかしなことになるシングルイベントに分類され、更にシングルイベントは素子の全てのスイッチがONになるラッチアップと、一つだけが切り替わるアップセットに分類されます。
現実には、起こる現象、考慮すべき現象はほぼ1つ、粒子の飛跡に発生する電荷です。物質内部を通るとき、荷電粒 子は周囲を電離しながらエネルギーを失ってゆきます。この電離で発生した電荷が半導体の動作に悪さをします。ガンマ線やX線は光電効果やコンプトン効果で電荷を物質内部に生み出します。
勿論他の現象も起きます。原子核への粒子衝突ではそこから再び粒子の飛散が起こり、ひどい時には相手原子を放射性同位元素にしちゃったりもしますが、確率は低いし放射化するような事態になったらコンピュータの動作どころではありません。
トータルドーズは一般には、ゲート酸化膜の劣化によって起こります。ダイオードやトランジスタのような接合型素子にはゲート酸化膜が無いため、トータルドーズ耐性は強いです。勿論強い放射線に晒されれば、どんな素子でも放射線による出鱈目なイオン注入によって、半導体としての� ��能を徐々に失う、つまりトータルドーズに至ります。
接合型素子は半導体にゲートから直接電荷が注入されます。動作は電荷量、つまり電流によって制御されます。FETは電界効果で動く、電圧スイッチング素子です。うちMOS素子はゲートと半導体は酸化膜で絶縁され、その絶縁を超えてゲート電位が電界効果を介して半導体の電荷に力を及ぼします。つまり必要なのは電圧です。電流の多寡は基本的には動作に影響しません。ただ、古いCMOSは配線が太くゲート容量が大きく、動作にはそれなりの電流が必要でした。
酸化膜が放射線によって電離すると、導体でないので出来た空孔がそこに固定されます。空孔によってスイッチングに係らず最初から弱い電界が発生する事になるので、漏れ電流やゲート電圧のスレッショルド低� �といった性能低下が起きます。
放射線はその飛跡にそって電離を起こし、電位差を作ります。簡単に言うとその電位差がゲート電圧を越えるとアップセット、更に定格電圧を超えるとラッチアップです。実際には放射線の飛跡はn型半導体とp型半導体にまたがっていないといけません。
CMOSはMOS素子をプッシュプル構成にしたデバイスです。ラッチアップはこのプッシュプル構成に、寄生的にサイリスタやトランジスタが生じてラッチを作ってしまう現象です。ラッチなので電流が流れている間は永続的に状態を保持します。このラッチアップでプッシュプル構成が双方同時にスイッチングしてしまうと、VccからGNDまで電流が貫通してしまい、最終的には電流による発熱で素子を破壊します。しかしラッチアップが起きたらすぐに� ��源を落としてラッチを解除し、素子が破壊する前にゲート電圧をゼロにした上で戻せば素子の機能は復活します。
代替燃料源は、電源、任意のエンジンを作成するために使用できる
ラッチアップはCMOSデバイスにしか存在しません。電気屋なら知っての通り、ラッチアップは放射線以外でも、定格耐圧以上の電圧がかかれば起こります。放射線によるラッチアップのいやな点は、通常のラッチアップ対策、例えば保護回路で定格電圧以上がかからなくする、といった対策が無駄な点です。定格耐圧以上の高電圧は、放射線によってデバイス内で発生するのです。逆に言えば定格耐圧以上、すなわち寄生ダイオードに逆電圧降伏を起こさせるだけの電荷を発生させるエネルギーが放射線には必要です。
アップセットはディジタルデバイスのビットを反転させてしまいます。放射線によって生まれた電荷の� �位がドレインに移動し、接続した素子のゲート電界を作ります。もしこれが一定値以上ならその素子はスイッチングしてしまうでしょう。このスイッチングがフリップフロップで起これば、フリップフロップの保持する値を書き換えてしまいます。もしこの値がコンピュータの内部動作を制御するカウンタやフラグならばコンピュータは異常動作します。プログラムカウンタやアキュムレータだったなら、ソフトウェアが異常動作します。データが1ビット狂っても大事にはなりませんが、アドレスのビットが狂うと多くの場合コンピュータの動作は悲惨なことになります。
■ ガンマ線カウンタの製作#3 -2011年5月11日(水)00時45分
とりあえず4台ばかり仕上げてみた。キャプテンスタッグのマントルM-7911を線源にして動作は確認できた。
2個と4個で、VBPW43Sを並列にしたものを試したが、極端にノイズが増えてしまった。感じでは逆バイアス電圧が大幅に低下したのと等価な現象が起きたようだ。並列化は続けて試したい。ブザーは一台に付けたが、デモには良いが実用には無用に思える。
一台、10000秒で計測を打ち切るバージョンを作って数回動かしたが、30〜40カウントという程度で、これが環境放射線を拾えているとすると、VBPW43Sを1個使うこのバージョンは1分間の計測で実質10uSV/h程度の分解能しか得られないことになる。
ただ、これで気軽に携帯して使用できるようになった。8桁2行のキャラクタLCDの上行に、リアルタイムのカウントと1分間のカ� �ント数、下桁に上記計測から大体のところ求めた、mSV/hの参考値を小数点下2桁、上3桁表示する。こんなもので線量当量が求められるというのは詐欺のような気がするが、放射線計測協会に持ち込んで校正すれば、線量当量で表示するお墨付きがつくらしい。
■ ガンマ線カウンタの製作#2 -2011年4月28日(木)20時57分
電源ラインにいつものおまじないこと、村田のチップインダクタ、BLM21PG331SNを挿入してやると、ランダムなパルスがみえるようになった。パルス数は思ったより多いかも知れない。どうやら乾電池駆動で大丈夫なようだ。ジャンパは更に増えた。回路図はこちら。プログラムはまだ複数桁の出力まで至っていない。
現在動作するものが二台あるが、一台にブザー出力をつけようと思う。さて感度だが、地上でのガンマ線の粒子フルエンスレートがわかれば、どれだけイベントを捕捉出来ているのか阻止能にあたる係数が求められるので、この装置はガンマ線粒子フルエンスメータにはなるはずである。さらに簡易的には吸収線量相当値が、更には線量等量相当値が出せる筈だが、そこらへんはまだ不明である。
■ ガンマ線カウンタの製作#1 -2011年4月26日(火)19時27分
PiNフォトダイオードを用いたガンマ線カウンタを製作した。写真はフォトダイオード上に絶縁用ポリイミドテープとアルミテープをまだ貼っていないものだが、動作検証ではアルミテープを貼って光が入らないようにしている。回路図はこのようになる。
使用したダイオードはVishay Semiconductors社製VBPW34S、センサ面積は7.5mm2程度しかないが、現状リアルタイムで入手可能なものでは最も大きなものではないかと思われる。
増幅回路はMAXIM社のアプリケーションノートAN2236を参考にした。というかそのままである。ここで使用したOPアンプMAX4477は、VBPW34Sと一緒にMouser Electronicsで購入した。
ダイオード用の逆バイアス電圧は秋月で買えるMAX662を使った。今回この回路では電池動作を狙ってL6920DBを使ったが、現在このスイッチングノイズが混入してガンマ線によるパルスが観測できない。直接5Vを与えると、平均毎分1回程度、バックグラウンド放射線によるものと思しきパルスを観測できた。センサ面積からするとそういう頻度になる筈なのだが、やはり感度は低い。
本回路では、AN2236の最終段のコンパレータと可変しきい電圧部をまとめて、PICマイコンに入れて代わりとしている。PIC16F1823は、最近秋月に入荷するようになった8ピンPIC12F1822の14ピン版である。このシリーズはDACとコンパレータを内蔵し、内部で組み合わせて使うことが出来る。出力はキャラクタLCDとブザーを想定した。
残念� �がら回路設計とアートワークでミスして、ジャンパを二本飛ばす必要があるし、当初想定していたケースには入らなかったし、電源コネクタの位置が微妙だったし、ブザーとL6920DBが干渉するしでひどい有様である。そしてやはり低感度だ。プログラムはまだ書きかけだが、ハードウェアがこんな具合なので気分がいまいち乗らない。
次世代機では、電源を006P 9V電池から採り、L6920DBとMAX662を省くと同時に3端子レギュレータで5Vを生成するようにして、更にVBPW34Sを7〜10個並列に並べたいと考えている。ダイオードを並列に並べるのは、電気屋の習性として抵抗があるが、理屈では問題ない筈だ。現行基板は作りすぎたので、どうしようか思案中だが、USBシリアルに接続してPCで読めるようにはしようと考えている。動作チェック用の線源をどうするか、校正はどうするかも悩みどころだ。
■ 非電源ソーシャルシステム -2011年4月2日(土)07時43分
非電源ソーシャルシステムという思いつきは、考えれば考えるほど非常時において有益であるように思えます。
まず単純な提案として、このようなものを事前に用意して、車に積んでおくというのはどうでしょうか。非常時にグローブボックスから引っ張り出して、自分の車のダッシュボードの上に掲示するのです。
自宅の地名と何人受け入れ可能かを書いた紙。単純ですが事前に準備をしておくことで、非常時に他人を車を乗せてやるような行動がスムーズに行えるようになります。
同様に、臨時宿泊所として1人受け入れ可能であるとか、トイレを開放しているだとか、携帯の充電器の用意があるとか、そういう紙も用意しておきたいものです。その時支援を用意できなければ貼らなければ良いだけです。それと道に不 案内な歩行帰宅者のために、ここは何処であるか、地図を用意しておいて近所に張り出すのも良いでしょう。自警団巡回中、と書いた紙を用意するのも良いかもしれません。
地域社会で組織した集団で、道路の被害状況を手分けして調べて、そうして得た情報を統合して手早く通行可能な道路状況図を作る、というのも可能でしょう。自宅近辺の歩いて調べられる範囲の情報を互いに統合するのです。
今回の震災では国土交通省の働きは迅速で、通行禁止道路の情報は震災数日後には大体出揃ったのですが、更に速く出来るならそれは明らかに望ましいでしょう。
これは停電状況でも出来るように、各人があらかじめ同じ白地図を持って準備して、調べた情報を互いに自分の地図に書き加えていけるよう落ち合う方法を予め� ��めておくのがいいでしょう。最終的には全員が完璧な地図を手に入れられるようにするのが目標です。そうして得られた情報は自治体や国に提供したり、周囲に提供したり、道路通行者に提供したりできます。
こういう組織は、平常時にインターネット上のソーシャルサービスなどで事前に組織するのが望ましいでしょう。考えてみれば、停電時に動く組織を作るのにも電源を使わないというのは馬鹿げた話です。電源と通信網があれば勿論情報の統合はそれを使えば良い訳です。
マスコミが被災地の中でも最も悲惨な土地、そして原発しか報道しなかったため、広い震災地域の多くが報道されず、誰にも知られず、最低限の公的支援以外の誰の助けも得られない状況が生まれました。これは打破されるべきです。全国のお茶の 間に広く知らしめる必要までは無いのです。ただ、助けようとする人たちまでは状況を知らせる仕組みが必要です。
例えば非常時に、充分な準備を施した数人を、報道のための記者として被災地に送り込む仕組みがあっても良いでしょう。被災地をしらみつぶしに録画し、プライバシーや防犯に配慮した加工を施した上で、片っ端から動画サイトに上げていくような仕組みがあると、例えば友人の住んでいる場所は無事だったのだろうか、去年訪れた親切な主人のいた宿はどうなっているだろうか、そういう個人の関心を受け止める場として機能するでしょう。個人的関心は強い具体的行動を生みます。また被災しなかったという情報も重要です。これらをきちんと提供できれば、被災地支援は更に有効に行えるでしょう。
そし� �考えてみれば、こういう組織化と準備は、なにも非常時のためにだけでなく、常時においても役立つ仕組みを実現できるでしょう。今のいわゆるソーシャルネットワークは、あまりにもウェブに密着し過ぎています。しかしそもそもソーシャルネットワークの実態は人間の関係性です。人間関係の構築手段がウェブの外にはみ出していてもそれは全く不都合では無いはずです。
ムラ社会の人間関係とは違う、居心地の良い、調整可能な有益な地域人間関係を作るために、ウェブサービスを使うことが出来るかも知れません。
-----------------------------------------------------------------------------
そしてまた考えてみれば、原発のライフサイクル全体でのハードウェアコストそのものは、実のところ問題ではないのではないかと思えてきま� ��た。脱原発しようが原発推進しようが、総コストは大して変化が無いのです。だったら原発推進して原発そのものにできるだけコスト負担をさせるという考え方はアリです。
結局原発は存在するのですから、高レベル放射性廃棄物処分場といったババ札は既に日本人の手札の中に配られているのです。何をどう反対しようがどこかがババを引くのです。まぁ、今だから言う訳ですが、高レベル放射性廃棄物処分場など、どうやっても臨界なんてしないのですから、運転中の原発に比べれば遥かに安全な筈なのです。
今後我々は、電力のコストの高さを強く感じ続ける事になるでしょう。
問題は、ハードウェアの安全性やコストではなく、人間側のシステム安全性と教育コストです。今回、東電、保安院、原子力安全委員会� �、この三者が揃って有効に機能せず、最後には官邸が直接監督し官房長官がいちいち状況を説明する羽目になった訳で、それは人間によるシステムが崩壊していたことを意味します。われわれは既に年金問題で政府組織、システムの崩壊を眼にしていた筈だったのですが、他の組織のチェックを怠っていました。現在、政府組織のどの程度が、既に崩壊し、役立たずになっているのでしょうか。私は日銀がそうではないかという嫌な予想をしています。
それと今回、福島第一が国民にどれだけの苦痛と恐怖を撒き散らしたか、それに対して経済性は答えになるのか、考えてみれば実のところ答えは明白である気がします。経済性は痛み止めどころか気休め薬にもなりはしません。
核の恐怖は大半は知識の無さによる無根拠なもの� ��す。この恐怖を宥めるのは教育によってしかありません。特にリスクとハザード、確率の考え方の教育が先行して行われなければいけません。原発推進派は義務教育の中にこれらを突っ込むべきだったのです。しかし現実には、彼らは教育を受けた世代が多数派になるまで待ったりはしませんでした。ただ安全を連呼したのです。原発推進派にとって教育は現実的な解法ではありませんでしたが、一度恐怖がばら撒かれた後では、恐怖への対処は教育しかありません。つまり原発推進派好みの現実的な解法など無いのです。恐怖は経済に勝るでしょう。
政府のヒューマンシステムの改善は絶対にやらなくてはいけません。しかし一方どのくらい教育コストは見込めばいいのか、今回苦痛と恐怖を受けた人たちへの説明と教育を満足に� ��えるのか、有意味な成果を出せるのか、疑問であると思います。
それに対して原発反対派は選挙で、原発賛成派と思われる候補者をよってたかって血祭りに挙げることができます。恐怖が彼らを動かすとき、彼らはどんな残忍な手段でも取りますし、原発の恐怖と比較してそれが許されると考えます。選挙は明らかに原発反対派に有利です。そして政治の場が原発反対派で占められれば、最後に法と政策で原発は廃絶へと追い込まれるでしょう。但しババ札は既に配られています。何をどう決議しようが恐怖は消えません。政治の場は、それはもう酷いことになるでしょう。恐怖が政治を動かすとき、最善の解決は望めないでしょう。
解決策は、恐怖の制御だと私は考えます。ホラー映画を見れば分かるとおり、我々は恐怖の制 御が可能です。ホラー映画の製作者は、視聴者の恐怖を操ることができます。
恐怖を、身の回りにあるものに変えましょう。実際のところ、核は常に我々のそばにあったのです。何も隠さず、福島の現実を伝え続けることが重要です。核施設の情報を広めましょう。恐怖の仕組みを説明しましょう。馬鹿な話ですが、たぶん新種のホラーファンが誕生するものと予想します。彼らは自発的に学ぶでしょう。そして、きちんと対策された恐怖は、やがて恐怖としては陳腐化してゆくでしょう。
■ 今年のエイプリルフールは閉鎖されました。 -2011年3月31日(木)23時05分
今年はエイプリルフールネタは無しです。いや、ガンマ線天文台衛星で地上観測とか思いついたけど、あまり笑い話になりそうも無いのでやめました。というか、マジネタとして有りかも知れません。福島第一は残念ながら今後ずっと、ずっと、我々の重いくびきとして存在し続けます。
3.11は日本にドラスティックな変化を否応無しにもたらすでしょう。
まず我々は、電力がどれほど強力な権力であるかを思い知りました。計画停電と節電に何もかも否応無しに従わせる、これが権力でなくて何でしょうか。我々には他の選択肢は全く無いのです。
大企業にとっては、これは気も狂わんばかりの事実でしょう。代替選択肢は今彼らの至上命題です。自家発電需要は巨大なものになるでしょう。また、複数の電力会社からの 多系統融通も実現するでしょう。電力会社の権力は今夏をピークに急速に弱まる筈です。
東日本に新たに建設される、または再建される工場は全て、電力が最優先インフラになるでしょう。太陽光発電と大容量蓄電が環境のためでなく自衛のために最優先で考慮されるでしょうが、高コストであるため、例えば工業団地等で揚水発電などを準備できればモテモテでしょう。また交通の便も、利便と共に災害リスクも考慮されるようになるでしょう。というか、これまで大して考慮していなかったのがおかしいのです。
地盤改良されていない埋立地は無価値となりました。地盤改良は共同溝と並んで今後産業として伸びることが予想されます。見えにくい効果ですが、共同溝は阪神淡路の事例と同様に、今回もその強さを証明しま� �た。安価なプレキャスト共同溝の開発と普及が望まれます。そして今後、電柱の無い事が地震に強いことの単純な指標と見なされるようになるでしょう。
大企業では、直流配電による省電力化が本格的な検討対象になるでしょう。長期的には、直流配電は太陽光発電と蓄電装置の普及と歩調をあわせて、ゆるやかに普及する事になるでしょう。
中小企業にとっても、電力の代替選択肢は喉から手が出るほど欲しいものです。停電している、また節電で暗い他の店舗に対して、自力調達電力で明るく照明された店舗は大きな競争力です。意味の無い自粛意識による節電圧力に対しては、自力調達電力であることをアピールすることが重要です。ただ、都市部ではそういう電力は得にくいでしょう。郊外ならそういう電源を設置する� ��裕があります。郊外型店舗では、太陽電池や風力といったアピールしやすい電源が大いにもてはやされることになります。つまるところ、商業中心の郊外移転は特に関東一円で急速に進むことになります。
個人レベルでは、電力の代替選択肢は裕福でなければ得られない状況が当分続くでしょう。しかし、電力自由化の議論は今後急速に進みます。特に自家発電所を備えた大企業の余剰電力売電が、個人レベルに届く日が10年以内に訪れると予測します。スマートグリッドはマルチグリッドとして実現するでしょう。
それまでは、節電と、電力以外の選択肢、例えばガスへの移行などが取りうる手段となります。節電は常に有効な手段です。お金は貸し借り、貯蓄ができますが、電力を貯蓄するのは難しいので、節電のための買� ��替えは大抵の場合有利な投資となります。LED照明への移行は今後急速に進むでしょう。照明の人感センサによる自動節電も普及するでしょう。
福島第一は、一ヶ月で安全に消滅したりはしません。少なくとも半世紀は福島浜通りの北半分を荒廃のままに放置させることになる筈です。それはずっと、我々の重荷となるのです。
この地を取り戻すための行動を始めなければなりません。それは長い戦いになるでしょう。最初に必要になるのは知識です。原子力と放射線に関する基礎知識は広く国民に共有されなければなりません。風評被害を無くすにはそれしかありません。また行動にもそれは必要です。
まず、安価な放射線測定器が必要です。また、これらの、特にCPM以上の意味のある値を出す放射線測定器の、取り扱い� �関する資格を簡単なもので良いから新設する事が望ましいでしょう。教育が風評被害に対する最大の武器なのですから、最初から発生源に対処すべきです。
放射線測定器そのものは安価に製造可能です。フォトダイオードを使ったガンマ線カウンタなら個人でも簡単に作れます。簡単な校正をすればフルエンスレートくらいは計れます。MOSFETをつかった線量計も安価に製造可能だと考えます。目に見えない恐怖を目に見えるリスクに変えるために、安価な測定器の普及が必要なのです。
短期的には、衛星技術を使った完全自立な小型モニタに需要があるでしょう。キューブサットが作れるなら製造可能なものです。原発周辺に放置して各種モニタリングをおこなうのに最適です。宇宙技術を用いた耐放射線性機器は原発で今後需� ��が見込めます。原発周辺作業は今後どうしてもロボットに置き換えていく必要がありますが、耐放射線性機器はその基礎となります。
また、荒廃が予想される周辺地域のメンテナンスにもロボットが使われる事が予想されます。こういった地域でも最低限のインフラが維持されなければなりません。極限環境では無い屋外の無人地域で動作するロボットの需要が日本でも確実に生まれます。
西オーストラリア州の気候は何ですか
実際には、福島で需要が確実に出るのは、自動車の車内空気取り入れ口にダストフィルターを設置する改造、簡易な車両除洗設備(排水を捨てずにタンクに溜める以外は洗車場と同じ)、エアシャワーでしょう。これらは放射線測定器の普及と共に、当分の間需要が伸びる筈です。
脱原発は、福島第一のもたらした被害と今後のコストが確定すると共に、これも確定するでしょう。結局経済が全てを決定するのです。原発新設は無し、既存原発はある基準を満たしたものだけを運転続行するというものになると予想します。
現実的な代替選択肢は、地熱発電です。巨大な潜在エネルギーと安定した出力の望める地熱発電は、原発程度なら充分に 置換可能な潜在力を持っています。
しかし現在、日本では地熱発電は普及していません。理由は主に3つ、国立公園、国定公園の外に望ましい立地が少ない、その数少ない立地条件のほぼ全てが温泉隣接地にあたり、温泉側が泉源が枯れる可能性などを理由に反対する、そしてほぼ無感の群発地震が多発します。
2008年に嬬恋村で持ち上がった地熱発電所建設構想は、隣接する草津温泉の反対によって頓挫しました。草津温泉側は地熱発電所によって確実に泉源が枯れるものとみなしていましたが、現実には国内では地熱発電所隣接の温泉で、地熱発電所によって湧出量が変化したと思われる事例は存在しません(人によっては存在するという場合もありますが、自前の使用による枯渇分をカウントしているだけだと思われます)。そ� ��でも、地熱発電所によって泉源が枯れる可能性というものは、絶対に無いとは言い切れない訳です。
温泉は熱水還元などしていないのですから基本的に枯渇する傾向があり、他人のことは言えない筈なのですがメシのタネなので必死に反対します。建設反対の立場には、通常リスクの概念が欠落しています、そのため、絶対に無いとは言い切れないことは、彼らにとってリスクではなく恐怖を意味するのです。リスクの概念を持たない相手にリスクを語るのは、恐怖を煽るのと同じです。
地熱発電には様々な種類がありますが、基本的には温泉の泉源より遥かに深い井戸を掘って、熱い蒸気を取り出してこれでタービンを廻し、蒸気を覆水して地中に戻します。この戻す過程で群発地震が発生します。地熱発電の新しい技術、地 中の熱い岩体に地上から水を注入して蒸気を得る高温岩体発電は、温泉と競合しないと言われている実用間近の技術ですが、恐らくこれでも微小地震は発生するものと思われます。しかし、地熱発電所がエネルギーを送り込んで地震を起こしている訳ではない、という当然の理屈は強調する必要があります。結局のところそれは地震や火山活動のエネルギーのささやかだが安全な先払いに過ぎません。
さて、地熱発電に立ち塞がる最初の問題である国立公園、国定公園は、物理的制約ではありません。直接的には経済的問題でもありません。それは条文を変えれば存在しなくなる制約です。国立公園、国定公園内に地熱発電所を置ければ、温泉と競合する可能性は小さくなります。また群小地震を感じるものもいなくなるでしょう。地 熱発電所が、熱と電気と温泉同等物を出す以外は何も出さない施設であることも考えるべきです。壊れても放射性物質を撒き散らしたりしないし、廃炉コストが掛かったりもしません。それでも多少とはいえ環境破壊、景観破壊は発生するでしょう。その利得は見合うのでしょうか。
環境破壊を重視する人は、火山を理解していません。火山は自らを破壊します。火山は安全な観光資源では決してありません。それはそのうち危険な代物を大量に吐き出すのです。
2010年4月に運転を開始した、ニュージーランドのナ・アワ・プルア地熱発電所は140MWという原発に匹敵する出力を持つ地熱発電所です。この施設は日本企業によって2年で建設されました。勿論この2年には、地道でコストの掛かる探査の期間は入っていません。しかし� �目に値する数字です。
現在日本の温泉の多くが衰退に向かい、湧出量も減ってきています。今日本にとって、地熱発電は温泉と天秤にかける選択肢になりました。もし草津か箱根を潰す覚悟があるなら、その覚悟は日本のエネルギー自給をも可能にするでしょう。温泉には代替選択肢がありますが、電力は現在代替選択肢の無い巨大な権力です。この利得はよく考えなければなりません。
特に福島県は、選択肢として積極的に考えるべきでしょう。今後観光にも風評被害が永続して及ぶ筈です。温泉地の廃業は現実的な問題となると予測します。今後福島第一から郷土を取り戻すために、電力という権力を自ら手にすることは強い武器になる筈です。脱原発の可能性の証明こそが、脱原発がきわめて深刻な課題である福島にとっ� ��必要でしょう。条文(実際には昭和47年の環境省局長通達「公園内の地熱発電の開発は当面六地点とし、当分の間、新規の調査工事及び開発を推進しないものとする」というもの)を変えさえすれば、制約はほぼ無いも同然です。残りの許認可権限は温泉法によって都道府県知事が持つものとなっています。
低出力ながら比較的低温の熱源でも動作するバイナリーサイクル地熱発電は、東京ど真ん中でも発電が可能という点で注目されて良いと思われます。バイナリーサイクル地熱発電が日本で活発に行われない理由は、それがどんなに小規模なものでもボイラー主任技術者が必要になるという愚かしい法規制のせいなのですが、これが撤回されれば、東京の自家発電システムとしてコンパクトなバイナリーサイクル地熱発電が普及する 可能性があります。また、10kmの地下まで掘れば、高温岩体発電の要領で、日本のほぼどこででも電力を得ることが可能になるでしょう。
3.11後の通信技術に関して言えば、無線LANのアドホック通信技術が、今回全く役に立たなかった事を自覚する必要があります。ハブ局などのインフラ無しにホスト局が勝手に繋がって通信するアドホック通信は、災害時に活躍する技術の筈でした。実際には現実的なプロトコルを実装したアプリケーションが存在せず、アドホック通信網は実現しませんでした。というか、アドホック通信という技術に目を向ける人間が誰もいなかった訳です。問題点がどこにあったのかよく調べる必要があるでしょう。
通信インフラもまた、大企業のバックボーンにおんぶにだっこで、それに不便を何一つ感じ ていなかった訳です。通信の代替選択肢追求の動きは、電力に比べればきわめて弱く、こっちは問題とはされないかもしれません。
実際には、通信インフラに乗っかるコンテンツのほうが問題となるでしょう。新聞やテレビといった旧マスメディアを信じる人と、信じない人との亀裂は、やがて衝突を生む規模にまで拡大すると予測します。
旧マスメディアは日本においては高齢化社会のおかげで世界に比べてわずかに延命するでしょうが、やがては没落します。没落は新聞とテレビでは形態は違います。新聞は単純に購読者数の減少によってなめらかに消滅するでしょう。
テレビの没落は広告売上げの減少によります。地デジへの切替による視聴者減少ギャップと、震災自粛を理由にした広告打ち切り、特に後者は永続的� ��ものになる可能性があります。ビデオソフトの売上げ減少はテレビ向けビデオコンテンツを質量共に減少させ、更にテレビ離れを促します。エリア制限を撤廃しようとする動きは、現行のテレビ放送形態が滅びる寸前には現れるでしょうが、実現するかは不明です。この過程で視聴者の囲い込みが行われます。チャンネル有料化も検討されるでしょう。B-CASの仕組みは依然生き続けていることを思い出してください。あからさまな洗脳と政治工作が行われるものと予想します。最終的にはテレビは高齢者に直接寄生する存在になります。
高齢者の価値観は旧マスメディアによって容易に操作されるものとなります。かれらは他の社会から浮いた、違う価値観の人々になります。視聴者の価値観がテレビ局とその広告主のために最適化� �れればされるほど、高齢者は外の社会から魅力的な市場ではなくなっていくでしょう。
但しこれはかなり先の話です。現在もテレビ広告は依然として有効な媒体です。しかし、企業は少しづつ広告にかけるお金を、マスメディア広告からユーザコミュニティへと落とす場所を変えてゆくでしょう。最終的には代替マスメディア広告手段がそれなりに普及して需要を満たすでしょう。
交通手段に関して言えば、今後は乗り物以上にインフラが注目されるようになると思われます。自動車は道路と不可分ですし、電車は線路と不可分です。自転車の未来は道路を今後どのようにしていくかに掛かっています。乗用車の自律走行やロボットといったものも、道路インフラがその成立の鍵を握っています。
震災は、そのインフラの脆 弱性を浮き彫りにしました。また、強いインフラと弱いインフラ、その性質の違いも明らかにしました。一般道は脆弱でしたが冗長性があり復旧も早く、自動車は電源供給を必要としません。但しガソリン供給の重要性は強く印象付けられました。高速道の復旧も早かったのですが冗長性は無く、しかしそれゆえに緊急道路としての排他的運用が可能でした。鉄道は脆く、多くの地点で復旧の目処が立ちません。また電力不足に対しても弱みを見せました。交通インフラの世界では、電力やガソリンといったパワーソース対策が今後真っ先に行われるでしょう。
自転車は、共同溝敷設と歩調を合わせて、その地位を獲得していかねばなりません。電柱をなくすことで生まれる余裕は、従来の考え方では歩行者と奪い合ってすぐに消滅し ます。共同溝を利用し、道路をスマート化すべきです。例えば車両が走っていないと明確に判っている状態の道路は、歩行者や自転車が全てを分かち合っても良いし、片側一車線しか無い道路も、たとえば事前予約して排他的に使えば誰もが不便無く安全に双方向通行できる筈です。道路の幅は現在、最大流量を想定して設計されていますが、賢く使えばもっと狭い幅でも流量を確保できるでしょう。
例えば平日の朝、乗り手がどこへ向かうのか、乗用車は高い確率で予測できるのではないでしょうか。経路予測は多くの場合で可能で、リアルタイムな予測変更もまた可能でしょう。そういう情報を持ち寄れば公共インフラである道路の利用効率は大幅に高める事ができる筈で、それは歩行者や自転車と道路を分け合いながら、さらな る安全を達成する事を可能にします。素のためには、道路には車両や自転車、歩行者が持つデバイスと通信できる通信インフラが必要になります。通信形態は中央にサーバを持つ形態よりもアドホックなものが望ましいのですが、このあたりは経済性や実験による試行錯誤で色々と変わってくる筈です。
都市部では、建築物の耐震性能は向上しましたが、停電と交通麻痺が地震によるダメージの新しい定義となりました。緊急時の電力や水の確保は高層建築物では特に課題となるでしょう。解決策としては、屋上に大型の水タンクを設け、地上にも同容量の水タンクを設けて落差発電を行うと同時に緊急時の水確保を行うというものがあります。またこれは深夜電力で水を汲み上げて電力消費のピーク時に発電するといった用途も考え られます。躯体の耐震性能に余裕のある、屋上にタンクを設置しても問題の無い建築物で採用が予想されます。
交通マヒに関しては、乗用車乗り合いや臨時の宿泊所提供などの緊急時ソーシャルサービスが、電源不要な形態で実現する事が望まれます。電源不要のソーシャルサービスは、常時に役割等分担を決め、準備することで実現可能になる筈です。更に、電源不要もしくは混在使用のソーシャルサービスとして、地域コミュニティを再構築する試みが行われるべきだと考えます。
最後に、最も変化が切望され、しかし恐らく変化に乏しいと絶望せざるを得ないものに、政治と経済があります。この二つは、どういう変化が望ましいか、おぼろげながらでも見えている人がほとんど皆無であるため、どうにも変化できません� �
個人的には、政治家が持つべき知識と技能の基本水準が明らかにされ、それを教える学校と講座が開設されること、政策アドバイスという行動が、その職業倫理と行動指針を明確化した上で職業または技能として確立されることを望んでいます。また、議論による問題解決と意識統一できるようになる訓練が広く行われるようになることを望みます。ウンコ味のカレーか、カレー味のウンコか、現行の政治制度は選んでも意味のないものを選ばせるだけの制度です。ならば望ましい政治家をどのようにして確保すればいいのでしょうか。結局、われわれは自分自身をそれぞれ政治家として訓練する必要があるのです。
また、経済学の研究がさまざまな面で活発化することを望んでいます。政治学と経済学は、中国がどうやっても� ��高の人材と研究を生み出し得ない分野です。その分野の真剣な研究は中国の体制を揺るがせるでしょう。中国に相対したいなら、軍事力ではなく、自己が必ず有利になる分野、政治学と経済学でリードすることです。現にアメリカはそうすることによって経済的な有利を引き出しています。皆が必死に働いたところで、経済学が惨めな水準に留まるのなら、日本の経済は国際的有利を得ることは無いでしょう。
しかしこれらは、残念ながら日本においては経済的必然による実現を全く望めません。だからこれらの実現には、経済的動機以外の理由が必要になります。これらは行動によってしか実現されないでしょう。
■ プログラミング HAL/S #10 -2011年3月10日(木)22時33分
FCOSはリアルタイムシステムである。リアルタイムシステムにはその起源から、タイムスライスとイベントドリブンという相容れぬ2つの方式が存在している。ロックウェルはタイムスライスでのシステム構築を主張し、IBMはイベントドリブンでの構築を主張した。
ロックウェルの最初のバージョンは40ミリ秒で一周するタイムスライス固定ループだった。HAL/Sのリアルタイム機能など綺麗さっぱり無視したこのバージョンは、40ミリ秒のメインループはそのままで、IBMによって960ミリ秒のユーザインタフェイス対応タスクが追加された。両者の方式の戦いは二年間続き、最後には双方を採用して手打ちとなった。つまりタイムスライスとイベントドリブンの二つの処理が、二つの開発主体の溝そのままに共存する設計となったのだ。
シャトルフライトソフトウェアは、巨大なドキュメントの山によって完全に動作を定められていた。ドキュメントはA,B,Cの三レベルに分けられた。レベルAは機能要求とインタフェイス仕様である。これはNASAが中心となって策定した。Bレベルは詳細設計で、これはIBMが策定した。Cレベルは実装とほぼ同等である。
4台のAP-101はI/Oアクセスのたびに専用接続バスを通して、3ビットのメッセージを送出し、4ミリ秒他のAP-101の反応を待つ。メッセージの内容は"データ正常"であったり"異常入力"だったりする。これらメッセージとデータ内容から、多重冗長バスコントローラは、4入力の中から確からしい信号を更に多数決して外部に出力する。
もし4ミリ秒のうちに応答しないAP-101があれば、それは異常動作を疑われることになる。ま� �、疑わしいメッセージを受けたら、AP-101はデータ汚染を防ぐために一定時間データバスを閉じる。この処理は40ミリ秒のタイムスライス部の担当であった。このプロセスは4台の歩調が合っている事が前提の動作である。内部タイマが4台ともほとんど合っていなければならない。もし1台がずれていても、やがて周囲に同期することが期待されていた。
更に4台は6.25ヘルツの周期で、64ビットのデータを交換し合い、互いにチェックした。このデータはエンジン情報、空力舵、スラスター等の情報をコンパクトにまとめたもので、このデータを三回他と食い違って出力したAP-101は失敗と判定、表示される。これをどうするか、例えば再起動はクルーの仕事である。
問題は最初の電源投入時である。コンピュータたちは全く別々のタイ� ��ングで起動する。1981年4月、最初のシャトル打ち上げの予定時刻20分前、コンピュータに火を入れるはずが全然起動しなかった。4台のコンピュータが順番に互いにバスを閉じ合って、同期に失敗するデッドロックに陥ったのである。
症状は即座にデッドロックだと診断された。打ち上げは2日延ばされ、ソフトウェアはそのままに打ち上げられた。
後の解析によると、電源投入は67分の1の確率でデッドロックにより失敗する事が判明した。初期化コードの肥大化によって起動に要する時間が延びて、初期の設計に無いデッドロックタイミングが生じたと診断された。調査すると、デッドロックは三ヶ月前にも一度開発中に起きていた。
その後もバグは発覚し続けたが、ソフトウェアの修正により新しいリスクを抱え込むより� �テスト済みであるプログラムをそのまま使い続ける方針が維持された。バグは発見され次第、それを避ける詳細な手順書が作成された。STS-7ミッションの時には、それは既に200ページにも渡っていた。バグの実際の修正はチャレンジャー事故後に一括して行われた。
シャトルフライトソフトウェアの、ロックウェルによる最初の開発費見積もりは二千万ドルだったが、最終的に開発費用は二億ドルにまで膨れ上がった。コード規模は削減の努力にも関わらず、HAL/Sのコードにしておよそ400000行、500000ワードの規模にまで成長した。但しこれは機能分割後の総和であり、FCOSなど共通で使用するコードが重複して含まれた値である。従ってテストの対象となったコードはその半分ほどになる。NASAはシャトルフライトソフトウェアに1行あた� ��およそ1000ドル相当のコストをかけた事になる。
現在このプログラムは"バグフリー"であるという評価を得ている。このプログラムがこの世で最も徹底的にテストされたプログラムの一つである事は間違いない。
10:終わりに
400000行のHAL/Sソースコードは、400000枚のIBMパンチカードを意味する。HAL/Sが分割コンパイルをサポートしていなかったらと考えると恐ろしい。しかしそれでもプログラマ達にとっては、HAL/Sのコードは地獄行きの契約書に等しかっただろう。
HAL/Sには頑健なコードを書くための要素が多く欠落している。Cの構造体や共用体がどれだけ素晴らしい機能であるか、万人が知るべきである。組み込みプログラマはレジスタに値をセットするとき、それにHAL/Sを使わないで良い事をカーニハンとリッチー� �感謝すべきだ。Cのプリプロセッサマクロにすら感謝の祈りを忘れるべきではない。Cのポインタの危険性を剥き身のナイフに例えるなら、HAL/SのCOMPOOLはピンが最初から抜かれている手榴弾に例えられるべきだ。EXTERNAL宣言されたCOMPOOLが、いちいち再度変数宣言する必要があった事に気づいただろうか。つまり間違ってオリジナルと違う宣言を書いてしまう可能性がある。Cのヘッダファイルをインクルードする時には、パンチカードに同じ穴をコピペしていたプログラマ達の事を想って欲しい。
HAL/Sはリアルタイム言語としても未成熟だった。リアルタイムOSに必要な機能は、割り込みへの応答速度やタイムスライスの精度では無い。情報こそが制御の中心であり、この安全がなければ制御は安全ではない。今でも時折想像力の欠落した組み込み技術者がやらかすヘマだが、セマフォを使わずタイムスライスで全てが解決するといった考え方は、安全から遠くかけ離れている。
HAL/Sの開発者たち本人が、ソフトウェア開発に最初から関わっていれば、HAL/Sの仕様の半分、つまり無駄は存在しなかっただろう。もしシャトルフライトソフトウェア開発以前に、練習になる開発計画があれば、HAL/Sはもっと素晴らしい言語になっていただろう。残念ながらHAL/Sは学び成長する準備期間抜きに シャトル計画に、NASAとIBMの官僚機構の歯車に飲み込まれ、仕様を凍結されたのだ。
シャトルフライトソフトウェアがHAL/Sを使いながら危険な事故を起こさなかった理由の一つは、その規模だろう。機能分割は更にソフトウェアのモジュール化を推進した。更に金と人員さえ掛ければ、バグは潰すことが出来る。
400000行のHAL/Sソースコードは、現代的な言語なら更に簡潔に記述できるだろうし、考えてみれば128キロバイトしかメモリ空間が無いのだ。FCOSなど35キロバイトに過ぎない。AP-101のコード効率が良かった筈が無い。シャトルフライトソフトウェアは、そこらの組み込みシステムよりずっと小規模なシステムなのである。
詳細なドキュメントと紙上の検討がどれほど信頼性に寄与したのかはわからない。徹底した試験と� �ミュレーションの寄与も、どのような試験を行ったか、その情報をも含めてわからない。ただ言えるのは、仕様は基本的に間違っておらず、試験も必要な範囲を網羅した筈だという事である。
これは双方とも、実は難しい条件である。技術的にはまったく難しい条件ではない。それは政治的、経済的な条件であり、結局それがソフトウェアプロジェクトの成就を左右するのだ。上級関係者の単なる理解不足が、政治的歯車の中でプロジェクトを超難問に仕立て上げる。HAL/Sの仕様も、そういう政治的歯車の産物の一種である。ただ、シャトルフライトソフトウェアの開発がHAL/Sという高級言語で行えたことは成功と言っても良かったのかも知れない。もしアセンブラで開発が行われていたら、プロジェクトは果たしてどうなっていただ� ��うか。……いや、それでもうまく行っていたのかも知れない。開発期間やコストはまったく違うものになっていただろうが。
シャトルフライトソフトウェアの開発はコストの問題はあるにしても、安全にその使命を果たしたという意味では成功だった。しかしHAL/Sそのものは、やはり失敗した開発である。宇宙機向け汎用言語という当初の目的を果たせず、組み込みソフトウェアの世界でHAL/Sはほとんど影響を与えることができなかった。
多分、酷い言語、失敗したプログラミング言語を普段見ることが無いのは、そういう言語はそもそも誰にも使われないからだ。ただ、仕方なく使用を強制されるものだけが失敗した言語として目に見える形で残るのだ。
Intermetrics社はその後Ada83及び95規格の策定に関わり、Adaコンパイラを 出荷した。Ada言語にはHAL/Sの特徴の幾つか、例えばリアルタイム言語機能などが見られる。Intermetrics社は更にその後1997年にルッキンググラス社と合併、コンピュータゲーム開発企業になり、PC用フライトシミュレータやスニーキングアクションゲーム"シーフ"、RPG"ウルテイマアンダーワールド"、N64向け"コマンド&コンカー"等を開発した後1999年に再び分離、売却され軍事サービス企業タイタンコーポレーションに買収された。タイタンは軍のために翻訳ソフトウェア、空中警戒管制システム、海戦ウォーゲーム等を開発している。また国土安全保障省との契約を介してアブグレイブの囚人虐待にも関わった。
HAL/Sは珍しい、死亡日時がはっきりしたプログラミング言語となるだろう。STS-135向けのミッション用コード差分の最後のものが� �かれた瞬間に、HAL/Sの死は確定する。命日は最後のシャトル搭載のAP-101Sから火が落とされる瞬間である。
--------------------------------------------------------------------------
もしこの内容を同人誌で出しても、やっぱ誰も買わないよね……
■ プログラミング HAL/S #9 -2011年3月8日(火)00時19分
9:ハードウェアと運用仕様
HAL/SのメインプラットフォームであるAP-101計算機は、1970年代に開発されたTTLトランジスタコンピュータである。およそ高さ20センチ、幅26センチ、奥行き50センチ、重さ26キログラム。メーカであるIBMは自社のSystem/360互換のアーキテクチャをAP-101に与えた。
System/360は32ビットアーキテクチャ機で、8ビット単位でワード長を可変できる最初のコンピュータだった。うちSystem/360モデル30をベースにIBMは60年代後半、耐放射線性コンポーネントを使った組込みフォールトトレラントコンピュータ、System/4 piアーキテクチャのAP-1計算機を開発した。AP-101はこれを元にしている。
演算能力は0.4MIPS、メモリはコアメモリ、入出力チャンネルは24本用意されていた。OPコードも基本命令154種をサポートする。32ビットの汎用レジスタ16個を持ち、立派な32ビットマシンなのだが、実際は16ビットマシンみたいなものだった。まずアドレス空間が16ビット分しかない。バス幅が16ビットなのだ。データアクセスの単位も16ビットが実質1ワードで、メモリ空間が64キロワードだから、メモリ容量は128キロバイトだ。少なくともHAL/Sにとって単精度は16ビットで、倍精度で32ビットだった。
スタックの最基部には2ワード32ビットの状態レジスタがある。その上にレジスタ退避エリア16ワードが用意され、この計18ワードがスタック基部に必ず確保される。HAL /SはここにレジスタのうちR0からR7までの8個しか退避しない。これは恐らく割り込み時のレジスタ退避エリアで、従ってHAL/Sは多重割り込みをサポートしないと思われる。スタックは基部からアドレスの下位へと成長し、グローバル変数などは18ワードのアドレス上位に確保される。スタックアドレスはR0レジスタに格納される。R5,R6,R7が整数演算用に予約されている。
シャトルでは同じAP-101を5台搭載して、うち4台の出力を多数決冗長で1台分の出力にして出力し、4台に同じデータがそれぞれ入力される。残り1台は待機冗長で、多数決には加わらず、4台のどれか1台が壊れたときに取り替えるためのいわば予備部品である。
I/Oチャンネルの接続先は主にDPSと呼ばれる、インテリジェンスなパラレル-シリアル変換器である。DPSは1台で16 個のパラレル入力をシリアライズし、16個のパラレル出力をシリアル入力から作り出す事ができる。つまりアクセスは1ワード単位だ。DPSは28ビット長のコマンドによって動作を制御できる。パラレル出力制御は主にこれによる。
チャンネルには他にもプラウン管ディスプレイや、後にはデータストレージも接続する。
シャトルに搭載されたのは開発初期から多少仕様変更されたAP-101Bだったが、1990年代に新しいAP-101Sに載せかえられている。AP-101Sはメモリをコアメモリから半導体メモリに変更し、メモリ空間を1メガバイトまで拡張した。速度は1MIPSまで向上し、サイズと重量は半分になった。しかしシャトルに用意されている搭載空間は変わらないから、以前の1台のモジュールケースの中に2台のAP-101Sが入るという構成になってい� �。
DPSのパラレル入力は一度のアクセスで16ビット、1ワード分を取得する。DPSに対して、HAL/Sのカラムやライン、タブといった制御命令がどういう効果を持つのかは不明だ。またWRITE文で例えば1ビットのON/OFFをするようなビット操作はどうしたらいいのだろうか。恐らく2バイトの文字列型変数をBIT文で操作したものを出力する事になるだろう。
AP-101が24本のチャンネルを持つのに対して、HAL/Sは10本しかサポートしない。恐らくドキュメントの間違いか、AP-101用に別にドキュメントがあるのだろう。元々チャンネルが10本というのはシャトルに対して少な過ぎる。
HAL/Sはテレタイプ端末やプリンタを繋ぐには向いているが、決してハードウェアの生I/Oを接続するのには向いていない。ハードウェア寄りの仕様に一切歩み寄らなか� �たHAL/Sという言語は、宇宙機用汎用言語という掲げた目標と比べると、ちぐはぐというか、訳がわからないといった感想をどうしても持ってしまう。
HAL/Sで記述されたプログラムは、基本的にはIBM System/360か370上で開発することになる。少なくともEBCDICプリンタが接続した機械が必要で、実際には開発は紙の上でだっただろう。プログラムはIBMパンチカードに1行1枚の勘定で打ち出され、コンパイラはそれらカードの束の上に置かれたJCL言語の制御カードに従ってコンパイルする。
気になるのはマルチライン記述であるが、恐らく各ライン毎に別のカードを割り当てたものと思われる。デバッグでどこかの行を書き直すと、カードの束の1枚とか数枚を新しいものに入れ替える事になる。こんな開発でバージョン管理なんてものはありえないし、そういったものは一切サポートされていなかった。最初のスクリーンエディタは1960年代末には登場していたが、そんな軟弱なものはHAL/Sの開発環境には存在しなかっただろう。開発環境� �マニュアルに書かれているのはただ、JCLの書き方のみである。
それでもアセンブラで開発するよりかは遥かにましだった。実際は当初NASAではアセンブラでの開発が強く主張されていた。組み込み用プログラミング言語は当時信頼性とパフォーマンスの両面でまったく信用されていなかった。HAL/Sはパフォーマンステストで、アセンブラ記述より5パーセント速度が劣るだけという性能をベンチマークで示し、ようやくHAL/Sの採用が決まったのである。
シャトルフライトソフトウェアは、1973年にIBMとロックウェル社の合同プロジェクトとしてNASAと契約、開発を開始した。そもそもオービターのメインカスタマーであるロックウェルはIBMを下請けに使うつもりだったのだが、IBMがNASAと単独契約をしようとしていたのに慌てて割り込ん� ��のだ。だから開発主体は結局IBMである。更に開発初期にはチャールズ・スターク・ドレーパー研究所がコンサルタントに入った。チャールズ・スターク・ドレーパー研究所はアポロ誘導コンピュータの開発主体であり、1973年までHAL/S開発の主体である。HAL/Sの開発者たちはこの年にIntermetrics社を設立、独立している。HAL/Sの一応の完成も同年となっている。
開発されたソフトウェアはOPSと呼ばれる複数のモジュールの塊からなっている。OPSは更に機体状態によって遷移するモードから構成されていた。例えばOPS-3、エントリーは最初の軌道離脱モードから始まって、複数の制御モードを遷移して着陸モードに到達する。
常に動作しているOPSは3種類、OPS-0はデータサンプリングとユーザインタフェイスを担当している。これはFCOS、� �ライトコンピュータオペレーティングシステムとも呼ばれる。OPS-9はデータストレージコントローラだ。サービスモジュール用の2つのOPSは用途に合わせて呼び出される。機体制御用のOPSは6種類、これはうちどれか1つが必ず動作している。6種類の中には地上整備時のコンフィギュレーション用のOPSもある。
OPSの切り替えはメモリ空間の制約のせいでもあった。打ち上げ時の機体制御プログラムは帰還時には必要ない。切り離す事が出来れば、一度にメモリ空間に置くプログラムサイズを小さく出来る。各プログラムモジュールは外部装置からロードして切り替えればいい。プログラムは絶対の前提条件としてAP-101の64キロワード、つまり128キロバイトのメモリ空間に収まらなくてはならなかった。FCOSはうち35キロバイトを常に占めてい る。
その上で、プログラムの動作にはRAMが必要である。HAL/Sがローカル変数の機能を持ち、常にRAMを占拠するグローバル変数を減らせた点はプロジェクトへの貢献だった。
ロックウェルは1971年の段階では、プログラムサイズを56キロバイト、だからコンピュータのメモリは余裕を持って64キロバイトもあれば十分だと見積もっていた。しかしプログラム規模は1978年には実行時イメージで140キロバイトを突破していた。RAMの余裕を考慮するとプログラムは80キロバイト以内に収めろというのがNASAの要求だった。IBMは、大掛かりな機能分割によって、最初の打ち上げ前にこの要求を満たすことが出来た。
■ プログラミング HAL/S #8 -2011年3月6日(日)22時05分
8:リアルタイム
HAL/Sはリアルタイム言語である。
何故シャトルはこんな言語を使い続けたのか、ここに理由がある。リアルタイム言語とは、簡単に言えばリアルタイムOSの機能を持った言語である。実際には、リアルタイム言語の歴史はリアルタイムOSのそれに先行する。
世界最初の本格リアルタイムOS、DEC RSX-15は1970年に生まれた。リアルタイム機能の基礎であるタスク間同期は、リアルタイム化FORTRANであるOLERTのランデブ機能として最初に実装されたアイディアを使ったものである
リアルタイム機能とは最初それはハードウェア割り込みの事であった。非同期で低速な外部入力をコンピュータが受け取るために、軍事通信システムで生まれた割り込みは、すぐに産業用コンピュータでも一般的な仕様となった。マルチタスクは割り込みを処理するためのソフトウェア技術として生まれた。マルチタスクは一時期並列コンピューティングとすら呼ばれたことがある。
RSX-15のマルチタスク機能は、最初"ソフトウェア"割り込みと呼ばれた。ハードウェア割り込みを処理するソフトウェア層の上に、抽象化された割り込みを定義可能にした� �がその実態である。しかしそれだけではマルチタスクは成立しない。非同期に動くタスクの間でデータをやり取りするには特別な仕組みが必要だった。RSXではそれがランデブ機能だった。HAL/Sもマルチタスク機能とタスク間通信のサポートを言語レベルで提供する。
HAL/Sの各タスクは、ランタイム内のリアルタイム実行部(RTE)によってコントロールされる。実のところPROGRAMブロックもまたコントロール下にあり、スケジューリング定義の無い状態のままでRTEの実行待ち行列に突っ込まれ、実行されているのである。RTEは恐らく優先度付きラウンドロビンスケジューラである。
タスク定義はPROGRAMブロックと同じ構文で行われる。引数を取らず戻り値も無い。
"ブロック名": TASK;
内容;
CLOSE "ブロック名";
タスクがどのように実行されるかはスケジューリング定義SCHEDULEで記述される。
SCHEDULE "ブロック名" PRIORITY("優先度");
優先度は0から255まで指定可能だ。数字の大きいほうが実行は優先的に行われる。
SCHEDULE "ブロック名" PRIORITY("優先度") DEPENDENT;
キーワードDEPENDENTは、このTASKプロセスを作ったプロセスに動作が依存することを示している。これは、タスク内からスケジューラ的な小型タスクを呼び出して使用するときなどに使う。
SCHEDULE "ブロック名" IN "時間間隔" PRIORITY("優先度");
キーワードINを用いて実行インターバルを設定できる。この時間単位は秒で、少数点数で指定ができる。
SCHEDULE "ブロック名" AT "指定時間" PRIORITY("優先度");
キーワードATを用いて、指定時間になったら実行するようにできる。指定時間はスカラー値の変数と小数点の直値を使う事になる。
SCHEDULE文はPROGRAMブロック内、もしくはタスク内にしか書けない。SCHEDULE文はタスクの呼び出しを兼ねている。
タスクはRETURN文を実行すると停止する。またブロックの終端であるCLOSEに到達しても停止する。また、タスクはTERMINATE文を使っても停止する事ができる。これら三種は同じ動作を示す。タスクは再びSCHEDULE文によらなければ動作しない。
タスクが内部から自分自身を停止する場合は、
TERMINATE;
他のタスクを停止する場合は、
TERMINATE タスク名;
というかたちの記述となる。停止タスクはカンマで区切って複数並べることもできる。
CANCEL文は、タスクを停止し、RTEの実行待ち行列から弾き出す。これは主にエラー状態のときに用いる。
タスクは以下の4種類の状態を遷移する。
Active :タスクは動作しています。
Wait :タスクは状態を保ったまま停止し、制御を他のタスクに渡します。
Ready :実行待ちです。
Stall :タスクは不活性化しています。SCHEDULEによってReadyに遷移します。
CANCEL文は、タスクをStall状態へと遷移させる。記法も動作もTERMINATEと同じである。タスク名は変数としてブーリアン型の値を持つ。タスクがActiveだとtrue、Activeでなければfalseを返す。
タスク間の同期機能は、タスクによって分割された処理を再び統合するために必須の機能である。ここを上手く処理しなければタスク間で情報を正しく渡し損ねる場合がある。例えば情報を渡している最中に割り込み処理が入ったらどうなるか。情報の受け渡しは中断され、失敗するだろう。HAL/Sも一応そのための仕組みを持っている。
WAIT文は、タスクを一時停止して制御を他のタスクに渡す事ができる。
WAITの後ろに数字もしくは変数で、停止時間間隔を指定できる。� �れはSCHEDULEの時間間隔指定と同じ、秒単位の指定である。キーワードUNTILを付けると、指定のRTEシステムタイマ絶対値まで停止し続けるという動作になる。キーワードFORはイベント待ちである。
WAIT FOR DEPENDENT;
これは親プロセスに同期して停止するという意味である。
UPDATE文は、SCHEDULEで指定された優先度を変更できる。タスク名を省略すると、自タスクの優先度を変更する。HAL/Sのスケジューラは、低優先度タスクの自動優先度上昇のような機能を持たない。代わりに、手動で行うのである。
UPDATE PRIORITY タスク名 TO 16;
WAIT文のキーワードFORで出てきたイベントとは、DEPENDENT以外にも様々に定義が可能である。これにはイベント型変数を用いる。
DECLARE EV1 EVENT;
イベントは要するにソフトウェア生成される割り込み、通常のリアルタイムOSで言うところのキューだと思えば良い。これがHAL/Sのタスク間同期機構を担っている。
WAIT FOR EV1;
これはEV1のイベント待ちである。
SIGNAL EV1;
これで一発、イベントが発生する。
イベントには、発生したら打ち消すまでセットされるものもある。
キーワードLATCHEDは、このイベント変数がオンオフできることを示している。
DECLARE EV2 EVENT LATCHED;
SET EV2;
RESET EV2;
SET文はLATCHEDでないイベント変数にも使える。その場合はRESETしてやる必要は無い。
LATCHEDなイベント変数は、最初からセットしてやることもできる。
DECLARE EV3 EVENT LATCHED INITIAL(TRUE);
イベント変数は配列にすることもできる。
DECLARE EVN ARRAY(3) EVENT;
SET EVN(1 TO 2);
イベント変数は論理演算することもできる。
WAIT FOR(EV1&EV2);
HAL/Sにはタスク間同期機構がイベント変数しかなく、データの集合をアクセス衝突なく同期伝送できる仕組みを備えていない。HAL/Sのタスク間データのやりとりはCOMPOOLを使う訳だが、セマフォに相当する仕組みがHAL/Sには備わっていないため、データフローの設計は非常に気を使うものになっただろう。
-過去ログ-
0 件のコメント:
コメントを投稿