Home » COMPUTER » ক্যাশ মেমরি || Cache memory

ক্যাশ মেমরি || Cache memory

Cache memoryএকটি chip-based computer উপকরন যা temporary storage areaর মত কাজ করে যাতে cpu এর মধ্যে দরকারি data রেখে কাজ করতে পারে। Cache নামক এই temporary storage area টি processor খুব কাছাকাছি অবস্থান করে।

Cache memory কে অনেক সময় CPU (central processing unit) memory ও বলা হয় কারন সাধারনত এটি সরাসরি CPU chip এর মধ্যেই অবস্থান করে বা যদি কোন ক্ষেত্রে separate chip এ থাকে তবে এটি CPU এর সাথে separate bus দ্বারা interconnect করা থাকে। যার ফলে processor Cache memory কে সহজেই access করতে পারে।

যেহেতু এটি processor এর খুব কাছাকাছি অবস্থান করে তাই বাধ্যতা মুলাক ভাবে এটি আকারে খুব ছোট হয় এবং storage space ও খুব কম হয়ে থাকে। Cache memory, main memory র থেকে বেশ expensive হয়।

Cache memory সাধারনত RAM এর তুলনায় 10 থেকে 100 গুন দ্রুত, মাত্র কয়েক nanoseconds এর মধ্যে respond করতে সক্ষম।

Cache memory এর মধ্যে যে hardware টি ব্যবহার করে হয় তার নাম “high-speed static random access memory (SRAM)”।

Importance of Cache memory – ক্যাশ মেমোরির গুরুত্ত

processor এবং মাইন memory, এই দুই এর সংযোগের পথের মধ্যবর্তী স্থলে cache memory অবস্থান করে। সুতরাং cache memoryর access time, memoryর তুলনায় কম এবং main memoryর তুলনায় faster। একই cache memoryর access time 100ns হতে পানে, অথচ main memoryর access time হল 700ns।

Main memory এবং CPU র speed এর পার্থক্য অনেকটা তাই এই speed বইসাম্ম দূর করার জন্য cache memory ব্যবহার করা হয়। কম্পিউটার এর CPU যত fast হোকনা কেন যদি main memory সেই speed এর সাথে তাল মিলিয়ে কাজ না করতে পারে তবে সম্পূর্ণ কম্পিউটার টি slow হয়ে যাবে, এক্ষেত্রে cache memoryর গুরুত্ত অনেকটা। তার কারন cache memory র access time এবং processor এর speed খুব কাছাকাছি হয়ে থাকে।

এটি প্রোগ্রামের নির্দেশাবলী এবং ডেটা সঞ্চয় করে যা বার বার সিপিইউয়ের দরকার হতে পারে । কোন নিদিষ্ট সময়ে CPU যে process execute করে, cache memory সেই process সংক্রান্ত সমস্ত temporary data store করে রাখে। এর ফলে CPU দরকারি data খুব দ্রুত access করতে পারে, দ্রুত কাজ সম্পন্ন হয়।

Cache memoryর মধ্যে কখন কি data store করা থাকবে তা নির্ভর করে বিভিন্ন algorithm এর ওপর, এই algorithm পূর্ববর্তী observation এর উপর নির্ভর করে নিরধারন করে কোন process এর জন্য কোন data frequently লাগবে।

Cache Memory

Types of cache memory – ক্যাশ মেমোরির প্রকার

Cache memoryর কাজ হল CPUর speed এবং performance improve করা, সাধারনত “levels” হেসেবে ভাগ করা হয় যা নির্ভর করে CPUর accessibilityর উপর। Cache Memory কে বিভিন্ন levelএ বিভক্ত কর হয়, যা হল L1, L2, L3।

L1 cache

L1 cache, বা primary cache, এটি অত্যন্ত দ্রুত গতির কিন্তু অপেক্ষাকৃত ছোট (size 2KB থেকে 64KB) । সাধারনত processor chip এর মধ্যে অবস্থান করে।

L2 cache

L2 cache, বা secondary cache, এর capacity L1 এর তুলনায় বেশি ( 256KB থেকে 512KB ) । L2 cache CPU তে অবস্থান করে কিন্তু কখন কখন separate chip হিসেবে থাকতে পারে সেক্ষেত্রে এটি dedicated system bus দ্বারা CPUর সাথে যুক্ত থাকে। CPU যদি কোন Instruction, L1 Cache এ খুজে না পায় তখন L2 cacheএ search করে।

L3 cache

Level 3 (L3) cache কে মুলত develop করা হয়েছে L1 এবং L2  cache এর performance improve করার জন্য। L3 cache এর capacity L1 এবং L2 র থেকে বেশি ( size 1MB থেকে 8MB হতে পারে ) কিন্তু অন্য cache এর থেকে slower speed এর হয়ে থাকে। তাসত্তেও L3 এর speed, DRAM এর তুলনায় দ্বিগুন। যে সমস্ত CPU তে আকাধিক core থাকে, সাধারনত দেখা যায় প্রতিটি core এর জন্য আলাদা আলাদা dedicated L1 এবং L2 cache থাকলেও L3 cache মাত্র একটি থাকে।

Cache memory mapping

যদিও Caching configuration প্রতি মুহূর্তে উন্নত হচ্ছে কিন্তু তাও বলা যায় Caching configuration গুলিকে মুলত তিন টি ভাগে ভাগ করা যায়।

  • Direct mapped cache পদ্ধতিতে প্রতিটি block কে একটি করে cache memory দ্বারা map করা হয়। একটি direct mapped cache হল একটি ছক বা table row এর মত যার তিনটি column থাকে।
  • Fully associative cache mapping গঠন গত ভাবে অনেকটাই direct mapping এর মত। পার্থক্য শুধু এইটুকই যে এর সাহায্যে memory block কে কোন নির্দিষ্ট cache memory location এর বদলে যে কোন cache locationএ map করা যায়।
  • Set associative cache mapping এর সাহায্যে প্রতিটি block কে cache location এর subsetএ map করা হয়। এটিকে অনেক সময় বলাহয় N-way set associative mapping

Data writing policies

মূলত দুই পদ্ধতি তে Data, cache memory তে write করা হয়।

  • Write-through – এই পদ্ধতি তে Data, cache and main memory দুই জায়গাতেই একই সময়ে write করা হয়।
  • Write-back – এই পদ্ধতি তে Data প্রথমে cache এ write হয়। এবং main memory তে সেই Data, write হবে কিনা তা নির্ভর করে CPU র process এর উপর।

কি পদ্ধতিতে data, write হচ্ছে data consistency এবং efficiency নির্ভর করে তার উপর। যখন অনেক data, write করতে হবে তখন write-through পদ্ধতি ব্যবহার হয়। কিন্তু write-back পদ্ধতি অনেক বেশি efficient।

Types of Cache


Primary Cache


primary cache সব সময় processor chip এর মধ্যে অবস্থিত থাকে। এগুলি আকারে ছোট এবং processor registers এর সাথে সমান গতিতে কাজ করতে সক্ষম।


Secondary Cache


Secondary cache সাধারণত primary cache এবং অন্যান্য memoryর মধ্যে অবস্থান করে। এদের level 2 (L2) cache বলা হয়।

Cache Performance:


যখন কম্পিউটার processor, main memoryর কোন location কে/তে read বা write করতে যায় । প্রথমে তার সংশ্লিষ্ট cache check করে।

  • যদি processor, cache এর মধ্যে ওই memory location টি খুজে পায় , তবে একে বলা হয় cache hit ।
  • যদি processor, cache এর মধ্যে ওই memory location টি খুজে না পায়, তবে তাকে বলা হয় cache miss । এ ক্ষেত্রে cache একটি entry কে allocates করে এবং main memoryর মধ্যে থেকে সেখানে data copy করে।

cache memory র performance, Hit ratio দ্বারা প্রকাশ করা হয়।

Hit ratio = hit / (hit + miss) =  no. of hits/total accesses

higher cache block size ব্যবহার করে Cache performance improve করা সম্ভব।