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

高速緩存系統(tǒng)和數(shù)字信號(hào)處理器結(jié)構(gòu)的制作方法

文檔序號(hào):6543864閱讀:278來源:國知局
專利名稱:高速緩存系統(tǒng)和數(shù)字信號(hào)處理器結(jié)構(gòu)的制作方法
相關(guān)申請的交叉引用這份申請書與Joern Soerensen于2000年11月3日提交的美國專利申請?zhí)?尚未指定)相關(guān),并在此通過引證被并入本文。背景1.發(fā)明領(lǐng)域本專利發(fā)明總的來說是關(guān)于小型數(shù)字信號(hào)處理系統(tǒng),例如移動(dòng)電話。本發(fā)明特別涉及系統(tǒng),數(shù)字信號(hào)處理器通過這個(gè)系統(tǒng)執(zhí)行軟件程序或步驟,這些軟件或步驟可以隨時(shí)簡化、改變或升級(jí)。
2.相關(guān)領(lǐng)域通信設(shè)備,如移動(dòng)電話等,完成多種數(shù)字信號(hào)處理功能。在過去的系統(tǒng)中,數(shù)字信號(hào)處理器(DSP)處理數(shù)字化的聲音信號(hào),微處理器控制單元(MCU)控制一般的系統(tǒng)操作,包括不同設(shè)備單元間通信的建立和拆除(例如話機(jī))。最簡單的傳統(tǒng)系統(tǒng)中的DSP和MCU之間通過單端口和多端口共享內(nèi)存互相通信,控制信號(hào)等等。無論如何,當(dāng)DSP和MCU間允許通過例如共享內(nèi)存來通信時(shí),額外的功能和控制選擇是有可能實(shí)現(xiàn)的。雖然DSP和MCU間不通信的系統(tǒng)也是可能實(shí)現(xiàn)的,但是對數(shù)據(jù)通信的支持相對話音的支持一樣好的蜂窩通信的發(fā)展已經(jīng)造成DSP和MCU間通信的巨大需要。
通信標(biāo)準(zhǔn)也在發(fā)展中并將繼續(xù)發(fā)展下去。標(biāo)準(zhǔn)通常被指定成為可以擴(kuò)展的,或者新功能被定義為與現(xiàn)有標(biāo)準(zhǔn)后向兼容的,這樣引入新功能時(shí)就無需替換已有的每一個(gè)部件。為了適應(yīng)這種變化,存在著將運(yùn)行于DSP或MCU上的常駐軟件或固件從只讀存儲(chǔ)器(ROM)中移出的巨大壓力。改變ROM常駐軟件或固件是困難的,因?yàn)橐话銇碚f除了在工廠中一次性寫入以外ROM不能擦寫。
最后,上述壓力已經(jīng)促使包含DSP、MCU、ROM和RAM的集成電路的發(fā)展。將RAM增加到集成電路系統(tǒng)中的經(jīng)濟(jì)代價(jià)和尺寸代價(jià)迫使DSP和MCU只要有可能就得共享RAM。為了便于DSP和MCU之間的通信,同時(shí)——作為額外的好處——為了避免浪費(fèi)任何存儲(chǔ)空間,DSP和MCU共享RAM。系統(tǒng)軟件被載入到RAM中以便提供最大的靈活性和再配置系統(tǒng)的能力,使系統(tǒng)與進(jìn)步中的通信標(biāo)準(zhǔn)一致??傊?dāng)存儲(chǔ)器被共享時(shí),例如使用附

