一种条件分支指令的处理系统和方法技术方案

技术编号:38770052 阅读:18 留言:0更新日期:2023-09-10 10:43
本发明专利技术公开了一种条件分支指令的处理系统和方法,包括:指令发射单元用于采用第一进程将指令存储单元基于取指令请求反馈的指令数据发送给取指令单元的指令缓冲区,采用第二进程将从指令缓冲区中读取的条件分支指令发送给指令执行单元;指令执行单元用于执行条件分支指令生成执行结果;取指令单元用于在确定跳转信息为需要跳转时,将指令缓冲区进行清空,通过指令发射单元将目标指令发送到指令执行单元。在对条件分支指令进行处理时,能够以简单的硬件实现,由于指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量,因此在确定需要跳转时通过清空指令缓冲区,允许1次分支预测错误,不需要深度排空指令,并降低分支预测的功耗。低分支预测的功耗。低分支预测的功耗。

【技术实现步骤摘要】
一种条件分支指令的处理系统和方法


[0001]本专利技术涉及处理器
,尤其涉及一种条件分支指令的处理系统和方法。

技术介绍

[0002]在神经网络处理器(Neural Network Processor Unit,NPU)的数据流水线中,条件分支指令比较常见。条件分支指令之后要执行的指令和条件分支指令的执行结果存在控制相关性,在执行到条件分支指令时,流水线会暂停,等待分支指令是否跳转的结果,来决定下条指令的程序计数器(Programming Counter,PC)。如果指令不跳转,就继续执行下一条指令,如果指令跳转,就跳转到目标PC,来执行。
[0003]现有的处理器,很多采用了分支预测技术,通过分支预测,来提高指令执行的效率。但是,分支预测技术需要一个分支预测的硬件单元,分支预测单元会记录分支指令的地址和指令跳转的历史信息,综合来预测下条指令的PC。所以,分支预测单元硬件实现更加复杂,功耗也更大。

技术实现思路

[0004]本专利技术提供了一种条件分支指令的处理系统和方法,以实现以更加简单的系统来处理条件分支指令,允许1次分支预测错误,不需要深度排空指令,以降低分支预测的功耗。
[0005]根据本专利技术的第一方面,提供了一种条件分支指令的处理系统,包括:取指令单元、与所述取指令单元分别连接的指令存储单元、指令发射单元和指令执行单元,所述指令发射单元分别与所述指令存储单元和所述指令执行单元连接;
[0006]所述取指令单元,用于向指令存储单元发送取指令请求,其中,取指令请求中包括当前程序计数器PC指针以及运行状态信息;
[0007]所述指令发射单元,用于采用第一进程将指令存储单元基于所述取指令请求反馈的指令数据发送给所述取指令单元的指令缓冲区,采用第二进程将从所述指令缓冲区中读取的条件分支指令发送给指令执行单元,其中,所述指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量;
[0008]所述指令执行单元,用于执行所述条件分支指令生成执行结果,并将所述执行结果发送给所述取指令单元,其中,所述执行结果包括跳转信息和目标PC指针;
[0009]所述取指令单元,用于在确定所述跳转信息为需要跳转时,将所述指令缓冲区进行清空,并将根据所述目标PC指针生成的重取指令请求发送给指令存储单元,以使所述指令存储单元根据所述目标PC确定目标指令后发送给所述指令发射单元,并通过所述指令发射单元将所述目标指令发送到所述指令执行单元。
[0010]根据本专利技术的另一方面,提供了一种条件分支指令的处理方法,包括:通过取指令单元向指令存储单元发送取指令请求,其中,取指令请求中包括当前程序计数器PC指针以及运行状态信息;
[0011]通过指令发射单元采用第一进程将指令存储单元基于所述取指令请求反馈的指
令数据发送给所述取指令单元的指令缓冲区,采用第二进程将从所述指令缓冲区中读取的条件分支指令发送给指令执行单元,其中,所述指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量;
[0012]通过指令执行单元执行所述条件分支指令生成执行结果,并将所述执行结果发送给所述取指令单元,其中,所述执行结果包括跳转信息和目标PC指针;
[0013]通过取指令单元在确定所述跳转信息为需要跳转时,将所述指令缓冲区进行清空,并将根据所述目标PC指针生成的重取指令请求发送给指令存储单元,以使所述指令存储单元根据所述目标PC确定目标指令后发送给所述指令发射单元,并通过所述指令发射单元将所述目标指令发送到所述指令缓冲区。
[0014]本专利技术实施例的技术方案,在对条件分支指令进行处理时,能够以简单的硬件实现,由于指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量,因此在确定需要跳转时通过清空指令缓冲区,允许1次分支预测错误,不需要深度排空指令,并降低分支预测的功耗。
[0015]应当理解,本部分所描述的内容并非旨在标识本专利技术的实施例的关键或重要特征,也不用于限制本专利技术的范围。本专利技术的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0016]为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是根据本专利技术实施例一提供的一种条件分支指令的处理系统的结构示意图;
[0018]图2是根据本专利技术实施例一提供的一种取指令单元状态机的状态转移图;
[0019]图3是根据本专利技术实施例二提供的一种条件分支指令的处理方法的流程图。
具体实施方式
[0020]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0021]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语
ꢀ“
包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0022]实施例一
[0023]图1为本专利技术实施例一提供的一种条件分支指令的处理系统的结构示意图,如图1所示,该系统包括取指令单元、与取指令单元分别连接的指令存储单元、指令发射单元和指令执行单元,指令发射单元分别与指令存储单元和指令执行单元连接。
[0024]其中,取指令单元,用于向指令存储单元发送取指令请求,其中,取指令请求中包括当前程序计数器PC指针以及运行状态信息;
[0025]指令发射单元,用于采用第一进程将指令存储单元基于取指令请求反馈的指令数据发送给取指令单元的指令缓冲区,采用第二进程将从指令缓冲区中读取的条件分支指令发送给指令执行单元,其中,指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量;
[0026]指令执行单元,用于执行条件分支指令生成执行结果,并将执行结果发送给取指令单元,其中,执行结果包括跳转信息和目标PC指针;
[0027]取指令单元,用于在确定跳转信息为需要跳转时,将指令缓冲区进行清空,并将根据目标PC指针生成的重取指令请求发送给指令存储单元,以使指令存储单元根据目标PC确定目标指令后发送给指令发射单元,并通过指令发射单元将目标指令发送到指令执行单元。
[0028]具体的说,在本实施方式的取指令单元中还包括状态机,如图2所示为状态机的状态转移图,因此取指令单元的运行状态信息共有四种状态,分别是空闲状态

