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