डिस्क बफर

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

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

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

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

उपयोग करता है

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

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

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

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

गति मिलान

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

त्वरण लिखें

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

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

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

कमांड कतार

नए सीरियल ATA और अधिकांश SCSI डिस्क कई कमांड को स्वीकार कर सकते हैं, जबकि कोई भी कमांड कमांड क्यूइंग के माध्यम से ऑपरेशन में है (देखें नेटिव कमांड क्यूइंग और टैग की गई कमांड क्यूइंग )। ये आदेश डिस्क के अंतर्निहित नियंत्रक द्वारा पूर्ण होने तक संग्रहीत किए जाते हैं। एक लाभ यह है कि कमांड को अधिक कुशलता से संसाधित करने के लिए फिर से आदेश दिया जा सकता है, ताकि डिस्क के समान क्षेत्र को प्रभावित करने वाले कमांड को एक साथ समूहीकृत किया जा सके। एक पंक्तिबद्ध लेखन के गंतव्य पर डेटा को पढ़ने के संदर्भ में, लिखित डेटा वापस कर दिया जाएगा।

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

मेजबान से कैश नियंत्रण

कैश फ्लशिंग

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


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

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


यह भी देखें

संदर्भ

  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. Hitachi (2006). Deskstar 7K80 Disk Drive Specification, 4th Edition (Revision 1.6)(12 September 2006) Final. Hitachi Global Storage Technologies. pp. 99, 130, 131.
  5. Christoph Hellwig; Theodore Ts'o. "Does ext4 send FUA to flush disk cache". spinics.net. Retrieved 2014-03-18.
  6. Jonathan Corbet (2010-08-18). "The end of block barriers". LWN.net. Retrieved 2015-06-27.
  7. "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.
  8. 8.0 8.1 Gregory Smith (2010). PostgreSQL 9.0: High Performance. Packt Publishing Ltd. p. 78. ISBN 978-1-84951-031-8.
  9. Bruce Jacob; Spencer Ng; David Wang (2010). Memory Systems: Cache, DRAM, Disk. Morgan Kaufmann. p. 734. ISBN 978-0-08-055384-9.
  10. "लेनदेन संबंधी एनटीएफएस (विंडोज़) की तैनाती". Msdn.microsoft.com. 2013-12-05. Retrieved 2014-01-24.
  11. "Forced Unit Access | Working Hard In IT". Workinghardinit.wordpress.com. 2012-10-12. Retrieved 2014-01-24.
  12. "Storage related regression in linux-next 20120824". 2012-09-12. Retrieved 2015-06-27.
  13. "Revert "libata: enable SATA disk fua detection on default"". 2012-09-13. Retrieved 2015-06-27.
  14. "Linux kernel documentation: Documentation/block/writeback_cache_control.txt". kernel.org. 2013-08-12. Retrieved 2014-01-24.