32-bit dan 64-bit mengacu pada
arsitektur processor.
Processor 32-bit artinya register2 nya
(unit penyimpanan data terkecil di dalamnya) berukuran 32 bit.
Processor 64-bit artinya register2 nya berukuran 64 bit. ( Register2 ini lah yang digunakan
untuk melakukan macam2 operasi. Misalnya c = a + b, maka register
"eax" akan me-load nilai dari "a" (di memory),
kemudian pada register "eax" ditambahkan nilai dari "b",
lalu "eax" ditulis ke memory pada posisi variabel "c"
)
Pengaruh ukuran register terhadap
kecepatan:
Setiap proses baca/tulis dari memory
(disebut dengan load/store) membaca/menulis informasi sebesar ukuran
register; maka register 64-bit potensial membaca/menulis memory 2x
kecepatan register 32-bit.
Tapi ini teoretis 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
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).
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.
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 ybs, maka biasanya dataset
nya hanya sebesar 1-2 GiB saja.
Artinya, sebuah database yang
berukuran, katakanlah, 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.
-----
Agar supaya kita dapat memperoleh
keunggulan sistem 64-bit, maka baik software dan hardware harus
mendukung.
Software 32-bit jalan di hardware
64-bit tidak bisa memanfaatkan kelebihan arsitektur 64-bit. (Software
hanya akan menggunakan 32-bit saja dari 64-bit yang tersedia; 32-bit
sisanya tidak dikenali) ==> disebut mode 32-bit.
Sebaliknya, software 64-bit tidak bisa
jalan di hardware 32-bit karena kebutuhannya akan lebar register
64-bit tidak bisa dipenuhi.
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.
-----
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, masalaha corporate pride...)
-----
Saya tidak 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
kirim/terima data via LAN, kirim gambar ke Monitor via VGA Card,
dll.
Nah, semua tindakan I/O membutuhkan
buffer. 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 'rendah' (Bottom
Memory = memory dengan alamat kecil), maka biasanya pemetaan buffer
ini dilakukan di memory 'tinggi' (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 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.
0 comments:
Posting Komentar