新四季網

用於主/從直接存儲器訪問硬體和軟體控制的方法和設備的製作方法

2023-05-29 11:58:16 2

專利名稱:用於主/從直接存儲器訪問硬體和軟體控制的方法和設備的製作方法
技術領域:
本發明總體上涉及直接存儲器訪問(direct memory accessDMA)並且尤其涉及用於提供優化數據吞吐量的DMA硬體/軟體控制技術和結構。
近幾十年與信息通信相關聯的技術迅猛發展。這些通信技術之一涉及在存儲裝置之間轉送數據。例如,各種計算機處理系統的存儲器系統典型情況下包括主存儲裝置和一個或多個更大、不那麼昂貴的輔助存儲裝置。這允許把大量信息存儲在輔助存儲器以便在必要時加載到主存儲裝置中。在互連處理系統中的存儲裝置之間存在類似的數據轉送,所述轉送有時被稱為「主-從」數據轉送,並且經由例如數據總線之類的互連設備執行。例如,行動電話(主)的處理器可能需要往返於例如天線子系統(從)之類的子系統處理器轉送數據。
用於執行這種數據轉送的一個技術以直接存儲器訪問(DMA)著稱。DMA涉及由某些計算機處理體系結構所提供的能力,其能夠在不涉及主處理器(一個或多個)的情況下,允許數據從一個存儲裝置直接發送到另一存儲裝置,由此加快了整體處理速度。通常存儲器的指定部分被指定為用於DMA轉送的區域。當在主和從裝置之間需要轉送許多數據塊時,主-從存儲器直接存取數據轉送存在一個問題。當此情況出現時,常規的DMA數據轉送技術在能否有效地執行這種轉送方面受到挑戰,並且一般會遇到各種等待時間問題。在

