डिस्क बफ़र

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

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

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

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

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

उपयोग

आगे पढ़ें/पीछे पढ़ें

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

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

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

गति मिलान

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

त्वरण लिखें

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

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

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

कमांड कतार

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

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

होस्ट से कैश नियंत्रण

कैश फ्लशिंग

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


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

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


यह भी देखें

संदर्भ

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