我々にはとうていできそうにない計算を、ひょいとやってのけるコンピュータ。それを頭脳に持つロボットが映画に出てくると、冷徹で無慈悲なやつとして描かれることが多い。1か0かに切り分けるデジタル処理の様子が、そんなイメージを想起させるのだろうか。そんなクールなコンピュータがびっくりする、と知ったら、あなたはびっくりするだろうか。

こうして始まる「びっくりするコンピュータ」という記事をしたためてはや10年*1。続編を作るには時間がかかりすぎた気がするが、ようやくエピソード2を紹介できるようになった。冒頭の導入にクールなロボットというSFの世界をイメージした人は多いだろう。今回はそこに魔法使いが登場する。

*1 ISASニュース2012年5月号
https://www.isas.jaxa.jp/ISASnews/No.374/ISASnews374.pdf
宇宙科学最前線:びっくりするコンピュータ
https://www.isas.jaxa.jp/j/forefront/2012/kobayashi/index.shtml

コンピューターチップと電子記憶細胞

コンピューターのメイン部品は、メモリーやプロセッサーといったコンピューターチップと呼ばれるものだ。私たちのIT社会を支える重要な部品である。コンピューターチップの多くは1か0のデジタルで情報を処理している。メモリーと呼ばれるコンピューターチップを想定してみよう。そこには図1のように、デジタルの1か0を記憶する電子回路でできた記憶細胞が並んでいる。「電子回路でできた記憶細胞」と毎回繰り返すのは大変なので、「電子記憶細胞」と呼ぶことにしよう。そこに「JAXA」という文字列を記憶させてみる。この文字列をデジタル変換する方法はいくつかあるが、一例では1001010 1000001 1011000 1000001になる。7つごとに区切りをいれたのは読みやすさのためで、7つの電子記憶細胞が集まって1つの文字を記憶していることに由来する。SF映画に出てくるクールなロボットであれば、このように情報をデジタル化して一瞬で記憶し、そして忘れない。だが、現実は違う。自然からの電気ショックにびっくりして記憶をなくすことがある*2

図1

図1:メモリーにおける記憶喪失。JAXAがJAに。

*2 コンピューターが記憶をなくすことを専門的にはシングルイベント・アップセット(Single-event upset)とかソフトエラー(Soft error)などと呼ぶ。なお、ソフトエラーはソフトウェアのエラーという意味ではない。本文にある通りハードウェアのエラーだ。

自然からの電気ショック

自然にはコンピューターチップを目から星がでるほど強くたたくやつが存在する。宇宙線と呼ばれるものだ。「線」とあるが実際は星のかけら、具体的には原子核やさらに小さい素粒子だ。超新星爆発のような天文学的巨大イベントでエネルギーをもらって、光の速さに近いスピードで飛んでいる。そんな小さな星のかけらが夜空を駆け抜けていく様子を想像すると、光り輝く「線」のイメージを持てるだろう。

宇宙線はコンピューターチップに強力な電気ショックを与える。その様子を心電図のように捉えたのが図2だ。電子記憶細胞はトランジスターと呼ばれる「電子スイッチ」のネットワークで作られている。そのスイッチを1つ取り出して宇宙線を当てたのが図2だ。宇宙線が当たる前はゼロミリアンペア、つまり信号がレベルゼロで平らになって落ち着いている。人間の心電図がこの状態で落ち着いたら一大事だが、こいつはコンピューターなので問題ない。宇宙線が当たった瞬間、信号が大きく跳ね上がっている。コンピューターがドキッとした瞬間だ。信号の高さは目盛り5つ分。ぶっちぎりに大きい。このスイッチは本来目盛り1つ分しか信号を出さないからだ。

図2

図2:トランジスタースイッチがびっくりする様子。量子科学技術研究開発機構高崎量子応用研究所にあるサイクロトロンを使って調べた。観測データは同研究所牧野博士からのご提供。ISASニュース No. 374から転載。

びっくりするコンピューター

目から星がでるような強烈な電気ショックを受けた電子記憶細胞は正常ではいられない。一瞬で焼き切れるようなものを含めてさまざまなことが起きる。その中でも、ショックのあまり記憶を失うことがよく知られている。1つの電子記憶細胞が記憶を失って例えば図1のように0011000になったとしよう。今回使った文字列変換ルールでは「キャンセル」の意味になる。「X」という文字が「キャンセル」という命令に変わってしまう。今の例であれば、1つ前の文字「A」をなかったことにしてくれという意味になる。宇宙航空研究開発機構JAXAのためにその身をささげていたロボットが「JAXAとは何のことでしょうか。私は農業協同組合JAのためにこの身をささげています」とクールに手のひらを返す。

宇宙線実験の難しさ

そんな手のひら返しができるだけ起きないように、コンピューターチップを作る人たちは対策をしている。大切なのは作ったコンピューターチップがどのくらい宇宙線に弱くてびっくりしやすいのかを知ることだ。そこで、自分たちが作ったチップに宇宙線をあてて確認する。自然の宇宙線を使う手もあるが制御できないという難しさがあるので、人工的につくって当てて確認する事が多い。

これが結構大変である。宇宙線を人工的につくるにはサイクロトロンやシンクロトロンと呼ばれる巨大な電子レンジのようなものが必要だ。電子レンジという比喩は悪くない。電子レンジはマグネトロンの応用だから。だが、大きさは随分違う。サイクロトロンやシンクロトロンはそれだけで研究所が必要なくらい大きい。そんな巨大な電子レンジを持っている人はなかなかいなくて、いつも順番待ちだ(自宅に持っている人がいたらこっそり私に連絡してほしい)。巨大な電子レンジは電気代も格別で、昨今の電気代高騰は痛恨だ。コンピューターチップを作る人たちは、そんな痛みに耐えながら実験を繰り返している。

私のところには「最近見つけたこのコンピューターチップを宇宙で使いたいけど、どう?」と相談が来ることが多い。私ができる回答は「宇宙線実験しないと使えるかわからない。宇宙は宇宙線が多いから気をつけた方が良い。実験は早くて来年。お金かかるから覚悟しておいて」だ。質問した人の顔が苦虫をかみつぶしたような顔に変わる。

悔しい。だって「わからない」となら、誰だって言えるじゃないか。

四十代転職希望先は魔法使い

「誰でもいいなら君はクビだな」と所長に言われないように説明しておこう。同業のほかの人に迷惑をかけてもいけない。この実験、ノウハウの塊である。

半導体物理、集積回路設計や符号化理論といったコンピューター設計に必要な知識に始まり、相対性理論と量子力学が絡んだ素粒子物理、天体の起源に迫る天文学などをカバーする必要がある。実際的な知識も必要だ。例えば、コンピューターチップがどういう構造でできているのか、その構造をどうやって作ったのか。時にはその際にどんな材料を使ったのかまで知る必要がある。「当てたらわかる」と言うなかれ。それは、ちゃんと当てられたらの話だ。

そうやってきっちり宇宙線を当てて手にしたデータは確実で珠玉だ。とは言え、何でもかんでも「わからない」と実験していては負担が大きい。今風に言えばサステナブルじゃない。魔導書を開いて呪文を唱える魔法使いのごとく、説明書を開いてちょいちょいと計算するだけで宇宙線に対する信頼性を言えたら「映える」だろう。面白い。魔法使いに俺はなる。

目指せ!魔法使い

どうやったら魔法使いになれるのだろう。きっと本物は、食べると巨大化するキノコや引き抜くと悲鳴を上げる草とかをつぼに入れてグツグツ煮るのだろう。そんなマジックアイテムにあてのない私は自分の実験結果や他人の論文とかをかばんに入れてブツブツつぶやいた。きっと本物は、杖で地面に光る魔法陣を描くのだろう。私は鉛筆でノートに黒いグラフを描いた。悔しさをバネになんだかんだで20年くらい。ある日、次の呪文に行き着いた。

202308_4b.jpg

あんまり呪文らしくないって?それもそのはず。この方程式は中学生でも解ける。

ちょっとだけ魔法が使えた

多くの呪文が人に読めない文字で書かれるように、私が作った呪文も読めないだろう。あえて読むならば、ラムダイコールニーケーシグマムゲンダイワルコトノエルイーノニジョウ。お、呪文らしくなった。だが、もう一度言うと、この呪文は中学生でも解ける簡単な方程式だ。等号(=)の左側にあるラムダ(λ )は、びっくりして記憶喪失する頻度を示す。宇宙線実験の最終目標はこれを知ることだ。右側のσとLeは作ったコンピューターチップがどれくらいびっくりしやすいかを表す指標である。2つを組み合わせてチップの「個性」を表現している。なお、コンピューターチップにもいろいろ種類がある。ここではSRAM(Static Random Access Memory)というメモリーを想定している。SRAMは私たちが普段使っているコンピューターの情報処理速度を決める大切な部品であると同時に宇宙線に弱いことでも知られている。最後に残されたK は、そのチップが置かれる環境を表している。びっくりしやすいチップでも宇宙線が少なければびっくりする頻度は減る。チップと環境の両方の個性が必要だ。

