新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的存儲(chǔ)器共享與快速訪(fǎng)問(wèn)技術(shù)設(shè)計(jì)

基于DSP的存儲(chǔ)器共享與快速訪(fǎng)問(wèn)技術(shù)設(shè)計(jì)

作者: 時(shí)間:2012-07-26 來(lái)源:網(wǎng)絡(luò) 收藏

本文介紹了在多個(gè)之間或者與其他CPU之間共享技術(shù)的基本設(shè)計(jì)方法,重點(diǎn)介紹了如何在設(shè)計(jì)上提高的訪(fǎng)問(wèn)速度和克服訪(fǎng)問(wèn)競(jìng)爭(zhēng)的方法。
在多任務(wù)信號(hào)處理系統(tǒng)中,為了提高信號(hào)的處理速度,往往使用幾個(gè)協(xié)同工作,為此,必須要解決好幾個(gè)DSP對(duì)共享的高速訪(fǎng)問(wèn)問(wèn)題。具體來(lái)說(shuō),主要要解決好兩個(gè)問(wèn)題:
  
(1)通過(guò)建立競(jìng)爭(zhēng)仲裁機(jī)制解決存儲(chǔ)器訪(fǎng)問(wèn)共享競(jìng)爭(zhēng)問(wèn)題;
(2)解決批量數(shù)據(jù)高速訪(fǎng)問(wèn)問(wèn)題。DSP對(duì)批量數(shù)據(jù)的訪(fǎng)問(wèn)一般都是通過(guò)啟動(dòng)DMA完成,而DMA一旦啟動(dòng),數(shù)據(jù)的傳輸就不受DSP控制,因此,要設(shè)計(jì)專(zhuān)門(mén)控制電路和緩沖區(qū)來(lái)確保高速數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。

本文引用地址:http://m.butianyuan.cn/article/257332.htm

本文重點(diǎn)介紹了兩個(gè)TMS320C5402之間共享SRAM和DDRSDRAM的設(shè)計(jì)方法。

1 SRAM的共享訪(fǎng)問(wèn)
  
圖1是2片TMS320C5402共享SRAM的原理圖。為了保證對(duì)SRAM訪(fǎng)問(wèn)的可靠性,2片DSP共用同一個(gè)系統(tǒng)時(shí)鐘和具有相同的訪(fǎng)問(wèn)優(yōu)先級(jí)。當(dāng)2片DSP同時(shí)對(duì)共享存儲(chǔ)器發(fā)出訪(fǎng)問(wèn)需求時(shí),F(xiàn)PGA中的共享仲裁控制邏輯會(huì)在第1個(gè)存儲(chǔ)器訪(fǎng)問(wèn)周期允許第1片DSP對(duì)SRAM進(jìn)行訪(fǎng)問(wèn),同時(shí)向第2片DSP發(fā)出READY等待信號(hào),然后在下一個(gè)存儲(chǔ)器訪(fǎng)問(wèn)周期撤銷(xiāo)該等待信號(hào),允許第2片DSP對(duì)SDRAM進(jìn)行訪(fǎng)問(wèn)。如果進(jìn)行批量數(shù)據(jù)傳輸,則2片DSP對(duì)應(yīng)的READY信號(hào)會(huì)交替啟動(dòng)。FPGA中的2個(gè)雙向緩沖器是互相禁止的。另外,在DSP的軟件編程時(shí)要注意,在軟件等待周期寄存器被寫(xiě)入后至少要等待2個(gè)時(shí)鐘周期DSP才會(huì)啟動(dòng)對(duì)READY信號(hào)的檢測(cè)。



2 DDRSDRAM的高速共享訪(fǎng)問(wèn)
  
在上述方式中,如果2片DSP同時(shí)要對(duì)共享存儲(chǔ)器進(jìn)行訪(fǎng)問(wèn),其訪(fǎng)問(wèn)速度將會(huì)降低一倍。在實(shí)際的信號(hào)處理系統(tǒng)中,特別是在連續(xù)視頻信號(hào)的編碼、壓縮與速訪(fǎng)問(wèn),如果采用大容量雙口RAM,其硬件成本開(kāi)銷(xiāo)太大?,F(xiàn)在PC機(jī)中大量使用的雙速數(shù)據(jù)同步動(dòng)態(tài)存儲(chǔ)器(Double Data Rate Synchronous,DRAM)具有存儲(chǔ)容量大、訪(fǎng)問(wèn)速度快、價(jià)格低廉等特點(diǎn),因此在大容量高速數(shù)字信號(hào)處理系統(tǒng)中,只要解決好對(duì)DDRSDRAM的讀寫(xiě)訪(fǎng)問(wèn)控制問(wèn)題,就能解決好大容量高速存儲(chǔ)器的共享訪(fǎng)問(wèn)問(wèn)題。

