CN111782580A - 复杂计算装置、方法、人工智能芯片和电子设备 - Google Patents
复杂计算装置、方法、人工智能芯片和电子设备 Download PDFInfo
- Publication number
- CN111782580A CN111782580A CN202010612288.3A CN202010612288A CN111782580A CN 111782580 A CN111782580 A CN 111782580A CN 202010612288 A CN202010612288 A CN 202010612288A CN 111782580 A CN111782580 A CN 111782580A
- Authority
- CN
- China
- Prior art keywords
- instruction
- complex
- calculation
- computing
- instructions
- 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
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title description 7
- 238000004364 calculation method Methods 0.000 claims abstract description 130
- 230000015654 memory Effects 0.000 claims description 8
- 241001649081 Dina Species 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 101150112732 GNT1 gene Proteins 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Neurology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种复杂计算装置、方法、人工智能芯片和电子设备,涉及人工智能芯片领域。具体实现方案为:输入接口接收复杂计算指令,并根据各复杂计算指令中的计算类型将各复杂计算指令分别仲裁给对应的计算部件;各计算部件均连接于输入接口,从复杂计算指令中获取源操作数以进行复杂计算,并生成计算结果指令反馈给输出接口;输出接口根据各计算结果指令中的指令来源标识将各计算结果指令中的计算结果分别仲裁给对应的指令来源。本申请的技术方案实现了多AI处理器核共享SFU,减少了复杂计算的数据通路,降低了AI芯片的面积和功耗。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及人工智能芯片技术领域。
背景技术
人工智能(Artificial Intelligence,AI)算法中存在着很多复杂计算。在AI处理器中可以通过组合多条基本的算术和逻辑运算指令来实现这些复杂运算操作,但这样做既费时费力,也会降低这些复杂运算的执行效率,对软件编程也不友好。
现在的AI处理器多通过单指令的方式调用专用的复杂计算单元来实现复杂计算。由于这些复杂计算单元占用的逻辑面积相对较大,在多核AI处理器中,如果每个处理器核都独享这些复杂计算单元,则会占用很大的芯片面积,实现代价太大;而且在实际应用场景中,这些复杂计算指令的使用频率也不是特别高,每个处理器核独享时,对这些复杂计算单元的利用率也不是很高。
发明内容
本申请提供了一种复杂计算装置、方法、人工智能芯片和电子设备。
根据本申请的一方面,提供了一种复杂计算装置,包括:输入接口、多个计算部件以及输出接口,其中,
输入接口用于接收复杂计算指令,并根据各复杂计算指令中的计算类型将各复杂计算指令分别仲裁给对应的计算部件,其中,复杂计算指令中还包括指令来源标识以及用于复杂计算的源操作数;
各计算部件均连接于输入接口,计算部件用于从接收到的复杂计算指令中获取源操作数以进行复杂计算,并生成计算结果指令反馈给输出接口,其中,计算结果指令中包括复杂计算指令中的指令来源标识以及复杂计算的计算结果;
输出接口用于根据各计算结果指令中的指令来源标识将各计算结果指令中的计算结果分别仲裁给对应的指令来源。
根据本申请的另一方面,提供了一种人工智能芯片,包括上述的复杂计算装置,以及多个与复杂计算装置连接的人工智能处理器核。
根据本申请的又一方面,提供了一种电子设备,包括:至少一个处理器、至少一个存储器以及至少一个上述的人工智能芯片。
根据本申请的再一方面,提供了一种复杂计算方法,包括:
从多个人工智能处理器核获取复杂计算指令,并根据各复杂计算指令中的计算类型将各复杂计算指令分别仲裁给对应的计算部件,其中,复杂计算指令中还包括人工智能处理器核的指令来源标识以及用于复杂计算的源操作数;
计算部件从接收到的复杂计算指令中获取源操作数以进行复杂计算,并生成计算结果指令,其中,计算结果指令中包括复杂计算指令中的指令来源标识以及复杂计算的计算结果;
根据各计算结果指令中的指令来源标识将各计算结果指令中的计算结果分别仲裁给对应的人工智能处理器核。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的AI芯片的结构示意图;
图2是根据本申请实施例一种实施方式的复杂计算装置的输入接口的结构示意图;
图3是根据本申请实施例复杂计算装置的输入接口的应用示例图;
图4是本申请实施例一种实施方式的复杂计算装置的输出接口的结构示意图;
图5是本申请实施例复杂计算装置的输出接口的应用示例图;
图6是本申请实施例电子设备的结构示意图;
图7是根据本申请实施例的复杂计算方法的示意图。
附图标记说明:
10:AI芯片;100:AI处理器核;200:复杂计算装置;
210:输入接口;220:计算部件;230:输出接口;
211:第一主节点;212:第一从节点;
213:第一地址判断模块;214:第一仲裁模块;
231:第二主节点;232:第二从节点;
233:第二地址判断模块;234:第二仲裁模块;
601:处理器;602:存储器;603:输入装置;604:输出装置。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以根据本申请实施例的人工智能(Artificial Intelligence,AI)芯片10的结构示意图。
如图1所示,该AI芯片10包括多个指令来源100以及复杂计算装置200,多个指令来源100均与复杂计算装置200连接。本实施例中,指令来源100可以为AI处理器核。其中,复杂计算装置200包括输入接口210、多个计算部件220以及输出接口230。输入接口210可以连接于多个AI处理器核100与多个计算部件220之间,输出接口可以连接于多个计算部件220与多个AI处理器核100之间。
多个计算部件220可以构成特殊功能单元(Special Function Unit,SFU),每个计算部件220具有独立的运算能力,可以实现某种类型的复杂计算。这里复杂运算是指相对于简单运算而言计算量较大的运算,简单运算可以指计算量较小的运算。例如,简单运算可以是加法运算、乘法运算或者可以加法运算和乘法运算的简单组合运算。指令来源100如AI处理器核中都包括加法器和乘法器,因此,对于AI处理器核,更适合做简单运算。而复杂运算是指不能通过加法运算和乘法运算的简单组合而组成的运算,如浮点求幂运算、浮点开平方运算、浮点除法运算、浮点求对数运算、三角函数运算等。
在一个示例中,计算部件1用来实现浮点求幂运算,计算部件2用来实现浮点开平方运算……计算部件N用来实现三角函数运算。
在一种实施方式中,计算部件220可以包括以下至少一项:专用集成电路(ASIC,Application Specific Integrated Circuit))芯片和现场可编程门阵列(FPGA,FieldProgrammable Gate Array)。
在一个示例中,指令来源,如AI处理器核100可以在接收到待执行指令的情况下,对待执行指令进行译码,并将译码后的数据拼接成复杂计算指令sfu_dina。复杂计算指令中可以包括计算类型(复杂计算的操作类型)、指令来源标识(如AI处理器核的核ID)、源操作数、写回地址等。在一个示例中,AI处理器核100将生成的复杂计算指令sfu_dina添加到专用的SFU指令队列中。其中,SFU指令队列为先进先出(First Input First Output,FIFO)队列。
每个指令来源,如AI处理器核100,可以向复杂计算装置200的输入接口210发出指令请求req1,输入接口210响应于该指令请求从每个AI处理器核100中获取复杂计算指令sfu_dina,并根据各复杂计算指令sfu_dina中的计算类型将各复杂计算指令sfu_dina分别仲裁给对应的计算部件220。
例如:sfu_dina1中的计算类型为浮点开平方运算,则输入接口210将sfu_dina1仲裁给计算部件2;sfu_dina2中的计算类型为浮点求幂运算,则输入接口210将sfu_dina1仲裁给计算部件1。
计算部件220用于从接收到的复杂计算指令sfu_dina中获取源操作数以进行复杂计算,并生成计算结果指令sfu_dout反馈给输出接口230。计算结果指令sfu_dout中可以包括指令来源标识、计算结果以及写回地址等。其中,计算结果即为该计算部件220对源操作数进行复杂计算的计算结果,指令来源标识和写回地址来自于该计算部件220接收到的复杂计算指令sfu_dina中的数据。
例如:计算部件1接收到复杂计算指令sfu_dina2,sfu_dina2中包括源操作数X和Y、写回地址Z、指令来源标识AA等,计算部件1对源操作数X和Y进行浮点求幂运算,并将计算结果、写回地址Z、指令来源标识AA等拼接成计算结果指令sfu_dout1反馈给输出接口230。
输出接口230从各计算部件220中接收计算结果指令sfu_dout1、sfu_dout2……sfu_doutN,并根据各计算结果指令中的指令来源标识将各计算结果指令中的计算结果和写回地址分别仲裁给对应的指令来源,如AI处理器核100。AI处理器核100根据写回地址将计算结果写入内部寄存器中。
本申请实施例提供的复杂计算装置200与各指令来源(如AI处理器核100)弱耦合,各类复杂计算指令使用相同的数据通路(输入接口210),发送给对应的计算部件,各计算结果指令也使用相同的数据通路(输出接口230)返回给各指令来源,从而实现了多指令来源共享SFU,并可以减少指令来源调用SFU进行复杂计算时的数据通路,降低AI芯片的面积开销和功耗开销。
在一种实施方式中,输入接口210和输出接口230为交叉开关阵列(crossbar)型结构。
如图2所示,输入接口210可以包括多个第一主节点211以及多个第一从节点212。其中,各第一从节点212分别连接于各第一主节点211,以及各第一从节点212与各计算部件220一一对应连接。也就是说,输入接口210可以为主节点(master)-从节点(slave)结构类型。在一个示例中,各第一主节点211与各AI处理器核100一一对应连接。
由此,第一主节点211可以从相连接的AI处理器核100获取对应的复杂计算指令,并根据获取的复杂计算指令中的计算类型将获取的复杂计算指令仲裁给对应的第一从节点212;第一从节点212可以将接收到的复杂计算指令发送给相连接的计算部件220。
在一种实施方式中,如图2所示,输入接口210还可以包括多个第一地址判断模块213以及多个第一仲裁模块214,各第一主节点211与各第一地址判断模块213一一对应连接,各第一仲裁模块214分别连接于各第一地址判断模块213,以及各第一仲裁模块214与各第一从节点212一一对应连接。
由此,第一地址判断模块213可以从相连接的第一主节点211中接收对应的复杂计算指令,并将接收到的复杂计算指令中的指令类型与每个相连接的第一从节点212进行比较,以及在比较结果为匹配的情况下,输出第一请求使能有效信号,即req_en1为有效。
在一个示例中,每个第一主节点211中的数据包括指令请求信号req1、第一地址信号addr1、第一数据信号data1和指令响应信号gnt1。其中,第一地址信号addr1包括复杂计算指令sfu_dina中的计算类型,第一数据信号data1包括复杂计算指令sfu_dina中的指令来源标识、源操作数和写回地址等。
也就是说,每个第一主节点211在收到复杂计算指令sfu_dina后,将该复杂计算指令sfu_dina中的计算类型作为第一主节点211的第一地址信号addr1,将该复杂计算指令sfu_dina中的指令来源标识、源操作数和写回地址等作为第一主节点211的第一数据信号data1。
每个第一地址判断模块213将与该第一地址判断模块213相连接的第一主节点211的第一地址信号addr1和每个第一从节点212的序号相比较,若匹配,则向连接到对应第一从节点212的第一仲裁模块214输出req_en1为有效的信号(第一请求使能有效信号);若不匹配,则输出req_en1为无效的信号(第一请求使能无效信号)。其中,“匹配”可以为相等。
第一仲裁模块214用于根据预设的仲裁算法,从多个输出第一请求使能有效信号中确定出第一目标请求使能有效信号,并选通与第一目标请求使能有效信号对应的第一主节点211以及与第一仲裁模块214相连接的第一从节点212。其中,仲裁算法包括但不限于优先级仲裁算法、轮询仲裁算法等。
在一个示例中,每个第一从节点212中的数据包括有效信号vld和数据信号data′。每个第一从节点212对应一个第一仲裁模块214。第一仲裁模块214接收所有第一主节点211相连接的第一地址判断模块213产生的req_en1信号,并对有效的req_en1信号做仲裁选择,从而从中选通一个第一主节点211,即选通与第一目标请求使能有效信号对应的第一主节点211以及与第一仲裁模块214相连接的第一从节点212。当某个第一主节点211和某个第一从节点212选通后,第一主节点211的信号data1可以赋给第一从节点的信号data′,并置第一从节点的vld信号有效。
如图2和图3所示,输入接口210支持M个第一主节点211和N个第一从节点212,则最多同时可以有M(M<N时)或N(M>N时)条通路可以同时选通。如图3所示,有两条路径同时选通,分别是第一主节点2和第一从节点N选通,第一主节点M和第一从节点1选通。其中,M为指令来源(如AI处理器核100)的数量,N为复杂计算指令的计算类型的数量。
在一种实施方式中,第一主节点210通过握手协议从相连接的AI处理器核100中获取对应的复杂计算指令。例如:第一主节点M接收指令请求信号req1,当经过仲裁,第一从节点1选通第一主节点M时,第一主节点M的指令响应信号gnt1就会有效,即输入req1和输出gnt1为握手信号,表示此次数据传输完成,可以发起下一次数据传输。
在一种实施方式中,如图4所示,输出接口230包括多个第二主节点231以及多个第二从节点232。其中,各第二主节点231与各计算部件一一对应连接,各第二从节点232分别连接于各第二主节点231。也就是说,输出接口230也可以为master-slave结构类型。在一个示例中,各第二从节点232与各人工智能处理器核100一一对应连接。
由此,第二主节点231可以从相连接的计算部件获取对应的计算结果指令,并根据获取的计算结果指令中的指令来源标识将获取的计算结果指令仲裁给对应的第二从节点232;第二从节点232可以将接收到的计算结果指令发送给对应的指令来源,如与该第二从节点232相连接的AI处理器核100。计算结果指令中还包括计算结果和写回地址,AI处理器核100根据写回地址将计算结果写入内部寄存器中。
在一种实施方式中,如图4所示,输入接口还可以包括多个第二地址判断模块233以及多个第二仲裁模块234,各第二主节点231与各第二地址判断模块233一一对应连接,各第二仲裁模块234分别连接于各第二地址判断模块233,以及各第二仲裁模块234与各第二从节点232一一对应连接。
由此,第二地址判断模块233可以从相连接的第二主节点231中接收对应的计算结果指令sfu_dout,并将接收到的计算结果指令sfu_dout中的指令来源标识与每个相连接的第二从节点232进行比较,以及在比较结果为匹配的情况下,输出第二请求使能有效信号,即req_en2为有效。
在一个示例中,每个第二主节点231中的数据包括结果请求信号req2、第二地址信号addr2、第二数据信号data2和结果响应信号gnt2。其中,第二地址信号addr2包括计算结果指令sfu_dout中的指令来源标识,第二数据信号data2包括计算结果指令sfu_dout中的计算结果和写回地址等。也就是说,每个第二主节点231在收到计算结果指令sfu_dout后,将该计算结果指令sfu_dout中的指令来源标识作为第二主节点231的第二地址信号addr2,将该计算结果指令sfu_dout中的计算结果和写回地址等作为第二主节点231的第二数据信号data2。
每个第二地址判断模块233将与该第二地址判断模块233相连接的第二主节点231的第二地址信号addr2和每个第二从节点232的序号相比较,若匹配,则向连接到对应第二从节点232的第二仲裁模块234输出req_en2为有效的信号(第二请求使能有效信号);若不匹配,则输出req_en2为无效的信号(第二请求使能无效信号)。其中,“匹配”可以为相等。
第二仲裁模块234根据预设的仲裁算法,从多个输出第二请求使能有效信号中确定出第二目标请求使能有效信号,并选通与第二目标请求使能有效信号对应的第二主节点231以及与第二仲裁模块234相连接的第二从节点232。
在一个示例中,每个第二从节点232中的数据包括有效信号vld′和数据信号data″。每个第二从节点232对应一个第二仲裁模块234。第二仲裁模块234接收所有第二主节点231相连接的第二地址判断模块233产生的req_en2信号,并对有效的req_en2信号做仲裁选择,从而从中选通一个第二主节点231,即选通与第二目标请求使能有效信号对应的第二主节点231以及与第二仲裁模块234相连接的第二从节点232。当某个第二主节点231和某个第二从节点232选通后,第二主节点231的信号data2可以赋给第二从节点232的信号data″,并置第二从节点232的vld′信号有效。
如图4和图5所示,输出接口支持N个第二主节点231和M个第二从节点232,则最多同时可以有M(M<N时)或N(M>N时)条通路可以同时选通。如图5所示,有两条路径同时选通,分别是第二主节点1和第二从节点3选通,第二主节点N和第二从节点1选通。
计算部件220的数量可以为N,也可以大于N。例如:在实际使用时发现某类计算类型的使用频率远高于其他计算类型,则可在增加该计算类型相应的计算部件220的数量来增加算力,只要相应地增加第一从节点212和第二主节点231的数量即可。
在一种实施方式中,第二主节点231通过握手协议从相连接的计算部件220获取对应的计算结果指令。例如:第二主节点1接收结果请求信号req2,当经过仲裁,第二从节点3选通第二主节点1时,第二主节点1的指令响应信号gnt2就会有效,即输入req2和输出gnt2为握手信号,表示此次数据传输完成,可以发起下一次数据传输。
传统的AI芯片在实现每类复杂计算指令时,在发送指令请求和写回计算结果阶段都提供了单独的数据缓存通路。当复杂计算指令的计算类型较多时,这些数据缓存通路会占用较大的面积资源,造成资源浪费。并且,为每类SFU指令设置专门的数据通路,则在进行指令扩充时,也需要额外增加相应的数据通路,这样并不利于SFU的扩充和数据通路的复用。
本实施例中的复杂计算装置200可以采用crossbar形式的输入接口210和输出接口230,从而可以降低面积占用,减小AI芯片10的面积;并且,crossbar支持灵活配置,方便适应不同的指令来源(如AI处理器核100)的数量和复杂计算类型数量;进一步地,还可以根据需求灵活扩展计算部件220的数量来提高并发度和算力,从而提升AI芯片10的性能。
图6示出本申请实施例的电子设备的结构示意图。如图6所示,电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602、一个或多个AI芯片10,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
该电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与表示障碍物形状的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
图7示出根据本申请实施例的复杂计算方法,包括:
步骤S701、接收复杂计算指令,并根据各复杂计算指令中的计算类型将各复杂计算指令分别仲裁给对应的计算部件,其中,复杂计算指令中还包括人工智能处理器核的指令来源标识以及用于复杂计算的源操作数;
步骤S702、计算部件从接收到的复杂计算指令中获取源操作数以进行复杂计算,并生成计算结果指令,其中,计算结果指令中包括复杂计算指令中的指令来源标识以及复杂计算的计算结果;
步骤S703、根据各计算结果指令中的指令来源标识将各计算结果指令中的计算结果分别仲裁给对应的指令来源。
在一种实施方式中,本申请实施例的方法可以由上述的复杂计算装置200执行,例如:由输入接口210执行步骤S701,输出接口230执行步骤S703。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。术语“连接”应做广义理解,例如,可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种复杂计算装置,包括输入接口、多个计算部件以及输出接口,其中,
所述输入接口用于接收复杂计算指令,并根据各所述复杂计算指令中的计算类型将各所述复杂计算指令分别仲裁给对应的计算部件,其中,所述复杂计算指令中还包括指令来源标识以及用于复杂计算的源操作数;
各所述计算部件均连接于所述输入接口,所述计算部件用于从接收到的复杂计算指令中获取所述源操作数以进行所述复杂计算,并生成计算结果指令反馈给所述输出接口,其中,所述计算结果指令中包括所述复杂计算指令中的指令来源标识以及所述复杂计算的计算结果;
所述输出接口用于根据各所述计算结果指令中的指令来源标识将各所述计算结果指令中的计算结果分别仲裁给对应的指令来源。
2.根据权利要求1所述的装置,其中,所述输入接口和所述输出接口均为交叉开关阵列型结构。
3.根据权利要求1所述的装置,其中,所述输入接口包括多个第一主节点以及多个第一从节点,各所述第一从节点分别连接于各所述第一主节点,以及各所述第一从节点与各所述计算部件一一对应连接;
所述第一主节点获取复杂计算指令,并根据获取的复杂计算指令中的计算类型,将获取的复杂计算指令仲裁给对应的第一从节点;所述第一从节点用于将接收到的复杂计算指令发送给相连接的计算部件。
4.根据权利要求3所述的装置,其中,所述输入接口还包括多个第一地址判断模块以及多个第一仲裁模块,各所述第一主节点与各所述第一地址判断模块一一对应连接,各所述第一仲裁模块分别连接于各所述第一地址判断模块,以及各所述第一仲裁模块与各所述第一从节点一一对应连接;
所述第一地址判断模块用于从相连接的第一主节点中接收对应的复杂计算指令,并将接收到的复杂计算指令中的指令类型与每个相连接的第一从节点进行比较,以及在比较结果为匹配的情况下,输出第一请求使能有效信号;所述第一仲裁模块用于根据预设的仲裁算法,从多个输出第一请求使能有效信号中确定出第一目标请求使能有效信号,并选通与所述第一目标请求使能有效信号对应的第一主节点以及与所述第一仲裁模块相连接的第一从节点。
5.根据权利要求4所述的装置,其中,所述第一主节点的输出数据包括第一地址信号和第一数据信号,所述第一地址信号包括所述计算类型,所述第一数据信号包括所述指令来源标识和所述源操作数:所述第一地址判断模块用于从相连接的第一主节点中接收对应的第一地址信号,并将接收到的第一地址信号与每个相连接的第一从节点的序号进行比较;所述第一从节点用于从相选通的第一主节点接收对应的第一数据信号。
6.根据权利要求3所述的装置,其中,所述第一主节点通过握手协议接收所述复杂计算指令。
7.根据权利要求1所述的装置,其中,所述输出接口包括多个第二主节点以及多个第二从节点,各所述第二主节点与各所述计算部件一一对应连接,各所述第二从节点分别连接于各所述第二主节点;
所述第二主节点从相连接的计算部件获取对应的计算结果指令,并根据获取的计算结果指令中的指令来源标识将获取的计算结果指令仲裁给对应的第二从节点;所述第二从节点用于将接收到的计算结果指令发送给对应的指令来源。
8.根据权利要求7所述的装置,其中,所述输出接口还包括多个第二地址判断模块以及多个第二仲裁模块,各所述第二主节点与各所述第二地址判断模块一一对应连接,各所述第二仲裁模块分别连接于各所述第二地址判断模块;
所述第二地址判断模块用于从相连接的第二主节点中接收对应的计算结果指令,并将接收到的计算结果指令中的指令来源标识与每个相连接的第二从节点进行比较,以及在比较结果为匹配的情况下,输出第二请求使能有效信号;所述第二仲裁模块用于根据预设的仲裁算法,从多个输出第二请求使能有效信号中确定出第二目标请求使能有效信号,并选通与所述第二目标请求使能有效信号对应的第二主节点以及与所述第二仲裁模块相连接的第二从节点。
9.根据权利要求8所述的装置,其中,所述第二主节点的输出数据包括第二地址信号和第二数据信号,所述第二地址信号包括所述指令来源标识,所述第二数据信号包括所述计算结果:所述第二地址判断模块用于从相连接的第二主节点中接收对应的第二地址信号,并将接收到的第二地址信号与每个相连接的第二从节点的序号进行比较;所述第二从节点用于从相选通的第二主节点接收对应的第二数据信号。
10.根据权利要求7所述的装置,其中,所述第二主节点通过握手协议从相连接的计算部件获取对应的计算结果指令。
11.一种人工智能芯片,包括权利要求1至10任一项所述的复杂计算装置,以及多个与所述复杂计算装置连接的指令来源。
12.根据权利要求11所述的人工智能芯片,所述指令来源包括人工智能处理器核。
13.一种电子设备,包括通信连接的至少一个处理器、至少一个存储器以及至少一个如权利要求11或12所述的人工智能芯片。
14.一种复杂计算方法,包括:
接收复杂计算指令,并根据各所述复杂计算指令中的计算类型将各所述复杂计算指令分别仲裁给对应的计算部件,其中,所述复杂计算指令中还包括指令来源标识以及用于复杂计算的源操作数;
所述计算部件从接收到的复杂计算指令中获取所述源操作数以进行所述复杂计算,并生成计算结果指令,其中,所述计算结果指令中包括所述复杂计算指令中的指令来源标识以及所述复杂计算的计算结果;
根据各所述计算结果指令中的指令来源标识将各所述计算结果指令中的计算结果分别仲裁给对应的指令来源。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612288.3A CN111782580B (zh) | 2020-06-30 | 2020-06-30 | 复杂计算装置、方法、人工智能芯片和电子设备 |
JP2021001829A JP7158510B2 (ja) | 2020-06-30 | 2021-01-08 | 複合計算装置、方法、人工知能チップ、電子設備、及びプログラム |
KR1020210003501A KR102595540B1 (ko) | 2020-06-30 | 2021-01-11 | 복잡 계산 장치, 방법, 인공지능 칩, 전자 기기 및 프로그램 |
US17/149,476 US11782722B2 (en) | 2020-06-30 | 2021-01-14 | Input and output interfaces for transmitting complex computing information between AI processors and computing components of a special function unit |
EP21153232.0A EP3933586A1 (en) | 2020-06-30 | 2021-01-25 | Complex computing device, complex computing method, artificial intelligence chip and electronic apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612288.3A CN111782580B (zh) | 2020-06-30 | 2020-06-30 | 复杂计算装置、方法、人工智能芯片和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782580A true CN111782580A (zh) | 2020-10-16 |
CN111782580B CN111782580B (zh) | 2024-03-01 |
Family
ID=72760414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010612288.3A Active CN111782580B (zh) | 2020-06-30 | 2020-06-30 | 复杂计算装置、方法、人工智能芯片和电子设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11782722B2 (zh) |
EP (1) | EP3933586A1 (zh) |
JP (1) | JP7158510B2 (zh) |
KR (1) | KR102595540B1 (zh) |
CN (1) | CN111782580B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579510A (zh) * | 2020-12-17 | 2021-03-30 | 上海燧原智能科技有限公司 | 一种芯片集群 |
WO2022222756A1 (zh) * | 2021-04-22 | 2022-10-27 | 华为技术有限公司 | 芯片、处理数据的方法和计算机设备 |
CN115905088A (zh) * | 2022-12-27 | 2023-04-04 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0883248A (ja) * | 1994-09-12 | 1996-03-26 | Canon Inc | 情報処理システム及びその方法 |
US20080162873A1 (en) * | 2006-12-28 | 2008-07-03 | Zimmer Vincent J | Heterogeneous multiprocessing |
US20090106467A1 (en) * | 2007-07-20 | 2009-04-23 | Nec Electronics Corporation | Multiprocessor apparatus |
US7742985B1 (en) * | 2003-06-26 | 2010-06-22 | Paypal Inc. | Multicurrency exchanges between participants of a network-based transaction facility |
US20130283016A1 (en) * | 2012-04-18 | 2013-10-24 | Renesas Electronics Corporation | Signal processing circuit |
US20170147345A1 (en) * | 2015-11-19 | 2017-05-25 | Knuedge, Inc. | Multiple operation interface to shared coprocessor |
US20170308411A1 (en) * | 2016-04-20 | 2017-10-26 | Samsung Electronics Co., Ltd | Optimal task scheduler |
WO2018107476A1 (zh) * | 2016-12-16 | 2018-06-21 | 华为技术有限公司 | 访存设备、计算设备和应用于卷积神经网络运算的设备 |
CN110825435A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN110825312A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 数据处理装置、人工智能芯片及电子设备 |
CN110825436A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于人工智能芯片的计算方法和人工智能芯片 |
CN110968532A (zh) * | 2018-09-29 | 2020-04-07 | 上海寒武纪信息科技有限公司 | 数据传输方法及相关产品 |
CN111258950A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0454685A (ja) * | 1990-06-22 | 1992-02-21 | Kobe Steel Ltd | 状熊学習装置及び状態推定装置 |
US5087826A (en) * | 1990-12-28 | 1992-02-11 | Intel Corporation | Multi-layer neural network employing multiplexed output neurons |
JPH05264645A (ja) * | 1992-03-19 | 1993-10-12 | Hitachi Ltd | 絶縁物の劣化推定法 |
US5256911A (en) * | 1992-06-10 | 1993-10-26 | Intel Corporation | Neural network with multiplexed snyaptic processing |
US5371834A (en) * | 1992-08-28 | 1994-12-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Adaptive neuron model--an architecture for the rapid learning of nonlinear topological transformations |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
CN101950282B (zh) | 2010-08-30 | 2012-05-23 | 中国科学院计算技术研究所 | 一种多处理器系统及其同步引擎 |
CN115100016A (zh) | 2015-06-10 | 2022-09-23 | 无比视视觉技术有限公司 | 用于处理图像的图像处理器和方法 |
KR20170015000A (ko) * | 2015-07-31 | 2017-02-08 | 한국전자통신연구원 | 온칩 네트워크 및 이의 통신방법 |
JP6956191B2 (ja) * | 2017-09-07 | 2021-11-02 | パナソニック株式会社 | 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 |
CN109739556B (zh) | 2018-12-13 | 2021-03-26 | 北京空间飞行器总体设计部 | 一种基于多并行缓存交互及计算的通用深度学习处理器 |
-
2020
- 2020-06-30 CN CN202010612288.3A patent/CN111782580B/zh active Active
-
2021
- 2021-01-08 JP JP2021001829A patent/JP7158510B2/ja active Active
- 2021-01-11 KR KR1020210003501A patent/KR102595540B1/ko active IP Right Grant
- 2021-01-14 US US17/149,476 patent/US11782722B2/en active Active
- 2021-01-25 EP EP21153232.0A patent/EP3933586A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0883248A (ja) * | 1994-09-12 | 1996-03-26 | Canon Inc | 情報処理システム及びその方法 |
US7742985B1 (en) * | 2003-06-26 | 2010-06-22 | Paypal Inc. | Multicurrency exchanges between participants of a network-based transaction facility |
US20080162873A1 (en) * | 2006-12-28 | 2008-07-03 | Zimmer Vincent J | Heterogeneous multiprocessing |
US20090106467A1 (en) * | 2007-07-20 | 2009-04-23 | Nec Electronics Corporation | Multiprocessor apparatus |
US20130283016A1 (en) * | 2012-04-18 | 2013-10-24 | Renesas Electronics Corporation | Signal processing circuit |
US20170147345A1 (en) * | 2015-11-19 | 2017-05-25 | Knuedge, Inc. | Multiple operation interface to shared coprocessor |
US20170308411A1 (en) * | 2016-04-20 | 2017-10-26 | Samsung Electronics Co., Ltd | Optimal task scheduler |
WO2018107476A1 (zh) * | 2016-12-16 | 2018-06-21 | 华为技术有限公司 | 访存设备、计算设备和应用于卷积神经网络运算的设备 |
CN110825435A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 用于处理数据的方法和装置 |
CN110825312A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 数据处理装置、人工智能芯片及电子设备 |
CN110825436A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于人工智能芯片的计算方法和人工智能芯片 |
CN110968532A (zh) * | 2018-09-29 | 2020-04-07 | 上海寒武纪信息科技有限公司 | 数据传输方法及相关产品 |
CN111258950A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579510A (zh) * | 2020-12-17 | 2021-03-30 | 上海燧原智能科技有限公司 | 一种芯片集群 |
WO2022222756A1 (zh) * | 2021-04-22 | 2022-10-27 | 华为技术有限公司 | 芯片、处理数据的方法和计算机设备 |
CN115905088A (zh) * | 2022-12-27 | 2023-04-04 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
CN115905088B (zh) * | 2022-12-27 | 2023-07-14 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20210406032A1 (en) | 2021-12-30 |
US11782722B2 (en) | 2023-10-10 |
CN111782580B (zh) | 2024-03-01 |
JP7158510B2 (ja) | 2022-10-21 |
JP2022013607A (ja) | 2022-01-18 |
KR20220002053A (ko) | 2022-01-06 |
KR102595540B1 (ko) | 2023-10-30 |
EP3933586A1 (en) | 2022-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3933586A1 (en) | Complex computing device, complex computing method, artificial intelligence chip and electronic apparatus | |
US10210121B2 (en) | System for switching between a single node PCIe mode and a multi-node PCIe mode | |
US7945764B2 (en) | Processing unit incorporating multirate execution unit | |
US8458244B2 (en) | Performing a local reduction operation on a parallel computer | |
CN109074281B (zh) | 图形处理器任务的分配方法和装置 | |
CN103020002A (zh) | 可重构多处理器系统 | |
US20110173357A1 (en) | Arbitration in crossbar interconnect for low latency | |
KR20210002646A (ko) | Gpu를 위한 피드백 기반 분할 작업 그룹 디스패치 | |
US9509562B2 (en) | Method of providing a dynamic node service and device using the same | |
JP2022033688A (ja) | メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム | |
CN116028413A (zh) | 一种总线仲裁器、总线仲裁的方法、装置及介质 | |
RU183879U1 (ru) | Процессорный модуль | |
US20160378179A1 (en) | Automated peripheral device handoff based on eye tracking | |
JPH0689259A (ja) | 分散プログラム方式優先順位アービトレーション方法およびシステム | |
Jeemon | Pipelined 8-bit RISC processor design using Verilog HDL on FPGA | |
US20230063751A1 (en) | A processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process | |
CN111209230B (zh) | 数据处理装置、方法及相关产品 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
Rettkowski et al. | Application-specific processing using high-level synthesis for networks-on-chip | |
CN112084071A (zh) | 一种计算单元运算加固方法、并行处理器及电子设备 | |
KR20240041159A (ko) | Cpu-gpu 협업 시스템 및 방법 | |
Liao et al. | A SystemC-based performance evaluation framework for dynamically reconfigurable SoC | |
Shan et al. | Fast Energy-Optimal Multikernel DNN-Like Application Allocation on Multi-FPGA Platforms | |
CN111209245B (zh) | 数据处理装置、方法及相关产品 | |
Dongare et al. | Design of Shared Resource Based Multicore Embedded Controller Using LEON Processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211013 Address after: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085 Applicant after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |