CN104090849B - 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质 - Google Patents

用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质 Download PDF

Info

Publication number
CN104090849B
CN104090849B CN201410198467.1A CN201410198467A CN104090849B CN 104090849 B CN104090849 B CN 104090849B CN 201410198467 A CN201410198467 A CN 201410198467A CN 104090849 B CN104090849 B CN 104090849B
Authority
CN
China
Prior art keywords
page
page request
work item
request
fault
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.)
Expired - Fee Related
Application number
CN201410198467.1A
Other languages
English (en)
Other versions
CN104090849A (zh
Inventor
A·科克
B·韦姆布
M·拉玛多斯
A·纳瓦勒
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104090849A publication Critical patent/CN104090849A/zh
Application granted granted Critical
Publication of CN104090849B publication Critical patent/CN104090849B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

本申请提供了用于图形处理单元的存储器映射。在这里描述了一种电子设备。该电子设备可以包括页面遍历器模块,用来接收图形处理单元(GPU)的页面请求。页面遍历器模块可以检测与页面请求相关联的页面错误。该电子设备可以包括至少部分地包含硬件逻辑单元的控制器。控制器监视具有页面错误的页面请求的执行。控制器基于与页面请求相关联的因素,来确定是暂停与具有页面错误的页面请求相关联的工作项在GPU处执行,还是继续该工作项的执行。

Description

用于图形处理单元的存储器映射的系统、方法、装置、电子设 备以及机器可读介质
背景技术
计算设备可以包括在程序请求下动态地将存储器的部分分配给程序的存储器管理系统。虚拟地址空间映射是将虚拟地址映射到物理地址空间的存储器映射机制。在很多情况下,操作系统管理映射。当应用或设备被初始化时,其被分配映射到物理地址空间的虚拟地址空间。
在一些情况下,操作系统将使用静态固定设计(static pinning design),其中,与虚拟地址相关联的物理地址不被重新分配直到应用或设备释放该物理地址为止。然而,系统资源的静态固定增加了存储器资源的缺乏。在其他情况下,操作系统将使用动态固定设计。在动态固定设计中,虚拟地址可以按照需要与物理地址关联。基于应用或设备的需要,可以将该物理地址重新分配给不同的应用或设备。
附图说明
图1的框图示出了包括具有控制器的计算设备的系统,该控制器用来监视与图形处理单元的工作项相关联的页面请求;
图2的框图示出了显示接口与系统存储器和操作系统进行交互;以及
图3的框图示出了用于监视GPU线程的执行的方法。
图4是用于渲染图像的示例性系统的框图。
图5是小型化设备的示意图,图4的系统可以实例化在该小型化设备中。
在本公开内容和附图中,使用相同的数字来引用类似的部件和特征。100序列中的数字表示最初在图1中发现的特征;200序列中的数字表示最初在图2中发现的特征;以此类推。
具体实施方式
本公开内容一般涉及实现与图形处理单元(GPU)的工作项相关联的虚拟地址的映射的技术。GPU是一种电子电路,其被配置为操作和改变存储器,以部分地加速帧缓冲器中的图像构建,以输出给显示设备。基于GPU的需要,GPU可以利用被动态固定和取消固定给物理地址空间的虚拟地址空间。GPU可以执行工作项,工作项可以产生将虚拟地址空间映射到物理地址空间的页面请求。被配置用来监视页面请求的控制器,可以基于以下将更详细讨论的与页面错误正在被服务的效率相关联的因素,来在GPU处暂停与具有页面错误的页面请求相关联的工作项。
工作项可以是在GPU中执行的操作,其中该操作包括执行线程。该线程的执行可以产生至少一个将虚拟地址空间映射到物理地址空间的页面请求。
图1是示出了系统100的框图,该系统100包括具有用来监视与图形处理单元的工作项相关联的页面请求的控制器104的计算设备102。计算设备102可以是例如膝上型计算机、台式计算机、平板电脑、移动设备、服务器、或蜂窝电话、可穿戴计算设备等等。计算设备102也可以包括图形处理单元(GPU)106,图形处理单元(GPU)106处理与计算机产生的、可以在显示设备108上被渲染的图形相关的工作项。显示设备108可以是计算设备102的内置部件。显示设备108还可以包括外部连接到计算设备102的计算机监视器、电视机、或投影仪等等。
计算设备102还可以包括处理器112和存储设备114。存储设备114包含非暂时性计算机可读介质。存储设备114还可以包括操作系统116。操作系统116可以由主机计算系统的处理器(例如计算设备102的处理器112)来执行。操作系统116被配置用来管理计算设备102的存储器等等,包括动态分配存储器的一部分给运行在计算设备102上的应用。操作系统116可以动态地将虚拟地址固定到物理地址以及取消固定。GPU 106可以执行工作项,工作项可能需要已经由操作系统116动态取消固定的虚拟地址,从而导致页面错误。在一些实施例中,存储设备114具有存储于其上的指令,所述指令在由处理器112执行时使计算设备102执行操作。在一些实施例中,操作包括对来自GPU 106的具有页面错误的页面请求进行响应,这将在下面更详细地讨论。处理器112可以是适用于执行存储的指令的主处理器。计算设备102还可以包括存储器设备118,在一些实施例中,存储器设备118存储可被处理器112执行的指令。处理器112可以是单核处理器、多核处理器、计算集群、或任意数量的其它配置。处理器112可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或任意其它微处理器或中央处理单元(CPU)。
存储器设备118可以包括随机存取存储器(例如SRAM、DRAM、零电容RAM、SONOS、eDRAM、EDO RAM、DDR RAM、RRAM、PRAM等)、只读存储(例如Mask ROM、PROM、EPROM、EEPROM等)、闪存、或任意其它合适的存储器系统。存储器设备118可以是下面参见图2更详细讨论的存储器系统的一部分。在一个实施例中,指令可以在存储设备114、存储器设备118或它们的任意组合中存储。
主处理器112可以通过系统总线120(例如PCI、ISA、PCI-Express、NuBus等等)连接到显示接口110。显示接口110可以适于将计算设备102连接到显示设备108。GPU 106可以产生工作项,工作项指示对虚拟存储器系统中的存储器页面的页面请求。控制器104监视遇到页面错误的页面请求,下面将更详细地解释。控制器104至少部分地包括硬件逻辑单元。硬件逻辑单元至少部分地包括硬件,并且还可以包括软件或固件。硬件逻辑单元可以包括电子硬件,其包括相互连接的电子部件,相互连接的电子部件对接收到的和本地存储的信息执行模拟或逻辑运算,以产生输出或存储产生的新信息或者来提供对输出执行机制的控制。电子硬件可以包括单独的芯片/电路以及分布式信息处理系统。
存储设备114还可以包括一个或多个应用122。应用122包括但是不限于视频重放应用和游戏应用。
网络接口控制器(NIC)124可以被配置为将计算设备102连接到网络126。网络126可以是有线线路网络、无线网络或蜂窝网络。网络126可以是任意广域网(WAN)、任意局域网(LAN)或互联网等等。例如,网络126可以是3GPP LTE网络或者WiFi网络。
图1的框图并不旨在指示计算设备102将会包括图1中所示的所有部件。进一步地,计算设备102可以包括图1中未示出的任意数量的其它部件,这取决于特定实现的细节。
图2是的框图示出了显示接口110与系统存储器202以及操作系统116进行交互。如图3中所示的,控制器104和GPU 106可以是显示接口110的一部分。系统存储器202可以是虚拟存储器,其包括对于访问进程或页面请求唯一的虚拟地址。系统存储器202的虚拟地址被映射到物理存储器,例如图1中的存储器设备118。
如参考图1在上面所讨论的,GPU 106被配置用来执行与要发送给显示设备108的图形的产生有关的工作项。工作项的执行可以包括产生指示页面请求的线程。页面是虚拟存储器页,其包括例如虚拟存储器的块。页面请求是访问系统存储器202的虚拟存储器的页面的请求。
显示接口110包括页面遍历器(page walker)204和高速缓存206。页面遍历器204可以是逻辑单元,至少部分地包括硬件逻辑单元。页面遍历器204接收与GPU 106的工作项相关联的页面请求。页面遍历器204确定与页面请求的虚拟地址相关联的物理地址。页面遍历器可以通过访问被配置为存储虚拟地址与物理地址之间的映射的数据库(例如页表),来确定物理地址。页面遍历器204可以检测页面错误。当与页面请求相关联的页面具有虚拟地址但是没有可用的或正确的物理地址时,发生页面错误。检测该页面错误也可以基于页面请求的属性。例如,所述属性包括是否存在与页面请求相关联的分页条目(paging entry)。所述属性还可以包括所请求的页面的读/写属性、所请求的页面的特权级别、所请求的页面的执行特性、所讨论的属性的任意组合等等。
具有页面错误的页面请求可以被加载到高速缓存206中。高速缓存206可以是内容可寻址存储器,例如转换后备缓冲器(TLB),其被配置来存储具有页面错误的页面请求。随后的页面请求可以依赖于加载入高速缓存206的特定页面请求。在这些环境下,GPU执行的并且与具有页面错误的页面请求相关联的工作项可以基于与页面请求相关联的指示具有页面错误的页面请求被服务的效率的因素而被暂停。
具有页面错误的页面请求可以被加载到页面请求队列208。页面请求队列208是系统存储器202中的虚拟队列。页面请求队列208可以将页面错误提供给操作系统116的页面未命中处理机210。页面未命中处理机210通过分配物理地址给页面错误中指示的该虚拟地址,来给页面请求提供服务。页面未命中处理机210可以是硬件逻辑单元,其被配置为纠正操作系统(例如图1中的操作系统116)的虚拟存储器空间中的页面错误。页面未命中处理机210可以包括GPU驱动器,GPU驱动器被配置来在页面未命中处理机210处驱动来自页面请求队列208的页面请求。在一些实施例中,页面未命中处理机210分配物理存储器并且输入将错误的虚拟地址映射到所分配的物理存储器的页表条目。换句话说,页面未命中处理机210将通过在虚拟地址和物理地址之间进行正确的映射来校正页面错误。
页面未命中处理机210将给页面响应队列212提供校正的映射。页面响应队列212是系统存储器202的虚拟队列。页面响应队列212可以提供给页面遍历器204提供校正的映射。如果控制器106暂停与页面请求相关联的工作项,那么控制器可以重新提交该工作向,以在GPU 106上执行。
控制器104监视页面请求的执行。如之前讨论的,控制器104可以确定是否暂停GPU106的工作项直到与该工作项相关联的具有页面错误的页面请求已经由页面未命中处理机210提供服务为止。可以实时执行控制器104做出的继续或暂停的决定,从而最大化硬件资源的使用,同时保留系统响应和功率。由于与CPU(例如处理器112)的工作项相比,GPU 106的工作项是相对高度地线程化的,因此可能需要暂停工作项来降低使GPU 106停顿并等待页面请求被服务的概率。控制器104可以基于多种因素来暂停工作项,所述多种因素包括页面请求队列中挂起的(pending)页面请求的总数、与工作项相关联的给定页面请求已经挂起的时间、依赖于页面请求队列中的页面请求的后续页面请求的数量、以及以上的任意组合。在一些实施例中,控制器104确定将页面请求队列208中的与一工作项相关联的页面请求的数量与页面响应队列212中的与该工作项相关联的页面响应的数量关联起来的比率,以确定处理效率,该处理效率表示页面请求正在停顿还是正在积极地被页面未命中处理机210服务。例如,如果在给定时间,对于页面请求队列208中的与一工作项相关联的每五个页面请求,在页面响应队列212中存在与该工作项相关联的四个页面响应,那么页面请求以80%效率的速率进行处理。在这个例子中,由于页面请求正在一个可接受的级别进行处理,所以控制器104可以不暂停GPU 106处的工作项。在一些实施例中,控制器104可以基于系统用户预先确定的阈值效率百分比,来确定暂停工作项。在其它实施例中,控制器104可以基于与页面错误被页面未命中处理机210服务的进度相关联的其它统计测量值,来暂停工作项。
作为另一个例子,控制器104可以基于GPU 106的使用,来暂停工作项在GPU 106处的执行。由于GPU 106是高度地线程化的,所以可以基于多少线程是激活的以及多少线程是暂停的,来暂停工作项。
当控制器104暂停一个工作项时,将在页面请求队列208中标记与该工作项相关联的具有页面错误的最后一个页面请求。最后一个页面请求可以是一个分组,并且可以由页面请求分组内的一个比特来标记。当页面未命中处理机210接收到被标记的页面请求时,页面未命中处理机将跟踪页面请求队列208以确定与该工作项相关联的任何额外的页面请求。因此,与已经被暂停的工作项有关的所有页面请求都可以被页面未命中处理机210在服务任意不相关的页面请求之前服务。已被服务的页面请求可以被提供给页面响应队列212,并且在控制器104和页面遍历器204处被接收。当接收到已被服务的页面请求之后,控制器104可以重新提交、或重新调度与已被服务的页面请求相关联的工作项。
图3的框图示出了用于监视表示页面请求的GPU工作项的执行的方法300。方法300包括:在块302,接收与GPU的工作项相关联的页面请求。页面请求可以指示存储器中的页面的虚拟地址。在块304,检测与页面请求相关联的页面错误。当页面请求中指示的虚拟地址与错误的或不可用的物理地址相关联时,可能发生页面错误。在块306,监视具有页面错误的页面请求。监视该页面请求的时延和任意相关联的低效率。如此处所使用的,时延表示该页面请求已经挂起而没有识别出正确的虚拟地址到物理地址的关联的时间。在块308,在GPUP的其它页面请求的上下文中基于该页面请求的因素,来确定是暂停与该页面请求相关联的工作项在GPU处的执行,还是继续该工作项的执行。
检测页面错误是基于页面请求的属性的。例如,所述属性包括是否存在与该页面请求相关联的分页条目。分页条目可以是与页面请求相关联的虚拟地址到物理地址的映射。所述属性还可以包括所请求的页面的读/写属性、所请求的页面的特权级别、所请求的页面的执行特性、所讨论的属性的任意组合等等。
虽然在图3中没有示出,但是方法300可以包括搜索被配置为存储虚拟地址和物理地址之间映射的数据库。该数据库可以是例如页表、或计算机操作系统中被虚拟存储器系统使用的其它数据结构。搜索可以由页面遍历模块执行,例如之前参考图2讨论的页面遍历器。
虚拟地址到物理地址的动态映射可以导致没有被映射到可用物理地址的虚拟地址。如之前参考图2讨论的,页面错误是虚拟地址没有被映射到可用的物理地址的结果。当在块304检测到页面错误时,方法300可以包括当检测到页面错误时,在页面请求队列处接收页面请求。页面请求队列可以将具有页面错误的页面请求提供给计算设备的操作系统的页面未命中处理机。方法300可以包括在页面未命中处理机处接收页面请求,并且通过页面未命中处理机将物理地址分配给页面请求所指示的虚拟地址。方法300可以包括将该物理地址提供给GPU的页面遍历器。在一些实施例中,在将该物理地址提供给物理遍历器之前,将其提供给响应队列。
在块308,可以暂停与具有页面错误的页面请求相关联的工作项。可以在高速缓存(例如转换后备缓冲器)中列出与被暂停的工作项相关联的页面请求。方法300可以包括缓存,并且可以包括:在与工作项相关联的页面请求已经被操作系统的页面未命中处理机服务之后,重新提交工作项。在块308,确定是暂停还是继续工作项的执行可以依赖于与页面请求相关联的因素。这些因素可以包括:挂起的页面请求的总数、与工作项相关联的页面请求已经挂起的时间、依赖于挂起的页面请求的其它页面请求、已被页面未命中处理机服务的与工作项相关联的页面请求的数量与页面请求队列中挂起的页面请求的数量的比值等等。在一些实施例中,确定暂停工作项可以基于与页面请求服务效率相关联的统计阈值或阈值范围。基于任意给定的工作项与具有页面错误的页面请求相关联,确定暂停工作项使得GPU在其它工作项方面能够避免停顿。
图4是用于渲染图像的示例性系统400的框图。相同标号的项如图1中描述的一样。在一些实施例中,系统400是媒体系统。另外,系统400可以并入个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等等。
在各个实施例中,系统400包括耦合到显示器404的平台402。显示器404可以是图1中的显示器108。平台402可以从内容设备(例如内容服务设备406或内容传递设备408、或其它相似内容源)接收内容。包括一个或多个导航功能的导航控制器410可以被用来例如与平台402和/或显示器404进行交互。以下将更详细地描述这些部件中的每一个。
平台402可以包括芯片组412、中央处理单元(CPU)202、存储器设备118、存储设备114、图形子系统414、应用122和无线电设备416的任意组合。芯片组412可以在CPU 202、存储器设备118、存储设备114、图形子系统414、应用122以及无线电设备416之间提供互相通信。例如,芯片组412可以包括能提供与存储设备114的交互通信的存储适配器(未示出)。
处理器112可以被实现成复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或任意其它微处理器或中央处理单元(CPU)。在一些实施例中,处理器112包括双核处理器、双核移动处理器等等。
存储器设备118可以被实现成易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。存储设备114可以被实现成非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在一些实施例中,存储设备114包括增加处理页面错误的技术,例如所述页面错误是由具有无效的虚拟到物理地址关联的页面请求引起的。
图形子系统414可以执行对图像(例如静态的或视频)的处理以便显示。例如,图形子系统414可以包括图形处理单元(GPU)(例如GPU 206)或可视处理单元(VPU)。模拟或数字接口可以被用来通信地耦合图形子系统414和显示器404。例如,该接口可以是高清多媒体接口、DisplayPort、无线HDMI和/或无线HD适应技术中的任意一种。图形子系统414可以被集成到处理器或芯片组412中。可替换地,图形子系统414可以是通信地耦合到芯片组412的独立卡。
这里描述的图形和/或视频处理技术可以用多种硬件架构来实现。例如,图形和/或视频功能可以被集成到芯片组412中。可替换地,可以使用离散图形和/或视频处理器。作为另一个实施例,图形和/或视频功能可以通过通用处理器实现,通用处理器包括多核处理器。在进一步的实施例中,这些功能可以在消费者电子设备中实现。
无线电设备416可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电设备。这样的技术可以涉及跨越一个或多个无线网络的通信。示例性无线网络包括无线局域(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络或卫星网络等等。在跨越这样的网络的通信中,无线电设备416可以根据任何版本的一个或多个可应用标准来运行。
显示器404可以包括任意的电视机类型的监视器或显示器。例如,显示器404可以包括计算机显示屏幕、触摸屏显示器、视频监视器或电视机等等。显示器404可以是数字的和/或模拟的。在一些实施例中,显示器404是全息显示器。此外,显示器404可以是可以接收可视投影的透明表面。这样的投影可以传送各种形式的信息、图像、对象等等。例如,这样的投影可以是移动增强现实(MAR)应用的可视覆盖。在一个或多个应用122的控制下,平台402可以在显示器404上显示用户界面418。
内容服务设备406可以由任何国家的、国际的或独立的服务来托管(host),并且因此,例如对于平台402是可经由互联网访问的。内容服务设备406可以耦合到平台402和/或显示器404。平台402和/或内容服务设备406可以耦合到网络126,从而向和从网络126传送(例如,发送和/或接收)媒体信息。内容传递设备408也可以耦合到平台402和/或显示器404。
内容服务设备406可以包括有线电视盒、个人计算机、网络、电话、或能传递数字信息的支持互联网的设备。此外,内容服务设备406可以包括能在内容提供者和平台402或显示器404之间通过网络126或直接地单向或双向传送内容的任何其它相似设备。需要理解的是,可以通过网络126向以及从系统400中的任何部件和内容提供者单向和/或双向传送内容。内容的例子可以包括任意媒体信息,例如包括视频、音乐、医疗和游戏信息等。
内容服务设备406可以接收诸如有线电视节目之类的内容,包括媒体信息、数字信息或其它内容。内容提供者的例子可以包括任意有线或卫星电视或者无线电或互联网内容提供者等等。
在一些实施例中,平台402从导航控制器410接收控制信号,导航控制器410包括一个或多个导航功能。导航控制器410的导航功能可以例如被用来与用户界面418交互。导航控制器410可以是指点设备,其可以是允许用户向计算机输入空间(例如,连续的和多维的)数据的计算机硬件部件(特别是人类接口设备)。许多系统,例如图形用户接口(GUI)以及电视机和监视器,允许用户利用身体姿势来控制和提供数据给计算机或电视机。身体姿势包括但是不限于脸部表情、脸部运动、各四肢的运动、身体运动、身体语言或以上的任意组合。这样的身体姿势能够被识别并且被翻译成命令或指令。
导航控制器410的导航功能的运动可以通过显示在显示器404上的指针、光标、焦点环、或其它可视指示符而反射在显示器404上。例如,在应用122的控制下,位于导航控制器410上的导航功能可以被映射到显式在用户界面418上的虚拟导航功能。在一些实施例中,导航控制器410可以不是单独部件,而是可以集成到平台402和/或显示器404中。
系统400可以包括驱动器(未示出),所述驱动器包括这样的技术,所述技术使得用户能够在初始引导之后(例如使能时)通过触摸按钮立即打开和关闭平台402。当平台被“关闭”时,程序逻辑可以允许平台402将内容流式传输到媒体适配器或其它内容服务设备406或内容传递设备408。另外,芯片组412可以包括例如用于12.1环绕立体声音频和/或高清7.1环绕立体声音频的硬件和/或软件支持。所述驱动器可以包括集成图形平台的图形驱动器。在一些实施例中,图形驱动器包括外围部件互连快速(PCIe)图形卡。
在各个实施例中,系统400中所示的部件中的任意一个或多个可以被集成。例如,平台402和内容服务设备406可以被集成;平台402和内容传递设备408可以被集成;或平台402、内容服务设备406和内容传递设备408可以被集成。在一些实施例中,平台402和显示器404是集成单元。例如,显示器404和内容服务设备406可以被集成,或者显示器404和内容传递设备408可以被集成。
系统400可以被实现成无线系统或有线系统。当被实现成无线系统时,系统400可以包括适于通过无线共享介质进行通信的部件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享介质的例子可以包括无线频谱的一部分,例如RF频谱。当被实现成有线系统时,系统400可以包括适用于通过有线通信介质进行通信的部件和接口,例如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接起来的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的例子包括线缆、电缆、金属线、印刷电路板(PCB)、底板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台402可以建立一个或多个逻辑或物理通道来传送信息。信息可以包括媒体信息和控制信息。媒体信息可以指的是代表对用户有意义的内容的任意数据。内容的例子可以包括例如来自语音会话、视频会议、流视频、电子邮件(email)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音会话的数据可以是例如语音信息、沉默时段、背景噪声、舒适噪声、音调等等。控制信息可以指的是代表对自动系统有意义的命令、指令或控制词语的任意数据。例如,控制信息可以被用来通过系统路由媒体信息,或者指导一个节点以预定的方式处理媒体信息。然而,实施例并不限于图4中所示或描述的元件或上下文。
图5是对图4中的系统400进行实例化的小型化设备500的示意图。相同编号的项如关于图4所描述的一样。在一些实施例中,例如,设备500可以被实现成具有无线能力的移动计算设备。移动计算设备可以是指具有处理系统和移动电源或电供应(例如一个或多个电池)的任意设备。
如前所述,移动计算设备的例子可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的例子还可以包括被安排由人佩戴的计算机,例如,手腕计算机、手指计算机、指环计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、衣服计算机、或任意其它适合类型的可佩戴计算机。例如,移动计算设备可以被实现成能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以通过例子的方式使用被实现成智能电话的移动计算设备来描述一些实施例,但是可以理解的是,也可以利用其它无线移动计算设备来实现其它的实施例。
如图5中所示,设备500可以包括外壳502、显示器504、输入/输出(I/O)设备506以及天线508。设备500还可以包括导航功能510。显示器504可以包括适合于移动计算设备的用于显示信息的任意合适的显示单元。I/O设备506可以包括用于向移动计算设备输入信息的任意合适的I/O设备。例如,I/O设备506可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等等。还可以通过麦克风将信息输入到设备500。这样的信息可以被语音识别设备来数字化。
示例1
这里描述了一种用于使能图形处理单元的操作的方法。该方法包括:接收与图形处理单元(GPU)的工作项相关联的页面请求。该方法包括:检测与所述页面请求相关联的页面错误。监视所述页面请求的执行。该方法包括:确定是暂停与具有页面错误的页面请求相关联的工作项在GPU处的执行,还是继续该工作项的执行。
示例2
这里描述了一种用于使能图形处理单元的操作的电子设备。所述电子设备包括:页面遍历器模块,用来接收图形处理单元(GPU)的页面请求。页面遍历器模块用来检测与所述页面请求相关联的页面错误。所述电子设备包括控制器,所述控制器至少部分地包括硬件逻辑单元,所述控制器用来监视具有页面错误的页面请求的执行。所述控制器用来确定是暂停与具有页面错误的页面请求相关联的工作项在GPU处的执行,还是继续该工作项的执行。
示例3
这里描述了一种用户使能图形处理单元的操作的系统。所述系统包括显示设备。所述系统包括存储器,其中,虚拟存储器地址被动态地映射到所述存储器的物理存储器地址。所述系统包括图形处理单元(GPU),所述图形处理单元(GPU)用于产生与渲染图像以便使用显示设备进行显示相关联的工作项,其中,该工作项用于指示页面请求。所述系统包括页面遍历器,其用于接收页面请求并检测与页面请求相关联的页面错误。所述系统包括控制器,所述控制器至少部分地包括硬件逻辑单元,其中,所述控制器用来监视具有页面错误的页面请求的执行。所述控制器用来确定是暂停具有页面错误的工作项在CPU处的执行,还是继续该工作项的执行。
一些实施例可以用硬件、固件和软件中的一个或组合来实现。一些实施例还可以被实现成存储在有形非暂时性机器可读介质上的指令,其可以由计算平台读取和执行,从而执行描述的操作。此外,机器可读介质可以包括用于以机器(例如计算机)可读的形式存储或发送信息的任意机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;或电的、光的、声的或其它形式的传播信号,例如载波、红外信号、数字信号、或发送和/或接收信号的接口等等。
实施例是实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”、“各个实施例”或“其它实施例”的提及是指结合这些实施例描述的特定特征、结构或特性包括在本技术的至少一些实施例中,但是不必包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各个出现未必都是指相同的实施例。
不是所有的在这里描述和阐述的组件、特征、结构、特性等都需要包括在特定的实施例或特定的多个实施例中。例如,如果说明书陈述“可能”、“或许”、“可以”或“能够”包括部件、特征、结构或特性,那么并不需要包括该特定部件、特征、结构或特性。如果说明书或权利要求书提及“一”或“一个”元件,那么这并不意味着仅有一个元件。如果说明书或权利要求书提及“额外的”元件,那么这并不排除存在多于一个的额外元件。
需要注意的是,虽然已经参考特定实现方式描述了一些实施例,但是根据一些实施例其它实现方式也是可能的。此外里在附图中阐述的和/或这里描述的电路元件或其它特征的布置和/或顺序不必以所阐述和描述的特定的方式进行布置。根据一些实施例,许多其它的布置也是可能的。
在图示的每个系统中,在一些情况中,元件中的每一个可以具有同样的参考数字或不同的参考数字,以暗示所表示的元件可以是不同的和/或相似的。然而,一个元件可以是足够灵活的,从而有不同的实现方式,并且于这里示出或描述的系统中的一些或全部一起工作。附图中示出的各种元件可以相同或不同。哪个元件被参考为第一元件以及哪个被称为第二元件是任意的。
需要理解的是,在一个或多个实施例中,上述例子中的细节可以用在任何地方。例如,以上描述的计算设备的所有可选特征还可以关于这里描述的方法或计算机可读介质中的任何一个来实现。进一步地,虽然这里可能已经使用了流程图和/或状态图来描述实施例,但是这些技术并不限于这里的这些图或对应的描述。例如,流程无需通过每个描述的框或状态或者按照这里阐述和描述的正好同样顺序来移动。
本技术并不限于此处列举的特定细节。实际上,受益于本公开的本领域技术人员将理解,在本技术的范围内,根据之前的描述和附图可以进行许多其它变化。因此,对本技术的范围进行限定的是以下权利要求,包括对其进行的任何修改。

Claims (36)

1.一种用于存储器映射的系统,包括:
显示设备;
存储器,其中,虚拟存储器地址被动态地映射到所述存储器的物理存储器地址;
图形处理单元GPU,用于产生与渲染图像以便使用所述显示设备进行显示相关联的工作项,其中,所述工作项指示页面请求;
页面遍历器,用于接收所述页面请求,并且用于检测与所述页面请求相关联的页面错误;以及
至少部分地包括硬件逻辑单元的控制器,其中,所述控制器用于:
监视具有所述页面错误的所述页面请求的执行;以及
确定是暂停具有所述页面错误的所述工作项在所述GPU处的执行,还是继续所述工作项的执行,所述确定是在其它页面请求的上下文中基于所述页面请求的因素来进行的,其中,所述控制器基于与所述工作项相关联的因素来暂停所述工作项的执行,所述因素包括已经被页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
2.如权利要求1所述的系统,其中,所述页面遍历器基于所述页面请求的属性来检测页面错误,所述属性包括:
与所述页面请求相关联的分页条目的存在;
读/写属性;
特权级别;
执行特性;或者
以上各项的任意组合。
3.如权利要求1所述的系统,其中,所述页面请求指示虚拟地址,并且所述页面遍历器尝试确定与所述虚拟地址相关联的物理地址。
4.如权利要求1所述的系统,其中,在所述页面错误被检测到时,所述页面遍历器将所述页面请求提供给所述页面请求队列。
5.如权利要求1所述的系统,包括:页面未命中处理机,用于从所述页面请求队列接收具有所述页面错误的所述页面请求,其中,为了服务于所述页面请求,所述页面未命中处理机将物理地址分配给所述页面请求所指示的虚拟地址,并且将所述物理地址提供给所述页面遍历器。
6.如权利要求5所述的系统,其中,所述控制器基于与所述工作项相关联的至少一个因素来暂停所述工作项的执行,所述至少一个因素包括:
挂起的页面请求的总数;
与所述工作项相关联的页面请求已经挂起的时间;以及
已经被所述页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在所述页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
7.如权利要求5所述的系统,其中,在与关联于所暂停的工作项的页面请求相关联的物理地址已经被提供给所述页面遍历器之后,所述控制器将所述工作项重新提交给所述GPU。
8.如权利要求1所述的系统,包括:高速缓存,其中,所述高速缓存存储页面错误,直到物理地址被分配给所述页面请求所指示的虚拟地址为止。
9.一种电子设备,包括:
页面遍历器模块,用于:
接收图形处理单元GPU的页面请求;以及
检测与所述页面请求相关联的页面错误;以及
至少部分地包括硬件逻辑单元的控制器,用于:
监视具有所述页面错误的所述页面请求的执行;以及
确定是暂停与具有所述页面错误的所述页面请求相关联的工作项在所述GPU处的执行,还是继续所述工作项的执行,所述确定是在其它页面请求的上下文中基于所述页面请求的因素来进行的,其中,所述控制器基于与所述工作项相关联的因素来暂停所述工作项的执行,所述因素包括已经被页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
10.如权利要求9所述的电子设备,其中,所述页面遍历器模块基于所述页面请求的属性来检测页面错误,所述属性包括:
与所述页面请求相关联的分页条目的存在;
读/写属性;
特权级别;
执行特性;或者
以上各项的任意组合。
11.如权利要求9所述的电子设备,其中,所述页面请求指示虚拟地址,并且其中,为了确定与所述虚拟地址相关联的物理地址,所述页面遍历器模块搜索被配置为存储虚拟地址与物理地址之间的映射的数据库。
12.如权利要求11所述的电子设备,其中,所述页面错误是虚拟地址未被映射到可用的物理地址的结果。
13.如权利要求9所述的电子设备,包括:虚拟页面请求队列,其中,在页面错误被检测到时,所述页面请求由所述页面请求队列接收。
14.如权利要求13所述的电子设备,包括:页面未命中处理机模块,用于从所述页面请求队列接收具有页面错误的所述页面请求,其中,为了服务于所述页面请求,所述页面未命中处理机模块将物理地址分配给所述页面请求所指示的虚拟地址,并且将所述物理地址提供给所述页面遍历器模块。
15.如权利要求14所述的电子设备,其中,所述控制器基于与所述工作项相关联的至少一个因素来暂停所述工作项的执行,所述至少一个因素包括:
挂起的页面请求的总数;
与所述工作项相关联的页面请求已经挂起的时间;以及
已经被所述页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在所述页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
16.如权利要求14所述的电子设备,其中,在与关联于所暂停的工作项的页面请求相关联的物理地址已经被提供给所述页面遍历器模块之后,所述控制器将所述工作项重新提交给所述GPU。
17.如权利要求9所述的电子设备,包括:高速缓存,其中,所述高速缓存存储页面错误,直到物理地址被分配给所述页面请求所指示的虚拟地址为止。
18.一种用于存储器映射的方法,包括:
接收与图形处理单元GPU的工作项相关联的页面请求;
检测与所述页面请求相关联的页面错误;
监视具有页面错误的所述页面请求的执行;以及
确定是暂停与具有页面错误的所述页面请求相关联的所述工作项在所述GPU处的执行,还是继续所述工作项的执行,所述确定是在其它页面请求的上下文中基于所述页面请求的因素来进行的,其中,控制器基于与所述工作项相关联的因素来暂停所述工作项的执行,所述因素包括已经被页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
19.如权利要求18所述的方法,其中,检测所述页面错误是基于所述页面请求的属性的,所述属性包括:
与所述页面请求相关联的分页条目的存在;
读/写属性;
特权级别;
执行特性;或者
以上各项的任意组合。
20.如权利要求18所述的方法,其中,所述页面请求指示虚拟地址,所述方法包括:搜索被配置为存储虚拟地址与物理地址之间的映射的数据库。
21.如权利要求20所述的方法,其中,所述页面错误是虚拟地址未被映射到可用的物理地址的结果。
22.如权利要求18所述的方法,包括:在所述页面错误被检测到时,在所述页面请求队列处接收所述页面请求。
23.如权利要求18所述的方法,包括:
在操作系统的页面未命中处理机处,从所述页面请求队列接收具有所述页面错误的所述页面请求;
经由所述页面未命中处理机,通过将物理地址分配给所述页面请求所指示的虚拟地址,来服务于所述页面请求;以及
将所述物理地址提供给所述GPU的页面遍历器。
24.如权利要求18所述的方法,包括:基于与所述工作项相关联的至少一个因素来暂停所述工作项的执行,所述至少一个因素包括:
挂起的页面请求的总数;
与所述工作项相关联的页面请求已经挂起的时间;以及
已经被所述页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在所述页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
25.如权利要求23所述的方法,包括:
在与所述页面请求相关联的物理地址已经被提供给所述页面遍历器之后,将所暂停的工作项重新提交给所述GPU。
26.如权利要求18所述的方法,包括将页面错误存储在高速缓存中,直到物理地址被分配给所述页面请求所指示的虚拟地址为止。
27.一种有形非暂时性机器可读介质,包括指令,所述指令当被处理器执行时实现根据权利要求18-26中任一项所述的方法。
28.一种用于存储器映射的装置,包括:
用于接收与图形处理单元GPU的工作项相关联的页面请求的单元;
用于检测与所述页面请求相关联的页面错误的单元;
用于监视具有页面错误的所述页面请求的执行的单元;以及
用于确定是暂停与具有页面错误的所述页面请求相关联的所述工作项在所述GPU处的执行、还是继续所述工作项的执行的单元,所述确定是在其它页面请求的上下文中基于所述页面请求的因素来进行的,其中,控制器基于与所述工作项相关联的因素来暂停所述工作项的执行,所述因素包括已经被页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
29.如权利要求28所述的装置,其中,检测所述页面错误是基于所述页面请求的属性的,所述属性包括:
与所述页面请求相关联的分页条目的存在;
读/写属性;
特权级别;
执行特性;或者
以上各项的任意组合。
30.如权利要求28所述的装置,其中,所述页面请求指示虚拟地址,所述装置包括:用于搜索被配置为存储虚拟地址与物理地址之间的映射的数据库的单元。
31.如权利要求30所述的装置,其中,所述页面错误是虚拟地址未被映射到可用的物理地址的结果。
32.如权利要求28所述的装置,包括:用于在所述页面错误被检测到时,在所述页面请求队列处接收所述页面请求的单元。
33.如权利要求28所述的装置,包括:
用于在操作系统的页面未命中处理机处,从所述页面请求队列接收具有所述页面错误的所述页面请求的单元;
用于经由所述页面未命中处理机,通过将物理地址分配给所述页面请求所指示的虚拟地址,来服务于所述页面请求的单元;以及
用于将所述物理地址提供给所述GPU的页面遍历器的单元。
34.如权利要求28所述的装置,包括:基于与所述工作项相关联的至少一个因素来暂停所述工作项的执行,所述至少一个因素包括:
挂起的页面请求的总数;
与所述工作项相关联的页面请求已经挂起的时间;以及
已经被所述页面未命中处理机服务的与所述工作项相关联的页面请求的数量与在所述页面请求队列中挂起的与所述工作项相关联的页面请求的数量的比值。
35.如权利要求33所述的装置,包括:
用于在与所述页面请求相关联的物理地址已经被提供给所述页面遍历器之后,将所暂停的工作项重新提交给所述GPU的单元。
36.如权利要求28所述的装置,包括用于将页面错误存储在高速缓存中,直到物理地址被分配给所述页面请求所指示的虚拟地址为止的单元。
CN201410198467.1A 2013-03-15 2014-03-14 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质 Expired - Fee Related CN104090849B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361801079P 2013-03-15 2013-03-15
US61/801,079 2013-03-15
US13/851,400 US9390462B2 (en) 2013-03-15 2013-03-27 Memory mapping for a graphics processing unit
US13/851,400 2013-03-27

Publications (2)

Publication Number Publication Date
CN104090849A CN104090849A (zh) 2014-10-08
CN104090849B true CN104090849B (zh) 2017-11-07

Family

ID=50486731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410198467.1A Expired - Fee Related CN104090849B (zh) 2013-03-15 2014-03-14 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质

Country Status (4)

Country Link
US (2) US9390462B2 (zh)
EP (1) EP2778916B1 (zh)
CN (1) CN104090849B (zh)
TW (1) TWI546665B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396513B2 (en) * 2013-08-05 2016-07-19 Intel Corporation Using group page fault descriptors to handle context switches and process terminations in graphics processors
KR102301230B1 (ko) 2014-12-24 2021-09-10 삼성전자주식회사 가상화된 gpu들에 대한 스케줄링을 수행하는 방법 및 이를 위한 디바이스
CN104932985A (zh) * 2015-06-26 2015-09-23 季锦诚 一种基于eDRAM的GPGPU寄存器文件系统
US20170004647A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Rendering graphics data on demand
US10410311B2 (en) * 2016-03-07 2019-09-10 Intel Corporation Method and apparatus for efficient submission of workload to a high performance graphics sub-system
CN110704768B (zh) * 2019-10-08 2022-03-18 支付宝(杭州)信息技术有限公司 基于图形处理器的网页渲染方法以及装置
CN115454358B (zh) * 2022-11-09 2023-03-24 摩尔线程智能科技(北京)有限责任公司 数据的存储控制方法及其装置、图像处理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7768522B2 (en) * 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
CN102713847A (zh) * 2009-12-29 2012-10-03 超威半导体公司 处理器内核的监管程序隔离

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
TWI366151B (en) 2005-10-14 2012-06-11 Via Tech Inc Multiple graphics processor system and methods
US7711990B1 (en) 2005-12-13 2010-05-04 Nvidia Corporation Apparatus and method for debugging a graphics processing unit in response to a debug instruction
US7623134B1 (en) * 2006-06-15 2009-11-24 Nvidia Corporation System and method for hardware-based GPU paging to system memory
US8352705B2 (en) * 2008-01-15 2013-01-08 Vmware, Inc. Large-page optimization in virtual memory paging systems
US9256465B2 (en) * 2010-12-13 2016-02-09 Advanced Micro Devices, Inc. Process device context switching
US9299121B2 (en) * 2010-12-15 2016-03-29 Advanced Micro Devices, Inc. Preemptive context switching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7768522B2 (en) * 2002-01-08 2010-08-03 Apple Inc. Virtualization of graphics resources and thread blocking
CN102713847A (zh) * 2009-12-29 2012-10-03 超威半导体公司 处理器内核的监管程序隔离

Also Published As

Publication number Publication date
US9779473B2 (en) 2017-10-03
CN104090849A (zh) 2014-10-08
EP2778916B1 (en) 2020-11-18
EP2778916A2 (en) 2014-09-17
US9390462B2 (en) 2016-07-12
TW201447571A (zh) 2014-12-16
US20140267323A1 (en) 2014-09-18
EP2778916A3 (en) 2017-03-15
TWI546665B (zh) 2016-08-21
US20170004598A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
CN104090849B (zh) 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质
JP6391077B2 (ja) コンピューティングデバイス、コンピューティングシステム、方法、データ処理システム、非一時的な機械可読媒体、およびプログラム
JP6559628B2 (ja) 共有仮想メモリ
TWI559217B (zh) 用於記憶體子系統之動態快取及記憶體分配技術
CN107580722B (zh) 具有对应于各个数据流的直接存储器存取引擎的高斯混合模型加速器
JP6386099B2 (ja) 圧縮支援のための方法、装置、コンピュータプログラム及び記憶媒体
CN104937551A (zh) 用于图形设备的上下文感知功率管理
CN108352161A (zh) 动态音频编解码器枚举

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171107

Termination date: 20210314

CF01 Termination of patent right due to non-payment of annual fee