圖1的結(jié)構(gòu)時(shí),內(nèi)存訪問帶寬成為嚴(yán)重問題。
根據(jù)發(fā)明的一個(gè)方面,數(shù)字信號(hào)處理系統(tǒng)包含做實(shí)時(shí)數(shù)字聲音信號(hào)處理的數(shù)字信號(hào)處理器(DSP)、通過總線連接到DSP上的可修改非易失程序存儲(chǔ)器、和連接到DSP與程序存儲(chǔ)器的高速緩存系統(tǒng),這個(gè)高速緩存系統(tǒng)有程序存儲(chǔ)器管理單元,它能把程序指令從可修改非易失的程序存儲(chǔ)器中裝載進(jìn)來。
對附圖的摘要說明在附圖中,相同索引符號(hào)指示相同的部分圖1是含有共享內(nèi)存的傳統(tǒng)總線結(jié)構(gòu)的方框示意圖;圖2是表達(dá)了本發(fā)明特征的典型總線結(jié)構(gòu)的簡單方框示意圖;圖3是圖2中總線結(jié)構(gòu)的詳細(xì)方框圖;圖4是圖2和圖3中高速緩存系統(tǒng)部分的方框圖;圖5是程序存儲(chǔ)器圖;圖6是圖5系統(tǒng)的詳細(xì)方框圖;圖7是存儲(chǔ)器覆蓋圖;圖8是物理存儲(chǔ)器圖;圖9是圖4和圖6系統(tǒng)中PMMU的狀態(tài)轉(zhuǎn)移圖。
本發(fā)明的詳細(xì)描述通過下面對本發(fā)明實(shí)施方案的詳細(xì)描述可以更好地理解它。
在下面的討論中將提到總線,一組連接電路功能單元、系統(tǒng)或所討論設(shè)備的信號(hào)通道會(huì)被解釋??偩€可能包括尋址部分和數(shù)據(jù)攜帶部分,高速緩存有時(shí)會(huì)個(gè)別地當(dāng)作總線被提到。通??偩€被分成2條或更多平行的信號(hào)通道用來攜帶多個(gè)比特的數(shù)據(jù)和地址信息,當(dāng)然串行總線也是常見的。
圖2中畫出了設(shè)備200,它是例如集成電路。這個(gè)設(shè)備包含一個(gè)數(shù)字信號(hào)處理器(DSP)子系統(tǒng)201和微控制單元(MCU)子系統(tǒng)202。其中DSP子系統(tǒng)201是處理器連接在上面的本地總線(未畫出)??偩€203為設(shè)備200的其他單元提供到DSP子系統(tǒng)201的外部連接(相對于DSP子系統(tǒng)201);總線203也可以是DSP子系統(tǒng)201的本地總線。類似地,MCU子系統(tǒng)202包含一個(gè)本地總線——總線204,它為設(shè)備200的其他單元提供到MCU子系統(tǒng)202的外部連接(相對于MCU子系統(tǒng)202)。子系統(tǒng)201和202都包含處理器,所以設(shè)備200有多個(gè)處理器。為了提高每個(gè)處理器的性能,它們被給與帶自己的本地總線(分別為203和204)的自己的子系統(tǒng)(201,202)。這些將在下面非常詳細(xì)地討論。如上所述,DSP子系統(tǒng)201和MCU子系統(tǒng)202分別包含DSP(下面討論)和MCU(下面討論)。DSP和MCU都是總線主控設(shè)備,就是說它們可以要求通過各自的本地總線訪問到設(shè)備200的其它單元。如果這樣的結(jié)構(gòu)在設(shè)計(jì)要求中更好地貫徹,它們(子系統(tǒng))可以包含多條內(nèi)部總線。
設(shè)備200還包含三個(gè)其它總線205、206和207,設(shè)備的若干其它單元連接到它們上。設(shè)備200的其他單元都是總線從屬設(shè)備,它們對從總線主控設(shè)備來的訪問要求給以響應(yīng)。存儲(chǔ)器——例如被用于作系統(tǒng)共享存儲(chǔ)器的靜態(tài)隨機(jī)訪問存儲(chǔ)器(SRAM)——被連接到總線205。多種外圍設(shè)備被歸于連接到外圍總線206上的外圍子系統(tǒng)209中,它被設(shè)備200用來實(shí)現(xiàn)必要功能。最后,外部設(shè)備210,例如閃存(flash ROM)被連接到外部總線207。上面所提到的多種設(shè)備和總線的專用功能分塊最好由設(shè)計(jì)者針對專門用途來優(yōu)化。在這里描述的實(shí)施方案中,多種優(yōu)化選擇已經(jīng)被應(yīng)用使設(shè)備200適用于移動(dòng)通信設(shè)備的核心,例如全球移動(dòng)通信系統(tǒng)(GSM)手機(jī),或支持碼分多址(CDMA)等其他通信協(xié)議的手機(jī),或支持無線應(yīng)用協(xié)議(WAP)的設(shè)備。
上述總線203、204、205、206和207通過總線判決模塊(BAM)211互聯(lián),總線判決模塊包括內(nèi)存直接訪問(DMA)子系統(tǒng)(未畫出)。在后面會(huì)詳細(xì)描述BAM211的配置和操作。(對BAM的)配置和操作將決定哪些總線在什么時(shí)間可以互通。BAM211的設(shè)計(jì)和操作被優(yōu)化以保證DSP子系統(tǒng)201和MCU子系統(tǒng)202訪問其它系統(tǒng)單元的最小帶寬,并避免子系統(tǒng)201和202鎖死另一個(gè)子系統(tǒng)。
在設(shè)備200的實(shí)施方案中,所有總線主控設(shè)備,包括DSP子系統(tǒng)201和MCU子系統(tǒng)202,使用公共的單一的地址空間。使用單一的地址空間有很多重要的優(yōu)點(diǎn)。例如,DSP子系統(tǒng)201和MCU子系統(tǒng)202可以通過傳遞指針在SRAM208中交換數(shù)據(jù)和代碼,這個(gè)指針被寫入到公用指定位置。單一地址空間的另一個(gè)好處是,BAM211所要求的地址解碼邏輯被大大簡化,因?yàn)闊o論如何同樣的解碼都是需要的,而同樣的編碼總線主控設(shè)備或總線從屬設(shè)備總要單獨(dú)翻譯。單一地址空間還有一個(gè)好處就是系統(tǒng)結(jié)構(gòu)非常對稱。因?yàn)镈SP和MCU使用同一地址空間,代碼可以很容易地從一個(gè)設(shè)備移動(dòng)到另一個(gè)上。這樣,設(shè)計(jì)者可以更好地在DSP和MCU間分割代碼,以避免危險(xiǎn)的路徑問題和處理器過載。
結(jié)合圖3,下面我們來詳細(xì)介紹實(shí)施方案。首先介紹DSP子系統(tǒng)201。
在DSP子系統(tǒng)201的中心有一個(gè)模擬設(shè)備218X作為DSP核心301。其它類型的DSP核心301也是可以的,包括MCU或其它設(shè)備的一部分,只要在軟件和硬件上能提供DSP能力。在DSP子系統(tǒng)201中還有包括下載控制器、高速緩存與臨時(shí)內(nèi)存控制器和高速緩存的存儲(chǔ)器管理系統(tǒng)302,和包括Viterbi協(xié)處理器303和通用加密引擎304等的DSP專有外圍設(shè)備。這些DSP專有外圍設(shè)備的功能在DSP或在外部軟件和/或硬件中執(zhí)行。
在DSP子系統(tǒng)201種明顯缺少的是內(nèi)部只讀存儲(chǔ)器(ROM)。作為代替,DSP程序代碼被動(dòng)態(tài)地下載或緩存在DSP高速緩存305中。通過使用高速緩存305,DSP程序代碼的下載對用戶是透明的。使用傳統(tǒng)緩存技術(shù),不是所有特定功能所要求的DSP代碼需要被及時(shí)下載到任意特定點(diǎn)上,例如聲音解碼器。相反,只有需要立即被DSP執(zhí)行的代碼段需要被下載,這就使DSP子系統(tǒng)201只需要很少的內(nèi)存。雖然上面的討論證明了DSP子系統(tǒng)201不需要內(nèi)部ROM,它也可以包括內(nèi)部ROM,這不違反本發(fā)明的實(shí)質(zhì)。
DSP程序代碼可以從內(nèi)部系統(tǒng)存儲(chǔ)器208或從外部存儲(chǔ)器中裝載到高速緩存中,例如從作為外部設(shè)備210聯(lián)接到總線207上的閃存中裝載。上述靈活性的優(yōu)點(diǎn)是在保證內(nèi)存訪問的前提下最小化了DSP子系統(tǒng)201和MCU子系統(tǒng)202間的沖突。當(dāng)系統(tǒng)正在運(yùn)行時(shí),危險(xiǎn)代碼應(yīng)被放在最小開銷和等待處。
為了保證軟件分割的最大靈活性,總線系統(tǒng)204、205、206和207能夠被DSP子系統(tǒng)201通過DSP總線203和BAM211訪問。
DSP子系統(tǒng)201還有幾個(gè)內(nèi)部靜態(tài)RAM305,它們被用于數(shù)據(jù)和具有危險(xiǎn)定時(shí)要求的代碼。DSP301中的內(nèi)部靜態(tài)RAM305也可以通過連接到外部總線206的內(nèi)存訪問接口(MAI)模塊306被MCU子系統(tǒng)202訪問。
MCU子系統(tǒng)202包括一個(gè)ARM7TDMI(英國ARM有限公司產(chǎn)品)或其他MCU訪問器作為MCU核心307。MCU子系統(tǒng)202還包括時(shí)鐘發(fā)生電路308和一個(gè)小ROM309,其中保存了初始化代碼用于裝載存儲(chǔ)在外部的軟件。
實(shí)施方案中的存儲(chǔ)器208是靜態(tài)RAM(SRAM),用于存儲(chǔ)數(shù)據(jù)和代碼。當(dāng)它通過BAM211聯(lián)接到總線205時(shí),它可以被DSP子系統(tǒng)201和MCU子系統(tǒng)202通過它們相應(yīng)的總線203和204訪問。時(shí)間危險(xiǎn)的MCU子系統(tǒng)代碼可以放在這個(gè)存儲(chǔ)器中,使它與DSP子系統(tǒng)的時(shí)間危險(xiǎn)的代碼分開。少量的時(shí)間危險(xiǎn)的DSP代碼也被存放在靜態(tài)RAM208中。
外圍子系統(tǒng)209包含一個(gè)通用中斷控制器310、一個(gè)通用定時(shí)器311、一個(gè)通用串行接口312、一個(gè)通用輸入/輸出(GPIO)接口和一個(gè)GSM輸入/輸出系統(tǒng)314。通用中斷控制器310收集所有系統(tǒng)收到的中斷,將它們分為軟件可配置的組并賦予它們優(yōu)先級(jí)別。這樣,一個(gè)完全可編程的中斷優(yōu)先權(quán)分級(jí)系統(tǒng)就建立起來了。在實(shí)施方案中,還存在三個(gè)獨(dú)立的中斷控制器(未畫出),它們用于DSP子系統(tǒng)201、MCU子系統(tǒng)202和BAM211內(nèi)部。通用定時(shí)器311是完全軟件可配置的定時(shí)模塊,它用于維護(hù)系統(tǒng)定時(shí)。定時(shí)模塊可以產(chǎn)生中斷并設(shè)置或清除到設(shè)備200的外部連接。通用串行接口312是完全軟件可配置的序列器,它帶有用于實(shí)現(xiàn)串行接口標(biāo)準(zhǔn)的特定硬件。通用串行接口312可以被編程為符合最常見的串行標(biāo)準(zhǔn)。這樣,每個(gè)設(shè)備200的用戶可以建立單一的硬件指定的串行接口而不用對設(shè)備200的內(nèi)部結(jié)構(gòu)進(jìn)行任何改動(dòng)。GPIO313的功能允許到設(shè)備200的多種外部連接用于任意特定的硬件或軟件指定的接口要求。
外部總線207提供到設(shè)備200的高速連接,它適用于連接例如閃存等要求并行接口的單元。
如上所述,所有總線203、204、205、206和207通過總線判決模塊(BAM)211互聯(lián)??偩€判決模塊包括三個(gè)判決單元314、315和316,還包括直接內(nèi)存訪問(DMA)子系統(tǒng),DMA子系統(tǒng)在下面介紹,包括DMA總線317和DMA控制器318。下面還要描述,部分地由于在每條從屬的總線上擁有分立的判決單元,當(dāng)多個(gè)總線主控設(shè)備要求訪問不同的從屬總線時(shí),BAM211被設(shè)計(jì)成能避免阻塞。
三個(gè)總線判決單元314、315和316分別負(fù)責(zé)三個(gè)主要的系統(tǒng)總線之一存儲(chǔ)總線205、外圍總線206和外部總線207。三個(gè)判決單元314、315和316在結(jié)構(gòu)上是一樣的(判決模式可以不同),但是分別對應(yīng)于它們自己的總線205、206和207。
第一個(gè)判決單元314選擇性地將存儲(chǔ)總線205聯(lián)接到DSP總線203、MCU總線204、DMA總線(下面討論)和DSP高速緩存之一。
第二個(gè)判決單元315選擇性地將外圍總線206聯(lián)接到DSP總線203、MCU總線204、DMA總線(下面討論)和DSP高速緩存之一。
第三個(gè)判決單元316選擇性地將外部總線207聯(lián)接到DSP總線203、MCU總線204、DMA總線(下面討論)和DSP高速緩存之一。
很明顯圖3所示結(jié)構(gòu)是無阻塞的。總線主控設(shè)備——DSP核心301和MCU核心307——都連接在自己的總線上??偩€主控設(shè)備在自己總線上的內(nèi)部通信與其它總線主控設(shè)備在它們各自總線上的通信完全獨(dú)立。資源,也就是總線從屬設(shè)備,分布在多個(gè)從屬總線中,例如總線205、206、207。如果一個(gè)總線主控設(shè)備要求訪問一條從屬總線上的資源,而同時(shí)另一個(gè)總線主控設(shè)備要求訪問另一條從屬總線上的其他資源,不會(huì)有阻塞發(fā)生,因?yàn)楠?dú)立的判決單元處理不同的訪問請求。這樣,設(shè)計(jì)者可以通過分離共享資源來優(yōu)化設(shè)計(jì),使總線主控設(shè)備成為資源的主要使用者。其它的無阻塞結(jié)構(gòu)也是可能的,使用例如多端口,無阻塞并行交換結(jié)構(gòu)也可以被使用。
共享資源可以被分離如下。如果DSP核心301比MCU307更多地使用第一項(xiàng)資源,但是MCU307比DSP核心301更多地使用第二項(xiàng)資源,那么第一項(xiàng)資源和第二項(xiàng)資源應(yīng)該分配到兩個(gè)不同的從屬總線上。
按照以下描述的方式,總線判決單元314、315、316允許訪問它們的總線205、206、207。從申請者發(fā)到判決單元314、315、316的激活總線選擇信號(hào)提出了訪問和判決要求。判決單元314、315、316或者返回一個(gè)等待信號(hào)以推遲訪問,或者允許訪問。當(dāng)被允許訪問的申請者的總線選擇信號(hào)變成非激活時(shí),它向判決單元指出下一個(gè)判決循環(huán)可以開始了。
為了提高設(shè)備200的性能,DSP高速緩存訪問可以設(shè)置為阻塞模式,一次可以讀取(例如)最多12個(gè)字。在實(shí)施方案中,字長為16比特,當(dāng)然在本領(lǐng)域中也有其他字長的特定設(shè)計(jì)。這樣,作為外部設(shè)備210聯(lián)接到外部總線207的例如閃存的帶寬優(yōu)勢可以充分顯現(xiàn)。判決模式在索爾森(Soerensen)序列號(hào)為(未定)的專利申請中有詳細(xì)的描述。
總線判決模塊的DMA子系統(tǒng)包含有DMA總線317和多通道DMA控制器318。在實(shí)施方案中使用了16通道的DMA控制器318。與DSP核心301和MCU307一樣,DMA控制器是總線主控設(shè)備。DMA總線317互聯(lián)三個(gè)判決單元314、315和316,所以DMA可以在任意連接在三個(gè)總線上的設(shè)備間實(shí)現(xiàn),這三個(gè)總線是存儲(chǔ)總線205、外圍總線206和外部總線207。數(shù)據(jù)和代碼可以從三個(gè)總線205、206、207上的任意地址位置傳遞到三個(gè)總線上的任意其它地址位置。DMA控制器318包括一個(gè)字長的傳遞內(nèi)存,它用作上述傳遞并在下面進(jìn)一步描述。DMA控制器318還包含本領(lǐng)域所知目的的其他存儲(chǔ)器。如果用于特定目的,其它的存儲(chǔ)器大小也可以使用。DMA控制器318在第一存儲(chǔ)循環(huán)中從源位置讀取一個(gè)字,在隨后的第二存儲(chǔ)循環(huán)中寫入到目的地之中。
DMA控制器318管理DMA總線317的操作。DMA控制器318為中斷驅(qū)動(dòng)的輸入輸出設(shè)備和存儲(chǔ)設(shè)備提供數(shù)據(jù)傳遞。DMA控制器318包含分離的帶有同樣功能的全雙工通道。每個(gè)通道被MCU子系統(tǒng)202或DSP子系統(tǒng)201通過外圍總線206控制和配置。當(dāng)DMA控制器318傳遞可編程數(shù)量的地址位置之后,它向中斷控制器310發(fā)出一個(gè)中斷。
DMA控制器318可以完成下述任務(wù)使系統(tǒng)具有附加功能。在輸入輸出設(shè)備和例如MCU子系統(tǒng)之間可以建立RAM緩沖器。這樣,要求處理輸入輸出數(shù)據(jù)的中斷數(shù)量就減少了。在這個(gè)實(shí)例中,DMA控制器在存儲(chǔ)器模塊——例如SRAM208和屬于外圍子系統(tǒng)209的輸入輸出外圍設(shè)備之間傳遞預(yù)定義長度或可編程長度的數(shù)據(jù)塊。DMA控制器可以從屬于外部設(shè)備210的閃存中向內(nèi)部DSP子系統(tǒng)數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器或高速緩存中移動(dòng)數(shù)據(jù)塊——例如表格或程序。最后,DMA控制器可以根據(jù)要求從系統(tǒng)的一個(gè)位置向其他位置移動(dòng)任意大的存儲(chǔ)數(shù)據(jù)塊。
DSP高速緩存控制器或程序存儲(chǔ)管理單元(PMMU)在一些軟件幫助下管理DSP的指令存儲(chǔ)系統(tǒng),有限的專用DSP RAM就使DSP達(dá)到最佳性能。等待從外部閃存或者系統(tǒng)SRAM中取數(shù)據(jù)的時(shí)間必須盡可能短。同時(shí),PMMU必須限制軟件幫助的復(fù)雜性和軟件開銷的數(shù)量,這些軟件開銷用于處理代碼下載和再定位。
圖5是DSP程序存儲(chǔ)器圖。DSP有一個(gè)擴(kuò)展的地址范圍和在程序存儲(chǔ)器中對數(shù)據(jù)位置的單一限制。
借助于PMOVLAY紀(jì)錄的使用,地址范圍被擴(kuò)展了。這個(gè)記錄可以設(shè)為從0到1023,它有效地將DSP指令地址范圍擴(kuò)展到512K字。注意PMOVLAY的值對高端8K的數(shù)據(jù)訪問沒有影響,這些訪問被映射到外部的8K存儲(chǔ)空間。程序存儲(chǔ)空間的地段8K包含可用于代碼和數(shù)據(jù)的內(nèi)部RAM。存儲(chǔ)器的這個(gè)部分和在常規(guī)的DSP中一樣總是存在的。
必須注意盡管PMOVLAY紀(jì)錄事實(shí)上有10個(gè)比特,但是PMMU只利用其中的7個(gè)。PMOVLAY[50]選擇可用的64個(gè)頁面之一。PMOVLAY[6]是一個(gè)控制比特,用于激活稱為“直接執(zhí)行(Direct Execution)”的操作模式。下面章節(jié)中對此有詳細(xì)描述。
PMMU/高速緩存單元被映射到PM空間的覆蓋段中。所有的取數(shù)到DSP正常14比特地址空間高端8K的指令都連同PMOVLAY紀(jì)錄的6比特值一起被送到PMMU。這有效地為代碼提供了19比特(512K)的地址空間。一個(gè)直接映射的高速緩存用于確定哪些代碼當(dāng)前常駐在2K的高速緩存中。
PMMU位于DSP的內(nèi)部指令總線(IBUS)和內(nèi)部地址總線(PMABUS)上(見圖6)。這確定了取數(shù)指令不會(huì)占用外部總線使性能降低??刂朴涗浐蜆?biāo)簽存儲(chǔ)器是映射到DSP輸入/輸出空間上的存儲(chǔ)器,它在零等待區(qū)域中。PMMU通過EBUS和RBUS訪問芯片外的接口(通過EBUS)和系統(tǒng)RAM(通過RBUS),見圖6。當(dāng)直接從閃存或系統(tǒng)RAM中執(zhí)行時(shí)這些總線被PMMU的下載控制器訪問。ARM微處理器、集中的系統(tǒng)DMA控制器和DSP的擴(kuò)展輸入輸出總線(DSPBUS)也可以訪問這些總線。見圖6。
最后,PMMU還可以將代碼通過核心的IDMA端口下載到DSP核心的內(nèi)部程序和數(shù)據(jù)存儲(chǔ)器中。這個(gè)接口與位于PBUS上的MAI外圍設(shè)備共享。
PMMU通過確定到哪里去找所需要的指令來管理代碼空間,它或者在一個(gè)周期里返回指令,或者向核心指出出現(xiàn)了高速緩存未命中并取所需的代碼塊。一個(gè)4K的直接映射高速緩存覆蓋了位于1-63頁面上的全部代碼。頁面0是一個(gè)特殊頁面,物理高速緩存位于其上。見圖7。
在高速緩存模式下操作時(shí),頁面0不允許被使用。訪問覆蓋面0上面的高速緩存會(huì)造成未知的結(jié)果,因?yàn)楫?dāng)時(shí)代碼的任何一部分都可能駐在上面。
覆蓋面0用于支持TTP的動(dòng)態(tài)下載系統(tǒng),或者只需12K總PM空間簡單應(yīng)用。在這兩種情況下,高速緩存成為固定的存儲(chǔ)器,存儲(chǔ)模型是簡單的12K固定PM RAM。標(biāo)簽存儲(chǔ)器被去激活,未命中總是不會(huì)出現(xiàn)的。
PMMU RAM可以被零開銷的DMA功能所下載。它唯一從內(nèi)部PM存儲(chǔ)器中來,內(nèi)部PM存儲(chǔ)器是周期節(jié)省操作(cyclestealing operation)。PMMU RAM也是唯一不能包含PM數(shù)據(jù)的。無論P(yáng)MOVERLAY設(shè)置如何,嘗試訪問地址小于0×2000的數(shù)據(jù)將造成外部存儲(chǔ)器周期。
整個(gè)512K虛擬代碼空間具有閃存或系統(tǒng)存儲(chǔ)器中一致的物理存儲(chǔ)區(qū)域。強(qiáng)制分割包括映射到系統(tǒng)RAM中的高端8個(gè)頁面和映射到閃存中的頁面1-55。覆蓋面0(在下面未顯示)和PM存儲(chǔ)器的地段8K沒有直接映射到固定的源區(qū)域中,因?yàn)楸幌螺d代碼的源地址是可編程的。
PMMU可以通過PMMU的下載控制器接口初始化發(fā)往低速存儲(chǔ)器的請求。這個(gè)請求通過PMMUBUS提出。這些請求可能從兩個(gè)主控設(shè)備發(fā)出,它們具有下面的優(yōu)先級(jí)和動(dòng)作(1)高速緩存未命中讀取8個(gè)指令——暫停處理器(2)軟件下載 裝載N×8條指令——送往DSP高速緩存未命中具有最高的優(yōu)先級(jí),因?yàn)榇藭r(shí)DSP已經(jīng)暫停工作了。雖然DSP可以響應(yīng)中斷,但是它已經(jīng)處在空閑狀態(tài)了。高速緩存未命中造成在恢復(fù)運(yùn)行之前必須先有8條指令從外部存儲(chǔ)器中讀取并寫到高速緩存中。軟件下載有兩個(gè)目的,一個(gè)目的是在執(zhí)行前先簡單地把代碼和數(shù)據(jù)裝載進(jìn)來,另一個(gè)目的是支持動(dòng)態(tài)下載模式,在此模式下代碼或數(shù)據(jù)在運(yùn)行期間被裝載,這可以減少高速緩存未命中比率(要求高速緩存預(yù)裝載)或者在小內(nèi)存系統(tǒng)中提高執(zhí)行效率(要求TTP動(dòng)態(tài)下載)。
PMMU DMA控制器會(huì)適當(dāng)?shù)靥幚砩鲜鰞煞N優(yōu)先級(jí)的請求。有些用戶關(guān)心的事情應(yīng)該記住。給PMMU的帶寬受當(dāng)前系統(tǒng)狀態(tài)的嚴(yán)重影響,同時(shí)受例如判決單元設(shè)置等可編程功能的嚴(yán)重影響。下載在EBUS上被分配更低的優(yōu)先級(jí),它經(jīng)常有大量的字要移動(dòng),所以它更嚴(yán)重地受MCU和DMA控制器活性的影響。
軟件下載是唯一的一種完全在軟件控制下的下載并因此受到特殊關(guān)注。下載控制器負(fù)責(zé)到包括直接映射的高速緩存和頁面0部分在內(nèi)的內(nèi)部固定RAM和PMMU RAM的下載,并提供相應(yīng)的接口。當(dāng)然,完成下載的實(shí)際裝置有一些不同。到固定存儲(chǔ)器的下載實(shí)際上是通過核心的IDMA端口實(shí)現(xiàn)的,所以它是一種周期節(jié)省操作,即每下載一條指令用時(shí)小于一個(gè)DSP周期。數(shù)據(jù)也通過這個(gè)IDMA接口下載到固定的PM和DM中。到PMMU RAM的下載通過到PMMU RAM的專用接口來實(shí)現(xiàn),它不是周期節(jié)省操作并直接影響系統(tǒng)性能。數(shù)據(jù)不能夠下載到這個(gè)存儲(chǔ)器中。
下載的初始化過程如下1.檢查PMMSR的DWNLDDONE比特以確定沒有其它的軟件下載正在進(jìn)行。在其它軟件下載正在進(jìn)行時(shí)試圖初始化一個(gè)新的軟件下載是一個(gè)錯(cuò)誤,它會(huì)產(chǎn)生BADDWLDINT并置位BadDwld指示比特。這個(gè)新請求會(huì)被忽略。
2.如果下載是到固定RAM或者是到覆蓋面0的,源地址必須在寫入PMMDWLD2之前提供。這個(gè)32位地址被寫入到使用的記錄DWLDSRC1和DWLDSRC2。在系統(tǒng)空間中源地址被指定為字節(jié)地址。如果下載是到高速緩存的,DWLDSRC記錄就不使用,因?yàn)樵吹刂肥菑哪康牡刂杏?jì)算出來的。
3.下一步PMMDWLD1被寫入目的塊地址。對于到高速緩存的下載,它是代碼的虛擬地址/8(codeaddr[193]);對于到固定存儲(chǔ)器的下載,它是10比特的值(0000-1FFF右移3次);對于到PMOVLAY0的下載,它是9比特的值(000-FFF右移3次)。
4.再下一步PMMDWLD2被寫入DwldType(確定目的地)、下載塊長度(2或4個(gè)字長)和字長數(shù)(8-8048乘以8)。寫入DWLD的這個(gè)值初始化傳送,所以必須注意紀(jì)錄被寫入的順序。DwldType如下選擇目的地
下載塊長度可以用于幫助調(diào)整外部總線的使用。小的塊長度將縮小允許的DSP帶寬因?yàn)樗仨毰袥Q多次,同時(shí)將釋放帶寬給其他使用。
根據(jù)整個(gè)下載的完成情況,DWLDDONEINT會(huì)被產(chǎn)生并在狀態(tài)記錄中指出。這將允許軟件監(jiān)視下載的完成并作進(jìn)一步處理,例如安排下一次下載。在動(dòng)態(tài)下載環(huán)境中這可以讓下載內(nèi)核程序決定下一步任務(wù)。DWLDDONEINT被新下載的初始化所清除,或在控制紀(jì)錄的這個(gè)比特中寫入0清除。
軟件下載可以用兩種方式被中斷或停止一種是被軟件,另一種是被硬件。軟件方式是通過置位PMMSCR控制紀(jì)錄中的中止比特實(shí)現(xiàn)。這將在最近的點(diǎn)上中止下載。當(dāng)程序分支造成繼續(xù)下載無意義,或者程序上下關(guān)系變化時(shí),這種方式就會(huì)被應(yīng)用。在后者DW必須讀取下載的當(dāng)前地址并保存PMMU狀態(tài),以便在將來上下關(guān)系恢復(fù)時(shí)從當(dāng)前點(diǎn)上重新啟動(dòng)下載。重要輸入BREAK會(huì)造成下載控制器中斷當(dāng)前的下載。這會(huì)被用于DSP仿真,當(dāng)DSP碰到中斷點(diǎn)時(shí)下載應(yīng)該被中止。
軟件下載有潛在的錯(cuò)誤條件,就是當(dāng)指令要被執(zhí)行時(shí)它還沒有被下載下來。在不同的存儲(chǔ)器中這將被不同處理。因?yàn)檫@種錯(cuò)誤將造成高速緩存未命中,高速緩存有一個(gè)嵌入的保護(hù)機(jī)構(gòu)。軟件下載將被預(yù)騰空然后高速緩存塊被裝載。根據(jù)它的完成情況,獲得E/RBUS后被停止的軟件下載繼續(xù)進(jìn)行。下載控制器的硬件檢查下載的高速緩存塊的標(biāo)志以確定已經(jīng)存在于高速緩存中的塊沒有被再次裝載。這在上述情況下特別有用,因?yàn)樗试S代碼再次下載使代碼前部盡可能塊地得到執(zhí)行。到內(nèi)部存儲(chǔ)器和覆蓋面0的下載沒有硬件保護(hù)和檢查。用戶的下載核心來決定在執(zhí)行代碼前是否所有需要的軟件片斷都已經(jīng)準(zhǔn)備好了。
下載控制器被用于使高速緩存未命中的等待時(shí)間最短并在最短時(shí)間內(nèi)完成下載。下載控制器完全地在DSPCLK下工作。后面所描述的ER總線接口負(fù)責(zé)總線接口與DSPCLK的同步。總線控制器也按字長工作并處在DSP的地址空間中。16位數(shù)據(jù)到24位地址的轉(zhuǎn)換和源地址到系統(tǒng)空間地址的翻譯也在總線接口中處理。這簡化了下載控制器的設(shè)計(jì)。
基本的狀態(tài)轉(zhuǎn)移圖見圖9。大部分狀態(tài)與下載、特別是下載到高速緩存有關(guān)。狀態(tài)機(jī)可以用業(yè)界熟知的其他方式優(yōu)化。下載中止過程未畫出。
下載控制器支持2個(gè)通道,它可以從下載中轉(zhuǎn)到高速緩存未命中的處理中,當(dāng)它結(jié)束后再轉(zhuǎn)回到下載處理中。高速緩存未命中總是在它一發(fā)生就得到處理。下載通道有3個(gè)基本下載模式到高速緩存、到覆蓋面0和到固定存儲(chǔ)器。狀態(tài)機(jī)的基本操作為(1)等待高速緩存未命中或下載請求,(2)請求總線接口初始化下載,(3)等待DSPACK,(4)從緩沖器中把字轉(zhuǎn)移到目的地,(5)重復(fù)直到所有請求的傳送完成。
這個(gè)操作被復(fù)雜化了,原因包括下載會(huì)被BlkSz的尺寸要求所終止,下載到高速緩存中要求讀和改變標(biāo)志,通道的改變,和下一段將要描述的直接運(yùn)行模式。下載到高速緩存顯然更難處理,因?yàn)槲覀儾幌胂螺d已經(jīng)存在的高速緩存塊,而且下載到高速緩存中間需要更小心地控制標(biāo)志使非法指令不被執(zhí)行。
出現(xiàn)高速緩存未命中后禁止高速緩存重置也是可以的。這種執(zhí)行模式最好是“直接執(zhí)行”的,雖然直接從閃存或系統(tǒng)RAM總運(yùn)行代碼非常慢。直接從存儲(chǔ)器中讀出來的代碼被簡單地直接送到IBUS,這比寫回到高速緩存中要好。在這個(gè)模式下,未命中是針對代碼而言而不是針對代碼塊,也就是說,一個(gè)代碼讀出后就立即執(zhí)行。
這種模式有兩種方法中止。第一種是控制記錄比特ExeFLASH或者ExeSRAM。這會(huì)分別為駐在閃存和系統(tǒng)RAM中的代碼激活直接執(zhí)行模式。第二種是通過PMOVLAY[6]。設(shè)置PMOVLAY[6]=1激活當(dāng)前頁的這個(gè)模式。例如,軟件可以設(shè)置PMOVLAY=66來直接執(zhí)行覆蓋面2。
高速緩存的硬件在這個(gè)模式下仍然有效。如果用戶希望取激活所有的高速緩存功能,覆蓋面0必須被使用。這個(gè)模式于是只影響下載控制器和它對高速緩存未命中的反應(yīng)。當(dāng)高速緩存未命中時(shí),PMMU將直接向核心提供指令執(zhí)行然后回到它的空閑狀態(tài),而不是將指令寫到高速緩存中去。核心執(zhí)行這個(gè)單一指令后,很可能下一個(gè)指令還是高速緩存未命中(因?yàn)樵谶@個(gè)模式下標(biāo)志沒有改變),于是同樣的過程重復(fù)下去。唯一的不同點(diǎn)可能是單一的16比特?cái)?shù)據(jù)讀取可能讀出一個(gè)字,因?yàn)樯弦淮巫x出的一個(gè)字節(jié)可以用。
這個(gè)模式的目的是允許用戶直接從存儲(chǔ)器中執(zhí)行他的部分代碼而不是將它先裝載到高速緩存中去,那里將會(huì)被其他東西覆蓋。這種模式對不帶循環(huán)的順序執(zhí)行代碼部分最為有用,這種代碼流不太適合于高速緩存??梢韵胂?,這種模式發(fā)生在軟件控制下的跳轉(zhuǎn)時(shí),并被代碼本身激活用于代碼的特定段。當(dāng)所有SRAM代碼都直接從SRAM中執(zhí)行而不被緩存時(shí),這個(gè)模式使簡單地在RBUS上激活它有意義。最后一種使用是作為調(diào)試方式。將PMOVLAY[6]改成1使代碼在可以觀察到的外部執(zhí)行。
雖然直接的順序執(zhí)行代碼最先出現(xiàn),而且從高速緩存中執(zhí)行也要花同樣多的時(shí)間,直接執(zhí)行模式實(shí)際上更慢些。這是因?yàn)橐粋€(gè)事實(shí),就是每個(gè)指令的讀取都提出一個(gè)新的存儲(chǔ)器請求,于是更多的外部總線被判決單元確認(rèn)。
本發(fā)明已經(jīng)結(jié)合它的很多特定實(shí)施方案一起描述過了。然而,在本發(fā)明范圍內(nèi)的種種變化對本領(lǐng)域的技術(shù)人員來說是明顯的。因此,本發(fā)明的范圍只被在此附加的權(quán)利要求書的范圍所限定。
權(quán)利要求
1.一種數(shù)字信號(hào)處理系統(tǒng),組成如下用于對數(shù)字聲音信號(hào)做實(shí)時(shí)處理的數(shù)字信號(hào)處理器(DSP);通過總線連接到DSP的改變的非易失程序存儲(chǔ)器;連接到DSP和可擦寫非易失程序存儲(chǔ)器上的高速緩存系統(tǒng),這個(gè)系統(tǒng)有程序存儲(chǔ)管理單元,它從可擦寫非易失程序存儲(chǔ)器上裝載程序指令。
全文摘要
數(shù)字信號(hào)處理系統(tǒng)包括多個(gè)處理器和內(nèi)存等一個(gè)或多個(gè)共享外圍設(shè)備。其體系結(jié)構(gòu)包括多個(gè)總線主控設(shè)備,它們連接到各自的總線上。還有一些連接在各自總線上的總線從屬設(shè)備。一個(gè)總線判決模塊選擇性地將這些總線互連起來,所以當(dāng)多個(gè)總線主控設(shè)備訪問不同的總線從屬設(shè)備時(shí)不會(huì)發(fā)生用阻塞,而當(dāng)多個(gè)總線主控設(shè)備訪問同一個(gè)總線從屬設(shè)備時(shí),帶寬缺乏就被避免了。這種結(jié)構(gòu)被總線判決法所支持,包括基于中斷方式的分層應(yīng)用法、指定時(shí)隙旋轉(zhuǎn)法和循環(huán)法等,它們避免了帶寬缺乏和總線爭奪期間的總線鎖定。系統(tǒng)另外還包括高速緩存系統(tǒng),它允許一個(gè)進(jìn)程按照保存于可更改非易失存儲(chǔ)器中的可更改的程序進(jìn)行實(shí)時(shí)數(shù)字信號(hào)處理,程序的部分被臨時(shí)地上載到本地快速內(nèi)存當(dāng)中。
文檔編號(hào)G06F13/38GK1399743SQ00815005
公開日2003年2月26日 申請日期2000年11月6日 優(yōu)先權(quán)日1999年11月5日
發(fā)明者保羅·D·克里尼斯克, 喬恩·索雷森, 弗雷德里克·鮑陶德 申請人:模擬裝置公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
客服| 象州县| 吉安县| 四川省| 雷州市| 大同市| 嘉祥县| 鹰潭市| 正镶白旗| 镶黄旗| 玛沁县| 绥德县| 高台县| 常宁市| 大安市| 嘉兴市| 柯坪县| 栾川县| 龙南县| 江口县| 大理市| 万全县| 连南| 宕昌县| 西乌珠穆沁旗| 当阳市| 广德县| 颍上县| 乌拉特中旗| 平安县| 天津市| 中方县| 武胜县| 呼玛县| 天门市| 常山县| 鸡泽县| 大城县| 五华县| 沙河市| 晋宁县|