図3はこの魔法を発動させた結果だ。魔法の方程式を使って描いたグラフ、すなわち魔法陣だ。見慣れない文字が多くていかにも魔法陣らしい。全部は説明しないが、大きい黒丸S1、S 2、S 3、S 4が、私が魔法の方程式を使って予言した値である。世の中に公開されているSRAMを4つ例にとって個性(σとLe)を調べて魔法を発動させた。小さい白丸は別の人が実験などで調べて報告した値である。横軸はコンピューターチップの「世代」を表していて右側に行くほど新しい。同じ世代では黒丸と白丸が重なってほしいのだが、どうだろう。そう悪くない。

S1の黒丸が2つあることに気づいただろうか。このグラフにはSRAMチップを宇宙の静止軌道に持っていった場合と、地上に置いた場合、それぞれについて求めたびっくりしやすさ(ラムダ値)を載せている。私が編み出した魔法の方程式にはK を書き換えるだけで宇宙と地上の両方を予言できるという面白い特徴がある。魔法使いにあこがれる人は他にもいて、似たような魔法を唱えた人もいるけれど、両方を予言する魔法を唱えた人はいないはず。おや、と思った人はいるだろうか。宇宙線は宇宙にあるのでは?と。実際は地上にも降り注いでいる。前置きが長くならないようにここまでどちらでも読めるように工夫してきたつもりだがどうだろう。

図3

図3:魔法の方程式を発動させて描いた魔方陣。横軸はコンピューターチップの世代を表している。ナノメートルという単位で測った線幅を使う慣例に従っている。線幅が小さくなる(右に行く)ほど新しい。縦軸の左と右では単位が違うだけで、どちらもSRAMの「びっくりしやすさ(ラムダ値)」を表している。右は宇宙業界がよく使う単位で、1つの電子記憶細胞が一日に何回びっくりするかを示す。左は地上業界が良く使う単位で、100万個の電子記憶細胞が10億時間に何回びっくりするかを示す。ちょっとした文化の差である。また、図中のBulk, FinFET, SOIはコンピューターチップの作り方の違いを示している。こういう差や違いを超えて統一的に理解しようとしたところにもこの魔方陣の面白さがある。図はD. Kobayashi and K.Hirose, "How Harsh is Space?--Equations That Connect Space and GroundVLSI," in Tech. Dig. 2023 Symp. VLSI Technol. Circuits,から転載。©応用物理学会2023。なお、BRAMはBlock RAMと呼ばれるもので、SRAMとは厳密には違うがかなり似ているので参考値として掲載した。

宇宙線は地上にも宇宙にもある。だが、地上と宇宙では種類が違う*3 。なので、作ったチップの信頼性を調べるには、地上用と宇宙用の宇宙線実験が必要だ。それぞれ別の「ナントカトロン」が必要なので、例えば地上用にびっくりしないチップができても、宇宙で使えるかどうかを知るには別の実験が必要だ。これが先ほど例に挙げた苦虫ケースに他ならない。私の魔法を使うと、その実験を省略できるかもしれない。お互い換算できる可能性があるからだ。できると言い切るには調べたいことがあるし、この方程式ひとつですべてが解決するということもないだろう。研究という修行がまだまだ必要だ。でも、ちょっとだけ魔法が使えるようになった。わからないとしか言えなくて悔しい思いをしてきた問題を、中学生でも解ける方程式で解決できるかもなんてびっくりだ。これだから研究は面白い。

*3 地上のコンピューターをびっくりさせる宇宙線としては高速中性子線が、宇宙のそれとしては銀河宇宙線が代表的である。魔法の方程式はそれらを想定して導いた。原子核の構造まで知っている必要があるので夏休みの自由研究としては難しすぎるかもしれないが、興味をもった人は、地上の高速中性子線がどうしてできるのか調べてみてはどうだろう。あたかも空っぽのように思える空気(大気)が盾になっていることが分かると思う。宇宙飛行士の目から星が出るくらい銀河宇宙線は強力で、実際、目をつぶっていても目に当たると光るそうだが、私たちは普段そんな光に悩んではいない。銀河宇宙線はどこに行ったのだろう?

【 ISASニュース 2023年8月号(No.509) 掲載】