4 মিনিট

ভন নিউম্যান এবং সেই স্টোরড-প্রোগ্রাম কম্পিউটার যা সফটওয়্যার সম্ভব করলো

জানুন কীভাবে স্টোরড-প্রোগ্রাম ধারণা—যেটি প্রায়ই জন ভন নিউম্যানের সঙ্গে যুক্ত—পুনরায় ব্যবহারযোগ্য সফটওয়্যার, সাধারণ-উদ্দেশ্য কম্পিউটার এবং আধুনিক প্রোগ্রামিংকে সম্ভব করল।

ভন নিউম্যান এবং সেই স্টোরড-প্রোগ্রাম কম্পিউটার যা সফটওয়্যার সম্ভব করলো

কেন স্টোরড-প্রোগ্রাম ধারণা গুরুত্বপূর্ণ

আধুনিক কম্পিউটিংয়ের কেন্দ্রবিন্দুতে একটি সহজ প্রশ্ন আছে: কি কারণে একটি মেশিন বারবার নতুন করে তৈরি না করে অনেক ভিন্ন কাজ করতে সক্ষম হলো? প্রা্‌চীন ইলেকট্রনিক কম্পিউটার দ্রুত হিসাব করতে পারত, কিন্তু “কাজ বদলানো” প্রায়শই মানে ছিল যন্ত্রের সেট‑আপ শারীরিকভাবে বদলানো। স্টোরড-প্রোগ্রাম ধারণা সেই মোড়ল যেখানে কম্পিউটারগুলি প্রকৃতই প্রোগ্রামেবল হয়ে উঠল।

স্টোরড-প্রোগ্রামটি সরল ভাষায়

একটি স্টোরড-প্রোগ্রাম কম্পিউটার একই ধরনের অভ্যন্তরীণ মেমোরিতে কাজের নির্দেশনা (প্রোগ্রাম) এবং প্রোগ্রাম যে ডেটার উপর কাজ করে তা রাখে। হার্ডওয়্যার পুনঃসংযোগ বা প্যানেল ম্যানুয়ালি কনফিগার করার বদলে আপনি মেমরিতে নতুন নির্দেশনাসেট লোড করে অন্য কাজ চালাতে পারেন।

এটি এখন সাধারণ মনে হতে পারে, কিন্তু এটি একটি গভীর পরিবর্তন:

  • কম্পিউটারটি একক–উদ্দেশ্য মেশিন নয়, বরং একটি সাধারণ-উদ্দেশ্য যন্ত্র হয়ে ওঠে।
  • প্রোগ্রামগুলো তথ্য হয়ে ওঠে—আপনি এগুলো সম্পাদনা, সংরক্ষণ, কপি ও শেয়ার করতে পারেন।
  • সফটওয়্যার ডেভেলপমেন্ট একটি বাস্তবগত কার্যক্রম হয়ে ওঠে: কম্পাইল, টেস্ট এবং উন্নয়ন করা যায় মেশিন পুনর্নির্মাণ ছাড়াই।

এই আর্টিকেলে আমরা কী দেখব (এবং কেন এখনও তা প্রাসঙ্গিক)

এটি কেবল ঐতিহাসিক কৌতুক নয়। স্টোরড-প্রোগ্রাম ধারণাই ব্যাখ্যা করে কেন “সফটওয়্যার” হার্ডওয়্যার থেকে আলাদা একটি জিনিস হিসেবে আছে, এবং কেন আজ একটি ডিভাইসের আপডেট করা হলে চিপ বদল না করেই নতুন ফিচার আনতে পারে।

পরবর্তী অংশগুলোতে আমরা দেখাবো প্রাচীন কম্পিউটারগুলো কী সমস্যার সম্মুখীন হয়েছিল, স্টোরড-প্রোগ্রাম পদ্ধতি কী বদলে দিয়েছে, কোন দল ও নথি (EDVAC রিপোর্টসহ) ধারণাটি পরিষ্কার করেছে, এবং কিভাবে “ভন-নিউম্যান আর্কিটেকচার” একটি বহুল ব্যবহৃত নকশাকে বোঝাতে শুরু করল।

ক্রেডিট নিয়ে শর্ট নোট

যদিও জন ভন নিউম্যানের নাম স্টোরড-প্রোগ্রাম কম্পিউটিংয়ের সঙ্গে দৃঢ়ভাবে জড়িত, ক্রেডিট একটি বিস্তৃত দলের ও যুগের মধ্যে ভাগ করা। অনেক গবেষক একই সময়ে অনুরূপ ধারণায় convergence করছিল—এই প্রবন্ধ সেই প্রসঙ্গকে চোখে রাখে, কারণ দলগত প্রচেষ্টা বোঝা সহজ করে দেয় কিভাবে ধারণাটি দ্রুত ছড়িয়ে পড়ে এবং ডিফল্ট মডেল হয়ে ওঠে।

স্টোরড-প্রোগ্রামের আগে: যখন কাজ বদলানো মানে ছিল রিওয়্যারিং

স্টোরড-প্রোগ্রাম ধারণার আগে অনেক প্রাচীন কম্পিউটার এখনকার মত “সফটওয়্যার চালাত” না। এগুলো চমৎকার গতিতে হিসাব করতে পারত, কিন্তু কী করতে হবে বলতে প্রায়শই মেশিনটিই শারীরিকভাবে বদলাতে হতো।

বাস্তবে “হার্ডওয়্যার প্রোগ্রামিং”

একটি প্রচলিত পদ্ধতি ছিল প্লাগবোর্ড, প্যাচ কেবল, এবং সুইচ প্যানেল ব্যবহার। অপারেটররা সকেটের মধ্যে ক্যাবল যুক্ত করে, সুইচ সারি সেট করে, এবং মাঝে মাঝে টাইমিং ইউনিট সামঞ্জস্য করত যাতে সিগন্যাল সঠিক ক্রমে পৌঁছায়। “প্রোগ্রাম” ছিল ফাইল নয়—এটি একটি অস্থায়ী ওয়্যারিং ডায়াগ্রাম।

এই পদ্ধতিটি কার্যকর ছিল, কিন্তু এতে লুকানো খরচ ছিল: প্রতিটি নতুন কাজ একটি ছোট প্রকৌশল প্রকল্পে পরিণত হতো। অপারেশনগুলোর ক্রম বদলাতে দরকার হলে শত শত সংযোগ জাম্প করতে হতো। একটি ভুল সংযোগ সূক্ষ্ম ত্রুটি আনতে পারত, যা খুঁজে বের করা কঠিন—কারণ লজিক হার্ডওয়্যারে ছড়িয়ে ছিল, লিখিত পদক্ষেপে নয়।

কেন কাজ বদলানো ব্যয়বহুল ছিল

রিওয়্যারিংতে ঘণ্টা বা দিন লাগত, বিশেষ করে যদি মেশিনটি সতর্কভাবে পাওয়ারডাউন করে, রিওয়্যার করা ও পরীক্ষা করতে হতো। ফলে নমনীয়তা সীমিত ছিল: এসব মেশিন দীর্ঘ সময় একই ধরনের গণনাই করতো কারণ কাজ বদলানো এতই পরিপ্রেক্ষিত ছিল।

একটি সহজ উদাহরণ

ধরা যাক একটি মেশিন গুলি-তালিকা (artillery firing tables) তৈরির জন্য সেট করা—দীর্ঘ, পুনরাবৃত্তিমূলক গণনা একটি স্থির সূত্র দিয়ে। যদি গবেষকরা একই মেশিন দিয়ে জনগণনার জন্য বা সম্ভাব্যতা ট্যাবুলেশনের মতো ভিন্ন কাজ করতে চায়, তা দ্রুত “প্রোগ্রাম সম্পাদনা করে পুনরায় চালানো” ছিল না। অপারেশন ক্রম, মধ্যবর্তী স্টোরেজ ধাপ, এবং শর্তচিহ্ন সবই আলাদা হতে পারে—ফলে পুরো প্লাগবোর্ড পুনরায় ডিজাইন ও যাচাই করতে হতো।

এই দুনিই ছিল সেই উদ্দেশ্য থেকে পালানোর জন্য স্টোরড-প্রোগ্রাম কম্পিউটার ডিজাইন করা হয়েছে।

স্টোরড-প্রোগ্রাম কম্পিউটার: সরল ব্যাখ্যা

