ทำไมโทรศัพท์ Android มีแกนมากกว่าคอมพิวเตอร์


80

แล็ปท็อปมักจะมีอย่างน้อยสี่คอร์และ dualcores อาจเป็นเรื่องธรรมดามากขึ้น ฉันเพิ่งเปลี่ยนจาก quadcore เป็น dualcore และฉันสามารถยืนยันได้ว่ามีการ จำกัด จำนวน usecases สำหรับ quadcore แม้ว่าจะมีงานที่ต้องใช้ CPU มาก

ในทางกลับกันที่โทรศัพท์มือถือ quadcores, hexacores และ octacores ดูเหมือนจะเป็นเรื่องธรรมดา ทำไม? งานใดบ้างที่สามารถใช้ประโยชน์ได้

ฉันเข้าใจว่าใหญ่ LITTLEสามารถเป็นส่วนหนึ่งของคำตอบ นั่นคือประโยชน์หลักของคอร์หลาย ๆ ตัวนั้นไม่ใช่ความสามารถในการใช้งานทั้งหมดพร้อมกัน แต่ใช้แกนที่มีการใช้พลังงานที่เหมาะสมกับปริมาณงานปัจจุบัน อย่างไรก็ตามตัวอย่างเช่น Snapdragon 625 มีแปด Cortex-A53 แกนซึ่งดูเหมือนจะไม่เป็นกรณีสำหรับใหญ่ LITTLE

อาจสถาปัตยกรรม ARM มีจุดต่ำสุดของประสิทธิภาพที่ดีที่สุดต่อวัตต์ นั่นคือการมีการปรับคอร์เดียวเพื่อประสิทธิภาพที่ดีที่สุดต่อวัตต์ส่งผลให้ประสิทธิภาพของ ARM ต่ำกว่าบน Intel ดังนั้นจึงใช้แกนประมวลผลมากขึ้นเพื่อให้ประสิทธิภาพการทำงานดีขึ้น นี่เป็นเพียงสมมติฐาน

แต่ในกรณีนี้ฉันไม่เห็นว่าเวิร์กโหลดใดสามารถใช้งานได้อย่างมีประสิทธิภาพพูดแปดคอร์บนโทรศัพท์มือถือ บนแล็ปท็อปฉันนึกภาพออกบางส่วนเหมือนการคอมไพล์ (ไม่เพิ่มขึ้น) ของโปรเจ็กต์ แต่ในโทรศัพท์?

  • เกมสามารถหิวกระหายประสิทธิภาพ แต่โดยปกติแล้วพวกเขาต้องการประสิทธิภาพของ GPU มากกว่า CPU ไม่ใช่เหรอ?
  • ในทางทฤษฎีแกนประมวลผลหลายแกนสามารถเร่งความเร็วการคอมไพล์ Android Lollipop / Marshmallow AOT เมื่อทำการติดตั้งหรือเมื่อทำการอัพเกรด (เช่นเฟส“ แอพปรับแต่งประสิทธิภาพ 3/121”) อย่างไรก็ตามฉันไม่แน่ใจว่าจะใช้ประโยชน์จากหลายแกนได้หรือไม่ เท่าที่ฉันจำรหัสได้มีการรวบรวมแอปเพียงครั้งเดียว แต่อาจมีการขนานกันบ้างในกระบวนการรวบรวมตัวเอง
  • Android 7+ ยังสามารถใช้ประโยชน์หลายคอร์เมื่อรวบรวม แต่เนื่องจากมีรายงานว่ารวบรวมเมื่อไม่มีการใช้งานและการชาร์จจึงมีประโยชน์น้อยมาก อย่างน้อยเมื่อมีการคิดค่าบริการโทรศัพท์ข้ามคืน - ฉันไม่สนใจว่าจะใช้เวลา 30 นาทีหรือสองชั่วโมงในสถานการณ์ดังกล่าว

ในขณะที่ฉันชี้ให้เห็นในคำตอบของฉันโปรดจำไว้ว่าคุณดูเหมือนจะมองสิ่งต่าง ๆ คว่ำ การประมวลผลหลัก / ขนานจำนวนมากนั้นเป็นเรื่องปกติไม่ใช่โทรศัพท์ของคุณที่มีความผิดปกติในการมีหลายคอร์ แต่เป็นพีซีซีพียูที่ผิดปกติ
motoDrizzt

4
คำถามของคุณมีข้อบกพร่องพีซีสามารถมีแกนได้มากกว่าโทรศัพท์ intel.com/content/www/us/en/products/processors/core/x-series/ ......และนั่นก็ไม่ได้เข้าสู่เครื่องเซิร์ฟเวอร์ระดับซึ่งสามารถมีหลายสิบหรือหลายร้อยแกน (และซูเปอร์คอมพิวเตอร์บางเครื่องก็เข้าสู่ช่วงพันคอร์)
JAB

3
@ JAB แน่นอน แต่ฉันไม่ได้พูดถึงจำนวนคอร์มากที่สุด สำหรับแล็ปท็อปมากกว่า Quadcores นั้นค่อนข้างแปลก แต่คุณอาจพบข้อยกเว้นบางอย่างอาจเป็นกับ Xeon สำหรับโทรศัพท์มือถือแม้แต่ octacores ก็ดูเหมือนจะค่อนข้างธรรมดา
v6ak

4
"ฉันเพิ่งเปลี่ยนจาก quadcore เป็น dualcore และฉันสามารถยืนยันได้ว่ามีการ จำกัด จำนวน usecases สำหรับ quadcore แม้ว่าจะมีงานที่ต้องใช้ CPU มาก" - คุณสามารถขยายและอธิบายเพิ่มเติมเกี่ยวกับข้อสรุปนั้นได้หรือไม่?
อับดุล

@Abdul ส่วนใหญ่มาจากการสังเกตของฉัน (เห็นโหลดระบบโดยใช้ htop หรือเครื่องมือที่คล้ายกัน) และบางส่วนจากข้อสรุปของฉัน แม้แต่ทากสค์บางตัวที่ฉันคาดหวังว่าการขนาน Firefox (ESR) มักใช้งานมากที่สุดหนึ่งคอร์ การรวบรวมที่เพิ่มขึ้น - ฉันไม่ได้วัดมัน แต่อย่างสังหรณ์ใจมีโอกาสไม่มากนักในการหางานอิสระ (การรวบรวมแบบเต็มเป็นกรณีอื่น)
v6ak

คำตอบ:


63

ในขณะที่คุณได้ระบุไว้แล้วbig.LITTLEกลยุทธ์การรวมกัน (ในทางเทคนิคHMP , วิวิธ Multi-การประมวลผลกลุ่ม) เป็นเหตุผลหลักในการจำนวนมาก (และบางครั้งนำโด่งหลายคน) แกน อุปกรณ์มือถือมักจะทำงานในหลาย ๆ สถานการณ์ทั้งภาระหนักและน้ำหนักเบารวมอยู่ด้วย

ตัวอย่างระดับผู้บริโภคที่มากที่สุดคือ Helio X20 ของ MediaTek ซึ่งมีแกนประมวลผล A72 2 แกน, แกน A53 สมดุล 4 แกน, และแกนประหยัดพลังงาน A35 4 เสา มีความยืดหยุ่นสูงในกรณีการใช้งานที่แตกต่างกัน อย่างไรก็ตามฉันคิดว่า8 cores 2 clusters นั้นเพียงพอแล้ว

นอกจากนี้ยังมีอีกตัวอย่างที่เหมือนเดสก์ท็อป Snapdragon 800 series (S 800, S 801 และ S 805) ของ Qualcomm มีเพียงสี่แกนของ microar Architecture เดียวกันในแต่ละ SoC โดยมี 2 clocked ที่สูงขึ้นและ 2 clocks ที่ต่ำกว่า วอลคอมม์ได้สร้าง SoCs เหล่านี้เพราะพวกเขามีความมั่นใจมากเกี่ยวกับสถาปัตยกรรมแบบไมโคร (Krait 400 และ Krait 450)

สำหรับเกมแม้ว่าพวกเขาดูเหมือนจะต้องการประสิทธิภาพของ GPU มากกว่าซีพียู แต่พวกเขายังคงใช้งาน CPU จำนวนมาก GPU ไม่สามารถทำงานคนเดียวได้หากไม่มีสิ่งอื่นที่จะส่งข้อมูลไปประมวลผลและนั่นเป็นหนึ่งในงานสำคัญที่ CPU ทำในขณะที่คุณกำลังเล่นเกม ในกรณีส่วนใหญ่เกม GPU จะแสดงผลกราฟิกเท่านั้นในขณะที่งานอื่น ๆ ทั้งหมดเช่นการโหลดข้อมูลทรัพยากรและสินทรัพย์และการคำนวณกลไกในเกมเช่นระบบสภาพแวดล้อมและฟิสิกส์ทำโดย CPU คุณจะไม่สังเกตอัตราเฟรมที่สูงขึ้นหากคุณอัพเกรด GPU ของคุณในขณะที่ติดกับ CPU ระดับล่าง

เหตุผลที่สองคือวิธี Android ใช้ทรัพยากรของ Android ค่อนข้างทำให้สภาพแวดล้อมการใช้งานของตัวเอง มันใช้อะไรนอกจากรหัส (และ API) จาก Java แต่มีเครื่องเสมือนของตัวเองชื่อ Dalvik ซึ่งภายหลังถูกแทนที่ด้วย ART (API ระดับ 21) APK มีรหัสที่ใช้งานได้ในรูปแบบ "เป็นกลาง" เหมือนกับ.classไฟล์ใน Java ก่อนที่พวกเขากำลังทำงานรหัสที่ได้รับการรวบรวมอีกครั้งเข้าไปในคำแนะนำพื้นเมืองของเครื่อง[1] กระบวนการรวบรวมเป็นแบบมัลติเธรดและสามารถใช้หลายคอร์เพื่อเพิ่มประสิทธิภาพ
และเมื่อแอพทำงานอยู่มีกระบวนการและกลไกอื่น ๆ อีกมากมาย (เช่น Garbage Collector) ที่ทำงานเคียงข้างหรือขนานกับแอพ แกนเพิ่มเติมสามารถให้กระบวนการสนับสนุนทำงานได้อย่างมีประสิทธิภาพมากขึ้นเช่นเดียวกับแอปหลัก
1. หากคุณใช้ตัวระบุประเภทไฟล์คุณจะพบว่าไฟล์ dex "ที่ได้รับการปรับปรุง" อยู่ในรูปแบบของเอลฟ์ในขณะที่ไฟล์ dex ที่ "เป็นกลาง" นั้นอยู่ในรูปแบบของตนเอง

อีกเหตุผลที่น้อยกว่าคือการที่แกน ARM ไม่สามารถทำงานได้อย่างรวดเร็วเป็นชิป microarchitecture ของ Intel x86 สามารถย้อนกลับไปในปี 1976 เมื่อชิป Intel 8086เริ่มได้รับการออกแบบซึ่งหมายความว่า x86 นั้นได้พัฒนามาเป็นเวลานาน ARM Cortex-A73 ระดับไฮเอนด์ที่ทันสมัยมีเพียงแกนเดียวที่มีประสิทธิภาพเท่ากับ Intel Clarkdale core โดยใช้Core i5-660เป็นตัวอย่าง (GeekBench, single-core) นี่เป็นเพราะ x86 เป็นสถาปัตยกรรมแบบไมโครCISCในขณะที่ ARM เป็นRISCสถาปัตยกรรม คุณไม่ต้องการโทรศัพท์ที่ล้าหลังด้วยแอพที่ใช้งานเพียงสองแอพ แกนเพิ่มเติมจะช่วยบรรเทาความดัน นั่นเป็นเหตุผลว่าทำไม SoC แบบดูอัลคอร์จึงเป็นที่นิยมในนาฬิกาสมาร์ทโฟนเท่านั้น ใครต้องการประสิทธิภาพในนาฬิกาสมาร์ท

ที่น่าสนใจแกนมากขึ้นจะส่งผลให้พลังงานน้อยกว่าหลักเดียวที่โหลดเดียวกัน ความสัมพันธ์ระหว่างความถี่ซีพียูและการใช้พลังงานเป็นมากกว่าเชิงเส้นดังนั้นความถี่สองเท่าจะส่งผลให้เกิดความต้องการมากกว่าสองเท่าหรือแม้กระทั่งพลังงาน 3x หรือ 4x เท่าในขณะที่ให้ประสิทธิภาพน้อยกว่าสองเท่า (เนื่องจากข้อ จำกัด ทรัพยากรอื่น ๆ เช่นแคช ) ดังนั้น 4 คอร์สามารถเอาชนะแกนเดียวที่โหลดเดียวกันได้อย่างง่ายดายให้ประสิทธิภาพที่ดีขึ้นและใช้พลังงานน้อยกว่าพร้อมกัน

อ่านเพิ่มเติม:


1
ฉันจำได้ว่าอ่านหรือดูที่ไหนสักแห่งที่ลินุกซ์เคอร์เนลทำงานบนการสนับสนุนแบบมัลติคอร์ที่ดีโดยมุ่งเน้นที่ซูเปอร์คอมพิวเตอร์หลายปีที่ผ่านมาและความพยายามเหล่านี้พิสูจน์ได้ว่ามีประโยชน์ "ในอนาคต" (ตอนนี้) สำหรับสมาร์ทโฟน อุบัติเหตุ "
Marc.2377

3
คำตอบนี้ดูเหมือนจะไม่ตอบคำถามจริงๆแม้ว่าจะได้รับการยอมรับ คำตอบนี้ดูเหมือนจะตอบว่า "ทำไมฉันถึงต้องการแกนเพิ่มเติมในโทรศัพท์ของฉัน" ซึ่งไม่ใช่คำถามในมือ มันไม่ได้อธิบายความแตกต่างระหว่างพีซีและโทรศัพท์ คะแนนที่ให้เกี่ยวกับสาเหตุที่โทรศัพท์อาจต้องการคอร์เพิ่มเติมที่ใช้กับคอมพิวเตอร์เดสก์ท็อปโดยเฉพาะอย่างยิ่งประเด็นเกี่ยวกับการเล่นเกม
แอรอน

8
การอ้างสิทธิ์ในปี 1976 บนซีพียู x86 ค่อนข้างทำให้เข้าใจผิด แกน ARM สามารถย้อนกลับไปยังโครงการ Acorn RISC Machine ในปี 1983 เพียง 7 ปีต่อมาและในบางวิธีการที่ใหม่กว่าเป็นข้อได้เปรียบ Acorn ได้เรียนรู้หลายสิ่งที่ผิดกับการพัฒนาของ x86 และการออกแบบซีพียูที่คล้ายกัน แขน.
user1937198

2
นอกจากนี้ RISC กับ CISC ยังไม่เกี่ยวข้องกับสิ่งใด Intel CPUs ใช้งาน RISCish core ภายใน (uops) ความแตกต่างที่แท้จริงนั้นเกิดจากการสั่งซื้อหรือเทียบกับการสั่งซื้อ
user1937198

5
สิ่งที่ x86 ค่อนข้าง ... ผิด พวกเขาเป็นชิปที่มีความเร็วสูงกว่าการใช้งานขั้นพื้นฐานจะไม่สามารถทำได้ทุกที่ใกล้เคียงกับท่อ RISC แบบคลาสสิกที่ใช้ในชิป ARM ส่วนใหญ่ นอกจากนี้ยังเป็นที่น่าสังเกตว่าการเชื่อมโยงคอร์เข้ากับการออกแบบซูเปอร์สเกลาร์นั้นยากมากเนื่องจากการดำเนินการตามคำสั่งซื้อและลำดับชั้นของแคช ไม่มีใครรู้ว่าพวกเขาหายไปไหนดังนั้นจึงไม่ต้องการมัน หากคุณสังเกตเห็นว่าการทำซ้ำ Intels ที่ใหม่กว่าบางส่วนไม่ได้อยู่ในชิปนับคอร์ระดับสูง - พวกเขาอยู่บน Broadwell นี่เป็นเพราะพวกเขาทิ้งการซิงค์สิ่งต่าง ๆ - ออกจากพื้นที่
Alec Teal

15

เหตุผลนั้นง่ายมากเท่าที่ซับซ้อน

คำตอบสั้น ๆ คือ "เพราะตลาดโทรศัพท์มือถือไม่เคยมีมาก่อนและไม่ได้ขับเคลื่อนโดย Intel"

