यदि स्मृति बाइट पते योग्य है, तो यह नहीं होना चाहिए
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
सामान्य Google खोज 8GB या 16GB अधिकतम कहती है।
यह कैसे सच है? इसके अलावा, यह ऑपरेटिंग सिस्टम पर कैसे निर्भर करता है?
यदि स्मृति बाइट पते योग्य है, तो यह नहीं होना चाहिए
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
सामान्य Google खोज 8GB या 16GB अधिकतम कहती है।
यह कैसे सच है? इसके अलावा, यह ऑपरेटिंग सिस्टम पर कैसे निर्भर करता है?
जवाबों:
कई इंटरलेविंग कारक हैं।
सबसे पहले, आप कभी नहीं, कभी भी एक सिस्टम को इकट्ठा करने में सक्षम होंगे जिसमें भौतिक रैम के 2 64 बाइट्स (16 एक्सिबाइट) हैं।
दूसरा, सिर्फ इसलिए कि एक आर्किटेक्चर 64-बिट पॉइंटर्स का उपयोग करता है, इसका मतलब यह नहीं है कि उन पॉइंटर्स के सभी बिट्स वास्तव में उपयोग किए जाते हैं। विशेष रूप से, वर्तमान x86-64 CPU (उर्फ AMD64 और इंटेल के 64-बिट चिप्स) वास्तव में 48-बिट एड्रेस लाइन्स (AMD64) और 42-बिट एड्रेस लाइन्स (Intel) का उपयोग करते हैं (देखें http://en.wikipedia.org/wiki / X86_64 # Virtual_address_space_details ), सैद्धांतिक रूप से भौतिक रैम के 256 टेराबाइट्स की अनुमति देता है।
दूसरा, मदरबोर्ड की अपनी सीमा होती है कि वे कितना रैम का समर्थन कर सकते हैं, दोनों शारीरिक और तार्किक रूप से। शारीरिक रूप से, केवल रैम के लिए बहुत सारे स्लॉट उपलब्ध हैं। "तार्किक" सीमा के लिए, मुझे पूरी तरह से समझ में नहीं आता है कि यह अभी भी x86-64 के लिए मामला क्यों है (मेमोरी नियंत्रक लंबे समय से सीपीयू में ही माइग्रेट किया गया है), लेकिन वहां यह है। संभवतः कोने डिजाइन और विनिर्माण में कुछ रुपये बचाने के लिए पता लाइनों पर काटे जा रहे हैं।
तीसरा, एक ऑपरेटिंग सिस्टम में आंतरिक सीमाएं हो सकती हैं जैसे कि यह कितनी कुशलता से रैम का समर्थन कर सकता है। भाग में, यह वास्तव में स्मृति के लिए उपयोग पर नज़र रखने के लिए बड़े डेटा संरचनाओं की आवश्यकता को रोकने के लिए है जो वास्तव में नहीं है। पिछली बार मैंने जाँच की, लिनक्स x86-64 पर प्रति प्रोसेस वर्चुअल एड्रेस स्पेस की 128TB अनुमति देता है, और सैद्धांतिक रूप से 64TB भौतिक रैम का समर्थन कर सकता है।
चौथा, कुछ ऑपरेटिंग सिस्टम (उदाहरण के लिए विंडोज) कृत्रिम रूप से यह सीमित कर देगा कि उपयोगकर्ताओं को अधिक रैम में अपग्रेड करने के लिए कितना रैम का इस्तेमाल एक टैक्टिक के रूप में किया जा सकता है यदि वे अधिक रैम चाहते हैं (विंडोज 7 स्टार्टर 2GB तक सीमित है, होम बेसिक से 8 तक, होम प्रीमियम 16 से, और प्रोफेशनल और ऊपर 192GB हैं, और विंडोज सर्वर रिलीज की सीमा अधिक है)।
यदि आप MS Windows का उपयोग करते हैं, तो अधिकतम मेमोरी ऑपरेटिंग सिस्टम द्वारा विवश है।
विंडोज 7 के लिए, अधिकतम हैं:
विंडोज सर्वर 2008 लाइन के शीर्ष के लिए प्रवेश स्तर के लिए 8GB से 2TB तक होता है।
पूर्ण-ईश सूची के लिए http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx देखें ।
ये सीमाएँ मुख्यतः विपणन कारणों से हैं। सस्ता संस्करणों को प्रतिबंधित करके वे उच्च-अंत संस्करणों (तुलनात्मक रूप से) को अधिक आकर्षक बनाते हैं।
मुझे लगता है कि हाल ही में लिनक्स लगभग 32TB RAM के साथ काम करता है, हालांकि सभी हार्डवेयर इसका समर्थन नहीं कर सकते हैं।
64-बिट मशीन 2 64 पता करने योग्य इकाइयों (पिछले कुछ दशकों में डिज़ाइन किए गए आर्किटेक्चर में, पता करने योग्य इकाइयां हमेशा के लिए बाइट्स, उर्फ ओकटेट्स) को संबोधित करने में सक्षम होनी चाहिए । यदि आप "गीगाबाइट" को 2 30 पते योग्य इकाइयों के रूप में परिभाषित करते हैं , तो हाँ, 2 34 गीगाबाइट उसी गणना को व्यक्त करने का एक और तरीका होगा।
Google खोज ने उन हास्यास्पद छोटे परिणामों का क्या उत्पादन किया? हो सकता है कि आपके द्वारा पाया गया पृष्ठ उस रैम की मात्रा के बारे में बात कर रहा हो जिसे आप किसी निश्चित मॉडल के सस्ते सस्ते बक्से में खरीद सकते हैं - आप निश्चित रूप से बहुत अधिक रैम (सभी पते योग्य), यहां तक कि उन बॉक्सों में भी हो सकते हैं जो बहुत महंगा होने से दूर हैं। ।
ऑपरेटिंग सिस्टम सबसे अधिक निश्चित रूप से पता करने योग्य मेमोरी की मात्रा को प्रतिबंधित कर सकते हैं (उदाहरण के लिए, वे पृष्ठ तालिकाओं के आकार को सीमित करके ऐसा कर सकते हैं, शायद कुछ कॉन्फ़िगर करने योग्य अधिकतम जो ओएस को पुन: कॉन्फ़िगर या अन्यथा पुन: कॉन्फ़िगर करके निर्धारित किया जा सकता है - बहुत कठिन है) ओएस के कुछ विशिष्ट समूह पर ध्यान केंद्रित किए बिना अधिक विशिष्ट हो )।
आप जितनी चाहें उतनी रैम रख सकते हैं, लेकिन यह सब ऑपरेटिंग सिस्टम और आपके द्वारा चलाए जा रहे एप्लिकेशन पर निर्भर करता है - जैसा कि किसी और ने कहा है।
यदि आप एक भूखा सीपीयू गहन अनुप्रयोग चला रहे हैं जो आपकी हार्ड डिस्क की तरह अन्य हार्डवेयर पर भी गहन है तो आप पूरी तरह से अलग मशीन में एक दूसरे सीपीयू पर गंभीरता से विचार करेंगे। उदाहरण के लिए, अलग-अलग मशीनों पर डेटाबेस एप्लिकेशन और ईमेल सर्वर चलाना।
इससे कोई फर्क नहीं पड़ता कि आपके पास कितनी मेमोरी है - आज के बाजार में पूरा सिस्टम रुक जाएगा। सिंगल सीपीयू केवल मल्टीटास्किंग को आपके द्वारा अपेक्षित तरीके से हैंडल नहीं कर सकता है।
मेमोरी के भार वाली एकल मशीन के लिए यह बेहतर है लेकिन यह शानदार नहीं है यदि आपके पास एक ही सिस्टम पर कई एप्लिकेशन चल रहे हैं - भले ही इंस्टॉल की गई मेमोरी की मात्रा के साथ। यही कारण है कि बड़ी कंपनियां न केवल 64 बिट आर्किटेक्चर का उपयोग अधिक मेमोरी को संबोधित करने के लिए करती हैं, बल्कि वे दो या अधिक सर्वरों के साथ पूरे लॉट को भी लोड करती हैं।
यदि आप प्रदर्शन के बारे में वास्तव में गंभीर हैं तो 64 बिट जरूर जाएं, लेकिन एक दूसरे सर्वर के साथ लोड संतुलन पर भी विचार करें।
मैं उस सड़क से नीचे आ गया हूं - एक मशीन को अधिकतम रैम के साथ कॉन्फ़िगर करना। फिर भी कई एप्लिकेशन चलाने पर यह अभी भी कुत्ते की तरह चलता है। ऐसा इसलिए क्योंकि सीपीयू खुद इसे संभाल नहीं सकता है।
मेरी सलाह है कि अपने रुपये को मेमोरी पर सेव करें और दूसरा सर्वर खरीदें और फिर दोनों को संतुलित करें। यह बहुत सरल प्लस है - एक बार जब आप इसकी चपेट में आ जाते हैं - जब आपको अधिक प्रसंस्करण शक्ति और गति की आवश्यकता होती है, तो इसका विस्तार करना आसान होता है।
इसके अलावा, 64 बिट आर्किटेक्चर मशीन 32 बिट सॉफ़्टवेयर के साथ सामना कर सकती है, लेकिन 32 बिट मशीन के साथ आप केवल 32 बिट या उससे कम अनुप्रयोगों तक ही सीमित हैं - ऑपरेटिंग सिस्टम सहित।
चूँकि पूरा बाजार हार्डवेयर और सॉफ्टवेयर दोनों के संदर्भ में 64 बिट पर जा रहा है, इसलिए मैं लॉन्ग टर्म के लिए 64 बिट जाने की सलाह दूंगा, लेकिन मेमोरी के बकेट लोड के साथ एक ही मशीन पर सभी को स्क्वीज़ करने के विचार को भूल जाएँ क्योंकि आपको निराशा होगी।
यदि आप अनिश्चित हैं कि "लोड संतुलन" क्या है तो यह Google है।
मुझे लगता है कि यह एक एक्साबाइट "ईबी" से अधिक ले सकता है।
इस 32-बिट प्रोसेसर को देखें 2 32 बी = 4 जीबी ले सकते हैं , लेकिन ज्यादातर इसे 3 जीबी लेते हैं "क्योंकि वे पते को संशोधित करने के लिए 1 जीबी हैं"
इसका मतलब है कि 64-बिट प्रोसेसर 2 64 बी = 16 ईबी ले सकता है , लेकिन मैं इसका पता नहीं लगा सकता कि उल्टे इस्तेमाल के लिए लॉक कैसे किया जाता है। इसलिए हम कह सकते हैं कि 64-बिट प्रोसेसर 1 ईबी से अधिक लेता है। और यह विनिर्देश इस बात पर निर्भर नहीं करता है कि पीसी किस ओएस का उपयोग करता है या उसका मॉडल क्या है।
एक उदाहरण के रूप में इंटेल या एएमडी सीपीयू लेना, भौतिक मेमोरी और वर्चुअल मेमोरी दोनों की कई सीमाएं हैं। अन्य लोगों ने हार्डवेयर पिन-आउट और मदरबोर्ड सीमाओं के बारे में बात की है, लेकिन आंतरिक सीमाएं भी हैं।
एमएमयू में एक टर्मिनल पेज टेबल प्रविष्टि में 52 महत्वपूर्ण बिट्स भौतिक पते के होते हैं और सैद्धांतिक रूप से 4096 टीबी तक की भौतिक रैम को मैप कर सकते हैं।
MMU 4-स्तरीय पृष्ठ तालिका लागू करता है जिसके शीर्ष स्तर में 512 × 512 GB प्रविष्टियाँ होती हैं। तो वर्चुअल मेमोरी 256 टीबी तक सीमित है।
जैसा कि मैं जानता हूं, सभी 64-बिट ऑपरेटिंग सिस्टम एक डीएमएपी (एक डायरेक्ट-मैप) लागू करते हैं, जो सुपर-सुविधाजनक है। हालाँकि, क्योंकि वर्चुअल मेमोरी 256 टीबी तक सीमित है, डीएमएपी का आकार भी सीमित है। आमतौर पर 128 टीबी उपयोगकर्ता मोड के लिए आरक्षित है, और कर्नेल के लिए 128 टीबी। कर्नेल के लिए 128 टीबी में से आधे तक डीएमएपी के लिए आरक्षित हो सकते हैं। DMAP की उपयोगिता के कारण, ऑपरेटिंग सिस्टम आमतौर पर भौतिक मेमोरी को सीमित करेगा जो DMAP क्या संभाल सकता है।
तो इंटेल / एएमडी के लिए सबसे (सभी?) 64-बिट ऑपरेटिंग सिस्टम समर्थित भौतिक मेमोरी लगभग 64 टीबी तक सीमित है, सामान्य कर्नेल वर्चुअल मेमोरी के लिए 64 टीबी और उपयोगकर्ता वर्चुअल मेमोरी के लिए 128 टीबी।
-
सीपीयू के लिए आंतरिक, सीपीयू कैश में उनके द्वारा संग्रहीत भौतिक पता बिट्स की संख्या पर एक सीमा भी होती है, क्योंकि प्रत्येक अतिरिक्त पता बिट कैश टैग में अधिक ट्रांजिस्टर खाता है। डीआरएएम नियंत्रक पिन सीमाएं आवश्यक रूप से अंतिम शब्द नहीं हैं, क्योंकि मेमोरी को डीएमआई लिंक के माध्यम से भी संबोधित किया जा सकता है।
विभिन्न CPU आर्किटेक्चर (जैसे, ARM, PowerPC, आदि) की अलग-अलग सीमाएँ होंगी।