TWI416316B - 用於產生資料處理設備之追蹤串流的技術 - Google Patents

用於產生資料處理設備之追蹤串流的技術 Download PDF

Info

Publication number
TWI416316B
TWI416316B TW097107370A TW97107370A TWI416316B TW I416316 B TWI416316 B TW I416316B TW 097107370 A TW097107370 A TW 097107370A TW 97107370 A TW97107370 A TW 97107370A TW I416316 B TWI416316 B TW I416316B
Authority
TW
Taiwan
Prior art keywords
tracking
timing
stream
generate
processing
Prior art date
Application number
TW097107370A
Other languages
English (en)
Other versions
TW200844728A (en
Inventor
John Michael Horley
Andrew Brookfield Swaine
Thomas Sean Houlihane
Original Assignee
Advanced Risc Mach Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Risc Mach Ltd filed Critical Advanced Risc Mach Ltd
Publication of TW200844728A publication Critical patent/TW200844728A/zh
Application granted granted Critical
Publication of TWI416316B publication Critical patent/TWI416316B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Description

用於產生資料處理設備之追蹤串流的技術
本發明是有關於用以產生一資料處理設備之追蹤串流技術,其中含有多項追蹤元素,而此等可表示該資料處理設備之一些邏輯的活動。
追蹤一資料處理系統,藉以產生一其中含有表現該系統內逐步驟活動之資料的追蹤元素串流,這在系統開發上是一種極為有用的工具。然而,隨著朝向更深度嵌入之處理器核心的一般發展趨向,這會變得較難以經由外部可存取腳針來追蹤該處理器核心或其他晶片上裝置的活動。從而,在晶片上設置有更多的追蹤功能性,並連同用於捕捉且分析該追蹤資料的晶片外追蹤機制。此一晶片上追蹤機制之範例即為由英格蘭劍橋市ARM Limited公司按關聯於其各式ARM處理器所提供的「Embedded Trace Macrocell(ETM)」。
此追蹤機制可按即時方式產生一表現所欲追蹤之資料處理設備的活動之追蹤元素之一串流。然後可為各式目的對此追蹤串流進行分析,例如為以協助對由所該資料處理設備所執行之處理指令進行偵錯、為以執行廓型(profiling)處理操作藉此決定在該資料處理設備上所執行之特定程式碼的效能等等。
通常,由該追蹤機制所產生的追蹤元素之串流在輸出而供後續分析之前係先經緩衝處理。此一追蹤緩衝器能夠儲存有限量的資訊,並且需要一專屬資料匯流排,此匯流排具有一有限頻寬,而該等所予緩衝之元素可於其上進行接收。該追蹤緩衝器係概經排置以在一「包繞」方式儲存資訊,亦即一旦該追蹤緩衝器為填滿,則通常是安排新資料以覆寫其內所儲存的最老舊資料。然已發現該專屬資料匯流排的頻寬會限制將資訊儲存在該追蹤緩衝器之內的速率。
一般說來,提供有一追蹤分析工具,而當需要時,例如一旦完成追蹤之後,此者可自該追蹤緩衝器接收追蹤元素的串流。然後,可利用該追蹤分析工具以根據所接收之追蹤元素來重建所追蹤裝置的活動。而當像是處理器核心之裝置的能力及複雜度提高時,顯然地為追蹤此等裝置之活動所必要的資訊量將會增加,並因此潛在地需要追蹤非常大量的追蹤元素。
不過,會出現可由該追蹤邏輯於其上輸出該等追蹤元素之有限匯流排頻寬的問題,並且任何用以緩衝此等追蹤元素之追蹤緩衝器的大小將為有限。因此,可產生之追蹤元素的容量為有限。
可能有意加以追蹤之裝置活動包含由一處理器核心所執行的指令(稱為指令追蹤),以及由這些指令所進行的記憶體存取(稱為資料追蹤),然不限於此。這些活動可為各 自地追蹤或者是一起追蹤,因此可將資料追蹤關聯於指令追蹤。該資料追蹤本身含有兩個部份,即記憶體位址及資料數值,而(分別地)稱為資料位址及資料數值追蹤。再度地,現有的追蹤ETM協定可供以獨立地或同時地追蹤資料位址及資料數值。
經驗顯示,就以現有的核心及ETM協定,對於指令追蹤僅達到低於每指令2位元的位元速率。然而,為說明前述問題,對於指令集及資料位址追蹤是達到每指令約10到16位元的位元速率。因此,一具有一約1GHz之操作速度而每週期執行一項指令的處理器將會產生約10到16Gbits/sec的追蹤資料,而該等全部皆必須在一固定大小緩衝器裡按晶片外方式進行且捕捉。除追蹤指令及資料位址以外,有些種類的問題亦要求進行資料數值追蹤,並且這會進一步造成所需產生之追蹤資料量提高至每指令超過20個位元。這兩個資料追蹤元素,亦即資料位址追蹤及資料數值追蹤,共集地貢獻於所產生之追蹤元素的絕大部分整體量值。
目前的ETM邏輯亦可經排置以提供一循環正確的操作模式,其中進一步資訊係經納入在該追蹤串流裡以表示各個時脈循環,而使得當後續地分析該追蹤串流之內的追蹤元素時,可決定一其中在該被追蹤裝置裡進行有相關活動之時脈循環的表示。此一循環正確操作模式雖可運用於許多情況,然這會顯著地增加所產生的追蹤資料量,無論 究係進行指令追蹤、資料追蹤抑或二者之組合皆然。在所產生之追蹤資料量已為龐大的情況下,考量到由該追蹤邏輯於其上輸出該等追蹤元素的有限頻寬,以及用以緩衝此等追蹤元素之追蹤緩衝器的有限大小,在數量上因執行循環正確追蹤而致生額外增加會造成顯著問題。
從而,會希望提供一種可用以產生一追蹤元素串流的經改良技術,藉此供以更有效地使用可於其上輸出該等追蹤元素的有限匯流排頻寬,以及該等追蹤元素經緩衝於其內之任何追蹤緩衝器的有限大小。
自第一態樣而觀察,本發明提供一資料處理設備,其中包含:一邏輯,此者可運作以產生資料元素;以及追蹤邏輯,此者可運作以產生一表現至少一部份該等資料元素的追蹤元素之一串流,該追蹤邏輯具有追蹤產生邏輯,此者可運作以產生追蹤元素以供納入在該串流之內,該追蹤產生邏輯可進一步運作以產生追蹤計時指示器以供納入在該串流之內,各追蹤計時指示器指示一或更多處理計時間隔的行經時段,而該處理計時間隔係經預定的複數個時脈循環。
根據本發明,該追蹤產生邏輯係經排置以產生追蹤計時指示器以供納入在該串流之內,而各追蹤計時指示器指示一或更多處理計時間隔的行經時段,且該處理計時間隔 係經預定的複數個時脈循環。傳統上,循環正確追蹤牽涉到識別每一時脈循環,然後將在該單一循環層級處之資訊納入在所產生的追蹤串流內。然而,本發明之發明人認知到當對其活動進行追蹤的邏輯變得愈來愈複雜時,會出現經納入在該追蹤串流之內而表示各個行經時脈循環的資訊並不如所預期般正確並且會產生誤導的情況。即如一範例,考量到一其中正對其活動進行追蹤之邏輯係一處理器核心的情況,現代的處理器核心變得愈來愈複雜,並且可例如支援指令及資料傳送離序(out of order)的執行作業。對於此等處理器核心,有時有必要在該追蹤邏輯內進行緩衝處理,藉以保留指令及資料傳送資訊,直到能夠按一有效率方式輸出資訊之刻為止。特別地,將所有資訊重新定序經常會為有利,這是因為例如對序內指令進行壓縮會比起離序情況而遠較為有效率且簡易。在此等情況下,緩衝處理不會留存有關於該等指令之精準執行的所有循環資訊,並因此單一循環正確性並不精準地表示該等指令的執行作業。
基於此項認知,本發明的發明人決定可藉由將一處理計時間隔設定如經預定之複數個時脈循環,然後將追蹤計時指示器納入在表示該等處理計時間隔一或更多者之行經時間的追蹤串流裡,以達到在追蹤資料量方面的顯著減少。因此,這可減少須予追蹤的資訊量,然既已發現,就以對其活動進行追蹤之邏輯的複雜本質來說,確可提供某 程度而為足夠的循環正確性。
而情況經常是該等待予納入在該追蹤串流之內的個別追蹤元素,在產生該串流之前,是受到一或更多壓縮技術所影響。藉由運用一技術,而按該技術此追蹤計時指示器係經產生且表示一或更多處理計時間隔之行經時間,其中這些處理計時間隔為經預設之複數個時脈循環,既已發現這不僅會減少待予追蹤的資訊量,同時也會在一些情況下獲致經改良的壓縮結果,並因而進一步地縮降在當產生該等追蹤元素的串流時所耗用頻寬。
由該追蹤邏輯所收到的資料元素可採行各種形式,只要該等對於待由此者而產生出之必要追蹤元素串流能夠提供足夠的資訊即可。此外,可將該等資料元素自該邏輯(在此又稱為經追蹤裝置)傳送至該追蹤邏輯,或另者可為由該追蹤邏輯自該經追蹤裝置擷取。即如一範例,該等資料元素可包含指令位址數值、資料位址數值或資料數值。然後,由該追蹤產生邏輯所產生的追蹤元素通常係經排置以含納足夠資訊,藉以稍後能夠由分析該追蹤串流的追蹤分析邏輯決定這些資料元素。
在一具體實施例裡,可對該追蹤產生邏輯提供以識別出一或更多所欲事件的控制資訊。該等所欲事件可採取各種形式。例如,此等事件可為關聯於由該受追蹤邏輯所執行之程式碼內的特定指令,例如分支指令。在此等情況下,當接收自該邏輯之資料元素表示執行一分支指令時,即可 將此者識別如一所欲事件。一般說來,在這些情況下,可將一追蹤元素納入在表示該所欲事件的串流之內。然而,應注意到並非所有的所欲事件皆將必然地導致在該追蹤串流之中出現追蹤元素。例如,一所欲事件可為一在該追蹤邏輯裡內部出現的特定事件,或者確為一該追蹤邏輯得到通知的外部事件,而該者其本身可能並不要求產生一追蹤元素。即如部份範例,一所欲事件可為行經一特定數量之時脈循環而並未出現任何其他所欲事件;一處理器時脈速度上的變化;或者某另一處理器既已改變狀態或既已執行一特定指令的表示。
該追蹤產生邏輯可經排置以按各種方式獲悉該等所欲事件。例如,在一具體實施例裡,此等事件可實際上是經硬體接線至該追蹤產生邏輯之內,使得能夠預設該等所欲事件。然而,或另者,此等所欲事件可為自一外部來源所程式設計,並因此例如可例如自一適當來源,例如自一追蹤分析工具,而經程式設計為該追蹤邏輯的一或更多控制暫存器,其中該追蹤分析工具將後續地分析由該追蹤邏輯所產生之追蹤元素的串流。
組成一處理計時間隔之經預定複數個時脈循環雖可能為固定,然若該處理計時間隔係經排置為可予組態設定,則可獲致顯著的進一步益處。在此等具體實施例裡,該資料處理設備進一步包含用以保留一目前處理計時間隔的儲存,並且該追蹤產生邏輯可運作以參考該儲存,藉以決定 何時產生各個追蹤計時指示器。在一具體實施例裡,該儲存可經供置於該追蹤邏輯本身之內,並且經儲存於此之內的目前處理計時間隔可為按各種方式所設定。例如,在一具體實施例裡,該儲存可為經供置如該追蹤邏輯內之數個控制暫存器的其一者,此者可為自一外部來源所設定,藉以組態設定該目前處理計時間隔。例如,一追蹤分析工具通常係經排置以分析由該追蹤邏輯所產生之追蹤元素的串流。在此等具體實施例裡,該追蹤分析工具可經排置以組態設定待予使用的目前處理計時間隔,並且此時間間隔可在當且如該追蹤分析工具之使用者視其適當時,由該追蹤分析工具加以重新程式設計。
在一替代性具體實施例裡,該追蹤產生邏輯可運作以回應於出現一或更多的預定事件而變更該處理計時間隔。
該等能夠令該追蹤產生邏輯變更該處理計時間隔之預定事件可為採取各種形式。然而,在一具體實施例裡,由該邏輯所產生之資料元素是表示由該邏輯所執行的程式碼,該追蹤產生邏輯具有一或更多控制暫存器,此等係經程式設計以識別待用於對於不同程式碼局部而產生之追蹤元素的不同處理計時間隔,並且該追蹤產生邏輯可運作以根據正對於哪些程式碼局部而產生追蹤元素來變更該處理計時間隔。由於該追蹤串流係根據正予追蹤之活動而定,因而此一方式可供動態地變更該處理計時間隔。即如一範例,可能決定對於應用程式碼要求一高度計時正確性,然 關聯於程式館程式碼則僅要求一近似時間行經。然後,在控制暫存器之內的資訊可經程式設計以令不同位址比較器能夠根據究係正追蹤應用程式碼或正追蹤程式館程式碼進行比對。每當正追蹤應用程式碼時,可利用一較短的處理計時間隔,並且每當正追蹤程式館程式碼時,則可利用一較長的處理計時間隔。
該處理計時間隔亦可能因一些像是中斷的外部事件而改變。例如,當分析正常的應用程式碼時,可能所需要僅為低位準的計時正確性,然當分析中斷處理副程式時,則通常較會要求高度的計時正確性。從而,該中斷的出現可令改變該處理計時間隔,藉以提供一較高度的正確性,並且在當完成該中斷處置器時,接著可改回該處理計時間隔以提供一較低度的正確性。
即如另一該追蹤產生邏輯可如何地回應於出現一或更多預定事件而變更該處理計時間隔的範例,若該追蹤產生邏輯係經供置以識別一或更多所欲事件的控制資訊,則該者可根據該等所欲事件出現之頻率的分析結果以變更該處理計時間隔。從而,在此等具體實施例裡,該預定事件係由該追蹤產生邏輯所執行的分析,這可令以調整目前的處理計時間隔。例如,若基於該追蹤串流之一先前產生局部,該追蹤產生邏輯決定該所欲事件僅為每二十個時脈循環出現一次,然目前處理計時間隔係經設定為四個循環,則該者可決定將目前的處理計時間隔提高至例如十六個時脈循 環應為適當。
在一具體實施例裡,當該處理計時間隔改變時,該追蹤產生邏輯可運作以在該串流之內納入一表示該變化的計時變化指示器。從而,按此一方式,後續地分析該追蹤串流的追蹤分析工具將能夠識別一在該處理計時間隔之內的變化。在一些具體實施例裡,尤其是其中該追蹤分析工具係改變該處理計時間隔的唯一個項,可能並不需要將此一計時變化指示器插入在該追蹤串流內。
可有數種其中可排置該追蹤產生邏輯以輸出該追計時指示器的方式。在一具體實施例裡,該追蹤產生邏輯可運作以,在各個處理計時間隔之後,輸出於該追蹤串流內之該追蹤計時指示器。從而,在此一具體實施例裡,無關於在任何特定處理計時間隔之內所追蹤的活動,總是會在此一處理計時間隔各者之後產生該追蹤計時指示器,並因而在該追蹤串流產生的時段過程中按規則時間間隔所重複。
該追蹤計時指示器可採行各種形式。例如,在一具體實施例裡,此者可經排置以識別出自從產生該最後一次追蹤計時指示器之後具有行經時間的一或更多處理計時間隔。在一前述具體實施例裡,其中在各個處理計時間隔之後輸出該追蹤計時指示器,因此將能瞭解到,於此等具體實施例裡,該追蹤計時指示器僅為採用單一位元數值,而此者可識別出自從該最後一次計時指示器輸出之後某一處理計時間隔已為逾期。藉此一形式之追蹤計時指示器,將 能瞭解後續地分析該追蹤串流的追蹤分析器需要知曉在產生出該追蹤計時指示器之刻所適用的處理計時間隔。
在一替代性具體實施例裡,該追蹤計時指示器表示所預定之複數個時脈循環的數量。因此,在該等具體實施例裡,若該處理計時時間間目前設定為四個時脈循環,並且該追蹤計時指示器是在各個處理計時間隔之後所產生,則各個追蹤計時指示器將識別出該數量為四個。這可提供一種較無效率,然能避免該追蹤分析工具須知曉在任何時點處所使用之處理計時間隔的編碼處理。
在一具體實施例裡,該追蹤產生邏輯係經供置以識別出一或更多所欲事件的控制資訊,並且可運作以在當該處理計時間隔過程中並未出現所欲事件時壓制一追蹤計時指示器的輸出。因而,在此等具體實施例裡,可藉由在該追蹤串流裡於「寂靜時段」過程中壓制一追蹤計時指示器的特定出現以實現進一步效率。
在此一具體實施例裡,該追蹤產生邏輯可運作以輸出一追蹤計時指示器,此者表示,當出現一所欲事件時,自從輸出該先前處理計時間隔之後既已行經的處理計時間隔數量。因而,在此等具體實施例裡,於一特定處理計時間隔過程中,當並無所欲事件時可壓制特定追蹤計時指示器,然在當後續地確出現一所欲事件時即輸出該追蹤計時指示器,而此者可表示自從輸出該先前追蹤計時指示器之後既已行經的處理計時間隔數量。因此,藉由範例方式, 若該目前處理計時間隔係經設定為四個循環,並且在一所產生先前追蹤計時指示器與後續於該最後一次追蹤計時指示器而出現的第一所欲事件之間行經十個循環,則可在出現該所欲事件之刻產生一追蹤計時指示器,而此者可識別出自從輸出該先前追蹤計時指示器之後既已行經兩個處理計時間隔(亦即八個循環)。如此雖無法提供對於該所欲事件的精確計時,然確提供對所標定之四個時脈位準為正確的計時,並亦藉由避免產生任何不必要追蹤計時指示器而按一極為有效率的方式提供計時指示器。
在一替代性具體實施例裡,該追蹤邏輯邏輯可運作以壓制輸出一追蹤計時指示器,直到出現有所欲事件之數量為止,並且接著輸出一追蹤計時指示器,此者表示在輸出該先前追蹤計時指示器後既已行經之處理計時間隔的數量。這可進一步降低在該追蹤串流裡需要據以而產生該計時指示器的頻率。
在一具體實施例裡,該等追蹤計時指示器間之所欲事件的數量可為預定。然而,在一替代性具體實施例裡,該等所欲事件之數量係由該追蹤邏輯內的壓縮邏輯所動態地決定。藉由範例,該追蹤協定可能將多個所欲事件指示器包裝成一單一追蹤封包,並僅輸出單一追蹤計時指示器。根據所使用的包裝演算法,這可意味著在一單一追蹤封包裡輸出可變數量個所欲事件。
在一具體實施例裡,該追蹤產生邏輯係經供置以識別 出一或更多所欲事件的控制資訊,並可進一步運作以,在當出現該等所欲事件之一者時,輸出一額外的追蹤計時指示器,而此者表示自從該先前追蹤計時指示器後既已行經之時脈循環的數量。因而,在此等具體實施例裡,無論是否在出現一所欲事件之時點處產生一追蹤計時指示器,可輸出一表示一目前時脈計數的額外追蹤計時指示器,而該計數表示自從前次追蹤計時指示器後既已行經之循環的數量。考量到該前述範例,其中在最後一次追蹤計時指示器之後的十個循環處出現一所欲事件,此一具體實施例可為經排置以,當出現該所欲事件時,輸出一追蹤計時指示器,該指示器可識別出既已行經兩個處理計時間隔(亦即八個循環),以及一額外追蹤計時指示器,此者標定兩個循環,藉以提供針對於該特定所欲事件的單一循環正確性。
在一具體實施例裡,該追蹤產生邏輯可運作以變更該處理計時間隔,俾防止該追蹤串流超過該追蹤產生單元可獲用的頻寬。從而,在此一具體實施例裡,該追蹤邏輯可針對於可獲用頻寬而動態地改變該處理計時間隔。這雖會要求顯著地降低在對一時段所提供的循環正確性,然一般說來相比於典型的先前技藝系統,其中在此等情況下一旦超過可獲用頻寬就會漏失一些追蹤資料,此方式將會較為有利。
在一具體實施例裡,一些追蹤元素可經排置以意指某一數量的時脈循環。例如,一識別出執行一指令的追蹤元 素可意指一個時脈循環。在此一具體實施例裡,該追蹤產生邏輯可運作,而在當可於該處理計時間隔過程中自該串流之內的追蹤元素輸出導算出在一處理計時間隔裡許多時脈循環的行經時間時,以將該處理計時間隔延伸該等數量的時脈循環,而使得當將該追蹤計時指示器後續地納入在該串流內時,可由該追蹤計時指示器所表示之處理計時間隔數量,併合於可自該等追蹤元素所導算出的時脈循環數量,以導算出自從輸出該先前追蹤計時指示器後既已行經之時脈循環的總數量。這可藉由減少在該追蹤串流裡所必要產生之計時資訊量以進一步改善該系統的效率性。
在一具體實施例裡,由一特定追蹤元素所推導之時脈循環的數量可為預定。然而,在一替代性具體實施例裡,該追蹤產生邏輯具有一或更多的控制暫存器,此等係經程式設計以,針對於一或更多類型之追蹤元素各者,識別出由該類型之追蹤元素所推導的時脈循環數量,該追蹤產生邏輯可運作以在當決定該時脈循環數量而藉以延伸該處理計時間隔時,參照於該等一或更多控制暫存器。此等控制暫存器可例如由該追蹤分析工具加以程式設計,俾識別出當該者收到特定追蹤元素時所將推導的時脈循環數量。
自一第二態樣而觀察,本發明提供用以產生一追蹤元素串流的追蹤邏輯,此串流表示至少一些由一資料處理設備之邏輯所產生的資料元素,其中包含:追蹤元素產生邏輯,此者可運作以產生追蹤元素以供納入在該串流;以及 計時指示邏輯,此者可運作以產生追蹤計時指示器以供納入在該串流內,各個追蹤計時指示器表示一或更多處理計時間隔的行經時間,而該處理計時間隔係經預定之複數個時脈循環。
自一第三態樣而觀察,本發明提供一追蹤分析設備,用以分析一由一根據本發明第一態樣之資料處理設備所產生的追蹤元素串流,其中包含:儲存,此者係用以儲存一目前處理計時間隔;以及追蹤延展邏輯,此者可運作於接收一在該串流內的追蹤計時指示器,俾參照該目前處理計時間隔,藉以決定一待予插入該串流內的時脈循環計數值。
自一第四態樣而觀察,本發明提供一操作一資料處理系統的方法,包含下列步驟:產生資料元素;運用追蹤邏輯以接收該等資料元素的表示,並且產生一表示至少一些該等資料元素的追蹤元素串流;以及產生追蹤計時指示器以供納入在該串流內,各個追蹤計時指示器表示一或更多處理計時間隔的行經時間,而該處理計時間隔係經預定之複數個時脈循環。
自一第五態樣而觀察,本發明提供一含有一電腦程式之電腦程式產品,此程式可運作以令一電腦,藉由執行下列步驟,對一由該本發明第四態樣之方法所產生的追蹤元素串流進行分析:儲存一目前處理計時間隔;以及接收一在該串流內的追蹤計時指示器,參照該目前處理計時間隔,藉以決定一待予插入該串流內的時脈循環計數值。
第1圖略圖說明一資料處理系統,此者提供邏輯10、一追蹤模組20、一追蹤緩衝器30及一追蹤分析器40。第1圖雖說明一提供一追蹤緩衝器30的資料處理系統,然在替代性具體實施例裡,該追蹤模組20可將其輸出直接地傳通至該追蹤分析器40,而無需經過一追蹤緩衝器。
產生由該追蹤模組20所接收之資料元素串流的邏輯10可為採存取各種形式,並且可例如為一處理器核心、一「直接記憶體存取(DMA)」引擎、一資料引擎/加速器等等。或另者,該邏輯10可含有複數個裝置,此等係由一匯流排耦接,並且該等資料元素可在當通過該匯流排時由該追蹤模組20加以監視。
在一具體實施例裡,該追蹤分析器40可為由一運行適當軟體之一般目的性電腦所構成,並經耦接於該追蹤模組20及該追蹤緩衝器30。該追蹤模組20通常係經具體實作為晶片上,並經排置以自該邏輯10接收資料元素,且據此而產生一追蹤元素串流,而此等追蹤元素係經儲存在該追蹤緩衝器30上(此者可為供置於晶片上或外)。該追蹤分析器40通常係經具體實作為晶片外,並且再接著用以分析該追蹤元素串流,藉此導算出表示所追蹤邏輯10之活動的資訊。尤其,經由分析該追蹤元素串流,可決定該邏輯10的詳細活動。
該追蹤分析器40係經連接至該追蹤模組20,而讓該追蹤分析器的使用者能夠控制該追蹤模組的一些特性。此外,在一些具體實施例裡,可將由該追蹤模組20所產生的追蹤元素串流直接地提供至該追蹤分析器40,而不由經該追蹤緩衝器30所緩衝。
第2圖係一第1圖邏輯10之範例的區塊圖。在此範例裡,該邏輯10包含兩個由一匯流排15連接的裝置(11、12)。該匯流排係透過該連接105而鏈結至該追蹤模組20,而由該邏輯所產生的資料元素可在該連接上傳通。
第3圖係一,根據一具體實施例,該追蹤模組20的區塊圖。該追蹤模組20係經排置以在一路徑105上接收表示該所正追蹤邏輯之狀態或運作的資料元素。該同步邏輯100係經排置以將入方信號轉換成較適於該追蹤模組20內部運用之信號的內部版本。然後再將這些內部版本發送至該控制邏輯110及該追蹤產生邏輯120,然將能瞭解並不必然地需要該控制邏輯110及該追蹤產生邏輯120來接收該等信號。基本上,該控制邏輯110需要接收與可觸發事件相關的資料,例如指令位址、資料數值、暫存器位址等等,因此該者可決定是否應啟動追蹤作業,以及應追蹤哪些類型的資料元素。然後該者發出適當的控制信號至該追蹤產生邏輯120,以令由該追蹤產生邏輯120產生出必要的追蹤元素。而根據由該控制邏輯110所發出之控制信號,該追蹤產生邏輯120透過該同步邏輯100接收任何需 予追蹤的資料。
根據本發明具體實施例,供置多個控制暫存器140,此等係用以組態設定該控制邏輯110的操作,這些控制暫存器140可為自該追蹤分析器40而設定。可提供多個控制暫存器,而這些基本上是導引該追蹤產生邏輯艙操作的兩項要素-「何時」產生追蹤元素,即如在當存取一特定位址範圍時;以及產生「何者」追蹤元素,這些元素是對於即如一特定傳送的資料位址及/或資料數值,並且通常是有關於該傳送的補充性資訊,像是此者究係一讀取或一寫入操作,此者是否為鎖定、安全資訊等等。
該追蹤產生邏輯120,受該控制邏輯110所發出而為滿足一「何時」條件時的控制信號觸發,根據亦自該控制邏輯所收到的相關「何者」信號,產生出表示此者自該控制邏輯110收到之資料元素的必要追蹤元素。這些所產生的追蹤元素會被輸出到該FIFO 130。然後,該追蹤串流自此而輸出至該追蹤緩衝器30,或者在替代性具體實施例裡,直接地輸出至該追蹤分析器40。
根據本發明之具體實施例,除一般追蹤元素以外,該追蹤產生器120係經排置以產生追蹤計時指示器,然後再將此納入該追蹤串流內,各個追蹤計時指示器表示一或更多處理計時間隔的行經時間,而其中該處理計時間隔被設定為經預定之複數個時脈循環。該處理計時間隔雖可對於任何特定實作而為固定,然在本發明之一具體實施例裡, 此者為可組態設定,而該追蹤產生器120維護目前的處理計時間隔,藉以在當產生各個追蹤計時指示器時作為參考。可有數種方式以組態設定該處理計時間隔。在一具體實施例裡可為靜態地組態設定,例如像是藉由讓該追蹤分析器40能夠在該等控制暫存器之其一內設定一目前處理計時間隔,而接著再由該追蹤產生器120讀取該數值。在一替代性具體實施例裡,該處理計時間隔是在一追蹤串流的產生過程中,由該追蹤產生邏輯120動態地組態設定,藉以將一或更多的預定事件納入考量。例如,該追蹤分析器40可經排置以在一些控制暫存器140內識別出待用於針對由該邏輯10所執行之不同程式碼局部而產生的追蹤元素之不同處理計時間隔。然後,該追蹤產生器120係經安排何時產生對於特定程式碼局部的追蹤元素以參照在該等控制暫存器內的資訊,藉此決定對於目前所追蹤之程式碼局部的適當處理計時間隔,並且接著針對於該處理計時間隔產生追蹤計時指示器。
常見的情形是,當進行一特定追蹤活動時,會有多項該追蹤分析器之使用者特別想要觀察其出現情況的所欲事件。該追蹤產生器120係經提供以識別此等所欲事件的控制資訊,此項資訊可為固定,或者另為可程式化,例如讓該追蹤分析器能夠藉由適當地設定該等控制暫存器140之一或更多者以識別此等所欲事件。即如動態地組態設定該處理計時間隔的另一範例,在此等具體實施例裡,所欲事 件係經識別,而該追蹤產生器120可經週期性排置以執行一些自我分析作業,藉此識別出所欲事件在該追蹤串流內出現的頻率。若此等所欲事件按一遠低於行經該處理計時間隔之頻率的頻率而出現,則在此等具體實施例裡,該追蹤產生器120可經排置以據此增加該處理計時間隔。
在一具體實施例裡,每當該追蹤產生器120動態地改變該處理計時間隔時,此者即經排置以在該串流內納入一表示變化的計時變化指示器,因此可大致由該追蹤分析器40對該追蹤串流進行分析,而在當解譯各個追蹤計時指示器時,將在該處理計時間隔之內的變化納入考量。
將能瞭解該可將等由該追蹤產生邏輯所產生的追蹤計時指示器,以及任何計時變化指示器,視為是額外的追蹤元素,而供納入在該追蹤串流內。尤其,當要求循環正確性時,該追蹤產生器120係經排置以產生出這些除一般追蹤元素以外的額外指示器。然而,由於在本發明之具體實施例裡,該處理計時間隔係經設定為複數個時脈循環的事實之故,因此比起運用單一循環正確性之先前技藝系統的情況來說,該追蹤產生器可產生顯著較少的資訊以在該串流內輸出,從而供以自該追蹤模組20輸出產生減較少的追蹤串流。此外,由於該處理計時間隔的可組態設定本質之故,因此可在所有的追蹤情況下於正確性與頻寬之間獲得妥協,無論究係執行指令追蹤、資料追蹤或一兩者之組合皆然。
既已發現當所追蹤裝置變得愈來愈複雜時,會出現於一單一循環層級(像是在先前技藝系統中所進行者)上執行循環正確性在任何事件裡都不會精確地表示指令執行的情況。例如,即如前述,處理裝置如今經常是能夠實作離序指令執行,並且在進行追蹤之前先執行指令串流的緩衝處理以供重新定序該資訊,藉以有助於更佳的壓縮結果。在這些情況下,此緩衝處理經常是意味著該追蹤的循環正確性本質並不如一使用者所預期般正確。藉由利用在本發明具體實施例中所實作之可組態設定處理計時間隔,可例如由一追蹤分析器的使用者視適當情況組態設定該追蹤的循環正確性,因此能夠節省追蹤頻寬而又同時維持一合理的循環資訊位準。
再者,未來系統可能為基於多個處理器,而其中會需要追蹤該等處理器之間的互動。藉由利用本發明具體實施例的技術,可顯著地減少每台裝置所需要的追蹤資料量,而在當需要追蹤較多裝置時確實重要。
在許多具體實施例裡,會先排置該追蹤產生器120然後輸出必要的追蹤元素以執行壓縮技術,藉此產生一經壓縮追蹤串流以供輸出至該FIFO 130。即如前述,根據本發明之具體實施例,可顯著地降低當執行循環正確性追時所需追蹤的資訊量。同時,既已發現可在許多情況下獲致更有效率的壓縮結果,藉此供以進一步地節省追蹤頻寬。
第4圖係一,根據本發明之具體實施例,說明該追蹤 分析器40之操作的區塊圖。該分析工具200代表用以分析該追蹤串流的標準分析工具,在此該串流可為利用本發明具體實施例之技術而在該系統之前先行產生。該追蹤延展邏輯210識別出經併入於該分析工具以供延展獲自於利用前述追蹤計時指示器之經縮簡追蹤串流的額外邏輯。自該追蹤模組20所輸出的經縮簡追蹤串流會由該追蹤延展邏輯210所接收,此者在該暫存器220之內維護一份該目前處理計時間隔的拷貝。從而,每當在該經縮簡追蹤串流裡觀察到一追蹤計時指示器時,該追蹤延展邏輯210就會將該追蹤計時指示器替換成一藉由參照於該暫存器220內之計時間隔資訊所決定的時脈循環計數值。這可產生一經延展追蹤串流,然後可由該分析工具200對其加以分析。
應瞭解到在該分析工具200對該追蹤串流執行任何必要的分析作業之前可無須要求該追蹤延展邏輯210先執行前述功能,這是因為所執行的大部份分析可能並不需要該經延展計時資訊。此外,在一具體實施例裡,該追蹤延展邏輯210及該分析工具200二者可為按如一單一合聚邏輯片段所構成。在一具體實施例裡,可由在該追蹤分析器40上執行之適當軟體構成該追蹤延展邏輯210及該分析工具200二者。
即如前述,在一些具體實施例裡,該追蹤產生器120可動態地組態設定該處理計時間隔,並且每當該處理計時間隔按此一方式而改變時,該追蹤產生器120,在一具體 實施例裡,係經排置以在該追蹤串流裡輸出一計時變化指示器。每當由該追蹤延展邏輯210觀察到此一計時變化指示器時,該者據此更新其在該暫存器220內的計時間隔的拷貝,因而在該追蹤串流之內所收到的任何後續追蹤計時指示器都會由該追蹤延展邏輯210正確地解譯。
可有數種方式以將該追蹤計時指示器納入在該追蹤串流內。第5圖係一說明一可由該追蹤產生器120執行之步驟序列的流程圖,其中該追蹤計時指示器是在每一處理計時間隔之後輸出,使得該計時間隔實際上在該追蹤串流內是採取心跳形式。即如第5圖所示,在步驟300是假定目前正進行追蹤,並且在該追蹤串流裡既已提供任何必要的初始計時指示器。即如熟諳本項技藝之人士所知曉者,當開始進行追蹤時,或許必須將一些初始資訊納入在該追蹤串流的開始處,藉此讓該追蹤分析器能夠正確地決定該追蹤的開始點,而此項資訊可例如包含一目前執行之指令的完整位址,以及一些計時資訊。
之後,該處理程序前進到步驟305,在此決定是否出現一新時脈循環。一旦既已出現一新時脈循環,則在步驟310會決定在此循環中是否既已出現一所欲事件。若否,則該程序直接地進輸入步驟320,而若在此循環中既已出現一所欲事件,則在步驟315在該追蹤串流裡輸出一該目前循環計數的表示。
在第5圖裡,僅顯示出對於輸出計時間隔為必要的步 驟,並且將能瞭解當既已出現一所欲事件時,經常會是亦可產生一相對應追蹤元素以供納入在該追蹤串流內的情況,即使並非關鍵所在。確實,經常會產生追蹤元素以供納入在該追蹤串流內,即使該等與所欲事件並無關聯亦然。即如一範例,當啟動指令追蹤時,通常會有對每個所執行指令而產生的追蹤元素。然而,並非所有的指令皆可對應於所欲事件,並且僅部份的指令,例如分支指令,可被視為是所欲事件。其他的所欲事件其本身可能與所執行之指令並無關聯,然或許是與在該追蹤邏輯裡內部,或該追蹤邏輯外部,出現的其他事件相關聯。
藉由在步驟315輸出一目前循環計數的表示,這可在與所欲事件之計時相關的追蹤串流內提供高度的正確性。
當該程序前進到步驟320時,決定該目前循環計數是否大於或等於該計時間隔。若否,則該程序前進到步驟325,在此遞增該循環計數,之後該程序回返到步驟305。不過,若該循環計數大於或等於該計時間隔,則該程序前進到步驟330,而在該追蹤串流裡輸出該計時間隔。此計時指示器可為例如一單一位元數值,此者可識別出該目前處理計時間隔的行經時間;或另者,可為一直接地表示構成該處理計時間隔之時脈循環數量的數值。在發出該計時指示器之後,該程序前進到步驟335,在此重置該循環計數,之後該程序回返到步驟305。
即如第5圖中按點狀線所示,在一替代性具體實施例 裡,假設在步驟310出現一所欲事件,並因此既已在步驟315於該追蹤串流中表示一目前循環計數,則該程序可直接地從步驟315前進到步驟335,而非前進到步驟320,以及之後的任何必要步驟。因此,根據此一替代性具體實施例,該計時指示器並非僅為每個計時間隔都輸出,無論是否在此期間出現事件皆然,而是另為根據出現一所欲事件,輸出該目前循環計數然後重置該循環計數。因此,要直到在步驟315於輸出該目前循環計數時間之後既已行經該處理計時間隔為止(當然,這是假設在其間並未出現進一步的所欲事件),才將會產生另一計時指示器。
第5圖雖說明一具體實施例,然將瞭解確可進行各種修改。例如,在一些具體實施例裡,步驟310及315可能被視為非必要,並且在每次行經該處理計時間隔就輸出該計時指示器即已足夠。
第6圖說明一替代性具體實施例,其中每次行經該處理計時間隔時並不必然會輸出該計時指示器,而是另為可在當一特定處理計時間隔之過程中並未出現所欲事件時即壓制該追蹤計時指示器的輸出。即如可自第5及第6圖之比較而知曉,步驟400、405及410係類推於第5圖裡的步驟300、305及310。若在步驟410決定既已出現一所欲事件,則程序前進到步驟415,在此輸出一計時指示器以供納入於該追蹤串流之內,此計時指示器提供一時間間隔計數。從而,一計數1將表示既已行經一個處理計時間隔, 一計數2表示既已行經兩個處理計時間隔等等,而此時間間隔計數係針對於最後一次在該追蹤串流輸出一計時指示器。之後,在步驟420,除一出現目前循環計數的表示外,該程序可經排置以按一類推於參照第5圖步驟315所述之方式選擇性地進行輸出。從而,藉由範例,若在步驟410所偵測到之所欲事件是在該最後一次計時指示器產生後的二十個循環出現,並且假定目前的處理計時間隔為八個循環,則步驟415及420的組合可獲致在步驟415輸出一計時指示器,此者識別出行經兩個處理計時間隔,接著在步驟420輸出一個4的循環計數。
在步驟420之後,或者若省略步驟420的選項而直接地在步驟415之後,該間隔計數在步驟425經重置,該程序接著前進到步驟430,在此決定該循環計數是否大於或等於該計時指示器。步驟430、435、440及445係類推於第5圖步驟320、325、330及335,而例外為注意到,在步驟440並不會產生該計時指示器,而是另為遞增該時間間隔計數。從而,相對於第5圖的方式,其中當該循環計數大於或等於該計時指示器時即輸出該計時指示器,然根據第6圖的技術,若該循環技術大於或等於該計時指示器,僅會遞增該時間間隔計數,並且只有在出現一所欲事件時方才實際地輸出一計時指示器。
即如第6圖的虛點箭頭所示,根據一替代性具體實施例,在步驟425之後,該程序可直接地前進到步驟445以 重置該循環計數,而非前進到步驟430。按此一方式,在步驟415輸出一計時指示器以及在步驟420任何經選擇性地納入的循環計數之後,即於445處重置該循環計數。因此,直到在執行步驟415及420的時刻之後既已行經目前的處理計時間隔,該循環計數之內的次一遞增才會出現。
第7圖係一流程圖,其中說明一些可在第5圖或第6圖中插入於點處A、B及C之間的替代性步驟,使得第7圖之程序在實質上是取代第5圖的步驟320或第6圖的步驟430。根據第7圖所述之具體實施例,假定在該追蹤串流內輸出的一些追蹤元素將具有一與該等相關聯的意含時脈循環計數。此意含時脈循環計數可為預定,或另在一些具體實施例裡為例如由該追蹤分析器40所程式設計。在此一可程式設計的具體實施例裡,該追蹤分析器40可經排置以將有關於針對一特定追蹤元素類型之意含時脈循環計數的資訊儲存在該等控制暫存器140的一或更多者內,因此可由該追蹤產生器120參照於該意含時脈循環數值。在一具體實施例裡,該意含時脈循環計數雖係一整數,然此非關鍵,且因而,藉由範例方式,一特定追蹤元素類型可具有一意含為1.5的循環計數。在一特定具體實施例裡,該追蹤產生器係經排置以在每次執行一指令時即產生一追蹤元素,並且此一追蹤元素具有一與其相關聯的特定意含時脈循環計數,例如一單一時脈循環。
在步驟500,該追蹤產生器120決定在目前的時脈循 環裡是否正產生一具有一意含時脈循環計數的追蹤元素。這可為一屬於一所欲事件的追蹤元素,或者可另為任何其他經納入在該追蹤串流之內的追蹤元素。若並非正產生此一追蹤元素,則該程序直接地前進到步驟520,在此決定該循環計數是否大於或等於該計時間隔。然而,若在步驟500,決定正在產生此一追蹤元素,則在前進到步驟520之前,會先在步驟510將該循環計數遞減該意含時脈循環計數的量值。
因此,為說明之目的而考量第5圖,若在一循環裡步驟325令該循環計數遞增至8,而這恰好是對應於該目前處理計時間隔,則在次一時脈循環過程中,步驟320的執行會令該程序前進到步驟330,在此產生該計時指示器。不過,根據此替代性具體實施例,若在步驟500決定為產生一具有一個循環之意含時脈循環計數的追蹤元素,則步驟510會令該循環計數遞減至7,使得當執行步驟520時,該循環計數並不會大於或等於該計時指示器,同時該程序另為分支至步驟325以令遞增該循環計數,而不產生該計時指示器。
從而,藉由此一方式,則可將在其等之間產生該等計時指示器的時間間隔予以進一步地延展,倘若於其期間內輸出具有意含計時之追蹤元素,俾進一步地減少需要追蹤的資訊量。
第8圖說明一可於第5圖或第6圖裡插入在點處X與 Y之間的選擇性步驟序列。尤其,可將第8圖中所說明之步驟序列納入在其中能夠讓該追蹤產生器120動態地變更該計時指示器的具體實施例內。即如第5及6圖中所示,可在輸出一計時指示器之後實作此程序,因為此者代表一其中可實作此一變化而無須引入顯著複雜度的時間點。在步驟600,決定該計時指示器是否需要改變。即如前述,這將通常是因該追蹤產生邏輯偵測到出現一或更多的預定事件,像是一所追蹤之程式碼局部的變化,或者是因該追蹤產生邏輯觀察到在該追蹤串流裡所欲事件之頻率顯著地低於目前計時間隔行經的頻率,而出現。
若在步驟600決定該計時指示器確實需要改變,則該程序前進到步驟610,在此由該追蹤產生器120決定一新計時間隔,並予儲存以供未來參考(例如在該等控制暫存器140其中一者內)。之後,於步驟620,在該追蹤串流中輸出該新的計時間隔,因而告知該追蹤分析器40此一變化。若在步驟600決定該計時間隔不需改變,則此程序僅直接地前進到點Y處,在此該第5或第6圖所述程序繼續進行。
經產生以供納入在該追蹤串流之內的追蹤計時指示器可採取各種形式。即如前述,該目前ETM協定支援循環正確性,在此捕捉每個單一時脈循環的行經時間,並且納入在該追蹤串流內。尤其,該目前ETM協定會在每個處理器循環上輸出一W原子。這些W原子是連同於表示由該處理器所執行之各項指令的執行狀態(E代表已執行、N代表 未執行)之其他原子而輸出。底下表1顯示一在時間上執行之ARM指令的範例序列。縱行D顯示現有的ETM協定是如何地利用54個原子以表示完整執行來編碼此串流。一W原子對於該者通過之各個循環為必要。根據本發明之具體實施例的可組態設定處理計時間隔,可在表示複數個時脈循環之各種數值間改變該循環正確性的解析度,並因此可例如採用兩個時脈循環、四個時脈循環或八個時脈循環的數值。在此等具體實施例裡,該追蹤計時指示器可採存取一W原子的形式,不過該W原子接著會被該追蹤分析器如何地解譯則是根據目前的處理計時間隔而定。因此,縱行E、F及G顯示出,若該循環正確性解析度分別地改變為2、4及8個循環,則根據此一方式的原子編碼。
即如可自表1觀察到,按一2個循環的循環正確性解析度,可利用38個原子以編碼該指令序列,按一4個循環的循環正確性解析度,可利用30個原子以編碼同一指令序列,而按一8個循環的循環正確性解析度,則可利用26個原子以編碼此指令序列。
即如前述,一旦產生基本追蹤元素以供納入在該追蹤串流內之後,該等通常會受於壓縮技術處理,藉此減少需要在串流中輸出的資料量。現有的ETM協定利用運行長度編碼方法以對原子序列進行編碼,藉以壓縮所輸出的追蹤資料量。尤其,此追蹤資料係按稱為P-標頭之位元組量值所輸出,而各位元組表示一特定的W、E或N原子的序列。 底下表2顯示這些編碼,而這可獲致對表1所示之序列而產生的17個追蹤位元組。
該目前ETM協定極度仰賴於將一或更多的W原子納入在各位元組內(除對於格式4以外),並獲證明在當該循環正確性解析度為一個循環時具有效率,即如目前系統所要求者。而當利用前述本發明具體實施例時,考量重新建構這些封包的格式以減少W原子的權重可為適當,原因在於這些通常是較不頻繁地輸出。將能瞭解確可產生出許多不同的編碼技術,然一種可予利用的簡單格式即如下列表3所示: 表3-新ETM p-標頭範例
考量表1中的範例,此一編碼技術可獲致對於一8個循環之循環正確性解析度產生出6個位元組,對於一4個循環之循環正確性解析度產生出10個位元組,並且對於一2個循環之循環正確性解析度產生出18個位元組。將能瞭解,對於一2個循環的循環正確秀性解析度,所產生之位元組的數量實際上是大於現有的ETM協定,所以對於此一解析度而考量一不同編碼通常可為適當。亦將能瞭解亦可能為其他更有效率的封包法則,並且可利用效能標測處理以決定最佳法則。
即如前述,可利用一暫存器以儲存目前的處理計時間隔。可瞭解,在一些具體實施例裡,一特定實作可僅准允數個數值,例如一特定時作可僅支援數值8或16。
亦可能根據所選定的處理計時間隔而定,可改變封包的意義以提供最佳化的解決方案。例如,若該解析度為8或16,則可利用表3所說明的新格式,然對於較低解析度,則是可選定不同的封包法則。
本發明具體實施例之技術雖在追蹤應用項目方面具有廣義適用性,然當關聯運用於複雜的追蹤裝置時,例如實作離序執行之複雜處理器或是其中資料位址及數值相對於該指令串流並非全然依序,此等技術會為特別適用。在這些情況下,指令串流可經緩衝以將資訊重新定序(由於依序 指令的壓縮作業相比於離序情況會遠較有效率且簡單),而在這些情況下,該緩衝處理並不會握存關於該等指令之精確執行的所有循環資訊,因此單一循環正確性並不會精確地表示該等指令的執行結果。然而,藉由利用前述本發明具體實施例的技術,可控制該循環正確性以維護該追蹤的基本廓型功能性,而又無高開支以及由單一循環正確性所提供的潛在誤導性資訊。
亦可將本發明具體實施例的技術有用地相聯施用於其中需要關聯多個追蹤串流的系統。該等多個追蹤串流可為關聯於多個正予追蹤的不同處理裝置,或者是關聯於一追蹤作業的不同部分,例如指令追蹤及資料追蹤,而可對其等產生出個別串流。可利用一種泛晶片時間戳記機制,像是在共同擁有之美國專利第7,069,176號案文中所述者,以關聯這些多個追蹤串流,例如以關聯在多個時脈領域裡來自多個處理器的多個追蹤串流。然而,這種關聯性可能會因輸出此資訊的開支之故而僅每1000個循環以上才出現。不過,當將此一技術合併於前述本發明具體實施例之技術時,該追蹤分析工具可將該1000個循環的窗口加以次分割,俾獲致多個處理器之間遠為細緻的關聯性程度。這在各種情況下可為非常重要。例如,當進行效能監視時,其中在一共享記憶體系統裡的兩個處理器可能正同時地執行記憶體密集任務,此關聯性可供顯現出此一問題,並且讓程式設計者能夠修改程式碼以避免匯流排競爭。即如另 一範例,當進行共享記憶體除錯時,該分析器工具之一使用者可看見如何存取一共享記憶體,並且特別是由本發明具體實施例之技術所支援的較細緻程度關聯性,可供進行讀取/寫入危險及記憶體潰損除錯。
即如可自前文說明所顯知,可有數種不同方式以產生追蹤計時指示器而供納入在該追蹤串流內。後文說明提供一系列可供運用的範例實作。在下列範例裡,組成該選定處理計時間隔之該等經預定複數個時脈循環為8個時脈循環(而例外為範例5,其中該計時間隔部份地改變),並因此在該追蹤內的各個W原子表示該等8個循環既已通過(一追蹤計時間隔)。
範例1a:
底下表4說明此一範例。在此範例裡,事件A及B為所欲事件,並且在該所欲事件處重置該循環計數。
在16及24之間,循環已通過事件A及B。
範例1b:
底下表5說明此一範例。在此範例裡,該循環計數在所欲事件處並「未」被重置。
在16及32之間,循環已通過事件A及B。這比起範例1a在各個所欲事件處會具有較大的錯誤阻擋,然係一真 實心跳情況。
範例2:
底下表6說明此一範例。各個所欲事件含有一參照於自從前次指示器後之循環數量的循環計數。該循環計數在所欲事件處「係」經重置(此為在第5圖裡的選擇性路徑)。
事件A出現在循環0之後的4個循環。而事件B則出現在事件A之後的22個循環((2*8)+6)。
範例3:
底下表7說明此一範例。時間間隔計數在所欲事件處係經群組化。在所欲事件處重置循環計數。
在事件A及B間有16到24之間個循環。
範例4:
底下表8說明此一範例。時間間隔計數在所欲事件處係經群組化,並且輸出一表示自從前次指示器後之循環數量的循環計數。在所欲事件處重置循環計數。
在事件A,自從前次指示器之後既已通過4個循環,而將該指示器設置在循環0。該循環計數在循環4處既經重置。在事件B,既已通過22個循環((2*8)+6),因此事件B出現在循環26處。
範例5:
底下表9說明此一範例。時間間隔計數在所欲事件處係經群組化。在所欲事件處輸出額外計數,藉以表示自從前次指示器之後通過的循環。在所欲事件處重置循環計數。
在事件A,自從前次指示器之後既已通過4個循環,而將該指示器設置在循環0。該循環計數在循環4處既經重置。在事件B,既已通過22個循環((2*8)+6),因此事件B出現在循環26處。事件B令該計時間隔大小從8改變成32個循環,並且這在該追蹤串流中有所表示。事件C為在事件B之後124個循環((3*32)+28)。
範例6:
底下表10說明此一範例。時間間隔計數在所欲事件處係經群組化。該群組化僅出現在每第2nd 個所欲事件處,這可被視為將所欲事件有效地分類如僅每隔一個事件。在所欲事件處輸出額外計數,藉以表示自從該前次指示器之後通過的循環。在所欲事件處重置循環計數。
在事件A,自從前次指示器之後既已通過4個循環,而將該指示器設置在循環0。該循環計數在循環4處既經重置。在事件B,僅追蹤事件B。事件C為在事件A之後146個循環((18*8)+2)。
範例7:
底下表11說明此一範例。時間間隔計數在所欲事件處係經群組化,並且輸出一表示自從前次指示器後之循環數量的循環計數。在所欲事件處重置循環計數。事件之間的指令意指每個指令一個循環。
事件B出現在事件A之後的22個循環(11+8+3)。
自前文說明將能瞭解本發明具體實施例可減少為循環正確性追蹤所必要的追蹤資料量,另外提供使用者依如對追蹤資料效率之取捨而決定循環正確性之細緻度的能力。本發明具體實施例之技術亦可供以在當要求低程度循環正 確性時能夠更有效率地壓縮該追蹤串流,而同時,若有需要,亦可讓使用者能夠按追蹤資料頻寬的代價而提高細緻度。藉由降低最終追蹤資料頻寬要求,這可減少裝置上之腳針數的要求。本發明具體實施例的可組態設定性可供以控制循環正確性的細緻度,並可供對於更先進的處理器,其中可能要求緩衝處理以輸出正常追蹤串流,同時單一循環正確性並無法完全地表示該處理器操作,選擇更適當的循環正確性機制。本發明具體實施例之技術亦可提供於多個追蹤來源之間的有效關聯性,而無對於單一循環正確性的龐大頻寬要求。
本揭中雖既已說明一特定具體實施例,然將能瞭解本發明並不受限於此,並且可在本發明範圍內對其進行多項修改和另增作業。例如,可自後文獨立請求項之特性進行相關請求項內之特性的各種組合,而不致悖離本發明範圍。
10‧‧‧邏輯
11‧‧‧裝置
12‧‧‧裝置
15‧‧‧匯流排
20‧‧‧追蹤模組
30‧‧‧追蹤緩衝器
40‧‧‧追蹤分析器
100‧‧‧同步邏輯
105‧‧‧連接
110‧‧‧控制邏輯
120‧‧‧追蹤產生邏輯
130‧‧‧FIFO
140‧‧‧控制暫存器
200‧‧‧分析工具
210‧‧‧追蹤延展邏輯
220‧‧‧暫存器
現將參照其按如附圖所示之具體實施例,而僅依範例方式以進一步說明本發明,其中:第1圖為一根據本發明之一具體實施例的資料處理系統區塊圖;第2圖係一,根據本發明之一具體實施例,說明第1圖邏輯區塊之一範例的區塊圖;第3圖係一,根據本發明之一具體實施例,進一步詳 細說明第1圖之晶片上追蹤模組的區塊圖;第4圖係一,根據本發明之一具體實施例,進一步詳細說明第1圖之追蹤分析器的區塊圖;第5圖係一流程圖,其中說明,根據本發明之一具體實施例,在第1圖晶片上追蹤模組之內所執行,藉以產生計時指示器以供納入該追蹤串流之步驟的序列;第6圖係一流程圖,其中說明,根據本發明之一替代性具體實施例,在第1圖晶片上追蹤模組之內所執行,藉以產生計時指示器以供納入該追蹤串流之步驟的序列;第7圖係一流程圖,其中說明一,根據本發明之一替代性具體實施例,可併入在第5或第6圖之處理程序內的特定步驟序列;以及第8圖係一流程圖,其中說明一,根據本發明之一具體實施例,可納入在第5或第6圖之處理程序內的步驟序列。
20‧‧‧追蹤模組
100‧‧‧同步邏輯
105‧‧‧連接
110‧‧‧控制邏輯
120‧‧‧追蹤產生邏輯
130‧‧‧FIFO
140‧‧‧控制暫存器

Claims (11)

  1. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該處理計時間隔係可組態設定;以及儲存電路系統,該儲存電路系統用於留存一目前處理計時間隔,該追蹤產生邏輯電路系統經配置以參照該儲存電路系統來決定何時產生各個追蹤計時指示器;以及其中該追蹤產生邏輯電路系統經進一步配置以回應於發生一或更多的預定事件而變更該處理計時間隔。
  2. 如申請專利範圍第1項所述之資料處理設備,其中由該邏輯電路系統所產生之該等資料元素是表示由該邏輯電路系統所執行的程式碼,該追蹤產生邏輯電路系統具有一或更多控制暫存器,該一或更多控制暫存器係經程式設計 以識別不同處理計時間隔,該等不同處理計時間隔待用於針對不同程式碼局部而產生之追蹤元素,並且該追蹤產生邏輯電路系統經配置以根據正對於哪些程式碼局部而產生追蹤元素來變更該處理計時間隔。
  3. 如申請專利範圍第1項所述之資料處理設備,其中該追蹤產生邏輯電路系統係經提供以控制資訊,該控制資訊識別一或更多感興趣之事件,並且該追蹤產生邏輯電路系統經配置以根據分析該等感興趣之事件正發生之頻率來變更該處理計時間隔。
  4. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該處理計時間隔係可組態設定;以及 儲存電路系統,該儲存電路系統用於留存一目前處理計時間隔,該追蹤產生邏輯電路系統經配置以參照該儲存電路系統來決定何時產生各個追蹤計時指示器;以及當該處理計時間隔被改變時,該追蹤產生邏輯電路系統經配置以在該串流之內納入一計時變化指示器,該計時變化指示器指示該改變。
  5. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該追蹤產生邏輯電路系統係經提供以控制資訊,該控制資訊識別一或更多感興趣之事件,且該追蹤產生邏輯電路系統經配置以當在該處理計時間隔期間沒有感興趣之事件發生時抑制輸出一追蹤計時指示器,該追蹤產生邏輯電路系統經進一步配置以當一感興趣之事件發生時輸出一追蹤計時指示器,該追蹤 計時指示器指示自從輸出先前追蹤計時指示器後既已行經之處理計時間隔的數量。
  6. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該追蹤產生邏輯電路系統係經提供以控制資訊,該控制資訊識別一或更多感興趣之事件,且該追蹤產生邏輯電路系統經配置以當在該處理計時間隔期間沒有感興趣之事件發生時抑制輸出一追蹤計時指示器,該追蹤產生邏輯電路系統經進一步配置以抑制輸出一追蹤計時指示器直到發生某數量之感興趣事件為止,並且接著輸出一追蹤計時指示器,該追蹤計時指示器指示自從輸出先前追蹤計時指示器後既已行經之處理計時間隔的數量。
  7. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該追蹤產生邏輯電路系統係經供置以控制資訊,該控制資訊識別一或更多感興趣之事件,並且該追蹤產生邏輯電路系統經進一步配置以在當發生該等感興趣之事件之一者時,輸出一額外的追蹤計時指示器,該額外的追蹤計時指示器指示自從先前追蹤計時指示器後既已行經之時脈循環的數量。
  8. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路 系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該追蹤產生邏輯電路系統經配置以變更該處理計時間隔,藉以防止該追蹤串流超過該追蹤產生邏輯電路系統可獲用的一頻寬。
  9. 一種資料處理設備,該資料處理設備包含:邏輯電路系統,該邏輯電路系統經配置以產生資料元素;追蹤邏輯電路系統,該追蹤邏輯電路系統經配置以產生一追蹤元素串流,該追蹤元素串流表示該等資料元素之至少一部份,該追蹤邏輯電路系統具有追蹤產生邏輯電路系統,該追蹤產生邏輯電路系統經配置以產生追蹤元素以供納入在該串流中,該追蹤產生邏輯電路系統進一步經配置以產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示已經過一或更多處理計時間隔,該處理計時間隔係為預定之複數個時脈循環,其中該追蹤產生邏輯電路系統經配置以,在當於一處理計時間隔期間自該串流中的該等追蹤元素輸出可導算出在該處理計時間隔內已經過一數量之時脈循環時,將該處理計時間隔延伸該數量之時脈循環,使得當將該追蹤計時指示器後續地納入在該串流 中時,可由該追蹤計時指示器所指示之處理計時間隔之數量,併合於可自該等追蹤元素所導算出的時脈循環之該數量,以導算出自從輸出先前追蹤計時指示器後既已行經之時脈循環的一總數量。
  10. 如申請專利範圍第9項所述之資料處理設備,其中該追蹤產生邏輯電路系統具有一或更多的控制暫存器,該一或更多控制暫存器係經程式設計以針對於一或更多追蹤元素類型之各者,識別出由該追蹤元素類型所推導的時脈循環之一數量,該追蹤產生邏輯電路系統經配置以在當決定該時脈循環之該數量而藉以延伸該處理計時間隔時,參照於該一或更多控制暫存器。
  11. 一種操作一資料處理系統的方法,該方法包含下列步驟:產生資料元素;運用追蹤邏輯以接收該等資料元素的指示,並產生表示該等資料元素之至少一部份的一追蹤元素串流;以及產生追蹤計時指示器以供納入在該串流中,各追蹤計時指示器指示行經一或更多的處理計時間隔,該處理計時間隔係預定之複數個時脈循環,在當於一處理計時間隔期間自該串流中的該等追蹤元素輸出可導算出在該處理計時間隔內已經過一數量之時脈循環時,將該處理計時間隔延 伸該數量之時脈循環,使得當將該追蹤計時指示器後續地納入在該串流中時,可由該追蹤計時指示器所表示之處理計時間隔之數量,併合於可自該等追蹤元素所導算出的時脈循環之該數量,以導算出自從輸出先前追蹤計時指示器後已經過之時脈循環的一總數量。
TW097107370A 2007-03-21 2008-03-03 用於產生資料處理設備之追蹤串流的技術 TWI416316B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0705430A GB2447683B (en) 2007-03-21 2007-03-21 Techniques for generating a trace stream for a data processing apparatus

Publications (2)

Publication Number Publication Date
TW200844728A TW200844728A (en) 2008-11-16
TWI416316B true TWI416316B (zh) 2013-11-21

Family

ID=38024575

Family Applications (2)

Application Number Title Priority Date Filing Date
TW097107370A TWI416316B (zh) 2007-03-21 2008-03-03 用於產生資料處理設備之追蹤串流的技術
TW102120766A TWI505084B (zh) 2007-03-21 2008-03-03 用於產生資料處理設備之追蹤串流的技術

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW102120766A TWI505084B (zh) 2007-03-21 2008-03-03 用於產生資料處理設備之追蹤串流的技術

Country Status (4)

Country Link
US (2) US7937626B2 (zh)
JP (2) JP5325436B2 (zh)
GB (1) GB2447683B (zh)
TW (2) TWI416316B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407528B2 (en) * 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US8042007B1 (en) * 2009-08-27 2011-10-18 Xilinx, Inc. Trace module for integrated circuit devices
US8762779B2 (en) * 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
US9965342B2 (en) * 2010-03-16 2018-05-08 Arm Limited Synchronization in data processing layers
US9348723B2 (en) 2011-01-21 2016-05-24 Freescale Semiconductor, Inc. Method, system, and computer program product
US10642709B2 (en) * 2011-04-19 2020-05-05 Microsoft Technology Licensing, Llc Processor cache tracing
US8799719B2 (en) 2011-05-19 2014-08-05 International Business Machines Corporation On demand tracing of application code execution
WO2013101214A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Optional logging of debug activities in a real time instruction tracing log
US8612650B1 (en) 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US8924796B2 (en) * 2012-03-22 2014-12-30 Intel Mobile Communications GmbH System and method for processing trace information
US8904412B2 (en) * 2012-09-26 2014-12-02 International Business Machines Corporation Dynamic performance data collection in large computer servers
US9519564B1 (en) * 2012-09-28 2016-12-13 EMC IP Holding Company LLC Trace saving intervals
US8954546B2 (en) * 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US11042469B2 (en) * 2017-08-28 2021-06-22 Microsoft Technology Licensing, Llc Logging trace data for program code execution at an instruction level

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04239343A (ja) * 1991-01-14 1992-08-27 Nec Corp 情報処理装置のトレース方式
JP2000259449A (ja) * 1999-03-09 2000-09-22 Hitachi Information Systems Ltd プログラム実行トレース取得制御システムおよびその方法ならびに該方法を実現するプログラムを記録した記録媒体
JP2003263340A (ja) * 2002-03-11 2003-09-19 Ricoh Co Ltd デバッグ装置
TW558887B (en) * 2001-04-13 2003-10-21 Motorola Inc Manipulating data streams in data stream processors
US20040216092A1 (en) * 1999-12-29 2004-10-28 Ayers Andrew E Method for simulating back program execution from a traceback sequence
TW200519740A (en) * 2003-09-08 2005-06-16 Freescale Semiconductor Inc Data processing system for implementing simd operations and method thereof
TW200525553A (en) * 2003-11-14 2005-08-01 Intel Corp Data accumulation between data path and memory device
TW200601099A (en) * 2004-06-18 2006-01-01 Ambric Inc Integrated circuit development system
US20060195311A1 (en) * 2000-03-02 2006-08-31 Swoboda Gary L Synchronizing On-Chip Data Processor Trace and Timing Information for Export

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764826A (ja) * 1993-08-25 1995-03-10 Fuji Facom Corp トレースデータ収集管理装置
US6154857A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Microprocessor-based device incorporating a cache for capturing software performance profiling data
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
JP4239343B2 (ja) 1999-03-26 2009-03-18 ソニー株式会社 酸化物の結晶成長方法、電界効果トランジスタの製造方法および強誘電体不揮発性メモリの製造方法
US6415409B1 (en) * 1999-11-03 2002-07-02 Unisys Corporation System for testing IC chips selectively with stored or internally generated bit streams
JP2001175500A (ja) * 1999-12-17 2001-06-29 Nec Ic Microcomput Syst Ltd インサーキットエミュレータのトレース方法、トレース手順を記録した記録媒体およびトレース回路
JP3515727B2 (ja) * 2000-01-28 2004-04-05 Necエレクトロニクス株式会社 論理回路の故障箇所推定システムおよびその方法並びにプログラムを記録した機械読み取り可能な記録媒体
US6745351B1 (en) * 2000-05-26 2004-06-01 I-Tech Corporation Indexing system for protocol analyzers
US6834365B2 (en) * 2001-07-17 2004-12-21 International Business Machines Corporation Integrated real-time data tracing with low pin count output
US6928639B2 (en) * 2001-09-11 2005-08-09 International Business Machines Corporation Time-interval based monitor function for dynamic insertion into and removal from a running application
US8099273B2 (en) * 2003-06-05 2012-01-17 Mentor Graphics Corporation Compression of emulation trace data
US20050268195A1 (en) * 2004-04-29 2005-12-01 Lund Morten W Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04239343A (ja) * 1991-01-14 1992-08-27 Nec Corp 情報処理装置のトレース方式
JP2000259449A (ja) * 1999-03-09 2000-09-22 Hitachi Information Systems Ltd プログラム実行トレース取得制御システムおよびその方法ならびに該方法を実現するプログラムを記録した記録媒体
US20040216092A1 (en) * 1999-12-29 2004-10-28 Ayers Andrew E Method for simulating back program execution from a traceback sequence
US20060195311A1 (en) * 2000-03-02 2006-08-31 Swoboda Gary L Synchronizing On-Chip Data Processor Trace and Timing Information for Export
TW558887B (en) * 2001-04-13 2003-10-21 Motorola Inc Manipulating data streams in data stream processors
JP2003263340A (ja) * 2002-03-11 2003-09-19 Ricoh Co Ltd デバッグ装置
TW200519740A (en) * 2003-09-08 2005-06-16 Freescale Semiconductor Inc Data processing system for implementing simd operations and method thereof
TW200525553A (en) * 2003-11-14 2005-08-01 Intel Corp Data accumulation between data path and memory device
TW200601099A (en) * 2004-06-18 2006-01-01 Ambric Inc Integrated circuit development system

Also Published As

Publication number Publication date
JP2013058249A (ja) 2013-03-28
US20110029823A1 (en) 2011-02-03
JP5325436B2 (ja) 2013-10-23
US7937626B2 (en) 2011-05-03
TW200844728A (en) 2008-11-16
TWI505084B (zh) 2015-10-21
TW201342037A (zh) 2013-10-16
GB2447683A (en) 2008-09-24
US8099635B2 (en) 2012-01-17
GB0705430D0 (en) 2007-05-02
GB2447683B (en) 2011-05-04
JP2008234652A (ja) 2008-10-02
US20080235538A1 (en) 2008-09-25

Similar Documents

Publication Publication Date Title
TWI416316B (zh) 用於產生資料處理設備之追蹤串流的技術
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
KR101430218B1 (ko) 디버그 상태 기계 및 이를 포함하는 프로세서
US9830241B2 (en) Debug in a multicore architecture
GB2453174A (en) Generating a compressed trace stream for a data processing apparatus
KR20210079348A (ko) 커맨드 오류 처리를 위해 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램
US7710969B2 (en) Rapid I/O traffic system
US20050138484A1 (en) Apparatus and method for time ordering events in a system having multiple time domains
EP2847682B1 (en) Processor device with reset condition trace capabilities
EP1805621A2 (en) Method and system for debugging a multi-threaded program executing in a multicore architecture
JP2004013896A (ja) データ処理システムにおける命令のトレーシング
US9377507B2 (en) Processor device with instruction trace capabilities
US10289527B2 (en) Tracing of exception handling events
US20060282719A1 (en) Unique Addressable Memory Data Path
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
US20060256878A1 (en) Out of Order Message Completion Management
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
US20070294590A1 (en) Compression scheme to reduce the bandwidth requirements for continuous trace stream encoding of system performance
JP4685368B2 (ja) データを処理する装置、トレースデータを発生する方法、及びトレースデータを分析する装置
US20060256876A1 (en) Fast Decode of Pending Interrupts
JP2007212327A (ja) デバッグ回路