欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

調(diào)節(jié)直接存儲器存取描述符的執(zhí)行的制作方法

文檔序號:6526854閱讀:194來源:國知局
調(diào)節(jié)直接存儲器存取描述符的執(zhí)行的制作方法
【專利摘要】本發(fā)明涉及調(diào)節(jié)直接存儲器存取描述符的執(zhí)行。一種包括集成電路的裝置,其中集成電路包括處理核和直接存儲器存?。―MA)引擎。所述DMA引擎適于處理描述符以控制DMA通信。所述描述符包含指示與DMA通信相關(guān)聯(lián)的通信端點的數(shù)據(jù)。所述DMA引擎適于使用包含在所述描述符的至少一個中的其他數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
【專利說明】調(diào)節(jié)直接存儲器存取描述符的執(zhí)行
【技術(shù)領(lǐng)域】【背景技術(shù)】
[0001]用于計算機系統(tǒng)的系統(tǒng)存儲器與外圍組件之間的數(shù)據(jù)傳輸?shù)囊环N方法是采用中央處理單兀(CPU)作為傳輸媒介。例如,為了從系統(tǒng)存儲器向外圍組件傳輸數(shù)據(jù),CPU可以通過發(fā)起適當(dāng)?shù)淖x操作,從系統(tǒng)存儲器中檢索數(shù)據(jù),并發(fā)起適當(dāng)?shù)膶懖僮?,將檢索到的數(shù)據(jù)存儲在外圍組件的存儲器中。為了降低CPU開銷,計算機系統(tǒng)可以使用直接存儲器存取(direct memory access, DMA),其中,夕卜圍組件的DMA引擎直接存取系統(tǒng)存儲器以傳輸數(shù)據(jù)。CPU通常對DMA引擎編程,以便設(shè)置傳輸參數(shù),例如源地址和目的地址,以及要傳輸?shù)淖止?jié)數(shù)。

【發(fā)明內(nèi)容】

[0002]在一個示例性實施例中,一種技術(shù)包括利用描述符的執(zhí)行以控制直接存儲器存取(DMA)通信,以及利用來自描述符的至少一個的數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支(branching of descriptor execution)。
[0003]在另一個示例性實施例中,一種裝置包括存儲器,其用于存儲控制直接存儲器存取(DMA)通信的描述符。所述裝置包括控制電路,其使用描述符的至少一個中的數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
[0004]在另一個示例性實施例中,一種裝置包括集成電路,其包括處理核和直接存儲器存取(DMA)引擎。所述DMA引擎適于處理描述符以控制DMA通信。所述描述符包含指示與DMA通信相關(guān)聯(lián)的通信端點的數(shù)據(jù)。DMA引擎適于使用包含在所述描述符的至少一個中的其他數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
[0005]優(yōu)點和其他期望的功能從下列附圖、描述和實施例將變得顯而易見。
【專利附圖】

【附圖說明】
[0006]圖1和7是根據(jù)一個不例性實施例的基于微控制器單兀(MCU)的系統(tǒng)的不意圖。
[0007]圖2是根據(jù)一個示例性實施例的圖1的系統(tǒng)的MCU的示意圖。
[0008]圖3和6根據(jù)示例性實施例示出使用直接存儲器存取(DMA)描述符控制多個DMA描述符執(zhí)行路徑間的分支。
[0009]圖4根據(jù)一個示例性實施例示出一種調(diào)節(jié)用于DMA描述符執(zhí)行的執(zhí)行流的技術(shù)的流程圖。
[0010]圖5根據(jù)一個示例性實施例示出DMA描述符的示意圖。
【具體實施方式】
[0011]建立給定的直接存儲器存取(DMA)傳輸(或“循環(huán)”)的一種方法是,中央處理單元(CPU)使用傳輸參數(shù)如源和目標(biāo)地址、被傳輸數(shù)據(jù)的大小以及與傳輸相關(guān)聯(lián)的步幅(strides)對外圍組件的DMA引擎的寄存器進(jìn)行編程。建立DMA傳輸?shù)牧硪环N方法是為CPU將參數(shù)存儲在被稱為“DMA描述符”的存儲器數(shù)據(jù)結(jié)構(gòu)中。
[0012]一般來說,DMA描述符是由DMA引擎處理或執(zhí)行的數(shù)據(jù)結(jié)構(gòu),以達(dá)到將參數(shù)編程到DMA引擎中的目的,從而用于相關(guān)的DMA傳輸。給定的DMA描述符可以進(jìn)一步將DMA引擎引導(dǎo)或鏈接到由DMA引擎處理的下一個DMA描述符,以便一組DMA描述符可以被鏈接在一起,形成特定的DMA描述符執(zhí)行流或路徑。與寄存器編程相比,DMA描述符的具體優(yōu)點是多個鏈接的DMA描述符可以被建立在存儲器中,以便對DMA傳輸?shù)膶?yīng)序列編程。
[0013]本文公開的技術(shù)和系統(tǒng)使用包含在DMA描述符中的信息給予分支決定邏輯(例如,IF-THEN-ELSE邏輯),以便允許DMA引擎在多個潛在的DMA描述符執(zhí)行路徑之間選擇,從而進(jìn)一步潛在地降低CPU的參與。例如,利用本文所公開的DMA描述符信息,在執(zhí)行給定的DMA描述符和評估潛在的分支條件后,DMA引擎可以選擇:繼續(xù)由相應(yīng)的DMA描述符序列控制的重復(fù)DMA傳輸?shù)摹把h(huán)”;中斷循環(huán)并變換到空閑狀態(tài);或中斷循環(huán)并繼續(xù)由另一個DMA描述符序列控制的替代DMA傳輸。換句話說,例如,DMA引擎可以評估循環(huán)結(jié)束時的條件值(IF條件值等于“X”),執(zhí)行另一組DMA傳輸(IF條件值等于“X”,THEN執(zhí)行其他描述符),或終止DMA描述符循環(huán)并變換到空閑狀態(tài)(ELSE進(jìn)入空閑狀態(tài))。
[0014]允許在DMA描述符執(zhí)行流中做出分支決定對于降低CPU開銷會是特別有利的,這是由于不然CPU可能參與應(yīng)用程序執(zhí)行,或可以在空閑狀態(tài)掉電。例如,給定DMA描述符序列可以定義DMA傳輸序列,其重復(fù)特定次數(shù)以從分組無線電的無線接口傳輸數(shù)據(jù)。分支決定允許在循環(huán)中執(zhí)行的重復(fù)DMA傳輸?shù)囊粋€序列和另一個DMA傳輸序列之間轉(zhuǎn)換,其中,另一個DMA傳輸序列,例如,準(zhǔn)備將分組無線電進(jìn)入降低的功耗狀態(tài),而都不使用CPU來建立另一個DMA傳輸序列。
[0015]作為更具體的例子,圖1示出在示例性系統(tǒng)10中的MCU24。對于這個例子,MCU24控制一個或更多個組件70的各個方面,以響應(yīng)與組件70的通信。作為例子,根據(jù)特定應(yīng)用,組件70可以包括下列中的一個或更多個:電機,家用電器,庫存控制終端,計算機,平板機,智能功率表,無線接口,蜂窩接口,交互式觸摸屏用戶界面等等。MCU24的全部或部分組件可以是集成電路(IC)或半導(dǎo)體封裝30的部分。
[0016]如圖1所示,根據(jù)示例性實施例,MCU24包括DMA引擎152,其可以是MCU24的外圍組件(網(wǎng)絡(luò)接口,無線接口,通用輸入/輸出(GPIO)接口,等等)的一部分。DMA引擎152執(zhí)行DMA描述符,以達(dá)到在MCU24內(nèi)建立和啟動對應(yīng)的DMA傳輸?shù)哪康?。給定DMA傳輸可以是,例如,從包含DMA引擎152的外圍組件的存儲器到MCU24的系統(tǒng)存儲器的傳輸;從系統(tǒng)存儲器到外圍組件的存儲器的傳輸;在系統(tǒng)存儲器位置之間的傳輸;或外圍到外圍的傳輸。
[0017]參考圖2,根據(jù)一些實施例,MCU24的全部或一部分組件可以是集成電路(IC)30的部分。作為例子,MCU24的全部或一部分組件可以被構(gòu)造在單個芯片或多個芯片上。
[0018]在其組件中,MCU24包括處理核150和包含DMA引擎152的示例性外圍組件140。根據(jù)特定實施例,MCU24可以不包含圖2所示的任何組件,除了處理核150和外圍組件140以外;可以包含除了處理核150和外圍組件140以外的圖2中所示的一個或更多個組件;可以包含不同于圖2所示組件的其他和/或附加組件;等等。因此,可以考慮許多實施例,其都在所附權(quán)利要求的范圍內(nèi)。[0019]作為一個例子,處理核150可以是32位核,例如高級RISC機器(ARM)處理核,其執(zhí)行精減指令集計算機(RISC)指令集。一般來說,處理核150與MCU24的各個其他系統(tǒng)組件如存儲器控制器,或管理器160,通過系統(tǒng)總線130通信。一般來說,存儲器管理器160控制對MCU24的各個存儲器組件如高速緩存172、非易失性存儲器168 (例如,閃存存儲器)以及易失性存儲器164 (例如,靜態(tài)隨機存取存儲器(SRAM))的存取。
[0020]需要指出的是,圖2示出MCU架構(gòu)的簡化表示,這是由于根據(jù)進(jìn)一步的實施例,MCU24可以具有未在圖2中不出的許多其他組件、網(wǎng)橋(bridges)、總線等等。例如,根據(jù)一些實施例,MCU24可以具有總線矩陣模塊,其實施從屬側(cè)仲裁并被用于調(diào)節(jié)對MCU24的存儲器器件的存取。
[0021]根據(jù)一些實施例,MCU24包括與I/O端子傳輸模擬和數(shù)字信號的模擬和數(shù)字組件90。所述模擬組件可以包括接收模擬信號的各種組件,例如模數(shù)變換器(ADC)和比較器;而且MCU24可以包含提供模擬信號的模擬組件,例如電流驅(qū)動器。
[0022]MCU24的數(shù)字組件可以與處理核150通過系統(tǒng)總線130通信。作為例子,所述數(shù)字組件可以包括通用串行總線(USB)接口、通用異步接收器/發(fā)送器(UART)、系統(tǒng)管理總線接口(SMB)、串行外設(shè)接口(SPI)等等。一般來說,這些數(shù)字組件經(jīng)由I/O端子91與MCU24外部的器件通信。根據(jù)示例性實施例,MCU24包括多路復(fù)用器94,其用于可編程分配模擬和數(shù)字組件90的端子到MCU24的I/O端子40和50。
[0023]如圖2所示,根據(jù)一些實施例,待處理的DMA描述符100可以存儲在易失性存儲器164中。根據(jù)示例性實施例,DMA引擎152可以將這些待處理的DMA描述符100中的一個或更多個傳輸?shù)揭?52的存儲器中,供執(zhí)行。需要指出的是,DMA引擎152可以從易失性存儲器164檢索DMA描述符100,雖然根據(jù)進(jìn)一步的實施例,處理核150可以從易失性存儲器164檢索DMA描述符150并將DMA描述符100存儲在DMA引擎的存儲器中。
[0024]參考圖3并結(jié)合圖2,根據(jù)一個示例性實施例,DMA引擎152順序執(zhí)行DMA描述符100,該順序由圖3中的執(zhí)行流160描述。對于這個具體例子,執(zhí)行流160包括兩個DMA描述符執(zhí)行路徑:定義N個DMA描述符100的執(zhí)行序列(圖3的例子中示出的DMA描述符100-1,100-2..100-N)的第一 DMA描述符執(zhí)行路徑170 ;以及第二或替代DMA描述符執(zhí)行路徑172(在圖3的例子中示出的示例性DMA描述符100-N+l...100P)。在這種方式中,對于本文公開的具體例子,DMA引擎152首先重復(fù)執(zhí)行對應(yīng)于DMA描述符100-1到100-N以及DMA描述符執(zhí)行路徑170的一組DMA傳輸。
[0025]當(dāng)結(jié)束循環(huán)條件滿足時,DMA引擎152終止處理對應(yīng)于DMA描述符執(zhí)行路徑170的DMA描述符,并開始處理對應(yīng)于DMA執(zhí)行流路徑172的DMA描述符100-N+1到100-P。更為具體地,根據(jù)一個不例性實施例,由于信息包含在DMA描述符100-N中,每次DMA引擎152處理DMA描述符100-N時,DMA引擎152基于條件值評估IF-THEN-ELSE條件分支決定。例如,這個條件值可以是DMA引擎152已經(jīng)重復(fù)DMA描述符執(zhí)行路徑170的次數(shù),并且所述決定可以包括DMA引擎152測試這個次數(shù),以便確定所述次數(shù)是否超出編程閥值。如果沒有,DMA引擎152在循環(huán)的另一個迭代中處理DMA描述符100-N。否則,DMA引擎152可以,例如變換到空閑狀態(tài),或處理DMA描述符100-N+1,以變換到DMA描述符執(zhí)行路徑172。
[0026]根據(jù)示例性實施例,如圖3中的示例性DMA描述符100_1所示,一般來說,描述符100包含四個字段(作為例子,四個一個字的字段),以指定相關(guān)聯(lián)的DMA傳輸?shù)膮?shù)并控制哪一個DMA描述符100,如果有的話,接下來被處理:控制字段162,其包含表示用于DMA傳輸?shù)囊粋€或更多個命令的數(shù)據(jù);源字段164,其包含指定用于DMA傳輸?shù)脑吹刂返臄?shù)據(jù);目標(biāo)字段166,其包含指定用于DMA傳輸?shù)哪繕?biāo)地址的數(shù)據(jù);以及鏈接字段168,其一般包含控制使用到下一個DMA描述符100的順序或非順序鏈接的數(shù)據(jù)。如下所述,根據(jù)一個示例性實施例,控制字段162和鏈接字段166包含調(diào)節(jié)由DMA引擎152做出的條件分支和循環(huán)決定的數(shù)據(jù)。
[0027]作為一個更具體的例子,根據(jù)一個示例性實施例,控制字段162可以包含指定用于調(diào)節(jié)由DMA引擎152做出的條件分支和循環(huán)決定的目的下列參數(shù)的數(shù)據(jù)。循環(huán)計數(shù)器參數(shù)154指定循環(huán)計數(shù)值(這里被稱為“L00P_CNT[7:0] ”),并由DMA引擎152使用以跟蹤與DMA描述符100相關(guān)聯(lián)的DMA傳輸被執(zhí)行的迭代次數(shù),假設(shè)循環(huán)使能參數(shù)156 (具有被稱為“LE”的值)允許發(fā)生循環(huán)。如果循環(huán)被允許(LE=EN),DMA引擎152可以,例如,遞減L00P_CNT [7:0]計數(shù)值,以便跟蹤在所述執(zhí)行流退出循環(huán)之前,DMA描述符100的重復(fù)集合或循環(huán)被DMA引擎152處理的次數(shù)。因此,L00P_CNT[7:0]值表示DMA引擎152可以為了做出分支決定而測試的潛在的條件值,下面將進(jìn)一步闡述。遞減循環(huán)計數(shù)器參數(shù)155指定一個值(在本文中,被稱為“DEC_L00P_CNT”),其在當(dāng)與DMA描述符100關(guān)聯(lián)的DMA傳輸完成時,控制L00P_CNT[7:0]值是否遞減。因此,例如,DMA描述符執(zhí)行路徑170的最后一個DMA描述符100-N可以使DMA引擎152遞減L00P_CNT[7:0]值。
[0028]一般來說,在用于當(dāng)前執(zhí)行的DMA描述符100的DMA傳輸完成后,鏈接控制參數(shù)158 (具有值,在這里被稱為“LINK_SEQUENTIAL”)控制DMA引擎的到下一個DMA描述符100的鏈接。在這個方式中,根據(jù)一個示例性實施例,可以出現(xiàn)兩種鏈接類型。第一種鏈接類型是順序鏈接,這意味著要被執(zhí)行的下一個DMA描述符100位于下一個相鄰的DMA描述符存儲器位置。例如,一組DMA描述符100可以被順序存儲在相鄰存儲器中。作為一個例子,假設(shè)四個字長度的DMA描述符,如果用于當(dāng)前正被處理的DMA描述符100的LINK_SEQUENTIAL值指示順序?qū)ぶ?LINK_SEQUENTIAL=SQTL),那么一般來說,在當(dāng)前DMA傳輸完成后,DMA描述符引擎152從(當(dāng)前正被執(zhí)行的DMA描述符100的)當(dāng)前基址遞增其DMA描述符存儲器地址指針?biāo)膫€字以獲取下一個DMA描述符100的地址。
[0029]第二種鏈接類型是非順序鏈接,這意味著鏈接地址參數(shù)157 (在這里被稱為LINK_ADDRESS[29:0])指定要被執(zhí)行的下一個DMA描述符100的存儲器位置。當(dāng)LINK_SEQUENTIAL值指示非順序?qū)ぶ窌r(LINK_SEQUENTIAL=LINK),那么在當(dāng)前的DMA傳輸完成后,LINK_ADDRESS[29:0]值指定用于要被執(zhí)行的下一個字對齊的DMA描述符100的絕對地址。
[0030]需要指出的是,對于給定的DMA描述符執(zhí)行流的開始的第一 DMA描述符100,LINK_SEQUENTIAL值可以被編程以指定順序或非順序模式,并且DMA描述符100的起始地址可以被編程到描述符100的LINK_ADDRESS[29:0]值中。這個執(zhí)行流中后續(xù)執(zhí)行的DMA描述符100可以指定順序鏈接,因此可以通過使LINK_ADDRESS[29:0]值增加四以使用LINK_ADDRESS [29:0]值,并完成每個DMA循環(huán)。此外,正如下面進(jìn)一步所述,當(dāng)L00P_EN值使能循環(huán)并且STOP或ELSE分支條件達(dá)到時(由L00P_CNT[7:0]計數(shù)值達(dá)到零標(biāo)示),DMA引擎152 可以忽略 LINK_ADDRESS [29:0]值。
[0031]根據(jù)一個示例性實施例,在當(dāng)前DMA描述符執(zhí)行流完成后,DMA描述符100的鏈接停止參數(shù)159 (具有在這里被稱為“LINK_STOP”的值)可以被用于選擇性使能到下一個DMA描述符100的鏈接,正如LINK_SEQUENTIAL值所定義的一樣。在這個方式下,根據(jù)一個示例性實施例,如果在當(dāng)前執(zhí)行路徑完成后,LINK_STOP允許鏈接(LINK_STOP=DIS),那么在當(dāng)前DMA傳輸完成后,DMA引擎152鏈接到下一個DMA描述符執(zhí)行流的DMA描述符100。但是,如果在當(dāng)前DMA執(zhí)行路徑結(jié)束時有以下幾種情況,則鏈接終止:1.循環(huán)操作被禁止(LOOP_EN=DIS);或2.循環(huán)操作被使能(LOOP_EN=EN)并且已經(jīng)達(dá)到循環(huán)結(jié)束(LOOP_CNT[7:0]=0)。
[0032]根據(jù)一個示例性實施例,在當(dāng)前DMA描述符執(zhí)行循環(huán)流終止或結(jié)束時,DMA描述符100的參數(shù)可用于控制兩種類型的條件分支:L00P_ST0P分支,在其中,DMA描述符100執(zhí)行終止并且DMA引擎152變換到空閑狀態(tài);以及L00P_ELSE分支,在其中,DMA引擎152開始執(zhí)行另一個DMA執(zhí)行流。
[0033]更為具體地,假設(shè)DMA引擎152在循環(huán)中正在執(zhí)行DMA描述符100,而L00P_CNT[7:O]計數(shù)值是非零的,循環(huán)繼續(xù)。當(dāng)L00P_CNT[7:0]計數(shù)值達(dá)到零并且LINK_ST0P參數(shù)禁止鏈接(LINK_ST0P=EN)時,那么發(fā)生LINK_ST0P分支,從而使DMA引擎152空閑。繼續(xù)這個循環(huán)執(zhí)行流的例子,當(dāng)L00P_CNT[7:0]計數(shù)值達(dá)到零并且LINK_ST0P參數(shù)使能鏈接(LINK_ST0P=DIS)時,那么DMA引擎152以相反方式解譯LINK_SEQUENTIAL值,以確定另一個執(zhí)行流的下一個DMA描述符100的地址。在這種方式中,如果LINK_SEQUENTIAL值指示順序?qū)ぶ?LINK_SEQUENTIAL=SQTL),那么L00P_ELSE決定包括DMA引擎152使用LINK_ADDRESS[29:0]值以用于非順序?qū)ぶ?。如果LINK_SEQUENTIAL值指示非順序?qū)ぶ?LINK_SEQUENTIAL=LINK),那么 L00P_ELSE 決定包括 DMA 引擎 152 忽略 LINK_ADDRESS [29:0]并訪問存儲器中的下一個DMA描述符100。
[0034]作為一個更具體的例子,DMA引擎152可以在形成循環(huán)的DMA描述符執(zhí)行流170中開始處理圖3的N個描述符100的集合(在圖3中示出的描述符100-1,100-2...100-N)。換句話說,根據(jù)所述循環(huán),DMA引擎152執(zhí)行DMA描述符100-1到100-N,從而以所述順序執(zhí)行相關(guān)聯(lián)的DMA傳輸,接著,如果L00P_CNT[7:0]計數(shù)器值在DMA描述符100-N處理后是非零,則DMA引擎152繼續(xù)隨后處理DMA描述符100-1。然而,如果在處理DMA描述符100-N后,L00P_CNT[7:0]計數(shù)器值是零,則DMA引擎152基于LINK_ST0P值做出分支決定,如上所述。
[0035]通過這樣的方式,對于圖3的例子,DMA描述符100-N的LINK_ST0P值被禁止(LINK_ST0P=DIS),從而允許L00P_ELSE到另一個執(zhí)行流172,以示例性DMA描述符100-N+1開始。對于這個例子,DMA描述符100-N的LINK_SEQUENTIAL值指示非順序鏈接,這被用于實現(xiàn)在DMA描述符執(zhí)行流172中的循環(huán)。因此,顛倒用于L00P_ELSE分支的LINK_SEQUENTIAL值的含義,DMA引擎152使用順序鏈接檢索DMA描述符100-N+1,即執(zhí)行路徑172的第一描述符。
[0036]需要指出的是,作為另一個例子,執(zhí)行路徑170可以具有循環(huán)計數(shù)一(因此,被執(zhí)行一次),并且對于這個例子,DMA描述符100-N的LINK_SEQUENTIAL值可以指示順序鏈接,從而使DMA引擎152在執(zhí)行路徑170結(jié)束時采用非順序?qū)ぶ?即,使DMA引擎152使用由LINK_ADDRESS[29:0]值指示的地址)獲取DMA描述符100-N+1的地址。因此,可以考慮許多實施例,其在所附權(quán)利要求的范圍內(nèi)。
[0037]因此,參考圖4,根據(jù)示例性實施例,根據(jù)塊204,技術(shù)200包括使用描述符的執(zhí)行控制DMA信道通信。根據(jù)塊208,所述描述符的數(shù)據(jù)被用于控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
[0038]考慮其他的實施例,并且所述其他實施例在所附權(quán)利要求的范圍內(nèi)。例如,根據(jù)一些實施例,可以使用圖5中所述的替代描述符310。與描述符100類似,描述符310包括控制320、源322、目標(biāo)324和鏈接326字段。但是,控制320和鏈接326包含用于控制條件分支目的的不同參數(shù),如下面所述。
[0039]尤其是,DMA描述符100的鏈接順序參數(shù)158在DMA描述符310中被鏈接模式參數(shù)340替換,其中鏈接模式參數(shù)340具有被稱為“LINK_M0DE”的值。代替控制順序或非順序?qū)ぶ?,LINK_M0DE值選擇相對尋址或絕對尋址,使用LINK_ADDRESS[29:0]值作為基地址,鏈接到要被處理的下一個DMA描述符。LINK_ST0P值可以進(jìn)一步用于控制條件分支決定。
[0040]更為具體地,假設(shè)L00P_EN值允許(L00P_EN=EN)循環(huán)型DMA描述符執(zhí)行路徑,則LINK_M0DE值控制鏈接回到循環(huán)的第一 DMA描述符310。然而,當(dāng)循環(huán)結(jié)束(當(dāng)L00P_CNT [7:O]計數(shù)值是零)時,對于這個示例性實施例,DMA引擎152忽略LINK_M0DE值并允許LINK_STOP和LINK_M0DE值控制兩種條件鏈接:當(dāng)LINK_ST0P值使能(LINK_ST0P=EN)鏈接的停止和DMA引擎152的空閑時的L00P_ST0P條件;以及當(dāng)LINK_ST0P值不停止所述鏈接,以及DMA引擎152忽略由LINK_M0DE值指示的尋址,相反,使用順序?qū)ぶ份d入下一個DMA描述符310時的L00P_ELSE條件。因此,在正常循環(huán)操作期間,當(dāng)在所述循環(huán)結(jié)尾處評估L00P_ELSE分支條件時,DMA引擎152使用LINK_M0DE值控制DMA描述符鏈接并忽略LINK_M0DE值。
[0041]根據(jù)一個示例性實施例,LINK_M0DE值是只讀值,其反映從最后一個鏈接的DMA描述符310檢索的最后一個LINK_M0DE值,表示當(dāng)前的LINK_ADDRESS[29:0]值是絕對地址還是偏離之前的鏈接地址的相對地址。當(dāng)LINK_M0DE值指示絕對尋址(LINK_M0DE=ABS)時,那么,從最后一個DMA描述符310檢索的最后鏈接地址值是絕對地址值,其已經(jīng)被加載到LINK_ADDRESS[29:0]值中。當(dāng) LINK_M0DE 值指示相對尋址(LINK_M0DE=REL)時,那么,從DMA描述符310提取的最后鏈接地址值是相對地址值。
[0042]根據(jù)一個示例性實施例,對于鏈接的相對值,LINK_ADDRESS[29:0]值的最低有效位(例如,最低有效16位)被解譯為二的補數(shù),其指示四個字偏離當(dāng)前描述符結(jié)構(gòu)的基地址的數(shù)量。DMA引擎152將當(dāng)前地址和偏移量相加,并將結(jié)果存儲在LINK_ADDRESS[29:0]字段中,以指向下一個DMA描述符310的基地址。
[0043]當(dāng)允許鏈接時,LINK_ST0P值允許到下一個DMA執(zhí)行流的鏈接,其由當(dāng)前DMA傳輸完成后的LINK_M0DE值定義。如果LINK_ST0P參數(shù)禁止鏈接,則如果循環(huán)操作被禁止或如果被使能,并且所述循環(huán)已經(jīng)達(dá)到結(jié)束以及L00P_CNT[7:0]字段為零,那么,在當(dāng)前DMA傳輸完成后,DMA描述符執(zhí)彳了終止。
[0044]需要指出的是,對于這個特定的實施例,當(dāng)所述循環(huán)使能參數(shù)被使能并且STOP或ELSE條件達(dá)到時(由L00P_CNT[7:0]字段為零所表示),LINK_ADDRESS[29:0]字段被忽略。
[0045]因此,參考圖6,根據(jù)一個示例性實施例,圖5的DMA描述符310可以闡述示例性執(zhí)行流350。示例性執(zhí)行流350具有兩個DMA描述符執(zhí)行路徑360和370。執(zhí)行路徑360由LINK_M0DE值控制。當(dāng)對執(zhí)行路徑370進(jìn)行變換時,LINK_M0DE值被忽略,并且執(zhí)行默認(rèn)為順序?qū)ぶ贰?br> [0046]參考圖7,根據(jù)一些實施例,MCU24可以是控制電機474的系統(tǒng)400的部分。在這個方式中,MCU24可以生成/接收針對電機接口 370的控制的輸入和輸出信號(I/O信號),其中電機接口 370生成和接收針對操作電機474的信號。例如,MCU24可以在其I/O端子454處產(chǎn)生信號從而與電機接口 470的驅(qū)動器、傳感器等通信;并且關(guān)于這個通信,MCU24的I/O端子454可以經(jīng)由一個或更多串行總線傳輸波形(例如,脈寬調(diào)制(PWM)信號)、接收感測的電流和電壓、傳輸數(shù)據(jù)等。MCU24可以進(jìn)一步包括,例如,其他I/O端子440,其用于生成/接收信號以和用戶控制接口 476通信,如達(dá)到傳輸電機74和電機接口 470的狀態(tài)的目的;傳送檢測到的故障狀態(tài);接收用戶指示的命令和信號;等等。
[0047]雖然本文僅描述了數(shù)量有限的實施例,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,受益于本公開,將得出許多更改和變化。所附權(quán)利要求覆蓋所有這樣的更改和變化是可以預(yù)期的。
【權(quán)利要求】
1.一種方法,其包括: 使用描述符的執(zhí)行控制直接存儲器存取通信;以及 使用來自所述描述符中的至少一個的數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
2.根據(jù)權(quán)利要求1所述的方法,其中使用所述數(shù)據(jù)包括,使用所述數(shù)據(jù)以控制與所述多個執(zhí)行路徑的選擇相關(guān)的if-then-else決定。
3.根據(jù)權(quán)利要求1所述的方法,其中使用所述數(shù)據(jù)包括: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量以及使用鏈接參數(shù)的第一解譯定義次序,在所述次序中,所述描述符的至少一些利用所述第一執(zhí)行路徑被執(zhí)行;以及 使用所述鏈接參數(shù)的第二解譯使所述描述符執(zhí)行沿著所述多個執(zhí)行路徑的第二執(zhí)行路徑,以響應(yīng)所述循環(huán)計數(shù)器指示所述數(shù)量的重復(fù)執(zhí)行的終止。
4.根據(jù)權(quán)利要 求3所述的方法,其中使用所述第一解譯包括使用順序描述符尋址和鏈接描述符尋址中的一個,以及使用第二解譯包括使用鏈接描述符尋址和順序描述符尋址中的另一個。
5.根據(jù)權(quán)利要求1所述的方法,其中使用所述數(shù)據(jù)包括: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量和使用鏈接模式參數(shù)控制是使用相對尋址還是絕對尋址;以及 使用預(yù)定義尋址以使所述描述符執(zhí)行沿著第二執(zhí)行路徑,以響應(yīng)所述數(shù)量的重復(fù)執(zhí)行的終止。
6.根據(jù)權(quán)利要求1所述的方法,其中使用所述預(yù)定義尋址包括使用順序描述符尋址。
7.一種裝置,其包括: 存儲器,其存儲控制直接存儲器存取通信的描述符;和 控制電路,其使用所述描述符的至少一個中的數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
8.根據(jù)權(quán)利要求7所述的裝置,其中所述控制電路適于: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量以及使用鏈接參數(shù)的第一解譯定義次序,在所述次序中,所述描述符的至少一些利用所述第一執(zhí)行路徑被執(zhí)行;以及 使用所述鏈接參數(shù)的第二解譯,以使所述描述符執(zhí)行沿著所述多個執(zhí)行路徑的第二執(zhí)行路徑,以響應(yīng)所述循環(huán)計數(shù)器指示所述數(shù)量的重復(fù)執(zhí)行的終止。
9.根據(jù)權(quán)利要求7所述的裝置,其中所述控制電路適于使用順序描述符尋址和非順序描述符尋址中的一個,以及使用所述順序描述符尋址和非順序?qū)ぶ分械牧硪粋€,以響應(yīng)所述數(shù)量的重復(fù)執(zhí)行的終止。
10.根據(jù)權(quán)利要求7所述的裝置,其中所述控制電路適于: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量和使用鏈接模式參數(shù)控制是使用相對尋址還是絕對尋址;以及 使用預(yù)定義尋址以使所述描述符執(zhí)行沿著第二執(zhí)行路徑,以響應(yīng)所述數(shù)量的重復(fù)執(zhí)行的終止。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述預(yù)定義尋址包括順序描述符尋址。
12.一種裝置,其包括: 集成電路,其包括處理核和直接存儲器存取引擎,即DMA引擎, 其中所述DMA引擎適于: 處理描述符以控制直接存儲器存取通信,即DMA通信,所述描述符包含指示與所述DMA通信關(guān)聯(lián)的通信端點的數(shù)據(jù);以及 使用包含在所述描述符的至少一個中的其他數(shù)據(jù)控制多個執(zhí)行路徑間的描述符執(zhí)行的分支。
13.根據(jù)權(quán)利要求12所述的裝置,其中所述DMA引擎適于: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量以及使用鏈接參數(shù)的第一解譯定義次序,在所述次序中,所述描述符的至少一些利用所述第一執(zhí)行路徑被執(zhí)行;以及 使用所述鏈接參數(shù)的第二解譯,以使所述描述符執(zhí)行沿著所述多個執(zhí)行路徑的第二執(zhí)行路徑,以響應(yīng)所述循環(huán)計數(shù)器指示所述數(shù)量的重復(fù)執(zhí)行的終止。
14.根據(jù)權(quán)利要求12所述的裝置,其中所述DMA引擎適于使用順序描述符尋址和非順序描述符尋址中的一個,以及使用所述順序描述符尋址和非順序描述符尋址中的另一個,以響應(yīng)所述循環(huán)計數(shù)器的終止。
15.根據(jù)權(quán)利要求12所述的裝置,其中所述DMA引擎適于: 使用循環(huán)計數(shù)器調(diào)節(jié)使用所述多個執(zhí)行路徑的第一執(zhí)行路徑的至少一個所述描述符的重復(fù)執(zhí)行數(shù)量和使用鏈接模式參數(shù)控制是使用相對尋址還是絕對尋址;以及 使用預(yù)定義尋址以使所述描述符執(zhí)行沿著第二執(zhí)行路徑,以響應(yīng)所述數(shù)量的重復(fù)執(zhí)行的終止。
16.根據(jù)權(quán)利要求15所述的裝置,其中DMA描述符進(jìn)一步包含指示與所述DMA通信關(guān)聯(lián)的字節(jié)傳輸大小的數(shù)據(jù)。
17.根據(jù)權(quán)利要求12所述的裝置,其進(jìn)一步包括: 存儲器,其中所述處理核和直接存儲器存取引擎的每個適于獨立地訪問所述存儲器。
18.根據(jù)權(quán)利要求17所述的裝置,其中所述描述符的至少一個被存儲在所述存儲器中。
19.根據(jù)權(quán)利要求18所述的裝置,其中所述直接存儲器存取引擎適于從所述存儲器檢索所述至少一個描述符。
20.根據(jù)權(quán)利要求12所 述的裝置,其中所述直接存儲器存取引擎適于執(zhí)行所述描述符,以便控制與所述多個執(zhí)行路徑的選擇相關(guān)的if-then-else決定。
【文檔編號】G06F13/28GK103914416SQ201310750275
【公開日】2014年7月9日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2012年12月31日
【發(fā)明者】T·E·利奇, P·I·扎瓦爾尼 申請人:硅實驗室公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
三门峡市| 高邑县| 历史| 博罗县| 浠水县| 湘乡市| 武隆县| 思茅市| 永川市| 偏关县| 甘南县| 孙吴县| 剑川县| 称多县| 吴江市| 德惠市| 山阳县| 祁阳县| 双牌县| 沙洋县| 曲阳县| 达孜县| 江源县| 蒙自县| 乐至县| 车致| 改则县| 苏尼特右旗| 平昌县| 孟村| 兖州市| 临朐县| 阳谷县| 沙坪坝区| 八宿县| 禄劝| 余庆县| 班玛县| 平邑县| 托里县| 分宜县|