使CPI〈1:每一周期发射多条指令 °两种主要结构:超标量和超长指令字 °超标量:每一周期可能发射不同数量的指令(从1条到6条) ·视并行度和相关的具体情况而定。由硬件处理 IBM PowerPC 604 Sun Ultra Sparc, DEC Alpha 21164\ HP7100 °超长指令字:固定数量的指令;编译器确定可开发的并行度 流水线可见;编译器必须对延迟槽进行指令调度,以确保结果正 确 Intel-Merced: Explicit Parallel Instruction Computer(EPIc) 128位指令包( packets)包含三条指令(可以串行执行) 可以将128位指令包联接起来,允许更高的并行性 ·编译器来决定并行度, 硬件检测指令间的相关和前递/暂停 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ ¯&3,&3,ÿ0O4J7 eø¡U§XYÛ£`YSÛ¸+ eYÛ££Ô<óÃÑ¥ØáàD£XÛ¸ ¢5 5 J z`ÌGXK'ànÄ@ÊØÚ ,%03RZHU3&Ã6XQ 8OWUD6SDUFÃ'(&$OSKDà +3 eYSÛ¸+ÎnD£XÛ¸×ê¥<BnÃÔ¥XJ z Ãê¥<OÍʳѯ Û¸×zȹB±§p7 B e,QWHO0HUFHG([SOLFLW3DUDOOHO,QVWUXFWLRQ&RPSXWHU(3,& !Û¸ÙÄSDFNHWVÅÙÿÝ5۸ù ; ùÚ!Û¸Ù(yK9ÈȬXJ û ê¥<9nJ z @ÊÛ¸ÈXÌG`!æV0
循环展开:减小标量延迟 Loop: LD F0,0(R1) F6,-8(R1) 23456789 LD F10,-16(R1) LD to ADDD: 1 Cycle F14,-24(R1) ADDD F4,F0,F2 ADDD F8,F6,F2 ADDD E12,E10,F2 ADDD E16,E14,E2 ADDD to SD: 2 Cycles SD 0(R1),F4 SD 8(R1),F8 SD 16(R1),F12 12 sUB工 R1,R1,#32 BNEZ R1 LOOP SD 8(R1)F16;8-32=-24 14个时钟周期或者每次迭代3.5个周期 北京大学计算机科学技术系 计算机系统结构教研室
ñ¯M§¯æ*§cù ¯æù;étÐ@ Úß 0ÿ?7ÿ& þÊs<ó êÙ £õÁ·þ<ó/'WR$'''&\FOH /RRS /' )5 /' )5 /' )5 /' )5 $''' ))) $''' ))) $''' ))) $''' ))) 6' 5) 6' 5) 6' 5) 68%, 55 %1(= 5/223 6' 5) $'''WR6'&\FOHV