it-swarm.asia

Mengapa Windows hanya menampilkan sekitar 3,5 GB dari 4 GB RAM saya?

Saya baru-baru ini memutakhirkan RAM komputer saya menjadi 4 GB. Instalasi Windows 32-bit saya hanya menampilkan memori 3574 MB. Bagaimana saya bisa membuat Windows menggunakan jumlah penuh RAM?

90
ala

Kamu tidak bisa:

Lihat Bung, Di mana RAM 4 Gigabita?

jika Anda ingin memasukkan memori dan perangkat ke dalam kisaran alamat 32-bit: tidak semua ruang alamat 4GB yang tersedia dapat diberikan ke memori.
Jadi apa yang sebenarnya terjadi jika Anda keluar dan membeli memori 4GB untuk PC Anda?
Ada lubang di peta memori Anda untuk IO. (Sekarang hanya 25% dari total ruang alamat, tapi ini masih lubang besar.) Jadi 3GB memori Anda yang paling bawah akan tersedia, tetapi ada masalah dengan 1GB terakhir.

Satu-satunya solusi praktis adalah menginstal sistem operasi 64-bit. Di Windows Vista dan yang lebih baru, kunci lisensi 32-bit dan 64-bit dapat dipertukarkan. Jika Anda bisa mendapatkan media instalasi Windows untuk versi 64-bit dari sistem operasi Anda, Anda dapat menginstal ulang menggunakan kunci lisensi asli Anda.

70
VonC

Pertama, Windows XP (32bit) hanya mendukung 4 GB. Itu tidak hanya berlaku untuk Windows XP. Sebaliknya, ini berlaku untuk 2bit desktop Windows - 32bit sistem Linux dengan PAE dan banyak edisi Windows Server 32bit mendukung lebih dari 4GB per artikel yang ditautkan. Anda tidak akan pernah melihat lebih dari 4 GB jika Anda menggunakan Windows XP 32-bit. Namun, saya memang menemukan alasan yang lebih detail mengapa sistem Anda menunjukkan ram yang tersedia kurang dari apa yang sebenarnya diinstal.

Dari Masalah 3GB-bukan-4GB RAM (blog Microsoft MSDN):

Karena keputusan arsitektur yang dibuat lama, jika Anda memiliki 4GB fisik RAM diinstal, Windows hanya dapat melaporkan sebagian dari 4GB fisik RAM (berkisar dari ~ 2.75GB hingga 3.5GB tergantung pada perangkat yang diinstal, chipset motherboard & BIOS).

Perilaku ini disebabkan "memori yang dipetakan IO reservasi". Pemesanan tersebut menutupi ruang alamat fisik dan menyamarkan alamat fisik tersebut sehingga tidak dapat digunakan untuk memori kerja. Ini tidak tergantung pada OS yang berjalan pada mesin.

Potongan signifikan dari ruang alamat di bawah 4GB (alamat tertinggi yang dapat diakses melalui 32-bit) disediakan untuk digunakan oleh perangkat keras sistem:

  • BIOS - termasuk ACPI dan dukungan video lawas
  • PCI bus termasuk jembatan dll.
  • Dukungan PCI Express akan mencadangkan setidaknya 256MB, hingga 768MB tergantung pada memori yang dipasang kartu grafis

Artinya, sistem biasanya dapat melihat antara ~ 256MB dan 1GB ruang alamat di bawah 4GB yang disediakan untuk penggunaan perangkat keras yang tidak dapat diakses oleh OS. Spesifikasi chipset Intel cukup bagus dalam menjelaskan kisaran alamat yang disediakan secara default dan dalam beberapa kasus menyebutkan bahwa 1.5GB selalu dicadangkan dan karenanya tidak dapat diakses oleh Windows.

Ada informasi lebih lanjut jika Anda memeriksa sumbernya. Namun, Anda mungkin dapat memanfaatkan 8 GB penuh yang diinstal jika Anda mengikuti instruksi ini.

Berbicara dari pengalaman pribadi, ini bukan masalah baru. Saya mengalami masalah yang sama beberapa tahun yang lalu ketika saya membangun sistem Windows Vista 4-bit 32-bit ketika Vista pertama kali dirilis. Ada banyak posting forum online terkait dengan topik yang sama ini.

Baca juga Microsoft KB 929605 - Memori sistem yang dilaporkan dalam kotak dialog Informasi Sistem di Windows Vista kurang dari yang Anda harapkan jika 4 GB RAM diinstal .

8
SgtOJ

Motherboard lama hanya mendukung 4Gb RAM fisik, yang modern mendukung lebih banyak. CPU Intel P4 selalu dapat mengatasi lebih dari 4Gb (dengan menggunakan sesuatu yang disebut Physical Address Extension, atau PAE)

Microstoft membuat 'keputusan pemasaran' untuk tidak mendukung lebih dari ruang alamat fisik 4Gb dalam versi 'klien' dari semua versi 32-bit Sistem Operasi itu - yang mencakup semuanya dari w2k hingga 32bit Windows 8 (jika Anda mengunjungi MS KB halaman Anda akan mencatat bahwa versi 32bit Server dapat mendukung lebih banyak - hingga 128GB Saya percaya dengan 32bit 'Enterprise Edition') - itulah sebabnya mengapa 'layak' OS 32bit (Linux dll) pada perangkat keras yang persis sama selalu dapat mengakses SEMUA RAM fisik.

(catatan - pengguna 32bit Win7 begitu muak dengan batas 'bodoh' ini sehingga mereka 'meretas' Kernal untuk memungkinkan kenaikan ke fisik penuh RAM .. tidak perlu dikatakan, ini melanggar Lisensi Anda dan sebenarnya ilegal di AS (DCMA)

Windows XP 32 bit 'cadangan' bagian dari ruang alamat 4Gb untuk penggunaan driver. Tidak ada alasan mengapa Anda tidak dapat 'mengatasi' fisik RAM di luar 4Gb (menggunakan PAE) namun banyak PENGEMUDI TUA di sekitar pada saat Windows XP Pro gagal melakukannya dan Anda akan mendapatkan kesalahan 'BSOD' (driver modern menggunakan PAE dengan benar dan DALAM TEORI tidak ada alasan mengapa mereka membutuhkan lebih dari 32Mb halaman ruang 'lo' (sebagai 'jendela') secara total bahkan untuk mendukung kartu Grafis 2Gb ( 2gb akan berada di ruang 'hi' yaitu di atas tanda 4Gb)

Dalam XP SP2, MS hampir tiga kali lipat jumlah ruang alamat 'dicadangkan' untuk driver dalam upaya untuk menghilangkan BSOD's dan sudah sejak itu (MS tidak ingin 'men-debug' driver == mereka ingin menjual OS 64bit sebagai gantinya). Perangkat keras ACTUAL hampir tidak memiliki efek pada ruang 'cadangan' ini.

JADI, jika Anda memiliki 4Gb atau lebih dari RAM fisik, yang paling XP Pro sp2 + akan lihat adalah sekitar 3.25Gb .. sisanya DAPAT diakses menggunakan berbagai _ RAM Disk Driver yang berbeda (tidak satu MS tentu saja) = pergi mencari sesuatu yang menggunakan 'ruang Alamat Tak Terlihat' atau 'ruang 4gb tinggi' pada XP Pro) .. menggunakan '.75Gb' yang hilang 'sebagai bagian dari' virtual 'Anda memori 'dapat mempercepat sistem Anda ...

Perhatikan bahwa/3G switch dapat memungkinkan aplikasi 32 bit untuk mengakses hingga 3Gb pada OS 32 bit (jika mereka memiliki flag LargeAddressAware yang diatur dalam header .exe mereka - dalam hal ini mereka dapat mengakses hingga 4Gb pada OS 64bit) tetapi pada XP Anda harus menentukan/USERVA juga untuk menghentikan OS yang 'diperas' dari RAM :-)

3
steve b

Jika Anda menggunakan Windows XP 32bit, maka itu tidak mungkin. Karena Ruang Alamat tidak cukup tersedia untuk memanfaatkan RAM tambahan

Solusi terbaik adalah meng-upgrade ke Versi 64-Bit Windows karena mendukung 4+ GB RAM.

3
Shaharyar

Seperti yang dikatakan orang lain, itu tidak mungkin.

Penjelasan:

Setiap bagian dari memori memiliki alamat. Sistem operasi menentukan panjang alamat. Untuk sistem operasi yang lebih lama, panjang alamatnya adalah 32 bit, yang hanya memungkinkan 2 ^ 32 (4 294 967 296) alamat. Sekarang, melihat angka itu, mungkin tampak seperti sistem operasi Anda harus mendukung 4 GB, tetapi semua perangkat keras lainnya (paling signifikan, ram video dalam kartu video Anda) yang memiliki memori internal juga akan dipetakan ke dalam ruang alamat itu.

Ini seperti Anda mencoba mendistribusikan 1.200.000 nomor telepon enam digit.

3
drby

