一种数据处理方法及装置与流程

文档序号:37349059发布日期:2024-03-18 18:27阅读:11来源:国知局
一种数据处理方法及装置与流程

本技术涉及通信,尤其涉及一种数据处理方法及装置。


背景技术:

1、网络处理器(network processor,np)是一种应用在交换机和路由器中的可编程器件,用于处理通信领域的各种任务,比如,报文处理、协议分析、路由查找、声音/数据的汇聚、防火墙和服务质量(quality of service,qos)等。其中,报文处理包括读取报文中的目的地址并确定输出端口,以及对报文进行相应处理。np将处理后的报文按最佳路径传送到指定位置。

2、通常,np包括匹配单元(match unit,mu)、分支单元(branch unit,bu)和执行单元(action unit,au)。au包括:第一调度单元os1、第二调度单元os2、多个处理器核(processor core、pce)、程序数据缓冲器(program state buffer,psb)、部分向量生成器(partial vector builder,pvb)、临时缓存器(temp buffer,tb)、选择器(data selector,ds)和全向量生成器(full vector builder,fvb)。多个pce中的每个pce包括多个线程。np在处理报文时,mu和bu接收报文并确定用于处理报文的程序分支的首地址,bu将报文和首地址发送给au,au运行程序分支对报文进行处理。具体的,ds接收报文并将报文发送给psb进行存储;第一调度单元os1接收首地址并将首地址发送给多个pce中的第一pce,同时根据首地址生成读指令,该读指令用于指示从psb中读取包含该首地址的程序分支对应的数据块fv,其中,该程序分支包括多个程序块,第一pce为多个线程中分配给该程序分支的pce,第一调度单元os1根据读指令获取数据块fv并发送给pvb,同时将数据块fv存储在tb中;对于多个程序块中的每个程序块,pvb从数据块fv中获取该程序块对应的数据,多个程序块对应得到数据pv并将数据pv发送给第一线程,第一线程为多个线程中分配给该程序分支的线程;第一pce根据首地址进行取指以确定程序分支,第一pce运行程序分支以调运第一线程修改数据pv中的部分数据,得到数据pv’,并将数据pv’发送给第二调度单元os2;该fvb根据第二调度单元os2输出的数据pv’和tb中存储的数据块fv,更新数据块fv得到数据块fv’并输出。

3、但是,该程序分支在运行时,实际运行的程序块为该多个程序块中的部分程序块,将该多个程序块对应的数据全部发送给第一线程,除了实际运行的程序块之外的其它程序块对应的数据均为无效数据,第一线程中的无效数据太多,导致线程过重,降低了线程的效率,增大了np的功耗、降低了报文的处理效率。


技术实现思路

1、本技术提供一种数据处理方法及装置,涉及通信技术领域,用于降低处理器的功耗以及提高处理器处理数据的效率。

2、为达到上述目的,本技术采用如下技术方案:

3、第一方面,提供一种数据处理方法,该方法应用于处理器中,该处理器包括第一处理核,该第一处理核包括:预读取缓存器和多个线程,该方法包括:获取指令地址,并根据该指令地址确定目标程序的第一程序分支,该第一程序分支包括多个程序块,该多个程序块包括第一程序块;根据该第一程序块对应的第一读指令,从该预读取缓存器中获取该第一程序块对应的第一处理数据,该预读取缓存器用于存储第一数据块,该第一数据块为该第一处理数据所在的数据块;通过第一线程处理该第一处理数据,得到第一目标数据,该第一线程为该多个线程中分配给该第一程序分支的线程。

4、上述技术方案中,该第一处理器核获取指令地址,并根据该指令地址确定目标程序的第一程序分支,该第一程序分支包括多个程序块,该多个程序块包括第一程序块;根据该第一程序块对应的第一读指令,从该预读取缓存器中获取该第一程序块对应的第一处理数据,该预读取缓存器用于存储第一数据块,该第一数据块为该第一处理数据所在的数据块;通过第一线程处理该第一处理数据,得到第一目标数据,该第一线程为该多个线程中分配给该第一程序分支的线程。在此过程中,从该预读取缓存器中获取该第一程序块对应的第一处理数据,当运行该程序分支时,该第一程序块为该第一程序分支包括的多个程序块中实际运行的程序块,第一线程处理的数据为第一程序块对应的第一处理数据,即第一线程中的数据为实际运行的程序块对应的处理数据,也即是第一线程中的数据为有效数据,没有无效数据,与线程中无效数据太多相比,线程轻,提高了线程的效率,降低了处理器的功耗,进一步,提高了处理数据的效率。

5、在第一方面的一种可能的实现方式中,该方法还包括:根据该第一程序块对应的第一写指令,将该第一目标数据存储到该预读取缓存器中,以更新该第一数据块。上述可能的实现方式中,将第一目标数据存储到该预读取缓存器中,以更新该第一数据块,使得第一数据块保持最新状态,保证了第一数据块的准确性;另一方面,当该第一处理核需要再次对第一数据块中的数据进行处理时,可以直接从该预读取缓存器中获取该第一数据块,无需再去程序状态缓存器中获取该第一数据块,降低了获取数据块的时延和功耗,提高了效率。

6、在第一方面的一种可能的实现方式中,该方法还包括:根据该第一目标数据,确定该多个程序块中的第二程序块,该第二程序块为该第一程序块的下一个程序块;根据该第二程序块对应的第二读指令,从该预读取缓存器中获取该第二程序块的第二处理数据,该预读取缓存器还用于存储第二数据块,该第二数据块为该第二处理数据所在的数据块;通过该第一线程处理该第二处理数据,得到第二目标数据。上述可能的实现方式中,根据该第一程序块的执行结果可以直接确定该第二程序块,即该第二程序块和该第一程序块为运行该第一程序分支时,实际运行的程序块,通过该第一线程处理该第二处理数据,即该第一线程中还包括该第二处理数据,也即是该第一线程中包括的处理数据为实际运行的程序块对应的数据,该第一线程中的数据均为有效数据,没有无效数据,与线程中存储太多的无效数据相比,线程轻,提高了线程的效率,降低了处理器的功耗,进一步,提高了处理数据的效率。

7、在第一方面的一种可能的实现方式中,该第一写指令和该第二读指令并行执行。上述可能的实现方式中,该第一处理核根据该第一程序块对应的写指令存储该第一目标数据,同时根据该第二程序块对应的读指令从预读取缓存器中获取第二处理数据,上一个程序块存储数据的过程和下一个程序块存储数据的过程同时进行,降低了读取数据的时延,提高了数据处理的效率。

8、在第一方面的一种可能的实现方式中,该处理器还包括程序状态缓存器,该程序状态缓存器用于存储该目标程序的程序分支的数据块,该方法还包括:若该预读取缓存器中不存在该第一处理数据,从该程序状态缓存器中获取该第一数据块;将该第一数数据块存储在该预读取缓存器中。上述可能的实现方式中,该程序状态缓存器中获取该第一数据块,将该数据块存储在预读取缓存器中,然后根据程序块对应的指令,从预读取缓存器中获取程序块对应的处理数据,通过线程处理获得的处理数据,在此过程中,保证了线程中的数据均为实际运行的程序块对应的数据,即线程中的数据均为有效数据,没有数据,与线程中存储太多的无效数据相比,线程轻,提高了线程的效率,降低了处理器的功耗,进一步,提高了处理数据的效率。

9、在第一方面的一种可能的实现方式中,该方法还包括:根据该第一写指令,将更新后的该第一数据块更新到该程序状态缓存器中。上述可能的实现方式中,将更新后的第一数据块更新到该程序状态缓存器中,使得第一数据块保持最新状态,保证了程序状态缓存器中数据块的准确性。

10、在第一方面的一种可能的实现方式中,该指令地址为该第一程序分支的首地址。上述可能的实现方式中,该第一处理核根据该指令地址可以进行取指操作,以确定包含该指令地址的第一程序分支,提高了第一程序分支确定的效率。

11、在第一方面的一种可能的实现方式中,在该通过第一线程处理该第一处理数据,得到第一目标数据之后,该方法还包括:释放该第一线程。上述可能的实现方式中,在完成该第一目标数据存储之后,释放该第一线程,使得该第一线程为空闲的线程,等待分配其他的程序分支,提高了该第一线程的使用率。

12、在第一方面的一种可能的实现方式中,该处理器还包括第二处理核,该第一处理核和该第二处理核并行执行。上述可能的实现方式中,提高了该处理器处理数据的效率,进一步提高了处理器的效率。

13、第二方面,提供一种数据处理装置,该装置包括第一处理核,该第一处理核包括预读取缓存器和多个线程,该装置还包括:获取单元,用于获取指令地址,并根据该指令地址确定目标程序的第一程序分支,该第一程序分支包括多个程序块,该多个程序块包括第一程序块;该获取单元,还用于根据该第一程序块对应的第一读指令,从该预读取缓存器中获取该第一程序块的第一处理数据,该预读取缓存器用于存储第一数据块,该第一数据块为该第一处理数据所在的数据块;处理单元,用于通过第一线程处理该第一处理数据,得到第一目标数据,该第一线程为该多个线程中分配给该第一程序分支的线程。

14、在第二方面的一种可能的实现方式中,该装置还包括:存储单元,该存储单元用于:根据该第一程序块对应的第一写指令,将该第一目标数据存储到该预读取缓存器中,以更新该第一数据块。

15、在第二方面的一种可能的实现方式中,该装置还包括:确定单元,该确定单元,用于根据该第一目标数据,确定该多个程序块中的第二程序块,该第二程序块为该第一程序块的下一个程序块;该获取单元,还用于根据该第二程序块对应的第二读指令,从该预读取缓存器中获取该第二程序块的第二处理数据,该预读取缓存器还用于存储第二数据块,该第二数据块为该第二处理数据所在的数据块;该处理单元,还用于通过该第一线程处理该第二处理数据,得到第二目标数据。

16、在第二方面的一种可能的实现方式中,该第一写指令和该第二读指令并行执行。

17、在第二方面的一种可能的实现方式中,该装置还包括:程序状态缓存器,用于存储该目标程序的程序分支的数据块;该获取单元,还用于若该预读取缓存器中不存在该第一处理数据,从该程序状态缓存器中获取该第一数据块;该存储单元,还用于将该第一数数据块存储在该预读取缓存器中。

18、在第二方面的一种可能的实现方式中,该存储单元还用于:根据该第一写指令,将更新后的该第一数据块更新到该程序状态缓存器中。

19、在第二方面的一种可能的实现方式中,该指令地址为该第一程序分支的首地址。

20、在第二方面的一种可能的实现方式中,该装置还包括释放单元,该释放单元用于:释放该第一线程。

21、在第二方面的一种可能的实现方式中,该装置还包括第二处理核,该第一处理核和该第二处理核并行执行。

22、第三方面,提供一种处理器,该处理用于执行如上述第一方面或者第一方面的任一种可能的实现方式所提供的数据处理方法。

23、在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在数据处理装置上运行时,使得该数据处理装置执行如上述第一方面或者第一方面的任一种可能的实现方式所提供的数据处理方法。

24、在本技术的又一方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机设备上运行时,使得数据处理装置执行如上述第一方面或者第一方面的任一种可能的实现方式所提供的数据处理方法。

25、可以理解地,上述提供的一种数据处理装置、处理器、计算机可读存储介质和计算机程序产品可用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

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