高带宽存储器、高带宽存储器系统及其命令处理方法与流程

文档序号:17489173发布日期:2019-04-23 20:16阅读:246来源:国知局
高带宽存储器、高带宽存储器系统及其命令处理方法与流程

本申请主张在2017年10月17日提出申请的美国临时专利申请第62/573,390号的优先权及权利,所述美国临时专利申请全文并入本申请供参考。

本公开的一些实施例大体来说涉及存储器带宽管理,且还可涉及包括位于高带宽存储器逻辑裸片上的处理器及存储器控制器的高带宽存储器(hbm)系统以及在高带宽存储器中进行处理的方法。



背景技术:

常常使用高带宽存储器(high-bandwidthmemory,hbm)作为图形处理单元(graphicsprocessingunit,gpu)的高性能存储器。与典型的动态随机存取存储器(dynamicrandomaccessmemory,dram)相比,高带宽存储器具有总线非常宽的优点。目前的hbm系统架构包括多个堆叠式dram裸片(例如,数字集成电路元件(digitalintegratedcircuitelement,dice))及用作hbm中的缓冲器及gpu中的hbm控制器的逻辑裸片。另外的性能增益可通过向存储器系统添加存储器内处理(例如,存储器内处理)能力来实现,然而对于hbm的任意改变均应引起现有gpu生态系统的微小改变。

以上信息仅是为了增强对本公开实施例的背景的理解,且因此可能含有并不构成现有技术的信息。



技术实现要素:

本公开的一些实施例提供一种在高带宽存储器(hbm)系统中协调存储器命令的系统及方法。

根据一些实施例,如在高带宽存储器(hbm)系统中处理存储器内命令的系统及方法,包括:图形处理单元的高带宽存储器控制器向高带宽存储器发送高带宽存储器内功能(function-in-hbm,fim)指令,且在所述高带宽存储器的逻辑组件处接收所述高带宽存储器内功能指令。所述逻辑组件可包括:控制器、算术逻辑单元(arithmeticlogicunit,alu)及静态随机存取存储器。所述逻辑组件使用所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于所述高带宽存储器内功能指令来协调所述高带宽存储器内功能指令的执行。

根据一些实施例,协调所述高带宽存储器内功能指令的执行涉及:将所述高带宽存储器内功能指令识别为计算高带宽存储器内功能指令。所述计算高带宽存储器内功能指令具有操作及至少一个数据位置。协调所述计算高带宽存储器内功能指令的所述执行包括根据所述至少一个数据位置从所述高带宽存储器的动态随机存取存储器检索至少一个数据;将所述至少一个数据及所述操作提供到所述算术逻辑单元;所述算术逻辑单元对所述至少一个数据执行所述操作;以及将所述执行的结果存储在所述动态随机存取存储器中。

根据一些实施例,操作可为原子运算及数据类型,且其中所述至少一个数据位置包括目的地寄存器、存储器地址、来源寄存器、常数、或参考寄存器中的至少一者。

根据一些实施例,所述原子运算包括加法(add)功能、减法(subtract)功能、交换(exchange)功能、最大值(max)功能、最小值(min)功能、递增(increment)功能、递减(decrement)功能、比较和替换(compare-and-swap)功能、与(and)功能、或(or)功能、异或(xor)功能、或非(not)功能中的至少一者。

根据一些实施例,所述操作可为算术逻辑单元操作及动态随机存取存储器存取操作,且所述至少一个数据位置包括目的地寄存器及至少一个来源寄存器。

根据一些实施例,所述动态随机存取存储器存取操作可包括成对加载指令或成对存储指令。

根据一些实施例,协调所述高带宽存储器内功能指令的执行可包括:所述控制器将所述高带宽存储器内功能指令识别为高带宽存储器内功能移动指令。所述高带宽存储器内功能移动指令可包括来源寄存器及目的地寄存器。所述控制器可根据所述来源寄存器从所述高带宽存储器的动态随机存取存储器检索所述至少一个数据以及将所述至少一个数据在所述目的地寄存器处存储在所述动态随机存取存储器中。

根据一些实施例,协调所述高带宽存储器内功能指令的执行可包括将所述高带宽存储器内功能指令识别为高带宽存储器内功能便签指令。所述高带宽存储器内功能便签指令包括来源寄存器或目的地寄存器中的至少一者。根据一些实施例,协调所述高带宽存储器内功能便签指令的执行可包括将所述控制器的定时参数从动态随机存取存储器定时参数调整到静态随机存取存储器定时参数以及根据所述静态随机存取存储器定时参数对所述静态随机存取存储器执行所述高带宽存储器内功能便签指令。

根据一些实施例,在高带宽存储器系统中处理存储器内命令的系统及方法还可包括当所述至少一个数据位置包括图形处理单元高速缓存时,所述高带宽存储器控制器协调所述高带宽存储器内功能指令在所述图形处理单元上的执行。

根据一些实施例,一种高带宽存储器包括:动态随机存取存储器;以及,逻辑组件,包括:控制器、算术逻辑单元及静态随机存取存储器,其中所述逻辑组件被配置成执行指令,所述指令在被所述逻辑组件执行时,使所述逻辑组件:所述逻辑组件使用所述动态随机存取存储器、所述控制器、所述算术逻辑单元、或所述静态随机存取存储器中的至少一者、基于高带宽存储器内功能指令来协调高带宽存储器内功能指令的执行。

根据一些实施例,一种高带宽存储器系统,包括:高带宽存储器,包括:动态随机存取存储器裸片,包括动态随机存取存储器;以及逻辑裸片,包括控制器、算术逻辑单元及静态随机存取存储器;以及图形处理单元存储器控制器,与所述高带宽存储器分开,且被配置成向所述控制器发送指令。其中所述控制器被配置成接收所述指令,并在所述指令是常规指令时将所述指令转发到所述动态随机存取存储器裸片上的所述动态随机存取存储器以及在所述指令是高带宽存储器内功能指令时协调所述指令的执行。且,其中所述指令的执行是使用所述控制器、所述算术逻辑单元、及所述静态随机存取存储器中的至少一者来实行。

附图说明

结合附图阅读以下说明可更详细地理解一些实施例,在附图中:

图1是根据各种实施例的高带宽存储器(hbm)系统的方块图。

图2是示出根据一些示例性实施例的用于对来自fim指令集架构(instructionsetarchitecture,isa)的指令进行处理的示例性操作的流程图。

[符号的说明]

100:存储器内功能高带宽存储器系统(fimhbm系统)/高带宽存储器系统(hbm系统);

110:高带宽存储器(hbm);

120:动态随机存取存储器(dram);

130:逻辑组件;

140:控制器;

150:算术逻辑单元(alu);

160:静态随机存取存储器(sram);

170:图形处理单元(gpu);

180:hbm控制器;

s200、s210、s220、s230:操作。

具体实施方式

通过参照对实施例及附图的以下详细说明,可更容易地理解本发明概念的特征及其实现方法。在下文中,将参照附图更详细地阐述实施例,其中相同的参考编号自始至终指代相同的元件。然而,本发明可被实施为各种不同形式,而不应被视为仅限于本文所示出的实施例。确切来说,提供这些实施例作为实例是为了使本公开将透彻及完整,并将向所属领域中的技术人员充分传达本发明的各个方面及特征。因此,可不再阐述对于所属领域中的一般技术人员完整地理解本发明的各个方面及特征而言并非必需的工艺、元件及技术。除非另有说明,否则在所有附图及书面说明通篇中相同的参考编号表示相同的元件,且因此可不对其进行重复说明。在图式中,为清晰起见,可夸大各元件、各层及各区的相对大小。

在以下说明中,出于解释目的,阐述各种具体细节来提供对各种实施例的透彻理解。然而,显而易见的是,可不使用这些具体细节或者可使用一种或多种等效配置来实践各种实施例。在其他实例中,以方块图形式示出众所周知的结构及装置以避免不必要地使各种实施例模糊不清。

应理解,当称一元件、层、区或组件位于另一元件、层、区或组件“上(on)”、“连接到(connectedto)”或“耦合到(coupledto)”另一元件、层、区或组件时,所述元件、层、区或组件可直接位于所述另一元件、层、区或组件上、直接连接到或直接耦合到所述另一元件、层、区或组件,抑或可存在一个或多个中间元件、层、区或组件。然而,“直接连接/直接耦合(directlyconnected/directlycoupled)”则是指一个组件与另一个组件直接连接或直接耦合,而不具有中间组件。同时,例如“位于...之间(between)”、“直接位于...之间(immediatelybetween)”或者“相邻于...(adjacentto)”及“紧邻于...(directlyadjacentto)”等阐述各个组件之间的关系的其他表达可类似地加以解释。另外,还应理解,当称一元件或层“位于”两个元件或层“之间(between)”时,所述元件或层可为所述两个元件或层之间的唯一元件或层,抑或也可存在一个或多个中间元件或层。

本文所用术语仅是出于阐述特定实施例的目的而并非旨在限制本发明。除非上下文清楚地另外指明,否则本文所用单数形式“一(a及an)”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括(comprises、comprising)”、“具有(have、having)”及“包含(includes、including)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“和/或”包括相关列出项中的一个或多个项的任意及所有组合。

本文所用用语“实质上(substantially)”、“大约(about)”、“近似地(approximately)”及类似用语用作近似用语、而并非作为程度用语,并且旨在考虑到所属领域中的一般技术人员将知的测量值或计算值的固有偏差。本文所述“大约”或“近似地”包括所阐述值且意指处于所属领域中的一般技术人员所确定的特定值的可接受的偏差范围内,此考虑到所说的测量以及与特定品质的测量相关联的误差(即,测量系统的限制)。举例来说,“大约”可意指处于一个或多个标准偏差范围内,或处于所述值的±30%、±20%、±10%、±5%内。另外,在阐述本发明的实施例时使用“可(may)”是指“本发明的一个或多个实施例”。本文所用用语“使用(use)”、“正使用(using)”及“被使用(used)”可被视为分别与用语“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同义。另外,用语“示例性(exemplary)”旨在指实例或例示。

当某一实施例可被以不同方式实施时,特定工艺次序可与所阐述的次序不同地执行。举例来说,两个连续阐述的工艺可实质上同时执行或以与所阐述的次序相反的次序执行。

在本文中参照剖视图阐述各种实施例,所述剖视图为实施例和/或中间结构的示意性例示。因此,预期会因例如制造技术和/或容差而导致相对于例示形状的变化。另外,本文所公开的具体结构说明或功能说明仅是例示性的,目的在于阐述根据本公开概念的实施例。因此,本文所公开的实施例不应被视为仅限于各个区的特定例示形状,而是应包含由例如制造引起的形状偏差。举例来说,被例示为矩形的植入区通常应具有圆形特征或曲线特征和/或在其边缘存在植入浓度的梯度而非从植入区到非植入区为二元变化。同样地,通过植入而形成的掩埋区可在所述掩埋区与在进行植入时所经过的表面之间的区中引起一些植入。因此,图式中所例示的区为示意性的且其形状并非旨在例示装置的区的实际形状且并非旨在进行限制。

根据本文所述本发明的实施例的电子装置或电装置和/或任何其他相关装置或组件可使用任何适合的硬件、固件(例如,应用专用集成电路(application-specificintegratedcircuit))、软件、或软件、固件、及硬件的组合来实施。举例来说,可将这些装置的各种组件形成在一个集成电路(integratedcircuit,ic)芯片上或单独的集成电路芯片上。此外,可将这些装置的各种组件实施在柔性印刷电路膜(flexibleprintedcircuitfilm)、载带封装(tapecarrierpackage,tcp)、印刷电路板(printedcircuitboard,pcb)上、或形成在一个衬底上。此外,这些装置的各种组件可为在一个或多个计算装置中由一个或多个处理器运行、执行计算机程序指令并与用于执行本文所述各种功能性的其他系统组件进行交互的过程或线程(thread)。计算机程序指令存储在可在使用例如(举例来说)随机存取存储器(randomaccessmemory,ram)等标准存储器装置的计算装置中实施的存储器中。计算机程序指令也可存储在例如(举例来说)压缩盘只读存储器(compactdiscreadonlymemory,cd-rom)、闪存驱动器(flashdrive)或类似元件等其他非暂时性计算机可读媒体中。另外,所属领域中的技术人员应知,在不背离本发明示例性实施例的精神及范围的条件下,可将各种计算装置的功能性组合或整合成单一的计算装置,或者可使一特定计算装置的功能性跨越一个或多个其他计算装置分布。

除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本发明所属领域中的一般技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文和/或本说明书中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。

图1是根据本公开实施例的高带宽存储器(hbm)系统的架构的方块图。

