यदि आप कंप्यूटर की खरीदारी कर रहे हैं , तो आपने "कैश" शब्द सुना होगा। आधुनिक कंप्यूटरों में L1 और L2 दोनों कैश होते हैं, और कई में अब L3 कैश भी होता है। हो सकता है कि आपको इस विषय पर अच्छे दोस्तों से सलाह मिली हो, शायद कुछ इस तरह "उस Celeron चिप को मत खरीदो, इसमें कोई कैश नहीं है!"
यह पता चला है कि कैशिंग एक महत्वपूर्ण कंप्यूटर-विज्ञान प्रक्रिया है जो हर कंप्यूटर पर विभिन्न रूपों में दिखाई देती है। मेमोरी कैश, हार्डवेयर और सॉफ़्टवेयर डिस्क कैश, पेज कैश और बहुत कुछ हैं। वर्चुअल मेमोरी कैशिंग का भी एक रूप है। इस लेख में, हम कैशिंग की खोज करेंगे ताकि आप समझ सकें कि यह इतना महत्वपूर्ण क्यों है।
- एक साधारण उदाहरण: कैशे से पहले
- एक साधारण उदाहरण: कैश के बाद
- कंप्यूटर कैश
- कैशिंग सबसिस्टम
- कैश टेक्नोलॉजी
- संदर्भ का स्थान
एक साधारण उदाहरण: कैशे से पहले
कैशिंग आपके कंप्यूटर के मेमोरी सबसिस्टम पर आधारित तकनीक है । कैश का मुख्य उद्देश्य कंप्यूटर की कीमत कम रखते हुए अपने कंप्यूटर को तेज करना है। कैशिंग आपको अपने कंप्यूटर कार्यों को अधिक तेज़ी से करने की अनुमति देता है।
कैश सिस्टम के पीछे मूल विचार को समझने के लिए, आइए एक सुपर-सरल उदाहरण से शुरू करें जो कैशिंग अवधारणाओं को प्रदर्शित करने के लिए लाइब्रेरियन का उपयोग करता है। आइए उसकी मेज के पीछे एक लाइब्रेरियन की कल्पना करें। वह वहां आपको वे किताबें देने के लिए है जो आप मांगते हैं। सादगी के लिए, मान लें कि आपको किताबें खुद नहीं मिल सकतीं -- आपको लाइब्रेरियन से किसी भी किताब के लिए पूछना होगा जिसे आप पढ़ना चाहते हैं, और वह इसे आपके लिए एक स्टोररूम में ढेर के एक सेट से लाता है (पुस्तकालय का पुस्तकालय) वाशिंगटन, डीसी में कांग्रेस की स्थापना इस तरह से की जाती है)। सबसे पहले, बिना कैश के एक लाइब्रेरियन से शुरू करते हैं।
पहला ग्राहक आता है। वह मोबी डिक किताब मांगता है । पुस्तकालयाध्यक्ष भण्डार कक्ष में जाता है, पुस्तक प्राप्त करता है, काउंटर पर लौटता है और ग्राहक को पुस्तक देता है। बाद में, ग्राहक पुस्तक वापस करने के लिए वापस आता है। लाइब्रेरियन किताब लेता है और उसे स्टोररूम में लौटा देता है। फिर वह दूसरे ग्राहक की प्रतीक्षा में अपने काउंटर पर लौट आता है। मान लें कि अगला ग्राहक मोबी डिक के लिए पूछता है (आपने इसे आते देखा...)। लाइब्रेरियन को हाल ही में संभाली गई किताब लेने और क्लाइंट को देने के लिए स्टोररूम में लौटना पड़ता है। इस मॉडल के तहत, लाइब्रेरियन को हर किताब को लाने के लिए पूरी तरह से चक्कर लगाना पड़ता है - यहां तक कि बहुत लोकप्रिय भी जिन्हें अक्सर अनुरोध किया जाता है। क्या लाइब्रेरियन के प्रदर्शन में सुधार करने का कोई तरीका है?
हां, एक तरीका है -- हम लाइब्रेरियन पर कैश डाल सकते हैं । अगले भाग में, हम इसी उदाहरण को देखेंगे लेकिन इस बार, लाइब्रेरियन कैशिंग सिस्टम का उपयोग करेगा।
एक साधारण उदाहरण: कैश के बाद
आइए लाइब्रेरियन को एक बैकपैक दें जिसमें वह 10 किताबें स्टोर कर सकेगा (कंप्यूटर के संदर्भ में, लाइब्रेरियन के पास अब 10-बुक कैश है)। इस बैकपैक में, वह ग्राहकों को अधिकतम 10 तक वापस लौटाएगा। आइए पूर्व उदाहरण का उपयोग करें, लेकिन अब हमारे नए और बेहतर कैशिंग लाइब्रेरियन के साथ।
दिन शुरू होता है। लाइब्रेरियन का बैग खाली है। हमारा पहला ग्राहक आता है और मोबी डिक के लिए पूछता है । यहां कोई जादू नहीं है - पुस्तकालयाध्यक्ष को पुस्तक लेने के लिए भंडार कक्ष में जाना पड़ता है। वह ग्राहक को देता है। बाद में, मुवक्किल वापस लौटता है और पुस्तक को वापस पुस्तकालयाध्यक्ष को देता है। पुस्तक को वापस करने के लिए स्टोररूम में लौटने के बजाय, लाइब्रेरियन पुस्तक को अपने बैग में रखता है और वहीं खड़ा होता है (वह पहले यह देखने के लिए जांच करता है कि बैग भरा हुआ है या नहीं - उस पर और बाद में)। एक अन्य ग्राहक आता है और मोबी डिक के लिए पूछता है । स्टोर रूम में जाने से पहले, लाइब्रेरियन यह देखने के लिए जाँच करता है कि क्या यह शीर्षक उसके बैग में है। वह पाता है! उसे बस इतना करना है कि बैग से किताब लेकर क्लाइंट को दे दें। स्टोररूम में कोई यात्रा नहीं है, इसलिए ग्राहक को अधिक कुशलता से परोसा जाता है।
क्या होगा यदि क्लाइंट ने एक शीर्षक के लिए कहा जो कैश में नहीं है (बैकपैक)? इस मामले में, लाइब्रेरियन कैश के साथ कम कुशल है, क्योंकि लाइब्रेरियन पहले अपने बैकपैक में पुस्तक को देखने के लिए समय लेता है। कैश डिज़ाइन की चुनौतियों में से एक कैश खोजों के प्रभाव को कम करना है, और आधुनिक हार्डवेयर ने इस समय की देरी को व्यावहारिक रूप से शून्य कर दिया है। हमारे साधारण लाइब्रेरियन उदाहरण में भी, कैश को खोजने का विलंबता समय (प्रतीक्षा समय) स्टोररूम में वापस जाने के समय की तुलना में इतना छोटा है कि यह अप्रासंगिक है। कैश छोटा है (10 किताबें), और एक चूक को नोटिस करने में लगने वाला समय स्टोररूम की यात्रा में लगने वाले समय का केवल एक छोटा सा अंश है।
इस उदाहरण से आप कैशिंग के बारे में कई महत्वपूर्ण तथ्य देख सकते हैं:
- कैश तकनीक धीमी लेकिन बड़े मेमोरी प्रकार को तेज करने के लिए तेज लेकिन छोटे मेमोरी प्रकार का उपयोग है।
- कैश का उपयोग करते समय, आपको यह देखने के लिए कैश की जांच करनी चाहिए कि कोई आइटम वहां है या नहीं। यदि यह वहां है, तो इसे कैश हिट कहा जाता है । यदि नहीं, तो इसे कैश मिस कहा जाता है और कंप्यूटर को बड़े, धीमे मेमोरी क्षेत्र से एक राउंड ट्रिप की प्रतीक्षा करनी चाहिए।
- कैश का कुछ अधिकतम आकार होता है जो बड़े भंडारण क्षेत्र से बहुत छोटा होता है।
- कैश की कई परतें होना संभव है। हमारे लाइब्रेरियन उदाहरण के साथ, छोटा लेकिन तेज़ मेमोरी प्रकार बैकपैक है, और स्टोररूम बड़े और धीमे मेमोरी प्रकार का प्रतिनिधित्व करता है। यह एक-स्तरीय कैश है। कैश की एक और परत हो सकती है जिसमें एक शेल्फ होता है जो काउंटर के पीछे 100 किताबें रख सकता है। लाइब्रेरियन बैकपैक, फिर शेल्फ और फिर स्टोररूम की जांच कर सकता है। यह दो-स्तरीय कैश होगा।
कंप्यूटर कैश
कंप्यूटर एक ऐसी मशीन है जिसमें हम समय को बहुत ही कम समय में मापते हैं। जब माइक्रोप्रोसेसर मुख्य मेमोरी ( रैम ) तक पहुंचता है , तो वह इसे लगभग 60 नैनोसेकंड (एक सेकंड के 60 अरबवें हिस्से) में करता है। यह बहुत तेज़ है, लेकिन यह सामान्य माइक्रोप्रोसेसर की तुलना में बहुत धीमा है। माइक्रोप्रोसेसरों का चक्र समय 2 नैनोसेकंड जितना छोटा हो सकता है, इसलिए एक माइक्रोप्रोसेसर को 60 नैनोसेकंड अनंत काल की तरह लगता है।
क्या होगा यदि हम मदरबोर्ड में एक विशेष मेमोरी बैंक बनाते हैं, छोटा लेकिन बहुत तेज़ (लगभग 30 नैनोसेकंड)? यह पहले से ही मुख्य मेमोरी एक्सेस से दो गुना तेज है। इसे लेवल 2 कैश या L2 कैश कहा जाता है । क्या होगा अगर हम माइक्रोप्रोसेसर की चिप में सीधे एक छोटी लेकिन तेज मेमोरी सिस्टम बनाते हैं? इस तरह, इस मेमोरी को माइक्रोप्रोसेसर की गति से एक्सेस किया जाएगा, न कि मेमोरी बस की गति से। यह एक L1 कैश है , जो 233-मेगाहर्ट्ज़ (मेगाहर्ट्ज) पेंटियम पर L2 कैश से 3.5 गुना तेज है, जो मुख्य मेमोरी तक पहुंच से दो गुना तेज है।
कुछ माइक्रोप्रोसेसरों में कैश के दो स्तर होते हैं जो सीधे चिप में निर्मित होते हैं। इस मामले में, मदरबोर्ड कैश - माइक्रोप्रोसेसर और मुख्य सिस्टम मेमोरी के बीच मौजूद कैश - स्तर 3, या एल 3 कैश बन जाता है ।
कंप्यूटर में बहुत सारे सबसिस्टम होते हैं; आप प्रदर्शन में सुधार के लिए उनमें से कई के बीच कैश डाल सकते हैं। यहाँ एक उदाहरण है। हमारे पास माइक्रोप्रोसेसर (कंप्यूटर में सबसे तेज चीज) है। फिर L1 कैश है जो L2 कैश को कैश करता है जो मुख्य मेमोरी को कैश करता है जिसे हार्ड डिस्क और सीडी-रोम जैसे धीमे बाह्य उपकरणों के लिए कैश के रूप में उपयोग किया जा सकता है (और अक्सर उपयोग किया जाता है) । हार्ड डिस्क का उपयोग और भी धीमे माध्यम को कैश करने के लिए किया जाता है - आपका इंटरनेट कनेक्शन।
कैशिंग सबसिस्टम
आपका इंटरनेट कनेक्शन आपके कंप्यूटर की सबसे धीमी कड़ी है। तो आपका ब्राउज़र (इंटरनेट एक्सप्लोरर, नेटस्केप, ओपेरा, आदि) HTML पृष्ठों को संग्रहीत करने के लिए हार्ड डिस्क का उपयोग करता है , उन्हें आपकी डिस्क पर एक विशेष फ़ोल्डर में डालता है। जब आप पहली बार HTML पृष्ठ मांगते हैं, तो आपका ब्राउज़र उसे प्रस्तुत करता है और उसकी एक प्रति आपकी डिस्क पर भी संग्रहीत होती है। अगली बार जब आप इस पृष्ठ तक पहुंच का अनुरोध करते हैं, तो आपका ब्राउज़र जांचता है कि इंटरनेट पर फ़ाइल की तारीख कैश्ड से नई है या नहीं। यदि तिथि समान है, तो आपका ब्राउज़र इंटरनेट से डाउनलोड करने के बजाय आपकी हार्ड डिस्क पर मौजूद तिथि का उपयोग करता है। इस मामले में, छोटी लेकिन तेज मेमोरी सिस्टम आपकी हार्ड डिस्क है और बड़ी और धीमी गति वाला इंटरनेट है।
कैश को सीधे बाह्य उपकरणों पर भी बनाया जा सकता है । आधुनिक हार्ड डिस्क तेज मेमोरी के साथ आती हैं, लगभग 512 किलोबाइट , हार्ड डिस्क से हार्डवायर्ड। कंप्यूटर सीधे इस मेमोरी का उपयोग नहीं करता -- हार्ड-डिस्क नियंत्रक करता है। कंप्यूटर के लिए, ये मेमोरी चिप्स डिस्क ही हैं। जब कंप्यूटर हार्ड डिस्क से डेटा मांगता है, तो हार्ड डिस्क नियंत्रक हार्ड डिस्क के यांत्रिक भागों (जो मेमोरी की तुलना में बहुत धीमा है) को स्थानांतरित करने से पहले इस मेमोरी में जांच करता है। यदि यह वह डेटा पाता है जिसे कंप्यूटर ने कैशे में मांगा है, तो यह कैश में संग्रहीत डेटा को वास्तव में डिस्क पर ही डेटा एक्सेस किए बिना वापस कर देगा, जिससे बहुत समय की बचत होगी।
यहां एक प्रयोग है जिसे आप आजमा सकते हैं। आपका कंप्यूटर आपके फ़्लॉपी ड्राइव को मुख्य मेमोरी के साथ कैश करता है, और आप वास्तव में इसे होते हुए देख सकते हैं। अपने फ़्लॉपी से एक बड़ी फ़ाइल तक पहुँचें -- उदाहरण के लिए, टेक्स्ट एडिटर में 300 किलोबाइट टेक्स्ट फ़ाइल खोलें। पहली बार, आप अपने फ़्लॉपी पर प्रकाश को चालू होते हुए देखेंगे, और आप प्रतीक्षा करेंगे। फ़्लॉपी डिस्क बेहद धीमी होती है, इसलिए फ़ाइल को लोड होने में 20 सेकंड का समय लगेगा। अब, संपादक को बंद करें और उसी फ़ाइल को फिर से खोलें। दूसरी बार (30 मिनट तक प्रतीक्षा न करें या दो प्रयासों के बीच बहुत अधिक डिस्क एक्सेस न करें) आप प्रकाश को चालू नहीं देखेंगे, और आप प्रतीक्षा नहीं करेंगे। ऑपरेटिंग सिस्टमफ्लॉपी डिस्क के लिए इसके मेमोरी कैश में चेक किया और पाया कि वह क्या ढूंढ रहा था। इसलिए 20 सेकंड प्रतीक्षा करने के बजाय, डेटा एक मेमोरी सबसिस्टम में उस समय की तुलना में बहुत तेज़ी से पाया गया जब आपने पहली बार कोशिश की थी (फ्लॉपी डिस्क तक एक पहुंच में 120 मिलीसेकंड लगते हैं, जबकि मुख्य मेमोरी तक एक पहुंच में लगभग 60 नैनोसेकंड लगते हैं - यह बहुत कुछ है और तेज)। आप अपनी हार्ड डिस्क पर एक ही परीक्षण चला सकते थे, लेकिन यह फ़्लॉपी ड्राइव पर अधिक स्पष्ट है क्योंकि यह बहुत धीमा है।
आपको इसकी पूरी तस्वीर देने के लिए, यहां एक सामान्य कैशिंग सिस्टम की सूची दी गई है:
- L1 कैश - मेमोरी पूर्ण माइक्रोप्रोसेसर गति पर पहुंचती है (10 नैनोसेकंड, 4 किलोबाइट से 16 किलोबाइट आकार में)
- L2 कैश - SRAM प्रकार की मेमोरी एक्सेस (लगभग 20 से 30 नैनोसेकंड, 128 किलोबाइट से 512 किलोबाइट आकार में)
- मुख्य मेमोरी - प्रकार की रैम की मेमोरी एक्सेस (लगभग 60 नैनोसेकंड, 32 मेगाबाइट से 128 मेगाबाइट आकार में)
- हार्ड डिस्क - यांत्रिक, धीमी (लगभग 12 मिलीसेकंड, 1 गीगाबाइट से 10 गीगाबाइट आकार में)
- इंटरनेट - अविश्वसनीय रूप से धीमा (1 सेकंड और 3 दिनों के बीच, असीमित आकार)
जैसा कि आप देख सकते हैं, L1 कैश L2 कैश को कैश करता है, जो मुख्य मेमोरी को कैश करता है, जिसका उपयोग डिस्क सबसिस्टम को कैश करने के लिए किया जा सकता है, और इसी तरह।
कैश टेक्नोलॉजी
इस बिंदु पर पूछा जाने वाला एक सामान्य प्रश्न है, "क्यों न कंप्यूटर की सभी मेमोरी को L1 कैश के समान गति से चलाया जाए, इसलिए किसी कैशिंग की आवश्यकता नहीं होगी?" यह काम करेगा, लेकिन यह अविश्वसनीय रूप से महंगा होगा। कैशिंग के पीछे का विचार बड़ी मात्रा में धीमी, कम खर्चीली मेमोरी को तेज करने के लिए महंगी मेमोरी की एक छोटी मात्रा का उपयोग करना है।
कंप्यूटर को डिजाइन करने में, लक्ष्य माइक्रोप्रोसेसर को अपनी पूरी गति से यथासंभव सस्ते में चलाने की अनुमति देना है। एक 500-मेगाहर्ट्ज चिप एक सेकंड में 500 मिलियन चक्रों (प्रत्येक दो नैनोसेकंड में एक चक्र) से गुजरती है। L1 और L2 कैश के बिना, मुख्य मेमोरी तक पहुंच में 60 नैनोसेकंड, या मेमोरी तक पहुंचने में लगभग 30 बर्बाद चक्र लगते हैं।
जब आप इसके बारे में सोचते हैं, तो यह अविश्वसनीय होता है कि इतनी छोटी मात्रा में मेमोरी बहुत अधिक मात्रा में मेमोरी के उपयोग को अधिकतम कर सकती है। एक 256-किलोबाइट L2 कैश के बारे में सोचें जो 64 मेगाबाइट RAM को कैश करता है। इस मामले में, 256,000 बाइट्स कुशलतापूर्वक 64,000,000 बाइट्स को कैश करते हैं। यह क्यों काम करता है?
कंप्यूटर विज्ञान में, हमारे पास एक सैद्धांतिक अवधारणा है जिसे संदर्भ का स्थान कहा जाता है । इसका मतलब है कि एक काफी बड़े कार्यक्रम में, किसी भी समय केवल छोटे हिस्से का ही उपयोग किया जाता है। यह जितना अजीब लग सकता है, संदर्भ का स्थान अधिकांश कार्यक्रमों के लिए काम करता है। यहां तक कि अगर निष्पादन योग्य आकार में 10 मेगाबाइट है, तो उस कार्यक्रम से केवल कुछ मुट्ठी भर बाइट्स किसी भी समय उपयोग में हैं, और उनकी पुनरावृत्ति की दर बहुत अधिक है। अगले पृष्ठ पर, आप संदर्भ के स्थान के बारे में और जानेंगे।
संदर्भ का स्थान
आइए निम्नलिखित छद्म कोड पर एक नज़र डालें कि संदर्भ का स्थान क्यों काम करता है (देखें कि सी प्रोग्रामिंग वास्तव में इसमें कैसे काम करता है):
स्क्रीन पर आउटपुट « 1 और 100 के बीच की कोई संख्या दर्ज करें» उपयोगकर्ता से इनपुट पढ़ें चर X . में उपयोगकर्ता से मान डालें मान 100 को वेरिएबल Y . में रखें मान 1 को वेरिएबल Z . में रखें लूप Y समय की संख्या Z को X से भाग दें यदि भाग का शेष भाग = 0 तब आउटपुट «Z, X का गुणज है» Z . में 1 जोड़ें लूप पर लौटें समाप्त
यह छोटा प्रोग्राम उपयोगकर्ता को 1 और 100 के बीच की संख्या दर्ज करने के लिए कहता है। यह उपयोगकर्ता द्वारा दर्ज किए गए मान को पढ़ता है। फिर, प्रोग्राम उपयोगकर्ता द्वारा दर्ज की गई संख्या से प्रत्येक संख्या को 1 और 100 के बीच विभाजित करता है। यह जाँचता है कि क्या शेषफल 0 (मॉड्यूलो डिवीजन) है। यदि ऐसा है, तो प्रोग्राम 1 और 100 के बीच की प्रत्येक संख्या के लिए "Z, X का गुणज है" (उदाहरण के लिए, 12, 6 का गुणज है) आउटपुट करता है। फिर प्रोग्राम समाप्त हो जाता है।
यदि आप कंप्यूटर प्रोग्रामिंग के बारे में ज्यादा नहीं जानते हैं, तो भी यह समझना आसान है कि इस प्रोग्राम की 11 पंक्तियों में, लूप भाग (पंक्तियाँ 7 से 9) को 100 बार निष्पादित किया जाता है। अन्य सभी पंक्तियों को केवल एक बार निष्पादित किया जाता है। कैशिंग की वजह से लाइन 7 से 9 काफी तेज चलेगी।
यह प्रोग्राम बहुत छोटा है और पूरी तरह से L1 कैश के छोटे से छोटे कैश में आसानी से फिट हो सकता है, लेकिन मान लें कि यह प्रोग्राम बहुत बड़ा है। नतीजा वही रहता है। जब आप प्रोग्राम करते हैं, तो लूप्स के अंदर बहुत सारी क्रियाएँ होती हैं। एक शब्द संसाधक 95 प्रतिशत समय आपके इनपुट की प्रतीक्षा करने और उसे स्क्रीन पर प्रदर्शित करने में व्यतीत करता है। वर्ड-प्रोसेसर प्रोग्राम का यह भाग कैश में होता है।
यह ९५%-से-५% अनुपात (लगभग) वह है जिसे हम संदर्भ के इलाके कहते हैं, और यही कारण है कि कैश इतनी कुशलता से काम करता है। यही कारण है कि इतना छोटा कैश इतनी बड़ी मेमोरी सिस्टम को कुशलता से कैश कर सकता है। आप देख सकते हैं कि हर जगह सबसे तेज मेमोरी वाला कंप्यूटर बनाना इसके लायक क्यों नहीं है। हम लागत के एक अंश के लिए इस प्रभावशीलता का 95 प्रतिशत वितरित कर सकते हैं।
कैशिंग और संबंधित विषयों के बारे में अधिक जानकारी के लिए, अगले पृष्ठ पर लिंक देखें।
बहुत अधिक जानकारी
संबंधित आलेख
- वर्चुअल मेमोरी कैसे काम करती है
- कंप्यूटर मेमोरी कैसे काम करती है
- कंप्यूटर मेमोरी प्रश्नोत्तरी
- कंप्यूटर मेमोरी इमेज गैलरी
- सी प्रोग्रामिंग कैसे काम करता है
- माइक्रोप्रोसेसर कैसे काम करते हैं
- हार्ड डिस्क कैसे काम करती है
- ऑपरेटिंग सिस्टम कैसे काम करते हैं
- BIOS कैसे काम करता है
- पीसी कैसे काम करते हैं
- पेंटियम और सेलेरॉन प्रोसेसर में क्या अंतर है?
अधिक बढ़िया लिंक
- पीसी गाइड: कैश की "परतें"
- वेबोपीडिया: कैशे
- कैशे की मूल बातें
- अपना खुद का इन-मेमोरी डेटा कैश बनाना - PDF
- ऑपरेटिंग सिस्टम कर्नेल कार्यक्षमता का एक कैशिंग मॉडल