形緩存器200中頂端的硬件執(zhí)行線程的所有命令,并將相應(yīng)硬件執(zhí)行線程對應(yīng)的環(huán)形緩存器的頭尾地址寫入至命令串處理器120中的存儲器映射輸入輸出(MM10,Memory Mapping Input/Output)寄存器,用以指示命令串處理器120執(zhí)行這些命令。每個命令指示命令串處理器120產(chǎn)生一個核心實(shí)例的處理命令(kernel dispatch command)(亦即,另一個新實(shí)例的處理命令(kernel dispatch command))。以上又稱為啟動硬件執(zhí)行線程(hardware thread kick-off)。接著,存儲器存取單元160將實(shí)體執(zhí)行線程識別緩存器161中的啟動硬件執(zhí)行線程的基本輪廓數(shù)據(jù)移除。于此須注意的是,當(dāng)環(huán)形緩存器200中的第一個硬件執(zhí)行線程的命令尚未就緒而較晚初始的硬件執(zhí)行線程的命令已經(jīng)就緒,存儲器存取單元160不會啟動任何的硬件執(zhí)行線程,用以確保硬件執(zhí)行線程可依初始順序執(zhí)行。
[0015]在此須注意的是,執(zhí)行單元130不需要具備操作環(huán)形緩存器200的知識,而是委由存儲器存取單元160完成。因?yàn)榇鎯ζ鞔嫒卧?60為操作視訊存儲器170的控制器,把操作環(huán)形緩存器200的邏輯放置于存儲器存取單元160可提升推核心入隊(duì)列的效率。
[0016]圖3是依據(jù)本發(fā)明實(shí)施例的由裝置端推核心入隊(duì)列的示意圖。假設(shè)執(zhí)行單元130產(chǎn)生四個硬件執(zhí)行線程310a至310d,每個硬件執(zhí)行線程于執(zhí)行時寫入η個命令至環(huán)形緩存器200中的配置空間:首先,存儲器存取單元160為硬件執(zhí)行線程310a至310d請求視訊存儲器170配置環(huán)形緩存器200中的空間330a至330d。請求配置空間的順序分別為第二硬件執(zhí)行線程310a、第三硬件執(zhí)行線程310b、第零硬件執(zhí)行線程310c及第一硬件執(zhí)行線程310d。當(dāng)配置空間成功,視訊存儲器170回復(fù)存儲器存取單元160尾地址Tail_2、Tail_3、Tail_0及Tail_1,并且儲存每個硬件執(zhí)行線程的基本輪廓數(shù)據(jù)161a至161d至實(shí)體執(zhí)行線程識別緩存器161,例如硬件識別碼、回復(fù)的尾地址以及就緒旗標(biāo)。就緒旗標(biāo)初始為“0”,代表相應(yīng)硬件執(zhí)行線程還未執(zhí)行完。舉例來說,如步驟(1)所示,存儲器存取單元160為硬件執(zhí)行線程310a請求視訊存儲器170配置空間330a并取得尾地址Tail_2,并且,如步驟(2)所示,將硬件執(zhí)行線程310a的基本輪廓數(shù)據(jù)161a儲存至實(shí)體執(zhí)行線程識別緩存器161。接著,存儲器存取單元160寫入第零硬件執(zhí)行線程310c的η個命令完畢后,更新基本輪廓數(shù)據(jù)161c中的就緒旗標(biāo)為“1”,代表第零硬件執(zhí)行線程310c已經(jīng)就緒。然而,為保證命令執(zhí)行的順序性,由于第二硬件執(zhí)行線程310a及第三硬件執(zhí)行線程310b的命令尚未就緒,已寫入空間330c的η個命令不能執(zhí)行。如步驟(3)所示,存儲器存取單元160寫入第二硬件執(zhí)行線程310a的η個命令至環(huán)形緩存器200。當(dāng)?shù)诙布?zhí)行線程310a的η個命令寫入完成,如步驟(4)所示,更新基本輪廓數(shù)據(jù)161a中的就緒旗標(biāo)為“1”,代表第二硬件執(zhí)行線程310a已經(jīng)就緒。最后,如步驟(5)所示,存儲器存取單元160讀取環(huán)形緩存器200中的第二硬件執(zhí)行線程310a的所有命令,并寫入至命令串處理器120中的存儲器映射輸入輸出寄存器,用以指示命令串處理器120執(zhí)行這些命令。
[0017]雖然圖1中包含了以上描述的組件,但不排除在不違反發(fā)明的精神下,使用更多其它的附加組件,已達(dá)成更佳的技術(shù)效果。
[0018]雖然本發(fā)明使用以上實(shí)施例進(jìn)行說明,但需要注意的是,這些描述并非用以限縮本發(fā)明。相反地,此發(fā)明涵蓋了熟習(xí)此技藝人士顯而易見的修改與相似設(shè)置。所以,申請權(quán)利要求范圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設(shè)置。
[0019]【符號說明】
[0020](1)、…、(5)步驟;110顯示驅(qū)動器;
[0021 ] 120命令串處理器;130執(zhí)行單元;
[0022]131a、...、131m 運(yùn)算邏輯單元;
[0023]133通用寄存器文檔;140固定流水線單元;
[0024]141載入/儲存單元;143高速緩存存儲器;
[0025]160存儲器存取單元;161實(shí)體執(zhí)行線程識別緩存器;
[0026]161a、基本輪廓數(shù)據(jù);
[0027]170視訊存儲器;200環(huán)形緩存器;
[0028]310a、."、310d 硬件執(zhí)行線程;
[0029]330a、-^330(1環(huán)形緩存器中的空間;
[0030]RB_head環(huán)形緩存器的首地址;
[0031 ] RB_tail環(huán)形緩存器的尾地址;
[0〇32] RB_locked_tail環(huán)形緩存器的鎖定尾地址;
[0033]Tail_0第零硬件執(zhí)行線程的尾地址;
[0034]Tail_l第一硬件執(zhí)行線程的尾地址;
[0035]Tail_2第二硬件執(zhí)行線程的尾地址;
[0036]Tail_3第三硬件執(zhí)行線程的尾地址。
【主權(quán)項(xiàng)】
1.一種由裝置端推核心入隊(duì)列的裝置,包含: 一存儲器存取單元;以及 一命令串處理器,耦接于上述存儲器存取單元,用以從上述存儲器存取單元接收一第一命令時,執(zhí)行環(huán)形緩存器中的命令,使得執(zhí)行單元根據(jù)核心的指令指示存儲器存取單元為第一硬件執(zhí)行線程在環(huán)形緩存器中配置空間,然后寫入上述第一硬件執(zhí)行線程包含的多個第二命令至上述環(huán)形緩存器中的上述空間。2.如權(quán)利要求1所述的由裝置端推核心入隊(duì)列的裝置,其中,通用寄存器文檔的設(shè)定值關(guān)聯(lián)于一非高速緩存隨機(jī)存取視圖儲存指令,用以寫入上述第二命令至上述環(huán)形緩存器中的上述空間,而不暫存上述第二命令于一高速緩存存儲器。3.如權(quán)利要求2所述的由裝置端推核心入隊(duì)列的裝置,更包含: 上述執(zhí)行單元,用以于指示上述存儲器存取單元寫入上述最后一個第二命令后,發(fā)出一信號給上述存儲器存取單元,上述信號指示上述第一硬件執(zhí)行線程執(zhí)行完成。4.如權(quán)利要求2所述的由裝置端推核心入隊(duì)列的裝置,其中上述第二命令中的每一者指示上述命令串處理器產(chǎn)生上述核心的一子核心實(shí)例的處理命令。5.如權(quán)利要求1所述的由裝置端推核心入隊(duì)列的裝置,其中,使用一原子指令指示上述存儲器存取單元為上述第一硬件執(zhí)行線程在上述環(huán)形緩存器中配置上述空間。6.—種由裝置端推核心入隊(duì)列的裝置,包含: 一命令串處理器;以及 一存儲器存取單元,耦接于上述命令串處理器及一視訊存儲器,包含一實(shí)體執(zhí)行線程識別緩存器, 其中,上述視訊存儲器包含一環(huán)形緩存器,上述存儲器存取單元根據(jù)上述命令串處理器的一第一指令為一核心的一第一硬件執(zhí)行線程在上述環(huán)形緩存器中配置一空間,將上述第一硬件執(zhí)行線程的一基本輪廓數(shù)據(jù)儲存至上述實(shí)體執(zhí)行線程識別緩存器,上述基本輪廓數(shù)據(jù)包含一執(zhí)行線程識別碼、上述空間的一尾地址及一就緒旗標(biāo),上述就緒旗標(biāo)指出上述第一硬件執(zhí)行線程包含的多個第一命令尚未就緒。7.如權(quán)利要求6所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元更判斷是否需要從上述環(huán)形緩存器的一首地址開始配置上述空間;若是,從上述環(huán)形緩存器的上述首地址開始配置上述空間給上述第一硬件執(zhí)行線程;以及,否則,從上述實(shí)體執(zhí)行線程識別緩存器的最后一個硬件執(zhí)行線程的尾地址的下一個地址開始配置上述空間給上述第一硬件執(zhí)行線程。8.如權(quán)利要求7所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元更判斷上述實(shí)體執(zhí)行線程識別緩存器的最后一個硬件執(zhí)行線程的尾地址是否等于或超過上述環(huán)形緩存器的尾地址;若是,判斷需要從上述環(huán)形緩存器的上述首地址開始配置上述空間。9.如權(quán)利要求6所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元根據(jù)一載入/儲存單元的一第二指令將上述第一硬件執(zhí)行線程的上述第一命令寫入上述環(huán)形緩存器的上述配置空間,每一上述第一命令于執(zhí)行時產(chǎn)生上述核心的一子核心實(shí)例的處理命令。10.如權(quán)利要求9所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元偵測到上述第一硬件執(zhí)行線程執(zhí)行完成的一信號,更改上述基本輪廓數(shù)據(jù)的上述就緒旗標(biāo),用以指出關(guān)聯(lián)于上述第一件執(zhí)行線程的上述第一命令已經(jīng)就緒。11.如權(quán)利要求6所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元周期性判斷上述實(shí)體執(zhí)行線程識別緩存器中頂端的硬件執(zhí)行線程的多個第二命令是否就緒;若是,指示上述命令串處理器執(zhí)行上述第二命令。12.如權(quán)利要求11所述的由裝置端推核心入隊(duì)列的裝置,其中,上述存儲器存取單元寫入上述相應(yīng)硬件執(zhí)行線程對應(yīng)的環(huán)形緩存器的頭尾地址至上述命令串處理器中的一存儲器映射輸入輸出寄存器,用以指示上述命令串處理器執(zhí)行上述第二命令。13.如權(quán)利要求6所述的由裝置端推核心入隊(duì)列的裝置,其中,上述實(shí)體執(zhí)行線程識別緩存器依序儲存上述環(huán)形緩存器中多個硬件執(zhí)行線程的基本輪廓數(shù)據(jù)。
【專利摘要】本發(fā)明的實(shí)施例提出一種由裝置端推核心入隊(duì)列的裝置,包含存儲器存取單元及命令串處理器。命令串處理器耦接于存儲器存取單元,用以從存儲器存取單元接收第一命令時,執(zhí)行環(huán)形緩存器中的命令。執(zhí)行單元根據(jù)核心的指令指示存儲器存取單元為硬件執(zhí)行線程在環(huán)形緩存器中配置空間,然后寫入硬件執(zhí)行線程包含的多個第二命令至環(huán)形緩存器中的空間。
【IPC分類】G06F9/38, G06F15/80
【公開號】CN105446939
【申請?zhí)枴緾N201510885446
【發(fā)明人】武鳳霞, 洪洲, 沈恬, 王淵峰
【申請人】上海兆芯集成電路有限公司
【公開日】2016年3月30日
【申請日】2015年12月4日