專利名稱:低開銷處理器設(shè)備連接的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在處理器設(shè)備,例如數(shù)字信號處理器設(shè)備(DSP)的存儲器和與處理器設(shè)備連接的電路,例如專用集成電路(ASIC)之間實(shí)現(xiàn)數(shù)據(jù)傳送的方法和系統(tǒng)。
背景技術(shù):
分布式存儲器結(jié)構(gòu)非常善于實(shí)現(xiàn)數(shù)據(jù)流處理,幾乎每個DSP和相關(guān)應(yīng)用程序都?xì)w結(jié)于數(shù)據(jù)流處理。DSP應(yīng)用程序?qū)崟r(shí)運(yùn)行,即它們必須在規(guī)定的通過量和/或等待時(shí)間要求下處理數(shù)據(jù)的需要,進(jìn)一步強(qiáng)化了DSP和數(shù)據(jù)流系統(tǒng)之間的完美配合。由于存儲器爭用方面的不確定性,共享存儲器系統(tǒng)在保證等待時(shí)間方面存在困難。
如果DSP的中央處理器設(shè)備(CPU)不得不停止其當(dāng)前任務(wù),把數(shù)據(jù)搬上搬下芯片,那么性能將較差。于是,提供直接存儲器存取(DMA)控制器,以便執(zhí)行命令序列,自動初始化等。在實(shí)時(shí)數(shù)據(jù)處理系統(tǒng)中,這允許DMA獨(dú)立于CPU運(yùn)行。DMA主要要求DSP不訪問涉及的存儲器。為此,CPU被終止或者與總線系統(tǒng)脫離聯(lián)系,從而確保CPU和DMA控制器不會同時(shí)試圖訪問存儲器。在DMA操作中,提供給存儲器的地址是DMA控制器產(chǎn)生的那些地址。在完成DMA操作之后,CPU產(chǎn)生的地址再次確定哪些存儲字正被訪問。從而,DMA提供在不存在主機(jī)CPU的交互作用的情況下,允許在外圍控制器和系統(tǒng)存儲器之間移動數(shù)據(jù)的數(shù)據(jù)傳送。數(shù)據(jù)可由外圍控制器自己移動,或者由獨(dú)立的第三方DMA控制器移動。
通常根據(jù)打算訪問DSP的共享存儲器的外部電路觸發(fā)的中斷例程,執(zhí)行CPU的停止或去耦。從而,高的中斷開銷和相關(guān)DSP核心負(fù)載(core load)與在共享存儲器和連接DSP的外部裝置或電路之間的數(shù)據(jù)移動情況下,頻繁觸發(fā)的中斷服務(wù)例程(ISR)相關(guān)。
文獻(xiàn)EP 0908830A1公開一種基于DSP的通信適配器,包括許多數(shù)字信號處理器設(shè)備和提供多通道電話線的附件的網(wǎng)絡(luò)接口電路。每個數(shù)字信號處理器設(shè)備通過把中斷控制塊作為數(shù)據(jù)傳送給主處理器設(shè)備的數(shù)據(jù)存儲器,隨后發(fā)送使主處理器設(shè)備檢查數(shù)據(jù)存儲器的中斷,中斷其主處理器設(shè)備。從而,從單個DSP到主處理器設(shè)備的許多中斷被捆扎,并且能夠一起被處理。從而能夠降低單獨(dú)處理每個中斷的開銷。借助DMA操作,把中斷塊寫入主處理器設(shè)備的存儲器。
但是,如果把這種現(xiàn)有解決方案用于捆扎DSP的共享存儲器和外部電路之間的數(shù)據(jù)移動的中斷,那么DSP的CPU仍然不得不處理中斷塊的每個中斷,以便觸發(fā)數(shù)據(jù)移動所需的對應(yīng)ISR。從而,系統(tǒng)開銷仍是一個問題。
發(fā)明內(nèi)容
于是,本發(fā)明的目的是提供一種在處理器設(shè)備的存儲器和與處理器設(shè)備連接的電路之間傳送數(shù)據(jù)的方法和系統(tǒng),借助所述方法和系統(tǒng),能夠降低中斷開銷和相關(guān)的核心負(fù)載。
上述目的由一種在處理器設(shè)備的存儲器和與處理器設(shè)備連接的電路之間進(jìn)行數(shù)據(jù)傳送的方法實(shí)現(xiàn),所述方法包括下述步驟在所述電路建立用于傳送數(shù)據(jù)的直接存儲器存取(DMA);觸發(fā)到所述處理器設(shè)備的所述數(shù)據(jù)的DMA傳送;把所述DMA傳送加入事務(wù)日志中;當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備;和把所述事務(wù)日志的可用性通知所述處理器設(shè)備。
此外,上述目的由具有可被所連接的電路訪問的存儲器的處理器設(shè)備實(shí)現(xiàn),所述處理器設(shè)備被安排成根據(jù)向所述處理器設(shè)備提供的事務(wù)日志,核實(shí)借助直接存儲器存取向所述存儲器傳送的數(shù)據(jù)。
另外,上述目的由具有可以訪問處理器設(shè)備的裝置的集成電路實(shí)現(xiàn),所述集成電路被安排成建立通過所述訪問裝置,傳送數(shù)據(jù)的直接存儲器存取,觸發(fā)所述數(shù)據(jù)的DMA傳送,把所述DMA傳送加入所述事務(wù)日志中,當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備,和發(fā)出指示所述事務(wù)日志的可用性的信息。
此外,上述目的由在處理器設(shè)備的存儲器和與所述處理器設(shè)備連接的電路之間實(shí)現(xiàn)數(shù)據(jù)傳送的系統(tǒng)實(shí)現(xiàn),其中所述電路被安排成建立用于傳送數(shù)據(jù)的直接存儲器存取,觸發(fā)到所述處理器設(shè)備的所述數(shù)據(jù)的DMA傳送,把所述DMA傳送加入事務(wù)日志中,當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備,和把所述事務(wù)日志的可用性通知所述處理器設(shè)備;并且其中所述處理器設(shè)備被安排成根據(jù)所述可獲得的事務(wù)日志,核實(shí)所述傳送的數(shù)據(jù)。
從而,提供位于外部電路托管的接口上的預(yù)編程DMA,從而在存儲器和外部電路之間傳送數(shù)據(jù),其中通過利用事務(wù)日志,能夠降低處理器設(shè)備控制要求。從而,利用單一DMA操作,能夠捆綁許多數(shù)據(jù)傳送,因?yàn)楫?dāng)已向處理器設(shè)備通知事務(wù)日志的可用性,例如傳送或詢問時(shí),處理器設(shè)備可能根據(jù)可用的事務(wù)日志,核實(shí)或考核(quality)傳送的數(shù)據(jù)。由于處理器設(shè)備只與關(guān)于事務(wù)日志的供給(例如傳送或詢問)的信息的信令有關(guān),因此能夠顯著降低中斷開銷和相關(guān)的核心負(fù)載。此外,不需要手動數(shù)據(jù)移動,在共享存儲器和外部電路的單片總線系統(tǒng)之間可形成數(shù)據(jù)速率匹配,從而減小系統(tǒng)的失速(stalling)。
由于利用單一的處理器設(shè)備牽連事物(involvement),例如借助中斷服務(wù)例程,能夠核實(shí)保持在存儲器中的多個數(shù)據(jù)結(jié)構(gòu),因此降低了核心處理開銷,尤其是當(dāng)在實(shí)時(shí)操作系統(tǒng)(RTOS)下,需要環(huán)境轉(zhuǎn)換時(shí)更是如此。此外,由于事務(wù)日志可本地保存在處理器設(shè)備的存儲器中,因此不需要外部電路內(nèi)的事務(wù)狀態(tài)的慢速核心輪詢。于是,在共享存儲器和外部電路之間允許有效的后臺數(shù)據(jù)移動,因?yàn)樘峁┝瞬恍栎^高核心開銷,使數(shù)據(jù)結(jié)構(gòu)同步,并核實(shí)數(shù)據(jù)結(jié)構(gòu)的手段。
最好,在達(dá)到所述深度極限之前,重復(fù)步驟b)和c)。從而在不中斷處理器設(shè)備的情況下,借助相應(yīng)的DMA傳送,能夠傳送大量的數(shù)據(jù)。DMA傳送可由硬件或軟件觸發(fā)。事務(wù)日志可以是也可不是可配置的。
通過啟動中斷操作,例如在處理器設(shè)備的中斷服務(wù)例程的觸發(fā),可實(shí)現(xiàn)通知步驟。
此外,事務(wù)日志可由自己的DMA通道傳送,或者可附加到數(shù)據(jù)傳送上。另一方面,事務(wù)日志可保持在連接的電路中,用于考核中斷之后的詢問。
下面將參考附圖,根據(jù)優(yōu)選實(shí)施例,詳細(xì)說明本發(fā)明,其中圖1是與ASIC連接的數(shù)字信號處理器設(shè)備的示意方框圖;圖2表示了根據(jù)優(yōu)選實(shí)施例的數(shù)據(jù)傳送方法的流程圖。
具體實(shí)施例方式
現(xiàn)在將基于如圖1中所示,位于ASIC托管(hosted)的接口上的,提供DSP或微控制器單元(MCU)10的共享存儲器16和ASIC20之間的數(shù)據(jù)移動的預(yù)編程DMA,說明優(yōu)選實(shí)施例。
根據(jù)圖1,DSP 10包括根據(jù)保存在程序存儲器(未示出)中的控制程序,控制DSP操作的CPU 12。此外,設(shè)置主接口14,用于控制相對于安排在ASIC 20上的從接口22的數(shù)據(jù)傳送。中斷控制單元17安排在DSP 10中,根據(jù)從ASIC 20的資源管理器24接收的中斷控制信號,控制中斷服務(wù)例程的執(zhí)行。此外,DSP 10的從接口18由ASIC20的主接口26控制,以便把數(shù)據(jù)從ASIC 20傳送給DSP 10的共享存儲器。
在ASIC 20中,提供用于保存將被傳送給共享存儲器16的數(shù)據(jù)的存儲器28。主接口26包含控制通過從接口18,對共享存儲器16的DMA傳送的DMA控制器。此外,包含從ASIC 20到DSP的DMA傳送歷史信息的DMA事務(wù)記錄或日志保存在主接口26。資源管理器24被安排成提供ASIC 20的資源控制,以便在DMA控制器的控制下,實(shí)現(xiàn)從存儲器28到主接口26的數(shù)據(jù)傳送。
如圖1中的虛線箭頭所示,從ASIC 20到DSP 10的DMA傳送包含至少兩個階段,即把相應(yīng)的數(shù)據(jù)DATAX傳送給DSP 10的共享存儲器16的第一DMA傳送DMA#1,和緊接或稍后的把DMA事務(wù)日志從主接口26傳送給共享存儲器16的第二DMA傳送DMA#2。從而,在不涉及CPU 12的情況下,通過利用DMA操作,能夠把大量數(shù)據(jù)從ASIC 20的存儲器28傳送到DSP 10的共享存儲器16。在傳送DMA事務(wù)日志之后,借助從資源管理器24發(fā)送給中斷控制單元17的中斷控制信號,把該數(shù)據(jù)傳送通知CPU 12。
現(xiàn)在根據(jù)圖2中所示的流程圖,說明從ASIC到DSP 10的數(shù)據(jù)移動的例子。
在初始化階段,在步驟S101中,在ASIC 20中建立用于第一數(shù)據(jù)DATAX的傳送的DMA。隨后,在步驟S102中,在ASIC 20中還建立用于DMA事務(wù)日志的傳送的DMA。從而,從ASIC 20到DSP的共享存儲器16的數(shù)據(jù)移動所需的兩個DMA傳送操作被初始化。
隨后,在ASIC 20的DMA控制器,啟動運(yùn)行時(shí)間DMA處理子例程,以便控制所需數(shù)量的數(shù)據(jù)的DMA傳送。在步驟S201中,觸發(fā)第一數(shù)據(jù)DATAX的DMA傳送,指示第一數(shù)據(jù)DATAX的傳送的信息被加入DMA事務(wù)日志(步驟S301)。類似地,在后續(xù)步驟S202-S204中,觸發(fā)其它數(shù)據(jù)DATAY、DATAZ和DATAA的后續(xù)DMA傳送,同時(shí)在步驟S302-S304中,連續(xù)更新DMA事務(wù)日志。從而,在完成數(shù)據(jù)傳送操作之后,DMA事務(wù)日志包含指定傳送給DSP 10的共享存儲器16的數(shù)據(jù)的傳送信息。
當(dāng)DMA控制器檢測到DMA事務(wù)日志已達(dá)到預(yù)定深度極限時(shí),步驟S401啟動傳送通知程序。隨后,在步驟S402中,觸發(fā)DMA事務(wù)日志的DMA傳送,以便把DMA事務(wù)日志傳送給DSP 10,并將其保存在共享存儲器16中。隨后,通過向資源管理器24提供對應(yīng)的控制信息,DMA控制器觸發(fā)DSP 10的CPU 12的中斷(步驟S403)。響應(yīng)該中斷,CPU 12根據(jù)保存在共享存儲器16中的DMA事務(wù)日志,考核或核實(shí)傳送給共享存儲器的數(shù)據(jù)(步驟S404)。為此,從資源管理器24供給中斷控制單元17的中斷控制信息可包含指示DMA事務(wù)日志的地址的相應(yīng)地址信息。DMA事務(wù)日志隨后可包含指示被傳送數(shù)據(jù)的地址范圍的信息。利用DMA通道編號,可指示事務(wù)日志中DMA移動的結(jié)束。
提出的處理器設(shè)備連接概念從而允許ASIC 20和共享存儲器16之間有意義的后臺數(shù)據(jù)移動,而不會在DSP 10引入高的核心開銷。
注意本發(fā)明并不局限于上面說明的優(yōu)選實(shí)施例,相反可用于處理器設(shè)備和與處理器設(shè)備連接的其它電路之間的任意DMA傳送。此外,可利用任意信令選項(xiàng)實(shí)現(xiàn)相對于DSP 10的DMA事務(wù)日志的信令,并不局限于中斷操作。可相對于與DSP 10連接的ASIC 20或任意其它電路上的任意存儲變換位置進(jìn)行DMA傳送。事務(wù)日志的傳送不一定需要它自己的DMA通道(例如圖1中的DMA#2)。事務(wù)日志可附加到某一數(shù)據(jù)傳送上,或者甚至保持在ASIC 20內(nèi),用于考核(qualifying)中斷之后的詢問。這可包括中斷狀態(tài)。從而,在圖1中,DMA#2是可選的。例如,事務(wù)日志可附加到下一數(shù)據(jù)傳送上。DMA不必位于ASIC 20的主接口26,相反也可掛在ASIC OCB上。此外,不一定必須在兩個裝置之間進(jìn)行中斷,相反也可在DSP 10內(nèi)觸發(fā)中斷。從而,在圖2中,對于在根據(jù)圖1的結(jié)構(gòu)中指示的具體情況來說,步驟S102、S402和S403是可選步驟。另外,可用軟件觸發(fā)DMA傳送。從而,優(yōu)選實(shí)施例可在附加權(quán)利要求的范圍內(nèi)變化。
權(quán)利要求
1.一種在處理器設(shè)備(10)的存儲器(16)和與所述處理器設(shè)備(10)連接的電路(20)之間進(jìn)行數(shù)據(jù)傳送的方法,所述方法包括下述步驟a)在所述電路(20)建立用于傳送數(shù)據(jù)的直接存儲器存取(DMA);b)觸發(fā)到所述處理器設(shè)備(10)的所述數(shù)據(jù)的DMA傳送;c)把所述DMA傳送加入事務(wù)日志中;d)當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備(10);和e)把所述事務(wù)日志的可用性通知所述處理器設(shè)備(10)。
2.按照權(quán)利要求1所述的方法,其中在達(dá)到所述深度極限之前,重復(fù)所述步驟b)和c)。
3.按照權(quán)利要求1或2所述的方法,其中通過啟動中斷操作,實(shí)現(xiàn)所述通知步驟。
4.按照權(quán)利要求3所述的方法,其中所述中斷操作啟動中斷服務(wù)例程。
5.按照前述任意權(quán)利要求所述的方法,還包括根據(jù)所述可用的事務(wù)日志,在所述處理器設(shè)備(10)核實(shí)所述傳送的數(shù)據(jù)的步驟。
6.按照前述任意權(quán)利要求所述的方法,其中所述電路是ASIC。
7.按照前述任意權(quán)利要求所述的方法,還包括把所述事務(wù)日志保存在所述存儲器(16)中的步驟。
8.一種具有可被連接的電路(20)訪問的存儲器(16)的處理器設(shè)備,所述處理器設(shè)備(10)被安排成根據(jù)向所述處理器設(shè)備提供的事務(wù)日志,核實(shí)借助直接存儲器存取向所述存儲器(16)傳送的數(shù)據(jù)。
9.按照權(quán)利要求8所述的處理器設(shè)備,其中所述處理器設(shè)備(10)被安排成響應(yīng)所述連接的電路(20)觸發(fā)的中斷,核實(shí)所述傳送的數(shù)據(jù)。
10.按照權(quán)利要求8或9所述的處理器設(shè)備,其中所述處理器設(shè)備是數(shù)字信號處理器設(shè)備(10)。
11.一種具有用于提供對處理器設(shè)備(10)的訪問的裝置(22)的集成電路,所述集成電路(20)被安排成建立通過所述訪問裝置(22)傳送數(shù)據(jù)的直接存儲器存取(DMA),觸發(fā)所述數(shù)據(jù)的DMA傳送,把所述DMA傳送加入所述事務(wù)日志中,當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備,和發(fā)出指示所述事務(wù)日志的可用性的信息。
12.按照權(quán)利要求11所述的集成電路,其中所述集成電路(20)被安排成通過觸發(fā)中斷,發(fā)出所述信息。
13.按照權(quán)利要求11或12所述的集成電路,其中所述集成電路是ASIC。
14.一種在處理器設(shè)備(10)的存儲器(16)和與所述處理器設(shè)備(10)連接的電路(20)之間實(shí)現(xiàn)數(shù)據(jù)傳送的系統(tǒng),a)其中所述電路(20)被安排成建立用于傳送數(shù)據(jù)的直接存儲器存取(DMA),觸發(fā)到所述處理器設(shè)備(10)的所述數(shù)據(jù)的DMA傳送,把所述DMA傳送加入事務(wù)日志中,當(dāng)所述事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把所述事務(wù)日志提供給所述處理器設(shè)備(10),和把所述事務(wù)日志的可用性通知所述處理器設(shè)備(10);和b)其中所述處理器設(shè)備(10)被安排成根據(jù)所述提供的事務(wù)日志,核實(shí)所述傳送的數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種在處理器設(shè)備(10)的共享存儲器(16)和與處理器設(shè)備(10)連接的電路(20)之間進(jìn)行數(shù)據(jù)傳送的方法和系統(tǒng),其中通過觸發(fā)相對于處理器設(shè)備的數(shù)據(jù)的DMA傳送,把DMA傳送加入事務(wù)日志中,當(dāng)事務(wù)日志達(dá)到預(yù)定深度極限時(shí),把事務(wù)日志提供給處理器設(shè)備,實(shí)現(xiàn)數(shù)據(jù)傳送。隨后,把事務(wù)日志的DMA傳送通知處理器設(shè)備,以便處理器設(shè)備能夠核實(shí)傳送的數(shù)據(jù)。從而,能夠提供有效的后臺數(shù)據(jù)移動,而不會在處理器設(shè)備(10)引入較高的核心開銷。
文檔編號G06F13/28GK1582434SQ01823909
公開日2005年2月16日 申請日期2001年12月27日 優(yōu)先權(quán)日2001年12月27日
發(fā)明者約翰·貝爾 申請人:諾基亞公司