กลเม็ดของ CPU ของ Apple - การจัดเรียงหน่วยความจำใหม่, การรองรับ JS, การนับ Ref
(threadreaderapp.com)-
ความเร็วในการรันโค้ด Intel ของ Apple ที่ดูเหมือนมนตร์ดำนั้น โดยพื้นฐานคือการผสานสถาปัตยกรรม Arm และ Intel เข้าด้วยกัน
-
โดยพื้นฐานแล้ว CPU ทั้งสองแบบมี "memory ordering" ต่างกัน จึงทำให้การจำลองทำงานได้ช้า แต่หนึ่งในวิธีที่ Apple แก้ปัญหาคือใส่วิธีของ Intel เข้าไปด้วย ทำให้เวลารันโค้ด x86 จะทำตาม memory ordering แบบของ Intel
-
Apple เพิ่มชุดคำสั่งที่ปรับให้เหมาะกับ JavaScript และเพิ่ม L1 cache เป็นสองเท่า ทำให้การท่องเว็บเร็วขึ้นและแบตเตอรี่อยู่ได้นานขึ้น
-
ดูอัลคอร์ของ Intel MacBook Air มีความเร็ว 3.8Ghz ตอนทำงานเต็มที่ และทำงานที่ 1.2Ghz ในโหมดช้าเพื่อประหยัดพลังงาน แต่ Intel ไม่ได้ออกแบบมาให้ทำงานโดยเน้น downclock
Apple ใส่ทั้งคอร์ประสิทธิภาพและคอร์ประหยัดพลังงานอย่างละ 4 คอร์เพื่อการปรับแต่งที่เหมาะสม ในโหมดพลังงานต่ำจะปิดคอร์ประสิทธิภาพทั้ง 4 คอร์ และทำงานด้วยคอร์ประหยัดพลังงานเท่านั้น
เวลาทำงานอย่างการคอมไพล์ ก็ใช้คอร์ทั้ง 4 ได้เต็มที่ จึงเร็วมาก
-
Intel ตามหลังกฎของมัวร์ไป 3 ปี Apple Silicon ใช้กระบวนการผลิต 5 นาโนเมตรล่าสุดของ TSMC ส่วน Intel ใช้กระบวนการ 10 นาโน/7 นาโน และแม้กระทั่งผลิตภัณฑ์ Intel จำนวนมากก็ยังใช้กระบวนการ 14/10 นาโนที่เก่ากว่า
-
ภาษา Swift ใช้ "reference counting" แทน "garbage collection" ของ Android และ Apple ก็ทำบางอย่างไว้ใน CPU เพื่อเพิ่มความเร็วของ reference counting ให้เป็นสองเท่า
5 ความคิดเห็น
ทำไมชิป ARM ถึงมีคำสั่งที่ตั้งชื่อตาม JavaScript? https://th.news.hada.io/topic?id=3057
การนับรีเฟอเรนซ์เป็นพื้นฐานของการเก็บกวาดขยะอยู่แล้วนี่... หมายความว่ายังไงกัน... จู่ ๆ ความน่าเชื่อถือก็ลดฮวบ...
มีการพูดถึงเรื่องนี้อยู่เหมือนกัน
https://twitter.com/catfish_man/status/1326238434235568128?s=21
บอกว่าความเร็วในการ Retain/Release ของ
NSObjectแบบธรรมดา เร็วกว่าเดิมถึง 5 เท่าดูเหมือนว่าแม้แต่คำสั่งสำหรับทำ reference counting เองก็ทำงานได้เร็วกว่า เนื่องจากความแตกต่างของโครงสร้าง memory ordering
ใน Java โดยทั่วไปจะไม่ใช้ Reference Counting แต่จะใช้การเก็บกวาดหน่วยความจำแบบสไตล์อื่น เช่น Mark-and-Sweep แทน
อ้อ? พอได้ยินแบบนั้นก็เลยคิดว่า... งั้น garbage collection ก็คงเร็วได้ประมาณนั้นเหมือนกันสินะครับ 555