좋은 글이라 판단해,

원 저작자에게 양해를 구하고 퍼옵니다.


840evo 무엇이 문제인가 에대한 추측성 글입니다.

여러 글들을 읽어보고,

제 나름의 생각으로 재단해 본 결과 어느정도는 맞을 것이라 생각합니다.

 

---------

 

지금 TLC 문제다, 아니다,

컨츄롤러 문제다, 아니다,

펌웨어 문제다, 아니다 여러 논란이 나오고 있습니다만,

제 추측이 맞는다면 이 문제는 TLC 칩 문제가 맞을 수 있으며,

이 것은 펌업으로 해결되기 불가능한 문제일 수 있습니다.

 

기술적인 부분을 매우 간략화 시켜 설명했습니다.

심각한 오류가 있다면 지적을 부탁드립니다.

 

SLC / MLC / TLC 의 차이

간단하게 말해서

SLC = 방 하나를 혼자 쓴다 = 원룸에서 혼자 산다.

MLC = 방 하나를 둘이 쓴다 = 원룸에서 둘이 산다.

TLC = 방 하나를 셋이 쓴다 = 원룸에서 셋이 산다.

이러한 개념으로 일단 생각하면 크게 틀리지 않습니다.

 

그러면 지금 오래된 파일이 느려지는 이유는 무엇입니까?

간단하게 말하면

SLC = 방 하나에 주어지는 에너지 100을 혼자 쓴다

MLC = 방 하나에 주어지는 에너지 100을 둘이 쓴다 = 50개씩

TLC = 방 하나에 주어지는 에너지 100을 셋이 쓴다 = 33개씩

 

이 에너지는 최초 셀에 기록을 할 때에 주어집니다.

다시 쓰여지지 않는 데이터들은

시간이 흐를수록

주어진 에너지를 소모하면서 유지하게 됩니다.

단순히 계산한다면

다시 쓰여지지 않는 데이터들의 보존기간을 추측할 수 있습니다.

 

SLC가 데이터 보존이 10년 간다면,

MLC는 데이터 보존이 5년,

TLC의 경우는 3년이 되는 것이라 추측할 수 있습니다.

 

헌데 벤치를 통해 보면 2년, 3년 쓴 MLC들도 크게 속도 저하가 없는 모습을 볼 수 있습니다.

대표적인 제품이 삼성 830...

MLC가 2년 보존된다면, SLC는 4년,

그렇다면 TLC의 경우는 최소 1년 이상 속도 저하없이 잘 보존되어야하는데,

2개월만에 속도가 저하된다는 사실이 무언가 이상하지 않습니까?

더구나 그 패턴이 시간이 흐를수록 느려집니다.

 

제 기억이 가물한데, 이 셀에 저장된 데이터는 수명이 있습니다.

적어도 2개월만에 이리 속도가 저하되는 수명은 아니였습니다.

(누가 이 수명 데이터 좀 올려주시길)

 

이러한 추리가 TLC 에 문제가 있다고 보는 원인입니다.

하지만 삼성은 TLC 자체에 문제가 있다고 결코 이야기할 수 없습니다.

이건 정말 대단한 문제이기 때문입니다.

 

더불어, 저는 펌웨어 개선으로도 어렵다고 봅니다.

왜 개선으로 어렵다고 보는 것인지 설명해 보겠습니다.

 

펌웨어 개선으로 된다는 측은,

웨어레벨링 알고리즘을 타겟으로 삼고 이야기하는 것입니다.

 

웨어레벨링은 간단히 이야기한다면,

MLC나 TLC나 각 셀에 한계수명이 정해져있기 때문에,

모든 영역을 고루 쓸 수 있도록 처리해주는 하나의 "로직, 알고리즘"입니다.

 

쉽게 비유하자면 때린대 계속 반복해서 때리면 부서지니까,

골고루 맞게 하는 기술 정도 되겠습니다.

 

이 웨어레벨링은

다이나믹과 스테이틱 (동적인 것과 정적인 것)

두가지가 있습니다.

다이나믹 웨어레벨링은 여유 공간에서 이루어지는 것입니다.

여유 공간에서 골고루 쓰기.

스테이틱 웨어레벨링은 이미 쓰여진 데이터에서 이루어 지는 것입니다.

이 정적 웨어레벨링이 매우 중요한 것이

빈 용량에서만 웨어레벨링을 하는 것은 한계가 있기 때문입니다.

 

지금 TLC 제품은 무언가 스테이틱 웨어레벨링이 잘 이루어지지 않다고 생각합니다.

오래된 데이터들이 그대로라는 것은,

스테이틱 웨어레벨링이 절대로 되지 않는다는 것을 의미하기 때문입니다.

그래서 이 스테이틱 웨어레벨링이 잘 이루어지도록 만들면,

속도를 회복할 것이다라 라고 짐작하고 펌웨어 개선으로 될 것으로 보는 것인데,

이게 말처럼 되지가 않습니다.

 

이미 클리앙 사용기를 통해 데이터 마이그레이숑을 (쉽게 말해서 전체 복사)를 다시 했지만,

속도가 회복되지 않았다는 이야기가 있습니다.

 

이렇다면, 남은 것은 셀 전체 리프레시 뿐인데...

이것이 펌웨어를 통해 되겠느냐?... 불가능하다고 봅니다...

 

 

결국 삼성의 선택은 셀 리프레시 프로그램을 주거나,

삼성 매지숑에 셀 리프레시 프로그램을 포함시켜 주고,

느려질때마다 써라... 가 될 것 같습니다.

 

아니면 대규모 리콜 뿐입니다.

vNand TLC가 어떨지 모르겠지만, 신형 TLC로 교체해 주거나

아니면 환불.

 

딱 하나 방법이 있기는 합니다.

이런 경우는 퍼포먼스가 크게 떨어지거나,

다른 문제가 일어날 수 있긴 합니다만,

펌웨어 레벨에서 셀 리프레시를 하는 것...

헌데 펌웨어 레벨에서 셀 리프레시가 되려나?!

 

여튼 삼성... 어려운 상황입니다.

 

TLC는 우리나라에서는 고가로 팔아도,

외국에서는 참으로 싸게 대량으로 많이 팔았습니다.

 

 

 

추가로, OP 영역을 더 잡아주면 해결될 것이라는 추측은

이 문제는 전혀 상관이 없다고 생각합니다.

다시 써도 속도가 회복이 안되는 문제,

시간이 흐르면 속도가 느려지는 문제는 OP 영역에서 조차 진행되는 것이라...

오로지 셀 리프레시 뿐입니다.

 

마지막으로,

속도가 빠르다고 좋아할 것이 전혀 아닙니다.

다이나믹/스테이틱 웨어레벨링을 제대로 구현하려면 속도가 느려지는 것이 당연한 것입니다.

특히 다이나믹 웨어레벨링 구현을 포기하고 속도를 잡는 경우가 비일비재...

이러한 제품들을 우리는 많이 보아 왔습니다.

후렉스타 6 시리즈 신형 제품들...

속도 저하가 일어났던 840pro 초기 펌웨어 등등...

이러한 경우는 실 사용에서는 오히려 수명이 더 짧을 수 있습니다.

 

특히나 인텔 DC S3500 과 730 은 내부 낸드 셀, 컨츄로라 기판 까지 모두 같은데

실제로 벤치해보면 후자가 더 빠르고,

전자가 명시 수명이 더 깁니다.

속도를 위해 일부 웨어레벨링 알고리즘 등을 포기한 것입니다.

이러한 경우는 동일한 낸드에 마벨 칩을 쓴 여러 회사에서도 볼 수 있습니다.


앞서 이야기한 것 처럼

과도한 속도 튜닝으로 별로 좋은 모습을 보이지 못하는 후렉스타 6 시리즈가

대표적인 예가 될 것입니다.

 

이러한 연유로, 다소 속도가 느려도 인텔 제품이 좋다고 하는 것이기도 합니다.

 

그리고 모 카페에서 진행한 일정한 파일을 썼다가 다시 지웠다가 하는 수명 테스트는

다이나믹 / 스테이틱 웨어레벨링이 제대로 구현될 기회가 없기때문에

특히나 더 제대로 된 수명 테스트라고 보기 어렵다는 것입니다.

 

 

이 글을 얼마나 읽고, 또 어느 정도 분이 이해하실 지는 모르겠지만,

그래도 관심 있는 분은 도움이 될까 해서

새벽에 시간을 내어 적어 봅니다.

 

앞서 말씀드린 것 처럼

잘못된 부분이 있다면 근거를 가지고 질타를 부탁 드립니다.