क्या डीआईएमएम की भौतिक पता सीमा को खोजना संभव है?


17

मैं ध्यान देता हूं कि एसएमबीओआई टाइप 20 यहां मदद करेगा, लेकिन यह संस्करण २.५ ( २००६-०९ -५० ) पीपी २५, एल p ९ ६ और पीपी १३१ के रूप में वैकल्पिक है , जबकि टाइप १६, १ios और १ ९ अनिवार्य हैं, लेकिन काफी नहीं हैं। मदद।

भौतिक मेमोरी एरे (टाइप 16)

पूरी प्रणाली के लिए इन संरचनाओं में से एक है, यह बताते हुए कि इस बोर्ड पर क्या संभव है।

Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: Multi-bit ECC
    Maximum Capacity: 768 GB
    Error Information Handle: Not Provided
    Number Of Devices: 24

मेमोरी डिवाइस (टाइप 17)

प्रत्येक डिम्म के प्रति एक रिकॉर्ड होता है, जो आपको बोर्ड पर स्थापित भौतिक डिम्पल बताता है।

Handle 0x1100, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x1000
    Error Information Handle: Not Provided
    Total Width: 72 bits
    Data Width: 64 bits
    Size: 2048 MB
    Form Factor: DIMM
    Set: 1
    Locator: DIMM_A1 
    Bank Locator: Not Specified
    Type: DDR3
    Type Detail: Synchronous Registered (Buffered)
    Speed: 1600 MHz
    Manufacturer: XXXX
    Serial Number: XXXX
    Asset Tag: XXXX
    Part Number: XXXX 
    Rank: 1
    Configured Clock Speed: 1333 MHz

मेमोरी एरे मैप्ड एड्रेस (टाइप 19)

इनमें से कई रिकॉर्ड हो सकते हैं, और प्रत्येक रिकॉर्ड भौतिक पतों की एक श्रृंखला को सूचीबद्ध करता है।

यहां दो 2GB स्टिक के साथ आउटपुट है:

Handle 0x1300, DMI type 19, 31 bytes
Memory Array Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000CFFFFFFF
    Range Size: 3328 MB
    Physical Array Handle: 0x1000
    Partition Width: 2

Handle 0x1301, DMI type 19, 31 bytes
Memory Array Mapped Address
    Starting Address: 0x00100000000
    Ending Address: 0x0012FFFFFFF
    Range Size: 768 MB
    Physical Array Handle: 0x1000
    Partition Width: 2

और यहां 4 स्टिक्स के साथ आउटपुट है; 2 * 2GB और 2 * 4GB:

Handle 0x1300, DMI type 19, 31 bytes
Memory Array Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000CFFFFFFF
    Range Size: 3328 MB
    Physical Array Handle: 0x1000
    Partition Width: 2

Handle 0x1301, DMI type 19, 31 bytes
Memory Array Mapped Address
    Starting Address: 0x00100000000
    Ending Address: 0x0032FFFFFFF
    Range Size: 8960 MB
    Physical Array Handle: 0x1000
    Partition Width: 2

ध्यान दें कि ऊपर दिए गए पहले नमूना आउटपुट में दो 2GB DIMM थे, लेकिन 3.3GB और 0.7GB के दो रेंज थे। 4 डिम के साथ, सिस्टम मेमोरी ऐरे मैप्ड एड्रेस रीजन को भी दो हिस्सों में समेट लेगा, क्योंकि यह सिर्फ e820 मैप यानि वैध मेमोरी फिजिकल एड्रेस रेंज के समान है।

1 से कई प्रकार के 20 रिकॉर्ड ठीक एक प्रकार के 17 मेमोरी डिवाइस से जुड़े होते हैं, जिसका अर्थ है कि पूरी भौतिक सीमा ज्ञात की जा सकती है:

उदाहरण

$ sudo dmidecode -t 20
# dmidecode 2.12
SMBIOS 2.6 present.

Handle 0x002F, DMI type 20, 19 bytes
Memory Device Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000FFFFFFFF
    Range Size: 4 GB
    Physical Device Handle: 0x002B
    Memory Array Mapped Address Handle: 0x002E
    Partition Row Position: 1

Handle 0x0030, DMI type 20, 19 bytes
Memory Device Mapped Address
    Starting Address: 0x00100000000
    Ending Address: 0x001FFFFFFFF
    Range Size: 4 GB
    Physical Device Handle: 0x002C
    Memory Array Mapped Address Handle: 0x002E
    Partition Row Position: 1

EDAC के लिए DIMM के पते से जाना संभव है - त्रुटि का पता लगाने और सुधार के उद्देश्य, लेकिन DIMM से संपूर्ण सीमा तक नहीं।

Mcelog के सोर्स कोड को देखते हुए , यह अपने डिकोडिंग के लिए टाइप 20 का भी उपयोग कर रहा है।


क्या आप अपने प्रश्न को आगे समझा सकते हैं? मैं वास्तव में आप क्या पूछ रहे हैं का पालन नहीं करते। अधिक विवरण या उदाहरण एक बड़ा धन होगा। 2 उपकरण जो मैं शुरू करूंगा / चाहूंगा dmidecodeऔर lshw, लेकिन मुझे लगता है कि आप ये प्रदान करने वाले से अधिक की तलाश में हैं?
स्लम

@ एसएलएम: कोड आधार के रूप में lshwउपयोग करता है dmidecodeऔर dmidecode -t 20वांछित जानकारी देता है। लेकिन, जैसा कि उल्लेख किया गया है, SMBIOS के संस्करण 2.5 द्वारा इस जानकारी को धारण करने वाली संरचना "मेमोरी डिवाइस मैप्ड एड्रेस" उर्फ टाइप 20 या बैंक स्थान वैकल्पिक है - इस प्रकार क्यू कि यदि समान जानकारी प्राप्त करने का एक और तरीका है। - के बीच लिंक type 17की लोकेटर मूल्य और भौतिक पता सीमा (के रूप में वैकल्पिक द्वारा प्रदान की Type 20)।
रनियम

