CN117724764A - 网络处理单元的算法分析方法及装置和存储介质 - Google Patents
网络处理单元的算法分析方法及装置和存储介质 Download PDFInfo
- Publication number
- CN117724764A CN117724764A CN202211106235.XA CN202211106235A CN117724764A CN 117724764 A CN117724764 A CN 117724764A CN 202211106235 A CN202211106235 A CN 202211106235A CN 117724764 A CN117724764 A CN 117724764A
- Authority
- CN
- China
- Prior art keywords
- instruction
- instructions
- processing unit
- cost
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 73
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 57
- 238000004458 analytical method Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 9
- 230000003287 optical effect Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 claims description 6
- 238000004088 simulation Methods 0.000 abstract description 11
- 239000000872 buffer Substances 0.000 description 24
- 238000005457 optimization Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000005259 measurement Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
Abstract
本发明涉及网络处理单元的算法分析方法及装置和存储介质。方法由处理单元执行,包含:在虚拟机中加载并执行可执行程序文件,其包含能够让网络处理单元执行的算法;在可执行程序文件的执行过程中,产生指令分类表;以及依据指令分类表和指令开销表产生执行代价统计表,使得算法能够依据执行代价统计表的内容被优化。通过以上所述的方法,在缺少运行算法的目标装置的情况下,就能够根据指令的模拟执行结果对算法优化。
Description
技术领域
本发明涉及算法优化技术,尤指一种网络处理单元的算法分析方法、计算机可读取存储介质及装置。
背景技术
网络处理单元(network processing unit,NPU)是一种专门使用在网络设备中,并且可被软件编程的集成电路。网络处理单元中执行的算法,主要包含各种处理数据数据包的函数,用于持续地从一个端口接收信息(Messages),经过解数据包(decapsulation)、数据处理、封装(encapsulation)后,传送到另一个端口。然而,开发完成的算法可能会有执行效率低落的问题。因此,本发明提出一种网络处理单元的算法分析方法、计算机可读取存储介质及装置,用于找出执行过程中的瓶颈,作为进一步优化的依据。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺陷,实为有待解决的问题。
本说明书涉及一种网络处理单元的算法分析方法的实施例,由处理单元执行,包含:在虚拟机中加载并执行可执行程序文件,其包含能够让网络处理单元执行的算法;在可执行程序文件的执行过程中,产生指令分类表;以及依据指令分类表和指令开销表产生执行代价统计表,使得算法能够依据执行代价统计表的内容被优化。
本说明书还涉及一种计算机可读取存储介质的实施例,包含计算机程序。当处理单元加载及执行计算机程序时,实施如上所示的网络处理单元的算法分析方法。
本说明书还涉及一种网络处理单元的算法分析装置的实施例,包含:处理单元。处理单元用于载入及执行程序代码时,实施如上所示的网络处理单元的算法分析方法。
指令分类表存储在虚拟机中执行过的多个第一指令,以及每个第一指令属于多个指令类型中的一个的信息。指令开销表存储属于每个指令类型中的每个第二指令在执行时所需花费的代价。执行代价统计表存储每个指令类型在执行时所花费的代价的总和。
上述实施例的优点之一,通过以上所述的方法,在缺少运行算法的目标装置的情况下,就能够根据指令的模拟执行结果对算法优化。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据一些实施方式的算法优化的三阶段示意图。
图2为依据本发明实施例的无源光网络的示意图。
图3为依据本发明实施例的光网络单元路由器的***架构图。
图4显示依据本发明实施例的报文处理的示意图。
图5为依据本发明实施例的分析装置的***架构图。
图6为依据本发明实施例的指令模拟分析的软件架构图。
图7为依据本发明实施例的基于指令模拟的算法分析方法的流程图。
图8为依据本发明实施例的在虚拟环境下的模拟执行的示意图。
其中,附图中符号的简单说明如下:
110:源代码;122:程序代码切分阶段;124:分段量测阶段;126:分段优化阶段;160#1~160#n:程序代码的分段;180#1~180#n:优化后程序代码的分段;20:光网络单元路由器;210:互联网;230:光线路终端;250:用户装置;310:网络处理单元;320:中央处理单元;330:动态随机存取存储器;340:无源光网络的媒体存取控制;350:以太媒体访问控制;360:快速外设元件互联的媒体存取控制;370:物理层;422:输入环形缓冲器;428:输出环形缓冲器;462:输入端口;468:输出端口;50:分析装置;510:处理单元;520:显示单元;530:输入装置;540:存储装置;550:存储器;560:通信接口;610:可执行程序文件;610#1:可执行程序文件中的程序;610#2:可执行程序文件中的数据;632:虚拟机;634:指令分析统计模块;650:指令分类表;660:指令开销表;670:执行代价统计表;S710~S750:方法步骤;80:虚拟环境;810:虚拟中央处理单元;830:虚拟动态随机存取存储器;850:虚拟网络处理单元。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连接、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
参考图1,在一些实施方式中,算法优化通常分为三个阶段:程序代码切分阶段122;分段量测阶段124;分段优化阶段126。在第一个阶段122,组成算法的软件指令的源代码110可依据不同的因素(例如功能等)切分为多个分段160#1至160#n,n为大于0的正整数。在第二个阶段124,分段160#1至160#n中的每一个进行性能的量测。在第三个阶段126,分段160#1至160#n中的每一个依据性能量测的结果进行优化,主要是通过删除冗余指令(redundant instructions)来缩减程序代码路径。接着,产生优化后的分段180#1至180#n。然而,这样的算法优化的最小单位是程序代码行,较不能适用于特定应用装置(例如光纤网络单元,Optical Network Unit,ONU等)中运行的算法。例如,缩减程序代码路径只能减少处理器的执行时间,但不一定能提升特定应用装置的整体***效能。此外,由于分段量测阶段124需要让分段160#1至160#n中的每一个实际运行于目标装置来产生性能量测的结果,因此,无法在没有目标装置的情况下进行算法优化。
为解决如上所述的问题,本发明实施例提出一种网络处理单元的算法分析方法,基于指令的模拟执行,提前对算法的效能进行预测。此方法可在缺少运行算法的目标装置的情况下,就能够根据指令的模拟执行结果对算法优化。
参考图2所示的无源光网络(Passive Optical Network,PON)示意图。无源光网络由服务提供商的中控机房中的光线路终端(Optical Line Terminal,OLT)230以及多个光网络单元(Optical Network Units,ONUs)组成,例如ONU路由器20。OLT 230提供两个主要的功能:一个用于在服务提供商的设备使用的电性信号和PON使用的光纤信号之间进行转换;另一个是统合ONUs和PON另一端之间的多工复用(multiplexing)。OLT 230和ONU路由器20之间以光链路(optical link)连接。ONU路由器20是一种PON***的用户端设备,可设置在家庭中,用于使用以太链路(Ether link)或无线链路(wireless link)和用户装置250互连。用户装置250可以是个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机、智能电视、智能冷气、智能电冰箱、智能排油烟机等电子产品。在OLT230的搭配下,ONU路由器20可向连接上的用户装置250提供各种宽频服务,例如互联网访问(Internet surfing)、网络电话(Voice over Internet Protocol,VoIP)、高画质视频等。
参考图3所示的ONU路由器20的***架构图。ONU路由器20包含网络处理单元(Network Processing Unit,NPU)310、中央处理单元(Central Processing Unit,CPU)320、动态随机存取存储器(Dynamic Random Access Memory,DRAM)330、PON媒体访问控制(Media Access Control,MAC)340、以太(Ether)MAC 350、快速外设元件互联(peripheralcomponent interconnect express,PCIE)MAC 360,使用共享总线架构(Shared BusArchitecture)彼此耦接。共享总线架构用于让上述组件之间可传递数据、地址、控制信号等。共享总线包含并行的物理线,是一种共享的传输介质,在任意的时间上,只能有两个装置可以使用这些线来彼此通信,用于传递数据。数据及控制信号能够在组件间分别沿数据线和控制线进行双向传播,但另一方面,地址信号只能沿地址线进行单向传播。例如,当NPU310想要读取DRAM 330的特定地址上的数据时,NPU 310在地址线上传送此地址给DRAM330。接着,此地址的数据会在数据线上回复给NPU 310。为了完成数据读取操作,控制信号会使用控制线进行传递。
CPU 320可使用多种方式实施,如使用通用硬件(例如,微控制单元、数字信号处理器、单一处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件指令时,提供特定的功能。NPU310是一种集成电路,具有专属于网络应用领域的一组功能。NPU 310是一种软件可编程的装置,具有类似通用处理单元的一般特性,但为了提高ONU路由器20的整体效能,用在不同类型网络(例如,PON、以太网络、无线局部网络、个人存取网络和其他网络)之间传递的报文(messages)的处理。DRAM330可配置空间作为数据缓冲区,暂存从相应于不同类型网络的端口所接收到的报文,以及准备要传送到相应于不同类型网络的端口的报文。DRAM 330另可存储NPU 310在执行过程中需要的数据,例如,变量、标志、数据表等。PON MAC 340耦接至物理层370中的相应电路,驱动其中的相应电路(可包含光接收器、光传送器)以产生一系列和OLT 230的光信号交互,用于通过光链路(optical link)从OLT 230接收报文,以及发送报文给OLT 230。以太MAC350耦接至物理层370中的相应电路(可包含数字接收器、数字传送器),驱动其中的相应电路以产生一系列和用户装置250的电性信号交互,用于通过以太链路(Ether link)从特定用户装置250接收报文,以及发送报文给特定用户装置250。PCIE MAC 360耦接至物理层370中的相应电路(可包含射频接收器、射频传送器),驱动其中的相应电路以产生一系列和用户装置250的射频信号交互,用于通过无线链路从特定用户装置250接收报文,以及发送报文给特定用户装置250。无线链路可包含使用802.11x、蓝牙等无线通信协议所建立的链路。
参考图4所示的报文处理的示意图。DRAM 330可配置空间给一个或者多个输入环形缓冲器(input ring buffers)422,用于存储通过输入端口462接收到的数据包。DRAM330另可配置空间给一个或者多个输出环形缓冲器(output ring buffer)428,用于存储即将通过输出端口468传送出去的数据包。物理层370包含多个输入端口462、多个输出端口468以及多个不同类型的接收器和传送器。
举例来说,一个输入端口462耦接至光接收器,光接收器耦接至OLT 230的光传送器,用于让PON MAC 340持续地通过此输入端口462从OLT 230接收数据包,并且PON MAC340将接收到的数据包推入输入环形缓冲器(input ring buffer)422。一个输入端口462耦接至数字接收器,数字接收器耦接至以太网集线器(Ethernet hub),用于让以太MAC 350持续地通过此输入端口462从用户装置250接收数据包,并且以太MAC 350将接收到的数据包推入输入环形缓冲器422。一个输入端口462耦接至WiFi射频接收器,用于让PCIE MAC360持续地通过此输入端口462从介质中接收用户装置250所传送出来的数据包,并且PCIE MAC360将接收到的数据包推入输入环形缓冲器422。一个输入端口462耦接至蓝牙射频接收器,用于让PCIE MAC 360持续地通过此输入端口462从介质中接收用户装置250所传送出来的数据包,并且PCIE MAC 360将接收到的数据包推入输入环形缓冲器422。
举例来说,一个输出端口468耦接至光传送器,光传送器耦接至OLT 230的光接收器,用于让PON MAC 340持续地从输出环形缓冲器(output ring buffer)428推出指定数据包,并且PON MAC 340驱动光传送器以通过此输出端口468将数据包传送给OLT 230。一个输出端口468耦接至数字传送器,数字传送器耦接至集线器,用于让以太MAC 350持续地从输出环形缓冲器428推出指定数据包,并且以太MAC 350驱动数字传送器以通过此输出端口468将数据包传送给特定用户装置250。一个输出端口468耦接至WiFi射频传送器,用于让PCIE MAC 360持续地从输出环形缓冲器428推出指定数据包,并且PCIE MAC 360驱动WiFi射频传送器以通过此输出端口468将数据包以WiFi通信协议传送给特定用户装置250。一个输出端口468耦接至蓝牙射频传送器,用于让PCIE MAC 360持续地从输出环形缓冲器428推出指定数据包,并且PCIE MAC 360驱动蓝牙射频传送器以通过此输出端口468将数据包以蓝牙通信协议传送给特定用户装置250。
NPU 310可执行关键算法,由软件指令组成,用于持续地从输入环形缓冲器422推出数据包,依据适当的数据包格式解数据包以获取来源地址、目的地址和报文,依据适当的数据包格式将来源地址、目的地址和报文封装成数据包,并且将数据包推入输出环形缓冲器428。来源地址和目的地址为互联网通信协议(Internet Protocol,IP)地址。举一个例子,关键算法从输入环形缓冲器422推出从OLT 230接收到的数据包,遵循光链路的数据包格式从数据包中解析出(parse)来源地址、目的地址和报文等,依据映射表和获取的目的地址知道获取的报文需要通过以太链路传送给特定用户装置250,遵循以太链路的数据包格式对来源地址、目的地址和报文进行封装,接着,将数据包推入输出环形缓冲器428,用于让以太MAC 350可通过数字传送器将数据包传送到局部网络(Local Area Network,LAN)。举另一个例子,关键算法从输入环形缓冲器422推出从用户装置250接收到的数据包,遵循蓝牙链路的数据包格式从数据包中解析出来源地址、目的地址和报文等,依据映射表和获取的目的地址知道获取的报文需要通过光链路传送给互联网210上的装置,遵循光链路的数据包格式对来源地址、目的地址和报文进行封装,接着,将数据包推入输出环形缓冲器428,用于让PON MAC 340可通过光传送器将数据包传送到互联网210。当NPU 310执行关键算法时,可能涉及对多个不同硬件装置的操作,例如,NPU310中的缓存(cache)和静态随机存取存储器(Static Random Access Memory,SRAM)、CPU 320、DRAM 330、PON MAC 340、以太MAC350、PCIE MAC360的以上任意组合。
在关键算法实际运行在ONU路由器20的NPU 310之前,可先使用分析装置对关键算法进行分析,并且依据分析结果来优化。参考图5所示的分析装置50的***架构图。此***架构可实施于个人计算机、工作站或笔记本计算机,至少包含处理单元510。处理单元510可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行程序代码或软件时,提供之后所描述的功能。***架构另包含存储器550及存储装置540,存储器550存储分析程序代码在执行过程中需要的数据,例如,包含关键算法的可执行程序、变量、各种数据表(Data Tables)等,存储装置540可以是硬盘、固态硬盘、闪存存储盘等,用于存储各式各样的电子文件。***架构另包含通信接口560,让处理单元510可借此跟其他电子装置进行通信。通信接口560可以是无线电信通信模块(Wireless Telecommunications Module)、局部网络(Local Area Network,LAN)通信模块或无线局部网络通信模块(WLAN)。无线电信通信模块(Wireless Telecommunications Module)可包含支持2G、3G、4G、5G或以上技术时代的任意组合的调制解调器(Modem)。输入装置530可包含键盘、鼠标、触控显示屏等。使用者(例如,关键算法的开发或者测试工程师)可按压键盘上的硬键来输入字,通过操作鼠标来控制鼠标,或者是在触控显示屏制造手势来控制执行中的应用程序。手势可包含单击、双击、单指拖拽、多指拖拽等,但不限定于此。***架构包含显示单元520,而显示单元520包含显示屏(例如,薄膜液晶显示屏、有机发光二极管显示屏或其他具有显示能力的显示屏),用以显示输入的字、数字、符号、拖拽鼠标的移动轨迹或应用程序所提供的画面,提供给使用者观看。
本发明实施例提出一种网络处理单元的算法分析方法,基于指令的模拟执行,提前对关键算法的效能进行预测,而不是让ONU路由器20的NPU 310实际运行关键算法时才进行量测。此外,本发明实施例提出的分析方法,其分析的最小单位是关键算法执行时的一个指令。所属技术领域人员理解每个程序代码行在运行时通常会执行多个指令,图1所示优化方式的粒度(granularity level)粗略于本发明实施例的分析粒度。参考图6所示的指令模拟分析的软件架构和图7所述的基于指令模拟的算法分析方法,详细说明如下:
步骤S710:于虚拟机632中加载并执行可执行程序文件610(例如,npu.bin),可执行程序文件中包含将来ONU路由器20出厂时运行于NPU 310的关键算法。虚拟机632使用分析装置50的处理单元510运行,用于创造一种虚拟环境,模拟ONU路由器20中的硬件组件。参考图8所示的在虚拟环境下的模拟执行。可执行程序文件610包含两个部分:程序代码610#1和数据610#2。虚拟机632模拟出的虚拟环境80包含虚拟中央处理单元810(对应于中央处理单元320)、虚拟DRAM 830(对应于DRAM 330)和虚拟网络处理单元850(对应于网络处理单元310)。虚拟中央处理单元810执行加载器(loader),用于将可执行程序文件610中的程序代码610#1存储到虚拟DRAM830中的第一局部(如斜线所示的局部),以及将可执行程序文件610中的数据610#2存储到虚拟DRAM 830中的第二局部(如反斜线所示的局部)。虚拟网络处理单元850从第一局部的开始地址起读取可执行程序文件610的指令并执行。在虚拟网络处理单元850执行可执行程序文件610的过程中,产生指令分类表650的多笔记录,每笔记录相应于一个指令的执行。接着,指令分类表650存储至存储器550和/或存储装置540,以供后续的分析。
指令可分为十种不同的类型:缓存读取指令;缓存写入指令;SRAM读取指令;SRAM写入指令;DRAM读取指令;DRAM写入指令;输入/输出(Input/Output,I/O)读取指令;I/O写入指令;计算指令;特殊计算指令。从NPU 310中的第一级缓存(L1 cache)读取数据的指令可归类到缓存读取指令类型。写入数据到NPU 310中的第一级缓存的指令可归类到缓存写入指令类型。从NPU 310中的SRAM读取数据的指令可归类到SRAM读取指令类型。写入数据到NPU 310中的SRAM的指令可归类到SRAM写入指令类型。从DRAM 330读取数据的指令可归类到DRAM读取指令类型。写入数据到DRAM 330的指令可归类到DRAM写入指令类型。驱动PONMAC 340、以太MAC 350和PCIE MAC 360来获取数据的指令可归类到I/O读取指令类型。驱动PON MAC 340、以太MAC 350和PCIE MAC 360来传送数据的指令可归类到I/O写入指令类型。一般的算术运算指令(例如,加、减、乘、除、逻辑或、逻辑与、逻辑反、逻辑互斥或等)可归类到计算指令类型。特殊函数(如奇偶校验、加密、解密等函数)的运算指令可归类到特殊计算指令类型。所属技术领域人员可依据***需求的不同,使用更多或者更少的指令类型来代表指令的执行,本发明并不因此局限。指令分类表650包含实际执行过的指令、归类后的类型和其他信息。示例的指令分类表650如表1所示:
表1
在可执行程序文件610的执行过程中,侦测到至少三个指令,依序被归类到缓存读取指令、缓存写入指令和计算指令的类型中。
步骤S730:处理单元510执行指令分析统计模块634的程序代码,用于依据指令分类表650和指令开销表660产生执行代价统计表670。指令开销表660包含10笔记录,每笔记录存储属于每个指令类型中的指令在执行时所需花费的代价。示例的指令开销表660如表2所示:
表2
类型 | 执行代价 |
缓存读取指令 | Cost#1 |
缓存写入指令 | Cost#2 |
SRAM读取指令 | Cost#3 |
SRAM写入指令 | Cost#4 |
DRAM读取指令 | Cost#5 |
DRAM写入指令 | Cost#6 |
I/O读取指令 | Cost#7 |
I/O写入指令 | Cost#8 |
计算指令 | Cost#9 |
特殊指令 | Cost#10 |
执行代价Cost#1至Cost#10可表示为时钟周期(clock cycle)的数目,代表特定类型中的每个指令的执行一般需要多少个时钟周期。所属技术领域人员可依据指令类型的实际类型数目,在指令开销表660中存储更多或者更少的记录,本发明并不因此局限。指令开销表660的内容可依据ONU路由器20过去运行的经验来产生,当作特定指令类型的指令在执行时的理论代价。
执行代价统计表670存储在关键算法执行的过程中,每个指令类型中的指令在执行时所花费的代价的总和信息。示例的执行代价统计表670如表3所示:
表3
类型 | 指令数 | 总执行代价 |
缓存读取指令 | Cnt#1 | Cnt#1×Cost#1 |
缓存写入指令 | Cnt#2 | Cnt#2×Cost#2 |
SRAM读取指令 | Cnt#3 | Cnt#3×Cost#3 |
SRAM写入指令 | Cnt#4 | Cnt#4×Cost#4 |
DRAM读取指令 | Cnt#5 | Cnt#5×Cost#5 |
DRAM写入指令 | Cnt#6 | Cnt#6×Cost#6 |
I/O读取指令 | Cnt#7 | Cnt#7×Cost#7 |
I/O写入指令 | Cnt#8 | Cnt#8×Cost#8 |
计算指令 | Cnt#9 | Cnt#9×Cost#9 |
特殊指令 | Cnt#10 | Cnt#10×Cost#10 |
指令数Cnt#1至Cnt#10表示可执行程序文件610中关联于这十类指令的数目。执行代价统计表670中的总执行代价字段存储这十类指令的理论代价和已执行过的指令数目的乘积。每个指令类型的总执行代价,可使用以下的公式表示:
totalCost#i=Cnt#i×Cost#i
totalCost#i代表第i个指令类型的总执行代价,Cnt#i代表已执行过的属于第i个指令类型的指令数目,Cost#i代表第i个指令类型的理论代价,i为大于零但小于或等于N的整数,N代表指令类型的总数。
步骤S750:依据执行代价统计表670的结果,优化将来会被NPU 310执行的关键算法。例如,可依据执行代价统计表670的结果,标示出高耗时的指令类型,然后再针对这个类型的指令进行优化。优化的方式可分为软件优化和硬件优化两种。
举例来说,对高耗时的指令类型的软件优化可包含以下方式:在源代码中移除冗余的数据结构和处理这些数据结构的流程。将多个任务共享的资源(例如,DRAM的空间)改为每个任务独立专用的资源,避免增加锁住和解锁的控制操作。减少PON MAC 340、以太MAC350和PCIE MAC 360的驱动次数,例如,将即时的少量的报文传递改为批次固定长度的报文传递。
举例来说,对高耗时的指令类型的硬件优化可包含以下方式:由于SRAM的存取耗时低于DRAM的存取耗时,因此,可以加大NPU 310中的SRAM空间,使得关键算法执行过程中所需要的变量、报文、数据表等尽可能存储在SRAM。
本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如硬件的驱动程序、应用程序的程序代码。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图3、图5中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (15)
1.一种网络处理单元的算法分析方法,由处理单元执行,其特征在于,该网络处理单元的算法分析方法包含:
在虚拟机中加载并执行可执行程序文件,其中,所述可执行程序文件包含能够让所述网络处理单元执行的算法;
在所述可执行程序文件的执行过程中,产生指令分类表,其中,所述指令分类表存储在所述虚拟机中执行过的多个指令、以及每个所述指令属于多个指令类型中的一个的信息;以及
依据所述指令分类表和指令开销表产生执行代价统计表,使得所述算法能够依据所述执行代价统计表的内容被优化,
其中,所述指令开销表存储每个所述指令类型的指令在执行时所需花费的代价,
其中,所述执行代价统计表存储每个所述指令类型的指令在执行时所花费的所述代价的总和。
2.根据权利要求1所述的网络处理单元的算法分析方法,其特征在于,所述虚拟机创造虚拟环境,用于模拟光网络单元路由器中的硬件组件。
3.根据权利要求2所述的网络处理单元的算法分析方法,其特征在于,所述光网络单元路由器包含所述网络处理单元,并且所述光网络单元路由器不包含所述处理单元。
4.根据权利要求3所述的网络处理单元的算法分析方法,其特征在于,所述算法持续地获取经由所述光网络单元路由器的输入端口所传入的报文,以及经由所述光网络单元路由器的输出端口传送所述报文到目的装置。
5.根据权利要求1所述的网络处理单元的算法分析方法,其特征在于,所述代价以时钟周期的数目表示。
6.根据权利要求5所述的网络处理单元的算法分析方法,其特征在于,所述执行代价统计表存储每个所述指令类型的指令的总执行代价,使用以下的公式表示:
totalCost#i=Cnt#i×Cost#i
totalCost#i代表第i个指令类型的所述总执行代价,Cnt#i代表已执行过的属于第i个指令类型的指令数目,Cost#i代表第i个指令类型的所述代价,i为大于零但小于或等于N的整数,N代表所述指令类型的总数。
7.根据权利要求1所述的网络处理单元的算法分析方法,其特征在于,所述指令类型包含缓存读取指令、缓存写入指令、静态随机存储器读取指令、静态随机存储器写入指令、动态随机存储器读取指令、动态随机存储器写入指令、输入/输出读取指令、输入/输出写入指令、计算指令和特殊计算指令。
8.一种计算机可读取存储介质,用于存储能够被处理单元执行的计算机程序,其特征在于,所述计算机程序被所述处理单元执行时实现根据权利要求1至7中任一项所述的网络处理单元的算法分析方法。
9.一种网络处理单元的算法分析装置,其特征在于,包含:
处理单元,用于在虚拟机中加载并执行可执行程序文件,其中,所述可执行程序文件包含能够让所述网络处理单元执行的算法;在所述可执行程序文件的执行过程中,产生指令分类表,其中,所述指令分类表存储在所述虚拟机中执行过的多个指令、以及每个所述指令属于多个指令类型中的一个的信息;以及依据所述指令分类表和指令开销表产生执行代价统计表,使得所述算法能够依据所述执行代价统计表的内容被优化,
其中,所述指令开销表存储每个所述指令类型的指令在执行时所需花费的代价,
其中,所述执行代价统计表存储每个所述指令类型的指令在执行时所花费的所述代价的总和。
10.根据权利要求9所述的网络处理单元的算法分析装置,其特征在于,所述虚拟机创造虚拟环境,用于模拟光网络单元路由器中的硬件组件。
11.根据权利要求10所述的网络处理单元的算法分析装置,其特征在于,所述光网络单元路由器包含所述网络处理单元,并且所述光网络单元路由器不包含所述处理单元。
12.根据权利要求11所述的网络处理单元的算法分析装置,其特征在于,所述算法持续地获取经由所述光网络单元路由器的输入端口所传入的报文,以及经由所述光网络单元路由器的输出端口传送所述报文到目的装置。
13.根据权利要求9所述的网络处理单元的算法分析装置,其特征在于,所述代价以时钟周期的数目表示。
14.根据权利要求13所述的网络处理单元的算法分析装置,其特征在于,所述执行代价统计表存储每个所述指令类型的指令的总执行代价,使用以下的公式表示:
totalCost#i=Cnt#i×Cost#i
totalCost#i代表第i个指令类型的所述总执行代价,Cnt#i代表已执行过的属于第i个指令类型的指令数目,Cost#i代表第i个指令类型的所述代价,i为大于零但小于或等于N的整数,N代表所述指令类型的总数。
15.根据权利要求9所述的网络处理单元的算法分析装置,其特征在于,所述指令类型包含缓存读取指令、缓存写入指令、静态随机存储器读取指令、静态随机存储器写入指令、动态随机存储器读取指令、动态随机存储器写入指令、输入/输出读取指令、输入/输出写入指令、计算指令和特殊计算指令。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211106235.XA CN117724764A (zh) | 2022-09-09 | 2022-09-09 | 网络处理单元的算法分析方法及装置和存储介质 |
TW111139794A TWI818773B (zh) | 2022-09-09 | 2022-10-20 | 網路處理單元的演算法分析方法及電腦程式產品及裝置 |
US18/117,204 US20240086242A1 (en) | 2022-09-09 | 2023-03-03 | Method and non-transitory computer-readable storage medium and apparatus for analyzing algorithms designed for running on network processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211106235.XA CN117724764A (zh) | 2022-09-09 | 2022-09-09 | 网络处理单元的算法分析方法及装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117724764A true CN117724764A (zh) | 2024-03-19 |
Family
ID=89857590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211106235.XA Pending CN117724764A (zh) | 2022-09-09 | 2022-09-09 | 网络处理单元的算法分析方法及装置和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240086242A1 (zh) |
CN (1) | CN117724764A (zh) |
TW (1) | TWI818773B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3704572A1 (en) * | 2017-11-03 | 2020-09-09 | Coherent Logix, Inc. | Programming flow for multi-processor system |
CN112286596A (zh) * | 2019-07-09 | 2021-01-29 | 华为技术有限公司 | 消息显示方法及电子设备 |
US20210359959A1 (en) * | 2020-05-12 | 2021-11-18 | Qualcomm Incorporated | Shared network processing unit |
US20220124009A1 (en) * | 2021-11-16 | 2022-04-21 | Thijs Metsch | Intent-based orchestration in heterogenous compute platforms |
-
2022
- 2022-09-09 CN CN202211106235.XA patent/CN117724764A/zh active Pending
- 2022-10-20 TW TW111139794A patent/TWI818773B/zh active
-
2023
- 2023-03-03 US US18/117,204 patent/US20240086242A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI818773B (zh) | 2023-10-11 |
TW202411837A (zh) | 2024-03-16 |
US20240086242A1 (en) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8494833B2 (en) | Emulating a computer run time environment | |
US8020168B2 (en) | Dynamic virtual software pipelining on a network on chip | |
US8438578B2 (en) | Network on chip with an I/O accelerator | |
WO2021259013A1 (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
US20090271172A1 (en) | Emulating A Computer Run Time Environment | |
US20180006970A1 (en) | Technologies for scalable packet reception and transmission | |
CN104636186A (zh) | 虚拟机内存管理方法、物理主机、pcie设备及其配置方法以及迁移管理设备 | |
CN104883302A (zh) | 一种数据包转发的方法、装置及*** | |
GB2507552A (en) | Improving local context search results | |
US10642667B1 (en) | Apparatus, system, and method for efficiently sharing data between processes | |
CN112506676B (zh) | 进程间的数据传输方法、计算机设备和存储介质 | |
US9619415B2 (en) | System and method for intelligent platform management interface keyboard controller style interface multiplexing | |
CN117724764A (zh) | 网络处理单元的算法分析方法及装置和存储介质 | |
CN107276998A (zh) | 一种基于OpenSSL的性能优化方法及装置 | |
CN113691466A (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
CN107357853B (zh) | 一种redis控制台的操作方法、装置及计算机*** | |
CN116032837A (zh) | 一种流表卸载方法及装置 | |
EP4309039A1 (en) | Memory operations management in computing systems | |
US20210399994A1 (en) | Cloud translation mechanism | |
Zhang et al. | Research on development of embedded uninterruptable power supply system for IOT-based mobile service | |
CN113630300A (zh) | 用于报文传输的方法和节点 | |
US20070121633A1 (en) | Active-active fibre channel capability in SATA and SAS devices | |
US20240202207A1 (en) | Distributed function data transformation system | |
WO2021249118A1 (zh) | 生成、注册ui服务包、以及加载ui服务的方法及装置 | |
US20080313657A1 (en) | Apparatus, system, and method for managing tray devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |