Organizata Linux Foundation prezantoi numrin e parë të platformës së hapur për pajisje Flash të menaxhuara me program (Software Enabled Flash), e ndërtuar mbi kodin e dorëzuar nga kompania KIOXIA (para rinovimit të emrit Toshiba Memory Corporation), ku u shpik memoria Flash në vitin 1980. Tekstet origjinale të mjetit janë shkruar në gjuhën C dhe shpërndahen nën licencën BSD.
Instrumenti përfshin një grup patches për bërthamën Linux, një driver bllokimi për pajisjet SEF (Software Enabled Flash), utilita për menaxhim nga linja e komandës, drievera SEF me paralelizim për QEMU, një bibliotekë me API për zhvillimin e aplikacioneve, patches për nvme-cli dhe FIO që shtojnë mbështetje për SEF. SDK gjithashtu përfshin një implementim referencë të nivelit programor FTL (Flash Translation Layer), që siguron përkthimin e komandave të pajisjeve bllokuese në thirrje për çipin real të Flash-memories, mbledhjen e mbeturinave dhe shpërndarjen e të dhënave në qelizat e memories. FTL implementon mbështetje për vendosjen fleksibël të të dhënave (FDP - Flexible Data Placement), zonazhim (ZNS - Zoned Namespace) dhe specifikimin NVMe.
Në Flash-in e zakonshëm për sistemet e jashtme, pajisja paraqet një kuti të zezë, një pjesë e memories rezervuar për operacionet shërbyese, treguesit e performancës janë të paqëndrueshëm dhe ndodhin vonesa të paparashikueshme për shkak të aktivitetit të brendshëm të kontrollorit, për shembull, gjatë mbledhjes së plehrave. Ndryshe nga pajisjet tradicionale Flash, të cilat menaxhojnë shpërndarjen e të dhënave, izolimin e blloqeve të defektit dhe mbledhjen e plehrave me firmuerin e kontrollorit, pajisjet me mbështetje SEF lejojnë që logjika e punës në nivel të ulët me çipin Flash të kalojë në anën e softuerit dhe sistemit operativ.
SEF ofron mundësinë për të menaxhuar drejtpërdrejt shpërndarjen fizike të të dhënave, për të ndërruar algoritmet e shpërndarjes së ngarkesës, për të menaxhuar prioritetet dhe QoS, për të eliminuar një shtresë shtesë këthimi të blloqeve, për të angazhuar gjithë memorien e disponueshme, për të arritur një funksionim të parashikueshëm me pajisjen dhe për të ndarë pajisjen në pajisje virtuale të izoluara në nivelin e hyrjes/ndarjes me prioritet të ndryshëm në përpunim. Qasja e propozuar në SEF lejon uljen e kostove dhe rritjen e efikasitetit të bashkëpunimit me pajisjen përmes adaptimit në nevojat aktuale të logjikës së mbledhjes së plehrave, rezervimit të memories dhe shpërndarjes së blloqeve për të ulur konsumimin.
Për shembull, SEF lejon normalizimin e performancës në kushte të përdorimit të një grumbulli të pajisjeve të blera në kohë të ndryshme me karakteristika të ndryshme. Për pajisjet që përdoren kryesisht vetëm për lexim, falë SEF-it mund të përdoren algoritme më të thjeshta të shpërndarjes së blloqeve dhe të ulet memoria e rezervuar për qëllime shërbyese.
Burimi: opennet.ru
