کند شدن SSD
هیچ بعید نیست که شما هم یک SSD پر سرعت تهیه کرده باشید اما با گذر زمان متوجه کاهش سرعت و افت کارایی آن شده باشید. اما آیا واقعا SSDها با گذر زمان کند می شوند؟ در این صورت چه چیزی باعث افت کارایی آن ها می شود؟ همانطور که احتمالا می دانید، تعداد دفعات (چرخه) نوشتن و پاک سازی (P/E) تراشه های NAND مورد استفاده در SSDها کاملاً محدود است و دوام آن ها به تعداد چرخه های نوشتن و پاک سازی تراشه های حافظه بکار رفته وابسته است. مطمئناً هرچه تعداد چرخه های نوشتن و پاکسازی بیشتر باشد مطلوب تر است. در سال های ابتدایی معرفی SSD به صنعت کامپیوترهای شخصی، شاهد تراشه های حافظه NAND با دوام 5000 چرخه نوشتن/پاک کردن بودیم، کمی که گذشت دوام تراشه هایی که تولید می شدند به 3000 چرخه کاهش پیدا کرد. ظرف یک الی دو سال دوام تراشه های حافظه به 1000 چرخه کاهش پیدا کرد و کمی بیشتر که گذشت، این مقدار تنها به 500 چرخه رسید. با مهاجرت از تراشه های MLC NAND به TLC NAND تعداد چرخه های نوشتن و پاک سازی از این هم بدتر شد و دوام تراشه های بکار رفته در بسیاری از SSDهای ارزان قیمت امروزی از 100 چرخه فراتر نمی رود.
پیشرفت ها در فناوری تصحیح خطا (error correction) کنترلرها این امکان را به سازندگان SSD بخشید تا از تراشه های حافظه ارزان تر و کم دوام تر در SSDهای مقرون به صرفه تر استفاده کنند. در حقیقت هرچه که فناوری ساخت (لیتوگرافی) تراشه های حافظه NAND مورد استفاده SSDها کوچکتر می شود، تعداد چرخه های نوشتن و پاک کردن آنها نیز کاهش می یابد، اما پس چه دلیلی برای اصرار به کوچکتر کردن فناوری ساخت وجود دارد؟ فناوری ساخت کوچکتر این امکان را فراهم می کند تا تراشه های حافظه با چگالی بالاتر تولید کرد که در نهایت به کاهش تعداد تراشه های حافظه مورد نیاز برای ساخت SSDها می انجامد. برای نمونه به جای استفاده از چهار تراشه 40 نانومتری 256 گیگا بیتی در یک SSD با ظرفیت 128 گیگا بایت، می توان از تنها دو تراشه 15 نانومتری 512 گیگا بیتی استفاده کرد که به وضوح به کاهش هزینه تمام شده کمک می کند.
احتمالاً اکنون می پرسید چگونه سازندگان با استفاده از تراشه های حافظه NAND کم دوام تر مشکلی ندارند، مگر به کاهش دوام محصولات آنها نمی انجامد؟ خب پاسخ به این پرسش فراتر از تنها یک کلمه است. آنچه که باعث شده تا سازندگان با بکارگیری تراشه های NAND با دوام پایین تر مشکلی نداشته باشند، ظهور فناوری های افزایش دهنده دوام در سمت کنترلرها است. سازندگان کنترلرها روش هایی ابداع کرده اند که به افزایش دوام تراشه های با دوام پایین تر کمک می کند، البته این روش ها چیزی فراتر از الگوریتم های معمول کاهنده حجم نوشتن است. اغلب سازندگان کنترلرها با نام اختصاصی خود از این فناوری ها یاد می کنند اما در کنترلرهای امروزی اغلب مبتنی بر تکنیک تصحیح خطا Low-Density Parity-Check code (LDPC) است که از کسر کوچکی از حافظه برای نگه داری کد تصحیح خطا استفاده می شود.
اگر بخواهیم کارکرد LDPC را به دور از پیچیدگی های فنی بیان کنیم، به ازای داده هایی که در تعداد مشخصی از سلول های حافظه نوشته می شوند، یک کد اطمینان تولید می کند که رابطه منطقی با مقدار همان سلول ها دارد، کد اطمینان در یک جدول اختصاصی نگه داری می شود تا موقع خواندن اطلاعات از آن برای پی بردن به بروز خطا و تصحیح آن استفاده کرد. در موقع خواندن داده ها، در صورتی داده های یک یا چند بیت به هر علتی خراب شده باشد، موتور تصحیح خطا ضمن متوجه شدن، با تکیه بر کد اطمینان تولید شده مختص به همان سلول ها، مقدار سلول یا سلول های معیوب را محاسبه و جایگذاری می کند. بدین ترتیب به رغم خراب شدن بخشی از داده های سلول های حافظه، داده های اصلی بدون مشکل خوانده می شوند و بروز خطا در سطح سلول های حافظه به خرابی داده ها منجر نمی شود. وجود موتور تصحیح خطا باعث می شود تا به رغم بروز خطا بتوان از SSD استفاده کرد که نهایتاً به افزایش دوام آنها می انجامد. معمولاً موتور های تصحیح خطا قدرتمند دوام نهایی SSD را بین 1.5 تا 3 برابر افزایش می دهند. برای مثال ممکن است دوام تراشه های حافظه از 1000 چرخه نوشتن و پاک کردن به 1500 و حتی 2000 چرخه افزایش یابد.
در وجود کنترلرهای مجهز به موتور تصحیح خطا، سازندگان SSD می توانند از تراشه های NAND با دوام پایین تر (که مطمئناً ارزان تر نیز هستند) بدون اینکه دوام اسمی محصول را کاهش دهند، استفاده کنند. اغلب کنترلرهای امروزی از کد BCH برای تصحیح بیت های معیوب موقع خواندن داده ها استفاده می کنند. با این حال سازندگان کنترلرها تغییراتی را در الگوریتم ها اعمال می کنند که به افزایش کارایی و دوام هرچه بیشتر SSD کمک می کند، برخی سازندگان نیز چندین روش تصحیح خطا مختلف را به طور هم زمان به خدمت می گیرند که به دوام هرچه بیشتر کمک می کند. در حالی که پیاده سازی تکنیک های تصحیح خطا مفید به نظر می رسد اما هنگامی که یک بیت خراب می شود، کنترلر باید عملیات تصحیح خطا را اجرا کند که باعث بروز تاخیر و افزایش مصرف انرژی می شود و این همان راز کُندی SSDها با گذر زمان است.
با گذر زمان و خرابی هرچه بیشتر سلول های حافظه، کار تصحیح خطا شدت می گیرد و روز به روز SSD کندتر می شود، چراکه در کنار کارهای معمول خواندن، باید عملیات تصحیح خطا نیز اجرا شود. با این حال کُند شدن تنها نگرانی موجود نیست و میزان خطای قابل تصحیح توسط کنترلر محدود است که با عبور از آن دیگر کنترلر قادر به تصحیح خطا نیست و داده ها به طور برگشت ناپذیر خراب می شوند، اینجاست که دیگر SSD به پایان عمر خود نزدیک می شود. در این زمان ممکن است کنترلر تلاش کند بلاک های دارای سلول معیوب را نادیده بگیرد و از آنها استفاده نکند یا بلاک های یدک را جایگزین کند اما هنگامی که تعدادی زیادی سلول حافظه بمیرند، دیگر SSD به پایان راه خود رسیده است.
ترک یک پاسخ