本發(fā)明涉及片上系統(tǒng)(System On Chip,SOC)技術(shù)領(lǐng)域,尤其涉及一種片上系統(tǒng)SOC的監(jiān)控方法及裝置。
背景技術(shù):
隨著微電子技術(shù)的不斷發(fā)展,芯片集成度越來越高,SOC規(guī)模也越來越大,SOC內(nèi)的互聯(lián)結(jié)構(gòu)也越來越復(fù)雜。其中,SOC內(nèi)的總線(Bus)是SOC內(nèi)部所有互聯(lián)結(jié)構(gòu)的傳輸樞紐,它連接了SOC內(nèi)的中央處理器(Central Processing Unit,CPU)、數(shù)字信號處理器(Digital Signal Processor,DSP)、直接內(nèi)存訪問(Direct Memory Access,DMA)、各種硬件加速器、各種存儲器以及各種外設(shè)接口,因此總線狀態(tài)的正確與否直接影響到SOC的穩(wěn)定性。
但隨著SOC規(guī)模的日益龐大,其內(nèi)嵌的CPU、DSP及硬件加速器數(shù)目越來越多,SOC內(nèi)部總線互聯(lián)結(jié)構(gòu)越來越復(fù)雜,SOC的軟件系統(tǒng)也越來越復(fù)雜,且內(nèi)嵌的硬件加速器、DMA可以獨立于CPU,并與CPU并行工作,因此在軟件系統(tǒng)或者軟件系統(tǒng)產(chǎn)品開發(fā)初期,協(xié)調(diào)SOC內(nèi)部各種器件正常工作變得越來越困難,從而導(dǎo)致SOC內(nèi)的器件可能會出現(xiàn)總線訪問異常。為了解決該問題,相關(guān)現(xiàn)有技術(shù)的處理方式通常是,在SOC出現(xiàn)總線訪問異常時,對SOC的軟件系統(tǒng)進行復(fù)位,使該軟件系統(tǒng)重新啟動,從而使得SOC恢復(fù)正常。但該種方式并不能定位出具體是SOC內(nèi)哪個器件出現(xiàn)了總線訪問異常,從而不能從根本上解決該問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例期望提供一種片上系統(tǒng)SOC的監(jiān)控方法及裝置, 以簡單、有效地定位出SOC內(nèi)出現(xiàn)了總線訪問異常的器件。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
本發(fā)明實施例公開了一種片上系統(tǒng)SOC的監(jiān)控方法,所述方法包括:
節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得所述被監(jiān)控節(jié)點的總線監(jiān)測信息;
所述節(jié)點監(jiān)控模塊將所述總線監(jiān)測信息、及自身的標識信息作為所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過所述節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給所述監(jiān)控主控模塊。
進一步,所述發(fā)送給所述監(jiān)控主控模塊之后,還包括:
所述監(jiān)控主控模塊將所述總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
進一步,所述節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得所述被監(jiān)控節(jié)點的總線監(jiān)測信息,包括:
每個節(jié)點監(jiān)控模塊接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息;
每個所述節(jié)點監(jiān)控模塊根據(jù)接收到的所述總線訪問相關(guān)信息判斷與其對應(yīng)的所述被監(jiān)控節(jié)點的總線訪問行為是否異常;
每個所述節(jié)點監(jiān)控模塊將所述總線訪問相關(guān)信息,及所述總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的所述被監(jiān)控節(jié)點的總線監(jiān)測信息。
進一步,所述節(jié)點監(jiān)控模塊將所述總線監(jiān)測信息、及自身的標識信息作為所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過所述節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給所述監(jiān)控主控模塊,包括:
各個所述節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的所述總線監(jiān)測信息,及自身的標識信息作為自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果;
每個第一所述節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給下一級第一所述節(jié)點監(jiān)控模塊;
第二所述節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給所述監(jiān)控主控模塊;
其中,所述第一節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為節(jié)點監(jiān)控模塊的節(jié)點監(jiān)控模塊;所述第二節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為監(jiān)控主控模塊的節(jié)點監(jiān)控模塊。
進一步,所述方法還包括:
所述監(jiān)控主控模塊通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測各個所述被監(jiān)控節(jié)點的狀態(tài)。
本發(fā)明實施例還公開了一種片上系統(tǒng)SOC的監(jiān)控裝置,所述裝置包括:
至少一個節(jié)點監(jiān)控模塊,用于監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得所述被監(jiān)控節(jié)點的總線監(jiān)測信息;將所述總線監(jiān)測信息、及自身的標識信息作為所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過所述節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給所述監(jiān)控主控模塊;
監(jiān)控主控模塊,用于接收所述總線監(jiān)測結(jié)果。
進一步,所述監(jiān)控主控模塊,還用于將所述總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
進一步,所述至少一個節(jié)點監(jiān)控模塊,具體用于接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息;根據(jù)接收到的所述總線訪問相關(guān)信息判斷與其對應(yīng)的所述被監(jiān)控節(jié)點的總線訪問行為是否異常;將所述總線訪問相關(guān)信息,及所述總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的所述被監(jiān)控節(jié)點的總線監(jiān)測信息。
進一步,所述至少一個節(jié)點監(jiān)控模塊,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測信息,及自身的標識信息作為自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果;所述各個節(jié)點監(jiān)控模塊分為第一節(jié)點監(jiān)控模塊和第二節(jié)點監(jiān)控模塊;所述第一所述節(jié)點監(jiān)控模塊,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給下一級第一 所述節(jié)點監(jiān)控模塊;所述第二所述節(jié)點監(jiān)控模塊,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給所述監(jiān)控主控模塊;
其中,所述第一節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為節(jié)點監(jiān)控模塊的節(jié)點監(jiān)控模塊;所述第二節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為監(jiān)控主控模塊的節(jié)點監(jiān)控模塊。
進一步,所述監(jiān)控主控模塊,還用于通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測各個所述被監(jiān)控節(jié)點的狀態(tài)。
本發(fā)明實施例還公開了一種片上系統(tǒng)SOC的監(jiān)控裝置,所述裝置包括:監(jiān)控主控模塊和至少一個節(jié)點監(jiān)控模塊;
所述監(jiān)控主控模塊與所述節(jié)點監(jiān)控模塊串聯(lián)連接,所述節(jié)點監(jiān)控模塊的第一總線接口與SOC內(nèi)被監(jiān)控節(jié)點的總線接口連接,所述節(jié)點監(jiān)控模塊的第二總線接口與SOC內(nèi)的總線連接;在包括多個所述節(jié)點監(jiān)控模塊時,所述節(jié)點監(jiān)控模塊與所述監(jiān)控主控模塊串聯(lián)連接具體為:多個所述節(jié)點監(jiān)控模塊相互串聯(lián)連接,形成節(jié)點監(jiān)控模塊串聯(lián)電路,所述節(jié)點監(jiān)控模塊串聯(lián)電路與所述監(jiān)控主控模塊串聯(lián)連接。
進一步,所述監(jiān)控主控模塊的總線接口與所述SOC內(nèi)的總線連接。
進一步,所述監(jiān)控主控模塊與SOC外部設(shè)備連接。
本發(fā)明實施例提供的一種片上系統(tǒng)SOC的監(jiān)控方法及裝置,節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得被監(jiān)控節(jié)點的總線監(jiān)測信息;節(jié)點監(jiān)控模塊將總線監(jiān)測信息、及自身的標識信息作為被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊。如此,能簡單、有效地定位出SOC內(nèi)出現(xiàn)了總線訪問異常的器件,有助于從根本上解決SOC的總線訪問異常問題。
附圖說明
圖1為本發(fā)明實施例提供的一種片上系統(tǒng)SOC的監(jiān)控方法的流程示意圖;
圖2為本發(fā)明實施例提供的一種片上系統(tǒng)SOC的監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖3A為本發(fā)明實施例提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖3B為本發(fā)明提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置具體實施例的結(jié)構(gòu)示意圖;
圖4為本發(fā)明提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置具體實施例中節(jié)點監(jiān)控模塊201的結(jié)構(gòu)示意圖;
圖5為本發(fā)明提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置具體實施例中監(jiān)控主控模塊202的結(jié)構(gòu)示意圖;
圖6為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例一的流程示意圖;
圖7為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例二的流程示意圖;
圖8為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例三的流程示意圖。
具體實施方式
在本發(fā)明實施例中,節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得被監(jiān)控節(jié)點的總線監(jiān)測信息;節(jié)點監(jiān)控模塊將總線監(jiān)測信息、及自身的標識信息作為被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊。
下面結(jié)合附圖和具體實施例,對本發(fā)明進一步詳細說明。
圖1為本發(fā)明實施例提供的一種片上系統(tǒng)SOC的監(jiān)控方法的流程示意圖,如圖1所示,該方法包括:
步驟101:節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得被監(jiān)控節(jié)點的總線監(jiān)測信息。
具體地,本步驟可以包括,每個節(jié)點監(jiān)控模塊接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息;每個節(jié)點監(jiān)控模塊根據(jù)接收到的總線訪問相關(guān)信息判斷與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問行為是否異常;每個節(jié)點監(jiān)控模塊將總線訪問相關(guān)信息、及總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的被監(jiān)控節(jié)點的總線監(jiān)測信息。
其中,所述SOC內(nèi)的被監(jiān)控節(jié)點可以包括,SOC內(nèi)的CPU、DSP、DMA、各種硬件加速器、各種存儲器以及各種外設(shè)接口等器件。
具體地,所述每個節(jié)點監(jiān)控模塊接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息,可以包括,每個節(jié)點監(jiān)控模塊接收,自身監(jiān)測的SOC內(nèi)的被監(jiān)控節(jié)點通過總線向SOC內(nèi)的其它節(jié)點發(fā)送的相關(guān)信息;或者,每個節(jié)點監(jiān)控模塊接收,SOC內(nèi)的其它節(jié)點通過總線向自身監(jiān)測的SOC內(nèi)的被監(jiān)控節(jié)點發(fā)送的相關(guān)信息。需說明的是,所述相關(guān)信息可以包括讀/寫命令及地址信息或相應(yīng)的數(shù)據(jù)包。具體地,所述每個節(jié)點監(jiān)控模塊接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息的實現(xiàn)方式可以為,節(jié)點監(jiān)控模塊的一端與被監(jiān)控節(jié)點的總線接口連接,節(jié)點監(jiān)控模塊的另一端與SOC內(nèi)的總線連接。
具體地,所述每個節(jié)點監(jiān)控模塊根據(jù)接收到的總線訪問相關(guān)信息判斷與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問行為是否異常,可以包括,在節(jié)點監(jiān)控模塊接收到自身監(jiān)測的被監(jiān)控節(jié)點的讀/寫命令及地址信息或相應(yīng)的數(shù)據(jù)包時,節(jié)點監(jiān)控模塊啟動其內(nèi)部的定時器開始計時,并將握手信號信息設(shè)置為空;在定時器計時到預(yù)定時間并停止計時時,節(jié)點監(jiān)控模塊判斷是否有接收到自身監(jiān)測的被監(jiān)控節(jié)點的握手信號;在接收到該握手信號時,節(jié)點監(jiān)控模塊判定自身監(jiān)測的被監(jiān)控節(jié)點的本次總線訪問行為正常,將該被監(jiān)控節(jié)點的握手信號信息設(shè)置為正常;在未接收到握手信號時,節(jié)點監(jiān)控模塊判定自身監(jiān)測的被監(jiān)控節(jié)點的本次總線訪問行為異常,將該被監(jiān)控節(jié)點的握手信號信息設(shè)置為異常;節(jié)點監(jiān)控模 塊將握手信號信息作為該被監(jiān)控節(jié)點的本次總線訪問行為是否異常的判斷結(jié)果。需說明的是,所述預(yù)定時間可以根據(jù)總線協(xié)議中規(guī)定的握手信號的發(fā)出時間間隔來設(shè)置。
具體地,所述每個節(jié)點監(jiān)控模塊將總線訪問相關(guān)信息,及總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的被監(jiān)控節(jié)點的總線監(jiān)測信息,可以為,每個節(jié)點監(jiān)控模塊將接收到的自身監(jiān)測的被監(jiān)控節(jié)點的總線訪問相關(guān)信息,及自身監(jiān)測的被監(jiān)控節(jié)點的本次總線訪問行為是異常的判斷結(jié)果,作為自身監(jiān)測的被監(jiān)控節(jié)點的本次總線監(jiān)測信息,存放在節(jié)點監(jiān)控模塊內(nèi)的寄存器中。
步驟102:節(jié)點監(jiān)控模塊將總線監(jiān)測信息、及自身的標識信息作為被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊。
具體地,本步驟可以包括,各個節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的總線監(jiān)測信息,及自身的標識信息作為自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果;每個第一節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的總線監(jiān)測結(jié)果,發(fā)送給下一級第一節(jié)點監(jiān)控模塊;第二節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的總線監(jiān)測結(jié)果,及從上一級第一節(jié)點監(jiān)控模塊接收到的總線監(jiān)測結(jié)果,發(fā)送給監(jiān)控主控模塊;其中,所述第一節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為節(jié)點監(jiān)控模塊的節(jié)點監(jiān)控模塊;所述第二節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為監(jiān)控主控模塊的節(jié)點監(jiān)控模塊。如此,監(jiān)控主控模塊根據(jù)接收到的SOC內(nèi)各個被監(jiān)測節(jié)點的總線監(jiān)測結(jié)果,即可獲知SOC內(nèi)的哪個被監(jiān)測節(jié)點即被監(jiān)測器件,出現(xiàn)了總線訪問異常問題,實現(xiàn)能簡單、有效地定位出SOC內(nèi)出現(xiàn)了總線訪問異常的器件,有助于從根本上解決SOC的總線訪問異常問題。
具體地,所述節(jié)點監(jiān)控模塊自身的標識信息可以唯一地標識每個節(jié)點監(jiān)控模塊,即為每個節(jié)點監(jiān)控模塊設(shè)置一個身份標識(Identity identification,ID),每個節(jié)點監(jiān)控模塊的ID均不相同。
具體地,所述每個第一所述節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的總線監(jiān)測結(jié)果,及從上一級第一節(jié)點監(jiān)控模塊接收到的總線監(jiān)測結(jié)果,發(fā)送給下一級第一節(jié)點監(jiān)控模塊,可以包括,每個第一節(jié)點監(jiān)控模塊將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給與其串聯(lián)的下一級第一節(jié)點監(jiān)控模塊;每個第一節(jié)點監(jiān)控模塊接收與其串聯(lián)的上一級第一節(jié)點監(jiān)控模塊發(fā)送的總線監(jiān)測結(jié)果;第一節(jié)點監(jiān)控模塊解析接收到的該總線監(jiān)測結(jié)果;第一節(jié)點監(jiān)控模塊判斷解析后的該總線監(jiān)測結(jié)果中是否包括自身的標識信息;在不包括自身的標識信息時,第一節(jié)點監(jiān)控模塊將接收到的該總線監(jiān)測結(jié)果發(fā)送給與其串聯(lián)的下一級第一節(jié)點監(jiān)控模塊,否則不發(fā)送該總線監(jiān)測結(jié)果。
具體地,所述第二所述節(jié)點監(jiān)控模塊將自身監(jiān)測獲得的總線監(jiān)測結(jié)果,及從上一級第一節(jié)點監(jiān)控模塊接收到的總線監(jiān)測結(jié)果,發(fā)送給監(jiān)控主控模塊,可以包括,第二節(jié)點監(jiān)控模塊將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給與其串聯(lián)的監(jiān)控主控模塊;第二節(jié)點監(jiān)控模塊接收與其串聯(lián)的上一級第一節(jié)點監(jiān)控模塊發(fā)送的總線監(jiān)測結(jié)果;第二節(jié)點監(jiān)控模塊解析接收到的該總線監(jiān)測結(jié)果;第二節(jié)點監(jiān)控模塊判斷解析后的該總線監(jiān)測結(jié)果中是否包括自身的標識信息;在不包括自身的標識信息時,第二節(jié)點監(jiān)控模塊將接收到的該總線監(jiān)測結(jié)果發(fā)送給與其串聯(lián)的監(jiān)控主控模塊,否則不發(fā)送該總線監(jiān)測結(jié)果。
需說明的是,所述串行通信鏈路的實現(xiàn)方式可以為,監(jiān)控主控模塊、每個第一節(jié)點監(jiān)控模塊及第二節(jié)點監(jiān)控模塊均具有發(fā)送(Tx)接口和接收(Rx)接口,每個Rx接口均與上一級的Tx接口串接,從而通過監(jiān)控主控模塊、每個第一節(jié)點監(jiān)控模塊及第二節(jié)點監(jiān)控模塊,建立了環(huán)形串行通信鏈路。
具體地,所述節(jié)點監(jiān)控模塊將總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊的實現(xiàn)方式可以為方式一或方式二。
方式一,所述節(jié)點監(jiān)控模塊將總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊,可以為,每個節(jié)點監(jiān)控模 塊根據(jù)監(jiān)控主控模塊的獲取指令,決策是否通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
具體地,所述每個節(jié)點監(jiān)控模塊根據(jù)監(jiān)控主控模塊的獲取指令,決策是否通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊,可以包括,節(jié)點監(jiān)控模塊接收監(jiān)控主控模塊的獲取指令;在接收到獲取指令時,節(jié)點監(jiān)控模塊解析獲取指令;節(jié)點監(jiān)控模塊判斷解析后的獲取指令中是否包括自身的標識信息;在不包括自身的標識信息時,節(jié)點監(jiān)控模塊將該獲取指令發(fā)送給與其串聯(lián)的下一級節(jié)點監(jiān)控模塊;在包括自身的標識信息時,節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
方式二,所述節(jié)點監(jiān)控模塊將總線監(jiān)測結(jié)果,通過節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊,可以為,每個節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,自動將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
具體地,所述每個節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,自動將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊,可以包括,節(jié)點監(jiān)控模塊檢測自身是否正在接收上一級節(jié)點監(jiān)控模塊發(fā)送的信息,節(jié)點監(jiān)控模塊檢測自身是否正在向下一級節(jié)點監(jiān)控模塊發(fā)送信息;在未接收上一級節(jié)點監(jiān)控模塊發(fā)送的信息,且未向下一級節(jié)點監(jiān)控模塊發(fā)送信息時,節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
在正在接收上一級節(jié)點監(jiān)控模塊發(fā)送的信息,且未向下一級節(jié)點監(jiān)控模塊發(fā)送信息時,節(jié)點監(jiān)控模塊繼續(xù)接收上一級節(jié)點監(jiān)控模塊發(fā)送的信息,并緩存該信息;在該信息緩存完成時,節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主 控模塊建立的串行通信鏈路,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊;在總線監(jiān)測結(jié)果發(fā)送完成時,節(jié)點監(jiān)控模塊發(fā)送已緩存的上一級節(jié)點監(jiān)控模塊發(fā)送的信息。
在未接收上一級節(jié)點監(jiān)控模塊發(fā)送的信息,且正在向下一級節(jié)點監(jiān)控模塊發(fā)送信息時,節(jié)點監(jiān)控模塊繼續(xù)發(fā)送該信息;在該信息發(fā)送完成時,節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
需說明的是,為了向SOC外部提供SOC的總線監(jiān)測結(jié)果,本發(fā)明實施例的SOC的監(jiān)控方法還可以包括,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊之后,監(jiān)控主控模塊將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。從而使得監(jiān)控主控模塊可以向SOC外部設(shè)備提供SOC的總線監(jiān)測結(jié)果,使得SOC外部可以獲知SOC內(nèi)出現(xiàn)了總線訪問異常的器件,有助于外部根據(jù)SOC的總線監(jiān)測結(jié)果診斷出SOC出現(xiàn)總線訪問異常的原因,從根本上解決SOC的總線訪問異常問題。
具體地,所述監(jiān)控主控模塊將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備的實現(xiàn)方式可以為,方式一或方式二。
方式一,所述監(jiān)控主控模塊將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備的實現(xiàn)方式,可以包括,SOC外部設(shè)備將用戶輸入的獲取指令發(fā)送給監(jiān)控主控模塊;監(jiān)控主控模塊接收SOC外部設(shè)備發(fā)送的獲取指令;監(jiān)控主控模塊將該獲取指令發(fā)送給節(jié)點監(jiān)控模塊;每個節(jié)點監(jiān)控模塊根據(jù)監(jiān)控主控模塊的獲取指令,決策是否通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊;監(jiān)控主控模塊接收總線監(jiān)測結(jié)果;監(jiān)控主控模塊將接收到的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
其中,所述每個節(jié)點監(jiān)控模塊根據(jù)監(jiān)控主控模塊的獲取指令,決策是否通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊步驟的具體實現(xiàn)過程,可以與上述對該步驟的描述相同。
具體地,所述監(jiān)控主控模塊將該獲取指令發(fā)送給節(jié)點監(jiān)控模塊,可以包括,監(jiān)控主控模塊對該獲取指令進行解析,并將解析后的獲取指令的數(shù)據(jù)格式轉(zhuǎn)換為第一預(yù)定數(shù)據(jù)格式;監(jiān)控主控模塊將第一預(yù)定數(shù)據(jù)格式的獲取指令發(fā)送給節(jié)點監(jiān)控模塊。其中,所述第一預(yù)定數(shù)據(jù)格式為節(jié)點監(jiān)控模塊可以識別的數(shù)據(jù)格式。
具體地,所述監(jiān)控主控模塊將接收到的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備,可以包括,監(jiān)控主控模塊對接收到的總線監(jiān)測結(jié)果進行解析,并將解析后的總線監(jiān)測結(jié)果的數(shù)據(jù)格式轉(zhuǎn)化為第二預(yù)定數(shù)據(jù)格式;監(jiān)控主控模塊將第二預(yù)定數(shù)據(jù)格式的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。其中,所述第二預(yù)定數(shù)據(jù)格式為SOC外部設(shè)備可以識別的數(shù)據(jù)格式。
方式二,所述監(jiān)控主控模塊將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備的實現(xiàn)方式,可以包括,SOC外部設(shè)備將用戶輸入的獲取指令發(fā)送給監(jiān)控主控模塊;監(jiān)控主控模塊接收SOC外部設(shè)備發(fā)送的獲取指令;監(jiān)控主控模塊將自身已存儲的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備;其中,所述總線監(jiān)測結(jié)果獲得的過程可以為,每個節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,自動將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
其中,所述每個節(jié)點監(jiān)控模塊通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,自動將自身監(jiān)測的被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊步驟的具體實現(xiàn)過程,可以與上述對該步驟的描述相同。
具體地,所述監(jiān)控主控模塊將自身已存儲的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備,可以包括,監(jiān)控主控模塊對自身已存儲的的總線監(jiān)測結(jié)果進行解析,并將解析后的總線監(jiān)測結(jié)果的數(shù)據(jù)格式轉(zhuǎn)換為第二預(yù)定數(shù)據(jù)格式;監(jiān)控主控模塊將第二預(yù)定數(shù)據(jù)格式的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。其中,所述第二預(yù)定數(shù)據(jù)格式為SOC外部設(shè)備可以識別的數(shù)據(jù)格式。
具體地,所述監(jiān)控主控模塊將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備的實現(xiàn)方式可以為,為監(jiān)控主控模塊設(shè)置低速接口,監(jiān)控主控模塊與SOC外部設(shè)備通過 該低速接口連接,從而使得監(jiān)控主控模塊可以將總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。具體地,所述監(jiān)控主控模塊接收SOC外部設(shè)備發(fā)送的獲取指令過程的實現(xiàn)方式,可以為,監(jiān)控主控模塊實時地查詢低速接口是否有接收到獲取指令;在低速接口接收到獲取指令時,監(jiān)控主控模塊接收該獲取指令。當(dāng)然,還可以通過其它方式實現(xiàn)上述接收SOC外部設(shè)備獲取指令過程,如監(jiān)控主控模塊通過設(shè)置定時器定時地查詢低速接口是否有接收到獲取指令,在低速接口接收到獲取指令時,監(jiān)控主控模塊接收該獲取指令,或低速接口接收到獲取指令時向監(jiān)控主控模塊發(fā)送一個中斷信號,觸發(fā)監(jiān)控主控模塊接收該獲取指令,本發(fā)明實施例不對該過程的實現(xiàn)方式進行具體限定。
其中,所述SOC外部設(shè)備可以為個人計算機(Personal Computer,PC)、移動終端等終端設(shè)。
需說明的是,為了在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,監(jiān)控SOC內(nèi)各個器件的狀態(tài),本發(fā)明實施例的SOC的監(jiān)控方法還可以包括,監(jiān)控主控模塊通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測各個被監(jiān)控節(jié)點的狀態(tài)。從而使得監(jiān)控主控模塊可以在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,還可以監(jiān)控SOC內(nèi)各個器件的狀態(tài)。
具體地,所述監(jiān)控主控模塊通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測各個被監(jiān)控節(jié)點的狀態(tài),可以包括,監(jiān)控主控模塊發(fā)送查詢指令到SOC內(nèi)的總線上,該查詢指令攜帶有原地址信息即監(jiān)控主控模塊的地址信息、目標地址信息即被監(jiān)控節(jié)點的地址信息、及查詢命令;總線路由器接收查詢指令;總線路由器根據(jù)該查詢指令中的目標地址信息,將該查詢指令發(fā)送給相應(yīng)的被監(jiān)控節(jié)點;該被監(jiān)控節(jié)點接收查詢指令,并根據(jù)該查詢指令中的查詢命令讀取出相應(yīng)的信息;該被監(jiān)控節(jié)點將讀取到的信息、原地址信息即自身的地址信息,及目標地址信息即從查詢指令中獲取到的監(jiān)控主控模塊的地址信息,作為查詢結(jié)果發(fā)送到SOC內(nèi)的總線上;總線路由器接收該查詢結(jié)果;總線路由器根據(jù)該查詢結(jié)果中的目標地址信息,將該查詢結(jié)果發(fā)送給監(jiān)控主控模塊。
其中,所述根據(jù)查詢命令讀取出相應(yīng)的信息,可以為,被監(jiān)控節(jié)點根據(jù)查詢命令從其內(nèi)部的寄存器中讀取出相應(yīng)的信息,如DMA根據(jù)工作模式查詢命令從其內(nèi)部的DMA_SxCR(DMA的一個寄存器的名稱)寄存器中,查詢DMA當(dāng)前的工作模式。其中,所述監(jiān)控主控模塊發(fā)送查詢指令到SOC內(nèi)的總線上,可以包括,SOC外部設(shè)備將用戶輸入的查詢指令發(fā)送給監(jiān)控主控模塊;監(jiān)控主控模塊接收SOC外部設(shè)備發(fā)送的查詢指令;監(jiān)控主控模塊將接收到的查詢指令發(fā)送到SOC內(nèi)的總線上。從而使得監(jiān)控主控模塊在可以向SOC外部設(shè)備提供SOC的總線監(jiān)測信息的基礎(chǔ)上,還可以向SOC外部設(shè)備提供SOC內(nèi)各個器件的狀態(tài)信息。
具體地,所述監(jiān)控主控模塊與SOC內(nèi)的總線建立通信鏈路的實現(xiàn)方式可以為,監(jiān)控主控模塊內(nèi)也設(shè)置有總線,監(jiān)控主控模塊的總線接口與SOC內(nèi)的總線連接。需說明的是,為了防止SOC內(nèi)總線的訪問異常問題被引入到監(jiān)控主控模塊的總線,可以為監(jiān)控主控模塊內(nèi)設(shè)置總線隔離模塊,總線隔離模塊一端與SOC內(nèi)的總線連接,另一端與監(jiān)控主控模塊的總線連接;總線隔離模塊可以防止SOC內(nèi)總線的訪問異常問題被引入監(jiān)控主控模塊的總線。具體地,所述總線隔離模塊防止SOC內(nèi)總線的訪問異常問題,被引入監(jiān)控主控模塊的總線過程的實現(xiàn)方式可以為,在監(jiān)控主控模塊與SOC內(nèi)被監(jiān)測節(jié)點通過總線通信,總線隔離模塊監(jiān)測到未接收到SOC內(nèi)被監(jiān)測節(jié)點向監(jiān)控主控模塊發(fā)送的握手信號時,總線隔離模塊產(chǎn)生一個握手信號并發(fā)送到監(jiān)控主控模塊的總線上。
需說明的是,為了在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,控制SOC內(nèi)的器件,本發(fā)明實施例的SOC監(jiān)控方法還可以包括,每個節(jié)點監(jiān)控模塊根據(jù)監(jiān)控主控模塊的控制指令控制與其對應(yīng)的被監(jiān)控節(jié)點。從而使得監(jiān)控主控模塊在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,還可以控制SOC內(nèi)的器件。
具體地,所述每個節(jié)點監(jiān)控模塊根據(jù)監(jiān)控主控模塊的控制指令控制與其對應(yīng)的被監(jiān)控節(jié)點,可以包括,節(jié)點監(jiān)控模塊接收監(jiān)控主控模塊發(fā)送的控制指令; 在接收到控制指令時,節(jié)點監(jiān)控模塊解析控制指令;節(jié)點監(jiān)控模塊判斷解析后的控制指令中是否包括自身的標識信息;在不包括自身的標識信息時,節(jié)點監(jiān)控模塊將該控制指令發(fā)送給與其串聯(lián)的下一級節(jié)點監(jiān)控模塊;在包括自身的標識信息時,節(jié)點監(jiān)控模塊根據(jù)控制指令中的控制命令,對自身監(jiān)測的被監(jiān)控節(jié)點執(zhí)行相應(yīng)的操作。
其中,所述控制指令可以復(fù)位、開啟或關(guān)閉等命令;相應(yīng)的操作可以為復(fù)位、開啟或關(guān)閉等操作。所述監(jiān)控主控模塊發(fā)送的控制指令可以為,監(jiān)控主控模根據(jù)與其連接的SOC外部設(shè)備的指示發(fā)送的,還可以為監(jiān)控主控模塊主動發(fā)送的。
需說明的是,所述SOC內(nèi)的總線可以為現(xiàn)有技術(shù)中常用的總線,如可以為AMBA(Advanced Microcontroller Bus Architecture,高級微處理器總線結(jié)構(gòu))系列總線,或可以為AXI(Advanced eXtensible Interface,高級可擴展接口)總線,這些總線的傳輸協(xié)議通常規(guī)定主設(shè)備(Master)與從屬設(shè)備(Slave)之間通過握手信號來進行數(shù)據(jù)傳輸。
為了實現(xiàn)上述方法,本發(fā)明公開了一種片上系統(tǒng)SOC的監(jiān)控裝置。
圖2為本發(fā)明實施例提供的一種片上系統(tǒng)SOC的監(jiān)控裝置的結(jié)構(gòu)示意圖,如圖2所示,所述SOC的監(jiān)控裝置包括:
至少一個節(jié)點監(jiān)控模塊201,用于監(jiān)測SOC內(nèi)被監(jiān)控節(jié)點的總線訪問行為,獲得所述被監(jiān)控節(jié)點的總線監(jiān)測信息;將所述總線監(jiān)測信息、及自身的標識信息作為所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果,通過所述節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給所述監(jiān)控主控模塊;
監(jiān)控主控模塊202,用于接收所述總線監(jiān)測結(jié)果。
進一步,所述監(jiān)控主控模塊202,還用于將所述總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
進一步,所述至少一個節(jié)點監(jiān)控模塊201,具體用于接收SOC內(nèi)與其對應(yīng)的被監(jiān)控節(jié)點的總線訪問相關(guān)信息;根據(jù)接收到的所述總線訪問相關(guān)信息判斷 與其對應(yīng)的所述被監(jiān)控節(jié)點的總線訪問行為是否異常;將所述總線訪問相關(guān)信息,及所述總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的所述被監(jiān)控節(jié)點的總線監(jiān)測信息。
進一步,所述至少一個節(jié)點監(jiān)控模塊201,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測信息,及自身的標識信息作為自身監(jiān)測的所述被監(jiān)控節(jié)點的總線監(jiān)測結(jié)果;所述各個節(jié)點監(jiān)控模塊分為第一節(jié)點監(jiān)控模塊和第二節(jié)點監(jiān)控模塊;所述第一所述節(jié)點監(jiān)控模塊,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給下一級第一所述節(jié)點監(jiān)控模塊;所述第二所述節(jié)點監(jiān)控模塊,具體用于將自身監(jiān)測獲得的所述總線監(jiān)測結(jié)果,及從上一級第一所述節(jié)點監(jiān)控模塊接收到的所述總線監(jiān)測結(jié)果,發(fā)送給所述監(jiān)控主控模塊;
其中,所述第一節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為節(jié)點監(jiān)控模塊的節(jié)點監(jiān)控模塊;所述第二節(jié)點監(jiān)控模塊是指與其串聯(lián)的下一級節(jié)點為監(jiān)控主控模塊的節(jié)點監(jiān)控模塊。
進一步,所述監(jiān)控主控模塊202,還用于通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測各個所述被監(jiān)控節(jié)點的狀態(tài)。
在實際應(yīng)用中,所述節(jié)點監(jiān)控模塊201、監(jiān)控主控模塊202均可由中央處理器、微處理器(Micro Processor Unit,MPU)、數(shù)字信號處理器、或現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)等實現(xiàn)。
為了實現(xiàn)上述方法,本發(fā)明還公開了另一種片上系統(tǒng)SOC的監(jiān)控裝置。
圖3A為本發(fā)明實施例提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置的結(jié)構(gòu)示意圖,如圖3A所示,所述SOC的監(jiān)控裝置包括:
監(jiān)控主控模塊202和至少一個節(jié)點監(jiān)控模塊201;
所述監(jiān)控主控模塊202與所述節(jié)點監(jiān)控模塊201串聯(lián)連接,所述節(jié)點監(jiān)控模塊201的第一總線接口與SOC內(nèi)被監(jiān)控節(jié)點203的總線接口連接,所述節(jié)點監(jiān)控模塊201的第二總線接口與SOC內(nèi)的總線204連接;在包括多個所述節(jié)點 監(jiān)控模塊時,所述節(jié)點監(jiān)控模塊201與所述監(jiān)控主控模塊202串聯(lián)連接具體為:多個所述節(jié)點監(jiān)控模塊201相互串聯(lián)連接,形成節(jié)點監(jiān)控模塊串聯(lián)電路,所述節(jié)點監(jiān)控模塊串聯(lián)電路與所述監(jiān)控主控模塊202串聯(lián)連接。
進一步,所述監(jiān)控主控模塊202的總線接口與所述SOC內(nèi)的總線204連接。
進一步,所述監(jiān)控主控模塊202與SOC外部設(shè)備連接。
圖3B為本發(fā)明提供的另一種片上系統(tǒng)SOC的監(jiān)控裝置具體實施例的結(jié)構(gòu)示意圖,如圖3B所示,SOC的監(jiān)控裝置監(jiān)測SOC內(nèi)的各個器件的總線訪問行為;SOC內(nèi)各個器件包括高速接口301、低速接口一302、存儲器303、DMA 304、加速器N 305、加速器一306、DSP 307及CPU 308,高速接口301、低速接口一302處的虛線,表示高速接口301和低速接口一302為與SOC外部設(shè)備通信的接口;SOC內(nèi)的總線為AMBA總線,SOC的監(jiān)控裝置具體包括:監(jiān)控主控模塊202和多個節(jié)點監(jiān)控模塊201;如圖4所示,節(jié)點監(jiān)控模塊201包括總線監(jiān)控模塊2011和節(jié)點監(jiān)控收發(fā)模塊2012。
總線監(jiān)控模塊2011,用于監(jiān)測與其連接的SOC內(nèi)器件的總線訪問行為,獲得與其連接的SOC內(nèi)器件的總線監(jiān)測信息;將該總線監(jiān)測信息發(fā)送給節(jié)點監(jiān)控收發(fā)模塊2012。
節(jié)點監(jiān)控收發(fā)模塊2012,用于將總線監(jiān)控模塊2011發(fā)送的總線監(jiān)測信息,及節(jié)點監(jiān)控模塊201的標識信息,作為與總線監(jiān)控模塊2011連接的SOC內(nèi)器件的總線監(jiān)測結(jié)果存放在其內(nèi)的寄存器中;通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
監(jiān)控主控模塊,用于接收總線監(jiān)測結(jié)果;根據(jù)與其連接的SOC外部設(shè)備發(fā)送的獲取指令,將總線監(jiān)測結(jié)果發(fā)送至與其連接的SOC外部設(shè)備;根據(jù)SOC外部設(shè)備的查詢指令通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測SOC內(nèi)的各個器件的狀態(tài)。
其中,所述根據(jù)SOC外部設(shè)備的查詢指令通過與SOC內(nèi)的總線建立的通信鏈路,監(jiān)測SOC內(nèi)的各個器件的狀態(tài)包括,將SOC外部設(shè)備發(fā)送的查詢指 令通過SOC內(nèi)的總線發(fā)送至SOC內(nèi)的各個器件;SOC內(nèi)的各個器件根據(jù)查詢指令從自身的寄存器中讀取相應(yīng)信息,并將該查詢信息作為查詢結(jié)果通過SOC內(nèi)的總線發(fā)送給監(jiān)控主控模塊202;監(jiān)控主控模塊202將查詢結(jié)果發(fā)送至SOC外部設(shè)備。
SOC的監(jiān)控裝置與SOC內(nèi)的各個器件及SOC內(nèi)的總線的連接方式為,各個節(jié)點監(jiān)控模塊201一端與SOC內(nèi)的各個器件連接,各個節(jié)點監(jiān)控模塊201另一端與AMBA總線的Crossbar(互聯(lián)交換矩陣)309連接。監(jiān)控主控模塊202與AMBA總線的Crossbar309連接,使得監(jiān)控主控模塊可以靈活地監(jiān)控SOC內(nèi)各個器件的狀態(tài);監(jiān)控主控模塊202處的虛線表示監(jiān)控主控模塊202與SOC外部設(shè)備通信的接口。SOC的監(jiān)控裝置的監(jiān)控主控模塊202和各個節(jié)點監(jiān)控模塊201的連接方式為,監(jiān)控主控模塊202和各個節(jié)點監(jiān)控模塊201均具有發(fā)送Tx接口310和接收Rx接口311,每個Rx接口311均與上一級的Tx接口310串接,從而建立了環(huán)形串行通信鏈路。從而使得SOC的監(jiān)控裝置可以不受節(jié)點監(jiān)控模塊數(shù)目的影響,即在需增加節(jié)點監(jiān)控模塊時,可直接向環(huán)形串行通信鏈路中串接節(jié)點監(jiān)控模塊,在需減少節(jié)點監(jiān)控模塊時,可直接從環(huán)形串行通信鏈路中移除節(jié)點監(jiān)控模塊;同時,在制作SOC的監(jiān)控裝置的電路板時,可以減少該電路板的走線,減少節(jié)點監(jiān)控模塊數(shù)目的變化對制作的影響。
SOC的監(jiān)控裝置與SOC內(nèi)的各個器件及SOC內(nèi)的總線的連接方式具體為,節(jié)點監(jiān)控模塊201的總線監(jiān)控模塊2011一端的第一總線接口與SOC內(nèi)的器件的總線接口連接,總線監(jiān)控模塊2011另一端的第二總線接口與AMBA總線的Crossbar309連接;具體地,總線監(jiān)控模塊2011另一端的第二總線接口的M(Master)接口312與AMBA總線的Crossbar309的S(Slave)接口313連接,總線監(jiān)控模塊2011另一端的第二總線接口的S接口313與AMBA總線的Crossbar309的M接口312連接。SOC的監(jiān)控裝置內(nèi)的監(jiān)控主控模塊202和各個節(jié)點監(jiān)控模塊201的連接方式具體為,節(jié)點監(jiān)控模塊201的節(jié)點監(jiān)控收發(fā)模塊2012的Rx接口311與上一級的Tx接口310串接,節(jié)點監(jiān)控收發(fā)模塊2012 的Tx接口310與下一級的Rx接口311串接。
進一步,如圖5所示,監(jiān)控主控模塊202包括控制器2021、片內(nèi)存儲器2022、總線隔離模塊2023、總控收發(fā)模塊2024、低速接口二2025及總控Crossbar2027。
其中,總控收發(fā)模塊2024,具體用于接收總線監(jiān)測結(jié)果;將總線監(jiān)測結(jié)果通過總控Crossbar2027發(fā)送至片內(nèi)存儲器2022。總控收發(fā)模塊2024在實際應(yīng)用中可以為串口控制器。在總控收發(fā)模塊2024接收到信息時,總控收發(fā)模塊2024可以產(chǎn)生中斷信號發(fā)送至控制器2021。
其中,片內(nèi)存儲器2022,具體用于存儲總線監(jiān)測結(jié)果。在實際應(yīng)用中還存儲控制器2021的程序,該程序使得控制器2021可以執(zhí)行控制器2021所需執(zhí)行的操作;也可以用于存儲其它數(shù)據(jù);其內(nèi)存大小可以根據(jù)控制器2021程序的數(shù)據(jù)量大小及節(jié)點監(jiān)控模塊201的數(shù)目進行調(diào)整。其中,控制器2021的程序可以通過低速接口二2025下載至片內(nèi)存儲器2022,或者通過SOC的高速接口301、低速接口一302下載至片內(nèi)存儲器2022。
其中,低速接口二2025,具體用于接收SOC外部設(shè)備發(fā)送的獲取指令,將獲取指令通過總控Crossbar2027發(fā)送至控制器2021,將接收到的總線監(jiān)測結(jié)果發(fā)送至SOC外部設(shè)備;接收SOC外部設(shè)備發(fā)送的查詢指令,通過總控Crossbar2027發(fā)送至控制器2021,接收查詢結(jié)果,將接收到的查詢結(jié)果發(fā)送至SOC外部設(shè)備。在低速接口二2025接收到信息時,低速接口二2025可以產(chǎn)生中斷信號發(fā)送至控制器2021。
其中,控制器2021,具體用于接收獲取指令;從片內(nèi)存儲器2022讀取總線監(jiān)測結(jié)果,將總線監(jiān)測結(jié)果通過總控Crossbar2027發(fā)送至低速接口二2025;接收查詢指令,通過總控Crossbar2027發(fā)送至總線隔離模塊2023,接收查詢結(jié)果,并將查詢結(jié)果通過總控Crossbar2027發(fā)送至低速接口二2025。控制器2021在實際應(yīng)用中控制器2021可以為CPU或DSP等控制器,在對控制器2021性能要求不高的情況下,為了節(jié)省SOC的面積及成本,控制器2021可以采用低能耗的CPU或DSP等控制器。
其中,總線隔離模塊2023,具體用于接收查詢指令,將查詢指令通過AMBA總線的Crossbar309發(fā)送至SOC內(nèi)的各個器件,接收SOC內(nèi)的各個器件的查詢結(jié)果,將查詢結(jié)果通過總控Crossbar2027發(fā)送至控制器2021。
進一步,為了防止SOC的總線的訪問異常問題被引入到監(jiān)控主控模塊202的總線,總線隔離模塊2023,具體還用于在監(jiān)控主控模塊202與SOC內(nèi)器件通過總線通信,總線隔離模塊監(jiān)測到未接收到SOC內(nèi)器件向監(jiān)控主控模塊202發(fā)送的握手信號時,總線隔離模塊產(chǎn)生一個握手信號并發(fā)送到監(jiān)控主控模塊202的總控Crossbar2027上。
進一步,監(jiān)控主控模塊202還可以包括定時器2026;相應(yīng)的,控制器2021,具體可以用于通過設(shè)置定時器定時地查詢低速接口二2052是否有接收到獲取指令,在低速接口接收到獲取指令時,控制器2021接收該獲取指令。在定時器2026計時結(jié)束時,定時器2026可以產(chǎn)生中斷信號發(fā)送至控制器2021。
進一步,總線監(jiān)控模塊2011,具體用于接收與其連接的SOC內(nèi)器件的總線訪問相關(guān)信息;根據(jù)接收到的總線訪問相關(guān)信息判斷與其連接的SOC內(nèi)器件的總線訪問行為是否異常;將總線訪問相關(guān)信息,及總線訪問行為是異常的判斷結(jié)果作為與其連接的SOC內(nèi)器件的總線監(jiān)測信息。
進一步,控制器2021,具體還用于將接收到的獲取指令通過總控Crossbar2027發(fā)送至總控收發(fā)模塊2024。總控收發(fā)模塊2024,具體還用于將接收到的獲取指令通過串行通信鏈路發(fā)送至各個節(jié)點監(jiān)控模塊201。相應(yīng)的,節(jié)點監(jiān)控收發(fā)模塊2012,具體用于接收監(jiān)控主控模塊202發(fā)送的獲取指令;在接收到獲取指令時,解析獲取指令;判斷解析后的獲取指令中是否包括自身的標識信息;在不包括自身的標識信息時,將該獲取指令發(fā)送給與其串聯(lián)的下一級節(jié)點監(jiān)控模塊;在包括自身的標識信息時,通過各個節(jié)點監(jiān)控模塊201與監(jiān)控主控模塊202建立的串行通信鏈路,將與總線監(jiān)控模塊2011連接的SOC內(nèi)器件的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
進一步,節(jié)點監(jiān)控收發(fā)模塊2012,或者具體用于通過各個節(jié)點監(jiān)控模塊201 與監(jiān)控主控模塊202建立的串行通信鏈路,自動將與總線監(jiān)控模塊2011連接的SOC內(nèi)器件的總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
進一步,為了在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,控制SOC內(nèi)的器件,如圖4所示,節(jié)點監(jiān)控模塊201還可以包括與節(jié)點監(jiān)控收發(fā)模塊2012連接的控制模塊2013,控制模塊2013還與總線監(jiān)控模塊2021監(jiān)測的SOC內(nèi)器件相連接??刂颇K2013,具體用于接收控制指令;對與總線監(jiān)控模塊2021監(jiān)測的SOC內(nèi)器件執(zhí)行相應(yīng)的操作。其中,所述控制指令可以復(fù)位、開啟或關(guān)閉等命令;相應(yīng)的操作可以為復(fù)位、開啟或關(guān)閉等操作。具體地,可以包括多個控制模塊2013,不同的控制模塊2013對SOC內(nèi)器件執(zhí)行不同的操作。在實際應(yīng)用中,控制模塊2013可以為CPU或DSP等。
進一步,為了在定位出SOC內(nèi)出現(xiàn)總線訪問異常的器件的基礎(chǔ)上,使得節(jié)點監(jiān)控模塊還可以與加速器器件的其它接口通信,其它接口是指除總線接口以外的接口,如圖4所示,節(jié)點監(jiān)控模塊201還可以包括與節(jié)點監(jiān)控收發(fā)模塊2012連接的加速器接口模塊2014,該加速器接口模塊2014可以與總線監(jiān)控模塊2021監(jiān)測的SOC內(nèi)加速器器件的其它接口相連接。具體地,可以包括多個加速器接口模塊2014,不同的加速器接口模塊2014與SOC內(nèi)加速器器件的不同接口連接。在實際應(yīng)用中,加速器接口模塊2014可以為CPU或DSP等。
進一步,節(jié)點監(jiān)控收發(fā)模塊2012,具體還用于接收監(jiān)控主控模塊202發(fā)送的指令;解析接收到的指令;在判定解析后的指令為控制指令時將該指令發(fā)送給控制模塊2013;在判定解析后的指令為獲取指令時將該指令發(fā)送給總線監(jiān)控模塊2011;在判定解析后的指令為加速器接口通信指令時將該指令發(fā)送給加速器接口2014。其中,總線監(jiān)控模塊2011還用于接收獲取指令,將與其連接的SOC內(nèi)器件的總線監(jiān)測結(jié)果發(fā)送給節(jié)點監(jiān)控收發(fā)模塊2012。其中,控制指令可以為SOC外部設(shè)備發(fā)送給監(jiān)控主控模塊202的。
其中,總線監(jiān)控模塊2011在實際應(yīng)用中可以為具有總線接口的CPU或DSP等,節(jié)點監(jiān)控收發(fā)模塊2012可以為具有Tx、Rx接口的CPU或DSP等。
圖6為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例一的流程示意圖,如圖6所示,具體步驟包括:
步驟601:各個節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)各個器件的總線訪問行為,獲得各個器件的總線監(jiān)測信息,將自身監(jiān)測獲得的總線監(jiān)測信息及自身的ID作為自身監(jiān)測的SOC內(nèi)器件的總線監(jiān)測結(jié)果。
具體地,在實際應(yīng)用中,節(jié)點監(jiān)控模塊可以由CPU或DSP等實現(xiàn)。所述SOC內(nèi)各個器件可以包括,SOC內(nèi)的CPU、DSP、DMA、各種硬件加速器、各種存儲器以及各種外設(shè)接口等器件。
步驟602:監(jiān)控主控模塊判斷自身是否有接收到SOC外部設(shè)備發(fā)送的指令。在接收到指令時,執(zhí)行步驟603,否則,執(zhí)行步驟602。
具體地,在實際應(yīng)用中,監(jiān)控主控模塊可以由CPU或DSP等實現(xiàn)。所述SOC外部設(shè)備可以為個人計算機、移動終端等終端設(shè)。
步驟603:監(jiān)控主控模塊解析接收到的指令,并將解析后的指令以第一預(yù)定數(shù)據(jù)格式,通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給節(jié)點監(jiān)控模塊。
其中,所述第一預(yù)定數(shù)據(jù)格式為節(jié)點監(jiān)控模塊可以識別的數(shù)據(jù)格式。
步驟604:節(jié)點監(jiān)控模塊解析接收到的指令,并判斷解析后的指令中是否包括自身的ID,在不包括自身的ID時,將該指令發(fā)送給與其串聯(lián)的下一級節(jié)點監(jiān)控模塊。
步驟605:在包括自身的ID時,節(jié)點監(jiān)控模塊判斷接收到的指令是否為獲取指令。
步驟606:在是獲取指令時,節(jié)點監(jiān)控模塊將自身監(jiān)測的SOC內(nèi)器件的總線監(jiān)測結(jié)果,通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,發(fā)送給監(jiān)控主控模塊。
步驟607:監(jiān)控主控模塊接收總線監(jiān)測結(jié)果,并將該總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
圖7為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例二的流程示意圖,如圖7所示,具體步驟包括:
步驟701:各個節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)各個器件的總線訪問行為,獲得各個器件的總線監(jiān)測信息,將自身監(jiān)測獲得的總線監(jiān)測信息及自身的ID作為自身監(jiān)測的SOC內(nèi)器件的總線監(jiān)測結(jié)果。
具體地,所述各個節(jié)點監(jiān)控模塊監(jiān)測SOC內(nèi)各個器件的總線訪問行為,獲得各個器件的總線監(jiān)測信息,可以包括,每個節(jié)點監(jiān)控模塊接收SOC內(nèi)與其對應(yīng)的器件的總線訪問相關(guān)信息;每個節(jié)點監(jiān)控模塊根據(jù)接收到的總線訪問相關(guān)信息判斷與其對應(yīng)的器件的總線訪問行為是否異常;每個節(jié)點監(jiān)控模塊將總線訪問相關(guān)信息,及總線訪問行為是異常的判斷結(jié)果作為與其對應(yīng)的器件的總線監(jiān)測信息。
具體地,在實際應(yīng)用中,節(jié)點監(jiān)控模塊可以由CPU或DSP等實現(xiàn)。所述SOC內(nèi)各個器件可以包括,SOC內(nèi)的CPU、DSP、DMA、各種硬件加速器、各種存儲器以及各種外設(shè)接口等器件。
步驟702:每個節(jié)點監(jiān)控模塊自動通過各個節(jié)點監(jiān)控模塊與監(jiān)控主控模塊建立的串行通信鏈路,將總線監(jiān)測結(jié)果發(fā)送給監(jiān)控主控模塊。
具體地,在實際應(yīng)用中,監(jiān)控主控模塊可以由CPU或DSP等實現(xiàn)。
步驟703:監(jiān)控主控模塊接收并存儲總線監(jiān)測結(jié)果。
步驟704:監(jiān)控主控模塊判斷其是否有接收到SOC外部設(shè)備發(fā)送的指令。
步驟705:在接收到指令時,監(jiān)控主控模塊判斷接收到的指令是否為獲取指令,在是獲取指令時,監(jiān)控主控模塊將其已存儲的總線監(jiān)測結(jié)果發(fā)送給SOC外部設(shè)備。
圖8為本發(fā)明提供的一種片上系統(tǒng)SOC的監(jiān)控方法具體實施例三的流程示意圖,如圖8所示,具體步驟包括:
步驟801:監(jiān)控主控模塊判斷其是否有接收到SOC外部設(shè)備發(fā)送的指令。
具體地,在實際應(yīng)用中,監(jiān)控主控模塊可以由CPU或DSP等實現(xiàn)。所述 SOC外部設(shè)備可以為個人計算機、移動終端等終端設(shè)。
步驟802:在接收到指令時,監(jiān)控主控模塊判斷接收到的指令是否為查詢指令。
步驟803:在是查詢指令時,監(jiān)控主控模塊通過與SOC內(nèi)的總線建立的通信鏈路,將查詢指令發(fā)送給SOC內(nèi)相應(yīng)的器件。
步驟804:SOC內(nèi)相應(yīng)的器件根據(jù)查詢指令從其寄存器中讀取相應(yīng)的信息,并將該信息作為查詢結(jié)果通過SOC內(nèi)的總線發(fā)送給監(jiān)控主控模塊。
步驟805:監(jiān)控主控模塊接收查詢結(jié)果,并將該查詢結(jié)果發(fā)送給SOC外部設(shè)備。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化,本發(fā)明的保護范圍以權(quán)利要求為準。