CN1929363A - 用于时钟歪斜和偏移估计的方法及系统 - Google Patents

用于时钟歪斜和偏移估计的方法及系统 Download PDF

Info

Publication number
CN1929363A
CN1929363A CNA2006101213320A CN200610121332A CN1929363A CN 1929363 A CN1929363 A CN 1929363A CN A2006101213320 A CNA2006101213320 A CN A2006101213320A CN 200610121332 A CN200610121332 A CN 200610121332A CN 1929363 A CN1929363 A CN 1929363A
Authority
CN
China
Prior art keywords
line
parts
clocks
convex closure
clock
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
CNA2006101213320A
Other languages
English (en)
Other versions
CN100579002C (zh
Inventor
张立
米歇尔·H·T·哈克
斯科特·M·卡尔森
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1929363A publication Critical patent/CN1929363A/zh
Application granted granted Critical
Publication of CN100579002C publication Critical patent/CN100579002C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

公开了用于估计计算机系统中两个时钟之间的歪斜和偏移的方法和系统。该方法包括以下步骤:获得表示第一和第二时钟之间的正向延迟的第一组数据值;以及获得表示第一和第二时钟之间的负的反向延迟的第二组数据值。该方法还包括以下步骤:为所述第一组数据值形成下凸包;以及为所述第二组数据值在下凸包之上形成上凸包。使用那些凸包来估计所述第一和第二时钟之间的时钟偏移和歪斜。在优选实施例中,通过识别第一和第二凸包之间的最佳时钟线来进行此估计。

Description

用于时钟歪斜和偏移估计的方法及系统
技术领域
此发明一般涉及计算机系统,并且,尤其涉及计算机系统中的时间同步。更具体地,本发明涉及用于计算机系统中的两个时钟之间的时钟偏移和歪斜(skew)的估计的方法和系统。
背景技术
现代计算机为了包括确保很多操作以正确顺序或同步发生的很多目的而使用时钟。由此,时钟自身紧密同步地工作是重要的。典型地,两个时钟经常不处于完美的同步,并且,在时钟之间存在定时差异。另外,两个时钟可能不在严格相同的频率下工作,使得时钟之间的定时差随时间而改变。时钟之间的定时差的这种改变被称为时钟歪斜。
很多计算机定时协议需要诸如两个时钟之间的歪斜和偏移的估计的信息。例如,这两个时钟可为本地时钟及其源时钟。这些估计的精度对于协议的同步是至关重要的。例如,协议可能需要计算出的两个服务器之间的日期时间(TOD)偏移包括计算的精度的估计。这被称为时钟偏移离差(dispersion),并约束了计算的最坏情况误差。尽管测量时钟歪斜的方法和系统是已知的,但这些已知过程趋向于相当复杂、在特定情形下不可靠、或所述两者。
发明内容
此发明的目的在于,提供用于估计计算机系统中的两个时钟之间的时钟歪斜和偏移的改进的过程。
此发明的另一个目的在于,使用正向延迟和反向延迟两者来估计计算机系统中两个时钟之间的歪斜和偏移。
通过用于估计计算机系统中第一和第二时钟之间的歪斜和偏移的方法和系统来达到这些和其它目的。该方法包括以下步骤:获得表示第一和第二时钟之间的正向延迟的第一组数据值;以及获得表示第一和第二时钟之间的负的反向延迟的第二组数据值。该方法还包括以下步骤:为所述第一组数据值形成下凸包(lower convex hull);以及为所述第二组数据值,在下凸包之下形成上凸包(upper convex hull)。使用那些凸包来估计所述第一和第二时钟之间的时钟偏移和歪斜。
在优选实施例中,通过在第一和第二凸包之间形成时钟线、识别对于第一和第二凸包之间的此时钟线的最佳位置、并使用所述最佳位置来估计所述第一和第二时钟之间的时钟偏移和歪斜,而进行此估计。
通过考虑参照指明并示出本发明的优选实施例的附图而给出的以下详细描述,本发明的其它好处和优点将变得清楚。
附图说明
图1图解了可实现本发明的数据处理系统的网络。
图2图解了图1的网络中的时钟机器B和时钟服务器A之间的分组交换。
图3示出了时钟在特定时间点上调节其偏移的延迟测量的图。
图4是考虑正向和反向时间延迟两者的图。
图5在同一图上示出了正向和负的反向延迟线两者。
图6以反转次序示出了反向延迟线的图。
图7图解了用于估计计算机系统中的第一和第二时钟之间的时钟歪斜和偏移的过程。
具体实施方式
图1图解了计算机网络100,其包括服务器102、客户机104、以及数据存储单元106。网络100还包括用于在网络的装置之间传送数据的数据连接110。例如,网络100可为因特网,但还可为内联网、局域网、广域网、点到点链路、或其它网络。
可在网络100中使用任何适用的服务器102。并且,例如,网络100的客户机104可为个人计算机、膝上型计算机、服务器、工作站、大型计算机、或能够在网络上通信的其它装置。类似地,连接器110可包括大范围的适用装置,如导线、光纤、或无线通信链路。
如上所述,包括服务器定时协议(STP)的各种计算机定时协议需要有关计算机系统或网络(如网络100)中的两个时钟之间的歪斜和偏移有关的信息。本发明针对于确定时钟歪斜和偏移估计。
首先,对图解了本地机器B和时钟服务器A之间的分组交换的图2进行参照。根据B的时钟,分组在时刻T1离开B。根据A的时钟,分组在时刻T2到达A。根据A的时钟,机器A随后在时刻T3发送答复分组。根据B的时钟,答复消息在时刻T4到达B。通过有规律地发出此类交换消息、并记录T1、T2、T3、T4时间戳的顺序,可获得机器B的时钟和机器A的时钟之间的相对偏移和速度差的估计。
已知这样的过程,即:根据T1、T2、T3、T4时间戳的顺序计算正向和反向延迟(FD和BD)的顺序。例如,在美国专利申请09/920,138和10/157,610、以及在美国专利6,661,810中描述了这样的过程。具体地,
FD=T2-T1,BD=T4-T3。
不妨使用T1(i)、T2(i)、T3(i)、T4(i)、FD(i)、以及BD(i)来表示第i个分组交换的时间戳和延迟。现有技术在二维平面中构造了两组延迟点,即{(T1(i),FD(i))|i=1,...}以及{(T1(i),BD(i))|i=1,...}。美国专利6,661,810独立地考虑两组点,这可能不能象本发明这样产生精确的结果。美国专利申请09/920,138和10/157,610结合地考虑两组点,这产生比美国专利6,661,810更佳的精度。
具体地,美国专利申请10/157,610解决了寻找包括两个分离的线段的用于延迟数据的两条平行斜线(skew line)的问题。其适用于时钟在特定时间点调节其偏移的情况。在调节之前和之后,时钟在相同的速度下运行。因此,用于调节之前和之后的数据的斜线是平行的。图3示出了此情形的例子。
参照图4,如果考虑正向和反向延迟两者,则可以看出,基底的斜线是对称的、或为镜像。
图5在同一图上示出了正向和负的反向延迟线两者。可以观察到,斜线变为平行。两条平行斜线之间的距离是两个机器之间的往返延迟的估计。问题在于,如何找到平行斜线的估计。
找到最佳对平行斜线的一种方式是:如图6所示,以反转次序绘出反向延迟线。可使用任意适用方法来找到最佳斜线。例如,在美国专利申请第10/157,610号中公开了一种适用方法。
本发明使用对称凸包算法(symmetric convex hull algorithm)来估计时钟歪斜和偏移。图7是此算法的结果的例子。中间的线302是相对时钟线的最佳估计。此线的截距和斜率提供了两个时钟之间的相对偏移和歪斜的估计。相对时钟线可在顶部的正向延迟包304和底部的负的反向延迟包306之间随意移动。
优选算法变为:
构造用于正向延迟的下凸包、以及用于负的反向延迟的上凸包。
从左端开始,在两个凸包之间逆时针地旋转一对平行线。
在旋转期间,将平行线放置为尽可能远地分开。两个平行线接触两个凸包的顶点。
在旋转过程中,在顶部的(正向延迟)包上的接触顶点从左向右移动。在底部的(负的反向延迟)包上的接触顶点从右向左移动。
当顶部的接触顶点移动到底部的接触顶点的右边时,获得最佳平行斜线。
如对本领域的技术人员来说将显而易见的,本发明可以硬件、软件、或硬件和软件的组合的方式实现。任何种类的计算机/服务器系统(或适于进行这里描述的方法的其它设备)均是适用的。硬件和软件的典型组合可为具有计算机程序的通用计算机系统,当加载并执行计算机程序时,执行这里描述的相应的方法。可替换地,可利用包含用于进行本发明的一个或更多功能任务的专用硬件的专用计算机。
还可将本发明嵌入在计算机程序产品中,该计算机程序产品包括允许实现这里描述的方法的所有相应特征,并且,当在计算机系统中加载时,该计算机程序产品能够执行这些方法。本上下文中的计算机程序、软件程序、程序、软件意味着使具有信息处理能力的系统直接执行特定功能、或在以下过程中的任一个或全部之后执行特定功能的一组指令的任何语言的任何表达式、代码或符号:(a)转换为另一种语言、代码或符号;以及/或者(b)以不同的物质形式再现。
显然,在这里公开的发明被良好地计算用来满足上述目的,但将理解,本领域的技术人员可设计众多修改和实施例,并且,意图使所附权利要求涵盖落入在本发明的真实精神和范围内的所有这样的修改和实施例。
相关申请的交叉引用
此申请涉及:与此一起提交的共同未决申请“时钟滤波器离差”(代理人卷号POU920050125US1);与此一起提交的申请“用来计算时钟偏移和歪斜的T4时间戳的使用”(代理人卷号POU920050127US1);以及与此一起提交的申请“滤波器转折点检测”(代理人卷号POU920050128US1)。这里,通过引用而将上面提到的申请的公开的全部内容合并于此。

Claims (13)

1、一种用于估计计算机系统中的第一和第二时钟之间的时钟歪斜和偏移的方法,该方法包括以下步骤:
获得表示第一和第二时钟之间的正向延迟的第一组数据值;
获得表示第一和第二时钟之间的负的反向延迟的第二组数据值;
为所述第一组数据值形成下凸包;
为所述第二组数据值,在下凸包之下形成上凸包;以及
使用所述凸包来估计所述第一和第二时钟之间的时钟偏移和歪斜。
2、如权利要求1所述的方法,其中,使用步骤包括以下步骤:
在所述第一和第二凸包之间形成时钟线;
识别对于所述第一和第二凸包之间的所述时钟线的最佳位置;以及
使用所述最佳位置来估计所述第一和第二时钟之间的时钟偏移和歪斜。
3、如权利要求2所述的方法,还包括以下步骤:
识别对于所述上和下凸包之间的所述时钟线的上最大位置;
识别对于所述上和下凸包之间的所述时钟线的下最小位置;以及
使用所述上最大位置和下最小位置来估计所述第一和第二时钟之间的时钟偏移和所述歪斜。
4、如权利要求3所述的方法,其中,识别所述上最大位置的步骤包括以下步骤:
提供上和下包之间的第一线;以及
从所述包的第一端开始,旋转上和下凸包之间的所述第一线。
5、如权利要求4所述的方法,其中,识别所述下最小位置的步骤包括以下步骤:
在所述上和下包之间提供与所述第一线平行的第二线;以及
从所述包的所述第一端开始,旋转上和下包之间的所述第二线。
6、如权利要求5所述的方法,其中:
提供第一线的步骤包括以下步骤:在所述第一线接触所述上凸包的情况下定位所述第一线;以及
提供第二线的步骤包括以下步骤:在所述第二线接触所述下凸包的情况下定位所述第二线。
7、一种用于估计计算机系统中第一和第二时钟之间的时钟歪斜和偏移的估计系统,该估计系统包括:
表示第一和第二时钟之间的正向延迟的第一组数据值;
表示第一和第二时钟之间的负的反向延迟的第二组数据值;
用于为所述第一组数据值形成下凸包、并为所述第二组数据值在下凸包之下形成上凸包的部件;以及
用于使用所述凸包来估计所述第一和第二时钟之间的时钟偏移和歪斜的部件。
8、如权利要求7所述的估计系统,其中,使用部件包括:
用于在所述第一和第二凸包之间形成时钟线的部件;
用于识别对于所述第一和第二凸包之间的所述时钟线的最佳位置的部件;以及
用于使用所述最佳位置来估计所述第一和第二时钟之间的时钟偏移和歪斜的部件。
9、如权利要求8所述的估计系统,还包括:
用于识别对于所述上和下凸包之间的所述时钟线的上最大位置的部件;
用于识别对于所述上和下凸包之间的所述时钟线的下最小位置的部件;以及
用于使用所述上最大位置和下最小位置来估计所述第一和第二时钟之间的时钟偏移和所述歪斜的部件。
10、如权利要求9所述的估计系统,其中,用于识别所述上最大位置的部件包括:
用于提供上和下包之间的第一线的部件;
用于从所述包的第一端开始、旋转上和下凸包之间的所述第一线的部件。
11、如权利要求10所述的估计系统,其中,用于识别所述下最小位置的部件包括:
用于在所述上和下包之间提供与所述第一线平行的第二线的部件;以及
用于从所述包的所述第一端开始、旋转上和下包之间的所述第二线的部件。
12、如权利要求11所述的估计系统,其中:
用于提供第一线的部件包括:用于在所述第一线接触所述上凸包的情况下定位所述第一线的部件;以及
用于提供第二线的部件包括:用于在所述第二线接触所述下凸包的情况下定位所述第二线的部件。
13、一种可由机器读取的计算机存储装置,其有形地实现可由机器执行的指令程序,以执行于估计计算机系统中的第一和第二时钟之间的时钟歪斜和偏移的方法步骤,所述方法是根据前述方法权利要求中的任一个。
CN200610121332A 2005-09-09 2006-08-21 用于时钟歪斜和偏移估计的方法及系统 Active CN100579002C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/223,876 US7688865B2 (en) 2005-09-09 2005-09-09 Method and system for clock skew and offset estimation
US11/223,876 2005-09-09

Publications (2)

Publication Number Publication Date
CN1929363A true CN1929363A (zh) 2007-03-14
CN100579002C CN100579002C (zh) 2010-01-06

Family

ID=37859170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610121332A Active CN100579002C (zh) 2005-09-09 2006-08-21 用于时钟歪斜和偏移估计的方法及系统

Country Status (2)

Country Link
US (1) US7688865B2 (zh)
CN (1) CN100579002C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955869A (zh) * 2011-08-30 2013-03-06 国际商业机器公司 评估时钟偏移的方法和装置

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822072B2 (en) * 2005-09-09 2010-10-26 International Business Machines Corporation Clock filter dispersion
US7899894B2 (en) 2006-08-30 2011-03-01 International Business Machines Corporation Coordinated timing network configuration parameter update procedure
US7689718B2 (en) 2007-01-31 2010-03-30 International Business Machines Corporation Channel subsystem server time protocol commands and system therefor
US9112626B2 (en) * 2007-01-31 2015-08-18 International Business Machines Corporation Employing configuration information to determine the role of a server in a coordinated timing network
US7797414B2 (en) * 2007-01-31 2010-09-14 International Business Machines Corporation Establishing a logical path between servers in a coordinated timing network
US7895303B2 (en) * 2007-01-31 2011-02-22 International Business Machines Corporation Server time protocol control messages and methods
US7783913B2 (en) * 2007-01-31 2010-08-24 International Business Machines Corporation Facilitating recovery in a coordinated timing network
US7783736B2 (en) 2007-01-31 2010-08-24 International Business Machines Corporation Definition of an active stratum-1 server in a coordinated timing network
EP1990938A1 (en) * 2007-05-10 2008-11-12 Deutsche Thomson OHG Method for synchronizing a clock of a network component with a clock of a further network component and network component therefor
BRPI0814981B1 (pt) * 2007-08-10 2017-11-07 Rich Products Corporation Liquid food product that can be whipped, whipped product, whipped product
WO2009033001A2 (en) * 2007-09-05 2009-03-12 University Of Utah Research Foundation Robust location distinction using teporal link signatures
US8416811B2 (en) * 2008-04-10 2013-04-09 International Business Machines Corporation Coordinated timing network having servers of different capabilities
US7925916B2 (en) 2008-04-10 2011-04-12 International Business Machines Corporation Failsafe recovery facility in a coordinated timing network
US8139489B2 (en) * 2008-08-06 2012-03-20 International Business Machines Corporation Robust jitter-free remote clock offset measuring method
US8055929B2 (en) 2008-08-06 2011-11-08 International Business Machines Corporation Method and apparatus for maintaining time in a computer system
US8515061B2 (en) * 2008-09-11 2013-08-20 The University Of Utah Research Foundation Method and system for high rate uncorrelated shared secret bit extraction from wireless link characteristics
US8503673B2 (en) 2008-09-11 2013-08-06 University Of Utah Research Foundation Method and system for secret key exchange using wireless link characteristics and random device movement
US8502728B2 (en) 2008-09-12 2013-08-06 University Of Utah Research Foundation Method and system for tracking objects using radio tomographic imaging
WO2010030950A2 (en) * 2008-09-12 2010-03-18 University Of Utah Research Foundation Method and system for detecting unauthorized wireless access points using clock skews
US7873862B2 (en) * 2008-10-21 2011-01-18 International Business Machines Corporation Maintaining a primary time server as the current time server in response to failure of time code receivers of the primary time server
US8533355B2 (en) 2009-11-02 2013-09-10 International Business Machines Corporation Techniques for improved clock offset measuring
US8818288B2 (en) 2010-07-09 2014-08-26 University Of Utah Research Foundation Statistical inversion method and system for device-free localization in RF sensor networks
US8873589B2 (en) 2012-09-04 2014-10-28 Khalifa University Of Science, Technology And Research Methods and devices for clock synchronization
WO2014037684A1 (en) 2012-09-04 2014-03-13 Khalifa University of Science, Technology, and Research Methods and devices for clock synchronization
WO2014037685A1 (en) 2012-09-05 2014-03-13 Khalifa University of Science, Technology, and Research Method and system for clock offset and skew estimation
US8959381B2 (en) 2012-09-05 2015-02-17 Khalifa University of Science, Technology, and Research Method and system for clock offset and skew estimation
CN105794130B (zh) 2013-12-09 2018-04-24 哈利法科学技术研究大学 使用线性规划用于同步的方法和设备
US9178637B2 (en) 2013-12-09 2015-11-03 Khalifa University of Science, Technology, and Research Method and devices for synchronization using linear programming
US9294265B2 (en) * 2014-06-26 2016-03-22 Synaptive Medical (Barbados) Inc. System and method for remote clock estimation for reliable communications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661810B1 (en) * 1999-03-19 2003-12-09 Verizon Laboratories Inc. Clock skew estimation and removal
US7194649B2 (en) * 2000-10-30 2007-03-20 International Business Machines Corporation Clock synchronization for network measurements with clock resets
US6957357B2 (en) * 2000-10-30 2005-10-18 International Business Machines Corporation Clock synchronization with removal of clock skews through network measurements in derivation of a convext hull
US7127018B2 (en) 2001-03-20 2006-10-24 Advantest Corporation Apparatus for and method of measuring clock skew
US7263150B2 (en) 2001-03-20 2007-08-28 Advantest Corp. Probability estimating apparatus and method for peak-to-peak clock skews
EP1283611A3 (de) 2001-08-09 2006-02-15 Siemens Aktiengesellschaft Verfahren zur Synchronisierung eines Kommunikationssystems über ein paketorientiertes Datennetz
US20050234927A1 (en) 2004-04-01 2005-10-20 Oracle International Corporation Efficient Transfer of Data Between a Database Server and a Database Client
US7103514B1 (en) * 2005-09-09 2006-09-05 International Business Machines Corporation Filter turning point detection
US7475272B2 (en) * 2005-09-09 2009-01-06 International Business Machines Corporation Method for calculating clock offset and skew
US7822072B2 (en) * 2005-09-09 2010-10-26 International Business Machines Corporation Clock filter dispersion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955869A (zh) * 2011-08-30 2013-03-06 国际商业机器公司 评估时钟偏移的方法和装置
CN102955869B (zh) * 2011-08-30 2015-04-08 国际商业机器公司 评估时钟偏移的方法和装置

Also Published As

Publication number Publication date
CN100579002C (zh) 2010-01-06
US7688865B2 (en) 2010-03-30
US20070086489A1 (en) 2007-04-19

Similar Documents

Publication Publication Date Title
CN1929363A (zh) 用于时钟歪斜和偏移估计的方法及系统
CN1929364A (zh) 用于估计时钟偏移和离差的最大误差的方法和系统
US7475272B2 (en) Method for calculating clock offset and skew
JP5767464B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
CN1929365A (zh) 检测滤波器转折点的方法和系统
EP3766644B1 (en) Workpiece picking device and workpiece picking method
CN110986968A (zh) 三维重建中实时全局优化和错误回环判断的方法及装置
CN107124329B (zh) 基于低水位滑动时间窗口的离群数据发现方法及系统
TWI538089B (zh) 用於對準供製造之晶圓之系統及方法
Lee et al. Closed-form optimal two-view triangulation based on angular errors
CN105487487B (zh) 一种机器人折弯过程位置自动计算的方法
CN115213896A (zh) 基于机械臂的物体抓取方法、系统、设备及存储介质
CN115861368A (zh) 一种针对多类图像的多类轮廓跟踪方法、装置和介质
EP3566825B1 (en) Workpiece insertion device, workpiece insertion method and program
CN110992416A (zh) 基于双目视觉与cad模型的高反光面金属零件位姿测量方法
US20090202923A1 (en) Photomask manufacturing method, photomask manufacturing apparatus and photomask
CN117109566B (zh) 一种基于分段多项式拟合的imu温度补偿方法
CN113134828B (zh) 定位追踪系统、基于线性趋势预测的时延补偿方法
CN110209113B (zh) 用于复杂曲面慢刀伺服车削的刀具半径定向补偿算法
CN114266776B (zh) 一种应用复合裂纹位移场函数的数字图像相关方法
CN111633358A (zh) 基于激光的焊缝参数测量方法及装置
Ma et al. A method of camera calibration by iterative optimization algorithm
KR101672578B1 (ko) 차량용 카메라의 카메라데이터 처리방법
CN114022541B (zh) 一种光学单站姿态处理二义性正确解确定方法
Piao et al. Robotic tidy-up tasks using point cloud-based pose estimation

Legal Events

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