Windows95発売の前後で、PCに搭載されるメモリーの仕様が地味に変わってきた。
PC-9801時代のビジネスパソコンは、当時として非常に贅沢に作られていた。
パソコンにメモリーを増設したり、ボードを追加するとなると本体をネジで開ける必要があった。今もデスクトップパソコンは変わらないのだが、ちゃんとマニュアルが付属しており、開け方や接続方法なんかが丁寧に説明されていた。
ホビー用PCと比べると使っている部品なんかで「おぉ!金かかってんなー!」と違いがわかったものである。
機能追加用の接続端子は金メッキだらけで、今高騰している「金」の使用率もかなり高く、そのうち金の抽出のためだけに、レトロPCの売買ブームがあるかもしれない。
NEC PC-9801シリーズは発売当初から1995年のPC-9821Xaまでは、基本的にパリティー有りメモリーが搭載されていた。格下のPC-8801シリーズはパリティ無しである。
パリティとはメモリーに書き込まれたデータが、合っているか間違っているか判別できるようにするものだ。
パリティー有りメモリーだが色々と仕様の違いはあるものの、多くは8bit(1Byte)のデータに対して、検査用のメモリー1bitを追加した物である。
2進数に直すと00000000~11111111まで有るわけだが、この1の数(ビット)を数えて偶数なら0、奇数なら1として検査用のメモリーに追記する。
例えば「10101010」は偶数なので、検査用のメモリーは「0」だ。これが「1」だったら誤りなので、PC側に通知される。
パリティー無しメモリーは、この機能が全く無い。
パソコンがパリティー有りか無しかは、概ねメモリーのチップを数えれば分かった。
一般的には8個または16個の場合(2個とか4個とかもあるけど)はパリティ無しメモリーで、9個または18個載っていたらパリティー有りである。実際に使うビット数は8bitなものの、読み書きするデータは9bitなのが特徴である。ちょうどパリティチェックの分だけチップが増えるのだ。
もちろん、その分コストがかかるため高信頼性を求められるPCについてのみ搭載されていた。この頃はビジネス向けとされているPCである。
実際のところ、パリティ有りメモリーを使って役に立った場面があったかと言われれば、一度も無い!
たまに起動時のメモリーチェックで引っかかった経験はあったが、再起動したら何事も無く動作したし、動作中にパリティエラーに遭遇することもなかった。
この時代にもしも動作中にパリティエラーに遭遇したらどうなるかだが、誤りを教えてくれるだけなので、結局エラーを表示してPCが停止するだけだった。
誤ったデータを書き込まれることは無いが、保存していないデータは問答無用で全て破棄されるのである。今だとブルースクリーンになるようなもので、結局再起動ボタンを押す他に出来ることはなかった。
この時代のメモリーから既に「永久保証」を謳うメーカーも多く、それだけメモリーの故障は珍しかった。
よって、ほとんどの方には単に落ちるだけで、役に立たない機能だった。
ちょうどWindows95が発売されPC-9801シリーズの優位性が崩れると、コストダウンのためか全てのシリーズでパリティ無しメモリーを使うようになった。
今のPCの祖先であるDOS/V機は最初からパリティ無しが主流だったことも大きかった。
PC-9801シリーズは機種ごとに専用メモリーを使う事が一般的だったのだが、DOS/V機と同じSIMMを搭載するようになり、メモリーも共通化されていった。
当時はNEC純正メモリー、サードパーティー製メモリー(BUFFALOとかI-Oデータだとか)、ノーブランド製品と色々あったのだが、パワーユーザーは好んでノーブランド製品を使っていた。
NEC純正メモリーなんかを選ぶのは、物を知らない会社位なものだったろう。その位値段が違った。
この時代は年単位でメモリー要求量が倍々に増えていったので、個人の場合は保証なんか求めるより安い物を次々買い換えた方がコスト的にメリットがあった。
(実際に自身は8MB→24MB→48MB→128MBと増やした)
違いはメモリーの品質で定格で使う分にはほとんど変わらなかった。検査時に定格より高速で動作させたり低温高温環境で選別したりするのだが、それが純正品になったり、サードパーティー製メモリーになったりする。規格から外れたものの一般的な環境なら問題無さそうというB品がノーブランド製品として流通していたりするのだ。
実は現在でも同じ状況だ。似たようなメモリーなのに値段が違うのはこれが原因である。
保証外のクロックアップなんかすると、さすがに違いが現れるが、これが問題になるのはマニアだけだろう。
こうして市場のほとんどはパリティ無しメモリーになった。
ただ、そうは言ってもメモリー品質を求められるPCもある。多くはサーバーと呼ばれるPCと、ハイパフォーマンスが必要なワークステーションと呼ばれるPCである。
サーバーなんかは、電源を一度入れると24時間365日切られることは無い。
そこで新しく用意されたのがECCメモリーである。パリティ有りメモリーが発展したものだ。
IntelのXeonとか、AMDのOpteronとかサーバーやワークステーション向けCPUが発売された2000年代初めの頃に普及を始めた。
このECCメモリーだが、使うメモリー量はパリティ有りメモリーと変わらない。ただしメモリー管理の手法が変わり、多くが64bit(4Byte)のメモリーに対して、拡張ハミング符号(SECDED)と呼ばれる8bit(1Byte)の計算結果を書き込むようになった。
64bit中1bitのデータ誤りに関しては場所を特定して修復することができて、どこかは不明だが2bitの誤りが検出できるよう工夫されている。残念ながら3bit以上間違うと何も分からない。
この計算のための回路追加でコストがかかることと、計算時間のためパリティ無しメモリーより低速で動作せざるを得ないのがデメリットだった。
今では色々と工夫してコストが下がるようになり、パリティ無しメモリーとほぼ同等の速度で書き込めるようになっている。
しかしパリティ無しメモリーと同等以下のコストにはならないため、現在のPCにおいてもパリティ無しメモリーが一般的だ。
ではECCメモリーを使うメリットがあるかと言われれば、今度はちゃんとある。
WindowsServerでも「イベントビューアー」でログを探すと、1年に1回あるかないかだが「修正されたハードウェア エラー」の中にメモリーの修復がされた旨のログが残っていたりする(メーカーによるらしいけど)
逆に言うと、その位の確立しかメモリーエラーは発生しない。
ただ止まらないだけなのだが、これが非常に大事だったりする。複数台サーバーがあるとバカにならない確率なのだ。2000年代中旬になるとファイルサーバー以外にも次々と業務用サーバーが立てられたため、昼間なら良いけど真夜中ならとても面倒なのである。
個人的な経験でしか無いが、発生する確率が高まるのが太陽フレアの現象だ。
たまにニュースなんかになるが、太陽の活動が活発になり大規模な爆発現象が発生すると、磁場エネルギーが地球まで到達してしまい、電子機器に異常が発生することがある。
普通の人は何の影響も無いし、大きなオーロラが発生したりして観光のチャンスだったりするのだが、極一部の方はインフラに影響が出たこともあり待機状態に入るのだ。
データセンターなんかも一応は気にしているのだが、このECCの機能で一応は涼しい顔だ。
あとでログを見ると、数台のサーバーで同時期にログに残っていたりして、「あぁ太陽フレアの影響かな?」なんて思う感じでいられる。これが単にパリティ有りメモリーだと全部が再起動になるので大慌てになるのだ。
もしも2bit誤ったらブルースクリーンで止まるのだが、それは今まで見たことが無い。太陽フレアがあっても、その位の確率だ。
ちなみに高高度になると確率が上がり、飛行機や人口衛星なんかは無視できない。2025年11月末にエアバス社が「A320」をリコールしたが、太陽フレアでデータ損傷を受ける恐れがあるとのことで、まさにこの事だろう。
たまたま3bit誤ったという状況はあり得なくは無いが天文学的確率だ。3bit以上になると、そもそもメモリーが故障しており1bit修復エラーが多発している状況の方が確率が高い。誤り検出はできないのだが、事実上そんな状況が発生する前に事前にメモリー交換される可能性が高い(サーバだと警告ランプが点灯する)ので、まず経験することは無いだろう。
現在になると産業用、医療用、軍事用なんかはECC必須なのだが、それ以外はビジネス用でもパリティ無しメモリーのPCが標準となった。
こうしてメモリーも棲み分けが進んでいった。
ちなみに老兵がこのブログを書いているPCは、Transcend社製のJetRamというメモリーを使用している。CPUはRyzen 7 PRO 4750GなのでECCメモリーが使用できるのだが、パリティ無しのB級品メモリー(一応保証はあった)だったりする。
サードパーティー製メモリーとノーブランド品の間位だろうか?
もう5年以上使用しているが、これで今まで全く問題が無かった。あってもECCメモリーなんか高くて買えないけどね。



コメント