There are two ways to develop a superscalar machine of degree n from a base machine.
1. Duplicate all functional units n times, including register ports, bypasses, busses,
and instruction decode logic.
2. Duplicate only the register ports, bypasses, busses, and instruction decode logic.
Of course these two methods are extreme cases, and one could duplicate some units and not
others. But if all the functional units are not duplicated, then potential class conflicts will be
created. A class conflict occurs when some instruction is followed by another instruction for the
same functional unit. If the busy functional unit has not been duplicated, the superscalar
machine must stop issuing instructions and wait until the next cycle to issue the second
instruction. Thus class conflicts can substantially reduce the parallelism exploitable by a
superscalar machine. (We will not consider superscalar machines or any other machines that
issue instructions out of order. Techniques to reorder instructions at compile time instead of at
run time are almost as good [2, 3, 10], and are dramatically simpler than doing it in hardware.)
มีสองวิธีที่จะพัฒนาเครื่องซูเปอร์สเกลาร์ระดับ N จากฐานเครื่อง
1 ที่ซ้ำกันทุกหน่วยงาน n ครั้ง รวมทั้งลงทะเบียนพอร์ต , ข้าม , บัส ,
สอนถอดรหัสและตรรกะ
2 . ซ้ำเพียงลงทะเบียนพอร์ต , ข้าม , บัส , และการสอนถอดรหัสตรรกะ
แน่นอนทั้งสองวิธีนี้เป็นกรณีที่รุนแรง และอาจซ้ำบางหน่วย และไม่
คนอื่นแต่ถ้าทุกหน่วยงานจะไม่ซ้ำกัน แล้วศักยภาพระดับความขัดแย้งจะ
ตั้งขึ้น ระดับความขัดแย้งเกิดขึ้นเมื่อการเรียนการสอนบางอย่างจะตามมาอีกสอน
หน่วยการทำงานเดียวกัน หากหน่วยงานยุ่งยังไม่ได้ลอก , ซูเปอร์สเกลาร์
เครื่องจักรต้องหยุดการออกคำสั่งและรอจนกว่ารอบต่อไปออกสอนสอง
ดังนั้นความขัดแย้งระดับอย่างมากสามารถลดความ exploitable โดย
ซูเปอร์สเกลาร์เครื่องจักร ( เราจะไม่พิจารณาเครื่องซูเปอร์สเกลาร์หรืออื่น ๆเครื่องที่
ออกคำสั่งออกจากการสั่งซื้อ เทคนิคที่จะสั่งซื้อคําแนะนําที่รวบรวมเวลา แทนที่เวลาวิ่งเกือบเป็นดี
[ 2 , 3 , 10 , และมีมากง่ายกว่าทำในฮาร์ดแวร์ )
การแปล กรุณารอสักครู่..
