درایوهای حالت جامد نوعی از حافظه‌ی سریع و قابل‌حمل بوده که در پی تصاحب جایگاه هارد دیسک‌ها هستند. این حافظه‌ها انواع مختلفی دارند که همگی بر پایه سلول فلش NAND هستند. همیشه شاهد بحث و گفتگو بین دوستداران تکنولوژی در مورد مزایا و معایب انواع ساختارهای NAND از جمله NAND مسطح در مقابل NAND عمودی یا MLC یا سلول چند لایه(Multi Level Cell) در مقابل TLC یا سلول سه لایه(Triple Level Cell) بوده‌ایم. برای آشنایی بیشتر با SSDها، چند سوال در مورد حافظه‌های ذخیره سازی می‌پرسیم و سپس به تک تک آنها جواب می‌دهیم. SSDها با حافظه‌های مبتنی بر دیسک چرخان متفاوت هستند. بنابراین پیش از آشنا شدن با SSD ها، لازم است که ابتدا با هارد دیسک‌ها آشنا شویم.

هارد دیسک چیست و چگونه کار می‌کند؟

یک هارد دیسک(Hard Disc Drive)، اطلاعات را بر روی دیسک‌های مغناطیسی چرخان ذخیره می‌کند. این دیسک‌های مغناطیسی را پلاتر (Platter) می‌نامند. در درون هر هارد دیسک یک بازوی فعال‌کننده نیز وجود دارد که سرهای مخصوص خواندن و نوشتن اطلاعات بر روی آن سوار هستند تا به همه‌جای دیسک دسترسی داشته باشند. بازوی مورد نظر، هنگام نیاز به خواندن یا نوشتن اطلاعات، این سرهای مخصوص خواندن و نوشتن را در مکان مناسب بر روی دیسک مغناطیسی قرار می‌دهد تا اطلاعات خوانده یا نوشته شوند.

از آنجا که برای خواندن یا نوشتن اطلاعات یا اجرای یک برنامه‌ی خاص، سرهای درایو باید اطلاعات را از روی دیسک استخراج کرده یا روی آن بنویسند، و از آنجا که این دیسک دائم در حال چرخش است، مدت زمانی طول می‌کشد تا سرها دقیقا بر روی نقطه‌ی مورد نظر قرار گرفته و عملیات استخراج یا نوشتن داده را آغاز کنند. ممکن است که برای استخراج داده، نیاز باشد که اطلاعات از چندین جای مختلف دیسک خوانده شوند. در این صورت دیسک باید چندین بار چرخیده و هربار یکی از نقاط مورد نظر را در مقابل سرهای مخصوص قرار دهد تا اطلاعات خوانده یا نوشته شوند. اگر درایوی در حالت خواب (Sleep) یا حالت انرژی کم (Low Power Mode) باشد، از آغاز به حرکت آن تا رسیدنش به حداکثر سرعت برای انتقال داده، چند ثانیه طول می‌کشد.

Hard Disc

از ابتدا معلوم بود که هارد دیسک‌ها توانایی آن را ندارند که با سرعت پردازنده‌ها کار کرده و پا به پای آن‌ها جلو بیایند. تاخیر در هارد دیسک‌ها با میلی ثانیه سنجیده می‌شود؛ در حالی که در پردازنده‌ها، تاخیر در حد چند نانو ثانیه است. بنابراین تاخیر هارد دیسک‌ها چند میلیون برابر پردازنده‌ها است! برای یک هارد معمولی حدود ۱۰ الی ۱۵ میلی ثانیه زمان نیاز است تا اطلاعات را بر روی دیسک یافته و شروع به خواندن آن‌ها کند. با این حال صنعت هارد دیسک تمام تلاش خود را کرده است تا سرعت این محصولات را بالا ببرد. از جمله این تلاش‌ها می‌توان به کاهش اندازه‌ی پلاتر‌ها، افزایش سرعت گرداننده‌ی دیسک و استفاده از حافظه‌ی کش(Cache) بر روی دیسک اشاره کرد. با وجود این تلاش‌ها، سریع‌ترین هارد دیسک‌های قابل استفاده برای کاربران عادی در جهان، خانواده‌ی هاردهای VelociRapors شرکت وسترن دیجیتال هستند که دارای سرعت چرخش ۱۰,۰۰۰ دور بر دقیقه هستند. هارد دیسک‌هایی نیز وجود دارند که سرعت چرخش ۱۵,۰۰۰ دور بر دقیقه دارند، اما برای کاربران عادی قابل استفاده نیستند. مشکل هارد دیسک‌ها این است که حتی سریع‌ترین نمونه‌های آنها در جهان نیز سرعتشان در مقایسه با پردازنده‌ها آن قدر کم است که حتی قابل درصد دهی هم نیست!

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

 هنری فورد، پس از فروختن صدها هزار اتومبیل در آمریکا، در جواب سوال فردی که از او علت وارد شدنش به عرصه‌ی اتومبیل سازی را پرسید گفت: «اگر از مردم می‌پرسیدم که چه چیزی می‌خواهند، آن‌ها جواب می‌دادند: اسب‌های سریع‌تر!»

حال پس از گذشت ۱۰۰ سال انسان‌های امروزی هم به سریع‌ترین‌ منتقل کننده‌ها احتیاج دارند. البته منتقل‌کننده‌ی داده‌ها و اطلاعات، نه افراد!

SSD یا درایو حالت جامد(Solid State Drive) را به این دلیل با این نام می شناسند که بر خلاف هارد دیسک‌ها، ساز و کار آن مبتنی بر چرخش اجسام و حرکت اجرای داخلیش نیست. در SSDها، اطلاعات به جای دیسک چرخان، در دریایی از فلش ناند ذخیره می‌شوند. ناند خود از اجزایی ساخته شده است که ترانزیستورهای گیت شناور نامیده می‌شوند. بر خلاف ترانزیستورهای استفاه شده در ساخت DRAM یا رم پویا (Dynamic Random Access Memory) که باید هر ثانیه چندین بار رفرش شوند، فلش ناند به گونه‌ای طراحی شده است که حتی اگر منبع انرژی در دسترسش نباشد باز هم بتواند حالت شارژ یا دشارژ خود را حفظ کند. همین امر موجب شده است که ناند را در دسته‌ی حافظه‌های غیر فرار دسته‌بندی کنند.

NAND Flash

شکل بالا، طرح ساده‌ای از یک سلول فلش را نشان می‌دهد. الکترون‌ها در گیت شناور ذخیره شده و کنترلر فلش با خواندن مقادیر صفر و یک که به ترتیب به معنی شارژ و دشارژ بودن سلول است وضعیت آن را تعیین می‌کند. صفر و یک اینجا با ذهنیت قبلی ما از این دو عدد متفاوت هستند. در فلش ناند، صفر به معنای آن است که داده در سلول ذخیره شده است و یک بدین معناست که سلول خالی است. فلش ناند در یک شبکه‌ی توری مانند و مشبک به صورت منظم چیده می‌شود. به هرکدام از لایه‌هایی که شبکه را می‌سازند، صفحه (Page) و به کل این شبکه توری مانند، بلوک می‌گویند. اندازه‌های متداول برای صفحات عبارت است از ۲۰۰۰، ۴۰۰۰، ۸۰۰۰ و ۱۶۰۰۰ سلول. در هر بلوک نیز ۱۲۸ یا ۲۵۶ صفحه قرار دارد. پس با این حساب، گنجایش هر بلوک حداقل ۲۵۶ کیلوبایت و حداکثر ۴ مگابایت است. یکی از مزایای SSDها، سرعت بسیار بالاتر آن‌ها نسبت به هارد دیسک‌ها است. از آنجا که در درون SSDها هیچ‌گونه قطعه‌ی متحرکی وجود ندارد، تاخیر کمتر بوده و سرعت انتقال داده بالاتر می‌رود. جدول زیر، میزان تاخیر دسترسی را در انواع حافظه‌های معمول بر حسب میکروثانیه نشان می‌دهد.

