Apa itu AArch64? Apa yang perlu Anda ketahui tentang arsitektur CPU ini

click fraud protection

Meskipun Anda mungkin pernah menggunakan perangkat dengan prosesor AArch64 di dalamnya, Anda mungkin tidak tahu artinya. Inilah yang perlu Anda ketahui.

Ada banyak CPU ilmu bangunan di luar sana, dengan yang terbesar sedang x86 Dan LENGAN. Karena itu, AArch64 mungkin terbang di bawah radar Anda. Bahkan penggemar teknologi yang cukup banyak membaca mungkin belum pernah mendengarnya, meskipun faktanya ada di jutaan perangkat. Nah, masalahnya adalah AArch64 tidak terlalu misterius karena ini adalah istilah teknis yang sangat membingungkan. Inilah yang perlu Anda ketahui tentang AArch64.

AArch64 adalah ARM64, semacam itu

Sumber: Lengan

Singkatnya, AArch64 adalah nama resmi untuk arsitektur set instruksi (ISA) 64-bit Arm yang diperkenalkan dengan pembaruan Armv8-A. Itu hampir selalu mengacu pada AArch64. Tidak jelas persis mengapa ARM64 sering digunakan sebagai pengganti AArch64, tetapi sebagian dari kebingungan tampaknya berasal dari dua tempat. Sebagian karena ekstensi 64-bit x86 adalah x86-64, jadi ekstensi 64-bit ARM seharusnya adalah ARM64. Apple tampaknya berpikir demikian dan menyebut AArch64 sebagai ARM64 hingga 2014. Bagi kebanyakan orang, "AArch64 is ARM64" adalah penjelasan yang sangat memuaskan.

Jika Anda ingin benar-benar teknis, AArch64 bukanlah ISA, melainkan keadaan eksekusi yang memungkinkan CPU ARM untuk menggunakan (dan hanya menggunakan) set instruksi A64 dari ISA ARMv8, yang pertama kali diperkenalkan dengan arsitektur Armv8-A. Jika ini terdengar membingungkan, itu karena memang begitu. Bahkan jika Anda sudah familiar dengan arsitektur komputer, ini bisa sulit untuk dipahami, jadi saya akan menjelaskannya langkah demi langkah.

Jadi secara teknis, AArch64 adalah negara bagian, bukan ISA, tetapi tidak ada yang peduli, bahkan Arm itu sendiri.

ARM adalah keluarga ISA terkait, dan meskipun ISA yang berbeda biasanya menyiratkan ketidakcocokan, itu tidak sepenuhnya benar. Versi berbeda dari ARM ISA disebut ARMv1, ARMv2, dan seterusnya, tetapi ISA ini pada dasarnya berisi sub-ISA: profil-A, profil-M, dan profil-R. Perbedaan mendasar antara sub-ISA ini adalah jumlah minimum instruksi yang digunakan masing-masing, dengan profil-A paling banyak digunakan dan profil-M paling sedikit. Jadi, ARM ISA dibagi menjadi versi individual seperti ARMv8, dan kemudian versi tersebut dibagi lagi menjadi implementasi ISA yang berbeda.

Armv8-A adalah implementasi profil-A awal dari ARMv8 ISA, yang menambahkan dua hal baru: AArch32 dan AArch64. Ini disebut sebagai status atau mode, dan memungkinkan CPU ARM untuk mengakses set instruksi yang berbeda, dengan AArch32 berisi instruksi A32 dan T32 32-bit, dan AArch64 berisi A64 64-bit instruksi. Misalnya, jika prosesor saat ini berada dalam status AArch64 dan ingin menggunakan instruksi A32, prosesor tersebut harus mengubah statusnya menjadi AArch32. Selain itu, dalam mode AArch64, register 32-bit dan 64-bit dapat diakses, sedangkan dalam mode AArch32 hanya register 32-bit yang dapat digunakan. Bagian yang paling membingungkan dari semua ini adalah bahwa semua hal ini secara bervariasi disebut sebagai ISA dan bahkan Arm (perusahaan yang mengembangkan ARM ISA) bersalah atas hal ini.

Tetapi jika kita super teknis, beginilah sebenarnya: versi kedelapan ARM ISA, ARMv8, pertama kali diimplementasikan dengan Armv8-A, yang berisi dua status yang disebut AArch32 dan AArch64. Saat CPU dalam status AArch64, CPU dapat mengeksekusi instruksi A64 64-bit. Jadi secara teknis, AArch64 adalah negara bagian, bukan ISA, tetapi tidak ada yang peduli, bahkan Arm itu sendiri.

Mengapa 32-bit dan 64-bit penting untuk ARM

Jadi AArch64 sebenarnya cukup rumit, dan harus berpindah status hanya untuk menggunakan instruksi 32-bit dan 64-bit tampaknya tidak praktis. Masalahnya, dukungan untuk 32-bit dan 64-bit terlalu penting untuk dilewatkan, jadi harus seperti ini. Itu benar-benar bermuara pada dua masalah utama: perlu mendukung perangkat lunak 32-bit lama, dan mengejar komputasi modern berkinerja tinggi.

Jika Arm tidak menyertakan dukungan asli untuk perangkat lunak 32-bit dalam ISA 64-bit pertamanya, itu bisa menjadi bencana karena, sederhananya, tidak ada yang mau menulis ulang kode. Jika ARMv8 mengharuskan semua orang untuk menulis perangkat lunak baru dari awal, itu bisa membuat ISA menjadi spiral kematian, di mana tidak ada yang membuat atau membeli Perangkat ARMv8 karena kurangnya perangkat lunak, dan kemudian pengembang tidak membuat aplikasi karena kurangnya pengguna, tanpa batas hingga Arm harus memanggilnya seri. Jadi, dukungan 32-bit tidak dapat dinegosiasikan.

Di sisi lain, tidak menerapkan komputasi 64-bit juga bukan pilihan. Intel dan AMD, perusahaan di balik x86, telah menggunakan arsitektur 64-bit sejak awal 2000-an untuk CPU yang luar biasa, meskipun pada saat itu tidak ada panggilan untuk chip ARM 64-bit karena ponsel tidak membutuhkannya. Tetapi penemuan smartphone mengubah segalanya, dan semua orang ingin ponsel mereka melakukan lebih banyak hal. Dukungan 64-bit tidak hanya membantu smartphone menjadi lebih kuat, tetapi juga membuka pintu bagi perusahaan untuk membuat chip ARM untuk pasar di mana x86 secara tradisional mendominasi, seperti laptop dan server.

Pada dasarnya, seluruh kebingungan penamaan ini muncul dari kebutuhan Arm untuk memodernisasi teknologinya sebagai tanggapan atas perubahan prioritas. Mungkin Arm tidak perlu mengimplementasikan dukungan 64-bit dengan cara ini, tetapi memang demikian, dan begitulah AArch64 muncul. Meskipun AArch64 bukan ISA, begitulah kebanyakan orang menggunakan istilah tersebut, baik atau buruk.