डिस्क बफर

From Vigyanwiki
इस हार्ड डिस्क ड्राइव पर, कंट्रोलर बोर्ड में डिस्क बफर के लिए उपयोग किया जाने वाला रैम इंटीग्रेटेड सर्किट होता है।
16 एमबी बफर के साथ 500 जीबी पश्चिमी डिजिटल हार्ड डिस्क ड्राइव

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

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

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

उपयोग करता है

रीड-फॉरवर्ड/रीड-बैक

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

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

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

गति मिलान

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

त्वरण लिखें

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

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

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

आदेश कतार

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

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

कैश फ्लशिंग

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


फोर्स यूनिट एक्सेस (एफयूए)

फोर्स यूनिट एक्सेस (एफयूए) एक I/O राइट आदेश विकल्प है जो लिखित डेटा को स्थिर भंडारण के लिए बाध्य करता है।[5] FUA राइट आदेश (WRITE DMA FUA EXT – 3Dh, DMA क्यूयूड फूए एक्सट लिखें – 3एह, एक से अधिक फूए एक्सट लिखें – CEh), FUA के बिना संबंधित आदेश के विपरीत, मीडिया को सीधे डेटा लिखें, भले ही डिवाइस में कैशिंग लिखना सक्षम हो या नहीं। मीडिया को डेटा लिखे जाने तक FUA राइट आदेश वापस नहीं आएगा, इस प्रकार एक पूर्ण FUA राइट आदेश द्वारा लिखा गया डेटा स्थायी मीडिया पर होता है, भले ही फ्लश कैश आदेश जारी करने से पहले डिवाइस को बंद कर दिया गया हो।[6][7] FUA SCSI आदेश सेट में दिखाई दिया, और बाद में SATA द्वारा नेटिव आदेश क्यूइंग के साथ अपनाया गया। एफयूए अधिक सुक्ष्म है क्योंकि यह एक एकल लेखन ऑपरेशन को स्थिर मीडिया के लिए मजबूर करने की अनुमति देता है और इस प्रकार पूरे डिस्क कैश को फ्लश करने वाले आदेशों की तुलना में कम समग्र प्रदर्शन प्रभाव होता है, जैसे कि एटीए फ्लश कैश आदेश का परिवार।[7][8] Windows (Vista और up) Transactional NTFS के भाग के रूप में FUA का समर्थन करता है, लेकिन केवल SCSI या फाइबर चैनल डिस्क के लिए जहाँ FUA के लिए समर्थन आम है।[9] यह ज्ञात नहीं है कि क्या एक SATA ड्राइव जो FUA राइट आदेश का समर्थन करती है, वास्तव में आदेश का सम्मान करेगी और निर्देश के अनुसार डिस्क प्लैटर्स पर डेटा लिखेगी;[citation needed] इस प्रकार, विंडोज 8 और विंडोज सर्वर 2012 इसके बजाय कुछ लेखन कार्यों के बाद डिस्क राइट कैश को फ्लश करने के लिए आदेश भेजते हैं।[10] हालांकि लिनक्स कर्नेल ने 2007 के आसपास NCQ के लिए समर्थन प्राप्त किया, SATA FUA डिफ़ॉल्ट रूप से अक्षम रहता है क्योंकि 2012 में पाए गए प्रतिगमन के कारण जब FUA के लिए कर्नेल के समर्थन का परीक्षण किया गया था।[11][12] Linux कर्नेल ब्लॉक स्तर स्तर पर FUA का समर्थन करता है।[13]


यह भी देखें

संदर्भ

  1. Mark Kyrnin. "What to Look for in a Hard Drive". about.com. Retrieved 2014-12-20. A drive's buffer is an amount of RAM on the drive to store frequently accessed data from the drive.
  2. "Samsung SSD 860 PRO | Samsung V-NAND Consumer SSD | Samsung Semiconductor Global Website". Samsung. Archived from the original on April 6, 2018. Retrieved July 16, 2018. CACHE MEMORY: 4 GB Low Power DDR4 (4,096 GB)
  3. Disks for Data Centers.
  4. Christoph Hellwig; Theodore Ts'o. "Does ext4 send FUA to flush disk cache". spinics.net. Retrieved 2014-03-18.
  5. Jonathan Corbet (2010-08-18). "The end of block barriers". LWN.net. Retrieved 2015-06-27.
  6. "Information technology - AT Attachment 8 - ATA/ATAPI Command Set (ATA8-ACS)" (PDF). T13/1699-D, revision 6a, September 6, 2008. American National Standards Institute, Inc. Archived from the original (PDF) on 6 August 2020. Retrieved 14 December 2020.
  7. 7.0 7.1 Gregory Smith (2010). PostgreSQL 9.0: High Performance. Packt Publishing Ltd. p. 78. ISBN 978-1-84951-031-8.
  8. Bruce Jacob; Spencer Ng; David Wang (2010). Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann. p. 734. ISBN 978-0-08-055384-9.
  9. "लेनदेन संबंधी एनटीएफएस (विंडोज़) की तैनाती". Msdn.microsoft.com. 2013-12-05. Retrieved 2014-01-24.
  10. "Forced Unit Access | Working Hard In IT". Workinghardinit.wordpress.com. 2012-10-12. Retrieved 2014-01-24.
  11. "Storage related regression in linux-next 20120824". 2012-09-12. Retrieved 2015-06-27.
  12. "Revert "libata: enable SATA disk fua detection on default"". 2012-09-13. Retrieved 2015-06-27.
  13. "Linux kernel documentation: Documentation/block/writeback_cache_control.txt". kernel.org. 2013-08-12. Retrieved 2014-01-24.