参照图1,本公开的实施例提供一种用于高带宽存储器内功能(“存储器内功能”)(fim)hbm系统100以及hbm的指令集架构(isa)扩展的系统。hbm系统100支持将另外的计算资源集成在hbm110中。举例来说,在各种实施例中,hbm系统100使得一些数据计算及移动能够在存储器内执行,且还提供大容量便签(high-capacityscratchpad)。hbm系统100包括连接到gpu170的至少一个hbm110。在各种实施例中,hbm110包括dram120(例如,一个或多个dram裸片)及逻辑组件130(例如,逻辑裸片)。在各种实施例中,逻辑组件130包括控制器140、算术逻辑单元(arithmeticlogicunit,alu)150及静态随机存取存储器(staticrandomaccessmemory,sram)160,且gpu170包括hbm控制器180以与hbm110进行接口。

根据各种实施例,控制器140被配置成协调来自gpu170的指令的执行。所述指令可包括常规指令及fim指令二者。举例来说,常规指令(例如,传统的加载指令及存储指令,而非高带宽存储器内功能指令)由hbm控制器180发送且由控制器140接收并且以传统方式执行。在其他实例中,控制器140协调存储器内功能(例如,fim指令)的执行。举例来说,控制器140可执行数据移动操作(例如,加载/存储对指令)。在一些实例中,控制器140可执行原来为多个常规指令的fim指令。举例来说,控制器140可协调利用alu150的计算fim指令(例如,原子指令及alu指令)的执行。在这些情形中,控制器140通过从dram120检索数据并将数据(及alu操作)提供到alu150进行处理来协调这些指令的执行。然后将结果存储在dram120中或者可将结果返回到gpu170。在一些实例中,fim指令包括已与加载或存储指令配成对的一个或多个alu指令。在另一个实施例中,控制器140还被配置成协调便签读取指令及写入指令的执行。在下文中将详细讨论这些类型的fim功能中的每一种。

根据各种实施例,alu150被配置成用于执行各种计算运算(例如,简单的计算命令)。举例来说,alu150可为被配置成用于执行算术运算、逐位运算、移位运算等的32位alu。举例来说,alu150可被配置成执行加法(add)运算、减法(subtract)运算、交换(exchange)运算、最大值(max)运算、最小值(min)运算、递增(increment)运算、递减(decrement)运算、比较和替换(compare-and-swap)运算、与(and)运算、或(or)运算及异或(xor)运算。alu150可用于原子运算及非原子运算。在各种实施例中,控制器140提供操作并管理去往alu150的数据输入及从alu150到dram120的数据输出。在其他实施例中,alu150能够直接从dram120检索数据及将数据直接存储在dram120中。在其他实施例中,控制器140负责从dram120检索数据并将数据存储在dram120中。

根据各种实施例,sram160被配置为低延迟便签。在一些实施例中,sram160可与dram120共享相同的命令/地址(command/address,ca)接口及数据(data,dq)接口,且在其他实施例中,sram160可具有自己的ca接口及dq接口。在各种实施例中,sram160包括自己的与dram120的地址范围不同的地址范围。控制器140可使用传入的读取/写入指令的地址来判断所述请求是否是便签操作。在其他实施例中,gpu170可将专门指定的便签指令发送到控制器140。当命令利用sram160时,控制器140可改变其定时参数以根据sram160的定时参数(例如,与dram120定时参数相比更快速/延迟更低)进行操作。sram160的使用可由用户(例如,程序员)指定,且sram160中的空间可在运行时进行分配。在操作过程中,便签可以与gpu的1级便签相似的方式运行(例如,提供低延迟存储器)。由于gpu的1级便签通常很小(每个核心为15kb),因此扩展式hbm便签(例如,sram160)会相对于利用dram120而言实现性能的提高。

根据各种实施例,提供fimisa来利用hbm110中可用的添加资源。举例来说,fimisa可对先前的指令集进行扩展以允许进行包括计算fim指令(例如,fim原子指令及fimalu指令)、数据移动fim指令及fim便签指令的操作。每一个fim指令包括将指令标识为fim指令的fim指示符、由hbm执行的一个或多个操作以及数据位置(例如,寄存器、存储器、所提供的常数等)。在一个实施例中,fim指令可被格式化为:<指示符>.<操作>.<数据位置1><数据位置2>(<designator>.<operation>.<datalocation1><datalocation2>)。

