專利名稱:具有跟蹤協(xié)處理器的數據處理系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及處理設備、跟蹤系統(tǒng)以及提供與應用程序相關的跟蹤信息以便能夠例如在嵌入式系統(tǒng)中提供跟蹤特征的方法。
背景技術:
多數軟件開發(fā)者花費他們相當部分的時間來尋找軟件中的缺陷。傳統(tǒng)上,這使用開始/結束調試器來完成。使用這樣的調試器,斷點可以被限定在系統(tǒng)停止的地方,并且然后當運行程序碰到斷點時可以檢查系統(tǒng)的狀態(tài)?;跈z查的結果,可以識別出軟件問題或錯誤。
遺憾地是,這樣的技術對于實時系統(tǒng)幾乎無用,因為停止系統(tǒng)改變了它的實時行為。這導致一旦引入斷點一個人正在竭力調試的問題就消失了。作為解決方案,提出了實時軟件跟蹤技術,其中相同的硬件捕獲由處理器執(zhí)行的指令序列和可能地數據存取。開發(fā)者可以然后使用這個歷史記錄或者跟蹤處理器的行為日志以調查缺陷。
近年來,處理器已經包括了實時跟蹤裝置。這樣的實時跟蹤裝置的簡單可用性允許研發(fā)新的調試范例。這樣的實時跟蹤裝置捕獲由實時運行的處理器執(zhí)行的指令的跟蹤,并且存儲這些指令在緩存器中用于隨后的分析。除了被執(zhí)行的指令之外,由那些指令使用的數據也可以被捕獲。典型地有可能選擇哪些指令或數據被捕獲。指令跟蹤顯示了處理器的執(zhí)行流程并且提供了被執(zhí)行的一列所有指令。指令跟蹤可以通過僅播送分支地址與在逐周期的基礎上指示通道狀態(tài)的一組狀態(tài)信號一起被大大地壓縮。另一方面,數據跟蹤顯示了由處理器執(zhí)行的數據存取,其作為處理器執(zhí)行調用或存儲操作的結果而發(fā)生。對于數據存取,有可能播送地址和數據。數據跟蹤可以通過僅播送地址或數據來壓縮。
此外,典型地有可能選擇觸發(fā)器條件,比如執(zhí)行特定的指令或寫特定值到存儲器中的特定位置。更復雜的觸發(fā)器條件有時也可用。當觸發(fā)器條件出現時,緩存器立即或一段時間之后停止捕獲跟蹤數據,因此保證處理器在觸發(fā)器條件出現的時間附近保持系統(tǒng)行為的跟蹤。
圖5示出了傳統(tǒng)的實時跟蹤系統(tǒng)的示意框圖,所述系統(tǒng)包括主處理器10,該處理器通過第一總線系統(tǒng)12被連接到主存儲器20上,并且通過附加的第二總線系統(tǒng)14被連接到接口單元例如通用異步接收/發(fā)送(UART)接口50上,所述接口可以被連接到外部調試設備(未示出)或類似設備。特別地,外部調試設備可以是運行跟蹤調試工具的主機或個人計算機(PC)。主處理器10將跟蹤數據寫入到主存儲器20中。然后,主處理器10編程并且提供UART接口50來自主存儲器20的跟蹤數據并且處理用于發(fā)送跟蹤數據到外部調試設備所需的所有中斷和設備管理。
總之,對于嵌入式系統(tǒng)可以提供跟蹤特征用于通過板上接口發(fā)送實時調試信息到外部調試設備。通常,希望最小化跟蹤信息因為它包括由主處理器10的處理,比如中斷等等,以管理接口單元50。
然而,為了恰當理解軟件問題,最好使盡可能多的跟蹤信息可用。特別地,希望獲得關于應用對象的運行時間行為的跟蹤信息。
發(fā)明內容
因此,本發(fā)明的一個目的是提供一種處理設備、跟蹤系統(tǒng)和方法,通過其可以增加可用的跟蹤信息量而無需中斷主處理器。
這個目的可以由如權利要求1中所要求的處理設備、如權利要求9中所要求的跟蹤方法、以及如權利要求13中所要求的跟蹤系統(tǒng)來達到。
因此,提供一種跟蹤協(xié)處理器或協(xié)處理功能來免除主處理器與跟蹤相關的任務和提供跟蹤信息給外部設備。以這樣的方式,足夠的跟蹤信息可用而不會影響主處理器的性能。一種應用跟蹤因此可以甚至在主處理器的峰值負荷情況下無需或至少使用由主處理器執(zhí)行的最少設備管理任務來產生。借助跟蹤日志文件的幫助,這提供了對于遠端分析和調試技術的重要貢獻。該提議的方案因此對于不具有足夠時間和資源來獨自處理跟蹤信息的處理設備特別有用。
跟蹤存儲器裝置可以包括雙端口隨機存取存儲器或任何類型的多端口存儲器。由此,該處理器裝置可以被連接到雙端口隨機存取存儲器的一個端口上,而跟蹤處理器裝置可以被連接到另一個端口。跟蹤處理器裝置因此可以獨自自主地工作并且不需要存取處理器裝置的一個(或多個)總線系統(tǒng)。處理器裝置參與的唯一干涉于是可以是使能跟蹤處理器裝置的行為。雙端口隨機存取存儲器可以是單獨的單元或設備,或者可以被集成到處理器裝置的主存儲器。在后一種情況下,芯片面積可以被減小,因為主存儲器和跟蹤存儲器裝置可以被集成到單個的存儲器單元中。
此外,輸出接口和跟蹤處理器裝置可以被集成到具有預定的固定傳輸參數的同一個芯片。因此,處理器裝置的編程開銷可以減少。
作為另一個可選方案,輸出接口、跟蹤存儲器裝置、以及跟蹤處理器裝置被集成到同一個芯片。這適于減少各個單元之間的通信所需的總線系統(tǒng)的數量。
特別地,輸出接口可以是通用異步傳送和接收接口。
處理器裝置和跟蹤處理器裝置可以由一個控制連接來連接,例如控制線,由處理器裝置使用該控制連接來激活跟蹤處理器裝置。因此,僅單個連接線,比如芯片選擇控制線,可以用于處理器裝置和跟蹤處理器裝置之間的通信。
處理器裝置和跟蹤存儲器裝置可以由第一總線裝置來連接,而跟蹤處理器裝置和跟蹤存儲器裝置可以由第二總線裝置來連接。這適于最小化處理器裝置的干擾,因為跟蹤處理器裝置使用其自己的第二總線裝置來存取跟蹤存儲器裝置。
跟蹤方法可以被規(guī)定,即開始地址和數據量例如跟蹤信息的字節(jié)數被確定并且用于存取跟蹤存儲器裝置。由此,跟蹤處理器功能可以僅從給定的開始地址拾取預定量的跟蹤數據并且然后將其轉發(fā)到外部調試設備。作為特例,指示數據量的信息可以被存儲在確定的開始地址處。開始地址和數據量中的至少一個可以通過控制輸入來編程或者在所述跟蹤處理功能上預設置。
下面,本發(fā)明將基于優(yōu)選實施例參照附圖更詳細地加以描述,其中圖1示出了根據第一優(yōu)選實施例的跟蹤系統(tǒng)和處理器設備的示意框圖;圖2示出了根據第二優(yōu)選實施例的跟蹤系統(tǒng)和處理器設備的示意框圖;圖3示出了根據第三優(yōu)選實施例的跟蹤系統(tǒng)和處理器設備的示意框圖;圖4示出了根據所述優(yōu)選實施例的跟蹤程序的示意性流程圖;以及圖5示出了已知常規(guī)的跟蹤系統(tǒng)的示意框圖。
具體實施例現在將基于嵌入式系統(tǒng)來描述優(yōu)選實施例,在所述系統(tǒng)中跟蹤特征用于通過板上的UART接口50發(fā)送運行時間調試信息到外部調試設備,比如個人計算機(PC)。
圖1示出了根據第一優(yōu)選實施例的具有跟蹤特征的嵌入式系統(tǒng)的原理框圖。該嵌入式系統(tǒng)包括主處理器10,其通過第一總線系統(tǒng)12連接到主存儲器20。此外,第二總線系統(tǒng)14被提供用于連接主處理器10到雙端口存儲器30比如雙端口RAM(DPRAM)的第一端口上。附加的跟蹤協(xié)處理器40通過附加的第三總線系統(tǒng)16被連接到雙端口存儲器30的第二端口上。此外,跟蹤協(xié)處理器40通過控制線11被連接到主處理器10。UART接口50通過第四總線系統(tǒng)18連接到跟蹤協(xié)處理器40。
如圖1所示,由主處理器10生成的跟蹤信息可以被清除或存儲到雙端口存儲器30上。然后,跟蹤協(xié)處理器40僅需要由主處理器10通過控制線11使能以通過第四總線系統(tǒng)18發(fā)送或轉發(fā)跟蹤信息到UART接口50。一旦通過控制線11由控制信號使能,該跟蹤協(xié)處理器發(fā)送跟蹤信息或跟蹤數據到UART接口50。跟蹤信息可以以這樣的方式被安排在雙端口存儲器30中使得第一地址包含跟蹤數據量,例如將被傳送的字節(jié)數。開始地址可以是預定的固定地址或從雙端口存儲器30讀取的任何以前跟蹤數據所確定的地址。由此,跟蹤協(xié)處理器40可以很簡單地來實現。例如,一旦跟蹤信息的總字節(jié)數已經被發(fā)送到UART接口50,跟蹤協(xié)處理器40使自己停用(deactivate)。以這種方式,主處理器10根本不被打擾。主處理器10唯一必須做的事情是當跟蹤信息準備好例如已經存儲在雙端口存儲器30中時使能跟蹤協(xié)處理器40。由此,足夠的跟蹤信息可以被提供而無由主處理器10完成的設備處理的實際打擾。
跟蹤協(xié)處理器40獨自自主地工作而且不需要存取主處理器10的所述第一或第二總線系統(tǒng)12、14。主處理器10的唯一干涉或中斷被執(zhí)行用于使能跟蹤協(xié)處理器40。
跟蹤協(xié)處理器40可以分析和/或壓縮所獲得的跟蹤信息或者可以通過UART接口50簡單地轉發(fā)它到外部調試設備。
作為可選方案,主處理器10可以存儲可跟蹤對象到雙端口存儲器30中并且跟蹤協(xié)處理器40可以自主地生成跟蹤信息。
通常,本系統(tǒng)可以涉及任何軟件對象,所述軟件對象需要被跟蹤運行時間從而用于分析??筛檶ο罂梢员恢苯痈碌诫p端口存儲器30中并且跟蹤協(xié)處理器40可以讀取它們。跟蹤信息可以涉及更高級的軟件或應用對象。特殊的指令集對于跟蹤特征來說不需要。例如,可以當心從不同實時操作系統(tǒng)(RTOS)任務等傳送的數據獲取。
主處理器10可以是任何主計算單元比如微處理器或任何其它的處理單元。第一和第二總線系統(tǒng)12、14可以是基于主處理器10能力的并行總線系統(tǒng),例如32比特、16比特的處理器等等。雙端口存儲器30可以由任何多端口存儲器設備來替換。它可以具有兩個或多個端口,其中的一個端口由主處理器10來存取并且另一個端口由跟蹤協(xié)處理器40來存取。特別地,雙端口存儲器30可以僅用于跟蹤數據。因此,它可以具有基于由特定應用生成的跟蹤數據量的小容量。UART接口50可以是任何標準的通信接口設備,例如并行端口等等。第四數據總線18可以是例如用于8比特數據的并行總線,以提供用于在跟蹤協(xié)處理器40和UART接口50之間進行通信的設備。類似地,跟蹤協(xié)處理器40可以具有到雙端口存儲器30的字節(jié)存取。如上面已經提到的,主處理器和跟蹤協(xié)處理器40之間的連接可以是單線11,比如芯片選擇控制線。
圖2示出了根據第二優(yōu)選實施例的跟蹤系統(tǒng)的變型,其中跟蹤協(xié)處理器40和UART接口50被集成在具有固定參數如同波特率等等的同一個芯片上,足夠用于處理想要速率的跟蹤數據。由此,主處理器10的編程開銷可以減少。此外,在第二優(yōu)選實施例中,雙端口存儲器被集成到主存儲器20作為跟蹤存儲器60。在這種情況下,當然主存儲器20必須被安排作為多端口存儲器或雙端口存儲器,其具有與第一總線系統(tǒng)12和第三總線系統(tǒng)16連接的至少兩個不同的存取端口。
第二優(yōu)選實施例提供了這樣的好處,即第二總線系統(tǒng)14和第五總線系統(tǒng)18可以被分配因此減小了芯片上的空間要求。當然,在第二優(yōu)選實施例中引入的上面兩個變型不必一起應用,并且第一優(yōu)選實施例可以通過引入上面兩個變型中的僅一個被修改,即,或者集成雙端口存儲器30到主存儲器20或者集成UART接口50到跟蹤協(xié)處理器40。
圖3示出了根據第三優(yōu)選實施例的跟蹤系統(tǒng)的又一種變型,其中跟蹤協(xié)處理器40、UART接口50和雙端口存儲器30被集成到同一個芯片上。在這種情況中,第二總線系統(tǒng)14可以用于提供雙端口存儲器30的第一端口之間的連接,而到雙端口存儲器30的第二端口的連接被集成到跟蹤協(xié)處理器40的芯片上。因此,所需的總線系統(tǒng)的數量可以最少。
圖4示出了可以在上面的第一到第三優(yōu)選實施例中實現的跟蹤程序的示意性流程圖。跟蹤程序由相應的控制信號例如芯片使能信號等等來激活或使能,所述控制信號由主處理器10通過控制線11發(fā)出給跟蹤協(xié)處理器40。響應于該激活,跟蹤協(xié)處理器40在步驟S100確定開始地址和數據量例如字節(jié)數,用于讀取雙端口存儲器(例如DPRAM)30(在第一優(yōu)選實施例中)或者跟蹤存儲器60(在第二優(yōu)選實施例中)。開始地址可以為預定的固定地址,或者可以從最后得到的跟蹤信息的結束地址中獲得,或者可以以任何其它適當的方式由最后得到的跟蹤信息來提供。字節(jié)數可以從存儲或預設置在雙端口存儲器30或跟蹤存儲器60中的在確定開始地址處的信息獲得。
作為可選方案,開始地址和字節(jié)數的至少之一可以通過控制線11由主處理器10發(fā)信號通知或編程。為此,如果控制線11是單線,則可以使用串行傳輸,或者如果控制線11包括幾個數據線,則可以使用并行傳輸。
然后,在步驟S101中跟蹤協(xié)處理器40使用開始地址分別存取雙端口存儲器30或跟蹤存儲器60,并且讀取所存儲的跟蹤數據。最后,在步驟S102中跟蹤協(xié)處理器40發(fā)送或轉發(fā)所得到的跟蹤數據給UART接口50以便提供跟蹤數據給外部調試設備。
總之,提供跟蹤協(xié)處理器40目的是使主處理器10免除有關跟蹤的任務。以這種方式,足夠的跟蹤信息可用于外部調試設備而不會影響主處理器10的性能。
應當看到,本發(fā)明不限于上面的優(yōu)選實施例并且可以用于包括需要跟蹤特征的處理器的任何系統(tǒng),特別是嵌入式系統(tǒng)。UART接口50可以是提供到外部調試設備的連接的任何接口單元。而且,雙端口存儲器30可以被替換為具有至少兩個存取端口的任何類型存儲器,該存取端口用于提供到主存儲器10和跟蹤協(xié)處理器40的獨立存儲器存取。優(yōu)選實施例因此可以在所附權利要求的范圍內變化。
權利要求
1.一種處理設備,用于處理基于應用程序的數據,所述處理設備包括a)處理器裝置(10),由所述應用程序控制該處理器裝置來執(zhí)行所述數據的處理;b)跟蹤存儲器裝置(30;60),其可以由所述處理器裝置(10)通過第一端口存取以存儲跟蹤信息到所述跟蹤存儲器裝置(30;60);以及c)跟蹤處理器裝置(40),用于通過第二端口存取所述跟蹤存儲器裝置以讀取所述跟蹤信息并且用于轉發(fā)所述讀取跟蹤信息到所述處理設備的輸出接口(50)。
2.根據權利要求1的處理設備,其中所述跟蹤存儲器裝置包括雙端口隨機存取存儲器(30;60)或者多端口隨機存取存儲器。3.根據權利要求2的處理設備,其中所述雙端口隨機存取存儲器(60)被集成到所述處理器裝置(10)的主存儲器(20)。
4.根據以上任一項權利要求的處理設備,其中所述輸出接口(50)和所述跟蹤處理器裝置(40)被集成到具有預定的固定傳輸參數的同一個芯片上。
5.根據權利要求1或2的處理設備,其中所述輸出接口(50)、所述跟蹤存儲器裝置(30)、以及所述跟蹤處理器裝置(40)被集成到同一個芯片上。
6.根據以上任一項權利要求的處理設備,其中所述輸出接口為通用異步傳送和接收接口(50)。
7.根據以上任一項權利要求的處理設備,還包括一個控制連接(11),用于連接所述處理器裝置(10)到所述跟蹤處理器裝置(40)上,所述控制連接(11)由所述處理器裝置(10)使用來激活所述跟蹤處理器裝置(40)。
8.根據以上任一項權利要求的處理設備,還包括第一總線裝置(14),用于連接所述處理器裝置(10)到所述跟蹤存儲器裝置(30;60),以及第二總線裝置(16),用于連接所述跟蹤處理器裝置(40)到所述跟蹤存儲器裝置(30;60)。
9.一種跟蹤方法,用于提供與應用程序有關的跟蹤信息,所述跟蹤方法包括步驟a)提供具有至少第一端口和第二端口的跟蹤存儲器裝置(30;60);b)通過所述第一端口由所述應用程序控制的處理功能來存儲所述跟蹤信息到所述跟蹤存儲器裝置(30;60)中;以及c)通過所述第二端口由跟蹤處理功能存取所述跟蹤存儲器裝置(30;60)以便輸出所述跟蹤信息。
10.根據權利要求9的跟蹤方法,還包括確定所述跟蹤信息的開始地址和數據量并且使用在所述存取步驟中所述確定的開始地址和所述數據量的步驟。
11.根據權利要求10的跟蹤方法,還包括從存儲在所述開始地址的信息中獲得所述數據量的步驟。
12.根據權利要求10或11的跟蹤方法,還包括通過控制輸入來編程所述開始地址和所述數據量的至少一個的步驟或者在所述跟蹤處理功能中預設置所述開始地址和所述數據量的至少一個的步驟。
13.一種跟蹤系統(tǒng),用于提供給調試設備與應用程序有關的跟蹤信息,所述系統(tǒng)包括a)處理器(10),由所述應用程序控制該處理器來執(zhí)行所述數據的處理;b)跟蹤存儲器(30;60),其可以由所述處理器(10)通過第一端口存取以存儲所述跟蹤信息到所述跟蹤存儲器(30;60)中;以及c)跟蹤處理器(40),用于通過第二端口存取所述跟蹤存儲器(30;60)以讀取所述跟蹤信息,并且用于轉發(fā)所述讀取的跟蹤信息到所述調試設備。
全文摘要
本發(fā)明涉及一種處理設備、一種跟蹤系統(tǒng)和一種用于提供與應用程序有關的跟蹤信息給外部調試設備的方法。提供跟蹤處理器(40)目的是免除主處理器(10)與跟蹤相關的任務。主處理器通過第一端口存儲跟蹤信息到跟蹤存儲器(30)中,而跟蹤處理器(40)通過第二端口讀取所存儲的跟蹤信息。由此,足夠的跟蹤信息可以使用而不會影響主處理器的性能。
文檔編號G06F11/36GK1954299SQ200580015177
公開日2007年4月25日 申請日期2005年5月4日 優(yōu)先權日2004年5月12日
發(fā)明者D·達斯 申請人:皇家飛利浦電子股份有限公司