2.1 DDRSDRAM的讀寫(xiě)訪(fǎng)問(wèn)特性
  
圖2為現(xiàn)代公司的HY5DV651622雙速同步動(dòng)態(tài)存儲(chǔ)器的功能框圖。其存儲(chǔ)容量為8 Mb,數(shù)據(jù)寬度為16 B,分為4個(gè)頁(yè)面,采用行列地址復(fù)用方式。在時(shí)鐘的上升和下降沿均可以進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。對(duì)DRAM的控制包括命令控制和數(shù)據(jù)讀寫(xiě)控制,在命令控制中主要包括模式寄存器設(shè)置、存儲(chǔ)器自動(dòng)刷新控制等,通過(guò)模式寄存器的設(shè)置可以使存儲(chǔ)器工作于猝發(fā)讀寫(xiě)方式,讀寫(xiě)長(zhǎng)度可以達(dá)到256個(gè)地址。 



2.2 共享DDRSDRAM的工作過(guò)程
  
為了保證DSP對(duì)SDRAM大數(shù)據(jù)量訪(fǎng)問(wèn)的高效性,將SDRAM設(shè)置為猝發(fā)讀寫(xiě)模式,DSP設(shè)置為DMA方式,在FPGA中設(shè)置容量均為128 b的SRAM緩沖區(qū)B0和B1做為數(shù)據(jù)緩存區(qū),從SDRAM中輸出的數(shù)據(jù)或輸入至SDRAM的數(shù)據(jù)都要經(jīng)過(guò)B0和B1,通過(guò)控制寄存器的設(shè)置將B0和B1都映射到2片DSP中地址為FF00H到FF80H的數(shù)據(jù)區(qū)間,但同一時(shí)刻1片DSP只能訪(fǎng)問(wèn)B0或B1中的1個(gè)。

在實(shí)際工作中,當(dāng)一片DSP訪(fǎng)問(wèn)B0時(shí),另一片DSP或SDRAM訪(fǎng)問(wèn)B1;相應(yīng)地當(dāng)一片DSP訪(fǎng)問(wèn)B1時(shí),另一片DSP或SDRAM則訪(fǎng)問(wèn)B0。如果SDRAM和DSP同時(shí)向同一個(gè)數(shù)據(jù)緩沖區(qū)B0或B1寫(xiě)入或讀出數(shù)據(jù),F(xiàn)PGA會(huì)自動(dòng)禁止,并通過(guò)控制寄存器向DSP傳遞數(shù)據(jù)讀寫(xiě)狀態(tài)錯(cuò)誤信息。這種數(shù)據(jù)傳遞方式不僅加速了DSP對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)速度,而且解決了DSP和SDRAM之間時(shí)鐘頻率不同步問(wèn)題,不用像圖1那樣讓2片DSP共享同一個(gè)時(shí)鐘。SDRAM與雙DSP的接口如圖3所示?!?/p>



  
具體來(lái)說(shuō),DSP對(duì)SDRAM的訪(fǎng)問(wèn)分以下兩種情況:
  
