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