一種用于多處理器的多端口訪存控制器的制造方法
【技術(shù)領(lǐng)域】
[0001]本實(shí)用新型涉及數(shù)字信號(hào)處理技術(shù)領(lǐng)域,尤其是一種用于多處理器的多端口訪存控制器。
【背景技術(shù)】
[0002]多端口訪存控制器的實(shí)用新型是為了解決在多處理器核和集成高速外設(shè)的片上網(wǎng)中,大量數(shù)據(jù)的存儲(chǔ)和交換工作。對(duì)于由SRAM構(gòu)成的存儲(chǔ)器陣列,既要利用其讀寫端口簡(jiǎn)單易操作的特性,又要兼顧多通道并發(fā)請(qǐng)求仲裁機(jī)制的合理性,充分發(fā)揮最大的數(shù)據(jù)帶寬。
[0003]以往多端口訪存控制器沿用請(qǐng)求和數(shù)據(jù)串入串出的特點(diǎn),對(duì)由單口 SRAM所構(gòu)成的存儲(chǔ)器,當(dāng)多路請(qǐng)求同時(shí)生效并且沖突時(shí),往往會(huì)按優(yōu)先級(jí)選擇其中某一路進(jìn)入存儲(chǔ)單元,其余請(qǐng)求則會(huì)等待,降低了訪存數(shù)據(jù)的吞吐率。
【實(shí)用新型內(nèi)容】
[0004]本實(shí)用新型的目的在于提供一種能夠提高訪存數(shù)據(jù)的吞吐率,減小因?yàn)榈刂窙_突所造成的等待時(shí)間的用于多處理器的多端口訪存控制器。
[0005]為實(shí)現(xiàn)上述目的,本實(shí)用新型采用了以下技術(shù)方案:一種用于多處理器的多端口訪存控制器,包括指令通道,其輸入端分別與多處理器的外設(shè)DMA通道、內(nèi)核DMA通道的輸出端相連,其輸出端與仲裁模塊的輸入端相連,仲裁模塊的輸出端與存儲(chǔ)器陣列的輸入端相連,存儲(chǔ)器陣列的輸出端與數(shù)據(jù)通道的輸入端相連,數(shù)據(jù)通道的輸出端分別與多處理器的外設(shè)DMA通道、內(nèi)核DMA通道的輸入端相連。
[0006]所述指令通道由第一、二 BANK選擇模塊、第一請(qǐng)求合并模塊、第二請(qǐng)求合并模塊、第一串行化模塊和第二串行化模塊組成,所述第一 BANK選擇模塊的輸入端與外設(shè)DMA通道的輸出端相連,第一 BANK選擇模塊的輸出端與第一請(qǐng)求合并模塊的輸入端相連,第一請(qǐng)求合并模塊的輸出端與第一串行化模塊的輸入端相連;所述第二 BANK選擇模塊的輸入端與內(nèi)核DMA通道的輸出端相連,第二 BANK選擇模塊的輸出端與第二請(qǐng)求合并模塊的輸入端相連,第二請(qǐng)求合并模塊的輸出端與第二串行化模塊的輸入端相連,第一串行化模塊、第二串行化模塊的輸出端均與仲裁模塊的輸入端相連。
[0007]所述存儲(chǔ)器陣列由多個(gè)存儲(chǔ)器BLOCK組成,每個(gè)存儲(chǔ)器BLOCK由多個(gè)存儲(chǔ)器BANK組成。
[0008]所述數(shù)據(jù)通道由輸出寄存器、DMA通道選擇模塊、數(shù)據(jù)排序模塊、數(shù)據(jù)合并模塊和數(shù)據(jù)輸出緩沖模塊組成,所述輸出寄存器的輸入端與存儲(chǔ)器陣列的輸出端相連,輸出寄存器的輸出端與DMA通道選擇模塊的輸入端相連,DMA通道選擇模塊的輸出端與數(shù)據(jù)排序模塊的輸入端相連,數(shù)據(jù)排序模塊的輸出端與數(shù)據(jù)合并模塊的輸入端相連,數(shù)據(jù)合并模塊的輸出端與內(nèi)設(shè)第三串行化模塊的數(shù)據(jù)輸出緩沖模塊的輸入端相連,數(shù)據(jù)緩沖模塊的輸出端分別與外設(shè)DMA通道、內(nèi)核DMA通道的輸入端相連。
[0009]所述第一請(qǐng)求合并模塊、第二請(qǐng)求合并模塊的電路相同,所述第一請(qǐng)求合并模塊由五級(jí)二選一數(shù)據(jù)選擇器組成,其中,第一級(jí)二選一數(shù)據(jù)選擇器C2的輸入端與第一 BANK選擇模塊的輸出端相連,第一級(jí)二選一數(shù)據(jù)選擇器C2的輸出端與第二級(jí)二選一數(shù)據(jù)選擇器C4的輸入端相連,第二級(jí)二選一數(shù)據(jù)選擇器C4的輸出端與第三級(jí)二選一數(shù)據(jù)選擇器CS的輸入端相連,第三級(jí)二選一數(shù)據(jù)選擇器CS的輸出端與第四級(jí)二選一數(shù)據(jù)選擇器C16的輸入端相連,第四級(jí)二選一數(shù)據(jù)選擇器C16的輸出端與第五級(jí)二選一數(shù)據(jù)選擇器C32的輸入端相連,第五級(jí)二選一數(shù)據(jù)選擇器C32的輸出端與第一串行化模塊的輸入端相連;第一級(jí)二選一數(shù)據(jù)選擇器C2的個(gè)數(shù)為外設(shè)DMA通道個(gè)數(shù)和內(nèi)核DMA通道個(gè)數(shù)之和的二分之一,第二級(jí)二選一數(shù)據(jù)選擇器C4的個(gè)數(shù)為第一級(jí)二選一數(shù)據(jù)選擇器C2的個(gè)數(shù)的二分之一,第三級(jí)二選一數(shù)據(jù)選擇器CS的個(gè)數(shù)為第二級(jí)二選一數(shù)據(jù)選擇器C4的個(gè)數(shù)的二分之一,第四級(jí)二選一數(shù)據(jù)選擇器C16的個(gè)數(shù)為第三級(jí)二選一數(shù)據(jù)選擇器CS的個(gè)數(shù)的二分之一,第五級(jí)二選一數(shù)據(jù)選擇器C32的個(gè)數(shù)為第四級(jí)二選一數(shù)據(jù)選擇器C16的個(gè)數(shù)的二分之一。
[0010]所述第一串行化模塊、第二串行化模塊的電路相同,所述第一串行化模塊由多個(gè)寄存器和多個(gè)二選一數(shù)據(jù)選擇器交替排序組成,寄存器和二選一數(shù)據(jù)選擇器的個(gè)數(shù)均為外設(shè)DMA通道個(gè)數(shù)和內(nèi)核DMA通道個(gè)數(shù)之和,各個(gè)二選一數(shù)據(jù)選擇器的第一輸入端均接第一請(qǐng)求合并模塊的輸出端,各個(gè)二選一數(shù)據(jù)選擇器的第二輸入端接與其相鄰的寄存器的輸出端Q端,各個(gè)二選一數(shù)據(jù)選擇器的控制端stall接倒數(shù)第二個(gè)寄存器的輸出端Q端,各個(gè)二選一數(shù)據(jù)選擇器的輸出端接與其相鄰的寄存器的輸入端D端,各個(gè)寄存器的控制端HOLD端與仲裁模塊的仲裁結(jié)果輸出端arbt端相連,最后一個(gè)寄存器的輸出端Q端作為第一串行化模塊的輸出端與仲裁模塊的輸入端相連。
[0011]所述數(shù)據(jù)合并模塊由多個(gè)寄存器和多個(gè)三十二選一數(shù)據(jù)選擇器交替排序組成,寄存器和數(shù)據(jù)選擇器的個(gè)數(shù)均為外設(shè)DMA通道個(gè)數(shù)和內(nèi)核DMA通道個(gè)數(shù)之和,各個(gè)數(shù)據(jù)選擇器的輸入端均接數(shù)據(jù)排序模塊的輸出端,各個(gè)數(shù)據(jù)選擇器的輸出端均接與其相鄰的寄存器的輸入端D端,各個(gè)數(shù)據(jù)選擇器的控制端stall接外設(shè)DMA通道、內(nèi)核DMA通道的輸出端,各個(gè)寄存器的輸出端Q端作為數(shù)據(jù)合并模塊的輸出端與數(shù)據(jù)輸出緩沖模塊的輸入端相連。
[0012]由上述技術(shù)方案可知,本實(shí)用新型在指令通道中將同一時(shí)刻多通道的請(qǐng)求選擇至目標(biāo)存儲(chǔ)器BANK,后經(jīng)并串行化模塊輸出至仲裁模塊,在獲取仲裁權(quán)后將讀寫請(qǐng)求選擇至相應(yīng)存儲(chǔ)器輸入端口 ;對(duì)于各存儲(chǔ)器BANK返回的讀數(shù)據(jù),同樣按照其所對(duì)應(yīng)的DMA通道號(hào)選擇至相應(yīng)的DMA數(shù)據(jù)通道,再經(jīng)數(shù)據(jù)合并和串行化后輸出。由于經(jīng)多端口訪存控制器輸出的讀數(shù)據(jù)順序與輸入的讀請(qǐng)求不一定相同,在DMA通道一端,需要按照數(shù)據(jù)所附加的ID號(hào)與請(qǐng)求ID相匹配。本實(shí)用新型為多路DMA通道并發(fā)請(qǐng)求提供了有效的響應(yīng)機(jī)制,兼顧請(qǐng)求響應(yīng)的實(shí)時(shí)性和存儲(chǔ)器帶寬充分利用的特點(diǎn),能夠提高訪存數(shù)據(jù)的吞吐率,減小因?yàn)榈刂窙_突所造成的等待時(shí)間。
【附圖說(shuō)明】
[0013]圖1為本實(shí)用新型的電路框圖。
[0014]圖2、3、4、5為本實(shí)用新型中存儲(chǔ)器陣列、第一請(qǐng)求合并模塊、第一串行化模塊、數(shù)據(jù)合并模塊的電路原理圖。
【具體實(shí)施方式】
[0015]一種用于多處理器的多端口訪存控制器,包括指令通道30,其輸入端分別與多處理器的外設(shè)DMA通道10、內(nèi)核DMA通道20的輸出端相連,其輸出端與仲裁模塊40的輸入端相連,仲裁模塊40的輸出端與存儲(chǔ)器陣列50的輸入端相連,存儲(chǔ)器陣列50的輸出端與數(shù)據(jù)通道60的輸入端相連,數(shù)據(jù)通道60的輸出端分別與多處理器的外設(shè)DMA通道10、內(nèi)核DMA通道20的輸入端相連,如圖1所示。指令通道30用于連接多路DMA請(qǐng)求接口,針對(duì)每個(gè)存儲(chǔ)器BANK串行化讀寫請(qǐng)求,對(duì)于每一個(gè)存儲(chǔ)器BANK均存在這樣一組邏輯;仲裁邏模塊用于按固定優(yōu)先級(jí)判定仲裁結(jié)果;存儲(chǔ)器陣列50是由單口 SRAM所組成的存儲(chǔ)器BANK和存儲(chǔ)器BLOCK,用于響應(yīng)經(jīng)仲裁模塊40輸出的讀寫數(shù)據(jù)請(qǐng)求;數(shù)據(jù)通道60,用于連接存儲(chǔ)器數(shù)據(jù)輸出端口,針對(duì)每個(gè)DMA請(qǐng)求通道合并讀出數(shù)據(jù)并將其串行化后輸出,對(duì)于每一個(gè)DMA請(qǐng)求通道均在這樣一組邏輯。
[0016]如圖1所示,所述指令通道30由第一、二 BANK選擇模塊、第一請(qǐng)求合并模塊31、第二請(qǐng)求合并模塊、第一串行化模塊32和第二串行化模塊組成,所述第一 BANK選擇模塊的輸入端與外設(shè)DMA通道10的輸出端相連,第一 BANK選擇模塊的輸出端與第一請(qǐng)求合并模塊31的輸入端相連,第一請(qǐng)求合并模塊31的輸出端與第一串行化模塊32的輸入端相連;所述第二 BANK選擇模塊的輸入端與內(nèi)核DMA通道20的輸出端相連,第二 BANK選擇模塊的輸出端與第二請(qǐng)求合并模塊