हार्ड ड्राइव कैसे जानता है कि डेटा कहाँ शुरू होता है? [डुप्लिकेट]


14

मैं हमेशा सोचता था कि हार्ड ड्राइव डेटा का पहला बिट कैसे पाता है।

जब एक हार्ड ड्राइव घूमता है, तो जो कुछ भी पढ़ता है वह डेटा की एक परिपत्र धारा होना चाहिए जब तक कि रीडिंग सिर एक अलग स्थिति में न चला जाए।

लेकिन इस तरह के एक परिपत्र प्रवाह में, ड्राइव को कैसे पता चलता है कि पहला बिट और अंतिम बिट कहां है, ताकि यह सही क्रम में डेटा पर गुजर सके?


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

जवाबों:


2

इसे डिस्क से पढ़ता है।

डिस्क पर डेटा न केवल संरचित है (जैसा कि @psusi कहता है), लेकिन एन्कोडेड भी। एन्कोडिंग यह सुनिश्चित करता है कि दर्ज किए गए डेटा को सेक्टर शीर्षकों में स्थिति मार्करों के लिए भ्रमित नहीं किया जा सकता है, इसलिए लक्ष्य स्थिति मार्कर मिलने तक परिपत्र धारा को पढ़ा जा सकता है।

जैसा कि मैं इसे समझता हूं, आधुनिक हार्ड ड्राइव ऐसा नहीं करते हैं; वे पूरे सर्कल को एक बफर में पढ़ते हैं, प्रत्येक सेक्टर का ट्रैक रखते हुए, बफ़र्स का उपयोग करके अनुरोधित डेटा वापस भेजने के लिए उपयोग करते हैं।

अपडेट करें:

चुंबकीय मीडिया एक ऐसी सामग्री है जिसमें दो प्रमुख गुणों के साथ एक चुंबकीय क्षेत्र होता है: 1) यह कभी भी अपने आप नहीं बदलता है, और 2) रिकॉर्डिंग डिवाइस सतह पर किसी भी बिंदु पर क्षेत्र के उन्मुखीकरण को बदल सकता है। मीडिया को पढ़ते समय, सेंसर यह पता लगाता है कि कहाँ क्षेत्र सेंसर की ओर उन्मुख है और कहाँ क्षेत्र सेंसर से दूर है। जैसे-जैसे सेंसर सतह के पार जाता है, यह इन ध्रुवीयता संक्रमणों के समय का पता लगाता है; डिकोडिंग की पहली परत इन टाइमिंग को बिट वैल्यू में बदल रही है । इस प्रक्रिया में शारीरिक रूप से आवश्यक अनिश्चितताओं के कारण, एन्कोडिंग को एक ही ध्रुवता के लंबे खंड की आवश्यकता नहीं होनी चाहिए; अर्थात् , यह एक रन-लंबाई सीमित कोडिंग (RLL) होना चाहिए ।

हार्ड ड्राइव डिज़ाइन के विवरण आम तौर पर व्यापार रहस्य होते हैं, लेकिन यह सुनिश्चित करने के लिए अनिवार्य रूप से दो तरीके हैं कि सेक्टर मार्कर कभी भी सेक्टर सामग्री में दिखाई न दें:

  1. एक RLL डिज़ाइन करें जो विशेष मानों की अनुमति देता है जो कभी भी एन्कोडिंग सामग्री डेटा से परिणाम नहीं देगा। इन विशेष मूल्यों का उपयोग न केवल क्षेत्र की सीमाओं को चिह्नित करने के लिए किया जा सकता है, बल्कि त्रुटि सुधार या किसी अन्य माध्यमिक उद्देश्य के लिए भी किया जा सकता है।

  2. एन्कोडिंग की दूसरी परत का उपयोग करें जो मार्कर पर केवल मार्कर मान प्रदर्शित करने को सुनिश्चित करता है। यह URL एन्कोडिंग की तरह एक सा है, जो विशेष वर्णों को URL में "छिपा" होने की अनुमति देता है, लेकिन अतिरिक्त वर्णक के साथ यह सीमित है कि कितने वर्ण जोड़े जा सकते हैं, इसलिए यह बेस 64 एन्कोडिंग की तरह अधिक समाप्त होता है ।

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


क्या यह हफ़मैन कोडिंग की तरह एन्कोडिंग है? यदि कोई इस बात का स्पष्ट उदाहरण दे सकता है कि यह हार्डवेयर स्तर पर कैसे काम करता है, जैसे: "सिर 010111010010111010 की तरह एक परिपत्र डेटा स्ट्रीम पढ़ता है ... जहां प्रत्येक 111 में एक सेक्टर की शुरुआत होती है, और फिर ..." मैं तब कर सकता था उत्तर स्वीकार करें।
uzumaki

हार्ड ड्राइव में चुंबकीय मीडिया के भौतिक गुणों के रूप में सार डेटा को एनकोड करना पड़ता है, और परिणाम आसानी से पता करने योग्य होता है; हफ़मैन कोडिंग सार डेटा की एक धारा को (आमतौर पर) अमूर्त डेटा की छोटी धारा (टूटने योग्यता) को मैप करता है। वे ज्यादातर असंबंधित हैं।
ShadSterling

मेरे अद्यतन में कोई उदाहरण नहीं मिला, लेकिन यदि आप RLL लिंक का पालन करते हैं तो यह कुछ है।
ShadSterling

18

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


3
कुछ संदर्भ या लिंक इस अच्छे उत्तर को महान बना देंगे। : D
बिल्ली

1
@cat, मुझे लगता है कि "कंप्यूटर कैसे काम करते हैं" या पीटर नॉर्टन की "इनसाइड द पीसी", अगर उनमें से कोई अभी भी प्रिंट में है ... शायद मेरे बुकशेल्फ़ पर लोगों के बाद से कुछ नए संस्करण।
Psusi

इस सवाल का जवाब नहीं है। सवाल यह है कि ड्राइव कैसे जानता है कि हेडर या सिंक फ़ील्ड कहां से शुरू होती है।
मार्टिन एगरामी

@MartinArgerami - यह प्रश्न का उत्तर देता है क्योंकि यह ओपी की गलत धारणा को सही करता है, और क्षेत्रों की मुख्य अवधारणा का परिचय देता है। ओपी आईएमओ के लिए चुंबकीय डोमेन के पढ़ने / लिखने के स्तर तक नीचे की ओर झुकाव बहुत तीव्र लगता है। आप / वह और अधिक विवरण चाहता है तो देखना superuser.com/questions/427554/...
बुरादा

1
@ user134593 - सिंक बाइट्स हमेशा अंतराल के बाद होते हैं, और रिकॉर्ड के पहले बाइट्स होते हैं। वे केवल रिकॉर्ड की शुरुआत का संकेत देते हैं। इसलिए डिस्क नियंत्रक के पास पेलोड या उपयोगकर्ता डेटा के साथ कभी भी संघर्ष या भ्रम नहीं है। आपको लगता है कि यह एक बिट स्ट्रीम (ओपी की तरह) है, लेकिन यह चुंबकीय मीडिया है, जिसका मतलब है कि आप किसी भी बिंदु पर पढ़ना या लिखना नहीं चाहते हैं।
चूरा

7

Psusi सही है (डिस्क पर डेटा संरचित है , और कंप्यूटर के विभिन्न भाग उस संरचना के विभिन्न भागों का उपयोग करते हैं) लेकिन वास्तव में आपके प्रश्न पर नहीं मिलता है।

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


2
लेकिन कुछ उच्चतर अभी भी हार्ड ड्राइव का हिस्सा है। (जिसे हार्ड ड्राइव के बाहर किसी चीज़ की कमान दी गई है, जिसे कंप्यूटर के बाहर किसी चीज़ की कमान दी गई है, जिसे कुछ मेटाफिज़िकल द्वारा कमांड किया गया है, लेकिन हम उन चीजों में से किसी के बारे में बात नहीं कर रहे हैं)
user253751

0

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


3
यह कुछ ऐसा नहीं है जिसके बारे में मैंने सुना है, क्या आपके पास इसके लिए एक संदर्भ है?
शाद्टरलिंग

हाँ, नहीं .... यह कोई बात नहीं है।
psusi

आप सर्वो / सतह की बात कर रहे हैं। लेकिन यह अप्रचलित तकनीक है जिसे मैंने 14 "डिस्क पैक्स के बाद से नहीं देखा है, जो मूल आईबीएम पीसी-एक्सटी के एसटी -506 एचडीडी से पहले है। विनचेस्टर और आधुनिक डिस्क ड्राइव एक एम्बेडेड इमदादी का उपयोग करते हैं।
चूरा

आह ठीक है, मैंने इसके बारे में बहुत लंबे समय से नहीं सुना है, हालांकि मैंने इसे ब्लैक बॉक्स होने वाले आधुनिक डिस्क में डाल दिया है।
मार्क के कोवान

0

आप जिस उत्तर की तलाश कर रहे हैं उसके दो भाग हैं:

1) एक हार्डवेयर नियंत्रक

2) एक फाइल सिस्टम

जैसा कि आपने कहा, HDD में (SSDs जैसी अन्य तकनीकों के विपरीत) वास्तविक डेटा को राउंड मेटल प्लेट्स के रूप में लिखा जाता है, जो कि संकेंद्रित वृत्ताकार वलयों को एक पैटर्नयुक्त चुंबकीय क्षेत्र धारण करता है। इस डेटा को रखने वाले प्लैटर्स के ऊपर राइट हेड होता है जो डेटा को पढ़ने और लिखने के लिए घूमता है, विनाइल रिकॉर्ड प्लेयर की तरह। इसके ऊपर जाने वाले प्लैटर एक इलेक्ट्रिक मोटर से जुड़े होते हैं जो उनके रोटेशन को नियंत्रित करता है।

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

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

अधिक जानकारी के लिए, इन विकिपीडिया लेखों में निम्नलिखित अनुभाग काफी मददगार हैं:

परिचय और खंड 3.1 "अंतरिक्ष प्रबंधन" यहां देखें: https://en.wikipedia.org/wiki/File_system

खंड 2.1 "चुंबकीय रिकॉर्डिंग" यहां देखें: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.