คำตอบที่ยาวนานนั้นยาวเกินไปที่จะกลับมาทำงานต่อที่นี่ แต่แนวคิดพื้นฐานคือ Intel ได้ครองตลาดพีซีมาหลายปีด้วยความเป็นไปได้ทั้งหมดจนถึงจุดจ่ายเงินและเสียหาย (และถูกปรับสำหรับเรื่องนี้) เพื่อให้ CPU ของเขาเป็น ตัวเลือกแรกและตัวเดียวสำหรับผู้ผลิตพีซี

การมีการควบคุมโดยรวมของตลาดทำให้ Intel สามารถขยายราคา CPU ในขณะที่ตัดสินใจเลือกคุณสมบัติและกำลังการประมวลผลที่ผู้ใช้ต้องการและถ้าคุณวิเคราะห์ประวัติ Intel สักเล็กน้อยคุณจะสังเกตได้ว่าจุดเด่นหลักของมันคือ การเพิ่มขึ้นของความถี่ซีพียูดังนั้นส่วนใหญ่ไม่เคยพยายามทำสิ่งที่ฉลาดหรือนวัตกรรม และมันก็ไม่ต้องการมันเพราะมันสามารถพูดกับคนอื่นได้ว่า "คุณไม่ต้องการคอร์มากขึ้น แต่ฉันมีซีพียูตัวใหม่ที่ทำงานเร็วกว่า 100 MHz" ในขณะเดียวกันก็สามารถขายซีพียูแบบมัลติคอร์ในตลาดเซิร์ฟเวอร์ในราคาที่สูงมาก (เพราะเซิร์ฟเวอร์ต้องการเสมอกำลังคู่ขนานเป็นตันจนถึงจุดที่มีแนวโน้มในปัจจุบันในการพยายามตระหนักถึงเซิร์ฟเวอร์ที่ใช้ ... คาดเดาอะไร ซีพียูโทรศัพท์ราคาถูกหลายร้อยเครื่องทำงานพร้อมกัน)

ในทางกลับกันนี่สะท้อนให้เห็นในชุมชนนักพัฒนาซึ่งไม่เคยทันกับความสำคัญของการเขียนโปรแกรมแบบขนานดังนั้นหลายคนถ้าไม่ส่วนใหญ่ไม่เคยใส่ใจที่จะใช้มากกว่าหนึ่งเธรดในเวลาหรือเพื่อแสดงมันใน ทางเทคนิคการมีซอฟต์แวร์ทำมากกว่าหนึ่งงานในเวลาเดียวกัน ซึ่งโดยวิธีการนั้นเหมาะสมเมื่อ 99% ของฐานลูกค้าของคุณมีสองคอร์สูงสุด น่าเศร้าที่สิ่งนี้นำไปสู่ตำนานว่าอัลกอริธึมแบบขนานนั้นยากที่จะนำไปใช้จริงและนำไปใช้กับปัญหาย่อยเพียงเล็กน้อยเท่านั้น

ในที่สุดตลาดมือถือไม่เคยเห็นความสำเร็จของ Intel มาก่อน ที่จริงแล้วมันเกิดขึ้นบ่อยครั้งที่ Intel พยายามทำบางสิ่งที่แตกต่างจากสถาปัตยกรรม X86 ปกติ ดังนั้นสิ่งที่ขาดคืออิทธิพลและการควบคุมของตลาดผู้ผลิตซีพียูคนอื่น ๆ ได้ไปในทิศทางที่เป็นบรรทัดฐานสำหรับยุคสมัยที่อยู่นอกตลาดพีซี: การคำนวณแบบขนาน


12
คุณแน่ใจหรือว่าคุณตอบคำถามที่ถูกต้อง ?
iBug

7
@iBug คำตอบนี้ใช้กับคำถามของ OP ได้ดีกว่าคำตอบที่ยอมรับ คำตอบที่ได้รับการยอมรับคือคำตอบที่ไม่ตอบคำถามที่ถูกต้อง
แอรอน

6
"เพิ่มราคา CPU ให้สูงขึ้น" -> หาก Intel ทำราคาที่สูงเกินจริงเหตุใดการแข่งขันจึงใช้ฮาร์ดแวร์ที่มีราคาใกล้เคียงกันและทำไมคอมพิวเตอร์ที่ใช้ระบบ ARM จึงดูดแรงเมื่อเทียบกับฮาร์ดแวร์ของ Intel intel-hating นี้ไร้สาระ ทำให้ CPU เป็นเรื่องยาก สิ่งที่ทำให้ ARM ได้รับความนิยมในหมู่อุปกรณ์พกพานั้นเป็นแนวคิดที่ยิ่งใหญ่ LITTLE เป็นสิ่งที่พวกเขาคิดต่อหน้า Intel
T. Sar

6
Intel ไม่ได้ควบคุมตลาดชิปพีซีและไม่ได้ใช้เวลาหลายปี และเหตุผลที่ผู้ออกแบบชิปเปลี่ยนจากนาฬิกาที่เร็วขึ้นมาเป็นแกนที่มากขึ้นก็คือนาฬิกาที่เร็วขึ้นนั้นมากระทบข้อ จำกัด ทางกายภาพพื้นฐานบางอย่าง แกนเพิ่มเติมเป็นปัญหาที่ยากกว่ามากในการแก้ไขดังนั้นพวกเขาจึงนำออกไปจนกว่าจะเป็นวิธีที่คุ้มค่าที่สุดในการเพิ่มประสิทธิภาพ
Kevin Krumwiede

