Cache কি ? Cache memory কয় প্রকার ও কি কি ?

       Cache কি এই ব্যাপারে আজ আমি এই আর্টিকেলটিতে আলোচনা করব। আমরা অনেকেই মোবাইল ও কম্পিউটারের সঙ্গে সব সময় জড়িত থাকি। আর মাঝে মাঝে কম্পিউটার বা মোবাইলে আমরা দেখে থাকি chache memory বিষয়টিকে।

    কিন্তু এই ক্যাসে মেমোরিটি কি। এবং কেন বা এটি এক প্রকার মেমোরি।কিভাবে এই মেমোরি আমাদের কম্পিউটার বা ল্যাপটপ বা মোবাইল ফোনে আমাদের সাহায্য করে থাকে, এই বিষয়গুলি সম্পর্কে আমরা অনেকেই জানিনা।

    এই কারণে আমরা আজ এই আর্টিকেলটিতে cache memory সম্পর্কে বিস্তারিত জানব। ক্যাশ মেমোরি কি এবং এটি সাধারণত কত ধরনের হয়ে থাকে। 
Cache কি ? Cache memory কয় প্রকার ও কি কি ?

     আমাদের কম্পিউটারের মধ্যে সাধারণত আমরা দুই প্রকার মেমোরি কথা জানি। একটি স্থায়ী মেমোরি ROM ( হার্ডডিস্ক ), আর অন্যটি হলো অস্থায়ী মেমোরি RAM। কিন্তু এই দুটি মেমোরি ছাড়া আরো এক প্রকার মেমোরি আমাদের এই সকল প্রকার ডিভাইসে থাকে যা আমরা সচরাচর জানিনা।

     আমাদের কম্পিউটার বা মোবাইলে তৃতীয় প্রকার যে মেমোরি থাকে তাই হল ক্যাশ মেমোরি। কিন্তু কি এই ক্যাসে মেমরি এবং কিভাবে তা আমাদের ডিভাইসে কাজ করে চলুন সেগুলো দেখে নি।


ক্যাশ ( Cache ) মেমোরি কি ? 


    কম্পিউটার মোবাইল বা ল্যাপটপ এই ধরনের বিভিন্ন ইলেকট্রনিক্স ডিভাইসে সাধারণত স্থায়ী মেমোরি ও অস্থায়ী মেমোরি এ দুটি ছাড়া অন্য এক প্রকার সবচেয়ে দ্রুতগতিসম্পন্ন মেমোরি ব্যবহৃত হয়। সাধারণত এই অল্পমাত্রার এবং দ্রুতগতি সম্পন্ন মেমোরি কে আমরা ( Cache memory ) ক্যাশ মেমোরি বলি। 

    সাধারণত ক্যাশ মেমোরি কম্পিউটার বা মোবাইলে খুব স্বল্প মাত্রায় থাকে অর্থাৎ যেখানে আপনার হার্ডডিস্ক কয়েকশো জিবি পর্যন্ত হতে পারে সেখানে এই ক্যাশ মেমোরি দুই থেকে তিন এমবি যুক্ত হয়ে থাকে।

    তাহলে আশা করি বুঝতে পারলেন যে এই ক্যাশ মেমোরি খুব অল্প মাত্রায় আমাদের ইলেকট্রনিক্স ডিভাইস গুলোতে ব্যবহৃত হয়। কিন্তু এই স্বল্পমাত্রার মেমোরি আমাদের ডিভাইসগুলোতে কিভাবে প্রয়োজনীয় তা ভাবলে অবাক হবেন।

    সাধারণত RAM এর মত Cache memory একপ্রকার অস্থায়ী মেমোরি, কিন্তু এই মেমোরি RAM থেকেও অতি দ্রুত গতি সম্পন্ন। কিন্তু আমরা জানি কম্পিউটারে যে দুটি মেমোরি ব্যবহৃত হয় তার মধ্যে RAM দ্রুতগতিসম্পন্ন।



