It's open-source

All materials including documents, firmwares, hardware RTL sources, and platform board schematics are fully accessible to the public.

It's modular

All software and hardware designs consist of many replaceable modules and offer flexibility in their re-design.

It's real

A real hardware board, called Cosmos OpenSSD platform, is a part of Cosmos OpenSSD system. It operates as a real solid-state drive.

OpenSSD Project Introduction

The OpenSSD Project is an initiative to promote research and education on the recent solid-state drive (SSD) technology by providing easy access to OpenSSD platforms on which open source SSD firmware can be developed. Currently, we offers an OpenSSD platform based on a FPGA board called Cosmos OpenSSD, whose hardware and software designs are fully modifiable.

Features & Functions

Controller Firmware

Host Interface Firmware

- Host command scheduling

- TRIM command process

- Open-channel SSD

- Key-value store

Flash Translation Layer

- Address mapping

- Garbage collection

- Wear leveling

- Write buffer/read cache

- Overprovisioning

Low-level Driver

- Bad block management

- Multi-plane operation

- One-shot operation

- Flash operation scheduling

Controller Hardware

NAND Flash Controller

- Multi channel, multi way structure

- Channel-way interleaving

- Flash interface (toggle/ONFI)

Host Interface Controller

- Interface compatibility (SATA/SAS/NVMe)

- Physical memory locations

BCH ECC Engine

- Correction capability/code length

- ECC algorithm (BCH, RS, LDPC code)

- Shared KES, pipelined decoder


- Data encryption (decryption)

- Data compression (decompression)


Controller Processor

- Multicore task allocation

- Clock speed

- In-storage processing

Performance Monitor

- Host request patterns

- Error information

- Internal processing time

- Page/block access frequency

Recent Publications

  • Experimental Results of Implementing NVMe-based Open Channel SSDs (Link)
    • Date & Location: Aug. 9 2017 @ Santa Clara, CA, USA
    • Event: Flash Memory Summit 2017
    • Speaker: Sangjin Lee, Yong Ho Song
  • Cosmos+ OpenSSD Tutorial (Link)
    • Date & Location: Jan. 19 2017 @ Seoul, South Korea
    • Event: Software Convergence Symposium 2017
    • Speaker: Yong Ho Song
  • Design of NVMe Device Using EISC Processor (Link)
    • Date & Location: Jan. 19 2017 @ Gangwon, South Korea
    • Event: KICS Winter Conference 2017
    • Speaker: Youngkeun Kim
  • Anti-Forensic Deletion Scheme for Flash Storage Systems (Link)
    • Date & Location: Sep. 25 2016 @ Beijing, China
    • Event: 2016 5th IEEE International Conference on Network Infrastructure and Digital Content
    • Speaker: Jaewook Kwak

Jasmine SoC Platform

Jasmine Platform is Indilinx's reference implementation of SSD, based on the Barefoot™ controller. The Barefoot™ controller is an ARM-based SATA controller used in numerous high-performance SSDs. For more information on this platform, please visit following page: Link

Cosmos/Cosmos+ FPGA Platform

Cosmos/Cosmos+ FPGA Platform provides a software and hardware co-design environment. It includes programmable SoC integrating ARM-based core and programmable logic. Various external interfaces such as PCIe, ethernet and USB are available. SO-DIMMs allows an extension by connecting flash memory modules. Cosmos OpenSSD and Cosmos+ OpenSSD use the same platform board.

Join Mailing List