CN101813966B - 一种芯片复位方法、芯片和双倍速率存储器系统 - Google Patents

一种芯片复位方法、芯片和双倍速率存储器系统 Download PDF

Info

Publication number
CN101813966B
CN101813966B CN2010101398319A CN201010139831A CN101813966B CN 101813966 B CN101813966 B CN 101813966B CN 2010101398319 A CN2010101398319 A CN 2010101398319A CN 201010139831 A CN201010139831 A CN 201010139831A CN 101813966 B CN101813966 B CN 101813966B
Authority
CN
China
Prior art keywords
reset
signal
chip
rate memory
physical layer
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
Application number
CN2010101398319A
Other languages
English (en)
Other versions
CN101813966A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2010101398319A priority Critical patent/CN101813966B/zh
Publication of CN101813966A publication Critical patent/CN101813966A/zh
Application granted granted Critical
Publication of CN101813966B publication Critical patent/CN101813966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种芯片复位方法、芯片和双倍速率存储器系统,包括,接收输入信号,生成复位信号;对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并根据复位信号和处理器写入的指示信号,生成复位控制信号;根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。实施本发明实施例,可以很好的避免硬复位情况下片外DDR器件挂死的问题,并且仅对硬件进行改进,在复位时不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,缩短了复位时间。

Description

