چگونه «رابط کنترل¬کننده حافظه غیرفرار» یا NVMe به چنین نرخ بالایی از داده دست پیدا می¬کند؟

تعمیرات تخصصی پکیج
آموزش طریقه تعمیر انواع مختلف مبدل حرارتی پکیج
شهریور ۲۶, ۱۳۹۹
NVMe

رابط کنترل­کننده حافظه غیرفرار (NVMe) یک پروتکل واسطه­ای مقیاس­پذیر است که برای بهره­گیری کامل از موازی­سازی پیشنهادشده توسط فن­آوری­های NVM مثل فلش توسعه داده شده است. امروزه با استفاده از درایوهای حالت جامد سریع (SSDs)، مشکلات مربوط به عملکرد شامل نرخ داده واسط هاست نسبت به پهنای باند وسیله ذخیره­سازی می­باشد.

NVMe برای بررسی این موضوع توسعه داده شده است. این فن­آوری از پروتکل رابط کنترل­کننده PCI (PCIe) استفاده می­کند و طوری طراحی شده که سریعتر از پروتکل­هایی مثل SAS و SATA عمل کند که به طور اورجینال با مشخصات درایو دیسک سخت (HDD) طراحی­ شده بودند.

در این متن، به صورت مختصر بعضی مفاهیم اساسی را بررسی می­کنیم که باعث می­شود NVMe دارای ویژگی نرخ انتقال داده بالا باشد. سپس به طور مختصر Flashtec NVMe میکروچیپ ۳۱۰۸ را بررسی می­کنیم – یک کنترل­کننده NVMe SSD شرکتی از نسل ۴ PCIe هشت کاناله که به تازگی منتشر شده است.

 

یک اختلاف اساسی بین هاردهای SSD و HDD

با یک HDD، عمل نوشتن/خواندن از یا به یک بخش خاص از دیسک، احتیاج به حرکت هد به محل مناسبی در صفحه چرخش دارد (تأخیری که اغلب به عنوان زمان جستجو در نظر گرفته می­شود). بنابراین HDD ها به داده­های متوالی و نسبتاً کند دسترسی دارند.

پروتکل SAS که برای تعداد زیادی از خریداران ذخیره­سازی جز انتخاب اصلی محسوب می­شود، در اصل با مشخصات HDD طراحی شده است. به طور متضاد، سیستم­های ذخیره­سازی فلش از سطوح مختلف موازی­سازی برای دستیابی به ورودی­های خواندن/نوشتن بالاتر استفاده می­کند.

معماری یک SSD نمونه در شکل زیر نشان داده شده است.

NVMe

نمونه­ای از معماری یک SSD نمونه.

 

در این حالت، چند وسیله حافظه NAND متفاوت به عنوان یک کانال در کنار یکدیگر قرار می­گیرد. خط سیر داده معمولاً برای کار با وسایل مختلف حافظه یک کانال به صورت موازی و همچنین برای دستیابی به ورودی بالاتر بکار گرفته می­شود.

برای مثال، در حالیکه در بخش حافظه اول یک کانال، عملکرد نوشتن در حال انجام شدن است، اطلاعات آدرس یک عمل نوشتن که در حال وارد­شدن است، می­تواند به بخش حافظه دوم انتقال داده شود. برای دستیابی به این عملکرد موازی، کنترل­کننده فلش باید اطلاعاتی را توزیع کند که از یک واسطه خارجی بین کانال­های مختلف دریافت می­کند.

ساختار فوق یک SSD را قادر می­سازد که به صورت لحظه­ای و موازی به سلول­های حافظه دسترسی داشته باشد. برای SSD هایی امروزی، اگر به دنبال موازی­سازی گسترده ذاتی و حداقل تأخیر هستیم، احتیاج به یک پروتکل واسطه­ای بهینه­شده جدید داریم.

این پروتکل جدید که از ابتدا تا به امروز برای معماری SSD طراحی شده است، NVMe می­باشد. NVMe ها برای اینکه عملکرد مقیاس­پذیر ناموازی داشته باشند، از باس PCIe همراه با خط فرمان استفاده می­کنند. در ادامه ما این دو ویژگی را بررسی کرده­ایم.

