AArch64 คืออะไร? สิ่งที่คุณต้องรู้เกี่ยวกับสถาปัตยกรรม CPU นี้

แม้ว่าคุณจะเคยใช้อุปกรณ์ที่มีโปรเซสเซอร์ AArch64 อยู่ข้างใน แต่คุณก็อาจไม่รู้ว่ามันหมายถึงอะไร นี่คือสิ่งที่คุณต้องรู้

มีซีพียูหลายตัว สถาปัตยกรรม ที่นั่นโดยตัวใหญ่ที่สุด x86 และ แขน. ต้องบอกว่า AArch64 อาจบินอยู่ภายใต้เรดาร์ของคุณ แม้แต่ผู้ที่คลั่งไคล้เทคโนโลยีที่อ่านหนังสือมาอย่างดีก็อาจไม่เคยได้ยินเรื่องนี้ แม้ว่าจะมีอยู่ในอุปกรณ์หลายล้านเครื่องก็ตาม ประเด็นก็คือ AArch64 นั้นไม่ได้ลึกลับอะไรมากเพราะมันเป็นคำศัพท์ทางเทคนิคที่สับสนมาก นี่คือสิ่งที่คุณต้องรู้เกี่ยวกับ AArch64

AArch64 คือ ARM64 นั่นเอง

ที่มา: อาร์ม

กล่าวโดยย่อ AArch64 เป็นชื่ออย่างเป็นทางการสำหรับสถาปัตยกรรมชุดคำสั่ง 64 บิต (ISA) ของ Arm ซึ่งเปิดตัวพร้อมกับการอัปเดต Armv8-A มันมักจะอ้างถึง AArch64 ยังไม่ชัดเจนว่าทำไม ARM64 จึงมักถูกใช้แทน AArch64 แต่ส่วนหนึ่งของความสับสนดูเหมือนจะมาจากสองที่ ส่วนหนึ่งเป็นเพราะส่วนขยาย 64 บิตของ x86 คือ x86-64 ดังนั้นส่วนขยาย 64 บิตของ ARM ตามธรรมชาติจึงควรเป็น ARM64 ดูเหมือนว่า Apple จะคิดเช่นนั้นและเรียก AArch64 ว่า ARM64 จนถึงปี 2014 สำหรับคนส่วนใหญ่ "AArch64 คือ ARM64" เป็นคำอธิบายที่น่าพอใจมาก

หากคุณต้องการเรียนรู้ด้านเทคนิคจริงๆ AArch64 ไม่ใช่ ISA แต่เป็น สถานะการดำเนินการ ที่อนุญาตให้ ARM CPU ใช้ (และใช้เฉพาะ) ชุดคำสั่ง A64 ของ ARMv8 ISA ซึ่งเปิดตัวครั้งแรกด้วยสถาปัตยกรรม Armv8-A หากฟังดูสับสน นั่นเป็นเพราะเป็นเช่นนั้น แม้ว่าคุณจะคุ้นเคยกับสถาปัตยกรรมคอมพิวเตอร์ แต่ก็เข้าใจได้ยาก ดังนั้นฉันจะอธิบายทีละขั้นตอน

ในทางเทคนิคแล้ว AArch64 เป็นสถานะ ไม่ใช่ ISA แต่ไม่มีใครสนใจ แม้แต่ Arm เอง

ARM เป็นตระกูลของ ISA ที่เกี่ยวข้องกัน และแม้ว่า ISA ที่แตกต่างกันมักจะบ่งบอกถึงความเข้ากันไม่ได้ แต่นั่นไม่ใช่ความจริงอย่างเคร่งครัด ARM ISA เวอร์ชันต่างๆ เรียกว่า ARMv1, ARMv2 และอื่นๆ แต่ ISA เหล่านี้ประกอบด้วยสิ่งที่เป็น ISA ย่อยเป็นหลัก ได้แก่ A-profile, M-profile และ R-profile ความแตกต่างพื้นฐานระหว่าง ISA ย่อยเหล่านี้คือจำนวนคำสั่งขั้นต่ำที่แต่ละคนใช้ โดยโปรไฟล์ A ใช้มากที่สุด และโปรไฟล์ M ใช้น้อยที่สุด ดังนั้น ARM ISA จึงถูกแบ่งออกเป็นแต่ละเวอร์ชัน เช่น ARMv8 จากนั้นเวอร์ชันเหล่านั้นจะถูกแบ่งเพิ่มเติมตามการใช้งาน ISA ที่แตกต่างกัน

Armv8-A เป็นการใช้งานโปรไฟล์ A เริ่มต้นของ ARMv8 ISA ซึ่งเพิ่มสองสิ่งใหม่: AArch32 และ AArch64 สิ่งเหล่านี้เรียกว่าสถานะหรือโหมด และอนุญาตให้ ARM CPU เข้าถึงชุดคำสั่งต่างๆ ด้วย AArch32 ที่มีคำสั่ง A32 และ T32 แบบ 32 บิต และ AArch64 ที่มี A64 แบบ 64 บิต คำแนะนำ. ตัวอย่างเช่น หากโปรเซสเซอร์อยู่ในสถานะ AArch64 และต้องการใช้คำสั่ง A32 โปรเซสเซอร์จะต้องเปลี่ยนสถานะเป็น AArch32 นอกจากนี้ ในโหมด AArch64 จะเข้าถึงการลงทะเบียนทั้งแบบ 32 บิตและ 64 บิตได้ ในขณะที่ในโหมด AArch32 จะใช้งานได้เฉพาะการลงทะเบียนแบบ 32 บิตเท่านั้น ส่วนที่สับสนที่สุดของทั้งหมดนี้ก็คือ สิ่งเหล่านี้ถูกเรียกว่า ISAs แปรผัน และแม้แต่ Arm (บริษัทที่พัฒนา ARM ISA) ก็มีความผิดในเรื่องนี้

แต่ถ้าเรากำลังใช้เทคนิคขั้นสูง นี่คือสิ่งที่เป็นจริง: ARM ISA เวอร์ชันที่แปด ARMv8 ถูกนำมาใช้ครั้งแรกกับ Armv8-A ซึ่งมีสองสถานะที่เรียกว่า AArch32 และ AArch64 เมื่อ CPU อยู่ในสถานะ AArch64 จะสามารถดำเนินการคำสั่ง A64 แบบ 64 บิตได้ ในทางเทคนิคแล้ว AArch64 เป็นสถานะ ไม่ใช่ ISA แต่ไม่มีใครสนใจ แม้แต่ Arm เอง

เหตุใดทั้ง 32 บิตและ 64 บิตจึงมีความสำคัญสำหรับ ARM

ดังนั้น AArch64 จึงค่อนข้างซับซ้อน และการต้องสลับสถานะเพื่อใช้คำสั่งแบบ 32 บิตและ 64 บิตก็ดูยุ่งยาก สิ่งสำคัญคือการสนับสนุนทั้ง 32 บิตและ 64 บิตนั้นสำคัญเกินกว่าจะมองข้ามไปได้ ดังนั้นมันจึงต้องเป็นเช่นนี้ จริงๆ แล้วปัญหาหลักๆ มีอยู่ 2 ประการคือ ความต้องการสนับสนุนซอฟต์แวร์ 32 บิตแบบเก่า และการแสวงหาการประมวลผลสมัยใหม่ที่มีประสิทธิภาพสูง

หาก Arm ไม่ได้รวมการรองรับแบบเนทีฟสำหรับซอฟต์แวร์ 32 บิตใน ISA 64 บิตชุดแรก มันอาจเป็นหายนะเพราะพูดง่ายๆ ก็คือ ไม่มีใครอยากเขียนโค้ดใหม่ หาก ARMv8 ต้องการให้ทุกคนเขียนซอฟต์แวร์ใหม่ตั้งแต่เริ่มต้น มันอาจทำให้ ISA เข้าสู่วงจรแห่งความตาย ซึ่งไม่มีใครสร้างหรือซื้อ อุปกรณ์ ARMv8 เพราะขาดซอฟต์แวร์ จากนั้นนักพัฒนาก็ไม่สร้างแอพเพราะขาดผู้ใช้ โฆษณาไม่สิ้นสุดจน Arm ต้องเรียกมันว่า เลิก ดังนั้น การสนับสนุน 32 บิตจึงไม่สามารถต่อรองได้

ในทางกลับกัน การไม่ใช้คอมพิวเตอร์ 64 บิตก็ไม่ใช่ตัวเลือกเช่นกัน Intel และ AMD ซึ่งเป็นบริษัทที่อยู่เบื้องหลัง x86 ได้ใช้สถาปัตยกรรมแบบ 64 บิตมาตั้งแต่ต้นยุค 2000 สำหรับ ซีพียูที่น่าทึ่งแม้ว่าในขณะนั้นจะไม่มีการเรียกร้องให้ใช้ชิป ARM แบบ 64 บิต เนื่องจากโทรศัพท์ไม่ต้องการใช้ แต่การประดิษฐ์สมาร์ทโฟนได้เปลี่ยนแปลงทุกอย่าง และทุกคนต้องการให้โทรศัพท์ของตนทำสิ่งต่างๆ ได้มากขึ้น ไม่เพียงแต่การรองรับ 64 บิตจะช่วยให้สมาร์ทโฟนมีประสิทธิภาพมากขึ้นเท่านั้น แต่ยังเป็นการเปิดประตูอีกด้วย สำหรับบริษัทต่างๆ ที่จะสร้างชิป ARM สำหรับตลาดที่ x86 ครองตลาดแบบดั้งเดิม เช่น แล็ปท็อปและ เซิร์ฟเวอร์

โดยพื้นฐานแล้ว ความสับสนในการตั้งชื่อทั้งหมดนี้เกิดจากการที่ Arm จำเป็นต้องปรับปรุงเทคโนโลยีให้ทันสมัยเพื่อตอบสนองต่อลำดับความสำคัญที่เปลี่ยนไป บางที Arm อาจไม่จำเป็นต้องใช้การสนับสนุน 64 บิตในลักษณะนี้ แต่ก็เป็นเช่นนั้น และนั่นคือที่มาของ AArch64 แม้ว่า AArch64 ไม่ใช่ ISA แต่คนส่วนใหญ่ก็ใช้คำนี้ในทางที่ดีขึ้นหรือแย่ลง