一种芯片复位方法、芯片和双倍速率存储器系统
技术领域
本发明涉及电子领域,具体涉及一种芯片复位方法、芯片和双倍速率存储器系统。
背景技术
DDR SDRAM(Double Data Rate Synchronous Dynamic Random AccessMemory,双倍数据速率同步动态随机存储器)简称双倍速率存储器或DDR器件,DDR SDRAM是在SDRAM(Synchronous Dynamic Random AccessMemory,同步动态随机存储器)发展而来的,能够在时钟上升沿和下降沿各传输一次数据,其传输速率快、容量大而且价格便宜,能够很好的满足大量数据缓存的需求。DDR SDRAM主要应用于数据的高速大容量存储。双倍速率存储器系统是由DDR SDRAM和访问DDR SDRAM的芯片组成,该芯片主要由DDRC(DDR Controller,双倍数据速率控制器)、DDR PHY(DDR PhysicalLayer,双倍数据速率物理层)和其他功能模块组成。
目前,在芯片重新加载软件时,需要对芯片进行复位操作,该复位芯片的方法为,采用芯片的复位管脚输入全局复位信号,根据全局复位信号,对芯片的所有模块执行复位操作。
但是,芯片在读写访问DDR器件时,若芯片所有模块被复位,芯片中的DDR PHY提供时钟的PLL(Phase Locked Loop,锁相环)也会被复位,PLL复位的时候,芯片的时钟和DDR器件的时钟都可能会丢失,由于时钟异常很可能导致DDR器件内的工作状态死锁,进而导致整个双倍速率存储器系统挂死,为了保证DDR器件不挂死,可以在复位之前,对DDR的硬件模块和软件模块进行软复位,从而防止芯片在硬复位时访问DDR(芯片不访问DDR器件时进行复位操作不会导致DDR器件挂死),这样可以有效避免复位操作时,DDR器件死锁的问题。
在对现有技术的研究和实践中,本发明的发明人发现,现有技术的芯片复位方法中解决因复位而可能产生死锁问题需要软件干预,在硬复位之前要进行软复位,增加了操作的复杂性,软复位的响应时间较长,复位不够及时,增加了软硬件交互风险。
发明内容
本发明实施例提供一种芯片复位方法、芯片和双倍速率存储器系统。
一种芯片复位方法,包括:
接收输入信号,并判断输入信号是否通过全复位管脚输入;
在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号;
对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并根据复位信号和处理器写入的指示信号,生成复位控制信号;
根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。
相应地,一种芯片,包括:
复位处理模块,用于接收输入信号,并判断输入信号是否通过全复位管脚输入,在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号;
复位控制模块,用于根据复位信号和处理器写入的指示信号,生成复位控制信号;
执行模块,用于对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,或根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。
相应地,一种双倍速率存储器系统,包括:
芯片,用于接收输入信号,并判断输入信号是否通过全复位管脚输入,在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号,根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。
双倍速率存储器,用于根据双倍速率存储控制器物理层的时钟信号,传输数据给芯片。
本发明实施例通过生成复位信号,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号,在复位控制信号指示要复位DDR PHY时,对双倍速率存储控制器物理层执行复位操作,通过对硬件进行改进,处理器的指示信号灵活控制是否要对DDR PHY进行复位,很好的避免了硬复位情况下片外DDR器件挂死的问题,并且仅对硬件进行改进,没有使用软件,在复位时,不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,节约了复位时间,只需要更改处理器写入的指示信号来控制复位情况,操作简单,容易推广。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明芯片复位方法的第一实施例流程示意图;
图2是本发明芯片复位方法的第二实施例流程示意图;
图3是本发明芯片的第三实施例结构示意图;
图4是本发明双倍速率存储器系统的结构示意图。
具体实施方式
本发明实施例提供一种能够选择性复位芯片中的DDR PHY的芯片复位方法和芯片,已经相应的双倍速率存储器系统以下分别进行详细说明。
参见图1,是本发明提供的芯片复位方法的第一实施例流程图:
步骤101,外部信号采用复位管脚输入时,生成复位信号。
步骤102,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作。
步骤103,根据复位信号和处理器写入的指示信号,生成复位控制信号。指示信号是根据处理器的写入序列输出的信号,该信号指示是否复位DDRPHY。根据该信号和复位信号,可以生成一个控制DDR PHY是否复位的复位控制信号。如果指示信号指示不复位DDR PHY,那么根据该信号和复位信号而生成的复位控制信号控制不复位DDP PHY,反之,则复位DDR PHY。
步骤104,根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。在复位控制信号指示不复位DDR PHY时,不执行复位操作。
本发明实施例根据输入信号,生成复位信号或全复位信号;对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号;根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作,通过对硬件进行改进,处理器的指示信号灵活控制是否要对DDR PHY进行复位,在很好的避免了硬复位情况下片外DDR器件挂死的问题的同时,不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,节约了复位时间,操作简单,容易推广。
为便于理解,下面对本发明实施例中的芯片复位方法进行详细描述,请参阅图2,本发明实施例中芯片复位方法第二实施例与第一实施例的最大不同是:可以在对整个芯片复位和控制DDR PHY复位之间进行选择。
步骤201,判断输入信号是否采用芯片全复位输入管脚输入,在判断为是时,进入步骤202,在判断为否时,进入步骤204。
步骤202,生成能复位芯片所有模块的全复位信号,
步骤203,对所有模块执行复位操作,结束流程。
步骤204,生成复位除DDR PHY以为的功能模块的复位信号。
步骤205,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作。
步骤206,接收处理器的写入序列,生成指示信号,所述指示信号时一个高电平或者低电平;
步骤207,对复位信号和发自处理器的指示信号(高电平或者低电平)执行逻辑或操作从而生成复位控制信号,该复位控制信号指示是否需要复位双数据速率物理层,在指示信号是高电平时,与复位信号进行逻辑或操作后,生成一个不复位DDR PHY的复位控制信号,在指示信号是低电平时,该低电平和复位信号进行逻辑或操作,就会生成一个复位DDR PHY的复位控制信号。
步骤208,根据所述复位控制信号,对双倍速率存储控制器物理层执行或不执行复位操作。
本发明实施例根据输入信号,生成复位信号或全复位信号;对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号;根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作,通过对硬件进行改进,处理器的指示信号灵活控制是否要对DDR PHY进行复位,在很好的避免了硬复位情况下片外DDR器件挂死的问题的同时,不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,节约了复位时间,操作简单,容易推广。并且,还可以再全复位和部分复位之间进行选择,在需要复位所有模块时,采用全复位管脚输入,使得复位操作更加灵活方便。
下面对用于执行上述芯片复位方法的芯片进行说明,其结构示意图参考图3。该芯片包括:
复位处理模块41,用于根据输入信号的输入管脚,生成复位信号或全复位信号。在输入管脚是全复位管脚时,生成能复位所有模块的全复位信号,在输入管脚是部分复位管脚时,生成能复位除DDR PHY以外的功能模块的复位信号。
复位控制模块42,用于根据复位信号和处理器写入的指示信号,生成复位控制信号。处理器写入的指示信号指示是否对DDR PHY进行复位。
执行模块43,用于对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,或根据所述复位控制信号,对双倍速率存储控制器物理层执行或不执行复位操作。
优选的,该复位控制模块42包括:
控制寄存器421,用于接收处理器的写入序列,生成一个高电平或者低电平的指示信号。该控制寄存器只能被全复位信号复位,复位值为0,可以被处理器进行读写操作。
处理单元422,用于对复位信号和发自处理器的指示信号进行逻辑或操作,生成复位控制信号,该复位控制信号指示是否需要复位双数据速率物理层。在指示信号是高电平时,与复位信号进行逻辑或操作后,处理单元422生成一个不复位DDR PHY的复位控制信号,在指示信号是低电平时,该低电平和复位信号进行逻辑或操作,处理单元422就会生成一个复位DDR PHY的复位控制信号。
优选的,该复位处理模块41包括:
判断单元411,判断输入信号是否由全复位管脚输入;
生成单元412,在判断为是时,生成能复位芯片所有模块的全复位信号,在判断为否时,生成复位除DDR PHY以外的功能模块的复位信号。
本发明实施例根据输入信号,生成复位信号或全复位信号;对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号;根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作,通过对硬件进行改进,处理器的指示信号灵活控制是否要对DDR PHY进行复位,在很好的避免了硬复位情况下片外DDR器件挂死的问题的同时,不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,节约了复位时间,操作简单,容易推广,并且,还可以在全复位操作和部分复位操作之间进行选择,需要复位所有模块时,采用全复位管脚输入,使得复位操作更加灵活方便。
下面对响应的双数据速率存储器系统进行说明,参见图4,是该双倍速率存储器系统的结构示意图,该系统包括:
芯片1,根据输入信号,生成复位信号,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号,根据所述复位控制信号,对双倍速率存储控制器物理层执行或不执行复位操作。芯片1的各功能模块的结构和功能在上面已作详细描述,在此不再赘述。
双倍速率存储器2,用于根据双倍速率存储控制器物理层的时钟信号,传输数据给芯片。
为了更加清楚说明本实施例,下面对上述实施例的应用场景进行说明。
应用场景1,芯片包括两个复位管脚,一个能够复位所有模块的全复位管脚(power-on-reset),一个复位除DDR PHY以外的功能模块的部分复位管脚(warm-reset),当输入信号通过全复位管脚输入,全芯片复位。通过部分复位管脚输入,芯片内部的DDR PHY不被复位。在为了不丢失DDR PHY的PLL中的时钟时,要复位该芯片的步骤为:
可同样参见图2和图4:
步骤201,判断输入信号采用芯片的部分复位管脚输入,进入步骤204。
步骤204,复位处理模块41生成复位除DDR PHY以外的功能模块的复位信号。
步骤205,执行模块43对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作。
步骤206,复位控制模块42接收处理器的写入序列,生成指示信号,所述指示信号时一个高电平。
步骤207,复位控制模块42对复位信号和发自处理器的指示信号(高电平)进行逻辑或操作;生成复位控制信号,该复位控制信号指示不复位双数据速率物理层。
步骤208,执行模块43根据所述复位控制信号,对双倍速率存储控制器物理层不执行复位操作。
应用场景2,在DDR PHY本身出现异常需要进行复位时,该芯片的复位操作为:
对应用场景1中处理器写入的指示信号进行修改,例如,指示信号为一个低电平,这样和复位信号进行逻辑或操作后,复位控制信号就可以对DDR PHY进行复位。其他步骤如应用场景1。
应用场景2的情况还可以通过进行全复位操作来执行,参见图2和图4:
步骤201,输入信号的复位管脚为全复位管脚,进入步骤202。
步骤202,复位处理模块41生成复位所有模块的全复位信号。
步骤203,执行模块43复位芯片中所有模块(包括DDR PHY模块)。
本发明实施例根据输入信号,生成复位信号或全复位信号;对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号;根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作,通过对硬件进行改进,处理器的指示信号灵活控制是否要对DDR PHY进行复位,在很好的避免了硬复位情况下片外DDR器件挂死的问题的同时,不需要软件和硬件的交互,避免了软件和硬件的交互风险,提高了芯片的稳定性,避免了软复位的长时间响应,节约了复位时间,操作简单,容易推广。并且,还可以在全复位操作和部分复位操作之间进行选择,需要复位所有模块时,采用全复位管脚输入,使得复位操作更加灵活方便。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的芯片复位方法、芯片和双数据速率存储器系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种芯片复位方法,其特征在于,包括:
接收输入信号,并判断输入信号是否通过全复位管脚输入;
在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号;
对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并根据复位信号和处理器写入的指示信号,生成复位控制信号;
根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。
2.如权利要求1所述的芯片复位方法,其特征在于,所述根据复位信号和处理器写入的指示信号,生成复位控制信号包括:
接收处理器的写入序列,生成指示信号;
对指示信号和复位信号执行逻辑或操作,生成复位控制信号,所述复位控制信号指示是否需要复位双倍数据速率存储控制器物理层。
3.如权利要求2所述的芯片复位方法,其特征在于,所述指示信号是高电平或低电平,指示是否复位双倍速率存储控制器物理层。
4.一种芯片,其特征在于,包括:
复位处理模块,用于接收输入信号,并判断输入信号是否通过全复位管脚输入,在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号;
复位控制模块,用于根据复位信号和处理器写入的指示信号,生成复位控制信号;
执行模块,用于对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,或根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作。
5.如权利要求4所述的芯片复位方法,其特征在于,所述复位控制模块包括:
控制寄存器,用于接收处理器的写入序列,生成一个高电平或者低电平的指示信号;
处理单元,用于对复位信号和指示信号执行逻辑或操作,生成复位控制信号,所述复位控制信号指示是否需要复位双数据速率物理层。
6.一种双倍速率存储器系统,其特征在于,包括:
芯片,用于接收输入信号,并判断输入信号是否通过全复位管脚输入,在判断为否时,生成能复位除双倍速率存储控制器物理层以外的功能模块的复位信号,对芯片中除双倍速率存储控制器物理层以外的功能模块执行复位操作,并对根据复位信号和处理器写入的指示信号,生成复位控制信号,根据所述复位控制信号,对双倍速率存储控制器物理层执行复位操作;
双倍速率存储器,用于根据双倍速率存储控制器物理层的时钟信号,传输数据给芯片。
CN2010101398319A 2010-04-02 2010-04-02 一种芯片复位方法、芯片和双倍速率存储器系统 Active CN101813966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101398319A CN101813966B (zh) 2010-04-02 2010-04-02 一种芯片复位方法、芯片和双倍速率存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101398319A CN101813966B (zh) 2010-04-02 2010-04-02 一种芯片复位方法、芯片和双倍速率存储器系统

Publications (2)

Publication Number Publication Date
CN101813966A CN101813966A (zh) 2010-08-25
CN101813966B true CN101813966B (zh) 2012-02-29

Family

ID=42621239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101398319A Active CN101813966B (zh) 2010-04-02 2010-04-02 一种芯片复位方法、芯片和双倍速率存储器系统

Country Status (1)

Country Link
CN (1) CN101813966B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108226752B (zh) * 2017-12-25 2020-07-03 北京物芯科技有限责任公司 一种芯片的故障修复方法、装置和设备
US10698846B2 (en) * 2018-11-07 2020-06-30 Realtek Semiconductor Corporation DDR SDRAM physical layer interface circuit and DDR SDRAM control device
CN112636934B (zh) * 2020-12-29 2022-06-24 北京东土军悦科技有限公司 交换机的复位方法、装置、计算机设备及存储介质
CN112835522A (zh) * 2021-02-02 2021-05-25 致真存储(北京)科技有限公司 基于非易失存储器的视频数据存取装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1459191A (zh) * 2000-09-19 2003-11-26 汤姆森许可公司 用于混合信号集成电路中单管脚复位的系统和方法
CN1852504A (zh) * 2005-07-21 2006-10-25 上海华为技术有限公司 一种射频拉远模块复位的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122807A (ja) * 2005-10-27 2007-05-17 Elpida Memory Inc 半導体記憶装置及びその調整方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1459191A (zh) * 2000-09-19 2003-11-26 汤姆森许可公司 用于混合信号集成电路中单管脚复位的系统和方法
CN1852504A (zh) * 2005-07-21 2006-10-25 上海华为技术有限公司 一种射频拉远模块复位的方法及系统

Also Published As

Publication number Publication date
CN101813966A (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
TWI721003B (zh) 記憶體裝置及用於記憶體管理的系統
CN110023914B (zh) 用于重复写入存储器的可编程数据样式
US9318172B2 (en) Nonvolatile memory device, read method for nonvolatile memory device, and memory system incorporating nonvolatile memory device
US8862973B2 (en) Method and system for error management in a memory device
CN102999454B (zh) 动态数据选通检测
CN105283918B (zh) 使用多周期命令实现存储器装置访问的设备、方法和系统
KR100963702B1 (ko) 명령 신호 및 동작 상태에 기초하여 명령을 디코딩하기위한 시스템 및 방법
US10559335B2 (en) Method of training drive strength, ODT of memory device, computing system performing the same and system-on-chip performing the same
US9570130B2 (en) Memory system and memory physical layer interface circuit
JP5866488B1 (ja) インテリジェントデュアルデータレート(ddr)メモリコントローラ
US8856579B2 (en) Memory interface having extended strobe burst for read timing calibration
CN110249313A (zh) 错误检测码保持模式同步
CN101813966B (zh) 一种芯片复位方法、芯片和双倍速率存储器系统
US20240029768A1 (en) Offset calibration training method for adjusting data receiver offset and memory device therefor
CN108461102B (zh) 具有多种速度和密度的位单元的sram架构
CN117099075A (zh) 针对长突发长度的存储器数据传送的双倍取得
US20040008069A1 (en) Method and apparatus for skewing data with respect to command on a DDR interface
CN111326189B (zh) 读取和/或写入存储器操作期间的选择性时钟调整
JP5673842B2 (ja) 半導体装置
US20070226429A1 (en) Memory including a write training block
US8635487B2 (en) Memory interface having extended strobe burst for write timing calibration
WO2007125519A2 (en) Latency optimized resynchronization solution for ddr/ddr2 sdram read path
US20240071446A1 (en) Apparatuses and methods for providing command having on-the-fly (otf) latency to memory
EP4411546A1 (en) Memory device for synchronizing command start point (csp)
US11893240B2 (en) Reducing latency in pseudo channel based memory systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant