亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有多階快取架構(gòu)的處理模塊的制作方法

文檔序號(hào):7965918閱讀:157來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):具有多階快取架構(gòu)的處理模塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及系統(tǒng)單芯片(system-on-chip,SoC)的應(yīng)用,具體的講是一種具有多階快取架構(gòu)(multilevel cache architecture)的處理模塊。
背景技術(shù)
為了充分地利用一芯片中存儲(chǔ)器(on-chip memory)并且將一高速處理器與一低速芯片外存儲(chǔ)器(off-chip memory)之間的效能差異最小化,許多內(nèi)嵌式系統(tǒng)的發(fā)展方向均朝向利用快取資源(cache resource)的方向來(lái)開(kāi)發(fā)。在這一類(lèi)內(nèi)嵌式系統(tǒng)中,可以設(shè)置有幾階的快取,例如一個(gè)一階快取(level-one cache,L1cache)與一個(gè)二階快取(level-two cache,L2 cache),甚至可以設(shè)置有一個(gè)三階快取(level-three cache,L3 cache)。該一階快取通常最靠近處理器以便于存取,并且通常具有可與該處理器中的一處理核心電路互相匹敵的速度。由于這樣的高速芯片中存儲(chǔ)器的成本甚高,該一階快取的容量的大小非常受限,通常界于幾千字節(jié)(kilobyte,KB)至幾萬(wàn)字節(jié)。
以一個(gè)具有兩階快取架構(gòu)的內(nèi)嵌式系統(tǒng)為例,當(dāng)該內(nèi)嵌式系統(tǒng)中發(fā)生一個(gè)一階快取的快取失誤(cache miss)時(shí),例如當(dāng)來(lái)自該內(nèi)嵌式系統(tǒng)的一處理器的一要求(request)對(duì)應(yīng)于一個(gè)一階快取范圍(L1 cacheable range)且所要求的數(shù)據(jù)(requested data)不在該一階快取中,則該一階快取會(huì)向該內(nèi)嵌式系統(tǒng)中的一個(gè)二階快取(level-two cache,L2 cache)索取該所要求的數(shù)據(jù)。若該所要求的數(shù)據(jù)位于該二階快取中,則該所要求的數(shù)據(jù)就被直接傳送至該一階快取。然而,若該所要求的數(shù)據(jù)不在該二階快取中,則該二階快取必須向一外部存儲(chǔ)器索取該所要求的數(shù)據(jù)。基于此傳統(tǒng)架構(gòu),該二階快取中的數(shù)據(jù)必須為該一階快取中的數(shù)據(jù)的超集(superset)。另外,當(dāng)上述的一階快取失誤發(fā)生時(shí),取得該所要求的數(shù)據(jù)的潛伏時(shí)間(latency time)就因?yàn)樵摱A快取所需找數(shù)據(jù)的時(shí)間而被延長(zhǎng)了。另外,該二階快取的容量的典型大小大約是幾萬(wàn)字節(jié)至幾十萬(wàn)字節(jié),且該二階快取必須保持其數(shù)據(jù)與該一階快取中的數(shù)據(jù)的一致性(coherence),因此該二階快取的大容量以及一致性問(wèn)題使得此傳統(tǒng)實(shí)施方式不論在設(shè)計(jì)或查核方面均相當(dāng)昂貴且復(fù)雜。如此,更不用說(shuō)于一內(nèi)嵌式系統(tǒng)中實(shí)施一個(gè)三階快取時(shí)會(huì)多幺昂貴與復(fù)雜。
在一內(nèi)嵌式系統(tǒng)中,一硬件引擎(hardware engine),例如一視頻或音頻引擎,可以有一專(zhuān)用存儲(chǔ)器(private memory)以達(dá)到較高效能。然而,該內(nèi)嵌式系統(tǒng)中的專(zhuān)用存儲(chǔ)器愈多,則成本與測(cè)試時(shí)間就對(duì)應(yīng)地增加。為了避免這些問(wèn)題,可在該內(nèi)嵌式系統(tǒng)中將該專(zhuān)用存儲(chǔ)器代換為用來(lái)為硬件引擎快取數(shù)據(jù)的一個(gè)二階快取的資源。也就是說(shuō),該二階快取被用來(lái)當(dāng)作該硬件引擎的工作緩沖器。然而,使該二階快取可被直接存儲(chǔ)器存取電路(DMA circuitry)或一些其它硬件總線(xiàn)主裝置(hardware bus master)存取時(shí)是相當(dāng)復(fù)雜的。由于有超過(guò)一個(gè)主裝置存取該二階快取,使得快取存取更加隨機(jī),所以會(huì)因?yàn)榭烊∈д`次數(shù)的增加或一主裝置的數(shù)據(jù)被另一主裝置的數(shù)據(jù)代換,而造成該二階快取的效能降低。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供具有多階快取架構(gòu)的處理模塊。
本發(fā)明提供了一種具有多階快取架構(gòu)的處理模塊,處理模塊包含有一處理器;一個(gè)一階快取(level-one cache,L1 cache),耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍(L1 cacheable range);一個(gè)二階快取(level-two cache,L2 cache),耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍(L2 cacheable range),以及一階快取范圍與二階快取范圍彼此互斥(mutually exclusive);以及一存儲(chǔ)器接口,耦接至一階快取與二階快取,用來(lái)于一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)于二階快取與存儲(chǔ)器之間傳輸數(shù)據(jù)。
本發(fā)明還提供了一種具有多階快取架構(gòu)的處理模塊,其特征在于,處理模塊包含有一處理器;一個(gè)一階快取,耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍;以及一個(gè)二階快取,耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍,以及一階快取范圍與二階快取范圍彼此互斥。
本發(fā)明還提供了一種具有多階快取架構(gòu)的處理模塊,其特征在于,處理模塊包含有一處理器;一個(gè)一階快取,耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍;一個(gè)二階快取,耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍;以及一存儲(chǔ)器接口,耦接至一階快取與二階快取,用來(lái)在一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)在二階快取與存儲(chǔ)器之間傳輸數(shù)據(jù)。
本發(fā)明的有益效果在于,提供能一種能夠保證快取效能的多階快取架構(gòu)的處理模塊。


圖1為依據(jù)本發(fā)明一實(shí)施例所提供的具有多階快取架構(gòu)的處理模塊的示意圖。
圖2為圖1所示的二階快取中的一切換電路的示意圖。
圖3為依據(jù)本發(fā)明一實(shí)施例、可應(yīng)用于圖1所示的處理模塊的處理器記憶空間與對(duì)應(yīng)的可快取設(shè)定的示意圖。
圖4為本發(fā)明一實(shí)施例中、圖1所示的處理模塊所執(zhí)行的程序代碼的軟件區(qū)段(software section)的可快取性(cacheability)的示意圖。
圖5為依據(jù)本發(fā)明一實(shí)施例、可應(yīng)用于圖1所示的處理模塊的二階快取的示意圖。
圖6為依據(jù)本發(fā)明一實(shí)施例、對(duì)一寫(xiě)入緩沖器進(jìn)行沖出(flush)處理的時(shí)序圖。
圖7為圖1所示的一階快取中的一存儲(chǔ)器保護(hù)單元(memory protection unit,MPU)的示意圖。
圖8為圖1所示的一階快取中的多個(gè)控制緩存器(control register)的示意圖。
圖9為圖7所示的存儲(chǔ)器保護(hù)單元中的決定模塊的示意圖。
主要組件符號(hào)說(shuō)明處理模塊100 處理器104 一階快取110二階快取120,220外部存儲(chǔ)器接口130 硬件引擎154-1,154-2直接連接113 芯片外存儲(chǔ)器40 切換電路122反多任務(wù)器122D 多任務(wù)器122M 數(shù)據(jù)D0,D1,D2控制電路222,226寫(xiě)入緩沖器224 存儲(chǔ)器保護(hù)單元112比較單元112C邏輯閘112G 數(shù)據(jù)WB0,WB1要求R0,R1,R2,R20,R21,R22,R_L1,R_nL1區(qū)段ZI,RW,RO,CODE命令Read(A),Write(A)時(shí)序圖中的特定時(shí)期REQ,INIT_LATENCY控制緩存器114-1,114-2,114-3,…,114-N控制緩存器中的字段BA,C,S,EN具體實(shí)施方式
請(qǐng)參考圖1,圖1為依據(jù)本發(fā)明一實(shí)施例所提供的具有多階快取架構(gòu)的處理模塊100的示意圖,其中處理模塊100可應(yīng)用于一電子裝置。處理模塊100包含有一處理器104;一個(gè)一階快取(level-one cache,L1 cache)110;一個(gè)二階快取(level-two cache,L2 cache)120;一存儲(chǔ)器接口,在本實(shí)施例即外部存儲(chǔ)器接口(external memory interface,EMI)130;以及兩硬件引擎(hardware engine)154-1與154-2。處理器104可通過(guò)執(zhí)行一程序代碼來(lái)控制電子裝置的運(yùn)作,而一階快取110與二階快取120為處理器104快取數(shù)據(jù)。一階快取110具有至少一個(gè)一階快取范圍(L1 cacheable range)。如本實(shí)施例中,特別具有多個(gè)一階快取范圍。相仿地,二階快取120具有至少一個(gè)二階快取范圍(L2 cacheablerange)。依據(jù)本發(fā)明,一階快取范圍與二階快取范圍彼此互斥,也就是凡不落入一階快取的地址均是二階快取的范圍。
上述的存儲(chǔ)器接口用來(lái)在一階快取110與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)在二階快取120與存儲(chǔ)器之間傳輸數(shù)據(jù)。本實(shí)施例中,處理模塊100為一芯片(chip),而存儲(chǔ)器為位于處理模塊100之外的芯片外存儲(chǔ)器(off-chip memory)40。存儲(chǔ)器接口(于本實(shí)施例即外部存儲(chǔ)器接口130)用來(lái)在一階快取110與芯片外存儲(chǔ)器40之間傳輸數(shù)據(jù)以及用來(lái)在二階快取120與芯片外存儲(chǔ)器40之間傳輸數(shù)據(jù)。在本發(fā)明的另一實(shí)施例中,處理模塊也為一芯片,其中存儲(chǔ)器可置于處理模塊當(dāng)中。另外,依據(jù)圖1所示的實(shí)施例,硬件引擎154-1與154-2用來(lái)通過(guò)存取(access)二階快取中的數(shù)據(jù)來(lái)進(jìn)行預(yù)定處理(predetermined processing)。例如硬件引擎154-1系為一MPEG編碼器,用來(lái)進(jìn)行MPEG編碼,而硬件引擎154-2為一MPEG譯碼器,用來(lái)進(jìn)行MPEG譯碼。
依據(jù)本發(fā)明,一階快取110與二階快取120之間所用的總線(xiàn)協(xié)議(busprotocol)可為一單傳送總線(xiàn)協(xié)議(single transfer bus protocol);而一階快取110與外部存儲(chǔ)器接口130之間所用的總線(xiàn)協(xié)議,或二階快取120與外部存儲(chǔ)器接口130之間所用的總線(xiàn)協(xié)議的任一者可為一叢發(fā)傳送總線(xiàn)協(xié)議(burst transfer busprotocol)。此外,隨著本發(fā)明實(shí)際上不同的選擇,硬件引擎154-1與二階快取120之間所用的總線(xiàn)協(xié)議,或硬件引擎154-2與二階快取120之間所用的總線(xiàn)協(xié)議的任意一個(gè)可為單傳送總線(xiàn)協(xié)議或叢發(fā)傳送總線(xiàn)協(xié)議。
在本實(shí)施例中,處理器104可發(fā)出用來(lái)擷取(retrieve)數(shù)據(jù)的存儲(chǔ)器要求(request)至一階快取110。當(dāng)處理器104傳送一要求至一階快取110以擷取落于這些一階快取范圍中之一在內(nèi)的地址上的數(shù)據(jù)時(shí),若所要求的數(shù)據(jù)(requesteddata)在一階快取110中,也就是一階快取110的一快取命中(cache hit)發(fā)生時(shí),則一階快取110傳送所要求的數(shù)據(jù)至處理器104。相反地,若所要求的數(shù)據(jù)不在一階快取110中,也就是一階快取110的一快取失誤(cache miss)發(fā)生時(shí),則一階快取110向芯片外存儲(chǔ)器40透過(guò)上述的叢發(fā)傳送總線(xiàn)協(xié)議來(lái)轉(zhuǎn)送(forward)要求至外部存儲(chǔ)器接口130,以索取(ask for)所要求的數(shù)據(jù),而非向二階快取120索取所要的數(shù)據(jù)。從芯片外存儲(chǔ)器40擷取所要求的數(shù)據(jù)之后,外部存儲(chǔ)器接口130傳送所要求的數(shù)據(jù)至一階快取110。一階快取110接著傳送所要求的數(shù)據(jù)至處理器104,并且將所要求的數(shù)據(jù)儲(chǔ)存于一階快取110中的一高速緩存(未顯示)。
另一方面,當(dāng)處理器104傳送一要求至一階快取110以擷取落于一階快取范圍之外的地址上的數(shù)據(jù)時(shí),一階快取110透過(guò)上述的單傳送總線(xiàn)協(xié)議來(lái)傳送要求至二階快取120,以向二階快取120索取所要求的數(shù)據(jù)。若所要求的數(shù)據(jù)在二階快取120中,也就是二階快取120的一快取命中發(fā)生時(shí),則二階快取120傳送所要求的數(shù)據(jù)至一階快取110,而一階快取110從二階快取120轉(zhuǎn)送(forward)所要求的數(shù)據(jù)至處理器104,但不將所要求的數(shù)據(jù)儲(chǔ)存于一階快取110中。相反地,若所要求的數(shù)據(jù)不在二階快取120中,也就是二階快取120的一快取失誤發(fā)生時(shí),則二階快取120透過(guò)上述的叢發(fā)傳送總線(xiàn)協(xié)議來(lái)轉(zhuǎn)送要求至外部存儲(chǔ)器接口130,以要求外部存儲(chǔ)器接口130自芯片外存儲(chǔ)器40傳送所要求的數(shù)據(jù)。當(dāng)所要求的數(shù)據(jù)自芯片外存儲(chǔ)器40被外部存儲(chǔ)器接口130傳送至二階快取120時(shí),二階快取120轉(zhuǎn)送所要求的數(shù)據(jù)至一階快取110,并且將所要求的數(shù)據(jù)儲(chǔ)存于二階快取120中的一高速緩存(未顯示)。當(dāng)二階快取120轉(zhuǎn)送所要求的數(shù)據(jù)至一階快取110時(shí),一階快取110自二階快取120轉(zhuǎn)送所要求的數(shù)據(jù)至處理器104,但不將所要求的數(shù)據(jù)儲(chǔ)存于一階快取110中。
在本實(shí)施例中,硬件引擎154-1與154-2可發(fā)出用來(lái)擷取數(shù)據(jù)的存儲(chǔ)器要求至二階快取120。當(dāng)硬件引擎154-1與154-2中之一,例如硬件引擎154-1,傳送一要求至二階快取120,以擷取落于二階快取范圍中的地址上的數(shù)據(jù)時(shí),若所要求的數(shù)據(jù)在二階快取120中,也就是二階快取120的一快取命中發(fā)生時(shí),則二階快取120會(huì)直接地傳送所要求的數(shù)據(jù)至硬件引擎154-1。相反地,若所要求的數(shù)據(jù)不在二階快取120中,也就是二階快取120的一快取失誤發(fā)生時(shí),則二階快取120透過(guò)上述的叢發(fā)傳送總線(xiàn)協(xié)議來(lái)轉(zhuǎn)送要求至外部存儲(chǔ)器接口130,以向芯片外存儲(chǔ)器40索取所要求的數(shù)據(jù)。在自芯片外存儲(chǔ)器40擷取所要求的數(shù)據(jù)之后,外部存儲(chǔ)器接口130將所要求的數(shù)據(jù)傳送至二階快取120。然后,二階快取120傳送所要求的數(shù)據(jù)至硬件引擎154-1,并且將所要求的數(shù)據(jù)儲(chǔ)存于二階快取120中的高速緩存。
圖2為圖1所示的二階快取120中的一切換電路122的示意圖。如圖2所示,切換電路122包含有一多任務(wù)器(multiplexer)122M與一反多任務(wù)器(demultiplexer)122D。通過(guò)使用多任務(wù)器122M,切換電路122可于將一要求R0從處理器104(透過(guò)一階快取110)轉(zhuǎn)送至外部存儲(chǔ)器接口130、將另一要求R1從硬件引擎154-1轉(zhuǎn)送至外部存儲(chǔ)器接口130、以及將另一要求R2從硬件引擎154-2轉(zhuǎn)送至外部存儲(chǔ)器接口130之間進(jìn)行切換。若要求R0、R1、與R2中的兩個(gè)以上同時(shí)被切換電路122所接收,則切換電路122將仲裁(arbitrate)哪個(gè)要求(要求R0、R1、或R2)應(yīng)優(yōu)先處理。此外,通過(guò)使用反多任務(wù)器122D,切換電路122可于將對(duì)應(yīng)要求R0的數(shù)據(jù)D0(透過(guò)一階快取110)轉(zhuǎn)送至處理器104、將對(duì)應(yīng)要求R1的數(shù)據(jù)D1轉(zhuǎn)送至發(fā)出要求R1的相對(duì)應(yīng)硬件引擎154-1、以及將對(duì)應(yīng)要求R2的數(shù)據(jù)D2轉(zhuǎn)送至發(fā)出要求R2的相對(duì)應(yīng)硬件引擎154-2之間進(jìn)行切換。
圖3為依據(jù)本發(fā)明一實(shí)施例、可應(yīng)用于圖1所示的處理模塊100的處理器記憶空間(processor memory space)與對(duì)應(yīng)的可快取設(shè)定(cacheable setting)的示意圖。如圖3所示,處理器記憶空間具有至少三部分,分別標(biāo)示為芯片外存儲(chǔ)器、芯片中存儲(chǔ)器、與存儲(chǔ)器映像的輸入/輸出。依據(jù)本實(shí)施例,芯片外存儲(chǔ)器部分對(duì)一階快取110與二階快取120而言是可快取的。若處理器104發(fā)出一個(gè)對(duì)應(yīng)于一階快取范圍中的要求,則一階快取110中的一控制器(未顯示)通過(guò)使用上述的叢發(fā)傳送總線(xiàn)協(xié)議來(lái)透過(guò)直接連接113轉(zhuǎn)送要求至外部存儲(chǔ)器接口130,而所要求的數(shù)據(jù)被存入一階快取110中,而非二階快取120中。相反地,若對(duì)應(yīng)于一要求的一區(qū)域并未落于任一個(gè)一階快取范圍內(nèi),則要求通過(guò)使用上述的單傳送總線(xiàn)協(xié)議而被傳送至二階快取120。當(dāng)所要求的數(shù)據(jù)從外部存儲(chǔ)器接口130被傳回時(shí),二階快取120儲(chǔ)存所要求的數(shù)據(jù)并將所要求的數(shù)據(jù)傳送至一階快取110,而一階快取110則將來(lái)自二階快取120的所要求的數(shù)據(jù)旁通(bypass)至處理器104。因此,一階快取110中的數(shù)據(jù)與二階快取120中的數(shù)據(jù)彼此互斥。
需要留意的是,這些硬件引擎不可以存取任何一階快取范圍。為了簡(jiǎn)單起見(jiàn),一階快取110中的控制器并非以總線(xiàn)窺探架構(gòu)(bus snooping architecture)來(lái)實(shí)施。此外,強(qiáng)烈建議的是,只有處理器104所要求用來(lái)儲(chǔ)存指令(instruction)與只讀數(shù)據(jù)(read-only data)的區(qū)域被設(shè)為一階快取范圍,這是因?yàn)橐罁?jù)本發(fā)明,這些區(qū)域不可以供上述的硬件引擎寫(xiě)入。
于一典型的軟件開(kāi)發(fā)流程中,來(lái)源碼(例如上述的程序代碼的來(lái)源碼)通常被編譯成多個(gè)中間對(duì)象文件(intermediate object file),而這些中間對(duì)象文件具有一些區(qū)段(section),例如為上述指令所設(shè)置的區(qū)段CODE、是上述的只讀數(shù)據(jù)所設(shè)置的區(qū)段RO、是有初始值的讀寫(xiě)數(shù)據(jù)(initialized read-write data)所設(shè)置的區(qū)段RW(或DATA)、以及是非初始數(shù)據(jù)(non-initialized data)所設(shè)置的區(qū)段ZI,其中每一對(duì)象文件具有一個(gè)或多個(gè)區(qū)段。一連結(jié)器(linker)將所有的對(duì)象文件的區(qū)段組合起來(lái),以產(chǎn)生一可執(zhí)行文件以及對(duì)應(yīng)的存儲(chǔ)器影像(memoryimage)。大部分現(xiàn)代的連結(jié)器可以指派存儲(chǔ)器像中每一區(qū)段的起始地址。依據(jù)本發(fā)明所提供的建議,軟件開(kāi)發(fā)者可以仔細(xì)地安排這些區(qū)段,使得存儲(chǔ)器影像中的區(qū)段CODE與區(qū)段RO落于一階快取范圍內(nèi),且使得存儲(chǔ)器影像中的區(qū)段RW與區(qū)段ZI落于二階快取范圍內(nèi)。當(dāng)處理器104執(zhí)行程序代碼時(shí),一階快取110可被用來(lái)快取程序代碼的指令與只讀數(shù)據(jù)。另外,當(dāng)處理器104執(zhí)行程序代碼時(shí),二階快取120可被用來(lái)快取程序代碼的有初始值的讀寫(xiě)數(shù)據(jù)與非初始數(shù)據(jù),而非上述的指令與只讀數(shù)據(jù)。
以圖4所示的安排為例,區(qū)段CODE與RO位于落于上述的一階快取范圍內(nèi)的區(qū)域,而區(qū)段RW(或DATA)與ZI位于落于上述的二階快取范圍內(nèi)的區(qū)域,其中這些區(qū)域均映像至芯片外存儲(chǔ)器。此外,也有映像至芯片中存儲(chǔ)器的區(qū)段CODE、RW(或DATA)、與RI,以供快速存取。例如此舉可符合一中斷處理器(interrupt handler)的快速反應(yīng)需求。
請(qǐng)參考圖5,圖5為依據(jù)本發(fā)明一實(shí)施例、可應(yīng)用于圖1所示的處理模塊100的一個(gè)二階快取220的示意圖。圖1所示的二階快取120可被代換為二階快取220,其中一階快取110與外部存儲(chǔ)器接口130之間直接連接113的至少一部分置于二階快取220中,如圖5所示。除了上述的切換電路122之外,二階快取220另包含有一寫(xiě)入緩沖器224以及兩控制電路222與226。寫(xiě)入緩沖器224用來(lái)透過(guò)外部存儲(chǔ)器接口130緩沖處理(buffering)將被寫(xiě)入芯片外存儲(chǔ)器40的數(shù)據(jù)。當(dāng)控制電路222接收到一要求時(shí),控制寫(xiě)入緩沖器224將所緩沖處理的數(shù)據(jù)(buffered data)自寫(xiě)入緩沖器224沖出(flush out),其中要求原本傳送自處理器104,然后由一階快取110透過(guò)直接連接113并且通過(guò)使用上述的叢發(fā)傳送總線(xiàn)協(xié)議所轉(zhuǎn)送。
當(dāng)控制電路226接收到一要求(例如要求R0、R1、與R2中的任意一個(gè))時(shí),控制寫(xiě)入緩沖器224將緩沖處理的數(shù)據(jù)自寫(xiě)入緩沖器224沖出,其中要求為讀取位于將被寫(xiě)入所緩沖處理的數(shù)據(jù)之處所在的地址上的數(shù)據(jù)。另外,控制電路226可將來(lái)自切換電路122的要求分成寫(xiě)入要求和讀取要求等兩路徑。也就是說(shuō),控制電路226控制寫(xiě)入要求(例如要求R20、R21、與R22)透過(guò)寫(xiě)入緩沖器224被傳送至外部存儲(chǔ)器接口130,并且控制讀取要求(例如要求R0、R1、與R2)被旁通至外部存儲(chǔ)器接口130。
依據(jù)圖5所示的架構(gòu),當(dāng)處理器104執(zhí)行上述的程序代碼時(shí),一階快取110不僅可被用來(lái)快取程序代碼的指令與只讀數(shù)據(jù),也可用來(lái)快取程序代碼有初始值的讀寫(xiě)數(shù)據(jù)與非初始數(shù)據(jù)。
使用一階快取110快取上述有初始值的讀寫(xiě)數(shù)據(jù)與非初始數(shù)據(jù)表示處理器104在有需要時(shí),傳送對(duì)應(yīng)于有初始值的讀寫(xiě)數(shù)據(jù)或非初始數(shù)據(jù)的寫(xiě)入要求,是可行的。一般而言,當(dāng)處理器104、硬件引擎154-1、或硬件引擎154-1中的一個(gè)傳送一讀取要求時(shí),必須等待所要求數(shù)據(jù)傳回以繼續(xù)進(jìn)行運(yùn)作,這表示等待所要求的數(shù)據(jù)傳回的潛伏時(shí)間會(huì)影響其系統(tǒng)效能。因此,在大部分狀況下,外部存儲(chǔ)器接口130在典型實(shí)施方式中會(huì)優(yōu)先受理讀取要求,并且將寫(xiě)入要求擱置到?jīng)]有讀取要求時(shí)才受理寫(xiě)入要求,以達(dá)到最佳效能。如此,若處理器104首先傳送落于一個(gè)一階快取范圍內(nèi)的地址A的一寫(xiě)入要求(例如要求R20),以將緩沖處理寫(xiě)入緩沖器224中的數(shù)據(jù)寫(xiě)至地址A,接著傳送同一地址A的一讀取要求,且若對(duì)應(yīng)于讀取要求的所要求的數(shù)據(jù)尚未在一階快取110中,則當(dāng)控制電路222偵測(cè)到一階快取110透過(guò)直接連接113轉(zhuǎn)送至外部存儲(chǔ)器接口130的讀取要求時(shí),控制寫(xiě)入緩沖器224將緩沖處理的數(shù)據(jù)從寫(xiě)入緩沖器224沖出。這是為了避免,萬(wàn)一寫(xiě)入緩沖器224緩沖處理數(shù)據(jù)尚未被沖出以更新(或代換)地址A上的數(shù)據(jù)之前,處理器104在地址A讀取到錯(cuò)誤且尚未被更新(或代換)的數(shù)據(jù)。
于另一例中,硬件引擎154-1首先傳送落于一個(gè)二階快取范圍內(nèi)的地址B的一寫(xiě)入要求(例如要求R21)以將緩沖處理在寫(xiě)入緩沖器224中數(shù)據(jù)寫(xiě)至地址B,接著處理器104傳送同一地址B的一讀取要求(例如要求R0),其中若對(duì)應(yīng)于讀取要求的要求的數(shù)據(jù)尚未在二階快取120中,則控制電路226偵測(cè)到讀取要求時(shí),控制寫(xiě)入緩沖器224將緩沖處理的數(shù)據(jù)從寫(xiě)入緩沖器224沖出。這是為了避免,萬(wàn)一于寫(xiě)入緩沖器224緩沖處理的數(shù)據(jù)尚未被沖出以更新(或代換)地址B上的數(shù)據(jù)之前,處理器104在地址B讀取到錯(cuò)誤且尚未被更新(或代換)的數(shù)據(jù)。
在本實(shí)施例的一變化例中,控制電路222直接連接113偵測(cè)到任何要求時(shí),就控制寫(xiě)入緩沖器224將緩沖處理的數(shù)據(jù)從寫(xiě)入緩沖器224沖出。在本實(shí)施例另一變化例中,控制電路226偵測(cè)到來(lái)自切換電路122的任何讀取要求時(shí),就控制寫(xiě)入緩沖器224將緩沖處理數(shù)據(jù)從寫(xiě)入緩沖器224沖出。
圖6為依據(jù)本發(fā)明一實(shí)施例、對(duì)一寫(xiě)入緩沖器(例如圖5所示的寫(xiě)入緩沖器224)進(jìn)行沖出(flush)處理的時(shí)序圖。如圖6左側(cè)所示,相較于“沖出模式失能”的情況,“沖出模式致能”的情況中,在時(shí)期REQ與INIT_LATENCY之間插入用來(lái)對(duì)寫(xiě)入緩沖器進(jìn)行沖出處理的一額外時(shí)期。例如當(dāng)數(shù)據(jù)WB0與WB1均被緩沖處理于寫(xiě)入緩沖器224中時(shí),首先有一命令Write(A),用來(lái)在地址A寫(xiě)入數(shù)據(jù),接著有一命令Read(A),用來(lái)在地址A讀取數(shù)據(jù)。通過(guò)首先沖出緩沖處理于寫(xiě)入緩沖器224中的數(shù)據(jù)WB0與WB1,本發(fā)明確保外部存儲(chǔ)器接口130首先受理命令Write(A)的要求,然后才受理命令Read(A)的要求。
請(qǐng)參考圖7、圖8、與圖9。依據(jù)圖1所示的實(shí)施例,一階快取110包含有一存儲(chǔ)器保護(hù)單元(memory protection unit,MPU)112與多個(gè)控制緩存器(controlregister)114-1、114-2、114-3、…、114-N,其中存儲(chǔ)器保護(hù)單元112包含有一決定模塊112D,而決定模塊112D則包含有一比較單元112C與一邏輯閘112G;本實(shí)施例中,邏輯閘112G為“及邏輯閘”(AND gate)。依據(jù)本實(shí)施例的不同實(shí)施選擇,控制緩存器114-1、114-2、114-3、…、與114-N可置于存儲(chǔ)器保護(hù)單元112之內(nèi)或存儲(chǔ)器保護(hù)單元112之外。
控制緩存器114-1、114-2、114-3、…、與114-N用來(lái)儲(chǔ)存定義上述一階快取范圍的可快取性(cacheability)信息,于本實(shí)施例中,尤其是分別用來(lái)儲(chǔ)存定義這些階快取范圍的可快取性信息的多個(gè)部分。另外,決定模塊112D耦接至控制緩存器114-1、114-2、114-3、…、與114-N,并且用來(lái)依據(jù)可快取性信息來(lái)決定對(duì)應(yīng)于來(lái)自處理器104的一要求的可快取性。例如若來(lái)自處理器104的一要求R_L1對(duì)應(yīng)于落于這些一階快取范圍中的地址,則存儲(chǔ)器保護(hù)單元112轉(zhuǎn)送要求R_L1至外部存儲(chǔ)器接口130。相反地,若來(lái)自處理器104的一要求R_nL1對(duì)應(yīng)于落于這些一階快取范圍外的地址,則存儲(chǔ)器保護(hù)單元112轉(zhuǎn)送要求R_nL1至二階快取120。
決定模塊112D依據(jù)可快取性信息的一特定部分以及來(lái)自處理器104的要求R_L1或R_nL1決定一特定區(qū)域是否可快取。如圖8所示,在每一控制緩存器中,可快取性信息的格式包含有多個(gè)字段BA、C、S、與EN,其中字段BA為基地址(Base address),代表一區(qū)域的起始地址的高位,而字段C代表區(qū)域的可快取性屬性(cacheability attribute),且字段S代表區(qū)域的大小(size),以及字段EN代表此控制緩存器的一致能位。依據(jù)本實(shí)施例,使用者可在字段BA中指定某些地址較高位。地址較高位的有效數(shù)量決定于區(qū)域的大小,其中區(qū)域的大小可為如1KB、2KB、4KB、…等(2n)字節(jié)。例如若區(qū)域大小為1KB,則只需要地址較高位[31:10]來(lái)定義基地址。若區(qū)域大小為2KB,則只需要地址較高位[31:11]定義基地址。一般而言,若區(qū)域的大小為(2n)字節(jié),則一地址中只有(32-n)個(gè)地址較高位被取用以供與控制緩存器的基地址設(shè)定進(jìn)行比較?;刂放c區(qū)域的大小之間的關(guān)系帶來(lái)一種限制,使得上述定義的任一區(qū)域的起始地址必須對(duì)準(zhǔn)其區(qū)域大小的邊界。例如若一區(qū)域的大小為8KB,則其基地址必須為8KB的倍數(shù)。
依據(jù)本實(shí)施例,字段BA、C、S、與EN中的內(nèi)容均被傳送至比較單元112C與邏輯閘112G,如圖9所示。依據(jù)字段S的內(nèi)容,比較單元112C決定上述的特定區(qū)域的起始地址(即圖9所示的“依據(jù)處理器的要求的地址”)中需要被取出以供與字段BA的內(nèi)容進(jìn)行比較的較高位的數(shù)量。當(dāng)特定區(qū)域的起始地址(其系對(duì)應(yīng)于處理器的要求)與這些控制緩存器的任意一個(gè)的字段BA的內(nèi)容吻合、且控制緩存器的致能位已被設(shè)定時(shí),若字段C的內(nèi)容所代表的值等于一,則邏輯閘112G決定此存取系為“可快取”;否則(即字段C中的內(nèi)容所代表的值等于零或字段EN中的內(nèi)容所代表的值等于零),邏輯閘112G決定此存取為“非可快取”。
依據(jù)本實(shí)施例的一變化例,控制電路226可簡(jiǎn)單地控制寫(xiě)入緩沖器224將緩沖處理數(shù)據(jù)從寫(xiě)入緩沖器224沖出,如前面所述,但不會(huì)將切換電路122的要求分成寫(xiě)入要求與讀取要求等兩路徑。
依據(jù)本發(fā)明的另一實(shí)施例,另一個(gè)一階快取(未顯示)耦接于二階快取120與硬件引擎154-1之間,為硬件引擎154-1快取數(shù)據(jù)。
本發(fā)明的有益效果在于,提供能一種能夠保證快取效能的多階快取架構(gòu)的處理模塊。
以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的實(shí)施過(guò)程,并非用于限定本發(fā)明保護(hù)范圍。凡根據(jù)本發(fā)明權(quán)利要求所做的均等變化與修飾,都應(yīng)屬本發(fā)明的范圍。
權(quán)利要求
1.一種具有多階快取架構(gòu)的處理模塊,其特征在于,處理模塊包含有一處理器;一個(gè)一階快取,耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍;一個(gè)二階快取,耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍,以及一階快取范圍與二階快取范圍彼此互斥;以及一存儲(chǔ)器接口,耦接至一階快取與二階快取,用來(lái)在一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)在二階快取與存儲(chǔ)器之間傳輸數(shù)據(jù)。
2.如權(quán)利要求1所述的處理模塊,其特征在于,還包含有至少一硬件引擎,耦接至二階快取,用來(lái)通過(guò)存取二階快取中的數(shù)據(jù)來(lái)進(jìn)行預(yù)定處理。
3.如權(quán)利要求2所述的處理模塊,其特征在于,硬件引擎為一MPEG編碼器,用來(lái)進(jìn)行MPEG編碼。
4.如權(quán)利要求2所述的處理模塊,其特征在于,硬件引擎為一MPEG譯碼器,用來(lái)進(jìn)行MPEG譯碼。
5.如權(quán)利要求2所述的處理模塊,其特征在于,還包含有另一個(gè)一階快取,耦接于二階快取與硬件引擎之間,用來(lái)為硬件引擎快取數(shù)據(jù)。
6.如權(quán)利要求2所述的處理模塊,其特征在于,二階快取包含有一切換電路,用來(lái)于將一第一要求從處理器轉(zhuǎn)送至存儲(chǔ)器接口以及將一第二要求從硬件引擎轉(zhuǎn)送至存儲(chǔ)器接口之間進(jìn)行切換,以及用來(lái)于將對(duì)應(yīng)第一要求的數(shù)據(jù)轉(zhuǎn)送至處理器以及將對(duì)應(yīng)第二要求的數(shù)據(jù)轉(zhuǎn)送至硬件引擎之間進(jìn)行切換。
7.如權(quán)利要求1所述的處理模塊,其特征在于,二階快取包含有一切換電路,用來(lái)切換多個(gè)要求的轉(zhuǎn)送。
8.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器傳送一要求至一階快取以擷取于一階快取范圍內(nèi)的地址上的數(shù)據(jù)時(shí),若所要求的數(shù)據(jù)不在一階快取范圍中,則一階快取向存儲(chǔ)器索取要求的數(shù)據(jù),而非向二階快取索取所要求的數(shù)據(jù)。
9.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器傳送一要求至一階快取以擷取落于一階快取范圍之外的地址上的數(shù)據(jù)時(shí),一階快取向二階快取索取要求的數(shù)據(jù),且若要求的數(shù)據(jù)在二階快取中,則一階快取從二階快取轉(zhuǎn)送所要求的數(shù)據(jù)至處理器,但不將所要求的數(shù)據(jù)儲(chǔ)存于一階快取中。
10.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器傳送一要求至一階快取以擷取落于一階快取范圍之外的地址上的數(shù)據(jù)時(shí),一階快取向二階快取索取所要求數(shù)據(jù),且若所要求的數(shù)據(jù)不在二階快取中,則二階快取要求存儲(chǔ)器接口從存儲(chǔ)器傳送所要求的數(shù)據(jù),且當(dāng)所要求的數(shù)據(jù)從存儲(chǔ)器被存儲(chǔ)器接口傳送至二階快取且二階快取轉(zhuǎn)送所要求數(shù)據(jù)至一階快取時(shí),一階快取從二階快取轉(zhuǎn)送所要求的數(shù)據(jù)至處理器,但不將所要求的數(shù)據(jù)儲(chǔ)存于一階快取中。
11.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器執(zhí)行一程序代碼時(shí),一階快取被用來(lái)快取程序代碼指令與只讀數(shù)據(jù),且二階快取被用來(lái)快取程序代碼的有初始值的讀寫(xiě)數(shù)據(jù)與非初始數(shù)據(jù)而非多個(gè)指令與只讀數(shù)據(jù)。
12.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器執(zhí)行一程序代碼時(shí),一階快取被用來(lái)快取程序代碼的指令、只讀數(shù)據(jù)、有初始值的讀寫(xiě)數(shù)據(jù)、與非初始數(shù)據(jù),以及二階快取包含有一寫(xiě)入緩沖器,用來(lái)通過(guò)存儲(chǔ)器接口緩沖處理將被寫(xiě)入存儲(chǔ)器的數(shù)據(jù);以及一控制電路,耦接至寫(xiě)入緩沖器,控制電路在接收到一要求時(shí),控制寫(xiě)入緩沖器將緩沖處理的數(shù)據(jù)從寫(xiě)入緩沖器沖出。
13.如權(quán)利要求1所述的處理模塊,其特征在于,當(dāng)處理器執(zhí)行一程序代碼時(shí),一階快取被用來(lái)快取程序代碼的多個(gè)指令、只讀數(shù)據(jù)、有初始值的讀寫(xiě)數(shù)據(jù)、與非初始數(shù)據(jù),以及二階快取包含有一寫(xiě)入緩沖器,用來(lái)透過(guò)存儲(chǔ)器接口緩沖處理將被寫(xiě)入存儲(chǔ)器的數(shù)據(jù);以及一控制電路,耦接至寫(xiě)入緩沖器,控制電路于接收到一要求時(shí),控制寫(xiě)入緩沖器將緩沖處理的數(shù)據(jù)從寫(xiě)入緩沖器沖出,其中要求為讀取位于將被寫(xiě)入緩沖處理的數(shù)據(jù)之處所在的地址上的數(shù)據(jù)。
14.如權(quán)利要求1所述的處理模塊,其特征在于,一階快取包含有至少一控制緩存器,用來(lái)儲(chǔ)存定義一階快取范圍的可快取性信息;以及一決定模塊,耦接至控制緩存器,用來(lái)依據(jù)可快取性信息來(lái)決定對(duì)應(yīng)于來(lái)自處理器的一要求的可快取性。
15.如權(quán)利要求14所述的處理模塊,其特征在于,一階快取具有多個(gè)一階快取范圍,一階快取包含有多個(gè)控制緩存器,分別用來(lái)儲(chǔ)存定義多個(gè)一階快取范圍的可快取性信息的多個(gè)部分,以及決定模塊依據(jù)可快取性信息的一特定部分與要求來(lái)決定一特定區(qū)域是否可快取。
16.如權(quán)利要求1所述的處理模塊,其特征在于,處理模塊為一芯片,以及存儲(chǔ)器為位于處理模塊之外的芯片外存儲(chǔ)器。
17.如權(quán)利要求1所述的處理模塊,其特征在于,處理模塊為一芯片,以及存儲(chǔ)器置于處理模塊當(dāng)中。
18.一種具有多階快取架構(gòu)的處理模塊,其特征在于,處理模塊包含有一處理器;一個(gè)一階快取,耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍;以及一個(gè)二階快取,耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍,以及一階快取范圍與二階快取范圍彼此互斥。
19.如權(quán)利要求18所述的處理模塊,其特征在于,還包含有至少一硬件引擎,耦接至二階快取,用來(lái)通過(guò)存取二階快取中的數(shù)據(jù)來(lái)進(jìn)行預(yù)定處理。
20.如權(quán)利要求18所述的處理模塊,其特征在于,還包含有一存儲(chǔ)器接口,耦接至一階快取與二階快取,用來(lái)于一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)在二階快取與存儲(chǔ)器之間傳輸數(shù)據(jù)。
21.一種具有多階快取架構(gòu)的處理模塊,其特征在于,處理模塊包含有一處理器;一個(gè)一階快取,耦接至處理器,用來(lái)為處理器快取數(shù)據(jù),其中一階快取具有至少一個(gè)一階快取范圍;一個(gè)二階快取,耦接至一階快取,用來(lái)為處理器快取數(shù)據(jù),其中二階快取具有至少一個(gè)二階快取范圍;以及一存儲(chǔ)器接口,耦接至一階快取與二階快取,用來(lái)在一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)在二階快取與存儲(chǔ)器之間傳輸數(shù)據(jù)。
22.如權(quán)利要求21所述的處理模塊,其特征在于,一階快取范圍與二階快取范圍彼此互斥。
23.如權(quán)利要求21所述的處理模塊,其特征在于,還包含有至少一硬件引擎,耦接至二階快取,用來(lái)通過(guò)存取二階快取中的數(shù)據(jù)來(lái)進(jìn)行預(yù)定處理。
全文摘要
本發(fā)明提供一種具有多階快取架構(gòu)的處理模塊,該處理模塊具有一處理器;一個(gè)一階快取,耦接至該處理器,用來(lái)為該處理器快取數(shù)據(jù),其中該一階快取具有至少一個(gè)一階快取范圍;一個(gè)二階快取,耦接至該一階快取,用來(lái)為該處理器快取數(shù)據(jù),其中該二階快取具有至少一個(gè)二階快取范圍,以及該一階快取范圍與該二階快取范圍彼此互斥;以及一存儲(chǔ)器接口,耦接至該一階快取與該二階快取,用來(lái)于該一階快取與一存儲(chǔ)器之間傳輸數(shù)據(jù)以及用來(lái)于該二階快取與該存儲(chǔ)器之間傳輸資料。本發(fā)明的有益效果在于,提供能一種能夠保證快取效能的多階快取架構(gòu)的處理模塊。
文檔編號(hào)H04N7/26GK1924833SQ20061010897
公開(kāi)日2007年3月7日 申請(qǐng)日期2006年7月31日 優(yōu)先權(quán)日2005年9月1日
發(fā)明者許廷誠(chéng), 林彥宇, 柯智偉, 林昌輔 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1