Jika Anda ingin menggunakan 4GB yang lengkap, satu-satunya pilihan adalah meningkatkan ke sistem operasi 64bit:

  • Windox XP 64
  • Windows Vista 64
  • Linux
  • Max OS/X (ok, Anda mungkin perlu PC baru juga)

Windows XP normal hanya 32bit, dan ini membatasi memori hingga 3,5gb maks. Periksa tautan VonC yang diposting untuk detail tentang topik ini.

0
FrankS

Ini adalah pertanyaan yang agak rumit karena membutuhkan beberapa komponen untuk menyelesaikannya. Komponen-komponen tersebut adalah:

  • Unit pemrosesan utama
  • Unit Pengontrol Memori
  • BIOS/(U) EFI
  • Sistem operasi
  • Aplikasi

Item terakhir tidak berhubungan dengan masalah secara langsung, tetapi saya telah menambahkannya demi kelengkapan.

Singkatnya, semua komponen di atas harus mendukung lebih dari 4 GB memori agar berhasil.

Unit pemrosesan utama

Mari kita mulai dengan CPU. Tetapi pertama-tama penting untuk dicatat, bahwa CPU tidak memiliki kemampuan magis untuk menggunakan memori sama sekali. Sebaliknya itu bisa saja mengakses alamat apa saja dalam ruang beralamat . Sekarang inilah bitness-thing. CPU 32-bit mampu mengakses alamat dalam rentang dari 0 hingga 4 GiB. Namun kisaran ini harus mengakomodasi tidak hanya RAM yang tersedia, ROM, SMRAM , Graphics Address Remapping Table tetapi juga semua yang diperlukan Memory-mapped I/O dan banyak lagi, yang mungkin memerlukan bagian substansial dari kisaran alamat ini. Sebagai konsekuensinya sangat mungkin, bahwa beberapa alamat memori dibayangi oleh penggunaan tersebut dan oleh karena itu tidak tersedia untuk operasi pada RAM. Untuk mendapatkan kembali memori tersembunyi, perlu untuk menambah ruang alamat yang dapat diakses CPU . Dalam hal CPU 32-bit Ekstensi Alamat Fisik dapat membantu. Yang memungkinkan menangani hingga 64 GiB. CPU 64-bit yang beroperasi dalam mode 64-bit asli secara default mampu mengakses hingga 16 EiB, yang agak besar dan tidak memerlukan trik seperti itu . Tetapi di sisi lain itu tidak praktis untuk CPU 64-bit untuk menggunakan pengalamatan 64-bit, jadi pada kenyataannya mereka masih dibatasi oleh bus alamat mereka ke kisaran yang lebih rendah dari 16 EiB.

Unit Pengontrol Memori

Awalnya terletak di Northbridge , tetapi dipindahkan ke prosesor mati oleh AMD dimulai dengan prosesor AMD64 mereka dan oleh Intel dengan prosesor Nehalem mereka. Bahkan jika CPU dengan PAE mampu mengakses 64 GiB dengan sendirinya, masih membutuhkan MCU untuk mengakses RAM. Sederhananya: CPU mengakses alamat tertentu mendapat jawabannya baik dari perangkat PCI, BIOS ROMflash atau MCU, jika alamat yang diminta berada di RAM, dan sebagainya. Namun tidak jarang bagi MCU (baik itu di Northbridge atau di CPU) untuk mendukung jauh lebih sedikit ruang addressable dari 64 GiB untuk alasan pemasaran misalnya.

BIOS/(U) EFI

BIOS/(U) EFI juga penting karena merupakan tugas mereka untuk mengkonfigurasi perangkat keras sebelum sesuatu dapat benar-benar beroperasi. Antara lain, mereka bertanggung jawab untuk memetakan seluruh prosesor ruang beralamat dengan rentang memori perangkat perangkat keras, bus, RAM dan seterusnya . Menariknya mungkin terjadi bahwa seluruh RAM terpecah-pecah dan dipetakan di beberapa tempat yang tidak berdekatan. Masalah dengan BIOS adalah bahwa pengembangnya mungkin tidak mengharapkan penggunaan lebih dari 3 GiB dari RAM dalam sistem mereka dan karena itu BIOS tidak akan memetakan dengan benar semua memori yang akan digunakan. Kemungkinan besar ini tidak akan terjadi pada (U) EFI.

Sistem operasi

