AArch64 nedir? Bu CPU mimarisi hakkında bilmeniz gerekenler

Muhtemelen içinde AArch64 işlemci bulunan bir cihaz kullanmış olsanız da bunun ne anlama geldiğini bilmiyor olabilirsiniz. İşte bilmeniz gerekenler.

Birçok CPU var mimariler orada, en büyükleri olmak üzere x86 Ve KOL. Bunu söyledikten sonra, AArch64 muhtemelen radarınızın altından geçti. Milyonlarca cihazda bulunmasına rağmen, oldukça iyi okunan teknoloji meraklıları bile bunu hiç duymamış olabilir. Mesele şu ki, AArch64 çok kafa karıştırıcı bir teknik terim olduğu kadar gizemli değil. İşte AArch64 hakkında bilmeniz gerekenler.

AArch64, ARM64'tür, bir nevi

Kaynak: Kol

Kısaca AArch64, Armv8-A güncellemesiyle tanıtılan Arm'ın 64-bit komut seti mimarisinin (ISA) resmi adıdır. Neredeyse her zaman AArch64'e atıfta bulunur. ARM64'ün neden genellikle AArch64 yerine kullanıldığı tam olarak net değil, ancak karışıklığın bir kısmı iki yerden kaynaklanıyor gibi görünüyor. Bunun bir nedeni, x86'nın 64-bit uzantısının x86-64 olmasıdır, dolayısıyla doğal olarak ARM'nin 64-bit uzantısı ARM64 olmalıdır. Apple kesinlikle öyle düşünüyor gibiydi ve 2014 yılına kadar AArch64'ü ARM64 olarak adlandırdı. Çoğu insan için "AArch64, ARM64'tür" oldukça tatmin edici bir açıklamadır.

Gerçekten teknik olmak istiyorsanız, AArch64 ISA değil, daha çok ISA'dır. yürütme durumu bu, ARM CPU'ların ilk olarak Armv8-A mimarisiyle tanıtılan ARMv8 ISA'nın A64 komut setini kullanmasına (ve yalnızca kullanmasına) izin verir. Bu kafa karıştırıcı geliyorsa, çünkü öyle. Bilgisayar mimarisine aşina olsanız bile, bunu anlamak zor olabilir, bu yüzden bunu adım adım anlatacağım.

Yani teknik olarak, AArch64 bir devlettir, bir ISA değildir, ancak kimsenin umurunda değildir, Arm'ın kendisi bile.

ARM, ilgili ISA'ların bir ailesidir ve farklı ISA'lar genellikle uyumsuzluk anlamına gelse de, bu kesinlikle doğru değildir. ARM ISA'nın farklı sürümleri ARMv1, ARMv2 vb. olarak adlandırılır, ancak bu ISA'lar esas olarak alt ISA'ları içerir: A-profili, M-profili ve R-profili. Bu alt ISA'lar arasındaki temel fark, her birinin kullandığı minimum talimat miktarıdır; en çok A profili ve en az M profili kullanılır. Böylece, ARM ISA, ARMv8 gibi ayrı sürümlere bölünür ve daha sonra bu sürümler, ISA'nın farklı uygulamalarına bölünür.

Armv8-A, iki yeni şey ekleyen ARMv8 ISA'nın ilk A profili uygulamasıdır: AArch32 ve AArch64. Bunlar, durumlar veya modlar olarak adlandırılır ve ARM CPU'ların farklı komut setlerine erişmesine izin verir, 32 bit A32 ve T32 komutlarını içeren AArch32 ve 64 bit A64 içeren AArch64 ile talimatlar. Örneğin, bir işlemci şu anda AArch64 durumundaysa ve A32 komutlarını kullanmak istiyorsa durumunu AArch32 olarak değiştirmelidir. Ek olarak, AArch64 modunda hem 32 bit hem de 64 bit kayıtlara erişilebilirken, AArch32 modunda yalnızca 32 bit kayıtlar kullanılabilir. Tüm bunların en kafa karıştırıcı yanı, tüm bu şeylere değişken bir şekilde ISA'lar olarak atıfta bulunulması ve hatta Arm'ın (ARM ISA'yı geliştiren şirket) bundan suçlu olmasıdır.

Ancak süper teknik olacaksak, gerçekte böyledir: ARM ISA'nın sekizinci sürümü olan ARMv8, ilk olarak AArch32 ve AArch64 adlı iki durumu içeren Armv8-A ile uygulandı. Bir CPU, AArch64 durumundayken, 64-bit A64 komutlarını yürütebilir. Yani teknik olarak, AArch64 bir devlettir, bir ISA değildir, ancak kimsenin umurunda değildir, Arm'ın kendisi bile.

ARM için hem 32 bit hem de 64 bit neden önemlidir?

Yani AArch64 aslında oldukça karmaşık ve sadece 32-bit ve 64-bit komutları kullanmak için durum değiştirmek zorunda kalmak külfetli görünüyor. Mesele şu ki, hem 32-bit hem de 64-bit desteği geçilemeyecek kadar önemliydi, bu yüzden bu şekilde olmak zorunda. Gerçekten de iki önemli sorun vardı: eski 32-bit yazılımları destekleme ihtiyacı ve modern, yüksek performanslı bilgi işlem peşinde koşma.

Arm, ilk 64-bit ISA'sında 32-bit yazılım için yerel desteği içermeseydi, bu bir felaket olabilirdi çünkü basitçe söylemek gerekirse, kimse kodu yeniden yazmak istemez. ARMv8, herkesin sıfırdan yeni yazılım yazmasını gerektirseydi, ISA'yı kimsenin üretmediği veya satın almadığı bir ölüm sarmalına sokabilirdi. Yazılım eksikliği nedeniyle ARMv8 cihazları ve ardından geliştiriciler, kullanıcı eksikliği nedeniyle uygulama yapmazlar, Arm onu ​​çağırmak zorunda kalana kadar sonsuza kadar çıkar. Bu nedenle, 32 bit desteği pazarlık konusu değildi.

Öte yandan, 64 bit bilgi işlemi uygulamamak da bir seçenek değildi. x86'nın arkasındaki şirketler olan Intel ve AMD, 2000'li yılların başından beri 64-bit mimarileri kullanıyorlardı. inanılmaz CPU'lar, ancak o sırada telefonların ihtiyacı olmadığı için 64 bit ARM yongaları için çağrı yapılmadı. Ancak akıllı telefonun icadı her şeyi değiştirdi ve herkes telefonlarının daha fazla şey yapmasını istedi. 64-bit desteği, akıllı telefonların daha güçlü olmasına yardımcı olmakla kalmaz, aynı zamanda kapıyı da açar. dizüstü bilgisayarlar gibi x86'nın geleneksel olarak hakim olduğu pazarlar için ARM yongaları üreten şirketler için sunucular.

Temel olarak, tüm bu adlandırma karmaşası, Arm'ın değişen önceliklere yanıt olarak teknolojisini modernize etme ihtiyacından kaynaklandı. Belki Arm'ın 64 bit desteği bu şekilde uygulamasına gerek yoktu, ama oldu ve AArch64 bu şekilde ortaya çıktı. AArch64 bir ISA olmasa da, çoğu insan terimi iyi ya da kötü olarak bu şekilde kullanır.