测试访存有效带宽的装置及方法与流程

文档序号:14057036阅读:427来源:国知局
测试访存有效带宽的装置及方法与流程

本发明涉及计算机技术领域,尤其涉及一种测试访存有效带宽的装置及方法。



背景技术:

网络安全技术领域应用toe(tcpoffloadengine,tcp卸载引擎)技术来加速网络响应和提高服务器的性能。目前toe技术常见的应用领域包括报文tcp(transmissioncontrolprotocol,传输控制协议)流管理和排序、acl(accesscontrollist,访问控制列表)规则过滤和字符串匹配等,这些功能都有一个共同的特点,需要大容量的板载内存。

不同功能模块访问内存的方式不同,大概可以分为三类:第一、单burst(突发)随机地址只读访问,例如查询acl规则表或者查询tcp连接管理哈希表等。第二、随机长度读写并发访问,例如流排序缓存原始报文等。第三、根据访问空间大小不同,访存地址的排列方式可以分为{row,bank,col}和{bank、row,col}两种排列方式。

网络加速系统设计时,片外缓存的有效带宽往往是系统性能的瓶颈。现有技术中预估访问片外缓存的有效带宽一般采取如下方法:理论带宽乘以内存访问效率经验值,而内存访问效率与访问方式和访问空间大小相关,所以凭经验值会带来较大误差,有可能会造成系统设计返工的可能。



技术实现要素:

本发明提供的测试访存有效带宽的装置及方法,能够在线测试多种访问方式下的内存有效带宽,为系统设计的性能方面提供参考依据。

第一方面,本发明提供一种测试访存有效带宽的装置,包括pcie控制器、内存写引擎模块、内存读引擎模块和内存控制器,所述pcie控制器通过pcie接口与主机连接;其中,

所述主机,用于通过pcie接口向所述装置下发控制指令和读取计数指令,启动和停止进而计算出访存有效带宽;

所述pcie控制器,用于解析所述装置与主机的pcie接口时序,提取所述主机发送过来的pcie事务层报文,解析出其中的读写请求,并译码发送到对应的模块;

所述内存写引擎模块,用于根据访问方式和访问空间,发起内存写请求,组织与所述内存控制器接口信号数据格式和时序要求;

所述内存读引擎模块,用于根据访问方式和访问空间,发起内存读请求,组织与所述内存控制器接口信号时序要求和等待所述内存控制器返回的数据信号;

所述内存控制器,用于为用户侧提供与内存之间的至少四套读写访问接口,根据内存芯片的相关参数发起内存芯片侧的相关操作。

可选地,所述pcie控制器,还用于在读寄存器操作下从所述内存读引擎模块将读回的数据打包发送到主机。

可选地,所述内存芯片的相关参数包括刷新周期间隔和读写切换延迟。

可选地,所述内存芯片侧的相关操作包括刷新和预充电。

第二方面,本发明提供一种测试访存有效带宽的方法,包括:

主机通过pcie接口向pcie控制器下发控制指令和读取计数指令;

pcie控制器解析与主机的pcie接口时序,提取主机发送过来的pcie事务层报文,解析出其中的读写请求,并译码发送到对应的模块;

内存写引擎模块根据访问方式和访问空间,发起内存写请求,组织与内存控制器接口信号数据格式和时序要求;

内存读引擎模块根据访问方式和访问空间,发起内存读请求,组织与内存控制器接口信号时序要求和等待内存控制器返回的数据信号;

内存控制器为用户侧提供与内存之间的至少四套读写访问接口,根据内存芯片的相关参数发起内存芯片侧的相关操作;

主机通过pcie接口向pcie控制器下发测试停止指令,计算访存有效带宽。

可选地,在随机地址只读模式下,所述计算访存有效带宽包括:

按照如下公式计算访存有效带宽:m/(t2-t1),单位为pps;

