主权项 |
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变换。图式简单说明:第一图示出以设有及未设有硬体管线化机制的处理器处理指令之对照。第二图示出针对一最短反覆时间而排序及针对一最小反覆间隔而排序之对照。第三图是软体管线化方法的一实施例之流程图。 |