مقاله

حافظه NVMe چیست و چه ویژگی‌هایی دارد؟

سرعت بسیار بالای‌ حافظه‌های NVMe SSD موجب محبوبیت بسیار زیاد آن‌ها شده است؛ اما تفاوت اصلی میان آن‌ها و SATA SSD‌ در چیست؟

NVMe مخفف non-volatile memory express (رابط کنترل‌کننده‌ی میزبان حافظه غیرفرار) یک اینترفیس ارتباطی برای حافظه‌های SSD است که توسط یک کنسرسیوم متشکل از شرکت‌های همچون اینتل، سامسونگ، سن‌دیسک، دل و سیگیت توسعه داده شده است؛ این پروتکل در حقیقت استفاده از باس PCIe را برای حافظه‌های SSD ممکن می‌سازد. NVM Express به نرم‌افزار و سخت‌افزار میزبان این امکان را می‌دهد تا از حداکثر موازی‌سازی در SSD‌های مدرن استفاده کنند.

فناوری حافظه NVMe در گذشته به‌عنوان گزینه‌ای غیرضروری اما پرکاربرد در صنعت ذخیره‌سازی اطلاعات به‌شمار می‌رفت. اما اکنون این قابلیت به موردی مهم تبدیل شده و خریداران رایانه‌های جدید بهتر است به داشتن آن توجه داشته باشند. اگر به‌تازگی رایانه‌ای خریداری کرده‌اید و می‌خواهید سرعت‌ آن را افزایش دهید، می‌توانید با بهره‌گیری از این فناوری به هدف خود دست پیدا کنید.

استفاده از پروتکل NVMe باعث بهبود سرعت I/O‌های خواندن و نوشتن می‌شود؛ همچنین در این حافظه‌ها زمان تأخیر به‌شدت کاهش پیدا می‌کند. فرایند بهبودیافته بررسی ردیف‌های چندگانه فرامین (به‌خصوص فرامین بلند) نیز سرعت و عملکرد حافظه را تا حد زیادی در این نوع فناوری بهبود می‌دهد. NVMe گزینه‌‌ای جایگزین برای SCSI و ATA محسوب می‌شود که با هدف رسیدن به حداکثر ظرفیت حافظه‌ها روانه‌ی بازار شده است.

حافظه NVMe

NAND، کنترل‌ها و ساختار آن‌ها در SSD‌ها امکان رسیدن به سرعت‌های بالا را فراهم کردند اما تا زمانی‌که یک فرایند و درگاه مناسب برای رسیدن به سرعت‌های بالا وجود نمی‌داشت این پتانسیل‌ها بلااستفاده باقی می‌ماندند. NVMe که مبتنی بر PCIe توسعه داده شده‌، درحقیقت موانع درگاهی برای انتقال اطلاعات را برداشته است. درحقیقت به‌دلیل استفاده از رابط‌های قدیمی، بسیاری از حافظه‌های SSD نمی‌توانند به حداکثر ظرفیت خود در سرعت تبادل داده‌ها برسند و استاندارد جدید می‌تواند موجب افزایش بیش‌ از‌ پیش فاصله‌ی میان این نوع حافظه‌ها و حافظه‌های مکانیکی قدیمی‌ شود.

حافظه NVMe چگونه کار می‌کند؟

NVMe فرامین I/O (ورودی خروجی) و پاسخ‌های آن را در حافظه‌ی مشترک روی اینترفیس PCIe در کامپیوتر میزبان مپ می‌کند. این اینترفیس از I/O‌های موازی و پردازنده‌های چند هسته‌ای برای رسیدن به توان عملیاتی بالا و کاهش پدیده گلوگاهی شدن پشتیبانی می‌کند. 

NVMe اینطور عمل می‌کند که کامپیوتر میزبان یک ردیف فرمان I/O را می‌نویسد و کنترلر حافظه NVMe با برداشتن ردیف‌های I/O آن‌ها را اجرا کرده و فرامین انجام شده را بار دیگر به میزبان ارسال می‌کند. 

با تخصیص مسیرهای بیشتر برای پردازش یک درخواست I/O نسبت به SCSI و ATA، نیاز NVMe به پردازنده‌ی مرکزی کمتر می‌شود. حافظه NVMe از ۶۴ هزار فرمان در یک ردیف پیام و ۶۵۵۳۵ ردیف I/O پشتیبانی می‌کند. برای مقایسه می‌توان به این نکته اشاره کرد که دستگاه مبتنی بر SAS به حالت عادی حداکثر ۲۵۶ فرمان و یک حافظه SATA نیز حداکثر ۳۲ فرمان را در یک ردیف پشتیبانی می‌کند.

اگر طی دو سال اخیر اقدام به خریداری مک‌بوک پرو کرده‌ باشید، متوجه خواهید شد که سرعت دستگاه‌ نسبت به نسل‌های قبلی خود افزایش چشمگیری داشته است. برنامه‌ها در یک چشم‌ برهم زدن باز و فایل‌ها نیز به‌سرعت روی دستگاه ذخیره می‌شوند. همچنین روشن و خاموش شدن دستگاه تنها در چند ثانیه صورت می‌گیرد. تمامی موارد گفته‌شده، به‌دلیل استفاده از حافظه‌های NVMe SSD در نسل‌های اخیر مک‌بوک پرو است که می‌تواند خواندن و نوشتن اطلاعات را ۴ برابر سریع‌تر از حافظه‌های SATA SSD به‌کاررفته در نسل‌های قبلی انجام دهد.

