CN115599307B - 数据存取方法、装置、电子设备、存储介质 - Google Patents

数据存取方法、装置、电子设备、存储介质 Download PDF

Info

Publication number
CN115599307B
CN115599307B CN202211430007.8A CN202211430007A CN115599307B CN 115599307 B CN115599307 B CN 115599307B CN 202211430007 A CN202211430007 A CN 202211430007A CN 115599307 B CN115599307 B CN 115599307B
Authority
CN
China
Prior art keywords
data
processed
storage address
address field
domain
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.)
Active
Application number
CN202211430007.8A
Other languages
English (en)
Other versions
CN115599307A (zh
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.)
Nanjing Semidrive Technology Co Ltd
Original Assignee
Nanjing Semidrive 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 Nanjing Semidrive Technology Co Ltd filed Critical Nanjing Semidrive Technology Co Ltd
Priority to CN202211430007.8A priority Critical patent/CN115599307B/zh
Publication of CN115599307A publication Critical patent/CN115599307A/zh
Application granted granted Critical
Publication of CN115599307B publication Critical patent/CN115599307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0608Saving storage space on storage systems
    • 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/0625Power saving in storage systems
    • 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/0638Organizing or formatting or addressing of data
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据存取方法、装置、电子设备,所述方法包括:响应于第一指令,获取待处理数据的深度信息和位宽信息;基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域;响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。本公开根据待存储数据的深度为该待存储数据进行地址预分配,并根据所分配地址是否存在过多浪费,当存在地址浪费的情况时,将重新为待存储数据确定粒度更小的存储地址域,直到所分配地址与待存储数据的大小相匹配,这样,避免了宝贵的存储资源的浪费。

Description

