任務分配方法、任務分配裝置及片上網(wǎng)絡的制作方法
【專利摘要】本發(fā)明實施例提供一種任務分配方法、任務分配裝置及片上網(wǎng)絡,該方法包括:確定待處理任務所包含的線程數(shù)量,在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與線程數(shù)量相等數(shù)量的多個空閑處理器核對應的片上路由器構成的連續(xù)區(qū)域。若此區(qū)域為非矩形區(qū)域,則確定由此區(qū)域擴展的矩形區(qū)域,若擴展的矩形區(qū)域內(nèi)與非空閑處理器核連接的每一個片上路由器的預測流量未超過預設門限值,則將待處理任務的多個線程分配給區(qū)域中的空閑處理器核。本發(fā)明實施例提供的任務分配方法,借助已分配任務的邊界路由器將非矩形區(qū)域擴展成規(guī)則的矩形區(qū)域,由于在任務分配時結合了區(qū)域形狀的靈活性并采用XY路由,從而避免硬件開銷大、網(wǎng)絡吞吐量低、系統(tǒng)利用率低等問題。
【專利說明】任務分配方法、任務分配裝置及片上網(wǎng)絡
【技術領域】
[0001] 本發(fā)明實施例涉及片上多核網(wǎng)絡技術,尤其涉及一種任務分配方法、任務分配裝 置及片上網(wǎng)絡。
【背景技術】
[0002] 隨著超大規(guī)模集成電路(Very Large Scale Integrated Circuits,以下簡稱 VLSI)的集成程度越來越高,同一個芯片上集成的片上處理單元,如存儲單元、信號處理單 元等越來越多,每一片上處理單元相當于一個處理器核,多個處理器核構成多核處理器或 眾核處理器。片上網(wǎng)絡(Network-on-Chip,以下簡稱NoC)是實現(xiàn)多核處理器中不同處理器 核之間數(shù)據(jù)傳輸?shù)闹饕侄巍kS著處理器核數(shù)量的不斷增多,一個任務的多個線程、多個任 務同時運行在同一個處理器核上的情況越來越普遍,若將不同任務各自的線程隨機的分配 給某些處理器核,則在NoC中,運行同一個任務的不同線程的處理器核之間的通信會受到 其他任務的數(shù)據(jù)流的影響,無法保證(Quality of Service,以下簡稱QoS),系統(tǒng)性能降低。 為了避免NoC中隨機分配任務而引起的的任務之間數(shù)據(jù)流的相互干擾,通常采用子網(wǎng)劃分 的方法,即將屬于同一個任務的數(shù)據(jù)流限制在NoC的某一特定區(qū)域中。
[0003] 現(xiàn)有技術中,對NoC中每個片上路由器建立路由表,路由表確定數(shù)據(jù)包從源片上 路由器到目標片上路由器的路由機制。在進行子網(wǎng)劃分時,依靠內(nèi)部的路由算法保證一個 任務的數(shù)據(jù)流下一跳到達的片上路由器是分配給同一任務的片上路由器,路由算法可適用 于任意拓撲,相對復雜,硬件開銷大,不規(guī)則的子網(wǎng)形狀容易產(chǎn)生流量擁塞。圖1為現(xiàn)有技 術中基于路由算法的任務分配方法示意圖。如圖1所示,若任務五中其他片上路由器都需 要和Dest通信,則需要經(jīng)過同一條鏈路,可能導致鏈路擁塞,影響網(wǎng)絡吞吐量。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實施例提供一種任務分配方法、任務分配裝置及片上網(wǎng)絡,用于解決現(xiàn)有 技術中基于路由算法的任務分配方法硬件開銷大、網(wǎng)絡吞吐量低等問題。
[0005] 第一個方面,本發(fā)明實施例提供一種任務分配方法,包括:
[0006] 確定待處理任務所包含的線程數(shù)量;
[0007] 在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量相等數(shù)量的多個空 閑處理器核,其中,每一個所述空閑處理器核連接一個片上路由器;
[0008] 若確定出的與所述空閑處理器核連接的所述片上路由器構成的區(qū)域是非矩形區(qū) 域,則在所述片上網(wǎng)絡中搜索并確定由所述非矩形區(qū)域擴展的矩形區(qū)域;
[0009] 若所述擴展的矩形區(qū)域內(nèi)與非空閑處理器核連接的每一個片上路由器的預測流 量未超過預設門限值,則將所述待處理任務的線程分配給所述空閑處理器核,其中,每一個 所述空閑處理器核分配一個線程。
[0010] 在第一個方面的第一種可能的實現(xiàn)方式中,所述由所述非矩形區(qū)域擴展而成的矩 形區(qū)域為所述片上網(wǎng)絡中包含所述非矩形區(qū)域的最小矩形區(qū)域。 toon] 結合第一個方面或第一個方面的第一種可能的實現(xiàn)方式,在第一個方面的第二種 可能的實現(xiàn)方式中,所述在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量匹 配的多個空閑處理器核之后,所述方法還包括:
[0012] 若確定出的所述空閑處理器核的片上路由器構成的區(qū)域是矩形區(qū)域,則將所述待 處理任務的線程分別分配給所述空閑處理器核,其中,每一個處理器核分配一個線程。
[0013] 結合第一個方面、第一個方面的第一種或第二種可能實現(xiàn)方式中的任一種可能 的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述片上網(wǎng)絡中包括呈行列排列的多個處理器 核;
[0014] 相應的,所述在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量匹配 的多個空閑處理器核,包括:
[0015] 在所述多核處理器構成的片上網(wǎng)絡中確定初始空閑處理器核;
[0016] 以所述初始空閑處理器核為起始點,在多核處理器構成的片上網(wǎng)絡中確定連續(xù) 的、與所述線程數(shù)量匹配的多個空閑處理器核。
[0017] 結合第一個方面的第三種可能的實現(xiàn)方式,在第一個方面的第四種可能的實現(xiàn)方 式中,若確定出的所述空閑處理器核的片上路由器構成的區(qū)域是非矩形區(qū)域,則所述搜索 并確定由所述非矩形區(qū)域擴展而成的矩形區(qū)域,包括:
[0018] 沿與所述初始空閑處理器核連接的片上路由器同行的相鄰片上路由器依次確定 是否存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核;
[0019] 若沿所述同行的相鄰片上路由器依次確定的連續(xù)的第一空閑區(qū)域中的處理器核 的數(shù)量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器連接的片上路由器同列的相鄰 片上路由器依次確定連續(xù)的第二空閑區(qū)域,以使所述第一空閑區(qū)域中的處理器核的數(shù)量和 所述第二空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
[0020] 結合第一個方面的第三種可能的實現(xiàn)方式,在第一個方面的第五種可能的實現(xiàn)方 式中,若確定出的所述空閑處理器核的片上路由器構成的區(qū)域是非矩形區(qū)域,則所述搜索 并確定由所述非矩形區(qū)域擴展而成的矩形區(qū)域,包括:
[0021] 沿與所述初始空閑處理器核連接的片上路由器同列的相鄰片上路由器依次確定 是否存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核;
[0022] 若沿所述同列的相鄰片上路由器依次確定的連續(xù)的第三空閑區(qū)域中的處理器核 數(shù)量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器核連接的片上路由器同行的相鄰 片上路由器依次確定連續(xù)的第四空閑區(qū)域,以使所述第三空閑區(qū)域中的處理器核的數(shù)量和 所述第四空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
[0023] 結合第一個方面、第一個方面的第一種至第五種可能的實現(xiàn)方式中的任一種可能 的實現(xiàn)方式,在第一個方面的第六種可能的實現(xiàn)方式中所述若所述矩形區(qū)域內(nèi)與非空閑處 理器核連接的每一片上路由器的預測流量未超過預設門限值,則在將所述待處理任務中所 包含的線程分別分配給所述空閑處理器核之前,所述方法還包括:
[0024] 根據(jù)所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的歷史流量信息,預測 所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量得到所述預測流量。
[0025] 第二個方面,本發(fā)明實施例提供一種任務分配裝置,包括:
[0026] 第一確定模塊,用于確定待處理任務所包含的線程數(shù)量;
[0027] 第二確定模塊,用于在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù) 量相等數(shù)量的多個空閑處理器核,其中,每一個所述空閑處理器核連接一個片上路由器;
[0028] 第三確定模塊,用于若所述第二確定模塊確定出與所述空閑處理器核連接的所述 片上路由器構成的區(qū)域是非矩形區(qū)域時,在所述片上網(wǎng)絡中搜索并確定由所述非矩形區(qū)域 擴展的矩形區(qū)域;
[0029] 分配模塊,用于若所述第三確定模塊確定出的矩形區(qū)域內(nèi)與非空閑處理器核連接 的每一個片上路由器的預測流量未超過預設門限值,則將所述待處理任務的線程分配給所 述空閑處理器核,其中,每一個所述空閑處理器核分配一個線程。
[0030] 在第二個方面的第一種可能的實現(xiàn)方式中,所述第三確定模塊,具體用于:
[0031] 確定由所述非矩形區(qū)域擴展而成的矩形區(qū)域為所述片上網(wǎng)絡中包含所述非矩形 區(qū)域的最小矩形區(qū)域。
[0032] 結合第二個方面以及第二個方面的第一種可能的實現(xiàn)方式,在第二個方面的第二 種可能的實現(xiàn)方式中,所述分配模塊,還用于:
[0033] 若所述第二確定模塊確定出的與所述多個空閑處理器核連接的片上路由器構成 矩形區(qū)域,則將所述待處理任務的線程分別分配給所述空閑處理器核,其中,每一個處理器 核分配一個線程。
[0034] 結合第二個方面、第二個方面的第一種或第二種可能的實現(xiàn)方式中的任一種可能 的實現(xiàn)方式,在第二個方面的第三種可能的實現(xiàn)方式中,所述第二確定模塊,具體用于: [0035] 在所述多核處理器構成的片上網(wǎng)絡中確定初始空閑處理器核,所述片上網(wǎng)絡中包 括呈行列排列的多個處理器核;
[0036] 以所述初始空閑處理器核為起始點,在多核處理器構成的片上網(wǎng)絡中確定連續(xù) 的、與所述線程數(shù)量匹配的多個空閑處理器核。
[0037] 結合第二個方面的第三種可能的實現(xiàn)方式,在第二個方面的第四種可能的實現(xiàn)方 式中,所述第二確定模塊,具體用于沿與所述初始空閑處理器核連接的片上路由器同行的 相鄰片上路由器依次確定是否存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核;
[0038] 若沿所述同行的相鄰片上路由器依次確定的連續(xù)的第一空閑區(qū)域中的處理器核 的數(shù)量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器連接的片上路由器同列的相鄰 片上路由器依次確定連續(xù)的第二空閑區(qū)域,以使所述第一空閑區(qū)域中的處理器核的數(shù)量和 所述第二空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
[0039] 結合第二個方面的第三種可能的實現(xiàn)方式,在第二個方面的第五種可能的實現(xiàn)方 式中,所述第二確定模塊,具體用于:
[0040] 沿與所述初始空閑處理器核連接的片上路由器同列的相鄰片上路由器依次確定 是否存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核;
[0041] 若沿所述同列的相鄰片上路由器依次確定的連續(xù)的第三空閑區(qū)域中的處理器核 數(shù)量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器核連接的片上路由器同行的相鄰 片上路由器依次確定連續(xù)的第四空閑區(qū)域,以使所述第三空閑區(qū)域中的處理器核的數(shù)量和 所述第四空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
[0042] 結合第二個方面、第二個方面的第一種至第五種可能的實現(xiàn)方式中的任一種可能 的實現(xiàn)方式,在第二個方面的第六種可能的實現(xiàn)方式中,所述任務分配裝置還包括:
[0043] 預測模塊,用于根據(jù)所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的歷史 流量信息,預測所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量得到所述預測 流量。
[0044] 第三個方面,本發(fā)明實施例還提供一種片上網(wǎng)絡,包括多個處理器核、片上路由器 和互連線,以及如上任一所述的任務分配裝置。
[0045] 本發(fā)明實施例提供的任務分配方法、任務分配裝置及片上網(wǎng)絡,通過確定待處理 任務所包含的線程數(shù)量,在片上網(wǎng)絡中確定出與所需線程數(shù)量匹配的多個空閑處理器核構 成的非矩形區(qū)域,借助該非矩形區(qū)域相鄰的邊界片上路由器,使其與該非矩形區(qū)域內(nèi)的空 閑處理器核連接的片上路由器構成規(guī)則的矩形區(qū)域,然后判斷矩形區(qū)域內(nèi)與非空閑處理器 核連接的片上路由器,即邊界片上路由器的流量是否超過預設的門限值,若未超過,則將待 處理任務分配給空閑區(qū)域的處理器核。本發(fā)明實施例提供的任務分配方法,在片上網(wǎng)絡中 閑置的處理器核資源等于或多于待處理任務所需的處理器核的時候,若沒有規(guī)則的矩形區(qū) 域分配該待處理的任務,則借助邊界路由器將非矩形區(qū)域構成規(guī)則的矩形區(qū)域并分配該待 處理的任務,該矩形區(qū)域內(nèi),不需要采用路由表確定數(shù)據(jù)包從源片上路由器到目標片上路 由器的路由機制,而是采用XY路由的方式傳遞數(shù)據(jù)包,避免網(wǎng)絡擁塞、提高網(wǎng)絡吞吐量。
【專利附圖】
【附圖說明】
[0046] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā) 明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0047] 圖1為現(xiàn)有技術中基于路由子網(wǎng)的任務分配方法示意圖;
[0048] 圖2為本發(fā)明任務分配方法實施例一的流程圖;
[0049] 圖3為本發(fā)明任務分配方法實施例二片上網(wǎng)絡的示意圖;
[0050] 圖4A為本發(fā)明任務分配方法實施例三片上網(wǎng)絡的示意圖;
[0051] 圖4B為圖4A中重新搜索矩形區(qū)域的示意圖;
[0052] 圖5A為采用隨機均勻流量模型分析本發(fā)明任務分配方法與基于路由子網(wǎng)的任務 分配方法的示意圖;
[0053] 圖5B為采用位比較流量模型分析本發(fā)明任務分配方法與基于路由子網(wǎng)的任務分 配方法的示意圖;
[0054] 圖5C為采用龍卷風流量模型分析本發(fā)明任務分配方法與基于路由子網(wǎng)的任務分 配方法的示意圖;
[0055] 圖6為本發(fā)明任務分配裝置實施例一的結構示意圖;
[0056] 圖7為本發(fā)明任務分配裝置實施例二的結構示意圖;
[0057] 圖8為本發(fā)明任務分配裝置實施例三的結構示意圖。
【具體實施方式】
[0058] 為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員 在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0059] 圖2為本發(fā)明任務分配方法實施例一的流程圖。本實施例的執(zhí)行主體為任務分配 裝置,其可集成在多核處理器構成的片上網(wǎng)絡中,該裝置可以例如可以是片上網(wǎng)絡中任意 處理器等。本實施例適用于片上網(wǎng)絡中空閑的處理器核資源等于或多于待處理任務所需的 處理器核的場景,具體的,本實施例包括如下步驟:
[0060] 101 :確定待處理任務所包含的線程數(shù)量。
[0061] 任務分配裝置確定待處理任務所包含的線程數(shù)量。一般來說,一個任務所包含的 線程數(shù)量與處理該任務所需的處理器核的數(shù)量是一一對應的。例如,若一個任務包含9個 線程,則需要9個處理器核處理該任務。
[0062] 102:在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與線程數(shù)量相等數(shù)量的多個空 閑處理器核,其中,每一個空閑處理器連接一個片上路由器。
[0063] 片上網(wǎng)絡具有支持同時訪問、可靠性高及可重用性高等特點,由多個處理器核、片 上路由器和互連線(通道)組成。其中,互連線包括片上路由器和處理器核之間的內(nèi)部互連 線、片上路由器之間的外部互連線,每個處理器核與一個片上路由器相連,各個片上路由器 互連成一個網(wǎng)狀結構(Mesh Topology,以下簡稱mesh)。本步驟中,在確定出待處理任務所 包含的線程數(shù)量后,根據(jù)線程數(shù)量,任務分配裝置在多核處理器構成以及片上網(wǎng)絡中確定 連續(xù)的、與該線程數(shù)量相等數(shù)量的多個空閑處理器核以及對應的片上路由器。
[0064] 103:若確定出的與空閑處理器連接的片上路由器構成的區(qū)域非矩形區(qū)域,則在片 上網(wǎng)絡中搜索并確定由非矩形區(qū)域擴展的矩形區(qū)域。
[0065] 當任務分配裝置確定出的連續(xù)的、與線程數(shù)量相等數(shù)量的多個空閑處理器核后, 若與該些空閑處理器核連接的片上路由器構成的區(qū)域是矩形區(qū)域,則直接將待處理任務中 所包含的線程分配給空閑處理器核,每個處理器核分配一個線程;否則,若與該些空閑處理 器核連接的片上路由器構成的區(qū)域是非矩形區(qū)域,則搜索并確定由非矩形區(qū)域擴展的矩形 區(qū)域,此區(qū)域為片上網(wǎng)絡中包含非矩形區(qū)域的最小矩形區(qū)域。例如,一個NoC為5X5的mesh 結構,待處理的任務包含的線程數(shù)量為5個,若確定出的連續(xù)的空閑處理器核為同一列或 同一行的5個處理器核,則將該待處理的任務所包含的5個線程分配給這5個連續(xù)的空閑 處理器核,每個處理器核分配一個線程;若確定出的連續(xù)的空閑處理器核數(shù)量為5個,但是 與該5個處理器核連接的片上路由器構成的區(qū)域為非矩形區(qū)域,即構成的區(qū)域為不規(guī)則形 狀的區(qū)域,則任務分配裝置確定包含該非矩形區(qū)域的矩形區(qū)域,即將已經(jīng)分配任務的非空 閑的處理器核與該非矩形區(qū)域內(nèi)的空閑處理器核組成規(guī)則的矩形區(qū)域。具體的,以該5個 處理器核由第一行的前3個和第二行的前2個組成為例,將第二行的第三個處理器核連接 的片上路由器作為邊界片上路由器,任務分配裝置確定該5個處理器核連接的片上路由器 與該邊界片上路由器構成的矩形區(qū)域。
[0066] 需要說明的是,上述僅是以該5個處理器核由第一行的前3個和第二行的前2個 組成為例對本發(fā)明進行詳細闡述,然而,本發(fā)明并不以此為限制,在其他可能的實施方式 中,連續(xù)的空閑處理器核可以有不同的組合,與該處理器核連接的片上路由器構成的非矩 形區(qū)域也有多種可能的形式,如L型、E型、F型、工字型、I型等,對應的,包含該非矩形區(qū)域 的矩形區(qū)域也有多種可能的形式。
[0067] 104:若擴展的矩形區(qū)域內(nèi)與非空閑處理器連接的每一個片上路由器的流量未超 過預設門限值,則將待處理任務的線程分配給空閑處理器,每一空閑處理器核分配一個線 程。
[0068] 該矩形區(qū)域內(nèi),不需要采用路由表確定數(shù)據(jù)包從源片上路由器到目標片上路由器 的路由機制,而是采用XY路由的方式傳遞數(shù)據(jù)包,即在確定出源片上路由器和目的片上路 由器后,從源片上路由器開始,數(shù)據(jù)包先橫向的傳遞至與目的片上路由器所在的列相交的 中間片上路由器,再堅向的傳遞至目的片上路由器;或者,先堅向的傳遞至與目的片上路由 器所在的行相交的中間片上路由器,再橫向的傳遞至目的片上路由器。
[0069] 在確定出包括非矩形區(qū)域的矩形區(qū)域后,任務分配裝置根據(jù)矩形區(qū)域內(nèi)與非空閑 處理器核連接的片上路由器的歷史流量信息,預測矩形區(qū)域內(nèi)與非空閑處理器核連接的該 片上路由器的流量得到預測流量,判斷預測流量是否超過預設的門限值,若預測流量未超 過預設門限值,則將待處理任務中所包含的線程分別分配給空閑處理器核。
[0070] 本發(fā)明實施例提供的任務分配方法,通過確定待處理任務所包含的線程數(shù)量,在 片上網(wǎng)絡中確定出與所需線程數(shù)量相等數(shù)量的多個空閑處理器核構成的非矩形區(qū)域,借助 與該非矩形區(qū)域相鄰區(qū)域的邊界路由器,使其與該非矩形區(qū)域內(nèi)的片上路由器構成規(guī)則的 矩形區(qū)域,然后判斷矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器,即邊界片上路由器 的流量是否超過預設的門限值,若未超過,則將待處理任務分配給空閑區(qū)域的處理器核。本 發(fā)明實施例提供的任務分配方法,在片上網(wǎng)絡中空閑的處理器核資源等于或多于待處理任 務所需的處理器核的時候,若沒有規(guī)則的矩形區(qū)域分配該待處理的任務,則借助邊界路由 器將非矩形區(qū)域擴展成規(guī)則的矩形區(qū)域并分配該待處理的任務線程,該矩形區(qū)域內(nèi),不需 要采用路由表確定數(shù)據(jù)包從源片上路由器到目標片上路由器的路由機制,而是采用XY路 由的方式傳遞數(shù)據(jù)包,避免了其它任務分配方法硬件開銷大、網(wǎng)絡吞吐量低、系統(tǒng)利用率低 的問題。
[0071] 由上述可知,NoC由片上路由器和互連線(通道)組成,每個處理器核與一個片上路 由器相連,而一個任務所包含的線程數(shù)量與處理該任務所需的處理器核的數(shù)量是一一對應 的。因此,待處理任務所包含的線程數(shù)量、待處理任務所需的處理器核數(shù)量以及所需處理器 核連接的片上路由器的數(shù)量是相等的,處理器核與片上路由器的狀態(tài)一致:同時處于空閑 狀態(tài)或被分配任務狀態(tài),搜索到空閑的片上路由器,即搜索到空閑的處理器核。為使本發(fā)明 實施例更加清楚,以下各個視圖所示的片上網(wǎng)絡中僅示出片上路由器。
[0072] -般來說,片上網(wǎng)絡中包括呈行列排列的多個處理器核,如5X5的片上網(wǎng)絡,包 括5行5列共25個處理器核與25個片上路由器。此時,確定連續(xù)的、與線程數(shù)量匹配的多 個空閑處理器核時,可以按行搜索空閑的處理器核或按照列搜索的方式搜索空閑的處理器 核。以按照行搜索為例,具體的,可以在在多核處理器構成的片上網(wǎng)絡中確定初始空閑處理 器核,沿與初始空閑處理器核連接的片上路由器同行的相鄰片上路由器依次確定是否存在 連續(xù)的、與線程數(shù)量匹配的多個空閑處理器核;若沿同行的相鄰片上路由器依次確定的連 續(xù)的第一空閑區(qū)域中所包含的處理器核的數(shù)量與線程數(shù)量不匹配,則沿與初始空閑處理器 連接的片上路由器同列的相鄰片上路由器依次確定連續(xù)的第二空閑區(qū)域,以使第一空閑區(qū) 域所包含的處理器核的數(shù)量和第二空閑區(qū)域所包含的處理器核的數(shù)量之和與線程數(shù)量匹 配。下面,通過幾個具體的在片上網(wǎng)絡分配任務的實施例對本發(fā)明進行詳細闡述。
[0073] 圖3為本發(fā)明任務分配方法實施例二片上網(wǎng)絡的示意圖。如圖3所示,本實施例 中,NoC為5X5的NoC,多個處理器核呈行列排列,任務隊列中有待處理任務一(4),表不任 務一包含4個線程,需要分配4個處理器核處理該任務。隨機的確定與片上路由器Rl. 1連 接的處理器核為初始空閑處理器核,沿與Rl. 1連接的片上路由器同行的相鄰片上路由器 依次確定連續(xù)的4個空閑的片上路由器,即確定出Rl. 1、R1. 2、R1. 3、R1. 4共4個片上路由 器,該4個片上路由器構成第一空閑區(qū)域,為一個規(guī)則的矩形區(qū)域,則直接將任務一包含的 4個線程分配給R1. 1、R1. 2、R1. 3、R1. 4所在的矩形區(qū)域內(nèi)的處理器核。
[0074] 圖4A為本發(fā)明任務分配方法實施例三片上網(wǎng)絡的示意圖。如圖4A所示,本實施 例中,NoC為5X5的NoC,多個處理器核呈行列排列,0表示高負載片上路由器,ffl表示低 負載片上路由器,□表示空閑片上路由器,亦即,Rl. 1?R1. 3、R2. 1?R2. 4以及R3. 1? R3. 4為高負載片上路由器,RsO. 1?RsO. 6為低負載片上路由器,其余的為空閑路由器。具 體的,判斷片上路由器負載高低的方式可根據(jù)需求設定,例如,某個片上路由器承載的流量 大于預設的門限值時,則判斷其為高負載片上路由器。
[0075] 本實施例中,任務隊列中有待處理任務二(5),表示任務二包含5個線程,需要分 配5個處理器核處理該任務。隨機的確定與片上路由器R5. 0連接的處理器核為初始空閑處 理器核,從R5.0開始搜索連續(xù)的、空閑的片上路由器并判斷是否可以構成矩形區(qū)域,在按 照行或按照列遍歷各種可能的情況后,還未找到符合條件的規(guī)則的矩形區(qū)域,則繼續(xù)按照 行或按照列的搜索方式搜索。具體的,若按照行搜索的方式,則從R5. 0開始搜索第一空閑 區(qū)域,即沿著R5. 0所在的第一行搜索到包含R5. 0、R5. 1、R5. 2、R5. 3共4個空閑的片上路由 器的第一空閑區(qū)域,與任務的線程數(shù)量不匹配,也就是說,第一空閑區(qū)域中所包含的處理器 核的數(shù)量不滿足任務所需的處理器核數(shù),此時,從R5. 0所在的列繼續(xù)搜索第二空閑區(qū)域, 當?shù)诙臻e區(qū)域內(nèi)的處理器核的數(shù)量和第一空閑區(qū)域內(nèi)所包含的處理器核的數(shù)量之和等 于5,即第二空閑區(qū)域中搜索到R5. 4后,空閑片上路由器的個數(shù)與線程數(shù)量相等,且R5.0? R5. 4、RsO. 1、RsO. 2及高負載的片上路由器Rl. 1構成一個規(guī)則的矩形區(qū)域。
[0076] 在上述通過第一空閑區(qū)域和第二空閑區(qū)域確定出一個規(guī)則的矩形區(qū)域后,接下 來,判斷矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量是否超過預設門限值。具 體的,可以根據(jù)矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的歷史流量信息,預測矩 形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量。本實施例中,需要判斷Rs〇. l、Rs〇. 2 及高負載的片上路由器Rl. 1上的流量是否超過預設門限值。以Rl. 1為例,若將任務二分 配給第一空閑區(qū)域和第二空閑區(qū)域確定出的規(guī)則的矩形區(qū)域后,Rl. 1原來承載的流量,如 圖中粗黑箭頭①所示,與被分配任務二后增加的流量,如圖中粗黑箭頭②所示,若兩者之和 未超過預設的門限值,則認為Rl. 1可以共享,進而判斷出可以將任務二分配給該矩形區(qū)域 所包含的處理器核,如圖中虛線框所示,此時,數(shù)據(jù)包在該矩形區(qū)域內(nèi),采用XY路由的方式 傳遞數(shù)據(jù)包。例如若R5. 2為源片上路由器,目的片上路由器為R5. 4,此時,采用XY路由, 可以將數(shù)據(jù)包從R5. 2開始,經(jīng)過R5. 2、R5. 1、R5. 0傳遞至R5. 4,也可以從R5. 2開始,經(jīng)過 RsO. 2、RsO. 1傳遞至R5. 4 ;否則,若將任務二分配給第一空閑區(qū)域和第二空閑區(qū)域確定出 的規(guī)則的矩形區(qū)域使得Rl. 1原來承載的流量與被分配任務二后增加的流量超過預設的門 限值,則認為Rl. 1不可以共享,進而判斷出不可以將任務二分配給該矩形區(qū)域所包含的處 理器核。
[0077] 上述判斷片上路由器所承載的流量后,假設該3個片上路由器中至少其中之一所 承載的流量超過預設的門限值,假設Rl. 1所承載的流量超過預設的門限值。此時,從R5. 0 開始,重新按照行或按照列的搜索方式搜索。具體的,如圖4B所示,圖4B為圖4A中重新搜 索矩形區(qū)域的示意圖。
[0078] 若按照列搜索的方式,則從R5. 0開始搜索第三空閑區(qū)域,即沿著R5. 0所在的第 一列搜索到包含R5. 0、R5. 4、R5. 5共三個空閑的片上路由器的第三空閑區(qū)域,與任務的線 程數(shù)量不匹配,也就是說,第三空閑區(qū)域中所包含的處理器核的數(shù)量不滿足任務所需的處 理器核,此時,從R5.0所在的行繼續(xù)搜索第四空閑區(qū)域,當?shù)谒目臻e區(qū)域內(nèi)的處理器核的 數(shù)量和第三空閑區(qū)域內(nèi)所包含的處理器核的數(shù)量之和等于5,即第四空閑區(qū)域中搜索到 R5. 1、R5. 2之后,空閑片上路由器的個數(shù)與線程數(shù)量相等,且R5. 0、R5. 4、R5. 5、R5. 1、R5. 2、 與第二行、第三行的四個低負載的片上路由器RsO. l、RsO. 2、RsO. 3、RsO. 4構成一個規(guī)則的 矩形區(qū)域。此時,判斷若將任務二分配給第三空閑區(qū)域和第四空閑區(qū)域確定出的規(guī)則的矩 形區(qū)域后,共享的RsO. 1、RsO. 2、RsO. 3、RsO. 4原來承載的流量與被分配任務二后增加的流 量未超過預設的門限值,若該四個共享片上路由器的流量都未超過預設的門限值,則將任 務二分配給該矩形區(qū)域所包含的處理器核,如圖4B中虛線框所示;否則,若其中之一所承 載的流量超過預設的門限值,則表示不能將任務二分配給該矩形區(qū)域,需要重新搜索處理 器核。
[0079] 上述實施例中,若所有的不規(guī)則區(qū)域都無法通過流量預測,則將任務二剛在等待 隊列中等待下一次任務調(diào)度。如在其他任務處理完畢后釋放出更多的處理器核后重新搜索 任務需要的處理器核。
[0080] 需要說明的是,上述實施例中,第一空閑區(qū)域、第二空閑區(qū)域、第三空閑區(qū)域、第四 空閑區(qū)域可以為規(guī)則的矩形區(qū)域,也可以是不規(guī)則的矩形區(qū)域,例如以圖4A為例,若RsO. 1 也為空閑的片上路由器時,則從R5. 0開始搜索到的連續(xù)的、空閑的片上路由器包括R5. 0、 R5. 1、5. 2、R5. 4及RsO. 1 ;若RsO. 2為空閑的片上路由器,R5. 4、RsO. 1、R1. 1為非空閑片上 路由器時,則從R5. 0開始搜索到的連續(xù)的、空閑片上路由器包括R5. 0、R5. 1、R5. 2、RsO. 2、 R5. 3。
[0081] 為了清楚對比本發(fā)明的任務分配方法與現(xiàn)有技術中基于路由子網(wǎng)的任務分配方 法的有益效果,下面,采用不用的流量模型分析本發(fā)明的技術方案與現(xiàn)有的技術方案。
[0082] 圖5A為采用隨機均勻流量模型分析本發(fā)明任務分配方法與基于路由子網(wǎng)的任務 分配方法的示意圖。如圖5A所示,隨機均勻流量模型(Uniform)中,橫坐標為注入率,可以 理解為片上網(wǎng)絡的處理器核的利用率;縱坐標為延時時長;一&代表本發(fā)明注入率與延 時時長的對應曲線;代表基于路由子網(wǎng)的任務分配方法中注入率與延時時長的對 應曲線。
[0083] 由圖5A所示,在注入率為0?6ΧΚΓ3時,整個片上網(wǎng)絡的處理器核的利用率不 高,此時,本發(fā)明的技術方案與現(xiàn)有的技術方案的的延時時長基本相等。但是,隨著處理器 核的利用率越來越高,同一個延時時長對應的本發(fā)明的技術方案與現(xiàn)有的技術方案的差別 就越大,基于路由子網(wǎng)的任務分配方法中,注入率越大,延時時長相應的越大,表示片上網(wǎng) 絡的性能越差,即延遲明顯升高,網(wǎng)絡吞吐量低,而本發(fā)明任務分配方法中,注入率越大,延 時時長相對增加緩慢,表示片上網(wǎng)絡的性能高,即延遲升高不明顯,網(wǎng)絡吞吐量高。
[0084] 圖5B為采用位比較流量模型分析本發(fā)明任務分配方法與基于路由子網(wǎng)的任務分 配方法的示意圖。同理,如圖5A,圖5B所示位比較流量(Bitcomp)流量模型中,橫坐標為注 入率,可以理解為片上網(wǎng)絡的處理器核的利用率;縱坐標為延時時長;
【權利要求】
1. 一種任務分配方法,其特征在于: 確定待處理任務所包含的線程數(shù)量; 在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量相等數(shù)量的多個空閑處 理器核,其中,每一個所述空閑處理器核連接一個片上路由器; 若確定出的與所述空閑處理器核連接的所述片上路由器構成的區(qū)域是非矩形區(qū)域,則 在所述片上網(wǎng)絡中搜索并確定由所述非矩形區(qū)域擴展的矩形區(qū)域; 若所述擴展的矩形區(qū)域內(nèi)與非空閑處理器核連接的每一個片上路由器的預測流量未 超過預設門限值,則將所述待處理任務的線程分配給所述空閑處理器核,其中,每一個所述 空閑處理器核分配一個線程。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述由所述非矩形區(qū)域擴展而成的矩形 區(qū)域為所述片上網(wǎng)絡中包含所述非矩形區(qū)域的最小矩形區(qū)域。
3. 根據(jù)權利要求1或2所述的方法,其特征在于,所述在多核處理器構成的片上網(wǎng)絡中 確定連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核之后,所述方法還包括: 若確定出的所述空閑處理器核的片上路由器構成的區(qū)域是矩形區(qū)域,則將所述待處理 任務的線程分別分配給所述空閑處理器核,其中,每一個處理器核分配一個線程。
4. 根據(jù)權利要求1?3任一項所述的方法,其特征在于,所述片上網(wǎng)絡中包括呈行列排 列的多個處理器核; 相應的,所述在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量匹配的多 個空閑處理器核,包括: 在所述多核處理器構成的片上網(wǎng)絡中確定初始空閑處理器核; 以所述初始空閑處理器核為起始點,在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與 所述線程數(shù)量匹配的多個空閑處理器核。
5. 根據(jù)權利要求4所述的方法,其特征在于,若確定出的所述空閑處理器核的片上路 由器構成的區(qū)域是非矩形區(qū)域,則所述搜索并確定由所述非矩形區(qū)域擴展而成的矩形區(qū) 域,包括: 沿與所述初始空閑處理器核連接的片上路由器同行的相鄰片上路由器依次確定是否 存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核; 若沿所述同行的相鄰片上路由器依次確定的連續(xù)的第一空閑區(qū)域中的處理器核的數(shù) 量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器連接的片上路由器同列的相鄰片上 路由器依次確定連續(xù)的第二空閑區(qū)域,以使所述第一空閑區(qū)域中的處理器核的數(shù)量和所述 第二空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
6. 根據(jù)權利要求4所述的方法,其特征在于,若確定出的所述空閑處理器核的片上路 由器構成的區(qū)域是非矩形區(qū)域,則所述搜索并確定由所述非矩形區(qū)域擴展而成的矩形區(qū) 域,包括: 沿與所述初始空閑處理器核連接的片上路由器同列的相鄰片上路由器依次確定是否 存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核; 若沿所述同列的相鄰片上路由器依次確定的連續(xù)的第三空閑區(qū)域中的處理器核數(shù)量 與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器核連接的片上路由器同行的相鄰片上 路由器依次確定連續(xù)的第四空閑區(qū)域,以使所述第三空閑區(qū)域中的處理器核的數(shù)量和所述 第四空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
7. 根據(jù)權利要求1?6任一項所述的方法,其特征在于,所述若所述矩形區(qū)域內(nèi)與非空 閑處理器核連接的每一片上路由器的預測流量未超過預設門限值,則在將所述待處理任務 中所包含的線程分別分配給所述空閑處理器核之前,所述方法還包括: 根據(jù)所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的歷史流量信息,預測所述 矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量得到所述預測流量。
8. -種任務分配裝置,其特征在于,包括: 第一確定模塊,用于確定待處理任務所包含的線程數(shù)量; 第二確定模塊,用于在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與所述線程數(shù)量相 等數(shù)量的多個空閑處理器核,其中,每一個所述空閑處理器核連接一個片上路由器; 第三確定模塊,用于若所述第二確定模塊確定出的與所述空閑處理器核連接的所述片 上路由器構成的區(qū)域是非矩形區(qū)域時,在所述片上網(wǎng)絡中搜索并確定由所述非矩形區(qū)域擴 展的矩形區(qū)域; 分配模塊,用于若所述第三確定模塊確定出的矩形區(qū)域內(nèi)與非空閑處理器核連接的每 一個片上路由器的預測流量未超過預設門限值,則將所述待處理任務的線程分配給所述空 閑處理器核,其中,每一個所述空閑處理器核分配一個線程。
9. 根據(jù)權利要求8所述的任務分配裝置,其特征在于,所述第三確定模塊,具體用于: 確定由所述非矩形區(qū)域擴展而成的矩形區(qū)域為所述片上網(wǎng)絡中包含所述非矩形區(qū)域 的最小矩形區(qū)域。
10. 根據(jù)權利要求8或9所述的任務分配裝置,其特征在于,所述分配模塊,還用于: 若所述第二確定模塊確定出的與所述多個空閑處理器核連接的片上路由器構成矩形 區(qū)域,則將所述待處理任務的線程分別分配給所述空閑處理器核,其中,每一個處理器核分 配一個線程。
11. 根據(jù)權利要求8?10任一項所述的任務分配裝置,其特征在于,所述第二確定模 塊,具體用于: 在所述多核處理器構成的片上網(wǎng)絡中確定初始空閑處理器核,所述片上網(wǎng)絡中包括呈 行列排列的多個處理器核; 以所述初始空閑處理器核為起始點,在多核處理器構成的片上網(wǎng)絡中確定連續(xù)的、與 所述線程數(shù)量匹配的多個空閑處理器核。
12. 根據(jù)權利要求11所述的任務分配裝置,其特征在于,所述第二確定模塊,具體用于 沿與所述初始空閑處理器核連接的片上路由器同行的相鄰片上路由器依次確定是否存在 連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核; 若沿所述同行的相鄰片上路由器依次確定的連續(xù)的第一空閑區(qū)域中的處理器核的數(shù) 量與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器連接的片上路由器同列的相鄰片上 路由器依次確定連續(xù)的第二空閑區(qū)域,以使所述第一空閑區(qū)域中的處理器核的數(shù)量和所述 第二空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
13. 根據(jù)權利要求11所述的任務分配裝置,其特征在于,所述第二確定模塊,具體用 于: 沿與所述初始空閑處理器核連接的片上路由器同列的相鄰片上路由器依次確定是否 存在連續(xù)的、與所述線程數(shù)量匹配的多個空閑處理器核; 若沿所述同列的相鄰片上路由器依次確定的連續(xù)的第三空閑區(qū)域中的處理器核數(shù)量 與所述線程數(shù)量不匹配,則沿與所述初始空閑處理器核連接的片上路由器同行的相鄰片上 路由器依次確定連續(xù)的第四空閑區(qū)域,以使所述第三空閑區(qū)域中的處理器核的數(shù)量和所述 第四空閑區(qū)域中的處理器核的數(shù)量之和與所述線程數(shù)量相等。
14. 根據(jù)權利要求8-13任一項所述的任務分配裝置,其特征在于,所述任務分配裝置 還包括: 預測模塊,用于根據(jù)所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的歷史流 量信息,預測所述矩形區(qū)域內(nèi)與非空閑處理器核連接的片上路由器的流量得到所述預測流 量。
15. -種片上網(wǎng)絡,包括多個處理器核、片上路由器和互連線,其特征在于,還包括如權 利要求8?14任一所述的任務分配裝置。
【文檔編號】G06F9/50GK104156267SQ201310177172
【公開日】2014年11月19日 申請日期:2013年5月14日 優(yōu)先權日:2013年5月14日
【發(fā)明者】路航, 韓銀和, 付斌章, 李曉維 申請人:華為技術有限公司, 中國科學院計算技術研究所