@Sukminder - धन्यवाद। यह जानकारी शायद सिर्फ क्यू में शामिल की जानी चाहिए। चूंकि आपके पास इस पर एक हैंडल है जो आप चाहेंगे?
स्लम

@Sukminder - मैंने कुछ सैंपल dmidecode -t 20आउटपुट जोड़े हैं , क्या आप टाइप कर सकते हैं 17 का लोकेटर मान बनाम भौतिक योजक, टाइप 20?
स्लम

मैं मानूंगा कि आप 3-लेटर वाली सरकारी एजेंसी के लिए काम नहीं करते हैं या उनके पास फंडिंग का स्तर नहीं है। और, यदि आप वहां हैं, तो आप यहां नहीं पूछ रहे हैं। एक आधुनिक पीसी / सर्वर / मैक के लिए, भौतिक मेमोरी रेंज को अक्सर वर्चुअल रेंज में मैप किया जाता है, फिर ओएस द्वारा फिर से मैप किया जा सकता है, आप इसका पता लगाने में सक्षम नहीं हो सकते हैं। फिर भी, यह DOS दिनों के 640k + विस्तारित मेमोरी में मैप कर सकता है। 32-बिट ओएस का उपयोग करने की संभावना आपको 64-बिट ओएस की तुलना में एक अलग जवाब देगी। आपका अंतिम लक्ष्य क्या है?
माइक

जवाबों:


1

जब आपके पास कई DIMMS होते हैं, तो BIOS उन्हें कुछ इंटरलेवे में कॉन्फ़िगर कर सकता है। तो आपके पास एक 2G DIMM हो सकता है भौतिक 0G-> 4G, बाइट्स 0-4, 8-15 लंघन। (यानी कम -64 बिट्स) अन्य 2 जी डीआईएमएम भौतिक 0 जी-> 4 जी, बाइट्स 8-15, 4-7 को लंघन। (हाई -64 बिट्स)। ध्यान दें कि मुझे लगता है कि इंटरलेव वास्तव में इससे बड़ा है, क्योंकि मुझे लगता है कि अगर आपके पास QDR मेमोरी है, तो सिस्टम 1 पता, 8x 64-बिट डेटा चक्र कर सकता है, इसलिए 64-बाइट की इकाइयों द्वारा इंटरलाकिंग करना बेहतर होगा।

0.7G और 3.3G शारीरिक व्यवस्था जो आप देखते हैं, पीसीआई उपकरणों, वीजीए बफ़र्स, क्लासिक <1M 8086 बकवास, आदि के लिए कुछ कम 4 जी को खुला रखने की आवश्यकता है। यह उत्तर पुल द्वारा किया जाता है। तो आपके पास एक नक्शा है जैसे: 0-> 640K, 1M-> 3.3G, BIOS के लिए 0.7G, PCI, आदि 4G तक। और फिर राम के लिए 4 जी-> 4.7 जी।


0

ब्रूट फोर्स का समाधान लगता है

  1. वर्तमान कॉन्फ़िगरेशन की स्मृति श्रेणी लॉग करें
  2. नीचे बिजली, प्रश्न में DIMM और इसके ऊपर के सभी DIMM को हटा दें
  3. रिबूट, नए कॉन्फ़िगरेशन की समीक्षा करें।

2
यकीन नहीं होता है कि मदद करता है ... यानी यदि आपके पास 6 2GB DIMM था, और एक जोड़ी को हटा दें, तो आपकी शीर्ष सीमा सिर्फ 4GB तक सिकुड़ने की संभावना है, लेकिन यह आपको यह नहीं बताता कि वे पिछले मामले में कहां थे, लेकिन मैं परीक्षण करूंगा यह और अद्यतन।
अलुन

".. और इसके ऊपर के सभी DIMM", उदाहरण के लिए, यदि DIMM प्रश्न 2 स्लॉट में है, तो DIMM को स्लॉट 3 में भी हटा दें ... n
K7AAY

0

आप किस OS पर चल रहे हैं? यदि लिनक्स इस कमांड को कैसे समाप्त करता है?

grep -i 'System RAM' /proc/iomem    

पहला कोलंबो भौतिक पता है;

संदर्भ: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Reference_Guide/s2-proc-iomem.html https://supersher.com/questions/480451/what-kind-of मेमोरी-पतों-हैं-लोगों-दिखाया-दर-proc-ioports और proc-iomem


-1

सब कुछ आजकल आभासी है।

हार्डवेयर में MMU नाम की कोई चीज होती है जो पहले से ही OS के लिए पतों का वास्तविक भौतिक पतों में अनुवाद करती है। यह DIMM के बीच लोड वितरित कर सकता है और पता स्थान में हार्डवेयर के अन्य भागों को मैप कर सकता है। ओएस स्तर पर भौतिक पता स्थान कहा जाता है, पहले से ही टीएलबी अनुवादित दृश्य के माध्यम से है ।

/programming/36639607/how-exactly-do-kernel-virtual-addresses-get-translated-to-physical-ram एक अच्छा स्पष्टीकरण है।


1
उन्होंने कहा कि वह भौतिक पता सीमा चाहते हैं।
dirkt

1
इंटेल ने 80286 में एक MMU जोड़ा और यह i386 पर पूरी तरह कार्यात्मक था ... जो कि 30+ साल पहले था ... "आजकल सब कुछ आभासी है" के लिए बहुत कुछ है :) स्मृति बहुत अधिक हमेशा वर्चुअलाइज्ड हुई है।
एरिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.