Cache Memory क्या होती है
Cache Memory एक बहुत तेज़ गति से काम करने वाली Semiconductor Memory होती है, जो Main Memory तथा CPU के बीच में Buffer की तरह काम करती है। Cache Memory का उपयोग CPU द्वारा Main Memory से किसी Data या Instruction को Access करने में लगने वाले Average समय को कम करने के लिए किया जाता है। Average Time कम होने से CPU को ज़रूरी Data या Instruction जल्दी प्राप्त हो जाते हैं, जिससे कंप्यूटर के काम करने की गति बढ़ती है।
दरअसल, CPU के काम करने की गति Main Memory और Secondary Memory की तुलना में बहुत अधिक होती है। जब CPU को मैमोरी में से किसी ज़रूरी Data या Instruction को Access करना होता है तो, Speed Miss Match होने की वजह से CPU को Data Access करने में बहुत समय लगता है। इससे CPU तेज़ गति से काम नहीं कर पाता है और हम CPU की संपूर्ण क्षमता का प्रयोग नहीं कर पाते है।
इसलिए, CPU की तेज़ गति को Match करने के लिए CPU की ही गति से काम करने वाली एक Memory को CPU के अंदर Add किया गया जिसे Cache Memory कहते हैं। Cache Memory को Lines में बांटा जाता है।
Cache Memory Volatile Memory होती है, जैसे ही हम Computer को बंद करते हैं, इसमें Save Data Erase हो जाता है। कैश मैमोरी को RAM या HDD की तरह बढ़ाया नहीं जा सकता क्योंकि यह CPU से जुड़ी हुई होती है। यदि आप इसे बढ़ाना चाहते है तो आपको CPU Upgrade करना पड़ेगा।
इससे पहले कि हम यह जाने की कैश मैमोरी कैसे काम करती है, कैश मैमोरी से जुड़ी हुई कुछ Technical Terms के बारे में जान लेते हैं।
Cache Controller क्या होता है
यह एक प्रकार की Chip होती है। Cache Controller का मुख्य काम कैश मैमोरी और CPU के बीच तथा कैश मैमोरी और Main Memory के बीच Data Transfer को Control करना है।
जब CPU को किसी प्रकार के Data की आवश्यकता होती है तो, Cache Controller डेटा को कैश मैमोरी में खोजता है। यदि डेटा कैश में उपलब्ध होता है तो Cache Controller इस डेटा को CPU के पास Transfer कर देता है।
अब यदि Cache Controller को डेटा कैश मैमोरी में नहीं मिलता है तो, Cache Controller Memory के पास एक Request भेजता है और कैश मैमोरी तथा मेन मैमोरी के बीच इस Data Transfer को Control करता है।
Cache Hit
यदि CPU द्वारा Requested Data की Memory Location Cache Controller को कैश मैमोरी में मिल जाती है तो, यह स्थिति Cache Hit कहलाती है।
Cache Miss
यदि CPU द्वारा Requested Data की Memory Location Cache Controller को कैश मैमोरी में नहीं मिलती है तो, यह स्थिति Cache Miss कहलाती है।
Miss Penalty
Cache Miss की स्थिति में CPU द्वारा Requested Data Main Memory से कैश मैमोरी में Transfer होता है, जिसमें बहुत समय लगता है। Data Access करने में लगा यह अतिरिक्त समय Miss Penalty कहलाता है।
Time to Hit
Cache Hit की स्थिति में डेटा को Cache Memory से CPU को Transfer करने में लगा समय Time to Hit कहलाता है।
Cache Memory कैसे काम करती है?
जब CPU को किसी ज़रूरी Data या Instruction की आवश्यकता होती है तो CPU सबसे पहले उस Data या Instruction की Memory Location को कैश मैमोरी में खोजता है। यदि CPU को उस Data या Instruction की Memory Location कैश मैमोरी में मिल जाती है तो, Cache Controller उस डेटा को CPU के पास Transfer कर देता है।
लेकिन, यदि CPU को ज़रूरी Data या Instruction की Memory Location Cache Memory में नहीं मिलती है तो, Cache Controller Main Memory को एक Request भेजता है कि, कि CPU को इस डेटा की ज़रूरत है। अगर Main Memory में वह डेटा उपलब्ध होता है तो, Cache Controller उस डेटा को Cache Memory में Transfer कर देता है। जहां से वह डेटा CPU को भेज दिया जाता है।
Cache Mapping
जैसा कि आप जानते हैं कि Cache Miss हो जाने की स्थिति में CPU द्वारा Requested Data Main Memory से कैश मैमोरी में Transfer होता है जहाँ से CPU Data को Access करता है तो - Cache Mapping वह तकनीक है जिससे यह सुनिश्चित किया जाता है कि Main Memory का कौनसा Data Block कैश मैमोरी की कौनसी Line में Transfer होगा और CPU उस डेटा को कैसे Access करेगा।
Cache Mapping तीन प्रकार की होती है।
Direct Mapping
Direct Mapping सबसे आसान Mapping होती है। इसमें Main Memory के प्रत्येक Data Block के लिए कैश मैमोरी में एक निश्चित Line पहले से तय होती है।
जैसे मान लीजिए कि Main Memory के Block1 के लिए यह पहले से तय है कि जब भी Block1 Main Memory से कैश मैमोरी में Transfer होगा तो यह Line1 में Save होगा तो, Direct Mapping में Block1 किसी अन्य Line में Transfer नहीं हो सकता। Block1 जब भी Transfer होगा वह Cache Memory की Line1 में ही Save होगा।
अब यदि Line1 पहले से Booked है तो, इस स्थिति में पहले से Save Block Delete हो जाएगा और Block1 वहां Save हो जाएगा।
Associative Mapping
Associative Mapping सबसे तेज़ Mapping होती है। इसमें Main Memory से Transfer होने वाला कोई भी Block Cache Memory की किसी भी Line में Save हो सकता है।
Set-Associative Mapping
इसे K-Way Set Associative Mapping भी कहा जाता है। यह Mapping Direct Mapping का Upgraded रूप है जिसमें Associative Mapping को भी प्रयोग किया जाता है।
Set-Associative Mapping में Cache Memory की सभी Lines को Sets में बांट दिया जाता है। प्रत्येक Set में एक निश्चित संख्या में Lines होती है। इस Mapping में Main Memory के एक निश्चित Block के लिए एक निश्चित Set Decided रहता है, न कि Line. अब जब Data को Main Memory से Map किया जाता है तो, Block Decided Set में मौजूद किसी भी Line में Save हो सकता है।
Cache Memory तीन प्रकार की होती है
Level 1 या L1
Level 2 या L2
Level 3 या L3
Level 1 Cache Memory
L1 Cache Memory CPU के अंदर होती है, जिसकी Size 2KB से 64 KB होती है। CPU के अंदर होने की वजह से L1 Cache Memory की Speed CPU की Speed के बराबर होती है।
किसी भी CPU में प्रत्येक Core की अलग L1 Cache Memory होती है। यदि आपके Processor में चार Core हैं तो प्रत्येक Core की अपनी एक L1 Cache Memory होती है।
Level 2 Cache Memory
L2 Cache Memory CPU के अंदर या बाहर हो सकती है तथा इसका आकार 256KB से 512KB के बीच होता है। L2 Cache Memory की गति L1 की तुलना में धीमी होती है
L3 Cache Memory
L3 Cache Memory सभी प्रोसेसर में नहीं होती है। L3 Cache Memory का उपयोग L1/L2 Cache Memory की गति बढ़ाने के लिए किया जाता है। L3 Cache Memory की Size 1MB से 8MB तक होती है। इसकी गति L1 तथा L2 से धीमी होती है।