কিভাবে কম্পিউটার কাজ করে !!!
0 না ১?
আমরা এখন জেনে নেব কিভাবে আমাদের এই কম্পিউটার নামের যন্ত্রটি আমাদের নির্দেশ মত সব কাজ করে দেয়।আমরা যখন কম্পিউটারের কীবোর্ড থেকে একাট কী চাপ দিচ্ছি প্রায় সাথে সাথেই মনিটরের পর্দায় ফুটে উঠছে আমাদের কাংখিত সেই অক্ষর বা সংখ্যা।মজার ব্যাপর হলো কম্পিউটার কিন্তু আমাদের চেনা জানা কোন অক্ষর বা সংখ্যা কিছুই বোঝে না। তার কাছে মাত্র দু’টো সংখ্যা পরিচিত। সেটা হলো-‘১’ এবং ‘০’। এই ১ এবং ০ এর সাহায্যে কম্পিউটার আমাদের যাবতীয় তথ্য বা নির্দেশকে মনিটরের পর্দায় ফুটিয়ে তোলে।আবার এই ০ আর ১ সংখ্যার মানেও কিন্তু কম্পিউটারের কাছে ভিন্ন রকম।
কম্পিউটার বোঝে ০ মানে ‘না’ এবং ১ মানে ‘হ্যাঁ’, অন্য অর্থে ০ মানে অফ(বন্ধ)এবং ১ মানে অন(চালু)।
ধরা যাক, একটি বৈদ্যুতিক টেবিল ল্যাম্প এবং এর একটা সুইচ আছে। যখন সুইচ অন করা হবে বাতি জ্বলবে, আবার অফ করা হলে বাতি নিভে যাবে। ব্যপারটা এমন হয় বাতি জ্বলবে না হয় নিভে যাবে এর মাঝখানে কোন পথ বা ব্যবস্থা নেই।ঠিক এমনই একটি নিয়মের মধ্যে থেকে কম্পিউটার তার যাবতীয় কাজ সম্পাদন করে।হয় সে অফ বুঝবে নাহয় অন বুঝবে। অর্থাৎ হয় ০ বুঝবে নাহয় ১ বুঝবে এর বাইরে বা মাঝখানে কোন কিছুই বোঝেনা আমাদের কম্পিউটার।কম্পিউটারের ভাষায় এই দু’টো সংখ্যাকে বলা হয় বাইনারী সংখ্যা।টেবিল ল্যাম্পের জ্বলাকে বাইনারী ১ এবং নিভে যাওয়াকে বাইনারী ০ ধরে নিলে ব্যাপারটা এমন হয়- ০ বাইনারী সংখ্যা = না = অফ এবং ১ বাইনারী সংখ্যা = হ্যাঁ = অন।
কল্পনাতীত ব্যপার যে, কম্পিউটার যখন চালু অবস্থায় থাকে, তখন তার ভেতরকার ছোট্ট সিলিকন চিপসের উপর বসানো মাইক্রোপ্রসেসরের মধ্যদিয়ে বয়ে চলে উচ্চমাত্রার বিদ্যুৎ প্রবাহ। এই প্রবাহ বয়ে চলার সময় সৃষ্টি করে নানা ধরণের স্পন্দন- ইংরেজিতে যেটাকে বলা হয় পালস।আর এই পালস থেকে তৈরি হয় সয়কেত বা কোড। এই কোড নম্বরকে বলা হয় আসকি কোড।কম্পিউটার সোজাসুজি কোন অক্ষরকে চিনতে পারে না বা চিনতে দেওয়া হয়না তাকে। প্রতিটি সংখ্যা বা অক্ষরের জন্য রয়েছে আলাদা আলাদা কোড। এই কোড নম্বর আবার ঐ ০ আর ১ দিয়েই তৈরি।
কীবোর্ডের প্রতিটি অক্ষর বা সংখ্যার জন্য রয়েছে আলাদা আলাদা ভাবে সাজানো আটটি বাইনারী সংখ্যা-যা দিয়ে তৈরি হয় একটি কোড। মজার ব্যাপার হলো,পালসের এই যাবতীয় সংকেত সৃষ্টি করে কিন্তু চিপসের উপর বসানো ঐ ট্রানজিষ্টারগুলো।এই ট্রানজিষ্টারগুলো সাধারণত: টেবিল ল্যাম্পের অন-অফ সুইচের মত কাজ করে। অর্থাৎ কখনো সার্কিটে বহমান বিদ্যুৎপ্রবাহ বন্ধ করে দেয় আবার কখনো তা চালু করে দেয়।সেকেন্ডে প্রায় দশলক্ষ বারের চেয়েও দ্রুত গতিতে এই কাজ করতে থাকে ট্রানজিষ্টারগুলো। আর এর মাধ্যমেই কম্পিউটার চিনে নেয় বাইনারী সংখ্যা ০ এবং ১ কে। এ প্রসঙ্গে আরও একটা উদাহরণ দিলে বিষয়টা আরও একটু পরিষ্কার হবে।টেলিফোনে যখন কোন দুজন গ্রাহকের মধ্যে কথপোকথন হয় তখন কি ঘটে? একপ্রান্ত থেকে কথা বলার সাথে সাথে অপরপ্রান্তে বসে তা শোনা যায়। এই বলা এবং শোনার মধ্যে ঘটে যায় অনেক কিছুই যা আমরা বুঝতেও পারি না।একপ্রান্তের গ্রাহক কথা বলার সাথে সাথে কথাগুলো পরিবর্তিত হচ্ছে উচ্চমাত্রার বিদ্যুৎপ্রবাহে বা বিদ্যুৎ তরঙ্গে। আবার এই বিদ্যুতিক তরঙ্গ অপরপ্রান্তে গ্রাহকের কানের কাছে পৌছাবার আগেই আবার পরিবর্তিত হচ্ছে শব্দ তরঙ্গে।এখানেও কিন্তু পুরো ব্যাপারটা ঘটে যাচ্ছে পালসের সাহায্যে। অর্থাৎ ঐ অফ আর অন এর স্পন্দন বা পালস।
পুরো ব্যাপারটা এমন- শব্দ > বিদ্যুৎ > শব্দ।
এইরকম সাজানো নিয়মে টেলিফোনে এক প্রান্ত থেকে অপর প্রান্তের গ্রাহকের মধ্যে কথা আদান প্রদান চলে। আমাদের কম্পিউটার যন্ত্রও ঠিক এভাবেই কোন শব্দ বা অক্ষরকে তার মনিটরের পর্দায় ফুটিয়ে তোলে।যখন কীবোর্ডথেকে একটি সয়খ্যা বা অক্ষর কী চাপ দেওয়া হচ্ছে তখন সাথে সাথেই সেটা বিদ্যুৎতরঙ্গে রূপান্তরিত হচ্ছে। মুহুর্তে আবার সেই বিদ্যুৎতরঙ্গ পরিবর্তীত হচ্ছে আমাদের চেনা অক্ষর বা সংখ্যায়। আর ফুটে উঠছে মনিটরের পর্দায়।
অর্থাৎ- অক্ষর > বিদ্যুৎ > অক্ষর।
এই প্রক্রিয়ার মধ্যে কিন্তু ঘটে যাচ্ছে আরেকটা প্রক্রিয়া। যখনই কীবোর্ডথেকে কোন অক্ষর বা সংখ্যার কী চাপা হচ্ছে তখনই চাপ দেওয়া অক্ষর বা সংখ্যাটি পরিণত হচ্ছে বিদ্যুৎপ্রবাহে এবং তখনই সৃষ্টি হচচ্ছে পালস। অর্থাৎ অন আর অফ এর স্পন্দন। এই স্পন্দন প্রতিসরিত হয়ে যাচ্ছে বাইনারী সংখ্যায়। তৈরি হচ্ছে কোড বা সংকেত।কম্পিউটার এই সংকেতের মধ্যেকার বাইনারী সংখ্যাগুলো সাজিয়ে মিলিয়ে নিচ্ছে তার মধ্যে আগে থেকে দিয়ে রাখা কোড নম্বরের সাথে।মিলে গেলেই সেটা ফুটিয়ে তুলছে মনিটরের পর্দায়। এতগুলো কাজ কিন্তু ঘটে যাচ্ছে পলকের মধ্যেই।কীবোর্ডের ইংরেজি বর্ণ ‘এ’ অক্ষরটি চাপ দেওয়া হলে সাথে সাথে মনিটরের পর্দায় ‘এ’ অক্ষরটি ফুটে ওঠে। তার মানে-
অক্ষর > বিদ্যুৎ > বাইনারী সংখ্যা > অক্ষর।
প্রতিটি অক্ষর বা সংখ্যার জন্য ভিন্ন ভিন্ন ভাবে সাজানো আটটি বাইনারী সংখ্যার মাধ্যমেই কম্পিউটার বোঝে।
এই বাইনারী সংখ্যাকে বলা হয় বিট।আর আটটি বাইনারী সংখ্যা দিয়ে তৈরী হয় একটি কোড, তাকে বলা হয় বাইট।অর্থাৎ একটি অক্ষর তৈরী করতে আটটি বাইনারী সংখ্যা বিট লাগে- সেহেতু একটি অক্ষরকে অবশ্যই একটি বাইট বলা যায়।আমরা যেটাকে একাটা অক্ষর হিসেবে বুঝি কম্পিউটার সেটাকে একাট বাইট হিসেবে বুঝে। এভাবে প্রতিটি অক্ষরের জন্য আলাদা আলাদা ৮টি বাইনারী সংখ্যায় সাজানো থাকে। ৮টি বাইনারী সংখ্যাকে এভাবে ২৫৬ রকমে সাজানো যায়। অথচ আমাদের ইংরেজি কিংবা বাংলা অক্ষর ২৫৬টি নেই।সুতরাং অনায়াসেই অক্ষরগুলোকে ভিন্ন ভিন্ন বাইনারী সংখ্যায় সাজানো সম্ভব।
বাইনারী পদ্ধতি ও সংখ্যা গণনাঃ
সাধারণত: অংকশাস্ত্রে যেসব সংখ্যা অহরহ ব্যবহার করা হয় তাকে চলতি ভাষায় দশমিক সংখ্যা বলে।এই দশমিক সংখ্যা পদ্ধতিতে আছে দশটি সংখ্যা। দশের উপর ভিত্তি করেই এই সংখ্যাগুলোর একটা দল গড়ে উঠেছে। অংকের যাবতীয় সমাধান এই দশটি সংখ্যা দিয়েই হয়।
যেমন ৫০ এবং ৬০ অংকটিকেই ধরা যাক। এখানে ৫এর ১০গুণ হচ্ছে ৫০ এবং ৬এর ১০গুণ হচ্ছে ৬০। এখানে ০ থেকে ৯ পর্যন্ত সংখ্যা দিয়ে দশমিক সংখ্যা গঠিত। এখানে ৯০৪১ এই অংকটি লিখতে আমরা ৯, ০, ৪, ১ সংখ্যা ব্যবহার করেছি। এখানে অন্যভাবেও কিন্তু এটাকে লেখা যায়। যেমন ৯ * ১০০০+০ * ১০০+৪ * ১০+১ * ০=৯০৪১। অর্থাৎ আমাদের দশমিক পদ্ধতির হিসাবের রূপটা এমন যে, একক=১, দশক=১০, শতক=১০০, সহস্র=১০০০। এগুলো হলো আমাদের সৃষ্ট দশমিক হিসাব পদ্ধতি। কম্পিউটার আমাদের এই দশমিক পদ্ধতি বোঝে না।সে বোঝে বাইনারী সংখ্যা।এই বাইনারী সংখ্যা গুনতে কম্পিউটারও তার নিজের পদ্ধতি অনুসরণ করে। অবশ্য তার আছেতো মাত্র দু’টো সংখ্যা ০ এবং ১। এরমধ্যে বড় সংখ্যা হচ্ছে ১। কিন্তু কম্পিউটারকে যদি ১ থেকে কোন বড় সংখ্যা হিসেব করতে হয় সেক্ষেত্রে সে ১ এর পাশে একটি ০ বসিয়ে নেয় অর্থাৎ ১০। তার থেকেও কোন বড় সংখ্যা হিসেব করতে ১০ এর জায়গায় ১১ ধরবে। অতএব তার কাছে- শূন্য=০, এক=১, দুই=১০, তিন=১১, চার=১০০, পাঁচ=১০১, ছয়=১১০, সাত=১১১, আট=১০০০ইত্যাদি। এই হিসেবে বাইনারী পদ্ধতির কোন সংখ্যাকে যদি পাশাপাশি সাজিয়ে একক, দশক, শতক, সহস্র ইত্যাদি হিসেবে গণনা করা হয় তাহলে দেখা যাবে-বাইনারী একক=১(কারণ এক=১), দশক=২(কারণ দশ=২), শতক=৪(কারণ ১০০=৪), সহস্র=৮(কারণ ১০০০=৮)ইত্যাদি। ধরা যাক বাইনারী ১১১১ সংখ্যাটিকে সাধারণ দশমিক সংখ্যার পদ্ধতিতে বদলে দিতে হবে।তাহলে প্রথমেই সহস্র, শতক, দশক, একক হিসেবে সাজিয়ে নিতে হবে সংখ্যাটিকে। তাহলে এমনটি দাড়ায়- একক ১=১, দশক ১=২, শতক ১=৪, সহস্র ১=৮। এদের প্রত্যেকের মান হিসেব করলে পাওয়া যাবে- ১ * ৮+১ * ৪+১ * ২+১ * ১=১৫। তার মানে ১১১১বাইনারী সংখ্যার দশমিক মান ১৫।
(ASCII) আসকি বা এসকাই কোড কি?
সব ধরণের কম্পিউটারে যে কমন বা সাধারণ কোড ব্যবহার করা হয়ে থাকে তাকে আসকি কোড বলে।কম্পিউটার যখন সবেমাত্র তৈরি হয়েছে সেই প্রথমদিকের কথা, তখন তাদের নির্মাতারা নিজেদের সুবিধামত এই এসকি কোড তৈরি করে নিতেন।ফলে তাদের এই কোড বাইরের কেউ সহজে পড়তে পারতো না। এতে করে বিপাকে পড়ে যেত সাধারণ ব্যবহারকারিরা।একটি নির্দিষ্ট কোন কোম্পানীর সিষ্টেমের সাথে অন্য কোম্পানীর সিষ্টেম মিলতো না।একারণে কম্পিউটারও ঠিকমতো কাজ করতে পারতো না। উদাহরণ হিসেব ধরা যাক, কোন শিক্ষা প্রতিষ্ঠানে সেকশন ভিত্তিক ক্লাশ পরিচালিত হয় এবং প্রতিটি সেকশনে আলাদা আলাদা বিষয়ে আলাদা আলাদা ভাবে পাঠদান করা হয়। বিষয়টি এমন- হয়তো কোন সেকশনে নতুন নতুন বিষয় পড়ানো হলো আবার কোন কোন সেকশনে সে বিষয় সম্পর্কে কিছুই বলা হলো না।এরূপ যদি হয় তাহলে অবশ্যই পরীক্ষার সময় সমস্যা দেখা দেবে।কারণ পরীক্ষাতো একই প্রশ্ন সবার জন্য থাকবে।সুতরাং প্রশ্নের উত্তর লেখা শিক্ষার্থীদের জন্য সকজ হবে না।কারণ প্রতিটি সেকশনেতো একই পাঠ পড়ানো হয়নি। কম্পিউটার নির্মাণের ক্ষেত্রেও যখন এই ধরণের সমস্যা সৃষ্টি হলো, তখন নির্মাতা প্রতিষ্ঠানগুলো সবাই মিলে একটি আন্তর্জাতিক কোড তৈরি করে নিলেন।যার সাহায্যে আমেরিকার কম্পিউটারে বসে ব্যবহারকারী যা বুঝবে, বাংলাদেশের অজ পাড়াগায়ের ব্যবহারকারীও তাই বুঝবে।এই কোডকেই বলা হয় আসকি কোড।তারপর থেকে পৃথিবীর সব কম্পিউটার নির্মাতারা তাদের কম্পিউটারে এই আন্তর্জাতিক এসকি কোড ব্যবহার করে আসছেন।এসকি কোডে প্রত্যেক অক্ষর বা সংখ্যার জন্য ৭টি বিট ব্যবহৃত হয়। এতে বামদিকের ৩টি বিটকে বলা হয় জোন এবং ডানদিকের ৪টি বিটকে বলা হয় নিউমেরিক, এগুলোর সাথে আরও একটি প্যারিটি বিট যোগ করা হয়। এভাবেই ৮টি বিটের সমন্বয়ে গড়ে তোলা হয় একটি বাইট বা একটি অক্ষর।
কম্পিউটারে কোড ব্যবহারঃ
AND GATE, NOR GATE,OR GATE পূর্বেই আলোচনা করা হয়েছে কম্পিউটার অফ আর অন পদ্ধাততে কাজ করে। অফ অর্থাৎ ০, আর অন অর্থাৎ ১, এর বাইরে বা মাঝামাঝি কোন কিছুই বোঝে না আমাদের কম্পিউটার।কম্পিউটারের মধ্যকার ইন্টিগেট সার্কিটের মধ্যদিয়ে যখন উচ্চমাত্রার বিদ্যুৎ প্রবাহিত হয় তখন সেই বিদ্যুৎকে বেশ কিছু ট্রানজিষ্টর সুইচের মতো কাজ করে। তারা সেই বিদ্যুৎকে অফ আর অন এর মাধ্যমে নিয়ন্ত্রণ করে। ট্রানজিষ্টরগুলো এই বিদ্যুৎ স্পন্দন বা পালসকে কখনো ঘুরিয়ে দেয় আবার কখনো পিছনে ধরে রাখে। এইসব ট্রানজিষ্টর সুইচকে গেট বলা হয়। একটা সাধারণ গেটের থাকে দুটো করে পয়েন্ট। এই পয়েন্টকে বলা হয় টার্মিনাল। এখান থেকেই গেট পালস সংগ্রহ করে।তবে সেই পালস সার্কিটে পাঠাবে কি পাঠাবে না সেটা কিন্তু নির্ভর করে পালসের ধরণের উপর।
এক ধরণের গেট আছে যারা দুটো টার্মিনাল দিয়ে পালস গ্রহণ করে এবং সেই পালস পুরো সার্কিটে ছড়িয়ে দেয়- এর নাম ‘এন্ড গেট’।
আর এক ধরণের গেট আছে একটা বা দুটো টার্মিনাল দিয়ে পালস গ্রহণ করে-এর নাম ‘অর গেট’।
‘নর গেট’ নামের আর একটা গেট আছে যার মাধ্যমে পালস ছড়িয়ে পড়ে সার্কিটে।
এইরকম হাজার হাজার গেট পুরো সার্কিটে সাজানো থাকে। এর মধ্যদিয়ে ছুটোছুটি করে পালস বা স্পন্দন। এইসব পালস কখনো যোগ, কখনো বিয়োগ, কখনো তুলনা, কখনো স্মৃতি থেকে তথ্য উদ্ধার, কখনো স্মৃতিতে নতুন কোন তথ্য যোগ করে। এভাবে তাদের অক্লান্ত পরিশ্রমের ফলেই আমরা কম্পিউটারের পর্দায় ফুটিয়ে তোলা অক্ষর বা সংখ্যা দেখতে পাই।
কম্পিউটারের বাসঃ
কম্পিউটারে প্রবেশ করানো তথ্য থেকে সৃষ্টি পালসগুলোকে জটিল গেটগুলোর মধ্যদিয়ে প্রবাহিত করতে যে মাধ্যমের প্রয়োজন হয় তাকেই কম্পিউটারের ‘বাস’ বলে।এই বাসকেই ‘ডাটা বাস’ বলা হয়।এই বাসের সাহায্যে সিপিইউ-এ তথ্য বা নির্দেশ দেয়া, সিপিইউ থেকে তথ্য বা নির্দেশ নিয়ে আউটপুটে সেটাকে প্রদর্শণ করা ইত্যাদি গুরুত্বপূর্ণ কাজগুলো করে থাকে কম্পিউটার।বিভিন্ন জটিল গেট এর মধ্যদিয়ে পালস বা স্পন্দন চলাচলের কাজটিও মহান দায়িত্বের সাথে পালন করে এই ডাটা বাস। এই ডাটা বাস চলাচলের জন্য সিপিইউ এর সাথে কম্পিউটারের অন্যান্য অংশ অসংখ্য তার দিয়ে সংযুক্ত করা থাকে। এগুলোকে ইনপুট-আউটপুট পোর্ট বা আই.ও পোর্ট বলে। কম্পিউটারে এই ধরণের বাস বেশ কয়েকটি থাকে। সেগুলোর মধ্যে কম্পিউটারকে নির্দেশ প্রদাণের জন্য যে বাস ব্যবহার করা হয় তাকে বলে ‘কন্ট্রোল বাস’। আবার যে বাসের সাহায্যে কম্পিউটারের ভেতরের স্মৃতির তথ্য পড়া হয় তাকে বা সেই বাসকে বলে ‘অ্যাড্রেস বাস’ ইত্যাদি উল্লেখযোগ্য।