Dma控制器的制造方法
【專利摘要】本發(fā)明提供一種DMA控制器,其通過比優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)的開始提前一定時間來發(fā)行待機請求,預(yù)先禁止優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā),優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā),可以不從數(shù)據(jù)轉(zhuǎn)發(fā)開始時間點等待地發(fā)生轉(zhuǎn)發(fā)周期。由此,縮短轉(zhuǎn)發(fā)時間,減小轉(zhuǎn)發(fā)時間的波動,從而提高系統(tǒng)的實時性。
【專利說明】
DMA控制器
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及DMA控制器,尤其涉及能夠不等待優(yōu)先度低的轉(zhuǎn)發(fā)而開始優(yōu)先度高的轉(zhuǎn)發(fā)的控制器。
【背景技術(shù)】
[0002]在計算機中,為了進(jìn)行高效的數(shù)據(jù)轉(zhuǎn)發(fā),使用不經(jīng)由CPU而在存儲器、設(shè)備之間直接進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)的DMA(Direct Memory Access)方式。如圖5所示,DMA轉(zhuǎn)發(fā)由DMA控制器控制,在轉(zhuǎn)發(fā)的數(shù)據(jù)中包含網(wǎng)絡(luò)數(shù)據(jù)包、圖像數(shù)據(jù)、聲音數(shù)據(jù)等。
[0003]DMA控制器進(jìn)行在一次周期中一起轉(zhuǎn)發(fā)從所指定的地址起連續(xù)的地址的多個數(shù)據(jù)的突發(fā)模式(burst mode)轉(zhuǎn)發(fā),因此,與CPU直接向存儲器轉(zhuǎn)發(fā)相比,具有能夠高速轉(zhuǎn)發(fā)的優(yōu)點。
[0004]另外,DMA控制器獨立于CPU而工作,因此還具有在執(zhí)行DMA轉(zhuǎn)發(fā)期間,CPU能夠處理別的任務(wù)的優(yōu)點。
[0005]有時對DMA控制器同時委托多種多樣的數(shù)據(jù)轉(zhuǎn)發(fā),因此,為了高效率地處理所述多個數(shù)據(jù)轉(zhuǎn)發(fā),大多具有管理優(yōu)先順序的功能。例如在日本特開2003-271539號公報中公開了,按照通過優(yōu)先順序決定電路預(yù)先決定的優(yōu)先順序控制數(shù)據(jù)轉(zhuǎn)發(fā),由此優(yōu)化存儲器存取,提高系統(tǒng)整體的數(shù)據(jù)轉(zhuǎn)發(fā)的吞吐量的技術(shù)。
[0006]另外,在對DMA控制器委托的數(shù)據(jù)轉(zhuǎn)發(fā)中,有要求周期性的啟動的數(shù)據(jù)轉(zhuǎn)發(fā)、要求轉(zhuǎn)發(fā)時間的數(shù)據(jù)轉(zhuǎn)發(fā),因此,除了優(yōu)先順序以外,對DMA控制器設(shè)定啟動條件、轉(zhuǎn)發(fā)時間條件等各種項目。例如在日本特開2003-006139號公報中公開了,將轉(zhuǎn)發(fā)量的期待值和實際的轉(zhuǎn)發(fā)量進(jìn)行比較,考慮其比較結(jié)果來決定優(yōu)先順序,由此實現(xiàn)所期待的轉(zhuǎn)發(fā)量的數(shù)據(jù)轉(zhuǎn)發(fā)的技術(shù)。
[0007]通過這些技術(shù),能夠高效率地轉(zhuǎn)發(fā)優(yōu)先順序不同的多個數(shù)據(jù),并且能夠在所決定的時間中轉(zhuǎn)發(fā)。
[0008]在工業(yè)設(shè)備或嵌入式系統(tǒng)那樣實時性(realtime property)高的系統(tǒng)中采用實時OS,對多個處理進(jìn)行調(diào)度,從優(yōu)先度高的處理起依次處理。另外,針對系統(tǒng)接受某輸入后進(jìn)行某處理等特定的處理,考慮在決定的時間內(nèi)可靠地完成處理。
[0009]在要求高實時性的系統(tǒng)中,存在必須在一定時間內(nèi)處理的(或者必須盡可能早處理的)優(yōu)先度高的處理,因此,理想的是關(guān)于與優(yōu)先度高的處理相關(guān)聯(lián)的數(shù)據(jù)轉(zhuǎn)發(fā),在盡可能短時間內(nèi)完成數(shù)據(jù)轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)時間的波動少。
[0010]如上所述,日本特開2003-271539號公報以及日本特開2003-006139號公報中公開的現(xiàn)有技術(shù)的DMA控制器,具備對轉(zhuǎn)發(fā)數(shù)據(jù)設(shè)置優(yōu)先順序、控制優(yōu)先順序以便趕得上所設(shè)定的轉(zhuǎn)發(fā)時間、如果轉(zhuǎn)發(fā)未趕上轉(zhuǎn)發(fā)時間則發(fā)出報警的功能,然而沒有考慮在盡可能短時間內(nèi)完成優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)、或者減少轉(zhuǎn)發(fā)時間的波動等追求更高實時性的情況。
[0011]DMA控制器以高效率轉(zhuǎn)發(fā)為目的而被使用,因此,如上所述,一般進(jìn)行突發(fā)模式轉(zhuǎn)發(fā)。所謂突發(fā)模式,是在一次周期中一起轉(zhuǎn)發(fā)從所指定的地址起連續(xù)的地址的多個數(shù)據(jù)的模式。因此,通過進(jìn)行突發(fā)模式轉(zhuǎn)發(fā),有一次周期時間延長的趨勢。特別在對應(yīng)答慢的設(shè)備進(jìn)行了存取的情況下、在到轉(zhuǎn)發(fā)目的地的路徑上與其他周期沖突的情況下等,周期時間進(jìn)一步延長。
[0012]在執(zhí)行優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)的過程中想要開始優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)時,在執(zhí)行中的數(shù)據(jù)轉(zhuǎn)發(fā)結(jié)束之前無法開始優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)。如上所述,在執(zhí)行中的周期長的情況下,該等待時間也延長。因此,盡管進(jìn)行了考慮優(yōu)先順序的調(diào)度,仍發(fā)生使優(yōu)先度高的數(shù)據(jù)的轉(zhuǎn)發(fā)等待,或者在轉(zhuǎn)發(fā)的完成時間中發(fā)生波動的問題。
[0013]SoC(system on chip)的內(nèi)部總線周期為數(shù)百納秒,串行通信周期為數(shù)微秒程度,因此,是否可以忽視它們的影響,取決于對系統(tǒng)要求的實時性。
[0014]此外,在執(zhí)行優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)的過程中想要開始優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)的情況下,如果可以立即中止優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)則沒有問題。但是,DMA的存取目的地,從系統(tǒng)內(nèi)部存儲器到外部的存儲設(shè)備、用通信線連接的外部設(shè)備等涉及多個方面,未必能夠立即停止轉(zhuǎn)發(fā)周期。
【發(fā)明內(nèi)容】
[0015]因此,本發(fā)明的目的在于提供一種DMA控制器,其能夠應(yīng)用于工業(yè)設(shè)備、嵌入式系統(tǒng)那樣實時性高的系統(tǒng),在盡可能短時間內(nèi)完成與優(yōu)先度高的處理相關(guān)聯(lián)的數(shù)據(jù)轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)時間的波動小。
[0016]本發(fā)明的控制DMA轉(zhuǎn)發(fā)的DMA控制器,具備:多個轉(zhuǎn)發(fā)請求生成部,其根據(jù)至少設(shè)定了轉(zhuǎn)發(fā)設(shè)定編號以及轉(zhuǎn)發(fā)啟動條件的轉(zhuǎn)發(fā)請求設(shè)定信息,將轉(zhuǎn)發(fā)請求通知給調(diào)度器;調(diào)度器,其獲取來自多個所述轉(zhuǎn)發(fā)請求生成部的轉(zhuǎn)發(fā)請求,根據(jù)預(yù)先設(shè)定的優(yōu)先順序設(shè)定信息,對該獲取的轉(zhuǎn)發(fā)請求進(jìn)行調(diào)度,并根據(jù)該調(diào)度結(jié)果選擇一個與通過成為執(zhí)行對象的轉(zhuǎn)發(fā)請求指令的轉(zhuǎn)發(fā)設(shè)定對應(yīng)的轉(zhuǎn)發(fā)設(shè)定編號,通知給DMA轉(zhuǎn)發(fā)執(zhí)行部;以及DMA轉(zhuǎn)發(fā)執(zhí)行部,其獲取來自所述調(diào)度器的所通知的轉(zhuǎn)發(fā)設(shè)定編號,從預(yù)先設(shè)定的多個轉(zhuǎn)發(fā)設(shè)定信息中讀出與該獲取的轉(zhuǎn)發(fā)設(shè)定編號對應(yīng)的轉(zhuǎn)發(fā)設(shè)定信息,執(zhí)行DMA轉(zhuǎn)發(fā)。所述轉(zhuǎn)發(fā)請求設(shè)定信息包含先行待機時間,所述轉(zhuǎn)發(fā)請求生成部根據(jù)所述先行待機時間,先于轉(zhuǎn)發(fā)請求將待機請求通知給所述調(diào)度器,另外,所述調(diào)度器獲取所述待機請求,根據(jù)所述預(yù)先設(shè)定的優(yōu)先順序設(shè)定信息,對所述DMA轉(zhuǎn)發(fā)執(zhí)行部進(jìn)行待機通知。
[0017]所述轉(zhuǎn)發(fā)請求生成部,可以從DMA控制器外部獲取轉(zhuǎn)發(fā)請求和待機請求,并將獲取的轉(zhuǎn)發(fā)請求和待機請求通知給所述調(diào)度器。
[0018]根據(jù)本發(fā)明,優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā),可以從數(shù)據(jù)轉(zhuǎn)發(fā)開始時間點起不等待地發(fā)生轉(zhuǎn)發(fā)周期,因此獲得轉(zhuǎn)發(fā)時間縮短,轉(zhuǎn)發(fā)時間的波動減小的效果。由此,系統(tǒng)的實時性提高。
【附圖說明】
[0019]本發(fā)明的上述以及其他目的以及特征,根據(jù)參照附圖進(jìn)行的以下實施例的說明而變得明確,這些附圖中:
[0020]圖1是本發(fā)明的一個實施方式的DMA控制器的概要框圖。
[0021]圖2是說明本發(fā)明的DMA控制器進(jìn)行的、使用了先行待機時間的DMA轉(zhuǎn)發(fā)控制的圖。
[0022]圖3是表示本發(fā)明的DMA控制器對優(yōu)先度不同的兩個DMA轉(zhuǎn)發(fā)請求進(jìn)行控制的例子的圖。
[0023]圖4是說明本發(fā)明的DMA控制器基于外部輸入信號進(jìn)行的DMA轉(zhuǎn)發(fā)控制的圖。
[0024]圖5是說明DMA轉(zhuǎn)發(fā)的圖。
【具體實施方式】
[0025]本發(fā)明的DMA控制器的特征在于,比優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)的開始前提一定時間發(fā)行待機請求,由此預(yù)先禁止優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)。由此,解決在執(zhí)行優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)的過程中想要開始優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)時,使優(yōu)先度高的數(shù)據(jù)的轉(zhuǎn)發(fā)等待這樣的現(xiàn)有問題。
[0026]使用圖1說明本發(fā)明的DMA控制器的一個實施方式。
[0027]DMA控制器I具備轉(zhuǎn)發(fā)請求生成部10、調(diào)度器20以及DMA轉(zhuǎn)發(fā)執(zhí)行部30。
[0028]在一個DMA控制器I中設(shè)置多個轉(zhuǎn)發(fā)請求生成部10,分別具有對調(diào)度器20通知用于請求數(shù)據(jù)轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)請求的作用,可以對各個轉(zhuǎn)發(fā)請求生成部10設(shè)定不同的轉(zhuǎn)發(fā)請求設(shè)定U。當(dāng)在轉(zhuǎn)發(fā)請求設(shè)定11中設(shè)定的啟動條件被滿足時,轉(zhuǎn)發(fā)請求生成部10對調(diào)度器20通知包含轉(zhuǎn)發(fā)設(shè)定編號的轉(zhuǎn)發(fā)請求。在轉(zhuǎn)發(fā)請求生成部10的轉(zhuǎn)發(fā)請求設(shè)定11中例如可以設(shè)定使用定時器12的周期性的啟動、基于外部啟動信號的隨機的啟動。轉(zhuǎn)發(fā)請求生成部10通過接受來自調(diào)度器的轉(zhuǎn)發(fā)完成通知,清除轉(zhuǎn)發(fā)請求。
[0029]調(diào)度器20分別獲取來自多個轉(zhuǎn)發(fā)請求生成部10的轉(zhuǎn)發(fā)請求,按照預(yù)先設(shè)定的優(yōu)先順序設(shè)定,從這些獲取的多個轉(zhuǎn)發(fā)請求中選擇一個。然后,將與該選擇的轉(zhuǎn)發(fā)請求對應(yīng)的轉(zhuǎn)發(fā)設(shè)定編號通知給DMA轉(zhuǎn)發(fā)執(zhí)行部30(調(diào)度)。另外,向相應(yīng)的轉(zhuǎn)發(fā)請求生成部10通知來自DMA轉(zhuǎn)發(fā)執(zhí)行部30的轉(zhuǎn)發(fā)完成通知。調(diào)度器20具有在獲取了來自DMA轉(zhuǎn)發(fā)執(zhí)行部30的再調(diào)度通知的情況下,或者獲取了特定的轉(zhuǎn)發(fā)請求的情況下,再次進(jìn)行調(diào)度的功能。
[0030]DMA轉(zhuǎn)發(fā)執(zhí)行部30獲取來自調(diào)度器20的轉(zhuǎn)發(fā)設(shè)定編號通知,從對應(yīng)的編號的轉(zhuǎn)發(fā)設(shè)定31中讀出轉(zhuǎn)發(fā)源地址、轉(zhuǎn)發(fā)目的地地址、轉(zhuǎn)發(fā)數(shù)據(jù)量、轉(zhuǎn)發(fā)周期數(shù)、再調(diào)度通知設(shè)定等各種轉(zhuǎn)發(fā)信息,發(fā)生DMA轉(zhuǎn)發(fā)周期。這些轉(zhuǎn)發(fā)設(shè)定31在系統(tǒng)啟動時的初始設(shè)定時等被預(yù)先設(shè)定,與轉(zhuǎn)發(fā)設(shè)定編號關(guān)聯(lián)起來管理。
[0031]DMA轉(zhuǎn)發(fā)執(zhí)行部30按照轉(zhuǎn)發(fā)設(shè)定的再調(diào)度通知設(shè)定,每當(dāng)一個或多個寫入周期結(jié)束時,將再調(diào)度通知發(fā)送給調(diào)度器20。另一方面,調(diào)度器20獲取再調(diào)度通知后再次進(jìn)行調(diào)度。另外,DMA轉(zhuǎn)發(fā)執(zhí)行部30當(dāng)轉(zhuǎn)發(fā)完成時向調(diào)度器20通知轉(zhuǎn)發(fā)完成,獲取該轉(zhuǎn)發(fā)完成通知的調(diào)度器20向相應(yīng)的轉(zhuǎn)發(fā)請求生成部10通知轉(zhuǎn)發(fā)完成,獲取該轉(zhuǎn)發(fā)完成通知的轉(zhuǎn)發(fā)請求生成部1清除轉(zhuǎn)發(fā)請求。
[0032]如圖2所示,本發(fā)明的DMA控制器可以對轉(zhuǎn)發(fā)請求生成部10的轉(zhuǎn)發(fā)請求設(shè)定11設(shè)定先行待機時間,可以比通知轉(zhuǎn)發(fā)請求的定時提前一定時間向調(diào)取器20通知待機請求。由此,能夠比開始轉(zhuǎn)發(fā)的定時提前一定時間使DMA控制器待機,可以不被優(yōu)先度低的轉(zhuǎn)發(fā)周期打擾地開始轉(zhuǎn)發(fā)。其結(jié)果,可以按照設(shè)定定時開始DMA轉(zhuǎn)發(fā),縮短DMA轉(zhuǎn)發(fā)時間,另外,減小DMA轉(zhuǎn)發(fā)的完成時間的波動。
[0033]圖3表示優(yōu)先度高的數(shù)據(jù)轉(zhuǎn)發(fā)A、優(yōu)先度低的數(shù)據(jù)轉(zhuǎn)發(fā)B的轉(zhuǎn)發(fā)定時的例子。
[0034]在此例中,如圖3所示,數(shù)據(jù)轉(zhuǎn)發(fā)A根據(jù)定時器周期性地啟動,進(jìn)而先行待機時間變得更有效。另外,假定數(shù)據(jù)轉(zhuǎn)發(fā)B以比數(shù)據(jù)轉(zhuǎn)發(fā)A更長的周期啟動。在進(jìn)行了這樣的轉(zhuǎn)發(fā)設(shè)定的情況下,通過調(diào)度器20調(diào)度成在數(shù)據(jù)轉(zhuǎn)發(fā)A完成后直到與其相連的先行待機時間開始之前的時間段執(zhí)行數(shù)據(jù)轉(zhuǎn)發(fā)B。
[0035]如至此說明的那樣,在使用定時器來周期性地生成轉(zhuǎn)發(fā)請求的情況下,能夠按照所設(shè)定的先行待機時間,在DMA控制器I內(nèi)計算通知待機請求的定時。另一方面,在根據(jù)外部輸入信號隨機地生成轉(zhuǎn)發(fā)請求的情況下,需要將通知待機請求的定時通知給DMA控制器。
[0036]例如,如圖4所示,當(dāng)考慮通信電路接收數(shù)據(jù)包并將接收數(shù)據(jù)寫入接收存儲器后通過外部輸入信號啟動DMA控制器的情況時,在通信電路接收到數(shù)據(jù)的階段、或者寫入接收存儲器之前等定時,可以將待機請求通知給DMA控制器。由此,即使在從外部設(shè)備隨機地啟動DMA轉(zhuǎn)發(fā)的情況下,也可以不等待優(yōu)先度低的轉(zhuǎn)發(fā)而開始優(yōu)先度高的轉(zhuǎn)發(fā)。
【主權(quán)項】
1.一種控制DMA轉(zhuǎn)發(fā)的DMA控制器,其特征在于, 具備: 多個轉(zhuǎn)發(fā)請求生成部,其根據(jù)至少設(shè)定了轉(zhuǎn)發(fā)設(shè)定編號以及轉(zhuǎn)發(fā)啟動條件的轉(zhuǎn)發(fā)請求設(shè)定信息,將轉(zhuǎn)發(fā)請求通知給調(diào)度器; 調(diào)度器,其獲取來自多個所述轉(zhuǎn)發(fā)請求生成部的轉(zhuǎn)發(fā)請求,根據(jù)預(yù)先設(shè)定的優(yōu)先順序設(shè)定信息,對該獲取的轉(zhuǎn)發(fā)請求進(jìn)行調(diào)度,并根據(jù)該調(diào)度結(jié)果選擇一個與通過成為執(zhí)行對象的轉(zhuǎn)發(fā)請求指令的轉(zhuǎn)發(fā)設(shè)定對應(yīng)的轉(zhuǎn)發(fā)設(shè)定編號,通知給DMA轉(zhuǎn)發(fā)執(zhí)行部;以及 DMA轉(zhuǎn)發(fā)執(zhí)行部,其獲取來自所述調(diào)度器的所通知的轉(zhuǎn)發(fā)設(shè)定編號,從預(yù)先設(shè)定的多個轉(zhuǎn)發(fā)設(shè)定信息中讀出與該獲取的轉(zhuǎn)發(fā)設(shè)定編號對應(yīng)的轉(zhuǎn)發(fā)設(shè)定信息,執(zhí)行DMA轉(zhuǎn)發(fā), 所述轉(zhuǎn)發(fā)請求設(shè)定信息包含先行待機時間, 所述轉(zhuǎn)發(fā)請求生成部根據(jù)所述先行待機時間,先于轉(zhuǎn)發(fā)請求將待機請求通知給所述調(diào)度器, 所述調(diào)度器獲取所述待機請求,根據(jù)所述預(yù)先設(shè)定的優(yōu)先順序設(shè)定信息,對所述DMA轉(zhuǎn)發(fā)執(zhí)行部進(jìn)行待機通知。2.根據(jù)權(quán)利要求1所述的DMA控制器,其特征在于, 所述轉(zhuǎn)發(fā)請求生成部從DMA控制器外部獲取轉(zhuǎn)發(fā)請求和待機請求,并將獲取的轉(zhuǎn)發(fā)請求和待機請求通知給所述調(diào)度器。
【文檔編號】G06F13/28GK105893288SQ201610090184
【公開日】2016年8月24日
【申請日】2016年2月18日
【發(fā)明人】三浦真廣
【申請人】發(fā)那科株式會社