CN109298953A - 一种共享内存数据读写的装置和方法 - Google Patents

一种共享内存数据读写的装置和方法 Download PDF

Info

Publication number
CN109298953A
CN109298953A CN201810993677.8A CN201810993677A CN109298953A CN 109298953 A CN109298953 A CN 109298953A CN 201810993677 A CN201810993677 A CN 201810993677A CN 109298953 A CN109298953 A CN 109298953A
Authority
CN
China
Prior art keywords
read
write
time
password
data
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
Application number
CN201810993677.8A
Other languages
English (en)
Other versions
CN109298953B (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.)
Beijing Research Institute of Mechanical and Electrical Technology
Original Assignee
Beijing Research Institute of Mechanical and Electrical Technology
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 Beijing Research Institute of Mechanical and Electrical Technology filed Critical Beijing Research Institute of Mechanical and Electrical Technology
Priority to CN201810993677.8A priority Critical patent/CN109298953B/zh
Publication of CN109298953A publication Critical patent/CN109298953A/zh
Application granted granted Critical
Publication of CN109298953B publication Critical patent/CN109298953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/325Display of status information by lamps or LED's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种能够优化共享内存数据交互读写的装置和方法,首先对共享内存操作步骤进行时间测试,然后确定写入端设备数据更新的写入周期,再进行数据的读写,若申请口令成功,则进行读写;若申请口令失败,则在合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请口令成功,进行读写操作。本发明的装置和方法能够解决现有技术中共享内存在读写数据时,所操作的端口正有数据在读写而造成的操作不成功的技术问题。

Description

