1
\$\begingroup\$

I am trying to understand SSD controller design. I am particularly interested in the physical distribution of data to several NAND chips/dies.

Can somebody point me towards an "idiot's guide to SSD engineering"? ;-)

Or alternatively a description of the RAID/wear leveling algorithms used in SSD controllers. Early ones (pre-TRIM) would be perfectly fine.

\$\endgroup\$
  • \$\begingroup\$ This sort of thing is likely to be a trade secret, although if you can find a datasheet for an SSD controller there might be info in there. \$\endgroup\$ – pjc50 Jan 22 '13 at 15:37
  • \$\begingroup\$ @pjc50 Clearly this is a trade secret. That being said, the algorithms are fairly well known (just not to me). In particular the data recovery community knows a fair bit about the specific implementations. I was hoping to find somebody here who happens to have worked in data recovery. \$\endgroup\$ – Marvin Jan 22 '13 at 15:51
  • \$\begingroup\$ Please try to keep the questions "reasonably scoped. If you can imagine an entire book that answers your question, you’re asking too much.." \$\endgroup\$ – Pablo Maurin Jan 22 '13 at 15:56
  • \$\begingroup\$ @PabloMaurin I am not asking for an answer that is book-scope. I wrote in my question "point me toward" to which one can answer with a link to the book. I do not understand why you think this is too wide in scope. \$\endgroup\$ – Marvin Jan 22 '13 at 15:59
  • 1
    \$\begingroup\$ @Marvin I've been interested in this myself but haven't had the motivation to look. However, if I find said motivation, I would start with universities or open-source drivers. \$\endgroup\$ – Analog Arsonist Jan 22 '13 at 17:48
2
\$\begingroup\$

I'd suggest that you start with the OpenSSD project. It is GPL-licensed SSD firmware that can be used as a point of departure in your research. More info on the goals of the project here.

The OpenSSD Project is an initiative to promote research and education on the recent SSD (Solid State Drive) technology by providing easy access to OpenSSD platforms on which open source SSD firmware can be developed. Currently, we offer an OpenSSD platform based on the commercially successful BarefootTM controller from Indilinx Co., Ltd. This site is also intended to be a forum to share various simulators, tools, and workload generators and traces related to SSDs, among researchers in academia and industry.

\$\endgroup\$
  • \$\begingroup\$ Thank you! This helps tremendously - even if much of the documentation is in Korean. I would still love to hear if somebody knows other resources. \$\endgroup\$ – Marvin Jan 23 '13 at 20:48
1
\$\begingroup\$

My 2016 survey paper on Flash memory (and other non-volatile memories) reviews many wear-leveling techniques and several other software techniques for managing flash-based SSDs. It also provides background on non-volatile memories, so it may be useful for a beginner.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.