指令块处理方法及装置与流程

文档序号:12362726阅读:167来源:国知局
指令块处理方法及装置与流程

本发明涉及计算机技术领域,尤其涉及指令块处理方法及装置。



背景技术:

中央处理单元(central processing unit,CPU)可以通过超大规模集成电路(very-large-scale integration,VLSI)实现。CPU在计算机中可以执行运算和控制功能。CPU可以用于解析计算机指令以及处理计算机中的数据。为了提高CPU的处理性能,通常采用高速缓存(cache)机制。包含cache的CPU通过总线与存储器耦合。CPU需要获取数据时,CPU的处理核可以先查找高速缓存。当高速缓存没有命中(cache miss)时CPU的处理核再查找存储器。在cache miss出现的频率较低的情况下,cache机制可以为CPU提供较高的处理性能。然而,有的场景中,例如网络通信场景,cache miss出现的频率较高。上述场景中,CPU的处理性能较低。

举例来说,对于网络装置(例如,路由器,交换机,存储设备、服务器或者无线设备),要求使用高性能的处理器。例如使用网络处理器。网络处理器可以采用众核架构。每个核可以支持多硬件线程。例如,使用网络装置实现报文转发业务。所述报文转发业务可能需要用到多个指令块(instruction block)。每个指令块可以是实现功能的指令序列。例如,指令块可以是微码函数或者C语言函数。指令块存储在存储器中。处理器可以通过访问存储器获得指令块。具体实现时,所述多个指令块可以存储在一个存储器中。所述处理器可以通过串行的方式访问所述存储器从而获取所述多个指令块。为提高处理器的处理性能,也可以将所述多个指令块保存在多个存储器中。每个存储器都保存所述多个指令块。所述处理器可以通过并行的方式访问所述多个存储器从而获取所述 多个指令块。

上述技术方案存在以下问题:为了使得处理器能够实现一定的处理性能,增加了指令对存储空间的占用。



技术实现要素:

有鉴于此,本发明实施例提供了一种指令块处理方法及装置,在处理器能够实现一定的处理性能的情况下,减少了指令对存储空间的占用。

本发明实施例提供的技术方案如下。

第一方面,提供了一种指令块处理方法,包括:

处理器确定X个指令块中的第一指令块,所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率,所述X个指令块被保存在第一存储器集合中的N个存储器的每个存储器中,N是正整数,X是大于1的整数;以及

所述处理器将所述第一指令块保存在第二存储器集合中的M个存储器的每个存储器中,M是正整数,所述第一存储器集合和所述第二存储器集合的交集为空集合,其中,所述M个存储器的带宽大于所述N个存储器的带宽。

在第一方面的第一种可能的实现方式中,所述方法还包括:

所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中具体包括:

所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第一阈值大于0。

结合第一方面的第一种可能的实现方式,第一方面的第二种可能的实 现方式中,所述方法还包括:

所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中具体包括:

所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值以及所述M个存储器中第二存储器的使用情况小于第二阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第二阈值大于0。

结合第一方面的第一种可能的实现方式,第一方面的第三种可能的实现方式中,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,所述方法还包括:

所述处理器确定Y个指令块中的第二指令块,所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,所述Y个指令块被保存在所述第二存储器集合中的所述M个存储器的每个存储器中,Y为大于1的整数;以及

所述处理器在所述M个存储器中第二存储器的使用情况大于或等于第二阈值时,将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中,所述第二阈值大于0。

结合第一方面,或第一方面的上述任意一种可能的实现方式,第一方面的第四种可能的实现方式中,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之后,所述方法还包括:

所述处理器删除所述N个存储器中每个存储器保存的所述第一指令 块。

结合上述第一方面的第三种可能的实现方式,第一方面的第五种可能的实现方式中,在所述处理器将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中之后,所述方法还包括:

所述处理器删除所述M个存储器中每个存储器保存的所述第二指令块。

结合第一方面,或第一方面的上述任意一种可能的实现方式,第一方面的第六种可能的实现方式中,所述X个指令块中每个指令块包含计数指令,所述处理器确定所述X个指令块中的所述第一指令块之前,所述方法还包括:

所述处理器通过执行所述X个指令块中每个指令块中包含的所述计数指令确定所述X个指令块中每个指令块被执行读操作的数量;以及

所述处理器根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

第二方面,提供了一种处理器,包括:

第一确定单元,用于确定X个指令块中的第一指令块,所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率,所述X个指令块被保存在第一存储器集合中的N个存储器的每个存储器中,N是正整数,X是大于1的整数;以及

执行单元,用于将所述第一确定单元确定的所述第一指令块保存在第二存储器集合中的M个存储器的每个存储器中,M是正整数,所述第一存储器集合和所述第二存储器集合的交集为空集合,其中,所述M个存储器的带宽大于所述N个存储器的带宽。

在第二方面的第一种可能的实现方式中,所述执行单元具体用于:

在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第一阈值大于0。

结合第二方面的第一种可能的实现方式,第二方面的第二种可能的实现方式中,所述执行单元具体用于:

在所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值以及所述M个存储器中第二存储器的使用情况小于第二阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第二阈值大于0。

结合第二方面的第一种可能的实现方式,第二方面的第三种可能的实现方式中,所述处理器还包括:

第二确定单元,用于在所述执行单元将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,确定Y个指令块中的第二指令块,所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,所述Y个指令块被保存在所述第二存储器集合中的所述M个存储器的每个存储器中,Y为大于1的整数;

所述执行单元,还用于在所述M个存储器中第二存储器的使用情况大于或等于第二阈值时,将所述第二确定单元确定的所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中,所述第二阈值大于0。

结合第二方面,或第二方面的上述任意一种可能的实现方式,第二方 面的第四种可能的实现方式中,所述处理器还包括删除单元,所述删除单元用于在所述执行单元将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之后,删除所述N个存储器中每个存储器保存的所述第一指令块。

结合第二方面的第三种可能的实现方式,第二方面的第五种可能的实现方式中,所述处理器还包括删除单元,所述删除单元用于在所述执行单元将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中之后,删除所述M个存储器中每个存储器保存的所述第二指令块。

结合第二方面,或第二方面的上述任意一种可能的实现方式,第二方面的第六种可能的实现方式中,所述X个指令块中每个指令块包含计数指令,所述处理器还包括第三确定单元,所述第三确定单元用于在所述第一确定单元确定所述X个指令块中的所述第一指令块之前,通过执行所述X个指令块中每个指令块中包含的所述计数指令确定所述X个指令块中每个指令块被执行读操作的数量;以及

根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

上述技术方案中,处理器将第一存储器集合的存储器中被执行读操作的频率最高的指令块保存到比所述第一存储器集合中的N个存储器具有更高带宽的第二存储器集合的M个存储器中。从而,在处理器能够实现一定的处理性能的情况下,减少了指令对存储空间的占用。

附图说明

为了更清楚地说明本发明实施例或现有技术中的方案,下面将对实施例中 所需要使用的附图作一简单地介绍。显而易见地,下面描述中的附图是本发明的一些实施例。对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的指令块处理方法的流程示意图;

图2为本发明实施例中搬移指令块的示意图;

图3为本发明实施例提供的处理器的结构示意图;

图4为本发明实施例提供的处理器的硬件结构示意图;

图5为本发明实施例的处理器内部的功能模块的交互示意图。

具体实施方式

本发明实施例提供了指令块处理方法及装置,用于减少指令对存储空间的占用。

下面通过具体实施例,分别进行详细的说明。

为使得本发明的目的、特征、优点能更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下可以获得其他实施例。

本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于限定特定顺序。此外,术语“包括”和“具有”不是排他的。例如,包括了已提及的步骤的方法,还可以包括没有提及的步骤。包含了已提及的单元的装置,还可以包括没有提及的单元。

本申请中的存储器的带宽是指处理器能够从所述存储器读出的数据的速率。所述数据可以是指令块。当所述存储器是只有一个存储器时,所述存储器 的带宽等于所述只有一个存储器的带宽。当所述存储器是多个存储器时,所述存储器的带宽等于所述多个存储器分别对应的多个带宽的和。

图1为本发明实施例提供的指令块处理方法的流程示意图。如图1所示,该方法包括如下步骤。

S102,处理器确定X个指令块中的第一指令块,所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率,所述X个指令块被保存在第一存储器集合中的N个存储器的每个存储器中,N是正整数,X是大于1的整数。

举例说明,所述处理器通过数据总线连接所述存储器。所述存储器存储有指令块。所述处理器可以通过访问所述存储器获得所述指令块。所述处理器基于获得的所述指令块对业务数据进行处理。所述处理器连接第一存储器集合。所述第一存储器集合包括N个存储器,N是正整数。也就是说,所述第一存储器集合可以包括只有一个存储器或者多于一个的存储器。其中,当所述第一存储器集合包括所述只有一个存储器时,所述X个指令块保存在所述只有一个存储器中。X是大于1的整数。所述处理器可以通过串行的方式访问所述只有一个存储器从而获取所述多个指令块。当所述第一存储器集合包括所述多于一个的存储器时,所述X个指令块保存在所述多于一个的存储器中的每个存储器中。也就是说,每个存储器都保存所述X个指令块。所述处理器可以通过并行的方式访问所述多于一个存储器从而获取所述多个指令块。由于所述处理器采用并行的方式访问所述多于一个存储器,在每个存储器具有相等带宽的情况下,采用所述多于一个存储器方式所述处理器获得的带宽大于采用所述只有一个存储器方式所述处理器获得的带宽。因此,所述处理器可以获得更高的处理性能。

