এনিয়াক সেকেন্ডে হাজার হাজার হিসাব করতে পারলেও তার একটি মারাত্মক সীমাবদ্ধতা ছিল: প্রোগ্রামের কোনো মেমোরি বা স্মৃতি তার ছিল না। কামানের হিসাব থেকে পরমাণু বোমার হিসাব করতে গেলে প্রকৌশলীদের কয়েক দিন ধরে হাত দিয়ে শত শত ভারী তার টেনে টেনে প্লাগবোর্ডের সংযোগ বদলাতে হতো। ১৯৪৫ সালে হাঙ্গেরিয়ান-আমেরিকান মহাজ্ঞানী জন ভন নিউম্যান এই অচলাবস্থার এক বৈপ্লবিক সমাধান দিলেন: যে মেমোরির ভেতর হিসাবের ডেটা বা সংখ্যা থাকে, সফটওয়্যারের নির্দেশাবলীকেও ঠিক সেই একই মেমোরির ভেতর বাইনারি কোড হিসেবে সংরক্ষণ করো।
১. স্টোরড-প্রোগ্রাম ধারণা এবং এডভাক (EDVAC) রিপোর্ট
ম্যানহাটন প্রজেক্টে পরমাণু বোমার জটিল সমীকরণ সমাধানের সময় জন ভন নিউম্যান এনিয়াকের পরবর্তী মডেল এডভাক (EDVAC – Electronic Discrete Variable Automatic Computer)-এর নকশা নিয়ে একার্ট ও মকলির সাথে বিস্তারিত আলোচনা করেন। ১৯৪৫ সালের জুনে তিনি এই আলোচনার সারসংক্ষেপ হিসেবে লেখেন ১০১ পৃষ্ঠার একটি দলিল: ফার্স্ট ড্রাফট অব আ রিপোর্ট অন দ্য এডভাক।
দলিলটির কভারে কেবল ভন নিউম্যানের নাম থাকায় এই নকশাটি ইতিহাসে চিরদিনের জন্য ভন নিউম্যান আর্কিটেকচার (Von Neumann Architecture) নামে অমরত্ব পায়।
কম্পিউটারের পাঁচটি অঙ্গ
ভন নিউম্যান মানব স্নায়ুতন্ত্রের সাথে তুলনা করে কম্পিউটারকে পাঁচটি প্রধান অংশে বিভক্ত করেন:
- সেন্ট্রাল অ্যারিথমেটিক (ALU): যোগ, বিয়োগ, গুণ, ভাগ এবং বুলিয়ান যুক্তির কাজ সম্পাদন করে।
- সেন্ট্রাল কন্ট্রোল (Control Unit): মেমোরি থেকে নির্দেশাবলী একে একে পড়ে আনে, ডিকোড করে এবং সমস্ত অংশে ইলেকট্রিক্যাল সিগন্যাল পাঠায়।
- ইউনিফাইড মেমোরি (Memory): সবচেয়ে বৈপ্লবিক অংশ—যেখানে কোনো পার্থক্য ছাড়াই একই সাথে ডেটা এবং প্রোগ্রাম কোড সংরক্ষিত থাকে।
- ইনপুট ও আউটপুট: বাহ্যিক জগৎ থেকে তথ্য গ্রহণ এবং গণনার ফলাফল প্রদর্শন করার মাধ্যম।
ভন নিউম্যান বটলনেক
যেহেতু একটিমাত্র বাস বা তারের সংযোগের মাধ্যমে মেমোরি থেকে একই সাথে ডেটা এবং ইনস্ট্রাকশন দুটোই আনতে হয়, তাই সিপিইউ যতোই দ্রুত হোক না কেন, মেমোরি থেকে তথ্য আসার ধীরগতির কারণে প্রসেসরকে বসে থাকতে হয়। একে বলা হয় ভন নিউম্যান বটলনেক (Von Neumann Bottleneck)। আজকের আধুনিক কম্পিউটার আর্কিটেকচারেও ক্যাশ মেমোরি (L1/L2/L3 Cache) ব্যবহার করে এই বাধার মোকাবিলা করা হয়।
২. ক্লড শ্যানন এবং তথ্যতত্ত্বের (Information Theory) জন্ম
ঠিক একই সময়ে ১৯৪৮ সালে বেল ল্যাবসের গণিতবিদ ও ক্রিপ্টোগ্রাফার ক্লড শ্যানন প্রকাশ করেন তাঁর যুগান্তকারী গবেষণাপত্র: আ ম্যাথমেটিক্যাল থিওরি অব কমিউনিকেশন। পদার্থবিজ্ঞানে আইজ্যাক নিউটন যা করেছিলেন, তথ্যের জগতে ক্লড শ্যানন ঠিক তাই করেন: তিনি তথ্যের ভৌত সূত্র আবিষ্কার করেন।
শ্যানন তথ্যের পরিমাপক হিসেবে বিট (Bit – Binary Digit)-কে সংজ্ঞায়িত করেন। তিনি প্রমাণ করেন তথ্য কোনো অর্থ বা ভাবাবেগ নয়, তথ্য হলো অনিশ্চয়তা দূর করার গাণিতিক পরিমাপ। থার্মোডাইনামিক্সের এন্ট্রপির সাথে মিল রেখে তিনি সূত্রবদ্ধ করেন ইনফরমেশন এন্ট্রপি (Information Entropy):
$$H(X) = -\sum_{i=1}^{n} P(x_i) \log_2 P(x_i)$$যদি কোনো ঘটনা ১০০% নিশ্চিত হয় ($P = ১$), তবে তার এন্ট্রপি হলো ০ বিট; আর একটি নিখুঁত মুদ্রার টসে হেড বা টেলের অনিশ্চয়তা দূর করতে ঠিক ১ বিট তথ্যের প্রয়োজন হয়। শ্যানন আরও প্রমাণ করেন বিখ্যাত শ্যানন-হার্টলি উপপাদ্য (Shannon-Hartley Theorem):
$$C = B \log_2 \left(1 + \frac{S}{N}\right)$$শব্দযুক্ত বা নয়েজি চ্যানেলের মধ্যেও ব্যান্ডউইথ ($B$) এবং সিগন্যাল-টু-নয়েজ অনুপাত ($S/N$) জানা থাকলে ত্রুটিহীন তথ্য স্থানান্তর করা সম্ভব। এটিই আজকের ইন্টারনেট, ফাইবার অপটিক এবং ওয়্যারলেস ৫জি যোগাযোগের মূল চালিকাশক্তি।
৩. ম্যানচেস্টার বেবি: প্রথম স্টোরড-প্রোগ্রামের বিজয়
১৯৪৮ সালের মাঝামাঝি পর্যন্ত স্টোরড-প্রোগ্রাম কম্পিউটারের মূল বাধা ছিল কার্যকর ইলেকট্রনিক মেমোরির অভাব। ম্যানচেস্টার বিশ্ববিদ্যালয়ের ফ্রেডি উইলিয়ামস এবং টম কিলবার্ন একটি সাধারণ ক্যাথোড-রে টিউবের (CRT) পর্দায় ইলেকট্রন চার্জের ফোঁটা ফেলে তৈরি করেন উইলিয়ামস-কিলবার্ন টিউব মেমোরি।
এই মেমোরির কার্যকারিতা পরীক্ষা করার জন্য তাঁরা তৈরি করেন একটি ছোট্ট পরীক্ষামূলক কম্পিউটার: ম্যানচেস্টার বেবি (Manchester Baby / SSEM)।
১৯৪৮ সালের ২১ জুন, সোমবার সকালে মানব ইতিহাসের সবচেয়ে স্মরণীয় ঘটনাটি ঘটে। টম কিলবার্ন একটি ১৭-লাইনের প্রোগ্রাম তৈরি করেন, যার কাজ ছিল বারবার বিয়োগের মাধ্যমে $২^{১৮} = ২৬২,১৪৪$-এর সর্বোচ্চ ভাজক (Factor) খুঁজে বের করা।
কিলবার্ন সুইচের মাধ্যমে মেমোরিতে প্রোগ্রামটি ইনপুট করে স্টার্ট বাটনে চাপ দেন। সিআরটি মনিটরের স্ক্রিনে ইলেকট্রনের আলো জ্বলতে জ্বলতে প্রায় ৩৫ লাখ ধাপ গণনা সম্পন্ন করে। ঠিক ৫২ মিনিট পর যন্ত্রটি স্বয়ংক্রিয়ভাবে থেমে যায়। পর্দায় ভেসে ওঠে নিখুঁত সঠিক উত্তর: $১৩১,০৭২$।
মানব ইতিহাসে প্রথমবারের মতো কোনো ইলেকট্রনিক যন্ত্রের স্মৃতিতে সংরক্ষিত একটি সফটওয়্যার প্রোগ্রাম মানুষের কোনো প্রকার হস্তক্ষেপ ছাড়াই পুরোপুরি একা একা একটি কঠিন গাণিতিক সমস্যার সমাধান করে সঠিক উত্তর জানিয়ে দিল। বিশ্ব প্রবেশ করল সত্যিকারের সফটওয়্যার বিপ্লবের যুগে।
প্রধান একাডেমিক তথ্যসূত্র
- von Neumann, J. (1945). First Draft of a Report on the EDVAC. University of Pennsylvania.
- Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379–423.
- Williams, F. C., & Kilburn, T. (1949). A storage system for use with binary-digital computing machines. Proceedings of the IEE, 96(40), 81–100.
- Lavington, S. (1998). A History of Manchester Computers. The British Computer Society.