x86 dan ARM: Instruksi, Performa, Konsumsi Daya, dan Kompatibilitas

x86 dan ARM adalah keluarga arsitektur prosesor dengan set instruksi yang berbeda. Perbedaan itu secara langsung memengaruhi kompatibilitas perangkat lunak, tetapi kinerja dan penggunaan energi tergantung pada desain CPU yang sebenarnya dan beban kerja. Memahami apa yang ditentukan oleh sebuah arsitektur juga membantu Anda memilih antara unduhan x64 dan ARM64.

Apa itu arsitektur CPU? Dasar-dasar di balik x86 dan ARM

CPU (Central Processing Unit, unit pemrosesan pusat), adalah komponen yang mengeksekusi instruksi program. Membuka file, menambahkan angka, dan menghitung apa yang ditampilkan semuanya melibatkan instruksi yang ditafsirkan menurut aturan yang telah ditentukan. Arsitektur CPU menggambarkan kerangka desain ini, tetapi berguna untuk membedakan aturan yang terlihat oleh perangkat lunak dari perangkat keras yang mengimplementasikannya.

Arsitektur set instruksi versus mikroarsitektur

Arsitektur set instruksi (ISA) adalah kontrak antara perangkat lunak dan prosesor. Ini mendefinisikan perhitungan dan pergerakan data yang didukung, bagaimana instruksi dikodekan sebagai bit, dan bagaimana register digunakan. Register adalah lokasi penyimpanan kecil di dalam CPU yang menyimpan nilai yang dapat langsung digunakan oleh prosesor.

Mikroarsitektur adalah bagaimana sebuah prosesor tertentu mengimplementasikan kontrak itu dalam perangkat keras. Ini mencakup berapa banyak instruksi yang dapat dikerjakan secara bersamaan, bagaimana prosesor menjadwalkan operasi, dan bagaimana mengatur cache, yang menjaga data yang sering digunakan tetap dekat dengan prosesor. Penjelasan Arm tentang ISA membedakan operasi yang didukung dari implementasi perangkat kerasnya.

Pikirkan ISA sebagai bahasa bersama untuk memberikan perintah di dapur, dan mikroarsitektur sebagai staf dapur, permukaan kerja, dan organisasi dapur. Dua dapur dapat memahami perintah yang sama sambil menyelesaikannya dengan kecepatan berbeda. Demikian pula, dua CPU x86-64 dapat bekerja dengan performa berbeda, dan CPU ARM tidak semuanya memiliki desain internal yang sama.

Bagaimana x86, x86-64, ARM, dan ARM64 saling terkait

x86 dan ARM masing-masing menggambarkan sebuah keluarga yang berisi beberapa generasi dan ekstensi. Label x64 dan ARM64 yang sering terlihat di halaman unduhan PC mengidentifikasi lingkungan 64-bit dalam keluarga tersebut. Namun, ketika sebuah halaman unduhan mencantumkan x86 bersama x64, x86 biasanya berarti versi 32-bit.

Label Makna dan catatan
x86 Keluarga set instruksi yang berasal dari Intel 8086. Sebagai label penginstal, biasanya berarti x86 32-bit.
x86-64, x64, AMD64 Nama-nama yang digunakan untuk ekstensi 64-bit dari x86. Unduhan AMD64 juga dapat dijalankan di CPU Intel yang mendukung lingkungan yang diperlukan.
ARM Sebuah keluarga arsitektur yang didefinisikan oleh Arm. Ini mencakup konfigurasi 32-bit dan 64-bit, jadi nama saja tidak menentukan apakah lingkungannya 32-bit atau 64-bit.
AArch64, ARM64 AArch64 adalah status eksekusi 64-bit milik Arm; ARM64 adalah label distribusi perangkat lunak yang banyak digunakan untuk lingkungan tersebut. Set instruksinya disebut A64.

Deskripsi platform FreeBSD amd64 juga mengelompokkan AMD64 dan Intel 64 dengan nama x86-64 atau x64. Di sini, 64-bit merujuk pada register bilangan bulat serbaguna dan lingkungan eksekusi, bukan berarti setiap instruksi harus sepanjang 64 bit. Instruksi A64 memakai pengodean 32-bit, seperti dijelaskan dalam panduan ISA A64 dari Arm. Lingkungan 64-bit tidak membuat semua prosesor sama cepat atau mendukung kapasitas memori yang sama.

Bagaimana struktur instruksi x86 dan ARM berbeda?

Perbedaan itu lebih dari sekadar nama produsen. Bahkan saat meminta penambahan atau perpindahan data yang sama, pengkodean instruksi dan aturan register berbeda. CISC dan RISC adalah istilah umum yang digunakan untuk menggambarkan pendekatan desain di balik keluarga ini.

Apa arti CISC dan RISC

CISC (Complex Instruction Set Computer) menggambarkan pendekatan yang juga menyediakan instruksi yang mampu melakukan operasi kompleks. x86 diklasifikasikan sebagai CISC: instruksinya memiliki panjang yang bervariasi, dan beberapa instruksi perhitungan dapat menggunakan nilai di memori sebagai operand. Operand adalah nilai yang menjadi objek operasi.

RISC (Reduced Instruction Set Computer) menekankan instruksi yang relatif teratur dan perhitungan menggunakan register. ARM termasuk dalam kategori ini. Untuk aritmetika bilangan bulat A64 biasa, model yang berguna adalah memuat nilai dari memori ke dalam register, menghitung menggunakan nilai register, dan menyimpan hasilnya kembali ke memori. Organisasi dasar ini disebut arsitektur load/store.

Sebagai contoh, menambahkan satu pada sebuah angka yang disimpan di memori dapat diungkapkan dengan instruksi x86 yang menerima operand memori. Operasi A64 yang sesuai dapat dipahami sebagai kombinasi dari instruksi load, add, dan store. Ini adalah contoh konseptual: kode mesin yang benar-benar dihasilkan compiler serta waktu untuk menjalankan kode tersebut bergantung pada kode sumber dan pengaturan optimisasi. Lebih sedikit instruksi yang terlihat tidak otomatis berarti eksekusi lebih cepat.

Begitu pula, "Reduced" tidak berarti bahwa prosesor ARM modern harus memiliki jumlah instruksi total yang kecil. ARM juga memiliki ekstensi untuk operasi seperti perhitungan vektor dan kriptografi. Lihat Klasifikasi ISA Arm dan Manual pengembang perangkat lunak Intel untuk klasifikasi dan format instruksi x86 secara rinci.

Mengapa "instruksi kompleks versus sederhana" tidak menjelaskan CPU modern

Satu instruksi yang terlihat oleh sebuah program tidak selalu sesuai dengan satu operasi internal. CPU x86 berkinerja tinggi modern mendekode instruksi menjadi operasi internal yang lebih kecil yang disebut mikro-operasi (micro-op). Manual referensi optimasi Intel menjelaskan dekode instruksi dan organisasi eksekusi internal ini.

CPU ARM berkinerja tinggi juga dapat menggunakan perangkat keras canggih untuk memproses beberapa instruksi secara bersamaan dan menyesuaikan urutan eksekusinya sambil menjaga hasil yang benar. Panduan ISA Armv8-A dari Arm menyertakan contoh jalur eksekusi out-of-order. Menyebut x86 sebagai “kompleks dan lambat” dan ARM sebagai “sederhana dan cepat” dengan demikian melewatkan banyak hal yang menentukan perilaku produk modern.

Mana yang lebih baik untuk kinerja dan konsumsi daya?

Nama arsitektur saja tidak dapat menentukan pemenang kinerja atau efisiensi energi. ISA memengaruhi desain, tetapi produk akhir juga bergantung pada implementasinya, proses manufaktur, pendinginan, dan optimisasi perangkat lunak.