6
นี่เป็นเรื่องที่น่าตำหนิมากเกี่ยวกับ บริษัท Intel ที่ชั่วร้ายซึ่ง IMO นั้นไม่สมควรได้รับเนื่องจาก ARM ผลิตสกรูชิปอิสระพร้อมใบอนุญาตเช่นกัน
Dmitry Grigoryev

9

มีสองปัจจัยที่เกิดขึ้นหนึ่งในทางปฏิบัติมากและประวัติศาสตร์อื่น ๆ

เหตุผลในทางปฏิบัติคือการใช้สถาปัตยกรรมแบบผสมในโทรศัพท์ การใช้พลังงานเป็นสิ่งสำคัญสำหรับโทรศัพท์และโทรศัพท์ใช้เวลาในโหมดที่ต้องการประสิทธิภาพที่น้อยมาก มันสมเหตุสมผลที่จะมีคอร์บางส่วนที่ปรับให้เหมาะสมสำหรับการใช้พลังงานน้อยที่สุดเมื่อต้องการประสิทธิภาพเพียงเล็กน้อยในขณะที่มีคอร์บางส่วนที่ได้รับการปรับแต่งเพื่อให้มีประสิทธิภาพสูงสุดเมื่อต้องการ

เหตุผลอื่นเป็นส่วนใหญ่ทางประวัติศาสตร์ จนถึงปี 2005 เดสก์ท็อปซีพียูจะเป็นแกนเดี่ยวทั้งหมด การปรับปรุงประสิทธิภาพของ CPU บนเดสก์ท็อปนั้นประกอบไปด้วยการสร้างคอร์ที่สามารถดำเนินการตามคำสั่งได้หลายวินาทีต่อวินาที แม้กระทั่งทุกวันนี้ซอฟต์แวร์เดสก์ท็อปจำนวนมากไม่สามารถใช้ประโยชน์จากคอร์หลายคอร์ได้อย่างเต็มที่ซึ่งหลาย ๆ คนอาจต้องการซีพียูที่มี 4 คอร์มากกว่าซีพียู 8 คอร์ที่มีคอร์ช้าลง 20%

การเพิ่มประสิทธิภาพการทำงานจากแกนเดียวให้ได้มากที่สุดนั้นต้องการอสังหาริมทรัพย์จำนวนมาก นี่คืออสังหาริมทรัพย์ที่สามารถนำมาใช้เพื่อให้แกนเพิ่มเติม นี่คือเหตุผลที่ว่าทำไม Kaby Lake CPU รุ่นใหม่ล่าสุดของ Intel จึงสามารถใช้งานได้สูงสุด 4 คอร์และผู้คนซื้อเพราะแต่ละคอร์นั้นเร็วกว่าคอร์รุ่นก่อน สำหรับหลาย ๆ คนพวกเขากำลังอัปเกรดแม้กระทั่งจากซีพียูที่มีจำนวนคอร์ที่สูงกว่า

เมื่อเวลาผ่านไปคาดว่าจะเห็นซอฟต์แวร์เดสก์ท็อปจำนวนมากได้รับการปรับแต่งอย่างเต็มที่เพื่อรองรับคอร์เพิ่มเติม เมื่อเกิดเหตุการณ์เช่นนี้การแลกเปลี่ยนทางวิศวกรรมจะเริ่มให้ประโยชน์กับแกนประมวลผลมากกว่าบนแกนประมวลผลบนเดสก์ท็อป ในขณะที่แกนประมวลผลจะยังคงทำงานได้เร็วขึ้นอย่างแน่นอนคุณจะเริ่มเห็นคนที่ชอบซีพียู 8 คอร์มากกว่าซีพียู 4 คอร์แม้ว่าแต่ละคอร์จะช้ากว่า 20% ก็ตาม นักออกแบบชิปจะตามตลาด


5

มันเป็นสิ่งสำคัญสำหรับโทรศัพท์ที่จะสามารถให้พลังการคำนวณในช่วงเวลาสั้น ๆ (เราต้องการแอพบางตัวที่เร็ว) แต่เพื่อหลีกเลี่ยงความร้อนสูงเกินไป (การระบายความร้อนนั้นยากกว่าโทรศัพท์สำหรับแล็ปท็อปหรือพีซี) เพื่อให้บรรลุผลนี้สถาปนิกออกแบบโทรศัพท์ให้ใช้แกนเดียวเมื่อเวิร์กโหลดมีน้ำหนักเบาและมอบคอร์เพิ่มเติมเพื่อเพิ่มประสิทธิภาพเมื่อจำเป็น หากโทรศัพท์ต้องใช้คอร์ที่มีขนาดใหญ่น้อยลงความร้อนสูงเกินไปจะกลายเป็นปัญหาแม้ว่าปริมาณงานจะค่อนข้างเบา

ที่มา: หลักสูตรสถาปัตยกรรมคอมพิวเตอร์ระดับบัณฑิตศึกษา


ความจริงที่ได้รับการบอกความสามารถในการให้พลังงานการคำนวณ (ถ้านั่นคือสิ่งที่คุณหมายถึงโดยพลังงาน ) ในระยะสั้นระเบิดเป็นสิ่งสำคัญสำหรับเดสก์ทอปเช่นกัน นั่นเป็นเหตุผลที่พวกเขามี TurboBoost บนชิป Intel
Dmitry Grigoryev

ใช่พลังการคำนวณเป็นสิ่งที่ฉันหมายถึง จริงอุปกรณ์ทั้งหมดที่คาดว่าจะมีปริมาณงานมากในบางช่วงเวลา (รวมถึงโทรศัพท์และเดสก์ท็อป) จะต้องสามารถจัดการได้ ความแตกต่างที่สำคัญคือการกระจายความร้อน
Tara Eicher

ฉันเห็นด้วยกับสิ่งที่คุณพูดแค่อยากจะชี้ให้เห็นว่าปริมาณงานที่มากเกินไปไม่ได้เฉพาะกับโทรศัพท์
Dmitry Grigoryev

2

ก่อนอื่นเครื่องเสมือน Java สามารถได้รับประโยชน์จากมัลติคอร์มากกว่าซอฟต์แวร์เดสก์ท็อปทั่วไป แม้ว่าคุณจะเขียนแอพพลิเคชั่นแบบเธรดเดียวใน Java มันจะทำงานได้เร็วขึ้นบนมัลติคอร์เนื่องจากรหัสตัวเก็บรวบรวมขยะส่วนใหญ่จะทำงานควบคู่ไปกับแอพของคุณ

ประการที่สองมีหลายสิ่งที่กำลังเกิดขึ้นในพื้นหลังบนโทรศัพท์ของคุณ: การอัปเดตอัตโนมัติ, การดาวน์โหลดโฆษณา, ซอฟต์แวร์ป้องกันไวรัส, การจัดการโมดูล GSM และอื่น ๆ บนแล็ปท็อปงานทั้งหมดเหล่านี้จะทำให้แกนหลักไม่ว่าง มีประสิทธิภาพน้อยกว่ามากดังนั้นคุณอาจต้องการมีอย่างน้อยสองสามข้อสำหรับงานแบ็คกราวน์ถ้าคุณต้องการระบบตอบสนอง

ในที่สุดก็มีการตลาด มีผู้ใช้ไม่กี่คนที่สามารถประเมินว่าพวกเขาจะได้รับประโยชน์จาก 8 คอร์หรือไม่ แต่สมาร์ทโฟน 8 คอร์นั้นฟังดูมีราคาแพงกว่า 2 หรือ 4 คอร์อย่างแน่นอน


2
ฉันเห็นข้อความตามแนว "แกนกลางมีประสิทธิภาพน้อยกว่ามาก" - นั่นหมายความว่าอย่างไร พวกเขามีความเร็วสัญญาณนาฬิกาน้อยลงหรือไม่
Abdul

2
@Abdul ดำเนินการน้อยกว่าต่อวินาที ชิป x86 สามารถดำเนินการหลายอย่างพร้อมกันได้ดังนั้นจึงมีประสิทธิภาพเหนือกว่า ARM แม้จะใช้ความเร็วสัญญาณนาฬิกาเดียวกัน ตรวจสอบการเปรียบเทียบนี้ : ชิป ARM ชั้นนำ (GT-I9100) ช้ากว่าชิป x86 ด้านบนประมาณ 10 เท่า (i7-2920XM)
Dmitry Grigoryev

"การดำเนินงานต่อวินาที" ตรงกันกับ FLOPS หรือไม่
Abdul

@Abdul ไม่จำเป็นต้อง ในความเป็นจริงนอกเหนือจากเกมและการจำลองทางฟิสิกส์แล้วจุดลอยตัวยังไม่ได้ใช้มากนัก นอกจากนี้ชิป ARM หลายตัวยังบรรลุ FLOPS ที่เหมาะสมโดยทำลายความแม่นยำดังนั้นจึงไม่ใช่การวัดที่แท้จริงเช่นกัน
Dmitry Grigoryev

แอพ Android ไม่ทำงานบนเครื่องเสมือน Java พวกเขาทำงานบน Dalvik VM
phuclv

1

คำตอบที่ได้อธิบายถึงปัญหาบางประการของปัญหาที่นำไปสู่จำนวนแกนประมวลผล CPU จำนวนมากบนโทรศัพท์ Android อ่านอีกครั้ง; โทรศัพท์ Android iPhone มีการจัดการที่จะติดอยู่กับแกนหลักเพียงไม่กี่แห่งสำหรับอายุและยังคงทำงานได้ราบรื่นกว่าเรือธง Android ใด ๆ

นักออกแบบของ Android เล่นการพนันขนาดใหญ่เมื่อตัดสินใจเลือกการเขียนโปรแกรม Java และเป็นผลให้ JVM เป็นรันไทม์ของแอปพลิเคชัน Java เนื่องจากหลักการออกแบบของมันแก้ปัญหาของความต้องการในการรวบรวมและสร้างรหัสสำหรับสถาปัตยกรรมซีพียูแต่ละแห่งก่อนที่มันจะสามารถทำงานได้โดยการเสียสละประสิทธิภาพ Java แนะนำเครื่องเสมือนที่มีน้ำหนักมากและขนาดใหญ่มักเรียกว่า JVM JVM เลียนแบบ CPU ในระดับซอฟต์แวร์เพื่อหลีกเลี่ยงความจำเป็นในการรวบรวมรหัสแยกต่างหากสำหรับแต่ละอุปกรณ์ คิดว่า JVM เป็น CPU เสมือนที่มีคุณสมบัติเดียวกันโดยไม่คำนึงถึงอุปกรณ์ที่ใช้งานดังนั้นรหัสจะต้องรวบรวมเพียงครั้งเดียวสำหรับ JVM และสามารถทำงานได้ในทุกอุปกรณ์ สิ่งนี้ทำให้ผู้ผลิตสามารถโยนฮาร์ดแวร์ใด ๆ ที่พวกเขาต้องการก่อนที่จะต้องกังวลเกี่ยวกับความเข้ากันได้ของแอปพลิเคชัน

JVM เป็นเพียงข้อมูลจำเพาะและผู้คนมีอิสระในการพัฒนา JVM ของตนเองได้ตราบใดที่มันเป็นไปตามข้อกำหนดนี้ Android JVM ดั้งเดิมเรียกว่า Dalvik ทุกวันนี้ Google ได้แทนที่ด้วย ART

ตอนนี้ปัญหากับ JVM คืออะไร? เป็นซอฟต์แวร์จำนวนมากที่ใช้ทรัพยากรการคำนวณจำนวนมาก เพิ่มคุณสมบัติอื่น ๆ ของภาษาจาวาเช่น Garbage Collection และการใช้ทรัพยากรของ JVM มากเกินไปสำหรับอุปกรณ์ที่มีกำลังไฟปานกลาง แต่ละแอปพลิเคชันและบริการของระบบที่เปิดบนอุปกรณ์ของคุณเป็นตัวอย่างของ ART JVM และตอนนี้คุณสามารถสรุปได้ว่าการจัดการพวกเขาทั้งหมดต้องใช้ฮาร์ดแวร์ที่มีความสามารถจริง ๆ สิ่งที่จะเลวร้ายยิ่งเมื่อมีความจำเป็นต้องวาดส่วนต่อประสานผู้ใช้

แต่ละแอปพลิเคชันทำงานบนเธรดจำนวนหนึ่ง ซีพียูแต่ละคอร์สามารถรันได้ครั้งละหนึ่งเธรดเท่านั้น แต่ละแอพมีเธรดหลักหนึ่งรายการซึ่งเกี่ยวข้องกับส่วนติดต่อผู้ใช้ อาจมีหลายเธรดต่อแอปพลิเคชันสำหรับการเข้าถึงไฟล์เครือข่ายและอื่น ๆ โดยทั่วไปจะมีแอป (และบริการของระบบ) เปิดมากกว่าที่มีคอร์ CPU และผลที่ตามมามักจะมีเธรดมากกว่าคอร์ CPU ดังนั้นแต่ละคอร์ต้องสลับไปมาระหว่างการประมวลผลเธรดที่แตกต่างกันอย่างต่อเนื่องโดยทำแต่ละอันเล็กน้อยและต่อไป การสลับนี้ใช้เวลานานสำหรับซีพียูและในกรณีที่แอปพลิเคชันเป็น JVM เป็นหลักงานนี้จะยิ่งละเอียดยิ่งขึ้น

จากคำอธิบายนี้เราสามารถอนุมานได้ว่า Android ต้องการฮาร์ดแวร์ที่มีประสิทธิภาพเพื่อให้ทำงานได้อย่างราบรื่น อุปกรณ์ Android รุ่นแรก ๆ มีชื่อเสียงด้านการล้าหลังการล่มสลายและสิ่งที่โชคร้ายอื่น ๆ อีกมากมาย แต่ในช่วงหลายปีที่ผ่านมาปัญหาเหล่านี้ได้รับการแก้ไขโดยอาศัยฮาร์ดแวร์ที่มีประสิทธิภาพ

ในทางกลับกันแอปพลิเคชั่น iOS จะถูกคอมไพล์เป็นรหัสเครื่องดั้งเดิมดังนั้นจึงไม่จำเป็นต้องใช้การจำลองเสมือน ภาษาที่ใช้และระบบปฏิบัติการมีประสิทธิภาพมากขึ้นด้วยเหตุนี้ทำให้อุปกรณ์เหล่านี้ยังคงราบรื่นโดยไม่จำเป็นต้องใช้ชิปเซ็ต overkill


นี่เป็นคำอธิบายที่ดีว่าทำไมโทรศัพท์มือถือถึงมีประสิทธิภาพมากกว่าเดสก์ท็อป หรือไม่พวกเขา?
maaartinus

“ สิ่งนี้ช่วยให้ผู้ผลิตโยนฮาร์ดแวร์ใด ๆ ที่พวกเขาต้องการก่อนที่จะต้องกังวลเกี่ยวกับความเข้ากันได้ของแอปพลิเคชัน” - ข้อดี แต่ฉันไม่แน่ใจว่านี่เป็นความตั้งใจของระบบที่ตั้งใจไว้
v6ak

“ อาจมีหลายเธรดต่อแอปพลิเคชันสำหรับการเข้าถึงไฟล์เครือข่ายและอื่น ๆ ” ซึ่งค่อนข้างเป็น I / O-bound ไม่ต้องใช้ CPU มาก บางครั้ง I / O ถูกจัดการโดยเธรดเดียวเนื่องจาก CPU เร็วกว่าอุปกรณ์ I / O มาก
v6ak

“ อุปกรณ์รุ่นแรก ๆ ของ Android นั้นมีชื่อเสียงด้านการล้าหลังและอื่น ๆ อีกมากมาย” - ฉันจำได้ว่าใช้ Marshmallow บนโทรศัพท์มือถือ (Xperia Mini Pro) และฉันคิดว่ามีเหตุผลอื่น ๆ อีกมากมายที่ทำให้ช้ากว่า CPU พวกเขาทำงานบน RAM ต่ำมีอุปกรณ์แฟลชช้าลงเช่น MTD (ช้ากว่า microSD การ์ดมากสำหรับการดำเนินการบางอย่าง), Android รุ่นเก่ามีประสิทธิภาพน้อยกว่า“ JVM” (ซึ่งไม่ใช่เทคนิค JVM) แน่นอนว่า CPU ที่ดีกว่าก็ช่วยได้เช่นกัน แต่ฉันก็ยังห่างไกลจากข้อสรุปดังกล่าว
v6ak

