কম্পিউটার মেমোরি: জানার আছে কতকিছু।
সিপিইউ একটি নির্দিষ্ট হায়ারার্কি অনুসারে মেমোরিতে অ্যাকসেস নেয়। সিপিইউ, হার্ড ড্রাইভ বা অপারেটিং সিস্টেম, একটি কম্পিউটারের প্রতিটি কম্পোনেন্টই সবাই মিলে একটি দল হিসেবে কাজ করে, আর এই দলের এক অপরিহার্য সদস্য হচ্ছে মেমোরি। কম্পিউটারকে স্টার্ট দেয়া শুরু করে শাট ডাউন করা পর্যন্ত সিপিইউ প্রতিনিয়ত মেমোরি ব্যবহার করতে থাকে। এ প্রক্রিয়ার দিকে একবার দৃষ্টি দেয়া যাক:
* আমরা কম্পিউটার অন করি।
* কম্পিউটার রিড অনলি মেমোরি থেকে ডাটাকে লোড করে, এবং ‘পাওয়ার অন সেলফ টেস্ট’ নামে একটি পরীক্ষা করার মাধ্যমে নিশ্চিত হয়ে নেয় সবগুলো প্রধান কম্পোনেন্ট ঠিকমত কাজ করছে। এ পরীক্ষার অংশ হিসেবে মেমোরি কন্ট্রোলার দ্রুত একটি ছোট রিড/রাইট অপারেশন সম্পন্য করার মাধ্যমে সবগুলো মেমোরি অ্যাড্রেস চেক করে নিশ্চিত হয়ে নেয় যে মেমোরি চিপগুলোর মধ্যে কোনোরকম সমস্যা নেই। রিড/রাইট মানে হচ্ছে কোনো একটা বিটের মধ্যে এক টুকরো ডাটাকে লেখা হয় এবং আবার পড়া হয়।
* কম্পিউটার এবার রম থেকে বেসিক ইনপুট/আউটপুট সিস্টেম বা বায়োস লোড করে। বায়োস স্টোরেজ ডিভাইস, বুট সিকোয়েন্স, নিরাপত্তা ইত্যাদি সম্পর্কে একেবারে মৌলিক সব তথ্য প্রদান করে।
* কম্পিউটার এবার হার্ড ড্রাইভ থেকে সিস্টেমের র্যামে অপারেটিং সিস্টেমকে লোড করে। কম্পিউটার যতক্ষন অন করা থাকে ততণ অপারেটিং সিস্টেমের সবচেয়ে গুরুত্বপুর্ন অংশগুলো RAM এ লোড করা থাকে। এর ফলে সিপিইউ দ্রুততম সময়ে অপারেটিং সিস্টেমে অ্যাকসেস নিতে পারে, এতে গোটা সিস্টেমের পারফরমেন্স বৃদ্ধি পায়।
* আমরা কোনো সফটঅয়্যার অ্যাপিকেশন খোলার সঙ্গে সঙ্গে সেটাও RAM এ লোড হয়ে যায়। RAM এর ব্যবহার কাম্য মাত্রায় করার জন্য অনেক অ্যাপিকেশন শুধুমাত্র তাদের সবচেয়ে অপরিহার্য অংশগুলোই প্রথমে RAM এ লোড করে, এরপর প্রয়োজনমত বাকি অংশগুলোকে লোড করা হয়।
* কোনো অ্যাপিকেশন লোড হওয়ার পর ঐ অ্যাপিকেশনের অধীনে কোনো ফাইলকে ওপেন করতে হলে সেটিও RAM এ লোড করা হয়।
* আমরা যখন কোনো ফাইলকে সেভ করে অ্যাপিকেশনটি বন্ধ করে দিই তখন ফাইলটিকে হার্ড ড্রাইভ বা আমাদের দেখিয়ে দেয়া স্টোরেজ ডিভাইসে সেভ করার পর ফাইল এবং অ্যাপিকেশন উভয়কেই RAM থেকে মুছে দেয়া হয়।
যতবারই কোনো কিছু লোড বা ওপেন করা হয় তখনই এটাকে RAM এ রাখা হয়। এর মানে হচ্ছে, এটাকে তখন কম্পিউটারের সাময়িক সংরণ এলাকায় রাখা হয় যাতে সিপিইউ-র পে এতে অ্যাকসেস নেয়া সহজ হয়। সিপিইউর কোনো ডাটায় অ্যাকসেস নেবার প্রয়োজন হলে সেটি র্যামের কাছে ঐ ডাটার জন্য অনুরোধ পাঠায়। হাতে পেলে সেটিকে প্রক্রিয়াকরণ করে এবং তারপর ধারাবাহিক একটি প্রক্রিয়ায় RAM এর ওপর প্রক্রিয়াকৃত এই নতুন ডাটাকে লিপিবদ্ধ করে। বেশির ভাগ কম্পিউটার সিস্টেমেই, সিপিইউ এবং র্যামে ডাটা আদান প্রদানের এই প্রক্রিয়া সেকেন্ডে লক্ষ লক্ষ বার ঘটে। কোনো অ্যাপিকেশনকে বন্ধ করা হলে সেটি এবং তার সঙ্গে সম্পর্কিত সব ফাইলকে RAM থেকে মুছে দিয়ে নতুন ডাটার জন্য জায়গা প্রস্তুত করা হয়। RAM থেকে ডাটাকে মোছার আগেই সেটিকে হার্ড ড্রাইভ বা এ ধরনের কোনো স্থায়ী মেমোরিতে রাখা না হলে সে ডাটা হারিয়ে যাবে।
সিস্টেম RAM
কম্পিউটার সিস্টেমে যে RAM ব্যবহৃত হয় তার গতি নিয়ন্ত্রণ করা হয় বাসের প্রশস্ততা এবং বাসের গতি বা বাস স্পীড দিয়ে। বাসের প্রস্থ মানে হচ্ছে, একেকবারে কয় বিট পরিমাণ ডাটা সিপিইউ-র কাছে পাঠানো যাচ্ছে। আর বাসের গতি মানে হচ্ছে, প্রতি সেকেন্ডে বিটের একটি গ্রুপকে কয় বার সিপিইউ-র কাছে পাঠানো যাচ্ছে। মেমোরি থেকে ডাটা যতবার সিপিইউতে যায় ততবারই একটি করে বাস সাইকেল সংঘটিত হয়। উদাহরণস্বরূপ, তত্ত্বগতভাবে, ১০০ মেগাহার্টজের ৩২ বিটের একটি বাস প্রতি সেকেন্ডে ৪ বিট পরিমাণ ডাটা (৩২ বিটের আট ভাগের এক ভাগ) ১০ কোটি বার সিপিইউ-ও কাছে পাঠাতে পারে। আর ৬৬ মেগাহার্টজের ১৬ বিটের একটি বাস প্রতি সেকেন্ডে ২ বাইট পরিমাণ ডাটা ৬৬ মিলিয়ন বা প্রায় সাড়ে ছয় কোটি বার সিপিইউ-র কাছে পাঠাতে পারে। বাস্তবে কিন্তু র্যাম এতটা ভালভাবে কাজ করতে পারে না। ল্যাটেন্সি বলে একটা ব্যাপার ঘটে, যেজন্য RAM এর পারফরমেন্স অনেকটাই খারাপ হয়ে যেতে পারে। ল্যাটেন্সি মানে হচ্ছে এক বিট পরিমাণ তথ্য পড়ার জন্য যে কয়টি ক্লক সাইকেলের প্রয়োজন হয় তা। উদাহরণস্বরূপ, ১০০ মেগাহার্টজ গতিতে কাজ করলে একটি RAM ০.০০০০০০০১ সেকেন্ডে এক বিট পরিমাণ উপাত্ত সিপিইউর কাছে পাঠাতে পারে, কিন্তু প্রথম বিটটি পড়ার প্রক্রিয়া শুরু করতে করতেই এর ০.০০০০০০৫ সেকেন্ড লেগে যেতে পারে।
এই ল্যাটেন্সিকে সামলানোর জন্য সিপিইউ বার্স্ট মোড নামে একটি কৌশল অবলম্বন করে। সিপিইউ যে ডাটার জন্য অনুরোধ করে পাঠায় সেটি মেমোরি সেলে পরপর বা পর্যায়ক্রমিকভাবে সংরক্ষিত আছে, এরকম একটি ধারণার ওপর ভিত্তি করেই কাজ করে বার্স্ট মোড। মেমোরি কন্ট্রোলার ধরে নেয় যে, সিপিইউ যা নিয়েই কাজ করুক না কেন একই সিরিজের অর্থাৎ একই ক্রমধারায় মেমোরি অ্যাড্রেস থেকে সরবরাহ করা হবে। এ ধারণার ওপর ভিত্তি করে সিপিইউ ডাটার পরপর কয়েকটি বিটকে একসঙ্গে পড়ে ফেলে। এর মানে হচ্ছে, শুধুমাত্র প্রথম বিটটির ক্ষেত্রেই ল্যাটেন্সি কাজ করবে। ফলে পরপর অবস্থান করছে এমন বিট পড়ার ক্ষেত্রে অনেক কম সময় খরচ হবে। বেশির ভাগ ক্ষেত্রেই বার্স্ট মোডের সঙ্গে আরেকটা কৌশল প্রয়োগ করা হয় যার নাম পাইপলাইনিং। মেমোরি কন্ট্রোলার মেমোরি থেকে একই সঙ্গে এক বা একাধিক শব্দ পাঠ করে, চলতি শব্দ/শব্দগুচ্ছকে সিপিইউর কাছে পাঠায় এবং এক বা একাধিক শব্দকে মেমোরি সেলে লেখে।
এভাবেই বার্স্ট মোড ও পাইপলাইনিংকে একসঙ্গে ব্যবহার করা হলে ল্যাটেন্সিজনিত ধীরগতিকে অনেকাংশেই এড়ানো সম্ভব। তবে প্রশস্ত ও দ্রুতগতির বাস ব্যবহার করা হলেও মেমোরি কার্ড থেকে সিপিইউতে উপাত্ত যেতে যে সময় লাগে তার চাইতে অনেক দ্রুত সিপিইউ উপাত্ত প্রক্রিয়াকরণ করতে পারে। উপাত্ত সিপিইউতে যাওয়া এবং প্রক্রিয়াকরণ এর মধ্যে গতি বা সময়ের যে তারতম্য সেটাকে নিয়ন্ত্রণ করার জন্যই ব্যবহৃত হয় ক্যাশ ।
ক্যাশ ও রেজিস্টার
উপাত্ত পরিবহন ও প্রক্রিয়াকরনের সময়গত তারতম্যকে কমানোর জন্য ব্যবহার করা হয় ক্যাশ। ক্যাশের উদ্দেশ্য হচ্ছে সিপিইউ যাতে চাওয়া মাত্রই ডাটাকে প্রক্রিয়াকরন করার জন্য হাতের কাছে পায় সেটা নিশ্চিত করা। এ কাজটি করা হয় ঠিক সিপিইউর মধ্যেই খুব অল্প পরিমাণে মেমোরি তৈরি করার মাধ্যমে, যার নাম প্রাইমারি বা লেভেল ওয়ান ক্যাশ । লেভেল ওয়ান ক্যাশ পরিমাণে খুবই কম, ২ কিলোবাইট থেকে ৬৪ কিলোবাইটের মধ্যেই এর আকার থাকে। এছাড়া আছে সেকেন্ডারি বা লেভেল টু ক্যাশ। এটা সাধারণত সিপিইউ-র খুব কাছে অবস্থিত মেমোরি কার্ডের মধ্যে থাকে। লেভেল টু ক্যাশের সঙ্গে সিপিইউ-র সরাসরি সংযোগ থাকে। কম্পিউটারের মাদারবোর্ডে থাকে এল ২ কন্ট্রোলার নামে একটি ডেডিকেটেড ইন্টিগ্রেটেড সার্কিট। এটি সিপিইউ কর্তৃক লেভেল টু ক্যাশের ব্যবহারকে নিয়ন্ত্রণ করে। সিপিইউ-ও ধরনের ওপর নির্ভর করে লেভেল টু ক্যাশের আকার ২৫৬ কিলোবাইট থেকে ২ মেগাবাইট পর্যন্ত হতে পারে। বেশির ভাগ সিস্টেমেই সিপিইউ-র যে ডাটার প্রয়োজন হয় তা শতকরা ৯৫ ভাগ ক্ষেতেই ক্যাশ মেমোরি থেকে গ্রহণ করা হয়, ফলে প্রধান মেমোরি থেকে ডাটা আসার জন্য সিপিইউ-র অপোর সময় অতটা দীর্ঘ হয় না। অর্থাৎ ক্যাশ না থাকলে কম্পিউটারের গতি অসম্ভব ধীর হয়ে যেত। কিছু কিছু কম্পিউটার সিস্টেম আছে যেগুলোতে কোনো লেভেল টু ক্যাশ থাকে না। আবার অনেক উচ্চ মতাসম্পন্য সিপিইউ বর্তমানে পাওয়া যাচ্ছে যেগুলোতে লেভেল টু ক্যাশ সিপিইউ চিপের মধ্যেই বিল্ট-ইন থাকে। কাজেই লেভেল টু ক্যাশের আকার এবং এটি সিপিইউর মধ্যে বিল্ট-ইন আছে কি নেই এটি সিপিইউর কর্মমতা নির্ধারণে গুরুত্বপুর্ন ভূমিকা পালন করে। এদিকে স্ট্যাটিক রেনডম অ্যাকসেস মেমোরি বা SRAM নামে এক ধরনের RAM আছে যেগুলো মূলত ক্যাশের জন্যই ব্যবহার করা হয়। SRAM সাধারণত প্রতিটি মেমোরি সেলের জন্য চার থেকে ছয়টি ট্রানজিস্টর ব্যবহার করে। এ কারণে এসর্যাম অত্যন্ত দ্রুতগতিতে কাজ করতে পারে। ক্যাশে অবস্থানরত SRAM অ্যাসিনক্রোনাস বা সিনক্রোনাস দু রকমের হতে পারে। সিনক্রোনাস SRAM ঠিক সিপিইউর গতির সঙ্গে তাল মিলিয়ে কাজ করার জন্য তৈরি করা হয়, কিন্তু অ্যাসিনক্রোনাসের বেলায় সেটি করা হয় না।
রেজিস্টার
মেমোরি হায়ারার্কির চুড়ান্ততম ধাপ হচ্ছে রেজিস্টার। রেজিস্টার হচ্ছে সিপিইউর মধ্যেই তৈরি করা মেমোরি সেল যেগুলো সিপিইউ-র, বিশেষ করে এর অ্যারিথমেটিক এন্ড লজিক ইউনিট -এর বিশেষভাবে প্রয়োজনীয় উপাত্তগুলো সংরণ করে। রেজিস্টার সিপিইউ-র অপরিহার্য অংশ। এগুলোকে নিয়ন্ত্রণ করার কাজটি করে কম্পাইলার – সিপিইউর কাছে তথ্যকে প্রক্রিয়াকরণ করার জন্য পাঠানোর দায়িত্ব যার ওপর ন্যস্ত।
কে কে ভাবতে পেরেছিল কম্পিউটার এর মেমোরি এত জটিল জিনিস?
0 comments:
Post a Comment