SSD NVMe چیست و آیا برای لپتاپ و کامپیوتر ارزش خرید دارد؟
SSD NVMe چیست؟ با تفاوت NVMe و SATA، M.2، PCIe و کاربرد NVMe در لپتاپ و کامپیوتر آشنا شوید و ببینید آیا خرید SSD NVMe برای شما ارزش دارد.
SSD برخلاف هارددیسک مکانیکی، برای ذخیره اطلاعات از قطعات متحرک استفاده نمیکند. دادهها در حافظه NAND Flash ذخیره میشوند و یک کنترلر SSD وظیفه مدیریت خواندن، نوشتن، ترجمه آدرسها، اصلاح خطا، توزیع فرسایش و آزادسازی فضای قابل استفاده را بر عهده دارد.
به زبان ساده، وقتی کاربر فایلی را روی SSD ذخیره میکند، سیستمعامل یک آدرس منطقی برای داده در اختیار SSD قرار میدهد؛ کنترلر این آدرس را به محل فیزیکی مناسب در NAND مرتبط میکند و داده را در Pageهای حافظه ثبت میکند. هنگام خواندن نیز کنترلر مسیر معکوس را انجام میدهد و داده موردنظر را از NAND پیدا و به سیستم تحویل میدهد.
اما این فرایند در داخل SSD بسیار پیچیدهتر از یک عملیات ساده «ذخیره و بازیابی فایل» است.
فرایند کلی را میتوان به این شکل خلاصه کرد:
سیستمعامل → رابط ذخیرهسازی → کنترلر SSD → FTL → NAND Flash
سیستمعامل معمولاً با آدرسهای منطقی یا LBA کار میکند و از محل فیزیکی واقعی داده در NAND اطلاعی ندارد. کنترلر SSD این آدرسهای منطقی را مدیریت میکند و با استفاده از Flash Translation Layer یا FTL آنها را به محلهای فیزیکی NAND نگاشت میکند.
NAND نیز از ساختارهایی مانند Cell، Page و Block تشکیل شده است. داده در سطح Page برنامهریزی یا نوشته میشود، اما عملیات پاککردن NAND در سطح Block انجام میشود. همین تفاوت یکی از دلایل اصلی پیچیدگی مدیریت SSD است.
اگر یک SSD را بهعنوان یک سیستم ذخیرهسازی مستقل در نظر بگیریم، چند جزء اصلی در عملکرد آن نقش دارند.
NAND Flash محل اصلی ذخیره داده است. این حافظه غیرفرار است؛ یعنی پس از قطع برق نیز اطلاعات ذخیرهشده را حفظ میکند.
سلولهای NAND میتوانند تعداد متفاوتی بیت را ذخیره کنند. فناوریهایی مانند SLC، MLC، TLC و QLC بر اساس تعداد بیتهایی که در هر Cell نگهداری میشود دستهبندی میشوند.
بهطور معمول:
هرچه تعداد بیت ذخیرهشده در یک Cell افزایش پیدا کند، مدیریت سطوح ولتاژ پیچیدهتر میشود. در مقابل، تراکم ذخیرهسازی افزایش پیدا میکند و هزینه هر واحد ظرفیت میتواند کاهش یابد.
SNIA توضیح میدهد که NAND در SSDها در قالب Cell، Page و Block سازماندهی میشود و امروزه TLC و QLC در بسیاری از SSDهای مصرفی کاربرد گستردهای دارند.
کنترلر را میتوان مغز عملیاتی SSD دانست.
این تراشه بین سیستم میزبان و NAND قرار دارد و عملیاتهایی مانند موارد زیر را مدیریت میکند:
بنابراین سرعت و کیفیت عملکرد یک SSD فقط به نوع NAND وابسته نیست؛ معماری کنترلر و Firmware نیز نقش مهمی دارند.
Firmware نرمافزاری است که منطق عملکرد کنترلر را مدیریت میکند.
یکی از مهمترین بخشهای این منطق، FTL یا Flash Translation Layer است.
سیستمعامل نمیگوید:
این فایل را دقیقاً در فلان سلول NAND قرار بده.
بلکه با آدرسهای منطقی کار میکند.
FTL وظیفه دارد ارتباط بین این آدرسهای منطقی و محل فیزیکی داده در NAND را مدیریت کند.
این موضوع اهمیت زیادی دارد، زیرا محل فیزیکی داده میتواند در طول زمان تغییر کند؛ برای مثال، کنترلر ممکن است برای Wear Leveling یا Garbage Collection داده را به محل دیگری منتقل کند، بدون اینکه سیستمعامل نیاز داشته باشد از این جابهجایی اطلاع داشته باشد.
بعضی SSDها دارای DRAM اختصاصی هستند و برخی مدلها از طراحیهای بدون DRAM استفاده میکنند.
DRAM میتواند برای نگهداری اطلاعات مدیریتی مانند Mapping Table و همچنین برخی عملیات بافرینگ مورد استفاده قرار گیرد.
در برخی SSDهای NVMe بدون DRAM نیز فناوری Host Memory Buffer یا HMB میتواند بخشی از حافظه سیستم را برای برخی دادههای مدیریتی در اختیار کنترلر قرار دهد.
بنابراین عبارت «SSD بدون DRAM» به معنی «SSD بدون کنترلر» یا «SSD بدون حافظه مدیریتی» نیست؛ معماری این مدلها متفاوت است.
NAND Flash از واحدهای مختلفی تشکیل شده است که هرکدام وظیفه مشخصی دارند.
سه اصطلاح بسیار مهم عبارتاند از:
Cell → Page → Block
Cell کوچکترین واحدی است که وضعیت الکتریکی مربوط به داده را در NAND نگهداری میکند.
تعداد بیتهایی که هر Cell ذخیره میکند به نوع NAND بستگی دارد.
چندین Cell در کنار هم ساختاری به نام Page ایجاد میکنند.
داده در NAND معمولاً در سطح Page برنامهریزی یا خوانده میشود.
چندین Page یک Block را تشکیل میدهند.
نکته بسیار مهم این است که NAND معمولاً نمیتواند یک Page قدیمی را مانند یک دیسک مکانیکی مستقیماً بازنویسی کند؛ عملیات پاککردن در سطح Block انجام میشود.
به همین دلیل، مدیریت داده در SSD نیازمند عملیاتهایی مانند Garbage Collection است.
تفاوت این فناوریها به تعداد بیتهایی مربوط است که در هر Cell ذخیره میشود.
| نوع NAND | بیت در هر Cell | ویژگی کلی |
|---|---|---|
| SLC | 1 | تراکم کمتر و ساختار سادهتر |
| MLC | 2 | تراکم بیشتر |
| TLC | 3 | تراکم مناسب و رایج در SSDهای مصرفی |
| QLC | 4 | تراکم بالاتر و هزینه ظرفیت کمتر |
هر Cell برای نمایش چند بیت باید بین حالتهای مختلف قابل تشخیص باشد. با افزایش تعداد بیتها، تعداد سطوح موردنیاز بیشتر میشود و مدیریت و تشخیص وضعیت Cell پیچیدهتر خواهد شد.
البته نمیتوان کیفیت یک SSD را فقط بر اساس SLC، TLC یا QLC تعیین کرد. کنترلر، Firmware، نوع NAND، معماری کش، ظرفیت، رابط، ظرفیت آزاد و مشخصات endurance نیز در عملکرد نهایی مؤثر هستند.
فرض کنیم کاربر یک فایل را در سیستم ذخیره میکند.
فرایند سادهشده چنین است:
نکته مهم این است که محل فیزیکی یک داده الزاماً برای همیشه ثابت نمیماند.
کنترلر SSD ممکن است برای مدیریت فرسایش NAND یا آزادکردن فضا، داده را جابهجا کند.
این جابهجایی از دید سیستمعامل تقریباً نامرئی است.
فرایند خواندن معمولاً از درخواست سیستمعامل شروع میشود.
بهصورت ساده:
درخواست خواندن → LBA → FTL → محل فیزیکی NAND → خواندن Page → کنترلر → سیستم
سیستمعامل آدرس منطقی داده را درخواست میکند.
کنترلر SSD با استفاده از اطلاعات Mapping، محل فیزیکی مربوط به آن داده را پیدا میکند. سپس NAND داده را میخواند و کنترلر در صورت نیاز عملیات بررسی و اصلاح خطا را انجام میدهد.
پس از آمادهشدن داده، نتیجه از طریق رابط SSD به سیستم میزبان منتقل میشود.
کنترلرهای مدرن میتوانند از چندین کانال NAND بهصورت موازی استفاده کنند. همین Parallelism یکی از عوامل مهم عملکرد بالای SSDهاست.
نوشتن داده پیچیدهتر از خواندن است.
دلیل اصلی این است که NAND Flash نمیتواند مانند HDD هر داده قدیمی را در همان محل مستقیماً بازنویسی کند.
اگر Page حاوی داده قدیمی باشد و نیاز به تغییر آن وجود داشته باشد، کنترلر ممکن است داده جدید را در یک Page آزاد بنویسد و Mapping را تغییر دهد.
بعداً داده قدیمی که دیگر معتبر نیست میتواند در فرایند Garbage Collection حذف و Block مربوطه دوباره قابل استفاده شود.
به همین دلیل، چیزی که سیستمعامل بهعنوان «نوشتن چند گیگابایت» میبیند، ممکن است از نظر داخلی باعث جابهجایی و نوشتن داده بیشتری در NAND شود.
تفاوت اصلی به ماهیت NAND Flash مربوط میشود.
در HDD، هد میتواند روی سطح دیسک به محل موردنظر برود و داده جدید را روی سکتور مربوطه بنویسد.
اما NAND Flash ساختار Program/Erase دارد:
بنابراین اگر Block شامل Pageهای معتبر و نامعتبر باشد، کنترلر نمیتواند فقط یک Page نامعتبر را مستقل از Block پاک کند.
برای آزادکردن Block، دادههای معتبر باقیمانده باید حفظ یا منتقل شوند و سپس Block پاک شود.
این فرایند یکی از دلایل ایجاد Write Amplification و نیاز به Garbage Collection است.
Garbage Collection یا GC یکی از مهمترین فرایندهای داخلی SSD است.
فرض کنید یک Block شامل چند Page باشد و بعضی Pageها دیگر معتبر نباشند؛ مثلاً فایل مربوط به آنها حذف یا تغییر کرده است.
کنترلر میتواند:
به این ترتیب فضای حاوی دادههای منسوخشده دوباره قابل استفاده میشود.
Kingston نیز توضیح میدهد که NAND نمیتواند داده موجود را مستقیماً overwrite کند و Garbage Collection با انتقال داده معتبر، پاککردن Block و آمادهسازی مجدد فضای آزاد، این مشکل را مدیریت میکند.
وقتی کاربر فایلی را حذف میکند، سیستمعامل الزاماً بلافاصله تمام داده فیزیکی آن را از NAND پاک نمیکند.
در سیستمهای سازگار، فرمان TRIM به SSD اعلام میکند که برخی Logical Blockها دیگر حاوی داده موردنیاز کاربر نیستند.
کنترلر میتواند از این اطلاعات در مدیریت فضای آزاد و Garbage Collection استفاده کند.
بنابراین TRIM به SSD کمک میکند بهتر بداند کدام دادهها دیگر معتبر نیستند.
TRIM بهتنهایی به معنی «پاک شدن فوری فیزیکی همه سلولها» نیست؛ بلکه یک سیگنال مدیریتی مهم برای کنترلر ذخیرهسازی است.
سلولهای NAND عمر نامحدود ندارند و تعداد Program/Erase Cycle آنها محدود است.
اگر سیستم دائماً روی یک محدوده فیزیکی خاص بنویسد، همان قسمت میتواند زودتر از سایر قسمتها فرسوده شود.
Wear Leveling برای جلوگیری از این وضعیت طراحی شده است.
کنترلر تلاش میکند عملیات نوشتن را در طول زمان میان بخشهای مختلف NAND توزیع کند.
به این ترتیب، یک قسمت خاص بهطور غیرطبیعی بیش از سایر قسمتها تحت فشار قرار نمیگیرد.
SNIA و Kingston هر دو Wear Leveling را یکی از سازوکارهای مهم مدیریت عمر NAND معرفی میکنند.
Write Amplification یا WAF نسبت مقدار دادهای است که واقعاً در NAND نوشته میشود به مقدار دادهای که میزبان درخواست کرده است.
مثلاً اگر سیستم میزبان 100 گیگابایت داده بنویسد اما به دلیل جابهجایی دادههای معتبر، Garbage Collection و سایر عملیات داخلی، کنترلر مجبور شود 150 گیگابایت روی NAND بنویسد، مقدار Write Amplification بیشتر از 1 خواهد بود.
هرچه داده بیشتری نسبت به درخواست میزبان روی NAND نوشته شود:
نوع Workload، اندازه و الگوی نوشتن، میزان فضای آزاد و طراحی کنترلر میتوانند روی Write Amplification اثر بگذارند.
پرشدن SSD میتواند فضای مانور کنترلر را برای مدیریت NAND کاهش دهد.
Garbage Collection و سایر عملیات مدیریتی به فضای آزاد نیاز دارند. اگر تعداد Blockهای آزاد کاهش پیدا کند، کنترلر ممکن است برای آمادهسازی فضای جدید مجبور به جابهجایی داده معتبر بیشتری شود.
SNIA نیز اشاره میکند که عملکرد SSD میتواند با پرشدن درایو کاهش پیدا کند و میزان فضای آزاد یا Spare Area در این رفتار نقش دارد.
بنابراین ظرفیت SSD فقط برای ذخیره فایل اهمیت ندارد؛ فضای آزاد نیز میتواند در عملکرد پایدار آن مؤثر باشد.
NAND و کنترلر، داده را داخل SSD مدیریت میکنند؛ اما SSD برای ارتباط با سیستم به یک Interface و Protocol نیاز دارد.
دو فناوری مهم در بازار مصرفکننده عبارتاند از:
SSDهای SATA از رابط SATA استفاده میکنند و برای بسیاری از سیستمهای قدیمیتر و دستگاههایی که از SATA پشتیبانی میکنند، گزینه مناسبی برای ارتقا هستند.
NVMe پروتکلی است که برای ارتباط با حافظههای ذخیرهسازی سریع روی PCIe طراحی شده است.
NVMe میتواند از قابلیتهای PCIe و صفهای فرمان متعدد برای دستیابی به عملکرد بالا استفاده کند.
اما یک نکته مهم:
M.2 و NVMe مترادف نیستند.
M.2 یک Form Factor است؛ در حالی که NVMe یک پروتکل ذخیرهسازی است.
بنابراین ممکن است یک SSD با فرم M.2 از SATA استفاده کند یا یک SSD M.2 از NVMe روی PCIe استفاده کند.
شناخت معماری SSD کمک میکند مشخصات یک محصول را فقط از روی عدد سرعت خواندن و نوشتن قضاوت نکنیم.
هنگام بررسی یک SSD بهتر است موارد زیر را کنار هم ببینیم:
| مشخصه | چرا مهم است؟ |
|---|---|
| نوع NAND | روی تراکم، رفتار عملکردی و endurance اثر دارد |
| کنترلر | نقش مهمی در مدیریت NAND و عملکرد دارد |
| رابط | سقف ارتباط SSD با سیستم را مشخص میکند |
| Protocol | مانند SATA یا NVMe |
| ظرفیت | روی فضای ذخیره و معماری مدل اثر دارد |
| سرعت خواندن | برای برخی workloadها اهمیت زیادی دارد |
| سرعت نوشتن | در انتقال و تولید داده مهم است |
| عملکرد پایدار | برای بارهای طولانی مهمتر از Burst Speed است |
| TBW | یک شاخص اعلامشده برای endurance است |
| DRAM/HMB | به معماری مدیریت داده و Mapping مربوط است |
| گارانتی | برای ارزیابی ریسک خرید اهمیت دارد |
در نتیجه، «سریعترین SSD روی کاغذ» الزاماً بهترین گزینه برای هر سیستم نیست.
سازگاری مادربرد یا لپتاپ، نوع رابط، ظرفیت موردنیاز، نوع استفاده و مشخصات واقعی محصول باید در کنار یکدیگر بررسی شوند.
پس از اینکه ساختار SSD را شناختیم، مرحله بعدی دیگر یک سؤال فنی صرف نیست؛ بلکه تبدیل اطلاعات فنی به یک انتخاب واقعی است.
برای مثال:
اگر بعد از شناخت این مفاهیم میخواهید مدلهای موجود را بر اساس ظرفیت، رابط، فرمفاکتور، برند و مشخصات بررسی کنید، میتوانید به فروش هارد ssd هاردسرا مراجعه کنید. آن صفحه نقش متفاوتی از این مقاله دارد: اینجا درباره فناوری و نحوه عملکرد SSD صحبت کردیم، اما در صفحه مقصد هدف، مدلهای قابل بررسی و انتخاب تجاری قرار گرفتهاند.
اطلاعات در حافظه NAND Flash ذخیره میشود. NAND از Cellهایی تشکیل شده که در ساختارهای Page و Block سازماندهی شدهاند و کنترلر مدیریت دسترسی به آنها را بر عهده دارد.
NAND Flash مانند HDD قابلیت overwrite مستقیم در همان مفهوم را ندارد. داده جدید معمولاً در فضای مناسب دیگری نوشته میشود و مدیریت داده قبلی و پاککردن Block توسط کنترلر و فرایندهایی مانند Garbage Collection انجام میشود.
کنترلر ارتباط بین سیستم و NAND را مدیریت میکند و وظایفی مانند FTL، مدیریت خواندن و نوشتن، Error Correction، Wear Leveling، Garbage Collection و مدیریت Blockها را انجام میدهد.
TRIM فرمانی است که سیستمعامل میتواند برای اعلام Logical Blockهای دیگر موردنیاز به SSD ارسال کند تا کنترلر بتواند آن اطلاعات را در مدیریت فضای NAND و Garbage Collection در نظر بگیرد.
NAND Flash دارای محدودیت endurance است و Program/Erase Cycleهای محدودی دارد. SSD با استفاده از سازوکارهایی مانند Wear Leveling و مدیریت داخلی تلاش میکند فرسایش را توزیع و عمر قابل استفاده را افزایش دهد.
میتواند اثر داشته باشد. کاهش فضای آزاد میتواند مدیریت NAND و Garbage Collection را دشوارتر کند و در برخی شرایط عملکرد نوشتن را کاهش دهد.
خیر. M.2 یک فرمفاکتور است و NVMe یک پروتکل ارتباطی ذخیرهسازی است. یک SSD M.2 میتواند بسته به مدل از SATA یا NVMe استفاده کند.
HDD از دیسک چرخان و هد مکانیکی استفاده میکند، در حالی که SSD داده را در حافظه NAND Flash و بدون قطعات مکانیکی متحرک ذخیره میکند. ساختار داخلی SSD باعث میشود مدیریت داده در آن به کنترلر، FTL، Garbage Collection و Wear Leveling وابستگی زیادی داشته باشد.
این مقاله بر اساس مستندات و منابع فنی حوزه ذخیرهسازی، از جمله منابع SNIA و مستندات فنی Kingston Technology درباره NAND Flash، کنترلر SSD، Garbage Collection، TRIM، Wear Leveling و Over-Provisioning تدوین شده است.
منابع فنی اصلی:
برای شروع گفتگو، شماره تماس خود را وارد کنید.