นอกจากนี้รูปแบบการเขียนโปรแกรมเช่นการแสดง I / O (หรือการดำเนินการที่ยาวนานอื่น ๆ ) ในเธรด UI สามารถทำให้แอปล่าช้าโดยไม่คำนึงถึงประสิทธิภาพของ CPU AFAIK สไตล์นี้ค่อนข้างพบได้บ่อยในแอพ Android ตอนต้น แอพดังกล่าวอาจล้าหลังแม้กับโทรศัพท์ที่ทันสมัย พวกมันอาจจะมีความล่าช้าน้อยกว่า แต่นั่นก็เนื่องมาจากหน่วยความจำแฟลชที่เร็วกว่าซีพียูที่เร็วกว่าหรือคอร์อื่น ๆ
v6ak

0

การกลับมาทำงานต่อทั้งหมดฉันสามารถพูดได้ว่าการใช้เคสของพีซีและโทรศัพท์นั้นแตกต่างกันมาก พีซีที่ใช้บ่อยที่สุดในแอปเดี่ยวหรือคู่ (แน่นอนว่าเบราว์เซอร์ที่มีแท็บมากมายต้องใช้ซีพียูคอร์จำนวนมากสามารถหน่วงเวลาแม้กระทั่งบน i-3) โทรศัพท์ที่ใช้มัลติทาสก์ อย่างน้อยการเชื่อมต่อเครือข่าย, UI วาด, ทริกเกอร์ระบบ, การแจ้งเตือน หากคุณเปิดตัวจัดการงานบนพีซีก็มีหลายกระบวนการเช่นกัน แต่พวกเขาใช้พลังงานซีพียูน้อยกว่าไม่กี่% แม้แต่ใน Core 2 duo รุ่นเก่า 4 คอร์นั้นค่อนข้างถูก (MTK 65x2 นั้นราคา 1 $ เมื่อเริ่มต้นสำหรับ OEM) นอกจากนี้ยังมีความเสี่ยงเมื่อเทียบกับ CISC เมื่อการขาดประสิทธิภาพต่อคอร์ครั้งสุดท้าย พลังงานอย่างมีประสิทธิภาพ! = มีประสิทธิภาพในขณะที่เราสามารถดูที่นี่ มัลติคอร์เหมาะอย่างยิ่งสำหรับมือถือเนื่องจากไม่มีโหลดดอกยางที่หนักหน่วงและประสบการณ์การใช้งานแบบมัลติทาสก์ (แต่เราเห็นได้ว่าไอโฟนต้องใช้คอร์และ RAM น้อยกว่าเนื่องจากซอฟต์แวร์ที่ดีเหมือนในวิดีโอนี้หรือคนอื่น ๆ )


สิ่งนี้มักจะเกิดขึ้นกับแล็ปท็อปเช่นกัน และการทำงานมัลติทาสก์ไม่จำเป็นต้องใช้ CPU ความแตกต่างของต้นทุนการผลิตอาจทำให้เกิดความแตกต่างและอาจเป็นสาเหตุให้คอร์น้อยลงสำหรับซีพียูต่ำ แต่ฉันสงสัยว่าค่าใช้จ่ายในการผลิตเป็นเหตุผลเดียวที่ทำให้ i7s ทั้งหมดไม่มีคอร์อย่างน้อยสี่คอร์ ฉันเชื่อว่าต้นทุนการผลิตเป็นเพียงราคาเล็กน้อยของซีพียูเหล่านั้น
v6ak

@ v6ak ปัญหาคือว่าแกน x86 ใหญ่กว่าและซับซ้อนกว่าซีพียูจาก Intell (หรือ amd) นั้นไม่ดีพอที่จะเป็นรุ่นท็อป ในความเป็นจริงส่วนใหญ่ของพวกเขาถูกบล็อกบางส่วนและกลายเป็น junior i7 หรือ Pentiums แกน ARM ดูยุ่งยากน้อยลงดังนั้นจึงมีไม่กี่โมเดลที่มาถึงในแต่ละปี octa core ที่แท้จริงยังคงเป็นSamsung Exynos Octa 7xxx , MTK Helio X10 , ล่าสุด (X30) แม้จะเสนอเพียงเล็กน้อย (4) .Middle (4) .BIG (2) เราสามารถเธอได้ในโฆษณาที่เป็นโปรเซสเซอร์ 10 คอร์การตลาดราคาถูก ทำสิ่งนั้น
Flippy

-1

ฉันคิดว่าหนึ่งในปัจจัยผลักดันหลักนอกเหนือจาก 4 หรือ 8 (สำหรับการกำหนดค่าขนาดใหญ่เล็ก ๆ ) เป็นเพียงการตลาดในขณะนี้

ปัญหาใหญ่อย่างหนึ่งของการนับคอร์ระดับสูงคือเมื่อคุณพิจารณาขนาดของหน่วยความจำ โดยปกติในแอปเดสก์ท็อปเมื่อคุณต้องการปรับปรุงการใช้ประโยชน์ของหลายคอร์คุณต้องทำซ้ำโครงสร้างและใช้หน่วยความจำมากขึ้นจากนั้นในแอปพลิเคชันเธรดเดียว

สิ่งนี้ไม่ได้เกิดขึ้นเพราะ RAM มีราคาแพงมาก (โดยเฉพาะในสถานการณ์วิกฤต RAM 2017/2018) การตลาดต้องการตัวเลขสูง แต่การควบคุมต้องการลดราคาส่วนประกอบ หากคุณเห็นยอดคงเหลือซึ่งน้อยกว่า 1 กิกะไบต์ของ RAM ต่อคอร์คุณจะเห็นว่าการประนีประนอมล้มเหลว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.