首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 系统软件 / 操作系统 / 内核 / 一种分布式实时存储装置及其数据传输方法

一种分布式实时存储装置及其数据传输方法

阅读:2发布:2020-08-05

专利汇可以提供一种分布式实时存储装置及其数据传输方法专利检索,专利查询,专利分析的服务。并且一种分布式实时存储装置,其组成部分包括一颗桥接片上系统(SOC)芯片和一 块 或者多块固态 硬盘 ,可以作为一个实时存储设备单独使用,也可以采用多个分布式实时存储装置连接一个中心存储控制系统,构成一个分布式并行存储装置。其传输方法为:外部数据流在可编程逻辑经过三级缓存,并通过AXI 接口 以DMA的方式与ARM 多核处理器 进行通信;ARM多核处理器采用实时Linux 操作系统 ,DMA驱动位于实时Linux操作系统的 内核 态,固态硬盘接口驱动位于实时Linux操作系统用户态;ARM多核处理器上的实时Linux操作系统运行了三个线程实现数据传输。本 发明 通过上层协议完成实时大容量高带宽数据的分布式并行存储,无需开发底层的硬盘控制程序,降低了开发难度,提高了灵活性和可扩展性。,下面是一种分布式实时存储装置及其数据传输方法专利的具体信息内容。

1.一种分布式实时存储装置,其特征在于,包括以下两个组成部分:
1-a)一颗桥接片上系统(SOC)芯片,用作外部主机和固态硬盘之间的存储数据桥接;
所述外部主机,可以是上位机,所述上位机直接将实时存储装置作为独立的存储设备使用;也可以是一个分布式并行存储系统的一个中心控制设备,通过中心控制设备管理多个实时存储装置,构成一个大型的分布式实时存储系统;
所述桥接片上系统芯片,内部包括ARM多核处理器和可编程逻辑电路;所述可编程逻辑电路被配置成的部分包括:连接主控片上系统内的可编程逻辑的高速数据接口和芯片内ARM处理器的内部接口
1-b)一或者多块固态硬盘,分别连接到所述桥接片上系统,用作数据存储载体;
所述一块或者多块固态硬件,在桥接片上系统的存储器控制器的控制下存储数据;当存在多块固态硬盘时相互之间可以工作在负荷分担、主备用、多模表决模式。
2.根据权利要求1所述的分布式实时存储装置,其特征在于,所述分布式实时存储装置可以作为一个实时存储设备单独使用,也可以采用多个分布式实时存储装置连接一个中心存储控制系统,构成一个分布式并行存储装置。
3.一种分布式实时存储装置的数据传输方法,其特征在于,外部数据流在可编程逻辑经过三级缓存,并通过AXI接口以DMA的方式与ARM多核处理器进行通信;ARM多核处理器采用实时Linux操作系统,DMA驱动位于实时Linux操作系统的内核态,固态硬盘接口驱动位于实时Linux操作系统用户态;包括多级缓存、DMA传输、内核态DMA驱动设计均是为了保证实时传输大带宽的数据;
所述的三级缓存包括外部串行高速接口缓冲区、大容量大带宽DDR缓冲区和AXI接口的DMA传输缓冲区。
4.根据权利要求3所述的一种分布式实时存储装置的数据传输方法,其特征在于,ARM多核处理器上的实时Linux操作系统运行了三个线程,分别是运行于内核态的实时DMA传输线程和数据块缓冲线程,以及运行于用户态的固态硬盘读写线程。
5.根据权利要求3所述的一种分布式实时存储装置的数据传输方法,其特征在于,所述三个线程,在外部主机向固态硬盘存入数据的时候,其工作流程为:
5-a)实时DMA传输线程开启后,控制可编程逻辑将数据以DMA方式传输至ARM多核处理器上实时Linux操作系统内核态的DMA乒乓缓冲区;DMA启动之后,线程处于阻塞状态,直到DMA传输完成中断到达;然后进一步阻塞直到DDR写缓冲区准备好信号量到达;最后完成DMA乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DMA读缓冲区数据准备好信号量,并启动下一次DMA传输;
5-b)数据块缓冲线程开启后,首先向实时DMA传输线程给出DDR写缓冲区准备好的信号量;然后处于阻塞状态,等待DMA读缓冲区准备好的信号量到达;DMA读缓冲区准备好的信号量到达后,开始读取位于内核态的DMA缓冲区的数据到位于用户态的DDR乒乓缓冲区,并且循环多次读取DMA缓冲区直到把DDR写缓冲区写满;写满后,线程进入阻塞,直到固态硬盘准备好信号量到达,进而完成DDR乒乓缓冲区的乒乓切换后向固态硬盘读写线程发出DDR读缓冲区数据准备好信号量;
5-c)固态硬盘读写线程开启后,向数据块缓冲线程发送固态硬盘准备好信号量,并阻塞以等待DDR读缓冲区数据准备好信号量;信号量到达后,开始读取DDR缓冲区数据并写入固态硬盘;完成后,循环执行以完成数据存储;
5-d)线程间使用信号量通信,线程间的缓冲区切换通过阻塞方式完成;用户态的DDR缓冲区远大于内核态的DMA缓冲区,以达到降低对于用户态的实时性需求的目的。
6.根据权利要求3或5所述的一种分布式实时存储装置的数据传输方法,其特征在于,所述三个线程,在外部主机从固态硬盘读取数据的时候,其工作流程为:
6-a)固态硬盘读写线程启动后,ARM多核处理器将数据从固态硬盘读取至实时Linux操作系统用户态的DDR乒乓缓冲区;直到其中一个缓冲区写满后,线程阻塞以等待DDR读缓冲区读空的信号量;该信号量到达后,完成DDR乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DDR读缓冲区数据准备好信号量,并启动另一个DDR缓冲区数据的读取;
6-b)数据块缓冲线程启动后,首先向固态硬盘读写线程发送DDR读缓冲区读空的信号量;然后阻塞以等待DDR读缓冲区准备好的信号量;该信号量到达后,将位于实时Linux操作系统用户态的DMA乒乓缓冲区数据搬移到位于内核态的DMA乒乓缓冲区;写满DMA乒乓缓冲区中的一个的时候,线程阻塞,直到DMA传输可用信号量到达,然后完成DMA乒乓缓冲区的乒乓切换,进而向实时DMA传输线程发送DMA读缓冲区数据准备好信号量;多次完成DMA缓冲区写入直到一个DDR缓冲区的数据读取完成,然后循环读取另一个DDR缓冲区数据;
6-c)实时DMA传输线程开启后,线程阻塞以等待DMA读缓冲区数据准备好信号量;信号量到达后,启动DMA传输将DMA缓冲区数据写入可编程逻辑;DMA传输启动后,线程阻塞直到DMA传输完成中断到达,然后又再一次阻塞直到DMA读缓冲区准备好信号量到达后开启新的一次DMA传输;
6-d)线程间使用信号量通信,线程间的缓冲区切换通过阻塞方式完成;用户态的DDR缓冲区远大于内核态的DMA缓冲区,以达到降低对于用户态的实时性需求的目的。

说明书全文

一种分布式实时存储装置及其数据传输方法

技术领域

[0001] 本发明涉及运用到通信和雷达设备以及相关测试设备的高性能存储的技术领域,具体为一种分布式实时存储装置及其数据传输方法。

背景技术

[0002] 随着半导体技术和信号处理技术的发展,通信、雷达设备以及相关测试设备所采用的信号的带宽、采样率和精度越来越高,当需要记录原始的信号的时候时,需要实时存储TB级别的数据,存取带宽高达数GB/s。采用商用的服务器存储设备虽然容量和带宽能够满足要求,但是往往满足不了实时性、定制化和灵活性的要求。目前采用的方法主要包括改造商用的服务器存储设备和采用FPGA开发底层的SATA接口用于挂载多固态硬盘
[0003] 现有的方案存在以下不足:1)采用改造商用的服务器存储设备的方法,实时性和灵活性往往不能满足要求;
2)采用FPGA开发底层的SATA接口用于挂载多块固态硬盘的方法开发周期长、灵活性、可扩展性差。
[0004] 鉴于现有方案的以上不足和限制,有必要发明一种易于实现、灵活性好、扩展性强的实时存储装置,以满足通信、雷达设备以及相关测试设备的大带宽大容量数据的分布式实时存储的需求。

发明内容

