CN104508638A - 多核心处理系统中的高速缓冲存储器数据迁移 - Google Patents

多核心处理系统中的高速缓冲存储器数据迁移 Download PDF

Info

Publication number
CN104508638A
CN104508638A CN201380039878.XA CN201380039878A CN104508638A CN 104508638 A CN104508638 A CN 104508638A CN 201380039878 A CN201380039878 A CN 201380039878A CN 104508638 A CN104508638 A CN 104508638A
Authority
CN
China
Prior art keywords
processor
cache memory
data
transmission
message
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
Application number
CN201380039878.XA
Other languages
English (en)
Other versions
CN104508638B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104508638A publication Critical patent/CN104508638A/zh
Application granted granted Critical
Publication of CN104508638B publication Critical patent/CN104508638B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种在两个高速缓冲存储器之间传递数据的方法包括:将指示数据可用于从与第一处理器相关联的第一高速缓冲存储器传递的第一消息从所述第一处理器发送到第二处理器;从所述第二处理器请求所述数据从所述第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递;响应于所述请求而将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;及将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器。

Description

多核心处理系统中的高速缓冲存储器数据迁移
技术领域
本发明涉及用于高速缓冲存储器数据迁移的技术,且更具体来说涉及用于在多核心处理系统中的高速缓冲存储器之间传递数据的技术及系统。
背景技术
异构多核心系统是含有两种或更多种类型的处理器的处理系统。举例来说,异构多核心系统可包含中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)或其它类型的处理核心中的两者或更多者。在此类系统中,每一处理器可具有其自身的用于存储频繁使用的数据的本地高速缓冲存储器。另外,给定处理器可具有多个并联核心。
在一些情况下,需要与一种类型的处理器共享由另一种类型的处理器在其本地高速缓冲存储器中使用的数据。在此些情况下,数据交递技术可用于传递数据。一种此类数据交递技术涉及从一个处理器的本地高速缓冲存储器冲洗数据且将所述数据传递到系统存储器。第二处理器可随后将数据从系统存储器复制到其本地高速缓冲存储器中。
作为另一实例,某一技术可利用高速缓冲存储器相干机制以处置处理核心之间的数据传递。一种高速缓冲存储器相干机制跟踪允许什么处理核心存取存储于中心系统存储器中的特定数据且将所述数据复制到它们的本地高速缓冲存储器。此机制确保由许多不同处理核心频繁使用的数据的完整性。然而,此类系统常常非常复杂且可涉及在存取数据时的不合意的等待时间。
上文所描述的两种技术需要相当大的性能及电力资源。此导致具有有限电力及性能潜能的装置(例如,无线装置)的显著缺点。
发明内容
一般来说,本发明描述用于高速缓冲存储器数据迁移的技术,且更具体来说涉及用于在多核心处理系统中的高速缓冲存储器之间传递数据的技术及系统。具体来说,本发明提出在两种或更多种异构处理器之间交握信号的使用,以使得与第一类型的处理器相关联的高速缓冲存储器可用作用于第二类型的处理器的紧密耦合存储器。
在本发明的一个实例中,一种在两个高速缓冲存储器之间传递数据的方法包括使用第一消息起始与第一处理器相关联的第一高速缓冲存储器及与第二处理器相关联的第二高速缓冲存储器之间的数据的传递。在一个实例中,从第一处理器将指示所述数据可用于从与所述第一处理器相关联的第一高速缓冲存储器传递的所述第一消息发送到第二处理器。所述方法可进一步包含:从所述第二处理器请求所述数据从所述第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递;响应于所述请求将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;及从所述第二处理器将指示所述数据传递完成的第二消息发送到所述第一处理器。
在本发明的另一实例中,一种经配置以在两个高速缓冲存储器之间传递数据的设备包括第一处理器、与所述第一处理器相关联的第一高速缓冲存储器、第二处理器及与所述第二处理器相关联的第二高速缓冲存储器,其中所述第一高速缓冲存储器包含经配置成用于所述第二高速缓冲存储器的紧密耦合存储器的至少一个分区,且其中所述第一处理器及所述第二处理器经配置以通过交握信号的所述使用将数据从所述第一高速缓冲存储器直接传递到所述第二高速缓冲存储器。
在本发明的另一实例中,一种经配置以在两个高速缓冲存储器之间传递数据的设备包括:用于将指示所述数据可用于从与第一处理器相关联的第一高速缓冲存储器传递的第一消息从所述第一处理器发送到第二处理器的装置;用于从所述第二处理器请求所述数据从所述第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递的装置;用于响应于所述请求将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器的装置;及用于将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器的装置。
在本发明的另一实例中,一种计算机可读存储媒体存储指令,所述指令在被执行时致使一或多个处理器将指示所述数据可用于从与第一处理器相关联的第一高速缓冲存储器传递的第一消息从所述第一处理器发送到第二处理器;从所述第二处理器请求所述数据从所述第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递;响应于所述请求将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;及将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器。
还在存储用于致使处理器执行所述技术的指令的设备及计算机可读存储媒体的方面描述本发明的技术。在附图和以下描述中陈述一或多个实例的细节。其它特征、目标及优势将从所述描述及所述图式以及从权利要求书而显而易见。
附图说明
图1是展示经配置以使用本发明的技术的实例计算装置的框图。
图2是展示根据本发明的一个实例的实例系统中的第一步骤的框图。
图3是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。
图4是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。
图5是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。
图6展示根据本发明的一个实例的异构多核心系统的一个实例。
图7展示根据本发明的另一实例的异构多核心系统的另一实例。
图8是说明根据本发明的一个实例的往复缓冲的框图。
图9是说明根据本发明的实例方法的流程图。
具体实施方式
一般来说,本发明描述用于高速缓冲存储器数据迁移的技术,且更具体来说涉及用于在多核心处理系统中的高速缓冲存储器之间传递数据的技术及系统。具体来说,本发明提出在两种或更多种异构处理器之间交握信号的使用,以使得与第一类型的处理器相关联的高速缓冲存储器可用作用于第二类型的处理器的紧密耦合存储器。
图1是说明可用于实施本发明用于多核心系统中的高速缓冲存储器数据迁移的技术的实例计算装置2的框图。计算装置2可包括(例如)个人计算机、桌上型计算机、膝上型计算机、计算机工作站、平板计算机、视频游戏平台或控制台、移动电话(例如,蜂窝式或卫星电话、陆线电话、因特网电话、所谓的智能电话)、手持式装置(例如,便携式视频游戏装置或个人数字助理(PDA)、个人音乐播放器、视频播放器)、显示装置、电视、电视机顶盒、服务器、中间网络装置、主机计算机、任何移动装置或处理及/或显示图形数据的任何其它类型的装置。
具体来说,计算装置2可为具有两个或更多个处理核心的多处理器系统,其中至少两个处理器核心具有单独的专用存储器高速缓冲存储器。在某一实例中,计算装置2可为具有不同类型的两个或更多个处理核心的异构多核心系统。举例来说,计算装置2可包含中央处理单元(CPU)核心、图形处理单元(GPU)核心、数字信号处理(DSP)核心或任何其它类型的处理核心中的两者或更多者。通常,不同类型的处理核心具有用于每一处理器类型的不可由不同类型的处理核心直接存取的单独的专用存储器高速缓冲存储器。另外,例如CPU 6或GPU 12等给定处理器可自身例如在相同集成电路芯片上包含多个处理器核心。
在图1的实例中,计算装置2可包含用户输入接口4、中央处理单元(CPU)6、存储器控制器8、系统存储器10、图形处理单元(GPU)12、图形存储器14、CPU高速缓冲存储器15、显示接口16、显示器18及总线20及22。图形存储器14可与GPU 12“在芯片上”且CPU高速缓冲存储器15可与CPU 15“在芯片上”。图形存储器14及CPU 15是可包含一个或多个分区的存储器的实例,所述一个或多个分区是用于它们的相关联的处理核心的紧密耦合存储器。紧密耦合存储器(TCM)是在不具有不可预测的其它类型的存储器高速缓冲存储器的情况下向处理核心提供对数据的快速存取的低等待时间存储器。与高速缓冲存储器中的其它分区相比,TCM分区是系统的物理存储器映像的部分,且不需要存储对具有相同物理存储器地址的外部存储器(例如,系统存储器10)的写入。TCM可经配置以存储数据或指令,且可与未指定为TCM的其它数据高速缓冲存储器及指令高速缓冲存储器并行地存储数据及/或指令。TCM分区的大小是灵活的,且可(例如)从4kB到256kB进行指定。然而,可利用任何大小的TCM。
用户输入接口4、CPU 6、存储器控制器8、GPU 12及显示接口16可使用总线20彼此通信。存储器控制器8及系统存储器10也可使用总线22彼此通信。总线20、22可为多种总线结构中的任一者,例如第三代总线(例如,HyperTransport总线或InfiniBand总线)、第二代总线(例如,高级图形端口总线、外围组件互连(PCI)高速总线,或高级eXentisible接口(AXI)总线)或另一类型的总线或装置互连件。应注意,图1中展示的不同组件之间的总线及通信接口的特定配置仅是示范性的,且具有相同或不同组件的计算装置及/或其它图形处理系统的其它配置可用于实施本发明的技术。
CPU 6可包括控制计算装置2的操作的通用或专用处理器。用户可提供对计算装置2的输入以致使CPU 6执行一或多个软件应用。在CPU 6上执行的软件应用可包含(例如)操作系统、字处理器应用、电子邮件应用、总分析表应用、媒体播放器应用、视频游戏应用、图形用户接口应用、电信程序、存储公用程序或另一程序。另外,CPU 6可执行用于控制GPU 12的操作的GPU驱动程序。用户可经由一或多个输入装置(未图示)(例如,键盘、鼠标、麦克风、触摸垫或经由用户输入接口4耦合到计算装置2的另一输入装置)将输入提供到计算装置2。
在CPU 6上执行的软件应用可包含指令CPU 6以致使向显示器18再现图形数据的一或多个图形再现指令。在一些实例中,所述软件指令可符合图形应用编程接口(API),例如开放图形库()API、开放图形库嵌入系统(OpenGL ES)API、Direct3D API、X3D API、RenderMan API、WebGL API或任何其它公共或专有标准图形API。为了处理图形再现指令,CPU 6可将一或多个图形再现命令发布到GPU 12(例如,通过GPU驱动程序)以致使GPU 12执行对图形数据的一些或所有再现。在一些实例中,将再现的图形数据可包含例如点、线、三角形、四边形、三角形带等图形基元的列表。
存储器控制器8促进数据进出系统存储器10的传递。举例来说,存储器控制器8可接收存储器读取及写入命令,且服务关于存储器系统10的此类命令以便为计算装置2中的组件提供存储器服务。存储器控制器8经由存储器总线22通信地耦合到系统存储器10。虽然在图1中将存储器控制器8说明为与CPU 6及系统存储器10两者分开的处理模块,但在其它实例中,存储器控制器8的一些或全部功能性可实施在CPU 6及系统存储器10中的一或两者上。
系统存储器10可存储可由CPU 6存取以用于执行的程序模块及/或指令及/或由在CPU 6上执行的程序使用的数据。举例来说,系统存储器10可存储由CPU 6使用以在显示器18上呈现图形用户接口(GUI)的窗口管理器应用。另外,系统存储器10可存储与所述应用相关联的用户应用及应用表面数据。系统存储器10可另外存储由计算装置2的其它组件使用及/或产生的信息。举例来说,系统存储器10可充当用于GPU 12的装置存储器且可存储将在GPU 12上操作的数据以及由GPU 12执行的操作而产生的数据。举例来说,系统存储器10可存储纹理缓冲器、深度缓冲器、模板缓冲器、顶点缓冲器、帧缓冲器或其类似者的任何组合。系统存储器10可包含一或多个易失性或非易失性存储器或存储装置,例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
GPU 12可经配置以执行图形操作以向显示器18再现一或多个图形基元。因此,当在CPU 6上执行的软件应用中的一者需要图形处理时,CPU 6可向GPU 12提供图形命令及图形数据以用于向显示器18再现。所述图形数据可包含(例如)绘制命令、状态信息、基元信息、纹理信息等。在一些情况下,GPU 12可内置有高度并行的结构,其提供比CPU 6对复杂图形相关操作的更有效的处理。举例来说,GPU 12可包含经配置而以并行方式对多个顶点或像素操作的多个处理元件。在一些情况下,GPU 12的高度并行性质允许GPU 12比使用CPU 6直接将场景绘制到显示器18更快速地将图形图像(例如,GUI及二维(2D)及/或三维(3D)图形场景)绘制到显示器18上。
在一些情况下,可将GPU 12集成到计算装置2的母板中。在其它情况下,GPU 12可存在于图形卡上,所述图形卡安装在计算装置2的母板中的端口中或可以其它方式并入经配置以与计算装置2互操作的外围装置内。在其它情况下,GPU 12及CPU 6可与其它组件一起集成在系统芯片(SoC)封装中。GPU 12可包含一或多个处理器,例如一或多个微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它等效的集成或离散逻辑电路。GPU 12还可含有可编程着色器单元及/或固定功能逻辑电路。
GPU 12可直接耦合到图形存储器14。因此,GPU 12可在不使用总线20的情况下从图形存储器14读取数据及将数据写入到图形存储器14。同样,CPU 6可在不使用总线20的情况下从CPU高速缓冲存储器15读取数据及将数据写入到CPU高速缓冲存储器15。换句话说,GPU 12及CPU 6可使用本地存储装置而不是芯片外存储器在本地处理数据。此允许GPU 12及CPU 6通过消除经由系统总线20读取及写入数据的需要而以更有效的方式操作,其中经由系统总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 12及CPU 6也可以经由系统总线20利用系统存储器10。图形存储器14及CPU高速缓冲存储器15可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或快闪存储器。
CPU 6及/或GPU 12可将所再现的图像数据存储在帧缓冲器19中。帧缓冲器19可为独立存储器或可分配在系统存储器10内。显示接口16可从帧缓冲器19检索数据并配置显示器18以显示由所述再现的图像数据表示的图像。在一些实例中,显示接口16可包含数/模转换器(DAC),其经配置以将从帧缓冲器检索的数字值转换为可由显示器18消耗的模拟信号。在其它实例中,显示接口16可将数字值直接传递到显示器18以进行处理。显示器18可包含监视器、电视、投影装置、液晶显示器(LCD)、等离子显示器面板、发光二极管(LED)阵列、阴极射线管(CRT)显示器、电子纸、表面传导电子发射显示器(SED)、激光电视显示器、纳米晶体显示器或另一类型的显示单元。显示器18可集成在计算装置2内。举例来说,显示器18可为移动电话的屏幕。或者,显示器18可为经由有线或无线通信链路而耦合到计算机装置2的独立装置。举例来说,显示器18可为经由电缆或无线链路而连接到个人计算机的计算机监视器或平板显示器。
在一些情况下,需要与另一种类型的处理器(GPU 12)共享由一种类型的处理器(例如,CPU 6)在其本地高速缓冲存储器(例如,CPU高速缓冲存储器15)中使用的数据。在此些情况下,数据交递技术可用于传递数据。一种此类数据交递技术涉及从一个处理器的本地高速缓冲存储器冲洗数据且将所述数据传递到系统存储器。第二处理器可随后将数据从系统存储器复制到其本地高速缓冲存储器中。在从本地高速缓冲存储器冲洗数据时,可覆写本地高速缓冲存储器中的存储所述数据的位置。第一处理器将需要再次存取系统存储器以从所冲洗的高速缓冲存储器恢复数据的使用。
作为另一实例,某一技术可利用高速缓冲存储器相干机制以处置处理核心之间的数据传递。高速缓冲存储器相干机制通过存储器控制器(例如,存储器控制器8)跟踪允许什么处理核心存取存储于中心系统存储器中的特定数据且将所述数据复制到它们的本地高速缓冲存储器。此机制确保由许多不同处理核心频繁使用的数据的完整性。然而,此类系统常常非常复杂且可涉及在存取数据时的不合意的等待时间。上文所描述的两种技术需要相当大的性能及电力资源。此导致具有有限电力及性能潜能的装置(例如,无线装置)的显著缺点。
鉴于这些缺点,本发明呈现用于在两个不同处理器的本地高速缓冲存储器之间传递数据的技术。具体来说,本发明描述允许在不使用系统存储器或高速缓冲存储器相干机制的情况下从高速缓冲存储器到高速缓冲存储器的数据的传递的技术。本发明的技术可在其中仅使用数种类型的处理核心的应用中特别有用。具体来说,在其中并行处理器使用相同数据进行交互的系统中。此应用的一个实例是在通用GPU(GPGPU)应用中的CPU与GPU之间的数据交递。另一典型使用情况是常常用于图形应用中(例如,用于用户接口)的块传递(BLIT)操作。在再现用户接口时,CPU可将位图传递到GPU。位图的典型大小特别适用于TCM高速缓冲存储器分区的大小。因此,通过利用本发明的技术来用于CPU到GPU BLIT操作,可实现快速响应时间及省电。
图2是展示根据本发明的一个实例的实例系统的框图。根据此实例,直接将数据从本地高速缓冲存储器(例如,第一处理器的高速缓冲存储器)跨越系统总线20传递到远程高速缓冲存储器(例如,第二处理器的高速缓冲存储器)而不使用系统存储器。第一处理器24可与第一高速缓冲存储器25相关联,所述第一高速缓冲存储器25可由第一处理器24(例如)经由第一内部总线而不穿过到系统存储器的系统总线20进行存取。同样,第二处理器26可与第二高速缓冲存储器27相关联,所述第二高速缓冲存储器27可由第二处理器26(例如)经由第二内部总线而不穿过到系统存储器的系统总线20进行存取。
第一高速缓冲存储器25可包含经配置成可由远程处理器(例如,第二处理器26)作为紧密耦合存储器(TCM)存取的分区32。在一些实例中,分区32可被预映射及指派为用于第二处理器26的TCM。在其它实例中,分区32(或第一高速缓冲存储器25的其它分区)可“按需”被映射为用于第二处理器26的TCM。也就是说,响应于对数据传递的请求而执行将第一处理器的第一高速缓冲存储器映射到第二处理器的第二高速缓冲存储器。可通过高速缓冲存储器内的存储器控制器或通过计算装置的另一硬件单元进行分区的映射。TCM是连接到处理器以便提供专用存取的存储器。TCM一般比常规高速缓冲存储器更快速地执行且更适合于实时应用。
可使用第一消息起始在第一高速缓冲存储器与第二高速缓冲存储器之间的数据传递。在一个实例中,第一处理器24可经配置以用信号将第一消息29发送到第二处理器26以指示第一高速缓冲存储器25中的数据可用于传递。可用于传递的数据被表示为第一高速缓冲存储器25的分区32中的着色区域。所述第一消息可在以下情形中由在第一处理器上执行的应用触发:第一处理器不再需要第一高速缓冲存储器25中的数据且将由第二处理器26执行对所述数据的进一步处理。可通过计算装置中可用的任何通信组构将第一消息29用信号发送到第二处理器26。作为一个实例,可通过系统总线20发送第一消息29,如图1所示。在其它实例中,处理器之间的信令可经由其它总线或经配置以用于此类通信的通信线,或可通过硬件中断、通过直接存储器存取(DMA)或通过两个或更多个高速缓冲存储器之间的独立逻辑控制影响,而无任何处理器干预。
在另一实例中,还可通过从第二处理器发送到第一处理器的对数据的请求来起始数据传递。也就是说,起始数据传递的第一消息作为请求来自第二处理器,而不是作为数据可用于传递的指示来自第一处理器。在此实例中,第一处理器24可一直等到由第一过程24对第一高速缓冲存储器25中的数据的任何处理完成,之后将数据发送到第二高速缓冲存储器27。可响应于来自第二处理器26的对数据的请求或响应于在第一处理器24上执行的指令(例如,计算机程序)用信号发送第一消息29。
图3是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。第二处理器26可经配置以将数据传递请求30用信号发送到第一处理器24。再次,可通过可用的任何通信组构或通过硬件中断用信号发送数据传递请求30。响应于数据传递请求30,第一处理器24将第一高速缓冲存储器25的分区32中的数据(34)传递到第二高速缓冲存储器27的分区33。可在计算装置的任何通信组构上进行数据传递34。举例来说,可在图1的系统总线20上进行数据传递34。如上文所论述,分区25及27可彼此预映射,或可响应于数据传递请求而动态地映射。对TCM分区的动态重新映射可允许将存储块再用于其它目的且更是提供更有效及灵活的存储器使用。另外,可将分区32指派为用于第二处理器26的TCM。
图4是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。在数据传递34(参看图3)完成之后,第二处理器26可经配置以用信号发送指示数据到第二高速缓冲存储器27的分区33中的传递完成及成功的第二消息35。再次,可通过可用的任何通信组构或通过硬件中断用信号发送第二消息35。图5是说明根据本发明的实例高速缓冲存储器到高速缓冲存储器数据传递中的接下来的步骤的框图。响应于接收到第二消息35,第一处理器24可经配置以清除来自第一高速缓冲存储器25的分区32的数据,因此释放所述高速缓冲存储器以用于额外的数据写入。指示数据可用于传递的第一消息29、数据传递请求30及指示数据传递完成的第二消息35一起形成促进数据从与第一处理器相关联的高速缓冲存储器到与第二处理器相关联的高速缓冲存储器的直接传递的交握信号。如上文所描述,处理器之间的任何交握信令可经由其它总线或经配置以用于此类通信的通信线(例如,除系统总线20之外的总线),或可通过硬件中断、通过直接存储器存取(DMA)或通过两个或更多个高速缓冲存储器之间的独立逻辑控制影响,而无任何处理器干预。
第一处理器24及第二处理器26可为其中它们的相关联高速缓冲存储器(例如,第一高速缓冲存储器25及第二高速缓冲存储器27)彼此不可直接存取的任何类型的处理器。因此,在一些实例中,第一处理器24及第二处理器26可为相同类型(例如,两个不同CPU核心)。在本发明的另一实例中,第一处理器24及第二处理器26是不同类型(例如,CPU、GPU、DSP等)。具体来说,第一处理器24及第二处理器26可为异构多核心系统的部分。
图6展示根据本发明的一个实例的异构多核心系统的一个实例。在此实例中,第一处理器是CPU 6且第二处理器是GPU 12。因此,CPU 6及GPU 12可经配置以根据图2到5中所描绘的技术在它们的相关联的高速缓冲存储器(例如,CPU高速缓冲存储器15及图形存储器14)之间传递数据。应注意,数据传递的方向不需要始终从CPU 6到GPU12,而是还可反向执行。也就是说,可以相同方式将数据从第二处理器(例如,GPU 12)传递到第一处理器(例如,CPU 6)。
图7展示根据本发明的另一实例的异构多核心系统的另一实例。在此实例中,第一处理器是CPU 6且第二处理器是DSP 36。再次,CPU 6及DSP 36可经配置以根据图2到5中所描绘的技术在它们的相关联的高速缓冲存储器(例如,CPU高速缓冲存储器15及DSP高速缓冲存储器37)之间传递数据。而且,可以相同方式将数据从第二处理器(例如,DSP 36)传递到第一处理器(例如,CPU 6)。
图8是说明根据本发明的一个实例的往复缓冲的框图。在此实例中,第一高速缓冲存储器25的两个或更多个分区37可经配置以启用往复缓冲,有时被称作双重缓冲。在往复缓冲中,一个分区经配置以接收从处理器(例如,第一处理器24)写入的数据,而另一分区经配置以将数据传输及/或传递到另一存储器(例如,第二高速缓冲存储器27)及/或硬件(例如,显示器)。一旦从相应的分区写入及/或传输数据,每一分区的指定便可交换。也就是说,可将先前由第一处理器24写入到其中的分区重新指定为传输分区,且可随后将先前写入的数据传递到另一存储器(例如,第二高速缓冲存储器27)。同样,先前从其传输的分区可被清除且重新指定为现在可写入到其中的分区。此结构促进并行数据写入及传递。尽管未展示,但存储器控制器及/或总线驱动器可用于实现数据从传输分区的传输。
图9是说明根据本发明的实例方法的流程图。图9中展示的技术可由计算装置执行。举例来说,图9的技术可由图1的计算装置2执行。计算装置2可经配置以执行在两个高速缓冲存储器之间传递数据的方法。所述方法包含使用第一消息起始在与第一处理器相关联的第一高速缓冲存储器及与第二处理器相关联的第二高速缓冲存储器之间的数据的传递(902)。在一个实例中,起始所述传递可包含将指示数据可用于从与所述第一处理器相关联的第一高速缓冲存储器传递的第一消息从第一处理器发送到第二处理器,且随后从所述第二处理器请求所述数据从第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递。在另一实例中,仅通过从第二处理器将请求数据的第一消息发送到第一处理器来起始所述传递。
在一些实例中,第一高速缓冲存储器及第二高速缓冲存储器中的分区可彼此预映射。在一些实例中,此映射将由将第一高速缓冲存储器的分区指定为用于第二处理器的紧密耦合存储器组成。在其它实例中,计算装置可经配置以在传递数据之前将第一高速缓冲存储器映射到第二高速缓冲存储器(906)。接下来,计算装置2可响应于请求而将数据从第一高速缓冲存储器传递到第二高速缓冲存储器(908)。计算装置2可随后将指示数据传递完成的第二消息从第二处理器发送到第一处理器(910)。在一些实例中,计算装置2可进一步经配置以响应于第二消息而清除来自第一高速缓冲存储器的数据(912)。在此背景下,清除来自第一高速缓冲存储器的数据可涉及将存储所述数据的存储器地址标记为可用于覆写。
在本发明的某一实例中,所述第一处理器及所述第二处理器是不同类型。举例来说,所述第一处理器及所述第二处理器形成异构多核心系统。所述异构多核心系统可为例如智能电话或平板计算机等移动装置的部分。
在一些实例中,所述第一处理器是中央处理单元(CPU)且所述第二处理器是图形处理单元(GPU)。在其它实例中,所述第一处理器是图形处理单元(GPU)且所述第二处理器是中央处理单元(CPU)。在又其它实例中,所述第一处理器是中央处理单元(CPU)且所述第二处理器是数字信号处理器(DSP)。
在一或多个实例中,上文所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件来实施,那么功能可作为一或多个指令或代码存储在包括非暂时性计算机可读媒体的制品上。计算机可读媒体可包含计算机数据存储媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码及/或数据结构的任何可用媒体。举例来说而非限制,此类计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器,或可用以携载或存储呈指令或数据结构的形式且可由计算机存取的所要程序代码的任何其它媒体。如本文所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式重现数据,而光盘用激光以光学方式重现数据。上述各者的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如为一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。另外,在一些方面中,可在专用硬件和/或软件模块内提供本文中所描述的功能性。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施在广泛多种装置或设备中,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件及/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述各种实例。这些及其它实例在所附权利要求书的范围内。

Claims (36)

1.一种在两个高速缓冲存储器之间传递数据的方法,其包括:
使用第一消息起始与第一处理器相关联的第一高速缓冲存储器及与第二处理器相关联的第二高速缓冲存储器之间的数据的传递;
响应于请求而将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;及
将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器。
2.根据权利要求1所述的方法,其中起始所述传递包括:
将指示数据可用于从所述第一高速缓冲存储器传递的所述第一消息从所述第一处理器发送到所述第二处理器;及
从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递。
3.根据权利要求2所述的方法,其进一步包括:
在传递所述数据之前将所述第一高速缓冲存储器映射到所述第二高速缓冲存储器。
4.根据权利要求2所述的方法,其进一步包括:
响应于所述第二消息而清除来自所述第一高速缓冲存储器的所述数据。
5.根据权利要求1所述的方法,其中起始所述传递包括:
使用所述第一消息从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递。
6.根据权利要求1所述的方法,其中所述第一高速缓冲存储器的至少一个分区经配置成用于所述第二高速缓冲存储器的紧密耦合存储器。
7.根据权利要求1所述的方法,其中所述第一处理器及所述第二处理器是相同类型。
8.根据权利要求1所述的方法,其中所述第一处理器及所述第二处理器是不同类型。
9.根据权利要求8所述的方法,其中所述第一处理器及所述第二处理器形成异构多核心系统。
10.根据权利要求9所述的方法,其中所述第一处理器是中央处理单元CPU且其中所述第二处理器是图形处理单元GPU。
11.根据权利要求9所述的方法,其中所述第一处理器是图形处理单元GPU且其中所述第二处理器是中央处理单元CPU。
12.根据权利要求9所述的方法,其中所述第一处理器是中央处理单元CPU且所述第二处理器是数字信号处理器DSP。
13.根据权利要求9所述的方法,其中所述异构多核心系统处于移动装置中。
14.一种经配置以在两个高速缓冲存储器之间传递数据的设备,其包括:
第一处理器;
与所述第一处理器相关联的第一高速缓冲存储器;
第二处理器;及
与所述第二处理器相关联的第二高速缓冲存储器,
其中所述第一高速缓冲存储器包含经配置成用于所述第二高速缓冲存储器的紧密耦合存储器的至少一个分区,且
其中所述第一处理器及所述第二处理器经配置以通过交握信号的使用将数据从所述第一高速缓冲存储器直接传递到所述第二高速缓冲存储器。
15.根据权利要求14所述的设备,
其中所述第一处理器经配置以将指示所述数据可用于从所述第一高速缓冲存储器传递的第一消息发送到所述第二处理器;
其中所述第二处理器经配置以请求所述数据从所述第一高速缓冲存储器到与所述第二处理器相关联的第二高速缓冲存储器的数据传递;
其中所述第一处理器进一步经配置以响应于所述请求而将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;且
其中所述第二处理器进一步经配置以将指示数据填充完成的第二消息发送到所述第一处理器。
16.根据权利要求15所述的设备,其中所述第一处理器进一步经配置以在传递所述数据之前将所述第一高速缓冲存储器映射到所述第二高速缓冲存储器。
17.根据权利要求15所述的设备,其中所述第一处理器经配置以响应于所述第二消息而清除来自所述第一高速缓冲存储器的所述数据。
18.根据权利要求14所述的设备,其中所述第一处理器及所述第二处理器是相同类型。
19.根据权利要求14所述的设备,其中所述第一处理器及所述第二处理器是不同类型。
20.根据权利要求19所述的设备,其中所述第一处理器及所述第二处理器形成异构多核心系统。
21.根据权利要求19所述的设备,其中所述第一处理器是中央处理单元CPU且其中所述第二处理器是图形处理单元GPU。
22.根据权利要求19所述的设备,其中所述第一处理器是图形处理单元GPU且其中所述第二处理器是中央处理单元CPU。
23.根据权利要求19所述的设备,其中所述第一处理器是中央处理单元CPU且所述第二处理器是数字信号处理器DSP。
24.根据权利要求19所述的设备,其中所述异构多核心系统处于移动装置中。
25.一种经配置以在两个高速缓冲存储器之间传递数据的设备,其包括:
用于使用第一消息起始与第一处理器相关联的第一高速缓冲存储器及与第二处理器相关联的第二高速缓冲存储器之间的数据的传递的装置;
用于响应于请求而将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器的装置;及
用于将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器的装置。
26.根据权利要求25所述的设备,其中所述用于起始所述传递的装置包括:
用于将指示数据可用于从所述第一高速缓冲存储器传递的所述第一消息从所述第一处理器发送到所述第二处理器的装置;及
用于从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递的装置。
27.根据权利要求26所述的设备,其进一步包括:
用于在传递所述数据之前将所述第一高速缓冲存储器映射到所述第二高速缓冲存储器的装置。
28.根据权利要求26所述的设备,其进一步包括:
用于响应于所述第二消息而清除来自所述第一高速缓冲存储器的所述数据的装置。
29.根据权利要求25所述的设备,其中所述用于起始所述传递的装置包括:
用于使用所述第一消息从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递的装置。
30.根据权利要求25所述的设备,其中所述第一高速缓冲存储器的至少一个分区经配置成用于所述第二高速缓冲存储器的紧密耦合存储器。
31.一种存储指令的计算机可读存储媒体,所述指令在被执行时致使经配置以在两个高速缓冲存储器之间传递数据的装置的一或多个处理器:
使用第一消息起始与第一处理器相关联的第一高速缓冲存储器及与第二处理器相关联的第二高速缓冲存储器之间的数据的传递;
响应于请求而将所述数据从所述第一高速缓冲存储器传递到所述第二高速缓冲存储器;及
将指示所述数据传递完成的第二消息从所述第二处理器发送到所述第一处理器。
32.根据权利要求31所述的计算机可读存储媒体,其中所述用于致使所述一或多个处理器起始所述传递的指令包含用于致使所述一或多个处理器进行以下操作的指令:
将指示数据可用于从所述第一高速缓冲存储器传递的所述第一消息从所述第一处理器发送到所述第二处理器;及
从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递。
33.根据权利要求32所述的计算机可读存储媒体,其中所述指令进一步致使所述一或多个处理器进行以下操作:
在传递所述数据之前将所述第一高速缓冲存储器映射到所述第二高速缓冲存储器。
34.根据权利要求32所述的计算机可读存储媒体,其中所述指令进一步致使所述一或多个处理器进行以下操作:
响应于所述第二消息而清除来自所述第一高速缓冲存储器的所述数据。
35.根据权利要求31所述的计算机可读存储媒体,其中所述用于致使所述一或多个处理器起始所述传递的指令包含用于致使所述一或多个处理器进行以下操作的指令:
使用所述第一消息从所述第二处理器请求所述数据从所述第一高速缓冲存储器到所述第二高速缓冲存储器的数据传递。
36.根据权利要求31所述的计算机可读存储媒体,其中所述第一高速缓冲存储器的至少一个分区经配置成用于所述第二高速缓冲存储器的紧密耦合存储器。
CN201380039878.XA 2012-08-02 2013-07-01 多核心处理系统中的高速缓冲存储器数据迁移 Expired - Fee Related CN104508638B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/565,140 US9135172B2 (en) 2012-08-02 2012-08-02 Cache data migration in a multicore processing system
US13/565,140 2012-08-02
PCT/US2013/048943 WO2014022050A1 (en) 2012-08-02 2013-07-01 Cache data migration in a multicore processing system

Publications (2)

Publication Number Publication Date
CN104508638A true CN104508638A (zh) 2015-04-08
CN104508638B CN104508638B (zh) 2018-01-12

Family

ID=48795933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380039878.XA Expired - Fee Related CN104508638B (zh) 2012-08-02 2013-07-01 多核心处理系统中的高速缓冲存储器数据迁移

Country Status (4)

Country Link
US (1) US9135172B2 (zh)
EP (1) EP2880539B1 (zh)
CN (1) CN104508638B (zh)
WO (1) WO2014022050A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198658A (zh) * 2018-11-19 2020-05-26 美光科技公司 用于数据迁移的系统、装置、技术及方法
CN111831233A (zh) * 2016-08-03 2020-10-27 美光科技公司 混合式存储器驱动器、计算机系统及用于操作多重模式混合式驱动器的相关方法
US11709613B2 (en) 2018-11-19 2023-07-25 Micron Technology, Inc. Data migration for memory operation
US11853578B2 (en) 2018-11-19 2023-12-26 Micron Technology, Inc. Systems, devices, and methods for data migration

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797474B2 (en) * 2011-02-17 2023-10-24 Hyperion Core, Inc. High performance processor
US20150324287A1 (en) * 2013-01-09 2015-11-12 Freescale Semiconductor, Inc. A method and apparatus for using a cpu cache memory for non-cpu related tasks
US9940286B2 (en) * 2013-03-14 2018-04-10 Nvidia Corporation PCIE traffic tracking hardware in a unified virtual memory system
US9652390B2 (en) * 2014-08-05 2017-05-16 Advanced Micro Devices, Inc. Moving data between caches in a heterogeneous processor system
GB2536658B (en) 2015-03-24 2017-03-22 Imagination Tech Ltd Controlling data flow between processors in a processing system
DE102016106939B4 (de) 2015-04-17 2024-05-02 Suunto Oy Eingebettetes Rechengerät
CN105512054B (zh) * 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 主机接口控制器以及储存装置控制方法
US10803549B1 (en) * 2019-06-24 2020-10-13 Intel Corporation Systems and method for avoiding duplicative processing during generation of a procedural texture

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0390538A2 (en) * 1989-03-28 1990-10-03 Kabushiki Kaisha Toshiba Hierarchical cache memory apparatus
CN1193296C (zh) * 2000-09-25 2005-03-16 汤姆森许可贸易公司 数据内存管理系统和方法以及相关多处理器网络
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN1783033A (zh) * 2004-11-19 2006-06-07 英特尔公司 共享公共高速缓存的异构处理器
US20060271755A1 (en) * 2005-05-20 2006-11-30 Seiji Miura Memory module, cache system and address conversion method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5130922A (en) 1989-05-17 1992-07-14 International Business Machines Corporation Multiprocessor cache memory system using temporary access states and method for operating such a memory
US6792507B2 (en) 2000-12-14 2004-09-14 Maxxan Systems, Inc. Caching system and method for a network storage system
US7103728B2 (en) 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
US7469321B2 (en) 2003-06-25 2008-12-23 International Business Machines Corporation Software process migration between coherency regions without cache purges
US7143245B2 (en) 2004-01-20 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for read migratory optimization in a cache coherency protocol
US20110066830A1 (en) 2009-09-11 2011-03-17 Andrew Wolfe Cache prefill on thread migration
US20100281222A1 (en) 2009-04-29 2010-11-04 Faraday Technology Corp. Cache system and controlling method thereof
US9086973B2 (en) 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0390538A2 (en) * 1989-03-28 1990-10-03 Kabushiki Kaisha Toshiba Hierarchical cache memory apparatus
CN1193296C (zh) * 2000-09-25 2005-03-16 汤姆森许可贸易公司 数据内存管理系统和方法以及相关多处理器网络
CN1783033A (zh) * 2004-11-19 2006-06-07 英特尔公司 共享公共高速缓存的异构处理器
US20060271755A1 (en) * 2005-05-20 2006-11-30 Seiji Miura Memory module, cache system and address conversion method
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831233A (zh) * 2016-08-03 2020-10-27 美光科技公司 混合式存储器驱动器、计算机系统及用于操作多重模式混合式驱动器的相关方法
CN111831233B (zh) * 2016-08-03 2024-05-10 美光科技公司 混合式存储器驱动器、计算机系统及用于操作多重模式混合式驱动器的相关方法
CN111198658A (zh) * 2018-11-19 2020-05-26 美光科技公司 用于数据迁移的系统、装置、技术及方法
US11709613B2 (en) 2018-11-19 2023-07-25 Micron Technology, Inc. Data migration for memory operation
US11782626B2 (en) 2018-11-19 2023-10-10 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
CN111198658B (zh) * 2018-11-19 2023-11-10 美光科技公司 用于数据迁移的系统、装置、技术及方法
US11853578B2 (en) 2018-11-19 2023-12-26 Micron Technology, Inc. Systems, devices, and methods for data migration

