이건 또 뭐야

  • 간단하게 말하면 FTL 을 SSD 내에 구현하지 않고 Host 에게로 넘겨버린 것이다.
    • 기존에는 SSD 안에 Processor 와 DRAM 존재하고, 여기에 FTL 가 구현된 SSD 펌웨어가 설치되었다면 OCSSD 에서는 FTL 을 통째로 Host 에 이관시키고 Host 의 CPU 와 RAM 을 이용하게 된다.
  • 따라서 FTL 이 담당하고 있던 데이터 저장 위치 선정, OP, GC 등의 작업을 전부 Host 가 담당하게 된다.
    • OS 가 OCSSD 에 접근할 수 있게 해주는 인터페이스로 LightNVM 이 구현되어 있다.
  • 다만, OCSSD 는 ZNS 의 등장에 따라 현재에는 거의 사용되지 않는다고 한다.

좋은 점

  • 이렇게 하면 좋은점은 (지겹게 등장하긴 하지만) GC 오버헤드 등의 한계를 완화할 수 있다는 것이다.
    • 데이터를 어디에 저장하냐가 GC 오버헤드에 영향을 주고
    • 데이터의 저장 위치를 정하는 것에는 Host 가 알고 있는 정보들을 활용하는 것이 도움이 된다고 한다.
    • 따라서 OCSSD 에서는 FTL 자체를 Host 로 넘겨 Host 가 알고 있는 정보를 활용하자는 아이디어이다.

나쁜 점

  • 생각보다 RAM 을 많이 먹는다 - 4KB 의 write 작업이 지속적으로 들어오는 환경에서 SSD 용량이 1TB 라면 3GB 의 RAM 을 먹는다고 한다.
  • 또한 OS 에서 모든 종류의 SSD 에 대응하는 인터페이스를 구현해야 되고, 이것이 핵심적인 문제가 되어 지금은 ZNS 로 대체되었다.