چرا PCIe؟

PCIe یک واسط باس با هدف در نظرگرفته شده کلی است که در هر دو کاربرد انجام محاسبه برای مشتری و شرکت مورد استفاده قرار می­گیرد. ما می­توانیم با استفاده از SSD بر پایه PCIe وسیله ذخیره­سازی را به طور مستقیم به صفحه پشت یک سرور متصل کنیم.

به هر حال، در حالتی که از پروتکل­های SATA و SAS استفاده می­شود، یک بلوک کنترل­کننده ذخیره­سازی بین SSD و پورت PCIe از پردازنده لازم است. به عنوان نتیجه، یک راه­حل که بر پایه SSD کار می­کند، PCIe را به CPU نزدیک­تر می­کند و تأخیر مرتبط با کنترل­کننده ذخیره­ساز را برطرف می­کند.

NVMe

یک راه­حل مبتنی بر PCIe. تصویر ارائه شده از SATA-IO

 

بعلاوه پهنای باند / عملکرد PCIe مقیاس­پذیر است و می­تواند نیازهای وسایل ذخیره­ساز فلش چند جانبه را در آینده برطرف کند. به طور مثال نسل سوم PCIe تا ۱۶ خط را برای انتقال داده پشتیبانی می­کند که هر خط نیز از ماکزیمم ورودی داده ۱ گیگابیت بر ثانیه پشتیبانی می­کند.

صفوف Queue ها:

NVMe شامل مجموعه­ای از خط فرمان است که به پردازنده اجازه می­دهد که دستورات صادرشده را مرتب کند و آنها را به روشی مؤثر انجام دهد. این موضوع پردازنده را قادر می­سازد که به طور کامل از خاصیت موازی­سازی معماری SSD استفاده کند. هنگامی که یک خط فرمان تلاش می­کند که به NAND با حجم کاری زیاد دسترسی داشته باشد، هاست می­تواند براحتی این دستور را مرتب کند و با دستور بعدی در صف دستورات، کار خود را ادامه دهد. تکنیک مرتب­سازی در پروتکل­های SATA و SAS نیز بکار می­رود، به هر حال این پروتکل­ها به ترتیب از یک تک خط ۳۲ و ۲۵۶ فرمانی پشتیبانی می­کنند. NVMe می­تواند تا ۶۴۰۰۰ صف را داشته باشد که هر صف تا ۶۴۰۰۰ خط فرمان را پشتیبانی می­کند.

NVMe

نمودار صفوف فرمان NVMe.

 

این مورد همراه با نرخ انتقال داده بالای PCIe، باعث می­شود که NVMe بتواند از تمام ظرفیت­های SSD استفاده کند.

 

Flashtec NVMe 3108 میکروچیپ

کنترل­کننده Flashtec NVMe 3108  بسیاری از اصول مطرح­شده در بالا را با مثال نشان می­دهد. این وسیله به این منظور طراحی شده تا زیرساخت­های ابری با پهنای باند ذخیره­سازی و تراکم موردنیاز توسط هوش مصنوعی (AI) و حجم کاری فرآیند یادگیری ماشین (ML) را تأمین کند.

NVMe

نمودار کنترل­کننده Flashtec NVMe 3108 میکروچیپ.

 

این وسیله یک کنترل­کننده NVMe SSD شرکتی نسل ۴ از PCIe هشت کاناله می­باشد. وسیله جدید دارای بیش از یک میلیون عملکرد IO بر ثانیه (IOPS) برای حجم­های کاری تصادفی و بیش از ۶ گیگابایت بر ثانیه (GB/s) پهنای باند ترتیبی می­باشد.

خصوصیات میکروچیپ حاکی از آن است که کنترل­کننده Flashtec NVMe 3108 شامل یکپارچگی داده با کلاس شرکتی به صورت پایان به پایان و ویژگی­های امنیتی مانند روت سخت­افزاری اعتبار برای افزایش قابلیت اطمینان سیستم می­باشد.

آیا در گذشته شما با فن­آوری NVMe کار کرده­اید؟ تجربیات خود در قسمت نظرات با دیگران در میان بگذارید.

دیدگاهتان را بنویسید

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