專利名稱:一種處理循環(huán)任務(wù)的方法、系統(tǒng)和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及片上系統(tǒng)芯片領(lǐng)域,特別涉及一種處理循環(huán)任務(wù)的方法、系統(tǒng)和 設(shè)備。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,片上系統(tǒng)芯片的應(yīng)用程序的數(shù)據(jù)量越來越大,運(yùn)行 時(shí)間也越來越長,而應(yīng)用程序中的循環(huán)任務(wù)在程序的總運(yùn)行時(shí)間中占據(jù)了較高 的比例。
目前,在處理應(yīng)用程序中的循環(huán)任務(wù)時(shí),主要有兩種方式
一種是采用片上系統(tǒng)芯片的處理器來執(zhí)行循環(huán)任務(wù),需要將循環(huán)任務(wù)展開,
串行的執(zhí)行每一個(gè)循環(huán);對于循環(huán)體內(nèi)并行的運(yùn)算,也需要將其轉(zhuǎn)化為串行的
執(zhí)行順序。
另 一種是采用片上系統(tǒng)芯片中的處理器和硬件加速才莫塊協(xié)同工作的方式執(zhí) 行循環(huán)任務(wù)。其中,處理器在處理數(shù)據(jù)時(shí)靈活性高且善于對數(shù)據(jù)進(jìn)行控制,但 其運(yùn)算能力較差;硬件加速模塊運(yùn)算能力強(qiáng),善于進(jìn)行大規(guī)模的運(yùn)算,被集成 在片上系統(tǒng)芯片內(nèi),克服了處理器運(yùn)算能力差的缺陷。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術(shù)至少具有以下缺點(diǎn) 釆用處理器來執(zhí)行循環(huán)任務(wù),尤其是計(jì)算量^[艮大的循環(huán)任務(wù),由于處理器自 身結(jié)構(gòu)的限制,內(nèi)部只有一個(gè)運(yùn)算單元,串行的執(zhí)行每個(gè)循環(huán)使得運(yùn)行時(shí)間很 長,降低了用戶的使用體驗(yàn);采用片上系統(tǒng)芯片中的處理器和硬件加速模塊協(xié) 同工作的方式執(zhí)行循環(huán)任務(wù),由于目前硬件加速才莫塊為專用電路,只執(zhí)行某一 種類型的循環(huán)任務(wù),對于其他類型的循環(huán)任務(wù)無法執(zhí)行,導(dǎo)致執(zhí)行的循環(huán)任務(wù) 單一受限。
發(fā)明內(nèi)容
為了解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間較長的問題,提高循環(huán)任務(wù)的運(yùn)行
7速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,本發(fā)明實(shí)施例提供了一種處理循環(huán)任務(wù)的 方法、系統(tǒng)和^1備,具體如下。
本發(fā)明實(shí)施例提供了 一種處理循環(huán)任務(wù)的方法,所述方法應(yīng)用于可重構(gòu)陣
列協(xié)處理器,所述方法包括
配置信息寄存器模塊接收來自總線的配置信息,所述配置信息包括輸入FIFO 配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
循環(huán)控制器模塊從所述配置信息寄存器模塊獲取所述配置信息,并將所述輸 入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIFO配置信息發(fā)送給所 述輸出FIF0模塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元; 所述輸入FIFO模塊根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù); 所述輸入選擇模塊根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC輸 入寄存器組特定的位置;
所述可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一行可重 構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通 過路由^^莫塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;
所述輸出選擇模塊根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸出的運(yùn) 算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IF0模塊;
所述輸出FIF0模塊根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。
其中,所述輸入FIFO配置信息、所述輸出FIFO配置信息、所述運(yùn)算單元 配置信息分別對所述輸入FIFO模塊、所述輸出FIFO模塊、所述運(yùn)算單元配置, 所述輸入FIFO模塊、所述輸出FIF0模塊、所述運(yùn)算單元的控制相互獨(dú)立且分 別有多套配置信息寄存器。
其中,所述循環(huán)控制器模塊從所述配置信息寄存器模塊獲取所述配置信息 的步驟,還包括
所述循钚控制器模塊根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制所述 配置信息寄存器模塊是否從總線上讀取輸入FIFO配置信息、輸出FIFO配置信 息、運(yùn)算單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入所述配置信息寄存 器模塊中的第幾套配置信息寄存器。
其中,所述可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),并將每 一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,具體包括
所述運(yùn)算單元執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在可 重構(gòu)單元陣列上執(zhí)行,將每一行可重構(gòu)單元陣列的運(yùn)算結(jié)果通過路由模塊輸入 到下一行,如果當(dāng)前行為可重構(gòu)單元陣列的最后一行,則通過路由模塊將運(yùn)算
結(jié)果輸入到可重構(gòu)單元陣列的第一行;并根據(jù)運(yùn)算單元配置信息將運(yùn)算結(jié)果輸 入到所述臨葉數(shù)據(jù)模塊緩存,以便于根據(jù)運(yùn)算單元配置信息在某個(gè)執(zhí)行步驟中 獲取所緩存的凄史據(jù)。
本發(fā)明實(shí)施例提供了一種處理循環(huán)任務(wù)的系統(tǒng),所述系統(tǒng)包括控制單元 和運(yùn)算單元,其中,
所述控制單元包括配置信息寄存器模塊、循環(huán)控制器模塊、輸入FIFO模 塊、輸出FIFO模塊、輸入選擇模塊和輸出選擇模塊;
所述配置信息寄存器模塊,用于接收來自總線的配置信息,所述配置信息 包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
循環(huán)控制器模塊,用于從所述配置信息寄存器模塊獲取所述配置信息,并將 所述輸入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIFO配置信息發(fā) 送給所述輸出FIF0模塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元; 所述輸入FIFO模塊,用于根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù); 所述輸入選擇模塊,用于4艮據(jù)運(yùn)算單元配置信息將輸入FIF0中的數(shù)據(jù)寫入 到RC輸入寄存器組特定的位置;
所述輸出選擇模塊,用于根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸 出的運(yùn)算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IFO模塊;
所述輸出FIFO模塊,用于根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。
所述RC輸入寄存器組,用于根據(jù)所述運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入 到所述運(yùn)算單元中;
所述運(yùn)算單元包括可重構(gòu)單元陣列、路由模塊和臨時(shí)數(shù)據(jù)模塊,
所述可重構(gòu)單元陣列,用于根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一
行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)^:莫塊
中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;
所述路由模塊,用于將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果輸入到下一 行可重構(gòu)單元陣列;所述臨時(shí)數(shù)據(jù)模塊,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列的運(yùn) 算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu)單元 陣列中。
其中,所述輸入FIFO配置信息、所述輸出FIFO配置信息、所述運(yùn)算單元 配置信息分別對所述輸入FIFO模塊、所述輸出FIFO模塊、所述運(yùn)算單元配置, 所述輸入FIFO才莫塊、所述輸出FIF0模塊、所述運(yùn)算單元的控制相互獨(dú)立且分 別有多套配置信息寄存器。
本發(fā)明實(shí)施例還提供了一種可重構(gòu)陣列協(xié)處理器設(shè)備,所述設(shè)備包括控 制單元和運(yùn)算單元,
所述控制單元,用于控制所述運(yùn)算單元同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后 產(chǎn)生的輸出結(jié)果輸出;
所迷運(yùn)算單元,用于在所述控制單元的控制下扭j亍多次循環(huán)任務(wù)。
其中,所述控制單元包括配置信息寄存器模塊、循環(huán)控制器模塊、輸入 FIF0模塊、輸出FIFO模塊、輸入選擇模塊和輸出選擇模塊,
所述配置信息寄存器模塊,用于接收來自總線的配置信息,所述配置信息 包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
循環(huán)控制器模塊,用于從所述配置信息寄存器模塊獲取所述配置信息,并 將所述輸入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIFO配置信息 發(fā)送給所述輸出FIF0模塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元;
所述輸入FIFO模塊,用于根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù);
所述輸入選擇模塊,用于根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入 到RC輸入寄存器組特定的位置;
所述輸出選擇模塊,用于根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸 出的運(yùn)算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IFO模塊;
所述輸出FIFO模塊,用于根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。
所述RC輸入寄存器組,用于根據(jù)所述運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入 到所述運(yùn)算單元中。
其中,所述運(yùn)算單元包括可重構(gòu)單元陣列、路由模塊和臨時(shí)數(shù)據(jù)模塊,
所述可重構(gòu)單元陣列,用于根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一 行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊
10中和通過路由^=莫塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;
所述路由模塊,用于將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果輸入到下一
行可重構(gòu)單元陣列;
所述臨時(shí)數(shù)據(jù)模塊,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列的運(yùn) 算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu)單元 陣列中。
其中,所述配置信息寄存器模塊,具體用于分別對所述輸入FIFO模塊、所 述輸出FIFO沖莫塊、所述運(yùn)算單元配置所述輸入FIFO配置信息、所述輸出FIFO 配置信息、所述運(yùn)算單元配置信息,以使得所述輸入FIFO模塊、所述輸出FIFO 模塊、所述運(yùn)算單元的控制相互獨(dú)立且分別有多套配置信息寄存器。
其中,所述循環(huán)控制器模塊,還用于根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài) 寄存器控制所述配置信息寄存器模塊是否從總線上讀取輸入FIFO配置信息、輸 出FIFO配置信息、運(yùn)算單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入所述 配置信息寄存器模塊中的第幾套配置信息寄存器。
其中,所述可重構(gòu)單元陣列具體用于,執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作 方式將多次循環(huán)同時(shí)在可重構(gòu)單元陣列上執(zhí)行,將每一行可重構(gòu)單元陣列的運(yùn) 算結(jié)果通過路由模塊輸入到下一行,如果當(dāng)前行為可重構(gòu)單元陣列的最后一行, 則通過路由模塊將運(yùn)算結(jié)果輸入到可重構(gòu)單元陣列的第一行;并根據(jù)運(yùn)算單元 配置信息將運(yùn)算結(jié)果輸入到所述臨時(shí)數(shù)據(jù)模塊緩存;并將最后產(chǎn)生的輸出結(jié)果 輸出。
本發(fā)明實(shí)施例提供的方案的有益效果為
通過本發(fā)明實(shí)施例提供的方案,通過可重構(gòu)陣列協(xié)處理器的控制單元才艮據(jù) 配置信息控制運(yùn)算單元在可重構(gòu)單元陣列上同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后 產(chǎn)生的輸出結(jié)果輸出通過控制單元的輸出,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間 較長的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,并且克 服了現(xiàn)有的,件加速i^塊處理任務(wù)單一的缺陷。
圖1是本發(fā)明實(shí)施例1提供的方法流程示意圖2是本發(fā)明實(shí)施例2提供的處理器上執(zhí)行循環(huán)任務(wù)的過程示意圖;圖3是本發(fā)明實(shí)施例2提供的可重構(gòu)陣列協(xié)處理器的結(jié)構(gòu)示意圖; 圖4是本發(fā)明實(shí)施例2提供的映射RCA的結(jié)果示意圖; 圖5是本發(fā)明實(shí)施例2提供的RCA以流水線的工作方式執(zhí)行循環(huán)任務(wù)的時(shí) 序圖6是本發(fā)明實(shí)施例2提供的提供的方法流程示意圖; 圖7是本發(fā)明實(shí)施例3提供的系統(tǒng)結(jié)構(gòu)示意圖; 圖8是本發(fā)明實(shí)施例4提供的設(shè)備結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明 實(shí)施方式作進(jìn)一步地詳細(xì)描述。
實(shí)施例1
本發(fā)明實(shí)施例提供了 一種處理循環(huán)任務(wù)的方法,方法應(yīng)用于可重構(gòu)陣列協(xié) 處理器,參見圖1,該方法包括
101:配置信息寄存器模塊接收來自總線的配置信息,配置信息包括輸入FIFO 配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
102:循環(huán)控制器模塊從配置信息寄存器模塊獲取配置信息,并將輸入FIFO 配置信息發(fā)送給輸入FIFO模塊、輸出FIFO配置信息發(fā)送給輸出FIFO模塊、運(yùn) 算單元配置信息發(fā)送給運(yùn)算單元;
103:輸入FIFO模塊根據(jù)輸入FIFO配置信息讀取數(shù)據(jù); 104:輸入選擇才莫塊才艮據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC 輸入寄存器組特定的位置;
105:可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一行可重 構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通 過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;
106:輸.出選擇模塊根據(jù)運(yùn)算單元配置信息將可重構(gòu)單元陣列輸出的運(yùn)算結(jié) 果按特定的順序?qū)懭氲捷敵鯢IF0模塊;
107:輸出FIFO模塊根據(jù)輸出FIFO配置信息發(fā)送數(shù)據(jù)。
其中,輸入FIFO配置信息、輸出FIF0配置信息、運(yùn)算單元配置信息分別對輸入FIFO模塊、輸出FIFO模塊、運(yùn)算單元配置,輸入FIFO模塊、輸出FIFO 模塊、運(yùn)算單元的控制相互獨(dú)立且分別有多套配置信息寄存器。
其中,循環(huán)控制器模塊從配置信息寄存器模塊獲取配置信息的步驟,還包
括
循環(huán)控制器模塊根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制配置信息 寄存器模塊是否從總線上讀取輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算 單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入配置信息寄存器模塊中的第 幾套配置信息寄存器。
其中,可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),并將每一行 可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中 和通過路由模塊輸入到下一行可重構(gòu)單元陣列,具體包括
運(yùn)算單元執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在可重構(gòu) 單元陣列上執(zhí)行,將每一行可重構(gòu)單元陣列的運(yùn)算結(jié)果通過路由模塊輸入到下 一行,如果當(dāng)前行為可重構(gòu)單元陣列的最后一行,則通過路由模塊將運(yùn)算結(jié)果 輸入到可重構(gòu)單元陣列的第一行;并根據(jù)運(yùn)算單元配置信息將運(yùn)算結(jié)果輸入到 臨時(shí)數(shù)據(jù)模塊緩存,以便于根據(jù)運(yùn)算單元配置信息在某個(gè)執(zhí)行步驟中獲取所緩 存的數(shù)據(jù)。
本發(fā)明實(shí)施例提供的方法,通過可重構(gòu)陣列協(xié)處理器的控制單元根據(jù)配置 信息控制運(yùn)算單元在可重構(gòu)單元陣列上同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后產(chǎn)生 的輸出結(jié)果輸出通過控制單元的輸出,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間較長 的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,并且克服了 現(xiàn)有的硬件加速模塊處理任務(wù)單一的缺陷。
實(shí)施例2
本發(fā)明實(shí)施例提供了一種處理循環(huán)任務(wù)的方法,其中,本發(fā)明實(shí)施例首先提 供了一種可重構(gòu)陣列協(xié)處理器(Reconfigurable Cell Array CoProceseeor, RCACP ),而本發(fā)明實(shí)施例提供的方法是基于該可重構(gòu)陣列協(xié)處理器基礎(chǔ)上實(shí)現(xiàn) 的,具體內(nèi)容如下
首先以圖2為例對在處理器上執(zhí)行循環(huán)任務(wù)的過程簡單介紹
參見圖2,循環(huán)任務(wù)的任務(wù)圖的步數(shù)為5,循環(huán)需要執(zhí)行2次。在處理器上執(zhí)行循環(huán)任務(wù)的過程為首先將任務(wù)圖中并行的運(yùn)算調(diào)整為串行的執(zhí)行順序, 調(diào)整后的執(zhí)行順序?yàn)? — 2 — 3 — 4 — 5 — 6 — 7,任務(wù)圖的步數(shù)增加為7;串行的 執(zhí)行2次循環(huán),2次循環(huán)的執(zhí)行順序
1. 1—1. 2—1. 3—1. "1. 5—1. "1. 7—2. 1—2. 2—2. 3—2. "2. 5—2. "2. 7
其中"1. 2"表示執(zhí)行第1次循環(huán)的第2步。串行執(zhí)行完2次循環(huán)總的步數(shù)為14。 由圖2可以看出,在處理器上執(zhí)行循環(huán)任務(wù)的時(shí)間較長。針對處理器與硬件 加速模塊的特點(diǎn),在對應(yīng)用程序進(jìn)行劃分時(shí),首先,將應(yīng)用程序中運(yùn)算量大的 部分劃分到硬件加速模塊上執(zhí)行,稱之為應(yīng)用程序的硬件部分;其次,由處理 器來執(zhí)行應(yīng)用中的控制部分以及運(yùn)算量小的部分,稱之為應(yīng)用程序的軟件部分。 本發(fā)明實(shí)施例提供的可重構(gòu)陣列協(xié)處理器來執(zhí)行循環(huán)任務(wù),尤其是關(guān)鍵循 環(huán)(運(yùn)行時(shí)間大于程序總運(yùn)行時(shí)間1%的循環(huán)),并且能與處理器進(jìn)行高速的數(shù)據(jù) 交互。參見圖3,下面對可重構(gòu)陣列協(xié)處理器的結(jié)構(gòu)和功能進(jìn)行具體說明
圖3中,可重構(gòu)陣列協(xié)處理器分為運(yùn)算單元和控制單元,下面分別對運(yùn)算 單元和控制單元進(jìn)行詳細(xì)說明 (一)運(yùn)算單元
運(yùn)算單元由可重構(gòu)單元陣列(Reconf igurable Cell Array, RCA )、路由模 塊、臨時(shí)數(shù)據(jù)模塊3部分構(gòu)成;下面具體描述各個(gè)模塊 1、可重構(gòu)單元陣列(RCA)
其中,可重構(gòu)單元陣列RCA的規(guī)??梢愿鶕?jù)循環(huán)任務(wù)的規(guī)模定制,典型的 RCA的規(guī)模為8x8。本發(fā)明實(shí)施例中為了便于說明,圖2的RCA的規(guī)模為4x4。 RCA的"^兌明如下
(1) RCA內(nèi)每個(gè)RC經(jīng)配置后可實(shí)現(xiàn)算術(shù)運(yùn)算功能和邏輯運(yùn)算功能; (2 ) RCA以行為單位, 一行內(nèi)的多個(gè)RC經(jīng)配置后在一個(gè)時(shí)鐘周期內(nèi)并行的 完成運(yùn)算;
(3 ) RCA的行按從上至下的順序?qū)?yīng)于任務(wù)圖內(nèi)的時(shí)鐘周期。 其中,以圖2的循環(huán)任務(wù)為例循環(huán)任務(wù)的步數(shù)為5,以圖2(a)的前4個(gè) 時(shí)鐘周期為例,將其映射到圖3的RCA的結(jié)果如圖4所示
節(jié)點(diǎn)'T,、 "2"處于任務(wù)圖的第1個(gè)時(shí)鐘周期,被映射到RCA的第l行;
節(jié)點(diǎn)"3"處于任務(wù)圖的第2個(gè)時(shí)鐘周期,被映射到RCA的第2行;
節(jié)點(diǎn)"4"、 "5" 處于任務(wù)圖的第3個(gè)時(shí)鐘周期,被映射到RCA的第3行;
14節(jié)點(diǎn)"6" 處于任務(wù)圖的第4個(gè)時(shí)鐘周期,被映射到RCA的第4行; 節(jié)點(diǎn)"7"處于任務(wù)圖的第5個(gè)時(shí)鐘周期,被映射到RCA的第1行。因?yàn)橹?前任務(wù)圖中處于第4個(gè)時(shí)鐘周期的節(jié)點(diǎn)"6"被映射到RCA的第4行,本發(fā)明實(shí) 施例中的RCA只有4行,所以節(jié)點(diǎn)"7"被映射到第1行,由RCA的第1行來執(zhí) 行任務(wù)圖的第5個(gè)時(shí)鐘周期。至于節(jié)點(diǎn)"7"被映射到第l行的第3列(右起), 是因?yàn)榈趌、 2列已被映射為任務(wù)圖第1個(gè)時(shí)鐘周期的節(jié)點(diǎn)"1"和節(jié)點(diǎn)"2"。
(4 ) RCA執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在RCA上 執(zhí)行,這將大幅提升可重構(gòu)陣列協(xié)處理器執(zhí)行循環(huán)任務(wù)時(shí)的性能。以任務(wù)圖2 (a) 映射到圖3的RCA上為例,映射的結(jié)果如圖4所示,RCA以流水線的工作方式一丸 行循環(huán)任務(wù)的時(shí)序圖如圖5所示,具體如下 第1個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第1次循環(huán)的第1步,記為"1. 1"; 第2個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第2次循環(huán)的第1步,記為"2. 1"; RCA的第2行執(zhí)行第1次循環(huán)的第2步,記為"1. 2"; 第3個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第3次循環(huán)的第1步,記為"3. 1"; RCA的第2行執(zhí)行第2次循環(huán)的第2步,記為"2. 2"; RCA的籌3行執(zhí)行第1次循環(huán)的第3步,記為"1. 3"; 第4個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第4次循環(huán)的第1步,記為"4. 1"; RCA的第2行執(zhí)行第3次循環(huán)的第2步,記為"3. 2"; RCA的第3行執(zhí)行第2次循環(huán)的第3步,記為"2. 3,,; RCA的第4行執(zhí)行第1次循環(huán)的第4步,記為"1. 4,,; 第5個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第1次循環(huán)的第5步和第5次循環(huán)的第1步,記為"1. 5 & 5. 1";
RCA的第2行執(zhí)行第4次循環(huán)的第2步,記為"4. 2"; RCA的第3行執(zhí)行第3次循環(huán)的第3步,記為"3. 3,,; RCA的第4行執(zhí)行第2次循環(huán)的第4步,記為4";
15第6個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第2次循環(huán)的第5步和第6次循環(huán)的第1步,記為"2. 5 & 6. 1";
RCA的第2行執(zhí)行第5次循環(huán)的第2步,記為"5. 2"; RCA的第3行執(zhí)行第4次循環(huán)的第3步,記為"4. 3"; RCA的第4行執(zhí)行第3次循環(huán)的第4步,記為"3. 4";
2、 路由模塊
其中,路由模塊將每行RC連接起來,路由模塊的輸入來自三個(gè)方面RC輸 入寄存器組、上一行RC的輸出、臨時(shí)數(shù)據(jù)模塊;
(1)路由模塊的功能是為RC選擇輸入,其選擇RC輸入寄存器組、上一行 RC的輸出、臨時(shí)數(shù)據(jù)模塊的輸入輸出給RC,作為RC的輸入;
(2 )最后一行RC的輸出經(jīng)路由模塊選擇后可作為第一行RC的輸入,這一 結(jié)構(gòu)使得RCA可以映射關(guān)鍵路徑長度大于自身行數(shù)的任務(wù)圖。以任務(wù)圖2 (a)為 例,其關(guān)鍵路徑為5 (大于圖3的RCA的行數(shù)4 ),將其映射到圖3的RCA的結(jié) 果如圖4所示
節(jié)點(diǎn)"7"處于任務(wù)圖的第5個(gè)時(shí)鐘周期,被映射到RCA的第1行。這是因 為之前任務(wù)圖中處于第4個(gè)時(shí)鐘周期的節(jié)點(diǎn)"6"被映射到RCA的第4行,在RCA 執(zhí)行完第4行后,即任務(wù)圖的第4個(gè)時(shí)鐘周期后,節(jié)點(diǎn)"6"將通過路由模塊l 將節(jié)點(diǎn)"6"的輸出輸入給RCA的第1行,由RCA的第1行來執(zhí)行任務(wù)圖的第5 個(gè)時(shí)鐘周期。.所以節(jié)點(diǎn)"7"被映射到RCA的第1行。至于節(jié)點(diǎn)"7"被映射到 第1行的第3列(右起),是因?yàn)榈?、 2列已被映射為任務(wù)圖第1個(gè)時(shí)鐘周期 的節(jié)點(diǎn)"1"和節(jié)點(diǎn)"2"。
3、 臨時(shí)數(shù)據(jù)模塊
其中,臨時(shí)數(shù)據(jù)模塊的輸入來自每個(gè)RC的輸出;
臨時(shí)數(shù)據(jù)模塊的功能是將RC的輸出延遲若干個(gè)時(shí)鐘周期,并在需要的時(shí)鐘 周期輸出給路由模塊。然后,經(jīng)路由模塊選擇后,輸出給RC作為輸入。以將任 務(wù)圖2 (a)映射到圖3的RCA上為例,映射結(jié)果如圖4所示
處于任務(wù)圖第3周期的節(jié)點(diǎn)"5"的一個(gè)輸入來自第l周期的節(jié)點(diǎn)"2",所 以節(jié)點(diǎn)"2"在第l個(gè)時(shí)鐘周期運(yùn)算完后,需要將其輸出輸入給臨時(shí)數(shù)據(jù)模塊, 數(shù)據(jù)在臨時(shí)數(shù)據(jù)模塊中延遲1個(gè)時(shí)鐘周期,即在第3個(gè)時(shí)鐘周期輸出給路由模塊3,經(jīng)路由模塊3選擇后將數(shù)據(jù)輸入給節(jié)點(diǎn)"5"。 (二)控制單元
控制單元由配置信息寄存器模塊、循環(huán)任務(wù)控制器、輸入FIFO (First Input First Output,先入先出隊(duì)列)模塊、輸出FIFO模塊、輸入選擇模塊、輸出選 捧模塊和RC輸入寄存器組模塊7個(gè)部分構(gòu)成;下面具體描述各個(gè)模塊
1、 配置信息寄存器模塊
(1 )配置信息分為三個(gè)部分輸入FIFO配置信息、輸出FIFO配置信息、 運(yùn)算單元配置信息(包括循環(huán)任務(wù)的配置信息),且每部分的配置信息有多套配 置信息,說明如下
首先,將配置信息分為三個(gè)部分,可以做到對輸入FIFO、輸出FIFO、運(yùn)算 單元這三個(gè)硬件模塊控制的相互獨(dú)立。即輸入FIFO的配置信息傳輸完后輸入 FIFO模塊即開始運(yùn)行,無需等待運(yùn)算單元的配置信息傳輸完后才開始運(yùn)行。同 理,運(yùn)算單元的配置信息傳輸完后運(yùn)算單元即開始運(yùn)行,無需等待輸出FIFO的 配置信息傳輸完后才開始運(yùn)行;
其次,每個(gè)模塊享有多套配置信息寄存器,這可以提前存儲之后的循環(huán)任 務(wù)用到的配置信息,盡量保證硬件模塊無需等待自己的配置信息傳輸完后才開 始運(yùn)行;
總的來說,配置信息分為三部分,且每部分享有多套配置信息,保證了輸 入FIFO模塊、輸出FIFO模塊、運(yùn)算單元這三個(gè)硬件模塊相互獨(dú)立且持續(xù)不斷 的運(yùn)行,這對可重構(gòu)陣列協(xié)處理器性能的提升是有益的。
(2 )配置信息寄存器模塊是"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB )上的從設(shè)備(slave),即配置信息寄存器模塊只 能被動的接收來自總線上的主設(shè)備發(fā)出的數(shù)據(jù)。
2、 循環(huán)控制器模塊
循環(huán)控制器模塊讀入來自配置信息寄存器模塊的循環(huán)任務(wù)的配置信息,依 據(jù)讀入的配置信息對協(xié)處理器中其余模塊進(jìn)行控制,協(xié)調(diào)其余模塊共同完成循 環(huán)任務(wù);
首先,循環(huán)任務(wù)控制器模塊不僅從配置信息寄存器模塊讀入配置信息。它 還根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制配置信息寄存器模塊是否從 總線上讀取,入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入其自身的第幾套配置信息寄存器;
其次,循環(huán)控制器模塊根據(jù)讀入的輸入FIFO配置信息控制輸入FIFO模塊
的讀取數(shù)據(jù)r
再次,循環(huán)控制器模塊根據(jù)讀入的運(yùn)算單元配置信息(包括循環(huán)任務(wù)的配 置信息)控制運(yùn)算單元的運(yùn)行過程,這包括以下內(nèi)容
循環(huán)控制模塊將RCA中選定的RC配置成與任務(wù)圖中各節(jié)點(diǎn)對應(yīng)的運(yùn)算;
循環(huán)控制模塊配置臨時(shí)數(shù)據(jù)模塊,控制臨時(shí)數(shù)據(jù)模塊在某一時(shí)鐘周期讀入 某一行的RC的輸出,延遲若干個(gè)時(shí)鐘周期后,輸出給某一行的RC作為輸入;
循環(huán)控制模塊通過配置路由模塊建立選定的RC之間的連接關(guān)系,這一連接 關(guān)系與任務(wù)圖中各節(jié)點(diǎn)之間的連接關(guān)系相一致;
循環(huán)控制模塊根據(jù)循環(huán)任務(wù)的配置信息,對一次循環(huán)內(nèi)的讀取輸入FIFO模 塊、運(yùn)算單$、寫入輸出FIFO模塊這三個(gè)步驟的時(shí)鐘周期進(jìn)行計(jì)數(shù)
首先,經(jīng)過若干個(gè)時(shí)鐘周期,讀取輸入FIFO模塊中的數(shù)據(jù)存入RC輸入寄 存器組;
然后,經(jīng)過若干個(gè)時(shí)鐘周期,完成數(shù)據(jù)在運(yùn)算單元中的運(yùn)算,產(chǎn)生輸出結(jié)
果;
最后,經(jīng)過若干個(gè)時(shí)鐘周期,將運(yùn)算單元的輸出結(jié)果寫入輸出FIFO模塊。
循環(huán)控制模塊根據(jù)循環(huán)任務(wù)的配置信息,控制2次循環(huán)之間的時(shí)間間隔, 使得多次循環(huán)同時(shí)在RCA上以流水線的工作方式運(yùn)行;
循環(huán)控制模塊根據(jù)循環(huán)任務(wù)的配置信息,對循環(huán)次數(shù)進(jìn)行計(jì)數(shù)。當(dāng)循環(huán)次 數(shù)達(dá)到配置的次數(shù)時(shí),當(dāng)前循環(huán)任務(wù)執(zhí)行完成。此外,循環(huán)控制模塊還根據(jù)循 環(huán)任務(wù)的配皇信息,在當(dāng)前循環(huán)任務(wù)完成之后,判斷運(yùn)算單元配置信息是否跳 轉(zhuǎn)到下一個(gè)循環(huán)任務(wù)的運(yùn)算單元配置信息,以及下一個(gè)循環(huán)任務(wù)的運(yùn)算單元配 置信息是運(yùn)算單元配置信息寄存器中的第幾套,否則停止運(yùn)算單元;
最后,循環(huán)控制器模塊根據(jù)讀入的輸出FIFO配置信息控制輸出FIFO的工 作過程;
3、輸入FIFO模塊
輸入FIFO模塊可以被配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB )上的從設(shè)備(slave),被動的接收連接在總線上 的主設(shè)備發(fā)出的數(shù)據(jù);輸入FIFO也可以故配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB)上的主i殳備(master),主動的讀耳又連4妄在總線 上的存儲器的.數(shù)據(jù);
輸入FIFO采取不對稱的結(jié)構(gòu),連接到可重構(gòu)陣列協(xié)處理器內(nèi)部一側(cè)的數(shù)據(jù) 的讀取速度要大于連接到總線一側(cè)的數(shù)據(jù)的寫入速度。這是因?yàn)閮?nèi)部的數(shù)據(jù)讀 取速度快可減小將輸入FIFO中的數(shù)據(jù)寫入RC輸入寄存器組的時(shí)間,提升可重 構(gòu)陣列協(xié)處理器的性能。
4、 輸出FIFO模塊
輸出FIFO模塊可以被配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB)上的從設(shè)備(slave),;故動的一皮接收連接在總線 上的主設(shè)備讀取數(shù)據(jù);
輸出FIFO也可以被配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB )上的主i殳備(master ),主動的向連才妻在總線上 的存儲器寫數(shù)據(jù);
輸出FIFO采取不對稱的結(jié)構(gòu),連接到可重構(gòu)陣列協(xié)處理器內(nèi)部一側(cè)的數(shù)據(jù) 的寫入速度要大于連接到總線一側(cè)的數(shù)據(jù)的讀取速度。這是因?yàn)閮?nèi)部的數(shù)據(jù)寫 入速度快可減小將RC的輸出寫入輸出FIFO的時(shí)間,提升可重構(gòu)陣列協(xié)處理器 的性能。
5、 輸入選擇模塊
輸入選擇模塊的功能是根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到 RC輸入寄存器組特定的位置,即寫入到特定的RC的輸入寄存器,待運(yùn)算時(shí)使用;
6、 輸出選擇模塊
輸出選擇才莫塊的功能是根據(jù)運(yùn)算單元配置信息將特定的RC的輸出寫入到輸 出FIFO中,完成運(yùn)算結(jié)果的輸出;
7、 RC輸入寄存器組
RC輸入寄存器組的大小由RCA中RC的個(gè)數(shù)來決定,每個(gè)RC有兩個(gè)輸入寄 存器,由RC的編號來確定其輸入寄存器在RC輸入寄存器組中的位置。
參見圖6,下面以圖3為例對上述可重構(gòu)陣列協(xié)處理器處理循環(huán)任務(wù)的過程 進(jìn)行具體表述
步驟201:配置信息寄存器模塊接收來自總線的配置信息,該配置信息包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
其中,輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息分別
針對輸入FIFO模塊、輸出FIF0模塊、運(yùn)算單元三部分所配置,使得這三個(gè)模
塊的控制相亙獨(dú)立;其中,每個(gè)模塊享有多套配置信息寄存器,這可以提前存
儲之后的循環(huán)任務(wù)用到的配置信息,盡量保證硬件模塊無需等待自己的配置信
息傳輸完后才開始運(yùn)行;
配置信息分為三部分,且每部分享有多套配置信息,保證了輸入FIFO模塊、
輸出FIFO模塊、運(yùn)算單元這三個(gè)硬件模塊相互獨(dú)立且持續(xù)不斷的運(yùn)行,這對可
重構(gòu)陣列協(xié)處理器性能的提升是有益的。
步驟202:循環(huán)控制器模塊讀入來自配置信息寄存器模塊的配置信息,依據(jù) 讀入的配置信息對可重構(gòu)陣列協(xié)處理器中其余模塊進(jìn)行控制,協(xié)調(diào)其余4莫塊共 同完成循環(huán)任務(wù);
其中,循環(huán)任務(wù)控制器模塊不僅從配置信息寄存器模塊讀入配置信息。它 還根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制配置信息寄存器模塊是否從 總線上讀取輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息,以
及將讀入的某一項(xiàng)配置信息寫入其自身的第幾套配置信息寄存器;
步驟2Q3:輸入FIFO模塊根據(jù)輸入FIFO配置信息讀取數(shù)據(jù); 其中,由循環(huán)控制器模塊根據(jù)讀入的輸入FIFO配置信息控制輸入FIFO模 塊讀取數(shù)據(jù);
輸入FIFO模塊可以被配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB )上的從設(shè)備(slave),凈皮動的接收連接在總線上 的主設(shè)備發(fā)出的數(shù)據(jù);
輸入FIFO也可以凈皮配置成為"先進(jìn)高性能總線"(Advanced High-performance Bus, AHB)上的主設(shè)備(master),主動的讀取連接在總線 上的存儲器的數(shù)據(jù);
輸入FIFO采:f又不對稱的結(jié)構(gòu),連接到可重構(gòu)陣列協(xié)處理器內(nèi)部一側(cè)的數(shù)據(jù) 的讀取速度要大于連接到總線一側(cè)的數(shù)據(jù)的寫入速度。這是因?yàn)閮?nèi)部的數(shù)據(jù)讀 取速度快可減小將輸入FIFO中的數(shù)據(jù)寫入RC輸入寄存器組的時(shí)間,提升可重 構(gòu)陣列協(xié)處理器的性能。
步驟204:輸入選擇模塊根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC輸入寄存器組特定的位置;
其中,由循環(huán)控制器模塊根據(jù)讀入的運(yùn)算單元配置信息控制輸入選擇模塊 將輸入FIFO中的數(shù)據(jù)寫入到RC輸入寄存器組特定的位置,即寫入到特定的RC 的輸入寄存器,待運(yùn)算時(shí)使用。
步驟205:運(yùn)算單元根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),具體包括
RCA執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在RCA上扭J亍, 仍以任務(wù)圖2(a)映射到圖3的RCA上為例,映射的結(jié)果如圖4所示,RCA以流 水線的工作方式執(zhí)行循環(huán)任務(wù)的時(shí)序圖如圖5所示,具體如下
第1個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第1次循環(huán)的第1步,記為"1. 1";并將執(zhí)行的結(jié)果通過 路由模塊2豐lr入到第2行; 第2個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第2次循環(huán)的第1步,記為"2. 1";并將執(zhí)行的結(jié)果通過 路由模塊2輸入到第2行;
RCA的第2行執(zhí)行第1次循環(huán)的第2步,記為"1. 2";并將執(zhí)行的結(jié)果通過 路由模塊3輸入到第3行;
第3個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第3次循環(huán)的第1步,記為"3. 1";并將執(zhí)行的結(jié)果通過 路由模塊2輸入到第2行;
RCA的第2行執(zhí)行第2次循環(huán)的第2步,記為2,,;并將執(zhí)行的結(jié)果通過 路由模塊3輸入到第3行;
RCA的第3行執(zhí)行第1次循環(huán)的第3步,記為"1. 3";并將執(zhí)行的結(jié)果通過 路由模塊4瑜入到第4行;
第4個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第4次循環(huán)的第1步,記為"4. 1";并將執(zhí)行的結(jié)果通過 路由模塊2輸入到第2行;
RCA的第2行執(zhí)行第3次循環(huán)的第2步,記為"3. 2";并將執(zhí)行的結(jié)果通過 路由模塊3輸入到第3行;
RCA的第3行執(zhí)行第2次循環(huán)的第3步,記為"2. 3";并將執(zhí)行的結(jié)果通過 路由模塊4輸入到第4行;RCA的第4行執(zhí)行第1次循環(huán)的第4步,記為"1. 4";并將執(zhí)行的結(jié)果通過 路由模塊l輸入到第l行; 第5個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第1次循環(huán)的第5步和第5次循環(huán)的第1步,記為"1. 5 & 5. 1";并將熱行的結(jié)果通過路由模塊2輸入到第2行;
RCA的第2行執(zhí)行第4次循環(huán)的第2步,記為"4. 2";并將執(zhí)行的結(jié)果通過 路由模塊3輸入到第3行;
RCA的第3行執(zhí)行第3次循環(huán)的第3步,記為"3.3";并將執(zhí)行的結(jié)果通過 路由模塊4輸入到第24行;
RCA的第4行執(zhí)行第2次循環(huán)的第4步,記為"2. 4";并將執(zhí)行的結(jié)果通過 路由模塊l輸入到第l行;
第6個(gè)時(shí)鐘周期
RCA的第1行執(zhí)行第2次循環(huán)的第5步和第6次循環(huán)的第1步,記為"2. 5 & 6.1";并將執(zhí)行的結(jié)果通過路由模塊2輸入到第2行;
RCA的第2行執(zhí)行第5次循環(huán)的第2步,記為"5. 2";并將執(zhí)行的結(jié)果通過 路由模塊3輸入到第3行;
RCA的第3行執(zhí)行第4次循環(huán)的第3步,記為"4. 3";并將執(zhí)行的結(jié)果通過 路由模塊4輸入到第4行;
RCA的第4行執(zhí)行第3次循環(huán)的第4步,記為"3. 4";并將執(zhí)行的結(jié)果通過 路由模塊l輸入到第l行;
其中,處于任務(wù)圖第3周期的節(jié)點(diǎn)"5"的一個(gè)輸入來自第l周期的節(jié)點(diǎn)"2", 所以節(jié)點(diǎn)"2"在第1個(gè)時(shí)鐘周期運(yùn)算完后,需要將其輸出輸入給臨時(shí)數(shù)據(jù)模塊, 數(shù)據(jù)在臨時(shí)數(shù)據(jù)模塊中延遲1個(gè)時(shí)鐘周期,即在第3個(gè)時(shí)鐘周期輸出給路由模 塊3,經(jīng)路由模塊3選擇后將數(shù)據(jù)輸入給節(jié)點(diǎn)"5"。
其中,由循環(huán)控制器模塊根據(jù)讀入的運(yùn)算單元配置信息控制運(yùn)算單元執(zhí)行 循環(huán)任務(wù),具體為循環(huán)控制器模塊將RCA中選定的RC配置成與任務(wù)圖中各節(jié) 點(diǎn)對應(yīng)的運(yùn)算;配置臨時(shí)數(shù)據(jù)模塊,控制臨時(shí)數(shù)據(jù)模塊在某一時(shí)鐘周期讀入某 一行的RC的輸出,延遲若干個(gè)時(shí)鐘周期后,輸出給某一行的RC作為輸入;通 過配置路由模塊建立選定的RC之間的連接關(guān)系,這一連接關(guān)系與任務(wù)圖中各節(jié) 點(diǎn)之間的連接關(guān)系相一致;另外,循環(huán)控制模塊還根據(jù)循環(huán)任務(wù)的配置信息,
22對一次循環(huán)內(nèi)的讀取輸入FIFO模塊、運(yùn)算單元、寫入輸出FIFO模塊這三個(gè)步
驟的時(shí)鐘周期進(jìn)行計(jì)數(shù)。
步驟206:運(yùn)算單元完成循環(huán)任務(wù)中的運(yùn)算,產(chǎn)生輸出結(jié)果,將運(yùn)算單元的 輸出結(jié)果通過輸出選擇模塊寫入輸出FIFO模塊。
循環(huán)控制模塊根據(jù)循環(huán)任務(wù)的配置信息,控制2次循環(huán)之間的時(shí)間間隔, 使得多次循環(huán)同時(shí)在RCA上以流水線的工作方式運(yùn)行;
循環(huán)控制模塊根據(jù)循環(huán)任務(wù)的配置信息,對循環(huán)次數(shù)進(jìn)行計(jì)數(shù)。當(dāng)循環(huán)次 數(shù)達(dá)到配置的次數(shù)時(shí),當(dāng)前循環(huán)任務(wù)執(zhí)行完成。此外,循環(huán)控制模塊還根據(jù)循 環(huán)任務(wù)的配置信息,在當(dāng)前循環(huán)任務(wù)完成之后,判斷運(yùn)算單元配置信息是否跳 轉(zhuǎn)到下一個(gè)循環(huán)任務(wù)的運(yùn)算單元配置信息,以及下一個(gè)循環(huán)任務(wù)的運(yùn)算單元配 置信息是運(yùn)算單元配置信息寄存器中的第幾套,否則停止運(yùn)算單元;
其中,由循環(huán)控制器模塊根據(jù)讀入的輸出FIFO配置信息控制輸出FIFO模 塊對外輸出數(shù)據(jù)。
本發(fā)明實(shí)施例提供的方法,通過可重構(gòu)陣列協(xié)處理器的控制單元根據(jù)配置 信息控制運(yùn)算單元在可重構(gòu)單元陣列上同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后產(chǎn)生 的輸出結(jié)果輸出通過控制單元的輸出,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間較長 的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,并且克服了 現(xiàn)有的硬件加速模塊處理任務(wù)單一的缺陷。
實(shí)施例3
本發(fā)明實(shí)施例提供了一種處理循環(huán)任務(wù)的系統(tǒng),參見圖7,該系統(tǒng)包括控 制單元701和運(yùn)算單元702,其中,
控制單元701包括配置信息寄存器模塊7011、循環(huán)控制器模塊7012、輸 入FIFO模塊7013、輸出FIFO模塊7014、輸入選擇模塊7015、輸出選擇模塊 7016和RC輸入寄存器組7017;
配置信息寄存器模塊7011,用于接收來自總線的配置信息,配置信息包括 輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
循環(huán)控制器模塊7G12,用于從配置信息寄存器模塊7011獲取配置信息,并 將輸入FIFO配置信息發(fā)送給輸入FIFO模塊7013、輸出FIFO配置信息發(fā)送給輸 出FIFO模塊7014、運(yùn)算單元配置信息發(fā)送給運(yùn)算單元702;輸入FIFO模塊7013,用于根據(jù)輸入FIFO配置信息讀取數(shù)據(jù); 輸入選擇模塊7015,用于根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入 到RC輸入寄存器組7017特定的位置;
輸出選擇才莫塊7014,用于根據(jù)運(yùn)算單元配置信息將可重構(gòu)單元陣列輸出的 運(yùn)算結(jié)果按特定的順序?qū)懭氲捷敵鯢IFO模塊7016;
輸出FIFO模塊7016,用于根據(jù)輸出FIFO配置信息發(fā)送數(shù)據(jù)。
RC輸入寄存器組7017,用于根據(jù)運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入到運(yùn)
算單元中;
運(yùn)算單元702包括可重構(gòu)單元陣列7021、路由模塊7022和臨時(shí)數(shù)據(jù)模塊 7023,
可重構(gòu)單元陣列7021,用于根據(jù)運(yùn)算單元702配置信息執(zhí)行循環(huán)任務(wù),將 每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù) 模塊7023中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié) 果輸出;
路由模塊7022,用于將每一行可重構(gòu)單元陣列7021產(chǎn)生的運(yùn)算結(jié)果輸入到 下一行可重構(gòu)單元陣列7021;
臨時(shí)數(shù)據(jù)模塊7023,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列7021 的運(yùn)算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu) 單元陣列7021中。
其中,輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息分別 對輸入FIFO模塊7013、輸出FIFO模塊7014、運(yùn)算單元702配置,輸入FIFO 模塊7013、輸出FIFO模塊7014、運(yùn)算單元702的控制相互獨(dú)立且分別有多套 配置信息寄存器。
本發(fā)明實(shí)施例提供的系統(tǒng),通過可重構(gòu)陣列協(xié)處理器的控制單元根據(jù)配置 信息控制運(yùn)算單元在可重構(gòu)單元陣列7021上同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后 產(chǎn)生的輸出結(jié)果輸出通過控制單元的輸出,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間 較長的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,并且克 服了現(xiàn)有的硬件加速模塊處理任務(wù)單一的缺陷。
實(shí)施例4本發(fā)明實(shí)施例還提供了一種可重構(gòu)陣列協(xié)處理器設(shè)備,參見圖8,該設(shè)備包
括控制單元和運(yùn)算單元,
控制單元801,用于控制運(yùn)算單元802同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后產(chǎn) 生的輸出結(jié)果輸出;
運(yùn)算單元802,用于在控制單元801的控制下執(zhí)行多次循環(huán)任務(wù)。
其中,該控制單元801包括配置信息寄存器模塊8011、循環(huán)控制器模塊 8012、輸入FIFO模塊8013、輸出FIFO模塊8014、輸入選擇模塊8015、輸出選 擇模塊8016和RC輸入寄存器組8017;
配置信息寄存器模塊8011,用于接收來自總線的配置信息,配置信息包括 輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;
循環(huán)控制器模塊8012,用于從配置信息寄存器模塊獲取配置信息,并將輸入 FIFO配置信息發(fā)送給輸入FIFO模塊8013、輸出FIFO配置信息發(fā)送給輸出FIFO 模塊8014、運(yùn)算單元配置信息發(fā)送給運(yùn)算單元;
輸入FIFO模塊8013,用于根據(jù)輸入FIFO配置信息讀取數(shù)據(jù); 輸入選擇模塊8015,用于根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入 到RC輸入寄存器8017組特定的位置。
輸出選脊模塊8014,用于根據(jù)運(yùn)算單元配置信息將可重構(gòu)單元陣列輸出的 運(yùn)算結(jié)果按特定的順序?qū)懭氲捷敵鯢IFO模塊8016;
輸出FIFO模塊8016,用于根據(jù)輸出FIFO配置信息發(fā)送數(shù)據(jù)。
RC輸入寄存器組8017,用于根據(jù)運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入到運(yùn) 算單元中;
其中,運(yùn)算單元802包括可重構(gòu)單元陣列8021、路由模塊80"和臨時(shí)數(shù) 據(jù)模塊8023,
可重構(gòu)單元陣列8021,用于根據(jù)運(yùn)算單元802配置信息執(zhí)行循環(huán)任務(wù),將
每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù) 模塊8023中.和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)
果輸出;
路由模塊8022,用于將每一行可重構(gòu)單元陣列8021產(chǎn)生的運(yùn)算結(jié)果輸入到 下一行可重構(gòu)單元陣列8021;
臨時(shí)數(shù)據(jù)^t塊8023,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列8021的運(yùn)算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu)
單元陣列8021中。
其中,配置信息寄存器模塊,具體用于分別對輸入FIFO模塊8013、輸出 FIFO模塊8014、運(yùn)算單元配置輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算 單元配置信息,以使得輸入FIFO模塊8013、輸出FIFO模塊8014、運(yùn)算單元的 控制相互獨(dú)立且分別有多套配置信息寄存器。
其中,循環(huán)控制器模塊8012,還用于根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài) 寄存器控制配置信息寄存器模塊是否從總線上讀取輸入FIFO配置信息、輸出 FIFO配置信息、運(yùn)算單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入配置信
息寄存器模塊中的第幾套配置信息寄存器。
其中,可重構(gòu)單元陣列8021具體用于,執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作 方式將多次循環(huán)同時(shí)在可重構(gòu)單元陣列8021上執(zhí)行,將每一行可重構(gòu)單元陣列 8021的運(yùn)算結(jié)果通過路由模塊8022輸入到下一行,如果當(dāng)前行為可重構(gòu)單元陣 列8021的最后一行,則通過路由模塊8022將運(yùn)算結(jié)果輸入到可重構(gòu)單元陣列 8021的第一行;并根據(jù)運(yùn)算單元配置信息將運(yùn)算結(jié)果輸入到臨時(shí)數(shù)據(jù)模塊8023 緩存;并將最后產(chǎn)生的輸出結(jié)果輸出。
本發(fā)明實(shí)施例提供的設(shè)備,通過可重構(gòu)陣列協(xié)處理器的控制單元根據(jù)配置 信息控制運(yùn)算單元在可重構(gòu)單元陣列8021上同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后 產(chǎn)生的輸出結(jié)果輸出通過控制單元的輸出,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間 較長的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間,并且克 服了現(xiàn)有的硬件加速模塊處理任務(wù)單一的缺陷。
本發(fā)明實(shí)施例可以利用軟件實(shí)現(xiàn),相應(yīng)的軟件程序可以存儲在可讀取的存 儲介質(zhì)中,例如,路由器的硬盤、緩存或光盤中。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的 精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的 保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種處理循環(huán)任務(wù)的方法,其特征在于,所述方法應(yīng)用于可重構(gòu)陣列協(xié)處理器,所述方法包括配置信息寄存器模塊接收來自總線的配置信息,所述配置信息包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;循環(huán)控制器模塊從所述配置信息寄存器模塊獲取所述配置信息,并將所述輸入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIFO配置信息發(fā)送給所述輸出FIFO模塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元;所述輸入FIFO模塊根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù);所述輸入選擇模塊根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC輸入寄存器組特定的位置;所述可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;所述輸出選擇模塊根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸出的運(yùn)算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IFO模塊;所述輸出FIFO模塊根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述輸入FIFO配置信息、所 述輸出FIFO配置信息、所述運(yùn)算單元配置信息分別對應(yīng)所述輸入FIFO模塊、 所述輸出FIF(M莫塊、所述運(yùn)算單元配置,所述輸入FIFO模塊、所述輸出FIFO 模塊、所述運(yùn)算單元的控制相互獨(dú)立且分別有多套配置信息寄存器。
3. 如權(quán)利要求l所述的方法,其特征在于,所述循環(huán)控制器模塊從所述配 置信息寄存器模塊獲取所述配置信息的步驟,還包括所述循環(huán)控制器^i塊根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制所述 配置信息寄存器模塊是否從總線上讀取輸入FIFO配置信息、輸出FIFO配置信 息、運(yùn)算單元配置信息,以及將讀入的某一項(xiàng)配置信息寫入所述配置信息寄存器模塊中的第幾套配置信息寄存器。
4、 如權(quán)利要求l所述的方法,其特征在于,所述可重構(gòu)單元陣列根據(jù)運(yùn)算 單元配置信息執(zhí)行循環(huán)任務(wù),并將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù) 運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,具體包括所述運(yùn)算單元執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在可 重構(gòu)單元陣列上執(zhí)行,將每一行可重構(gòu)單元陣列的運(yùn)算結(jié)果通過路由模塊輸入 到下一行,如果當(dāng)前行為可重構(gòu)單元陣列的最后一行,則通過路由模塊將運(yùn)算結(jié)果輸入到可重構(gòu)單元陣列的第一行;并根據(jù)運(yùn)算單元配置信息將運(yùn)算結(jié)果輸 入到所述臨時(shí)數(shù)據(jù)模塊緩存,以便于根據(jù)運(yùn)算單元配置信息在某個(gè)執(zhí)行步驟中 獲取所緩存的數(shù)據(jù)。
5. —種處理循環(huán)任務(wù)的系統(tǒng),其特征在于,所述系統(tǒng)包括控制單元和運(yùn) 算單元,其中,所述控制單元包括配置信息寄存器模塊、循環(huán)控制器模塊、輸入FIF0模 塊、輸出FIF0模塊、輸入選擇模塊和輸出選擇模塊;所述配置信息寄存器模塊,用于接收來自總線的配置信息,所述配置信息 包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;循環(huán)控制器模塊,用于從所述配置信息寄存器模塊獲取所述配置信息,并將 所述輸入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIFO配置信息發(fā) 送給所述輸出FIF0模塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元; 所述輸入FIFO模塊,用于根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù); 所述輸入選擇模塊,用于根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入 到RC輸入寄存器組特定的位置;所述輸出選擇模塊,用于根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸 出的運(yùn)算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IFO模塊;所述輸出FIFO模塊,用于根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。所述RC輸入寄存器組,用于根據(jù)所述運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入 到所述運(yùn)算單元中;所述運(yùn)算單元包括可重構(gòu)單元陣列、路由模塊和臨時(shí)數(shù)據(jù)模塊,所述可重構(gòu)單元陣列,用于根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一 行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;所述路由模塊,用于將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果輸入到下一行可重構(gòu)單元陣列;所述臨時(shí)數(shù)據(jù)模塊,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列的運(yùn) 算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu)單元 陣列中。
6. 如權(quán)利要求5所述的系統(tǒng),其特征在于,所述輸入FIFO配置信息、所 述輸出FIFO配置信息、所述運(yùn)算單元配置信息分別對所述輸入FIFO ^^莫塊、所 述輸出FIFO.模塊、所述運(yùn)算單元配置,所述輸入FIFO模塊、所述輸出FIFO模 塊、所述運(yùn)算單元的控制相互獨(dú)立且分別有多套配置信息寄存器。
7. —種可重構(gòu)陣列協(xié)處理器設(shè)備,其特征在于,所述設(shè)備包括控制單元 和運(yùn)算單元,所述控制單元,用于控制所述運(yùn)算單元同時(shí)執(zhí)行多次循環(huán)任務(wù),并將最后 產(chǎn)生的輸出結(jié)果輸出;所述運(yùn)算單元,用于在所述控制單元的控制下執(zhí)行多次循環(huán)任務(wù)。
8. 如權(quán)利要求7所述的設(shè)備,其特征在于,所述控制單元包括配置信息 寄存器模塊、'循環(huán)控制器模塊、輸入FIF0模塊、輸出FIF0模塊、輸入選擇模 塊和輸出選擇模塊,所述配置信息寄存器模塊,用于接收來自總線的配置信息,所述配置信息 包括輸入FIFO配置信息、輸出FIFO配置信息、運(yùn)算單元配置信息;循環(huán)控制器模塊,用于從所述配置信息寄存器模塊獲取所述配置信息,并將 所述輸入FIFO配置信息發(fā)送給所述輸入FIFO模塊、所述輸出FIF0配置信息發(fā) 送給所述輸出FIF(H莫塊、所述運(yùn)算單元配置信息發(fā)送給所述運(yùn)算單元; 所述輸入FIFO模塊,用于根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù); 所述輸入選捐4莫塊,用于根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC輸入寄存器組特定的位置;.所述輸出選擇模塊,用于根據(jù)運(yùn)算單元配置信息將所述可重構(gòu)單元陣列輸出的運(yùn)算結(jié)果按特定的順序?qū)懭氲剿鲚敵鯢IFO模塊;所述輸出FIFO模塊,用于根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。RC輸入寄存器組,用于根據(jù)所述運(yùn)算單元配置信息將存儲的數(shù)據(jù)輸入到所述運(yùn)算單元中。
9. 如權(quán)利要求7所述的設(shè)備,其特征在于,所述運(yùn)算單元包括可重構(gòu)單 元陣列、路由模塊和臨時(shí)數(shù)據(jù)模塊,所述可重構(gòu)單元陣列,用于根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),將每一 行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果根據(jù)運(yùn)算單元配置信息輸入到臨時(shí)數(shù)據(jù)模塊 中和通過路由模塊輸入到下一行可重構(gòu)單元陣列,并將產(chǎn)生的運(yùn)算結(jié)果輸出;所述路由模塊,用于將每一行可重構(gòu)單元陣列產(chǎn)生的運(yùn)算結(jié)果輸入到下一 行可重構(gòu)單元陣列;所述臨時(shí)數(shù)據(jù)模塊,用于根據(jù)運(yùn)算單元配置信息緩存可重構(gòu)單元陣列的運(yùn) 算結(jié)果,并根據(jù)運(yùn)算單元配置信息將緩存的運(yùn)算結(jié)果輸入到指定的可重構(gòu)單元 陣列中。
10. 如權(quán)利要求8所述的設(shè)備,其特征在于,所述配置信息寄存器模塊, 具體用于分別對所述輸入FIFO模塊、所述輸出FIF0模塊、所述運(yùn)算單元配置 所述輸入FIFO配置信息、所述輸出FIFO配置信息、所述運(yùn)算單元配置信息, 以使得所述輸入FIFO模塊、所述輸出FIF0模塊、所述運(yùn)算單元的控制相互獨(dú) 立且分別有多套配置信息寄存器。
11. 如權(quán)利要求8所述的設(shè)備,其特征在于,所述循環(huán)控制器模塊,還用 于根據(jù)可重構(gòu)陣列協(xié)處理器的內(nèi)部狀態(tài)寄存器控制所述配置信息寄存器模塊是 否從總線上讀取輸入FIFO配置信息、輸出FIF0配置信息、運(yùn)算單元配置信息, 以及將讀入的某一項(xiàng)配置信息寫入所述配置信息寄存器^f莫塊中的第幾套配置信 息寄存器。
12、如權(quán)利要求9所述的設(shè)備,其特征在于,所述可重構(gòu)單元陣列具體用 于,執(zhí)行循環(huán)任務(wù)時(shí),以流水線的工作方式將多次循環(huán)同時(shí)在可重構(gòu)單元陣列 上執(zhí)行,將每一行可重構(gòu)單元陣列的運(yùn)算結(jié)果通過路由模塊輸入到下一行,如 果當(dāng)前行為可重構(gòu)單元陣列的最后一行,則通過路由模塊將運(yùn)算結(jié)果輸入到可 重構(gòu)單元陣列的第一行;并根據(jù)運(yùn)算單元配置信息將運(yùn)算結(jié)果輸入到所述臨時(shí) 數(shù)據(jù)模塊緩存;并將最后產(chǎn)生的輸出結(jié)果輸出。
全文摘要
本發(fā)明實(shí)施例提供了一種處理循環(huán)任務(wù)的方法、系統(tǒng)和設(shè)備,其特征在于,所述方法包括配置信息寄存器模塊接收來自總線的配置信息,循環(huán)控制器模塊從所述配置信息寄存器模塊獲取所述配置信息;所述輸入FIFO模塊根據(jù)所述輸入FIFO配置信息讀取數(shù)據(jù);所述輸入選擇模塊根據(jù)運(yùn)算單元配置信息將輸入FIFO中的數(shù)據(jù)寫入到RC輸入寄存器組特定的位置;所述可重構(gòu)單元陣列根據(jù)運(yùn)算單元配置信息執(zhí)行循環(huán)任務(wù),產(chǎn)生運(yùn)算結(jié)果——RC的輸出;所述輸出選擇模塊根據(jù)運(yùn)算單元配置信息將RC的輸出按特定的順序?qū)懭氲捷敵鯢IFO;所述輸出FIFO模塊根據(jù)所述輸出FIFO配置信息發(fā)送數(shù)據(jù)。通過本發(fā)明實(shí)施例提供的方案,解決循環(huán)任務(wù)在處理器上執(zhí)行時(shí)間較長的問題,提高循環(huán)任務(wù)的運(yùn)行速度,降低應(yīng)用程序總的運(yùn)行時(shí)間。
文檔編號G06F9/38GK101625635SQ200910090000
公開日2010年1月13日 申請日期2009年7月31日 優(yōu)先權(quán)日2009年7月31日
發(fā)明者于蘇東, 劉雷波, 尹首一, 王延升, 魏少軍 申請人:清華大學(xué)