TWI403744B - 測試資料處理系統之方法及裝置 - Google Patents
測試資料處理系統之方法及裝置 Download PDFInfo
- Publication number
- TWI403744B TWI403744B TW096102861A TW96102861A TWI403744B TW I403744 B TWI403744 B TW I403744B TW 096102861 A TW096102861 A TW 096102861A TW 96102861 A TW96102861 A TW 96102861A TW I403744 B TWI403744 B TW I403744B
- Authority
- TW
- Taiwan
- Prior art keywords
- test
- processor
- signature
- stop
- scan
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 320
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012545 processing Methods 0.000 title description 55
- 230000004044 response Effects 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 15
- 238000011084 recovery Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 3
- 239000010432 diamond Substances 0.000 description 28
- 229910003460 diamond Inorganic materials 0.000 description 26
- 238000010998 test method Methods 0.000 description 21
- 239000004020 conductor Substances 0.000 description 13
- 238000012546 transfer Methods 0.000 description 11
- NCGICGYLBXGBGN-UHFFFAOYSA-N 3-morpholin-4-yl-1-oxa-3-azonia-2-azanidacyclopent-3-en-5-imine;hydrochloride Chemical compound Cl.[N-]1OC(=N)C=[N+]1N1CCOCC1 NCGICGYLBXGBGN-UHFFFAOYSA-N 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000004088 simulation Methods 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/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318544—Scanning methods, algorithms and patterns
-
- 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
-
- 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/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- 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/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318552—Clock circuits details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本發明一般有關資料處理系統,尤其有關測試資料處理系統。
為確保正確操作,資料處理系統的測試很重要。製造後,在使用者應用程式中使用資料處理系統之前,可在工廠中執行測試。此確保終端使用者收到正確運作的產品。然而,在終端使用者操作資料處理系統期間,仍需要繼續測試資料處理系統,以便在產品正常操作期間偵側可能發生的失敗。
本發明係關於一種用於測試一處理器之至少一邏輯塊的方法。該方法其包含:在由該處理器執行一使用者應用程式期間,該處理器回應於停止執行該使用者應用程式之一停止與測試指示符的產生,產生該停止與測試指示符,及視需要儲存該處理器之該至少一邏輯塊的一狀態;及套用一測試刺激,以測試該處理器的該至少一邏輯塊。
本發明亦關於一種用於測試一處理器之至少一邏輯塊的裝置。該裝置包含:一測試控制器,其經組態以在由該處理器執行一使用者應用程式期間,產生一停止與測試指示符,以回應於停止該使用者應用程式之該執行之該停止與測試指示符的該產生,及視需要儲存該處理器之該至少一邏輯塊的一狀態;至少一掃描鏈,其中該測試控制器進一步經組態以將測試該處理器之該至少一邏輯塊的一測試刺激輸入該至少一掃描鏈持續複數個時脈週期,及將測試結果輸出該至少一掃描鏈;一型樣產生器,其經組態以產生該測試刺激;及一簽章分析器,其經組態以產生至少一對應於該等輸出結果的簽章,及比較該至少一簽章與一相對應的預期簽章。
在製造資料處理系統並送交終端使用者之後,需要在正常操作期間進行測試,以確保資料處理系統仍然運作正確。例如,資料處理系統可能是在汽車中使用,因此在使用者購買汽車之後,將需要對此資料處理系統測試進行。可在操作期間定期執行測試碼的片段,以測試資料處理系統。然而,此測試碼通常提供不一致且不完全的測試覆蓋率。此測試碼通常也很緩慢,且對於測試資料處理系統很沒有效率。此外,這些測試碼必須針對錯誤進行分級,這既耗時又複雜。另一種選擇是掃描測試。使用掃描測試容易提供較高的測試覆蓋率。然而,如果在操作期間執行傳統的掃描測試,每次執行掃描測試時,將遺失處理器的目前狀態。如本文即將說明的,本發明的具體實施例允許在資料處理系統的正常操作期間進行軟體引導的侵入式測試,其中侵入式測試是指影響資料處理系統之狀態或造成其狀態遺失的測試。例如,一具體實施例結合邏輯內建自我測試(LBIST)使用掃描測試方法,以在正常操作期間進行測試。在一具體實施例中,使用停止與測試指令以啟始測試。
本文中所使用的術語"匯流排"是指複數個信號或導體,可用來傳送一或多個各種類型的資訊,例如資料、位址、控制或狀態。本文所述導體可以解釋為單一導體、複數個導體、單向導體、或雙向導體。然而,不同具體實施例的導體實施會有所不同。例如,可能會使用分開的單向導體而不使用雙向導體,反之亦然。同樣地,可能會以依序或按時間多工之方式傳送多個信號的單一導體取代複數個導體。相同地,載送多個信號的單一導體可以分成載送這些信號子集的各種不同導體。因此,有許多用於傳送信號的選項。
當論及分別使信號、狀態位元、或類似裝置變成邏輯真或邏輯假狀態時,使用用語"確立"或"設定"及"否定"或"取消"。如果邏輯真狀態是邏輯位準一,則邏輯假狀態是邏輯位準零。及如果邏輯真狀態是邏輯位準零,則邏輯假狀態是邏輯位準一。因此,本文所述每一信號可設計為正邏輯或負邏輯,其中負邏輯如信號名稱上的橫槓或名稱後的星號(*
)所示。在負邏輯信號的情況中,此信號為有效低位準,其中邏輯真狀態對應於邏輯位準零。在正邏輯信號的情況中,此信號為有效高位準,其中邏輯真狀態對應於邏輯位準一。請注意,本文所述任何信號可設計為負邏輯信號或正邏輯信號。因此,可將這些所述為正邏輯信號的信號實施為負邏輯信號,及將這些所述為負邏輯信號的信號實施為正邏輯信號。
圖1以方塊圖顯示根據本發明之一項具體實施例的資料處理系統10。資料處理系統10包括處理器12、停止與測試電路14、中斷控制器20、其他模組16、記憶體18及匯流排26。處理器12、中斷控制器20、停止與測試電路14、其他模組16、及記憶體18全部與匯流排26為雙向耦合。其他模組16可包括任何類型及數量的模組,例如,其他記憶體、處理器、共同處理器、輸入/輸出設備、計時器、或任何其他類型的週邊設備。或者,資料處理系統10中也可以沒有任何其他模組。記憶體18可為任何類型的記憶體,例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)等。在一具體實施例中,由處理器12執行的使用者應用程式係儲存於記憶體18中。還有,在所示的具體實施例中,處理器12包括其他模組監控器50(此為非必要模組,其說明如下)。
停止與測試電路14係耦合至中斷控制器20及處理器12。中斷控制器20提供中斷指示符22至停止與測試電路14。停止與測試電路14提供重設48至處理器12並自處理器12接收停止與測試指示符24。還有,資料處理系統10包括多工器30與32及解多工器28,各接收停止與測試啟用44。處理器12輸出掃描出(1-N)40至解多工器28,基於停止與測試啟用44,將掃描出(1-N)作為停止與測試掃描出(1-N)34或外部掃描出(1-N)37提供至停止與測試電路14。多工器30接收自停止與測試電路14的停止與測試掃描入(1-N)35及外部掃描入(1-N)38,及基於停止與測試啟用44,提供這些信號之一作為處理器12的掃描入(1-N)41。多工器32接收自停止與測試電路14的停止與測試掃描啟用36及外部掃描啟用39,及基於停止與測試啟用44,提供這些信號之一作為處理器12的掃描啟用42。請注意,圖1中的N代表任何大於零的整數及對應於存在於處理器12中之掃描鏈的數目。因此,請注意,多工器30可包括N個多工器,及解多工器28可包括N個解多工器。還有,在供選擇的具體實施例中,可能不存在解多工器28。例如,在不執行掃描測試時,可完全忽略掃描輸入。
可將外部掃描出(1-N)37、外部掃描入(1-N)38、及外部掃描啟用39之每一者遞送至資料處理系統10的外部接點或接腳。或者,可將這些外部信號的任何信號多工至較少數的外部接點或接腳。例如,可透過相同接點或接腳輸入所有掃描入鏈,而非透過N個接點或接腳來輸入。還有,在供選擇的具體實施例中,可提供不同電路,以實施多工器30與32及解多工器28的功能。在又另一具體實施例中,完全不提供外部掃描輸入及輸出(如外部掃描出(1-N)37及外部掃描入(1-N)38),致使從停止與測試電路14提供所有掃描輸入及輸出,及將所有掃描輸入及輸出提供至停止與測試電路14。
在操作中,在未確立停止與測試啟用44時,多工器30及32分別選擇外部掃描入(1-N)38及外部掃描啟用39,致使將外部掃描入(1-N)38提供為處理器12的掃描入(1-N)41,及將外部掃描啟用39提供為掃描啟用42。同樣地,在未確立停止與測試啟用44時,解多工器38提供來自處理器12的
掃描出(1-N)40至外部掃描出(1-N)37。依此方式,可將外部測試器耦合至處理器12的掃描輸入及輸出,以掃描測試處理器12。例如,在製造處理器12或資料處理系統10之後,可使用耦合至外部掃描出(1-N)37、外部掃描入(1-N)38及外部掃描啟用39的傳統測試器,對處理器12進行工廠測試。因此,可使用傳統掃描測試方法執行此工廠測試。然而,可使用停止與測試電路14,以在實際操作期間(如在為終端使用者所使用時),對處理器12提供改良的測試。以下將參考圖2及3,進一步說明停止與測試電路14的操作。(請注意,資料處理系統10其他部分的操作如本技術中已知的方式進行操作,因此,僅對瞭解本文所述具體實施例相關之資料處理系統10及處理器12的這些部分進行詳細說明。)
圖2根據本發明之一具體實施例,顯示處理器12的部分(在虛線之內)及停止與測試電路14的部分(在虛線之外)。一般而言,可將處理器12的電路顯示為複數個正反器或鎖存器,其自組合邏輯或電路接收輸入及提供輸出至組合邏輯或電路。例如,圖2顯示處理器12之一小部分的電路,其包括正反器128-130與146-147及組合邏輯140與142。組合邏輯140與142之每一者可包括任何類型的組合邏輯,以執行各種不同函數。例如,140與142之每一者可包括任何數量的邏輯閘(例如,AND(及)閘、OR(或)閘、NOR(反或)閘、XOR(互斥或)閘等)。
正反器128及正反器129提供其輸出至組合邏輯140,及組合邏輯140提供輸出至多工器144,多工器144再提供其輸出至正反器146。同樣地,正反器129及正反器130提供其輸出至組合邏輯142,及組合邏輯142提供輸出至多工器145,多工器145再提供其輸出至正反器147。正反器130亦提供其輸出Sout1 109至簽章分析器112及至其他邏輯150(如處理器12內的其他組合邏輯,圖2未顯示)。多工器144亦接收Sin2 110作為輸入。正反器128-130之每一者分別接收自多工器131-133輸入的資料。多工器131接收來自隨機型樣產生器102的輸入Sin1 108及來自其他邏輯134的另一輸入(如處理器12內的其他組合邏輯,圖2未顯示)。多工器132接收正反器128的輸出作為輸入,及接收來自其他邏輯135的另一輸入(如處理器12內的其他組合邏輯,圖2未顯示)。多工器133接收正反器129的輸出作為輸入,及接收來自其他邏輯136的另一輸入(如處理器12內的其他組合邏輯,圖2未顯示)。還有,正反器146提供其輸出至多工器145的輸入及至其他邏輯148(如處理器12內的其他組合邏輯,圖2未顯示)。正反器147提供其輸出Sout2 111至簽章分析器112及至其他邏輯149(如處理器12內的其他組合邏輯,圖2未顯示)。
請注意,處理器12可包括任何類型的組態。例如,可將任何正反器的輸出提供至任何數量的組合邏輯部分,且甚至可將其反饋至提供輸入至相同正反器的組合邏輯部分。同樣地,每一正反器可自任何組合邏輯部分接收其輸入。處理器12可視需要包括任何數量的正反器及任何數量的組合邏輯,以執行處理器12的函數。還有,可說明處理器12包括任何數量之耦合一起的邏輯塊,其中每一邏輯塊可包括至少一掃描鏈或掃描鏈的部分。因此,可掃描測試所有處理器12或處理器12的一或多個邏輯塊。
在圖2的虛線之外顯示停止與測試電路14的部分,其包括隨機型樣產生器102、停止與測試控制器100、簽章分析器112、簽章比較器114、預期簽章儲存器116及測試結果暫存器118。隨機型樣產生器102提供Sin1 108及Sin2 110至處理器12。請注意,Sin1 108及Sin2 110可以是圖1中顯示至處理器12之掃描入(1-N)41輸入中的兩個,其係在確立停止與測試啟用44時經由多工器30接收自停止與測試電路14。將Sout1 109及Sout2 111提供至簽章分析器112。請注意,Sout1 109及Sout2 111可以是圖1中顯示自處理器12之掃描出(1-N)40輸出中的兩個,其係在確立停止與測試啟用44時經由解多工器28自處理器12提供至停止與測試電路14。還有,停止與測試控制器100提供掃描啟用(SE)138至所有多工器131-133、144及145。請注意,SE 138可以是圖1中顯示至處理器12的掃描啟用42,其係在確立停止與測試啟用44時經由多工器32接收自停止與測試電路14。
請注意,在圖2中,將停止與測試電路14及處理器12之間的輸出及輸入顯示為直接連接,而沒有多工器28、30及32,以免圖2變得太複雜。還有,如果處理器12不需要外部掃描連接,則資料處理系統10亦可不包括多工器28、30及32,且停止與測試電路14及處理器12之間的輸入及輸出可直接連接,如圖2所示。
仍然參考圖2,停止與測試控制器100接收重設106,及提供重設48至所有正反器128-130、146及147。在一具體實施例中,重設106是經由匯流排26接收的信號。亦將重設106提供至簽章分析器112、隨機型樣產生器102及測試結果暫存器118。停止與測試控制器100亦包括復原向量152、最大時脈154及最小時脈156。這些可以是位在停止與測試控制器100(或甚至可以位在停止與測試電路14或資料處理系統10中他處)中的暫存器或其他儲存電路。停止與測試控制器100接收來自中斷控制器20的中斷指示符22,提供強制錯誤信號158及啟動160至隨機型樣產生器102,提供簽章識別符124至預期簽章儲存器116,及提供比較126至簽章比較器114。簽章比較器114接收來自簽章分析器112的簽章120及來自預期簽章儲存器116的預期簽章115,並比較此二者,然後將比較結果122提供至測試結果暫存器118。測試結果暫存器118亦可與匯流排26雙向耦合。請注意,可將測試結果暫存器118及預期簽章儲存器116各實施為暫存器,或實施為任何其他儲存電路。例如,其可位在資料處理系統10內的記憶體中。還有,測試結果暫存器118及預期簽章儲存器116可位在資料處理系統10內的任何地方。
將如本技術中已知所產生的時脈104提供至隨機型樣產生器102、停止與測試控制器100、簽章分析器112及處理器12(如提供至正反器128-130、146及147的每一者)。時脈104代表資料處理系統10內的唯一時脈,或代表資料處理系統10或處理器12的一個時脈域。在此例中,處理器12的其他部分例如可位在不同時脈域之內,因而可接收不同時脈(與時脈104不同)。時脈域時脈之每一者可自相同系統時脈產生或分開產生。這些時脈,無論組態為何,均如本技術中已知的方式產生及提供。
請注意,在操作中,多工器131-133、144及145允許對處理器12進行掃描測試。這些多工器係用以建立各種掃描鏈(其中兩個顯示於圖2,一個具有輸入Sin1 108及輸出Sout1 109,及另一個具有輸入Sin2 110及Sout2 111)。例如,一個掃描鏈包括正反器128-130,其中,在確立SE 138時,提供掃描鏈輸入Sin1 108作為至正反器128的輸入,提供正反器128的輸出作為至正反器129的輸入,提供正反器129的輸出作為至正反器130的輸入,及正反器130的輸出提供掃描鏈輸出Sout1 109。同樣地,處理器12的另一個掃描鏈包括正反器146及147,其中,在確立SE 138時,提供掃描鏈輸入Sin2 110作為至正反器146的輸入,提供正反器146的輸出作為至正反器147的輸入,及正反器147的輸出提供掃描鏈輸出Sout2 111。因此,在確立SE 138時,可分別轉移入及轉移出掃描輸入及輸出,以測試處理器12的全部或部分。
請注意,在未確立SE 138時,處理器12正常操作,其中由處理器12的組合邏輯提供正反器128-130、146及147的輸入,並將輸出提供至處理器12的組合邏輯。也就是說,在未確立SE 138的正常操作期間,正反器的輸入及輸出未經鏈接,因此無法形成上述掃描鏈。
請注意,在所示的具體實施例中,顯示其中在每一D正反器之輸入處使用多工器的mux-D掃描鏈組態,因而D正反器可經組態用於正常操作及經組態為測試的掃描鏈。然而,請注意,亦可使用其他掃描鏈組態及其他記憶體元件。例如,如本技術中已知,可使用位準敏感掃描設計(Level-Sensitive Scan Design,LSSD)組態。亦請注意,處理器12的掃描鏈組態可有所不同。例如,處理器12可包括單一掃描鏈或任何數量的掃描鏈。還有,每一時脈域可存在單一或任何數量的掃描鏈,如上所述。還有,每一掃描鏈可屬於任何任意的長度(因此包括任何任意數量的正反器或其他記憶體元件)。此外,在一些具體實施例中,掃描鏈組織為可組態,因而可修改掃描鏈連接,以允許變更處理器12之部分內之掃描鏈的數量及/或長度。此組態可藉由以下方式來完成:修改多工器131、132、133、144及145的輸入及控制,以達成處理器12之正反器之輸出之供選擇的互連。此控制可由停止與測試控制器100供應,或自資料處理系統10內他處提供。
請注意,在否定SE 138時的正常操作期間,處理器12的正反器儲存處理器的目前狀態。隨著每一時脈脈衝,基於透過組合邏輯自一個正反器傳播至另一個正反器的值,相應地更新正反器的值。例如,在否定SE 138時的正常操作期間,正反器128及129的輸出透過組合邏輯140傳播,以產生至多工器144的輸入。在時脈104對正反器146計時後,經由多工器144將組合邏輯140的此輸出儲存至正反器146(因為多工器144、SE 138的選擇信號已遭否定)。當在執行掃描測試期間轉移時(其中確立SE 138),正反器形成掃描鏈(如上所述),其中轉移入若干掃描鏈輸入(即測試刺激或測試輸入)。在轉移入若干輸入後,將否定SE 138,致使下一個時脈在測試期間產生功能週期,其中在掃描鏈中擷取得自透過組合邏輯傳播之轉移入測試輸入的測試結果。然後,再次確立SE 138,以便接著轉移出擷取的輸出。依此方式,輸入(測試刺激)係在SE 138確立時提供至處理器12,接著在否定SE 138時提供時脈以提供功能週期,然後在再次確立SE 138時從處理器12讀出輸出。
請注意,在一具體實施例中,隨著輸入的數量在確立SE 138時轉移入,將轉移出相同數量的輸出。也就是說,每次轉移入測試輸入時,同時轉移出測試輸出。還有,在否定SE 138之前,可分別轉移入及轉移出任何數量的測試輸入及輸出,以允許產生功能週期。此數目可以是任何大於或等於1的整數。例如,在一具體實施例中,在轉移入一個輸入之後(同時轉移出一個輸出),將否定SE 138,致使功能週期隨著下一個時脈發生。在供選擇的具體實施例中,在否定SE 138之前,可轉移入五個輸入(同時轉移出五個輸出),以允許產生功能週期。因此,在掃描測試期間,可將時脈104說明為允許產生測試輸入/輸出轉移週期,其中在確立SE 138時將輸入及輸出轉移入及轉移出掃描鏈,及如同允許產生其中否定SE 138的功能週期,以擷取得自透過組合邏輯傳播之轉移入測試刺激的測試結果。
例如,參考圖2,對於掃描測試,確立SE 138及將特定數目的測試輸入掃描至掃描鏈中。也就是說,使用時脈104之特定數目的時脈週期以輸入測試輸入於每一鏈中。例如,在時脈104的第一測試輸入/輸出轉移週期中,分別經由Sin1 108及Sin2 110,將測試刺激轉移入正反器128及146的每一者。在時脈104的此第一測試輸入/輸出轉移週期期間,亦分別經由Sout1 109及Sout2 111,自正反器130及147轉移出數值。在時脈104的下一個測試輸入/輸出轉移週期期間,分別將在正反器128及146中的值轉移入正反器129及147,及將在正反器129中的值轉移入正反器130。正反器130及147的值係分別輸出為Sout1 109及Sout2 111。視需要,可發生任何數量之此測試輸入/輸出轉移週期。在所要數量的測試輸入/輸出轉移週期之後,藉由否定SE 138來執行功能週期。在此功能週期中,分別將自其他邏輯134、其他邏輯135、其他邏輯136、組合邏輯140、及組合邏輯142傳播的值與時脈104擷取至正反器128-130、146及147。在下一個測試輸入/輸出轉移週期期間,轉移出這些擷取的值(同樣地轉移入新的輸入)。
請注意,通常在啟動掃描測試之前,將重設正反器至已知的值,例如,邏輯位準零。亦請注意,在啟動掃描測試之前,可將正反器組態成數個替代選擇之一,以定義掃描鏈的數量及掃描鏈長度。組態控制可自圖2的停止與測試控制器100供應,或自資料處理系統10他處供應。
基於轉移入的測試輸入,將預期特定的結果。因此,可將轉移出掃描鏈的輸出值提供至簽章分析器,以建立接著與對應於轉移入之測試輸入之預期簽章比較的簽章。如果此二者不匹配,則表示失敗。請注意,在一具體實施例中,可轉移入輸入的預定向量,其中這些預定向量之每一者具有相對應的預期簽章。或者,可使用LBIST,其中可使用偽隨機數產生器產生偽隨機向量(測試輸入),即非預定向量。這些向量亦具有相關聯的預期簽章,其可用以決定測試的通過或失敗。
請注意,掃描測試是提供系統之整體健全的優良方式。也就是說,其可用來確實測試要測試之設備的全部、大多數部分、或僅一大部分(即待測設備或DUT,其在圖2的範例中為處理器12)。然而,由於掃描測試需要使用儲存DUT狀態的相同正反器,因此其極具侵入性,因為DUT的目前狀態將在掃描測試後遺失。還有,LBIST透過在掃描測試中使用偽隨機型樣,其為測試DUT整體健全的便利方法。LBIST提供基於DUT偽隨機數的掃描刺激。藉由使用先前所提掃描刺激所獲得的錯誤覆蓋率可以非線性覆蓋率曲線表示,其中,例如,測試覆蓋率的增加始於特定數量之時脈後的急速下降。所獲得的實際覆蓋率係由在LBIST產生期間使用的工具決定,及通過/失敗狀態係由比較實際簽章與預期簽章決定。通常有兩個方式可獲得較高的錯誤覆蓋率:將可控制點及/或可觀察點插入設計或重複序列較長的時間。因此,通常在運送設備給終端使用者之前(因此在由終端使用者正常操作之前),在工廠完成LBIST及掃描測試,其中測試是否具有侵入性並無關緊要。
如參考圖2及3所說明的,本發明的具體實施例允許在正常操作期間進行此類型的侵入式測試。也就是說,可寫入允許處理器12在正常操作期間(如為終端使用者所使用時)進行掃描測試的軟體。例如,在一具體實施例中,可在使用者應用程式中使用軟體指令(如停止與測試指令)啟始處理器12的掃描測試。或者,軟體指令可造成使處理器12進行掃描測試的某個動作。例如,寫入位元於特定暫存器或位址位置的指令可啟始處理器12的掃描測試。請注意,依此方式,執行於處理器12的軟體可產生啟始處理器12本身之掃描測試的停止與測試指示符。因此,可透過在正常操作期間的軟體控制達成所有或大部分處理器12的整體置信等級,而不必寫入複雜的軟體測試函數,如同本技術中目前所做的。如上述,這些軟體測試函數僅測試含軟體之處理器12的部分,並僅提供有限的覆蓋率,不像掃描測試。
還有,如圖1所示,處理器12可包括其他模組監控器50,其監控資料處理系統10內的其他模組,如其他模組16,以決定何時應該執行停止與測試程序。在一具體實施例中,其他模組監控器50因此提供停止與測試指示符至處理器12,以回應於資料處理系統10中一或多個其他模組的特定活動。回應於停止與測試指示符,啟始處理器12之全部或部分的掃描測試,或取代測試處理器12或除了測試處理器12之外,測試處理器12外部的電路部分。例如,其他模組監控器50亦可提供指示,以指示在停止與測試程序期間,要對哪個其他模組16(或其他模組16的部分)進行掃描測試。
請注意,將關於作為DUT的處理器12提供圖2及3的說明。然而,本文說明亦適用於可以是處理器12之任何部分的DUT(如處理器12的一或多個邏輯塊)或資料處理系統10的任何其他部分。也就是說,圖2的掃描鏈可以屬於資料處理系統10中的某個其他模組,而非處理器12。在一具體實施例中,除了資料處理系統10的任何其他模組之外,可在測試的處理器12中共用及使用停止與測試電路14,或單獨的停止與測試電路可用於處理器12及能夠以本文所述的方式在正常操作期間進行掃描測試的任何其他模組。
圖3根據本發明之一具體實施例,顯示在正常操作期間進行掃描測試的方法。為了便於解說,將參考圖1及2來說明該方法;然而,該方法可應用於任何系統及DUT,而不只是資料處理系統10及處理器12。流程始於方塊200,其中製造包括處理器12的資料處理系統10。流程繼續進行至方塊202,其中對資料處理系統10執行工廠測試。此工廠測試可包括如掃描測試、LBIST、或任何其他類型的測試,且通常在提供系統給任何終端使用者之前執行此試測。因為設備尚未在終端使用者應用程式中使用,此工廠測試可以是侵入式的(即可能擾亂設備的狀態)。此外,此工廠測試通常可以使用比較多的時間。還有,不必由終端使用者應用程式控制此工廠測試的時序。
流程接著繼續進行至方塊204,其中可將資料處理系統10納入終端使用者應用程式。例如,可將資料處理系統10納入汽車、手持設備等。在一具體實施例中,可僅在處理器12上執行在方塊202中說明的工廠測試。在此例中,在方塊204中,可接著將處理器12納入資料處理系統(如資料處理系統10),及接著亦可納入終端使用者應用程式。在一具體實施例中,資料處理系統10本身可以是終端使用者應用程式。
流程從方塊204經由點A繼續進行至方塊206,其中執行使用者應用程式。例如,一旦處理器12在終端使用者應用程式(如汽車)中,即在處理器12上執行使用者應用程式。此時,資料處理系統10已經出廠且在終端使用者的掌握中。流程接著繼續進行至決策菱形208,其中決定使用者應用程式是否指示停止與測試程序。如上述,這可藉由使用者應用程式以各種方式來進行。在一具體實施例中,可能已經解碼使用者應用程式內的停止與測試軟體指令,以指示停止與測試程序。或者,使用者應用程式內寫入特定暫存器或記憶體位置的軟體指令可能已由處理器12內的電路所偵側,其指示停止與測試程序。在任一情況中,在處理器12內指示停止與測試程序時,自處理器12提供停止與測試指示符24至停止與測試電路14。在停止與測試軟體指令的前一個具體實施例中,處理器12的指令解碼器可提供停止與測試指示符24,及在寫入特定位置的後一個具體實施例中,輪詢特定位置或以其他方式偵測寫入的電路可提供停止與測試指示符24。(或者,可由其他模組監控器50指示停止與測試程序,如上所述。)
往回參考圖3,如果使用者應用程式尚未指示停止與測試程序,流程返回點A,其中使用者應用程式繼續執行。如果指示停止與測試程序,則流程繼續進行至方塊210,其中停止執行使用者應用程式並儲存處理器12的狀態。視需要,可儲存處理器12中正反器全部或部分內的值,以便在停止與測試程序之後,能夠從相同點繼續執行。或者,使用者應用程式在指示停止與測試程序時可能處於閒置狀態,因此不需要儲存狀態。在又另一供選擇的具體實施例中,可能僅需要儲存一些正反器,以節省時間與資源。在此供選擇的具體實施例中,可使用軟體指示要儲存處理器12的哪個部分。還有,如果需要儲存狀態,可在使用者應用程式中提供額外的軟體指令,以指示要儲存哪個正反器及儲存於何處,或可提供指示儲存所有正反器的額外軟體指令。或者,在指示停止與測試程序後,可使用專用硬體電路,以對正反器之全部或部分的目前狀態執行更快速的儲存。
在視情況儲存狀態之後,流程繼續進行至方塊212,其中將停止與測試指示符24提供至例如停止與測試電路14。流程繼續進行至方塊214,其中執行重設。例如,停止與測試電路14提供重設48至處理器12的正反器及至資料處理系統10內需要重設的任何其他電路,例如,隨機型樣產生器102、簽章分析器112及測試結果暫存器118。此確保例如停止與測試程序始於已知的值。在一具體實施例中,重設(如重設48)並不重設每個元件,其中,例如,可使用軟體初始化暫存器。
流程接著繼續進行至方塊216,其中將時脈計數檢查點選擇作為目前的檢查點。也就是說,因為測試係在正常操作期間(如在執行使用者應用程式期間)執行,每次指示停止與測試程序時,時間可能不允許完整的測試。因此,僅在已先達到特定數目的時脈時,才需要比較及分析測試結果。例如,下列為使時脈數與LBIST提供之DUT的錯誤覆蓋率相關的取樣表。(僅提供下表作為範例,其中實際值為設計敏感值。)
因此,如果提供500個時脈,則達成30%的覆蓋率等。因此,在一具體實施例中,僅在達到特定時脈檢查點後更新測試結果。在一具體實施例中,根據所要的覆蓋率等級(例如,5%、10%、30%等)設定時脈檢查點,其中在20時脈(對應於5%)之後、在100個時脈(對應於10%)之後、在500時脈(對應於30%)等之後,更新測試結果。還有,在目前的具體實施例中,上表中的時脈數是指功能時脈週期(如上所述),其中未計算提供用於測試輸入/輸出轉移週期的時脈。然而,在供選擇的具體實施例中,該表可經設定致使時脈數代表所提供的所有時脈。因此,在方塊216,選擇第一時脈計數檢查點,例如,20個時脈。
流程繼續進行至方塊218,其中在確立SE 138時,對x個時脈轉移入測試刺激,同時轉移出測試結果至簽章分析器112。如上述,可執行任何數量(x個)的測試輸入/輸出轉移週期,其中x可以是大於或等於一的任何整數。還有,在所示的具體實施例中,LBIST係在停止與測試程序期間執行。因此,參考圖2,停止與測試控制器100回應於停止與測試指示符24,提供啟動160至隨機型樣產生器102(在一具體實施例中,其為偽隨機型樣產生器)並確立SE 138。回應於啟動160,隨機型樣產生器102開始經由Sin1 108及Sin2 110提供偽隨機輸入至掃描鏈。(請注意,由於這些輸入係經由Sin1 108及Sin2 110提供,輸出亦經由Sout1 109及Sout2 111轉移出。)
流程接著繼續進行至方塊220,其中在否定SE 138時提供系統時脈(如時脈104)(以提供功能時脈週期),以便基於在方塊218轉移入的測試刺激,在掃描鏈中擷取測試輸出。還有,使時脈計數增量,其記錄為功能週期提供的時脈。在一具體實施例中,將此時脈計數保持在測試結果暫存器118中,其中測試結果暫存器118可包括例如時脈計數欄。也就是說,在一具體實施例中,測試結果暫存器118可儲存使時脈週期量化的值。或者,可將此時脈計數儲存於資料處理系統10中他處,其中,如以下所說明的,測試結果暫存器118的時脈計數欄可僅儲存達到時脈計數檢查點時的時脈計數。
流程繼續進行至決策菱形221,其中決定是否已接收中斷。例如,在一具體實施例中,資料處理系統10包括中斷控制器20,其決定何時在資料處理系統10中接收中斷。接收中斷後,其提供中斷指示符22至停止與測試電路14。在目前的具體實施例中,任何中斷將使停止與測試程序結束並使正常操作重新開始。或者,僅特定中斷或特定優先等級的中斷可使停止與測試程序結束及使正常操作重新開始。往回參考圖3,如果已接收中斷(由中斷指示符22對停止與測試電路14指示),流程透過點B繼續進行至方塊234,其中執行另一重設。此重設類似於參考方塊214中說明的重設。流程繼續進行至方塊236,其中執行始於復原向量位置。也就是說,可使用復原向量指示處理器12的執行應重新開始於何處。此復原向量可以是圖2的復原向量152,並經儲存於停止與測試控制器100內(或停止與測試電路14內他處)。或者,此復原向量的作用為處理器12的邏輯中所固有,在此例中,將不需要停止與測試控制器100的復原向量152。流程接著繼續進行至方塊238,其中若在方塊210中儲存狀態,則復原狀態。流程然後返回點A,其中使用者應用程式繼續執行。
請注意,如果在決策菱形221,在達到第一時脈檢查點之前接收中斷,將不為決策菱形208至方塊210之"是"分支啟始的停止與測試程序儲存任何測試結果。如果在決策菱形221尚未接收中斷,流程繼續進行至決策菱形222,其中決定時脈計數(如測試結果暫存器118的時脈計數)是否已達到或超過第一時脈計數檢查點(即目前的檢查點)。(請注意,在一具體實施例中,如上述,測試結果暫存器118的時脈計數欄僅儲存達到時脈計數檢查點時的時脈計數,因此測試結果暫存器118永遠顯示最新達到的時脈計數檢查點。在此具體實施例中,在方塊220增量及用以在決策菱形222中決定是否已達到或超過目前檢查點的實際時脈計數可儲存於處理器12或資料處理系統10中他處,或甚至可儲存於測試結果暫存器118的另一欄位中。)如果在決策菱形222尚未達到或超過目前的時脈計數檢查點,流程返回方塊218,其中轉移入更多測試刺激及轉移出更多測試結果,及返回方塊220,其中執行另一功能時脈週期,以嘗試達到目前的檢查點。
如果在決策菱形222,時脈計數已達到或超過目前的檢查點,流程繼續進行至方塊224,其中比較自轉移出測試輸出(如Sout1 109及Sout2 111)計算的簽章與預期簽章,及相應地調整通過/失敗指示符。在一具體實施例中,測試結果暫存器亦包括通過/失敗指示符,其可以是只要測試繼續指示通過便保持邏輯位準一的單一位元,且其在測試導致失敗時(即測試結果不匹配預期簽章時)變成邏輯位準零的單一位元。或者,可在測試結果暫存器118中為上表的每一時脈計數檢查點提供通過/失敗指示符,其中邏輯位準一指示通過相對應的檢查點,及邏輯位準零指示在相對應的檢查點失敗,或反之亦然。或者,可使用其他儲存通過/失敗結果的方法。
請注意,參考圖2,將經由Sout1 109及Sout2 111自掃描鏈轉移出的測試結果提供至簽章分析器112。簽章分析器112基於這些輸出建立簽章120,並基於停止與測試控制器100提供的比較126,提供簽章120至簽章比較器114,以啟用比較。還有,預期簽章儲存器116提供預期簽章115至簽章比較器114以進行比較。基於接收自停止與測試控制器100的簽章識別符124,選擇預期簽章儲存器116的預期簽章。因此,停止與測試控制器100控制隨機型樣產生器102,並相應地控制預期簽章的選擇。請注意,如本技術中已知,可使用習用的偽隨機型樣產生器及簽章分析器。此外,如本技術中已知,亦可建立儲存於儲存器116的預期簽章。例如,可藉由DUT的模擬來計算預期簽章。
仍然參考圖2,簽章比較器114比較簽章120與預期簽章115,並將比較結果122提供至測試結果暫存器118。然後,可視需要更新測試結果暫存器118中的通過/失敗指示符,以反映比較結果122。例如,如果比較結果122指示匹配,則設定指示通過的通過/失敗指示符(如設為邏輯位準一)。然而,如果比較結果122指示失配,則設定指示失敗的通過/失敗指示符(如清除為邏輯位準零)。
往回參考圖3,流程繼續進行至決策菱形226,其中決定是否由於方塊224的比較而指示通過或失敗。如果發生通過(如指示簽章120確實匹配預期簽章115,如比較結果122所示),則流程繼續進行至決策菱形228。在決策菱形228中,再次決定是否已接收中斷。如上述,可經由中斷22將此中斷指示給停止與測試電路14。為決策菱形221之中斷提供的相同說明亦適用於決策菱形228。如果已接收中斷,流程繼續進行至方塊234,其中流程繼續進行通過方塊234、236、238、206等,如上所述。因此,在接收中斷時,測試並不繼續,且正常操作重新開始(例如,其中使用者應用程式的執行重新開始)。
然而,如果未在決策菱形228接收中斷,流程繼續進行至決策菱形230,其中決定是否已達到最大時脈計數。例如,在一具體實施例中,可使用最大時脈計數(例如,其可對應於圖2的最大時脈154,其儲存於停止與測試控制器100或停止與測試電路14中他處)。如果已達到最大時脈計數,流程返回決策菱形228,以決定是否已接收中斷。(還有,如以下進一步說明,如果已指示失敗,如在方塊227,流程亦返回決策菱形228。)如果已達到最大時脈計數,測試並不繼續,而是流程在決策菱形228及230之間繼續,直到接收中斷為止。此時,流程從決策菱形228繼續進行至方塊234,其中正常操作重新開始,如上述。(在供選擇的具體實施例中,在達到最大時脈計數後,停止與測試程序停止及流程繼續進行至方塊234,其中使用者應用程式的執行重新開始,不必等待中斷。)在決策菱形230,如果尚未達到最大時脈計數(及因為尚未接收中斷以停止此停止與測試程序),流程繼續進行至方塊232,其中選擇下一個時脈計數檢查點作為目前的檢查點。例如,參照上表,下一個時脈計數檢查點是指下一個項目為100個時脈。也就是說,下一次更新測試結果時(在方塊224)將是目前時脈計數在接收中斷前達到100個時脈時。
在一具體實施例中,如果時脈計數未達到目前的時脈計數檢查點,例如因為在提供足夠數量的功能時脈之前發生中斷,下一個停止與測試程序必須從開頭再次啟動,其中,例如,將下一個停止與測試程序的目前時脈計數檢查點設回至第一時脈檢查點(此在上文提供的取樣表中為20個時脈)。
往回參考決策菱形226,如果發生失敗(如指示簽章120不匹配預期簽章115,如比較結果122所示),則流程繼續進行至方塊227,其中指示失敗。請注意,指示失敗可參照於上文參考方塊224所述之測試結果暫存器118中對於通過/失敗指示符的調整,或亦可包括提供指示失敗的額外輸出。流程接著繼續進行至決策菱形228,其中決定是否接收中斷。流程如上文參考決策菱形228所述繼續進行。請注意,在所示的具體實施例中,流程在決策菱形228及230之間繼續,直到接收中斷為止,致使流程繼續方塊234,因此重新開始正常操作(如重新開始使用者應用程式的執行)。在供選擇的具體實施例中,在決策菱形230,如果已達到最大時脈計數,或如果已指示失敗,流程可立即繼續至方塊234,及重新開始使用者應用程式的執行,而不必等待中斷以退出停止與測試程序。
在供選擇的具體實施例中,圖3的流程亦可包括最小時脈檢查。例如,如圖2所示,可在停止與測試程序期間,使用儲存於停止與測試控制器100(或儲存於停止與測試電路14內他處)的最小時脈156。在一具體實施例中,在更新任何結果之前,應接收最小數量的時脈。在另一具體實施例,甚至在檢查是否已接收中斷(如在決策菱形221)之前,接收最小數量的時脈。還有,在另一供選擇的具體實施例中,將不使用最大時脈計數。在此例中,決策菱形230僅包括是否發生失敗的檢查。
圖3係參考在停止與測試程序期間所執行的LBIST測試來說明。然而,在供選擇的具體實施例中,可執行其他類型的掃描測試。或者,在停止與測試程序期間,除了掃描測試或在掃描測試之外,還可執行其他類型的測試,包括擾亂處理器狀態的測試。在這些例子中,停止與測試電路14可包括與圖2所示不同的電路或額外電路,以完成所要類型的測試。此外,請注意,圖3流程係為一個範例,並請注意,可使用包括額外步驟之供選擇的流程,其包括較少步驟或其結合步驟。
還有,請注意,以上描述說明其中將測試刺激轉移入掃描鏈及將測試輸出轉移出掃描鏈的掃描測試。然而,在供選擇的具體實施例中,可以不同的方式套用測試刺激。例如,可將測試刺激平行載入掃描鏈。同樣地,可自掃描鏈平行讀取掃描測試輸出。
因此,應明白本發明各種具體實施例(如圖3的流程)如何允許在正常操作期間進行軟體引導的侵入式測試,致使在出廠後及在正常操作(如在終端使用者應用程式中)期間,可對資料處理系統、處理器、或其部分進行侵入式測試。由於處理器12的軟體"知道"處理器12本身何時為閒置或何時能夠進行侵入式測試,軟體在處理器12上執行以控制執行此侵入式測試之方式及時間的能力(例如,透過使用停止與測試指示符24),將允許在終端使用者應用程式中的正常操作期間進行改良的測試。同樣地,軟體(執行於處理器12上或另一耦合至匯流排26的處理器)通常知道共同處理或耦合至匯流排26的週邊設備何時處於閒置或何時可以是閒置。例如,軟體可藉由監控系統活動、按照協定、或利用流程控制來得知。因此,由於軟體知道何時可擾亂設備狀態(透過侵入式測試)然後按預定方式恢復(例如,透過重設及復原操作),軟體可對處理器12或資料處理系統10的其他部分或二者執行侵入式測試。在一具體實施例中,來自處理器12的停止與測試指示符24亦可指示要對資料處理系統10的哪個模組或部分進行侵入式測試。
在圖2顯示的具體實施例中,停止與測試控制器100提供強制錯誤信號158至隨機型樣產生器102。此信號可用來測試及確保測試電路本身操作正確。例如,可設定強制錯誤信號158以確保失敗(致使至少一簽章不匹配相對應的預期簽章,例如,藉由在隨機型樣產生器102的輸出中產生變化)。然而,如果測試結果暫存器118未指示失敗,則測試電路本身可能有問題。因此,強制錯誤信號158提供產生已知結果的方式,以確保測試電路本身的正確操作。可使用軟體指令提供此強制錯誤信號,或者,這可由硬體定期執行以確保正確操作。
圖4顯示可存在於處理器12之掃描鏈的供選擇的具體實施例。圖4的掃描鏈根據本發明之一具體實施例,利用額外的XOR閘,以更快速地傳播輸入至掃描鏈中較遠的末端。圖4包括正反器301-306,其可經組態以在正常操作中操作(分別接收來自組合邏輯312、314、316、318及320的輸入),及可經組態以操作為掃描鏈(接收來自另一正反器的輸入)。請注意,在圖4的具體實施例中,每一正反器內部包括多工器的功能,該等多工器位在圖2之正反器的輸入端。圖4的每一正反器接收掃描啟用(SE)及時脈輸入。在否定SE時,每一正反器操作於經由"D"輸入接收的輸入上,因此允許正常操作。在確立SE時,每一正反器操作為掃描鏈,其中輸入係經由"SD"輸入傳播至掃描鏈。雖然未在圖4中顯示,但亦將正反器的輸出提供至組合邏輯。請注意,亦可在圖2的具體實施例中使用這些相同類型的正反器。
圖4的掃描鏈亦包括互斥或(XOR)閘308及310。XOR閘308自正反器301的輸出接收第一輸入,及自正反器303的輸出接收第二輸入。XOR閘310自正反器304的輸出接收第一輸入,及自正反器305的輸出接收第二輸入。XOR閘允許測試輸入以較少量的時脈往掃描鏈下方更遠處傳播。也就是說,由於部分正反器(例如,正反器301)的輸出經由XOR閘向前饋送至掃描鏈下方更遠的正反器(例如,正反器304),接收這些轉遞值的正反器能夠比等待測試輸入傳播通過掃描鏈中所有先前正反器更早變更狀態。依此方式,可以較少的時脈週期對掃描鏈的較遠區段執行測試,因為只要這些較遠正反器的狀態變更狀態,即提供刺激給更多的電路,因而允許更高的測試覆蓋率。
請注意,為取代XOR閘308及310或除了XOR閘308及310之外,可使用其他邏輯閘,例如互斥反或(XNOR)閘。還有,在閘的輸入之間可以有任何數量的正反器,且其數量不限於圖4所示的數量。例如,可為特定設計產生最佳掃描刺激,而選擇閘(如XOR閘308及310)的配置。
還有,請注意,可將處理器12的一或多個掃描鏈說明為包括第一記憶體元件、記憶體元件鏈及第二記憶體元件,其中第一記憶體元件的輸出連接至記憶體元件鏈的輸入及連接至至少一邏輯閘的輸入,及至少一邏輯閘的輸出連接至第二記憶體元件的輸入。例如,記憶體元件可以是掃描鏈內的正反器,其中邏輯閘可以是參考圖4說明的XOR閘。記憶體元件鏈可包括任何數量的記憶體元件。
於前面的說明書中,已參考特定具體實施例說明本發明。然而,熟習本技術者應明白本發明的各種修改,並且其修改不會背離如下申請專利範圍所設定的本發明範疇。例如,方塊圖可包括與所示方塊的不同方塊及可具有更多或更少方塊或按不同的方式排列。還有,方塊圖亦可按不同的方式排列、包括更多或更少步驟、或具有可分成多個步驟的步驟或可同時互相執行的步驟。因此,說明書暨附圖應視為解說,而不應視為限制,並且所有此類的修改皆屬本發明範疇內。
以上已針對特定具體實施例說明其優勢、其他優點及問題解決方案。但是,優勢、優點、問題解決方案及產生或彰顯任何優勢、優點或解決方案的任何元件,均不應視為任何或所有申請專利範圍的關鍵、必要或基本的功能或元件。本文中所使用的術語"包括"、"包含"或其任何其他變化,都是用來涵蓋非專有內含項,使得包括元件清單的製程、方法、物品或裝置,不僅包括這些元件,而且還包括未明確列出或此類製程、方法、物品或裝置原有的其他元件。
10...資料處理系統
12...處理器
14...停止與測試電路
16...其他模組
18...記憶體
20...中斷控制器
22...中斷指示符
24...停止與測試指示符
26...匯流排
28...解多工器
30,32,131-133,144,145...多工器
34...停止與測試掃描出(1-N)
35...停止與測試掃描入(1-N)
36...停止與測試掃描啟用
37...外部掃描出(1-N)
38...外部掃描入(1-N)
39...外部掃描啟用
40...掃描出(1-N)
41...掃描入(1-N)
42,138‧‧‧掃描啟用
44‧‧‧停止與測試啟用
48,106‧‧‧重設
50‧‧‧其他模組監控器
100‧‧‧停止與測試控制器
102‧‧‧隨機型樣產生器
104‧‧‧時脈
108‧‧‧Sin1
109‧‧‧Sout1
110‧‧‧Sin2
111‧‧‧Sout2
112‧‧‧簽章分析器
114‧‧‧簽章比較器
115‧‧‧預期簽章
116‧‧‧預期簽章儲存器
118‧‧‧測試結果暫存器
120‧‧‧簽章
122‧‧‧比較結果
124‧‧‧簽章識別符
126‧‧‧比較
128-130,146-147‧‧‧正反器
134,135,136,148,149,150‧‧‧其他邏輯
140,142,312,314,316,318,320‧‧‧組合邏輯
152...復原向量
154...最大時脈
156...最小時脈
158...強制錯誤信號
160...啟動
301-306...正反器
308,310...互斥或(XOR)閘
本發明藉由實例及附圖進行解說,但本發明未限定在這些實例及附圖內,其中相同的參考符號代表相同的元件,及圖式中:圖1以方塊圖顯示根據本發明之一項具體實施例的資料處理系統;圖2根據本發明之一具體實施例,以方塊圖顯示圖1之處理器及停止與測試電路的部分;圖3根據本發明之一具體實施例,以方塊圖顯示測試圖1之處理器的方法;及圖4根據本發明的一項具體實施例,以方塊圖顯示圖1之處理器的部分。
熟悉本技術者應明白,為了簡單明瞭,並不見得按照比例繪製圖式中的元件。例如,為了有助於瞭解本發明的具體實施例,圖中部分元件的尺寸和其他元件比起來可能過度放大。
12...處理器
22...中斷指示符
24...停止與測試指示符
26...匯流排
48,106...重設
100...停止與測試控制器
102...隨機型樣產生器
104...時脈
108...Sin1
109...Sout1
110...Sin2
111...Sout2
112...簽章分析器
114...簽章比較器
115...預期簽章
116...預期簽章儲存器
118...測試結果暫存器
120...簽章
122...比較結果
124...簽章識別符
126...比較
128-130,146-147...D正反器
131-133,144,145...多工器
134,135,136,148,149,150...其他邏輯
138...掃描啟用
140,142...組合邏輯
152...復原向量
154...最大時脈
156...最小時脈
158...強制錯誤信號
160...啟動
Claims (25)
- 一種用於測試一處理器之至少一邏輯塊的方法,其包含:在由該處理器執行一使用者應用程式期間,該處理器回應於停止執行該使用者應用程式之一停止與測試指示符的產生,產生該停止與測試指示符,及視需要儲存該處理器之該至少一邏輯塊的一狀態;及套用一測試刺激,以測試該處理器的該至少一邏輯塊。
- 如請求項1之方法,其進一步包含由該處理器解碼一停止與測試指令,以產生該停止與測試指示符。
- 如請求項2之方法,其進一步包含解碼該停止與測試指令,以在套用該測試刺激之前決定一掃描鏈組態。
- 如請求項1之方法,其中套用該測試刺激進一步包含將該測試刺激轉移入至少一掃描鏈持續複數個時脈週期。
- 如請求項4之方法,其中該至少一掃描鏈對應於該處理器的該至少一邏輯塊。
- 如請求項4之方法,其進一步包含在轉移入該測試刺激之前,重設該處理器的該至少一邏輯塊。
- 如請求項4之方法,其進一步包含將對應於一第一檢查點的一第一組測試結果轉移出該至少一掃描鏈,及接收該第一組測試結果至一簽章分析器,以產生對應於該第一組測試結果的一第一簽章,其中該第一檢查點對應於第一複數個時脈週期,及比較該第一簽章與一第一預期 簽章。
- 如請求項7之方法,其進一步包含將對應於一第二檢查點的一第二組測試結果轉移出該至少一掃描鏈,及接收該第二組測試結果至該簽章分析器,以產生對應於該第二組測試結果的一第二簽章,其中該第二檢查點對應於第二複數個時脈週期,及比較該第二簽章與一第二預期簽章。
- 如請求項4之方法,其中該至少一掃描鏈包含一第一記憶體元件、一記憶體元件鏈及一第二記憶體元件,其中該第一記憶體元件的一輸出連接至該記憶體元件鏈的一輸入及連接至至少一邏輯閘的一輸入,及該至少一邏輯閘的一輸出連接至該第二記憶體元件的一輸入。
- 如請求項9之方法,其中該至少一邏輯閘為一互斥或(OR)閘或一互斥反或(NOR)閘中至少一項。
- 如請求項1之方法,其進一步包含使用該測試刺激操作該處理器的該至少一邏輯塊。
- 如請求項1之方法,其進一步包含回應於一中斷的一接收,在該處理器上執行該使用者應用程式。
- 如請求項12之方法,其中執行該使用者應用程式包括執行始於一復原向量的該使用者應用程式。
- 如請求項13之方法,其中執行該使用者應用程式進一步包含如果儲存該處理器之該至少一邏輯塊的該狀態,則復原該處理器之該至少一邏輯塊的該狀態。
- 如請求項4之方法,其中該複數個時脈週期具有一預定 極大值及一預定極小值中至少一項。
- 如請求項4之方法,其進一步包含將測試結果轉移出該至少一掃描鏈,及接收該測試結果至一簽章分析器,以產生至少一對應於該測試結果的簽章。
- 如請求項16之方法,其進一步包含比較該至少一簽章與一相對應的預期簽章。
- 一種用於測試一處理器之至少一邏輯塊的裝置,其包含:一測試控制器,其經組態以在由該處理器執行一使用者應用程式期間,產生一停止與測試指示符,以回應於停止該使用者應用程式之該執行之該停止與測試指示符的該產生,及視需要儲存該處理器之該至少一邏輯塊的一狀態;至少一掃描鏈,其中該測試控制器進一步經組態以將測試該處理器之該至少一邏輯塊的一測試刺激輸入該至少一掃描鏈持續複數個時脈週期,及將測試結果輸出該至少一掃描鏈;一型樣產生器,其經組態以產生該測試刺激;及一簽章分析器,其經組態以產生至少一對應於該等輸出結果的簽章,及比較該至少一簽章與一相對應的預期簽章。
- 如請求項18之裝置,其進一步包含一測試結果暫存器,其經組態以儲存至少一指示測試成功或失敗的值。
- 如請求項19之裝置,其中該測試結果暫存器進一步經組 態以儲存一使該複數個時脈週期量化的值。
- 如請求項19之裝置,其中該測試結果暫存器進一步經組態以儲存一對應於一最後完成檢查點之一時脈週期數的值。
- 如請求項18之裝置,其進一步包含一測試結果暫存器,其經組態以儲存複數個指示測試成功或失敗的值,其中該複數個值中的每一個值對應於一檢查點。
- 如請求項18之裝置,其中該測試控制器進一步經組態以產生一使該至少一簽章不匹配該相對應之預期簽章的強制錯誤信號。
- 如請求項23之裝置,其中該強制錯誤信號在該型樣產生器的一輸出中造成一變化。
- 如請求項18之裝置,其進一步包含在該停止與測試指示符的該產生之前,設定該處理器之該至少一邏輯塊的暫存器為一預定值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/355,681 US7444568B2 (en) | 2006-02-16 | 2006-02-16 | Method and apparatus for testing a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200817704A TW200817704A (en) | 2008-04-16 |
TWI403744B true TWI403744B (zh) | 2013-08-01 |
Family
ID=38475623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096102861A TWI403744B (zh) | 2006-02-16 | 2007-01-25 | 測試資料處理系統之方法及裝置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7444568B2 (zh) |
JP (1) | JP5373403B2 (zh) |
KR (1) | KR101318697B1 (zh) |
TW (1) | TWI403744B (zh) |
WO (1) | WO2007103591A2 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797599B2 (en) * | 2006-09-27 | 2010-09-14 | Verigy (Singapore) Pte. Ltd. | Diagnostic information capture from logic devices with built-in self test |
US20080098269A1 (en) * | 2006-09-29 | 2008-04-24 | Bhavsar Dilip K | Mechanism for concurrent testing of multiple embedded arrays |
US20090228751A1 (en) * | 2007-05-22 | 2009-09-10 | Tilman Gloekler | method for performing logic built-in-self-test cycles on a semiconductor chip and a corresponding semiconductor chip with a test engine |
US7721176B2 (en) * | 2007-12-06 | 2010-05-18 | International Business Machines Corporation | Method, system, and computer program product for integrated circuit recovery testing using simulation checkpoints |
US8086925B2 (en) * | 2008-05-20 | 2011-12-27 | International Business Machines Corporation | Method and system for LBIST testing of an electronic circuit |
WO2010038096A1 (en) * | 2008-09-30 | 2010-04-08 | Freescale Semiconductor, Inc. | Method and apparatus for handling an output mismatch |
US8522085B2 (en) * | 2010-01-27 | 2013-08-27 | Tt Government Solutions, Inc. | Learning program behavior for anomaly detection |
WO2010120737A1 (en) * | 2009-04-13 | 2010-10-21 | Telcordia Technologies, Inc. | Learning program behavior for anomaly detection |
US8312331B2 (en) * | 2009-04-16 | 2012-11-13 | Freescale Semiconductor, Inc. | Memory testing with snoop capabilities in a data processing system |
US8136001B2 (en) * | 2009-06-05 | 2012-03-13 | Freescale Semiconductor, Inc. | Technique for initializing data and instructions for core functional pattern generation in multi-core processor |
US9874870B2 (en) * | 2009-08-26 | 2018-01-23 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to manage testing of a process control system |
US20110087861A1 (en) * | 2009-10-12 | 2011-04-14 | The Regents Of The University Of Michigan | System for High-Efficiency Post-Silicon Verification of a Processor |
US8458543B2 (en) * | 2010-01-07 | 2013-06-04 | Freescale Semiconductor, Inc. | Scan based test architecture and method |
US8335881B2 (en) * | 2010-03-26 | 2012-12-18 | Freescale Semiconductor, Inc. | Method and apparatus for handling an interrupt during testing of a data processing system |
US8438442B2 (en) * | 2010-03-26 | 2013-05-07 | Freescale Semiconductor, Inc. | Method and apparatus for testing a data processing system |
US8527826B2 (en) * | 2011-11-07 | 2013-09-03 | International Business Machines Corporation | Logic corruption verification |
US9281079B2 (en) * | 2013-02-12 | 2016-03-08 | International Business Machines Corporation | Dynamic hard error detection |
US9404969B1 (en) * | 2013-11-01 | 2016-08-02 | Cadence Design Systems, Inc. | Method and apparatus for efficient hierarchical chip testing and diagnostics with support for partially bad dies |
US9285424B2 (en) | 2014-07-25 | 2016-03-15 | Freescale Semiconductor,Inc. | Method and system for logic built-in self-test |
US10031181B1 (en) * | 2015-06-18 | 2018-07-24 | Marvell Israel (M.I.S.L.) Ltd. | Integrated circuit package receiving test pattern and corresponding signature pattern |
US9891282B2 (en) | 2015-12-24 | 2018-02-13 | Intel Corporation | Chip fabric interconnect quality on silicon |
US10578672B2 (en) * | 2015-12-31 | 2020-03-03 | Stmicroelectronics (Grenoble 2) Sas | Method, device and article to test digital circuits |
US10452493B2 (en) * | 2016-05-24 | 2019-10-22 | Virginia Tech Intellectual Properties, Inc. | Microprocessor fault detection and response system |
US10249380B2 (en) | 2017-01-27 | 2019-04-02 | Qualcomm Incorporated | Embedded memory testing with storage borrowing |
JP2019158749A (ja) * | 2018-03-15 | 2019-09-19 | 株式会社東芝 | 画像処理装置及び画像処理方法 |
US11204849B2 (en) * | 2020-03-13 | 2021-12-21 | Nvidia Corporation | Leveraging low power states for fault testing of processing cores at runtime |
CN115356620A (zh) * | 2022-08-17 | 2022-11-18 | 地平线(上海)人工智能技术有限公司 | 片上系统的数字逻辑自测试方法、装置、电子设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3671940A (en) * | 1970-03-19 | 1972-06-20 | Burroughs Corp | Test apparatus for digital computer |
US3839705A (en) * | 1972-12-14 | 1974-10-01 | Gen Electric | Data processor including microprogram control means |
US4042914A (en) * | 1976-05-17 | 1977-08-16 | Honeywell Information Systems Inc. | Microprogrammed control of foreign processor control functions |
US4679194A (en) * | 1984-10-01 | 1987-07-07 | Motorola, Inc. | Load double test instruction |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2644798B2 (ja) * | 1988-01-29 | 1997-08-25 | 株式会社日立製作所 | 信号処理回路の自己診断方式 |
JPH0455778A (ja) * | 1990-06-26 | 1992-02-24 | Toshiba Corp | 半導体装置のテスト方法 |
US5617021A (en) * | 1992-07-23 | 1997-04-01 | Xilinx, Inc. | High speed post-programming net verification method |
US5672966A (en) * | 1992-07-23 | 1997-09-30 | Xilinx, Inc. | High speed post-programming net packing method |
KR960000616B1 (ko) * | 1993-01-13 | 1996-01-10 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치 |
JPH0764817A (ja) * | 1993-08-30 | 1995-03-10 | Mitsubishi Electric Corp | 故障検出システム |
US5485467A (en) * | 1993-09-24 | 1996-01-16 | Vlsi Technology, Inc. | Versatile reconfigurable matrix based built-in self-test processor for minimizing fault grading |
US5900757A (en) * | 1996-05-01 | 1999-05-04 | Sun Microsystems, Inc. | Clock stopping schemes for data buffer |
US5841867A (en) * | 1996-11-01 | 1998-11-24 | Xilinx, Inc. | On-chip programming verification system for PLDs |
US6442723B1 (en) * | 1999-05-12 | 2002-08-27 | International Business Machines Corporation | Logic built-in self test selective signature generation |
US20070168736A1 (en) * | 2005-12-19 | 2007-07-19 | Ottavi Robert P | Breakpoint groups |
-
2006
- 2006-02-16 US US11/355,681 patent/US7444568B2/en not_active Expired - Fee Related
-
2007
- 2007-01-18 KR KR1020087020067A patent/KR101318697B1/ko not_active IP Right Cessation
- 2007-01-18 JP JP2008555430A patent/JP5373403B2/ja not_active Expired - Fee Related
- 2007-01-18 WO PCT/US2007/060660 patent/WO2007103591A2/en active Application Filing
- 2007-01-25 TW TW096102861A patent/TWI403744B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3671940A (en) * | 1970-03-19 | 1972-06-20 | Burroughs Corp | Test apparatus for digital computer |
US3839705A (en) * | 1972-12-14 | 1974-10-01 | Gen Electric | Data processor including microprogram control means |
US4042914A (en) * | 1976-05-17 | 1977-08-16 | Honeywell Information Systems Inc. | Microprogrammed control of foreign processor control functions |
US4679194A (en) * | 1984-10-01 | 1987-07-07 | Motorola, Inc. | Load double test instruction |
Also Published As
Publication number | Publication date |
---|---|
KR101318697B1 (ko) | 2013-10-16 |
JP2009527821A (ja) | 2009-07-30 |
US7444568B2 (en) | 2008-10-28 |
WO2007103591A3 (en) | 2008-12-04 |
WO2007103591A2 (en) | 2007-09-13 |
JP5373403B2 (ja) | 2013-12-18 |
TW200817704A (en) | 2008-04-16 |
KR20080098609A (ko) | 2008-11-11 |
US20070260950A1 (en) | 2007-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI403744B (zh) | 測試資料處理系統之方法及裝置 | |
US7644333B2 (en) | Restartable logic BIST controller | |
KR100217535B1 (ko) | 이벤트 한정 검사 아키텍춰 | |
EP2614380B1 (en) | Integrated circuit with programmable logic analyzer, enhanced analyzing and debugging capabilities and method | |
US6393594B1 (en) | Method and system for performing pseudo-random testing of an integrated circuit | |
US8943377B2 (en) | On-chip detection of types of operations tested by an LBIST | |
US9097762B2 (en) | Method and apparatus for diagnosing an integrated circuit | |
US10598728B2 (en) | Scan chain circuit supporting logic self test pattern injection during run time | |
US8677196B1 (en) | Low cost production testing for memory | |
JPH0548494B2 (zh) | ||
CN112997089A (zh) | 扩展jtag控制器和使用扩展jtag控制器进行功能调试的方法 | |
US6954886B2 (en) | Deterministic hardware reset for FRC machine | |
US5568407A (en) | Method and system for the design verification of logic units and use in different environments | |
JP5059532B2 (ja) | 半導体集積回路 | |
JP2013242746A (ja) | 故障検出システムと方法並びに半導体装置 | |
CN112585486A (zh) | 扩展jtag控制器和使用扩展jtag控制器进行功能复位的方法 | |
KR100217536B1 (ko) | 이벤트 한정 검사 방법 및 회로 | |
US7089468B2 (en) | Program-controlled unit and method for identifying and/or analyzing errors in program-controlled units | |
US12111356B2 (en) | System and method for access control of a plurality of instruments embedded in a semiconductor device | |
US20240210470A1 (en) | Scan chain diagnostic accuracy using high volume manufacturing functional testing | |
Rettig | Verification of a Parameterizable JTAG Driver Module | |
US11061073B2 (en) | Circuit testing system and circuit testing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |