指令编译器将一个有条件存储指令(指定寄存器文件的数据寄存器、基址寄存器、以及偏移寄存器)编译为至少两个微指令。乱序执行流水线执行这些微指令。为了执行第一个微指令,一个执行单元中接收基地址及来自寄存器文件的偏移量,并且产生随着基址值与偏移量而变的第一结果。第一结果指定存储单元的地址。为了执行第二个微指令,一个执行单元接收第一结果且如果条件标志满足此条件,那么将第一结果写入到存储队列中的一个分配的条目(存储队列顺次将数据写入到由此地址指定的存储单元),并且如果条件标志不满足此条件,那么消灭分配的存储队列条目以使得存储队列不将数据写入到由这个地址指定的存储单元。
【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】指令编译器将一个有条件存储指令(指定寄存器文件的数据寄存器、基址寄存器、以及偏移寄存器)编译为至少两个微指令。乱序执行流水线执行这些微指令。为了执行第一个微指令,一个执行单元中接收基地址及来自寄存器文件的偏移量,并且产生随着基址值与偏移量而变的第一结果。第一结果指定存储单元的地址。为了执行第二个微指令,一个执行单元接收第一结果且如果条件标志满足此条件,那么将第一结果写入到存储队列中的一个分配的条目(存储队列顺次将数据写入到由此地址指定的存储单元),并且如果条件标志不满足此条件,那么消灭分配的存储队列条目以使得存储队列不将数据写入到由这个地址指定的存储单元。【专利说明】一种乱序执行微处理器中的有条件存储指令相关申请的交叉引用本申请为下列美国非临时性专利申请的一个部分延续申请案(CIP )【权利要求】1.一种微处理器,具有定义有条件存储指令的指令集架构,所述微处理器包括: 存储队列; 寄存器文件; 指令编译器,将所述有条件存储指令编译为至少两个微指令,其中所述有条件存储指令指定所述寄存器文件的数据寄存器、基址寄存器、以及偏移寄存器,其中如果所述微处理器的条件标志满足指定条件,则所述有条件存储指令命令所述微处理器将数据从所述数据寄存器存储到存储单元;以及 乱序执行流水线,包括执行所述微指令的复数个执行单元; 其中为了执行所述微指令的第一个微指令,一个所述执行单元接收基址值和来自所述寄存器文件的偏移量,并且作为响应该一个所述执行单元产生随所述基址值与所述偏移量而变的第一结果,其中所述第一结果指定所述存储单元的一个地址; 其中为了执行所述微指令的第二个微指令,一个所述执行单元接收所述第一结果,并且作为响应: 如果所述条件标志满足所述条件,则将所述第一结果写入到所述存储队列中的一个分配的条目,其中所述存储队列配置为顺次将所述数据写入到由所述地址指定的所述存储单元;以及 如果所述条件标志不满足所述条件,则消灭所述分配的存储队列条目以使得所述存储队列不将所述数据写入到由所述地址指定的所述存储单元。2.根据权利要求1所述的微处理器, 其中所述基址寄存器是与所述数据寄存器及所述偏移寄存器不相同的寄存器,其中如果满足所述条件的话,所述有条件存储指令指定所述基址寄存器待更新; 其中所述至少两个微指令包含一个第三微指令,其中为了执行所述第三微指令,一个所述执行单元接收所述基址寄存器的一个在前值及所述第一结果,并且作为响应该一个所述执行单元提供用于写入到所述基址寄存器的一个第二结果,其中如果满足所述条件的话,则所述第二结果是所述第一结果,并且如果不满足所述条件的话,则所述第二结果是所述基址寄存器的所述在前值; 其中所述基址寄存器的所述在前值包含执行一个微指令所产生的结果,其中所述微指令是关于所述第三微指令的所述基址寄存器的次序上最近的在前写入者。3.根据权利要求2所述的微处理器, 其中所述有条件存储指令进一步指定一个移位量; 其中所述至少两个微指令包括一个第四微指令,其中为了执行所述第四微指令,一个所述执行单元接收所述移位量和来自所述寄存器文件的所述偏移量,并且作为响应该一个所述执行单元提供一个第三结果,所述第三结果是移位了所述移位量的所述偏移量; 其中执行所述第一微指令的所述执行单元接收所述第三结果而不是来自所述寄存器文件的所述偏移量,并且所述执行单元使用所述第三结果而非来自所述寄存器文件的所述偏移量产生所述第一结果。4.根据权利要求2所述的微处理器, 其中所述第三微指令指定所述第二结果待写入到所述基址寄存器; 其中在顺序上位于所述第三微指令之后的一个用户微指令指定是所述基址寄存器的一个源寄存器,其中与是否满足所述条件无关,所述用户微指令使用所述第三微指令的所述第二结果作为源操作数。5.根据权利要求1所述的微处理器, 其中所述有条件存储指令进一步指定一个移位量; 其中所述至少两个微指令包括一个第三微指令,其中为了执行所述第三微指令,一个所述执行单元接收所述移位量及来自所述寄存器文件的所述偏移量,并且作为响应该一个所述执行单元提供一个第二结果,所述第二结果是移位了所述移位量的所述偏移量; 其中执行所述第一微指令的所述执行单元接收所述第二结果而不是来自所述寄存器文件的所述偏移量,并且所述执行单元使用所述第二结果而非来自所述寄存器文件的所述偏移量产生所述第一结果。6.根据权利要求1所述的微处理器,其中进一步为了执行所述第二微指令,所述执行单元的一个不同的执行单元: 从所述数据寄存器接收所述数据;以及 将所述数据写入到所述分配的存储队列条目。7.根据权利要求1所述的微处理器, 其中所述至少两个微指令包括一个第三微指令,其中为了执行所述第三微指令,所述执行单元中的一个不同的执行单元: 从所述数据寄存器接收所述数据;以及 将所述数据写入到所述分配的存储队列条目。8.根据权利要求1所述的微处理器,其中所述微指令的编码方式与由所述指令集架构定义的所述指令的编码方式不相同。9.根据权利要求1所述的微处理器,其中对于执行所述微指令的每一个所述执行单元,所述寄存器文件包括最多两个读端口以同时将最多两个源操作数提供给所述执行单J Li ο10.根据权利要求1所述的微处理器,其中所述第一微指令将所述寄存器文件的一个非架构寄存器指定作为所述第一微指令的目标寄存器,其中所述第二微指令将由所述第一微指令指定的所述非架构寄存器指定作为所述第二微指令的源寄存器。11.一种微处理器的操作方法,其中所述微处理器具有定义有条件存储指令的指令集架构且具有存储队列及寄存器文件,所述微处理器的操作方法包括: 将所述有条件存储指令编译为至少两个微指令,其中所述有条件存储指令指定所述寄存器文件的数据寄存器、基址寄存器、以及偏移寄存器,其中如果所述微处理器的条件标志满足指定条件,则所述有条件存储指令命令所述微处理器将数据从所述数据寄存器存储到存储单元;以及 通过所述微处理器的乱序执行 流水线执行所述微指令; 其中所述执行所述微指令的第一个微指令包括接收一个基址值及来自所述寄存器文件的偏移量,并且作为响应产生随所述基址值与偏移量而变的第一结果,其中所述第一结果指定所述存储单元的一个地址; 其中所述执行所述微指令的第二个微指令包括接收所述第一结果且作为响应: 如果所述条件标志满足所述条件,则将所述第一结果写入到所述存储队列中的一个分配的条目,其中所述存储队列配置为将所述数据顺次写入到由所述地址指定的所述存储单元;以及 如果所述条件标志不满足所述条件,则消灭所述分配的存储队列条目以使得所述存储队列不将所述数据写入到由所述地址指定的所述存储单元。12.根据权利要求11所述的微处理器的操作方法, 其中所述基址寄存器是与所述数据寄存器及所述偏移寄存器不相同的寄存器,其中如果满足所述条件的话,则所述有条件存储指令指定所述基址寄存器待更新; 其中所述至少两个微指令包含一个第三微指令; 其中所述执行所述第三微指令包括,接收所述基址寄存器的在前值及所述第一结果,并且作为响应提供用于写入到所述基址寄存器的一个第二结果,其中当满足所述条件的话所述第二结果是所述第一结果,并且如果不满足所述条件的话所述第二结果是本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:G·格伦·亨利,杰勒德·M·科尔,科林·埃迪,罗德尼·E·胡克,特里·帕克斯,
申请(专利权)人:威盛电子股份有限公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。