هاردهای SSD چطور کار می کنن؟

هاردهای SSD چطور کار می کنن؟

تا حالا فکر کردی درایوهای SSD چطور اطلاعات رو میخونن و مینویسن، یا چی باعث سرعت بالا‌شون میشه؟ تو این مطلب قراره همه چی رو برات توضیح بدیم.

اصلا درایوهای SSD چطور کار می‌کنن و چه فرقی با تکنولوژی‌های جدیدتر دارن؟

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

هاردهای SSD چطور کار می کنن؟

یه بازوی مکانیکی تو هارد درایو هست که هدهای خواندن و نوشتن رو روی قسمت درست هدایت میکنه تا اطلاعات خونده یا نوشته بشه.

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

از همون اول مشخص بود که هارد دیسک ها هرگز نمیتونن به سرعتی که CPU ها کار میکنن برسن. لتنسی (تأخیر) تو هارددیسک ها با میلی‌ثانیه سنجیده میشه، در حالی که برای CPU ها با نانوثانیه. هر میلی‌ثانیه مساوی ۱,۰۰۰,۰۰۰ نانوثانیه است، و معمولا ۱۰ تا ۱۵ میلی‌ثانیه طول میکشه تا یه هارددیسک اطلاعات رو پیدا کنه و شروع به خوندنش کنه.

صنعت هارددیسک برای اینکه این مشکل رو حل کنه، از صفحه های کوچیکتر، حافظه کش روی دیسک و سرعت چرخش بالاتر استفاده کرد، اما خب یه دیسک مکانیکی تا یه سرعتی میتونه بچرخه. سری VelociRaptor شرکت وسترن دیجیتال با سرعت ۱۰,۰۰۰ دور در دقیقه، سریعترین هارددیسک های ساخته شده برای مصرف کننده ها هستن، در حالی که بعضی از هاردهای سازمانی تا ۱۵,۰۰۰ دور در دقیقه هم میچرخن. مشکل اینه که حتی بازم یه هارد با بالاترین سرعت چرخش، بزرگترین حافظه کش و کوچیکترین صفحه، بازم از نظر CPU خیلی کند به حساب میاد.

تفاوت SSDها چیه؟

هنری فورد یه زمانی گفته بود “اگه از مردم می پرسیدم چی میخوان، می گفتن اسب های سریع تر!” درسته، همیشه راه حل های جدید بهتر از ارتقا دادن چیزای قدیمی نیستن.

حافظه های soli-state (SSD) به خاطر همین اسم گذاری شدن. اونا بر خلاف هارد دیسک های قدیمی، هیچ قطعه ی چرخنده یا حرکتی ندارن. به جای اون، اطلاعات روی یه بخش از حافظه به اسم “ناند فلش” ذخیره می شه.

این “ناند فلش” خودش از یه سری ترانزیستور با دروازه شناور ساخته شده. این ترانزیستورها با ترانزیستورهای رم (RAM) فرق دارن. رم اطلاعات رو اگه چند بار در ثانیه شارژ نکنه، پاک می شه. ولی “ناند فلش” حتی وقتی خاموشه هم اطلاعات رو نگه می داره. واسه همین بهش می گن حافظه غیر فرار (یعنی اطلاعات پاک نمی شه). در حالی که رم یه حافظه فراره و اگه شارژ نشه، اطلاعاتش رو گم می کنه.

هاردهای SSD چطور کار می کنن؟

تو شکل بالا یه مدل ساده از سلول‌های فلش رو می بینی. الکترون‌ها تو یه جای شناور به اسم گیت شناور ذخیره میشن. اگه اونجا الکترون باشه میشه “۰” که باحاله و اگه نباشه میشه “۱”. آره، تو فلش‌های NAND، صفر یعنی اطلاعات اونجا ذخیره شده، برعکس چیزی که معمولا راجع به صفر و یک فکر می کنیم.

