2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
Why Electronics Just Shouldn't Work(全1記事)
リンクをコピー
記事をブックマーク
ステファン・チン氏:ハードディスクや人工衛星、DVDからインターネットケーブルに至るまで、私たちは、電子機器は動いて当然だと思っています。すべてのビット、1や0は、完璧にストアされ、移動されていると考えています。
しかし、よくよく考えてみると、電子機器が正常に働くのは、実は非常に不思議なことなのです。
ワイヤーやメモリチップ、無線リンクは、伝送損失や電波障害、もしくは単なるちょっとした傷や汚れなどによってデータが破損しないよう、常に守ってくれています。電気機器が動いているのは事実上の奇跡に近く、エンジニアリングの偉業のなせるわざです。舞台裏ではデバイスたちは、エラーを検出し、何事もなかったように通常運行を続けるべく、奮闘しているのです。
さて、これらのデバイスの秘密兵器は何でしょうか。それは「エラー検出訂正符号」です。「エラー検出訂正符号」は、破損しても修復できるように、情報を記号化する方式です。これらの符号のおかげで、電子機器は、完璧に動いているかのような外観を保てるのです。まあほとんどの場合は、ですが。
私たちは、いつもはコンピュータが「物」であることから目を背け、よくわからない純粋な情報の世界で動いているものだと思い込もうとしています。しかしエンジニアたちは、そうではない現実と常に格闘しています。
例えば、ルーターを経由して「SciShow」をみなさんの元にお届けしている電波は、距離が開くと弱くなります。思いがけない動きをする乳幼児は、ブルーレイディスクを傷つけたり、汚したりします。また、お隣さんのワイヤーから生じた電界や、太陽放射、雷、さらには宇宙線などによっても、ワイヤーやチップには、不必要な電流が流れます。
エンジニアたちは、これらすべての問題は、大事なシグナルを消してしまう一つの大きな「ノイズ」として処理しています。しかし、ノイズとして認識するだけでは不十分で、これを軽減する必要があります。
その解決法は、広義でいえば「冗長化」すること、つまりバックアップ用の情報を用意することです。そうすれば、情報が失われる事態が起きても、サルベージできる情報がバックアップされていることになります。
この問題に対する一番単純なアプローチは、「繰り返す」こと、つまり「繰り返し符号」です。もし私が、すべての「すべての」言葉を「言葉を」復唱すれば「復唱すれば」、片方が文字化けしたり変換されてしまってもすぐわかりますね。とはいえ、これでは明らかに非効率です。
これをより良い符号にするには、メッセージの各ブロックに「パリティビット」と呼ばれるものを付与するのです。パリティビットは、メッセージの1つのブロックの、2進法で表されるデータであるバイナリに含まれる1の数が、偶数か奇数かを示します。1の数が偶数であれば、パリティビットは「0」となります。奇数であれば、「1」となります。
さて、受信者であるデバイスが、1の数は奇数だと認識したにも関わらず、パリティビットが「0」だったとします。するとつまり、ビットのうち少なくとも1つは勝手に変換されてしまったことがわかります。つまり、これがエラーであるわけです。
受信者が、もう一度データを再送するよう要請できる環境であったり、エラーがあまり起こらない場合であれば、こういった検出方法で十分です。しかしデータストレージが無駄ですし、通信速度が遅い場合は、「前方誤り訂正」が必要となるでしょう。
「前方誤り訂正」は、わざわざ再送を行わずとも、ビット誤りを受信側で回復できるようにする冗長な符号を付加したデータを送信する方式です。
前方誤り訂正は、かなり昔、1940年代に開発されたものです。ベル研究所では、リチャード・ハミングという研究員が、10トン近くもある最近式の「コンピュータ」と呼ばれる機械と格闘し不機嫌になっていました。コンピュータは、人がいないと認識した時に問題を改善するようプログラムされていたため、ハミングがコンピュータの作業をするには、週末に出勤するしかありませんでした。
コンピュータが、ハミングのプログラムで破損データを検出した場合は、アボート(処理を中断)し、別のタスクに移行してしまうだけです。ハミングは、コンピュータがエラーを検出しても、特定し修復できないのはおかしいと考えました。そこで、その点を改善したのです。
彼のアイデアは、今日では「ハミング符号」として知られ、データのすべてのブロックに、複数のパリティビットを付与するのもです。すべてのパリティビットは、それぞれ異なるコンビネーションのデータビットを担当してチェックします。
あるパリティビットは、1、2、5番目のデータビットをチェックし、別のパリティビットは1、3、4番目のデータビットをチェックします。大抵は複数回、すべてのデータビットがカバーされます。
パリティビットは、データビットのコンビネーションに含まれる「1」の数が、奇数か偶数かを示してくれます。受信者が、データと異なるパリティビットがあると認識すれば、複数あるパターンと比べて、訂正するべき箇所がわかるのです。
ハミング符号は、シンプルで迅速であり、スペースもとらないため、エラー訂正メモリ(ECCメモリ)チップに、いまだに広く使われています。しかし、一度に1つのエラーしか修正できません。
この課題は、「リードソロモン符号」と呼ばれる、よりパワフルな一群の方式により解決されました。最初に「リードソロモン符号」の活用が注目されたのは、1970年代、NASAのボイジャー探査機から送られて来た、高解像度画像においてでした。
メッセージを細分化してパリティビットを付与するのではなく、リードソロモン符号で送信するひとまとまりのチャンクは、メッセージ全体と等しい情報を持っています。それを可能にしたのは、オリジナルのメッセージを、単なる数字ではなく、数学的な曲線上の点として再翻訳したことです。
送信者は、冗長性を持たせるために、同一曲線上に余分な点を付与して送信します。そのため、受信者に到達した時点で、いくつかの点が破損したり消失していても、受信者は元の形に復元できます。つまり、残った点から正しいメッセージを再構築できるのです。
リードソロモン符号は、エラー生存率を大幅に下げます。さらに、柔軟な調整が可能です。膨大な数の冗長な点を付与できますし、それでメッセージの容量が増えたとしても、それを上回るエラー修正をします。
そのため、これらの符号が、現在でも広く使われているのは、じゅうぶんに納得できます。これらの符号は今でも、壊れたQRコード、傷ついたハードドライブ、ひびの入ったケーブルテレビ受信機などの数多くのテクノロジーを守っています。
近ごろでは、これにさらなる性能が付与されています。CDや宇宙船などの多くのシステムでは、リードソロモン符号の補足に、インターリーブ、別名ジャンブル(バラバラにするの意)が用いられています。
これは、誤り訂正の能力を凌駕してしまうバーストエラーから符号をプロテクトできます。例えば、ルーレイに大きな長い傷がついても、バラバラにした元データを、元の順番に戻して修正可能なブロックへと変換するため、その後の誤り訂正が容易になります。
このように、リードソロモン符号にはさまざな機能がありますが、インターネットやスマホ、ケーブルテレビなどの多くの物に活用される符号は、他にもたくさんあり、その多くは類似の概念に基づいたものです。
パリティビットからリードソロモン符号、その他に至るまで、エラー修復・検出コードは、デジタル世界の知られざるヒーローです。スマホのプッシュ通知がきちんと表示されたり、宇宙から送られてきた画像を目にしたり、メールをチェックしたりする際には、みなさんはこれらの符号に大いにお世話になっているのです。
逆に、うまく通知が表示されなかった場合には何が起きているのか、これでわかったことでしょう。エラーは修復されることもあり、されないこともあるのです。
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05