ARMv9, Register Set และคำแนะนำสำหรับซีพียูที่ไม่ใช่ x86

ไม่กี่สัปดาห์ที่ผ่านมา ARM แนะนำรุ่นที่เก้าของชุดการลงทะเบียนและคำสั่งที่ใช้ในโปรเซสเซอร์ที่มี ISA ในชื่อเดียวกัน ARMv9 คือชื่อที่เวอร์ชันใหม่ของ ISA นี้ได้รับบัพติศมา ซึ่งจะใช้ใน SoC ในอนาคตสำหรับอุปกรณ์ PostPC ARMv9 คืออะไรและมีอะไรใหม่ในเวอร์ชันก่อนหน้า ARM CPU ในอนาคตจะเป็นอย่างไร

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

ARMv9

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

ในบทความนี้เราจะพูดถึง ISA ARM เจนเนอเรชั่นที่ XNUMX ซึ่งหลังจากหลายปีที่มุ่งเป้าไปที่ซีพียูและไมโครคอนโทรลเลอร์ที่บริโภคน้อย ได้ตัดสินใจที่จะทะเยอทะยานมากขึ้นและเข้าสู่ตลาดที่ต้องการประสิทธิภาพสูงสุด ของดาต้าเซ็นเตอร์และประสิทธิภาพสูง คอมพิวเตอร์หรือ HPC

ส่วนขยายเวกเตอร์ที่ปรับขนาดได้2

สวีอาร์มv9

Fujitsu ของญี่ปุ่นได้สร้างชุดส่วนขยายที่เป็นกรรมสิทธิ์ของ ARM สำหรับแกน ARM ซึ่งเรียกว่า SVE ซึ่งย่อมาจาก Scalable Vector Extensions จากชื่อ คุณอาจเดาได้ว่าเรากำลังพูดถึงชุดคำสั่ง SIMD อย่าลืมว่าในซีพียูที่มี ISA ARM นั้นมีการใช้คำสั่ง Neon มาหลายปีแล้ว ซึ่งจะถูกแทนที่ด้วยคำสั่ง SVE2 ใน ARMv9

SVE ถูกสร้างขึ้นโดยฟูจิตสึสำหรับซูเปอร์คอมพิวเตอร์ Fugaku ซึ่งใช้แกน A64-FX ความตั้งใจ? ใช้ประโยชน์จากความเท่าเทียมกันของข้อมูลที่จำเป็นสำหรับการคำนวณทางวิทยาศาสตร์ ซึ่งใช้ตัวเลขที่มีความแม่นยำสูงกว่า สิ่งนี้แปลเป็นหน่วย SIMD ที่ใหญ่กว่ามากและดังนั้นจึงมีบิตมากขึ้น

เนื่องจากความสนใจของ ARM คือการนำแกนหลักของพวกเขาไปสู่ตลาดการประมวลผลและเซิร์ฟเวอร์ที่มีประสิทธิภาพสูง พวกเขาจึงตัดสินใจนำ SVE มาใช้และรวมเข้ากับ Neon เพื่อสร้าง SVE2 ข้อได้เปรียบที่ใหญ่ที่สุดที่ SVE เพิ่มให้กับ Neon? คำแนะนำเหล่านี้เป็นคำสั่งที่ไม่เชื่อเรื่องขนาด ดังนั้นจึงไม่จำเป็นต้องมีเวอร์ชันของแต่ละคำสั่งสำหรับขนาดต่างๆ เช่นเดียวกับกรณีของคำสั่ง AVX บน x86

อาณาจักรหน่วยความจำใน ARMv9

เรโนส ARMv9

แนวคิดที่น่าสนใจที่ ISA ARMv9 เพิ่มเข้าไปในสมการคือ แนวคิดของขอบเขต ซึ่งประกอบด้วยความสามารถในการใช้ส่วนหนึ่งของการกำหนดแอดเดรสหน่วยความจำและทำให้โค้ดที่รันอยู่ในนั้นไม่มีผลกับส่วนที่เหลือของระบบจึง โดดเดี่ยวโดยสิ้นเชิง ซึ่งเหมาะอย่างยิ่งสำหรับการใช้งานเครื่องเสมือนโดยที่ระบบปฏิบัติการหนึ่งทำงานพร้อมกันกับอีกระบบหนึ่งบน CPU เดียวกัน

โดยปกติ CPU จะมีระดับสิทธิพิเศษต่างกัน แต่ด้วยแนวคิด realms ที่เพิ่มเข้ามาใน ARMv9 จะทำให้สามารถเรียกใช้เครื่องเสมือนบน CPU ที่มี ARM ISA ได้ง่ายขึ้น แต่ข้อดีของสิ่งนี้ไม่ได้จำกัดอยู่ที่เครื่องเสมือนเท่านั้น แต่ยังใช้ได้เฉพาะบางโปรแกรม

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

ส่วนขยายการแท็กหน่วยความจำ

ส่วนขยายการแท็กหน่วยความจำ ARM

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

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

MTE ไม่ได้เป็นส่วนหนึ่งของ ISA แต่เป็นกลไกที่ใช้ใน Northbridge ของ ARMv9 CPU ที่ติดตามการเข้าถึงหน่วยความจำทั้งหมดและฟังก์ชันการทำงานเพื่อหลีกเลี่ยงหน่วยความจำล้นในลักษณะที่โปร่งใส

ARMv9 สำหรับศูนย์ข้อมูลและเซิร์ฟเวอร์เท่านั้น?

ศูนย์ข้อมูล

ความแปลกใหม่ของ ISA ARMv9 ที่เราได้อธิบายไว้ในส่วนก่อนหน้านั้นมีลักษณะเฉพาะที่ทำเครื่องหมายไว้ และไม่เกี่ยวข้องกับการใช้งานในอุปกรณ์คลาสสิกที่มักจะเห็น ISA ARM ในบรรดาทั้งหมดนั้น มันเรียก SVE อย่างทรงพลัง เนื่องจากสาเหตุหนึ่งที่คุณมักจะไม่เห็นหน่วย SIMD ขนาดใหญ่ใน CPU สำหรับอุปกรณ์ PostPC คือการใช้พลังงานมหาศาลตามที่คาดไว้

ในขณะนี้ ARM เพียงสองคอร์ที่ประกาศโดย ARM คือสองคอร์จากตระกูล Neoverse ในอีกด้านหนึ่ง NeoVerse V1 ภายใต้ชื่อรหัส “Zeus” และอีกข้างหนึ่ง Neoverse N2 ภายใต้ชื่อรหัส “Perseus” สิ่งเหล่านี้ไม่ใช่แกนหลักที่คุณจะเห็นในสมาร์ทโฟนในอนาคต แต่ในศูนย์ข้อมูลและเซิร์ฟเวอร์สำหรับการประมวลผลประสิทธิภาพสูงของบริษัทต่างๆ เช่น Amazon AWS, Oracle, Tencent, Google เป็นต้น

ARM ยังไม่ได้ประกาศเคอร์เนลใดๆ สำหรับอุปกรณ์ PostPC เช่น สมาร์ทโฟนและแท็บเล็ต แม้ว่าเราจะไม่ลืมว่าเป้าหมายของ ARM คือการแทนที่ x86 ในตลาดต่างๆ ไม่เพียงแต่บนเซิร์ฟเวอร์ แต่ยังรวมถึงบนพีซีด้วย การซื้อโดย NVIDIA และอิทธิพลอย่างมากในตลาดวิดีโอเกมพีซีอาจทำให้พีซีสำหรับเล่นเกมที่มี ARM และ NVIDIA GPU มาถึง แม้ว่าจะเป็นอนาคตที่จะต้องได้รับการสนับสนุนอย่างมากจากนักพัฒนาวิดีโอเกมไม่ใช่ NVIDIA-ARM เอง