CN112685358A - 一种基于fpga的ddr3分组读写方法 - Google Patents
一种基于fpga的ddr3分组读写方法 Download PDFInfo
- Publication number
- CN112685358A CN112685358A CN202011552747.XA CN202011552747A CN112685358A CN 112685358 A CN112685358 A CN 112685358A CN 202011552747 A CN202011552747 A CN 202011552747A CN 112685358 A CN112685358 A CN 112685358A
- Authority
- CN
- China
- Prior art keywords
- tcp
- ddr3
- fpga
- storage
- read
- 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.)
- Granted
Links
Images
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分组读写方法。
背景技术
DDR3属于动态随机存储SDRAM(SynchronousRAM),即同步动态随机存取存储器。其中同步指内存工作需要同步时钟,内部命令发送与数据传输需要以此为基准;动态指存储数据需要不断刷新来保证数据不丢失;随机指数据不是线性依次存储,而是自由指定地址进行读写。针对此特性,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 (6)
1.一种基于FPGA的DDR3分组读写方法,其特征在于,包括:
基于FPGA的特种设备运行时将建立多条TCP连接,依据不同TCP连接的流号将发送端与接收端的DDR3存储器的存储空间划分为多个存储域,每个存储域对应一条TCP连接;
通过行列号来标记发送端与接收端的存储域,以实现读-写TCP报文的分别存储。
2.根据权利要求1所述的基于FPGA的DDR3分组读写方法,其特征在于,每条TCP连接对应的存储域的大小相同。
3.根据权利要求1所述的基于FPGA的DDR3分组读写方法,其特征在于,所述存储域中的TCP报文采用连续循环存储的方式。
4.根据权利要求3所述的基于FPGA的DDR3分组读写方法,其特征在于,如果新存入的TCP报文的大小超过剩余存储空间,则将新存入的TCP报文切割成两段后,在剩余存储空间和起始存储空间分别存储。
5.根据权利要求4所述的基于FPGA的DDR3分组读写方法,其特征在于,存储在剩余存储空间的一段TCP报文大小与剩余存储空间相等。
6.根据权利要求4所述的基于FPGA的DDR3分组读写方法,其特征在于,对于切割成两段的TCP报文需要对切割后的两段打上属于同一TCP报文的标识。
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 true CN112685358A (zh) | 2021-04-20 |
CN112685358B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595932A (zh) * | 2021-08-06 | 2021-11-02 | 上海金仕达软件科技有限公司 | 数据乱序报文的处理方法及专用集成电路 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1870593A (zh) * | 2006-04-12 | 2006-11-29 | 杭州华为三康技术有限公司 | 基于现场可编程逻辑阵列的读写缓存单元的方法及装置 |
ES2301029T3 (es) * | 2004-08-05 | 2008-06-16 | Robert Bosch Gmbh | Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes. |
CN102780620A (zh) * | 2012-07-24 | 2012-11-14 | 中兴通讯股份有限公司 | 一种网络处理器和报文处理方法 |
CN105406999A (zh) * | 2015-11-20 | 2016-03-16 | 福建星网锐捷安防科技有限公司 | 一对多数据分发方法和分发设备 |
DE102016124007A1 (de) * | 2015-12-11 | 2017-06-14 | Sebastian Schillack | Verfahren zur Übertragung einer Nachricht |
CN106936730A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种报文发送方法、tcp代理以及tcp客户端 |
CN106992940A (zh) * | 2016-09-23 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 报文处理方法、装置、系统及终端 |
-
2020
- 2020-12-24 CN CN202011552747.XA patent/CN112685358B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2301029T3 (es) * | 2004-08-05 | 2008-06-16 | Robert Bosch Gmbh | Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes. |
CN1870593A (zh) * | 2006-04-12 | 2006-11-29 | 杭州华为三康技术有限公司 | 基于现场可编程逻辑阵列的读写缓存单元的方法及装置 |
CN102780620A (zh) * | 2012-07-24 | 2012-11-14 | 中兴通讯股份有限公司 | 一种网络处理器和报文处理方法 |
CN105406999A (zh) * | 2015-11-20 | 2016-03-16 | 福建星网锐捷安防科技有限公司 | 一对多数据分发方法和分发设备 |
DE102016124007A1 (de) * | 2015-12-11 | 2017-06-14 | Sebastian Schillack | Verfahren zur Übertragung einer Nachricht |
CN106936730A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种报文发送方法、tcp代理以及tcp客户端 |
CN106992940A (zh) * | 2016-09-23 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 报文处理方法、装置、系统及终端 |
Non-Patent Citations (2)
Title |
---|
YONGQUAN GONG 等: "Design of high-speed real-time sensor image processing based on FPGA and DDR3", 《2017 3RD IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATIONS (ICCC)》, pages 2105 - 2109 * |
何宇航 等: "基于FPGA的智能变电站网络报文处理装置设计", 《工业控制计算机》, pages 1 - 3 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595932A (zh) * | 2021-08-06 | 2021-11-02 | 上海金仕达软件科技有限公司 | 数据乱序报文的处理方法及专用集成电路 |
CN113595932B (zh) * | 2021-08-06 | 2024-05-14 | 上海金仕达软件科技股份有限公司 | 数据乱序报文的处理方法及专用集成电路 |
Also Published As
Publication number | Publication date |
---|---|
CN112685358B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102684976B (zh) | 一种基于ddr sdram进行数据读写的方法、装置及系统 | |
US20240143169A1 (en) | Method for Improving Message Storage Efficiency of Network Chip, Device, and Storage medium | |
US9025608B2 (en) | Route switching device and data cashing method thereof | |
CN110995616B (zh) | 一种大流量服务器的管理方法、设备及可读介质 | |
RU2595764C2 (ru) | Способ и устройство обработки сообщений | |
CN101635682B (zh) | 一种存储管理的方法和系统 | |
CN113535633A (zh) | 一种片上缓存装置和读写方法 | |
EP3657744A1 (en) | Message processing | |
EP2511826A1 (en) | Level-to-level management method and system of storage resources | |
CN103581055A (zh) | 报文的保序方法、流量调度芯片及分布式存储系统 | |
WO2016202113A1 (zh) | 一种队列管理方法、装置及存储介质 | |
CN112685358A (zh) | 一种基于fpga的ddr3分组读写方法 | |
CN110058816A (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
CN101594201B (zh) | 链式队列管理结构整合错误数据过滤的方法 | |
CN104683288A (zh) | 消息续传方法和装置 | |
CN111797497B (zh) | 一种用于电磁暂态并行仿真的通讯方法及系统 | |
US10067868B2 (en) | Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size | |
CN102917036A (zh) | 一种基于Memcached的分布式缓存数据同步实现方法 | |
CN105577985A (zh) | 一种数字图像处理系统 | |
CN101883041B (zh) | 存储转发系统及其报文存储方法 | |
CN101237405A (zh) | 数据缓存方法和装置 | |
CN102780620A (zh) | 一种网络处理器和报文处理方法 | |
CN110691134A (zh) | 一种基于mqtt协议的文件传输方法 | |
CN107124316B (zh) | 一种数据通信设备中基于硬件的快速倒换动作实现方法 | |
US20230409506A1 (en) | Data transmission method, device, network system, and storage medium |
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 |