发明名称 程式指令调整方法
摘要
申请公布号 TWI334571 申请公布日期 2010.12.11
申请号 TW096106090 申请日期 2007.02.16
申请人 威盛电子股份有限公司 发明人 陈亦鹏
分类号 G06F9/38 主分类号 G06F9/38
代理机构 代理人 洪澄文 台北市大安区信义路4段279号3楼;颜锦顺 台北市大安区信义路4段279号3楼
主权项 一种程式指令调整方法,包含:自一储存装置中取得即将由一电脑处理器执行之一程式;取得该程式检视中的一指令作为一目前指令,取得该目前指令所使用的一暂存器及该目前指令对该暂存器所执行的一第一动作;在其他程式指令在上述第一动作以前亦对同一暂存器执行一第二动作的情况下,根据该目前指令与其他程式指令存取该暂存器之顺序建立该程式之指令间的一相依关系;根据该相依关系计算程式中每一指令的相依深度;以及根据该程式中每一指令之相依深度重新排列该程式中所有指令的执行顺序。如申请专利范围第1项所述的程式指令调整方法,更包括:储存一对应纪录以指示该目前指令之一指令类别,其中该指令类别包括开始指令、输出指令与移动指令,而输出指令乃为输出该程式最后执行结果的指令。如申请专利范围第1项所述的程式指令调整方法,更包括一初始化程序,系取得上述目前指令的一初始相依深度。如申请专利范围第1项所述的程式指令调整方法,其中,以一稳定排序法(stable sorting algorithm)重新排列上述程式中的所有指令。如申请专利范围第1项所述的程式指令调整方法,其中计算程式中每一指令的相依深度方式包括:以执行该第二动作的其他指令作为该目前指令的上层指令;选取该些上层指令中相依深度最大者之相依深度值作一运算,以该运算的结果重新作为上述目前指令之相依深度,使上述目前指令与其上述上层指令之相依深度相差一预定差值;以及根据上述程式中每一指令之相依深度以重新排列上述程式中的所有指令。如申请专利范围第5项所述的程式指令调整方法,其中,更包含:开始顺序地反向回溯所有上层指令,并纪录所有被反向回溯的上述上层指令为一指令群组;以及若上述程式中有一指令不属于上述指令群组时,自上述程式中删除该指令如申请专利范围第1项所述的程式指令调整方法,其中,当上述第二与第一动作分别为写入动作与读取动作时,将上述相依关系分类为先写后读关系,当上述第二与第一动作皆为写入动作时,将上述相依关系分类为先写后写关系,当上述第二与第一动作分别为读取动作与写入动作时,将上述相依关系分类为先读后写关系。如申请专利范围第7项所述的程式指令调整方法,其中,更包含:根据一指示指令类别之对应纪录取得上述程式中的一移动指令;当上述移动指令具有一上、下层指令,且该移动指令与其上层指令及下层指令之相依关系皆属于先写后读关系时,则修改上述移动指令的下层指令之运算元暂存器为上述移动指令的上层指令的结果暂存器;以及自上述程式中删除该移动指令。如申请专利范围第1项所述的程式指令调整方法,更包含:将重新排列后之上述程式交付至该电脑处理器作进一步执行。一种程式指令调整方法,包含:自一储存装置中取得即将由一电脑处理器执行之一程式;取得上述程式检视中的一指令作为一目前指令;当在上述目前指令对该暂存器执行一第一动作以前,亦有其他指令对同一暂存器执行一第二动作的情况下,建立其他指令与该目前指令之间的相依关系,其中,上述相依关系中该些其他指令系为目前指令之上层指令;在顺序地取得程式中的每一指令作为上述目前指令并建立其相对应的相依关系后,开始顺序地反向回溯所有上层指令,并纪录所有被反向回溯的上层指令为一指令群组;以及若在上述程式中有一指令不属于上述指令群组时,自上述程式中删除该指令。如申请专利范围第10项所述的程式指令调整方法,其中,更包含:将删除该指令后之上述程式交付至该电脑处理器作进一步执行。如申请专利范围第10项所述的程式指令调整方法,其中,更包含:以一资料结构记录上述暂存器的读取指令及写入指令;当上述第一动作为读取动作时,于上述资料结构中记录上述目前指令为上述暂存器的一第一读取指令,若于上述资料结构中记录上述目前指令为上述第一读取指令以前,上述资料结构中已存有其他指令为上述暂存器之写入指令时,则建立上述相依关系为先写后读关系;当上述第一动作为写入动作时,于上述资料结构中记录上述目前指令为上述暂存器的一第一写入指令,若于上述资料结构中记录上述目前指令为上述第一写入指令以前,上述资料结构中已经储存其他指令为上述暂存器之写入指令,且无上述暂存器之读取指令时,建立上述相依关系为先写后写关系,且删除上述资料结构中的已储存指令;若于上述资料结构中记录上述目前指令为第一写入指令以前,上述资料结构中已经储存上述暂存器之一个或一个以上的读取指令时,建立上述目前指令与上述一个或一个以上的读取指令之每一者之间的相依关系为先读后写关系,并删除上述资料结构中的上述一个或一个以上的读取指令;以及若于上述资料结构中记录上述目前指令为第一写入指令以前,上述资料结构中已经储存上述暂存器之一个或一个以上的读取指令以及一第二写入指令时,删除上述第二写入指令。一种程式指令调整方法,包含:自一储存装置中取得即将由一电脑处理器执行之一程式;取得该程式的一指令作为一目前指令、以及该目前指令所使用的一暂存器;在其他程式指令在上述第一动作以前亦对同一暂存器执行存取的情况下,根据该目前指令与其他程式指令存取该暂存器之顺序建立该程式之指令间的一相依关系;以及根据该相依关系以移除上述程式中冗余的移动指令。如申请专利范围第13项所述的程式指令调整方法,更包含:当上述程式中具有一第二指令在上述目前指令使用一暂存器以前使用同一暂存器,则根据上述第二指令对上述暂存器之第一动作及上述目前指令对上述暂存器之第二动作以建立上述第二指令及上述目前指令之相依关系,其中当上述第一与第二动作分别为写入动作与读取动作时,将上述相依关系分类为先写后读关系,上述相依关系中上述第二指令为上述目前指令之上层指令;当上述目前指令为一移动指令,并具有一下层指令,且上述移动指令与其上层指令及下层指令之相依关系皆属于先写后读关系时,则修改上述移动指令的下层指令之相关运算元暂存器为上述移动指令的上层指令的结果暂存器,其中上述相关运算元暂存器相同于上述移动指令的写入暂存器;以及删除上述程式中的上述移动指令。如申请专利范围第13项所述的程式指令调整方法,更包含:若上述目前指令为移动指令,储存一对应纪录以指示该目前指令为移动指令;以及根据上述对应纪录取得上述程式中该移动指令。如申请专利范围第13项所述的程式指令调整方法,更包含:建立上述移动指令的下层指令与上层指令之间的相依关系。
地址 台北县新店市中正路535号8楼