NVMe
NVMe مخفف non-volatile memory express (رابط کنترلکنندهی میزبان حافظه غیرفرار) یک اینترفیس ارتباطی برای حافظههای SSD است که توسط یک کنسرسیوم متشکل از شرکتهای همچون اینتل، سامسونگ، سندیسک، دل و سیگیت توسعه داده شده است؛ این پروتکل در حقیقت استفاده از باس PCIe را برای حافظههای SSD ممکن میسازد. NVM Express به نرمافزار و سختافزار میزبان این امکان را میدهد تا از حداکثر موازیسازی در SSDهای مدرن استفاده کنند.
فناوری NVMe در گذشته بهعنوان گزینهای غیرضروری اما پرکاربرد در صنعت ذخیرهسازی اطلاعات بهشمار میرفت. اما اکنون این قابلیت به موردی مهم تبدیل شده و خریداران رایانههای جدید بهتر است به داشتن آن توجه داشته باشند. اگر بهتازگی رایانهای خریداری کردهاید و میخواهید سرعت آن را افزایش دهید، میتوانید با بهرهگیری از این فناوری به هدف خود دست پیدا کنید.
استفاده از پروتکل NVMe باعث بهبود سرعت I/Oهای خواندن و نوشتن میشود؛ همچنین در این حافظهها زمان تأخیر بهشدت کاهش پیدا میکند. فرایند بهبودیافته بررسی ردیفهای چندگانه فرامین (بهخصوص فرامین بلند) نیز سرعت و عملکرد حافظه را تا حد زیادی در این نوع فناوری بهبود میدهد. NVMe گزینهای جایگزین برای SCSI و ATA محسوب میشود که با هدف رسیدن به حداکثر ظرفیت حافظهها روانهی بازار شده است.
NAND، کنترلها و ساختار آنها در SSDها امکان رسیدن به سرعتهای بالا را فراهم کردند اما تا زمانیکه یک فرایند و درگاه مناسب برای رسیدن به سرعتهای بالا وجود نمیداشت این پتانسیلها بلااستفاده باقی میماندند. NVMe که مبتنی بر PCIe توسعه داده شده، درحقیقت موانع درگاهی برای انتقال اطلاعات را برداشته است. درحقیقت بهدلیل استفاده از رابطهای قدیمی، بسیاری از حافظههای SSD نمیتوانند به حداکثر ظرفیت خود در سرعت تبادل دادهها برسند و استاندارد جدید میتواند موجب افزایش بیش از پیش فاصلهی میان این نوع حافظهها و حافظههای مکانیکی قدیمی شود.
تاریخچه مختصر
اولین جزئیات و اخبار پیرامون استاندارد جدید حافظه در سال 2007 رسانهای شد. توسعهی فنی اینترفیس NVMe از سال 2009 آغاز شد و بیش از 90 شرکت تحت رهبری امبر هافمن از اینتل فرایند توسعه را پیش گرفتند. مارس 2011 نسخه 1.0 منتشر شد. نسخهی 1.1 پشتیبانی از SSD با چندین درگاه PCIe را به نسخه پیشین افزود.
نسخهی 1.2 در نوامبر 2014 بهبودهایی همچون پشتیبانی زنده از بهروزرسانیهای فرمور و مصرف بهینهتر را افزود. نسخه 1.3 که هماکنون نیز شاهد استفاده از آن در حافظهها هستیم از ژوئن 2017 آماده شد که پاکسازی از بلاکهای لول پایین روی NAND و فرمور جدیدی را برای حافظههای NVMe به ارمغان میآورد.
بهبودهای شبیهسازی نیز در این نسخه نحوهی استفاده از فضای ذخیرهسازی اشتراکی در زمان وجود کنترلر فیزیکی و مجازی را تعریف میکرد. اطلاعات اولیه از نسخهی 1.4 نیز در ژوئن 2019 رسانهای شد اما هنوز محصولی بر مبنای آن به بازار عرضه نشده است.
NVMe چگونه کار میکند؟
NVMe فرامین I/O (ورودی خروجی) و پاسخهای آن را در حافظهی مشترک روی اینترفیس PCIe در کامپیوتر میزبان مپ میکند. این اینترفیس از I/Oهای موازی و پردازندههای چند هستهای برای رسیدن به توان عملیاتی بالا و کاهش پدیده گلوگاهی شدن پشتیبانی میکند.
NVMe اینطور عمل میکند که کامپیوتر میزبان یک ردیف فرمان I/O را مینویسد و کنترلر NVMe با برداشتن ردیفهای I/O آنها را اجرا کرده و فرامین انجام شده را بار دیگر به میزبان ارسال میکند.
با تخصیص مسیرهای بیشتر برای پردازش یک درخواست I/O نسبت به SCSI و ATA، نیاز NVMe به پردازندهی مرکزی کمتر میشود. NVMe از 64 هزار فرمان در یک ردیف پیام و 65535 ردیف I/O پشتیبانی میکند. برای مقایسه میتوان به این نکته اشاره کرد که دستگاه مبتنی بر SAS به حالت عادی حداکثر 256 فرمان و یک حافظه SATA نیز حداکثر 32 فرمان را در یک ردیف پشتیبانی میکند.
مشکل اصلی حافظه است!
نمیتوان پیشرفتهای تولیدکنندگان پردازنده و کارتهای گرافیک را در دههی اخیر انکار کرد؛ اما علت اصلی افزایش سرعت لپتاپها در نسلهای کنونی، حافظههای SSD هستند. برای سالهای متمادی، ضعف در سرعت ذخیرهسازی یکی از علتهای اصلی کند بودن رایانههای شخصی بوده است و بالارفتن تعداد هستههای پردازشی یا فرکانس پردازنده نیز کمکی به سریعتر شدن سیستمها نمیکرد. حافظههای مکانیکی درحال تلف کردن پتانسیل پردازندهها و کارتهای گرافیک بودند و افزایش سرعت چرخش آنها نیز ثمربخش نبود. در نهایت SSDها توانستند خلاء ایجادشده میان قدرت پردازنده و سرعت حافظه را پر کنند. اکنون در تمامی سیستمهای قدرتمند از جمله رایانهها و لپتاپهای مخصوص بازی، ویرایش ویدئو و تولید محتوای گرافیکی شاهد استفاده از نوع جدید حافظهها هستیم.
مقالههای مرتبط:
برای مثال اگر طی دو سال اخیر اقدام به خریداری مکبوک پرو کرده باشید، متوجه خواهید شد که سرعت دستگاه نسبت به نسلهای قبلی خود افزایش چشمگیری داشته است. برنامهها در یک چشم برهم زدن باز و فایلها نیز بهسرعت روی دستگاه ذخیره میشوند. همچنین روشن و خاموش شدن دستگاه تنها در چند ثانیه صورت میگیرد. تمامی موارد گفتهشده، بهدلیل استفاده از حافظههای NVMe SSD در نسلهای اخیر مکبوک پرو است که میتواند خواندن و نوشتن اطلاعات را 4 برابر سریعتر از حافظههای SATA SSD بهکاررفته در نسلهای قبلی انجام دهد.
شناسایی مسیر دادهها نیز 10 برابر سریعتر از گذشته شده است. این در حالی است که حافظههای SATA SSD خود چندین برابر پرسرعتتر از انواع HDD هستند و حاصلضرب تمامی این ارقام میتواند نشاندهندهی سرعت بسیار زیاد حافظههای مبتنی بر استاندارد NVMe باشد. در جدول زیر میتوانید مقایسهی میان عملکرد سه فناوری اصلی در صنعت ذخیرهسازی اطلاعات را مشاهده کنید.
میانگین سرعت قابل دستیابی در حافظههای مکانیکی حدود 200 مگابایت بر ثانیه است؛ درحالی که این مقدار برای حافظههای SATA SSD بهرقم 550 مگابایت بر ثانیه و برای NVMe SSD به بیش از 3 گیگابایت بر ثانیه میرسد. البته مشخص است که بسیاری از کاربران به چنین سرعتی نیاز ندارند و حتی کاربران حرفهای نیز در استفاده روزمره، به حداکثر پتانسیل سرعت در استاندارد NVMe دست پیدا نمیکنند؛ اما افزایش این مقدار میتواند بهطور چشمگیری موجب بهبود عملکرد رایانهها شود.
نتایجی که در جدول زیر مشاهده میکنید بهخوبی تفاوت دو نوع NVMe در کلاسهای مختلف، تفاوت SATA و NVMe و تفاوت بین هارددیسکها و حافظههای SSD را مشخص میکنند:
مدل حافظه / خواندن و نوشتن (MB/s) | ظرفیت | نوع حافظه | Seq Q32T1 | 4K Q32T1 | Seq | 4K |
---|---|---|---|---|---|---|
Samsung 970 Pro | 512 گیگابایت | NVMe SSD | 3535 2300 |
418 328.9 |
2574 2124 |
54/95 131.4 |
Lexar NS200 | 240 گیگابایت | SATA SSD | 568/8 516/7 |
311/1 292/8 |
533/9 476/3 |
33/4 88/98 |
ADATA XPG SX6000 Lite | 512 گیگابایت | NVMe SSD | 1742 1240 |
422/9 379/9 |
1736 1208 |
48/58 114/8 |
Western Digital WD10EZEX | 1 ترابایت | HDD 7200 RPM | 164/2 159/5 |
0/943 1/311 |
163/8 159/1 |
0/300 1/303 |
همانطور که مشاهده میکنید، SSDهای NVMe سرعت بسیار بیشتری در تستهای زومیت نسبت به نمونههای SATA داشتند. Samsung 970 Pro یک حافظهی NVMe بالارده و ADATA XPG SX6000 Lite یک حافظه NVMe اقتصادی است و با وجود اینکه هر دو از NVMe 1.3 بهره میبرند، تفاوت سرعتی زیادی در آنها دیده میشود. البته ممکن است محصولاتی از هر سه نوع حافظه وجود داشته باشند که عملکردی بهتر یا پایینتر از سطح گفتهشده داشته باشند، اما مقادیر ذکرشده در جدولهای فوق، بهصورت میانگین درنظر گرفته شده است.
حافظه ذخیرهسازی / سرعت خواندن اطلاعات (نوشتن اطلاعات) | نوع | ترتیبی برحسب مگابایتبرثانیه | 4KB Random Single IOPS |
---|---|---|---|
Samsung 970 Pro | NVMe SSD | 2795 (2087) | 14014 (41078) |
Lexar NS200 | SATA SSD | 523 (478) | 8577 (24820) |
Samsung 970 Evo Plus | NVMe SSD | 2706 (2447) | 15082 (41736) |
?Western Digital WD10EZEX | HDD 7200 RPM | 143/5 (142.5) | 59 (314) |
بدون شک اگر نموداری از میزان پیشرفت حافظهها در 10 سال اخیر رسم شود، میتواند پیشرفتهای صورتگرفته در حوزهی پردازش رایانههای شخصی را کمرنگ کند. اما سرعت پایینتر موجب نشده است که نسلهای قدیمی از جمله HDD حذف شوند. این نوع حافظهها همچنان برای ذخیرهسازی انبوه اطلاعات گزینهی مناسبتری بهشمار میروند زیرا بهنسبت حافظههای SSD، قیمت بسیار کمتری دارند و در حجمهای زیاد، این فاصله بسیار محسوستر میشود. اما بهتر است سیستمهای عامل، برنامهها و دادههای پراستفاده روی حافظههای NVMe SSD یا در صورت عدم دسترسی روی SATA SSD قرار گیرند تا سرعت سیستم افزایش پیدا کند.
اگرچه درگاه SATA توانسته است در نسخه 3.3 خود به سرعت 16 گیگابیتبرثانیه دست پیدا کند، اما بیشتر درگاههای تجاری موجود در رایانهها از ظرفیت اسمی 6 گیگابیتبرثانیه فراتر نمیروند و در عملکرد واقعی نیز سرعت آنها بهسختی به 550 مگابایت بر ثانیه میرسد. حتی نسخه 3.3 این فناوری بسیار کندتر از پتانسیل حافظههای SSD امروزی است؛ مخصوصاً اگر در پیکربندی RAID از آنها استفاده شود.
در قدم بعدی، استفاده از فناوری PCI Express در دستور کار بسیاری از سازندگان قرار گرفت که بهصورت پیشفرض در رایانهها برای انتقال دادههای مربوط به کارت گرافیک وجود داشت. این فناوری از نسل سوم به بعد قابلیت استفاده از چندین مسیر (Lane) را تا حداکثر مقدار 16 عدد فراهم میکند که هر یک از آنها میتوانند حدود 1 گیگابایت (بهطور دقیق 985 مگابایت) داده را در هر ثانیه منتقل کنند.
PCIe بهعنوان عامل اصلی پیدایش رابط تاندربولت نیز شناخته میشود. این رابط اکنون گزینهی اصلی برای اتصال کارتهای گرافیک اکسترنال مخصوص بازی به رایانهها است. همچنین حافظههای اکسترنال NVMe از رابط گفتهشده استفاده میکنند که موجب میشود سرعت آنها تقریبا همانند حافظههای داخلی باشد. اکنون بسیاری از کاربران متوجه میشوند که اقدام اینتل در جلوگیری از فراموش شدن Thunderbolt چگونه ثمربخش بوده است.
اگرچه ظهور PCIe به چندسال قبل از پیدایش استاندارد NVMe برمیگردد، اما استفاده از آن برای ذخیرهسازی اطلاعات چندان متداول نبوده است. پروتکلهای قبلی مورد استفاده دراینزمینه مانند SCSI و AHCI همگی در دوران اوج و سلطنت حافظههای مکانیکی توسعه یافته بودند و بههمین دلیل چندان با ویژگیهای پیشرفتهی SSDها سازگاری نداشتند. درنهایت NVMe توانست با ارائهی قابلیتهای بسیاری از جمله کم کردن تأخیر در اجرای فرمانها و افزایش ظرفیت اجرای آنها بهمقدار 64 هزار عدد، محدودیتهای استانداردهای قبلی را از میان بردارد.
قابلیت ذکرشده در حافظههای SSD اهمیت بسیار زیادی دارد زیرا دادهها در این نوع محصولات بهصورت گسترده در واحدهای ذخیرهسازی ثبت میشوند؛ درحالی که این روند در حافظههای مکانیکی بهطور پیوسته و دایرهوار صورت میگرفت. استاندارد NVMe همچنان درحال پیشرفت است و نسلهای جدیدتر آن درحال عرضه به بازار هستند. در نسخهی 1.31 این پروتکل، قابلیت استفاده از رم کامپیوتر بهعنوان حافظه موقت (cache) فراهم شده است.
فرمفکتورهای حافظههای NVMe
M.2: مرسومترین فرمفکتور برای حافظههای NVMe محسوب میشود که با استفاده از کانکتور آن حداکثر تا چهار لین از PCIe 3.0 یا PCIe 4.0 میتوان استفاده کرد.
U.2: این فرمفکتور با نام SFF-8639 نیز شناخته میشود و حداکثر از 4 لین PCIe بهره میبرد. چنین فرمفکتوری را بیشتر در سرورهای کامپیوتری میتوان یافت.
U.3: بر مبنای مشخصات U.2 توسعه داده شده و از کانکتور SFF-8639 بهره میبرد. میتوان از یک کنترلر برای ترکیب SAS، SATA و NVMe بهره برد. حافظههای U.3 با U.2 سازگار هستند اما امکان استفاده از حافظه U.2 در بستر U.3 فراهم نیست.
AIC: تقریبا تمام حافظههای NVMe اولیه از نوع HHHL AIC یا FHHL AIC بودند و از اینترفیس PCIe 2.0 و PCIe 3.0 بهره میبردند. یک حافظه HHHL AIC به درگاه PCIe سرور متصل میشود.
چگونه از یک حافظهی NVMe بهره ببریم؟
امکان اضافه کردن یک حافظه از نوع NVMe به رایانههای دارای درگاه PCIe با خرید آداپتور وجود دارد. تمامی سیستمهای عامل محبوب و مهم، درایورهای مخصوص برای این کار را فراهم میکنند و بدون درنظر گرفتن سن رایانهی شما، سرعت آن بدون شک افزایش پیدا میکند. اما این مسئله، چندان ساده نیز نخواهد بود. برای استفاده از حداکثر توان یک حافظه NVMe SSD، باید سیستمعامل خود را روی آن نصب کنید.
بوت شدن سیستمعامل از روی حافظه نیازمند پشتیبانی BIOS از استاندارد مورد استفاده توسط حافظه است. بایوس بیشتر رایانههای قدیمی از چنین قابلیتی پشتیبانی نمیکند و بهنظر نمیرسد که سازندگان قصد ارائهی بهروزرسانی برای افزودن قابلیت مذکور داشته باشند. بههمین دلیل افزودن چنین حافظهای به یک رایانهی بدون پشتیبانی از بوت NVMe، امری بیهوده خواهد بود؛ مگر اینکه یک گیمر باشید و بازیهای خود را روی حافظهی مذکور نصب کنید یا از نرمافزارهای سنگین با نیاز پردازشی بالا مثل ویرایش ویدئو با کیفیتهای بالا (مانند 2160p) بهره ببرید.
بیشتر حافظههای NVMe SSD موجود در بازار از فرمفکتور M.2 بهره میبرند. اما داشتن درگاه M.2 بهمعنای پشتیبانی رایانهی شما از استاندارد مورد نیاز نخواهد بود. این درگاه برای پشتیبانی از USB 3.0 در کنار SATA و PCIe درنظر گرفته شده است اما نسلهای ابتدایی آن، تنها از SATA پشتیبانی میکنند؛ بههمین دلیل بهتر است قبل از خریداری حافظهی جدید، اطلاعات مربوط به مادربرد خود را مطالعه کنید یا بهصورت آنلاین از سازگاری آن با استاندارد NVMe مطمئن شوید. همچنین دقت داشته باشید که درگاه MSATA که نسل قبلی M.2 بهشمار میرود، شباهت بسیاری به آن دارد اما از قابلیت گفتهشده پشتیبانی نمیکند.
مقالههای مرتبط:
از روی ظاهر یک درگاه نمیتوان به پشتیبانی آن از PCIe و NVMe پی برد؛ اما میتوان از نظر ظاهری میان درگاه PCIe x2 و PCIe x4 تفاوت قائل شد که تنها مورد دوم میتواند از استانداردهای گفتهشده پشتیبانی کند. نمونه اول از کلید B شکل بهره میبرد که موجب شده 6 پین یا محل اتصال از بقیه جدا شوند. اصطلاح کلید به برآمدگیهایی در درگاه گفته میشود که روی فرورفتگیهای موجود در حافظه قرار میگیرند. درگاه PCIe x4 از کلید M شکل استفاده میکند که علاوهبر برآمدگی قبلی، در طرف مخالف برآمدگی دیگری نیز دارد که پنج پین اتصال را از سایرین جدا میکند. البته قانون کلی برای این درگاهها وجود ندارد اما بیشتر درگاههای دارای کلید B تنها از استاندارد SATA بهره میبرند. امروزه درگاههای دارای هردو کلید B و M رایج هستند که قابلیت بهرهگیری از تمامی استانداردها را دارند. گاهی به درگاههای گفتهشده، نام دو سوکت و سه سوکت نیز اطلاق میشود.
اگر درگاه شما از نوع قدیمیتر بود باید از مبدل 25 دلاری PCIe M.2 استفاده کنید. محصولاتی مانند M9Pe ساخت شرکت Plextor در بازار وجود دارند که تنها پس از قرارگیری در درگاه، قابل استفاده خواهند بود و هیچ عمل اضافی برای راهاندازی آنها نیاز نیست. همچنین بهعنوان یک کاربر ساده، باید از خرید نسخه 2.5 اینچی حافظههای NVMe خودداری کنید زیرا نیازمند رابط SFF-8639 هستند که برای حافظههای کوچک طراحی شده است. این رابط دارای 4 مسیر نسل سوم PCIe، بههمراه 2 پورت SATA و چندین کانال جانبی است که از درگاههای 3.3 و 12 ولتی برای تأمین انرژی استفاده میکند. البته این رابط تنها در حافظهها و سیستمهای ردهبالا و سازمانی دیده میشود. اگر شما از دارندگان رایانههای نادر دارای پورت تاندربولت هستید (مانند بسیاری از مادربردهای ایسوس)، میتوانید از این پورت برای اتصال حافظهی NVMe به دستگاه خود استفاده کنید که توان بسیار بالایی را در اختیار کاربر قرار میدهد.
همهی NVMeها یکسان نیستند
بهصورت کلی هرنوع حافظهی NVMe موجب سریعتر شدن رایانهی شما میشود؛ اما همهی آنها شبیه یکدیگر نیستند. برای مثال حافظهی 970 Pro ساخت سامسونگ میتواند فرایند خواندن اطلاعات را با سرعت 3 گیگابایت بر ثانیه و نوشتن داده را با سرعت 2.5 گیگابایت در ثانیه انجام دهد درحالی که این مقادیر برای RC100 ساخت توشیبا، بهترتیب برابر با 1.2 گیگابایت بر ثانیه و 900 مگابایت بر ثانیه است. اختلاف مدلهای گوناگون، هنگامی که حجم دادهی نوشتهشده بیشتر از حجم کش است، حتی میتواند محسوستر باشد. عاملهای مختلفی مانند نوع کنترلر، تعداد و نوع واحدهای NAND و تعداد مسیرهای PCIe روی عملکرد حافظه تأثیر دارد. چندین مورد از تفاوتها و توضیحات برخی از عوامل در ادامه شرح داده شده است:
- حافظههای NVMe SSD دارای اتصال PCIe x4 سریعتر از انواع PCIe x2 هستند.
- افزایش تعداد چیپهای NAND موجب افزایش مسیرها و واحدهایی میشود که کنترلر برای توزیع و ذخیرهی اطلاعات استفاده میکند. بههمین دلیل حافظههایی با ظرفیت کمتر معمولا نسبت به حافظههای حجیمتر، کندتر هستند؛ حتی اگر از یک مدل باشند.
- نوع چیپهای NAND مورد استفاده در حافظه نیز روی سرعت آن تأثیرگذار است. چیپهای SLC سریعتر هستند و سپس بهترتیب MLC و TLC قرار میگیرند و در نهایت نیز نوع QLC کمترین سرعت را دارد.
در نهایت باید گفت که با استفاده از حافظههای NVMe SSD میتوانید تا مدت زیادی از رایانه یا لپتاپ خود استفاده کنید و دیگر نیازی به تعویض قطعات یا دستگاه نخواهید داشت؛ مگر اینکه گیمر باشید یا استفادههای سنگین پردازشی داشته باشید. سرعت بالای این نوع حافظهها موجب میشود تا بیشترین استفاده از توان سایر قطعات رایانهی خود از جمله پردازنده و کارت گرافیک را داشته باشید.
سوالات متداول
1.حافظههای مبتنی بر NVMe 1.3 حداکثر به چه سرعتی دست مییابند؟
همه چیز به تعداد لینهای PCIe و نوع حافظه بستگی دارد. حافظههای SSD از نوع NVMe در حال حاضر حداکثر 4 لین را درگیر میکنند؛ بنابراین در فناوری PCIe 3.0 حداکثر سرعت نامی 4 گیگابایت بر ثانیه قابل دستیابی است؛ اما در شرایط عملی این سرعت کمتر است.
2.آیا حافظه M.2 و NVMe یکسان هستند؟
خیر، این دو مقوله کاملا متفاوت هستند. NVMe یک اینترفیس انتقال داده محسوب میشود که میتوان آن را در مقابل SATA قرار داد اما M.2 فرمفکتوری ظاهری محسوب میشود که هر دو نوع حافظهی SATA و NVMe در آن جای میگیرد.
3. آیا همهی لپتاپها از حافظههای مبتنی بر NVMe پشتیبانی میکنند؟
خیر، درصد زیادی از لپتاپها درگاهی برای اتصال حافظه NVMe ندارند و برخی از آنها نیز در صورت وجود حافظه قابل تغییر نیستند (همانند مکبوکهای جدید)؛ بنابراین حتما پیش از خرید این نوع حافظه برای لپتاپ خود به پشتیبانی از M.2 در آن و نسخهی NVMe توجه کنید.
4. آیا حافظههای مبتنی بر PCIe 4.0 در بازار موجود هستند؟
برخی شرکتها محصولات مبتنی بر PCIe 4.0 خود را روانهی بازار کردهاند اما به دلیل محدودیتهای مربوط به مادربردها و جدید بودن آنها هنوز بهصورت گسترده شاهد این حافظهها نیستیم.
5. آیا ممکن است درگاه حافظه SSD کامپیوتر شما از از نوع x4 نباشد؟
بله. برخی از مادربردها به دلیل محدودیتهایشان درگاه حافظههای M.2 با x2 (دو لین) دارند؛ به این معنی که احتمالا سرعت انتقال دادهی شما نصف میزان اعلامی توسط شرکت یا بنچمارکها خواهد بود.