Geçenlerde bilgisayarımın RAM'ini 4 GB'a yükselttim. 32 bit Windows yüklememde yalnızca 3574 MB bellek gösteriliyor. Windows'un tam miktarda RAM kullanmasını nasıl sağlayabilirim?
Geçenlerde bilgisayarımın RAM'ini 4 GB'a yükselttim. 32 bit Windows yüklememde yalnızca 3574 MB bellek gösteriliyor. Windows'un tam miktarda RAM kullanmasını nasıl sağlayabilirim?
Yanıtlar:
Yapamazsın:
Bkz Dude, RAM Benim 4 Gigabayt nerede?
32 bit adres aralığına bellek ve aygıt sığdırmak istiyorsanız: Kullanılabilir 4 GB adres alanının tümü belleğe verilemez.
Peki dışarı çıkıp PC'niz için 4GB'lık bir bellek satın alırsanız ne olur?
Hafıza haritanızda GÇ için bir delik var. (Şimdi toplam adres alanının yalnızca% 25’i, ancak hala büyük bir delik.) Bu nedenle hafızanızın alt 3GB’ı kullanılabilir olacak, ancak bu son 1GB’de bir sorun var.
Tek pratik çözüm 64 bit işletim sistemi kurmaktır. Windows Vista ve sonraki sürümlerinde, 32 bit ve 64 bit lisans anahtarları değiştirilebilir. İşletim sisteminizin 64 bit sürümü için Windows yükleme medyasını alabilirseniz, orijinal lisans anahtarınızı kullanarak yeniden yükleyebilirsiniz.
İlk olarak, Windows XP (32bit) yalnızca 4 GB'ı destekler. Bu sadece Windows XP için geçerli değildir. Bunun yerine, 32bit masaüstü Windows için geçerlidir - PAE'li 32bit Linux sistemleri ve birçok 32bit Windows Server sürümü, bağlantılı makale başına 4GB'tan fazla desteği destekler. 32 bit Windows XP kullanıyorsanız, 4 GB’in üzerinde hiçbir zaman görmezsiniz. Ancak, sisteminizin gerçekte kurulu olandan daha az kullanılabilir koç göstermesi için daha ayrıntılı bir neden buldum.
Gönderen 3 GB-not-4GB RAM problemi (Microsoft MSDN blog):
Uzun zaman önce verilen bir mimari karar nedeniyle, 4GB'lık fiziksel RAM takılıysa, Windows yalnızca 4GB'lık RAM'in bir kısmını rapor edebilir (kurulu aygıtlara bağlı olarak, anakartın yonga setine bağlı olarak ~ 2.75GB ile 3.5GB arasında değişebilir) BIOS).
Bu davranış "bellek eşlenmiş G / Ç rezervasyonları" nedeniyle oluşur. Bu çekinceler fiziksel adres alanını kaplar ve bu fiziksel adresleri çalışma belleği için kullanılamayacak şekilde gizler. Bu, makinede çalışan işletim sisteminden bağımsızdır.
4GB'ın altındaki önemli adres alanı (32 bit ile erişilebilen en yüksek adres) sistem donanımı tarafından kullanılmak üzere ayrılmıştır:
- BIOS - ACPI ve eski video desteği dahil
- Köprü vb. İçeren PCI veri yolu
- PCI Express desteği, grafik kartına takılan belleğe bağlı olarak en az 256 MB, en fazla 768 MB ayırır
Bunun anlamı, tipik bir sistemin, işletim sisteminin erişemediği donanım kullanımı için ayrılmış 4GB'ın altında ~ 256MB ile 1GB'lık adres alanı arasında görülebilir. Intel yonga seti özellikleri, hangi adres aralıklarının varsayılan olarak rezerve edildiğini açıklamakta oldukça iyidir ve bazı durumlarda 1.5 GB'nin her zaman rezerve edildiğini ve dolayısıyla Windows'a erişilemeyeceğini belirtmektedir.
Kaynağa bakarsanız daha fazla bilgi var. Ancak, bu talimatları izlerseniz, kurulu olan 8 GB’ın tamamından yararlanabilirsiniz .
Kişisel deneyimlerden bahsetmişken, bu yeni bir problem değil. Birkaç yıl önce, Vista ilk piyasaya sürüldüğünde 4 GB 32 bit Windows Vista sistemi kurduğumda bu aynı sorunu yaşadım. Aynı konuyla ilgili çevrimiçi olarak çok sayıda forum mesajı vardı.
Ayrıca bkz. Microsoft KB 929605 - Windows Vista'daki Sistem Bilgileri iletişim kutusunda bildirilen sistem belleği, 4 GB RAM yüklenmişse beklediğinizden daha az .
32Bit Windows XP kullanıyorsanız, mümkün değildir. Ekstra RAM’i kullanmak için yeterli Adres Alanı olmadığından
En iyi çözüm, 4+ GB RAM'i desteklediği için 64-bit Windows sürümüne yükseltmektir.
2^32
4 GiB sığacak kadar "adres alanı" yeterlidir. Adres alanı ve fiziksel hafızada hata yapıyorsunuz. Modern Windows sürümlerindeki her işlem , sanal adres alanının UM / KM bölümlemesi nedeniyle normalde yalnızca 2 GiB kullanılabilir olmasına rağmen, tam 4 GiB adres alanını görür .
Diğerlerinin dediği gibi, mümkün değil.
Açıklama:
Her hafızanın bir adresi vardır. İşletim sistemi adresin uzunluğunu belirler. Daha eski işletim sistemlerinde adres uzunluğu 32 bittir, yalnızca 2 ^ 32 (4 294 967 296) adrese izin verir. Şimdi, bu sayıya bakıldığında, işletim sisteminizin 4 GB'ı desteklemesi gerektiği görünüyor, ancak dahili belleğe sahip tüm diğer donanımlar (en önemlisi, video kartınızdaki video koçanı) da bu adres alanına eşlenir.
1.200.000 altı haneli telefon numarasını dağıtmaya çalışıyorsunuz.
Eski anakart sadece 4Gb fiziksel RAM destekliyordu, modern olanlar çok daha fazlasını destekliyor. Intel P4 CPU her zaman 4 Gb'den fazla adres alabilir (Fiziksel Adres Uzantısı veya PAE adlı bir şey kullanarak)
Microstoft, İşletim Sistemlerinin tüm 32bit sürümlerinin 'müşteri' sürümlerinde 4Gb'den fazla fiziksel adres alanını desteklememeye 'pazarlama kararı verdi'; bu, hepsini w2k'dan 32bit Windows 8'e (MS KB'yi ziyaret ediyorsanız) sayfalar 32bit Server sürümlerinin çok daha fazlasını destekleyebileceğini unutmayın - en fazla 128Gb 32bit 'Enterprise Edition' sürümüne inanıyorum) - bu yüzden aynı donanımdaki 'uygun' 32bit OS'lerin (Linux vb.) her zaman TÜM erişim sağlayabildiğini fiziksel RAM.
(yan not - 32bit Win7 kullanıcıları bu 'aptal' limitten o kadar bıkmışlardı ki, çekirdeği tam fiziksel RAM'e yükselmelerine izin vermek için Çekirdeği 'hacklediler'. )
Windows XP 32bit, sürücü kullanımı için lo 4Gb adres alanının bir kısmını 'ayırır'. 4 Gb'nin ötesinde (PAE kullanarak) fiziksel RAM'i 'adresleyememenizin' bir nedeni yoktur, ancak Windows XP Pro zamanında birçok OLDER SÜRÜCÜ bunu yapamadı ve 'BSOD' hatası alıyorsunuz (modern sürücüler PAE kullanıyor) Doğru ve TEORİDE, bir 2 Gb Grafik kartını (2 gb 'hi' boşluğunda olacak, yani 4 Gb üstünde olacak) desteklemek için toplamda 32Mb'dan fazla 'lo' boşluk sayfasına (bir 'pencere' olarak) ihtiyaç duymalarının bir nedeni yoktur. işaret)
XP SP2'de, MS, BSOD'leri ortadan kaldırmak amacıyla sürücüler için 'ayrılmış' adres alanını neredeyse üç katına çıkardı ve o zamandan beri de oldu (MS, sürücüleri 'hata ayıklamak istemiyor == size 64bit'i satmak istiyorlar' İşletim sistemi yerine). ACTUAL donanımının bu 'ayrılmış' alan üzerinde neredeyse sıfır etkisi var.
Öyleyse, 4Gb veya daha fazla fiziksel RAM’iniz varsa, en fazla XP Pro sp2 + görülecektir. 3.25Gb .. geri kalanına çeşitli RAM Disk Sürücülerini kullanarak erişebilirsiniz CAN (elbette MS değil) = XP Pro'da 'Görünmez Adres alanı' veya 'yüksek 4 gb alan' kullanır). 'eksik'
/ 3G anahtarının 32 bit uygulamaların 32 bit işletim sisteminde 3Gb'ye kadar erişmesine izin verebileceğini unutmayın (.exe başlıklarında LargeAddressAware bayrağı varsa - bu durumda 64bit işletim sisteminde 4 GB'a kadar erişebiliyorlarsa). XP'de işletim sisteminin RAM'den sıkılmasını 'durdurmak için de / USERVA belirtmeniz gerekir :-)
4GB'ın tamamını kullanmak istiyorsanız, tek seçenek 64bit işletim sistemine yükseltme yapmaktır:
Normal Windows XP sadece 32bit ve bu da belleği 3.5 gb ile sınırlıyor. Bu konuyla ilgili ayrıntılar için yayınlanan VonC bağlantısını kontrol edin.
Entegre grafik kullanıyorsanız, bunu kısabilirsiniz ve bu, sistemin daha fazla sistem RAM'inizi adresleyebileceği anlamına gelir.
Ancak, en iyi çözüm kesinlikle bir x64 işletim sistemi elde etmektir.
Sebep yok zaten. Çoğu program x64'te, x86 öykünme katmanına sahip XP / Vista / 7 ile çalışır. Sorun olabilecek sadece sürücüleri .
Çalışması için birkaç bileşen gerektiğinden, oldukça karmaşık bir soru. Bu bileşenler:
Son madde doğrudan konu ile ilgili değil, ama bir bütünlüğü uğruna ekledim.
Özet olarak, yukarıdaki bileşenlerin hepsinin başarılı olabilmesi için 4 GB'den fazla belleği desteklemesi gerekir.
Bir CPU ile başlayalım. Ancak, öncelikle bir CPU'nun herhangi bir hafızayı kullanmak için herhangi bir sihirli yeteneğe sahip olmadığını belirtmek önemlidir . Bunun yerine , adreslenebilir alanı içindeki herhangi bir adrese erişebilir . Şimdi burada bit-şey geliyor. 32 bit CPU 0 ila 4 GiB aralığında adreslere erişebilir . Bununla birlikte, bu aralık sadece mevcut RAM, ROM, SMRAM , Grafik Adres Yeniden Düzenleme Tablosunu değil, aynı zamanda gerekli tüm Bellek Haritalı G / Ç'yi de barındırmak zorundadır. ve dahası, bu adres aralığının önemli bir bölümünü gerektirebilir. Sonuç olarak, bazı bellek adreslerinin bu kullanımlar tarafından gölgelendiği ve bu nedenle RAM'deki işlemler için uygun olmadığı tamamen mümkün olabilir . Gizli hafızayı yeniden kazanmak için CPU tarafından erişilebilir adres alanını genişletmek gerekir . 32-bit CPU olması durumunda Fiziksel Adres Uzantısı yardımcı olabilir. Bu 64 GiB'a kadar adreslemeye izin veriyor . Yerel 64 bit modunda çalışan 64 bit CPU varsayılan olarak erişebilirOldukça büyük ve böyle hileler gerektirmeyen 16 EiB kadar. Ancak diğer taraftan 64 bit işlemcinin 64 bit adresleme kullanması pratik değildir, bu nedenle gerçekte adres veriyolları ile 16 EiB'den daha düşük bir aralıkta tutulurlar.
Başlangıçta Northbridge'de bulunuyordu , ancak AMD64 işlemcilerinden başlayarak AMD tarafından ve Nehalem işlemcilerinden Intel tarafından işlemci kalıbına taşındı. PAE'li bir CPU 64 GiB'ye tek başına erişebiliyor olsa bile , RAM'e erişmek için hala bir MCU'ya ihtiyacı var. Basitçe söylemek gerekirse: İstenilen adres RAM'de bulunuyorsa, belirli bir adrese erişen bir CPU cevabını PCI aygıtından, BIOS ROM flaşından veya MCU'dan alır. Bununla birlikte, bir MCU’nun (Northbridge’de veya CPU’da olduğu gibi) pazarlama nedenleriyle 64 GiB’den daha az adreslenebilir alanı desteklemesi nadir değildir .
BIOS / (U) EFI ayrıca, herhangi bir işlem yapmadan önce donanımı yapılandırmanın görevi olduğu için önemlidir. Diğer şeylerin yanı sıra, işlemci adreslenebilir alanın tamamını donanım aygıtlarının, otobüslerin, RAM'in vb. İlginçtir ki tüm RAM parçalara bölünmüş ve bitişik olmayan bazı noktalarda haritalanmış olabilir. BIOS ile ilgili sorun, geliştiricilerin sistemlerinde 3 GiB'dan fazla RAM kullanımı beklemeyebilecekleri ve bu nedenle BIOS kullanılacak olan tüm belleği düzgün şekilde haritalamayacağıdır. Büyük olasılıkla bu (U) EFI olmayacak.
İşletim sistemi ayrıca 4'ten fazla GiB belleğin adreslenmesini desteklemelidir. Daha açık olmak gerekirse, PAE kullanacak bir CPU'yu yapılandırması gerekir. Bazı 32-bit işletim sistemleri, PAE kullanma ve 4 GiB'dan daha fazla erişime mükemmel şekilde erişebiliyor, diğerleri ise, geliştirilmiş güvenlik için PAE'yi etkinleştirmesine rağmen, maksimum bellek için yazılım sınırına sahipler (Windows XP bir örnek olarak). Bir kez daha 64 bit işletim sistemleri doğal olarak böyle bir sıkıntı yaşamamakta ve normalde 4 GiB'den fazla belleği desteklemektedir.
Son nokta farklı bir dünyadan geliyor; uygulamalar genellikle Sanal Adres Alanında çalıştığından, onu tam bir iyilik için ekledim. Bununla birlikte, uygulamanın daha fazla bellek kullanabilmesi için derlerken bazı ek adımlar atmaktadır. Varsayılan olarak 32 bit uygulama yalnızca 2 GiB bellek kullanabiliyor. Aynı 32-bit uygulama olabilir hitap OS Bunu destekleyecek yapar ve CPU PAE etkin olması kaydıyla, belleğin 4 GiB kadar. Daha spesifik olarak, kullanabilir3 GiB'ye kadar bellek, diğer 1 GiB ortak kütüphaneler ve işletim sistemi çekirdeği olarak adreslenebilir, ancak yazılabilir değil (sonuçta bu, uygulamanın kendisinden ziyade işletim sistemi mimarisine bağlıdır). Yine 64 bit uygulamalar, 4 GiB'den fazla belleğe hitap etmeyi doğal olarak destekliyor ve ilk başta böyle bir sıkıntı yaşamıyor.
Bunların hepsini perspektife koymak için birkaç örneği ele alalım.
Intel® 82945G Bellek Denetleyicisi'ni düşünün . Intel web sitesi, PAE'yi desteklemediğini ve 4 GB RAM ile sınırlı olduğunu belirtiyor. 9 System Address Map
Veri sayfasının paragrafına bakalım. Çok fazla bilgi var. En ilginç olanı Figure 9-3. Main Memory Address Range
:
ve 9.2 Main Memory Address Range (1 MB to TOLUD)
aşağıdaki gibi okuyan paragraf :
Bu adres aralığı, (G) MCH (TOLUD kayıt defterinde programlandığı gibi) tarafından erişilebilir olmasına izin verilen 1 MB'tan fiziksel belleğin üstüne uzanır. Bu aralıktaki adreslere yapılan tüm erişimler, (G) MCH tarafından, isteğe bağlı TSEG, isteğe bağlı ISA Deliği veya isteğe bağlı IGD çalınan VGA belleğine düşmedikçe ana belleğe iletilir. (G) MCH, 4 GB'lık bir maksimum ana bellek adres kod çözme alanı sağlar (82945GC / 82945GZ / 82945PL için 2 GB). (G) MCH, APIC veya PCI Express bellek alanını yeniden eşleştirmez. Bu, sisteme yerleştirilen fiziksel bellek miktarı 4 GB'a (82945GC / 82945GZ / 82945PL için 2 GB) ulaştığı için, henüz var olmayan ve bu nedenle sistem tarafından kullanılamayan bir fiziksel bellek olacağı anlamına gelir.
Söylediği gibi, PAE'yi desteklemediğinden, sonuçta PCI ve 4 GiB'nin üzerindeki diğer her MMIO'yu yeniden eşleştiremiyor , bu nedenle belleğin bir kısmı gölgelenecek ve kullanılmayacak. Bu, 36 bit adreslemeyi destekleyen bir CPU ile kullanılsa bile, 4 GiB'nin üzerindeki hafıza kullanılamayacak ve 4 GiB limitine yakın olan hafızanın bir kısmı kullanılmayacak demektir.
Buna karşılık, bir öncekiyle ilgili olan Intel® 82955X Bellek Denetleyicisi'ni düşünelim , ancak bir öncekinin aksine 8 GB desteği olduğu belirtildi! Veri sayfası paragrafı 2.1 Host Interface Signals
, CPU'ya 36 bit adres veriyolu kullandığını ve bunun iyi bir işaret olduğunu gösteriyor. Paragrafta 7 System Address Map
başka görüşler de var. Daha Figure 7-1. System Address Ranges
önce gördüğümüzle kıyaslayın:
Bu, 36 bit adresleme kapasitesine sahip CPU ile birlikte kullanılması kaydıyla, 4 GiB'dan daha fazla RAM kullanabildiğini açıkça ortaya koyuyor. Ayrıca, paragrafın bunu 7 System Address Map
ifade ettiğini de belirtmekte fayda var MCH supports 64 GB of addressable memory space
. Bununla birlikte, daha fazla açıklığa kavuşturularak, maksimum kullanılabilir RAM'in 8 GB ile sınırlandırıldığı açıktır. Bu bir kez daha adreslenebilir ve aradaki farkı bildirir.CPU bölümünde iletmeye çalıştığım gibi kullanılabilir .
Bunu sonuçlandırmak için, iki ilişkili yonga setinin aslında bellek işlemede büyük fark olduğunu unutmayın.
İncelemek Lets Intel Pentium İşlemci Extreme Edition'ı 840 . 64-bit komut setini desteklemektedir, ancak PAE'yi desteklememektedir. Bu, 32 bit modunda çalıştırıldığında, 4 GiB'dan fazla RAM kullanamayacağı anlamına gelir (lütfen, bu varsayımda yanlışsam beni düzeltin). Veri sayfasını ve tabloyu kontrol edelim Table 4-3. Signal Description
. Bu CPU'nun 64-bit özelliğine sahip olmasına rağmen, adres veriyolu 36-bit genişliğindeki adres otobüsü ile sınırlıdır, bu nedenle 0 ila 64 GiB'den başlayarak erişilebilir adres aralığına sınırlandırmaktadır .
Şimdi daha yeni bir CPU'yu inceleyelim. Örneğin Intel® Core ™ i7-7700 İşlemci'yi kullanın . 64 GB RAM'e kadar desteklediği bildirildi. Şimdi onun veri sayfasını kontrol edelim. Paragraf 2.3 System Address Map
, bu CPU'nun adreslenebilir aralığının 39 bit adres veriyolu nedeniyle 0 ila 512 GiB arasında olduğuna bizi ikna ediyor . 64 bit CPU için teorik 16 EiB serisinden hala uzak olduğuna dikkat edin. Şaşırtıcı bir şekilde, bu CPU'nun maksimum 32 GiB kullanılabilir RAM'e (web sitesinde 64 GB'ın aksine) destek verdiğini daha da açıklığa kavuşturmasına rağmen . Burada ilgi bir resim de var Figure 2-2. System Address Range Example
:
O Ayrıca bu sorunu aşmak için bir yol önerir bellek PCI aygıtları vb gölgeleme sorunu gösteren iyi bir iş yok haritalamaCPU- adreslenebilir aralık içindeki gerçek RAM'den üst adres aralığına kadar bir aralık. Böylece kullanmak için bu gizli bellek geri kazanıyor. Bu yeniden eşleştirmenin donanım başlatması üzerine BIOS / (U) EFI tarafından yapıldığını ve bu nedenle tam olarak bu nedenle yukarıdaki madde listesindeki BIOS / (U) EFI'yi ekledim.
Intel ürünlerini örnek olarak aldım, ancak aynısı AMD için de geçerli.
Şimdi İşletim Sistemlerinin nasıl dahil olduğunu tartışalım. Linux çekirdeği 2.3.23 sürümünden itibaren tam PAE modu desteği içerir ve 32 bitlik bir sistemde Linux çekirdeği ile kullanılabilen 4'ten fazla GiB belleğe sahip olmak mükemmel bir şekilde mümkündür . Bununla birlikte , bazı donanımlarda 4 GiB RAM'in üzerinde bir donanımda 32 bit Linux çekirdeği ile saptanmamış bir sorunun farkında olun (benim tecrübeme göre TLB çekimleriyle bir ilgisi var). Yine de Wikipedia'nın PAE desteği konusunda iyi bir bilgisi var . İlginç olan şey, Windows XP'nin 4 GB ile sınırlı olmasının yanı sıra, Windows Server 2003 Enterprise / Datacenter SP2'nin 64 GB tam kapasiteye sahip olmasıdır. Aynı diğer Desktop-Server Windows çiftleri için de geçerlidir.
Gördüğünüz gibi listelenen bileşenler arasında birçok kombinasyon vardır ve bazı durumlarda bir CPU veya işletim sisteminin değiştirilmesi yardımcı olabilir. Birincisi tescilli ve sistemde yerleşik olduğundan ve kolayca değiştirilemediğinden, işlemcinin işlemci içine yerleştirildiği veya lehimlendiği için BIOS / (U) EFI veya MCU ile uğraşmak çok daha zordur.
3574MB Ram gösteriyor çünkü RAM ne kadar boş ve bilgisayarın herhangi bir zamanda kullanabileceği. Bu şekil, bilgisayarınızın önceden erişebileceği RAM'dir, çünkü PC'ye önceden yüklenmiş olan programlar ve ayarlar, sizin durumunuzda 426 MB olan bir miktar RAM kullanır. 6GB 64bit bilgisayarım tam 6GB'ların yerine 5.8GB kullanılabilir RAM gösteriyor. En iyi tercihiniz PC'nizi güncellemeye bakmak olabilir