फ्लैट मेमोरी मॉडल

फ्लैट मेमोरी मॉडल या लीनियर मेमोरी मॉडल एक स्मृति पता िंग प्रतिमान को संदर्भित करता है जिसमें स्मृति प्रोग्राम को एक एकल सन्निहित  पता स्थान  के रूप में दिखाई देती है।  CPU  सीधे (और एड्रेसिंग मोड # सिक्वेंशियल एड्रेसिंग मोड्स) मेमोरी को किसी भी प्रकार के  स्मृति विभाजन  या पेजिंग स्कीम का सहारा लिए बिना सभी उपलब्ध कंप्यूटर मेमोरी लोकेशन को एड्रेस कर सकता है।

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

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

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

अधिकांश प्रोसेसर आर्किटेक्चर एक फ्लैट मेमोरी डिज़ाइन को लागू करते हैं, जिसमें सभी शुरुआती 8 बिट  प्रोसेसर, मोटोरोला 68000 श्रृंखला आदि शामिल हैं। एक अपवाद मूल इंटेल 8086 था, इंटेल का पहला 16-बिट माइक्रोप्रोसेसर, जिसने एक कच्चे खंडित मेमोरी मॉडल को लागू किया जिसने अनुमति दी सभी पतों को 16-बिट से अधिक तक विस्तारित करने की लागत के बिना 64 KiB से अधिक मेमोरी तक पहुंच।

मेमोरी मॉडल
अधिकांश आधुनिक मेमोरी मॉडल तीन श्रेणियों में से एक में आते हैं:

फ्लैट मेमोरी मॉडल

 * प्रोग्रामर, साफ डिजाइन के लिए सरल इंटरफ़ेस
 * एकसमान पहुंच गति के कारण सबसे अधिक लचीलापन (विभाजित मेमोरी पृष्ठ स्विच आमतौर पर अन्य पृष्ठों की लंबी पहुंच के कारण भिन्न विलंबता उत्पन्न करते हैं, या तो बदलते पृष्ठ में अतिरिक्त CPU तर्क, या हार्डवेयर आवश्यकताओं के कारण)
 * सरल नियंत्रक अनुप्रयोगों के लिए न्यूनतम हार्डवेयर और सीपीयू रियल एस्टेट
 * अधिकतम निष्पादन गति, बस सीपीयू या तर्क के कारण कोई विलंबता नहीं है।
 * सामान्य कंप्यूटिंग या मल्टीटास्किंग ऑपरेटिंग सिस्टम के लिए उपयुक्त नहीं है जब तक कि बढ़ाया न जाए अतिरिक्त स्मृति प्रबंधन हार्डवेयर/सॉफ्टवेयर के साथ; लेकिन आधुनिक जटिल निर्देश सेट कंप्यूटर प्रोसेसर में लगभग हमेशा ऐसा ही होता है, जो एक फ्लैट मेमोरी मॉडल पर उन्नत मेमोरी प्रबंधन और सुरक्षा तकनीक को लागू करता है। लिनक्स उदा. फ्लैट मेमोरी मॉडल का उपयोग करता है, x86 मेमोरी सेगमेंटेशन#प्रैक्टिस देखें।

पृष्ठांकित स्मृति मॉडल

 * मल्टीटास्किंग, सामान्य ऑपरेटिंग सिस्टम डिज़ाइन, संसाधन सुरक्षा और आवंटन के लिए उपयुक्त
 * वर्चुअल मेमोरी कार्यान्वयन के लिए उपयुक्त
 * अधिक सीपीयू रियल एस्टेट, कुछ कम गति
 * कार्यक्रम के लिए और अधिक जटिल
 * कठोर पृष्ठ सीमाएँ, हमेशा सबसे अधिक स्मृति कुशल नहीं
 * Pentium Pro में भौतिक पता विस्तार  (PAE) और बाद में x86 CPU का उपयोग करते समय इस मेमोरी मॉडल की आवश्यकता होती है ताकि 4GB से अधिक भौतिक मेमोरी को संबोधित करने के लिए 36-बिट भौतिक पतों का समर्थन किया जा सके।

x86 खंडित मेमोरी मॉडल

 * पेजेड मेमोरी के समान, लेकिन पेजिंग दो अपेक्षाकृत स्थानांतरित रजिस्टरों के निहित जोड़ से प्राप्त की जाती है: खंड: ऑफसेट
 * पृष्ठांकित स्मृति मॉडल की तुलना में परिवर्तनीय पृष्ठ सीमाएं, अधिक कुशल और लचीली
 * प्रोग्रामर के दृष्टिकोण से काफी जटिल और अजीब
 * कंपाइलर्स के लिए और अधिक कठिन
 * पृष्ठ ओवरलैप / खराब संसाधन सुरक्षा और अलगाव कर सकते हैं
 * मैनी टू वन एड्रेस ट्रांसलेशन पत्राचार: कई खंड: ऑफसेट संयोजन एक ही भौतिक पते पर हल होते हैं
 * प्रोग्रामिंग त्रुटियों की अधिक संभावना
 * मूल इंटेल 8086, 8088, 80186, 80286 में लागू किया गया, और 80386 और बाद की सभी x86 मशीनों द्वारा समर्थित आज के पेंटियम और कोर 2 प्रोसेसर के माध्यम से। यह मेमोरी मॉडल तब से x86 मशीनों में बना हुआ है, जो अब मल्टी-मोड ऑपरेशन प्रदान करते हैं और शायद ही कभी संगत सेगमेंट मोड में काम करते हैं। विवरण के लिए x86 स्मृति विभाजन देखें।

x86 आर्किटेक्चर के भीतर, वास्तविक मोड (या अनुकरण) में काम करते समय, भौतिक पते की गणना इस प्रकार की जाती है:
 * पता = 16 × खंड + ऑफसेट

(यानी, 16-बिट सेगमेंट रजिस्टर को 4 बिट्स से स्थानांतरित कर दिया जाता है और 16-बिट ऑफ़सेट में जोड़ा जाता है, जिसके परिणामस्वरूप 20-बिट पता होता है।)

यह भी देखें

 * पता स्थान
 * मेमोरी मॉडल (बहुविकल्पी)