其中,t1为所记录的收到第一次请求返回数据的时间,单位为秒,m为收到停止信号后所记录的发送请求的次数,t2为所记录的最后一次请求返回数据的时间,单位为秒。

可选地,在连续地址读写并发模式下,所述计算访存有效带宽包括:

按照如下公式计算写有效带宽:wrlen/(wrt2-wrt1),单位为bps,按照按照如下公式计算读有效带宽:rdlen/(rdt2-rdt1),单位为bps;

其中,wrlen为所记录的写请求大小总和,单位为比特,wrt1为所记录的第一次写请求时间,单位为秒,wrt2为所记录的最后一次写请求时间,单位为秒;rdlen为所记录的读请求大小总和,单位为比特,rdt1为所记录的第一次读请求数据返回时间,单位为秒,rdt2为所记录的最后一次读请求数据返回时间,单位为秒。

本发明实施例提供的测试访存有效带宽的装置及方法,能够在线测试多种访问方式下的内存有效带宽,为系统设计的性能方面提供参考依据,为硬件平台选型和系统架构设计提供参考依据,避免项目到测试阶段发现问题后,造成工期延误和成本损失。

附图说明

图1为本发明实施例提供的测试访存有效带宽的装置的结构示意图;

图2为本发明一实施例提供的测试访存有效带宽的方法的流程图;

图3为本发明另一实施例提供的测试访存有效带宽的方法的流程图;

图4为本发明再一实施例提供的测试访存有效带宽的方法的流程图。

具体实施方式

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

本发明实施例提供一种测试访存有效带宽的装置,如图1所示,所述测试访存有效带宽的装置1包括pcie控制器11、内存写引擎模块12、内存读引擎模块13和内存控制器14,所述pcie控制器11通过pcie接口与主机3连接;其中,

所述主机3,用于通过pcie接口向所述测试访存有效带宽的装置1下发控制指令和读取计数指令,启动和停止进而计算出有效带宽;

所述pcie控制器11,用于解析所述测试访存有效带宽的装置1与主机3的pcie接口时序,提取主机3发送过来的pcie事务层报文,解析出其中的读写请求,并译码发送到对应的模块;对于读寄存器操作,还需从各个模块将读回的数据打包发送到主机3;

内存写引擎模块12,用于根据访问方式和访问空间,发起内存写请求,组织与内存控制器14接口信号数据格式和时序要求;

内存读引擎模块13,用于根据访问方式和访问空间,发起内存读请求,组织与内存控制器14接口信号时序要求和等待内存控制器14返回的数据信号;

所述内存控制器14,用于为用户侧提供至少四套读写访问接口,根据内存芯片刷新周期间隔、读写切换延迟等参数,发起芯片侧的刷新、预充电等操作。

其中,大方框外的内存2是待访问的片外空间,可以是ddr2sdram、ddr3sdram、ddr4sdram或ddr2sram等,主机3是支持pcie插槽的服务器或者个人pc等。

本发明实施例提供的测试访存有效带宽的装置,能够在线测试多种访问方式下的内存有效带宽,为系统设计的性能方面提供参考依据,为硬件平台选型和系统架构设计提供参考依据,避免项目到测试阶段发现问题后,造成工期延误和成本损失。

本发明实施例提供一种测试访存有效带宽的方法,如图2所示,所述方法包括:

s21、主机通过pcie接口向pcie控制器下发控制指令和读取计数指令;

s22、pcie控制器解析与主机的pcie接口时序,提取主机发送过来的pcie事务层报文,解析出其中的读写请求,并译码发送到对应的模块;

s23、内存写引擎模块根据访问方式和访问空间,发起内存写请求,组织与内存控制器接口信号数据格式和时序要求;

s24、内存读引擎模块根据访问方式和访问空间,发起内存读请求,组织与内存控制器接口信号时序要求和等待内存控制器返回的数据信号;

s25、内存控制器为用户侧提供与内存之间的至少四套读写访问接口,根据内存芯片的相关参数发起内存芯片侧的相关操作;

s26、主机通过pcie接口向pcie控制器下发测试停止指令,计算访存有效带宽。

本发明实施例提供的测试访存有效带宽的方法,能够在线测试多种访问方式下的内存有效带宽,为系统设计的性能方面提供参考依据,为硬件平台选型和系统架构设计提供参考依据,避免项目到测试阶段发现问题后,造成工期延误和成本损失。

下面结合具体实施例对本发明测试访存有效带宽的方法进行详细说明。

内存访问测试中需要使用随机地址或者随机长度,产生随机数可以采用哈希方程或者循环冗余校验算法,本发明实施例根据crc32多项式产生随机数,产生一个递增步长为1的计数器作为多项式的输入,多项式的输出是散列均匀的32位数作为访存地址。

根据访问方式的特点,可以采用两种方法表示有效带宽,一个是pps(packetpersecond,包/秒),比如单个突发长度的访问,与访问者的大小无关,只与访问频率有关。另外一种是bps(bitpersecond,比特/秒),例如连续地址写或者连续地址读与访问者长度相关,访问者带宽固定的情况下,访问长度越大访问频率越小,所以不能用访问频率表示,用每秒多少比特表示有效带宽。

1、随机地址只读模式

有些应用场景例如网络安全应用中的查规则表或者流表,每次只查询64字节的空间,且地址是随机的。本实施例采用如下测试流程得出有效带宽数值。

如图3所示,在随机地址只读模式下,测试访存有效带宽的方法包括以下几个步骤:

(1)收到启动信号后,连续发送内存读请求,读地址取自随机地址产生器。

(2)记录读请求的次数。

(3)等待读请求返回数据的有效信号,并记录收到第一次请求返回数据的时间,记为t1(单位为秒)。

(4)收到停止信号后,记录发送请求的次数,记为m(单位为访问次数),并记录最后一次请求返回数据的时间,记为t2(单位为秒)。

(5)访存有效带宽的计算公式为:m/(t2-t1)(单位为pps)。

2、连续地址读写并发模式

有些应用场景例如网络安全应用中业务处理有延迟需要缓存报文,线网中最小包长为64字节,最大包长为1518字节,包长在最小值和最大值之间。按照报文输入顺序采用连续地址并发写读访问,本方法采用如下测试流程得出有效带宽数值。

如图4所示,在连续地址读写并发模式下,测试访存有效带宽的方法包括以下几个步骤:

(1)内存写引擎模块收到测试开始信号后,连续发送内存读请求,读大小取自随机地址产生器,读地址为读长度累加和。

(2)写输出控制信息缓存,记录每次写请求大小和地址,当缓存非空时,读访问引擎模块开始工作。

(3)记录写请求大小总和,记为wrlen(单位为比特),并记录第一次写请求时间,记为wrt1(单位为秒)。

(4)内存读引擎模块发送读请求,需要检查两个条件,第一是写引擎输出控制信息缓存非空,第二是读请求返回数据高速缓存非满。

(5)记录读请求大小总和,记为rdlen(单位为比特,应该等于wrlen),并记录第一次读请求数据返回时间,记为rdt1(单位为秒)。

(6)内存写引擎模块收到测试停止信号后,记录最后一次写请求时间,记为wrt2(单位为秒),以及记录最后一次读请求数据返回时间,记为rdt2(单位为秒)。

(7)访存有效带宽的计算公式为:

写有效带宽:wrlen/(wrt2-wrt1)(单位为bps);

读有效带宽:rdlen/(rdt2-rdt1)(单位为bps)。

3、有些应用场景例如网络安全应用中会话管理表需要多次的读写操作,访问长度为64字节且地址随机,即随机地址读写并发模式,在该模式下的访存有效带宽的测试方法,可以参照上述随机地址只读模式和连续地址读写并发模式下的访存有效带宽的测试方法,在此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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