一種基于乒乓操作的高效率控制器及其方法
【專利摘要】本發(fā)明涉及一種基于乒乓操作的高效率控制器,與外部DSP核連接,包括外部接口模塊,用于實現(xiàn)控制器與外部DSP之間的數(shù)據(jù)傳遞;主狀態(tài)機模塊,用于完成狀態(tài)的跳轉(zhuǎn),通過將計算時間掩蓋搬運數(shù)據(jù)的時間,實現(xiàn)乒乓功能;寄存器組,用于實現(xiàn)外部DSP與本控制器的信息交互;存儲分配單元,用于完成內(nèi)部存儲的分配,為實現(xiàn)乒乓操作提供存儲資源基礎。有益效果為:將內(nèi)部存儲資源分為兩部分,在前半部分運算時,搬運后半部分所需的數(shù)據(jù),從而掩蓋部分搬運數(shù)據(jù)的時間,實現(xiàn)乒乓操作流程,提高實際運算效率。
【專利說明】一種基于乒乓操作的高效率控制器及其方法
【技術(shù)領域】
[0001] 本發(fā)明涉及控制器,尤其涉及基于乒乓操作的高效率控制器及其方法。
【背景技術(shù)】
[0002] 未來的新型雷達系統(tǒng)將是數(shù)字的、開放的、甚至軟件化的結(jié)構(gòu),先進雷達總的趨勢 是向陣列化、一體化、精細化、智能化方向發(fā)展,其先進性主要體現(xiàn)在性能提升,功能增加, 體制變化和新技術(shù)新算法應用方面,雷達總體的發(fā)展對處理芯片以及處理系統(tǒng)提出了多通 道、高帶寬、大容量、巨型計算的應用需求。為此,信號處理的核心芯片必須不斷升級,以滿 足雷達系統(tǒng)的應用需求。
[0003] 由于搬運數(shù)據(jù)一般是由DM完成,而搬運時間很大程度取決于外部總線的通道建 立時間,在多核系統(tǒng)中,該時間是不可控的,因此搬運時間將大大增加,從而使處理器整體 運算效率下降,搬運數(shù)據(jù)的時間已成為運算效率提升的瓶頸問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明目的在于克服以上現(xiàn)有技術(shù)之不足,提供一種基于乒乓操作的高效率控制 器,具體有以下技術(shù)方案實現(xiàn): 所述基于乒乓操作的高效率控制器,與外部DSP核連接,包括 外部接口模塊,用于實現(xiàn)控制器與外部DSP之間的數(shù)據(jù)傳遞; 主狀態(tài)機模塊,用于完成狀態(tài)的跳轉(zhuǎn),通過將計算時間掩蓋搬運數(shù)據(jù)的時間,實現(xiàn)乒乓 功能; 寄存器組,用于實現(xiàn)外部DSP與本控制器的信息交互; 存儲分配單元,用于完成內(nèi)部存儲的分配,為實現(xiàn)乒乓操作提供存儲資源基礎。
[0005] 所述基于乒乓操作的高效率控制器的進一步設計在于,所述主狀態(tài)機模塊狀態(tài)設 置,在啟動"乒"部分運算后,直接搬運"乓"部分所需數(shù)據(jù),實現(xiàn)將搬運數(shù)據(jù)的時間掩蓋。 [0006] 所述基于乒乓操作的高效率控制器的進一步設計在于,所述存儲分配單元為靜態(tài) 隨機存儲器,包括系統(tǒng)存儲單元與數(shù)據(jù)存儲單元,所述系數(shù)存儲單元由八個存儲塊組成,數(shù) 據(jù)存儲由三十二個存儲塊組成,在乒乓操作時,數(shù)據(jù)存儲分為前后各十六個存儲塊,分別作 為"乒"、"乓"部分運算的存儲資源。
[0007] 根據(jù)所述基于乒乓操作的高效率控制器,提供一種基于乒乓操作的高效率控制方 法,包括如下步驟: 1) 主狀態(tài)機模塊檢測配置信息,若配置信息有效,則讀入配置信息,轉(zhuǎn)入步驟2); 2) 主狀態(tài)機模塊分析配置信息中的運算類型,若運算類型合法,則進入步驟3); 3) 主狀態(tài)機模塊查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到DM空閑,將 搬運第一批源數(shù)據(jù)時DMA所需的參數(shù)傳入DMA ; 4) DM搬運第一批源數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟5); 5) 判斷是否需要搬運第二批源數(shù)據(jù),若需要則轉(zhuǎn)入步驟6),若不需要則轉(zhuǎn)入步驟8); 6) 查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到DM空閑,將搬運第二批源 數(shù)據(jù)時DM所需的參數(shù)傳入DMA,配置完成后轉(zhuǎn)入步驟7); 7) DM搬運第二批源數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟8); 8) 在該狀態(tài)下拉低與DM相關(guān)的所有信號,轉(zhuǎn)入步驟9); 9) 查詢運算陣列是否空閑,若運算陣列忙則保持查詢狀態(tài)直到檢測到運算陣列空閑, 啟動運算陣列; 10) 若需要乒乓操作且為第一次乒乓,則轉(zhuǎn)入步驟2),否則查詢運算陣列是否計算完 畢,若收到計算完成信號,則轉(zhuǎn)入步驟11); 11) 查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到DM空閑,將搬運結(jié)果數(shù) 據(jù)時DM所需的參數(shù)傳入DMA,配置完成后進入步驟12); 12) DM搬運結(jié)果數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟13); 13) 若需要乒乓操作且為最后一次乒乓,則轉(zhuǎn)入步驟11),若需要乒乓操作但不是最后 一次乒乓,則轉(zhuǎn)入步驟2),若整個算法完成,則轉(zhuǎn)入步驟1 ),主狀態(tài)機模塊處于等待狀態(tài)。
[0008] 本發(fā)明的優(yōu)點如下: 本發(fā)明提供的基于乒乓操作的高效率控制器,將內(nèi)部存儲資源分為兩部分,在前半部 分運算時,搬運后半部分所需的數(shù)據(jù),從而掩蓋部分搬運數(shù)據(jù)的時間,實現(xiàn)乒乓操作流程, 提商實際運算效率。
【專利附圖】
【附圖說明】
[0009] 圖1是RASP體系結(jié)構(gòu)示意圖。
[0010] 圖2是主狀態(tài)機狀態(tài)轉(zhuǎn)換圖。
[0011] 圖3是mem_sel賦值圖(兵兵操作)。
[0012] 圖4是乒乓操作示意圖。
【具體實施方式】
[0013] 下面結(jié)合附圖對本發(fā)明方案進行詳細的說明。
[0014] 本實施例提供的基于乒乓操作的高效率控制器,與外部DSP核連接,主要由外部 接口模塊、主狀態(tài)機模塊、寄存器組以及存儲分配單元組成。其中,外部接口模塊,用于實 現(xiàn)控制器與外部DSP之間的數(shù)據(jù)傳遞;主狀態(tài)機模塊,用于完成狀態(tài)的跳轉(zhuǎn),通過將計算時 間掩蓋搬運數(shù)據(jù)的時間,實現(xiàn)乒乓功能;寄存器組,用于實現(xiàn)外部DSP與本控制器的信息交 互;存儲分配單元,用于完成內(nèi)部存儲的分配,為實現(xiàn)乒乓操作提供存儲資源基礎。
[0015] 進一步的,主狀態(tài)機模塊狀態(tài)設置,在啟動"乒"部分運算后,直接搬運"乓"部分 所需數(shù)據(jù),實現(xiàn)將搬運數(shù)據(jù)的時間掩蓋。
[0016] 本實施例中,存儲分配單元為靜態(tài)隨機存儲器,包括系統(tǒng)存儲單元與數(shù)據(jù)存儲單 元,系數(shù)存儲單元由八個存儲塊組成,數(shù)據(jù)存儲由三十二個存儲塊組成,在乒乓操作時,數(shù) 據(jù)存儲分為前后各十六個存儲塊,分別作為"乒"、"乓"部分運算的存儲資源。
[0017] 以一款專用可重構(gòu)應用處理器核(RASP)作為驗證平臺。RASP的總體架構(gòu)如圖1 所示,其主體結(jié)構(gòu)包括主控制器、重構(gòu)控制器、可重構(gòu)計算陣列、存儲器、DM和AXI接口。其 中主控制器即為本發(fā)明方案所述控制器。
[0018] 本實施例提供的基于乒乓操作的高效率控制器,其主狀態(tài)機模塊中,共有如下幾 個狀態(tài): IDLE :若配置信息有效,則讀入配置信息,此時進入READY狀態(tài)。
[0019] READY :這時分析配置信息中的運算類型,若運算類型合法,則進入INPUT_ADDR1_ READY狀態(tài)。
[0020] INPUT_ADDR1_READY :查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到 DM空閑,將搬運第一批源數(shù)據(jù)時DM所需的參數(shù)傳入DMA,配置完成后進入INPUT_ADDR1_ TRANS狀態(tài)。
[0021] INPUT_ADDR1_TRANS :DMA搬運第一批源數(shù)據(jù),當收到搬運結(jié)束的信號時,進入 INPUT_ADDR1_TRANS_FINISH 狀態(tài)。
[0022] INPUT_ADDR1_TRANS_FINI SH:判斷是否需要搬運第二批源數(shù)據(jù),若需要則進入 INPUT_ADDR2_READY狀態(tài),若不需要則直接進入CALCULATE_READY狀態(tài)。
[0023] INPUT_ADDR2_READY :查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到 DM空閑,將搬運第二批源數(shù)據(jù)時DM所需的參數(shù)傳入DMA,配置完成后進入INPUT_ADDR2_ TRANS狀態(tài)。
[0024] INPUT_ADDR2_TRANS :DMA搬運第二批源數(shù)據(jù),當收到搬運結(jié)束的信號時,進入 INPUT_ADDR2_TRANS_FINISH 狀態(tài)。
[0025] INPUT_ADDR2_TRANS_FINISH :在該狀態(tài)下拉低與DMA相關(guān)的所有信號,進入 CALCULATE_READY 狀態(tài)。
[0026] CAIXULATE_READY :查詢運算陣列是否空閑,若運算陣列忙則保持查詢狀態(tài)直到檢 測到運算陣列空閑,啟動運算陣列,進入CAIXULATE狀態(tài)。
[0027] CAIXULATE :若需要乒乓操作且為第一次乒乓,則跳回READY狀態(tài),否則查詢運算 陣列是否計算完畢,若收到計算完成信號,則進入RESULT_TRANS_READY狀態(tài)。
[0028] RESULT_TRANS_READY :查詢DM是否空閑,若DM忙則保持查詢狀態(tài)直到檢測到 DM空閑,將搬運結(jié)果數(shù)據(jù)時DM所需的參數(shù)傳入DMA,配置完成后進入RESULT_TRANS狀 態(tài)。
[0029] RESULT_TRANS :DMA搬運結(jié)果數(shù)據(jù),當收到搬運結(jié)束的信號時,進入RESULT_ TRANS_FINISH 狀態(tài)。
[0030] RESULT_TRANS_FINISH :若需要乒乓操作且為最后一次乒乓,則跳回RESULT_ TRANS_READY狀態(tài),若需要乒乓操作但不是最后一次乒乓,則跳回READY狀態(tài),若整個算法 完成,則跳回IDLE狀態(tài)。
[0031] 狀態(tài)轉(zhuǎn)換圖如圖2所示。
[0032] 本實施例提供的基于乒乓操作的高效率控制器,其存儲分配單元由一組3位的信 號mem_ sel控制,三位分別代表系數(shù)存儲,數(shù)據(jù)存儲前16個bank,數(shù)據(jù)存儲后16個bank。 每一位中,0代表該部分存儲單元給DMA_P0RT使用,1代表該部分存儲單元給運算陣列使 用。非兵兵操作下,當搬運源數(shù)據(jù)或結(jié)果時,mem_sel的3位均為0 ;當運算時,mem_sel的 3位均為1 ;當可以進行乒乓操作時,mem_sel的賦值如圖3所示。
[0033] 本實施例提供的基于乒乓操作的高效率控制器,其乒乓流程如圖4所示。在計算 數(shù)據(jù)存儲前16個bank的結(jié)果時,搬運數(shù)據(jù)存儲后16個bank的數(shù)據(jù);在計算數(shù)據(jù)存儲后16 個bank的結(jié)果時,搬運數(shù)據(jù)存儲前16個bank的數(shù)據(jù)。
[0034] 系統(tǒng)測試: 以典型算法FFT為例,基于VCS平臺進行仿真測試,分別取樣Ik點FFT,4k點FFT和 32k點FFT,采取連續(xù)兩次同點數(shù)非乒乓操作與乒乓操作對比的方式,得到效率提升對比表 如表1所示。
[0035] 表 1
【權(quán)利要求】
1. 一種基于兵兵操作的高效率控制器,與外部DSP核連接,其特征在于包括 外部接口模塊,用于實現(xiàn)控制器與外部DSP之間的數(shù)據(jù)傳遞; 主狀態(tài)機模塊,用于完成狀態(tài)的跳轉(zhuǎn),通過將計算時間掩蓋搬運數(shù)據(jù)的時間,實現(xiàn)兵兵 功能; 寄存器組,用于實現(xiàn)外部DSP與本控制器的信息交互; 存儲分配單元,用于完成內(nèi)部存儲的分配,為實現(xiàn)兵兵操作提供存儲資源基礎。
2. 根據(jù)權(quán)利要求1所述的基于兵兵操作的高效率控制器,其特征在于所述主狀態(tài)機模 塊狀態(tài)設置,在啟動"兵"部分運算后,直接搬運"兵"部分所需數(shù)據(jù),實現(xiàn)將搬運數(shù)據(jù)的時 間掩蓋。
3. 根據(jù)權(quán)利要求1所述的基于兵兵操作的高效率控制器,其特征在于所述存儲分配單 元為靜態(tài)隨機存儲器,包括系統(tǒng)存儲單元與數(shù)據(jù)存儲單元,所述系數(shù)存儲單元由八個存儲 塊組成,數(shù)據(jù)存儲由H十二個存儲塊組成,在兵兵操作時,數(shù)據(jù)存儲分為前后各十六個存儲 塊,分別作為"兵"、"兵"部分運算的存儲資源。
4. 如權(quán)利要求1-3任一項所述的基于兵兵操作的高效率控制器,提供一種基于兵兵操 作的高效率控制方法,其特征在于包括如下步驟: 1) 主狀態(tài)機模塊檢測配置信息,若配置信息有效,則讀入配置信息,轉(zhuǎn)入步驟2); 2) 主狀態(tài)機模塊分析配置信息中的運算類型,若運算類型合法,則進入步驟3); 3) 主狀態(tài)機模塊查詢DMA是否空閑,若DMA忙則保持查詢狀態(tài)直到檢測到DMA空閑,將 搬運第一批源數(shù)據(jù)時DMA所需的參數(shù)傳入DMA ; 4. DMA搬運第一批源數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟5); 5) 判斷是否需要搬運第二批源數(shù)據(jù),若需要則轉(zhuǎn)入步驟6),若不需要則轉(zhuǎn)入步驟8); 6) 查詢DMA是否空閑,若DMA忙則保持查詢狀態(tài)直到檢測到DMA空閑,將搬運第二批源 數(shù)據(jù)時DMA所需的參數(shù)傳入DMA,配置完成后轉(zhuǎn)入步驟7); 7. DMA搬運第二批源數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟8); 8) 在該狀態(tài)下拉低與DMA相關(guān)的所有信號,轉(zhuǎn)入步驟9); 9) 查詢運算陣列是否空閑,若運算陣列忙則保持查詢狀態(tài)直到檢測到運算陣列空閑, 啟動運算陣列; 10) 若需要兵兵操作且為第一次兵兵,則轉(zhuǎn)入步驟2),否則查詢運算陣列是否計算完 畢,若收到計算完成信號,則轉(zhuǎn)入步驟11); 11) 查詢DMA是否空閑,若DMA忙則保持查詢狀態(tài)直到檢測到DMA空閑,將搬運結(jié)果數(shù) 據(jù)時DMA所需的參數(shù)傳入DMA,配置完成后進入步驟12); 12. DMA搬運結(jié)果數(shù)據(jù),當收到搬運結(jié)束的信號時,轉(zhuǎn)入步驟13); 13) 若需要兵兵操作且為最后一次兵兵,則轉(zhuǎn)入步驟11),若需要兵兵操作但不是最后 一次兵兵,則轉(zhuǎn)入步驟2),若整個算法完成,則轉(zhuǎn)入步驟1 ),主狀態(tài)機模塊處于等待狀態(tài)。
【文檔編號】G06F9/38GK104461465SQ201410833374
【公開日】2015年3月25日 申請日期:2014年12月29日 優(yōu)先權(quán)日:2014年12月29日
【發(fā)明者】潘紅兵, 李麗, 錢禹, 任穩(wěn)穩(wěn), 陳鎧, 周海斌, 何書專, 沙金, 李偉 申請人:南京大學, 中國電子科技集團公司第十四研究所