CN116360727A - 数据处理方法、电子设备及存储介质 - Google Patents

数据处理方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116360727A
CN116360727A CN202310350359.0A CN202310350359A CN116360727A CN 116360727 A CN116360727 A CN 116360727A CN 202310350359 A CN202310350359 A CN 202310350359A CN 116360727 A CN116360727 A CN 116360727A
Authority
CN
China
Prior art keywords
data
data frame
length
new
storage area
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
CN202310350359.0A
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.)
Ecoflow Technology Ltd
Original Assignee
Ecoflow Technology 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 Ecoflow Technology Ltd filed Critical Ecoflow Technology Ltd
Priority to CN202310350359.0A priority Critical patent/CN116360727A/zh
Publication of CN116360727A publication Critical patent/CN116360727A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本申请涉及计算机技术领域,提供了一种数据处理方法、电子设备及存储介质,数据处理方法包括:在预设的存储区域中写入了新的数据帧之后,计算所述新的数据帧的结束位置至前一分段位置的数据长度;若所述数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置;响应于数据读取指令,依次读取相邻两个分段位置之间的数据,将所述数据至所述数据读取指令指定的接收方。上述方法能够确保读取的数据是完整的,从而避免数据丢失或错乱的问题。

Description

数据处理方法、电子设备及存储介质
技术领域
本申请属于计算机技术领域,尤其涉及一种数据处理方法、电子设备及存储介质。
背景技术
在电子设备使用了先进先出(First in,First out,FIFO)存储器时,电子设备可以根据先进先出的顺序,在FIFO存储器中按序写入数据帧,以及,按序读取数据帧。
在相关的数据读取方案中,电子设备根据固定的读取长度(例如4KB)读取数据。由于电子设备写入的各个数据帧的长度长短不一,所以,如果电子设备按照固定的读取长度读取数据,则电子设备读取到的数据中,可能会存在不完整的数据帧,从而导致数据丢失或错乱的问题,影响电子设备的正常使用。
发明内容
本申请实施例提供了一种数据处理方法、电子设备及存储介质,以解决按照固定的读取长度读取数据导致数据丢失或错乱的问题。
本申请实施例第一方面提供一种数据处理方法,包括:在预设的存储区域中写入了新的数据帧之后,计算所述新的数据帧的结束位置至前一分段位置的数据长度;若所述数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置;响应于数据读取指令,依次读取相邻两个分段位置之间的数据,将数据至所述数据读取指令指定的接收方。
本申请实施例提供的数据处理方法中,在预设的存储区域中写入了新的数据帧之后,计算新的数据帧的结束位置至前一分段位置的数据长度,若新的数据帧的结束位置至前一分段位置的数据长度大于预设长度,将前一个数据帧的结束位置确定为新的分段位置,使得相邻两个分段位置之间的数据小于预设长度,本申请通过更新分段位置,使得相邻两个分段位置之间的数据始终小于预设长度,从而在依次读取相邻两个分段位置之间的数据时,能够确保读取的数据是完整的,避免了相关技术中按照固定长度去读取数据,导致的数据丢失或错乱的问题。
本申请实施例第二方面还提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述数据处理方法。
本申请实施例第三方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法。
附图说明
图1是本申请实施例提供的一种数据处理方法的应用场景图。
图2是本申请实施例提供的一种数据处理方法的流程图。
图3为本申请实施例提供的分段位置的示意图。
图4是本申请实施例提供的分段位置的确定流程。
图5是本申请实施例提供的初始化N值的确定流程。
图6是本申请实施例提供的数据帧的写入流程图。
图7是本申请实施例提供的读取指令的响应流程图。
图8是本申请实施例提供的数据处理装置的结构示意图。
图9是本申请实施例提供的电子设备的结构图。
具体实施方式
需要说明的是,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
另外需要说明的是,本申请实施例中公开的方法或流程图所示出的方法,包括用于实现方法的一个或多个步骤,在不脱离权利要求的范围的情况下,多个步骤的执行顺序可以彼此互换,其中某些步骤也可以被删除。
下面将结合附图对一些实施例做出说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
电子设备可以是自移动设备或其他可以进行通信监测的设备。示例性的,自移动设备可以是包含自移动辅助功能的设备。其中,自移动辅助功能可以由车载终端提供,相应的自移动设备可以是具有该车载终端的车辆。自移动设备还可以是半自移动设备或者完全自主移动设备。例如,割草机、扫地机、具有导航功能的机器人等。电子设备还可以是带有通信功能的储能设备,本申请对电子设备不做限制。
在电子设备使用了先进先出(First in,First out,FIFO)存储器时,电子设备可以根据先进先出的顺序,在FIFO存储器中按序写入数据帧,以及,按序读取数据帧。其中,写入数据帧与读取数据帧是同时进行的,写入数据帧的过程会占据FIFO存储器中一部分存储区域。若写入数据帧的速率较快,而读取数据帧的速率较慢,则数据帧会先存储至FIFO存储器中,等待读取。若写入的数据帧的数据量超过FIFO存储器的存储空间,则停止写入数据帧。
结合图1说明本申请实施例提供的数据处理方法的应用场景。如图1所示,12个方格用于标识FIFO存储器中的存储区域,每个方格标识能够存储1K的数据,图1中0K与12K用于标识存储区域的刻度值。可以理解,FIFO存储器的存储空间可根据实际存储器规格设置,例如,FIFO存储器的存储空间为64K,图1仅以FIFO存储器中存储空间为12K的存储区域为例,实际应用中不限于此。
FIFO存储器中的数据帧为按序写入与按序读出,当FIFO存储器接收到首个数据帧时,将首个数据帧存储至图1中最左侧的存储区域(图1总0K对应位置)内,之后依次在存储区域内写入其余数据帧;在读取FIFO存储器内的数据帧时,从图1中最左侧的存储区域内读取首个数据帧,之后依次在存储区域内读取其余数据帧。示例性地,按照时间顺序写入FIFO存储器的数据帧V1、V2、V3、V4、V5以及V6,其中,V1的长度为0.8K,V2的长度为1K,V3的长度为0.7K,V4的长度为0.4K,V5的长度为0.8K,V6的长度为1K,各个数据帧的长度长短不一。V1、V2、V3、V4、V5以及V6的数据总长度为4.7K。若电子设备根据固定的读取长度(例如4K)读取数据,则按序读取V1、V2、V3、V4、V5以及V6的部分数据,此时,V6数据帧中被读取的数据帧的长度为0.7K,存在0.3K的数据帧未被读取。因而,V6数据帧为不完整的数据帧,V6数据帧数据存在丢失或错乱。因此,上述根据固定的读取长度读取数据将会导致数据丢失或错乱的问题,影响电子设备的正常使用。
基于上述问题,本申请实施例提供一种数据处理方法,能够避免读取不完整的数据帧,导致数据丢失或错乱的问题。
图2是本申请实施例提供的一种数据处理方法的流程图,该数据处理方法应用于电子设备。如图2所示,数据处理方法可以包括如下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,在预设的存储区域中写入了新的数据帧之后,计算新的数据帧的结束位置至前一分段位置的数据长度。
在本申请的至少一实施例中,预设的存储区域可以是FIFO存储器内的存储区域。数据帧的结束位置是指将数据帧存储至存储区域后,在存储区域中的位置。分段位置是指数据段读取位置,数据段可以是多个数据帧的组合。存储区域内包含多个分段位置,第0个分段位置为存储区域的起始写入位置,第i个分段位置和第i+1个分段位置之间的数据长度是若干数据帧对应的数据帧长度的和值,该数据帧长度和值是小于预设长度的任意值,其中,i的初始值为0,预设长度是指FIFO存储器单次读取的最大数据长度,预设长度可以根据实际需求设置,例如,预设长度为4K。
以图1中的应用场景为例,将存储区域的起始写入位置(最左侧区域,即图1中0K对应的刻度位置)作为第0个分段位置,当将FIFO存储器的预设长度设置为4K,即FIFO存储器单次读取的最大数据长度为4K时。若电子设备按序读取V1、V2、V3、V4、V5以及V6数据帧,当按序读取到V5数据帧时,V1-V5的数据帧对应的数据帧长度和值为3.7K;当按序读取到V6数据帧时,V1-V6的数据帧对应的数据帧长度和值为4.7K。由于V1-V6的数据帧长度和值(如4.7K)已经超出了预设长度(如4K),若依照预设长度读取,会导致V6无法被完整地读取。可以理解,为保证读取数据的完整性可以将V5数据帧的结束位置作为第1个分段位置,从而确保V6数据帧的数据能够被完整读取。按照上述逻辑类推,可以得到多个分段位置,在此不做赘述。
在一实施例中,计算新的数据帧的结束位置至前一分段位置的数据长度是指计算前一分段位置与新的数据帧的结束位置间的多个数据帧的长度和值。以图1中的应用场景为例,0K对应的刻度位置为第0个分段位置,V5数据帧的结束位置作为第1个分段位置。若电子设备在FIFO存储器内的存储区域首次写入新的数据帧V1,则新的数据帧的结束位置至前一分段位置的数据长度为数据帧V1的结束位置至0K对应的刻度位置的数据长度,也即0.8K;若电子设备在FIFO存储器内的存储区域写入新的数据帧V2,则新的数据帧的结束位置至前一分段位置的数据长度为数据帧V2的结束位置至0K对应的刻度位置的数据长度,也即1.8K;若电子设备在FIFO存储器内的存储区域写入新的数据帧V3,则新的数据帧的结束位置至前一分段位置的数据长度为数据帧V3的结束位置至0K对应的刻度位置的数据长度,也即2.5K;若电子设备在FIFO存储器内的存储区域写入新的数据帧V4,则新的数据帧的结束位置至前一分段位置的数据长度为数据帧V4的结束位置至0K对应的刻度位置的数据长度,也即2.9K;若电子设备在FIFO存储器内的存储区域写入新的数据帧V5,则新的数据帧的结束位置至前一分段位置的数据长度为数据帧V5的结束位置至0K对应的刻度位置的数据长度,也即3.7K;若电子设备在FIFO存储器内的存储区域写入新的数据帧V6,则新的数据帧的结束位置至前一分段位置(第一个分段位置,即V5数据帧的结束位置)的数据长度为数据帧V6的结束位置至第1个分段位置的数据长度,也即1K。
S12,若数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置。
如上述实施例说明,预设长度是指FIFO存储器单次被读取的最大数据长度,例如,预设长度为4K。若数据长度大于预设长度,表明从前一分段位置后的数据帧开始读取当前数据段中包含的新的数据帧,将导致新的数据帧无法完整读取。因此,将前一个数据帧的结束位置作为新的分段位置,如此可以确保对当前数据段的新的数据帧能够被完整读取。
S13,响应于数据读取指令,依次读取相邻两个分段位置之间的数据,将数据至数据读取指令指定的接收方。
在本申请的至少一实施例中,数据读取指令是指用于读取存储区域内数据的指令,在接收到数据读取指令时,确定存储区域对应的多个分段位置,图3为本申请实施例提供的分段位置的示意图。其中,图3仅是一种实现S13的举例,当写入多个数据帧时,同样可以利用同样的方法进行。请参阅图3,12个方格用于标识FIFO存储器中的存储区域,每个方格标识能够存储1K的数据,图1中0K与12K用于标识存储区域的刻度值。存储区域内依次写入V1-V10数据帧,其中,V1的长度为0.8K,V2的长度为1K,V3的长度为0.7K,V4的长度为0.4K,V5的长度为0.8K,V6的长度为1K,V7的长度为0.9K,V8的长度为0.8K,V9的长度为0.7K,V10的长度为0.8K。按照上述分段位置的确定方法可确定该存储区域内存在3个分段位置(图3中箭头标识的位置为分段位置),分别为第0个分段位置(图3的0K刻度值位置)、第1个分段位置(图3中V5数据帧的结束位置)与第2个分段位置(图3中V9数据帧的结束位置)。依次读取第0个分段位置与第1个分段位置之间的数据A(例如,图1中的V1数据帧至V5数据帧间的数据为数据A),第1个分段位置与第2个分段位置之间的数据B(例如,图1中的V6数据帧至V9数据帧间的数据为数据B),将数据A与数据B传输至读取指令指定的接收方。
本申请实施例提供的数据处理方法中,在预设的存储区域中写入了新的数据帧之后,计算新的数据帧的结束位置至前一分段位置的数据长度,若新的数据帧的结束位置至前一分段位置的数据长度大于预设长度,将前一个数据帧的结束位置确定为新的分段位置,使得相邻两个分段位置之间的数据小于预设长度,本申请通过更新分段位置,使得相邻两个分段位置之间的数据始终小于预设长度,从而在依次读取相邻两个分段位置之间的数据时,能够确保读取的数据是完整的,避免了相关技术中按照固定长度去读取数据,导致的数据丢失或错乱的问题。例如,参考图3,利用本申请的方案就可以避免出现数据帧V6丢失的情况发生。因此,利用本申请的方案可以确保读取的数据是完整的。
在本申请的至少一实施例中,若数据长度小于或等于预设长度,表明从前一分段位置后的数据帧开始读取当前数据段中包含的新的数据帧,新的数据帧能够完整读取。因此,将新的数据帧的结束位置赋值给写入位置参数,其中,写入位置参数用于标识数据帧在存储区域内的写入位置,写入位置参数的初始值可以设置为存储区域的起始写入位置(参考图1中的最左侧区域)。例如,以图1为例,当数据帧V2写入时,由于数据帧V2的结束位置到前一分段位置(第0个分段位置)的数据长度为1.8K,小于预设长度,因此,此时就将1.8K对应的刻度赋值给写入位置参数。
图4是本申请实施例提供的分段位置的确定流程,如图4所示,若数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置,包括如下步骤:
S121,将N的值加1,N的初始值为0。
在一实施例中,N可用于标识同一循环的存储区域内的分段位置的数量,N的初始值为0,对应存储区域的起始写入位置(如图1最左侧)。N的取值与FIFO存储区域单次被读取的最大数据量以及存储区域的总数据量有关。
示例性地,以图1中的应用场景为例,0K对应的刻度位置为第0个分段位置,第0个分段位置对应N的值为0;从第0个分段位置依次写入数据帧V1-V6,由于V1-V6的数据帧对应的数据帧长度和值为4.7K,超过预设长度(4K),将N的值加1,也即N为1。
S122,若数据长度大于预设长度,则将写入位置参数的值赋值给第N个分段位置;第0个分段位置的值为存储区域的起始写入位置。
在一实施例中,若数据长度大于预设长度,当前的写入位置参数的值为前一个数据帧的结束位置,将前一个数据帧的结束位置作为写入位置参数的值赋值给第N个分段位置。
示例性地,以图1中的应用场景为例,第0个分段位置的值为存储区域的起始写入位置,从第0个分段位置(图1中0K对应的刻度位置)依次写入数据帧V1-V6,此时,N的值为1。确定当前的写入位置参数的值,也即V5数据帧的结束位置,将V5数据帧的结束位置赋值给第1个分段位置。
S123,将新的数据帧的结束位置赋值给写入位置参数。
在一实施例中,若数据长度大于预设长度,在将写入位置参数的值赋值给第N个分段位置后,更新写入位置参数为新的数据帧的结束位置。
示例性地,以图1中的应用场景为例,将V5数据帧的结束位置赋值给第1个分段位置后,此时,将新的数据帧V6的结束位置赋值给写入位置参数。
图5是本申请实施例提供的初始化N值的确定流程,如图5所示,该方法还包括:
S124,计算存储区域内分段位置的数量。
在一实施例中,该数量可以是经写入位置参数的值赋值后的分段位置的个数。分段位置的数量与FIFO存储区域单次被读取的最大数据量以及存储区域的总数据量有关,示例性地,电子设备从FIFO存储区域内单次读取的最大数据量为4K,存储区域的总数据量为64K。考虑每个数据帧的长度小于1K,那么单次写入存储区域的数据至少为3K。因此,N=64/3+1,N的最大取值为23,也即64K的存储区域内可以包含23个分段位置。
S125,若数量大于或等于预设数量,则将N的值初始化。
在上述实施例中,预设数量即为N的最大取值(例如,N的值为23)。若数量大于或等于预设数量,表明新的数据帧无法写入当前循环的存储区域内,需将N的值初始化。通过将N的值初始化为0,能够将新的数据帧写入到下一循环的存储区域内,实现FIFO存储器的循环利用。
在本申请的至少一实施例中,写入数据帧与读取数据帧是同时进行的,多个数据帧依序写入FIFO存储器中,写入数据帧的过程会占据FIFO存储器中一部分存储区域。依序读取FIFO存储器中的数据帧,存储区域内的数据帧被读取后可从存储区域内清除。以图1的应用场景为例,图1中0K与12K用于标识存储区域的刻度值,当前数据帧的结束位置对应存储区域的刻度值9K,当前读取数据帧的位置对应存储区域的刻度值5K。之后,在写入新的数据帧时,从刻度值9K的位置继续写入该新的数据帧;在读取数据帧时,从刻度值5K的位置继续读取数据帧。
在一实施例中,若新写入的数据帧对应的刻度值超过FIFO存储器的存储空间(例如,12K),则将新写入的数据帧重新存储至FIFO存储器对应存储区域的起始写入位置(如图1中最左侧位置),以此实现FIFO存储器的循环利用。图6是本申请实施例提供的数据帧的写入流程图,如图6所示,该方法还包括如下步骤:
S111,在存储区域写入新的数据帧时,若前一个数据帧的结束位置到存储区域的结束写入位置的长度大于或等于新的数据帧的长度,则从前一个数据帧的结束位置开始,写入新的数据帧。
在一实施例中,存储区域的结束写入位置是指存储区域能存储最大数据量的位置,以图1的应用场景为例,存储区域的结束写入位置为12K刻度值位置(最右侧区域)。通过比对前一个数据帧的结束位置到存储区域的结束写入位置的长度与新的数据帧的长度的大小关系,用于确定新的数据帧能否写入当前循环的存储区域内。
在一实施例中,若前一个数据帧的结束位置到存储区域的结束写入位置的长度大于或等于新的数据帧的长度,确定新的数据帧能写入当前循环的存储区域内。那么,新的数据帧可以从前一个数据帧的结束位置开始写入。示例性地,存储区域的起始写入位置的刻度值为0K,结束写入位置的刻度值为12K,该存储区域能够写入12K的数据量。从存储区域的起始写入位置依次写入多个数据帧,当多个数据帧的长度和值为11.2K时,存储区域剩余数据量为0.8K,也即存储区域能再写入3K数据量的数据帧。若新写入的数据帧的长度为0.7K,新的数据帧能够写入当前循环的存储区域内,则将新的数据帧依序写入存储区域。
S112,若前一个数据帧的结束位置到存储区域的结束写入位置的长度小于新的数据帧的长度,则从存储区域的起始写入位置开始,写入新的数据帧。
在一实施例中,若前一个数据帧的结束位置到存储区域的结束写入位置的长度小于新的数据帧的长度,确定新的数据帧不能写入当前循环的存储区域内,需要从存储区域的起始写入位置开始,写入新的数据帧,也即将新的数据帧写入下一循环的存储区域内。
示例性地,存储区域能够写入12K的数据量,当多个数据帧的长度和值11.2K时,存储区域能再写入0.8K数据量的数据帧。若新写入的数据帧的长度值为0.9K时,新的数据帧不能够写入当前循环的存储区域内,则此时确定新的数据帧不能写入当前循环的存储区域内,需要从存储区域的起始写入位置开始,写入新的数据帧,即从0K开始写入新的数据帧(原来该位置的数据已经被读取)。
利用本申请的方案可以避免一个数据帧的数据是连续的,不会被分割到FIFO的前后两端上,可以进一步避免数据错乱。
在本申请的至少一实施例中,还提供数据长度的确定流程,该部分描述是对应图6所示描述的后续部分。电子设备在预设的存储区域中写入了新的数据帧之后,计算新的数据帧的结束位置至前一分段位置的数据长度,包括如下步骤:
S113,在存储区域中写入了新的数据帧之后,若新的数据帧的结束位置大于前一个数据帧的结束位置,则计算新的数据帧的结束位置至前一分段位置的数据长度。
在一实施例中,图1中0K与12K用于标识存储区域的刻度值,在同一循环内,存储区域中前一个数据帧的结束位置小于新的数据帧的结束位置。以图1中的应用场景为例,V2为新的数据帧,前一个数据帧V1的结束位置为0.8K,数据帧V2的结束位置为1.8K,V1的结束位置小于V2的结束位置。
可以理解,若新的数据帧的结束位置大于前一个数据帧的结束位置,表明新的数据帧与前一个数据帧在同一循环的存储区域内,也即新的数据帧能够写入当前循环的存储区域内。此时,可以直接计算新的数据帧的结束位置至前一分段位置的数据长度。
例如,继续以图1为例,当数据帧V2的结束位置为1.8K,V1的结束位置小于V2的结束位置。因此,此时直接计算新大数据帧的结束位置至前一分段位置(0K对应刻度)的数据长度即可,计算出当前的数据长度为1.8K。
在本申请的一个实施例中,若新的数据帧的结束位置小于前一个数据帧的结束位置,则将前一个数据帧的结束位置确定为新的分段位置。
在一实施例中,若新的数据帧的结束位置小于前一个数据帧的结束位置,表明新的数据帧与前一个数据帧不在同一循环的存储区域内,也即新的数据帧无法写入当前循环的存储区域内。此时,将前一个数据帧的结束位置确定为新的分段位置。
示例性地,存储区域能够写入12K的数据量,当多个数据帧的长度和值11.2K时,存储区域能再写入0.8K数据量的数据帧。若新写入的数据帧的长度值为0.9K时,新的数据帧不能够写入当前循环的存储区域内,则此时确定新的数据帧不能写入当前循环的存储区域内,需要从存储区域的起始写入位置开始,写入新的数据帧,即从0K开始写入新的数据帧(原来该位置的数据已经被读取)。此时就将前一个数据帧的结束位置确定为新的分段位置,即将11.2K的刻度作为新的分段位置。
其中,在本申请的一个实施例中,当出现步骤S112这种情况时,对应的读取相邻两个分段位置之间的数据至所述数据读取指定的接收方时,可以将以上没有写入数据的这部分长度去掉,避免写入无效的数据。
例如,继续以图1为例,当上一个分段位置是11.2K的刻度时,写入了新的五个数据帧,分别为0.9K,1K,0.8K,0.9K和1K,数据总长度为4.6K。由于新写入的这个数据帧的长度0.9K大于FIFO剩余的0.8K,因此,新写入的数据帧从存储区域的起始写入位置开始写入,即从0K开始写入,对应的,计算下一个分段位置时,由于当新的五个数据帧中第五个数据帧1K写入时,数据长度大于预设长度,因此,将第四个数据帧的结束位置作为新的分段位置,即新的分段位置的刻度为3.6K的位置。因此,下次读取数据时,虽然相邻两个分段位置分别是11.2K和3.6K,但是读取数据时,由于FIFO中刻度的11.2-12K上没有数据,因此,在该情况,读取数据虽然还是读取11.2K-3.6K之间的数据,一样不会导致数据丢失。
在本申请的一个实施例中,若前一个数据帧的结束位置到存储区域的结束写入位置的长度小于新的数据帧的长度,则继续从前一个数据帧的结束位置开始写入,写不下的再从存储区域的起始写入位置开始写入。利用本申请的方案可以避免FIFO的数据容量浪费,每个容量都保存数据。
示例性地,存储区域能够写入12K的数据量,当多个数据帧的长度和值11.2K时,存储区域能再写入0.8K数据量的数据帧。若新写入的数据帧的长度值为0.9K时,新的数据帧不能够写入当前循环的存储区域内,则此时确定新的数据帧不能写入当前循环的存储区域内。在本方案中,出现不能写入时,可以继续从前一个数据帧的结束位置开始写入,写不下的再从存储区域的起始写入位置开始写入。
其中,在本申请的一个实施例中,当出现以上这种情况时,对应的读取相邻两个分段位置之间的数据至所述数据读取指定的接收方时,可以照常读取相邻两个分段位置之间的数据至所述数据读取指定的接收方。
例如,继续以图1为例,当上一个分段位置是11.2K的刻度时,写入了新的五个数据帧,分别为0.9K,1K,0.8K,0.9K和1K,数据总长度为4.6K。由于新写入的这个数据帧的长度0.9K大于FIFO剩余的0.8K,在该情况下,继续写入。即新的五个数据帧中的第一个数据帧有0.8K写在上一个分段位置是11.2K的后面,而剩下的0.1K就从存储区域的起始写入位置即从0K开始写入。对应的,计算下一个分段位置时,由于当新的五个数据帧中第五个数据帧1K写入时,数据长度大于预设长度,因此,将第四个数据帧的结束位置作为新的分段位置,即新的分段位置的刻度为2.7K的位置。因此,下次读取数据时,直接读取上一个分段位置即11.2K,以及下一个分段位置即2.7K之间的数据,对应的数据就是新的五个数据帧中的前四帧数据。
图7是本申请实施例提供的读取指令的响应流程图,如图7所示,电子设备依次读取相邻两个分段位置之间的数据至数据读取指令指定的接收方,包括如下步骤:
S131,计算第i个分段位置和第i+1个分段位置之间的目标数据长度;i的初始值为0。
在一实施例中,第i个分段位置和第i+1个分段位置之间包含多个数据帧,每个数据帧对应数据帧长度,计算每个数据帧对应的数据帧长度的和值作为目标数据长度。其中,i的初始值为0,也即当首次读取时,从存储区域的起始写入位置开始,依次读取存储区域内的数据。当非首次读取时,确定上一次的读取地址以及该读取地址对应的分段位置,计算该分段位置与下一分段位置间的数据长度作为目标数据长度。
S132,从读取位置参数对应的地址开始,读取目标数据长度的数据至接收方。
在一实施例中,读取位置参数用于标识存储区域内对应上一次的读取地址,目标数据长度的数据可以是小于预设长度且完整的数据。
S133,将第(i+1)个分段位置赋值给读取位置参数,将i的值加1,然后,流程返回步骤S131,继续计算第i个分段位置和第(i+1)个分段位置之间的目标数据长度。
在一实施例中,在读取第i个分段位置和第(i+1)个分段位置之间的数据后,更新读取位置参数,也即第(i+1)个分段位置为最近的读取地址。将i的值加1,然后流程返回至步骤S131,执行计算第i个分段位置和第(i+1)个分段位置之间的目标数据长度的步骤,直至将存储区域内的数据读取完成。
以图3的应用场景为例,示例性地,当首次读取时,i的初始值为0,将第0个分段位置与第1个分段位置间的数据(V1数据帧至V5数据帧)读取至接收方;之后,将i的值加1,将第1个分段位置与第2个分段位置间的数据(V6数据帧至V9数据帧)读取至接收方;以此类推,直至将存储区域内的数据读取完成。因此,利用本申请的方案进行读取,可以避免数据丢失。
请参阅图8,图8是本申请实施例提供的数据处理装置的结构示意图。在一些实施例中,数据处理装置20可以包括多个由计算机程序段所组成的功能模块。数据处理装置20中的各个程序段的计算机程序可以存储于计算机设备30的存储器中,并由至少一个处理器所执行,以执行(详见图2描述)数据处理的功能。
本实施例中,数据处理装置20根据其所执行的功能,可以被划分为多个功能模块。当数据处理装置20应用于电子设备时,功能模块可以包括:数据长度计算模块201、分段位置确定模块202以及读取指令响应模块203。本申请所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
数据长度计算模块201可以在预设的存储区域中写入了新的数据帧之后,计算新的数据帧的结束位置至前一分段位置的数据长度。
分段位置确定模块202可以在若数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置。
读取指令响应模块203可以响应于数据读取指令时,依次读取相邻两个分段位置之间的数据,将数据至数据读取指令指定的接收方。
可以理解,数据处理装置20与上述实施例的数据处理方法属于同一发明构思,数据处理装置20各模块的具体实现方式,与上述实施例中数据处理方法的各步骤对应,本申请在此不赘述。
以上所描述的模块划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在相同处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
图9是本申请实施例提供的一种电子设备的示意图。本申请实施例结合图9说明电子设备的结构。如图9所示,电子设备30包括存储器31、至少一个控制器32以及至少一条通信总线33。
本领域技术人员应该了解,图9示出的电子设备的结构并不构成本申请实施例的限定,电子设备30还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。例如,电子设备30还可以包括多个接口,第一接口用于接入负载以为负载供电。第二接口用于接入独立电池包,以增加电子设备的容量。
电子设备30还可包括客户设备,客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,电子设备30仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。
在一些实施例中,存储器31中存储有计算机程序,计算机程序被至少一个控制器32执行时实现如的数据处理方法中的全部或者部分步骤。存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据电子设备30的使用所创建的数据等。
在一些实施例中,至少一个控制器32是电子设备30的控制核心(Control Unit),利用各种接口和线路连接整个电子设备30的各个部件,通过运行或执行存储在存储器31内的程序或者模块,以及调用存储在存储器31内的数据,以执行电子设备30的各种功能和处理数据。例如,至少一个控制器32执行存储器中存储的计算机程序时实现本申请实施例中的数据处理方法的全部或者部分步骤;或者实现数据处理装置的全部或者部分功能。至少一个控制器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(CentralProcessing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,至少一条通信总线33被设置为实现存储器31以及至少一个控制器32等之间的连接通信。
尽管未示出,电子设备30还可以包括给各个部件供电的电池包,优选的,电池包可以通过电源管理装置与至少一个控制器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电子设备还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。电子设备30还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,电子设备,或者网络设备等)或控制器(processor)执行本申请各个实施例方法的部分。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。说明书中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
在预设的存储区域中写入了新的数据帧之后,计算所述新的数据帧的结束位置至前一分段位置的数据长度;
若所述数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置;
响应于数据读取指令,依次读取相邻两个分段位置之间的数据,将所述数据至所述数据读取指令指定的接收方。
2.如权利要求1所述的数据处理方法,其特征在于,在所述计算所述新的数据帧的结束位置至前一分段位置的数据长度之后,所述方法还包括:
若所述数据长度小于或等于所述预设长度,则将所述新的数据帧的结束位置赋值给写入位置参数;所述写入位置参数的初始值为所述存储区域的起始写入位置。
3.如权利要求2所述的数据处理方法,其特征在于,所述若所述数据长度大于预设长度,则将前一个数据帧的结束位置确定为新的分段位置,包括:
将N的值加1,所述N的初始值为0;
若所述数据长度大于预设长度,则将所述写入位置参数的值赋值给第N个分段位置;第0个分段位置的值为所述存储区域的起始写入位置;
将所述新的数据帧的结束位置赋值给所述写入位置参数。
4.如权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
计算所述存储区域内所述分段位置的数量;
若所述数量大于或等于预设数量,则将N的值初始化。
5.如权利要求1至4中任一项所述的数据处理方法,其特征在于,所述方法还包括:
在所述存储区域写入所述新的数据帧时,若所述前一个数据帧的结束位置到所述存储区域的结束写入位置的长度大于或等于所述新的数据帧的长度,则从所述前一个数据帧的结束位置开始,写入所述新的数据帧;
若所述前一个数据帧的结束位置到所述存储区域的结束写入位置的长度小于所述新的数据帧的长度,则从所述存储区域的起始写入位置开始,写入所述新的数据帧。
6.如权利要求5所述的数据处理方法,其特征在于,所述在预设的存储区域中写入了新的数据帧之后,计算所述新的数据帧的结束位置至前一分段位置的数据长度,包括:
在所述存储区域中写入了新的数据帧之后,若所述新的数据帧的结束位置大于前一个数据帧的结束位置,则计算所述新的数据帧的结束位置至前一分段位置的数据长度。
7.如权利要求6所述的数据处理方法,其特征在于,所述方法还包括:若所述新的数据帧的结束位置小于所述前一个数据帧的结束位置,则将所述前一个数据帧的结束位置确定为新的分段位置。
8.如权利要求1所述的数据处理方法,其特征在于,所述依次读取相邻两个分段位置之间的数据,将所述数据至所述数据读取指令指定的接收方,包括:
计算第i个分段位置和第(i+1)个分段位置之间的目标数据长度;所述i的初始值为0;
从读取位置参数对应的地址开始,读取所述目标数据长度的数据至所述接收方;
将所述第(i+1)个分段位置赋值给所述读取位置参数,将所述i的值加1,返回执行所述计算第i个分段位置和第(i+1)个分段位置之间的目标数据长度的步骤。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至8中任意一项所述的数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述的数据处理方法。
CN202310350359.0A 2023-03-28 2023-03-28 数据处理方法、电子设备及存储介质 Pending CN116360727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310350359.0A CN116360727A (zh) 2023-03-28 2023-03-28 数据处理方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310350359.0A CN116360727A (zh) 2023-03-28 2023-03-28 数据处理方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116360727A true CN116360727A (zh) 2023-06-30

