ठोस राज्य भंडारण के साथ क्या करना चाहिए?


13

यांत्रिक भंडारण के साथ, निम्न स्तर का डिस्क ऑपरेशन seek()हार्ड ड्राइव के हेड्स को एक स्थान पर ले जाने का कारण बनता है ताकि वे डिस्क के दिए गए क्षेत्र से पढ़ने के लिए तैयार हों।

एसडी कार्ड, फ्लैश ड्राइव और एसएसडी जैसे सॉलिड स्टेट स्टोरेज के साथ, हार्डवेयर के मूविंग पार्ट्स नहीं होते हैं, केवल इलेक्ट्रिकल सिग्नल होते हैं।

एक गैर-गैर-वाष्पशील रैम प्रौद्योगिकी को हार्डवेयर का आधार मानते हुए, seek()इस तरह के डिवाइस के लिए वास्तव में हार्डवेयर स्तर पर क्या कार्य करता है?

बस स्पष्ट होने के लिए, मुझे पहले से ही पता है कि निम्नलिखित होता है:

  1. उपयोगकर्तास्पेस प्रोग्राम कॉल seek()सिस्टम कॉल या ओएस-विशिष्ट समकक्ष

  2. कर्नेल सिस्टम कॉल की व्याख्या करता है और एसएटीए नियंत्रक को एक संदेश भेजना चाहता है

  3. SATA नियंत्रक कमांड की व्याख्या करता है और संलग्न डिस्क डिवाइस को बताता है, जो कि ठोस अवस्था है, (या शायद यह पहचानने के लिए पर्याप्त स्मार्ट है कि यह ठोस अवस्था है और यह भी नहीं बताता है ??)

  4. मुझे नहीं पता कि ठोस राज्य डिवाइस क्या करता है ??? "चाहने" की आज्ञा के साथ।

यदि ऐसे विवरण हैं जो ऑपरेटिंग सिस्टम पर निर्भर करेंगे, तो GNU / Linux के अपेक्षाकृत मानक डेस्कटॉप संस्करण को कर्नेल संस्करण 3.2 के साथ मान लें।


2
मुझे लगता है कि यह एक बड़ा वसा एनओपी करता है। मजाक के अलावा, अगर मैं एक एसएसडी ड्राइव था, तो मैं कैश में कुछ "एहतियाती" पढ़ना चाहूंगा, ताकि यह सुनिश्चित हो सके कि चीजें जितनी जल्दी हो सकें। लेकिन जैसा कि यह सिर्फ एक अस्पष्ट अनुमान है, जिसके बारे में मुझे थोड़ा भी अंदाजा नहीं है, इसलिए इसे नमक के दाने के साथ लें ...
पेप्टेरका

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

जवाबों:


4

यदि आप लिनक्स की बात कर रहे हैं, तो अभी भी बाइट्स की आवश्यक संख्या से आगे बढ़ना चाहते हैं। उदाहरण के लिए:

dd if=/dev/zero of=/dev/sdb bs=512 SEEK=2

एक डिस्क की शुरुआत में शून्य 1024 बाइट को कॉपी शुरू होगा, यह कहा जाता है एक छोटे से बात की वजह से, नहीं बात करता है, तो SDB एक एसडी कार्ड या SSD ड्राइव है करता अमूर्त इस की वास्तविक यांत्रिकी एक निचले स्तर पर का ध्यान रखा जाता है।

अपडेट करें

मैं देख रहा हूँ कि तुम अब क्या कह रहे हो। मेरे एसडी कार्ड उदाहरण के बाद, फ्लैश मेमोरी कुछ पृष्ठों का उपयोग करती है , और पृष्ठ एक विशेष आकार में आते हैं। जब कोई खोज आता है, ओएस पढ़ने और लिखने के लिए एक निश्चित पृष्ठ पर जाने के लिए एसडी कार्ड / कार्ड नियंत्रक को कमांड भेजता है ।


मुझे पता है कि यह फ़ाइल में तार्किक रूप से आगे बढ़ता है , लेकिन सार "ब्लॉक" के संदर्भ में फ़ाइल पर तार्किक प्रभाव से हटकर, क्या हार्डवेयर वास्तव में तलाश करने के लिए कुछ अलग करता है? lseek()यदि आवश्यक हो तो आप सिस्टम कॉल को एक विशिष्ट उदाहरण के रूप में देख सकते हैं । मुझे पता है कि यह सिस्टम कॉल न केवल तार्किक मांग करता है, बल्कि एक मैकेनिकल डिस्क के साथ काम करते समय HDD के प्रमुखों को स्थानांतरित करने का कारण बनता है, इसलिए SSD क्या करता है?
१३:१३

@allquixotic मैंने अपना उत्तर अपडेट कर दिया है।
MDMoore313

1
यहां तक ​​कि एक शारीरिक कताई हार्ड ड्राइव पर, ओएस एलबीए एक्स को प्राप्त करने के लिए ड्राइव करने के लिए एक कमांड (एक एससीएसआई कमांड, एटीए / एसएटीए कमांड, या यूएसबी मास स्टोरेज कमांड) भेजता है। मेजबान वास्तव में ड्राइव को स्थानांतरित करने के लिए कहकर समाप्त नहीं करता है। किसी भी स्तर पर, ड्राइव का फर्मवेयर ऐसा करता है। यदि आप चाहते हैं कि एक SSD फर्मवेयर स्टोरेज कमांड्स के जवाब में कुछ करे, तो जैस्मीन ओपनएसएसडी प्रोजेक्ट के कुछ स्पेक्स पर गौर करें यदि आप उन्हें पा सकते हैं, तो उनमें से कुछ बहुत कम स्तर पर चीजों को बताते हैं।
लॉरेंस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.