CN108153490A - 用于socfpga的数据循环缓冲方法及装置、存储介质、终端 - Google Patents

用于socfpga的数据循环缓冲方法及装置、存储介质、终端 Download PDF

Info

Publication number
CN108153490A
CN108153490A CN201711392556.XA CN201711392556A CN108153490A CN 108153490 A CN108153490 A CN 108153490A CN 201711392556 A CN201711392556 A CN 201711392556A CN 108153490 A CN108153490 A CN 108153490A
Authority
CN
China
Prior art keywords
buffering
data
newly written
reading position
read
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.)
Pending
Application number
CN201711392556.XA
Other languages
English (en)
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.)
Hesai Photonics Technology Co Ltd
Original Assignee
Hesai Photonics Technology Co Ltd
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 Hesai Photonics Technology Co Ltd filed Critical Hesai Photonics Technology Co Ltd
Priority to CN201711392556.XA priority Critical patent/CN108153490A/zh
Publication of CN108153490A publication Critical patent/CN108153490A/zh
Priority to PCT/CN2018/122551 priority patent/WO2019120274A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于SOCFPGA的数据循环缓冲方法及装置、存储介质、终端,所述方法包括:按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。通过本发明提供的方案能够有效提高系统的数据处理效率。

Description

用于SOCFPGA的数据循环缓冲方法及装置、存储介质、终端
技术领域
本发明涉及数据处理技术领域,具体地涉及一种用于SOCFPGA的数据循环缓冲方法及装置、存储介质、终端。
背景技术
由于集成了处理器和现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA)体系结构,较之传统器件,系统级芯片现场可编程逻辑门阵列(System on ChipFPGA,简称SOCFPGA)器件具有更高的集成度、更低的功耗、更小的电路板面积,以及处理器和FPGA之间带宽更大的通信等优点。
以可扩展处理平台(ZYNQ)为例,其是一种带系统级芯片增强型精简指令集计算机(Advanced RISC Machines,简称ARM)的FPGA解决方法。所述ZYNQ既能够拥有FPGA实时和并行的特性,又能在ARM上启动系统来提供丰富的功能。
其中,FPGA在该平台的数据采集中用于数据的高速采集和高速处理,其数据处理的速度可以达到纳秒(ns)级;ARM主要负责数据显示和数据分析,其数据处理的速度一般在毫秒(ms)级。
所以,FPGA和ARM之间的通信速度在很大程度上决定了SOCFPGA的系统处理数据的效率,而现有的解决方案均无法提供一种较合理的处理逻辑,无法有效解决FPGA和ARM的数据处理速度不匹配所导致的基于低配置可编程器件(例如低配置ZYNQ)的系统的数据处理效率受到影响的问题。
发明内容
本发明解决的技术问题是如何提高系统的数据处理效率。
为解决上述技术问题,本发明实施例提供一种用于SOCFPGA的数据循环缓冲方法,包括:按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
可选的,所述数据写入顺序与所述数据读取顺序的方向相同。
可选的,当第n个缓冲被写入数据后,从第1个缓冲开始继续写入数据。
可选的,当第n个缓冲中存储的数据被读取后,从第1个缓冲开始继续读取数据。
可选的,所述根据最新写入位置和最后读取位置确定有效缓冲包括:当所述最新写入位置等于所述最后读取位置,所述有效缓冲的数量为零。
可选的,所述根据最新写入位置和最后读取位置确定有效缓冲包括:以所述数据写入顺序为正方向,当所述最新写入位置大于所述最后读取位置时,所述有效缓冲为所述最后读取位置至所述最新写入位置之间的缓冲。
可选的,所述根据最新写入位置和最后读取位置确定有效缓冲包括:以所述数据写入顺序为正方向,当所述最新写入位置小于所述最后读取位置时,所述有效缓冲为所述最后读取位置至第n个缓冲,以及第1个缓冲至最新写入位置之间的缓冲。
可选的,所述n个缓冲连续的设置于同一缓冲区中;或者,所述n个缓冲分散设置于多个缓冲区,并通过组织结构顺序链接。
本发明实施例还提供一种用于SOCFPGA的数据循环缓冲装置,包括:写模块,用于按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;确定模块,用于根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;读模块,在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。
本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例的技术方案提供一种用于SOCFPGA的数据循环缓冲方法,包括:按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。较之现有用于SOCFPGA的数据缓冲方案,本发明实施例所述方案能够根据缓冲深度设立n个缓冲并在其中循环写入数据,通过记录最后读取位置和最新写入位置,使得数据读取端(如ARM的CPU)能够根据自身的忙闲情况自行调节读取进度,由于缓冲区的数量足够多(即n个),有效避免出现缓冲的数据还未被读取处理就需要写入新数据的情形。本领域技术人员理解,采用本发明实施例所述循环缓冲方法能够使得SOCFPGA的系统在采集和转发大数据量的数据时不会产生数据丢失的问题,尤其对于基于低配置可编程器件(即低配置SOCFPGA,例如低配置ZYNQ)的系统,能够在极大地节省系统开销的基础上,保证数据完整性,极大地优化系统的数据处理效率。
进一步,所述数据写入顺序与所述数据读取顺序的方向相同,以保证数据完整性,确保最早写入的数据能够被尽快读取。
附图说明
图1是本发明第一实施例的一种数据的循环缓冲方法的流程图;
图2至图4是本发明第一实施例的一个典型的应用场景的原理示意图;
图5是本发明第一实施例的另一个典型的应用场景的原理示意图;
图6是本发明第二实施例的一种数据的循环缓冲装置的结构示意图。
具体实施方式
本领域技术人员理解,如背景技术所言,现有SOCFPGA系统的的数据缓冲逻辑仍存在局限,导致系统的数据处理效率受到极大影响。
发明人经过分析发现,上述问题是由于现有SOCFPGA系统一般采用中断加双缓冲的方式来进行数据缓冲,以解决增强型精简指令集计算机(Advanced RISC Machines,简称ARM)的现场可编程逻辑门阵列(Field Programmable Gate Array,简称FPGA)之间的通信速度不匹配的问题。
但是,由于只有两个缓冲区,当数据量大时,ARM的中央处理器(CentralProcessing Unit,简称CPU)繁忙,FPGA和ARM处理数据的时间不规律(如由于CPU的调度关系,以及FPGA在操作内存而ARM受到内存时序上的制约,读取数据的速度也会受到影响等),极有可能出现缓冲的数据还没处理完就要写入新数据的情形,造成数据丢失,影响数据完整性。
而这一现象在基于低配置可编程器件(即低配置SOCFPGA,例如低配置ZYNQ)的系统上尤其明显,因为低配置可编程器件的FPGA和ARM的数据处理速度的差异更为明显,也就导致基于低配置可编程器件的系统的数据处理效率大打折扣。
为了解决上述技术问题,本发明实施例的技术方案提供一种用于SOCFPGA的数据循环缓冲方法,包括:按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
本领域技术人员理解,本发明实施例所述方案能够根据缓冲深度设立n个缓冲并在其中循环写入数据,通过记录最后读取位置和最新写入位置,使得数据读取端(如ARM的CPU)能够根据自身的忙闲情况自行调节读取进度,由于缓冲区的数量足够多(即n个),有效避免出现缓冲的数据还未被读取处理就需要写入新数据的情形。
进一步地,采用本发明实施例所述循环缓冲方法能够使得系统采集和转发大数据量的数据时不会产生数据丢失的问题,尤其对于基于低配置可编程器件(例如低配置ZYNQ)的系统,能够在极大的节省系统开销的基础上,保证数据完整性,极大地优化系统的数据处理效率。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明第一实施例的一种用于SOCFPGA的数据循环缓冲方法的流程图。其中,本实施例可以应用于基于可编程器件的SOCFPGA系统,包括基于低配置可编程器件(如低配置ZYNQ)的系统,也可以应用于其他数据写入模块和数据读取模块的数据处理速度存在差异的系统;所述SOCFPGA是指带SOC的FPGA,亦即集成有SOC的FPGA。
具体地,在本实施例中,所述用于SOCFPGA的数据循环缓冲方法可以包括如下步骤:
步骤S101,按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定。
步骤S102,根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲。
步骤S103,在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
更为具体地,所述n个缓冲(也可称为缓存,buffer)可以是在一块内存块上分割获得的。
作为一个非限制性实施例,可以根据系统处理的时间抖动(jitter)来确定某一时间需要进行数据处理的缓冲时间,进而根据所述缓冲时间反推出合适的缓冲深度,进而确定所述n的具体数值。例如,在所述ARM的中央处理器(Central Processing Unit,简称CPU)繁忙时需要多个毫秒(即多个缓冲)才能将数据读走,则所述缓冲的数量n至少要大于2。
进一步地,所述缓冲深度还与所述ARM的硬件性能相关。
进一步地,所述缓冲深度还与其他模块的数据处理能力相关,所述其他模块可以是所述系统中除用于处理所述n个缓冲中存储的数据的模块之外需要消耗CPU资源的模块(或事件),以使得执行本实施例所述方案的数据读取模块(如ARM)能够控制何时读取所述n个缓冲中的数据,何时应该让出CPU资源给其他模块,以使其他模块有时间处理各自的数据。本领域技术人员理解,基于本实施例所述循环缓冲的方式,能够把数据的瞬间处理速度转换成平均效率,而不是单纯降低数据量或提升ARM的CPU的主频来解决CPU瞬间繁忙导致缓冲的数据丢失的问题,有利于提升数据完整性。
进一步地,所述n可以为大于2的正整数。优选地,所述n可以为3或4,以在所述CPU繁忙时能够实现自动缓冲的功能。
本领域技术人员理解,通过设立所述n个缓冲,无需动态分配内存即可完成队列的功能。
进一步地,所述数据写入顺序与所述数据读取顺序的方向可以相同,以保证数据完整性,确保最早写入的数据能够被尽快读取。
作为一个非限制性实施例,所述数据写入顺序可以是按照从第1个缓冲至第n个缓冲的顺序。进一步地,当第n个缓冲被写入数据后,可以从第1个缓冲开始继续写入数据。
相应的,所述数据读取顺序也可以是按照从第1个缓冲至第n个缓冲的顺序。进一步地,当所述第n个缓冲中存储的数据被读取后,可以从第1个缓冲开始继续读取数据。
本领域技术人员可以根据实际需要对所述数据写入顺序与数据读取顺序进行调整,在此不予赘述。
进一步地,写模块(如FPGA)在某一缓冲中写入数据后,可以告知读模块(如ARM)最新写入位置,所述读模块可以记录自身的最后读取位置,以顺利读取有效缓冲中存储的数据。其中,所述有效缓冲可以根据所述最新写入位置和最后读取位置确定。
在一个典型的应用场景中,在初始阶段或者所述CPU空闲时,所述最新写入位置可能等于所述最后读取位置,此时,所述有效缓冲的数量为零,亦即所述写模块写入的数据可以立即被所述读模块读取。
进一步地,为了保证数据的完整性,在本应用场景中,所述写模块仍可以按照所述数据写入顺序依次在所述n个缓冲中写入数据,所述读模块也按照所述数据读取顺序依次从所述n个缓冲中读取数据,但此时所述n个缓冲中只有一个缓冲中存储有未读数据,且存储的未读数据可以立即被读取。
进一步地,随着所述CPU的忙闲变化,还可能出现最新写入位置小于最后读取位置,或者最新写入位置大于最后读取位置的情形(以所述数据写入顺序为正方向),此时,所述有效缓冲不为空。
具体地,所述写模块可以始终按照其数据写入顺序向所述n个缓冲中写入数据,当所述数据写入位置移动至第n个缓冲时,可循环至第1个缓冲继续写入数据。在此期间,若所述CPU正好处于繁忙阶段,所述读模块可能没有太多时间处理所述n个缓冲中写入的数据,则所述最后读取位置可以维持不变。进一步地,当所述CPU空闲时,所述读模块可以快速消化掉所述有效缓冲中存储的数据,直至所述最后读取位置移动到与所述最新写入位置相一致,从而避免数据持续积压。
本领域技术人员理解,本实施例所采用的循环缓冲的方式能够提供非常弹性的系统工作模式。例如,当所述CPU繁忙时,所述数据写入位置可以从第1个缓冲向后移动至第n个缓冲再循环回第1个缓冲直到找到空闲位置,在此过程中,由于所述读模块没有时间处理数据,所以所述最后读取位置不动;当所述CPU空闲时,所述读模块可以读取并处理所述有效缓冲中存储的数据,此时,所述最新写入位置移动至空闲缓冲并写入数据,所述最后读取位置快速移动到和最新写入位置相一致,从而快速处理掉所有缓存的数据。其中,所述空闲位置可以指尚未被写入数据的空闲缓冲。
基于此原理,能够在所述CPU空闲时批量处理所有的缓冲中存储的数据,在所述CPU繁忙时又有足够多的缓冲提供给写模块缓冲数据,从而有效保证数据的完整性。
参考图2至图5,可以设立8个缓冲(即n=8),其中,每一个缓冲按照数据写入顺序(即数据读取顺序)依次编号为0至7号缓冲。所述FPGA用于按照所述数据写入顺序依次在0至7号缓冲中写入数据,并修改所述最新写入位置。所述ARM用于通过CPU读取和处理所述8个缓冲中存储的数据,并保存和记录最后读取位置。
参考图2至图4,在一个典型的应用场景中,可能出现所述最新写入位置大于所述最后读取位置的情形,亦即所述FPGA写入数据的速度大于所述ARM读取数据的速度。此时,从所述最后读取位置至所述最新写入位置之间的缓冲为有效缓冲,如图2示出的0号和1号缓冲、图3示出的3号和4号缓冲、图4示出的6号和7号缓冲,这些有效缓冲中存储的数据为等待所述ARM的CPU读取和处理的有效数据,所述8个缓冲中除所述有效缓冲之外的缓冲均为待写入缓冲,所述FPGA可以继续按照所述数据写入顺序依次在其中写入数据。
参考图5,在另一个典型的应用场景中,随着所述FPGA按照所述数据写入顺序依次在所述8个缓冲中写入数据,还有可能出现所述最新写入位置小于所述最后读取位置的情形,亦即所述FPGA写入数据的速度大于所述ARM读取数据的速度,且所述FPGA已经循环至向位于所述最后读取位置之前的缓冲写入数据。此时,从所述最后读取位置至第8个缓冲,以及所述第1个缓冲至最新写入位置之间的缓冲为所述有效缓冲,如图5示出的7号和0号缓冲,这些有效缓冲中存储的数据为等待所述ARM的CPU读取和处理的有效数据,所述8个缓冲中除所述有效缓冲之外的缓冲均为待写入缓冲,所述FPGA可以继续按照所述数据写入顺序依次在其中写入数据。
作为一个非限制性实施例,所述n个缓冲可以连续的设置于同一缓冲区中,以使所述FPGA能够在其中顺序写入数据。
作为一个变化例,所述n个缓冲可以分散设置于多个缓冲区,并通过组织结构顺序链接,以充分利用所有的缓冲区,避免资源浪费。进一步地,通过加入组织的描述信息的方式,实现更精准的判断,并通过提升缓冲深度的方式来容纳更大的抖动,有利于保证数据的完整性,更好的解决CPU繁忙导致的数据丢失问题。
由上,采用本实施例的方案,能够根据缓冲深度设立n个缓冲并在其中循环写入数据,通过记录最后读取位置和最新写入位置,使得数据读取端(如ARM的CPU)能够根据自身忙闲情况自行调节读取进度,由于缓冲区的数量足够多(即n个),有效避免出现缓冲的数据还未被执行读取处理就需要写入新数据的情形。
进一步地,采用本发明实施例所述循环缓冲方法使得SOCFPGA系统在采集和转发大数据量的数据时不会产生数据丢失的问题,尤其对于基于低配置可编程器件(如低配置ZYNQ)的系统,能够在极大的节省系统开销的基础上,保证数据完整性,极大地优化系统的数据处理效率。
进一步地,本实施例提出的循环缓冲方案能够保证数据量大且处理时间不规律时数据的完整性。具体地,通过循环缓冲的方式提供非常弹性的缓冲,当CPU繁忙时,数据继续缓冲,当CPU闲时,能够快速的处理完缓冲的所有数据,而不会受制约于瞬间的CPU繁忙导致数据丢失,提升了写模块和读模块的沟通速率,有效改善系统的数据处理效率。
例如,所述系统可以采用ZYNQ 7020型写模块,600MHz双核ARM型读模块以及DDR3型缓冲分别执行本实施例所述方案和现有技术来比较本实施例的实验效果,其中,DDR为双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random AccessMemory,DDR SDRAM)的英文缩写。
具体地,实验期间,每秒450Mbps数据使用传输控制协议(Transmission ControlProtocol,简称TCP)传输,40Mbps数据通过用户数据报协议(User Datagram Protocol,简称UDP)传输,以监测UDP的丢包率。
其中,采用现有的双缓冲加中断的方案进行数据缓冲期间,所述UDP的丢包率为5%;而采用本实施例所述循环缓冲的方案进行数据缓冲期间,所述UDP的丢包率降低到了0.0007%。
由上,本实施例的方案能够充分发挥低配置可编程器件的性能,在比较低效率的可扩展平台上,依然能够满足产品性能的定义,提升了稳定性。
图6是本发明第二实施例的一种用于SOCFPGA的数据循环缓冲装置的结构示意图。本领域技术人员理解,本实施例所述数据的循环缓冲装置8(以下简称为循环缓冲装置8)可以用于实施上述图1所示实施例中所述的方法技术方案。
具体地,在本实施例中,所述循环缓冲装置8可以包括:写模块81,用于按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;确定模块82,用于根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;读模块83,在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
进一步地,所述数据写入顺序与所述数据读取顺序的方向相同。
进一步地,当第n个缓冲被写入数据后,所述写模块81可以从第1个缓冲开始继续写入数据。
进一步地,当所述第n个缓冲中存储的数据被读取后,所述读模块83可以从第1个缓冲开始继续读取数据。
作为一个非限制性实施例,所述确定模块82可以包括:第一确定子模块821,当所述最新写入位置等于所述最后读取位置,所述有效缓冲的数量为零。
作为另一个非限制性实施例,所述确定模块82可以包括:第二确定子模块822,以所述数据写入顺序为正方向,当所述最新写入位置大于所述最后读取位置时,所述有效缓冲为所述最后读取位置至所述最新写入位置之间的缓冲。
作为又一个非限制性实施例,所述确定模块82可以包括:第三确定子模块823,以所述数据写入顺序为正方向,当所述最新写入位置小于所述最后读取位置时,所述有效缓冲为所述最后读取位置至第n个缓冲,以及所述第1个缓冲至最新写入位置之间的缓冲。
在一个优选例中,所述n个缓冲可以连续的设置于同一缓冲区中。
作为一个变化例,所述n个缓冲可以分散设置于多个缓冲区,并通过组织结构顺序链接。
进一步地,所述写模块81可以集成于所述低配置可编程器件(如低配置ZYNQ)的FPGA;所述确定模块82和度模块83可以集成于所述ARM(如ARM的CPU)。或者,本实施例所述循环缓冲装置8也可以独立于所述FPGA和ARM,并将写入和读取的数据发送至系统的相应模块以供其使用。
需要指出的是,所述第一确定子模块81、第二确定子模块82和第三确定子模块83可以为同一个模块;或者,三者也可以相互独立,以各自在对应的场景下执行确定所述有效缓冲的操作。
进一步地,所述循环缓冲装置8可以集成于所述系统中,以通过执行本实施例所述方案优化所述系统的数据处理效率。
关于所述循环缓冲装置8的工作原理、工作方式的更多内容,可以参照图1中的相关描述,这里不再赘述。
进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1所示实施例中所述的方法技术方案。优选地,所述终端可以为所述系统。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (10)

1.一种用于SOCFPGA的数据循环缓冲方法,其特征在于,包括:
按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;
根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;
在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
2.根据权利要求1所述的数据循环缓冲方法,其特征在于,所述数据写入顺序与所述数据读取顺序的方向相同。
3.根据权利要求1所述的数据循环缓冲方法,其特征在于,当第n个缓冲被写入数据后,从第1个缓冲开始继续写入数据;当第n个缓冲中存储的数据被读取后,从第1个缓冲开始继续读取数据。
4.根据权利要求1所述的数据循环缓冲方法,其特征在于,所述根据最新写入位置和最后读取位置确定有效缓冲包括:
当所述最新写入位置等于所述最后读取位置,所述有效缓冲的数量为零。
5.根据权利要求1所述的数据循环缓冲方法,其特征在于,所述根据最新写入位置和最后读取位置确定有效缓冲包括:
以所述数据写入顺序为正方向,当所述最新写入位置大于所述最后读取位置时,所述有效缓冲为所述最后读取位置至所述最新写入位置之间的缓冲。
6.根据权利要求1所述的数据循环缓冲方法,其特征在于,所述根据最新写入位置和最后读取位置确定有效缓冲包括:
以所述数据写入顺序为正方向,当所述最新写入位置小于所述最后读取位置时,所述有效缓冲为所述最后读取位置至第n个缓冲,以及第1个缓冲至最新写入位置之间的缓冲。
7.根据权利要求1所述的数据循环缓冲方法,其特征在于,所述n个缓冲连续的设置于同一缓冲区中;或者,所述n个缓冲分散设置于多个缓冲区,并通过组织结构顺序链接。
8.一种用于SOCFPGA的数据循环缓冲装置,其特征在于,包括:
写模块,用于按照数据写入顺序在n个缓冲中顺序写入数据,所述n为正整数并根据缓冲深度确定;
确定模块,用于根据最新写入位置和最后读取位置确定有效缓冲,所述有效缓冲为所述n个缓冲中存储有未被读取数据的缓冲;
读模块,在读取数据时,自所述最后读取位置开始按照数据读取顺序依次读取所述有效缓冲中存储的数据,直至所述最新写入位置。
9.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至7任一项所述方法的步骤。
10.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至7任一项所述方法的步骤。
CN201711392556.XA 2017-12-21 2017-12-21 用于socfpga的数据循环缓冲方法及装置、存储介质、终端 Pending CN108153490A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711392556.XA CN108153490A (zh) 2017-12-21 2017-12-21 用于socfpga的数据循环缓冲方法及装置、存储介质、终端
PCT/CN2018/122551 WO2019120274A1 (zh) 2017-12-21 2018-12-21 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711392556.XA CN108153490A (zh) 2017-12-21 2017-12-21 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Publications (1)

Publication Number Publication Date
CN108153490A true CN108153490A (zh) 2018-06-12

Family

ID=62464908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711392556.XA Pending CN108153490A (zh) 2017-12-21 2017-12-21 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Country Status (2)

Country Link
CN (1) CN108153490A (zh)
WO (1) WO2019120274A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019120274A1 (zh) * 2017-12-21 2019-06-27 上海禾赛光电科技有限公司 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1543145A (zh) * 2003-04-28 2004-11-03 华为技术有限公司 一种数字信号处理器内部数据传输的方法
US20080098279A1 (en) * 2006-10-18 2008-04-24 Trellisware Technologies, Inc. Using no-refresh dram in error correcting code encoder and decoder implementations
CN105872668A (zh) * 2016-03-31 2016-08-17 百度在线网络技术(北京)有限公司 音视频数据处理方法、装置以及车载终端
CN106603172A (zh) * 2016-11-24 2017-04-26 中国电子科技集团公司第四十研究所 一种应用于无线电监测接收机的带时间戳数据分时读写方法
CN107045424A (zh) * 2016-10-31 2017-08-15 航天东方红卫星有限公司 小卫星固态存储器分时复用管理读写文件方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2418584A1 (en) * 2010-08-13 2012-02-15 Thomson Licensing Method and apparatus for storing at least two data streams into an array of memories, or for reading at least two data streams from an array of memories
CN103064679B (zh) * 2012-12-25 2015-07-15 北京航天测控技术有限公司 长时间连续dma传输的缓冲区管理的方法
CN103744621A (zh) * 2013-12-31 2014-04-23 深圳英飞拓科技股份有限公司 缓冲区循环读写的方法及装置
CN107102818A (zh) * 2017-03-16 2017-08-29 山东大学 一种基于sd卡的高速数据存储方法
CN107247561A (zh) * 2017-05-31 2017-10-13 成都华立达电力信息系统有限公司 缓冲池循环存储读写方法
CN108153490A (zh) * 2017-12-21 2018-06-12 上海禾赛光电科技有限公司 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1543145A (zh) * 2003-04-28 2004-11-03 华为技术有限公司 一种数字信号处理器内部数据传输的方法
US20080098279A1 (en) * 2006-10-18 2008-04-24 Trellisware Technologies, Inc. Using no-refresh dram in error correcting code encoder and decoder implementations
CN105872668A (zh) * 2016-03-31 2016-08-17 百度在线网络技术(北京)有限公司 音视频数据处理方法、装置以及车载终端
CN107045424A (zh) * 2016-10-31 2017-08-15 航天东方红卫星有限公司 小卫星固态存储器分时复用管理读写文件方法
CN106603172A (zh) * 2016-11-24 2017-04-26 中国电子科技集团公司第四十研究所 一种应用于无线电监测接收机的带时间戳数据分时读写方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019120274A1 (zh) * 2017-12-21 2019-06-27 上海禾赛光电科技有限公司 用于socfpga的数据循环缓冲方法及装置、存储介质、终端

