CN105335130B - 一种处理器及其处理任务的方法 - Google Patents

一种处理器及其处理任务的方法 Download PDF

Info

Publication number
CN105335130B
CN105335130B CN201510626791.3A CN201510626791A CN105335130B CN 105335130 B CN105335130 B CN 105335130B CN 201510626791 A CN201510626791 A CN 201510626791A CN 105335130 B CN105335130 B CN 105335130B
Authority
CN
China
Prior art keywords
instruction
parameter
pbuf
task
calculation module
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
CN201510626791.3A
Other languages
English (en)
Other versions
CN105335130A (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.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
Shenzhen ZTE Microelectronics Technology 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 Shenzhen ZTE Microelectronics Technology Co Ltd filed Critical Shenzhen ZTE Microelectronics Technology Co Ltd
Priority to CN201510626791.3A priority Critical patent/CN105335130B/zh
Publication of CN105335130A publication Critical patent/CN105335130A/zh
Priority to PCT/CN2016/088140 priority patent/WO2017054541A1/zh
Priority to US15/763,996 priority patent/US10481957B2/en
Application granted granted Critical
Publication of CN105335130B publication Critical patent/CN105335130B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种处理器及其处理任务的方法,包括:标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中;矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。

Description

一种处理器及其处理任务的方法
技术领域
本发明涉及处理器技术,尤其涉一种处理器及其处理任务的方法。
背景技术
在移动通信市场,存在着第二代(2G,2Generation)、第三代(3G,3Generation)、第四代(4G,4Generation)共存的局面,通信技术协议也在不断的向前发展。面对如此多的通信制式和快速更新的协议版本,采用软件定义无线电(SDR,Software Defined Radio)技术实现基带信号处理是一个好的发展方向。SDR技术采用的是数字信号处理器(DSP,DigitalSignal Processor)软基带方案,相比传统专用集成电路(ASIC,Application SpecificIntegrated Circuit)实现方式,具有更高的灵活性和更快的产品推出速度。4G长期演进(LTE,Long Term Evolution)以及后续的长期演进升级版(LTE-A,Long Term Evolution -Advanced)技术都以正交频分复用(OFDM,Orthogonal Frequency DivisionMultiplexing)和多输入多输出(MIMO,Multiple Input Multiple Output)作为主要技术特征,这些技术特征决定了所处理的基带信号具有矩阵运算较多的特点。所以采用具有矢量运算功能的矢量DSP处理器实现LTE及LTE-A基带信号处理是合适的。基于此,如何提高矢量处理器的性能成为决定软基带芯片性能的关键。
以往,处理器性能的提升主要靠提高处理器主频。但随着处理器频率越来越高,这种方法难以为继,原因是频率提高带来的功耗和发热代价太大并且处理器性能提升效果不明显。现在处理器朝着多核方向发展,通过在一个处理器内集成多个处理器核,并令多个处理器核并行工作,在不提高处理器频率的情况下,显著地提高了处理器性能。Intel公司的多核桌面处理器和ARM公司的多核移动处理器的广泛应用,证明采用多核技术是提升处理器性能行之有效的方法。多核处理器最常见的并行方式是任务级并行。如图1所示,单核处理只能串行执行每个任务,而多核处理器可以将没有依赖关系的任务分配给不同的核,这样带来的性能提升显而易见。这种并行方式并不适用前后有依赖关系的任务,即后面任务的输入是前面任务的输出。对于有依赖关系的任务,可以采用流水线并行的方式,即不同的任务分别交由不同的核处理,任务进行流水操作。
具体到矢量处理器,对于某个任务,矢量运算并不是所有运算的全部,因为在矢量运算之前,需要一些参数计算。这些参数计算属于标量运算,所以可以把某个任务分割为标量运算和矢量运算两部分。如果标量运算和矢量运算能够实现流水线并行,则可以显著提高矢量处理器的性能。当前多核处理器多采用共享存储器的方式实现核间通信,如果使用现有多核技术实现标量运算和矢量运算并行,将参数存于共享存储器上,则由于存储器访问速度和多核同步时间开销的原因,任务切换需要花费一定的时间,使得流水线并行带来的益处被抵消掉一部分。
发明内容
本发明实施例提供了一种处理器及其处理任务的方法,克服了多核处理器流水线并行任务切换时间开销大的问题。
本发明实施例提供的处理器处理任务的方法包括:
标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器(PBUF,Parameter Buffer)中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至影子(shadow)寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至工作(work)寄存器中;
矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。
本发明实施例中,所述当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中,包括:
当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行所述第三指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。
本发明实施例中,所述方法还包括:
所述矢量计算模块执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
本发明实施例中,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
本发明实施例中,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
本发明实施例中,所述方法还包括:
所述标量计算模块将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
本发明实施例提供的处理器包括:标量计算模块、矢量计算模块、PBUF,所述矢量计算模块包括:shadow寄存器、work寄存器;
所述标量计算模块,用于执行当前任务的参数计算,并将计算得到的参数存储至所述PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
所述shadow寄存器,用于从所述PBUF中读取参数,并存储读取到的参数;
所述work寄存器,用于当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数;
所述矢量计算模块,用于根据所述work寄存器中的参数执行当前任务的矢量计算。
本发明实施例中,所述work寄存器,还用于当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数。
本发明实施例中,所述矢量计算模块,还用于执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
本发明实施例中,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
本发明实施例中,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
本发明实施例中,所述标量计算模块,还用于将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
本发明实施例的技术方案中,标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中;矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。本发明实施例的处理器使用标量计算模块和矢量计算模块分别执行每个任务的标量处理部分和矢量处理部分,并利用PBUF作为标量处理输出和矢量处理输入的参数缓存器,可以使标量处理程序和矢量处理程序并行执行,显著提高了处理器性能。此外,由于shadow寄存器到work寄存器的一次性更新策略,矢量计算模块的任务切换几乎没有额外的时间开销。矢量计算模块兼具标量运算功能,即标量核是矢量核的功能子集,而且标量核和矢量核采用兼容的指令集,因而可以灵活地进行标量任务和矢量任务的切割以及最大程度程序优化。标量计算模块负责任务控制可以对矢量计算模块进行灵活调度,控制矢量计算模块的执行轨迹,方便编程。
附图说明
图1为多核并行实现方式的示意图;
图2为本发明实施例的处理器并行和同步示意图;
图3为本发明实施例一的处理器处理任务的方法的流程示意图;
图4为本发明实施例的处理器的结构组成示意图;
图5为本发明实施例的处理器的结构框图;
图6为本发明实施例的双核核间通信示意图;
图7为本发明实施例的PBUF数据格式示意图;
图8为本发明实施例二的处理器处理任务的方法的流程示意图;
图9是为本发明实施例的标量核处理任务的流程示意图;
图10为本发明实施例的矢量核处理任务的流程示意图;
图11为本发明实施例的写PBUF操作的流程示意图;
图12是双核DSP简单的微码示例示意图以及单核执行相同任务对应的程序代码示意图;
图13为本发明另一实施例的处理器的结构框图;
图14为本发明另一实施例的处理器并行和同步示意图;
图15为本发明另一实施例的处理器处理任务的方法的流程示意图;
图16为本发明另一实施例的标量核处理任务的流程示意图;
图17为本发明是另一实施例的矢量核处理任务的流程示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
为了便于理解本发明实施例的技术方案,本发明实施例中将标量计算模块也称为标量核,将矢量计算模块也称为矢量核。本发明实施例中的第一指令尤指标量核的fork指令,第二指令尤指标量核的sync指令,第三指令尤指矢量核的sync指令。
图2为本发明实施例的处理器并行和同步示意图。如图2所示,每个任务分为标量处理部分和矢量处理部分(如任务1分为标量处理部分S1和矢量处理部分V1)。如果是单核执行的话,必须先执行标量处理部分,再执行矢量处理部分,执行效率较低。将标量处理部分和矢量处理部分分别交由标量核和矢量核处理,再配以严格的双核同步机制加以保障,可以实现标量处理和矢量处理同时进行,完成任务的时间明显缩短。图中标量核执行完标量处理S1之后执行fork指令,fork指令的目的是通知矢量核参数已准备完毕,矢量核可以开始执行矢量运算。此外,fork指令还指定了调用矢量核子程序的地址。只要PBUF未满,标量核就可以继续执行下一个任务的标量处理S2,然后再执行sync指令。sync指令的作用也是通知矢量核可以开始执行矢量运算,但它和fork指令的区别是不带有矢量核子程序地址,意思是矢量核要顺序执行程序而不是另外从新的子程序起始地址开始运行。矢量核被触发后开始从子程序起始地址运行,执行完矢量处理V1后再执行sync指令。矢量核sync指令的作用是指示当前任务的矢量处理已经完成,需要下一个任务的参数传递过来进行下一任务的计算。当从PBUF读到下一任务参数计算完成标志时,即与S2对应的标量核sync指令,则将全部被修改的shadow寄存器值在一个周期内拷贝到对应的work寄存器,然后开始执行矢量处理V2。后续任务也是按照前面所述方式进行处理的。
图3为本发明实施例一的处理器处理任务的方法的流程示意图,如图3所示,所述处理器处理任务的方法包括以下步骤:
步骤301:标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中。
本发明实施例中,所述方法还包括:
所述标量计算模块将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
步骤302:矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。
本发明实施例中,所述当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至工作work寄存器中,包括:
当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。
本发明实施例中,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
这里,预设顺序是指令在程序存储器中的排放顺序。
步骤303:矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。
本发明实施例中,所述方法还包括:
矢量计算模块执行当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
图4为本发明实施例的处理器的结构组成示意图,如图4所示,所述处理器包括:标量计算模块41、矢量计算模块42、PBUF43,所述矢量计算模块包括:shadow寄存器44、work寄存器45;
所述标量计算模块41,用于执行当前任务的参数计算,并将计算得到的参数存储至所述PBUF43中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF43中;
所述shadow寄存器45,用于从所述PBUF43中读取参数,并存储读取到的参数;
所述work寄存器45,用于当从所述PBUF43中读取到所述第一指令或第二指令时,在一个周期内存储所述shadow寄存器44中所有被修改的参数;
所述矢量计算模块42,用于根据所述work寄存器45中的参数执行当前任务的矢量计算。
所述work寄存器45,还用于当从所述PBUF43中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内存储所述shadow寄存器44中所有被修改的参数。
所述矢量计算模块42,还用于执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
所述标量计算模41块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
所述标量计算模块41执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
所述标量计算模块41,还用于将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
结合具体实际应用中的功能模块,本发明实施例还提供了一种处理器,如图5所示,图5为本发明实施例的处理器的结构框图。
本发明实施例的处理器包括以下模块:标量程序存储器(SPM,Scalar ProgramMemory)51、矢量程序存储器(VPM,Vector Program Memory)52、数据存储器(DM,DataMemory)53、直接存储器存取(DMA,Direct Memory Access)54;
所述处理器还包括:标量核(SCORE,Scalar Core)55、矢量核(VCORE,VectorCore)56、参数缓冲器(PBUF,Parameter Buffer)57,其中SCORE55中含有参数寄存器,VCORE56中含有shadow寄存器和work寄存器。
上述模块中,SPM51和VPM52分别是标量核和矢量核的程序存储器,标量核和矢量核共享数据存储器DM53。DMA54负责程序和数据搬运。两个核通过参数缓冲器PBUF57进行核间通信。对于每段任务程序可以分为标量处理部分和矢量处理部分。其中,标量处理部分为矢量处理部分提供参数。标量核负责标量处理部分,矢量核负责矢量处理部分(兼具标量运算功能)。标量核计算矢量处理所必需的参数,存于参数寄存器,并将参数写入PBUF57。标量核每完成一个任务的参数计算还会执行fork指令或sync指令(fork带矢量核子程序地址,sync不带),并将该指令信息写入PBUF57,目的是将不同任务的参数隔离区分开来以及双核同步。从PBUF57读出的参数依次写入矢量核的相应shadow寄存器,当读到fork或sync信息时,并且矢量核处于空闲状态或者已完成上个任务处理(以矢量核执行到sync指令为标志),则所有shadow寄存器值在一个周期内被一次性拷贝到对应的work寄存器,然后矢量核根据work寄存器携带的参数开始矢量计算。在矢量核进行某个任务矢量计算的同时,标量核可以继续后面任务的参数计算并将其写入PBUF57。通过对每个任务进行标量处理和矢量处理切割,分别由标量核和矢量核处理,并利用PBUF57传递参数和同步信息,可以实现双核并行运算,以及连续任务的流水操作和快速切换。
此外,处理器尤指DSP,采用哈弗结构,标量核和矢量核共享数据存储器DM。DMA54负责程序和数据搬运,可以将程序通过AXI总线从外部存储空间搬运到DSP内部的SPM51和VPM52,也可以在外部存储空间和DM之间进行双向数据搬运。两个核通过参数缓冲器PBUF57进行核间通信。标量核负责标量处理部分,矢量核负责矢量处理部分(兼具标量运算功能)。标量核计算矢量处理所必需的参数,存于参数寄存器,并将参数写入PBUF57。标量核每完成一个任务的参数计算还会执行fork或sync指令(fork带矢量核子程序地址,sync不带),并将该指令信息写入PBUF57,目的是将不同任务的参数隔离区分开来以及双核同步。从PBUF57读出的参数依次写入矢量核的相应shadow寄存器,当读到fork或sync信息时,并且矢量核处于空闲状态或者已完成上个任务处理(以矢量核执行到sync指令为标志),则所有shadow寄存器值在一个周期内被一次性拷贝到对应的work寄存器,然后矢量核根据work寄存器携带的参数开始矢量计算。在矢量核进行某个任务矢量计算的同时,标量核可以继续后面任务的参数计算并将其写入PBUF57。通过对每个任务进行标量处理和矢量处理切割,分别由标量核和矢量核处理,并利用PBUF57传递参数和同步信息,可以实现双核并行运算,以及连续任务的流水操作和快速切换。
图6为本发明实施例的双核核间通信示意图。PBUF是一个FIFO结构的缓冲器,里面存储的是标量核发送的参数值以及同步指令信息。在标量核内部,有一些参数寄存器,如aa、qq、ll、pq等,这些参数会被写到PBUF。从PBUF可以看到,各组参数p1、p2、p3等被fork或sync标志隔离开来。PBUF里面的参数首先被写到矢量核的shadow寄存器,如aa.s、qq.s、ll.s等。之所以叫做shadow寄存器,是因为这些寄存器的更新是在后台进行的。当矢量核执行sync指令时,如果下一任务所需参数对应的shadow寄存器都已更新完毕(即读到相应任务的fork或sync标志),则一次性将shadow寄存器值拷贝到对应的work寄存器。由此可见,矢量核任务的切换只消耗了一个周期,即执行sync指令的周期。所以当任务所用周期数较大时,任务切换所带来的时间开销是可以忽略不计的。
图7为本发明实施例的PBUF数据格式示意图。PBUF里面的数据包括参数(aa、qq、ll、pq等)和同步指令(fork、sync)。实际上,对PBUF数据进行了编码处理。当从PBUF读取数据时,需要对数据进行解析以做相应的处理。
图8为本发明实施例二的处理器处理任务的方法的流程示意图。如图8所示,所述处理器处理任务的方法包括以下步骤:
步骤801:标量核执行参数计算,并将计算结果写入参数寄存器和PBUF。一个任务所用的一组参数计算完成后,标量核执行用于核间同步的fork或sync指令,并将该指令信息写入PBUF。
步骤802:从PBUF读取参数,并将参数值拷贝到shadow寄存器。当从PBUF读到fork或sync指令信息时,并且矢量核处于空闲状态或执行sync指令时,在一个周期内将所有被修改的shadow寄存器值一次性拷贝到work寄存器。
步骤803:矢量核根据work寄存器携带的参数进行矢量计算。计算完成后执行sync指令,用于更新下一任务所需的参数。在矢量核进行计算的同时,标量核也在对下一任务的参数进行计算,实现任务流水线并行。
图9是为本发明实施例的标量核处理任务的流程示意图。该图体现了标量核的任务控制和调度作用,如图9所示,所述流程包括以下步骤:
步骤901:执行参数计算:对于参数计算结果,既需要写入参数寄存器,又需要写入PBUF。
步骤902:执行fork或sync指令:fork指令将指定所调用VCORE子程序地址,sync指令默认VCORE顺序执行。fork或sync指令信息被写入PBUF。
步骤903:判断是否有新的一组参数需要计算。如果有,则重新执行步骤901;否则,标量核结束工作。
图10为本发明实施例的矢量核处理任务的流程示意图。因为矢量核是被调用核,所以一开始是处于空闲状态的。如图10所示,所述流程包括以下步骤:
步骤1001:在空闲状态下,看从PBUF读到的是否是fork或sync指令信息。如果是,则执行下一步操作;如果不是,则继续维持在空闲状态。
步骤1002:将所有被修改的shadow寄存器值一次性拷贝到对应的work寄存器。该操作在一个周期内快速完成。
步骤1003:VCORE从fork指定的地址开始运行子程序或顺序执行。
步骤1004:VCORE执行sync指令,看是否从PBUF读出fork或sync指令信息。如果是,则执行shadow寄存器值拷贝到work寄存器的操作;如果不是,则进入空闲状态。进入空闲状态后,继续等待fork或sync指令信息。
图11为本发明实施例的写PBUF操作的流程示意图。如图11所示,所述流程包括以下步骤:
步骤1101:一开始,PBUF是空的,可以接受标量核的参数和同步指令信息写入。
步骤1102:判断PBUF是否非满,是时执行步骤1103,否时,执行步骤1104。
但如果由于特殊原因导致PBUF读出阻塞,有可能PBUF被标量核填满。为了防止PBUF上溢,这时需要将标量核的时钟关闭,从而使标量核停止运行,进而无法继续写PBUF。
步骤1103:可以接受标量核的参数和fork、sync信息写入。
步骤1104:标量核关钟,使其无法写入PBUF。
此外,对于读PBUF操作,在PBUF为空时,将不进行读操作。当PBUF为非空时,如果读到的是参数,则将其写入对应的shadow寄存器。当从PBUF读到的是fork或sync指令信息时,需要看矢量核是否处于空闲状态或者已经执行到sync指令,如果是则执行被修改的shadow寄存器到work寄存器的拷贝,如果不是则继续等待矢量核sync指令的到来。
图12是双核DSP简单的微码示例示意图。标量核首先为矢量核提供ld(load)指令地址a2的计算。代码中“a2.s”中的“.s”表示参数寄存器a2的结果将会通过PBUF传递到shadow寄存器a2.s,进而传递到矢量核的work寄存器a2。a2计算完成后,使用fork指令调用矢量核VC_SUBROUTINE1子程序。在矢量核VC_SUBROUTINE1子程序中,ld指令使用标量核计算得到的a2进行矢量load操作,然后使用sync指令结束此操作。下一个任务,标量核为矢量核提供ld(load)指令地址a4的计算。计算完成后,标量核使用sync指令。这一次,标量核的sync指令令矢量核顺序执行,可以看到矢量核继续执行的是ld指令使用标量核计算得到的a4进行矢量load操作,然后使用sync指令结束此操作。
图12也示出了单核执行相同任务对应的程序代码,可见代码是串行执行。由于标量核是矢量核的功能子集,且指令集兼容,该任务可以由矢量核单核完成,换句话说,标量处理部分可以灵活切割成两部分,分别分配给标量核和矢量核。典型应用是标量处理部分全部分配给标量核。但针对某一具体应用,可以做到为了达到双核效率最大化,灵活切割标量处理部分以及标量核和矢量核的处理界限。
图13为本发明另一实施例的处理器的结构框图,如图13所示。与前述实施例相比,该实施例取消了PBUF57,但需要标量核55输出fork或sync指令信息到矢量核56,也需要矢量核56输出sync指令信息到标量核55。标量核55写到参数寄存器的值被同时写到矢量核56的shadow寄存器。该实施例相比前述实施例减小了资源开销,但会对处理器性能造成影响,这一点将会结合图14进行阐述。
如图14所示,因为没有了PBUF缓存参数,标量核在执行到fork或sync指令且将要执行下一任务参数计算时,必须等到矢量核处于空闲状态或者矢量核执行到sync指令时才能执行下一任务参数计算。标量核等待是为了防止shadow寄存器值在还没有被拷贝到work寄存器时就被标量核写覆盖。矢量核在执行到sync指令且将要执行下一任务矢量计算时,如果标量核处于等待状态或者标量核执行到fork或sync指令则进行下一任务矢量计算,否则矢量核进入空闲状态。矢量核进入空闲状态是为了等待标量核将相应的参数计算完成。在标量核执行fork或sync指令且矢量核处于空闲状态时,或者矢量核执行sync指令且标量核处于等待状态时,或者标量核执行fork或sync指令且矢量核执行sync指令时,将shadow寄存器值一次性拷贝到work寄存器。
由图14可知,另一实施例相比前述实施例,由于没有了PBUF缓存参数,造成矢量核有空闲状态,所以处理器性能会有损失。如果想要达到或接近前述实施例的性能,则需要在软件编程时进行更为精确的标量和矢量划分以及任务划分,尽量使得标量和矢量部分均衡以及各个任务均衡,所以对软件编程提出更高的要求。
图15为本发明另一实施例的处理器处理任务的方法的流程示意图,按照以下的步骤,实现双核并行计算和交互:
步骤1501:标量核执行参数计算,并将计算结果写入参数寄存器和矢量核的shadow寄存器。一个任务所用的一组参数计算完成后,标量核执行用于核间同步的fork或sync指令,并将该指令信息传递到矢量核。
步骤1502:当矢量核从标量核得到fork或sync指令信息时,并且矢量核处于空闲状态或执行sync指令时,在一个周期内将所有被修改的shadow寄存器值一次性拷贝到work寄存器。
步骤1503:矢量核根据work寄存器携带的参数进行矢量计算。计算完成后执行sync指令,用于更新下一任务所需的参数。同时,矢量核需要将sync指令信息反馈给标量核,通知标量核可以进行新的参数计算。在矢量核进行计算的同时,标量核也在对下一任务的参数进行计算,实现任务流水线并行。
图16为本发明另一实施例的标量核处理任务的流程示意图。标量核的处理过程如下:
步骤1601:执行参数计算:对于参数计算结果,既需要写入参数寄存器,又需要写入shadow寄存器。
步骤1602:执行fork或sync指令:fork指令将指定所调用VCORE子程序地址,sync指令默认VCORE顺序执行。fork或sync指令信息被送至VCORE。
步骤1603:判断是否有新的一组参数需要计算,如果没有,则SCORE结束工作;如果有,则执行步骤1604。
步骤1604:判断VCORE是否处于空闲状态或正在执行sync指令。如果VCORE处于空闲状态或正在执行sync指令,则回到参数计算的步骤1601,否则执行步骤1605。
步骤1605:SCORE停钟等待直到VCORE执行sync指令。
图17为本发明是另一实施例的矢量核处理任务的流程示意图。矢量核的处理过程如下:
步骤1701:在空闲状态下,如果SCORE发来fork或sync指令信息或者SCORE处于停钟等待状态,则执行下一步操作;否则VCORE继续维持在空闲状态。
步骤1702:将所有被修改的shadow寄存器值一次性拷贝到对应的work寄存器。该操作在一个周期内快速完成。
步骤1703:VCORE从fork指定的地址开始运行子程序或顺序执行。
步骤1704:VCORE执行sync指令,判断是否SCORE发来fork或sync指令信息或者SCORE处于停钟等待状态。如果是,则执行shadow寄存器值拷贝到work寄存器的操作;如果不是,则进入空闲状态。进入空闲状态后,继续等待fork或sync指令信息。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (12)

1.一种处理器处理任务的方法,其特征在于,所述方法包括:
标量计算模块执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
矢量计算模块从所述PBUF中读取参数,并将读取到的参数存储至影子shadow寄存器中;当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至工作work寄存器中;
矢量计算模块根据所述work寄存器中的参数执行当前任务的矢量计算。
2.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中,包括:
当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内将所述shadow寄存器中所有被修改的参数存储至work寄存器中。
3.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述方法还包括:
所述矢量计算模块执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
4.根据权利要求1所述的处理器处理任务的方法,其特征在于,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
5.根据权利要求1所述的处理器处理任务的方法,其特征在于,
所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
6.根据权利要求1至5任一项所述的处理器处理任务的方法,其特征在于,所述方法还包括:
所述标量计算模块将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
7.一种处理器,其特征在于,所述处理器包括:标量计算模块、矢量计算模块、参数缓冲器PBUF,所述矢量计算模块包括:shadow寄存器、work寄存器;
所述标量计算模块,用于执行当前任务的参数计算,并将计算得到的参数存储至参数缓冲器PBUF中;当所述当前任务的参数计算完成后,执行用于核间同步的第一指令或第二指令,并将所述第一指令或第二指令存储至所述PBUF中;
所述shadow寄存器,用于从所述PBUF中读取参数,并存储读取到的参数;
所述work寄存器,用于当从所述PBUF中读取到所述第一指令或第二指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数;
所述矢量计算模块,用于根据所述work寄存器中的参数执行当前任务的矢量计算。
8.根据权利要求7所述的处理器,其特征在于,所述work寄存器,还用于当从所述PBUF中读取到所述第一指令或第二指令时,且所述矢量计算模块处于空闲状态或执行第三指令时,在一个周期内存储所述shadow寄存器中所有被修改的参数。
9.根据权利要求7所述的处理器,其特征在于,所述矢量计算模块,还用于执行所述当前任务的矢量计算完成后,执行第三指令,所述第三指令用于更新下一个任务的参数。
10.根据权利要求7所述的处理器,其特征在于,所述标量计算模块执行的第一指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第一指令携有指示调用矢量计算模块子程序的地址的指示信息。
11.根据权利要求7所述的处理器,其特征在于,所述标量计算模块执行的第二指令用于通知所述矢量计算模块所述当前任务的参数计算完成;
所述第二指令用于指示所述矢量计算模块按照预设顺序执行程序。
12.根据权利要求7至11任一项所述的处理器,其特征在于,所述标量计算模块,还用于将所述第一指令或第二指令存储至所述PBUF中之后,继续计算下一个任务的参数。
CN201510626791.3A 2015-09-28 2015-09-28 一种处理器及其处理任务的方法 Expired - Fee Related CN105335130B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510626791.3A CN105335130B (zh) 2015-09-28 2015-09-28 一种处理器及其处理任务的方法
PCT/CN2016/088140 WO2017054541A1 (zh) 2015-09-28 2016-07-01 一种处理器及其处理任务的方法、存储介质
US15/763,996 US10481957B2 (en) 2015-09-28 2016-07-01 Processor and task processing method therefor, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510626791.3A CN105335130B (zh) 2015-09-28 2015-09-28 一种处理器及其处理任务的方法

Publications (2)

Publication Number Publication Date
CN105335130A CN105335130A (zh) 2016-02-17
CN105335130B true CN105335130B (zh) 2018-06-26

Family

ID=55285706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510626791.3A Expired - Fee Related CN105335130B (zh) 2015-09-28 2015-09-28 一种处理器及其处理任务的方法

Country Status (3)

Country Link
US (1) US10481957B2 (zh)
CN (1) CN105335130B (zh)
WO (1) WO2017054541A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335130B (zh) * 2015-09-28 2018-06-26 深圳市中兴微电子技术有限公司 一种处理器及其处理任务的方法
US10797734B2 (en) * 2018-08-01 2020-10-06 Commscope Technologies Llc System with multiple virtual radio units in a radio unit that is remote from at least one baseband controller
CN111079911B (zh) * 2018-10-19 2021-02-09 中科寒武纪科技股份有限公司 运算方法、系统及相关产品
US20220394284A1 (en) * 2021-06-07 2022-12-08 Sony Interactive Entertainment Inc. Multi-threaded cabac decoding
CN113422665B (zh) * 2021-08-23 2021-11-12 奥特酷智能科技(南京)有限公司 一种基于ipc机制实现车载系统时间同步的方法及系统
CN117971437A (zh) * 2024-03-26 2024-05-03 摩尔线程智能科技(北京)有限责任公司 任务分配方法、电路、设备、介质及程序

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154288A (zh) * 2006-09-28 2008-04-02 国际商业机器公司 用于执行交叉积指令的处理器和方法
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102262525A (zh) * 2011-08-29 2011-11-30 孙瑞琛 基于矢量运算的矢量浮点运算装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123095A (en) * 1989-01-17 1992-06-16 Ergo Computing, Inc. Integrated scalar and vector processors with vector addressing by the scalar processor
US8751737B2 (en) 2009-06-26 2014-06-10 Alcatel Lucent Method and apparatus for using a shared ring buffer to provide thread synchronization in a multi-core processor system
JP5240270B2 (ja) * 2010-10-12 2013-07-17 日本電気株式会社 プロセッサ及びベクトルロード命令の実行方法
JP5971635B2 (ja) * 2011-01-25 2016-08-17 エヌエックスピー カナダ インコーポレイテッド ベクトルユニット共有の装置および方法
CN202217276U (zh) 2011-06-17 2012-05-09 江苏中科芯核电子科技有限公司 基于并行处理的fft装置
CN202534008U (zh) 2012-03-28 2012-11-14 中国电子科技集团公司第五十八研究所 一种面向图像处理的基于同构双核结构的SoC
US9092429B2 (en) * 2012-10-23 2015-07-28 Analog Devices Global DMA vector buffer
GB2520571B (en) * 2013-11-26 2020-12-16 Advanced Risc Mach Ltd A data processing apparatus and method for performing vector processing
CN105335130B (zh) 2015-09-28 2018-06-26 深圳市中兴微电子技术有限公司 一种处理器及其处理任务的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154288A (zh) * 2006-09-28 2008-04-02 国际商业机器公司 用于执行交叉积指令的处理器和方法
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102262525A (zh) * 2011-08-29 2011-11-30 孙瑞琛 基于矢量运算的矢量浮点运算装置及方法

Also Published As

Publication number Publication date
CN105335130A (zh) 2016-02-17
US10481957B2 (en) 2019-11-19
WO2017054541A1 (zh) 2017-04-06
US20180276051A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
CN105335130B (zh) 一种处理器及其处理任务的方法
CN106790599B (zh) 一种基于多核无锁环形缓冲区的共生虚拟机通信方法
US6694426B2 (en) Method and apparatus for staggering execution of a single packed data instruction using the same circuit
EP3289443B1 (en) Central processing unit with dsp engine and enhanced context switch capabilities
CN103714026B (zh) 一种支持原址数据交换的存储器访问方法及装置
WO2015035336A1 (en) Method and apparatus for asynchronous processor pipeline and bypass passing
CN110908716B (zh) 一种向量聚合装载指令的实现方法
US10031773B2 (en) Method to communicate task context information and device therefor
CN107391400A (zh) 一种支持复杂访存指令的内存扩展方法和系统
CN106155730A (zh) 操作系统加载方法及装置
CN105389134A (zh) 一种闪存接口控制方法及装置
CN102023841B (zh) 微处理器以及相关指令执行方法
EP2393013B1 (en) Method and apparatus for wireless broadband systems direct data transfer
CN106537331B (zh) 指令处理方法及设备
US4901222A (en) Method and apparatus for backing out of a software instruction after execution has begun
KR100639146B1 (ko) 카테시안 제어기를 갖는 데이터 처리 시스템
CN101042641B (zh) 一种具有动态提交流水线功能的数字信号处理器
JP2004515856A (ja) ディジタル信号処理装置
CN109918233A (zh) 一种数据处理方法、装置、计算设备及存储介质
EP4293505A1 (en) Instruction retirement unit, instruction execution unit, processing unit, cumputing device, and instruction processing method
US6715058B1 (en) Apparatus and method for a sorting mode in a direct memory access controller of a digital signal processor
JPS5829051A (ja) 演算処理装置
WO2007094256A1 (ja) キュープロセッサおよびキュープロセッサによるデータ処理方法
EP1193608A2 (en) Apparatus and method for a sorting mode in a direct memory access controller of a digital signal processor
JPS59108134A (ja) 入出力制御方式

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20160217

Assignee: Xi'an Chris Semiconductor Technology Co.,Ltd.

Assignor: SANECHIPS TECHNOLOGY Co.,Ltd.

Contract record no.: 2019440020036

Denomination of invention: Processor and method for processing task

Granted publication date: 20180626

License type: Common License

Record date: 20190619

EE01 Entry into force of recordation of patent licensing contract
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180626