این فلش‌های NAND یه شکل شبکه‌ای دارن. کل این شبکه میشه یه بلوک و هر ردیف از این شبکه میشه یه صفحه. اندازه‌ی معمول یه صفحه ۲ کیلوبایت، ۴ کیلوبایت، ۸ کیلوبایت یا ۱۶ کیلوبایته و هر بلوک هم معمولا از ۱۲۸ تا ۲۵۶ صفحه داره. پس اندازه‌ی یه بلوک معمولا بین ۲۵۶ کیلوبایت تا ۴ مگابایته.

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

هاردهای SSD چطور کار می کنن؟

حافظه NAND به اندازه حافظه اصلی (RAM) سریع نیست، اما چندین برابر از هارد دیسک (HDD) سریعتره. هرچند سرعت نوشتن اطلاعات روی NAND نسبت به خوندن پایین‌تره، اما باز هم از حافظه‌های دیسک قدیمی که اجزاء چرخنده دارن خیلی بهتره.

دو نکته مهم توی این جدول هست. اول اینکه، ببین چطور اضافه کردن بیت‌های بیشتر به هر سلول حافظه NAND روی کارکردش تاثیر میذاره. این تاثیر روی نوشتن اطلاعات بیشتره تا خوندن. معمولاَ تاخیر زمانی نوشتن اطلاعات روی حافظه TLC (سه سطح) چهار برابر کندتر از حافظه SLC (یک سطح) برای خوندن اطلاعاته، اما برای نوشتن اطلاعات ۶ برابر کندتره. پاک کردن اطلاعات هم خیلی کندتر میشه.

این تاثیر هم متناسب نیست، حافظه TLC تقریبا نصف حافظه MLC (دو سطح) سرعت داره، در حالی که فقط ۵۰ درصد ظرفیت بیشتری داره (سه بیت به جای دو بیت در هر سلول). این موضوع برای حافظه‌های QLC هم صادقه که اطلاعات بیشتری رو با سطح ولتاژهای مختلف توی همون سلول ذخیره می‌کنه.

هاردهای SSD چطور کار می کنن؟

چرا درایوهای SSD با حافظه‌ی TLC کندتر از MLC یا SLC هستند؟

دلیلش به نحوه‌ی انتقال اطلاعات به سلول‌های حافظه و برعکس برمی‌گرده. تو SLC، کنترلر فقط باید بفهمه که اطلاعات صفر یا یکه. تو MLC، هر سلول می‌تونه چهار حالت داشته باشه: ۰۰، ۰۱، ۱۰ و ۱۱. اما تو TLC این تعداد به هشت حالت و تو QLC به شانزده حالت میرسه. خوندن اطلاعات درست از سلول نیازمند اینه که کنترلر از ولتاژ دقیقی برای تشخیص سطح شارژ استفاده کنه، به همین خاطر TLC کندتره.

حالا بریم سراغ خوندن، نوشتن و پاک کردن اطلاعات. یه محدودیت مهم تو SSDها اینه که با اینکه اطلاعات روی یه درایو خالی خیلی سریع خونده و نوشته میشن، اما جایگزین کردن اطلاعات خیلی کندتره. دلیلش اینه که درایو اطلاعات رو به صورت صفحه‌ای (از ردیف‌های جداگانه تو حافظه‌ی NAND) می‌خونه و می‌نویسه، به شرط اینکه سلول‌های کناری خالی باشن.

اما پاک کردن اطلاعات فقط به صورت بلوکی (مجموعه‌ای از صفحات) ممکنه. چون پاک کردن سلول‌های NAND نیازمند ولتاژ بالاییه. درسته که میشه به صورت تئوری اطلاعات رو به صورت صفحه‌ای پاک کرد، ولی ولتاژ مورد نیاز باعث آسیب به سلول‌های اطراف میشه. پاک کردن به صورت بلوکی به کم کردن این مشکل کمک می‌کنه.

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

به همین خاطر درایوهای SSD با پر شدن کندتر میشن، یه درایو که تقریبا خالیه پر از بلوک‌هاییه که میشه فوری روش نوشت، ولی یه درایو که تقریبا پر شده مجبور میشه کل چرخه‌ی برنامه‌ریزی/پاک کردن رو انجام بده.

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

هاردهای SSD چطور کار می کنن؟

فرض کنید یه درایو SSD داریم. این درایو میتونه اطلاعات رو خیلی سریع توی قسمت های خالی خودش بنویسه. تو این مثال درایو تونسته از این قابلیت استفاده کنه و اطلاعات جدید رو توی چهار بخش اول (A’-D’) بنویسه. همچنین دو بخش جدید E و H رو هم نوشته. بخش های A تا D حالا دیگه قدیمی شدن چون اطلاعات شون رو درایو آپدیت کرده.

تو زمان های خالی، SSD این اطلاعات جدید رو به یه بخش جدید منتقل میکنه، بخش قدیمی رو پاک میکنه و اون رو به عنوان فضای خالی علامت گذاری میکنه. یعنی دفعه بعد که درایو نیاز به نوشتن داره، میتونه مستقیم روی این بخش خالی (Block X) بنویسه به جای اینکه دوباره کل پروسه پاک کردن و نوشتن رو انجام بده.

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

به همین خاطر هست که میشه فایل های پاک شده رو برگردوند (و همینطور به همین دلیل پاک کردن فایل ها تو ویندوز معمولا فضای زیادی رو خالی نمیکنه تا اینکه Recycle Bin رو خالی کنید). با یه هاردیسک سنتی، سیستم عامل لازم نیست به این موضوع اهمیت بده که اطلاعات کجا نوشته میشن یا وضعیت بلوک ها یا صفحات چطوره. اما با یه SSD این موضوع مهمه.

فرمان TRIM به سیستم عامل اجازه میده تا به SSD بگه که دفعه بعدی که داره یه بلوک رو پاک میکنه، میتونه نوشتن دوباره بعضی اطلاعات رو رد کنه. این کار باعث میشه کل حجم اطلاعاتی که درایو مینویسه پایین بیاد و عمر SSD بیشتر بشه. هم خواندن و هم نوشتن به حافظه فلش NAND آسیب میزنه ولی نوشتن خیلی بیشتر از خواندن آسیب میزنه. خبر خوب اینکه طبق گزارش های فنی، عمر بلوک ها تو حافظه فلش NAND امروزی دیگه مشکل خاصی نیست.

دو تا مفهوم آخر که میخواهیم در موردشون صحبت کنیم سایش یکنواخت (wear leveling) و تقویت نوشتن (write amplification) هستن. چون SSD اطلاعات رو صفحه به صفحه مینویسه ولی پاک کردن اطلاعات بلوک به بلوکه، حجم اطلاعاتی که نوشته میشه همیشه بیشتر از اطلاعاتیه که واقعا تغییر کرده. مثلا اگه شما یه تغییر روی یه فایل ۴ کیلوبایتی انجام بدین، کل بلوکی که اون فایل ۴ کیلوبایتی توش قرار داره باید آپدیت و دوباره نوشته بشه.

بسته به تعداد صفحات تو هر بلوک و سایز صفحات، شما ممکنه مجبور بشین ۴ مگابایت اطلاعات رو بنویسین تا فقط یه فایل ۴ کیلوبایتی رو آپدیت کنین. جمع آوری زباله (garbage collection) مثل فرمان TRIM به کم کردن اثر تقویت نوشتن کمک میکنه. همچنین نگه داشتن یه بخش قابل توجه از درایو خالی و یا کارخانه هایی که بیشتر از ظرفیت روی درایو جا میدن (over-provisioning) هم میتونه به کم کردن اثر تقویت نوشتن کمک کنه.

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

هاردهای SSD چطور کار می کنن؟

کنترلرهای SSD درسته که شبیه بقیه چیپ ها هستن ولی یه سری ویژگی خاص خودشون رو دارن. اونا معمولا یه حافظه DDR3 یا DDR4 دارن که به مدیریت حافظه NAND خودشون کمک میکنه. خیلی از این درایوها همچنین از SLC کش (حافظه پنهان) استفاده می کنن که باعث افزایش کارایی درایو میشه چون از حافظه NAND سریع برای نوشتن و خوندن اطلاعات استفاده می کنه.

حافظه NAND تو یه SSD معمولا از طریق یه سری کانال حافظه موازی به کنترلر وصل میشه. میشه گفت کنترلر شبیه یه سیستم ذخیره سازی اطلاعات بزرگ عمل می کنه (البته RAID رو اجرا نمی کنه) و کارهایی مثل تسطیح فرسودگی (wear leveling)، جمع آوری زباله (garbage collection) و مدیریت کش SLC رو انجام میده.

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

متاسفانه ما نمی تونیم خیلی وارد جزئیات کنترلرهای SSD بشیم چون شرکت سازنده این اطلاعات رو مخفی نگه می داره. خیلی از عملکرد حافظه NAND به کنترلر بستگی داره و شرکت ها حاضر نیستن روش کارشون رو خیلی علنی کنن چون ممکنه رقیب از این اطلاعات به نفع خودش استفاده کنه.

در مورد رابط کاربری، SSD ها در ابتدا از پورت SATA مثل هارد دیسک ها استفاده می کردن. تو سال های اخیر شاهد تغییر به سمت درایوهای M.2 هستیم. این درایوهای بسیار نازک هستن، چند اینچ طول دارن و مستقیم روی مادربورد (یا تو بعضی موارد، روی یه براکت روی کارت رایزر PCIe) وصل میشن.

هاردهای SSD چطور کار می کنن؟

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

موندگاری اطلاعات و سرعت نوشتن برای فلش NAND با ترانزیستور ۲۰ نانومتری، نسبت به ۴۰ نانومتری پایین‌تره، حتی اگه ظرفیت اطلاعات و حجم کل خیلی بهتر شده باشه. تا حالا تو بازار، درایوهایی با ۲۳۲ لایه هم دیدیم و به نظر میاد که حتی تعداد لایه‌های بیشتری هم ممکنه ساخته بشه. در کل، تغییر به NAND سه بعدی به افزایش ظرفیت بدون کوچک کردن ترانزیستورها یا تکیه کردن روی روش‌های قدیمی‌تر کمک کرده.

تا حالا، سازنده‌های SSD با ارائه استانداردهای سریع‌تر برای انتقال اطلاعات، پهنای باند بیشتر و کانال‌های بیشتر روی کنترلر، عملکرد بهتری رو ارائه دادن. همچنین از اون حافظه کش SLC که قبلا گفتیم هم استفاده کردن. اما با این حال، به نظر میاد که در نهایت، تکنولوژی دیگه‌ای جایگزین NAND بشه.

اینکه این تکنولوژی جدید چه شکلی باشه هنوز مشخص نیست. هم حافظه مغناطیسی رم (MRAM) و هم حافظه تغییر فاز (PCM) به عنوان گزینه‌های احتمالی مطرح شدن. اما هر دوی این تکنولوژی‌ها هنوز تو مراحل اولیه هستن و باید چالش‌های مهمی رو پشت سر بذارن تا بتونن واقعا جایگزین NAND بشن. اینکه آیا مصرف کننده‌ها متوجه این تفاوت بشن هم یه سواله.

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

__ تکنو دات مرجع اخبار تکنولوژی __
منبع extremetech

نظرتون در مورد این مطلب چیه

آدرس ایمیل شما بصورت عمومی منتشر نخواهد شد.

لطفا از ارسال نظرات بی ربط با این مطلب خودداری نمایید.