delay in memory

NAND از نظر سرعت اصلا قابل مقایسه با حافظه‌های رم نیست؛ اما در مقایسه با هارد دیسک‌ها بسیار سریع‌تر است. حتی با وجود آن که سرعت نوشتن حافظه‌های NAND در مقایسه با سرعت خواندنشان کمتر است، باز هم در این زمینه بسیار سریع‌تر از هارد دیسک‌ها هستند. دو نکته در مورد شکل بالا وجود دارد. اول اینکه با کمی دقت می‌توان فهمید که هرچه تعداد بیت‌ها در سلول فلش بالاتر می رود، تاخیر در آن به طور قابل ملاحظه‌ای افزایش می یابد. تاثیر این کند شدن بر روی نوشتن، بیشتر از خواندن است. مثلا تاخیر خواندن در سلول سه لایه (TLC) نسبت به سلول تک لایه (SLC) حدودا ۴ برابر است؛ اما تاخیر نوشتن در سلول سه لایه، ۶ برابر تاخیر نوشتن در سلول تک لایه است. با افزایش تعداد بیت‌ها در هر سلول فلش،  تاخیر در پاک کردن داده‌ها هم همانند نوشتن و خواندن بسیار بیشتر می‌شود. اگر تعداد بیت‌ها n برابر شود، لزوما تاخیر هم n برابر نمی‌شود؛ بلکه بیشتر از n برابر می‌شود. مثلا اگر به سلول سه لایه نگاه کنیم می‌بینیم که دو برابر سلول دولایه تاخیر دارد؛ در حالی که تعداد بیت‌های آن تنها ۵۰ درصد بیشتر از تعداد بیت‌های سلول دولایه است.

NAND Flash Cells

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

خواندن، نوشتن و پاکسازی داده در SSDها چگونه انجام می‌شود؟

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

  • مرحله‌ی اول، کپی کردن تمام اطلاعات بلوکی است که صفحه‌ی مورد نظر ما در آن واقع شده است
  • مرحله‌ی دوم، پاک کردن تمام اطلاعات داخل بلوک است
  • مرحله‌ی سوم هم «نوشتن اطلاعات کپی شده + اطلاعات مورد نظر ما» در بلوک و صفحه‌ی مورد نظر است.

بدین ترتیب بدون کوچکترین تغییری در دیگر اطلاعات بلوک، توانسته‌ایم اطلاعات یک صفحه را به روز کنیم. اگر درایو پر باشد و هیچ صفحه‌ی خالی در دسترس نباشد، SSD باید ابتدا به دنبال بلوک‌هایی بگردد که قبلا آنها را به عنوان بلوک حذف شده علامت‌گذاری کرده، اما اطلاعات داخلشان را حذف نکرده است. پس از یافتن این بلوک‌ها، آن‌ها را پاک کرده و سپس اطلاعات را در صفحه مورد نظر که حالا خالی است بنویسد. دلیل کند شدن SSDها پس از گذشت زمان نیز همین است. یک درایو SSD تقریبا خالی، دارای بلوک‌های خالی بسیار زیادی است که می‌تواند اطلاعات را در آنها بنویسد. به همین دلیل سرعت خیلی زیادی دارد. اما یک SSD تقریبا پر، به احتمال بسیار زیاد باید برای نوشتن اطلاعات، چندین بار چرخه‌ی نوشتن و پاک‌کردن (program/erase cycle) بالا را طی کند و به همین دلیل سرعتش پایین می‌آید. استفاده از آخرین مگابایت‌های باقی‌مانده‌ی یک SSD واقعا آزار دهنده است.