Sistem operasi juga harus mendukung pengalamatan lebih dari 4 GiB memori. Untuk lebih spesifik, itu harus mengkonfigurasi CPU untuk menggunakan PAE. Beberapa OS 32-bit benar-benar mampu menggunakan PAE dan mengakses lebih dari 4 GiB, yang lain memiliki batas maksimum perangkat lunak pada memori maksimum, meskipun mereka memungkinkan PAE untuk meningkatkan keamanan (Windows XP menjadi contoh). Sekali lagi OS 64-bit secara alami tidak mengalami kesulitan seperti itu dan biasanya mendukung lebih dari 4 GiB memori.

Aplikasi

Poin terakhir adalah dari dunia yang berbeda, karena aplikasi biasanya beroperasi di Virtual Address Space , saya telah menambahkannya demi kelengkapan. Meskipun demikian diperlukan beberapa langkah tambahan saat mengompilasi agar aplikasi dapat menggunakan lebih banyak memori. Secara default aplikasi 32-bit hanya mampu menggunakan memori 2 GiB. Aplikasi 32-bit yang sama dapat address hingga 4 GiB memori, asalkan OS memang mendukung itu dan telah mengaktifkan CPU PAE . Lebih khusus lagi, itu bisa menggunakan hingga 3 GiB memori, yang lain 1 GiB akan bisa dialamatkan sebagai perpustakaan umum dan kernel OS, tetapi tidak dapat ditulisi (pada akhirnya ini tergantung pada arsitektur OS daripada aplikasi itu sendiri). Sekali lagi, aplikasi 64-bit secara asli mendukung pengalamatan lebih dari 4 GiB memori dan tidak memiliki masalah seperti itu di tempat pertama.

Untuk menempatkan semua ini dalam perspektif, mari kita pertimbangkan beberapa contoh.

Pertimbangkan Intel® 82945G Memory Controller . Situs web Intel menyatakan, bahwa itu tidak mendukung PAE dan dibatasi hingga 4 GB RAM. Mari kita berkonsultasi paragraf 9 System Address Map dari lembar data. Ini memiliki banyak informasi. Paling menarik adalah Figure 9-3. Main Memory Address Range: Figure 9-3. Main Memory Address Range dan paragraf 9.2 Main Memory Address Range (1 MB to TOLUD), yang berbunyi sebagai berikut:

Kisaran alamat ini membentang dari 1 MB ke bagian atas memori fisik yang diizinkan untuk dapat diakses oleh (G) KIA (seperti yang diprogram dalam register TOLUD). Semua akses ke alamat dalam kisaran ini diteruskan oleh (G) MCH ke memori utama kecuali jika jatuh ke dalam TSEG opsional, lubang _ ISA opsional, atau memori VGA dicuri IGD opsional. (G) MCH menyediakan ruang dekode alamat memori utama maksimum 4 GB (2 GB untuk 82945GC/82945GZ/82945PL). (G) MCH tidak memetakan kembali ruang memori APIC atau PCI Express. Ini berarti bahwa ketika jumlah memori fisik yang dihuni dalam sistem mencapai 4 GB (2 GB untuk 82945GC/82945GZ/82945PL), akan ada memori fisik yang ada namun tidak dapat dialamatkan dan karenanya tidak dapat digunakan oleh sistem.

Seperti dikatakan, karena tidak mendukung PAE, akhirnya tidak dapat remap PCI dan setiap MMIO lainnya di atas 4 GiB, oleh karena itu sebagian memori akan dibayangi dan tidak digunakan. Yang berarti bahwa meskipun digunakan dengan CPU yang mendukung pengalamatan 36-bit, memori di atas 4 GiB masih akan tidak tersedia dan beberapa memori yang dekat dengan batas 4 GiB juga tidak akan digunakan.

Sebaliknya, mari kita pertimbangkan Intel® 82955X Memory Controller , yang terkait dengan yang sebelumnya, tetapi ia ditentukan untuk mendukung 8 GB yang bertentangan dengan yang sebelumnya! Paragraf datasheet 2.1 Host Interface Signals menunjukkan, bahwa ia menggunakan bus alamat 36-bit ke CPU, yang merupakan pertanda baik. Paragraf 7 System Address Map memiliki wawasan lebih lanjut. Bandingkan Figure 7-1. System Address Ranges dengan yang kami lihat sebelumnya: Figure 7-1. System Address Ranges Ini jelas menunjukkan bahwa ia mampu menggunakan lebih dari 4 GiB RAM, asalkan digunakan dengan CPU yang juga mampu menangani 36-bit. Perlu dicatat bahwa paragraf 7 System Address Map menyatakan bahwa MCH supports 64 GB of addressable memory space. Namun lebih lanjut diklarifikasi, bahwa maksimum dapat digunakan RAM dibatasi hingga 8 GB. Ini sekali lagi menyatakan perbedaan antara addressable dan dapat digunakan ketika saya mencoba untuk menyampaikan di bagian CPU.

Untuk menyimpulkan ini, saya ingin mencatat bahwa dua chipset terkait sebenarnya memiliki perbedaan besar dalam penanganan memori.

Mari kita periksa Intel® Pentium® Processor Extreme Edition 84 . Itu mendukung set instruksi 64-bit, tetapi tidak mendukung PAE. Yang berarti jika dijalankan dalam mode 32-bit, itu tidak akan dapat menggunakan lebih dari 4 GiB dari RAM (tolong, koreksi saya jika saya salah dengan asumsi ini). Mari kita periksa datasheet dan tabel Table 4-3. Signal Description. Meskipun CPU ini berkemampuan 64-bit, namun masih dibatasi oleh address bus-nya yang lebar 36-bit, sehingga membatasi untuk rentang alamat dapat diakses mulai dari 0 hingga 64 GiB.

Sekarang mari kita periksa CPU yang lebih baru. Ambil Prosesor Intel® Core ™ i7-77 misalnya. Itu diiklankan untuk mendukung hingga 64 GB RAM. Sekarang mari kita periksa datasheet-nya. Paragraf 2.3 System Address Map meyakinkan kita bahwa kisaran CPU ini beralamat adalah dari 0 hingga 512 GiB karena bus alamat 39-bit. Perhatikan bahwa masih jauh dari kisaran 16 EiB teoritis untuk CPU 64-bit. Anehnya meskipun lebih lanjut menjelaskan bahwa CPU ini memang mendukung hingga 32 GiB dari dapat digunakan RAM maksimum (bertentangan hingga 64 GB di situs web). Ada juga gambar yang menarik di sini Figure 2-2. System Address Range Example: Figure 2-2. System Address Range Example Melakukan pekerjaan yang baik dengan mengilustrasikan masalah dengan memori yang dibayangi oleh perangkat PCI, dll. Juga menyarankan cara mengatasi masalah ini dengan pemetaan rentang dari real RAM ke rentang alamat atas dalam CPU - addressable range. Dengan demikian reklamasi memori tersembunyi itu untuk digunakan. Perhatikan bahwa pemetaan ulang ini dilakukan oleh BIOS/(U) EFI pada saat inisialisasi perangkat keras dan itu tepat karena alasan ini saya memasukkan BIOS/(U) EFI dalam daftar-peluru di atas.

Saya telah mengambil produk Intel sebagai contoh, tetapi hal yang sama berlaku untuk AMD.

Sekarang mari kita bahas bagaimana Sistem Operasi terlibat. Kernel Linux menyertakan dukungan mode PAE penuh dimulai dengan versi 2.3.23 dan sangat mungkin untuk memiliki lebih dari 4 GiB memori dapat digunakan dengan kernel Linux pada sistem 32-bit. Namun waspadai masalah yang tidak ditentukan dengan kernel Linux 32-bit pada sistem dengan lebih dari 4 GiB dari RAM pada beberapa perangkat keras (menurut pengalaman saya ada hubungannya dengan penembakan TLB). Pokoknya Wikipedia memiliki informasi yang bagus tentang dukungan PAE . Yang menarik adalah bagaimana Windows XP dibatasi hingga 4 GB, sedangkan Windows Server 2003 Enterprise/Datacenter SP2 mampu mencapai 64 GB penuh. Sama untuk pasangan Windows Desktop-Server lainnya.

Seperti yang Anda lihat ada banyak kombinasi di antara komponen yang terdaftar dan dalam beberapa kasus mengganti CPU atau OS mungkin membantu. Jauh lebih sulit untuk berurusan dengan BIOS/(U) EFI atau MCU karena yang pertama adalah milik dan terintegrasi ke dalam sistem dan tidak mudah dimodifikasi, yang terakhir dibangun ke dalam CPU atau disolder di papan.

0
PF4Public

Jika Anda menggunakan grafik terintegrasi maka Anda dapat menolaknya, dan itu berarti sistem akan dapat mengatasi lebih banyak RAM sistem Anda.

Tapi, solusi terbaik pasti untuk mendapatkan OS x64.

Tidak ada alasan tidak terlalu lagian. Sebagian besar program bekerja di x64 dengan XP/Vista/7 yang memiliki lapisan emulasi x86. Ini hanya driver yang mungkin menjadi masalah.

0
Blam