আপনি কি জানেন সিপিইউ ক্যাশে কি? যদি না যেনে থাকেন তাহলে চলুন সিপিইউ সম্পর্কে জেনে নিই কিছু অজানা তথ্য।
সিপিইউ ক্যাশে হল একটি হার্ডওয়্যার ক্যাশে যা কম্পিউটারের কেন্দ্রীয় প্রসেসিং ইউনিট (সিপিইউ) দ্বারা মূল মেমোরি থেকে ডেটা অ্যাক্সেস করার জন্য সময় বা শক্তি হ্রাস করে। ক্যাশে একটি ছোট, দ্রুত মেমরি যা প্রসেসরের কোরের কাছাকাছি অবস্থিত, যা প্রায়শই প্রধান মেমোরির কাছে থেকে ডেটার অনুলিপি সঞ্চয় করে। বেশিরভাগ সিপিইউতে নির্দেশনা এবং ডেটা ক্যাশে সহ পৃথক পৃথক স্বতন্ত্র ক্যাশে থাকে যেখানে ডেটা ক্যাশে সাধারণত আরও ক্যাশে স্তরের (এল 1, এল 2, এল 3, এল 4 ইত্যাদি) শ্রেণিবিন্যাস হিসাবে সংগঠিত হয়।
সমস্ত আধুনিক সিপিইউগুলিতে (কয়েকটি ব্যতিক্রম থাকতে পারে) সিপিইউয়ের একাধিক স্তর রয়েছে। প্রথম যে সিপিইউ ক্যাশে ব্যবহার করা হয়েছিল তার কেবলমাত্র ক্যাশে এর এক স্তর ছিল, পরবর্তী স্তরের 1 ক্যাশেগুলির বিপরীতে এটি L1d (ডেটার জন্য) এবং L1i (নির্দেশাবলীর জন্য) তে বিভক্ত হয়নি। ক্যাশেযুক্ত প্রায় সমস্ত বর্তমান সিপিইউতে বিভক্ত এল 1 ক্যাশে রয়েছে। তাদের কাছে L2 ক্যাশে এবং বৃহত্তর প্রসেসরের জন্য, L3 ক্যাশেও রয়েছে। L2 ক্যাশে সাধারণত বিভক্ত হয় না এবং ইতিমধ্যে বিভক্ত এল 1 ক্যাশে সাধারণ সংগ্রহস্থল হিসাবে কাজ করে। মাল্টি-কোর প্রসেসরের প্রতিটি কোরের একটি ডেডিকেটেড এল 1 ক্যাশে থাকে এবং সাধারণত কোরগুলির মধ্যে ভাগ হয় না।
এল 2 ক্যাশে এবং উচ্চ স্তরের ক্যাশেগুলি কোরের মধ্যে ভাগ করা যেতে পারে। এল 4 ক্যাশে বর্তমানে অসাধারণ, এবং সাধারণত স্ট্যাটিক র্যান্ডম-অ্যাক্সেস মেমোরি (এসআরএএম) এর পরিবর্তে ডাইনামিক র্যান্ডম-অ্যাক্সেস মেমোরি (ডিআরএএম) এ
থাকে (পৃথক ডাই বা চিপে সমস্ত স্তরের ক্যাশে, এল 1 এর জন্য ব্যবহৃত)। প্রতিটি অতিরিক্ত স্তরের ক্যাশে বড় এবং ভিন্নভাবে অনুকূলিত হতে থাকে।
অন্যান্য ধরণের ক্যাশে বিদ্যমান যেমন অনুবাদ লুকাসাইড বাফার (টিএলবি) যা মেমরি ম্যানেজমেন্ট ইউনিটের (এমএমইউ) বেশিরভাগ সিপিইউতে থাকে।
ক্যাশে সাধারণত 2kiB,4kiB,8kiB,16kiB ইত্যাদির আকারগুলিতে আকারযুক্ত হয়। যখন এমআইবি আকার পর্যন্ত (যেমন বৃহত্তর নন-এল 1 এর জন্য) খুব তাড়াতাড়ি প্যাটার্নটি ভেঙে যায়, তখন ডাবলিং-ইন-আকারের দৃষ্টান্তে বাধ্য না করে বৃহত্তর ক্যাশেগুলিকে অনুমতি দেওয়া হয়, যেমন ২০০৮ সালের এপ্রিল মাসে 3 এমআইবি এল 2 ক্যাশে ইন্টেল কোর 2 ডুও।
প্রধান মেমোরিতে কোনও অবস্থান থেকে পড়তে বা লেখার চেষ্টা করার সময়, প্রসেসর পরীক্ষা করে যে, লোকেশন থেকে ডেটা ইতিমধ্যে ক্যাশে রয়েছে কিনা। যদি থাকে তবে প্রসেসর প্রধান মেমোরির পরিবর্তে ক্যাশে থেকে পড়বে বা লিখবে।
বেশিরভাগ আধুনিক ডেস্কটপ এবং সার্ভারের সিপিইউগুলিতে কমপক্ষে তিনটি স্বতন্ত্র ক্যাশে রয়েছে:
- এক্সিকিউটেবল নির্দেশিকা আনার জন্য নির্দেশিকা ক্যাশে।
- ডেটা ফ্যাচ এবং স্টোরকে গতিযুক্ত করার জন্য একটি ডেটা ক্যাশে।
- এবং ভার্চুয়াল-টু- গতি বাড়ানোর জন্য একটি অনুবাদ লুকাসাইড বাফার (টিএলবি) ব্যবহৃত হয়।
নির্দেশাবলী এবং ডেটা উভয়ই অ্যাক্সেসের জন্য একটি একক টিএলবি সরবরাহ করা যেতে পারে, বা একটি পৃথক নির্দেশিকা টিএলবি (আইটিএলবি) এবং ডেটা টিএলবি (ডিটিএলবি) সরবরাহ করা যেতে পারে। ডেটা ক্যাশেটি সাধারণত আরও ক্যাশে স্তরের (এল 1, এল 2, ইত্যাদি;) এর শ্রেণিবিন্যাস হিসাবে সংগঠিত হয়। তবে টিএলবি ক্যাশে মেমোরি ম্যানেজমেন্ট ইউনিটের (এমএমইউ) অংশ এবং এটি সরাসরি সিপিইউ ক্যাশের সাথে সম্পর্কিত নয়।
Cache entry:
যে স্থির আকারের ব্লকগুলিতে ডেটা মেমোরি এবং ক্যাশের মধ্যে স্থানান্তরিত হয় তাকে ক্যাশে লাইন বা ক্যাশে ব্লক বলে। যখন ক্যাশে লাইন মেমোরি থেকে অনুলিপি করা হয় তখন ক্যাশে একটি এন্ট্রি তৈরি হয়। ক্যাশে এন্ট্রি অনুলিপি করা ডেটার পাশাপাশি অনুরোধ করা মেমরির অবস্থান অন্তর্ভুক্ত থাকবে। প্রসেসরের যখন মেমোরিতে কোনও অবস্থান পড়তে বা লেখার প্রয়োজন হয়, তখন এটি প্রথমে ক্যাশে অনুরূপ প্রবেশের জন্য পরীক্ষা করে। ক্যাশে অনুরোধ করে মেমোরির লোকেশনের যে কোনও ক্যাশে লাইনগুলিতে সেই ঠিকানাটি থাকতে পারে সেগুলির জন্য যাচাই করে, যদি প্রসেসর জানতে পারে যে মেমোরির অবস্থানটি ক্যাশে রয়েছে তবে একটি ক্যাশে হিট হয়েছে। আর যদি প্রসেসরটি ক্যাশে মেমোরির অবস্থানটি খুঁজে না পায় তাহলে একটি ক্যাশে মিস রয়েছে। ক্যাশে হিটের ক্ষেত্রে, প্রসেসর তাত্ক্ষণিকভাবে ক্যাশে লাইনে ডেটা পড়ে বা লেখতে পারে। ক্যাশে মিসের জন্য, ক্যাশে একটি নতুন এন্ট্রি বরাদ্দ করে এবং প্রধান মেমোরি থেকে ডেটা অনুলিপি করে, তারপরে অনুরোধটি ক্যাশের সামগ্রীগুলি থেকে পূর্ণ হয়।
Replacement policies:
একটি ক্যাশে মিস এ নতুন এন্ট্রির জন্য যায়গা করতে ক্যাশে বিদ্যমান এন্ট্রিগুলির একটি অপসারণ করতে পারে, এই আপসারন করতে যে পদ্ধতিটি ব্যবহার করা হয় তাই Replacement policies বা প্রতিস্থাপনের নীতি ।
যে কোনও প্রতিস্থাপন নীতিতে মূল সমস্যাটি হল ভবিষ্যতে কোন বিদ্যমান ক্যাশে প্রবেশের সম্ভাবনা কম তা অনুমান করে নিতে হবে। ভবিষ্যতের কোনো কিছু অনুমান করা কঠিন, তাই বিভিন্ন প্রতিস্থাপন নীতিগুলির মধ্যে বাছাই করার কোনও সঠিক পদ্ধতি নেই। এলআরইউ একটি জনপ্রিয় প্রতিস্থাপন নীতি যা সর্বাধিক ব্যবহৃত হয়।
Write policies:
যদি ক্যাশে ডেটা লেখা হয় তবে এটি অবশ্যই প্রধান মেমোরিতে লিখতে হবে এটাই হলো Write policies বা লেখার নীতি হিসাবে পরিচিত।লেখার মাধ্যমে ক্যাশে প্রতিটি লেখা প্রধান মেমোরিতে একটি লেখার কারণ হয়ে থাকে। বিকল্পভাবে, লিখিত-ব্যাক বা কপি-ব্যাক ক্যাশে, লেখাগুলি তাত্ক্ষণিকভাবে প্রধান মেমোরিতে মিরর করা হয় না এবং ক্যাশে পরিবর্তে কোন স্থানগুলিতে লেখা আছে তা ট্র্যাক করে এগুলি নোংরা হিসাবে চিহ্নিত করে।
এই অবস্থানগুলিতে থাকা ডেটা কেবল তখনই প্রধান মেমোরিতে লেখা হয় যখন সেই ডেটা ক্যাশে থেকে অপসারন করা হয়। এই কারণে, লিখিত ব্যাক ক্যাশে একটি রিড মিস এর জন্য পরিষেবাটিতে মাঝে মধ্যে দুটি মেমোরি অ্যাক্সেসের প্রয়োজন হয়। যাতে করে প্রথমে নোংরা স্থানটিকে প্রধান মেমোরিতে লিখতে এবং তারপরে অন্যটি মেমোরি থেকে নতুন লোকেশন পড়তে পারে। এছাড়াও, একটি প্রধান মেমোরির লোকেশনে লিখন যা এখনও লেখার ব্যাক ক্যাশে ম্যাপ করা হয়নি তা ইতিমধ্যে নোংরা অবস্থানটি অপসারন করতে পারে, যার ফলে নতুন মেমোরির অবস্থানের জন্য সেই ক্যাশে স্থানটি মুক্ত করা হয়।
Cache performance:
সাম্প্রতিক সময়ে ক্যাশে পারফরম্যান্স পরিমাপ গুরুত্বপূর্ণ হয়ে উঠেছে যেখানে মেমোরি পারফরম্যান্স এবং প্রসেসরের পারফরম্যান্সের মধ্যে গতির ব্যবধান দ্রুত বৃদ্ধি পাচ্ছে। এই গতির ব্যবধান হ্রাস করতে ক্যাশে চালু করা হয়েছিল। এইভাবে ক্যাশে প্রসেসর এবং মেমোরির গতির গতি ব্যবধানটি কমিয়ে আনতে সক্ষম হয় যা বিশেষত উচ্চ-সম্পাদন সিস্টেমগুলিতে গুরুত্বপূর্ণ হয়ে ওঠে। এই কর্মক্ষমতা নির্ধারণে ক্যাশে হিট রেট এবং ক্যাশে মিস রেট গুরুত্বপূর্ণ ভূমিকা পালন করে। ক্যাশে কর্মক্ষমতা উন্নত করতে, মিস রেট হ্রাস করা অন্যান্য পদক্ষেপগুলির মধ্যে অন্যতম প্রয়োজনীয়
পদক্ষেপ হয়ে যায়। ক্যাশে অ্যাক্সেসের সময় হ্রাস করাও এর কার্য সম্পাদনকে বাড়িয়ে তোলে।
CPU stalls:
মেমোরি থেকে একটি ক্যাশে লাইন আনতে সময় নেওয়া হয় (ক্যাশে মিসের কারণে অলসতা পড়ুন) কারণ সিপিইউ ক্যাশে লাইনের জন্য অপেক্ষা করার সময় করণীয় কাজ শেষ করে। আর যখন কোনও সিপিইউ এই রাজ্যে পৌঁছে যায় তখন তাকে স্টল বলে। সিপিইউগুলি যখন প্রধান মেমোরির তুলনায় দ্রুততর হয়, ক্যাশে মিস এর কারণে স্টলগুলি তখন সম্ভাব্য কম্পুটেশন স্থানচ্যুত করে আধুনিক সিপিইউগুলি প্রধান মেমোরি থেকে একক ক্যাশে লাইন আনতে যে সময় নিয়েছিল, তাতে কয়েকশ নির্দেশাবলী কার্যকর করতে পারে।
Direct mapped cache:
এই ক্যাশে সংগঠনে প্রধান মেমোরির প্রতিটি লোকেশনে কেবল মাত্র একটি এন্ট্রি যেতে পারে। সুতরাং, সরাসরি-ম্যাপযুক্ত ক্যাশেটিকে "ওয়ান-ওয়ে সেট এসোসিয়েটিভ" ক্যাশেও বলা যায়। এখানে কোনও প্রতিস্থাপন নীতি নেই, কারণ কোন ক্যাশে এন্ট্রির বিষয়বস্তু অপসারন করার কোনও পথ নেই। এর অর্থ হল যদি দুটি অবস্থান একই এন্ট্রি ম্যাপ করে তবে তারা ক্রমাগত একে অপরকে আটকাবে। যদিও তুলনামূলক পারফরম্যান্স দেওয়ার জন্য সরাসরি ম্যাপযুক্ত ক্যাশে কোনও সহযোগী সংস্থার তুলনায় অনেক বড় হওয়া দরকার।
মনে করি X ক্যাশে ব্লক, y মেমোরির ব্লক নম্বর, এবং ক্যাশে ব্লকের সংখ্যা, তারপরে ম্যাপিং x = y mod n এর সমীকরণের সাহায্যে সম্পন্ন করা হবে।
Speculative execution:
ডাইরেক্ট ম্যাপযুক্ত ক্যাশের অন্যতম সুবিধা হল এটি সহজ এবং দ্রুত অনুমানের অনুমতি দেয়। একবার ঠিকানাটি কম্পুটেড করা হয়ে গেলে, একটি ক্যাশে মেমোরিতে সেই অবস্থানের অনুলিপি থেকে যায়। সেই ক্যাশে এন্ট্রিটি পড়া যায় এবং ট্যাগটি প্রকৃত অনুরোধের ঠিকানার সাথে মেলে কিনা তা পরীক্ষা করে শেষ করার আগে প্রসেসর সেই ডেটা নিয়ে কাজ চালিয়ে যেতে পারে।
Pseudo-associative cache:
সত্যিকারের সেট-অ্যাসোসিয়েটিভ ক্যাশে কোনও সামগ্রী ঠিকানাযোগ্য মেমোরির মতো কিছু ব্যবহার করে একই সাথে সমস্ত সম্ভাব্য উপায় পরীক্ষা করে। এবং একটি সিউডো-অ্যা্যাসোসিয়েটিভ ক্যাশে একবারে প্রতিটি সম্ভাব্য উপায়ে পরীক্ষা করে।একটি হ্যাশ-রিশ ক্যাশে এবং কলাম-এসোসিয়েটিভ ক্যাশে সিউডো-এসোসিয়েটিভ ক্যাশের উদাহরণ।
Multi-level caches:
আর একটি বিষয় হল ক্যাশে বিলম্ব এবং হিট রেটের মধ্যে মৌলিক ট্রেড বৃহত্তর ক্যাশেগুলিতে হিটের হারগুলি আরও ভাল তবে লম্বা হতে পারে। এই ট্রেডঅফটিকে সম্বোধন করতে, অনেকগুলি কম্পিউটার একাধিক স্তরের ক্যাশে ব্যবহার করে, ছোট দ্রুত ক্যাশেগুলি বড়, ধীর ক্যাশে ব্যাক আপ করে। মাল্টি-লেভেল ক্যাশে সাধারণত দ্রুততম, স্তর 1 (এল 1) ক্যাশেটি পরীক্ষা করে পরিচালনা করে। যদি এটি হিট হয়, প্রসেসরটি উচ্চ গতিতে এগিয়ে যায়। যদি সেই ছোট ক্যাশেটি মিস হয় তবে বাহ্যিক মেমোরি অ্যাক্সেস করার আগে পরবর্তী দ্রুততম ক্যাশে (স্তর 2, এল 2) চেক করা হয়।
L3 এবং L4 ক্যাশের সুবিধা অ্যাপ্লিকেশনটির অ্যাক্সেসের ধরণগুলির উপর নির্ভর করে on L3 এবং L4 ক্যাশে অন্তর্ভুক্ত পণ্যগুলির উদাহরণগুলির মধ্যে রয়েছে:
- আলফা 21164 (1995) এর 1 থেকে 64 এমবি অফ-চিপ এল 3 ক্যাশে রয়েছে ।
- আইবিএম পাওয়ার 4 (2001) এর প্রসেসর প্রতি 32 এমবি অফ-চিপ এল 3 ক্যাশে রয়েছে।
- "তুলসা" (2006) এর কোডনামযুক্ত ইন্টেলের শিওন এমপি প্রোডাক্টটিতে দুটি প্রসেসরের কোরের মধ্যে 16 এমবি অন ডাই এল3 ক্যাশে রয়েছে।
- এএমডি ফেনোম II (২০০৮) -তে ডাই ইউনিফাইড L3 ক্যাশে 6 এমবি অবধি রয়েছে।
- ইন্টেল কোর আই 7 (২০০৮) এর একটি 8 এমবি অন ডাই ইউনিফাইড এল 3 ক্যাশে রয়েছে যা অন্তর্ভুক্ত রয়েছে, সমস্ত কোর দ্বারা ভাগ করা হয়েছে।
- ইন্টিগ্রেটেড ইন্টেল আইরিস প্রো গ্রাফিক্স সহ ইন্টেল হ্যাসওয়েল সিপিইউগুলিতে 128 এমবি ইড্রাম রয়েছে।
Tag RAM:
কম্পিউটার ইঞ্জিনিয়ারিংয়ে, একটি ট্যাগ র্যাম বর্তমানে কোনও সিপিইউ ক্যাশে সংরক্ষিত সম্ভাব্য মেমরির অবস্থান নির্দিষ্ট করতে ব্যবহৃত হয়।একটি সাধারণ, সরাসরি-ম্যাপযুক্ত ডিজাইনের জন্য দ্রুত এসআরএএম ব্যবহার করা হয়। উচ্চতর সহযোগী ক্যাশে সাধারণত সামগ্রী-ঠিকানাযোগ্য মেমোরি নিয়োগ করে।