डिस्क बफर

कंप्यूटर स्टोरेज में, डिस्क बफर (जिसे प्रायः डिस्क कैशे या कैशे बफर, अस्पष्ट रूप से कहा जाता है) हार्ड डिस्क ड्राइव (एचडीडी) या सॉलिड स्टेट ड्राइव (एसएसडी) में एम्बेडेड मेमोरी होती है, जो कंप्यूटर के अन्य हिस्से और भौतिक हार्ड डिस्क प्लैटर या फ्लैश मेमोरी के मध्य बफर के रूप में कार्य करती है। आधुनिक हार्ड डिस्क ड्राइव में 8 से 256 मेगाबाइट तक मेमोरी होती है, जबकि सॉलिड स्टेट ड्राइव में 4 जीबी तक कैशे मेमोरी होती है।                                                                                                                                          1980 के दशक के पश्चात, लगभग सभी डिस्क सूक्ष्म नियंत्रक और आनुक्रमिक एटीए, एससीएसआई या तन्तु प्रणाली अंतरापृष्ठ विनिर्देश के साथ आते हैं। ड्राइव परिपथ सामान्यतः कम मेमोरी रखती है, जो डिस्क प्लेटर्स से आने-जाने वाले डेटा को स्टोर करने के उपयोग में लायी जाती है। डिस्क बफर भौतिक रूप से पेज कैशे से अलग होता है, और कंप्यूटर के मुख्य मेमोरी में संचित ऑपरेटिंग सिस्टम द्वारा सामान्यतः रखे जाने वाले पेज कैशे अलग-अलग विधियों द्वारा उपयोग किया जाता है। हार्ड डिस्क ड्राइव में सूक्ष्म नियंत्रक द्वारा डिस्क बफर को नियंत्रित किया जाता है, जबकि पेज कैशे कंप्यूटर द्वारा नियंत्रित किया जाता है, जिससे वह डिस्क से जुड़ा होता है। डिस्क बफर 8 मेगाबाइट से 4 जीबी तक होता है, जो सामान्यतः बहुत छोटा होता है, और पेज कैशे अपयोगित मेमोरी होता है, जबकि पेज कैशे में डेटा कई बार पुनः प्रयोग किया जाता है, और डिस्क बफर में डेटा पुनः उपयोग नहीं किया जाता है। इस मानदंड के अनुसार, डिस्क कैशे और कैशे बफर शब्द गलत हैं; एम्बेडेड नियंत्रक की मेमोरी को उचित रूप से डिस्क बफर कहा जाना चाहिए।

ध्यान दें कि डिस्क सरणी नियंत्रक, डिस्क नियंत्रको के विपरीत, लगभग 0.5–8  जीबी की सामान्य कैशे मेमोरी होती है।

आगे की ओर पढ़े / पीछे की ओर पढ़े
जब एक डिस्क नियंत्रक भौतिक रीड को निष्पादित करता है, तो प्रेरक रीड/राइट हेड को सही सिलेंडर के पास ले जाता है। कुछ ठहराव के पश्चात रीड हेड को ठीक से सेट करने के उपरांत रीड हेड ट्रैक डेटा को लेना प्रारंभ कर देता है, और पुनः उसे प्रतीक्षा करना होता है, जब तक प्लेटर के घूमने से अनुरोधित डेटा उपलब्ध नहीं हो जाता है।

प्रतीक्षा के समय अनुरोध से पहले पढ़ी गई डेटा अनुरोधित नहीं होती है, परंतु मुक्त होती है, इसलिए यह डिस्क बफर में संचित किया जाता है, जिससे यदि बाद में इसे अनुरोध किया जाए तो उपलब्ध हो सके।

इसी तरह, अनुरोध किए गए डेटा के पीछे डेटा को मुफ्त में पढ़ा जा सकता है क्योंकि कोई अन्य इसी तरह, यदि हेड ट्रैक पर रह सकता है तो अनुरोध किए गए डेटा के विपरीत डेटा को मुक्त में पढ़ा जा सकता है, क्योंकि निष्पादित करने के लिए कोई अन्य रीड नहीं होता है, या अगला प्रवर्तक बाद में प्रारंभ हो सकता है, और अभी भी समय से पहले पूरा हो सकता है। यदि कई अनुरोधित रीड एक ही ट्रैक पर हैं, तो उन दोनों के मध्य के अधिकांश अनुरोधित डेटा आगे और पीछे दोनों ही पढ़ा जा सकता है।

गति सुमेलन
कंप्यूटर के लिए डिस्क के I/O इंटरफ़ेस की गति लगभग कभी भी उस गति से मेल नहीं खाती जिस पर बिट्स को हार्ड डिस्क प्लैटर में और उससे स्थानांतरित किया जाता है। डिस्क बफ़र का उपयोग किया जाता है, जिससे I/O इंटरफ़ेस और डिस्क रीड/राइट हेड दोनों पूर्ण गति से काम कर सकें। कंप्यूटर से डिस्क के I/O इंटरफ़ेस की गति लगभग कभी-कभी हार्ड डिस्क प्लैट से बिट्स के स्थानांतरण की गति से मेल नहीं खाती है। डिस्क बफर का उपयोग इसलिए किया जाता है, जिससे I/O अंतरापृष्ठ विनिर्देश और डिस्क रीड/राइट वाले हेड दोनों पूरी गति से कार्य कर सकें।

त्वरण लेखन
डिस्क में समाहित सूक्ष्म नियंत्रक डिस्क डेटा लिखने से पहले ही मुख्य कंप्यूटर को संकेत दे सकता है कि, डिस्क लिखना पूर्ण हो गया है। यह संकेत मुख्य कंप्यूटर को इस बात की अनुमति देता है कि वह डेटा लिखने के बाद भी कार्य जारी रख सकता है। यह कुछ सीमा तक तक संकटपूर्ण हो सकता है, क्योंकि यदि डेटा को चुंबकीय मीडिया में स्थायी रूप से फिक्स करने से पहले विद्युत की आपूर्ति कट जाती है, तो डिस्क बफर से डेटा लुप्त हो सकता है, और डिस्क पर फ़ाइल प्रणाली असंगत अवस्था में रह सकता है।

कुछ डिस्क पर, लेखन पूर्ण होने का संकेत देने और डेटा को ठीक करने के मध्य की यह कमजोर अवधि अव्यवस्थित रूप से से लंबी हो सकती है, क्योंकि नए आने वाले अनुरोधों द्वारा लेखन को अनिश्चित काल के लिए स्थगित किया जा सकता है। इस कारण से, लेखन त्वरण का उपयोग विवादास्पद हो सकता है। यद्यपि, कैशिंग डेटा के लिए बैटरी-समर्थित मेमोरी प्रणाली का उपयोग करके संगति को बनाए रखा जा सकता है, और यह मात्र उच्च-अंत रेड नियंत्रकों में पाया जाता है।

वैकल्पिक रूप से, कैशिंग को मात्र तब बंद किया जा सकता है जब डेटा की अखंडता लेखन प्रदर्शन से अधिक महत्वपूर्ण मानी जाती है। एक अन्य विकल्प डिस्क को सावधानीपूर्वक प्रबंधित क्रम में डेटा भेजना और सही स्थानों पर "कैश फ्लश" आदेश जारी करना है, जिसे सामान्यतः राइट बैरियर के कार्यान्वयन के रूप में संदर्भित किया जाता है।

पंक्ति आदेश
नए साटा और अधिकतम एससीएसआई डिस्क "पंक्ति आदेश" (एनसीक्यू और टीसीक्यू) के माध्यम से किसी भी एक आदेश के प्रचालन के समय कई आदेश स्वीकार कर सकते हैं। ये आदेश डिस्क के एम्बेडेड नियंत्रक द्वारा स्टोर किए जाते हैं, जब तक कि वे पूर्ण न हो जाएँ। इससे एक लाभ यह है कि, आदेश को अधिक दक्षता से प्रोसेस करने के लिए पुनर्व्यवस्थित किया जा सकता है, जिससे एक डिस्क के एक ही क्षेत्र को प्रभावित करने वाले आदेशो को साथ में एकत्र किया जा सके। यदि कोई रीड गंतव्य में लिखित आदेश के डेटा का उल्लेख करता है तो, लिखने वाले डेटा को वापस लौटाया जा सकता है ।

एनसीक्यू सामान्यतः सक्षम लेखन बफरिंग के संयोजन में प्रयोग किया जाता है। यदि एक रीड / राइट एफपीडीएमए आदेश के साथ फोर्स यूनिट एक्सेस (एफयूए) बिट 0 पर सेट और सक्षम लेखन बफर के साथ, तो ऑपरेटिंग सिस्टम डेटा को वास्तविक रूप से मीडिया में लिखने से पहले लिखने के पूर्ण होने को देख सकता है यदि एफयूए बिट 1 पर सेट होता है और सक्षम लेखन बफरिंग होता है, तो डेटा को वास्तविक रूप से मीडिया में लिखने के बाद ही लेखन आदेश लौटता है।

