對直接存儲器存取通道請求進(jìn)行判優(yōu)的制作方法
【專利說明】
【背景技術(shù)】
[0001]在系統(tǒng)存儲器與計算機(jī)系統(tǒng)的外圍組件之間傳達(dá)數(shù)據(jù)的一種方式是使中央處理單元(CPU)充當(dāng)用于通信的媒介。例如,為了將數(shù)據(jù)從系統(tǒng)存儲器傳送到外圍組件,CPU可以通過啟動適當(dāng)?shù)淖x取操作以從系統(tǒng)存儲器檢索數(shù)據(jù)以及啟動適當(dāng)?shù)膶懭氩僮饕詫z索到的數(shù)據(jù)存儲在外圍組件的存儲器中來執(zhí)行該傳送。出于減少CPU開銷的目的,計算機(jī)系統(tǒng)可以采用直接存儲器存取(DMA),其中外圍組件的DMA引擎直接對系統(tǒng)存儲器進(jìn)行存取以傳送數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0002]在示例性實施例中,一種方法包含接收對相關(guān)聯(lián)的DMA通道執(zhí)行存取的多個請求,以及對請求進(jìn)行判優(yōu)。該判優(yōu)包含至少部分基于請求的相關(guān)聯(lián)的固定優(yōu)先級以及請求的相關(guān)聯(lián)的優(yōu)先級權(quán)重來選擇性地準(zhǔn)許所述多個請求中的給定請求。所述優(yōu)先級權(quán)重管理(regulate)在給定時刻考慮所述多個請求中的哪個請求或哪些請求。
[0003]在另一示例實施例中,一種設(shè)備包含判優(yōu)器以及與直接存儲器存取(DMA)通道相關(guān)聯(lián)的多個DMA引擎。每個DMA通道與固定優(yōu)先級以及優(yōu)先級權(quán)重相關(guān)聯(lián)。判優(yōu)器對來自DMA引擎的對相關(guān)聯(lián)DMA通道執(zhí)行DMA存取的請求進(jìn)行判優(yōu)。判優(yōu)器適合于至少部分基于優(yōu)先級權(quán)重將所考慮的請求布置在判優(yōu)時隙的序列中,并且遍歷在考慮每個判優(yōu)時隙中的請求的判優(yōu)周期中的判優(yōu)時隙的序列,以至少部分基于與請求相關(guān)聯(lián)的固定優(yōu)先級來選擇性地準(zhǔn)許所述請求。
[0004]在又一示例實施例中,一種設(shè)備包含集成電路(IC),所述集成電路包含直接存儲器存取(DMA)通道以及DMA通道判優(yōu)器。判優(yōu)器適合于接收使用DMA通道的請求。每個請求與優(yōu)先級權(quán)重以及優(yōu)先級相關(guān)聯(lián);至少部分基于相關(guān)聯(lián)的優(yōu)先級權(quán)重將請求布置在判優(yōu)時隙中;遍歷判優(yōu)時隙的序列;以及響應(yīng)于包含多個請求的給定時隙,基于多個請求的優(yōu)先級選擇判優(yōu)獲勝者。
[0005]優(yōu)點以及其它所需特征將通過以下附圖、說明以及權(quán)利要求書而變得顯而易見。
【附圖說明】
[0006]圖1是根據(jù)示例實施例的基于微控制器單元(MCU)的系統(tǒng)的示意圖。
[0007]圖2是根據(jù)示例實施例的圖1的系統(tǒng)的MCU的示意圖。
[0008]圖3A是由根據(jù)示例實施例的由圖2的MCU的判優(yōu)器使用的判優(yōu)方案的圖示。
[0009]圖3B是根據(jù)示例實施例的判優(yōu)時隙的圖示。
[0010]圖4A、4B以及4C是描繪了根據(jù)示例實施例對直接存儲器存取(DMA)通道請求進(jìn)行判優(yōu)的技術(shù)的流程圖。
[0011]圖5A圖示了根據(jù)示例實施例的DMA通道配置寄存器。
[0012]圖5B圖示了根據(jù)示例實施例的MCU的配置寄存器。
[0013]圖6是根據(jù)示例實施例的基于MCU的系統(tǒng)的示意圖。
【具體實施方式】
[0014]給定計算機(jī)系統(tǒng)可以包含多個直接存儲器存取(DMA)通道,該通道由系統(tǒng)的DMA引擎用來將數(shù)據(jù)傳送(經(jīng)由相關(guān)聯(lián)的“DMA傳送”)到系統(tǒng)存儲器以及從系統(tǒng)存儲器傳送數(shù)據(jù)。為了進(jìn)行DMA傳送,DMA引擎可以假設(shè)DMA請求線以對應(yīng)地向計算機(jī)系統(tǒng)的判優(yōu)控制器或判優(yōu)器提交針對DMA通道進(jìn)行存取的請求(本文中稱為“DMA通道請求”);并且在判優(yōu)器通過斷定(asserting)用于所請求的通道的DMA準(zhǔn)許線來準(zhǔn)許該請求之后,DMA引擎被允許針對系統(tǒng)總線進(jìn)行存取并且進(jìn)行DMA傳送。系統(tǒng)總線可以是計算機(jī)系統(tǒng)的共享資源并且可以支持在給定時刻的單一 DMA傳送(作為一個示例)。因為,在任何給定時刻,多個DMA通道請求可以是未決的(pending),判優(yōu)器可以出于選擇準(zhǔn)許哪一個未決請求的目的來應(yīng)用判優(yōu)策略。
[0015]判優(yōu)器可以應(yīng)用固定優(yōu)先級判優(yōu)策略來從多個未決請求中選擇未決DMA通道請求。固定優(yōu)先級判優(yōu)依賴于分配有不同優(yōu)先級等級的DMA通道,并且判優(yōu)器準(zhǔn)許具有最高固定優(yōu)先級的未決請求,即,與具有最高固定優(yōu)先級的DMA通道相關(guān)聯(lián)的未決請求。固定優(yōu)先級判優(yōu)策略的特定優(yōu)點是相對較低延時的DMA通道(即,具有相對較高固定優(yōu)先級的DMA通道)可以比相對較高延時的DMA通道(S卩,具有相對較低固定優(yōu)先級的DMA通道)更頻繁地得到服務(wù)。
[0016]輪循判優(yōu)策略是另一種類型的判優(yōu),其中判優(yōu)器循環(huán)通過判優(yōu)時隙的循環(huán)序列中的未決DMA通道請求,其中每個時隙被分配給不同DMA通道。當(dāng)判優(yōu)器從一個考慮的判優(yōu)時隙到下一者循環(huán)通過序列時,如果給定未決請求與分配給當(dāng)前考慮的判優(yōu)時隙的DMA通道相關(guān)聯(lián),那么判優(yōu)器準(zhǔn)許所述請求。輪循優(yōu)先級判優(yōu)策略的特定優(yōu)點是相對較高延時的DMA通道的請求者不會由于較低延時的請求者而被“擊敗(starved out) ”,所述相對較高延時的DMA通道在固定優(yōu)先級判優(yōu)方案中可能以其他方式具有相對較低固定優(yōu)先級。
[0017]本文中公開了示例系統(tǒng)以及技術(shù),該示例系統(tǒng)以及技術(shù)采用具有基于固定優(yōu)先級的判優(yōu)以及基于輪循的判優(yōu)兩者的方面的判優(yōu)策略。更確切地說,根據(jù)此判優(yōu)策略,DMA通道被分配有固定優(yōu)先級以及優(yōu)先級權(quán)重:沒有兩個DMA通道共享相同的固定優(yōu)先級,但多個DMA通道可以具有相同的優(yōu)先級權(quán)重。DMA請求基于優(yōu)先級權(quán)重被分組或布置在判優(yōu)時隙的循環(huán)序列的判優(yōu)時隙(例如,判優(yōu)時隙的輪循序列)中。以此方式,根據(jù)示例實施例,分配給給定DMA通道的優(yōu)先級權(quán)重控制(多個)判優(yōu)時隙的數(shù)目,針對DMA通道的請求可以出現(xiàn)在該數(shù)目的判優(yōu)時隙中。判優(yōu)器循環(huán)通過判優(yōu)時隙的循環(huán)序列,從而在給定時刻考慮一個判優(yōu)時隙;并且針對給定判優(yōu)時隙,判優(yōu)器為該時隙選擇具有最高固定優(yōu)先級的未決請求。
[0018]根據(jù)示例實施例,對應(yīng)于相似固定優(yōu)先級DMA通道的請求被分組在一起,使得與較低固定優(yōu)先級相關(guān)聯(lián)的DMA通道請求不被與較高固定優(yōu)先級相關(guān)聯(lián)的DMA通道請求支配或被擊敗。此外,與較高固定優(yōu)先級相關(guān)聯(lián)的DMA通道請求被分配給更多判優(yōu)時隙,使得這些請求可以得到充分的服務(wù)。因此,在示例實施例中,針對與相對較高延時以及相對較低固定優(yōu)先級相關(guān)聯(lián)的DMA通道的請求可以被一起分組在相同判優(yōu)時隙中,但這些請求出現(xiàn)在相對較少的判優(yōu)時隙中;并且針對與相對較低延時以及相對較高固定優(yōu)先級相關(guān)聯(lián)的DMA通道的請求也被一起分組在相同判優(yōu)時隙中以彼此競爭,但這些請求出現(xiàn)在更多判優(yōu)時隙中。在判優(yōu)策略的可能的優(yōu)點之中,其中的優(yōu)點是相對較不頻繁、低延時的請求者被分派有DMA傳送的某些份額(share),而相對較頻繁、高延時的請求者在整個判優(yōu)周期上的間隔處可以搶先于低延時請求者。
[0019]作為更加具體的示例,圖1描繪了在示例系統(tǒng)10中的MCU 24。對于此示例,MCU 24響應(yīng)于與(多個)組件70通信的一個或多個控制組件70的各種方面。作為示例,根據(jù)特定應(yīng)用,組件70可以包含以下中的一個或多個:電動機(jī)、家用電器、庫存控制終端、計算機(jī)、平板電腦、智能功率計、無線接口、蜂窩接口、交互式觸摸屏用戶界面、流量傳感器等。MCU 24的組件的全部或一部分可以是半導(dǎo)體封裝30的一部分。
[0020]如圖1中所描繪,根據(jù)示例實施例,MCU 24包含基于硬件的DMA引擎152,該基于硬件的DMA引擎可以是MCU 24的外圍組件的存儲器接口(網(wǎng)絡(luò)接口、無線接口、通用輸入/輸出(GP1)接口)。給定DMA引擎152可以在MCU 24內(nèi)進(jìn)行各種DMA傳送。給定DMA傳送可以是(作為示例)從包含DMA引擎152的外圍組件的存儲器到MCU 24的系統(tǒng)存儲器的傳送;從系統(tǒng)存儲器到外圍組件的存儲器的傳送;在系統(tǒng)存儲器位置之間的即時寫入操作;或外圍到外圍的傳送。判優(yōu)器154執(zhí)行上述DMA請求的判優(yōu)。
[0021]根據(jù)示例實施例,MCU 24包含系統(tǒng)存儲器120。系統(tǒng)存儲器120與MCU 24的主存儲器相關(guān)聯(lián),并且可以存儲例如DMA描述符、分組數(shù)據(jù)、程序變量、數(shù)據(jù)結(jié)構(gòu)、圖像等。MCU24還可以包含I/O存儲器,該I/O存儲器一般來說指MCU 24的外圍設(shè)備的存儲空間(寄存器地址)。
[0022]參考圖2,根據(jù)一些實施例,MCU 24的組件的全部或一部分可以是集成電路(IC) 200的一部分。作為示例,MCU 24的組件的全部或一部分可以被制造在單個芯片或多個芯片上。集成電路200可被封裝以形成半導(dǎo)體封裝30 (見圖1)。
[0023]在MCU 24的組件當(dāng)中,MCU 24包含處理核心150、DMA引擎152以及判優(yōu)器154。根據(jù)特定實施例,除處理核心150和判優(yōu)器154以及DMA引擎152之外,MCU 24可以不包含圖2中所描繪的任何組件;除處理核心150和DMA引擎152以及判優(yōu)器154之外,MCU 24可以包含圖2中所描繪的組件中的一個或多個;MC