CN110520745A - 使用端点临界传感器电路估计时序驰豫 - Google Patents
使用端点临界传感器电路估计时序驰豫 Download PDFInfo
- Publication number
- CN110520745A CN110520745A CN201880025775.0A CN201880025775A CN110520745A CN 110520745 A CN110520745 A CN 110520745A CN 201880025775 A CN201880025775 A CN 201880025775A CN 110520745 A CN110520745 A CN 110520745A
- Authority
- CN
- China
- Prior art keywords
- data
- signal
- buffer unit
- circuit
- error
- 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
- 230000003111 delayed effect Effects 0.000 claims abstract description 31
- 238000012360 testing method Methods 0.000 claims abstract description 19
- 239000000872 buffer Substances 0.000 claims description 290
- 238000000034 method Methods 0.000 claims description 49
- 238000013480 data collection Methods 0.000 claims description 28
- 230000000153 supplemental effect Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 230000003139 buffering effect Effects 0.000 claims description 11
- 230000005611 electricity Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 229940075591 dalay Drugs 0.000 claims 2
- 230000002035 prolonged effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 238000004519 manufacturing process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000005259 measurement Methods 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000010363 phase shift Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/319—Tester hardware, i.e. output processing circuits
- G01R31/3193—Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
- G01R31/31937—Timing aspects, e.g. measuring propagation delay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/01—Shaping pulses
- H03K5/04—Shaping pulses by increasing duration; by decreasing duration
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本公开的各个方面描述了使用芯片上的端点临界传感器来测量时序驰豫。传感器电路被附接到芯片上的敏感端点(例如,时序关键路径中的逻辑门),以便传感器电路接收端点的数据信号和时钟信号。传感器电路通过使数据信号延迟多于时钟信号来在数据信号和时钟信号之间引入偏斜,并且比较偏斜数据信号以确定是否由于引入的偏斜而发生了误差。与芯片在测试模式下的同时测试电路操作相比,通过以不同的延迟量延迟数据信号并且监测哪些延迟会导致误差,针对与芯片上实现的系统相关的电路,在芯片操作期间,数据信号和时钟信号中的时序驰豫量(例如,临界裕量)被测量。
Description
技术领域
本公开涉及当芯片正在操作时而非当芯片处于测试模式时非侵入地测量计算机芯片上的时序驰豫。
背景技术
当计算机芯片被制造时,付出了巨大努力以确保所有路径上的时序裕量适当,并且所有晶体管都接收到适当的电压电平。比如,静态时序分析可以被用于以统计方式确定芯片的最小容许电压下的最小容许时钟频率。然而,实际上,当芯片正在操作时,最坏情况时序条件与最坏情况电压很少同时存在。结果,该芯片被设计以过量裕量,使得其在多种条件下操作。当芯片正在操作时,这种过量裕量会导致功率浪费。
减少过量裕量的一种方法是要在芯片上包括测试电路,诸如在单个时序路径中彼此通信的逻辑门;以及在制造期间将芯片放置在测试仪上。在制造期间,当芯片在测试仪上时,逻辑门的时钟频率和电压可以被降低,直到故障发生以确定过量裕量为止。然而,这种测试增加了制造过程的额外成本,并且在芯片的测试模式而非在操作模式下(诸如当被最终消费者使用时)进行。更进一步地,添加的测试电路不能很好地代表芯片上被实现的系统,并且因此通常无法指示芯片上实现的系统的实际临界裕量(例如,当芯片由于电压或时钟频率降低而将出现故障时)。
减少过量裕量的另一方法是包括附加测试电路,诸如环形振荡器,其可以被用于在芯片的操作期间控制芯片上的电压。然而,这种环形振荡器通常不能很好地描述芯片上实现的系统,可以特定于被用于制作芯片的工艺,并且可能遭受晶片和芯片变化的困扰。更进一步地,对于在芯片上实现的系统,这种添加的环形振荡器很少是最坏情况电压或关键时序路径,并且因此不能给出剩余临界裕量的很好的指示。
在操作期间(例如,在处理有效载荷数据的同时)直到故障发生之前,减少过量裕量的其他方法降低芯片上的电压或时钟频率。然而,这种方法是侵入性的,并且通过使芯片在操作期间出现故障而不利地影响芯片的操作。
发明内容
提供本发明内容以简化形式介绍下文在具体实施方式中进一步描述的一些概念的选择。该概述并非旨在标识所要求保护的主题的关键特征或必要特征。
在一个或多个实现方式中,描述了一种用于估计芯片上的时序驰豫的电路。该电路包括连接,其用于接收被包括在芯片上的逻辑门的数据信号和时钟信号。该电路还包括至少一个缓冲器单元,其被配置为通过使数据信号延迟多于时钟信号,来使数据信号和时钟信号偏斜。该电路还包括至少一个误差电路,其被耦合到至少一个缓冲器单元中的相应缓冲器单元,并且被配置为:通过比较从相应缓冲器单元输出的延迟数据信号与延迟少于从相应缓冲器单元输出的延迟数据信号的附加数据信号,来确定相应缓冲器单元是否已经发生了数据误差。该电路还包括至少一个数据收集电路,其被耦合到至少一个误差电路中的相应误差电路,并且被配置为:基于对相应缓冲器单元的数据误差的确定来计算相应缓冲器单元的相应误差指示符。该电路还包括驰豫估计器电路,其被配置为接收每个误差指示符,并且基于该误差指示符来估计逻辑门的数据信号和时钟信号之间的时序驰豫量。
在一个或多个实现方式中,描述了一种估计芯片上的时序驰豫的方法。该方法包括:使用被包括在芯片上的传感器电路来接收被包括在芯片上的逻辑门的数据信号和时钟信号。该方法还包括:通过使数据信号延迟多于时钟信号,使用传感器电路的至少一个缓冲器单元,偏斜数据信号和时钟信号。该方法还包括:通过比较从缓冲器单元输出的延迟数据信号与延迟少于从缓冲器单元输出的延迟数据信号的附加延迟数据信号,来确定至少一个缓冲器单元中的每个缓冲器单元是否发生了数据误差。该方法还包括:基于对每个缓冲器单元的数据误差的确定,使用与每个缓冲器单元相对应的相应数据收集电路,计算每个缓冲器单元的相应误差指示符。该方法还包括:从每个缓冲器单元的相应误差指示符估计逻辑门的数据信号和时钟信号之间的时序驰豫量。
在一个或多个实现方式中,描述了一种系统。该系统包括具有逻辑门的芯片,该逻辑门被提供有数据信号和时钟信号。该系统还包括多个缓冲器单元,每个缓冲器单元被配置为通过将数据信号延迟多于时钟信号来偏斜数据信号和时钟信号。该系统还包括多个误差电路,每个误差电路被耦合到多个缓冲器单元中的相应缓冲器单元,每个误差电路被配置为:通过比较从相应缓冲器单元输出的延迟数据信号与延迟少于从相应缓冲器单元输出的延迟数据信号的附加延迟数据信号,来确定相应缓冲器单元是否已经发生了数据误差。该系统还包括多个数据收集电路,每个数据收集电路被耦合到多个误差电路中的相应误差电路,每个数据收集电路被配置为:基于对相应缓冲器单元的数据误差的确定来计算相应缓冲器单元的相应误差指示符。该系统还包括驰豫估计器电路,其被配置为接收每个误差指示符,并且基于该误差指示符来估计逻辑门的数据信号和时钟信号之间的时序驰豫量。
在一个或多个实现方式中,描述了一种用于估计芯片上的时序驰豫的设备。该设备包括用于接收被包括在芯片上的逻辑门的数据信号和时钟信号的装置。该设备还包括用于偏斜数据信号和时钟信号以产生多个偏斜数据信号的装置。该设备还包括用于通过比较偏斜数据信号与偏斜小于该偏斜数据信号的附加数据信号来确定每个偏斜数据信号是否已经发生了数据误差的装置。该设备还包括用于计算每个偏斜数据信号的相应误差指示符的装置,该计算基于对每个偏斜数据信号的数据误差的确定。该设备还包括用于从每个偏斜数据信号的相应误差指示符估计逻辑门的数据信号与时钟信号之间的时序驰豫量的装置。
前述内容是发明内容,因此必然包含细节的简化、概括和省略。因此,本领域技术人员应当领会,该发明内容仅是说明性的,并不旨在以任何方式进行限制。仅由权利要求书限定的本文中所描述的设备和/或过程的其他方面、发明特征以及优点在本文中所阐述的非限制性具体实施方式中将变得显而易见。
附图说明
具体实施方式参考附图。在附图中,附图标记的一个或多个最左边数字标识该附图标记首次出现的附图。在说明书和附图中的不同实例中,相同的附图标记的使用可以指示相似或相同的项目。
图1图示了根据本公开的一个或多个方面的示例环境。
图2图示了根据本发明的一个或多个方面的用于测量端点临界的示例电路。
图3图示了根据本公开的一个或多个方面的示例误差电路。
图4图示了根据本公开的一个或多个方面的示例数据收集电路。
图5是描绘了根据本公开的一个或多个方面的示例过程的流程图。
图6是描绘了根据本公开的一个或多个方面的示例过程的流程图。
图7图示了根据本公开的一个或多个方面的用于校准延迟的示例数据。
图8图示了可以用于本文中所描述的一个或多个实现方式的示例设备。
具体实施方式
计算机芯片(例如,专用集成电路(ASIC)、半导体芯片等)被制作以过量裕量,因为时序路径通常在芯片的最小容许电压下以最小容许时钟频率闭合。然而,当芯片正在操作时,最坏情况时序条件与最坏情况电压几乎不会同时存在,导致芯片被设计以过量裕量,从而浪费功率。
与在制造期间将芯片放置在测试仪中,在操作期间使用不代表芯片上实现的系统的电路,或者在操作期间侵入性地影响芯片的有效载荷处理的方法相反,本公开描述了通过使用连接到芯片上被确定为敏感的端点的传感器电路来减少芯片上的过量裕量,以节省功率。敏感端点的示例包括逻辑门,其具有特定路径(长路径)、具有多个扇出路径、对电阻性或电容性负载敏感等。可以使用芯片上实现的整个系统的各个敏感端点处的多个所述传感器电路,来制造芯片。传感器电路接收用于端点逻辑门(诸如触发器)的数据信号和时钟信号,并且通过多个缓冲器单元延迟数据信号和时钟信号。每个缓冲器单元通过使数据信号延迟多于时钟信号而在数据信号和时钟信号之间引入偏斜。通过比较来自不同缓冲器单元(例如,来自缓冲器单元链中的相邻缓冲器单元)的数据信号,诸如使用与异或(XOR)门,由添加的偏斜引起的数据信号中的误差可以被检测到。时序裕量的驰豫量可以通过监测每个缓冲器单元的XOR门的输出而被确定。传感器电路是非侵入性的(例如,它不会影响有效载荷处理,诸如通过降低操作期间的时钟频率直到故障发生)。相反,传感器电路“分接”端点逻辑设备的数据信号和时钟信号,而不更改提供给端点逻辑设备的数据信号和时钟信号。所测量的时序驰豫可以在反馈控制环路中被使用(例如,作为提供给反馈控制环路的误差项的一个分量)以调整芯片上的时钟频率或电压,从而减少芯片所消耗的功率。
在下面的讨论中,描述了示例测试系统,该示例测试系统包括用于在芯片操作期间非侵入性地测量时序驰豫的示例电路。还描述了示例系统的元件可以实现的技术、以及可以在其上体现示例系统的元件的设备。因此,示例过程的执行不限于示例系统,并且示例系统不限于示例过程的执行。关于示例系统或其元件的任何参考仅作为示例,而不旨在限制本文中所描述的方面中的任一方面。
示例环境
图1图示了根据本公开的一个或多个方面的示例环境100。示例环境100包括计算设备102。计算设备102可以被配置为任何合适类型的计算设备。例如,计算设备102可以被配置为服务器、服务器场、台式计算机、膝上型计算机、工作站、移动设备(例如,诸如平板电脑或移动电话之类的手持式配置)、平板电脑、路由器、调制解调器、网关、相机、游戏站等。因此,计算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,服务器和个人计算机)到具有有限存储器或处理资源的低资源设备(例如,移动设备)。附加地,计算设备102可以代表多个不同的设备,诸如服务提供商的服务器场中的多个设备、或诸如最终用户设备者之类的单个计算设备。
计算设备102被图示为包括芯片104。为了简单起见,计算设备102还可以包括未在图1中示出的多种其他部件。作为示例而非限制,计算设备102可以包括一个或多个处理设备、一个或多个计算机可读存储介质、以及呈现在计算机可读存储介质上并且可以经由处理系统操作的各种应用(例如,可操作以访问来自服务器的各种基于网络的资源的网络浏览器)。
芯片104可以是任何合适类型的芯片,诸如作为示例而非限制,计算机芯片、半导体器件、集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、逻辑器件、存储器芯片等,并且可以包括一个或多个封装中的一个或多个管芯。比如,芯片104可以包括管芯和用于管芯的封装两者。更进一步地,芯片104可以包括多个芯片,诸如芯片组。
而且,芯片104可以实现任何合适的功能,诸如作为示例而非限制,接收器、发送器、收发器、无线电、图像处理器、图形处理器、媒体处理器、通用处理器、存储器存储装置等。在一个示例中,芯片104包括能够传送和接收射频(RF)信号以实现两个或更多个呼叫者之间的无线电话呼叫的蜂窝电话无线电。
示例环境100还包括网络106以及经由该网络106被通信地耦合到计算设备102的一个或多个设备108。比如,一个或多个设备108可以是一个或多个服务提供商,其被配置为使各种资源110通过网络106可用于客户端(例如,计算设备102)。在一些场景中,用户可以注册用于从提供商访问对应资源的帐户。提供商可以在授予对帐户和对应资源的访问之前认证用户的凭证(例如,用户名和密码)。资源110可以被许可、购买或可以免费使用(例如,无需认证、许可或基于帐户的访问)。资源110可以包括可以通过网络106获得的服务和内容的任何合适组合,诸如作为示例而非限制,视频编辑服务、照片编辑服务、网络开发和管理服务、协作服务、社交网络服务、消息传递服务、广告服务等。内容可以包括资产的各种组合,这些资产包括视频、广告、音频、多媒体流、动画、图像、网络文档、网页、应用、设备应用、文本文档、文本消息、绘图、演示文稿等。
在一个示例中,一个或多个设备108包括一个或多个蜂窝电话,并且网络106包括蜂窝网络,其使得计算设备102的用户能够参与和一个或多个设备108的一个或多个相应用户的对话(例如,共享音频、视频、或音频和视频)。然而,网络106可以包括多种网络,其包括互联网、内联网、局域网(LAN)、广域网(WAN)、个人域网(PAN)、人体域网(BAN)、蜂窝网络、地面网络、卫星网络、网络组合等,如此可以是有线、无线或其组合。
尽管在图1中图示与计算设备102是分开的,计算设备102可以包括网络106和一个或多个设备108。更进一步地,一个或多个设备108还可以包括与芯片104相似的一个或多个芯片。因此,本文中所描述的技术和电路可以在任何合适的芯片上实践,诸如包括计算设备102的芯片104、或包括一个或多个设备108或网络106的部件的芯片。
在考虑了示例环境100之后,现在考虑对用于测量端点临界的示例电路的讨论。
示例传感器电路
图2图示了根据本公开的一个或多个方面的用于测量端点临界的示例电路200。示例电路200包括被图示为触发器的逻辑门202。逻辑门202代表诸如图1中的芯片104之类的芯片上实现的系统的端点,在芯片的操作期间(例如,当在制造期间芯片在测试仪上时,最终用户在功能模式下而非在测试模式下操作)期望测量该芯片的时序驰豫。因而,逻辑门202可以是在芯片的设计或制造期间(诸如当使用静态时序分析工具闭合时序路径时)芯片上被标识为敏感的端点。敏感端点可以包括逻辑门,其具有特定路径(长路径)、具有多个扇出路径、对电阻性负载敏感、对电容性负载敏感等。
逻辑门202接收数据信号和时钟信号,诸如从另一触发器(未示出)发射的数据信号和时钟信号。为了使数据被适当地锁存到逻辑门202中,数据信号必须在时钟信号之前(例如,在被用于将数据锁存到逻辑门202中的时钟信号的上升沿之前)到达逻辑门202。时序驰豫量(有时被称为时序裕量)是自锁存时钟信号到达逻辑门202和数据信号到达逻辑门202的时间差。例如,假设1GHz时钟信号的上升沿被用于锁存从发射触发器传播到逻辑门202花费900psec的数据。在该示例中,时序驰豫是时钟周期1nsec与数据传播时间900psec之间的差,从而产生100psec的时序驰豫。
为了估计芯片正在操作时的时序驰豫,示例电路200包括示例传感器电路204,其耦合到(例如,经由传感器电路204上的连接)被提供给逻辑门202的数据信号和时钟信号。通过在数据信号和时钟信号之间引起偏斜,传感器电路204使用数据信号和时钟信号来测量逻辑门202的时序驰豫量。传感器电路204以非侵入方式操作。比如,传感器电路204不会改变提供给逻辑门202(例如,由逻辑门202看到)的数据信号或时钟信号。相反,传感器电路204接收提供给逻辑门202的数据信号和时钟信号(例如,“分接”提供给逻辑门202的数据信号和时钟信号),并且处理该数据信号和时钟信号以测量时序驰豫而不影响逻辑门202的操作。
传感器电路204包括缓冲器单元206-1,206-2和206-3(统称为206)。为了简化起见,传感器电路204在图2中被图示有三个缓冲器单元。可以使用包括缓冲器单元206的任何合适数目的缓冲器单元,并且通过示例而非限制,示例传感器电路204被图示有三个缓冲器单元。缓冲器单元206-1包括数据缓冲器208-1和时钟缓冲器210-1。缓冲器单元206-2和206-3包含相似的相应数据缓冲器208-2和208-3、以及相似的相应时钟缓冲器210-2和210-3。
缓冲器单元206-1接收提供给逻辑门202的数据信号,并且使用数据缓冲器208-1对其进行延迟。缓冲器单元206-1还接收提供给逻辑门202的时钟信号,并且使用时钟缓冲器210-1对其进行延迟。从数据缓冲器208-1输出的延迟数据信号作为数据输入信号被提供给逻辑门212-1(在图2中被图示为触发器)。从时钟缓冲器210-1输出的延迟时钟信号作为时钟输入信号被提供给逻辑门2121,并且被用于将数据锁存到逻辑门2121中。
与缓冲器单元206-1类似,对缓冲器单元206-2和206-3进行配置。比如,缓冲器单元206-2从数据缓冲器208-1接收数据信号,并且使用数据缓冲器208-2对其进行延迟,并且还从时钟缓冲器210-1接收时钟信号,并且使用时钟缓冲器210-2对其进行延迟。从数据缓冲器208-2输出的延迟数据信号作为数据输入信号被提供给逻辑门212-2。从时钟缓冲器210-2输出的延迟时钟信号作为时钟输入信号被提供给逻辑门212-2,并且被用于将数据锁存到逻辑门212-2中。
同样,缓冲器单元206-3从数据缓冲器208-2接收数据信号,并且使用数据缓冲器208-3对其进行延迟,并且还从时钟缓冲器210-2接收时钟信号,并且使用时钟缓冲器210-3对其进行延迟。从数据缓冲器208-3输出的延迟数据信号作为数据输入信号被提供给逻辑门212-3。从时钟缓冲器210-3输出的延迟时钟信号作为时钟输入信号被提供给逻辑门212-3,并且被用于将数据锁存到逻辑门212-3中。
因此,缓冲器单元206各自被配置为通过将数据信号延迟多于时钟信号而在数据信号和时钟信号之间引入偏斜。比如,缓冲器单元206中的每个缓冲器单元使用数据缓冲器(例如,数据缓冲器208中的数据缓冲器)以及逻辑门(例如,逻辑门212中的逻辑门)来延迟数据信号。然而,时钟信号各自使用缓冲器单元206中的每个缓冲器单元中的时钟缓冲器210中的一个时钟缓冲器而被延迟,使得每个缓冲器单元相对于时钟信号偏斜数据信号。通过比较来自相邻缓冲器单元的偏斜数据信号,由偏斜引起的数据信号中的误差可以并检测到。为了实现这种比较,来自缓冲器单元206中的逻辑门212的偏斜数据信号被提供给相应误差电路。比如,从缓冲器单元206-1中的逻辑门212-1输出的偏斜数据信号被提供给误差电路214-1和误差电路214-2,并且从缓冲器单元206-2中的逻辑门212-2输出的偏斜数据信号被提供给误差电路214-2和误差电路214-3。误差电路214-3还接收从缓冲器单元206-3中的逻辑门212-3输出的偏斜数据信号。
误差电路214-1,214-2和214-3(统称为214)各自比较偏斜数据信号(例如,来自相邻缓冲器单元的偏斜数据信号),以确定是否由于缓冲器单元206中引入的偏斜而发生了数据误差。比如,误差电路214中的每个误差电路比较从相应缓冲器单元输出的延迟数据信号与延迟少于从相应缓冲器单元(诸如从先前缓冲器单元)输出的延迟数据信号的附加数据信号。延迟数据信号可以是以第一偏斜量偏斜的第一偏斜数据信号,并且附加数据信号可以是以与第一偏斜量不同的第二偏斜量偏斜的第二偏斜数据信号。因为对于第一缓冲器单元206-1,不存在先前缓冲器单元,所以对应于缓冲器单元206-1的误差电路214-1也接收提供给逻辑门202的数据信号。如果通过误差电路214中的任一误差电路比较的数据信号中存在差异(例如,由于数据信号中的一个或多个位不同,所以信号不匹配),则数据误差由该误差电路确定。然而,如果在误差电路中比较的数据信号没有差异,则数据误差不会被确定。
因而,误差电路214可以包括任何合适电路,用于比较数据信号(诸如来自不同缓冲器单元的偏斜数据信号),以确定是否由于缓冲器单元206中引入的偏斜而存在数据误差。图3中的电路300是误差电路214的示例,其可以被用于确定是否由于缓冲器单元206中引入的偏斜而存在数据信号误差。电路300包括异或(XOR)门302,其接受第一输入和第二输入。比如,第一输入可以是来自第一缓冲器单元的偏斜数据信号,而第二输入可以是来自第二缓冲器单元的偏斜数据信号。当第一输入与第二输入不同时,XOR门指示误差(例如,输出1或高指示符),而当第一输入与第二输入相同时,XOR门指示无误差(例如,输出0或低指示符)。因此,XOR门302可以被用于比较包括数据信号的位序列的延迟版本以指示何时发生位误差。
再次参考图2,误差电路214的输出被提供给相应数据收集电路216-1,216-2和216-3(统称为216)。数据收集电路216各自被配置为基于由误差电路214提供的数据误差的相应确定来计算相应的误差指示符,并且将计算出的误差指示符提供给驰豫估计器电路218。比如,误差的二进制指示符可以从误差电路214中的每个误差电路(诸如XOR门302的输出)被提供给相应的数据收集电路216,每个误差电路都基于提供的二进制指示符来计算误差指示符。包括数据收集电路216中的每个数据收集电路的电路的一个示例是累加器电路,其被配置为对由误差电路214中的相应误差电路指示的二进制误差进行计数。在该示例中,数据收集电路216中的每个数据收集电路的输出是该数据收集电路的累加器寄存器的值。累加器寄存器可以被配置为在将累加器值提供给驰豫估计器电路218时被清除。
包括数据收集电路216中的一个或多个数据收集电路的电路的另一示例是粘结位电路,一旦误差在包括在误差电路214中的相应误差电路中比较的数据信号的任何位中被指示,粘结位电路就将误差指示符设置为高(例如,以指示误差)。图4中的电路400是可以在数据收集电路216中的一个或多个数据收集电路中被使用以计算误差指示符的粘结位电路的示例。电路400包括三个逻辑门,分别为与门402和第一或非门404以及第二或非门406。与门402从误差电路214中的一个误差电路接收三个输入,包括反相重置信号、时钟信号和二进制误差信号。高时的重置信号被用于重置电路400,并且清除粘结位。在被提供给与门402之前,重置信号可以被反相,或者与门402可以被提供以重置信号,并且包括反相输入节点。
时钟信号可以是从提供给逻辑门202的时钟信号中得出的任何合适的时钟信号。在一个示例中,提供给逻辑门202的时钟信号被延迟了与逻辑门212中的一个逻辑门的延迟相对应的量,以产生输入到与门402的时钟信号。
与门402的输出作为第一输入被提供给第一或非门404。到或非门404的第二输入从第二或非门406的输出而被提供,其还形成了由电路400计算的误差指示符(例如,粘结位电路的状态)。第一或非门404的输出作为输入被提供给第二或非门406,第二或非门406的第二输入包括重置信号。
由于“或非”门仅在它们相应的输入信号均为低时才产生高输出信号,所以一旦在来自误差电路214中的一个误差电路的二进制信号中指示了误差(例如,由于在误差电路中被比较的数据信号中的位失配),第一或非门404产生低输出,如果电路未处于重置状态,则该低输出使电路400中的误差指示符变高并且保持高,直到电路被重置为止。由电路400生成的误差指示符可以被提供给图2中的驰豫估计器电路218,诸如在块的基础上(例如,周期性地或在定时器到期时)或针对每个被处理的位(例如,在逐个样本的基础上)。响应于将由电路400生成的误差指示符提供给驰豫估计器电路218,提供给电路400的重置信号在一个或多个时钟循环内可以被断言为高,以清除电路400中的误差指示符。
再次参考图2,由数据收集电路216生成的误差指示符(例如,累加器值、粘结位、其组合等)被提供给驰豫估计器电路218。驰豫估计器电路218代表基于来自数据收集电路216的误差指示符来估计提供给逻辑门202的数据信号和时钟信号中的时序驰豫量的功能。在一个示例中,驰豫估计器电路218以被包括在包括电路200的芯片上的处理器上运行的固件实现。
驰豫估计器电路218可以包括任何合适的电路,以基于来自数据收集电路216的误差指示符来测量数据信号和时钟信号中的时序驰豫,并且可以取决于缓冲器和包括缓冲器单元206的逻辑门的延迟。比如,缓冲器单元206中的每个缓冲器单元可以使用具有不同延迟(例如,其引起不同相移)的缓冲器来实现。作为示例而非限制,数据缓冲器208-1可以是具有与数据缓冲器208-2不同的延迟的不同类型的数据缓冲器(例如,在不同的电压电平下操作)。而且,对于缓冲器单元206中的每个缓冲器单元,数据缓冲器208可以使用具有与相应缓冲器单元中的时钟缓冲器210相同或不同的延迟的缓冲器来实现。比如,与缓冲器单元206-1中的时钟缓冲器210-1相比,数据缓冲器208-1可以引入相同或更多的相移并且引起相同或更多的延迟。因此,缓冲器单元206中的每个缓冲器单元可以具有任何合适的延迟和引起的偏斜,诸如不同的延迟和/或不同的偏斜(例如,数据信号和时钟信号之间的不同的延迟量)。因而,驰豫估计器电路218取决于传感器电路204的实现选择。更进一步地,驰豫估计器电路218可以使用用于缓冲器的延迟的校准数据来确定以时间为单位的时序驰豫量(下文关于图7进行更详细的讨论)。
而且,驰豫估计器电路218可以被配置为通过累加不同时序驰豫量是估计的时序驰豫量的次数来更新维持时序驰豫的统计分布的直方图计数器。直方图可以被提供给芯片上的反馈控制环路,其基于直方图来调整时钟频率或芯片上的电压,诸如通过降低时钟频率来以统计方式设置端点处的时序驰豫量,以实现端点的时序驰豫是从直方图确定的平均时序驰豫的期望概率。
在一个示例中,缓冲器单元中的每个缓冲器单元包括与每个其他缓冲器单元不同的数据信号的延迟量(例如,数据缓冲器208中的每个数据缓冲器是具有不同延迟的不同类型的缓冲器)。可以按照任何适当次序(诸如根据缓冲器单元的延迟来递增次序或递减次序(例如,其中缓冲器单元206-1对应于最大延迟或最小延迟,并且缓冲器单元206-3对应于最小延迟或最大延迟))来放置缓冲器单元206。
传感器电路204通过将时钟信号推向数据信号而操作,以引入误差用于一定延迟量。通过监测来自数据收集电路216的误差指示符,时序驰豫量的估计(例如,剩余临界时序裕量)由驰豫估计器电路218测量。比如,如果数据采集电路216-3指示误差的存在,并且数据收集电路216-1和216-2没有指示误差的存在,则可以根据逻辑门202和缓冲器单元206-3之间的延迟来估计时序驰豫。另一方面,如果数据收集电路216-1指示误差的存在,则可以确定不存在时序驰豫或时序驰豫的最小量(例如,逻辑门202已经操作接近临界)。在该示例中,传感器电路204作为预警指示符操作,几乎没有或没有时序驰豫为芯片上的至少一个端点保留。
由于可以以不同延迟来实现包括缓冲器单元206的缓冲器,所以缓冲器单元206可以被选择以测量不同粒度的时序驰豫。比如,一些缓冲器单元可以被用于测量nsec范围内的时序驰豫,而其他缓冲器单元可以被用于测量psec范围内的时序驰豫。
当芯片正在操作时,传感器电路204以非侵入性方式测量逻辑门202的时序驰豫。比如,逻辑门202的操作不受传感器电路204的影响。更进一步地,可以使用芯片上实现的整个系统的各个敏感端点处的多个所描述的传感器电路来制造该芯片。当芯片被设计时(诸如当时序路径被闭合时)敏感端点可以被确定为敏感端点,并且作为示例而非限制,可以包括逻辑门,该逻辑门具有特定路径(长路径)、具有多个扇出路径、对电阻性或电容性负载敏感等。因此,所描述的传感器电路所附接的端点直接对应于芯片上已知对时序敏感的系统的各部分,并且因此,传感器电路(例如,传感器电路204)准确地测量在实际操作中在芯片上运行的系统故障的剩余时序驰豫。这构成了对电路的改进,该电路在芯片处于测试模式而非操作模式时运行,或使用芯片上实现的与芯片上实现的系统(例如,处理芯片上有效载荷数据的系统)无关的测试电路减少芯片操作期间的裕量。
在一个示例中,来自驰豫估计器电路218的测量时序驰豫被供应给芯片上实现的反馈控制环路。反馈控制回路基于来自驰豫估计器电路218的所估计的时序驰豫量来更新在芯片上运行的时钟频率,例如,通过降低时钟频率,从而节省芯片上的功率。更进一步地,包括芯片的电压控制反馈回路可以被用于基于估计的时序驰豫量来更新(例如,降低)芯片上的电压。
所测量的时序驰豫可以是多个分量中的一个分量,该多个分量包括由芯片上实现的反馈控制环使用的误差项。比如,从测试电路(诸如环形振荡器)提供的数据可以与来自驰豫估计器电路218的所测量的时序驰豫组合,以形成误差项,该误差项被用于使用一个或多个反馈控制回路来更新芯片上的时钟频率或电压。更进一步地,传感器电路204可以被用于基于不同的函数来确定时序驰豫分量。比如,通过使用不同类型的缓冲器和具有不同延迟的缓冲器单元,时序驰豫可以被确定为取决于不同函数,诸如低阈值设备、高阈值设备、导线灵敏度等。因此,由于不同的函数中的每个函数,时序驰豫可以被分解为多个分量。因此,驰豫估计器电路218可以计算多个时序驰豫量,每个时序驰豫量对应于有助于时序驰豫的不同分量(例如,高阈值分量、低阈值分量等)。芯片上实现的反馈控制环路可以使用由驰豫估计器电路218计算出的一个或多个时序驰豫量,来更新芯片上的时钟频率或电压并且管理功率。
在考虑了示例电路200,300和400的讨论之后,现在考虑根据本公开的一个或多个方面的示例过程的讨论。
示例过程
图5图示了根据一个或多个方面的用于测量端点的时序驰豫量的示例过程500。该过程的各个方面可以以硬件、固件或软件或其组合来实现。该过程被示为框集合,其指定由一个或多个设备执行的操作,并不必限于所示的用于由相应框执行操作的次序。在至少一些方面中,该过程可以由适当配置的一个或多个设备(诸如图1中的计算设备102)执行。
使用被包括在芯片上的传感器电路来接收被包括在芯片上的逻辑门的数据信号和时钟信号(框502)。比如,逻辑门可以是先前确定为芯片上对时序驰豫敏感的端点,诸如在使用静态分析时序工具闭合时序路径的芯片的设计期间。
通过使数据信号延迟多于时钟信号,使用传感器电路的至少一个缓冲器单元使数据信号和时钟信号偏斜(框504)。至少一个缓冲器单元可以包括多个缓冲器单元,并且每个缓冲器单元可以包括与其他缓冲器单元不同的延迟量。在一个示例中,至少两个缓冲器单元包括彼此不同的数据信号的延迟量。
缓冲器单元中的每个缓冲器单元包含用于延迟数据信号的第一缓冲器和用于延迟时钟信号的第二缓冲器,并且第一缓冲器和第二缓冲器的可以具有相同的阈值电压(例如,具有相同的缓冲器设备类型)。更进一步地,缓冲器单元中的每个缓冲器单元可以包含类型与逻辑门相同的触发器。
缓冲器单元中的每个缓冲器单元可以通过在相邻缓冲器单元之间耦合缓冲的数据信号和缓冲的时钟信号而被连接到另一缓冲器单元,并且通过将数据信号延迟多于时钟信号,来偏斜数据信号和时钟信号可以包括:使缓冲的数据信号偏斜多于缓冲的时钟信号。
对于至少一个缓冲器单元中的每个缓冲器单元,通过比较从缓冲器单元输出的延迟数据信号与延迟少于从缓冲器单元输出的延迟数据信号的附加延迟数据信号,来确定是否已经发生了数据误差(框506)。可以使用每个缓冲器单元的相应XOR逻辑门来确定每个缓冲器单元是否已经发生了数据误差。
在一个示例中,至少一个缓冲器单元包括多个缓冲器单元,并且对于至少一个缓冲器单元,附加延迟数据信号是从另一缓冲器单元输出的延迟数据信号。对于缓冲器单元中的一个缓冲器单元(例如,缓冲器单元链中的第一缓冲器单元),附加延迟数据信号可以是被提供给被包括在芯片上的逻辑门的数据信号。对于除了一个缓冲器单元之外的每个相应缓冲器单元,附加数据信号可以是从与相应缓冲器单元不同的缓冲器单元输出的延迟数据信号。延迟数据信号可以是以第一量偏斜的第一偏斜数据信号,并且附加数据信号可以是以第二量偏斜的第二偏斜信号。第一偏斜量和第二偏斜量可以对应于由数据路径和时钟路径中的不同延迟量引入的不同偏斜量。
使用与每个缓冲器单元相对应的相应数据收集电路,基于对每个缓冲器单元的数据误差的确定来计算每个缓冲器单元的相应误差指示符(框508)。在一个示例中,与每个缓冲器单元相对应的相应数据收集电路包括实现相应粘结位的电路,并且每个缓冲器单元的相应误差指示符是每个缓冲器单元的相应粘结位的状态。附加地或可替代地,与每个缓冲器单元相对应的相应数据收集电路可以包括相应的累加器电路,其累加每个缓冲器单元的确定的数据误差,并且每个缓冲器单元的相应误差指示符基于每个缓冲器单元的相应累加器的值。
从每个缓冲器单元的相应误差指示符估计逻辑门的数据信号和时钟信号之间的时序驰豫量(框510)。在一个示例中,估计的时序驰豫量基于从逻辑门到该缓冲器单元中的具有到逻辑门的最小延迟并且针对其确定数据误差的缓冲器单元的延迟。
直方图计数器可以被更新,该直方图计数器通过累加不同时序驰豫量是估计的时序驰豫量的次数来维持时序驰豫的统计分布。直方图计数器可以以硬件、固件、软件或其组合来实现。
在一个示例中,在芯片正在在非测试模式下操作的同时(诸如由最终用户操作),过程500的步骤被执行。
图6图示了根据一个或多个方面的用于测量端点的时序驰豫量的示例过程600。该过程的各个方面可以以硬件、固件或软件或其组合来实现。该过程被示为框集合,其指定由一个或多个设备执行的操作,并不必限于所示的用于由各个框执行操作的次序。在至少一些方面中,该过程可以由适当配置的一个或多个设备(诸如图1中的计算设备102)执行。
被包括在芯片上的逻辑门的数据信号和时钟信号被接收(框602)。比如,数据信号和时钟信号可以被非侵入性地“分接”,而不会影响提供给逻辑门的数据信号和时钟信号。逻辑门可以被操作在非测试模式下,诸如在功能模式下操作(如当被包括在由最终用户操作的设备中时)。
数据信号和时钟信号被偏斜,以产生多个偏斜数据信号(框604)。使用多个缓冲器单元,数据信号和时钟信号可以被偏斜,每个缓冲器单元使时钟信号延迟多于数据信号以产生偏斜数据信号。每个偏斜数据信号可以包括在数据信号和时钟信号之间与其他偏斜数据信号不同的偏斜量。
对于每个偏斜数据信号,通过比较偏斜数据信号与偏斜小于该偏斜数据信号的附加数据信号,来确定是否已经发生了数据误差(框606)。比如,对于至少一个缓冲器单元,附加数据信号是从另一缓冲器单元输出的偏斜数据信号。如果偏斜数据信号和附加数据信号不匹配(例如,具有不同位),则确定已经发生了每个偏斜数据信号的数据误差。
基于对每个偏斜数据信号的数据误差的确定,计算每个偏斜数据信号的相应的误差指示符(框608)。在一个示例中,误差指示符是二进制指示符,一旦偏斜数据信号中的位与附加数据信号中的位不匹配并且保持高直到被清除(诸如粘结位),该二进制指示符就断言高。附加地或可替代地,误差指示符可以包括累加器值,该累加器值对偏斜数据信号和附加数据信号之间的位误差进行计数。
从每个偏斜数据信号的相应误差指示符估计出逻辑门的数据信号和时钟信号之间的时序驰豫量(框610)。在一个示例中,估计的时序驰豫量基于从逻辑门到该缓冲器单元中的具有到逻辑门的最小延迟并且为其确定数据误差的缓冲器单元的延迟。
因而,本文中所描述的方法构成了对以下方法的改进:在制造期间,在测试仪中放置芯片,在操作期间使用不代表芯片上实现的系统的电路,或在操作期间侵入性地影响芯片的有效载荷处理。本文中所描述的方法通过使用被连接到芯片上先前被标识为敏感的端点的传感器电路,来非侵入性地减少芯片上的过量裕量,从而在芯片操作期间节省了功率,因此,该方法特别与芯片上实现的系统有关。
在考虑了用于测量时序驰豫的示例过程的讨论之后,现在考虑用于校准可以实现示例过程的传感器电路的延迟的示例数据的讨论。
示例校准数据
图7图示了根据本公开的一个或多个方面的用于校准延迟的示例数据700。缓冲器(诸如图2中的数据缓冲器208)可以具有不同类型,并且可以供应有不同的电压,使得用于通过缓冲器传播的信号的以时间单位(例如,psec)的延迟取决于缓冲器实现方式。更进一步地,不同的制作过程以及过程内的变化会导致通过缓冲器的信号传播的延迟中的变化。因而,针对用于通过多种不同的操作模式(诸如供应给缓冲器的不同电压、以及缓冲器类型)制作芯片的过程,对包括缓冲器单元的缓冲器的延迟量进行校准。
示例数据700图示了三个曲线702,704和706,它们分别对应于三种类型的缓冲器,即,第一缓冲器类型、第二缓冲器类型和第三缓冲器类型。例如,不同的缓冲器类型可以对应于缓冲器的不同电路实现方式。数据700是基于模拟的计算机生成的数据,其使用用于给定芯片制作过程的缓冲器的电路模型。曲线702,704和706绘制了缓冲器在9个操作模式(标为Mode 1,…,Mode 9)下的平均延迟(以psec为单位)。在该示例中,操作模式包括变化到缓冲器的电压电平,其中Mode 1对应于最低电压电平,而Mode 9对应于最高电压电平。通常,操作模式可以包括变化任何合适的参数,诸如作为示例而非限制,电压电平、时钟频率、其组合等。
更进一步地,对于每种模式和缓冲器类型,数据点在多个温度(诸如-30摄氏度、0摄氏度、以及125摄氏度)上被平均。每种模式的标准偏差条也被包括。比如,标准偏差条708图示了第一缓冲器类型在Mode 3下的延迟的一个标准偏差。
在芯片的设计期间,数据700可以被用于配置图2中的传感器电路204(例如,以选择多少个缓冲器单元、什么类型的缓冲器以及缓冲器的操作模式)以实现用于测量时序驰豫的期望范围和粒度。比如,可以使用校准数据(例如,数据700)来设计用于传感器电路204的每级的延迟,使得图2中的驰豫估计器电路218可以测量期望粒度下期望范围内的时序驰豫。
在操作期间,驰豫估计器电路218可以使用数据700来确定以时间为单位的时序驰豫量。比如,驰豫估计器电路218可以将通过一个或多个缓冲器单元的延迟确定为时序驰豫(例如,基于与缓冲器单元相对应的误差指示符),并且使用数据700来将通过一个或多个缓冲器单元的延迟转换为时间单位。因而,芯片可以存储校准数据(例如,数据700),诸如在芯片上的存储器中的查找表中,或者诸如通过网络从服务器访问校准数据。
在考虑了用于校准缓冲器单元的延迟的示例数据的讨论之后,现在考虑其上可以实现使用端点临界传感器来测量时序驰豫的各方面的设备的讨论。
示例设备
图8图示了示例设备800,其包括能够实现使用端点临界传感器来测量时序驰豫的各方面的部件。设备800可以被实现为或在任何合适的电子设备(诸如调制解调器、宽带路由器、接入点、蜂窝电话、智能电话、游戏站、膝上型计算机、上网本、机顶盒、家用设备、网络附接存储(NAS)设备、蜂窝塔、卫星、电缆头端、工作站、测试站、服务器、测试和测量设备、其组合、和/或可能包含期望在操作期间测量其时序驰豫的芯片的任何其他设备)中实现。设备800可以包括一个或多个设备,并且为了简单起见,在图8中被图示为单个设备。比如,设备800可以在通过网络连接的多个设备上实现。
设备800可以与微处理器、存储介质、I/O逻辑、数据接口、逻辑门、发送器、接收器、电路、固件、软件和/或其组合集成在一起,以提供通信或处理功能。设备800可以包括数据总线(例如,横向条或互连结构),其使得设备的各种部件之间能够通信。在一些方面中,设备800的部件可以经由数据总线交互,以实现使用端点临界传感器来测量时序驰豫的各方面。
在该特定示例中,设备800包括处理器核802和存储器804。存储器804可以包括任何适当类型的存储器,诸如易失性存储器(例如,DRAM)、非易失性存储器(例如,闪存)、高速缓存等。在本公开的上下文中,存储器804被实现为存储介质,并且不包括瞬时传播信号或载波。互连总线806被用于允许设备800的部件进行交互,诸如以访问存储器804。存储器804可以存储设备800的数据和处理器可执行指令,诸如操作系统808和其他应用。处理器核802可以执行操作系统808和来自存储器804的其他应用,以实现设备800的功能,其数据可以被存储到存储器804以供将来访问。设备800还可以包括I/O逻辑810,其可以被配置为提供多种I/O端口或数据接口以供通信。
设备800还包括芯片812。计算设备102中的芯片104是芯片812的示例。芯片812可以是任何合适类型的芯片,诸如作为示例而非限制计算机芯片、半导体器件、集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、逻辑器件、存储芯片等,并且可以包括一个或多个封装中的一个或多个管芯。比如,芯片812可以包括管芯和用于管芯的封装两者。更进一步地,芯片812可以包括多个芯片,诸如芯片组。
设备800还包括传感器电路814。图2中的传感器电路204是传感器电路814的示例。传感器电路814至少部分地在芯片812上被实现。比如,传感器电路814可以包括缓冲器单元、误差电路、以及数据收集电路,该数据收集电路用于使数据信号相对于时钟信号偏斜,并且检测由引入的偏斜产生的误差。缓冲器单元至少在芯片812上被实现。在一个示例中,误差电路和包括传感器电路814的数据收集电路也被实现在芯片812上。
设备800还包括驰豫估计器电路816。图2中的驰豫估计器电路218是驰豫估计器电路816的示例。驰豫估计器电路816被耦合到传感器电路814,并且被配置为使用由传感器电路814提供的误差指示符来测量芯片812上的端点(例如,逻辑门)的时序驰豫。因而,驰豫估计器电路816可以包括传感器电路814,并且至少部分地被实现在芯片812上。附加地或可替代地,驰豫估计器电路816可以至少部分地以在处理器核802上运行的固件实现。
在一个或多个示例性方面中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以被存储在计算机可读存储介质(CRM)上。在本公开的上下文中,计算机可读存储介质可以是可以由不包括瞬时传播信号或载波的通用或专用计算机访问的任何可用介质。作为示例而非限制,这种介质可以包括RAM、ROM、EEPROM、CD-ROM、或其他光盘存储装置、磁盘存储装置或其他磁性存储设备、或可以用于携带或存储可以由通用或专用计算机或通用或专用处理器访问的信息的任何其他非暂态介质。该信息可以包括任何适当类型的数据,诸如计算机可读指令、采样信号值、数据结构、程序部件、或其他数据。这些示例以及存储介质和/或存储器设备的任何组合旨在适于非暂态计算机可读介质的范围之内。如本文中所使用的磁盘和光盘包括光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、以及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。上述的组合也应当被包括在计算机可读介质的范围之内。
固件部件包括具有可编程存储器的电子部件,其被配置为存储可执行指令,该可执行指令指导电子部件如何操作。在一些情况下,存储在电子部件上的可执行指令是永久的,而在其他情况下,可执行指令可以被更新和/或更改。有时,固件部件可以与硬件部件和/或软件部件结合使用。
术语“部件”、“模块”和“系统”旨在是指一个或多个计算机相关实体,诸如硬件、固件、软件或其任何组合,如上文所进一步描述的。有时,部件可以是指由处理器可执行指令所限定的过程和/或执行线程。可替代地或附加地,部件可以是指各种电子和/或硬件实体。
上文出于指导目的对某些特定方面进行了描述。然而,本公开的教导具有普遍的适用性,并且不限于上文所描述的特定方面。
Claims (30)
1.一种用于估计芯片上的时序驰豫的电路,所述电路包括:
连接件,用于接收被包括在所述芯片上的逻辑门的数据信号和时钟信号;
至少一个缓冲器单元,被配置为通过使所述数据信号延迟多于所述时钟信号来偏斜所述数据信号和所述时钟信号;
至少一个误差电路,被耦合到所述至少一个缓冲器单元中的相应缓冲器单元,并且被配置为:对于所述相应缓冲器单元,通过比较从所述相应缓冲器单元输出的延迟数据信号与附加数据信号来确定数据误差是否已经发生,所述附加数据信号被延迟少于从所述相应缓冲器单元输出的所述延迟数据信号;
至少一个数据收集电路,被耦合到所述至少一个误差电路中的相应误差电路,并且被配置为:基于对所述相应缓冲器单元的所述数据误差的所述确定,来计算所述相应缓冲器单元的相应误差指示符;以及
驰豫估计器电路,被配置为接收每个误差指示符,并且基于所述每个误差指示符来估计所述逻辑门的所述数据信号和所述时钟信号之间的时序驰豫量。
2.根据权利要求1所述的电路,其中所述至少一个缓冲器单元包括多个缓冲器单元,并且对于所述多个缓冲器单元中的至少一个缓冲器单元,所述附加数据信号是从所述多个缓冲器单元中的另一缓冲器单元输出的延迟数据信号。
3.根据权利要求1所述的电路,其中所述至少一个缓冲器单元中的每个缓冲器单元包括用于延迟所述数据信号的第一缓冲器和用于延迟所述时钟信号的第二缓冲器,并且所述第一缓冲器和所述第二缓冲器具有相同的阈值电压。
4.根据权利要求1所述的电路,其中所述至少一个缓冲器单元中的每个缓冲器单元包括与所述逻辑门相同类型的触发器。
5.根据权利要求1所述的电路,其中所述至少一个缓冲器单元包括多个缓冲器单元,并且所述缓冲器单元中的至少两个缓冲器单元包括彼此不同的所述数据信号的延迟量。
6.根据权利要求1所述的电路,其中当所述芯片正在在非测试模式下操作时,所述电路操作。
7.根据权利要求1所述的电路,其中当所述电路正在操作时,所述时钟信号的频率不被改变。
8.根据权利要求1所述的电路,其中所述至少一个误差电路中的每个误差电路包括异或逻辑门,以确定所述数据误差是否已经发生。
9.根据权利要求1所述的电路,其中与每个缓冲器单元相对应的所述相应数据收集电路包括实现相应粘结位的电路,并且每个缓冲器单元的所述相应误差指示符是每个缓冲器单元的所述相应粘结位的状态。
10.根据权利要求1所述的电路,其中与每个缓冲器单元相对应的所述相应数据收集电路包括相应累加器电路,所述累加器电路累加每个缓冲器单元的确定的数据误差,并且每个缓冲器单元的所述相应误差指示符基于每个缓冲器单元的所述相应累加器的值。
11.根据权利要求1所述的电路,其中所述至少一个缓冲器单元包括多个缓冲器单元,所述多个缓冲器单元各自延迟所述数据信号和所述时钟信号,并且所估计的时序驰豫量基于从所述逻辑门到所述多个缓冲器单元中的具有到所述逻辑门的最小延迟并且针对其确定数据误差的缓冲器单元的延迟。
12.根据权利要求1所述的电路,其中所述逻辑门是所述芯片上的端点,所述端点先前被确定为对时序驰豫敏感。
13.一种估计芯片上的时序驰豫的方法,所述方法包括:
使用被包括在所述芯片上的传感器电路,接收被包括在所述芯片上的逻辑门的数据信号和时钟信号;
通过使所述数据信号延迟多于所述时钟信号,使用所述传感器电路的至少一个缓冲器单元,偏斜所述数据信号和所述时钟信号;
对于所述至少一个缓冲器单元中的每个缓冲器单元,通过比较从所述缓冲器单元输出的延迟数据信号与附加延迟数据信号来确定数据误差是否已经发生,所述附加延迟数据信号被延迟少于从所述缓冲器单元输出的所述延迟数据信号;
基于对每个缓冲器单元的所述数据误差的所述确定,使用与每个缓冲器单元相对应的相应数据收集电路,计算每个缓冲器单元的相应误差指示符;以及
从每个缓冲器单元的所述相应误差指示符估计所述逻辑门的所述数据信号和所述时钟信号之间的时序驰豫量。
14.根据权利要求13所述的方法,还包括:基于所估计的时序驰豫量,使用包括所述芯片的电压控制反馈回路来更新所述芯片上的电压。
15.根据权利要求13所述的方法,还包括:基于所估计的时序驰豫量,使用反馈控制回路来更新在所述芯片上运行的时钟频率。
16.根据权利要求13所述的方法,还包括:通过累加不同时序驰豫量是所估计的时序驰豫量的次数来更新直方图计数器,所述直方图计数器维持时序驰豫的统计分布。
17.根据权利要求13所述的方法,其中所述至少一个缓冲器单元包括多个缓冲器单元,并且每个缓冲器单元包括与其他缓冲器单元不同的延迟量。
18.根据权利要求13所述的方法,其中当所述芯片在非测试模式下操作时,所述接收、所述偏斜、所述确定、所述计算、以及所述估计被执行。
19.根据权利要求13所述的方法,其中针对被用于制作所述芯片的过程,所述至少一个缓冲器单元的延迟量被校准。
20.根据权利要求13所述的方法,其中所述至少一个缓冲器单元包括多个缓冲器单元,并且对于至少一个缓冲器单元,所述附加延迟数据信号是从另一缓冲器单元输出的延迟数据信号。
21.根据权利要求13所述的方法,其中与每个缓冲器单元相对应的所述相应数据收集电路包括实现相应粘结位的电路,并且每个缓冲器单元的所述相应误差指示符是每个缓冲器单元的所述相应粘结位的状态。
22.根据权利要求13所述的方法,其中所述至少一个缓冲器单元包括多个缓冲器单元,所述多个缓冲器单元各自延迟所述数据信号和所述时钟信号,并且所估计的时序驰豫量基于从所述逻辑门到具有到所述逻辑门的最小延迟并且针对其确定数据误差的缓冲器单元的延迟。
23.根据权利要求13所述的方法,其中对于每个缓冲器单元,所述确定所述数据误差是否已经发生是使用每个缓冲器单元的相应异或逻辑门来进行的。
24.一种系统,包括:
芯片,具有逻辑门,所述逻辑门被提供有数据信号和时钟信号;
多个缓冲器单元,每个缓冲器单元被配置为通过使所述数据信号延迟多于所述时钟信号来偏斜所述数据信号和所述时钟信号;
多个误差电路,每个误差电路被耦合到所述多个缓冲器单元中的相应缓冲器单元,每个误差电路被配置为:对于所述相应缓冲器单元,通过比较从所述相应缓冲器单元输出的延迟数据信号与附加数据信号来确定数据误差是否已经发生,所述附加数据信号被延迟少于从所述相应缓冲器单元输出的所述延迟数据信号;
多个数据收集电路,每个数据收集电路被耦合到所述多个误差电路中的相应误差电路,每个数据收集电路被配置为基于对所述相应缓冲器单元的所述数据误差的所述确定,来计算所述相应缓冲器单元的相应误差指示符;以及
驰豫估计器电路,被配置为接收每个误差指示符,并且基于所述每个误差指示符来估计所述逻辑门的所述数据信号和所述时钟信号之间的时序驰豫量。
25.根据权利要求24所述的系统,其中对于除所述至少一个缓冲器单元之外的每个相应缓冲器单元,所述附加数据信号是从与所述相应缓冲器单元不同的缓冲器单元输出的延迟数据信号。
26.根据权利要求24所述的系统,其中每个相应的缓冲器单元包括用于延迟所述数据信号以产生从所述相应缓冲器单元输出的所述延迟数据信号的触发器,并且所述触发器是与被包括在所述逻辑门中的触发器相同类型的触发器。
27.根据权利要求24所述的系统,其中所述缓冲器单元中的每个缓冲器单元通过在相邻缓冲器单元之间耦合缓冲的数据信号和缓冲的时钟信号而被连接到另一缓冲器单元,并且通过使所述数据信号延迟多于所述时钟信号来偏斜所述数据信号和所述时钟信号包括:使所述缓冲的数据信号偏斜多于所述缓冲的时钟信号。
28.一种用于估计芯片上的时序驰豫的设备,所述设备包括:
用于接收被包括在所述芯片上的逻辑门的数据信号和时钟信号的装置;
用于偏斜所述数据信号和所述时钟信号以产生多个偏斜数据信号的装置;
用于对于每个偏斜数据信号通过比较所述偏斜数据信号与附加数据信号来确定数据误差是否已经发生的装置,所述附加数据信号被偏斜小于所述偏斜数据信号;
用于计算每个偏斜数据信号的相应的误差指示符的装置,所述计算基于对每个偏斜数据信号的所述数据误差的所述确定;以及
用于从每个偏斜数据信号的所述相应的误差指示符估计所述逻辑门的所述数据信号和所述时钟信号之间的时序驰豫量的装置。
29.根据权利要求28所述的设备,其中所述用于偏斜所述数据信号和所述时钟信号的装置包括多个缓冲器单元,并且对于至少一个缓冲器单元,所述附加数据信号是从另一缓冲器输出的偏斜数据信号。
30.根据权利要求28所述的设备,其中如果所述偏斜数据信号和所述附加数据信号不匹配,则每个偏斜数据信号的所述数据误差被确定已经发生。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/492,689 | 2017-04-20 | ||
US15/492,689 US10048316B1 (en) | 2017-04-20 | 2017-04-20 | Estimating timing slack with an endpoint criticality sensor circuit |
PCT/US2018/019696 WO2018194753A1 (en) | 2017-04-20 | 2018-02-26 | Estimating timing slack with an endpoint criticality sensor circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110520745A true CN110520745A (zh) | 2019-11-29 |
CN110520745B CN110520745B (zh) | 2022-06-14 |
Family
ID=61617156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880025775.0A Active CN110520745B (zh) | 2017-04-20 | 2018-02-26 | 使用端点临界传感器电路估计时序驰豫 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10048316B1 (zh) |
CN (1) | CN110520745B (zh) |
WO (1) | WO2018194753A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112816858A (zh) * | 2020-12-31 | 2021-05-18 | 成都华微电子科技有限公司 | 数字电路延时测试方法、测试电路和集成电路芯片 |
CN116108797A (zh) * | 2023-04-06 | 2023-05-12 | 中国人民解放军国防科技大学 | 基于触发器扇出数量的触发器替换方法、装置和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11131706B2 (en) * | 2015-12-08 | 2021-09-28 | International Business Machines Corporation | Degradation monitoring of semiconductor chips |
US11023634B1 (en) | 2020-01-14 | 2021-06-01 | International Business Machines Corporation | Downstream slack creation in integrated circuit development |
US11797740B2 (en) | 2022-02-15 | 2023-10-24 | International Business Machines Corporation | Even apportionment based on positive timing slack threshold |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030006750A1 (en) * | 2001-03-26 | 2003-01-09 | Mcgill University | Timing measurement device using a component-invariant vernier delay line |
US20050147197A1 (en) * | 2001-06-25 | 2005-07-07 | Silicon Laboratories Inc. | Method and apparatus for acquiring a frequency without a reference clock |
US6983394B1 (en) * | 2003-01-24 | 2006-01-03 | Xilinx, Inc. | Method and apparatus for clock signal performance measurement |
US20130271196A1 (en) * | 2012-04-11 | 2013-10-17 | Lipeng Cao | High Precision Single Edge Capture and Delay Measurement Circuit |
US8887120B1 (en) * | 2013-12-27 | 2014-11-11 | Freescale Semiconductor, Inc. | Timing path slack monitoring system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874097B1 (en) * | 2001-06-01 | 2005-03-29 | Maxtor Corporation | Timing skew compensation technique for parallel data channels |
US7424650B1 (en) * | 2004-07-28 | 2008-09-09 | Cypress Semiconductor Corporation | Circuit to measure skew |
JP4357402B2 (ja) * | 2004-10-18 | 2009-11-04 | 株式会社椿本チエイン | 搬送装置 |
US7818705B1 (en) | 2005-04-08 | 2010-10-19 | Altera Corporation | Method and apparatus for implementing a field programmable gate array architecture with programmable clock skew |
US7523365B2 (en) * | 2005-12-19 | 2009-04-21 | International Business Machines Corporation | Dynamic determination of signal quality in a digital system |
KR100915387B1 (ko) * | 2006-06-22 | 2009-09-03 | 삼성전자주식회사 | 병렬 인터페이스의 데이터 신호와 클럭 신호 간의 스큐를보상하는 방법 및 장치 |
US7555668B2 (en) * | 2006-07-18 | 2009-06-30 | Integrated Device Technology, Inc. | DRAM interface circuits that support fast deskew calibration and methods of operating same |
US7759980B2 (en) * | 2006-11-28 | 2010-07-20 | International Business Machines Corporation | Circular edge detector for measuring timing of data signals |
US8205182B1 (en) | 2007-08-22 | 2012-06-19 | Cadence Design Systems, Inc. | Automatic synthesis of clock distribution networks |
WO2009075713A1 (en) * | 2007-12-06 | 2009-06-18 | Rambus, Inc. | Apparatus and methods for differential signal receiving |
US8305368B2 (en) * | 2009-08-19 | 2012-11-06 | Himax Technologies Limited | Method for determining an optimum skew and adjusting a clock phase of a pixel clock signal and data driver utilizing the same |
JP5444985B2 (ja) | 2009-09-16 | 2014-03-19 | 日本電気株式会社 | 情報処理装置 |
KR101062856B1 (ko) * | 2009-12-28 | 2011-09-07 | 주식회사 하이닉스반도체 | 스큐 검출 회로와 이를 이용한 반도체 메모리 장치 |
US8228106B2 (en) | 2010-01-29 | 2012-07-24 | Intel Mobile Communications GmbH | On-chip self calibrating delay monitoring circuitry |
US8578310B2 (en) | 2010-08-17 | 2013-11-05 | International Business Machines Corporation | Method of measuring the impact of clock skew on slack during a statistical static timing analysis |
US8497704B2 (en) * | 2011-07-18 | 2013-07-30 | Lsi Corporation | Methods and structure for source synchronous circuit in a system synchronous platform |
KR102147228B1 (ko) * | 2014-01-23 | 2020-08-24 | 삼성전자주식회사 | 타겟 모듈의 라이트 레벨링을 제어하는 라이트 레벨링 제어 회로 및 그에 따른 라이트 레벨링 제어방법 |
US9571074B2 (en) | 2014-10-27 | 2017-02-14 | Samsung Electronics Co., Ltd. | Efficient skew scheduling methodology for performance and low power of a clock-mesh implementation |
-
2017
- 2017-04-20 US US15/492,689 patent/US10048316B1/en not_active Expired - Fee Related
-
2018
- 2018-02-26 CN CN201880025775.0A patent/CN110520745B/zh active Active
- 2018-02-26 WO PCT/US2018/019696 patent/WO2018194753A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030006750A1 (en) * | 2001-03-26 | 2003-01-09 | Mcgill University | Timing measurement device using a component-invariant vernier delay line |
US20050147197A1 (en) * | 2001-06-25 | 2005-07-07 | Silicon Laboratories Inc. | Method and apparatus for acquiring a frequency without a reference clock |
US6983394B1 (en) * | 2003-01-24 | 2006-01-03 | Xilinx, Inc. | Method and apparatus for clock signal performance measurement |
US20130271196A1 (en) * | 2012-04-11 | 2013-10-17 | Lipeng Cao | High Precision Single Edge Capture and Delay Measurement Circuit |
CN103378826A (zh) * | 2012-04-11 | 2013-10-30 | 飞思卡尔半导体公司 | 高精度单沿捕获以及延迟测量电路 |
US8887120B1 (en) * | 2013-12-27 | 2014-11-11 | Freescale Semiconductor, Inc. | Timing path slack monitoring system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112816858A (zh) * | 2020-12-31 | 2021-05-18 | 成都华微电子科技有限公司 | 数字电路延时测试方法、测试电路和集成电路芯片 |
CN112816858B (zh) * | 2020-12-31 | 2022-09-16 | 成都华微电子科技股份有限公司 | 数字电路延时测试方法、测试电路和集成电路芯片 |
CN116108797A (zh) * | 2023-04-06 | 2023-05-12 | 中国人民解放军国防科技大学 | 基于触发器扇出数量的触发器替换方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018194753A1 (en) | 2018-10-25 |
CN110520745B (zh) | 2022-06-14 |
US10048316B1 (en) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520745A (zh) | 使用端点临界传感器电路估计时序驰豫 | |
CN102142831B (zh) | 片上自校准延迟监控电路 | |
Shen et al. | Monitoring Poisson count data with probability control limits when sample sizes are time varying | |
US7912166B2 (en) | Built-in jitter measurement circuit | |
Artico et al. | How rare are power-law networks really? | |
CN103902335A (zh) | 一种后台程序清理的方法及其系统 | |
US20190132137A1 (en) | Low noise physically unclonable function (puf) cell | |
US9754062B2 (en) | Timing adjustments across transparent latches to facilitate power reduction | |
US8401828B1 (en) | Methods and systems for analog object fetch in mixed-signal simulation | |
CN106919764B (zh) | 基于fpga的环形振荡器物理不可克隆函数的可靠性检测方法 | |
US10498469B2 (en) | On-chip jitter tolerance testing | |
US20180012134A1 (en) | Identifying computer devices based on machine effective speed calibration | |
Xue et al. | Building an accurate hardware Trojan detection technique from inaccurate simulation models and unlabelled ICs | |
US8473233B1 (en) | Analyzing jitter in a clock timing signal | |
US20150011177A1 (en) | Resource Consumption Estimation with Out of Norm Determination in Mobile Devices | |
CN108920326A (zh) | 确定系统耗时异常的方法、装置及电子设备 | |
CN103338131A (zh) | 检测日志传输丢失率的方法和设备 | |
CN110020166B (zh) | 一种数据分析方法及相关设备 | |
US20220393777A1 (en) | System and methods for measuring performance of an application specific integrated circuit interconnect | |
US11886621B2 (en) | Detecting possible security violations in an integrated circuit | |
US11425717B2 (en) | Configuring an HVAC wireless communication device | |
Hesselbarth et al. | Fast and reliable PUF response evaluation from unsettled bistable rings | |
Adebola et al. | Partial area under the receiver operating characteristics curves of diversity‐enabled energy detectors in generalised fading channels | |
US9003549B2 (en) | Analysis of an analog property of a signal | |
Kokubo et al. | Evaluation of ASIC implementation of physical random number generators using RS latches |
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 |