স্টোরড-প্রোগ্রাম কম্পিউটার এমন একটি মেশিন যেখানে নির্দেশনাগুলো (প্রোগ্রাম) একই ওয়ার্কিং মেমোরিতেই থাকে যেখানে প্রোগ্রামটি ব্যবহৃত ডেটা রাখা আছে। অর্থাৎ, কম্পিউটার “কি করবে” এবং “কিসের উপর কাজ করবে” আলাদা ভাবে বিবেচনা করে না—দুটোই মেমোরিতে বিটের ধাঁচে সংরক্ষিত।

এখানে “মেমরি” বলতে কী বোঝায়

প্রারম্ভিক কম্পিউটার pionearরা যখন মেমরি বলত, তারা বোঝাত কম্পিউটারের দ্রুত, সরাসরি ব্যবহারযোগ্য অভ্যন্তরীণ স্টোরেজ—আজকের RAM-র মতো সেই জায়গা যেখানে প্রসেসর দ্রুত পড়া ও লেখা করতে পারে।

এটি দীর্ঘমেয়াদি স্টোরেজ (হার্থ ড্রাইভ/SSD) থেকে আলাদা। ড্রাইভ পওয়ার বন্ধ থাকা অবস্থায় ফাইল রাখে, কিন্তু সেটা প্রসেসরের পরবর্তী নির্দেশ ফেচ করার এবং মধ্যবর্তী ফলাফল আপডেট করার জন্য তাত্ক্ষণিক স্ক্র্যাচপ্যাড নয়।

প্রধান ফলাফল: মেশিন বদলানো না করে কাজ বদলানো

একবার নির্দেশনাগুলো মেমোরিতে থাকলে, কাজ বদলানো সহজ হয়: আপনি মেমরিতে নতুন প্রোগ্রাম লোড করে চালাতে পারেন, হার্ডওয়্যার রিলেইন, রিওয়্যার বা শারীরিক কনফিগারেশন ছাড়াই। একই সাধারণ-উদ্দেশ্য মেশিন সকালে পে-রোল করতে পারে এবং বিকেলে ব্যালিস্টিক্স গণনা—কারণ কাজের “কীভাবে” কেবল বিটের একটি সেট যা বদলানো যায়।

একটি দৈনন্দিন উপমা

একটি রান্নাঘর কল্পনা করুন যেখানে রেসিপি এবং উপকরণ একই প্যান্ট্রিতে আছে। রাঁধুনি (প্রসেসর) বারবার প্যান্ট্রিতে (মেমরি) গিয়ে পরবর্তী রেসিপির ধাপ (নির্দেশনা) পড়ে এবং উপকরণ (ডেটা) নেয় বা আপডেট করে।

ভিন্ন একটি খাবার বানাতে চাইলে আপনি রান্নাঘর পুনরায় নকশা করেন না—শুধু অন্য রেসিপি ব্যবহার করেন।

জন ভন নিউম্যানের ভূমিকা (এবং কেন তার নাম লেগে গেল)

জন ভন নিউম্যান কম্পিউটার “আবিষ্কার” করেননি, এবং তিনি একা স্টোরড-প্রোগ্রাম ধারণা তৈরি করেননি। তিনি যা করেছেন—দক্ষভাবে—হল একটি প্রতিশ্রুতিশীল ধারণাকে পরিষ্কার নির্দেশে পরিণত করে অন্য মানুষকে বোঝানো এবং পুনরুত্পাদনের মত করে সচেতনভাবে উপস্থাপন করা।

প্রধান অবদানকারী—এবং অসাধারণভাবে কার্যকর যোগাযোগকারী

ভন নিউম্যান ছিলেন তৎকালীন যুদ্ধকালীন ও উত্তর-যুদ্ধকালীন কম্পিউটিং প্রকল্পগুলিতে গভীরভাবে জড়িত, দলগুলোকে পরামর্শ দিতেন এবং প্রাথমিক নকশার যৌক্তিক কাঠামো তীক্ষ্ণ করতেন। জটিল প্রযুক্তিগত পছন্দগুলো সাধারণ ও সংগঠিত ভাষায় বোঝানোর তার দক্ষতা গুরুত্বপূর্ণ ছিল, কারণ প্রারম্ভিক ইলেকট্রনিক কম্পিউটিং দ্রুত অগ্রসর হচ্ছিল এবং একাধিক দল একই সমস্যার সমাধান করছিল।

