This internship involves working as part of the "physical storage" team developing firmware for solid state storage devices used in consumer and enterprise computer systems. ("Firmware" refers to software running on an embedded system such as SanDisk's SSD products.)
ESSENTIAL DUTIES AND RESPONSIBILITIES
The firmware team designs and implements features to support current and next-generation memory devices and develops features required for new product requirements and applications. The physical storage team is specifically responsible for the layer of firmware that interfaces to and controls the NAND memory devices.
The PS Team implements features including:
- basic NAND flash memory operations such as erase, write, and read;
- sophisticated algorithms to maximize performance (write cache, read cache, program and erase suspend / resume, configuring read thresholds for optimal performance);
- mechanisms to handle defect mechanisms (uncorrectable ECC errors, program failures, etc…); and
- countermeasures against those defects (read scrub, wear leveling, optimizing program voltage levels, tracking and setting NAND read thresholds, etc…).
Typical engineer activities include:
- examining design options and evaluating tradeoffs between performance, memory requirements, and processor workloads;
- collaborating with engineers in other teams at SanDisk (Memory Systems, NAND / memory, System Architecture, and Validation) to define overall drive functionality and behavior;
- designing and drafting specifications for FW features that integrate within the overall SSD system and firmware architecture;
- implementing the necessary functionality in C/C++ (and/or machine language in some cases); and
- using debuggers and other tools to analyze failures and correct software defects.