ECCメモリ ECCメモリの概要

ECCメモリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/27 07:40 UTC 版)

多くの ECCメモリ DIMM は片面につき、非ECC DIMM より1個多い9個のメモリチップを搭載している。(モジュールによっては5個または18個のこともある)[1]

多くの場合、ECCメモリは1ビットでエラーが生じても維持できる記憶装置である。もしビットが壊れて1ビット反転したとしても、各ワードから読み出されるデータは常に書き込まれたときのデータと同じになるよう修正される。一方、非ECCメモリは誤りを修正できない。パリティをサポートする非ECCメモリは誤りを検出できるが、訂正はできない。

当初、ECCメモリではエラー検知・訂正の処理などで非ECCメモリと比べて数%程度の性能劣化が発生するとされていたが、CPUにECC機能が統合されてからは性能劣化の問題は解決されつつある。

背景の問題

コンピュータシステム内部の電磁気的な干渉により、ダイナミックRAM(DRAM)の1ビットが自発的に反転することがある。 はじめはチップのパッケージに含まれる不純物から放射されるアルファ粒子が主な原因だと考えられていたが、DRAM チップの単発的なソフトエラー英語版の多くは環境放射線、主に二次宇宙線に含まれる中性子によって1つかそれ以上のメモリセル英語版の内容が変化するか、読み出しまたは書き込み回路が妨害されるためであることが研究で示された [2]。 したがって誤り率は標高とともに急速に上昇する。たとえば、標高1,500mでは海面よりも中性子束が3.5倍に増え、10〜12kmの高度(旅客機の巡航高度)では300倍にもなる [3]。 その結果、高度の高い場所で運用される装置には特別な信頼性対策が必要となる [4]

一例として、1997年に打ち上げられた土星探査機・カッシーニは、それぞれ2.5ギガビットの市販のDRAMチップを持つ同型のフライトレコーダーを2つ搭載していた。 組み込みの誤り検出訂正機能(EDAC)のおかげで、探査機のエンジニアリングテレメトリは(訂正可能な)ワードあたり1ビットのエラーと(訂正不可能な)ワードあたり2ビットのエラーの数を報告してきた。 はじめの2年半の飛行で、探査機は1日に約280回でほぼ一定の1ビットエラーを知らせてきた。 しかし1997年11月6日、1日のエラーの数は4倍以上だった。これは GOES 9 衛星が検知した太陽フレアの影響だった [5]

DRAMがどんどん高密度になり、チップ上の部品が微小化すると同時に、動作電圧が低下し続けるため、DRAMチップがそのような放射線の影響をより頻繁に受けるようになることが懸念された。低エネルギーの粒子がメモリセルの状態を変化させられるようになるからである [3]。 一方、メモリセルが小さくなれば標的が小さくなるわけであり、またSOIのような技術への移行により、個々のメモリセルの感受性は従来と変わりないか、むしろ低下するかもしれない。 最近の研究は、プロセスの形状により、またメモリセルのエラー発生率が上昇するという予測に根拠がなかったことにより、宇宙線によるシングル・イベント・アップセット英語版(SEU、一時的なソフトエラー)が劇的に減少したことを示している [6]

2007〜2009年の研究で、エラーの発生率が10−10 エラー/ビット・時(およそ1ギガバイトのメモリで1時間に1ビットのエラー)から 10−17 エラー/ビット・時(およそ1ギガバイトのメモリで千年に1ビットのエラー)まで7桁にわたってさまざまであることが発表された [6][7][8]。 グーグルの非常に多くのサーバーを対象にした大規模な研究が SIGMETRICS/Performance’09 conference で発表された [7]。 実際に観測されたエラー発生率は小規模な研究よりも数桁高く、1メガビットあたり10億時間ごとに 25,000〜70,000回だった (およそ 2.5〜7 × 10−11 エラー/ビット・時、つまり8ギガバイトのRAMで1時間に5ビットのエラー)。 毎年8%以上の DIMM がエラーの影響を受けていた。

メモリエラーの結果はシステムによって異なる。 ECCのないシステムでは、エラーはクラッシュかデータの損失を招く。 大規模な工場では、メモリエラーはマシンのクラッシュを起こすもっとも一般的なハードウェア的原因の1つである [7]。 メモリエラーはまた、セキュリティ脆弱性の原因にもなる [7]。 観測可能な誤動作の原因になったり、計算または保存に使われるデータに影響したりしなければ、メモリエラーの影響を受けないことがある。 2010年のシミュレーション研究から、ウェブブラウザに対して、メモリエラーのわずかな一部分のみがデータの損失を引き起こすが、しかし多くのメモリエラーは断続的で相関的なので、メモリエラーの影響は独立なソフトエラーから予期されるよりも大きいことが示された [9]

隣接したメモリセルへの特別に細工したアクセスによる意図しない副作用により、DRAMメモリセルどうしの分離が迂回されうるといくつかの実験は結論づけている。 したがって、近年のメモリセル密度の上昇に伴い、DRAMに格納されたデータへのアクセスがメモリセルに電荷の漏れと電気的な相互作用を引き起こし、元のメモリアクセスで指定されていない近傍の行の内容が書き換わる。 この効果はロウハンマーとして知られており、コンピュータセキュリティ上いくつかの特権昇格英語版攻撃に使われている [10][11]

例として、1ビットエラーは、エラーチェックのないシステムでは無視されるだろう。パリティチェックのあるマシンは停止するだろうし、またはECCによって自動的に訂正されるかもしれない。 ASCII形式で数字を保持している表計算ソフトが読み込まれているとしよう。"8"の文字(2進数で 0011 1000)が格納されたバイトの最下位ビットが、チップの故障で1に固定されてしまうか、環境放射線や宇宙線によって1に変化してしまうと、表計算ソフトとその保存データが変化する。結果として"8"はこっそりと"9"(2進数で 0011 1001)になってしまう。

解決策

望ましくないビット反転に対処するため、いくつかのアプローチが開発されている。障害許容性プログラミング[訳語疑問点](immunity-aware programming)、パリティつきRAM英語版ECCメモリなどである。

余分なビットを持つメモリとこれらのビットを使うメモリコントローラを持つDRAMモジュールを使うことで、この問題を緩和することができる。 これらの余分なビットにはパリティまたは誤り訂正符号(ECC)を記録する。 パリティは1ビット(実際上は奇数ビット)のエラーを検出できる。 最も一般的な誤り訂正符号はハミング符号(ハミングコード)で、1ビットのエラーを訂正でき、(普通の構成では余分なパリティビットを使って)2ビットのエラーを検出できる1ビットエラー訂正2ビットエラー検出(SECDED、single-error correction and double-error detection)である。 Chipkill ECCはより効果的なバージョンで、メモリチップ全体のデータ損失を含む複数ビットの訂正ができる。


  1. ^ Werner Fischer. “RAM Revealed”. admin-magazine.com. 2014年10月20日閲覧。
  2. ^ Single Event Upset at Ground Level, Eugene Normand, Member, IEEE, Boeing Defense & Space Group, Seattle, WA 98124-2499
  3. ^ a b "A Survey of Techniques for Modeling and Improving Reliability of Computing Systems", IEEE TPDS, 2015
  4. ^ 設計品質確保の思想――航空宇宙エレクトロニクスに学ぶ「信頼性設計」(檜原弘樹)”. CQ出版社. 2018年7月10日閲覧。 “宇宙空間で高エネルギー粒子が半導体デバイスに与える影響”
  5. ^ Gary M. Swift and Steven M. Guertin. "In-Flight Observations of Multiple-Bit Upset in DRAMs". Jet Propulsion Laboratory
  6. ^ a b Borucki, "Comparison of Accelerated DRAM Soft Error Rates Measured at Component and System Level", 46th Annual International Reliability Physics Symposium, Phoenix, 2008, pp. 482–487
  7. ^ a b c d Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich (2009). “DRAM Errors in the Wild: A Large-Scale Field Study” (PDF). SIGMETRICS/Performance (ACM). ISBN 978-1-60558-511-6. http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf. Lay summary – ZDNet. 
  8. ^ A Memory Soft Error Measurement on Production Systems”. 2018年7月16日閲覧。
  9. ^ "A Realistic Evaluation of Memory Hardware Errors and Software System Susceptibility". Usenix Annual Tech Conference 2010” (2010年). 2018年7月16日閲覧。
  10. ^ Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors (PDF)”. ece.cmu.edu. IEEE (2014年6月24日). 2015年3月10日閲覧。
  11. ^ Dan Goodin (2015年3月10日). “Cutting-edge hack gives super user status by exploiting DRAM weakness”. Ars Technica. 2015年3月10日閲覧。
  12. ^ CDC 6600”. Microsoft Research. 2011年11月23日閲覧。
  13. ^ Parity Checking”. Pcguide.com (2001年4月17日). 2011年11月23日閲覧。
  14. ^ a b Johnston, AH (2001). “Space radiation effects in advanced flash memories”. Non Volatile Memory Technology Symposium 2001. https://hdl.handle.net/2014/13431. 
  15. ^ ECC DRAM – Intelligent Memory”. intelligentmemory.com. 2014年12月23日閲覧。
  16. ^ HP-UX Developer Edge”. 日本ヒューレット・パッカード株式会社. 2017年7月22日閲覧。 “ダブルチップスペア(1ビットエラーが発生してもシステムは継続運用)”
  17. ^ ECCメモリについて”. クラスターコンピューティング株式会社. 2017年7月10日閲覧。 “ロギング、メモリスクラビング”
  18. ^ a b Using StrongArm SA-1110 in the On-Board Computer of Nanosatellite”. Tsinghua Space Center, Tsinghua University, Beijing. 2011年10月2日時点のオリジナルよりアーカイブ。2009年2月16日閲覧。
  19. ^ Actel engineers use triple-module redundancy in new rad-hard FPGA”. Military & Aerospace Electronics. 2009年2月16日閲覧。
  20. ^ SEU Hardening of Field Programmable Gate Arrays (FPGAs) For Space Applications and Device Characterization”. Klabs.org (2010年2月3日). 2011年11月25日時点のオリジナルよりアーカイブ。2011年11月23日閲覧。
  21. ^ FPGAs in Space”. Techfocusmedia.net. 2011年11月23日閲覧。[リンク切れ]
  22. ^ Commercial Microelectronics Technologies for Applications in the Satellite Radiation Environment”. Radhome.gsfc.nasa.gov. 2011年11月23日閲覧。
  23. ^ Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Archived 2009-09-05 at the Wayback Machine.. 2005 - 2009. "The 'edac' kernel module goal is to detect and report errors that occur within the computer system running under linux."
  24. ^ コンピュータアーキテクチャの話(269) IBMの研究員が考案したHsiaoコード | マイナビニュース”. 株式会社マイナビ. 2018年7月11日閲覧。 “Hマトリクスの"1"の数が少ない方が、XORゲートが少なく、計算時間も短くて済む。”
  25. ^ a b Doe Hyun Yoon; Mattan Erez. "Memory Mapped ECC: Low-Cost Error Protection for Last Level Caches". 2009. p. 3
  26. ^ Daniele Rossi; Nicola Timoncini; Michael Spica; Cecilia Metra. "Error Correcting Code Analysis for Cache Memory High Reliability and Performance".
  27. ^ Shalini Ghosh; Sugato Basu; and Nur A. Touba. "Selecting Error Correcting Codes to Minimize Power in Memory Checker Circuits". p. 2 and p. 4.
  28. ^ Chris Wilkerson; Alaa R. Alameldeen; Zeshan Chishti; Wei Wu; Dinesh Somasekhar; Shih-lien Lu. "Reducing cache power with low-cost, multi-bit error-correcting codes". doi: 10.1145/1816038.1815973.
  29. ^ M. Y. Hsiao. "A Class of Optimal Minimum Odd-weight-column SEC-DED Codes". 1970.
  30. ^ 非同期SRAM”. Cypress Semiconductor Corp.. 2018年7月15日閲覧。
  31. ^ Jangwoo Kim; Nikos Hardavellas; Ken Mai; Babak Falsafi; James C. Hoe. "Multi-bit Error Tolerant Caches Using Two-Dimensional Error Coding". 2007. p. 2.
  32. ^ Intel Corporation. "Intel Xeon Processor E7 Family: Reliability, Availability, and Serviceability". 2011. p. 12.
  33. ^ Nathan N. Sadler and Daniel J. Sorin. "Choosing an Error Protection Scheme for a Microprocessor’s L1 Data Cache". 2006. p. 1.
  34. ^ L.Hennessy, John; A.Patterson, David (1994). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. p. 101. ISBN 1-55860-281-X 
  35. ^ Specification of desktop motherboard that supports both ECC and non-ECC unbuffered RAM with compatible CPUs
  36. ^ Discussion of ECC on pcguide”. Pcguide.com (2001年4月17日). 2011年11月23日閲覧。
  37. ^ Benchmark of AMD-762/Athlon platform with and without ECC Archived 2013-06-15 at the Wayback Machine.


「ECCメモリ」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ECCメモリ」の関連用語

ECCメモリのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ECCメモリのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのECCメモリ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS