brief.ing.gg

WIKI

ECC 메모리

ECC 메모리

메모리 오류를 검출·교정하는 ECC가 막을 수 있는 오류와 막지 못하는 오류는 무엇인가.

Scope

핵심 질문

ECC 메모리는 어떤 종류의 memory bit error를 검출·교정하고 데이터 무결성에 어떤 역할을 하는가?

Research

핵심 근거

  • 일반적인 SECDED ECC는 single-bit error를 교정하고 double-bit error를 검출할 수 있다.
  • ECC가 있어도 CPU, storage, cable, controller, software에서 발생하는 오류는 별개다.
  • 실제 ECC 기능을 사용하려면 memory module뿐 아니라 CPU와 motherboard가 지원해야 한다.

Draft

ECC(Error-Correcting Code) 메모리는 RAM에 추가된 오류검출 정보를 이용해 일부 bit error를 자동으로 교정하는 메모리 방식이다.

왜 필요한가

메모리 bit는 하드웨어 결함이나 전기적 요인 등으로 드물게 잘못된 값을 가질 수 있다. 데이터가 디스크에 기록되기 전에 RAM에서 이미 손상되면 filesystem checksum만으로 원인을 막을 수 없다.

일반적인 ECC

많은 시스템은 single-bit error correction과 double-bit detection을 제공한다. 교정 가능한 오류는 시스템을 중단하지 않고 수정하고 심각한 오류는 machine check로 보고할 수 있다.

만능은 아니다

ECC RAM은 메모리 경로의 일부 오류만 다룬다. SSD, SATA/SAS link, CPU bug, filesystem bug까지 보호하는 것은 아니다.

핵심

ECC는 데이터 무결성의 한 계층이다. checksum filesystem, storage redundancy, backup과 함께 사용할 때 전체 failure chain을 더 잘 방어할 수 있다.