ECC 메모리

오류 정정 코드(Error-Correcting Code, ECC) 메모리는 저장한 데이터와 함께 검사 비트를 기록해 일부 비트 오류를 검출하고 수정한다. 일반적인 SECDED 구성은 한 데이터 단위의 단일 비트 오류를 수정하고 이중 비트 오류를 검출할 수 있지만, 실제 보호 범위는 메모리 컨트롤러와 플랫폼 구현에 따라 달라진다.

ECC는 모듈만 바꾸면 생기는 기능이 아니다. CPU의 메모리 컨트롤러, 메인보드 배선과 UEFI, 모듈 종류가 모두 ECC 동작을 지원해야 한다. ECC UDIMM, RDIMM, LRDIMM은 신호 버퍼 구조와 플랫폼 대상이 다르며 서로 혼용하지 않는다.

DDR5 DRAM 칩의 On-Die ECC는 칩 내부 셀 배열의 오류를 보정한다. 메모리 버스와 모듈, CPU까지 이어지는 데이터 경로의 오류를 운영체제에 보고하는 시스템 ECC와 목적이 다르다. DDR5 비ECC UDIMM에 On-Die ECC가 있다는 이유로 시스템 ECC와 같은 보호를 제공한다고 볼 수 없다.

Chipkill과 같은 고급 RAS 기능은 여러 DRAM 장치에 데이터를 배치해 칩 단위 고장까지 견디도록 설계할 수 있다. 서버 플랫폼의 메모리 미러링·스페어링도 ECC와 별개의 가용성 기능이다.

오류 수정 횟수는 하드웨어 상태의 단서다. 수정 가능 오류가 반복 증가하면 특정 DIMM·슬롯·채널·온도와의 관계를 기록하고, 수정 불가 오류는 데이터 무결성과 시스템 중단 가능성을 우선한다. 단순히 “ECC가 고쳤으니 문제없다”고 넘기지 않는다.

DRAM 내부 ECC 참고: Micron DDR5 New Features