14 puan yazan xguru 2023-03-14 | 3 yorum | WhatsApp'ta paylaş

Arm ekosistemine yeni girenler için terim özeti

  • Arm mimarisi, basit adresleme modlarına sahip bir RISC ürün ailesidir
  • Arm Limited, Arm mimarisini yöneten Birleşik Krallık merkezli şirkettir
  • ARM, Acorn RISC Machine adından Advanced RISC Machines adına evrilmiştir
  • Arm ARM (Architecture Reference Manual), Arm için programlama kılavuzudur
  • Armv9, mimari ailesindeki en güncel sürümdür (yazının yazıldığı sırada). SIMD vektörleri (SVE) ve matris işlemleri (SME/SME2) gibi eklemeler getirir
  • Armv9.4-A, Armv9 için en yeni genişletme paketidir. Bu genişletmeler Arm ARM içinde belgelenmiştir. Bazı genişletmeler ilk sunulduklarında isteğe bağlıdır, ancak gelecekteki sürümlerde zorunlu hale gelmeleri planlanmaktadır
  • Armv9.4-A içindeki A, "Application Profile" anlamına gelir. MMU üzerinden sanal bellek desteği sunar ve telefonlar, dizüstü bilgisayarlar, sunucular gibi tüm Arm sistemlerinde görülebilir.
    Bunun yanında gerçek zamanlı sistemler için "R" ve MMU’suz mikrodenetleyiciler için "M" de vardır.
    Bu üç mimari profil de "A" "R" "M" olarak anılır
  • AArch64, ARMv8 ile tanıtılan bir "execution state"tir. 64b register desteği sunar (31 genel amaçlı register, özel 64b stack pointer, 64b program counter, zero-value pseudo register)
    Bununla birlikte ARMv7’de kullanılan 32b özellikler AArch32 olarak adlandırılmıştır
  • İlginç biçimde Arm ARM içinde ARM64 teriminden bahsedilmez (Apple, Microsoft ve Linus Torvalds ise bunu tercih eder)
    Bu adın nihayetinde bir anlamı vardır; arm64 Linux çekirdeği, kullanıcı alanı kodunu AArch64 veya AArch32 execution state içinde çalıştırabilir, ancak çekirdeğin kendisi yalnızca AArch64’tür
  • A64, AArch64 ile tanıtılan komut setidir. Pratikte AArch64’ün desteklediği tek komut setidir. AArch64 register’ları 64b olsa da komutların kendisi hâlâ 32b’dir (sabit genişlik)
    A32 eski ISA’yı ifade eder. Bu da 32b sabit genişliklidir. T32 ise Armv8 öncesinde kullanılan komut setidir ve 32b ile 16b Thumb2’yi ifade eder
  • A64 ile karıştırılmaması gereken bir başka şey de çekirdeği ifade etmek için kullanılan "A78" adıdır; bu, Cortex-A78’dir.
    Arm yalnızca Arm mimarisini değil, mikro mimari dediğimiz mimari gerçekleştirimleri de tasarlar. Sonundaki sayı ne olursa olsun, Cortex veya Neoverse sözcüğünü görüyorsanız bunlar Arm tarafından tasarlanmış mikro mimarilerdir.
    Örneğin Cortex-A78, ArmV8.3’e kadar olan genişletmeleri uygular. Wikipedia’da bunu özetleyen bir şablon vardır
  • DynamIQ (eski adıyla bit.LITTLE), çok çekirdeklide aynı türden (homogeneous) olmayan, yani heterojen (heterogeneous) çekirdekler kullanma fikrine dayanır
    Bu tasarımın avantajı, farklı zamanlarda farklı işleri iyi yapabilmesidir. Performans gerektiğinde yüksek güç tüketen out-of-order işlemciler, güç tüketimini azaltmak için ise daha yavaş in-order çekirdekler kullanılır
    Intel’in Alder Lake’te performans/verimlilik çekirdeklerini kullanan benzer bir yaklaşım benimsemesini görmek ilginçtir
  • Referans kılavuzunu karıştırdığınızda çeşitli execution state’lerin ilginç biçimde geliştiğini görürsünüz: A55, X1, X3 vb.
  • Eski terimler
    • ARM9, Armv9 ile karıştırılmamalıdır. Bu bir çekirdek ailesidir; bazıları ARMv4t’yi, bazıları ise ARMv5’i uygular
    • StrongARM, DEC tarafından yapılmış bir ARMv4 CPU serisidir. Intel, dava uzlaşmasıyla bu IP’yi aldı ve sonunda XScale adını verdiği kendi ARMv5 mikro mimarisini tasarladı
      Sonuçta Intel, XScale kullanan PXA SoC ürün ailesini Marvell’e sattı. Intel Atom’la birlikte veya onun yerine XScale’i sürdürseydi dünyanın nasıl olacağını merak etmemek zor
    • ARMv4, Thumb adı verilen sıkıştırılmış komut setini tanıttı. Komutlar 16b sabit genişliklidir
    • ARMv6t2, Thumb2’yi tanıttı. 32b komutlar ve UAL (Unified Assembly Language) gibi özellikleri destekler

3 yorum

 
roxie 2023-03-16

Arm ARM adı ne taraftan bakarsanız bakın bilerek seçilmiş gibi duruyor haha

 
roxie 2023-03-16

*haha

 
eususu 2023-03-14

Arm ARM sanırım kesinlikle aklımda kalacak :)