আপনি যদি কম্পিউটার কিংবা স্মার্টফোন ব্যবহার করে থাকেন তবে আপনি একটি জিনিস লক্ষ্য করে থাকবেন তা হচ্ছে ক্যাশ মেমোরি। যেখানে আপনার স্মার্টফোন কিংবা কম্পিউটারে অনেক স্টোরেজ থাকতে পারে এবং এর মধ্যে সবচাইতে ফাস্ট এবং অল্প পরিমাণে যে মেমোরি টি থাকে, তাহলো ক্যাশ মেমোরি। তো, আপনি যদি এখনো না জেনে থাকেন যে ক্যাশ মেমোরি কি এবং এটি কিভাবে কাজ করে তবে আজকের এই টিউন টি সম্পূর্ণ দেখতে থাকুন।
বন্ধুরা আজকের এই টিউনে আমি আপনাদেরকে জানাতে চলেছি ক্যাশ মেমোরি কি, এটি কিভাবে কাজ করে এবং একটি স্মার্টফোনে বা কম্পিউটারে এর গুরুত্ব কতটুকু রয়েছে। আমি আশা করছি যে এই টিউনটি দেখার পর আপনি কোন প্রসেসর দেখার সময় ক্যাশ মেমোরির বিষয়টিকে জানতে পারবেন। তো এজন্য টিউনটি সম্পূর্ণ দেখুন এবং এখনও যদি আমাকে ফলো করে রাখেন, তবে উপরের ফলো বাটনে ক্লিক করে ফলো করে রাখুন।
ক্যাশ মেমোরি কে জানার আগে আমাদেরকে সর্বপ্রথম স্টোরেজ কে জানতে হবে। আপনার ডিভাইসে অনেক ধরনের স্টোরেজ থাকতে পারে। যেগুলোর মধ্যে সবচাইতে সাধারণ হচ্ছে ইন্টার্নাল স্টোরেজ, যেখানে আপনার ডিভাইস এর সমস্ত ডেটা স্টোর থাকে। কম্পিউটার হলে এক্ষেত্রে হতে পারে এসএসডি বা হার্ডডিস্ক ড্রাইভ। যে বিষয়টিকে আমরা সকলেই জানি।
আমাদের মোবাইলে ব্যবহৃত প্রসেসরগুলো 1 গিগাহার্জ থেকে 4 গিগা হার্জ পর্যন্ত কাজ করতে পারে। তবে কিছু কিছু প্রসেসর 5 গিগাহার্জ পর্যন্ত কাজ করতে পারে। এক্ষেত্রে আমাদের মোবাইলের স্টোরেজ টি অত তাড়াতাড়ি ডাটা ট্রান্সফার করতে পারে না, যত তাড়াতাড়ি একটি প্রসেসর ডাটা প্রসেসিং করে। আর এক্ষেত্রে আমরা কাজে নেই র্যাম কে, অর্থাৎ Random Access Memory কে। যেখানে একটি র্যাম এর স্পিড আমাদের স্টোরেজ এর চাইতে অনেক ফাস্ট হয়।
কিন্তু এক্ষেত্রে র্যাম ও অত তাড়াতাড়ি আমাদের প্রসেসরকে ডাটা সেন্ড এবং রিসিভ করতে পারে না। তবে বর্তমানের কিছু DDR4 র্যাম রয়েছে, তারা 3200 মেগা হার্জ পর্যন্ত কাজ করে। এরা প্রসেসরকে ইকুয়াল স্পিডে ডাটা সেন্ড এবং রিসিভ করতে পারে। আমাদের র্যাম কিন্তু প্রসেসরকে ইকুয়াল স্পিডে ডাটা সেন্ড এবং রিসিভ করতে পারে। কিন্তু সমস্যাটি হল আমাদের মর্ডান যেসব প্রসেসরগুলো সেগুলো সিঙ্গেল কোর এর হয়না, বরং সেগুলো multi-core এর হয়।
এক্ষেত্রে সেই প্রসেসরকে হতে পারে ডুয়েল কোর, কোয়াড কোর কিংবা অক্টা কোর। আর এই প্রত্যেকটি কোর যদি 3.2 গিগাহার্জ একসঙ্গে কাজ করে তাহলে আমাদের র্যাম কিন্তু প্রত্যেকটি কোর কে একসঙ্গে ডেটা সেন্ড এবং রিসিভ করাতে পারবে না। আর এই ক্ষেত্রে আমরা কাজে নেই ক্যাশ মেমোরি কে। ক্যাশ মেমোরি আমাদের মোবাইলের কিংবা অন্যান্য ডিভাইসের ইন্টার্নাল স্টোরেজ কিংবা র্যাম এর চাইতে অনেক বেশি বেশি ফাস্ট হয়। অর্থাৎ, ক্যাশ মেমোরি হচ্ছে সবচাইতে ফাস্ট স্টোরেজ একটি স্মার্টফোন, কম্পিউটার কিংবা ল্যাপটপের ক্ষেত্রে।
ক্যাশ মেমোরি কে Static RAM অর্থাৎ, S RAM বলা হয়; আর বাইরে যে আমরা র্যাম গুলো ব্যবহার করি সে গুলোকে বলা হয় D র্যাম বা Dynamic Ram। ক্যাশ মেমোরি কে আপনি প্রসেসর এর নিজস্ব কিছু র্যাম বলতে পারেন। যার ভিতরে প্রসেসর তার সবচাইতে গুরুত্বপূর্ণ জিনিস গুলো জমা করে রাখে, যেগুলো সচরাচর ব্যবহার হয়। এক্ষেত্রে ধরে নিন, আপনার প্রসেসর টি একটি কার মেকানিক। এক্ষেত্রে আপনার ক্যাশ মেমোরি টি হবে কার মেকানিক এর টুলবক্স, যেখানে সে গুরুত্বপূর্ণ টুল গুলো জমা করে রেখেছে; যেসব টুলগুলো কার ভালো করার জন্য দরকার। ক্যাশ মেমোর টিকে প্রসেসর ঠিক একই ভাবে ব্যবহার করে, প্রসেসরে যে ডেটা গুলো খুব বেশী পরিমানে ব্যবহার হচ্ছে সেগুলো জমা করে রাখে এবং যাতে করে সে এগুলো খুব সহজেই অ্যাক্সেস করতে পারে।
আর এতে করে যেন আপনার প্রসেসিং আরো বেশি ফাস্ট হয়। আর এই ক্যাশ মেমোরি কে আমরা তিন ভাগে ভাগ করি। যেগুলো হলো, Level 1, Level 2 ও Level 3; যেগুলোকে আমরা L1, L2 এবং L3 নামে চিনে থাকি।
Level 1 ক্যাশঃ তো, Level 1 বা L1 সবচাইতে ফাস্ট এবং খুবই অল্প পরিমাণে একটি প্রসেসরে থাকে। প্রত্যেকটি কোর এর নিজস্ব কিছু L1 ক্যাশ থাকে যেটি কিনা করে কোর ভেতরে তৈরী করা হয়। আর প্রত্যেকটি কোর ই নিজের L1 ক্যাশ কে ব্যবহার করতে পারে, যার কারণে Level 1 ক্যাশ বা L1 ক্যাশ সবচাইতে ফাস্ট হয়।
যেখানে একটি প্রসেসর এর Level 1 ক্যাশ 2KB থেকে 64KB পর্যন্ত হতে পারে। যেখানে এটিকে খুব সামান্য মনে হলেও এটি অনেক বেশি কাজের। যেখানে গুরুত্বপূর্ণ ডাটাগুলোকে জমা করে রাখার জন্য এত বেশি পরিমাণ জায়গার দরকার নেই। তবুও এ ক্যাশ মেমোরি জায়গা নিয়ে একটু নিচে আলোচনা করছি। এজন্য টিউনটি দেখতে থাকুন।
Level 2 ক্যাশঃ এরপর চলে আসে Level 2 ক্যাশ বা L2 ক্যাশ। তো দেখুন, L2 ক্যাশ কে হয়তোবা প্রসেসর এর ভেতরে কিংবা বাহিরে তৈরি করা হতে পারে। যদি এটি সিপিইউ এর বাহিরে তৈরি করা হয় তো প্রসেসর এর কোর গুলোর সাথে এটি খুবই ভালোভাবে কানেক্ট করা হয়, যাতে করে প্রসেসর এর কোর গুলো খুবই সহজ ভাবে এটিকে অ্যাক্সেস করতে পারে। এখানে এটি বলে রাখছি যে, Level 1 ক্যাশ এর চাইতে Level 2 ক্যাশ একটু ধীর গতির হয়। একটি Level 2 ক্যাশ 256KB থেকে 512KB পর্যন্ত হতে পারে।
Level 3 ক্যাশঃ সর্বশেষ চলে আসে Level 3 বা L3 ক্যাশ। প্রিমিয়াম প্রসেসর গুলোতে মূলত Level 3 ক্যাশ দেখতে পাওয়া যায়। Level 3 ক্যাশকে মূলত L1 এবং L2 এর পারফরম্যান্স কে উন্নত করার জন্য ব্যবহার করা হয়। তুলনা করতে গেলে Level 1 এবং Level 2 ক্যাশ এগুলো একটু স্লো হয় Level 3 ক্যাশ এর চাইতে, কিন্তু এটি র্যাম এবং ইন্টার্নাল স্টোরেজ এর চাইতে ফাস্ট হয়। একটি প্রসেসরের Level 3 ক্যাশ 1 মেগাবাইট এর থেকে 20 মেগাবাইট পর্যন্ত ক্যাশ মেমোরি ব্যবহার করা হয়।
এখানে এটিকে প্রত্যেকটি কোরের মাঝে দেওয়া হয়। অর্থাৎ, এখানে প্রত্যেকটি কোর নিজের নিজের Requirement বা প্রয়োজনীয়তা অনুসারে এই ক্যাশ টিকে ব্যবহার করতে পারে। তো, এটিকে একটি উদাহরণের মাধ্যমে বোঝানো যাক।
এক্ষেত্রে ধরুন, আপনার প্রসেসর এর একটি ডেটা লাগবে। এক্ষেত্রে আপনার প্রসেসরটি সবার প্রথমে এটা চেক করবে আপনার L1 ক্যাশে, এবার সে L1 ক্যাশে যদি ডেটাটি না খুঁজে পায় তারপর সে চেক করবে L2 ক্যাশে এবং L2 ক্যাশে যদি সেই ডেটাটি খুঁজে না পায় তারপর সে চেক করবে L3 ক্যাশে। এভাবে করে L3 ক্যাশে ও যদি সেই ডেটাটি টি খুঁজে না পাওয়া যায় তারপর সে চেক করবে আপনার র্যামে এবং র্যামেও যদি এটা খুঁজে না পাওয়া যায় তারপর সে এটি পিক করবে ইন্টার্নাল স্টোরেজ থেকে। তো, সেই ডেটা টি যদি আপনার ক্যাশ মেমোরি তে জমা থাকতো তাহলে আপনার প্রসেসরটি সেই কাজটি খুবই সহজে এবং কম সময়ে করতো। এক্ষেত্রে আপনার সেই ডেটাটি যদি ক্যাশ মেমোরি তে না থাকে, তবে এটিকে ইন্টার্নাল স্টোরেজ কিংবা র্যাম থেকে নিতে হবে; যে কারণে এখানে প্রসেসিং করতে একটু সময় নিতে পারে।
এখানে আপনাদের মনে একটি প্রশ্ন আসতে পারে যে, ক্যাশ মেমোরি তে একটি প্রসেসর যত বেশি ডেটা রাখতে পারবে সে ততো বেশি কাজকে কম সময়ে সম্পন্ন করতে পারবে। তাহলে এখানে ক্যাশ মেমোরির ক্ষেত্রে এত কম পরিমাণ স্টোরেজ দেওয়া হয় কেন?
আমাদের মোবাইলে যে ইন্টার্নাল স্টোরেজ এবং র্যাম থাকে সেসবের চাইতে ক্যাশ মেমোরি অনেক ফাস্ট হয় এবং একই সঙ্গে অনেক অনেক প্রিমিয়াম। যে কারণে একটি ক্যাশ মেমোরি খুবই কম পরিমাণে দেওয়া হয়। তাছাড়া প্রসেসর ক্যাশ মেমোরি তে অনেক গুরুত্বপূর্ণ ডাটাগুলোকে জমা করে রাখে, যেগুলো আকারে ও অনেক ছোট হয়। একটি প্রসেসরের ক্যাশ মেমোরি 5MB থেকে 12MB পর্যন্ত সন্তোষজনক। যে কারণে প্রসেসরে ক্যাশ মেমোরি মেগাবাইট হিসেবে দেওয়া হয়।
এখানে অ্যান্ড্রয়েড ব্যবহারকারীরা একটি চিন্তায় করতে পারে। আর সেটি হচ্ছে, আমরা যখন কোন অ্যাপ্লিকেশন ব্যবহার করি, সেখানে সেই অ্যাপ্লিকেশন গুলো অনেক ক্যাশ মেমোরি দখল করে থাকে। যেখানে এই পরিমাণ হয় অনেক, বলতে গেলে 50MB, 100MB, 150MB ইত্যাদি। এখানে এটি সেই ক্যাশ মেমোরি নয় যেটি প্রসেসর এর বেলায় বলা হচ্ছে। এটি হচ্ছে আলাদা ক্যাশ যেটি আপনার অ্যাপ্লিকেশনের বেলায় কাজে লাগে। ক্যাশ মেমোরির এসব আলোচনায় আপনি হয়তো বা ইতোমধ্যে বুঝে গিয়েছেন যে ক্যাশ মেমোরি আসলে কি।
আমি আশা করছি যে আপনারা ইতিমধ্যে বুঝতে পেরেছেন ক্যাশ মেমোরি কি এবং এটি কিভাবে কাজ করে। যদি আপনার কাছে আজকের টিউনটি ভাল লেগে থাকে তবে টিউনটিতে একটি জোসস করবেন। আর হ্যাঁ, আপনি আমাকে এখনো ফলো করে না রেখে থাকলে উপরের ফলো বাটন টি তে ক্লিক করে রাখবেন, নিত্যনতুন বিজ্ঞান ও প্রযুক্তি ভিত্তিক টিউন পাবার জন্য। এই টিউন টি এ পর্যন্তই।
দেখা হবে আপনাদের জন্য পরবর্তীর নতুন কোন টিউন নিয়ে ইনশাআল্লাহ। আসসালামু আলাইকুম।
আমি মো আতিকুর ইসলাম। কন্টেন্ট রাইটার, টেল টেক আইটি, গাইবান্ধা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 4 বছর যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 421 টি টিউন ও 93 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 62 ফলোয়ার আছে এবং আমি টেকটিউনসে 3 টিউনারকে ফলো করি।
“আল্লাহর ভয়ে তুমি যা কিছু ছেড়ে দিবে, আল্লাহ্ তোমাকে তার চেয়ে উত্তম কিছু অবশ্যই দান করবেন।” —হযরত মোহাম্মদ (সঃ)