(1)同時(shí)只有1片DSP對(duì)SDRAM訪(fǎng)問(wèn) 此時(shí)B0,B1均屬于該DSP所有,以讀數(shù)據(jù)為例,首先DSP將需要對(duì)SDRAM訪(fǎng)問(wèn)的首末地址通過(guò)控制寄存器寫(xiě)入FPGA,并且設(shè)置B0,B1為空的標(biāo)志,然后起動(dòng)數(shù)據(jù)傳送命令,F(xiàn)PGA在收到該命令后讀入128字入B0,并設(shè)置B0的標(biāo)志為滿(mǎn),隨后再讀入128字入B1,并設(shè)置B1的標(biāo)志為滿(mǎn);接著判斷B0的標(biāo)志是否為空,若為空則讀出128字入B0,并設(shè)置B0的標(biāo)志為滿(mǎn),否則等待直到B0的標(biāo)志為空,判斷B1的標(biāo)志是否為空,若為空則讀出128字入B1,并設(shè)置B1的標(biāo)志為滿(mǎn),否則等待直到B1的標(biāo)志為空。如此反復(fù),直到讀取數(shù)據(jù)結(jié)束或收到數(shù)據(jù)讀取結(jié)束命令為止。對(duì)DSP來(lái)說(shuō),他在發(fā)出起動(dòng)數(shù)據(jù)傳送命令后,判斷B0標(biāo)志是否為滿(mǎn),若為滿(mǎn),則起動(dòng)DMA讀取該128字,讀取結(jié)束后設(shè)置B0的標(biāo)志為空,然后用同樣的方法去讀取B1中的數(shù)據(jù)。如此反復(fù)直到將規(guī)定的數(shù)據(jù)讀取完畢為止。

(2)2片DSP同時(shí)對(duì)SDRAM訪(fǎng)問(wèn) 與單片DSP的訪(fǎng)問(wèn)方法類(lèi)似,通過(guò)B0、B1及相應(yīng)的標(biāo)志位設(shè)定完成數(shù)據(jù)的訪(fǎng)問(wèn)。

2.3 共享DDRSDRAM的讀寫(xiě)訪(fǎng)問(wèn)邏輯設(shè)計(jì)
  
DSP提供下列信號(hào)給外部存儲(chǔ)器用以完成外部控制:CLK,CS,A0~A15,D0~D15,R/W,MSTRB,ISTRB和IS,但是DDRSDRAM使用的控制信號(hào)為:CLK,/CLK,CKE,/CS,/RAS,/CAS,/WE,數(shù)據(jù)總線(xiàn)DQ0~DQ15和地址總線(xiàn)A0~A11。由于控制信號(hào)的不同,因此在DSP和SDRAM的接口電路中需要用邏輯電路根據(jù)DSP的命令產(chǎn)生SDRAM的控制信號(hào)。正是由于接口電路的這種復(fù)雜性,在設(shè)計(jì)SDRAM和DSP的接口過(guò)程中才需要用FPGA來(lái)完成。

從圖3可以看到,F(xiàn)PGA的控制主要包含3個(gè)部分:控制寄存器接口、緩沖區(qū)接口和SDRAM控制接口。
  
(1)控制寄存器接口 主要包括對(duì)DSP地址信號(hào)和控制信號(hào)的解碼;SDRAM的讀寫(xiě)模式選擇;B0和B1的地址、數(shù)據(jù)的切換選擇及標(biāo)志控制;讀寫(xiě)首末地址的設(shè)置等。
  
(2)緩沖區(qū)接口 主要代表2個(gè)緩沖區(qū)B0和B1的相關(guān)信號(hào)產(chǎn)生,主要有:讀寫(xiě)信號(hào);地址信號(hào)(ADDR[6-0]);數(shù)據(jù)輸入輸出信號(hào)(DATA-IN[15-0]和DATA-OUT[15-0])等。
  
(3)SDRAM控制接口 產(chǎn)生SDRAM的控制信號(hào)、地址信號(hào)與數(shù)據(jù)總線(xiàn)信號(hào),完成SDRAM的3項(xiàng)功能:刷新、讀、寫(xiě)。其中讀、寫(xiě)主要通過(guò)猝發(fā)方式進(jìn)行。由于SDRAM是動(dòng)態(tài)RAM,為了防止數(shù)據(jù)丟失,必須對(duì)其進(jìn)行動(dòng)態(tài)刷新。在SDRAM控制接口部分設(shè)計(jì)了專(zhuān)門(mén)的刷新電路來(lái)完成這項(xiàng)功能。

3 結(jié) 論

由于FPGA內(nèi)的SRAM訪(fǎng)問(wèn)速度可以達(dá)到10 ns以上,而DDRSDRAM的訪(fǎng)問(wèn)速度比普通的SDRAM快一倍,因此,在采用DDRSDRAM實(shí)施存儲(chǔ)器共享后,不僅大大節(jié)省了系統(tǒng)成本,而且通過(guò)提高FPGA對(duì)DDRSDRAM的訪(fǎng)問(wèn)速度后,系統(tǒng)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)速度并沒(méi)有受到影響,可以達(dá)到100 Mb/s以上。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