[컴] 플래시 메모리 SLC, MLC, TLC

간단한 정리 SLC, MLC, TLC

간단한 flash memory 동작

쓰고, 지우기

셀에 전자를 채워넣고, 채워진 전자를 빼내는 방식을 하는 것이 우리가 흔히 아는 write, erase 가 된다.

읽기

  1. 채워진 전자의 양에 따라 자기장의 크기가 달라지는데, 이것에 의해 그 밑을 지나는 N 채널의 전도폭이 변한다.
  2. 이 N채널의 전도폭의 차이로 인해 전하량에(전류값에) 차이가 발생
  3. 이 전하량을 읽어서 어디부터 어디까지는 0으로, 어느값부터 어느값까지는 1로 구분한다.

SLC, MLC, TLC 의 cell

SLC 는 cell 하나에 2의 state 만 표현하는 것이다. 즉 전자가 채워져 있으면 1로 보고, 비워져 있으면 0으로 보면 된다.
MLC 는 cell 하나에 전자가 채워진 양에 따라 4가자의 state 를 표현하게 된다. 전자가 1/3 정도 채워지면 01, 2/3 정도 채워지면 10, 3/3 채워지면 11, 비워져 있으면 00 으로 보게 된다.
TLC 는 cell 하나에서 8가지 state 를 표현한다. MLC 와 마찬 가지로 1/7 정도 채워져 있으면 001, 2/7 정도 채워져 있으면 010, … 그래서 7/7 차면, 111 이 된다.

ECC 코드

위에서 한 이야기 처럼 SLC 보다 MLC, TLC 는 전자를 세밀하게 조절해야 한다. 그래야 하나의 cell 에서 여러가지를 표현할 수 있다. 그런데 이렇게 세밀하게 조절하면 필연적으로 간섭이 발생한다. 그래서 MLC, TLC 들은 확실히 SLC 보다 error 가 많다. 그래서 이 에러를 줄이기 위해 ECC(Error correcting code) 를 크게 줄 수 밖에 없다. 그래서 MLC, TLC 가 SLC 의 2배 용량이 되지 못하고, 성능도 좋지 못한 이유다.

산화막

cell 에 전자를 가두고, 흘려버리기 위해 산화막을 사용하는데, 이 녀석을 전자가 계속 왔다갔다 하다 보면 전자가 이 산화막에 조금씩 쌓이게 된다. (대충 철에 자력이 걸려서 철이 자석이 되는 것을 상상하면 된다.)
이렇게 되면 이 산화막을 통과하는 양이 줄어들거나 할 텐데, SLC 는 state 간의 전압차가 커서 어느정도 전하량이 줄어들어도 인식하는데 큰 문제가 없지만, MLC 나 TLC 는 state 간의 전압차가 크지 않아서 전압이 미세하게 틀어져도 잘못된 값으로 write / erase 될 수 있다.
그래서 MLC, TLC 의 수명이 SLC 에 비해 떨어진다.
그래서 이것을 극복하기 위해 spare 영역, over provisioning 부분을 추가해 놓는다.

References

댓글 없음:

댓글 쓰기