在各种实施例中,指令可由用户(例如,程序员)、编译器或gpu指定为fim指令。举例来说,在一些编程语言中,用户可指定操作发生的位置(例如,存储器内,gpu或中央处理器(cpu))或利用何种存储器。在另一个实例中,编译器可被配置成识别可在hbm110中进行的命令,并且相对于gpu170而言优先在hbm110中进行fim命令。在另一个实例中,gpu170可分析来源存储器地址及目的地存储器地址以判断是否有fim指令可用。在一些情形中,gpu170可分析存储器地址并判断至少一个地址位于gpu高速缓存或其他非hbm存储器中,在这些情形中,将执行正常指令(例如,非fim指令)。

图2是对来自fim指令集架构(isa)的指令进行处理的方块图。

根据各种实施例,gpu170被配置成向hbm110发送指令(s200)。gpu170包括hbm控制器180,hbm控制器180处理请求并将请求发送到hbm110并对任何返回信息进行处置。在一些实施例中,hbm控制器180还可通过评估fim指令中的存储器地址的位置来验证fim指令是合适的。举例来说,当地址位于不同的hbm上或者如果地址中的一者用于gpu170的高速缓存、本地高速缓存时,fim指令可能不合适。在一些实施例中,对fim指令进行验证可在指令被发送到hbm110之前在较早的gpu流水线阶段中完成。举例来说,在一些实施例中,gpu本地高速缓存控制器可验证fim指令是合适的。hbm110在逻辑组件130处接收fim指令(s210)。控制器140对指令进行处理并对执行进行协调。控制器140可验证指令是fim指令并确定指令的操作(s220)。举例来说,控制器140将判断指令是否是利用alu150的计算指令、是否是移动指令或者是否是便签指令。控制器140接着通过完成指令本身(例如,移动指令)或通过采用必需的逻辑硬件(例如,alu150或sram160)来协调指令的执行(s230)。

根据各种实施例,isa包括计算指令。在各种实施例中,控制器140接收计算指令并在alu150上协调所述计算指令的执行。计算指令可包括fim原子指令及fimalu指令。

根据各种实施例,hbm110被配置成使用fimisa处理fim原子指令。原子指令通常可被分解成三个步骤:从存储器位置读取数据;对数据执行功能(例如,add功能、subtract功能等);并将所得数据写回某个存储器位置。在接收到fim原子指令时,hbm110可在内部执行所有三个步骤。为完成指令,在一些实施例中,与传统的原子指令相比,fim原子指令包括由gpu170发送到hbm110的附加信息。举例来说,gpu170可发送fim原子指令,所述fim原子指令包括原子运算、数据类型、目的地寄存器、来源寄存器、参考寄存器(例如,用于比较及交换功能(compare-and-swapfunctions))、存储器地址及功能类型。

根据各种实施例,控制器140从gpu的hbm控制器180接收fim原子指令。控制器140读取指令并使用fim指示符确定所述指令是fim指令。控制器140使用所述操作来确定指令是fim原子指令。除了发信号告知所述功能是fim原子指令之外,所述操作还指示alu150要执行的功能的类型(例如,原子加法(atomicadd)、原子比较及交换(atomiccompare-andswap);原子或(atomicor)等)以及正在进行操作的数据类型(例如,32位带符号的整数;32位无符号的整数;等等)。控制器140接着从所提供的数据位置读取数据,并将数据与功能一起提供到alu150。alu150对数据执行功能,并将结果存储在原始数据位置。

在一个实例中,fim原子指令的一般格式是:fim.原子.<功能>.<数据类型><目的地寄存器><存储器地址><来源寄存器或常数><参考寄存器>(fim.atom.<function>.<datatype><destinationregister><memoryaddress><sourceregisterorconstant><referenceregister>)。表1包括具有示例性值的一些示例性功能。

表1:示例性fim原子指令

在各种实施例中,fim指令isa包括用于fimalu指令的指令。由gpu执行的典型操作可能需要伴随的加载指令及存储指令以从存储器拉出必要的数据并对结果进行放置。在一些实施例中,fimalu指令可将传统功能加上伴随的加载指令及存储指令压缩成单个fimalu指令。在一个实例中,fimalu指令的一般格式包括fim指示符、具有alu操作及成对加载/存储操作的操作;以及至少一个数据位置。举例来说,fimalu指令可被格式化成:fim.<功能>.<加载/存储><目的地寄存器><来源寄存器><加载寄存器>(fim.<function>.<load/store><destinationregister><sourceregister><loadregister>)。举例来说,alu指令可与加载指令和/或存储指令配成对,如表2中所示:

表2:示例性fimalu加载指令/存储指令

在一个实例中,fimalu指令的操作类似于fim原子指令的操作。举例来说,根据各种实施例,控制器140从gpu的hbm控制器180接收fimalu指令。控制器140读取指令并使用fim指示符确定指令是fim指令。控制器140使用所述操作来确定指令是fimalu指令以及确定alu150要执行的功能的类型(例如,加法、交换、min、max、or等)。控制器140接着从所提供的数据位置读取数据,并将数据与功能一起提供到alu150。alu150对数据执行功能,并将结果存储在原始数据位置或所指示的数据位置。

在各种实施例中,hbm110及fimisa被配置成用于fim移动指令。移动指令可被识别为与对应的存储指令配对的加载指令。当加载与存储的地址位于同一hbm内时,所述功能可在存储器内执行。在各种实施例中,可将成对的加载功能与存储功能合并成单个fim移动指令。表3示出示例性加载/存储指令。

表3:示例性fim移动指令

在接收到fim移动指令时,控制器140通过fim指示符而识别出所述指令是fim指令,且识别出所述操作是移动操作。控制器140接着从来源地址读取数据并将数据存储在目的地地址中。在各种实施例中,编译器可被配置成识别可被凝聚成单个fim移动指令(如表3中所示)的成对的加载指令与存储指令。在各种实施例中,gpu170还可在将指令发送到hbm110之前对移动指令进行分析并判断fim移动指令是否合适。举例来说,gpu170(例如,在hbm控制器180处)可分析来源存储器地址及目的地存储器地址并判断这些地址中的一者是否位于gpu高速缓存中。在此实例中,gpu170将会将指令分离成正常加载指令及存储指令。

在各种实施例中,hbm110及fimisa被配置成将sram160用作低延迟便签。在各种实施例中,控制器140被配置成识别fim便签指令。如上所述,sram160包括与dram120的地址范围不同的特定地址范围。控制器140被配置成识别请求是对应于dram120存储器地址还是对应于sram160存储器地址。在各种实施例中,isa包括特定便签命令。举例来说,isa可包括fim读取便签命令(例如,fim.rd_sp)及fim写入便签命令(例如,fim.wr_sp)。在此实例中,控制器140可不评估传入命令的存储器地址。

sram160以比dram120低的延迟运行(例如,比dram120快)。因此,便签可使hbm110在数据加载及存储时间方面为不确定的。在各种实施例中,控制器140被配置成通过在执行dram存储器相关功能时根据dram120的定时参数运行并在sram存储器相关功能(例如,fim便签指令)期间根据sram160的定时参数运行来协调指令的执行。因此,当接收到fim便签指令时,控制器140可调整其定时参数来对应于sram160的定时参数并执行fim读取/写入便签命令。

在各种实施例中,用户对利用sram160作为低延迟便签的数据结构进行定义。一旦用户将数据结构定义为使用便签,编译器便将请求转换成包括指定符(例如,汇编中的llsp),且gpu170将相应地分配hbm110中的空间。

因此,本公开的上述实施例提供高带宽存储器(hbm)系统及指令集架构(isa)。

以上是对示例性实施例的例示,而不应被视为对示例性实施例的限制。尽管已阐述了几个示例性实施例,但是所属领域中的技术人员将容易地理解,在不实质上背离示例性实施例的新颖教示及优点的条件下,在示例性实施例中可进行许多修改。因此,所有这些修改均旨在包含在由权利要求书所界定的示例性实施例的范围内。在权利要求书中,手段加功能条款旨在涵盖在本文中被阐述为执行所述功能的结构,且不仅涵盖结构等效形式而且还涵盖等效结构。因此,应理解,以上是对示例性实施例的例示,而不应被视为仅限于所公开的具体实施例,且对所公开的示例性实施例的修改形式以及其他示例性实施例也旨在包含在随附权利要求书的范围内。本发明概念是由以上权利要求界定,其中权利要求的等效形式包含在本文中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1