ক্যাশ ( Cache ) মেমোরি কিভাবে কাজ করে ?


    এবার চলুন জেনে নিই ক্যাসে মেমোরি আমাদের কিভাবে সাহায্য করে। Cache memory আমাদের ব্যবহৃত সময়ে ডেেটা গুলি বা তথ্যগুলি নিজের কাছে সংরক্ষণ করে রাখে। এর ফলে সবচেয়ে কম সময়ে এবং দ্রুতগতিতে ওই যেটা পুনরায় প্রসেস হতে সক্ষম হয়।

    একটু ভেঙে বললে এমন ভাবে দাঁড়াবে যে, আমাদের যে কোন তথ্য বা ডেটা প্রসেস করে কম্পিউটার বা মোবাইলের প্রসেসর, কিন্তু সেই ডেটার সংকেত আমাদের কাছ থেকে ইনপুট ডিভাইসের মাধ্যমে প্রসেসরে পৌঁছাবে, তারপর সেই সংকেত আবার রামের মাধ্যমে ঘুরে প্রসেসরে পৌঁছে তারপর কাজ সম্পন্ন হয়।

     যদিও এই সকল কাজ কয়েক সেকেন্ডের মাধ্যমে শেষ হয় তবুও এই ক্যাশ মেমোরি থাকার ফলে আমাদের ইনপুট করা তথ্যটি সিপিইউ থেকে সরাসরি RAM পর্যন্ত পৌঁছায় না, এখানেই এই ক্যাসে মেমোরির আসল রহস্য।

    কারণ এই ক্যাসে মেমরি আমাদের আগে ইনপুট করা বিভিন্ন তথ্য তার কাছে সংরক্ষণ করে রাখে,এর ফলে সেই তথ্য আমরা যখনই পুনরায় আবার দেখতে চাই বা প্রসেস করতে চাই তখন RAM থেকে না গিয়ে সরাসরি ক্যাসে থেকে প্রসেসর এ গিয়ে প্রসেস হতে শুরু হয়।

    সুতরাং আশা করি বুঝতে পারলেন যে ক্যাশ মেমোরি কিভাবে কাজ করে, এবং কেন ক্যাশ মেমোরি সবথেকে দ্রুতগতি সম্পন্ন মেমোরি। ক্যাশ মেমোরি থাকার জন্য আমরা একই সময়ে অনেকগুলি বিষয়কে আমাদের কম্পিউটার বা মোবাইলে চালাতে সক্ষম।

     আমি নিজে ভাষায় বলতে পারি যে ডিভাইস বা কম্পিউটার বা মোবাইল এ এই ক্যাশ মেমোরি একটু বেশি মাথায় থাকে সেই ডিভাইসটি বেশি পরিমাণ মাল্টিটাস্কিং একই সময়ে বিভিন্ন বিষয় চালাতে সক্ষম।

     যদিও ক্যাশ মেমোরি অনেকটা নির্ভর করে সেই ডিভাইসের RAM ও প্রসেসর এর উপর তবুও ক্যাসে একটি উন্নত এবং দ্রুতগতি সম্পন্ন মেমোরি যা আমাদের ডেটাকে প্রসেস হতে খুব কম সময় ব্যবহার করে।

     আশাকরি এটুকু বুঝতে পারলেন যে আমাদের কম্পিউটার বা মোবাইলে ক্যাশ মেমোরি কি এবং তা কিভাবে কাজ করে। কিন্তু যদি আমরা কখনো আমাদের মোবাইলের অ্যাপ্লিকেশন গুলো খুলে দেখি সেখানে দেখব যে আলাদা করে একটি ক্যাশে ফাইল তৈরি হয়ে যায়।

    কিন্তু কেন, তার কারণ হলো ওই অ্যাপ্লিকেশনটি কে আমরা আগে কিভাবে ব্যবহার করেছি সেই যেটা ও নিজের কাছে সংরক্ষন করে রাখে যাতে পরবর্তী সময়ে আমি ওই যে তাকে খুঁজতে গেলে সঙ্গে সঙ্গে সে দেখিয়ে দিতে পারে। 

     এতক্ষণ আমরা Cache মেমোরির সম্পর্কে জানলাম এবার চলুন দেখে নিই যে ক্যাশ মেমোরি কত প্রকার হয় এবং সেগুলো সম্পর্কে বিস্তারিত ভাবে জেনে নি - 



