TWI437434B - 直接記憶體存取控制器 - Google Patents

直接記憶體存取控制器 Download PDF

Info

Publication number
TWI437434B
TWI437434B TW096147711A TW96147711A TWI437434B TW I437434 B TWI437434 B TW I437434B TW 096147711 A TW096147711 A TW 096147711A TW 96147711 A TW96147711 A TW 96147711A TW I437434 B TWI437434 B TW I437434B
Authority
TW
Taiwan
Prior art keywords
dma
mode
cpu
dma controller
signal
Prior art date
Application number
TW096147711A
Other languages
English (en)
Other versions
TW200844750A (en
Inventor
Rodney J Pesavento
Joseph W Triece
Original Assignee
Microchip Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Tech Inc filed Critical Microchip Tech Inc
Publication of TW200844750A publication Critical patent/TW200844750A/zh
Application granted granted Critical
Publication of TWI437434B publication Critical patent/TWI437434B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Bus Control (AREA)

Description

直接記憶體存取控制器
本申請案技術領域係關於一種直接記憶體存取控制器。
在微處理器系統、整合式微控制器等等中典型使用直接記憶體存取控制器(DMA)。使用DMA控制器以獨立於電腦系統之中央處理單元來執行自記憶體至周邊裝置與自周邊裝置至記憶體之資料傳送。為此目的,可將DMA控制器視為具有有限能力的第二可程式化處理單元。一般而言,指示DMA控制器傳送來自來源位置的特定量之資料至目的地位置。來源可係在記憶體內,例如,微控制器的資料記憶體、周邊裝置的記憶體或由周邊裝置產生或在周邊裝置內可存取的資料,諸如類比轉數位轉換器、埠、擷取比較單元等周邊裝置。目的地亦可係在記憶體內,因此允許在電腦系統或微控制器的記憶體裝置內高速傳送。但是,目的地亦可係周邊裝置,諸如數位轉類比轉換器、埠等。為了傳送來自來源的資料至目的地,DMA控制器必須接收各自的來源位址與目的地位址。此外,需要指定每一傳送長度。為此目的,DMA控制器需要接收資料傳送的長度或待傳送之資料的開始與結束位址。
使用此類DMA控制器之微處理器系統通常係運用在手持系統中,彼等手持系統尤其對電力消耗敏感。在上文所述之DMA控制器與處理器的互動以及整合式與外部組件的互動造成顯著的電力消耗。因此,需要一種具有DMA控制器 的改良系統。
根據一項具體實施例,一種系統可包括:一中央處理單元(CPU),其可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中;複數個系統組件,其可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中;一直接記憶體存取(DMA)控制器,其運作獨立於該CPU並且可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中,其中該DMA控制器進一步可運作以傳送資料往返於一記憶體或周邊裝置,其中當該系統係處於一睡眠模式或低度電力模式中時,僅該DMA控制器及(若有需要)執行一DMA異動所需的任何系統組件被切換進入作用中模式。
根據進一步具體實施例,在已完成該DMA異動之後,該DMA控制器及執行該DMA異動所需的任何系統組件可被切換返回至該睡眠模式或低度電力模式。根據進一步具體實施例,該DMA控制器可在已至少部分完成至少一資料傳輸之後產生一訊號,該訊號係用於撤銷啟動該CPU之該睡眠模式。根據進一步具體實施例,該系統可進一步包括:一電源管理單元,其用於控制複數個低度電力操作模式,其中該CPU及該DMA控制器可被彼此獨立地設定至一低度電力模式,其中於一第一低度電力操作模式期間,該CPU係依一降低之時脈速度運作,並且於一第二低度電力操作模式期間,該中央處理單元被停止。根據進一步具體實施例,可藉由一第一中斷層級,使該CPU自一第一低度電力 操作模式切換進入一較高電力操作模式,以及可藉由一第二中斷層級,使該DMA控制器自一第一低度電力操作模式切換進入一較高電力操作模式,該第二中斷層級不同於該第一中斷層級。根據進一步具體實施例,該DMA控制器可包括複數個通道,每一通道包括一控制暫存器,該控制暫存器包括一可程式化位元,該可程式化位元判定是否在完成一資料傳送之後隨即產生該訊號。根據進一步具體實施例,在完成一資料傳送之後的該訊號可係一中斷訊號,並且其中該控制暫存器包括一可程式化位元欄位,該可程式化位元欄位判定該中斷之一優先權層級。根據進一步具體實施例,該系統可進一步包括:一第一暫存器,用於儲存一預先決定次數;一第二暫存器,用於計數完成之DMA傳輸之次數;及一比較器,用於比較該第一暫存器與該第二暫存器之內容,其中僅如果該第二暫存器之內容等於或高於該第一暫存器之內容才產生訊號。根據進一步具體實施例,該DMA控制器可包括複數個通道,每一通道可包括一控制暫存器,該控制暫存器包括一位移位元欄位,其中如果一來源或目的地位址等於一結束位址減該位移,則產生該訊號。根據進一步具體實施例,該DMA控制器可包括複數個通道,每一通道包括一喚醒暫存器,其中如果一來源或目的地位址等於該喚醒暫存器中儲存的一喚醒位址,則產生該訊號。
根據另一具體實施例,一種微控制器可包括:一中央處理單元(CPU),其可程式化地運作於具有一第一電力消耗 之一第一操作模式及具有一第二電力消耗之一第二操作模式,該第二電力消耗低於該第一電力消耗;一匯流排,其耦合至該中央處理單元;一記憶體,其耦合至該匯流排;一周邊單元,其耦合至該匯流排;及一直接記憶體存取(DMA)控制器,其耦合至該匯流排,其中該DMA控制器運作獨立於該CPU,以傳送資料往於該記憶體或周邊單元,同時該CPU係處於該第二操作模式中,其中該DMA控制器在完成一資料傳送之後隨即產生一訊號,該訊號使該CPU自該第二操作模式切換進入該第一操作模式。
根據進一步具體實施例,該微控制器可進一步包括:一電源管理單元,其用於控制複數個低度電力操作模式,其中該DMA控制器及該CPU係可運作以獨立地進入該等低度電力操作模式之一者中。
根據另一具體實施例,一種藉由一系統中之一直接記憶體存取(DMA)控制器獨立地實行自一來源至一目的地的複數個資料之一傳輸,該系統包括一中央處理單元(CPU),該方法可包括下列步驟:a)使至少該CPU及該DMA控制器自一高度電力消耗模式切換進入一低度電力消耗模式;b)接收一DMA請求;c)使該DMA控制器切換進入該高度電力消耗模式,同時該CPU繼續維持在該低度電力消耗模式;d)由該DMA控制器實行該DMA,同時該CPU維護該低度電力消耗模式;e)在完成至少該DMA請求後,隨即使該DMA控制器切換進入該低度電力消耗模式。
根據進一步具體實施例,可使該CPU在該低度電力模式 期間停止。根據進一步具體實施例,該CPU在該低度電力模式期間可依一降低之時脈速度運作。根據進一步具體實施例,該DMA控制器可包括複數個通道並且係可程式化以設定每一通道之一優先權層級,其中一優先權層級定義一通道的一執行優先順序。根據進一步具體實施例,該DMA控制器可包括複數個通道,並且每一通道係可程式化以判定是否在完成一通道的該DMA請求之後隨即產生一訊號,該訊號係用於使該CPU切換進入該高度電力消耗模式。根據進一步具體實施例,在完成一資料傳送之後的該訊號可係一中斷訊號。根據進一步具體實施例,對於每一通道,該中斷訊號之一優先權層級係可程式化。根據進一步具體實施例,完成一資料傳送係可藉由一目標結束位址或藉由一預先定義資料匹配一待傳送資料予以判定。根據進一步具體實施例,步驟e)可包括在完成該DMA請求之後隨即產生一訊號,該訊號促使該CPU切換進入一高度電力消耗模式。根據進一步具體實施例,步驟e)可包括在完成複數個DMA請求之後隨即產生一訊號,該訊號促使該CPU切換進入一高度電力消耗模式。根據進一步具體實施例,在步驟a)中可使該系統進入該低度電力消耗模式,並且在接收該DMA請求之後,該DMA控制器及執行該DMA請求所需的任何系統單元可被切換進入一操作模式。
根據另一具體實施例,一種藉由一系統中之一直接記憶體存取(DMA)控制器獨立地實行自一來源至一目的地的複數個資料之一傳輸,該系統包括一中央處理單元(CPU), 該方法可包括下列步驟:a)使至少該CPU及該DMA控制器自一高度電力消耗模式切換進入一低度電力消耗模式;b)接收一DMA請求;c)使該DMA控制器切換進入一操作模式;d)由該DMA控制器實行該DMA,同時該CPU維護該低度電力消耗模式。
根據進一步具體實施例,該方法可進一步包括下列步驟:e)在完成該DMA請求之後,隨即使該CPU切換進入該高度電力消耗模式以及該DMA控制器切換進入該低度電力消耗模式。
熟悉此項技術者可從接下來的附圖、實施方式及申請專利範圍明白本揭示內容的其他技術優點。本申請案之各種具體實施例可獲得僅所提出之優點的子集。無任一優點係具體實施例之關鍵。
根據一項具體實施例,允許DMA控制器在一事件(諸如中斷)上喚醒,同時數位裝置中的中央CPU與相關邏輯以及非需要處於作用中狀態以服務該事件的組件及裝置維持在電源關閉或睡眠模式中。以此方式,DMA邏輯或DMA控制器可服務請求,同時CPU及其它系統裝置維持在睡眠模式中。在已完成該服務之後,DMA控制器控制於該服務常式期間已處於作用中狀態之該等系統裝置(包括DMA控制器本身)轉變回各自睡眠模式。
視需要,當抵達一預先定義緩衝器計數或以其它方式判定傳輸結束時,則(例如)藉由另一中斷訊號來喚醒處理 器,並且CPU退出電源關閉模式或睡眠模式。因此,可個別控制CPU及DMA控制器之各自電力模式,其中可使每一者進入低度電力消耗模式或高度電力消耗模式。可使用不同優先權層來喚醒CPU及/或DMA控制器。因此,舉例而言,對於一些優先權層級,僅將喚醒DMA控制器,同時CPU維持在睡眠模式中。
再者,DMA控制器與CPU共用相同的資料與位址匯流排,以用於傳送資料往返於記憶體。CPU與DMA控制器兩者皆可對匯流排之存取。因此,CPU或DMA控制器可係主控者(master)。另外,複數個周邊裝置係可組態以存取匯流排並且變成該匯流排上的主控者或從屬者。系統可憑藉「先到優先」優先權或使用指派之優先權來授予對匯流排之存取。「先到優先」優先權方案將對匯流排之存取授予給首先請求存取者。所有其它請求者必須等待並且將依其請求順序循序給予存取。但是,大多數系統使用指派式優先權方案,其中每一可能的主控者之受指派存取優先權可優先於較低優先權。一般而言,在此類系統中,DMA控制器具有最高優先權。因此,如果CPU或周邊裝置主控者及DMA控制器正在主動企圖授予匯流排,則DMA控制器之存取匯流排的優先權一般優先於所有其它可能的主控裝置。因此,透過DMA控制器進行資料傳送的任何啟動將使CPU或周邊裝置受到時間拖延。根據一項具體實施例,DMA控制器經設計成為可程式化,其方式使得CPU可(例如)藉由設定專用控制暫存器中的位元來暫停DMA控制器 之資料傳送。但是,可提供其它控制機制以暫停DMA控制器,例如,透過介於CPU與DMA控制器之間的專用控制線。
習知之數位裝置當前回應事件之方式為喚醒處理器核心或整個系統,並且透過各自之中斷系統來執行各自之指令。此耗時且導致消耗更多電流以供電給CPU及程式記憶體,以在回到睡眠模式之前執行服務常式。根據一具體實施例,僅喚醒DMA控制器以服務非同步事件,允許CPU、程式記憶體及非該服務所需的其它組件維持在低度電力狀態,同時服務該事件。事件通常僅僅讀取周邊裝置內容,並且將值儲存於本端記憶體中。這可單獨由DMA控制器來達成。根據一具體實施例,在服務事件後,DMA控制器回到睡眠模式。
一晶片微控制器或系統可具有下列模式(可透過各自受控中斷系統或其它適合控制來實施彼等模式)。在執行模式中,所有時脈執行所有周邊裝置與中央處理單元的各自組態值。在此模式中,CPU係作用中狀態並且耗電。在第一低度電力模式(閒置模式)中,處理器時脈停止並且僅消耗待命電力,舉例而言,該時脈可被閘控關閉(gated off)。匯流排矩陣上的匯流排時脈繼續執行。快閃程式記憶體係處於待命模式中。中斷事件啟動僅DMA控制器,或使DMA控制器處於全速度且處理器時脈具有降低之時脈。在第二低度電力模式(睡眠模式)中,處理器時脈及匯流排時脈停止。快閃程式記憶體被停止供電。非同步中斷事件 啟動僅DMA控制器之時脈。在其它具體實施例中,可提供更多模式,在彼等模式中僅某些裝置接收區塊並且因此係運作狀態。
習知之技術數位裝置不具有未啟用CPU情狀下退出低度電力模式的能力。根據下文更詳細說明之具體實施例,DMA控制器可依偽同步於系統時脈之個別的系統時脈執行。此時脈於程式化外部事件(舉例而言,諸如中斷)以喚醒DMA時將被啟用。於此處理程序期間不需要啟用CPU,這節省電力。根據一具體實施例,每次DMA控制器完成一傳輸時,使儲存次數n的暫存器增加1。一旦已記錄DMA事件的預先定義次數n>=1,則可用中斷事件警示CPU。根據一具體實施例,中斷控制器可偵測周邊裝置(USB或乙太網路)之事件並且喚醒彼等周邊裝置至(例如)閒置模式,從而彼等周邊裝置可寫入其緩衝器於系統資料隨機存取記憶體(RAM)。因此,如果於睡眠模式期間發生DMA事件,則僅DMA控制器及資料記憶體且(視需要)各自周邊裝置自睡眠模式切換至作用中模式。因此,僅DMA異動所需的系統組件應請求而啟動,並且一旦已完成請求將再次予以撤銷啟動。
請參閱附圖,現在將說明本申請案的較佳具體實施例。圖1繪示在電腦系統內DMA控制器(諸如微控制器100)之典型具體實施例的方塊圖;一般而言,微控制器100包括(例如)經由匯流排矩陣120耦合至系統組件及周邊裝置的一中央處理單元(CPU)110。透過匯流排矩陣120,CPU 110與 複數個周邊裝置i至k 145...150直接通信及/或透過周邊橋接器180與複數個周邊裝置n至m 165...170通信。周邊裝置可係諸如如下(但不限於)裝置:I/O埠;記憶體;A/D轉換器與D/A轉換器;計時器;脈寬調變器等等。可提供一中斷控制器155,其控制中斷訊號以用於提供非同步啟動CPU 110內之中斷常式。可使用中斷訊號以中斷當前執行之指令流,並且強制CPU 110分支至各自中斷服務常式。亦可使用中斷訊號來控制DMA控制器125之功能性,舉例而言,啟動新通道傳輸。但是,此外,亦可使用中斷訊號來喚醒CPU 110、DMA控制器125及其它周邊裝置。匯流排矩陣120可提供一專用中斷匯流排以運送彼等訊號。中斷控制器155可被程式化以遮罩某些中斷層級,舉例而言,用以防止某些中斷訊號中斷或喚醒CPU 110。
另外,可在匯流排矩陣120內提供一專用記憶體匯流排,以經由一快取區130耦合CPU 110與一快閃程式記憶體135。一資料隨機存取記憶體(RAM)140亦可經由匯流排矩陣120而耦合至CPU 110。圖中以數字125來繪示一直接記憶體存取控制器(DMA)。該DMA控制器1 25亦耦合至匯流排矩陣120,以允許介於耦合至匯流排矩陣120之裝置之間的資料傳送。在匯流排矩陣120內,DMA單元可透過各種匯流排而耦合至記憶體140及周邊裝置145..150與165..170。另外,DMA控制器125可透過匯流排矩陣120接收來自CPU 110的複數個控制訊號。一系統時脈裝置115直接或透過匯流排矩陣120中的各自控制訊號提供各種時脈 訊號至CPU及需要一時脈的所有單元。根據一項具體實施例,為了允許CPU與DMA控制器之獨立運作,為CPU與DMA控制器提供兩個或多個獨立時脈訊號。亦可透過匯流排矩陣120來提供不同時脈給其它系統組件。替代做法為,系統內的每一組件可運作以控制自己的電力模式。為此目的,匯流排矩陣120可包括一專用電源控制匯流排,該專用電源控制匯流排耦合至一電源管理單元175,其包括單個或多個控制訊號、電力模式訊號及指示哪些單元正運作於哪一電力模式的控制訊號。但是,替代做法為,電源管理單元可直接控制所有單元。
此類系統允許在不需要涉及CPU 110情況下由DMA控制器125進行介於耦合至120之任何周邊裝置145..150與165..170之間的資料傳送,以及介於彼等周邊裝置145..150、165..170與記憶體140之間或記憶體內140的資料傳送。通常僅為了初始化DMA控制器125及一旦已傳送資料隨即予以處理才需要CPU 110。一旦DMA控制器125被程式化,則不需要CPU 110輔助來適當導引資料傳送。接著,使CPU 110可用於執行其它任務。為此目的,實行平行DMA傳送的系統通常不變更相關聯於該系統之單元的電源管理,原因係(舉例而言)在一些情況中,CPU 110可實行獨立功能,同時DMA控制器125實行資料傳送。電源管理單元175允許裝置之彈性控制。因此,取決於省電模式,可關閉該系統的不同單元。該等省電模式之電力消耗自高至低變化。CPU 110在大多數省電模式中通常係處於 作用中狀態並且可以不同時脈速度運作。一般而言,僅在最高省電模式中,才完全關閉CPU 110。
根據一項具體實施例,具有CPU 110及DMA控制器125的系統允許特定模式,在該特定模式中,可與CPU 110分離地啟動DMA控制器125,並且在該特定模式中,CPU 110可同時進入從降低之時脈速度至完全撤銷啟動的不同層級省電模式。根據具體實施例,一旦CPU 110與DMA控制器125進入較高層級省電模式(諸如CPU 110與DMA控制器125被停止的靜態模式),隨即透過DMA傳送請求獨立地啟動DMA控制器125。此類請求可(例如)透過一自各中斷訊號予以產生。一旦接收到此類傳送請求,DMA控制器125將運作。為此目的,若需要,電源管理單元可喚醒DMA控制器125及一或多個請求之周邊裝置。但是,在一項具體實施例中,中斷訊號就其本身而言可啟動DMA控制器125。甚至於省電模式期間記憶體140可已經處於作用中狀態,但若非處於作用中狀態,則若需要亦可予以重新啟動。一旦各自DMA傳送所需的所有單元係作用中狀態,則DMA控制器125適當地開始DMA傳送。於此時間期間,CPU及非異動所需的其它裝置維持在其各自睡眠模式中。這可藉由(舉例而言)遮罩中斷層級來達成,遮罩中斷層級之方式致使各自中斷層級僅啟動DMA控制器125並且不啟動CPU 110。DMA控制器125監視並且控制傳送,以及直接或透過電源管理單元175發送訊號至CPU 110,該訊號將喚醒CPU 110。舉例而言,在一項具體實施例中,一旦 DMA傳輸完成,DMA控制器125可產生層級充分高以喚醒CPU 110的中斷。因此,接著,CPU可進一步處理已傳送之資料。一旦CPU 110完成任何必要處理,CPU 110可再次進入各自省電模式。再者,在DMA控制器125已服務DMA請求之後,其可重新進入睡眠模式或低度電力模式。在一項具體實施例中,僅如果已完成預先決定數量之DMA傳輸才起始用於CPU 110之喚醒處理程序。為此目的,提供各自之暫存器,每次已完成一DMA傳輸時,使該暫存器增加1。僅如果此暫存器的內容高於或等於一預定次數n>=1才產生用於喚醒CPU 110的中斷訊號。
在另一項具體實施例中,一特殊暫存器可包括一起始CPU 110之啟動的位址或資料。此具體實施例對於如果CPU 110自睡眠模式轉變至作用中模式需要顯著時間量有所用處。因此,一中間位址(其被設定至介於傳輸之開始與結束位址的預先定義數目個記憶體地點)可觸發CPU 110之重新啟動。因此,每當已完成DMA傳送時,CPU將成為作用中狀態,而無(例如)起因於振盪器啟動時間的任何進一步延遲。作為特殊暫存器之替代,可使用一控制暫存器中的一位元欄位來定義對該結束位址的一位移,其可用於在已完成DMA傳輸之前產生一喚醒訊號。
圖2繪示在匯流排矩陣120內使用的一匯流排200之一些匯流排訊號。舉例而言,匯流排可包括慣用位址與資料訊號以及複數個控制訊號。在複數個控制訊號之中,該等控制訊號可包括(如圖所示):複數個中斷訊號,用於定義具 有不同優先權/層級的中斷訊號;一特定訊號,用於指示睡眠模式;以及相關聯之模式訊號,其指示待進入的睡眠模式類型。可包括指示出哪一些單元應進入各自睡眠模式的其它訊號。圖2亦繪示在特定單元無法被個別指派不同電力模式的系統中可使用的專用CPU時脈訊號及個別之DMA時脈訊號之實例。底部控制線指示出在微處理器或微控制器中慣常實施的其它控制訊號。
圖3繪示DMA控制器之具體實施例。複數個DMA通道350..360經提供並且受控於控制匯流排340,諸如中斷請求控制匯流排。該等DMA通道350..360耦合至匯流排310,以接收資料及位址。具體而言,一位址解碼器320接收位址並且與各自控制暫存器330相比較,以控制DMA傳送的功能性。可使用一多工器370以控制各自通道350..360的輸出。控制器380控制多工器370並且因此控制流動通過後續匯流排矩陣介面390之資料。圖3所示之具體實施例可受控於各自中斷訊號。舉例而言,可使用中斷訊號來起始透過各自通道的傳送。為此目的,每個頻道可被指派一各自中斷層級。可使用一中斷層級子集,並且DMA控制器125係可程式化以指派某些中斷層級給各自傳送通道。另外,DMA控制器係可程式化以在下列狀況下產生複數個中斷訊號:在完成一傳輸後;抵達一傳輸中的一定點,諸如傳送一通道緩衝器之一半;抵達一通道緩衝器內的一預先定義點;或匹配一待傳送的預先定義資料型樣。可實施其它中斷控制訊號。
圖4繪示DMA控制器125內之通道之具體實施例的更多細節。根據一項具體實施例,DMA控制器125可具有靜態設計並且因此可接收其自己的DMA時脈訊號490,可使用DMA時脈訊號490來直接控制電力模式,舉例而言:在高度電力模式中,裝置將接收最高時脈速度;在最低電力模式中無任何時脈訊號;及中間電力模式可包括各種中間時脈速度。DMA控制器125可包括可程式化閘,其接收時脈訊號,並且可在進入睡眠模式後隨即封鎖時脈訊號,以及在接收到中斷喚醒訊號後隨即開啟彼等閘。DMA控制器125進一步包括一資料暫存器或鎖存器410a及一相關聯之位址暫存器或鎖存器440a,440b,該兩者耦合至匯流排矩陣120內的一接收匯流排470與一傳輸匯流排480。圖4以虛線標示接收匯流排470及傳輸匯流排480可合為一並且係同一者,諸如圖2中之匯流排200。但是,在另一具體實施例中,DMA控制器125亦可經組態成在兩個不同匯流排之間通信。在此具體實施例中,接收匯流排470可係(例如)如圖3所示之匯流排310,以及傳輸匯流排480可係經連接至如圖3所示之匯流排矩陣介面390的另一匯流排。兩資料暫存器或鎖存器410a及位址暫存器或鎖存器440a,440b耦合至彼等匯流排。替代做法為,可對於傳輸與接收利用分開的暫存器。由於來源與目的地位址通常不同,所以如圖4所示之分開的位址暫存器440a與440b有所用處。資料暫存器410a及傳輸及/或接收暫存器440a,440b可進一步耦合至比較器420及450,以判定資料與位址之匹配。
於DMA資料傳送期間,DMA控制器125可經程式化以傳送特定量之資料至一目的地,該特定量之資料可開始於一來源開始位址並且結束於一來源結束位址,其亦可開始於一目的地開始位址並且結束於一目的地結束位址。為此目的,舉例而言,來源開始位址被載入至暫存器440a,並且目的地開始位址被載入至暫存器440b。DMA控制器125進一步接收待傳送之資料區塊的長度或一來源結束位址。如果使用來源結束位址,則此位址被載入至各自暫存器440c中,該暫存器440c耦合至一比較器單元450。替代做法為,可使用目的地結束位址或如上文所述的資料區塊長度來判定傳送結束。一旦已實行此類示範性初始化,則資料傳送適當地發生。DMA控制器125進一步可包括另一暫存器440d,可使用該暫存器440d來定義一特定中間位址,以用於產生一傳送已抵達一定點之訊號。為此目的,此暫存器440d可被預設為一位址,該位址指示出一傳送緩衝器的中間點或該緩衝器內的任何其它點。比較器單元450可包括一群組之比較器或可經組態以在比較不同暫存器內容後隨即產生個別之訊號。可使用該等比較器輸出訊號來產生特定之中斷訊號。
在下文中解說使用單個匯流排的傳送。DMA控制器125將第一位址(儲存在暫存器440a中的來源開始位址)置於該匯流排上。此位址可係在一記憶體或耦合至該匯流排的任何裝置內。接著,相關聯之資料被傳送至資料暫存器410a中。在一後續步驟中,解除暫存器440a與該匯流排之耦 合,並且使暫存器440b耦合至該匯流排。替代做法為,如果僅使用一個位址暫存器,則將目的地開始位址載入至該位址暫存器。因此,該目的地位址現在被置於該匯流排上以定址各自目的地,諸如一記憶體或耦合至該匯流排的任何裝置。儲存在暫存器410a中的資料被傳送至該目的地位址。接著累加來源位址暫存器440a及目的地位址暫存器440b,並且重複處理程序直到該來源位址暫存器440a含有來源結束暫存器。此傳輸結束可(例如)藉由比較器450(其比較位址暫存器440a與暫存器440c之內容)予以偵測。可使用暫存器440d來產生中間訊號,該中間訊號指示出已抵達傳輸的一定狀態/時間。
此外,DMA控制器125允許有條件式傳送,其一旦已接收到一特定型樣(諸如一預先定義資料位元組)隨即停止傳送。為此目的,DMA控制器125包括一進一步型樣暫存器410b。在初始化之後,隨即將一型樣(諸如一特定位元組)載入至該暫存器410b。一旦比較器420偵測到介於暫存器410a中載入之資料與型樣暫存器410b之間的匹配,則產生一各自訊號430,該訊號430向DMA控制器125指示出已抵達傳輸結束。為了防止無盡的傳輸,除了定義一最大傳送外,亦可使用位址比較器450。
因此,一般而言,根據此具體實施例之DMA控制器125允許兩種不同類型異動。第一異動被定為固定長度傳輸,其允許DMA控制器傳送一經定義區塊之資料。第二異動具有一開放式長度,並且其長度係藉由一特定型樣予以定 義。舉例而言,亦可藉由一特定符號來定義傳輸結束。Moreover,在另一具體實施例中,一符號序列可定義傳輸結束。因此,更具彈性定義傳輸結束係可行的。舉例而言,作為單個位元組之替代,可使用一含兩個位元組的序列,諸如復位(CR)換行(LF)序列。為此目的,可提供複數個暫存器,該複數個暫存器係用各自序列予以程式化。可用一最大傳送長度來增強第二異動類型,以避免無盡的傳送迴圈並且因此提供額外安全性。
圖5繪示DMA控制器125之另一示範性具體實施例。在此具體實施例中,提供一來源暫存器510及一目的地位址暫存器520。另外,一長度/最大長度暫存器530耦合至一比較器580,其可產生一結束位址偵測訊號EndAddr。比較器580另外耦合至一計數器570。一型樣暫存器540耦合至另一比較器550,該比較器550亦連接至一資料暫存器560,該資料暫存器560接收及傳輸適當的資料Din 與Dout 。比較器550產生一訊號Match,其接著可產生一傳輸結束訊號EofTrans。可提供多個型樣暫存器540及相關聯之比較器,如使用虛線之各自元件所標示。可提供介於該等暫存器與該等比較器之間的各自邏輯,以允許不同類型之傳輸。作為一項實例,圖5繪示一第一可控制式驅動器585,其接收來自比較器580之訊號EndAddr。驅動器585的輸出耦合至一OR閘590之一第一輸入。一第二可控制式反轉器555接收來自比較器550的訊號Match。驅動器555的輸出耦合至OR閘590之第二輸入。因此,OR閘590的輸出提供一 傳輸結束訊號EofTrans。可使用此訊號來控制一資料傳送。另外,此訊號可被饋送至一電源管理單元175。
替代做法為,提供比較器單元565以比較來源或目的地位址暫存器510,520與結束位址暫存器595,以直接產生一傳輸結束訊號EofTrans。在另一具體實施例中,提供位移暫存器545,使用其內容以自結束位址暫存器595減去一位移,用以產生一獨立之提早喚醒訊號,將於下文更詳細描述。作為進一步替代方案,使用喚醒位址暫存器575來取代位移暫存器545。在此具體實施例中,藉由比較比較來源或目的地位址暫存器510,520與結束位址暫存器595來產生傳輸結束訊號EofTrans,以及藉由比較比較來源或目的地位址暫存器510,520與喚醒位址暫存器575來產生喚醒訊號WakeUp。
此外,根據另一具體實施例,可提供控制暫存器515(其儲存一預先定義可程式化次數n)及暫存器535(其充當一計數器並且計數DMA控制器所執行的傳輸次數)。該兩者暫存器的內容係由比較器525予以比較並且將結果饋送至電源管理單元175。暫存器515儲存整數n,該整數n係由使用者透過CPU 110予以程式化。在設定系統成為睡眠模式之後,隨即重新暫存器535為DMA#=0。如果在睡眠模式期間接收到一DMA請求,則重新啟動DMA控制器及DMA傳輸所需之各自的裝置。如果已完成一傳輸,則累加暫存器535且因此累加DMA#。比較器525比較暫存器515與535的內容並且發送一結果至電源管理單元175。如果DMA#>= n,則電源管理單元175產生喚醒訊號。否則,使DMA控制器125回到睡眠模式直到下一DMA請求到達。
可在不同模式中實行DMA傳輸。在第一模式中,驅動器555被控制以解除比較器550與OR閘590之耦合,在OR閘590之第二輸入處產生一恆定邏輯低訊號,且驅動器585被控制以使比較器580耦合至OR閘590。將各自來源開始位址及目的地開始位址載入至暫存器510與520。將待傳輸之資料區塊的長度址載入至暫存器530,並且將計數器570重設至0。接著可開始資料傳送。為此目的,藉由暫存器510所定址的資料被載入至暫存器560中,並且被寫入至暫存器520中所包含的位址。接著,使暫存器510與520累加所傳輸之資料的大小。舉例而言,如果資料暫存器係一位元組寬之暫存器,則使暫存器510與520累加1。如果資料暫存器係一16位元暫存器,則使暫存器510與520累加2,以此類推。相應地累加計數器570。比較器580比較計數器570之計數值與暫存器530。重複資料傳送直到該計數值匹配暫存器530之內容。如果達成此一匹配,則EndAddr訊號變成邏輯高,並且OR閘590的輸出將變高以指示出一傳輸結束EofTrans。結果,停止DMA控制器。
在第二模式中,驅動器585被控制以解除比較器580與OR閘590之耦合,在OR閘590之第一輸入處產生一恆定邏輯低訊號,並且驅動器555被控制以使比較器550耦合至OR閘590。在此模式中,再次將各自開始位址載入至來源暫存器510與目的地暫存器520。此外,將預先定義型樣載 入至型樣暫存器540。再次,開始DMA傳送,並且相關聯於來源暫存器的第一資料被載入至資料暫存器560中並且相比較於型樣暫存器540。如果一匹配發生,則比較器550在其輸出處產生一高訊號,其造成OR閘590的輸出處的一高訊號並且指示出傳輸結束。否則,累加暫存器510與520,並且傳送繼續直到介於所傳輸之資料與型樣暫存器540之間的匹配發生。在第三模式中,驅動器555及585皆被啟動以使比較器550及580耦合至OR閘590。在此模式中,再次將各自開始位址載入至暫存器510與520。另外,一最大長度值被載入至資料暫存器530中,並且一型樣被載入至暫存器540中。如上文所述,資料傳送發生。但是,傳輸結束係由比較器55或580予以產生。
在CPU 110係作用中狀態或暫停時,或當DMA控制器125及各自周邊裝置係作用中狀態時CPU 110處於睡眠模式時,可執行所有DMA傳送。接著使用電源管理單元175以控制進一步處理程序。為此目的,EofTrans訊號亦可被轉遞至電源管理單元175。電源管理單元175可包括一各自暫存器,其可經程式化以取決於如上文所述之DMA傳輸次數或取決於通道、周邊裝置等等而產生一喚醒訊號(該喚醒訊號被發送至CPU 110)。因此,在CPU 110必須立即處理一特定DMA傳送之資料的程式化模式中,假使CPU 110本來係處於睡眠模式或暫停模式,則電源管理單元175將在完成各自DMA傳送後隨即喚醒CPU 110。一旦CPU 110已完成其資料處理,並且如果已請求,CPU 110可依據其進 一步程式化而再次進入睡眠模式或暫停模式。同樣地,一旦已完成所有待決的傳輸,隨即使DMA控制器125回到各自睡眠模式。
此外,當CPU 110及DMA控制器125兩者皆係作用中狀態時,通當DMA控制器125具有對任何匯流排存取的優先權。因此,當在一匯流排上傳送資料時,禁止CPU 110存取該同一匯流排並且因此受到時間拖延。相同的情況發生在可變成該匯流排上的主控者的周邊裝置。但是,有時候,允許CPU或另一周邊裝置存取當前被DMA控制器125使用之匯流排係重要的。為了允許此類存取,DMA控制器係可經由暫存器程式化成為暫停當前傳送。為此目的,CPU 110可設定DMA控制器內的一專用位元,以向DMA控制器125指示出DMA控制器125暫其當前傳送直到CPU 110重設該各自位元。作為使用一控制暫存器內的一專用位元之替代,如上文所述,可使用一專用控制線來使DMA控制器暫停其當前資料傳輸。另外,可使用一優先權方案,其中每一DMA通道及/或相關聯之DMA單元可被指派一特定優先權層級。一暫停訊號可包括一特定優先權層級。因此,僅低於該等定優先權層級的通道應CPU之請求而予以暫停。
因此,在偵測到一暫停訊號之後,DMA控制器125終止當前資料傳送,即,使在偵測到暫停位元/訊號之前已開始的使用資料暫存器410a/560之單個資料傳送完成。在另一具體實施例中,一已經開始的資料傳送被中止,而不需 要完成該資料傳送。在完成或中止此類已經開始的傳送之後,使DMA控制器暫停任何進一步傳送,並且保持儲存其當前狀態。換言之,維護所有暫存器內容,同時DMA控制器係處於暫停模式。如果已中止資料傳送,則在傳送中止能夠重複中止的異動之後,將DMA控制器重設至各自狀態。在暫停模式期間,DMA控制器解除對用於傳送資料之使用的封鎖。就優先權方案而言,僅優先權高於暫停優先權的DMA異動將予以完成,並且接著DMA控制器切換進入暫停模式。因此,現在允許CPU 110或周邊裝置完全存取各自匯流排並且可傳送必要資料。在完成各目傳送之後,CPU 110可藉由下列方式釋出DMA暫停模式:重新控制暫存器中的各自位元;撤銷啟動各自控制訊號;或發送一具有最低優先權的暫停命令。此機制允許更具彈性控制對系統內匯流排的存取。因此,如果一定程式要求立即受到CPU或周邊裝置注意,則CPU可用可控制方式使DMA控制器暫停封鎖CPU的當前傳輸,並且CPU或周邊裝置可實行必要的存取。
圖6A及6B繪示用於控制DMA控制器125之通道的某些控制暫存器。舉例而言,根據圖6A,使用暫存器600 DMACON控制DMA控制器之一般功能。位元15係用於啟動或撒銷啟動DMA控制器125。透過此位元,可啟用或停用DMA模組。位元14係用於:當設定此位元時,於除錯模式期間「凍結」DMA;或當未設定此位元時,於除錯模式期間允許DMA傳送。位元13係用於:當設定此位元時,於 睡眠模式期間凍結傳送;及當未設定此位元時,於睡眠模式期間允許傳送。位元12係用於動態控制DMA控制器125之暫停,如上文所述。為此目的,位元12可被設定至「1」,以暫停DMA傳送並且允許CPU不中斷存取匯流排。當位元12被重設至「0」時,DMA控制器125正常運作,這將給予DMA控制器高於匯流排的優先權,藉此使CPU的任何存取受到拖延或中斷。一項優先權機制可自動暫停具有低於暫停命令之優先權的DMA通道。可經中一項中斷機制來實施優先權方案。
暫存器610 CHXCON控制個別通道X。由於每一資料傳輸可由複數個異動所組成,所以可使用位元0至1 CHPR[1:0]來定義一指派給每一通道的優先權。在此具體實施例中,DMA控制器125可具有若干通道,舉例而言,4或8個通道。該2個位元能夠定義4項不同優先權。根據一具體實施例,如果需要更多優先權,則可擴大位元欄位CHPR以提供各自位元量。優先權指派係用於判定多個通道異動將被執行的順序。舉例而言,如果通道0具有最高優先權並且所有其它通道具有較低優先權,則將執行對於通道0的所有異動直到已產生用於此通道的EofTrans訊號並且已完成資料傳輸。如果多個通道具有相同優先權,則控制器將循環處理該優先權的所有該等通道。因此,如果通道2及3具有最高優先權並且無較高優先權存在,則在對於通道2的一項異動之後,控制器將切換至通道3以執行對於此通道的異動,並且接著切換回到通道2,以此類推, 直到已完成對於該兩個通道的所有異動。如果具有較高優先權的通道在另一較低優先權之通道具有待決之異動時請求傳送,則該異動將在移至具有較高優先權的通道之前完成。
圖10繪示在具有8個通道之系統之多個通道傳送的實例,其中通道0、1、2與4係作用中狀態。通道0首先藉由確證其控制線來請求傳送。在此時間t1 ,無任何異動正在待決中。因此,傳送異動開始於下一循環,如識別當前作用中通道的線「作用中通道:」所示。於對於通道0之傳送期間,通道4請求傳送。因為通道4的優先權高於通道0,所以在下一循環時間t2 ,開始對於通道4的傳送異動。於對於通道4之傳送期間,通道2請求傳送。因為通道2的優先權高於通道4,所以在下一循環時間t3 ,開始對於通道2的傳送異動。當執行對於通道2之循序傳送異動期間,暫停對於通道0與4之傳送。在時間t4 ,完成對於通道2的所有傳送,並且控制器重新繼續對於通道4的傳送,此時,通道4具有最高優先權。在時間t5 ,通道1請求傳送,其中通道1的優先權相同於通道4。因此,控制器將從現在開始循環處理通道1及通道4之傳送,直到已完成其傳輸或接收到較高優先權請求。在圖10所示之實例中,在時間t6 ,完成對於通道1及4之傳輸。因此,控制器重新繼續對於剩餘通道0的下一傳送異動。在任何時候,DMA控制器可接收具有一定優先權層級的暫停命令。接著,僅具有較高優先權的通道被允許繼續進行其異動。此方式可在DMA控制器內 實施非常彈性之暫停機制,其允許選擇性暫停某些或所有DMA通道。
請重新參閱圖6A之暫存器CHXCON,位元4至5 ETMD[1:0]係用於定義操作模式。舉例而言,可指派4種不同模式。因此,彼等位元允許定義(例如)關於圖5描述的三種模式。
請重新參閱圖6A之暫存器CHXCON,位元8(及9)ETWU係(例如)用於定義是否在已完成傳輸時產生喚醒訊號。如果設定各自位元,可電源管理單元175可自(例如)OR閘590(如圖5所示)接收此訊號,並且產生對於CPU 110之各自喚醒訊號。作為如圖6所示之位元欄位ETWU[1:0]之替代方案,可使用兩個或兩個以上位元來定義中斷訊號的中斷層級(一旦已完成對於各自通道的傳輸,將產生該中斷訊號)。在此情況中,舉例而言,將使用OR閘590之輸出訊號來產生該中斷訊號。CPU 110可經程式化為僅如果接收到具有一定優先權層級的中斷才喚醒。換言之,在睡眠模式中,將遮罩某些較低優先權中斷。此一方法將允許簡單設計的喚醒機制。不應喚醒CPU 110的DMA傳輸將被指派較低層級優先權,而要求CPU處理經傳輸之資料的DMA傳送將被指派較高優先權以喚醒CPU 110。
位元14 CHAED係用於:當設定此位元時,即使通道被停用,仍然允許登錄通道開始/中止事件。位元15 CHEN係用於:當設定此位元時,個別啟用各自通道。因此,可使用彼等位元來個別暫停通道傳送。
請重新參考圖6A,位元16至26 CHOFFSET[8:0]指示出一位移,用以早先於DMA傳送完成而產生喚醒訊號。舉例而言,在DMA記憶體傳送中,每一異動要求一已知時間t1 。如果對於CPU 110的啟動時間延遲係25 x t1 ,則位元欄位CHOFFSET可被程式化為25。可提供各自比較器565及暫存器545,其比較目的地位址減位移與實際來源位址,如圖5所示。比較結果獨立於傳輸結束訊號並且被饋送至電源管理單元175。
圖6B繪示另一暫存器620 DCHXECON,可對於每一通道實施該暫存器,該暫存器控制每一通道的中斷功能性。為此目的,位元16-23定義位元欄位CHAIRQ,其可用中斷層級予以程式化。高於經程式化層級的中斷將促使中止各自通道傳送。位元8-15定義位元欄位CHSIRQ,並且係用於定義將促使開始對於通道之DMA傳送的中斷層級。位元7 CFORCE可用於:當設定此位元至「1」時,強制開始DMA傳送。位元6 CABORT可用於:當設定此位元至「1」時,中止一特定傳送。位元5 PATCEN可用於設定型樣匹配功能性。因此,當已設定此位元至「1」時,在一型樣匹配(如上文所述)之後隨即中止一傳送。
圖6B繪示另一暫存器630 CHXINT,其係用於控制一受中斷控制之DMA系統中的某些功能。可使用此暫存器來程式化某些中斷訊號之產生與功能性。位元23 CHSDIE啟用指示出何時通道來源緩衝器已用完之中斷。位元22 CHSHIE啟用指示出何時通道來源緩衝器係半空之中斷(抵 達緩衝器中央)。位元21 CHDDIE啟用指示出何時通道目的地緩衝器已用完之中斷。位元20 CHDHIE啟用指示出何時通道目的地緩衝器係半空之中斷(抵達緩衝器中央)。位元19 CHBCIE係用於啟用指示出區塊傳送完成之中斷。位元18 CHCCIE係用於啟用指示出資料格傳送(cell transfer)完成之中斷。位元17 CHTAIE係用於啟用傳送中止之中斷。位元16 CHERIE係用於啟用通道位址錯誤之中斷。位元7 CHSDIF係一中斷旗標位元,其指示出通道來源緩衝器指標已抵達該來源緩衝器之結尾。位元6 CHSHIF係一中斷旗標位元,其指示出通道來源緩衝器指標已抵達該來源緩衝器之中點。位元5 CHDDIF係一中斷旗標位元,其指示出通道目的地緩衝器指標已抵達該目的地緩衝器之結尾。位元4 CHDHIF係一中斷旗標位元,其指示出通道目的地緩衝器指標已抵達該目的地緩衝器之中點。位元3 CHBCIF係一中斷旗標位元,其指示出已完成區塊傳送。位元2 CHCCIF係一中斷旗標位元,其指示出已完成資料格傳送。位元1 CHTAIF係一中斷旗標位元,其指示出已偵測到匹配CHAIRQ的中斷並且已中止DMA傳送。位元0 CHERIF係一中斷旗標位元,其指示出已偵測到通道位址錯誤。在上文所述之具體實施例中,資料格傳送描述當在等待另一事件之前DMA通道具有起始之傳送時傳送的位元組數目。因此,資料格傳送包括可程式化數目個單字組傳送,其中在32位元系統中,每一單字組傳送可由至少4個位元組所組成。區塊傳送被定義為當啟用通道時傳送的位
元組數目。該位元組數目可大於來源大小或目的地大小,可個別程式化來源大小或目的地大小。因此,區塊傳送包含一或多個資料格傳送。
圖11繪示系統之一具體實施例,該系統具有:一CPU 110;一DMA控制器125;一中斷控制器155;及專用控制訊號,諸如中斷匯流排1110,個別中斷線1120、1130與1140。在一項具體實施例中,可使用中斷匯流排1110來產生不同輸入訊號,如上文所述。中斷控制器155係用於控制彼等中斷。但是,在其它具體實施例中,介於DMA控制器125與CPU 110之間可使用直接連接,諸如中斷線1140。另外,中斷控制器155可使用及產生進一步個別中斷訊號1120與1130。但是,可實施中斷匯流排1110,舉例而言,使用單個中斷訊號(其被饋送至所有單元)及複數個控制線,以指示出各自中斷層級。使用複數個暫存器(舉例而言,如上文所述之暫存器)允許非常彈性地控制包含CPU 110及DMA控制器125之系統。根據一項具體實施例,DMA通道將傳送來自來源暫存器之資料至目的地暫存器,而不需要CPU介入。通道來源緩衝器開始位址暫存器定義來源緩衝器的開始位址。通道目的地緩衝器開始位址暫存器定義目的地緩衝器的開始位址。來源緩衝器及目的地緩衝器兩者係可使用各自暫存器個別地組態。可藉由設定自各位元CFORCE的軟體起始資料格傳送,或藉由匹配經程式化CHSIRQ中斷層級的中斷事件起始資料格傳送。DMA傳送將於起始時實行資料格傳送。根據一項具體實施例, 通道繼續維持已啟用狀態,直到DMA通道已傳送較大的來源或目的地緩衝器。每一通道使用緩衝器指標來持續追蹤自來源緩衝器及目的地緩衝器所傳送的字組數。當來源或目的地緩衝器指標係緩衝器大小之一半時,或當來源或目的地計數器抵達緩衝器結尾時,可產生緩衝器中斷。根據不同具體實施例,中斷可受控於中斷控制器155並且可予以個別管理或透過允許複數個優先權層級的專用中斷匯流排予以管理。
如上文所述,使用者亦可藉由撰寫暫停位元SUS(請參閱圖6A)來立即暫停DMA模組125。這將立即使DMA暫停任何進一步匯流排異動。可實施此項功能以允許CPU具有完全的匯流排存取。典型地,當CPU要求完全控制匯流排以用於原子指令序列(諸如非揮發性記憶體模組之解除鎖定序列)時,將使DMA暫停。可使用位元CHEN(請參閱圖6A,暫存器610)來暫停個別通道。如果DMA傳送正在進展中並且CHEN位元被設定至0,則當完成當前異動並且將暫停此通道上的進一步異動。設定啟用位元CHEN至0將不影響通道指標或異動計數器。當暫停通道時,使用者可藉由設定CHAED位元(請參閱圖6A,暫存器610)而決擇繼續接收事件,諸如中止中斷。如上文所述,亦可使用優先權方案來個別暫停某些DMA通道。
圖7繪示具有根據具體實施例之DMA控制器之系統的睡眠模式之具體實施例的流程圖。在第一步驟710中,可進入睡眠模式的所有單元(包括CPU 110)被撤銷啟動,以使 電力消耗減至最小。在步驟720中,DMA控制器檢查是否已接收到DMA傳送要求。如果受中斷驅動,則不需要對此請求之輪詢,並且將執行常式以作為中斷服務常式。替代做法為,DMA控制器亦可係處於睡眠模式中,並且DMA傳送要求或中斷將喚醒DMA控制器。若需要,在步驟730中,將透過各自喚醒訊號來啟動DMA傳輸所需的所有單元。在步驟740中,開始DMA傳送並且實行第一異動。在步驟750中,DMA控制器檢查是否已完成傳輸。如果未完成傳輸,則常式回到步驟740以實行另一異動。如果已完成傳輸,則在步驟750之後,常式可依不同方式運作。
根據第一具體實施例,常式繼續進行步驟760a,在此步驟中檢查是否喚醒CPU 110。如果(例如)已設定各自通道控制暫存器中的各自位元,則將在步驟770中啟動CPU 110。否則,常式略過步驟770。作為一項替代方案,對於步驟760及770,可在完成傳輸後產生具有先前受指派中斷層級的中斷訊號。
根據第二具體實施例,常式繼續進行步驟755,在此步驟中累加暫存器DMA#。接著,在步驟760b中,檢查是否DMA#>=n,以判定是否喚醒CPU 110。如果(例如)完成的傳輸次數小於一預先決定數目n,則依然不啟動CPU 110並且常式略過步驟770。。前文判定步驟之組合當然係可行的並且可按照所要求的系統設計予以實施。
根據第三具體實施例,常式繼續進行步驟770c,在此步驟中,所有裝置重新進入在開始異動之前本來的各自睡眠 模式。
圖8繪示DMA控制器之初始化之具體實施例的流程圖。在第一步驟810中,決策是否使用型樣模式。如果不使用型樣模式,則常式分支至步驟820,在此步驟中儲存來源位址及目的地位址。在一後續步驟830中,藉由結束位址或區塊長度來判定傳輸長度。接著,常式結束。如果使用型樣模式,則常式進行至步驟840,在此步驟中設定來源及目的地。然後在步驟850中,選擇性地設定傳輸最大長度,並且在步驟860中儲存資料終止型樣值。在步驟870中設定型樣模型並且初始化常式結束。
圖9更詳細繪示DMA傳送常式之具體實施例的流程圖,諸如圖7之步驟740至750。常式開始於步驟910,在此步驟中,讀取在開始位址處的來源資料。在步驟920中,此資料寫入至目的地位址。在步驟930中,檢查是否已設定型樣匹配模式。如果未設定型樣匹配模式,則累加來源位址及目的地位址,並且在步驟960中遞減資料長度值。在步驟970中,檢查資料長度值是否係0。如果資料長度值係0,則傳送結束;如果資料長度值不是0,則常式回到步驟910。如果已設定型樣模式,則常式從步驟930分支至步驟950,在此步驟中檢是資料是否匹配型樣。如果匹配發生,則傳送結束。否則,常式繼續進行步驟940,如上文所述。
總言之,因為在DMA異動期間不喚醒CPU,所以處理器不需要提取指令並且未非必要地消耗能量以理解為什麼喚 醒CPU。如上文所述,提取於存取快閃記憶體時消耗電力。由於未實行往返於程式記憶體的任何傳送,所以當DMA控制器被喚醒時,程式記憶體可繼續維持關閉電源。因此,僅DMA異動所需的組件將被啟動,並且在已完成異動之後可返回至睡眠。再者,若有需要,DMA控制器可經程式化成為暫停。可使用在一般暫存器、優先權方案或訊號中的各自位元來暫停完整的DMA模組。但是,亦可透過專用通道控制暫存器或優先權方案來暫停個別通道。因此,若有需要,可釋出對匯流排之存取給CPU。
因此,本發明經妥善調適以實行並且達成提出的目標與優點,以及本身固有的其它目與優點。雖然已藉由引用本發明特定較佳具體實施例來描繪、描述及定義本發明,然而此等引用非意謂著限制本發明,並且不推斷任何此類限制。本發明的形式及功能可以有相當大量的修改、改變及同等物,如熟悉相關技術者所知。所描繪及描寫的本發明示範性具體實施例僅係示範性,並且不是詳盡的本發明範疇。據此,本發明僅意欲受限於隨附申請專利範圍之精神與範疇,在所有態樣給予完全的同等物認定。
100‧‧‧微控制器
110‧‧‧中央處理單元(CPU)
115‧‧‧系統時脈裝置
120‧‧‧匯流排矩陣
125‧‧‧DMA控制器(直接記憶體存取控制器;DMA模組)
130‧‧‧快取區
135‧‧‧快閃程式記憶體
140‧‧‧資料隨機存取記憶體
145...150‧‧‧周邊裝置i至k
155‧‧‧中斷控制器
165...170‧‧‧周邊裝置n至m
180‧‧‧周邊裝置橋接器
200‧‧‧匯流排
310‧‧‧匯流排
320‧‧‧位址解碼器
330‧‧‧控制暫存器
340‧‧‧控制匯流排
350..360‧‧‧DMA通道
370‧‧‧多工器
380‧‧‧控制器
390‧‧‧匯流排矩陣介面
410a‧‧‧資料暫存器或鎖存器
410b‧‧‧型樣暫存器
420‧‧‧比較器
440a,440b‧‧‧位址暫存器或鎖存器(傳輸及/或接收暫存器)
440c‧‧‧結束位址暫存器
440d‧‧‧中間位址暫存器
450‧‧‧比較器(比較器單元;位址比較器)
470‧‧‧接收匯流排
480‧‧‧傳輸匯流排
490‧‧‧DMA時脈訊號
510‧‧‧來源暫存器(來源開始位址暫存器)
515‧‧‧控制暫存器
520‧‧‧目的地位址暫存器(目的地開始位址暫存器)
525‧‧‧比較器
530‧‧‧長度/最大長度暫存器
535‧‧‧DMA傳輸次數(DMA#)暫存器
540‧‧‧型樣暫存器
545‧‧‧位移暫存器
550‧‧‧比較器
555‧‧‧第二可控制式反轉器(驅動器)
560‧‧‧資料暫存器
565‧‧‧比較器單元
570‧‧‧計數器
575‧‧‧喚醒位址暫存器
580‧‧‧比較器
585‧‧‧第一可控制式驅動器
590‧‧‧OR閘
595‧‧‧結束位址暫存器
600‧‧‧暫存器DMACON
610‧‧‧暫存器CHXCON
620‧‧‧暫存器DCHXECON
630‧‧‧暫存器CHXINT
1110‧‧‧中斷匯流排
1120,1130,1140‧‧‧ 中斷線(中斷訊號)
CABORT‧‧‧中止傳送
CFORCE‧‧‧強制開始DMA傳送
CHAED‧‧‧登錄通道開始/中止事件
CHAIRQ‧‧‧中斷層級
CHBCIE‧‧‧啟用指示出區塊傳送完成之中斷
CHBCIF‧‧‧中斷旗標位元,指示出已完成區塊傳送
CHCCIE‧‧‧啟用指示出資料格傳送完成之中斷
CHCCIF‧‧‧中斷旗標位元,指示出已完成資料格傳送
CHDDIE‧‧‧啟用指示何時通道目的地緩衝器已用完之中斷
CHDDIF‧‧‧中斷旗標位元,指示出通道目的地緩衝器指標已抵達該目的地緩衝器之結尾
CHDHIE‧‧‧啟用指示出何時通道目的地緩衝器係半空之中斷
CHDHIF‧‧‧中斷旗標位元,指示出通道目的地緩衝器指標已抵達該目的地緩衝器之中點
CHEN‧‧‧啟用通道
CHERIE‧‧‧啟用通道位址錯誤之中斷
CHERIF‧‧‧中斷旗標位元,指示出已偵測到通道位址錯誤
CHOFFSET[8:0]‧‧‧位移
CHPR[1:0]‧‧‧通道優先權
CHSDIE‧‧‧啟用指示通道來源緩衝器已用完之中斷
CHSDIF‧‧‧中斷旗標位元,指示出通道來源緩衝器指標已抵達該來源緩衝器之結尾
CHSHIE‧‧‧啟用指示何時通道來源緩衝器係半空之中斷
CHSHIF‧‧‧中斷旗標位元,指示出通道來源緩衝器指標已抵達該來源緩衝器之中點
CHSIRQ‧‧‧開始通道DMA傳送的中斷層級
CHTAIE‧‧‧啟用傳送中止之中斷
CHTAIF‧‧‧中斷旗標位元,指示出已偵測到匹配CHAIRQ的中斷並且已中止DMA傳送
EndAddr‧‧‧結束位址偵測(訊號)
EofTrans‧‧‧傳輸結束訊號
ETMD[1:0]‧‧‧定義操作模式
ETWU[1:0]‧‧‧產生訊號
Match‧‧‧訊號
PATCEN‧‧‧型樣匹配功能性
SUS‧‧‧暫停位元
WakeUp‧‧‧喚醒訊號
圖1繪示在電腦系統內典型DMA控制器(舉例而言,諸如微控制器)的方塊圖;圖2繪示匯流排矩陣中使用的示範性匯流排;圖3繪示DMA控制器之第一具體實施例細節的方塊圖;圖4繪示DMA控制器之第二具體實施例細節的方塊圖; 圖5繪示DMA控制器之第三具體實施例細節的方塊圖;圖6A及6B繪示用於控制具有根據本發明之DMA控制器之系統的某些態樣的典型暫存器;圖7繪示根據一項具體實施例之系統控制常式的流程圖;圖8繪示DMA初始化常式;圖9繪示DMA控制器傳送常式的流程圖;圖10繪示多通道傳送的時序圖;及圖11繪示具有使用中斷來控制系統功能性之DMA控制器的系統。
125‧‧‧DMA控制器(直接記憶體存取控制器)
310‧‧‧匯流排
320‧‧‧位址解碼器
330‧‧‧控制暫存器
340‧‧‧控制匯流排
350..360‧‧‧DMA通道
370‧‧‧多工器
380‧‧‧控制器
390‧‧‧匯流排矩陣介面

Claims (24)

  1. 一種具有直接記憶體存取(DMA)控制器之系統,包括:一中央處理單元(CPU),其可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中;複數個系統組件,其可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中;一DMA控制器,其運作獨立於該CPU並且可運作以運作於一睡眠模式或低度電力模式中及一作用中模式中,其中該DMA控制器進一步可運作以傳送資料往返於一記憶體或周邊裝置,其中當該系統係處於一睡眠模式或低度電力模式中時,其中至少該CPU是不作用的,在事件後,當該CPU繼續維持不作用時,僅該DMA控制器及(若有需要)執行一DMA異動所需的任何系統組件被切換進入作用中模式,及其中該DMA控制器在該DMA異動已部分完成之後產生一訊號,該訊號係用於撤銷啟動該CPU之該睡眠模式。
  2. 如請求項1之系統,其中在已完成該DMA異動之後,該DMA控制器及執行該DMA異動所需的任何系統組件被切換返回至該睡眠模式或低度電力模式。
  3. 如請求項1之系統,進一步包括:一電源管理單元,其用於控制複數個低度電力操作模式,其中該CPU及該DMA控制器可被彼此獨立地設定至一低度電力模式,其中於一第一低度電力操作模式期間,該CPU係依一降低之時脈速度運作,並且於一第二低度電力操作模式期 間,該中央處理單元被停止。
  4. 如請求項1之系統,其中藉由一第一中斷層級,使該CPU自一第一低度電力操作模式切換進入一較高電力操作模式,以及藉由一第二中斷層級,使該DMA控制器自一第一低度電力操作模式切換進入一較高電力操作模式,該第二中斷層級不同於該第一中斷層級。
  5. 如請求項1之系統,其中該DMA控制器包括複數個通道,每一通道包括一控制暫存器,該控制暫存器包括一可程式化位元,該可程式化位元判定是否在完成一資料異動之後隨即產生該訊號。
  6. 如請求項6之系統,其中在部分完成一資料異動之後的該訊號係一中斷訊號,並且其中該控制暫存器包括一可程式化位元欄位,該可程式化位元欄位判定該中斷之一優先權層級。
  7. 如請求項1之系統,進一步包括:一第一暫存器,用於儲存一預先決定次數;一第二暫存器,用於計數完成之DMA傳輸之次數;及一比較器,用於比較該第一暫存器與該第二暫存器之內容,其中僅如果該第二暫存器之內容等於或高於該第一暫存器之內容才產生一喚醒。
  8. 如請求項1之系統,其中該DMA控制器包括複數個通道,每一通道包括一控制暫存器,該控制暫存器包括一位移位元欄位,其中如果一來源或目的地位址等於一結束位址減該位移,則產生該訊號。
  9. 如請求項1之系統,其中該DMA控制器包括複數個通道, 每一通道包括一喚醒暫存器,其中如果一來源或目的地位址等於該喚醒暫存器中儲存之一喚醒位址,則產生該訊號。
  10. 一種微控制器,包括:一中央處理單元(CPU),其可程式化地運作於具有一第一電力消耗之一第一操作模式及具有一第二電力消耗之一第二操作模式,該第二電力消耗低於該第一電力消耗;一匯流排,其耦合至該中央處理單元;一記憶體,其耦合至該匯流排;一周邊單元,其耦合至該匯流排;及一直接記憶體存取(DMA)控制器,其耦合至該匯流排,其中當該CPU係處於該第二操作模式時,該DMA控制器運作獨立於該CPU以傳送資料往返於該記憶體或周邊單元,,其中該DMA控制器可利用一外部事件自該CPU獨立地運作來啟動,及其中該DMA控制器在部分完成一資料傳送之後隨即產生一訊號,該訊號使該CPU自該第二操作模式切換進入該第一操作模式。
  11. 如請求項10之微控制器,進一步包括:一電源管理單元,其用於控制複數個低度電力操作模式,其中該DMA控制器及該CPU係可運作以獨立地進入該等低度電力操作模式之一者中。
  12. 一種藉由一系統中之一直接記憶體存取(DMA)控制器獨立地實行一自一來源至一目的地的複數個資料之傳輸之 方法,該系統包括一中央處理單元(CPU),該方法包括下列步驟:a)使至少該CPU及該DMA控制器自一高度電力消耗模式切換進入一低度電力消耗模式;b)接收一DMA請求;c)使該DMA控制器切換進入該高度電力消耗模式,同時該CPU繼續維持在該低度電力消耗模式;d)由該DMA控制器實行該DMA,同時該CPU維護該低度電力消耗模式;e)在部分完成該DMA請求後,隨即使該DMA控制器切換進入該低度電力消耗模式。
  13. 如請求項12之方法,其中使該CPU在該低度電力模式期間停止。
  14. 如請求項12之方法,其中該CPU在該低度電力模式期間係依一降低之時脈速度運作。
  15. 如請求項12之方法,其中該DMA控制器包括複數個通道並且係可程式化以設定每一通道之一優先權層級,其中一優先權層級定義一通道的執行優先順序。
  16. 如請求項12之方法,其中該DMA控制器包括複數個通道,並且每一通道係可程式化以判定是否在至少一部分完成一通道的該DMA請求之後隨即產生一訊號,該訊號係用於使該CPU切換進入該高度電力消耗模式。
  17. 如請求項16之方法,其中在完成一資料傳送之後的該訊號係一中斷訊號。
  18. 如請求項17之方法,其中對於每一通道,該中斷訊號之一優先權層級係可程式化的。
  19. 如請求項12之方法,其中該至少部分完成一資料傳送係由一目標結束位址或由一預先定義資料匹配一待傳送資料判定。
  20. 如請求項12之方法,其中步驟e)包括在至少部分完成該DMA請求之後隨即產生一訊號,該訊號促使該CPU切換進入一高度電力消耗模式。
  21. 如請求項12之方法,其中步驟e)包括在至少部分完成複數個DMA請求之後隨即產生一訊號,該訊號促使該CPU切換進入一高度電力消耗模式。
  22. 如請求項12之方法,其中在步驟a)中使該系統進入該低度電力消耗模式,並且在接收該DMA請求之後,該DMA控制器及執行該DMA請求所需的任何系統單元被切換進入一操作模式。
  23. 一種藉由一系統中之一直接記憶體存取(DMA)控制器獨立地實行一自一來源至一目的地的複數個資料之傳輸之方法,該系統包括一中央處理單元(CPU),該方法包括下列步驟:a)使至少該CPU及該DMA控制器自一高度電力消耗模式切換進入一不作用模式;b)接收一DMA請求;c)使該DMA控制器切換進入一操作模式;d)由該DMA控制器實行該DMA,同時該CPU繼續維持 於該不作用模式中。e)在部分完成該DMA請求後,產生一訊號來切換該CPU進入該高度電力消耗模式。
  24. 如請求項23之方法,進一步包括下列步驟:e)在完成該DMA請求之後,隨即使該DMA控制器切換進入該低度電力消耗模式。
