Tags:
Node Thumbnail

ในช่วงนี้มีกระแสพูดคุยเกี่ยวกับ 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 เลยด้วยซ้ำ)
อาจจะต้องรอการปรับแต่งอีกสักระยะก่อนที่จะออกมาให้เราๆ ได้ใช้กัน (เมื่อ และต่อเมื่อ ไม่โดนลอยแพไปเสียก่อน)

มีคลิปดูเพลินๆ

อ้างอิง

Get latest news from Blognone

Comments

By: kurodo99
iPhoneWindowsIn Love
on 20 January 2013 - 13:25 #531239

กระจ่างเลย ขอบคุณครับ

By: hisoft
ContributorWindows PhoneWindows
on 20 January 2013 - 22:54 #531334
hisoft's picture

ถือเป็นคู่ที่น่าลุ้นพอสมควรครับ

By: PiKO
ContributorAndroid
on 20 January 2013 - 22:59 #531340

ชัดเจน... ขอบคุณครับ


:: DigiKin8 ::

By: deargerous
ContributoriPhoneAndroidWindows
on 20 January 2013 - 23:03 #531343
deargerous's picture

Performance หากแปลเป็นประสิทธิภาพจะทำให้สับสนกับ efficiency ได้นะครับ ควรใช้คำอื่นเช่น สมรรถนะ หรือ ความสามารถ จะดีกว่า

Efficency ควรแปลเป็นประสิทธิภาพ จะเหมาะกว่าครับ

By: mk
FounderAndroid
on 20 January 2013 - 23:03 #531345 Reply to:531343
mk's picture

บางตำราแปล efficiency เป็น "ประสิทธิผล" ด้วยเหตุผลเรื่องหลบความหมายเหมือนกันครับ

By: Go-Kung
iPhoneWindows PhoneAndroidBlackberry
on 21 January 2013 - 00:05 #531391 Reply to:531345

ผมก็เรียนมาแบบ Efficiency = ประสิทธิผล เหมือนกันครับ

By: thanesk on 21 January 2013 - 01:05 #531417 Reply to:531345

ทำไมผมคิดว่า effectivenes = ประสิทธิผล ส่วน efficiency = ประสิทธิภาพ

By: Zatang
ContributoriPhoneAndroid
on 21 January 2013 - 01:13 #531420 Reply to:531417

อาจจะคนละสายวิชาเลยแปลไม่เหมือนกันมั้งครับ ถ้าด้านการผลิต effciency = ประสิทธิภาพ ส่วน effectiveness = ประสิทธิผล ผมเรียนมางี้เหมือนกันครับ


อคติทำให้คนรับเหตุผลด้านเดียว

By: ikkyu
Windows PhoneAndroid
on 21 January 2013 - 03:34 #531448 Reply to:531345

efficiency ในที่นี้หมายถึง output/input (งานที่ได้ เทียบกับพลังงานหรือทรัพยากรที่ใช้)

นิยมแปลเป็น efficiency = ประสิทธิภาพ มากกว่า

ส่วน effectiveness = ประสิทธิผล

หมายถึง output ที่ได้ / output ที่ต้องการ

By: deargerous
ContributoriPhoneAndroidWindows
on 21 January 2013 - 10:56 #531517 Reply to:531345
deargerous's picture

ประเด็นหลักของผมคือ Performance ไม่ควรแปลว่า ประสิทธิภาพ เพราะจะทำให้สับสนครับ

ส่วน Efficiency จะแปลเป็นประสิทธิภาพ หรือประสิทธิผล อะไรก็ได้ แต่น่าจะดีกว่าใช้คำว่า ประหยัดพลังงาน

By: panurat2000
ContributorSymbianUbuntuIn Love
on 6 February 2013 - 14:58 #538029 Reply to:531343
panurat2000's picture

ดังนั้นจึงอาจจะต้องรออีกสัพพักก่อนที่เราจะได้เห็นการใช้งานในรูปแบบนี้อย่างสมบูรณ์

สัพพัก => สักพัก

By: e.p.
ContributorAndroid
on 8 February 2013 - 16:39 #538901 Reply to:538029
e.p.'s picture

ขอบคุณครับ

By: liewlomb
iPhoneWindows PhoneAndroidBlackberry
on 21 January 2013 - 00:44 #531406

4core 4thread ?

By: dtobelisk
AndroidWindows
on 21 January 2013 - 09:11 #531484
dtobelisk's picture

กระจ่างมากครับ

By: oakkyza
iPhoneWindows PhoneAndroidBlackberry
on 21 January 2013 - 09:28 #531487

แจ่มแจ้งเลยครับ แต่ละแบบก็มีทั้งข้อดีและข้อเสียในตัวของมันเอง

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 31 January 2013 - 11:32 #535752
PaPaSEK's picture

ถือว่าเป็นบทความประเทืองปัญญาดีมากครับ ขอบคุณที่แปล/เขียน/พิมพ์มาให้อ่าน

#ทำไมผมเพิ่งเห็นบทความนี้เนี่ย

By: deaw on 5 February 2013 - 12:06 #537506
deaw's picture

สรุปว่า ถ้าเป็น kernel linux
แบบ 4+4 core จะใช้ driver cpufreq ทำ DVFS
ส่วนแบบ 8 core จะใช้ big.LITTLE scheduler