14 पॉइंट द्वारा xguru 2023-03-14 | 3 टिप्पणियां | WhatsApp पर शेयर करें

Arm ecosystem में नए लोगों के लिए शब्दावली का संक्षिप्त परिचय

  • Arm architecture, simple addressing mode वाला एक RISC product family है
  • Arm Limited, Arm architecture को manage करने वाली ब्रिटिश कंपनी है
  • ARM का मतलब पहले Acorn RISC Machine था, जो बाद में Advanced RISC Machines बना
  • Arm ARM(Architecture Reference Manual), Arm के लिए programming manual है
  • Armv9, architecture family का सबसे नया संस्करण है (लेख लिखे जाने के समय)। इसमें SIMD vector (SVE) और matrix operations (SME/SME2) आदि जोड़े गए हैं
  • Armv9.4-A, Armv9 का सबसे नया extension batch है। ये extensions Arm ARM में documented हैं। कुछ extensions शुरुआत में optional होते हैं, लेकिन आगे के versions में mandatory होने वाले हैं
  • Armv9.4-A में A का मतलब "Application Profile" है। यह MMU के जरिए virtual memory को support करता है और phone/laptop/server जैसे लगभग सभी Arm systems में देखा जा सकता है.
    रीयल-टाइम systems के लिए "R" और MMU के बिना microcontroller के लिए "M" जैसे प्रोफाइल भी हैं।
    ये तीनों architecture profiles भी "A" "R" "M" हैं
  • AArch64, ARMv8 में introduce किया गया एक "execution state" है। यह 64b registers को support करता है (31 general-purpose registers, dedicated 64b stack pointer, 64b program counter, zero-value pseudo register)
    इसके साथ ARMv7 में इस्तेमाल होने वाली 32b functionality को AArch32 नाम दिया गया
  • दिलचस्प बात यह है कि Arm ARM में ARM64 शब्द का उल्लेख नहीं है (हालांकि Apple, Microsoft और Linus Torvalds इसे पसंद करते हैं)
    यह नाम आखिरकार मायने रखता है; arm64 Linux kernel, AArch64 या AArch32 execution state में user-space code चला सकता है, लेकिन kernel खुद केवल AArch64 के लिए है
  • A64, AArch64 में introduced instruction set है। वास्तव में AArch64 जिस एकमात्र instruction set को support करता है, वह यही है। AArch64 के registers 64b हैं, लेकिन instructions खुद अब भी 32b (fixed-width) हैं
    A32 पुराने ISA को दर्शाता है। यह भी 32b fixed-width है। T32, Armv8 से पहले इस्तेमाल होने वाला instruction set है, जो 32b और 16b Thumb2 को दर्शाता है
  • A64 के साथ भ्रमित नहीं किया जाना चाहिए कि "A78" नाम से किसी core को संदर्भित किया जाए; यह Cortex-A78 है।
    Arm सिर्फ Arm architecture ही नहीं, बल्कि उन architecture implementations को भी design करता है जिन्हें हम microarchitecture कहते हैं। बाद में आने वाले नंबर से फर्क नहीं पड़ता, अगर Cortex या Neoverse शब्द दिखे तो वे Arm द्वारा design की गई microarchitectures हैं।
    उदाहरण के लिए Cortex-A78, ArmV8.3 तक के extensions को implement करता है। Wikipedia पर इसे व्यवस्थित करने वाला एक template है
  • DynamIQ (पहले का bit.LITTLE), multicore में homogeneous के बजाय heterogeneous cores इस्तेमाल करने के विचार पर आधारित है
    इस design का फायदा यह है कि अलग-अलग समय पर अलग-अलग काम बेहतर तरीके से किए जा सकते हैं। जब performance चाहिए हो तो ज्यादा power खपत करने वाले out-of-order processor का उपयोग, और power कम करने के लिए धीमे in-order cores का उपयोग किया जाता है
    Intel को Alder Lake में performance/efficiency cores के साथ कुछ ऐसा ही करते देखना दिलचस्प है
  • Reference manual को खंगालने पर दिखता है कि विभिन्न execution states काफ़ी रोचक ढंग से विकसित हुए हैं: A55, X1, X3 आदि
  • Legacy शब्दावली
    • ARM9 को Armv9 के साथ भ्रमित नहीं करना चाहिए। यह core family है, जिसके कुछ भाग ARMv4t implement करते हैं और कुछ ARMv5 implement करते हैं
    • StrongARM, ARMv4 CPU series थी जिसे DEC ने बनाया था। Intel ने मुकदमे के समझौते के जरिए यह IP हासिल किया और आखिर में XScale नाम की अपनी ARMv5 microarchitecture design की
      आखिरकार Intel ने XScale इस्तेमाल करने वाले PXA SoC product family को Marvell को बेच दिया। सोचने वाली बात है कि अगर Intel ने Atom के साथ/या उसकी जगह XScale पर टिके रहना चुना होता तो दुनिया कैसी होती
    • ARMv4 ने Thumb नाम का compressed instruction set introduce किया। इसके instructions 16b fixed-width थे
    • ARMv6t2 ने Thumb2 introduce किया, और 32b instructions तथा UAL(Unified Assembly Language) आदि को support किया

3 टिप्पणियां

 
roxie 2023-03-16

Arm ARM नाम तो सच में जानबूझकर रखा हुआ लगता है, हाहा

 
roxie 2023-03-16

*हाहा

 
eususu 2023-03-14

Arm ARM शायद ज़रूर याद रह जाएगा :)