一種防止總線死鎖的裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及總線控制技術(shù)領(lǐng)域,尤其涉及一種防止總線死鎖的裝置及方法。
【背景技術(shù)】
[0002]電子設備普遍存在于社會生產(chǎn)、生活的各個領(lǐng)域,極大地提高了社會的生產(chǎn)力和生活的水平。隨著科技的進步,電子設備的芯片設計規(guī)模日益增大,芯片設計、芯片中連接各個設備的總線設計、以及總線和處理器或總線和外設之間的交互也越來越復雜。這里,夕卜設是指和總線連接的功能單元。
[0003]一般,電子設備的處理器通過總線和外設交互時,由處理器發(fā)出操作指令,外設對操作指令進行響應操作。在這個操作過程中,處理器和外設通過總線連接。當外設對處理器的完成響應操作時,會向處理器發(fā)出反饋信號,反饋信號屬于總線信號的一部分。處理器向外設發(fā)出操作指令,操作指令通過總線向外設發(fā)出有效信號,但響應操作和有效信號在不同的總線類型中表現(xiàn)方式不一樣,有的是一組信號或一個信號,有的是數(shù)據(jù)包等;這樣,就可能導致處理器和外設之間的數(shù)據(jù)傳遞出現(xiàn)異常,因此,需要針對不同類型的信號進行總線設計。
[0004]目前,處理器和外設之間的數(shù)據(jù)傳遞出現(xiàn)異常主要包括兩個方面:一方面,當總線設計異常時,處理器發(fā)出的操作指令無法正確到達外設,進而導致外設沒有進行響應操作;另一方面,外設接收到了處理器發(fā)出的操作指令,但由于外設的異常導致外設沒有產(chǎn)生對應操作指令的響應操作,或響應操作在總線中傳遞時出現(xiàn)異常,則會導致處理器處于等待狀態(tài),進而出現(xiàn)總線死鎖現(xiàn)象,直接導致處理器無法繼續(xù)執(zhí)行后續(xù)指令。通常,通過斷電或重新復位才能使處理器或外設正常工作,但斷電或重新復位可能會導致系統(tǒng)故障?,F(xiàn)有解決總線死鎖的解決方法是增加檢測電路,或增加協(xié)處理器進行總線異常的處理,但該方法無法從根本上解決總線死鎖問題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例期望提供一種防止總線死鎖的裝置及方法,至少能解決現(xiàn)有總線死鎖的技術(shù)問題。
[0006]本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:
[0007]本發(fā)明實施例提供了一種防止總線死鎖的裝置,所述裝置包括:
[0008]外設延時單元,用于監(jiān)測總線和外設之間的總線狀態(tài),得到第一總線狀態(tài)信號發(fā)送給狀態(tài)監(jiān)控單元,并根據(jù)收到的復位控制指令對總線和外設之間的第一握手信號進行復位操作;
[0009]處理器延時單元,用于監(jiān)測總線和處理器之間的總線狀態(tài),得到第二總線狀態(tài)信號發(fā)送給狀態(tài)監(jiān)控單元,并根據(jù)收到的復位控制指令對總線和處理器之間的第二握手信號進行復位操作;
[0010]狀態(tài)監(jiān)控單元,用于對所述第一總線狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第一計時時間,當所述第一計時時間超過第一設定時間時,向所述外設延時單元發(fā)送第一復位控制指令;所述第一復位控制指令用于使所述外設延時單元對所述第一握手信號進行復位操作;和/或?qū)λ龅诙偩€狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第二計時時間,當所述第二計時時間超過第二設定時間時,向所述處理器延時單元發(fā)送第二復位控制指令;所述第二復位控制指令用于使所述處理器延時單元對所述第二握手信號進行復位操作。
[0011]上述方案中,所述裝置包括:
[0012]總線配置單元,用于向所述外設延時單元發(fā)送第一配置信號,所述第一配置信號用于使能所述外設延時單元對所述第一握手信號的復位操作;和/或向所述處理器延時單元發(fā)送第二配置信號;所述第二配置信號用于使能所述處理器延時單元對所述第二握手信號的復位操作。
[0013]上述方案中,所述外設延時單元包括:
[0014]第一總線狀態(tài)監(jiān)控模塊,用于監(jiān)測總線和外設之間的第一總線狀態(tài)信號,并將所述第一總線狀態(tài)信號發(fā)送給所述狀態(tài)監(jiān)控單元;
[0015]第一復位模塊,用于根據(jù)所述狀態(tài)監(jiān)控單元發(fā)來的所述第一復位控制指令對總線和外設之間的所述第一握手信號進行延時,并對所述第一握手信號進行復位操作。
[0016]上述方案中,所述處理器延時單元包括:
[0017]第二總線狀態(tài)監(jiān)控模塊,用于監(jiān)控總線和處理器之間的第二總線狀態(tài)信號,并將所述第二總線狀態(tài)信號發(fā)送給所述狀態(tài)監(jiān)控單元;
[0018]第二復位模塊,用于根據(jù)所述狀態(tài)監(jiān)控單元發(fā)來的所述第二復位控制指令對總線和處理器之間的所述第二握手信號進行延時,并對所述第二握手信號進行復位操作。
[0019]上述方案中,所述狀態(tài)監(jiān)控單元包括:
[0020]看門狗模塊,用于對所述外設延時單元監(jiān)測到的第一總線狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第一計時時間;和/或?qū)μ幚砥餮訒r單元監(jiān)測到的第二總線狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第二計時時間;
[0021]指令發(fā)送模塊,用于在第一計時時間超過第一設定時間時和/或第二計時時間超過第二設定時間時,向所述外設延時單元發(fā)送第一復位控制指令;和/或向所述處理器延時單元發(fā)送第二復位控制指令;所述第一設定時間和第二設定時間小于總線死鎖時間。
[0022]上述方案中,所述狀態(tài)監(jiān)控單元還包括:
[0023]中斷處理模塊,用于接收所述指令發(fā)送模塊發(fā)來的第三復位控制指令,根據(jù)所述第三復位控制指令禁止所述處理器對總線進行指令操作;并在經(jīng)過第三設定時間后允許所述處理器對總線進行指令操作。
[0024]本發(fā)明實施例還提供了一種防止芯片總線死鎖的方法,所述方法包括:
[0025]監(jiān)測總線和外設之間的總線狀態(tài),得到第一總線狀態(tài)信號;
[0026]監(jiān)測總線和處理器之間的總線狀態(tài),得到第二總線狀態(tài)信號;
[0027]對所述第一總線狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第一計時時間;當所述第一計時時間超過第一設定時間時,發(fā)送第一復位控制指令;和/或?qū)λ龅诙偩€狀態(tài)信號內(nèi)的數(shù)據(jù)信號進行計時,得到第二計時時間;當所述第二計時時間超過第二設定時間時,發(fā)送第二復位控制指令;
[0028]根據(jù)所述第一復位控制指令對所述第一握手信號進行復位操作;和/或根據(jù)所述第二復位控制指令對所述第二握手信號進行復位操作。
[0029]上述方案中,所述方法還包括:
[0030]設置第一配置信號和/或第二配置信號,所述第一配置信號用于使能對所述第一握手信號的復位操作;所述第二配置信號用于使能對所述第二握手信號的復位操作。
[0031 ] 上述方案中,所述方法還包括:
[0032]對所述第一握手信號進行復位操作之前,對總線和外設之間的第一握手信號延時;和/或
[0033]對所述第二握手信號進行復位操作之前,對總線和處理器之間的第二握手信號延時。
[0034]上述方案中,所述方法還包括:
[0035]根據(jù)所述復位控制指令禁止對總線進行指令操作,并在經(jīng)過第三設定時間后允許對總線進行指令操作。
[0036]本發(fā)明實施例所提供的防止總線死鎖的裝置及方法,外設延時單元和處理器延時單元分別對總線狀態(tài)進行監(jiān)測,得到第一總線狀態(tài)信號和第二總線狀態(tài)信號;對所述第一總線狀態(tài)信號和第二總線狀態(tài)信號進行計時,當所述第一總線狀態(tài)信號和第二總線狀態(tài)信號內(nèi)的數(shù)據(jù)信號的計時時間超過第一設定時間時,向所述外設延時單元和/或處理器延時單元發(fā)送復位控制指令,使得所述外設延時單元和/或處理器延時單元對所述第一握手信號和/或第二握手信號進行復位。本發(fā)明實施例設置有第一設定時間,作為死鎖發(fā)生前的時限監(jiān)控,能夠在總線發(fā)生死鎖現(xiàn)象前,通過外設延時單元和/或處理器延時單元對所述第一握手信號和/或第二握手信號進行復位,這樣,就能夠使處理器和外設重新進行數(shù)據(jù)傳遞,防止總線死鎖。
【附圖說明】
[0037]圖1為本發(fā)明實施例1防止總線死鎖的裝置的組成結(jié)構(gòu)示意圖;
[0038]圖2為本發(fā)明實施例1防止總線死鎖的裝置增加總線配置單元后的組成結(jié)構(gòu)示意圖;
[0039]圖3為本發(fā)明實施例2防止芯片總線死鎖的方法的實現(xiàn)流程示意圖;
[0040]圖4為本發(fā)明實施例3的具體裝置的組成結(jié)構(gòu)圖。
【具體實施方式】
[0041]以下結(jié)合說明書附圖及具體實施例對本發(fā)明的技術(shù)方案做進一步的詳細闡述。
[0042]實施例1
[0043]為了解決總線死鎖的技術(shù)問題,本實施例提供了一種防止總線死鎖的裝置,應用于通過總線分別與處理器和外設進行數(shù)據(jù)交互的系