فناوری NVMe چیست؟
NVMe یک اینترفیس اصلی(Interface Register)، سری دستورات(Command Set) و مجموعهای از قابلیتها برای SSDهای مبتنی بر PCIe را شامل میشود تا بتواند کارایی بیشتر و ارتباط بهینهتری را میان طیف وسیعی از سیستمهای مجهز به NVM میسر سازد. این نکته را باید در نظر داشت که فناوری NVMe، معماری نهایی مورد استفاده را از حافظههای سالید استیت و حافظهٔ اصلی گرفته تا حافظهٔ کش (cache) و حافظهٔ پشتیبان صریحا دیکته نمیکند.
اینترفیس NVMe به منظور جایگزینی اینترفیسهای قدیمی SCSI و سریال ATA طراحی شده تا رابطی برای اتصال و انتقال داده بین سیستم میزبان و حافظهٔ ذخیرهسازی مقصد باشد. سری دستورات ATA برای استفاده در SATA SSD و دستورات SCSI برای SAS SSD زمانی کارایی داشت که هارد دیسکها و نوارهای ذخیره سازی، گزینههای اصلی و مرسوم ذخیرهسازی بودند. تا اینکه NVMeها با هدف دسترسی به سرعتهای بسیار بالا وارد میدان شدند.
از جمله مزایای اصلی NVMe نسبت به اینترفیسهای قدیمی SATA و SAS برای SSDها، میتوان به تاخیر پایین در استک نرم افزارهای میزبان، سرعت بالاتر عملیات ورودی/خروجی در ثانیه (IOPs) و مصرف بهینهٔ توان، با توجه به تعداد مسیرهای PCIe و فرمفاکتور مورد استفاده اشاره کرد.
پروتکل NVMe از SSDهایی که از انواع حافظههای غیرفرار نظیر NAND flash و 3D XPoint که توسط Intel و Micron Technology ساخته شدهاند پشتیبانی میکند. به علاوه درایورهای مرجع NVMe برای انواع سیستم عاملها نظیر ویندوز و لینوکس عرضه شدهاند.
به لطف تاثیر اینترفیس NVMe در افزایش سرعت و کارایی نرمافزارها، تاخیر پاسخدهی پایین و سرعت بالای انتقال داده، رشد و توسعهٔ تکنولوژیهای نوینی مانند اینترنت اشیا IoT، هوش مصنوعی AI و یادگیری ماشین ML با شتاب بسیار بیشتری نسبت به گذشته امکانپذیر شدهاند.
NVMe چطور کار میکند؟
اینترفیس NVMe در سیستم های میزبان، دستورات ورودی/خروجی (I/O) را ثبت کرده و از طریق رابط PCIe به حافظهٔ اشتراکی پاسخ میدهد. این اینترفیس با پشتیبانی از عملیات ورودی/خروجی موازی در پردازشهای چندهستهای، موجب افزایش توان عملیاتی شده و از ایجاد گلوگاه در پردازندهٔ مرکزی CPU جلوگیری میکند.
اینترفیس NVMe در قیاس با مجموعه دستورات اینترفیسهای SCSI و ATA برای کانکتورهای SAS و SATA، علاوه بر ساده سازی مجموعه دستورات I/O، عملا تعداد دستورالعملهای CPU را به نصف کاهش داده است.
مقایسهٔ NVMe SSD با SATA SSD
رابط SATA که مخصوص ارتباط کامپیوتر و حافظههای مبتنی بر هارد دیسک ساخته شده بود در سال ۲۰۰۰ و توسط تعدادی از بازیگران اصلی عرصهٔ تکنولوژی معرفی شد. پروتکلی که به سرعت محبوبیت یافت و در طیف گستردهای از کامپیوترها از لپتاپهای شخصی گرفته تا سرورهای قدرتمند جایگزین اینترفیس ATA شد. در طی این سالها، نسخههای مختلفی از این اینترفیس به بازار آمده که در آخرین نسخهٔ ارائه شده، سرعت اتصال 6 گیگابیت بر ثانیه و سرعت موثر 600 مگابایت بر ثانیه برای کاربران میسر شده است.
با وجودیکه اینترفیس SATA برای هارددیسکهایی طراحی شده بود که دارای صفحات چرخان و هدهای مکانیکی بودند، اولین سری از SSDها هم از اینترفیس SATA استفاده میکردند تا بتوانند جای خود را در بازار باز کنند. این استراتژی در ابتدای کار و برای افزایش محبوبیت SSDها موثر بود، اما در واقعیت، اینترفیس SATA فرسنگها با یک اینترفیس ایده آل برای حافظههای فلش NAND فاصله داشت و موجب ایجاد تاخیر یا به قولی باتلنک Bottleneck در سیستم میشد.
برای حل این مشکل، اینترفیس NVMe به میان آمد و با تاخیر بسیار پایین در پاسخدهی، فناوری SATA را عملا با خاک یکسان کرد. تکنولوژی تازهای که میتوانست در اندازه و فُرم فاکتور کوچکی مثل M.2 توانایی فوقالعاده بالایی از خود نشان دهد. در یک مقایسهٔ کلی میتوان اینطور گفت که NVMe نسبت به SATA تا پنج برابر از عملکرد بهتری برخوردار است.
شاید رابط SATA تاریخچهٔ مفصلتری نسبت به NVMe داشته باشد و هزینهٔ پیادهسازی پایینتری ببرد. اما به وضوح میدانیم که SATA بر پایهٔ همان فناوری کهنهٔ هارددیسکها شکل گرفته تا آنها را به طریقی با معماری فضاهای ذخیرهسازی مدرن همگام کند.
مقایسه NVMe SSD با SAS SSD
اینترفیس NVMe قادر است تا ۶۴ هزار دستور را در یک صف پیام (Message Queue) و تا ۶۵۵۳۵ صف مختص به عملیات I/O را پشتیبانی کند. نرخی که نهایتا برای SAS تا ۲۵۶ و برای SATA تا ۳۲ دستور میرسد!
با این حال، حافظههای NVMe SSD هنوز هم با وجود کاهش قیمت، هنوز هم بسیار گرانتر از SATA و SAS هستند و در نوع صنعتی خود، مصرف توان به مراتب بالاتری دارند. به گفتهی اتحادیهٔ بازرگانی SCSI حافظههای SAS SSD بالغتر و جاافتادهتر از NVMe SSDها هستند و از مزایایی بیشتری مثل مقایسپذیری، قابلیت هات پلاگ، قابلیت تست و failover دارند و در کل، امتحانشان را در طول زمان پس داده اند. در ضمن این نکته هم فراموش نشود که در بسیاری از سناریوها، نیازی به توانایی بالای SSDهای مبتنی بر NVMe وجود ندارد.