TW096147711A 2006-12-15 2007-12-13 直接記憶體存取控制器 TWI437434B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US87029506P 2006-12-15 2006-12-15
US87026706P 2006-12-15 2006-12-15
US11/928,415 US8117475B2 (en) 2006-12-15 2007-10-30 Direct memory access controller

Publications (2)

Publication Number Publication Date
TW200844750A TW200844750A (en) 2008-11-16
TWI437434B true TWI437434B (zh) 2014-05-11

Family

ID=39247205

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096147711A TWI437434B (zh) 2006-12-15 2007-12-13 直接記憶體存取控制器

Country Status (6)

Country Link
US (1) US8117475B2 (zh)
EP (1) EP2100207B1 (zh)
KR (1) KR101467439B1 (zh)
AT (1) ATE534068T1 (zh)
TW (1) TWI437434B (zh)
WO (1) WO2008076893A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11307636B2 (en) 2020-05-26 2022-04-19 Winbond Electronics Corp. Semiconductor storing apparatus and flash memory operation method
US11487343B2 (en) 2020-05-26 2022-11-01 Winbond Electronics Corp. Semiconductor storing apparatus and flash memory operation method

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US7934025B2 (en) * 2007-01-24 2011-04-26 Qualcomm Incorporated Content terminated DMA
US20080183959A1 (en) * 2007-01-29 2008-07-31 Pelley Perry H Memory system having global buffered control for memory modules
US7949817B1 (en) 2007-07-31 2011-05-24 Marvell International Ltd. Adaptive bus profiler
US7827352B2 (en) * 2007-09-18 2010-11-02 Intel Corporation Loading data from a memory card
US8001285B1 (en) * 2007-12-11 2011-08-16 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for reducing host processor activity during interaction with peripheral devices
US7971084B2 (en) * 2007-12-28 2011-06-28 Intel Corporation Power management in electronic systems
US9766672B2 (en) 2007-12-28 2017-09-19 Intel Corporation System for managing power provided to a processor or memory based on a measured memory consumption characteristic
TWI358635B (en) * 2008-02-26 2012-02-21 Mstar Semiconductor Inc Power managing method for a multi-microprocessor s
TWI372335B (en) * 2008-03-21 2012-09-11 Mstar Semiconductor Inc An electronic apparatus and an auto wake-up circuit
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
US7895466B2 (en) * 2008-09-02 2011-02-22 Telefonaktiebolaget L M Ericsson (Publ) DMA assisted data backup and restore
KR101329014B1 (ko) * 2008-10-30 2013-11-12 삼성전자주식회사 휴대단말에서 스위칭 회로의 모드 제어 방법 및 장치
WO2010090646A1 (en) * 2009-02-09 2010-08-12 Hewlett-Packard Development Company, L.P. Bios controlled peripheral device port power
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
US8650425B2 (en) * 2009-05-06 2014-02-11 Via Technologies, Inc. Computer system for processing data in non-operational state and processing method thereof
KR20110013868A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
JP2011060066A (ja) * 2009-09-11 2011-03-24 Renesas Electronics Corp データ処理回路
US9229518B1 (en) 2009-11-03 2016-01-05 Marvell International Ltd. Wake-on-frame for frame processing devices
JP4881425B2 (ja) 2009-11-30 2012-02-22 株式会社東芝 電子機器
US8688922B1 (en) 2010-03-11 2014-04-01 Marvell International Ltd Hardware-supported memory management
US8250253B2 (en) * 2010-06-23 2012-08-21 Intel Corporation Method, apparatus and system for reduced channel starvation in a DMA engine
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
KR101685407B1 (ko) 2010-07-29 2016-12-13 삼성전자주식회사 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법
US20120054379A1 (en) * 2010-08-30 2012-03-01 Kafai Leung Low power multi-touch scan control system
CN102402464A (zh) * 2010-09-17 2012-04-04 中国移动通信有限公司 一种智能卡中的存储器的数据擦写方法及智能卡
CN103119573A (zh) * 2010-09-21 2013-05-22 三菱电机株式会社 Dma控制器以及数据读出装置
US8806232B2 (en) * 2010-09-30 2014-08-12 Apple Inc. Systems and method for hardware dynamic cache power management via bridge and power manager
FR2977690B1 (fr) * 2011-07-04 2013-08-02 St Microelectronics Rousset Procede d'initialisation de registres d'organes peripheriques dans un microcontroleur
US20120185714A1 (en) * 2011-12-15 2012-07-19 Jaewoong Chung Method, apparatus, and system for energy efficiency and energy conservation including code recirculation techniques
JP5805546B2 (ja) * 2012-01-13 2015-11-04 ルネサスエレクトロニクス株式会社 半導体装置
US9648138B1 (en) * 2012-03-27 2017-05-09 Open Text Corporation Method and system for virtual server dormancy
US9319274B1 (en) * 2012-03-29 2016-04-19 Emc Corporation Method and system for dynamic provisioning using server dormant mode for virtual server dormancy
US8943238B2 (en) * 2012-05-18 2015-01-27 Atmel Corporation Operations using direct memory access
WO2014034820A1 (en) 2012-09-03 2014-03-06 Semiconductor Energy Laboratory Co., Ltd. Microcontroller
DE112013005029T5 (de) 2012-10-17 2015-07-30 Semiconductor Energy Laboratory Co., Ltd. Mikrocontroller und Herstellungsverfahren dafür
US20140189400A1 (en) * 2012-12-28 2014-07-03 Mediatek Inc. Processing system and associated method
US9026820B2 (en) * 2012-12-29 2015-05-05 Intel Corporation Communication link and network connectivity management in low power mode
KR102019717B1 (ko) * 2013-01-29 2019-09-09 삼성전자 주식회사 휴대 단말기의 메모리 관리 장치 및 방법
EP2784662A1 (en) * 2013-03-28 2014-10-01 Dialog Semiconductor B.V. Electronic circuit for and method of executing an application program stored in a One-Time-Programmable (OTP) memory in a System on Chip (SoC)
US9417810B1 (en) * 2013-07-29 2016-08-16 Western Digital Technologies, Inc. Power management for a data storage system
US9516006B2 (en) 2013-10-23 2016-12-06 Google Inc. Re-programmable secure cryptographic device
JP6176058B2 (ja) 2013-10-29 2017-08-09 株式会社ソシオネクスト ダイレクトメモリアクセス制御装置、その制御方法、及び情報処理システム
US10079019B2 (en) 2013-11-12 2018-09-18 Apple Inc. Always-on audio control for mobile device
US9653079B2 (en) 2015-02-12 2017-05-16 Apple Inc. Clock switching in always-on component
US10499015B2 (en) 2015-04-03 2019-12-03 Non Typical, Inc. Low-power radio frequency network for a system of cameras
CN104950775A (zh) * 2015-06-29 2015-09-30 小米科技有限责任公司 唤醒主mcu微控制单元的电路、方法及装置
US10101795B2 (en) 2015-11-10 2018-10-16 Wipro Limited System-on-chip (SoC) and method for dynamically optimizing power consumption in the SoC
US10789192B2 (en) * 2016-02-29 2020-09-29 Renesas Electronics America Inc. System and method for programming data transfer within a microcontroller
TWI581092B (zh) * 2016-03-30 2017-05-01 威盛電子股份有限公司 記憶體裝置及其節能控制方法
TWI606459B (zh) * 2016-03-30 2017-11-21 威盛電子股份有限公司 記憶體裝置及其節能控制方法
DE102017200759A1 (de) * 2017-01-18 2018-07-19 Imc Messsysteme Gmbh Elektrische Anordnung
US10896070B2 (en) 2017-09-22 2021-01-19 Open Text Corporation Stateless content management system
US11500440B2 (en) * 2019-03-15 2022-11-15 Intel Corporation Transferring network input/output (I/O) device control ownership between heterogeneous computing entities
US11940855B2 (en) * 2019-10-14 2024-03-26 Intel Corporation Apparatus and method for dynamic reallocation of processor power by throttling processor to allow an external device to operate
US11595560B2 (en) 2019-12-31 2023-02-28 Non Typical, Inc. Transmission and confirmation of camera configuration data and commands through a network
FR3117226B1 (fr) * 2020-12-03 2022-10-21 St Microelectronics Rousset Procédé de gestion du fonctionnement d’un système sur puce, par exemple un microcontrôleur, et système sur puce correspondant

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989113A (en) 1987-03-13 1991-01-29 Texas Instruments Incorporated Data processing device having direct memory access with improved transfer control
DE479887T1 (de) 1989-06-30 1992-12-17 Poqet Computer Corp., Santa Clara, Calif., Us Stromversorgungsmanagementsystem fuer rechner.
US5461266A (en) * 1990-11-27 1995-10-24 Hitachi, Ltd. Power consumption control system
US5379381A (en) 1991-08-12 1995-01-03 Stratus Computer, Inc. System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations
US5367639A (en) 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
JPH05250305A (ja) 1992-03-06 1993-09-28 Mitsubishi Electric Corp データ転送制御方式
US5574575A (en) * 1992-06-18 1996-11-12 Brother Kogyo Kabushiki Kaisha Facsimile machine
KR100352045B1 (ko) 1994-01-10 2002-12-28 선 마이크로시스템즈 인코퍼레이티드 컴퓨터시스템에서전력소모를감소시키기위한방법및장치
US5828856A (en) 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5835733A (en) 1994-12-22 1998-11-10 Texas Instruments Incorporated Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system
KR0135904B1 (ko) * 1994-12-30 1998-06-15 김광호 중앙처리장치의 버스 미사용시 전력소모 방지장치 및 그 방법
US5826106A (en) 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
JPH0954748A (ja) 1995-08-11 1997-02-25 Toshiba Corp コンピュータシステムおよびこのシステムに設けられるdmaコントローラ
JPH1040211A (ja) 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
JP2996183B2 (ja) 1996-08-16 1999-12-27 日本電気株式会社 Dma機能を備えたデータ処理装置
US5896550A (en) 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US6154793A (en) 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
JP3524337B2 (ja) 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US6167465A (en) 1998-05-20 2000-12-26 Aureal Semiconductor, Inc. System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection
US6467009B1 (en) 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6763448B1 (en) 1999-02-16 2004-07-13 Renesas Technology Corp. Microcomputer and microcomputer system
JP2000315186A (ja) 1999-05-06 2000-11-14 Hitachi Ltd 半導体装置
EP1059589B1 (en) 1999-06-09 2005-03-30 Texas Instruments Incorporated Multi-channel DMA with scheduled ports
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6560712B1 (en) * 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
JP2001180083A (ja) 1999-12-24 2001-07-03 Fuji Xerox Co Ltd 印刷装置
US7245945B2 (en) 2002-11-05 2007-07-17 Intel Corporation Portable computing device adapted to update display information while in a low power mode
US7281103B2 (en) 2003-10-01 2007-10-09 Kabushiki Kaisha Toshiba Microcomputer with a security function for accessing a program storage memory
US20050149771A1 (en) * 2003-11-07 2005-07-07 Seiko Epson Corporation Processor control circuit, information processing apparatus, and central processing unit
DE102004032237A1 (de) 2004-07-02 2006-01-26 Infineon Technologies Ag Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
US7502896B2 (en) 2005-06-07 2009-03-10 Stmicroelectronics Pvt. Ltd. System and method for maintaining the integrity of data transfers in shared memory configurations
JP4530971B2 (ja) * 2005-11-07 2010-08-25 株式会社ソニー・コンピュータエンタテインメント 起動処理装置、dma転送システム、dma転送方法
EP1785811B1 (en) * 2005-11-14 2018-12-05 Texas Instruments Incorporated Memory information transfer power management
US20070162643A1 (en) * 2005-12-19 2007-07-12 Ivo Tousek Fixed offset scatter/gather dma controller and method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11307636B2 (en) 2020-05-26 2022-04-19 Winbond Electronics Corp. Semiconductor storing apparatus and flash memory operation method
US11487343B2 (en) 2020-05-26 2022-11-01 Winbond Electronics Corp. Semiconductor storing apparatus and flash memory operation method

