一种网络处理器微引擎的多发射指令并行处理方法及装置与流程

文档序号:11133550阅读:来源:国知局

技术特征:

1.一种网络处理器微引擎的多发射指令并行处理方法,其特征在于,所述方法包括:

对指令间的相关性进行判断和标记,根据所述标记判断是否并行发射指令;

当并行发射指令时,利用并行解码单元对所述指令进行解析,得到各个指令的指令类型和源操作数的地址;

根据所述指令的源操作数的地址,在多端口内核寄存器中获取源操作数;

根据所述指令的指令类型,为所述指令分配相应的可执行单元对所述源操作数进行处理;

将处理结果存储至多端口内核寄存器中。

2.根据权利要求1所述的网络处理器微引擎的多发射指令并行处理方法,其特征在于,所述对指令间的相关性进行判断和标记,包括:

判断前后两条指令的目的寄存器是否在同一个区域;

当前后两条指令的目的寄存器不在同一个区域时,判断前后两条指令的目的寄存器是否存在数据冒险;

当前后两条指令的目的寄存器不存在数据冒险时,判断前后两条指令的指令类型是否不同;

当前后两条指令的指令类型不同时,判断前一条指令是否为跳转指令;

当前一条指令不是跳转指令时,确定两条指令不相关,并在后一条指令上置上不相关标记。

3.根据权利要求2所述的网络处理器微引擎的多发射指令并行处理方法,其特征在于,所述根据所述标记判断是否并行发射指令,包括:

当所述后一条指令置有不相关标记时,一个线程并行发射前后两条指令。

4.根据权利要求1所述的网络处理器微引擎的多发射指令并行处理方法,其特征在于,

所述多端口内核寄存器按照线程分为两组寄存器,每组寄存器包括4个寄 存器单元;一条指令的两个源操作数分别在两个不同的寄存器单元中;一个线程的两条指令的目的操作数分别在两个不同的寄存器单元中;

所述多端口内核寄存器具有8个数据读口和4个数据写口,同时支持四条指令访问,每条指令访问两个源操作数和一个目的操作数。

5.根据权利要求1至4任一项所述的网络处理器微引擎的多发射指令并行处理方法,其特征在于,所述指令的指令类型大类分为逻辑计算类指令、数据上传/下载类指令、跳转类指令;每一指令类型大类中又包括多个指令小类;每个线程对应一组可执行单元,包括:逻辑计算类执行单元、数据上传/下载类执行单元、跳转类执行单元;

所述根据所述指令的指令类型,为所述指令分配相应的可执行单元,包括:

当一个线程的两条指令大类不一致时,将各组的指令分配到各自对应的可执行单元;

当一个线程的两条指令大类一致且指令小类不一致时,根据以下三种情况处理:

指令大类属逻辑计算类指令时,线程内分配各自的逻辑计算类执行单元;

指令大类属上传/下载类指令时,线程内分配各自的数据上传/下载类执行单元;

其中一条指令属跳转类指令时,按约束分配各自的可执行单元。

6.一种网络处理器微引擎的多发射指令并行处理装置,其特征在于,所述装置包括:

编译单元,用于对指令间的相关性进行判断和标记,根据所述标记判断是否并行发射指令;

并行解码单元,用于当并行发射指令时,并行对所述指令进行解析,得到各个指令的指令类型和源操作数的地址;

读取单元,用于根据所述指令的源操作数的地址,在多端口内核寄存器中获取源操作数;

指令分配单元,用于根据所述指令的指令类型,为所述指令分配相应的可 执行单元对所述源操作数进行处理;

写入单元,用于将处理结果存储至多端口内核寄存器中。

7.根据权利要求6所述的网络处理器微引擎的多发射指令并行处理装置,其特征在于,所述编译单元,还用于判断前后两条指令的目的寄存器是否在同一个区域;当前后两条指令的目的寄存器不在同一个区域时,判断前后两条指令的目的寄存器是否存在数据冒险;当前后两条指令的目的寄存器不存在数据冒险时,判断前后两条指令的指令类型是否不同;当前后两条指令的指令类型不同时,判断前一条指令是否为跳转指令;当前一条指令不是跳转指令时,确定两条指令不相关,并在后一条指令上置上不相关标记。

8.根据权利要求7所述的网络处理器微引擎的多发射指令并行处理装置,其特征在于,所述编译单元,还用于当所述后一条指令置有不相关标记时,一个线程并行发射前后两条指令。

9.根据权利要求6所述的网络处理器微引擎的多发射指令并行处理装置,其特征在于,

所述多端口内核寄存器按照线程分为两组寄存器,每组寄存器包括4个寄存器单元;一条指令的两个源操作数分别在两个不同的寄存器单元中;一个线程的两条指令的目的操作数分别在两个不同的寄存器单元中;

所述多端口内核寄存器具有8个数据读口和4个数据写口,同时支持四条指令访问,每条指令访问两个源操作数和一个目的操作数。

10.根据权利要求6至9任一项所述的网络处理器微引擎的多发射指令并行处理装置,其特征在于,所述指令的指令类型大类分为逻辑计算类指令、数据上传/下载类指令、跳转类指令;每一指令类型大类中又包括多个指令小类;每个线程对应一组可执行单元,包括:逻辑计算类执行单元、数据上传/下载类执行单元、跳转类执行单元;

所述指令分配单元,还用于当一个线程的两条指令大类不一致时,将各组的指令分配到各自对应的可执行单元;当一个线程的两条指令大类一致且指令小类不一致时,根据以下三种情况处理:指令大类属逻辑计算类指令时,线程 内分配各自的逻辑计算类执行单元;指令大类属上传/下载类指令时,线程内分配各自的数据上传/下载类执行单元;其中一条指令属跳转类指令时,按约束分配各自的可执行单元。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1