The invention discloses a method of instruction delay execution and instruction protocol in the field of computer processor structure, which includes a functional instruction, a set of rules of a function specification, a set of rules that can be combined, a device for instruction delay execution and instruction regulation, which delays execution and refers to the instruction. The devices that make a protocol include a function input buffer, a number of function specification modules, a function combination module, and a function packet buffer. On the one hand, the scheme simplifies several functions into a complex function supported by the processor hardware, and on the other hand, transfer the return values and parameters between several functions by the other. The external memory is converted into internal memory to reduce the interaction between the data and the external or low speed memory, in order to reduce the demand for storage bandwidth and power consumption.
【技术实现步骤摘要】
一种指令延迟执行和指令规约的方法和装置
本专利技术涉及计算机处理器结构
,具体为一种指令延迟执行和指令规约的方法和装置。
技术介绍
计算机程序有两种执行策略,贪婪执行(立即执行)和懒惰执行(延迟执行)。对于命令式编程的语言构造得到的绝大多数程序都是采用贪婪执行策略。计算机处理器的硬件执行的机器代码就是一种命令式语言,因此几乎所有的计算机处理器都是采用贪婪执行策略设计而成。贪婪执行的优点是计算机不需要跟踪和调度某条指令或者某句表达式的时机,程序员可以指定指令执行的顺序,减少硬件判断的复杂度。而懒惰执行可以从多方面提高程序的性能,如避免执行不需要的计算,避免计算组合表达式中已经处于的错误条件,减少程序执行的内存开销等。与命令式编程大多数采用贪婪执行策略相对,函数式编程大多数采用懒惰执行策略。在函数式编程中允许高阶函数将函数作为参数传入,并规约成一个新的函数返回。这种规约可以改变整个程序的执行顺序从而优化执行效率。通常前一种命令式编程的架构具有一般化的处理能力和优化结构,如中央处理器上的程序会充分利用中央处理单元的计算指令以及数据和指令缓存。而另一种处理器架构通常是针对某一类有自身特征的程序而设计,具有比较特殊的计算单元和局部存储器结构,如神经网络加速器会设计大量相互有独特拓扑关系的乘累加器用于卷积或矢量内积运算。如果仍然采用命令式编程和贪婪执行策略,前者的程序很难在后者上达到高效率,所以需要重新编写或者编译前者的程序。
技术实现思路
本专利技术的目的在于提供一种指令延迟执行和指令规约的方法和装置,以解决上述
技术介绍
中提出的神经网络加速器会设计大量相互有独特拓 ...
【技术保护点】
1.一种指令延迟执行和指令规约的方法,其特征在于,包括:一种函数式的指令、一个函数规约的规则集合、一个函数可组合的规则集合。函数执行时经过函数译码从函数输入缓冲区获得并变换得到函数的可规约形式,根据函数的变量参数和当前规约的函数的返回值,判断是否符合规约和合并的先决条件。如果符合条件,将函数的可规约形式与当前暂存的规约函数输入到规约函数规约状态机,状态机根据给定的规约规则决定是否将该输入函数与当前的规约函数规约成新的函数,如果状态机无法规约该输入函数,当前已经规约的函数将被输入到函数组合模块中,而当前规约函数将被替换成输入函数。当已规约好的函数输入到函数组合模块时,函数组合器将判断是否将输入函数与之前的函数组合成一个函数包,或者终止之前的函数打包,并将已打包好的函数包交付后续执行部件完成函数执行,并以输入函数开始新的函数包。一种函数式的指令必须包含一个函数操作符,一个函数返回值,至少一个变量参数,可以包含若干个非变量参数。函数的操作符定义函数的基本行为,如加法、减法等,函数的返回值代表函数的计算结果,函数的返回值也是该函数被执行一次的标识符,用于指代该条函数的执行。变量参数是指可以将函 ...
【技术特征摘要】
1.一种指令延迟执行和指令规约的方法,其特征在于,包括:一种函数式的指令、一个函数规约的规则集合、一个函数可组合的规则集合。函数执行时经过函数译码从函数输入缓冲区获得并变换得到函数的可规约形式,根据函数的变量参数和当前规约的函数的返回值,判断是否符合规约和合并的先决条件。如果符合条件,将函数的可规约形式与当前暂存的规约函数输入到规约函数规约状态机,状态机根据给定的规约规则决定是否将该输入函数与当前的规约函数规约成新的函数,如果状态机无法规约该输入函数,当前已经规约的函数将被输入到函数组合模块中,而当前规约函数将被替换成输入函数。当已规约好的函数输入到函数组合模块时,函数组合器将判断是否将输入函数与之前的函数组合成一个函数包,或者终止之前的函数打包,并将已打包好的函数包交付后续执行部件完成函数执行,并以输入函数开始新的函数包。一种函数式的指令必须包含一个函数操作符,一个函数返回值,至少一个变量参数,可以包含若干个非变量参数。函数的操作符定义函数的基本行为,如加法、减法等,函数的返回值代表函数的计算结果,函数的返回值也是该函数被执行一次的标识符,用于指代该条函数的执行。变量参数是指可以将函数作为变量传递的参数。非变量参数是指不可以传递函数的参数。一种函数规约规则集合由若干条规约规则组成。若规则集不为空,每条规约规则定义为输入两个函数(一个输入函数和一个当前规约的函数),输入函数的一个变量参数是当前规约函数的返回值,是否存在一个函数式指令能够具有完成两个函数的等价功能,其返回值与输入函数的返回值相同,并且其变量参数是输入函数的变量参数减去由当前规约函数返回值替代的参数,加上当前规约函数的变量参数,并且其非变量参数是两个函数的非变量参数,若存在,则说明两个输入函数符合规约规则。若规则集为空,则该方法不规约任何函数。一种函数可组合规则集合由若干条组合规则组成,每条组合规则定义为输入一个函数和一组函数(一个输入函数和一个当前函数包),输入函数的一个变量参数是当前函数包最后一个函数的返回值,是否允许函数包中最后函数的返回值在不计算或者不完全计算的情况下开始执行输入函数。判断是否符合规约和合并的先决条件指一个函数的一个变量参数是另一个函数的返回值。规约过程:将该输入函数与当前的规约函数规约成新的函数,首先将输入函数、当前的规约函数和其返回值存储到历史函数列表中。然后根据规约规则将输入函数和当前的规约函数生成新的规约函数,将新的规约函数中的参数设置为输入函数和规约函数的参数。将当前规约函数换成新的规约函数。如果输入函数与当前的规约函...
【专利技术属性】
技术研发人员:王磊,史少波,张齐辉,
申请(专利权)人:华夏芯北京通用处理器技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。