개요
기존 SSD에서의 정보처리의 stack의 CPU, GPU, RAM, and storage사이에서 많은 데이터의 교환이 이루어져야 했다. 그러나 smart ssd는 이러한 데이터 교환의 일정 부분을 ssd내의 CPU에서 처리하게 함으로써, host cpu에서 오는 bottleneck과 host cpu의 연산을 offloading함으로써 전력 소비 그리고 host cpu를 보다 더 다른 연산에 사용할 수 있도록 해준다.
여기서 등장하는 개념이 바로 Near-Data Processing인데, NDP는 계산을 데이터로 이동시켜서 성능을 향상시키는 기법을 말한다. 따라서 Host processor의 계산의 일부를 스토리지로 offloading 시켜서 데이터 전송량과 지연시간을 줄이고 host cpu의 부담을 줄이는 기술이 개발되었다. 이것이 바로 Smart SSD의 기본 개념으로 host에서 Smart SSD API로 기존의 write/ read 시스템콜에서 처리되던 부분을 ssd로 분산 이동시켜서 처리하게 하였다. 또한 여러 특징적인 기능 (예를 들어서 find query와 같은 데이터 베이스의 쿼리)가 SmartSSD에서 이루어지도록 하여서, 이러한 부분에서도 이점을 가질 수 있었다.
그러나 SMART SSD도 단점이 있는데, 바로 모든 functionality 를 구현할 수 없다는 것이다. 예를 들어서 아주 방대한 NUMA Ram을 사용하는 경우를 생각해 보자. Host CPU에서는 이러한 spart host DRAM에서 캐싱된 정보를 이용할 수 있지만, SMART SSD는 이러한 dram에 access가 안되기 때문에 host cpu만큼의 효율이 나오지 않을 것이다. 따라서 추가적인 storage stack이 필요하다는 것을 알 수 있다.
또한 하드웨어가 버전업 되면서 새로운 기능이 추가되거나 API가 변경되면 기존의 smart ssd와의 호환을 어떻게 처리해야 할지의 문제도 생각할 수 있다.
참고
- https://www.koreascience.or.kr/article/JAKO201418960400764.pdf
- Li, H., Hao, M., Novakovic, S., Gogte, V., Govindan, S., Ports, D. R. K., Zhang, I., Bianchini, R., Gunawi, H. S., & Badam, A. (2020). LeapIO: Efficient and portable virtual NVME storage on ARM SOCs. International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS, 1, 591–605. https://doi.org/10.1145/3373376.3378531
- https://cs.kangwon.ac.kr/~ysmoon/courses/2017_1/grad/02.pdf