NVME چیست؟ بررسی مزایا و معایب

در حال حاضر هارد دیسک‌های HHD جای خود را به درایوهای حالت جامد یا SSD داده‌اند. این درایوها از مکانیزم مکانیکی استفاده نمی‌کنند و بنابراین از سرعت انتقال داده بسیاری بالاتری برخوردار هستند.
همچنین قابلیت اطمینان این هاردها بیشتر است زیرا برعکس درایوهای HHD حساسیت کمتری به ضربه دارند و نفوذ گردوغبار هم در آن‌ها اختلالی ایجاد نمی‌کند. ساختار این درایوها از تراشه‌های فلش مموری‌ها الهام گرفته است و به دلیل سرعت بیشتر، برای بوت سخت‌افزارها، اپلیکیشن‌ها و انتقال داده‌ها عملکرد بسیار بهتری نسبت به HDD دارند.
از اوایل دهه 2000، درایورهای ساتا یا همان اتصال فناوری پیشرفته سریال، برای متصل کردن سیستم‌های ذخیره‌سازی به کامپیوتر از طریق کنترلرهای میزبان مورد استفاده قرار گرفت که برخی از این کنترلرها مانند AHCI (رابط کنترلر پیشرفته میزبان) بیشتر مورد استفاده قرار می‌گرفت.
پروتکل ارتباطی ساتا در بسیاری از تجهیزات نظیر لپ تاپ‌ها، کامپیوترهای دسکتاپ، و سرورها مورد استفاده قرار می‌گیرد. با این وجود، ساتا یک سری نقطه‌ضعف اصلی دارد که مهم‌ترین آن سرعت پایین به خصوص در پردازش داده‌های سنگین و حجیم است.
برای مقابله با این نقطه‌ضعف‌ها، پروتکل ارتباطی جدیدی برای اتصال دستگاه‌های ذخیره اطلاعات به کامپیوتر به وجود آمد که به خصوص برای هاردهای SSD مورد استفاده قرار می‌گیرد. این پروتکل تحت عنوان NVMe یا همان Non-Volatile Memory Express شناخته می‌شود.
پهنای باند انتقال در این پروتکل بسیار بیشتر است و زمان پاسخگویی هم به همان نسبت با استفاده از استاندارد PCIe که مخفف Peripheral Component Interconnect Express است، کمتر شده است. در این مقاله قصد داریم در مورد مفهوم پروتکل NVMe، عملکرد و مزایا و معایب آن بحث کنیم.
NVMe چیست؟

NVMe یا nonvolatile memory express یک پروتکل دسترسی به تجهیزات ذخیره‌سازی مبتنی بر فلش و نسل جدید درایوهای حالت جامد (SSD) است که با بالاترین توان عملیاتی و سریع‌ترین زمان، برای انواع کاربردهای عادی، سازمانی و سرور مورد استفاده قرار می‌گیرد.
امروزه، هم در کاربردهای سازمانی و صنعتی و هم در کسب‌وکارها، کاربران انتظار زمان پاسخگویی سریع‌تری دارند، حتی زمانی که خود برنامه‌ها بسیار پیچیده‌تر و وابسته به منابع هستند.
برای بهبود تجربه کاربری با پهنای باند بیشتر و تأخیر کمتر، پروتکل NVMe از طریق یک گذرگاه PCI Express یا به صورت اختصار PCIe به دستگاه ذخیره‌سازی دسترسی پیدا می‌کند. در این پروتکل اتصال، ده‌ها هزار دستور موازی پشتیبانی می‌شود و بنابراین بسیار سریع‌تر از دیسک‌های سخت و معمولی است.
اولین SSD های مبتنی بر فلش از رابط‌های فیزیکی SATA/SAS قدیمی استفاده می‌کردند به این خاطر که تا حد امکان از لزوم تغییر در پروتکل‌های ارتباطی سیستم‌ها و سرورها جلوگیری کنند.
با این حال، هیچ یک از این رابط‌ها و پروتکل‌ها برای رسانه‌های ذخیره‌سازی با سرعت بالا (مانند NAND و/یا حافظه پایدار) طراحی نشده است. به دلیل سرعت بالای ارتباطی، عملکرد رسانه‌های ذخیره‌سازی جدید از پروتکل PCIe تبعیت کردند.
اسلات های PCIe مستقیماً به CPU متصل می‌شوند و دسترسی شبیه به حافظه را فراهم می‌کنند، همچنین می‌توانند حجم بالایی از دستورات نرم‌افزاری هم‌زمان را اجرا کنند. با این حال، SSD های اولیه، رابط PCIe و ویژگی‌های سازمانی را نداشتند.
SSD های PCIe از سیستم عامل اختصاصی استفاده می‌کردند که به دلایل مختلف برای توسعه سیستم و ارتقاء آن دارای محدودیت بود. به همین دلیل، استاندارد جدیدی تحت عنوان NVMe برای اتصال این درایوها به کامپیوترها، سرورها و لپ تاپ‌ها، ارائه شد.
تاریخچه NVMe

در گذشته، اکثر SSD ها از باس‌های ارتباطی مانند SATA، SAS یا Fiber Channel برای ارتباط با بقیه سیستم‌های کامپیوتری استفاده می‌کردند.
از زمانی که SSD ها در بازارهای انبوه در دسترس قرار گرفتند، SATA به متداول‌ترین راه برای اتصال SSD به کامپیوترهای شخصی تبدیل شد. با این حال، SATA اساساً برای ایجاد ارتباط با درایوهای دیسک سخت مکانیکی (HDD) طراحی شده بود، به طوری که برای SSD ها سرعت آن‌ کافی نبود.
SSD های پیشرفته قبل از NVMe با استفاده از باس PCI Express ساخته شده بودند، اما با استاندارد کردن رابط SSD ها، سیستم‌های عامل فقط به یک درایور مشترک نیاز دارند تا همه SSDها را پشتیبانی کنند. این درایور بر اساس استاندارد NVMe طراحی شده و همه سیستم‌های عامل جدید با آن سازگار هستند.
کار بر روی پروتکل ارتباطی NVMe در نیمه دوم سال 2009 آغاز شد. مشخصات NVMe توسط گروه NVM Express که متشکل از بیش از 90 شرکت است، توسعه یافته است.
نسخه اول این پروتکل در سال 2011 منتشر شد، در حالی که نسخه 1.1 آن در 2012 به صورت عمومی وارد بازار شد. اولین چیپ‌ست‌های تجاری NVMe در آگوست 2012 منتشر گردید و نسخه‌های دیگری از آن تا کنون وارد بازار شده است.
عملکرد NVMe چگونه است؟

در ابتدا رابط SATA با سیستم‌های ذخیره‌سازی HDD استفاده می‌شد. هنگامی که SSD ها بیش از پیش مورد استقبال کاربران قرار گرفت، فرآیند تغییر از HDD به SSD در محیط‌های محاسباتی ساده شد.
با این حال، SATA دارای معایب بسیاری است، مانند سرعت محدود و پهنای باند کم که مانع از انتقال داده‌های حجیم می‌شود. علاوه بر این، هر درایو SATA به پورت خود در مادربرد نیاز دارد، بنابراین برای تعداد سیستم‌های ذخیره‌سازی قابل اتصال به دستگاه محدودیت وجود دارد.
NVMe در سال 2011 برای مقابله با محدودیت‌های SATA معرفی شد. NVMe به عنوان یک رابط ذخیره‌سازی و پروتکل عمل می‌کند که همراه با گذرگاه PCIe برای خواندن و نوشتن سریع حجم زیادی از داده‌ها قابل‌استفاده است.
NVMe به SSD ها این امکان را می‌دهد که مستقیماً از طریق باس PCIe به CPU متصل شوند تا داده‌ها را از طریق خطوط پرسرعت انتقال دهند. یک خط PCIe نسل 4 می‌تواند تا 2000 مگابایت بر ثانیه داده را انتقال دهد. برای مقایسه، SATA فقط یک خط دارد که می‌تواند تنها تا 600 مگابایت بر ثانیه را انتقال دهد.
رابط SATA از درایورهای AHCI استفاده می‌کند، در حالی که NVMe به صورت خاص برای SSD ها با استفاده از فناوری ذخیره‌سازی فلش طراحی شده است. به عبارت دیگر، رابط NVMe نه تنها سریع‌تر است، بلکه عملکرد بهتری را نیز ارائه می‌دهد.
دلیل این مسئله این است که SATA قبل از اتصال به CPU سیستم با کنترلر SATA ارتباط برقرار می‌کند، در حالی که استاندارد NVMe ، درایو SSD را مستقیماً بدون هیچ کنترلی به CPU متصل خواهد کرد.
درایورهای SATA SSD AHCI تنها یک مسیر با ظرفیت اسمی 32 دستور دارند. در حالی که NVMe انتقال از 65535 مسیر با حداکثر 65536 دستور در هر مسیر را امکان‌پذیر می‌کند.
فناوری NVMe به دلیل کوتاه شدن و بهینه‌سازی مسیر داده در مقایسه با SATA SSD، تأخیر کمتری دارد. این استاندارد تأخیری معادل 2.8 میکروثانیه ایجاد می‌کند، در حالی که SSD های SATA حدود 6 میکروثانیه تأخیر دارند، یعنی تقریباً 3 میکروثانیه بیشتر از SSD های NVMe.
SSD های NVMe برای مدیریت حجم بالایی از اطلاعات سازمانی و هوش مصنوعی، پروژه‌های یادگیری ماشینی، تجزیه‌وتحلیل بدون وقفه، انتقال داده‌های بزرگ و DevOps بهترین گزینه هستند. آن‌ها معمولاً در مراکز داده، سرورها، مراکز اطلاعاتی و حتی کامپیوترهای خانگی، گزینه ارجح برای کاربران به شما می‌روند.
سخت‌افزار و سیستم عامل سازگار با NVMe

قبل از خرید NVMe SSD باید چند نکته را در نظر بگیرید. آیا سیستم شما با NVMe سازگار است؟ دو موردی که باید در سیستم کامپیوتری خود به دنبال آن باشید، اسلات داخلی M.2 و پشتیبانی از NVMe است.
مشخصات مادربرد کامپیوتر خود را بررسی کنید تا ببینید اسلات M.2 در آن وجود دارد یا خیر. در مرحله بعد، باید ببینید که آیا مادربرد شما از SSD های NVMe پشتیبانی می‌کند یا خیر. در مشخصات برخی از مادربردها ممکن است مستقیماً به واژه NVMe اشاره نشده باشد و سازگاری با PCIe به تنهایی ذکر شده باشد که معنای این دو یکسان است.
علاوه بر سازگاری سخت‌افزاری، باید سازگاری سیستم عامل را نیز در نظر بگیرید. آخرین نسخه‌های لینوکس، ویندوز، سیستم‌عامل کروم و سیستم‌عامل مک همگی از NVMe پشتیبانی می‌کنند، اما اپل به شما اجازه نمی‌دهد سخت‌افزار آن را به خصوص در مدل‌های اخیر خود ارتقا دهید، بنابراین ممکن است برای کاربران مک استفاده از این پروتکل ارتباطی امکان‌پذیر نباشد.
فرم فکتور و استانداردهای NVMe

مشخصات NVMe شامل فرم فکتورها و استانداردهای مختلفی است که توسط توسعه‌دهندگان این استاندارد ارائه شده است. فناوری NVMe هنوز به طور مداوم با توجه به ویژگی‌ها و مشخصات آن در حال توسعه است. پس از معرفی رابط NVMe، چهار فرم فکتور NVMe به بازار عرضه شده است که عبارت‌اند از: U.2، M2، کارت افزودنی (AIC) و Enterprise & Data Center Form Factor (EDSFF|).
فرم فکتورهای NVMe با درایوهای SSD مبتنی بر PCIe سازگار هستند زیرا در حال حاضر PCIe به عنوان یک استاندارد صنعتی در نظر گرفته می‌شود. در ادامه در مورد هر فرم فکتور NVMe توضیحات مختصری را ارائه می‌دهیم.
U.2 – این SSD ها می‌توانند در اسلات مادربرد ارائه شده برای SATA SSD قرار بگیرند اما درعین حال قادرند تا چهار خط PCIe را نیز استفاده کنند. SSD های U.2 در اندازه‌های 2.5 اینچی و 3.5 اینچی عرضه شده و در ظرفیت‌های مختلف موجود هستند.
● M.2 - این فرم فاکتور بسیار کوچک‌تر از U.2 است. ویژگی این فرم فکتور، استفاده از درایوهای فشرده NVMe با تخلیه حرارت کم است. برای استفاده از SSD M.2، ابتدا باید بررسی کنید که مادربرد شما دارای اسلات مناسب آن باشد.
● AIC - درایوهای SSD مبتنی بر کارت افزودنی یا AIC برای اتصال از طریق گذرگاه PCIe ارائه شده‌اند. این امر باعث می‌شود که این فرم فکتور برای اهداف تجاری مانند مراکز داده به کار گرفته شوند. برخی از SSD های AIC شامل پردازنده و تراشه‌های اضافی برای بهبود عملکرد سیستم انتقال داده می‌باشند.
● ESDFF – این فرم فکتور، ظرفیت هر درایو را به حداکثر می‌رساند. ESDFF درایوهایی را پشتیبانی می‌کند که تا 30 ترابایت قابل ارتقاء هستند. آن‌ها عمدتاً در سیستم‌های ذخیره‌سازی سازمانی و مراکز داده استفاده می‌شوند. فرم فکتور ESDFF همچنین بر راندمان حرارتی سیستم نیز تأثیر دارد.
مزایای NVMe

درایوهای مبتنی بر پروتکل NVMe مزایای متعددی را نسبت به SSD های سنتی ارائه می‌دهد، مانند:
● عملکرد بهتر از طریق کاهش تأخیر
● ظرفیت‌های بالاتر
● هزینه کمتر
● تأخیرهای بسیار ناچیز در عملیات نوشتن و خواندن
● برخلاف پروتکل‌هایی که در زمان درایوهای دیسک سخت مکانیکی طراحی می‌شدند، NVMe نه تنها از فضای ذخیره‌سازی حالت جامد، بلکه از پردازنده‌های چند هسته‌ای و ماژول‌های حافظه امروزی نیز بهره می‌برد.
● ذخیره‌سازی NVMe از مجموعه دستورات ساده برای تجزیه و ساده‌سازی داده‌ها استفاده می‌کند.
● از آنجایی که سوکت های PCIe حدود 25 برابر بیشتر از معادل SATA خود داده‌ها را انتقال می‌دهند، فضای ذخیره‌سازی فوق‌العاده بیشتری را در اختیار کاربر قرار داده‌اند.
● سرعت NVMe بیشتر است زیرا دستورات را بیش از ۲ برابر سریع‌تر از درایوهای SATA AHCI ارسال می‌کند. علاوه بر این IOPS در پروتکل NVMe بیش از 1 میلیون است که تا 900٪ سریع‌تر از AHCI می‌باشد.
● از آنجایی که سخت‌افزارهای مبتنی بر NVMe مستقیماً با CPU سیستم ارتباط برقرار می‌کنند مشکل سازگاری وجود ندارد.
● SSD های مبتنی بر NVMe با همه سیستم‌های عامل اصلی صرف‌نظر از فرم فکتور، سازگار هستند.
● NVMe از پروتکل تونل‌زنی پشتیبانی می‌کند که از نظر مسائل امنیت داده و حفظ حریم خصوصی داده‌ها دارای اهمیت است.
● NVM express از پهنای باند بسیار بالاتری نسبت به SATA یا SAS پشتیبانی می‌کند.
معایب NVMe

اشکالات یا معایب NVMe SSD هم عبارت‌اند از:
● سخت‌افزارهای SSD مبتنی بر NVMe در مقایسه با سخت‌افزارهای SSD استاندارد 2.5 اینچی قیمت بیشتری دارند.
● کامپیوترهای شخصی از NVMe در قالب M.2 استفاده می‌کنند که انتخاب درایو را در مقایسه با روش‌های موجود محدود می‌کند.
● سیستم‌های قدیمی‌تر از NVMe پشتیبانی نمی‌کنند. این امر ارتقاء سیستم ذخیره‌سازی را دشوار می‌کند.
● SSD های مبتنی بر NVMe برای ذخیره حجم زیاد داده مقرون‌به‌صرفه نیستند.
جمع‌بندی

NVMe یک فناوری پیشرفته است که از SATA یعنی پروتکل ارتباطی نسل قبلی، با عملکردی قابل‌توجه عبور کرده است. سرعت انتقال سریع‌تر و تأخیر کمتر در کنار مزایای دیگر، از ویژگی‌های اصلی این پروتکل ارتباطی است.
NVMe از خطوط داده PCIe استفاده می‌کند تا دستگاه ذخیره‌سازی بتواند مستقیماً با CPU ارتباط در ارتباط باشد. از پتانسیل کامل SSD های NVMe، می‌توان در سیستم‌های پردازش بدون وقفه، تجزیه‌وتحلیل داده‌ها، هوش مصنوعی و یادگیری ماشینی استفاده نمود. به طور خلاصه می‌توان ویژگی‌های رابط ذخیره‌سازی NVMe را به صورت زیر بیان کرد:
● برای حافظه‌های SSD با فناوری Flash طراحی شده است.
● از مسیرهای فرمان 64K پشتیبانی می‌کند.
● می‌تواند 64K دستور را در هر مسیر ارسال کند که در نتیجه سیکل‌های پردازش CPU را کم خواهد کرد.
● دارای تأخیر در حدود 2.8 میکروثانیه است.
● به طور مستقیم با CPU سیستم ارتباط برقرار می‌کند.
● با استفاده ازNVMe عملیات ورودی/خروجی در واحد ثانیه یا همان IOP بیش از 1 میلیون امکان‌پذیر است .