CN109710547B - 一种工业物联网中的缓冲内存管理设计与实现方法 - Google Patents
一种工业物联网中的缓冲内存管理设计与实现方法 Download PDFInfo
- Publication number
- CN109710547B CN109710547B CN201811652956.4A CN201811652956A CN109710547B CN 109710547 B CN109710547 B CN 109710547B CN 201811652956 A CN201811652956 A CN 201811652956A CN 109710547 B CN109710547 B CN 109710547B
- Authority
- CN
- China
- Prior art keywords
- data
- sdram
- area
- data frame
- address
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 38
- 238000013461 design Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 10
- 238000007726 management method Methods 0.000 description 9
- 238000004088 simulation Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种工业物联网中的缓冲内存管理设计与实现方法,包括以下步骤:采用FPGA作为主控制器完成对SDRAM初始化和主状态机的设计;将SDRAM内存分成索引区和数据区两个部分,为了方便内存管理,进一步将SDRAM数据区分成1KB大小相同的内存块;在内存管理部分完成数据处理模块、读写索引模块、读写数据模块、地址控制模块的设计。本发明解决了工业高速通信发生流量堵塞缓存时,从SDRAM中读取多条数据帧造成的数据错乱等不可靠问题,提高了通信***的稳定性。
Description
技术领域
本发明涉及工业物联网领域,具体为高速通信时出现流量堵塞时缓冲内存管理设计与实现。
背景技术
随着社会的发展,高速实时通信在许多行业领域扮演着不可或缺的重要角色,如军事、安全监控、工业运动控制、工业物联网等领域。各行各业对高速数据传输的要求也越来越高,所以高速大容量的存储器在其中扮演着非常重要的角色。SDRAM相比其他存储器,具有容量大、体积小、读写效率高、价格低等优点,因此在数据处理量大的***中常被用做数据缓存器。
以往对SDRAM的使用只是把它当做一个简单的数据存储器,然而如果高速通信中出现流量堵塞将会出现问题,因为如果SDRAM中存放了多条数据帧之后,再从中把数据帧逐条读出来时将无法知道每条数据帧的起始地址和结束地址等信息,这就会引起数据流传输错乱等不可靠问题。
发明内容
本发明的目的在于针对现有技术的不足,提供一种工业物联网中的缓冲内存管理设计与实现方法,将SDRAM内存分为索引区和数据区,使用FPGA作为主控制器来对SDRAM进行内存管理的方法。该设计在实际应用中可以通过识别外界的操作完成对大量数据的有序缓存,操作简单、安全可靠,可以有效解决流量堵塞等问题。
本发明的目的是通过以下技术方案来实现的:一种工业物联网中的缓冲内存管理设计与实现方法,具体包括以下步骤:
步骤1:采用FPGA作为主控制器完成对SDRAM初始化和主状态机的设计,设定状态转移过程中的关键状态的优先级次序,依次为刷新状态、写状态、读状态;将SDRAM内存分成索引区和数据区两块大小,将数据区分成1KB大小相同的内存块。
步骤2:设计数据处理模块。当一条数据帧要存进SDRAM时,先经过数据处理模块进行分析计算;数据处理模块对数据帧进行预处理,计算分析数据帧的类型、长度、在数据区存储的起始地址和结束地址;如果数据区剩余内存大小可以存放当前数据帧时,将计算得到的数据帧的类型、数据长度、在数据区存储的起始地址和结束地址这些索引信息存储在固定大小的寄存器中,否则等待数据区中数据帧被读出后再进行判断;每次读写数据帧成功后,数据处理模块动态更新记录数据区剩余内存值的大小。
步骤3:设计读写索引模块。将数据处理模块得到的索引信息存进SDRAM的索引区;在下次读数据之前,先读出一条索引信息,得到对应的数据帧的类型、长度、在数据区存储的起始地址和结束地址;因为索引信息的长度是固定的,可以通过操作SDRAM控制器经过有限次的读写命令将索引信息写进或读出索引区。
步骤4:设计读写数据模块。根据索引信息在写索引完成后向数据区写入数据帧,在读数据帧的时候,先读出索引信息,根据索引信息操作SDRAM控制器读出数据帧;SDRAM控制器的读写次数根据索引信息确定。
步骤5:设计地址控制模块。每次读写索引区和数据区的起始地址和结束地址都不同,需要不停切换读写的起始地址和结束地址;在SDRAM控制器中增加一个切换地址标志位,只要这个标志位置高,每次读写前就可以自由的切换读写的起始地址和结束地址;索引区的起始地址和结束地址的增量是固定的,数据区的起始地址和结束地址的增量是不固定的。
进一步地,当一条数据帧要存放进SDRAM前会在数据数据处理模块计算其在SDRAM数据区起始地址和结束地址,数据帧大小不足1KB时按1KB计算。
进一步地,数据帧存储进SDRAM的流程为:通过数据处理模块计算分析得到索引信息,将索引信息写进索引区,再将数据帧存储进数据区。
进一步地,数据帧从SDRAM中读出的流程为:从SDRAM读索引信息,再根据索引信息读数据帧。
本发明的有益效果是:本发明提供了一种工业物联网中的缓冲内存管理设计与实现方法,将SDRAM内存分为索引区和数据区,使用FPGA作为主控制器来对SDRAM进行内存管理的方法。该设计在实际应用中可以通过识别外界的操作完成对大量数据的有序缓存,操作简单、安全可靠,可以有效解决流量堵塞等问题。
附图说明
图1是本发明内存管理框架图;
图2是本发明读写数据流程图;
图3是本发明向SDRAM中写入数据的仿真图;
图4是本发明从SDRAM中读出数据的仿真图。
具体实施方式
下面结合附图详细描述本发明,本发明的目的和效果将变得更加明显。
在工业物联网领域,高速实时通信扮演着不可或缺的重要角色。SDRAM具有容量大、体积小、读写效率高、价格低等优点,在高速通信的***中经常被用作数据缓存器。以往对SDRAM的使用也只是仅仅停留在一个简单的数据存储器,并没有考虑到如果不经过内存管理在SDRAM中存入多条数据帧之后再读取出来的问题,读取时不知道每条数据帧存放的起始地址和结束地址会导致数据传输造成错乱,导致通信不可靠。
如图1所示,本发明提出的一种工业物联网中的缓冲内存管理设计与实现方法,包括以下步骤:
步骤1:采用FPGA作为主控制器完成对SDRAM初始化和主状态机的设计,其中刷新状态、写状态、读状态是状态转移过程中的关键状态。在实际应用中有时会出现对同一块内存地址同时读写等误操作,为此规定了主要状态的优先级次序,依次为刷新状态、写状态、读状态。将SDRAM内存分成索引区和数据区两块大小,为了方便对数据区的管理,进一步将数据区分成1KB大小相同的内存块,每个1KB大小的内存块称之为一页。
步骤2:设计数据处理模块。当一条数据帧要存进SDRAM时,先经过数据处理模块进行分析计算。数据处理模块的主要作用就是对数据帧的预处理,计算分析数据帧的类型、长度、在数据区存储的起始地址和结束地址等信息。如果数据区剩余内存大小可以存放当前数据帧时,将计算得到的数据帧的类型、数据长度、在数据区存储的起始地址和结束地址等索引数据存储在固定大小的寄存器中。否则等待数据区中数据帧被读出后再进行判断。每次读写数据帧成功后,数据处理模块需要动态更新记录数据区剩余内存值的大小,方便下一次数据帧存进SDRAM前判断。
步骤3:设计读写索引模块。为了实现在SDRAM中存放多条数据帧之后可以依次准确读出每条数据帧的目的,需要将数据处理模块中处理得到的索引信息存进SDRAM的索引区。在下次读数据之前,先读出一条索引信息,就可以知道它所对应的数据帧的类型、长度、在数据区存储的起始地址和结束地址等信息,这样读数据时就不会因为不知道数据的类型、从什么位置开始读、从什么位置停止读等问题而造成数据帧的错乱。因为索引信息的长度是固定的,这样就可以通过操作SDRAM控制器经过有限次的读写命令将索引信息写进或读出索引区。最终,在索引区形成一个个井然有序的队列,每个队列都存储着对应数据帧的相关信息。
步骤4:设计读写数据模块。读写数据模块的作用是服务真正的高速通信中的数据帧。读写数据与读写索引是不同的,索引信息长度是固定的,而高速通信中的数据帧长度是不固定的。根据索引信息在写索引完成后向数据区写入数据帧,同样在读数据帧的时候,需要先读出索引信息,根据索引信息操作SDRAM控制器读出数据帧。对于SDRAM控制器的读写次数也是根据索引信息确定的。读写数据的流程图如图2所示。
步骤5:设计地址控制模块。因为事先已经将SDRAM分为索引区和数据区,同时将数据区分成1KB大小相同的内存。当一条数据帧要存放进SDRAM前会在数据处理模块计算其在SDRAM数据区起始地址和结束地址,数据帧大小不足1KB时也按1KB计算。例如当数据帧大小为1400个字节时,其所占的内存大小为2KB也就是2页。数据帧存储进SDRAM的流程大致为:通过数据处理模块计算分析得到索引信息,将索引信息写进索引区,再将数据帧存储进数据区。数据帧从SDRAM中读出的流程大致为:从SDRAM读出索引信息,再根据索引信息读出数据帧。从数据帧写进到读出SDRAM的流程中可以看出每次读写索引区和数据区的起始地址和结束地址都不同,需要不停切换读写的起始地址和结束地址。在SDRAM控制器设计中增加一个切换地址标志位,只要这个标志位置高,每次读写前就可以自由的切换读写的起始地址和结束地址。索引区的起始地址和结束地址的增量是固定的,数据区的起始地址和结束地址的增量是不固定的,地址控制模块需要协调好读写索引、读写数据过程中地址动态变化的问题。
图3和图4给出了ModelSim仿真平台仿真测试的情形,在SDRAM中留出6KB大小的内存作为索引区,剩余的内存划分为数据区。测试的流程是将500组大小不固定的数据存入SDRAM,再从SDRAM中将500组数据读出来。通过这样的方式测试数据处理模块、控制器模块、读写索引模块、读写数据模块、地址控制模块能否正常工作。从图3和图4中可以看出,SDRAM控制器可以按照我们预先的设计进行工作。向SDRAM存储数据时按照先写索引再写数据的顺序,从SDRAM读出数据时按照先读索引再读数据的顺序。地址可以正常切换,数据区也是按照我们划分的以1KB为最小单元存储的。仿真结果表明,在SDRAM中存储多组数据后可以准确的从中读出数据,稳定可靠。
本发明不仅局限于上述具体实施方式,本领域一般技术人员根据本发明公开的内容,可以采用其它多种具体实施方案实施本发明。因此,凡是采用本发明的设计结构和思路,做一些简单的变化或更改的设计,都落入本发明保护范围。
Claims (2)
1.一种工业物联网中的缓冲内存管理设计与实现方法,其特征在于,包括以下步骤:
步骤1:采用FPGA作为主控制器完成对SDRAM初始化和主状态机的设计,设定状态转移过程中的关键状态的优先级次序,依次为刷新状态、写状态、读状态;将SDRAM内存分成索引区和数据区两块大小,将数据区分成1KB大小相同的内存块;
步骤2:设计数据处理模块; 当一条数据帧要存进SDRAM时,先经过数据处理模块进行分析计算;数据处理模块对数据帧进行预处理,计算分析数据帧的类型、长度、在数据区存储的起始地址和结束地址;如果数据区剩余内存大小可以存放当前数据帧时,将计算得到的数据帧的类型、数据长度、在数据区存储的起始地址和结束地址这些索引信息存储在固定大小的寄存器中,否则等待数据区中数据帧被读出后再进行判断;每次读写数据帧成功后,数据处理模块动态更新记录数据区剩余内存值的大小;
步骤3:设计读写索引模块; 将数据处理模块得到的索引信息存进SDRAM的索引区;在下次读数据之前,先读出一条索引信息,得到对应的数据帧的类型、长度、在数据区存储的起始地址和结束地址;因为索引信息的长度是固定的,可以通过操作SDRAM控制器经过有限次的读写命令将索引信息写进或读出索引区;数据帧存储进SDRAM的流程为:通过数据处理模块计算分析得到索引信息,将索引信息写进索引区,再将数据帧存储进数据区;
步骤4:设计读写数据模块; 根据索引信息在写索引完成后向数据区写入数据帧,在读数据帧的时候,先读出索引信息,根据索引信息操作SDRAM控制器读出数据帧;SDRAM控制器的读写次数根据索引信息确定;数据帧从SDRAM中读出的流程为:从SDRAM读索引信息,再根据索引信息读数据帧;
步骤5:设计地址控制模块; 每次读写索引区和数据区的起始地址和结束地址都不同,需要不停切换读写的起始地址和结束地址;在SDRAM控制器中增加一个切换地址标志位,只要这个标志位置高,每次读写前就可以自由的切换读写的起始地址和结束地址;索引区的起始地址和结束地址的增量是固定的,数据区的起始地址和结束地址的增量是不固定的。
2.根据权利要求1所述的一种工业物联网中的缓冲内存管理设计与实现方法,其特征在于,当一条数据帧要存放进SDRAM前会在数据数据处理模块计算其在SDRAM数据区起始地址和结束地址,数据帧大小不足1KB时按1KB计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811652956.4A CN109710547B (zh) | 2018-12-29 | 2018-12-29 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811652956.4A CN109710547B (zh) | 2018-12-29 | 2018-12-29 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710547A CN109710547A (zh) | 2019-05-03 |
CN109710547B true CN109710547B (zh) | 2020-12-08 |
Family
ID=66259737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811652956.4A Active CN109710547B (zh) | 2018-12-29 | 2018-12-29 | 一种工业物联网中的缓冲内存管理设计与实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710547B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110322979B (zh) * | 2019-07-25 | 2024-01-30 | 美核电气(济南)股份有限公司 | 基于fpga的核电站数字控制计算机***核心处理单元 |
CN116150046B (zh) * | 2023-04-21 | 2023-07-14 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963814A (zh) * | 2006-11-29 | 2007-05-16 | 珠海市泰德企业有限公司 | 存储器数据管理方法 |
US20150006766A1 (en) * | 2013-03-15 | 2015-01-01 | Cyrill Ponce | Hardware-Assisted DMA Transfer with Dependency |
CN108563532A (zh) * | 2018-02-28 | 2018-09-21 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090102789A (ko) * | 2006-12-06 | 2009-09-30 | 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) | 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법 |
CN101316364A (zh) * | 2008-07-15 | 2008-12-03 | 南京信息工程大学 | 图像压缩*** |
CN102436429A (zh) * | 2011-11-14 | 2012-05-02 | 盛科网络(苏州)有限公司 | Dram存储器及提升dram数据访问带宽的方法 |
CN105205153B (zh) * | 2015-09-24 | 2018-10-19 | 小米科技有限责任公司 | 文件存储方法和装置 |
CN107197116A (zh) * | 2017-05-25 | 2017-09-22 | 天津大学 | 一种基于udp协议实时可靠图像传输方案 |
CN108710578B (zh) * | 2018-04-20 | 2022-07-26 | 深圳市战音科技有限公司 | 基于闪存的数据存储方法和装置 |
-
2018
- 2018-12-29 CN CN201811652956.4A patent/CN109710547B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963814A (zh) * | 2006-11-29 | 2007-05-16 | 珠海市泰德企业有限公司 | 存储器数据管理方法 |
US20150006766A1 (en) * | 2013-03-15 | 2015-01-01 | Cyrill Ponce | Hardware-Assisted DMA Transfer with Dependency |
CN108563532A (zh) * | 2018-02-28 | 2018-09-21 | 深圳和而泰数据资源与云技术有限公司 | 数据处理方法及相关装置 |
Non-Patent Citations (2)
Title |
---|
"An Area Efficient Multi-Mode Memory Controller Based on Dynamic Partial Reconfiguration";Khaled Salah等;《IEEE》;20171123;第328-331页 * |
"数据采集***中SDRAM控制器的FPGA设计";雷能芳;《电子设计工程》;20170805;第137-140页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109710547A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7076598B2 (en) | Pipeline accessing method to a large block memory | |
US9658955B2 (en) | Data storage device and operating method thereof | |
US8010770B2 (en) | Caching device for NAND flash translation layer | |
CN110059020B (zh) | 扩展内存的访问方法、设备以及*** | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
US20170060434A1 (en) | Transaction-based hybrid memory module | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
CN109783396A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
US20200293441A1 (en) | Data storage devices and data processing methods | |
CN101354906A (zh) | 应用于固态硬盘的闪存控制器 | |
CN109710547B (zh) | 一种工业物联网中的缓冲内存管理设计与实现方法 | |
CN104503703A (zh) | 缓存的处理方法和装置 | |
US20190087349A1 (en) | Data storage device and data storage method | |
CN109952565A (zh) | 内存访问技术 | |
CN103136215A (zh) | 存储***的数据读写方法和装置 | |
TWI692688B (zh) | 快閃記憶體控制器及相關電子裝置 | |
CN105917303A (zh) | 一种控制器、识别数据块稳定性的方法和存储*** | |
CN110347338A (zh) | 混合内存数据交换处理方法、***及可读存储介质 | |
TWI450271B (zh) | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 | |
US20160070648A1 (en) | Data storage system and operation method thereof | |
CN102650972B (zh) | 数据存储方法、装置及*** | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及*** | |
CN107229580A (zh) | 顺序流检测方法与装置 | |
CN104102552A (zh) | 一种消息处理方法及装置 | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 |
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 |