SSD، پايان عمر هارديسك؟!


 

نويسنده : سامي لويان




 

نگاهي به فناوري هاي موجود در SSD
 

افزايش حجم ذخيره سازي و كاهش قيمت هارديسك ها موجب محبوبيت اين وسايل در چند سال گذشته شده است، دروصورتي كه كارايي پايين، آسيب پذيري در مقابل صدمات فيزيكي، مصرف توان بالا و ابعاد بزرگ از عوامل هستند كه موجب شده تا متخصصين راهكار جديدي براي جبران اين نقايص ارائه كنند. درايوهاي SSD محصولات جديدي هستند كه عده اي عقيده دارند توسط آن ها مي توانند تحول عظيمي در بخش ذخيره سازي اطلاعات كامپيوتر فراهم كنند. از آنجا كه SSDها توسط شركتهاي سازنده چيت ست هاي حافظه عرضه شده اند، بيش دارند. تصور مي كنيد كدام يك از قطعات كامپيوتر در طي چند سال گذشته شامل كمترين پيشرفت وتحول شده است؟
اگر پاسخ شما فاپي درايو است. بايد گفت كه فلاپي درايو در مسير منقرض شدن قدم بر ميدارد و شايد در سالهاي آينده ديگر نامي از اين وسيله نباشد، اما وسيله اي كه سيستم هاي امروزي و قطعاً كامپيوترهاي آينده به آن نيازمند هستند و طي چند سال گذشته شامل هيچ گونه تحول بنياديني نشده، هاردديسك است. افزايش حجم ذخيره سازي تنها فاكتوري بوده كه در طي اين چند سال شاهد آن بوده ايم، به طوري كه اكنون هاردديسكهايي با ظرفيت 1/5 ترابايت توليد ميشوند. از طرفي تنها تحول درجهت پيشرفته كارايي اين قطعه، حركت از IDE به SATA بوده كه به طور قطع ميتوان گفت اين پيشرفت نيز موجب تحول چشمگيري در اين قطعه كامپيوتري نشده است(هاردديسك هاي مبتني بر IDE از نظر كارآيي با نوع SATA تفاوت چشمگيري ندارند).
امروزه هارد ديسكها تبديل به يك گلوگاه براي كامپيوترها شده اند، زيرا با افزايش كارايي بردازنده ها، حافظه ها و... هنوز شاهد كارايي پايين اين وسيله هستيم، اما دنياي ذخيره سازي روزهاي حاسي را پيش روي خود دارد. زيرا وسيله ذخيره سازي جديدي به نام (Solid State Disk) به بازار عرضه نشده كه نگاههاي بسياري را به خود معطوف كره است. به طوري كه در اذهان علاقمندان به دنياي كامپيوتر اين سؤال را تداعي كرده كه آيا پايان عمر هاردديسك ها فرا رسيده است؟ ما دراين مقاله قصد داريم به بررسي عمكرد SSDها بپردازيم و آنها را از نظر كارايي با هاردديسك هاي رايج مقايسه كرده و سپس بهترين SSD رايج در بازار را نيز به شما معرفي كنيم.

معرفي
 

براي آشنايي با درايوهاي SSD ابتدا لازم است بدانيد كه اين درايوها دو نوع (SLC(Single Level Cell و (MIC(Multi Level Cell توليد ميشوند كه از نظر ساختار با يكديگر تفاوت اندكي دارند.
در ادامه مقاله به بررسي تفاوت كلي آن ها خواهيم پرداخت، اما اكنون تنها اين نكته را در ذهن خود داشته باشيد كه SSDها داراي دو نوع مختلف به نامهاي SICو MLCهستند (تصويريك)
درايوهاي SSD از حافظه هاي فلش NAND با ماسفتهاي N-Channel ساخته ميشوند (حافظه هايي كه ابتدا در Flash Memoryها به كارگرفته شد و امروزه نيز از آ‹ها در كارتهاي حافظه و فلش مموري هاي USB نيز استفاده ميشود). اين حافظه ها در حقيقت نوع مشخص از EEPROM يا همان حافظه هاي فقط خواندني قابل برنامه ريز و پاك شدن هستند. شكل زير يك ماسفت N-Channel كه كوچكترين جزء سخت افزاري يك SSD است را نشان ميدهد.(تصويردو)
هرسلول حافظه شامل يكي از اين ترانزيستورها است. نحوه ذخيره سازي اطالاعات دراين ترانزيستورها به اين صورت است كه با اعمال ولتاژ كافي به پايه گيت، ميدان الكتريكي قدرتمندي ايجاد شده و الكترونها از لايه اكسيد عبور كرده و به Floating Gate وارد ميشوند. در اين حالت داده درون يك سلول نوشته ميمشود، با حذف ولتاژ، الكترون ها در Floating Gate باقي خواهند ماند. اعمال ولتاژ به كانال (Channel) به جاي گيت، بايوس را معكوس خواهد كرد و الكترون ها در جهت مخالف حركت مي كنند به طور كلي ،اين روش نحوه عملكرد حافظه فلش است كه دروضعيت (0و1) را فراهم مي كند و درخلاف حافظه هاي DRAM كه با قطع ولتاژ، داده ها درون آنها پاك ميشود. يك سلول حافظه فلش NAND حتي اگر فاقد توان نيز باشد، ميتواند داده ها را درخود ذخيره كند.

MLC وSLC
 

در SSDهاي امروزي از نوع فلش NAND استفاده ميشود: SLC و MLC. تفاوت بين اين دو، در ميزان اطالعات ذخيره شده در هر سلول است.
در نوع SLC در هر سلول يك بيت داده ذخيره ميشود، درحالي كه درحافظه MLC دو بيت در هر سلول قابل ذخيره شده است.
نكته جالب توجه اين كه SLC و MLC از نظر ابعاد، فضاي يكساني را اشغال مي كنند يا به عبارتي از نظر اندازه يكساني هستند. با اين تفاوت كه MLC ميتواند از فضاي قابل استفاده به طور مؤثرتري بهره برده ودو برابر SLC اطلاعات را در خود ذخيره كند. از آنجا كه SLCها تنها داراي دو وضعيت (0و1) هستند، به دو ولتاژ نياز دارند، درحالي كه MLCها داراي چهار وضعيت (10،01،00 و 11) هستند اين موضوع موجب شده تا سرعت خواندن / نوشتن و همچنين زمان دسترسي بين اين دو محصول متفاوت باشد.(تصويرسه)
جدول شماره يك تفاوت كارايي بين SLC وMLC را نمايش ميدهد.
مدت زمان صرف شده جهت پاك كردن اطلاعات بين SLC وMLC نسبت به SLC دو برابر و زمان نوشتن آن چهار برابر است. البته مقادير نشان داده شده در جدول شماره يك با حقيقت تفاوت دارد و آنها را تنها براي روشن شدن موضوع نشان داده ايم، زمان نوشتن نهصد ميكروثانيه براي يك MLC خيلي سريع تر از زمان نوشتن يك هاردديسك مكانيكي است.
بزرگ ترين مزيت يك SIC كارايي بالاتر آن نيست، بلكه طول عمر بيشتر آن است.
براي مشخص كردن طول عمر حافظه فلش ابتدا لازم است به بررسي چگونگي سازماندهي آنها دريك درايو ذخيره سازي بپردازيم.

سلسله مراتب فلش و آسب ديدن داده ها
 

دربخش قبل اشاره كرديم كه يك سلول فلش مي تواند يك يا دو بيت داده را باتوجه به اين كه SLC باشد يا MLC درخود ذخيره كند با دركنار يكديگر قرار دادن تعدادي از اين سلولها، صفحه (Page) تشكيل ميشود يك «صفحه» كوچكترين بخش يك فلش NAND است كه ميتوان اطلاعات را درون آن نوشت. اندازه هر صفحه در MLCها برابربا چهار كيلوبايت است. با قراردادن تعدادي از اين صفحات در كنار يكديگريك بلوك (Block) ايجاد ميشود به طور كلي، بلوكهاي SSD امروزي داراي 128 صفحه هستند بنابراين حجم هر بلوك برابر با 512 كيلوبايت است (128صفحه x چهار كيلوبايت روي SSDها نوشته ميشوند. درحالي كه در زمان پاك كردن، داده ها به صورت 512 كيلوبايتي از SSD پاك ميشوند. اكنون دليل اختلاف كارايي بين زمان نوشتن و پاك كردن داده ها را متوجه شده ايد. در ادامه در مورد نحوه پاك كردن داده ها از SSD توضيحات بيشتري را ارائه خواهيم كرد(تصوير چهار).
بلوك ها درون Planeها گروه بندي ميشود و هسته فلش NAND شامل چندين Plane است.( تصويرپنج) هر چيپ ست NAND مي تواند شامل يك، دو يا چهار هسته باشد و در نهايت نيز از تركيب اين چيپ ست ها، SSD به وجود مي آيد، اما اكنون اجازه دهيد به اين موضوع بپردازيم كه هنگام پاك كردن داده ها از SSD چه اتفاقي مي افتد.
براي نوشتن داده ها روي حافظه فلش ابتدا ميدان الكتريكي ايجاد ميشود و پس از عبور از الكترون ها از سد لايه اكسيد، داده ها درون ترانزيستور ذخيره ميشوند. براي پاك كردن داده ها نيز دقيقاً همين اتفاقات رخ ميدهد، اما در حهت معكوس. مشكلي كه اينجا وجود دارد اين است كه بعد از چندين مرتبه نوشتن و پاك كردن داده از يك سلول، لايه اكسيد خاصيت خود را به تدريج از دست ميدهد و ديگر نمي تواند از ورود الكترون ها به لايه گيت جلوگيري كند. به عبارت ساده تر، ديگر قادر به نوشتن داده جديدي در سلول نخواهيد بود در فلش هاي MCL تقريباً بعد از ده هزار مرتبه نوشتن و پاك كردن هر سلول، لايه اكسيد خاصيت خود را از دست ميدهد. در فلش هاي SLC اين زمان بعد از حدود صد هزار مرتبه فرا ميرسد. از آنجا كه طول عمر SSDها محدود است. فرآيند نوشتن و پاك كردن هر سلول بايد به دقت كنترل شود. توجه كنيد كه تعداد دفعات خواندن سلول ها به هيچ عنوان روي طول عمر آنها تأثير نمي گذارد و تنها عمليات نوشتن و پاك كردن است كه موجب كاهش طول عمر ميشود.
البته اين نكته را در نظر داشته باشيد، هنگامي كه در محيط سيستم عامل، داده اي را از روي SSD پاك مي كنيد در حقيقت داده از روي SSD پاك نمي شود و تنها بلوك هاي مربوط به آن در فهرست بلوك هاي قابل نوشتن قرار مي گيرند. داده ها زماني از بلوك پاك ميشوند كه قصد نوشتن مجدد در ان بلوك را داشته باشيد. همه SSDها از روش يكساني براي پاك كردن داده ها استفاده نمي كنند. اين كه چطور و چه زماني داده ها درون يك بلوك پاك ميشود، توسط ضريب نوشتن SSD مشخص ميشود. به عنوان مثال، اگر قصد داشته باشيد يك فايل شانزده كيلوبايتي را درون SSD بنويسيد، كنترلر كل يك بلوك درون SSD را ميخواند، چهار صفحه آن را تغير مي دهد، بلوك را از SSD پاك مي كند، سپس بلوك جديد را با چهار صفحه تغيير يافته مي نويسد. با توجه به اندازه بلوك ها و صفحات در SSDهاي شركت اينتل، به اين معني است كه براي نوشتن بعنوان مثال يك فايل شانزده كيلوبايتي ، عملاً بايد 512 كيلوبايت روي SSD نوشته شود- يك ضريب نوشتن 22 در 0 باتوجه به اين كه اندازه بلوك ها در سازندگان مختلف متفاوت است، اين ضريب نيز در محصولات آن ها تغييرمي كند.
حال تصور كنيد يك فايل هشت كيلوبايتي درون SSD كپي (نوشته) شده است. اين فايل درون دو صفحه قرار ميگيرد. هنگامي كه قصد داريد اين فايل ها را پاك كنيد، SSD اين دو صفحه را به عنوان غير فعلا مشخص ميكند، اما عملاً محتويات درون آنها را پاك نمي كند، در حقيقت SSD منتظر خواهد ماند تا درصدي از صفحات درون يك بلوك به عنوان غيرفعال مشخص شود ( به عنوان مثال هشتاد صفحه). سپس داده هاي درون بلوك پاك خواهند شد و داده هاي جديد روي صفحات آن نوشته ميشوند. SSD توسط اين عمل تعداد دفعاتي كه يك بلوك پاك ميشود را محدود كرده و به اين صورت طول عمر SSD افزايش پيدا مي كندو(تصوير شش)
درابتداي مقاله گفتيم كه SSDها داراي سرعت نوشتن پايين هستند، اما اكنون اجازه دهيد يبكار ديگر مراحل نوشتن داده ها دروين يك SSD را با يكديگر بررسي كنيم، براي نوشتن داده ها در SSD ابتدا بايد بلوك خوانده شود، سپس بلوك مورد نظر پاك شده و بعد از آن بلوك جديد همراه با داده هاي جديد نوشته شود. اگر هريك از اين مراحل به زمان نياز داشته باشند. مدت زماني طول خواهد كشيد تا داده ها روي SSD نوشته شوند. بنابراين اكنون دليل سرعت پايين نوشتن در SSDها برايتان مشخص شده است.
متأسفانه ما هيچ گونه اطلاعاتي از كنترلر ديگر سازندگان SSDها ندارمي، اما اينتل اظهار مي كند كه كليه SSDهاي اين شركت داراي ضريب نوشتن بين بيست الي چهل هستند كه موجب افزايش طول عمر درايوها ميشود.
همان طور كه گفتيم بلوك هاي واقع شده روي فلش ها را به تعداد دفعات محدودي ميتوان نوشت و بعد از آن، بلوك توانايي ذخيره سازي داده ها را از دست ميدهد SSDها تا حدي هوشمند هستندو از الگوريتم محافظت از فرسودگي استفاده مي كنند. اين درايوها تا هنگامي كه تمامي بلوك هاي آن ها نوشته نشود، هيچ داده اي را پاك نخواهد كرد. بعنوان مثال، فرض كنيد كاربري يك فايل دو مگابايتي را از اينترنت روي درايو SSD كه تا به حال از آن استفاده نشده، دانلود ميكند. در اين هنگام داده ها فرضاً در بلوهاي 10، 11، 12 و13 قرار ميگيرند، اما بعد از مشاهده فايل دانلود شده، كاربر متوجه ميشود كه فايل مذكور اشتباها دانلود شده و آن را از SSD پاك مي كند ويك فايل دو مگابايتي ديگر را دوباره دانلود مي كند. اكنون كنترلر اين فايل را در ادامه بلوك هاي قبلي مي نويسد. يعني بلوك هاي 14، 15، 16 و17، در واقع بلوك هاي ابتدايي (10،11،12و 13) تا هنگامي كه تمامي بلوك ها يكبار نوشته نشوند، بار ديگر استفاده نخواهند شد. بنابراين درحالي كه MLCها يك طول عمر ده هزار سيكل دارند، به واسطه الگوريتمهاي محافظت از فرسودگي سال هاي زيادي عمر خواهند كرد.
از آنجا كه حداكثر زمان ضمانت براي هاردديسك ها پنج سال است، اينتل ادعا مي كند كه اگر به طور روزانه بيست گيگابايت داده روي SSDهاي اين شركت نوشته شود، آنها حداقل پنج سال عمر خواهند كرد. همچنين وعده داده كه در اينده نزديك اين ميزان را به پنج برابر برساند يا به عبارتي ميتوان روزانه صد گيگابايت داده را روي يك MLC SSD بنويسيد و مطمئن باشيد كه در طي پنج سال هيچ گونه صدمه اي نخواهند ديد. درايوهاي اينتل و دگير سازندگان، حداكثر سه سال ضمانت خواهند داشت اما بعيد به نظر ميرسد كاربري به طور روزانه صد گيگابايت داده را روي SSD خود بنويسد.

هنگام كه يك SSD صدمه مي بيند، چه اتفاقي مي افتد؟
 

هنگامي كه يك هاردديسك صدمه مي بيند، همه مي دانند كه چه اتفادقي مي افتد. شما يك روز كامپيوترتان را روشن مي كنيد و مي بينيد سيستم عامل بوت نمي شود و در برخي مواقع نيز حتي هاردديسك توسط كامپيوتر شناسايي نمي شود، اما طول عمر درايوهاي SSD قابل پيش بيني تر است و برخلاف هاردديسك به سادگي ميتوان تشخيص داد كه صول عمر اين درايوها رو به اتمام است. بنابراين هنگامي كه طول عمر يك درايو SSD به پايان مي رسد، چه اتفاقي مي افتد؟ يك SSD خوب داراي الگوريتم محافظت از فرسودگي خوب است و اين امكان را فراهم مي كند كه همه بلوك ها درون درايو به طور يكسان استفاده شوند. بنابراين آنها تقريباً دريك زمان صدمه مي بينند. درايوهاي SSDطوري طراحي شده اند كه درصورتي كه يك سلول آن ها صدمه ببيند، دگير قابل پاك شدن نخواهند بود. بنابراين هيچگاه كاربرد اطلاعات درون SSD خود را از دست نمي دهد و تنها اتفاقي كه مي افتد اين است كه ديگر قادر به نوشتن اطلاعات درون آن نيست و پيغماي توسط سيستم عامل مبني بر اين كه عمليات نوشتن به طور كلي انجام نگرفته، ظاهر مي شود. در شماره بعد به بررسي فني تعداد از SSDهاي موجود در بازار و مقايسه كارايي آنها خواهيم پرداخت.
منبع:نشریه عصر شبکه شماره 89