توسعه دهندهٔ NVMe موسوم به NVMHCI Non-Volatile Memory Host Controller Interface این فناوری را در سال ۲۰۰۹ توسعه داد و در اول مارس ۲۰۱۱ نسخه 1.0 این آن را عرضه کرد. نسخهای که از قابلیتهای queueing interface، مجموعه دستورات NVM، دستورات مدیریتی و تعدادی قابلیت امنیتی اضافه برخوردار بود.
گروه NVMHCI که به NVM Express Workgroup هم معروف است، بروزرسانی تازهای را در یازده اکتبر ۲۰۱۲ عرضه کرد و با افزودن قابلیتهایی نظیر I/O چند مسیره و namespace اشتراکی، برای SSDهایی که از چند پورت PCIe استفاده میکنند، سازگاری بهتری ایجاد کرد.
قابلیت دیگر این نسخه امکان تغییر خودکار حالت مصرف انرژی در حالت آماده به کار (Idle) بود که موجب کاهش مصرف و ذخیره انرژی میشد. همچنین این امکان را فراهم میکرد که دو یا چند میزبان در آن واحد به namespace اشتراکی دسترسی داشته باشند و از این طریق آستانهٔ خطاپذیری سیستم را بالا ببرند.
NVM Express Workgroup اولین Plugfest خود را در مه ۲۰۱۲ برگزار کرد تا شرکتها بتوانند نسخهٔ جدید NVMe و سازگاری و یکپارچگی آن با دیگر محصولات NVMe را به صورت عملی بررسی کنند.
NVM Express Workgroup در مارس ۲۰۱۴ به بخشی از NVM Express organization تبدیل شد که در آن زمان نامهایی چون Cisco Systems, Dell, EMC, Western Digital’s HGST subsidiary, Intel, LSI, Micron Technology, NetApp,
Oracle, PMC-Sierra, Samsung Electronics, SanDisk و Seagate Technology را در بین بنیانگذاران خود میدید.
نام این سازمان بعدها به .NVM Express Inc تغییر کرد و بیش از یکصد کمپانی فعال در حوزهٔ تکنولوژی را به عضویت خود پذیرفت.
نسخهٔ بعدی NVMe در نوامبر سال ۲۰۱۴ معرفی شد و با به روزرسانی firmware، مدیریت انرژی را ارتقا داد و گزینههایی را برای محافظت داده به صورت بی واسطه (end to end) فراهم کرد.
در ۱۷ نوامبر ۲۰۱۷ سازمان NVM Express نسخه 1.0 رابط مدیریتی یا (NVM Express (NVMe-MI را رسما ثبت کرد و معماری و سری دستورات جدیدی را برای مدیریت حافظههایی با تکنولوژیهای متفاوت در اختیار گذاشت. NVMe-MI قابلیتهای مدیریتی متعددی از جمله شناسایی دستگاه و تشخیص سازگاری SSD، مشاهدهٔ دما و سلامت دستگاه و امکان بروزرسانی امن را فراهم کرد. با این بروزرسانی مدیران IT نفس راحتی کشیدند چرا که تا آن تاریخ، برای استفاده از قابلیتهای مدیریتی و کنترل دقیق اینترفیس NVMe باید به ناچار دست به دامن سازندگان و توزیع کنندگان میشدند. برای مقایسهٔ NVMe و SSD مقاله قبلی ما در این رابطه را مطالعه فرمایید.
خصوصیات ارتقا یافته در نسخهٔ NVMe 1.3
سازمان NVM Express نسخهٔ 1.3 اینترفیس NVMe را در ژوئن ۲۰۱۷ عرضه کرد که بهبود فرایند مجازیسازی یا Virtualization، قابلیت پاکسازی (Sanitize) و اضافه شدن فریمورک جدیدی با عنوان Directive framework از مهمترین تغییرات آن بودند.
در عملیات پاکسازی، تمام دادههای کاربر طوری دستکاری میشود که تا امکان بازیابی آنها از هر نوع حافظهی کش (Cache)، حافظهٔ غیرفرار یا بافر کنترلکنندهٔ مموری به صفر برسد. عملیاتی که توصیه میشود تنها در زمان نیاز به تغییر کاربر یا در پایان عمر SSD اجرا شود. حالتهای مختلف پاکسازی شامل پاک کردن بلوکهای سطح پایین در حافظهٔ NAND و crypto-erase است. که مورد دوم به منظور تغییر کلید رمزگذاری دادهها استفاده میشود.
فریمورک Directives مکانیزمی را برای نقل و انتقال داده بین سیستم میزبان و سیستم زیرمجموعه یا به قولی سابسیستم مبتنی بر NVMe فراهم میکند. این مکانیسم نشانه گذاری دستوراتِ هر I/O را ممکن ساخته و امکان پیکربندی دقیق تنظیمات و گزارشات را برای مدیران IT فراهم میسازد.
اولین کاربرد فریمورک Directives قابلیتی به نام Streams است که در فرایند بهینهسازی دادهها را مرتب میکند و کارایی و دوام SSDهای NAND را افزایش میدهد. پیش از معرفی این فریمورک، برای نوشتن در SSD لازم بود که ابتدا بلوکهای بزرگتر داده پاک شوند.
قابلیت Streams میزبان را قادر میسازد تا با استفاده از Stream Identifier بلوکهای منطقی خاصی را که متعلق به گروه مرتبطی از دادهها هستند تشخیص دهد. این قابلیت مکان فرآیندهای خواندن و نوشتن را برای دادهٔ مربوطه و هر دادهای که به آن مرتبط است مشخص میکند.
مجازیسازی یا Virtualization، به امکان استفاده از NVMe در فضاهای ذخیره سازی اشتراکی میپردازد. حالتی که در آن هم کنترلرهای مجازی و هم فیزیکی که شامل کنترلرهای ذخیرهسازی اولیه و ثانویه هستند به صورت همزمان حضور داشته باشند.
قابلیتها بهبود یافته در NVMe 1.4
نسخه NVMe 1.4 در جولای ۲۰۱۷ به همراه قابلیتها و بهبودهای جدیدی معرفی شد که موارد زیر را شامل میشوند:
1. قابلیت Rebuild Assist جهت بهبود فرایند بازیابی و انتقال داده
2. Persistent Event Log جهت عیبیابی و تشخیص دلایل بروز اشکالات همراه با ثبت جزئیات تاریخچهی درایو
3. دو قابلیت NVM Sets و IO Determinism برای بهبود کارایی و کیفیت خدمات (QoS)
4. امکان (Asymmetric Namespace Access (ANA با بهبود مولتی پسینگ (multipathing)، جهت ایجاد دسترسی حداکثری
5. قابلیت HMB)Host Memory Buffer) برای کاهش تاخیر و کمک به طراحی SSD
6. سیستمهای میزبان با (Persistent Memory Region (PMR برای خواندن و نوشتن مستقیم سیستمهای میزبان روی DRAM که همراه هستهٔ اصلی حافظههای فلش در SSDها قرار دارد و پیش از این فقط به عنوان کش استفاده میشده است.
سازندگان درایوهای فلش نیاز دارند که برای استفاده از بهبودها و قابلیتهای ذکر شده، محصولاتشان را به روزرسانی کنند و برای سیستمعاملهای مختلف هم درایورهای جدیدی عرضه شدهاند.
فرم فاکتورها و استاندارهای NVMe
شاید اصلیترین انگیزه در طراحی پروتکل و اینترفیس جدید، بهرهبرداری از پتانسیل حافظهٔ فلش NAND در محیطهای صنعتی و سازمانی بود. همین حرکت به سمت طراحی استاندارد جدید، باعث شد تا کاربردهای تازهای مطرح شوند و گزینههای متعددی برای پیادهسازی بوجود آیند.
در زمانی کوتاه، فرم فاکتورها و کانکتورهای متنوعی برای NVMe عرضه شدند که کارتهای افزودنی (add-in cards (AIC برای باس PCIe و دو فرم فاکتور جدید برای SSDها با نامهای M.2 و U.2 را شامل میشدند.
1. AIC – با استفاده از این فرم فاکتور، شرکتهای سازنده میتوانند کارتهای مختص به خود را برای اسلات PCIe تولید کنند و نگران محدودیتهای طراحی و معماری سختافزاری نباشند. این کارتهای خاصمنظوره می توانند چیپها و پردازندههای اضافی داشته باشند و بسته به نیاز، کارایی مضاعفی از خود نشان دهند.
2. M.2 – این کانکتور با هدف بهرهبرداری از اندازهٔ کوچک و متراکم فلشهای NAND و تولید کمترین حرارت ممکن ساخته شدهاند. M.2 به صورت استیکهایی با عرض 22 میلیمتر و طول معمول ۸۰ میلیمتر تولید میشود.
3. U.2 – برای ایجاد کمترین تغییر ممکن در محفظههای ذخیره سازی طراحی شده تا جایگزین هارد دیسکها و SSD های اولیه شود. بر همین اساس اندازه و شکل ظاهری این کانکتور، با کانکتورها و محفظههای مرسوم هارددیسکهای قدیمی شباهت زیادی دارد.
فرم فاکتور دیگری از NVMe که به طور خاص برای استفادهٔ صنعتی و به کار رفتن در دیتاسنترهای SSD طراحی شده EDSFF نام دارد که توسط شرکتهایی نظیر Intel, Dell EMC, Hewlett Packard Enterprise (HPE), Lenovo, Samsung و بسیاری دیگر پشتیبانی میشود. این فرم فاکتور برای افزایش کارایی و استفاده در حجمهای خیلی زیاد در صنایع بزرگ طراحی شده است و معروفترین نمونهٔ آن، فلش درایوهای Intel E1.L(بلند) و E1.S (کوتاه) هستند که در ابتدا به عنوان فرم فاکتور Ruler شناخته میشدند.
(NVMe over Fabrics (NVMe-oF
NVMe Express Inc. نسخه 1.0 از NVMe-Of یا NVMe over Fabrics را در پنجم ژوئن ۲۰۱۶ عرضه کرد. این اینترفیس مخصوص ارتباطات شبکه طراحی شده تا از تاخیر پایین و سرعت بالای NVMe در فضای شبکه استفاده شود. از این اینترفیس برای گسترش اتصالات سرور مانند Fiber Channel FC، Ethernet و InfiniBand و سیستمهای ذخیره سازی تحت شبکه استفاده میشود.
اتصالات مجهز به NVMe-oF از فناوری دسترسی مستقیم از راه دور یا RDMA و فناوری NVMe-oF mapped to FC استفاده میکنند. مسئولیت توسعهٔ NVMe-oF با RDMA بر عهدهٔ یکی از زیرمجموعههای فنی NVM Express Inc بوده و گروهی موسوم به T11 که تحت نظارت کمیتهٔ بینالمللی استانداردهای فناوری اطلاعات (INCITS) فعالیت میکنند، توسعهٔ اتصالات NVMe بر پایهٔ FC یا به طور مصطلح FC-NVMe را برعهده داشتهاند.
روی هم رفته اینترفیس NVMe-oF مشخصههای مشابهی مانند NVMe دارد و تنها تفاوت بارز آنها، به نحوهٔ ارسال و دریافت دستورات و پاسخها برمیگردد. NVMe برای استفادهی محلی یا اصطلاحا لوکال طراحی شده و دستورات و پاسخها را از طریق باس PCIe با حافظهٔ اشتراکی کامپیوتر رد و بدل میکند. از آن طرف NVMe over Fabrics از طریق یک سیستم پیام محور بین میزبان و دستگاه هدف در شبکه ارتباطش را برقرار میسازد.
گفته میشود که هدف از طراحی NVMe-oF این بوده که تاخیر ارتباط بین NVMe میزبان و NVMe مستقر در شبکه، در قیاس با NVMe میزبان و باس PCIe یک کامپیوتر لوکال، کمتر از ۱۰ میکروثانیه باشد.