專利名稱:用于時(shí)間戳消息的方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例普遍涉及用于數(shù)據(jù)隊(duì)列的時(shí)間戳處理。
背景技術(shù):
當(dāng)在被跟蹤的源或設(shè)備與用于解釋跟蹤數(shù)據(jù)的目標(biāo)或設(shè)備之間存在先
進(jìn)先出類型(FIFO)的緩沖器時(shí),使用典型的方法難以準(zhǔn)確地從一個(gè)專用 集成電路(ASIC)內(nèi)的多個(gè)跟蹤源測(cè)量消息的相對(duì)通過(guò)時(shí)間。
當(dāng)前的方法采用時(shí)間戳計(jì)數(shù)器的使用來(lái)測(cè)量ASIC中的時(shí)間;然而,該 過(guò)程需要在ASIC內(nèi)實(shí)現(xiàn)相當(dāng)大的計(jì)數(shù)器用于將要進(jìn)行的準(zhǔn)確的計(jì)時(shí)測(cè)量。 使得準(zhǔn)確地測(cè)量消息的通過(guò)時(shí)間的問(wèn)題更加復(fù)雜的是,典型的方法要求按 比例降低時(shí)間戳的準(zhǔn)確性,以減少基于計(jì)數(shù)的時(shí)間戳所消耗的帶寬,其中 所述準(zhǔn)確性與大小成正比。而且,為了減少功耗,通常將額外的休眠時(shí)鐘 計(jì)數(shù)器用于跟蹤ASIC深度休眠期間的時(shí)間,這需要額外的計(jì)數(shù)器以及在走 出深度休眠之后通過(guò)軟件來(lái)調(diào)整時(shí)間戳計(jì)數(shù)器的過(guò)程。使用額外的時(shí)鐘控 制和軟件集成使得時(shí)間戳過(guò)程更加復(fù)雜。
因此,需要一種被配置為準(zhǔn)確地測(cè)量消息排隊(duì)時(shí)間且消耗最小的物理 硬件開(kāi)銷和最小的帶寬的設(shè)備和方法。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種被配置為準(zhǔn)確地測(cè)量消息排隊(duì)時(shí)間且消耗 最小的物理硬件開(kāi)銷和最小的帶寬的設(shè)備和方法。為了測(cè)量消息排隊(duì)時(shí)間, 在消息傳送的接收側(cè)將接收時(shí)間、消息排隊(duì)時(shí)FIFO緩沖器狀態(tài)以及之前的 消息的長(zhǎng)度用于計(jì)算時(shí)間戳。
本發(fā)明的實(shí)施例還提供了 一種用于計(jì)算消息排隊(duì)時(shí)間的方法。所述方法包括在第一時(shí)間將消息排隊(duì)到緩沖器中,生成表示在所述第一時(shí)間所 述緩沖器中的消息數(shù)目的時(shí)間戳消息,傳送所述消息到另一設(shè)備,傳送所 述時(shí)間戳消息到跟蹤設(shè)備,以及基于所述時(shí)間戳消息、所述第一時(shí)間以及 所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
本發(fā)明的實(shí)施例還提供了一種用于確定消息排隊(duì)時(shí)間的系統(tǒng)。所述系 統(tǒng)包括置于集成電路上的跟蹤接口設(shè)備,其被配置為在第一時(shí)間將消息 排隊(duì)到緩沖器中,以及生成表示在所述第一時(shí)間所述緩沖器中的消息數(shù)目 的時(shí)間戳消息;以及將所述跟蹤接口設(shè)備與外部跟蹤設(shè)備連接的輸出端, 其中所述外部跟蹤設(shè)備被配置為基于所述時(shí)間戳消息、所述第一時(shí)間以及 所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
本發(fā)明的實(shí)施例還提供了 一種用于計(jì)算消息排隊(duì)時(shí)間的電路。所述電 路包括排隊(duì)模塊,其被配置為在第一時(shí)間將消息排隊(duì)到緩沖器中;時(shí)間 戳生成模塊,其被配置為生成表示在所述第一時(shí)間所述緩沖器中的消息數(shù) 目的時(shí)間戳消息;通信鏈路,其被配置為允許將所述消息傳送到另一設(shè)備; 以及跟蹤模塊,其被配置為基于所述時(shí)間戳消息、所述第一時(shí)間以及所述 緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
本發(fā)明的實(shí)施例還提供了 一種用于計(jì)算消息排隊(duì)時(shí)間的系統(tǒng)。所述系 統(tǒng)包括排隊(duì)裝置,用于在第一時(shí)間將消息排隊(duì)到緩沖器中;時(shí)間戳生成 裝置,用于生成表示在所述第一時(shí)間緩沖器中的消息數(shù)目的時(shí)間戳消息; 通信裝置,其被配置為允許將所述消息傳送到另一設(shè)備;以及計(jì)算裝置, 用于基于所述時(shí)間戳消息、所述第 一時(shí)間以及所述緩沖器中的數(shù)據(jù)量計(jì)算 所述消息排隊(duì)時(shí)間。
本發(fā)明的實(shí)施例還提供了 一種包含在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程 序,所述計(jì)算機(jī)程序被配置為通過(guò)執(zhí)行該計(jì)算機(jī)程序的處理器來(lái)控制用于 計(jì)算消息排隊(duì)時(shí)間的方法。所述方法包括在第一時(shí)間將消息排隊(duì)到緩沖 器中,生成表示在所述第一時(shí)間所述緩沖器中的消息數(shù)目的時(shí)間戳消息, 傳送所述消息到另一設(shè)備,傳送所述時(shí)間戳消息到跟蹤設(shè)備,以及基于所 述時(shí)間戳消息、所述第 一時(shí)間以及所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
應(yīng)該參考附圖以便準(zhǔn)確理解本發(fā)明,其中
圖1示例性示出本發(fā)明的示例性外部跟蹤接口 (XTI)系統(tǒng)的高級(jí)別框
圖2示例性示出顯示元件的驅(qū)動(dòng)時(shí)鐘的本發(fā)明示例性XTI系統(tǒng)的高級(jí)
別框圖3示例性示出本發(fā)明的示例性XTI系統(tǒng)的輸出的相對(duì)時(shí)序;
圖4示例性示出本發(fā)明的示例性方法的流程圖;以及
圖5示例性示出本發(fā)明的另一示例性XTI系統(tǒng)的輸出的相對(duì)時(shí)序;
M實(shí)施方式
圖1示例性示出置于ASIC 101上的本發(fā)明的示例性外部跟蹤接口(XTI )系統(tǒng)100的高級(jí)別框圖。盡管在本實(shí)施例中系統(tǒng)100被置于ASIC 101上,但是可選地系統(tǒng)IOO可以被置于任何分離的電路上,并且本發(fā)明不限于與ASIC—起使用。XTI系統(tǒng)100通常包括與判別器106通信的系統(tǒng)跟蹤模塊(STM) 102。通常判別器106還經(jīng)由軟件數(shù)據(jù)連接107(SW數(shù)據(jù))與多個(gè)處理器和DMA控制器108通信。系統(tǒng)IOO還包括與判別器106通信的存儲(chǔ)器和外圍設(shè)備IIO,與STM102通信的外部跟蹤設(shè)備112,以及與外部跟蹤設(shè)備112通信的PC 114。嚢括外部跟蹤設(shè)備112和PC 114作為調(diào)試和測(cè)試系統(tǒng)(DTS)115的一部分。
圖2示例性示出顯示用于元件的驅(qū)動(dòng)時(shí)鐘的示例性XTI系統(tǒng)100子塊(sub-block)的高級(jí)別框圖。更具體地,在示例性XTI系統(tǒng)100中,圖中左側(cè)組件(配置接口設(shè)備201、時(shí)鐘控制設(shè)備2Q2、跟蹤總線接口設(shè)備203以及消息生成設(shè)備204 )都用總線時(shí)鐘來(lái)計(jì)時(shí)。相反地,圖中右側(cè)示出的組件(FIFO讀邏輯205和輸出控制206 )被在XTI輸出時(shí)鐘域中計(jì)時(shí)。然而,F(xiàn)IFO緩沖器207橋接在兩個(gè)時(shí)鐘域之間。對(duì)于XTI子塊的主要輸入是連接到那里的兩種總線。第一種總線通常被稱為配置總線105,通常被用于設(shè)置運(yùn)行時(shí)間配置(啟用和禁用不同的主控(master),設(shè)置內(nèi)部時(shí)鐘設(shè)置等),而第二種總線通常被稱為跟蹤總線103,被用于捕獲跟蹤數(shù)據(jù)并被置于STM 102和判別器106之間。
返回到對(duì)圖1中示出的系統(tǒng)100的討論,通過(guò)操作核心協(xié)議(OCP,operational core protocol )交叉(crossbar )類型架構(gòu)將STM 102連接到總線主控,該架構(gòu)使得若干主控利用STM 102進(jìn)行跟蹤成為可能。STM 102通常是OCP總線類型從動(dòng)模塊,其接受被置于STM 102和判別器106之間的跟蹤總線103上的寫(xiě)傳遞。STM 102可以被進(jìn)一步配置為封裝數(shù)據(jù)并將封裝的數(shù)據(jù)轉(zhuǎn)發(fā)給外部跟蹤設(shè)備112用于進(jìn)一步處理,而無(wú)需使用ASIC101的開(kāi)銷。
圖2中示例性示出的配置總線105通常是帶有簡(jiǎn)單MByteEn OCP擴(kuò)展的標(biāo)準(zhǔn)OCP接口。配置寄存器自身可以是特定于實(shí)現(xiàn)的,但是應(yīng)該至少包括允許關(guān)于每個(gè)連接到STM 102的主控的比特的配置,并且如果主控被禁止,則STM 102通常將丟棄接收自被禁止的主控的跟蹤數(shù)據(jù)。另外,配置寄存器通常包括時(shí)鐘調(diào)整寄存器,該時(shí)鐘調(diào)整寄存器可用于調(diào)整STM 102和外部跟蹤i殳備112之間的接口的時(shí)鐘速率。
跟蹤總線103通常是^L置于STM 102和判別器106之間的只寫(xiě)類型的0CP接口。除了 MByteEn擴(kuò)展之外,跟蹤總線103通常使用MReqlnf o擴(kuò)展用以向STM 102寫(xiě)跟蹤數(shù)據(jù)。通常,TraceMReqlnf信號(hào)用于將不同的OCP總線主控彼此區(qū)分開(kāi)。跟蹤總線103通常是32或64位寬(bit wide),這取決于ASIC架構(gòu),并且跟蹤總線103通常支持8位、16位、32位和64位接入。對(duì)于64位系統(tǒng)跟蹤總線103地址通常是12位寬,或者對(duì)于32位系統(tǒng)是ll位。STM 102通常丟棄子字(sub-word)尋址,也就是用于64位系統(tǒng)的地址中的3個(gè)最不重要的位,或者用于32位系統(tǒng)的2個(gè)最不重要的位,并且將僅^f吏用TraceMByteEn用于局部的字接入。當(dāng)4吏用64位STM102時(shí),16和32位接入通常被調(diào)整到合適的字邊界。類似地,當(dāng)使用32位STM102時(shí),16位接入將通常被調(diào)整到16位字邊界為了保護(hù)跟蹤數(shù)據(jù)免于丟失,通常配置并控制STM 102以便中斷跟蹤總線103,也就是如果FIFO緩沖器207滿了,則它將不接受跟蹤總線103上的另外的傳遞。當(dāng)STM 102對(duì)MASTER、 OVRF或A8消息進(jìn)行排隊(duì)時(shí),也可產(chǎn)生額外的等待狀態(tài)。STM 102在一個(gè)時(shí)鐘周期中僅存儲(chǔ)一個(gè)消息到FIFO中,因此,STM 102所連接到的主控通常能夠在STM 102釋放FIFO中的空間時(shí)處理相對(duì)長(zhǎng)的等待,或者能夠在將數(shù)據(jù)寫(xiě)到STM 102之前丟棄不必要的數(shù)據(jù)。在這些特殊情形之外,STM 102通常被配置為每時(shí)鐘周期接受一個(gè)接入,并且不會(huì)引起對(duì)于主控的額外的等待狀態(tài)。
在消息生成子塊中封裝通過(guò)跟蹤總線接口捕獲的接入,用以創(chuàng)建對(duì)于跟蹤設(shè)備的數(shù)據(jù)消息。XTI系統(tǒng)識(shí)別兩種不同的跟蹤模式。每個(gè)主控可被配置用于SW或HW模式,它們使用稍有不同的消息組合來(lái)輸出不同類型的數(shù)據(jù)。SW和HW消息兩者都使用相同的基礎(chǔ)低級(jí)別消息類型,盡管不是所有的消息類型都被這兩種模式使用。通過(guò)有限狀態(tài)機(jī)(FSM, finite statemachine)(未示出)來(lái)執(zhí)行消息生成。FSM通常在IDLE狀態(tài)中啟動(dòng)STM 102,并且將在FIFO緩沖器為空并且沒(méi)有消息要處理時(shí)返回到該狀態(tài)。在IDLE狀態(tài)期間,STM 102可以傳送IDLE消息,并且STM 102也可以在其空閑時(shí)停止時(shí)鐘輸出。
如果STM102收到來(lái)自SW主控的接入,并且對(duì)于同一主控它還未處于SW數(shù)據(jù)狀態(tài),則其通常轉(zhuǎn)變到SW狀態(tài)。在SW狀態(tài),STM 102將排隊(duì)MASTER消息,以通知跟蹤設(shè)備接下來(lái)的消息將來(lái)自哪個(gè)主控。STM 102還將自動(dòng)地從SW狀態(tài)轉(zhuǎn)變到SW地址狀態(tài)。在SW地址狀態(tài)中,STM 102將排隊(duì)A8消息,以用信號(hào)通知用于后續(xù)一個(gè)(多個(gè))數(shù)據(jù)消息的信道編號(hào)。STM102將自動(dòng)地從SW地址狀態(tài)轉(zhuǎn)變到SW數(shù)據(jù)狀態(tài)。
STM 102將停留在該狀態(tài),直到接收到來(lái)自另一主控、來(lái)自同一主控上的另一信道的接入,或者如果在FIFO緩沖器被清空之前沒(méi)有收到新的消息。在SW數(shù)據(jù)狀態(tài),對(duì)于接收到的寫(xiě)接入,STM 102將排隊(duì)數(shù)據(jù)消息。數(shù)據(jù)消息的大小被通過(guò)所用字節(jié)來(lái)確定,并且其通常是盡可能的小,但仍然包含所述接入中的所有活動(dòng)的字節(jié)。如果STM 102收到來(lái)自HW主控的接入,并且對(duì)于同一主控它未處于HW數(shù)據(jù)狀態(tài),則STM 102將轉(zhuǎn)變到HW狀態(tài)。在HW狀態(tài),STM將排隊(duì)MASTER消息,以通知跟蹤設(shè)備接下來(lái)的消息來(lái)自哪個(gè)主控。如果地址中的Overflow (溢出)位是高的,則STM102將從HW或HW數(shù)據(jù)狀態(tài)轉(zhuǎn)變到OVRF (溢出)狀態(tài)。在OVRF狀態(tài),STM將排隊(duì)OVRF消息,以通知多艮蹤i殳備主控上已出現(xiàn)溢出。如果地址中的Overflow位是低的,則STM將隨后從HW狀態(tài)轉(zhuǎn)變到HW數(shù)據(jù)狀態(tài),并自動(dòng)地從OVRF狀態(tài)轉(zhuǎn)變到HW數(shù)據(jù)狀態(tài)。在HW數(shù)據(jù)狀態(tài),對(duì)于接收到的寫(xiě)接入,STM將排隊(duì)數(shù)據(jù)消息。
通常,參考XTI設(shè)計(jì)在每個(gè)上文提到的狀態(tài)中消耗至少一個(gè)時(shí)鐘周期,通常僅一個(gè)時(shí)鐘周期,但是如果FIF0緩沖器是滿的,則延時(shí)可能會(huì)更長(zhǎng)。因此,從IDLE(或HW數(shù)據(jù))狀態(tài)排隊(duì)SW消息通常將消耗三個(gè)時(shí)鐘周期,在此期間STM 102通常將不會(huì)接受任何額外的總線接入請(qǐng)求。只要STM 102停留在上文提到的HW數(shù)據(jù)或SW數(shù)據(jù)狀態(tài),STM 102便能夠在一個(gè)時(shí)鐘周期中排 隊(duì)來(lái)自同一主控的另外的消息。
消息中的時(shí)間戳通常被配置為指示跟蹤設(shè)備112在消息被排隊(duì)時(shí)FIFO緩沖器207中有多少消息。指示消息數(shù)目的時(shí)間戳使得跟蹤設(shè)備ll2基于消息到達(dá)跟蹤設(shè)備112的時(shí)間以及該消息被傳送前FIFO中的數(shù)據(jù)量,來(lái)計(jì)算消息被排隊(duì)的時(shí)間成為可能。除了通知消息的結(jié)束之外(其通常使用時(shí)間戳消息來(lái)通知),STM 102通常處理消息封裝過(guò)程。本發(fā)明的XTI硬件不需要該消息結(jié)束標(biāo)記,但是來(lái)自消息的結(jié)束的標(biāo)記可以被跟蹤設(shè)備和軟件協(xié)議使用,在由于溢出或其他干擾數(shù)據(jù)丟失的情況,所述設(shè)備和協(xié)議也可使用時(shí)間戳消息來(lái)分離連續(xù)的消息。
SW模式提供了有效的方法來(lái)通過(guò)XTI接口傳送軟件調(diào)試信息。SW模式通常定義大約256個(gè)可在跟蹤設(shè)備112中被分開(kāi)處理的不同的信道。對(duì)于信道的示例性使用是對(duì)每個(gè)軟件過(guò)程或任務(wù)分配不同的信道,因此關(guān)于正被調(diào)試的任務(wù)的調(diào)試信息可被容易地提取。此外,在發(fā)送SW消息時(shí)不需要在軟件中禁用中斷,因?yàn)樾诺绖?chuàng)建了固有線程系統(tǒng)(natural threadingsystem)用于所述消息,因此即使其他任務(wù)中斷了發(fā)送過(guò)程,也保持該消息內(nèi)容。SW模式通常不支持?jǐn)?shù)據(jù)丟失,因此其通常不能生成OVRF消息。 當(dāng)FIFO緩沖器207充滿時(shí),STM 102將中斷跟蹤總線(因而中斷與其連接 的主控)。
HW模式提供了靈活的方法用以通過(guò)XTI接口傳送不同類型的數(shù)據(jù),而 STM 102不必理解數(shù)據(jù)的重要性或內(nèi)容。通常鼎消息被使用特定的輔助模 塊來(lái)生成,例如其能夠?yàn)橄到y(tǒng)提供I/O跟蹤和程序計(jì)數(shù)器跟蹤功能。在HW 模式中,在主控不能通過(guò)STM 102發(fā)送其全部數(shù)據(jù)的情況下,主控支持溢 出是可能的。主控可使用OVRF消息用信號(hào)通知外部跟蹤設(shè)備數(shù)據(jù)的丟失, 所述消息告知外部跟蹤設(shè)備丟失了該溢出消息和來(lái)自同 一主控的在前消息 之間的一些數(shù)據(jù)。
如上所述,STM 102在FIFO緩沖器207中存儲(chǔ)消息,并且如果總線接 口時(shí)鐘與輸出接口時(shí)鐘不一致則還可被用于交叉(cross)時(shí)鐘域邊界,如 圖2所示??梢酝ㄟ^(guò)許多已知技術(shù)來(lái)完成FIFO緩沖器207的實(shí)現(xiàn),這取決 于期望的優(yōu)化級(jí)別。例如,實(shí)現(xiàn)可以使用一個(gè)FIFO槽(slot)來(lái)存儲(chǔ)一個(gè) 消息,而另一實(shí)現(xiàn)可以每個(gè)槽存儲(chǔ)一個(gè)總線接入。不同的實(shí)現(xiàn)也可使用不 同的壓縮方法來(lái)在緩沖器中存儲(chǔ)數(shù)據(jù),以增加FIFO的存儲(chǔ)效率。
FIFO讀邏輯205每次在緩沖器中讀取一個(gè)消息,并將它們發(fā)送到輸出 控制206,隨后輸出控制206傳送它們到外部跟蹤設(shè)備112。如果需要,輸 出控制通常^皮從FIFO讀邏輯205分別分割,使得能夠以其他傳輸方法代替 該輸出控制邏輯。例如,另一實(shí)現(xiàn)可使用與串行ATA類似的信令來(lái)輸出跟 蹤數(shù)據(jù)。
輸出控制邏輯負(fù)責(zé)驅(qū)動(dòng)輸出。輸出的相對(duì)時(shí)序顯示在圖3和5中。STM 102的輸出^f吏用雙倍數(shù)據(jù)速率(DDR)信令,這意^^木著新的數(shù)據(jù)被存儲(chǔ)在時(shí) 鐘的兩個(gè)邊緣上的數(shù)據(jù)輸出中。這樣,從XTI的有效比特率輸出是8*1> (時(shí) 鐘)。例如,用100MHz的時(shí)鐘,XTI吞吐量可達(dá)到800兆比特/秒(Mbit/s)。 如果合適的接收器也適用于外部跟蹤設(shè)備,則可用另外的傳輸來(lái)替代輸出 邏輯。外部跟蹤i殳備112等待XTI半字節(jié)(nibble)流中的暫停(靜默)。
如果檢測(cè)到足夠長(zhǎng)的暫停,則確保了下一半字節(jié)屬于消息報(bào)頭,也就是說(shuō),它是新消息的第一個(gè)半字節(jié)。
時(shí)鐘控制子塊通過(guò)在不需要時(shí)關(guān)閉時(shí)鐘來(lái)控制STM 102中的電源管理。 STM 102還輸出空閑信號(hào)到ASIC最高級(jí)別,其通知STM 102準(zhǔn)備好被關(guān)閉 電源,也就是說(shuō),F(xiàn)IFO緩沖器空了并且所有的狀態(tài)機(jī)都處于空閑狀態(tài)。
XTI系統(tǒng)100允許通過(guò)實(shí)現(xiàn)外部跟蹤模塊112進(jìn)行的擴(kuò)展,該外部跟 蹤模塊提供跟蹤數(shù)據(jù)到STM 102。該外部跟蹤模塊112創(chuàng)建跟蹤總線103 上的寫(xiě)接入,并且STM 102為外部跟蹤設(shè)備112對(duì)其進(jìn)行捕獲和封裝。
如果通過(guò)跟蹤設(shè)備發(fā)送的單個(gè)數(shù)據(jù)項(xiàng)在STM 102所支持的最大數(shù)據(jù)大 小范圍內(nèi),則由于僅需要單個(gè)寫(xiě)接入因此跟蹤操作是簡(jiǎn)單的。在這種情況 下,跟蹤模塊應(yīng)該使用時(shí)間戳地址以便將數(shù)據(jù)寫(xiě)到FIFO緩沖器207。然而, 如果跟蹤數(shù)據(jù)不在XTI字范圍內(nèi),那么跟蹤模塊通常將使用稍微更加復(fù)雜 的信令系統(tǒng)以便使得實(shí)現(xiàn)再同步成為可能,即使丟失了數(shù)據(jù)流中的一些數(shù) 據(jù)。除了單個(gè)數(shù)據(jù)塊的恰好最后的寫(xiě)之外,其他所有的都應(yīng)該在XTI中使 用非時(shí)間戳地址,并且該最后的寫(xiě)則應(yīng)該是關(guān)于時(shí)間戳地址。
搮作中,消息中的時(shí)間戳告訴外部跟蹤設(shè)備112當(dāng)消息被排隊(duì)時(shí)FIFO 緩沖器207中有多少消息。該信息使得外部跟蹤設(shè)備112可以基于消息到 達(dá)的時(shí)間以及消息被傳送之前FIFO緩沖器207中的數(shù)據(jù)量,計(jì)算消息被排 隊(duì)的時(shí)間。例如,假設(shè)外部跟蹤設(shè)備在時(shí)間ps收到D8TS消息,并且 時(shí)間戳值是3,這表明在消息被排隊(duì)時(shí)FIFO緩沖器207中有3個(gè)消息。如 果PTI輸出時(shí)鐘是10MHz ( 4位,雙倍數(shù)據(jù)速率),并且在前的3個(gè)消息是 MASTER、 C8和D32。在該場(chǎng)景中,通過(guò)注意到這占用15個(gè)時(shí)鐘邊緣或7. 5 個(gè)時(shí)鐘周期來(lái)輸出所述在前的3個(gè)消息,可以計(jì)算消息被排隊(duì)的時(shí)間。顯 然7. 5個(gè)時(shí)鐘周期轉(zhuǎn)換為7. 5*100ns,或者750 ns,因而消息在123jns-750 ns = 122. 25 ps時(shí)被排隊(duì)。然而,可能需要用來(lái)自外部跟蹤設(shè)備112 的延時(shí)和傳輸延時(shí)(比如管線等)來(lái)對(duì)該結(jié)果進(jìn)行補(bǔ)償,以獲得完整準(zhǔn)確 的結(jié)果。然而,對(duì)于計(jì)算時(shí)間差別(differential)來(lái)i兌,該方法的準(zhǔn)確 性通常AA夠的。
因此,就規(guī)模來(lái)說(shuō),時(shí)間戳中的誤差是FIFO中的第一消息之前的消息的一半長(zhǎng)度。時(shí)間戳通常表示FIFO緩沖器207中的消息的數(shù)量;該時(shí)間戳 通常不考慮在FIFO緩沖器207之后遇到的任何延時(shí)。如果這些額外的延時(shí) 在長(zhǎng)度上不一致,那么時(shí)間戳通常不會(huì)充分地確保對(duì)時(shí)間的準(zhǔn)確估計(jì)。發(fā) 明人預(yù)期時(shí)間戳在每個(gè)應(yīng)用中^皮有效地^f吏用,通常在STM FIFO和外部pin 接口之間不放置緩沖器。然而,在普通使用中,由于通常感興趣的是消息
流的開(kāi)始和結(jié)束時(shí)間(其被本發(fā)明的方法覆蓋),因此不需要所有消息的 準(zhǔn)確時(shí)間。
圖4示出本發(fā)明示例性方法的流程圖。該示例性方法開(kāi)始于步驟400 并繼續(xù)到步驟401,在那里生成時(shí)間戳消息。時(shí)間戳消息通常包括指示在 被討論的(與時(shí)間戳關(guān)聯(lián)的消息)消息被排隊(duì)時(shí)STM FIFO緩沖器中的消息 數(shù)目或數(shù)量的信息。該時(shí)間戳消息在STM 102中被生成,并隨后被傳送到 外部跟蹤設(shè)備112,如步驟402示例的以及圖1所示。 一旦在外部跟蹤設(shè) 備112中收到該時(shí)間戳消息,外部跟蹤設(shè)備112可以使用該時(shí)間戳信息來(lái) 計(jì)算與時(shí)間戳關(guān)聯(lián)的消息被排隊(duì)的時(shí)間??梢杂膳c時(shí)間戳關(guān)聯(lián)的消息到達(dá) FIFO的時(shí)間以及消息被傳送前FIFO中的數(shù)據(jù)量來(lái)確定對(duì)與時(shí)間戳關(guān)聯(lián)的 消息被排隊(duì)的時(shí)間的計(jì)算。 一旦在步驟403計(jì)算出消息排隊(duì)時(shí)間,該方法 繼續(xù)到步驟404,在那里該方法結(jié)束。
在本發(fā)明的另一實(shí)施例中,消息排隊(duì)時(shí)間的計(jì)算可以在ASIC上完成。 例如,時(shí)間戳信息可以由ASIC 100上的組件來(lái)處理,而不是將時(shí)間戳消息 信息發(fā)送到外部跟蹤設(shè)備。能夠?qū)嵤?conduct)該處理的機(jī)載組件的實(shí)例 可以是STM 102。類似地,在本發(fā)明的另一實(shí)施例中,可以通過(guò)諸如圖1 中示出的PC 114之類的外部處理設(shè)備來(lái)實(shí)施對(duì)消息排隊(duì)時(shí)間的計(jì)算。在本 發(fā)明的該實(shí)施例中,可以將時(shí)間戳消息信息,連同指示與時(shí)間戳消息關(guān)聯(lián) 的消息到達(dá)FIFO的時(shí)間的以及在與時(shí)間戳消息關(guān)聯(lián)的消息被傳送之前 FIFO中的信息量的信息一起,傳送到PC 114用以處理和確定消息排隊(duì)時(shí) 間。
本發(fā)明方法的眾多優(yōu)點(diǎn)中的部分優(yōu)點(diǎn)包括與典型的全尺寸時(shí)間戳計(jì)數(shù) 器相比,計(jì)算FIFO緩沖器狀態(tài)的過(guò)程需要更少的ASIC上的硬件。另外,要傳送的比特?cái)?shù)目?jī)H僅等于FIFO緩沖器大小的Log2,并且本發(fā)明的方法 更少地依賴ASIC內(nèi)部使用的實(shí)際時(shí)鐘速率。而且,不需要對(duì)時(shí)間戳計(jì)數(shù)器 的軟件調(diào)整以補(bǔ)償非計(jì)數(shù)周期,例如深度休眠或長(zhǎng)空閑時(shí)間,并且最終復(fù) 雜性通常4皮從ASIC轉(zhuǎn)移到目標(biāo),這樣更經(jīng)濟(jì)的實(shí)現(xiàn)了復(fù)雜性而無(wú)需占用 ASIC開(kāi)銷和空間(landscape)。
在本發(fā)明的另 一實(shí)施例中,可以提供包含在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算 機(jī)程序。當(dāng)計(jì)算機(jī)程序被計(jì)算機(jī)處理器執(zhí)行時(shí),可以被配置為控制上文討 論的任何方法和設(shè)備。在本發(fā)明的一具體實(shí)施例中,計(jì)算機(jī)程序被配置為 通過(guò)執(zhí)刊 該計(jì)算機(jī)程序的處理器來(lái)控制用于計(jì)算消息排隊(duì)時(shí)間的方法。該 法包括在第一時(shí)間將消息排隊(duì)到緩沖器中,生成表示在所述第一時(shí)間緩 沖器中的消息數(shù)目的時(shí)間戳消息,傳送該消息到另一設(shè)備,傳送該時(shí)間戳 消息到跟蹤設(shè)備,并基于該時(shí)間戳消息、第一時(shí)間以及緩沖器中的數(shù)據(jù)量
計(jì)算消息排隊(duì)時(shí)間。
本領(lǐng)域普通技術(shù)人員將容易理解,可以使用不同順序的步驟,和/或不 同于那些所公開(kāi)的配置中的硬件元件來(lái)實(shí)現(xiàn)上文討論的本發(fā)明。因此,盡 管基于這些優(yōu)選實(shí)施例描述了本發(fā)明,但是對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)許多 修改、變形以及替代性的構(gòu)造是顯而易見(jiàn)的,其仍然處于本發(fā)明的精神和 范圍內(nèi)。因此,應(yīng)該參照所附權(quán)利要求以便確定本發(fā)明的界限和范圍。
權(quán)利要求
1.一種用于計(jì)算消息排隊(duì)時(shí)間的方法,包括在第一時(shí)間將消息排隊(duì)到緩沖器中;生成表示在所述第一時(shí)間所述緩沖器中的消息的數(shù)目的時(shí)間戳消息;傳送所述消息到另一設(shè)備;傳送所述時(shí)間戳消息到跟蹤設(shè)備;以及基于所述時(shí)間戳消息、所述第一時(shí)間和所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
2. 如權(quán)利要求1所述的方法,其中生成所述時(shí)間戳消息包括在跟蹤接 口模塊中生成所述時(shí)間戳消息。
3. 如權(quán)利要求2所述的方法,其中所述跟蹤接口模塊被置于帶有所述緩沖器的專用集成電路上。
4. 如權(quán)利要求3所述的方法,其中排隊(duì)所述消息在所述跟蹤接口模塊中實(shí)施。
5. 如權(quán)利要求l所述的方法,其中所述跟蹤設(shè)備包括被置于專用集成 電路上的跟蹤接口模塊。
6. 如權(quán)利要求l所述的方法,其中所述計(jì)算步驟在下列中的至少一個(gè) 中被實(shí)施被置于專用集成電路上的跟蹤接口模塊、與所述專用集成電路 通信的外部跟蹤設(shè)備、或在所述專用集成電路外部并與所述外部跟蹤設(shè)備 和所述跟蹤接口模塊通信的計(jì)算設(shè)備。
7. 如權(quán)利要求l所述的方法,還包括在專用集成電路上的跟蹤接口設(shè) 備中穿過(guò)與判別器通信的跟蹤總線接收跟蹤信息。
8. —種用于確定消息排隊(duì)時(shí)間的系統(tǒng),包括置于集成電路上的跟蹤接口設(shè)備,其被配置為在第一時(shí)間將消息排隊(duì) 到緩沖器中,并生成表示在所述第一時(shí)間所述緩沖器中的消息的數(shù)目的時(shí) 間戮消息;以及將所述跟蹤接口設(shè)備與外部跟蹤設(shè)備連接的輸出端,其中所述外部跟蹤設(shè)備被配置為基于所述時(shí)間戳消息、所述第 一時(shí)間以及所述緩沖器中的 數(shù)據(jù)量計(jì)算消息排隊(duì)時(shí)間。
9. 如權(quán)利要求8所述的系統(tǒng),其中所述跟蹤接口設(shè)備被置于專用集成 電路上。
10. 如權(quán)利要求9所述的系統(tǒng),其中所述專用集成電路包括至少一個(gè) 判別器,所述判別器被置于所述專用集成電路上并經(jīng)由所述專用集成電路 上的跟蹤總線與所述跟蹤接口設(shè)備通信。
11. 如權(quán)利要求9所述的系統(tǒng),其中所述專用集成電路包括經(jīng)由操作 系統(tǒng)監(jiān)控器與所述跟蹤接口設(shè)備通信的至少 一個(gè)處理器或直接存儲(chǔ)訪問(wèn)控 制器。
12. 如權(quán)利要求9所述的系統(tǒng),其中所述專用集成電路包括經(jīng)由所述 專用集成電路上的硬件接口與所述跟蹤接口設(shè)備通信的至少一個(gè)存儲(chǔ)器或 外圍設(shè)備。
13. —種用于計(jì)算消息排隊(duì)時(shí)間的電路,包括排隊(duì)才莫塊,其凈皮配置為在第 一時(shí)間將消息排隊(duì)到緩沖器中; 時(shí)間戳生成模塊,其被配置為生成表示在所述第 一時(shí)間所述緩沖器中 的消息的數(shù)目的時(shí)間戳消息;通信鏈路,其被配置為允許所述消息到另 一設(shè)備的傳送;跟蹤模塊,其被配置為基于所述時(shí)間戳消息、所述第一時(shí)間以及所述 緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
14. 如權(quán)利要求13所述的電路,其中所述時(shí)間戳生成模塊包括被置于帶有所述緩沖器的專用集成電路上的跟蹤接口設(shè)備。
15. 如權(quán)利要求14所述的電路,其中所述跟蹤模塊被置于所述專用集 成電路外部并與所述排BM莫塊通信。
16. 如權(quán)利要求13所述的電路,還包括經(jīng)由硬件接口與所述排隊(duì)才莫塊通信的至少一個(gè)存儲(chǔ)器或外圍設(shè)備;以及經(jīng)由操作系統(tǒng)監(jiān)控器與所述排隊(duì)才莫塊通信的至少 一個(gè)處理器或直接存儲(chǔ)訪問(wèn)控制器。
17. —種用于計(jì)算消息排隊(duì)時(shí)間的系統(tǒng),包括用于在第 一 時(shí)間將消息排隊(duì)到緩沖器中的排隊(duì)裝置;用于生成表示在所述第一時(shí)間所述緩沖器中的消息的數(shù)目的時(shí)間戳消息的時(shí)間戳生成裝置;被配置為允許所述消息到另 一設(shè)備的傳送的通信裝置;以及基于所述時(shí)間戳消息、所述第一時(shí)間以及所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間的計(jì)算裝置。
18. —種包含在計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被 配置為通過(guò)執(zhí)行所述計(jì)算機(jī)程序的處理器來(lái)控制用于計(jì)算消息排隊(duì)時(shí)間的 方法,包括在第 一時(shí)間將消息排隊(duì)到緩沖器中;生成表示在所述第一時(shí)間所述緩沖器中的消息的數(shù)目的時(shí)間戳消息; 傳送所述消息到另 一設(shè)備; 傳送所述時(shí)間戳消息到跟蹤設(shè)備;以及基于所述時(shí)間戳消息、所述第一時(shí)間以及所述緩沖器中的數(shù)據(jù)量計(jì)算 所述消息排隊(duì)時(shí)間。
全文摘要
一種用于計(jì)算消息排隊(duì)時(shí)間的方法。所述方法包括在第一時(shí)間將消息排隊(duì)到緩沖器中,生成表示在所述第一時(shí)間所述緩沖器中的消息數(shù)目的時(shí)間戳消息,傳送該消息到另一設(shè)備,傳送該時(shí)間戳消息到跟蹤設(shè)備,并基于所述時(shí)間戳消息、所述第一時(shí)間以及所述緩沖器中的數(shù)據(jù)量計(jì)算所述消息排隊(duì)時(shí)間。
文檔編號(hào)G06F13/28GK101529404SQ200780039255
公開(kāi)日2009年9月9日 申請(qǐng)日期2007年9月18日 優(yōu)先權(quán)日2006年9月22日
發(fā)明者O·林德瓦爾, T·云尼拉 申請(qǐng)人:諾基亞公司