ความแตกต่างระหว่าง superscalar และ multi-core?


11

ฉันดูเหมือนจะไม่เข้าใจสิ่งนี้ความแตกต่างระหว่างซูเปอร์คาร์และโปรเซสเซอร์มัลติคอร์คืออะไร?

ฉันผสมพวกมันต่อไปดังนั้นประเด็นง่ายๆที่พวกเขาทำจะยอดเยี่ยม


มันสร้างความสับสนให้ฉันด้วย ... ตามวิกิพีเดียโปรเซสเซอร์ superscalar อาจเป็นแกนเดียวหรือมีการออกแบบหลายคอร์ en.wikipedia.org/wiki/Superscalar_processor 2nd phara
Avi Mehenwal

คำตอบ:


15

โปรเซสเซอร์ 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 ที่ฉันสับสนหลายแนวคิด


ใช่นั่นทำให้มันชัดเจนขึ้นมากขอบคุณ! โดยวิธีการที่ฉันคิดว่าคำที่คุณกำลังมองหาฉัน "การดำเนินการเก็งกำไร" อย่างไรก็ตามขอขอบคุณอีกครั้ง
marsrover

1
เพื่อให้สิ่งที่ชัดเจนโดย @KitScuzz มีความซับซ้อนขึ้นอีกเล็กน้อยอ่านHyperThreading
ppeterka

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

แก้ไขแล้ว! ขออภัยในความล่าช้า.
Kit Scuzz

1

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

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

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

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