两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

支持無(wú)線(xiàn)手持多媒體設(shè)備的集成處理器平臺(tái)的制作方法

文檔序號(hào):6469690閱讀:254來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):支持無(wú)線(xiàn)手持多媒體設(shè)備的集成處理器平臺(tái)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及諸如數(shù)字電話(huà)的無(wú)線(xiàn)手持多媒體設(shè)備,具體地說(shuō),本發(fā)明涉及無(wú)線(xiàn)手持多媒體設(shè)備中的處理器平臺(tái)。更具體地,本發(fā)明涉及這樣一種處理器平臺(tái),其具有最小的尺寸和功耗,且能夠在處理器平臺(tái)的多個(gè)處理器和多個(gè)外設(shè)之間進(jìn)行有效的數(shù)據(jù)傳輸。
在此類(lèi)多媒體設(shè)備中,特別是數(shù)字蜂窩電話(huà)中,處理器平臺(tái)包括兩個(gè)主處理器核連接到無(wú)線(xiàn)接口的數(shù)字信號(hào)處理器(DSP)核以及用于運(yùn)行設(shè)備并且協(xié)調(diào)來(lái)自幾個(gè)外設(shè)的數(shù)據(jù)傳送的主處理器核。這樣的設(shè)備可包括外設(shè)、通用串行總線(xiàn)(USB)、具有選擇模式以支持IrDA標(biāo)準(zhǔn)的通用異步接收機(jī)/發(fā)射機(jī)(UART)、同步串行接口(SSI)、多媒體卡(MMC)和支持藍(lán)牙標(biāo)準(zhǔn)的藍(lán)牙接口。
希望能夠在各種外設(shè)和主處理器的存儲(chǔ)器之間來(lái)回地移動(dòng)數(shù)據(jù),也希望在各種外設(shè)和DSP的存儲(chǔ)器之間來(lái)回地移動(dòng)數(shù)據(jù),而且,希望在DSP的存儲(chǔ)器和主處理器的存儲(chǔ)器之間來(lái)回地移動(dòng)數(shù)據(jù)。使用在該領(lǐng)域中所熟知的技術(shù),如直接存儲(chǔ)器存取(DMA),方便地進(jìn)行此類(lèi)傳輸,不需要涉及處理機(jī)或者DSP。因此,例如不是由主處理器初始化從特定的外設(shè)到主處理器存儲(chǔ)器的數(shù)據(jù)傳輸,而是DMA控制器執(zhí)行數(shù)據(jù)傳輸,使得主處理器能夠去處理更加重要的功能。有利的是,DMA技術(shù)將主處理和DSP從簡(jiǎn)單的數(shù)據(jù)傳輸?shù)姆敝厝蝿?wù)中解放出來(lái),使得能夠更快和更加有效地使用設(shè)備中的處理器。
然而,DMA控制器在兩個(gè)節(jié)點(diǎn)之間形成了硬連線(xiàn)的單向數(shù)據(jù)信道。DMA控制器連接在特定外設(shè)和系統(tǒng)總線(xiàn)之間,其訪(fǎng)問(wèn)從執(zhí)行數(shù)據(jù)傳輸?shù)娜蝿?wù)中解放出來(lái)的處理器和它的存儲(chǔ)器。DMA控制器向硬件提供了執(zhí)行直接存儲(chǔ)器訪(fǎng)問(wèn)。由于每一個(gè)數(shù)據(jù)信道是單向的,對(duì)于在兩個(gè)節(jié)點(diǎn)之間的雙向數(shù)據(jù)傳輸,要求兩個(gè)單獨(dú)的DMA數(shù)據(jù)信道。而且,由于每一個(gè)信道以硬件實(shí)現(xiàn),一旦建立信道之后,不能夠重配置數(shù)據(jù)信道以允許在不同節(jié)點(diǎn)之間或者不同的方向上的來(lái)回的數(shù)據(jù)傳輸。
因此,單獨(dú)的單向數(shù)據(jù)信道必須是硬連線(xiàn)以允許對(duì)多個(gè)處理器和多個(gè)外設(shè)進(jìn)行直接存儲(chǔ)器訪(fǎng)問(wèn)。不利的是,在手持多媒體設(shè)備中,可能有大量的外設(shè);因此,要求很多的DMA控制器以硬連線(xiàn)所有可能的DMA連接。例如,為了充分地將主處理器和DSP從不得不執(zhí)行在外設(shè)和各個(gè)存儲(chǔ)器之間的數(shù)據(jù)傳輸中解放出來(lái),必須在每一個(gè)外設(shè)和主處理器以及DSP存儲(chǔ)器之間以硬件實(shí)現(xiàn)DMA控制器,使得每一個(gè)DMA控制器建立所希望的單向數(shù)據(jù)信道。
不利的是,在小型的手持應(yīng)用中,執(zhí)行大量的DMA控制器花費(fèi)處理器平臺(tái)上寶貴的固定設(shè)備(valuable real estate)。換言之,需要的硬件DMA控制器越多,在處理器平臺(tái)上要求的晶體管越多,而且DMA硬件在平臺(tái)上占用的空間越多。需要一種處理器平臺(tái),其執(zhí)行DMA功能,允許多個(gè)處理器的有效運(yùn)行而不需要為所有不同的數(shù)據(jù)傳輸路徑使用傳統(tǒng)的DMA硬件。
在用于小型手持多媒體處理器的處理器平臺(tái)中所關(guān)心的另一方面是使功耗最小。采用不關(guān)心節(jié)約功率的處理器平臺(tái)不必要地減少了電池壽命,而電池壽命在手持應(yīng)用裝置中很重要,因?yàn)檫@縮短所要求的電池兩次充電之間的時(shí)間。而且,在要求大量的隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器(RAM)的多媒體應(yīng)用裝置中,希望采用與靜態(tài)RAM(SRAM)相反的動(dòng)態(tài)RAM(DRAM),因?yàn)榭紤]到相對(duì)于陣列密度的芯片尺寸,DRAM的造價(jià)比SRAM低很多。
此外,嵌入到處理器平臺(tái)中的DRAM即嵌入式DRAM(eDRAM)可用來(lái)減少處理器平臺(tái)要求的整個(gè)空間。然而,與SRAM相比,為了確保使包含在其中的數(shù)據(jù)得到保存,必須周期地刷新DRAM和eDRAM。通常由刷新控制器執(zhí)行的刷新過(guò)程消耗寶貴的功率以確保數(shù)據(jù)保持存儲(chǔ)。需要一種方法,其以盡可能多的節(jié)約功率的這樣一種方式刷新DRAM。
而且,在此類(lèi)手持多媒體設(shè)備中,諸如電話(huà),液晶顯示器(LCD),諸如那些在個(gè)人數(shù)字助理(PDA)中可見(jiàn)到的設(shè)備被執(zhí)行以允許(例如)用戶(hù)穩(wěn)定地瀏覽網(wǎng)頁(yè)。典型地LCD要求將數(shù)據(jù)從視頻緩沖區(qū)移動(dòng)到顯示器驅(qū)動(dòng)電路中。這帶來(lái)的問(wèn)題在于大的LCD總線(xiàn)必須從僅有8,16或者32位寬度的存儲(chǔ)器(例如,eDRAM)傳輸和接收來(lái)自8,16或者32位總線(xiàn)的數(shù)據(jù)。不利的是,相對(duì)于要求訪(fǎng)問(wèn)用于DMA技術(shù)的系統(tǒng)存儲(chǔ)器的其它外設(shè)和設(shè)備,LCD控制器和LCD的圖像處理器花費(fèi)很多時(shí)間使用系統(tǒng)存儲(chǔ)器,作為視頻緩沖器,其使其它外設(shè)和設(shè)備對(duì)系統(tǒng)存儲(chǔ)器的訪(fǎng)問(wèn)更難。因此,當(dāng)視頻圖像在LCD上顯示時(shí),系統(tǒng)存儲(chǔ)器(例如,eDRAM)主要作為視頻緩沖器,也作為系統(tǒng)RAM。單個(gè)RAM(例如,另一個(gè)eDRAM)可以被執(zhí)行以作為視頻緩沖器;然而,此附加的存儲(chǔ)器不利地增加晶體管計(jì)數(shù),并因此增加處理器平臺(tái)的尺寸。需要一種有效的存儲(chǔ)器,其能夠在被用作系統(tǒng)RAM的同時(shí)支持LCD控制器,以用于DMA數(shù)據(jù)傳輸。
本發(fā)明有利地闡述了上述和其他的需要。


通過(guò)結(jié)合附圖和附錄A和B給出的下面的更加詳細(xì)說(shuō)明,可以更加清楚地看到本發(fā)明的上述的和其他方面、特點(diǎn)和優(yōu)點(diǎn),其中圖1是無(wú)線(xiàn)多媒體處理器平臺(tái)的高層方框圖,具有三個(gè)處理器核數(shù)字信號(hào)處理器(DSP)、主處理器和位于內(nèi)嵌處理器通信模塊(IPCM)的RISC處理器核,其中,內(nèi)嵌處理器通信模塊執(zhí)行可編程直接存儲(chǔ)器存儲(chǔ)功能;圖2是圖1的無(wú)線(xiàn)多媒體處理器平臺(tái)的詳細(xì)方框圖;圖3是圖1和圖2的無(wú)線(xiàn)多媒體處理器平臺(tái)的內(nèi)嵌處理器通信模塊(IPCM)的方框圖;圖4是說(shuō)明由圖1和圖2的內(nèi)嵌處理器通信模塊(IPCM)提供的可編程地選擇直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)數(shù)據(jù)信道的框圖;圖5是說(shuō)明根據(jù)本發(fā)明優(yōu)選實(shí)施例的圖2的事件調(diào)度程序的功能的圖解;圖6是位于內(nèi)嵌處理器通信模塊和主處理器存儲(chǔ)器內(nèi)的指針和存儲(chǔ)器緩沖器的框圖,所述指針和存儲(chǔ)器緩沖器被用于每一個(gè)可編程的直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道;圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的、在由圖2刷新控制器執(zhí)行的執(zhí)行選擇刷新技術(shù)中執(zhí)行步驟的流程圖;圖8是在根據(jù)本發(fā)明優(yōu)選實(shí)施例中執(zhí)行存儲(chǔ)器刷新的溫度補(bǔ)償方法中的、由圖2的刷新控制器執(zhí)行的步驟的流程圖;圖9是使用圖7和圖8的選擇刷新技術(shù)和溫度補(bǔ)償刷新技術(shù)的存儲(chǔ)器刷新系統(tǒng)的方框圖。
在所有的視圖中,相應(yīng)的參考標(biāo)記代表相應(yīng)的組件。
有利的是,本發(fā)明通過(guò)提供無(wú)線(xiàn)多媒體處理器平臺(tái)闡述了上面的需要以及其它需要,所述無(wú)線(xiàn)多媒體處理器平臺(tái)包括多個(gè)處理器核,多個(gè)外設(shè),和內(nèi)嵌處理器通信模塊,該內(nèi)嵌處理器通信模塊執(zhí)行可編程直接存儲(chǔ)器訪(fǎng)問(wèn)功能以用于在多個(gè)處理器核的存儲(chǔ)器和連接到其上的各個(gè)外設(shè)之間的可編程地選擇數(shù)據(jù)傳輸。而且,處理器平臺(tái)包括使處理器平臺(tái)的尺寸和功耗最小的特征以及允許從主處理器存儲(chǔ)器的視頻緩沖以支持LCD顯示器而沒(méi)有限制其他設(shè)備訪(fǎng)問(wèn)主處理器存儲(chǔ)器的能力的特征。多媒體處理器平臺(tái)綜述首先參見(jiàn)圖1,示出了無(wú)線(xiàn)多媒體處理器平臺(tái)的高層方框圖,具有三個(gè)核數(shù)字信號(hào)處理器(DSP)、主處理器和位于內(nèi)嵌處理器通信模塊(IPCM)的RISC處理器核,其中,內(nèi)嵌處理器通信模塊執(zhí)行可編程直接存儲(chǔ)器存儲(chǔ)功能。圖中示出的是多媒體處理器平臺(tái)100,其包括數(shù)字信號(hào)處理器102(也稱(chēng)為DSP 102),隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器104(也稱(chēng)為RAM,DSP存儲(chǔ)器或者DSP RAM),主處理器106(也稱(chēng)為主機(jī)106或者M(jìn)core),嵌入式動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器108(也稱(chēng)為eDRAM 108或者主處理器存儲(chǔ)器),通用串行總線(xiàn)110(也稱(chēng)為USB 110),帶有選擇模式以支持IrDA標(biāo)準(zhǔn)的通用異步接收機(jī)/發(fā)射機(jī)112(也稱(chēng)為UART/IrDA 112),多媒體卡114(也稱(chēng)為MMC 114),和內(nèi)嵌處理器通信模塊116(也稱(chēng)為IPCM 116)。
以單個(gè)集成電路或者芯片的形式構(gòu)成的多媒體處理器平臺(tái)100,其也被稱(chēng)為處理器平臺(tái)100或者簡(jiǎn)單地稱(chēng)為處理器100,具有三個(gè)處理器核DSP 102,主處理器106,和位于IPCM 116之內(nèi)的RISC處理器核。處理器100代表“片上系統(tǒng)”設(shè)計(jì)(也稱(chēng)為“SOC”)。在無(wú)線(xiàn)手持多媒體設(shè)備的應(yīng)用中,有利的是處理器100的組件都出現(xiàn)在單個(gè)芯片上。這是因?yàn)槭殖謶?yīng)用設(shè)備中的尺寸的限制,也因?yàn)樵诜至⑿酒系姆至⒌奶幚砥鞅仨毻ㄟ^(guò)硬連線(xiàn)連接在一起,這將導(dǎo)致芯片到芯片連線(xiàn)的失配。然而,重要的是要注意到本發(fā)明不限于在芯片上的系統(tǒng)設(shè)計(jì),因此,如果在另外的應(yīng)用中需要,可以在分立的芯片上實(shí)現(xiàn)三個(gè)處理器核,也就是DSP 102、主處理器106、和IPCM 116的RISC處理器核。
在運(yùn)行中,IPCM 116將所有的三個(gè)部分,即DSP部分(也就是DSP 102和RAM 104)、主處理器部分(也就是主處理器106和eDRAM108)和外設(shè)(也就是USB 110,UART/IrDA 112,和MMC 114)耦合起來(lái)。有利的是,IPCM 116提供可編程直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)數(shù)據(jù)信道以允許進(jìn)行以下直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸(1)從特定外設(shè)到DSP RAM 104或者eDRAM 108,(2)從DSP RAM 104或者eDRAM108到特定外設(shè),(3)在DSP RAM 104或者eDRAM 108之間。這些DMA數(shù)據(jù)傳輸可以是次數(shù)同步的(time coordinated)(以預(yù)定次數(shù)出現(xiàn))或者事件同步的(event coordinated)(根據(jù)請(qǐng)求或者指令出現(xiàn))。IPCM具有一個(gè)精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器核,其允許通過(guò)可編程地選擇DMA數(shù)據(jù)信道進(jìn)行直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)數(shù)據(jù)傳輸。例如,IPCM 116代替大量的硬件DMA控制器以創(chuàng)建(例如)32個(gè)可編程數(shù)據(jù)信道,其中每一個(gè)數(shù)據(jù)信道可被編程以在上述的三個(gè)方向中的任意之一傳輸數(shù)據(jù)。等價(jià)的硬件DMA實(shí)現(xiàn)通常需要2*n*(c+1)個(gè)單個(gè)的DMA數(shù)據(jù)硬件控制器,其中2代表兩個(gè)方向上的數(shù)據(jù)信道,n代表數(shù)據(jù)信道數(shù)目,c代表能夠使用IPCM 116的處理器數(shù)目,這樣c+1代表數(shù)據(jù)路徑數(shù)目。在示出的實(shí)施例中,n=32,c=2(也就是DSP 102和主處理器106),這樣c+1=3(也就是數(shù)據(jù)路徑的數(shù)目,例如,外設(shè)到存儲(chǔ)器,存儲(chǔ)器到外設(shè),和存儲(chǔ)器到存儲(chǔ)器),這得到IPCM 116代替192個(gè)單個(gè)的硬件DMA控制器。不利的是,這樣大量的DMA控制器數(shù)目在成本上不經(jīng)濟(jì),并且將占據(jù)處理器的可用空間。因此,IPCM提供大量的DMA數(shù)據(jù)信道或者數(shù)據(jù)路徑,它們中的每一個(gè)可被配置或可編程以將不同的節(jié)點(diǎn)連接在一起。這樣,節(jié)點(diǎn)通常是RAM 104,eDRAM 108,或者其中一個(gè)外設(shè)。因此,可以對(duì)單個(gè)的DMA數(shù)據(jù)信道進(jìn)行編程以提供從USB 110到eDRAM 108的直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸,然后,可以在之后的時(shí)間內(nèi)對(duì)相同的數(shù)據(jù)信道重編程或者重配置以提供從DSP RAM 104到MMC 114的直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸。
這是來(lái)自提供了非可編程、從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的單向有線(xiàn)數(shù)據(jù)信道的硬件DMA控制器的發(fā)送(departure),這些DMA控制器不能在隨后的時(shí)間內(nèi)重新配置作為兩個(gè)不同的節(jié)點(diǎn)。有利的是,在無(wú)線(xiàn)多媒體應(yīng)用中,當(dāng)芯片或者處理器100的物理尺寸很重要、并且由大量的外設(shè)要求很多的DMA控制器進(jìn)行直接存儲(chǔ)器訪(fǎng)問(wèn)時(shí),IPCM 116提供了一種可編程的DMA功能,在此功能中,形成的數(shù)據(jù)信道可以根據(jù)需要進(jìn)行改變。因此,不需要很多的DMA控制器,并且處理器100的整個(gè)尺寸小于如果實(shí)現(xiàn)很多的硬件DMA控制器時(shí)的尺寸。
IPCM 116的功能有利地將主處理器106和DSP 104從為了執(zhí)行數(shù)據(jù)傳輸不得不停止執(zhí)行任務(wù)的情況中解放出來(lái)。IPCM 116執(zhí)行這些傳輸以提供給DSP 102和主處理器106最有效的操作。換言之,允許DSP 102和主處理器106以他們最優(yōu)的速度工作,并且在不降低它們執(zhí)行簡(jiǎn)單的數(shù)據(jù)傳輸?shù)那闆r下來(lái)執(zhí)行制定給它們的重要任務(wù)。
接下來(lái)參見(jiàn)圖2,示出了圖1的無(wú)線(xiàn)多媒體處理器平臺(tái)的一個(gè)實(shí)施例的詳細(xì)方框圖。圖中示出了多媒體處理器平臺(tái)100,包括數(shù)字信號(hào)處理器102(DSP 102),DSP RAM 104,DSP外設(shè)接口202,主處理器106(也稱(chēng)為呼叫處理器106),嵌入式DRAM 108(eDRAM108),包括圖像處理器206和配置寄存器208的LCD控制器204(通常也稱(chēng)為顯示控制器),以及主外設(shè)接口210。處理器平臺(tái)100也包括下述外設(shè)230USB 110,UART/IrDA 112,同步串行接口212(也稱(chēng)為SSI 212),MMC 114,和藍(lán)牙接口214。此外,還包括IPCM 116,事件定時(shí)器216,數(shù)據(jù)路徑選擇218(也稱(chēng)為數(shù)據(jù)路徑選擇單元218),eDRAM刷新控制器220(也稱(chēng)為刷新控制器220),和總線(xiàn)接口222。
處理器平臺(tái)進(jìn)一步包括以下總線(xiàn)耦合到刷新控制器220的時(shí)鐘總線(xiàn)224(也稱(chēng)為“c”總線(xiàn)224);將DSP 102、DSP RAM 104和DSP外設(shè)202耦合到IPCM 116的DSP系統(tǒng)總線(xiàn)226(也稱(chēng)為“d”總線(xiàn));將外設(shè)230耦合到事件定時(shí)器216和IPCM 116的事件總線(xiàn)228(也稱(chēng)為“e”總線(xiàn)228);將主處理器耦合到外設(shè)230和210、LCD控制器204、總線(xiàn)接口222、數(shù)據(jù)路徑選擇218、刷新控制器220和IPCM 116的主系統(tǒng)總線(xiàn)232(也稱(chēng)為“h”總線(xiàn)232);將IPCM 116耦合到外設(shè)230的IPCM總線(xiàn)234(也稱(chēng)為“i”總線(xiàn)234);將數(shù)據(jù)路徑選擇218耦合到eDRAM 108的存儲(chǔ)器總線(xiàn)236(也稱(chēng)為“m”總線(xiàn)236);將圖像處理器206耦合到數(shù)據(jù)路徑選擇218的LCD總線(xiàn)238(也稱(chēng)為“p”總線(xiàn)238);將刷新控制器220耦合到數(shù)據(jù)路徑選擇218的刷新總線(xiàn)240(也稱(chēng)為“r”總線(xiàn)240);將總線(xiàn)接口耦合到(例如)外部存儲(chǔ)器244的外部系統(tǒng)總線(xiàn)242(也稱(chēng)為“s”總線(xiàn)242);和將IPCM 116耦合到數(shù)據(jù)路徑選擇218的傳輸總線(xiàn)246(也稱(chēng)為“t”總線(xiàn)246)。
圖2中也示出了不是處理器平臺(tái)100的一部分的如下方面耦合到DSP外設(shè)接口202的無(wú)線(xiàn)硬件248,耦合到圖像處理器206的LCD面板250,耦合到總線(xiàn)接口222的外部存儲(chǔ)器244,和耦合到刷新控制器220的時(shí)鐘輸入252。
處理器平臺(tái)包括三個(gè)處理器核DSP 102,主處理器106,和嵌入在IPCM 116中的RISC處理機(jī)核。有利的是,在此實(shí)施例中,以片上系統(tǒng)形式實(shí)現(xiàn)處理器平臺(tái)100,盡管本發(fā)明的很多特征并不限于在芯片上的集成系統(tǒng)設(shè)計(jì)。下面是對(duì)處理器平臺(tái)100的幾個(gè)組件的簡(jiǎn)要介紹。
正如本領(lǐng)域所公知的一樣,DSP 102經(jīng)過(guò)DSP系統(tǒng)總線(xiàn)226與系統(tǒng)存儲(chǔ)器(例如DSP RAM 104和DSP外設(shè)接口202)連接。DSP RAM 104包括DSP程序和數(shù)據(jù)存儲(chǔ)區(qū)域使用DSP外設(shè)接口202來(lái)將DSP核(即調(diào)制解調(diào)器)連接到無(wú)線(xiàn)硬件248以執(zhí)行蜂窩無(wú)線(xiàn)通信。這些組件在本領(lǐng)域中是熟知的,并且通常可在蜂窩電話(huà)中見(jiàn)到。
如本領(lǐng)域所知,主處理器106是通用的精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器或者復(fù)雜指令集計(jì)算機(jī)(CISC)處理器。LCD控制器204是一個(gè)包含數(shù)字邏輯的模塊,該模塊被配置將存儲(chǔ)器內(nèi)(例如,eDRAM108存儲(chǔ)陣列)的二進(jìn)制圖像呈現(xiàn)到外部LCD面板250上。主外設(shè)接口210包括一個(gè)或多個(gè)數(shù)字邏輯模塊,其被配置作為由主處理器106操作的外設(shè)。一個(gè)這樣的外設(shè)接口包括鍵盤(pán)接口、通用定時(shí)器和通用I/O端口。
主處理器還包括多媒體外設(shè)230。USB 110是一個(gè)邏輯塊,其被配置作為執(zhí)行在通用串行總線(xiàn)中公知的開(kāi)放標(biāo)準(zhǔn)的多媒體訪(fǎng)問(wèn)層功能的外設(shè)。該模塊配置有2個(gè)接口端口經(jīng)h總線(xiàn)232連接到主處理器106的端口,以用于配置管理和控制,以及經(jīng)i總線(xiàn)226連接到IPCM 116的數(shù)據(jù)端口,用于將數(shù)據(jù)發(fā)到外部串行接口并從外部串行接口發(fā)送數(shù)據(jù)。
IrDA/UART 112是一個(gè)被配置為本領(lǐng)域中熟知的執(zhí)行必要功能的外設(shè)的邏輯塊,作為具有選擇模式的通用異步接收機(jī)/發(fā)射機(jī),以支持IrDA標(biāo)準(zhǔn)。IrDA/UART 112配置有2個(gè)接口端口經(jīng)h總線(xiàn)232連接到主處理器106的端口,用于配置管理,以及經(jīng)I總線(xiàn)236連接到IPCM116的數(shù)據(jù)端口,用于將數(shù)據(jù)發(fā)到外部串行接口并從外部串行接口發(fā)送數(shù)據(jù)。
SSI 212是一個(gè)被配置為在本領(lǐng)域中的執(zhí)行必要功能的邏輯塊,作為同步串行接口。該模塊配置有2個(gè)接口端口經(jīng)h總線(xiàn)232連接到主處理器106的端口,用于配置管理,以及經(jīng)i總線(xiàn)236連接到IPCM116的數(shù)據(jù)端口,用于將數(shù)據(jù)發(fā)到外部串行接口并從外部串行接口發(fā)送數(shù)據(jù)。
MMC 114是一個(gè)被指定用于連接到并且與多媒體卡(MULTIMEDIACARD)一起工作的數(shù)字接口。MMC 114配置有2個(gè)接口端口經(jīng)h總線(xiàn)232連接到主處理器106的端口,用于配置管理,以及經(jīng)i總線(xiàn)236連接到IPCM 116的數(shù)據(jù)端口,用于將數(shù)據(jù)發(fā)到外部MULTIMEDIACARD并從外部MULTIMEDIACARD發(fā)送數(shù)據(jù)。
藍(lán)牙接口214是包含設(shè)計(jì)用于支持BLUETOOTH開(kāi)放標(biāo)準(zhǔn)的數(shù)字接口。藍(lán)牙接口214配置有2個(gè)接口端口經(jīng)h總線(xiàn)232連接到主處理器106的端口,用于配置管理,以及經(jīng)i總線(xiàn)236連接到IPCM 116的數(shù)據(jù)端口,用于將數(shù)據(jù)發(fā)到外部的藍(lán)牙兼容無(wú)線(xiàn)電路并從外部的藍(lán)牙兼容無(wú)線(xiàn)電路發(fā)送數(shù)據(jù)。
事件定時(shí)器216是一個(gè)經(jīng)e總線(xiàn)228耦合到IPCM 116的二進(jìn)制計(jì)數(shù)器,并且具有“n”個(gè)狀態(tài),這些狀態(tài)被連接到能夠檢測(cè)預(yù)定不同的狀態(tài)的比較邏輯,用于在指出特定狀態(tài)時(shí)產(chǎn)生一個(gè)信號(hào)。該計(jì)數(shù)器由一個(gè)精確的時(shí)鐘源計(jì)時(shí)。在一個(gè)實(shí)施例中,事件定時(shí)器216可以在給定的時(shí)間內(nèi)處理32個(gè)事件。在一些實(shí)施例中,可使用事件定時(shí)器216來(lái)以(例如)規(guī)則的時(shí)間間隔將編程的事件或者直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸發(fā)送到IPCM 116。
設(shè)計(jì)IPCM 116來(lái)執(zhí)行內(nèi)嵌處理器和采用DSP 102處理器的串行I/O通信,以及諸如USB 110、IRDA/UART 112、藍(lán)牙接口214和MMC114的I/O外設(shè)230。有策略地將IPCM 116放置在一結(jié)構(gòu)中以使到/來(lái)自可編程直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)數(shù)據(jù)傳輸可與主處理器106或者DSP102進(jìn)行。此外,IPCM 116支持在DSP和主機(jī)本身之間的數(shù)據(jù)傳輸。因此,有利的是,IPCM 116可作為一個(gè)可編程DMA來(lái)將數(shù)據(jù)傳輸?shù)酱鎯?chǔ)器,而無(wú)需涉及DSP 102或者主處理器106來(lái)進(jìn)行數(shù)據(jù)傳輸。
在IPCM 116之內(nèi)是可編程RISC核,其被編程以執(zhí)行DMA功能。參照?qǐng)D3進(jìn)行詳細(xì)地介紹IPCM 116的內(nèi)部工作。相比于不可編程(例如基于硬件)的方案,該措施提供了幾種優(yōu)點(diǎn)。ICPM 116的可編程DMA功能具有很多好處。首先,允許對(duì)RISC核進(jìn)行編程以執(zhí)行各種任務(wù)的動(dòng)態(tài)路由。在可編程控制之下,在一個(gè)實(shí)施例中,可將IPCM 116配置具有32個(gè)同時(shí)的DMA數(shù)據(jù)信道,每一個(gè)DMA數(shù)據(jù)信道可以配置在上述的三個(gè)方向中任意之一。通過(guò)在這32個(gè)DMA數(shù)據(jù)信道中的各個(gè)信道上路由DMA數(shù)據(jù)傳輸。例如,可以配置每一個(gè)數(shù)據(jù)信道作為DMA數(shù)據(jù)信道以在下述之間進(jìn)行DMA數(shù)據(jù)傳輸(1)外設(shè)230到存儲(chǔ)器(例如DSP RAM 104或者eDRAM 108),(2)存儲(chǔ)器(例如DSP RAM 104或者eDRAM 108)到外設(shè)230,(3)存儲(chǔ)器(例如DSPRAM 104或者eDRAM 108)到存儲(chǔ)器(例如eDRAM或者108DSP RAM104)。有利的是,可以在后面對(duì)這32個(gè)可編程的DMA數(shù)據(jù)信道中的每一個(gè)進(jìn)行重編程以允許在兩個(gè)不同的節(jié)點(diǎn)之間進(jìn)行DMA數(shù)據(jù)傳輸。
而且,IPCM 116允許以更小的腳印(footprint)實(shí)現(xiàn)的更多功能。這是因?yàn)镮PCM 116代替了不同的節(jié)點(diǎn)之間,也就是DSP RAM 104、eDRAM 108、和不同的I/O外設(shè)230之間的多個(gè)分立的有線(xiàn)DMA控制器。這顯著地節(jié)約了在管芯上所需要的門(mén)或者晶體管,這對(duì)于減少手持多媒體應(yīng)用的處理器尺寸來(lái)說(shuō)很重要。通常,DMA信道的門(mén)數(shù)大約為每信道3k門(mén)。在此實(shí)施例中,當(dāng)要求多于6個(gè)硬件DMA信道時(shí),IPCM 116具有節(jié)約空間的優(yōu)點(diǎn)。有利的是,在此實(shí)施例中,IPCM116在大約6個(gè)實(shí)際的硬件DMA信道的腳印之內(nèi)可用作192個(gè)分立的DMA信道(如上所述)。
此外,IPCM 116很靈活,并且可縮放(scalable)。這個(gè)概念使得可在下一代產(chǎn)品中對(duì)其自身進(jìn)行改進(jìn)。靈活的數(shù)據(jù)路由能力使得能夠附加到諸如基于硬件加速器的基本結(jié)構(gòu)上。IPCM 116的RISC核的增強(qiáng)包括增加寄存器和新的指令以允許該概念滿(mǎn)足將來(lái)的需要。
同樣,IPCM 116的可編程RISC處理器核提供了要定義的公共應(yīng)用程序接口(API),因?yàn)榭删幊蘎ISC核使用被映射到主存儲(chǔ)器(也就是eDRAM 108)的虛擬控制寄存器。當(dāng)在下一代增強(qiáng)了IPCM 116時(shí),API可以完整保持。這一特點(diǎn)增加了軟件的可重使用性。
另一個(gè)特點(diǎn)是將智能功率管理提供給IPCM 116,使其在不工作期間進(jìn)入睡眠模式。這對(duì)于在將電池的壽命作為重要考慮因素的手持應(yīng)用中是很重要的。
IPCM 116的另一個(gè)特點(diǎn)是,如在本領(lǐng)域中公知一樣,可以使用little-Endian格式或者big-Endian格式來(lái)將DMA數(shù)據(jù)傳輸送到存儲(chǔ)器(例如,DSP RAM 104或者eDRAM 108)和從存儲(chǔ)器(例如,DSP RAM104或者eDRAM 108)發(fā)送DMA數(shù)據(jù)傳輸。這使得IPCM 116能夠與根據(jù)任一格式配置的不同類(lèi)型的處理器進(jìn)行通信。例如,配置為littleEndian格式或者big Endian格式的DSP可以與IPCM 116接口。
處理器平臺(tái)100的另一個(gè)組件是,由于整個(gè)系統(tǒng)在芯上實(shí)現(xiàn),主處理器106的RAM是由如本領(lǐng)域中熟知的DRAM類(lèi)型比特單元構(gòu)成的片上陣列,并且被稱(chēng)為嵌入式DRAM或者eDRAM 108。該陣列被配置為65536個(gè)字(64k字),每一字為128位,總計(jì)67,108,846位單元(64M位)。必須周期地刷新eDRAM 108,這一功能由刷新控制器220來(lái)完成。eDRAM 108的128位寬度被優(yōu)化用于LCD控制器,這將在下面進(jìn)一步地介紹。因此,eDRAM 108作為主處理器存儲(chǔ)器和用于LCD面板250的片上視頻緩沖器。有利的是,eDRAM的寬度減少了LCD控制器204消耗的訪(fǎng)問(wèn)周期數(shù),從而增加了可用于主處理器106和IPCM 116的訪(fǎng)問(wèn)周期數(shù)。
總線(xiàn)接口222是包含被配置作為本領(lǐng)域公知的存儲(chǔ)器控制器的數(shù)字邏輯的模塊。該模塊支持經(jīng)總線(xiàn)242連接到處理器平臺(tái)100的外部存儲(chǔ)器244。外部存儲(chǔ)器244包括諸如SRAM,EPROM,F(xiàn)RASH和DRAM的多個(gè)分立的存儲(chǔ)器設(shè)備。外部存儲(chǔ)器244可由主處理器106直接地訪(fǎng)問(wèn),或者由DSP 102經(jīng)IPCM 116間接地訪(fǎng)問(wèn)。這是有利的,因?yàn)檫@使得主處理器106和/或DSP 102加載和運(yùn)行應(yīng)用程序,該應(yīng)用程序太大以至無(wú)法存儲(chǔ)在這些處理器的相應(yīng)存儲(chǔ)器中。例如,DSP 102可以加載和運(yùn)行存儲(chǔ)在外部存儲(chǔ)器244中的語(yǔ)音識(shí)別程序。而且,總線(xiàn)接口222允許同時(shí)處理在主處理器106、IPCM 116和DSP 102之間的操作;因此,在單個(gè)集成電路上執(zhí)行多個(gè)指令流、多個(gè)數(shù)據(jù)流(也就是MIMD)實(shí)現(xiàn)了(例如)多媒體電話(huà)。
注意,由于eDRAM 108具有自己的總線(xiàn)也就是m總線(xiàn)236,而不是作為主系統(tǒng)總線(xiàn)或者h(yuǎn)總線(xiàn)232的一部分,主處理器106可以通過(guò)總線(xiàn)接口22訪(fǎng)問(wèn)外部存儲(chǔ)器244,同時(shí)IPCM 116訪(fǎng)問(wèn)eDRAM 108。
數(shù)據(jù)路徑選擇218包括仲裁邏輯和預(yù)編程的數(shù)據(jù)多路復(fù)用器,該預(yù)編程的數(shù)據(jù)多路復(fù)用器被設(shè)計(jì)用于將eDRAM 108的數(shù)據(jù)路徑連接到可能要求訪(fǎng)問(wèn)陣列的4個(gè)實(shí)體中的一個(gè)。可以訪(fǎng)問(wèn)eDRAM 108的4個(gè)實(shí)體是具有32位訪(fǎng)問(wèn)寬度的主處理器106,具有32位訪(fǎng)問(wèn)寬度的IPCM 116,具有128位訪(fǎng)問(wèn)寬度的LCD控制器204,和用于象本領(lǐng)域所熟知的那樣執(zhí)行為4096行的16毫秒周期封裝刷新(stealingrefresh)。在示出的實(shí)施例中,每一個(gè)請(qǐng)求者具有唯一的路徑總線(xiàn)寬度,例如p總線(xiàn)238具有128位的寬度,而i總線(xiàn)246和h總線(xiàn)232具有32位的寬度。數(shù)據(jù)路徑選擇218根據(jù)獲得授權(quán)訪(fǎng)問(wèn)的設(shè)備自動(dòng)地配置合適的數(shù)據(jù)路徑。這樣,數(shù)據(jù)路徑選擇218將128位寬度的陣列進(jìn)行轉(zhuǎn)換以支持例如在IPCM 116之內(nèi)的常用的32位RISC處理器核。在所有的情況下,為了從陣列中引用正確的數(shù)據(jù)元素,要考慮由請(qǐng)求者提供的存儲(chǔ)器地址。用于每一個(gè)請(qǐng)求者的總線(xiàn)寬度和訪(fǎng)問(wèn)模式示于下面的表1中。
表1 數(shù)據(jù)路徑配置

