معرفی و بررسی رابط NVM Express

حسام شالیکاریان ـ ماهنامه رایانه خبر

رابط NVM یکی از روش‌های ارتباطی SSD با کامپیوتر به شمار ‌می‌رود و در این مبحث به شما نشان ‌می‌دهیم که چگونه با استفاده از رابط NVM سرعت بالاتری از SSD دریافت کنید

 

اولین روز‌های ورود SSD به بازار‌های جهانی با تعجب و احساس شگفتی کاربران همراه بود که چندین سال با‌ هارددیسک‌ها خو گرفته و به سرعت لاک‌پشتی آنها عادت کرده بودند. هر چند درایو‌های SSD اولیه نیز سرعت خیلی بالایی نسبت به هارد‌دیسک‌ها آن زمان ارائه نمی‌کردند، اما با این حال تاثیر قابل قبولی روی بارگزاری سیستم عامل و سایر نرم‌افزار‌های حیاتی ایفا می‌کردند.

 

در آن روز‌های نه چندان دور، سه روش برای اتصال انواع درایو حالت جامد به کامپیوتر‌های شخصی وجود داشت که مهم‌ترین و پر کاربرد‌ترین آنها بهره‌گیری از کانکتور SATA بود. نسل اولیه درایو‌ها با پشتیبانی از کانکتور نسل دوم ساتا معرفی شده و در ادامه، نسل بعدی آنها با پشتیبانی از کانکتور نسل سوم ساتا در اختیار کاربران قرار گرفتند که سرعت به مراتب بالاتری نیز ارائه ‌می‌دادند.

 

پس از رفع بسیاری از محدودیت‌ها از جمله روش‌های ارتباطی، سرعت، ظرفیت و قیمت بالای SSD‌ها، شرکت‌های تولید کننده موفق به ارائه فناوری‌های کاربردی در این زمینه شدند و همچنین به معرفی روش‌های ارتباطی بیشتری در این زمینه پرداختند. یکی از روش‌های ارتباطی سریع با نام NVM Express شناخته ‌می‌شود که توان مورد نیاز و انتقال اطلاعات در این درایو‌ها توسط رابط PCI Express x4 صورت ‌می‌گیرد.

 

یکی از روش‌های کاربردی و موثر در زمینه سرعت بخشیدن به کامپیوتر شخصی، بهره‌وری از درایو حالت جامد است که جان دوباره‌ای به سیستم شما به عنوان درایو سیستمی ‌‌می‌بخشد. هر چند بیشتر درایو‌های موجود با رابط ساتا به سیستم متصل ‌می‌شوند، اما روش‌های ارتباطی متفاوتی نیز وجود دارد که سرعت بالاتری نسبت به رابط AHCI ارائه ‌می‌دهد. رابط AHCI (مخفف Advanced Host Controller Interface) در سال ۲۰۰۴ برای اولین بار معرفی و بر اساس رابط نسل سوم ساتا که در حال حاضر در دسترس قرار دارد، قادر به ارائه حداکثر سرعت ۶۰۰ مگابایت در ثانیه است.

‌هارددیسک‌ها برای انتقال اطلاعات، به چیپست اختصاصی نیاز دارد و برای انتقال در این بین به پردازنده و حافظه رم برای همسان سازی نیاز است، اما SSD به چنین روندی نیازی ندارد و قادر به برقراری ارتباط مستقیم با پردازنده ‌است.

درایو‌های حالت جامد به این فاکتور نیاز دارند که بدون وجود واسطه با پردازنده ارتباط برقرار نموده و داده‌ها را در چندین خط موازی به صورت همزمان و بدون وجود محدودیت سرعت منتقل کنند. محدودیت سرعت سبب شده تا اختلاف بین نسل‌های مختلف درایو‌های حالت جامد بسیار ناچیز باشد و دلیلی برای کاربران به جهت خریداری نسل جدید وجود ندارد. به عنوان مثال سرعت خواندن اطلاعات در درایو Samsung 840 Pro به عنوان بهترین SSD سال ۲۰۱۲ جهان نسبت به نسل جدید خود که با نام ۸۵۰ Pro معرفی شده، تنها ۲۰ مگابایت بیشتر است و چنین اتفاقی به طور حتم برای نسل‌های احتمالی بعدی نیز رخ خواهد داد.

به هر صورت نسل رابط AHCI به زودی منقرض شده و باید به آن را با NVM Express جایگزین کنید. رابط NVMe به صورت اختصاصی برای درایو‌های مجهز به چیپست حافظه Flash طراحی شده و محدودیت سرعت در رابط‌های پیشین را برطرف کرده است.

NVM Express_01

 

تصویر ۱: درایو SSD سامسونگ ۸۵۰ Pro بر پایه رابط AHCI و پورت SATA

 

NVM Express