আরও গুরুত্বপূর্ণ, তিনি কীভাবে প্রোগ্রাম নির্দেশনাগুলো একই মেমোরিতে রাখা যেতে পারে তা সম্পর্কে প্রভাবশালী বর্ণনা লিখেছিলেন ও ছড়িয়েছিলেন। সেই স্পষ্ট ফ্রেমিং অন্যদেরকে ঐ পদ্ধতি আলোচনা, শেখানো ও অনুকরণে সহজ করল।

কেন তার নাম স্থায়ী হয়ে গেল

কেউই প্রথম আদ্যক্ষর ধারণাটির মালিকের নাম নিয়ে স্থায়ীভাবে পিচ্ছিল করে না, বরং সেই ব্যক্তির নাম টিকে থাকে যার বর্ণনা রেফারেন্স পয়েন্ট হয়ে ওঠে। ভন নিউম্যানের নথিপত্র প্লবিত উৎস ছিল—তাই পরে পাঠকরা প্রাকৃতিকভাবেই “স্টোরড-প্রোগ্রাম” বিন্যাসটিকে তার সাথে জুড়ে দিল।

এই লেবেল ইতিহাসকে সরল করে—“ভন-নিউম্যান আর্কিটেকচার” বলা সহজ—তবে এতে বাস্তবেই কি ঘটেছিল তা ঝাপসা হতে পারে।

একটি দলগত প্রচেষ্টা, একক বিপ্লব নয়

প্রারম্ভিক ইলেকট্রনিক কম্পিউটিং গণিতজ্ঞ, ইঞ্জিনিয়ার ও প্রোগ্রামারদের মিলিত প্রচেষ্টা ছিল। স্টোরড-প্রোগ্রাম ধারণা আলোচনা, খসড়া, প্রোটোটাইপ ও সংশোধনের মাধ্যমে পরিপক্ক হলো। ভন নিউম্যানের স্থায়ী ভূমিকা ছিল ওই ধারণাটি সঙ্কীর্ণ করে প্রচারিত করা—স্বতন্ত্রভাবে উদ্ভাবন নয়।

EDVAC রিপোর্ট এবং ধারণাটির পরিস্কার উল্লেখ

সহজে ডেপ্লয় ও হোস্ট করুন
সার্ভার সেটআপ না করেই আইডিয়া থেকে একটি হোস্টেড অ্যাপে পৌঁছে নিন।

EDVAC (Electronic Discrete Variable Automatic Computer) ছিল সেই প্রাথমিক পরো-যুদ্ধের প্রকল্পগুলোর একটি, যা “একবার-প্রস্তুত” মেশিন ছেড়ে আরও সাধারণ-উদ্দেশ্য ডিজাইনের দিকে এগিয়েছিল। হার্ডওয়্যার চেষ্টা সমতুল্যভাবে গুরুত্বপূর্ণ ছিল, কিন্তু নকশার ধারণাগুলো স্পষ্টভাবে লিখে রাখার সিদ্ধান্তও সমানভাবে গুরুত্বপূর্ণ ছিল। তখনো কম্পিউটার নির্মাণ পরীক্ষামূলক প্রকৌশলে সীমাবদ্ধ ছিল—জ্ঞান ল্যাব নোটবুক, মিটিং ও কয়েকজন বিশেষজ্ঞের মস্তিষ্কে আবদ্ধ থাকত। একটি রিপোর্ট ঐ ছড়িয়ে ছিটিয়ে থাকা অন্তর্দৃষ্টি অন্য দলগুলোর জন্য আলোচনার, সমালোচনার এবং পুনব্যবহারের যোগ্য করে তুলতে পারে।

EDVAC রিপোর্ট কী বলেছিল—গণিত ছাড়াই

First Draft of a Report on the EDVAC (সাধারণত “EDVAC রিপোর্ট” বলা হয়) ধারণাটিকে সহজভাবে উপস্থাপন করল: একটি কম্পিউটার উচিত যে প্রোগ্রাম নির্দেশনাগুলো একই ধরনের অভ্যন্তরীণ মেমোরিতে ডেটার সাথে রাখে। সেই মেমরি শুধু সংখ্যাগুলো ধরে রাখার জায়গা নয়—এটি সেই ধাপগুলোও ধরে রাখে যা মেশিনকে পরবর্তী কী করতে হবে তা বলে দেবে।

