So modular SSDs typically have three components…a controller silicon, dram cache, and the actual nand flash chips, right?
But, why do it this way?
Wouldn’t it be better to have use a software controller, use system DRAM for cache, and expose the raw nand chips directly to the CPU?
So many controller firmware issues have caused data corruption / permanent data loss…and putting dram directly on the module has a lot of downsides as well, usually in the form of there not being enough dram cache to handle certain io patterns and workloads, and also added costs & complexity for SSD vendors.
Having a fully flash aware file system (like combination software SSD controller & file system) would also have a lot of performance benefits too, I would think.
Thoughts…?
But, why do it this way?
Wouldn’t it be better to have use a software controller, use system DRAM for cache, and expose the raw nand chips directly to the CPU?
So many controller firmware issues have caused data corruption / permanent data loss…and putting dram directly on the module has a lot of downsides as well, usually in the form of there not being enough dram cache to handle certain io patterns and workloads, and also added costs & complexity for SSD vendors.
Having a fully flash aware file system (like combination software SSD controller & file system) would also have a lot of performance benefits too, I would think.
Thoughts…?