1. 首页
  2. 移动开发
  3. 其他
  4. 论文研究 高速数据传输系统实时存储的设计实现 .pdf

论文研究 高速数据传输系统实时存储的设计实现 .pdf

上传者: 2020-07-29 03:16:36上传 PDF文件 470.46KB 热度 37次
高速数据传输系统实时存储的设计实现,张栋,王海婴,综在高速数据传输系统中,高速数据的实时存储一直以来都是整个系统性能的瓶颈。系统设计探讨了一种在系统主控端划分内存性能以达山国武花论文在线数据格式为两个的头字节后面跟了固定长度的数据包,其中数据包是以为单位的数据流,如表所示。打包模块数据格式设计主控端数据接收设计按照上文提到的主控端数据流设计方案,在主控端效据存储的主要流程为从总线控制内存()中获取缓存的固定大小的数据包之后从数据包中提取出有效数据载荷,按使能的采样通道号码拆分数据载荷,分别写入到相应的磁盘文件中。在应用程序中,用对象来表征数据包的特性,用对象来表征总线控制内存中缓存队列的特征。中通过;定义数据包对象,整个数据仔储过程就是围绕对数据包对象的处理进行的。总线控制内存中通过信号量控制,当缓冲的数据包的数量达到一个数据包对象大小时就通知定义的数据包对象数据已经准备好。数据包对象在相关队列中取出准各好的数据完成主控端应用程序中对象从总线控制内存中取数据操作在将取岀来的数据包对象进行磁盘存储操作之前,需要对数据包对象内的数据包进行包头解析和有效载荷拆分工作。这里也是整个存储设计的性能优化重点。通过良好的拆分存储方案可以提升整个系统的实时性和可靠性能。因为数据包包头是两个比特大小的字如上文提到的,在第一个比特字中分别存放了有效载荷的大小和数据包目的地的外围设备。通过对这个包头字的分析取得有效载荷的长度。到这里准备工作妥当,要根据数据格式进行数据拆分存储匚作。这里的数据格式即为经过目标板卡上打包封装模块封装后的数据包格式。在四路采集的前提下,每个釆集时刻四路数据按照采集通道顺序排列,然后按照时间顺序形成数据流。数据流以比特为单位,通道采样点成对出现,通道采样点成对出现。每比特为一个采样时刻的所有采样数据。我们可以直接将这个数据流通过数写入磁盘上相应的文件中,比如。这就在磁盘的中顺序存储了比特的字节流。之后通过软件将字节流读出,按照每一路的数据进行拆分显示。图显示了这种实时存储操作的流程。PacketPCleQUEUPacketOfstream: writeRAIDO图单文仁写磁盘存储操作但是这种方法由于只生成个文件,四路采样信号按照吋间和道次顺序混在·无格式的二进制比特文件中。在后期的科硏中,当需要对某一路采样信号,比如第一路磁信号,进行分析研究时,需要大量额外的工作对磁盘上的进行数据拆分才能得到我们想要操作的那路信号的采样值。这样不但为之后的工作増加了诈多不便,也使得前期工作中在山国武花论文在线文件形成吋不能直观的观察四路信号形成的文件大小。所以在主控端存储设计时我们决定在数据流进行磁盘存储之前进行文件拆分的工作,既在内存中调用写磁盘文件之前,对接收米的比特字节的数据流进行拆分。由于两个比特的字节头里的比特位标示的是在信号采集系统中数据包流向外围设各时定义的设备的和包头后面做跟的大小,所以在我们从内存中接到数据流的时刻起,这两个比特字节头就已纾完成了他们的使命。我们将每个数据包的这两个字节的包头丢弃之后,剩下的是按照我们设置大小打包形成的一个有效载荷。数据包缓存在数据结构中。最显而易见地方法是将有效载荷按照每比特)进行架作,即每调用一次,分四次写完比特的数据,每比特写入个)中。这样经过段吋闩整个数据包处理完毕,我们就得到了个)文件,每个文件对应路采集的信号。图所示即为这种存储方案的流程展示。PacketPClcQUEUEHDD HD1 CHO CH1 CH2CH30 fstream: write→RADoPacket图初步拆分存储方案典型的,我们取一个的人小为,即每个数据包大小为,分四路存储,用上述方法,每次每路冇取,四路一共,则一次的数据包处理需要次操作。这也就是这一方法的问趣所在:大量的函数调用,繁的函数出入栈操作吞噬了计算机的性能,完全没有发挥憾盘阵列强大快速的存储优势,导致最后得到的实时存储速率只有左右。这与我们系统要求的的系统速率相去甚远。我们通过减少系统操作来解决这问题。仍然是每进行操作,但是不是进行操作,而是为每个写文件安排一个队列,即每写到一个链表里,在一定数据量形成之后调用(,)进行一次写入操作。这里的大小直接影响了系统速率和实时性之间的平衡。如果过小,系统速率提升不明显,达不到系统要求;相反,过大则实时性降低过于严重的话,我们的系统性能同样也受到挑战。由上面的分析,改进后的的主控端数据存储内存设计流稈如图所示。Buffer fo CHoBuffer for ch1PCleQUEUEyHDO HD1 CHO CH1 CH2 CH3Ofstream: writeRAIDOBuffer for CH3PackeBuffer for Ch2佟改进后数据拆分存储方案经过改进实时数据存储速率可以满足的系统要求,但是存在数据完整性上的问山国武花论文在线题,即在数据存储过程中,由于在减少的算法中采用的是先缓存多路数据后集中写入的方法,必然系统的实时性会受到影响,数据包在后面米到时长时间得不到处玛可能会被丢弃,从而导致波形显示上出现完整性问题。为了分析导致数据丢失这一影响系统性能的问题的原因,我们需要对主控端内存的功能划分情况进行分析。数据包在传输建立过程中会在主控端内存中申请一块固定大小的物理页连续的内存区域用来缓存总线上传送过来的数据,叫做总线控制内存()。总线控制内存一般默认中请为大小。主控端程序设计中,用容器来代表了总线控制内存的特点和作用。当中接收的数据达到一个数据包大小时,通过信号量通知应用程序已经有一个数据包准备好,可以开始数据存储工作。这里的一个问题是,快速总线上的数据是源源不断的高速数据流,在主控端对准各好的数据包进行存储L作的同时,总线控制内存中在不断地被填满。在典型数据包大小大小的情况下,块的总线控制内存只能最多缓存个数据包。这样,一旦工作中的数据包存储工作速率小于总线控制内存从快速总线接收数据的速率(系统速率,),总线控制内存将很柍被填满,之后在等待当前处理的数据包存储工作结束时来到的数据包将被迫被丢弃,更不用说我们设计的减少方法:缓存部分数据包之后进行批量数据包写入。这也就是上文提到的数据云失的根本原因。为了解决这个问题,必须对主控端应用程序在内存中的功能进行重新划分。在数据拆分、分别写入磁盘文件和高速率数据包到来的复杂系统要求下,还需要考虑磁盘的写入速度之后才能综合考虑新的內存功能划分。虽然使用块的盘组成的磁盘阵列读写速度测试可达,可是在我们的客户端应用程序设计中调用相关写函数进行写磁盘操作时,还是会发生内存中随后到来的数据包等待的情况。这“点也是⊥作中的重点需要解决的问题。在这种情况下,在主控端内存中申请块内存块()做数据缓冲用,叫做数据缓冲池()每块内存块为,每当总线控制内存中所接收到的数据量达到一个设定的数据包大小时,将数据包从中取出,有对象接收。处理对象时,首先从数据包包头信息中提取出有效载荷的人小,将有效载荷从数椐包中剥离岀来:然后按照目标板中打包封装模块的数据封装策略,进行解封装操作,即按照数据封装格式,将每一路采样通道的采样点拆分开来。最后将不同采样通道的采样点写入到对应的申请好的数据缓冲池中。假设系统四通道米样,数据缓冲池都为空,数据存储工作还没有廾始的情况,这种情況卜将采样通道对应的采样点顺序写入数据缓冲池中,采样通道对应的采样点顺序写入数据缓冲池中,以此类推。在这样个数据包拆分完毕之后,前四个数据缓冲池每个都存储了数据包有效载付大小的数据。这样随着存储过程的循环往复,直到在某一个数据包拆分缓存操作宄成之后,前四个数据缓冲池中都各存满的无格式进制数据。这时触发一次写操作,调用存储函数对前四个数据缓冲池中各存储的的数据各进行一次写操作,共计四次的写硬盘操作。当前四个数据缓冲池进行写磁盘操作时,后四个数据缓冲池负责接收这时候总线控制内存中采集好并拆分完毕的数据包数据。当后四个数据缓冲池中写满数据准备出发写磁盘操作时,前四个数据缓冲池已经完成了相应的写磁盘操作,进入到拆分数据接收状态。这样做的好处是可以高效率的利用主控端的内存进行数据缓存,将数据拆分之后的多路不同的数据流先缓存在主控端的内存中,待数据达到一定规模时统一出发写操作;在数据内存块进行往磁盘阵列上写数据的同时,对应的数据内存块在同吋接受写磁盘吋到来的数据流。这样充分优化了整个系统的仔储方案,减少了系统操作,解决了多路数据拆分难题并且保证山国武花论文在线了系统数据不丢失以及系统数的实吋存储。最终经过改进的主控端数据存储方案如图所示Buffer 1 for CHOButter 1 for Ch1Buffer1 for CH2PacketBuffer 1 for CH3QUEUE少 HDOHD1cH0CH1CH2CH3Ofstream: write RAIDOBUs-masterMemoryuffer2 for chBuffer 2 for ch1Buffer 2 for CHo图主控端数据实时拆分存储方案图中实线表示数据拆分存储的过程,虚线代表在当前负责写磁盘操作的数据缓冲块进行写磁榲文件操作的同时,每一个采集通道对应的另一块数据缓冲块对存储过程中到来的数据包拆分后的每一路数据块进行的缓存操作。当前一块数据缓存块写磁盘文件的操作结束后下一次写磁盘操作用刭的数据源将从虚线对应的数据缓冲块获得。这样就实现了主控端数据的实时拆分存储。主控端数据接收分析应用以上存储流程设计方案所设计的主控端应用程序在四路比特采样,采样时钟,数据包大小设定为的条件下,得到个的二进制磁盘文件用软件检测每个盘文件最后个点的波形来推算数据的丢失程度。观寮波形显示数据无丢失结论本文主要给出了高速数据采样传输系统中主控端实时存储的一种设计与实现。介绍了主控端的数据流设计方案、主控端界血设计接口和主控端实时存储的相关改计实现和内存功能优化。亘点讲解了主控端实时存储设计在内存中的功能划分实现过程。通过本章节所介绍的工作,系统前粱通过实时信号釆集系统采集的高速率信号数据由高速总线传输给主控端之后,实时可靠的行储在主控端的咼速磁盘逻辑阵列中,完成了整个系统的设计要求。参考文献陆峰基于的高速数据采集系统的设计山西:中北大学李京江审权庞征斌刘光明高可靠磁盘阵列的设计计算机应用研究苏纪辉基于的高遮数捱传输系统应用研究哈尔滨:哈尔滨工程人学,陈章进冉峰汤立华徐美华目标设备的配置空间实现计算机应用
用户评论