CN110070182B - 适合人工智能的平台芯片及其制造和设计方法 - Google Patents
适合人工智能的平台芯片及其制造和设计方法 Download PDFInfo
- Publication number
- CN110070182B CN110070182B CN201910257511.4A CN201910257511A CN110070182B CN 110070182 B CN110070182 B CN 110070182B CN 201910257511 A CN201910257511 A CN 201910257511A CN 110070182 B CN110070182 B CN 110070182B
- Authority
- CN
- China
- Prior art keywords
- module
- function
- mpga
- fpga
- functions
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06N3/065—Analogue means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种集成FPGA和人工智能AI模块的***芯片及其设计方法。在实施例中,***芯片包括:AI模块,包括排列成二维阵列的多个处理单元,各处理单元能够完成逻辑和/或乘加运算;FPGA模块;接口模块,用于将FPGA模块和AI模块连通;其中,AI模块和FPGA模块具有各自的绕线资源。将FPGA与AI模块集成在同一芯片上时,AI模块的输出/输入信号可以很好的找到相应的FPGA连接点。FPGA模块可以高速提供大量的数据到AI模块,配合其高带宽处理能力。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种适合人工智能的平台芯片及其制造和设计方法。
背景技术
近年来,人工智能迎来一波发展浪潮。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
图1显示一个常见的支持人工智能功能卷积神经网络(Convolutional NeuralNetwork,CNN)的主要功能模块图。如图1中,卷积模块负责卷积运算属於CNN的核心运算。其所需输入包括数据Data,权重Weight皆由控制模块提供。数据及权重经卷积模块卷积计算后,结果再经过ReLU(线性整流函数,Rectified Linear Unit,又称修正线性单元)模块,和池化Pooling模块操作后,再送回控制模块。以完成CNN人工智能其余必要的步骤。
由于人工智能模块的需求不断变化,需要不断更新AI模块。芯片制造成本和芯片的量产数量有直接的关系。因此,有降低AI芯片制造成本以适应新需求的必要。
发明内容
根据本申请的第一方面,提供一种人工智能AI平台芯片,包括:MPGA模块,具有若干个基本单元;其中,基本单元数为实现多个AI功能中各AI功能的卷积子模块所需要取用的最大数;其中,多个AI功能包括第一AI功能;通过二次设计和制造至少一个对应于所述若干个基本单元之间连线的金属层,使MPGA模块实现第一AI功能的卷积子模块;FPGA模块,经配置实现第一AI功能的除卷积子模块以外的其它子模块。
根据第二方面,提供一种人工智能AI芯片的设计方法,其特征在于,AI芯片包括MPGA模块和FPGA模块,所述方法包括:收集平台要实现的多个AI功能,对各AI功能的卷积子模块列出所需基本单元的种类和个数;其中,多个AI功能包括第一AI功能;设计并且制造MPGA模块;其中,MPGA模块具有若干个基本单元;其中,基本单元数为实现多个AI功能的卷积子模块所需要取用的最大数;通过设计并且制造至少一个对应于所述若干个基本单元之间连线的金属层,使MPGA模块实现所述第一AI功能所对应的卷积子模块;配置FPGA模块,使得其实现第一AI功能的除卷积子模块以外的其它AI子模块。
根据本申请,在设计和/或制造人工智能时,把卷积子模块的功能由SOC***芯片内的MPGA实现,其它的子模块,诸如数据、权重、控制等,由FPGA实现。若要实现不同的人工智能功能时,将新的功能实现在MPGA即可。基于使用MPGA只需要更改部分金属层的特性,新的AI功能可以快速地在此平台芯片上实现。
附图说明
图1显示一个常见的支持人工智能功能卷积神经网络的主要功能模块图;
图2示意了本申请的实现AI模块的基本思路;
图3是体现本申请思路的平台芯片的结构图;
图4是FPGA电路的结构示意图;
图5是MPGA模块的结构示意图;
图6是处理单元的示意图;
图7和图8示意了两种不同的AI功能。
具体实施方式
为使本发明实施例的技术方案以及优点表达的更清楚,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
在本申请的描述中,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
人工智能(AI)模块可实现或加速经预先选定的特定AI功能,它包括人工智能(Artificial Intelligence,AI)、深度学习(Deep Learning,DL)、机器学习(MachineLearning,ML)等各种算法或加速算法中某一步骤的特定功能(例如卷积Convolution,矩阵Matrix/张量运算Tensor Operation等)。人工智能(AI)部分包含由多个功能模块(FU)组成的阵列。
图2的上半部分是AI模块的结构示意图。
AI模块包括卷积层,通过卷积层,训练不同的卷积核来提取数据中隐含的模式;CNN训练得到的是滤波器-卷积核,本质上是对于某种特定的模式有响应,反之无响应,所以全卷积一直到最后一层,响应最强的特征图。
人工智能模块包括池化层(Pooling),使用卷积核提取的大量特征,产生超高的维度,面临着表示困难的问题,且直接叠加的卷积层会产生更庞大的卷积特征集合。Pooling层一般作为显著性选取和降维的作用存在。
人工智能模块包括激活函数层,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。ReLu是一种重要的激活函数。
人工智能模块包括RAM,用于存储待处理数据、中间过程数据和最终的处理数据。还可以通过DMA进行数据的读取和写入。
人工智能模块包括控制器,用于对上述各操作进行控制。
当然,本领域的技术人员意识到,图2的AI模块仅属举例,其它类型的AI模块也是可取的。
根据本申请,在设计和/或制造人工智能时,把卷积子模块的功能由SOC***芯片内的MPGA实现,其它的子模块,诸如数据DATA、权重、控制等,由FPGA实现。图2示意了本申请构思的实现AI模块的基本思路。
若要实现不同的人工智能功能时,将新的功能实现在MPGA(掩模可编程门阵列,Mask Programmable Gate Array)即可。基于使用MPGA只需要更改部分金属层的特性,新的AI功能可以快速地在此平台芯片上实现。
由于这些金属层是在芯片制造过程中实现。故MPGA欲实现的功能必需在流片前确定,经由设计流程,将此MPGA部分加入流片的数据库,用以制成光罩,供芯片制造所用。
图3是体现本申请思路的平台芯片的结构图。在该平台芯片上同时集成有FPGA和MPGA模块。利用该平台芯片适合实现多种不同的人工智能功能。
平台设计制造流程如下。
1.平台芯片预制。
首先,定义全片,包括FPGA、IO、接口(interface)及MPGA。其中,MPGA收集平台要实现的各种AI功能,对每一个AI功能列出所需单元的种类和个数;在MPGA模块上放置每种单元,其个数为各功能所需要取用的最大数。
然后,根据全片FPGA+MPGA+IO+接口定义,按照标准流程设计完成版图、光罩设计、制造各层次对应的光罩。此时,MPGA部分只有基本单元阵列信息,各单元间的连线信息从缺,以致特定金属层信息不全,无法制造出完整的光罩。换言之,在平台芯片预制中,特定金属层无法制造。
此外,在平台上实现多个不同功能AI模块时,由于芯片上SOC其它部分的电路保持不变,与AI模块的连接点也不变,输入输出的方向也不变。在实现新的AI模块功能时,这些连接点可视为一种IO约束。这个约束需要应用在设计新的AI模块。
这些连接点一般称为虚拟Virtual IO。由于不同AI模块实现,所需用的VirtualIO点的数目不一,方向(输入或输出)亦不一。故此,在设计时,要预留最大数目的输入、最大数目的输出,以保证后续实现不同AI模块功能时,输出、输入条件可以满足。
在工厂流片时,将圆(芯)片Wafer用已有光罩,按一般流程开始制造。到特定金属层前停止,得到半成品芯片。将其存库备用。
2.AI功能实现
选定在MPGA模块内欲实现的功能。
将功能描述成由MPGA基本单元组成的网表。
网表各单元映射到MPGA资源,摆放好各单元,并将其连线用指定的金属线层完成。经过布局、布线得到版图信息。
利用新加金属线层连线信息,修改原有版图数据库,更新对应金属层次,得到特定金属层完整的信息,据以制造所需特定金属层的光罩。
3.二次制造
由库存取出尚未走完制程的预制半成品芯圆片Wafer,根据新的光罩,制造特定的金属层。
继续完成余下的芯圆片制造工序后,再将芯圆片进行下一步切割,封装,测试等标准流程。
图4是FPGA电路的结构示意图。如图4所示,FPGA电路可包含有多个可编程逻辑模块(LOGIC)、嵌入式存储块(EMB)、乘累加器(MAC)等模块和相应的绕线(XBAR)。当然,FPGA电路还设有时钟/配置模块(支干seam/主干spine)等相关资源。若需要EMB或MAC模块时,因其面积比PLB大许多,故以此EMB/MAC模块取代若干PLB模块。
LOGIC模块可以包含,例如,8个6输入查找表,18个寄存器。EMB模块可以是,例如,36k bit或2个18k bit的存储单元。MAC模块可以是,例如,25x18乘法器,或2个18x18乘法器。FPGA阵列中,LOGIC、MAC、EMB各模块数量的占比并无限制,阵列的大小也根据需要,在设计时由实际应用决定。
绕线资源XBAR是各模块间互联的接点,均匀地分布在FPGA模块内。FPGA模块内所有的资源,PLB、EMB、MAC、IO相互之间的绕线都是经有一个相同的界面XBAR单元来实现。由绕线方式来看,整个阵列是相同一致,整齐排列的XBAR单元形成网格,将FPGA内所有模块相连。
FPGA模块可实现逻辑、计算、控制等各种功能。FPGA利用小型查找表(例如,16×1RAM)来实现组合逻辑,各查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能。
在本申请中,FPGA模块可以实现AI模块所需要的数据DATA、权重、控制等功能。
应用FPGA时,用户先将所欲实现的功能以RTL描述。再用相应的软件工具将RTL文件加以编译,过程包括综合、布局、布线、码流生成等步骤,最后转化成码流文件。将此码流输入FPGA以对内部的资源进行配置。如此配置后的FPGA即可实现用户以RTL设计的功能。
图5是MPGA模块的结构示意图。如图5所示,将MPGA在与非(NAND)二维阵列的基础上***适当比例数目的ALU(例如,8位)单元。此ALU可实现不同位元的AND,OR,NOT,XOR,XNOR,SHL,SHR,ADD,CNT等基本功能。比如,常用的MULT 8功能可由多个ALU当成ADD功能而组合实现。
图6是处理单元的示意图。如图6所示,上方显示一个NAND2与非门的阵列。将锁存(Latch)阵列模块加上某种连线,即可实现一种选定的功能,如SR Latch。若要实现不同功能,只需改变连线,即可实现MUX2功能。在此例中,这些连线(为区别对待实线,断续线),实线可代表第3层金属线(Metal3),断续线可代表第四层金属线(Metal 4)。在芯片制造过程中,只要改变这些金属层(及其相关的穿孔VIA层)即可制出不同功能的芯片。
图7和图8示意了两种不同的AI功能。图7所示的AI模块中,数据可以沿两个维度的不同维度双向流动,AI模块的基本处理单元包括可编程功能单元PFU,PFU实现各种功能,一般包括逻辑、乘法、加法等运算,比如乘、加、减、计数(加一、减一)、异或XOR、移位SHIFT、旋转ROTATE、比较等等。基本处理单元还包括大量的选通复用单元MUX、以及寄存器REG。
图8所示的AI模块中,数据可以沿两个维度的不同维度脉动方式流动。其AI模块的基本处理单元包括乘法器、加法器、系数存储器、REG等等。
显然,图7和图8的AI模块皆可以用MPGA来实现。
在设计平台***芯片时,预先考虑各种要支持的AI模块功能,选取合适大小MPGA,配置合适数量的存储器Memory、寄存器Register,逻辑Logic、加法器Adder,乘法器Multiplier等各种资源,就可使各个要支持的AI模块功能都能在此平台,加上所需的绕线层实现。充分展现平台芯片的优点:低成本,快速实现,高弹性的产品平台。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种人工智能AI平台芯片,包括:
掩模可编程门阵列MPGA模块,具有若干个基本单元,所述基本单元至少包括可编程功能单元PFU、选通复用单元MUX、寄存器REG、乘法器、加法器、系数存储器;其中,基本单元数为实现多个AI功能中各AI功能的卷积子模块所需要取用的最大数;其中,多个AI功能包括第一AI功能;通过二次设计和制造至少一个对应于所述若干个基本单元之间连线的金属层,使MPGA模块实现第一AI功能的卷积子模块;
现场可编程阵列FPGA模块,经配置实现第一AI功能的除卷积子模块以外的其它子模块。
2.一种人工智能AI芯片的设计方法,其特征在于,AI芯片包括MPGA模块和FPGA模块,所述方法包括:
收集平台要实现的多个AI功能,对各AI功能的卷积子模块列出所需基本单元的种类和个数;其中,多个AI功能包括第一AI功能;
设计并且制造MPGA模块;其中,MPGA模块具有若干个基本单元,所述基本单元至少包括可编程功能单元PFU、选通复用单元MUX、寄存器REG、乘法器、加法器、系数存储器;其中,基本单元数为实现多个AI功能的卷积子模块所需要取用的最大数;
通过设计并且制造至少一个对应于所述若干个基本单元之间连线的金属层,使MPGA模块实现所述第一AI功能所对应的卷积子模块;
配置FPGA模块,使得其实现第一AI功能的除卷积子模块以外的其它AI子模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257511.4A CN110070182B (zh) | 2019-04-01 | 2019-04-01 | 适合人工智能的平台芯片及其制造和设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257511.4A CN110070182B (zh) | 2019-04-01 | 2019-04-01 | 适合人工智能的平台芯片及其制造和设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110070182A CN110070182A (zh) | 2019-07-30 |
CN110070182B true CN110070182B (zh) | 2021-08-24 |
Family
ID=67366830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910257511.4A Active CN110070182B (zh) | 2019-04-01 | 2019-04-01 | 适合人工智能的平台芯片及其制造和设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110070182B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111753485B (zh) * | 2020-06-30 | 2022-02-15 | 无锡中微亿芯有限公司 | 基于fpga的掩膜可编程逻辑门阵列定制方法 |
JP2023538870A (ja) * | 2020-08-14 | 2023-09-12 | オラクル・インターナショナル・コーポレイション | クラウドシェルのインスタンスにわたってデータを永続化するための技法 |
CN113935479A (zh) | 2021-10-08 | 2022-01-14 | 上海科技大学 | 可用于人工智能物联网的高能效二值神经网络加速器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE45110E1 (en) * | 2006-03-20 | 2014-09-02 | Raminda Udaya Madurawe | MPGA products based on a prototype FPGA |
CN107705328A (zh) * | 2016-08-09 | 2018-02-16 | 康耐视公司 | 用于3d对准算法的平衡探针位置选择 |
CN107704252A (zh) * | 2017-10-20 | 2018-02-16 | 北京百悟科技有限公司 | 一种向用户提供人工智能平台的方法及*** |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
CN107888904A (zh) * | 2016-09-30 | 2018-04-06 | 三星电子株式会社 | 用于处理图像的方法和支持该方法的电子装置 |
CN108376232A (zh) * | 2018-01-04 | 2018-08-07 | 北京星衡科技有限公司 | 一种用于遥感影像的自动解译的方法与装置 |
JP2019033233A (ja) * | 2017-08-10 | 2019-02-28 | 株式会社半導体エネルギー研究所 | 半導体装置、および電子機器 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、***、存储介质、终端 |
CN109493300A (zh) * | 2018-11-15 | 2019-03-19 | 湖南鲲鹏智汇无人机技术有限公司 | 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10656962B2 (en) * | 2016-10-21 | 2020-05-19 | International Business Machines Corporation | Accelerate deep neural network in an FPGA |
-
2019
- 2019-04-01 CN CN201910257511.4A patent/CN110070182B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE45110E1 (en) * | 2006-03-20 | 2014-09-02 | Raminda Udaya Madurawe | MPGA products based on a prototype FPGA |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
CN107705328A (zh) * | 2016-08-09 | 2018-02-16 | 康耐视公司 | 用于3d对准算法的平衡探针位置选择 |
CN107888904A (zh) * | 2016-09-30 | 2018-04-06 | 三星电子株式会社 | 用于处理图像的方法和支持该方法的电子装置 |
JP2019033233A (ja) * | 2017-08-10 | 2019-02-28 | 株式会社半導体エネルギー研究所 | 半導体装置、および電子機器 |
CN107704252A (zh) * | 2017-10-20 | 2018-02-16 | 北京百悟科技有限公司 | 一种向用户提供人工智能平台的方法及*** |
CN108376232A (zh) * | 2018-01-04 | 2018-08-07 | 北京星衡科技有限公司 | 一种用于遥感影像的自动解译的方法与装置 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、***、存储介质、终端 |
CN109493300A (zh) * | 2018-11-15 | 2019-03-19 | 湖南鲲鹏智汇无人机技术有限公司 | 基于fpga卷积神经网络的航拍图像实时去雾方法及无人机 |
Non-Patent Citations (3)
Title |
---|
FPGA MODELLING OF NEURON FOR FUTURE ARTIFICIAL INTELLIGENCE APPLICATIONS;Korani Ravinder等;《International Journal of Advanced Research in Computer and Communication Engineering》;20131231;第4763-4767页 * |
知识可编程智能芯片***: 概念、架构与展望;张俊等;《模式识别与人工智能》;20181031;第31卷(第10期);第869-876页 * |
粒子滤波器算法的硬件实现;薄超;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20110430(第04期);第I135-255页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110070182A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110070182B (zh) | 适合人工智能的平台芯片及其制造和设计方法 | |
Luu et al. | Architecture description and packing for logic blocks with hierarchy, modes and complex interconnect | |
CN109409510B (zh) | 神经元电路、芯片、***及其方法、存储介质 | |
JP2001504958A (ja) | ロジックデバイスのアレイを構成するための方法およびシステム | |
WO1996004608A1 (en) | System and method for simulating discrete functions using ordered decision arrays | |
Kubica et al. | Decomposition of multi-output functions oriented to configurability of logic blocks | |
CN110033079A (zh) | 深度神经网络的硬件实现的端到端数据格式选择 | |
CN110955861A (zh) | 用于高带宽、低延迟机器学习的电路 | |
US11275998B2 (en) | Circuitry for low-precision deep learning | |
Soni | VLSI Implementation of a Wormhole Runtime Reconfigurable Processor | |
US5574655A (en) | Method of allocating logic using general function components | |
Barkalov et al. | Logic synthesis for finite state Machines Based on Linear Chains of States | |
Glette et al. | Lookup table partial reconfiguration for an evolvable hardware classifier system | |
Fukushi et al. | A self-reconfigurable hardware architecture for mesh arrays using single/double vertical track switches | |
US8225245B2 (en) | Method of implementing physically realizable and power-efficient clock gating in microprocessor circuits | |
CN111027669A (zh) | 在现场可编程门阵列上实现深度神经网络的方法及装置 | |
CN115167815A (zh) | 乘加器电路、芯片及电子设备 | |
Chen et al. | R-accelerator: An RRAM-based CGRA accelerator with logic contraction | |
Ye | Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits | |
Mehta et al. | A low-energy reconfigurable fabric for the supercisc architecture | |
Barkalov et al. | Reducing LUT count for Mealy FSMs with transformation of states | |
Owens et al. | Implementing a family of high performance, micrograined architectures | |
US11467804B2 (en) | Geometric synthesis | |
CN109902836A (zh) | 人工智能模块的故障容错方法及***芯片 | |
Yao et al. | Efficient design methodology for adaptive system based on direct bitstream evolution |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |