Jika memori byte addressable, seharusnya tidak
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Pencarian Google umum mengatakan maksimum 8GB atau 16GB.
Bagaimana itu benar? Juga, bagaimana hal itu tergantung pada Sistem Operasi?
Jika memori byte addressable, seharusnya tidak
2^64 / (2^10 * 2^10 * 2^10) = 2^34 GB
?
Pencarian Google umum mengatakan maksimum 8GB atau 16GB.
Bagaimana itu benar? Juga, bagaimana hal itu tergantung pada Sistem Operasi?
Jawaban:
Ada beberapa faktor interleaving.
Pertama-tama, Anda tidak akan pernah dapat merakit sistem yang memiliki 2 64 byte (16 exibytes) RAM fisik.
Kedua, hanya karena arsitektur menggunakan pointer 64-bit, tidak berarti bahwa semua bit pointer tersebut benar-benar digunakan. Khususnya, CPU x86-64 saat ini (alias AMD64 dan chip Intel 64-bit saat ini) sebenarnya menggunakan garis alamat 48-bit (AMD64) dan garis alamat 42-bit (Intel) (lihat http://en.wikipedia.org/wiki / X86_64 # Virtual_address_space_details ), secara teoritis memungkinkan 256 terabyte RAM fisik.
Kedua, motherboard memiliki batasan sendiri pada berapa banyak RAM yang dapat mereka dukung, baik secara fisik maupun logis. Secara fisik, hanya ada banyak slot yang tersedia untuk RAM. Adapun batas "logis", saya tidak sepenuhnya mengerti mengapa ini masih berlaku untuk x86-64 (pengontrol memori yang telah lama dimigrasikan ke dalam CPU itu sendiri), tetapi itu dia. Kemungkinan sudut sedang dipotong pada garis alamat untuk menghemat beberapa dolar dalam desain dan manufaktur.
Ketiga, sistem operasi mungkin memiliki keterbatasan internal untuk berapa banyak RAM yang dapat didukung secara efisien. Sebagian, ini sebenarnya untuk mencegah kebutuhan struktur data yang terlalu besar untuk melacak penggunaan memori yang tidak benar-benar ada. Terakhir saya periksa, Linux memungkinkan 128TB ruang alamat virtual per proses pada x86-64, dan secara teoritis dapat mendukung 64TB RAM fisik.
Keempat, beberapa sistem operasi (misalnya Windows) akan secara artifisial membatasi berapa banyak RAM yang dapat digunakan sebagai taktik untuk membuat pengguna meningkatkan ke versi yang lebih mahal jika mereka menginginkan lebih banyak RAM (Windows 7 Starter dibatasi hingga 2GB, Home Basic hingga 8, Home Premium ke 16, dan Profesional dan di atas 192GB, dan rilis Windows Server memiliki batas yang jauh lebih tinggi).
Jika Anda menggunakan MS Windows, memori maksimum dibatasi oleh sistem operasi.
Untuk Windows 7, maksimum adalah:
Windows Server 2008 berkisar dari 8GB untuk level entri hingga 2TB untuk bagian atas baris.
Lihat http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx untuk daftar lengkap.
Batasan ini terutama untuk alasan pemasaran. Dengan membatasi versi yang lebih murah, mereka membuat versi kelas atas (komparatif) lebih menarik.
Saya pikir Linux baru-baru ini berfungsi dengan RAM sekitar 32TB, meskipun tidak semua perangkat keras dapat mendukungnya.
Mesin 64-bit harus mampu mengatasi hingga 2 64 unit yang dapat dialamatkan (dalam arsitektur yang dirancang selama beberapa dekade terakhir, unit yang dapat dialamatkan selalu byte, alias oktet). Jika Anda mendefinisikan "gigabyte" sebagai 2 30 unit yang dapat dialamatkan, maka ya, 2 34 gigabyte akan menjadi cara lain untuk mengekspresikan jumlah yang sama.
Pencarian Google apa yang menghasilkan hasil-hasil kecil yang konyol itu? Mungkin halaman yang Anda temukan berbicara tentang jumlah RAM yang dapat Anda beli dalam kotak yang cukup murah dari model tertentu - Anda pasti dapat memiliki lebih banyak RAM (semua dapat dialamatkan, tentu saja) bahkan dalam kotak yang jauh dari sangat mahal .
Sistem operasi yang paling pasti dapat dan memang membatasi jumlah memori yang dapat dialamatkan (misalnya, mereka dapat melakukannya dengan membatasi ukuran tabel halaman, mungkin untuk beberapa maksimum yang dapat dikonfigurasi yang dapat diatur dengan mengkompilasi ulang atau mengkonfigurasi ulang OS - sulit untuk lebih spesifik tanpa berfokus pada beberapa spesifik kelompok OS).
Anda dapat memiliki RAM sebanyak yang Anda inginkan tetapi semuanya tergantung pada sistem operasi dan aplikasi yang Anda jalankan - seperti yang dinyatakan orang lain.
Jika Anda menjalankan aplikasi intensif CPU yang lapar yang juga intensif pada perangkat keras lain seperti hard disk Anda, maka sebaiknya Anda serius mempertimbangkan CPU kedua, di mesin yang benar-benar terpisah. Misalnya, menjalankan aplikasi basis data dan server email baik pada mesin yang terpisah.
Tidak masalah berapa banyak memori yang Anda miliki - di pasar saat ini seluruh sistem akan terhenti. CPU tunggal tidak bisa menangani multitasking seperti yang Anda harapkan.
Untuk mesin tunggal dengan banyak memori lebih baik tetapi tidak terlalu cemerlang jika Anda memiliki beberapa aplikasi yang berjalan pada sistem yang sama - terlepas dari jumlah memori yang diinstal. Ini adalah alasan utama mengapa perusahaan-perusahaan besar tidak hanya menggunakan arsitektur 64bit untuk menangani lebih banyak memori tetapi mereka juga memuat keseimbangan keseluruhan dengan dua atau lebih server.
Jika Anda benar-benar serius tentang kinerja maka pasti berjalan sedikit 64 tetapi, juga mempertimbangkan load balancing dengan server kedua.
Saya sudah menyusuri jalan itu - mengkonfigurasi satu mesin dengan RAM maksimum. Namun ketika menjalankan beberapa aplikasi masih berjalan seperti anjing. Itu karena CPU itu sendiri tidak dapat mengatasinya.
Saran saya adalah untuk menghemat uang Anda di memori dan membeli server kedua dan kemudian memuat keseimbangan keduanya. Ini jauh lebih sederhana plus - begitu Anda masuk ke dalam genggamannya - mudah untuk diperluas ketika Anda membutuhkan lebih banyak kekuatan pemrosesan dan kecepatan.
Juga, mesin arsitektur 64bit dapat mengatasi perangkat lunak 32bit tetapi dengan mesin 32 bit Anda hanya terbatas pada aplikasi 32 bit atau kurang - termasuk sistem operasi.
Karena seluruh pasar berjalan 64bit dalam hal perangkat keras dan perangkat lunak, saya akan menyarankan untuk menggunakan 64bit untuk jangka panjang, tetapi, lupakan ide untuk memasukkan semua ke dalam satu mesin tunggal dengan banyak memori karena Anda akan kecewa.
Jika Anda tidak yakin apa itu "load balancing" maka google itu.
Saya pikir itu bisa lebih dari exabyte "EB".
Lihatlah prosesor 32-bit ini dapat membutuhkan 2 32 B = 4 GB, tetapi paling banyak dibutuhkan 3 GB "karena mereka 1 GB untuk alamat yang dibalik"
Itu berarti prosesor 64-bit dapat mengambil 2 64 B = 16 EB, tapi saya tidak bisa bagaimana alamat yang terkunci digunakan terbalik. jadi bisa dikatakan prosesor 64-bit membutuhkan lebih dari 1 EB. dan spesifikasi ini tidak tergantung pada OS apa yang digunakan PC atau apa modelnya.
Mengambil Intel atau AMD CPU sebagai contoh, ada beberapa batasan untuk memori fisik dan memori virtual. Orang lain telah berbicara tentang pin-out perangkat keras dan batasan motherboard, tetapi ada juga batasan internal.
Entri tabel halaman terminal dalam MMU berisi 52 bit signifikan alamat fisik dan secara teoritis dapat memetakan hingga 4096 TB RAM fisik.
MMU mengimplementasikan tabel halaman 4 level yang level atasnya terdiri dari entri 512 × 512 GB. Jadi memori virtual dibatasi hingga 256 TB.
Sejauh yang saya tahu, semua sistem operasi 64-bit menerapkan DMAP (peta langsung), yang super nyaman. Namun, karena memori virtual dibatasi hingga 256 TB, ukuran DMAP juga terbatas. Biasanya 128 TB dicadangkan untuk mode pengguna, dan 128 TB untuk kernel. Dari 128 TB untuk kernel, hingga setengahnya mungkin dicadangkan untuk DMAP. Karena kegunaan DMAP, sistem operasi biasanya akan membatasi memori fisik untuk apa yang dapat ditangani DMAP.
Jadi kebanyakan (semua?) Sistem operasi 64-bit untuk Intel / AMD yang didukung memori fisik terbatas pada sekitar 64 TB, menyisakan 64 TB untuk memori virtual kernel umum dan 128 TB untuk memori virtual pengguna.
-
Di dalam CPU, cache CPU juga memiliki batasan pada jumlah bit alamat fisik yang mereka simpan, karena setiap bit alamat tambahan memakan lebih banyak transistor ke tag cache. Batasan pin pengontrol DRAM belum tentu merupakan kata terakhir, karena memori juga dapat diatasi melalui tautan DMI.
Arsitektur CPU yang berbeda (mis. ARM, PowerPC, dll.) Akan memiliki batasan yang berbeda.