ECCメモリ:このRAMの特性と動作

ECCメモリ

確かに、ECCメモリの概念を読んだり聞いたりしたことがあります。特に、このタイプのメモリが使用されるサーバープロセッサについて話している場合はそうです。 しかし、それらはコンピュータで伝統的に使用されているものとどのように異なりますか? デスクトップPCまたはラップトップにインストールできますか? 頭字語ECCはどういう意味ですか? 説明します。

サーバーの世界では、 RAM RDIMMモジュールの形式で表されるレジスタードメモリと呼ばれるものに加えて、通常は頭字語ECCを伴うメモリが使用されます。 したがって、この記事では、PCに通常あるハードウェアについては説明しません。ただし、ワークステーションに CPU HEDTタイプの場合、またはサーバーを毎日使用します。

レジスタードRAMまたはRDIMMとは何ですか?

RDIMMメモリレジスタ

レジスタードRAMメモリは、この場合はRDIMMと呼ばれるメモリモジュールとシステムメモリコントローラの間にレジスタが配置されているという詳細により、従来のメモリとは異なります。 このレジスタは、次の情報を格納するためのメモリです。

  • アクセスするメモリアドレス。
  • コマンド(読み取り、書き込み、またはコピー)
  • RAMと通信するクロック速度

データはデータ通信用のクラシックピンを介して送信されますが、メモリへのアクセスを許可するコマンドはこのレジスタを使用して実行されるという点で、従来のDIMMとは動作が異なります。 これは、シグナルインテグリティを高め、メモリコントローラの電気的負荷を軽減するために行われます。これにより、システム内でより多くのメモリモジュールをサポートできるという利点があります。

ただし、RDIMMモジュールは、レジストリにアクセスするための追加のステージが追加されるため、従来のモジュールよりも使用が遅くなります。これにより、RDIMMの帯域幅が大幅に減少し、遅延が大幅に増加します。 ただし、PCで使用されるDIMMモジュールは、HEDT CPUとサーバーに基づくワークステーションの場合のように、通常XNUMXつ以下のアクセスチャネルがあるデスクトップPCでの使用を目的としています。

RAMのECCとは何ですか?

インテル®Xeon®

揮発性メモリであるRAMは、格納するデータを維持するために電気に依存しているため、損失が発生しやすいことを考慮に入れる必要があります。 特に、PCで使用しているものがDRAMタイプであるため、時々負荷をリフレッシュする必要があることを考慮すると、磁気的および電気的干渉に対して脆弱になります。

通常、RAMメモリの各セルのビットは通常変化しません。これは、両方の値の間に電圧の距離が十分に大きいため、ある値から別の値にジャンプしないためです。ただし、新しい世代がリリースされると、メモリは低下します。差電圧であり、情報を維持するためにエラー訂正方法またはECCが必要な場所です。

しかし、アイデアを得るために、バイナリの単純な値011101011を使用します。これは、235進数では数値XNUMXに相当します。

  • 最初のビット111101011が変更されると、値は491になります。
  • 変更されるのが001101011番目のビット107の場合、値はXNUMXになります。
  • 011001011番目のビットを変更すると、値は203になり、したがってXNUMXになります。

ご覧のとおり、RAMの値を簡単に変更すると、メモリアドレスのデータの値が変更される可能性があります。データを格納するだけでなく、命令も格納することを考慮に入れる必要があります。サーバーについて考えると、これらは24時間年中無休で動作するように設計されていることを覚えておいてください。つまり、永続的に動作します。 DRAMが安定した状態を維持できないことを考慮に入れる必要があります。そのため、時間の経過とともにエラーが大きくなり、システムの一般的なクラッシュにつながる可能性があります。

ハミングのコード

コディゴハミングECC

ECCメモリ信号のエラーを修正するために使用される方法はハミングコードと呼ばれます。これはCPUによって実行されるアルゴリズムのタイプではありませんが、プロセッサ内のメモリコントローラ自体で実行されます。 このタイプのRAMをサポートしています。 その名前は、それを開発したアメリカの数学者リチャードW.ハミングに由来しています。

それはどのように機能しますか? ハミングコードの考え方は、パリティビットの値を比較することによってエラー訂正のための冗長ビットを追加することです。 これを行うには、ビットを左から右にカウントし、格納されている値に応じて番号を付けますが、位置は考慮されます。

位置が2の累乗(1、2、4、8…)に対応するビットはパリティビットとしてマークされ、残りのビットはデータのみのビットとしてマークされます。 パリティビットはビット文字列の最後でXNUMX倍になるため、繰り返されるため、冗長ビットとも呼ばれます。 データの整合性をチェックするには、データを相互に比較して、メモリに格納されている信号の整合性をチェックします。

CódigoHammingビットパリダッド

操作がメモリ書き込みの場合:

  • CPUは情報をメモリコントローラに送信し、そこで変更するメモリアドレスと書き込みたいデータを通知します。
  • コントローラはECCコードを生成し、それをメモリに送信します。
  • データはメモリに保存されます。

一方、メモリから読み取った場合。

  • CPUは、RAMへの要求を行うコントローラへのメモリアドレスへの要求を行います。
  • コントローラはハミングコードを実行してチェックを実行します。データが正しい場合はCPUに送り返され、正しくない場合はエラー訂正プロセスが自動的に実行されます。

ECC付きRAMモジュール

RAM ECC yECCなし

一部のビットはエラー訂正に使用されるため、ECCメモリモジュールには、同じストレージ容量があるにもかかわらず、より多くのメモリチップが搭載されています。 ECCメモリでは、パリティがすべてのバイトで実行されるわけではないことを考慮に入れる必要があります。 9バイトあたり64ビットのブロックを使用するので、最終的にはデータを格納するために8ビット、パリティビットとしてXNUMXビットになります。

これは、RAMで通信するプロセッサのメモリコントローラがハミングコードを生成できる必要があることも意味します。ECCタイプのメモリは通常、デスクトップCPUよりも高度なCPUで使用されるため、このタイプのサポートを意味します。メモリの数には、特別なメモリコントローラだけでなく、このタイプのメモリをサポートする特別なマザーボードも必要です。 自宅のPCは永続的に電源がオンにならず、定期的に再起動するため、ECCメモリは使用されません。

これで、ECCを備えたRDIMMである記事の最後の部分に到達します。これは、XNUMXつのタイプのRAMの特性と、それらのすべての長所と短所を明らかに組み合わせたものです。 現在まで、すべてのRDIMMメモリがサーバーおよびHEDT用であり、その市場でエラー訂正コードが必要であることを考えると、ECCではない単一のRDIMMメモリモジュールはありません。