در حال حاضر درایو‌های NVMe در سیستم‌های سرور به کار گرفته ‌می‌شوند و با معرفی کنترلر Marvell 88NV1140 در ابتدای سال ۲۰۱۵ به نظر ‌می‌رسد که درایو‌های حالت جامد بر پایه این رابط به زودی برای کاربران کامپیوتر‌های شخصی نیز ارائه گردد. هر چند شرکت Marvell به تازگی از تولید کنترلر اختصاصی برای کامپیوتر‌های شخصی با نام 88SS1093 رونمایی و سرعت خواندن اطلاعات به میزان ۳ گیگابایت در ثانیه را در اختیار کاربران قرار خواهد داد.

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

در رابط فعلی NVMe یک مسیر به انتقال داده‌ها از درایو حالت جامد به پردازنده و مسیر دوم به صورت بر عکس عمل ‌می‌کند.

NVM Express_02

تصویر۲: درایو SSD اینتل DC P3700 بر پایه رابط NVMe

 

بهینه سازی برای سیستم‌های چند هسته‌ای

روند خواندن و نوشتن اطلاعات در چند مرحله انجام ‌می‌شود و اغلب به صورت بلاک‌های ۴ کیلوبایتی خوانده شده یا مشخص ‌می‌گردند.

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

 

رابط NVM Express قادر به مدیریت تعداد ۶۵۵۳۶ دستور به ازای هر صف ‌است که این میزان برای رابط AHCI تنها ۳۲ دستور است.

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

NVM Express_03

تصویر ۳: درایو‌های خانواده DC اینتل بر پایه اسلات PCI

 

پیش از این، تعدادی از تولید کنندگان مادربورد مانند کمپانی ASUS به درایور مخصوص رابط NVMe در UEFI مجهز شده و در حال حاضر با معرفی چیپست Z170 و پردازنده‌های Skylake اینتل، این قابلیت به صورت پیش‌فرض در تما‌می ‌مادربورد‌ها، قابل دستیابی خواهد بود.

اینتل در مادربورد‌های Z170 با افزایش تعداد مسیر‌های PCIe ،سرعت انتقال اطلاعات توسط این رابط را در هر مسیر به ۱ گیگابایت در ثانیه رسانده که در مقایسه با نسل گذشته افزایش دو برابری را نشان ‌می‌دهد. چنین سرعتی به دلیل بهره‌گیری از اسلات نسل سوم PCIe در دسترس قرار ‌می‌گیرد و در صورتی که مادربورد شما از اسلات نسل دوم PCIr بهره ‌می‌برد، باید به سرعت ۵۰۰ مگابایت در ثانیه به ازای هر مسیر PCIe رضایت دهید.

 

درایو‌های سری SSD-750 اینتل یکی از نمونه‌های جدید مجهز به رابط NVMe با قابلیت نصب روی اسلات نسل دوم و سوم PCIe است که نسخه ۴۰۰ گیگابایتی آن با قیمت ۴۵۰ دلار در دسترس کاربران قرار دارد.

 

مقایسه سرعت رابط‌های SSD

برای درک بهتر شرایط رابط NVMe در مقابل رابط AHCI، از دو درایو Samsung 850 Pro و Intel DC P3700 بهره گرفتیم تا نتایج تست این دو محصول را با یکدیگر مقایسه کنیم.

نمودار ۱: سرعت خواندن اطلاعات در رابط NVMe بیش از ۵ برابر از درایو سامسونگ در حالت AHCI بیشتر است که این میزان روی سرعت نوشتن اطلاعات، کمی ‌بیشتر از ۲ برابر است.

نمودار ۲: اختلاف قابل توجهی در تعداد دستورات ورودی-خروجی در دو حالت خواندن و نوشتن نیز مشاهده می‌شود.

NVM Express_04

توضیح نمودار ۱: خواندن و نوشتن ترتیبی (Sequential)

توضیح نمودار ۲: خواندن و نوشتن توزیع شده (بلوک‌های ۴ کیلوبایتی)

 

خط مستقیم از حاقظه به پردازنده

رابط NVM Express به صورت اختصاصی برای SSD‌ها طراحی شده و انتقال مستقیم اطلاعات از حافظه به پردازنده توسط مسیرهای چندگانه PCIe صورت ‌می‌گیرد. این در حالیست که رابط AHCI به صورت اختصاصی برای ‌هارددیسک‌ها طراحی شده و انتقال اطلاعات در این رابط از ساختار پیچیده و بسیار کندی برخوردار است.

انتقال اطلاعات در رابط NVMe توسط مسیرهای موازی انجام ‌می‌شود و هسته‌های پردازنده قادر به تشکیل صف برای رسیدگی به امور هستند تا روند انتقال اطلاعات با سرعت بسیار بالاتری صورت گیرد.

NVM Express_05

بررسی رابط AHCI و NVMe

NVMe، برخلاف AHCI برای پردازنده‌های چند هسته‌ای و PCIe بهینه‌سازی شده است.

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

NVM Express_06

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا