ทำความรู้จัก Arm Big little และ Dynamic IQ

เป็นการคำนวณโดยใช้ core architecture ที่แตกต่างกัน เพื่อปรับปรุงประสิทธิภาพของการใช้พลังงาน โดยแบ่งออกเป็นสองชนิด  ชนิดที่หนึ่ง ที่ใช้พลังงานสูงและประสิทธิภาพสูงจะเป็น  core BIG  ส่วนชนิดที่สองใช้  core little จะมีประสิทธิภาพต่ำกว่าช้ากว่าและใช้พลังงานต่ำกว่า ทุก core เข้าถึง cache memory เดียวกันเมื่อต้องการคำนวณ ในรูปแบบ multi-thread  ในรูปแบบการคำนวณจะยังสามารถปรับความถี่ของ CPU แบบไม่คงที่อีกได้ด้วย เพื่อปรับพลังงานให้เหมาะสมกับwork load ของงาน

ตุลาคม 2011 รูปแบบของสถาปัตยกรรม Big และ little เริ่มต้นใช้ใน Cortex A7  ถูกออกแบบเหมือนกันกับ Cortex A15 ในตุลาคมปีถัดมา เริ่มใช้ CortexA53 กับ Cortex A57 (ARMv8-A)  ในปีกุมภาพันธ์ 2014 ใช้ CortexA12 กับ  CortexA12 และ Cortex A17 คู่กับ CortexA7

การแก้ไขปัญหาของ Big และ little

CMOS พลังงานที่ใช้งานจะเพิ่มขึ้นตาม logic switch ตามวินาที กระแสรั่วไหลจะแปรผันตรงกับจำนวนของ transistor ดังนั้น การออกแบบ CPU ต้องทำงานเร็ว และต้องมีความแตกต่าง เพื่อลดการใช้พลังงาน  Core ควรรันเร็วมากๆ  และ Core ที่ไม่ได้ใช้งานควรมีการรั่วไหลของกระแสที่น้อยกว่า (ควรมี transistor ที่น้อยกว่า) และยังสามารถทำงานแบบเดียวกันได้  ยกตัวการแก้ไขมีหลายอย่าง การใช้ CPU ที่มี transistor ที่น้อยกว่า memory cache หรือ  microarchitecture แบบง่าย เช่น pipeline  big ผสมกับ little เป็นทางเลือกใช้ได้ในสองกรณี ทั้งพลังงาน ความเร็วในระบบเดียวกัน

ในทางปฎิบัติ  big และ little เป็นสิ่งที่แปลกประหลาดและไม่ยืดหยุ่น ชนิดและจำนวนของแหล่งจ่ายพลังงาน clock ให้ IC  ไม่ตรงกับรูปแบบมาตราฐานจัดการพลังงานที่ระบบปฎิบัติการมีมาให้  CPU แต่ละตัวกัน มีความสามารถไม่เทียบเท่ากัน การหา software task ที่ถูกต้องกับการเลือก CPU ที่เหมาะสมเป็นเรื่องที่ยากมากขึ้น แต่ปัญหาทั้งหมดนี้สามารถแก้ไขได้ด้วย electronic และ software

มีสามรูปแบบของการจัดการ CPU big little ขึ้นอยู่กับการจัดตารางเวลาการทำงาน เรียกใช้ใน kernel

Clustered switching

เป็นวิธีแรกที่ง่ายที่สุด  เมื่อรันครั้งแรก ระบบปฎิบัติการจะเห็น work load ทั้งหมดของกลุ่มCPU  จะนั้นจะเปลี่ยนสสับงานคำนวณที่หนัก ไปในกลุ่มของ big และการคำนวณที่เบากว่า ไปที่กลุ่มของ little  โดยใช้ข้อมูลการคำนวณโดยผ่าน L2 cache ปิดเปิด core CPU เพื่อเรียกงาน มีการแชร์ข้อมูลใน cache โดยใช้ Cache Coherent Interconnect (CCI) เริ่มใช้ Samsung Exynos 5 Octa

 

In -kernel switcher

CPU จัดการโดย in-kernel switcher (IKS) จับคู่ 1 virtual core มี big กับ little อยู่คู่กัน เมื่อมีภาระโหลดหนักจะเรียกใช้ Big เมื่อภาระการใช้น้อยจะเรียกใช้ little เมื่อเปิดใช้งาน virtual core power อันใหม่ข้อมูลจะถูกถ่ายโอนไป virtual core ถัดไป เปลี่ยนแปลง frequency ตามกลุ่มของ virtual core IKS ถูกเพิ่มใน kernel 3.11

 

Heterogeneous multi-processing

การคำนวณแบบ multi thread ที่มีประสิทธิภาพมากที่สุด คือ เปิด ทุก core  big core ใช้กับ thread ที่มีความสำคัญสูงสด และ little core กับ thread ที่มีความสำคัญต่ำสุด