專利名稱:用于提供掃描鏈安全性的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及用于聯(lián)合測試行動組(JTAG)測試的掃描鏈,且更明確來說但不排他地,涉及用于JTAG測試的掃描鏈的安全性。
背景技術(shù):
測試設(shè)計(DfT)技術(shù)(如,聯(lián)合測試行動組(JTAG))為對復(fù)雜集成電路(IC)及系統(tǒng)芯片(SoC)的測試的基本幫助,因為其提供存取、以及讀取及修改裝置內(nèi)部組件的簡單且有效的方法。此存取經(jīng)由掃描鏈而提供。然而,不利的是,此存取(其在測試期間是有利的)可在產(chǎn)品出售/部署之后引起許多安全性問題。即,此相同存取可出于惡意動機而用于修改所述產(chǎn)品、篡改所述產(chǎn)品、逆向設(shè)計所述產(chǎn)品或用于執(zhí)行其它惡意活動。
因此,已試圖保護對IC及SoC的存取,使得對IC及SoC的存取(其用于測試)在相關(guān)聯(lián)的產(chǎn)品被出售/部署之后不能被利用。用于防止在測試之后利用系統(tǒng)的掃描鏈的典型解決方案為對所述系統(tǒng)進行硬修改(hard modification),使得對所述系統(tǒng)的掃描鏈存取變得不可能。舉例來說,系統(tǒng)的測試存取端口(TAP)可以某種方式燒毀或移除。然而,不利的是,此解決方案具有多個缺點。首先,JTAG基礎(chǔ)結(jié)構(gòu)本身保留在系統(tǒng)上,且因此攻擊者仍然能夠?qū)ζ溥M行存取(例如,通過插入探針)。JTAG導(dǎo)線在板上是相對易于識別的,且結(jié)果可為直接的。此程序的一著名實例為,一個學(xué)生僅以幾次嘗試便實現(xiàn)對第一代蘋果手機的解鎖。其次,DfT基礎(chǔ)結(jié)構(gòu)成為板上的“固定負載(dead weight)”且不能再被使用,但許多應(yīng)用(例如,現(xiàn)場及在線測試)可極大地受益于此存取。此外,在現(xiàn)場可編程門陣列(FPGA)-復(fù)雜可編程邏輯裝置(CPLD)產(chǎn)品中,兩種不同方式用于停用對其裝置的配置區(qū)域的JTAG存取。第一種方式是在裝置上使用熔絲,當被燒毀時,所述熔絲停用對所述裝置的配置區(qū)域的存取。然而,不利的是,一旦所述熔絲被燒毀,JTAG存取就是不可能的,直到燒毀部分被替代為止。第二種方式是使用備用電池支持含有用于解碼輸入位流的密鑰的安全存儲裝置(例如,電可擦除可編程只讀存儲器(EEPROM)、FLASH或類似存儲裝置)。然而,不利的是,當此方式啟用后續(xù)JTAG存取時,所述裝置上備份電池所需的不動產(chǎn)(real estate)在許多應(yīng)用中可成問題。
發(fā)明內(nèi)容
現(xiàn)有技術(shù)中的各種缺陷通過用于提供掃描鏈安全性的實施例來解決。掃描鏈安全性能力(例如)出于若干目的而啟用對系統(tǒng)的掃描鏈的正常使用的安全控制,所述目的例如為系統(tǒng)的部署或出售之前的測試、系統(tǒng)的部署或出售之后的現(xiàn)場測試、系統(tǒng)的現(xiàn)場修改等等。所述掃描鏈安全性能力通過啟用對掃描鏈的中斷及所中斷的掃描鏈的重新建立的控制,而啟用對掃描鏈的正常使用的安全控制。掃描鏈安全性組件經(jīng)配置以用于響應(yīng)于控制信號而從掃描鏈移除開路條件。所述控制信號可響應(yīng)于安全密鑰的驗證、響應(yīng)于基于詢問的認證過程的成功完成或響應(yīng)于任何其它合適的驗證或認證而產(chǎn)生。所述掃描鏈安全性組件還可經(jīng)配置以用于響應(yīng)于第二控制信號而在掃描鏈中產(chǎn)生開路條件。所述第二控制信號可為經(jīng)由所述掃描鏈接收的掃描寄存器值。
可通過結(jié)合附圖考慮以下詳細描述而容易地理解本文中的技術(shù),附圖中圖IA及IB描繪包括測試系統(tǒng)及受測系統(tǒng)的示范性系統(tǒng)測試環(huán)境的高級框圖;圖2描繪由IEEE P1687工作組提出的SIB單元的高級框圖,其經(jīng)配置以用于啟用分層掃描鏈存?。粓D3描繪經(jīng)配置以用于控制掃描鏈安全性的O⑶單元的一個實施例;
圖4A描繪通過由密鑰檢驗器功能進行的對安全密鑰的驗證而產(chǎn)生SecureRST信號的一個實施例,所述安全密鑰被移位到正被保護的掃描鏈的輸入部分中;圖4B描繪通過由密鑰檢驗器功能進行的對安全密鑰的驗證而產(chǎn)生SecureRST信號的一個實施例,所述安全密鑰被移位到密鑰檢驗器功能的緩沖器中;圖5描繪經(jīng)由使用基于詢問的認證方法來產(chǎn)生SecureRST信號的一個實施例;圖6描繪經(jīng)配置以用于控制掃描鏈安全性的遠程O⑶單元的一個實施例;圖7描繪JTAG系統(tǒng)的TAP的一個實施例,其中所述TAP經(jīng)配置以提供對JTAG系統(tǒng)的掃描鏈的安全存取;圖8描繪用于在掃描鏈中產(chǎn)生開路條件的方法的一個實施例;圖9描繪用于產(chǎn)生控制信號以從掃描鏈移除開路條件的方法的一個實施例;圖10描繪用于使用控制信號以從掃描鏈移除開路條件的方法的一個實施例;及圖11描繪適于執(zhí)行本文中描述的功能的計算機的高級框圖。為促進理解,在可能的情況下,已使用相同的參考數(shù)字標示對于圖式來說是共同的相同元件。
具體實施例方式本文描繪及描述掃描鏈安全性能力。所述掃描鏈安全性能力(例如)出于若干目的而啟用對所述系統(tǒng)的掃描鏈的正常使用的安全控制,所述目的例如為系統(tǒng)的部署或出售之前的測試、系統(tǒng)的部署或出售之后的現(xiàn)場測試、系統(tǒng)的現(xiàn)場修改等等以及其各種組合。所述掃描鏈安全性能力通過啟用對掃描鏈的中斷的控制(用于防止掃描鏈的正常使用)及啟用對在掃描鏈的中斷之后掃描鏈的重新建立的控制(用于啟用掃描鏈的正常使用),而啟用對掃描鏈的正常使用的安全控制。以此方式,所述掃描鏈安全性能力啟用在任何時間且出于任何目的對掃描鏈的可控鎖定及解鎖。以此方式,使用掃描鏈安全性能力來鎖定掃描鏈是可逆的,這與大多數(shù)現(xiàn)有掃描鏈安全性方法形成鮮明對比,在現(xiàn)有掃描鏈安全性方法中,對掃描鏈的任何試圖保護是永久的(例如,燒毀提供掃描鏈存取的一個或一個以上組件),且因此在執(zhí)行掃描鏈安全性方法之后正常使用所述掃描鏈是不可能的。在一個實施例中,掃描鏈的受控中斷及掃描鏈的受控重新建立可使用掃描鏈安全性組件來提供,所述掃描鏈安全性組件經(jīng)配置以用于產(chǎn)生開路條件以防止掃描鏈的正常使用,且經(jīng)配置以用于移除所述開路條件以再次啟用掃描鏈的正常使用。在一個實施例中,所述掃描鏈安全性組件可安置在掃描鏈內(nèi)。掃描鏈內(nèi)的此掃描鏈安全性組件的示范性使用相對于圖IA進行描繪及描述。在一個實施例中,掃描鏈安全性組件可安置在經(jīng)配置以用于提供對掃描鏈的存取的測試存取接口(TAI)內(nèi),例如電氣與電子工程師協(xié)會(IEEE) 1149. I測試存取端口(TAP)。TAI中的此掃描鏈安全性組件的示范性使用相對于圖IB進行描繪及描述。圖IA及IB描繪包括測試系統(tǒng)及受測系統(tǒng)的示范性系統(tǒng)測試環(huán)境的高級框圖。如圖IA及IB中所描繪,系統(tǒng)測試環(huán)境101及102各自包括測試系統(tǒng)(TS) 110及受測系統(tǒng)(SUT) 120。TS 110可為適于測試SUT 120的任何系統(tǒng)。TS 110經(jīng)配置以用于測試SUT 120。TSllO可執(zhí)行SUT 120的任何測試,例如,測試SUT 120的一個或一個以上個別組件、SUT120·的組件的一個或一個以上組合、SUT 120的組件之間的一個或一個以上互連、SUT120的一個或一個以上系統(tǒng)級功能,等等,以及其各種組合。TS 110可執(zhí)行通常與測試受測系統(tǒng)相關(guān)聯(lián)的功能中的任一者,例如執(zhí)行測試程序、向受測系統(tǒng)提供輸入數(shù)據(jù)、從受測系統(tǒng)接收輸出數(shù)據(jù)、處理從受測系統(tǒng)接收的輸出數(shù)據(jù)以確定系統(tǒng)測試結(jié)果及類似功能以及其各種組合。用于測試受測系統(tǒng)的TS 110的設(shè)計及使用在下文中額外詳細地描述。SUT 120可為可使用TS 110來測試的任何系統(tǒng)。SUT 120可包括任何組件,所述組件中的至少一部分可由TS 110個別地及/或以組合方式測試。TS 120可包括一個或一個以上掃描鏈,所述一個或一個以上掃描鏈具有一組或一組以上相關(guān)聯(lián)的輸入及輸出存取引腳,從而提供對待由SUT 120測試的組件的存取。所屬領(lǐng)域的技術(shù)人員將理解可在SUT120中使用掃描鏈測試SUT 120的方式。舉例來說,SUT 120可包括一個或一個以上板,所述板的測試可使用具有相關(guān)聯(lián)的輸入及輸出存取引腳的一個或一個以上掃描鏈來執(zhí)行,所述輸入及輸出存取引腳可用于將輸入測試信號施加到SUT 120及從SUT 120收集輸出測試信號。如圖IA及IB中所描繪,TS 110經(jīng)由測試存取接口(TAI) 125存取SUT 120。TAI 125可使用任何合適測試存取接口來實施,其可取決于TS 110、SUT 120、待執(zhí)行的測試類型等等中的一者或一者以上,以及其各種組合。在一個實施例中,TAI 125可實施為如以IEEE 1149. I標準標準化的聯(lián)合測試行動組(JTAG)測試存取端口(TAP),所述IEEE 1149. I標準以全文引用的方式并入本文中。IEEE 1149. ITAP支持用于測試的以下組信號測試數(shù)據(jù)輸入(TDI)、測試數(shù)據(jù)輸出(TDO)、測試模式選擇(TMS)、測試時鐘(TCK)及(任選地)測試復(fù)位信號(TRST)。SUT120的TDI及TDO引腳以邊界掃描鏈128互連,TS 110可經(jīng)由邊界掃描鏈128在SUT 120上執(zhí)行測試。IEEE 1149. ITAP還支持TAP控制器、指令寄存器、旁路寄存器及(任選地)一個或一個以上額外元件(例如,數(shù)據(jù)寄存器、解碼模塊等等)。TAI 125可包括任何其它合適的測試存取接口。所屬領(lǐng)域的技術(shù)人員將理解,TS 110,TAI 125及SUT 120可以適于提供本文中所描繪及描述的各種實施例的特征的任何合適方式來實施。如圖IA及IB中所描繪,測試環(huán)境101及102各自包括掃描鏈安全性組件(SCSC)130。如圖IA中所描繪,在系統(tǒng)測試環(huán)境101中,SCSC 130 (經(jīng)配置以產(chǎn)生開路以中斷掃描鏈且經(jīng)配置以閉合所述開路以不中斷掃描鏈)可放置在掃描鏈128內(nèi)。TDI輸入耦合到掃描鏈128的輸入處的一系列單元,所述一系列單元又耦合到SCSC 130,SCSC 130又耦合到掃描鏈128的輸出處的一系列單元,所述一系列單元又耦合到TDO輸出。SCSC130在此配置中的使用可通過參考圖2到7而得到更好的理解。如圖IB中所描繪,在系統(tǒng)測試環(huán)境102中,SCSC 130 (經(jīng)配置以產(chǎn)生開路以中斷掃描鏈且經(jīng)配置以閉合所述開路以不中斷掃描鏈)可放置在TAI 125內(nèi)。SCSC 130在此配置中的使用可通過參考圖2到3及8而得到更好的理解。如本文中描述,SCSC 130經(jīng)配置以用于在掃描鏈128內(nèi)產(chǎn)生及移除開路條件。因此,SCSC 130可以適于在掃描鏈128內(nèi)產(chǎn)生及移除開路條件的任何方式實施。在一個實施例中,SCSC 130實施為開路死鎖(O⑶)單元,所述開路死鎖(O⑶)單元的實施例相對于圖3進行描繪及描述。在一個實施例中,O⑶單元可類似于由IEEE P1687工作組提出的分段插入位 (SIB),所述分段插入位(SIB)相對于圖2進行描繪及描述。雖然相對于其中可提供掃描鏈安全性的示范性系統(tǒng)測試環(huán)境進行描繪及描述,但將理解,所述掃描鏈安全性能力可在具有掃描鏈的任何其它合適類型的環(huán)境中提供。圖2描繪由IEEE P1687工作組提出的SIB單元的高級框圖,所述SIB單元經(jīng)配置以用于啟用分層掃描鏈存取。SIB單元200經(jīng)配置以支持掃描鏈的第一分層級(經(jīng)由TDI輸入及TDO輸出)及掃描鏈的第二分層級(經(jīng)由oTDI輸入及iTDO輸出)。SIB單元200包括選擇儀器位(SIB)寄存器210 (具有與其相關(guān)聯(lián)的SIB輸入MUX220)、更新SIB (UpSIB)寄存器230 (具有與其相關(guān)聯(lián)的UpSIB輸入MUX 240)及輸出MUX250。與SIB寄存器210相關(guān)聯(lián)的SIB輸入MUX 220控制到SIB寄存器210的輸入。SIB輸入MUX 220包括兩個輸入端口 221及222。SIB輸入MUX 220接受以下輸入(a)在輸入端口 221處,TDI輸入261 (例如,來自掃描鏈中的先前組件,出于清楚目的而省略),及(2)在輸入端口 222處,SIB寄存器210的輸出。SIB輸入MUX 220由ShDR控制信號264控制,ShDR控制信號264施加到SIB輸入MUX 220的控制端口 223。當ShDR控制信號264為“ I ”時,SIB輸入MUX 220將信號從TDI輸入261經(jīng)由輸入端口 221傳送到SIB寄存器210中。當ShDR控制信號264為“O”時,SIB輸入MUX 220將信號從SIB寄存器210的輸出經(jīng)由輸入端口 222傳送到SIB寄存器210中。SIB寄存器210從SIB輸入MUX 220的輸出接受輸入。SIB寄存器210由施加到SIB寄存器210的時鐘端口 211的時鐘信號(表示為TCK信號263)控制。SIB寄存器210的輸出耦合到以下各者中的每一者到SIB輸入MUX 220的輸入(說明性地,輸入222)、到UpSIB輸入MUX 240的輸入(說明性地,輸入241)、到輸出MUX 250的輸入(說明性地,輸入端口 252)及oTDI端口 266 (當掃描鏈的第二分層級被激活時,oTDI端口 266提供對第二分層級的組件的存取,以用于將信號傳播到所述第二分層級及在所述第二分層級內(nèi)傳播信號)。與UpSIB寄存器230相關(guān)聯(lián)的UpSIB輸入MUX 240控制到UpSIB寄存器230的輸入。UpSIB輸入MUX 240包括兩個輸入端口 241及242。UpSIB輸入MUX 240接受以下輸入(a)在輸入端口 241處,來自SIB寄存器210的輸出,及(2)在輸入端口 242處,來自UpSIB寄存器230的輸出。UpSIB輸入MUX 240由施加到UpSIB輸入MUX 240的控制端口243的UpDR控制信號265控制。當UpDR控制信號265為“ I ”時,UpSIB輸入MUX 240將信號從SIB寄存器210的輸出傳送到UpSIB寄存器230 (經(jīng)由輸入端口 241)。當UpDR控制信號265為“O”時,UpSIB輸入MUX 240將信號從UpSIB寄存器230的輸出傳送到UpSIB寄存器230中(經(jīng)由輸入端口 242)。UpSIB寄存器230從UpSIB輸入MUX 240的輸出接受輸入。UpSIB寄存器230由施加到UpSIB寄存器230的時鐘端口 231的時鐘信號(表示為TCK信號263)控制。UpSIB寄存器230的輸出耦合到以下各者中的每一者到UpSIB輸入MUX 240的輸入(說明性地,輸入242)、輸出MUX 250的控制端口 253及Select_Instr信令路徑268。輸出MUX 250包括兩個輸入端口 251及252。輸出MUX 250接受如下輸入( I)在輸入端口 251處,經(jīng)由iTDO端口 267的來自較低分層級的輸入(當掃描鏈的第二分層級被激活時,iTDO端口 267將存取從掃描鏈的第二分層級的組件提供到掃描鏈的第一分層級),及⑵在輸入端口 252處,來自SIB寄存器210的輸出。輸出MUX 250的輸出耦合到SIB單元200的TDO輸出262 (以傳播到掃描鏈的第一分層級中的后續(xù)組件)。輸出MUX 250的輸出由施加到輸出MUX 250的控制端口 253的控制信號確定。UpSIB寄存器230的輸出耦合到輸出MUX 250的控制端口 253。如圖2中描繪,UpSIB寄存器230的值確定第二分層級是被選擇(即,掃描鏈的部分)還是被取消選擇(即,不是掃描鏈的部分)。當?shù)诙謱蛹壉蝗∠x擇時(即,UpSIB寄存器230的值為“O” ),輸出MUX 250將SIB寄存器210的輸出傳送到SIB單元200的TDO輸出262,且來自iTDO端口 267的值被忽略。當?shù)诙謱蛹壉贿x擇時(即,UpSIB寄存器230的值為“I”),輸出MUX 250將信號從第二分層級(即,從iTDO端口 267)傳送到SIB單元200的TDO輸出262。如本文中描述,在一個實施例中,OCD單元可類似于如相對于圖2描繪及描述的由IEEE P1687工作組提出的分段插入位(SIB)單元。O⑶單元的示范性實施例相對于圖3進行描繪及描述。圖3描繪經(jīng)配置以用于控制掃描鏈安全性的O⑶單元的一個實施例。如從圖2與圖3的比較可見,圖3的O⑶單元300至少在一些方面類似于圖2的SIB 單元 200。如本文中描述,O⑶單元300與掃描鏈相關(guān)聯(lián)且經(jīng)配置以保護O⑶單元300與其相關(guān)聯(lián)的掃描鏈的正常使用。(例如,經(jīng)由將OCD單元300放置在掃描鏈內(nèi)、經(jīng)由將OCD單元300放置在測試存取接口(可經(jīng)由其存取掃描鏈)內(nèi)、或OCD單元300的任何其它合適放置。O⑶單元300經(jīng)配置以響應(yīng)于接收控制信號而在掃描鏈內(nèi)產(chǎn)生開路條件,其中所述開路條件的產(chǎn)生防止掃描鏈的正常使用。用于在掃描鏈中產(chǎn)生開路條件的控制信號可為任何合適的控制信號。在一個實施例中,用于在掃描鏈中產(chǎn)生開路條件的控制信號為掃描寄存器值。在一個此實施例中,所述掃描寄存器值經(jīng)由掃描鏈接收。O⑶單元300經(jīng)配置以響應(yīng)于接收控制信號而從掃描鏈移除開路條件,其中開路條件的移除再次啟用掃描鏈的正常使用。
O⑶單元300包括O⑶寄存器310(具有與其相關(guān)聯(lián)的O⑶輸入MUX 320)、更新OCD (UpOCD)寄存器330 (具有與其相關(guān)聯(lián)的UpOCD輸入MUX 340)及輸入MUX 350。與O⑶寄存器310相關(guān)聯(lián)的O⑶輸入MUX 320控制到O⑶寄存器310的輸入。O⑶輸入MUX 320包括兩個輸入端口 321及322。O⑶輸入MUX 320接受以下輸入(a)在輸入端口 321處,輸入MUX 350的輸出,及(2)在輸入端口 322處,O⑶寄存器310的輸出。O⑶輸入MUX 320由施加到O⑶輸入MUX 320的控制端口 323的ShDR控制信號364控制。當ShDR控制信號364為“I”時,OCD輸入MUX 320經(jīng)由輸入端口 321將信號從輸入MUX 350的輸出傳送到O⑶寄存器310中。當ShDR控制信號364為“O”時,O⑶輸入MUX 320經(jīng)由輸入端口 322將信號從O⑶寄存器310的輸出傳送到O⑶寄存器310中。O⑶寄存器310從O⑶輸入MUX 320的輸出接受輸入。O⑶寄存器310由施加到O⑶寄存器310的時鐘端口 311的時鐘信號(表示為TCK信號363)控制。O⑶寄存器310的輸出耦合到以下各者中的每一者到O⑶輸入MUX 320的輸入(說明性地,輸入322)、到UpO⑶輸入MUX 340的輸入(說明性地,輸入341)及TDO輸出端口 362 (其提供對掃描鏈的 下游單元的存取)。與UpO⑶寄存器330相關(guān)聯(lián)的UpO⑶輸入MUX 340控制到UpO⑶寄存器330的輸入。UpOCD輸入MUX 340包括兩個輸入端口 341及342。UpOCD輸入MUX 340接受以下輸入(a)在輸入端口 341處,來自O(shè)⑶寄存器310的輸出,及⑵在輸入端口 342處,來自UpO⑶寄存器330的輸出。UpO⑶輸入MUX 340由施加到UpO⑶輸入MUX 340的控制端口343的UpDR控制信號365控制。當UpDR控制信號365為“I”時,UpOCD輸入MUX 340將信號從O⑶寄存器310的輸出傳送到UpO⑶寄存器330中(經(jīng)由輸入端口 341)。當UpDR控制信號365為“O”時,UpO⑶輸入MUX 340將信號從UpO⑶寄存器330的輸出傳送到UpO⑶寄存器330中(經(jīng)由輸入端口 342)。UpO⑶寄存器330從UpO⑶輸入MUX 340的輸出接受輸入。UpO⑶寄存器330由施加到UpOCD寄存器330的時鐘端口 331的時鐘信號(表示為TCK信號363)及施加到OCD寄存器310的控制端口 332的安全復(fù)位(SecureRST)信號369控制。UpOCD寄存器330的輸出耦合到到UpO⑶輸入MUX 340的輸入(說明性地,輸入342)及輸入MUX350的控制端Π 353。輸入MUX 350包括兩個輸入端口 351及352。輸入MUX 350接受以下輸入(I)在輸入端口 351處,開路(例如,輸入端口 351不耦合到任何其它組件),及(2)在輸入端口 352處,來自TDI輸入端口 361 (其提供來自掃描鏈的上游單元的存取)的輸入。輸入MUX350的輸出耦合到O⑶輸入MUX 320的輸入端口 321 (以用于經(jīng)由O⑶寄存器310將信號傳播到O⑶單元300的TDO輸出362。輸入MUX 350的輸出由施加到輸入MUX350的控制端口 353的控制信號確定。UpO⑶寄存器330的輸出耦合到輸入MUX 350的控制端口 353以控制輸入MUX 350。UpOCD寄存器330由SecureRST信號369控制,SecureRST信號369將UpOCD寄存器330復(fù)位到已知值(‘I,或‘O,)。UpO⑶寄存器330經(jīng)配置以用于控制輸入MUX 350在掃描鏈中產(chǎn)生開路條件(經(jīng)由在輸入MUX 350處選擇輸入端口 351)且從掃描鏈移除開路條件(經(jīng)由在輸入MUX 350處選擇輸入端口 352,其將O⑶單元300的TDI輸入361連接到O⑶單元300的TDO輸出362 (經(jīng)由O⑶寄存器310),這兩者都連接到掃描)。
在這種意義下,UpO⑶寄存器330及輸入MUX 350各自可被認為是經(jīng)配置以用于從掃描鏈產(chǎn)生及移除開路條件的組件。UpCO寄存器330為經(jīng)配置以響應(yīng)于第一控制信號(例如,經(jīng)由掃描鏈接收的掃描寄存器值)而在掃描鏈中產(chǎn)生開路條件的組件。UpOCD寄存器330經(jīng)配置以通過指令輸入MUX 351選擇輸入端口 351 (經(jīng)由從UpO⑶寄存器330的輸出提供到輸入MUX 350的控制端口 353的控制信號)而產(chǎn)生開路條件。UpO⑶寄存器330為經(jīng)配置以響應(yīng)于第二控制信號(例如,在UpO⑶寄存器330處接收的SecureRST信號)而從掃描鏈移除開路條件的組件。UpO⑶寄存器330經(jīng)配置以通過指令輸入MUX 351選擇輸入端口 352 (經(jīng)由從UpO⑶寄存器330的輸出提供到輸入MUX350的控制端口 353的控制信號)而移除開路條件。輸入MUX 350為經(jīng)配置以響應(yīng)于第一控制信號而在掃描鏈中產(chǎn)生開路條件的組件,其中所述第一控制信號為在輸入MUX 350的控制端口 353處從UpOCD寄存器330的輸出接收的控制信號(例如,響應(yīng)于掃描寄存器值由UpOCD寄存器330接收)。輸入MUX350 經(jīng)配置以響應(yīng)于第一控制信號而通過選擇輸入端口 351在掃描鏈中產(chǎn)生開路條件。輸入MUX 350為經(jīng)配置以響應(yīng)于第二控制信號而在掃描鏈中移除開路條件的組件,其中所述第二控制信號為在輸入MUX 350的控制端口 353處從UpOCD寄存器330的輸出接收的控制信號(例如,響應(yīng)于SecureRST信號由UpO⑶寄存器330接收)。輸入MUX350經(jīng)配置以響應(yīng)于第二控制信號而通過選擇輸入端口 352在掃描鏈中移除開路條件。如本文中描述,SecureRST信號369適于用于經(jīng)由UpO⑶寄存器330來控制輸入MUX 350,從而啟用通過輸入MUX 350進行的從經(jīng)由輸入端口 351選擇開路輸入(使得掃描鏈經(jīng)受開路條件,其中掃描鏈的正常使用被阻止)到經(jīng)由輸入端口 352選擇來自TDI輸入端口 361的輸入(使得開路條件被從掃描鏈移除且掃描鏈的正常使用是可能的)的受控切換。因此,SecureRST信號369經(jīng)配置以控制O⑶單元300的操作,以用于啟用以受控方式從相關(guān)聯(lián)的掃描鏈移除開路條件。如從圖2與圖3的比較可見,圖3的O⑶單元300類似于圖2的SIB單元200,其中至少以下差異被實施(l)oTDI-iTDO的推導(dǎo)有意地保持斷開(如輸入MUX 350的輸入端口 351處的開路所指示);及(2) UpOCD寄存器330 (其控制輸入MUX 350)放置在MUX 350之后。由于這些差異,(a) 一旦O⑶單元300被啟用,掃描鏈就進入死鎖狀態(tài),借此在掃描鏈中產(chǎn)生開路,其防止掃描鏈的正常使用,且其不能通過傳統(tǒng)掃描存取移除,及(b)僅有的移除死鎖狀態(tài)且因此閉合電路且恢復(fù)掃描鏈的正常操作能力的方式為通過斷言SecureRST信號369。以此方式,可使掃描鏈的正常使用的安全性級別取決于產(chǎn)生SecureRST信號的過程的安全性級別。SecureRST信號369可以任何合適方式產(chǎn)生(例如,通過任何合適組件、響應(yīng)于任何合適條件等等)。在用于產(chǎn)生SecureRST信號369的至少一些此類實施例中,可使用以下原則中的一者或一者以上
(I) SecureRST信號369不連結(jié)于與JTAG掃描存取相關(guān)聯(lián)的傳統(tǒng)復(fù)位能力,否則正常復(fù)位操作將再次啟用全掃描鏈存取(即,破壞死鎖狀態(tài),且因此閉合電路且恢復(fù)掃描鏈的正常操作能力);(2) UpO⑶單元300可為永久存儲裝置(例如,由電池供電或可在復(fù)位之后即刻設(shè)為“斷開”;及(3) SecureRST信號369可在其中安置有O⑶單元300的相同芯片內(nèi)產(chǎn)生(使得不可能經(jīng)由探針存取),或SecureRST信號369可以用于隱藏SecureRST信號369或使SecureRST信號369難以存取的方式在板上路由(例如,在內(nèi)層中或使用隱藏SecureRST信號369或使SecureRST信號369難以存取的任何其它合適方式)。為使OCD單元300在保護掃描鏈的正常使用中是有效的,其狀態(tài)是持續(xù)的,即,其在電力循環(huán)中保持不變。否則,簡單的電力循環(huán)將足以破壞OCD單元300的安全性且重新·建立掃描鏈的正常使用??梢匀魏魏线m方式使O⑶單元300的狀態(tài)持續(xù),例如(I)通過使用用于UpO⑶寄存器330的永久存儲裝置(例如,F(xiàn)LASH單元或任何其它合適的永久存儲裝置);(2)通過確保電力循環(huán)之后的默認值使開路條件有效(即,在輸入MUX 350處選擇輸入351),這可以任何合適方式進行,例如,通過(a)使用用于UpOCD寄存器330的復(fù)位信號(未在圖3中描繪),(b)在FPGA應(yīng)用中,定義UpOCD在編程位流中的默認值,等等??梢匀魏纹渌线m方式使O⑶單元300的狀態(tài)持續(xù)。類似地,對于SecureRST信號369及其相關(guān)聯(lián)的產(chǎn)生組件/邏輯,信號在任何時間都不允許浮動,且必要的是,其在開啟時是非有效的。這可使用任何合適技術(shù)來實現(xiàn),例如通過在電路產(chǎn)生時間處實施這些性質(zhì)且以例如形式驗證等技術(shù)或使用任何其它合適技術(shù)來檢驗這些性質(zhì)。SecureRST信號369可以任何合適方式產(chǎn)生,如相對于圖4到6描繪及描述,其描繪用于產(chǎn)生SecureRST信號369的各種實施例。在一個實施例中,SecureRST信號369響應(yīng)于由密鑰檢驗器功能進行的對安全密鑰的驗證而產(chǎn)生。圖4A描繪通過由密鑰檢驗器功能進行的對安全密鑰的驗證來產(chǎn)生SecureRST信號的一個實施例,所述安全密鑰被移位到正被保護的掃描鏈的輸入部分中。雖然主要相對于產(chǎn)生供圖3的O⑶單元300使用的SecureRST信號進行描繪及描述,但將理解,圖4A的實施例可用于產(chǎn)生供任何合適的掃描鏈安全性組件使用的安全性控制信號。如圖4A中描繪,具有掃描鏈410的系統(tǒng)401具有安置在掃描鏈410內(nèi)的O⑶單元430。系統(tǒng)401包括密鑰檢驗器功能420A,密鑰檢驗器功能420A經(jīng)配置以響應(yīng)于驗證安全密鑰而產(chǎn)生控制信號,其中所述控制信號適于用于控制OCD單元430。掃描鏈410包括掃描鏈410的輸入部分410工,輸入部分410工耦合到到系統(tǒng)401的TDI輸入(例如,來自TAP或其它測試存取接口 )且耦合到O⑶單元430。掃描鏈410的輸入部分410工包括多個單元412工(說明性地,16個單元)。掃描鏈410的輸入部分410工能夠被寫入,但不能被讀取,而O⑶單元430經(jīng)配置以在掃描鏈410中引起開路條件。掃描鏈410包括掃描鏈410的輸出部分410。,輸出部分410。耦合到O⑶單元430且耦合到來自系統(tǒng)401的TDO輸出(例如,到TAP或其它測試存取接口)。掃描鏈410的輸出部分410。包括多個單元412。(說明性地,16個單元)。掃描鏈410的輸出部分410。能夠被讀取,但不能被寫入,而O⑶單元430經(jīng)配置以在掃描鏈410中引起開路條件。O⑶單元430可以任何合適方式實施。在一個實施例中,O⑶單元430實施為圖3的OCD單元300,或可使用任何其它合適第OCD單元或其它合適的掃描鏈安全性組件來實施。O⑶單元430的TD I輸入(出于清楚目的而省略,但類似于圖3的O⑶單元300的TDI輸入361)耦合到掃描鏈410的輸入部分MO1的距離到系統(tǒng)401的TDI輸入最遠的單元。O⑶單元430的TDO輸出(出于清楚目的而省略,但類似于圖3的O⑶單元300的TDO輸入362)耦合到掃描鏈410的輸出部分410。的距離來自系統(tǒng)401的TDO輸出最遠的單元。密鑰檢驗器功能420a經(jīng)配置以響應(yīng)于驗證被移位到掃描鏈410的輸入部分MO1中的安全密鑰而產(chǎn)生控制信號(說明性地,SecureRST信號425)。當O⑶單元430經(jīng)配置以在掃描鏈410中引起開路條件時,安全密鑰被移位到掃描鏈410的輸入部分41(^中,以達到觸發(fā)O⑶單元430移除開路條件且允許掃描鏈410的正常使用的目的。安全密鑰可為任何合適長度,其可取決于掃描鏈410的輸入部分MO1的大小。在一個實施例中,安全密鑰的長度小于或等于掃描鏈410的輸入部分MO1的長度。安全密鑰可被掃描到掃描鏈410的輸入部分410工中的任何合適位置中,借此提供更強的安全性,因為惡意攻擊者不僅需要知道安全密鑰的值,所述惡意攻擊者還將需要準確地知道將安全密鑰放置在何處以解鎖掃描鏈410 (即,以移除開路條件)。在圖4A的實例中,安全密鑰為占據(jù)掃描鏈410的輸入部分41(^的位位置5到14的10位值(其中輸入部分410工的位位置O鄰近于系統(tǒng)401的TDI且輸入部分4101的位位置15鄰近于O⑶單元430的TDI)。將理解,安全密鑰可使用任何其它合適數(shù)目的位,其可從掃描鏈410的輸入部分MO1內(nèi)的任何其它合適位置讀取。圖4B描繪通過由密鑰檢驗器功能進行的對安全密鑰的驗證來產(chǎn)生SecureRST信號的一個實施例,所述安全密鑰被移位到密鑰檢驗器功能的緩沖器中。雖然主要相對于產(chǎn)生供圖3的O⑶單元300使用的SecureRST信號進行描繪及描述,但將理解,圖4B的實施例可用于產(chǎn)生供任何合適的掃描鏈安全性組件使用的安全性控制信號。如圖4B中描繪,除了用于由密鑰檢驗器功能420進行的驗證的安全密鑰的源之夕卜,系統(tǒng)402與圖4A的系統(tǒng)401幾乎相同。即,在系統(tǒng)402中,密鑰檢驗器功能420B經(jīng)配置以從與密鑰檢驗器功能420b相關(guān)聯(lián)的安全密鑰緩沖器422讀取安全密鑰(而不是從掃描鏈410的輸入部分410工,如由圖4A的系統(tǒng)401的密鑰檢驗器功能420A進行)。安全密鑰緩沖器422獨立于掃描鏈410,且因此,安全密鑰的長度不取決于掃描鏈410的輸入部分MO1的長度。因此,安全密鑰可為任何合適長度,且此外可視需要來進一步保護(例如,隱臧、加擾等等)。安全密鑰緩沖器422可以任何合適方式實施。在一個實施例中,安全密鑰緩沖器422可在密鑰檢驗器功能420b外部。在一個實施例中,安全密鑰緩沖器422可在密鑰檢驗器功能420b內(nèi)部。安全密鑰緩沖器422可從任何合適源接收安全密鑰。安全密鑰的源可安置在系統(tǒng)402上或可遠離系統(tǒng)402。在一個實施例中,安全密鑰緩沖器422可從掃描鏈410的輸入部分410工接收安全密鑰。在此實施例中,安全密鑰緩沖器422可在掃描鏈410的輸入部分410χ中的任何合適位置處耦合到掃描鏈410的輸入部分410卩舉例來說,在一個此實施例中,如圖4Α中描繪,安全密鑰緩沖器422可在掃描鏈410的輸入部分410工耦合到OCD單元430的TDI輸入端口處耦合到掃描鏈410的輸入部分MO1。將理解,安全密鑰緩沖器422可在任何其它合適位置處耦合到掃描鏈410的輸入部分410卩在一個實施例中,安全密鑰緩沖器422可從另一掃描鏈(未描繪)接收安全密鑰。將理解,安全密鑰緩沖器422可從任何其它合適源接收安全密鑰。當O⑶單元430經(jīng)配置以在掃描鏈410中引起開路條件時,安全密鑰被提供到安全密鑰緩沖器422,以達到觸發(fā)O⑶單元430移除開路條件且允許掃描鏈410的正常使用的目的。密鑰檢驗器功能420β可從安全密鑰緩沖器422串行地或并行地讀取安全密鑰。密鑰檢驗器功能42(^經(jīng)配置以響應(yīng)于驗證安全密鑰緩沖器422內(nèi)可用的安全密鑰而產(chǎn)生控制信號(說明性地,SecureRST信號425)。 系統(tǒng)401及402的密鑰檢驗器功能420A及420B可分別具有各種共同的功能及/或能力,且因此,可一起稱為S鑰檢驗器功能420。在一個實施例中,不管OCD單元430是否有效,安全密鑰檢驗操作可由密鑰檢驗器功能420執(zhí)行。在一個實施例中,僅當OCD單元430被確定為是有效時,安全密鑰檢驗操作由密鑰檢驗器功能420執(zhí)行。在其它實施例中,每當安全密鑰被插入到掃描鏈的輸入部分中時,OCD單元430將被復(fù)位。這將不引起安全性問題,但可導(dǎo)致無用的切換活動。密鑰檢驗器功能420可以任何合適方式實施。舉例來說,在一個實施例中,密鑰檢驗器功能420可實施為對硬接線值的比較器。舉例來說,在一個實施例中,F(xiàn)PGA可決定其在位流產(chǎn)生時間處實施的電路的“硬接線”值,使得設(shè)計者可選擇他或她自己的值,且此外可在每一更新之后改變所述值。舉例來說,在一個實施例中,由密鑰檢驗器功能420驗證的安全密鑰可從一次性可編程元件(例如,熔絲/反熔絲盒)獲得。舉例來說,在一個實施例中,由密鑰檢驗器功能420驗證的安全密鑰可從一個或一個以上安全存儲元件獲得(例如,觸發(fā)器、具有備份電池的電可擦除可編程只讀存儲器(EEPROM)等等,以及其各種組合)。舉例來說,在一個實施例中,密鑰檢驗器功能420可實施為加密IP或其它合適電路。密鑰檢驗器功能420可以任何其它合適方式實施。因此,將理解,掃描鏈安全性能力的基于安全密鑰的實施例可視需要縮放,從而實現(xiàn)復(fù)雜性、安全性及靈活性方面的各種權(quán)衡。雖然主要相對于用于使用安全密鑰的驗證來觸發(fā)控制信號的產(chǎn)生以用于再次啟用掃描鏈的正常使用的特定實施例來描繪及描述,但將理解,使用安全密鑰的驗證以觸發(fā)控制信號的產(chǎn)生以用于再次啟用掃描鏈的正常使用可以任何其它合適方式實施。將進一步理解,可執(zhí)行此類控制信號的產(chǎn)生以用于控制OCD單元或任何其它合適的掃描鏈安全性組件。在一個實施例中,使用基于詢問的認證方法來產(chǎn)生SecureRST信號369。
圖5描繪經(jīng)由使用基于詢問的認證方法產(chǎn)生SecureRST信號的一個實施例。雖然主要相對于產(chǎn)生供圖3的O⑶單元使用的SecureRST信號進行描繪及描述,但將理解,圖5的實施例可用于產(chǎn)生供任何合適的掃描鏈安全性組件使用的安全性控制信號。如圖5中描繪,系統(tǒng)500包括控制器501及系統(tǒng)502??刂破?01經(jīng)配置以用于控制系統(tǒng)502??刂破?01為適于經(jīng)由測試存取接口(例如,圖I的測試系統(tǒng)110)存取系統(tǒng)502的任何控制器。系統(tǒng)控制器502包括掃描鏈510,掃描鏈510具有安置在掃描鏈510中的O⑶單元530。系統(tǒng)502包括密碼核520,密碼核520經(jīng)配置以響應(yīng)于在基于詢問的認證方法中滿足詢問而產(chǎn)生控制信號。掃描鏈510包括掃描鏈510的輸入部分SlO1,其耦合到到系統(tǒng)502的TDI輸入(例如,從TAP或其它測試存取接口)且耦合到O⑶單元530。掃描鏈510的輸入部分510工包括多個單元SU1 (說明性地,16個單元)。掃描鏈510的輸入部分SlO1能夠被寫入,但不能夠被讀取,而OCD單元530經(jīng)配置以在掃描鏈510中引起開路條件。掃描鏈510包括掃描鏈510的輸出部分510。,輸出部分510。耦合到O⑶單元530且耦合到來自系統(tǒng)502的TDO輸出(例如,到TAP或其它測試存取接口)。掃描鏈510的輸出部分51(^包括多個單元512J說明性地,16個單元)。掃描鏈510的輸出部分51(^能夠被讀取,但不能夠被寫入,而O⑶單元530經(jīng)配置以在掃描鏈510中引起開路條件。O⑶單元530可以任何合適方式實施。在一個實施例中,O⑶單元530實施為圖3的OCD單元300,或可使用任何其它合適的OCD單元或其它任何合適的掃描鏈安全性組件來實施。O⑶單元530的TDI輸入(出于清楚目的而省略,但類似于圖3的O⑶單元300的TDI輸入361)耦合到掃描鏈510的輸入部分510工的距離到系統(tǒng)502的TDI輸入最遠的單元。O⑶單元530的TDO輸出(出于清楚目的而省略,但類似于圖3的O⑶單元300的TDO輸入362)耦合到掃描鏈510的輸出部分510。的距離來自系統(tǒng)502的TDO輸出最遠的單元。O⑶單元530經(jīng)配置以經(jīng)由控制信號(說明性地,0CD_active信號535)激活密碼核520。密碼核520經(jīng)配置以用于響應(yīng)于在基于詢問的認證方法中滿足詢問而產(chǎn)生控制信號(說明性地,SecureRST信號525)。在一個實施例中,所述基于詢問的認證方法如下進行。密碼核520由O⑶單元530 經(jīng)由從O⑶單元530提供到密碼核520的0CD_active信號535來啟用。響應(yīng)于被啟用,密碼核520通過在掃描鏈510的輸出部分510。中寫入詢問值來發(fā)出詢問。密碼核520使用密碼算法來產(chǎn)生所述詢問值。控制器501經(jīng)由掃描操作從掃描鏈510的輸出部分51(^讀取所述詢問值??刂破?01使用所述詢問值來計算相關(guān)聯(lián)的回答值??刂破?01使用密碼算法來計算回答值??刂破?01經(jīng)由掃描操作將所述回答值寫入到掃描鏈510的輸入部分SlO1中。因此,控制器501經(jīng)配置以作為回答組件而操作,所述回答組件經(jīng)配置以用于計算基于詢問的認證方法的答案。密碼核520從掃描鏈510的輸入部分SlO1讀取回答值且嘗試驗證所述回答值。如果密碼核520驗證所述詢問值(即,所述詢問符合或滿足),那么密碼核520產(chǎn)生SecureRST 525信號(即,掃描鏈510中的開路條件被移除,借此解鎖掃描鏈510以用于啟用掃描鏈510的正常操作)。如果密碼核520未驗證所述詢問值(即,詢問不符合),那么密碼核520不產(chǎn)生SecureRST 525信號(即,維持掃描鏈510中的開路條件,使得掃描鏈510保持鎖定且掃描鏈510的正常使用被阻止)。當O⑶單元530經(jīng)配置以在掃描鏈510中引起開路條件時,系統(tǒng)502經(jīng)配置以起始基于詢問的認證方法,以達到觸發(fā)O⑶單元530移除開路條件且允許掃描鏈510的正常使用的目的。詢問值及回答值可具有任何合適點長度,其可分別取決于掃描鏈510的輸入部分510!及輸出部分51(^的大小。在一個實施例中,詢問值及回答值的長度分別小于或等于掃描鏈510的輸入部分SlO1及輸出部分51(^的長度。詢問值及回答值可被掃描到掃描鏈510的輸入部分SlO1及輸出部分51(^內(nèi)的任何合適位置中,借此提供更強的安全性,因為惡意攻擊者不僅需要知道詢問值及回答值,惡意攻擊者還將需要準確地知道從何處讀取所述詢問值及將所述回答值放置在何處,以便移除開路條件,且從而,再次啟用掃描鏈的正常使用。在圖5的實例中,詢問值及回答值各自分別為占據(jù)掃描鏈510的輸入部分510工及 輸出部分510。的位位置3到12的10位值(其中輸入部分510工的位位置O鄰近于系統(tǒng)502的TDI且輸出部分510。的位位置O鄰近于O⑶單元530的TD0)。將理解,詢問值及回答值可使用任何其它合適數(shù)目的位,其可從掃描鏈510的輸入部分SlO1及輸出部分51(^中的任何其它合適位置讀取。雖然主要相對于其中控制器501 (其經(jīng)配置以經(jīng)由測試存取接口存取系統(tǒng)502)作為經(jīng)配置以計算基于詢問的認證方法的答案的回答組件而操作的實施例進行描繪及描述,但將理解,任何其它遠程組件可計算基于詢問的認證方法的答案。雖然主要相對于其中詢問值及回答值是從掃描鏈510獲得的實施例進行描繪及描述,但將理解,詢問及/或回答值可從具有此類值的任何其它合適源獲得。舉例來說,在一個實施例中,基于緩沖器的方案(例如,類似于用于獲得圖4B中的安全密鑰的基于緩沖器的方案)可用于獲得詢問及/或回答值。舉例來說,單個緩沖器可用于存儲詢問值及回答值。舉例來說,詢問緩沖器可用于存儲詢問值及/或回答緩沖器可用于存儲回答值。將理解,此類緩沖器方案的實施方案可類似于圖4B的緩沖器方案的實施方案(即,類似于使用圖4B的緩沖器方案的對圖4A的修改)。舉例來說,在一個實施例中,詢問及/或回答值可從完全獨立于系統(tǒng)500的源獲得(例如,從不同的掃描鏈)。將理解,詢問及/或回答值可從任何其它合適源獲得。雖然主要相對于用于使用基于詢問的認證方法以觸發(fā)控制信號的產(chǎn)生以用于再次啟用掃描鏈的正常使用的特定實施例進行描繪及描述,但將理解,使用基于詢問的認證方法以觸發(fā)控制信號的產(chǎn)生以用于再次啟用掃描鏈的正常使用可以任何其它合適方式實施。將進一步理解,可執(zhí)行此類控制信號的產(chǎn)生以用于控制OCD單元或任何其它合適的掃描鏈安全性組件。雖然本文主要相對于其中OCD單元實施為單個裝置(其中掃描鏈的中斷點緊接在掃描鏈上的OCD單元(例如,圖3的OCD單元300)之前)的實施例進行描繪及描述,但在一個實施例中,OCD單元可經(jīng)修改使得掃描鏈的中斷點位于與OCD寄存器不同的位置中。在一個此實施例中,O⑶單元的第一部分安置在掃描鏈的第一位置中,且O⑶單元的第二部分安置在掃描鏈中的第二部分中,其中所述第一及第二位置可為掃描鏈內(nèi)的任何位置。示范性實施例相對于圖6進行描繪及描述。圖6描繪經(jīng)配置以用于控制掃描鏈安全性的遠程O⑶單元的一個實施例。如圖6中描繪,遠程O⑶單元600的操作與圖3的O⑶單元300的操作相同(且,因此,遠程O⑶單元600的組件的編號與圖3的O⑶單元300的組件的編號相同),然而,遠程OCD單元600使用放置在掃描鏈內(nèi)的兩個不同位置中的兩個物理裝置來實施(而不是使用實施在掃描鏈的單個位置內(nèi)的單個物理裝置,正如圖3的O⑶單元300的情況)。如圖6中描繪,O⑶單元300的輸入MUX 350安置在第一掃描鏈位置610中且O⑶單元300的剩余組件(例如,O⑶寄存器310、O⑶輸入MUX 320、UpO⑶寄存器330、UpO⑶輸入MUX 340及相關(guān)組件)安置在第二掃描鏈位置620中,借此形成遠程O⑶單元600。第一掃描鏈位置610及第二掃描鏈位置620可位于掃描鏈上的任何位置處。因此,因為掃描鏈中斷點位于第一掃描鏈位置610處的輸入MUX 350的輸出處,且··輸入MUX 350經(jīng)由在第二掃描鏈位置處620處由UpO⑶寄存器350在SecureRST信號369的控制下產(chǎn)生的控制信號來控制,所以掃描鏈中斷點在物理上遠離掃描鏈中斷控制邏輯的位置。以此方式,設(shè)計者能夠隱藏掃描鏈中斷控制邏輯的位置,借此為控制對掃描鏈的正常使用的存取提供額外的安全性。雖然本文主要相對于其中單個O⑶單元(例如,圖3的O⑶單元300或圖6的遠程OCD單元600)用于提供掃描鏈安全性的實施例進行描繪及描述,但在其它實施例中,多個OCD單元可組合地用于提供掃描鏈安全性,使得掃描鏈安全性的級別進一步提高。在此類實施例中,多個O⑶單元可使用一個或一個以上單元組合架構(gòu)類型(例如,使用一個或一個以上OCD單元的級聯(lián)、OCD單元的互鎖及用于使用OCD單元的組合來提供掃描鏈存取的類似技術(shù))來實施。舉例來說,在一個實施例中,多個或甚至許多個基于安全密鑰的SecureRST產(chǎn)生實施方案(例如,相對于圖4A及/或4B進行描繪及描述)可一個接一個地級聯(lián)在掃描鏈內(nèi)以保護對掃描鏈的正常使用的存取。舉例來說,在一個實施例中,用于SecureRST產(chǎn)生的基于安全密鑰的實施方案的各種組合(例如,相對于圖4A及/或4B進行描繪及描述)及用于SecureRST產(chǎn)生實施方案的基于詢問的認證方法(例如,相對于圖5進行描繪及描述)可用于保護對掃描鏈的正常使用的存取。舉例來說,在一個實施例中,多次級聯(lián)OCD單元可用于提供安全掃描鏈存取。舉例來說,在一個此實施例中,OCD單元中的每一者必須在某一時間中解鎖以解鎖掃描鏈存取,否則掃描鏈上的鎖定被再次斷言。這可以任何合適方式實施。將理解,此類O⑶單元類型、SecureRST產(chǎn)生實施方案/方法及/或O⑶單元組合架構(gòu)的各種其它布置可用于保護對掃描鏈的正常使用的存取(例如,使用圖3的一個或一個以上O⑶單元300及/或圖6的一個或一個以上遠程O⑶單元600、使用用于圖4A及/或圖4B的SecureRST產(chǎn)生的基于安全密鑰的實施方案中的一者或一者以上、使用用于圖5的SecureRST產(chǎn)生的一個或一個以上基于詢問的認證方法等等,以及其各種組合)。在此類實施例中,將理解,遠程O⑶單元(例如,圖6的遠程O⑶單元600)可不僅僅配置有在相同掃描鏈的相同分層級內(nèi)的不同位置處的中斷點與控制邏輯的分離,而且可經(jīng)配置以提供在不同掃描鏈內(nèi)的相同掃描的不同分層級處的中斷點與控制邏輯的分離等等,以及其各種組合。在此類實施例中,將理解,因為每一 OCD單元是簡單、低成本單元(例如,僅由一個掃描寄存器(兩個位)及三個多路復(fù)用器組成),所以在同一系統(tǒng)內(nèi)使用多個OCD單元為提供增強的掃描鏈安全性的經(jīng)濟的方式。雖然本文主要相對于其中在其中安置有掃描鏈安全性組件的系統(tǒng)內(nèi)產(chǎn)生SecureRST信號的實施例進行描繪及描述,但可在任何合適位置處產(chǎn)生ScureRST信號,包括其中安置有掃描鏈安全性組件的系統(tǒng)外的位置。舉例來說,在一個實施例中,芯片上的處理器可經(jīng)配置以執(zhí)行認證算法以用于確定何時產(chǎn)生SecureRST信號。在此實施例中,因為SecureRST信號的產(chǎn)生是由處理器控制,所以掃描鏈安全性是由所述處理器控制,且因此許多可能性對于控制掃描鏈安全性來說是可用的。舉例來說,在一個此實施例中,處理器可被遠程地存取以用于(I)指令處理器通過 再次啟用系統(tǒng)的掃描鏈的正常使用而將系統(tǒng)置于“測試模式”中(例如,通過使用本文中描繪及描述的一個或一個以上掃描鏈安全性實施例來移除在掃描鏈中產(chǎn)生的開路條件)及
(2)在完成測試之后,指令所述處理器保護掃描鏈以防止掃描鏈的正常使用(例如,通過在掃描鏈中再次斷言開路條件,例如經(jīng)由使用本文中描繪及描述的一個或一個以上OCD單元或其它實施例),使得所述系統(tǒng)在測試完成之后被再次置于安全狀態(tài)中。在此類實施例中,對處理器的遠程存取可以任何合適方式實施,例如,經(jīng)由直接物理連接、通過聯(lián)網(wǎng)連接(例如,互聯(lián)網(wǎng)連接或其它合適的網(wǎng)絡(luò)連接)等等。將理解,此類型的掃描鏈安全性控制對于例如現(xiàn)場及/或遠程測試、維護、更新等等以及其各種組合的應(yīng)用來說是有利的。如本文中描述,且如所屬領(lǐng)域的技術(shù)人員將理解,在大多數(shù)JTAG系統(tǒng)中,TAP為對所述系統(tǒng)的唯一存取點。1149. ITAP的配置在此項技術(shù)中是已知的。1149. ITAP啟用對系統(tǒng)的掃描鏈的存取。1149. ITAP由標準化的有限狀態(tài)機(FSM)且由界定其行為的指令寄存器(IR)組成。1149. ITAP還經(jīng)由包括旁路寄存器而支持旁路功能當特定指令(即,BYPASS)被發(fā)送到IR中時,1149. ITAP被設(shè)為透明的且僅一個位(即,旁路寄存器的位)存在于掃描鏈中。這為JATG的基本特征,其在多個JTAG系統(tǒng)連在一起時是有用的。在一個實施例中,通過將O⑶單元安置在系統(tǒng)的1149. ITAP內(nèi)而提供掃描鏈安全性。用于經(jīng)由控制系統(tǒng)的1149. ITAP來提供掃描鏈安全性的示范性實施例相對于圖7進行描繪及描述。圖7描繪JTAG系統(tǒng)的TAP的一個實施例,其中所述TAP經(jīng)配置以用于為JTAG系統(tǒng)的掃描鏈提供安全性。如圖7中所描繪,TAP 700為1149. ITAP的修改版本。TAP 700通過經(jīng)由在1149. ITAP的指令寄存器(IR)的開始處插入O⑶單元710而修改1149. ITAP (如1149. I標準中所定義)來形成。OCD單元710可為任何合適的OCD單元,例如相對于圖3描繪及描述的O⑶單元300。通過在IR的開始處安置O⑶單元710,有可能定義TAP的旁路-死鎖(BYPASS-DEADLOCK)狀態(tài)。在此情形下,一旦指令被設(shè)定,TAP 700就被置于旁路模式中,且O⑶單元710鎖定IR狀態(tài),從而使改變IR狀態(tài)變得不可能。因此,JTAG系統(tǒng)變得完全不可存取,直到產(chǎn)生用于解鎖IR狀態(tài)的SecureRST信號為止。在此實施例中,SecureRST信號(經(jīng)配置以用于解鎖IR狀態(tài)且,因此,提供對JTAG系統(tǒng)的存取)可以任何合適方式產(chǎn)生。在一個實施例中,SecureRST信號使用本文中描繪及描述的SecureRST信號產(chǎn)生的任何方式產(chǎn)生。在一個實施例中,SecureRST信號是由芯片處理器中的一者產(chǎn)生。在一個實施例中,SecureRST信號是從另一 JTAG系統(tǒng)的掃描鏈接收。在此類實施例中,通過在TAP中引入開路條件,可以可控地鎖定及解鎖相關(guān)聯(lián)系統(tǒng)的整個掃描鏈。雖然上文主要相對于用于解鎖對掃描鏈的存取的特定實施例進行描繪及描述,但在一個實施例中,可利用一個或一個以上特殊TAP序列來解鎖對掃描鏈的存取。在此類實施例中,TAP FSM中的特殊轉(zhuǎn)變(其在嚴格的JTAG術(shù)語中不具有直接意義或作用)可用于解鎖對掃描鏈的存取。將理解,此類特殊轉(zhuǎn)變可用于其它目的(例如,用于在IEEE1149. I標準上疊加其它協(xié)議),且位于ScanBridge及IEEE 1149. 7方式的核心處。通過使用特殊的TAP轉(zhuǎn)變序列,此類方式能夠在若干配置中弓I入新系統(tǒng)狀態(tài)及掃描數(shù)據(jù),在所述配置中, 在一般的JTAG中通常是不可能的。因此,ScanBridge, IEEE 1149. 7及其它類似方式可用于解鎖對掃描鏈的存取。此用于解鎖對掃描鏈的存取的技術(shù)可結(jié)合本文中描繪及描述的其它基于OCD的實施例中的任一者而使用。圖8描繪用于在掃描鏈中產(chǎn)生開路條件的方法的一個實施例。在一個實施例中,圖8的方法800由與掃描鏈相關(guān)聯(lián)的掃描鏈安全性組件(例如本文中描繪及描述的OCD單元)執(zhí)行。在步驟802處,方法800開始。在步驟804處,接收掃描寄存器值。所述掃描寄存器值由掃描鏈安全性組件接收。所述掃描寄存器值經(jīng)由掃描鏈接收。在步驟806處,響應(yīng)于所述掃描寄存器值在掃描鏈中產(chǎn)生開路條件。在步驟808處,方法800結(jié)束。如本文中描述,所述開路條件防止掃描鏈的正常使用,直到接收到用于觸發(fā)從掃描鏈移除開路條件的控制信號為止。圖9描繪用于產(chǎn)生用于從掃描鏈移除開路條件的控制信號的方法的一個實施例。在一個實施例中,圖9的方法900由安全性驗證組件(例如,密鑰檢驗器功能、基于詢問的認證組件等等)執(zhí)行。在步驟902處,方法900開始。在步驟904處,執(zhí)行安全性驗證。所述安全性驗證可以任何合適方式執(zhí)行,例如驗證安全密鑰、使用基于詢問的認證過程等等。在步驟906處,做出關(guān)于安全性驗證是否成功的確定。如果所述安全性驗證是不成功的,那么方法900繼續(xù)進行到步驟912,其中方法900在不產(chǎn)生經(jīng)配置以用于從掃描鏈移除開路條件的控制信號的情況下結(jié)束(即,掃描鏈的正常使用被阻止)。如果所述安全性驗證是成功的,則方法900繼續(xù)進行到步驟908。在步驟908處,產(chǎn)生控制信號。所述控制信號經(jīng)產(chǎn)生以用于從掃描鏈移除開路條件(即,用于再次啟用掃描鏈的正常使用)。在步驟910處,所述控制信號朝向經(jīng)配置以用于響應(yīng)于所述控制信號而從掃描鏈移除開路條件的組件傳播。方法900從步驟910繼續(xù)進行到步驟912。在步驟912處,方法900結(jié)束。圖10描繪用于使用控制信號從掃描鏈移除開路條件的方法的一個實施例。在一個實施例中,圖10的方法1000由與掃描鏈相關(guān)聯(lián)的掃描鏈安全性組件(例如本文中描繪及描述的O⑶單元)執(zhí)行。在步驟1002處,方法1000開始。在步驟1004處,接收控制信號。所述控制信號由掃描鏈安全性組件接收。所述控制信號可從任何合適源接收。在步驟1006處,響應(yīng)于控制信號而從掃描鏈移除掃描鏈中的開路條件。在步驟1008處,方法1000結(jié)束。如本文中描述,響應(yīng)于控制信號而移除開路條件再次啟用掃描鏈的正常使用。雖然本文中主要相對于使用具有特定配置的O⑶單元(說明性地,相對于圖3及6描繪及描述的OCD單元的實施例)進行描繪及描述,但將理解,任何其它合適的OCD單元(具有任何其它合適配置)可用于提供掃描鏈安全性。雖然本文中主要相對于使用一個或一個以上O⑶單元進行描繪及描述,但將理解,任何其它合適的掃描鏈安全性組件可用于(結(jié)合使用OCD單元及/或代替使用OCD單元)提供掃描鏈安全性。圖11描繪適于用于執(zhí)行本文中描述的功能的計算機的高級框圖。如圖11中描繪,計算機1100包括處理器元件1102 (例如,中央處理單元(CPU)及/ 或任何其它合適第處理器)、存儲器1104(例如,隨機存取存儲器(RAM)、只讀存儲器(ROM)等等)、合作模塊/進程1105及各種輸入/輸出裝置1106 (例如,用戶輸入裝置(例如,鍵盤、小鍵盤、鼠標等等)、用戶輸出裝置(例如,顯示器、揚聲器等等)、輸入端口、輸出端口、接收器、發(fā)射器及存儲裝置(例如,磁帶驅(qū)動器、軟盤驅(qū)動器、硬盤驅(qū)動器、壓縮磁盤驅(qū)動器
坐坐UJJo將理解,本文中描繪及描述的功能可以軟件及/或硬件實施,例如使用通用計算機、一個或一個以上專用集成電路(ASIC)及/或任何其它硬件等效物。在一個實施例中,合作進程1105可載入到存儲器1104中且由處理器1102執(zhí)行以實施如本文中論述的功能。因此,合作進程1105(包括相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu))可存儲在計算機可讀存儲媒體上,例如RAM存儲器、磁性或光學(xué)驅(qū)動器或盤等等。將理解,圖11中描繪的計算機1100提供適于實施本文中描述的功能元件及/或本文中描述的功能元件的一部分的通用架構(gòu)及功能性。舉例來說,計算機1100提供適于實施測試系統(tǒng)110、受測系統(tǒng)120、遠程系統(tǒng)(經(jīng)配置以執(zhí)行驗證及/或認證功能以用于產(chǎn)生如本文中論述的控制信號)等等中的一者或一者以上的通用架構(gòu)及功能性。預(yù)期本文中論述為軟件方法的步驟中的一些可在硬件中實施,舉例來說,如與處理器合作以執(zhí)行各種方法步驟的電路。本文中描述的功能/元件的若干部分可實施為計算機程序產(chǎn)品,其中計算機指令(當由計算機處理時)調(diào)適計算機的操作,使得本文中描述的方法及/或技術(shù)被調(diào)用或以其它方式提供。用于調(diào)用發(fā)明性方法的指令可存儲在固定或可移除媒體中、經(jīng)由廣播或其它信號承載媒體中的數(shù)據(jù)流發(fā)射及/或存儲在根據(jù)指令操作的計算裝置內(nèi)的存儲器中。各種實施例的方面指定在權(quán)利要求書中。各種實施例的那些及其它方面指定在以下編號的條款中I. 一種設(shè)備,其包含組件,其經(jīng)配置以與掃描鏈相關(guān)聯(lián),其中所述組件經(jīng)配置以響應(yīng)于控制信號而從所述掃描鏈移除開路條件。2.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述組件經(jīng)配置以響應(yīng)于第二控制信號而在所述掃描鏈中產(chǎn)生開路條件。3.根據(jù)條款2所述的設(shè)備,其中所述第二控制信號包含來自掃描寄存器的值。
4.根據(jù)條款3所述的設(shè)備,其中所述掃描寄存器值經(jīng)由所述掃描鏈而接收。5.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述控制信號為用于從所述掃描鏈移除所述開路條件的唯一手段。6.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述組件安置在所述掃描鏈內(nèi)。7.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述掃描鏈為第一掃描鏈,其中所述組件安置在所述第一掃描鏈內(nèi),其中所述組件從第二掃描鏈接收所述控制信號。8.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述組件響應(yīng)于安全密鑰的驗證而接收所述控制 信號。9.根據(jù)條款8所述的設(shè)備,其中所述安全密鑰由密鑰檢驗器功能驗證。10.根據(jù)條款9所述的設(shè)備,其中所述密鑰檢驗器功能從所述掃描鏈的一部分讀取所述安全密鑰。11.根據(jù)條款10所述的設(shè)備,其中所述組件安置在所述掃描鏈內(nèi),其中所述掃描鏈所述部分包含所述掃描鏈的輸入部分,所述輸入部分在來自與所述掃描鏈相關(guān)聯(lián)的TAP的TDI輸入之后且在所述組件之前。12.根據(jù)條款9所述的設(shè)備,其中所述密鑰檢驗器功能從與所述密鑰檢驗器功能相關(guān)聯(lián)的緩沖器讀取安全密鑰。13.根據(jù)條款12所述的設(shè)備,其中所述緩沖器從所述掃描鏈的輸入部分或從另一掃描鏈接收所述安全密鑰。14.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述組件響應(yīng)于基于詢問的認證的滿足而接收所述控制信號。15.根據(jù)條款14所述的設(shè)備,其中所述組件經(jīng)配置以用于向認證組件傳播所述組件是有效的指示。16.根據(jù)條款15所述的設(shè)備,其中所述認證組件經(jīng)配置以接收所述組件是有效的所述指示;產(chǎn)生詢問值;向回答組件傳播所述詢問值,所述回答組件經(jīng)配置以使用所述詢問值產(chǎn)生回答值;從所述回答組件接收所述回答值;及響應(yīng)于所述回答值對于所述詢問值是有效的確定而產(chǎn)生所述控制信號。17.根據(jù)條款I(lǐng)所述的設(shè)備,其中所述組件安置在測試存取端口(TAP)中,所述測試存取端口經(jīng)配置以控制對所述掃描鏈的存取。18.根據(jù)條款17所述的設(shè)備,其中所述組件安置在所述TAP的指令寄存器(IR)之
N / .刖。19. 一種方法,其包含在與掃描鏈相關(guān)聯(lián)的組件處接收控制信號;及響應(yīng)于所述控制信號而從所述掃描鏈移除開路條件。20. 一種設(shè)備,其包含掃描鏈;組件,其經(jīng)配置以響應(yīng)于控制信號而從所述掃描鏈移除開路條件;及
信號產(chǎn)生器,其經(jīng)配置以產(chǎn)生所述控制信號且向所述組件提供所述控制信號。雖然已在本文中展示及詳細描述了并入本發(fā)明的教示的各種實施例,但所屬領(lǐng)域
的技術(shù)人員可容易地設(shè)想出仍并入這些教示的許多其它變化的實施例。
權(quán)利要求
1.一種設(shè)備,其包含 組件,其經(jīng)配置以用于與掃描鏈相關(guān)聯(lián),其中所述組件經(jīng)配置以用于響應(yīng)于控制信號而從所述掃描鏈移除開路條件。
2.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述組件經(jīng)配置以用于響應(yīng)于第二控制信號而在所述掃描鏈中產(chǎn)生開路條件。
3.根據(jù)權(quán)利要求2所述的設(shè)備,其中所述第二控制信號包含來自掃描寄存器的值。
4.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述控制信號為從所述掃描鏈移除所述開路條件的唯一手段。
5.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述掃描鏈為第一掃描鏈,其中所述組件安置在所述第一掃描鏈內(nèi),其中所述組件從第二掃描鏈接收所述控制信號。
6.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述組件響應(yīng)于安全密鑰的驗證而接收所述控制信號,其中所述安全密鑰由密鑰檢驗器功能驗證,其中所述密鑰檢驗器功能從以下各者中的一者讀取所述安全密鑰 所述掃描鏈的一部分 '及 與所述密鑰檢驗器功能相關(guān)聯(lián)的緩沖器。
7.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述組件響應(yīng)于基于詢問的認證的滿足而接收所述控制信號,其中 所述組件經(jīng)配置以用于向認證組件傳播所述組件是有效的指示;且 所述認證組件經(jīng)配置以用于 接收所述組件是有效的所述指示; 產(chǎn)生詢問值; 向回答組件傳播所述詢問值,所述回答組件經(jīng)配置以用于使用所述詢問值產(chǎn)生回答值; 從所述回答組件接收所述回答值;及 響應(yīng)于所述回答值對于所述詢問值是有效的確定而產(chǎn)生所述控制信號。
8.根據(jù)權(quán)利要求I所述的設(shè)備,其中所述組件安置在測試存取端口TAP內(nèi),所述測試存取端口經(jīng)配置以用于控制對所述掃描鏈的存取,其中所述組件安置在所述TAP的指令寄存器IR之前。
9.一種方法,其包含 在與掃描鏈相關(guān)聯(lián)的組件處接收控制信號;及 響應(yīng)于所述控制信號而從所述掃描鏈移除開路條件。
10.一種設(shè)備,其包含 掃描鏈; 組件,其經(jīng)配置以用于響應(yīng)于控制信號而從所述掃描鏈移除開路條件;及 信號產(chǎn)生器,其經(jīng)配置以用于產(chǎn)生所述控制信號且向所述組件提供所述控制信號。
全文摘要
本文中提供一種掃描鏈安全性能力。所述掃描鏈安全性能力(例如)出于若干目的而啟用對系統(tǒng)的掃描鏈的正常使用的安全控制,所述目的例如為所述系統(tǒng)的部署或出售之前的測試、所述系統(tǒng)的部署或出售之后的現(xiàn)場測試、所述系統(tǒng)的現(xiàn)場修改等等。所述掃描鏈安全性能力通過啟用對掃描鏈的中斷及所中斷的掃描鏈的重新建立的控制,而啟用對掃描鏈的正常使用的安全控制。掃描鏈安全性組件經(jīng)配置以用于響應(yīng)于控制信號而從所述掃描鏈移除開路條件。所述控制信號可響應(yīng)于安全密鑰的驗證、響應(yīng)于基于詢問的認證過程的成功完成或響應(yīng)于任何其它合適的驗證或認證而產(chǎn)生。所述掃描鏈安全性組件還可經(jīng)配置以用于響應(yīng)于第二控制信號而在所述掃描鏈中產(chǎn)生開路條件。所述第二控制信號可為經(jīng)由所述掃描鏈接收的掃描寄存器值。
文檔編號G01R31/3185GK102947719SQ201180029332
公開日2013年2月27日 申請日期2011年6月13日 優(yōu)先權(quán)日2010年6月18日
發(fā)明者蘇雷什·戈亞爾, 米歇爾·波爾托蘭, 布拉德福德·范特羅伊倫 申請人:阿爾卡特朗訊