기글 하드웨어 커뮤니티 게시판
좋은 글이라 판단해,
원 저작자에게 양해를 구하고 퍼옵니다.
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 시리즈가
대표적인 예가 될 것입니다.
이러한 연유로, 다소 속도가 느려도 인텔 제품이 좋다고 하는 것이기도 합니다.
그리고 모 카페에서 진행한 일정한 파일을 썼다가 다시 지웠다가 하는 수명 테스트는
다이나믹 / 스테이틱 웨어레벨링이 제대로 구현될 기회가 없기때문에
특히나 더 제대로 된 수명 테스트라고 보기 어렵다는 것입니다.
이 글을 얼마나 읽고, 또 어느 정도 분이 이해하실 지는 모르겠지만,
그래도 관심 있는 분은 도움이 될까 해서
새벽에 시간을 내어 적어 봅니다.
앞서 말씀드린 것 처럼
잘못된 부분이 있다면 근거를 가지고 질타를 부탁 드립니다.
삼성에서 해당 개발자들은 이미 관련 내용을 파악하고 있었다고 합니다.
TLC자체 내 문제가 아니라고 합니다. 삼성측에서도 당황. 왜냐면 기존 연구실레벨에서 발생한 쓰기속도 문제가 아니라 읽기속도 문제기 때문이라는데..
우선 결론적으로 펌웨어 자체의 문제라고 합니다. 하지만 펌웨어 문제라고 원인만 알고 있을뿐이고 고치려면 생각보다 시간이 많이 걸린답니다. 펌웨어쪽 문제라고 알고 있을뿐 세부사항까지 파악을 못한걸로 보인다네요.
워낙 많이 팔린 제품이라 삼성측에서도 대체할 시나리오를 만들어놨다고 하는데 최악의 경우 리콜까지 생각 중이라고 합니다만 그건 최후의 수단이고 우선 임시처방의 펌웨어가 2주안으로 나온다는 얘기가 있습니다.
그리고 SLC와 MLC, TLC가 각각 10: 5:3의 비율의 에너지가 주어진다면 열흘 만에 느려지는 TLC에 비해 MLC가 15일 만에 느려지고 SLC는 30일 만에 느려진단 이야기가 되는 것도 이상하지요.
셀 한개의 크기가 점점 작아지니 여기에 담아둘 전기의 양도 적어진다는거니까요.
27,3x nm공정을 TLC를 쓴 제품이 없기에 확실하게 말할수있는건 없겠네요.
지금 SD 메모리나 USB 메모리를 보면 TLC 쓴거 많으니까 거기서 테스트를 해 보면 알 수 있지 않으려나요.
현재 밖이라 길게는 나중에 작성하겠습니다만 TLC메모리는 1셀에서 비트단위로 에너지를 나눠쓰지 않습니다
기본적으로 데이터 저장방식은 데이터통신방식과 매우 유사한 부분이 많고 이러한 부분에 의해서 수명과 쓰기속도가 갈리게 됩니다
제가 보기엔 웨어레벨링을 하면서 전체 셀에 대한 일종의 매핑 테이블을 유지할텐데.......
오래된 데이터면 오래된 데이터일 수록 이 테이블에서 더 뒤로 밀리는 구조이기 때문이 아닐까 하는 생각이 드네요. (일종의 스택;)
즉, 오래된 데이터는 바닥에 깔려 있어서 찾으려면 더 깊이 들어가서 찾아야 하는 상황이지 싶네요.