專利名稱:Sdram存儲器結(jié)構(gòu)及數(shù)據(jù)讀寫方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種存儲器結(jié)構(gòu),尤其是一種SDRAM存儲器結(jié)構(gòu)。本發(fā)明還涉及一種SDRAM存儲器的數(shù)據(jù)讀寫方法。
背景技術(shù):
SDRAM (synchronous dynamic random access memory)同步動態(tài)隨機(jī)訪問存儲器, 傳統(tǒng)上,動態(tài)隨機(jī)訪問存儲(DRAM)是有一個異步接口的,這樣它可以隨時響應(yīng)控制輸入的 變化。而SDRAM有一個同步接口,在響應(yīng)控制輸入前會等待一個時鐘信號,這樣就能和計(jì)算 機(jī)的系統(tǒng)總線同步。時鐘被用來驅(qū)動一個有限狀態(tài)機(jī),對進(jìn)入的指令進(jìn)行流水線操作。這 使得SDRAM與沒有一個同步接口的異步DRAM (asynchronous DRAM)相比,可以有一個更復(fù) 雜的操作模式。隨著存儲技術(shù)的發(fā)展,SDRAM因?yàn)槠湓谌萘糠矫婧驮L問速度方面的優(yōu)勢,越來越 被廣泛的應(yīng)用于手持終端方案設(shè)計(jì)中。目前的方案中通常SDRAM作為數(shù)據(jù)存儲空間或者 程序存儲空間,訪問SDRAM空間的是單一宿主,例如CPU,或者直接內(nèi)存存取單元(Direct Memory Access, DMA)。單一宿主通過單一總線訪問SDRAM控制器,由SDRAM控制器將總線 時序翻譯成SDRAM存儲器的訪問時序。這種方案的主要問題是只允許單一宿主,單一總線 訪問。如果其他宿主需要訪問SDRAM空間的數(shù)據(jù),則先需要向SDRAM的控制宿主發(fā)起請求, 由SDRAM的控制宿主訪問SDRAM空間,然后再將數(shù)據(jù)轉(zhuǎn)發(fā)給需要訪問SDRAM空間的其他宿 主。這種方案的缺點(diǎn)是只能由單一宿主訪問,效率低下,訪問帶寬大大降低。圖1所示為SDRAM的寫時序,圖2所示為SDRAM的讀時序。圖1和圖2中各信號 表示為Clk :sdram 時鐘信號;Clke:時鐘使能信號;Cs# 片選信號;RAS# 行地址選擇信號;CAS# 列地址選擇信號;WE# 讀寫控制信號;All,A10-A0 地址線;DQM:數(shù)據(jù)屏蔽信號;DQ:數(shù)據(jù)線。圖3中各信號表示為Hclk:總線時鐘;Hselx 總線從模塊選擇信號;Htrans 總選傳輸類型信號;Haddr:總線地址;Hwrite 總線寫信號;
Hsize 總線傳輸大小信號;Hburst 總線傳輸模式信號;Hwdata:總線寫數(shù)據(jù);Hready 總線傳輸準(zhǔn)備就緒標(biāo)識;Hresp 總線響應(yīng)信號;Hrdata:總線讀數(shù)據(jù)。通常SDRAM的讀寫時序是由SDRAM controller (SDRAM控制器)來完成的。SDRAM controller主要是完成了從其他總線(例如AMBA總線,fishbone總線,AMBA總線時序如 圖3所示)向SDRAM訪問時序的轉(zhuǎn)換。通常宿主訪問SDRAM時,宿主會向總線發(fā)起一次讀或 者寫命令,總線接收到該命令后,向SDRAM controller發(fā)起讀寫請求,SDRAM控制器接著將 命令轉(zhuǎn)譯成SDRAM的時序,去訪問SDRAM,執(zhí)行讀或者寫動作。如果期間數(shù)據(jù)沒有準(zhǔn)備好,則 會返回一個數(shù)據(jù)未準(zhǔn)備好的標(biāo)志,以提示訪問宿主動作還未完成,需要繼續(xù)等待。當(dāng)訪問宿 主的訪問動作完成后總線釋放。這是傳統(tǒng)的方案的設(shè)計(jì)方法,如圖4所示。從這個傳統(tǒng)方 案上看,由于SDRAM的輸入接口只有一個,所以的對SDRAM的訪問都只能通過該接口進(jìn)行。 而這個接口又是掛在AHB總線上,AHB總線的結(jié)構(gòu)如圖5所示,因此要訪問SDRAM,必須先得 通過AHB總線,而且需要宿主是AHB總線的宿主,例如CPU,DMA等等。在設(shè)計(jì)中如果需要 訪問SDRAM,則只有兩種方法,一種是將要訪問的模塊設(shè)計(jì)成AHB宿主掛在AHB總線上。第 二種方法是將該模塊設(shè)計(jì)成從模塊,掛在AHB總線上,當(dāng)需要訪問SDRAM時向能訪問SDRAM 的宿主發(fā)起請求,通過能訪問SDRAM的宿主來轉(zhuǎn)發(fā)數(shù)據(jù)。第一種方法,當(dāng)需要訪問SDRAM的 宿主太多時,全部掛在AHB總線上必然會影響總線效率,特別是影響CPU的效率,因?yàn)樵L問 SDRAM時,AHB總線會將控制權(quán)交給訪問宿主,這時CPU將不能訪問AHB總線,等效于運(yùn)行周 期變長。第二種方法通過轉(zhuǎn)發(fā)的方法來實(shí)現(xiàn)訪問,同樣訪問周期加長,增加CPU的負(fù)荷。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種SDRAM存儲器結(jié)構(gòu),以及這種SDRAM存儲 器結(jié)構(gòu)的數(shù)據(jù)讀寫方法,使得在任意時刻可以由多個宿主同時發(fā)起數(shù)據(jù)讀或者寫的請求, 而不需要所有的訪問均需要通過主宿主去轉(zhuǎn)發(fā),保證了 SDRAM存儲器的運(yùn)行效率,節(jié)省系 統(tǒng)資源。為解決上述技術(shù)問題,本發(fā)明SDRAM存儲器結(jié)構(gòu)的技術(shù)方案是,包括SDRAM存儲單 元和SDRAM控制器,所述SDRAM控制器中包括有多組SDRAM接口和一個仲裁器,所述多組 SDRAM接口具有各自的優(yōu)先級,并通過各自的總線連接到不同的宿主,所述宿主通過各自的 總線向?qū)?yīng)的SDRAM接口發(fā)出數(shù)據(jù)請求,所述仲裁器根據(jù)接收到數(shù)據(jù)請求的SDRAM接口的 優(yōu)先級高低及接收到數(shù)據(jù)請求的先后順序確定將SDRAM存儲單元連接到哪個SDRAM接口以 進(jìn)行數(shù)據(jù)的讀寫操作。本發(fā)明還提供了一種采用上述SDRAM存儲器結(jié)構(gòu)實(shí)現(xiàn)的數(shù)據(jù)讀寫方法,其技術(shù)方 案是,如果只有一個宿主通過其總線發(fā)出數(shù)據(jù)請求,所述仲裁器將所述SDRAM存儲單元與 該宿主對應(yīng)的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作;如果同時有多個宿主通過其各自 的總線發(fā)出數(shù)據(jù)請求,所述仲裁器比較上述各宿主所對應(yīng)的SDRAM接口的優(yōu)先級,將SDRAM 存儲單元與優(yōu)先級高的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作。
本發(fā)明在SDRAM控制器中設(shè)置多組SDRAM接口,并在內(nèi)部通過仲裁器來決定某個宿主訪問SDRAM接口,有效降低了外部總線的負(fù)載,使得多宿主可以同時訪問SDRAM,在大 數(shù)據(jù)量和程序同時訪問SDRAM空間得以實(shí)現(xiàn),特別適合應(yīng)用在數(shù)字電視信道和信源解碼集 成的方案中,有效節(jié)省片上SDRAM的空間。
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)的說明圖1為SDRAM寫時序的示意圖;圖2為SDRAM讀時序的示意圖;圖3為AMBA總線時序的示意圖;圖4為AMBA總線訪問SDRAM接口的示意圖;圖5為AHB總線的結(jié)構(gòu)示意圖;圖6為本發(fā)明SDRAM存儲器結(jié)構(gòu)的示意圖;圖7為本發(fā)明SDRAM存儲器中仲裁器的結(jié)構(gòu)示意圖;圖8為本發(fā)明SDRAM存儲器數(shù)據(jù)讀寫方法中固定優(yōu)先級的示意圖;圖9為本發(fā)明SDRAM存儲器數(shù)據(jù)讀寫方法中循環(huán)動態(tài)優(yōu)先級的示意圖。
具體實(shí)施例方式本發(fā)明公開了一種SDRAM存儲器結(jié)構(gòu),如圖6所示,包括SDRAM存儲單元和SDRAM 控制器,所述SDRAM控制器中包括有多組SDRAM接口和一個仲裁器,所述仲裁器如圖7所 示,其中HADDR為地址總線,HffDATA為寫數(shù)據(jù)總線,HRDATA為讀數(shù)據(jù)總線,所述多組SDRAM 接口具有各自的優(yōu)先級,并通過各自的總線連接到不同的宿主,所述宿主通過各自的總線 向?qū)?yīng)的SDRAM接口發(fā)出數(shù)據(jù)請求,所述仲裁器根據(jù)接收到數(shù)據(jù)請求的SDRAM接口的優(yōu)先 級高低及接收到數(shù)據(jù)請求的先后順序確定將SDRAM存儲單元連接到哪個SDRAM接口以進(jìn)行 數(shù)據(jù)的讀寫操作。所述多組SDRAM接口中,每個SDRAM接口都設(shè)置有暫存器,以暫存該SDRAM接口對 應(yīng)宿主發(fā)來的數(shù)據(jù)請求。在圖6所示的實(shí)施例中,CPU、DMA、宿主1和宿主2都通過ABH總線連接SDRAM控 制器的SDRAM接口,而宿主3和宿主4通過其他總線連接SDRAM控制器的SDRAM接口。所 述SDRAM控制器中還包括有總線轉(zhuǎn)譯模塊,將仲裁器選中的宿主總線信號轉(zhuǎn)譯成SDRAM控 制信號,從而將各種不同的總線與SDRAM總線相匹配,對SDRAM存儲單元進(jìn)行訪問。本發(fā)明還公開了一種采用上述SDRAM存儲器結(jié)構(gòu)實(shí)現(xiàn)的SDRAM存儲器數(shù)據(jù)讀寫方 法,如果只有一個宿主通過其總線發(fā)出數(shù)據(jù)請求,所述仲裁器將所述SDRAM存儲單元與該 宿主對應(yīng)的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作;如果同時有多個宿主通過其各自的 總線發(fā)出數(shù)據(jù)請求,所述仲裁器比較上述各宿主所對應(yīng)的SDRAM接口的優(yōu)先級,將SDRAM存 儲單元與優(yōu)先級高的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作。當(dāng)所述SDRAM接口接收到數(shù)據(jù)請求而又無法馬上進(jìn)行數(shù)據(jù)讀寫操作時,該數(shù)據(jù)請 求被暫存在該SDRAM接口的暫存器中。AHB宿主通過信號HBUSREQ發(fā)出總線請求,當(dāng)多個宿主同時請求總線時,仲裁器確保在一段時間內(nèi)只有一個宿主獲得總線使用權(quán)。這時,仲裁器會將AHB宿主對應(yīng)的總線獲 得信號HGRANT信號拉高,并保證其在一個完整的傳輸周期內(nèi)不會被其他宿主打斷。
所述各SDRAM接口根據(jù)其連接的宿主被設(shè)置為固定的優(yōu)先級。如圖8所示,在整 個總線仲裁過程中,每個宿主分配一個固定的優(yōu)先級別,分別從最高優(yōu)先級到最低優(yōu)先級, 當(dāng)不同優(yōu)先級的宿主同時申請總線時,仲裁器會根據(jù)事先分配好的優(yōu)先級別進(jìn)行仲裁,優(yōu) 先級高者得到總線,優(yōu)先級低者進(jìn)入等待狀態(tài),直到優(yōu)先級高的宿主完成總線傳輸,釋放總 線,仲裁器根據(jù)優(yōu)先級別重新進(jìn)行總線仲裁。固定優(yōu)先級別算法的優(yōu)點(diǎn)是可以在最大程度 上保證優(yōu)先級高的宿主獲得總線,比如對實(shí)時性要求最高的應(yīng)用;同樣道理,它的缺點(diǎn)就 是,優(yōu)先級別低的宿主可能在很長一段時間內(nèi)得不到總線。所述SDRAM接口的優(yōu)先級為循環(huán)動態(tài)的,每當(dāng)SDRAM接口接收到數(shù)據(jù)請求,該 SDRAM接口的優(yōu)先級被設(shè)置為最低級,每當(dāng)SDRAM存儲單元進(jìn)行一次數(shù)據(jù)的讀寫操作,該進(jìn) 行讀寫操作的SDRAM接口的優(yōu)先級被設(shè)置為最低級,同時其它接收到數(shù)據(jù)請求的SDRAM接 口的優(yōu)先級都提高一級。如圖9所示,在整個總線仲裁過程中,每個宿主的優(yōu)先級別是可變 的,上次通過仲裁的到總線的宿主,在下次仲裁中優(yōu)先級會變成最低,這種算法能夠體現(xiàn)公 平的優(yōu)先級,每個宿主得到總線的機(jī)會均等。缺點(diǎn)是,對實(shí)時性要求高的宿主,可能會造成 數(shù)據(jù)丟失。在圖8和圖9中,IDLE為空閑態(tài),MASl GRANT為宿主1請求認(rèn)可,MAS2GRANT為宿 主2請求認(rèn)可,REQ為總線請求。對應(yīng)于AHB宿主,需要確保仲裁結(jié)束,重新進(jìn)行一次新的仲裁。AHB宿主得到總 線后,會馬上發(fā)起傳輸,仲裁器會根據(jù)宿主發(fā)出的HBURST信號來確定此次仲裁的周期, HBURST總共有8種類型,其中single和incr類型,仲裁器會認(rèn)為宿主只要求發(fā)起一筆總線 傳輸,在一筆傳輸結(jié)束后,仲裁器會重新進(jìn)行總線仲裁;對于wrap4和inCr4類型,仲裁器會 認(rèn)為宿主只要求發(fā)起四筆總線傳輸,在四筆傳輸結(jié)束后,仲裁器會重新進(jìn)行總線仲裁;對于 wrapS和incrS類型,仲裁器會認(rèn)為宿主只要求發(fā)起八筆總線傳輸,在八筆傳輸結(jié)束后,仲 裁器會重新進(jìn)行總線仲裁;對于wrapl6和incrie類型,仲裁器會認(rèn)為宿主只要求發(fā)起十六 筆總線傳輸,在十六筆傳輸結(jié)束后,仲裁器會重新進(jìn)行總線仲裁;在有的情況下,AHB宿主 希望在一段時間內(nèi)占用總線,為此,AHB宿主會發(fā)出HLOCK信號,HLOCK會和HBUSREQ同時發(fā) 出,一旦仲裁器將總線使用權(quán)交給需要lock的宿主,仲裁器不會重新進(jìn)行總線仲裁,直到 該宿主將HLOCK置為無效??偩€轉(zhuǎn)譯模塊功能是將總線仲裁器選中的宿主總線信號轉(zhuǎn)譯成 sdram控制信號。綜上所述,本發(fā)明在SDRAM控制器中設(shè)置多組SDRAM接口,并在內(nèi)部通過仲裁器 來決定某個宿主訪問SDRAM接口,有效降低了外部總線的負(fù)載,使得多宿主可以同時訪問 SDRAM,在大數(shù)據(jù)量和程序同時訪問SDRAM空間得以實(shí)現(xiàn),特別適合應(yīng)用在數(shù)字電視信道和 信源解碼集成的方案中,有效節(jié)省片上SDRAM的空間。
權(quán)利要求
一種SDRAM存儲器結(jié)構(gòu),其特征在于,包括SDRAM存儲單元和SDRAM控制器,所述SDRAM控制器中包括有多組SDRAM接口和一個仲裁器,所述多組SDRAM接口具有各自的優(yōu)先級,并通過各自的總線連接到不同的宿主,所述宿主通過各自的總線向?qū)?yīng)的SDRAM接口發(fā)出數(shù)據(jù)請求,所述仲裁器根據(jù)接收到數(shù)據(jù)請求的SDRAM接口的優(yōu)先級高低及接收到數(shù)據(jù)請求的先后順序確定將SDRAM存儲單元連接到哪個SDRAM接口以進(jìn)行數(shù)據(jù)的讀寫操作。
2.根據(jù)權(quán)利要求1所述的SDRAM存儲器結(jié)構(gòu),其特征在于,所述多組SDRAM接口中,每 個SDRAM接口都設(shè)置有暫存器,以暫存該SDRAM接口對應(yīng)宿主發(fā)來的數(shù)據(jù)請求。
3.一種采用如權(quán)利要求1或2所述的SDRAM存儲器結(jié)構(gòu)實(shí)現(xiàn)的SDRAM存儲器數(shù)據(jù)讀寫 方法,其特征在于,如果只有一個宿主通過其總線發(fā)出數(shù)據(jù)請求,所述仲裁器將所述SDRAM 存儲單元與該宿主對應(yīng)的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作;如果同時有多個宿主 通過其各自的總線發(fā)出數(shù)據(jù)請求,所述仲裁器比較上述各宿主所對應(yīng)的SDRAM接口的優(yōu)先 級,將SDRAM存儲單元與優(yōu)先級高的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作。
4.根據(jù)權(quán)利要求3所述的SDRAM數(shù)據(jù)存儲器數(shù)據(jù)讀寫方法,其特征在于,當(dāng)所述SDRAM 接口接收到數(shù)據(jù)請求而又無法馬上進(jìn)行數(shù)據(jù)讀寫操作時,該數(shù)據(jù)請求被暫存在該SDRAM接 口的暫存器中。
5.根據(jù)權(quán)利要求3所述的SDRAM數(shù)據(jù)存儲器數(shù)據(jù)讀寫方法,其特征在于,所述各SDRAM 接口根據(jù)其連接的宿主被設(shè)置為固定的優(yōu)先級。
6.根據(jù)權(quán)利要求3所述的SDRAM數(shù)據(jù)存儲器數(shù)據(jù)讀寫方法,其特征在于,所述SDRAM接 口的優(yōu)先級為循環(huán)動態(tài)的,每當(dāng)SDRAM接口接收到數(shù)據(jù)請求,該SDRAM接口的優(yōu)先級被設(shè)置 為最低級,每當(dāng)SDRAM存儲單元進(jìn)行一次數(shù)據(jù)的讀寫操作,該進(jìn)行讀寫操作的SDRAM接口的 優(yōu)先級被設(shè)置為最低級,同時其它接收到數(shù)據(jù)請求的SDRAM接口的優(yōu)先級都提高一級。
全文摘要
本發(fā)明公開了一種SDRAM存儲器結(jié)構(gòu),包括SDRAM存儲單元和SDRAM控制器,所述SDRAM控制器中包括有多組SDRAM接口和一個仲裁器,所述多組SDRAM接口具有各自的優(yōu)先級,所述仲裁器根據(jù)SDRAM接口的優(yōu)先級高低及接收到數(shù)據(jù)請求的先后順序確定哪個SDRAM接口進(jìn)行數(shù)據(jù)的讀寫操作。本發(fā)明還公開了一種采用上述SDRAM存儲器實(shí)現(xiàn)的數(shù)據(jù)讀寫方法,如果同時有多個宿主通過其各自的總線發(fā)出數(shù)據(jù)請求,所述仲裁器比較上述各宿主所對應(yīng)的SDRAM接口的優(yōu)先級,將SDRAM存儲單元與優(yōu)先級高的SDRAM接口相連接以進(jìn)行數(shù)據(jù)的讀寫操作。本發(fā)明有效降低了外部總線的負(fù)載,使得多宿主可以同時訪問SDRAM,有效節(jié)省片上SDRAM的空間。
文檔編號G06F3/06GK101814012SQ20101017808
公開日2010年8月25日 申請日期2010年5月20日 優(yōu)先權(quán)日2010年5月20日
發(fā)明者張亮, 羅升龍 申請人:銳迪科科技有限公司