[0005] 本发明所要解决的技术问题是提高大带宽大容量数据的分布式实时存储设备的可设计性、灵活性和扩展性,本发明提供了一种分布式实时存储装置及其数据传输方法。为此,本发明采用如下技术方案:一方面,本发明提供了一种分布式实时存储装置,包括以下两个组成部分:
1-a)一颗桥接片上系统(SOC)芯片,用作外部主机和固态硬盘之间的存储数据桥接;
所述外部主机,可以是上位机,所述上位机直接将实时存储装置作为独立的存储设备使用;也可以是一个分布式并行存储系统的一个中心控制设备,通过中心控制设备管理多个实时存储装置,构成一个大型的分布式实时存储系统;
所述桥接片上系统芯片,内部包括ARM多核处理器和可编程逻辑电路;所述可编程逻辑电路被配置成的部分包括:连接主控片上系统内的可编程逻辑的高速数据接口和芯片内ARM处理器的内部接口
1-b)一块或者多块固态硬盘,分别连接到所述桥接片上系统,用作数据存储载体;
所述一块或者多块固态硬件,在桥接片上系统的存储器控制器的控制下存储数据;当存在多块固态硬盘时相互之间可以工作在负荷分担、主备用、多模表决模式。
[0006] 可选的,所述分布式实时存储装置可以作为一个实时存储设备单独使用,也可以采用多个分布式实时存储装置连接一个中心存储控制系统,构成一个分布式并行存储装置。
[0007] 另一方面,本发明提供了一种分布式实时存储装置的数据传输方法,外部数据流在可编程逻辑经过三级缓存,并通过AXI接口以DMA的方式与ARM多核处理器进行通信;ARM多核处理器采用实时Linux操作系统,DMA驱动位于实时Linux操作系统的内核态,固态硬盘接口驱动位于实时Linux操作系统用户态;包括多级缓存、DMA传输、内核态DMA驱动设计均是为了保证实时传输大带宽的数据;所述的三级缓存包括外部串行高速接口缓冲区、大容量大带宽DDR缓冲区和AXI接口的DMA传输缓冲区。
[0008] 可选的,ARM多核处理器上的实时Linux操作系统运行了三个线程,分别是运行于内核态的实时DMA传输线程和数据块缓冲线程,以及运行于用户态的固态硬盘读写线程。
[0009] 可选的,所述三个线程,在外部主机向固态硬盘存入数据的时候,其工作流程为:5-a)实时DMA传输线程开启后,控制可编程逻辑将数据以DMA方式传输至ARM多核处理器上实时Linux操作系统内核态的DMA乒乓缓冲区;DMA启动之后,线程处于阻塞状态,直到DMA传输完成中断到达;然后进一步阻塞直到DDR写缓冲区准备好信号量到达;最后完成DMA乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DMA读缓冲区数据准备好信号量,并启动下一次DMA传输;
5-b)数据块缓冲线程开启后,首先向实时DMA传输线程给出DDR写缓冲区准备好的信号量;然后处于阻塞状态,等待DMA读缓冲区准备好的信号量到达;DMA读缓冲区准备好的信号量到达后,开始读取位于内核态的DMA缓冲区的数据到位于用户态的DDR乒乓缓冲区,并且循环多次读取DMA缓冲区直到把DDR写缓冲区写满;写满后,线程进入阻塞,直到固态硬盘准备好信号量到达,进而完成DDR乒乓缓冲区的乒乓切换后向固态硬盘读写线程发出DDR读缓冲区数据准备好信号量;
5-c)固态硬盘读写线程开启后,向数据块缓冲线程发送固态硬盘准备好信号量,并阻塞以等待DDR读缓冲区数据准备好信号量;信号量到达后,开始读取DDR缓冲区数据并写入固态硬盘;完成后,循环执行以完成数据存储。
[0010] 5-d)线程间使用信号量通信,线程间的缓冲区切换通过阻塞方式完成。用户态的DDR缓冲区远大于内核态的DMA缓冲区,以达到降低对于用户态的实时性需求的目的。
[0011] 可选的,所述三个线程,在外部主机从固态硬盘读取数据的时候,其工作流程为:6-a)固态硬盘读写线程启动后,ARM多核处理器将数据从固态硬盘读取至实时Linux操作系统用户态的DDR乒乓缓冲区;直到其中一个缓冲区写满后,线程阻塞以等待DDR读缓冲区读空的信号量;该信号量到达后,完成DDR乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DDR读缓冲区数据准备好信号量,并启动另一个DDR缓冲区数据的读取;
6-b)数据块缓冲线程启动后,首先向固态硬盘读写线程发送DDR读缓冲区读空的信号量;然后阻塞以等待DDR读缓冲区准备好的信号量;该信号量到达后,将位于实时Linux操作系统用户态的DMA乒乓缓冲区数据搬移到位于内核态的DMA乒乓缓冲区;写满DMA乒乓缓冲区中的一个的时候,线程阻塞,直到DMA传输可用信号量到达,然后完成DMA乒乓缓冲区的乒乓切换,进而向实时DMA传输线程发送DMA读缓冲区数据准备好信号量;多次完成DMA缓冲区写入直到一个DDR缓冲区的数据读取完成,然后循环读取另一个DDR缓冲区数据;
6-c)实时DMA传输线程开启后,线程阻塞以等待DMA读缓冲区数据准备好信号量;信号量到达后,启动DMA传输将DMA缓冲区数据写入可编程逻辑;DMA传输启动后,线程阻塞直到DMA传输完成中断到达,然后又再一次阻塞直到DMA读缓冲区准备好信号量到达后开启新的一次DMA传输。
[0012] 6-d)线程间使用信号量通信,线程间的缓冲区切换通过阻塞方式完成。用户态的DDR缓冲区远大于内核态的DMA缓冲区,以达到降低对于用户态的实时性需求的目的。
[0013] 本发明的有益效果是:本发明利用桥接片上系统(SOC)的硬盘控制器接口,通过上层协议完成实时大容量高带宽数据的并行存储,无需开发底层的硬盘控制程序,降低了开发难度,提高了灵活性和可扩展性;本发明利用片上系统将传输数据进行拆分,数据拆分的方法可以是负荷分担、主备用和多模表决,以满足不同的需求;本发明包括多级缓存、DMA传输、内核态DMA驱动设计保证了实时传输大带宽的数据。附图说明
[0014] 图1为本发明所述分布式实时存储装置的组成框图
[0015] 图2为本发明所述分布式实时存储装置用作独立的实时存储设备。
[0016] 图3为本发明所述分布式实时存储装置用作分布式并行实时存储设备。
[0017] 图4为本发明所述分布式实时存储装置的数据存入线程管理。
[0018] 图5为本发明所述分布式实时存储装置的数据读取线程管理。

