高速共享内存数据收发系统技术方案

技术编号:21453680 阅读:28 留言:0更新日期:2019-06-26 04:42
本发明专利技术提出一种高速共享内存数据收发系统,旨在提供更加高效的共享内存收发控制机制。本发明专利技术通过下述技术方案予以实现:发送逻辑控制单元内的配置信息注册器首先调用地址转换器完成共享内存地址到本地地址的转换,然后将数据发送者录入的共享内存信息存入数据发送配置信息表;数据发送控制器将数据发送者发送的数据写入接收逻辑控制单元内的共享内存区域的正确地址中,并向数据接收控制器发送中断信号;数据发送控制器根据共享内存区域的状态向数据发送者发送流控反馈信号,并调用环形缓冲区发送复位控制器实现发送端初始上电时的复位操作;通过配置命令解析器接收管理端的系统数据收发配置管理器下发的配置命令,实现对内部信息的远程配置操作。

【技术实现步骤摘要】
高速共享内存数据收发系统
本专利技术涉及一种基于共享内存的高速且支持灵活配置的数据交互收发系统,主要应用于嵌入式系统、通信系统以及航空机载设备中以共享内存区域为交互基础的高速数据通信中间件的设计与开发领域。
技术介绍
进程间的数据交换和共享是一种非常重要和实用的技术。进程间通讯的方式有多种,常用的有共享内存、命名管道和匿名管道、发送消息等,另外还可以通过socket接口等间接实现进程间的数据通讯任务。以上这几种方法各有优缺点,具体到在进程间进行大数据量数据的快速交换问题上,由于管道和socket套接字的使用需要有网卡的支持,不适用于跨节点以及缺少以太网的应用环境,因此可以不予考虑。这样,可供选择的通讯方式主要就是共享内存和发送消息两种。对于消息传输方式,接收方程序在消息的响应函数中通过随消息传递的参数完成对数据的接收,主要有阻塞式和非阻塞式两种机制。阻塞式的消息发送方式在发出消息后不是马上返回,而是在接收方的消息响应函数处理完之后才能返回,并能够得到返回结果,在此期间发送方程序将被阻塞。而非阻塞式在发出消息后马上返回,其后语句能够被立即执行,但是无法获取消息的执行结果。在消息机制中,由于涉及多次数据拷贝,数据传输效率较低,因此并不适合交换数据量较大的应用场景,另外当数据传输过于频繁时还有可能导致数据的丢失。相比之下,共享内存有着明显的优势。共享内存是一种在进程之间共享和传递数据的高效解决方案,可以以较小的开销获取较高的性能。不同进程之间共享的内存区域通常是允许这些进程访问的同一段物理内存,共享它的进程可以将这段共享内存区域连接到自己的地址空间中,然后对共享内存区域进行数据读写操作。如果某个进程向共享内存区域写入数据,所做的改动将立即影响到可以访问同一段共享内存的另一个进程。共享内存方式在收发数据的过程中只拷贝两次数据,一次将输入内容拷贝到共享内存区,另一次从共享内存区拷贝到输出文件,可以实现进程之间的高效数据传输。目前,共享内存已经成为进程间、多核间、以及跨处理器节点之间的高效数据通信方式,在嵌入式系统、通信系统、机载航电系统开发等领域广泛应用。共享内存是操作系统内的不同进程之间常用的数据通信方式,使用过程中首先由接收方进程调用操作系统提供的接口申请一块共享内存区域,然后将共享内存映射到接收方进程的地址空间中;接下来发送方进程也将共享内存地址映射到自己的地址空间中;完成共享内存地址映射后,发送方进程与接收方进程可以像操作本地内存地址一样利用该区域进行信息交换。由于没有同步机制,在通过共享内存进行数据收发时,需要参与通信的进程双方协商控制在合适的时机对共享内存区域进行读写。共享内存也是实现核间通信的一种高速数据通信方式。对于在通信系统以及机载航电设备中广泛使用的数字信号处理器(DigitalSignalProcessor,DSP),通常需在多核之间进行高速数据通信,并在多核内部实现并行高速信号数据处理。通过共享内存方式,在多个核之间可以访问同一块内存,同时借助中断或核间通信寄存器实现核间共享数据读取操作的同步控制。TMS320C6678是目前在通信和航空机载领域广泛应用的一款高性能8核处理器,通过合理划分共享内存区域,可以实现核间的高速数据共享与传输,例如通过主核(0核)创建共享内存,并将数据写入内存,然后通过核间消息通信将内存地址发送给从核;由从核(1到7核)接收主核的通知,读取各自对应的内存地址中的数据,并完成数据的高速并行处理。此外,共享内存也是实现多处理器之间高速数据通信的有效手段。外部存储器接口(ExternalMemoryInterface,EMIF)是DSP器件上的一种常用接口,可以实现DSP与不同类型的外部存储器(SRAM、Flash、ROM等)的连接。另外,通过EMIF还可以实现DSP与现场可编程门阵列(Field-ProgrammableGateArray,FPGA)处理器的无缝连接,使得DSP可以和FPGA很方便地进行大量数据传输,从而使FPGA平台充当高速数据协处理器或高速数据传输接口的角色。另外借助RapidIO高速互联总线,还可以实现跨芯片、跨系统的高速共享内存数据通信。RapidIO是一种高性能、低引脚数、基于数据包交换的互连体系结构,是为满足高性能嵌入式系统需求而设计的一种开放式互连技术标准,主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,还支持嵌入式设备的背板连接。RapidIO直接输入输出(DirectInput/Output,DIO)模式通过外设通信总线可以实现跨处理器的高速共享内存通信,支持在PPC、DSP和FPGA三种芯片之间进行大规模的数据传输,有效的应对了高性能嵌入式系统在可靠性和互联性方面的挑战。目前世界主流的嵌入式厂商都已经支持RapidIO技术。共享内存使得进程间的数据交互以直接访问内存的方式实现,具有简单方便的特点,已经成为进程间、核间通信、芯片间、以及系统之间主要的高速数据通信方式。然而目前的相关方案在实现高速共享内存的数据收发过程中还存在诸多不足,例如:1、缺少灵活的共享内存配置机制。目前在创建共享内存空间时只是简单的明确共享内存区域的大小,缺少更加灵活和规范的共享内存区域配置机制,例如交互的数据包大小、是否需要缓冲以及缓冲包数量等,同时也缺少基于这些配置信息的共享内存交互控制。另外,对于跨处理器的共享内存通信,数据收发双方也缺乏支持接收远端配置的能力。2、缺少共享内存同步控制机制。目前的共享内存机制主要以传输数据为目的,在完成共享内存区域申请以及地址映射后,缺少对于共享内存区域读写的同步互斥机制。开发人员在使用共享内存进行进程间通信时,往往还需要附加额外的数据结构或借助其他的手段,如信号量、互斥锁和读写锁等来实现进程间对共享内存区域的读写同步。3、缺少更加高效的共享内存收发控制机制。目前基于共享内存的数据通信方法并没有对共享内存区域进一步划分,而是作为一个完整区块进行管理,发送方写入后需要等接收方读取数据后才能再次写入,数据的发送效率受接收方读取速度及处理能力的影响,因此需要一种更细粒度的管理机制,来实现更加高速的共享内存数据收发。
技术实现思路
本专利技术的目的针对上述现有技术存在的不足之处,提供一种综合考虑共享内存中数据收发双方的同步机制,支持对基于共享内存通信机制进行灵活配置,并能够通过对共享内存区域进行细粒度管理来实现数据缓冲并支持高效数据收发传输的高速共享内存数据收发系统,以克服现有基于共享内存的数据收发方法缺少灵活的共享内存配置机制,缺少共享内存同步控制机制,缺少更加高效的共享内存收发控制机制的问题。本专利技术的上述目的可以通过以下措施来达到,一种高速共享内存数据收发系统,包括:发送端的数据发送者和实现其数据发送控制的发送逻辑控制单元、接收端的数据接收者和实现其数据接收控制的接收逻辑控制单元,以及对发送逻辑控制单元和接收逻辑单元进行远程配置的管理端的系统数据收发配置管理器,其特征在于:接收逻辑控制单元内的共享内存区域为实现发送端和接收端数据收发交互的共享物理内存区域;共享内存管理器根据数据接收者的申请信息实现对共享内存区域的划分与管理;接收逻辑控制单元内的数据接收控制器实现共享内存区域内收发数据是否有效的判断,并向数据接本文档来自技高网
...

