تاریخچه نخستین کامپیوتر قابل برنامه‌پذیریزی؛ تحلیل مهندسی ۱۹۳۶ کنراد تسوزه و پیدایش معماری Z1

سال ۱۹۳۶ میلادی در تاریخ علوم مهندسی، مرز میان عصر «ماشین‌های حسابگر صلب» و «سیستم‌های پردازش منعطف» شناخته می‌شود. تا پیش از این تاریخ، ابزارهای محاسباتی تنها برای انجام وظایف مشخص و از پیش تعیین شده فیزیکی طراحی می‌شدند؛ به این معنا که برای تغییر نوع محاسبات، نیاز به تغییر چیدمان چرخ‌دنده‌ها یا قطعات مکانیکی بود. اما در این سال، دو رویداد موازی در آلمان و انگلستان، مفهوم «برنامه‌پذیری» را به واقعیت بدل کردند. کنراد تسوزه (Konrad Zuse) در برلین، ساخت اولین کامپیوتر مکانیکی باینری جهان با نام Z1 را آغاز کرد و هم‌زمان آلن تورینگ (Alan Turing)، مدل ریاضی «ماشین تورینگ» را ارائه داد که ثابت می‌کرد یک ماشین می‌تواند با خواندن دستورالعمل‌ها از روی یک نوار، هر مسئله منطقی را حل کند. این گذار از سخت‌افزارِ تک‌منظوره به سمت سیستمی که رفتار آن توسط «نرم‌افزار» هدایت می‌شد، زیربنای اصلی تمام تکنولوژی‌های دیجیتال امروزی است.

درک اهمیت سال ۱۹۳۶ مستلزم تحلیل فنی تفاوت میان یک «ماشین حساب» (Calculator) و یک «کامپیوتر برنامه‌پذیر» (Programmable Computer) است. در ماشین‌های حسابگر، مسیر جریان داده ثابت است، اما در سیستم برنامه‌پذیر، توالی عملیات (Sequence of Operations) توسط کدهایی تعریف می‌شود که جدا از بخش پردازشگر قرار دارند. کنراد تسوزه با نبوغ مهندسی خود دریافت که برای پایداری محاسبات، باید از سیستم دهدهی (Decimal) فاصله گرفت و به سمت منطق دوودویی یا باینری (Binary) حرکت کرد؛ تصمیمی که منجر به ساده‌سازی حیرت‌آور مدارهای منطقی و مکانیکی شد. در این مقاله، به بررسی دقیق معماری Z1، چالش‌های مهندسی تسوزه در استفاده از ورقه‌های فلزی به جای چرخ‌دنده و تأثیرات تئوریک مدل تورینگ بر معماری رایانه‌های اولیه می‌پردازیم.

۱- بحران محاسبات در دهه ۳۰؛ نیاز به اتوماسیون منطقی

در اواسط دهه ۱۹۳۰، مهندسان عمران و هوانوردی با حجم عظیمی از معادلات خطی روبرو بودند که حل دستی آن‌ها هفته‌ها به طول می‌انجامید. ابزارهای موجود در آن زمان مانند ماشین‌حساب‌های مکانیکی شرکت‌های بوروز (Burroughs) یا مونرو (Monroe)، کاربر را مجبور می‌کردند که هر مرحله از محاسبات را به صورت دستی وارد کند. مسئله اصلی، نبود «حافظه میانی» و «کنترل توالی» بود. کنراد تسوزه که خود مهندس سازه بود، متوجه شد که بخش بزرگی از کار مهندسی، تکرار روتین‌های مشخص ریاضی است. او به دنبال ساخت سیستمی بود که بتواند این توالی را ذخیره و بدون دخالت انسان اجرا کند. این نیازِ کاربردی، محرک اصلی اختراع اولین کامپیوتر برنامه‌پذیر شد.


خوب است بدانید:
کنراد تسوزه برای ساخت اولین نسخه کامپیوتر خود (Z1)، از اتاق نشیمن والدینش به عنوان کارگاه استفاده کرد. او هزاران قطعه فلزی را با اره دستی برش داد و به دلیل کمبود بودجه، از فیلم‌های عکاسی ۳۵ میلی‌متریِ باطله برای سوراخ‌کاری و ذخیره برنامه‌ها استفاده کرد؛ روشی که عملاً اولین فرم «حافظه فقط خواندنی» در تاریخ محسوب می‌شود.

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

۲- معماری فنی Z1؛ اولین پردازشگر باینری مکانیکی

ماشین Z1 که طراحی آن در سال ۱۹۳۶ نهایی شد، اولین دستگاهی بود که از سیستم «ممیز شناور» (Floating Point) برای محاسبات استفاده می‌کرد. این ماشین از ورقه‌های فلزی نازک که روی هم می‌لغزیدند ساخته شده بود تا منطق باینری را پیاده‌سازی کند. معماری Z1 شامل سه بخش اصلی بود: واحد کنترل، حافظه و واحد محاسبات (ALU). حافظه این دستگاه قادر بود ۶۴ عدد ۲۲ بیتی را ذخیره کند. ورودی داده‌ها از طریق یک صفحه کلید انجام می‌شد و خروجی بر روی لامپ‌های الکتریکی نمایش داده می‌شد. نکته حیرت‌انگیز این بود که Z1 کاملاً مکانیکی بود اما بر اساس اصول دیجیتال کار می‌کرد؛ یعنی قطعات آن فقط در دو وضعیت صفر یا یک قرار می‌گرفتند.

یکی از نوآوری‌های کلیدی در Z1، جدایی کامل واحد حافظه از واحد پردازش بود. تسوزه متوجه شد که برای انعطاف‌پذیری، ماشین باید بتواند داده‌ها را از یک آدرس مشخص در حافظه فراخوانی کند، روی آن‌ها عملیات انجام دهد و نتیجه را دوباره ذخیره کند. این همان ساختاری است که امروزه به نام «معماری فون نویمان» می‌شناسیم، در حالی که تسوزه سال‌ها پیش از فون نویمان، آن را به صورت مکانیکی پیاده کرده بود. با وجود اینکه Z1 به دلیل اصطکاک زیاد قطعات فلزی و نبود دقت در برش‌ها گاهی دچار گیر کردن (Jamming) می‌شد، اما اثبات کرد که محاسبات پیچیده علمی را می‌توان به یک توالی از عملیات‌های ساده منطقی تبدیل کرد.

۳- منطق دوودویی؛ چرا ۱۹۳۶ سال مرگ سیستم دهدهی بود؟

استفاده از سیستم باینری (Binary) بزرگ‌ترین جهش مهندسی در سال ۱۹۳۶ بود. ماشین‌های حسابگر قدیمی از چرخ‌دنده‌هایی با ۱۰ پله استفاده می‌کردند که ساخت و هماهنگ‌سازی آن‌ها بسیار دشوار بود. تسوزه با انتخاب سیستم باینری، از منطق «بله/خیر» استفاده کرد که در مکانیک به صورت «جلو/عقب» رفتن یک ورقه فلزی تعریف می‌شد. این سادگی به او اجازه داد تا گیت‌های منطقی (AND, OR, NOT) را به صورت فیزیکی بسازد. در واقع، Z1 اولین پیاده‌سازی سخت‌افزاریِ جبر بول (Boolean Algebra) در یک ماشین محاسباتی بود. این انتخاب فنی، راه را برای استفاده از رله‌های الکترومغناطیسی و بعدها ترانزیستورها هموار کرد، چرا که سوئیچ‌های الکتریکی ذتاً دو حالته هستند.

مهندسی باینری در سال ۱۹۳۶ به تسوزه اجازه داد تا عملیات پیچیده‌ای مانند ضرب و تقسیم را به مجموعه‌ای از جمع‌ها و تفریق‌های ساده تبدیل کند. او همچنین مفهوم «بیت علامت» (Sign Bit) را برای اعداد مثبت و منفی و «توان» (Exponent) را برای مدیریت ابعاد اعداد بزرگ به کار گرفت. این سطح از دقت ریاضی در یک ماشین مکانیکی بی‌سابقه بود. در حالی که دنیا همچنان به دنبال بهبود چرخ‌دنده‌های دهدهی بود، تسوزه با پذیرش منطق دوودویی، زبان آینده کامپیوترها را خلق کرد. این تصمیم نه تنها پیچیدگی مکانیکی را کاهش داد، بلکه قابلیت اطمینان (Reliability) سیستم را در برابر خطاهای جزئیِ فیزیکی افزایش داد.

۴- نوار پانچ؛ اولین رسانه ذخیره‌سازی برنامه

در ماشین Z1، برنامه (دستورالعمل‌ها) نه در حافظه داخلی، بلکه بر روی یک نوار کاغذی یا فیلم ۳۵ میلی‌متری سوراخ‌کاری شده قرار می‌گرفت. این نوار توسط یک خواننده مکانیکی قرائت می‌شد و به واحد کنترل دستور می‌داد که کدام گیت منطقی را فعال کند. این جداسازی «برنامه» از «ماشین»، جوهر اصلی مفهوم برنامه‌پذیری است. پیش از تسوزه ، ماشین‌هایی مانند موتور تحلیلی بابیج نیز از کارت‌های پانچ استفاده می‌کردند، اما تسوزه این ایده را با منطق باینری و معماری ثبات‌ها (Registers) ترکیب کرد تا سیستمی بسازد که بتواند حلقه‌های تکرار (Loops) و پرش‌های شرطی را به شکلی ابتدایی اجرا کند.

استفاده از نوار پانچ به عنوان حافظه جانبی، اجازه می‌داد تا بدون تغییر در ساختار فیزیکی ماشین، مسائل متفاوتی از محاسبات بالستیک تا تحلیل‌های سازه‌ای حل شوند. این نوارها در واقع اولین «نرم‌افزار»های واقعی تاریخ بودند. مهندسی این بخش شامل یک مکانیسم هماهنگ‌ساز (Synchronization) بود که حرکت نوار را با حرکت ورقه‌های حافظه و واحد محاسبات تراز می‌کرد. اگرچه Z1 در جریان جنگ جهانی دوم از بین رفت، اما اصول ذخیره‌سازی برنامه بر روی یک رسانه خارجی که در سال ۱۹۳۶ تثبیت شد، مستقیماً به پیدایش رایانه‌های بزرگ (Mainframes) و سپس کامپیوترهای شخصی در دهه‌های بعد منجر گردید.

۵- ماشین تورینگ؛ مدل ریاضی محاسبات عمومی در سال ۱۹۳۶

هم‌زمان با تلاش‌های عملی تسوزه در آلمان، آلن تورینگ در انگلستان مقاله‌ای با عنوان «درباره اعداد محاسبه‌پذیر» منتشر کرد که بنیان نظری علوم کامپیوتر را دگرگون ساخت. تورینگ در این مقاله، مفهوم «ماشین تورینگ» (Turing Machine) را معرفی کرد؛ یک مدل ذهنی که شامل یک نوار بی‌نهایت، یک هد خواندن و نوشتن و یک جدول دستورالعمل بود. اهمیت این مدل در آن بود که ثابت کرد هر تابعی که توسط انسان قابل محاسبه باشد، توسط یک ماشین برنامه‌پذیر نیز قابل اجراست. این مقاله برای اولین بار مفهوم «محاسبات عمومی» (Universal Computation) را تعریف کرد و نشان داد که برای حل مسائل مختلف، نیازی به ساخت ماشین‌های متفاوت نیست، بلکه تنها یک ماشین با برنامه‌های مختلف کافی است.


دانستنی نایاب:
آلن تورینگ در سال ۱۹۳۶ با معرفی مفهوم «مسئله توقف» (Halting Problem) ثابت کرد که هیچ الگوریتم عمومی وجود ندارد که بتواند تعیین کند آیا یک برنامه خاص در نهایت متوقف می‌شود یا برای همیشه اجرا خواهد شد. این کشف، مرزهای منطقی آن‌چه را که کامپیوترها «می‌توانند» و «نمی‌توانند» انجام دهند، برای همیشه مشخص کرد.

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

۶- مهندسی حافظه؛ از انبارهای داده تا ثبات‌های باینری

یکی از بزرگ‌ترین چالش‌های فنی در سال ۱۹۳۶، طراحی حافظه‌ای بود که هم‌زمان پایدار و قابل دسترسی سریع باشد. در ماشین Z1، واحد حافظه به صورت جداگانه طراحی شده بود و از ورقه‌های فلزی متقاطع برای ذخیره بیت‌ها استفاده می‌کرد. این حافظه مکانیکی شامل ۶۴ ردیف بود که هر کدام می‌توانستند یک عدد ممیز شناور را نگه دارند. مهندسیِ این بخش بسیار پیچیده بود؛ زیرا ورقه‌ها باید به گونه‌ای روی هم می‌لغزیدند که فقط با اعمال نیروی مکانیکیِ واحد کنترل، وضعیت آن‌ها تغییر کند. این اولین بار بود که مفهوم «آدرس‌دهی حافظه» به صورت باینری اجرا می‌شد.

