모든 이야기

DRAM retention을 한 번 측정해서 안전한 셀 목록을 만들기 어려운 이유

refresh를 줄이기 전에 DRAM의 약한 셀을 찾아 따로 관리한다는 발상은 매력적이다. 한 번 길게 기다려 오류가 나는 위치를 기록하면, 나머지는 더 천천히 refresh해도 될 것 같다. 이 전략에는 숨은 가정이 있다. 오늘 측정한 셀의 retention이 내일도 같은 값이어야 한다. Variable Retention Time, VRT는 그 가정을 흔든다.

retention time은 저장한 정보를 다시 복원하지 않고 어느 정도 유지할 수 있는지를 나타낸다. 셀마다 값이 다를 뿐 아니라 같은 셀도 시간에 따라 짧은 보존 상태와 긴 보존 상태를 오갈 수 있다. 이를 그냥 측정 잡음으로 지워 버리면 profile이 안전하다고 표시한 셀에서 나중에 새로운 오류가 나타나는 이유를 설명할 수 없다.

ISCA 2013의 DRAM Retention Time Characterization 원문 6절은 같은 셀의 상태 변화와 높은 retention 상태에 머무는 시간을 조사한다. 실험 표본과 온도에 한정한 결과이며 현대 모든 DRAM에 같은 시간을 부여할 수는 없다. 여기서 사용할 중요한 관찰은 약한 상태가 짧은 검사 중에 반드시 나타나는 것은 아니라는 점이다.

동일 셀에서 다른 결과가 나오는 가상 기록

설명을 위해 A셀을 같은 온도와 data pattern으로 검사했는데 첫 검사에서는2초 동안 정보가 유지됐고, 다음 검사에서는0.8초에서 오류가 관측됐다고 하자. 정해진 기다림 간격의 pass·fail 결과이므로 정확한 물리 임계값을 연속 측정했다고 뜻하지 않는다. 그래도 처음 결과만으로1.5초 간격을 선택하면 두 번째 상태에서는 부족하다.

margin을20% 붙여2초의80%인1.6초로 제한해도0.8초 상태를 보호하지 못한다. guard band는 알려진 변동을 감당할 수 있을 만큼 커야 의미가 있다. 평균 retention이나 첫 성공값에 작은 비율을 붙이는 것과 최악 상태를 관측하는 것은 서로 다른 일이다.

가상 검사고정된 기다림에서의 관측첫 profile에 대한 의미
첫 번째2.0초 pass그 당시·그 pattern에서 통과
두 번째0.8초 fail처음 보이지 않았던 짧은 상태 가능

이 예의초 단위는 현행 제품의 refresh 변경 권고가 아니다. 실제 사용은 vendor의 보증 조건을 지켜야 한다. 가상 기록은 profiling 알고리즘이 무엇을 안다고 주장할 수 있는지 구분하기 위한 것이다.

반복 횟수만 늘리면 충분할까

가상으로 각 독립 검사에서 약한 상태를 볼 확률이1%라고 단순화하면10번 검사에서 한 번 이상 볼 확률은1-0.99의10승, 약9.6%다. 100번도 약63.4%다. 그러나 실제 VRT의 상태 체류시간은 연속성이 있으므로 가까운 검사들이 독립이라는 가정은 성립하지 않을 수 있다. 이 계산은 짧은 반복의 한계를 드러내는 toy이고 실제 DRAM의 확률 model은 아니다.

짧은 시간에 같은 검사를 수천 번 반복하는 것과 환경·시간을 바꾸어 긴 기간 관측하는 것은 다른 coverage를 만든다. 데이터를 수집할 때 횟수만 기록하지 말고 검사 간격, 온도, 저장 pattern과 상태가 유지된 구간을 함께 남겨야 한다.

data-pattern dependence도 구별해야 한다. 이웃의 저장 값이 바뀌어 retention이 달라진 경우와 동일 pattern을 유지했는데 상태가 바뀐 VRT는 원인이 같은 증거가 아니다. 원 논문은 두 효과를 분리하려고 검사 순서와 pattern을 설계한다. profile 결과가 바뀌었다는 사실만으로 전부 VRT라고 이름 붙이면 분석이 흐려진다.

profile은 관측 결과이며 영구 인증서가 아니다

retention-aware 정책에 profile을 쓰려면 새 약한 셀이 나올 때 발견하고 대응할 방법이 필요하다. 오류 허용 범위가 있는 code, 재검사와 보수적인 fallback 같은 수단의 역할을 구분해야 한다. ECC가 있다고 refresh를 임의로 줄여도 된다는 뜻도 아니다. code의 correction 범위를 초과하는 오류 분포가 생기지 않는지 검증해야 한다.

한 번의 검사는 “이 조건과 시간에 이 위치가 통과했다”라는 증거를 준다. 모든 미래 상태의 minimum을 확인했다는 증거는 주지 않는다. VRT를 고려한다는 것은 약한 셀 목록을 더 길게 만드는 것보다 목록이 바뀔 수 있음을 관리하는 일이다. 측정값과 정책의 보장 범위를 나누면 profile 기반 절감이 어느 조건에서 성립하고 어디에 추가 보호가 필요한지 보인다.

DRAM retention을 한 번 측정해서 안전한 셀 목록을 만들기 어려운 이유 · ariser