লেখকের নিবেদন
এই লেখা মূলত স্কুল কলেজের ছাত্রছাত্রীদের জন্য এবং তাঁদের জন্য যাঁরা বিজ্ঞানের সাথে প্রত্যক্ষভাবে যুক্ত নন। এটি প্রথম পর্ব। এই পর্বে মূলত জোর দেওয়া হয়েছে আমরা সাধারণত যে কম্পিউটার ব্যবহার করি, যাকে আমরা 'সাধারণ কম্পিউটার' বা সাধারণ শব্দটি বাদ দিয়ে কেবলমাত্র 'কম্পিউটার' বলে জানব, তার উপর। প্রথমে কম্পিউটার কীভাবে কাজ করে, তা বোঝার চেষ্টা করব। তারপর আমরা দেখব 'কোয়ান্টাম কম্পিউটার' সেই কাজ অন্য কোন উপায়ে করতে পারে যাতে অনেক ক্ষেত্রে তার দক্ষতা বহুগুণ বেড়ে যায়। পরবর্তী পর্বের লেখায় আমরা 'কোয়ান্টাম কম্পিউটার' সম্বন্ধে আরো বিস্তারে ও গভীরে জানার চেষ্টা করব। অনেক জায়গায় কেবলমাত্র কিছু প্রশ্ন তুলে ছেড়ে দেওয়া হয়েছে, যাতে আপনারা চিন্তাভাবনা করতে পারেন। এই লেখায় যেহেতু কিছু মূল ধারণার উপর জোর দেওয়া হয়েছে, তাই কম্পিউটার বিজ্ঞানের অনেক প্রচলিত ধারণা বা সংজ্ঞাকে এখানে পুঙ্খানুপুঙ্খভাবে মেনে চলা হয় নি। তেমনি কম্পিউটার বিজ্ঞানের বহুল প্রচলিত শব্দাবলীর কোনো বঙ্গানুবাদ করা হয়নি — বা বলা ভালো সে দায় আপনাদের উপর ছেড়ে দেওয়া হয়েছে।
কম্পিউটার কী?
এই লেখাটা কি আপনি স্মার্টফোনে পড়ছেন? তাহলে বলি, আপনি কিন্তু কম্পিউটারে পড়ছেন। কারণ স্মার্টফোন হল এক ধরণের কম্পিউটার। ল্যাপটপ বা ডেস্কটপ যে কম্পিউটার সে তো বলাই বাহুল্য। এমনকি পঞ্চাশ বা একশো টাকা দিয়ে ট্রেনের হকারের কাছ থেকে যে ছোট্ট আর কেবলমাত্র যোগ বিয়োগ করতে পারা ক্যালকুলেটর কেনা হয়, সেগুলোও এক ধরণের কম্পিউটার। যা কম্পিউট করতে পারে, তা-ই কম্পিউটার। আমি যেটুকু জানি, এই কম্পিউট শব্দের কোনো চালু বাংলা নেই। কম্পিউট শব্দের মধ্যে গণনা করা, হিসাব করা, অঙ্ক করা — সবই লুকিয়ে আছে। তাই আমার মতে, কম্পিউটারের অনুবাদ গণকযন্ত্র বা পরিগণক করলে, অর্থের দিক থেকে তা খানিকটা অসম্পূর্ণ থেকে যায়। তাই আপাতত, কম্পিউটারকে আমরা কম্পিউটারই বলব। এখন আসুন, আমরা চেষ্টা করি সংজ্ঞার কচকচানির বাইরে বেরিয়ে এসে কম্পিউটারে কী থাকে, কম্পিউটার কীভাবে কাজ করে — সে সব একটু বুঝতে।
কম্পিউটারে কী থাকে?
সহজ কথায় বলা যায়, একটা কম্পিউটারের মূলত দুটো অংশ, যেমন সফটওয়্যার আর হার্ডওয়্যার। সফট মানে নরম বা কোমল আর ওয়্যারের একটা অর্থ জিনিস বা পণ্য। তাই সফটওয়্যার মানে কোমল জিনিস — যা নমনীয়, যাকে কাদার তালের মত অতি সহজেই অনেক রকমের রূপ দেওয়া যায়। একইভাবে, হার্ডওয়্যার মানে কঠিন জিনিস — যা একেবারেই নমনীয় নয়, অনেকটা লোহার মত, যার আকার আকৃতির পরিবর্তন করতে অনেক কাঠখড় পোড়াতে হয়। প্রথমে দেখে নিই, এই নামকরণগুলোর সার্থকতা।
ল্যাপটপ দিয়েই শুরু করি। ধরুন আপনার বান্ধবীর কাছ থেকে আপনি একটা ল্যাপটপ উপহার পেলেন। আপনি কী করবেন? খুব সম্ভবত প্রথমে আপনি পাওয়ার সুইচ অন করবেন। এরপর পাসওয়ার্ড দেওয়া থাকলে সেটা জেনে নিয়ে কিবোর্ডের এন্টার বোতামে টোকা মারলে, আপনাকে ল্যাপটপ তার ডেস্কটপে বা মূল পর্দায় নিয়ে যাবে। সেখানে দেখতে পাবেন একাধিক আইকন, ফাইল এবং ফোল্ডার। ধরা যাক, একটা ফোল্ডার আছে যার নাম পার্সোনাল। আপনি এই ফোল্ডারটা মাউস বা টাচ প্যাডের মাধ্যমে খুলতে পারেন। এর ভিতরে হয়ত ছবি আছে, বা অন্য কোনো ফোল্ডার কি ফাইল আছে। সেগুলোও আপনি খুলতে পারেন। কিবোর্ডের সাহায্যে তাদের নাম পাল্টে দিতে পারেন এবং চাইলে ডিলিট বোতামে টোকা মেরে মুছে ফেলতে পারেন। আবার আপনার ইচ্ছা হলে আপনি নতুন ফোল্ডার তৈরি করতেও পারেন। শুধু ফাইল বা ফোল্ডারই নয়, আপনার ল্যাপটপে ইন্টারনেট থাকলে আপনি এখনই যে কোনো ফ্রি সফটওয়্যার, যেমন ধরুন পাইথন, ডাউনলোড করতে পারেন, ব্যবহার করতে পারেন, আবার ডিলিটও করে দিতে পারেন। তাই বলা যায়, এগুলো নমনীয় বা সফট — মাউসের ক্লিকে বা কিবোর্ডের বিভিন্ন বোতামে টোকা মেরে এদের সহজেই নিয়ন্ত্রণ করা যায়। তাই এরা সফটওয়্যারের অংশ। মোটামুটি ভাবে বলা যায়, মাউসের ক্লিকে বা কিবোর্ডের বিভিন্ন বোতামে টোকা মেরে যাদের সহজেই নিয়ন্ত্রণ করা যায়, তারাই সফটওয়্যার।
হার্ডওয়্যার নামকরণের সার্থকতা বিচারের আগে আসুন আমরা আর কয়েকটা জিনিস ঝালিয়ে নিই। ধরুন টিভিতে হঠাৎ দেখলেন খুব ভালো ক্রিকেট খেলা হচ্ছে ভারত আর পাকিস্তানের মধ্যে। আপনার মনে প্রশ্ন আসতে পারে যে খেলাটা আসলে কোথায় হচ্ছে? কলকাতার ইডেন গার্ডেন্সে, না মুম্বইয়ে, নাকি করাচিতে? টিভির ভিতরে যে অতগুলো খেলোয়াড়, আম্পায়ার বা লক্ষাধিক দর্শক ঢুকে বসে নেই — সে তো জানা কথাই। একইভাবে, এই যে ফোল্ডার বা সফটওয়্যার ইনস্টল করে তা নিয়ে নানারকম কাজকর্ম করা হয়, যা আমরা ল্যাপটপের পর্দায় দেখতে পাই — সেসব কর্মযজ্ঞ সংঘটিত হয় কোথায়? সবই হয় হার্ডওয়্যারে। এই হার্ডওয়্যার, কিবোর্ডের নীচে, ল্যাপটপের ভিতরে, সযত্নে গেঁথে রাখা হয়। এক অর্থে এই হার্ডওয়্যারই যে কোনো কম্পিউটারের প্রাণকেন্দ্র। আরেক অর্থে একে নাটের গুরুও বলা যায়। নামের মধ্যেই হার্ডওয়্যারের মূল বৈশিষ্ট্য লুকিয়ে: হার্ডওয়্যার মানে কঠিন জিনিস — যাকে সহজে নমনীয় করা যাবে না। মাউসের ক্লিকে বা কিবোর্ডে টোকা দিয়ে হার্ডওয়্যারের রূপান্তর সম্ভব নয়। হার্ডওয়্যারের ব্যাপারে আরেকটু বিস্তারে একটু পরে বলব। এখানে শুধু বলে রাখি হার্ডওয়্যার আর সফটওয়্যারের মধ্যে এক ধরণের ভাষার আদান-প্রদানের মাধ্যমেই কম্পিউটারের যাবতীয় কাজ সম্পন্ন হয়। কী এই ভাষা? আদান-প্রদানই বা হয় কী করে? আস্তে আস্তে আমরা সেসব দেখব।
এখানে বলে রাখা ভালো যে হার্ডওয়্যার যেমন কম্পিউটারের প্রাণকেন্দ্র, তেমনি হার্ডওয়্যারের প্রাণকেন্দ্র হলো সি পি ইউ বা সেন্ট্রাল প্রসেসিং ইউনিট, যার বাংলা অনুবাদ হতে পারে মূল প্রক্রিয়াকরণ কেন্দ্র। এই সি পি ইউ তে থাকে লক্ষ লক্ষ ট্রাঞ্জিস্টার। একেকটি ট্রাঞ্জিস্টারের আকার চুলের প্রস্থের থেকেও কম। এই লক্ষাধিক ট্রাঞ্জিস্টার সম্মিলিতভাবে তথ্যের বা ভাবের আদান-প্রদানে সাহায্য করে। আর আছে মেমরি বা স্মৃতি ভান্ডার যেখানে সি পি ইউ তার প্রাথমিক কাজগুলো করে জমা রাখে আর জমা করা কাজগুলো নিয়ে তার সাথে কিছু যোগ বিয়োগ করে তার ফলাফল জানিয়ে দেয় — যা আমরা কম্পিউটারের পর্দায় দেখতে পাই বা সাউন্ড সিস্টেমে শুনতে পাই। এগুলোর আলোচনায় আমরা আবার যেমনসময়ে ফিরে আসব।
কম্পিউটারের ভাষা
আমাদের ভাষা যেমন বাংলা, তেমনি কম্পিউটারের ভাষা হচ্ছে অঙ্কের ভাষা। কম্পিউটারে এই অঙ্ক কষা হয় একটু অন্যভাবে। কীভাবে? আসুন, আস্তে আস্তে একটু বোঝার চেষ্টা করি। প্রথমে সংখ্যার দিকে তাকানো যাক। আমাদের প্রচলিত অংকে মূল সংখ্যা দশটা, যেমন ০, ১, ২, ৩, ৪, ৫, ৬, ৭, ৮, ৯। অন্য যে কোনো সংখ্যা এই দশটা মূল সংখ্যার সাহায্যে নির্মিত। আপনার জন্ম যদি ১৯৫০ সালে হয়, তা হলে আপনার জন্মসাল চারটে মূল সংখ্যা দিয়ে তৈরি। আর আপনার জন্মসাল যদি ২০০১ হয়, তাহলে তার মধ্যে তিনটে মূল সংখ্যা লুকিয়ে আছে। যাই হোক, এই দশটা সংখ্যার উপর ভিত্তি করে যে গণনা করা হয় তাকে বলা হয় ডেসিমাল সিস্টেম। বলাই বাহুল্য, পৃথিবীর সর্বত্র, এই ডেসিমাল সিস্টেমেরই ব্যবহার হয় মোটামুটি প্রায় সব ধরণের গণনার জন্য।
এখন ধরে নেওয়া যাক, কাল থেকে দেশে ফতোয়া জারি হলো যে দুটোর বেশি মূল সংখ্যা ব্যবহার করা যাবে না। তাই দিয়ে সব কাজ চালাতে হবে। এ-ও বলে দেওয়া হল যে এই দুই মূল সংখ্যার নাম হবে দিলীপ আর মদন, বা সংক্ষেপে দ আর ম। দিলীপ বা দ ছোট আর মদন বা ম বড়। ডেসিমাল সিস্টেমের মত ধরা যাক এর নামকরণ কর হলো দম বা মদ সিস্টেম। তাহলে এই নতুন নিয়মে ছোট থেকে বড় আকারে সংখ্যাগুলো দেখতে লাগবে অনেকটা এরকম: আমরা যাকে ডেসিমাল সিস্টেমে ০ (শূন্য) বলে জানি সে হবে দ, ১ হবে ম, ২ হবে মদ, ৩ হবে মদদ, ৪ হবে মদম, ৫ হবে মমদ, ইত্যাদি ইত্যাদি। একটু ঠান্ডা মাথায় ভাবলে বোঝা যায় যে, ডেসিমাল সিস্টেমে যত বড় সংখ্যাই হোক না কেন, যেমন ১৮৬০০০, একে দম বা মদ সিস্টেমের দ আর ম দিয়ে প্রকাশ করা সম্ভব।
এবার আসল কথাটা বলি। এই দম বা মদ সিস্টেম সত্যিই আছে। যদিও তার নাম দম বা মদ নয়। তার নাম বাইনারি সিস্টেম। আর বাইনারি সিস্টেমে সব কিছু সাধারণত ০ (শূন্য) আর (১) এক দিয়ে প্রকাশ করা হয়। মানে দিলীপ হল ০ আর মদন হল ১। তাই বাইনারিতে ছোট থেকে বড় আকারে লিখলে তা হবে ০, ১, ১০, ১১, ১০০, ১০১, ১১০, ১১১, ১০০০, ১০০১...ইত্যাদি ইত্যাদি। আর এদেরকে পড়তে শূন্য, এক, এক শূন্য, এক এক, এক শূন্য শূন্য, এক শূন্য এক...। ভুলেও দশ বা একশো বলা যাবে না, কারণ বাইনারিতে ওগুলোর কোনো অস্তিত্ব নেই। আর বলাই বাহুল্য, ডেসিমাল থেকে বাইনারিতে বা বাইনারি থেকে ডেসিমালে রূপান্তর করা সহজেই সম্ভব — কেবলমাত্র প্রাকৃতিক সংখ্যাই নয়, ভগ্নাংশ, ঋণাত্মক সংখ্যা সব ক্ষেত্রে। একইভাবে বাইনারি সিস্টেমে যোগ, বিয়োগ, গুণ, ভাগ করাও সহজেই সম্ভব।
কীভাবে গোনা হয়?
বাইনারি ডেসিমালের ব্যাপারে আবার যেমন সময়ে আমরা ফিরে আসব। এখন দেখি গণনা কীভাবে আর কত রকমভাবে করা যেতে পারে। ধরা যাক, পাড়ায় ক্রিকেট খেলা হচ্ছে। প্রতি বলে কত রান হচ্ছে তা দেখার দায়িত্ব দেওয়া হয়েছে সন্টুকে। আর এ কাজের জন্য ওকে একটা ভেঁপু দেওয়া হয়েছে। ব্যাটসম্যান যখন যা রান করে ওকে সাথে সাথে ভেঁপু বাজিয়ে জানিয়ে দিতে হয়। কোনো রান না হলে কোনো ভেঁপু বাজে না। এক রান হলে একবার ভেঁপু বাজে। দুই রান হলে দুবার। এইভাবে ছয় মারলে ছবার ভেঁপু বাজায় সন্টু। দুবার ভেঁপু বাজাবার মাঝে একবার থামতেও হয় সন্টুকে, তা না হলে দুটো ভেঁপুর আওয়াজকে আলাদা করা যায় না। একবার ভেঁপু বাজাতে সন্টুর সময় লাগে ১০ সেকেন্ড আর মাঝে দম নেওয়ার সময় পাঁচ সেকেন্ড। তাই কোনো রান না হলে সেই অর্থে কোনো সময় লাগে না জানাতে। এক রান হলে ১৫ সেকেন্ড সময় লাগে। কিন্তু ছয় মারলেই মুশকিল। এতে সন্টুর সময় লেগে যায় এক মিনিটের বেশি।
তাই রেগেমেগে পাড়ার কেষ্টকাকু আরও পাঁচটা ভেঁপু কেনার নির্দেশ দিল। প্রধানমন্ত্রী ভেঁপু প্রকল্প থেকে টাকাও জোগাড় হল। এবার শুধু সন্টু নয়, বল প্রতি রান গোনার কাজে লাগানো হল ভোম্বল, বুড়ো, ক্যাবলা, সাঁটুল আর ভোঁদোলকে। এর ফলে একটা সমান্তরাল রাস্তা খুলে গেল। কোনো রান না হলে কেউ ভেঁপু বাজায় না। এক রান হলে শুধু সন্টু বাজায়। দু রান হলে সন্টু আর ভোম্বল একসাথে। তেমনি করে ছয় রান হলে ছজন একসাথে ভেঁপু বাজায়। তাই এক বলে যত রানই হোক, মোটামুটি ১০ থেকে ১৫ সেকেন্ডের মধ্যে গোনা হয়ে যায়।
এখানে একটা প্রশ্ন আছে। এক বলে কত রান হল তা জানার জন্য কি সত্যিই ছটা ভেঁপুর প্রয়োজন আছে? না। একটু চিন্তা করলে দেখা যাবে, এর থেকে কম ভেঁপুতেও একই সময়ের মধ্যে ছয় রান অব্দি গোনা সম্ভব? পরের অনুচ্ছেদটা পড়ার আগে এই প্রশ্নটা নিয়ে একটু ভাবতে অনুরোধ করব। মনে পড়ে, যুক্তি তক্কো আর গপ্পো ছবিতে ঋত্বিক ঘটক উৎপল দত্তকে বলছেন ”ভাবো ভাবো, ভাবা প্র্যাক্টিস করো।”?
আসলে শূন্য থেকে ছয় অবধি গুনতে ছটা ভেঁপুর প্রয়োজন নেই। প্রথমে একটা, সন্টুর ভেঁপুর কথাই ধরা যাক। ওর ভেঁপু দিয়ে ০ বা ১ গোনা সম্ভব — ও ভেঁপু না বাজালে ০ আর বাজালে ১। মানে একটা ভেঁপু দিয়ে দুটো সংখ্যা, যেমন ০ আর ১ গোনা সম্ভব। এবার যদি দুটো ভেঁপু নেওয়া হয়, যেমন সন্টু আর ভোম্বলেরটা, তা হলে দেখা যাক আমরা কত অবধি গুনতে পারি। এমন নিয়ম হতেই পারে যে যদি কেউ ভেঁপু না বাজায় তাহলে সেটা ০, শুধু সন্টু বাজালে ১, শুধু ভোম্বল বাজালে ২ আর উভয়ে বাজালে ৩। তা হলে দুটো ভেঁপু দিয়ে মোট ৪ (চার)খানা সংখ্যা গোনা সম্ভব, যেমন ০, ১, ২ আর ৩। এবার দেখব তিনটে ভেঁপু দিয়ে আমরা কতগুলো সংখ্যা গুনতে পারি। পরের লাইনটা পড়ার আগে, আমি অনুরোধ করব নিজেরা একবার ভেবে দেখুন। ভাবা হয়ে গেলে আবার আমরা ফিরে আসি ভেঁপুতে। এখন আমাদের কাছে তিনটে ভেঁপু আছে, সন্টু, ভোম্বল আর ক্যাবলার। এবারের নিয়ম এরকম, যদি কেউ ভেঁপু না বাজায় তাহলে ০, শুধু সন্টু বাজালে ১, শুধু ভোম্বল বাজালে ২, সন্টু আর ভোম্বল বাজালে ৩,শুধু ক্যাবলা বাজালে ৪, ক্যাবলা আর সন্টু বাজালে ৫, ক্যাবলা আর ভোম্বল বাজালে ৬ আর তিনজনে একসাথে বাজালে ৭। তাই তিনটে ভেঁপু দিয়ে মোট আটটা সংখ্যা গোনা সম্ভব। একটু ভাবলে বোঝা যায় যে, যদি ’ন’ সংখ্যক ভেঁপু থাকে তাহলে মোট ২ টু দ্য পাওয়ার ন (২ন) টি সংখ্যা গোনা সম্ভব। তার মানে ৬টা ভেঁপু দিয়ে মোট ২৬ মানে ৬৪ টা আর ৫০টা ভেঁপু দিয়ে মোট ২৫০ টা মানে ১১২৫৮৯৯৯০৬৮৪২৬২৪ গুলো সংখ্যা গোনা সম্ভব।
কম্পিউটারে ভেঁপু বাজায় কে?
আবার কম্পিউটারে ফিরে আসি। এক অর্থে কম্পিউটারের মূল কাজ গণনা আর যোগ বিয়োগ করা। আর এই গণনা, যোগ বিয়োগের কাজটা কম্পিউটার করে থাকে বাইনারি সিস্টেমে, মানে যেখানে সব কিছু ০ আর ১ দিয়ে লেখা হয়, যার কথা আমি এতক্ষণ বললাম। আর এই কাজ করতে সাহায্য করে অসংখ্য ট্রানজিস্টার যা কম্পিউটার এর সি পি ইউ-তে আছে। অসংখ্য মানে অসংখ্য। লক্ষ লক্ষ। আমরা যখন কম্পিউটারের পাওয়ার অন করি, তা থেকে এই ট্রানজিস্টারগুলো সক্রিয় হয়ে ওঠে। যে কোনো একটা ট্রানজিস্টারের কথাই ধরা যাক। এই ট্রানজিস্টার দুটো দশায় থাকতে পারে— অন আর অফ। ঘরের বৈদ্যুতিক আলো জ্বালাবার জন্য আমরা যেমন সুইচ অফ আর অন করি, সেরকম। অথবা সন্টুদের ভেঁপু বাজাবার মতো। যদি ভেঁপু বাজে তো অন, আর না বাজলে অফ। ট্রানজিস্টার যদি অফ থাকে তাহলে সেটা হবে ০ (শূন্য) আর যদি অন থাকে তাহলে সেটা হবে ১। তাই একেবারে ভেঁপুর মতই ১টা ট্রাঞ্জিস্টার দিয়ে মোট ২টো, ২টো ট্রান্সিস্টার দিয়ে মোট ৪টে, তিনটে দিয়ে ৮টা আর ৫০টা ট্রাঞ্জিস্টার দিয়ে মোট ১১২৫৮৯৯৯০৬৮৪২৬২৪গুলো সংখ্যা গণনা সম্ভব। আর লক্ষ লক্ষ ট্রানজিস্টার দিয়ে কত সংখ্যা গোনা যায় তা আর বলার অপেক্ষা রাখে না।
শুধু গণনাই নয়, এই ট্রাঞ্জিস্টারগুলো ইলেক্ট্রিকাল সার্কিটে এমনভাবে যুক্ত থাকে তা দিয়ে যোগ, বিয়োগ, ভগ্নাংশ এমন নানাবিধ অঙ্ক কষাও সম্ভব। কম্পিউটার যেভাবে অঙ্ক কষে তাকে লজিক অপারেশন বলে। আর ট্রাঞ্জিস্টারগুলোকে কায়দা করে জুড়ে যে ছোট ছোট অঙ্ক কষার ইউনিট তৈরি করা হয় তাদের বলে লজিক গেট। লজিক অপারেশন, গেট অপারেশন, লজিক গেট — এই কথাগুলো অর্থের দিক থেকে বেশ কাছাকাছি।
কম্পিউটারে ট্রানজিস্টারদের অঙ্ক কষা আর সন্টু আর ভোম্বলদের ভেঁপু বাজিয়ে অঙ্ক কষার মধ্যে সেই অর্থে খুব বেশি তফাৎ নেই — অন্তত মৌলিক নীতির দিক থেকে। শুধুমাত্র সন্টুদের একবার ভেঁপু বাজাতে সময় লাগে কয়েক সেকেন্ড আর এই কয়েক সেকেন্ডে কম্পিউটারের ট্রানজিস্টার কয়েক লক্ষবার ভেঁপু বাজিয়ে দেয়। ফলে আধুনিক কম্পিউটারে অনেককিছুই হয় চোখের পলকে — মাউস ক্লিক করার সাথে সাথে ছবি বা ফোল্ডার খুলে যায়, বা হাতের তালুতে ধরা ক্যালকুলেটর বড় বড় গুণ করে চোখের নিমেষে। আপনাদের জন্য প্রশ্ন: ট্রাঞ্জিস্টার এত দ্রুত ভেঁপু বাজায় কী করে? ভেঁপু বাজানো আমি অবশ্য আক্ষরিক অর্থে বলছি না, অফ আর অন হওয়াকে বোঝাচ্ছি।
এখানে আরও একবার বলি: এই সংখ্যা আর অঙ্ক দিয়েই কম্পিউটারের যাবতীয় কাজকর্ম সম্পন্ন হয়। কম্পিউটারে আমরা যখন কিছু লিখি, যেমন এখন আমি লিখছি, প্রত্যেকটা অক্ষরকে একেকটা সংখ্যা দ্বারা কম্পিউটার চেনে। যেমন এ কে ১, বি কে ২ ইত্যাদি ইত্যাদি। তেমনি প্রত্যেকটা রং, প্রত্যেকটা শব্দের পিছনে একেকটা সংখ্যা লুকিয়ে আছে। একটা পরিপূর্ণ ছবিকে বোঝাতে তাই অনেক বড় কোনো সংখ্যা এবং সাথে সাথে অনেকগুলো ট্রাঞ্জিস্টারকে কাজে লাগাতে হবে। যত বেশি ট্রানজিস্টার আমার কম্পিউটারে থাকবে, তত বেশি কাজ একসাথে আমার কম্পিউটার করতে পারবে। আর এই ট্রানজিস্টার যত ছোট হবে, আমার কম্পিউটারের কলেবরও তত ছোট হবে। সেই কারণে বিগত বহু দশক ধরে বিজ্ঞানীরা একনাগাড়ে চেষ্টা চালিয়ে ট্রানজিস্টারকে ক্ষুদ্র থেকে ক্ষুদ্রতর করে তুলেছেন।
কেন ন্যানো?
কেমনভাবে সময়ের সাথে সাথে ট্রানজিস্টার ক্ষুদ্র থেকে ক্ষুদ্রতর হচ্ছে তা বোঝা যাবে নিম্নলিখিত পরিসংখ্যান থেকে। ১৯৭১ সালে, বাংলাদেশের মুক্তিযুদ্ধের সময় ট্রাঞ্জিস্টারের আকার ছিল ১০ মাইক্রন। ১৯৮৩ সালে কপিলদেবের নেতৃত্বে ভারত যখন বিশ্বকাপ জিতল, তখন ট্রাঞ্জিস্টারের আকার কমে হল ১ মাইক্রন। সত্যজিৎ রায় যখন অস্কার পেলেন ১৯৯২ সালে তখন ট্রাঞ্জিস্টারের আকার আরও কমে হল ০.৩৫ মাইক্রন (৩৫০ ন্যানোমিটার)। এই শতাব্দীর গোড়ায় ট্রাঞ্জিস্টারের আকার ছিল ০.১৩ মাইক্রন (১৩০ ন্যানোমিটার)। আর হালে সেটা কমে দাঁড়িয়েছে ০.০০৫ মাইক্রন এ (৫ ন্যানোমিটার)।
এখানে বলা দরকার যে, ১ মিলিমিটারের ১ হাজার ভাগের এক ভাগ হলো ১ মাইক্রন। ১ মাইক্রন ঠিক কত ছোট তা বোঝা যায় এ থেকে যে মানুষের চুলের গড় ব্যাস হল ৭০ মাইক্রন মত। তাহলে আমরা যদি আমাদের মাথার একটা চুল ছিঁড়ে, কাঁচি দিয়ে, আড়াআড়ি ৭০ ভাগে ভাগ করতে পারি, তাহলে সেই ৭০ ভাগের এক ভাগ হবে ১ মাইক্রন এর মত। আর এই ১ মাইক্রনের ১ হাজার ভাগের এক ভাগ হলো ১ ন্যানোমিটার। তাই বলা যায় বিগত তিন দশকে ট্রাঞ্জিস্টারের আকার ছোট হতে হতে ন্যানোমিটারে নেমে এসেছে। ন্যানোসায়েন্স আর ন্যানোটেকনোলজি নিয়ে যে এত লোকের এত মাতব্বরি, তার পিছনে এ-ও এক অন্যতম কারণ।
ন্যানোটেকনোলজির বিরাট প্রগতিকে কাজে লাগিয়ে, ট্রাঞ্জিস্টারের এ হেন কলেবর হ্রাসের ফলে, আজ থেকে কুড়ি-তিরিশ বছর আগেও একটা বিরাটকায় হোঁদল কুতকুত ডেস্কটপ যা করতে পারত না, এখন হাতের তালুতে ধরা একটা বাচ্চা কিউট স্মার্টফোনও সে কাজ করে দিতে পারে।
বিট আর বাইট?
বিট কী? আর বাইটই বা কী? কম্পিউটার নিয়ে এতক্ষণ হাবিজাবি লেখার পরে বিট বাইটের প্রশ্ন উত্থাপন করাটাকে অনেকে ”সাতকাণ্ড রামায়ণ পড়ে সীতা রামের মাসি” ভাবতেই পারেন। কারণ বিট বাইটের কথা প্রত্যক্ষভাবে না বললেও এদের নিয়ে ইতিমধ্যেই বিস্তর আলোচনা হয়ে গেছে। বিট হলো ক্ষুদ্রতম তথ্য বা ক্ষুদ্রতম তথ্যের ভান্ডার। এর দুটো সম্ভাব্য দশা। কোনো একটা মুহূর্তে এই দুটোর মধ্যে যে কোনো একটা অবস্থায় এটা থাকতে পারে। যেমন ট্রাঞ্জিস্টারের কথা আগেই বলা হয়েছে। যে কোনো মুহূর্তে এটা অফ অথবা অন অবস্থায় থাকতে পারে। একই সাথে অফ বা অন হতে পারে না। অথবা সন্টুর ভেঁপুর মত। যে কোনো মুহূর্তে ভেঁপু হয় বাজছে অথবা বাজছে না। একই সাথে ভেঁপু বাজছে এবং বাজছে না, এমনটা সম্ভব নয়। তাই বলা যায়, একটা ট্রাঞ্জিস্টার বা একটা ভেঁপু একটা বিটের কাজ করে। আর আটটা বিট নিয়ে হলো এক বাইট।
কম্পিউটারের মেমরিও মাপা হয় এই বিট আর বাইট দিয়ে। মেমরির যে ক্ষুদ্রতম অংশবিশেষ, তা-ও অফ বা অনের মত বা ভেঁপু বাজা বা না বাজার মত দুটোর মধ্যে যে কোনো একটা সম্ভাব্য দশায় থাকতে পারে। তবে আধুনিক কম্পিউটারে মেমরির কাজে ট্রাঞ্জিস্টারের জায়গায় চুম্বককে কাজে লাগানো হয়। চুম্বকের কটা মেরু? মনে আছে ত সবার?
কোয়ান্টাম বিট
সাধারণ কম্পিউটারে থাকে সাধারণ বিট বা সাধারণ শব্দটি বাদ দিয়ে শুধু বিট — যাদের কথা এতক্ষণ ধরে বলছি। আর কোয়ান্টাম কম্পিউটারে থাকে কোয়ান্টাম বিট। এতক্ষণ যে বিটের কথা বলেছি, তা সে ট্রাঞ্জিস্টারই হোক বা চুম্বকই হোক আর ভেঁপুই হোক, তারা যে কোনো মুহূর্তে একটা দশায় থাকতে পারে, যেমন অফ অথবা অন। কোয়ান্টাম বিটের মজা হল, এটা যে কোনো মুহূর্তে একই সাথে অফ এবং অন থাকতে পারে। মানে যদি আমাদের ল্যাপটপের ট্রাঞ্জিস্টারগুলো কোয়ান্টাম ট্রাঞ্জিস্টার হত, তাহলে তারা একইসঙ্গে অফ ও অন অবস্থায় থাকতে পারত। অথবা সন্টুর ভেঁপু যদি কোয়ান্টাম ভেঁপু হত, তাহলে সন্টু একই মুহূর্তে ভেঁপু বাজাতে এবং না বাজাতে পারত। কিন্তু বেদনার কথা, আমাদের ল্যাপটপের ট্রাঞ্জিস্টার বা সন্টুর ভেঁপু, কোনোটাই কোয়ান্টাম নয়।
একই সাথে অফ আর অন থাকাকে তরঙ্গবলবিদ্যার (কোয়ান্টাম মেকানিক্স) ভাষায় বলা হয় উপরিপাত (সুপার পসিশন)। উপরিপাতের ক্ষেত্রে যা গুরুত্বপূর্ণ তা হল অফ আর অন অবস্থার অনুপাত নির্ণয় করা। এটা অনেকটা জলের পাইপের প্যাঁচ খোলার মতো। যদি প্যাঁচ পুরোটা এঁটে দেওয়া হয় তাহলে কোন জল পড়ে না। একে অফ অবস্থা বলা যেতে পারে। এই অবস্থায় অনের ভাগ শূন্য। আবার প্যাঁচ পুরোটা খুলে দিলে, সবচেয়ে বেশি বেগে জল পড়ে। একে পুরোপুরি অন অবস্থা বলা যেতে পারে, এই অবস্থায় অফের অনুপাত শূন্য। এই দুই অন্তিম অবস্থার মাঝে আমরা জলের প্যাঁচকে নানা জায়গায় রাখতে পারি, যেখানে জল আংশিক বেগে পড়বে। ধরা যাক, পুরোপুরি প্যাঁচ খুলে দিলে প্রতি মিনিটে জল পড়ে ১০০ মিটার কিউব। আর প্যাঁচ অ অবস্থানে থাকলে জল পড়ে মিনিটে ৪০ মিটার কিউব। তাই বলা যায় অ অবস্থায় জলের প্যাঁচটা ৪০ ভাগ অন আর ৬০ ভাগ অফ আছে। বলাই বাহুল্য এটা উপমামাত্র — জলের প্যাঁচ কোনো কোয়ান্টাম বস্তু নয়। তাই এ দিয়ে কোয়ান্টাম কম্পিউটার বানানো সম্ভব নয়।
কোয়ান্টাম বিটের উদাহরণে আমরা পরে আসব। তার আগে বলে নেওয়া যাক, এই উপরিপাতন নীতির ফলে একটা অবিশ্বাস্য ব্যাপার ঘটে। ভেঁপু বাজিয়ে সন্টুদের রান গোনার ব্যাপারটায় ফিরে যাওয়া যাক। একটা ভেঁপু দিয়ে শূন্য বা এক, কোন অবস্থায় যে কোনো একটা গোনা সম্ভব; একই সাথে শূন্য এবং এক গোনা সম্ভব নয়। সন্টুর কাছে কোয়ান্টাম ভেঁপু থাকলে ও একই সাথে শূন্য এবং এক গণনা করতে পারত এই উপরিপাতন নীতিকে কাজে লাগিয়ে।
তেমনি একইভাবে, যেমন আগে ব্যাখ্যা করা হয়েছে, সন্টুদের ৫০টা ভেঁপু দিয়ে মোট ১১২৫৮৯৯৯০৬৮৪২৬২৪ অবধি সংখ্যা গোনা সম্ভব; তবে যে কোনো অবস্থায় এতগুলোর মধ্যে কেবলমাত্র যে কোনো একটা সংখ্যাকেই গোনা যাবে। আর সন্টুদের কাছে কোয়ান্টাম ভেঁপু থাকলে ওরা একই সাথে শূন্য থেকে ১১২৫৮৯৯৯০৬৮৪২৬২৪ অব্দি যত সংখ্যা আছে, সবই একসাথে গণনা করতে পারত। ফলে গণনার কাজ অনেক দ্রুত হত এই সমান্তরাল রাস্তা খুলে যাবার ফলে।
উপরিপাতের মতোই আরেকটা জাদুকরী ক্ষমতা কোয়ান্টাম বিট দেখাতে পারে, যার নাম কোয়ান্টাম গাঁটছড়া (কোয়ান্টাম এন্ট্যাঙ্গলমেন্ট)। কোয়ান্টাম গাঁটছড়া বুঝতে দুটো কোয়ান্টাম বিট দরকার, একটা দিয়ে হবে না। দুটো কোয়ান্টাম বিট যখন নিজেদের মধ্যে কোয়ান্টাম গাঁটছড়া অবস্থায় থাকে, তখন একে অপরের থেকে তারা যত দূরেই থাকুক না কেন, তাদের সব কিছু ওতপ্রোতভাবে জড়িয়ে যায়। ফলে আমরা যদি কোনো একটা কোয়ান্টাম বিটের ধর্ম জানতে পারি, তাহলে প্রায় কোনো কিছু না করেই অন্যটার ধর্মও সাথে সাথে জানা যায়। একটার অবস্থার পরিবর্তন হলে অন্যটার অবস্থার কী পরিবর্তন হচ্ছে সেটাও তাৎক্ষণিক অনুধাবন করা যায়। উপমা হিসাবে, ধরা যাক, গণেশ আর সাবিনা কোয়ান্টাম গাঁটছড়া অবস্থায় আছে। গণেশ আছে হিমালয়ে আর সাবিনা হনুলুলুতে। কেউ যদি এখন দেখে গণেশ দাঁড়িয়ে আছে তাহলে নিশ্চিত করে বলা যাবে যে সাবিনা বসে আছে। এখন কেউ যদি গণেশকে জোর করে বসিয়ে দেয়, তাহলে সাবিনা আপনা আপনি দাঁড়িয়ে যাবে। এখানেও বড়োই মনোবেদনার কথা এই যে গণেশ বা সাবিনা কেউই কোয়ান্টাম পদার্থ নয়।
লজিক গেটের কথা বলেছি যা দিয়ে সাধারণ কম্পিউটার তার অঙ্ক কষে। কোয়ান্টাম কম্পিউটারে তেমনি অঙ্ক কষা হয় কোয়ান্টাম গেটের সাহায্যে। আশা রাখি এ সম্বন্ধে বিস্তারিত পরের লেখায় জানাব। এখানে শুধু বলে রাখি যে উপরিপাতন, কোয়ান্টাম গাঁটছড়া, কোয়ান্টাম গেট ও এমনি আরও কিছু কোয়ান্টাম মেকানিক্সের নীতিকে কাজে লাগিয়ে, কোয়ান্টাম কম্পিউটার এমন কিছু করতে সমর্থ হবে, যা করতে একটা সাধারণ কম্পিউটারের বহু যুগ লেগে যাবে।
এখন একগুচ্ছ প্রশ্ন উঠবে। যেমন: কোয়ান্টাম বিট কীভাবে বানানো হয়? কোয়ান্টাম মেকানিক্সের ভূমিকাটাই বা কি? কোয়ান্টাম কম্পিউটার যদি এতই ভাল হয় — বানাতে অসুবিধাটা কোথায়? কোয়ান্টাম কম্পিউটারের কাজ কতদূর এগিয়েছে? সব ধরণের কাজের জন্যই কি কোয়ান্টাম কম্পিউটার ভাল, নাকি বিশেষ কিছু কাজের জন্য? আর টাকাপয়সার ব্যাপারটা? মানে বানাতে খরচ কেমন? ভ্যালেনটাইন্স ডে বা সরস্বতীপুজোর দিন কোয়ান্টাম কম্পিউটার উপহার পাবার সম্ভাবনা কতদূর? — এ সব নিয়ে আশা করি পরের লেখায় কথা হবে। তবে কবে হবে তা জানি না। সবাইকে মনে করিয়ে দেব যে কোয়ান্টাম মেকানিক্স বা তরঙ্গ বলবিদ্যার অন্যতম মূল নীতি হচ্ছে অনিশ্চয়তার নীতি—হেইসেনবার্গ মহাশয়ের আনসার্টেনটি প্রিন্সিপল।
কৃতজ্ঞতা স্বীকার: গাধা পিটিয়ে ঘোড়া হয় না— এ কথা সম্ভবত সত্য। তবে সম্পাদনা ও সংশোধনের গুণে অনেক অপাঠ্য লেখা আংশিক পাঠোপযোগী হয়ে উঠলেও উঠতে পারে। আর এ বিষয়ে প্রতীক আমাকে খুব সাহায্য করেছে। আমার কিছু বৈজ্ঞানিক বন্ধু লেখাটা পড়ে তাদের সুচিন্তিত মতামত জানিয়েছে: পবিত্র, পবিত্রর এক বন্ধু যার নাম ও আমায় জানায় নি, অৰ্পণ আর অনিরুদ্ধ— এদেরকে আন্তরিক কৃতজ্ঞতা জানাই।
Commentaires