Also Published As

Publication number Publication date
WO2008076893A1 (en) 2008-06-26
US8117475B2 (en) 2012-02-14
KR101467439B1 (ko) 2014-12-01
US20080148083A1 (en) 2008-06-19
EP2100207B1 (en) 2011-11-16
EP2100207A1 (en) 2009-09-16
ATE534068T1 (de) 2011-12-15
KR20090091228A (ko) 2009-08-26
TW200844750A (en) 2008-11-16

Similar Documents

Publication Publication Date Title
TWI437434B (zh) 直接記憶體存取控制器
TWI443519B (zh) 用於直接記憶體存取之系統、用於實行一資料傳輸之方法及微控制器
US20200159279A1 (en) Low power autonomous peripheral management
CN101558396B (zh) 直接存储器存取控制器
JP4070824B2 (ja) コンピュータシステムおよび割込制御装置
US6560712B1 (en) Bus arbitration in low power system
US7155618B2 (en) Low power system and method for a data processing system
US5625807A (en) System and method for enabling and disabling a clock run function to control a peripheral bus clock signal
US7254724B2 (en) Power management system
TW201443631A (zh) 經由微架構頻寬節流之處理器電力消耗控制及電壓降
US5619729A (en) Power management of DMA slaves with DMA traps
US7222251B2 (en) Microprocessor idle mode management system
US10261927B2 (en) DMA controller with trigger sequence generator
US20070204180A1 (en) Method for power management of central processing unit and system thereof
JP2003044177A (ja) コンピュータ装置、電源制御装置、電源管理方法
JP3568592B2 (ja) 周辺バスクロック信号を制御するためのコンピュータシステムおよびその方法
KR101285665B1 (ko) 수면 모드를 지원하는 멀티 코어 시스템 온 칩
JP2005346708A (ja) データ処理装置およびそのポーリング・ループ管理方法
Jacobs et al. Power Management Chapter 21