数据存取方法、装置、电子设备、存储介质
技术领域
本公开涉及存储单元的数据存取技术,尤其涉及一种数据存取方法、装置、电子设备及存储介质。
背景技术
在跨时钟域的数据传输的应用场景中,利用格雷码相邻码元之间仅有1比特(bit)的编码特性作为异步先进先出( First Input First Output,FIFO)的读写指针,通过BUFFER缓存机制实现多bit数据的跨时钟域的传输。对于异步FIFO的数据存取而言,其数据深度必须满足2的幂次方特性,对于某些FIFO深度需求大且FIFO位宽较宽的场景,会导致存储空间的大量浪费。
发明内容
本公开提供了一种数据存取方法、装置、电子设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种数据存取方法,包括:
响应于第一指令,获取待处理数据的深度信息和位宽信息;
基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域;
响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。
在一些可实施方式中,所述至少一个存储地址域包括两个以上的存储地址域;对应地,所述方法还包括:
将两个以上的存储地址域进行级联,以存储所述待处理数据。
在一些可实施方式中,所述基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域,包括:
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;
计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;
确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;
计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;
确定存储所述第二差值的所述待处理数据的第二最小存储地址域;
计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;
确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;
确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值。
在一些可实施方式中,所述方法还包括:
为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
在一些可实施方式中,所述方法还包括:
响应于所述第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
根据本公开的第二方面,提供了一种数据存取装置,包括:
获取单元,用于响应于第一指令,获取待处理数据的深度信息和位宽信息;
确定单元,用于基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域;
写单元,用于响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。
在一些可实施方式中,所述装置还包括:
级联单元,用于在所述至少一个存储地址域包括两个以上的存储地址域的情况下,将两个以上的存储地址域进行级联,以存储所述待处理数据。
在一些可实施方式中,所述确定单元,还用于:
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;
计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;
确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;
计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;
确定存储所述第二差值的所述待处理数据的第二最小存储地址域;
计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;
确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;
确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值。
在一些可实施方式中,所述级联单元,还用于:
为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
在一些可实施方式中,所述装置还包括:
读单元,用于响应于所述第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的数据存取方法的步骤。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的数据存取方法的步骤。
本公开的数据存取方法、装置、设备及存储介质,在为不同深度的待存储数据进行存储地址分配的情况下,会根据待存储数据的深度为该待存储数据进行地址预分配,并根据所分配地址是否存在过多浪费,当存在地址浪费的情况时,将重新为待存储数据确定粒度更小的存储地址域,直到所分配地址与待存储数据的大小相匹配,这样,避免了宝贵的存储资源的浪费。特别是针对缓存存储空间,本公开的技术方案能节约数据存储资源,提升了存储资源的利用率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了本公开实施例的数据存取方法的实现流程示意图一;
图2示出了本公开实施例的数据存取方法的实现流程示意图二;
图3示出了本公开实施例的数据存取方法的实现流程示意图三;
图4示出了本公开实施例的数据存取方法的流程示意图;
图5示出了本公开实施例的数据存取的实现框图;
图6示出了本公开实施例的深度为1200的数据存取的实现框图;
图7示出了本公开实施例的数据存取装置的组成结构示意图;
图8示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1示出了本公开实施例的数据存取方法的实现流程示意图一,如图1所示,本公开实施例的数据存取方法包括以下处理步骤:
步骤101,响应于第一指令,获取待处理数据的深度信息和位宽信息。
本公开实施例中,第一指令可以包括待处理数据的存储指令或写指令。在接收到第一指令后,并不是直接为待存储数据分配相应的存储地址域,而是需要获取待处理数据的深度信息和位宽信息,并主要依据待处理数据的深度信息为该待处理数据分配相应的存储地址域。特别是当待处理数据具有较宽的位宽的情况下,若为待处理数据分配的存储区不合理,将会导致存储资源的严重浪费,即会呈待处理数据的位宽级别的浪费。因此,为待处理数据分配合理的存储区显得非常重要。特别地,在存储资源紧张的情况下,如针对闪存或内存等存储资源宝贵且紧张的场景下,对待处理数据的存储资源分配将显得极为重要。例如芯片、处理器中的存储区等重要元器件中的存储资源等,每个比特位都极为重要。
步骤102,基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域。
本公开实施例中,基于待处理数据的深度信息和位宽信息,来为待处理数据确定存储地址域。作为一种示例,当为待处理数据分配的存储域的大小远大于深度信息的情况下,则直接为待处理数据分配的存储域不合理,需要重新为待处理数据分配存储域;或者,当待处理数据的位宽较宽,如当待处理数据的位宽为16bit、32bit、64bit、128bit等,或大于这些位宽的情况下,只要待处理数据的深度不是2的某次幂,则不直接为待处理数据进行地址域分配,而是需要多次处理为待处理数据进行地址域分配,即以更精细化的方式为待处理数据分配地址域,避免存储资源的浪费。
本公开实施例中,当为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,需要将将两个以上的存储地址域进行级联,以存储所述待处理数据。也就是说,需要将分配的多个存储地址域之间进行关联,以作为待处理数据的存储空间。作为一种实现方式,多个存储地址域之间可以通过指针进行级联。例如,为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
步骤103,响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域。
本公开实施例中,当确定第一指令为写指令或存储指令的情况下,将根据写指令或存储指令中的时钟信号即第一时钟信号将待处理数据写入为该待处理数据所分配的所述至少一个存储地址域中。
本公开实施例中,为待处理数据所分配的所述至少一个存储地址域中各存储地址域具有相同的位宽,即为待处理数据所分配的存储地址域具有与该待处理数据相同的位宽,以存储该待处理数据。
图2示出了本公开实施例的数据存取方法的实现流程示意图二,如图2所示,本公开实施例的数据存取方法包括以下处理步骤:
步骤201,响应于第一指令,获取待处理数据的深度信息和位宽信息。
本公开实施例中,第一指令可以包括待处理数据的存储指令或写指令。在接收到第一指令后,并不是直接为待存储数据分配相应的存储地址域,而是需要获取待处理数据的深度信息和位宽信息,并主要依据待处理数据的深度信息为该待处理数据分配相应的存储地址域。特别是当待处理数据具有较宽的位宽的情况下,若为待处理数据分配的存储区不合理,将会导致存储资源的严重浪费,即会呈待处理数据的位宽级别的浪费。因此,为待处理数据分配合理的存储区显得非常重要。特别地,在存储资源紧张的情况下,如针对闪存或内存等存储资源宝贵且紧张的场景下,对待处理数据的存储资源分配将显得极为重要。例如芯片、处理器中的存储区等重要元器件中的存储资源等,每个比特位都极为重要。
步骤202,基于所述深度信息为所述待处理数据确定至少一个存储地址域,或者,基于所述深度信息并参考位宽信息,为所述待处理数据确定至少一个存储地址域。
本公开实施例中,基于待处理数据的深度信息和位宽信息,来为待处理数据确定存储地址域。作为一种示例,当为待处理数据分配的存储域的大小远大于深度信息的情况下,则直接为待处理数据分配的存储域不合理,需要重新为待处理数据分配存储域;或者,当待处理数据的位宽较宽,如当待处理数据的位宽为16bit、32bit、64bit、128bit等,或大于这些位宽的情况下,只要待处理数据的深度不是2的某次幂,则不直接为待处理数据进行地址域分配,而是需要多次处理为待处理数据进行地址域分配,即以更精细化的方式为待处理数据分配地址域,避免存储资源的浪费。
具体地,基于所述深度信息为所述待处理数据确定至少一个存储地址域,可以包括:
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;如针对FIFO深度为2080,位宽为64bit的异步FIFO的待处理数据,可以先确定存储该待处理数据的最小存储地址域,为深度为4096,位宽为64bit的存储地址域。
计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;仍以前述的待处理数据大小为例,则第一差值为4096×64-2090×64=128384bit,很显然,该第一差值较大,说明为待处理数据分配的存储地址域不合理,存储资源浪费严重。
确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;这里的第一设定阈值可以为128bit、64bit、256bit,也可以是100bit、50bit、300bit等。
计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;这里,第二差值为:2090×64-2048×64=2688bit。
确定存储所述第二差值的所述待处理数据的第二最小存储地址域;这里,第二最小存储地址域为64×64bit。
计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;第三差值为64×64-42×64=1408bit。
确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;这里第二设定阈值可以为150bit、200bit、128bit等。
确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值。
以实际应用中需要FIFO深度为1200,位宽为32bit的异步FIFO为例,采用传统异步FIFO实现,需要2048×32 bit的存储空间,相较实际需求增加2048×32 -1200×32=27136bit的存储空间。
而根据本公开实施例的技术方案,可以先为待处理数据分配2048÷2=1024 bit、位宽为32bit的存储地址域,然后,针对剩余的待处理数据,根据本公开实施例的上述技术手段,将分别为为待处理数据分配128、32、16 且位宽均为32bit的3个存储地址域,通过所分配的4个FIFO存储地址域进行级联实现。本公开实施例减少了非必要的存储资源消耗。本领域技术人员应当理解,上述的资源分配方式仅为示例,不应解释为对本公开实施例的技术方案的限定。其他位宽和深度的待处理数据,都可以按照本申请实施例的技术方案进行存储地址域的分配,达到存储资源的节约。
本公开实施例中,当为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,需要将将两个以上的存储地址域进行级联,以存储所述待处理数据。也就是说,需要将分配的多个存储地址域之间进行关联,以作为待处理数据的存储空间。作为一种实现方式,多个存储地址域之间可以通过指针进行级联。例如,为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
步骤203,响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域。
本公开实施例中,当确定第一指令为写指令或存储指令的情况下,将根据写指令或存储指令中的时钟信号即第一时钟信号将待处理数据写入为该待处理数据所分配的所述至少一个存储地址域中。
本公开实施例中,为待处理数据所分配的所述至少一个存储地址域中各存储地址域具有相同的位宽,即为待处理数据所分配的存储地址域具有与该待处理数据相同的位宽,以存储该待处理数据。
图3示出了本公开实施例的数据存取方法的实现流程示意图三,如图3所示,本公开实施例的数据存取方法包括以下处理步骤:
步骤301,响应于第一指令,获取待处理数据的深度信息和位宽信息。
本公开实施例中,第一指令可以包括待处理数据的存储指令或写指令。在接收到第一指令后,并不是直接为待存储数据分配相应的存储地址域,而是需要获取待处理数据的深度信息和位宽信息,并主要依据待处理数据的深度信息为该待处理数据分配相应的存储地址域。特别是当待处理数据具有较宽的位宽的情况下,若为待处理数据分配的存储区不合理,将会导致存储资源的严重浪费,即会呈待处理数据的位宽级别的浪费。因此,为待处理数据分配合理的存储区显得非常重要。特别地,在存储资源紧张的情况下,如针对闪存或内存等存储资源宝贵且紧张的场景下,对待处理数据的存储资源分配将显得极为重要。例如芯片、处理器中的存储区等重要元器件中的存储资源等,每个比特位都极为重要。
步骤302,基于所述深度信息为所述待处理数据确定至少一个存储地址域,或者,基于所述深度信息并参考位宽信息,为所述待处理数据确定至少一个存储地址域。
本公开实施例中,基于待处理数据的深度信息和位宽信息,来为待处理数据确定存储地址域。作为一种示例,当为待处理数据分配的存储域的大小远大于深度信息的情况下,则直接为待处理数据分配的存储域不合理,需要重新为待处理数据分配存储域;或者,当待处理数据的位宽较宽,如当待处理数据的位宽为16bit、32bit、64bit、128bit等,或大于这些位宽的情况下,只要待处理数据的深度不是2的某次幂,则不直接为待处理数据进行地址域分配,而是需要多次处理为待处理数据进行地址域分配,即以更精细化的方式为待处理数据分配地址域,避免存储资源的浪费。
具体地,基于所述深度信息为所述待处理数据确定至少一个存储地址域,可以包括:
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;如针对FIFO深度为2080,位宽为64bit的异步FIFO的待处理数据,可以先确定存储该待处理数据的最小存储地址域,为深度为4096,位宽为64bit的存储地址域。
计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;仍以前述的待处理数据大小为例,则第一差值为4096×64-2090×64=128384bit,很显然,该第一差值较大,说明为待处理数据分配的存储地址域不合理。
确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;这里的第一设定阈值可以为128bit、64bit、256bit,也可以是100bit、50bit、300bit等。
计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;这里,第二差值为:2090×64-2048×64=2688bit。
确定存储所述第二差值的所述待处理数据的第二最小存储地址域;这里,第二最小存储地址域为64×64bit。
计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;第三差值为64×64-42×64=1408bit。
确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;这里第二设定阈值可以为150bit、200bit、128bit等。
确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值。
以实际应用中需要FIFO深度为1200,位宽为32bit的异步FIFO为例,采用传统异步FIFO实现,需要2048×32 bit的位存储空间,相较实际需求增加2048×32 -1200×32=27136bit的位存储空间。
而根据本公开实施例的技术方案,可以先为待处理数据分配2048÷2=1024 bit、位宽为32bit的存储地址域,然后,针对剩余的待处理数据,根据本公开实施例的上述技术手段,将分别为为待处理数据分配128、32、16 且位宽均为32bit的3个存储地址域,通过所分配的4个FIFO存储地址域进行级联实现。本公开实施例减少了非必要的存储资源消耗。本领域技术人员应当理解,上述的资源分配方式仅为示例,不应解释为对本公开实施例的技术方案的限定。其他位宽和深度的待处理数据,都可以按照本申请实施例的技术方案进行存储地址域的分配,达到存储资源的节约。
本公开实施例中,当为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,需要将将两个以上的存储地址域进行级联,以存储所述待处理数据。也就是说,需要将分配的多个存储地址域之间进行关联,以作为待处理数据的存储空间。作为一种实现方式,多个存储地址域之间可以通过指针进行级联。例如,为待处理数据所分配的至少一个存储地址域包括两个以上的存储地址域的情况下,为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
步骤303,响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域。
本公开实施例中,当确定第一指令为写指令或存储指令的情况下,将根据写指令或存储指令中的时钟信号即第一时钟信号将待处理数据写入为该待处理数据所分配的所述至少一个存储地址域中。
本公开实施例中,为待处理数据所分配的所述至少一个存储地址域中各存储地址域具有相同的位宽,即为待处理数据所分配的存储地址域具有与该待处理数据相同的位宽,以存储该待处理数据。
步骤304,响应于所述第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
本公开实施例中,第二指令可以包括读取指令,即从FIFO级联的存储地址域中读取所存储的相关数据。
以下通过具体示例,进一步阐明本公开实施例的技术方案的本质。
图4示出了本公开实施例的数据存取方法的流程示意图,如图4所示,本公开实施例的异步FIFO数据存取方法包括以下步骤:
步骤401,根据具体应用中的读写时钟频率确定需要的异步FIFO的深度及位宽。
在设计初期,首先根据项目实际应用需求确定需要的异步FIFO的深度及位宽。
步骤402,以2的幂次方拆分异步FIFO深度。
步骤403,根据拆分的异步FIFO的数目和深度,确定各自需要的地址环回边界及读写控制单元的分区访问设计。
以2的幂次方拆分异步FIFO深度,并确定异步FIFO的数目和各自的深度指标。然后根据拆分的数目及深度确定各个FIFO需要的地址环回边界及读写访问控制单元的分区访问设计。
步骤404,级联上述拆分后的不同深度,相同位宽的FIFO存储域。
图5示出了本公开实施例的数据存取的实现框图,如图5所示,示出了本公开实施例的任意深度的异步FIFO实现方式,其中,写访问控制单元主要由写时钟驱动,负责写地址通路的地址译码并根据译码结果和对应FIFO的满状态标识完成对该FIFO存储单元的写操作。通过写访问控制单元,可以将待处理数据写入根据本公开实施例的前述分配的存储地址域中。
对应地,读访问控制单元主要由读时钟驱动,负责读地址通路的地址译码并根据译码结果和对应的FIFO的空状态标识完成对该FIFO存储单元的读操作。
本公开实施例中,异步FIFO级联单元的设置,可以根据具体实际项目的待处理数据的需求,由不同类型的2的幂次方的FIFO存储地址域组成。通过不同2的幂次方的FIFO存储地址域结构上的级联,便可实现任意深度的异步FIFO。相较传统异步FIFO仅能以2的幂次方作为深度这一限制,本公开实施例技术方案巧妙地通过结构的级联便可实现任意深度的异步FIFO。
图6示出了本公开实施例的深度为1200的数据存取的实现框图,如图6所示,以实际应用中需要的待存储数据的深度为1200,位宽为32bit的异步FIFO为例,采用传统异步FIFO实现,需要2048×32 bit的FIFO存储空间,相较实际需求增加2048×32 -1200×32=27136bit的存储空间。
而根据本公开实施例的技术方案,可以先为待处理数据分配2048÷2=1024 bit、位宽为32bit的存储地址域,然后,针对剩余的待处理数据,根据本公开实施例的上述技术手段,将分别为为待处理数据分配128、32、16 且位宽均为32bit的3个存储地址域,通过所分配的4个FIFO存储地址域进行级联实现。本公开实施例减少了非必要的存储资源消耗。
本领域技术人员应当理解,图6所示的资源分配方式仅为示例,不应解释为对本公开实施例的技术方案的限定。其他位宽和深度的待处理数据,都可以按照本申请实施例的技术方案进行存储地址域的分配,达到存储资源的节约。
图7示出了本公开实施例的数据存取装置的组成结构示意图,如图7所示,本公开实施例的数据存取装置包括:
获取单元70,用于响应于第一指令,获取待处理数据的深度信息和位宽信息;
确定单元71,用于基于所述深度信息和/或所述位宽信息为所述待处理数据确定至少一个存储地址域;
写单元72,用于响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。
在图7所示的数据存取装置的基础上,所述装置还可以包括:
级联单元(图7中未示出),用于在所述至少一个存储地址域包括两个以上的存储地址域的情况下,将两个以上的存储地址域进行级联,以存储所述待处理数据。
在一些可实施方式中,所述确定单元71,还用于:
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;
计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;
确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;
计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;
确定存储所述第二差值的所述待处理数据的第二最小存储地址域;
计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;
确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;
确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值。
在一些可实施方式中,所述级联单元,还用于:
为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
在图7所示的数据存取装置的基础上,所述装置还可以包括:
读单元(图7未示出),用于响应于所述第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
在示例性实施例中,获取单元70、确定单元71、写单元72、级联单元、读单元等可以被一个或多个中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,GraphicsProcessing Unit)、应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro ControllerUnit)、微处理器(Microprocessor)、或其他电子元件实现。
关于上述实施例中的装置,其中各个模块及单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开的实施例,本公开还记载了一种电子设备和一种可读存储介质。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数据存取方法。例如,在一些实施例中,数据存取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的数据存取方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据存取方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种数据存取方法,其特征在于,所述方法包括:
响应于第一指令,获取待处理数据的深度信息和位宽信息;
根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;确定存储所述第二差值的所述待处理数据的第二最小存储地址域;计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值;
响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。
2.根据权利要求1所述的方法,其特征在于,所述至少一个存储地址域包括两个以上的存储地址域;对应地,所述方法还包括:
将两个以上的存储地址域进行级联,以存储所述待处理数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
响应于第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
5.一种数据存取装置,其特征在于,所述装置包括:
获取单元,用于响应于第一指令,获取待处理数据的深度信息和位宽信息;
确定单元,用于根据所述深度信息确定存储所述待处理数据的第一最小存储地址域;计算所述第一最小存储地址域的地址大小与所述待处理数据的比特位之间的第一差值;确定所述第一差值大于或等于第一设定阈值的情况下,将所述第一最小存储地址域的地址大小的一半作为存储所述待处理数据的第一存储地址域;计算所述待处理数据的比特位与所述第一最小存储地址域的地址大小的一半的第二差值;确定存储所述第二差值的所述待处理数据的第二最小存储地址域;计算所述第二最小存储地址域的地址大小与所述第二差值之间的第三差值;确定所述第三差值小于第二设定阈值的情况下,将所述第二最小存储地址域作为存储所述待处理数据的第二存储地址域;确定所述第三差值大于或等于第二设定阈值的情况下,将所述第二最小存储地址域的一半作为存储所述待处理数据的第二存储地址域,并继续确定存储所述第三差值的所述待处理数据的最小存储地址域,直到所确定的最小存储地址域的地址大小小于对应的设定阈值;
写单元,用于响应于所述第一指令中的第一时钟信号,将所述待处理数据写入所述至少一个存储地址域;其中,所述至少一个存储地址域中各存储地址域具有相同的所述位宽信息。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
级联单元,用于在所述至少一个存储地址域包括两个以上的存储地址域的情况下,将两个以上的存储地址域进行级联,以存储所述待处理数据。
7.根据权利要求5所述的装置,其特征在于,所述级联单元,还用于:
为所述至少一个存储地址域中各存储地址域确定地址环回边界和访问控制单元的分区访问方式,将所述至少一个存储地址域中各存储地址域通过指针进行级联。
8.根据权利要求5至7任一项所述的装置,其特征在于,所述装置还包括:
读单元,用于响应于第二指令中的第二时钟信号,驱动读访问控制单元在目标存储地址域进行地址译码,并根据地址译码结果和所述目标存储地址域的空状态标识完成所述目标存储地址域的目标数据的读操作。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至4任一项所述的数据存取方法的步骤。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1至4任一项所述的数据存取方法的步骤。
CN202211430007.8A 2022-11-16 2022-11-16 数据存取方法、装置、电子设备、存储介质 Active CN115599307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211430007.8A CN115599307B (zh) 2022-11-16 2022-11-16 数据存取方法、装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211430007.8A CN115599307B (zh) 2022-11-16 2022-11-16 数据存取方法、装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN115599307A CN115599307A (zh) 2023-01-13
CN115599307B true CN115599307B (zh) 2023-03-31

Family

ID=84853711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211430007.8A Active CN115599307B (zh) 2022-11-16 2022-11-16 数据存取方法、装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN115599307B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760109B (zh) * 2012-06-15 2016-03-30 华为技术有限公司 数据的通信方法、装置及系统
CN108959127B (zh) * 2018-05-31 2021-02-09 华为技术有限公司 地址转换方法、装置及系统
CN113435570B (zh) * 2021-05-07 2024-05-31 西安电子科技大学 可编程卷积神经网络处理器、方法、设备、介质、终端

Also Published As

Publication number Publication date
CN115599307A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN112540731B (zh) 数据的追加写方法、装置、设备、介质和程序产品
CN114936173B (zh) 一种eMMC器件的读写方法、装置、设备和存储介质
CN117236236B (zh) 一种芯片设计数据管理方法、装置、电子设备及存储介质
CN113010325B (zh) 一种读写锁的实现方法、装置及电子设备
CN113590329A (zh) 资源处理方法及装置
CN115599307B (zh) 数据存取方法、装置、电子设备、存储介质
CN116594563A (zh) 分布式存储扩容方法、装置、电子设备和存储介质
CN113377295B (zh) 多生产者单消费者的数据存储和读取方法、装置、设备
CN115438007A (zh) 一种文件合并方法、装置、电子设备及介质
CN114564149A (zh) 一种数据存储方法、装置、设备及存储介质
CN115292662B (zh) 一种卷积加速运算方法、装置、电子设备及存储介质
CN114707478B (zh) 映射表生成方法、装置、设备及存储介质
CN116431561B (zh) 基于异构众核加速卡的数据同步方法、装置、设备及介质
CN114816758B (zh) 资源分配方法和装置
CN117271840B (zh) 图数据库的数据查询方法、装置及电子设备
CN116841773B (zh) 数据交互方法、装置、电子设备及存储介质
CN114217872A (zh) 应用程序启动方法、装置、电子设备及存储介质
CN113220233A (zh) 数据读取方法、装置及系统
CN117312198A (zh) 一种固态硬盘控制方法、装置、设备及存储介质
CN113986134A (zh) 存储数据的方法、读取数据的方法和装置
CN115309568A (zh) 一种实现多进程文件共享的方法、装置、设备及介质
CN116204453A (zh) 多核系统的数据访问方法、装置、设备及存储介质
CN115578200A (zh) 数据处理方法、装置、电子设备及存储介质
CN115268790A (zh) 一种数据读写方法、装置、电子设备及存储介质
CN116954922A (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
GR01 Patent grant
GR01 Patent grant