อ่าน 5 นาที
แขนใหญ่.เล็ก
ARM big.LITTLE เป็น สถาปัตยกรรม ประมวลผลแบบเฮเทอโรจีนัส ที่พัฒนาโดย Arm Holdings โดยจับคู่แกนประมวลผลที่ประหยัดพลังงานแบตเตอรี่และทำงานช้ากว่า ( LITTLE )...
แขนใหญ่.เล็ก

ARM big.LITTLEเป็นสถาปัตยกรรมประมวลผลแบบเฮเทอโรจีนัส ที่พัฒนาโดยArm Holdingsโดยจับคู่แกนประมวลผลที่ประหยัดพลังงานแบตเตอรี่และทำงานช้ากว่า ( LITTLE ) กับแกนประมวลผลที่มีประสิทธิภาพและใช้พลังงานสูงกว่า ( big ) จุดประสงค์คือเพื่อสร้างโปรเซสเซอร์แบบมัลติคอร์ที่สามารถปรับให้เข้ากับความต้องการในการประมวลผลแบบไดนามิกได้ดีขึ้นและใช้พลังงานน้อยกว่าการปรับขนาดสัญญาณนาฬิกาเพียงอย่างเดียว เอกสารทางการตลาดของ ARM สัญญาว่าจะประหยัดพลังงานได้มากถึง 75% สำหรับบางกิจกรรม[ 1 ]โดยทั่วไป สถาปัตยกรรม ARM big.LITTLE จะใช้ในการสร้างระบบมัลติโปรเซสเซอร์บนชิป (MPSoC)
ในเดือนตุลาคม พ.ศ. 2554 มีการประกาศ big.LITTLE พร้อมกับCortex-A7ซึ่งได้รับการออกแบบให้เข้ากันได้กับสถาปัตยกรรม ของ Cortex-A15 [ 2 ] ในเดือนตุลาคม พ.ศ. 2555 ARM ได้ประกาศ คอร์ Cortex-A53และCortex-A57 ( ARMv8-A ) ซึ่งเข้ากันได้เช่นกันเพื่อให้สามารถใช้งานในชิป big.LITTLE ได้[ 3 ]ต่อมา ARM ได้ประกาศCortex-A12ในงาน Computex 2013ตามด้วยCortex-A17ในเดือนกุมภาพันธ์ พ.ศ. 2557 ทั้ง Cortex-A12 และ Cortex-A17 สามารถจับคู่ในโครงสร้าง big.LITTLE กับ Cortex-A7 ได้เช่นกัน[ 4 ] [ 5 ]
ข้อดี
สำหรับไลบรารี ลอจิก CMOS ที่กำหนดไว้ พลังงานที่ใช้จะเพิ่มขึ้นเมื่อลอจิกสลับมากขึ้นต่อวินาที ในขณะที่การรั่วไหลจะเพิ่มขึ้นตามจำนวนทรานซิสเตอร์ เมื่อ ซีพียูแบบประมวลผล นอกลำดับที่ เร็วมาก อยู่ในสถานะไม่ได้ใช้งานที่ความเร็วต่ำมาก ซีพียูที่มีการรั่วไหล น้อยกว่ามาก (ทรานซิสเตอร์น้อยกว่า) ก็สามารถทำงานเดียวกันได้ ตัวอย่างเช่น อาจใช้แคชหน่วยความจำ ขนาดเล็กกว่า หรือสถาปัตยกรรมไมโครที่เรียบง่ายกว่า เช่น การลบการประมวลผลนอกลำดับออก big.LITTLE เป็นวิธีการเพิ่มประสิทธิภาพทั้งด้านพลังงานและความเร็วในระบบเดียวกัน
ข้อเสีย
ในทางปฏิบัติ ระบบ big.LITTLE อาจมีความยืดหยุ่นน้อยกว่าที่คิด ปัญหาหนึ่งคือจำนวนและประเภทของโดเมนพลังงานและสัญญาณนาฬิกาที่ SoC จัดหาให้ ซึ่งอาจไม่ตรงกับคุณสมบัติการจัดการพลังงานมาตรฐานที่ระบบปฏิบัติการมีให้ อีกปัญหาหนึ่งคือ CPU ไม่ได้มีประสิทธิภาพเท่าเทียมกันอีกต่อไป และการจับคู่ซอฟต์แวร์ที่เหมาะสมกับ CPU ที่เหมาะสมจึงยากขึ้น ปัญหาเหล่านี้ส่วนใหญ่กำลังได้รับการแก้ไขโดยการทำให้ชิ้นส่วนอิเล็กทรอนิกส์และซอฟต์แวร์มีความยืดหยุ่นมากขึ้น
การย้ายสถานะการทำงาน
มีสามวิธี[ 6 ]สำหรับการจัดเรียงคอร์โปรเซสเซอร์ที่แตกต่างกันในดีไซน์ big.LITTLE ขึ้นอยู่กับเค้าโครง SoC จริงและตัวกำหนดตารางเวลาที่ใช้งานในเคอร์เนล [ 7 ]
การสลับแบบคลัสเตอร์