در این سیستم، هر آدرس حافظه با یک ترکیب خاص از موقعیت‌های فیزیکی مشخص می‌شد. وقتی واحد کنترل آدرس خاصی را فراخوانی می‌کرد، میله‌های انتخاب‌گر (Selectors) حرکت کرده و داده‌ی ذخیره شده را به واحد محاسبات منتقل می‌کردند. این ساختار، پیش‌درآمدی بر حافظه‌های رم (RAM) امروزی بود که در آن هر سلول حافظه به طور مستقل قابل دسترسی است. تسوزه با تفکیک دقیق حافظه از پردازنده، گلوگاه‌های محاسباتی را شناسایی کرد و نشان داد که کارایی یک کامپیوتر برنامه‌پذیر نه تنها به سرعت پردازش، بلکه به معماری و سرعت دسترسی به حافظه وابسته است.

۷- مقایسه Z1 با موتور تحلیلی بابیج؛ جهش از آنالوگ به دیجیتال

چارلز بابیج در قرن نوزدهم «موتور تحلیلی» را طراحی کرده بود که از نظر تئوری برنامه‌پذیر بود، اما طراحی او بر پایه سیستم دهدهی و چرخ‌دنده‌های پیچیده بنا شده بود. در سال ۱۹۳۶، تسوزه با استفاده از سیستم باینری، از این پیچیدگی عبور کرد. در حالی که ماشین بابیج به هزاران چرخ‌دنده با دقت بسیار بالا نیاز داشت که ساخت آن‌ها در قرن ۱۹ غیرممکن بود، ماشین Z1 با ورقه‌های فلزی ساده و منطق دوودویی کار می‌کرد. این تفاوت در «انتخابِ مبنای ریاضی»، عامل اصلی موفقیت تسوزه در ساخت یک مدل عملیاتی در سال ۱۹۳۶ بود.

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

۸- نقش نوار فیلم ۳۵ میلی‌متری در خودکارسازی برنامه‌ها

انتخاب رسانه برای ذخیره برنامه در سال ۱۹۳۶، یک راهکار مهندسی مبتکرانه برای حل مشکل هزینه و در دسترس بودن بود. تسوزه به جای اختراع یک رسانه جدید، از فیلم‌های عکاسی ۳۵ میلی‌متری استفاده کرد. او با ایجاد سوراخ‌هایی روی نوار فیلم، کدهای دستوری را به ماشین وارد می‌کرد. هر ردیف از سوراخ‌ها نشان‌دهنده یک دستورالعمل (مانند جمع، تفریق یا خواندن از حافظه) بود. این روش، پایداریِ توالی عملیات را تضمین می‌کرد و به ماشین اجازه می‌داد تا بدون خطا، هزاران مرحله محاسباتی را به صورت متوالی انجام دهد.

این نوارها قابلیت بازتولید و ویرایش داشتند، که اولین گام در جهت اشتراک‌گذاری «نرم‌افزار» محسوب می‌شد. مهندسیِ بخش نوارخوان شامل مجموعه‌ای از پین‌ها بود که با عبور از سوراخ‌های فیلم، مدارهای مکانیکی را فعال می‌کردند. این سیستم، اولین فرم از «حافظه ترتیبی» (Sequential Memory) در یک کامپیوتر برنامه‌پذیر بود. تسوزه با این اختراع، وابستگی ماشین به اپراتور انسانی را قطع کرد و فرآیند محاسبات را به یک چرخه خودکار تبدیل نمود که تنها با تعویض نوار، وظایفش تغییر می‌کرد. این موفقیت فنی، مسیر را برای استفاده از نوارهای مغناطیسی در دهه‌های بعدی هموار کرد.

۹- فرجامِ برنامه؛ تثبیت منطق دیجیتال در مهندسی مدرن

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

سوالات متداول (Smart FAQ)

