ECC Memory의 기본 개념 및 역할
ECC Memory는 데이터와 함께 여분의 패리티 비트(Parity Bits)를 저장하여 메모리 오류를 감지하고 정정하는 기술입니다. 금융, 과학 연산, 안전 관련 시스템 등 데이터 손상이 용인될 수 없는 환경에서 사용됩니다. 일반 패리티 방식과 달리 ECC는 오류의 위치를 파악하여 자동으로 오류 비트를 복원할 수 있습니다.
주요 ECC 알고리즘과 동작 방식
가장 널리 사용되는 방식은 Hamming 코드 기반의 SECDED(Single-Error Correction, Double-Error Detection)입니다. 이 방식은 단일 비트 오류를 정정하고 이중 비트 오류를 검출합니다. 데이터를 읽을 때마다 메모리 컨트롤러의 ECC 체크 로직이 저장된 패리티를 검증하며, 오류 발생 시 신드롬(Syndrome) 값으로 오류 위치를 파악하고 자동 정정합니다. 읽기/수정/쓰기 작업 같은 부분 쓰기 시에는 읽은 데이터의 오류를 먼저 정정한 후 새 데이터와 병합하여 처리합니다.
현대 서버 메모리에서의 ECC 구현
DDR5부터는 칩 온다이(On-Die) ECC가 표준화되어, 메모리 칩 자체에 128비트당 8비트의 ECC 저장 공간을 할당합니다. Linux 커널의 EDAC(Error Detection And Correction) 드라이버를 통해 발생한 오류를 실시간으로 모니터링하고 로깅할 수 있으며, x86 시스템에서는 머신 체크 아키텍처(MCA)와 MSR(Model-Specific Register)을 활용해 오류 주소, 채널, 신드롬 정보를 기록합니다.