一种共享内存数据读写的装置和方法
技术领域
本发明涉及数据交互可靠性技术领域,尤其涉及一种计算机数据读取的装置和方法。
背景技术
当系统内多个设备间交互采用共享内存访问或共享双口操作,其共享数据操作设计过程为:A设备端申请信号灯n(硬指令信号),申请成功则更新共享区数据,置数据更新标志、释放信号灯;申请失败立即释放信号灯并判定数据更新失败。B设备端申请信号灯n,申请成功则判断数据更新标志,标志有效则获取数据、清除数据更新标志,信号灯申请失败或无数据更新标志均判定获取数据失败。
系统设备间共享内存数据交互采用上述方式,当A、B两端操作冲突时,如A端申请信号灯时B端占用信号灯,则导致A端本次数据更新失败;同理,B端申请信号灯时被A端暂用,B端无法获取数据。
若未进行合理性设计,当读写连续多周期冲突时,导致关键信息多周期更新异常,可能会造成试验失败。因此需要设计合理的共享内存数据通讯方法,以保证数据写入方能够及时更新数据,数据读取方能够及时获取数据,保证内存数据通讯正常,从而保证试验中设备间数据通讯正常。
发明内容
本发明提供了一种能够优化共享内存数据交互读写的装置和方法,能够解决现有技术中共享内存在读写数据时,所操作的端口正有数据在读写而造成的操作不成功的技术问题。
本发明提供了一种共享内存数据交互读写的装置,包括测试部分,存储部分和读写部分。
所述的测试部分测量口令申请和释放、读写部分读写数据所用的时间;所述的存储部分为划分了区域的共享内存,且每个区域只允许一个端口写入,另外的端口读取;
所述的读写部分为共享内存的使用端,通过读写部分对共享内存进行读取和写入的操作。对共享内存读取时,若申请口令成功且数据更新标志有效,则获取最新数据,清除数据更新标志并释放口令;若申请口令失败,释放口令,并在最大读出合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请信号灯成功,进行读取操作;对共享内存写入时,若申请口令成功则写入最新数据,设置数据更新标志并释放信号灯;若申请口令失败,释放口令,并在最大写入合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请口令成功,进行读写操作。
本发明提供了一种共享内存数据交互读写的方法,其步骤如下:
1、对共享内存操作步骤进行时间测试,测试内容包括口令申请用时、口令释放用时、读写部分读取数据用时和读写部分写入数据用时。
2、计算最大读出合理时间和最大写入合理时间。
3、确定写入端设备数据更新的写入周期。要求写入端设备数据更新写入周期大于读取端内存数据获取最长时间并扩展10%~20%的时间余量之和。
4、对共享内存读取时,若申请口令成功且数据更新标志有效,则获取最新数据,清除数据更新标志并释放口令;若申请口令失败,释放口令,并在最大读出合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请信号灯成功,进行读取操作。
5、对共享内存写入时,若申请口令成功则写入最新数据,设置数据更新标志并释放信号灯;若申请口令失败,释放口令,并在最大写入合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请口令成功,进行读写操作。
所述的最大读出合理时间为写入端申请口令时间加上数据读取时间及写入端释放口令时间之和并扩展时间余量。
所述的最大写入合理时间为读出端申请口令时间加上数据写入时间及读出端释放口令时间之和并扩展时间余量。
所述的扩展时间余量设计范围需满足是最大读出合理时间或最大写入合理时间的10%~30%。
所述的固定时间间隔优选为读取端数据获取最长时间的五分之一至三分之一,避免频繁操作访问硬件信号灯。
所述的读取端数据获取最长时间,即在读取端等待查询数据是否更新过程中,在最大读取数据合理时间内最后一次申请口令时写入端进行了数据更新,则此种情况下读取端读取数据所用的时间即为读取端数据获取最长时间。
本发明提供了一种优化共享内存数据读写过程的装置和方法,应用本发明的技术方案,可以取得的有益效果如下:
1、本发明的装置和方法通过在合理时间内循环访问的方法,确保在数据写入过程中数据读取端口能够在本周期获取到更新数据;在数据读取过程中数据更新端口在本周能够写入更新数据,保证数据的读取和更新不会出现错误。
2、本发明通过设定写入端设备数据更新写入周期,避免数据更新周期过频繁、数据读取端口陷入死循环,保证每个周期数据写入时能够成功写入、数据读取时能够成功获取数据。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了数据写入流程;
图2示出了数据读取流程;
图3示出了优化设计后共享内存操作冲突执行过程;
图4示出了数据存储单元读写示例。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1、2、3、4所示,通过具体实例对共享内存数据交互读写的设计方法和装置进行说明。
1、对数据存储部分定义。共享内存同一数据空间仅允许一端写入数据,避免两端同时写入出现写入变量异常。如图4,共享内存1区设计为A端口写入数据,B端口读取A端口写入共享1区的数据;共享内存2区设计为B端口写入数据,A端口读取B端口写入共享2区的数据。
2、测试部分对操作时间进行测试
口令采用信号灯的形式,也可以选择开关等别的形式。测试部分对A、B端口均进行信号灯申请、内存读写速率测试,测试结果如下:
3、计算最大合理时间
A端口、B端口对共享内存设计实际要求为,A端口向共享数据1区写入50个字节长度数据,B端口读取;B端口向共享数据2区写入20个字节长度数据,A端口读取。
1)A端口最大写入合理时间由B端口读取50个字节用时及扩展1.2倍确定,为:
timeA_write_maxwait=(tB1+tB2+tBread*50/100)*1.2
2)B端口最大读出合理时间由A端口实际写入50个字节数据用时及扩展1.2倍确定,为:
timeB_read_maxwait=(tA1+tA2+tAwrite*50/100)*1.2
3)A端口最大读出合理时间由B端口实际写入20个字节数据用时及扩展1.2倍确定,为:
time_A_readmax=(tB1+tB2+tBwrite*20/100)*1.2*1.2
4)B端口最大写入合理时间由A端口读取20个字节用时及扩展1.2倍确定,为:
timeB_write_maxwait=(tA1+tA2+tAread*20/100)*1.2
4、读写部分数据写入设计
当A端准备写入内存数据时,若申请信号灯成功,为保证数据更新的及时性,直接进行数据更新并置数据更新标志,释放信号灯。若申请信号灯失败,立即释放信号灯,在最大写入合理时间范围内,以20us间隔循环执行申请信号灯、释放信号灯过程。在最大写入合理时间范围内,能够确定B端即使正在执行共享区数据读取操作过程,也能够保证A端数据写入成功。
5、读写部分数据读取设计
当B端予获取共享内存数据时,若申请信号灯成功且数据更新标志有效,则获取最新数据,清除数据更新标志并释放信号灯。若申请信号灯失败或数据更新标志无效则立即释放信号灯,在合理最大时间范围内,以20us间隔循环执行申请信号灯、释放信号灯过程,信号灯申请成功且数据更新标志有效则读取更新的数据;申请信号灯成功但数据更新标志无效则立即释放信号灯,在最大读出合理时间范围内,以20us固定频率循环执行申请信号灯、释放信号灯过程。在最大读出合理时间范围内,能够确定A端即使正在执行共享区数据写入操作过程,也能够保证B端数据读取成功。
7、设计写入最大周期
若B端设备读取A端设备写入数据时,A端尚未更新本周期数据,则B端等待最长数据更新时间为tB_read_maxwait,在B端20us周期等待查询数据是否更新过程中,最后一个查询数据更新中A端进行了数据更新,则B端最长获取到更新数据用时:tread_max=(tA1+tA2+tAwrite*50/100)*2.2。要求A端设备数据更新写入周期大于B端内存数据获取最长时间tread_max并扩展15%的时间余量之和,即tB_read_maxwait=(1+0.15)tread_max=1.15tread_max
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种共享内存数据交互读写的装置,包括测试部分,存储部分和读写部分;所述的测试部分所述的测试部分测量口令申请和释放、读写部分读写数据所用的时间,所述的读写部分为共享内存的使用端,通过读写部分对共享内存进行读取和写入的操作,其特征在于:所述的存储部分为划分了区域的共享内存,且每个区域只允许一个端口写入,另一端口读取;所述的读写部分为共享内存的使用端,通过读写部分对共享内存进行读取和写入的操作;对共享内存读取时,若申请口令成功且数据更新标志有效,则获取最新数据,清除数据更新标志并释放口令;若申请口令失败,释放口令,并在最大读出合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请信号灯成功,进行读取操作;对共享内存写入时,若申请口令成功则写入最新数据,设置数据更新标志并释放信号灯;若申请口令失败,释放口令,并在最大写入合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请口令成功,进行读写操作。
2.根据权利要求1所述的共享内存数据交互读写的装置,其特征在于:所述的最大读出合理时间为写入端申请口令时间加上数据读取时间及写入端释放口令时间之和并扩展时间余量。
3.根据权利要求1所述的共享内存数据交互读写的装置,其特征在于:所述的最大写入合理时间为读出端申请口令时间加上数据写入时间及读出端释放口令时间之和并扩展时间余量。
4.根据权利要求1所述的共享内存数据交互读写的装置,其特征在于:所述的扩展时间余量设计范围需满足是最大读出合理时间或最大写入合理时间的10%~30%。
5.根据权利要求1所述的共享内存数据交互读写的装置,其特征在于:所述的固定时间间隔优选为读取端读取最长数据所需时间的五分之一至三分之一。
6.一种共享内存数据交互读写的方法,其特征在于:通过以下步骤完成,
1)对共享内存操作步骤进行时间测试,测试内容包括口令申请用时、口令释放用时、读写部分读取数据用时和读写部分写入数据用时;
2)计算最大读出合理时间和最大写入合理时间;
3)确定写入端设备数据更新的写入周期。要求写入端设备数据更新写入周期大于读取端内存数据获取最长时间并扩展10%~20%的时间余量之积;
4)对共享内存读取时,若申请口令成功且数据更新标志有效,则获取最新数据,清除数据更新标志并释放口令;若申请口令失败,释放口令,并在最大读出合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请信号灯成功,进行读取操作;
5)对共享内存写入时,若申请口令成功则写入最新数据,设置数据更新标志并释放信号灯;若申请口令失败,释放口令,并在最大写入合理时间内以固定时间间隔循环执行申请和释放口令的过程,直到申请口令成功,进行读写操作。
7.根据权利要求6所述的共享内存数据交互读写的方法,其特征在于:所述的读取端数据获取最长时间,即在读取端等待查询数据是否更新过程中,在最大合理时间内若最后一次申请口令时写入端进行了数据更新,此时读取端读取数据所用的时间。
8.根据权利要求6所述的共享内存数据交互读写的方法,其特征在于:所述的读出合理时间为写入端申请口令时间加上共享内存数据读取时间及写入端释放口令时间之和再扩展时间余量。
9.根据权利要求6所述的共享内存数据交互读写的方法,其特征在于:所述的写入合理时间为读出端申请口令时间加上共享内存数据写入时间及读出端释放口令时间之和再扩展时间余量。
10.根据权利要求6所述的共享内存数据交互读写的方法,其特征在于:所述的固定时间间隔优选为读取端读取最长数据所需时间的五分之一至三分之一。
CN201810993677.8A 2018-08-29 2018-08-29 一种共享内存数据读写的装置和方法 Active CN109298953B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810993677.8A CN109298953B (zh) 2018-08-29 2018-08-29 一种共享内存数据读写的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810993677.8A CN109298953B (zh) 2018-08-29 2018-08-29 一种共享内存数据读写的装置和方法