IDLE,取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种条件分支指令的处理系统,其特征在于,包括:取指令单元、与所述取指令单元分别连接的指令存储单元、指令发射单元和指令执行单元,所述指令发射单元分别与所述指令存储单元和所述指令执行单元连接;所述取指令单元,用于向指令存储单元发送取指令请求,其中,取指令请求中包括当前程序计数器PC指针以及运行状态信息;所述指令发射单元,用于采用第一进程将指令存储单元基于所述取指令请求反馈的指令数据发送给所述取指令单元的指令缓冲区,采用第二进程将从所述指令缓冲区中读取的条件分支指令发送给指令执行单元,其中,所述指令缓冲区的深度为隐藏指令执行单元流水线执行周期所需的指令数量;所述指令执行单元,用于执行所述条件分支指令生成执行结果,并将所述执行结果发送给所述取指令单元,其中,所述执行结果包括跳转信息和目标PC指针;所述取指令单元,用于在确定所述跳转信息为需要跳转时,将所述指令缓冲区进行清空,并将根据所述目标PC指针生成的重取指令请求发送给指令存储单元,以使所述指令存储单元根据所述目标PC确定目标指令后发送给所述指令发射单元,并通过所述指令发射单元将所述目标指令发送到所述指令执行单元。2.根据权利要求1所述的系统,其特征在于,所述取指令单元中包括状态机,所述状态机,用于当确定所述取指令单元开始工作时,将取指令单元的运行状态信息从空闲状态切换到取指状态;当确定所述取指令单元首次接收到需要跳转的跳转信息时,则将运行状态信息从取指状态切换到重新取指状态;当确定所述取指令单元在所述重新取指状态下再次接收到需要跳转的跳转信息时,则将运行状态信息从重新取指状态切换到等待排空状态;当确定所述取指令单元在所述重新取指状态下,指令存储单元已经返回本次请求的全部指令时,则将运行状态信息从重新取指状态切换到取指状态;当确定所述取指令单元在所述取指状态下接收到需要跳转的跳转信息,而指令存储单元并没有返回历史请求的全部指令时,则将所述运行状态信息从取指状态切换到等待排空状态;当确定所述取指令单元在所述等待排空状态下,指令存储单元已经返回历史请求的全部指令时,则将运行状态信息从等待排空状态切换到取指状态;当确定所述取指令单元接收到所述指令存储单元中的最后一条指令时,则将运行状态信息从取指状态切换到空闲状态。3.根据权利要求2所述的系统,其特征在于,所述取指令单元,用于当确定所述运行状态信息为取指状态或重新取指状态,并且所述指令缓冲区未满的情况下,根据当前PC指针以及所述运行状态信息生成所述取指令请求;将所述取指令请求发送给所述指令存储单元,并将自身的当前PC指针按照指定步长进行自增。4.根据权利要求2所述的系统,其特征在于,所述指令存储单元,用于根据所述当前PC指针在本地进行搜索获取与所述当前PC指针所对应的指令;根据搜索到的指令和所述运行状态信息生成所述...

【专利技术属性】
技术研发人员:孙华庆郑杰
申请(专利权)人:芯砺智能科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1