CN113254392A - 用于片上系统的数据存储方法和基于片上系统的设备 - Google Patents
用于片上系统的数据存储方法和基于片上系统的设备 Download PDFInfo
- Publication number
- CN113254392A CN113254392A CN202110783241.8A CN202110783241A CN113254392A CN 113254392 A CN113254392 A CN 113254392A CN 202110783241 A CN202110783241 A CN 202110783241A CN 113254392 A CN113254392 A CN 113254392A
- Authority
- CN
- China
- Prior art keywords
- data
- chip memory
- chip
- memory
- size
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本公开涉及用于片上系统的数据存储方法和基于片上系统的设备。一种用于片上系统的数据存储的方法包括:基于数据的数据量和包括在片上系统内的片内存储器的可用存储空间,优先将数据至少部分地存储在片内存储器中;以及当存在数据的无法被片内存储器存储的部分时,将数据的无法被片内存储器存储的部分存储在位于片上系统的外部的片外存储器中。
Description
技术领域
本公开涉及片上系统,并且更具体地,涉及用于片上系统的数据存储的方法、计算装置和存储介质,以及涉及基于片上系统的设备。
背景技术
片上系统(System On Chip,在本文中也可简称为SOC)是指在单个芯片上集成一个完整的系统、对所有或部分必要的电子电路进行包分组的技术。SOC一般可以包括中央处理器(CPU)、数字和/或模拟知识产权(IP)核、外围部件电路等。随着移动智能终端领域7nm、5nm芯片的量产,标志着SOC的制造工艺正式步入10nm时代。伴随着芯片制造工艺的升级,SOC芯片可以越来越小而片内集成的CPU和IP核的数量可以越来越多,使得SOC的集成度越来越高。但是,由于SOC通常在片外进行存储,导致SOC的整体性能越来越多地受限于片外存储器的性能(诸如访问带宽、功耗、延迟等)。因此,需要改进用于SOC的存储方案,从而进一步降低SOC的整体功耗。
发明内容
根据本公开的第一方面,提供了一种用于片上系统的数据存储的方法,该方法包括:基于数据的数据量和包括在片上系统内的片内存储器的可用存储空间,优先将数据至少部分地存储在片内存储器中;以及当存在数据的无法被片内存储器存储的部分时,将数据的无法被片内存储器存储的部分存储在位于片上系统的外部的片外存储器中。
在一些实施例中,该方法还包括:当数据的数据量未超过片内存储器的可用存储空间的大小时,将数据完全存储在片内存储器中。
在一些实施例中,该方法还包括:当数据的数据量超过片内存储器的可用存储空间的大小时,将数据划分为多个数据块;从多个数据块中选择数据块以存储在片内存储器中,使得所选择的数据块的数据量之和不超过片内存储器的可用存储空间的大小;以及将多个数据块中的其余数据块存储在片外存储器中。
在一些实施例中,从多个数据块中选择数据块以存储在片内存储器中包括:对于多个数据块按照数据块的预定序列依次进行数据块的数据量与片内存储器的剩余存储空间的大小的比较,并将其数据量未超过片内存储器的剩余存储空间的大小的数据块存储在片内存储器中。
在一些实施例中,该方法还包括:比较多个数据块中的第一数据块的数据量与片内存储器的剩余存储空间的大小;当第一数据块的数据量未超过片内存储器的剩余存储空间的大小时,将第一数据块存储在片内存储器中;以及当第一数据块的大小超过片内存储器的剩余存储空间的大小时,将第一数据块存储在片外存储器中。
在一些实施例中,在因第一数据块的数据量未超过片内存储器的剩余存储空间的大小而将第一数据块存储在片内存储器中之后,该方法还包括:将片内存储器的剩余存储空间的大小更新为减去第一数据块的数据量;比较多个数据块中的第二数据块的数据量与片内存储器的更新后的剩余存储空间的大小;当第二数据块的数据量未超过片内存储器的更新后的剩余存储空间的大小时,将第二数据块存储在片内存储器中;以及当第二数据块的数据量超过片内存储器的更新后的剩余存储空间的大小时,将第二数据块存储在片外存储器中。
在一些实施例中,当第二数据块被存储在片内存储器中时,第二数据块在片内存储器中的存储地址相对于第一数据块在片内存储器中的存储地址的偏移基于第一数据块的数据量。
在一些实施例中,在因第一数据块的数据量超过片内存储器的剩余存储空间的大小而将第一数据块存储在片外存储器中之后,该方法还包括:确定片内存储器中存储的数据块数量;以及将多个数据块中的尚未被存储的数据块都存储在片外存储器中。
在一些实施例中,在读取多个数据块中的数据块时,基于数据块在预定序列中的位置和片内存储器中存储的数据块数量,确定是从片内存储器中还是从片外存储器中读取数据块。
在一些实施例中,当数据的数据量超过片内存储器的可用存储空间的大小时,基于片外存储器的访问带宽、功耗和延迟中的一者或多者确定数据中的优先被片内存储器存储的部分。
在一些实施例中,数据中的优先被片内存储器存储的部分是数据中的被高频访问的部分。
在一些实施例中,数据是由包括在片上系统中的计算单元生成的。
根据本公开的第二方面,提供了一种基于片上系统的设备,该设备包括:片上系统芯片,该片上系统芯片包括总线、分别作为知识产权核耦合到该总线的多个计算单元以及作为知识产权核耦合到该总线的片内存储器;以及片外存储器,该片外存储器位于片上系统芯片的外部并且耦合到该总线,其中该多个计算单元中的至少一个计算单元生成的数据优先由片内存储器存储。
在一些实施例中,该设备还包括控制器,该控制器被配置为通过执行根据本公开的第一方面所述的方法来控制数据在片内存储器和片外存储器之间的分布式存储。
在一些实施例中,控制器位于片上系统芯片内部。
在一些实施例中,由位于该设备外部的装置通过执行根据本公开的第一方面所述的方法来控制数据在片内存储器和片外存储器之间的分布式存储。
在一些实施例中,片内存储器包括被配置用于控制是否启用片内存储器的开关。
在一些实施例中,片内存储器包括多段存储空间和被配置用于控制是否启用各段存储空间的多个开关。
根据本公开的第三方面,提供了一种用于片上系统的数据存储的计算装置,该计算装置包括:一个或多个处理器;以及存储计算机可执行指令的存储器,计算机可执行指令在被一个或多个处理器执行时使得一个或多个处理器执行根据本公开的第一方面所述的方法。
根据本公开的第四方面,提供了一种其上存储有计算机可执行指令的非瞬态存储介质,计算机可执行指令在被计算机执行时使得计算机执行根据本公开的第一方面所述的方法。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是根据本公开的一些实施例的基于片上系统的设备的示意性框图;
图2是图1的设备中包括的片内存储器的示意性框图;
图3是根据本公开的一些实施例的用于片上系统的数据存储的方法的流程图;
图4是根据本公开的一些实施例的用于片上系统的数据存储的方法的流程图;
图5是根据本公开的一些实施例的用于片上系统的数据存储的方法的流程图;
图6A至图6C示意性地示出了在根据本公开的实施例的基于片上系统的设备中进行数据存储的示例;
图7是根据本公开的一些实施例的用于片上系统的数据存储的计算装置的示意性框图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应当注意,除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的哈希引擎是以示例性的方式示出,来说明本公开中的电路的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
通常,SOC所使用的存储空间由片外存储器(诸如双倍数据速率存储器(DDR)、同步动态随机存取存储器(SDRAM)等)提供。这些片外存储器以相对较低的成本提供大容量的数据存储。SOC通过与片外存储器通信来访问片外存储器以将数据写入到片外存储器中和/或从片外存储器读取数据。随着SOC上处理的数据量增大,片外存储器的访问带宽会导致SOC的性能瓶颈。由于芯片制造工艺的进步,SOC芯片的可用面积已经相对“宽裕”。因此,为了进一步降低SOC的整体功耗,本发明人提出在SOC片内设置附加的存储空间作为在SOC片外的主存储器的扩展,使得SOC能够在片内和片外进行分布式存储。这样,由于片内存储空间相比于片外存储空间离SOC内的计算单元更近,因此通过优先将数据存储在片内,能够降低片外存储器的访问带宽,实现SOC整体功耗的降低。
参考图1,根据本公开的一些实施例的基于片上系统的设备100可以包括片上系统(SOC)芯片101。SOC芯片101可以包括总线102、多个计算单元(例如第一计算单元1031、第二计算单元1032、第三计算单元1033、……、第m计算单元103m(m为正整数))和片内存储器104。总线102可以是诸如高级扩展接口(Advanced Extensible Interface,AXI)总线之类的任何合适的总线结构。各个计算单元分别作为IP核耦合到总线102。片内存储器104也作为普通的IP核耦合到总线102,因此片内存储器104的存储空间可以由SOC芯片内的所有IP核共享。片外存储器105可以位于SOC芯片101的外部并且耦合到SOC芯片101的总线102。片内存储器104和片外存储器105对于SOC芯片中的各个计算单元均是可访问的,因此各个计算单元可以将所生成的数据写入片内存储器104和片外存储器105,并且也可以从片内存储器104和片外存储器105中读取需要的数据。特别地,SOC芯片101的多个计算单元中的至少一个计算单元生成的数据优先由片内存储器104存储。
由于SOC芯片的可用面积相对于片外而言仍较为有限,因此片内存储器104的存储空间通常小于片外存储器105的存储空间。对于设备100来说,片外存储器105可以作为主存储器,而片内存储器104可以作为片外存储器105在片内的扩展。片外存储器105和片内存储器104可以采用任何合适形式的存储器,其可以包括暂态存储器或非暂态存储器,或者可以包括易失性存储器或非易失性存储器。作为非限制性示例,片外存储器105可以是DDR,片内存储器104可以是SRAM。可以理解,虽然设备100在图中被示出为包括一个片内存储器104和一个片外存储器105,但是本公开不限于此,设备100可以包括一个或多个片内存储器104和一个或多个片外存储器105,每个片内存储器104都可以作为SOC芯片的IP核直接挂在总线102上。这些片内存储器104和片外存储器105共同用于设备100的数据存储。
下面结合图2描述片内存储器104的示例性结构。片内存储器104可以包括多段存储空间,每段存储空间有相应的大小以及在片内存储器104中的存储地址。各段存储空间的大小可以彼此相同,也可以不同。每段存储空间的后一段存储空间的存储地址相对于该段存储空间的存储地址的偏移可以基于该段存储空间的大小。如图所示,存储器104可以包括N段存储空间(N为正整数),其中第x(1≤x≤N,x为正整数)段存储空间的大小为Len_x并且存储地址为Addr_Offset_x,第x+1段存储空间的大小为Len_x+1并且存储地址为Addr_Offset_x+1=Addr_Offset_x+Len_x。因此,片内存储器104的可用存储空间的大小OnChipMem_Size可以为各段存储空间的大小之和。在一些实施例中,片内存储器104可以包括被配置用于控制是否启用片内存储器104的开关En。在一些实施例中,片内存储器104可以包括被配置用于控制是否启用各段存储空间的多个开关En_1、En_2、……、En_N。这些开关可以以硬件的形式被实施,以用于控制是否启用片内存储器104所包括的存储电路的部分或全部。这样,当片内存储器104所包括的存储电路的部分或全部发生故障时,能够在禁用片内存储器104所包括的存储电路的故障部分的同时通过片内存储器104所包括的存储电路的正常部分和片外存储器105来实现存储功能,增强了设备100的鲁棒性。
在一些实施例中,设备100可以包括控制器106。控制器106可以被配置用于控制数据在片内存储器104和片外存储器105之间的分布式存储。在一些实施例中,控制器106可以位于SOC芯片101内部,如图1所示。例如,控制器106可以是SOC芯片101的中央处理器,或者可以是与SOC芯片101的中央处理器分开的控制器。在另一些实施例中,控制器106可以位于SOC芯片101外部。下面将描述可以由控制器106执行用来控制数据在片内存储器104和片外存储器105之间的分布式存储的方法。
图3示出了根据本公开的一些实施例的用于片上系统的数据存储的方法200。如图3所示,方法200可以包括:在步骤S201处,基于数据的数据量和包括在片上系统内的片内存储器(例如SOC芯片101内部的片内存储器104)的可用存储空间,优先将数据至少部分地存储在片内存储器中;以及在步骤S202处,当存在数据的无法被片内存储器存储的部分时,将数据的无法被片内存储器存储的部分存储在位于片上系统的外部的片外存储器(例如SOC芯片101外部的片外存储器105)中。也就是说,在片内存储器的存储空间未被完全占用时,优先使用片内存储器的存储空间;当片内存储器的存储空间已被完全占用或者不足以将数据完全存储在其中时,才使用片外存储器的存储空间。
在一些实施例中,方法200可以包括当数据的数据量未超过片内存储器的可用存储空间的大小时,将数据完全存储在片内存储器中。
在一些实施例中,方法200可以包括:当数据的数据量超过片内存储器的可用存储空间的大小时,可以将数据划分为多个数据块;从该多个数据块中选择数据块以存储在片内存储器中,使得所选择的数据块的数据量之和不超过片内存储器的可用存储空间的大小;以及将该多个数据块中的其余数据块存储在片外存储器中。各个数据块的数据量可以是彼此相同的,也可以是彼此不同的。在一些示例中,从该多个数据块中选择数据块以存储在片内存储器中,使得所选择的数据块的数据量之和在不超过片内存储器的可用存储空间的大小的情况下达到最大值。
在一些实施例中,当数据的数据量超过片内存储器的可用存储空间的大小时,可以基于片外存储器的访问带宽、功耗和延迟中的一者或多者确定数据中的优先被片内存储器存储的部分。例如,数据中的优先被片内存储器存储的部分是数据中的被高频访问的部分。因此,当数据被划分为多个数据块时,从该多个数据块中选择数据块以存储在片内存储器中还可以使得片外存储器的访问带宽、功耗和延迟中的一者或多者最小。
具体地,在一些示例中,从多个数据块中选择数据块以存储在片内存储器中可以包括:对于多个数据块按照数据块的预定序列依次进行数据块的数据量与片内存储器的剩余存储空间的大小的比较,并将其数据量未超过片内存储器的剩余存储空间的大小的数据块存储在片内存储器中。例如,以一帧图像数据为例,数据块的预定序列可以是在该帧图像中按照Raster扫描方式编号的数据块序列,因此可以按照第一行第一列的数据块、第一行第二列的数据块、……、第一行最后一列的数据块、第二行第一列的数据块、第二行第二列的数据块、……、最后一行第一列的数据块、……、最后一行最后一列的数据块的序列依次进行数据块的数据量与片内存储器的剩余存储空间的大小的比较。当然,也可以采取其它合适的序列。例如也可以基于数据块对片外存储器的访问带宽、功耗和延迟中的一者或多者来对多个数据块排序。作为非限制性示例,数据块的预定序列可以按照数据块被访问的频率从高到低的顺序。数据块的预定序列也可以是任意排列的序列。
在一些示例中,方法还可以包括:比较多个数据块中的第一数据块的数据量与片内存储器的剩余存储空间的大小;当第一数据块的数据量未超过片内存储器的剩余存储空间的大小时,将第一数据块存储在片内存储器中;以及当第一数据块的大小超过片内存储器的剩余存储空间的大小时,将第一数据块存储在片外存储器中。一方面,在因第一数据块的数据量未超过片内存储器的剩余存储空间的大小而将第一数据块存储在片内存储器中之后,方法可以进一步包括将片内存储器的剩余存储空间的大小更新为减去第一数据块的数据量;比较多个数据块中的第二数据块的数据量与片内存储器的更新后的剩余存储空间的大小;当第二数据块的数据量未超过片内存储器的更新后的剩余存储空间的大小时,将第二数据块存储在片内存储器中;以及当第二数据块的数据量超过片内存储器的更新后的剩余存储空间的大小时,将第二数据块存储在片外存储器中。第二数据块可以是在数据块的序列当中紧接在第一数据块之后的数据块。当第二数据块也被存储在片内存储器中时,第二数据块在片内存储器中的存储地址相对于第一数据块在片内存储器中的存储地址的偏移可以基于第一数据块的数据量。另一方面,在因第一数据块的数据量超过片内存储器的剩余存储空间的大小而将第一数据块存储在片外存储器中之后,方法可以进一步包括:确定片内存储器中存储的数据块数量;及将多个数据块中的尚未被存储的数据块都存储在片外存储器中。在一些示例中,在已知数据块的序列和片内存储器中存储的数据块数量的情况下,在读取经由片内存储器和片外存储器所共同存储的多个数据块中的数据块时,基于要读取的数据块在预定序列中的位置和片内存储器中存储的数据块数量,可以确定是从片内存储器中还是从片外存储器中读取该数据块。
下面结合图4描述根据本公开的实施例的用于片上系统的数据存储方法的一个具体示例300。数据被分成n个数据块(n为正整数)。在片内存储器中用于存储的第一个数据块的存储地址可以被表示为Add_Offset[1]=0。在步骤S301中,方法300开始于第1(i=1)数据块。在步骤S302中,确定第i数据块的数据量是否超过片内存储器的剩余存储空间的大小。如果第i数据块的数据量未超过片内存储器的剩余存储空间的大小(在步骤S302中为“否”),则方法300前进到步骤S303。在步骤S303处,将第i数据块存储在片内存储器中。在步骤S304中,将片内存储器的剩余空间大小更新为减去第i数据块的数据量。之后,在步骤S305中,确定i是否小于n,即确定是否还有数据块未被存储。如果i小于n(在步骤S305中为“是”),则方法300前进到步骤S306。在步骤S306中,i递增1(即将处理对象更新为下一数据块,此后还可以进一步把在片内存储器中用于存储数据块的存储地址更新Add_Offset[i]=Add_Offset[i-1]+Len[i-1],Len指示数据块的数据量),然后方法300返回步骤S302。如果i不小于n(在步骤S305中为是“否”),则说明所有数据块均已被存储,则方法300结束。如果在步骤S302中确定第i数据块的数据量超过片内存储器的剩余存储空间的大小(在步骤S302中为“是”),则方法300前进到步骤S307。在步骤S307中,确定片内存储器中存储的数据块数量为(i-1)。在步骤S308中,将第i至第n数据块都存储在片外存储器中。之后,方法300结束。
假设通过方法300最终将前x个数据块存储在片内存储器中,并将后n-x个数据块存储在片外存储器中。那么在进行读操作时,如果要读取的是第y个数据块,那么当y不大于x时,可以从片内存储器进行读取,当y大于x时,可以从片外存储器进行读取。
图5示出了图4的方法300的一种变型300’,该变型300’尤其可以适用于各个数据块的数据量不同的情况。为了避免赘述,下面描述方法300’与方法300的不同之处。方法300’与方法300的不同之处主要在于步骤S302的“是”分支之后的操作。当方法300’ 在步骤S302中确定第i数据块的数据量超过片内存储器的剩余存储空间的大小(在步骤S302中为“是”),则方法300前进到步骤S309。在步骤S309中,方法300’将第i数据块存储在片外存储器中,然后方法300’前进到步骤S305。
在方法300’中,可能导致多个数据块中的非连续数据块存储在片内存储器中。但是,仍然可以根据要读取的数据块在用于存储数据块的序列中的位置和片内存储器中存储的数据块数量确定在读取操作中是从片内存储器还是从片外存储器进行读取。假设通过方法300’最终将第1至x个和第x+3个数据块存储在片内存储器中,并将第x+1至x+2个和第x+4至第n个数据块存储在片外存储器中。那么在进行读操作时,如果要读取的是第y个数据块,那么当y∈[1, x]∪{x+3}时,可以从片内存储器进行读取,当y∈{x+1, x+2}∪[x+4, n]时,可以从片外存储器进行读取。
图6A至图6C示意性地示出了在根据本公开的实施例的基于片上系统的设备中进行数据存储的示例。在图6A至图6C的示例中,基于片上系统的设备可以用于处理图像/视频数据。SOC芯片中的计算单元例如可以包括图像信号处理单元ISP、视频处理单元VPU、神经网络处理单元NPU等。假设片内存储器的可用存储空间的大小为8MB。下面以VPU为例。
假设进行4K@60Fps的编码,则每帧原始图像(Ori)/参考图像(Ref)/重建图像(Rec)的数据量分别为8MB(只考虑亮度分量)。在非压缩场景下,如图6A所示,Ref数据和Rec数据各自可以分别在片内存储器中存储4MB并在片外存储器中存储4MB,这样需要由片外存储器存储的Ref数据和Rec数据可以从2×8MB减小到2×4MB,片外存储器的占用空间减小50%从而导致访问带宽降低50%。在压缩场景下,如图6B所示,如果以无损压缩率50%进行估算,则压缩后的Ref数据和Rec数据各自为4MB。此时,压缩后的Ref数据和Rec数据可以完全存储在片内存储器中,而不需要存储到片外存储器。
假设进行2K@60Fps的编码,则每帧Ori/Ref/Rec的数据量分别为3MB(2MB亮度分量和1MB色度分量)。此时,如图6C所示,Ref数据和Rec数据可以完全存储在片内存储器中,而不需要存储到片外存储器。另外,片内存储器还具有2MB的剩余存储空间可用于其它数据类型(例如Ori数据)或供其它IP核使用。
因此,通过在片内存储器和片外存储器中进行数据的分布式存储,可以由片内数据和片外数据共同组成一帧完整的数据,降低片外存储器所需的存储空间及其访问带宽,从而降低片外存储器的功耗,进而降低SOC的整体功耗。
以上描述的方法可以由设备100的控制器106执行以控制数据在片内存储器104和片外存储器105之间的分布式存储。在一些实施例中,可以由位于设备100外部的装置通过执行上述方法来控制数据在片内存储器104和片外存储器105之间的分布式存储。
本公开还可以提供一种计算装置,该计算装置可以包括一个或多个处理器以及存储计算机可执行指令的存储器,计算机可执行指令在被一个或多个处理器执行时使得一个或多个处理器执行根据本公开的前述任一实施例所述的方法。如图7所示,计算装置400可以包括(一个或多个)处理器401以及存储计算机可执行指令的存储器402,计算机可执行指令在被(一个或多个)处理器401执行时使得(一个或多个)处理器401执行根据本公开的前述任一实施例所述的方法。(一个或多个)处理器401例如可以是计算装置400的中央处理单元(CPU)。(一个或多个)处理器401可以是任何类型的通用处理器,或者可以是专门设计用于控制片上系统的数据存储的处理器,诸如专用集成电路(“ASIC”)。存储器402可以包括可由(一个或多个)处理器401访问的各种计算机可读介质。在各种实施例中,本文描述的存储器402可以包括易失性和非易失性介质、可移除和不可移除介质。例如,存储器402可以包括以下的任何组合:随机存取存储器(“RAM”)、动态RAM(“DRAM”)、静态RAM(“SRAM”)、只读存储器(“ROM”)、闪存、高速缓冲存储器和/或任何其它类型的非瞬态计算机可读介质。存储器402可以存储在被处理器401执行时使得处理器401执行根据本公开的前述任一实施例所述的方法。
另外,本公开还可以提供一种其上存储有计算机可执行指令的非瞬态存储介质,计算机可执行指令在被计算机执行时使得计算机执行根据本公开的前述任一实施例所述的方法。
说明书及权利要求中的词语“左”、“右”、“前”、“后”、“顶”、“底”、“上”、“下”、“高”、“低”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其它取向上操作。例如,在附图中的装置倒转时,原先描述为在其它特征“之上”的特征,此时可以描述为在其它特征“之下”。装置还可以以其它方式定向(旋转90度或在其它方位),此时将相应地解释相对空间关系。
在说明书及权利要求中,称一个元件位于另一元件“之上”、“附接”至另一元件、“连接”至另一元件、“耦合”至另一元件、或“接触”另一元件等时,该元件可以直接位于另一元件之上、直接附接至另一元件、直接连接至另一元件、直接耦合至另一元件或直接接触另一元件,或者可以存在一个或多个中间元件。相对照的是,称一个元件“直接”位于另一元件“之上”、“直接附接”至另一元件、“直接连接”至另一元件、“直接耦合”至另一元件或“直接接触”另一元件时,将不存在中间元件。在说明书及权利要求中,一个特征布置成与另一特征“相邻”,可以指一个特征具有与相邻特征重叠的部分或者位于相邻特征上方或下方的部分。
如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。
如本文所使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任何和所有组合。本文中使用的术语只是出于描述特定实施例的目的,并不旨在限制本公开。如本文中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚指示。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其它各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。可以以任何方式和/或与其它实施例的方面或元件相结合地组合以上公开的所有实施例的方面和元件,以提供多个附加实施例。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已通过示例对本公开的一些特定实施例进行了详细说明,但本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
Claims (20)
1.一种用于片上系统的数据存储的方法,所述方法包括:
基于数据的数据量和包括在片上系统内的片内存储器的可用存储空间,优先将所述数据至少部分地存储在所述片内存储器中;以及
当存在所述数据的无法被所述片内存储器存储的部分时,将所述数据的无法被所述片内存储器存储的部分存储在位于所述片上系统的外部的片外存储器中。
2.根据权利要求1所述的方法,还包括:当所述数据的数据量未超过所述片内存储器的可用存储空间的大小时,将所述数据完全存储在所述片内存储器中。
3.根据权利要求1所述的方法,还包括:
当所述数据的数据量超过所述片内存储器的可用存储空间的大小时,将所述数据划分为多个数据块;
从所述多个数据块中选择数据块以存储在所述片内存储器中,使得所选择的数据块的数据量之和不超过所述片内存储器的可用存储空间的大小;以及
将所述多个数据块中的其余数据块存储在所述片外存储器中。
4.根据权利要求3所述的方法,其中从所述多个数据块中选择数据块以存储在所述片内存储器中包括:对于所述多个数据块按照数据块的预定序列依次进行数据块的数据量与所述片内存储器的剩余存储空间的大小的比较,并将其数据量未超过所述片内存储器的剩余存储空间的大小的数据块存储在所述片内存储器中。
5.根据权利要求4所述的方法,还包括:
比较所述多个数据块中的第一数据块的数据量与所述片内存储器的剩余存储空间的大小;
当所述第一数据块的数据量未超过所述片内存储器的剩余存储空间的大小时,将所述第一数据块存储在所述片内存储器中;以及
当所述第一数据块的大小超过所述片内存储器的剩余存储空间的大小时,将所述第一数据块存储在所述片外存储器中。
6.根据权利要求5所述的方法,其中在因所述第一数据块的数据量未超过所述片内存储器的剩余存储空间的大小而将所述第一数据块存储在所述片内存储器中之后,所述方法还包括:
将所述片内存储器的剩余存储空间的大小更新为减去所述第一数据块的数据量;
比较所述多个数据块中的第二数据块的数据量与所述片内存储器的更新后的剩余存储空间的大小;
当所述第二数据块的数据量未超过所述片内存储器的更新后的剩余存储空间的大小时,将所述第二数据块存储在所述片内存储器中;以及
当所述第二数据块的数据量超过所述片内存储器的更新后的剩余存储空间的大小时,将所述第二数据块存储在所述片外存储器中。
7.根据权利要求6所述的方法,其中当所述第二数据块被存储在所述片内存储器中时,所述第二数据块在所述片内存储器中的存储地址相对于所述第一数据块在所述片内存储器中的存储地址的偏移基于所述第一数据块的数据量。
8.根据权利要求5所述的方法,其中在因所述第一数据块的数据量超过所述片内存储器的剩余存储空间的大小而将所述第一数据块存储在所述片外存储器中之后,所述方法还包括:
确定所述片内存储器中存储的数据块数量;以及
将所述多个数据块中的尚未被存储的数据块都存储在所述片外存储器中。
9.根据权利要求8所述的方法,其中在读取所述多个数据块中的数据块时,基于所述数据块在所述预定序列中的位置和所述片内存储器中存储的数据块数量,确定是从所述片内存储器中还是从所述片外存储器中读取所述数据块。
10.根据权利要求1所述的方法,其中当所述数据的数据量超过所述片内存储器的可用存储空间的大小时,基于所述片外存储器的访问带宽、功耗和延迟中的一者或多者确定所述数据中的优先被所述片内存储器存储的部分。
11.根据权利要求10所述的方法,其中所述数据中的优先被所述片内存储器存储的部分是所述数据中的被高频访问的部分。
12.根据权利要求1所述的方法,其中所述数据是由包括在所述片上系统中的计算单元生成的。
13.一种基于片上系统的设备,包括:
片上系统芯片,所述片上系统芯片包括:
总线;
多个计算单元,所述多个计算单元分别作为知识产权核耦合到所述总线;以及
片内存储器,所述片内存储器作为知识产权核耦合到所述总线;以及
片外存储器,所述片外存储器位于所述片上系统芯片的外部并且耦合到所述总线,
其中所述多个计算单元中的至少一个计算单元生成的数据优先由所述片内存储器存储。
14.根据权利要求13所述的设备,还包括控制器,所述控制器被配置为通过执行权利要求1至12中任一项所述的方法来控制数据在所述片内存储器和所述片外存储器之间的分布式存储。
15.根据权利要求14所述的设备,其中所述控制器位于所述片上系统芯片内部。
16.根据权利要求13所述的设备,其中由位于所述设备外部的装置通过执行权利要求1至12中任一项所述的方法来控制数据在所述片内存储器和所述片外存储器之间的分布式存储。
17.根据权利要求13所述的设备,其中所述片内存储器包括被配置用于控制是否启用所述片内存储器的开关。
18.根据权利要求13所述的设备,其中所述片内存储器包括多段存储空间和被配置用于控制是否启用各段存储空间的多个开关。
19.一种用于片上系统的数据存储的计算装置,包括:
一个或多个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据权利要求1至12中任一项所述的方法。
20.一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被计算机执行时使得计算机执行根据权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110783241.8A CN113254392B (zh) | 2021-07-12 | 2021-07-12 | 用于片上系统的数据存储方法和基于片上系统的设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110783241.8A CN113254392B (zh) | 2021-07-12 | 2021-07-12 | 用于片上系统的数据存储方法和基于片上系统的设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254392A true CN113254392A (zh) | 2021-08-13 |
CN113254392B CN113254392B (zh) | 2022-06-14 |
Family
ID=77191105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110783241.8A Active CN113254392B (zh) | 2021-07-12 | 2021-07-12 | 用于片上系统的数据存储方法和基于片上系统的设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254392B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806244A (zh) * | 2021-11-18 | 2021-12-17 | 深圳比特微电子科技有限公司 | 用于片上系统的内存管理方法和基于片上系统的设备 |
CN114968102A (zh) * | 2022-05-27 | 2022-08-30 | 广州安凯微电子股份有限公司 | 一种数据缓存方法、装置、系统、计算机设备及存储介质 |
CN116405164A (zh) * | 2023-06-07 | 2023-07-07 | 南京创芯慧联技术有限公司 | 译码方法、装置及设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9606927D0 (en) * | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Data storage devices |
CN101266482A (zh) * | 2008-05-08 | 2008-09-17 | 上海交通大学 | 基于单片机的四轴运动控制卡 |
CN101500035A (zh) * | 2008-12-10 | 2009-08-05 | 上海闻泰电子科技有限公司 | 一种移动通信终端的短消息扩展存储方法 |
CN102521159A (zh) * | 2011-12-16 | 2012-06-27 | 杭州初灵信息技术股份有限公司 | 一种片内、片外存储器按流量动态调度分包数据的方法 |
CN102541808A (zh) * | 2011-12-06 | 2012-07-04 | 苏州希图视鼎微电子有限公司 | Soc芯片系统及实现Soc芯片中可配置缓冲器的方法 |
CN103699338A (zh) * | 2013-12-11 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种下载数据的方法和设备 |
CN104750636A (zh) * | 2013-12-31 | 2015-07-01 | 环达电脑(上海)有限公司 | 基于soc的扩展应用装置 |
CN105678191A (zh) * | 2016-03-02 | 2016-06-15 | 上海瓶钵信息科技有限公司 | 利用SoC内部存储提高系统安全性的方法、终端与系统 |
CN110389929A (zh) * | 2018-04-16 | 2019-10-29 | 格科微电子(上海)有限公司 | 基于分布式内存的片上系统架构 |
CN110770699A (zh) * | 2018-08-22 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
CN111149166A (zh) * | 2017-07-30 | 2020-05-12 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN111782135A (zh) * | 2019-06-14 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据存储方法、系统、数据节点和计算机可读存储介质 |
CN112035058A (zh) * | 2020-07-30 | 2020-12-04 | 深圳市中盛瑞达科技有限公司 | 云平台存储系统 |
CN113051199A (zh) * | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 数据传输方法及装置 |
US20210200441A1 (en) * | 2019-12-27 | 2021-07-01 | Imagination Technologies Limited | Methods and systems for storing variable length data blocks in memory |
US20210200439A1 (en) * | 2019-12-31 | 2021-07-01 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Matrix storage method, matrix access method, apparatus and electronic device |
-
2021
- 2021-07-12 CN CN202110783241.8A patent/CN113254392B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9606927D0 (en) * | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Data storage devices |
CN101266482A (zh) * | 2008-05-08 | 2008-09-17 | 上海交通大学 | 基于单片机的四轴运动控制卡 |
CN101500035A (zh) * | 2008-12-10 | 2009-08-05 | 上海闻泰电子科技有限公司 | 一种移动通信终端的短消息扩展存储方法 |
CN102541808A (zh) * | 2011-12-06 | 2012-07-04 | 苏州希图视鼎微电子有限公司 | Soc芯片系统及实现Soc芯片中可配置缓冲器的方法 |
CN102521159A (zh) * | 2011-12-16 | 2012-06-27 | 杭州初灵信息技术股份有限公司 | 一种片内、片外存储器按流量动态调度分包数据的方法 |
CN103699338A (zh) * | 2013-12-11 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种下载数据的方法和设备 |
CN104750636A (zh) * | 2013-12-31 | 2015-07-01 | 环达电脑(上海)有限公司 | 基于soc的扩展应用装置 |
CN105678191A (zh) * | 2016-03-02 | 2016-06-15 | 上海瓶钵信息科技有限公司 | 利用SoC内部存储提高系统安全性的方法、终端与系统 |
CN111149166A (zh) * | 2017-07-30 | 2020-05-12 | 纽罗布拉德有限公司 | 基于存储器的分布式处理器架构 |
CN110389929A (zh) * | 2018-04-16 | 2019-10-29 | 格科微电子(上海)有限公司 | 基于分布式内存的片上系统架构 |
CN110770699A (zh) * | 2018-08-22 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
CN111782135A (zh) * | 2019-06-14 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据存储方法、系统、数据节点和计算机可读存储介质 |
CN113051199A (zh) * | 2019-12-26 | 2021-06-29 | 阿里巴巴集团控股有限公司 | 数据传输方法及装置 |
US20210200441A1 (en) * | 2019-12-27 | 2021-07-01 | Imagination Technologies Limited | Methods and systems for storing variable length data blocks in memory |
US20210200439A1 (en) * | 2019-12-31 | 2021-07-01 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Matrix storage method, matrix access method, apparatus and electronic device |
CN112035058A (zh) * | 2020-07-30 | 2020-12-04 | 深圳市中盛瑞达科技有限公司 | 云平台存储系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806244A (zh) * | 2021-11-18 | 2021-12-17 | 深圳比特微电子科技有限公司 | 用于片上系统的内存管理方法和基于片上系统的设备 |
CN113806244B (zh) * | 2021-11-18 | 2022-02-08 | 深圳比特微电子科技有限公司 | 用于片上系统的内存管理方法和基于片上系统的设备 |
CN114968102A (zh) * | 2022-05-27 | 2022-08-30 | 广州安凯微电子股份有限公司 | 一种数据缓存方法、装置、系统、计算机设备及存储介质 |
CN114968102B (zh) * | 2022-05-27 | 2023-10-13 | 广州安凯微电子股份有限公司 | 一种数据缓存方法、装置、系统、计算机设备及存储介质 |
CN116405164A (zh) * | 2023-06-07 | 2023-07-07 | 南京创芯慧联技术有限公司 | 译码方法、装置及设备 |
CN116405164B (zh) * | 2023-06-07 | 2023-09-26 | 南京创芯慧联技术有限公司 | 译码方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113254392B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254392B (zh) | 用于片上系统的数据存储方法和基于片上系统的设备 | |
KR102333297B1 (ko) | 압축 데이터 및 태그가 있는 캐시 | |
CN111149095B (zh) | 用于片上系统中的图像帧的凹式压缩的系统和方法 | |
US8819359B2 (en) | Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module | |
US8918589B2 (en) | Memory controller, memory system, semiconductor integrated circuit, and memory control method | |
US9087562B2 (en) | Non-volatile storage module having magnetic random access memory (MRAM) with a buffer window | |
US20160218739A1 (en) | Data access methods and data access devices utilizing the same | |
US10019375B2 (en) | Cache device and semiconductor device including a tag memory storing absence, compression and write state information | |
US20080082872A1 (en) | Memory controller, memory system, and data transfer method | |
JP2005346887A (ja) | 半導体記憶装置 | |
CN113806244B (zh) | 用于片上系统的内存管理方法和基于片上系统的设备 | |
US10585803B2 (en) | Systems and methods for addressing a cache with split-indexes | |
US9529547B2 (en) | Memory device and method for organizing a homogeneous memory | |
US20060206668A1 (en) | Data processing system and data decompression method | |
TWI751931B (zh) | 用於執行卷積神經網路運算的處理裝置與處理方法 | |
CN108780424B (zh) | 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 | |
US20230236979A1 (en) | Priority-based cache-line fitting in compressed memory systems of processor-based systems | |
US9129344B2 (en) | Method and system for padding in a video processing system | |
US20180107616A1 (en) | Method and device for storing an image into a memory | |
CN110119313B (zh) | 图像处理方法及图像处理装置 | |
US20100169564A1 (en) | Apparatus and method for accessing data | |
US10719461B2 (en) | Solid state device with distributed bit buckets | |
US9268685B2 (en) | Memory system and constructing method of virtual block | |
CN112486861A (zh) | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 | |
US7433976B2 (en) | Data copy method and application processor for the same |
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 |