具体实施方式

[0019] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020] 图1为所发明的分布式实时存储装置的一个实例的组成框图,其硬件组成包括一颗桥接片上系统(SOC)芯片11和多块固态硬盘14 15。桥接片上系统11可以采用Zynq ~UltraScale+ MPSOC等具有可编程逻辑111和包含外部固态硬盘(SATA SSD)接口的多核ARM处理器112的SOC。固态硬盘选用市面上的商用SATA接口固态硬盘。桥接片上系统用作外部主机和固态硬盘之间的存储数据桥接;而所述外部主机,即可以是最终的上位机,该上位机直接将实时存储装置作为独立的存储设备使用;也可以是一个分布式并行存储系统的一个中心控制设备,通过中心控制设备管理多个实时存储装置,构成一个大型的分布式实时存储系统。
[0021] 桥接片上系统芯片11,内部包括ARM多核处理器112和可编程逻辑电路111;可编程逻辑电路被配置成的部分包括:连接主控片上系统内的可编程逻辑的高速数据接口和芯片内ARM处理器的内部接口;一块或者多块固态硬盘14 15,分别连接到所述桥接片上系统,用作数据存储载体;这~
些固态硬盘在桥接片上系统的固态硬盘控制器的控制下存储数据;当存在多块固态硬盘时相互之间可以工作在负荷分担、主备用、多模表决等模式。
[0022] 如图2所示,图1所示分布式实时存储装置212在一个外部主机211控制下工作,整体构成一个实时存储设备21单独使用;也可以如图3所示采用多个分布式实时存储装置312314连接一个中心存储控制设备311,整体构成一个分布式并行实时存储装置31。
~
[0023] 图1所述分布式实时存储装置的外部数据流在可编程逻辑经过三级缓存,即外部串行高速接口缓冲区1111、大容量大带宽DDR缓冲区12和AXI接口的DMA传输缓冲区1113,进而通过AXI接口以DMA的方式1114与ARM多核处理器进行通信。ARM多核处理器112运行实时Linux操作系统,DMA驱动1121位于实时Linux操作系统的内核态,固态硬盘接口驱动1122位于实时Linux操作系统用户态。包括多级缓存、DMA传输、内核态DMA驱动等设计均是为了保证实时传输大带宽的数据。
[0024] 为了完成数据读写功能,所述分布式实时存储装置在ARM多核处理器112上的实时Linux操作系统运行了三个线程,分别是运行于内核态的实时DMA传输线程和数据块缓冲线程,以及运行于用户态的固态硬盘读写线程。
[0025] 如图4所示,所述三个线程,在外部主机向固态硬盘存入数据的时候,其工作流程为:1-a)实时DMA传输线程开启后,控制可编程逻辑111将数据以DMA方式传输至ARM多核处理器上实时Linux操作系统内核态的DMA乒乓缓冲区(位于13);DMA启动之后,线程处于阻塞状态,直到DMA传输完成中断到达;然后进一步阻塞直到DDR写缓冲区准备好信号量到达;最后完成DMA乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DMA读缓冲区数据准备好信号量,并启动下一次DMA传输;
1-b)数据块缓冲线程开启后,首先向实时DMA传输线程给出DDR写缓冲区准备好的信号量;然后处于阻塞状态,等待DMA读缓冲区准备好的信号量到达;DMA读缓冲区准备好的信号量到达后,开始读取位于内核态的DMA缓冲区的数据到位于用户态的DDR乒乓缓冲区(位于
13),并且循环多次读取DMA缓冲区直到把DDR写缓冲区写满;写满后,线程进入阻塞,直到固态硬盘准备好信号量到达,进而完成DDR乒乓缓冲区的乒乓切换后向固态硬盘读写线程发出DDR读缓冲区数据准备好信号量;
1-c)固态硬盘读写线程开启后,向数据块缓冲线程发送固态硬盘准备好信号量,并阻塞以等待DDR读缓冲区数据准备好信号量;信号量到达后,开始读取DDR缓冲区数据并写入固态硬盘14 15;完成后,循环执行以完成数据存储。
~
[0026] 如图5所示,所述三个线程,在外部主机从固态硬盘读取数据的时候,其工作流程为:2-a)固态硬盘读写线程启动后,ARM多核处理器11将数据从固态硬盘14 15读取至实时~
Linux操作系统用户态的DDR乒乓缓冲区(位于13);直到其中一个缓冲区写满后,线程阻塞以等待DDR读缓冲区读空的信号量;该信号量到达后,完成DDR乒乓缓冲区的乒乓切换,向数据块缓冲线程发送DDR读缓冲区数据准备好信号量,并启动另一个DDR缓冲区数据的读取;
2-b)数据块缓冲线程启动后,首先向固态硬盘读写线程发送DDR读缓冲区读空的信号量;然后阻塞以等待DDR读缓冲区准备好的信号量;该信号量到达后,将位于实时Linux操作系统用户态的DMA乒乓缓冲区(位于13)数据搬移到位于内核态的DMA乒乓缓冲区(位于13);
写满DMA乒乓缓冲区中的一个的时候,线程阻塞,直到DMA传输可用信号量到达,然后完成DMA乒乓缓冲区的乒乓切换,进而向实时DMA传输线程发送DMA读缓冲区数据准备好信号量;
多次完成DMA缓冲区写入直到一个DDR缓冲区的数据读取完成,然后循环读取另一个DDR缓冲区数据;
2-c)实时DMA传输线程开启后,线程阻塞以等待DMA读缓冲区数据准备好信号量;信号量到达后,启动DMA传输将DMA缓冲区数据写入可编程逻辑1111;DMA传输启动后,线程阻塞直到DMA传输完成中断到达,然后又再一次阻塞直到DMA读缓冲区准备好信号量到达后开启新的一次DMA传输。
[0027] 在上述从固态硬盘读、写数据的多线程工作中,线程间使用信号量通信,线程间的缓冲区切换通过阻塞方式完成。用户态的DDR缓冲区远大于内核态的DMA缓冲区,以达到降低对于用户态的实时性需求的目的。
[0028] 应当理解的是,以上所述从具体实施例的度对本发明的技术内容进一步地披露,其目的在于让大家更容易了解本发明的内容,但不代表本发明的实施方式和权利保护局限于此。本发明保护范围阐明于所附权利要求书中,凡是在本发明的宗旨之内的显而易见的修改,亦应归于本发明的保护之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