ฉันดูเหมือนจะไม่เข้าใจสิ่งนี้ความแตกต่างระหว่างซูเปอร์คาร์และโปรเซสเซอร์มัลติคอร์คืออะไร?
ฉันผสมพวกมันต่อไปดังนั้นประเด็นง่ายๆที่พวกเขาทำจะยอดเยี่ยม
ฉันดูเหมือนจะไม่เข้าใจสิ่งนี้ความแตกต่างระหว่างซูเปอร์คาร์และโปรเซสเซอร์มัลติคอร์คืออะไร?
ฉันผสมพวกมันต่อไปดังนั้นประเด็นง่ายๆที่พวกเขาทำจะยอดเยี่ยม
คำตอบ:
โปรเซสเซอร์ Super-scalar หมายความว่าคุณจะส่งคำสั่งหลายคำสั่งในระหว่างรอบสัญญาณนาฬิกาเดียว เหตุผลที่แตกต่างจากมัลติคอร์คือคุณจะได้รับเพียงเคาน์เตอร์สอน ดังนั้นคุณสามารถติดตามคำสั่งหลายอย่างในเที่ยวบินได้ แต่คำแนะนำทั้งหมดนั้นมาจากโปรแกรมเดียว นี่ยังเป็นเพียงกระบวนการเดียว ตอนนี้ฉันพูดว่า "คุณได้รับหนึ่งเคาน์เตอร์คำสั่ง" และในทางเทคนิคที่เป็นจริงในที่ไม่มีจุดที่รหัสของคุณจะพบความแตกต่างยกเว้นการใช้แผนการทำนายสาขา (เก็งกำไรปฏิบัติการ: คุณดำเนินการทั้งสองสาขา "ผลการทำนาย)
เมื่อคุณเข้าสู่มัลติคอร์คุณจะมีคำสั่งหลายสตรีมที่ทำงานพร้อมกัน ส่วนที่สำคัญคือแต่ละคอร์ (การประมวลผลด้วยตัวนับคำสั่งของตัวเอง) สามารถเป็นซุปเปอร์สเกลาร์เพื่อที่จะดำเนินการแต่ละกระบวนการได้เร็วขึ้น!
มีความเป็นไปได้ที่จะมีซุปเปอร์สเกลาร์โดยไม่ต้องดำเนินการไพพ์ไลน์หรือออกคำสั่งโดยมีสิ่งที่เรียกว่าคำสั่งที่ยาวมากหรือ "VLIW" สิ่งนี้เรียกอีกอย่างว่าสเกลาร์แบบคงที่ (กล่าวคืออยู่ในรหัส) นี่คือที่ที่คุณมีส่วนประกอบเพียงพอที่จะดำเนินการหลายคำสั่งในเวลาเดียวกันและคุณดึงคำแนะนำหลายคำพร้อมกันแล้วเรียกใช้พวกเขา ในรูปแบบที่ง่ายที่สุดลองนึกภาพว่าคุณพูดว่า "โปรเซสเซอร์นี้จะดึงข้อมูลและดำเนินการสองคำสั่งพร้อมกัน" จากนั้นตราบใดที่ coder สามารถหางานให้ทำพร้อมกันในกระบวนการเดียวกันคุณก็จะเพิ่มปริมาณงานของคุณเป็นสองเท่า! หากคุณไม่พบคำสั่งสองคำที่จะรวมเข้าด้วยกันคุณเพียงแค่จับคู่คำสั่งหนึ่งคำกับ NOP แนวคิดนี้ไม่ค่อยดีนักเพราะถ้าคุณสร้างโปรเซสเซอร์รุ่นที่ดีกว่าซึ่งสามารถรันคำสั่ง 3, 4 หรือมากกว่าในเวลาเดียวกันรหัสเก่าทั้งหมดของคุณจะแตก! แต่พวกเขาแก้ปัญหานี้ด้วยวิธีที่ชาญฉลาดคุณควรตรวจสอบคำสั่งการคำนวณแบบขนานอย่างชัดเจนหรือเนื้อหา "EPIC" หากคุณต้องการทราบข้อมูลเพิ่มเติม
Dynamic super-scalar ที่มี pipelining สามารถใช้ประโยชน์จากทั้งคำสั่งที่ไม่ขึ้นกับข้อมูลรวมถึง parallelism ในระดับคำสั่งซึ่งเป็นสิ่งที่ทำให้มันเป็นการผสมผสานที่ทรงพลัง เป็นหลักจะช่วยให้คุณมีฮาร์ดแวร์เพียงพอที่จะดำเนินการตามคำสั่งที่เป็นอิสระจำนวนมากพร้อมกันมากที่สุด
Dynamic super-scalar ที่มี pipelining และ out-of-order execution คือขีด จำกัด ของ parallelism ระดับคำสั่ง: คุณจะลองและรันหลาย ๆ คำสั่งในระยะเดียวกันพร้อมกันพยายามหาการดำเนินการที่ดำเนินการโดยไม่มีการพึ่งพาข้อมูล คุณสามารถออกคำสั่งให้เสร็จได้คุณจะเริ่มต้นออกคำสั่งมีหลายสิ่งที่คุณต้องทำเพื่อให้หัวของคุณตรงไปตรงมาในขณะที่ทำสิ่งที่ซุปเปอร์สเกลาร์ Multi-core กล่าวว่า "เฮ้โปรแกรมเมอร์! ให้ปัญหาหลายอย่างที่ฉันสามารถแก้ไขได้ในเวลาเดียวกัน!" และเนื่องจากโปรแกรมเมอร์สามารถมองเห็นปัญหาที่แก้ไขได้อย่างอิสระเกินกว่าเพียงไม่กี่บรรทัดในการประกอบคอมไพล์พวกเขาจึงสามารถเขียนโปรแกรมการแก้ปัญหาเหล่านั้นได้อย่างมีประสิทธิภาพสำหรับมัลติคอร์
ซุปเปอร์สเกลาร์ไม่สามารถแม้แต่แก้ปัญหาอย่าง "ฉันจะรันสองโปรแกรมนี้เร็วขึ้นได้อย่างไร" มันสามารถรันแต่ละโปรแกรมอิสระได้เร็วขึ้น
หวังว่าจะช่วยได้ขอโทษถ้ามันแยกออกจากกันเล็กน้อย
--Edit--
ดัดแปลงเพื่อพิจารณาประเด็นของ ajs410 ที่ฉันสับสนหลายแนวคิด
หากคุณมองย้อนกลับไปที่โปรเซสเซอร์รุ่นก่อนหน้าเช่น 80486 หรือ Pentium CPU จะเป็นหน่วยทางลอจิคัลเดียวของการประมวลผล เรียกใช้งานคำสั่งในครั้งเดียว ซีพียูตัวเดียวก็เป็นชิปซิลิกอนตัวเดียว หากคุณต้องการพลังในการประมวลผลมากขึ้นคุณอาจซื้อเมนบอร์ดเซิร์ฟเวอร์ราคาแพงที่มีช่องสำหรับใส่ซีพียูสองตัวแยกกัน จากนั้นคุณมีเครื่องซีพียูสองตัวและแกนประมวลผลสองคอร์
ณ จุดหนึ่งกฎของมัวร์หมายความว่าเรามีทรานซิสเตอร์มากมายในซิลิคอนซึ่งคุณสามารถวางวงจรทั้งหมดสำหรับซีพียูสองตัวไว้ในชิปตัวเดียว ตอนนี้คุณมีศักยภาพในการตั้งชื่อความสับสน การพูดว่าคุณมีซีพียูสองตัวอาจหมายถึงคุณมีแพ็คเกจซิลิกอนสองแบบที่เก่ากว่าหรือแพ็คเกจซิลิกอนเดี่ยวที่ใหม่กว่า แต่ด้วยการตั้งค่าการประมวลผลของโปรเซสเซอร์สองตัว ในการแก้ไขปัญหานี้เราหมายถึง CPU เป็นซิลิกอนแพ็กเกจเดียวและ Core เป็นหน่วยประมวลผลเชิงตรรกะเดียวที่อยู่ภายใน
Super-scalar หมายถึงเทคนิคที่ใช้ภายในคอร์เพื่อลองและปรับปรุงประสิทธิภาพและอนุญาตให้ประมวลผลคำสั่งเพิ่มเติมต่อรอบโดยเฉลี่ย ตัวประมวลผลเซนต์คิตส์และเนวิสเรียกใช้คำสั่งอย่างน้อยหนึ่งคำสั่งต่อรอบซูเปอร์สเกลาร์หมายความว่าสามารถประมวลผลคำสั่งมากกว่าหนึ่งคำสั่งต่อรอบ ตัวอย่างเช่นหากหน่วยประมวลผลมีหน่วยการทำงานสำหรับเลขจำนวนเต็มและอีกหน่วยสำหรับจุดลอยตัวทำไมไม่ใช้ทั้งสองในเวลาเดียวกันเพื่อดำเนินการสองคำสั่งพร้อมกัน ถ้าคุณมีหน่วยจำนวนเต็มสามหน่วยและหน่วยทศนิยมสองหน่วยล่ะ? ตอนนี้คุณมีศักยภาพมากขึ้นสำหรับการดำเนินการแบบขนาน แต่คุณยังต้องการทรานซิสเตอร์เพิ่มเติมสำหรับการติดตั้งและตรรกะที่ซับซ้อนมากขึ้นเพื่อให้สามารถทำงานได้อย่างน่าเชื่อถือ ในโลกแห่งความเป็นจริงคุณมักจะได้รับซุปเปอร์สเกลาร์ที่ใช้ร่วมกับการออกแบบที่ไม่เป็นระเบียบเพราะพวกเขาชมเชยกัน