而且,在一個(gè)實(shí)施例中,數(shù)據(jù)路徑選擇218總是使用big-Endian格式來(lái)向和從eDRAM 108存儲(chǔ)和獲取數(shù)據(jù)。然而,由于IPCM被配置為工作于little-Endian格式或者big-Endian格式,如果IPCM根據(jù)little-Endian格式來(lái)工作,數(shù)據(jù)路徑選擇218根據(jù)little-Endian來(lái)將IPCM進(jìn)行來(lái)回轉(zhuǎn)換,并且來(lái)回轉(zhuǎn)換eDRAM為big-Endian格式。這樣,IPCM必須通知數(shù)據(jù)路徑選擇它被配置為那一個(gè)格式。
刷新控制器220產(chǎn)生對(duì)eDRAM 108的存儲(chǔ)請(qǐng)求,以便于周期地刷新位于eDRAM陣列中的位單元。然而,在本發(fā)明的優(yōu)選實(shí)施例中,以這樣一種方式執(zhí)行刷新eDRAM 108的方法,這在已知的刷新技術(shù)是所不考慮的最小化功耗。參考圖7-9介紹設(shè)計(jì)用于節(jié)約功耗的幾種特定的刷新技術(shù)。
下面是對(duì)各種總線(xiàn)接口的介紹。時(shí)鐘總線(xiàn)224(“c”總線(xiàn))是一個(gè)時(shí)鐘輸入線(xiàn),用于對(duì)刷新控制器220進(jìn)行程序設(shè)計(jì)和定時(shí)。DSP系統(tǒng)總線(xiàn)226(“d”總線(xiàn))包含分開(kāi)的地址和數(shù)據(jù)路徑,以及具有向選定的設(shè)備傳送讀寫(xiě)操作的控制信號(hào)。此外,也包括了總線(xiàn)請(qǐng)求和總線(xiàn)確認(rèn)信號(hào),以允許IPCM 116請(qǐng)求使用DSP系統(tǒng)總線(xiàn)。事件總線(xiàn)228(“e”總線(xiàn))是由外設(shè)230驅(qū)動(dòng)的一組信號(hào),其被發(fā)送到IPCM 116(見(jiàn)圖3)的輸入事件檢測(cè)設(shè)備以用于激活數(shù)據(jù)傳送操作。主系統(tǒng)總線(xiàn)232(“h”總線(xiàn))包含分開(kāi)的地址和數(shù)據(jù)路徑,以及具有向選定的設(shè)備傳送讀寫(xiě)操作的控制信號(hào)。h總線(xiàn)232可以獨(dú)立于其它所有的總線(xiàn)工作。此外,總線(xiàn)請(qǐng)求和總線(xiàn)確認(rèn)信號(hào)也協(xié)同工作以允許IPCM請(qǐng)求使用h總線(xiàn)232。IPCM總線(xiàn)234(“i”總線(xiàn))是包含分開(kāi)的地址和數(shù)據(jù)路徑的IPCM系統(tǒng)總線(xiàn),以及具有向選定的外設(shè)230傳送讀寫(xiě)操作的控制信號(hào)。存儲(chǔ)器總線(xiàn)236(“m”總線(xiàn)236)是一個(gè)雙向總線(xiàn),并且被用于將eDRAM 108和數(shù)據(jù)路徑選擇218模塊互連。存儲(chǔ)器總線(xiàn)236具有128位的總線(xiàn)寬度。LCD總線(xiàn)238(“p”總線(xiàn)238)是具有128位的寬度的單向總線(xiàn),用來(lái)將顯示圖像樣值傳送到LCD控制器204以在LCD面板250上顯示。刷新總線(xiàn)240(“r”總線(xiàn))是這樣的一種總線(xiàn),當(dāng)有效時(shí),包含在eDRAM 108陣列中的要被刷新的下一行的地址。外部系統(tǒng)總線(xiàn)242(“s”總線(xiàn))包含分開(kāi)的地址和數(shù)據(jù)路徑,該數(shù)據(jù)路徑具有傳送選定的外部存儲(chǔ)器244進(jìn)行讀和寫(xiě)操作的控制信號(hào)。外部系統(tǒng)總線(xiàn)242可由主處理器106或者IPCM 116進(jìn)行訪(fǎng)問(wèn)。傳輸總線(xiàn)246(“t”總線(xiàn))將訪(fǎng)問(wèn)請(qǐng)求從IPCM 116傳送到eDRAM 08陣列。傳輸總線(xiàn)是雙向的,并且具有32位數(shù)據(jù)路徑和32位地址路徑。
eDRAM 108的另一個(gè)特征是,其提供了一個(gè)片上視頻緩沖器,同時(shí)它被作為用于主處理器106的RAM。有利的是,為了適應(yīng)LCD控制器204,eDRAM 108是128位寬度。如果eDRAM為32為寬度,其將習(xí)慣于支持通用RISC處理器核和主處理器,eDRAM將由來(lái)自支持LCD控制器204的請(qǐng)求支配,使得使用eDRAM的其他設(shè)備不得不與LCD控制器204競(jìng)爭(zhēng)。因此,LCD控制器204實(shí)質(zhì)上成為eDRAM和IPCM 116的主要用戶(hù),而主處理器106成為次要用戶(hù)。通過(guò)提供與LCD總線(xiàn)238相同寬度的很寬的緩沖器,LCD控制器204僅僅簡(jiǎn)要地訪(fǎng)問(wèn)eDRAM 108,允許IPCM 116和主處理器106成為eDRAM 108的主要用戶(hù)。因此,以128、位寬度配置eDRAM,LCD控制器僅僅使用2-3%的eDRAM能力,有利地將97%留給使用eDRAM的其他設(shè)備。注意,數(shù)據(jù)路徑選擇218允許不同寬度的總線(xiàn)訪(fǎng)問(wèn)eDARM 108。
事實(shí)上,eDARM 108兼作系統(tǒng)存儲(chǔ)器和視頻緩沖器進(jìn)一步減少了在處理器平臺(tái)100上的空間。如果采用專(zhuān)用的分立視頻緩沖器,如同常規(guī)進(jìn)行的一樣,該分立的視頻緩沖器將占用處理器平臺(tái)上的額外空間,或者成為連接到LCD控制器204的分立集成電路,其將占據(jù)更加多的空間,并且導(dǎo)致了配線(xiàn)中的損失。與常規(guī)的分立視頻緩沖器不同,處理器平臺(tái)100的eDARM 108以小型封裝實(shí)現(xiàn)系統(tǒng)存儲(chǔ)器和視頻緩沖器。
下面介紹IPCM 116的其它方面的特征。
由于IPCM允許從映射到IPCM總線(xiàn)236的外設(shè)到DSP RAM 104或者eDRAM 108進(jìn)行數(shù)據(jù)傳輸,該IPCM允許由DSP 102和/或主處理器106使用外設(shè)230。例如,諸如MMC 114的數(shù)據(jù)存儲(chǔ)設(shè)備能夠訪(fǎng)問(wèn)DSP 102或者主處理器106。因此,MP3格式的數(shù)據(jù)可以從MMC 114流到DSP 102以影響互聯(lián)網(wǎng)音頻播放器。其它的應(yīng)用包括由主處理器106使用IPCM來(lái)寫(xiě)或讀位于MMC 114中的數(shù)據(jù)文件。而且,IPCM可以被配置以將數(shù)字音頻樣值向/從移動(dòng)DSP RAM 104,并移動(dòng)到一對(duì)USB同步端口;因此,實(shí)現(xiàn)了一個(gè)揚(yáng)聲器電話(huà)。此外,IPCM 116支持多個(gè)源于和/或終止于eDRAM 108或者DSP RAM 104的數(shù)據(jù)流。來(lái)自eDRAM 108和DSP RAM 104中的每一個(gè)的數(shù)據(jù)流可以相互獨(dú)立地傳送。
此外,由于IPCM 116包含RISC處理器核(詳情參見(jiàn)參考圖3的介紹),它是可智能編程的。因此,可以經(jīng)來(lái)自eDRAM的DMA數(shù)據(jù)傳輸將編程任務(wù)從主處理器106卸下。例如,IPCM 116可以執(zhí)行通常由主處理器106執(zhí)行的“bit-blit”任務(wù)。正如在計(jì)算機(jī)圖形技術(shù)領(lǐng)域所熟知的那樣,“bit-blit”任務(wù)涉及改變可視顯示的背景顯示或者導(dǎo)致圖像“飛”過(guò)可視顯示。IPCM 116可以將必要的程序從主處理器116下載以執(zhí)行此類(lèi)任務(wù),而不是由主處理器106來(lái)執(zhí)行,使得主處理器106解放以執(zhí)行其它任務(wù)。
另一個(gè)應(yīng)用是將主處理器106或者DSP 102從執(zhí)行諸如用在IrDA標(biāo)準(zhǔn)中的“PPP”或者“LAP層”功能的分組協(xié)議幀功能中解放出來(lái)。此時(shí),有利的是,主處理器106和DSP 102不需要必須執(zhí)行這些功能。
在一個(gè)實(shí)施例中,通過(guò)在主處理器106的控制和管理下將分組發(fā)送到解碼器,IPCM 116支持耦合到SSI 212或者UART/IrDA 112的MPEG解碼器。IPCM 116從外部MPEG解碼器重新得到已解碼的像素?cái)?shù)據(jù),并且將像素?cái)?shù)據(jù)存放到分配在eDRAM 108中的視頻緩沖器區(qū)域。這樣,將“在桌面窗口上的圖像(picture-in-desktop-window)”提供給LCD面板250。
IPCM利用事件定時(shí)器216,使得可以根據(jù)事件定時(shí)器216來(lái)激活可編程的DMA數(shù)據(jù)傳輸,除了可由各自的外設(shè)和/或DSP 102和/或主處理器106觸發(fā)的事件激活之外。因此,預(yù)編程的DMA數(shù)據(jù)傳輸將自動(dòng)地出現(xiàn)預(yù)定的次數(shù)。
而且,為了使功耗最小,將IPCM設(shè)計(jì)為當(dāng)沒(méi)有事件時(shí)進(jìn)入低功耗模式(也就是睡眠模式)。因此,IPCM 116將不會(huì)不必要地在DMA數(shù)據(jù)傳輸之間消耗電池壽命。內(nèi)嵌處理器通信模塊(IPCM)接下來(lái)參見(jiàn)圖3,示出了圖1和2的無(wú)線(xiàn)多媒體處理器平臺(tái)100的內(nèi)嵌處理器通信模塊(IPCM)的方框圖。示出的IPCM 116(也稱(chēng)為“可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊”)包括RISC處理器核(更通常地也稱(chēng)為處理器302的RISC核),事件調(diào)度器304(也稱(chēng)為事件檢測(cè)單元304,任務(wù)調(diào)度器304或者可編程任務(wù)調(diào)度器304),靜態(tài)RAM 306(也稱(chēng)為SRAM 306),只讀存儲(chǔ)器(也稱(chēng)為ROM 308),DSP直接存儲(chǔ)器訪(fǎng)問(wèn)單元310(也稱(chēng)為DSP DMA單元310),主直接存儲(chǔ)器訪(fǎng)問(wèn)單元312(也稱(chēng)為主DMA單元312),DSP控制寄存器314(也稱(chēng)為DSP控制單元314),和主控制寄存器316(也稱(chēng)為主控制單元316)。圖中也示出了DSP系統(tǒng)總線(xiàn)226(“d”總線(xiàn)226)。主系統(tǒng)總線(xiàn)232(“h”總線(xiàn)232),IPCM總線(xiàn)234(“i”總線(xiàn)234),和包括USB 110、IrDA/UART112、SSI 212和MMC 114的外設(shè)230。圖中也示出了事件定時(shí)器輸入318和外設(shè)/DMA事件輸入320,其經(jīng)事件總線(xiàn)228(“e”總線(xiàn)228)進(jìn)入事件調(diào)度器304。
經(jīng)總線(xiàn)接口將DSP控制寄存器314和DSP DMA單元310耦合到d總線(xiàn)226。經(jīng)總線(xiàn)接口將主控制寄存器316和主DMA單元312耦合到h總線(xiàn)226。IPCM 116也包括耦合到各種外設(shè)230的i總線(xiàn)234。在IPCM 116之內(nèi),RISC處理器核302、SRAM 306、ROM 308、DSP控制寄存器314、DSP DMA單元310、主控制寄存器316和主DMA單元312都被耦合到i總線(xiàn)234。DSP DMA單元310和主DMA單元312各自包括常規(guī)的DMA控制器的總線(xiàn)收發(fā)器部分。事件調(diào)度器304被耦合到處理器302。到事件調(diào)度器304的輸入是事件定時(shí)器318和外設(shè)/DMA事件320。
在運(yùn)行中,IPCM 116提供了內(nèi)嵌處理器和串行I/O數(shù)據(jù)傳輸,它們采用直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)技術(shù),而沒(méi)有實(shí)際上為所有的不同可能的數(shù)據(jù)傳輸路徑實(shí)現(xiàn)各自專(zhuān)用的硬件DMA信道。有利的是,通過(guò)提供IPCM 116執(zhí)行這些DMA數(shù)據(jù)傳輸,主處理器和DSP從此類(lèi)任務(wù)中解放出來(lái),并且可以執(zhí)行更加重要的任務(wù)。有利的是,與傳統(tǒng)的DMA電路(也稱(chēng)為DMA控制器)相反,IPCM 116是一個(gè)可編程的DMA模塊,其提供了可編程DMA數(shù)據(jù)信道,該可編程DMA數(shù)據(jù)信道可被編程來(lái)執(zhí)行三種類(lèi)型的數(shù)據(jù)傳輸之一(1)從可選擇的外設(shè)230到兩個(gè)存儲(chǔ)器(例如DSP RAM 104或eDRAM 108)任意之一,(2)從兩個(gè)存儲(chǔ)器(例如DSP RAM 104或eDRAM 108)任意之一到可選擇的外設(shè)230,(3)兩個(gè)存儲(chǔ)器之間。因此,IPCM 116配置了(例如)32個(gè)可編程DMA數(shù)據(jù)信道,每一個(gè)可被配置用于六種數(shù)據(jù)傳輸中的一個(gè)。有利的是,在本領(lǐng)域中熟知的近似6個(gè)常規(guī)硬件DMA控制器的物理腳印,在一個(gè)實(shí)施例中,IPCM 116在任意給定的時(shí)間替代192個(gè)獨(dú)立的DMA控制器,并具有為192個(gè)可能的DMA數(shù)據(jù)信道之外的32個(gè)進(jìn)行配置的能力。然后,這32個(gè)編程的DMA數(shù)據(jù)信道中的每一個(gè)用來(lái)進(jìn)行DMA數(shù)據(jù)傳輸。而且,之后或者根據(jù)需要,這32個(gè)數(shù)據(jù)信道可被重配置為192個(gè)可能的DMA數(shù)據(jù)信道配置中不同的32個(gè)信道。這在空間寶貴的應(yīng)用中,例如手持設(shè)備中證實(shí)是非常有價(jià)值而且靈活的。
在一個(gè)實(shí)施例中,保留32個(gè)DMA信道中的一個(gè)用作從主處理器106到IPCM 116的控制信道。因此,IPCM 116可在186個(gè)可能的DMA數(shù)據(jù)路徑配置之外配置31個(gè)DMA。方便是,這個(gè)控制信道允許主處理器能夠向IPCM發(fā)送控制消息,以便將31個(gè)已配置的DMA數(shù)據(jù)路徑組中的一個(gè)或多個(gè)重新配置成186個(gè)可能的DMA數(shù)據(jù)路徑配置中的另外一個(gè)。甚至沒(méi)有控制信道,也可以將全部32個(gè)已配置的DMA數(shù)據(jù)路徑組清除并由主處理器重新配置。
為了完成這個(gè)可編程DMA數(shù)據(jù)傳輸?shù)墓δ?,IPCM 116包括了RISC處理器核302和ROM 308以及SRAM 306。在一些實(shí)施例中,RISC處理器核由微RISC處理器核構(gòu)成。RISC處理器核302用于執(zhí)行完成DMA數(shù)據(jù)傳輸?shù)亩堂罨蛑噶?存儲(chǔ)在SRAM 306中)。一個(gè)定制RISC處理器核及其指令集的特定例子在本文后面有更詳細(xì)的描述。還包括有一對(duì)DMA單元,DSP DMA單元310和主DMA單元312,它們與RISC處理器核302接口,對(duì)所有的DMA傳輸使用規(guī)定的,專(zhuān)用寄存器。因此,DSP DMA單元310和主DMA單元312包括傳統(tǒng)DMA控制器的總路線(xiàn)收發(fā)機(jī)的一部分。傳統(tǒng)DMA控制器的,例如,地址寄存器,數(shù)據(jù)寄存器和計(jì)數(shù)器在RISC處理器核302內(nèi)部實(shí)現(xiàn)。這樣,DSP DMA單元310和主DMA單元312分別代表與RISC處理器核302線(xiàn)連接的數(shù)據(jù)通路和相應(yīng)的總線(xiàn),如d總路線(xiàn)226和h總路線(xiàn)232。
ROM 308啟動(dòng)腳本(即引導(dǎo)代碼)和由駐留在SRAM 306中的腳本參考的其它應(yīng)用程序。附錄B中附有ROM腳本的例子。SRAM 306被分成處理器內(nèi)容空間區(qū)和用于存儲(chǔ)信道腳本的代碼空間區(qū)。通過(guò)使用主DMA單元312,由IPCM 116將信道腳本從eDRAM或從外部存儲(chǔ)器中下載到SRAM 306之中。通過(guò)使用由主處理器提供的命令和指針請(qǐng)求下載。每個(gè)可編程的或“虛擬”DMA數(shù)據(jù)路徑可以在主處理器的控制下基于“所需”獨(dú)立地進(jìn)行配置。這在使用可能的內(nèi)部存儲(chǔ)封裝腳印的時(shí)候允許一寬范圍的功能??梢詫⑽⒋a程序存儲(chǔ)在外部存儲(chǔ)器中,例如在大容量快速存儲(chǔ)器中,并且在需要時(shí)將其下載。
任務(wù)調(diào)度器304是一個(gè)可編程調(diào)度器,其從外設(shè)230、主處理器106和DSP RAM 102接收請(qǐng)求以進(jìn)行DMA數(shù)據(jù)傳輸。這些請(qǐng)求的形式是在e總線(xiàn)228上檢測(cè)到的“事件”。一個(gè)事件是控制特定可編程DMA數(shù)據(jù)信到的操作出現(xiàn)的條件。例如,一個(gè)事件是來(lái)自希望進(jìn)行DMA數(shù)據(jù)傳輸?shù)闹械耐庠O(shè)、主機(jī)或者DSP(例如外設(shè)/DMA事件輸入320)的一個(gè)的指示。一個(gè)事件可以是來(lái)自主處理器的信號(hào),警告IPCM重新編程特定DMA數(shù)據(jù)信道。事件也可以是來(lái)自事件定時(shí)器(也就是事件定時(shí)器輸入318)的要發(fā)生DMA數(shù)據(jù)傳輸?shù)亩〞r(shí)指示。例如,根據(jù)在e總線(xiàn)228上哪一個(gè)線(xiàn)檢測(cè)到事件,任務(wù)調(diào)度器304可以指出誰(shuí)在請(qǐng)求或者指出希望進(jìn)行DMA傳輸。任務(wù)調(diào)度器304對(duì)請(qǐng)求劃分優(yōu)先權(quán)并且進(jìn)行管理。任務(wù)調(diào)度器304監(jiān)視并且檢測(cè)用于DMA數(shù)據(jù)傳輸?shù)耐獠渴录?,并且將事?例如,指出要執(zhí)行DMA數(shù)據(jù)傳輸?shù)男盘?hào))映射到特定DMA數(shù)據(jù)信道。事件被根據(jù)優(yōu)先權(quán)來(lái)映射到位于特定DMA數(shù)據(jù)信道內(nèi)的DMA數(shù)據(jù)傳輸,使得較高優(yōu)先權(quán)的數(shù)據(jù)傳輸發(fā)生在較低優(yōu)先權(quán)的DMA數(shù)據(jù)傳輸之前。而且,任務(wù)調(diào)度器304能夠執(zhí)行“搶占優(yōu)先權(quán)”,其中,中斷(暫停)由IPCM當(dāng)前執(zhí)行的特定DMA數(shù)據(jù)傳輸,使得可以執(zhí)行較高優(yōu)先權(quán)DMA數(shù)據(jù)傳輸。一旦完成較高優(yōu)先權(quán)的DMA數(shù)據(jù)傳輸,則恢復(fù)已經(jīng)被中斷的DMA數(shù)據(jù)傳輸,除非請(qǐng)求了另外的較高優(yōu)先權(quán)DMA數(shù)據(jù)傳輸。通常,處理器是知道搶占優(yōu)先權(quán)的;然而,常規(guī)DMA控制器是基于硬件的(也就是不可編程的),因此,不能夠進(jìn)行此類(lèi)搶先。有利的是,該實(shí)施例提供了在可編程DMA系統(tǒng)中的搶占優(yōu)先權(quán)。
下面是對(duì)由IPCM支持的不同類(lèi)型的可編程DMA數(shù)據(jù)傳輸中的數(shù)據(jù)流的簡(jiǎn)要說(shuō)明。
1.外設(shè)到存儲(chǔ)器通常,各種外設(shè)230負(fù)責(zé)收集要輸入到處理器平臺(tái)的數(shù)據(jù)。當(dāng)數(shù)據(jù)已經(jīng)到達(dá)特定的外設(shè)時(shí),例如,到達(dá)了MMC 114,外設(shè)經(jīng)事件總線(xiàn)228將事件發(fā)送到IPCM 116的任務(wù)調(diào)度器304。任務(wù)調(diào)度器304能夠在任意給定時(shí)間里處理32個(gè)事件。由任務(wù)調(diào)度器304賦給事件優(yōu)先權(quán),并且映射到特定的DMA數(shù)據(jù)信道。一旦執(zhí)行事件,RISC處理器核302以位于SRAM 306中的腳本的形式運(yùn)行軟件。軟件是專(zhuān)用于特定DMA數(shù)據(jù)信道的,并且配置特定的DMA數(shù)據(jù)信道。軟件有效地指導(dǎo)RISC處理器核302以影響從特定外設(shè)到存儲(chǔ)器目的地(例如,Edram或者DSP RAM)的DMA數(shù)據(jù)傳輸。DMA數(shù)據(jù)傳輸由在RISC處理器核302中的軟件執(zhí)行,使得在外設(shè)中的數(shù)據(jù)經(jīng)i總線(xiàn)234和各自的DMA單元,例如DSP DMA單元310或者主DMA單元312發(fā)送到各自的存儲(chǔ)器。
有利的是,DMA數(shù)據(jù)傳輸?shù)倪M(jìn)行不涉及到DSP或主處理器。而且,通過(guò)使用包括RISC處理器核302和單個(gè)硬件DMA電路,例如主DMA單元312,通過(guò)單個(gè)硬連線(xiàn)的DMA單元可建立很多不同的DMA數(shù)據(jù)路徑。這些數(shù)據(jù)路徑中的每一個(gè)被稱(chēng)為可編程DMA數(shù)據(jù)信道或者“虛擬”DMA數(shù)據(jù)信道。例如,可能有從USB 110到DSP RAM104的一個(gè)DMA數(shù)據(jù)信道或者路徑,以及從SSI 212到DSP RAM 104的另一個(gè)DMA數(shù)據(jù)信道或路徑,二者都經(jīng)過(guò)DSP DMA單元310傳輸。有利的是,任一DMA數(shù)據(jù)信道可以在后來(lái)被配置成不同的DMA數(shù)據(jù)信道,例如從MMC 114到DSP RAM 104。因此,到存儲(chǔ)器DMA數(shù)據(jù)信道的每一個(gè)外設(shè)利用DSP DMA單元310或主DMA單元中的任一個(gè),但是可以被可編程地選擇為從任意一個(gè)外設(shè)耦合到IPCM116。
2.存儲(chǔ)器到外設(shè)這種類(lèi)型的DMA傳輸與第一種類(lèi)型的不同之處在于傳輸是從處理器平臺(tái)的處理器核其中之一的存儲(chǔ)器例如為DSP RAM或主處理存儲(chǔ)器(例如eDRAM)到外設(shè)230中的一個(gè)。DSP經(jīng)過(guò)DSP控制寄存器314將“事件”(數(shù)據(jù)傳輸)發(fā)送到任務(wù)調(diào)度器304,任務(wù)調(diào)度器賦給事件優(yōu)先權(quán),并且將其映射到DMA數(shù)據(jù)信道,且發(fā)信號(hào)到RISC處理器核302以執(zhí)行數(shù)據(jù)傳輸。由DSP提供的信息顯示DSP RAM中數(shù)據(jù)存儲(chǔ)的位置和將要發(fā)送多少數(shù)據(jù)。然后,RISC處理器以位于SRAM306中的腳本的形式運(yùn)行軟件。該軟件專(zhuān)用于特定的DMA數(shù)據(jù)信道。該軟件有效地指導(dǎo)RISC處理器核302以影響從DSP RAM 104到特定外設(shè)230的DMA數(shù)據(jù)傳輸。該傳輸由在RISC處理器核302中的軟件執(zhí)行,使得將數(shù)據(jù)從DSP RAM拷貝到位于DSP RAM單元內(nèi)的寄存器,然后數(shù)據(jù)經(jīng)i總線(xiàn)234傳輸?shù)酵庠O(shè)。
3.存儲(chǔ)器到存儲(chǔ)器第三種類(lèi)型的DMA數(shù)據(jù)傳輸是存儲(chǔ)器到存儲(chǔ)器。例如,在數(shù)據(jù)從DSP存儲(chǔ)器(例如,DSP RAM 104)傳輸?shù)街魈幚砥鞔鎯?chǔ)器(例如,eDRAM 108)的情況下,DSP將一事件報(bào)告給IPCM 116的任務(wù)調(diào)度器304。任務(wù)調(diào)度器304識(shí)別該事件,給其分配優(yōu)先權(quán),然后引發(fā)RISC處理器核302從SRAM 306下載腳本以影響經(jīng)DSP RAM單元310從DSP RAM到RISC處理器核302本身的DMA數(shù)據(jù)傳輸。例如,數(shù)據(jù)被臨時(shí)放到位于RISC處理器核302內(nèi)的寄存器。然后,經(jīng)主DMA單元312在RISC處理器核302和主處理器存儲(chǔ)器(例如,eDRAM 108)之間執(zhí)行DMA數(shù)據(jù)傳輸。這是有效的“背對(duì)背”DAM數(shù)據(jù)傳輸。IPCM116解決了存儲(chǔ)器大小的不同。例如,如果DSP RAM為16位寬度,而主處理器存儲(chǔ)器為32位寬度,IPCM將收集16位字并且將他們封裝位32位字,然后將32位字傳輸?shù)街魈幚泶鎯?chǔ)器。
一旦完成經(jīng)RISC處理器核302的從DSP RAM到主處理器的“背對(duì)背”DMA數(shù)據(jù)傳輸,IPCM 116將向主處理器發(fā)信號(hào)以通知主處理器有數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。換言之,RISC處理器核302經(jīng)主控制寄存器316將控制信號(hào)發(fā)送到主處理器,向主處理器給出到一地址的位置指針,該地址指出在主處理器存儲(chǔ)器中數(shù)據(jù)開(kāi)始于何處、有多少字已經(jīng)被放置在開(kāi)始于所述地址的主處理器存儲(chǔ)器中。在該點(diǎn)上,主處理器在方便的時(shí)候重新獲得數(shù)據(jù)。注意,大多數(shù)DMA數(shù)據(jù)傳輸為很多字節(jié)的長(zhǎng)度(例如1000字節(jié)),在發(fā)送傳輸完成事件信號(hào)之前要求重復(fù)很多次。這一顯著的過(guò)程也相同于外設(shè)到存儲(chǔ)器的傳輸,也就是RISC處理器核302通知各個(gè)處理器核,例如DSP或主處理器數(shù)據(jù)掛起于存儲(chǔ)器中。
這與在本領(lǐng)域中所熟知的允許在兩個(gè)處理器之間進(jìn)行數(shù)據(jù)傳輸?shù)奶幚砥骶W(wǎng)橋相反。例如,如果主處理器想要將數(shù)據(jù)從主機(jī)移到DSP,主機(jī)將必須中斷DSP,等到DSP準(zhǔn)備好交換數(shù)據(jù),然后掛起片刻(briefmoment),主處理將控制DSP存儲(chǔ)器,以影響傳輸。這不利地在數(shù)據(jù)傳輸期間暫時(shí)中止DSP和主處理器。因此,主處理器存儲(chǔ)器和DSP存儲(chǔ)器同時(shí)停止和通信。
相反,IPCM 116允許不需要中斷DSP進(jìn)行從主存儲(chǔ)器到RISC處理器核302的直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸。主處理器106的唯一要求的活動(dòng)是傳輸一控制信號(hào)以將一事件發(fā)送到IPCM以執(zhí)行從主存儲(chǔ)器到RISC處理器核302的數(shù)據(jù)的DMA數(shù)據(jù)傳輸。接下來(lái),執(zhí)行從RISC處理器核302到DSP存儲(chǔ)器的DMA數(shù)據(jù)傳輸。然后,DSP從DSP RAM重新獲得數(shù)據(jù)。在此情況下,DSP或主處理器都不需要為對(duì)方停止下來(lái)以進(jìn)行傳輸。
接下來(lái)參見(jiàn)圖4,示出的圖說(shuō)明了由圖1,2和3的IPCM 116提供的可編程地選擇直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA)數(shù)據(jù)信道。圖中示出了IPCM116、DSP RAM單元310、主DMA單元312、RISC處理器核302、i總線(xiàn)234、d總線(xiàn)226和h總線(xiàn)232。DSP RAM單元310包括第一DSPRAM數(shù)據(jù)連接402和第二DSP DMA數(shù)據(jù)連接404。主DMA單元312包括第一主DAM數(shù)據(jù)連接406和第二主DMA數(shù)據(jù)連接418。
IPCM 116包括DSP DMA單元310和主DMA單元312。每一個(gè)DMA單元310和312包括常規(guī)DMA控制器的總線(xiàn)收發(fā)器部分,并且形成2個(gè)硬連線(xiàn)的DMA數(shù)據(jù)連接(通過(guò)該連接可編程DMA數(shù)據(jù)信道可建立用于DMA數(shù)據(jù)傳輸),一個(gè)連接在RISC處理器核302到存儲(chǔ)器的方向上,另一個(gè)在存儲(chǔ)器到RISC處理器核302的方向上。這4個(gè)DMA數(shù)據(jù)連接可由IPCM的RISC處理器核302進(jìn)行編程,就好像他們是帶RISC處理器核302的一個(gè)整體,具有192個(gè)(如果其中一個(gè)DMA數(shù)據(jù)信道是控制信道則為186)實(shí)際的硬件DMA控制器。相反,常規(guī)的DMA控制器僅僅允許使用DMA數(shù)據(jù)連接來(lái)建立一個(gè)專(zhuān)用的DMA信道。
就廣義來(lái)說(shuō),RISC處理器充當(dāng)設(shè)備和各種有線(xiàn)DMA數(shù)據(jù)連接之間的切換。因此,可將第一主DMA信道連接406配置或編程為許多不同的可編程DMA數(shù)據(jù)信道,例如從USB 110到eDRAM 108的DMA數(shù)據(jù)信道、從SSI 212到eDRAM 108的DMA數(shù)據(jù)信道和從MMC114到Edarm 108的DMA數(shù)據(jù)信道。這些使用第一主DMA數(shù)據(jù)連接406的不同DMA數(shù)據(jù)信道可被稱(chēng)為“虛擬”DMA數(shù)據(jù)信道,因?yàn)樗麄冇行У靥峁┝吮仍谟布懈嗟腄MA數(shù)據(jù)信道。因此,第一主DMA數(shù)據(jù)信到406是可編程地選擇,使得其能夠支持從幾個(gè)外設(shè)中的任意一個(gè)或者從第二DSP DMA數(shù)據(jù)連接404的始發(fā)節(jié)點(diǎn)到在第一主DMA數(shù)據(jù)連接406的目的端處的存儲(chǔ)器(例如,eDRAM 108)的DMA數(shù)據(jù)傳輸。因此,RISC處理器核302和單個(gè)DMA單元,例如主DMA單元312代替很多分立的有線(xiàn)連接的常規(guī)DMA控制器。
同樣,第二主DMA數(shù)據(jù)連接408可以被編程地選擇為從始發(fā)節(jié)點(diǎn)或者節(jié)點(diǎn)(例如,eDRAM 108)到幾個(gè)外設(shè)中的任意一個(gè)或到第一DSP DMA數(shù)據(jù)連接402的目的節(jié)點(diǎn)的“虛擬”DMA數(shù)據(jù)信道。這些虛擬DMA數(shù)據(jù)信道中的每一個(gè)利用第二主DMA數(shù)據(jù)連接408。而且,可通過(guò)第二主DMA數(shù)據(jù)連接408和第一DSP DMA數(shù)據(jù)連接402經(jīng)RISC處理器核302影響“背靠背”DMA數(shù)據(jù)信道。定制的RISC處理器核/IPCM注意,RISC處理器核可以是如本領(lǐng)域中所熟知的標(biāo)準(zhǔn)RISC處理器一樣。然而,可以設(shè)計(jì)定制的RISC處理器,其可改善IPCM 116中的性能。下面是對(duì)用作圖1-4的IPCM的定制的RISC處理器核和IPCM的特定實(shí)施例的說(shuō)明。
定制的RISC處理器核302是具有16位指令的32位寄存器結(jié)構(gòu)。正如本領(lǐng)域中所熟知的那樣,有8個(gè)通用的32位寄存器,4個(gè)標(biāo)志(T,LM,SF,和DF)和PCU寄存器(PC,RPC,SPC,和EPC)。RISC處理器核302是兩級(jí)流水線(xiàn),并且還包括ROM 308和SRAM 306。ROM308為1K字節(jié)(配置為256×32),而SRAM 306為8K字節(jié)(配置為2048×32)。
定制的RISC處理器核302(之后簡(jiǎn)單地成為RISC處理器核302)被用來(lái)執(zhí)行完成DMA數(shù)據(jù)傳輸?shù)囊欢坛绦?。指令?存儲(chǔ)在SRAM 306中)由除了加載/存儲(chǔ)(Load/Store)、CRS、DMA以外的單周期指令,和要花費(fèi)兩個(gè)或更多周期執(zhí)行的分支指令構(gòu)成。在被附加到此的附表A中提供了優(yōu)選的指令集。i總線(xiàn)234支持32位數(shù)據(jù)路徑和16位地址總線(xiàn)。一對(duì)DMA單元,即DSP DMA單元310和主DMA單元312與RISC處理器核302連接,并且為所有的DMA傳輸使用特定的、專(zhuān)用的寄存器。
ROM 308包含啟動(dòng)腳本(即引導(dǎo)代碼)和由駐留在SRAM 306中的腳本參考的其它應(yīng)用程序。SRAM 306被分成處理器內(nèi)容區(qū)和用于存儲(chǔ)路徑腳本的代碼區(qū)。通過(guò)使用主DMA單元312,由IPCM 116將路徑腳本從eDRAM或從外部存儲(chǔ)器中下載到SRAM 306之中。通過(guò)使用由主處理器提供的命令和指針啟動(dòng)下載。每個(gè)可編程的或“虛擬”DMA數(shù)據(jù)路徑可以在主處理器的控制下基于“所需”獨(dú)立地進(jìn)行配置。這在可能使用的最低的內(nèi)部存儲(chǔ)腳印時(shí)允許一寬范圍的功能。可以將微碼程序存儲(chǔ)在外部存儲(chǔ)器中,例如在大容量快速存儲(chǔ)器中,并且在需要時(shí)將其下載。
任務(wù)調(diào)度器304負(fù)責(zé)監(jiān)視和檢測(cè)外部事件,將事件映射到DMA數(shù)據(jù)信道(也簡(jiǎn)單地稱(chēng)為信道),并且將各個(gè)信道映射到預(yù)配置的優(yōu)先權(quán)。在任何時(shí)刻,任務(wù)調(diào)度器將請(qǐng)求服務(wù)的最高的優(yōu)先權(quán)信道提供給IPCM 116。使用一個(gè)特定的IPCM核指令來(lái)“有條件地產(chǎn)生”被用于執(zhí)行請(qǐng)求服務(wù)的合格信道的當(dāng)前信道。當(dāng)且僅當(dāng)合格信道處于掛起時(shí)(pending),當(dāng)前執(zhí)行的信道被預(yù)置空(pre-empted)。有兩個(gè)“產(chǎn)生”的指令,其不同地確定合格信道在第一種中,合格信道是具有嚴(yán)格高于當(dāng)前信道優(yōu)先權(quán)的較高優(yōu)先權(quán)的掛起信道;在第二種中(“產(chǎn)生(yieldge)”),合格信道是具有大于或等于當(dāng)前優(yōu)先權(quán)的優(yōu)先權(quán)的掛起信道。任務(wù)調(diào)度器304通過(guò)32個(gè)輸入事件端口(事件定時(shí)器輸入318和外設(shè)/DMA事件320)檢測(cè)需要服務(wù)的設(shè)備(例如,信道)。檢測(cè)到事件之后,并且僅當(dāng)其被映射到信道時(shí),信道事件被鎖存到“信道掛起(EP)”寄存器中。所有掛起的信道的優(yōu)先權(quán)與由主處理器和DSP設(shè)置的控制位組合起來(lái),并且被連續(xù)的評(píng)估以更新最高的掛起優(yōu)先權(quán)。當(dāng)完成信道服務(wù)程序時(shí),由信道腳本軟件清除在信道掛起寄存器中的每一位。
主控制模塊(也就是主控制寄存器316)包括被組織為陣列的幾個(gè)小RAM塊,這幾個(gè)RAM塊被用來(lái)控制(也就是信道映射)32個(gè)獨(dú)立信道。信道便能寄存器是最大的RAM陣列(32位×32位),用于將事件映射到特定的信道(一個(gè)或幾個(gè))。第二陣列是優(yōu)先權(quán)RAM用來(lái)將信道分配給可編程的1到7(1-of-7)級(jí)優(yōu)先權(quán)。
經(jīng)e總線(xiàn)228連接到任務(wù)調(diào)度器的32個(gè)事件輸入來(lái)自不同的源,并類(lèi)似于中斷請(qǐng)求信號(hào)。在UART和USB端口中發(fā)現(xiàn)的接收寄存器滿(mǎn)和傳輸寄存器空的事件是連接到IPCM上的事件端口的典型的信號(hào)。一些事件輸入來(lái)源于層1的定時(shí)器(例如,事件定時(shí)器304)。在層1的定時(shí)器內(nèi)是基于比較/捕獲方塊的寄存器,其可被用來(lái)發(fā)送唯一的事件、層1定時(shí)器的瞬間狀態(tài)??墒褂眠@些事件來(lái)觸發(fā)特定的IPCM信道或信道。這一特征可被用來(lái)實(shí)現(xiàn)在兩個(gè)處理器(例如DSP和主處理器)之間的“實(shí)時(shí)(just-in-time)”數(shù)據(jù)交換,以放松滿(mǎn)足關(guān)鍵期限的要求。
IPCM的內(nèi)在本質(zhì)要求在片調(diào)試能力以確保產(chǎn)品質(zhì)量和可靠性,且實(shí)現(xiàn)所述核的所有性能能力。OnCE兼容調(diào)試端口包括支持設(shè)置斷點(diǎn)、單步和跟蹤以及寄存器清除能力(dump capability)。此外,從調(diào)試端口可訪(fǎng)問(wèn)所有的存儲(chǔ)器位置。
IPCM 116具有兩個(gè)存儲(chǔ)器空間一個(gè)用于指令,另一個(gè)用于數(shù)據(jù);兩個(gè)空間共享相同的資源(ROM和RAM設(shè)備),系統(tǒng)總線(xiàn)管理當(dāng)IPCM訪(fǎng)問(wèn)用于讀指令以及讀或?qū)憯?shù)據(jù)的相同資源時(shí)可能的沖突。
16位寬的指令被存儲(chǔ)在32位寬的設(shè)備中,并且也象數(shù)據(jù)一樣可以訪(fǎng)問(wèn)。相應(yīng)的是Big Endian偶數(shù)指令地址(以“0”結(jié)尾)訪(fǎng)問(wèn)32位數(shù)據(jù)中的最高有效部分(比特[31∶16]),而奇數(shù)指令地址(以“I”結(jié)尾)訪(fǎng)問(wèn)32位數(shù)據(jù)的最低有效部分(比特[15∶0])。
可以從IPCM和RAM中獲取指令??梢韵笤L(fǎng)問(wèn)數(shù)據(jù)一樣訪(fǎng)問(wèn)ROM、RAM、外設(shè)(USB、UART1、UART3、MMC和VSAP)以及存儲(chǔ)器映射寄存器。
任務(wù)調(diào)度器304是基于硬件的設(shè)計(jì),用作根據(jù)信道狀態(tài)和優(yōu)先權(quán)來(lái)協(xié)調(diào)由IPCM及時(shí)執(zhí)行的32個(gè)可編程的選擇DMA數(shù)據(jù)信道(虛擬DMA信道)。任務(wù)調(diào)度器執(zhí)行下面的功能(1)監(jiān)視、檢測(cè)和寄存所提供的32個(gè)事件輸入中的任意之一的出現(xiàn);(2)將特定事件輸入鏈接到特定信道或信道組中(信道映射);(3)忽略沒(méi)有被映射到事先配置的信道(一個(gè)或幾個(gè))中的事件;(4)維持請(qǐng)求服務(wù)的所有信道的列表;(5)將預(yù)編程的優(yōu)先權(quán)等級(jí)(1至7)分配給請(qǐng)求服務(wù)的每一個(gè)信道;和(6)檢測(cè)和標(biāo)記出超程/欠載(overrun/underrun)條件。
可編程DMA數(shù)據(jù)信道或虛擬DMA數(shù)據(jù)信道(下文簡(jiǎn)稱(chēng)為信道)管理通過(guò)IPCM 116的數(shù)據(jù)流。數(shù)據(jù)流動(dòng)通常是單向的,但是可以重配置或可重編程。IPCM可以有32個(gè)同時(shí)工作的信道,標(biāo)記為0到31。信道0專(zhuān)用于主處理器106以控制IPCM 116。其它所有信道可由主處理器軟件分配。
事件是可以控制信道操作的出現(xiàn)的條件。事件可由外部(也就是在IPCM之外)控制條件(例如,UART接收FIFO到達(dá)一閾值)或者通過(guò)啟動(dòng)內(nèi)部定時(shí)器(例如,事件定時(shí)器)引起。IPCM將執(zhí)行最多32個(gè)事件,它們相互之間彼此隨機(jī)地出現(xiàn)。因此,事件被設(shè)計(jì)為隨機(jī)地到達(dá)任務(wù)調(diào)度器,同時(shí)任務(wù)調(diào)度器可以在任何時(shí)候處理32個(gè)事件。
任務(wù)調(diào)度器304將事件映射到信道中,并且賦給事件優(yōu)先權(quán)。信道可以停止(stall)服務(wù)于一個(gè)事件上。一個(gè)事件可以喚醒不只一個(gè)信道(例如,L1定時(shí)器)。從事件到其影響的信道的映射處于程序控制之下。對(duì)于32個(gè)事件中的每一個(gè)都有一個(gè)寄存器,其包含一個(gè)位圖。對(duì)于每一個(gè)信道有一位用來(lái)確定事件喚醒了哪一個(gè)信道。對(duì)于32個(gè)信道中的每一個(gè)也有一個(gè)寄存器,其包含信道將工作在哪一優(yōu)先權(quán)級(jí)。
硬件調(diào)度模塊這樣執(zhí)行一個(gè)調(diào)度算法,當(dāng)腳本執(zhí)行允許重新調(diào)度的指令時(shí),將運(yùn)行具有掛起事件的最高優(yōu)先權(quán)腳本。
可以在任意給定的時(shí)間運(yùn)行多個(gè)信道。在當(dāng)前信道讓出時(shí)任務(wù)調(diào)度器304(硬連線(xiàn)邏輯)選出最高優(yōu)先權(quán)的信道運(yùn)行。退出的信道可阻塞外部事件或者掛起由主處理器106或信號(hào)發(fā)生器102的干涉。僅當(dāng)下面的條件為真時(shí)可運(yùn)行第I個(gè)信道(HE(i))|HO[i[)&DDE[i]|DO[i])&(EP[i]|EO[i])用于每一個(gè)信道的主使能位HE[i]可由主處理器設(shè)置或清除。它可以由腳本清除。
用于每一個(gè)信道的主超越(override)使能位HO[i]可由主處理器設(shè)置或清除。它可以由腳本清除。通過(guò)設(shè)定這一位,主處理器106可允許信道不需要涉及它,就象在DSP 102和外設(shè)230之間的通信一樣。
dsp使能位DE[i]由DSP設(shè)置或清除。它可以被腳本清除。
DSP超越使能位DO[i]可由主處理器設(shè)置或清除。通過(guò)設(shè)定這一位,主處理器106可防止DSP掛起信道。這是當(dāng)信道傳輸沒(méi)有涉及DSP時(shí)的情況。
事件掛起位EP[i]是任務(wù)調(diào)度器的輸出。它可以由腳本清除。它也可以由主機(jī)設(shè)置以超越事件/信道連接矩陣。
事件超越位EO[i]由主處理器設(shè)置或清除。通過(guò)設(shè)置該位,主處理器可防止信道停止下來(lái)掛起外設(shè)事件。這是當(dāng)信道沒(méi)有處理i/o事件,例如主處理器到DSP DMA數(shù)據(jù)傳輸時(shí)的情況。
在復(fù)位時(shí),將所有的HE[i]、HO[i]、DO[i]、ER[i]和EO[i]設(shè)置為0。
IPCM 116可以借助于執(zhí)行指令(done instruction)或通知指令來(lái)清除HE[i]、DE[i]和EP[i]位。執(zhí)行的指令引起一個(gè)重新調(diào)度,而通知指令則沒(méi)有。執(zhí)行和通知指令可以清除下述位中的一個(gè)(且只有一個(gè))HE[i],DE[i],或EP[i]當(dāng)幾個(gè)具有相同優(yōu)先權(quán)的信道都是合格時(shí),硬件布線(xiàn)的選擇樹(shù)將自動(dòng)地用最大的號(hào)來(lái)選擇信道也就是,如果具有優(yōu)先權(quán)4的信道7和信道24都在掛起,信道24將是下一運(yùn)行的信道。
在“產(chǎn)生”指令的情況下(也就是產(chǎn)生如果大于或等于),并且具有與當(dāng)前信道相同的優(yōu)先權(quán)的信道在掛起時(shí),如上面所述一樣,由硬件布線(xiàn)選擇樹(shù)驅(qū)動(dòng)該行為(behavior)。例如,給定的三個(gè)信道(即,7、23和29)具有相同的最高優(yōu)先權(quán)。
信道7是有效的,并且運(yùn)行一個(gè)“產(chǎn)生”;其可被信道29搶先;一會(huì)之后,信道29運(yùn)行“產(chǎn)生”,然后,其被信道23搶先,信道23象信道29一樣是被選擇的信道,不屬于可選擇的信道,因?yàn)樗钱?dāng)前信道。之后,信道23運(yùn)行一個(gè)“產(chǎn)生”,并且被信道29搶先。在每一個(gè)“產(chǎn)生”之后,信道23和29將繼續(xù)切換,直到它們中的一個(gè)中止。僅在該時(shí)刻信道7變成合格的。在該例子中,假設(shè)沒(méi)有其他合格的信道在掛起。
接下來(lái)參見(jiàn)圖5,圖中示出的描述說(shuō)明了在根據(jù)本發(fā)明的實(shí)施例的圖3中的定制RISC處理器中所使用的任務(wù)調(diào)度器的特定實(shí)施例的功能。圖中示出的是邊緣檢測(cè)和鎖存單元502、多路復(fù)用器504、計(jì)數(shù)器506、信道使能RAM 508、信道掛起寄存器510(產(chǎn)生事件掛起位EP[i]的EP)、“或”門(mén)512、“與”門(mén)514、信道誤差記錄器516、主使能寄存器518(產(chǎn)生主使能位HE[i]的HE)、主超越使能寄存器520(產(chǎn)生主覆蓋使能位HO[i]的HO)、DSP使能寄存器522(產(chǎn)生DSP使能位DE[i]的DE)、DSP超越寄存器524(產(chǎn)生主超越位DO[i]的DO)、事件超越寄存器526(產(chǎn)生事件超越位EO[i]的EO)、決定樹(shù)528、優(yōu)先權(quán)寄存器534、最高掛起優(yōu)先權(quán)寄存器530(HPPR)、和最高掛起當(dāng)前信道寄存器532(HPCR)。
任務(wù)調(diào)度器304包括3級(jí)流水線(xiàn),用于處理事件輸入并且附給其優(yōu)先權(quán)。流水線(xiàn)的第一級(jí)掃描事件輸入,并且將檢測(cè)到的事件映射到激活的信道(一個(gè)或多個(gè))。流水線(xiàn)的第二級(jí)維持請(qǐng)求服務(wù)的信道的列表(信道掛起寄存器),并且從優(yōu)先權(quán)RAM 534將優(yōu)先權(quán)分配給所有掛起的信道,而第三級(jí)標(biāo)識(shí)頂級(jí)優(yōu)先權(quán)和相關(guān)的信道。
任務(wù)調(diào)度器的優(yōu)先權(quán)輸出被應(yīng)用到IPCM的RISC處理器核,并且與由RSIC處理器核執(zhí)行的當(dāng)前優(yōu)先權(quán)進(jìn)行比較。該核將當(dāng)前優(yōu)先權(quán)保存在程序狀態(tài)字(PSW)中。當(dāng)遇到產(chǎn)生指令時(shí),如果任務(wù)調(diào)度器優(yōu)先權(quán)大于當(dāng)前優(yōu)先權(quán),將發(fā)生搶占優(yōu)先權(quán)。
下面的內(nèi)容是對(duì)任務(wù)調(diào)度器的流水線(xiàn)的說(shuō)明。
流水線(xiàn)的第一級(jí)(級(jí)1)包含放在32×1數(shù)字多路復(fù)用器504(稱(chēng)為mux或M1)的前端的32位邊沿檢測(cè)和鎖存單元502。模32計(jì)數(shù)器506通過(guò)32個(gè)事件輸入驅(qū)動(dòng)mux504選擇輸入和mux504序列。對(duì)于被掃描的每一個(gè)相應(yīng)的邏輯“1”,邏輯“1”應(yīng)用于32×32進(jìn)入信道使能RAM 508 因此將一個(gè)事件映射到信道中。與掃描到的事件對(duì)應(yīng)的邊沿檢測(cè)鎖存在下一個(gè)時(shí)鐘周期被自動(dòng)清除。在事件輸入中的一個(gè)的正檢測(cè)將一個(gè)允許讀出信號(hào)加到信道使能RAM 508。一個(gè)事件可占用32個(gè)時(shí)鐘以被檢測(cè)。一旦檢測(cè)到,事件可以在一個(gè)時(shí)鐘周期內(nèi)通過(guò)信道使能RAM 508從mux 504傳播出去。
在第二級(jí),信道使能RAM 508由相同的32位計(jì)數(shù)器506尋址,并且是一個(gè)具有通過(guò)每一個(gè)信道提供給每一個(gè)事件的單比特的方(32×32)陣列。如果允許信道且檢測(cè)到相應(yīng)的事件,從數(shù)據(jù)輸出端口上的信道使能RAM 508產(chǎn)生邏輯“1”輸出。該信號(hào)被鎖存到位于信道掛起寄存器510內(nèi)的相應(yīng)位置。檢測(cè)到的事件在2個(gè)時(shí)鐘周期內(nèi)從信道使能RAM 508傳播到信道掛起寄存器510。信道掛起寄存器510(EP)是一個(gè)具有其各位對(duì)應(yīng)于32個(gè)信道中的每一個(gè)的32位寄存器。注意,在任意給定的時(shí)鐘周期上判定為(assert to)信道掛起寄存器510的信道數(shù)目由在對(duì)應(yīng)于5位計(jì)數(shù)器所選擇的地址的32位掩碼中設(shè)為“1”的數(shù)目確定的。使用“或”門(mén)512來(lái)將“當(dāng)前狀態(tài)反饋”提供給陷阱(trap),并且保持在信道掛起寄存器510中的檢測(cè)到的事件。同樣,注意,提供了一個(gè)“位清除”輸入來(lái)允許IPCM核清除在信道掛起寄存器510中的特定位。當(dāng)已經(jīng)服務(wù)了相應(yīng)的信道時(shí),由IPCM核通過(guò)軟件指令執(zhí)行該操作。
之后,使用一組32個(gè)“與”門(mén)514來(lái)檢測(cè)沒(méi)有被服務(wù)的事件的再主張。換言之,如果發(fā)送了一個(gè)事件且信道已經(jīng)是在掛起,則一個(gè)相應(yīng)的位表示和超程/欠載條件被鎖存到信道差錯(cuò)寄存器516中。然后,告知主處理器任務(wù)調(diào)度器中的任何錯(cuò)誤。
在流水線(xiàn)的第三級(jí),前端信道掛起寄存器510的輸出與EO寄存器526、HE寄存器518、HO寄存器520、DE寄存器522和DO寄存器524的輸出,以及優(yōu)先權(quán)寄存器534(其存儲(chǔ)當(dāng)前的優(yōu)先權(quán))用來(lái)確定哪一個(gè)信道使能,并且通過(guò)決定樹(shù)528來(lái)進(jìn)行排序。
這個(gè)優(yōu)先權(quán)樹(shù)以一個(gè)循環(huán)跟著一個(gè)循環(huán)為基礎(chǔ),分發(fā)具有最高優(yōu)先權(quán)的使能的信道(如果(EP[i]|EO[i])&(HE[i]|HO[i])&(DE[i]|DO[i])被設(shè)為1,用于該特定的信道,則信道“i”是允許的)。
在有多個(gè)具有相同優(yōu)先權(quán)的允許信道是合格的情況下,將選擇第一個(gè)檢測(cè)到的(檢測(cè)開(kāi)始于信道31,并且向下進(jìn)行;也就是如果信道13和信道24都是合格的,選擇信道24)。
“樹(shù)結(jié)構(gòu)”允許動(dòng)態(tài)修改(EP[i]|EO[i])&(HE[i]|HO[i])&(DE[i]|DO[i],也允許動(dòng)態(tài)修改優(yōu)先權(quán)。
傳播時(shí)間是從信道掛起寄存器510到FIFO的一個(gè)時(shí)鐘。
下面是圖5的任務(wù)調(diào)度器的步驟簡(jiǎn)要的概述,參見(jiàn)圖5中的標(biāo)記相應(yīng)于圖中執(zhí)行步驟的部分。
在步驟1,數(shù)字mux 502掃描事件輸入。所有的輸入都是邊沿敏感的并且被鎖存直到被掃描。在掃描之后它們被自動(dòng)地清除。在步驟2,當(dāng)在事件和信道使能寄存器508中的相應(yīng)的位映射產(chǎn)生正結(jié)果時(shí),“設(shè)置”在信道掛起寄存器510中的位。在步驟3,信道掛起寄存器510(EP)連續(xù)地與來(lái)自EO、DE、DO、HE和HO寄存器的位連同其優(yōu)先權(quán)組合在一起,饋給決定樹(shù)528。在步驟4,在最高掛起優(yōu)先權(quán)寄存器530(HPPR)中的值RISC處理器核提供當(dāng)前掛起服務(wù)的最高優(yōu)先權(quán)。在步驟5,信道差錯(cuò)寄存器516捕獲當(dāng)信道處于掛起且在該信道上檢測(cè)到另一個(gè)隨后的事件的時(shí)機(jī)。在步驟6,當(dāng)已經(jīng)服務(wù)該信道時(shí),IPCM核清除在信道掛起寄存器510中的單個(gè)位。一旦清除,當(dāng)檢測(cè)到另一個(gè)事件時(shí),可以再主張?jiān)撔诺馈?br> 在進(jìn)行一個(gè)執(zhí)行指令(done instruction)時(shí),程序控制單元將跳到內(nèi)容切換子程序(見(jiàn)附表B-用于IPCM的RISC處理器核的ROM腳本例子),并將當(dāng)前內(nèi)容倒出到存儲(chǔ)器。在當(dāng)前內(nèi)容已經(jīng)被倒出到存儲(chǔ)器之后,執(zhí)行測(cè)試掛起和切換(TstPendingAndSwitch)指令時(shí)發(fā)生“實(shí)際內(nèi)容切換”,這里CRR(當(dāng)前信道寄存器)(圖5中未示出,但是位于IPCM的RISC處理器核內(nèi))變?yōu)镻PCR 532(最高掛起信道寄存器)。
內(nèi)容切換程序(見(jiàn)附表B)可被分成6個(gè)部分(1)加載當(dāng)前內(nèi)容的自旋基地址;(2)將寄存器當(dāng)前內(nèi)容倒出到存儲(chǔ)器;(3)測(cè)試掛起信道并作適當(dāng)?shù)胤磻?yīng)(TstpendingALnd Switch);(4)加載新的內(nèi)容的基地址;(5)下載新的內(nèi)容;和(6)拷貝陰影寄存器。
執(zhí)行TstPPendingAndSwitch指令時(shí),如果不再有HPPR 530(最高掛起優(yōu)先權(quán)寄存器)為空,由于修改(HE[i]|HO[i])&(EP[i]|EO[i]&DE[i]|DO[i]或者修改優(yōu)先權(quán)),RISC核將進(jìn)入空閑(IDLE)模式,否則將執(zhí)行內(nèi)容切換腳本的第二半部分,并且將下載選擇的信道的內(nèi)容。
在進(jìn)入IDLE模式的情況下(也就是在已經(jīng)完成將內(nèi)容倒出到存儲(chǔ)器之后,HPCR/HPPR為空的情況下),在一個(gè)新的事件時(shí),我們將繼續(xù)第二半部分的腳本,并且下載與新的事件相關(guān)的信道的內(nèi)容。
一旦選擇,當(dāng)前信道寄存器的狀態(tài)(CCR)和當(dāng)前信道優(yōu)先權(quán)(CPRi)就不能改變了,即使相關(guān)(HE[i]|HO[i])&(EP[i]|EO[i]&DE[i]|DO[i]的條件轉(zhuǎn)移到零或與之相關(guān)的優(yōu)先權(quán)已被主機(jī)動(dòng)態(tài)修改。
在倒出部分子程序,并且HPCR/HPPR為空之后的情況下,退出(yield)(dene_000)將以不同的方式進(jìn)行處理。在這種特殊情況下,我們將繼續(xù)腳本并下載回剛剛倒出存儲(chǔ)器的內(nèi)容。
下面描述了IPCM 116的幾個(gè)功能單元。
在一個(gè)實(shí)施例中,定制IPCM包括與RISC處理器相連的循環(huán)冗余校驗(yàn)碼(CRC)單元(未示出)。其能夠?yàn)橐唤M給出的多項(xiàng)式進(jìn)行深度從8到32的CRC計(jì)算。CRC單元包括兩個(gè)32位寄存器用于選取多項(xiàng)式的CRC算法CA和每次處理之后累計(jì)數(shù)據(jù)的CRC校驗(yàn)和CS。
在兩個(gè)寄存器都被加載以選擇多項(xiàng)式并初始化計(jì)算之后,CRC單元就可以在每個(gè)周期循環(huán)處理一個(gè)字節(jié)了。
DSP DMA單元310從RISC處理器核302接收指令。它可以通過(guò)DMA訪(fǎng)問(wèn)向DSP存儲(chǔ)器寫(xiě)或從那里讀數(shù)據(jù)并允許向石英DMA進(jìn)行32位和1位傳輸。
DSP DMA單元310從RISC處理器核302接收指令。它可以通過(guò)DMA訪(fǎng)問(wèn)從/向DSP存儲(chǔ)器讀或?qū)憯?shù)據(jù),并允許向石英DMA進(jìn)行32位和16位傳輸。
DSP DMA單元310所使用的主要寄存器有兩種包含向石英存儲(chǔ)器讀或?qū)憯?shù)據(jù)地址的地址寄存器(DA)和包含數(shù)據(jù)本身的數(shù)據(jù)寄存器(DD)。
因?yàn)樗念A(yù)取和快速能力,DSP DMA310可以對(duì)石英存儲(chǔ)器進(jìn)行訪(fǎng)問(wèn)而不使RISC處理器核失速,這樣當(dāng)DSP DMA310在掛起讀或?qū)懨钔瓿蓵r(shí)能夠執(zhí)行其它指令。
主DMA單元312從RSIC處理器核302(也稱(chēng)為IPCM核)接收指令。其能夠DMA訪(fǎng)問(wèn)從/向嵌入式DRAM 108或外部存儲(chǔ)器244讀和寫(xiě)數(shù)據(jù),并且它允許32位、16位和8位傳輸。外部存儲(chǔ)器244訪(fǎng)問(wèn)通過(guò)MCORE本地總線(xiàn)(MLB)切換完成。
主DMA312使用的有兩種主要寄存器地址寄存器(MA)包含數(shù)據(jù)地址以讀或?qū)懯⒋鎯?chǔ)器,數(shù)據(jù)寄存器(MD)包含數(shù)據(jù)本身。
因?yàn)樗念A(yù)取和快速能力,主DMA 310可以對(duì)主處理器(例如MCORE)存儲(chǔ)器(也就是eDRAM 108)進(jìn)行訪(fǎng)問(wèn)而不使RISC處理器核302失速(stall),以便使其在主DMA 310掛起要完成的讀或?qū)懨顣r(shí)能夠執(zhí)行其它指令。注意,MCORE是已知的主機(jī)或呼叫處理器。
IPCM總線(xiàn)切換允許通過(guò)連結(jié)到MCORE本地總線(xiàn)的MCORE的EIM模塊訪(fǎng)問(wèn)外部存儲(chǔ)器。它也允許其它設(shè)備(諸如MCORE測(cè)試模塊、NEXUS模塊或GEM模塊)控制MLB。
而且,IPCM 116內(nèi)部管理兩個(gè)功率模式RUN和IDLE。在RUN模式下,IPCM 116的所有模塊接收100MHz的IPCM時(shí)鐘。當(dāng)信道激活時(shí),IPCM 116處于RUN模式。
在IDLE模式下,已經(jīng)服務(wù)了所有的信道,并且沒(méi)有信道處于掛起;這是在復(fù)位之后的模式。IPCM模塊的大多數(shù)RICS處理器核、功能單元和總線(xiàn)仲裁邏輯不再接收100MHz時(shí)鐘。任務(wù)調(diào)度器304在其接收到樣值輸入事件時(shí)繼續(xù)工作,并且決定何時(shí)在此開(kāi)始接收新的信道。保持IPCM 116的控制寄存器的主控制模塊316和DSP控制模塊314仍然接收100MHz的時(shí)鐘,因?yàn)楫?dāng)IPCM處于IDLE模式時(shí)它們可以由主處理器106或DSP 102訪(fǎng)問(wèn)。IDLE模式節(jié)約了功率,這對(duì)于靠電池工作的環(huán)境而言是重要的。
對(duì)于主處理器來(lái)說(shuō)也可能通過(guò)時(shí)鐘控制器來(lái)完全停止IPCM116。在此情況下,根本沒(méi)有時(shí)鐘被IPCM 116接收,IPCM 116根本不可能重新啟動(dòng)它的時(shí)鐘。主處理器能夠恢復(fù)IPCM時(shí)鐘。當(dāng)沒(méi)有通過(guò)IPCM 116要求的數(shù)據(jù)傳輸時(shí),這一功能模式是有用的。
在復(fù)位之后(從復(fù)位模塊接收到或由主處理器要求的軟件復(fù)位),IPCM 116處于IDLE模式;一旦有信道激活,其將開(kāi)始位于地址0處的引導(dǎo)代碼??梢杂芍魈幚砥髟诰幊陶膬?yōu)先權(quán)并且設(shè)置在EVTPEND寄存器中的信道位之后激活信道。
重要的是要注意,當(dāng)IPCM 116處于IDLE模式時(shí),不可能執(zhí)行需要執(zhí)行在核上的指令的OnCE調(diào)試;必須預(yù)先通過(guò)激活信道來(lái)喚醒IPCM。一種可能是通過(guò)OnCE執(zhí)行調(diào)試請(qǐng)求,然后激活任意的信道,該信道將起動(dòng)IPCM時(shí)鐘,并且所述核將無(wú)需任何指令立即進(jìn)入調(diào)試模式。詳細(xì)的說(shuō)明參見(jiàn)OnCE說(shuō)明章節(jié)。另一種可能是使用JTAG模塊來(lái)切斷IPCM時(shí)鐘選通,這使得能夠立即響應(yīng),并且不要求具有激活的信道;在該模式下,不論IPCM模式如何,時(shí)鐘總是運(yùn)行的。
下面介紹用來(lái)操作IPCM 116的可編程DMA數(shù)據(jù)信道的軟件接口。
接下來(lái)參見(jiàn)圖6,圖中示出位于IPCM和主處理存儲(chǔ)器內(nèi)的指針和存儲(chǔ)器緩沖器,其被用于直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道中的每一個(gè)信道。圖中示出的IPCM包括表602,表602包括指針寄存器604、信道使能寄存器606、DSP超越寄存器608和事件超越寄存器610。圖中也示出了系統(tǒng)RAM 601,其包括表612,表612包括信道指針613。系統(tǒng)RAM 601也包括表614,表614也包括緩沖器指針616、計(jì)數(shù)字段619和模式字段620。系統(tǒng)RAM也包括緩沖器618。
這一部分介紹用于IPCM 116和主處理器106(也稱(chēng)為主MCU)或DSP 102之間的緩沖器管理機(jī)制。IPCM依賴(lài)于具有用于激活每一個(gè)信道的最小的一個(gè)或多個(gè)緩沖器。這些信道緩沖器必須分別位于MCU和DSP(例如,DSP RAM 104)的系統(tǒng)RAM 601(例如,eDRAM108)中。通過(guò)使用作為位于MCU和DSP的系統(tǒng)RAM 601區(qū)域中的鏈路列表實(shí)現(xiàn)的虛擬控制寄存器來(lái)介紹和管理緩沖器。下面介紹用于主MCU端口的控制結(jié)構(gòu)。
表602是一組位于IPCM 116內(nèi)的硬件寄存器。指針寄存器604是可由主核訪(fǎng)問(wèn)的32位讀/寫(xiě)寄存器,其包括指向612的指針,其具有指針613的結(jié)構(gòu)。指針613和604可引用位于系統(tǒng)RAM 601內(nèi)的任何存儲(chǔ)器位置。
應(yīng)當(dāng)告知程序員,當(dāng)表612和表614位于主系統(tǒng)601(例如,在智能電話(huà)的情況下的eDRAM 108)時(shí),實(shí)現(xiàn)最佳的性能。
表612是一個(gè)具有32個(gè)入口的固定結(jié)構(gòu)。每一個(gè)入口代表32個(gè)IPCM DMA數(shù)據(jù)信道中的一個(gè),并且包括一個(gè)32位指針。IPCM 116使用表602中的指針找到表612。即便所有DE 32個(gè)信道都沒(méi)有使用時(shí),也必須給出表612的全部(entirety even)。IPCM 116不會(huì)將指針入口用于沒(méi)有被允許的信道(例如,設(shè)置在信道使能寄存器606中的位)。
希望表602和612中的指針(一個(gè)或幾個(gè))值對(duì)于IPCM操作會(huì)話(huà)期間保持“靜止”。
表614包含操作命令和狀態(tài)寄存器、緩沖器大小指示符(例如,計(jì)數(shù)字段619)和到物理緩沖器618本身的指針616。專(zhuān)用的表614必須被提供給32個(gè)信道中的每一個(gè),并且以鏈路列表結(jié)構(gòu)實(shí)現(xiàn)。這種技術(shù)允許將一個(gè)或多個(gè)緩沖器618分配到單個(gè)DMA信道,從而允許有各種實(shí)現(xiàn)方案,諸如緩沖器交換和菊花鏈方式。
在操作中,IPCM 116將讀出在列表中描述的第一緩沖器的命令寄存器元素,并且增加緩沖器618,直到它被充滿(mǎn)容量或者由一些事件關(guān)閉。IPCM 116將返回到鏈路列表,并且如果聲明了下一個(gè)緩沖器,就將其打開(kāi)。當(dāng)IPCM 116到達(dá)列表的末端時(shí),所有的緩沖器618已被充滿(mǎn)或關(guān)閉,將關(guān)閉由表614引用的貧瘠(arid)的特定的IPCM信道。通過(guò)由MCU更新用于各個(gè)信道的表614的內(nèi)容,而后聲稱(chēng)位于IPCM中的信道使能寄存器606中合適的信道使能位可重新起動(dòng)該信道。
使用提供的模式,可能有各種操作情況??蛇x地,緩沖器618可是交換的菊花鏈的,或在模塊模式中操作的。通過(guò)在模式寄存器中配置合適的控制位,當(dāng)充滿(mǎn)或關(guān)閉特定的緩沖器時(shí),可向主MCU或DSP產(chǎn)生中斷。
表614的結(jié)構(gòu)之內(nèi)的模式字段620包括用作信號(hào)標(biāo)志并且稱(chēng)為“D”位的控制位。當(dāng)設(shè)置緩沖區(qū)是由IPCM擁有時(shí),計(jì)數(shù)、指針、狀態(tài)、和控制字段不得由MCU改變。當(dāng)D=0,MCU擁有特定的緩沖器,IPCM不會(huì)試圖寫(xiě)入任何控制字段或緩沖器空間。
注意,到石英DSP的信道接口類(lèi)似于到主MCU的信道接口。主處理器編程模型主處理器106(簡(jiǎn)稱(chēng)為主機(jī))借助于幾個(gè)接口寄存器控制IPCM116。除了一次命令寄存器(ONCE_CMD)要求掛起狀態(tài)1及信道RAM(CHANNEL RAM)也要求掛起狀態(tài)1以外。這些寄存器都可用等待狀態(tài)0(wait-state)在ip總線(xiàn)接口上來(lái)訪(fǎng)問(wèn),它們都由IPCM時(shí)鐘提供時(shí)鐘信號(hào)(這意味著當(dāng)主機(jī)想要訪(fǎng)問(wèn)任何寄存器時(shí),它必須確保IPCM時(shí)鐘是運(yùn)行的)。
關(guān)于允許的讀和寫(xiě)大小任何讀操作將不論讀的大小(也就是忽略允許的字節(jié)數(shù))都在總線(xiàn)上輸入寄存器的32位內(nèi)容;任何寫(xiě)操作根據(jù)要求的大小來(lái)更新寄存器的內(nèi)容(也就是允許的字節(jié)數(shù)被用來(lái)允許將相應(yīng)的字節(jié)從總線(xiàn)寫(xiě)到寄存器),除了當(dāng)寫(xiě)入CHANNEL RAM時(shí),CHANNEL RAM總是不論大小將總線(xiàn)(32位)上的實(shí)際大小的字寫(xiě)入到RAM中。
下面是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于控制IPCM 116的主處理器的寄存器。
COPTR(信道0指針)。該寄存器包括在主處理器中的開(kāi)始于信道0(控制信道)的信道控制塊陣列的32位地址。主機(jī)具有讀/寫(xiě)訪(fǎng)問(wèn),IPCM具有只讀訪(fǎng)問(wèn)。在復(fù)位時(shí),該寄存器全都為0。在該寄存器允許信道之前(例如,信道0),應(yīng)當(dāng)由主機(jī)對(duì)其初始化。
INTR-信道中斷。該寄存器包括32個(gè)HI[i]位。如果設(shè)置了任意一位,將向主機(jī)引發(fā)一個(gè)中斷。該寄存器是一個(gè)到主機(jī)的“一次寫(xiě)(write-ones)”寄存器。當(dāng)主機(jī)在該寄存器中設(shè)置一位時(shí),清除相應(yīng)的HI[i]位。當(dāng)服務(wù)各自的中斷時(shí),中斷服務(wù)程序?qū)⑶宄髯缘男诺牢唬瑳](méi)有清除的話(huà)將導(dǎo)致繼續(xù)中斷。當(dāng)運(yùn)行了相應(yīng)的完成執(zhí)行指令時(shí),IPCM負(fù)責(zé)設(shè)置相應(yīng)于當(dāng)前信道的HI[i]位。
STOP/SRAT-信道停止/信道狀態(tài)。這個(gè)32位的寄存器具有用于每一個(gè)信道的一位。該寄存器是一個(gè)到主機(jī)的“一次寫(xiě)(write-ones)”寄存器。當(dāng)主機(jī)將I寫(xiě)入該寄存器的位i時(shí),清除HE[i]和START[i]位。讀出該寄存器產(chǎn)生HE[i]位的當(dāng)前狀態(tài)。
SRART-信道開(kāi)始。該寄存器具有用于每一個(gè)信道的一位。該寄存器是一個(gè)到主機(jī)的“一次寫(xiě)(write-ones)”寄存器。當(dāng)清除相應(yīng)的HE[i]位時(shí),也不可設(shè)置START[i]。當(dāng)主機(jī)試圖通過(guò)寫(xiě)入1來(lái)設(shè)置START[i]位時(shí),如果相應(yīng)的HE[i]是清除的,在SRATR[i]寄存器中的位將保持清除,并且設(shè)置HE[i]位。如果已經(jīng)設(shè)置了相應(yīng)的HE[i]位,將設(shè)置SRART[i]位。下一次IPCM信道試圖借助于執(zhí)行的(done)指令來(lái)清除HE[i]位時(shí),在START[i]寄存器中的位將被清除,并且HE[i]將獲得START[i]位的舊值。讀出該寄存器產(chǎn)生了START[i]位的當(dāng)前狀態(tài)。該機(jī)制允許主機(jī)每個(gè)信道輸送兩個(gè)START命令。
EVTOVR-信道事件超越。該寄存器包括32個(gè)EO[i]位。在此寄存器中設(shè)置的一位導(dǎo)致IPCM在調(diào)度相應(yīng)的信道時(shí)忽略事件。向該寄存器中的寫(xiě)重寫(xiě)前一個(gè)值。
DSPOVR-信道DSP超越。該寄存器包括32個(gè)DO[i]位。在此寄存器中設(shè)置的一位導(dǎo)致IPCM在調(diào)度相應(yīng)的信道時(shí)忽略DSP使能。
HOSTOVR-信道主機(jī)超越。該寄存器包括32個(gè)HO[i]位。在此寄存器中設(shè)置的一位導(dǎo)致IPCM在調(diào)度相應(yīng)的信道時(shí)忽略主機(jī)使能。
EVTPEND-信道事件掛起。該寄存器包括32個(gè)EP[i]位。讀此寄存器允許主機(jī)確定哪一個(gè)信道具有掛起的事件。在此寄存器中設(shè)置的一位導(dǎo)致IPCM重評(píng)估調(diào)度,仿佛已經(jīng)發(fā)生了指定給該信道的外設(shè)事件(這是一個(gè)“一次寫(xiě)”機(jī)制寫(xiě)入“0”不會(huì)清除相應(yīng)的位)。這對(duì)于啟動(dòng)信道是有用的,使得在掛起第一個(gè)事件之前進(jìn)行初始化。任務(wù)調(diào)度器也可以根據(jù)接收的事件來(lái)設(shè)置在EVTPEND寄存器中的位。在運(yùn)行信道I腳本時(shí),可由執(zhí)行指令來(lái)清除EP[i]位。
DSPENMBL-信道DSP使能。該寄存器包括32個(gè)DE[i]位(來(lái)自DSP控制模塊或控制寄存器)。該寄存器使主機(jī)能夠確定DSP已經(jīng)允許了哪一個(gè)信道。
RESET-復(fù)位寄存器。該寄存器包括兩個(gè)控制位(1)復(fù)位位(RESET
),當(dāng)被設(shè)置時(shí),引起IPCM在軟件復(fù)位中被保持。在可以釋放該復(fù)位之前,必須將其保持幾個(gè)循環(huán)。實(shí)際上,使用一個(gè)計(jì)數(shù)器來(lái)使該軟件復(fù)位(soft_rstB低)在這些循環(huán)中保持有效。當(dāng)復(fù)位位被設(shè)置時(shí),驅(qū)動(dòng)soft_rstB信號(hào)使其低。由IPCM清除復(fù)位位。和(2)resched位(REST[i]),當(dāng)被設(shè)置時(shí),強(qiáng)迫IPCM重新調(diào)度。仿佛腳本已經(jīng)運(yùn)行了一個(gè)執(zhí)行指令。這允許主機(jī)通過(guò)經(jīng)停止寄存器清除它的HE[i]位從在信道上的失控腳本恢復(fù),然后,經(jīng)過(guò)RESET寄存器的RESCHED位來(lái)強(qiáng)迫進(jìn)行重新調(diào)度。當(dāng)開(kāi)始內(nèi)容交換時(shí),由IPCM清除resched位。
EVTERR-事件錯(cuò)誤寄存器。當(dāng)接入的事件被檢測(cè)到并且其觸發(fā)已經(jīng)處于掛起或被服務(wù)的信道時(shí),由IPCM使用該寄存器來(lái)加熱主機(jī)。這大概指出對(duì)于該信道發(fā)生了數(shù)據(jù)溢出。這是一個(gè)用于調(diào)度器的“一次寫(xiě)”寄存器;其僅能夠設(shè)置標(biāo)志;當(dāng)主機(jī)讀寄存器或在IPCM復(fù)位期間,清除該標(biāo)志。
當(dāng)已經(jīng)通過(guò)事件輸入引腳接收到觸發(fā)了信道i的事件,并且已經(jīng)設(shè)置了EP[i]位時(shí),設(shè)置任意的EVTERR[i]位;如果主機(jī)試圖設(shè)置EP[i],而EP[i]位已經(jīng)被設(shè)置,不影響EVTERR[i]。
這個(gè)寄存器不同于DSP EVTERR當(dāng)主機(jī)進(jìn)行讀并且清除它時(shí),相同的信息在DSP寄存器中仍然可用。
INTRMASK-信道中斷屏蔽標(biāo)志。該寄存器包括32個(gè)中斷產(chǎn)生屏蔽位。如果設(shè)置位INTMASK[i],HI[i]位被設(shè)置,并且任何時(shí)候,事件錯(cuò)誤在信道i上被檢測(cè)到時(shí)(也就是,EVTERR[i]被設(shè)置),將中斷發(fā)送到主機(jī)。
PSW-調(diào)度器狀態(tài)。這是具有下述狀態(tài)信息的16位寄存器[40]寄存器(當(dāng)前信道寄存器);[75]CCP(當(dāng)前信道優(yōu)先權(quán));[128]NCR(下一個(gè)信道寄存器);和[1513]NCP(下一個(gè)信道優(yōu)先權(quán))。
EVTERRDBG-用于調(diào)試的事件錯(cuò)誤寄存器。該寄存器與EVTERR相同,除了進(jìn)行讀時(shí)沒(méi)有改變它的內(nèi)容(也就是,不清楚它);該地址被用在調(diào)試模式中MCU OnCE可檢查該寄存器值而不修改它。
ONCE ENB-OnCE使能。該一位寄存器選擇OnCE控制源;當(dāng)被清除時(shí)(0),JTAG控制OnCE;當(dāng)被設(shè)置時(shí)(1),主機(jī)通過(guò)下面介紹的寄存器來(lái)控制OnCE。復(fù)位之后,清除OnCE使能位(JTAG控制)。
ONCE CMD-OnCE命令寄存器(1掛起狀態(tài))。寫(xiě)該寄存器將導(dǎo)致OnCE執(zhí)行寫(xiě)命令;當(dāng)需要時(shí),在向該寄存器寫(xiě)入命令之前,ONCE_DATA和ONCE_INSTR寄存器應(yīng)當(dāng)被加載正確的值。
CSWADDR-內(nèi)容交換地址。一個(gè)15位寄存器,其包含內(nèi)容交換地址(位13-0)和使能位(14);當(dāng)設(shè)置所述使能位時(shí),假設(shè)內(nèi)容交換程序開(kāi)始于包括在位13-0中的地址。對(duì)于所述使能位,該寄存器的復(fù)位值為0,對(duì)于內(nèi)容交換地址,為十進(jìn)制32。
ILLINSTADDR-非法指令陷阱地址。該寄存器的位13-0包含當(dāng)執(zhí)行非法指令時(shí)IPCM跳到的地址;在復(fù)位時(shí),其為0x0001。
CHN0ADDR-信道0地址。由引導(dǎo)碼或IPCM使用此13位寄存器復(fù)位之后,其指向在ROM中的標(biāo)準(zhǔn)引導(dǎo)程序(信道0程序);通過(guò)改變?cè)摰刂?,用?hù)有能力用他自己的程序來(lái)執(zhí)行引導(dǎo)順序。引導(dǎo)碼的第一指令獲取該寄存器的內(nèi)容(其也被映射到IPCM存儲(chǔ)器的空間)并且跳到給定的地址。復(fù)位值為0x0050(十進(jìn)制為80)。
CHNENBL-信道使能RAM。主控制模塊包含32×32個(gè)信道使能RAM。該信道使能RAM包含事件/信道對(duì)應(yīng)映射。根據(jù)RAM的內(nèi)容,任意事件可以觸發(fā)信道的任何可能組合。
CHNPRI-信道優(yōu)先權(quán)寄存器。這一組32個(gè)寄存器包含每一個(gè)信道的優(yōu)先權(quán);優(yōu)先權(quán)號(hào)在1到7之間。0是一個(gè)保留值,由IPCM硬件使用來(lái)檢測(cè)什么時(shí)候沒(méi)有信道掛起。DSP編程模塊相比于主處理器106(也就是主機(jī)),DSP 102經(jīng)過(guò)接個(gè)接口寄存器來(lái)控制IPCM 116受到一些限制。每一個(gè)寄存器占用兩個(gè)16位字以適應(yīng)所有32個(gè)信道。所有的寄存器以相同方式工作,作為主處理器的對(duì)應(yīng)物(counterpart)。在DSP接口中,沒(méi)有實(shí)現(xiàn)CEVTOVR和CDSPOVR寄存器。
諸如COPTR的所有的地址都由32位字組成,該32位字可以尋址位于石英存儲(chǔ)器空間內(nèi)(4G字節(jié))的任何位置。
所有的寄存器與IPCM時(shí)鐘同步(這意味著當(dāng)DSP訪(fǎng)問(wèn)這些寄存器時(shí),主機(jī)必須確保IPCM時(shí)鐘運(yùn)行)。
關(guān)于讀和寫(xiě)允許的大小任何讀操作將寄存器的32位內(nèi)容放到總線(xiàn)上,而不論讀的數(shù)據(jù)大小(也就是,不考慮允許的字節(jié));任何寫(xiě)操作根據(jù)要求的數(shù)據(jù)大小來(lái)更新寄存器的內(nèi)容(也就是,使用允許的字節(jié)來(lái)將相應(yīng)的字節(jié)從總線(xiàn)寫(xiě)到寄存器)。
下面是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于控制IPCM 116的DSP的寄存器。
COPRT-信道0指針。該寄存器在DSP存儲(chǔ)器中包含信道控制塊的陣列的32位地址,所述信道控制塊以用于信道0(控制信道)的CCB開(kāi)始。DSP具有讀/寫(xiě)訪(fǎng)問(wèn),IPCM具有只讀訪(fǎng)問(wèn)。在復(fù)位時(shí),該寄存器將全為0。在允許任何信道之前,應(yīng)當(dāng)由DSP初始化該寄存器。
INTR-信道中斷。該寄存器包含32個(gè)DI[i]位。如果設(shè)置了任意位,將導(dǎo)致主機(jī)發(fā)生一個(gè)中斷。該寄存器是到主機(jī)的“一次寫(xiě)”寄存器。當(dāng)主機(jī)設(shè)置在該寄存器中的位時(shí),清除相應(yīng)的DI[i]位。當(dāng)服務(wù)了中斷服務(wù)程序時(shí),它們應(yīng)當(dāng)清除各自的信道位。不這樣做,將導(dǎo)致中斷繼續(xù)發(fā)生。當(dāng)運(yùn)行相應(yīng)的執(zhí)行指令時(shí),IPCM負(fù)責(zé)設(shè)置相應(yīng)于當(dāng)前信道的DI[i]位。
STOP/STAT-信道停止/信道狀態(tài)。該32位寄存器具有用于每一個(gè)信道的一位。該寄存器是到DSP的“一次寫(xiě)”寄存器。當(dāng)DSP將1寫(xiě)入該寄存器的位I時(shí),清除相應(yīng)的DE[i]和START[i]位。讀該寄存器將產(chǎn)生DE[i]位的當(dāng)前狀態(tài)。
START-信道開(kāi)始。該32位寄存器具有用于每一個(gè)信道的一位。該寄存器是到DSP的“一次寫(xiě)”寄存器。當(dāng)清除相應(yīng)的DE[i]位時(shí),不能設(shè)置START[i]位。當(dāng)DSP試圖通過(guò)寫(xiě)入1來(lái)設(shè)置START[i]位時(shí),如果相應(yīng)的DE[i]位是清空的,則在START[i]寄存器中的位將保持清除,并且設(shè)置DE[i]位。如果已經(jīng)設(shè)置了相應(yīng)的DE[i]位,將設(shè)置START[i]位。在下一次IPCM信道I試圖借助于執(zhí)行指令來(lái)清除DE[i]位時(shí),將清除在START[i]寄存器中的位,并且DE[i]位將代替START[i]位的舊值。讀該寄存器將產(chǎn)生START[i]位的當(dāng)前狀態(tài)。該機(jī)制允許DSP每一個(gè)信道輸送兩個(gè)START命令。
EVTERR-事件錯(cuò)誤寄存器。當(dāng)檢測(cè)到接入事件時(shí),由IPCM使用該寄存器來(lái)加熱DSP,并且該寄存器觸發(fā)已經(jīng)掛起或被服務(wù)的信道。這可能意味著該信道發(fā)生了數(shù)據(jù)溢出。這是用于調(diào)度器的“一次寫(xiě)”寄存器。其僅能夠設(shè)置標(biāo)志;當(dāng)由DSP讀該寄存器或者在IPCM復(fù)位期間,這些標(biāo)志被清除。
當(dāng)通過(guò)事件輸入引腳接收到觸發(fā)信道I的事件并且已經(jīng)設(shè)置了EP[i]位時(shí),設(shè)置任何的EVTERR[i]位;如果主機(jī)試圖設(shè)置EP[i]位,而EP[i]位已經(jīng)被設(shè)置,則不影響EVTERR[i]位。
該寄存器不同于主機(jī)EVTERR。當(dāng)DSP進(jìn)行讀操作并且清除它時(shí),在主寄存器中相同的信息仍然可用。
INTRMASK-信道中斷屏蔽標(biāo)志。該寄存器包括32個(gè)中斷發(fā)生屏蔽位。如果設(shè)置了位INTRMASK[i],則設(shè)置DE[i]位,并且無(wú)論何時(shí)在信道I上檢測(cè)到事件錯(cuò)誤(也就是,設(shè)置EVTERR[i]),將中斷發(fā)送給DSP。
PSW-調(diào)度器狀態(tài)。這是帶有下面的狀態(tài)信息的16位寄存器[40]CCR(當(dāng)前信道寄存器);[75]CCR(當(dāng)前信道優(yōu)先權(quán));[128]NCR(下一個(gè)信道寄存器);和[1513]NCP(下一個(gè)信道優(yōu)先權(quán))。
EVTERRDBG-用于調(diào)試的事件錯(cuò)誤寄存器。該寄存器與EVTERR相同,除了進(jìn)行讀操作時(shí)不改變它的內(nèi)容(也就是,不清除它);該地址被用于調(diào)試模式。DSP OnCE可檢查該寄存器而不修改它。IPCM編程模型每一個(gè)可編程DMA數(shù)據(jù)信道具有被腳本使用的8個(gè)通用的32位寄存器。通用寄存器0具有用于環(huán)路指令的專(zhuān)用功能,但可以用于其它目的。
功能單元狀態(tài)。每一個(gè)信道內(nèi)容具有作為功能單元的部分的一些狀態(tài)。該狀態(tài)的特定分配是該功能單元定義的部分。該狀態(tài)必須在內(nèi)容交換中保存/恢復(fù)。
編程計(jì)數(shù)寄存器(PC)。該P(yáng)C是14位的。由于指令是16位寬度,且在IPCM中的所有的存儲(chǔ)器是32位寬度,PC的最低位選擇包含當(dāng)前指令的32位字的一半。具有0的最低位選擇該字的最高有效一半(也就是,Big-Endian)。
標(biāo)志。每一個(gè)信道具有4個(gè)標(biāo)志T位反映一些運(yùn)算和測(cè)試指令的狀態(tài)。當(dāng)加法或減法的結(jié)果為0時(shí)設(shè)置該標(biāo)志,其它情況則清除它。它也是對(duì)測(cè)試位的復(fù)制。最后,當(dāng)環(huán)路計(jì)數(shù)器(Greg0)為0時(shí),也可設(shè)置該標(biāo)志;當(dāng)硬件環(huán)路的最后指令是可修改T標(biāo)志的操作時(shí),不考慮對(duì)T的影響,且由Greg0狀態(tài)代替。
另兩個(gè)位SF和DR被用來(lái)分別指出來(lái)自于加載數(shù)據(jù)源和存儲(chǔ)到目的地的錯(cuò)誤條件。訪(fǎng)問(wèn)錯(cuò)誤將設(shè)置這些位,成功的事務(wù)則清除它們。也可以由特定指令(CLRF和LOOP)清除這兩位。通過(guò)加載LD和LDF來(lái)更新SF(源錯(cuò)誤);通過(guò)存儲(chǔ)ST和STF來(lái)更新DF(目的地錯(cuò)誤)。
由幾種條件引起訪(fǎng)問(wèn)錯(cuò)誤寫(xiě)入ROM,寫(xiě)入只讀映射倒寄存器的存儲(chǔ)器。當(dāng)外設(shè)進(jìn)行訪(fǎng)問(wèn)時(shí),其接收到訪(fǎng)問(wèn)技術(shù)非映射地址(accessingart unmapped address)或者任何傳輸錯(cuò)誤。
SF和DF標(biāo)志對(duì)硬件環(huán)路的性能產(chǎn)生主要影響如果當(dāng)開(kāi)始硬件環(huán)路時(shí)SF或DF被設(shè)置,并且SF或DF沒(méi)有被環(huán)路指令屏蔽,不會(huì)執(zhí)行該循環(huán)體;現(xiàn)在,在循環(huán)體內(nèi)部,如果負(fù)載或存儲(chǔ)設(shè)置相應(yīng)的SF或DF標(biāo)志,則循環(huán)立即退出。測(cè)試在環(huán)路的末端處的T標(biāo)志的狀態(tài)(也測(cè)量SF和DF)指出是否由于任何預(yù)期的退出防止Greg0到達(dá)0值從而設(shè)置了T標(biāo)志導(dǎo)致循環(huán)異常地退出。如果錯(cuò)誤發(fā)生在上一個(gè)循環(huán)的最后的指令處,這也是有效的。
最后的標(biāo)志是循環(huán)模式標(biāo)志LM,其指出何時(shí)處理器工作在循環(huán)模式。該標(biāo)志由循環(huán)指令設(shè)置,并且在執(zhí)行上一個(gè)循環(huán)的最后的指令后被清除。
返回程序計(jì)數(shù)器(RPC)。RPC為4位。通過(guò)跳到子程序指令來(lái)設(shè)置,并且由從子程序指令返回使用。提供指令來(lái)向/從通用寄存器傳輸它的內(nèi)容。
環(huán)路模式開(kāi)始程序計(jì)數(shù)器(SPC)。SPC為14位。由環(huán)路指令將其設(shè)置到緊跟其后的位置。
環(huán)路模式結(jié)束程序計(jì)數(shù)器(EPC)。EPC為14位。由環(huán)路指令將其設(shè)置到在循環(huán)之后的下一個(gè)指令的位置。
內(nèi)容交換。每一個(gè)信道具有由8個(gè)通用寄存器和代表所述功能單元的狀態(tài)的附加內(nèi)容組成的隔離的內(nèi)容。激活的寄存器和功能單元包含激活信道的內(nèi)容。不激活信道的內(nèi)容存儲(chǔ)在作為部分或IPCM地址空間的IPCM RAM中。內(nèi)容交換將舊信道的內(nèi)容區(qū)域存儲(chǔ)到激活的存儲(chǔ)器,并且從新的信道的內(nèi)容區(qū)域加載新的內(nèi)容。這正好要求47個(gè)IPCM循環(huán)來(lái)完成。
可能定義一個(gè)定制的內(nèi)容交換程序。只要可能,用戶(hù)必須將其存儲(chǔ)到RAM中,并且必須經(jīng)過(guò)MCORE將它的地址寫(xiě)入CSWADDR控制寄存器中。使用該選項(xiàng),不可能獲得象內(nèi)嵌的程序一樣的相似的循環(huán)計(jì)數(shù)(也就是,47循環(huán)),因?yàn)樗械募虞d和存儲(chǔ)要求2個(gè)循環(huán)來(lái)完成而不是要求在ROM程序中的1個(gè)循環(huán)(1個(gè)循環(huán)執(zhí)行加載/存儲(chǔ),另一個(gè)循環(huán)獲取下一個(gè)指令兩個(gè)訪(fǎng)問(wèn)都使用RAM,這意味著他們不能夠被并行地進(jìn)行)。
存儲(chǔ)器映射寄存器。IPCM可以通過(guò)系統(tǒng)總線(xiàn)訪(fǎng)問(wèn)幾個(gè)寄存器。
主信道0指針(MCOPTR)。在MCU存儲(chǔ)器空間中,其包含初始IPCM內(nèi)容和腳本的地址,由運(yùn)行在信道0上的IPCM引導(dǎo)腳本加載所述初始IPCM內(nèi)容和腳本。這是只讀寄存器。
DSP信道0指針(DCOPTR)。在DSP存儲(chǔ)器空間中,其包含初始IPCM內(nèi)容和腳本的地址,由運(yùn)行在信道0上的IPCM引導(dǎo)腳本加載所述初始IPCM內(nèi)容和腳本。這是只讀寄存器。
當(dāng)前信道寄存器(CCR)。其包含安裝信道內(nèi)容的信道的5位優(yōu)先權(quán)。這是只讀寄存器。
當(dāng)前信道優(yōu)先權(quán)(CCPR)。其包含安裝了內(nèi)容的信道的3位優(yōu)先權(quán)。這是只讀寄存器。
最高掛起信道寄存器(HPCR)。包含信道的已編碼的32位信道號(hào),所述信道已被任務(wù)調(diào)度器選擇來(lái)下一次運(yùn)行。在選擇的位置或信道將一位設(shè)為“1”(類(lèi)如,如果HPCR包含值0x04000000,信道26是被調(diào)度器選擇的下一個(gè)信道)。這是只讀寄存器。
最高掛起優(yōu)先權(quán)(HDPR)。其包含信道的3位優(yōu)先權(quán),所述信道已被任務(wù)調(diào)度器選擇來(lái)下一次運(yùn)行。這是只讀寄存器。
當(dāng)前信道指針(CCPTR)。其包含用于當(dāng)前信道的內(nèi)容數(shù)據(jù)的開(kāi)始地址它的值為CONTEXT_BASE+20*CCR(CONTEXT_BASE=0x0800);這是只讀寄存器。
CHN0ADDR。其包含由MCORE編程的信道0程序的地址;在每一次開(kāi)始引導(dǎo)并且IPCM跳到它包含的地址時(shí),它被加載到通用寄存器。缺省情況下,其指向ROM中的標(biāo)準(zhǔn)引導(dǎo)程序。
地址空間。IPCM具有連個(gè)內(nèi)部總線(xiàn)用來(lái)從存儲(chǔ)器中讀出指令的指令總線(xiàn);和用來(lái)訪(fǎng)問(wèn)與在指令總線(xiàn)上的可視存儲(chǔ)器相同的存儲(chǔ)器的數(shù)據(jù)總線(xiàn),加上一些存儲(chǔ)器映射寄存器(調(diào)度器狀態(tài)和OnCE寄存器)和5個(gè)外設(shè)寄存器(USB、UART1、UART3、MMC和視頻SAP)。
指令內(nèi)存映象。它基于14位地址總線(xiàn)和16位數(shù)據(jù)(指令)總線(xiàn);從程序ROM或程序RAM中獲得指令。IPCM腳本能夠改變程序RAM的內(nèi)容,所述程序RAM也可從數(shù)據(jù)總線(xiàn)上看到。
最前面的兩個(gè)指令位置(在0和1處)是特殊的。位置0是在復(fù)位時(shí)設(shè)置PC之處。位置1是在執(zhí)行非法指令時(shí)設(shè)置PC之處。希望這兩個(gè)位置都包含一個(gè)jmp以處理程序。
數(shù)據(jù)內(nèi)存映象。IPCM腳本可訪(fǎng)問(wèn)的所有數(shù)據(jù)占據(jù)(make tip)數(shù)據(jù)存儲(chǔ)器空間或IPCM。該地址空間有幾個(gè)部分ROM、RAM、外設(shè)寄存器和調(diào)度寄存器(CCR、HPCR和CCPTR)以及OnCE寄存器。IPCM腳本可以讀和寫(xiě)內(nèi)容RAM、數(shù)據(jù)RAM和外設(shè)寄存器。
地址范圍是16位,數(shù)據(jù)寬度是32位;然而,當(dāng)訪(fǎng)問(wèn)外設(shè)寄存器(USB,等等),數(shù)據(jù)寬度可以不同;在此情況下,外設(shè)忽略要寫(xiě)入的32位數(shù)據(jù)的未使用部分;在讀操作中,32位讀數(shù)據(jù)中的丟失部分由“0”代替。IPCM初始化在硬件復(fù)位之后,IPCM 116、程序RAM、內(nèi)容RAM和數(shù)據(jù)RAM具有不可預(yù)測(cè)的內(nèi)容。有效的寄存器設(shè)置被分配給信道0,并且PC被初始化為全0。然而,由于信道使能寄存器都為0,沒(méi)有有效的信道,并且中止IPCM。
為了啟動(dòng)IPCM,主處理器106(即主機(jī))首先在用于控制信道(信道0)中創(chuàng)建幾個(gè)信道控制塊,然后將信道0指針寄存器初始化為第一控制塊的地址。然后設(shè)置在信道使能寄存器中的位0(對(duì)應(yīng)于信道0)。
當(dāng)被允許時(shí),IPCM 116開(kāi)始執(zhí)行在用于信道0的程序ROM中的、位于地址0處的腳本。這個(gè)ROM 308腳本將讀出信道0指針寄存器,并且使用含在其中的地址來(lái)開(kāi)始獲取(使用DMA)第一信道控制塊。如果該塊包含有效的命令,其解釋該命令(其通常被用于從主機(jī)下載一些數(shù)據(jù)道IPCM存儲(chǔ)器)并且繼續(xù)執(zhí)行該命令以及移動(dòng)到下一個(gè)控制塊。這將繼續(xù)下去,直到到達(dá)一個(gè)無(wú)效的信道命令,到達(dá)無(wú)效命令時(shí)將中止腳本,等主機(jī)再次允許該信道。
也有兩種方法來(lái)使IPCM在用戶(hù)自定義的腳本上引導(dǎo)。首先,通過(guò)使用OnCE(經(jīng)過(guò)它的MCORE接口的Jtag接口)來(lái)下載在IPCM RAM中的任何代碼,并且強(qiáng)迫IPCM引導(dǎo)該代碼;其次,通過(guò)使用在主編程模型中的CHN0ADDR寄存器,IPCM引導(dǎo)代碼獲得該寄存器的內(nèi)容并且跳到給定的地址。
IPCM腳本的執(zhí)行取決于組成腳本的指令和在其上工作的數(shù)據(jù)內(nèi)容。在允許執(zhí)行腳本之前,二者都必須初始化。32個(gè)信道中的每一個(gè)具有一個(gè)隔離的數(shù)據(jù)內(nèi)容,但是可以共享在數(shù)據(jù)RAM中的腳本和位置。
主機(jī)管理程序RAM和數(shù)據(jù)RAM中的空間。其也管理IPCM信道的分配,這些信道被分配給要求它們的設(shè)備驅(qū)動(dòng)器。通過(guò)主機(jī)使用信道0來(lái)下載任何要求的腳本和數(shù)據(jù)值以及信道初始化內(nèi)容來(lái)初始化信道。所述內(nèi)容包含寄存器的所有初始化值,包括PC。然后,主機(jī)106激活該信道,并且該信道編程有效,開(kāi)始從它的腳本中獲取和執(zhí)行指令。
參見(jiàn)題目為“用于IPCM的RISC處理器的指令集”的附件A,其介紹了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、用于IPCM 116中的優(yōu)選的指令完整集。
下面進(jìn)一步介紹對(duì)應(yīng)于采用附表A功能單元的指令集的實(shí)施例的DSP DMA單元和主處理器DMA單元。
該功能單元指令導(dǎo)致8位代碼(可在指令的低8位中找到)出現(xiàn)在(asserted)功能單元控制總線(xiàn)上。使用這些位中的一些位來(lái)選擇幾個(gè)功能單元中的一個(gè)。為了建立編程設(shè)計(jì)約定,假設(shè)選擇的位是8位代碼中的最高有效位中的一些位。而且,由給定的功能單元解碼最低有效位的一些位來(lái)建立要執(zhí)行的操作類(lèi)型。
對(duì)于主DMA單元312,DMA指令控制DMA狀態(tài)機(jī),并且可引起在相關(guān)的存儲(chǔ)器總線(xiàn)上的一個(gè)DMA循環(huán)。有三個(gè)寄存器與主DMA單元相關(guān)地址寄存器(MA)、數(shù)據(jù)緩沖器(MD)和狀態(tài)機(jī)寄存器(MS)。
地址寄存器(MA)包含指向與下一個(gè)數(shù)據(jù)傳輸相關(guān)的DMA存儲(chǔ)器的指針。其具有字節(jié)間隔尺寸。用1df指令讀該寄存器(也就是,讀操作)沒(méi)有負(fù)面影響。寫(xiě)地址寄存器可能有負(fù)面影響。如果在緩沖器中有一個(gè)寫(xiě)數(shù)據(jù)值,并且地址改變,該寫(xiě)數(shù)據(jù)將被刷新(即,發(fā)出一個(gè)DMA寫(xiě)循環(huán))。如果設(shè)置了預(yù)取的位,并且沒(méi)有有效的寫(xiě)數(shù)據(jù),用新的地址發(fā)出DMA讀循環(huán)。
當(dāng)數(shù)據(jù)被傳輸?shù)綌?shù)據(jù)緩沖器或從數(shù)據(jù)緩沖器傳輸出時(shí),將地址寄存器增加傳輸?shù)淖止?jié)數(shù)目/地址增加32位字邊界的數(shù)目,將刷新在緩沖器中的任何有效的寫(xiě)數(shù)據(jù)。
在數(shù)據(jù)緩沖器(MD)中,DMA循環(huán)不總是與加載寫(xiě)緩沖器的stf指令相關(guān),該指令可剛好將傳輸?shù)淖訂卧虞d到緩沖寄存器,因?yàn)榫彌_寄存器累加字節(jié),之后該字節(jié)被用在實(shí)際的大小的存儲(chǔ)器傳輸中。DMA單元保持字節(jié)有效的狀態(tài),并且正確地移位和插入信數(shù)據(jù)。加載寫(xiě)緩沖器的指令可有條件地導(dǎo)致刷新結(jié)果緩沖器,引起一個(gè)DMA寫(xiě)循環(huán),即使沒(méi)有完全填滿(mǎn)該緩沖器。
如果還沒(méi)有取走數(shù)據(jù),讀數(shù)據(jù)緩沖器的1df指令可引起DMA循環(huán)。如果在緩沖器中的所有字節(jié)已經(jīng)被傳輸,每一個(gè)讀傳輸可以有條件地引起預(yù)取。
數(shù)據(jù)緩沖器的讀和寫(xiě)可以分別引起目的或源錯(cuò)誤。由于MLB不支持24位訪(fǎng)問(wèn),當(dāng)在MLB上請(qǐng)求3字節(jié)訪(fǎng)問(wèn)時(shí),主DMA觸發(fā)錯(cuò)誤。當(dāng)請(qǐng)求刷新或獲取時(shí),沒(méi)有發(fā)生這種情況;只要沒(méi)有外部訪(fǎng)問(wèn)要執(zhí)行,內(nèi)部MD寄存器可以在任何時(shí)候具有3字節(jié)的數(shù)據(jù)。eDRAM支持3字節(jié)的訪(fǎng)問(wèn)。
有一種刷新的特殊情況使用字節(jié)訪(fǎng)問(wèn)MD,可能得到3個(gè)有效字節(jié),并且請(qǐng)求刷新;在MD中的3個(gè)有效字節(jié)將被正確地寫(xiě)入eDRAM;但是,如果是在MLB上進(jìn)行寫(xiě)操作,該訪(fǎng)問(wèn)將引起錯(cuò)誤。
狀態(tài)寄存器(MS)包含DMA狀態(tài)-機(jī)值。不希望用戶(hù)在正常模式下訪(fǎng)問(wèn)它。實(shí)際上,由于在DMA處于任何狀態(tài)時(shí)可發(fā)生內(nèi)容交換,需要保存該狀態(tài),這個(gè)保存由內(nèi)容交換程序來(lái)完成。
預(yù)取和刷新管理允許在執(zhí)行DMA訪(fǎng)問(wèn)時(shí)繼續(xù)IPCM RISC機(jī)制。當(dāng)RISC核要求對(duì)主DMA進(jìn)行預(yù)取(p=1)或自動(dòng)刷新(f=0)時(shí),在DMA完成外部訪(fǎng)問(wèn)之前,RISC核將接收一個(gè)立即傳輸確認(rèn);這允許RISC核進(jìn)行類(lèi)似訪(fǎng)問(wèn)其它DMA機(jī)制的其它事情。
然而,用戶(hù)必須注意該機(jī)制的固有限制只要DMA沒(méi)有FIFO棧來(lái)存儲(chǔ)命令,如果發(fā)出了預(yù)取/自動(dòng)刷新命令,而DMA沒(méi)有完成它的上一個(gè)訪(fǎng)問(wèn),將延遲傳輸確認(rèn),直到所述的在前訪(fǎng)問(wèn)過(guò)去。
另一點(diǎn)是錯(cuò)誤管理當(dāng)DMA立即將確認(rèn)發(fā)送到RISC核時(shí),假設(shè)沒(méi)有錯(cuò)誤發(fā)生(除了如果檢測(cè)到象對(duì)MLB的24位訪(fǎng)問(wèn)的訪(fǎng)問(wèn)被禁止)。如果發(fā)生了錯(cuò)誤,將做出標(biāo)記(傳輸錯(cuò)誤確認(rèn)),以用于后面的DMA訪(fǎng)問(wèn)。
如果恰當(dāng)?shù)厥褂昧薉MA,則這不成為問(wèn)題。預(yù)取/自動(dòng)刷新特征被用于硬件環(huán)路中,且在硬件環(huán)路之后應(yīng)當(dāng)執(zhí)行沒(méi)有預(yù)取(p=0)的最后一個(gè)訪(fǎng)問(wèn)或強(qiáng)制的刷新(f=1)該訪(fǎng)問(wèn)將收集任何剩下的錯(cuò)誤(錯(cuò)誤本身以及來(lái)自前一個(gè)預(yù)取或自動(dòng)刷新訪(fǎng)問(wèn)的錯(cuò)誤)。
DSP DMA單元310功能上相同于主DMA單元312,但有一些微小的限制。其允許到石英DMA進(jìn)行32位和16位傳輸。
DMA指令控制DMA狀態(tài)機(jī),且可在相關(guān)的存儲(chǔ)器總線(xiàn)上引起DMA循環(huán)。有三個(gè)與主DMA單元相關(guān)的寄存器地址寄存器(DA)、數(shù)據(jù)緩沖器(DD)和狀態(tài)機(jī)寄存器(DS)。
地址寄存器(DA)包含指向與下一個(gè)數(shù)據(jù)傳輸相關(guān)的DMA存儲(chǔ)器的指針。其具有字節(jié)間隔尺寸。用1df指令讀該寄存器沒(méi)有負(fù)面影響。寫(xiě)地址寄存器可能有負(fù)面影響。如果在緩沖器中有一個(gè)寫(xiě)數(shù)據(jù)值,并且地址改變,該寫(xiě)數(shù)據(jù)將被刷新(即,發(fā)出一個(gè)DMA寫(xiě)循環(huán))。如果設(shè)置了預(yù)取的位,并且沒(méi)有有效的寫(xiě)數(shù)據(jù),用新的地址發(fā)出DMA讀循環(huán)。
當(dāng)數(shù)據(jù)被傳輸?shù)綌?shù)據(jù)緩沖器或從數(shù)據(jù)緩沖器傳輸出時(shí),將地址寄存器增加傳輸?shù)淖止?jié)數(shù)目/地址增加32位字邊界的數(shù)目,將刷新在緩沖器中的任何有效的寫(xiě)數(shù)據(jù)。
在數(shù)據(jù)緩沖器(DD)中,DMA循環(huán)不總是與加載寫(xiě)緩沖器的DMA指令相關(guān),該指令可剛好將傳輸?shù)淖訂卧虞d到緩沖寄存器,因?yàn)榫彌_寄存器累加字節(jié),之后該字節(jié)被用在實(shí)際的大小的存儲(chǔ)器傳輸中。DMA狀態(tài)保持字節(jié)有效的狀態(tài),并且正確地移位和插入新數(shù)據(jù)。加載寫(xiě)緩沖器的指令可有條件地導(dǎo)致刷新結(jié)果緩沖器,引起一個(gè)DMA寫(xiě)循環(huán),即使沒(méi)有完全填滿(mǎn)該緩沖器。
如果還沒(méi)有取走數(shù)據(jù),讀數(shù)據(jù)緩沖器的DMA指令可引起DMA循環(huán)。如果在緩沖器中的所有字節(jié)已經(jīng)被傳輸,每一個(gè)讀傳輸可以有條件地引起預(yù)取。
數(shù)據(jù)緩沖器的讀和寫(xiě)可以分別引起目的或源錯(cuò)誤。由于石英DMA不支持字節(jié)訪(fǎng)問(wèn),DSP DMA檢測(cè)任何未允許的訪(fǎng)問(wèn)大小并且因此觸發(fā)錯(cuò)誤。未允許的大小為1字節(jié)和3字節(jié)。當(dāng)請(qǐng)求刷新或獲取時(shí),才發(fā)生這種情況。只要沒(méi)有外部訪(fǎng)問(wèn)要執(zhí)行,內(nèi)部DD寄存器可以在任何時(shí)候具有I-字節(jié)或3-字節(jié)的數(shù)據(jù)。
狀態(tài)寄存器(DS)包括沒(méi)有負(fù)面影響的00110000的32位讀操作。
預(yù)取和刷新管理允許在執(zhí)行DMA訪(fǎng)問(wèn)時(shí)繼續(xù)IPCM RISC機(jī)制。當(dāng)RISC核要求對(duì)主DMA進(jìn)行預(yù)取(p=1)或自動(dòng)刷新(f=0)時(shí),在DMA完成外部訪(fǎng)問(wèn)之前,RISC核將接收一個(gè)立即傳輸確認(rèn);這允許RISC核進(jìn)行類(lèi)似訪(fǎng)問(wèn)其它DMA機(jī)制的其它事情。
然而,用戶(hù)必須注意該機(jī)制的固有限制只要DMA沒(méi)有FIFO棧來(lái)存儲(chǔ)命令,如果發(fā)出了預(yù)取/自動(dòng)刷新命令,而DMA沒(méi)有完成它的上一個(gè)訪(fǎng)問(wèn),將延遲傳輸確認(rèn),直到所述的在前訪(fǎng)問(wèn)過(guò)去。
另一點(diǎn)是錯(cuò)誤管理當(dāng)DMA立即將確認(rèn)發(fā)送到RISC核時(shí),假設(shè)沒(méi)有錯(cuò)誤發(fā)生(除了如果檢測(cè)到象對(duì)MLB的24位訪(fǎng)問(wèn)的訪(fǎng)問(wèn)被禁止)。如果發(fā)生了錯(cuò)誤,將做出標(biāo)記(傳輸錯(cuò)誤確認(rèn)),以用于后面的DMA訪(fǎng)問(wèn)。
如果恰當(dāng)?shù)厥褂昧薉MA,則這不成為問(wèn)題。預(yù)取/自動(dòng)刷新特征被用于硬件環(huán)路中,且在硬件環(huán)路之后應(yīng)當(dāng)執(zhí)行沒(méi)有預(yù)取(p=0)的最后一個(gè)訪(fǎng)問(wèn)或強(qiáng)制的刷新(f=1)該訪(fǎng)問(wèn)將收集任何剩下的錯(cuò)誤(錯(cuò)誤本身以及來(lái)自前一個(gè)預(yù)取或自動(dòng)刷新訪(fǎng)問(wèn)的錯(cuò)誤)。程序設(shè)計(jì)約定在主機(jī)或DSP中見(jiàn)到的多數(shù)程序模型不是由IPCM的硬件結(jié)構(gòu)托管(mandate),而是由在IPCM上運(yùn)行的腳本托管。一些腳本在ROM中,使得它們給出的約定難以更改。
在主處理器一方,在一個(gè)陣列中有32個(gè)信道控制塊(CCG),在C0PTR中指出該陣列的基地址。每一個(gè)控制塊由4個(gè)32位字組成。第一個(gè)字包含當(dāng)前未定義的狀態(tài)。第二個(gè)字包含指向緩沖器描述符(Bd)的陣列的基址的指針。第三個(gè)字包含指向當(dāng)前BD的指針。第四個(gè)字當(dāng)前未使用。
僅當(dāng)信道不運(yùn)行時(shí),可由主機(jī)改變信道控制塊的內(nèi)容。
主緩沖器描述符(參見(jiàn)圖6)形成可編程大小的陣列,最后的緩沖器描述符被這樣標(biāo)記。緩沖器描述符的陣列被當(dāng)作一個(gè)環(huán)(ring),一些邏輯上連續(xù)的部分由主機(jī)擁有,剩余部分由IPCM擁有。狀態(tài)位指出每一個(gè)緩沖器描述符的主權(quán)。
當(dāng)緩沖器描述符將主權(quán)從主機(jī)改變到IPCM時(shí),計(jì)數(shù)字段指出有多少要傳輸?shù)臄?shù)據(jù)或者接收緩沖器的大小。當(dāng)主權(quán)被返給主機(jī)時(shí),計(jì)數(shù)指出傳輸或接收了多少數(shù)據(jù)。
信到0命令。緩沖器描述符的命令字段包含用于主機(jī)和IPCM之間通信的8位命令代碼。目前,信到0腳本僅識(shí)別下面的命令(1)將在隨后的命令中使用的IPCM地址設(shè)為包含在緩沖器地址字段中的值;(2)從在緩沖器地址處的主存儲(chǔ)器復(fù)制到IPCM存儲(chǔ)器;(3)從IPCM存儲(chǔ)器復(fù)制到在緩沖器地址處的主存儲(chǔ)器;(4)從主存儲(chǔ)器復(fù)制到在高5位中的信道號(hào)的信道內(nèi)容;和(5)從在高5位中的信道號(hào)的信道內(nèi)容復(fù)制到主存儲(chǔ)器。
在DSP一方,在一個(gè)陣列中有32個(gè)信道控制塊(CCB),所述陣列的基地址在C0-TR中指出。沒(méi)有使用用于信道0的CCB。每一個(gè)信到控制塊由8個(gè)16位字組成/第一個(gè)兩個(gè)字包含當(dāng)前未定義的狀態(tài)。第二個(gè)兩個(gè)字包含指向緩沖器描述符(Bd)的基址的指針。第三個(gè)兩個(gè)字包含指向當(dāng)前BD的指針。第四個(gè)兩個(gè)字當(dāng)前未使用。動(dòng)態(tài)存儲(chǔ)器刷新方法現(xiàn)在簡(jiǎn)要地回顧一下圖2,示出的處理器平臺(tái)包括用于刷新動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器也就是eDRAM的刷新控制器。刷新控制器220經(jīng)r總線(xiàn)240、通過(guò)數(shù)據(jù)路徑選擇218被耦合到eDRAM 108,其進(jìn)行對(duì)多路復(fù)用從諸如IPCM 116、主處理器106和LCD控制器204的競(jìng)爭(zhēng)設(shè)備的對(duì)eDRAM的訪(fǎng)問(wèn)。
正如本領(lǐng)域中所熟知的那樣,要求給動(dòng)態(tài)存儲(chǔ)器(DRAM或eDRAM)提供DC電源并且周期地對(duì)其進(jìn)行刷新,使得保持存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)。相反,只要將恒定的電源供給靜態(tài)存儲(chǔ)器(例如,SRAM),不需要刷新靜態(tài)存儲(chǔ)器。設(shè)計(jì)處理器平臺(tái)100的一個(gè)實(shí)施例的刷新控制器220來(lái)盡可能的節(jié)約電源,這對(duì)于手持應(yīng)用來(lái)說(shuō)有利地延長(zhǎng)電池壽命。
刷新控制器220有兩個(gè)基本的運(yùn)行模式有效模式和數(shù)據(jù)保持模式。有效模式在eDRAM 108的正常的操作期間被調(diào)用。任何時(shí)候終端用戶(hù)操作包含了處理器平臺(tái)100的產(chǎn)品,則使用該有效模式。有效模式使用在離散DRAM實(shí)現(xiàn)領(lǐng)域中熟知的“循環(huán)封裝(cycle stealing)”分布式刷新方法。
當(dāng)包含了處理器平臺(tái)100的產(chǎn)品沒(méi)有工作并且希望保持eDRAM108的內(nèi)容時(shí),調(diào)用數(shù)據(jù)保持模式。該數(shù)據(jù)保持模式有三種工作模式(1)分布式刷新方法,(2)“選擇刷新”方法和(3)“溫度補(bǔ)償”刷新方法。
本領(lǐng)域中熟知的分布式刷新方法與工作的有效模式的相同點(diǎn)在于存儲(chǔ)器被周期地刷新,而選擇刷新和溫度補(bǔ)償刷新可以被單獨(dú)使用或可被一起使用,以減少要求用于保持?jǐn)?shù)據(jù)在eDRAM存儲(chǔ)器陣列的功率量,或者可以被一起使用來(lái)獲得進(jìn)一步完全減少保持?jǐn)?shù)據(jù)而消耗的功率,這導(dǎo)致電池壽命更長(zhǎng),電池壽命對(duì)于手持應(yīng)用來(lái)說(shuō)特別地重要。
盡管有效模式和分布式刷新技術(shù)在本領(lǐng)域中是熟知的,盡管在其它實(shí)事例中可使用本領(lǐng)域中其他熟知的時(shí)鐘,有利的是,刷新控制器220使用低頻時(shí)鐘源,該時(shí)鐘源來(lái)自于工作于32kHz的日立鐘模塊。因此,在優(yōu)選實(shí)施例中,到刷新控制器220的時(shí)鐘輸入252是要求用于包含了處理器平臺(tái)100的產(chǎn)品中的日立鐘。
該32kHz時(shí)鐘輸入252在刷新控制器252內(nèi)被倍增(x2),并且被用來(lái)激活刷新循環(huán)。如本領(lǐng)域所熟知的那樣,在具有“n”個(gè)狀態(tài)的刷新控制器220中提供了一個(gè)計(jì)數(shù)器,這里“n”等于在陣列中的行總數(shù)。計(jì)數(shù)器是隨每一個(gè)時(shí)鐘跳變的遞增?!皀”。如本領(lǐng)域所熟知的那樣,“讀出放大器(Sense amplifiers)”執(zhí)行對(duì)在各行中的選擇的位單元的實(shí)際刷新。
有利的是,刷新控制器220使用已有的日歷鐘作為時(shí)鐘輸入;因此,消除了用分離的專(zhuān)用時(shí)鐘來(lái)運(yùn)行刷新控制器220的需要,而這是常規(guī)所需要的。采用分離的專(zhuān)用時(shí)鐘用于刷新控制器220進(jìn)一步增加了當(dāng)斷電時(shí)系統(tǒng)消耗的功率。
接下來(lái)參見(jiàn)圖7,選擇刷新方法有利地減少了存儲(chǔ)器(例如,eDRAM 108)中要刷新的行數(shù),為了以減少要保持的存儲(chǔ)器數(shù)目為帶價(jià)來(lái)減少功耗。例如,如果存儲(chǔ)器(例如,DRAM)可以分為多個(gè)部分,可刷新存儲(chǔ)器中的多個(gè)部分中的一個(gè)或多個(gè)而無(wú)需刷新所有的部分。特別地,多個(gè)部分可以是陣列中的存儲(chǔ)器的多行。因此,將保存被刷新的存儲(chǔ)器的多行的內(nèi)容,而在存儲(chǔ)器的行中沒(méi)有被刷新的內(nèi)容將丟失。例如,當(dāng)由用戶(hù)關(guān)閉設(shè)備時(shí)(例如,斷開(kāi)),主處理器106確定在存儲(chǔ)器中(例如,eDRAM 108)的哪些行需要保存,哪些部分(例如,行)不需要保持(步驟702)。接下來(lái),主處理器106將控制信號(hào)發(fā)送到刷新控制器220,通知希望保存主處理器存儲(chǔ)器中的哪些行或部分(步驟704)。刷新控制器220被配置以?xún)H刷新在斷電期間、在存儲(chǔ)器內(nèi)的標(biāo)識(shí)的行或部分。然后,刷新控制器220訪(fǎng)問(wèn)主處理器存儲(chǔ)器(例如,通過(guò)數(shù)據(jù)路徑選擇218訪(fǎng)問(wèn)eDRAM 108)并且刷新配置的行(步驟706)。因此,在刷新存儲(chǔ)器中消耗的功率很小,因?yàn)閮H有存儲(chǔ)器的一部分被刷新,而不是刷新整個(gè)存儲(chǔ)器。在此實(shí)施例中,這相當(dāng)節(jié)省功耗,因?yàn)閑DRAM 108很大,通常該功耗小于需要用于保存整個(gè)eDRAM 108的功耗。
下面介紹刷新控制器220執(zhí)行的選擇刷新方法。假設(shè)在存儲(chǔ)器陣列(例如eDRAM 108)中有n行,將j定義為要刷新的存儲(chǔ)器陣列中的總行數(shù),這樣j是在數(shù)字0和n之間。則該算法變?yōu)閕=0刷新Rowii=i+1模j換言之,刷新控制器220?!皀”計(jì)數(shù)器降低為?!?n-a)”計(jì)數(shù)器,其中“a”為在刷新中省略的行數(shù)。
接下來(lái)參見(jiàn)圖8,流程800示出了執(zhí)行存儲(chǔ)器刷新的溫度補(bǔ)償方法的圖2的刷新控制器220的步驟。存儲(chǔ)器刷新的溫度補(bǔ)償方法根據(jù)產(chǎn)品的周?chē)鷾囟葋?lái)調(diào)整刷新行為的周期。在常溫和下面中,這可節(jié)約相當(dāng)多的功率,這對(duì)于增加在手持設(shè)備工作的電池的電池壽命很重要。
通常,溫度越高,要求更加頻繁地刷新給定的存儲(chǔ)器(例如,eDRAM)。現(xiàn)有技術(shù)的方法根據(jù)“最壞情況”的情形來(lái)設(shè)計(jì)刷新單元的刷新速率,在這些情形下,包含了DRAM的產(chǎn)品處于很高的缺省溫度下。這樣,在大多數(shù)時(shí)間內(nèi),存儲(chǔ)器實(shí)際上為“過(guò)刷新”。然而,在很注重尺寸和功耗的應(yīng)用中,諸如在用作為希望使功耗最小的多媒體無(wú)線(xiàn)手持設(shè)備中的處理器平臺(tái)100的使用中,這種“過(guò)刷新”可導(dǎo)致由于不必要的過(guò)多操作刷新控制器而產(chǎn)生的功率消耗。
因此,與常規(guī)的刷新控制器不同,假設(shè)用于刷新控制器220的缺省溫度很低,使得缺省刷新速率很低(也就是,在刷新之間的時(shí)間更長(zhǎng)),通常導(dǎo)致節(jié)省了功率。然而,該產(chǎn)品的溫度可處于此低溫或者之下,但在其它時(shí)候產(chǎn)品的環(huán)境溫度高于此低的刷新速率溫度。除非刷新速率補(bǔ)償了更高的溫度,在DRAM中保持的數(shù)據(jù)將在刷新循環(huán)之間丟失。因此,刷新的溫度補(bǔ)償方法測(cè)量產(chǎn)品的環(huán)境溫度以確定刷新速率是否需要增加或是否可以維持在較低的刷新循環(huán)以節(jié)約功率。當(dāng)產(chǎn)品的環(huán)境溫度高,刷新循環(huán)之間的時(shí)間被減少。
具體而言,下面介紹溫度補(bǔ)償刷新方法。首先,假定一個(gè)數(shù)字定時(shí)器電路被一個(gè)精確的百萬(wàn)分之+/-100時(shí)鐘計(jì)時(shí),并且具有至少0.1秒的分辨率。該定時(shí)器應(yīng)當(dāng)能夠使用合適的時(shí)鐘信號(hào)來(lái)測(cè)量時(shí)間,并且在經(jīng)過(guò)預(yù)編程的時(shí)間之后,發(fā)送“事件”。該定時(shí)器應(yīng)當(dāng)具有一個(gè)被設(shè)為整數(shù)值的寄存器,且被用來(lái)表示要被測(cè)量的預(yù)編程值逝去的時(shí)間。也假定電子數(shù)字溫度電路,其指出精度為+/“j”度的x到7度的范圍,并且進(jìn)一步假設(shè)一個(gè)翻譯表,該表由具有“n”個(gè)元素的非易失性存儲(chǔ)器陣列(例如,預(yù)編程的ROM)組成,每一個(gè)元素包含在此稱(chēng)為“計(jì)數(shù)”的整數(shù)。由下式確定陣列的界限(即,元素?cái)?shù)目)n=y(tǒng)-x,式中n為陣列元素的數(shù)目,x和y為上下限溫度范圍。
“計(jì)數(shù)”的絕對(duì)值和范圍必須與在數(shù)字定時(shí)器中支持的“計(jì)數(shù)”寄存器的絕對(duì)值和范圍相適合。每一個(gè)“計(jì)數(shù)”入口被分配來(lái)占據(jù)陣列中的一個(gè)元素。以線(xiàn)性升序排列陣列中的“計(jì)數(shù)”入口,使得在陣列中的第一個(gè)元素對(duì)應(yīng)于最低的測(cè)量溫度(即,x),并且陣列中的最后的元素對(duì)應(yīng)于最高的測(cè)量的溫度(即,y)。
從實(shí)驗(yàn)數(shù)據(jù)中得到分配給每一個(gè)計(jì)數(shù)入口的值,所述實(shí)驗(yàn)數(shù)據(jù)是從要使用的實(shí)際的DRAM存儲(chǔ)器設(shè)備的實(shí)際樣值中獲得的。作為替換,可以通過(guò)晶體管的泄漏特性的計(jì)算機(jī)仿真方法來(lái)確定用于“計(jì)數(shù)”的值,所述晶體管的泄漏特性被使用在存儲(chǔ)器陣列中作為環(huán)境溫度改變的函數(shù)。在兩種情況下,“計(jì)數(shù)”的值代表最小刷新速率,需要該刷新速率以維持在位于x到y(tǒng)度的范圍內(nèi)的特定溫度下的數(shù)據(jù)完整性。在陣列中的每一個(gè)元素代表環(huán)境溫度的遞增改變,環(huán)境溫度開(kāi)始于溫度x,并且增加到溫度y。每一個(gè)元素的內(nèi)容代表維持?jǐn)?shù)據(jù)完整性的所必需的最小刷新速率。必須給定附加的誤差以適應(yīng)數(shù)字溫度精度“j”和存儲(chǔ)器工作電壓誤差以及期望的單元-單元變化。希望以相對(duì)于溫度的線(xiàn)性方式來(lái)排列陣列的元素,“計(jì)數(shù)”值可該代表指數(shù)特性。
通過(guò)刷新存儲(chǔ)器陣列中的所有行來(lái)開(kāi)始溫度補(bǔ)償刷新方法工作程序(步驟802)。注意,對(duì)行的刷新可由相對(duì)于圖7在上面介紹的“選擇刷新方法”管理,使得在步驟802中進(jìn)行的刷新少于對(duì)在存儲(chǔ)器陣列的存儲(chǔ)器中的所有行(部分)的刷新。接下來(lái),使用數(shù)字溫度計(jì)測(cè)量環(huán)境溫度(步驟804)。接著,使用一個(gè)查找表來(lái)將環(huán)境溫度測(cè)量值轉(zhuǎn)換成一個(gè)計(jì)數(shù)值(步驟806)。查找表代表通過(guò)仿真和實(shí)驗(yàn)數(shù)據(jù)確定的不同溫度處的各種刷新速率。如果測(cè)量的溫度超出查找表的邊界,則在超過(guò)最低邊界“x”的情況下應(yīng)當(dāng)選擇第一個(gè)元素,或在超過(guò)最高邊界“y”的情況下應(yīng)當(dāng)選擇最后一個(gè)元素。將計(jì)數(shù)值應(yīng)用到數(shù)字定時(shí)器電路(步驟808)。一旦終止了定時(shí)器“事件”,也就是數(shù)字定時(shí)器電路終止(步驟810),刷新所有的行;因此,重復(fù)步驟802到步驟810。無(wú)限地重復(fù)所有的步驟,直到給產(chǎn)品上電(turned on)(步驟812);因此,重新進(jìn)入有效刷新模式(步驟814)。
因此,通過(guò)采用存儲(chǔ)器刷新的溫度補(bǔ)償刷新方法,尤其是在或低于室溫工作環(huán)境下時(shí),與標(biāo)準(zhǔn)刷新操作(例如,分布式刷新方法)相比,節(jié)約了功率。
有利的是,可以同時(shí)操作“溫度補(bǔ)償模式”和“選擇刷新模式”,以消耗可能最低的數(shù)據(jù)保持功率。在產(chǎn)品關(guān)閉之前,經(jīng)公開(kāi)地向h總線(xiàn)232發(fā)送信號(hào),由主處理器配置刷新控制器的運(yùn)行模式。當(dāng)主處理器106重新進(jìn)入有效狀態(tài)即接通電源時(shí),刷新控制器220自動(dòng)地回復(fù)到“正?!边\(yùn)行的刷新模式(例如,分布式刷新)。可以無(wú)縫地執(zhí)行數(shù)據(jù)保持和正常操作(有效模式)之間的轉(zhuǎn)換,無(wú)需要求來(lái)自主處理器106的任何干涉。
###接下來(lái)參見(jiàn)圖9,方框圖示出了使用圖7和8的選擇刷新技術(shù)和溫度補(bǔ)償刷新技術(shù)的存儲(chǔ)器刷新系統(tǒng)900。圖中示出了日歷鐘902,二進(jìn)制計(jì)數(shù)器904和906,比較器908和910,局部刷新寄存器912,主處理器914(主機(jī)MCU 914),計(jì)數(shù)寄存器916,存儲(chǔ)器陣列918,數(shù)字溫度測(cè)量920,溫度傳感器922,刷新使能觸發(fā)器924,清除信號(hào)926,設(shè)置信號(hào)928,刷新使能信號(hào)930和刷新行使能932。
與圖7和8的相關(guān)介紹一致,數(shù)字溫度傳感器922測(cè)量環(huán)境溫度。如上參照?qǐng)D8的所述,該溫度測(cè)量值920被送到存儲(chǔ)器陣列918,并且被根據(jù)存儲(chǔ)在存儲(chǔ)器陣列中的查找表轉(zhuǎn)換成計(jì)數(shù)值。此計(jì)數(shù)值對(duì)應(yīng)于用于各種運(yùn)行溫度的刷新循環(huán)之間的時(shí)間測(cè)量值。該計(jì)數(shù)值被復(fù)制到計(jì)數(shù)寄存器916中。然后,由它們之間連接的比較器將該計(jì)數(shù)值與二進(jìn)制計(jì)數(shù)器906的值進(jìn)行比較。二進(jìn)制計(jì)數(shù)器906被耦合到日歷鐘902,使得它根據(jù)實(shí)際時(shí)間來(lái)進(jìn)行計(jì)數(shù)。
當(dāng)二進(jìn)制計(jì)數(shù)器906中的值等于計(jì)數(shù)寄存器916中的值時(shí),比較器910輸出一個(gè)設(shè)置信號(hào)928以設(shè)置刷新使能觸發(fā)器924來(lái)激活一個(gè)刷新循環(huán),也就是刷新使能觸發(fā)器924輸出一個(gè)刷新使能信號(hào)930(例如,刷新使能信號(hào)930變成高電平或“1”)。此時(shí),根據(jù)溫度確定了一定的時(shí)間量之后,刷新存儲(chǔ)器。同樣,設(shè)置信號(hào)928被輸回到二進(jìn)制計(jì)數(shù)器906(將其重設(shè)為0或另一個(gè)參考開(kāi)始點(diǎn))并且送到數(shù)字溫度測(cè)量920,該數(shù)字溫度測(cè)量被重新加載到存儲(chǔ)器陣列918以為下一個(gè)刷新循環(huán)確定下一個(gè)可變的時(shí)間量。如果溫度保持相同,刷新循環(huán)之間的時(shí)間保持相同。當(dāng)溫度改變時(shí),刷新循環(huán)之間的時(shí)間將改變。例如,如果溫度降低,則加長(zhǎng)刷新循環(huán)之間的時(shí)間,這有利地節(jié)約了功率,因?yàn)椴活l繁地發(fā)生刷新循環(huán)。
此外,主處理器耦合到局部刷新寄存器912,使得主處理器914將一個(gè)值加載到局部刷新寄存器912中,指出要刷新系統(tǒng)存儲(chǔ)器的哪一部分,例如,要刷新哪一行,不刷新哪一列。然后,由它們之間連接的比較器908將局部刷新寄存器912的值與二進(jìn)制計(jì)數(shù)器904的值進(jìn)行比較。二進(jìn)制計(jì)數(shù)器904也連接到日歷鐘902,但是二進(jìn)制計(jì)數(shù)器904不開(kāi)始計(jì)數(shù),直到比較器910輸出一個(gè)設(shè)置信號(hào)928,該設(shè)置信號(hào)也被輸?shù)蕉M(jìn)制計(jì)數(shù)器904。因此,一旦由進(jìn)入刷新使能觸發(fā)器924的設(shè)置信號(hào)928激活刷新循環(huán)(輸出了刷新使能信號(hào)),則二進(jìn)制計(jì)數(shù)器904開(kāi)始計(jì)數(shù)。
一旦二進(jìn)制計(jì)數(shù)器904中的值等于局部刷新寄存器912中的值,比較器將一個(gè)清除信號(hào)926輸?shù)剿⑿率鼓苡|發(fā)器924,并且輸回到二進(jìn)制計(jì)數(shù)器904。該清除信號(hào)復(fù)位二進(jìn)制計(jì)數(shù)器904,且引起刷新使能觸發(fā)器禁止刷新使能信號(hào)930(例如,刷新使能信號(hào)930變低或?yàn)椤?”)。這有效地停止了刷新過(guò)程,使得不刷新存儲(chǔ)器的整個(gè)部分(因?yàn)樵跀嚯娭坝兄魈幚砥鞔_定),這有利地節(jié)約了功率。注意,在此實(shí)施例中,二進(jìn)制計(jì)數(shù)器也對(duì)相應(yīng)于存儲(chǔ)器(DRAM)中的刷新行地址的數(shù)目進(jìn)行計(jì)數(shù),也就是刷新行地址信號(hào)932進(jìn)行計(jì)數(shù)。
有利地是,在圖9中示出的存儲(chǔ)器刷新系統(tǒng)都使用選擇刷新技術(shù)和溫度補(bǔ)償刷新技術(shù)來(lái)共同減少在刷新DRAM期間的功耗。使用的組件在本領(lǐng)域中是公知的。根據(jù)該實(shí)施例,大多數(shù)組件可以是圖2的刷新控制器220的一部分。例如,在一個(gè)實(shí)施例中,溫度傳感器922,溫度測(cè)量920和存儲(chǔ)器陣列918位于單獨(dú)的芯片上,而主處理器位于相同的處理器平臺(tái)上。局部刷新寄存器912,比較器908和910,二進(jìn)制計(jì)數(shù)器904和906,計(jì)數(shù)寄存器916,和刷新使能觸發(fā)器924都是刷新控制器220的一部分。
盡管借助于特定的實(shí)施例和應(yīng)用介紹了在此公開(kāi)的發(fā)明,在不背離權(quán)利要求書(shū)中闡述的發(fā)明范圍的情況下,本領(lǐng)域普通技術(shù)人員可以進(jìn)行各種修改和變化。
權(quán)利要求
1.一種數(shù)據(jù)傳輸系統(tǒng),其包括多個(gè)外設(shè)接口;第一存儲(chǔ)器;和耦合到第一存儲(chǔ)器的可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊,其連接到所述多個(gè)外設(shè)接口,其中,所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊配置在第一存儲(chǔ)器和所述多個(gè)外設(shè)接口的各個(gè)外設(shè)接口之間的選擇地可編程直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道。
2.根據(jù)權(quán)利要求1的所述數(shù)據(jù)傳輸系統(tǒng),進(jìn)一步包括耦合到所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊并且與第一存儲(chǔ)器相關(guān)的第一處理器。
3.根據(jù)權(quán)利要求1的所述數(shù)據(jù)傳輸系統(tǒng),進(jìn)一步包括耦合到所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊的第二存儲(chǔ)器,其中,所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊配置在第二存儲(chǔ)器和所述多個(gè)外設(shè)接口的各個(gè)外設(shè)接口之間的所述選擇地可編程直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道。
4.根據(jù)權(quán)利要求3的所述數(shù)據(jù)傳輸系統(tǒng),進(jìn)一步包括耦合到所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊并且與第二存儲(chǔ)器相關(guān)的第二處理器。
5.根據(jù)權(quán)利要求3的所述數(shù)據(jù)傳輸系統(tǒng),其中,配置第一存儲(chǔ)器和第二存儲(chǔ)器之間的所述選擇地可編程直接存儲(chǔ)器訪(fǎng)問(wèn)信道。
6.根據(jù)權(quán)利要求1的所述數(shù)據(jù)傳輸系統(tǒng),其中所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊包括可編程處理器。
7.根據(jù)權(quán)利要求6的所述數(shù)據(jù)傳輸系統(tǒng),其中,所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊進(jìn)一步包括耦合到所述可編程處理器的直接存儲(chǔ)器訪(fǎng)問(wèn)控制器,其中所述編程處理器經(jīng)過(guò)所述直接存儲(chǔ)器訪(fǎng)問(wèn)控制器的專(zhuān)用直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸信道來(lái)配置在第一存儲(chǔ)器和所述多個(gè)外設(shè)接口的各個(gè)外設(shè)接口之間的所述選擇地可編程直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道。
8.根據(jù)權(quán)利要求1的所述數(shù)據(jù)傳輸系統(tǒng),其中,所述可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊進(jìn)一步包括可編程調(diào)度器,該可編程調(diào)度器用于通過(guò)所述選擇的可編程直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道中的各個(gè)數(shù)據(jù)信道來(lái)給數(shù)據(jù)傳輸分配優(yōu)先權(quán)。
9.一種直接存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),包括直接存儲(chǔ)器訪(fǎng)問(wèn)控制器,其建立直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道,并且包括用于耦合到存儲(chǔ)器的第一接口;用于耦合到多個(gè)節(jié)點(diǎn)的第二接口;和耦合到所述直接存儲(chǔ)器訪(fǎng)問(wèn)控制器且耦合到第二接口的處理器,其中,所述處理器配置所述直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道以在所述多個(gè)節(jié)點(diǎn)的一個(gè)或多個(gè)可編程選擇的節(jié)點(diǎn)與所述存儲(chǔ)器之間傳輸數(shù)據(jù)。
10.根據(jù)權(quán)利要求9的所述系統(tǒng),其中所述多個(gè)節(jié)點(diǎn)是多個(gè)外設(shè)接口和存儲(chǔ)器接口中的一個(gè)。
11.根據(jù)權(quán)利要求9的所述系統(tǒng),進(jìn)一步包括耦合到所述處理器的可編程調(diào)度器,其經(jīng)過(guò)所述直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道來(lái)賦給所述數(shù)據(jù)傳輸優(yōu)先權(quán),使得根據(jù)預(yù)定的優(yōu)先權(quán)來(lái)進(jìn)行所述數(shù)據(jù)傳輸。
12.一種用于執(zhí)行直接存儲(chǔ)器訪(fǎng)問(wèn)的方法,該方法包括接收用于直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸?shù)恼?qǐng)求;配置代碼以在由所述請(qǐng)求指定的節(jié)點(diǎn)和直接存儲(chǔ)器訪(fǎng)問(wèn)接口之間建立直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸信道;和沿著所述直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸信道在所述節(jié)點(diǎn)和所述直接存儲(chǔ)器接口之間傳輸數(shù)據(jù)。
13.根據(jù)權(quán)利要求12的所述方法,其中,所述接收步驟包括接收用于直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸?shù)亩〞r(shí)請(qǐng)求。
14.根據(jù)權(quán)利要求12的所述方法,進(jìn)一步包括為經(jīng)所述直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸信道傳輸?shù)臄?shù)據(jù)來(lái)分配優(yōu)先權(quán)。
15.根據(jù)權(quán)利要求14的所述方法,進(jìn)一步包括在更高優(yōu)先權(quán)的直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸被要求的情況下,中斷所述數(shù)據(jù)傳輸。
16.根據(jù)權(quán)利要求15的所述方法,進(jìn)一步包括當(dāng)完成了所述更高優(yōu)先權(quán)直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)傳輸時(shí),恢復(fù)所述中斷的數(shù)據(jù)傳輸。
17.一種存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),包括存儲(chǔ)器;經(jīng)具有第一總線(xiàn)寬度的第一總線(xiàn)耦合到所述存儲(chǔ)器的多路復(fù)用器;經(jīng)具有第二總線(xiàn)寬度的第二總線(xiàn)耦合到所述多路復(fù)用器的主處理器,其中第二總線(xiàn)寬度小于第一總線(xiàn)寬度;和經(jīng)具有與第一總線(xiàn)寬度相同的第三總線(xiàn)寬度的第三總線(xiàn)耦合到所述多路復(fù)用器的顯示控制器,以允許所述存儲(chǔ)器被用作所述主處理器和所述顯示控制器的緩沖器,使得所述顯示控制器和所述主處理器中之一可訪(fǎng)問(wèn)所述存儲(chǔ)器,而不限制所述主處理器或所述顯示控制器的另一個(gè)訪(fǎng)問(wèn)所述存儲(chǔ)器的能力。
18.根據(jù)權(quán)利要求17的所述存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),其中第一總線(xiàn)寬度為128位。
19.根據(jù)權(quán)利要求17的所述存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),其中第二總線(xiàn)寬度為預(yù)定的位數(shù),所述預(yù)定位數(shù)為8,16或32位。
20.根據(jù)權(quán)利要求17的所述存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),進(jìn)一步包括經(jīng)具有比第一總線(xiàn)寬度窄的第四總線(xiàn)寬度的第四總線(xiàn)耦合到所述多路復(fù)用器的可編程直接存儲(chǔ)器訪(fǎng)問(wèn)模塊,以允許所述存儲(chǔ)器被用作直接存儲(chǔ)器訪(fǎng)問(wèn)節(jié)點(diǎn)。
21.根據(jù)權(quán)利要求20的所述存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),其中第四總線(xiàn)寬度為預(yù)定的位數(shù),所述預(yù)定位數(shù)為8,16或32位。
22.根據(jù)權(quán)利要求17的所述存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),其中所述存儲(chǔ)器被嵌入到包括所述主處理器和所述顯示控制器的處理器平臺(tái)。
23.一種存儲(chǔ)器刷新的方法,該方法包括提供具有預(yù)定容量的動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器;和周期地刷新小于其預(yù)定容量的所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的一部分,以減少由于刷新所述存儲(chǔ)器部分消耗的功率。
24.根據(jù)權(quán)利要求23的所述方法,進(jìn)一步包括根據(jù)環(huán)境溫度調(diào)整所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的刷新速率,并且通過(guò)周期地以所述調(diào)整的刷新速率刷新所述部分來(lái)周期地刷新存儲(chǔ)器。
25.根據(jù)權(quán)利要求23的所述方法,其中所述存儲(chǔ)器容量包括預(yù)定的總行數(shù),且所述存儲(chǔ)器部分包括小于它的預(yù)定總行數(shù)的所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的行數(shù)。
26.一種存儲(chǔ)器刷新的方法,該方法包括提供動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器;根據(jù)環(huán)境溫度來(lái)調(diào)整所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的刷新速率;和以所述調(diào)整的刷新速率來(lái)周期地刷新所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器,在所述調(diào)整的刷洗速率下,在較低的環(huán)境溫度下較少地進(jìn)行刷新,以減少在較低溫度下消耗的功率。
27.根據(jù)權(quán)利要求26的方法,其中,所述周期地刷新步驟包括周期地刷新比所述存儲(chǔ)器的預(yù)定容量小的所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的一部分,以減少由于刷新所述存儲(chǔ)器部分而消耗的功率。
28.根據(jù)權(quán)利要求26的方法,其中所述存儲(chǔ)器容量包括預(yù)定的總行數(shù),且所述存儲(chǔ)器部分包括比其預(yù)定總行數(shù)小的所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的行數(shù)。
29.一種處理器通信系統(tǒng),包括主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口;一個(gè)或多個(gè)外設(shè)端口;用于在所述主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口和所述一個(gè)或多個(gè)外設(shè)端口之間傳送數(shù)據(jù)的數(shù)據(jù)總線(xiàn);和可編程控制器,其包括多個(gè)與所述數(shù)據(jù)總線(xiàn)通信以維持?jǐn)?shù)據(jù)通信的寄存器,所述可編程控制器能夠存儲(chǔ)數(shù)據(jù)和從所述多個(gè)寄存器重新獲得數(shù)據(jù),以在所述主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口和所述一個(gè)或多個(gè)外設(shè)端口之間建立多個(gè)數(shù)據(jù)傳輸。
30.如權(quán)利要求29的所述系統(tǒng),其包括第二處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口,其中所述可編程控制器能夠在所述主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口,所述第二處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口和所述一個(gè)或多個(gè)外設(shè)端口之間建立多個(gè)數(shù)據(jù)傳。
31.如權(quán)利要求30的所述系統(tǒng),其中所述可編程處理器賦給所述多個(gè)數(shù)據(jù)傳輸優(yōu)先權(quán),所述多個(gè)數(shù)據(jù)傳輸是通過(guò)存儲(chǔ)所述數(shù)據(jù)且從所述多個(gè)寄存器中重新獲得所述數(shù)據(jù)來(lái)建立的,以用于在所述主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口、所述第二處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口和所述一個(gè)或多個(gè)外設(shè)端口之間的數(shù)據(jù)傳輸。
32.如權(quán)利要求30的所述系統(tǒng),其中所述第二處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口包括到與數(shù)字信號(hào)處理器相關(guān)的隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的數(shù)字信號(hào)處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口。
33.如權(quán)利要求32的所述系統(tǒng),其中所述可編程控制器能夠在所述主處理器直接存儲(chǔ)器訪(fǎng)問(wèn)接口、所述數(shù)字信號(hào)處理器、直接存儲(chǔ)器訪(fǎng)問(wèn)接口、和所述一個(gè)或多個(gè)外設(shè)端口之間建立多個(gè)虛擬直接存儲(chǔ)器訪(fǎng)問(wèn)信道。
34.如權(quán)利要求33的所述系統(tǒng),其包括與所述主處理器一起使用的嵌入式動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器。
35.一種存儲(chǔ)器刷新系統(tǒng),其包括用于提供溫度測(cè)量值的溫度傳感器;耦合到所述溫度傳感器的存儲(chǔ)器,用于根據(jù)所述溫度測(cè)量值提供取決于溫度的計(jì)數(shù)值;和耦合到所述存儲(chǔ)器的計(jì)數(shù)寄存器,用于存儲(chǔ)所述取決于溫度計(jì)數(shù)值,所述取決于溫度計(jì)數(shù)值用來(lái)確定用于動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的取決于溫度的刷新循環(huán)。
36.根據(jù)權(quán)利要求35的系統(tǒng),進(jìn)一步包括耦合到所述計(jì)數(shù)寄存器的比較器;和耦合到所述比較器的計(jì)數(shù)器,其中當(dāng)所述計(jì)數(shù)器與在所述計(jì)數(shù)寄存器內(nèi)的取決于溫度的計(jì)數(shù)值匹配時(shí),所述比較器輸出一信號(hào)。
37.根據(jù)權(quán)利要求36的系統(tǒng),進(jìn)一步包括耦合到所述比較器的刷新使能單元,其中所述刷新使能單元提供響應(yīng)于從所述比較器輸出的信號(hào)的刷新使能信號(hào),其中提供用于所述動(dòng)態(tài)隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器的所述取決于溫度的刷新循環(huán)。
全文摘要
本文公開(kāi)了一種直接存儲(chǔ)器訪(fǎng)問(wèn)系統(tǒng),其包括建立直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道的直接存儲(chǔ)器訪(fǎng)問(wèn)控制器(116),且包括用于耦合到存儲(chǔ)器的第一接口。第二接口用于耦合到多個(gè)節(jié)點(diǎn)。并且處理器(106)耦合到所述直接存儲(chǔ)器訪(fǎng)問(wèn)控制器(116),且耦合到第二接口,其中所述處理器配置所述直接存儲(chǔ)器訪(fǎng)問(wèn)數(shù)據(jù)信道以在可編程選擇的多個(gè)節(jié)點(diǎn)中的一個(gè)或多個(gè)以及存儲(chǔ)器(104或108)之間傳輸數(shù)據(jù)。在一些實(shí)施例中,所述多個(gè)節(jié)點(diǎn)為將在無(wú)線(xiàn)多媒體手持電話(huà)中實(shí)現(xiàn)的多媒體處理器平臺(tái)(100)的數(shù)字信號(hào)處理器存儲(chǔ)器和主處理器存儲(chǔ)器。
文檔編號(hào)G06F13/38GK1436333SQ01810911
公開(kāi)日2003年8月13日 申請(qǐng)日期2001年5月30日 優(yōu)先權(quán)日2000年6月9日
發(fā)明者希拉·雷德, 布賴(lài)恩·盧卡斯, 普拉迪普·加蘭尼, 弗朗茲·施泰寧格 申請(qǐng)人:摩托羅拉公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
普安县| 澄江县| 伊金霍洛旗| 桦甸市| 威海市| 台前县| 黄平县| 万源市| 凯里市| 特克斯县| 建昌县| 丰城市| 工布江达县| 阿坝| 广河县| 达日县| 鄯善县| 金昌市| 荔波县| 潮安县| 英山县| 景德镇市| 多伦县| 城步| 阿拉善左旗| 肃南| 鹤山市| 盖州市| 塔城市| 鹤庆县| 常州市| 锦州市| 秦安县| 卫辉市| 怀安县| 田林县| 正定县| 田东县| 五原县| 牡丹江市| 凤庆县|