এই ফ্রেমিং একটি মেশিনকে নির্দিষ্ট‑উদ্দেশ্য যন্ত্র নয় বরং একটি সাধারণ মেশিন হিসেবে বোধ করায়—মেমরির মধ্যে যা আছে তা বদলে দিয়ে মেশিনকে পুনঃকাজে লাগানো যায়।

অন্যদের জন্য কেন এটি গুরুত্বপূর্ণ ছিল

ধারণাটির বাইরে রিপোর্টটি মানুষের মধ্যে কম্পিউটার নিয়ে কথা বলার উপায়ও মানকীভূত করল: মেমরি, কন্ট্রোল, অ্যারিথমেটিক, এবং ইনপুট/আউটপুট ভিন্ন কার্যকরী অংশ হিসেবে দেখা—এগুলো একসাথে কাজ করে। একটি সাধারণ শব্দভাণ্ডার ও বিস্তৃত পাঠকগোষ্ঠীর জন্য লিখিত বর্ণনা EDVAC-কে ব্যাখ্যা করা ছাড়াও বিস্তৃত ক্ষেত্রকে স্টোরড-প্রোগ্রাম কম্পিউটার বানানোর, তুলনা করার ও উন্নত করার একটি সাধারণ মানসিক মডেল দিল।

প্রাথমিক স্টোরড-প্রোগ্রাম চিন্তাধারার পেছনে কাজ করা দলের স্বীকৃতি

যেকোনো সময় সোর্স এক্সপোর্ট করুন
যখন প্রস্তুত, আপনার প্রকল্পের সোর্স কোড এক্সপোর্ট করে নিয়ন্ত্রণ রাখুন।

“কে স্টোরড-প্রোগ্রাম কম্পিউটার উদ্ভাবন করল?” বলে একটি একক নাম ভাবাটা সহজ, কিন্তু বাস্তবে বিজ্ঞান ও প্রকৌশল কমই একাই কাজ করে। ধারণাগুলো প্রায়ই একসাথে বিকশিত হয়, আলোচনা ও প্রমাণের মাধ্যমে পরিপক্ক হয়, এবং তখনই তা বিশ্বাসযোগ্য হয়ে ওঠে যখন সেটি কাজ করা হার্ডওয়্যারে প্রদর্শিত হয়।

মূল সহযোগী এবং সমান্তরাল প্রয়াস

জন ভন নিউম্যান স্টোরড-প্রোগ্রাম ধারণার সঙ্গে দৃঢ়ভাবে জড়িত, তবে শুরুতেই অনেক লোক ও দল ছিল:

  • J. Presper Eckert এবং John Mauchly (ENIAC/EDVAC কাজ): ব্যবহারিক ইলেকট্রনিক কম্পিউটারের ইঞ্জিনিয়ারিং তাগিদে কেন্দ্রীভূত ছিলেন।
  • Herman Goldstine: গণিতজ্ঞ ও ইঞ্জিনিয়ারদের মধ্যে সেতুবন্ধন হিসেবে কাজ করে, ধারণাগুলো দলগুলোতে ছড়িয়ে দিতে সহায়ক ছিলেন।
  • Arthur Burks: প্রাথমিক লজিকাল নকশায় অবদান রেখেছেন এবং পরে আর্কিটেকচারের ইতিহাস তুলে ধরেছেন।
  • Alan Turing: EDVAC-র আগে সাধারণ-উদ্দেশ্য গণনা এবং প্রোগ্রাম-নিয়ন্ত্রিত মেশিন সম্পর্কে প্রভাবশালী চিন্তা লিখেছেন।
  • Maurice Wilkes (EDSAC) এবং Frederic Williams & Tom Kilburn (Manchester): স্টোরড-প্রোগ্রাম সিস্টেমগুলো বাস্তবে চালানো যায় কিনা তা প্রমাণ করে, প্রাথমিক কাজের ডেমোনস্ট্রেশন এবং মেমোরি উন্নয়নে সহায়তা করেছেন।

“কে আবিষ্কার করল” জটিল কেন