Cache Memory কয় প্রকার ও কি কি ?


      এতক্ষণ আমরা ক্যাশ মেমোরি কাকে বলে এবং কিভাবে কাজ করে তা সম্পর্কে বিস্তারিত জেনেছি। কিন্তু ক্যাশ মেমোরি অনেকগুলি ভাগ আছে এমনকি প্রত্যেকটি ডিভাইসে যেখানে RAM ও প্রসেসর যুক্ত থাকে সেখানেই এই ক্যাশ মেমোরি ব্যবহার হয়।

    এখন আমরা চলুন দেখি নি যে এই ক্যাশ মেমোরি সাধারণত কি কি ভাগে ভাগ করা যায় এবং তার সম্পর্কে বিশদ - 


Browser Cache :

     বেশিরভাগ ব্রাউজার গুলি ওয়েবসাইটের বিভিন্ন ডাটা কে ক্যাশ মেমোরি তে সঞ্চিত করে রাখে। অর্থাৎ আমরা যখন কোন ওয়েবসাইটে ভিজিট করি তখন সেই ওয়েবসাইটগুলির বিভিন্ন তথ্য ক্যাশ মেমোরি তে জমা থাকে।

    কারণ যখন পরবর্তী সময়ে আমরা ওই একই ওয়েবসাইটে প্রবেশ করবো তখন খুব তাড়াতাড়ি বিষয়গুলি আমাদের সামনে প্রসেসর প্রসেস করে তুলে দিতে পারে। এবং ওই ওয়েবসাইটের সমস্ত সিএসএস বা জাভা ফাইল গুলি ক্যাশ মেমোরি তে জমা থাকে।

    ক্যাশ মেমোরি সিপিইউ এর কাজকে দিতে করার জন্য তাদের মেমোরিতে এই সকল ডাটা গুলোকে সংরক্ষণ করে রাখে। 

    সাধারনত যেকোন ওয়েবসাইট জাভা, CSS ফাইল দ্বারা তৈরি করা হয়, এই সকল ফাইলগুলি মধ্যে এমন কিছু ফাইল থাকে যা কুকি মেমোরি তৈরি করে। আর এই খুকি মেমোরি গুলিতে সাধারণত যেকোনো ওয়েবসাইটের বিভিন্ন বিষয় থাকে।

    ওয়েব ব্রাউজার গুলির যে সকল তথ্য ক্যাসে মেমোরিতে জমা থাকে সেগুলি হল ওই ওয়েবসাইটের বিভিন্ন ইমেজ বা ছবি, CSS ফাইল বা বিভিন্ন রকমের JavaScript,

     এই কারণে ওই ওয়েবসাইটগুলোকে যখন আমাদের দ্বিতীয় বার প্রয়োজন হয় তখন তাকে প্রসেস না করেই ক্যাশ মেমোরি থেকে ডিসপ্লে করা সম্ভব হয়। এর ফলে অন্যান্য মেমোরি গুলির উপর চাপ কম পড়ে।

    এখানে আরেকটা কথা বলে দেওয়া উচিত তা হল আমি প্রথমেই বলেছি যে ক্যাশ মেমরি সাধারণত দুই থেকে তিন এমবি যুক্ত হয় তবে কখনো কখনো কোন অ্যাপ্লিকেশনের ক্যাশ মেমোরি আমরা 400 থেকে 500 এমবি পর্যন্ত দেখতে পাই, সেটা কি করে সম্ভব।

     দেখুন ক্যাশ মেমোরি খুব স্বল্পমাত্রার হলেও তার ক্ষমতার দ্বারা সে কোন ডেটাকে RAM ও হার্ডডিক্স এর মেমোরিতে ফাইল করে জমা রাখতে সক্ষম। সুতরাং এই যে সকল স্টোরেজঃ আমরা দেখি তা হল সাধারণত RAM ও ROM থেকে নেওয়া স্টোরেজ ।


Memory Cache :

    ক্যাসে মেমোরির মধ্যে অন্যতম একটি হলো মেমোরি ক্যাসে। আমরা যখন কোন এপ্লিকেশন বা প্রজেক্ট শুরু করি তখন সেই প্রোজেক্টের কিছুটা আমাদের সিস্টেম মেমোরিতে বা RAM এর মধ্যে অবস্থান করে।

     এর ফলে যেহেতু RAM একটি দ্রুতগতি সম্পন্ন মেমোরি সেই কারণে হার্ডডিস্ক বা রম থেকে সেই ডেটা প্রসেস করার প্রয়োজন পড়ে না তা মেমোরির ক্যাসে থেকে প্রসেস হয়ে যায়। 

    বিশেষত কিছু বড় বড় ধরনের অ্যাপলিকেশনে ক্ষেত্রে এই প্রক্রিয়াটি দেখা যায়। যেমন ভিডিও এডিটিং অ্যাপ এর ক্ষেত্রে আমরা যখন কোন ভিডিও এডিটিং করি তখন কোন একটি সামান্য ক্লিপকে এডিটর থেকে সরিয়ে দিলেও, পুনরায় খুব সহজে তাকে ফিরিয়ে আনতে পারি।

    অর্থাৎ এডিটর থেকে সরিয়ে দিলে তা মেমোরি ক্যাসে তে জমা থাকে এই কারণে সেই ক্লিপটি কে পুনরায় হার্ডডিক্স থেকে তুলে আনার প্রয়োজন হয় না।

     
Disk Cache : 

    বেশিরভাগ হার্ডড্রাইভ ও সলিড স্টেট ড্রাইভ বা এসএসডি এর ক্ষেত্রে আমরা নির্দিষ্ট পরিমাণ এর একটি ক্যাশ মেমোরি দেখতে পাই। সাধারণত একটি কম্পিউটারের প্রসেসরে দুই থেকে তিন এমবি বা কিছু বেশি পরিমাণ ক্যাশ মেমোরি থাকে।

     কিন্তু একটি হার্ড ড্রাইভে বা এসএসডি তে এই ক্যাশ মেমরি নির্দিষ্ট পরিমাণ মতো দেওয়া থাকে। যেমন ওয়ান টিভি হার্ডডিস্ক এর ক্ষেত্রে 32 MB ক্যাশ মেমোরি দেওয়া থাকে।

    অর্থাৎ কম্পিউটার বা মোবাইল এর বিভিন্ন ডিস্ক স্টোরেজের মধ্যে নির্দিষ্ট পরিমাণ ক্যাশ মেমোরি দেওয়া থাকে এর ফলে প্রসেসর বা সিপিইউ এর ক্যাসে ও এইসকল ডিস্ক এর ক্যাসে মিলিত হয়ে দ্রুত গতিতে কোন কাজ করতে পারে।

     ধরুন আমরা যখন কম্পিউটারে কোন একটি ফোল্ডারকে ওপেন করি তখন সেই ফোল্ডারের মধ্যে হাজার রকম তথ্য থাকলে তা আমাদের সামনে ধীরে ধীরে ওপেন হতে শুরু করে। আমাদের ওই তথ্যগুলি দেখা হয়ে যাবার পর আমরা ওই ফোল্ডারটি বন্ধ করে দিই।

     তার মানে এই নয় যে ফোল্ডারটি বন্ধ হবার সাথে সাথে তার প্রসেস ডেটা সব ডিলিট হয়ে যায়। আসলে ওগুলি ওই ডিস্ক ক্যাসে মেমোরিতে জমা থাকে । 

    পুনরায় যদি ওই ফোল্ডারটি আমাদের খুলতে প্রয়োজন হয় তখন খোলার সঙ্গে সঙ্গে তার ভিতরে থাকা সমস্ত ডেটা অটোমেটিক ভাবে ওপেন হয়ে যায়। এর অর্থ হলো যেহেতু ডিস্ক এ ক্যাশ মেমোরি তৈরি হয়ে আছে তাই দ্বিতীয়বার আর সময় না নিয়ে তা খুলে যায়।



Processor Cache : 

     প্রসেসর ক্যাসে মেমোরি সবথেকে ছোট তম ক্যাশ মেমোরি। কারণ অন্যান্য যে সকল মেমোরি আমাদের কম্পিউটারের সঙ্গে যুক্ত থাকে তাদের মধ্যে প্রসেসর এর সঙ্গে যুক্ত এই ক্যাসে মেমরি সবথেকে কম মাত্রার হয়।

     কারণ প্রসেসর ক্যাসে একপ্রকার ছোট মাত্রার ব্লক তৈরি করতে সক্ষম যা খুব দ্রুত ইনস্ট্রাকশন এর মাধ্যমে CPU কে অ্যাকসেস করে। 

    বর্তমান দিনের প্রসেসর গুলিতে বেশ কয়েক প্রকার ক্যাসে মেমোরি যুক্ত থাকে - 

