กลับไปหน้าบทความ

อ่าน 3 นาที

การประมวลผลคำสั่งแบบขนานอย่างชัดเจน

การประมวลผลคำสั่งแบบขนานอย่างชัดเจน ( EPIC ) เป็นคำที่บัญญัติขึ้นในปี 1997 โดย พันธมิตร HP–Intel [ 1 ] เพื่ออธิบาย กระบวนทัศน์การประมวลผล ที่นักวิจัยได้ศึกษามาตั้งแต่ต้นทศวรรษ...

การประมวลผลคำสั่งแบบขนานอย่างชัดเจน

การประมวลผลคำสั่งแบบขนานอย่างชัดเจน ( EPIC ) เป็นคำที่บัญญัติขึ้นในปี 1997 โดยพันธมิตร HP–Intel [ 1 ]เพื่ออธิบายกระบวนทัศน์การประมวลผลที่นักวิจัยได้ศึกษามาตั้งแต่ต้นทศวรรษ 1980 [ 2 ]กระบวนทัศน์นี้ยังเรียกว่า สถาปัตยกรรม อิสระ (Independence architectures) ซึ่งเป็นพื้นฐานสำหรับ การพัฒนา สถาปัตยกรรมIntel Itanium ของ IntelและHP [ 3 ]และ ต่อมา HPยืนยันว่า "EPIC" เป็นเพียงคำเก่าสำหรับสถาปัตยกรรม Itanium [ 4 ] EPIC อนุญาตให้ไมโครโปรเซสเซอร์ดำเนินการคำสั่งซอฟต์แวร์แบบขนานโดยใช้คอมไพเลอร์แทนที่จะใช้วงจรบนชิปที่ ซับซ้อน เพื่อควบคุมการดำเนินการคำสั่งแบบขนาน ซึ่งมีจุดประสงค์เพื่อให้สามารถปรับขนาดประสิทธิภาพได้ง่ายโดยไม่ต้องใช้ ความถี่สัญญาณนาฬิกา ที่ สูง ขึ้น

รากฐานใน VLIW

ใน ปีพ.ศ. 2532 นักวิจัยของ HP ตระหนักว่า สถาปัตยกรรม คอมพิวเตอร์ชุดคำสั่งลดรูป (RISC) กำลังถึงขีดจำกัดที่คำสั่งเดียวต่อรอบพวกเขาจึงเริ่มทำการวิจัยเกี่ยวกับสถาปัตยกรรมใหม่ ซึ่งต่อมาได้ชื่อว่าEPIC [ 3 ]พื้นฐานของการวิจัยคือVLIWซึ่งมีการเข้ารหัสการดำเนินการหลายอย่างในทุกคำสั่ง จากนั้นจึงประมวลผลโดยหน่วยประมวลผลหลายหน่วย

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

VLIW (อย่างน้อยก็ในรูปแบบดั้งเดิม) มีข้อบกพร่องหลายประการที่ทำให้ไม่สามารถกลายเป็นกระแสหลักได้:

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

สถาปัตยกรรม EPIC พัฒนามาจากสถาปัตยกรรม VLIW แต่ยังคงรักษาแนวคิดหลายอย่างของสถาปัตยกรรม ซูเปอร์สเกลาร์ไว้

ก้าวข้าม VLIW ไปแล้ว

สถาปัตยกรรม EPICเพิ่มคุณสมบัติหลายอย่างเพื่อแก้ไขข้อบกพร่องของ VLIW:

  • แต่ละกลุ่มของคำสั่งซอฟต์แวร์หลายคำสั่งเรียกว่าบันเดิล (bundle ) แต่ละบันเดิลจะมีบิตหยุด (stop bit)ที่ระบุว่าชุดการทำงานนี้ขึ้นอยู่กับบันเดิลถัดไปหรือไม่ ด้วยความสามารถนี้ การใช้งานในอนาคตสามารถสร้างให้สามารถออกคำสั่งหลายบันเดิลพร้อมกันได้ ข้อมูลการพึ่งพาจะถูกคำนวณโดยคอมไพเลอร์ ดังนั้นฮาร์ดแวร์จึงไม่จำเป็นต้องตรวจสอบการพึ่งพาของตัวดำเนินการ
  • คำสั่งพรีเฟตช์ซอฟต์แวร์ถูกใช้เป็นรูปแบบหนึ่งของการพรีเฟตช์ข้อมูล การพรีเฟตช์นี้จะเพิ่มโอกาสในการเข้าถึงแคชสำหรับการโหลด และสามารถระบุระดับความใกล้เคียงเชิงเวลาที่จำเป็นในระดับต่างๆ ของแคชได้
  • คำสั่งโหลดแบบคาดการณ์ล่วงหน้า (speculative load) ใช้สำหรับโหลดข้อมูลโดยที่ยังไม่ทราบว่าข้อมูลนั้นจะถูกนำไปใช้หรือไม่ (โดยข้ามขั้นตอนการพึ่งพาการควบคุม) หรือว่าจะถูกแก้ไขก่อนที่จะถูกนำไปใช้หรือไม่ (โดยข้ามขั้นตอนการพึ่งพาข้อมูล)
  • คำสั่งตรวจสอบการโหลดช่วยในการโหลดแบบคาดการณ์ล่วงหน้าโดยการตรวจสอบว่าการโหลดแบบคาดการณ์ล่วงหน้านั้นขึ้นอยู่กับการจัดเก็บในภายหลังหรือไม่ และหากเป็นเช่นนั้นจะต้องทำการโหลดใหม่

สถาปัตยกรรมEPICยังรวมถึง แนวคิดทางสถาปัตยกรรม ที่หลากหลายเพื่อเพิ่มILP ด้วย :

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

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

งานวิจัยและพัฒนาอื่นๆ

มีการศึกษาค้นคว้าอื่นๆ เกี่ยวกับสถาปัตยกรรม EPIC ที่ไม่ได้เกี่ยวข้องโดยตรงกับการพัฒนาสถาปัตยกรรม Itanium:

  • โครงการIMPACTที่มหาวิทยาลัยอิลลินอยส์ เออร์บานา-แชมเปญซึ่งนำโดยเหวินเหม่ย ฮวูเป็นแหล่งที่มาของการวิจัยที่มีอิทธิพลอย่างมากในหัวข้อนี้
  • สถาปัตยกรรม PlayDoh จาก HP- labsเป็นอีกหนึ่งโครงการวิจัยสำคัญ
  • Gelatoเป็นชุมชนพัฒนาซอฟต์แวร์โอเพนซอร์สที่นักวิจัยจากสถาบันการศึกษาและภาคธุรกิจร่วมกันพัฒนาคอมไพเลอร์ที่มีประสิทธิภาพมากขึ้นสำหรับแอปพลิเคชัน Linux ที่ทำงานบนเซิร์ฟเวอร์ Itanium

ดูเพิ่มเติม

  • ประวัติความเป็นมาของ EPIC
  • มาร์ค สโมเธอร์แมน (2002) " การทำความเข้าใจสถาปัตยกรรมและการใช้งาน EPIC "
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Explicitly_parallel_instruction_computing&oldid=1321886060 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การประมวลผลคำสั่งแบบขนานอย่างชัดเจน

การประมวลผลคำสั่งแบบขนานอย่างชัดเจน ( EPIC ) เป็นคำที่บัญญัติขึ้นในปี 1997 โดย พันธมิตร HP–Intel [ 1 ] เพื่ออธิบาย กระบวนทัศน์การประมวลผล ที่นักวิจัยได้ศึกษามาตั้งแต่ต้นทศวรรษ...

รากฐานใน VLIW

ใน ปี พ.ศ. 2532 นักวิจัยของ HP ตระหนักว่า สถาปัตยกรรม คอมพิวเตอร์ชุดคำสั่งลดรูป (RISC) กำลังถึงขีดจำกัดที่ คำสั่งเดียวต่อรอบ พวกเขาจึงเริ่มทำการวิจัยเกี่ยวกับสถาปัตยกรรมใหม่ ซึ่งต่อมาได้ชื่อว่า EPIC [ 3 ] พื้นฐานของการวิจัยคือ VLIW...

ก้าวข้าม VLIW ไปแล้ว

สถาปัตยกรรม EPIC เพิ่มคุณสมบัติหลายอย่างเพื่อแก้ไขข้อบกพร่องของ VLIW:

งานวิจัยและพัฒนาอื่นๆ

มีการศึกษาค้นคว้าอื่นๆ เกี่ยวกับสถาปัตยกรรม EPIC ที่ไม่ได้เกี่ยวข้องโดยตรงกับการพัฒนาสถาปัตยกรรม Itanium: