কম্পিউটার মেমরি

কম্পিউটার মেমরি (ইংরেজি: Computer memory) বলতে কোন কম্পিউটার ব্যবস্থায় স্থায়ী বা অস্থায়ীভাবে উপাত্ত ধারণকারী যন্ত্রাংশকে বোঝায়। এগুলি মূলত অর্ধপরিবাহী চিপ দিয়ে বানানো হয়ে থাকে। কম্পিউটার কোন কাজ সম্পাদন করার আগে অ্যাপ্লিকেশন ও উপাত্ত হার্ড ডিস্ক থেকে সিস্টেম মেমরিতে কপি করে নেয়। কম্পিউটারে সাধারণত দুই ধরনের মেমরি থাকে - ক্যাশ মেমরি ও প্রধান মেমরি। ক্যাশ মেমরি খুবই দ্রুতগতিসম্পন্ন স্ট্যাটিক র‌্যাম (Static RAM, সংক্ষেপে SRAM) দিয়ে গঠিত এবং সাধারণত প্রসেসরের সাথে সমন্বিত অবস্থায় থাকে। প্রধান মেমরি অনেকগুলি ডাইন্যামিক র‌্যাম চিপ (ডির‌্যাম চিপ) দিয়ে গঠিত, যে চিপগুলি বিভিন্ন উপায়ে ডুয়াল ইনলাইন মেমরি মডিউলে (Dual Inline Memory Module বা সংক্ষেপে DIMM ডিম) প্যাকেজ করা হয়। প্রতিটি ডির‌্যাম চিপে লক্ষ লক্ষ মেমরি কোষ (memory cell) থাকে, যেগুলি সারি ও কলামের মেট্রিক্স হিসেবে সজ্জিত থাকে। মেমরি কোষগুলির অ্যারের (array) প্রান্তসীমায় থাকে ট্রানজিস্টর। এই ট্রানজিস্টরগুলির কাজ মেমরি কোষে রাখা উপাত্ত পড়া, বিবর্ধন করা ও মেমরি বাসে সেগুলি স্থানান্তর করা। ডির‌্যামের প্রতিটি সারিকে পেজ বা পৃষ্ঠা বলা হয়। প্রতিটি পৃষ্ঠায় একাধিক মেমরি কোষ থাকে। প্রতিটি ডির‌্যাম কোষে একটি ধারক বা ক্যাপাসিটর থাকে যা খুব কম সময়ের জন্য বৈদ্যুতিক চার্জ ধরে রাখতে সক্ষম। চার্জকৃত কোষ দ্বিমিক সংখ্যা "১" এবং চার্জবিহীন কোষ দ্বিমিক সংখ্যা "০" নির্দেশ করে। সময়ের সাথে সাথে ক্যাপাসিটরগুলি চার্জ হারাতে থাকে, তাই এগুলিতে সংরক্ষিত উপাত্ত ধরে রাখার জন্য সেকেন্ডে কয়েক হাজার বার এগুলিকে পুনঃচার্জ বা রিফ্রেশ করতে হয়। কোন কম্পিউটার ব্যবস্থার মেমরি উপব্যবস্থা (memory subsystem) সাধারণত মেমরি বাসের দ্রুতিতে কাজ করে থাকে। মেমরি নিয়ন্ত্রক চিপ (memory controller) মেমরি বাসের মাধ্যমে নির্দিষ্ট মেমরি কোষের সারি ও কলামের ঠিকানাবিশিষ্ট সিগনাল ডির‌্যাম চিপে পাঠায়। মেমরি বাস দুইটি উপ-বাসে বিভক্ত: ঠিকানা/নির্দেশ বাস এবং উপাত্ত বাস। উপাত্ত বাস হল কতগুলি সিগনাল ট্রেস বা রেখার সমষ্টি যা ডির‌্যাম থেকে উপাত্ত বহন করে নিয়ে আসে ও ডির‌্যামে উপাত্ত বহন করে নিয়ে যায়। প্রতিটি ট্রেস একবারে ১ বিট করে উপাত্ত বহন করতে পারে। উপাত্ত বাসের ব্যান্ডউইড্‌থ (বা থ্রুপুট) এর প্রস্থ (বিট-এ) এবং এর কম্পাঙ্কের উপর নির্ভর করে। উপাত্ত বাসের প্রস্থ সাধারণত ৬৪ বিট হয়, যার অর্থ প্রতিটি বাসে ৬৪টি ট্রেস থাকে এবং এদের প্রতিটি ১ বিট করে উপাত্ত স্থানান্তর করে। উপাত্তের ৬৪-বিট একককে একটি উপাত্ত ওয়ার্ড বলা হয়। ঠিকানা বাস বা নির্দেশ বাস হল কতগুলি ট্রেসের সেট যে ট্রেসগুলি মেমরিতে উপাত্তের ঠিকানা বহন করে নিয়ে যায়। এছাড়াও এটি পড়া, লেখা ও রিফ্রেশ করার নির্দেশগুলিও বহন করে। অসমলয়কৃত (unsychronized) মেমরি যেমন এফপিএম ও ইডিও মেমরিতে কোন নির্দিষ্ট কোষে উপাত্ত লেখার কাজটি এ ভাবে ঘটে: মেমরি নিয়ন্ত্রক চিপ প্রথমে ঠিকানা/নির্দেশ বাসে সারির ঠিকানাটি স্ট্রোব করে পৃষ্ঠা নির্বাচন করে। এরপর ঠিকানা/নির্দেশ বাসে এটি কলাম ঠিকানাটি স্ট্রোব করে। এই দুইটি কাজকে যথাক্রমে রো অ্যাড্রেস স্ট্রোব ও কলাম অ্যাড্রেস স্ট্রোব বলা হয়। কলাম অ্যাড্রেস স্ট্রোবের সাথে সাথে রাইট এনেবল সিগনাল অর্থাৎ মেমরি কোষে উপাত্ত লেখার আদেশটিও সক্রিয় করা হয়। এরপর মেমরি নিয়ন্ত্রক উপাত্ত বাস দিয়ে উপাত্ত পাঠায় এবং গন্তব্য ডির‌্যাম কোষ ঐ উপাত্ত সংরক্ষণ করে। উপাত্ত পড়ার সময় একইভাবে প্রথমে রো ও পরে কলাম অ্যাড্রেস স্ট্রোব পাঠানো হয়। রাইট এনেবল সিগনাল নিষ্ক্রিয় থাকে, এবং কিছু অলস সময় অতিবাহিত হবার পর (যাকে কলাম অ্যাড্রেস স্ট্রোব লেটেন্সি বলে) উপাত্ত ডির‌্যাম থেকে মেমরি বাসে স্থানান্তরিত হয়। যখন ডির‌্যাম রিফ্রেশ করা হয়, তখন এটিকে অ্যাক্সেস করা যায় না। উইকিমিডিয়া কমন্সে কম্পিউটার মেমরি সংক্রান্ত মিডিয়া রয়েছে। Goda, K.; Kitsuregawa, M. (২০১২)। "The History of Storage Systems"। Proceedings of the IEEE। 100: 1433–1440। ডিওআই:10.1109/JPROC.2012.2189787।  Memory & Storage, Computer History Museum