本發(fā)明涉及一種多簇處理器及其設(shè)計(jì)方法。
背景技術(shù):
隨著移動(dòng)電子設(shè)備的性能要求越來越高,多核處理器結(jié)構(gòu)已經(jīng)很普及,同時(shí),為了平衡功耗和性能,多處理器簇(簇)的big-little結(jié)構(gòu)開始應(yīng)用,這種多處理器簇的結(jié)構(gòu),將處理器分為高性能和低功耗兩個(gè)處理器簇,每個(gè)簇中都包含多個(gè)CPU,比如4核A72加上4核A53的雙簇big-little處理器結(jié)構(gòu)。而big-little結(jié)構(gòu)帶來了一個(gè)新的問題,就是多簇處理器之間的cache一致性保證,為了解決這個(gè)問題,很多公司給出了解決方案,比較典型的就是ARM的CCI400/CCI500多簇處理器一致性處理電路(背景見鏈接)。CCI電路可以很好的解決多簇處理器的cache一致性問題,但是也有不足,就是CCI電路本身在處理一致性的時(shí)候會(huì)帶來訪問的延遲增加,比如某個(gè)CPU需要訪問讀取DDR時(shí),需要經(jīng)過CCI電路,訪問行為到達(dá)CCI電路后,CCI電路會(huì)到各個(gè)處理器簇的cache中查找是否會(huì)命中,如果命中則直接從cache中讀取數(shù)據(jù)返回,如果沒有命中則再將訪問發(fā)出到DDR進(jìn)行讀取訪問.這在多簇工作時(shí)是有正效果的,可以利用多簇處理器cache的空間.但是當(dāng)多簇CPU中只有其中一個(gè)簇在工作時(shí),這種延遲會(huì)帶來負(fù)面的效果,因?yàn)橹挥幸粋€(gè)簇工作時(shí)另一個(gè)簇處于關(guān)電狀態(tài),并不能利用另一個(gè)處理器簇的cache空間,此時(shí)CPU的訪問行為經(jīng)過CCI只會(huì)增加額外的延遲,造成性能的下降。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種多簇處理器及其腳本設(shè)計(jì)和連接方法,既可以在多簇工作場(chǎng)景下保證CCI電路的工作,又可以在單簇工作場(chǎng)景下去除CCI額外的負(fù)面延遲效果,以提高系統(tǒng)性能。
本發(fā)明的多簇處理器是這樣實(shí)現(xiàn)的:一種多簇處理器,包括復(fù)數(shù)個(gè)多核CPU處理器單元、一CCI電路和一系統(tǒng)地址空間,還包括復(fù)數(shù)個(gè)簇內(nèi)多核CPU狀態(tài)采集單元、一簇工作狀態(tài)監(jiān)控單元、一數(shù)據(jù)通路控制單元、復(fù)數(shù)個(gè)通路選擇單元和一直通通路單元;
各所述多核CPU處理器單元依次通過一所述簇內(nèi)多核CPU狀態(tài)采集單元、所述簇工作狀態(tài)監(jiān)控單元連接所述數(shù)據(jù)通路控制單元,并通過一所述通路選擇單元、所述CCI電路連接系統(tǒng)地址空間;
所述數(shù)據(jù)通路控制單元分別連接CCI電路、各個(gè)通路選擇單元和直通通路單元;
各所述通路選擇單元均通過所述直通通路單元連接系統(tǒng)地址空間。
進(jìn)一步的,各所述簇內(nèi)多核CPU狀態(tài)采集單元分別對(duì)應(yīng)實(shí)時(shí)采集一多核CPU處理器單元中每個(gè)CPU的狀態(tài)并將每個(gè)cpu的關(guān)斷狀態(tài)實(shí)時(shí)送往所述簇工作狀態(tài)監(jiān)控單元;
當(dāng)所述簇工作狀態(tài)監(jiān)控單元在收到某個(gè)簇中的所有CPU都被關(guān)斷操作后,會(huì)判定為這個(gè)簇全部被關(guān)斷,并將判定結(jié)果送往數(shù)據(jù)通路控制單元,當(dāng)僅剩唯一一個(gè)簇未關(guān)斷時(shí),由所述數(shù)據(jù)通路控制單元根據(jù)簇關(guān)閉信息控制所述通路選擇單元進(jìn)行數(shù)據(jù)通路切換控制;完成通路切換后,剩下唯一未關(guān)斷的CPU的簇通過所述直通通路單元直接訪問系統(tǒng)地址空間而不需要通過CCI電路帶來額外的訪問延遲;
當(dāng)關(guān)閉的簇中某個(gè)CPU收到打開信號(hào)后,簇多核CPU狀態(tài)采集單元將這個(gè)CPU要打開的信息送往簇工作狀態(tài)監(jiān)控單元;簇工作狀態(tài)監(jiān)控單元收到已關(guān)閉簇的CPU要打開之后,會(huì)將簇關(guān)斷信號(hào)置為無效然后送往數(shù)據(jù)通路控制單元;數(shù)據(jù)通路控制單元收到簇關(guān)斷信號(hào)置為無效后,再進(jìn)行通路切換,將單個(gè)簇的直通訪問切換為復(fù)數(shù)個(gè)簇的通過CCI電路后再訪問系統(tǒng)地址空間。
進(jìn)一步的,某個(gè)簇關(guān)斷后的切換具體過程為:
S1.首先控制CCI電路向沒有被關(guān)斷的CPU簇中的CPU訪問通路為idle狀態(tài),即接收完正在傳送的最后一筆數(shù)據(jù)后,不再接收CPU發(fā)出的命令,ready信號(hào)返回0,這樣正在工作的CPU會(huì)一直保持命令的有效狀態(tài),并等待后面的電路返回ready為1表示接收命令;
S2.當(dāng)CCI電路接收完所有還在工作的CPU的最后一筆正在傳輸?shù)臄?shù)據(jù)后,不再接收新的命令,會(huì)將idle有效信號(hào)返回給數(shù)據(jù)通路控制單元;
S3.數(shù)據(jù)通路控制單元收到CCI電路返回的idle有效狀態(tài)信號(hào)后,控制通路選擇單元切換訪問通路到直通通路單元;
S4.切換完成后,直通通路單元的初始狀態(tài)也是idle狀態(tài),返回ready為0,完成切換并且等待一段穩(wěn)定時(shí)間后,數(shù)據(jù)通路控制單元會(huì)控制直通通路單元撤銷idle狀態(tài);
S5.直通通路單元收到撤銷idle狀態(tài)后,返回ready有效,并開始接收cpu命令,至此完成了通路切換動(dòng)作。
進(jìn)一步的,某個(gè)簇重新開啟的切換具體過程為:
P1.首先控制直通通路單元向沒有被關(guān)斷的CPU簇中的CPU訪問通路為idle狀態(tài),即接收完正在傳送的最后一筆數(shù)據(jù)后,不再接收CPU發(fā)出的命令,ready信號(hào)返回?zé)o效,這樣正在工作的CPU會(huì)一直保持命令的有效狀態(tài),并等待后面的電路返回ready有效表示接收命令;
P2.當(dāng)直通通路單元接收完所有還在工作的CPU的最后一筆正在傳輸?shù)臄?shù)據(jù)后,不再接收新的命令,會(huì)將idle有效信號(hào)返回給數(shù)據(jù)通路控制單元;.
P3.數(shù)據(jù)通路控制單元收到直通通路單元返回的idle有效狀態(tài)信號(hào)后,控制通路選擇單元切換訪問通路到CCI電路;
P4.切換完成后,CCI電路的初始狀態(tài)也是idle狀態(tài),返回ready為0,完成切換并且等待一段穩(wěn)定時(shí)間后,數(shù)據(jù)通路控制單元會(huì)控制CCI電路撤銷idle狀態(tài);
P5.CCI電路收到撤銷idle狀態(tài)后,返回ready有效,并開始接收cpu命令,至此完成了通路切換動(dòng)作。
進(jìn)一步的,所述復(fù)數(shù)個(gè)多核CPU處理器單元、CCI電路、系統(tǒng)地址空間,復(fù)數(shù)個(gè)簇內(nèi)多核CPU狀態(tài)采集單元、簇工作狀態(tài)監(jiān)控單元、數(shù)據(jù)通路控制單元、復(fù)數(shù)個(gè)通路選擇單元和直通通路單元均集成在一芯片內(nèi)。
本發(fā)明的多簇處理器的腳本設(shè)計(jì)和連接方法是這樣實(shí)現(xiàn)的:一種多簇處理器的腳本設(shè)計(jì)和連接方法,提供上述所述的多簇處理器,則所述方法是先在腳本中需要列出每個(gè)多核CPU簇的總線類型和總線信號(hào)名稱,然后進(jìn)行自動(dòng)連接,該自動(dòng)連接的過程為:
Q1.通過腳本讀入每個(gè)多核CPU簇的總線信號(hào);
Q2.將復(fù)數(shù)個(gè)多核CPU簇的總線信號(hào)分別對(duì)應(yīng)連接到一通路選擇單元,完成復(fù)數(shù)個(gè)多核CPU簇到通路選擇單元的連接;
Q3.將每個(gè)通路選擇單元輸出的兩組總線信號(hào)都分別連到CCI電路的總線信號(hào)和直通通路單元的總線信號(hào);
Q4.將CCI電路的總線信號(hào)和直通通路單元的總線信號(hào)都作為master連接到系統(tǒng)地址空間;
Q5.將各通路選擇單元的輸入選擇控制信號(hào)接到數(shù)據(jù)通路控制單元的選擇控制輸出即完成了腳本的自動(dòng)連接工作。
本發(fā)明具有如下優(yōu)點(diǎn):
(1)本發(fā)明多簇處理器電路既可以在多簇工作場(chǎng)景下保證CCI電路的工作,又可以在單簇工作場(chǎng)景下去除CCI額外的負(fù)面延遲效果,以提高系統(tǒng)性能;
(2)本發(fā)明通過腳本自動(dòng)產(chǎn)生bypass路徑和完成信號(hào)連接,節(jié)省大量人力,并減少風(fēng)險(xiǎn)。
附圖說明
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
圖1為本發(fā)明多簇處理器的結(jié)構(gòu)框圖。
圖2為本發(fā)明多簇處理器的一簡(jiǎn)單實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
如圖1所示,本發(fā)明的多簇處理器,包括復(fù)數(shù)個(gè)多核CPU處理器單元101、一CCI電路102和一系統(tǒng)地址空間103,還包括復(fù)數(shù)個(gè)簇內(nèi)多核CPU狀態(tài)采集單元104、一簇工作狀態(tài)監(jiān)控單元105、復(fù)數(shù)個(gè)通路選擇單元106、一直通通路單元107和一數(shù)據(jù)通路控制單元108;
各所述多核CPU處理器單元101依次通過一所述簇內(nèi)多核CPU狀態(tài)采集單元104、所述簇工作狀態(tài)監(jiān)控單元105連接所述數(shù)據(jù)通路控制單元108,并通過一所述通路選擇單元106、所述CCI電路102連接系統(tǒng)地址空間103;所述數(shù)據(jù)通路控制單元108分別連接CCI電路102、各個(gè)通路選擇單元106和直通通路單元107;各所述通路選擇單元106均通過所述直通通路單元107連接系統(tǒng)地址空間103。
其中,各電路的功能如下:
所述簇內(nèi)多核CPU狀態(tài)采集單元104用于采集多核CPU處理器單元101中每個(gè)CPU的工作狀態(tài);
所述簇工作狀態(tài)監(jiān)控單元105負(fù)責(zé)接收簇多核CPU狀態(tài)采集單元104采集的各個(gè)CPU工作狀態(tài),當(dāng)兩個(gè)簇之中的某一個(gè)簇中的所有CPU都被power_down操作后,會(huì)判定為這個(gè)簇全部被關(guān)斷,并將判定結(jié)果送往數(shù)據(jù)通路控制單元108;
所述數(shù)據(jù)通路控制單元108負(fù)責(zé)接收簇工作狀態(tài)監(jiān)控單元105輸出的簇關(guān)閉信息并進(jìn)行數(shù)據(jù)通路切換控制;
所述復(fù)數(shù)個(gè)通路選擇單元106用于在數(shù)據(jù)通路控制單元106的控制下進(jìn)行CCI電路102和直通通路單元107的通路切換;
所述直通通路單元107用于唯一處于工作狀態(tài)的簇中的所有CPU單元直接訪問系統(tǒng)地址空間103而不需要通過CCI電路102帶來額外的訪問延遲;
所述復(fù)數(shù)個(gè)多核CPU處理器單元101、CCI電路102、系統(tǒng)地址空間103,復(fù)數(shù)個(gè)簇內(nèi)多核CPU狀態(tài)采集單元104、簇工作狀態(tài)監(jiān)控單元105、數(shù)據(jù)通路控制單元108、復(fù)數(shù)個(gè)通路選擇單元106和直通通路單元107均集成在一芯片內(nèi)。
本發(fā)明多簇處理器中的各個(gè)電路的具體執(zhí)行過程:
各所述簇內(nèi)多核CPU狀態(tài)采集單元104分別對(duì)應(yīng)實(shí)時(shí)采集一多核CPU處理器單元101中每個(gè)CPU的狀態(tài)并將每個(gè)cpu的關(guān)斷狀態(tài)實(shí)時(shí)送往所述簇工作狀態(tài)監(jiān)控單元105;
當(dāng)所述簇工作狀態(tài)監(jiān)控單元105在收到某個(gè)簇中的所有CPU都被關(guān)斷操作后,會(huì)判定為這個(gè)簇全部被關(guān)斷,并將判定結(jié)果送往數(shù)據(jù)通路控制單元108,當(dāng)僅剩唯一一個(gè)簇未關(guān)斷時(shí),由所述數(shù)據(jù)通路控制單元108根據(jù)簇關(guān)閉信息控制所述通路選擇單元106進(jìn)行數(shù)據(jù)通路切換控制;完成通路切換后,剩下唯一未關(guān)斷的CPU的簇通過所述直通通路單元107直接訪問系統(tǒng)地址空間而不需要通過CCI電路102帶來額外的訪問延遲;
當(dāng)關(guān)閉的簇中某個(gè)CPU收到打開信號(hào)后,簇多核CPU狀態(tài)采集單元104將這個(gè)CPU要打開的信息送往簇工作狀態(tài)監(jiān)控單元105;簇工作狀態(tài)監(jiān)控單元105收到已關(guān)閉簇的CPU要打開之后,會(huì)將簇關(guān)斷信號(hào)置為無效然后送往數(shù)據(jù)通路控制單元108;數(shù)據(jù)通路控制單元108收到簇關(guān)斷信號(hào)置為無效后,再進(jìn)行通路切換,將單個(gè)簇的直通訪問切換為復(fù)數(shù)個(gè)簇的通過CCI電路102后再訪問系統(tǒng)地址空間103。
其中,某個(gè)簇關(guān)斷后的切換具體過程為:
S1.首先控制CCI電路102向沒有被關(guān)斷的CPU簇中的CPU訪問通路為idle狀態(tài),即接收完正在傳送的最后一筆數(shù)據(jù)后,不再接收CPU發(fā)出的命令,ready信號(hào)返回0,這樣正在工作的CPU會(huì)一直保持命令的有效狀態(tài),并等待后面的電路返回ready為1表示接收命令;
S2.當(dāng)CCI電路102接收完所有還在工作的CPU的最后一筆正在傳輸?shù)臄?shù)據(jù)后,不再接收新的命令,會(huì)將idle有效信號(hào)返回給數(shù)據(jù)通路控制單元108;
S3.數(shù)據(jù)通路控制單元108收到CCI電路102返回的idle有效狀態(tài)信號(hào)后,控制通路選擇單元106切換訪問通路到直通通路單元107;
S4.切換完成后,直通通路單元107的初始狀態(tài)也是idle狀態(tài),返回ready為0,完成切換并且等待一段穩(wěn)定時(shí)間后,數(shù)據(jù)通路控制單元108會(huì)控制直通通路單元107撤銷idle狀態(tài);
S5.直通通路單元107收到撤銷idle狀態(tài)后,返回ready有效,并開始接收cpu命令,至此完成了通路切換動(dòng)作。
某個(gè)簇重新開啟的切換具體過程為:
P1.首先控制直通通路單元107向沒有被關(guān)斷的CPU簇中的CPU訪問通路為idle狀態(tài),即接收完正在傳送的最后一筆數(shù)據(jù)后,不再接收CPU發(fā)出的命令,ready信號(hào)返回?zé)o效,這樣正在工作的CPU會(huì)一直保持命令的有效狀態(tài),并等待后面的電路返回ready有效表示接收命令;
P2.當(dāng)直通通路單元107接收完所有還在工作的CPU的最后一筆正在傳輸?shù)臄?shù)據(jù)后,不再接收新的命令,會(huì)將idle有效信號(hào)返回給數(shù)據(jù)通路控制單元108;.
P3.數(shù)據(jù)通路控制單元108收到直通通路單元107返回的idle有效狀態(tài)信號(hào)后,控制通路選擇單元106切換訪問通路到CCI電路102;
P4.切換完成后,CCI電路102的初始狀態(tài)也是idle狀態(tài),返回ready為0,完成切換并且等待一段穩(wěn)定時(shí)間后,數(shù)據(jù)通路控制單元108會(huì)控制CCI電路102撤銷idle狀態(tài);
P5.CCI電路102收到撤銷idle狀態(tài)后,返回ready有效,并開始接收cpu命令,至此完成了通路切換動(dòng)作。
本發(fā)明的多簇處理器的腳本設(shè)計(jì)和連接方法是這樣實(shí)現(xiàn)的:一種多簇處理器的腳本設(shè)計(jì)和連接方法,提供上述所述的多簇處理器,則所述方法是先在腳本中需要列出每個(gè)多核CPU簇的總線類型和總線信號(hào)名稱,然后進(jìn)行自動(dòng)連接,該自動(dòng)連接的過程為:
Q1.通過腳本讀入每個(gè)多核CPU簇的總線信號(hào);
Q2.將復(fù)數(shù)個(gè)多核CPU簇的總線信號(hào)分別對(duì)應(yīng)連接到一通路選擇單元106,完成復(fù)數(shù)個(gè)多核CPU簇到通路選擇單元106的連接;
Q3.將每個(gè)通路選擇單元輸出的兩組總線信號(hào)都分別連到CCI電路的總線信號(hào)和直通通路單元的總線信號(hào);
Q4.將CCI電路102的總線信號(hào)和直通通路單元107的總線信號(hào)都作為master連接到系統(tǒng)地址空間103;
Q5.將各通路選擇單元106的輸入選擇控制信號(hào)接到數(shù)據(jù)通路控制單元108的選擇控制輸出即完成了腳本的自動(dòng)連接工作。
實(shí)施例一
為說明方便,本實(shí)施例以兩簇處理器為例,說明本發(fā)明的工作原理,本領(lǐng)域的技術(shù)人員完全可以根據(jù)本發(fā)明思想推導(dǎo)出三簇以上的處理器的工作過程。
如圖2所示,該實(shí)施例中的多簇處理器為兩簇處理器,包括簇Ⅰ多核CPU處理器單元1011、簇Ⅱ多核CPU處理器單元1012、CCI電路102和系統(tǒng)地址空間103,還包括簇Ⅰ內(nèi)多核CPU狀態(tài)采集單元1041、簇Ⅱ內(nèi)多核CPU狀態(tài)采集單元1042、簇工作狀態(tài)監(jiān)控單元105、數(shù)據(jù)通路控制單元106、第一通路選擇單元1061、第二通路選擇單元1062和直通通路單元107;
所述簇Ⅰ多核CPU處理器單元1011依次通過所述簇Ⅰ內(nèi)多核CPU狀態(tài)采集單元1041、簇工作狀態(tài)監(jiān)控單元105連接所述數(shù)據(jù)通路控制單元106,并通過第一通路選擇單元1061、CCI電路102連接系統(tǒng)地址空間103;
所述簇Ⅱ多核CPU處理器單元1012依次通過所述簇Ⅱ內(nèi)多核CPU狀態(tài)采集單元1042、簇工作狀態(tài)監(jiān)控單元105連接所述數(shù)據(jù)通路控制單元106,并通過第二通路選擇單元1062、CCI電路102連接系統(tǒng)地址空間103;
所述數(shù)據(jù)通路控制單元106分別連接CCI電路、第一通路選擇單元、第二通路選擇單元和直通通路單元;
所述第一通路選擇單元1061、第二通路選擇單元1062均通過直通通路單元107連接系統(tǒng)地址空間103。
電路啟動(dòng)時(shí),所述簇Ⅰ多核CPU處理器單元1011、簇Ⅱ多核CPU處理器單元1012都處于共同工作狀態(tài),簇Ⅰ多核CPU處理器單元1011和簇Ⅱ多核CPU處理器單元1012通過CCI電路102進(jìn)行多處理器簇的cache一致性處理,第一通路選擇單元1061和第二通路選擇單元1062的初始選通狀態(tài)為所有CPU的訪問通路都是連接到CCI電路102后再訪問系統(tǒng)地址空間103。
所述簇Ⅰ內(nèi)多核CPU狀態(tài)采集單元1041和簇Ⅱ內(nèi)多核CPU狀態(tài)采集單元1042分別實(shí)時(shí)采集簇Ⅰ多核CPU處理器單元1011和簇Ⅱ多核CPU處理器單元1012中每個(gè)CPU的狀態(tài)并將每個(gè)CPU的關(guān)斷狀態(tài)實(shí)時(shí)送往所述簇工作狀態(tài)監(jiān)控單元105;
當(dāng)所述簇工作狀態(tài)監(jiān)控單元105在收到某個(gè)簇中(假設(shè)是簇Ⅰ)的所有CPU都被關(guān)斷操作后,會(huì)判定為這個(gè)簇全部被關(guān)斷,并將判定結(jié)果送往數(shù)據(jù)通路控制單元108,由所述數(shù)據(jù)通路控制單元108根據(jù)簇關(guān)閉信息控制第一通路選擇單元1061和第一通路選擇單元1062并進(jìn)行數(shù)據(jù)通路切換控制;完成通路切換后,剩下未關(guān)斷的CPU的簇(即是簇Ⅱ)通過所述直通通路單元107直接訪問系統(tǒng)地址空間103而不需要通過CCI電路102帶來額外的訪問延遲;
當(dāng)關(guān)閉的簇中某個(gè)CPU收到打開信號(hào)后,多核CPU狀態(tài)采集單元1041將這個(gè)CPU要打開的信息送往簇工作狀態(tài)監(jiān)控單元105;簇工作狀態(tài)監(jiān)控單元105收到已關(guān)閉簇的CPU要打開之后,會(huì)將簇關(guān)斷信號(hào)置為無效然后送往數(shù)據(jù)通路控制單元108;數(shù)據(jù)通路控制單元108收到簇關(guān)斷信號(hào)置為無效后,再進(jìn)行通路切換,將單個(gè)簇的直通訪問切換為兩個(gè)簇的通過CCI電路102后再訪問系統(tǒng)地址空間103。
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。