專利名稱:具直接存儲器存取的電子系統(tǒng)及其方法
技術領域:
本發(fā)明是有關于一種電子系統(tǒng)及其設計方法,且特別是有關于一種具直
接存儲器存取(direct memory access, DMA)的電子系統(tǒng)及其方法。
背景技術:
由于使用DMA技術可在元件間數據傳輸的同時不會造成主處理器 (masterprocessor)的造價過高,因而已成為現代電子系統(tǒng)中的一項重要特色。 計算機的主處理器即中央處理單元(CPU)。在其它內嵌系統(tǒng)中,主處理器可 以是一種控制處理器或數字信號處理器。
在沒有DMA的情況下,主處理器必須復制每一筆由數據源傳到目的地 的數據。當進行存儲器元件間的數據傳輸時,主處理器無法執(zhí)行其它指令。 一旦設置了 DMA,當DMA電路負責在一個或多個存儲器元件間的數據移動 時,主處理器可同時執(zhí)行其它指令,因而提高電子系統(tǒng)的總效能。
現有技術中,DMA電路接收來自主處理器的DMA指令,并通過存取一 個或多個存儲器來執(zhí)行此DMA指令。通常會使用一種"周期挪用(cycle stealing)"方式來避免存儲器總線的存取沖突。根據此"周期挪用"方法,在 建立握手協(xié)議(handshaking protocol)后,處理器對存儲器元件的存取機制會暫 時失能。也就是說,當試圖執(zhí)行DMA操作時,DMA電路會對主處理器提出 請求。在接收到處理器的告知收到(acknowledge)的響應時,DMA電路即開 始執(zhí)行此DMA操作。
然而,"周期挪用"方法往往由于成本問題而降低其使用效率。在實時 (realtime)應用的內嵌系統(tǒng)中,這樣的系統(tǒng)消耗變得更顯著。在現代電子系統(tǒng) 設計上,高效率代表低成本,低功率損耗以及產品的高市場競爭力。
發(fā)明內容
為解決上述使用效率低問題,本發(fā)明提供一種具直接存儲器存取能力的 電子系統(tǒng)及直接存儲器存取方法。
根據本發(fā)明一實施方式,提出一種具直接存儲器存取能力的電子系統(tǒng), 包括存儲器元件、處理器以及直接存儲器存取元件。處理器用以通過設定存 儲器元件的元件選擇信號,以存取存儲器元件。當直接存儲器存取元件通過 檢測元件選擇信號得知處理器并未存取存儲器元件時,執(zhí)行等待隊列的直接 存儲器存取操作以存取存儲器元件,以及當直接存儲器存取元件通過檢測元 件選擇信號得知處理器正試圖來存取存儲器元件時,暫停直接存儲器存取操 作。
根據本發(fā)明另一實施方式,提出一種直接存儲器存取方法,用以存取存 儲器元件,包括提供處理器,其中當處理器欲存取存儲器元件時,處理器 設定元件選擇信號;提供直接存儲器存取元件,用以檢測元件選擇信號;當 直接存儲器存取元件根據元件選擇信號得知處理器并未存取存儲器元件時, 執(zhí)行直接存儲器存取;以及當直接存儲器存取元件根據元件選擇信號得知處 理器欲存取存儲器元件時,暫停直接存儲器存取操作。
上述具直接存儲器存取能力的電子系統(tǒng)及其直接存儲器存取方法可避免 處理器控制DMA電路所需的信號來回傳輸,從而提高了數據移動的效率。
圖1繪示依照本發(fā)明第一實施方式的電子系統(tǒng)的方框圖。 圖2繪示依照本發(fā)明第二實施方式的電子系統(tǒng)的方框圖。 圖3繪示依照本發(fā)明較佳實施方式的存取存儲器方法流程圖。 圖4繪示根據DMA指令將第一指定數據由第一存儲器復制到第二存儲 器的時序圖。
具體實施方式
請參照圖1,其繪示依照本發(fā)明第一實施方式的電子系統(tǒng)的方框圖。電
子系統(tǒng)100包括處理器110、直接存儲器存取(Direct Memory Access, DMA) 電路120、第一存儲器130以及第二存儲器140。
DMA電路120連接至處理器110,用以存取第一存儲器130以及第二存 儲器140。當處理器110未存取第一存儲器130時,DMA電路120根據處理 器110發(fā)出的DMA指令Da來執(zhí)行DMA操作。此外,當DMA電路得知處 理器IIO欲存取第一存儲器130時,DMA電路即停止DMA操作。
舉例來說,DMA指令Da要求第一指定數據由第一存儲器130復制到第 二存儲器140,或第二指定數據由第二存儲器140復制到第一存儲器130。
DMA電路120包括檢測電路121,用以檢測元件選擇信號Cs。此元件 選擇信號Cs用以指示處理器IIO欲存取或正在存取第一存儲器130。例如, 元件選擇信號Cs為連接于處理器110與第一存儲器130間的信號線上的信 號。當處理器110欲存取第一存儲器130時,處理器110致能元件選擇信號 Cs。在處理器110完成第一存儲器130的存取前,元件選擇信號Cs可處于 同一狀態(tài)。元件選擇信號Cs也可以提供至檢測電路121,使得檢測電路121 可通過檢測元件選擇信號Cs來判斷處理器110是否正在存取或即將存取第 一存儲器130。若第一存儲器130設置在獨立集成電路芯片中,元件選擇信 號Cs即為芯片選擇信號。值得注意的是,第一存儲器130與DMA電路120 也可以設置在同一集成電路上,且元件選擇信號Cs為選擇第一存儲器130 的信號。
一旦DMA電路120得知處理器110并未對第一存儲器130進行存取, 且需執(zhí)行DMA操作時,DMA電路120開始執(zhí)行DMA操作。在某些情況下, DMA電路120也可以包括狀態(tài)機(statemachine)電路(圖未示),用以控制執(zhí)行 DMA操作或為多個DMA操作排序的詳細步驟,例如是待執(zhí)行DMA操作的 等待隊歹U(waiting queue)。
圖2繪示依照本發(fā)明第二實施方式的電子系統(tǒng)的一種方框圖。電子系統(tǒng)200還包括緩沖器,例如圖2中的寄存器221、 222、 223及224,用以儲存等 待隊列。值得注意的是,緩沖器也可由本領域的技術人員所已知的其它機制 來達成,例如是其它數據結構及/或可儲存一個或多個待執(zhí)行DMA操作的不 同儲存電路。緩沖器也可包括在DMA電路中。處理器IIO可在不同時間發(fā) 出多個DMA指令至DMA電路120。等待執(zhí)行的DMA操作即儲存在等待隊 列之中。在本實施方式中,多工器210由DMA電路120控制,例如通過狀 態(tài)機電路來控制,視實際電路情況以一次取得(fetch)—個或多個DMA操作, 并在DMA電路120得知處理器110并未存取或未欲存取第一存儲器130時 來執(zhí)行DMA操作。由于一旦DMA電路120得知處理器110即將存取第一 存儲器130即中斷DMA操作,DMA操作可能需分成幾個部分來分別執(zhí)行。 當此中斷發(fā)生時,未完成的部分信息會更新至相關記錄,然后再將記錄存回 緩沖器,以便確保下一次可再執(zhí)行DMA操作。
舉例來說,DMA操作具有相關記錄的內容"地址X1"、"地址X2"、 "地址Y1"及"地址Y2",并儲存在寄存器221 224其中之一。這樣的記 錄表示將數據由第一存儲器130的地址X1移到地址X2,再移到第二存儲器 140的地址Yl以及地址Y2的DMA操作。假如DMA電路120并未一次完 成DMA操作,例如得知處理器110開始致能元件選擇信號Cs,將代表下次 繼續(xù)的新起始地址的新狀態(tài)(例如Xl')更新至記錄之中。
也可以在第二實施方式中設計優(yōu)先級。例如,即使處理器110并未存取 第一存儲器130,較低優(yōu)先級的第一 DMA操作也會被中斷并存回等待隊列 中,接著,具有較高優(yōu)先級的第二DMA操作先被執(zhí)行。
圖3繪示依照本發(fā)明較佳實施方式的存取存儲器方法流程圖。此方法可 在狀態(tài)機電路及/或具有對應固件的電路中來達成。首先,在步驟31,接收 處理器110所提供的DMA指令Da。接著,在步驟32, DMA電路120主動 地檢測是否處理器110正在存取或即將存取第一存儲器130。若是,則執(zhí)行 步驟32。如果處理器110并未正在存取或即將存取第一存儲器130, DMA電路120根據DMA指令Da來執(zhí)行DMA操作,如步驟33所示。
接著,在步驟34,繼續(xù)檢測是否處理器110即將存取第一存儲器130。 若否,則回到步驟33,繼續(xù)DMA操作。若處理器110即將存取第一存儲器 130,例如致能元件選擇信號Cs,如步驟35所示,DMA電路120停止執(zhí)行 對應DMA指令Da的DMA操作。最后,在步驟36,判斷是否完成DMA指 令Da對應的DMA操作。若是,則回到步驟31,等待或取回待執(zhí)行的另一 DMA操作。若否,則回到步驟33。
在步驟34中,若DMA指令Da指示需移動大量的數據,則在移動部分 數據后必須檢測處理器110是否需存取第一存儲器130,以便不影響處理器 110的操作。這是因為當DMA電路120正執(zhí)行DMA操作時處理器110可能 需要使用到第一存儲器130。
圖4繪示根據DMA指令Da將第一指定數據由第一存儲器130復制到第 二存儲器140的時序圖。信號dsp一ck為處理器110的頻率信號。信號Cs一DMA 為DMA電路120用來選擇第一存儲器130的存儲器選擇信號。如圖4所示, 信號Cs—DMA以及元件選擇信號Cs實質上互為反相信號。狀態(tài)信號state為 DMA電路120的狀態(tài)描述。信號dm一addr代表待移動數據的存取地址。信 號dm一rdata代表待移動的數據。
請一并參閱圖3與圖4。開始,信號dm—addr設定了待移動數據的存取 地址(A)。在時間tl時,DMA電路120檢測到元件選擇信號Cs為失斷亦即 處理器110不使用第一存儲器130),且待移動數據的存取地址已準備好。經 過一個周期的時間,DMA電路120開始在時間t2存取第一存儲器130。
在時間t2之后,狀態(tài)信號state為DMR,代表待移動數據的一組數據。 待移動數據驗證為D(A),如信號dmjdata所示。在時間t3之后,狀態(tài)信號 state為WAIT。此時,再次驗證處理器110是否存取第一存儲器130,如步 驟34所示。同時,也決定下一組數據的存取位置,其中存取位置為"A+1", 如信號dm addr所示。在時間t4,當數據D(A+1)被移動后,被檢測到的元件選擇信號Cs隨即 致能。此時,如步驟35所示,DMA指令Da必須停止,并保持狀態(tài)WAIT, 如狀態(tài)信號state所示。在時間t5,被檢測的元件選擇信號Cs失能,且DMA 電路120繼續(xù)執(zhí)行步驟33,并進入DMR狀態(tài)。
根據本發(fā)明上述實施方式所公開的具直接存儲器存取的電子系統(tǒng)及其方 法,DMA電路自動取得執(zhí)行DMA操作的時機而不影響處理器的操作。因此, 可避免處理器控制DMA電路所需的信號來回傳輸而造成數據移動的效率降 低。
雖然本發(fā)明已以實施方式揭露如上,但是對于本領域的技術人員,依據 本發(fā)明實施方式的思想,在具體實施方式
及應用范圍上均會有改變之處,綜 上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種具直接存儲器存取能力的電子系統(tǒng),包括存儲器元件;處理器,用以通過設定所述的存儲器元件的元件選擇信號,以存取所述的存儲器元件;以及直接存儲器存取元件,用以當所述的直接存儲器存取元件通過檢測所述的元件選擇信號得知所述的處理器并未存取所述的存儲器元件時,執(zhí)行等待隊列的直接存儲器存取操作以存取所述的存儲器元件,以及當所述的直接存儲器存取元件通過檢測所述的元件選擇信號得知所述的處理器正試圖來存取所述的存儲器元件時,暫停所述的直接存儲器存取操作。
2. 如權利要求1所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的處理器及所述的直接存儲器存取元件設置在集成電路芯片中。
3. 如權利要求l所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的處理器為數字信號處理器或中央處理單元。
4. 如權利要求l所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的存儲器元件設置在集成電路芯片中,且所述的元件選擇信號為芯片選 擇信號。
5. 如權利要求l所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的直接存儲器存取元件包括檢測電路,用以接收所述的元件選擇信號;以及緩沖器電路,用以儲存所述的等待隊列,所述的等待隊列包括所述的處 理器發(fā)出的多個直接存儲器存取操作。
6. 如權利要求5所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的直接存儲器存取元件還包括狀態(tài)機電路,用以根據所述的檢測電路對 所述的元件選擇信號的檢測來執(zhí)行及暫停所述的直接存儲器存取操作。
7. 如權利要求6所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 在所述的檢測電路通過檢測所述的元件選擇信號檢測到所述的處理器欲存取 所述的存儲器元件時,所述的狀態(tài)機電路將所述的直接存儲器存取操作移入 所述的等待隊列中。
8. 如權利要求6所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于,所述的狀態(tài)機電路將尚未執(zhí)行完成且具較低優(yōu)先級的直接存儲器存取操作移 入所述的等待隊列中,并執(zhí)行具有較高優(yōu)先級的直接存儲器存取操作。
9. 如權利要求1所述的具直接存儲器存取能力的電子系統(tǒng),其特征在于, 所述的直接存儲器存取操作包括在所述的存儲器元件與另一存儲器元件之間 移動數據。
10. —種直接存儲器存取方法,用以存取存儲器元件,所述的方法包括 提供處理器,其中當所述的處理器欲存取所述的存儲器元件時,所述的處理器設定元件選擇信號;提供直接存儲器存取元件,用以檢測所述的元件選擇信號; 當所述的直接存儲器存取元件根據所述的元件選擇信號得知所述的處理器并未存取所述的存儲器元件時,執(zhí)行直接存儲器存取操作;以及當所述的直接存儲器存取元件根據所述的元件選擇信號得知所述的處理器欲存取所述的存儲器元件時,暫停所述的直接存儲器存取操作。
11. 如權利要求10所述的直接存儲器存取方法,其特征在于,還包括 提供等待隊列,用以儲存所述的處理器發(fā)出的多個直接存儲器存取操作。
12. 如權利要求ll所述的直接存儲器存取方法,其特征在于,還包括 提供檢測電路,當所述的檢測電路通過檢測所述的元件選擇信號檢測到所述的處理器欲存取所述的存儲器元件時,將所述的直接存儲器存取操作移 入所述的等待隊列中。
13. 如權利要求IO所述的直接存儲器存取方法,其特征在于,所述的存 儲器元件設置在集成電路芯片中,且所述的元件選擇信號為芯片選擇信號。
14.如權利要求10所述的直接存儲器存取方法,其特征在于,所述的處 理器為數字信號處理器或中央處理單元。
全文摘要
本發(fā)明公開一種具有直接存儲器存取(Direct Memory Access,DMA)能力的電子系統(tǒng)及其直接存儲器存取方法。在電子系統(tǒng)中,DMA電路利用元件選擇信號來指示處理器正存取或即將存取存儲器。若DMA電路得知處理器并未存取存儲器,DMA電路開始DMA操作。一旦DMA電路得知處理器即將存取存儲器時,DMA電路停止DMA操作,并將存儲器的使用權歸還給處理器。上述具直接存儲器存取能力的電子系統(tǒng)及其直接存儲器存取方法可避免處理器控制DMA電路所需的信號來回傳輸,從而提高了數據移動的效率。
文檔編號G06F13/20GK101303676SQ20071015338
公開日2008年11月12日 申請日期2007年9月18日 優(yōu)先權日2007年5月7日
發(fā)明者吳正鼎, 康欣佑 申請人:聯發(fā)科技股份有限公司