স্টোরড-প্রোগ্রাম কম্পিউটার একটি একক অন্তর্দৃষ্টির ফল নয়। এটি (1) নির্দেশনাগুলোকে ডেটার মতো মেমোরিতে রাখার ধারণা, (2) নির্ভরযোগ্য মেমরি ও কন্ট্রোল ইউনিট নির্মাণের প্রকৌশল, এবং (3) ডিজাইনকে ব্যবহারযোগ্য করে তোলার প্রোগ্রামিং আচার-ব্যবহার—এসবের সমন্বয়। বিভিন্ন মানুষ বিভিন্ন অংশে অবদান রেখেছেন।

পরামর্শ করা বনাম তৈরি করা

আরেকটি কারণ যার ফলে ক্রেডিট ভাগ করা হয়: কোনো ধারণা প্রস্তাব করাটা এবং একটি দৈনন্দিন কাজ করা মেশিন বানানোটা একই নয়। প্রথমদিকে রিপোর্ট ও আলোচনা ধারণাটিকে পরিষ্কার করেছে; প্রাথমিক প্রোটোটাইপ ও উৎপাদন সিস্টেমগুলো দেখিয়েছে যে তা কার্যকর। বিচক্ষণ ইতিহাস উভয় ধরনের অবদানের মর্যাদা দেয়—একটি সরল “প্রথম আবিষ্কারকারী” সিদ্ধান্ত চাপিয়ে না দিয়ে।

“ভন-নিউম্যান আর্কিটেকচার” সাধারণত কী বোঝায়

মানুষ যখন বলে “ভন-নিউম্যান আর্কিটেকচার,” তারা সাধারণত একটি সহজ, শিক্ষামূলক মডেল নির্দেশ করে যে কিভাবে একটি স্টোরড-প্রোগ্রাম কম্পিউটার সংগঠিত। এটা কোনো ব্র্যান্ড নয় বা একক ঐতিহাসিক মেশিন নয়—এটি একটি সুবিধাজনক লেবেল যা অনেক কম্পিউটারে একভাবে উপস্থিত হয়।

প্রচলিত ব্লক ডায়াগ্রাম: CPU, মেমরি, ও ইনপুট/আউটপুট

ধারণাগতভাবে ছবি দেখতে এই রকম:

  • CPU (সেন্ট্রাল প্রসেসিং ইউনিট): যে কাজগুলো করে।
  • মেমরি: যেখানে ক্যম্পিউটার উভয় প্রোগ্রাম নির্দেশনা ও প্রোগ্রাম-ব্যবহৃত ডেটা রাখে।
  • ইনপুট/আউটপুট (I/O): তথ্য আনা ও নেওয়ার উপায়—কীবোর্ড, ডিস্ক, স্ক্রিন, নেটওয়ার্ক, সেন্সর ইত্যাদি।

কীটিগুলো হলো CPU-র জন্য আলাদা পদ্মস্থল নেই যে ‘প্রোগ্রাম’ আর ‘নম্বর’—এগুলো মেমোরি থেকে টেনে নেয়।

কিভাবে নির্দেশনাগুলো প্রবাহিত হয়: ফেচ–ডিকোড–এক্সিকিউট

CPU একটি প্রোগ্রাম চালাতে প্রচলিতভাবে একটি লুপ পুনরাবৃত্তি করে, যাকে বলা হয় fetch–decode–execute:

  1. ফেচ: মেমরি থেকে পরবর্তী নির্দেশনা পড়া।
  2. ডিকোড: ওই নির্দেশনাটি কী করতে বলছে (যোগ, তুলনা, লোড, স্টোর, জাম্প ইত্যাদি) বোঝা।
  3. এক্সিকিউট: কাজটি সম্পন্ন করা, যা মেমরি পড়া/লেখা বা I/O-এর সঙ্গে যোগাযোগও হতে পারে।

এটি সরলীকৃত বর্ণনা, তবে মূলে রাখতে হবে: প্রোগ্রামটি মেমোরিতে সংরক্ষিত নির্দেশনাসূচক একটি সিকোয়েন্স, এবং CPU সেগুলো ধাপে ধাপে অনুসরণ করে।

কেন “নির্দেশনা ও ডেটা একই মেমোরিতে” শক্তিশালী

