0 导言
依据FPGA的期货行情数据加快处理进程中,不同的音讯类型选用并行处理的办法,而且每一次的处理成果需求运用内存来缓存一次行情数据信息。行情数据信息容量巨大,片上存储难以满意需求,选用DDR3 SDRAM成为首选办法。但因为DDR3只要一套数据拜访通道,不能满意多个通道一起拜访的需求。此前的关于SDRAM的多通道处理计划中,比方曹一江等规划的依据NPI总线的片外存储器,最大带宽可达743 Mb/s;樊博等运用UI接口,DDR3通讯的最大带宽可达3.8 Gb/s;张宇嘉等规划的依据AXI4的DDR3多端口计划尽管传输速率有所提高,但因为AXI4协议自身的复杂性添加了开发运用的难度。本文完结并验证了期货行情数据加快处理中依据FPGA的DDR3六通道UI接口读写防抵触规划,简化了DDR3多通道读写的复杂度,跟着有用数据周期的提高,最高端口速率可达5.0 GB/s以上,带宽运用率可达80%以上。
1 整体规划架构
本文所规划的六通道读写防抵触整体架构如图1所示,首要包含通道判优裁定模块、读写逻辑操控模块和DDR3存储器操控模块。
DDR3存储操控器模块选用Xilinx公司的MIG核,用户只需求经过IP核的GUI挑选内存芯片并进行相关参数设置,即可完结DDR3的装备作业。
通道判优裁定模块将对六路通道进行裁定,关于同一时刻有读写恳求的不同通道,该模块依照优先级的凹凸断定拜访DDR3的次序,运用中止思维处理多通道读写的抵触问题。
读写逻辑操控模块操控DDR3的接口生成,依据不同操作完结对应接口的时序操控,然后完结对DDR3的正确读写拜访。
2 DDR3存储器操控模块规划
DDR3 IP核生成的操控器逻辑框图如图2所示,选用UI接口的办法比较于AXI4接口,不需求自己安排数据,简单操作,大大简化了DDR3的运用复杂度,为DDR3的扩展运用带来了便利。
2.1 存储操控模块写操作
DDR3写操作接口信号如表1所示。
写操作进程:当app_rdy和app_wdf_rdy一起为高的状况下,写入DDR3的地址app_addr与app_cmd绑定对齐,写入DDR3的数据app_wdf_data与数据掩码app_wdf_mask绑定对齐,app_cmd置为3′b000,与此一起app_en、app_wdf_wren、app_wdf_end置高,即可将数据写到对应的地址中。
因为DDR3的写时序不只一种,为了简化体系规划,本文规划的用户接口写操作时序为地址和数据彻底对齐,便于了解和操作。
2.2 存储操控模块读操作
DDR3的读操作接口信号如表2所示。
读操作进程:在app_rdy为高时,用户发送读指令并一起将app_en置高,则读指令和读地址会写到DDR3中,DDR3会回来数据和有用指示信号,两者一起决议回来的数据是否有用。
一般状况下,DDR3的读恳求结束之后不会立刻回来数据,需求推迟必定的时钟周期。
3 通道判优裁定模块规划
一般状况下,因为DDR3只要一组操控、地址和数据总线,因而同一时刻只能有一个通道在拜访。依据期货买卖的处理规矩,优先级由高到低的次序顺次为合约信息音讯、商场状况音讯、品种买卖状况音讯、成交核算行情音讯、多档定单簿行情音讯、多档成交量核算行情音讯。在通道判优的进程中,首要将6种不同的音讯经封装后别离寄存到相应的音讯缓存中,每一通道写入音讯缓存中的数据格式,从高到低位顺次为写使能、读使能、写数据、写地址、读地址;然后首要判别合约信息音讯缓存是否为空,假如不为空,则证明当时有合约信息音讯的恳求产生,此刻状况时机跳转到合约信息音讯处理状况;待合约信息音讯的缓存悉数读取结束之后,再次按优先级次序判别其他音讯缓存是否为空,状况机随即做相应的跳转,完结不同通道之间的切换,如图3所示。
关于不同的音讯类型,对应着不同的音讯处理单元,意图是添加体系的并行处理操作,下降处理推迟。
4 读写逻辑操控模块
读写逻辑操控模块首要对不同类型音讯做并行化处理,生成DDR3的接口信号,每个音讯的处理流程如图4所示。
关于期货买卖中的各种合约行情,品种多,但占用空间小,一般DDR3中一个地址就可完结一个行情的存储,在行情的复原、核算、发布中,需求读取多个行情。因为DDR3的突发长度为8,为了便于对行情的精确存取,6个通道的数据位宽均设定为DDR3位宽的1/8,即一次只存取一个地址的数据。
关于通道判优裁定模块输出的数据,写使能与读使能均为1 bit位宽,高电平表明恳求产生;写数据为64 bit位宽;写地址和读地址为28 bit位宽,DDR3的数据位宽在IP核中装备为512 bit,地址位宽为28 bit。因写数据位宽与DDR3数据位宽不匹配,所以DDR3的写操作需求掩码合作一起完结。
处理进程如下:首要进行读写判别,若写使能置高,则跳转到写操作状况;若读使能置高,则跳转到读操作状况,若无读写操作,处于等候状况。(期货行情音讯处理中不会呈现同一通道读写一起进行的状况,因而同一通道读写使能同为高电平的状况不会呈现。)
假如是写操作,一方面生成写入DDR3的地址和指令,另一方面将写数据封装成512 bit位宽。其间写入DDR3的地址app_addr为{写地址[27:3],3′d0},写入的数据app_wdf_data和掩码app_wdf_mask由写地址[2:0]确认。数据地址指令操控模块也会相应的产生app_en、app_wdf_wren、app_wdf_end操控信号,这些信号一起作用关于DDR3 SDRAM存储器,合作完结DDR3的写入操作,如图5所示。
假如是读操作,地址指令挑选模块将读地址[27:3]赋值给app_addr作为写入DDR3的基地址,一起将读地址[2:0]作为写入DDR3的偏移地址存入对应通道的偏移地址缓存中,在数据地址指令操控模块生成其他的操控信号传送给DDR3 SDRAM存储器。DDR3 SDRAM依据地址回来相应的512 bit位宽的数据。在回来数据的一起读取对应通道偏移地址缓存中的偏移地址,并依据此偏移提取对应的64 bit数据然后完结DDR3的一次读取操作,如图6所示。
5 试验成果与剖析
5.1 试验成果
本文以Xilinx公司的Kintex-7系列XC7K325T FPGA芯片和Micron公司的JBF9C256x72AKZ DDR3芯片为硬件渠道,并以此来验证本文规划的正确性,剖析其功能。
测验办法:六通道在同一时刻建议DDR3的读写恳求,其间1~4通道进行DDR3的写恳求,5、6通道进行DDR3的读恳求,状况机依照音讯优先级的次序顺次进行状况跳转完结处理,最终将数据别离回来到相应通道中,ChipScope成果如图7所示。
5.2 试验剖析
为了更好描绘规划的功能,本文引进以下参数。裁定时刻:恳求信号产生到通道开端处理的时刻距离;IP核处理时刻:DDR3 IP核从接纳指令到回来数据的时刻;有用提取时刻:从512 bit的DDR3回来数据中提取对应的64 bit的时刻距离;有用数据时刻:数据有用的保持时刻;总时刻:音讯恳求到数据回来的时刻,即裁定时刻、IP核处理时刻与有用数据时刻之和。因而:
在本规划中,实测裁定时刻为3个时钟周期,IP核处理时刻为22个时钟周期,有用提取时刻2个时钟周期,如图8所示。
每个通道的有用数据时刻不相同,功能也不相同,详细测验成果如表3所示。
测验成果表明,本规划能安稳高效地完结多通道对DDR3的拜访,跟着有用数据周期的提高,通道速率可达5 GB/s以上,带宽运用率可达80%以上,可以满意期货行情数据处理进程中的实时性要求。
6 定论
本文规划并完结了依据FPGA的DDR3六通道读写防抵触规划,能有用地处理在期货行情数据处理中多通道一起拜访DDR3的抵触问题,在现有的Kintex-7系列FPGA渠道期货行情数据处理体系中取得了杰出的使用作用。测验成果表明该防抵触规划能高效正确地完结多通道对DDR3的拜访,具有安稳性好、裁定时刻固定、功率高级特色。本文规划的DDR3多通道读写防抵触规划简化了多通道读写DDR3的复杂度,下降了在期货行情数据处理进程中的推迟,提高了并行处理速度。