Perbedaan Singkat antar sistem 32-bit dan 64-bit :
32-bit dan 64-bit mengacu pada arsitektur processor.
Processor 32-bit artinya register-registernya (unit penyimpanan data terkecil di dalamnya) berukuran 32 bit.
Processor 64-bit artinya register-registernya berukuran 64 bit.
Pengaruh ukuran register terhadap kecepatan:
Setiap proses read dan write dari memory (disebut dengan load/store) membaca dan menulis informasi sebesar ukuran register; maka register 64-bit secara teori berpotensi memiliki 2x kecepatan yang lebih cepat dari register 32-bit.
Tapi ini hanya teori saja, karena kenyataannya prosesor juga menghabiskan waktu untuk melakukan hal-hal lain selain load/store, seperti pemrosesan matematis, vector-processing, dll.
Tapi ini hanya teori saja, karena kenyataannya prosesor juga menghabiskan waktu untuk melakukan hal-hal lain selain load/store, seperti pemrosesan matematis, vector-processing, dll.
Pengaruh ukuran register terhadap presisi:
Secara simplistik: Makin panjang suatu register, makin banyak angka di belakang koma yang bisa dihitung secara akurat.
Sebagai gambaran: Misalkan resolusi bilangan real pada 32-bit adalah 0.0001, maka resolusi bilangan real pada 64-bit bisa mencapai 0.0000001 (jadi jauh lebih presisi).
Sebagai gambaran: Misalkan resolusi bilangan real pada 32-bit adalah 0.0001, maka resolusi bilangan real pada 64-bit bisa mencapai 0.0000001 (jadi jauh lebih presisi).
Pengaruh ukuran register terhadap ukuran memori:
Salah satu dari sekian banyak register adalah "addressing register". Addressing register (atau registers, kalau lebih dari satu) adalah register yang memiliki fungsi 'menunjuk' ke alamat tertentu dalam memory. Jangkauan (range) penunjukan ini disebut dengan istilah memory space (ruang memory).
Pada arsitektur 32-bit, addressing registers mampu 'menunjuk' posisi memory dari 0 s/d 4'294'967'295 (4 GiB - 1). Inilah yang mengakibatkan muncul "batasan 4 GiB" pada sistem berbasis arsitektur 32-bit.
Pada arsitektur 64-bit, addressing registers mampu 'menunjuk' posisi memory dari 0 s/d 18'446'744'073'709'551'615 (16 EiB - 1). Seperti kita lihat, tidak ada lagi 'batasan 4 GiB' pada sistem berbasis arsitektur 64-bit.
Pada arsitektur 32-bit, addressing registers mampu 'menunjuk' posisi memory dari 0 s/d 4'294'967'295 (4 GiB - 1). Inilah yang mengakibatkan muncul "batasan 4 GiB" pada sistem berbasis arsitektur 32-bit.
Pada arsitektur 64-bit, addressing registers mampu 'menunjuk' posisi memory dari 0 s/d 18'446'744'073'709'551'615 (16 EiB - 1). Seperti kita lihat, tidak ada lagi 'batasan 4 GiB' pada sistem berbasis arsitektur 64-bit.
Pengaruh ukuran register terhadap dataset:
"Dataset" adalah istilah untuk 'seperangkat data yang di-load ke dalam memory untuk diproses dan (optionally) ditulis kembali ke hard disk'.
Sistem 32-bit terbatas pada dataset sebesar (2^32)-1, atau (4 GiB - 1). Mengingat sebagian memory harus digunakan untuk OS dan program database tersebut, maka biasanya dataset nya hanya sebesar 1-2 GiB saja.
Artinya, sebuah database yang berukuran 20 GiB (tidak asing dalam konteks perusahaan besar), harus diproses 10~20x.
Sistem 64-bit tidak memiliki batasan di atas. Dia dapat me-load dataset sebesar ketersediaan memory. Artinya, database 20 GiB di atas dapat di-load seluruhnya (asal memory mencukupi), diproses dalam sekali jalan saja.
Supaya kita dapat memperoleh keunggulan sistem 64-bit, maka baik software dan hardware-nya pun harus mendukung.
Software 32-bit bisa jalan di hardware 64-bit tetapi tidak bisa memanfaatkan kelebihan arsitektur 64-bit. (Software hanya akan menggunakan 32-bit saja dari 64-bit yang tersedia; 32-bit sisanya tidak dikenali) ini disebut mode 32-bit.
Sebaliknya, software 64-bit tidak bisa jalan di hardware 32-bit karena kebutuhannya dan lebar register 64-bit yang tidak dapat terpenuhi.
Sistem 32-bit terbatas pada dataset sebesar (2^32)-1, atau (4 GiB - 1). Mengingat sebagian memory harus digunakan untuk OS dan program database tersebut, maka biasanya dataset nya hanya sebesar 1-2 GiB saja.
Artinya, sebuah database yang berukuran 20 GiB (tidak asing dalam konteks perusahaan besar), harus diproses 10~20x.
Sistem 64-bit tidak memiliki batasan di atas. Dia dapat me-load dataset sebesar ketersediaan memory. Artinya, database 20 GiB di atas dapat di-load seluruhnya (asal memory mencukupi), diproses dalam sekali jalan saja.
Supaya kita dapat memperoleh keunggulan sistem 64-bit, maka baik software dan hardware-nya pun harus mendukung.
Software 32-bit bisa jalan di hardware 64-bit tetapi tidak bisa memanfaatkan kelebihan arsitektur 64-bit. (Software hanya akan menggunakan 32-bit saja dari 64-bit yang tersedia; 32-bit sisanya tidak dikenali) ini disebut mode 32-bit.
Sebaliknya, software 64-bit tidak bisa jalan di hardware 32-bit karena kebutuhannya dan lebar register 64-bit yang tidak dapat terpenuhi.
Windows XP 32-bit dan Windows Vista 32-bit adalah 2 sistem operasi yang masih beroperasi di mode 32-bit.
Windows XP 64-bit dan Windows Vista 64-bit adalah 2 sistem operasi yang mampu beroperasi di mode 64-bit.
Windows XP 64-bit dan Windows Vista 64-bit adalah 2 sistem operasi yang mampu beroperasi di mode 64-bit.
Pembahasan :
AMD64 adalah terobosan (breakthrough) AMD dalam dunia processor x86.
Dahulu, s/d prosesor Pentium 3, Intel bersikukuh menggunakan hanya arsitektur 32-bit pada processor x86. Intel menghabiskan uang jutaan dollar untuk mengembangkan arsitektur 64-bit yang samasekali baru (artinya: Tidak kompatibel dengan dunia x86) dalam bentuk Intel ITANIUM.
AMD kemudian mengembangkan instruction set (dan arsitektur) dari processor x86 yang dibuatnya (AthlonXP) sehingga lahirlah Athlon64: Processor x86 yang memiliki arsitektur 64-bit. Instruction set yang diperluas ini disebut AMD64 oleh AMD. Intel terpaksa melakukan cross-license, dan menggunakan instruction set tersebut juga (tapi dengan nama EMT64, bukan AMD64. Biasalah, masalah corporate pride).
Begitu juga dengan Macintosh walaupun saya tidak begitu yakin dengan Mac OS X. Tetapi Linux memiliki versi 32-bit dan versi 64-bit. Contoh, Ubuntu yang ada di ftp://dl2.foss-id.web.id/iso/ubuntu/releases/hardy/
AMD kemudian mengembangkan instruction set (dan arsitektur) dari processor x86 yang dibuatnya (AthlonXP) sehingga lahirlah Athlon64: Processor x86 yang memiliki arsitektur 64-bit. Instruction set yang diperluas ini disebut AMD64 oleh AMD. Intel terpaksa melakukan cross-license, dan menggunakan instruction set tersebut juga (tapi dengan nama EMT64, bukan AMD64. Biasalah, masalah corporate pride).
Begitu juga dengan Macintosh walaupun saya tidak begitu yakin dengan Mac OS X. Tetapi Linux memiliki versi 32-bit dan versi 64-bit. Contoh, Ubuntu yang ada di ftp://dl2.foss-id.web.id/iso/ubuntu/releases/hardy/
Ada versi AMD64 (64-bit) dan ada versi i386 (32-bit)
Kelebihan dan kekurangan?
Kita sudah melihat kelebihan dari arsitektur 64-bit.
Sekarang kekurangannya :
Banyak Software 32-bit yang tidak bisa jalan di arsitektur 64-bit, khususnya driver.
Mengapa bisa begitu?
Komputer adalah benda yang sangat kompleks. Untuk bisa berguna bagi manusia, komputer perlu melakukan apa yang disebut "Input/Output" (I/O). Contoh I/O adalah mengirim / menerima data via LAN, kirim gambar ke Monitor via VGA Card, dll.
Nah, semua tindakan I/O membutuhkan buffer (waktu lama load). Sebagai contoh, kita kenal "memory VGA" pada VGA Card; itu sebetulnya adalah buffer untuk membantu VGA Card menampilkan gambar di monitor.
Masalahnya, agar I/O bisa berlangsung dengan mulus dan cepat, 'buffer' ini perlu mendapatkan alamat. Dan alamat ini di ambil dari memory space. Hal ini terjadi meskipun komponen pelaksana I/O ini memiliki buffernya sendiri (contoh: VGA Card terbaru dari nVidia / ATI biasanya punya minimal 256 MiB RAM pada card nya). Tetap saja memori pada card tersebut akan dipetakan ke memory space.
Agar tidak bentrok dengan Sistem Operasi, yang biasanya di load ke dalam memory 'Bottom' (Bottom Memory = memory dengan alamat kecil), maka biasanya pemetaan buffer ini dilakukan di memory 'Top' (Top Memory = memory dengan alamat besar, atau dihitung mundur dari alamat memori terbesar (2^32)-1)
Nah, semua tindakan I/O membutuhkan buffer (waktu lama load). Sebagai contoh, kita kenal "memory VGA" pada VGA Card; itu sebetulnya adalah buffer untuk membantu VGA Card menampilkan gambar di monitor.
Masalahnya, agar I/O bisa berlangsung dengan mulus dan cepat, 'buffer' ini perlu mendapatkan alamat. Dan alamat ini di ambil dari memory space. Hal ini terjadi meskipun komponen pelaksana I/O ini memiliki buffernya sendiri (contoh: VGA Card terbaru dari nVidia / ATI biasanya punya minimal 256 MiB RAM pada card nya). Tetap saja memori pada card tersebut akan dipetakan ke memory space.
Agar tidak bentrok dengan Sistem Operasi, yang biasanya di load ke dalam memory 'Bottom' (Bottom Memory = memory dengan alamat kecil), maka biasanya pemetaan buffer ini dilakukan di memory 'Top' (Top Memory = memory dengan alamat besar, atau dihitung mundur dari alamat memori terbesar (2^32)-1)
Catatan :
Ini juga alasan yang menyebabkan RAM komputer kalau terpasang 4 GiB hanya akan bisa dipakai Max 3,25 GiB (atau kalau untung 3,5 GiB), ada yang 'hilang' karena 'tertutupi' oleh buffer dari komponen I/O.
Nah, pada arsitektur 64-bit, hal yang sama pun dilakukan: Buffer untuk I/O dipetakan ke Top Memory. Masalahnya, Top Memory pada arsitektur 64-bit jelas terletak pada posisi yang berbeda dengan Top Memory pada arsitektur 32-bit.
Driver adalah korban yang paling jelas; mereka berusaha mengakses Top Memory 32-bit, padahal lokasi buffer tidak di situ. Akibatnya: Crash. Software2 lain yang juga men-coba coba mengakses Top Memory secara langsung akan mengalami crash juga.
Lucunya, banyak game 32-bit yang malah jalan dengan tanpa masalah di sistem 64-bit; hal ini karena mereka tidak berusaha mengakses Top Memory secara langsung, melainkan meminta bantuan Microsoft DirectX Layer untuk mengakses fitur dari sebuah VGA Card.
Nah, pada arsitektur 64-bit, hal yang sama pun dilakukan: Buffer untuk I/O dipetakan ke Top Memory. Masalahnya, Top Memory pada arsitektur 64-bit jelas terletak pada posisi yang berbeda dengan Top Memory pada arsitektur 32-bit.
Driver adalah korban yang paling jelas; mereka berusaha mengakses Top Memory 32-bit, padahal lokasi buffer tidak di situ. Akibatnya: Crash. Software2 lain yang juga men-coba coba mengakses Top Memory secara langsung akan mengalami crash juga.
Lucunya, banyak game 32-bit yang malah jalan dengan tanpa masalah di sistem 64-bit; hal ini karena mereka tidak berusaha mengakses Top Memory secara langsung, melainkan meminta bantuan Microsoft DirectX Layer untuk mengakses fitur dari sebuah VGA Card.