14 คะแนน โดย xguru 2023-03-14 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

สรุปคำศัพท์สำหรับผู้เริ่มต้นเข้าสู่ระบบนิเวศ Arm

  • สถาปัตยกรรม Arm คือกลุ่มผลิตภัณฑ์แบบ RISC ที่มีโหมดการอ้างแอดเดรสที่เรียบง่าย
  • Arm Limited คือบริษัทจากสหราชอาณาจักรที่ดูแลสถาปัตยกรรม Arm
  • ARM เดิมมาจาก Acorn RISC Machine ก่อนจะเปลี่ยนเป็น Advanced RISC Machines
  • Arm ARM (Architecture Referecnce Manual) คือคู่มือการเขียนโปรแกรมสำหรับ Arm
  • Armv9 คือรุ่นล่าสุดของตระกูลสถาปัตยกรรม (ณ เวลาที่ผู้เขียนเขียนบทความ) โดยเพิ่ม SIMD vector (SVE) และการคำนวณเมทริกซ์ (SME/SME2) เป็นต้น
  • Armv9.4-A คือชุดส่วนขยายล่าสุดของ Armv9 โดยส่วนขยายเหล่านี้มีการจัดทำเอกสารไว้ใน Arm ARM บางส่วนขยายเป็นตัวเลือกในช่วงแรกที่เปิดตัว แต่ในเวอร์ชันถัดไปจะกลายเป็นข้อบังคับ
  • A ใน Armv9.4-A หมายถึง "Application Profile" รองรับหน่วยความจำเสมือนผ่าน MMU และพบได้ในระบบ Arm แทบทุกประเภท เช่น โทรศัพท์ โน้ตบุ๊ก และเซิร์ฟเวอร์
    ยังมี "R" สำหรับระบบเรียลไทม์ และ "M" สำหรับไมโครคอนโทรลเลอร์ที่ไม่มี MMU
    โปรไฟล์สถาปัตยกรรมทั้งสามนี้ก็คือ "A" "R" "M"
  • AArch64 คือ "execution state" ที่ถูกนำมาใช้ใน ARMv8 รองรับรีจิสเตอร์ 64 บิต (รีจิสเตอร์ใช้งานทั่วไป 31 ตัว, stack pointer 64 บิตแบบเฉพาะ, program counter 64 บิต, และ pseudo register ที่มีค่าเป็นศูนย์)
    พร้อมกันนั้นก็เรียกความสามารถ 32 บิตที่ใช้ใน ARMv7 ว่า AArch32
  • ที่น่าสนใจคือใน Arm ARM ไม่มีการพูดถึงคำว่า ARM64 (แต่ Apple, Microsoft และ Linus Torvalds ชอบใช้คำนี้)
    ชื่อนี้มีความหมายในที่สุด; เคอร์เนล Linux แบบ arm64 สามารถรันโค้ด userspace ได้ทั้งใน execution state แบบ AArch64 หรือ AArch32 แต่ตัวเคอร์เนลเองรองรับเฉพาะ AArch64
  • A64 คือชุดคำสั่งที่เปิดตัวมาพร้อม AArch64 และในทางปฏิบัติก็เป็นชุดคำสั่งเดียวที่ AArch64 รองรับ แม้รีจิสเตอร์ของ AArch64 จะเป็น 64 บิต แต่ตัวคำสั่งเองยังคงเป็น 32 บิต (fixed width)
    A32 หมายถึง ISA รุ่นเก่า ซึ่งก็เป็น 32 บิตแบบ fixed width เช่นกัน ส่วน T32 คือชุดคำสั่งที่ใช้ก่อน Armv8 โดยหมายถึง Thumb2 แบบ 32 บิตและ 16 บิต
  • สิ่งที่ไม่ควรสับสนกับ A64 คือการเรียกคอร์ว่า "A78" ซึ่งหมายถึง Cortex-A78
    Arm ไม่ได้ออกแบบแค่สถาปัตยกรรม Arm เท่านั้น แต่ยังออกแบบตัว implementation ของสถาปัตยกรรมที่เราเรียกว่า microarchitecture ด้วย ไม่ว่าตัวเลขท้ายจะเป็นอะไร หากเห็นคำว่า Cortex หรือ Neoverse สิ่งเหล่านี้คือ microarchitecture ที่ Arm ออกแบบเอง
    ตัวอย่างเช่น Cortex-A78 รองรับส่วนขยายถึง ArmV8.3 โดยใน Wikipedia มี เทมเพลต ที่สรุปเรื่องนี้ไว้
  • DynamIQ (เดิมคือ bit.LITTLE) ตั้งอยู่บนแนวคิดการใช้คอร์แบบ heterogeneous แทนที่จะเป็น homogeneous ในระบบมัลติคอร์
    ข้อดีของดีไซน์นี้คือสามารถทำงานต่างชนิดกันได้ดีในเวลาที่ต่างกัน เมื่ออยากได้ประสิทธิภาพก็ใช้โปรเซสเซอร์แบบ out-of-order ที่กินไฟมากกว่า แต่เมื่ออยากลดการใช้พลังงานก็ใช้คอร์แบบ in-order ที่ช้ากว่า
    น่าสนใจที่ได้เห็น Intel ทำแนวทางคล้ายกันด้วยการใช้คอร์ประสิทธิภาพ/คอร์ประหยัดพลังงานใน Alder Lake
  • หากลองเปิดดู reference manual จะพบว่า execution state หลายแบบมีวิวัฒนาการที่น่าสนใจ: A55, X1, X3 เป็นต้น
  • คำศัพท์แบบดั้งเดิม
    • ARM9 ไม่ควรสับสนกับ Armv9 เพราะมันเป็นตระกูลคอร์ โดยบางตัวใช้ ARMv4t และบางตัวใช้ ARMv5
    • StrongARM คือซีรีส์ CPU ARMv4 ที่ DEC สร้างขึ้น Intel ได้ IP นี้มาผ่านการยุติคดีความ และในที่สุดก็ออกแบบ microarchitecture ARMv5 ของตัวเองในชื่อ XScale
      สุดท้าย Intel ก็ขายตระกูล SoC PXA ที่ใช้ XScale ให้กับ Marvell ชวนให้สงสัยว่าโลกจะเป็นอย่างไรถ้า Intel เลือกเดินต่อกับ Atom และ/หรือยึด XScale ต่อไป
    • ARMv4 เป็นรุ่นที่นำชุดคำสั่งแบบบีบอัดที่เรียกว่า Thumb เข้ามาใช้ โดยคำสั่งมีความกว้างคงที่ 16 บิต
    • ARMv6t2 เป็นรุ่นที่นำ Thumb2 เข้ามา รองรับคำสั่ง 32 บิต และ UAL (Unified Assembly Language) เป็นต้น

3 ความคิดเห็น

 
roxie 2023-03-16

Arm ARM ไม่ว่าจะมองยังไงก็ดูเหมือนตั้งใจเล่นคำเลยนะ 555

 
roxie 2023-03-16

*ฮ่าๆ

 
eususu 2023-03-14

คงจะจำ Arm ARM ได้ไม่ลืมแน่นอนครับ :)