Family

ID=86931705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310350359.0A Pending CN116360727A (zh) 2023-03-28 2023-03-28 数据处理方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116360727A (zh)

Similar Documents

Publication Publication Date Title
CN109740732B (zh) 神经网络处理器、卷积神经网络数据复用方法及相关设备
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
CN110780811B (zh) 数据保护方法、装置及存储介质
CN109508142A (zh) 数据存储装置及其操作方法
CN110750351A (zh) 多核任务调度器、多核任务调度方法、装置及相关产品
CN116662038B (zh) 基于共享内存的工业信息检测方法、装置、设备及介质
CN111767270A (zh) 数据迁移方法、装置、服务器及存储介质
CN114091589B (zh) 模型训练方法、装置、电子设备及介质
CN112598135A (zh) 模型训练处理方法、装置、计算机设备及介质
CN116360727A (zh) 数据处理方法、电子设备及存储介质
CN113272785B (zh) 一种挂载文件系统的方法、终端设备及存储介质
CN115756872B (zh) 基于数据分析的计算机内存释放系统
CN117056123A (zh) 数据恢复方法、装置、介质及电子设备
CN114565503B (zh) Gpu指令数据管理的方法、装置、设备及存储介质
CN111078587A (zh) 内存分配方法、装置、存储介质及电子设备
CN113704177B (zh) 一种服务器固件升级文件的存储方法、系统及相关组件
CN115454627A (zh) 一种神经网络模型的计算方法、计算机设备和存储介质
CN115827179A (zh) 一种物理机设备的算力调度方法、装置、设备及存储介质
CN115904616A (zh) 虚拟机热迁移方法、装置、设备及介质
CN114817288A (zh) 数据处理方法、装置、电子设备及存储介质
JPH04288638A (ja) コンピュータシステム
CN116569139A (zh) 车载计算机、计算机执行方法及计算机程序
CN108564170B (zh) 一种基于noc的可重构神经网络运算方法和电路
CN108959517B (zh) 文件管理方法、装置及电子设备
CN115269530A (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