แนวทางการจัดกลุ่มแบบคลัสเตอร์เป็นการใช้งานแบบแรกและง่ายที่สุด โดยจัดเรียงโปรเซสเซอร์เป็นคลัสเตอร์ที่มีขนาดเท่ากันของคอร์ "ใหญ่" หรือ "เล็ก" ตัวกำหนดตารางเวลาของระบบปฏิบัติการสามารถมองเห็นคลัสเตอร์ได้เพียงคลัสเตอร์เดียวในแต่ละครั้ง เมื่อโหลดบนโปรเซสเซอร์ทั้งหมดเปลี่ยนแปลงระหว่างต่ำและสูง ระบบจะเปลี่ยนไปใช้คลัสเตอร์อื่น จากนั้นข้อมูลที่เกี่ยวข้องทั้งหมดจะถูกส่งผ่านแคช L2 ทั่วไป คลัสเตอร์คอร์ที่ใช้งานอยู่จะถูกปิด และคลัสเตอร์อื่นจะถูกเปิดใช้งาน มีการใช้ Cache Coherent Interconnect (CCI) โมเดลนี้ได้รับการนำไปใช้ในSamsung Exynos 5 Octa (5410) [ 8 ]
ตัวสลับภายในเคอร์เนล (การย้าย CPU)

การย้าย CPU ผ่านตัวสลับในเคอร์เนล (IKS) เกี่ยวข้องกับการจับคู่คอร์ "ขนาดใหญ่" กับคอร์ "ขนาดเล็ก" โดยอาจมีหลายคู่ที่เหมือนกันในชิปเดียว แต่ละคู่ทำงานเป็นคอร์เสมือน หนึ่งตัว และจะมีเพียงคอร์จริงเพียงตัวเดียวเท่านั้นที่เปิดใช้งานและทำงานอย่างเต็มที่ในแต่ละครั้ง คอร์ "ขนาดใหญ่" จะถูกใช้เมื่อความต้องการสูง และคอร์ "ขนาดเล็ก" จะถูกใช้เมื่อความต้องการต่ำ เมื่อความต้องการบนคอร์เสมือนเปลี่ยนแปลง (ระหว่างสูงและต่ำ) คอร์ที่เข้ามาใหม่จะถูกเปิดใช้งานสถานะการทำงานจะถูกถ่ายโอน คอร์ที่ออกไปจะถูกปิด และการประมวลผลจะดำเนินต่อไปบนคอร์ใหม่ การสลับทำผ่าน เฟรมเวิร์ก cpufreqการใช้งาน big.LITTLE IKS อย่างสมบูรณ์ถูกเพิ่มเข้ามาใน Linux 3.11 big.LITTLE IKS เป็นการปรับปรุงการย้ายคลัสเตอร์ ( § การสลับคลัสเตอร์ ) ความแตกต่างหลักคือแต่ละคู่สามารถมองเห็นได้โดยตัวกำหนดตารางเวลา
การจัดเรียงที่ซับซ้อนกว่านั้นเกี่ยวข้องกับการจัดกลุ่มที่ไม่สมมาตรของคอร์ "ขนาดใหญ่" และ "ขนาดเล็ก" ชิปตัวเดียวอาจมีคอร์ "ขนาดใหญ่" หนึ่งหรือสองคอร์ และคอร์ "ขนาดเล็ก" จำนวนมาก หรือในทางกลับกัน Nvidia ได้สร้างสิ่งที่คล้ายกันนี้ด้วย "คอร์เสริม" ที่ใช้พลังงานต่ำใน ชิป Tegra 3 System-on-Chipของ พวกเขา
การประมวลผลแบบหลายโปรเซสที่ไม่เหมือนกัน (การจัดตารางงานระดับโลก)

