چرا حافظه های ssd کند می شوند
حافظه SSD رایانه تنبل شده است
به هیچ عنوان بعید نیست که شما هم یک SSD پرسرعت تهیه کرده باشید اما طی گذر زمان متوجه افت سرعت و کاهش عملکرد آن شده باشید. اما آیا واقعاً SSDها طی گذر زمان کُند می شوند؟ در این صورت چه چیزی موجب کاهش عملکرد آنها می شود؟ در مطلب روبرو به این سوال شما پاسخ خواهیم داد.
همان گونه که به احتمال زیادً می دانید، تعداد دفعات (چرخه) نوشتن/پاک سازی (P/E) تراشه های NAND مورد استفاده در SSDها کاملاً محدود است و دوام آنها به تعداد چرخه های نوشتن/پاک سازی تراشه های حافظه بکار رفته وابسته است. یقیناً هرچه تعداد چرخه های نوشتن/ پاکسازی بیشتر باشد مطلوب تر است.
تنزل شدید کارایی در یک 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 گیگابیتی استفاده کرد که به وضوح به کاهش هزینه نهایی کمک می کند.
اثر تصحیح خطای NANDXtend کنترلرهای Silicon Motion
به احتمال زیادً حالا سوال می کنید چگونه سازندگان به وسیله تراشه های حافظه 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 به اتمام راه خود رسیده است.