Also Published As

Publication number Publication date
WO2019120274A1 (zh) 2019-06-27

Similar Documents

Publication Publication Date Title
US11112998B2 (en) Operation instruction scheduling method and apparatus for nand flash memory device
KR101665611B1 (ko) 컴퓨터 시스템 및 메모리 관리의 방법
EP3005128B1 (en) Separate memory controllers to access data in memory
CN102866957B (zh) 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置
US20150293709A1 (en) Fine-grained bandwidth provisioning in a memory controller
CN108139994B (zh) 内存访问方法及内存控制器
US8364999B1 (en) System and method for processor workload metering
CN109814811B (zh) 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法
CN107391392A (zh) 一种基于闪存存储设备并行特征的垃圾回收优化方法
CN110309088A (zh) Zynq fpga芯片及其数据处理方法、存储介质
CN103150216B (zh) 一种SoC集成的多端口DDR2/3调度器及调度方法
EP2686774A1 (en) Memory interface
US20190042305A1 (en) Technologies for moving workloads between hardware queue managers
CN103345451A (zh) 一种在多核处理器中缓冲数据的方法
CN109376003A (zh) 一种链式结构的gpu显存管理方法
CN106547483A (zh) 一种通用高效的sdr sdram控制器及其工作方法
CN115083451A (zh) 多通道的数据处理方法、装置、设备及存储介质
CN108153490A (zh) 用于socfpga的数据循环缓冲方法及装置、存储介质、终端
WO2022155970A1 (zh) 一种内存控制方法及内存控制装置
CN102411543B (zh) 缓存地址的处理方法和装置
US20200120045A1 (en) Real-time data processing and storage apparatus
US7451182B2 (en) Coordinating operations of network and host processors
CN115934309A (zh) 用于核心特定度量收集的技术
JP7177948B2 (ja) 情報処理装置、及び情報処理方法
KR20210061583A (ko) 적응형 딥러닝 가속 장치 및 방법

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: No.2 building, no.468 xinlai Road, Jiading District, Shanghai, 201821

Applicant after: Shanghai Hesai Technology Co.,Ltd.

Address before: 201821 2nd floor, building A4, 925 Yecheng Road, Jiading District, Shanghai

Applicant before: HESAI PHOTONICS TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: No.2 building, no.468 xinlai Road, Jiading District, Shanghai, 201821

Applicant after: Shanghai Hesai Technology Co.,Ltd.

Address before: No.2 building, no.468 xinlai Road, Jiading District, Shanghai, 201821

Applicant before: Shanghai Hesai Technology Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180612