اگر امروز بخواهیم یک برنامه را ذخیره کنیم، نخستین چیزی که به ذهنمان می‌رسد حافظه SSD، فلش یا فضای ابری است. اما در دهه ۱۹۶۰، زمانی که ناسا قصد داشت انسان را به ماه بفرستد، هیچ‌کدام از این فناوری‌ها وجود نداشت. کامپیوتری که مأموریت تاریخی آپولو را هدایت کرد، نرم‌افزار خود را نه روی تراشه، بلکه در دل هزاران سیم مسی بافته‌شده در میان هسته‌های مغناطیسی نگه می‌داشت.

Core Rope Memory؛ حافظه‌ای فقط‌خواندنی از جنس سیم

این فناوری که با نام Core Rope Memory شناخته می‌شود، توسط مؤسسه فناوری ماساچوست (MIT) به‌طور اختصاصی برای کامپیوتر هدایت آپولو (AGC) طراحی شد. این حافظه نوعی حافظه فقط‌خواندنی بود که ساختاری کاملاً متفاوت با حافظه‌های نیمه‌هادی امروزی داشت.

ساختار آن از صدها هسته کوچک مغناطیسی حلقوی و سیم‌هایی تشکیل شده بود که با دقتی میکروسکوپی از میان این هسته‌ها عبور می‌کردند. منطق ذخیره اطلاعات بسیار هوشمندانه و در عین حال فیزیکی بود: اگر سیم از داخل هسته عبور می‌کرد، مقدار «۱» و اگر از کنار هسته رد می‌شد، مقدار «۰» ثبت می‌شد. در واقع، الگوی بافتن سیم‌ها خودِ کد برنامه بود و هر رشته سیم، بخشی از نرم‌افزار آپولو را به شکل سخت‌افزاری حمل می‌کرد.

برد مدار بافته‌شده Apollo AGC-Block II با سیم‌های متراکم و پیچیده

۳۶ هزار کلمه‌ای که با نیم مایل سیم ساخته شد

بر اساس اسناد فنی MIT، حافظه ثابت کامپیوتر هدایت آپولو از سه بلوک اصلی یا Rope تشکیل می‌شد. هر کدام از این بلوک‌ها هزاران کلمه ۱۶ بیتی را در خود جای می‌داد و در مجموع، ظرفیت نسخه نهایی AGC به حدود ۳۶ هزار کلمه می‌رسید.

شاید این عدد امروز ناچیز به نظر برسد، اما برای هدایت یک فضاپیما به مقصد ماه کافی بود. نکته شگفت‌انگیز، ابعاد فیزیکی این حافظه بود؛ تنها یک ماژول حافظه می‌توانست شامل صدها هسته مغناطیسی و بیش از نیم مایل (حدود ۸۰۰ متر) سیم مسی باشد که همگی باید با دست و با دقتی بی‌نقص بافته می‌شدند.

برنامه‌نویسی با نخ و سوزن!

در پروژه آپولو، برنامه‌نویسی فقط نوشتن کد روی کاغذ نبود. پس از اینکه کد نهایی توسط مهندسان تأیید می‌شد، این کد به دستورالعمل‌های بافت تبدیل می‌شد. سپس اپراتورهای متخصص که اغلب زنان بافنده ماهر کارخانه Raytheon بودند، سیم‌ها را طبق الگوی دقیق از میان هسته‌ها عبور می‌دادند؛ کاری که به آن لقب LOL Memory یا Little Old Lady Memory داده بودند.

داخل خبر (468x60)

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

کامپیوتری که «کم آورد» اما مأموریت را نجات داد

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

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

بررسی‌های بعدی ناسا تأیید کرد که عملکرد کامپیوتر دقیقاً مطابق طراحی بوده است. علت هشدار نیز مشخص شد: رادار ملاقات فضاپیما اطلاعات اضافی تولید می‌کرد که بار پردازشی را بالا برده بود، اما سیستم با موفقیت آن را مدیریت کرد.

میراثی فراتر از یک حافظه

امروز قدرت پردازشی یک ساعت هوشمند هزاران برابر قوی‌تر از کامپیوتر هدایت آپولو است، اما نمی‌توان نبوغ نهفته در Core Rope Memory را نادیده گرفت. این فناوری نشان داد که چگونه می‌توان با ترکیب خلاقانه سخت‌افزار و نرم‌افزار، بر محدودیت‌های زمان غلبه کرد. نرم‌افزار آپولو فقط کد نبود؛ بخشی از آن به معنای واقعی کلمه در تار و پود سخت‌افزار تنیده شده بود و همین درهم‌تنیدگی، انسان را به ماه رساند.