کارتریج بازیها و تکنولوژیای برای ابدی کردن دادهها
کارتریجهای بازی احتمالاً مقاومترین روش در میان روشهای مرسوم در ذخیرهسازی باشند. این کارتریجها اگر محکم ضربه نخورند یا امواج الکتریکی شدیدی به لبهی اتصالشان وارد نشود، تا مدتی طولانی میتوانند دادهها را ذخیره نگه دارند. نتیجتاً دادههای درون آنها نیز ماندگار باقی خواهند ماند؛ فرقی نمیکند کارتریجهای یک آتاری ۲۰۰۶ در اواخر دهه ۱۹۷۰ میلادی باشد یا کارتریج نیتندو ۶۴ در دهه ۱۹۹۰.
راز آنها در ROMهای پوششی (یا همان MROM)(۱) نهفته است که در واقع نوعی تراشهی حافظهی صرفاً خوانشی (Read-only) هستند. آنها را میتوان نرمافزاری دانست که به یک سختافزار (حافظه) تبدیل شدهاند. هنگام تولید تراشهها، با فلزکاریِ اتصالات، یک لایهی پوششی مخصوص برای هر ست داده استفاده میشود. چنین پروسهی ساختی، ذخیره شدن دادهها برای مدت زمانی طولانی در آنها را تضمین میکند. طول عمر این کارتریجها به اندازه پردازندهی خود کنسول است. البته به دلیل هزینههای مربوط به تولید، این تراشه حالت سفارشی دارد و نمیتوان روی چنین تکنولوژی برای استفاده در پروژههای شخصی، حساب باز کرد.
با وجود ارزش MROMها و مقاوم بودن حافظهشان، آنها به مرور از رده خارج شدهاند و در دهههای اخیر ازشان کمتر استفاده میشود. شاید برایتان غافلگیر کننده باشد اگر بدانید محصولاتی که امروزه مشتریها استفاده میکنند طول عمر بسیار کمتری دارند و بسته به شرایط محیطی دادههای موجود در آنها خیلی راحت طی یک سال یا بیشتر، ممکن است خراب شوند.
با این حساب، اگر بخواهیم دادههای صرفاً خوانشی داشته باشیم که مدت زمان طولانی بتوانند دوام بیاورند، باید چه کنیم؟
انواع بهحافظهسپاری
حافظهها به شکلهای مختلفی وجود دارند: MROM و PROM، در دستهی «یک بار نصب شدنی» قرار میگیرند، در حالی که بعضیهای دیگر را میتوان چندین بار نوشت. EPROM(۲) و EEPROM از این نوع هستند: در اولی برای پاک کردن محتوا نیازمند نور UV هستیم و در دومی میتوان محتوا را با جریان الکتریکی از میان برد (آن E اضافه یعنی همین). حافظهی آهنربایی را میتوان آسانترین نوع برای خواندن، نوشتن و بازنویسی در نظر گرفت، به همین دلیل است که نوار آهنربایی، دیسکهای فلاپی و درایوهای سخت به عنوان حافظههای مرسوم در چندین مدیوم استفاده میشوند.نوع دیگری هم وجود دارد که حافظهشان به چشمبهمزدنی پاک میشوند و نیازمند اتصال دائمی به منبع قدرت برای حفظ کردن دادههای خود هستند. SRAM و (S)DRAM را میتوان از این نوع حافظهها دانست.
اینکه از چه نوع حافظهای استفاده میکنیم به نیاز فرد بستگی دارد. برای حافظهی سیستم اصولاً از RAM استفاده میشود چونکه زمان دیر-کرد آن کوتاه است و اجازهی دسترسی به داده به صورت تصادفی را میدهد. این در حالی است که برای حافظه طولانی مدت (یعنی چیزی که با ریست کامپیوتر پاک نشود)، از حافظه آهنربایی استفاده میشود و در میان آنها NAND Flash اخیراً به محبوبیت بالایی رسیده است که قرابت زیادی با EEPROM دارد.
همچنین باید اشاره کرد سامانههای ورودیای مثل BIOS وجود دارند که باید طول عمرشان از خود سیستم بیشتر باشد، چرا که بووت کردن سیستم بطور کلی به آنها وابسته است. برای چنین دادههایی قبلاً از EPROM استفاده میشد که با حضور EEPROM، حدود یکی دو دهه قبل از رده خارج شد. نگهداری داده توسط EEPROM حدود ۱۰ سال برآورد شده است و پس از آن ممکن است دادهها از بین بروند.
دلیل اصلی برای از بین رفتن داده در EPROM، EEPROM و دستگاههای ذخیره سازی مشابه که بر اساس دروازه شناور MOSFET (۴) ساخته شدهاند، از بین رفتن شارژ ذخیره شده در چیزی است که میتوان آن را اساساً یک خازن بسیار کوچک دانست این اتفاق هم با گذر زمان ممکن است روی بدهد و هم با خسارات وارد شده از پاک یا اضافه کردن دادههای جدید. بنابراین گزینهی خوبی برای ذخیرهی دادهها در بلند مدت نیستند.
احیای درایوهای حالت جامد
گاه پرسیده میشود که اگر کارتریجها آنقدر مقاوم هستند و لودینگ ندارند، پس چرا دیگر ازشان در کنسولهای بازی استفاده نمیشود؟ دلیل این اتفاق را میتوان در اوایل دهه ۹۰ میلادی جست، زمانی که نینتندو و سونی روی پروژهی شوم SNES-CD کار میکردند. در این دوره کمپانی سگا، افزونهی SEGA CD را عرضه کرد، کمپانی Hudson Soft افزونهی PC Engine CD-Rom را منتشر کرد و سونی هم با عرضه کنسولهای پلی استیشن اولین سری از کنسولهای بدون کارتریج را روانهی بازار کرد. مزیت اصلی سیدی رامها نسبت به کارتریج، حافظه ۶۵۰ مگابایتی موجود در دیسک بود که در قیاس با چند ده مگابایتِ کارتریج، به وضوح برتری داشت.
ظهور ویدیوهای فول-موشن و ویژگیهای مشابه، زمینهی رقابت کنسولی در دهه ۱۹۹۰ را داغ کرده بود، تا حدی که وجود صفحات لودینگ و تغییر دیسک در بازیهای CD-Rom محور، خیلی به چشم نمیآمد و سبب دل مشغولی طرفداران و ناشران نشد. عرضهی سیدی رام، پروسهای ارزان و ساده بود و اگر وسط کار نیاز میشد چیز جدیدی به سیدی اضافه کرد مشکلی وجود نداشت [چون برعکس MROMها صرفاً خوانشی یا read-only نیست].
نقض قرض است که در حال حاضر، کمپانی سونی با کنسول پلی استیشن ۵ در تلاش است تا بطور کلی زمانهای انتظار و لودینگهای طولانی را از بین ببرد، پدیدهای که با استفاده از وسایل لیزری مثل بلوری محتمل شده است. این رویکرد چندین نسل است که ادامه دارد، و سونی و ماکروسافت در این بازه تلاش داشتند تا اجرای بازی از روی دیسک را کنار بگذارند و مثل کامپیوترهای شخصی به نصب دیسک روی بیاورند، چرا که از این طریق بازیها بسیار سریعتر روی هارد داخلی اجرا میشوند.
کنسولهای پلیاستیشن ۵ و اکسباکس سری اکس به جای هارد درایوهای مکانیکی از درایوهای مبتنی بر NAND Flash استفاده میکنند. این درایو اجازه میدهد تا بوسیله PCIe از GPU به شکل مستقیم برای انتقال حافظه استفاده شود؛ ویژگیای که در کامپیوترهای شخصی و DirectX با اصطلاح DirectStorage میشناسیم و اساساً یک نوع Direct Memory Access (به اختصار: DMA) است. میتوان گفت که حرکت از رسانههای ثابت به سمت استفاده از DMA برای بارگذاری بازیها، ما را دوباره به دوره کارتریجها برمیگرداند! تنها یک قدم اضافه وجود دارد، آن هم زمان انتظاری که برای نصب کردن از دیسک یا دانلود نرم افزار باید متحمل شد البته آن را هم میتوان با استفاده از کارت NVMe که هنگام اجرای بازی مستقیماً به کنسول وصل میشود، از قلم انداخت.
به دلیل مقاومت و توانایی نگهداری بالایی که کارتریجها دارند، اصلاً جای غافلگیری نیست اگر یک بازی کنسولی مربوط به سال ۱۹۷۹ را همین الان هم بتوان به راحتی اجرا کرد. چرا که انتظار نداریم ASICهای(۵) مربوط به دهه ۱۹۷۰، خود به خود به صورت جادویی پاک شده باشند. علاوهبراین، به شکلی مشابه، مطمئناً همین حالا هم میتوانیم از سیدیهای موزیک مربوط به دهه ۱۹۸۰ و نوار کاستهای صوتی دهه ۱۹۶۰، استفاده کنیم. با این حال، همین را نمیتوان در مورد سیدی رامهای سال ۱۹۹۸ گفت، حتی تصاویری که بر روی یک مموری کارت ۱۲۸ مگابایتی، چند سال پیش ذخیره کردهاید هم باقی ماندنشان در هالهای از ابهام قرارد دارد.
آیا میتوان آنها را اجرا کرد؟ اگر یک جواب کوتاه بخواهیم بدهیم، باید بگوییم «بستگی دارد». در واقع به شرایطی بستگی دارد که دستگاههای ذخیره سازی در آن قرار گرفته و نگهداری شدهاند.
سی دی رامها در میان بد نامترین ابزارهای ذخیرهسازی هستند و پدیدهی «فرسودگی دیسک»/disc rot، شایع است. در آنها میتوان داده را روی لایهی مخالف برچسب هم ذخیره کرد که یعنی اگر خش روی آن بیوفتد، به مرور دیسک غیر قابل خواندن میشود. دیویدیها سعی کردند تا حدودی این مشکل را برطرف کنند، اما از آنجایی که دیسکهای اپتیکال صرفاً چند لایهی به هم چسبیده هستند، پس همگی در معرض فرسایش یا لایه لایه شدن قرار دارند.
NAND Flashها و دیگر انواع حافظه که بر ذخیرهسازی شارژ الکتریکی (FGMOS یا دروازهی شناور ماسفت) تکیه میکنند، کارکردشان بسته به ساختارهای مقاومتی است که اطراف عنصر شارژ شده قرار دارند تا از نشت الکترونها جلوگیری کنند. متأسفانه یکی از ویژگیهای FGMOS باعث میشود تا نوشتن روی یک سلول باعث آسیب زدن به این ساختارهای مقاومتی میشود و شارژ را تغییر میدهد. حرکت صنعت به سوی استفاده از NAND Flashهای متراکمتر و کوچککردن ASICها باعث میشود این حافظهها سریعتر آسیب ببینند.
خلاصه بگوییم، مدت زمان نگهداری داده در یک دستگاه FGMOS به این موارد بستگی دارد: میزان داده نگهداری ابتدایی، منهای تعداد دفعاتی که دادهها کپی/پاک میشوند، ضرب در نوع حافظهی آن مموری. سادهتر بگوییم، هر چه داده بیشتری در یک دستگاه FGMOS قرار دهید، عملکرد نگهداری داده در آن ضعیفتر خواهد شد (این مورد در یک تحقیق هم نشان داده شده است)؛ به عنوان مثال، مموری کارت ۱۲۸ مگابایتی که پیشتر اشاره شد احتمالاً به خوبی کار بکند، چرا که پروسهی ساخت الگوهای آن قویتر و قدیمیتر است. سوال اصلی در اینجا این است که چند بار میتوان روی یک کارت داده ذخیره کرد قبل از اینکه کارآمدیاش را از دست بدهد؟
یک نکته نهایی که باید درباره دستگاههای FGMOS به آن اشاره کرد، تأثیرات دماست. در سال ۲۰۱۵، زمانی که مردم متوجه شدند درایوهای NAND Flash زمانی که در دمای ۳۰ درجه قرار میگیرند حدود یک سال عمر خواهند کرد شوکه شدند و بدتر اینکه اگر دما را تا ۵۵ درجه سانتی گراد افزایش بدهیم، این طول عمر تنها یک هفته خواهد بود! بدین ترتیب اگر در اوج تابستان خودرو خود را در معرض آفتاب پارک کرده باشید، مموری کارت یا SSD موجود در ماشین خیلی راحت طول عمرش برای نگهداری دادهها کم میشود.
جواب سادهای وجود ندارد
اینکه کدام یک از روشهای ذخیره داده مناسب است، بسته به احتیاجات فرد و وضعیت اقتصادی متفاوت خواهد بود. برای تولیدهای با مقیاس بالا، MROMها هنوز هم مرسوم هستند، چرا که اجازه میدهند سیستم عاملها برای یک محصول به خوبی با بقیهی ASIC دلخواه ترکیب بشوند و این گارانتی وجود داشته باشد که محتوا هرگز دستکاری نمیشود. PROM هم یک گزینهی خوب دیگر است که بسیاری از فواید MROM را داراست، اما باید برای برنامهنویسی آن، یک قدم اضافه طی کرد.
برای اپلیکیشنهای پیش فرض، EEPROMهایی که مقاومت بالایی دارند (و معمولاً Flash نامیده میشوند) به طور معمول همزمان با PROM (تراشه یک بار نصب شونده) استفاده میشوند. یعنی EEPROM حداقل برای یک دهه عملکرد تضمین شده خواهد داشت، اما این قضیه برای PROMها نامحدود است.
در همین حین، کمپانی نینتندو برای کنسول دستی خود یعنی سوییچ از یک نوع فلش مموری به نام XtraROM از Macronix استفاده میکند که میتواند تا ۲۰ سال در دمای ۸۵ درجه سانتی گراد دوام بیاورد.
با کمی تحلیل این اعداد و با ارجاع به مقالهی AnandTech دربارهی نگهداری دادهی NAND Flash، بهنظر میرسد با کمی خوش شانسی میتوان از کارتریج کنسول نینتندو سوییچ برای مدتی حدود ۳۰ تا ۴۰ سال استفاده کرد. به شکلی مشابه کارتریجهای Atari و NES هنوز هم که هنوز است قابل استفاده هستند. اگر این کارتریجها در دمای اتاق و به شکلی مناسب نگهداری بشوند، مقاومت دادهی شگفتانگیزی دارند. با این فرض میتوان گفت که Macronix کار خود را به خوبی انجام داده است.
مریخگرد ناسا که Curiosity نام دارد، با وجود فلش مموری در دو تا از مرکزهای کامپیوتر اضافی خود به مشکل خورده است. غیرفعال کردن قسمتی از این حافظه به حل شدن مشکل کمک کرده بود، اما تیم Curiosity در تلاش است تا از راه دورْ مشکل را حل کند.
برنامه ریزی برای ثبات مورد نیاز شما
به عنوان نتیجهگیری میتوان گفت که اگر میخواهید یک وسیله را به فضا یا یک سیاره دیگر ارسال کنید، احتمالاً نیاز است که محتوای اساسی مورد نیاز مثل سیستم اجرایی و دیگر فایلهای هستهای را روی یک MROM یا PROM انتقال دهید. برای بازیهای ویدیویی کنسولی، پیشنهاد مناسب کمی سختتر است. در حال حاضر، روشهای ذخیره سازی در دنیای ویدیو گیم خوب است و مشکلی وجود ندارد. اما اگر سال ۲۰۴۰ یک کنسول نینتندو سوییچ خریدید و متوجه شدید دادههای موجود در آن خراب هستند، با واقعهای تراژیک روبرو خواهید شد.
اگر میخواهید دادههای خود را برای مدتی حدود یک دهه نگهداری کنید، در دمای اتاقْ مموری کارتها احتمالاً گزینههای بسیار خوبی باشند. البته حواستان باشد که برای اجرای سیستم روی مموری کارتها حساب باز نکنید، چرا که محیط گرم و صنعتی طول عمر دادههای شما را تا حد زیادی کم میکند.
میتوان انتظار داشت که در آیندهای نزدیک PCMها (به اختصار: Phase-Change Memory) (مثل 3D Xpoint) مزایایی را ارائه دهند که هم مقاومت دادهها در این حافظههای شبهآهنربایی بالا برود و هم عمر بیشتری کنند. با این وجود، عقل میگوید که بهتر است از دادههای خود بکآپ داشته باشید. اصلاً مهم نیست که کامپیوتر شما چقدر مقاوم و قوی است، همیشه احتیاط را در دستور کار خود قرار بدهید.
منبع: Hackaday
توضیحات مترجم
۱. مخفف Mask Read-Only Memory، حافظهای غیرفرّار است که در همان کارخانه برنامهریزی شده و بنابراین مشتری نمیتواند در محتوای آن دخل و تصرف کند (برای همین میگویند صرفاً خوانشی است). بایوس/BIOS در کامپیوترها، که حامل فریموری است که کامپیوتر با آن بوت میشود، یکی از همین نوع حافظههاست. از MROM بیشتر در دیوایسهایی استفاده میکنند که دادهها باید ایمن و بدون تغییر بمانند، مثل دیوایسهای پزشکی، سیستمهای اتوماتیو و تجهیزات صنعتی.
۲. مخفف Erasable Programmable Read-Only Memory، یک نوع حافظهی غیرفرّار دیگر است که برعکس MROMها، مصرفکننده هم میتواند دادههای درون آن را کم یا زیاد کند. اگر MROMها مثل لوح سنگی باشند که دیگر نمیشود نوشتهای را جایگزینشان کرد، EPROMها مثل وایتبوردی هستند که گرچه میتوان بارها و بارها نوشتههایش را پاک کرد و از نو نوشت اما دادههایش عمر زیادی ندارند.
۳. یک حافظهی غیرفرار دیگر که معمولاً در درایوهای حالت جامد (SSD)، یواسبی درایوها و مموری کارتها استفاده میشود. NAND فلشها، سلولها را بهطور الکتریکی شارژ میکنند تا دادهها در قالب اطلاعات باینری (صفر و یک) ثبت شوند. اگر MROMها لوح سنگی باشند و EPROMها مثل وایتبورد، NAND فلشها مثل قفسههای کتابخانه هستند: هر کتابخانه حکم یک سلول را دارد و میتوانید کتابهای مختلف (داده) در هر قفسه قرار دهید.
۴. floating-gate MOSFET: ترانزیستوری که شارژ و جریان الکترونها را کنترل میکند و معمولاً در حافظههای فلش مثل یواسبی درایوها و SSDها استفاده میشود. آنها را به چشم سطلی میشود دید که مقدار مشخصی آب نگه میدارند (شارژ). با کم یا اضافه کردن آب، جریان آب هم کنترل میشود. ماسفتها نقش مهمی در توسعهی حافظههای غیرفرّار داشتند و بدون آنها نمیشد به حافظههایی رسید که در صورت خاموش شدن کامپیوتر (یا کلاً بدون اتصال به منبع برق) بتوان دادهها را همچنان ذخیره نگه داشت.
۵. مخفف Application-specific integrated circuit، یک نوع مدار مجتمع (آیسی) است که همهمنظوره نیست و فقط برای هدف مشخصی ساخته شده است و بهخاطر اینکه پرسرعتتر است در مخابرات و خودروسازی و ماینینگ استفاده میشود.