一種用于并發(fā)訪問的數據存儲器仲裁電路及仲裁方法
【專利摘要】一種用于并發(fā)訪問的數據存儲器仲裁電路,包括:—用于連接外設通道請求接口的外設DMA通道一級仲裁模塊,以固定優(yōu)先級仲裁策略將請求同一存儲器BLOCK的通道按從高優(yōu)先級到低優(yōu)先級排列;—用于連接本地訪存通道和核間訪存通道的訪存通道一級仲裁模塊;—用于連接外設DMA通道一級仲裁模塊和訪存通道一級仲裁模塊的外設DMA通道與訪存通道的二級仲裁模塊;—原子操作指令保護模塊,為每個存儲器BLOCK設置原子操作保護標志位。本發(fā)明孩提供了一種用于并發(fā)訪問的數據存儲器的仲裁方法。本發(fā)明的優(yōu)點在于:為多路外設DMA通道和多路訪存通道并發(fā)請求多端口數據存儲器提供了有效的仲裁策略,支持訪存通道原子類型的請求,可以及時響應高優(yōu)先級通道請求。
【專利說明】—種用于并發(fā)訪問的數據存儲器仲裁電路及仲裁方法
【技術領域】
[0001]本發(fā)明涉及一種應用于數字信號處理器的存儲器仲裁電路,屬數字信號處理器【技術領域】。
【背景技術】
[0002]隨著微電子工藝水平的發(fā)展,數字信號處理器性能日益提高,處理器由單核向多核發(fā)展,集成的外設部件也越來越多,與此相對應,外設通道、指令訪存通道、核間訪存通道對數據存儲器的帶寬匹配提出了新的需求。在這種背景下,多路優(yōu)先級不同的通道同時訪問存儲器時,便會出現復雜的仲裁和競爭關系,指令訪存通道中的原子操作在仲裁過程中還需要提供特殊的保護邏輯。
【發(fā)明內容】
[0003]本發(fā)明的所要解決的技術問題在于提供一種能夠解決多路外設DMA (DirectMemory Access,直接內存存取)通道、多路訪存通道對數據存儲器的優(yōu)先級仲裁的應用于數字信號處理器的數據存儲器仲裁電路。
[0004]本發(fā)明采用以下技術方案解決上述技術問題的:一種用于并發(fā)訪問的數據存儲器仲裁電路,包括:
[0005]一外設DMA通道一級仲裁模塊,用于連接外設通道請求接口,以固定優(yōu)先級仲裁策略將請求同一存儲器BLOCK的通道按從高優(yōu)先級到低優(yōu)先級排列,對于每個存儲器BLOCK均存在相類似的邏輯,外設DMA通道一級仲裁模塊初步預測出每個DMA通道的仲裁結果和每個存儲器BLOCK的占用狀態(tài);
[0006]一訪存通道一級仲裁模塊,用于連接本地訪存通道和核間訪存通道,訪存通道一次存儲器請求可以請求多個存儲器BLOCK,為保證執(zhí)行行操作的一致性,要求一次請求中的多個存儲器BLOCK同時獲得仲裁權,兩組訪存通道按多核操作系統(tǒng)要求,以固定優(yōu)先級仲裁策略進行仲裁判決;
[0007]一外設DMA通道與訪存通道的二級仲裁模塊,用于連接外設DMA通道一級仲裁模塊和訪存通道一級仲裁模塊,將兩個一級仲裁模塊輸出的仲裁結果結合原子操作指令保護模塊輸出的保護位標志聯合判定,以訪存優(yōu)先級大于外設DMA通道為仲裁策略,重新判定外設DMA通道的仲裁結果和存儲器BLOCK占用狀態(tài),生成多路通道的暫停和握手信號;
[0008]一原子操作指令保護模塊,為每個存儲器BLOCK設置原子操作保護標志位,當訪存通道請求為原子操作指令時,相應存儲器BLOCK保護標志位有效,此時,如果外設DMA通道有相同BLOCK請求,則判定其二級仲裁結果為失敗。
[0009]數字信號處理器中的存儲器仲裁電路存在于數據存儲器和請求通道之間,是按照優(yōu)先權利要求進行邏輯處理的電路模塊,其作用主要在于:
[0010]1、平衡存儲器讀寫帶寬與多路通道請求帶寬,可滿足多輸入請求通道至多輸出響應通道的選擇。
[0011]2、按通道優(yōu)先級要求,響應存儲器數據讀寫操作,保證高優(yōu)先級的請求優(yōu)先獲得響應,低優(yōu)先級的請求在高優(yōu)先級傳輸間隙獲得響應。
[0012]3、對于原子操作提供相應的保護機制,保證原子讀寫的一致性。
[0013]原子操作是不可分割的,在執(zhí)行完畢前不會被任何其它任務或事件中斷。在數字信號處理器中,定義原子操作指令如下:在原子操作指令中,讀請求和寫請求必須在同一執(zhí)行行中配對使用,同時,剩下的指令槽上不允許出現普通訪存指令。即原子操作為同一指令行上的一讀和一寫。
[0014]本發(fā)明還提供了一種用于并發(fā)訪問的數據存儲器仲裁的仲裁方法,具體包括下述步驟:
[0015]步驟一:判斷外設DMA通道M是否存在對存儲器BLOCK N的讀寫請求,并且通道M是否處于所有外設DMA通道中最高優(yōu)先級,如果是,則轉步驟二,如果否,則轉步驟三;
[0016]步驟二:判斷訪存通道是否存在對存儲器BLOCK N的讀寫請求,如果是,則轉步驟三,如果否,則轉步驟四;
[0017]步驟三:外設DMA通道M沒有獲得相應的仲裁權,如果通道M存在有效的存儲器讀寫操作,則下一時鐘周期前端輸入寄存器需要保持上一周期的值;訪存通道若存在相應存儲器讀寫請求則獲得對應的讀寫仲裁權;
[0018]步驟四:檢測存儲器BLOCK P的原子操作指令保護標志,如果有效,則轉步驟三,如果無效,則轉步驟五;
[0019]步驟五:外設DMA通道M獲得存儲器BLOCK P的訪問仲裁權,其讀寫信號會被選擇到相應的存儲器輸入端口,對于讀操作,還需要將仲裁結果隨流水線更新至后兩級,以生成讀出數據有效標志。
[0020]本發(fā)明的優(yōu)點在于:為多路外設DMA通道和多路訪存通道并發(fā)請求多端口數據存儲器提供了有效的仲裁策略,支持訪存通道原子類型的請求,可以及時響應高優(yōu)先級通道請求,同時,由于采用純組合邏輯電路,每個時鐘周期均可更新仲裁結果,低優(yōu)先級通道可以利用高優(yōu)先級通道傳輸間隙得以訪問存儲器,兼顧了多路通道請求的實時性和存儲器帶寬充分利用的特點。
【專利附圖】
【附圖說明】
[0021]圖1本發(fā)明應用于數字信號處理器的數據存儲器仲裁電路的結構框圖;
[0022]圖2是數據存儲器示意圖;
[0023]圖3是多路并發(fā)訪問數據存儲器時序示意圖。
【具體實施方式】
[0024]以下結合附圖對本發(fā)明進行詳細的描述。
[0025]如圖1所示,數據存儲器仲裁電路由純組合邏輯單元構成,其輸入為多路訪問請求通道經并串轉換后寄存輸出的讀寫端口,經過一級仲裁、二級仲裁共三個仲裁模塊后輸出至相應的存儲器輸入端口。
[0026]仲裁以存儲器BLOCK為單位,圖1所示為針對存儲器BL0CK0的仲裁選擇,若存儲器由N個(N大于I) BLOCK組成,則每個BLOCK均存在相應的應用于數字信號處理器的數據存儲器仲裁電路。原子操作指令保護標志在二級仲裁模塊影響各通道優(yōu)先級選擇及仲裁結果。與仲裁結果每周期更新行為相同,原子操作指令保護標志位同樣每周期隨訪存指令更新。
[0027]如圖2所示,仲裁電路所支持的數據存儲器由多個BLOCK構成,每個存儲器BLOCK由多個存儲器BANK構成,圖2中所舉例的存儲器BANK深度為8KB,數據位寬為32bit。
[0028]如圖3所示,Tl時刻外設DMA通道O發(fā)起對存儲器BLOCKO的讀寫請求,同時外設DMA通道I發(fā)起對存儲器BLOCKl的請求,訪存通道發(fā)起對存儲器BL0CK2的請求,由于沒有發(fā)生BLOCK沖突,3路訪問通道均獲得仲裁權。
[0029]T2時刻外設DMA通道O發(fā)起對存儲器BLOCKl的請求,同時外設DMA通道I也發(fā)起對存儲器BLOCKl的請求,并與訪存通道請求不沖突,此時訪存通道與外設DMA通道I均獲得仲裁權,外設DMA通道O失去仲裁權。
[0030]T3時刻由于外設DMA通道均與訪存通道相沖突,訪存通道獲得仲裁權,外設DMA通道均失去仲裁權。
[0031]T4時刻訪存通道發(fā)起原子操作請求,并且原子操作針對存儲器BL0CK2,與此同時,外設DMA與訪存通道沒有發(fā)生BLOCK沖突,因而均可以獲得仲裁權。
[0032]T5時間段內受原子操作指令保護標志的影響,任何外設DMA通道發(fā)起的對存儲器BL0CK2的請求均被阻塞,而外設DMA通道O發(fā)起的針對存儲器BL0CK3的請求則可以被選擇服務。
[0033]數據存儲器仲裁電路具體工作方式如下所述:
[0034]步驟一:判斷外設DMA通道M是否存在對存儲器BLOCK N的讀寫請求,并且通道M是否處于所有外設DMA通道中最高優(yōu)先級,如果是,則轉步驟二,如果否,則轉步驟三;
[0035]步驟二:判斷訪存通道是否存在對存儲器BLOCK N的讀寫請求,如果是,則轉步驟三,如果否,則轉步驟四;
[0036]步驟三:外設DMA通道M沒有獲得相應的仲裁權,如果通道M存在有效的存儲器讀寫操作,則下一時鐘周期前端輸入寄存器需要保持上一周期的值;訪存通道若存在相應存儲器讀寫請求則獲得對應的讀寫仲裁權;
[0037]步驟四:檢測存儲器BLOCK P的原子操作指令保護標志,如果有效,則轉步驟三,如果無效,則轉步驟五;
[0038]步驟五:外設DMA通道M獲得存儲器BLOCK P的訪問仲裁權,其讀寫信號會被選擇到相應的存儲器輸入端口,對于讀操作,還需要將仲裁結果隨流水線更新至后兩級,以生成讀出數據有效標志。
[0039]上述M和P是I到N之間的任一數字。
[0040]以上所述僅為本發(fā)明創(chuàng)造的較佳實施例而已,并不用以限制本發(fā)明創(chuàng)造,凡在本發(fā)明創(chuàng)造的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明創(chuàng)造的保護范圍之內。
【權利要求】
1.一種用于并發(fā)訪問的數據存儲器仲裁電路,其特征在于:包括: 一外設DMA通道一級仲裁模塊,用于連接外設通道請求接口,以固定優(yōu)先級仲裁策略將請求同一存儲器BLOCK的通道按從高優(yōu)先級到低優(yōu)先級排列,對于每個存儲器BLOCK均存在相類似的邏輯,外設DMA通道一級仲裁模塊初步預測出每個DMA通道的仲裁結果和每個存儲器BLOCK的占用狀態(tài); 一訪存通道一級仲裁模塊,用于連接本地訪存通道和核間訪存通道,訪存通道一次存儲器請求可以請求多個存儲器BLOCK,為保證執(zhí)行行操作的一致性,要求一次請求中的多個存儲器BLOCK同時獲得仲裁權,兩組訪存通道按多核操作系統(tǒng)要求,以固定優(yōu)先級仲裁策略進行仲裁判決; 一外設DMA通道與訪存通道的二級仲裁模塊,用于連接外設DMA通道一級仲裁模塊和訪存通道一級仲裁模塊,將兩個一級仲裁模塊輸出的仲裁結果結合原子操作指令保護模塊輸出的保護位標志聯合判定,以訪存優(yōu)先級大于外設DMA通道為仲裁策略,重新判定外設DMA通道的仲裁結果和存儲器BLOCK占用狀態(tài),生成多路通道的暫停和握手信號; 一原子操作指令保護模塊,為每個存儲器BLOCK設置原子操作保護標志位,當訪存通道請求為原子操作指令時,相應存儲器BLOCK保護標志位有效,此時,如果外設DMA通道有相同BLOCK請求,則判定其二級仲裁結果為失敗。
2.如權利要求1所述的一種用于并發(fā)訪問的數據存儲器仲裁電路,其特征在于:上述用于并發(fā)訪問的數據存儲器仲裁電路的仲裁方法如下所述: 步驟一:判斷外設DMA通道M是否存在對存儲器BLOCK N的讀寫請求,并且通道M是否處于所有外設DMA通道中最高優(yōu)先級,如果是,則轉步驟二,如果否,則轉步驟三; 步驟二:判斷訪存通道是否存在對存儲器BLOCK N的讀寫請求,如果是,則轉步驟三,如果否,則轉步驟四; 步驟三:外設DMA通道M沒有獲得相應的仲裁權,如果通道M存在有效的存儲器讀寫操作,則下一時鐘周期前端輸入寄存器需要保持上一周期的值;訪存通道若存在相應存儲器讀與請求則獲得對應的讀與仲裁權; 步驟四:檢測存儲器BLOCK P的原子操作指令保護標志,如果有效,則轉步驟三,如果無效,則轉步驟五; 步驟五:外設DMA通道M獲得存儲器BLOCK P的訪問仲裁權,其讀寫信號會被選擇到相應的存儲器輸入端口,對于讀操作,還需要將仲裁結果隨流水線更新至后兩級,以生成讀出數據有效標志。
3.一種用于并發(fā)訪問的數據存儲器仲裁的仲裁方法,其特征在于:具體包括下述步驟: 步驟一:判斷外設DMA通道M是否存在對存儲器BLOCK N的讀寫請求,并且通道M是否處于所有外設DMA通道中最高優(yōu)先級,如果是,則轉步驟二,如果否,則轉步驟三; 步驟二:判斷訪存通道是否存在對存儲器BLOCK N的讀寫請求,如果是,則轉步驟三,如果否,則轉步驟四; 步驟三:外設DMA通道M沒有獲得相應的仲裁權,如果通道M存在有效的存儲器讀寫操作,則下一時鐘周期前端輸入寄存器需要保持上一周期的值;訪存通道若存在相應存儲器讀與請求則獲得對應的讀與仲裁權; 步驟四:檢測存儲器BLOCK P的原子操作指令保護標志,如果有效,則轉步驟三,如果無效,則轉步驟五; 步驟五:外設DMA通道M獲得存儲器BLOCK P的訪問仲裁權,其讀寫信號會被選擇到相應的存儲器輸入端口,對于讀操作,還需要將仲裁結果隨流水線更新至后兩級,以生成讀出數據有效標志。
【文檔編號】G06F13/28GK104298628SQ201410519692
【公開日】2015年1月21日 申請日期:2014年9月30日 優(yōu)先權日:2014年9月30日
【發(fā)明者】胡孔陽, 劉小明, 龔曉華, 劉玉, 胡海生, 王媛 申請人:中國電子科技集團公司第三十八研究所