Organizace Linux Foundation představila první vydání otevřené platformy pro programově řízené Flash paměti SEF (Software Enabled Flash), vyvinuté na základě kódu poskytnutého společností KIOXIA (dříve Toshiba Memory Corporation), kde byla v roce 1980 vynalezena Flash paměť. Zdrojové kódy nástrojů jsou napsány v jazyce C a distribuovány pod licencí BSD.
Sada nástrojů zahrnuje soubor patchů pro jádro Linux, blokový ovladač pro zařízení SEF (Software Enabled Flash), utilit pro správu z příkazového řádku, paravirtualizované SEF ovladače pro QEMU, knihovnu s API pro vývoj aplikací a patche pro nvme-cli a FIO, které přidávají podporu SEF. SDK také obsahuje referenční implementaci softwarové vrstvy FTL (Flash Translation Layer), která zajišťuje převod příkazů blokových zařízení na přístupy k aktuálnímu čipu Flash paměti, správa paměti a distribuce dat do paměťových buněk. FTL implementuje podporu flexibilního umístění dat (FDP - Flexible Data Placement), zónování (ZNS - Zoned Namespace) a specifikaci NVMe.
U běžných Flash disků pro externí systémy představuje úložiště černou skříňku, kde je část paměti rezervována pro servisní operace, výkonnostní ukazatele jsou nestálé a objevují se nepředvídatelné zpoždění způsobená vnitřní činností řadiče, například během správy paměti. Na rozdíl od tradičních Flash disků, kde přeprogramování dat, izolace vadných bloků a správa paměti bývá řízena firmwarem řadiče, úložiště s podporou SEF umožňují přesunout logiku nízkoúrovňové práce s čipem Flash paměti na stranu softwaru a operačního systému.
SEF umožňuje přímé řízení fyzického umístění dat, měnění algoritmů rozdělování zátěže, správu priorit a QoS, odstranění další vrstvy překladu bloků, využití celé dostupné paměti, zajištění předvídatelného chování s úložištěm a rozdělení úložiště na virtuální zařízení, která jsou izolována na úrovni vstupu/výstupu a mají různou prioritu ve zpracování. Navržený přístup SEF umožňuje snížit režijní náklady a zvýšit efektivitu interakce s úložištěm díky přizpůsobení aktuálním potřebám logiky garbage collection, rezervaci paměti a rozdělování bloků pro snížení opotřebení.
Například SEF umožňuje normalizovat výkon v podmínkách používání pole různě zakoupených úložišť s odlišnými charakteristikami. Pro úložiště, která jsou převážně používána pouze pro čtení, lze díky SEF použít jednodušší algoritmy rozdělování bloků a snížit paměť rezervovanou pro administrativní účely.
Zdroj: opennet.ru
