رفتن به محتوای اصلی
توضیح کوهستان· 5 دقیقه مطالعه· در فناوری

کالبدشکافی حافظه‌های SSD: درایو شما واقعاً چگونه مرگ خود را به تعویق می‌اندازد؟

حافظه‌های فلش دارای یک محدودیت فیزیکی بی‌رحمانه هستند: سلول‌های آن‌ها پس از چند هزار بار نوشتن از بین می‌روند. درایوهای SSD برای جلوگیری از مرگ زودهنگام، از مجموعه‌ای از الگوریتم‌های پنهان مانند سایش متوازن (Wear Leveling) و جمع‌آوری زباله استفاده می‌کنند تا داده‌ها را دائماً جابه‌جا کرده و عمر خود را طولانی‌تر کنند.

به قلم کیان راد

این خبر را به اشتراک بگذارید

به‌طور خلاصه

  • سلول‌های حافظه فلش دارای محدودیت فیزیکی هستند و پس از چند صد تا چند هزار بار نوشتن از بین می‌روند.
  • الگوریتم «سایش متوازن» با توزیع مساوی داده‌ها در تمام بلوک‌ها، از مرگ زودهنگام درایو جلوگیری می‌کند.
  • فرآیند «جمع‌آوری زباله» در پس‌زمینه، بلوک‌های حاوی داده‌های نامعتبر را پاکسازی و مرتب می‌کند.

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

برای سلول‌های تک‌سطحی (SLC) این محدودیت حدود ۵۰,۰۰۰ تا ۱۰۰,۰۰۰ چرخه است، اما در درایوهای ارزان‌قیمت QLC که امروزه بازار را قبضه کرده‌اند، این عدد به ۲۰۰ تا ۱۰۰۰ چرخه کاهش یافته است. اگر یک SSD داده‌ها را دقیقاً مانند یک هارد دیسک مکانیکی قدیمی (HDD) در همان مکان‌های ثابت بازنویسی می‌کرد، بلوک‌هایی که میزبان فایل‌های موقت سیستم‌عامل هستند، در عرض چند ماه می‌سوختند و کل درایو از کار می‌افتاد.[4][3]

برای دور زدن این محدودیت فیزیکی، مهندسان مفهومی به نام «سایش متوازن» (Wear Leveling) را ابداع کردند. این فناوری یک لایه ترجمه پنهان است که توسط کنترلر درایو مدیریت می‌شود و آدرس‌های منطقی که سیستم‌عامل می‌بیند را از آدرس‌های فیزیکی واقعی روی تراشه جدا می‌کند. هدف این الگوریتم این است که مطمئن شود تمام بلوک‌های حافظه به طور مساوی فرسوده می‌شوند. وقتی شما فایلی را ذخیره می‌کنید، درایو آن را در بلوکی که کمترین میزان استفاده را داشته است می‌نویسد، نه لزوماً در همان جایی که سیستم‌عامل درخواست کرده است.[1][4]

اما همه الگوریتم‌های سایش متوازن یکسان خلق نشده‌اند. بازاریابی شرکت‌ها اغلب فقط به وجود این ویژگی اشاره می‌کند، اما تفاوت در نحوه اجرای آن است. «سایش متوازن پویا» (Dynamic Wear Leveling) فقط داده‌های جدید را به بلوک‌های خالی هدایت می‌کند. این روش ساده است، اما یک مشکل بزرگ دارد: اگر نیمی از درایو شما پر از عکس‌های قدیمی و سیستم‌عامل باشد که هرگز تغییر نمی‌کنند، آن بلوک‌ها دست‌نخورده باقی می‌مانند و تمام فشار نوشتن روی نیمه خالی درایو می‌افتد.[2]

به گفته متخصصان بازیابی اطلاعات مانند لویی راسمن (Louis Rossmann)، «اگر درایوی ۱۰۰ بلوک داشته باشد و ۵۰ بلوک آن با داده‌های ثابت اشغال شده باشد، سایش متوازن پویا فقط روی ۵۰ بلوک دیگر کار می‌کند و آن‌ها با سرعت دو برابر فرسوده می‌شوند».

برای حل این مشکل، درایوهای پیشرفته‌تر از «سایش متوازن ایستا» (Static Wear Leveling) استفاده می‌کنند. در این روش، کنترلر درایو در پس‌زمینه، حتی داده‌های قدیمی و بدون تغییر را از بلوک‌های سالم برمی‌دارد و به بلوک‌های فرسوده‌تر منتقل می‌کند تا بلوک‌های تازه نفس برای نوشتن‌های جدید آزاد شوند.[2]

این جابه‌جایی مداوم داده‌ها، پدیده‌ای به نام «تقویت نوشتن» (Write Amplification) را ایجاد می‌کند. این یعنی درایو برای مرتب کردن خودش، بیشتر از آنچه شما دستور داده‌اید، داده می‌نویسد. نسبت داده‌های فیزیکی نوشته شده به داده‌های منطقی درخواست شده می‌تواند در بدترین حالت به اعداد بالایی برسد، به این معنی که درایو چرخه‌های ارزشمند خود را صرف عملیات نگهداری داخلی می‌کند.[2]

در کنار سایش متوازن، مکانیزم دیگری به نام «جمع‌آوری زباله» (Garbage Collection) وجود دارد. در حافظه‌های فلش، شما می‌توانید داده‌ها را در سطح «صفحه» (Page) بخوانید و بنویسید، اما برای پاک کردن، باید کل یک «بلوک» (Block) را که شامل ده‌ها صفحه است، با ولتاژ بالا پاک کنید. وقتی فایلی را تغییر می‌دهید، درایو نمی‌تواند فقط همان صفحه را پاک کند؛ بلکه نسخه جدید را در یک صفحه خالی می‌نویسد و نسخه قدیمی را به عنوان «نامعتبر» علامت‌گذاری می‌کند.[1][3]

در کنار سایش متوازن، مکانیزم دیگری به نام «جمع‌آوری زباله» (Garbage Collection) وجود دارد.

وقتی بلوک‌های خالی کم می‌شوند، جمع‌آوری زباله وارد عمل می‌شود: صفحات معتبر را به یک بلوک جدید می‌برد و کل بلوک قدیمی را یکجا پاک می‌کند. اینجاست که دستور TRIM اهمیت پیدا می‌کند. در گذشته، وقتی فایلی را در سیستم‌عامل پاک می‌کردید، سیستم فقط آدرس آن را حذف می‌کرد اما داده‌ها روی درایو باقی می‌ماندند. درایو SSD نمی‌دانست که این داده‌ها دیگر نیازی نیستند و آن‌ها را در فرآیند جمع‌آوری زباله مدام جابه‌جا می‌کرد که باعث فرسودگی بی‌دلیل می‌شد.[3][1]

دستور TRIM که از سال ۲۰۱۳ در سیستم‌عامل‌هایی مانند اندروید و ویندوز استاندارد شد، به درایو می‌گوید: «این فایل پاک شده است، دیگر آن را جابه‌جا نکن و بلوک آن را آزاد کن». ترکیب TRIM و سایش متوازن، یک پیامد ناخواسته اما قطعی دارد: بازیابی اطلاعات پاک شده از SSDها تقریباً غیرممکن است. برخلاف هارد دیسک‌های قدیمی که داده‌ها تا زمان بازنویسی فیزیکی روی دیسک باقی می‌ماندند، در SSDها دستور TRIM بلافاصله بلوک‌ها را برای پاک شدن علامت‌گذاری می‌کند و الگوریتم‌های پس‌زمینه به سرعت آن‌ها را محو می‌کنند.[3][1]

شرکت‌های سازنده اغلب طول عمر درایوها را با معیاری به نام TBW (ترابایت قابل نوشتن) تبلیغ می‌کنند. اما این عدد یک فرض پنهان دارد: اینکه الگوریتم‌های سایش متوازن به بی‌نقص‌ترین شکل ممکن کار کنند. در واقعیت، اگر درایو خود را تا ۹۹ درصد پر کنید، کنترلر فضای خالی کافی برای جابه‌جایی بلوک‌ها و اجرای سایش متوازن نخواهد داشت. به همین دلیل است که درایوهای پر شده، نه تنها به شدت کند می‌شوند، بلکه با سرعت بسیار بیشتری به سمت مرگ فیزیکی حرکت می‌کنند.[4][3]

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

اصطلاحات کلیدی

سایش متوازن (Wear Leveling)
الگوریتمی در کنترلر SSD که داده‌ها را طوری جابه‌جا می‌کند که تمام بلوک‌های حافظه به طور مساوی فرسوده شوند.
جمع‌آوری زباله (Garbage Collection)
فرآیندی در پس‌زمینه که داده‌های معتبر را در بلوک‌های جدید تجمیع کرده و بلوک‌های حاوی داده‌های نامعتبر را برای استفاده مجدد پاک می‌کند.
دستور TRIM
دستوری از طرف سیستم‌عامل که به SSD اطلاع می‌دهد کدام فایل‌ها پاک شده‌اند تا درایو آن‌ها را در فرآیندهای داخلی خود جابه‌جا نکند و بلوک‌ها را آزاد کند.
تقویت نوشتن (Write Amplification)
پدیده‌ای که در آن مقدار داده‌ای که به طور فیزیکی روی تراشه‌های فلش نوشته می‌شود، بیشتر از مقدار داده‌ای است که سیستم‌عامل درخواست کرده است.
سلول‌های NAND
واحدهای فیزیکی ذخیره‌سازی در حافظه‌های فلش که الکترون‌ها را برای حفظ داده‌ها در خود نگه می‌دارند و عمر محدودی دارند.

پرسش‌های متداول

آیا دیفرگ (Defrag) کردن SSD عمر آن را کم می‌کند؟

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

چرا بازیابی فایل‌های پاک شده از SSD سخت‌تر از هارد دیسک است؟

به دلیل دستور TRIM و الگوریتم‌های جمع‌آوری زباله. وقتی فایلی را در SSD پاک می‌کنید، درایو به سرعت بلوک‌های مربوطه را برای استفاده مجدد کاملاً پاک می‌کند، در حالی که هارد دیسک‌ها داده‌ها را تا زمان بازنویسی نگه می‌دارند.

آیا پر کردن کامل ظرفیت SSD خطرناک است؟

بله. کنترلر درایو برای جابه‌جایی داده‌ها و اجرای سایش متوازن به فضای خالی نیاز دارد. پر کردن بیش از ۸۰ تا ۹۰ درصد ظرفیت، این فرآیندها را مختل کرده و باعث کندی شدید و مرگ زودرس درایو می‌شود.

بررسی عمیق دیدگاه‌ها

تولیدکنندگان حافظه

تمرکز بر افزایش ظرفیت و کاهش قیمت به قیمت کاهش چرخه‌های نوشتن فیزیکی.

شرکت‌های سازنده تراشه مانند سامسونگ و میکرون، به سمت تولید حافظه‌های QLC (چهار بیتی) و حتی PLC (پنج بیتی) حرکت کرده‌اند تا ظرفیت را بالا ببرند. آن‌ها استدلال می‌کنند که با وجود کاهش شدید چرخه‌های فیزیکی نوشتن (به زیر ۱۰۰۰ بار)، الگوریتم‌های هوشمندتر کنترلرها و تکنیک‌های سایش متوازن جهانی (Global Wear Leveling) می‌توانند طول عمر کافی برای یک کاربر خانگی عادی را تضمین کنند. از دیدگاه آن‌ها، ظرفیت بیشتر به معنای بلوک‌های بیشتر برای توزیع سایش است.

متخصصان بازیابی اطلاعات

نگاه انتقادی به پیچیدگی الگوریتم‌ها که بازیابی داده‌ها را غیرممکن می‌کند.

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

مهندسان مراکز داده

اولویت دادن به پایداری عملکرد و طول عمر قابل پیش‌بینی بر ظرفیت خام.

در محیط‌های سازمانی، مهندسان به شدت نگران پدیده‌ای به نام «تقویت نوشتن» (Write Amplification) هستند. آن‌ها استدلال می‌کنند که درایوهای مصرف‌کننده برای بارهای کاری سنگین مناسب نیستند، زیرا فرآیند جمع‌آوری زباله و سایش متوازن ایستا باعث می‌شود درایو در پس‌زمینه به شدت درگیر نوشتن‌های داخلی شود. این گروه ترجیح می‌دهند از درایوهای گران‌قیمت‌تر eMLC یا SLC استفاده کنند و بخش بزرگی از درایو را به عنوان فضای رزرو شده (Over-provisioning) خالی نگه دارند تا کنترلر فضای کافی برای تنفس داشته باشد.

تولیدکنندگان سخت‌افزار 40%متخصصان بازیابی و تعمیر 30%معماران زیرساخت سازمانی 30%
تولیدکنندگان سخت‌افزار
تمرکز بر افزایش ظرفیت و کاهش قیمت به قیمت کاهش چرخه‌های نوشتن فیزیکی.
متخصصان بازیابی و تعمیر
نگاه انتقادی به پیچیدگی الگوریتم‌ها که بازیابی داده‌ها را غیرممکن می‌کند.
معماران زیرساخت سازمانی
اولویت دادن به پایداری عملکرد و طول عمر قابل پیش‌بینی بر ظرفیت خام.

دیدگاه‌هایی که این گزارش پوشش نداده

  • توسعه‌دهندگان سیستم‌عامل

منابع

پوشش منابع

5 منبع

3 دیدگاه شناسایی‌شده

تولیدکنندگان سخت‌افزار 40%متخصصان بازیابی و تعمیر 30%معماران زیرساخت سازمانی 30%
  1. [1]Data Recoveryمتخصصان بازیابی و تعمیر

    SSD Wear Leveling Explained

    مطالعه در Data Recovery →
  2. [2]Rossmann Groupمتخصصان بازیابی و تعمیر

    How SSD Wear Leveling Works

    مطالعه در Rossmann Group →
  3. [3]TechTargetتولیدکنندگان سخت‌افزار

    What is wear leveling?

    مطالعه در TechTarget →
  4. [4]OSCOOتولیدکنندگان سخت‌افزار

    Wear Leveling: The Core Technology for Extending Flash Storage Lifespan

    مطالعه در OSCOO →
  5. [5]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان →

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

اخبار فناوری با پوشش کامل منابع و تحلیل دیدگاه‌ها، هر روز و رایگان.