[ 위 그림에선 운영체제는 간단하게 읽고 쓰지만 내부 낸드에서는 복잡하게 읽고 쓴다 ]
----------------------------------------------------------------------------------------------------------------------
이 맵핑 테이블은 큰 편이라서 1기가당 1메가가 필요로하는것으로 알려져 있으며
( 탐스하드웨어 및 아난드테크 뿐 아니라 참고 논문에서도 같은 말을 하고 있다. )
물론 이보다 적은 용량으로도 맵핑 테이블을 관리하는 SSD 있기에 제품마다 다를수 있을것이다.
아난드테크 또한 같은 주장을 하는데, 캐쉬나 다른 용도로 쓰일 가능성도 있지만 디램을 활용하는 주된 전략을 맵핑 테이블이라 추측했다.
참고 논문에서는 다양한 실험을 통해 데이터의 읽기 캐쉬 역할을 하는지 쓰기 버퍼를 하는지 HMB를 조작하여 실험을 통해 확인해보았는데, 확실한건 데이터의 읽기 캐쉬나 쓰기 버퍼로 활용되지 않는다는것이었다.
그리고 논문 역시 디램은 맵핑 테이블로 쓰일것이라 추측 하였다.
결국 이 3가지 전문 분석을 통한 결론은 디램의 역할이 읽기,쓰기 캐쉬가 아니라 맵핑 테이블 관리라는것이다.
속도를 빠르게 하는건 맵핑 테이블의 역할이었고, 이것이 어디에 저장되고 관리되느냐가 성능이 결정하는것이었다.
맵핑테이블의 빠른 접근과 SLC 캐쉬의 도움만으로도 NVME의 최대치까지 성능을 낼수 있다는것이다.
단 오해는 말자 낸드에 저장되어 있는 맵핑 테이블을 디램에 캐쉬해 쓴다고 말한다면 틀린말은 아니다. 다만 우리가 흔히 쓰는 데이터의 캐쉬나 버퍼 역할이 아니라는점이다.
여기서 한가지 더 짚고 넢어가야할것이…. 맵핑 테이블을 통해 성능이 빨라지는건 쓰기 뿐 아니라 읽기 성능도 해당된다.
논문에서는 “쓰기 연산보다 읽기 연산에서 그 차이가 커 읽기 성능이 중요한 응용에서 DRAM-less SSD의 사용은 적합하지 않는 것으로 파악된다” 라고 하였는데…
디램리스는 낸드에서 맵핑 테이블을 읽고 맵핑 테이블을 통해 데이타를 낸드에서 다시 읽어야 하기 때문에 디램을 사용하는쪽보다 훨씬 느릴수 밖에없고 무작위로 접근해야하는 방식은 예측 가능한 순차방식보다 맵핑 테이블에 접근해야할 일이 많기때문에… 속도가 더 느리다.