এখন প্রশ্ন হচ্ছে কি এই ক্যাশ মেমোরি, দেখুন আপনার কম্পিউটারে ৩ ধরনের মেমোরি লাগানো থাকে। প্রথমটি হলো আপনার সাধারন ব্যবহার করার জন্য যে স্টোরেজ লাগানো থাকে যেটা আপনি হার্ডড্রাইভ হিসেবে চেনেন। দ্বিতীয়টি হলো আপনার র্যাম এবং তৃতীয় মেমোরি হলো ক্যাশ। ক্যাশ অনেক দ্রুত একটি মেমোরি হয় কিন্তু ক্যাপাসিটির দিক থেকে এটি অনেক কম হয়ে থাকে। তাছাড়া ক্যাশ মোট তিন প্রকারের হয়ে থাকে। লেভেল ওয়ান, লেভেল টু এবং লেভেল থ্রী।
আপনার কম্পিউটারের প্রসেসর হয়তো ডুয়াল কোর হবে বা কোয়াডকোর বা অক্টাকোর হবে, দেখুন প্রত্যেকটি কোরের দুটি মেমোরি আলদা করা থাকে লেভেল ওয়ান এবং লেভেল টু ক্যাশে এবং লেভেল থ্রী ক্যাশ বেশির ভাগ সময় প্রসেসরের বাকী কোর গুলো নিজেদের মধ্যে শেয়ার করে একসাথে।
লেভেল ওয়ান ক্যাশ সবচাইতে দ্রুতগামী হয়ে থাকে এবং এটি প্রসেসরের ভেতরেই অবস্থিত হয়ে থাকে। লেভেল টু ক্যাশ প্রসেসরের ভেতরেও হতে পারে আবার প্রসেসরের বাইরে সবচেয়ে কাছে লাগানো একটি আলদা আইসিতেও হতে পারে। কিন্তু প্রসেসর এবং ঐ আইসির মাঝখানে একটি হাই স্পীড বাস থাকে যার মাধ্যমে প্রসেসর খুব দ্রুত ভাবে ঐ আইসিকে অ্যাক্সেস করতে পারে। এবং লেভেল থ্রী ক্যাশ একটি সম্পূর্ণ আলাদা মেমোরি হয়ে থাকে এবং র্যাম থেকে প্রায় দ্বিগুণ গতি সম্পূর্ণ হয়ে থাকে। এবং এই মেমোরি প্রসেসরের সকল কোরের সাথে শেয়ার হয়ে থাকে।
ক্যাশ মেমোরি কেন কাজে লাগে?
ক্যাশ কি এবং এর বিভিন্ন টাইপ সম্পর্কে তো জানলেন, এবার প্রশ্নে আসি যে এটি কোন কাজে আসে এবং কেন প্রয়োজনীয় তা নিয়ে। চলুন এটি বোঝানোর জন্য একটি বাস্তব জীবনের উদাহরণ দেওয়া যাক। বন্ধুরা মনে করুন আপনি একটি অফিসে কাজ করেন এবং আপনি একটি ডেস্কে বসে কাজ করেন। মনে করুন একটি ব্যাক অফিস আছে এবং সেখানে আপনার সকল কাজের ফাইলস আছে। এখন ধরুন ব্যাক অফিসটি হলো আপনার কম্পিউটারের হার্ডড্রাইভ এবং আপনার কাজ করার ডেস্কটি হলো কম্পিউটারের র্যাম। তো যখনই আপনি কাজ করার প্রয়োজন বোধ করেন তখন আপনাকে উঠে সেই রুমে যেতে হয় ফাইল আনতে অথবা আপনি আপনার পিওনকে কল করেন সে ফাইল গুলো এনে দিলে আপনি কাজ করা শুরু করতে পারেন। এখন আপনার ডেস্ক যতো বড় হবে আপনি ততো বেশি ফাইল একসাথে মেলিয়ে কাজ করতে পারবেন, যেটা র্যাম এর উদাহরণ। এখন মনে করুন আপনার ডেস্কে দুইটি ড্রয়ার আছে এবং মনে করুন এটিই ক্যাশ মেমোরি। যদিও ড্রয়ার আপনার ডেস্ক থেকে অনেক ছোট কিন্তু সেটি অনেক সহজে অ্যাক্সেস অ্যাবল। সহজেই ড্রয়ার খুলতে পারবেন এবং কাজের জিনিস বের করে কাজ শুরু করে ফেলতে পারবেন। এখন আপনি ড্রয়ারে অবশ্যই এমন কিছু জিনিষ রাখেন যা আপনার সবচাইতে বেশি প্রয়োজন পড়ে, যেমন স্টাপল্যার, কোন স্ট্যাম্প, কোন গুরুত্বপূর্ণ ডকুমেন্ট বা কোন প্রপোজাল। তো এই ড্রয়ার গুলো হলো আপনার ক্যাশ মেমোরি।
ঠিক একই ভাবে আপনার কম্পিউটারের সিপিইউ কে কাজ করার জন্য অনেক গুলো প্রসেস সম্পূর্ণ করতে হয় এবং অনেক ডাটা রীড এবং রাইট করতে হয়। তো এই অবস্থায় ক্যাশ মেমোরি বারবার ব্যবহার হওয়া ডাটা গুলো নিজের কাছে সংরক্ষন করে রাখে। এখন যদি আপনার কম্পিউটার কোন নির্দেশ এক্সিকিউট করতে চায় তবে সে প্রথমে র্যাম থেকে ডাটা ফেচ না করে ক্যাশের কাছে সেই ডাটা বা নির্দেশ খোঁজার চেষ্টা করে। ক্যাশের কাছে যদি সে কাঙ্ক্ষিত ডাটা গুলো পেয়ে যায় তবে প্রসেসরের কাজ করার প্রসেস অনেক বেশি ফাস্ট হয়ে যায়। প্রসেসর ক্যাশ থেকেই তথ্য সংগ্রহ করতে পারে সেগুলো রীড রাইট করতে পারে এবং আউটপুট দেখাতে পারে। তো এক কথায় বলতে ক্যাশ মেমোরি আপনার কম্পিউটারের প্রসেসরকে অনেক দ্রুত কাজ করার জন্য সাহায্য করে থাকে।
ক্যাশ লেটেন্সি (Cache Latency)?
আবার অনেক সময় কি হয় দেখুন, মনে করুন আপনার কাজ করার জন্য একটি অতি গুরুত্বপূর্ণ জিনিসের প্রয়োজন পড়লো। আপনি হয়তো ভাবলেন যে মনে হয় সেটি আপনার ড্রয়ারে আছে বা আপনার ক্যাশে আছে। কিন্তু ঐ সময় সেটি যদি ঐখানে না থাকে তবে এই অবস্থায় আপনার কাজে দেরীর সম্মক্ষীণ হতে পারে। এবং এই বিষয়টিকে বলা হয়ে থাকে ক্যাশ লেটেন্সি। এর মানে আপনার কম্পিউটার হয়তো ভেবেছে যে সে অমুক ফাইল ক্যাশ থেকে পিক করে নেবে এবং সে একটি অনুরোধও পাঠিয়ে ফেলেছে ক্যাশের কাছে। তো সেই ফাইলটি যদি ক্যাশের কাছে না থাকে তবে সে র্যামের কাছে অনুরোধ করবে বা হয়তো হার্ডড্রাইভ অ্যাক্সেস করবে, সেক্ষেত্রে কিছু বেশি সময় লেগে যেতে পারে আর একে বলা হয় ক্যাশ লেটেন্সি।
অনেক প্রসেসরে যেমন আই৩, আই৫, আই৭ বা ইনটেল জিয়ন সিরিজের প্রসেসরে ২ এম্বি, ৩ এম্বি, ৬ এম্বি, ৮ এম্বি, ১২ এম্বি ইত্যাদি ক্যাশ দেখতে পাওয়া যায়। আপনি হয়তো মনে করবেন যে ১২ এম্বি তো অনেক ছোট সাইজ। কিন্তু একটি ক্যাশ মেমোরির জন্য একটি অনেক বেশি ক্যাপাসিটি। এই মাত্র ১২ এম্বির মধ্যে অনেক গুলো নির্দেশনা সংরক্ষন করে রাখা সম্ভব অনেক রীড রাইট কম্যান্ড সংরক্ষন করা সম্ভব এবং অনেক গুরুত্বপূর্ণ ফাইলস জমা করা সম্ভব যা অনেক দ্রুত প্রসেসরের অ্যাক্সেসের প্রয়োজন পড়ে। তো এই সকল ফাইলস ক্যাশ স্টোর করে সিপিইউ এর কাজ করার ক্ষমতাকে অনেক দ্রুত করে দেয়।
অ্যান্ড্রয়েড ক্যাশ মেমোরি ?
বন্ধুরা, এখন আপনারা হয়তো ভাবছেন যে অ্যান্ড্রয়েড ফোনে যে ক্যাশ অপশন থাকে সেটা কি কম্পিউটারের মতো? দেখুন এতক্ষণ প্রসেসরের যে ক্যাশ নিয়ে আলোচনা করলাম তা আপনার ফোনেও থাকে কিন্তু সফটওয়্যারের ভেতর যে ক্যাশ অপশন থাকে সেটা একটু আলাদা। সেটা হলো আপনি যখন কোন অ্যাপ ব্যবহার করেন তখন সেই অ্যাপ সাময়িক ভাবে কিছু ডাটা আপনার ফোনে জমা করে রাখে। মনে করুন আপনি ফোনে গুগল ম্যাপ অ্যাপটি ব্যবহার করলেন। এখন ম্যাপে অনেক জায়গাতে জুম ইন বা জুম আউট করে রাখলেন অথবা আপনি কিছু লোকেশন অ্যাক্সেস করে রাখলেন। এখন আপনার এই কার্যক্রম গুলো আপনার ফোনে টেম্পোরারি ভাবে ক্যাশ হিসেবে জমা হয়ে থাকে। এর সুবিধা হচ্ছে আপনি যখন পরবর্তীতে ম্যাপ ওপেন করবেন এবং সেই জায়গা গুলোতে জুম ইন বা আউট করবেন তবে আপনার নতুন করে ইন্টারনেট ডাটা ক্ষয় হবে না, বরং অ্যাপটি টেম্পোরারি ক্যাশ থেকে লোকেশন এবং আপনার পূর্ববর্তী কার্যক্রম গুলো অ্যাক্সেস করবে।
তো এভাবেই অনেক অ্যাপস থাকে ফোনে যারা আপনার কার্যক্রম গুলোকে টেম্পোরারি ক্যাশ হিসেবে জমা করে রাখে ফোনে যাতে আপনি যখন পরবর্তী ব্যবহার করবেন তখন তা দ্রুত ফলাফল দেখাতে সক্ষম হয়। কিন্তু অনেক সময় টেম্পোরারি ক্যাশে অনেক বেশি টেম্পোরারি ফাইলস জমা হয়ে যায় ফলে আপনার ফোনের স্টোরেজ কমে যায়। তো এই অবস্থায় ক্যাশ ক্লিয়ার করার প্রয়োজন পড়ে। এজন্যই আপনার ফোনের অ্যাপস সেটিংসে গেলে ক্যাশ ক্লিয়ার নামক একটি অপশন দেখতে পাওয়া যায়। সেটি পরিষ্কার করে দিলে ঐ অ্যাপটির জন্য ফোনে সংরক্ষিত থাকা টেম্পোরারি ফাইল গুলো মুছে যায়। তাছাড়া আরেকটি অপশন থাকে তা হলো অ্যাপ ডাটা ক্লিয়ার। এটি পরিষ্কার করে দিলে আপনি যদি সেই অ্যাপটিতে কোন লগইন করে থাকেন বা কোন সেটিংস পরিবর্তন করে থাকেন তবে তা নষ্ট হয়ে যায় এবং নতুন অবস্থায় ফেরত আসে।
তো বন্ধুরা আমি পুরোপুরি আশা করছি ক্যাশ মেমোরি সম্পর্কে আপনি বিস্তারিত সকল তথ্য জেনে গেছেন। এবার থেকে যখন নতুন কম্পিউটার কিনতে যাবেন তখন এটা হয়তো নির্ধারণ করা মুশকিল যে ঠিক কতটা ক্যাশ মেমোরি আপনার জন্য ঠিক হবে কিন্তু যতো পারেন বেশি ক্যাশ নেওয়ার চেষ্টা করবেন। কেনোনা এটা র্যামের মতো পরবর্তীতে বাড়াতে পারবেন না। যেকোনো কোন প্রকার প্রশ্নে এবং মতামতে অবশ্যই কমেন্ট করে জানাবেন। তার সাথে পোস্টটি শেয়ার তো করবেনই।