CN112698950B - 一种用于工业物联网边缘设备的内存优化方法 - Google Patents
一种用于工业物联网边缘设备的内存优化方法 Download PDFInfo
- Publication number
- CN112698950B CN112698950B CN202011642565.1A CN202011642565A CN112698950B CN 112698950 B CN112698950 B CN 112698950B CN 202011642565 A CN202011642565 A CN 202011642565A CN 112698950 B CN112698950 B CN 112698950B
- Authority
- CN
- China
- Prior art keywords
- buffer
- size
- edge
- block
- equipment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000005457 optimization Methods 0.000 title claims abstract description 11
- 239000000872 buffer Substances 0.000 claims abstract description 69
- 230000003993 interaction Effects 0.000 claims abstract description 13
- 238000004891 communication Methods 0.000 claims description 21
- 230000009191 jumping Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 239000002360 explosive Substances 0.000 abstract 1
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于工业物联网边缘设备的内存优化方法,首先提出了一种基于工业物联网边缘设备多对象多可变缓存区块的系统架构,以支持将多个数据对象并行传递到多个可变长度缓存区块;其次,智能设备接入边缘设备,初始化设备列表得到设备交互协议帧的实际内容数据大小;最后,根据不同的设备交互协议帧的大小,选择最接近当前缓存块容量的信息帧优先存储,同时还考虑随着边缘工业物联网的应用复杂性的升级,连接到边缘设备的设备对象数量的爆炸性增长带来的大量的计算和存储需求超出了资源受限的边缘设备的需求时,使用在时间维度上的内存块的可回收再分配方案,实现基于时间空间双维度的协议帧到收发缓冲块的最佳匹配方法。本方明通过最大化收发缓存区的空间利用率,达到节省内存空间的效果。
Description
技术领域
本发明属于工业控制领域,特别是涉及一种用于工业物联网边缘设备的内存优化方法。
背景技术
融合边缘计算的工业物联网成为物联网技术发展的主要方向。发展边缘工业物联网首先要解决边缘设备高效管理以及有限资源的竞争分配问题。边缘设备是指连接云服务器和终端数据源(传感器,设备),并具有存储、计算和网络连接能力的设备。在工业物联网中,边缘计算与可编程控制器PLC的结合产生了新一代的边缘PLC产品,这些PLC集PC机、OPC服务器、边缘网管为一体,具有监控、控制、数据采集、可视化设备、过程控制、云服务等功能。近年来,鉴于PLC可编程以及高可靠性的特点,作为边缘设备被大量应用于工业物联网中。我们以嵌入式PLC作为边缘设备用于监控系统中,通过接口或总线的方式将各类传感器及智能设备接入嵌入式可编程控制器ePLC,以此提供可编程的边缘服务,满足环境监控的管理要求。边缘设备的存储空间是有限的,当大量的物联网终端设备发出服务请求时,在边缘物联网中保障节点的存储可靠性和效率是一个严峻的挑战。在监控系统中,传统的ePLC与终端设备交互的协议帧的收发是在内存中开辟收发缓存区缓存交互的协议帧,分配方法是按照固定区块映射的方式为连接到每个接口的设备分配,所有内容都被划分成大小相同的数据块,默认每块大小是1MB,然而,在一些设备协议简单以及采集数据点单一的情况下,比如门禁数据,由于需要传输的数据量小,导致整个协议的数据帧通常都远远小于1M。这种不考虑每个对象实际传输数据的大小,按照固定分配的方式存在灵活性差以及空间浪费的缺点,同时,当接入边缘设备的智能设备不断增加时,由于受到边缘设备节点资源有限的约束,收发缓冲区资源无法满足固定区块一对一映射分配的不足。
发明内容
本发明要解决的技术问题在于,提供了一种基于时间空间双维度的多对象多可变缓存块的内存优化方法,以支持数据对象和缓存块之间的多对一分配。在分配过程中,将内存中开辟的收发缓存区分成若干个可变大小的缓存块(<=1M),考虑实际交互的协议数据帧的大小,优先缓存跟自身容量最接近的数据帧,提升每个缓存块的利用率,从而腾出更多的内存空间可用来缓存更多的数据,当需求超过当前可用的空间时,该方法还能够在最短的时间增量内回收缓冲块,给到交互的协议帧对象有第二次机会匹配竞争缓存块,通过上述提升空间利用率和重用率,达到节省内存空间效果。
一种用于工业物联网边缘设备的内存优化方法,包括以下步骤:
步骤S1:在边缘设备内存中开辟的收发缓存区并分成若干个可变大小的缓存块;协议帧数据至各个可变缓存块,初始化设备列表得到设备交互协议帧的实际内容数据大小以及各个可变收发缓存块的大小,把每个设备交互协议帧的大小与边缘设备中的每个缓冲块的容量大小的比值作为该交互对象的权值,当缓冲区的容量小于交互协议帧对象的大小时,表示该缓存块不能缓存对应数据;设置每个缓冲区的初始状态为可存储;
步骤S2:每一次分配完成后,检查每个缓存块的状态,如果当前的每个缓冲块都已经被占用,则计算新一轮的调度时间片;如果还有空闲块,则直接执行步骤S3;其中,调度时间片为时间维度上两次连续分配之间的时间,其包括:
(1)计算每个终端设备通信数据的协议帧的大小;
(2)根据上述每个终端设备协议帧的大小计算边缘设备与终端设备之间的通信时间;
(3)选择最小完成交互的设备的通信时间作为本轮调度时间片的大小,没有完成交互的设备,通信的总时间减去调度时间片的大小作为剩余的通信时间计入下一轮的时间片计算中;
步骤S3:检查所有连接到边缘设备的设备交互协议帧是否都已缓存在收发缓存区,对于每一个没有被分配的对象o,设置U={o};
步骤S4:把每个对象的最大权值对应的缓存块设置成该对象最佳存储缓存块;步骤S3中U集合的每个对象已经被分配的缓存块集合设置为T,对于步骤S3中的数据对象的最佳存储缓存块或者是已经分配的缓存块设置成N(U);如果N(U)≠T,那么对于步骤S3中的数据对象集合中的某个未被分配的对象,必然存在新的缓存块(∈N(U)-T)是该对象的最佳存储位置选择;否则,重新计算权值;
步骤S5:如果步骤S4中得出的最佳缓存块没有被其他对象占用,则直接把该缓存块分配给对应的数据对象,重复步骤S2;否则,表示该对象已经被分配给了其他对象,则把其他对象加到集合U中,并且把该缓存块加到集合N(U)中,跳到步骤S4。
与现有技术相比,本发明提出了一种多对象多缓存区块的系统架构,考虑交互数据帧的大小,以支持将多个数据对象并行传递到多个可变长度缓存区块,对内存中收发缓存区资源进行优化匹配,克服了固定区块分配带来的空间浪费问题,使存储空间利用率最大化,同时使通信处理时间最小。
附图说明
图1为存储优化系统框架以及竞争分配示意图;
图2为多对象多缓存块的存储优化模型示意图;
图3为内存优化方法执行流程框图;
具体实施方式
本发明公开了一种用于工业物联网边缘设备的内存优化方法,本实施例中以ePLC作为边缘设备,如图1-3所示,具体包括以下步骤:
步骤S0、缓存终端设备与边缘设备的交互协议帧到收发缓存区。交互协议的大小取决于协议的复杂性和通信的数据量的大小。例如,而电源使用YD/T1362协议。根据统计,常见的电表、门禁数据在交互时用ModBus协议与边缘设备节点通信,交互协议帧的大小在128B之内,梯级电池组的数据一般在128B和512B之间,电源数据使用的使用YD/T1362协议较复杂,传输的最大数据包长度在512B到1KB之间,所以在本实施例中,我们设置把缓冲块分割成3块,大小为128B,512B和1024B,分别适合小型,中型和大型通讯数据包的大小。
步骤S1、初始化设备列表得到设备交互协议帧的实际内容数据大小以及各个可变收发缓冲块的大小,把每个设备协议帧数据对象的大小与ePLC中的每个缓存块的容量大小的比值作为该数据对象的权值,当缓冲区的容量小于协议帧对象的大小时,表示该缓存块不能缓冲对应数据。设置每个缓存块的初始状态为空闲态。
步骤S2、时间维度上两次连续分配之间的时间称为调度时间片。每一次分配完成后,检查每个缓存块的状态,如果当前的每个缓存块都已经被占用,则计算新一轮的调度时间片。如果还有空闲块,则直接执行步骤S3。
在缓存交互协议帧的过程中,不仅要考虑可变缓存区块的大小,还要考虑用于回收缓存区块的调度时间片的大小。当每个缓存区块都被占用时,在新一轮调度我们采用缓存区块重用来存储更多数据。如果选择的调度时间片太小而没有时间释放缓存块,则新一轮调度可能会进入一个空循环。相反,如果时间片太大,则未分配存储空间的对象必须等待更长的时间。换句话说,时间片的数值越大,通信效率越低。为了提高通信效率,需要在最短的有效时间增量内回收缓冲区块,并使通信对象有第二次与缓存区匹配的机会。在一段时间内,一旦有对象和缓冲区之间的通信交换完成,就可以释放占用的缓冲区,然后将其重新分配给另一个对象。计算过程包括以下几个步骤:
(1)计算每个终端设备通信数据的协议帧的大小;
(2)根据上述每个终端设备协议帧的大小计算边缘设备与终端设备之间的通信时间;
(3)选择最小完成交互的设备的通信时间作为本轮调度时间片的大小,没有完成交互的设备,通信的总时间减去调度时间片的大小作为剩余的通信时间计入下一轮的时间片计算中。
步骤S3、检查所有连接到ePLC的设备协议帧是否都已缓存在收发缓冲区,选中当前一个没有被缓存的对象o,设置为U={o},跳到步骤S4执行。
步骤S4、把每个对象的最大权值对应的缓冲块设置成该对象最佳存储缓冲块,也就是两者的容量大小越接近,空间的使用率越大,最应该被优先选择。
步骤S3设置的U中的对象已经被分配的缓冲块集合设置为T,对于步骤S3中的数据对象的最佳存储缓冲块或者是已经分配的缓冲块设置成U。如果N(U)≠T,那么对于步骤S3中的数据对象集合中的某个未被分配的对象,必然存在新的缓存块(∈N(U)-T)是该对象的最佳缓冲选择。否则,重新计算权值。
步骤S5、如果步骤S4中得出的最佳缓冲块没有被其他对象占用,则直接把该缓存块分配给对应的数据对象,重复步骤S2;否则,表示该对象已经被分配给了其他对象,则把其他对象加到集合U中,并且把该缓冲块也加到集合N(U)中,跳到步骤S4。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种用于工业物联网边缘设备的内存优化方法,其特征在于,包括以下步骤:
步骤S1:在边缘设备内存中开辟的收发缓存区并分成若干个可变大小的缓存块;协议帧数据至各个可变缓存块,初始化设备列表得到设备交互协议帧的实际内容数据大小以及各个可变收发缓存块的大小,把每个设备交互协议帧的大小与边缘设备中的每个缓冲块的容量大小的比值作为交互对象的权值,当缓冲区的容量小于交互协议帧对象的大小时,表示该缓存块不能缓存对应数据;设置每个缓冲区的初始状态为可存储;
步骤S2:每一次分配完成后,检查每个缓存块的状态,如果当前的每个缓冲块都已经被占用,则计算新一轮的调度时间片;如果还有空闲块,则直接执行步骤S3;其中,调度时间片为时间维度上两次连续分配之间的时间,其包括:
(1)计算每个终端设备通信数据的协议帧的大小;
(2)根据上述每个终端设备协议帧的大小计算边缘设备与终端设备之间的通信时间;
(3)选择最小完成交互的设备的通信时间作为本轮调度时间片的大小,没有完成交互的设备,通信的总时间减去调度时间片的大小作为剩余的通信时间计入下一轮的时间片计算中;
步骤S3:检查所有连接到边缘设备的设备交互协议帧是否都已缓存在收发缓存区,对于每一个没有被分配的对象o,设置U={o};
步骤S4:把每个对象的最大权值对应的缓存块设置成该对象最佳存储缓存块;步骤S3中U集合的每个对象已经被分配的缓存块集合设置为T,对于步骤S3中的数据对象的最佳存储缓存块或者是已经分配的缓存块设置成N(U);如果N(U)≠T,那么对于步骤S3中的数据对象集合中的某个未被分配的对象,必然存在新的缓存块∈(N(U)-T)是该对象的最佳存储位置选择;否则,重新计算权值;
步骤S5:如果步骤S4中得出的最佳缓存块没有被其他对象占用,则直接把该缓存块分配给对应的数据对象,重复步骤S2;否则,表示该对象已经被分配给了其他对象,则把其他对象加到集合U中,并且把该缓存块加到集合N(U)中,跳到步骤S4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011642565.1A CN112698950B (zh) | 2020-12-31 | 2020-12-31 | 一种用于工业物联网边缘设备的内存优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011642565.1A CN112698950B (zh) | 2020-12-31 | 2020-12-31 | 一种用于工业物联网边缘设备的内存优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112698950A CN112698950A (zh) | 2021-04-23 |
CN112698950B true CN112698950B (zh) | 2024-04-05 |
Family
ID=75514172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011642565.1A Active CN112698950B (zh) | 2020-12-31 | 2020-12-31 | 一种用于工业物联网边缘设备的内存优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112698950B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391032A (zh) * | 2022-08-15 | 2022-11-25 | 上海慧程工程技术服务有限公司 | 一种用于工业物联网边缘设备的内存优化方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933692A (zh) * | 2019-12-02 | 2020-03-27 | 山东大学 | 一种基于边缘计算框架的优化缓存系统及其应用 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8854680B2 (en) * | 2008-09-11 | 2014-10-07 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for optimal memory allocation units |
-
2020
- 2020-12-31 CN CN202011642565.1A patent/CN112698950B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933692A (zh) * | 2019-12-02 | 2020-03-27 | 山东大学 | 一种基于边缘计算框架的优化缓存系统及其应用 |
Non-Patent Citations (2)
Title |
---|
Performance analysis of edge-PLCs enabled industrial Internet of things;Yanjun Peng 等;Peer-to-PeerNetworkingandApplications;20200619;1830-1838 * |
移动边缘网络中计算迁移与内容缓存研究综述;张开元 等;软件学报;20190831;第30卷(第8期);2491-2516 * |
Also Published As
Publication number | Publication date |
---|---|
CN112698950A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200192715A1 (en) | Workload scheduler for memory allocation | |
CN101267361B (zh) | 一种基于零拷贝技术的高速网络数据包捕获方法 | |
US6526451B2 (en) | Method and network device for creating circular queue structures in shared memory | |
CN101841545B (zh) | 一种tcp流重组拼包方法和装置 | |
US6327615B1 (en) | Method and system of controlling transfer of data by updating descriptors in descriptor rings | |
US20040109369A1 (en) | Scratchpad memory | |
CN100505676C (zh) | 智能多缓冲区管理的集中调度控制器和动态调度方法 | |
CN103152393A (zh) | 一种云计算的计费方法和计费系统 | |
CN104133784B (zh) | 一种报文缓存管理方法与装置 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
CN110109852A (zh) | 硬件实现tcp_ip协议的系统及方法 | |
CN112948149A (zh) | 一种远端内存共享方法、装置、电子设备及存储介质 | |
CN101150486A (zh) | 一种零拷贝缓冲区队列网络数据接收的管理方法 | |
CN101707565A (zh) | 零拷贝网络报文发送、接收方法和装置 | |
CN112698950B (zh) | 一种用于工业物联网边缘设备的内存优化方法 | |
CN103049240A (zh) | Pci-e设备及其接收数据重排序方法 | |
CN102662908A (zh) | 对片上多核系统中的高速接口进行控制的方法及系统 | |
CN101196928A (zh) | 一种内容搜索方法、系统以及引擎分发单元 | |
CN113590512A (zh) | 可直连外设设备的自启动dma装置及应用 | |
US5923852A (en) | Method and system for fast data transmissions in a processing system utilizing interrupts | |
CN100539538C (zh) | 具有链表处理器的存储器管理系统 | |
US20080225858A1 (en) | Data transferring apparatus and information processing system | |
CN104317747A (zh) | 一种网格接收机的数据缓存与发送装置及方法 | |
CN116383240A (zh) | 基于fpga多数据库加速查询方法、装置、设备及介质 | |
CN115756296A (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 |