اگر تاکنون از SSD استفاده کرده‌اید، به احتمال زیاد عبارت جمع‌آوری زباله(Garbage Collection) را هم شنیده‌اید. جمع آوری زباله، یک پردازش در پس‌زمینه است که با انجام یک سری پردازش‌های خاص در پس زمینه، به درایو مورد نظر اجازه می‌دهد که از کاهش بیش از حد سرعت در اثر اجرای مداوم چرخه‌ی نوشتن و پاکسازی جلوگیری کند. تصویر زیر به درک بهتر این عملکرد کمک می‌کند.

Garbage Collection

در مورد عکس بالا این نکته را هم مد نظر داشته باشید که این درایو، از این واقعیت بهره گرفته است که با نوشتن ارزش جدید برای چهار بلوک ‘C’ ،B’ ،A، و ‘D می‌تواند با سرعت بسیار بالایی اقدام به نوشتن اطلاعات در صفحات خالی کند. این درایو همچنین دو بلوک جدید با نام‌های E و H را نیز نوشته است. بلوک‌های C، B، A و D بلوک‌های کهنه محسوب می‌شوند. یعنی اطلاعات موجود در آنها به عنوان اطلاعات تاریخ مصرف گذشته علامت‌گذاری شده‌اند. هنگامی که درایو مشغول خواندن یا نوشتن اطلاعات نبوده و در حال استراحت باشد، به طور اتوماتیک اطلاعات موجود در صفحات تازه را به یک بلوک جدید منتقل کرده و بلوک یا بلوک‌های قدیمی را پاک می‌کند تا فضای خالی برای اطلاعات جدید آینده ایجاد شود. این بدان معنا است که دفعه‌ی بعدی که SSD نیاز به نوشتن اطلاعات پیدا کند، می‌تواند به جای اجرای چندین باره چرخه‌ی نوشتن و پاکسازی، اطلاعات را مستقیما در بلوک‌ ایکس که اکنون خالی شده است بنویسد.

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

TRIM چیست؟

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

SSD

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

مباحث دیگری که امروز به آنها خواهیم پرداخت، تراز بندی پوشش (Wear Leveling) و تقویت نوشتار (Write Amplification) هستند. همان‌طور که قبلا دیدیم، SSDها، اطلاعات را در سطح صفحه و بلوک می‌خوانند، اما  تنها در سطح بلوک قادر به نوشتن هستند و به همین علت چند بار باید اطلاعات را نوشته و پاک کنند تا بتوانند داده‌های مورد نظر ما را بنویسند. همین امر موجب شده است که همواره میزان نوشتن اطلاعات بر روی یک SSD، بیش از حجم واقعی اطلاعاتی باشد که ما می‌خواهیم بر روی آن ذخیره کنیم. مثلا اگر شما بخواهید اطلاعات یک فایل ۴ کیلوبایتی را تغییر دهید، SSD ناچار است تمام اطلاعات موجود در بلوکی که فایل ۴ کیلوبایتی شما در آن قرار دارد را حذف کرده و مجددا بنویسد. بسته به سایز بلوک مورد نظر (که از ۲۵۶ کیلوبایت تا ۴ مگابایت متغیر است)، شما باید حداقل ۲۵۶ کیلوبایت و حداکثر ۴ مگابایت اطلاعات را پاک کرده و به همراه فایل ۴ کیلوبایتی مجددا در بلوک بنویسید. به این فرایند، تقویت نوشتار می‌گویند. خوشبختانه فرایند جمع آوری زباله(Garbage Collection)، همانند دستور TRIM تا حدودی تاثیر تقویت نوشتار را کاهش می‌دهد و از نوشته شدن اطلاعات اضافی بر روی درایو جلوگیری می‌کند. نگه داشتن بخشی خالی در درایو و یا ارائه‌ی یک بخش مجزا برای این کار توسط سازنده نیز می‌تواند موجب کاهش تاثیر فرایند تقویت نوشتار شود.

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

کنترلر SSD چیست و چگونه کار می‌کند؟

تا این جای کار باید متوجه شده باشید که حافظه‌های SSD بسیار پیچیده‌تر از هارد دیسک‌ها بوده و کنترلرهای بیشتری هم دارند. این به معنای بد بودن حافظه‌های مغناطیسی نیست. شخصا معتقدم که هارد دیسک‌ها کمتر از آن‌چه که استحقاقش را دارند تکریم می‌شوند. طراحی و کنار هم قرار دادن این قطعات مکانیکی اصلا کار ساده‌ای نیست. مخصوصا اگر بدانید که یکی از آن‌ها باید دو سر مخصوص خواندن و نوشتن داده را بر روی خود و در فاصله چند نانومتر از دیسکی که با سرعت ۵۴۰۰ تا ۱۰۰۰۰ دور بر دقیقه می‌چرخد نگه دارد! این حقیقت که هارد دیسک‌ها از پس چنین چالش‌هایی برآمده‌اند، در حالی که پیشگامان ذخیره‌سازی داده بر روی حافظه‌های مغناطیسی هستند و از طرفی اکنون تنها ۳ تا ۵ سنت به ازای هر گیگابایت قیمت دارند باورنکردنی است!

SSD Controler

کنترلرهای SSD، با هم درون یک کلاس قرار می‌گیرند. اغلب یک حافظه‌ی رم (RAM) از نوع DDR3 نیز برای مدیریت بهتر ناند، آن‌ها را همراهی می‌کند. بسیاری از درایوها، چند حافظه‌ی کش(Cache) از نوع تک لایه(SLC) را با هم ترکیب می‌کنند تا به عنوان یک حائل(Buffer) عمل کند. وظیفه این حائل این است که از طریق اختصاص دادن ناندهای سریع‌تر به چرخه‌ی خواندن و نوشتن اطلاعات، موجب افزایش سرعت درایو شود. از آن جا که یک فلش ناند در داخل SSD، از طریق یک سری کانال‌ موازی حافظه به کنترلر وصل شده است، می‌توان کنترلر درایو را همزمان که در حال انجام بخشی از وظایف از طریق تقسیم کار است، به عنوان یک آرایه‌ی ذخیره‌سازی سطح بالا فرض کرد. SSD ها به صورت پیش‌فرض و در داخل خود، ویژگی RAID یا همان آرایه‌ی چندگانه دیسک‌های مستقل(Redundant Array Of Independent Discs) را ندارند، زیرا این ویژگی مخصوص هارد دیسک‌ها است؛ اما در عوض از ویژگی‌های تراز بندی پوشش، جمع آوری زباله (Garbage Collection) و مدیریت کش سلول تک لایه بهره می‌برند.

RAID

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

آینده پیش روی SSDها چیست؟

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

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

بر هیچ‌کس پوشیده نیست که NAND هرچقدر خوب هم باشد، بالاخره روزی توسط روش ذخیره‌سازی جدیدتر و بهتری کنار زده خواهد شد. هنوز معلوم نیست که این فناوری چه خواهد بود. دو روش مدرن برای ذخیره‌سازی داده‌ها در آینده پیش‌بینی می‌شود که یکی متد رم مغناطیسی(Magnetic Random Access Memory) بوده و دیگری حافظه‌ی تغییر فاز (Phase Change Memory) نام دارد. هر دوی آنها شانس پیروز شدن بر SSDها را دارند. البته فراموش نکنید که این دو تکنولوژی هنوز در مراحل اولیه خود به سر برده و با چالش‌هایی جدی بر سر راه توسعه‌ی خود روبرو هستند. شاید اگر بر این مشکلات فائق آیند بتوانند جایگزین NAND شوند؛ اما تا آن هنگام، SSDها برترین ابزارهای عرصه‌ی ذخیره‌سازی اطلاعات خواهند بود. کاهش زمان دسترسی درایوها به اطلاعات از میلی ثانیه به میکرو ثانیه می‌تواند جهشی عظیم باشد، اما رساندن آن به حد نانو ثانیه از توان بشر خارج است. فعلا که NAND پادشاه ذخیره‌سازی اطلاعات است و حداقل تا ۵ سال دیگر در این جایگاه خواهد ماند.