← Back
Home › Systems › Hardware and datacenter

ssd-controller

SSD controller and flash translation layer

NVMe SSDs

SystemTechniques · 8Primitives · 21 ssd-controller Ldpc codessignal-processing · medium: Low-density parity-check codes with soft-decision min-sum decoding, used in NAND flashCrash consistency orderingstorage · medium: Ordered writes, barriers and FUA so on-disk state is valid after power loss at any pointErasure codingstorage · medium: Reed-Solomon k+m coding to survive m lost shards at lower overhead than replicationFlash garbage collectionstorage · medium: Victim block selection (greedy, cost-benefit), valid page migration and write amplification in SSDsFlash translation layerstorage · medium: Logical-to-physical page mapping in SSDs: page or hybrid mapping, DFTL caching, out-of-place writesWear levelingstorage · medium: Spread erases across flash blocks: dynamic and static wear leveling, read disturb refreshZoned storagestorage · medium: Zoned namespaces and SMR: sequential write zones, zone append, host-managed garbage collectionLRU and CLOCKsystems · low: LRU evicts the least recently used entry via hash map plus linked list; CLOCK approximates it with a reference bit, so hits take no lock.›Nvme queueshardware-os · low: NVMe submission and completion queue pairs, doorbells and polling from a driverSSD and NVMe internalshardware-os · low: NAND pages and erase blocks, the FTL, garbage collection and write amplification, NVMe queues and queue depth, and 4 KiB alignment, with the numbers that matter.›CRC32C checksumshardware-os · low: The Castagnoli CRC-32 with dedicated instructions on x86 (SSE4.2) and ARMv8. It is the standard fast integrity check for storage blocks, logs and network frames.›Dram organizationhardware-os · low: Channels, ranks, banks, rows; row-buffer hits, refresh, timing parameters; DDR5 and HBMAEAD (AES-GCM, ChaCha20-Poly1305)security · low: Authenticated encryption that encrypts and detects tampering in one call; the only kind of symmetric encryption you should use.›SIMD programminghardware-os · low: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.›Sparse matrices (CSR)numerics · low: Compressed sparse row stores only nonzeros as row pointers, column indices and values; SpMV streams them once, so it is memory-bandwidth bound.›Qam soft demappingsignal-processing · low: PSK/QAM constellation mapping and max-log LLR soft demapping for decodersAtomic file replacementhardware-os · low: Write temp file, fsync, rename over target, fsync directory: crash-safe whole-file updatesfsync, O_DSYNC and O_DIRECThardware-os · low: What fsync, fdatasync, O_DSYNC, O_DIRECT and F_FULLFSYNC really guarantee on Linux and macOS, and the exact call sequences for crash-safe files.›Write-ahead logstorage · low: Append each change to a checksummed sequential log and fsync it before touching data pages; the basis of crash durability in nearly every database.›Finite field arithmeticnumerics · low: Prime-field and extension-field arithmetic (Montgomery form, Goldilocks, BabyBear), vectorizedReed-Solomon codessignal-processing · low: Byte-oriented MDS code: n-k parity symbols correct (n-k)/2 unknown symbol errors or n-k known erasures; the workhorse for bursts, QR codes, discs and storage.›d-ary heapdata-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.›Free space managementstorage · low: Free-space bitmaps, extent B-trees and space maps; allocation policies and fragmentation+ 1 more techniques+ 5 more primitives

Similar systems

Share the most building blocks with this one.