ในช่วงนี้มีกระแสพูดคุยเกี่ยวกับ Exynos 5 Octa กันมาก ตัว Exynos 5 Octa นั้นเป็น SoC (system on a chip) ในรูปแบบ big.LITTLE ที่มีคอร์ของ Cortex-A15 และ Cortex-A7 อยู่ภายในอย่างละสี่คอร์ เรื่องหนึ่งที่ถกเถียงกัน (หรืออาจจะเข้าใจไปในทางเดียวกันโดยมิได้นัดหมาย) ก็คือคอร์ทั้งแปดของหน่วยประมวลผลแบบ big.LITTLE นั้นสามารถใช้งานได้ทีละสี่คอร์หรือว่าได้ทั้งแปดคอร์กันแน่?
ถ้าใครใจร้อนขอสรุปตรงนี้ว่าในทางฮาร์ดแวร์นั้นทั้งแปดคอร์สามารถทำงานได้พร้อมกันทั้งหมด แต่...
ปัญหาในขณะนี้คือระบบปฏิบัติการยังอาจจะไม่สามารถดึงประสิทธิภาพทั้งด้านความเร็วในการประมวลผลและการประหยัดพลังงานออกมาพร้อมๆ กันได้อย่างเต็มที่
คอร์แบบ Cortex-A15 และ Cortex-A7 นั้นเป็นสถาปัตยกรรมเดียวกันทุกกระเบียดนิ้ว (the processors are architecturally identical) ทั้งคู่ใช้ชุดคำสั่ง ARM v7A และทำงานได้ผลอย่างเดียวกันแต่แตกต่างกันที่ประสิทธิภาพ โดย Cortex-A15 ให้ประสิทธิภาพประมาณสองเท่าของ Cortex-A7 ด้วยสัญญาณนาฬิกาที่เท่ากัน และ Cortex-A7 ประหยัดพลังงานประมาณสามเท่าของ Cortex-A15 ในงานเดียวกัน ระบบ big.LITTLE นั้นสามารถทำงานได้สองรูปแบบคือ
1. big.LITTLE Task Migration
ในรูปแบบของ Task Migration นั้นใช้คอร์ Cortex-A15 จับคู่กับ Cortex-A7 ในจำนวนที่เท่ากัน (เช่น 4+4 ในกรณีของ Exynos 5 Octa) โดยจะอาศัยการเปิดปิดคอร์สลับกันตามโหลดของงานที่ทำในขณะนั้น ข้อดีของวิธีนี้ก็คือการออกแบบ scheduler (ตัวกำหนดว่างานไหนจะรันบนคอร์ไหนเมื่อไหร่)
ในระบบปฏิบัติการนั้นทำได้ง่ายเพราะสามารถใช้วิธีเดียวกันกับการปรับความเร็วของสัญญาณนาฬิกาที่ใช้กันอยู่ในปัจจุบันได้เลย สิ่งที่ต้องคำนึงถึงอย่างหนึ่งคือระหว่างการย้ายการทำงานจากคอร์หนึ่งไปอีกคอร์หนึ่งนั้นไม่ได้ได้มาฟรีๆ เพราะการย้ายงานนั้นหมายถึงการเก็บสถานะบนคอร์หนึ่งและนำไปอ่านออกมาคืนเพื่อทำต่อในอีกคอร์หนึ่ง ซึ่งในระหว่างนั้นคอร์ทั้งสองจะทำงานคู่กันและไม่สามารถประมวลผลอย่างอื่นได้ (ถ้าทำนานก็เปลืองไฟและกระตุก) การย้ายงานระหว่าง Cortex-A15 และ Cortex-A7 นั้นทาง ARM บอกว่าสามารถทำได้ใน 20,000 คำสั่ง หรือประมาณ 20 us เมื่อทำงานที่ความถี่ 1 GHZ
2. big.LITTLE MP
เนื่องจากว่าทุกๆ คอร์ของ Cortex-A15 และ Cortex-A7 นั้นออกแบบมาให้ต่อเข้ากับ
Cache Coherent Interconnect (CCI หรือตัวที่ทำให้ cache ของแต่ละคอร์มองเห็นข้อมูลเหมือนกัน) ที่ทำให้ทุกๆ คอร์สามารถทำงานไปพร้อมๆ กันได้ ดังนั้นในรูปแบบนี้ทุกๆ คอร์สามารถช่วยกันประมวลผลได้ แต่จะเป็นรูปแบบของหน่วยประมวลผลที่แตกต่างกัน (HMP/heterogeneous multiprocessing)
ระบบปฏิบัติการในอดีตมองว่าหน่วยประมวลผลทุกตัวนั้นสมมาตรกัน (เป็น SMP/symmetric multiprocessing) การที่หน่วยประมวลผลมีประสิทธิภาพไม่เท่ากัน แถมยังกินไฟไม่เท่ากันนั้นเป็นเรื่องที่ยังต้องศึกษาและปรับแต่งอยู่อีกมาก ดังนั้นจึงอาจจะต้องรออีกสักพักก่อนที่เราจะได้เห็นการใช้งานในรูปแบบนี้อย่างสมบูรณ์
big.LITTLE ปะทะ 4-PLUS-1
เรามักจะเห็นการนำ 4-PLUS-1 ของ NVIDIA มาเปรียบเทียบกับ big.LITTLE อยู่เสมอ วิธีการของ 4-PLUS-1 นั้นเรียกว่า Variable Symmetric Multiprocessing (vSMP)
ซึ่งความแตกต่างก็คือใน vSMP นั้นทุกๆ คอร์รวมถึงคอร์ประหยัดไฟนั้นเป็น Cortex-A9 เหมือนกันทั้งหมด (All five CPU cores are identical ARM Cortex A9 CPUs)
แต่กระบวนการผลิตซิลิคอนนั้นแตกต่างกัน คอร์ประหยัดไฟใช้กระบวนการผลิตที่เน้นให้ประหยัดพลังงานในขณะที่ทำงานได้ที่ความถี่ต่ำ
ส่วนคอร์หลักทั้งสี่นั้นใช้กระบวนการผลิตมาตรฐานที่สามารถทำงานได้ที่ความถี่สูงๆ
ความแตกต่างที่สำคัญอีกอย่างคือใน 4-PLUS-1 นั้นระบบปฏิบัติการมองไม่เห็นคอร์ประหยัดไฟ การสลับการทำงานระหว่างคอร์ปกติและคอร์ประหยัดไฟนั้นทำโดยอัตโนมัติ
ดังนั้นใน 4-PLUS-1 จึงไม่สามารถให้ทั้งห้าคอร์ทำงานพร้อมกันได้ ส่วนใน big.LITTLE นั้นระบบปฏิบัติการมองเห็นทุกคอร์ และต้องเป็นผู้สั่งการย้ายการทำงานระหว่างคอร์เอง
ขณะนี้และต่อไปจากนี้
การใช้งานรูปแบบ big.LITTLE Task Migration นั้นสามารถทำได้ง่ายโดยไม่ต้องปรับแก้ส่วน scheduling ของระบบปฏิบัติการ ดังนั้นเราน่าจะเห็นผลิตภัณฑ์ต่างๆ ใช้วิธีการนี้ก่อนในช่วงแรก
ส่วนในรูปแบบ big.LITTLE MP ที่ยืดหยุ่นกว่ามากและสามารถทำได้โดยไม่ต้องแก้ไขฮาร์ดแวร์ (จริงๆ เรียกได้ว่า big.LITTLE Task Migration เป็น subset ของ big.LITTLE MP เลยด้วยซ้ำ)
อาจจะต้องรอการปรับแต่งอีกสักระยะก่อนที่จะออกมาให้เราๆ ได้ใช้กัน (เมื่อ และต่อเมื่อ ไม่โดนลอยแพไปเสียก่อน)
มีคลิปดูเพลินๆ
อ้างอิง