一种任务处理方法及装置与流程

文档序号:30579648发布日期:2022-06-29 11:28阅读:123来源:国知局
一种任务处理方法及装置与流程

1.本技术涉及计算机技术领域,尤其涉及一种任务处理方法及装置。


背景技术:

2.在处理器执行任务的过程中,处理器可以根据接收到的任务获取对应的待处理数据和指令(instruction),并根据指令执行任务。其中,指令是用于指示处理器执行某种运算或处理功能的命令。显然,在处理器运算能力不变的前提下,处理器获取指令的速度越快,执行任务的速度也就越快。在传统技术中,指令存储在存储器中。那么处理器在执行任务时可以从存储器中获取指令。
3.为了提高处理器获取指令的速度,可以将存储器中存储部分指令加载到缓存。其中缓存为数据交换速度快于存储器的数据交换速度的存储设备。那么在执行任务时,处理器可以从缓存中获取指令。由于缓存的数据交换速度较快,处理器获取指令的耗时较短。因此,将指令存储在缓存中可以提高处理器读取指令的速度,进而提高执行任务的速度。
4.但是,在执行任务的过程中,如果缓存中不包括执行任务所需要的指令,就需要缓存从存储器中加载指令。由于存储器的数据交换速度较慢,缓存从存储器中加载指令的耗时较长。而在这段时间内,处理器中没有可执行的指令,无法继续执行任务,因而处理器执行任务的速度较低。


技术实现要素:

5.本技术实施例提供了一种任务处理方法及装置,使得缓存可以在处理器执行任务前将执行任务所需的指令加载到缓存中,提高处理器执行任务的速度。
6.第一方面,本技术实施例提供了一种任务处理方法,该方法应用于处理器。在执行任务前,处理器可以先获取等待执行的任务,并确定执行该等待执行的任务所需要的指令,即处理器在执行任务的过程中需要读取的指令。接着,处理器可以触发缓存将执行任务所需的指令从存储器加载到缓存,从而根据缓存中存储的指令执行任务。其中,缓存的数据交换速度快于存储器的数据交换速度。这样,处理器执行任务所需要的任意一条指令都在执行指令前加载到缓存中。在执行任务时,处理器所需要的每条指令都可以在缓存中找到,无需缓存在执行任务的过程中从存储器中加载指令。相较于传统技术,由于缓存不需要从数据交换速度较慢的存储器中读取指令,处理器从缓存中读取指令的速度也更快。如此,确保了处理器在执行任务的过程中能够快速获取指令,从而提高处理器执行任务的速度。
7.在一种可能的实现中,处理器在触发缓存将指令加载到缓存时,可以先获取这些执行任务所需的指令在存储器中存储的地址,向缓存发送所述所需的指令在存储器中存储的地址,并触发缓存根据地址从存储器中将执行任务所需的指令加载到缓存。这样,缓存可以根据指令在存储器中存储的地址判断缓存中是否存在该指令,进而在缓存不包括执行任务所需的指令时从存储器中加载指令。
8.在一种可能的实现中,可以由缓存确定执行任务所需的指令。处理器可以将等待
执行的任务发送给缓存,并触发缓存根据任务确定执行任务过程中所需的指令。
9.在一种可能的实现中,当执行任务的指令由缓存确定时,缓存可以在处理器的触发下,根据所述等待执行的任务确定执行任务所需的指令在存储器中存储的地址,从而判断这些指令是否已经加载到缓存。如果缓存不包括任意一条执行任务的指令,处理器可以触发缓存根据地址从存储器加载执行任务所需的指令。
10.在一种可能的实现中,等待执行的任务可以是预先配置的。处理器可以获取任务配置信息,即预先配置的任务的信息,例如可以是任务表项等信息。那么,在确定执行任务的指令时,处理器可以根据这些任务的信息确定执行任务过程中所需的指令。
11.在一种可能的实现中,处理器可以根据处理任务所需的信息确定等待执行的任务。处理器可以接收处理等待执行的任务所需的信息。处理任务所需的信息例如可以是报文的上下文信息等信息,包括对报文进行处理时可能会用到的参数。处理器可以根据所需的信息预测等待执行的任务。
12.在一种可能的实现中,处理器在执行任务时可以从缓存中读取执行任务所需的指令,并依据读取到的指令执行任务。在从缓存中读取指令后,处理器可以释放已被读取的指令在缓存中占用的缓存空间,提高缓存空间的利用率。
13.在一种可能的实现中,缓存可以包括至少一个子单元。那么处理器在触发缓存从存储器加载执行任务所需的指令时,可以触发缓存将所需的指令从存储器加载到一个或多个缓存子单元中。相应地,在处理器从缓存中读取指令时,可以从存储有执行任务所需的指令的一个或多个缓存子单元中加载指令。
14.在一种可能的实现中,当缓存包括至少一个缓存子单元时,处理器可以为至少一个缓存子单元中每个缓存设置计数器。这样,在缓存从存储器中加载执行任务所需的指令后,处理器可以根据至少一个缓存子单元中每个缓存子单元中存储的指令在执行任务的过程中需要被读取的次数确定目标值,并为该目标值对应的缓存子单元的计数器增加目标值。相应地,在处理器从缓存子单元中读取指令后,处理器可以根据指令被读取的次数减少该缓存子单元的计数器的值。那么,在处理器读取全部执行任务所需的指令后,处理器可以将至少一个缓存子单元中每个缓存子单元对应的计数器减去该计数器对应的目标值。这样,通过可以计数器记录缓存子单元中存储的指令被读取的次数。如果某缓存子单元的读取次数用尽,说明处理器无需读取该缓存子单元中存储的指令,处理器可以释放该缓存子单元的缓存空间。如此,可以及时释放指令占用的缓存空间。
15.在一些可能的实现中,在处理器触发缓存将指令从存储器夹在到缓存之前,处理器可以向确认缓存中是否存在执行任务所需的指令。如果缓存中存在执行任务所需的指令,处理器可以从缓存中读取指令并执行任务。如果缓存中不存在执行任务所需的指令,处理器可以触发缓存从存储器中加载执行任务所需的指令。
16.在一些可能的实现方式中,等待执行的任务可以包括报文转发、建立隧道和报文检测中的任意一种或多种。
17.第二方面,本技术实施例提供了一种集成电路,所述集成电路处理器芯片包括控制电路和接口电路;其中,所述接口电路,用于获取任务,所述任务是等待执行的任务;所述控制电路,用于根据所述任务确定执行所述任务过程中所需的指令,触发缓存将所述所需的指令从存储器加载到所述缓存,并根据所述缓存中的所述所需的指令执行所述任务。
18.在一些可能的实现中,所述控制电路,用于获取所述所需的指令在所述存储器中存储的地址,触发所述缓存根据所述地址将所述所需的指令从存储器加载到所述缓存。
19.在一些可能的实现中,所述控制电路,用于触发所述缓存根据所述任务确定执行所述任务过程中所需的指令。
20.在一些可能的实现中,所述控制电路,用于触发所述缓存根据所述任务获取所述所需的指令在所述存储器中存储的地址;触发所述缓存根据所述地址将所述所需的指令从存储器加载到所述缓存。
21.在一些可能的实现中,所述接口电路,用于获取任务配置信息,所述任务配置信息为预先配置的所述任务的信息;所述控制电路,用于根据所述任务配置信息确定执行所述任务过程中所需的指令。
22.在一些可能的实现中,所述接口电路,用于获取处理所述任务所需的信息,根据所述所需的信息预测所述任务。
23.在一些可能的实现中,所述控制电路,用于从所述缓存中读取所述所需的指令,并根据所述所需的指令执行所述任务;在从所述缓存中读取所述所需的指令之后,用于释放所述所需的指令占用的缓存空间。
24.在一些可能的实现中,所述缓存包括至少一个缓存子单元;所述控制电路,用于触发所述缓存将所述所需的指令从存储器加载到所述至少一个缓存子单元;在从所述缓存中读取所述所需的指令之后,从所述至少一个缓存子单元中读取所述所需的指令。
25.在一些可能的实现中,所述控制电路,用于控制所述至少一个缓存子单元中每个缓存子单元的计数器分别增加目标值,所述目标值等于所述缓存子单元缓存的所需的指令的读取次数;在从所述缓存中读取所述所需的指令之后,根据所述所需的指令的读取次数将所述每个缓存子单元的计数器的值减少所述目标值。
26.在一些可能的实现中,所述控制电路,用于在触发缓存将所述所需的指令从存储器加载到所述缓存之前,确认缓存中不存在所述所需的指令。
27.在一些可能的实现中,所述任务至少包括以下其中一种:报文转发、建立隧道和报文检测。
28.第三方面,本技术实施例提供了一种报文处理装置,所述报文处理装置包括获取单元和处理单元;所述获取单元,用于获取任务,所述任务是等待执行的任务;所述处理单元,用于根据所述任务确定执行所述任务过程中所需的指令;触发缓存将所述所需的指令从存储器加载到所述缓存;根据所述缓存中的所述所需的指令执行所述任务。
29.第四方面,本技术实施例提供了一种芯片,所述芯片包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行所述指令或程序代码,以执行如前述第一方面所述的任务处理方法。
30.第五方面,本技术实施例提供了一种设备,所述设备包括处理器芯片和存储器,存储器用于存储指令或程序代码,处理器芯片用于从存储器中调用并运行所述指令或程序代码,以执行如前述第一方面所述的任务处理方法。
31.第六方面,本技术实施例提供了一种计算机可读存储介质,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机执行如前述第一方面所述的任务处理方法。
附图说明
32.图1为本技术实施例提供的处理器的一种结构示意图;
33.图2为本技术实施例提供的设备的一种架构示意图;
34.图3为本技术实施例提供的任务处理方法的方法流程;
35.图4为本技术实施例提供的网络设备的一种结构示意图;
36.图5为本技术实施例提供的网络设备内部的数据交互的过程示意图;
37.图6为本技术实施例提供的集成电路600的一种结构示意图;
38.图7为本技术实施例提供的报文处理装置700的一种结构示意图;
39.图8为本技术实施例提供的芯片800的一种结构示意图;
40.图9为本技术实施例提供的一种设备900的结构示意图;
41.图10为本技术实施例提供的一种设备1000的结构示意图。
具体实施方式
42.下面结合附图对传统技术和本技术实施例提供任务处理方法及装置进行介绍。
43.首先对处理器的基本结构进行介绍。参见图1,该图为处理器100的一种结构示意图。该处理器100包括处理器内核110和处理器内核120。处理器内核110包括处理单元111和缓存112。相似地,处理器内核120可以包括处理单元121和缓存。其中,缓存112用于从计算机内其他存储器(如内存)中加载指令,处理单元111用于从缓存112中读取指令,并根据指令执行数据处理、报文转发等任务。若将处理器100封装为芯片,得到的芯片可以被称为中央处理器(central processing unit)。
44.在图1所示的实施例中,处理器100包括两个处理器内核,其中每个处理器内核包括一个处理单元和缓存。缓存被封装于处理器芯片的处理器内核中。而在一些其他的实现方式中,处理器可以包括一个处理器内核,也可以包括两个以上的处理器内核。缓存可以被封装在处理器芯片的内部,处理器内核的外部,也可以是独立于处理器的存储设备。本技术实施例对处理器的处理器内核的数量以及缓存封装的位置不作限定。
45.缓存,全称高速缓冲存储器(cache),大多由数据交换速度较快的存储设备组成。在本技术实施方式中,缓存也可以被称为暂时内存(temporary memory)或者暂时存储器(temporary storage)。缓存分别与处理器内部的处理单元和处理器外部的存储器连接,可以存储存储器中存储的部分或全部指令。在执行任务时,处理单元可以向缓存发送读取请求,该读取请求中包括处理单元执行任务所需要的指令的标识。根据指令的标识,缓存可以确定处理单元执行任务所需要的指令,并将对应的指令发送给处理单元。在接收到指令后,处理单元可以根据指令执行任务。在一些可能的实现方式中,缓存可以包括一个或多个缓存子单元。其中,任意一个缓存子单元均可用于存储指令。可选地,一个缓存子单元可以存储一条指令,也可以存储多条指令。
46.存储器可以分为外存和内存,外存例如是硬盘(hard disk drive,hhd)等存储设备,内存例如是同步动态随机存取内存器(synchronous dynamic random-access memory,sdram)或双倍速度同步动态随机存储器(double data rate sdram,ddr)等存储设备。而缓存例如是静态存储器(static random access memory,sram)等存储设备。在与处理器进行数据交换的过程中,sram的数据交换速度大于ddr(或sdram)的数据交换速度,而ddr的数据
交换速度又大于硬盘的数据交换速度。因此,处理单元从缓存中获取指令的用时小于从存储器中获取指令的用时。可见,通过在存储器和处理单元之间设置缓存,能够提高处理单元获取指令的速度,进而提高处理器执行任务的速度。
47.但是,在处理单元执行任务的过程中,如果缓存中不包括执行任务所需要的指令,就需要缓存从存储器中加载指令,再将指令发送给处理单元。由于缓存从存储器中读取数据的速度较慢,使得缓存加载指令的用时较长,处理单元获取指令的用时较长,导致处理器执行任务的速度降低。另外,在缓存从存储器中加载指令的这段时间内,处理单元中没有可执行的指令,始终处于等待状态。可见,由于缓存的存储空间有限,当缓存中不包括处理器所需要的指令时,处理器执行任务的速度和处理器利用率均会降低。
48.为了解决上述问题,本技术实施例提供了一种任务处理方法,该方法在执行任务前将执行任务所需要的指令预先转移到缓存中。这样,在执行任务时,执行任务所需的指令已经存储在缓存中。如此,处理单元可以快速获取到执行任务所需的指令,提高了处理器执行任务的速度,同样也提高了处理器的利用率。
49.为方便理解,首先对本技术实施例的应用场景进行介绍。参见图2,图2为本技术实施例提供的设备的架构示意图。该设备包括处理器100和存储器200。其中,处理器100包括缓存112和处理器单元111,存储器200与缓存112连接。关于处理器100的介绍参见前文,这里不再赘述。
50.在本技术实施例中,处理器100所属的设备可以是终端设备或网络设备。终端设备,又可以称为用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、终端等,是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端设备的举例为:手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、支持5g接入的家庭网关设备(5g-residential gateway,5g-rg)等。当处理器100所属的设备为网络设备时,该设备可以是路由器(router)、交换机(switch)等实体设备,也可以是部署虚拟路由器或虚拟交换机的服务器,用于传输其他网络设备和/或终端设备之间的消息。相应地,处理器100可以被称为转发芯片。
51.在本技术实施例中,处理单元111可以是中央处理器100内部具有数据处理能力的单元,例如可以是处理器内核(core)中用于数据处理的单元,缓存112可以是sram等高速存储设备,存储器200可以包括内存和外存中的任意一种或多种。当存储器200包括内存和外存时,处理器100可以预先将程序运行所需的指令从外存转移到内存中,以便缓存112从内存中获取指令。
52.需要说明的是,图2中缓存112属于处理器100的中处理器内核110,并不表示本技术实施例中提供的缓存必然封装在处理器的处理器内核中。在一些可能的实现方式中,缓存也可以是处理器外部的独立存储设备。另外,在图2所示实施例中,处理器110包括两个处
理器内核,处理器内核110包括一个处理单元111和一个缓存112,并不代表本技术实施例中提供的处理器只能包括两个处理器内核,每个处理器内核只能包括一个处理器和一个缓存。在一些可能的实现方式中,处理器可以包括一个或多个处理单元,以及一个或多个缓存。其中,一个缓存可以对应一个处理单元或多个处理单元,一个处理单元也可以对应一个或多个缓存。本技术实施例对处理器的具体架构不做限定。
53.在一些可能的实现方式中,设备可能具有多级缓存结构,即利用多种存储介质构建多个等级不同的缓存,等级越高的缓存交换数据的速度越快,大小越小。那么,对于具有多级缓存结构的计算机,本技术实施例中的缓存可以是一级缓存(一级缓存为等级最高的缓存),存储器可以包括等级低于一级缓存的其他缓存,例如二级缓存、三级缓存等。
54.参见图3,该图3为本技术实施例提供的一种任务处理方法的方法流程图。本技术实施例提供的任务处理方法包括如下步骤:
55.s301:处理器获取等待执行的任务。
56.在本技术实施例中,处理器可以是图2中处理器100。可选地,当处理器包括多个处理器内核时,本技术实施例提供的任务处理方法中不同的步骤可以由不同的处理器内核执行。以处理器包括内核110和处理器内核120为例进行说明,s201和s202可以由处理器内核110执行,s203、s204和s205可以由处理器内核120执行。
57.在执行任务前,处理器先获取等待执行任务,即需要处理器执行的任务。当处理器为终端设备的中央处理器时,该任务可以是数据处理等由用户的操作触发的任务。那么处理器可以根据用户的操作确定等待执行的任务。当然,该任务也可以不是由用户触发,本技术实施例不做具体限定。
58.当处理器为网络设备的转发芯片时,该任务可以是报文转发、报文检测和建立隧道等任务中的任意一种或多种,该等待执行的任务可以是由网络设备的输入触发的。其中,报文转发是指处理器将接收到的报文转发到其他设备,报文检测是指处理器对报文中包括的字段进行检测处理,建立隧道是指处理器根据接收到的通告报文建立到达其他设备的隧道。例如,假设网络设备接收到了数据报文,且该数据报文需要转发到其他网络设备,那么处理器可以确定等待执行的任务为报文转发。
59.在本技术实施例中,处理器可以根据任务配置信息确定等待执行的任务,也可以根据执行任务所需要的信息预测等待执行的任务。下面对两种获取等待执行的任务的方式做详细介绍。
60.在第一种实现方式中,处理器可以根据任务配置信息确定等待执行的任务。其中,任务配置信息为预先配置的任务的信息。在执行任务前,处理器可以获取预先配置的任务配置信息,从而根据任务配置信息确定等待执行的任务。
61.在第二种实现方式中,处理器可以根据任务的信息预测等待执行的任务。具体地,处理器可以通过所在的计算机设备的数据接口或网络接口获取执行任务所需的信息,并根据任务所需的信息预测等待执行的任务。
62.下面以处理器为网络设备的转发芯片为例,分别针对两种实现方式进行说明。
63.在第一种实现方式中,技术人员可以在网络设备中配置任务表项,该任务表项中包括一个或多个任务的信息,即任务配置信息。那么,处理器可以获取任务表项,并根据任务表项中包括的任务配置信息确定等待执行的任务。具体地,处理器可以获取任务表项中
全部任务的信息,并将每个信息对应的任务确定为等待执行的任务。关于任务表项的详细介绍可以参见图5所示实施例中步骤s501的描述,这里不再赘述。
64.可选地,处理器也可以先根据任务表项确定可能需要执行的任务集合,再根据报文和/或报文的上下文信息确定任务集合中每个任务是否需要执行。举例说明,假设任务表项包括任务1的任务配置信息,任务1为“统计来自设备a的报文的数量”。那么处理器可以根据报文确定该报文是否来自设备a。如果报文来自设备a,处理器可以确定任务1为等待执行的任务,如果报文来自其他设备,处理器可以确定任务1不为等待执行的任务。
65.在第二种实现方式中,处理器可以获取报文的上下文(context)信息,并根据报文的上下文信息预测等待执行的任务。其中,上下文信息包括对报文进行处理时可能用到的信息。根据报文的上下文信息,处理器可以预测需要执行的任务。举例说明,假设报文的上下文信息包括报文的目的设备的ip地址,该目的设备的ip地址用于报文转发,那么处理器确定等待执行的任务包括报文转发任务。
66.s302:处理器根据所述任务确定执行所述任务过程中所需的指令。
67.在确定等待执行的任务后,处理器可以根据任务确定执行任务过程中所需的指令。可选地,可以根据预先生成的对应关系确定执行所述等待执行的任务过程中所需的指令。其中,对应关系表示任务和处理器执行该任务所需的指令的对应关系。可选地,对应关系可以是任务的信息和执行该任务所需的指令的存储地址之间的对应关系。其中,任务信息可以是任务的标识或执行任务所用的信息等。指令的存储地址可以是指令在存储器(例如内存)中存储的地址。
68.在本技术实施例中,可以由处理器根据对应关系确定执行任务过程中所需的指令,也可以由缓存根据对应关系确定执行任务。下面对两种确定执行任务所需的指令的方式做详细介绍。
69.在第一种实现方式中,处理器可以根据对应关系确定任务对应的指令的存储地址。可选地,如果执行任务需要多条指令,且这些指令在存储器中存储的地址相邻,那么处理器可以确定第一条指令存储的地址和最后一条指令存储的地址,得到执行所需指令的地址范围。
70.可选地,当处理器根据任务配置信息确定等待执行的任务时,处理器还可以根据任务配置信息和对应关系确定指令的存储地址。
71.在第二种实现方式中,处理器可以将等待执行的任务的信息发送给缓存,由缓存根据接收到的任务的信息和对应关系确定执行该任务所需的指令的存储地址。
72.s303:处理器触发所述缓存将所述所需的指令从存储器加载到所述缓存。
73.在确定执行任务过程中所需的指令后,处理器触发缓存将所需的指令从存储器加载到缓存中,即处理器在执行任务之前就将所需要的指令存储到缓存中,以便处理器能够在执行任务的过程中从缓存中获取指令。其中,缓存是位于存储器和处理器之间的存储设备,例如可以是图2中处理器100内部的缓存112。另外,缓存还可以是处理器外部的其他存储设备。存储器可以是处理器外部的存储设备,例如可以是图2中的存储器200。当存储器为处理器以外的存储设备时,存储器可以是内存,也可以是硬盘等外存。
74.在本技术实施例中,缓存可以根据指令在存储器中存储的地址加载缓存。具体地,根据步骤302的描述可知,执行任务所需的指令的存储地址可以由处理器确定,也可以由缓
存确定。根据确定存储地址的设备不同,处理器触发缓存加载指令的方式也不同。下面针对两种实现方式进行消息介绍。
75.在第一种实现方式中,指令的存储地址由处理器根据对应关系确定的,对应步骤302的第一种实现方式。那么,处理器可以向缓存发送指令的存储地址,以便缓存根据指令的存储地址判断该存储地址对应的指令是否已经存储在缓存中。缓存可以根据接收到的指令存储的地址判断该指令是否已经加载到缓存。若指令未加载到缓存,缓存可以根据存储地址从存储器中加载所需的指令。
76.在第二种实现方式中,指令的存储地址由缓存根据对应关系确定,对应步骤302的第二种实现方式。那么,处理器可以触发缓存根据接收到的任务信息确定执行任务所需的指令的存储地址。在确定指令的存储地址后,缓存可以根据指令的存储地址判断该指令是否已经加载到缓存。若指令未加载到缓存,缓存可以根据存储地址从存储器中加载所需的指令。
77.上面介绍了处理器触发缓存加载指令的方法,下面对缓存加载指令的方法做进一步介绍。
78.根据前文描述可知,指令的存储地址是指令在存储器中存储的地址,那么缓存可以记录指令在存储器中存储的地址和指令在缓存中存储的地址的对应关系,从而根据该对应关系判断执行任务所需的指令是否已经加载到缓存。具体地,缓存可以在加载指令的过程中记录每条指令在存储器中存储的地址。那么在确定指令的存储地址后,缓存可以查找已存储的指令中是否包括存储地址与执行任务所需的指令的存储地址一致的指令。若包括,则说明执行任务过程中所需的指令已被加载到缓存。若不包括,缓存可以根据接收到的存储地址从存储器中对应的存储位置获取指令,并将该指令存储在缓存中。
79.在本技术实施例中,执行任务所需要的指令可以是多条,那么处理器可以触发缓存将需要的多条指令从存储器加载到缓存中。可选地,处理器可以向缓存发送多条指令中每条指令的存储地址,以便缓存将多条指令中每条指令从存储器加载到缓存。当然,处理器也可以向缓存发送多条指令的地址范围,以便缓存根据地址范围加载指令。关于地址范围和加载指令的具体介绍可以参见上文,这里不再赘述。
80.根据前文介绍可知,缓存可以包括一个或多个缓存子单元。那么,在触发缓存从存储器加载指令时,处理器可以触发缓存将所需的指令从存储器中加载到至少一个缓存子单元中。当执行任务需要多条指令时,缓存可以将这些指令加载到同一个缓存子单元中,也可以加载到不同的缓存子单元中。
81.可选地,处理器可以为缓存中每个缓存子单元分别设置计数器。计数器的值表示该计数器对应的缓存子单元中存储的指令可以被读取的总次数。那么,在处理器触发缓存将指令加载到缓存子单元后,处理器可以将缓存子单元中存储的指令的读取次数确定为该缓存子单元的目标值。即,目标值等于处理器执行任务的过程中需要读取存储在缓存子单元中的指令的次数。处理器可以将缓存子单元的计数器分别增加对应的目标值。
82..举例说明,假设缓存包括缓存子单元a和缓存子单元b,执行任务x需要执行一次指令1、两次指令2和三次指令3,且处理器触发缓存将该指令1和指令2加载到缓存子单元a中,将指令3加载到缓存子单元b中。那么,处理器可以将缓存子单元a对应的计数器加3,将缓存子单元b对应的计数器加3。
83.假设在执行任务y前,处理器还需要执行任务z,且执行任务z需要执行三次指令1和一次指令3。那么,处理器可以在原有的基础上,再将缓存子单元c的计数器加3,将缓存子单元b的计数器加1。
84.s304:处理器根据所述缓存中的所述所需的指令执行所述任务。
85.在将执行任务所需的指令加载到缓存后,处理器可以根据缓存中存储的指令执行任务。具体地,在确定处理任务所需的指令全部加载到缓存后,缓存可以将这些指令发送给处理器,以便处理器根据指令执行任务。可选地,处理器也可以从缓存中读取执行任务所需的指令,并根据指令执行任务。在一些可能的实现方式中,为了节省缓存的存储空间,在处理器从缓存中读取指令后,或在缓存将指令发送给处理器后,处理器可以释放指令占用的缓存空间,例如可以控制缓存将存储的执行任务所需的指令删除或用其他指令覆盖该指令,以提高缓存的利用率。
86.与s303类似,当缓存包括一个或多个缓存子单元时,处理器可以分别从一个或多个缓存子单元中读取所需的指令。可选地,当缓存子单元具有对应计数器时,处理器可以在读取指令后调整缓存子单元的计数器。处理器每从缓存中读取一条指令,都可以将该指令所在的缓存子单元的计数器的值减一。那么,在处理器执行完任务后,所需的指令的读取次数用尽,每个缓存子单元的计数器的值等于执行任务前计数器的值与目标值之差。这样,在读取指令前增加目标值,在读取指令后减少目标值,使得计数器的值能够体现缓存子单元中存储的指令需要被读取的次数。那么,处理器可以根据计数器的值确定缓存子单元的缓存空间是否可以释放。例如,如果计数器的初始值为0,那么当缓存子单元的计数器值为0时,处理器可以释放该缓存子单元的缓存空间。
87.仍以s303的例子进行说明。假设缓存子单元a和缓存子单元b的计数器的初始值均为0。那么在加载指令后,缓存子单元a的计数器的值为3,缓存子单元b的计数器的值为3。在处理器从缓存子单元a中读取了指令1和指令2后,处理器可以将缓存子单元a的计数器减2,那么缓存子单元a的计数器的值为1,表示执行任务仍需从缓存子单元a中读取一条指令。在处理器从缓存子单元b中读取了三次指令3后,缓存子单元b的计数器为0,那么处理器可以释放缓存子单元a的缓存空间。可见,通过调整计数器的值,处理器可以从至少一个缓存子单元中确定能够释放缓存空间的缓存子单元。
88.在一些可能的实现方式中,处理器可以将执行一个任务所需的指令添加到一个缓存子单元中。那么,处理器可以将该缓存子单元的计数器加1。在读取执行任务所需的全部指令后,处理器可以将该缓从至少一个缓存子单元中确定能够释放缓存空间的缓存子单元的计数器减一。这样,虽然不用加减目标值,处理器仍然可以根据计数器的值从至少一个缓存子单元中确定能够释放缓存空间的缓存子单元。
89.在本技术实施例中,处理器可以在执行任务前确定执行任务需要的指令,并触发缓存将这些指令从存储器中加载到缓存。这样,处理器执行任务的过程中所需要的指令全部存储在缓存中。那么,在执行任务前将执行任务所需的指令加载到缓存中,执行任务的过程中无需缓存从存储器中加载数据。由于处理器从缓存中读取数据的速度较快,处理器可以以较快的速度获取到执行任务所需的指令。如此,确保了处理器在执行任务的过程中能够快速获取指令,从而提高处理器执行任务的速度。
90.另外,执行任务大多需要多条指令,而处理器在执行任务时大多逐条获取指令并
执行。即,在执行任务的过程中,处理器先从缓存中读取一条指令,并根据该指令对数据进行处理。在这条指令执行结束后,处理器再从缓存中读取该任务的下一条指令,并根据新的指令对数据进行处理。因此,在传统技术中,当缓存中不包括处理器执行任务所需要的某条指令时,缓存需要从存储器中读取这条指令。在缓存从存储器读取指令的过程中,处理器中没有可执行的指令,处于等待状态。由于缓存从存储器读取数据的速度较慢,处理器处于等待状态的时间较长。如此,既降低了处理器执行任务的速度,又降低了处理器的利用率。而在本技术实施例中,处理器在执行任务前先将执行任务所需的全部指令加载到缓存中,使得处理器在执行任务中所需要的全部指令都可以从缓存中获取,无需缓存从存储器中读取指令。如此,提高了处理器执行任务的速度,也提高了处理器的利用率。
91.上面介绍了本技术实施例提供的任务处理方法。下面以路由器、交换机等网络设备为例进行详细说明。
92.参见图4,图4为本技术实施例提供的网络设备的一种结构示意图。该网络设备包括转发芯片400和存储器500。转发芯片400包括处理器内核410和处理器内核420。其中,处理器内核420包括至少一个处理单元421和至少一个缓存422。处理器内核410分别与处理单元421和缓存422连接,处理单元421与缓存422连接,存储器500与缓存422连接。
93.在本技术实施例中,存储器500可以是内存,也可以是内存和外存等存储设备组成的存储模块。转发芯片400可以是中央处理器,也可以是其他用于数据处理的芯片。处理器内核410和处理器内核420可以是转发芯片400中两个不同的处理器内核。其中处理器内核410可以是转发芯片400中用于确定指令的处理器内核,处理器内核420可以是转发芯片400中用于执行任务的处理器内核。缓存422可以是sram等高速存储设备。
94.可选地,处理器内核420可以包括一个处理单元421和一个缓存422,可以包括多个处理单元和/或多个缓存。缓存422可以封装在处理器内核420中,也可以封装在转发芯片400内部其他位置,还可以是转发芯片400以外的独立存储设备。
95.在图4所示的网络设备执行图3所示的任务处理方法时,处理器内核420、处理单元321、缓存422和存储器500之间的数据交互过程可以如图5所示,包括如下步骤:
96.s501:处理器内核410获取等待执行的任务,并确定执行任务过程中所需要的指令的存储地址。
97.转发芯片400中的处理器内核410可以获取等待执行的任务,并确定执行该等待执行的任务中所需要的指令。根据步骤s301的介绍可知,处理器内核410可以根据任务配置信息和/或执行任务所需的信息获取等待执行的任务。对于网络设备,所述任务配置信息可以携带在任务表项中,所述执行任务所需的信息可以携带在报文的上下文信息中。
98.任务表项可以由技术人员预先配置,包括一个或多个任务配置信息,任务配置信息可以是任务的使能位或执行任务所需的参数。其中,使能位的值表示该使能位对应的任务是否需要执行。例如使能位的值为1表示该使能位对应的任务需要执行,使能位的值为1表示该使能位对应的任务不需要执行。那么,处理器内核410可以根据使能位的值或执行任务所需的参数确定等待执行的任务。具体地,如果使能位的值表示该任务需要执行,处理器内核410可以确定该使能位对应的值为等待执行的任务;如果任务表项中具有执行某任务所需要的参数,处理器内核410可以确定该任务为需要执行的任务。
99.举例说明。参见表1,该表为任务表项的一种可能的结构示意图。
100.表1
101.funa_enfunb_para
102.其中,表1第一行第一列的元素funa_en为任务a的使能位,funa_en值表示转发芯片400是否需要执行任务a。表1第一行第二列的元素funb_para为任务b的参数,funb_para的值为转发芯片400执行任务b时所使用的参数。其中,任务a可以是统计报文的数量、报文转发等任务。
103.那么,处理器内核410可以根据funa_en的值确定是否需要执行任务a,根据funb_para的值确定是否需要执行任务b。例如,假设funa_en的值为1,处理器内核410可以确定任务a为需要执行的任务;假设funa_en的值为0,处理器内核410可以确定任务a不为需要执行的任务。假设funb_para的值为空(null),处理器内核410可以确定任务b不为需要执行的任务,假设funb_para包括执行任务b需要的参数,处理器内核410可以确定任务b为需要执行的任务。
104.在一些可能的实现方式中,任务表项可以包括一个或多个互斥任务组,每个互斥任务组包括多个任务。属于同一个互斥任务组的多个任务彼此互斥。即,如果转发芯片400执行了互斥任务组中的某个任务,那么转发芯片400无法执行该互斥任务组中的其他任务。。那么。当任务表项中包括互斥任务组时,任务配置信息可以包括类型(type)信息,表示转发芯片400需要执行互斥任务组中的哪一个任务。
105.举例说明。参见表2,该表为任务表项的一种可能的结构示意图。
106.表2
[0107][0108]
表2所示实施例中,任务c、任务d和任务e构成一个互斥任务组。表2第一行第四列的元素func_para为任务c的参数,1第二行第四列的元素fund_para为任务d的参数,第一行第四列的元素fune_para为任务e的参数。表2第三列的元素type为表项的类型信息,type的值表示转发芯片400需要执行任务c、任务d和任务e中哪一个任务。关于funa_en和funb_para的描述可以参见上文,这里不再赘述。
[0109]
那么,处理器内核410可以根据type的值从任务c、任务d和任务e中确定等待执行的任务。假设type的值为0,处理器内核410可以确定任务c为等待执行的任务,从而根据func_para的值执行任务c;假设type的值为1,处理器内核410可以确定任务d为等待执行的任务,从而根据fund_para的值执行任务d;假设type的值为2,处理器内核410可以确定任务e为等待执行的任务,从而根据fune_para的值执行任务e。
[0110]
以上介绍了处理器内核410根据任务表项(即任务配置信息)确定等待执行的任务的方法。下面介绍处理器内核410根据上下文信息(即任务所需的信息)确定等待执行的任务的方法。
[0111]
在接收报文的同时,网络设备还可以获取到报文的上下文信息。报文的上下文信息中包括全部能够对报文执行的任务所需要的信息,即网络设备可能对报文执行所有任务中每个任务所需要的信息。那么,在获取到报文的上下文信息后,处理器内核410可以根据
报文的上下文信息预测网络设备可能对报文进行的处理,从而确定转发芯片400可能执行的任务。例如,假设报文的上下文信息中包括执行任务a所需的参数,那么处理器内核410可以将任务a确定为等待执行的任务。
[0112]
可选地,处理器内核410还可以结合任务表项和上下文信息确定等待执行的任务。具体地,处理器内核410可以先根据任务表项确定可能执行的任务,再根据报文的上下文信息确定是否需要可能执行的任务。
[0113]
举例说明。假设任务a为统计报文的数量,且网络设备中配置有规则“不统计来自设备x的报文”。那么在确定待执行任务时,处理器内核410可以先根据任务表项中任务a的使能位的值确定是否存在执行任务a的可能,再根据报文的上下文信息确定报文是否来自设备x。如果报文来自设备x,处理器内核410可以确定任务a不为等待执行的任务;如果报文来自设备x以外的其他设备,处理器内核410可以确定任务a为等待执行的任务。
[0114]
在确定等待执行的任务后,处理器内核410可以根据等待执行的任务确定执行该任务所需的指令的存储地址。可选地,处理器内核410可以根据对应关系确定执行该等待执行的任务所需的指令的地址范围。其中,对应关系为任务的信息和指令的存储地址之间的对应关系,例如可以在该任务在编译时得到的,指令的地址范围可以包括多条指令的存储地址。在一些可能的实现方式中,存储器500包括内存,执行任务所需的全部指令预先存储在内存中,那么指令范围可以是指令在内存中存储的地址。
[0115]
关于根据等待执行的任务确定指令的具体方法可以参见步骤s302的描述,这里不再赘述。
[0116]
s502:处理器内核410向缓存422发送所需要的指令的存储地址。
[0117]
在确定执行任务所需要的指令后,处理器内核410可以向缓存422发送所需要的指令的存储地址。可选地,处理器内核410可以向缓存422发送请求,该请求中包括执行任务所需要的一个或多个指令中每个指令的存储地址。
[0118]
在一些可能的实现方式中,执行不同的任务可能需要相同的一条或多条指令。这些不同任务通用的指令可以成为公共指令。在本技术实施例中,处理器内核410可以向缓存422发送的指令的地址范围还可以包括公共指令的存储地址。
[0119]
s503:缓存422根据指令的存储地址判断是否需要从存储器500中加载指令。
[0120]
在接收到指令的存储地址后,缓存422可以根据指令的存储地址判断该指令是否已经加载到缓存422中。如果指令并未加载到缓存422中,缓存422确定该指令需要从存储器500中加载,从而执行步骤s504。如果指令已经被加载到缓存422中,缓存422可以跳过步骤s504,执行步骤s505。
[0121]
具体地,缓存422在加载指令时可以记录每条指令在存储器500中的存储地址。那么,在接收到处理器内核410发送的存储地址后,缓存422可以判断自身存储的指令中是否包括在存储器500中的存储地址和处理器内核410发送的存储地址一致的指令。如果缓存422存储的某条指令在存储器500中的存储地址与接收到的存储地址相同,说明该存储地址对应的指令已经被加载到缓存422中,缓存422可以跳过步骤s504执行步骤s505。如果缓存422中存储的全部指令在存储器500中存储的地址均与处理器内核410发送的存储地址不同,说明该存储地址对应的指令尚未被加载到缓存422中,缓存422可以执行步骤s504。
[0122]
可选地,当处理器内核410向缓存422发送了多条指令的存储地址时,缓存422可以
逐一判断多条指令是否已被加载。若其中任意一条指令尚未加载,缓存422可以执行步骤s504,从而从存储器500中加载该指令。
[0123]
s504:缓存422从存储器500中加载指令。
[0124]
在缓存422确定执行任务所需的指令中任意一条或多条指令尚未加载到缓存422后,缓存422可以根据指令的存储地址从存储器500中加载指令。可选地,当指令的存储地址为指令在内存中存储的地址时,缓存422可以从内存中加载指令。在本技术实施例中,缓存422可以从存储器500中读取存储地址对应的指令,可以向存储器500发送需要加载的指令的存储地址,以便存储器500将执行需要加载的指令发送给缓存422.
[0125]
s505:缓存422向处理器内核410发送确认信息。
[0126]
在确认执行任务所需的全部指令均加载到缓存422后,缓存422可以向处理器内核410发送确认信息,以便处理器内核410执行后续步骤。
[0127]
s506:处理器内核410向处理单元421发送等待执行的任务。
[0128]
在接收到缓存422发送的确认信息后,处理器内核410确认执行任务所需的全部指令已被加载到缓存422中,即前述等待执行的任务可以进入执行阶段。那么,处理器内核410可以向处理单元421发送等待执行的任务,以便处理单元421执行该等待执行的任务。
[0129]
可选地,处理器内核410还可以向处理单元421发送执行任务所需要的信息,例如前述报文的上下文信息、指令的地址范围等信息,以便处理单元421根据接收到的信息执行任务。
[0130]
s507:处理单元421根据等待执行的任务从缓存422中获取指令。
[0131]
在接收到等待执行的任务后,处理单元421可以从缓存422中获取执行该任务所需要的指令。可选地,处理单元421可以向缓存422发送指令获取请求,该指令获取请求包括处理单元421当前执行的指令的存储地址。缓存422可以根据指令获取请求确定处理单元421所需的指令在缓存422中的存储地址,从而将该指令发送给处理单元421。
[0132]
可选地,在处理单元421从缓存422中获取指令后,缓存422可以将处理单元421获取的指令删除,从而释放该指令占用的缓存空间。
[0133]
s508:处理单元421根据指令执行任务。
[0134]
在获取到指令后,处理单元421可以根据指令执行任务。
[0135]
在一些可能的实现方式中,处理单元421可以逐条从缓存422中获取指令。即处理单元421每次仅获取一条指令。在这条指令被执行完成后,处理单元421可以从缓存422中获取下一条指令。那么,通过反复执行步骤s507和步骤s508,处理单元421可以逐条执行任务所需的指令。
[0136]
在本技术实施例中,处理器内核410在接收到新的任务时,不直接将任务发送给处理单元421,而是根据任务确定执行任务过程中所需要的指令的存储地址,并触发缓存422将所需要的指令从存储器500中加载到缓存422中。在确保执行任务所需的全部指令均加载到缓存422后,处理器内核410才向处理单元421发送任务和执行任务所需的信息。这样,在处理器321执行任务的过程中,处理器321所需要的每条指令都可以在缓存422中找到。因此,处理单元421在执行任务的过程中可以获取的每条指令均存储在缓存422。如此,在执行任务前将指令加载到缓存422,避免了执行任务的过程中缓存422从存储器500中加载指令,既提高了处理单元421执行任务的速度。另外,由于处理单元421无需等待缓存422从存储器
500中加载指令,处理单元421处于等待状态的时间较短,该方法也提高了处理单元421的利用率。
[0137]
参见图6,本技术实施例还提供了一种集成电路600,该集成电路600可以实现图3所示实施例中处理器的功能。该集成电路包括接口电路601和控制电路602。所述控制电路601与接口电路602通过通信线路603连接。接口电路602用于使得芯片600通过通信链路,与其它设备相连。
[0138]
其中,接口电路601用于实现图3所示实施例中的步骤s301,控制电路602用于实现图3所示实施例中的步骤s302、步骤s303和步骤s304。
[0139]
具体的,接口电路601,用于获取任务,所述任务是等待执行的任务。
[0140]
控制电路602,用于根据所述任务确定执行所述任务过程中所需的指令,触发缓存将所述所需的指令从存储器加载到所述缓存,并根据所述缓存中的所述所需的指令执行所述任务。
[0141]
具体执行过程请参考上述图3所示实施例中相应步骤的详细描述,这里不再一一赘述。
[0142]
可选地,本技术实施例中提供的集成电路600还可以包括缓存。该集成电路600中的接口电路601和控制电路602可以为一个或多个。
[0143]
示例性的,该集成电路600可以是fpga,可以是asic,还可以是系统芯片(system on chip,soc),还可以是cpu,还可以是np,还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
[0144]
参见图7,本技术实施例还提供了一种任务处理装置700,该任务处理装置700可以实现图3所示实施例中处理器的功能。该报文发送装置700包括获取单元701和处理单元702。其中,获取单元701用于实现图3所示实施例中的步骤s301,处理单元702用于实现图3所示实施例中的步骤s302、步骤s303和步骤s304。
[0145]
具体的,获取单元701,用获取任务,所述任务是等待执行的任务。
[0146]
处理单元702,用于根据所述任务确定执行所述任务过程中所需的指令,触发缓存将所述所需的指令从存储器加载到所述缓存,并根据所述缓存中的所述所需的指令执行所述任务。
[0147]
具体执行过程请参考上述图3所示实施例中相应步骤的详细描述,这里不再一一赘述。
[0148]
需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本技术实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,获取单元和处理单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0149]
参见图8,本技术实施例还提供了一种芯片800,该芯片800可以实现图3所示实施例中处理器的功能。该芯片包括存储器801和处理器802。其中,存储器801用于存储指令或程序代码,处理器802用于从存储器801中调用并运行指令或程序代码,以实现图3所示实施例中的步骤s301、步骤s302、步骤s303和步骤s304。
[0150]
可选地,所述处理器802可以是图6所示集成电路600。所述处理器802可以包括缓存。当处理器802不包括缓存时,所述存储器801可以包括缓存。
[0151]
图9是本技术实施例提供的一种设备900的结构示意图。上文中的集成电路600、任务处理装置700或芯片800可以通过位于图9所示的设备来实现。参见图9,该设备900包括至少一个处理器芯片901和至少一个存储器902。可选地,该设备900还可以包括通信总线903以及至少一个网络接口904。
[0152]
处理器芯片901可以是一个通用中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)或一个或多个用于控制本技术方案程序执行的集成电路(integrated circuit,ic)。该处理器芯片901可以用于实现本技术实施例中提供的任务处理方法。
[0153]
比如,当图2中的设备通过图9所示的设备来实现时,该处理器可以用于,处理器获取任务,所述任务是等待执行的任务;所述处理器根据所述任务确定执行所述任务过程中所需的指令;所述处理器确定缓存中没有包括所述所需的指令;所述处理器根据所述缓存中的所述所需的指令执行所述任务。
[0154]
可选地,处理器芯片901可以是图8所示实施例中芯片800,也可以是图6所示实施例中集成电路600。当处理器芯片801不包括缓存时,所述存储器902可以包括缓存、内存和外存;当处理器芯片901包括缓存时,所述存储器902可以包括内存和外存。
[0155]
存储器902可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,存储器902还可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器902可以是独立存在,通过通信总线903与处理器901相连接。存储器902也可以和处理器901集成在一起。可选地,存储器902可以包括缓存。
[0156]
可选地,存储器902用于存储执行本技术方案的程序代码或指令,并由处理器901来控制执行。处理器901用于执行存储器902中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器901也可以存储执行本技术方案的程序代码或指令,在这种情况下处理器901不需要到存储器902中读取程序代码或指令。
[0157]
可选地,存储器902可以用于实现图2所示的设备中存储器200的作用。
[0158]
通信总线903用于在处理器芯片901、网络接口904和存储器902之间传送信息。
[0159]
网络接口904可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(ran)或无线局域网(wireless local area networks,wlan)等。在本技术实施例中,网络接口904可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口904可以为以太接口(ethernet)接口、快速以太(fast ethernet,fe)接口或千兆以太(gigabit ethernet,ge)接口等。
[0160]
在具体实现中,作为一种实施例,设备900可以包括多个处理器芯片,例如图9中所示的处理器芯片901和处理器芯片905。这些处理器芯片中的每一个可以是一个单核
(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。可选地,图3所示的任务处理方法中不同步骤可以由不同的处理器芯片执行。这里的处理器芯片可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0161]
图10是本技术实施例提供的一种设备1000的结构示意图。图2中的设备可以通过图10所示的设备来实现。参见图10所示的设备结构示意图,设备1000包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(main processing unit,mpu)或路由处理卡(route processor card),主控板包括cpu和存储器,主控板负责对设备1000中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(line processing unit,lpu)或线卡(line card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备1000也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(switch fabric unit,sfu)。接口板包括cpu、存储器、转发引擎和接口卡(interface card,ic),其中接口卡可以包括一个或多个网络接口。网络接口可以为ethernet接口、fe接口或ge接口等。cpu与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备1000的ip地址,则将该报文发送给主控板或接口板的cpu进行处理;如果接收到的报文的目的地址不是设备1000的ip地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。转发引擎可以是网络处理器(network processor,np)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板cpu。在一些实施例中,cpu也可执行转发引擎的功能,比如基于通用cpu实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过asic或现场可编程门阵列(field programmable gate array,fpga)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。
[0162]
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本技术并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器rom,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
[0163]
示例性的,该芯片系统可以是fpga,可以是asic,还可以是系统芯片(system on chip,soc),还可以是cpu,还可以是np,还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
[0164]
应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0165]
本技术实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由处理器执行的任务处理方法。
[0166]
本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由处理器执行的任务处理方法。
[0167]
本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0168]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0169]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0170]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。
[0171]
另外,在本技术各个实施例中的各模块单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。
[0172]
所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0173]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何
可用介质。
[0174]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。
[0175]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1