۱. چرا ماشین Z1 با وجود پیشرو بودن، در تاریخ علم کامپیوتر کمتر از ENIAC شناخته شده است؟
دلیل اصلی این گمنامی، شرایط جنگ جهانی دوم و تخریب نسخه اصلی Z1 در بمباران برلین بود که باعث شد دستاوردهای تسوزه تا سال‌ها پس از جنگ به خارج از آلمان راه نیابد. در مقابل، ENIAC یک پروژه دولتی بزرگ در آمریکا بود که با تبلیغات وسیع و به عنوان اولین کامپیوتر الکترونیکی معرفی شد، در حالی که تسوزه سال‌ها قبل به اصول برنامه‌پذیری باینری دست یافته بود. بازسازی Z1 در دهه ۸۰ میلادی توسط خود تسوزه ، جایگاه تاریخی او را به عنوان مخترع اولین کامپیوتر برنامه‌پذیر جهان تثبیت کرد.
۲. آیا تکنولوژی کوانتومی در حال حاضر می‌تواند اصول منطقی تورینگ در سال ۱۹۳۶ را نقض کند؟
خیر، کامپیوترهای کوانتومی «مدل تورینگ» را نقض نمی‌کنند، بلکه سرعت اجرای برخی محاسبات را به طرز چشمگیری افزایش می‌دهند. هر مسئله‌ای که توسط یک کامپیوتر کوانتومی قابل حل باشد، تئوریکاً توسط یک ماشین تورینگ کلاسیک نیز (البته با زمان بسیار طولانی‌تر) قابل حل است. در واقع، محاسبات کوانتومی تنها یک بسط در بهره‌وری محاسباتی هستند و همچنان در چارچوب «تز تورینگ-چرچ» که در همان دوران شکل گرفت، باقی می‌مانند.
۳. باور غلط: آیا کامپیوترهای اولیه به دلیل استفاده از لامپ خلاء بزرگ بودند؟
این یک تصور نیمه‌درست است؛ زیرا اولین کامپیوترهای برنامه‌پذیر مانند Z1 اصلاً الکترونیکی نبودند و از هزاران ورقه فلزی مکانیکی ساخته شده بودند که حجم زیادی اشغال می‌کردند. لامپ‌های خلاء در نسل‌های بعدی (مانند Z3 یا ENIAC) برای افزایش سرعت جایگزین قطعات مکانیکی شدند و به دلیل حرارت زیاد و ابعاد فیزیکی‌شان، باعث غول‌آسا شدن ماشین‌ها گشتند. کوچک‌سازی واقعی نه با حذف مکانیک، بلکه با اختراع ترانزیستور و سپس مدارهای مجتمع (IC) محقق شد.
۴. چرا تسوزه به جای رله‌های الکتریکی، ابتدا Z1 را به صورت کاملاً مکانیکی ساخت؟
دلیل اصلی این انتخاب، محدودیت‌های مالی و دسترسی دشوار به هزاران رله الکترومغناطیسی گران‌قیمت در دوران پس از بحران اقتصادی بود. تسوزه با تکیه بر دانش مهندسی مکانیک خود، سعی کرد منطق باینری را با ورقه‌های فلزی ارزان‌قیمت پیاده‌سازی کند تا صرفاً صحت ایده «برنامه‌پذیری» را اثبات نماید. او پس از موفقیت مفهومی Z1، در نسخه‌های بعدی (Z2 و Z3) به سرعت به سمت استفاده از رله‌های تلفنی و سیستم‌های الکترومکانیکی حرکت کرد.
۵. مفهوم «ممیز شناور» که در سال ۱۹۳۶ توسط تسوزه استفاده شد، چه اهمیتی در محاسبات مدرن دارد؟
ممیز شناور (Floating Point) به ماشین اجازه می‌دهد تا اعداد بسیار بزرگ یا بسیار کوچک را با دقت ثابت نمایش دهد، که برای محاسبات علمی و مهندسی حیاتی است. پیش از تسوزه ، اکثر ماشین‌ها از «ممیز ثابت» استفاده می‌کردند که محدوده محاسباتی آن‌ها را به شدت محدود می‌کرد. امروزه تمام پردازنده‌های گرافیکی (GPU) و واحدهای پردازش مرکزی (CPU) بر اساس استانداردهای تکامل‌یافته‌ی همان ممیز شناوری کار می‌کنند که تسوزه در Z1 طراحی کرده بود.
۶. تفاوت بنیادی «معماری تسوزه » با «معماری فون نویمان» در چیست؟
در معماری تسوزه ، برنامه (دستورالعمل‌ها) روی یک رسانه خارجی (نوار فیلم) قرار داشت و از داده‌های حافظه جدا بود، اما در معماری فون نویمان، برنامه و داده هر دو در یک حافظه واحد ذخیره می‌شوند. سیستم تسوزه به دلیل جدایی فیزیکی مسیر برنامه و داده، از نظر تئوریک به «معماری هاروارد» نزدیک‌تر است. این تفکیک در سال ۱۹۳۶ برای ساده‌سازی مکانیکی انجام شد، اما امروزه در سیستم‌های نهفته (Embedded Systems) برای افزایش امنیت و سرعت همچنان استفاده می‌شود.
۷. آیا ماشین تورینگ در سال ۱۹۳۶ یک دستگاه فیزیکی بود که ساخته شد؟
خیر، ماشین تورینگ یک «آزمایش ذهنی» و یک مدل ریاضی انتزاعی بود که برای اثبات مفاهیم منطقی و محدودیت‌های محاسباتی طراحی شد. تورینگ هرگز قصد ساخت فیزیکی آن را نداشت، زیرا نوار آن باید «بی‌نهایت» می‌بود تا بتواند هر محاسباتی را انجام دهد. با این حال، تمام کامپیوترهای فیزیکی که بعداً ساخته شدند، در واقع نسخه‌های محدود و فیزیکی از همان ماشین انتزاعی تورینگ هستند که بر اساس منطق او کار می‌کنند.
۸. چگونه سوراخ‌های روی فیلم ۳۵ میلی‌متری به کدهای قابل فهم برای ماشین تبدیل می‌شدند؟
هر ردیف روی نوار فیلم دارای ۸ جایگاه برای سوراخ کردن بود که یک کد باینری ۸ بیتی را تشکیل می‌داد؛ پین‌های مکانیکی با رسیدن به هر سوراخ، به داخل فرو رفته و یک سوئیچ فیزیکی را فعال می‌کردند. این سوئیچ‌ها تعیین می‌کردند که کدام بخش از واحد محاسبات (مثلاً واحد جمع) در چرخه بعدیِ حرکتِ میل‌لنگِ اصلی فعال شود. این سیستم دقیقاً مانند کدهای دستوری (Op-codes) در پردازنده‌های امروزی عمل می‌کرد که تعیین می‌کنند کدام مدار منطقی باید جریان الکتریسیته را دریافت کند.
۹. نقش «ساعت سیستم» در ماشین‌های مکانیکی مانند Z1 چگونه پیاده‌سازی می‌شد؟
در کامپیوترهای مدرن، ساعت توسط یک نوسان‌ساز کوارتز ایجاد می‌شود، اما در Z1، فرکانس ساعت توسط یک موتور الکتریکی (یا حتی چرخاندنِ دستیِ یک اهرم) تامین می‌شد. هر دور چرخش محور اصلی، معادل یک «سیکل ساعت» بود که تمام قطعات مکانیکی را برای انجام یک گام محاسباتی هم‌گام می‌کرد. سرعت Z1 حدود یک هرتز (یک عملیات در ثانیه) بود که در مقایسه با گیگاهرتزهای امروزی بسیار ناچیز است، اما برای محاسبات مهندسیِ آن دوران یک جهش بزرگ محسوب می‌شد.
۱۰. آیا برنامه‌های نوشته شده برای Z1 قابلیت «پرش شرطی» (If-Then) را داشتند؟
نسخه اولیه Z1 در سال ۱۹۳۶ فاقد قابلیت پرش شرطی به صورت خودکار بود و دستورالعمل‌ها را به صورت کاملاً خطی از روی نوار اجرا می‌کرد. تسوزه در آن زمان متوجه نیاز به این قابلیت شده بود، اما پیچیدگی مکانیکیِ لازم برای عقب و جلو بردن نوار بر اساس نتیجه یک محاسبه، بسیار زیاد بود. این قابلیت بعداً در مدل‌های پیشرفته‌تر و با جایگزینی رله‌های الکترومغناطیسی به تکامل رسید و راه را برای برنامه‌نویسیِ ساختاریافته هموار کرد.
۱۱. دقت محاسباتی Z1 در مقایسه با استانداردهای امروزی چقدر بود؟
ماشین Z1 از کلمات ۲۲ بیتی استفاده می‌کرد که شامل ۱ بیت علامت، ۷ بیت برای توان و ۱۴ بیت برای مانتیس (Mantissa) بود. این ترکیب اجازه می‌داد تا اعدادی در محدوده $10^{-20}$ تا $10^{20}$ با دقت حدود ۴ رقم اعشار نمایش داده شوند. این دقت برای محاسبات استاتیک پل‌ها و آیرودینامیک هواپیماهای آن دوران کاملاً کافی و بسیار دقیق‌تر از خط‌کش‌های محاسباتیِ آنالوگی بود که مهندسان به طور معمول استفاده می‌کردند.
۱۲. «زبان برنامه‌نویسی» در سال ۱۹۳۶ به چه شکلی بود؟
در سال ۱۹۳۶ چیزی به نام زبان برنامه‌نویسی سطح بالا وجود نداشت و برنامه‌نویسی به صورت «کد ماشین» خالص (Machine Code) انجام می‌شد. مهندس باید مستقیماً آدرس‌های حافظه و کدهای عملیاتی را به صورت باینری روی کاغذ می‌نوشت و سپس آن‌ها را روی نوار فیلم سوراخ می‌کرد. تسوزه بعدها اولین زبان برنامه‌نویسی سطح بالای جهان با نام «پلان‌کالکول» (Plankalkül) را طراحی کرد که ریشه در تجربه‌های اولیه او با همین کدهای باینریِ سخت‌افزاری داشت.
۱۳. چرا استفاده از «ورقه‌های فلزی لغزان» در Z1 یک بن‌بست مهندسی محسوب می‌شد؟
مشکل اصلی ورقه‌های لغزان، اصطکاک زیاد و تجمع خطاهای مکانیکی بود؛ هرچه تعداد قطعات بیشتر می‌شد، نیروی مورد نیاز برای حرکت دادن آن‌ها افزایش می‌یافت و احتمال گیر کردن ماشین بالا می‌رفت. تسوزه دریافت که برای ساخت کامپیوترهای بزرگتر، باید از «اجزای بدون حرکت فیزیکی» استفاده کرد. این بینش درست، او را به سمت رله‌های الکترومغناطیسی سوق داد که در آن‌ها به جای حرکت دادن یک ورقه بزرگ، تنها یک کنتاکت کوچکِ سبک جابجا می‌شد، که سرعت و قابلیت اطمینان را هزاران برابر افزایش داد.
۱۴. آیا میراثی از Z1 در کامپیوترهای امروزی باقی مانده است؟
بله، مهم‌ترین میراث Z1، استانداردسازی «منطق باینری» و «محاسبات ممیز شناور» است که قلب تپنده تمام پردازنده‌های فعلی را تشکیل می‌دهند. همچنین ایده جدایی واحد حافظه، واحد کنترل و واحد محاسبات که تسوزه در سال ۱۹۳۶ به صورت فیزیکی پیاده کرد، هنوز هم در معماری ریزپردازنده‌ها رعایت می‌شود. ما امروزه در حال اجرای همان رویاهای تسوزه هستیم، اما با ابزارهایی که به جای ورقه‌های فلزی، از اتم‌های سیلیکون ساخته شده‌اند.

