基于多核處理器芯片的數(shù)據(jù)處理方法、裝置以及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及基于多核處理器芯片的數(shù)據(jù)處理方法、裝 置以及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著計算機體系結(jié)構(gòu)技術(shù)的發(fā)展,處理器芯片上集成多核(Multi-Core)乃至眾 核(Many Core)的架構(gòu)逐漸成為主流,這類架構(gòu)的芯片被稱為多核處理器芯片,也被稱為片 上多核(Chip Multi-Processors, CMPs)芯片。如圖1所示,現(xiàn)有的多核處理器芯片一般 米用了非均勻的緩存結(jié)構(gòu)(Non-Uniformed Cache Architecture, NUCA),具體即每個處理 器核(Core)私有一級緩存(Levellcache),而一個多核處理器芯片的各個處理器核邏輯上 共享二級緩存(L eVe12CaChe)。各個處理器核私有的一級緩存一般包含了一級數(shù)據(jù)緩存和 一級指令緩存,主要存儲了該一級緩存對應(yīng)的處理器核在運行時的部分待處理數(shù)據(jù)和操作 指令。多核處理器芯片的待處理數(shù)據(jù)主要存儲于二級緩存上,所以二級緩存一般總?cè)萘枯^ 大。從物理上來看,二級緩存分布于整個多核處理器芯片的各個處理器核附近,并通過片上 網(wǎng)絡(luò)(Network on Chip, NoC)互連,一般的,每個處理器核對應(yīng)有一個二級緩存,類似的還 可以用片上隨機存取存儲器(Random Access Memory, RAM)替代二級緩存。
[0003] 與該多核處理器芯片的架構(gòu)對應(yīng)的,當(dāng)多核處理器芯片運行某一應(yīng)用時,該應(yīng)用 往往被劃分成多個線程并分發(fā)到該多核處理器芯片的多個處理器核上進行并行執(zhí)行,多個 處理器核運行過程中交互不足,影響多核處理器芯片運行效率。
【發(fā)明內(nèi)容】
[0004] 針對上述現(xiàn)有技術(shù)而提出本發(fā)明,利用本發(fā)明可以解決現(xiàn)有技術(shù)方案中多核處理 器芯片的多個處理器核并行處理應(yīng)用時交互不足對其處理效率的造成的影響。
[0005] 本發(fā)明實施例的第一方面提供了一種基于多核處理器芯片的數(shù)據(jù)處理方法,其特 征在于,所述多核處理器芯片至少包括第一處理器核、第二處理器核,所述數(shù)據(jù)處理方法包 括:所述第一處理器核獲取數(shù)據(jù)處理任務(wù),所述數(shù)據(jù)處理任務(wù)包括處理操作的標(biāo)識、待處理 數(shù)據(jù)的存儲地址;所述第一處理器核確定所述第二處理器核,所述第二處理器核與所述待 處理數(shù)據(jù)的存儲地址對應(yīng),確定第二處理器核也即獲得第二處理器核的標(biāo)識;所述第一處 理器核將所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址發(fā)送給所述第二處理器核,也 即將所述第二處理器核的標(biāo)識、所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址封裝為 數(shù)據(jù)包發(fā)送至片上路由器,片上路由器獲得該數(shù)據(jù)包之后,根據(jù)數(shù)據(jù)包中的第二處理器核 的標(biāo)識,將該數(shù)據(jù)包路由至第二處理器核。所述數(shù)據(jù)處理任務(wù)還可以包括執(zhí)行順序信息,指 示所述第二處理器核按照執(zhí)行順序信息指示的執(zhí)行順序完成數(shù)據(jù)處理任務(wù)。所述數(shù)據(jù)處理 任務(wù)還可以包括執(zhí)行次數(shù)信息,指示所述第二處理器核按照所述執(zhí)行次數(shù)信息指示的執(zhí)行 次數(shù)完成所述數(shù)據(jù)處理任務(wù)。
[0006] 結(jié)合第一方面,在第一方面的第一種實現(xiàn)方式中,第一處理器核獲取第二處理器 核的標(biāo)識具體包括:所述第一處理器核確定所述第二處理器核,所述第二處理器核與所述 待處理數(shù)據(jù)的存儲地址對應(yīng),具體包括:所述第一處理器核,根據(jù)所述待處理數(shù)據(jù)的存儲地 址查詢數(shù)據(jù)存儲表,確定所述第二處理器核,所述數(shù)據(jù)存儲表包含所述待處理數(shù)據(jù)的存儲 地址與所述第二處理器核的標(biāo)識之間的對應(yīng)關(guān)系。
[0007] 結(jié)合第一方面,在第一方面的第二種實現(xiàn)方式中,所述第一處理器核確定所述第 二處理器核,所述第二處理器核與所述待處理數(shù)據(jù)的存儲地址對應(yīng),具體包括:所述第一處 理器核,根據(jù)所述第一處理器核和第二處理器核的負載參數(shù),確定所述第二處理器核,將所 述待處理數(shù)據(jù)的存儲地址與所述第二處理器核的標(biāo)識之間的對應(yīng)關(guān)系,記錄在所述數(shù)據(jù)存 儲表中。
[0008] 結(jié)合第一方面,在第一方面的第三種實現(xiàn)方式中,所述第一處理器核確定所述第 二處理器核,所述第二處理器核與所述待處理數(shù)據(jù)的存儲地址對應(yīng),具體包括:所述第一處 理器核,根據(jù)所述待處理數(shù)據(jù)的存儲地址查詢數(shù)據(jù)存儲表,如查詢到所述待處理數(shù)據(jù)的存 儲地址與所述第二處理器核的標(biāo)識之間的對應(yīng)關(guān)系,則所述第一處理器核根據(jù)所述對應(yīng)關(guān) 系確定所述第二處理器核;如未查詢到所述待處理數(shù)據(jù)的存儲地址與所述第二處理器核的 標(biāo)識之間的對應(yīng)關(guān)系,則所述第一處理器核根據(jù)所述第一處理器核和所述第二處理器核的 負載參數(shù),確定所述第二處理器核,將所述待處理數(shù)據(jù)的存儲地址與所述第二處理器核的 標(biāo)識之間的對應(yīng)關(guān)系,記錄在所述數(shù)據(jù)存儲表中。
[0009] 結(jié)合第一方面的第二種或第三種實現(xiàn)方式,在第一方面的第四種實現(xiàn)方式中,如 所述第二處理器核的負載參數(shù)超過預(yù)設(shè)的閾值,則刪除所述數(shù)據(jù)存儲表中所述待處理數(shù)據(jù) 的存儲地址與所述第二處理器核的標(biāo)識之間的對應(yīng)關(guān)系。
[0010] 結(jié)合第一方面的第一、第二、第三或第四種實現(xiàn)方式,在第一方面的第五種實現(xiàn)方 式中,在所述第一處理器核將所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址發(fā)送給所 述第二處理器核之后,所述方法還包括:所述第二處理器核獲取所述處理操作的標(biāo)識、所述 待處理數(shù)據(jù)的存儲地址,根據(jù)所述處理操作的標(biāo)識確定處理操作,根據(jù)所述待處理數(shù)據(jù)的 存儲地址獲取所述待處理數(shù)據(jù);所述第二處理器核根據(jù)所述處理操作對所述待處理數(shù)據(jù)進 行處理。如果數(shù)據(jù)處理任務(wù)中包括執(zhí)行順序信息的情況下,所述第二處理器核還根據(jù)該執(zhí) 行順序信息對所述待處理數(shù)據(jù)進行處理。如果數(shù)據(jù)處理任務(wù)中包括執(zhí)行次數(shù)信息的情況 下,所述第二處理器核還根據(jù)該執(zhí)行次數(shù)信息對所述待處理數(shù)據(jù)進行處理。所述第二處理 器核在對所述待處理數(shù)據(jù)進行處理后,還可以向所述第一處理器核發(fā)送通知,或?qū)⑻幚斫Y(jié) 果返回給所述第一處理器核。
[0011] 本發(fā)明實施例的第二方面提供了一種數(shù)據(jù)處理裝置,包括:獲取單元,用于獲取數(shù) 據(jù)處理任務(wù),所述數(shù)據(jù)處理任務(wù)包括處理操作的標(biāo)識、待處理數(shù)據(jù)的存儲地址;確定單元, 用于確定所述處理器核,所述處理器核與所述待處理數(shù)據(jù)的存儲地址對應(yīng);發(fā)送單元,用于 將所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址發(fā)送給所述處理器核。
[0012] 結(jié)合第二方面,在第二方面的第一種實現(xiàn)方式中,所述確定單元具體用于:根據(jù)所 述待處理數(shù)據(jù)的存儲地址查詢數(shù)據(jù)存儲表,確定所述處理器核,所述數(shù)據(jù)存儲表包含所述 待處理數(shù)據(jù)的存儲地址與所述處理器核的標(biāo)識之間的對應(yīng)關(guān)系。
[0013] 結(jié)合第二方面,在第二方面的第二種實現(xiàn)方式中,所述確定單元還用于:根據(jù)所述 數(shù)據(jù)處理裝置和所述處理器核的負載參數(shù),確定所述處理器核,將所述待處理數(shù)據(jù)的存儲 地址與所述處理器核的標(biāo)識之間的對應(yīng)關(guān)系,記錄在所述數(shù)據(jù)存儲表中。
[0014] 結(jié)合第二方面,在第二方面的第三種實現(xiàn)方式中,所述確定單元還用于:根據(jù)所述 待處理數(shù)據(jù)的存儲地址查詢數(shù)據(jù)存儲表,如查詢到所述待處理數(shù)據(jù)的存儲地址與所述處理 器核的標(biāo)識之間的對應(yīng)關(guān)系,則根據(jù)所述對應(yīng)關(guān)系確定所述處理器核;如未查詢到所述待 處理數(shù)據(jù)的存儲地址與所述處理器核的標(biāo)識之間的對應(yīng)關(guān)系,則根據(jù)所述數(shù)據(jù)處理裝置和 所述處理器核的負載參數(shù),確定所述處理器核,將所述待處理數(shù)據(jù)的存儲地址與所述處理 器核的標(biāo)識之間的對應(yīng)關(guān)系,記錄在所述數(shù)據(jù)存儲表中。
[0015] 結(jié)合第二方面的第二或第三種實現(xiàn)方式,在第二方面的第四種實現(xiàn)方式中,所述 數(shù)據(jù)處理裝置還包括刪除單元,所述刪除單元,用于如所述處理器核的負載參數(shù)超過預(yù)設(shè) 的負載參數(shù),則刪除所述數(shù)據(jù)存儲表中所述待處理數(shù)據(jù)的存儲地址與所述處理器核的標(biāo)識 之間的對應(yīng)關(guān)系。
[0016] 本發(fā)明實施例的第三方面提供了一種多核處理器芯片,所述多核處理器芯片至 少包括第一處理器核、第二處理器核,所述第一處理器核和所述第二處理器核具有通信連 接;
[0017] 所述第一處理器核,用于獲取數(shù)據(jù)處理任務(wù),所述數(shù)據(jù)處理任務(wù)包括處理操作的 標(biāo)識、待處理數(shù)據(jù)的存儲地址,確定所述第二處理器核,所述第二處理器核與所述待處理數(shù) 據(jù)的存儲地址對應(yīng),以及將所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址發(fā)送給所述 第二處理器核;
[0018] 所述第二處理器核,用于獲取所述處理操作的標(biāo)識、所述待處理數(shù)據(jù)的存儲地址, 根據(jù)所述處理操作的標(biāo)識確定處理操作,根據(jù)所述待處理數(shù)據(jù)的存儲地址獲取所述待處理 數(shù)據(jù),以及根據(jù)所述處理操作對所述待處理數(shù)據(jù)進行處理。
[0019] 結(jié)合第三方面,在第三方面的第一種實現(xiàn)方式中,所述多核處理器芯片還包括存 儲器,所述存儲器用于存儲數(shù)據(jù)存儲表,所述存儲器與所述第一處理器核、所述第二處理器 核具有通信連接;所述第一處理器核確定所述第二處理器核,所述第二處理器核與所述待 處理數(shù)據(jù)的存儲地址對應(yīng)具體包括:所述第一處理器核根據(jù)所述待處理數(shù)據(jù)的存儲地址查 詢所述數(shù)據(jù)存儲表,確定所述第二處理器核,所述數(shù)據(jù)存儲表包含所述待處理數(shù)據(jù)的存儲 地址與所述第二處理器核的標(biāo)識