Desain internal dan beban kerja menentukan kinerja

Memiliki lebih banyak inti CPU menciptakan peluang untuk membagi pekerjaan, tetapi program tidak semuanya menggunakan inti dengan cara yang sama. Tugas yang membutuhkan respons cepat dari satu thread dapat memfavoritkan prosesor yang berbeda dari tugas yang mendistribusikan pekerjaan di banyak inti. Frekuensi clock (frekuensi kerja CPU) juga bukan skor kinerja tunggal untuk membandingkan desain CPU yang berbeda.

Bandingkan aplikasi yang sama, file input, dan pengaturan kualitas. Bedakan antara versi natif yang dibuat untuk CPU dengan build yang dijalankan melalui penerjemahan instruksi. Dalam tugas seperti ekspor video, prosesor grafis atau perangkat keras video khusus dapat melakukan pekerjaan substansial, sehingga hasil akhirnya tidak bisa sepenuhnya dikaitkan hanya pada set instruksi CPU.

Juga bedakan antara beban kerja singkat dan beban kerja yang berkelanjutan. Sebuah prosesor mungkin mulai dengan cepat lalu mengurangi kecepatannya karena batasan suhu atau daya. Panduan membaca tolok ukur CPU single-thread, multi-thread, dan gaming (bahasa Inggris) menjelaskan bagaimana mengevaluasi hasil yang berbeda tersebut.

Konsumsi daya dan efisiensi energi adalah ukuran yang berbeda

Daya adalah laju penggunaan energi, biasanya dinyatakan dalam watt (W). Energi adalah jumlah total yang digunakan selama suatu tugas. Untuk menentukan energi yang dibutuhkan untuk menyelesaikan suatu pekerjaan, pertimbangkan baik daya rata-rata maupun waktu eksekusi.

Sebagai contoh hipotetis, sebuah perangkat yang menggunakan rata-rata 10 W selama 60 detik mengonsumsi 600 joule (J). Perangkat lain yang menggunakan 20 W selama 20 detik untuk menyelesaikan pekerjaan yang sama mengonsumsi 400 J. Perangkat kedua menggunakan lebih banyak daya saat bekerja tetapi lebih sedikit energi per tugas yang diselesaikan. Angka-angka ini menjelaskan prinsipnya; bukan hasil pengukuran produk nyata.

Daya tahan baterai juga mencerminkan lebih dari sekadar CPU. Kapasitas baterai, kecerahan layar, teknologi layar, memori, komunikasi nirkabel, dan pekerjaan latar belakang semuanya penting. Hasil daya tahan baterai yang panjang dari satu laptop ARM tidak dapat menetapkan aturan universal untuk setiap CPU ARM dan x86. Spesifikasi daya desain termal (TDP) pabrikan tidak boleh dianggap sebagai konsumsi daya terukur dari seluruh perangkat.

Apakah komputer ARM dapat menjalankan perangkat lunak x86?

Beberapa program dapat dijalankan melalui fasilitas penerjemahan sistem operasi. Namun, kondisinya berbeda dari mengeksekusi instruksi natif CPU. Periksa versi sistem operasi serta aplikasi, driver, dan komponen yang didukung. Driver perangkat adalah perangkat lunak yang membantu sistem operasi berkomunikasi dengan dan mengendalikan perangkat keras. Driver mode-kernel berjalan di bagian inti sistem operasi.

Kode sumber yang sama dapat menghasilkan file eksekusi berbeda

Kode sumber adalah teks program yang ditulis oleh pengembang. Kompilasi mengubahnya menjadi bentuk yang dapat dijalankan oleh lingkungan target. Membangun fungsi yang sama untuk x86-64 dan ARM64 menghasilkan kode mesin yang berbeda. Penjelasan ISA Arm menggambarkan kompilasi dari bahasa tingkat tinggi menjadi kode mesin untuk ISA tertentu.

Fungsi “3 + 5” pada kalkulator memiliki tujuan yang sama di kedua sistem, tetapi bit instruksi dan penggunaan register bisa berbeda. Mengganti nama file eksekusi x86 atau mengubah ekstensinya tidak mengubahnya menjadi perangkat lunak ARM64. Bahkan membangun ulang sebuah program memerlukan pustaka dan fasilitas sistem operasi yang kompatibel.

Arsitektur CPU yang sesuai juga tidak menciptakan kompatibilitas antar sistem operasi. Aplikasi Windows ARM64 tidak otomatis berjalan di Mac berbasis ARM atau perangkat Android. Format eksekusi dan antarmuka sistem operasi juga harus sesuai.

Apa yang dapat dilakukan penerjemahan, dan di mana kompatibilitas berhenti

Emulasi dan translasi biner membantu menjalankan program yang dibuat untuk set instruksi berbeda. Teknologi ini dapat menafsirkan atau menerjemahkan instruksi serta memakai kembali kode yang sudah diterjemahkan. Menurut dokumentasi Microsoft tentang emulasi pada Windows on Arm, Windows 11 on Arm mendukung emulasi aplikasi x86 dan x64, sedangkan Windows 10 on Arm hanya mendukung aplikasi x86.

Emulasi aplikasi tidak menggantikan kebutuhan akan driver mode-kernel yang kompatibel. Pada Windows on Arm, driver tersebut harus tersedia untuk ARM64; FAQ PC Arm Microsoft menjelaskan persyaratan driver perangkat. Printer, perangkat audio, VPN, alat keamanan, dan game dengan komponen anti-cheat oleh karena itu memerlukan pemeriksaan di luar executable utama. Membuka jendela aplikasi bukanlah bukti bahwa setiap fitur yang dibutuhkan berfungsi.

Di Mac, Rosetta menerjemahkan aplikasi Mac berbasis Intel untuk Apple silicon. Panduan dukungan Rosetta Apple membedakan ketersediaan sampai dengan macOS 27 dari pembatasan yang dimulai dengan macOS 28, ketika fungsi Rosetta dibatasi untuk beberapa game lama yang tidak lagi dipelihara yang bergantung pada kerangka kerja berbasis Intel. Rosetta tidak boleh dianggap sebagai jaminan kompatibilitas permanen untuk setiap aplikasi Intel.

Versi ARM64 natif dapat menghindari penerjemahan instruksi, tetapi kinerja dan keandalan aktual masih bergantung pada implementasi aplikasi. Tidak ada penalti terjemahan tunggal yang berlaku untuk setiap program, dan menggunakan versi natif tidak menjamin bahwa versi tertentu akan selalu lebih cepat.

Haruskah Anda mengunduh perangkat lunak x64 atau ARM64?

Identifikasi sistem operasi dan lingkungan CPU Anda terlebih dahulu, kemudian pilih unduhan yang mendukung kombinasi tersebut. Nama produsen atau kata-kata “64-bit” saja tidak cukup.

Periksa CPU dan lingkungan sistem operasi Anda

  1. Windows: Buka Pengaturan → Sistem → Tentang dan lihat Jenis sistem di bawah Spesifikasi perangkat. Untuk prosesor berbasis x64 dengan sistem operasi 64-bit, cari Windows x64. Untuk prosesor berbasis Arm, pertama periksa build Windows ARM64 yang didukung. Sistem operasi 32-bit tidak dapat menjalankan aplikasi x64 meskipun CPU-nya mendukung operasi 64-bit. Panduan Microsoft untuk mengidentifikasi PC ARM menggunakan jalur pengaturan ini.
  2. Mac: Buka menu Apple → Tentang Mac Ini. Mac dengan Apple silicon menampilkan Chip; Mac dengan Intel menampilkan Processor. Untuk Apple silicon, pilih versi Apple silicon atau Universal yang mendukung Mac Anda. Aplikasi Universal mencakup kode untuk Intel dan Apple silicon. Lihat panduan identifikasi chip Mac dari Apple untuk pemeriksaan perangkat keras.
  3. Linux: Jalankan perintah berikut di terminal untuk menanyakan tipe mesin lingkungan saat ini. Ini adalah kueri GNU Coreutils hanya-baca: tidak mengubah pengaturan apa pun dan tidak memerlukan operasi pembatalan.