【技术保护点】
1.一种高速共享内存数据收发系统,包括:发送端的数据发送者和实现其数据发送控制的发送逻辑控制单元、接收端的数据接收者和实现其数据接收控制的接收逻辑控制单元,以及对发送逻辑控制单元和接收逻辑单元进行远程配置的管理端的系统数据收发配置管理器,其特征在于:接收逻辑控制单元内的共享内存区域为实现发送端和接收端数据收发交互的共享物理内存区域;共享内存管理器根据数据接收者的申请信息实现对共享内存区域的划分与管理;接收逻辑控制单元内的数据接收控制器实现共享内存区域内收发数据是否有效的判断,并向数据接收者发送数据到达通知信号来告知数据接收者读取数据,同时控制数据接收者从正确的共享内存区域读取数据,数据接收控制器通过调用内部的环形缓冲区接收复位控制器完成接收端初始上电时的复位操作;发送逻辑控制单元首先调用地址转换器完成共享内存地址到本地地址的转换,同时由内部的配置信息注册器将数据发送者录入的共享内存信息存入数据发送配置信息表,然后由数据发送控制器将数据发送者发送的数据写入接收逻辑控制单元内的共享内存区域的正确地址中,并向其内部的数据接收控制器发送中断信号,通知接收端数据已到达;数据发送控制器根据共享内存区域的状态向数据发送者发送流控反馈信号,通知数据发送者进行流量控制,从而实现数据发送过程的运行控制,数据发送控制器通过调用内部的环形缓冲区发送复位控制器实现发送端初始上电时的复位操作;发送逻辑控制单元和接收逻辑控制单元内的配置命令解析器接收管理端的系统数据收发配置管理器下发的配置命令,实现对各自内部信息的远程配置操作。...

