本申請(qǐng)涉及SRAM控制器及其數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種支持多核處理器的SRAM控制器及其跟蹤信息處理方法。
背景技術(shù):中高端處理器大多會(huì)在正常執(zhí)行應(yīng)用程序時(shí),輸出經(jīng)過(guò)編碼的跟蹤記錄信息。這些跟蹤記錄信息在被保存后,經(jīng)過(guò)與處理器配套的調(diào)試工具的解碼和處理,可以將處理器內(nèi)部的指令執(zhí)行流程加以真實(shí)還原,從而達(dá)到對(duì)處理器運(yùn)行狀態(tài)進(jìn)行跟蹤記錄的效果。跟蹤記錄信息的保存和提取,對(duì)于應(yīng)用程序的前期調(diào)試開(kāi)發(fā),以及程序在實(shí)際應(yīng)用時(shí)的實(shí)時(shí)監(jiān)控,都有著重要的意義。用于保存處理器發(fā)出的經(jīng)過(guò)編碼的跟蹤記錄信息,既可以采用芯片內(nèi)部集成的存儲(chǔ)模塊,也可以采用芯片外部配套的獨(dú)立存儲(chǔ)設(shè)備。采用芯片外部獨(dú)立的存儲(chǔ)設(shè)備來(lái)存儲(chǔ)跟蹤記錄信息,其優(yōu)點(diǎn)是存儲(chǔ)容量大。其缺點(diǎn)是需要在芯片上增加一套跟蹤記錄信息的輸出接口,且該套接口的傳輸速度需要能夠與處理器的運(yùn)行速度相匹配,以達(dá)到實(shí)時(shí)輸出的目的。采用芯片內(nèi)部集成存儲(chǔ)模塊來(lái)存儲(chǔ)跟蹤記錄信息,其優(yōu)點(diǎn)是存儲(chǔ)速度快,且省去相應(yīng)的芯片輸出接口。其缺點(diǎn)是內(nèi)部集成的存儲(chǔ)模塊容量有限,無(wú)法記錄處理器工作時(shí)的全部跟蹤記錄信息。隨著中高端處理器速度的不斷提高,以及增加芯片管腳而導(dǎo)致的芯片制造及封裝成本的持續(xù)增加,采用芯片外部存儲(chǔ)設(shè)備保存跟蹤記錄信息的方法變得愈加難以實(shí)現(xiàn)。采用芯片內(nèi)部集成的存儲(chǔ)模塊來(lái)暫存處理器跟蹤記錄信息,逐漸成為了高速處理器的首選方案。近年來(lái),在一個(gè)芯片內(nèi)集成多個(gè)處理器,即多核芯片,成為處理器發(fā)展的一個(gè)新的趨勢(shì)。多核處理器芯片使需要保存的處理器跟蹤記錄信息的數(shù)據(jù)量成倍增長(zhǎng),加之芯片內(nèi)部集成的存儲(chǔ)模塊,容量受芯片面積和功耗的實(shí)際限制,無(wú)法做的很大,使得如何用較少的存儲(chǔ)模塊存儲(chǔ)盡量多的跟蹤記錄信息,成為了處理器芯片設(shè)計(jì)的一個(gè)有待解決的問(wèn)題之一。不同家族的處理器,如英國(guó)ARM公司的系列處理器、美國(guó)Intel公司的系列處理器等,其輸出的跟蹤記錄信息各不相同。每家公司都會(huì)針對(duì)其處理器的跟蹤記錄信息進(jìn)行不同程度的壓縮,形成一套用于輸出和存儲(chǔ)的數(shù)據(jù)流。在現(xiàn)有技術(shù)中已經(jīng)公開(kāi)了一些對(duì)跟蹤記錄進(jìn)行壓縮的專利,例如,美國(guó)專利US7058859“TraceReportingMethodandSystem(跟蹤記錄方法和系統(tǒng))”,美國(guó)專利US6918065“MethodforCompressingandDecompressingTraceInformation(壓縮和解壓縮跟蹤信息的方法)”,美國(guó)專利US7209058“TraceReceiverDataCompression(跟蹤接收機(jī)數(shù)據(jù)壓縮)”等。上述的技術(shù)方案均是面向跟蹤記錄數(shù)據(jù)流的壓縮方法,從而達(dá)到使輸出的跟蹤記錄數(shù)據(jù)量盡量降低的效果。以C*Core系列處理器為例,輸出的跟蹤記錄信息數(shù)據(jù)流,每隔固定的處理器時(shí)鐘周期,由固定位寬的一套并行數(shù)據(jù)總線,將一組跟蹤記錄信息數(shù)據(jù)包,送至芯片內(nèi)部集成的SRAM內(nèi)。該數(shù)據(jù)包包含兩種跟蹤記錄信息:有效的跟蹤記錄信息和無(wú)效的跟蹤信息。負(fù)責(zé)存儲(chǔ)跟蹤信息的SRAM,以同樣的固定的處理器時(shí)鐘周期間隔,將每個(gè)收到的數(shù)據(jù)包存入存儲(chǔ)單元中,不論該數(shù)據(jù)包是否包含有效數(shù)據(jù)。在處理器正常工作時(shí),含有有效的跟蹤記錄信息的數(shù)據(jù)包在輸出的全部數(shù)據(jù)包中所占比例是較小的,也就是說(shuō),大量無(wú)效的跟蹤信息被存入SRAM內(nèi)。在多核芯片內(nèi),此現(xiàn)象就更為明顯。由于芯片內(nèi)部集成的SRAM的容量有限,大量無(wú)效的跟蹤信息的保存不僅浪費(fèi)了寶貴的SRAM存儲(chǔ)單元,也增加了SRAM不必要的功耗開(kāi)銷。原有的存儲(chǔ)跟蹤信息的存儲(chǔ)器,存在的另一個(gè)問(wèn)題是:在多處理器存儲(chǔ)模式下,整個(gè)存儲(chǔ)空間將被等分成若干區(qū)域。區(qū)域的個(gè)數(shù)等于芯片內(nèi)需要保存跟蹤信息的處理器的個(gè)數(shù)。每個(gè)處理器的跟蹤記錄信息,只能存放在自己對(duì)應(yīng)的存儲(chǔ)區(qū)域內(nèi)。在芯片正常工作時(shí),會(huì)出現(xiàn)某個(gè)處理器的跟蹤記錄信息已經(jīng)將自己對(duì)應(yīng)的存儲(chǔ)區(qū)域沾滿,導(dǎo)致記錄信息部分丟失,而另一個(gè)處理器對(duì)應(yīng)的存儲(chǔ)區(qū)域還有很大空余的情況發(fā)生。這種多處理器平均分配存儲(chǔ)空間的方法,使得寶貴的跟蹤信息存儲(chǔ)空間的利用率變低。芯片內(nèi)需要保存跟蹤記錄信息的處理器越多,這種情況就越容易發(fā)生,SRAM的利用率就越低。綜上所述,有必要提供一種支持多核處理器的SRAM控制器及其跟蹤信息處理方法以解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明提供了一種支持多核處理器的SRAM控制器及其跟蹤信息處理方法。為了實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例提供的技術(shù)方案如下:一種支持多核處理器的SRAM控制器,所述SRAM分別通過(guò)第一數(shù)據(jù)通路和第二數(shù)據(jù)通路與若干處理器相連,SRAM控制器還通過(guò)第一數(shù)據(jù)通路與SRAM存儲(chǔ)器相連,所述SRAM控制器包括:過(guò)濾模塊,用于檢測(cè)各個(gè)處理器發(fā)出的數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包;混合模塊,所述混合模塊與過(guò)濾模塊相連,用于將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包;SRAM讀寫(xiě)控制模塊,所述SRAM讀寫(xiě)控制模塊與混合模塊相連,用于接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器,還用于從SRAM存儲(chǔ)器中讀出已經(jīng)存儲(chǔ)的有效數(shù)據(jù)包;若干控制寄存器,所述控制寄存器分別與過(guò)濾模塊、混合模塊和SRAM讀寫(xiě)控制模塊相連,控制寄存器包括用于配置需要存儲(chǔ)跟蹤信息處理器的存儲(chǔ)配置單元、以及控制SRAM控制器的啟動(dòng)和暫停的開(kāi)關(guān)控制單元;若干狀態(tài)寄存器,所述狀態(tài)寄存器分別與過(guò)濾模塊、混合模塊和SRAM讀寫(xiě)控制模塊相連,狀態(tài)寄存器包括用于標(biāo)示存儲(chǔ)至SRAM存儲(chǔ)器中有效數(shù)據(jù)包個(gè)數(shù)的數(shù)據(jù)包個(gè)數(shù)狀態(tài)控制單元。作為本發(fā)明的進(jìn)一步改進(jìn),所述控制寄存器還包括信息標(biāo)示單元,用于對(duì)每個(gè)處理器中含有需要保存且有效跟蹤信息的數(shù)據(jù)包進(jìn)行標(biāo)示。作為本發(fā)明的進(jìn)一步改進(jìn),所述混合模塊包括若干數(shù)據(jù)緩沖器以及與一個(gè)與全部數(shù)據(jù)緩沖器相連的數(shù)據(jù)緩沖器讀出控制電路,所述數(shù)據(jù)緩沖器用于存儲(chǔ)有效數(shù)據(jù)包及存儲(chǔ)已緩沖數(shù)據(jù)包個(gè)數(shù)信息,所述數(shù)據(jù)緩沖器讀出控制電路用于向數(shù)據(jù)緩沖器提供控制信息。作為本發(fā)明的進(jìn)一步改進(jìn),所述數(shù)據(jù)緩沖器的個(gè)數(shù)與集成的處理器的個(gè)數(shù)相同。作為本發(fā)明的進(jìn)一步改進(jìn),所述狀態(tài)寄存器還包括用于標(biāo)示各個(gè)數(shù)據(jù)緩沖器是否發(fā)生存滿溢出情況的數(shù)據(jù)緩沖器狀態(tài)控制單元。相應(yīng)地,一種支持多核處理器的SRAM控制器的跟蹤信息處理方法,所述方法包括以下步驟:S1、處理器發(fā)出包含跟蹤信息的數(shù)據(jù)包;S2、跟蹤信息的過(guò)濾,過(guò)濾模塊檢測(cè)各個(gè)數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包,若跟蹤信息需要保存且跟蹤信息有效,則發(fā)送該數(shù)據(jù)包,執(zhí)行步驟S3;S3、跟蹤信息的混合,混合模塊將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包;S4、接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2還包括:對(duì)每個(gè)處理器中含有需要保存且有效跟蹤信息的數(shù)據(jù)包進(jìn)行標(biāo)示。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S3還包括:數(shù)據(jù)緩沖器讀出控制電路向數(shù)據(jù)緩沖器提供控制信息;獲取數(shù)據(jù)緩沖器存儲(chǔ)有效數(shù)據(jù)包及存儲(chǔ)已緩沖數(shù)據(jù)包個(gè)數(shù)信息;選擇已緩沖數(shù)據(jù)包個(gè)數(shù)最多的數(shù)據(jù)緩沖器進(jìn)行讀取。作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S3還包括:標(biāo)示存儲(chǔ)至SRAM存儲(chǔ)器中有效數(shù)據(jù)包的個(gè)數(shù);標(biāo)示各個(gè)數(shù)據(jù)緩沖器是否發(fā)生存滿溢出的情況。本發(fā)明具有以下有益效果:本發(fā)明支持多核處理器的SRAM控制器及其跟蹤信息處理方法通過(guò)對(duì)多處理器發(fā)出的跟蹤信息進(jìn)行過(guò)濾和混合,有效降低了需要存儲(chǔ)的跟蹤信息數(shù)據(jù)量,并提高了SRAM存儲(chǔ)器存儲(chǔ)多處理器跟蹤信息時(shí)的存儲(chǔ)單元利用率,以達(dá)到用有限的芯片內(nèi)SRAM存儲(chǔ)單元存儲(chǔ)盡量多的多處理器跟蹤信息的目的。附圖說(shuō)明為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明一優(yōu)選實(shí)施方式中芯片的模塊示意圖;圖2為本發(fā)明一優(yōu)選實(shí)施方式中SRAM控制器的模塊示意圖;圖3為本發(fā)明一優(yōu)選實(shí)施方式中過(guò)濾模塊的工作流程圖;圖4為本發(fā)明一優(yōu)選實(shí)施方式中混合模塊的模塊示意圖;圖5為本發(fā)明一優(yōu)選實(shí)施方式中SRAM控制器跟蹤信息處理方法的具體流程圖。具體實(shí)施方式為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。本發(fā)明公開(kāi)了一種支持多核處理器的SRAM控制器,SRAM分別通過(guò)第一數(shù)據(jù)通路和第二數(shù)據(jù)通路與若干處理器相連,SRAM控制器還通過(guò)第一數(shù)據(jù)通路與SRAM存儲(chǔ)器相連,SRAM控制器包括:過(guò)濾模塊,用于檢測(cè)各個(gè)處理器發(fā)出的數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包;混合模塊,混合模塊與過(guò)濾模塊相連,用于將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包;SRAM讀寫(xiě)控制模塊,SRAM讀寫(xiě)控制模塊與混合模塊相連,用于接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器,還用于從SRAM存儲(chǔ)器中讀出已經(jīng)存儲(chǔ)的有效數(shù)據(jù)包;若干控制寄存器,控制寄存器分別與過(guò)濾模塊、混合模塊和SRAM讀寫(xiě)控制模塊相連,控制寄存器包括用于配置需要存儲(chǔ)跟蹤信息處理器的存儲(chǔ)配置單元、以及控制SRAM控制器的啟動(dòng)和暫停的開(kāi)關(guān)控制單元;若干狀態(tài)寄存器,狀態(tài)寄存器分別與過(guò)濾模塊、混合模塊和SRAM讀寫(xiě)控制模塊相連,狀態(tài)寄存器包括用于標(biāo)示存儲(chǔ)至SRAM存儲(chǔ)器中有效數(shù)據(jù)包個(gè)數(shù)的數(shù)據(jù)包個(gè)數(shù)狀態(tài)控制單元。相應(yīng)地,本發(fā)明還公開(kāi)了一種支持多核處理器的SRAM控制器的跟蹤信息處理方法,包括以下步驟:S1、處理器發(fā)出包含跟蹤信息的數(shù)據(jù)包;S2、跟蹤信息的過(guò)濾,過(guò)濾模塊檢測(cè)各個(gè)數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包,若跟蹤信息需要保存且跟蹤信息有效,則發(fā)送該數(shù)據(jù)包,執(zhí)行步驟S3;S3、跟蹤信息的混合,混合模塊將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包;S4、接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器。參圖1所示為本發(fā)明一優(yōu)選實(shí)施方式中芯片的模塊示意圖,該芯片具有支持多核處理器的SRAM控制器。芯片內(nèi)部集成若干處理器10(處理器1、處理器2…處理器n)、一個(gè)用于存儲(chǔ)跟蹤信息的SRAM存儲(chǔ)器20、以及一個(gè)對(duì)應(yīng)的SRAM控制器30。每個(gè)處理器10都有一條并行的數(shù)據(jù)通路(第一通路)連接到SRAM控制器,第一通路負(fù)責(zé)傳輸各個(gè)處理器10的跟蹤信息至SRAM控制器30。多個(gè)處理器10共享一條并行的總線數(shù)據(jù)通路(第二通路)連接到SRAM控制器30。SRAM控制器負(fù)責(zé)將第一通路傳輸過(guò)來(lái)的各個(gè)處理器的跟蹤信息進(jìn)行過(guò)濾和混合處理,而后寫(xiě)入SRAM存儲(chǔ)器中。SRAM控制器還要負(fù)責(zé)應(yīng)答第二通路傳輸過(guò)來(lái)的讀數(shù)據(jù)請(qǐng)求,并從SRAM存儲(chǔ)器相應(yīng)地址取得數(shù)據(jù)返回給發(fā)出讀請(qǐng)求的處理器。SRAM控制器還應(yīng)包含若干控制寄存器和狀態(tài)寄存器,各個(gè)處理器能夠通過(guò)第二通路讀寫(xiě)這些控制寄存器和狀態(tài)寄存器。本發(fā)明中SRAM控制器應(yīng)至少包含如下功能電路:多處理器跟蹤信息過(guò)濾模塊、多處理器有效跟蹤信息混合模塊、SRAM讀寫(xiě)控制模塊、控制和狀態(tài)寄存器管理模塊。具體地,參圖2所示,本實(shí)施方式中SRAM控制器30包括:過(guò)濾模塊31、混合模塊32、SRAM讀寫(xiě)控制模塊33、若干控制寄存器34和若干狀態(tài)寄存器35。其中:過(guò)濾模塊31用于檢測(cè)各個(gè)處理器10發(fā)出的數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包。參圖3所示,如果需要存儲(chǔ)某個(gè)處理器的跟蹤信息,且該跟蹤信息包含有效數(shù)據(jù),則該跟蹤信息數(shù)據(jù)包會(huì)被拼接上一個(gè)處理器標(biāo)示信息,并發(fā)送到后續(xù)的混合模塊;如果某個(gè)處理器發(fā)出的跟蹤信息是不需要保存的,或者跟蹤信息不含有效數(shù)據(jù),該數(shù)據(jù)包將被丟棄。判斷某個(gè)處理器的跟蹤信息是否需要保存,是由特定的控制寄存器的特定控制位決定的。如何判斷跟蹤信息是否含有有效信息,將在下文跟蹤信息數(shù)據(jù)包格式說(shuō)明部分作詳細(xì)解釋。本發(fā)明對(duì)原有的芯片內(nèi)部集成的SRAM控制器進(jìn)行的優(yōu)化,增加了對(duì)有效的跟蹤記錄信息的過(guò)濾功能。無(wú)效信息在被SRAM控制器識(shí)別后,將不再被存入SRAM存儲(chǔ)單元,從而節(jié)省了大量的SRAM存儲(chǔ)空間?;旌夏K32,混合模塊與過(guò)濾模塊相連,用于將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包。參圖4所示,本實(shí)施方式中混合模塊32包括若干數(shù)據(jù)緩沖器321以及與一個(gè)與全部數(shù)據(jù)緩沖器相連的數(shù)據(jù)緩沖器讀出控制電路322,數(shù)據(jù)緩沖器321用于存儲(chǔ)有效數(shù)據(jù)包及存儲(chǔ)已緩沖數(shù)據(jù)包個(gè)數(shù)信息,數(shù)據(jù)緩沖器讀出控制電路322用于向數(shù)據(jù)緩沖器提供控制信息。其中,數(shù)據(jù)緩沖器的個(gè)數(shù)與集成的處理器的個(gè)數(shù)相同?;旌夏K負(fù)責(zé)將過(guò)濾模塊輸出的帶有處理器標(biāo)示信息的跟蹤信息數(shù)據(jù)包,按到來(lái)的先后順序,將并行到來(lái)的多路數(shù)據(jù)包轉(zhuǎn)換成單路數(shù)據(jù)包,再發(fā)送給SRAM讀寫(xiě)控制模塊。由于并行到來(lái)的多路有效數(shù)據(jù)包,其數(shù)據(jù)量時(shí)大時(shí)小,而發(fā)送給SRAM讀寫(xiě)控制模塊的單路數(shù)據(jù)包,其帶寬是固定的。以4核系統(tǒng)為例,4路并行的有效數(shù)據(jù)通路接入混合模塊,每路輸入的有效數(shù)據(jù)包,從時(shí)間上可以看做是隨機(jī)的。最壞情況下,4路有效數(shù)據(jù)包同時(shí)輸入到混合模塊,而輸出到SRAM讀寫(xiě)控制模塊的數(shù)據(jù)包,每時(shí)鐘周期至多一個(gè)。為了解決這種局部時(shí)間內(nèi)輸入數(shù)據(jù)流大于輸出數(shù)據(jù)流的問(wèn)題,本模塊應(yīng)包含若干足夠深度的先入先出數(shù)據(jù)緩沖器,數(shù)據(jù)緩沖器的個(gè)數(shù)與處理器的個(gè)數(shù)相同。一個(gè)時(shí)鐘周期內(nèi),每個(gè)數(shù)據(jù)緩沖器可以存入一個(gè)有效數(shù)據(jù)包,同時(shí)可以讀出一個(gè)有效數(shù)據(jù)包。每個(gè)數(shù)據(jù)緩沖器應(yīng)包含一個(gè)當(dāng)前已緩沖的數(shù)據(jù)包個(gè)數(shù)的信息,以供數(shù)據(jù)緩沖器讀出控制電路查詢。數(shù)據(jù)緩沖器讀出控制電路每個(gè)時(shí)鐘周期從所有數(shù)據(jù)緩沖器中,選出一個(gè)數(shù)據(jù)緩沖器,讀出一個(gè)有效數(shù)據(jù)包發(fā)送給SRAM讀寫(xiě)控制模塊。其篩選規(guī)則為,選擇已緩沖數(shù)據(jù)包個(gè)數(shù)最多的數(shù)據(jù)緩沖器進(jìn)行讀取。本發(fā)明不采用分區(qū)存儲(chǔ)方式,而采用混合存儲(chǔ)方式,所有需要保存跟蹤信息的處理器共享全部SRAM存儲(chǔ)單元,按有效跟蹤信息數(shù)據(jù)包發(fā)出的先后順序,依次存入SRAM中,從而實(shí)現(xiàn)SRAM存儲(chǔ)利用率最大化的目的。SRAM讀寫(xiě)控制模塊33,SRAM讀寫(xiě)控制模塊與混合模塊相連,用于接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器,還用于從SRAM存儲(chǔ)器中讀出已經(jīng)存儲(chǔ)的有效數(shù)據(jù)包。控制寄存器34,控制寄存器分別與過(guò)濾模塊31、混合模塊32和SRAM讀寫(xiě)控制模塊33相連??刂萍拇嫫?4具體包括:用于配置需要存儲(chǔ)跟蹤信息處理器的存儲(chǔ)配置單元;控制SRAM控制器的啟動(dòng)和暫停的開(kāi)關(guān)控制單元;對(duì)每個(gè)處理器中含有需要保存且有效跟蹤信息的數(shù)據(jù)包進(jìn)行標(biāo)示的信息標(biāo)示單元。狀態(tài)寄存器35,狀態(tài)寄存器分別與過(guò)濾模塊31、混合模塊32和SRAM讀寫(xiě)控制模塊33相連。狀態(tài)寄存器35具體包括:用于標(biāo)示存儲(chǔ)至SRAM存儲(chǔ)器中有效數(shù)據(jù)包個(gè)數(shù)的數(shù)據(jù)包個(gè)數(shù)狀態(tài)控制單元;用于標(biāo)示各個(gè)數(shù)據(jù)緩沖器是否發(fā)生存滿溢出情況的數(shù)據(jù)緩沖器狀態(tài)控制單元。本實(shí)施方式中的SRAM控制器能夠同時(shí)接收至多8個(gè)C*Core系列處理器發(fā)出的跟蹤信息,自動(dòng)過(guò)濾無(wú)用數(shù)據(jù),只存儲(chǔ)有用的數(shù)據(jù),并以不分區(qū)的混合存儲(chǔ)方式進(jìn)行存儲(chǔ),達(dá)到存儲(chǔ)空間利用率最大化的目的。不同的處理器家族,其處理器發(fā)出的跟蹤信息數(shù)據(jù)包是不同的。為了提高存儲(chǔ)空間利用率,有些處理器會(huì)對(duì)發(fā)出的跟蹤信息進(jìn)行不同程度的壓縮處理,被保存的跟蹤信息,既可以是經(jīng)過(guò)壓縮的數(shù)據(jù)流,也可以是未經(jīng)過(guò)壓縮的數(shù)據(jù)流,本發(fā)明中采用的是過(guò)濾和混合的處理方式。參圖5所示為本實(shí)施方式中支持多核處理器的SRAM控制器的跟蹤信息處理方法的具體流程圖,包括以下步驟:S1、處理器發(fā)出包含跟蹤信息的數(shù)據(jù)包;S2、跟蹤信息的過(guò)濾,過(guò)濾模塊檢測(cè)各個(gè)數(shù)據(jù)包中跟蹤信息是否需要保存以及跟蹤信息是否有效,若跟蹤信息無(wú)需保存或跟蹤信息無(wú)效,則丟棄該數(shù)據(jù)包,若跟蹤信息需要保存且跟蹤信息有效,則發(fā)送該數(shù)據(jù)包,執(zhí)行步驟S3。本步驟中還包括對(duì)每個(gè)處理器中含有需要保存且有效跟蹤信息的數(shù)據(jù)包進(jìn)行標(biāo)示;S3、跟蹤信息的混合,混合模塊將過(guò)濾模塊輸出的數(shù)據(jù)包按并行到來(lái)的先后順序?qū)⒍嗦返臄?shù)據(jù)包進(jìn)行混合,轉(zhuǎn)換成單路的有效數(shù)據(jù)包,并發(fā)送該有效數(shù)據(jù)包;S4、接收混合模塊中的有效數(shù)據(jù)包,并將混合后的有效數(shù)據(jù)包寫(xiě)入SRAM存儲(chǔ)器。其中,步驟S3還包括:數(shù)據(jù)緩沖器讀出控制電路向數(shù)據(jù)緩沖器提供控制信息;獲取數(shù)據(jù)緩沖器存儲(chǔ)有效數(shù)據(jù)包及存儲(chǔ)已緩沖數(shù)據(jù)包個(gè)數(shù)信息;選擇已緩沖數(shù)據(jù)包個(gè)數(shù)最多的數(shù)據(jù)緩沖器進(jìn)行讀取。本實(shí)施方式中所指的處理器跟蹤信息數(shù)據(jù)包,特指C*Core公司的系列處理器每時(shí)鐘周期所發(fā)出的并行跟蹤信息數(shù)據(jù)。所謂有效數(shù)據(jù)包,特指非0的跟蹤信息數(shù)據(jù)包。當(dāng)然在其他實(shí)施方式中也可以為其他跟蹤信息數(shù)據(jù),有效數(shù)據(jù)包也可以根據(jù)數(shù)據(jù)的不同進(jìn)行不同的設(shè)置。由上述技術(shù)方案可以看出,本發(fā)明支持多核處理器的SRAM控制器及其跟蹤信息處理方法通過(guò)對(duì)多處理器發(fā)出的跟蹤信息進(jìn)行過(guò)濾和混合,有效降低了需要存儲(chǔ)的跟蹤信息數(shù)據(jù)量,并提高了SRAM存儲(chǔ)器存儲(chǔ)多處理器跟蹤信息時(shí)的存儲(chǔ)單元利用率,以達(dá)到用有限的芯片內(nèi)SRAM存儲(chǔ)單元存儲(chǔ)盡量多的多處理器跟蹤信息的目的。以上所描述的裝置實(shí)施方式僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,應(yīng)當(dāng)理解,雖然本說(shuō)明書(shū)按照實(shí)施方式加以描述,但并非每個(gè)實(shí)施方式僅包含一個(gè)獨(dú)立的技術(shù)方案,說(shuō)明書(shū)的這種敘述方式僅僅是為清楚起見(jiàn),本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說(shuō)明書(shū)作為一個(gè)整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。