CN114168524B - 行缓存单元、加速单元、片上系统和行缓存配置方法 - Google Patents

行缓存单元、加速单元、片上系统和行缓存配置方法 Download PDF

Info

Publication number
CN114168524B
CN114168524B CN202111486966.7A CN202111486966A CN114168524B CN 114168524 B CN114168524 B CN 114168524B CN 202111486966 A CN202111486966 A CN 202111486966A CN 114168524 B CN114168524 B CN 114168524B
Authority
CN
China
Prior art keywords
cache
buffer
layer
line
image data
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
CN202111486966.7A
Other languages
English (en)
Other versions
CN114168524A (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Pingtouge Shanghai Semiconductor 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 Pingtouge Shanghai Semiconductor Co Ltd filed Critical Pingtouge Shanghai Semiconductor Co Ltd
Priority to CN202111486966.7A priority Critical patent/CN114168524B/zh
Publication of CN114168524A publication Critical patent/CN114168524A/zh
Application granted granted Critical
Publication of CN114168524B publication Critical patent/CN114168524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/765Cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例提供了一种行缓存单元、加速单元、片上系统和行缓存配置方法,该行缓存单元用于在画面显示过程中缓存L个图层的图像数据,所述行缓存单元包括M个缓存块,其中,L为正整数,M为大于1的正整数;所述M个缓存块组成K个缓存块组,第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,其中,K为正整数,mj为正整数,1≤j≤K,每个所述缓存块组对应于一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区。本方案能够减小显示系统中行缓存资源的浪费。

Description

行缓存单元、加速单元、片上系统和行缓存配置方法
技术领域
本申请实施例涉及芯片技术领域,尤其涉及一种行缓存单元、加速单元、片上系统和行缓存配置方法。
背景技术
随着图像处理技术的不断发展与进步,画面显示越来越多样化,要求显示系统支持多个图层的并行处理和融合,每个图层可以来自互联网服务提供商(Internet ServiceProvider,ISP)、视频解码或图形处理器(Graphics Processing Unit,GPU)等,不同的图层可以具有不同的格式、图像质量和分辨率,而且不同的图层对显示系统的图像处理需求也不同。显示系统通过行缓存(Linebuffer)缓存不同图层的图像数据,以实现对多个图层的并行处理和融合。
目前,由于显示系统在不同应用场景下每个图层对于缓存资源的需求不同,为了保证显示系统能够在不同的应用场景下正常显示画面,根据每个图层对于缓存资源的最大需求设计行缓存器。
然而,在显示系统的大多数应用场景中,每个图层实际所需的缓存资源小于行缓存器中为该图层设计的缓存资源,因此会有较大的缓存资源长期处于闲置状态,导致行缓存器中缓存资源的浪费。
发明内容
有鉴于此,本申请实施例提供一种行缓存的方案,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种行缓存单元,用于在画面显示过程中缓存L个图层的图像数据,所述行缓存单元包括M个缓存块,其中,L为正整数,M为大于1的正整数;所述M个缓存块组成K个缓存块组,第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,其中,K为正整数,mj为正整数,1≤j≤K,每个所述缓存块组对应于一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区。
根据本申请实施例的第二方面,提供了一种加速单元,包括:根据上述第一方面中任一所述的行缓存单元;控制器,用于根据L个图层中每个图层进行图像数据缓存的需求,将所述行缓存单元包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,其中,K为正整数,mj为正整数,1≤j≤K,
根据本申请实施例的第三方面,提供了一种电子设备,包括:根据上述第二方面中任一所述的加速单元;处理单元,用于调度所述加速单元执行在画面显示过程中缓存L个图层的图像数据。
根据本申请实施例的第四方面,提供了一种片上系统,包括根据上述第二方面中任一所述的加速单元。
根据本申请实施例的第五方面,提供了一种行缓存配置方法,用于在画面显示过程中为L个图层配置行缓存,包括:获取L个图层中每个图层进行图像数据缓存的需求,其中,L为正整数;根据每个图像进行图像数据缓存的需求,将行缓存单元包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过至少一个相对应的缓存块组缓存图像数据,其中,每个缓存块组对应一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区,M为大于1的正整数,K为正整数,mj为正整数,1≤j≤K,
根据本申请实施例提供的显示系统中行缓存的方案,行缓存单元包括多个缓存块,通过缓存块之间的组合,可以获得具有不同深度和位宽的行缓存器,因此在进行画面显示时,可以根据当前场景下图层的数量以及每个图层对缓存资源的需求,对行缓存单元包括的全部或部分缓存块进行组合,获得多个缓存块组,每个图层通过一个或多个缓存块组形成的行缓存区缓存图像数据,保证所获得的行缓存区能够满足相应图层对于图像数据进行缓存的深度要求和位宽要求。通过对缓存块进行组合,获得每个图层的行缓存,由于并非所有图层在同一应用场景下的缓存资源需求为各自的最大缓存资源需求,因此可以根据不同应用场景下各图层所需缓存资源的总和,来设计行缓存单元中缓存块的数量以及每个缓存块的深度和位宽,通过各图层之间共享缓存资源,提高行缓存器中缓存资源的利用率,减小行缓存器在芯片上的占用面积,从而能够降低减小芯片面积和功耗。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例所应用的数据中心的结构图;
图2是本申请一个实施例的数据中心中一个服务器的内部结构图;
图3是本申请一个实施例的处理单元和加速单元的内部结构图;
图4是本申请一个实施例的行缓存单元的内部结构图;
图5是本申请另一个实施例的行缓存单元的内部结构图;
图6是本申请一个实施例的缓存块组的内部结构图;
图7是本申请一个实施例的行缓存配置方法的流程图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
在本文中使用以下术语。
行缓存:行缓存(Linebuffer)是一种广泛应用于模板计算的技术,在图像处理、人工智能等领域都大量使用了模板技术。行缓存可以减小访存次数,减小片上存储,是在流水式模板计算中较为常见的结构。
图层:显示系统进行画面实现时,在同一个画面显示背景以及多个窗口,背景和每个窗口显示不同的图像内容,因此画面中的背景和每个窗口分别对应一个图层。不同的图层具有不同的来源,比如可能来自输入端的ISP、VDEC的解码、GPU绘制等。
缓存块:由若干连续排列的字节组成的缓存区域,具有一定的位宽和深度。缓存块的位宽为缓存块一次能够传递的数据宽度,缓存块的深度为缓存块所能够存储数据的个数。
加速单元:针对传统处理单元在一些专门用途的领域(例如,显示图像、处理图像等等)效率不高的情况,为了提高在这些专门用途领域中的数据处理速度而设计的处理单元,在本公开实施例中主要是为了图像显示处理速度而设计的专门处理单元。
处理单元:又称调度单元,对加速单元进行调度、向加速单元分配要执行的待执行指令序列的处理单元,它可以采用处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等多种形式。
数据中心
数据中心是全球协作的特定设备网络,用来在互联网网络基础设施上传递、加速、展示、计算、存储数据信息。在今后的发展中,数据中心也将会成为企业竞争的资产。随着数据中心应用的广泛化,画面显示等越来越多地应用到数据中心。而行缓存作为画面显示的重要技术,已经大量应用到数据中心的画面显示中。
在传统的大型数据中心,网络结构通常如图1所示,即互连网络模型(hierarchical inter-networking model)。这个模型包含了以下部分:
服务器140:各服务器140是数据中心的处理和存储实体,数据中心中大量数据的处理和存储都是由这些服务器140完成的。
接入交换机130:接入交换机130是用来让服务器140接入到数据中心中的交换机。一台接入交换机130接入多台服务器140。接入交换机130通常位于机架顶部,所以它们也被称为机顶(Top of Rack)交换机,它们物理连接服务器。
汇聚交换机120:每台汇聚交换机120连接多台接入交换机130,同时提供其他的服务,例如防火墙,入侵检测,网络分析等。
核心交换机110:核心交换机110为进出数据中心的包提供高速的转发,为汇聚交换机120提供连接性。整个数据中心的网络分为L3层路由网络和L2层路由网络,核心交换机110为通常为整个数据中心的网络提供一个弹性的L3层路由网络。
通常情况下,汇聚交换机120是L2和L3层路由网络的分界点,汇聚交换机120以下的是L2网络,以上是L3网络。每组汇聚交换机管理一个传送点(POD,Point Of Delivery),每个POD内都是独立的VLAN网络。服务器在POD内迁移不必修改IP地址和默认网关,因为一个POD对应一个L2广播域。
汇聚交换机120和接入交换机130之间通常使用生成树协议(STP,Spanning TreeProtocol)。STP使得对于一个VLAN网络只有一个汇聚交换机120可用,其他的汇聚交换机120在出现故障时才被使用(上图中的虚线)。也就是说,在汇聚交换机120的层面,做不到水平扩展,因为就算加入多个汇聚交换机120,仍然只有一个在工作。
服务器(电子设备)
服务器140作为一种电子设备,是数据中心真正的处理设备,图2示出了一个服务器140内部的结构框图。服务器140包括有总线连接的存储器210、处理单元集群270和加速单元集群280。处理单元集群也叫做调度单元集群。处理单元集群270包括多个处理单元220。处理单元220也叫做调度单元。加速单元集群280包括多个加速单元230。加速单元在本申请实施例中主要是为了加速画面显示而设计的专门处理单元,可以体现为专门为行缓存设计的处理单元、图形处理单元(GPU)、专用集成电路(ASIC)和现场可编程门阵列(FPGA)等。处理单元是对加速单元进行调度、向各加速单元分配要执行的待执行指令序列的单元,它可以采用处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等多种形式。
传统的处理单元的架构设计,使得在架构中控制单元、存储单元占用了很大一部分空间,而计算单元占用的空间反而不足,因此其在逻辑控制方面十分有效,而在大规模并行计算方面则效率不够。因此,开发出了各种专门的加速单元,用来针对不同功能和不同领域的计算进行更有效的提高运算速度的处理。本申请提出的加速单元是专用于加速画面显示的处理单元,它将行缓存器划分为多个缓存块,根据不同应用场景下各图层对于缓存资源的需求,针对每个图层对缓存块进行组合,获得满足图层对于缓存资源需求的行缓存,通过不同图层之间共享缓存块,无需为每个图层设计固定大小的行缓存,避免大量缓存资源长期处理闲置状态,从而在加速画面显示的同时,节省芯片面积和功耗。
加速单元230要接受处理单元220的调度。加速单元230根据每个图层对于缓存资源的需求,通过对缓存块进行组合,获得每个图层对应的行缓存区。如图2所示,存储器210中存储有各图层的图像数据,各图层的图像数据被图2中一个处理单元220输送到一个加速单元230。处理单元220可以通过指令的形式向加速单元230发送图像数据在存储器210中地址。加速单元230在进行画面显示时,直接在存储器210中寻址图像数据,将图像数据暂存在行缓存区中,进而加速单元230对图像数据进行处理,以展示包括各图层的图像数据的画面。本申请实施例主要着眼于加速单元230的行缓存的结构和配置,在后文中会对行缓存的结构和行缓存的配置进行详细描述。
处理单元和加速单元的内部结构
下面结合图3的处理单元220与加速单元230的内部结构图,具体说明处理单元220是如何调度加速单元230进行工作的。
如图3所示,处理单元220内包含多个处理器核222和被多个处理器核222共享的高速缓存221。每个处理器核222包括取指令单元223、指令译码单元224、指令发射单元225、指令执行单元226和存储控制单元227。
取指令单元223用于将要执行的指令从存储器210中搬运到指令寄存器(可以是图3示出的寄存器堆229中的一个用于存放指令的寄存器)中,并接收下一个取指地址或根据取指算法计算获得下一个取指地址,取指算法例如包括:根据指令长度递增地址或递减地址。
取出指令后,处理单元220进入指令译码阶段,指令译码单元224按照预定的指令格式,对取回的指令进行解码,以获得取回的指令所需的操作数获取信息,从而为指令执行单元226的操作做准备。操作数获取信息例如指向立即数、寄存器或其他能够提供源操作数的软件/硬件。
指令发射单元225位于指令译码单元224与指令执行单元226之间,用于指令的调度和控制,以将各个指令高效地分配至不同的指令执行单元226,使得多个指令的并行操作成为可能。
指令发射单元225将指令发射到指令执行单元226后,指令执行单元226开始执行指令。但如果该指令执行单元226判断该指令应该是加速单元执行的,则将其转发到相应的加速单元执行。例如,如果该指令是一条图像数据缓存的指令,指令执行单226不再执行该指令,而是将该指令通过总线发送到加速单元230,由加速单元230执行。
处理单元220获取图层的图像数据,并调度加速单元230执行对图像数据的缓存。
加速单元230内部包括控制器231和行缓存单元232。控制器231根据各图层对于缓存资源的需求,将行缓存单元232包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,其中,M为大于1的正整数,K为正整数,mj为正整数,1≤j≤K,控制器231还从处理单元220接收各图层的图像数据,将图像数据发送给行缓存单元232。行缓存单元232分别将每个图层的图像数据缓存到各自对应的行缓存区。
控制器231在将行缓存单元232包括的M个缓存块划分为K个缓存块组时,针对L个图层中的第i图层,根据第i图层进行图像数据缓存的需求,确定第i图层所需缓存块组的数量N3(i),以及每个缓存块组中缓存块的行数N1(i)和列数N2(i),进而根据N1(i)、N2(i)和N3(i)从M个缓存块中为所述第i图层划分出N3(i)个缓存块组,其中,L为正整数,1≤i≤L,N3(i)为小于或等于K的正整数,N1(i)和N2(i)均为小于或等于M的正整数。
控制器231提供用于访存各缓存块的私有总线,每个图层可以通过该私有总线,对分配给该图层的缓存块进行访存,以在画面显示过程中将图像数据存储到各缓存块中,从而实现多图层的并行处理和融合。
片上系统
本申请实施例还提供了一种片上系统,该片上系统包括上述任一实施例中的加速单元230。
行缓存单元
图4是本申请一个实施例的行缓存单元的内部结构图。如图4所示,行缓存单元232包括M个缓存块410,M为大于1的正整数。行缓存单元232用于在画面显示过程中缓存L个图层的图像数据,L为正整数。根据L个图层进行图像数据缓存的需求,M个缓存块410组成K个缓存块组420,第j缓存块组420包括mj个缓存块410,每个图层通过相对应的至少一个缓存块组420缓存图像数据,其中,K为正整数,mj为正整数,1≤j≤K,每个缓存块组420对应一个图层,该缓存块组420包括的缓存块410组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区。
在不同的应用场景下,画面显示过程中图层的数量可能不同,同一图层的对缓存资源的需求也可能不同,目前在设计行缓存器时,根据各图层在各应用场景中对于缓存资源的最大需求,分别为每个图层设计行缓存,因此每个图层的最大处理能力在设计时已确定。由于不同图层在同一应用场景下对缓存资源的需求可能不同,而且同一图层在不同应用场景下对缓存资源的需求也可能不同,各图层对缓存资源的最大需求可能并不在同一个应用场景,但每个图层所拥有的缓存资源均是其所需的最大缓存资源,因此在大多数应用场景下,每个图层对缓存资源的需求小于为该图层设计的缓存资源,造成行缓存器中缓存资源的浪费,而且为每个图层设计较大的缓存资源,会占据芯片的较大面积,进而导致芯片面积和功耗较大。
在本申请实施例中,行缓存单元232包括多个缓存块410,通过缓存块410之间的组合,可以获得具有不同深度和位宽的行缓存器,因此在进行画面显示时,可以根据当前场景下图层的数量以及每个图层对缓存资源的需求,对行缓存单元232包括的全部或部分缓存块410进行组合,获得多个缓存块组420,每个图层通过一个或多个缓存块组420形成的行缓存区缓存图像数据,保证所获得的行缓存区能够满足相应图层对于图像数据进行缓存的深度要求和位宽要求。通过对缓存块410进行组合,获得每个图层的行缓存,由于并非所有图层在同一应用场景下的缓存资源需求为各自的最大缓存资源需求,因此可以根据不同应用场景下各图层所需缓存资源的总和,来设计行缓存单元232中缓存块410的数量以及每个缓存块410的深度和位宽,通过各图层之间共享缓存资源,提高行缓存器中缓存资源的利用率,减小行缓存器在芯片上的占用面积,从而能够降低减小芯片面积和功耗。
应理解,由M个缓存块组成的K个缓存块组中,不同的缓存块组可以包括相同数量或不同数量的缓存块,对此本申请实施例不作限定。不同的缓存块组包括的缓存块组成的行缓存器,可以具有相同的深度/位宽,也可以具有不同的深度/位宽,对此本申请实施例不作限定。
在一个例子中,显示系统要求能在两个应用场景下正常显示画面,应用场景1为最大支持2个4K@60ARGB(分辨率为3840×2160,刷新频率为60Hz,色彩模式为ARGB)的图层和2个1080PARGB(分辨率为1920×1080,色彩模式为ARGB)的图层,应用场景2为最大支持8个1080PARGB的图层。在应用场景1和应用场景2中,每个图层需要4条行缓存,而且每个像素的深度为4Byte。
按照目前分别为每个图层设计行缓存的方式,2个4K@60ARGB的图层所需行缓存的大小为2×3840×4×4=122880Byte,2个1080PARGB的图层所需行缓存的大小为2×1920×4×4=61440Byte,8个1080PARGB的图层可以复用上述2个4K@60ARGB的图层和2个1080PARGB的图层的行缓存,因此额外需要的行缓存大小为4×1920×4×4=122880B yte。因此,显示系统所需行缓存的总计大小为2×3840×4×4+2×1920×4×4+4×1920×4×4=307200Byte。
按照本申请实施例中图层之间共享缓存资源的方式,在应用场景1下所需的行缓存的大小为2×3840×4×4+2×1920×4×4=184320Byte,在应用场景2下所需的行缓存的大小为8×1920×4×4=245760Byte。因此,显示系统所需行缓存的大小为245760Byte。
由上对比可知,按照目前分别为每个图层设计行缓存的方式,在应用场景1下有122880Byte的缓存资源闲置,在应用场景2下有61440Byte的缓存资源闲置,在两个应用场景下缓存资源都有较大的浪费。而按照本申请实施例中图层之间共享缓存资源的方式,在应用场景1下有61440Byte的缓存资源闲置,在应用场景2下没有闲置的缓存资源,相对于图层之间独立行缓存的方式,节省了61440Byte的缓存资源,节省数据容量25%,能够有效减小对芯片面积的占用,进而减小芯片的功耗。
应理解,由于不同应用场景下每个图层所需缓存资源的大小可能不同,不同大小的缓存资源通过对不同数据量的缓存块410进行组合实现,而行缓存单元232中缓存块410的数量是固定的,所以在缓存资源需求较大的应用场景下,需要使用较多的缓存块410来划分缓存块组420,而在缓存资源需求较小的应用场景下,则需要使用较少的缓存块410来划分缓存块组420。因此,在需要缓存资源较大的应用场景下,可能需要使用全部缓存块410来组成缓存块组420,而在需要缓存资源较小的应用场景下,可能仅需要使用部分缓存块410来组成缓存块组420。
在一种可能的实现方式中,行缓存单元232所包括的M个缓存块410具有相同的深度和位宽,比如每个缓存块410的规格均为960×12,即缓存块410的位宽为12bit,缓存块410的深度为960bit。
由于行缓存单元232包括的各缓存块410是被各图层共享的,在不同的应用场景下,同一个缓存块410可能被分配给不同的图层用于图像数据缓存,为了能够更加方便地对缓存块410进行组合,以获得能够满足各图层对图像数据进行缓存的需求的行缓存区。各缓存块410具有相同的深度和位宽,在对缓存块410进行组合获得缓存块组420时,可以将相邻近的缓存块410划分到同一个缓存块组420中,以方便在图像数据缓存过程中对各缓存块410进行控制,提高图层向缓存块410中缓存图像数据的效率。
图5是本申请另一个实施例的行缓存单元的内部结构图。如图5所示,行缓存单元232所包括的M个缓存块410呈层叠结构分布,M个缓存块410分布在M1个缓存块层中,每个缓存块层包括M2行×M3列个缓存块,M1、M2和M3均为正整数,且M1×M2×M3=M。
行缓存单元232包括的多个缓存块410在三维空间以层叠装结构分布,在对缓存块410进行分组获得缓存块组420时,可以将三维空间内相邻近的多个缓存块410划分到同一个缓存块组420中,由位于同一缓存块组420中的各缓存块410组成所需位宽和深度的行缓存区,使得容易缓存块组420中的各缓存块410之间的距离较小,便于图层进行图像数据缓存。
另外,将各缓存块410在三维空间以层叠结构分布,使得行缓存单元232的结构更加紧凑,可以减小行缓存单元232占据的芯片面积,从而可以节省芯片的面积。位于同一缓存块组420中的缓存块410之间距离较小,可以减小图像数据缓存过程中行缓存单元232的功耗,进而减小芯片的功耗。
在一种可能的实现方式中,在L个图层中,第i图层通过N3(i)个缓存块组420缓存图像数据,N3(i)为小于或等于K的正整数,1≤i≤L。N3(i)个缓存块组420中每个缓存块组420包括的缓存块410位于同一缓存块层中。
图6是本申请一个实施例的缓存块组的内部结构图。如图6所示,第i图层通过N3(i)个缓存块组420缓存图像数据,N3(i)个缓存块组420中每个缓存块组420包括的缓存块410位于同一缓存块层,而且每个缓存块组420包括N1(i)×N2(i)个缓存块410,N1(i)个缓存块410纵向相连,N2(i)个缓存块410横向相连,形成位宽为N1(i)×W且深度为N2(i)×P的行缓存区,其中,W为缓存块410的位宽,P为缓存块410的深度,N1(i)和N2(i)均为小于或等于M的正整数。第i图层的图像数据的位宽小于或等于N1(i)×W,且第i图层的图像数据的长度小于或等于N2(i)×P。
每个缓存块410的位宽和深度分别为W和P,同一缓存块组420中的各缓存块410位于同一缓存块层,而且同一缓存块组420中的各缓存块410成行列分布,该缓存块组420中包括N1(i)行×N2(i)列个缓存块410。N1(i)个缓存块410纵向相连,使该缓存块组420组成的行缓存区的位宽为N1(i)×W,N2(i)个缓存块410横向相连,使该缓存块组420组成的行缓存区的深度为N2(i)×P。在对个缓存块410进行分组获得缓存块组420时,根据第i图层对于缓存资源的需求,为第i图层划分相对应的一个或多个缓存块组420,使得由第i图层对应的缓存块组420形成的行缓存区在位宽和深度上满足第i图层对缓存资源的需求,即第i图层的图像数据的位宽小于或等于N1(i)×W,且第i图层的图像数据的长度小于或等于N2(i)×P。
同一缓存块组420包括的各缓存块410分布在同一缓存块层中,而且各缓存块410成行列分布,使得同一缓存块组420中的各缓存块410相邻分布,便于向缓存块组420形成的行缓存区内缓存图像数据。而且,由于同一缓存块组420中的各缓存块410成行列分布,使得各缓存块410之间的距离较近,进而可以使电路结构更加简单,便于对行缓存单元232进行控制,而且能够减低行缓存单元232的功耗。
需要说明的是,根据应用场景的不同,同一个图层需要行缓存区的数量可能不同,在一些应用场景下图层仅需要一个行缓存区进行图像数据缓存,此时该图层对应一个缓存块组420,在另一些应用场景下图层需要多个行缓存区进行图像数据缓存,此时该图层对应多个缓存块组420。当一个图层对应多个缓存块组420时,各缓存块组420分布在相邻的多个缓存块层中,这使得同一图层对应的各缓存块组420相邻分布,便于图层向个缓存块组420形成的行缓存区内缓存图像数据。另外,当一个图层对应多个缓存块组420时,该图层对应的不同缓存块组420包括相同数量的缓存块410,或者该图层对应的不同缓存块组420包括不同数量的缓存块410,具体可以根据图层对于缓存资源的需求灵活配置,对此本申请实施例不进行限定。
应理解,在根据各图层对于缓存资源的需求,将行缓存单元232包括的缓存块410划分为多个缓存块组420时,根据每个图层所需缓存资源的条数,以及每条缓存资源的位宽和深度,确定需要为该图层分配的缓存块组420的数量,以及每个缓存块组420中缓存块410的数量,每条缓存资源对应一个缓存块组420,保证每个缓存块组420形成的行缓存区(一个行缓存区即为一条缓存资源)的位宽和深度均大于图层所缓存图像数据的位宽和深度。
在一个例子中,行缓存单元232包括22个缓存块410,每个缓存块410的位宽为12bit,深度为960bit,在一个应用场景下,图层1需要2条1920×24bit的缓存资源,图层2需要2条3840×12bit的缓存资源,图层3需要1条1920×36bit的缓存资源,则可以按照如下方式对行缓存单元232包括的缓存块410进行分组。
对于图层1,配置N1(1)=2,N2(1)=2,N3(1)=2,即为该图像1分配2个(由于N3(1)=2)缓存块组420,使得该每个缓存块组420所形成的行缓存区的位宽为12×N1(1)=12×2=24bit,深度为960×N2(1)=960×2=1920bit。
对于图层2,配置N1(2)=1,N2(2)=4,N3(2)=2,即为该图像1分配2个(由于N3(2)=2)缓存块组420,使得该每个缓存块组420所形成的行缓存区的位宽为12×N1(2)=12×1=12bit,深度为960×N2(2)=960×4=3840bit。
对于图层3,配置N1(3)=3,N2(3)=2,N3(3)=1,即为该图像1分配1个(由于N3(3)=1)缓存块组420,使得该每个缓存块组420所形成的行缓存区的位宽为12×N1(3)=12×3=36bit,深度为960×N2(3)=960×2=1920bit。
在该应用场景下,3个图层所使用缓存块401的数量为N1(1)×N2(1)×N3(1)+N1(2)×N2(2)×N3(2)+N1(3)×N2(3)×N3(3)=2×2×2+1×4×2+3×2×1=22。
在一种可能的实现方式中,行缓存单元232所包括的M个缓存块410的数据容量之和,等于在缓存资源需求量最大的应用场景下个图层所需缓存资源的数据容量之和。
在不同应用场景下,各图层所需的缓存资源不同,根据不同应用场景下各图层所需的缓存资源,确定每个应用场景下各图层所需的缓存资源之和,从而确定出各图层对缓存资源需求量最大的应用场景,使行缓存单元232中各缓存块410的数据容量之和,等于该应用场景下各图层所需缓存资源的数量容量之和,保证行缓存单元232的缓存资源能够满足不同应用场景下各图层对于缓存资源的需求,同时避免行缓存单元232包括多余的缓存资源而导致缓存资源浪费,保证行缓存单元232具有较高的缓存资源利用率,同时减小行缓存单元232占用的芯片面积,降低芯片的功耗。
行缓存配置方法
图7是本申请一个实施例的行缓存配置方法的流程图,如图5所示,该行缓存配置方法700包括如下步骤:
步骤701、获取L个图层中每个图层进行图像数据缓存的需求,其中,L为正整数;
步骤702、根据每个图像进行图像数据缓存的需求,将行缓存单元包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过至少一个相对应的缓存块组缓存图像数据,其中,每个缓存块组对应一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区,M为大于1的正整数,K为正整数,mj为正整数,1≤j≤K,
由于行缓存配置方法的细节在上述实施例的行缓存单元部分,已经结合机构图进行了详细说明,具体过程可参见前述行缓存单元实施例和加速单元实施例中的描述,在此不再进行赘述。
本申请实施例的商业价值
本申请实施例在解决显示系统中行缓存资源浪费的技术问题时,将显示系统的行缓存划分为多个缓存块,各缓存块的缓存资源之和等于缓存资源需求量最大应用场景下各图层所需缓存资源之和,在不同应用场景下,根据图层所需的缓存资源,对各缓存块进行组合,获得多个缓存块组,每个包括至少一个缓存块的缓存块组形成图层所需的一条行缓存。通过图层之间共享缓存块,根据图层的需求对缓存块进行组合,拼接成图层所需的缓存资源,从而可以根据不同应用场景下各图层所需缓存资源的总和,设计显示系统中行缓存的大小,避免大量缓存资源长时间闲置而导致缓存资源浪费,能够减小行缓存对芯片面积的占用,从而可以减小芯片的功耗,因此具有良好的市场前景。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。

Claims (8)

1.一种行缓存单元,用于在画面显示过程中缓存L个图层的图像数据,所述行缓存单元包括M个缓存块,其中,L为正整数,M为大于1的正整数;
所述M个缓存块组成K个缓存块组,第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,其中,K为正整数,mj为正整数,1≤j≤K,
每个所述缓存块组对应于一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区;
所述M个缓存块具有相同的深度和位宽;
所述M个缓存块呈层叠结构分布,在M1个缓存块层中,每个缓存块层包括M2行×M3列个缓存块,M1、M2和M3均为正整数,且M1×M2×M3=M;
第i图层通过N3(i)个缓存块组缓存图像数据,N3(i)为小于或等于K的正整数,1≤i≤L;
所述N3(i)个缓存块组中每个缓存块组包括的缓存块位于同一缓存块层中。
2.根据权利要求1所述的行缓存单元,其中,所述第i图层对应的一个缓存块组包括N1(i)×N2(i)个缓存块,N1(i)个缓存块纵向相连,N2(i)个缓存块横向相连,形成位宽为N1(i)×W且深度为N2(i)×P的行缓存区,其中,W为缓存块的位宽,P为缓存块的深度,N1(i)和N2(i)均为小于或等于M的正整数;
所述第i图层的图像数据的位宽小于或等于N1(i)×W,所述第i图层的图像数据的长度小于或等于N2(i)×P。
3.根据权利要求1-2中任一所述的行缓存单元,其中,所述M个缓存块的数据容量之和,等于在缓存资源需求量最大应用场景下各图层所需缓存资源的数据容量之和。
4.一种加速单元,包括:
根据权利要求1-3中任一所述的行缓存单元;
控制器,用于根据L个图层中每个图层进行图像数据缓存的需求,将所述行缓存单元包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过相对应的至少一个缓存块组缓存图像数据,第i图层通过N3(i)个缓存块组缓存图像数据,N3(i)为小于或等于K的正整数,1≤i≤L,所述N3(i)个缓存块组中每个缓存块组包括的缓存块位于同一缓存块层中,其中,K为正整数,mj为正整数,1≤j≤K,
5.根据权利要求4所述的加速单元,其中,所述控制器用于根据第i图层进行图像数据缓存的需求,确定所述第i图层所需缓存块组的数量N3(i),以及每个缓存块组中缓存块的行数N1(i)和列数N2(i),并根据N1(i)、N2(i)和N3(i)从所述M个缓存块中为所述第i图层划分出N3(i)个缓存块组。
6.一种电子设备,包括:
根据权利要求4-5中任一所述的加速单元;
处理单元,用于调度所述加速单元执行在画面显示过程中缓存L个图层的图像数据。
7.一种片上系统,包括根据权利要求4-5中任一所述的加速单元。
8.一种行缓存配置方法,用于在画面显示过程中为L个图层配置行缓存,包括:
获取L个图层中每个图层进行图像数据缓存的需求,其中,L为正整数;
根据每个图像进行图像数据缓存的需求,将行缓存单元包括的M个缓存块划分为K个缓存块组,使得第j缓存块组包括mj个缓存块,每个图层通过至少一个相对应的缓存块组缓存图像数据,第i图层通过N3(i)个缓存块组缓存图像数据,其中,每个缓存块组对应一个图层,该缓存块组包括的缓存块组成一个深度和位宽满足该图层进行图像数据缓存的需求的行缓存区,M为大于1的正整数,K为正整数,mj为正整数,1≤j≤K,所述M个缓存块具有相同的深度和位宽,所述M个缓存块呈层叠结构分布,在M1个缓存块层中,每个缓存块层包括M2行×M3列个缓存块,M1、M2和M3均为正整数,且M1×M2×M3=M,N3(i)为小于或等于K的正整数,1≤i≤L,所述N3(i)个缓存块组中每个缓存块组包括的缓存块位于同一缓存块层中。
CN202111486966.7A 2021-12-07 2021-12-07 行缓存单元、加速单元、片上系统和行缓存配置方法 Active CN114168524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111486966.7A CN114168524B (zh) 2021-12-07 2021-12-07 行缓存单元、加速单元、片上系统和行缓存配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111486966.7A CN114168524B (zh) 2021-12-07 2021-12-07 行缓存单元、加速单元、片上系统和行缓存配置方法

Publications (2)

Publication Number Publication Date
CN114168524A CN114168524A (zh) 2022-03-11
CN114168524B true CN114168524B (zh) 2023-10-20

Family

ID=80484009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111486966.7A Active CN114168524B (zh) 2021-12-07 2021-12-07 行缓存单元、加速单元、片上系统和行缓存配置方法

Country Status (1)

Country Link
CN (1) CN114168524B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105894440A (zh) * 2016-03-30 2016-08-24 福州瑞芯微电子股份有限公司 一种图像多层数据处理方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445852B2 (en) * 2016-12-22 2019-10-15 Apple Inc. Local image blocks for graphics processing
US10430919B2 (en) * 2017-05-12 2019-10-01 Google Llc Determination of per line buffer unit memory allocation
WO2019019013A1 (zh) * 2017-07-25 2019-01-31 深圳市大疆创新科技有限公司 处理图像的方法、芯片、处理器、系统和可移动设备
JP7278150B2 (ja) * 2019-05-23 2023-05-19 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105894440A (zh) * 2016-03-30 2016-08-24 福州瑞芯微电子股份有限公司 一种图像多层数据处理方法和装置

Also Published As

Publication number Publication date
CN114168524A (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
US10635631B2 (en) Hybrid programmable many-core device with on-chip interconnect
US8655945B2 (en) Centralized rendering of collaborative content
US20080285652A1 (en) Apparatus and methods for optimization of image and motion picture memory access
US20060200825A1 (en) System and method for dynamic ordering in a network processor
Li et al. Architecture and bus-arbitration schemes for MPEG-2 video decoder
US20150273329A1 (en) Game Providing System
US20070233975A1 (en) Data processor with a built-in memory
JPH05189549A (ja) マルチプロセッサによる画像データ処理装置
CN114168524B (zh) 行缓存单元、加速单元、片上系统和行缓存配置方法
Liu et al. Enabling PIM-based AES encryption for online video streaming
CN100520748C (zh) 数据处理系统
CN117215989A (zh) 一种异构加速设备、系统、方法、装置及存储介质
EP2382546B1 (en) Memory management process and apparatus for the same
EP4036730A1 (en) Application data flow graph execution using network-on-chip overlay
US11212562B1 (en) Targeted video streaming post-production effects
Yang et al. SDPR: Improving latency and bandwidth in on-chip interconnect through simultaneous dual-path routing
CN109976686A (zh) 分布式显示系统及方法
CN116700943A (zh) 一种视频播放系统、方法以及电子设备
WO2006048826A1 (en) Integrated circuit and method for data transfer in a network on chip environment
JP2021018510A (ja) パケット処理装置及びそのメモリアクセス制御方法並びにプログラム
Yang et al. Ray tracing on a networked processor array
Li et al. Multi-Level Network-on-Chip Design Based on Embedded Unified Rendering GPU
Timmer et al. Guaranteeing on-and off-chip communication in embedded systems
CN114827054A (zh) 加速单元、相关装置和路径选择方法
US9450869B2 (en) System and method for a flexible number of lookups in pipeline-based packet processors

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240301

Address after: 310052 Room 201, floor 2, building 5, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: C-SKY MICROSYSTEMS Co.,Ltd.

Country or region after: China

Address before: 201208 floor 5, No. 2, Lane 55, Chuanhe Road, No. 366, Shangke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Patentee before: Pingtouge (Shanghai) semiconductor technology Co.,Ltd.

Country or region before: China