專利名稱:直接存儲(chǔ)器存取控制器的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)案的技術(shù)領(lǐng)域涉及直接存儲(chǔ)器存取控制器。
背景技術(shù):
直接存儲(chǔ)器存取控制器(DMA)通常用于微處理器系統(tǒng)、集成微控制器等中。DMA 控制器用于獨(dú)立于計(jì)算機(jī)系統(tǒng)的中央處理單元而執(zhí)行從存儲(chǔ)器到外圍設(shè)備和從外圍設(shè) 備到存儲(chǔ)器的數(shù)據(jù)傳遞。為此,DMA控制器可視為具有有限能力的第二可編程處理單 元。大體上,DMA控制器經(jīng)指令以從源位置向目的地位置傳遞特定量的數(shù)據(jù)。源可在 存儲(chǔ)器內(nèi),所述存儲(chǔ)器例如是微控制器的數(shù)據(jù)存儲(chǔ)器、外圍設(shè)備的存儲(chǔ)器,或者所述源 是由外圍設(shè)備產(chǎn)生或可在外圍設(shè)備內(nèi)存取的數(shù)據(jù),所述外圍設(shè)備例如為模擬到數(shù)字轉(zhuǎn)換 器、端口、捕捉比較單元等。目的地也可在存儲(chǔ)器內(nèi),因此允許計(jì)算機(jī)系統(tǒng)或微控制器 的存儲(chǔ)器裝置內(nèi)的高速傳遞。然而,目的地也可為外圍設(shè)備,例如數(shù)字到模擬轉(zhuǎn)換器、 端口等。為了從源向目的地傳遞數(shù)據(jù),DMA控制器必須接收相應(yīng)的源和目的地地址。 另外,需要指定每一傳遞長度。為此,DMA控制器需要接收數(shù)據(jù)傳遞的長度或待傳遞 的數(shù)據(jù)的開始和結(jié)束地址。因此,需要一種更靈活的DMA控制器。
發(fā)明內(nèi)容
在一個(gè)實(shí)施例中,直接存儲(chǔ)器存取控制器可包括數(shù)據(jù)寄存器,其用于從源向目的 地地址傳遞數(shù)據(jù);樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所述樣式寄存器耦 合;以及控制單元,其與所述比較器耦合且可操作以在所述比較器檢測到所述數(shù)據(jù)寄存 器與所述樣式寄存器的匹配的情況下停止數(shù)據(jù)傳遞。
在另一實(shí)施例中, 一種微控制器可包括中央處理單元;總線,其與所述中央處理 單元耦合;存儲(chǔ)器,其與所述總線耦合;外圍單元,其與所述總線耦合;以及直接存儲(chǔ) 器存取控制器,其與所述總線耦合,所述直接存儲(chǔ)器存取控制器包括數(shù)據(jù)寄存器,其 用于從源向目的地地址傳遞數(shù)據(jù);樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所 述樣式寄存器耦合以及控制單元,其與所述比較器耦合且可操作以在所述比較器檢測 到所述數(shù)據(jù)寄存器與所述樣式寄存器的匹配的情況下停止數(shù)據(jù)傳遞。
在又一實(shí)施例中, 一種微控制器可包括中央處理單元第一總線,其與所述中央 處理單元耦合;外圍單元,其與所述第一總線耦合;第二總線,其與所述中央處理單元
5耦合;存儲(chǔ)器,其與所述第二總線耦合;直接存儲(chǔ)器存取控制器,其與所述第一和第二 總線耦合,所述直接存儲(chǔ)器存取控制器包括數(shù)據(jù)寄存器,其用于從源向目的地地址傳 遞數(shù)據(jù);樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所述樣式寄存器耦合;以及 控制單元,其與所述比較器耦合且可操作以在所述比較器檢測到所述數(shù)據(jù)寄存器與所述
樣式寄存器的匹配的情況下停止數(shù)據(jù)傳遞。
在又一實(shí)施例中, 一種通過直接存儲(chǔ)器存取控制器執(zhí)行從源到目的地的多個(gè)數(shù)據(jù)的 傳輸?shù)姆椒òú襟Ea)確定是否使用了樣式檢測;b)存儲(chǔ)源地址和目的地地址的開 始地址;C)如果使用了樣式檢測,那么存儲(chǔ)樣式;否則存儲(chǔ)傳輸長度;d)從所述源地 址讀取數(shù)據(jù);e)將數(shù)據(jù)存儲(chǔ)在所述目的地地址中;f)如果使用了樣式檢測,那么將所 述數(shù)據(jù)與所述樣式比較,且在匹配時(shí)終止所述傳輸;g)使所述源和目的地地址遞增;h) 如果沒有使用樣式檢測,那么在已達(dá)到所述傳輸長度的情況下終止所述傳輸;以及i) 重復(fù)步驟d) —h)。
所屬領(lǐng)域的技術(shù)人員通過以下圖示、描述和權(quán)利要求書將容易了解本發(fā)明的其它技 術(shù)優(yōu)點(diǎn)。本申請(qǐng)案的各種實(shí)施例僅獲得所陳述的優(yōu)點(diǎn)中的一子組優(yōu)點(diǎn)。沒有哪一個(gè)優(yōu)點(diǎn) 對(duì)所述實(shí)施例來說是關(guān)鍵的。
通過參考結(jié)合附圖做出的以下描述可獲得對(duì)本發(fā)明及其優(yōu)點(diǎn)的更完整理解,附圖中 相同參考標(biāo)號(hào)指示相同特征,且其中
圖1是展示例如微控制器的計(jì)算機(jī)系統(tǒng)內(nèi)的典型DMA控制器的方框圖2是展示DMA控制器的第一實(shí)施例的細(xì)節(jié)的方框圖; 圖3是展示DMA控制器的第二實(shí)施例的細(xì)節(jié)的方框圖; 圖4是展示DMA控制器的第三實(shí)施例的細(xì)節(jié)的方框圖; 圖5是用于DMA控制器的初始化例行程序的流程圖;以及 圖6是用于DMA控制器的傳遞例行程序的流程圖。
具體實(shí)施例方式
如上所述,在一個(gè)實(shí)施例中,直接存儲(chǔ)器存取控制器可包括用于從源向目的地地址 傳遞數(shù)據(jù)的數(shù)據(jù)寄存器、樣式寄存器、與數(shù)據(jù)寄存器和樣式寄存器耦合的數(shù)據(jù)比較器, 以及與比較器耦合的可操作以在比較器檢測到數(shù)據(jù)寄存器與樣式寄存器的匹配的情況 下停止數(shù)據(jù)傳遞的控制單元。
直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于將源或目的地地址與預(yù)定義結(jié)束地址比較的地址比較器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于從數(shù)據(jù)和地址比較器的輸出 信號(hào)產(chǎn)生傳輸信號(hào)的結(jié)束的邏輯構(gòu)件。樣式寄存器可包括多個(gè)數(shù)據(jù)區(qū)段,且數(shù)據(jù)比較器 可經(jīng)控制以將選定的區(qū)段與數(shù)據(jù)寄存器比較。直接存儲(chǔ)器存取控制器可進(jìn)一步包括與數(shù) 據(jù)寄存器耦合的多個(gè)比較器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括與樣式寄存器和數(shù)據(jù) 寄存器耦合的多路復(fù)用器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于控制多路復(fù)用器的 控制單元。
如上所述,在另一實(shí)施例中,微控制器可包括中央處理單元、與中央處理單元耦合 的總線、與總線耦合的存儲(chǔ)器、與總線耦合的外圍單元,以及與總線耦合的直接存儲(chǔ)器 存取控制器,其包括用于從源向目的地地址傳遞數(shù)據(jù)的數(shù)據(jù)寄存器、樣式寄存器、與數(shù) 據(jù)寄存器和樣式寄存器耦合的數(shù)據(jù)比較器,以及與比較器耦合的可操作以在比較器檢測 到數(shù)據(jù)寄存器與樣式寄存器的匹配的情況下停止數(shù)據(jù)傳遞的控制單元。
上文提到的直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于將源或目的地地址與預(yù)定義 結(jié)束地址比較的地址比較器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于從數(shù)據(jù)和地址比 較器的輸出信號(hào)產(chǎn)生傳輸信號(hào)的結(jié)束的邏輯構(gòu)件。樣式寄存器可包括多個(gè)數(shù)據(jù)區(qū)段,且 數(shù)據(jù)比較器可經(jīng)控制以將選定的區(qū)段與數(shù)據(jù)寄存器比較。直接存儲(chǔ)器存取控制器可進(jìn)一 步包括與數(shù)據(jù)寄存器耦合的多個(gè)比較器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括與樣式寄 存器和數(shù)據(jù)寄存器耦合的多路復(fù)用器。直接存儲(chǔ)器存取控制器可進(jìn)一步包括用于控制多 路復(fù)用器的控制單元。
如上所述,在又一實(shí)施例中, 一種通過直接存儲(chǔ)器存取控制器執(zhí)行從源到目的地的 多個(gè)數(shù)據(jù)的傳輸?shù)姆椒òú襟Ea)確定是否使用了樣式檢測;b)存儲(chǔ)源地址和目的 地地址的開始地址;C)如果使用了樣式檢測,那么存儲(chǔ)樣式;否則存儲(chǔ)傳輸長度;d) 從源地址讀取數(shù)據(jù);e)將數(shù)據(jù)存儲(chǔ)在目的地地址中;f)如果使用了樣式檢測,那么將 數(shù)據(jù)與樣式比較,且在匹配時(shí)終止傳輸;g)使源和目的地地址遞增;h)如果沒有使用 樣式檢測,那么在已達(dá)到傳輸長度的情況下終止傳輸;以及i)重復(fù)步驟d) —h)。
此方法可進(jìn)一步包括即使在使用了樣式檢測的情況下也使用步驟h)。可將多個(gè)數(shù)據(jù) 與多個(gè)數(shù)據(jù)樣式比較,且僅在所述多個(gè)數(shù)據(jù)與所述多個(gè)數(shù)據(jù)樣式匹配的情況下才終止傳 輸。所述多個(gè)數(shù)據(jù)樣式可為循序數(shù)據(jù)樣式。循序數(shù)據(jù)樣式可包括連續(xù)數(shù)據(jù)序列。
參看圖式,現(xiàn)在將描述本發(fā)明的示范性實(shí)施例。圖l描繪例如微控制器的計(jì)算機(jī)系 統(tǒng)內(nèi)的DMA控制器的典型實(shí)施例。計(jì)算機(jī)系統(tǒng)100 (比如,例如微控制器)大體上包 括中央處理單元(CPU) 110,其耦合到一個(gè)或一個(gè)以上總線系統(tǒng)。在圖1中,展示示范 性主總線140。通過此總線140, CPU 110可與多個(gè)外圍裝置180a...180n通信,所述夕卜圍裝置例如是I/0端口、存儲(chǔ)器;A/D和D/A轉(zhuǎn)換器、定時(shí)器;脈沖寬度調(diào)制器等。此 外,可提供專用存儲(chǔ)器總線160以將CPU 110與主存儲(chǔ)器120耦合。以標(biāo)號(hào)130展示直 接存儲(chǔ)器存取控制器(DMA)。此DMA控制器130還與主總線140耦合以允許與此總 線140耦合的裝置之間的數(shù)據(jù)傳遞。另外,DMA單元也可通過額外總線170與主存儲(chǔ) 器120耦合。此外,DMA控制器130可從CPU 110接收多個(gè)控制信號(hào)150。此系統(tǒng)允 許在與總線140耦合的任何裝置180a…180n之間以及在所述裝置180a…180n與存儲(chǔ)器 120之間或在存儲(chǔ)器120內(nèi)、在無需CPU 110的情況下由DMA控制器進(jìn)行數(shù)據(jù)傳遞。 通常僅需要CPU 110來初始化DMA控制器130。 一旦DMA控制器130經(jīng)編程,便在 沒有CPU 110的輔助的情況下進(jìn)行適當(dāng)?shù)臄?shù)據(jù)傳遞。CPU 110隨后能夠自由執(zhí)行其它任 務(wù)。
圖2展示DMA控制器的更多細(xì)節(jié)。根據(jù)一個(gè)實(shí)施例,DMA控制器130包括至少一 數(shù)據(jù)寄存器或鎖存器210以及相關(guān)聯(lián)的地址寄存器或鎖存器240,所述兩者均耦合到接 收總線270和傳輸總線280。圖2通過虛線指示接收總線270和傳輸總線280可為同一 個(gè)總線,例如圖l所示的總線140。然而在另一實(shí)施例中,DMA控制器130也可經(jīng)配置 以在兩個(gè)不同總線之間通信。在此實(shí)施例中,接收總線270可為例如圖l所示的總線140, 且傳輸總線280可為圖l所示的總線170。用于地址和數(shù)據(jù)的寄存器或鎖存器210和240 兩者與這些總線耦合?;蛘撸商峁┯糜趥鬏敽徒邮盏膯为?dú)寄存器。圖2所示的單獨(dú)地 址寄存器240a和240b是有用的,因?yàn)樵春湍康牡氐刂吠ǔ2煌?shù)據(jù)寄存器210和傳 輸和/或接收寄存器240a、 240b可進(jìn)一步與比較器耦合以確定數(shù)據(jù)或地址的匹配。
在DMA數(shù)據(jù)傳遞期間,DMA控制器130可經(jīng)編程以將在源開始地址開始且在源結(jié) 束地址結(jié)束的特定量的數(shù)據(jù)傳遞到目的地,所述目的地也在目的地開始地址開始且在目 的地結(jié)束地址結(jié)束。為此,例如寄存器240a中加載有源開始地址,且寄存器240b中加 載有目的地開始地址。DMA控制器130進(jìn)一步接收待傳遞的數(shù)據(jù)區(qū)塊的長度或源結(jié)束 地址。如果使用源結(jié)束地址,那么將此地址加載到與比較器250耦合的相應(yīng)寄存器240c 中?;蛘?,目的地結(jié)束地址或如上所述的數(shù)據(jù)區(qū)塊的長度可用于確定傳遞的結(jié)束。 一旦 已進(jìn)行此示范性初始化,那么適當(dāng)?shù)臄?shù)據(jù)傳遞發(fā)生。
下文中解釋使用單一總線140的傳遞。DMA控制器130將第一地址(存儲(chǔ)在寄存 器240a中的源開始地址)置于總線140上。此地址可在與總線140耦合的存儲(chǔ)器或任 何裝置內(nèi)。隨后將相關(guān)聯(lián)數(shù)據(jù)傳遞到數(shù)據(jù)寄存器210中。在以下步驟中,寄存器240a 從總線140去耦,且寄存器240b與總線140耦合?;蛘?,如果僅使用一個(gè)地址寄存器, 那么此地址寄存器中加載有目的地開始地址。因此,目的地地址現(xiàn)在被置于總線140上,其尋址例如與總線140耦合的存儲(chǔ)器或任何裝置的相應(yīng)目的地。隨后,將存儲(chǔ)在寄存器 210中的數(shù)據(jù)傳遞到此目的地地址。隨后使源地址寄存器240a和目的地地址寄存器240b 遞增,且重復(fù)所述過程直到源地址寄存器240a含有源結(jié)束地址為止。此傳輸結(jié)束可例 如由比較器250檢測,其對(duì)地址寄存器240a與寄存器240c的內(nèi)容進(jìn)行比較。
另外,DMA控制器130允許一旦已接收到例如預(yù)定義數(shù)據(jù)字節(jié)的特定樣式時(shí)便停 止傳遞的有條件傳遞。為此,DMA控制器13O包括又一樣式寄存器210b。在初始化后, 此寄存器210b中加載有例如特定字節(jié)的樣式。 一旦比較器220檢測到寄存器210a中加 載的數(shù)據(jù)與樣式寄存器210b之間的匹配,那么產(chǎn)生相應(yīng)的信號(hào)230,其向DMA控制器 130指示已達(dá)到傳輸?shù)慕Y(jié)尾。為了防止無至盡的傳輸,可另外使用地址比較器250,從 而界定最大傳遞。
因此,根據(jù)此實(shí)施例的DMA控制器大體上允許兩種不同類型的交易。第一交易定 義為固定長度傳輸,其允許由DMA控制器傳遞經(jīng)界定的數(shù)據(jù)區(qū)塊。第二交易具有開放 長度,且其長度由特定樣式界定。舉例來說,傳輸?shù)慕Y(jié)束可由特定符號(hào)界定。而且在另 一實(shí)施例中,符號(hào)序列可界定傳輸?shù)慕Y(jié)束。因此,傳輸結(jié)束的更靈活的定義是可能的。 舉例來說,代替于單一字節(jié),可使用兩個(gè)字節(jié)的序列,例如回車(CR)換行(LF)序 列。為此,可提供多個(gè)寄存器,其以相應(yīng)序列編程??梢宰畲髠鬟f長度增強(qiáng)第二交易類 型以避免無至盡的傳遞循環(huán)且因此提供額外安全性。
圖3展示DMA控制器130的另一示范性實(shí)施例的特定寄存器。在此實(shí)施例中,提 供源寄存器310和目的地地址寄存器320。此外,長度/最大長度寄存器330與可產(chǎn)生結(jié) 束地址檢測EndAddr的比較器380耦合。比較器380進(jìn)一步與計(jì)數(shù)器370耦合。樣式寄 存器340與另一比較器350耦合,比較器350還與接收和傳輸適當(dāng)數(shù)據(jù)D 入和D輸出的 數(shù)據(jù)寄存器360耦合。比較器350產(chǎn)生信號(hào)Match (匹配),所述信號(hào)可隨后產(chǎn)生傳輸結(jié) 束信號(hào)EofTrans。可提供多個(gè)樣式寄存器340和相關(guān)聯(lián)的比較器,如使用虛線由相應(yīng)元 件所指示??商峁┘拇嫫髋c比較器之間的相應(yīng)邏輯以允許不同類型的傳輸。舉例來說, 圖3展示第一可控制驅(qū)動(dòng)器385,其從比較器380接收信號(hào)EndAddr。驅(qū)動(dòng)器385的輸 出與或門390的第一輸入耦合。第二可控制反相器355從比較器350接收信號(hào)Match。 驅(qū)動(dòng)器355的輸出與或門390的第二輸入耦合。因此,或門390的輸出提供傳輸結(jié)束信 號(hào)EofTranso
在第一模式中,驅(qū)動(dòng)器355經(jīng)控制以將比較器350從或門390去耦,從而在或門390 的第二輸入處產(chǎn)生恒定邏輯低信號(hào),且驅(qū)動(dòng)器385經(jīng)控制以使比較器380與或門390耦 合。寄存器310和320中加載有相應(yīng)的源開始地址和目的地開始地址。寄存器330中加載有待傳輸?shù)臄?shù)據(jù)區(qū)塊的長度,且計(jì)數(shù)器370重設(shè)為零。隨后可開始數(shù)據(jù)傳遞。為此, 將由寄存器310尋址的數(shù)據(jù)加載到寄存器360中且寫入到寄存器320中所包含的地址。 隨后,將寄存器310和320遞增所傳輸數(shù)據(jù)的大小。舉例來說,如果數(shù)據(jù)寄存器是一字 節(jié)寬的寄存器,那么將寄存器310和320遞增1。如果數(shù)據(jù)寄存器是16位寄存器,那么 將寄存器310和320遞增2,依此類推。計(jì)數(shù)器370相應(yīng)地遞增。比較器380將計(jì)數(shù)器 370的計(jì)數(shù)器值與寄存器330進(jìn)行比較。重復(fù)數(shù)據(jù)傳遞,直到計(jì)數(shù)器值與寄存器330的 內(nèi)容匹配為止。如果達(dá)到此匹配,那么EndAddr信號(hào)變?yōu)檫壿嫺撸一蜷T390的輸出將 變?yōu)楦?,從而指示傳輸結(jié)束EofTrans。因此,DMA控制器停止。
在第二模式中,驅(qū)動(dòng)器385經(jīng)控制以將比較器380從或門3卯去耦,從而在或門3卯 的第一輸入處產(chǎn)生恒定邏輯低信號(hào),且驅(qū)動(dòng)器355經(jīng)控制以使比較器350與或門390耦 合。在此模式中,源和目的地寄存器310和320中同樣加載有相應(yīng)開始地址。另外,樣 式寄存器340中加載有預(yù)定義樣式。同樣,開始DMA傳遞,且將與源寄存器相關(guān)聯(lián)的 第一數(shù)據(jù)加載到數(shù)據(jù)寄存器360中且將其與樣式寄存器340比較。如果發(fā)生匹配,那么 比較器350在其輸出處產(chǎn)生高信號(hào),其在或門390的輸出處引起高信號(hào)且指示傳輸結(jié)束。 否則,使寄存器310和3320遞增,且傳遞繼續(xù),直到所傳輸數(shù)據(jù)與樣式寄存器340之 間的匹配發(fā)生為止。
在第三模式中,啟動(dòng)驅(qū)動(dòng)器355和385兩者,從而將比較器350和380兩者與或門 390耦合。在此模式中,寄存器310和320中同樣加載有相應(yīng)開始地址。此外,將最大 長度值加載到寄存器330中,且將樣式加載到寄存器340中。數(shù)據(jù)傳遞如上所述進(jìn)行。 然而,傳輸結(jié)束是由比較器350或380產(chǎn)生。在正常傳輸期間,比較器350將通過所傳 輸數(shù)據(jù)與樣式寄存器340之間的匹配來檢測傳輸結(jié)束。然而如果由于錯(cuò)誤或故障而使此 數(shù)據(jù)從未出現(xiàn),那么一旦已達(dá)到數(shù)據(jù)傳輸?shù)淖畲箝L度比較器380將終止傳輸。
圖4展示樣式寄存器的另一實(shí)施例。在此實(shí)施例中,樣式寄存器410具有32位的 寬度,且因此由四個(gè)字節(jié)410a…410d組成。每一字節(jié)410a…410d與具有32個(gè)輸入和8 個(gè)輸出的4:1多路復(fù)用器420耦合。多路復(fù)用器420的輸出線與比較器430耦合,比較 器430將所述8個(gè)位與數(shù)據(jù)寄存器(未圖示)的內(nèi)容進(jìn)行比較。提供控制單元440以控 制多路復(fù)用器420。此實(shí)施例允許比較數(shù)據(jù)序列。在第一模式中,樣式寄存器410中加 載有預(yù)定義的32位樣式。在數(shù)據(jù)傳遞的開始,多路復(fù)用器經(jīng)控制以使寄存器410的第 一字節(jié)410a與比較器430耦合。 一旦與所傳輸數(shù)據(jù)字節(jié)的匹配發(fā)生,那么比較器將此 匹配發(fā)信號(hào)通知控制單元440。控制單元440隨后切換多路復(fù)用器420以使第二字節(jié)410b 與比較器430耦合。如果DMA控制器傳遞的下一數(shù)據(jù)字節(jié)與第二字節(jié)410b匹配,那么
10控制單元再次切換多路復(fù)用器以允許所述下一字節(jié)與字節(jié)410c的比較。只有四個(gè)循序 字節(jié)與寄存器410的內(nèi)容匹配時(shí),才產(chǎn)生傳輸結(jié)束信號(hào)。如果在比較最后的字節(jié)410d 之前發(fā)生未中,那么將多路復(fù)用器420重設(shè)到第一字節(jié)410a以開始新的序列比較。單 元可經(jīng)編程以允許樣式序列的任意長度。在此實(shí)施例中,例如可使用一字節(jié)序列、兩字 節(jié)序列、三字節(jié)序列或四字節(jié)序列。依據(jù)樣式寄存器的大小,可實(shí)施任何序列長度。
在第二模式中,序列不得以連續(xù)次序發(fā)生。舉例來說,可允許任意數(shù)目的中間字節(jié)。 因此,如果在后面的字節(jié)中發(fā)生未匹配,那么多路復(fù)用器420將不被重設(shè)到第一字節(jié) 410a。因此,如果樣式寄存器例如以"0x64A8"編程,那么序列"0x68840AABCS"(帶 下劃線的字節(jié)展示匹配)將觸發(fā)傳輸結(jié)束信號(hào)。在又一實(shí)施例中,可使用多個(gè)比較器和 一多字節(jié)寄存器來甚至允許非循序匹配。因此,假如樣式內(nèi)的所有字節(jié)均出現(xiàn)(即使其 無序),那么將會(huì)產(chǎn)生傳輸結(jié)束信號(hào)。替代多個(gè)比較器,圖4所示的配置也可用于通過 每數(shù)據(jù)循環(huán)循序切換通過所有四個(gè)數(shù)據(jù)字節(jié)410a...410d來將每一字節(jié)410a...410d與每 一所傳輸數(shù)據(jù)進(jìn)行比較??刂茊卧舍槍?duì)每一數(shù)據(jù)區(qū)段410a...410d設(shè)置相應(yīng)的位。一 旦所有的位已設(shè)置,那么可產(chǎn)生傳輸結(jié)束信號(hào)??蓪?shí)施可能的比較的任何其它組合。
圖5展示用于DMA控制器的初始化例行程序的實(shí)施例的流程圖。在第一步驟510 中,確定樣式模式是否被使用。如果沒有,那么例行程序分支到步驟520,其中存儲(chǔ)源 和目的地地址。在隨后的步驟530中,通過結(jié)束地址或區(qū)塊長度來確定傳輸?shù)拈L度,隨 后例行程序結(jié)束。如果樣式模式被使用,那么例行程序到達(dá)步驟540,其中設(shè)置源和目 的地。隨后在步驟550中,任選地設(shè)置傳輸?shù)淖畲箝L度,且在步驟560中存儲(chǔ)數(shù)據(jù)終止 樣式值。在步驟570中,設(shè)置樣式模式,且初始化例行程序結(jié)束。
圖6展示遵循圖5所示的初始化例行程序的DMA傳遞例行程序的實(shí)施例的流程圖。 例行程序開始于步驟610中,其中讀取開始地址下的源數(shù)據(jù)。在步驟620中將此數(shù)據(jù)寫 入到目的地地址。在步驟630中檢査樣式匹配模式是否己經(jīng)設(shè)置。如果沒有,那么使源 地址和目的地地址遞增,且在步驟660中使數(shù)據(jù)長度值遞減。在步驟670中檢查數(shù)據(jù)長 度值是否為0。如果是,那么傳遞結(jié)束,如果否,那么例行程序返回到步驟610。如果 樣式模式已經(jīng)設(shè)置,那么例行程序從步驟630分支到步驟650,在步驟650中檢査數(shù)據(jù) 是否與樣式匹配。如果發(fā)生匹配,那么傳遞結(jié)束。否則,例行程序繼續(xù)上述步驟640。
因此,本發(fā)明非常適合于實(shí)現(xiàn)所述目的且獲得所提到的結(jié)果和優(yōu)點(diǎn)以及其中固有的 其它結(jié)果和優(yōu)點(diǎn)。盡管已通過參考本發(fā)明的特定優(yōu)選實(shí)施例來描繪、描述且界定本發(fā)明, 但此類參考并不暗示對(duì)本發(fā)明的限制,且不應(yīng)推斷任何此限制。本發(fā)明能夠具有所屬領(lǐng) 域的一般技術(shù)人員將想到的形式和功能上的相當(dāng)多的修改、改動(dòng)和等效物。本發(fā)明的所描繪和描述的優(yōu)選實(shí)施例僅是示范性的,且不詳盡說明本發(fā)明的范圍。因此,希望本發(fā) 明僅由所附權(quán)利要求書的精神和范圍限制,從而提供對(duì)所有方面中的等效物的完全認(rèn) 定。
權(quán)利要求
1. 一種直接存儲(chǔ)器存取控制器,其包括數(shù)據(jù)寄存器,其用于從源向目的地地址傳遞數(shù)據(jù);樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所述樣式寄存器耦合;以及控制單元,其與所述比較器耦合且可操作以在所述比較器檢測到所述數(shù)據(jù)寄存器與所述樣式寄存器匹配的情況下停止數(shù)據(jù)傳遞。
2. 根據(jù)權(quán)利要求l所述的直接存儲(chǔ)器存取控制器,其進(jìn)一步包括用于將源或目的地地 址與預(yù)定義結(jié)束地址進(jìn)行比較的地址比較器。
3. 根據(jù)權(quán)利要求2所述的直接存儲(chǔ)器存取控制器,其進(jìn)一步包括用于從所述數(shù)據(jù)和地 址比較器的輸出信號(hào)中產(chǎn)生傳輸結(jié)束信號(hào)的邏輯構(gòu)件。
4. 根據(jù)權(quán)利要求1所述的直接存儲(chǔ)器存取控制器,其中所述樣式寄存器包括多個(gè)數(shù)據(jù) 區(qū)段,且所述數(shù)據(jù)比較器經(jīng)控制以將選定區(qū)段與所述數(shù)據(jù)寄存器進(jìn)行比較。
5. 根據(jù)權(quán)利要求1所述的直接存儲(chǔ)器存取控制器,其進(jìn)一步包括與所述數(shù)據(jù)寄存器耦 合的多個(gè)比較器。
6. 根據(jù)權(quán)利要求4所述的直接存儲(chǔ)器存取控制器,其進(jìn)一步包括與所述樣式寄存器和 所述數(shù)據(jù)寄存器耦合的多路復(fù)用器。
7. 根據(jù)權(quán)利要求6所述的直接存儲(chǔ)器存取控制器,其進(jìn)一步包括用于控制所述多路復(fù) 用器的控制單元。
8. —種微控制器,其包括中央處理單元;總線,其與所述中央處理單元耦合; 存儲(chǔ)器,其與所述總線耦合; 外圍單元,其與所述總線耦合;以及直接存儲(chǔ)器存取控制器,其與所述總線耦合,所述直接存儲(chǔ)器存取控制器包括數(shù)據(jù)寄存器,其用于從源向目的地地址傳遞數(shù)據(jù); 樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所述樣式寄存器耦合;以及 控制單元,其與所述比較器耦合且可操作以在所述比較器檢測到所述數(shù)據(jù)寄存 器與所述樣式寄存器匹配的情況下停止數(shù)據(jù)傳遞。
9. 根據(jù)權(quán)利要求8所述的微控制器,其進(jìn)一步包括用于將源或目的地地址與預(yù)定義結(jié) 束地址進(jìn)行比較的地址比較器。
10. 根據(jù)權(quán)利要求9所述的微控制器,其進(jìn)一步包括用于從所述數(shù)據(jù)和地址比較器的輸 出信號(hào)中產(chǎn)生傳輸結(jié)束信號(hào)的邏輯構(gòu)件。
11. 根據(jù)權(quán)利要求8所述的微控制器,其中所述樣式寄存器包括多個(gè)數(shù)據(jù)區(qū)段,且所述 數(shù)據(jù)比較器經(jīng)控制以將選定區(qū)段與所述數(shù)據(jù)寄存器進(jìn)行比較。
12. 根據(jù)權(quán)利要求8所述的微控制器,其進(jìn)一步包括與所述數(shù)據(jù)寄存器耦合的多個(gè)比較 器。
13. 根據(jù)權(quán)利要求11所述的微控制器,其進(jìn)一步包括與所述樣式寄存器和所述數(shù)據(jù)寄 存器耦合的多路復(fù)用器。
14. 根據(jù)權(quán)利要求13所述的微控制器,其進(jìn)一步包括用于控制所述多路復(fù)用器的控制 單元。
15. —種微控制器,其包括中央處理單元;第一總線,其與所述中央處理單元耦合; 外圍單元,其與所述第一總線耦合; 第二總線,其與所述中央處理單元耦合; 存儲(chǔ)器,其與所述第二總線耦合;以及直接存儲(chǔ)器存取控制器,其與所述第一和第二總線耦合,所述直接存儲(chǔ)器存取控 制器包括數(shù)據(jù)寄存器,其用于從源向目的地地址傳遞數(shù)據(jù); 樣式寄存器;數(shù)據(jù)比較器,其與所述數(shù)據(jù)寄存器和所述樣式寄存器耦合;以及 控制單元,其與所述比較器耦合且可操作以在所述比較器檢測到所述數(shù)據(jù)寄存 器與所述樣式寄存器匹配的情況下停止數(shù)據(jù)傳遞。
16. —種通過直接存儲(chǔ)器存取控制器執(zhí)行從源到目的地的多個(gè)數(shù)據(jù)的傳輸?shù)姆椒?,其?括步驟a) 確定是否使用了樣式檢測;b) 存儲(chǔ)源地址和目的地地址的開始地址;C)如果使用了樣式檢測,那么存儲(chǔ)樣式;否則存儲(chǔ)傳輸長度; d)從所述源地址讀取數(shù)據(jù);e) 將數(shù)據(jù)存儲(chǔ)在所述目的地地址中;f) 如果使用了樣式檢測,那么將所述數(shù)據(jù)與所述樣式比較,且在匹配時(shí)終止所 述傳輸;g) 使所述源和目的地地址遞增;h) 如果沒有使用樣式檢測,那么在已達(dá)到所述傳輸長度的情況下終止所述傳輸; 以及i) 重復(fù)步驟d) —h)。
17. 根據(jù)權(quán)利要求16所述的方法,其進(jìn)一步包括即使在使用了樣式檢測的情況下也使 用步驟h)。
18. 根據(jù)權(quán)利要求16所述的方法,其中將多個(gè)數(shù)據(jù)與多個(gè)數(shù)據(jù)樣式進(jìn)行比較,且只有 在所述多個(gè)數(shù)據(jù)與所述多個(gè)數(shù)據(jù)樣式匹配的情況下才終止所述傳輸。
19. 根據(jù)權(quán)利要求18所述的方法,其中所述多個(gè)數(shù)據(jù)樣式是循序數(shù)據(jù)樣式。
20. 根據(jù)權(quán)利要求19所述的方法,其中所述循序數(shù)據(jù)樣式包括連續(xù)數(shù)據(jù)序列。
全文摘要
一種直接存儲(chǔ)器存取控制器可包括用于從源向目的地地址傳遞數(shù)據(jù)的數(shù)據(jù)寄存器、樣式寄存器、與數(shù)據(jù)寄存器和樣式寄存器耦合的數(shù)據(jù)比較器,以及與所述比較器耦合的的控制單元,所述控制單元可操作以在所述比較器檢測到所述數(shù)據(jù)寄存器與所述樣式寄存器匹配的情況下停止數(shù)據(jù)傳遞。
文檔編號(hào)G06F13/28GK101506785SQ200780031380
公開日2009年8月12日 申請(qǐng)日期2007年8月16日 優(yōu)先權(quán)日2006年8月24日
發(fā)明者奈爾沙·拉杰巴爾提 申請(qǐng)人:密克羅奇普技術(shù)公司