নির্দেশনা ও ডেটা একই মেমোরিতে রাখলে কম্পিউটার খুবই ব্যবহারযোগ্যভাবে সাধারণ-উদ্দেশ্য হয়ে ওঠে:

  • মেশিন কী করবে তা বদলাতে সাধারণত মেমরিতে প্রোগ্রামটা বদলানোই যথেষ্ট, না যে তার তারের বিন্যাস বদলাতে হবে।
  • প্রোগ্রামগুলো নির্দেশনাকে তথ্য হিসাবে বিবেচনা করতে পারে—কপি করা, লোড করা, পরিবর্তন করা (যদিও আধুনি

সাধারণ প্রশ্ন

সরল ভাষায় স্টোরড-প্রোগ্রাম কম্পিউটার কী?

একটি স্টোরড-প্রোগ্রাম কম্পিউটার সেই ধরণের মেশিন যেখানে প্রোগ্রাম নির্দেশনাগুলো একই অভ্যন্তরীণ মেমোরিতেই রাখা হয় যাকে ওই নির্দেশনাগুলো প্রক্রিয়াকরণ করে—অর্থাৎ কাজ বদলাতে আপনাকে মেশিনের হার্ডওয়্যার পুনরায় জোড়া লাগাতে হবে না, বরং মেমরিতে অন্য একটি নির্দেশনাসেট লোড করে চালাতে হবে।

স্টোরড-প্রোগ্রামের আগে কিভাবে প্রাচীন কম্পিউটারগুলো “প্রোগ্রাম” করা হতো?

স্টোরড-প্রোগ্রামের আগের যুগে অনেক মেশিনই প্লাগবোর্ড, প্যাচ কেবল, এবং সুইচ সেটিংস দিয়েই “প্রোগ্রাম” করা হতো। অপারেশনগুলোর ক্রম বদলাতে ঘণ্টা কিংবা দিনের পর দিন রিওয়্যারিং ও রিটেস্টিং লাগত, এবং একটি ভুল সংযোগ সহজে খুঁজে পাওয়া যেত না।

স্টোরড-প্রোগ্রাম ধারণায় “মেমরি” বলতে কী বোঝায় (এটা স্টোরেজ থেকে কীভাবে আলাদা)?

এখানে “মেমরি” বলতে বোঝানো হচ্ছে কম্পিউটারের সেই দ্রুত কাজের স্টোরেজ (আধুনিক RAM-এর মত) যেখানে CPU চলাকালে বারবার পড়া ও লেখা করে। এটা দীর্ঘমেয়াদি স্টোরেজ (ডিস্ক/SSD) থেকে আলাদা—ডিস্ক শক্তি বন্ধ থাকলেও ফাইল রাখে, কিন্তু CPU-র তাত্ক্ষণিক কাজের জন্য প্রয়োজনীয় দ্রুত প্যাড-স্পেস নয়।

স্টোরড-প্রোগ্রাম ধারণায় EDVAC রিপোর্ট কেন গুরুত্বপূর্ণ?

EDVAC রিপোর্টে স্পষ্টভাবে বলা হয়েছিল যে নির্দেশনা ও ডেটা অভ্যন্তরীণ মেমোরিতে ভাগ করে রাখা যেতে পারে, এবং রিপোর্টটি কম্পিউটারের অংশগুলো (মেমরি, কন্ট্রোল, অ্যারিথমেটিক, ইনপুট/আউটপুট) নিয়ে একটি সাধারণ শব্দভাণ্ডার তৈরি করেছিল। এই পরিষ্কার ব্যাখ্যাটি অন্য দলগুলোকে আলোচনা করতে, তুলনা করতে এবং অনুরূপ সিস্টেম তৈরি করতে দ্রুত সাহায্য করেছিল।

জন ভন নিউম্যান কি একা স্টোরড-প্রোগ্রাম কম্পিউটার উদ্ভাবন করেছিলেন?

জন ভন নিউম্যানের নামটি মুলতঃ তার বর্ণনা ও নথিপত্রের ব্যাপক প্রচারের কারণে বেশি প্রচলিত—তার মানে এই নয় যে তিনি একা সম্পূর্ণভাবে দৃষ্টি প্রবর্তন করেছিলেন। স্টোরড-প্রোগ্রাম ধারণা একটি বৃহত্তর প্ল্যাটফর্মের মধ্য দিয়ে গড়ে উঠেছিল—ইঞ্জিনিয়ার, গণিতজ্ঞ, এবং তৎকালীন প্রোগ্রামারদের সংমিশ্রণে।

আজকের দিনে “ভন-নিউম্যান আর্কিটেকচার” সাধারণত কী বোঝায়?

“ভন-নিউম্যান আর্কিটেকচার” সাধারণত এমন একটি মডেলকে বোঝায় যেখানে:

  • একটি CPU আছে যা fetch–decode–execute ধাঁচে কাজ করে
  • একটি একক মেমরি আছে যেখানে নির্দেশনা ও ডেটা উভয়ই রাখা হয়
  • ইনপুট/আউটপুট ডিভাইস আছে

এটি একটি আরামদায়ক শিক্ষামূলক লেবেল—একটি একক ঐতিহাসিক মেশিন বা একমাত্র উদ্ভাবকের দাবি নয়।

ভন-নিউম্যান এবং হার্ভার্ড আর্কিটেকচারের মধ্যে পার্থক্য কী?

একটি ভন-নিউম্যান-ধাঁচের ক্ষেত্রে নির্দেশনা ও ডেটা একই মেমোরিতে থাকে (সাধারণত CPU-তে আসার জন্য একই প্রধান পথ ভাগ করে)। একটি হার্ভার্ড-ধাঁচের ক্ষেত্রে নির্দেশনার স্টোরেজ আলাদা এবং প্রায়শই আলাদা পথ ব্যবহার করে। আধুনিক অনেক সিস্টেমে উভয়ের মিশ্রিত রূপ দেখা যায়—যেমন সফটওয়্যারের জন্য একক ঠিকানা স্থান, কিন্তু সামনের দিকে আলাদা I-cache এবং D-cache।

ভন-নিউম্যান বটলনেক কী এবং কম্পিউটারগুলো এটি কিভাবে কমায়?

“ভন-নিউম্যান বটলনেক” হল সেই কর্মক্ষমতার সীমা যখন CPU এবং মেমোরি একই সংকীর্ণ পথ ভাগ করে নেয়—CPU দ্রুত কাজ করতে চাইলেও মেমোরি থেকে তথ্য দ্রুত না আসলে CPU অপেক্ষা করে যায়। সাধারণ হ্রাসকরণ পদ্ধতিগুলো হল ক্যাশ, প্রিফেচিং, এবং প্যারালেলিজম (একাধিক কোর, গাণিতিক ও মেমরি অ্যাক্সেস ওভারল্যাপিং) —এগুলো অপেক্ষা কমায়, কিন্তু মূল সীমা পুরোপুরি মুছে দেয় না।

কিভাবে স্টোরড-প্রোগ্রাম ধারণা আধুনিক ডিভাইসের সফটওয়্যার আপডেট ও অ্যাপ স্যুইচিং ব্যাখ্যা করে?

কারণ নির্দেশনাগুলোই হলো ডেটা হিসেবে মেমোরিতে থাকা তথ্য, তাই আপনি হার্ডওয়্যার বদল না করেই সফটওয়্যার বদলে আচরণ আপডেট করতে পারেন। এজন্য একই ফোন বা ল্যাপটপে অনেক ধরনের অ্যাপ চালানো যায়, এবং ফার্মওয়্যার/OS আপডেটের মাধ্যমে নতুন ফিচার যোগ করা সম্ভব হয়—চিপ ডিজাইন পরিবর্তন না করেই।

নির্দেশনা-কে-ডেটা হিসেবে দেখা নিরাপত্তার জন্য কেন গুরুত্বপূর্ণ?

কারণ নির্দেশনাগুলো মেমোরিতে ডেটা হিসেবে থাকে, হামলাকারীরা মাঝে মাঝে অবিশ্বাস্য ডেটাকে নির্বাহী কোড হিসেবে চালানোর চেষ্টা করে (যেমন কোড ইনজেকশন)। আধুনিক প্রতিরোধমূলক ব্যবস্থা হল মেমোরি প্রোটেকশন (নন-এক্সিকিউটেবল রিজিওন), কোড সাইনিং, এবং অন্যান্য কন্ট্রোল—যেগুলো “পাঠযোগ্য ডেটা” এবং “চালানো যেতে পারে এমন কোড” আলাদা রাখতে সাহায্য করে।

Related posts