举例来说,所述X个指令块可以是用于执行转发业务的计算机程序。所述转发业务可以是二层转发业务、三层转发业务、四层转发业务、多协议标签交换(multiprotocol label switching,MPLS)转发业务或者虚拟专用网(virtual private network,VPN)转发业务。所述二层转发业务可以是媒体接入控制(media access control,MAC)协议转发业务。所述三层转发业务可以是网际协议(internet protocol,IP)转发业务。所述四层转发业务可以是传输控制协议(transmission control protocol,TCP)转发业务或者用户数据报协议(user datagram protocol,UDP)转发业务。所述VPN转发业务可以是二层虚拟专用网(layer 2 virtual private network,L2VPN)转发业务或者三层虚拟专用网(layer 3 virtual private network,L3VPN)转发业务。所述转发业务可以对一个协议的报文进行处理。例如MAC协议转发业务可以对MAC协议报文进行处理。IP转发业务可以对IP报文进行处理。TCP转发业务可以对TCP报文进行处理。UDP转发业务可以对UDP报文进行处理。

举例说明,所述处理器可以采用单处理核的结构,也可以采用多处理核的结构。在采用所述多处理核的结构时,每个处理核可以连接一个或多个存储器。

以网络装置对报文执行转发业务为例进行说明。网络处理器是所述网络装置的部件。所述网络处理器通常采用众核架构。也就是说,所述网络处理器具有多个处理核。所述多个处理核中一部分处理核用于处理转发业务,另一部分处理核用于执行管理。或者,所述多个处理核中全部处理核可以都处理转发业务。当所述全部处理核都处理转发业务时,所述网络处理器可以集成至少一个管理CPU。所述至少一个管理CPU用于对所述转发业务进行管理和控制。或者,所述网络处理器可以与处理器芯片耦合。所述处理器芯片用于对转发业务进行管理和控制。所述网络处理器可以连接所述第一存储器集合。所述第一 存储器集合包括多个存储器。每个存储器都保存所述X个指令块。也就是说,可以将多个存储器看作是一个存储器的多个镜像。因为,每个存储器保存了相同的指令块。所述网络处理器在执行转发业务时,可以将多个待转发的报文负载分担到多个处理核中。每个处理核通过访问与其连接的存储器获取相应的指令块执行报文转发业务。从而,所述网络处理器实现了通过并行的方式访问所述多个存储器。举例来说,网络处理器包括10个处理核,每个处理核连接1个存储器。待转发的报文为100个。对一个报文进行转发需要5个指令块。这样,网络处理器100个待转发的报文被负载分担到10个处理核中。每个处理核被分配10个待转发的报文。每个处理核分别处理被分配的10个待转发的报文。从而实现10个处理核并行的处理待转发的报文。相应的,所述网络处理器并行的访问所述多个存储器从而获取多个指令块。

举例说明,每个存储器中存储有所述X个指令块。所述处理器通过访问所述N个存储器获取多个指令块。因此,在一个周期内,所述X个指令块中不同的指令块被读取次数可能不同。例如,一个周期内,所述X个指令块中的指令块1被读取5次,所述X个指令块中的指令块2被读取8次。如此这样,可以根据所述X个指令块中每个指令块被执行读操作的次数,确定所述X个指令块中每个指令块被执行读操作的频率。另外,可以确定所述第一指令块。所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率。所述其他指令块是指所述X个指令块中除所述第一指令块的所有指令块。例如,当X=2时,其他指令块数量为1。又例如,当X=5时,其他指令块数量为4。也就是说,所述第一指令块是所述X个指令块中被执行读操作的频率最高的指令块。需要说明的是,所述第一指令块可能为一个,也可能为多个。

以使用网络装置对报文执行转发业务为例进行说明。为支持多种转发业务,每个存储器中可能存储有一千个指令块。但是,在现网场景下,一个网络装置在一个周期内可能只执行一种或几种转发业务。也就是说,现网场景下,不同的指令块被执行读操作的频率是不同的。一个周期内可能只有少数的指令块被执行的读操作的频率较高,大多数指令块被执行读操作的频率较低甚至为0。如此这样,可以确定出所述第一指令块,所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率。

S104,所述处理器将所述第一指令块保存在第二存储器集合中的M个存储器的每个存储器中,M是正整数,所述第一存储器集合和所述第二存储器集合的交集为空集合,其中,所述M个存储器的带宽大于所述N个存储器的带宽。

举例说明,所述处理器还可以连接所述第二存储器集合。所述第二存储器集合包括所述M个存储器。M是正整数。所述第一存储器集合和所述第二存储器集合的交集为空集合。也就是说,所述M个存储器不包含所述N个存储器中的任意一个存储器。所述N个存储器不包含所述M个存储器中的任意一个存储器。所述M个存储器的带宽大于所述N个存储器的带宽。也就是说,所述M个存储器的所有存储器的带宽的总和大于所述N个存储器的所有存储器的带宽的总和。本申请对于M和N的数值关系不作限定。M可以大于N、或M可以等于N、或M可以小于N。

举例来说,图1所示的方法涉及到的所有存储器都具有相同的带宽。具体来说,所述M个存储器中每个存储器的带宽等于所述N个存储器中每个存储器的带宽。M大于N。上述方案中,所有存储器可以采用统一的架 构,有助于降低实现成本。

举例说明,根据S102的解释,所述处理器可以通过并行的方式访问所述多于一个存储器从而获取所述多个指令块。

S104中将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中具体实现时可以有多种实现方式。图2示出了一种实现方式。图2为本发明实施例中搬移指令块的示意图。如图2所示,存储器1包括指令块0、指令块1和指令块2。存储器1可以是图1所示的方法涉及的N个存储器中的一个存储器。存储器2可以是图1所示的方法涉及的M个存储器中的一个存储器。现在需要将存储器1中的指令块2保存到存储器2中。首先,将指令块2写入存储器2中;然后,修改所有需要跳转到指令块2的跳转指令的跳转地址。其中,图2中的符号“×”表示存储器1中的指令块可以被删除。本申请对于是否删除存储器1中的指令块2不作限定。因为,即使不删除存储器1中的指令块2,也不会影响对业务进行处理。

举例说明,S102和S104可以按照预定条件重复执行。例如,每隔一个周期,执行一次S102和S104,从而将每个周期结束时被执行读操作的频率最高的指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中。如此这样,实现把被执行读操作的频率最高的指令块存储在所述M个存储器的每个存储器中。

以使用网络装置对业务报文执行转发业务为例进行说明。根据S102的解释,现网场景下,一个周期内可能只有少数的指令块被执行读操作的频率较高,大多数指令块被执行读操作的频率很低甚至为0。所述网络处理器连接所述第一存储器集合,所述第一存储器集合中所述N个存储器的每个存储器均保存所述X个指令块。确定出所述第一指令块。所述第一指令块是所述X个 指令块中被执行读操作的频率最高的指令块。需要说明的是,由于N个存储器的每个存储器都保存相同的指令块。而且,待转发的报文可以通过负载分担的方式分配到多个存储器。例如,待转发的报文数量为20个,存储器有5个,那么每个存储器分配的报文数量为4个。也就是说,所述存储器需要通过对每个存储器执行读操作获取指令,并根据获取的指令对4个报文进行处理。所述处理器确定所述X个指令块中的所述第一指令块具体实现时,可以只对一个时间单元内所述N个存储器的一个存储器中的所述X个指令块中每个指令块被执行读操作的数量进行统计即可。不需要对一个时间单元(time unit)内所述N个存储器的每个存储器中的指令块被执行读操作的数量进行统计。可以理解,一个时间单元内所述N个存储器的N个所述第一指令块被执行读操作的数量是所述一个时间单元内所述N个存储器的一个存储器中的所述第一指令块被执行读操作的数量的N倍。

现有技术中,网络处理器只连接一个存储器集合。存储器集合中的每个存储器存储了多个指令。现有技术中,所述网络处理器也不会确定所述多个指令块中被执行读操作的频率最高的指令块。当网络处理器连接的所述存储器集合的多个存储器无法支持所述网络处理器需要达到的处理性能时,现有技术采用的手段是,增加所述网络处理器连接的存储器的数量。新增的存储器中也保存了所述多个指令块。由于存储器的数量增加了,存储器的带宽也增加了。因此,更多的存储器能够支持所述网络处理器需要达到的处理性能。也就是说,现有技术中,网络处理器需要连接更多的存储器。更多的存储器能够提供更高的带宽。例如,现有技术中,网络处理器连接10个存储器。每个存储器中保存指令块集合(例如1000个指令块)。当10个存储器中每个存储器的带宽占用率都大于或者等于95%时,所述网络处理器的处理性能为10千兆比特每秒 (gigabit per second,gbps)。为了使得网络处理器的处理性能为15gbps,需要将网络处理器连接到15个存储器(即新增了5个存储器)。每个存储器中保存所述指令块集合。也就是说,现有技术中,网络处理器需要占用更多的存储空间。具体来说,所述指令块集合需要被复制到更多的存储器中。这样,连接到网络处理器的存储器的数量增加了。更多的存储器能够为网络处理器提供更多的带宽,从而支持网络处理器达到更高的处理性能。但实际上,所述多个指令块仅有少数指令块是被频繁访问的,大多数指令块被执行读操作的频率很低或处于空闲状态。现有技术中,不对多个指令块进行区分,而是将多个指令块都进行相同次数的复制,从而增加了指令对存储空间的占用。

本实施例提供的指令块处理方法,处理器将第一存储器集合的存储器中被执行读操作的频率最高的指令块保存到比所述第一存储器集合中的N个存储器具有更高带宽的第二存储器集合的M个存储器中。从而,在存储器能够实现一定的处理性能的情况下,减少指令对存储空间的占用。

可选的,所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中具体包括:所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第一阈值大于0。

举例说明,当使用所述处理器对数据进行处理时,存储器的使用情况可能会随着所述处理器处理的业务的类型或者处理的业务的数量改变而变化。例如,增加新业务可能导致所述存储器的使用情况的增加。当所述处理器的使用情况处于较高水平时,改变所述处理器处理的业务的类型或者处理的业务的数量,可能会导致所述存储器的使用情况达到最大值。也就 是说,所述存储器可能处于满负荷运行的状态。这种情况下所述处理器的处理性能将无法得到进一步的提升。因此,本实施例设定了第一阈值。当所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值时,执行将所述X个指令块中被执行读操作的频率最高的所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中。其中,本申请不限定所述第一阈值的取值。所述第一阈值可以根据所述处理器的使用的场景、所述处理器处理的业务的类型或者所述处理器处理的业务需要具备的性能确定。其中,对于所述第一存储器的使用情况不作限定。可以用一个指标标识所述第一存储器的使用情况。例如,可以用所述第一存储器的带宽的占用率标识所述第一存储器的使用情况。或者,可以用一个周期内所述存储器对所述第一存储器执行读操作的次数标识所述第一存储器的使用情况。或者,可以用所述第一存储器的存储空间的占用率标识所述第一存储器的使用情况。也可以用多个指标标识所述第一存储器的使用情况。所述多个指标可以是上文提及的三个指标中的至少两个指标。其中,所述第一存储器可能为一个存储器,也可能为多个存储器。也就是说,当至少有一个存储器的使用情况大于或等于所述第一阈值时,就会触发将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中的动作。

举例说明,在确定所述第一指令块后,当所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值时,执行将所述X个指令块中被执行读操作的频率最高的所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中。例如,用所述第一存储器的带宽的占用率标识所述第一存储器的使用情况的场景中。所述第一阈值可以是 85%-100%。所述第一阈值也可以是85%,90%,95%,或者100%。当所述N个存储器的所述第一存储器的带宽占用率大于或等于85%,90%,95%,或者100%时,执行将所述X个指令块中被执行读操作的频率最高的所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中的操作。

举例来说,所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值是由于S102涉及的所述X个指令块中的每个指令块被执行读操作导致的。例如,所述第一存储器的带宽占用率为85%。所述第一阈值是80%。所述第一存储器的带宽占用率为85%可能是由于如下原因引起:对所述第一存储器中的所述X个指令块执行的读操作占用了所述第一存储器的带宽的85%。或者,所述第一存储器的带宽占用率为85%可能是由于如下原因引起:对所述第一存储器中的所述X个指令块执行的读操作占用了所述第一存储器的带宽的50%。对所述第一存储器中的其他数据执行的读操作占用了所述第一存储器的带宽的35%。所述其他数据可以是路由表。

可选的,所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中具体包括:所述处理器在所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值以及所述M个存储器中第二存储器的使用情况小于第二阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中,所述第二阈值大于0。

举例说明,执行将X个指令块中被执行读操作的频率最高的所述第一指令块保存在第二存储器集合中的M个存储器的每个存储器中的操作过程 中,除去考虑所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值,可选的,还可以同时考虑所述M个存储器中第二存储器的使用情况小于第二阈值。也就是说,在保证M个存储器的使用情况良好的情况下才进行相应的操作,例如,在保证M个存储器有足够的带宽接收所述第一指令块。如此这样,进一步保证了被执行读操作的频率最高的所述第一指令块在保存到M个存储器的每个存储器中后,获得更加充足的带宽。其中,第二阈值的具体取值不作限定,可以根据所述处理器的使用的场景、所述处理器处理的业务的类型或者所述处理器处理的业务需要具备的性能确定。例如,用所述第二存储器的带宽的占用率标识所述第二存储器的使用情况的场景中,所述第二阈值可以是75%-95%。所述第二阈值也可以是75%,80%,85%,90%,或者95%。当所述M个存储器的所述第二存储器的带宽占用率低于75%,80%,85%,90%,或者95%时,执行将所述X个指令块中被执行读操作的频率最高的所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中的操作。

可选的,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,所述方法还包括:所述处理器确定Y个指令块中的第二指令块,所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,所述Y个指令块被保存在所述第二存储器集合中的所述M个存储器的每个存储器中,Y为大于1的整数;以及,所述处理器在所述M个存储器中第二存储器的使用情况大于或等于第二阈值时,将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中,所述第二阈值大于0。

举例说明,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,可选的,可以由处理器确定出Y个指令块中的第二指令块,所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,也就是说,所述第二指令块是Y个指令块中被执行读操作的频率最低的指令块。需要说明的是,所述第二指令块可能为一个,也可能为多个。具体确定所述第二指令块方式与S102中的解释类似,此处不再赘述。所述Y个指令块被保存在所述第二存储器集合中的所述M个存储器的每个存储器中,Y为大于1的整数。也就是说,可以将多个存储器看作由一个存储器镜像得到的,因为,每个存储器保存了相同种类和数量的指令块。

举例说明,所述处理器在所述M个存储器中第二存储器的使用情况大于或等于第二阈值时,将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中,所述第二阈值大于0。在将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,如果M个存储器中的一个存储器的使用情况已经大于或等于第二阈值,此时,再将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中可能会造成M个存储器的性能无法匹配处理器的处理性能。如此这样,可以先将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中,然后在执行将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中的步骤。其中,第二阈值的具体取值不作限定,可以根据所述处理器的使用的场景、所述处理器处理的业务的类型或者所述处理器处理的业务需要具备的性能确定。其中,对于第二存储器的使用情况的表现形式不作限定,例如,可以使用 存储器的带宽占用率标识所述使用情况、或可以使用一段周期内对存储器的访问次数标识所述使用情况等。其中,所述第二存储器可能为一个,也可能为多个,也就是说,当至少有一个存储器的使用情况大于或等于第二阈值时,就会触发将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中的动作。例如,用所述第二存储器的带宽的占用率标识所述第二存储器的使用情况的场景中。例如,所述第二阈值可以是75%-95%。例如,所述第二阈值可以是75%,80%,85%,90%或者95%。当在所述M个存储器的所述第二存储器的带宽占用率大于或等于75%,80%,85%,90%或者95%时,执行将所述Y个指令块中被执行读操作的频率最低的所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中。

可选的,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之后,所述方法还包括:所述处理器删除所述N个存储器中每个存储器保存的所述第一指令块。

举例说明,参见图2,当指令块2完成保存到存储器2,并且跳转地址修改完成后,存储器1中的原指令块2将不再参与处理器的数据处理业务,可选的,可以将存储器1中的原指令块2删除,释放存储空间。因此,在所述处理器将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之后,所述处理器删除所述N个存储器中每个存储器保存的所述第一指令块。

可选的,在所述处理器将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中之后,所述方法还包括:所述处理器删除所述M个存储器中每个存储器保存的所述第二指令块。

举例说明,可参见上述删除所述N个存储器中每个存储器保存的所述第一指令块的解释,此处不再赘述。

可选的,所述X个指令块中每个指令块包含计数指令,所述处理器确定所述X个指令块中的所述第一指令块之前,所述方法还包括:所述处理器通过执行所述X个指令块中每个指令块中包含的所述计数指令确定所述X个指令块中每个指令块被执行读操作的数量;以及,所述处理器根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

举例说明,所述X个指令块中每个指令块中包括计数指令,所述计数指令可以通过人工编译的方式插入到每个指令块中,也可以通过自动编译器,由处理器为每个指令块自动添加计数指令。当处理器访问存储器通过读操作获取指令块时,可以通过读取计数指令对指令块被执行的读操作进行计数,确定X个指令块中每个指令块被执行读操作的数量。相应的,处理器根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

现有技术中,处理器只连接一个存储器集合,存储器集合中的每个存储器存储了多个指令。现有技术中,所述处理器也不会确定所述多个指令块中被执行读操作的频率最高的指令块。当所述处理器连接的所述存储器集合的多个存储器无法支持所述处理器需要达到的处理性能时,现有技术采用的技术手段是,增加所述处理器连接的存储器的数量。新增的存储器中也保存了所述多个指令块。由于存储器的数量增加了,存储器的带宽也增加了。因此,更多的存储器能够支持所述处理器需要达到的处理性能。也就是说,现有技术中,处理器需要连接更多的存储器。更多的存储器能够提供更高的带宽。例如, 处理器在处理数据过程中,使用了5个存储器,所述5个存储器的每个存储器都保存了X个指令块。当需要提高处理器的处理性能时,5个存储器提供的带宽可能无法满足处理器的需求。因此,需要将处理器连接到更多的存储器。例如,8个存储器(即新增了3个存储器)。同时将所述X个指令块保存到所述新增的3个存储器的每个存储器中。如此这样,8个存储器提供的带宽将会满足处理器的需求。但实际上,所述X个指令块仅有部分的指令块是被频繁访问的,其他指令块被执行读操作的频率很低或处于空闲状态。对所述X个指令块不做区分,将所述X个指令块都复制到所述新增的3个存储器中,增加了对指令空间的占用。

本发明实施例提供的技术方案中,处理器确定X个指令块中被执行读操作的频率最高的指令块,即第一指令块。将第一存储器集合的存储器中保存的所述第一指令块,保存到提供更高带宽的第二存储器集合的存储器中。从而,在使得处理器实现一定的处理性能的情况下,减少指令对存储空间的占用。也就是说,即使出现例如业务变更或数据处理量增加而导致存储器的带宽无法支持处理器需要达到的处理性能,只需要将所述第一指令块保存到提供更高带宽的第二存储器集合的存储器。由于只是将所述X个指令块中被执行读操作的频率最高的指令块保存到第二存储器集合的存储器,并没有将所述X个指令块都保存到所述第二存储器集合的存储器。因此,上述技术方案在处理器能够实现一定的处理性能的情况下,减少了指令对存储空间的占用。

图3为本发明实施例提供的处理器的结构示意图。如图3所示,处理器300包括第一确定单元302以及执行单元304。处理器300可以用于执行图1所示的方法。

第一确定单元302用于确定X个指令块中的第一指令块。所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率,所述X个指令块被保存在第一存储器集合中的N个存储器的每个存储器中,N是正整数,X是大于1的整数。

执行单元304用于将第一确定单元302确定的所述第一指令块保存在第二存储器集合中的M个存储器的每个存储器中。M是正整数,所述第一存储器集合和所述第二存储器集合的交集为空集合。其中,所述M个存储器的带宽大于所述N个存储器的带宽。

可选的,执行单元304具体用于在所述N个存储器中所述第一存储器的使用情况大于或等于第一阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中。所述第一阈值大于0。

可选的,执行单元304具体用于在所述N个存储器中所述第一存储器的使用情况大于或等于所述第一阈值以及所述M个存储器中第二存储器的使用情况小于第二阈值时,将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中。所述第二阈值大于0。

可选的,处理器300还包括第二确定单元。所述第二确定单元用于在执行单元304将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之前,确定Y个指令块中的第二指令块。所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,所述Y个指令块被保存在所述第二存储器集合中的所述M个存储器的每个存储器中,Y为大于1的整数。

执行单元304还用于在所述M个存储器中第二存储器的使用情况大于或等于第二阈值时,将所述第二确定单元确定的所述第二指令块保存在所 述第一存储器集合中的所述N个存储器的每个存储器中,所述第二阈值大于0。

可选的,处理器300还包括删除单元。所述删除单元用于在执行单元304将所述第一指令块保存在所述第二存储器集合中的所述M个存储器的每个存储器中之后,删除所述N个存储器中每个存储器保存的所述第一指令块。

可选的,处理器300还包括删除单元。所述删除单元用于在所述执行单元将所述第二指令块保存在所述第一存储器集合中的所述N个存储器的每个存储器中之后,删除所述M个存储器中每个存储器保存的所述第二指令块。

可选的,所述X个指令块中每个指令块包含计数指令,处理器300还包括第三确定单元。所述第三确定单元用于在第一确定单元302确定所述X个指令块中的所述第一指令块之前,通过执行所述X个指令块中每个指令块中包含的所述计数指令确定所述X个指令块中每个指令块被执行读操作的数量;根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

第一确定单元302可以用于执行图1所示的S102。执行单元304可以用于执行图1所示的S104。关于图3中的单元的功能以及工作原理请参见图1所示的方法对应的实施例中的相应描述。图3所示的技术方案中,处理器将第一存储器集合的存储器中被执行读操作的频率最高的指令块,保存到比所述第一存储器集合中的N个存储器提供更高带宽的第二存储器集合中的M个存储器中。从而,在保证处理性能的情况下,减少指令内存空间的占用。

图4为本发明实施例提供的处理器的硬件结构示意图。如图4所示,所述处理器包括多个处理核、第0级指令存储器(instruction memory,IMEM)、第1级IMEM、第2级IMEM以及管理CPU单元(图中未示出)。所述处理器可以用于执行图1所示的方法。其中,第1级IMEM可以用于实现图1所示的方法涉及的第一存储器集合。第0级IMEM可以用于实现图1所示的方法涉及的第二存储器集合。管理CPU单元和处理核可以用于实现图1所示的方法涉及的S102和S104。图4所示的处理器可用于实现图3所示的处理器。需要说明的是,图4所示的多个处理核仅是一种实施方式。应当理解,图4所示的处理器可以采用多处理核结构或单处理核结构。应当理解,管理CPU单元可以和多个处理核集成在同一芯片内,也可以分别位于不同的芯片。所述管理CPU可以为一个,也可以为多个。所述管理CPU可以由处理核实现。图4显示了3层IMEM结构。应当理解,本申请对于IMEM结构的层数不作限定。例如,可以采用4层结构,也可以为了减少用于与IMEM连接的处理核的接口采用2层结构。图4所示的处理核与各层IMEM的连接方式仅是一种实施方式。处理核与各层IMEM可以采用其他连接方式。

举例说明,所述处理器通过以下方式实现对第0级IMEM和第1级IMEM的操作。

所述处理器,用于确定X个指令块中的第一指令块。所述第一指令块被执行读操作的频率大于所述X个指令块中其他指令块中的每个指令块被执行读操作的频率。所述X个指令块被保存在第1级IMEM中的N个IMEM的每个IMEM中。N是正整数。X是大于1的整数。

所述处理器,还用于将所述第一指令块保存在第0级IMEM中的M个IMEM的每个IMEM中。M是正整数。所述第1级IMEM和所述第0级IMEM 的交集为空集合。其中,所述M个IMEM的带宽大于所述N个IMEM的带宽。

可选的,所述处理器还用于在所述N个IMEM中第一IMEM的使用情况大于或等于第一阈值时,将所述第一指令块保存在第0级IMEM中的M个IMEM的每个IMEM中。所述第一阈值大于0。

可选的,所述处理器具体用于在所述N个IMEM中所述第一IMEM的使用情况大于或等于所述第一阈值以及所述M个IMEM中第二IMEM的使用情况小于第二阈值时,将所述第一指令块保存在所述第0级IMEM中中的所述M个IMEM的每个IMEM中,所述第二阈值大于0。

可选的,所述处理器还用于在将所述第一指令块保存在所述第0级IMEM中的所述M个IMEM的每个IMEM中之前,确定Y个指令块中的第二指令块,所述第二指令块被执行读操作的频率小于所述Y个指令块中其他指令块中的每个指令块被执行读操作的频率,所述Y个指令块被保存在所述第0级IMEM中的所述M个IMEM的每个IMEM中,Y为大于1的整数。

所述处理器,还用于在所述M个IMEM中第二IMEM的使用情况大于或等于第二阈值时,将所述第二指令块保存在所述第1级IMEM中的所述N个IMEM的每个IMEM中,所述第二阈值大于0。

可选的,所述处理器用于在将所述第一指令块保存在所述第0级IMEM中的所述M个IMEM的每个IMEM中之后,删除所述N个IMEM中每个IMEM保存的所述第一指令块。

可选的,所述处理器用于在将所述第二指令块保存在所述第1级IMEM中的所述N个IMEM的每个IMEM中之后,删除所述M个IMEM中每个 IMEM保存的所述第二指令块。

可选的,所述X个指令块中每个指令块包含计数指令,所述处理器用于在确定所述X个指令块中的所述第一指令块之前,通过执行所述X个指令块中每个指令块中包含的所述计数指令确定所述X个指令块中每个指令块被执行读操作的数量。根据所述X个指令块中每个指令块被执行读操作的数量确定所述X个指令块中每个指令块被执行读操作的频率。

举例说明,第1级IMEM和第2级IMEM之间的操作的实现方式与上述第0级IMEM和第1级IMEM之间的操作的实现方式相类似,此处不进行赘述。

举例说明,第0级IMEM、第1级IMEM和第2级IMEM中的每个IMEM可以使用独立的物理存储器。物理存储器的类型可以是但不限于:静态随机存取存储器(static random access memory,SRAM)、同步静态随机存储器(synchronous static random access memory,SSRAM)、动态随机存取存储器(dynamic random access memory,DRAM)或者同步动态随机存取存储器(synchronous dynamic random access memory,SDRAM)。所述IMEM可以设置于处理器芯片的内部,也可以设置于处理器芯片的外部。第0级IMEM、第1级IMEM和第2级IMEM采用统一编址。

处理器通过执行读操作确定指令块的被访问频率,将第一存储器集合的存储器中被执行读操作的频率最高的指令块,保存到比所述第一存储器集合中的N个存储器具有更高带宽的第二存储器集合的M个存储器中。从而,在保证处理性能的情况下,减少指令内存空间的占用。

图5为本发明实施例的处理器内部的功能模块的交互示意图。如图5所示,所述处理器包括,指令存储器管理单元、处理核、第0级IMEM、第1 级IMEM和第2级IMEM。指令存储器管理单元连接处理核,所述处理核分别连接各级IMEM。需要说明的是,图中仅示出了一个处理核,但应当理解,处理器可以采用多处理核架构。图中第0级IMEM、第1级IMEM和第2级IMEM分别只示出一个存储器,应当理解为,每级IMEM均可以包括一个或多个存储器。图中的指令存储器管理单元在处理器中实现管理和控制。指令存储器管理单元可以和至少一个处理核集成在同一处理器芯片上。也可以使用独立的处理器芯片作为指令存储器管理单元。

举例说明,IMEM中保存的多个指令块中每个指令块包含计数指令。图5中右下部分的虚线框表示第一级IMEM中保存的某个指令块的放大示意图。可见,指令块包含计数指令。当该指令块被执行读操作时,所述计数指令将被读入高性能统计单元,高性能统计单元设置于处理核中。高性能统计单元通过执行指令块中包含的所述计数指令确定所述指令块被执行读操作的数量。高性能统计单元将所述指令块被执行读操作的数量发送到指令存储器管理单元。或者指令存储器管理单元也可以主动读取述指令块被执行读操作的数量。指令存储器管理单元根据所述指令块被执行读操作的数量确定所述指令块被执行读操作的频率。

举例说明,处理核获取IMEM的使用情况,将所述使用情况数据发送至指令存储器管理单元。一方面,指令存储器管理单元按照被执行读操作的频率确定被执行读操作的频率最高的指令块或被执行读操作的频率最低的指令块;另一方面,指令存储器管理单元根据获取的IMEM的使用情况,与预设阈值的进行比较,从而对被执行读操作的频率最高的指令块或被执行读操作的频率最低的指令块进行保存以及删除。具体实施过程可以参照上述实施例,此处不进行赘述。

举例说明,例如,将第一级IMEM中的指令块A保存到第0级IMEM中的过程。指令存储器管理单元从指令块备份数据库读取指令块A,将指令块A保存到第0级IMEM中,然后指令存储器管理单元控制处理核将第一级IMEM中的原指令块A删除。其中,所述指令块备份数据库可以设置于指令存储器管理单元内部,也可以设置于指令存储器管理单元外部。

本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用硬件实现实施例,或者组合软件和硬件的方式实现,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。

计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合。例如,计算机可读存储介质可以是随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)、光纤或者便携式只读存储器(compact disc read-only memory,CD-ROM)。

计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。

计算机可读程序代码可以完全在用户的本地计算机上执行、部分在用户的本地计算机上执行、作为单独的软件包、部分在用户的本地计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。

显然,本领域的技术人员可以对本发明进行各种改动和变型。这样,倘若这些修改和变型属于本发明权利要求及其等同技术的范围之内,这些修改和变型也属于本申请的保护范围。

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