Also Published As

Publication number Publication date
EP2880539B1 (en) 2018-09-12
US9135172B2 (en) 2015-09-15
US20140040553A1 (en) 2014-02-06
EP2880539A1 (en) 2015-06-10
WO2014022050A1 (en) 2014-02-06
CN104508638B (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
CN104508638A (zh) 多核心处理系统中的高速缓冲存储器数据迁移
US10043235B2 (en) Method for caching GPU data and data processing system therefor
CN110928695B (zh) 一种关于显存的管理方法、装置及计算机存储介质
KR101813429B1 (ko) 공유 데이터 채널들을 가지는 셰이더 파이프라인
CN111209116B (zh) 一种分配显存空间的方法、装置及计算机存储介质
CN108027955B (zh) 经带宽压缩的图形数据的存储技术
CN105556487A (zh) 对页驻留的条件性页错误控制
KR101676990B1 (ko) 커맨드 명령 관리
US10558496B2 (en) Techniques for accessing a graphical processing unit memory by an application
CN112801855B (zh) 基于图元的渲染任务调度的方法、装置及存储介质
KR20160033479A (ko) 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법
CN111311478B (zh) 一种gpu渲染核数据的预读取方法、装置及计算机存储介质
CN105144244A (zh) 用于基于瓦片的渲染器的查询处理
JP6271812B2 (ja) 透過的画素フォーマット変換器
CN117435521B (zh) 基于gpu渲染的纹理显存映射方法、装置及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate 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: 20180112

Termination date: 20210701

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