发明名称 以软体管线化超区块回圈
摘要 一反覆式软体管线化方法将一程式回圈的各指令推进到先前的各回圈反覆,然后将这些指令重新排序,直到:(1)所得到的排序是最佳的(亦即启动间隔等于最小启动间隔)为止,或(2)所得到的排序并不优于先前所产生的排序为止。该方法适用于一个具有一单一控制流程进入点及一个或多个控制流程出口点的程式回圈内之一指令序列。第一,计算该程式回圈的一最小启动间隔。第二,在该程式回圈上进行指令层级的平行执行性变换。第三,决定该程式回圈的一单一反覆排序。第四,使所选择的一些指令逸出到该程式回圈的一先前反覆,以便产生该程式回圈的一个新指令顺序。只要该程式回圈的一先前长度超过一单一反覆排序长度,且该单一反覆排序长度超过该最小启动间隔,则执行步骤二到步骤四的每一步骤。
申请公布号 TW339430 申请公布日期 1998.09.01
申请号 TW086103608 申请日期 1997.03.21
申请人 英特尔公司 发明人 张保华
分类号 G06F9/06 主分类号 G06F9/06
代理机构 代理人 陈长文 台北巿敦化北路二○一号七楼
主权项 1.一种在一个具有一单一控制流程入口及至少一个控制流程出口的程式回圈内对一指令序列排序之方法,包含下列各步骤:(a)计算该程式回圈的一最小启动间隔;(b)对该程式回圈进行指令层级的平行执行性变换;(c)对该程式回圈进行单一反覆排序;(d)使所选择的指令逸出到该程式回圈的一先前反覆,以便产生程式回圈的一个新指令顺序;以及(e)只要该程式回圈的一先前长度超过该程式回圈的一单一反覆排序长度,且该单一反覆排序长度超过该最小启动间隔时,则重复步骤:(b)到(d)。2.根据申请专利范围第1项之方法,又包含下列各步骤:(f)产生一个程式回圈首段程序;以及(g)产生一个程式回圈结尾程序。3.根据申请专利范围第1项之方法,其中该指令层级的平行执行性变换包括常数结合。4.根据申请专利范围第1项之方法,其中该指令层级的平行执行性变换包括运算结合。5.根据申请专利范围第1项之方法,其中该指令层级的平行执行性变换包括软体式暂存器更名。6.根据申请专利范围第1项之方法,其中该指令层级的平行执行性变换包括LHS/RHS变换。7.一种在一个具有一单一控制流程入口及至少一个控制流程出口的程式回圈内对一指令序列排序之方法,包含下列各步骤:(a)计算该程式回圈的一最小启动间隔;(b)自该程式回圈记录一个被记录的程式回圈;(c)对该程式回圈进行指令层级的平行执行性变换;以便产生一个修改后的程式回圈;(d)对该修改后的程式回圈进行单一反覆排序;(e)决定该修改后程式回圈的一单一反覆排序长度SL;(f)如果先前的长度并不大于SL,则将该修改后的程式回圈设定为所记录的该程式回圈;(g)如果先前的长度大于SL,且SL大于该最小启动间隔,则执行下列各步骤(i)使先前的长度等于SL;以及(ii)使该修改后程式回圈的所选择之指令逸出到该修改后程式回圈的一先前反覆;(h)只要该先前长度大于SL,且SL大于该最小启动间隔时,则重复步骤(b)到(g);(i)产生该修改后程式回圈的一回圈的首段程序;以及(j)产生该修改后程式回圈的一回圈结尾程序。8.根据申请专利范围第7项之方法,其中该指令层级的平行执行性变换包括常数结合。9.根据申请专利范围第7项之方法,其中该指令层级的平行执行性变换包括运算结合。10.根据申请专利范围第7项之方法,其中该指令层级的平行执行性变换包括软体式暂存器更名。11.根据申请专利范围第7项之方法,其中该指令层级的平行执行性变换包括LHS/RHS变换。图式简单说明:第一图示出以设有及未设有硬体管线化机制的处理器处理指令之对照。第二图示出针对一最短反覆时间而排序及针对一最小反覆间隔而排序之对照。第三图是软体管线化方法的一实施例之流程图。
地址 美国