1.一種基于多DMA隊(duì)列的數(shù)據(jù)傳輸方法,其特征在于,包括以下步驟:
配置一級(jí)DMA隊(duì)列和二級(jí)DMA隊(duì)列,為所述一級(jí)DMA隊(duì)列分配至少一個(gè)二級(jí)DMA隊(duì)列;
通過(guò)所述一級(jí)DMA隊(duì)列獲取數(shù)據(jù),將所述數(shù)據(jù)分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的二級(jí)DMA隊(duì)列;
通過(guò)對(duì)所述二級(jí)DMA隊(duì)列進(jìn)行調(diào)度來(lái)控制數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸方法,其特征在于,所述通過(guò)對(duì)所述二級(jí)DMA隊(duì)列進(jìn)行調(diào)度來(lái)控制數(shù)據(jù)傳輸?shù)牟襟E包括:
根據(jù)調(diào)度策略選擇二級(jí)DMA隊(duì)列,執(zhí)行選中的二級(jí)DMA隊(duì)列的數(shù)據(jù)傳輸請(qǐng)求;
判斷所述二級(jí)DMA隊(duì)列的傳輸速率是否超過(guò)了限定速率,若是,則掛起所述二級(jí)DMA隊(duì)列。
3.根據(jù)權(quán)利要求1或2所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸方法,其特征在于,所述將所述數(shù)據(jù)分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的二級(jí)DMA隊(duì)列的步驟包括:
當(dāng)一個(gè)數(shù)據(jù)包括至少兩個(gè)部分時(shí),將所述數(shù)據(jù)的各個(gè)部分分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的同一個(gè)DMA隊(duì)列。
4.根據(jù)權(quán)利要求2所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸方法,其特征在于,所述將所述數(shù)據(jù)分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的二級(jí)DMA隊(duì)列的步驟包括:
當(dāng)一個(gè)數(shù)據(jù)包括至少兩個(gè)部分時(shí),將所述數(shù)據(jù)的各個(gè)部分分別分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的至少兩個(gè)二級(jí)DMA隊(duì)列,并為所述數(shù)據(jù)的各個(gè)部分設(shè)置所屬二級(jí)DMA隊(duì)列之間的關(guān)聯(lián)關(guān)系。
5.根據(jù)權(quán)利要求4所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸方法,其特征在于,所述方法還包括:
當(dāng)選中的二級(jí)DMA隊(duì)列的數(shù)據(jù)傳輸請(qǐng)求執(zhí)行完畢后,判斷本次傳輸?shù)臄?shù)據(jù)塊是否為一個(gè)完整的數(shù)據(jù);
若不是一個(gè)完整的數(shù)據(jù),則進(jìn)一步判斷本次傳輸?shù)臄?shù)據(jù)塊是否是同一個(gè)數(shù)據(jù)的最后一部分;
若不是同一個(gè)數(shù)據(jù)的最后一部分,則自動(dòng)將本次傳輸?shù)臄?shù)據(jù)塊所關(guān)聯(lián)的二級(jí)DMA隊(duì)列作為下一輪調(diào)度的選擇結(jié)果。
6.一種基于多DMA隊(duì)列的數(shù)據(jù)傳輸裝置,其特征在于,包括:
隊(duì)列配置模塊,用于配置一級(jí)DMA隊(duì)列和二級(jí)DMA隊(duì)列,為所述一級(jí)DMA隊(duì)列分配至少一個(gè)二級(jí)DMA隊(duì)列;
數(shù)據(jù)分配模塊,用于通過(guò)所述一級(jí)DMA隊(duì)列獲取數(shù)據(jù),將所述數(shù)據(jù)分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的二級(jí)DMA隊(duì)列;
隊(duì)列調(diào)度模塊,用于通過(guò)對(duì)所述二級(jí)DMA隊(duì)列進(jìn)行調(diào)度來(lái)控制數(shù)據(jù)傳輸。
7.根據(jù)權(quán)利要求6所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸裝置,其特征在于,所述隊(duì)列調(diào)度模塊用于:
根據(jù)調(diào)度策略選擇二級(jí)DMA隊(duì)列,執(zhí)行選中的二級(jí)DMA隊(duì)列的數(shù)據(jù)傳輸請(qǐng)求;判斷所述二級(jí)DMA隊(duì)列的傳輸速率是否超過(guò)了限定速率,若是,則掛起所述二級(jí)DMA隊(duì)列。
8.根據(jù)權(quán)利要求6或7所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸裝置其特征在于,所述數(shù)據(jù)分配模塊用于:
當(dāng)一個(gè)數(shù)據(jù)包括至少兩個(gè)部分時(shí),將所述數(shù)據(jù)的各個(gè)部分分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的同一個(gè)DMA隊(duì)列。
9.根據(jù)權(quán)利要求7所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸裝置,其特征在于,所述數(shù)據(jù)分配模塊用于:
當(dāng)一個(gè)數(shù)據(jù)包括至少兩個(gè)部分時(shí),將所述數(shù)據(jù)的各個(gè)部分分別分配給所述一級(jí)DMA隊(duì)列對(duì)應(yīng)的至少兩個(gè)二級(jí)DMA隊(duì)列,并為所述數(shù)據(jù)的各個(gè)部分設(shè)置所屬二級(jí)DMA隊(duì)列之間的關(guān)聯(lián)關(guān)系。
10.根據(jù)權(quán)利要求9所述的基于多DMA隊(duì)列的數(shù)據(jù)傳輸裝置,其特征在于,所述隊(duì)列調(diào)度模塊還用于:
當(dāng)選中的二級(jí)DMA隊(duì)列的數(shù)據(jù)傳輸請(qǐng)求執(zhí)行完畢后,判斷本次傳輸?shù)臄?shù)據(jù)塊是否為一個(gè)完整的數(shù)據(jù);若不是一個(gè)完整的數(shù)據(jù),則進(jìn)一步判斷本次傳輸?shù)臄?shù)據(jù)塊是否是同一個(gè)數(shù)據(jù)的最后一部分;若不是同一個(gè)數(shù)據(jù)的最后一部分,則自動(dòng)將本次傳輸?shù)臄?shù)據(jù)塊關(guān)聯(lián)的二級(jí)DMA隊(duì)列作為下一輪調(diào)度的選擇結(jié)果。