সুইচিং প্রযুক্তি, মেমোরি ও প্রোগ্রামিং ভাষার ওপর ভিত্তি করে আধুনিক কম্পিউটারের ইতিহাসকে পাঁচটি প্রজন্মে ভাগ করা হয়:
| প্রজন্ম | মূল হার্ডওয়্যার প্রযুক্তি | মেমোরি ও স্টোরেজ | ব্যবহৃত ভাষা | উল্লেখযোগ্য সিস্টেম |
|---|---|---|---|---|
| প্রথম প্রজন্ম (১৯৪০-১৯৫৬) | ভ্যাকুয়াম টিউব (থার্মায়োনিক ভালভ) | ম্যাগনেটিক ড্রাম, অ্যাকোস্টিক ডিলে লাইন | মেশিন ল্যাঙ্গুয়েজ (খাঁটি বাইনারি ০/১) | ENIAC, EDVAC, UNIVAC-I |
| দ্বিতীয় প্রজন্ম (১৯৫৬-১৯৬৩) | ট্রানজিস্টর (বাইপোলার জাংশন) | ম্যাগনেটিক কোর মেমোরি, ম্যাগনেটিক টেপ | অ্যাসেম্বলি ভাষা, প্রারম্ভিক HLL (FORTRAN, COBOL) | IBM 1401, CDC 1604 |
| তৃতীয় প্রজন্ম (১৯৬৪-১৯৭১) | সমন্বিত বর্তনী (Integrated Circuits - SSI/MSI) | ম্যাগনেটিক কোর, প্রাথমিক সেমিকন্ডাক্টর র্যাম | উচ্চস্তরের ভাষা (BASIC, Pascal, C) | IBM System/360, PDP-8 |
| চতুর্থ প্রজন্ম (১৯৭১-বর্তমান) | মাইক্রোপ্রসেসর (VLSI ও ULSI সিলিকন চিপ) | সেমিকন্ডাক্টর DRAM, SRAM, Flash SSD, HDD | আধুনিক ভাষা (C++, Java, Python), GUI OS | Intel x86, পার্সোনাল কম্পিউটার, ম্যাক |
| পঞ্চম প্রজন্ম (বর্তমান ও ভবিষ্যৎ) | আল্ট্রা লার্জ স্কেল ইন্টিগ্রেশন (ULSI), কৃত্রিম বুদ্ধিমত্তা | হাই-ব্যান্ডউইথ ৩ডি স্ট্যাকড র্যাম (HBM), ক্লাউড | এআই মডেল, প্যারালাল প্রসেসিং, কোয়ান্টাম এলগরিদম | সুপারকম্পিউটার, জিপিইউ ক্লাস্টার, কোয়ান্টাম প্রোটোটাইপ |
১৯৪৫ সালে গণিতবিদ ও পদার্থবিজ্ঞানী জন ফন নিউম্যান এক যুগান্তকারী ধারণা উপস্থাপন করেন—প্রোগ্রামের নির্দেশাবলি এবং ডেটা উভয়ই একই সাধারণ মেমোরি স্পেসে সংরক্ষিত থাকবে। এর পূর্বে কম্পিউটারের কাজ পরিবর্তন করতে শারীরিকভাবে তারের সংযোগ পরিবর্তন করতে হতো।
ফন নিউম্যান মডেলের তিনটি প্রধান উপব্যবস্থা রয়েছে:
- সেন্ট্রাল প্রসেসিং ইউনিট (CPU): যা নির্দেশাবলি নির্বাহ করে এবং সম্পূর্ণ সিস্টেমকে নিয়ন্ত্রণ করে।
- প্রধান মেমোরি ইউনিট (Main Memory): যেখানে ক্রমানুসারে সাজানো ঠিকানায় নির্দেশ ও অপারেন্ড সংরক্ষিত থাকে।
- ইনপুট/আউটপুট (I/O) উপব্যবস্থা: যা ব্যবহারকারী এবং বাহ্যিক যন্ত্রাংশের সাথে যোগাযোগের মাধ্যম হিসেবে কাজ করে।
সিপিইউ-এর মধ্যে দুটি প্রধান কার্যকরী ইউনিট এবং কতগুলো অতিদ্রুত অভ্যন্তরীণ রেজিস্টার থাকে:
- অ্যারিথমেটিক লজিক ইউনিট (ALU): সমস্ত গাণিতিক হিসাবনিকাশ (যোগ, বিয়োগ, গুণ, ভাগ) এবং যৌক্তিক সিদ্ধান্ত গ্রহণ (AND, OR, NOT, XOR, মান তুলনা) সম্পাদন করে। ALU-র সাথে একটি স্ট্যাটাস বা ফ্ল্যাগস রেজিস্টার যুক্ত থাকে, যার মধ্যে জিরো ফ্ল্যাগ (Z), ক্যারি ফ্ল্যাগ (C), সাইন ফ্ল্যাগ (S) এবং ওভারফ্লো ফ্ল্যাগ (V) অবস্থান করে।
- কন্ট্রোল ইউনিট (CU): কম্পিউটারের পরিচালক বা কন্ডাক্টর হিসেবে কাজ করে। এটি মেমোরি থেকে নির্দেশ নিয়ে আসে (ফেচ), ডিকোড করে এবং প্রয়োজনীয় টাইমিং ও কন্ট্রোল সিগন্যাল প্রেরণ করে সমস্ত অভ্যন্তরীণ ইউনিটকে পরিচালনা করে।
- সিপিইউ অভ্যন্তরীণ রেজিস্টারসমূহ: প্রসেসরের নিজস্ব অতিদ্রুত অস্থায়ী মেমোরি সেল:
- প্রোগ্রাম কাউন্টার (PC): পরবর্তী যে নির্দেশটি মেমোরি থেকে ফেচ করতে হবে, তার মেমোরি অ্যাড্রেস ধরে রাখে। প্রতিটি ফেচের পর এর মান স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়।
- মেমোরি অ্যাড্রেস রেজিস্টার (MAR): মেমোরির যে নির্দিষ্ট ঠিকানায় পড়া (Read) বা লেখা (Write) হবে, সেই ঠিকানাটি ধরে রাখে।
- মেমোরি ডেটা রেজিস্টার (MDR) বা বাফার (MBR): মেমোরি থেকে পঠিত অথবা মেমোরিতে লেখার জন্য প্রস্তুতকৃত ডেটা সাময়িকভাবে ধরে রাখে।
- ইনস্ট্রাকশন রেজিস্টার (IR): মেমোরি থেকে ফেচ করে আনা বর্তমান নির্দেশটিকে কন্ট্রোল ইউনিট ডিকোড করার সময় এই রেজিস্টারে সংরক্ষণ করা হয়।
- অ্যাকুমুলেটর (ACC): একটি সাধারণ উদ্দেশ্যের রেজিস্টার, যা ALU দ্বারা সম্পাদিত গাণিতিক বা যৌক্তিক ক্রিয়াকলাপের অন্তর্বর্তী ফলাফল ধরে রাখে।
সিপিইউ ধারাবাহিকভাবে চারটি ধাপে নির্দেশ নির্বাহ করে:
- ফেচ (Fetch): PC-র ঠিকানা MAR-এ যায়। কন্ট্রোল ইউনিট মেমোরি রিড সংকেত পাঠায়। মেমোরি থেকে নির্দেশ ডেটা বাসের মাধ্যমে MDR-এ আসে এবং সেখান থেকে IR-এ স্থানান্তরিত হয়। একই সাথে PC-র মান পরবর্তী নির্দেশের জন্য বৃদ্ধি পায় ($PC \leftarrow PC + 1$)।
- ডিকোড (Decode): IR-এ রক্ষিত নির্দেশের অপকোড (Opcode) কন্ট্রোল ইউনিটের ডিকোডার দ্বারা বিশ্লেষিত হয়।
- এক্সিকিউট (Execute): প্রয়োজনীয় অপারেন্ড সংগ্রহ করে ALU দ্বারা সংশ্লিষ্ট গাণিতিক বা যৌক্তিক প্রক্রিয়া সম্পন্ন হয়।
- স্টোর (Store / Write-back): প্রাপ্ত ফলাফল অ্যাকুমুলেটরে বা নির্দিষ্ট মেমোরি লোকেশনে সংরক্ষণ করা হয়।
সিপিইউ, মেমোরি এবং আই/ও ডিভাইসের মধ্যে বৈদ্যুতিক সংকেত আদান-প্রদানের সমান্তরাল তারের সমষ্টিকে বাস (Bus) বলা হয়:
- ডেটা বাস (Data Bus): এটি একটি দ্বিমুখী (Bidirectional) বাস, যার মাধ্যমে প্রকৃত তথ্য ও নির্দেশ সিপিইউ এবং মেমোরির মধ্যে প্রবাহিত হয়। এর প্রস্থ (যেমন ৩২-বিট, ৬৪-বিট) সিপিইউ-এর শব্দদৈর্ঘ্য (Word Length) নির্ধারণ করে।
- অ্যাড্রেস বাস (Address Bus): এটি একটি একমুখী (Unidirectional) বাস। সিপিইউ মেমোরির নির্দিষ্ট লোকেশন চিহ্নিত করতে এতে ঠিকানা পাঠায়। অ্যাড্রেস বাসে $k$ টি লাইন থাকলে সরাসরি $২^k$ সংখ্যক মেমোরি লোকেশন অ্যাক্সেস করা সম্ভব। উদাহরণস্বরূপ, ৩২-বিট অ্যাড্রেস বাস সর্বোচ্চ $২^{৩২} = ৪\text{ GB}$ র্যাম পরিচালনা করতে পারে।
- কন্ট্রোল বাস (Control Bus): বিভিন্ন নিয়ন্ত্রণ ও টাইমিং সিগন্যাল (যেমন Memory Read, Memory Write, I/O Read, I/O Write, Clock, Reset, Interrupt) পরিবহনের জন্য ব্যবহৃত হয়।