Saya membaca artikel ini tentang komputasi 64 bit, dan disebutkan:
Sebagai contoh, arsitektur AMD64 pada 2011 memungkinkan 52 bit untuk memori fisik dan 48 bit untuk memori virtual
Saya akan berpikir bahwa akan lebih masuk akal untuk memungkinkan lebih banyak memori virtual daripada memori fisik, jadi mengapa sebenarnya sebaliknya?
Pertanyaan bonus: Apa artinya "mengizinkan" untuk 52 atau 48 bit pada arsitektur 64 bit? Untuk apa bit-bit lain digunakan?
memory
64-bit
computer-architecture
dougvk
sumber
sumber
Jawaban:
Ini adalah gambar tabel halaman AMD64 (dari Panduan Program Arsitektur AMD, Vol. 2, Rev 3.23, 2013, halaman 132).
Ukuran "alami" dari halaman dalam arsitektur AMD64 adalah 2 12 = 4096 byte. (Ada mode di mana Anda dapat memiliki 2 21 = 2Mbyte halaman, tapi kami akan mengabaikannya untuk saat ini.)
Setiap Entri Halaman-Tabel (PTE) (atau, tergantung pada level yang disebut PDE, PDPE atau PML4E) adalah 64 bit = 2 3 byte. Jadi ada 2 9 entri per halaman. Jadi 4 level tabel halaman memberi Anda 4x9 + 12 = 48 bit alamat virtual per proses. Berjalan dengan tabel halaman itu mahal, sehingga mereka tidak akan meluas ke level 5 atau 6 kecuali / sampai ada permintaan konsumen.
Saya tidak yakin mengapa mereka memutuskan batas alamat fisik 52-bit. Ini dapat diperpanjang hingga 63-bit di masa depan. Pada harga Oktober 2013 (sekitar 1US $ / Gigabit untuk chip 4Gbit) akan memakan biaya lebih dari 32.000.000,00 US $ untuk membangun memori 2 52 byte, sehingga akan diperlukan beberapa saat sebelum ada permintaan yang signifikan untuk meningkatkan batas alamat fisik. Ada berbagai macam alasan mengapa Anda ingin menyimpan alamat fisik sekecil mungkin: tag TLB dan cache harus menyimpan alamat fisik, misalnya.
Ini tidak selalu mundur bahwa ada lebih banyak memori fisik daripada virtual. Memori virtual adalah per proses sementara memori fisik dibagi oleh semua proses. Jadi server dengan alamat virtual 48-bit dan 2 52 byte memori dapat mendukung 16 proses simultan dan masih menjamin tidak perlu menukar.
sumber
Beberapa hal yang perlu dipertimbangkan, RAM fisik mahal. Tentu 16 GB lebih murah sekarang karena 4GB hanya beberapa tahun yang lalu, tetapi 2 ^ 64 (16 exabytes) sangat besar.
Jadi ekstensi AMD dari x86 untuk x64 "diizinkan" hingga 2 ^ 52 dengan membatasi register . Ini melakukan dua hal, menurunkan biaya prosesor dan meningkatkan kinerja. Lebih banyak register yang tidak digunakan berarti bahwa ada banyak ruang kosong yang masih harus diperhitungkan selama operasi.
Dan, jika Anda bukan seorang pria matematika ... Perbedaan antara tiga ukuran sangat besar! Saya bukan guru matematika, tetapi dengan desimal 52 bit sekitar 0,02% dari 64bit. 48 bit adalah 6% dari 52. (seseorang memeriksa matematika saya?)
Adapun mengapa AMD mengizinkan lebih banyak RAM fisik daripada virtual, artikel itu menyatakan itu karena AMD memikirkan server. Server membutuhkan jumlah RAM fisik yang besar. RAM virtual terlalu lambat untuk mendukung aplikasi server rata-rata untuk ratusan atau ribuan karyawan.
Pikiran saya sendiri: Kami telah meninggalkan waktu ketika RAM kecil, dan hard drive harus mendukung RAM. Harga dalam RAM telah jatuh ke titik di mana rata-rata persona dapat memasukkan lebih dari cukup RAM. Ambil aplikasi biasa, seperti Office yang membutuhkan 1-2GB RAM. Komputer saya 7 tahun yang lalu bisa mengatasinya. Meskipun dengan kecepatan baca dan tulis ke disk, saya berharap saya tidak pernah harus mengambil file 7GB dari memori virtual (menggunakan filosofi PM * 2.5 lama).
Saya juga hanya dapat berasumsi AMD ingin meninggalkan ruang untuk register yang menggunakan register RAM fisik, seperti RAM pada GPU terintegrasi.
sumber