CN112685358B - 一种基于fpga的ddr3分组读写方法 - Google Patents

一种基于fpga的ddr3分组读写方法 Download PDF

Info

Publication number
CN112685358B
CN112685358B CN202011552747.XA CN202011552747A CN112685358B CN 112685358 B CN112685358 B CN 112685358B CN 202011552747 A CN202011552747 A CN 202011552747A CN 112685358 B CN112685358 B CN 112685358B
Authority
CN
China
Prior art keywords
tcp
storage
ddr3
storage space
fpga
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.)
Active
Application number
CN202011552747.XA
Other languages
English (en)
Other versions
CN112685358A (zh
Inventor
徐志伟
羊舌荣元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fifth Research Institute Of Telecommunications Technology Co ltd
Original Assignee
Fifth Research Institute Of Telecommunications Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fifth Research Institute Of Telecommunications Technology Co ltd filed Critical Fifth Research Institute Of Telecommunications Technology Co ltd
Priority to CN202011552747.XA priority Critical patent/CN112685358B/zh
Publication of CN112685358A publication Critical patent/CN112685358A/zh
Application granted granted Critical
Publication of CN112685358B publication Critical patent/CN112685358B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于FPGA的DDR3分组读写方法,所述方法包括:基于FPGA的特种设备运行时将建立多条TCP连接,依据不同TCP连接的流号将发送端与接收端的DDR3存储器的存储空间划分为多个存储域,每个存储域对应一条TCP连接;通过行列号来标记发送端与接收端的存储域,以实现读‑写TCP报文的分别存储。本发明针对基于FPGA的特种设备实现的TCP/IP协议栈,提出了针对DDR3缓存的优化方法,通过根据对不同的TCP连接划分存储空间来对TCP报文进行存储,能够提高DDR3的使用效率。

Description

一种基于FPGA的DDR3分组读写方法
技术领域
本发明涉及一种基于FPGA的DDR3分组读写方法。
背景技术
DDR3属于动态随机存储SDRAM(Synchronous RAM),即同步动态随机存取存储器。其中同步指内存工作需要同步时钟,内部命令发送与数据传输需要以此为基准;动态指存储数据需要不断刷新来保证数据不丢失;随机指数据不是线性依次存储,而是自由指定地址进行读写。针对此特性,FPGA操作DDR3时,可以依据需求对DDR3存储域进行合理规划使用,如图1所示。
特种设备接入以太网中,负责对TCP报文进行解析,根据不同命令与数据执行相应操作,由于TCP/IP协议解析由FPGA实现,TCP报文在网络传输中存在IP层分包、TCP重传丢包、乱序等现象。因此,需要将报文缓存在DDR3中,等待收到完整数据包后再做处理。并且,特种设备运行时将建立若干条TCP连接,需要针对不同连接划分专用的存储域进行存储,避免数据混乱。
但是,当前基于FPGA的特种设备在缓存TCP/IP报文时没有针对DDR3的读写机制进行优化,导致存储空间资源浪费,读取速率低,效率差。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种基于FPGA的DDR3分组读写方法。
本发明采用的一种基于FPGA的DDR3分组读写方法,包括:
基于FPGA的特种设备运行时将建立多条TCP连接,依据不同TCP连接的流号将发送端与接收端的DDR3存储器的存储空间划分为多个存储域,每个存储域对应一条TCP连接;
通过行列号来标记发送端与接收端的存储域,以实现读-写TCP报文的分别存储。
进一步的,每条TCP连接对应的存储域的大小相同。
进一步的,所述存储域中的TCP报文采用连续循环存储的方式。
进一步的,如果新存入的TCP报文的大小超过剩余存储空间,则将新存入的TCP报文切割成两段后,在剩余存储空间和起始存储空间分别存储。
进一步的,存储在剩余存储空间的一段TCP报文大小与剩余存储空间相等。
进一步的,对于切割成两段的TCP报文需要对切割后的两段打上属于同一TCP报文的标识。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明针对基于FPGA的特种设备实现的TCP/IP协议栈,提出了针对DDR3缓存的优化方法,通过根据对不同的TCP连接划分存储空间来对TCP报文进行存储,能够提高DDR3的使用效率。
2、本发明中如果新存入的TCP报文的大小超过剩余存储空间,则将新存入的TCP报文切割成两段后,在剩余存储空间和起始存储空间分别存储,能够精确使用存储空间,减少存储资源的浪费。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为特种设备应用场景示意图。
图2为本发明实施例将存储空间划分为M行、M列存储域的示意图。
图3为本发明实施例的TCP报文分段存储的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例的一种基于FPGA的DDR3分组读写方法,包括:
基于FPGA的特种设备运行时将建立多条TCP连接,依据不同TCP连接的流号将发送端与接收端的DDR3存储器的存储空间划分为多个存储域,每个存储域对应一条TCP连接;其中,每条TCP连接对应的存储域的大小相同,其大小可以通过DDR3存储器总的存储空间大小除以TCP连接数得到;
通过行列号来标记发送端与接收端的存储域,以实现读-写TCP报文的分别存储。如图2所示是一种将DDR3存储器的存储空间划分为M行、M列存储域的示意图。由此本发明针对基于FPGA的特种设备实现的TCP/IP协议栈,提出了针对DDR3缓存的优化方法,通过根据对不同的TCP连接划分存储空间来对TCP报文进行存储,能够提高DDR3的使用效率。
本实施例中,所述存储域中的TCP报文采用连续循环存储的方式。以存储域2-1为例,其空间按0-65535划分,TCP报文由存储地址0开始存储,将到达的TCP报文存入对应的存储空间,顺序到达的TCP报文能够从存储空间中读出,以腾出存储空间接收新的TCP报文。
由于存储域中65536字节的存储空间是循环使用,如果新存入的TCP报文的大小超过剩余存储空间,会造成在新存入TCP报文时,该TCP报文的部分报文段的存储地址可能翻转,需要跳转回0地址继续存储。针对此情况,如图3所示,如果新存入的TCP报文的大小超过剩余存储空间,则将新存入的TCP报文切割成两段后,在剩余存储空间和起始存储空间分别存储,由此精确使用存储空间,减少存储资源的浪费。作为优选,存储在剩余存储空间的一段TCP报文大小与剩余存储空间相等。另外,对于切割成两段的TCP报文需要对切割后的两段打上属于同一TCP报文的标识,以避免TCP报文数据混乱。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于FPGA的DDR3分组读写方法,其特征在于,包括:
基于FPGA的特种设备运行时将建立多条TCP连接,依据不同TCP连接的流号将发送端与接收端的DDR3存储器的存储空间划分为多个存储域,每个存储域对应一条TCP连接;所述特种设备接入以太网中,负责对TCP报文进行解析,根据不同命令与数据执行相应操作;
通过行列号来标记发送端与接收端的存储域,以实现读-写TCP报文的分别存储;所述存储域中的TCP报文采用连续循环存储的方式;如果新存入的TCP报文的大小超过剩余存储空间,则将新存入的TCP报文切割成两段后,在剩余存储空间和起始存储空间分别存储;存储在剩余存储空间的一段TCP报文大小与剩余存储空间相等;对于切割成两段的TCP报文需要对切割后的两段打上属于同一TCP报文的标识。
2.根据权利要求1所述的基于FPGA的DDR3分组读写方法,其特征在于,每条TCP连接对应的存储域的大小相同。
CN202011552747.XA 2020-12-24 2020-12-24 一种基于fpga的ddr3分组读写方法 Active CN112685358B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011552747.XA CN112685358B (zh) 2020-12-24 2020-12-24 一种基于fpga的ddr3分组读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011552747.XA CN112685358B (zh) 2020-12-24 2020-12-24 一种基于fpga的ddr3分组读写方法

Publications (2)

Publication Number Publication Date
CN112685358A CN112685358A (zh) 2021-04-20
CN112685358B true CN112685358B (zh) 2023-07-28

Family

ID=75452834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011552747.XA Active CN112685358B (zh) 2020-12-24 2020-12-24 一种基于fpga的ddr3分组读写方法

Country Status (1)

Country Link
CN (1) CN112685358B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595932B (zh) * 2021-08-06 2024-05-14 上海金仕达软件科技股份有限公司 数据乱序报文的处理方法及专用集成电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004038210A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher
CN100442783C (zh) * 2006-04-12 2008-12-10 杭州华三通信技术有限公司 基于现场可编程逻辑阵列的读写缓存单元的方法及装置
CN102780620B (zh) * 2012-07-24 2016-06-15 中兴通讯股份有限公司 一种网络处理器和报文处理方法
CN105406999A (zh) * 2015-11-20 2016-03-16 福建星网锐捷安防科技有限公司 一对多数据分发方法和分发设备
DE102016124007A1 (de) * 2015-12-11 2017-06-14 Sebastian Schillack Verfahren zur Übertragung einer Nachricht
CN106936730B (zh) * 2015-12-30 2020-04-03 华为技术有限公司 一种报文发送方法、tcp代理以及tcp客户端
CN106992940B (zh) * 2016-09-23 2020-12-29 创新先进技术有限公司 报文处理方法、装置、系统及终端

Also Published As

Publication number Publication date
CN112685358A (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
WO2021088466A1 (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
CN102684976B (zh) 一种基于ddr sdram进行数据读写的方法、装置及系统
US9584332B2 (en) Message processing method and device
EP2461527B1 (en) Route switching device and data cashing method thereof
CN101635682B (zh) 一种存储管理的方法和系统
CN102395958B (zh) 一种数据包的并发处理方法及设备
US11425057B2 (en) Packet processing
CN112685358B (zh) 一种基于fpga的ddr3分组读写方法
CN113535633A (zh) 一种片上缓存装置和读写方法
CN104092717A (zh) 消息处理方法及系统、消息目的端设备与分布式消息系统
CN109120067A (zh) 一种事件顺序记录上报方法、装置、设备及可读存储介质
WO2016202113A1 (zh) 一种队列管理方法、装置及存储介质
CN103581055A (zh) 报文的保序方法、流量调度芯片及分布式存储系统
CN110058816A (zh) 一种基于ddr的高速多用户队列管理器及方法
CN103778120A (zh) 全局文件标识生成方法、生成装置及相应的分布式文件系统
CN104866528A (zh) 多平台数据采集方法及系统
CN106375249B (zh) 交换芯片的控制方法及控制系统
CN104125252A (zh) 数据存储系统及方法
CN102629235A (zh) 一种提高ddr存储器读写速率的方法
US20230269148A1 (en) High-Speed Packet Filtering
CN104683288A (zh) 消息续传方法和装置
CN107332839B (zh) 一种报文传输方法及装置
CN111797497B (zh) 一种用于电磁暂态并行仿真的通讯方法及系统
CN105138467A (zh) 数据存取装置、方法及磁共振设备
JP6718798B2 (ja) スイッチおよびそのデータアクセス方法

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
GR01 Patent grant
GR01 Patent grant