用于直接存儲器訪問控制器的條件鏈接的制作方法
【專利摘要】本發(fā)明涉及用于直接存儲器訪問控制器的條件鏈接。某些實施例涉及直接存儲器訪問(DMA)控制器有關(guān)。DMA控制器包括具有系統(tǒng)總線接口并且被配置成從存儲器位置經(jīng)由系統(tǒng)總線接口讀取模式的總線控制器。模式比較邏輯將讀取的模式與至少一個預(yù)定的模式比較??刂七壿媽?dǎo)致總線控制器如果讀取的模式與預(yù)定的模式不同則通過系統(tǒng)總線接口處理第一條件鏈接,以及導(dǎo)致總線控制器如果讀取的模式與預(yù)定的模式不同則通過系統(tǒng)總線接口處理第二條件鏈接。
【專利說明】用于直接存儲器訪問控制器的條件鏈接
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及用于直接存儲器訪問控制器的條件鏈接。
【背景技術(shù)】
[0002]直接存儲器訪問(DMA)控制器允許在計算系統(tǒng)內(nèi)的硬件子系統(tǒng)以有限的努力(effort)從中央微處理器單元訪問存儲器。為了圖示一般的DMA功能性,考慮圖1A的示例,圖1A的示例圖示了數(shù)字系統(tǒng)100,數(shù)字系統(tǒng)100包括微處理器102、存儲器104、DMA控制器106、以及輸入/輸出塊108,所有這些都經(jīng)由系統(tǒng)總線110可操作地耦合。在沒有DMA控制器106的情況下,與大的數(shù)據(jù)傳送相關(guān)聯(lián)的連續(xù)的讀取和寫操作、例如在存儲器104內(nèi)復(fù)制數(shù)據(jù)或者向或從I/O塊108移動數(shù)據(jù)可以完全地占用微處理器102持續(xù)延長的時段。然而,在DMA控制器106就位的情況下,微處理器102針對DMA控制器106提供某些最小的編程,并且,在對控制器106進行編程之后,微處理器102可以在DMA控制器處理數(shù)據(jù)傳送的時候從事其他任務(wù)。
[0003]更特別地,為傳送數(shù)據(jù),DMA控制器106可以利用鏈表結(jié)構(gòu)150,鏈表結(jié)構(gòu)150存儲在存儲器104中,如圖1B中所示。該鏈表結(jié)構(gòu)150包括多個鏈接152 (例如,DMA鏈接1、DMA鏈接2、…、DMA鏈接N),其中每個鏈接包括數(shù)據(jù)字段154和引用字段156。數(shù)據(jù)字段154指向用于相應(yīng)鏈接的要被傳送的數(shù)據(jù),并且引用字段156指向鏈表結(jié)構(gòu)150中的下一個鏈接。在圖1A-1B的示例中,微處理器102用第一鏈接(DMA鏈接I)對DMA控制器106進行編程,并且DMA控制器106隨后傳送如DMA鏈接I的數(shù)據(jù)字段154中指定的數(shù)據(jù)。然后,DMA控制器106從第一鏈接的引用字段156標(biāo)識第二鏈接(DMA鏈接2)的位置,從存儲器104取回第二鏈接(DMA鏈接2),并且傳送如DMA鏈接2的數(shù)據(jù)字段中指定的數(shù)據(jù)。然后,DMA控制器106移到第三DMA鏈接上、第四DMA鏈接上,以此類推。在鏈表150中的所有鏈接已經(jīng)被處理之后(即,并且完成了完全的數(shù)據(jù)傳送),DMA控制器106可以標(biāo)記中斷(IRQ)以向微處理器102通知數(shù)據(jù)傳送完成。
[0004]雖然該常規(guī)的鏈表DMA技術(shù)允許微處理器102針對大數(shù)據(jù)傳送將某些計算努力卸載到DMA控制器106,但這些技術(shù)對于許多應(yīng)用而言仍然需要微處理器102針對DMA控制器106的正在進行的“保持持續(xù)(hold-holding)”或者管理。本公開的方面提供了展示自微處理器的更大獨立性的DMA控制器,并且因此,潛在地增強了系統(tǒng)性能。
【專利附圖】
【附圖說明】
[0005]圖1A示出了利用直接存儲器訪問(DMA)控制器的數(shù)字系統(tǒng)的框圖。
[0006]圖1B示出了常規(guī)的鏈表DMA結(jié)構(gòu)的圖。
[0007]圖2A示出了根據(jù)某些實施例的DMA控制器。
[0008]圖2B示出了根據(jù)某些實施例的條件鏈表的執(zhí)行。
[0009]圖3A示出了根據(jù)某些實施例的DMA控制器。
[0010]圖3B示出了根據(jù)某些實施例的條件鏈表的執(zhí)行。
[0011]圖4示出了根據(jù)某些實施例的具有DMA控制器的數(shù)字系統(tǒng)的框圖。
[0012]圖5示出了根據(jù)某些實施例的具有DMA控制器的數(shù)字系統(tǒng)的框圖。
【具體實施方式】
[0013]參照附圖做出了本文描述,其中貫穿全文一般地利用相同的參考標(biāo)號指代相同的元素,并且其中各種結(jié)構(gòu)不一定是按比例繪制的。在下文的描述中,為了解釋,記載了許多的具體細節(jié),以便促進理解。然而,對于本領(lǐng)域的普通技術(shù)人員可能是清楚的是,本文描述的一個或多個方面可以用程度較輕的這些具體細節(jié)實踐。在其他的情況下,在框圖中示出已知的結(jié)構(gòu)和設(shè)備以促進理解。
[0014]如在下文的更多細節(jié)中將理解,本公開涉及利用條件鏈接以傳送數(shù)據(jù)的DMA控制器。與其中連續(xù)的鏈接遵循嚴格的線性結(jié)構(gòu)(參見例如,圖1B)的常規(guī)的DMA鏈表結(jié)構(gòu)對比,條件DMA鏈表可以包括一個或多個只有某些條件滿足時才被處理的條件鏈接。
[0015]圖2A示出了根據(jù)某些實施例的DMA控制器200的示例。DMA控制器200包括具有系統(tǒng)總線接口 204的總線控制器202,以及控制寄存器206和模式比較邏輯208。DMA控制器200也包括第一模式存儲器元件210,諸如寄存器或者硬連線的(hardwired)數(shù)據(jù)值,其存儲一個或多個預(yù)定的感興趣的比特模式,以及第二模式存儲器元件212,諸如寄存器,以存儲從通過(from over)系統(tǒng)總線接口 204讀取的模式。條件鏈接(例如,條件鏈接1、條件鏈接2、……)或者到這樣的條件鏈接的指針被存儲在鏈接存儲器元件(例如214、216、……)中。
[0016]在操作期間,DMA控制器200從通過系統(tǒng)總線接口 204讀取比特模式,并且在第二模式存儲器元件212中存儲讀取的比特模式。在從通過系統(tǒng)總線接口 204讀取比特模式之后,模式比較邏輯208然后將在第二模式存儲器元件212中的讀取的比特模式與在第一模式存儲器元件210中存儲的預(yù)定模式進行比較以查看兩個模式是否匹配。如果模式的確匹配,那么模式比較邏輯208以第一條件鏈接(例如在第一鏈接存儲器元件214中存儲的)為基礎(chǔ)設(shè)置控制寄存器206。另一方面,如果模式是不同的,那么模式比較邏輯208以第二條件鏈接(例如在第二鏈接存儲器元件216中存儲的)為基礎(chǔ)設(shè)置控制寄存器206。第一和第二條件鏈接可以具有彼此不同的源和目的地指針。因此,DMA控制器200可以以從通過系統(tǒng)總線接口 204讀取的比特模式為基礎(chǔ)處理不同的條件鏈接,這些條件鏈接指向在不同的存儲器位置的數(shù)據(jù)。在許多應(yīng)用中,這些“條件”鏈接的選擇性處理向DMA控制器200增加附加的功能以及自主性,并且因此限制DMA控制器需要的處理器管理的量,由此潛在地改進系統(tǒng)性能。
[0017]在某些情況下,總線控制器202通過輪詢存儲器位置讀取在212中存儲的該比特模式,存儲器位置諸如控制寄存器或者外圍設(shè)備(peripheral)的狀態(tài)寄存器。在“輪詢”該存儲器位置中,將理解DMA控制器200重復(fù)地讀取該存儲器位置以檢查在其中存儲的比特模式中的改變。在沒有微處理器需要管理的情況下輪詢發(fā)生,并且因此,向DMA控制器200借出某些附加的自主性。典型地,通過系統(tǒng)總線接口 204以有規(guī)律的間隔完成輪詢,但是輪詢也可以以不規(guī)律的時間間隔完成。
[0018]雖然“輪詢”可以使DMA控制器200更自主,但是與僅僅基于中斷的DMA控制器相t匕,它也可以消耗在系統(tǒng)總線接口 204上的附加的帶寬。例如,雖然每個時鐘周期輪詢存儲器位置將允許DMA控制器200以檢測精確的時鐘周期,存儲器位置中的比特模式以該時鐘周期改變,但是該手段可以貫穿輪詢過程阻礙(tie up)系統(tǒng)總線。另一方面,通過很不頻繁地輪詢,DMA控制器200可能過遲地通過系統(tǒng)總線檢測比特模式的改變,或者甚至完全地錯過比特模式的改變。因此,為了為用戶提供DMA控制器200通過系統(tǒng)總線接口 204輪詢存儲器位置的速率中的某些靈活性,DMA控制器200的某些實施例包括設(shè)置輪詢速率的可編程定時器218。在被設(shè)置成初始值之后,定時器218可以遞增地“倒計數(shù)”并且僅當(dāng)定時器達到預(yù)定值(例如零)的時候才讀取存儲器位置。在讀取存儲器位置之后,定時器218重新設(shè)置為初始值,再一次倒計數(shù),并且當(dāng)再一次達到預(yù)定值的時候重新讀取存儲器位置。通過將定時器218設(shè)置為相對大的初始值,輪詢速率是相對低的(例如慢輪詢),其消耗系統(tǒng)總線上有限的帶寬,雖然具有比特模式改變的不精確的檢測。另一方面,通過將定時器218設(shè)置為相對小的初始值,輪詢速率是相對高的(例如快輪詢),其提供比特模式改變的相對精確的檢測,雖然消耗系統(tǒng)總線上的更多的帶寬。計數(shù)器可以替代地從某個初始值向上計數(shù)直到達到某個預(yù)定值,而非“倒計數(shù)”。
[0019]圖2B示出了可以如何處理條件鏈接的另一個示例。圖2B示出四個鏈接(例如第一鏈接250、第二鏈接252、第三鏈接254,以及第四鏈接256),其中第三和第四鏈接254、256指向為了簡單和清楚而沒有示出的附加的下游鏈接。每個鏈接都包括描述要執(zhí)行的數(shù)據(jù)傳送的數(shù)據(jù)字段以及指向在鏈表結(jié)構(gòu)中的要處理的下一個鏈接的引用字段。因此,第一鏈接引用字段258指向第二鏈接252,第二鏈接引用字段260指向第三鏈接254,并且第三鏈接引用字段262指向下游(未圖示)鏈接。然而,第四鏈接256不一定在第一到第三引用字段258-262中被指定,而是條件鏈接,如將在下文的更多細節(jié)中理解的那樣。
[0020]現(xiàn)在參照圖2A并發(fā)地描述如何處理圖2B的鏈接的更詳細的描述。為了處理這些鏈接,微處理器或者其他外圍設(shè)備向DMA控制寄存器206寫第一鏈接250的基礎(chǔ)地址(或者寫第一鏈接本身的內(nèi)容).當(dāng)接收第一鏈接250的地址(或者第一鏈接250的內(nèi)容)的時候,DMA控制器標(biāo)識描述由第一鏈接數(shù)據(jù)字段264指定的數(shù)據(jù)傳送的源地址和目的地地址,并且也標(biāo)識在第一鏈接引用字段258中的鏈接地址,在該地址存儲第二鏈接252。在從264標(biāo)識源和目的地地址之后,DMA控制器200開始從源地址向目的地地址傳送數(shù)據(jù),經(jīng)常以逐字方式和/或利用脈沖操作。例如,數(shù)據(jù)傳送可以通過如下發(fā)生:DMA控制器讀取起始于源基礎(chǔ)地址的連續(xù)的字并且遞增計數(shù)器以從源基礎(chǔ)地址加上偏移量而讀取連續(xù)的字以讀取與第一鏈接相對應(yīng)的數(shù)據(jù)大小,并且類似地針對連續(xù)字向目的地基礎(chǔ)地址加上偏移量寫數(shù)據(jù)字。
[0021]因為針對第一鏈接250從源向目的地傳送了數(shù)據(jù),所以模式比較邏輯208將每個傳送的數(shù)據(jù)字(或者多個數(shù)據(jù)字)的比特模式與在210中存儲的預(yù)定比特模式比較。只要傳送的數(shù)據(jù)字的比特模式與預(yù)定的比特模式不同,DMA控制器200就在由第一鏈接指定的數(shù)據(jù)傳送完成之后,經(jīng)常在沒有產(chǎn)生中斷的情況下,移到處理第二鏈接252。
[0022]在處理第二鏈接252中,DMA控制器標(biāo)識在第二鏈接數(shù)據(jù)字段266中指定的源和目的地地址,并且開始從源地址向目的地地址傳送數(shù)據(jù),同時將每個傳送的字與在210中存儲的預(yù)定的比特模式比較。只要傳送的數(shù)據(jù)的比特模式與在210中存儲的預(yù)定比特模式不同,DMA控制器就完成了在第二鏈接252中指定的數(shù)據(jù)傳送,并且及時移到連續(xù)的鏈接(例如 254、......)。
[0023]如果在任何時候,傳送的數(shù)據(jù)的比特模式與在210中存儲的比特模式匹配,那么DMA控制器200停止數(shù)據(jù)傳送,并且分支到交替的條件鏈接——此處是第四鏈接256 (參見線268)。該交替的條件鏈接可以是在216中存儲的默認值,并且其僅當(dāng)212和210之間發(fā)生比特模式匹配時被處理。例如,在某些實施例中,在210中存儲的預(yù)定比特模式可以指示最近傳送的數(shù)據(jù)字是文件結(jié)束或者包結(jié)束字,并且交替的條件鏈接256可以指向預(yù)期下一個文件或包期待所處的地址。因此,當(dāng)傳送的數(shù)據(jù)中的字在任何點處匹配預(yù)定的比特模式時,DMA控制器200跳至第四鏈接256,但是否則繼續(xù)處理由第一、第二和第三鏈接250-254組成的鏈表結(jié)構(gòu)。DMA控制器也可以在數(shù)據(jù)傳送正在發(fā)生的時候輪詢狀態(tài)或者控制寄存器,而不是比較在存儲器中實際傳送的數(shù)據(jù),并且因此如果輪詢的寄存器值與在210中的預(yù)定模式匹配,則分支到第四鏈接256。
[0024]雖然圖2A-2B圖示僅比較在210中存儲的單個的預(yù)定比特模式,但是該概念延伸至任何數(shù)目的預(yù)定比特模式,預(yù)定比特模式的每個都可以引起不同的條件鏈接的執(zhí)行。為此,圖3A示出了其中出現(xiàn)N個條件鏈接(參見302到306)的DMA控制器300的示例。為確定在給定時間要處理哪個條件鏈接,模式比較邏輯308可以將在312中存儲的通過系統(tǒng)總線讀取的比特模式與在各自的存儲器元件314到316中存儲的N-1個預(yù)定模式的每個比較。例如,在314中存儲的第一預(yù)定模式可能具有b ‘00001的數(shù)字值,并且與在302中的第一鏈接相對應(yīng),第二預(yù)定模式可能具有b ‘00010的數(shù)字值,并且與在304中的第二鏈接相對應(yīng),以此類推。如果從通過系統(tǒng)總線(310)讀取的比特模式與預(yù)定模式之一匹配,那么DMA控制器以與那個預(yù)定模式相對應(yīng)的條件鏈接為基礎(chǔ)執(zhí)行數(shù)據(jù)傳送。例如,如果從系統(tǒng)總線讀取b ‘0010的數(shù)字值,那么DMA控制器將執(zhí)行在條件鏈接2中指定的數(shù)據(jù)傳送。如果讀取的比特模式不與任何預(yù)定模式匹配,那么在某些實施例中可以處理默認條件鏈接(例如條件鏈接N)。因此,在DMA控制器中存儲的鏈接是“有條件的”,其中由DMA控制器實際執(zhí)行哪個鏈接取決于由DMA讀取的數(shù)據(jù)是否和預(yù)定模式之一匹配。
[0025]圖3B示出了與圖3A的實施例相對應(yīng)的鏈表結(jié)構(gòu)。稍微與圖2B類似,該鏈表結(jié)構(gòu)包括多個鏈接350-354,其中每個都有明確地指向鏈表結(jié)構(gòu)中的下一個順序鏈接的引用字段,而條件鏈接356和358的地址不一定在鏈接350-354 (或鏈表結(jié)構(gòu)的任何其他鏈接)中明確提及。只要不存在模式匹配,DMA控制器就繼續(xù)鏈接350-354的處理,但是當(dāng)模式匹配發(fā)生時,DMA控制器就跳至與匹配的模式相對應(yīng)的條件鏈接。
[0026]在某些實現(xiàn)中,DMA事務(wù)可以是環(huán)(例如無盡的事務(wù)),該環(huán)僅當(dāng)傳送的數(shù)據(jù)字與預(yù)定模式匹配的時候才停止。
[0027]為圖示示例上下文,示例上下文中這樣的DMA控制器可以是有利的,圖4示出了根據(jù)某些實施例的數(shù)字系統(tǒng)400。數(shù)字系統(tǒng)400包括微處理器402、存儲器404、DMA控制器406,以及外圍模塊408,這些的全部都是經(jīng)由系統(tǒng)總線410可操作地耦合的。在該示例中,為了圖示,存儲器404包括第一先進先出(FIF0M12和第二 FIFO 414。在某些實現(xiàn)中也可以出現(xiàn)可選的中斷控制器(未示出),其從DMA控制器406和多個各自的外圍設(shè)備(例如包括408)接收中斷請求(IRQ)并且賦予中斷請求優(yōu)先級。
[0028]為使有效的數(shù)據(jù)傳送實現(xiàn),微處理器402可以將第一條件鏈接編程到第一鏈接存儲器元件416中,將第二條件鏈接編程到第二存儲器元件418中,并且將預(yù)定模式編程到第一模式存儲器兀件420。在下文的不例中,在416中的第一條件鏈接指向第一 FIFO 412,并且在418中的第二條件鏈接指向第二 FIFO 414。替代地,第一和/或第二條件鏈接可以是硬編碼的(hard-coded),和/或預(yù)定I旲式可以是硬編碼的。例如,硬編碼可以通過將比特依靠于(tying)掩膜(mask)中的功率或者地線,或者通過在制造期間燒斷(blowing)保險絲以設(shè)置硬編碼值而完成。
[0029]在操作期間,在該示例中,外圍模塊408接收由包組成的數(shù)據(jù)流并且向第一 FIFO412或第二 FIFO 414寫每個包。當(dāng)外圍模塊408寫每個包之時,它更新它的狀態(tài)和/或控制寄存器422以指示是否已向第一 FIFO 412或第二 FIFO 414寫了最近的包。
[0030]嘗試以某個方式處理接收的包的DMA控制器406輪詢狀態(tài)或控制寄存器422并且將讀取的狀態(tài)或控制寄存器比特模式存儲在第二存儲器元件424中。如果在424中存儲的讀取的狀態(tài)或控制寄存器比特模式和在420中存儲的預(yù)定比特模式匹配,那么DMA控制器處理在416中的第一條件鏈接。例如,如果在422中(在424中讀取和存儲)的狀態(tài)/控制寄存器的值指示已經(jīng)向第一 FIFO 412寫了最近的包,并且因此DMA控制器406以在416中的第一條件鏈接為基礎(chǔ)設(shè)置它的控制寄存器426并且處理向第一FIFO 412剛剛寫的包,那么這可以發(fā)生。另一方面,如果在422中的讀取的狀態(tài)或控制寄存器比特模式和在420中的預(yù)定模式不匹配,那么DMA控制器處理在418中的第二條件鏈接。在該示例中,當(dāng)外圍模塊向422輸出指示已經(jīng)向第二 FIFO 414寫了最近的包的狀態(tài)/控制寄存器值(現(xiàn)在存儲在424中),并且因此,DMA控制器406以在418中的第二條件鏈接為基礎(chǔ)設(shè)置它的控制寄存器426并且處理向第二 FIFO 414剛剛寫的包的時候,這可以發(fā)生。第一和第二條件鏈接經(jīng)常是分離的鏈表結(jié)構(gòu)的一部分,因為第一條件鏈接不指向第二條件鏈接(或者反之亦然)。
[0031]如在存儲器404中存儲的第一和第二條件鏈接結(jié)構(gòu)可以每個都包括DMA控制信息和指針。例如,每個條件鏈接都可以包括指向第一源數(shù)據(jù)塊的基礎(chǔ)地址的源地址字段(加載到源寄存器428中),DMA控制器將從該第一源數(shù)據(jù)塊的基礎(chǔ)地址讀取數(shù)據(jù)。每個條件鏈接也包括指向第一目的地塊的基礎(chǔ)地址的目的地地址字段(加載到目的地寄存器430中),DMA控制器要向第一目的地塊的基礎(chǔ)地址寫第一源數(shù)據(jù)塊。每個條件鏈接也包括指定要傳送的源數(shù)據(jù)塊的大小的大小字段(加載到寄存器432中)。為使具有來自微處理器的有限的管理的傳送實現(xiàn),DMA控制器406在第一源數(shù)據(jù)塊的基礎(chǔ)地址處讀取第一數(shù)據(jù)字,并且然后向第一目的地塊的基礎(chǔ)地址寫該第一數(shù)據(jù)字。然后,DMA控制器遞增計數(shù)器以代表自第一基礎(chǔ)地址的偏移量,并且然后從基礎(chǔ)地址加該偏移量讀取第二數(shù)據(jù)字。然后向目的地基礎(chǔ)地址(加上偏移量)寫該第二數(shù)據(jù)字。通過連續(xù)地遞增計數(shù)器以留意偏移量而從源數(shù)據(jù)塊讀取附加的字并且向目的地數(shù)據(jù)塊寫附加的字。當(dāng)計數(shù)器值(或它的縮放版本)與連接中指定的數(shù)據(jù)大小相對應(yīng)的時候,停止數(shù)據(jù)傳送。
[0032]每個條件鏈接可以指向另一個鏈接以使鏈表產(chǎn)生。當(dāng)被看作集體時,每個鏈表的鏈接都可以“聚集”跨非毗連的存儲器位置分散的源數(shù)據(jù),和/或可以跨非毗連的目的地地址“分散”數(shù)據(jù)。在某些情況下,可以在一個連續(xù)的DMA操作中執(zhí)行第一和/或第二條件鏈接(以及任何與其相關(guān)聯(lián)的鏈表結(jié)構(gòu))而不產(chǎn)生任何中斷和/或不需要在數(shù)據(jù)傳送操作之間來自微處理器的指令。
[0033]雖然圖4僅圖示以讀取的狀態(tài)/控制比特模式是否與感興趣的預(yù)定比特模式匹配為基礎(chǔ)選擇的兩個條件鏈接,但是該概念延伸至任何數(shù)目的條件鏈接。因此,圖5示出示例DMA控制器406,其中出現(xiàn)N個條件鏈接,其中每個條件鏈接都指向在存儲器404中的N個FIFO的不同的一個。為確定在給定時間要處理哪個條件鏈接,模式比較邏輯419可以將從狀態(tài)或控制寄存器讀取的比特模式與在各自的存儲器元件中存儲的N-1個預(yù)定模式的每個比較。例如,第一預(yù)定模式可能具有b ‘00001的數(shù)字值,與當(dāng)外圍設(shè)備已經(jīng)向第一 FIFO(FIFO I)寫數(shù)據(jù)的時候向狀態(tài)/控制寄存器輸出的數(shù)字值相對應(yīng);第二預(yù)定模式可能具有b ‘00010的數(shù)字值,與當(dāng)外圍設(shè)備已經(jīng)向第二 FIFO (FIFO 2)寫數(shù)據(jù)的時候向狀態(tài)/控制寄存器輸出的數(shù)字值相對應(yīng),并且依此類推。如果從狀態(tài)或控制寄存器422讀取的比特模式,其在DMA 406內(nèi)的424中存儲,與在434內(nèi)存儲的預(yù)定模式之一匹配,那么DMA控制器執(zhí)行以與該預(yù)定模式相對應(yīng)的條件鏈接為基礎(chǔ)的數(shù)據(jù)傳送。例如,如果從狀態(tài)/控制寄存器422讀取b’ 0010的數(shù)字值,那么DMA控制器將從第二 FIFO讀取數(shù)據(jù)。如果讀取的模式不和任何的預(yù)定模式匹配,那么處理默認條件鏈接(例如條件鏈接N)。因此,在DMA控制器中存儲的鏈接是“有條件的”,其中由DMA控制器實際執(zhí)行哪個鏈接取決于滿足還是不滿足至少一個預(yù)定條件。
[0034]因此,將理解某些實施例涉及一種系統(tǒng)。系統(tǒng)包括耦合至系統(tǒng)總線的直接存儲器訪問(DMA)控制器,以及包括對與DMA控制器而言通過系統(tǒng)總線可訪問的狀態(tài)或控制寄存器的外圍設(shè)備。DMA控制器被配置成輪詢狀態(tài)或控制寄存器以確定狀態(tài)和控制模式。當(dāng)狀態(tài)或控制模式和預(yù)定模式匹配的時候,DMA控制器選擇性地處理第一條件鏈接,并且當(dāng)狀態(tài)或控制模式和預(yù)定模式不同的時候選擇性地處理第二條件鏈接。
[0035]另一實施例涉及一種直接存儲器訪問(DMA)控制器。DMA控制器包括具有系統(tǒng)總線接口的總線控制器,并且被配置成經(jīng)由系統(tǒng)總線接口讀取存儲器位置以確定模式。模式比較邏輯將確定的模式與至少一個預(yù)定模式比較。如果確定的模式與預(yù)定模式匹配,那么控制邏輯導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第一條件鏈接。如果確定的模式與預(yù)定模式不同,那么控制邏輯導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第二條件鏈接。
[0036]又一實施例涉及一種操作DMA控制器的方法。該方法經(jīng)由耦合至DMA控制器的系統(tǒng)總線讀取模式。方法將確定的模式與至少一個預(yù)定模式比較,其中在讀取模式之前確定預(yù)定模式。然后,如果確定的模式與預(yù)定模式匹配,那么方法處理第一條件鏈接,并且如果確定的模式與預(yù)定模式不同,那么處理第二、不同的條件鏈接。
[0037]應(yīng)理解在本文包含的實施例的描述中圖中示出的或本文描述的功能塊、設(shè)備、部件、電路元件或其他物理或功能單元之間的任何直接連接或耦合也可以通過間接的連接或耦合實現(xiàn),即包括一個或多個介入元素的連接或耦合。更進一步地,應(yīng)理解圖中示出的功能塊或單元在某些實施例中可以實現(xiàn)為分立電路,但是在其他實施例中也可以在共同的電路或共同的集成電路中完全地或者部分地實現(xiàn),或者在某些情況下也可以通過據(jù)此對處理器編程而聯(lián)合地實現(xiàn)。
[0038]應(yīng)注意,提供圖是為給予本發(fā)明的實施例的某些方面和特征的圖示,并且應(yīng)被認為僅是示意性的。特別地,圖中示出的元素不一定與彼此成比例,并且選擇圖中各種元素的放置是為了提供對各自的實施例的清楚理解,并且不應(yīng)解釋為必要地作為示出的各種部件和元素的實際的相對位置的代表。本文描述的各種實施例的特征可以彼此組合。另一方面,以多個特征描述實施例不應(yīng)解釋為指示為了實現(xiàn)本發(fā)明,所有那些特征都是必要的,因為其他實施例可以包括更少的特征和/或替代特征。
【權(quán)利要求】
1.一種直接存儲器訪問(DMA)控制器,包括: 總線控制器,其具有系統(tǒng)總線接口并被配置成經(jīng)由系統(tǒng)總線接口從存儲器位置讀取模式; 模式比較邏輯,被配置成將讀取的模式與至少一個預(yù)定模式比較;以及 控制邏輯,被配置成如果讀取的模式與預(yù)定模式不同則導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第一條件鏈接,并且進一步地被配置成如果讀取的模式與預(yù)定模式匹配則導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第二條件鏈接。
2.根據(jù)權(quán)利要求1的DMA控制器,還包括: 第一鏈接存儲器元件,用于存儲第一條件鏈接; 第二鏈接存儲器元件,用于存儲第二條件鏈接;以及 第三鏈接存儲器元件,用于存儲第三條件鏈接; 其中控制邏輯被配置成如果讀取的模式與第一預(yù)定模式匹配,那么導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第一條件鏈接,并且進一步地被配置成如果讀取的模式與第二預(yù)定模式匹配,那么導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第二條件鏈接,并且進一步地被配置成如果讀取的模式與第一和第二預(yù)定模式不同,那么導(dǎo)致總線控制器通過系統(tǒng)總線接口處理第三條件鏈接,其中第一和第二預(yù)定模式是不同的。
3.根據(jù)權(quán)利要求1的直接存儲器訪問(DMA)控制器,其中控制邏輯被配置成處理在耦合至系統(tǒng)總線接口的存儲器中的鏈表中布置的鏈接的序列,其中鏈表描述要由DMA控制器處理的數(shù)據(jù)傳送。
4.根據(jù)權(quán)利要求1的DMA控制器,其中第一條件鏈接指定數(shù)據(jù)大小和第一基礎(chǔ)地址,并且其中DMA控制器讀取開始于第一基礎(chǔ)地址的連續(xù)的字并且從第一基礎(chǔ)地址加上偏移量遞增計數(shù)器來讀取連續(xù)的字以讀取與第一鏈接相對應(yīng)的數(shù)據(jù)大小。
5.根據(jù)權(quán)利要求1的DMA控制器,其中讀取的模式對應(yīng)于根據(jù)輪詢速率從耦合至系統(tǒng)總線接口的外圍設(shè)備的狀態(tài)或控制寄存器讀取的狀態(tài)或控制比特模式。
6.根據(jù)權(quán)利要求5的DMA控制器,其中連續(xù)的輪詢讀操作之間的時間是可編程的,或者其中輪詢速率是可編程的。
7.根據(jù)權(quán)利要求6的DMA控制器,進一步地包括: 可編程定時器,其中編程至可編程定時器中的定時器值設(shè)置連續(xù)的輪詢讀操作之間的時間或者設(shè)置輪詢速率。
8.根據(jù)權(quán)利要求1的DMA控制器,其中第一條件鏈接包括在由多個鏈接組成的并且由DMA控制器當(dāng)前執(zhí)行的鏈表結(jié)構(gòu)中,并且其中第二條件鏈接不是在鏈表結(jié)構(gòu)中指定的。
9.一種操作直接存儲器訪問(DMA)控制器的方法,包括: 從通過耦合至DMA控制器的系統(tǒng)總線讀取模式; 將讀取的模式與至少一個預(yù)定模式比較,其中在讀取模式之前確定預(yù)定模式;以及 如果讀取的模式與預(yù)定模式匹配,則處理第一條件鏈接,并且如果讀取的模式與預(yù)定模式不同,則處理第二、不同的條件鏈接。
10.根據(jù)權(quán)利要求9的方法,其中從通過系統(tǒng)總線讀取模式包括輪詢耦合至系統(tǒng)總線的外圍設(shè)備的狀態(tài)或控制寄存器。
11.根據(jù)權(quán)利要求10的方法,進一步地包括: 將連續(xù)的輪詢讀取操作之間的時間設(shè)置為不同時間值或者將輪詢速率設(shè)置為不同的輪詢速率。
12.根據(jù)權(quán)利要求9的方法,進一步地包括: 將確定的模式與第一預(yù)定模式和第二預(yù)定模式比較; 如果確定的模式與第一預(yù)定模式匹配,則處理第一條件鏈接; 如果確定的模式與第二預(yù)定模式匹配,則處理第二條件鏈接;以及 如果確定的模式與第一預(yù)定模式和第二預(yù)定模式不同,則處理第三條件鏈接。
13.根據(jù)權(quán)利要求11的方法,其中連續(xù)地處理第一、第二和第三條件鏈接而在處理第一條件鏈接的第一時間與處理第三條件鏈接的第三時間之間不與微處理器交換通信。
14.一種系統(tǒng),包括: 直接存儲器訪問(DMA)控制器,耦合至系統(tǒng)總線;以及 外圍設(shè)備,包括對DMA控制器而言通過系統(tǒng)總線可訪問的狀態(tài)或控制寄存器; 其中DMA控制器被配置成輪詢狀態(tài)或控制寄存器以確定狀態(tài)或控制模式,并且被進一步地配置成當(dāng)狀態(tài)或控制模式與預(yù)定模式匹配的時候選擇性地處理第一條件鏈接,并且當(dāng)狀態(tài)或控制模式與預(yù)定模式不同的時候選擇性地處理第二條件鏈接。
15.根據(jù)權(quán)利要求14的系統(tǒng),其中第一條件鏈接指向第一地址,第一地址駐留在耦合至系統(tǒng)總線的第一存儲器元件內(nèi),并且其中第二條件鏈接指向第二、不同的地址,第二、不同的地址駐留在耦合至系統(tǒng)總線的第二存儲器元件內(nèi)。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中第一存儲器元件是第一先入先出(FIFO)。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中第二存儲器元件是第二FIFO,所述第二 FIFO存儲與第一 FIFO無關(guān)的數(shù)據(jù)。
18.根據(jù)權(quán)利要求14的系統(tǒng),進一步地包括: 微處理器,耦合至系統(tǒng)總線并且被配置成通過系統(tǒng)總線與DMA控制器通信;以及 其中DMA控制器連續(xù)地處理第一和第二條件鏈接而在處理第一條件鏈接的第一時間與處理第二條件鏈接的第二時間之間不與微處理器交換通信。
19.根據(jù)權(quán)利要求14的系統(tǒng),其中第一條件鏈接指定數(shù)據(jù)大小和第一基礎(chǔ)地址,并且其中DMA控制器在第一基礎(chǔ)地址處讀取第一數(shù)據(jù)字,并且遞增計數(shù)器以代表第一基礎(chǔ)地址加上連續(xù)的偏移量來讀取在第一條件鏈接中指示的數(shù)據(jù)的塊的連續(xù)的字,直到傳送了所述數(shù)據(jù)大小。
20.根據(jù)權(quán)利要求14的系統(tǒng),其中連續(xù)的輪詢讀取操作之間的時間是可編程的,或者其中輪詢速率是可編程的。
21.根據(jù)權(quán)利要求20的系統(tǒng),其中DMA控制器包括可編程定時器,其中編程至可編程定時器內(nèi)的定時器值設(shè)置連續(xù)的輪詢讀操作之間的時間或者設(shè)置輪詢速率。
【文檔編號】G06F13/28GK104133790SQ201410094302
【公開日】2014年11月5日 申請日期:2014年3月14日 優(yōu)先權(quán)日:2013年3月14日
【發(fā)明者】S.科塔姆, F.黑爾維希, H.茲維克 申請人:英飛凌科技股份有限公司