कैशेे संप्रवाहन
डिस्क डिवाइस के लेख कैशे में स्वीकृति प्राप्त डेटा अंततः डिस्क प्लेटर में लिखा जाता है, तथा यह सुनिश्चित किया जाता है, कि कोई फर्मवेयर त्रुटि से संसाधित स्थिति न हो, राइट कैशे डिस्क प्लेटर पर जब तक बल प्रदान नहीं किए जाते तब तक, राइट कैशे को नियंत्रित करने के लिए, एटीए स्पष्टीकरण में फ्लश कैशे (E7h) और फ्लश कैशे (EAh) आदेश को सम्मिलित किया जाता हैं। ये कमांड डिस्क को अपने कैशे से डेटा को पूरा करने के लिए उत्तेजित करता हैं,और डिस्क अच्छी स्थिति मे पुनः लौटता है, जब लिखित कैशे डिस्क मीडिया में लिखा जाता है, तथा  फ्लैश मीडिया पर ये आदेश तुरंत एफटीएल मैपिंग टेबल मे संचित किया जाता है। इसके अतिरिक्त, कैशे को फ्लश करना कम से कम कुछ डिस्क पर सॉफ्ट रीसेट या समर्थन करके तुरंत आदेश जारी करके प्रारंभ किया जा सकता है। लिनक्स में वैश्विक कैशे फ्लशिंग का उपयोग कुछ फाइल प्रणालियों  (जैसे ext4) में  राइट बैरियर के कार्यान्वयन के लिए किया जाता है, जो संयोजन समाप्ति ब्लॉक के लिए फोर्स यूनिट एक्सेस राइट आदेश के साथ होता है।

बल इकाई अभिगम्यता (एफयूए)
फोर्स यूनिट एक्सेस (एफयूए) एक I/O लेखन आदेश विकल्प है, जो लिखे गए डेटा को स्थिर संग्रहित स्थान तक पहुंचाने के लिए बल देता है। (एफयूए) लेखन आदेश के सापेक्ष,डिवाइस में व्रित कैशेिंग सक्षम हो या न हो, सीधे मीडिया में डेटा लिखते हैं। एफयूए लेखन आदेश तब तक वापस नहीं आता है जब तक डेटा मीडिया में लिखा नहीं जाता, इसलिए फिर चाहे फ्लश कैशे आदेश जारी करने से पहले डिवाइस बंद हो जाए, एफयूए द्वारा पूरा किया गया लेखा गया डेटा स्थाई मीडिया पर होता है। एफयूए एससीएसआई आदेश सेट में आया था, और बाद में एनसीक्यू के साथ साटा द्वारा अपनाया गया था। एफयूए अधिक फाइन-ग्रेन्ड है क्योंकि यह एकल लेखन संचालन को स्थायी मीडिया पर बल देने की अनुमति देता है और इसलिए डिस्क कैशे को पूरी तरह से फ्लश करने वाले आदेशों (जैसे एटीए फ्लश कैशे संबंधी आदेश ) से तुलना करने पर कुल द्रव्यमान पर कम असर होता है।,विंडोज में लेन-देन एनटीएफएस के रूप में एफयूए का समर्थन करता है, परंतु ऐसे सीएससी या फाइबर चैनल डिस्क के लिए जहां एफयूए का समर्थन सामान्य होता है। यह ज्ञात नहीं है कि एक साटा ड्राइव जो एफयूए सही आदेश का समर्थन करता है, वास्तव में आदेश का सम्मान करेगा और निर्देश के अनुसार डिस्क प्लैटर्स को डेटा लिखेगा ; इस प्रकार, विंडोज 8 और विंडोज सर्वर 2012 इसके अतिरिक्त डिस्क सही कैश को फ्लश करने के लिए आदेश भेजते हैं।

लिनक्स कर्नल ने 2007 के पश्चात एनसीक्यू के समर्थन को प्राप्त किया था, यद्यपि 2012 में कर्नल के एफयूए के समर्थन का परीक्षण किया गया तो प्रतिगमन का पता चला, इसलिए साटा एफयूए अभी भी व्यतिक्रम रूप से अक्षम है। लिनक्स कर्नल ब्लॉक स्तर के स्तर पर एफयूए का समर्थन करता है।

यह भी देखें

 * हाइब्रिड सरणी
 * हाइब्रिड ड्राइव