Notice
Recent Posts
Recent Comments
휴이의 기록보존공간
DDR5의 ECC기능 본문
현재 시장에는 DDR5 메모리가 출시되었습니다.
DDR5에서는 DDR4에 비해서 새롭게 도입된 기능과 변경사항이 많습니다.
Die Density가 최대 16Gb에서 64Gb로 증가함에 따라 보통 일반사용자가 접하고 사용하는 udimm(unbufferd dimm)의 경우에는 한 스틱당 용량이 최대 32GB에서 128GB로 증가합니다.
최대속도의 경우에는 메모리나 낸드의 표준을 정하는 JEDEC의 표준으로 DDR4에서는 3200Gbps이었던 것이 DDR5에선 6400Gbps로 증가하며 전압은 반대로 1.2V에서 1.1V로 감소합니다.
그외에도 PMIC(Power Management Integrated Circuit)가 메인보드에서 램 위로 위치가 변경되며 DFE(Decision Feedback Equalization)의 도입, dimm 하나당 듀얼 채널 구현, ecc추가 등 많은 요소가 변경되었습니다.
그중에서 이 글은 DDR5의 기본 기능인 ECC에 대해서 설명하고자 합니다.
우선 ECC에 대해 알아보아요.
메모리를 가지고 있는 모든 시스템에서는 메모리 오류가 발생할 가능성이 존재합니다.
시스템이 가동 중인 상태에서 이러한 오류를 처리하고 가동시간을 연장시키기 위해서는 advanced RAS(Reliability, Availability, Serviceability) 기능이 있어야 합니다.
ECC(Error Correction Code)는 가장 많이 사용되는 RAS기능입니다.
일반 메모리와 다르게 ECC 메모리에서는 데이터에 대해서 ECC SECDED(Single bit Error Correction & Double bit Error Detection) 코드를 생성하고 저장합니다.
차례차례 순서를 들어 설명하자면
1. 컨트롤러가 쓰기 데이터를 기반으로 ECC코드를 생성하고 이를 메모리에 저장
2. 읽기 작업 중 컨트롤러는 메모리에 저장된 데이터와 ECC코드를 모두 읽음
3. 읽은 데이터를 토대로 ECC코드를 재생성함
4. 읽은 ECC코드와 재생성한 ECC코드를 비교함
5. 서로 일치한다면 오류는 발생하지 않은 것이며 일치하지 않는다면 오류가 발생한 것임을 알 수 있음
이러한 작업 중에 처음으로 생성된 ECC코드를 저장하는 위치에 따라 ECC는 Sideband ECC와 inline ECC로 나뉘어요.
Sideband ECC가 보통 말하는 ECC램에 사용되는 방식이고 inline ECC의 경우에는 효율의 문제로 Sideband ECC를 사용하지못하는 LPDDR(Low Power DDR)에 사용됩니다.
그리고 DDR5에서 새로 생긴 ECC의 방식이 Ondie ECC와 Link ECC입니다.
Ondie ECC가 우리가 앞으로 볼 DDR5에 적용되는 방식이며 Link ECC의 경우에는 LPDDR5에 적용되는 방식이에요.
Sideband ECC는 컨트롤러가 실제 데이터와 함께 ECC를 쓰고 읽기 때문에 End to End 보호(종단 간 보호)가 가능해져요.
좀 더 풀어 말하자면, 메모리에 데이터를 쓰기부터 읽어올때까지 보호가 가능해지는거에요.
하지만 DDR5의 Ondie ECC는 Ondie라는 말에서 유추할 수 있듯이 메모리가 내부적으로 쓰기 데이터를 토대로 ECC를 저장하고 읽기 작업이 발생할 때 다시 내부적으로 ECC를 계산해 비교하는 방식이에요.
그렇기 때문에 메모리의 내부에선 오류에 대해 보호하지만 메모리 내부에 기록된 데이터가 이동할 때 발생할 수 있는 오류에 대해선 보호를 하지 못해요.
다시 말하자면 Sideband ECC가 제공하던 End to End 보호를 Ondie ECC는 제공하지 못한다는거죠.
사실 이 Ondie ECC를 넣어준건 우리를 위해서가 아니라 메모리 용량이 커지면서 내부 데이터량이 증가해 ECC를 사용하지 않고서는 전압을 내리고 클럭을 올리는게 힘들기 때문이에요.
지금까지 ECC UDIMM에서 제공하는 싱글 비트 ECC에 대한 설명이었어요.
예전에 썼던 글을 블로그를 시작하기 몇시간 전에 다시 써보면서 개념을 다지는데 아직 지식에 부족한 점이 많다는 것을 다시 한번 깨닫게 되는 시간이었다.
분명 틀린 부분도 만만치 않을 것 같다고 생각하는데...
이 글은 그저 백업용으로 두는 걸로 하고 나중에 더 공부할 기회가 생기면 다시 작성해보는 것도 나쁘지 않을 것이라 생각한다.
사실 블로그도 그냥 이런 기록용으로 남긴 거니까
'콤퓨타 & IT > 하드웨어' 카테고리의 다른 글
SMART Modular의 Kestral PCIe Optane AIC (0) | 2022.04.17 |
---|---|
Noctua의 2022년 2분기 로드맵 (0) | 2022.04.06 |
Solidigm의 첫 제품 (04.29 최종 수정) (0) | 2022.04.05 |
2TB의 RAM Disk? (0) | 2022.03.21 |
Intel W680칩셋에서 Alder Lake의 ECC지원 (0) | 2022.03.10 |
Comments