ทำไมต้องใช้โปรเซสเซอร์หลายคอร์?


16

ทำไมชิปถึงมีแกนมากขึ้น? ทำไมไม่ผลิตโปรเซสเซอร์แกนเดียวขนาดใหญ่กว่า? ผลิตง่ายขึ้นไหม? มันอนุญาตให้โปรแกรมมัลติเธรดใช้แกนกลางแยกกันได้หรือไม่?


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

แน่นอนว่ามีโฆษณาเกินจริง แต่ก็มีประโยชน์เช่นกัน ผู้ใช้ส่วนใหญ่ในปัจจุบันสามารถได้รับประโยชน์จาก mulit-core (เช่นโดยทั่วไปคือดูอัลคอร์) เพราะส่วนใหญ่ใช้ระบบปฏิบัติการที่มีการดำเนินการหลายเธรด แต่สำหรับผู้ที่ยังใช้ Windows 95 หรือเก่ากว่านั้นฉันยอมรับว่ามัลติคอร์น่าจะเสียเวลาโดยสิ้นเชิง
ไม่มีเหตุผล John

ที่ harrymc: "เหตุผลส่วนใหญ่เป็นการตลาดผู้ใช้ส่วนใหญ่จะไม่ได้รับประโยชน์จาก multi-core แต่มันถูก hyped ดีกว่ามากส่วนใหญ่เหมาะสมสำหรับเซิร์ฟเวอร์หรือผู้ใช้ระดับสูง" --- เหล่าพนักงานขายน้ำมันงูโลภ ...
แดเนียล

คำตอบ:


25

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

ตัวอย่างการใช้งานจริง E5640 Xeon (4 คอร์ที่ 2.66 GHz) มีซองกำลังไฟ 95 วัตต์ในขณะที่ L5630 (4 คอร์ที่ 2.13 GHz) ต้องการเพียง 40 วัตต์ นั่นคือพลังงานไฟฟ้าเพิ่มขึ้น 137% สำหรับพลัง CPU มากขึ้น 24% สำหรับซีพียูที่รองรับคุณสมบัติส่วนใหญ่ X5677 เพิ่มความเร็วสูงสุดถึง 3.46 GHz พร้อมคุณสมบัติเพิ่มเติม แต่นั่นคือพลังการประมวลผลที่เพิ่มขึ้น 60% สำหรับพลังงานไฟฟ้า 225%

ตอนนี้เปรียบเทียบ X5560 (2.8 GHz, 4 คอร์, 95 วัตต์) กับ X5660 รุ่นใหม่ (2.8 GHz, 6 คอร์, 95 วัตต์) และมีกำลังการประมวลผลพิเศษ 50% ในซ็อกเก็ต (อาจสมมติว่ากฎหมายของ Amdahlใจดีสำหรับเรา ตอนนี้) โดยไม่ต้องใช้พลังงานไฟฟ้าเพิ่มเติม ซีพียู 6100 ซีรีส์ของ AMD นั้นมีประสิทธิภาพโดยรวมที่คล้ายคลึงกันมากกว่าซีรีส์ 2400 \ 8400 ในขณะที่ยังคงใช้พลังงานไฟฟ้าอยู่ในระดับต่ำ

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

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


3
ฉันไม่สามารถบอกคุณได้กี่ครั้งแล้วที่ฉันพยายามอธิบายเรื่องนี้กับผู้ที่ยังคิดว่าซีพียู 3.6GHz จาก 5 ปีที่แล้วนั้นเร็วกว่าซีพียู 2.8GHz ด้วยเทคโนโลยีล่าสุด มันทำให้โกรธ ฉันเกลียดตำนานยิ่งใหญ่
ปั่นป่วน

ไม่มีข้อ จำกัด ทางกายภาพเนื่องจากความเร็วของแสงสำหรับสัญญาณไฟฟ้าด้วยหรือไม่?
mouche

1
@churnd - แต่โปรดคำนึงว่ามันถูกต้อง สำหรับเราจะต้องไม่ผสมความเร็วกับพลังงาน (3,6 Ghz เร็วกว่า 2,8 Ghz อย่างไม่ต้องสงสัยสิ่งที่มันไม่ได้มีประสิทธิภาพมากขึ้น) มันสามารถสร้างความแตกต่างที่สำคัญสำหรับโปรแกรมเมอร์ที่ต้องการความเร็วที่เร็วขึ้น exaxmple แต่ก็ยังไม่ชำนาญกับเทคนิคการเขียนโปรแกรมเธรด / ขนาน
โกง

3
@ldigas โปรแกรมเมอร์เหล่านั้นใส่ใจเกี่ยวกับอัตราการดำเนินการคำสั่งแบบ single-core ไม่ใช่ความเร็วสัญญาณนาฬิกาหลัก CPU สมัยใหม่มีอัตราการดำเนินการคำสั่งแบบ single-core ที่สูงขึ้นมากถึงแม้ว่าความเร็วสัญญาณนาฬิกาจะลดลงก็ตาม
เดวิดชวาร์ตษ์

5

มันยากเกินไปที่จะทำให้มันเร็วขึ้น

ปัญหาที่เกิดขึ้นคือคุณต้องทำงานหลายคำสั่งพร้อมกันปัจจุบันซีพียู x86 ปัจจุบันมี 80 คำสั่งหรือมากกว่านั้นได้รับคำแนะนำในการทำงานพร้อมกันและดูเหมือนว่าจะเป็นข้อ จำกัด เนื่องจากมันถูกตีด้วย P4 Pentium Pro ทำ 40 ในปี 1995 กระแสการเรียนการสอนทั่วไปไม่สามารถคาดเดาได้เกินกว่านั้น (คุณต้องเดากิ่งไม้เข้าถึงหน่วยความจำและอื่น ๆ ) เพื่อดำเนินการคำสั่งมากกว่าสองสามคำพร้อมกัน (486 ทำ 5, Pentium ทำได้ 10 แทบ) .

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

มันมีอะไรมากกว่านี้เล็กน้อย แต่มันทำให้โปรแกรมทั่วไปไม่สามารถทำงานได้เร็วขึ้นมากบนฮาร์ดแวร์ใด ๆ ที่เราสามารถจินตนาการถึงวิธีการออกแบบและสร้าง

ตอนนี้หากการคาดการณ์ไม่ใช่ปัญหาตัวอย่างเช่นปัญหาทางวิทยาศาสตร์และกราฟฟิคจำนวนมาก (บ่อยครั้งที่พวกเขาต้มลงไปเพื่อคูณจำนวนชุดนี้ด้วยชุดตัวเลขนั้น) นี่ไม่ใช่กรณีและความนิยมของ IA64 ของ Intel ( Itanium) และ GPUs ที่เพิ่งได้รับเร็วขึ้น แต่พวกเขาจะไม่ช่วยให้คุณเรียกใช้ Word ได้ดีขึ้น


4

พลังการประมวลผลและความถี่สัญญาณนาฬิกาของโปรเซสเซอร์เดียวถึงจุดสูงสุดไม่กี่ปีที่ผ่านมามันไม่ง่ายเลยที่จะสร้างตัวประมวลผลที่ทรงพลังและ / หรือเร็วกว่าตัวประมวลผลปัจจุบัน ดังนั้นผู้ผลิตซีพียูรายใหญ่ (Intel, AMD) จึงเปลี่ยนกลยุทธ์และเปลี่ยนไปใช้มัลติคอร์ หลักสูตรนี้ต้องใช้งานมากขึ้นจากนักพัฒนาแอปพลิเคชันเพื่อควบคุมพลังเต็มของการทำงานแบบมัลติทาสก์: โปรแกรมที่ทำงานในงานเดียวไม่ได้รับประโยชน์ใด ๆ จากซีพียูแบบมัลติคอร์ (แม้ว่าระบบจะได้รับ โบนัสโดยรวมเพราะไม่ได้ล็อคถ้ากระบวนการเดียวใช้การใช้ CPU เพียงครั้งเดียวถึง 100%)

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


2
เกินคาดฉันจะได้ยินเกี่ยวกับกฎของ Amdahlมากกว่ากฎของ Moore
Evan Anderson

1

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

เพื่อแสดงปัญหานี้ฉันจะเปรียบเทียบโปรเซสเซอร์ AMD รุ่นใหม่สองรุ่น AMD FX-9590 สามารถบรรลุความเร็วสัญญาณนาฬิกาสูงสุด 5 GHz ออกจากกล่อง แต่ทำงานด้วยแรงดันไฟฟ้าหลักที่สูงถึง 1.912 V ซึ่งสูงมากสำหรับชิป 32nm และกระจายความบ้าคลั่ง220 วัตต์ความร้อนFX-8350 ซึ่งทำงานบน Die เดียวกันนั้นทำงานที่ความเร็วสูงสุด 4.2 GHz แต่ทำงานที่สูงสุด 1.4 V และกระจายไป 125 วัตต์

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


0

กฎของมัวร์ โดยทั่วไปแล้วโปรเซสเซอร์ไม่สามารถทำได้เร็วกว่านี้ (ความถี่สูงถึง 3 GHz เมื่อ 5 ปีที่แล้วและไม่เคยทำมากไปกว่านี้) ดังนั้นพวกมันจึงมีประสิทธิภาพมากขึ้นโดยการเพิ่มคอร์มากขึ้น


กฎของ IMHO Moore นั้นมีรายละเอียดมากกว่าคำทำนาย ... แน่นอนว่ามันมีอยู่และยังคงเป็นเช่นนั้น แต่ก็ไม่มีอะไรรับประกันได้ว่ามันจะไม่ทำลายในวันพรุ่งนี้ คุณไม่สามารถไปหาวิศวกรและบอกเขาว่า "คุณควรจะทำเช่นนี้เพราะกฎของมัวร์บอกว่าทำได้" เมื่อฟิสิกส์ไม่อนุญาตอีกต่อไป
vlad-ardelean
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.