圖1的時間線中示出了這種等待時間問題的一個例子。其中,在周期DMA 1期間把第一DMA數據塊從主裝置轉送到從裝置並且在周期DMA 2期間在所述主和從裝置之間轉送所述數據塊的第二部分。注意,在圖1中,在時段DMA 1和DMA 2之間存在用t1來表示的延遲周期。在這個時候,在主和從裝置之間進行各種信號交換活動。例如,在DMA 1結束時,主裝置將向DMA控制器發信號來表明它已經轉送了DMA數據的第一部分。於是DMA控制器將復位在DMA數據轉送過程中所使用的寄存器(一個或多個),例如地址寄存器。在完成信號交換之後,可以啟動第二DMA轉送(DMA 2)。由於延遲周期t1,此常規的DMA技術尤其遭受在DMA傳送時間中的低效率。
此問題的一個部分解決方案涉及使用兩個存儲器部分來用於DMA事務,在美國專利第6,341,318號中描述了其例子,在此將其內容通過引用以供參考。其中參考圖2(a)和2(b),在迭代0中,存儲體A向存儲體A加載(LD0)來自數據塊的第一數據部分。在迭代1中,把下一數據部分加載(LD1)到存儲體B中,同時先前加載到存儲體A中的部分被處理(P0)繼而被存儲(ST0)。在迭代2中,再次向存儲體A加載(LD2)來自數據塊的第三數據部分,同時先前加載到存儲體B中的部分被處理(P1)繼而被存儲(ST1)。加載和處理/存儲操作繼續在每個存儲體之間切換直到所有數據塊被加載、處理並存儲。由於可以對超大的DMA數據塊的部分並行執行處理,所以此技術可以減少與此類型的DMA數據轉送相關聯的等待時間。然而,在『318專利中所描述的技術沒有解決前述的在主和從裝置之間處理大量DMA轉送的問題。在這種情況下,即便使用兩個DMA存儲單元也不足以消除與設置每個轉送相關聯的等待時間。此外,『318專利在其寄存器體系結構中提供了相對較少的控制或狀態功能。例如,沒有描述用於在DMA事務期間服務高層軟體協議的機制。因而,在『318專利中所描述的DMA事務體系結構沒有提供這樣的DMA體系結構,所述DMA體系結構在具有不同高層服務需要的不同硬體/軟體應用之間不作修改的情況下能夠足夠靈活地被重新使用。
據此,可能會希望為DMA數據轉送提供避免常規技術問題的更靈活的技術和設備。
依照本發明的系統和方法通過提供健壯的DMA體系結構來解決此等需要,所述DMA體系結構包括在DMA轉送期間能夠靈活地支持高層硬體/軟體服務需要的寄存器。這種寄存器尤其包括郵箱寄存器和便箋式寄存器,所述寄存器向依照本發明的DMA體系結構和方法提供用於提供多個中斷信道的能力和溢出數據轉送的能力,所述能力允許在只改變DMA體系結構編程而不改變其體系結構的情況下重新使用這些DMA體系結構。
依照本發明的一個示例性實施例,用於在主裝置和從裝置之間轉送信息的直接存儲器訪問(DMA)系統包括第一多個DMA信道,用於把信息從所述主裝置轉送到所述從裝置;第二多個DMA信道,用於把信息從所述從裝置轉送到所述主裝置;第一組控制寄存器,用於協調使用所述第一多個DMA信道來把信息從所述主裝置轉送到所述從裝置;和第二組控制寄存器,用於協調使用所述第二多個DMA信道來把信息從所述從裝置轉送到所述主裝置,其中所述第一組控制寄存器和第二組控制寄存器都包括至少一個郵箱寄存器,用於在DMA事務期間響應於由其它主裝置和從裝置寫到所述至少一個郵箱寄存器的數據,來有選擇地向主裝置和從裝置中的相應一個提供中斷信號。
依照本發明的另一示例性實施例,用於在主裝置和從裝置之間轉送直接存儲器訪問(DMA)信息的方法包括步驟存儲在DMA事務期間使用第一DMA信道所接收的第一數據部分;存儲在所述DMA事務期間使用第二DMA信道所接收的第二數據部分;並且通過在所述DMA事務期間由其它主裝置和從裝置把數據寫到至少一個郵箱寄存器中,來有選擇地向所述主裝置和從裝置之一提供中斷信號。
附示了本發明的示例性實施例,其中圖1描述了用於圖示依照一個常規方法的DMA數據轉送的時間線,該常規方法使用為DMA數據轉送所指定的單個存儲區域的;圖2(a)和2(b)圖示了使用兩個存儲區域的常規DMA數據轉送;圖3描述依照本發明示例性實施例的主-從DMA體系結構的框圖;圖4示出了包括示例性寄存器組的圖3的DMA體系結構的從部分的放大視圖;圖5是提供各個寄存器的概觀的表,所述各個寄存器可以包括在依照本發明示例性實施例的DMA體系結構中;圖6(a)-6(1)圖示了依照本發明示例性實施例的示例性單個寄存器結構;圖7是依照本發明示例性實施例按照主裝置觀點圖示了用於把數據從主裝置轉送到從裝置的示例性方法的流程圖;圖8是依照本發明示例性實施例按照從裝置觀點圖示了用於把數據從主裝置轉送到從裝置的示例性方法的流程圖;圖9是依照本發明示例性實施例按照從裝置觀點圖示了用於把數據從從裝置轉送到主裝置的示例性方法的流程圖;和圖10是依照本發明示例性實施例按照主裝置觀點圖示了用於把數據從從裝置轉送到主裝置的示例性方法的流程圖。
本發明的以下詳細描述參照附圖。在不同附圖中相同的附圖標記標識相同的或相似的元件。以下詳細描述也並不限制本發明。作為替代,本發明的範圍由附加權利要求來定義。
為了為討論提供一些上下文,在圖3的框圖中描述了其中可以實現依照本發明示例性實施例的技術和設備的示例性主從系統。其中,主裝置30包括處理器32、存儲裝置34和主DMA控制器36(主DMA控制器36可以在邏輯上被視為硬體連接層38的一部分)。類似地,從裝置40包括其自己的處理器42、存儲裝置44和從DMA控制器46(從DMA控制器46也可以在邏輯上被視為硬體連接層38的一部分)。硬體連接層38可以被實現為例如任何適當的數據總線,所述數據總線可以傳遞所描述的功能,例如主到從中斷信號、主到從DMA數據轉送信號、從到主中斷信號以及從到主DMA數據轉送信號。裝置34和44不局限於實現為存儲裝置本身並且作為選擇,也可以是使用經由總線從另一裝置所轉送的數據的任何其它裝置。
圖4更詳細地圖示了從DMA控制器46並且特別示出了各個寄存器的一般分組,所述各個寄存器可以依照本發明示例性實施例被用來協調DMA數據轉送。第一(可選擇的)寄存器組48包括硬體連接層38特定寄存器,其由主裝置30用來控制從DMA和/或從中斷產生活動。例如,如果SDIO總線被用作硬體連接層38,那麼第一寄存器組48可以包括用於表明正在使用一位模式還是四位模式的寄存器。其它例子包括設置硬體特定寄存器,用於表明DMA數據轉送以全雙工模式還是半雙工模式出現和/或表明操作頻率。典型情況下,在初始化階段期間只編程硬體特定寄存器48(如果有的話)。第二寄存器組50包括主到從郵箱和便箋式寄存器,其由主裝置30用來向從裝置40轉送軟體特定信息。如前所說,郵箱和便箋式寄存器尤其向高層軟體和硬體協議提供了用於在DMA活動期間操作的靈活性。例如,當主裝置40寫入郵箱寄存器時,可以把中斷信號發送到從處理器42。如下所述對於控制寄存器,響應於寫入郵箱寄存器而產生中斷信號是可編程的。於是從裝置30將讀取在郵箱寄存器中所存儲的信息,這會導致清除中斷。依照本發明示例性實施例寫到郵箱寄存器的信息可以取決於由DMA體系結構所互連的主和從裝置來在很大程度上改變。例如,如果主裝置是行動電話的中央處理器而從裝置是天線子系統,那麼所述主裝置可以把天線子系統的指令寫到郵箱寄存器(一個或多個)中,例如請求所述天線子系統啟動低功耗操作。因而,郵箱寄存器可以用來提供內置的中斷信道,可以取決於互連設備來依照各種方式使用所述中斷信道。除寫入便箋式寄存器不會導致產生中斷信號以外,便箋式寄存器與郵箱寄存器類似。因而,例如便箋式寄存器可以用來攜帶與在主和從裝置之間經由郵箱寄存器所轉送的命令相關聯的溢出數據。作為選擇,從裝置40可以在便箋式寄存器中找到主裝置狀態信息。
寄存器組52描述了從到主方向的郵箱和便箋式寄存器。此寄存器組執行與上面相對於組50所描述的類似功能。當從裝置40寫入這些郵箱寄存器之一時,可以根據控制寄存器編程來把中斷信號發送到主裝置30。當主裝置30讀取相應的郵箱時,將清除中斷。寄存器組54描述了DMA狀態/控制寄存器,所述DMA狀態/控制寄存器尤其控制在一個DMA周期內所轉送的數據量。在主到從方向上,控制寄存器還表明將寫入數據的地址,而在從到主方向上,所述控制寄存器還表明將讀取數據的地址。如下面將要關於單個寄存器及其功能而更詳細地描述,狀態寄存器提供了對DMA活動以及哪些中斷掛起的指示。
為了更好地理解依照本發明示例性實施例的體系結構,現在相對於圖5-6(1)提供了上述各個寄存器的更詳細的例子。那些本領域技術人員應當理解,與此例子相關聯的細節在本質上僅僅是說明性的並且可以進行改變。尤其是地址和位長僅僅是示例性的。圖5提供了在硬體連接層38的從裝置端上列出可編程寄存器的表,包括它們的類型。在相應的圖6(a)-6(1)中更詳細地描述了在圖5的表中所列出的每個寄存器。
以圖6(a)開始,提供了主到從中斷狀態/控制寄存器的例子。這裡此寄存器類型還指的是「郵箱中斷狀態/控制寄存器」。此控制/狀態寄存器用來控制並提供關於主到從郵箱寄存器的信息。特別地是,從裝置40可以設置與每個主到從郵箱寄存器相關聯的控制位以便允許或拒絕當由主裝置30寫入相應的郵箱寄存器時產生的中斷。此特徵例如在當希望禁止郵箱中斷時的初始化期間使用。在初始化之後,從裝置40可以啟用郵箱寄存器中斷。還在此寄存器中提供用於每個主到從郵箱的狀態位,所述狀態位允許從裝置40識別哪個或哪些郵箱使其接收中斷。一旦讀取,就復位這些狀態位。類似地是,圖6(b)描述了從到主方向的中斷狀態/控制寄存器。因而,主裝置30可以設置與每個從到主郵箱寄存器相關聯的控制位以便允許或拒絕當由從裝置30寫入相應的郵箱寄存器時產生的中斷。還在此寄存器中提供了用於每個從到主郵箱的狀態位,所述狀態位允許主裝置30查看中斷是否掛起。
圖6(c)描述了示例性的DMA狀態/控制寄存器。此寄存器尤其可以包括用於存儲版本信息的位、用於對於在每個方向上的每個DMA存儲單元表明DMA活動的位以及用於控制兩個DMA存儲單元中的哪個將用於下一DMA事務的位。對於後者功能,在圖6(c)中可以看出,在每個主到從和從到主事務之後可以分別自動地反轉在此寄存器中的位的值0和1,以便提供如下面所詳述的對雙重存儲單元的循環使用。圖6(d)-6(g)分別提供了主到從郵箱寄存器、主到從便箋式寄存器、從到主郵箱寄存器和從到主便箋式寄存器的例子。儘管可以在依照本發明的DMA體系結構的每個方向上提供多個郵箱和便箋式寄存器,然而由於這些類型寄存器中的每個可以具有相同的結構和功能,所以這裡只描述每個類型/方向之一。為存儲郵箱代碼和/或便箋值所分配的位數目可以比在圖6(d)-6(g)所示出的例子中表明的10位更多或更少。
圖6(h)圖示了示例性的DMA中斷狀態/控制寄存器。此寄存器提供了可編程啟用/禁止的中斷信號,其用來發信號表示DMA轉送完成。對於每個方向上的每個DMA存儲單元提供一個位,在本發明的此示例性實施例中總共提供四個控制位。類似地,四個位向每個方向上的每個DMA存儲單元提供了關於是否已經設置中斷的狀態信息。DMA中斷狀態/控制寄存器還可以用來提供其它功能,例如提供關於是先以最高有效位(most significant bit MSB)還是先以最低有效位(least significant bit LSB)來發送16位數據值的指示符。圖6(i)-6(1)分別圖示了示例性的主到從DMA地址寄存器、主到從DMA大小寄存器、從到主DMA地址寄存器和從到主DMA大小寄存器。可以向用於轉送DMA數據的每個DMA存儲單元提供一個地址和一個大小寄存器以便規定每個存儲單元的地址和大小。因此依照此示例性實施例,如圖5所示可以使用這些寄存器中的八個。
已經描述了依照本發明示例性實施例的寄存器體系結構,現在將參考圖7-10的流程圖來討論用於使用這種體系結構來轉送數據的示例性方法,其中圖7和8描述了主到從DMA轉送方法而圖9和10描述了從到主DMA轉送方法。在主裝置端上,在步驟70,主裝置30首先等待從裝置40初始化。這例如可以通過主裝置30輪詢從到主便箋式寄存器之一併且等待從裝置40把預定值寫入該寄存器來實現。接下來在步驟72,主裝置30初始化與主到從郵箱相關的中斷(圖6a)。從裝置40使用這些中斷來表明主到從DMA信道已經被初始化並且準備接收數據。然後在步驟74,主裝置30等待發送到從裝置30的數據。在此步驟,主裝置30知道從裝置40具有兩個可用的主到從DMA信道。當主裝置30具有需要被轉送到從裝置40的數據時,那麼在步驟76所述主裝置30執行DMA轉送。在從DMA控制器46的典型實現方式中,主裝置30不必跟蹤DMA數據需要從哪個DMA信道發送。從DMA控制器46會自動地把輸入DMA數據指向適當的下一DMA信道。為此,從DMA控制器46可以具有一些硬體連接層特定寄存器,所述硬體連接層特定寄存器可由主裝置30訪問以便啟用此功能。在步驟78,主裝置30等待要發送到從裝置30的更多數據或等待接收到用於表明所述從裝置30已經釋放了先前所使用的DMA信道的中斷。取決於兩個指示中的哪個先到,主裝置30會改變到適當的狀態,即返回到其中兩個DMA信道可用的步驟74或移到步驟80。典型情況下,從到主郵箱中斷由從裝置40用來向主裝置30表明已經再次釋放信道。然而,也存在其它可用的機制。例如,主裝置30可以定期地輪詢便箋式寄存器,其中從編程值可以用來導出從裝置40是否具有任何可用的主到從DMA信道。假定流程接下來移到步驟80,那麼主裝置30再次具有需要被轉送到從裝置40的數據,並且所述主裝置30經由從DMA控制器46所選擇的DMA信道來發送所述數據。然後流程繼續至步驟82,其中主裝置30知道從裝置沒有空閒的可用主到從DMA信道。然後主裝置30等待來自從裝置的再次釋放DMA信道的指示(中斷或輪詢),並且流程返回到步驟78。
圖8以從裝置40的觀點示出了在主到從DMA轉送期間發生的示例性過程。其中,在步驟84從裝置40初始化主到從接口。此步驟例如可以包括編程一些硬體連接層特定寄存器48。典型情況下,在步驟84主到從DMA中斷的產生(圖6(h))也被啟用,以及對於兩個主到從DMA信道設置在各自寄存器中的單元。當完成所有初始化時,從裝置40例如通過把預定值寫入便箋式寄存器之一來向主裝置30表明已經完成初始化。接下來在步驟86,從裝置30等待主裝置的DMA數據。在此狀態中,從裝置具有兩個可用的主到從DMA信道。當從裝置40接收主到從DMA結束中斷時,所述從裝置40可以根據DMA狀態寄存器(圖6(h))來確定為哪個主到從DMA信道產生中斷。利用該信息,從裝置可以根據信道相應的大小和地址寄存器(圖6(i)和6(j))來找到DMA數據的存儲單元和大小。然後可以觸發例如天線子系統軟體之類的從裝置軟體以便處理所接收的數據。
然後所述過程移到步驟88。其中,從裝置40可以檢查以便確定對於先前接收DMA數據的DMA信道,它是否具有新的存儲單元可以用來重新編程存儲器地址(圖6(i)),例如是否該DMA信道尚未被清除。如果是的話,更新此DMA信道的地址寄存器,並且向主裝置30發送用於表明新的信道可用的信號。這例如可以通過產生用於向主裝置表明已經再次釋放DMA信道的從到主郵箱中斷來實現。然而如上所述,為此也可以使用基於輪詢或混合輪詢/中斷的方案。如果沒有存儲單元可用並且接收到新的DMA結束中斷,那麼從裝置30可以根據DMA狀態寄存器(圖6(h))導出為哪個主到從DMA信道產生中斷。利用該信息,從裝置30可以根據相應的大小和地址寄存器(圖6(i)和6(j))來找到DMA數據的存儲單元和大小。然後將觸發用於處理剛接收數據的從裝置軟體。
然後從裝置30移到步驟90,其中它再次等待新的存儲器變為可用,在所述存儲器中可以存儲主到從DMA包。當此存儲器變為可用時,更新用於下一主到從DMA信道的地址寄存器,並且向主裝置產生用於表明新的信道可用的觸發。那些本領域技術人員應當理解,代替對於DMA轉送只使用兩個存儲單元的循環方法,本發明可以使用三個或更多存儲單元來實現上述的兩個DMA信道。例如,在步驟88和90,不同於在步驟84所使用的存儲器地址可以被編程輸入到地址寄存器中的一個或兩個中。對於主-從DMA事務使用兩個以上存儲單元來可以進一步減少等待時間,特別是對於涉及許多數據包的DMA事務來說。
圖9以從裝置40角度描述了依照本發明示例性實施例的從到主DMA數據轉送方法。其中,在步驟92,從裝置40初始化主到從接口。此步驟例如可以包括編程一些硬體連接層特定寄存器48。可以取決於稍後描述的通信算法來啟用主到從DMA中斷(圖6(h))。當完成初始化時,從裝置40需要向主裝置30表明這點。這可以通過向便箋式寄存器之一寫入預定值來實現。在步驟94,從裝置40等待主裝置40已經被初始化的指示。這例如可以通過主裝置30輪詢主到從便箋式寄存器之一併且等待從裝置把預定值寫入該寄存器來實現。接下來在步驟96,從裝置40等待要發送到主裝置30的數據並且具有兩個可用的從到主DMA信道。當該數據變為可用時,在步驟98,從裝置40為下一DMA信道(圖6(c))初始化地址和大小寄存器(圖6(k),6(1)),並且向主裝置產生已經建立下一從到主DMA轉送的指示。此指示可以是通過寫入郵箱寄存器或更新主裝置所輪詢的便箋式寄存器中的值而產生的中斷,根據所述值主裝置可以導出已經建立新的DMA數據轉送。當接收到此指示時,主裝置將啟動主到從DMA轉送。如前所述,從DMA控制器46可以在沒有來自主裝置30任何介入的情況下,自動地從有效信道獲取從到主DMA數據。
在步驟100,從裝置40等待要發送到主裝置的更多數據或等待接收到用於表明所述主裝置已經獲取了初始化DMA信道的從到主DMA數據的指示。可以通過使用圖6(h)的寄存器中的TX DMA結束中斷來提供此指示。此中斷會表明已經獲取了哪個信道數據。用於提供此指示的另一方法是在獲取DMA數據之後,主裝置30寫入主到從郵箱寄存器,這會為從裝置40產生中斷。第三個方法是從裝置40輪詢主到從便箋式寄存器,在獲取DMA數據之後將由主裝置30更新主到從便箋式寄存器的值。假定在接收用於表明先前從到主DMA轉送已經完成的指示之前,從裝置具有用於主裝置的更多數據,那麼過程轉移到步驟102。其中,從裝置40為仍然可用的DMA信道初始化地址和大小寄存器(圖6(k)),6(l)),並且向主裝置30產生先前所描述的用於表明已經建立下一從到主DMA轉送的指示。然後流程移到步驟104,其中從裝置40沒有空閒可用的從到主DMA信道,並因此等待來自主裝置30用於表明再次釋放DMA信道的指示(中斷或輪詢)。
現在轉向圖9中從到主DMA轉送的主裝置觀點,在步驟106,主裝置30等待從裝置40初始化。這例如可以通過主裝置30輪詢從到主便箋式寄存器之一併且等待從裝置40把預定值寫入該寄存器來實現。接下來在步驟108,主裝置30初始化從DMA控制器46。此步驟例如可以包括編程硬體連接層特定寄存器48。還啟用(如果需要的話)從到主DMA中斷(圖6(h))的產生。當完成初始化時,主裝置30需要向從裝置40表明這點。此指示例如可以通過把預定值寫入主到從便箋式寄存器之一來實現。
然後在步驟110,主裝置30等待從到主DMA數據指示。在此狀態中沒有具有要讀取數據的從到主信道掛起。存在幾種可以產生數據指示的方式。例如,從裝置40可以經由通過從裝置寫入從到主郵箱寄存器而產生的中斷來表明所述從裝置40具有準備轉送的數據。作為選擇,從裝置40可以更新在主裝置30輪詢的便箋式寄存器中的值,根據該值所述主裝置30可以確定已經建立了新的DMA數據。當接收到此指示時,主裝置30將啟動主到從DMA轉送。如前所述,依照本發明示例性實施例,主裝置30不必跟蹤需要叢中獲取DMA數據的DMA信道。作為替代,從DMA控制器46可以從有效信道自動地獲取從到主DMA。在步驟112,進行從到主DMA轉送。主裝置30等待結束DMA轉送指示(其在主裝置內部產生),或等待來自所述從裝置40用於表明已經建立又一DMA信道的新的指示。當接收到結束DMA轉送指示時,主裝置30可以觸發將處理所獲取數據的功能。取決於從裝置使用哪個『結束從到主DMA轉送』指示,主裝置可以寫入主到從郵箱或便箋式寄存器以便表明完成此轉送。當由主裝置30接收新的從到主DMA數據指示並且先前DMA轉送尚未完成時,過程移到步驟114。其中,進行從到主DMA。主裝置等待結束DMA轉送指示(其在主裝置內部產生)。當接收到結束DMA轉送指示時,主裝置可以觸發將處理所獲取數據的功能。還取決於從裝置使用哪個『結束從到主DMA轉送』指示,主裝置30可以寫入主到從郵箱或便箋式寄存器以便表明完成此轉送,所述流程返回到步驟100。
在上述的示例性DMA方法中,假定從DMA控制器46具有四個並行DMA信道,但是主裝置30沒有。如果主裝置30也具有四個並行DMA信道,那麼主裝置的流程圖往往與從裝置40的流程圖類似。另外,為主裝置提供四個並行DMA信道可能會使主裝置30能夠並行建立幾個DMA轉送。儘管上述例子描述了在每個方向上兩個DMA信道,然而那些本領域技術人員應當理解依照本發明的DMA體系結構並不受此限制。作為替代,本發明的實施例可以在每個方向上包含四、八、十六或更多個DMA信道,並且相應增加用於實現體系結構的寄存器數目。
依照示例性實施例,主裝置30啟動從到主DMA轉送。如果從裝置40沒有利用新的存儲器地址大小和來初始化任何從到主DMA信道,那麼從DMA控制器46將用DMA大小為零的指示來對從到主DMA轉送請求自動作出響應。如上所述,啟動從到主DMA數據轉送至少可以依照三種不同的方式來實現。第一,可以使用基於輪詢的初始化。如果使用此技術,那麼主裝置30將定期啟動從到主DMA命令序列並且尤其讀取從到主大小寄存器,以便確定是否已經存儲了任何DMA數據來用於轉送。如果數據可用,那麼執行上面所概述的過程,否則主裝置30等候下一輪詢間隔。
作為選擇,可以使用基於中斷的初始化。在從裝置40已經編程從到主地址和大小寄存器之後,那麼寫入郵箱寄存器以便向主裝置30產生中斷。這依照本發明提供了通過向DMA體系結構提供郵箱寄存器來創建靈活性的又一例子。一旦收到由郵箱寄存器所產生的中斷,那麼主裝置啟動從到主DMA序列。可以使用不同的郵箱寄存器來啟動從兩個不同的DMA存儲單元的轉送。從裝置40應當首先檢查郵箱中斷狀態/控制寄存器中的中斷狀態位,以便確保對於它想要使用的郵箱寄存器來說中斷尚未掛起,以便向主裝置30發信號從而啟動從到主DMA數據轉送。
第三,依照本發明示例性實施例對於從到主DMA轉送可以使用基於混合輪詢/中斷的初始化技術。為了開始,從裝置40再次寫入郵箱寄存器以便向主裝置30產生中斷,所述中斷被解釋為用於啟動從到主DMA轉送的請求。雖然轉送從第一存儲單元起發生,但是從裝置40利用要轉送的下一DMA包來編程寄存器和第二存儲單元。然而,代替使用另一郵箱寄存器來向主裝置30發送中斷信號以便開始轉送第二數據部分,主裝置30自動啟動第二從到主轉送序列。然後從裝置30使用當完成第一轉送時它接收的中斷來開始準備第三數據部分以便用於轉送。此過程繼續直到從裝置40消耗掉與此DMA事務相關聯的數據,此時從裝置40把大小寄存器設置為零。當主裝置30請求下一數據塊時,它會接收大小零指示並且結束DMA事務。
那些本領域技術人員應當理解,上述DMA體系結構和方法對中斷和數據轉送提供了足夠的可編程性,這有助於在不同類型的主裝置、從裝置、硬體互連和軟體應用之間沒有體系結構改變的情況下重新使用上述DMA體系結構和方法本身。用於編程郵箱寄存器以便有選擇地啟用或禁止中斷產生、觸發讀取便箋式寄存器等的能力使軟體開發者能夠重新使用與此DMA體系結構相關聯的代碼,這是因為所述DMA體系結構可以跨過不同的實現方式維持其寄存器結構。
上述示例性實施例在各個方面均意在說明本發明,而並非限制本發明。因而本發明能夠在可以由本領域技術人員根據這裡所包含的描述而導出的詳細實現方式中進行許多變化。所有這種變化和修改被認為在如下權利要求所定義的本發明的範圍和精神之內。在本申請說明書中所使用的元件、動作或指令不應當被理解為對本發明來說是關鍵的或必要的,除非顯式地進行了這種描述。這裡所用的「一個」意在包括一個或多個項。
權利要求
1.一種用於在主裝置(30)和從裝置(40)之間轉送信息的直接存儲器訪問(DMA)系統,包括第一多個DMA信道,用於把信息從所述主裝置(30)轉送到所述從裝置(40);第二多個DMA信道,用於把信息從所述從裝置(40)轉送到所述主裝置(30);第一組控制寄存器(圖6a,6c,6d,6e,6h,6i,6j),用於協調使用所述第一多個DMA信道來把信息從所述主裝置(30)轉送到所述從裝置(40);和第二組控制寄存器(圖6b,6c,6f,6g,6h,6k,6l),用於協調使用所述第二多個DMA信道來把信息從所述從裝置(40)轉送到所述主裝置(30),其中所述第一組控制寄存器和第二組控制寄存器都包括至少一個郵箱寄存器(圖6d,6f),用於在所述DMA事務期間響應於由其它所述主裝置和所述從裝置寫到所述至少一個郵箱寄存器的數據,來有選擇地向所述主裝置(30)和所述從裝置(40)中的相應一個提供中斷信號。
2.如權利要求1所述的系統,其中所述第一組和第二組控制寄存器中的每個還包括郵箱中斷狀態/控制寄存器(圖6a,6b),用於為所述至少一個郵箱寄存器中的每個啟用/禁止郵箱中斷產生並且用於表明對於所述至少一個郵箱寄存器中的每個,所述至少一個郵箱中斷之一是否掛起。
3.如權利要求1所述的系統,其中所述第一組和第二組控制寄存器中的每個還包括至少一個便箋式寄存器(圖6e,6g),用於存儲可以響應於由所述至少一個郵箱寄存器所產生的所述中斷信號而讀取的數據。
4.如權利要求1所述的系統,還包括DMA中斷狀態/控制寄存器(圖6h),用於啟用/禁止與完成轉送所述信息相關聯的數據轉送完成中斷產生並且用於表明對於第一和第二DMA信道中的每個,所述數據轉送完成中斷之一是否掛起。
5.如權利要求1所述的系統,還包括第一地址寄存器,用於存儲與所述第一多個DMA信道之一相關聯的第一地址;第二地址寄存器,用於存儲與所述第一多個DMA信道中的另一個相關聯的第二地址;第三地址寄存器,用於存儲與所述第二多個DMA信道之一相關聯的第三地址;和第四地址寄存器,用於存儲與所述第二多個DMA信道中的另一個相關聯的第四地址。
6.如權利要求1所述的系統,還包括第一大小寄存器,用於存儲使用所述第一多個DMA信道之一來轉送的所述信息的大小;第二大小寄存器,用於存儲使用所述第一多個DMA信道中的另一個來轉送的所述信息的大小;第三大小寄存器,用於存儲使用所述第二多個DMA信道之一來轉送的所述信息的大小;和第四大小寄存器,用於存儲使用所述第一多個DMA信道中的另一個來轉送的所述信息的大小。
7.如權利要求1所述的系統,還包括DMA狀態/控制寄存器(圖6c),用於對於所述第一和第二多個DMA信道中的每個表明DMA轉送活動是否正在進行。
8.如權利要求1所述的系統,其中寫到所述至少一個郵箱寄存器的所述數據是要求轉送更多數據的命令。
9.如權利要求1所述的系統,其中寫到所述至少一個郵箱寄存器的所述數據是用於激活所述從裝置和所述主裝置之一的特徵的命令。
10.如權利要求9所述的系統,其中所述特徵是減少功率消耗特徵。
11.一種用於在主裝置(30)和從裝置(40)之間轉送直接存儲器訪問(DMA)信息的方法,包括步驟存儲在DMA事務期間使用第一DMA信道所接收的第一數據部分;存儲在所述DMA事務期間使用第二DMA信道所接收的第二數據部分;並且通過在所述DMA事務期間由其它所述主裝置(30)和所述從裝置(40)把數據寫到至少一個郵箱寄存器(圖6d,6f)中,來有選擇地向所述主裝置(30)和從裝置(40)之一提供中斷信號。
12.如權利要求11所述的方法,還包括步驟對於所述至少一個郵箱寄存器(圖6d,6f)中的每個啟用/禁止郵箱中斷產生並且使用郵箱中斷狀態/控制寄存器(圖6a,6b)來表明對於所述至少一個郵箱寄存器中的每個,所述至少一個郵箱中斷之一是否掛起。
13.如權利要求11所述的方法,還包括步驟響應於所述中斷信號來讀取在至少一個便箋式寄存器(圖6e,6g)中所存儲的數據。
14.如權利要求11所述的方法,還包括步驟啟用/禁止與完成存儲所述第一和第二數據部分相關聯的數據轉送完成中斷產生,並且使用DMA中斷狀態/控制寄存器(圖6h)來表明對於所述第一和第二DMA信道中的每個,所述數據轉送完成中斷之一是否掛起。
15.如權利要求11所述的方法,還包括步驟存儲與所述第一DMA信道相關聯的第一地址;並且存儲與所述第二DMA信道相關聯的第二地址。
16.如權利要求11所述的方法,還包括步驟存儲所述第一數據部分的大小;並且存儲所述第二數據部分的大小。
17.如權利要求11所述的方法,還包括步驟提供關於在所述第一和第二DMA信道中轉送活動當前是否正在進行的指示。
18.如權利要求11所述的方法,其中寫到所述至少一個郵箱寄存器的數據是要求轉送更多數據的命令。
19.如權利要求11所述的方法,其中寫到所述所述至少一個郵箱寄存器的數據是用於激活所述從裝置和所述主裝置之一的特徵的命令。
20.如權利要求19所述的方法,其中所述特徵是減少功率消耗特徵。
21.如權利要求15所述的方法,還包括步驟使用所述第一DMA信道來存儲第三數據部分。
22.如權利要求21所述的方法,還包括步驟在存儲所述第三數據部分的所述步驟之前,利用不同於所述第一地址的第三地址來重新編程包含所述第一地址的寄存器。
23.如權利要求21所述的方法,還包括步驟使用所述第二DMA信道來存儲第四數據部分。
24.如權利要求23所述的方法,還包括步驟在存儲所述第四數據部分的所述步驟之前,利用不同於所述第二地址的第四地址來重新編程包含所述第二地址的寄存器。
25.如權利要求1所述的系統,其中所述第一組和第二組控制寄存器中的每個還包括至少一個便箋式寄存器,用於存儲可以由所述主裝置和所述從裝置之一所讀取的狀態信息。
全文摘要
依照本發明的系統和方法描述了健壯的DMA體系結構,所述DMA體系結構包括在DMA轉送期間能夠靈活地支持高層硬體/軟體服務需要的寄存器。這種寄存器尤其包括郵箱寄存器和便箋式寄存器,所述寄存器向依照本發明的DMA體系結構和方法提供用於提供多個中斷信道的能力和溢出數據轉送的能力,所述能力允許在只改變DMA體系結構編程而不改變其體系結構的情況下重新使用這些DMA體系結構。還描述了使用候選存儲單元的循環DMA轉送。
文檔編號G06F13/32GK1856777SQ200480027468
公開日2006年11月1日 申請日期2004年9月22日 優先權日2003年9月23日
發明者G·弗雷德裡克斯 申請人:皇家飛利浦電子股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