專利名稱:具備地址轉(zhuǎn)換存儲器訪問機(jī)構(gòu)的半導(dǎo)體裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及具備CPU (Central Processing Unit)和存儲器的系統(tǒng),尤 其涉及向存儲器傳輸數(shù)據(jù)的技術(shù)。
背景技術(shù):
在以往的具有CPU和存儲器的系統(tǒng)中,是存儲器訪問的高速化無法 趕上CPU的高速化的狀況。因此,為了提高存儲器訪問性能, 一般采取
高速緩沖存儲器方式。該高速緩沖存儲器近幾年不僅采取1級高速緩沖存
儲器(level 1 cache),還采用2級高速緩沖存儲器,進(jìn)一步采用3級高速 緩沖存儲器。
圖1是與現(xiàn)有技術(shù)的存儲器訪問相關(guān)的框圖。圖1的系統(tǒng)具備第一及 第二半導(dǎo)體裝置100、 200。第一半導(dǎo)體裝置IOO具有CPUIO、 2級高速緩 沖存儲器20和實(shí)際存儲器(real memory) 30。 2級高速緩沖存儲器20具 有高速緩沖存儲器21、控制電路22。第二半導(dǎo)體裝置200具有實(shí)際存儲 器40。 CPU10經(jīng)由2級高速緩沖存儲器20,與兩個實(shí)際存儲器30、 40連 接。
進(jìn)而,對于實(shí)際物理存儲器空間以外的存儲器空間而言,也采用稱為 虛擬存儲器的技術(shù),以便可以由軟件來使用。此時,在CPU內(nèi)部,具有 將由軟件指定的虛設(shè)地址轉(zhuǎn)換為實(shí)際物理地址的功能,使用該功能可以對 實(shí)際物理存儲器進(jìn)行訪問。通常在實(shí)際物理存儲器空間存在容量的限制, 虛擬存儲器的技術(shù)在可以大大展現(xiàn)可從軟件訪問的存儲器空間的方面是 非常有用的。再有,如上所述,由于實(shí)際物理存儲器中存在容量的限制, 故在每次需要軟件時,通過對應(yīng)當(dāng)存放于實(shí)際物理存儲器中的數(shù)據(jù)或軟件 進(jìn)行動態(tài)分配,從而可以有效使用較少的實(shí)際物理存儲器。
再有,在采用了之前所述的高速緩沖存儲器方式的情況下,通過將暫時訪問的存儲器數(shù)據(jù)取入到高速緩沖存儲器內(nèi),從而在接下來對相同地址 進(jìn)行訪問的情況下無需訪問存儲器,而通過對高速緩沖存儲器進(jìn)行訪問來 使提高存儲器性能。
這樣,在采用了 CPU的系統(tǒng)中,存儲器訪問容易成為瓶頸,提高存
儲器訪問性能變得非常重要。
還有,在對高速緩沖存儲器或存儲器進(jìn)行寫訪問時,通過具備數(shù)據(jù)覆
寫功能,從而可以實(shí)施寫訪問的高速化。寫入數(shù)據(jù)在2級高速緩沖存儲器 的控制電路內(nèi)部暫時被取入寫入緩沖器內(nèi)。若具備數(shù)據(jù)覆寫功能的寫入緩 沖器發(fā)生向與以前被寫入并仍殘留于寫入緩沖器內(nèi)的寫入數(shù)據(jù)相同的地 址組、例如相同高速緩沖存儲器線上的地址進(jìn)行寫訪問的情況,則在寫入 緩沖器內(nèi)進(jìn)行覆寫。由此,在不具備數(shù)據(jù)覆寫功能的寫入緩沖器內(nèi),不會 覆寫各個寫訪問,每次都在高速緩沖存儲器或存儲器中發(fā)生寫訪問,但在
具備數(shù)據(jù)覆寫功能的寫入緩沖器內(nèi)減少了寫訪問自身的訪問次數(shù),而且通 過將一個高速緩沖存儲器的寫訪問作為單一的業(yè)務(wù)(transaction)來處理, 從而能夠進(jìn)行高速的寫訪問(參照非專利文獻(xiàn)O。
非專利文獻(xiàn)lARM公司L220 Cache Controller Revision rlp4 Technical Reference Manual, 因特 網(wǎng)
〈http:〃www.arm.com/pdfs/DDI0329G—1220—rlp4_cc_trm.pdf〉
在如上所述采用了高速緩沖存儲器的半導(dǎo)體裝置中,可以減少對存儲 器的訪問,可以高速地動作。但是將圖像數(shù)據(jù)等輸出到液晶畫面等外部顯 示裝置的情況下,需要將數(shù)據(jù)存留在存儲器等的幀緩沖器中,而不是存留 在高速緩沖存儲器中。此時,在裝載了2級高速緩沖存儲器的半導(dǎo)體裝置 中,必須向存儲器傳輸數(shù)據(jù),而不使用2級高速緩沖存儲。
再有,在使用存儲器的CPU以外的主功能塊與CPU之間有時共用存 儲器上的數(shù)據(jù)。此時,通常不使用高速緩沖功能,而是通過將來自CPU 的寫入數(shù)據(jù)直接寫入存儲器,從而保持與主功能塊的數(shù)據(jù)的一致性 (coherency )。
此時,即使在不使用2級高速緩沖存儲器的情況下,寫入數(shù)據(jù)也需要 通過2級高速緩沖存儲器的控制電路,對這部分存儲器的訪問需要多余的 時鐘循環(huán)數(shù)。再有,在2級高速緩沖存儲器的控制電路中追加上述的數(shù)據(jù)覆寫功能, 會導(dǎo)致2級高速緩沖存儲器的控制電路的邏輯復(fù)雜化,難以使2級高速緩 沖存儲器的時鐘高速化。還有,相反為了提高2級高速緩沖存儲器的控制 電路的動作頻率,通過插入雙穩(wěn)態(tài)多諧振蕩器,從而會使對存儲器的訪問 等待時間(access latency)增加,因此無論如何都會使存儲器訪問性能降 低。
這樣,即使根據(jù)軟件的數(shù)據(jù)處理內(nèi)容追加了各種各樣的存儲器訪問功 能,也會使控制邏輯復(fù)雜化,結(jié)果無法提高存儲器訪問性能。
發(fā)明內(nèi)容
本發(fā)明為了解決上述課題,采取以下手段。
艮口,本發(fā)明的本質(zhì)在于分割配置于CPU與存儲器之間的2級高速緩
沖存儲器或數(shù)據(jù)覆寫功能、數(shù)據(jù)旁路功能等各種功能并進(jìn)行功能塊化,根 據(jù)模擬物理地址來選擇各功能塊中的任一個。
例如,在圖2中,從CPU10輸出的存儲器訪問是根據(jù)模擬物理地址A 來選擇第一功能塊51,用該第一功能塊51處理后的存儲器訪問是從模擬 物理地址A轉(zhuǎn)換為實(shí)際物理地址C,對存儲器40進(jìn)行訪問。再有,在從 CPU10有指示模擬物理地址B的存儲器訪問的情況下,由第二功能塊52 進(jìn)行處理后,轉(zhuǎn)換為實(shí)際物理地址C,進(jìn)行存儲器訪問。此時,實(shí)際物理 地址C在用第一及第二功能塊51、 52進(jìn)行轉(zhuǎn)換的情況下,可以各自轉(zhuǎn)換 為不同的地址區(qū)域,而無需表示相同的實(shí)際物理地址區(qū)域C。再有,即使 在實(shí)際物理空間相同的半導(dǎo)體裝置100中,其效果也是相同的。
再有,如圖3所示,在第二功能塊62中不進(jìn)行地址轉(zhuǎn)換,即使模擬 物理地址與實(shí)際物理地址相同,也可以發(fā)揮同樣的效果。該情況下大部分 處理由第二功能塊62來實(shí)施,在作為特殊又少見的用法而使用第一功能 塊61的情況等下,僅描述了一部分軟件的技術(shù)人員注意到該模擬物理地 址便能進(jìn)行系統(tǒng)構(gòu)筑,因此是有用的。
還有,在圖2及圖3中,在CPU10與存儲器30、 40之間需要設(shè)置使 數(shù)據(jù)讀出高速化的高速緩沖存儲器或使數(shù)據(jù)寫入處理高速化的數(shù)據(jù)覆寫 功能,但這些處理對于每個軟件而言所需的處理不同。如上所述,例如在對共用存儲器的訪問時或向外部顯示裝置的顯示時,不需要高速緩沖存儲 器,相反為了高速顯示而需要數(shù)據(jù)覆寫功能。再有,實(shí)際物理存儲器空間 內(nèi)在大小上存在限制,置于同一實(shí)際物理地址的數(shù)據(jù)或軟件被動態(tài)地改 變。
這意味著即使在同一實(shí)際物理地址中,隨著時間的推移來改變置于該 地址的軟件,此時各軟件所需的存儲器傳輸功能不同。
因此,首先根據(jù)模擬物理地址,從CPU10選擇各功能塊51、 52、 61、 62的訪問,通過各軟件所需的最佳功能塊。進(jìn)而,通過使各功能塊51、 52、 61、 62具備將模擬物理地址轉(zhuǎn)換為實(shí)際物理地址的功能,從而可以正 確地對實(shí)際存儲器30、 40進(jìn)行訪問。此時,也可以從在CPU內(nèi)部實(shí)現(xiàn)虛 擬存儲用的虛設(shè)地址轉(zhuǎn)換為模擬物理地址。
如上所述,由于有時在時間軸上在同一實(shí)際物理地址上配置不同的數(shù) 據(jù)或指令碼,故各功能塊51、 52、 61、 62利用根據(jù)不同的虛擬物理地址 生成同一實(shí)際物理地址的功能,僅改變虛擬物理地址,就可以改變通過的 功能塊,能夠?qū)ν粚?shí)際物理地址進(jìn)行訪問。
利用該使用模擬物理地址的方法,能夠?qū)⒐δ軌K內(nèi)部的控制特化為單 一的功能處理。由此,可以簡化各功能塊51、 52、 61、 62,可以提高其動 作頻率,無需插入多余的寄存器即可進(jìn)行高速動作。
另外,上述各功能塊中的從模擬物理地址向?qū)嶋H物理地址的轉(zhuǎn)換方法 可以是固定的,也可以動態(tài)地改變。還有,在功能塊之間位于同一實(shí)際物 理地址的數(shù)據(jù)被改變的情況下,只要在各功能塊之間進(jìn)行通信,以保證數(shù) 據(jù)的一致性即可。
如上所述,根據(jù)本發(fā)明,可以按照每個軟件使CPU的存儲器訪問性能 最佳化,能夠提高存儲器訪問性能。
圖1是現(xiàn)有技術(shù)中的存儲器訪問相關(guān)的框圖。
圖2是本發(fā)明中的存儲器訪問相關(guān)的框圖。
圖3是本發(fā)明中的存儲器訪問相關(guān)的其他框圖。
圖4是本發(fā)明實(shí)施方式中的存儲器訪問相關(guān)的框圖。圖5是本發(fā)明實(shí)施方式中的地址映射圖。
圖中IO—CPU, 15—地址譯碼器,20—2級高速緩沖存儲器,21 — 高速緩沖存儲器,22—控制電路,30、 40—實(shí)際存儲器,51、 52—功能塊, 61、 62 —功能塊,71—2級高速緩沖存儲器,72 —數(shù)據(jù)覆寫功能塊,73 — 旁路功能塊,100、 200 —半導(dǎo)體裝置。
具體實(shí)施例方式
以下,參照圖4及圖5,對采用本發(fā)明的半導(dǎo)體裝置進(jìn)行說明。 圖4是與本發(fā)明實(shí)施方式中存儲器訪問相關(guān)的框圖。在圖4中,作為
功能塊,示出了 2級高速緩沖存儲器71、數(shù)據(jù)覆寫功能塊72和旁路功能
塊73。
在數(shù)據(jù)覆寫功能塊72中,在同一地址空間中存在寫訪問的情況下, 可以將每個存儲器訪問進(jìn)行捆綁后作為一個存儲器傳輸來輸出。在同一地 址存在寫入的情況下,輸出最后寫入的數(shù)據(jù)。也就是說,是能覆寫數(shù)據(jù)的 功能塊。
作為旁路功能塊73,既不具有高速緩沖功能,也不具備數(shù)據(jù)覆寫功能, 是指僅對存儲器訪問地址進(jìn)行變換的功能塊。如上所述,實(shí)際物理空間可 以如實(shí)際存儲器30那樣位于與CPU10相同的半導(dǎo)體裝置100中,也可以 如實(shí)際存儲器40那樣位于與裝載CPU的半導(dǎo)體裝置不同的半導(dǎo)體裝置 200中。
圖5是本發(fā)明實(shí)施方式的地址映射圖,描述了虛設(shè)地址、模擬物理地 址、物理地址的對應(yīng)關(guān)系。
如圖5所示,在將"Ox"以下設(shè)為16進(jìn)制數(shù)標(biāo)記時,通過CPUIO內(nèi) 部的虛擬存儲機(jī)構(gòu)而存儲于虛設(shè)地址0x00000000號的數(shù)據(jù),被轉(zhuǎn)換為模 擬虛設(shè)地址0x10000000號。從CPU10輸出該模擬虛設(shè)地址0x10000000 號的地址,通過配置于CPU10和2級高速緩沖存儲器71及數(shù)據(jù)覆寫功能 塊72之間的地址譯碼器(參照圖2中的15),將數(shù)據(jù)傳輸?shù)綌?shù)據(jù)覆寫功能 塊72。也就是說,圖5中的模擬物理存儲器反射鏡區(qū)域(mirror area) A 是數(shù)據(jù)覆寫功能塊72所具有的地址空間。
再有,若由虛擬存儲機(jī)構(gòu)將虛設(shè)地址0x00000000號轉(zhuǎn)換為模擬虛設(shè)地址0x90000000號,則將數(shù)據(jù)送往2級高速緩沖存儲器71,而不是送往 數(shù)據(jù)覆寫功能塊72。圖5中的模擬物理存儲器區(qū)域A意味著2級高速緩 沖存儲器71的通過。
在將數(shù)據(jù)傳送到數(shù)據(jù)覆寫功能塊72的情況下,若該功能塊72內(nèi)位于 同一地址組的數(shù)據(jù)存在于寫入緩沖器中,則后寫入的數(shù)據(jù)在寫入緩沖內(nèi)覆 寫在之前已經(jīng)存在的數(shù)據(jù)上。而且,若從寫入緩沖器進(jìn)行讀出,則后寫入 的數(shù)據(jù)與原來就存在于寫入緩沖器內(nèi)的數(shù)據(jù)一起被寫入存儲器30、 40中。 此時,寫入到存儲器30、 40中的地址,轉(zhuǎn)換為物理地址0x90000000后被 寫入。也就是說, 一邊進(jìn)行從虛設(shè)地址0x00000000號向模擬物理地址 0x10000000號、而且向物理地址0x90000000的地址轉(zhuǎn)換, 一邊將數(shù)據(jù)寫 入存儲器30、 40中。
還有,2級高速緩沖存儲器71和數(shù)據(jù)覆寫功能塊72各自具有高速緩 沖存儲器和寫入緩沖器,為了從這些數(shù)據(jù)保持機(jī)構(gòu)明確地將數(shù)據(jù)送往存儲 器30、 40,而保持由軟件能夠進(jìn)行訪問的寄存器。通過對該寄存器進(jìn)行訪 問,從而能夠?qū)埓嬗?級高速緩沖存儲器71或數(shù)據(jù)覆寫功能塊72中數(shù) 據(jù)可靠地轉(zhuǎn)送到存儲器30、 40。另外,即使寄存器不存在,只要能夠明確 地從軟件中將數(shù)據(jù)吐出,就可以發(fā)揮同樣的效果。
如圖5所示,虛擬存儲機(jī)構(gòu)從虛設(shè)地址0x00000000號變換為模擬物 理地址0x90000000號,在對2級高速緩沖存儲器71進(jìn)行了訪問的情況下, 最終也能與數(shù)據(jù)覆寫功能塊72同樣地對物理地址0x90000000號進(jìn)行訪 問。
由此,即使在用多個軟件一邊更換同一地址的物理存儲器一邊使用的 情況下,根據(jù)每個軟件的特色,選擇2級高速緩沖存儲器71或數(shù)據(jù)覆寫 功能塊72,就能夠最大限度地發(fā)揮性能。這是因?yàn)槔密浖诟咚倬?沖功能來提高性能,相反根據(jù)數(shù)據(jù)覆寫功能而提高性能。
再有,從模擬物理地址向物理地址的轉(zhuǎn)換方法,通過設(shè)為能從軟件上 進(jìn)行變更,從而也能進(jìn)行靈活的地址轉(zhuǎn)換。例如,通過以使模擬物理地址 0x10000000轉(zhuǎn)換為物理地址0x90000000,或同樣地使模擬物理地址 0x10000000轉(zhuǎn)換為物理地址OxAOOOOOOO的方式由軟件進(jìn)行變更,從而能 夠在物理存儲器30、 40更少的情況下,能夠有效地進(jìn)行地址變更。相反通過以硬件唯一確定地址變更,從而作為硬件來說較小,無需插 入多余的雙穩(wěn)態(tài)多諧振蕩器,就可以使存儲器訪問性能提高。
另外,在此雖然對地址使用固有值并進(jìn)行了具體說明,但當(dāng)然應(yīng)該明 白對所記載的地址以外的地址而言,也具有同樣的效果。
(工業(yè)上的可利用性) 如以上所說明的,本發(fā)明涉及的電路技術(shù)具有提高存儲器訪問性能的 功能,作為高速數(shù)據(jù)處理裝置等是有用的。
權(quán)利要求
1.一種半導(dǎo)體裝置,其具有對存儲器進(jìn)行訪問的CPU,該半導(dǎo)體裝置具有兩個以上的將來自所述CPU的模擬物理地址轉(zhuǎn)換為實(shí)際物理地址的功能塊,從所述CPU向所述存儲器的訪問通過所述功能塊中的至少一個功能塊,利用所述模擬物理地址來選擇所述功能塊,利用所述實(shí)際物理地址來選擇所述存儲器。
2. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 所述存儲器內(nèi)置于所述半導(dǎo)體裝置或設(shè)置在所述半導(dǎo)體裝置之外。
3. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于,所述CPU內(nèi)部具有將虛設(shè)地址轉(zhuǎn)換為所述模擬物理地址的機(jī)構(gòu)。
4. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于,不同的所述模擬物理地址由不同的所述功能塊進(jìn)行轉(zhuǎn)換,能夠生成相 同的所述物理地址。
5. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 能夠動態(tài)地改變所述功能塊中的從所述模擬物理地址向所述實(shí)際物理地址的轉(zhuǎn)換方法。
6. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 無法改變所述功能塊中的從所述模擬物理地址向所述實(shí)際物理地址的轉(zhuǎn)換方法。
7. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 該半導(dǎo)體裝置具有以下功能在所述功能塊之間改變了位于同一所述實(shí)際物理地址的數(shù)據(jù)的情況下,各功能塊之間進(jìn)行通信以保證數(shù)據(jù)的一致 性。
8. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 所述功能塊中的至少一個具有高速緩沖存儲器功能。
9. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于,所述功能塊中的至少一個在同一地址組產(chǎn)生了兩個以上訪問、即第一 寫訪問與第二寫訪問的情況下,將所述第二寫訪問以后的寫訪問和所述第 一寫訪問作為對所述存儲器的1個寫訪問而產(chǎn)生寫訪問。
10. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于,所述功能塊中的至少一個僅實(shí)施從所述模擬物理地址向所述實(shí)際物 理地址的轉(zhuǎn)換。
11. 根據(jù)權(quán)利要求1所述的半導(dǎo)體裝置,其特征在于, 所述功能塊中的至少一個能夠使保持于所述功能塊內(nèi)部的數(shù)據(jù)向所述存儲器吐出。
全文摘要
若在一個控制電路中具有每個軟件處理所需的存儲器訪問功能,則導(dǎo)致電路復(fù)雜化、動作頻率無法提高,或者增加存儲器訪問中的循環(huán)數(shù)。本發(fā)明提供一種半導(dǎo)體裝置,其中在從CPU(10)向存儲器(30、40)的訪問中使用模擬物理地址。根據(jù)該模擬物理地址,選擇每個軟件處理所需的功能塊(71、72、73),用所選出的功能塊進(jìn)行向?qū)嶋H物理地址的地址轉(zhuǎn)換。通過與CPU(10)并列地具有存儲器訪問功能,從而實(shí)施對每個軟件而言最佳的存儲器訪問處理,可以提高存儲器訪問性能,而不會進(jìn)一步導(dǎo)致動作頻率下降,或增加存儲器訪問中的循環(huán)數(shù)。
文檔編號G06F12/10GK101303669SQ20081009199
公開日2008年11月12日 申請日期2008年4月15日 優(yōu)先權(quán)日2007年5月8日
發(fā)明者礒野貴亙 申請人:松下電器產(chǎn)業(yè)株式會社