Scripts and Specs Navigation

OpenNANDLab v2.0.0 completely overhauls how benchmark scripts, analytical evaluations, and device specifications are organized.

The specs/ Directory

The specs/ folder at the root of the project contains declarative firmware templates and device specifications defined in YAML format. These YAML files allow you to construct specialized hardware scenarios without altering the Python codebase.

Available Specifications

  • advanced_firmware_spec.yaml: Contains deep performance-tuning options including parallel queuing and specific wear-leveling algorithms.

  • firmware_spec_standard_tlc_nand.yaml: Models an industry-standard TLC NAND architecture balancing capacity and durability.

  • firmware_spec_high-density_qlc_nand.yaml: Designed for high-capacity but highly error-prone QLC cell configurations, aggressively utilizing LDPC.

  • firmware_spec_small_mlc_nand.yaml: Represents high-endurance MLC arrays ideal for write-intensive operations.

Generating Custom Specifications

You can use examples/firmware_generation.py or the opennandlab CLI to programmatically generate your own combinations of NAND page sizes, cell types, and block constraints.

The CLI & Analytical Tools (Formerly scripts/)

In older versions of OpenNANDLab (v1.x.x), standalone utility scripts lived in the scripts/ folder. In v2.0.0, this folder has been completely deprecated in favor of a robust, unified command-line application based on the click library.

The functionality previously provided by the standalone scripts has been mapped as follows:

Old Script

New OpenNANDLab CLI Equivalent

Use Case

performance_test.py

opennandlab benchmark

Stress-testing IOPS and Latency against various workloads.

characterization.py

opennandlab characterize

Generating raw statistical distributions of erase counts and bad blocks.

validate.py

Included in FirmwareSpecValidator

Automatically integrated when loading configurations; asserts schema logic.

You can execute these functions globally after running pip install -e .

opennandlab --help
opennandlab benchmark --config specs/firmware_spec_standard_tlc_nand.yaml

The underlying metrics and collection mechanisms backing these CLI tools have been reorganized securely into src/opennandlab/analytics/.