【技术特征摘要】
1.一种高速共享内存数据收发系统,包括:发送端的数据发送者和实现其数据发送控制的发送逻辑控制单元、接收端的数据接收者和实现其数据接收控制的接收逻辑控制单元,以及对发送逻辑控制单元和接收逻辑单元进行远程配置的管理端的系统数据收发配置管理器,其特征在于:接收逻辑控制单元内的共享内存区域为实现发送端和接收端数据收发交互的共享物理内存区域;共享内存管理器根据数据接收者的申请信息实现对共享内存区域的划分与管理;接收逻辑控制单元内的数据接收控制器实现共享内存区域内收发数据是否有效的判断,并向数据接收者发送数据到达通知信号来告知数据接收者读取数据,同时控制数据接收者从正确的共享内存区域读取数据,数据接收控制器通过调用内部的环形缓冲区接收复位控制器完成接收端初始上电时的复位操作;发送逻辑控制单元首先调用地址转换器完成共享内存地址到本地地址的转换,同时由内部的配置信息注册器将数据发送者录入的共享内存信息存入数据发送配置信息表,然后由数据发送控制器将数据发送者发送的数据写入接收逻辑控制单元内的共享内存区域的正确地址中,并向其内部的数据接收控制器发送中断信号,通知接收端数据已到达;数据发送控制器根据共享内存区域的状态向数据发送者发送流控反馈信号,通知数据发送者进行流量控制,从而实现数据发送过程的运行控制,数据发送控制器通过调用内部的环形缓冲区发送复位控制器实现发送端初始上电时的复位操作;发送逻辑控制单元和接收逻辑控制单元内的配置命令解析器接收管理端的系统数据收发配置管理器下发的配置命令,实现对各自内部信息的远程配置操作。2.如权利要求1所述的高速共享内存数据收发系统,其特征在于:发送逻辑控制单元包含接收来自数据发送者的发送数据,向数据发送者抛出流控反馈信号,并连接环形缓冲区发送复位控制器和数据发送配置信息表的数据发送控制器,接收数据发送者录入的共享内存信息,并连接地址转换器、配置命令解析器和数据发送配置信息表的配置信息注册器;数据发送配置信息表存储共享内存和发送配置信息;配置信息注册器将数据发送者录入的共享内存信息经过地址转换器实现远端共享内存地址到本地地址的转换后存入数据发送配置信息表;数据发送控制器通过读取数据发送配置信息表中的信息,对共享内存区域进行数据发送控制,并完成共享内存区域数据读写操作;环形缓冲区发送复位控制器在发送端上电或重启时找到正确的数据写入位置;配置命令解析器接收来自管理端的系统数据收发配置管理器下发的配置命令。3.如权利要求1所述的高速共享内存数据收发系统,其特征在于:接收逻辑控制单元包含向数据接收者发送数据到达通知信号和接收到的数据,并连接环形缓冲区接收复位控制器和共享内存区域划分配置表的数据接收控制器,接收来自数据接收者的共享内存区域申请,并连接配置命令解析器以及共享内存区域划分配置表的共享内存管理器;共享内存区域划分配置表存储共享内存区域划分及分配信息;共享内存管理器对共享内存区域进行管理,根据数据接收者的共享内存区域申请信息进行共享内存分配,并将共享内存区域划分及分配信息存入共享内存区域划分配置表;数据接收控制器通过读取共享内存区域划分配置表中的信息,对共享内存区域进行数据读取控制,并完成共享内存区域数据读写操作;环形缓冲区接收复位控制器在接收端上电或重启时找到正确的数据读取位置;配置命令解析器接收来自管理端的系统数据收发配置管理器下发的配置命令。4.如权利要求1所述的高速共享内存数据收发系统,其特征在于:数据发送控制器和数据接收控制器通过循环缓冲区的共享内存管理机制,按照用户指定的数据包大小与缓冲包数量将共享内存区域形成循环缓冲区来实现数据收发操作;数据发送控制器在完成数据发送后向数据接收控制器发送中断信号,数据发送者在发送数据时按照顺序依次向循环缓冲区的不同块内写入数据,而数据接收者则按照顺序依次读取;接收逻辑控制单元将数据发送者发送的数据存储在共享内存区域中,当数据接收者读取数据不及时,可以对数据发送者发送的数据进行缓存。5.如权利要求1所述的高速共享内存数据收发系统,其特征在于:共享内存区域由接收逻辑控制单元进行管理,由数据接收者根据应用需求或系统规划向接收逻辑控制单元内的共享内存管理器进行共享内存区域申请,并将申请得到的共享内存区域地址、事件号、以及申请时指定的数据包大小、缓冲数据包数量信息告知数据发送者,由数据发送者向发送...

【专利技术属性】
技术研发人员:李鹏孙学
申请(专利权)人:西南电子技术研究所中国电子科技集团公司第十研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1