รูปแบบการใช้งานที่มีประสิทธิภาพสูงสุดของสถาปัตยกรรม big.LITTLE คือการประมวลผลแบบมัลติโปรเซส ซิ่ง แบบไม่เหมือนกัน (HMP) ซึ่งช่วยให้สามารถใช้คอร์ทางกายภาพทั้งหมดได้ในเวลาเดียวกัน ในกรณีนี้ เธรดที่มีลำดับความสำคัญสูงหรือความเข้มข้นในการคำนวณสูงสามารถจัดสรรให้กับคอร์ "big" ได้ ในขณะที่เธรดที่มีลำดับความสำคัญน้อยกว่าหรือความเข้มข้นในการคำนวณน้อยกว่า เช่น งานพื้นหลัง สามารถดำเนินการโดยคอร์ "LITTLE" ได้[ 9 ] รูปแบบนี้ยังไม่จำเป็นต้องมีจำนวนคอร์ "big" และ "LITTLE" ที่ตรงกันด้วย
โมเดลนี้ได้รับการนำไปใช้ในSamsung Exynosโดยเริ่มจาก Exynos 5 Octa series (5420, 5422, 5430) [ 10 ] [ 11 ]และ โปรเซสเซอร์ Apple A seriesโดยเริ่มจากApple A11 [ 12 ] อีกตัวอย่างหนึ่งคือ Rockchip RK3399 SoC แบบหกแกน
การจัดตารางเวลา
การจัดเรียงแบบจับคู่ช่วยให้สามารถสลับการทำงานได้อย่างโปร่งใสต่อระบบปฏิบัติการโดยใช้ ฟังก์ชันการปรับขนาด แรงดันไฟฟ้าและความถี่แบบ ไดนามิก (DVFS) ที่มีอยู่แล้ว การสนับสนุน DVFS ที่มีอยู่แล้วในเคอร์เนล (เช่นcpufreqใน Linux) จะเห็นรายการความถี่/แรงดันไฟฟ้าและจะสลับไปมาระหว่างความถี่/แรงดันไฟฟ้าเหล่านั้นตามความเหมาะสม เช่นเดียวกับที่ทำบนฮาร์ดแวร์ที่มีอยู่ อย่างไรก็ตาม สล็อตที่มีระดับต่ำจะเปิดใช้งานคอร์ 'เล็ก' และสล็อตที่มีระดับสูงจะเปิดใช้งานคอร์ 'ใหญ่' นี่คือวิธีแก้ปัญหาเบื้องต้นที่จัดทำโดยตัวกำหนดตารางเวลา CPU "deadline" ของ Linux (ไม่ควรสับสนกับตัวกำหนดตารางเวลา I/O ที่มีชื่อเดียวกัน) ตั้งแต่ปี 2012 [ 13 ]
อีกทางเลือกหนึ่งคือ คอร์ทั้งหมดอาจถูกเปิดเผยต่อตัวกำหนดตารางเวลาของเคอร์เนลซึ่งจะตัดสินใจว่าแต่ละกระบวนการ/เธรดจะถูกดำเนินการที่ใด สิ่งนี้จำเป็นสำหรับการจัดเรียงแบบไม่จับคู่ แต่ก็อาจใช้กับคอร์ที่จับคู่ได้เช่นกัน ซึ่งก่อให้เกิดปัญหาเฉพาะสำหรับตัวกำหนดตารางเวลาของเคอร์เนล ซึ่งอย่างน้อยกับฮาร์ดแวร์ทั่วไปในปัจจุบัน สามารถสันนิษฐานได้ว่าคอร์ทั้งหมดใน ระบบ SMPนั้นเป็นเนื้อเดียวกันมากกว่าที่จะเป็นเนื้อเดียวกัน การจัดตารางเวลาที่คำนึงถึงพลังงาน (Energy Aware Scheduling) ที่เพิ่มเข้ามาใน Linux 5.0 ในปี 2019 เป็นตัวอย่างของตัวกำหนดตารางเวลาที่พิจารณาคอร์แตกต่างกัน[ 14 ] [ 15 ]
ข้อดีของการจัดตารางงานระดับโลก
- การควบคุมปริมาณงานที่โยกย้ายระหว่างคอร์มีความละเอียดมากขึ้น เนื่องจากตัวจัดตารางเวลาจะโยกย้ายงานระหว่างคอร์โดยตรง จึงช่วยลดภาระงาน ของเคอร์เนลและ เพิ่มประสิทธิภาพการประหยัดพลังงาน ได้
- การนำไปใช้งานในตัวจัดตารางเวลาทำให้การตัดสินใจสลับการทำงานเร็วกว่าในเฟรมเวิร์ก cpufreq ที่ใช้งานใน IKS
- ความสามารถในการรองรับคลัสเตอร์ที่ไม่สมมาตรได้อย่างง่ายดาย (เช่น คลัสเตอร์ที่มีคอร์ Cortex-A15 จำนวน 2 คอร์ และคอร์ Cortex-A7 จำนวน 4 คอร์)
- ความสามารถในการใช้งานทุกคอร์พร้อมกันเพื่อเพิ่มประสิทธิภาพการประมวลผลสูงสุดของ SoC เมื่อเทียบกับ IKS
ผู้สืบทอด
ในเดือนพฤษภาคม 2017 ARM ประกาศ DynamIQ เป็นผู้สืบทอดของ big.LITTLE [ 16 ]คาดว่า DynamIQ จะช่วยให้มีความยืดหยุ่นและปรับขนาดได้มากขึ้นเมื่อออกแบบโปรเซสเซอร์มัลติคอร์ แตกต่างจาก big.LITTLE ตรงที่ DynamIQ เพิ่มจำนวนคอร์สูงสุดในคลัสเตอร์เป็น 8 สำหรับซีพียู Armv8.2, 12 สำหรับ Armv9 และ 14 สำหรับ Armv9.2 [ 17 ]และอนุญาตให้มีการออกแบบคอร์ที่แตกต่างกันภายในคลัสเตอร์เดียว และคลัสเตอร์ทั้งหมดสูงสุด 32 คลัสเตอร์ เทคโนโลยีนี้ยังให้การควบคุมแรงดันไฟฟ้าต่อคอร์ที่ละเอียดกว่าและแคช L2 ที่เร็วขึ้นอีกด้วย
อย่างไรก็ตาม DynamIQ ไม่สามารถใช้งานร่วมกับดีไซน์ ARM รุ่นก่อนหน้าได้ และในเบื้องต้นรองรับเฉพาะ คอร์ CPU Cortex-A75และCortex-A55และรุ่นต่อๆ มา เท่านั้น
อ่านเพิ่มเติม
- David Zinman (25 มกราคม 2013). "สถานะ MP ของ big.LITTLE วันที่ 25 มกราคม 2013" . LWN.net . สืบค้นเมื่อ25 มกราคม 2013 .
- Nicolas Pitre (15 กุมภาพันธ์ 2012). "การสนับสนุน Linux สำหรับ big.LITTLE บน ARM" . LWN.net . สืบค้นเมื่อ18 ตุลาคม 2012 .
- Paul McKenney (12 มิถุนายน 2012). "การอัปเดตตัวกำหนดตารางเวลา big.LITTLE" . LWN.net . สืบค้นเมื่อ18 ตุลาคม 2012 .
- Jake Edge (5 กันยายน 2012). "KS2012: ARM: การอัปเดต big.LITTLE" . LWN.net . สืบค้นเมื่อ18 ตุลาคม 2012 .
- Jon Stokes (20 ตุลาคม 2011). "หน่วยประมวลผล Cortex A7 ใหม่ของ ARM ออกแบบมาโดยเฉพาะสำหรับสมาร์ทโฟน Android ประสิทธิภาพสูง" . Ars Technica . สืบค้นเมื่อ31 ตุลาคม 2012 .
- แอนดรูว์ คันนิงแฮม (30 ตุลาคม 2012). "ARM ก้าวสู่ระบบ 64 บิตด้วยการออกแบบ Cortex-A53 และ Cortex-A57 ใหม่" . Ars Technica . สืบค้นเมื่อ31 ตุลาคม 2012 .
ลิงก์ภายนอก
- การประมวลผลขนาดใหญ่.เล็ก
- การประมวลผล big.LITTLE ด้วย ARM CortexTM-A15 และ Cortex-A7 (PDF) (คำอธิบายทางเทคนิคฉบับเต็ม)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แขนใหญ่.เล็ก
ARM big.LITTLE เป็น สถาปัตยกรรม ประมวลผลแบบเฮเทอโรจีนัส ที่พัฒนาโดย Arm Holdings โดยจับคู่แกนประมวลผลที่ประหยัดพลังงานแบตเตอรี่และทำงานช้ากว่า ( LITTLE )...
ข้อดี
สำหรับไลบรารี ลอจิก CMOS ที่กำหนดไว้ พลังงานที่ใช้จะเพิ่มขึ้นเมื่อลอจิกสลับมากขึ้นต่อวินาที ในขณะที่การรั่วไหลจะเพิ่มขึ้นตามจำนวนทรานซิสเตอร์ เมื่อ ซีพียูแบบประมวลผล นอกลำดับที่ เร็วมาก อยู่ในสถานะไม่ได้ใช้งานที่ความเร็วต่ำมาก ซีพียูที่มี การรั่วไหล...
ข้อเสีย
ในทางปฏิบัติ ระบบ big.LITTLE อาจมีความยืดหยุ่นน้อยกว่าที่คิด ปัญหาหนึ่งคือจำนวนและประเภทของโดเมนพลังงานและสัญญาณนาฬิกาที่ SoC จัดหาให้ ซึ่งอาจไม่ตรงกับคุณสมบัติการจัดการพลังงานมาตรฐานที่ระบบปฏิบัติการมีให้ อีกปัญหาหนึ่งคือ CPU...
การย้ายสถานะการทำงาน
มีสามวิธี [ 6 ] สำหรับการจัดเรียงคอร์โปรเซสเซอร์ที่แตกต่างกันในดีไซน์ big.LITTLE ขึ้นอยู่กับเค้าโครง SoC จริงและ ตัว กำหนดตารางเวลา ที่ใช้งานใน เคอร์เนล [ 7 ]