本公開(kāi)整體涉及信息處理系統(tǒng)領(lǐng)域,并且具體地涉及數(shù)據(jù)傳輸開(kāi)銷(xiāo)的減少。
背景技術(shù):
1、信息處理系統(tǒng)包括用于各種用戶應(yīng)用的多個(gè)處理引擎、處理器或處理內(nèi)核。信息處理系統(tǒng)可包括中央處理單元(cpu)、圖形處理單元(gpu)、數(shù)字信號(hào)處理器(dsp)、圖像信號(hào)處理器(isp)、神經(jīng)處理單元(npu)等,以及輸入/輸出接口、存儲(chǔ)器單元和相關(guān)聯(lián)的互連數(shù)據(jù)總線的層次結(jié)構(gòu)。在某些情況下,可在信息處理系統(tǒng)上實(shí)現(xiàn)跟蹤硬件以用于診斷目的。跟蹤硬件可跟蹤程序流程(即,確定用于軟件程序執(zhí)行的指令序列)。跟蹤硬件可能需要大量的數(shù)據(jù)傳輸開(kāi)銷(xiāo),從而導(dǎo)致需要高速存儲(chǔ)介質(zhì)和高速數(shù)據(jù)輸送。
技術(shù)實(shí)現(xiàn)思路
1、為了對(duì)本公開(kāi)的一個(gè)或多個(gè)方面有一個(gè)基本的理解,下面給出了這些方面的概括。該概述不是對(duì)本公開(kāi)的所有預(yù)期特征的廣泛綜述,并且既不旨在標(biāo)識(shí)本公開(kāi)的所有方面的關(guān)鍵或重要元素,也不旨在描繪本公開(kāi)的任何或所有方面的范圍。其唯一目的是以簡(jiǎn)化形式給出本公開(kāi)的一個(gè)或多個(gè)方面的一些概念,以此作為后面給出的更詳細(xì)描述的前序。
2、在一個(gè)方面,本公開(kāi)提供了數(shù)據(jù)傳輸開(kāi)銷(xiāo)的減少。因此,一種包括跟蹤硬件的裝置,該跟蹤硬件被配置為:a)提供多個(gè)執(zhí)行指令的記錄,其中該多個(gè)執(zhí)行指令中的一個(gè)執(zhí)行指令包括間接分支地址,以及b)基于該多個(gè)執(zhí)行指令來(lái)生成多個(gè)分組;和解碼器,該解碼器耦合到該跟蹤硬件,其中該解碼器包括第一計(jì)數(shù)器,該第一計(jì)數(shù)器被配置為基于該多個(gè)執(zhí)行指令來(lái)遞增或遞減計(jì)數(shù)器值,并且該解碼器被配置為:a)接收該多個(gè)分組,b)推斷與函數(shù)調(diào)用返回相關(guān)聯(lián)的該間接分支地址,以及c)恢復(fù)該多個(gè)執(zhí)行指令。
3、在一個(gè)示例中,該解碼器被配置為在該計(jì)數(shù)器值為零時(shí)接收顯式分支地址。在一個(gè)示例中,該多個(gè)分組是多個(gè)壓縮分組。在一個(gè)示例中,該多個(gè)分組是多個(gè)未壓縮分組。
4、在一個(gè)示例中,該裝置還包括耦合到該跟蹤硬件的處理器內(nèi)核,該處理器內(nèi)核被配置為提供該多個(gè)執(zhí)行指令。在一個(gè)示例中,該裝置還包括耦合到該跟蹤硬件的儲(chǔ)存庫(kù),該儲(chǔ)存庫(kù)被配置為存儲(chǔ)該多個(gè)分組并且將該多個(gè)分組提供給該解碼器。在一個(gè)示例中,該裝置還包括第二計(jì)數(shù)器,該第二計(jì)數(shù)器被配置為在觀察到函數(shù)調(diào)用時(shí)遞增,并且被配置為在觀察到函數(shù)調(diào)用返回時(shí)遞減。
5、在一個(gè)示例中,該函數(shù)調(diào)用是該多個(gè)執(zhí)行指令中的一個(gè)執(zhí)行指令。在一個(gè)示例中,該函數(shù)調(diào)用返回是該多個(gè)執(zhí)行指令中的一個(gè)執(zhí)行指令。在一個(gè)示例中,該第二計(jì)數(shù)器是該跟蹤硬件的組件。
6、本公開(kāi)的另一方面提供了一種方法,該方法包括:針對(duì)執(zhí)行的函數(shù)調(diào)用遞增函數(shù)調(diào)用計(jì)數(shù)器;針對(duì)執(zhí)行的函數(shù)調(diào)用返回遞減該函數(shù)調(diào)用計(jì)數(shù)器;以及基于函數(shù)調(diào)用計(jì)數(shù)器值并且當(dāng)接收的執(zhí)行原子的累積計(jì)數(shù)指示已執(zhí)行函數(shù)調(diào)用返回時(shí),推斷間接分支地址。在一個(gè)示例中,推斷該間接分支地址是通過(guò)跟蹤該函數(shù)調(diào)用計(jì)數(shù)器的增量和減量來(lái)執(zhí)行的。
7、在一個(gè)示例中,該方法還包括在該函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最大計(jì)數(shù)器值處過(guò)飽和。在一個(gè)示例中,執(zhí)行的后續(xù)函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。在一個(gè)示例中,該方法還包括通過(guò)使用接收的執(zhí)行原子的該累積計(jì)數(shù)來(lái)確定過(guò)飽和。
8、在一個(gè)示例中,該執(zhí)行的函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。在一個(gè)示例中,該執(zhí)行的函數(shù)調(diào)用是由存儲(chǔ)器地址位置來(lái)索引的。在一個(gè)示例中,該存儲(chǔ)器地址位置是該間接分支地址。在一個(gè)示例中,該間接分支地址是在解碼器不能直接訪問(wèn)的處理器寄存器中指定的。
9、在一個(gè)示例中,該方法還包括在該函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最大計(jì)數(shù)器值處過(guò)飽和。在一個(gè)示例中,執(zhí)行的后續(xù)函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。在一個(gè)示例中,該方法還包括通過(guò)使用接收的執(zhí)行原子的該累積計(jì)數(shù)來(lái)確定過(guò)飽和。在一個(gè)示例中,該方法還包括在該函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最小計(jì)數(shù)器值處欠飽和。
10、在一個(gè)示例中,該方法還包括在該函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最小計(jì)數(shù)器值處欠飽和。在一個(gè)示例中,執(zhí)行的后續(xù)函數(shù)調(diào)用返回是由執(zhí)行原子的接收來(lái)指示的。在一個(gè)示例中,該方法還包括通過(guò)使用接收的執(zhí)行原子的該累積計(jì)數(shù)來(lái)確定欠飽和。
11、本公開(kāi)的另一方面提供了一種用于減少數(shù)據(jù)傳輸開(kāi)銷(xiāo)的裝置,該裝置包括:用于初始化函數(shù)調(diào)用計(jì)數(shù)器的部件;用于針對(duì)執(zhí)行的函數(shù)調(diào)用遞增該函數(shù)調(diào)用計(jì)數(shù)器的部件;用于針對(duì)執(zhí)行的函數(shù)調(diào)用返回遞減該函數(shù)調(diào)用計(jì)數(shù)器的部件;和用于以下的部件:基于函數(shù)調(diào)用計(jì)數(shù)器值并且當(dāng)接收的執(zhí)行原子的累積計(jì)數(shù)指示已執(zhí)行函數(shù)調(diào)用返回時(shí),推斷間接分支地址。
12、在一個(gè)示例中,該裝置還包括:用于以下的部件:在該函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最大計(jì)數(shù)器值處過(guò)飽和;和用于以下的部件:在該函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最小計(jì)數(shù)器值處欠飽和。
13、本公開(kāi)的另一方面提供了一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行代碼的非暫態(tài)計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可執(zhí)行代碼能夠在設(shè)備上操作,該設(shè)備包括至少一個(gè)處理器和耦合到該至少一個(gè)處理器的至少一個(gè)存儲(chǔ)器,其中該至少一個(gè)處理器被配置為實(shí)現(xiàn)數(shù)據(jù)傳輸開(kāi)銷(xiāo)的減少,該計(jì)算機(jī)可執(zhí)行代碼包括:用于使計(jì)算機(jī)初始化函數(shù)調(diào)用計(jì)數(shù)器的指令;用于使該計(jì)算機(jī)針對(duì)執(zhí)行的函數(shù)調(diào)用遞增該函數(shù)調(diào)用計(jì)數(shù)器的指令;用于使該計(jì)算機(jī)針對(duì)執(zhí)行的函數(shù)調(diào)用返回遞減該函數(shù)調(diào)用計(jì)數(shù)器的指令;用于以下的指令:使該計(jì)算機(jī)基于函數(shù)調(diào)用計(jì)數(shù)器值并且當(dāng)接收的執(zhí)行原子的累積計(jì)數(shù)指示已執(zhí)行函數(shù)調(diào)用返回時(shí),推斷間接分支地址;用于以下的指令:使該計(jì)算機(jī)在該函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最大計(jì)數(shù)器值處過(guò)飽和;和用于以下的指令:使該計(jì)算機(jī)在該函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使該函數(shù)調(diào)用計(jì)數(shù)器在該最小計(jì)數(shù)器值處欠飽和。
14、在閱讀以下詳細(xì)描述時(shí),本公開(kāi)的這些和其他方面將得到更加全面的理解。在結(jié)合附圖研讀了下文對(duì)本發(fā)明的特定示例性具體實(shí)施的描述之后,本公開(kāi)的其他方面、特征和具體實(shí)施對(duì)于本領(lǐng)域普通技術(shù)人員將是明顯的。盡管本發(fā)明的特征在下文可能是關(guān)于某些具體實(shí)施和附圖來(lái)討論的,但本發(fā)明的所有具體實(shí)施可包括本文所討論的有利特征中的一個(gè)或多個(gè)有利特征。換句話講,雖然可以將一個(gè)或多個(gè)具體實(shí)施討論成具有某些有利特征,但是根據(jù)本文所討論的本發(fā)明的各種具體實(shí)施,也可以使用此類(lèi)特征中的一個(gè)或多個(gè)特征。以類(lèi)似的方式,雖然示例性具體實(shí)施可以在下面作為設(shè)備、系統(tǒng)或方法具體實(shí)施來(lái)討論,但是應(yīng)理解,這樣的示例性具體實(shí)施可以在各種設(shè)備、系統(tǒng)和方法中實(shí)現(xiàn)。
1.一種裝置,所述裝置包括:
2.根據(jù)權(quán)利要求1所述的裝置,其中所述解碼器被配置為在所述計(jì)數(shù)器值為零時(shí)接收顯式分支地址。
3.根據(jù)權(quán)利要求1所述的裝置,其中所述多個(gè)分組是多個(gè)壓縮分組。
4.根據(jù)權(quán)利要求1所述的裝置,其中所述多個(gè)分組是多個(gè)未壓縮分組。
5.根據(jù)權(quán)利要求1所述的裝置,所述裝置還包括耦合到所述跟蹤硬件的處理器內(nèi)核,所述處理器內(nèi)核被配置為提供所述多個(gè)執(zhí)行指令。
6.根據(jù)權(quán)利要求5所述的裝置,所述裝置還包括耦合到所述跟蹤硬件的儲(chǔ)存庫(kù),所述儲(chǔ)存庫(kù)被配置為存儲(chǔ)所述多個(gè)分組并且將所述多個(gè)分組提供給所述解碼器。
7.根據(jù)權(quán)利要求6所述的裝置,所述裝置還包括第二計(jì)數(shù)器,所述第二計(jì)數(shù)器被配置為在觀察到函數(shù)調(diào)用時(shí)遞增,并且被配置為在觀察到函數(shù)調(diào)用返回時(shí)遞減。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述函數(shù)調(diào)用是所述多個(gè)執(zhí)行指令中的一個(gè)執(zhí)行指令。
9.根據(jù)權(quán)利要求7所述的裝置,其中所述函數(shù)調(diào)用返回是所述多個(gè)執(zhí)行指令中的一個(gè)執(zhí)行指令。
10.根據(jù)權(quán)利要求7所述的裝置,其中所述第二計(jì)數(shù)器是所述跟蹤硬件的組件。
11.一種方法,所述方法包括:
12.根據(jù)權(quán)利要求11所述的方法,其中推斷所述間接分支地址是通過(guò)跟蹤所述函數(shù)調(diào)用計(jì)數(shù)器的增量和減量來(lái)執(zhí)行的。
13.根據(jù)權(quán)利要求11所述的方法,所述方法還包括在所述函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使所述函數(shù)調(diào)用計(jì)數(shù)器在所述最大計(jì)數(shù)器值處過(guò)飽和。
14.根據(jù)權(quán)利要求13所述的方法,其中執(zhí)行的后續(xù)函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。
15.根據(jù)權(quán)利要求13所述的方法,所述方法還包括通過(guò)使用接收的執(zhí)行原子的所述累積計(jì)數(shù)來(lái)確定過(guò)飽和。
16.根據(jù)權(quán)利要求11所述的方法,其中所述執(zhí)行的函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。
17.根據(jù)權(quán)利要求16所述的方法,其中所述執(zhí)行的函數(shù)調(diào)用是由存儲(chǔ)器地址位置來(lái)索引的。
18.根據(jù)權(quán)利要求17所述的方法,其中所述存儲(chǔ)器地址位置是所述間接分支地址。
19.根據(jù)權(quán)利要求18所述的方法,其中所述間接分支地址是在解碼器不能直接訪問(wèn)的處理器寄存器中指定的。
20.根據(jù)權(quán)利要求19所述的方法,所述方法還包括在所述函數(shù)調(diào)用計(jì)數(shù)器包含最大計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用的情況下,使所述函數(shù)調(diào)用計(jì)數(shù)器在所述最大計(jì)數(shù)器值處過(guò)飽和。
21.根據(jù)權(quán)利要求20所述的方法,其中執(zhí)行的后續(xù)函數(shù)調(diào)用是由執(zhí)行原子的接收來(lái)指示的。
22.根據(jù)權(quán)利要求19所述的方法,所述方法還包括通過(guò)使用接收的執(zhí)行原子的所述累積計(jì)數(shù)來(lái)確定過(guò)飽和。
23.根據(jù)權(quán)利要求19所述的方法,所述方法還包括在所述函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使所述函數(shù)調(diào)用計(jì)數(shù)器在所述最小計(jì)數(shù)器值處欠飽和。
24.根據(jù)權(quán)利要求11所述的方法,所述方法還包括在所述函數(shù)調(diào)用計(jì)數(shù)器包含最小計(jì)數(shù)器值并且執(zhí)行了后續(xù)函數(shù)調(diào)用返回的情況下,使所述函數(shù)調(diào)用計(jì)數(shù)器在所述最小計(jì)數(shù)器值處欠飽和。
25.根據(jù)權(quán)利要求24所述的方法,其中執(zhí)行的后續(xù)函數(shù)調(diào)用返回是由執(zhí)行原子的接收來(lái)指示的。
26.根據(jù)權(quán)利要求25所述的方法,所述方法還包括通過(guò)使用接收的執(zhí)行原子的所述累積計(jì)數(shù)來(lái)確定欠飽和。
27.一種用于減少數(shù)據(jù)傳輸開(kāi)銷(xiāo)的裝置,所述裝置包括:
28.?根據(jù)權(quán)利要求27所述的裝置,所述裝置還包括:
29.一種存儲(chǔ)計(jì)算機(jī)可執(zhí)行代碼的非暫態(tài)計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行代碼能夠在設(shè)備上操作,所述設(shè)備包括至少一個(gè)處理器和耦合到所述至少一個(gè)處理器的至少一個(gè)存儲(chǔ)器,其中所述至少一個(gè)處理器被配置為實(shí)現(xiàn)數(shù)據(jù)傳輸開(kāi)銷(xiāo)的減少,所述計(jì)算機(jī)可執(zhí)行代碼包括:
30.?根據(jù)權(quán)利要求29所述的非暫態(tài)計(jì)算機(jī)可讀介質(zhì),所述非暫態(tài)計(jì)算機(jī)可讀介質(zhì)還包括: