حافظه های SSD چگونه کار می کنند؟
در سال های اخیر درایوهای SSD در لپ تاپ و کامپیوترهای مرغوب حضور پر رنگ تری یافته اند و سرعت بالای آنها نیز باعث شده تا کاربران علاقه زیادی به استفاده و بهره گیری بلندمدت از آنها نشان دهند.
در این میان باید توجه کرد که تکنولوژی NAND که در ساخت اینگونه محصولات به کار می رود، انواع مختلفی دارد؛ از MLC [سلول های چند سطحی - Multi-Level Cell] گرفته تا TLC [سلول های سه سطحی -Triple-Level Cell] و همچنین سلول های تک سطحی.
یک هارد درایو HDD، اطلاعات را بر روی یک سری دیسک های چرخان مغناطیسی به ثبت می رساند؛
به این دیسک ها پلاتر [Platter] گفته می شود. یک هد نویسنده اطلاعات [Head] به اهرمی متصل شده که بر روی این پلاتر ها به ثبت اطلاعات مشغول می شود و برای تکمیل به ثبت رسیدن محتوا، دیسک های پلاتر باید با سرعت در حال چرخش باشند.
اهرم مورد بحث، نقطه ای صحیح [یا بهتر است بگوییم خالی از محتوا] را برای نگارش اطلاعات جدید انتخاب می کند.
به دلیل اینکه صفحه پلاتر همواره در زمان کارکرد هارد، در حال چرخش است، هدی که روی اهرم متصل شده گاهی نیاز دارد برای اجرای یک نرم افزار یا فایل، به چند بخش مختلف از پلاتر دسترسی پیدا کند و همین موضوع سبب می گردد تا کاربر اندکی انتظار را برای لود شدن فایل حس کند.
این انتظار در واقع از جایی ناشی می شود که دیسک باید بچرخد، اهرم باید هد را روی نقطه ای که شما خواسته اید هدایت کند و سپس هد به سراغ برداشت اطلاعات از نقطه ی مورد نظر اقدام نماید.
اگر دستگاه خود را به حالت Sleep وارد کرده باشید و تازه آن را آماده به کار نموده اید، انتظار بیشتر هم می شود چرا که باید صبر کنید تا سرعت چرخش پلاتر یا همان صفحه ای که اطلاعات روی آن ذخیره شده اند به حد استاندارد برسد تا هد بتواند محتویات مورد نظرتان را برداشت کند.
تاخیر عملکرد در هارد درایو HDD در مقیاس میلی ثانیه اندازه گیری می شود، تاخیر پردازنده با نانو ثانیه اندازه گرفته می شود. هر میلی ثانیه متشکل شده است از ۱ میلیون نانوثانیه
از همان ابتدای رشد چشمگیر کامپیوترهای شخصی در خانه های کاربران، مشخص بود که تکنولوژی بکار رفته در هارد درایوها به هیچ عنوان قادر نیست به پای سرعت بالای رشد پردازنده های مرکزی [CPU] برسد.
هر میلی ثانیه متشکل شده است از ۱ میلیون نانوثانیه و به طور معمول، یک هارد درایو HDD ده الی پانزده میلیثانیه زمان نیاز دارد تا اطلاعات مورد نیاز شما را از روی پلاتر خود پیدا نموده و تازه شروع به خواندنش کند.
بزرگان این صنعت تلاش کردند وضعیت را با کاهش اندازه پلاتر و بالاتر بردن حافظه کش و افزایش سرعت چرخش دیسک های پلاتر تا حدی حل کنند اما در هر حال، حقیقت این است که یک دیسک باید بچرخد و سرعتش، از حدی خاص نمی تواند بالاتر برود.
وسترن دیجیتال در این میان خانواده VelociRaptor را معرفی کرد که می توانست تا ۱۰ هزار دور در دقیقه بچرخد. این نوع هارد دیسک ها، سریع ترین گونه از HDD ها هستند که برای کاربران عادی توسعه یافته اند.
این در حالیست که می توان برخی هارد دیسک های سازمانی را یافت که می توانند تا ۱۵ هزار دور در دقیقه بچرخند اما از لحاظ قیمتی به هیچ عنوان برای یک کاربر عادی یا حرفه ای مناسب نیستند.
مشکل بسیار بزرگ اینجا بود که سریع ترین دیسک های گردان در کنار حافظه کش بالا و کوچک ترین پلاترها، باز هم قادر نبودند به سرعت پردازنده ها برسند؛ این دقیقا همانجایی بود که درایو های SSD وارد میدان شدند. سخن زیبای هنری فورد، موسس شرکت اتومبیل سازی «Ford» در اینجا مصداق پیدا می کند.
نام داریو های جدید، به این دلیل «حالت جامد - SSD» انتخاب شد که در آنها هیچ قطعه ای، متحرک نبود. در عوض داده ها روی بخشی به نام فلش NAND به ثبت می رسند و حافظه NAND نیز از ترانزیستورهای شناور تشکیل شده.
این نوع از فضای ذخیره سازی اطلاعات برعکس حافظه های DRAM که در ثانیه چند بار خود را تازه (رفرش) می کنند، به گونه ای طراحی شده که بتواند حالت خود [و اطلاعاتی که در آن به ثبت رسیده اند] را حفظ کند، حتی زمانی که هیچ منبع الکتریسیته ای برایشان وجود ندارد.
به همین علت، حافظه NAND تبدیل شده است به گونه ای از حافظه های غیر فرّار و فوق سریع.
نموداری که در بالا ملاحظه می کنید، طراحی یک سلول فلش را به شکل ساده تشریح می کند. الکترون ها در دریچه شناور [Float Gate] ذخیره می شوند.
حافظه فلش NAND در یک تورین [Grid] قرار گرفته در حالی که «صفحه ها» تشکیل دهنده یک بلاک هستند. اندازه هر بلاک بین ۲۵۶ کیلوبایت تا ۴ مگابایت متغیر است و می تواند چنین حجمی را در خود ذخیره کند.
یکی از مزایای چنین سیستمی از حالا مشخص شده است. به دلیل اینکه درایوهای SSD هیچ بخش متحرکی ندارند، به راحتی می توانند سرعت خود را بالاتر از هارد های HDD ببرند. نمودار پایین، تاخیر اجرای دستورات در گونه های مختلف درایوها SSD را با میکروثانیه برایتان به نمایش می کشد.
حافظه های NAND در برابر حافظه های RAM، هنوز هم از سرعت بسیار پایین تری برخوردار هستند اما سرعت آنها در برابر HDD ها، به شکل قابل توجهی بیشتر است.
به دو مورد بسیار مهم در رابطه با نمودار فوق باید توجه کرد. ابتدا ببینید که چگونه اضافه شدن بایت های بیشتر به هر سلول NAND، باعث تاثیرگذاری روی عملکرد آن می شود.
این تاثیر البته در زمان نوشته شدن بیشتر از زمان خوانده شدن اطلاعات از روی درایو هم هست. درایوهای حالت TLC (سلول های سه سطحی) تاخیری ۴ برابر بیشتر از سلول های تک سطحی - SLC در حالت Read دارند اما همین قیاس برای حالت Write به ۶ برابر می رسد.
دلیل کندتر بودن TLC NAND از MLC و SLC، بستگی به نحوه وارد و خارج شدن اطلاعات از سلول های آن دارد. در SLC NAND (تک سطحی) کنترل کننده درایو تنها نیاز دارد بداند که وضعیت سلول در حالت صفر قرار دارد یا یک [پر است یا خالی].
در MLC NAND، یک سلول ممکن است چهار حالت داشته باشد: ۰۰، ۰۱، ۱۰ یا ۱۱ و در TLC NAND، حالت ها به ۸ گونه می رسند. برای استخراج حالت هر سلول، کنترل کننده درایو باید والتاژی مناسب را به کار ببرد و همین امر سبب تاخیری شده است که در نمودار پدیدار گشته.
نوشتن، خواندن و پاک کردن
سرعت نوشتن و خواندن در درایوهای SSD [در سلول های خالی] بسیار بالاست اما یکی از محدودیت های پایه ای اینگونه درایوها، سرعت بسیار پایین بازنویسی مجدد اطلاعات روی سلول های خاص که از داده ها پر هستند و می خواهید اطلاعات جدید را جایگزین آنها کنید است.
پیشتر در مورد ردیف های تشکیل دهنده صفحه ها برایتان گفتیم. SSD ها می توانند صفحات [تشکیل دهنده بلاک ها] را به شکل یکجا بخوانند یا روی یک صفحه به شکل کلی بنویسند. صفحه ها هستند که بلاک ها را تشکیل می دهند و این در حالیست که درایو های یاد شده صرفا می توانند در سطح بلاک ها، محتوای ذخیره شده را حذف نمایند.
چنین اتفاقی به این دلیل رخ می دهد که برای حذف کردن داده هایی که از پیش ثبت شده اند، ولتاژ انرژی بیشتری مورد نیاز است. به شکل تئوری می توان داده ها را در سطح صفحه ها حذف کرد اما این موضوع می تواند در اطلاعاتی که در سلول های کناری ثبت شده اند، اختلال ایجاد کند در نتیجه راهکار، همان حذف کردن داده ها به شکل یکجا در یک بلاک متشکل از چندین صفحه است.
تنها راهی که می توان در یک SSD، در صفحه هایی که پیش از این اطلاعاتی به ثبت رسیده، داده های جدید را بازنویسی کرد، این است که کنترل کننده درایو، اطلاعات را به حافظه منتقل کرده، بلاک را به شکل کامل پاک کند، سپس داده های جدید را روی بلاک قدیمی بنویسد و صفحات را بروز رسانی نماید.
اگر درایو SSD شما پر باشد، این پروسه دردناک تر هم می شود و کنترل کننده ابتدا باید بلاک هایی که برای پاک شدن انتخاب گشته اند اما هنوز پاک نشده اند (فایل هایی که در سطل زباله هستند اما کاملا حذف نشده اند) را پیدا کند، آنها را پاکسازی نماید و سپس داده های شما را ذخیره کند.
به همین دلیل است که پس از چند سال استفاده از SSD ها، متوجه می شوید که سرعت آنها با کاهش رو به رو شده است.
یک درایو خالی، پر از بلاک های آماده برای ثبت اطلاعات است اما درایوی که در حال پر شدن باشد، به شکل مداوم بلاک و صفحه های خالی را اسکن می کند و این یعنی کاهش عمر کلی یک SSD.
اگر قبلا از درایوهای SSD استفاده کرده اید، احتمالا با عبارتی به نام «Garbage Collection یا زباله روبی» برخورد داشته اید. این حالت در پس زمینه و بدون اینکه شما آگاه شوید، اتفاق می افتد و کمک می کند تا پروسه بازنویسی یا پیدا شدن بلاک و صفحه های خالی با راحتی و سرعت بیشتری اتفاق بی افتد.
بیایید برای فعالیت زباله روبی یک مثال بزنیم. SSD یک خاصیت مهم دارد و آن هم سرعت بسیار بالایش برای نوشتن در بلاک های خالی است. شاید اطلاعات به شکل پراکنده در صفحه های بلاک ها به ثبت رسیده باشند و در حالی که یک بلاک بی استفاده تشخیص داده شده، برخی صفحه ها در آن خالی باشند.
کاری که SSD شما می کند این است که در زمان روشن بودن کامپیوتر اما در حالتی که از آن استفاده نمی کنید، به سراغ بلاک ها رفته، آنها را مرتب می کند و اگر صفحه ای در یک بلاک خالی مانده، آن را با صفحات دیگر پر می کند تا به طور کلی یک بلاک خالی به دست آید.
در نتیجه بعدا که شما بخواهید اطلاعات را روی درایو خود ذخیر کنید، داده ها با سرعت بالا در بلاک هایی که به عنوان «آزاد - Free» علامت گذاری شده اند ثبت می گردند.
در واقع هر زمان که اطلاعات تازه ای را به کامپیوتر وارد می کنید، در زمانی که سیستم را به حال خود رها کرده اید کنترل کننده SSD بلاک ها را مرتب می کند تا سرعت برای نقل و انتقال بعدی بالا بماند.
حال بیایید در مورد مرتب کردن [Trim] صحبت کنیم. فرض کنید در ویندوز و با استفاده از یک هارد درایو معمولی HDD، یک فایل را انتخاب کرده و سپس کلید Delete را بر روی کیبورد خود فشار می دهید. در این حالت، همانگونه که می دانید آن فایل به شکل کامل پاک نمی شود.
سیستم عامل یاد شده صرفا در چنین شرایطی به هارد درایو شما دستور می دهد که برای ثبت اطلاعات جدید، در صورت نیاز می تواند از محیط فیزیکی که همان محتوای پاک شده در آن قرار گرفته بود، استفاده کند.
به همین دلیل است که شما می توانید پس از مدتی، حذف شدن دائمی فایل هایی که پیشتر دستور حذف آنها را صادر کرده بودید را لغو کرده و آنها را بازگردانید.
در زمان استفاده از یک هارد درایو HDD، سیستم عامل نیازی ندارد به صفحه ها یا بلاک ها برای انتخاب مکان مناسب برای نوشتن محتوای تازه توجه کند اما در درایوهای SSD این موضوع مشخصا اهمیت بسزایی دارد.
دستور Trim یا مرتب کردن، به سیستم عامل اجازه می دهد که به SSD بگوید می تواند دفعه بعد که می خواست داده ها را بازنویسی کند، از بلاکی که اطلاعات یاد شده در آن قرار گرفته اند صرف نظر نماید.
همین موضوع حجم داده هایی که درایو SSD جا به جا کرده و دوباره می نویسد را کاهش داده و به همین علت طول عمر حافظه مورد اشاره بالاتر می رود.
عملیات نوشتن و خواندن داده ها روی فلش های NAND باعث کاهش عمر آنها می شوند اما باید اشاره کرد که ساختار نوشته شدن اطلاعات به شکل مکرر روی یک درایو SSD، می تواند زیان های بسیار بیشتری از خوانده شدن چندباره داده ها روی آن داشته باشد.
کنترل کننده SSD
بدیهی است که یک درایو SSD به جهت ساختار پیچیده تر خود، مستلزم استفاده از سیستم کنترل کننده بسیار پیشرفته تری از هاردهای HDD است. البته به هیچ عنوان نباید مکانیزم کنترل کننده در هارد های HDD را ساده پنداشت.
صرفا تصور کنید که چه چالش هایی برای دستیابی به اطلاعات در یک صفحه پلاتر که با سرعتی معادل ۵۴۰۰ الی ۱۰ هزار دور در دقیقه می چرخد وجود دارد. همه این ها در کنار قیمت بسیار پایین هاردها به ازای هر گیگابایت [۳ الی ۵ سنت برای هر گیگابایت] واقعا حیرت انگیز است.
با این حال ولی کنترل کننده های SSD پیچیده تر هستند. برای مثال صرفا قسمتی از این بخش، از حافظه DDR۳ تشکیل شده تا به مدیریت فلش NAND کمک کند. در این میان بسیاری از سلول های تک سطحی (SLC) به عنوان بافر عمل می کنند تا عملیات خواندن و نوشتن در حافظه NAND با سرعت بیشتری انجام شود.
برخی درایوهای SSD حتی از الگوریتم فشرده سازی داده نیز استفاده می کنند تا انجام عملیات زباله روبی، به طول عمر SSD آسیب کمتری وارد کند.
جزییات ریزتر در مورد کنترل کننده های SSD به طور کلی در دسترس نیستند چرا که کمپانی های سازنده، هر کدام نتیجه تلاش خود در این بخش را رمز گذاری می کنند.
بیشتر سرعت درایوهای SSD مربوط می شود به سیستم کنترل کننده این درایوها و مشخصا شرکت های سازنده علاقه ای ندارند رقبایشان، بتوانند به راحتی به راهکارهای آنها دست پیدا کنند.
جاده پیش رو
فلش های NAND یک پیشرفت عالی نسبت به هاردهای HDD به شمار می روند اما این محصولات دارای چالش ها و مشکلاتی هم هستند.
ظرفیت درایوهای SSD بالاتر خواهد رفت و قیمت پرداختی از سوی کاربر به ازای هر گیگابایت نیز مشخصا در آینده کاهش می یابد. اما از لحاظ قیمتی، همواره و در سال های پیش رو، مشخصا صرفه با هاردهای HDD خواهد بود.
این در حالیست که پروسه ساخت فلش های NAND با نانومترهای کوچکتر نیز به یک چالش بزرگ تبدیل شده است و اکنون حافظه های یاد شد که با فناوری ۲۰ نانومتری به تولید رسیده اند، از سرعت و قدرت کمتری نسبت به نمونه هایی که با فناوری ۴۰ نانومتری تولید شده اند برخوردارند اما ظرفیت در نمونه های ۲۰ نانومتری افزایش یافته.
بدیهی است که در آینده ای نه چندان دور، گونه ای از تکنولوژی به شکل فراگیر از راه خواهد رسید که می تواند باعث از میان برداشته شدن حافظه های NAND شود.
حال یا RAM های مغناطیسی و یا حافظه های تغییر حالت دهنده که هم نقش حافظه اصلی را در یک کامپیوتر ایفا می کنند و هم می توانند در نقش حافظه RAM به اجرای نقش خود بپردازند. در حال حاضر هر دوی این تکنولوژی ها در مراحل اولیه خود هستند و تا تجاری شدن آنها باید مدتی صبر کرد.
حالا کار به جایی رسیده که دیگر نیازی نیست ۱۰ الی ۱۵ میلی ثانیه در انتظار HDD باشیم تا فایل مورد نظرمان را پیدا کند و سپس بخواهد آن را اجرا کند. اکنون این زمان به لطف SSD ها، به شکل قابل توجهی کاهش یافته. از این تغییر و جهش بزرگ، لذت ببرید.
گذر از میلی ثانیه به میکروثانیه مهم است اما رسیدن به نانوثانیه از میکروثانیه، چندان هم برای انسان قابل تشخیص نیست. در حال حاضر درایوهای SSD مبتنی بر تکنولوژی NAND باید جز انتخاب های اول شما باشند؛ انتخابی که تا چهار الی پنج سال آینده تغییری در آن ایجاد نخواهد شد.
ارسال نظر