一種提高系統(tǒng)響應(yīng)速度的SoC系統(tǒng)架構(gòu)
引言
本文引用地址:http://2s4d.com/article/149003.htm隨著微電子技術(shù)的飛速發(fā)展,集成電路規(guī)模按照摩爾定律飛速提高,片上系統(tǒng)(System ON Chip,SoC)技術(shù)成為超大規(guī)模集成電路的發(fā)展趨勢。SoC芯片性能的不斷提高、各模塊間的數(shù)據(jù)交換成為提高微處理器系統(tǒng)運(yùn)行速度的瓶頸。DMA(Direct Memory Access,直接存儲(chǔ)器存?。┦且环N快速傳送數(shù)據(jù)的機(jī)制。DMA控制器能夠有效替代微處理器的加載/存儲(chǔ)指令,顯著提高系統(tǒng)的并行能力。DMA是在存儲(chǔ)器與輸入/輸出設(shè)備間直接傳送數(shù)據(jù),是一種完全由硬件完成輸入/輸出操作的方式。數(shù)據(jù)傳遞可以從外設(shè)到內(nèi)存,從內(nèi)存到外設(shè)。但DMA控制器的引入也引進(jìn)了影響系統(tǒng)響應(yīng)速度的因素。本文講述以包含單個(gè)AHB master接口的DMA控制器為基礎(chǔ)的SoC系統(tǒng)架構(gòu)藍(lán)本,分析存在的不足之處,并引入一種以新型DMA控制器為基礎(chǔ)的SoC系統(tǒng)架構(gòu)的設(shè)計(jì),解決提出的問題。
系統(tǒng)實(shí)時(shí)性是指能在限定時(shí)間內(nèi)完成任務(wù),并對外部異步事件作出及時(shí)響應(yīng)。限定時(shí)間根據(jù)應(yīng)用的要求不同而變化。實(shí)時(shí)系統(tǒng)的實(shí)時(shí)性與使用的軟硬件平臺(tái)有關(guān)。嵌入式系統(tǒng)的中斷服務(wù)響應(yīng)時(shí)間是指從某一個(gè)中斷源發(fā)出中斷服務(wù)請求,到處理器響應(yīng)這個(gè)中斷源的中斷服務(wù)請求,并開始執(zhí)行這個(gè)中斷源的中斷服務(wù)程序所用的這一段時(shí)間。嵌入式操作系統(tǒng)中的進(jìn)程調(diào)度是靠中斷實(shí)現(xiàn)的,處理器對系統(tǒng)中或系統(tǒng)外發(fā)生的異步事件的響應(yīng)速度是決定系統(tǒng)響應(yīng)速度的關(guān)鍵因素。中斷響應(yīng)時(shí)間是一個(gè)非常重要的指標(biāo)。特別是在實(shí)時(shí)計(jì)算機(jī)系統(tǒng)中,中斷響應(yīng)時(shí)間是整個(gè)計(jì)算機(jī)系統(tǒng)的一個(gè)關(guān)鍵性指標(biāo)。影響中斷服務(wù)響應(yīng)的因素有很多,如中斷源本身相對于其他中斷源的優(yōu)先級(jí)設(shè)置。在內(nèi)核不適合或不可能使用中斷技術(shù)期間,不能進(jìn)行中斷響應(yīng)。因此這段時(shí)間也相當(dāng)于一段中斷響應(yīng)延時(shí),DMA操作就是其中一個(gè)因素。因?yàn)镈MA傳輸也相當(dāng)于一種中斷,只不過它向處理器申請的是總線控制權(quán),而不是處理器本身。在DMA傳輸期間,由于處理器要把總線控制權(quán)讓給DMA而失去總線控制權(quán),盡管處理器可以做些不使用總線的工作,但肯定不會(huì)馬上響應(yīng)來自總線的外部中斷請求,因此會(huì)造成較大的中斷延時(shí)。
2 包含DMA的SoC系統(tǒng)架構(gòu)
2.1 DMA結(jié)構(gòu)介紹
一般而言,DMA控制器的功能與結(jié)構(gòu)是由系統(tǒng)結(jié)構(gòu)決定的。但是作為IP而言,DMA控制器又要有其一般性。DMA是指外部設(shè)備直接對計(jì)算機(jī)存儲(chǔ)器進(jìn)行讀寫操作的I/O方式。這種方式下數(shù)據(jù)的讀寫無需處理器執(zhí)行指令,也不經(jīng)過處理器內(nèi)部寄存器,而是利用系統(tǒng)的數(shù)據(jù)總線,由外設(shè)直接對存儲(chǔ)器寫入或讀出,從而達(dá)到極高的傳輸效率。DMA技術(shù)的重要性在于,利用它進(jìn)行數(shù)據(jù)存取時(shí)不需要處理器進(jìn)行干預(yù),可提高系統(tǒng)執(zhí)行應(yīng)用程序的效率。利用DMA傳送數(shù)據(jù)的另一個(gè)好處是數(shù)據(jù)直接在源地址和目的地址之間傳送,不需要中間媒介。在大部分基于AMBA總線的SoC:系統(tǒng)中,當(dāng)需要進(jìn)行DMA操作時(shí),DMA控制器先向處理器發(fā)出占用總線的請求,當(dāng)總線請求成功后,處理器將總線使用權(quán)交給DMA控制器,可以進(jìn)行數(shù)據(jù)傳輸,當(dāng)此次DMA傳輸完成后DMA控制器釋放總線控制權(quán)。
AMBA是ARM公司提出的用于微處理器片上通信的先進(jìn)的總線結(jié)構(gòu)。一種典型的AMBA總線由AHB和APB總線分段構(gòu)成??偩€上的設(shè)備可以分為能夠主動(dòng)讀寫的主設(shè)備(maSTer)與只能接收來自master請求的從設(shè)備(slave)。針對DMA控制器的研究引出了新的SoC架構(gòu),如使用分布式Fly-by DMA結(jié)構(gòu),為數(shù)據(jù)吞吐量大的模塊預(yù)設(shè)專用通道等。從功耗的角度看,當(dāng)系統(tǒng)中存在較多master模塊時(shí),總線仲裁器的負(fù)擔(dān)加重,而仲裁器正是AMBA總線功耗的主要來源。
2.2 包含AHB主從接口DMA控制器的SoC系統(tǒng)架構(gòu)
為了緩解在同一系統(tǒng)中需要同時(shí)實(shí)現(xiàn)大批量的數(shù)據(jù)傳輸,提出如圖1所示的基于AMBA總線的SoC系統(tǒng)架構(gòu)。從圖中可以看出,系統(tǒng)處理器的數(shù)據(jù)接口與指令接口都是作為AHB的master掛接在AHB總線上。主存通過slave接口掛接在AHB總線上,而DMA控制器同時(shí)包含master與slave接口,掛接在AHB總線上。slave接口用來對DMA控制器內(nèi)部寄存器進(jìn)行配置,master用來向AHB申請AHB總線控制權(quán),并進(jìn)行DMA傳輸。
在圖1中Memory是通過AHB的slave接口掛在AHB總線上。DMA控制器包含的2個(gè)接口,slave接口完成DMA內(nèi)部寄存器的配置后,master接口可申請AHB總線使用權(quán),當(dāng)獲得許可后,開始占用AHB總線,實(shí)現(xiàn)DMA數(shù)據(jù)傳輸。如此使處理器從外設(shè)間的大批量數(shù)據(jù)傳輸解放出來,直接由DMA來完成,提高了數(shù)據(jù)傳輸放率。但也因此而產(chǎn)生了一個(gè)問題:當(dāng)DMA占用AHB總線時(shí)處理器不能通過AHB接口去實(shí)現(xiàn)取指及讀寫數(shù)據(jù)。雖然在現(xiàn)在大部分處理器內(nèi)部或外部配備了容量較大的高速緩存(Cache),當(dāng)DMA控制器占用內(nèi)存時(shí),處理器仍可利用Cache中的程序和數(shù)據(jù)繼續(xù)運(yùn)行;但Cache是利用程序的局部性原理,當(dāng)處理器執(zhí)行的操作有良好的局部性時(shí),在DMA占用AHB總線期間可以利用Cache里的指令和數(shù)據(jù)繼續(xù)運(yùn)行,但若此時(shí)有設(shè)備產(chǎn)生中斷,此時(shí)處理器的PC指針就會(huì)產(chǎn)生跳轉(zhuǎn),從而會(huì)產(chǎn)生Cache不能命中的情況。而AHB總線又被DMA控制器占據(jù),處理器不能對外取指,而且Cache的容量因成本問題不可能太大,從而影響處理器的效率。
評論