|
| 1 | +# 🖥️ Class 32 - Computer Architecture & History |
| 2 | +*(Reference: [YouTube Lecture By Go With Habib](https://youtu.be/vzrpgfCgRmU?si=Ah-EgF8qXlK9qovb))* |
| 3 | + |
| 4 | +**🔍 Key Topics:** |
| 5 | +1. **Evolution Timeline** |
| 6 | + - Abacus → Analytical Engine → Modern CPUs |
| 7 | + - Diffrent Generations of Computers |
| 8 | + |
| 9 | +2. **Core Components** |
| 10 | + - CPU (ALU, CU, Registers) |
| 11 | + - Memory Hierarchy (Cache, RAM, Storage) |
| 12 | + - I/O Systems |
| 13 | + |
| 14 | +3. **Bit Magic** |
| 15 | + - 32-bit vs 64-bit Systems |
| 16 | + - Data Units: Bit → Byte → GB → TB |
| 17 | + |
| 18 | +4. **Milestones** |
| 19 | + - ENIAC (1946) |
| 20 | + - Transistors (1947) |
| 21 | + - Microprocessors (1971) |
| 22 | + |
| 23 | +**💡 Did You Know?** |
| 24 | +- Charles Babbage = "Father of Computers" |
| 25 | +- 1st Programmer: Ada Lovelace (1843) |
| 26 | + |
| 27 | +📌 *Pro Tip:* Watch the lecture for vintage computer visuals! |
| 28 | + |
| 29 | + |
| 30 | +## 📚 কন্টেন্ট সূচি |
| 31 | + |
| 32 | +| ক্রম | বিষয় | লিংক | |
| 33 | +|-----|--------------------------------------------------|------------------------------------------------------| |
| 34 | +| ১ | Analytical Engine কিভাবে কাজ করতো? | [👉 এখানে দেখুন](#_1-analytical-engine-কিভাবে-কাজ-করতো) | |
| 35 | +| ২ | Punch Card কি এবং এটি দিয়ে কিভাবে প্রোগ্রাম লিখতো? | [👉 এখানে দেখুন](#_2-punch-card-কি-এবং-এটি-দিয়ে-কিভাবে-প্রোগ্রাম-লিখতো) | |
| 36 | +| ৩ | Punch Card থেকে ডাটা কিভাবে Ram এ উঠতো? | [👉 এখানে দেখুন](#_3-punch-card-থেকে-ডাটা-কিভাবে-ram-এ-উঠতো) | |
| 37 | +| ৪ | CPU কিভাবে Pointing Register এর সাহায্যে RAM এর ডাটাকে Execute করে? | [👉 এখানে দেখুন](#_4-cpu-কিভাবে-pointing-register-এর-সাহায্যে-ram-এর-ডাটাকে-execute-করে) | |
| 38 | +| ৫ | কোনটা ৩২ বিট, ৬৪ বিট, ২০ বিট কম্পিউটার কিভাবে বুঝবো? | [👉 এখানে দেখুন](#_5-কোনটা-৩২-বিট-৬৪-বিট-২০-বিট-কম্পিউটার-কিভাবে-বুজবো) | |
| 39 | +| ৬ | কম্পিউটারের ডেটা প্রকাশের এককগুলো | [👉 এখানে দেখুন](#_6-কম্পিউটারের-ডেটা-প্রকাশের-এককগুলো-কি-কি) | |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +## 1. Analytical Engine কিভাবে কাজ করতো? |
| 44 | + |
| 45 | +এনালিটিক্যাল ইঞ্জিনের মূল কাজ ছিল গাণিতিক হিসাব-নিকাশ করা। এটি যোগ, বিয়োগ, গুণ এবং ভাগের মতো মৌলিক গাণিতিক কাজ করতে সক্ষম ছিল। এটি আধুনিক কম্পিউটারের পূর্বসূরি বা ভিত্তি হিসেবে বিবেচিত হয়। |
| 46 | + |
| 47 | +**ইতিহাসঃ** |
| 48 | + |
| 49 | +চার্লস ব্যাবেজের অ্যানালিটিক্যাল ইঞ্জিন (Analytical Engine) হলো বিশ্বের প্রথম প্রস্তাবিত জেনারেল-পারপাস কম্পিউটার (সাধারণ উদ্দেশ্যে ব্যবহারযোগ্য গণনাযন্ত্র)। এটি ১৮৩৭ সালে ডিজাইন করা হয়েছিল, কিন্তু সম্পূর্ণ বাস্তবায়িত হয়নি। এটির কাজের পদ্ধতি আধুনিক কম্পিউটারের মতোই ছিল, নিচে সহজভাবে বোঝানো হলো: |
| 50 | + |
| 51 | +**১. ইনপুট দেওয়া (Input)** |
| 52 | +অ্যানালিটিক্যাল ইঞ্জিনে ডেটা এবং নির্দেশনা (প্রোগ্রাম) দেওয়া হতো পাঞ্চ কার্ড (ছিদ্রযুক্ত কার্ড) এর মাধ্যমে। এটি আজকের কী-বোর্ড বা মাউসের মতো কাজ করত। |
| 53 | + |
| 54 | +**২. প্রসেসিং ইউনিট (Mill)** |
| 55 | +এটির মূল গণনাকারী অংশকে "Mill" বলা হতো (আজকের CPU-র মতো)। এটি যোগ, বিয়োগ, গুণ, ভাগ সব ধরনের গাণিতিক অপারেশন করতে পারত। |
| 56 | + |
| 57 | +**৩. মেমোরি (Store)** |
| 58 | +ডেটা সংরক্ষণের জন্য ছিল "Store" (আজকের RAM বা হার্ড ডিস্কের মতো)। এখানে সংখ্যা এবং মধ্যবর্তী ফলাফল জমা রাখা হতো। |
| 59 | + |
| 60 | +**৪. কন্ট্রোল মেকানিজম** |
| 61 | +এটি শুধু গাণিতিক হিসাব করতে পারত না, বরং এটি শর্তসাপেক্ষ সিদ্ধান্তও নিতে পারত। যেমন, যদি একটি সংখ্যা শূন্যের চেয়ে বড় হয়, তবে একটি নির্দিষ্ট কাজ করবে; অন্যথায় আরেকটি কাজ করবে। (if-else লজিকের মতো)। |
| 62 | + |
| 63 | +**৫. আউটপুট** |
| 64 | +চূড়ান্ত ফলাফল (Output) প্রিন্ট করা যেত বা নতুন পাঞ্চ কার্ডে সংরক্ষণ করা যেত, যাতে পরে ব্যবহার করা যায়। |
| 65 | + |
| 66 | +<p align="center"><img alt="how analytical engine work" src="https://raw.githubusercontent.com/dynamiclance/golang-interview-questions-and-answers-bangla/img/how analytical engine work.png"></p> |
| 67 | +<p align="center">Picture Credit: Chatgpt</p> |
| 68 | + |
| 69 | +## 2. Punch Card কি এবং এটি দিয়ে কিভাবে প্রোগ্রাম লিখতো? |
| 70 | + |
| 71 | +**পাঞ্চ কার্ডঃ** |
| 72 | +পাঞ্চ কার্ড ছিল মোটা কাগজের কার্ড, সাধারণত ৭.৩৮ ইঞ্চি লম্বা আর ৩.২৫ ইঞ্চি চওড়া। এই কার্ডে ৮০টা কলাম থাকতো, আর প্রতি কলামে ১২টা সারি। |
| 73 | + |
| 74 | +<p align="center">Picture Credit: Chatgpt</p> |
| 75 | + |
| 76 | +**কোড লেখার প্রক্রিয়াটা ছিল এমন:** |
| 77 | +<p align="center">Picture Credit: Cloude ai</p> |
| 78 | + |
| 79 | +**১. কোড হাতে লেখা:** |
| 80 | +**২. পাঞ্চিং মেশিনে টাইপ:** |
| 81 | +**৩. কার্ডের স্ট্যাক তৈরি:** |
| 82 | +**৪. কম্পিউটারে দেওয়া:** |
| 83 | + |
| 84 | +মজার ব্যাপার হলো, এই পাঞ্চ কার্ডে ভুল হলে পুরো কার্ডটা ফেলে নতুন করে লিখতে হতো। |
| 85 | + |
| 86 | +## 3. Punch Card থেকে ডাটা কিভাবে Ram এ উঠতো? |
| 87 | + |
| 88 | +<p align="center">Picture Credit: Chatgpt</p> |
| 89 | + |
| 90 | +অ্যানালিটিক্যাল ইঞ্জিনের যুগে RAM ছিল না, ছিল “স্টোর” যেটা RAM-এর মতোই কাজ করত। |
| 91 | + |
| 92 | +**১. পাঞ্চ কার্ড পড়ার যন্ত্র (কার্ড রিডার):** |
| 93 | +**২. ডাটা ট্রান্সফার:** |
| 94 | +**৩. মেমরিতে জমা হওয়া:** |
| 95 | + |
| 96 | +### উদাহরণ: |
| 97 | +১০ এর কার্ড পড়ে স্টোরের সেল ০ এ জমা হতো। |
| 98 | +২০ এর কার্ড পড়ে স্টোরের সেল ১ এ জমা হতো। |
| 99 | ++ এর কার্ড পড়ে মিল সেল ০ ও সেল ১-এর ডাটা যোগ করে সেল ২-তে রাখত। |
| 100 | + |
| 101 | +**সংক্ষেপে:** |
| 102 | +পাঞ্চ কার্ড → Card Reader পড়ে → বাইনারি বানায় → RAM/STORE এ পাঠায় → CPU কাজ করে |
| 103 | + |
| 104 | +## 4. CPU কিভাবে Pointing Register এর সাহায্যে RAM এর ডাটাকে Execute করে? |
| 105 | + |
| 106 | +Pointing Register হলো CPU-এর জন্য একটা "গাইড"। ধাপে ধাপে যেভাবে কাজ হয়: |
| 107 | + |
| 108 | +**1. Program Counter (PC)** |
| 109 | +**2. Instruction Fetch** |
| 110 | +**3. Decode & Execute** |
| 111 | +**4. Program Counter আপডেট হয়** |
| 112 | + |
| 113 | +### উদাহরণ: |
| 114 | +```go |
| 115 | +RAM এ আছে এমন ৩টা লাইন: |
| 116 | +100: LOAD A |
| 117 | +104: ADD B |
| 118 | +108: PRINT |
| 119 | +``` |
| 120 | + |
| 121 | +## 5. কোনটা ৩২ বিট, ৬৪ বিট, ২০ বিট কম্পিউটার কিভাবে বুজবো? |
| 122 | + |
| 123 | +**বিট কী?** |
| 124 | +৮ বিট = ১ বাইট |
| 125 | + |
| 126 | +- ৩২-বিট: ৪ জিবি পর্যন্ত RAM |
| 127 | +- ৬৪-বিট: ১৮ কোটি GB পর্যন্ত RAM |
| 128 | +- ২০-বিট: পুরোনো সিস্টেম, ১ মেগাবাইট পর্যন্ত RAM |
| 129 | + |
| 130 | +## 6. কম্পিউটারের ডেটা প্রকাশের এককগুলো কি কি? |
| 131 | + |
| 132 | +বিট → বাইট → কিলোবাইট → মেগাবাইট → গিগাবাইট → টেরাবাইট → পেটাবাইট |
| 133 | + |
| 134 | +| একক | সমান | উদাহরণ | |
| 135 | +|------------------|--------------|------------------------| |
| 136 | +| 1 KB (Kilobyte) | 1024 Bytes | ছোট TXT ফাইল | |
| 137 | +| 1 MB (Megabyte) | 1024 KB | ছবি, গান | |
| 138 | +| 1 GB (Gigabyte) | 1024 MB | মুভি, অ্যাপ | |
| 139 | +| 1 TB (Terabyte) | 1024 GB | হার্ডডিস্ক, SSD | |
| 140 | +| 1 PB (Petabyte) | 1024 TB | ডেটা সেন্টার | |
| 141 | +| 1 EB (Exabyte) | 1024 PB | পুরো ইন্টারনেটের ডেটা! | |
0 commit comments