接口控制電路、設(shè)備和標(biāo)識切換方法
【專利摘要】本發(fā)明公開了一種接口控制電路、設(shè)備和標(biāo)識切換方法,屬于計算機(jī)【技術(shù)領(lǐng)域】。方法包括:接收處理器發(fā)送的包括預(yù)定地址的讀請求;根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識;當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。
【專利說明】接口控制電路、設(shè)備和標(biāo)識切換方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種接口控制電路、設(shè)備和標(biāo)識切換方法?!颈尘凹夹g(shù)】
[0002]在單處理器設(shè)備中,一個進(jìn)程可以包括兩個或者多個線程,并且這些線程都可以訪問進(jìn)程中的共享資源,但是在共享資源中存在一些資源并不能被兩個或者多個線程同時訪問。類似的,在多處理器設(shè)備如AMP (asymmetric Mult1-Processing,非對稱多處理)設(shè)備中,存在一些共享資源可以被各處理器訪問,但是這些共享資源中的一些資源又不能被兩個或者多個處理器同時訪問。所以這就引入了關(guān)鍵代碼段的概念,關(guān)鍵代碼段是用于對資源進(jìn)行保護(hù)的一段代碼。而為了指示關(guān)鍵代碼段是否已經(jīng)被其他線程或者其他處理器占用,現(xiàn)有方案通常對關(guān)鍵代碼段設(shè)置一個標(biāo)識,該標(biāo)識通常是通過信號量或者自旋鎖的形式來實現(xiàn)。
[0003]當(dāng)一個線程或者一個處理器需要訪問一個關(guān)鍵代碼段保護(hù)的資源時該線程或者該處理器將中斷當(dāng)前正在執(zhí)行的操作而開始申請關(guān)鍵代碼段的標(biāo)識,當(dāng)讀取到RAM(randomaccess memory,隨機(jī)存儲器)存儲器中存儲的標(biāo)識是空閑標(biāo)識時,說明標(biāo)識申請成功,該線程或者該處理器開始訪問關(guān)鍵代碼段;當(dāng)讀取到的標(biāo)識是忙碌標(biāo)識時,說明此時該關(guān)鍵代碼段正在被其他線程或者其他處理器訪問,所以該線程或該處理器將進(jìn)入等待狀態(tài),直到訪問該關(guān)鍵代碼段的其他線程或者其他處理器訪問結(jié)束從而使得關(guān)鍵代碼段處于空閑狀態(tài)時再開始訪問該關(guān)鍵代碼段。其中,當(dāng)該線程或者該處理器讀取到RAM存儲器中存儲的標(biāo)識是空閑標(biāo)識,從而開始訪問關(guān)鍵代碼段之后,為了保證該關(guān)鍵代碼段不再被其他線程或者其他處理器同時訪問,該線程或者該處理器將修改關(guān)鍵代碼段的標(biāo)識為忙碌標(biāo)識,并且將修改后的標(biāo)識寫入到RAM存儲器中,這也就是人們常說的‘讀、改、寫’操作。
[0004]然而,在該線程或者該處理器執(zhí)行讀操作之后,寫操作之前,由于RAM存儲器中的標(biāo)識還未從空閑標(biāo)識修改為忙碌標(biāo)識,其他線程或者其他處理器在這段時間內(nèi)可能也在執(zhí)行‘讀、改、寫’的操作,所以這就可能導(dǎo)致不同線程或者不同處理器連續(xù)兩次申請關(guān)鍵代碼段的標(biāo)識成功,兩次對標(biāo)識進(jìn)行改操作或者寫操作。比如,在AMP設(shè)備中,第一處理器訪問關(guān)鍵代碼段時,第一處理器讀取到的標(biāo)識是空閑標(biāo)識,則第一處理器申請標(biāo)識成功,所以第一處理器將把關(guān)鍵代碼段的標(biāo)識修改為忙碌標(biāo)識,并將修改后的標(biāo)識寫入到RAM存儲器中;而在第一處理器將修改后的標(biāo)識寫入到RAM存儲器之前,第二處理器通過中斷開始申請關(guān)鍵代碼段的標(biāo)識,此時由于RAM存儲器中存儲的標(biāo)識還是第一處理器訪問關(guān)鍵代碼段時第一處理器讀取到的標(biāo)識,所以此時第二處理器讀取到的標(biāo)識仍然是空閑標(biāo)識,也即第二處理器在第一處理器申請關(guān)鍵代碼段的標(biāo)識成功的同時也申請標(biāo)識成功。所以為了避免這種情況,現(xiàn)有方案提出在線程或者處理器執(zhí)行‘讀、改、寫’操作時,在單核設(shè)備中啟動關(guān)中斷,從而保證在一個線程將修改后的標(biāo)識寫入到RAM存儲器之前,其他線程都不能中斷該線程的操作,也即其他線程都處于等待狀態(tài);類似的,在多核如AMP設(shè)備中啟動鎖總線,從而保證在一個處理器將修改后的標(biāo)識寫入到RAM存儲器之前,其他處理器都處于等待狀態(tài)。
[0005]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題:
[0006](I)由于在線程或者處理器執(zhí)行‘讀、改、寫’操作時,同時啟動了關(guān)中斷或者鎖總線,所以這就導(dǎo)致其他線程或者AMP設(shè)備中的其他處理器都處于等待狀態(tài),降低了系統(tǒng)的性能;特別的,在AMP設(shè)備中,當(dāng)處理器需要多次申請關(guān)鍵代碼段的標(biāo)識時,其他處理器將長時間處于等待狀態(tài),從而導(dǎo)致系統(tǒng)性能很低;
[0007](2)在AMP設(shè)備中,由于各處理器是運行獨立的軟件系統(tǒng),所以各處理器對應(yīng)的數(shù)據(jù)存儲區(qū)以及代碼存儲區(qū)都是獨立的,所以為了能讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,系統(tǒng)需要開辟一個各處理器都能訪問的存儲空間。而實際系統(tǒng)中需要關(guān)鍵代碼段的標(biāo)識的都是底層驅(qū)動軟件,而不同軟件系統(tǒng)中的不同底層驅(qū)動軟件卻不能約定共享空間,必須由上層軟件來約定,所以這就導(dǎo)致軟件系統(tǒng)的結(jié)構(gòu)復(fù)雜,開發(fā)測試以及維護(hù)成本大。
【發(fā)明內(nèi)容】
[0008]為了解決現(xiàn)有技術(shù)中線程或者處理器在申請行關(guān)鍵代碼段的標(biāo)識時可能會引起的系統(tǒng)性能低下、以及在AMP設(shè)備中軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題,本發(fā)明實施例提供了一種接口控制電路、設(shè)備和標(biāo)識切換方法。所述技術(shù)方案如下:
[0009]第一方面,提供了一種設(shè)備,所述設(shè)備包括:
[0010]總線、與所述總線相連的接口控制電路、與所述接口控制電路相連的存儲器以及與所述總線相連的至少一個處理器;
[0011]所述存儲器,用于存儲至少一個標(biāo)識,每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問;
[0012]所述接口控制電路,用于根據(jù)所述處理器發(fā)送的包括預(yù)定地址的讀請求查詢所述存儲器中存儲的標(biāo)識;
[0013]所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
[0014]在第一方面的第一種可能的實現(xiàn)方式中,
[0015]所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段;
[0016]所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
[0017]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,
[0018]所述接口控制電路,還用于將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識之后,接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求,并在接收到所述寫請求之后,將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
[0019]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,
[0020]所述接口控制電路,還用于將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
[0021]第二方面,提供了一種標(biāo)識切換方法,所述方法包括:
[0022]接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0023]根據(jù)所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問;
[0024]當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
[0025]在第二方面的第一種可能的實現(xiàn)方式中,所述根據(jù)所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識之后,還包括:
[0026]當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段;
[0027]當(dāng)查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
[0028]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識之后,還包括:
[0029]接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求;
[0030]根據(jù)所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
[0031]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述根據(jù)所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,還包括:
[0032]將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
[0033]第三方面,提供了一種接口控制電路,所述接口控制電路包括:
[0034]第一接收模塊,用于接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0035]標(biāo)識查詢模塊,用于根據(jù)所述第一接收模塊接收到的所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問;
[0036]第一切換模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
[0037]在第三方面的第一種可能的實現(xiàn)方式中,所述接口控制電路,還包括:
[0038]第一反饋模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段;
[0039]第二反饋模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
[0040]結(jié)合第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述接口控制電路,還包括:
[0041]第二接收模塊,用于接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求;
[0042]第二切換模塊,用于根據(jù)所述第二接收模塊接收到的所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
[0043]結(jié)合第三方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述接口控制電路,還包括:
[0044]第三反饋模塊,用于當(dāng)所述第二切換模塊將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
[0045]本發(fā)明實施例提供的技術(shù)方案的有益效果是:
[0046]通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
【專利附圖】
【附圖說明】
[0047]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0048]圖1是本發(fā)明實施例一提供的設(shè)備的結(jié)構(gòu)示意圖;
[0049]圖2是本發(fā)明實施例二提供的設(shè)備的結(jié)構(gòu)示意圖;
[0050]圖3是本發(fā)明實施例三提供的標(biāo)識切換方法的方法流程圖;
[0051]圖4是本發(fā)明實施例四提供的標(biāo)識切換方法的方法流程圖;
[0052]圖5是本發(fā)明實施例五提供的接口控制電路的結(jié)構(gòu)方框圖;
[0053]圖6是本發(fā)明實施例六提供的接口控制電路的結(jié)構(gòu)方框圖。
【具體實施方式】
[0054]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。[0055]實施例一
[0056]請參考圖1,其示出了本發(fā)明實施例一提供的設(shè)備的結(jié)構(gòu)示意圖,該設(shè)備包括總線110、與總線110相連的接口控制電路120、與接口控制電路120相連的存儲器130以及與總線120相連的至少一個處理器140。
[0057]存儲器130用于存儲至少一個標(biāo)識。其中,每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被處理器140訪問,忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被處理器140訪問。在具體實現(xiàn)時,存儲器130可以實現(xiàn)為一塊芯片,該芯片可以通過硬件接口與接口控制電路120相連;可選的,存儲器130還可以實現(xiàn)為一個邏輯電路,該邏輯電路通過硬件接口與接口控制電路120相連。并且存儲器130的存儲空間的大小,可以根據(jù)實際的系統(tǒng)需求進(jìn)行合理設(shè)計,一般是16個到128個地址空間,本實施例對此不作限定。
[0058]接口控制電路120用于根據(jù)處理器140發(fā)送的包括預(yù)定地址的讀請求查詢存儲器130中存儲的標(biāo)識。具體的講,在設(shè)備的一個線程需要訪問關(guān)鍵代碼段時,該線程所對應(yīng)的處理器140可以用于向接口控制電路發(fā)送包括預(yù)定地址的讀請求,相應(yīng)的,接口控制電路可以用于接收處理器140發(fā)送的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中攜帶的預(yù)定地址查詢存儲器130中與該預(yù)定地址匹配的標(biāo)識。
[0059]接口控制電路120還用于當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識;具體的講,在接口控制電路120根據(jù)處理器140發(fā)送的讀請求查詢存儲器130中與預(yù)定地址匹配的標(biāo)識,當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路120可以用于將標(biāo)識從空閑標(biāo)識切換成忙碌標(biāo)識。
[0060]綜上所述,本實施例提供的設(shè)備,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0061]實施例二
[0062]請參考圖1,其示出了本發(fā)明實施例二提供的設(shè)備的結(jié)構(gòu)示意圖,該設(shè)備包括總線110、與總線110相連的接口控制電路120、與接口控制電路120相連的存儲器130以及與總線120相連的至少一個處理器140。
[0063]存儲器130用于存儲至少一個標(biāo)識。其中,每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被處理器140訪問,忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被處理器140訪問。在具體實現(xiàn)時,存儲器130可以實現(xiàn)為一塊芯片,該芯片可以通過硬件接口與接口控制電路120相連;可選的,存儲器130還可以實現(xiàn)為一個邏輯電路,該邏輯電路通過硬件接口與接口控制電路120相連。并且存儲器130的存儲空間的大小,可以根據(jù)實際的系統(tǒng)需求進(jìn)行合理設(shè)計,一般是16個到128個地址空間,本實施例對此不作限定;[0064]另外,當(dāng)設(shè)備中的關(guān)鍵代碼段是相互獨立,也即在一個處理器或一個線程訪問一個關(guān)鍵代碼段時,其他處理器或其他線程可以同時訪問除該關(guān)鍵代碼段之外的其他關(guān)鍵代碼段,那么此時每個標(biāo)識可以對應(yīng)于一個預(yù)定地址和一個關(guān)鍵代碼段;而當(dāng)設(shè)備的關(guān)鍵代碼段中存在相互關(guān)聯(lián)的關(guān)鍵代碼段,也即在一個處理器或一個線程訪問一個關(guān)鍵代碼段時,其他處理器或其他線程在不能訪問該關(guān)鍵代碼段的同時也不能訪問與該關(guān)鍵代碼段關(guān)聯(lián)的其他關(guān)鍵代碼段,則此時標(biāo)識可以對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,從而保證當(dāng)其中的一個關(guān)鍵代碼段被訪問時,與他關(guān)聯(lián)的其他關(guān)鍵代碼段不能被訪問,本實施例對此并不做限定。并且存儲器中存儲的標(biāo)識可以通過兩個預(yù)定數(shù)值如‘0’和‘I’的形式來表示,其中‘0’是空閑標(biāo)識、‘I’是忙碌標(biāo)識,本實施例對標(biāo)識的具體實現(xiàn)形式并不做限定。
[0065]接口控制電路120用于根據(jù)處理器140發(fā)送的包括預(yù)定地址的讀請求查詢存儲器130中存儲的標(biāo)識。具體的講,在設(shè)備的一個線程或者一個處理器需要訪問關(guān)鍵代碼段時,處理器140可以用于向接口控制電路發(fā)送包括預(yù)定地址的讀請求,相應(yīng)的,接口控制電路可以用于接收處理器140發(fā)送的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中攜帶的預(yù)定地址查詢存儲器130中與該預(yù)定地址匹配的標(biāo)識。
[0066]接口控制電路120還用于當(dāng)查詢到的標(biāo)識是空閑標(biāo)識之后,將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識;具體的講,接口控制電路120在接收到處理器140發(fā)送的讀請求之后,可以根據(jù)讀請求中攜帶的預(yù)定地址查詢存儲器130中與預(yù)定地址匹配的標(biāo)識,并且當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路120可以用于將標(biāo)識從空閑標(biāo)識切換成忙碌標(biāo)識。
[0067]接口控制電路120還用于當(dāng)查詢到的標(biāo)識是空間標(biāo)識之后,將空閑標(biāo)識反饋給處理器140,以便處理器140在接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段。
[0068]接口控制電路120還用于當(dāng)查詢到的標(biāo)識是忙碌標(biāo)識之后,將忙碌標(biāo)識反饋至處理器140,以便處理器140在接收到忙碌標(biāo)識之后進(jìn)入等待狀態(tài),而并不執(zhí)行關(guān)鍵代碼段。
[0069]接口控制電路120還用于將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識之后,接收處理器140在訪問完關(guān)鍵代碼段之后發(fā)送的包括預(yù)定地址的寫請求,并在接收到寫請求之后,將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識。具體的講,在接口控制電路120將查詢到的空閑標(biāo)識反饋至處理器140之后,處理器140可以用于訪問關(guān)鍵代碼段,并且在處理器140訪問完關(guān)鍵代碼段之后,處理器140可以用于向接口控制電路120發(fā)送一個包括預(yù)定地址的寫請求,相應(yīng)的,接口控制電路120可以用于接收處理器140發(fā)送的包括預(yù)定地址的寫請求,并且在接收到寫請求之后,將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識。
[0070]接口控制電路120還用于將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識之后,將空閑標(biāo)識反饋給至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的處理器140在接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段。具體的講,在接口控制電路120將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識之后,其他線程或者處理器可以開始訪問關(guān)鍵代碼段,所以此時,接口控制電路120可以用于將空閑標(biāo)識反饋至進(jìn)入等待狀態(tài)的處理器140,以便處理器140在接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段??蛇x的,接口控制電路120還可以用于將空閑標(biāo)識反饋至所有處理器140,只是其中只有進(jìn)入等待狀態(tài)的處理器140在接收到空閑標(biāo)識后開始訪問關(guān)鍵代碼段,而其它處理器則拋棄空閑標(biāo)識,本實施例對此并不做限定。
[0071]可選的,請參考圖2,設(shè)備還可以包括處理器140在發(fā)送讀請求和寫請求時調(diào)用軟件代碼使用的RAM接口控制器150以及用于存儲軟件代碼和軟件數(shù)據(jù)的RAM存儲器160,在此本實施例不再贅述。
[0072]其中,處理器140可以是一個也可以是多個。比如,在單處理器設(shè)備中,處理器140只有一個,而在多處理器如AMP設(shè)備中,處理器140可以有Ptl-Plri共η個,具體實現(xiàn)時根據(jù)不同的設(shè)備而不同,在此不再贅述。
[0073]綜上所述,本實施例提供的設(shè)備,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0074]實施例三
[0075]請參考圖3,其示出了本發(fā)明實施例三提供的標(biāo)識切換方法的方法流程圖。該方法用于如實施例一和實施例二所述的設(shè)備中,該方法包括:
[0076]步驟301,接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0077]在一個處理器需要訪問關(guān)鍵代碼段保護(hù)的資源時,處理器會發(fā)送一個包括預(yù)定地址的讀請求至接口控制電路,相應(yīng)的,接口控制電路可以接收處理器發(fā)送的包括預(yù)定地址的讀請求。
[0078]步驟302,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識;
[0079]在接口控制電路接收到包括預(yù)定地址的讀請求之后,接口控制電路可以根據(jù)接收到的讀請求在存儲器中查詢與預(yù)定地址匹配的標(biāo)識。
[0080]其中,存儲器中存儲的標(biāo)識至少有一個,并且每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一關(guān)鍵代碼段,并且標(biāo)識可以是空閑標(biāo)識或者忙碌標(biāo)識,空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被處理器訪問,而忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被處理器訪問。
[0081]步驟303,當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識。
[0082]當(dāng)接口控制電路查詢到的標(biāo)識是空閑標(biāo)識時,說明此時該標(biāo)識對應(yīng)的關(guān)鍵代碼段可以被處理器訪問,并且在被處理器訪問的同時不能再被其他處理器訪問,所以接口控制電路將把標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識。
[0083]綜上所述,本實施例提供的標(biāo)識切換方法,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0084]實施例四[0085]請參考圖4,其示出了本發(fā)明實施例四提供的標(biāo)識切換方法的方法流程圖,該方法用于如實施例一和實施例二所述的設(shè)備中,該方法包括:
[0086]步驟401,接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0087]本實施例以具有多處理器的AMP設(shè)備為例,在AMP設(shè)備中,當(dāng)一個處理器需要訪問關(guān)鍵代碼段保護(hù)的資源也即訪問一個關(guān)鍵代碼段時,處理器可以通過RAM接口控制器從RAM存儲器中讀取軟件代碼,從而通過運行軟件代碼的方式來發(fā)送一個包括預(yù)定地址的讀請求到總線上。在接口控制電路檢測到讀請求中的預(yù)定地址與跟接口控制電路相連的存儲器中存儲的某一標(biāo)識的地址匹配時,接口控制電路可以接收處理器發(fā)送的包括預(yù)定地址的讀請求。
[0088]其中,RAM存儲器可以存儲設(shè)備運行時需要的軟件代碼以及軟件數(shù)據(jù),所以對共享資源進(jìn)行保護(hù)的關(guān)鍵代碼段可以存儲在RAM存儲器中。
[0089]步驟402,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識;
[0090]在接口控制電路接收到處理器發(fā)送的包括預(yù)定地址的讀請求之后,接口控制電路可以根據(jù)接收到的讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識。
[0091]比如,處理器發(fā)送的讀請求中的預(yù)定地址是Addr1,則在接口控制電路接收到讀請求中的預(yù)定地址Addr1之后,接口控制電路可以在AMP設(shè)備的存儲器中查詢與Addr1對應(yīng)的標(biāo)識。
[0092]其中,存儲器中存儲的標(biāo)識至少有一個,每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,并且標(biāo)識可以是空閑標(biāo)識或者忙碌標(biāo)識,空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段可以被處理器訪問,忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被處理器訪問。
[0093]需要說明的是,本實施例對存儲器中標(biāo)識的存儲形式并不做限定,并且以存儲器中存儲的標(biāo)識是通過‘0’和‘I’的形式來實現(xiàn),其中‘0’是空閑標(biāo)識,‘I’是忙碌標(biāo)識來舉例。
[0094]步驟403,當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,將標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識;
[0095]當(dāng)接口控制電路查詢到的標(biāo)識是空閑標(biāo)識時,說明此時標(biāo)識對應(yīng)的關(guān)鍵代碼段處于空閑狀態(tài),并沒有被其他處理器訪問,所以此時該關(guān)鍵代碼段可以被該理器訪問,并且為了保證在該處理器訪問關(guān)鍵代碼段的同時其他處理器不能訪問該關(guān)鍵代碼段,當(dāng)接口控制電路查詢到標(biāo)識是空閑標(biāo)識時,接口控制電路可以把標(biāo)識由空閑標(biāo)識切換成忙碌標(biāo)識。比如,接口控制電路查詢到存儲器中存儲的與Addr1對應(yīng)的標(biāo)識是‘0’,是空閑標(biāo)識,則此時接口控制電路可以將標(biāo)識從‘0’切換到‘I’。
[0096]步驟404,當(dāng)查詢到的標(biāo)識是空閑標(biāo)識之后,將空閑標(biāo)識反饋給處理器,以便處理器在接收到空閑標(biāo)識后開始訪問關(guān)鍵代碼段;
[0097]當(dāng)接口控制電路查詢到的標(biāo)識是空閑標(biāo)識之后,為了讓處理器知道此時可以訪問訪問關(guān)鍵代碼,接口控制電路可以將空閑標(biāo)識反饋給處理器,以便在處理器接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段。
[0098]如,接口控制電路查詢到存儲器中存儲的與Addr1對應(yīng)的標(biāo)識是‘0’,是空閑標(biāo)識之后,接口控制電路可以將代表關(guān)鍵代碼段空閑的空閑標(biāo)識‘0’反饋給處理器,從而處理器在接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段。可選的,接口控制電路在查詢到標(biāo)識是空閑標(biāo)識‘0’之后,還可以將用于表征關(guān)鍵代碼段處于空閑從而處理器可以訪問關(guān)鍵代碼段的任意形式的數(shù)值作為空閑標(biāo)識反饋給處理器,從而使得處理器在接收到空閑標(biāo)識之后,開始執(zhí)行關(guān)鍵代碼段。
[0099]需要補充說明的是,當(dāng)接口控制電路查詢到存儲器中存儲的與預(yù)定地址對應(yīng)的標(biāo)識是忙碌標(biāo)識時,為了告知處理器此時不能訪問關(guān)鍵代碼段而是進(jìn)入等待狀態(tài),接口控制電路將把忙碌標(biāo)識反饋給處理器,以便處理器在接收到該忙碌標(biāo)識之后,進(jìn)入等待狀態(tài)而不是訪問關(guān)鍵代碼段。
[0100]另外,步驟403與步驟404可以同時執(zhí)行,也可以先執(zhí)行步驟403再執(zhí)行步驟404,本實施例對此并不做限定。
[0101]步驟405,接收處理器發(fā)送的包括預(yù)定地址的寫請求;
[0102]當(dāng)處理器開始訪問關(guān)鍵代碼段,并且在訪問完成后,處理器將不再需要繼續(xù)占用該關(guān)鍵代碼段,所以為了讓其他需要訪問關(guān)鍵代碼段的處理器能夠開始訪問該關(guān)鍵代碼段,處理器可以發(fā)送一個包括預(yù)定地址的寫請求來使得接口控制電路將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識,相應(yīng)的,當(dāng)接口控制電路檢測到寫請求中的預(yù)定地址與跟自己相連的存儲器中存儲的某一標(biāo)識的地址相匹配時,接口控制電路將接收處理器發(fā)送的包括預(yù)定地址的寫請求。
[0103]在具體實現(xiàn)時,寫請求中還可以直接攜帶與預(yù)定地址對應(yīng)的空閑標(biāo)識,從而使得接口控制電路在接收到寫請求之后,將標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識。可選的,寫請求還可以包括一個四則運算的計算方法,從而使得接口控制電路在接收到寫請求之后,將預(yù)定地址對應(yīng)的標(biāo)識由忙碌標(biāo)識通過一定運算后切換回空閑標(biāo)識,本實施例對寫請求中的具體內(nèi)容并不做限定。
[0104]步驟406,根據(jù)寫請求將標(biāo)識由忙碌標(biāo)識切換成空閑標(biāo)識;
[0105]在接口控制電路接收到處理器發(fā)送的寫請求之后,接口控制電路可以根據(jù)寫請求中的預(yù)定標(biāo)識,將存儲器中存儲的與預(yù)定地址對應(yīng)的標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識。
[0106]步驟407,將空閑標(biāo)識反饋給至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的處理器在接收到空閑標(biāo)識后開始訪問關(guān)鍵代碼段。
[0107]在接口控制電路將存儲器中存儲的與預(yù)定地址對應(yīng)的標(biāo)識由忙碌標(biāo)識切換回空閑標(biāo)識之后,該標(biāo)識對應(yīng)的關(guān)鍵代碼段處于空閑狀態(tài)可以被其他處理器訪問,所以為了使得此時等待訪問關(guān)鍵代碼段的處理器開始訪問該關(guān)鍵代碼段,接口控制電路可以將空閑標(biāo)識反饋給進(jìn)入等待狀態(tài)的處理器??蛇x的,接口控制電路還可以將空閑標(biāo)識反饋給AMP設(shè)備的所有處理器,從而使得進(jìn)入等待狀態(tài)的處理器在接收到空閑標(biāo)識之后開始訪問關(guān)鍵代碼段,而其他沒有等待訪問關(guān)鍵代碼段的處理器在接收到空閑標(biāo)識之后拋棄該空閑標(biāo)識,本實施例對此并不做限定。
[0108]需要補充說明的是,當(dāng)進(jìn)入等待狀態(tài)的處理器有多個時,可以對各處理器設(shè)定一個優(yōu)先級,從而使得優(yōu)先級較高的處理器在接收到空閑標(biāo)識后開始訪問關(guān)鍵代碼段,而優(yōu)先級較低的處理器繼續(xù)保持等待狀態(tài),本實施例對此不做限定。
[0109]綜上所述,本實施例提供的標(biāo)識切換方法,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0110]實施例五
[0111]請參考圖5,其示出了本發(fā)明實施例五提供的接口控制電路的結(jié)構(gòu)方框圖,所述接口控制電路包括第一接收模塊510、標(biāo)識查詢模塊520和第一切換模塊530。
[0112]第一接收模塊510,用于接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0113]標(biāo)識查詢模塊520,用于根據(jù)所述第一接收模塊510接收到的所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問;
[0114]第一切換模塊530,用于當(dāng)所述標(biāo)識查詢模塊520查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
[0115]綜上所述,本實施例提供的接口控制電路,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0116]實施例六
[0117]請參考圖6,其示出了本發(fā)明實施例六提供的接口控制電路的結(jié)構(gòu)方框圖,所述接口控制電路包括第一接收模塊510、標(biāo)識查詢模塊520、第一切換模塊530、第一反饋模塊540、第二反饋模塊550、第二接收模塊560、第二切換模塊570以及第三反饋模塊580。
[0118]第一接收模塊510,用于接收處理器發(fā)送的包括預(yù)定地址的讀請求;
[0119]標(biāo)識查詢模塊520,用于根據(jù)所述第一接收模塊510接收到的所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問;
[0120]第一切換模塊530,用于當(dāng)所述標(biāo)識查詢模塊520查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
[0121]第一反饋模塊540,用于當(dāng)所述標(biāo)識查詢模塊520查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段;
[0122]第二反饋模塊550,用于當(dāng)所述標(biāo)識查詢模塊520查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。[0123]第二接收模塊560,用于接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求;
[0124]第二切換模塊570,用于根據(jù)所述第二接收模塊560接收到的所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
[0125]第三反饋模塊580,用于當(dāng)所述第二切換模塊570將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
[0126]綜上所述,本實施例提供的接口控制電路,通過使用接口控制電路來接收處理器發(fā)送的包括預(yù)定地址的讀請求,并且在接收到讀請求之后,根據(jù)讀請求中的預(yù)定地址查詢存儲器中存儲的標(biāo)識,從而當(dāng)查詢到的標(biāo)識是空閑標(biāo)識時,接口控制電路將標(biāo)識由空閑標(biāo)識切換至忙碌標(biāo)識。解決了現(xiàn)有技術(shù)中,當(dāng)設(shè)備運行一個線程或者一個處理器申請關(guān)鍵代碼段的標(biāo)識時,設(shè)備需要采用關(guān)中斷或者鎖總線,從而導(dǎo)致系統(tǒng)性能低下,并且在如AMP等多核設(shè)備中,為了讓所有處理器都能讀取到關(guān)鍵代碼段的標(biāo)識,需要通過上層軟件來約定共享空間,從而導(dǎo)致的軟件系統(tǒng)結(jié)構(gòu)復(fù)雜、開發(fā)測試以及維護(hù)成本大的問題。達(dá)到了提供系統(tǒng)性能,并且降低軟件系統(tǒng)的復(fù)雜度以及開發(fā)測試和維護(hù)成本的效果。
[0127]需要說明的是:上述實施例提供的接口控制電路在進(jìn)行標(biāo)識切換時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的接口控制電路與標(biāo)識切換方法的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0128]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0129]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0130]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種設(shè)備,其特征在于,所述設(shè)備包括: 總線、與所述總線相連的接口控制電路、與所述接口控制電路相連的存儲器以及與所述總線相連的至少一個處理器; 所述存儲器,用于存儲至少一個標(biāo)識,每個標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問; 所述接口控制電路,用于根據(jù)所述處理器發(fā)送的包括預(yù)定地址的讀請求查詢所述存儲器中存儲的標(biāo)識; 所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其特征在于, 所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段; 所述接口控制電路,還用于當(dāng)查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
3.根據(jù)權(quán)利要求2所述的設(shè)備,其特征在于, 所述接口控制電路,還用于將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識之后,接收所述處理器在訪問完所述關(guān) 鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求,并在接收到所述寫請求之后,將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
4.根據(jù)權(quán)利要求3所述的設(shè)備,其特征在于, 所述接口控制電路,還用于將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
5.一種標(biāo)識切換方法,其特征在于,所述方法包括: 接收處理器發(fā)送的包括預(yù)定地址的讀請求; 根據(jù)所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問; 當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
6.根據(jù)權(quán)利要求5所述的標(biāo)識切換方法,其特征在于,所述根據(jù)所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識之后,還包括: 當(dāng)查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段; 當(dāng)查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
7.根據(jù)權(quán)利要求6所述的標(biāo)識切換方法,其特征在于,所述將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識之后,還包括: 接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求; 根據(jù)所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
8.根據(jù)權(quán)利要求7所述的標(biāo)識切換方法,其特征在于,所述根據(jù)所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,還包括: 將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
9.一種接口控制電路,其特征在于,所述接口控制電路包括: 第一接收模塊,用于接收處理器發(fā)送的包括預(yù)定地址的讀請求; 標(biāo)識查詢模塊,用于根據(jù)所述第一接收模塊接收到的所述讀請求中的所述預(yù)定地址查詢存儲器中存儲的標(biāo)識,所述標(biāo)識對應(yīng)于一個預(yù)定地址和至少一個關(guān)鍵代碼段,所述標(biāo)識是空閑標(biāo)識或者忙碌標(biāo)識,所述空閑標(biāo)識代表對應(yīng)的關(guān)鍵代碼段能夠被所述處理器訪問,所述忙碌標(biāo)識代表對應(yīng)的關(guān)鍵代碼段不能被所述處理器訪問; 第一切換模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述空閑標(biāo)識時,將所述標(biāo)識由所述空閑標(biāo)識切換成所述忙碌標(biāo)識。
10.根據(jù)權(quán)利要求9所述的接口控制電路,其特征在于,所述接口控制電路,還包括: 第一反饋模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給 所述處理器,以便所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段; 第二反饋模塊,用于當(dāng)所述標(biāo)識查詢模塊查詢到的所述標(biāo)識是所述忙碌標(biāo)識之后,將所述忙碌標(biāo)識反饋給所述處理器,以便所述處理器在接收到所述忙碌標(biāo)識后進(jìn)入等待狀態(tài),而并不執(zhí)行所述關(guān)鍵代碼段。
11.根據(jù)權(quán)利要求10所述的接口控制電路,其特征在于,所述接口控制電路,還包括: 第二接收模塊,用于接收所述處理器在訪問完所述關(guān)鍵代碼段之后發(fā)送的包括所述預(yù)定地址的寫請求; 第二切換模塊,用于根據(jù)所述第二接收模塊接收到的所述寫請求將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識。
12.根據(jù)權(quán)利要求11所述的接口控制電路,其特征在于,所述接口控制電路,還包括: 第三反饋模塊,用于當(dāng)所述第二切換模塊將所述標(biāo)識由所述忙碌標(biāo)識切換回所述空閑標(biāo)識之后,將所述空閑標(biāo)識反饋給所述至少一個處理器中的全部或者部分處理器,以便進(jìn)入等待狀態(tài)的所述處理器在接收到所述空閑標(biāo)識后開始訪問所述關(guān)鍵代碼段。
【文檔編號】G06F9/48GK103885824SQ201210560672
【公開日】2014年6月25日 申請日期:2012年12月21日 優(yōu)先權(quán)日:2012年12月21日
【發(fā)明者】龐振 申請人:華為技術(shù)有限公司