دیکشنری ای دیتا: Power Cycling چیست ؟

دیکشنری ای دیتا: Power Cycling چیست ؟

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

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

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

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

  • بافر رم را غیرفعال کنید: این سرراست‌ترین راه حل است. اطلاعاتی که توسط میزبان وارد می‌شود، SSDها آن‌ها را درست قبل اینکه تکمیل این فرآیند به میزبان پاسخ داده شود در NAND ثبت می‌کند. این روش خیال شمارا بابت از دست رفتن اطلاعات در صورت ایجاد مشکل برقی غیرمعمول راحت می‌کند. اما بهای این اطمینان عملکرد ضعیف تر درایو SSD است.
  • یک مدار محافظ دیگر اضافه کنید: این روش یک قطعه خازن در مدار SSD اضافه می کند تا SSD را قادر سازد که عملیات مورد نیاز را حتی در شرایطی که SSD دچار قطع برق شود ، به پایان برساند. در صورت قطع برق، از طریق ولتاژ مشکل قطع برق شناسایی می‌شود و از کنترلر خواسته می‌شود تا قبل از قطع شدن برق اطلاعات به‌سرعت در بافرِ فلشِ NAND ذخیره شود و عملیات لازم صورت پذیرد. این راهکار جلوی از دست رفتن اطلاعات را می‌گیرد و خلالی به عملکرد وارد نمی‌کند. این روش یک نکته منفی دارد که آن‌هم افزایش قیمت SSD است.

قطع برق تنها موجب از بین رفتن اطلاعات در بافر رم نمی‌شود، این قضیه می‌تواند داده‌های ذخیره‌شده در NAND را خراب کند، سرعت راه‌اندازی را افزایش دهد و یا حتی موجب قفل شدن یا صدمه کلی به SSD شود. ازآنجایی‌که NAND های MLC/TLC بیش از یک بیت را در یک سلول ذخیره می‌کنند، قطع شدن برق وقتی رخ می‌دهد که داده‌های صفحه برنامه‌نویسی ثبت نشود و موجب شود داده‌های برنامه‌نویسی شده هم از بین برود. به این فرآیند تأثیر صفحه‌ای جفت گفته می‌شود (Pair Page Effect).

همان‌طور که در تصویر زیر مشاهده می‌کنید صفحه 0 و 4 صفحات مشترکی هستند که بارنگ تیره‌تر متمایز شده‌اند. در شرایطی که صفحه 4 در حال برنامه ریزی است اگر یک مشکل برقی به وجود بیاید داده‌های صفحه 0 هم از بین می‌رود. این مشکل وقتی حل می‌شود که کنترلر SSD داده‌های جدید را ابتدا در کشِ SLC ذخیره کند و فقط یک بیت را درSLC  نگاه دارد. این بدین معناست که دیگر صفحه مشترکی وجود ندارد و آسیبی از این مشکل به SSD وارد نمی‌شود. این روش هزینه‌هایی هم در پی دارد که می‌توان از آن‌ها به افزایش بزرگی نرخ ثبت اطلاعات و عملکرد ضعیف‌تر ثبت داده در بلندمدت اشاره کرد. روش دیگر همان‌طور که در تصویر زیر مشاهده می‌کنید به کمک one pass program انجام می‌شود. در این نوع از NAND در تمام صفحات مشابه، به‌منظور عدم تأثیرگذاری روی صفحاتی که برنامه‌نویسی شده‌اند، عمل برنامه‌نویسی در یک مرحله انجام می‌شود. هزینه این راه‌حل این است که به کنترلرها با بافر رم بیشتر این اجازه را می‌دهد که چند صفحه را در یک وحله برنامه‌نویسی کنند.

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

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