L1 - L1 ক্যাসে টি প্রসেসর এর সবথেকে কাছে থাকে এবং প্রসেসর এর সমস্ত প্রাথমিক ডেটা গুলিকে এই  L1 ক্যাশ মেমোরি প্রসেস করে।

L2 -  L2 ক্যাশ মেমরি এল ওয়ান থেকে খানিকটা দূরে থাকে যা এল ওয়ান এর কাজ কে সাহায্য করার জন্য l2 ব্যবহার করা হয়ে থাকে। সাধারণত এই দুই প্রকার ক্যাশ মেমোরি প্রসেসর এর মধ্যে থাকে।

L3 -  বর্তমানে কিছু উন্নত প্রসেসর এর ক্ষেত্রে একটি ক্যাশ মেমোরি তৃতীয় ভাগ যুক্ত করা হয়েছে যা l1 ও l2 ক্যাশ মেমোরি কে আরো বেশি সহজ করে l3 বিভক্ত করে দেয়া হয়েছে। আর এই L3 ক্যাশ মেমোরি টি এল টু বা এল 1 এর থেকে বড়


     বেশিরভাগ ক্যাশ মেমোরি গুলি প্রসেসর ও অন্যান্য মেমোরি এর সঙ্গে যুক্ত হয়ে কাজ করে থাকে তাই আমরা বাইরে থেকে তাকে বুঝতে পারি না। এমনকি এই সকল ক্যাসে মেমোরিতে আমরা আমাদের ইচ্ছা মতো কাজ করাতে পারবো না।

    এই কারণে ক্যাচ মেমোরির যে ভাগগুলি উপরে আলোচনা করলাম তার মধ্যে ব্রাউজার ক্যাসে এই ক্যাশ মেমরি টিকে আমরা সামান্য হলেও ব্যবহার করতে পারি।

    অর্থাৎ আমরা যে সকল বিষয়ে সার্চ করি যে সকল বিষয়ে চর্চা করি সেই সকল বিষয়কে সেগুলি আমরা ইচ্ছামত বিভিন্ন এপ্লিকেশন থেকে ডিলিট করে দিতে পারি। 



আমার মতামত :   আজ আমরা এই আর্টিকেলটিতে কম্পিউটার বা ল্যাপটপের একটি উন্নত মানের মেমোরি সম্পর্কে জানলাম যার নাম ক্যাশ মেমোরি।

     ক্যাশ মেমোরি একটি অতি প্রয়োজনীয় বিষয় যা কম্পিউটারের সঙ্গে যুক্ত সমস্ত রকম মেমোরি স্তরেজ এর ক্ষেত্রে প্রয়োজন। আসলে ক্যাসে মেমোরি যদি আমাদের প্রসেসর উনার সঙ্গে যুক্ত না থাকতো তবে যেকোনো ডেটা প্রসেস হতে কম্পিউটার আরো বেশি সময় লাগাতো।

    এই কারণে মোবাইল বা কম্পিউটার এমনকি ল্যাপটপেও আমাদের এই ক্যাশ মেমোরি প্রচুর পরিমানে প্রয়োজন। তবে একথা মনে রাখতে হবে যে শুধুমাত্র ক্যাশ মেমোরি উন্নত মানের হলেই বা বেশি পরিমাণে ব্যবহার হলে তা দ্রুতগতিসম্পন্ন হতে পারে না।

    একটি ডিভাইসকে দ্রুতগতিসম্পন্ন হতে গেলে অনেকগুলি প্রক্রিয়ার সমন্বয়ে হতে হয় কি কারনে ক্যাশ মেমোরি ও অবশ্যই প্রয়োজন আছে।

    আশা করি এই আর্টিকেলটিতে আমি যে ক্যাশ মেমরি সম্পর্কে আলোচনা করেছি তা হয়তো আপনাদের ভাল লেগেছে। যদি ভালো লাগে অবশ্যই নিচে কমেন্ট করে জানাবেন আর যদি এমন কোন বিষয়ে জানার প্রয়োজন হয় সেটিও নিচে কমেন্ট করবেন ধন্যবাদ।