亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

<i id="1e1ya"><em id="1e1ya"><label id="1e1ya"></label></em></i>
<code id="1e1ya"></code>
  • <code id="1e1ya"><form id="1e1ya"></form></code>
  • <dfn id="1e1ya"><em id="1e1ya"></em></dfn>

    嵌入式處理器的片上高性能dma的制作方法

    文檔序號:6575719閱讀:335來源:國知局
    專利名稱:嵌入式處理器的片上高性能dma的制作方法
    技術(shù)領(lǐng)域
    本發(fā)明涉及一種嵌入式處理器的片上DMA。
    背景技術(shù)
    隨著集成電路設(shè)計(jì)進(jìn)入片上系統(tǒng)時(shí)代,嵌入式系統(tǒng)的功能不斷增 強(qiáng),應(yīng)用也越來越廣泛,嵌入式系統(tǒng)也越來越多地出現(xiàn)在日常生活中, 涉及從數(shù)碼相機(jī)、通信設(shè)備、媒體播放器到汽車電子等廣泛領(lǐng)域;而 隨著硬件技術(shù)的快速發(fā)展,實(shí)時(shí)嵌入式系統(tǒng)的復(fù)雜程度也在日益提高, 應(yīng)用領(lǐng)域也在不斷擴(kuò)展,這就要求嵌入式系統(tǒng)的設(shè)計(jì)方法更加成熟, 實(shí)時(shí)性更強(qiáng)和可靠,而且可預(yù)見性更高。
    現(xiàn)代高性能的硬件都使用了 cache技術(shù)來彌補(bǔ)CPU和內(nèi)存間的性 能差距,但是cache卻嚴(yán)重影響了實(shí)時(shí)性,指令或數(shù)據(jù)在cache中的 執(zhí)行時(shí)間和不在cache中的執(zhí)行時(shí)間差距是非常巨大的,可能差幾個(gè) 數(shù)量級,很大程度上限制了芯片整體性能的提升,因此為了保證執(zhí)行 時(shí)間的確定性和可預(yù)測性,來滿足實(shí)時(shí)需要,片上存儲器(scratchpad memory,簡稱SPM)技術(shù)應(yīng)運(yùn)而生。與由硬件管理的Cache相比,采 用適當(dāng)?shù)能浖?yōu)化方法來管理SPM,可使SPM的性能、功耗和面積 都優(yōu)于高速緩存,適合用于對于實(shí)時(shí)性要求較高的嵌入式系統(tǒng)。由于訪 問SPM的時(shí)間比訪問片外存儲器的時(shí)間要小得多,而且不存在命中率 的問題,所以把程序的一部分從片外存儲器搬移到SPM中可以大大減 少應(yīng)用程序的運(yùn)行時(shí)間。通過將程序的基本塊、數(shù)據(jù)、常量或經(jīng)常用到的程序段搬到片上存儲器,并盡可能重復(fù)利用這些已經(jīng)轉(zhuǎn)移到片上 的數(shù)據(jù),有效地減少片外存儲器與片上存儲器之間的數(shù)據(jù)轉(zhuǎn)移,可充分 提高實(shí)時(shí)嵌入式應(yīng)用的運(yùn)行速度并降低功耗。
    現(xiàn)有的DMA內(nèi)部都設(shè)有幾個(gè)傳輸通道,控制邏輯復(fù)雜度較高, 硬件開銷比較大,且沒有相應(yīng)的數(shù)據(jù)緩沖器來實(shí)現(xiàn)片上存取器與系統(tǒng) 總線之間的背靠背傳輸,導(dǎo)致片上存儲器和片外存儲器之間的數(shù)據(jù)傳
    輸速率相對較低。若DMA需要操作時(shí),DMA控制器會向CPU發(fā)出 占用總線的請求,當(dāng)總線請求成功后,CPU已經(jīng)將總線使用權(quán)交給 DMA控制器,可以進(jìn)行數(shù)據(jù)傳輸,但在DMA傳輸過程中,CPU便 占不到總線,因此會嚴(yán)重制約處理器的流水線性能。此外現(xiàn)有的DMA 用戶接口的可配置性比較差,擴(kuò)展性也不靈活,在不同的系統(tǒng)下移植 性差。

    發(fā)明內(nèi)容
    為了克服已有的嵌入式處理器的片上DMA的開發(fā)難度較大、復(fù) 雜度較高、硬件開銷大、數(shù)據(jù)傳輸速率相對較低、擴(kuò)展性不強(qiáng)的不足, 本發(fā)明提供一種開發(fā)難度較低、復(fù)雜度較低、用戶可配置性和擴(kuò)展性 靈活、系統(tǒng)移植方便、提高數(shù)據(jù)傳輸速率及提升嵌入式處理器性能的 片上高性能DMA。
    本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
    一種嵌入式處理器的片上高性能DMA,所述片上高性能DMA包 括雙向傳輸?shù)臄?shù)據(jù)緩存器,用于緩存從片上存儲器讀取的數(shù)據(jù)、向 總線接口單元發(fā)送的數(shù)據(jù)、從總線接口單元接收的數(shù)據(jù)以及向片上存 儲器寫入的數(shù)據(jù);數(shù)據(jù)大小端轉(zhuǎn)換器,用于當(dāng)讀取到片上存儲器的數(shù)據(jù)或接收到總線接口的數(shù)據(jù)后,進(jìn)行大小端轉(zhuǎn)換;DMA控制器,用
    于在每一次新的數(shù)據(jù)傳輸開始時(shí)初始化狀態(tài)寄存器、控制寄存器、起 始地址寄存器和數(shù)據(jù)量寄存器,當(dāng)一次批量數(shù)據(jù)傳輸成功或發(fā)生錯(cuò)誤
    中止時(shí)更新相應(yīng)的狀態(tài)寄存器,或向CPU發(fā)起中斷請求;DMA傳輸 地址產(chǎn)生邏輯模塊,用于在傳輸過程中通過DMA內(nèi)部硬件邏輯的狀 態(tài)控制,并根據(jù)用戶配置的傳輸大小,自動計(jì)算出下一個(gè)數(shù)據(jù)在片內(nèi) 外存儲器上的傳輸?shù)刂?,并根?jù)片內(nèi)地址產(chǎn)生片上存儲器的片選及讀 寫信號,同時(shí)更新數(shù)據(jù)量計(jì)數(shù)器,直到計(jì)數(shù)器變?yōu)榱悖豢偩€傳輸發(fā)送 和接收器,用于與總線接口單元連接,進(jìn)行數(shù)據(jù)傳輸。
    作為優(yōu)選的一種方案所述的片上高性能DMA還包括傳輸模 式選擇模塊,用于設(shè)置固定地址傳輸和非固定長度的突發(fā)傳輸兩種模 式的選擇位,默認(rèn)設(shè)置為非固定長度的突發(fā)傳輸,對片外存儲器進(jìn)行 數(shù)據(jù)搬運(yùn);固定地址傳輸模式中,片外存儲器訪問地址固定不變,對 片外外設(shè)的FIFO進(jìn)行數(shù)據(jù)搬運(yùn);在傳輸過程中,支持兩種模式的動 態(tài)切換。
    進(jìn)一步,所述的片上高性能DMA還包括虛擬地址到物理地址 的動態(tài)轉(zhuǎn)換模塊,用于將片外存儲器虛擬地址經(jīng)內(nèi)存管理單元映射成 物理地址之后,通過總線接口單元發(fā)起傳輸操作訪問片外存儲器。
    更進(jìn)一步,所述的片上高性能DMA還包括DMA總線傳輸中止 與恢復(fù)邏輯模塊,用于設(shè)置DMA占用總線接口的優(yōu)先級低于處理器 訪問的優(yōu)先級,若DMA在傳輸過程中遇到CPU臨時(shí)占用總線接口時(shí), 當(dāng)前DMA傳輸被掛起,等待CPU傳輸完畢后從DMA從掛起位置重 新發(fā)起傳輸。再進(jìn)一步,在所述DMA控制器中,配置的傳輸寬度包括字、半
    字和字節(jié),傳輸寬度默認(rèn)為字,當(dāng)以字節(jié)或半字傳輸時(shí),根據(jù)片上存 儲器的訪問地址自動截取相應(yīng)的寬度進(jìn)行傳輸。
    在所述數(shù)據(jù)緩存器中,根據(jù)系統(tǒng)總線的大小端傳輸模式以及指令、 數(shù)據(jù)片上存儲器的數(shù)據(jù)大小端存儲模式,自動對數(shù)據(jù)進(jìn)行大小端轉(zhuǎn)換。
    本發(fā)明的技術(shù)構(gòu)思為通過設(shè)計(jì)片上高性能DMA,實(shí)現(xiàn)了嵌入
    式處理器片上存儲器與片外存儲器之間的高速數(shù)據(jù)傳輸速率。由于
    DMA的數(shù)據(jù)傳輸無需CPU和上層軟件的干預(yù),只要應(yīng)用程序通過一 些指令初始化DMA相關(guān)的寄存器之后,DMA便可自動完成數(shù)據(jù)搬 運(yùn),提高了 CPU的獨(dú)立性,極大減少了流水線的停頓,提升了 CPU 的性能;在DMA傳輸過程中若遇到CPU臨時(shí)占用總線接口時(shí),DMA 可掛起當(dāng)前傳輸,等待CPU傳輸完畢后從掛起位置重新發(fā)起傳輸, DMA實(shí)時(shí)動態(tài)地中止和恢復(fù)傳輸操作,充分提升了 CPU的性能。
    此外目前面向多媒體、通信和網(wǎng)絡(luò)等應(yīng)用的高端嵌入式處理器大 多集成支持虛地址系統(tǒng)的MMU,實(shí)現(xiàn)在多任務(wù)調(diào)度中對內(nèi)存的保護(hù) 和共享。片上高性能DMA通過支持支持虛擬地址到物理地址的轉(zhuǎn)換 及頁面保護(hù)機(jī)制,擴(kuò)展了 DMA的應(yīng)用范疇,在不同的嵌入式系統(tǒng)中 移植性強(qiáng)。
    本發(fā)明的有益效果主要表現(xiàn)在1)、開發(fā)難度和復(fù)雜度設(shè)計(jì)比較 低,易于實(shí)現(xiàn),硬件開銷相對較小,對于提高嵌入式處理器片上存儲 器與片外存儲器之間的數(shù)據(jù)傳輸速率起到極大的促進(jìn)作用;2)系統(tǒng)移 植方便,擴(kuò)展靈活,用戶配置性強(qiáng);3)、極大提升了嵌入式處理器的 性能。


    圖1是嵌入式處理器片上高性能DMA結(jié)構(gòu)示意圖。 圖2是片上高性能DMA的硬件實(shí)現(xiàn)原理圖。 圖3是片上高性能DMA與內(nèi)存管理單元的接口框圖。 圖4是片上高性能DMA傳輸請求仲裁框圖。 圖5是片上存儲器到片外存儲器的數(shù)據(jù)傳輸過程中DMA數(shù)據(jù)讀 取狀態(tài)轉(zhuǎn)換圖。
    圖6是片上存儲器到片外存儲器的數(shù)據(jù)傳輸過程中DMA數(shù)據(jù)發(fā) 送狀態(tài)轉(zhuǎn)換圖。
    圖7是片外存儲器到片上存儲器的數(shù)據(jù)傳輸過程中DMA數(shù)據(jù)接 收狀態(tài)轉(zhuǎn)換圖。
    圖8是片外存儲器到片上存儲器的數(shù)據(jù)傳輸過程中DMA數(shù)據(jù)存 儲狀態(tài)轉(zhuǎn)換圖。
    具體實(shí)施例方式
    下面結(jié)合附圖對本發(fā)明作進(jìn)一步描述。
    參照圖1一圖7, 一種嵌入式處理器的片上高性能DMA,包括 雙向傳輸?shù)臄?shù)據(jù)緩存器,用于緩存從片上存儲器讀取的數(shù)據(jù)、向總線 接口單元發(fā)送的數(shù)據(jù)、從總線接口單元接收的數(shù)據(jù)以及向片上存儲器 寫入的數(shù)據(jù);數(shù)據(jù)大小端轉(zhuǎn)換器,用于當(dāng)讀取到片上存儲器的數(shù)據(jù)或 接收到總線接口的數(shù)據(jù)后,進(jìn)行大小端轉(zhuǎn)換;DMA控制器,用于在 每一次新的數(shù)據(jù)傳輸開始時(shí)初始化狀態(tài)寄存器、控制寄存器、起始地 址寄存器和數(shù)據(jù)量寄存器,當(dāng)一次批量數(shù)據(jù)傳輸成功或發(fā)生錯(cuò)誤中止 時(shí)更新相應(yīng)的狀態(tài)寄存器,或向CPU發(fā)起中斷請求;DMA傳輸?shù)刂樊a(chǎn)生邏輯模塊,用于在傳輸過程中通過DMA內(nèi)部硬件邏輯的狀態(tài)控 制,并根據(jù)用戶配置的傳輸大小,自動計(jì)算出下一個(gè)數(shù)據(jù)在片內(nèi)外存 儲器上的傳輸?shù)刂?,并根?jù)片內(nèi)地址產(chǎn)生片上存儲器的片選及讀寫信
    號,同時(shí)更新數(shù)據(jù)量計(jì)數(shù)器,直到計(jì)數(shù)器變?yōu)榱?;總線傳輸發(fā)送和接 收器,用于與總線接口單元連接,進(jìn)行數(shù)據(jù)傳輸。
    所述的片上高性能DMA還包括傳輸模式選擇模塊,用于設(shè)置 固定地址傳輸和非固定長度的突發(fā)傳輸兩種模式的選擇位,默認(rèn)設(shè)置 為非固定長度的突發(fā)傳輸,對片外存儲器進(jìn)行數(shù)據(jù)搬運(yùn);固定地址傳 輸模式中,片外存儲器訪問地址固定不變,對片外外設(shè)的FIFO進(jìn)行 數(shù)據(jù)搬運(yùn);在傳輸過程中,支持兩種模式的動態(tài)切換。
    虛擬地址到物理地址的動態(tài)轉(zhuǎn)換模塊,用于將片外存儲器虛擬地 址經(jīng)內(nèi)存管理單元映射成物理地址之后,通過總線接口單元發(fā)起傳輸 操作訪問片外存儲器。
    DMA總線傳輸中止與恢復(fù)邏輯模塊,用于設(shè)置DMA占用總線接 口的優(yōu)先級低于處理器訪問的優(yōu)先級,若DMA在傳輸過程中遇到 CPU臨時(shí)占用總線接口時(shí),當(dāng)前DMA傳輸被掛起,等待CPU傳輸完 畢后從DMA從掛起位置重新發(fā)起傳輸。
    本實(shí)施例的嵌入式處理器片上高性能DMA無需CPU的干預(yù),它 只需應(yīng)用程序通過協(xié)處理器指令在傳輸開始之前初始化DMA相關(guān)的 寄存器,包括傳輸控制寄存器、傳輸操作寄存器、片上存儲器和片外 存儲器的起始地址寄存器和傳輸數(shù)據(jù)量寄存器, 一旦傳輸開始后, DMA便能自動完成該數(shù)據(jù)量的傳輸。高性能DMA在每傳輸完一個(gè)數(shù) 據(jù)之后,它會自動更新數(shù)據(jù)量計(jì)數(shù)器,并自動產(chǎn)生片內(nèi)外存儲器下一個(gè)數(shù)據(jù)的讀寫地址。片上DMA實(shí)現(xiàn)簡單,開銷較小,可在處理器非
    干預(yù)的情況下完成片內(nèi)外數(shù)據(jù)傳輸,數(shù)據(jù)搬運(yùn)與處理器運(yùn)算可并行處
    理,極大地提高了處理器的性能,尤其在傳輸數(shù)據(jù)量較大時(shí),DMA 傳輸模式更能充分體現(xiàn)它性能的優(yōu)越性,增加了CPU的獨(dú)立性,減少 了流水線的停頓,從而使CPU在性能上得到了很大提升,同時(shí)片上高 性能DMA通過結(jié)合數(shù)據(jù)緩存區(qū)技術(shù),使得數(shù)據(jù)得以連續(xù)接收和發(fā)送, 實(shí)現(xiàn)背靠背傳輸,提升了 DMA的傳輸性能。
    嵌入式處理器片上高性能DMA的總體硬件架構(gòu)如圖2所示。 為了提高片上高性能DMA的靈活性,在DMA的控制寄存器中, 設(shè)置了固定地址傳輸和非固定長度的突發(fā)傳輸兩種模式的選擇位。該 位上電之后默認(rèn)設(shè)置為非固定長度的突發(fā)傳輸,該模式支持single和 increase兩種總線傳輸類型,適用于與片外存儲器進(jìn)行數(shù)據(jù)搬運(yùn),而固 定地址傳輸模式在傳輸過程中,片外存儲器訪問地址固定不變,適用 于對片外外設(shè)的FIFO進(jìn)行數(shù)據(jù)搬運(yùn)。用戶的應(yīng)用程序可以根據(jù)實(shí)際 的需要,動態(tài)開啟或者關(guān)閉該位來選擇相應(yīng)的傳輸模式。在傳輸過程 中,支持兩種模式的動態(tài)切換。
    片上高性能DMA傳輸模式支持傳輸大小為字(4字節(jié)),半字(2 字節(jié))和字節(jié)的三種模式。在DMA的控制寄存器中,有兩位表示總 線的傳輸大小OO表示字傳輸,Ol表示半字傳輸,IO表示字節(jié)傳輸, ll表示未定義的長度。默認(rèn)狀態(tài)為字傳輸,盡可能提高傳輸?shù)男屎?帶寬。當(dāng)傳輸大小為字節(jié)或半字時(shí),DMA內(nèi)部的控制邏輯會根據(jù)相 應(yīng)的片內(nèi)外存儲器的地址,正確地截取字節(jié),以保證數(shù)據(jù)的正確性。 此外,當(dāng)片上存儲器的數(shù)據(jù)存儲模式與系統(tǒng)總線的大小端傳輸模式不一致時(shí),高性能DMA會根據(jù)片上存儲器的數(shù)據(jù)讀寫地址和片外存儲 器的傳輸?shù)刂纷詣訉?shù)據(jù)進(jìn)行大小端轉(zhuǎn)換,以保證數(shù)據(jù)的一致性。
    同時(shí)DMA支持DMA傳輸幵始、傳輸停止和現(xiàn)場清空這三種操作 DMA傳輸開始操作用于啟動DMA的狀態(tài)機(jī)及相應(yīng)的控制邏輯,數(shù)據(jù) 傳輸開始,當(dāng)傳輸結(jié)束時(shí),DMA會更新相應(yīng)的狀態(tài)寄存器,包括傳 輸成功或失敗等信息,并發(fā)起中斷通知CPU,在相應(yīng)的中斷服務(wù)程序 中通過現(xiàn)場清空操作來更新DMA狀態(tài)機(jī)和狀態(tài)寄存器,為下一次傳 輸做好準(zhǔn)備。傳輸停止操作用于強(qiáng)行中止這次傳輸,所有的邏輯和狀 態(tài)恢復(fù)到跟上電時(shí)一樣。
    目前很多高端嵌入式處理器大多集成支持虛地址系統(tǒng)的MMU,本 發(fā)明設(shè)計(jì)的片上高性能DMA同樣支持虛擬地址到物理地址的轉(zhuǎn)換及 頁面保護(hù)機(jī)制,如圖3所示;DMA片上存儲器起始地址寄存器所寄 存的地址是虛擬地址,為了提高了虛擬地址到物理地址的轉(zhuǎn)換速率, 在DMA內(nèi)部設(shè)計(jì)了 2路組相連的地址旁路緩沖器,該緩沖器的內(nèi)容 包括虛擬地址到物理地址的映射關(guān)系以及物理頁面的保護(hù)信息。當(dāng) DMA發(fā)生的虛擬地址在緩沖器中失配時(shí),向內(nèi)存管理單元發(fā)起頁缺 失請求,內(nèi)存管理單元會迅速做出相關(guān)處理若在內(nèi)存管單元找到匹 配項(xiàng),則回填DMA的2路緩沖器,替換策略為round robin;當(dāng)發(fā)生 頁面缺失等情況時(shí)內(nèi)存管理單元通過發(fā)出異常來通知CPU。
    由于CPU的取指單元、存儲單元和片上高性能DMA共用一個(gè)總 線接口單元,因此在它們之間必存在資源沖突,如圖4所示;為了充 分提高CPU的性能,DMA占用系統(tǒng)總線接口的優(yōu)先級最低。由于 DMA傳輸?shù)臄?shù)據(jù)量較大,因此占用總線接口單元時(shí)間會比較長,在傳輸過程中會遇到CPU要臨時(shí)占用總線接口 ,此時(shí)DMA可掛起當(dāng)前
    傳輸,相應(yīng)的寄存器會保存現(xiàn)場傳輸信息,狀態(tài)機(jī)也會進(jìn)入懸起等待
    狀態(tài), 一旦等待CPU傳輸完畢后DMA立即恢復(fù)現(xiàn)場,并從掛起位置 重新發(fā)起傳輸。
    在DMA傳輸過程中,當(dāng)系統(tǒng)總線接口被CPU占用、片外存儲器 未準(zhǔn)備好數(shù)據(jù)、系統(tǒng)總線頻率與CPU時(shí)鐘頻率不一致或DMA和CPU 同時(shí)訪問數(shù)據(jù)、指令片上存儲器時(shí),均會導(dǎo)致DMA數(shù)據(jù)發(fā)送或數(shù)據(jù) 接收發(fā)生中斷,使數(shù)據(jù)傳輸過程不連續(xù),因此在DMA內(nèi)部設(shè)置了數(shù) 據(jù)緩存機(jī)制來實(shí)現(xiàn)背靠背傳輸。該數(shù)據(jù)緩存有四個(gè)表項(xiàng),可同時(shí)讀寫, 一旦數(shù)據(jù)緩存滿時(shí),控制邏輯便會停止向片上存儲器或片外存儲器讀 數(shù)據(jù),直到數(shù)據(jù)緩存器為非滿狀態(tài)。片上高性能DMA根據(jù)數(shù)據(jù)傳輸 方向可以分為片上存儲器到片外存儲器以及片外存儲器到片上存儲器 兩個(gè)獨(dú)立的傳輸過程。
    片上存儲器到片外存儲器的數(shù)據(jù)傳輸過程可分為從片上存儲器讀 取數(shù)據(jù)和向總線接口單元發(fā)送數(shù)據(jù)兩個(gè)階段,其中數(shù)據(jù)讀取階段分為 以下幾個(gè)狀態(tài),如圖5所示
    空閑狀態(tài)空閑狀態(tài)時(shí)DMA處于低功耗狀態(tài),上電復(fù)位后,DMA 傳輸模式自動進(jìn)入該狀態(tài)。
    數(shù)據(jù)讀取請求狀態(tài) 一旦DMA的相關(guān)寄存器初始化之后,DMA的 數(shù)據(jù)通道便進(jìn)入該狀態(tài)并進(jìn)行數(shù)據(jù)傳輸,向數(shù)據(jù)或指令片上存儲器發(fā)起數(shù) 據(jù)讀取請求狀態(tài);如果此時(shí)數(shù)據(jù)或指令片上存儲器被存儲單元或指令單元 占用著,則DMA—直置著請求信號。
    等待狀態(tài)如果數(shù)據(jù)緩存器已滿,則DMA的控制邏輯便會停止向片山存儲器發(fā)起數(shù)據(jù)讀取請求操作,直到緩存器不滿為止。
    壓數(shù)據(jù)入緩存器當(dāng)DMA讀取到數(shù)據(jù)后,經(jīng)過大小端轉(zhuǎn)換后,將數(shù)
    據(jù)壓入數(shù)據(jù)緩沖器, 一旦讀完所有的數(shù)據(jù)后,便會轉(zhuǎn)入空閑狀態(tài)。
    DMA向總線接口單元發(fā)送數(shù)據(jù)階段分為以下幾個(gè)狀態(tài),如圖6所示:
    空閑狀態(tài)空閑狀態(tài)時(shí)DMA并未向總線接口單元發(fā)送數(shù)據(jù),處于 低功耗狀態(tài),上電復(fù)位后,DMA傳輸模式自動進(jìn)入該狀態(tài)。
    等待狀態(tài)當(dāng)DMA傳輸開始后,若數(shù)據(jù)緩存器為空,DMA便進(jìn)入 等待狀態(tài),若數(shù)據(jù)緩存器不為空,則向總線接口單元發(fā)起數(shù)據(jù)傳輸請求。
    總線傳輸請求狀態(tài)在該狀態(tài)DMA向總線接口單元發(fā)起總線傳輸 請求,包括傳輸大小、傳輸突發(fā)類型等總線信息,在沒得到總線接口單 元響應(yīng)時(shí),DMA發(fā)送階段一直處于這個(gè)狀態(tài)。
    數(shù)據(jù)傳輸狀態(tài)當(dāng)傳輸請求得到總線接口單元的響應(yīng)后,DMA控制 邏輯將從數(shù)據(jù)緩存器中讀取的數(shù)據(jù)發(fā)向總線,等所有數(shù)據(jù)發(fā)送完成之后, 便會跳入空閑狀態(tài),此次數(shù)據(jù)傳輸全部結(jié)束。
    片外存儲器到片上存儲器的數(shù)據(jù)傳輸過程也可以分為從總線接口接收 數(shù)據(jù)和向片上存儲器寫數(shù)據(jù)這兩個(gè)階段;其中數(shù)據(jù)接收階段分為以下幾 個(gè)狀態(tài),如圖7所示
    空閑狀態(tài)空閑狀態(tài)時(shí)DMA處于低功耗狀態(tài),上電復(fù)位后,DMA 傳輸模式自動進(jìn)入該狀態(tài)。
    總線傳輸請求狀態(tài)在該狀態(tài)DMA向總線接口單元發(fā)起總線傳輸 請求,包括片外存儲器的數(shù)據(jù)讀取地址、傳輸大小、傳輸突發(fā)類型等總 線信息,在沒得到總線接口單元響應(yīng)時(shí),DMA數(shù)據(jù)接收階段一直處于這 個(gè)狀態(tài)。數(shù)據(jù)接收狀態(tài)當(dāng)傳輸請求得到總線接口單元的響應(yīng)后,DMA控制 邏輯將從片外存儲器讀取到的數(shù)據(jù)壓入數(shù)據(jù)緩存器, 一旦從片外存儲器 讀到所有數(shù)據(jù)后,便會跳入到空閑狀態(tài)。
    等待狀態(tài) 一旦數(shù)據(jù)緩存器滿時(shí),DMA便會進(jìn)入等待狀態(tài),并不再 向總線接口單元發(fā)起傳輸請求,直到數(shù)據(jù)緩存器非滿。
    向片上存儲器寫數(shù)據(jù)的過程可分為以下幾個(gè)狀態(tài),如圖8所示
    空閑狀態(tài)空閑狀態(tài)時(shí)DMA處于低功耗狀態(tài),上電復(fù)位后,DMA
    傳輸模式自動進(jìn)入該狀態(tài)。
    等待狀態(tài)在DMA傳輸開始之后,如果數(shù)據(jù)緩存器為空,則進(jìn)入
    該狀態(tài),直到緩沖器有數(shù)據(jù)寫入。
    寫數(shù)據(jù)請求狀態(tài)DMA向片上存儲器發(fā)起數(shù)據(jù)寫操作請求,并根據(jù)
    寫地址及傳輸大小配置正確地產(chǎn)生寫片選信號。
    寫數(shù)據(jù)狀態(tài) 一旦寫數(shù)據(jù)請求得到片上存儲器的響應(yīng)之后,DMA從
    數(shù)據(jù)緩存器讀取數(shù)據(jù)并寫入片上存儲器,等所有數(shù)據(jù)寫成功之后,便會 跳入空閑狀態(tài),此次數(shù)據(jù)傳輸全部結(jié)束。
    權(quán)利要求
    1、一種嵌入式處理器的片上高性能DMA,其特征在于所述片上高性能DMA包括雙向傳輸?shù)臄?shù)據(jù)緩存器,用于緩存從片上存儲器讀取的數(shù)據(jù)、向總線接口單元發(fā)送的數(shù)據(jù)、從總線接口單元接收的數(shù)據(jù)以及向片上存儲器寫入的數(shù)據(jù);數(shù)據(jù)大小端轉(zhuǎn)換器,用于當(dāng)讀取到片上存儲器的數(shù)據(jù)或接收到總線接口單元的數(shù)據(jù)之后,進(jìn)行大小端轉(zhuǎn)換;DMA控制器,用于在每一次新的數(shù)據(jù)傳輸開始時(shí)初始化狀態(tài)寄存器、控制寄存器、起始地址寄存器和數(shù)據(jù)量寄存器,當(dāng)一次批量數(shù)據(jù)傳輸成功或發(fā)生錯(cuò)誤中止時(shí)更新相應(yīng)的狀態(tài)寄存器,或向CPU發(fā)起中斷請求;DMA傳輸?shù)刂樊a(chǎn)生邏輯模塊,用于在傳輸過程中通過DMA內(nèi)部硬件邏輯的狀態(tài)控制,并根據(jù)用戶配置的傳輸大小,自動計(jì)算出下一個(gè)數(shù)據(jù)在片內(nèi)外存儲器上的傳輸?shù)刂?,并根?jù)片內(nèi)地址產(chǎn)生片上存儲器的片選及讀寫信號,同時(shí)更新數(shù)據(jù)量計(jì)數(shù)器,直到計(jì)數(shù)器變?yōu)榱?;總線傳輸發(fā)送和接收器,用于與總線接口單元連接,進(jìn)行數(shù)據(jù)傳輸。
    2、 如權(quán)利要求1所述的嵌入式處理器的片上高性能DMA,其特征在 于所述的片上高性能DMA還包括傳輸模式選擇模塊,用于設(shè)置固定地址傳輸和非固定長度的突發(fā)傳輸 兩種模式的選擇位,默認(rèn)設(shè)置為非固定長度的突發(fā)傳輸,對片外存儲 器進(jìn)行數(shù)據(jù)搬運(yùn);固定地址傳輸模式中,片外存儲器訪問地址固定不 變,對片外外設(shè)的FIFO進(jìn)行數(shù)據(jù)搬運(yùn);在傳輸過程中,支持兩種模式的動態(tài)切換。
    3、 如權(quán)利要求1或2所述的嵌入式處理器的片上高性能DMA,其特征在于所述的片上高性能DMA還包括虛擬地址到物理地址的動態(tài)轉(zhuǎn)換模塊,用于將片外存儲器虛擬地址經(jīng) 內(nèi)存管理單元映射成物理地址之后,通過總線接口單元發(fā)起傳輸操作 訪問片外存儲器。
    4、 如權(quán)利要求1或2所述的嵌入式處理器的片上高性能DMA,其特征在于所述的片上高性能DMA還包括DMA總線傳輸中止與恢復(fù)邏輯模塊,用于設(shè)置DMA占用總線接口的 優(yōu)先級低于處理器訪問的優(yōu)先級,若DMA在傳輸過程中遇到CPU臨 時(shí)占用總線接口時(shí),當(dāng)前DMA傳輸被掛起,等待CPU傳輸完畢后從 DMA從掛起位置重新發(fā)起傳輸。
    5、 如權(quán)利要求3所述的嵌入式處理器的片上高性能DMA,其特征在 于所述的片上高性能DMA還包括DMA總線傳輸中止與恢復(fù)邏輯模塊,用于設(shè)置DMA占用總線接口的 優(yōu)先級低于處理器訪問的優(yōu)先級,若DMA在傳輸過程中遇到CPU臨 時(shí)占用總線接口時(shí),當(dāng)前DMA傳輸被掛起,等待CPU傳輸完畢后從 DMA從掛起位置重新發(fā)起傳輸。
    6、 如權(quán)利要求1或2所述的嵌入式處理器的片上高性能DMA,其特 征在于在所述DMA控制器中,配置的傳輸寬度包括字、半字和字 節(jié),傳輸寬度默認(rèn)為字,當(dāng)以字節(jié)或半字傳輸時(shí),根據(jù)片上存儲器的 訪問地址自動截取相應(yīng)的寬度進(jìn)行傳輸。
    7、 如權(quán)利要求5所述的嵌入式處理器的片上高性能DMA,其特征在于在所述DMA控制器中,配置的傳輸寬度包括字、半字和字節(jié), 傳輸寬度默認(rèn)為字,當(dāng)以字節(jié)或半字傳輸時(shí),根據(jù)片上存儲器的訪問 地址自動截取相應(yīng)的寬度進(jìn)行傳輸。
    8、如權(quán)利要求1或2所述的嵌入式處理器的片上高性能DMA,其特征在于在所述數(shù)據(jù)緩存器中,根據(jù)系統(tǒng)總線的大小端傳輸模式以及 指令、數(shù)據(jù)片上存儲器的數(shù)據(jù)大小端存儲模式,自動對數(shù)據(jù)進(jìn)行大小 端轉(zhuǎn)換。
    全文摘要
    一種嵌入式處理器的片上高性能DMA,包括數(shù)據(jù)緩存器,用于緩存從片上存儲器讀取的數(shù)據(jù)、向總線接口單元發(fā)送的數(shù)據(jù)、從總線接口單元接收的數(shù)據(jù)以及向片上存儲器寫入的數(shù)據(jù);數(shù)據(jù)大小端轉(zhuǎn)換器;DMA控制器,用于初始化狀態(tài)寄存器、控制寄存器、起始地址寄存器和數(shù)據(jù)量寄存器;DMA傳輸?shù)刂樊a(chǎn)生邏輯模塊,用于自動計(jì)算出下一個(gè)數(shù)據(jù)在片內(nèi)外存儲器上的傳輸?shù)刂?,并根?jù)片內(nèi)地址產(chǎn)生片上存儲器的片選及讀寫信號,同時(shí)更新數(shù)據(jù)量計(jì)數(shù)器,直到計(jì)數(shù)器變?yōu)榱?;以及總線傳輸發(fā)送和接收器。本發(fā)明開發(fā)難度較低、硬件開銷小、移植方便、擴(kuò)展性靈活、數(shù)據(jù)傳輸速率快、極大地提升處理器的性能。
    文檔編號G06F13/28GK101556565SQ20091009558
    公開日2009年10月14日 申請日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
    發(fā)明者嚴(yán)曉浪, 孟建熠, 徐鴻明, 葛海通 申請人:杭州中天微系統(tǒng)有限公司
    網(wǎng)友詢問留言 已有0條留言
    • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
    1