uname -m

Dalam lingkungan Linux yang khas, x86_64 mengidentifikasi x86-64 dan aarch64 mengidentifikasi Arm 64-bit. Ini adalah output yang umum, bukan satu-satunya nilai yang mungkin pada semua sistem. Manajer paket mungkin menggunakan label yang berbeda, seperti amd64 atau arm64. Di dalam mesin virtual atau lingkungan yang diemulasikan, interpretasikan hasilnya sebagai deskripsi lingkungan eksekusi tersebut. Manual uname GNU mendefinisikan -m sebagai mencetak nama perangkat keras mesin.

Lingkungan Anda Apa yang harus dicari dalam unduhan
Windows, CPU x64, OS 64-bit Windows x64 atau x86-64. AMD64 merujuk pada keluarga arsitektur yang sama.
Windows, CPU Arm Windows ARM64. Jika tidak tersedia, periksa dukungan emulasi x86 atau x64 untuk versi Windows dan aplikasi Anda.
Mac Apple silicon Apple silicon atau Universal untuk macOS, daripada penginstal Windows ARM64.
Intel Mac Aplikasi Intel atau Universal yang mendukung versi macOS Anda.
Linux, x86_64 atau aarch64 Paket distribusi amd64/x86_64 atau arm64/aarch64, masing-masing. Distribusi, versi, dan dependensi juga harus cocok.

Periksa aplikasi, plug-in, dan driver

Setelah Anda menemukan penginstal, periksa fitur yang benar-benar Anda butuhkan. Misalnya, aplikasi musik ARM64 mungkin berjalan sementara plug-in instrumen atau driver perangkat audio yang dibutuhkan tetap tidak didukung. Hal itu akan menyulitkan untuk melanjutkan proyek yang ada tanpa perubahan. Ini adalah contoh kombinasi yang perlu diverifikasi, bukan klaim tentang produk tertentu yang gagal.

  1. Di halaman unduhan resmi, periksa sistem operasi, versi minimum yang didukung, dan arsitektur secara bersamaan. Jika pengembang menyediakan penginstal otomatis, ikuti panduan resminya.
  2. Periksa arsitektur dan versi aplikasi host yang didukung oleh plug-in, ekstensi, dan codec yang penting. Komponen yang dimuat ke dalam proses yang sama umumnya memerlukan arsitektur yang cocok; jika terdapat fasilitas bridging terpisah, gunakan kombinasi yang didukung oleh pengembang.
  3. Verifikasi driver untuk periferal dan fitur sistem. Pada Windows on Arm, periksa dukungan emulasi aplikasi dan ketersediaan driver ARM64 secara terpisah.
  4. Setelah instalasi, uji pekerjaan yang dibutuhkan: membuka dan menyimpan file, mengekspor, menggunakan plug-in, dan menghubungkan perangkat. Jika suatu kombinasi tidak didukung, gunakan versi yang didukung secara resmi atau cadangkan data penting sebelum mengikuti prosedur penghapusan resmi.

x64 dan ARM64 adalah label lingkungan target, bukan peringkat kinerja. Menyamakan sistem operasi dan arsitektur terlebih dahulu, kemudian memeriksa aplikasi dan komponen yang Anda gunakan, membantu mencegah unduhan yang salah dan asumsi kompatibilitas yang keliru.