ทำไมชิปถึงมีแกนมากขึ้น? ทำไมไม่ผลิตโปรเซสเซอร์แกนเดียวขนาดใหญ่กว่า? ผลิตง่ายขึ้นไหม? มันอนุญาตให้โปรแกรมมัลติเธรดใช้แกนกลางแยกกันได้หรือไม่?
ทำไมชิปถึงมีแกนมากขึ้น? ทำไมไม่ผลิตโปรเซสเซอร์แกนเดียวขนาดใหญ่กว่า? ผลิตง่ายขึ้นไหม? มันอนุญาตให้โปรแกรมมัลติเธรดใช้แกนกลางแยกกันได้หรือไม่?
คำตอบ:
แนวโน้มต่อหลายคอร์เป็นวิธีการทางวิศวกรรมที่ช่วยให้ผู้ออกแบบซีพียูหลีกเลี่ยงปัญหาการใช้พลังงานที่มาพร้อมกับการเพิ่มขนาดความถี่ เมื่อความเร็วของ 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 นี่เป็นวิธีการที่เหมาะสม ซึ่งหมายความว่าสำหรับสภาพแวดล้อมเซิร์ฟเวอร์ส่วนใหญ่ในปัจจุบันการปรับจำนวนคอร์ในแต่ละซีพียูเป็นวิธีที่ดีกว่าการพยายามสร้างซีพียูแกนเดี่ยวที่เร็วกว่า \ ดีกว่า
แนวโน้มจะดำเนินต่อไประยะหนึ่ง แต่มีความท้าทายและการปรับจำนวนแกนอย่างต่อเนื่องนั้นไม่ใช่เรื่องง่าย (การรักษาแบนด์วิดท์หน่วยความจำให้สูงพอและการจัดการแคชจะยากขึ้นเมื่อจำนวนแกนเติบโตขึ้น) นั่นหมายความว่าการเติบโตอย่างรวดเร็วของจำนวนแกนต่อซ็อกเก็ตในปัจจุบันจะต้องชะลอตัวลงในสองสามชั่วอายุคนและเราจะเห็นวิธีการอื่น
มันยากเกินไปที่จะทำให้มันเร็วขึ้น
ปัญหาที่เกิดขึ้นคือคุณต้องทำงานหลายคำสั่งพร้อมกันปัจจุบันซีพียู x86 ปัจจุบันมี 80 คำสั่งหรือมากกว่านั้นได้รับคำแนะนำในการทำงานพร้อมกันและดูเหมือนว่าจะเป็นข้อ จำกัด เนื่องจากมันถูกตีด้วย P4 Pentium Pro ทำ 40 ในปี 1995 กระแสการเรียนการสอนทั่วไปไม่สามารถคาดเดาได้เกินกว่านั้น (คุณต้องเดากิ่งไม้เข้าถึงหน่วยความจำและอื่น ๆ ) เพื่อดำเนินการคำสั่งมากกว่าสองสามคำพร้อมกัน (486 ทำ 5, Pentium ทำได้ 10 แทบ) .
ดังนั้นในขณะที่คุณสามารถทำให้พวกมันกว้างขึ้น (หน่วยการทำงานที่มากขึ้นที่จะทำตามคำแนะนำแต่ละชิ้น) อีกต่อไป (ท่อที่ลึกกว่าเพื่อซ่อนเร้น) มันดูเหมือนจะไม่ดีมาก และดูเหมือนว่าเราจะชนกำแพงด้วยความเร็วสัญญาณนาฬิกาเช่นกัน และเรายังคงอยู่ในความทรงจำที่เหนือกว่า ดังนั้นการแบ่งออกเป็นซีพียูจำนวนมากดูเหมือนจะเป็นชัยชนะ นอกจากนี้พวกเขาสามารถแบ่งปันแคช
มันมีอะไรมากกว่านี้เล็กน้อย แต่มันทำให้โปรแกรมทั่วไปไม่สามารถทำงานได้เร็วขึ้นมากบนฮาร์ดแวร์ใด ๆ ที่เราสามารถจินตนาการถึงวิธีการออกแบบและสร้าง
ตอนนี้หากการคาดการณ์ไม่ใช่ปัญหาตัวอย่างเช่นปัญหาทางวิทยาศาสตร์และกราฟฟิคจำนวนมาก (บ่อยครั้งที่พวกเขาต้มลงไปเพื่อคูณจำนวนชุดนี้ด้วยชุดตัวเลขนั้น) นี่ไม่ใช่กรณีและความนิยมของ IA64 ของ Intel ( Itanium) และ GPUs ที่เพิ่งได้รับเร็วขึ้น แต่พวกเขาจะไม่ช่วยให้คุณเรียกใช้ Word ได้ดีขึ้น
พลังการประมวลผลและความถี่สัญญาณนาฬิกาของโปรเซสเซอร์เดียวถึงจุดสูงสุดไม่กี่ปีที่ผ่านมามันไม่ง่ายเลยที่จะสร้างตัวประมวลผลที่ทรงพลังและ / หรือเร็วกว่าตัวประมวลผลปัจจุบัน ดังนั้นผู้ผลิตซีพียูรายใหญ่ (Intel, AMD) จึงเปลี่ยนกลยุทธ์และเปลี่ยนไปใช้มัลติคอร์ หลักสูตรนี้ต้องใช้งานมากขึ้นจากนักพัฒนาแอปพลิเคชันเพื่อควบคุมพลังเต็มของการทำงานแบบมัลติทาสก์: โปรแกรมที่ทำงานในงานเดียวไม่ได้รับประโยชน์ใด ๆ จากซีพียูแบบมัลติคอร์ (แม้ว่าระบบจะได้รับ โบนัสโดยรวมเพราะไม่ได้ล็อคถ้ากระบวนการเดียวใช้การใช้ CPU เพียงครั้งเดียวถึง 100%)
เกี่ยวกับสถาปัตยกรรมทางกายภาพ (โปรเซสเซอร์แบบมัลติคอร์แทนที่จะเป็นแบบซิงเกิลคอร์หลายแบบ) ... คุณควรถาม Intel แต่ฉันค่อนข้างแน่ใจว่าสิ่งนี้เกี่ยวข้องกับมาเธอร์บอร์ดที่มีซ็อกเก็ตซีพียูเดียวซึ่งง่ายต่อการออกแบบและผลิตมากกว่าบอร์ดที่มีหลาย ๆ ตัว
เพื่อเพิ่มความเร็วสัญญาณนาฬิกาซิลิคอนทรานซิสเตอร์บนชิปจะต้องสามารถเปลี่ยนได้เร็วขึ้น ความเร็วที่สูงขึ้นเหล่านี้ต้องการแรงดันไฟฟ้าอินพุตสูงขึ้นและกระบวนการผลิตเซมิคอนดักเตอร์ซึ่งส่งผลให้เกิดการรั่วไหลมากขึ้นซึ่งทั้งสองอย่างนี้จะเพิ่มการใช้พลังงานและความร้อนออกมา ในที่สุดคุณก็มาถึงจุดที่คุณไม่สามารถเพิ่มอัตรานาฬิกาได้อีกโดยไม่ต้องใช้พลังงานมากเกินไปหรือใช้วิธีการระบายความร้อนที่แปลกใหม่
เพื่อแสดงปัญหานี้ฉันจะเปรียบเทียบโปรเซสเซอร์ AMD รุ่นใหม่สองรุ่น AMD FX-9590 สามารถบรรลุความเร็วสัญญาณนาฬิกาสูงสุด 5 GHz ออกจากกล่อง แต่ทำงานด้วยแรงดันไฟฟ้าหลักที่สูงถึง 1.912 V ซึ่งสูงมากสำหรับชิป 32nm และกระจายความบ้าคลั่ง220 วัตต์ความร้อนFX-8350 ซึ่งทำงานบน Die เดียวกันนั้นทำงานที่ความเร็วสูงสุด 4.2 GHz แต่ทำงานที่สูงสุด 1.4 V และกระจายไป 125 วัตต์
ดังนั้นแทนที่จะพยายามเพิ่มนาฬิกาเพิ่มเติมวิศวกรพยายามทำให้ชิปทำงานได้เร็วขึ้นในวิธีอื่น ๆ รวมถึงการออกแบบให้ทำงานหลายกระบวนการพร้อมกันด้วยเหตุนี้โปรเซสเซอร์แบบมัลติคอร์
กฎของมัวร์ โดยทั่วไปแล้วโปรเซสเซอร์ไม่สามารถทำได้เร็วกว่านี้ (ความถี่สูงถึง 3 GHz เมื่อ 5 ปีที่แล้วและไม่เคยทำมากไปกว่านี้) ดังนั้นพวกมันจึงมีประสิทธิภาพมากขึ้นโดยการเพิ่มคอร์มากขึ้น