具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
在本文中使用以下术语。
行缓存:行缓存(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,
由于行缓存配置方法的细节在上述实施例的行缓存单元部分,已经结合机构图进行了详细说明,具体过程可参见前述行缓存单元实施例和加速单元实施例中的描述,在此不再进行赘述。
本申请实施例的商业价值
本申请实施例在解决显示系统中行缓存资源浪费的技术问题时,将显示系统的行缓存划分为多个缓存块,各缓存块的缓存资源之和等于缓存资源需求量最大应用场景下各图层所需缓存资源之和,在不同应用场景下,根据图层所需的缓存资源,对各缓存块进行组合,获得多个缓存块组,每个包括至少一个缓存块的缓存块组形成图层所需的一条行缓存。通过图层之间共享缓存块,根据图层的需求对缓存块进行组合,拼接成图层所需的缓存资源,从而可以根据不同应用场景下各图层所需缓存资源的总和,设计显示系统中行缓存的大小,避免大量缓存资源长时间闲置而导致缓存资源浪费,能够减小行缓存对芯片面积的占用,从而可以减小芯片的功耗,因此具有良好的市场前景。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和系统实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。