Publications (2)

Publication Number Publication Date
CN109298953A true CN109298953A (zh) 2019-02-01
CN109298953B CN109298953B (zh) 2021-12-10

Family

ID=65165715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810993677.8A Active CN109298953B (zh) 2018-08-29 2018-08-29 一种共享内存数据读写的装置和方法

Country Status (1)

Country Link
CN (1) CN109298953B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459691A (zh) * 2020-04-13 2020-07-28 中国人民银行清算总中心 共享内存的读写方法及装置
CN111813734A (zh) * 2020-06-15 2020-10-23 上海航天计算机技术研究所 无消息间隔限制的1553b总线通信方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501277A (zh) * 2002-11-19 2004-06-02 宝山钢铁股份有限公司 总线式进程间通信方法
US7188344B1 (en) * 1999-12-21 2007-03-06 Unisys Corporation Architecture for a read/write thread lock
US7472237B1 (en) * 2002-10-28 2008-12-30 Netapp, Inc. Apparatus to offload and accelerate pico code processing running in a storage processor
CN101957779A (zh) * 2010-09-16 2011-01-26 深圳天源迪科信息技术股份有限公司 定时器的管理方法
CN101986649A (zh) * 2010-11-29 2011-03-16 深圳天源迪科信息技术股份有限公司 应用于电信行业计费系统的共享数据中心
CN102043590A (zh) * 2010-11-26 2011-05-04 北京北方烽火科技有限公司 一种dpram访问控制系统
US8769546B2 (en) * 2010-01-07 2014-07-01 Hewlett-Packard Development Company, L.P. Busy-wait time for threads

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188344B1 (en) * 1999-12-21 2007-03-06 Unisys Corporation Architecture for a read/write thread lock
US7472237B1 (en) * 2002-10-28 2008-12-30 Netapp, Inc. Apparatus to offload and accelerate pico code processing running in a storage processor
CN1501277A (zh) * 2002-11-19 2004-06-02 宝山钢铁股份有限公司 总线式进程间通信方法
US8769546B2 (en) * 2010-01-07 2014-07-01 Hewlett-Packard Development Company, L.P. Busy-wait time for threads
CN101957779A (zh) * 2010-09-16 2011-01-26 深圳天源迪科信息技术股份有限公司 定时器的管理方法
CN102043590A (zh) * 2010-11-26 2011-05-04 北京北方烽火科技有限公司 一种dpram访问控制系统
CN101986649A (zh) * 2010-11-29 2011-03-16 深圳天源迪科信息技术股份有限公司 应用于电信行业计费系统的共享数据中心

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
OCTAVIAN PURDILA,LUCIAN ADRIAN GRIJINCU,NICOLAE TAPUS: "LKL: The Linux Kernel Library", 《IEEE XPLORE》 *
毛德梅,汪明珠: "μC_OS_Ⅱ中任务优先级反转问题研究", 《安徽理工大学学报(自然科学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459691A (zh) * 2020-04-13 2020-07-28 中国人民银行清算总中心 共享内存的读写方法及装置
CN111813734A (zh) * 2020-06-15 2020-10-23 上海航天计算机技术研究所 无消息间隔限制的1553b总线通信方法和系统
CN111813734B (zh) * 2020-06-15 2022-11-01 上海航天计算机技术研究所 无消息间隔限制的1553b总线通信方法和系统

Also Published As

Publication number Publication date
CN109298953B (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
EP3264275B1 (en) Method, apparatus, and controller for managing storage array
CN109783017B (zh) 一种存储设备坏块的处理方法、装置及存储设备
CN103440205B (zh) 一种机顶盒数据存储方法及装置
CN107943510A (zh) 分布式存储系统升级方法、系统、装置及可读存储介质
CN109947596A (zh) Pcie设备故障系统宕机处理方法、装置及相关组件
US20040210731A1 (en) Systems and methods for striped storage migration
CN103064635B (zh) 分布式存储方法和分布式存储装置
CN109298953A (zh) 一种共享内存数据读写的装置和方法
BR112016005368B1 (pt) Sistema de armazenamento flash universal, método de controle de um sistema de memória e sistema de memória do controlador multimídia embutido
TWI519953B (zh) 資料儲存裝置以及快閃記憶體控制方法
US20090007136A1 (en) Time management control method for computer system, and computer system
CN105137227A (zh) 智能卡掉电保护的测试装置及方法
CN110083379A (zh) 一种服务器部件升级方法及相关装置
US9116830B2 (en) Method to extend data retention for flash based storage in a real time device processed on generic semiconductor technology
CN109992287A (zh) 一种固件升级方法、系统、设备及介质
CN108182278A (zh) 一种fru信息维护方法及相关装置
CN104714757A (zh) 更新装置和电子设备
CN106502718A (zh) 程序的升级方法和装置、控制器
CN108255506A (zh) 一种bmc的数据更新方法、装置、设备及可读存储介质
CN105528180B (zh) 一种数据存储方法、装置及设备
CN107066361A (zh) 一种利用bmc禁用坏损内存的方法和装置
CN110046065A (zh) 一种存储阵列重建方法、装置、设备及存储介质
CN108762989A (zh) 固态硬盘的数据存储方法、装置、设备及可读存储介质
CN109062808A (zh) 一种ssd开发性能的测试方法、装置及相关设备
CN107704338A (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