شناسایی مسیر داده‌ها نیز ۱۰ برابر سریع‌تر از گذشته شده است. این در حالی است که حافظه‌های SATA SSD خود چندین برابر پرسرعت‌تر از انواع HDD هستند و حاصل‌ضرب تمامی این ارقام می‌تواند نشان‌دهنده‌ی سرعت بسیار زیاد حافظه‌های مبتنی بر استاندارد NVMe باشد. در جدول زیر می‌توانید مقایسه‌ی میان عملکرد سه فناوری اصلی در صنعت ذخیره‌سازی اطلاعات را مشاهده کنید. میانگین سرعت قابل دستیابی در حافظه‌های مکانیکی حدود ۲۰۰ مگابایت بر ثانیه است؛ درحالی‌که این مقدار برای حافظه‌های SATA SSD به‌رقم ۵۵۰ مگابایت بر ثانیه و برای حافظه NVMe به‌ بیش از ۳ گیگابایت بر ثانیه می‌رسد. البته مشخص است که بسیاری از کاربران به چنین سرعتی نیاز ندارند و حتی کاربران حرفه‌ای نیز در استفاده روزمره، به حداکثر پتانسیل سرعت در استاندارد NVMe دست‌ پیدا نمی‌کنند؛ اما افزایش این مقدار می‌تواند به‌طور چشمگیری موجب بهبود عملکرد رایانه‌ها شود.

بدون شک اگر نموداری از میزان پیشرفت حافظه‌ها در ۱۰ سال اخیر رسم شود، می‌تواند پیشرفت‌های صورت‌گرفته در حوزه‌ی پردازش رایانه‌های شخصی را کم‌رنگ کند. اما سرعت پایین‌تر موجب نشده است که نسل‌های قدیمی از جمله HDD حذف شوند. این نوع حافظه‌ها هم‌چنان برای ذخیره‌سازی انبوه اطلاعات گزینه‌ی مناسب‌تری به‌شمار می‌روند زیرا نسبتا حافظه‌های SSD، قیمت بسیار کمتری دارند و در حجم‌های زیاد، این فاصله بسیار محسوس‌تر می‌شود. اما بهتر است سیستم‌های عامل، برنامه‌ها و داده‌های پراستفاده روی حافظه‌های NVMe SSD یا در صورت عدم دسترسی روی SATA SSD قرار گیرند تا سرعت سیستم افزایش پیدا کند.

حافظه NVMe

اگرچه درگاه SATA توانسته است در نسخه ۳.۳ خود به سرعت ۱۶ گیگابیت‌برثانیه دست پیدا کند، اما بیشتر درگاه‌های تجاری موجود در رایانه‌ها از ظرفیت اسمی ۶ گیگابیت‌برثانیه فراتر نمی‌روند و در عملکرد واقعی نیز سرعت آن‌ها به‌سختی به ۵۵۰ مگابایت بر ثانیه می‌رسد. حتی نسخه ۳.۳ این فناوری بسیار کندتر از پتانسیل حافظه‌های SSD امروزی است؛ مخصوصاً اگر در پیکربندی RAID از آن‌ها استفاده شود.

در قدم بعدی، استفاده از فناوری PCI Express در دستور کار بسیاری از سازندگان قرار گرفت که به‌صورت پیش‌فرض در رایانه‌ها برای انتقال داده‌های مربوط به کارت گرافیک وجود داشت. این فناوری از نسل سوم به بعد قابلیت استفاده از چندین مسیر (Lane) را تا حداکثر مقدار ۱۶ عدد فراهم می‌کند که هر یک از آن‌ها می‌توانند حدود ۱ گیگابایت (به‌طور دقیق ۹۸۵ مگابایت) داده را در هر ثانیه منتقل کنند.

PCIe به‌عنوان عامل اصلی پیدایش رابط تاندربولت نیز شناخته می‌شود. این رابط اکنون گزینه‌‌ی اصلی برای اتصال کارت‌های گرافیک اکسترنال مخصوص بازی به رایانه‌ها است. همچنین حافظه‌های اکسترنال NVMe از رابط گفته‌شده استفاده می‌کنند که موجب می‌شود سرعت آن‌ها تقریبا همانند حافظه‌های داخلی باشد. اکنون بسیاری از کاربران متوجه می‌شوند که اقدام اینتل در جلوگیری از فراموش شدن Thunderbolt چگونه ثمربخش بوده است.

اگرچه ظهور PCIe به چندسال قبل از پیدایش استاندارد NVMe برمی‌گردد، اما استفاده از آن برای ذخیره‌سازی اطلاعات چندان متداول نبوده است. پروتکل‌های قبلی مورد استفاده دراین‌زمینه مانند SCSI و AHCI همگی در دوران اوج و سلطنت حافظه‌های مکانیکی توسعه یافته بودند و به‌همین دلیل چندان با ویژگی‌های پیشرفته‌ی SSDها سازگاری نداشتند. درنهایت NVMe توانست با ارائه‌ی قابلیت‌های بسیاری از جمله کم کردن تأخیر در اجرای فرمان‌ها و افزایش ظرفیت اجرای آن‌ها به‌مقدار ۶۴ هزار عدد، محدودیت‌های استانداردهای قبلی را از میان بردارد.

فرم‌فکتورهای حافظه‌ NVMe

M.2: مرسوم‌ترین فرم‌فکتور برای حافظه‌های NVMe محسوب می‌شود که با استفاده از کانکتور آن حداکثر تا چهار لین از PCIe 3.0 یا PCIe 4.0 می‌توان استفاده کرد.

U.2: این فرم‌فکتور با نام SFF-8639 نیز شناخته می‌شود و حداکثر از ۴ لین 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 سرور متصل می‌شود.