گفتگو درباره مبانی؛ شما دنیایِ بدونِ برنامه را چگونه می‌بینید؟

ماشین Z1 و تئوری‌های تورینگ در سال ۱۹۳۶، سنگ‌بنای دنیایی را گذاشتند که امروز در آن زندگی می‌کنیم؛ دنیایی که در آن سخت‌افزار بدون روحِ نرم‌افزار، تنها توده‌ای از ماده است. به نظر شما اگر به جای سیستم باینری، مهندسان همچنان بر سیستم دهدهی اصرار می‌ورزیدند، تکنولوژی امروز چه شکلی بود؟ آیا فکر می‌کنید مینیاتوری‌سازی مکانیکی می‌توانست تا ابد ادامه یابد یا بن‌بست الکترونیک اجتناب‌ناپذیر بود؟ نظرات و تحلیل‌های فنی خود را در بخش دیدگاه‌ها با ما به اشتراک بگذارید.

دکتر علیرضا مجیدی
دکتر علیرضا مجیدی
پزشک، نویسنده و بنیان‌گذار وبلاگ «یک پزشک»
دکتر علیرضا مجیدی، نویسنده و بنیان‌گذار وبلاگ «یک پزشک».
با بیش از ۲۰ سال نویسندگی «ترکیبی» مستمر در زمینهٔ پزشکی، فناوری، سینما، کتاب و فرهنگ.
باشد که با هم متفاوت بیاندیشیم!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
[wpcode id="260079"]