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