<story><title>OpenSSD – Open firmware for SSDs</title><url>http://www.openssd-project.org/</url></story><parent_chain><item><author>pedrocr</author><text>Is there any reason we&amp;#x27;d actually want this firmware at all vs just using a flash filesystem running on the host CPU? Is there really any significant performance advantage to be had?&lt;p&gt;I really wish normal SSDs just implemented a passthrough mode to the real flash with enough metadata about blocks that the OS can just deal with it directly. Having to implement filesystems on top of these abstractions just seems wrong. We&amp;#x27;re setting us up to later find out that we need to join the two layers like ZFS did with RAID.</text></item></parent_chain><comment><author>userbinator</author><text>Performance advantage, maybe not, but in terms of reliability (which I think for storage devices is &lt;i&gt;far more important&lt;/i&gt; than absolute performance) there&amp;#x27;s definite advantages to having the SSD have its own processor; an SSD is running a realtime control firmware so it can react quickly to events like sudden power loss and act appropriately to flush pending writes and update the BMTs before the power completely dies, whereas the host CPU would basically have no chance at that due to the fact that it&amp;#x27;s probably doing something else at the time and the latency of communicating to the SSD.</text></comment>
<story><title>OpenSSD – Open firmware for SSDs</title><url>http://www.openssd-project.org/</url></story><parent_chain><item><author>pedrocr</author><text>Is there any reason we&amp;#x27;d actually want this firmware at all vs just using a flash filesystem running on the host CPU? Is there really any significant performance advantage to be had?&lt;p&gt;I really wish normal SSDs just implemented a passthrough mode to the real flash with enough metadata about blocks that the OS can just deal with it directly. Having to implement filesystems on top of these abstractions just seems wrong. We&amp;#x27;re setting us up to later find out that we need to join the two layers like ZFS did with RAID.</text></item></parent_chain><comment><author>baruch</author><text>It would actually make quite a bit of sense to just have raw flash accessible by the CPU and be managed completely by it. The problem is then that some of the flash trickery is for very specific flash and requires careful calibration, things like programming time which is per-flash chip and sometimes also changes across time.&lt;p&gt;The ONFI standard only specifies the protocol and the wiring but not the soft parameters, these may be added in there if people wanted but the flash companies are evidently only trying to grow up into the market rather than just provide building blocks as that allows them to squeeze out more profits so I can&amp;#x27;t see any incentive by them to expose such an interface and support the ecosystem that will spring up and take all of their extra profits and leave them to build massive foundries for peanuts per unit.</text></comment>