專利名稱:高速緩沖存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于使處理器高速訪問存儲(chǔ)器的高速緩沖存儲(chǔ)器。
技術(shù)背景例如專利文獻(xiàn)1及非專利文獻(xiàn)1中公開了犧牲高速緩沖存儲(chǔ)器(victim cache),犧牲高速緩沖存儲(chǔ)器是用于減少高速緩存未命中的一 種技術(shù)。圖1是方框圖,示出了一般技術(shù)中具有犧牲高速緩沖存儲(chǔ)器的系 統(tǒng)的例子。該圖的系統(tǒng)具有CPU501、高速緩沖存儲(chǔ)器502、全關(guān) 聯(lián)(fully associative)式的犧牲高速緩沖存儲(chǔ)器503。犧牲高速緩沖存 儲(chǔ)器503至少具有1個(gè)項(xiàng)目,該項(xiàng)目保持標(biāo)簽地址和線數(shù)據(jù)(line data)。若高速緩沖存儲(chǔ)器502及犧牲高速緩沖存儲(chǔ)器503中產(chǎn)生未命中 時(shí),高速緩沖存儲(chǔ)器502則根據(jù)LRU(Least Recently Used最近最 少使用)選擇最老的項(xiàng)目作為置換對(duì)象。選擇的項(xiàng)目被置換之前,該項(xiàng) 目的內(nèi)容從高速緩沖存儲(chǔ)器502傳送到犧牲高速緩沖存儲(chǔ)器503。以 此來更新犧牲高速緩沖存儲(chǔ)器503項(xiàng)目。之后,置換高速緩沖存儲(chǔ)器 502中的被選擇的項(xiàng)目。其結(jié)果,犧牲高速緩沖存儲(chǔ)器503總是保持高速緩沖存儲(chǔ)器502 最后清除的至少l個(gè)線數(shù)據(jù)。據(jù)此,CPU501再次訪問高速緩沖存儲(chǔ)器502清除的數(shù)據(jù)的情況 下,因?yàn)闋奚咚倬彌_存儲(chǔ)器503命中的可能性高,所以減少由高速 緩存訪問失敗而產(chǎn)生的損失(penalty)。 尤其是,訪問以下數(shù)據(jù)的情況下,艮卩,時(shí)間的局部性(被訪問的數(shù) 據(jù),近期容易被訪問的性質(zhì))非常強(qiáng)、集中在極短期間、且空間的局部 性(訪問數(shù)據(jù)附近的數(shù)據(jù),近期容易被訪問的性質(zhì))也很強(qiáng)、封閉在極 小的區(qū)域中的數(shù)據(jù),訪問該數(shù)據(jù)時(shí),原來保持的數(shù)據(jù)保持在犧牲高速緩沖存儲(chǔ)器503的可能性高,所以減少高速緩存訪問失敗損失的效果 好。專利文獻(xiàn)1 :美國專利第5261066號(hào)說明書非專禾!j文獻(xiàn)1 : Jouppi, N. P.[1990〗,"Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers,"Proc.l7th Annual Int'l Symposium on Computer Architecture,364-73然而,根據(jù)上述一般技術(shù),存在這樣的問題例如,按照空間局 部性強(qiáng)、時(shí)間局部性弱的順序訪問數(shù)據(jù)的情況下,會(huì)發(fā)生多起高速緩 存訪問失敗,且高速緩沖存儲(chǔ)器的使用效率下降。上述空間局部性強(qiáng)、 時(shí)間局部性弱的數(shù)據(jù)是指,例如在數(shù)字信號(hào)處理的過濾器的系數(shù)的排 列數(shù)據(jù)等CPU按照順序訪問的數(shù)據(jù)。在排列數(shù)據(jù)比高速緩沖項(xiàng)目的容量大的情況下,或者在存在多個(gè) 排列數(shù)據(jù)的情況下,當(dāng)CPU按順序訪問排列數(shù)據(jù)時(shí),因?yàn)楦咚倬彌_ 存儲(chǔ)器的多個(gè)項(xiàng)目要保持排列數(shù)據(jù),所以發(fā)生置換。其結(jié)果是,高速緩沖存儲(chǔ)器的一部分或者大部分的項(xiàng)目被排列數(shù) 據(jù)所占有,高速緩沖存儲(chǔ)器的原來保持的數(shù)據(jù)被清除,所以存在如下 問題,與排列數(shù)據(jù)的命中率提高相反,原來保持的數(shù)據(jù)的命中率下降。 在這種情況下,高速緩存再次保持原來保持的數(shù)據(jù),則發(fā)生高速緩沖 項(xiàng)目被置換的損失,從而導(dǎo)致高速緩沖存儲(chǔ)器的使用效率下降。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種高速緩沖存儲(chǔ)器,該高速緩沖存儲(chǔ)器 不僅對(duì)時(shí)間局部性強(qiáng)集中在極短期間、且空間局部性也很強(qiáng)封閉在極 器訪問效率,而且對(duì)空間局部性強(qiáng)、且時(shí)間 局部性弱的數(shù)據(jù)也能提高存儲(chǔ)器訪問效率,進(jìn)而提高高速緩沖存儲(chǔ)器 整體的使用效率。為了達(dá)到上述目的,本發(fā)明的高速緩沖存儲(chǔ)器包括第l高速緩沖存儲(chǔ)器;第2高速緩沖存儲(chǔ)器,與第l高速緩沖存儲(chǔ)器并行工作; 判定單元,在第1高速緩沖存儲(chǔ)器及第2高速緩沖存儲(chǔ)器二者未命中 的情況下判定有關(guān)屬性的真假,該屬性是未命中的存儲(chǔ)器訪問對(duì)象數(shù) 據(jù)的屬性;以及控制單元,在被判定是真的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ) 到第2高速緩沖存儲(chǔ)器,在被判定是假的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到 第1高速緩沖存儲(chǔ)器。根據(jù)該結(jié)構(gòu),因?yàn)榘凑张c存儲(chǔ)器訪問對(duì)象數(shù)據(jù)的屬性相關(guān)的真假 來使用不同的高速緩沖存儲(chǔ)器,所以實(shí)現(xiàn)了根據(jù)上述屬性對(duì)高速緩存 進(jìn)行物理上的分離,并實(shí)現(xiàn)了按地址進(jìn)行不均勻地高速緩沖存儲(chǔ)。而 且,第1高速緩沖存儲(chǔ)器的數(shù)據(jù)不會(huì)被上述判定為真屬性的數(shù)據(jù)所置 換,所以能夠提高第l高速緩沖存儲(chǔ)器的使用效率。在此,也可以是,上述訪問的數(shù)據(jù)的屬性是訪問地址;上述判定 單元判定上述訪問地址是否在指定的地址范圍內(nèi)。根據(jù)該結(jié)構(gòu),使地址范圍與存儲(chǔ)空間局部性強(qiáng)且時(shí)間局部性弱的 數(shù)據(jù)的存儲(chǔ)器區(qū)域相對(duì)應(yīng),從而使空間局部性強(qiáng)且時(shí)間局部性弱的數(shù) 據(jù)保持在第2高速緩沖存儲(chǔ)器。在此,將第1高速緩沖存儲(chǔ)器設(shè)為通 用結(jié)構(gòu),將第2高速緩沖存儲(chǔ)器設(shè)為尤其對(duì)空間局部性強(qiáng)且時(shí)間局部 性弱的數(shù)據(jù)有利的結(jié)構(gòu),使第2高速緩沖存儲(chǔ)器對(duì)空間局部性強(qiáng)且時(shí) 間局部性弱的數(shù)據(jù)的存儲(chǔ)器訪問效率提高。而且,設(shè)成通用結(jié)構(gòu)的第 1高速緩沖存儲(chǔ)器的數(shù)據(jù),不會(huì)被空間局部性強(qiáng)且時(shí)間局部性弱的數(shù) 據(jù)所置換,所以能夠提高第l高速緩沖存儲(chǔ)器的使用效率。據(jù)此,可 以提高高速緩沖存儲(chǔ)器整體的使用效率。在此,也可以是,上述第2高速緩沖存儲(chǔ)器的容量小于上述第1 高速緩沖存儲(chǔ)器。
在此,也可以是,上述第1高速緩沖存儲(chǔ)器是集聯(lián)高速緩沖存儲(chǔ)器;上述第2高速緩沖存儲(chǔ)器是全關(guān)聯(lián)高速緩沖存儲(chǔ)器。在此,也可以是,上述第1高速緩沖存儲(chǔ)器具有N1個(gè)通路,上述第1高速緩沖存儲(chǔ)器的各通路具有N2個(gè)項(xiàng)目;上述第2高速緩沖存儲(chǔ)器具有M個(gè)項(xiàng)目;M小于N1,也小于N2。 在此,也可以是,上述M是2。根據(jù)該結(jié)構(gòu),第2高速緩沖存儲(chǔ)器的容量與第1高速緩沖存儲(chǔ)器 相比極其小,增加較少的硬件而不增加制作成本,就能夠提高高速緩 沖存儲(chǔ)器整體的使用效率。在此,也可以是,上述保持單元被處理器訪問。根據(jù)該結(jié)構(gòu),通過處理器可以將地址范圍設(shè)定為可編程。另外,高速緩存訪問失敗時(shí),將訪問數(shù)據(jù)放在第1高速緩沖存儲(chǔ) 器還是放在第2高速緩沖存儲(chǔ)器的判定,不局限于通過數(shù)據(jù)的地址來 判定,也可利用其他有關(guān)數(shù)據(jù)的屬性來判定。根據(jù)本發(fā)明的高速緩沖存儲(chǔ)器,實(shí)現(xiàn)了根據(jù)地址空間對(duì)高速緩存 進(jìn)行物理上的分離,并實(shí)現(xiàn)了按地址進(jìn)行不均勻地高速緩沖存儲(chǔ),而 且,第1高速緩沖存儲(chǔ)器的數(shù)據(jù)不會(huì)被上述地址范圍內(nèi)的存儲(chǔ)器數(shù)據(jù) 所置換,所以能夠提高第l高速緩沖存儲(chǔ)器的使用效率。例如,通過提高第1高速緩沖存儲(chǔ)器的使用效率,來提高高速緩 沖存儲(chǔ)器整體的使用效率。進(jìn)而,增加較少的硬件,不增加制作成本,就能夠提高高速緩沖 存儲(chǔ)器整體的使用效率。另外,通過處理器可以將地址表范圍設(shè)定為可編程。
圖1是示出了一般技術(shù)中具有犧牲高速緩沖存儲(chǔ)器的系統(tǒng)的例子 的方框圖。圖2是示出了實(shí)施例1的高速緩沖存儲(chǔ)器的結(jié)構(gòu)方框圖。
圖3是示出了數(shù)據(jù)項(xiàng)目的結(jié)構(gòu)說明圖。 圖4是示出了主高速緩存內(nèi)的地址項(xiàng)目的結(jié)構(gòu)說明圖。 圖5是示出了子高速緩存內(nèi)的地址項(xiàng)目的結(jié)構(gòu)說明圖。 圖6是示出了地址表的地址項(xiàng)目的結(jié)構(gòu)說明圖。 圖7是示出了用于設(shè)定表項(xiàng)目寄存器的程序例說明圖。 圖8是示出了設(shè)有子高速緩存屬性的存儲(chǔ)器區(qū)域和子高速緩存2 的關(guān)系說明圖。圖9是示出了對(duì)各數(shù)據(jù)的存儲(chǔ)器訪問次數(shù)的對(duì)應(yīng)關(guān)系的特點(diǎn) (pattern)的一個(gè)示例圖。圖10是示出了處理器訪問存儲(chǔ)器時(shí)控制部6控制高速緩沖存儲(chǔ) 器的工作流程圖。圖11是示出了實(shí)施例2的高速緩沖存儲(chǔ)器的結(jié)構(gòu)方框圖。符號(hào)說明1000高速緩沖存儲(chǔ)器1主高速緩存2子高速緩存3地址寄存器4地址表5比較器6控制部00通路15通路0000項(xiàng)目0000a地址項(xiàng)目0000d數(shù)據(jù)項(xiàng)目0015a地址項(xiàng)目0015d數(shù)據(jù)項(xiàng)目器 165比較器 170總線I/F 20通路 21通路 200項(xiàng)目 200a地址項(xiàng)目 200d數(shù)據(jù)項(xiàng)目 201a地址項(xiàng)目 201d數(shù)據(jù)項(xiàng)目具體實(shí)施方式
(實(shí)施例1)圖2是示出了實(shí)施例1的高速緩存系統(tǒng)的結(jié)構(gòu)方框圖。如該圖所 示,高速緩沖存儲(chǔ)器1000包括主高速緩存1、子高速緩存2、地址 寄存器3、地址表4、比較器5、控制部6,其構(gòu)成是將地址表4設(shè)定 的地址范圍內(nèi)的數(shù)據(jù)存到第2高速緩沖存儲(chǔ)器,將地址范圍外的數(shù)據(jù) 存到第1高速緩沖存儲(chǔ)器。主高速緩存1是集聯(lián)(Set Associative搞速緩沖存儲(chǔ)器,其包括 通路00至通路15的16個(gè)通路、解碼器120、比較器150至比較器 165的16個(gè)比較器、總線I/F170。通路00包括項(xiàng)目0000至項(xiàng)目0015 的16個(gè)項(xiàng)目。通路01至通路15與通路00相同,所以省略說明。項(xiàng)目0000包括用于保持標(biāo)簽地址的地址項(xiàng)目OOOOa、用于保 持線數(shù)據(jù)的數(shù)據(jù)項(xiàng)目OOOOd。項(xiàng)目0001至0015與項(xiàng)目0000是相同 的結(jié)構(gòu),所以省略說明。解碼器120對(duì)地址寄存器3保持的存儲(chǔ)器訪問地址中的一部分(被 稱為組索引)進(jìn)行解碼,從通路00至通路15的16個(gè)通路中各選擇1 個(gè)項(xiàng)目。從各通路中各選擇1個(gè)項(xiàng)目組成的16個(gè)項(xiàng)目稱為組。所選 擇的16個(gè)項(xiàng)目將保持在各地址項(xiàng)目的標(biāo)簽地址輸出到比較器150至 165。比較器150是對(duì)應(yīng)通路00來設(shè)置的,該比較器150比較解碼器 120選擇的項(xiàng)目輸出的有效標(biāo)簽地址和從地址寄存器3輸出的標(biāo)簽, 當(dāng)二者一致的情況下將命中信號(hào)輸出至控制部6,該命中信號(hào)示出命 中了通路00。該標(biāo)簽地址是否有效取決于從該項(xiàng)目輸出的有效位 (valid bit)。即,僅在有效位示出有效的情況下,比較器150輸出比 較結(jié)果。比較器151至比較器165除了與通路01至15對(duì)應(yīng)之外與 比較器150相同,所以省略說明??偩€I/F170是接口 ,其用于在命中的項(xiàng)目中的數(shù)據(jù)項(xiàng)目和數(shù)據(jù)總 線之間輸入數(shù)據(jù)和輸出數(shù)據(jù),該命中的數(shù)據(jù)存在于解碼器120選擇的 組中。子高速緩存2是全關(guān)聯(lián)高速緩沖存儲(chǔ)器,其包括通路20、通路 21、比較器250、比較器251、總線I/F270。通路20具有1個(gè)項(xiàng)目200。該項(xiàng)目200包括用于保持標(biāo)簽地 址的地址項(xiàng)目200a以及用于保持線數(shù)據(jù)的數(shù)據(jù)項(xiàng)目200d。通路21也具有相同的結(jié)構(gòu),所以省略說明。比較器250是對(duì)應(yīng)通路20來設(shè)置的,該比較器250比較從地址 項(xiàng)目200a輸出的有效標(biāo)簽地址和從地址寄存器3輸出的地址部分(標(biāo) 簽和組索引),當(dāng)二者一致的情況下將命中信號(hào)輸出到控制部6,該命 中信號(hào)示出命中了通路20。該地址部分是否有效取決于從該項(xiàng)目輸出 的有效位。即,僅在有效位示出有效的情況下,比較器250輸出比較 結(jié)果。比較器251除了與通路21對(duì)應(yīng)之外與比較器250相同,所以 省略說明。地址寄存器3保持從處理器輸出的存儲(chǔ)器訪問地址。在該圖示出 的例子中,地址寄存器3是32位長。并且同時(shí)標(biāo)有位的加權(quán)。地址 寄存器3中的標(biāo)簽及組索引(位31 7)可確定128字節(jié)的線數(shù)據(jù)。組
索引(位10 7)可確定16個(gè)組中的1組。子線地址(SL:位6、 5)確定 線數(shù)據(jù)中4個(gè)子線中的1個(gè)子線。字節(jié)地址(byte一A)確定子線中的1 個(gè)字節(jié)數(shù)據(jù)。地址表4使示出地址范圍的信息和高速緩存屬性相對(duì)應(yīng)地來保 持,該高速緩存屬性示出是否使用子高速緩存2。該地址范圍的信息 被處理器所設(shè)定,該信息示出應(yīng)該使用子高速緩存2的數(shù)據(jù)的地址范 圍。在第1高速緩沖存儲(chǔ)器及第2高速緩沖存儲(chǔ)器二者未命中的情況 下,比較器5比較以下二者示出保持在地址表4的地址范圍的信息 和從地址寄存器3輸出的地址部分。據(jù)此,比較器5判定未命中的存 儲(chǔ)器訪問地址是否在上述地址范圍內(nèi)。主高速緩存l及子高速緩存2中在發(fā)生高速緩存未命中的情況下, 并且根據(jù)比較器5判定存儲(chǔ)器訪問地址是在上述地址范圍內(nèi)時(shí),控制 部6將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第2高速緩沖存儲(chǔ)器;當(dāng)判定存儲(chǔ)器訪問地 址不在上述地址范圍內(nèi)時(shí),將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第1高速緩沖存儲(chǔ)器。圖3是示出了數(shù)據(jù)項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)說明圖,該數(shù)據(jù)項(xiàng)目是主高速 緩存1及子高速緩存2的數(shù)據(jù)項(xiàng)目。各數(shù)據(jù)項(xiàng)目保持128字節(jié)的線數(shù) 據(jù)。l個(gè)線數(shù)據(jù)分割為4個(gè)子線數(shù)據(jù),子線數(shù)據(jù)1 子線數(shù)據(jù)4。因?yàn)?是這種結(jié)構(gòu),所以可以以線數(shù)據(jù)單位、子線數(shù)據(jù)單位的任一單位來進(jìn) 行回寫(writeback)、置換等高速緩沖操作。圖4是示出主高速緩存1的地址項(xiàng)目的結(jié)構(gòu)說明圖。標(biāo)簽地址與 地址寄存器3的標(biāo)簽相對(duì)應(yīng)。有效位V1 V4與子線數(shù)據(jù)1 4相對(duì) 應(yīng),該有效位示出對(duì)應(yīng)的子線數(shù)據(jù)有效或者無效。臟位(Dirty Bit)Dl D4對(duì)應(yīng)子線數(shù)據(jù)1 4,該臟位示出對(duì)應(yīng)的子線數(shù)據(jù)是否有過處理器的寫入。LRU(Least Recently Used最近最少使用)位L示出處理器訪問 組內(nèi)16個(gè)項(xiàng)目的順序。正確表示1號(hào) 16號(hào)為止的訪問順序本來至 少需要4位,不過,這里用1位的LRU位對(duì)組內(nèi)每個(gè)項(xiàng)目進(jìn)行表示,
即用1號(hào)(新)和2號(hào)(舊)來表示兩個(gè)訪問順序。選擇置換對(duì)象時(shí),在 LRU位L為2號(hào)(舊)的項(xiàng)目中選擇一個(gè)項(xiàng)目。
弱位(Weak Bit)W示出在組內(nèi)16個(gè)項(xiàng)目中可以置換的項(xiàng)目,換 言之就是對(duì)訪問順序強(qiáng)制進(jìn)行最老化的位。弱位W為l(最老)的項(xiàng)目, 不管其LRU位,即被選擇為置換對(duì)象。
圖5是示出了子高速緩存2的地址項(xiàng)目結(jié)構(gòu)說明圖。標(biāo)簽地址與 地址寄存器3的位31 7(標(biāo)簽及組索引)相對(duì)應(yīng)。有效位V1 V4、臟 位D1 D4、以及LRU位L與圖4相同,所以省略說明。
圖6是示出了地址表4中包含的表項(xiàng)目寄存器結(jié)構(gòu)說明圖。地址 表4至少包括1個(gè)表項(xiàng)目寄存器。該圖的表項(xiàng)目寄存器TER1保持基 地址BA、頁面大小PS、子高速緩存屬性SC、有效位V?;刂稡A 示出地址范圍的開頭。頁面大小PS示出該地址范圍的大小(存儲(chǔ)器區(qū) 域大小)。該圖的例子中,若PS-00則地址范圍的大小是4k字節(jié),若 PS-10則是128k字節(jié),若PS=11則是4M字節(jié)。子高速緩存屬性 SC示出是否將與該地址范圍相對(duì)應(yīng)的存儲(chǔ)器數(shù)據(jù)賦予到子高速緩存 2。有效位示出表項(xiàng)目寄存器TER1是否有效。表項(xiàng)目寄存器可以從 處理器直接寫入及讀出。
圖7是程序例的說明圖,該程序是在地址表4的表項(xiàng)目寄存器 TER1中設(shè)定的程序。在該圖中第1行及第2行的"equ"是對(duì)匯編程序 (assembler)的模擬命令,該匯編程序用于定義變數(shù)的值。各行的"〃" 以下表示注釋(comment)。在第1行將表項(xiàng)目寄存器TER1的地址定 義為變數(shù)ADR—TER1的值。在第2行將表項(xiàng)目寄存器TER1中應(yīng)該 設(shè)定的數(shù)據(jù)(0x90002205)定義為變數(shù)DAT—TER1的值。在該例子中, 基地址BA表示0x90002000號(hào),頁面大小PS表示10(128k字節(jié)), 子高速緩存屬性SC表示l(到子高速緩存),有效位V表示l(有效)。 第6行的mov命令是將變數(shù)ADR—TER1的值傳送到寄存器r28的命 令。第7行的mov命令是將變數(shù)DAT—TER1的值傳送到寄存器r29 的命令。第8行的st命令是將寄存器r28的內(nèi)容作為地址寫入寄存器
r29的數(shù)據(jù)的命令。據(jù)此,在表項(xiàng)目寄存器TER1設(shè)定變數(shù) DAT一TER1的值。
圖8是示出了設(shè)有子高速緩存屬性的存儲(chǔ)器區(qū)域和子高速緩存2 之間的關(guān)系說明圖。該圖示出了根據(jù)圖7的程序例對(duì)子高速緩存賦予 的存儲(chǔ)器區(qū)域。即,從基地址BA(0x90002000號(hào))開始的大小為頁面 大小PS(128k字節(jié))為止的存儲(chǔ)器區(qū)域的存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到子高速緩 存2,而不存儲(chǔ)到主高速緩存1。該存儲(chǔ)器區(qū)域適合存儲(chǔ)空間局部性 強(qiáng)而時(shí)間局部性弱的數(shù)據(jù),例如排列數(shù)據(jù)A、 B等。而且,該存儲(chǔ)器 區(qū)域以外的區(qū)域的存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到主高速緩存1。
而且,以下數(shù)據(jù)適合被存儲(chǔ)時(shí)間局部性強(qiáng)并訪問集中在極短期 間、且空間局部性也強(qiáng)并封閉在小區(qū)域(例如,行(line)的大小以下或 者子高速緩存2的大小以下)的數(shù)據(jù)。
圖9是示出了存儲(chǔ)器訪問各數(shù)據(jù)的次數(shù)的特點(diǎn)的一個(gè)例子的圖。 該圖示出了例如動(dòng)畫的壓縮及恢復(fù)處理中訪問各數(shù)據(jù)的次數(shù)。在圖示 情況下可知存在這樣的傾向,訪問次數(shù)少的數(shù)據(jù)廣泛存在,相反多數(shù) 訪問集中在少數(shù)數(shù)據(jù)中。于是,利用該傾向可有效地使用主高速緩存 l及子高速緩存2,例如,對(duì)子高速緩存2賦予訪問次數(shù)少而廣泛存 在的數(shù)據(jù)區(qū)域,對(duì)主高速緩存1賦予訪問次數(shù)多且主高速緩存1可容 納的數(shù)據(jù)區(qū)域。
圖10是流程圖,其示出了處理器訪問存儲(chǔ)器時(shí)控制部6控制高 速緩沖存儲(chǔ)器的工作流程。該圖中的控制部6在存儲(chǔ)器訪問命中的情 況下,即保持存儲(chǔ)器訪問地址的地址寄存器3的標(biāo)簽和保持在主高速 緩存1或者子高速緩存2任一處的標(biāo)簽地址一致的情況下(S91為 "是"),對(duì)該命中的項(xiàng)目進(jìn)行讀或者寫(S92)。
在存儲(chǔ)器訪問未命中的情況下,當(dāng)存儲(chǔ)器訪問地址在地址表4示 出的地址范圍內(nèi)(S93為"是")、并且該地址范圍是賦予在子高速緩 存的地址范圍(S94為"是")時(shí),子高速緩存2的項(xiàng)目被置換,并且 該項(xiàng)目被訪問(S95)。當(dāng)存儲(chǔ)器訪問地址在地址表4示出的地址范圍之
外(S93為"否"),或者該地址范圍不是賦予在子高速緩存的地址范 圍(S94為"否")時(shí),主高速緩存1的項(xiàng)目被置換,并且該項(xiàng)目被訪 問(S95)。
如上述說明,根據(jù)本實(shí)施例的高速緩沖存儲(chǔ)器按照存儲(chǔ)器數(shù)據(jù)是 否是地址表4設(shè)定的地址范圍內(nèi)的數(shù)據(jù),來使用不同的高速緩沖存儲(chǔ) 器,所以實(shí)現(xiàn)了根據(jù)地址空間在物理上分離高速緩存,并且實(shí)現(xiàn)了按 照地址進(jìn)行不均勻地高速緩沖存儲(chǔ)。主高速緩存1不會(huì)因?yàn)樯鲜龅刂?范圍內(nèi)的存儲(chǔ)器數(shù)據(jù)而被置換,所以可提高主高速緩存1的使用效率。
例如,可使地址表4中設(shè)定的地址范圍與存儲(chǔ)空間局部性強(qiáng)而時(shí) 間局部性弱的數(shù)據(jù)的存儲(chǔ)器區(qū)域相對(duì)應(yīng),從而使空間局部性強(qiáng)而時(shí)間 局部性弱的數(shù)據(jù)保持在子高速緩存2中,除此以外的數(shù)據(jù)保持在主高 速緩存1。其結(jié)果是,可以提高對(duì)空間局部性強(qiáng)而時(shí)間局部性弱的數(shù) 據(jù)的存儲(chǔ)器訪問效率。進(jìn)而,主高速緩存1的數(shù)據(jù)不會(huì)被空間局部性 強(qiáng)而時(shí)間局部性弱的數(shù)據(jù)所置換,所以能夠提高第l高速緩沖存儲(chǔ)器 的使用效率。據(jù)此,能夠提高高速緩沖存儲(chǔ)器整體的使用效率。
并且,比起主高速緩存1,子高速緩存2只需非常少的容量,增 加的硬件較少,所以不增加制作成本就能夠提高高速緩沖存儲(chǔ)器整體 的使用效率。
進(jìn)而,通過處理器將地址表4設(shè)定為可編程,從而可按照每個(gè)應(yīng) 用程序或者每個(gè)任務(wù)靈活使用主高速緩存1和子髙速緩存2。 另外,對(duì)地址表4可以進(jìn)行靜態(tài)賦予,而不設(shè)定為可編程。 下面對(duì)實(shí)施例1的高速緩沖存儲(chǔ)器的變形例進(jìn)行說明。 以上說明了主高速緩存1作為16通路集聯(lián)高速緩沖存儲(chǔ)器的情 況的例子,而也可以是n(n是除16以外的數(shù))通路集聯(lián)高速緩沖存儲(chǔ) 器。還有,以上說明了每個(gè)通路包括16項(xiàng)目的例子,而也可以包括 m(m是除16以外的數(shù))個(gè)項(xiàng)目。
子高速緩存2的項(xiàng)目數(shù)可以是兩個(gè)。為了限制硬件規(guī)模的增加, 以及限制硬件成本的增加,子高速緩存2的項(xiàng)目數(shù)可以是一個(gè)或者幾
個(gè)。
以上說明了主高速緩存l是集聯(lián)高速緩沖存儲(chǔ)器的例子,但也可以
是全關(guān)聯(lián)高速緩沖存儲(chǔ)器,或者是直接映射高速緩沖存儲(chǔ)器(direct map cache memory)。
子高速緩存2也可以是直接映射高速緩沖存儲(chǔ)器,或者是集聯(lián)高 速緩沖存儲(chǔ)器。
進(jìn)而,可以在主高速緩存l中附加圖l示出的犧牲高速緩沖存儲(chǔ) 器。并且,也可以在子高速緩存2中附加圖1示出的犧牲高速緩沖存 儲(chǔ)器。
(實(shí)施例2)
在本實(shí)施例中對(duì)包括2個(gè)子高速緩存的結(jié)構(gòu)進(jìn)行說明。 圖11是示出了實(shí)施例2的高速緩沖存儲(chǔ)器結(jié)構(gòu)方框圖。該圖的 高速緩沖存儲(chǔ)器2000與圖2示出的高速緩沖存儲(chǔ)器1000相比較不 同之處在于,新增加了子高速緩存2a、地址表4a、比較器5a,用控 制部6a來代替了控制部6。下面著重說明與圖2不同之處,相同之處 省略說明。
子高速緩存2a與子高速緩存2同樣是全關(guān)聯(lián)高速緩沖存儲(chǔ)器。 地址表4a保持地址范圍,該地址范圍示出向子高速緩存2 a賦予 的存儲(chǔ)器區(qū)域。
比較器5a判定地址寄存器3的標(biāo)簽是否包含在地址表4 a保持的 地址范圍中。
控制部6a除了具有控制部6的功能之外,還具有控制子高速緩 存2a的功能??梢允棺痈咚倬彺?a與子高速緩存2同時(shí)工作,也
可以按照應(yīng)用程序或者任務(wù)擇一工作。
根據(jù)本實(shí)施例的高速緩沖存儲(chǔ)器2000,可以使多個(gè)子高速緩存同 時(shí)或者擇一地工作,可按照應(yīng)用程序或者任務(wù)靈活運(yùn)用,可以提高高 速緩沖存儲(chǔ)器2000的使用效率。
另外,實(shí)施例1中說明的變化實(shí)施例在本實(shí)施例中也同樣適用。
本發(fā)明適于用于高速化存儲(chǔ)器訪問的高速緩沖存儲(chǔ)器(本發(fā)明適于高速訪問存儲(chǔ)器的高速緩沖存儲(chǔ)器),例如,適于單片(on-chip搞速 緩沖存儲(chǔ)器、芯片外(off-chip)高速緩沖存儲(chǔ)器、數(shù)據(jù)高速緩沖存儲(chǔ)器、 以及命令高速緩沖存儲(chǔ)器等。
權(quán)利要求
1、一種高速緩沖存儲(chǔ)器,其特征在于,包括第1高速緩沖存儲(chǔ)器;第2高速緩沖存儲(chǔ)器,與第1高速緩沖存儲(chǔ)器并行工作;判定單元,在第1高速緩沖存儲(chǔ)器及第2高速緩沖存儲(chǔ)器二者未命中的情況下判定有關(guān)屬性的真假,該屬性是未命中的存儲(chǔ)器訪問對(duì)象數(shù)據(jù)的屬性;以及控制單元,在被判定是真的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第2高速緩沖存儲(chǔ)器,在被判定是假的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第1高速緩沖存儲(chǔ)器。
2、 根據(jù)權(quán)利要求1所述的高速緩沖存儲(chǔ)器,其特征在于,上述 訪問的數(shù)據(jù)的屬性是訪問地址;上述判定單元判定上述訪問地址是否 在指定的地址范圍內(nèi)。
3、 根據(jù)權(quán)利要求2所述的高速緩沖存儲(chǔ)器,其特征在于,上述 高速緩沖存儲(chǔ)器還包括保持單元,以保持上述指定的地址范圍。
4、 根據(jù)權(quán)利要求3所述的任一個(gè)高速緩沖存儲(chǔ)器,其特征在于, 上述保持單元被處理器訪問。
5、 根據(jù)權(quán)利要求l所述的任一個(gè)高速緩沖存儲(chǔ)器,其特征在于, 上述第2高速緩沖存儲(chǔ)器的容量小于上述第1高速緩沖存儲(chǔ)器。
6、 根據(jù)權(quán)利要求5所述的高速緩沖存儲(chǔ)器,其特征在于,上述 第1高速緩沖存儲(chǔ)器是集聯(lián)高速緩沖存儲(chǔ)器;上述第2高速緩沖存儲(chǔ) 器是全關(guān)聯(lián)高速緩沖存儲(chǔ)器。
7、 根據(jù)權(quán)利要求5所述的高速緩沖存儲(chǔ)器,其特征在于,上述 第1高速緩沖存儲(chǔ)器具有Nl個(gè)通路,上述第1高速緩沖存儲(chǔ)器的各 通路具有N2個(gè)項(xiàng)目;上述第2高速緩沖存儲(chǔ)器具有M個(gè)項(xiàng)目;M小 于N1,也小于N2。
8、 根據(jù)權(quán)利要求7所述的高速緩沖存儲(chǔ)器,其特征在于,上述 M是2。
9、 根據(jù)權(quán)利要求8所述的任一個(gè)高速緩沖存儲(chǔ)器,其特征在于, 上述保持單元被處理器訪問。
10、 根據(jù)權(quán)利要求3所述的任一個(gè)高速緩沖存儲(chǔ)器,其特征在于, 上述第2高速緩沖存儲(chǔ)器的容量小于上述第1高速緩沖存儲(chǔ)器。
11、 根據(jù)權(quán)利要求10所述的高速緩沖存儲(chǔ)器,其特征在于,上 述第1高速緩沖存儲(chǔ)器是集聯(lián)高速緩沖存儲(chǔ)器;上述第2高速緩沖存 儲(chǔ)器是全關(guān)聯(lián)高速緩沖存儲(chǔ)器。
12、 根據(jù)權(quán)利要求10所述的高速緩沖存儲(chǔ)器,其特征在于,上 述第1高速緩沖存儲(chǔ)器具有Nl個(gè)通路,上述第1高速緩沖存儲(chǔ)器的 各通路具有N2個(gè)項(xiàng)目;上述第2高速緩沖存儲(chǔ)器具有M個(gè)項(xiàng)目;M 小于N1,也小于N2。
13、 根據(jù)權(quán)利要求12所述的高速緩沖存儲(chǔ)器,其特征在于,上 述M是2。
14、根據(jù)權(quán)利要求13所述的任一個(gè)高速緩沖存儲(chǔ)器,其特征在 于,上述保持單元被處理器訪問。
全文摘要
本發(fā)明的高速緩沖存儲(chǔ)器包括第1高速緩沖存儲(chǔ)器;并行工作的第2高速緩沖存儲(chǔ)器;判定單元,在第1高速緩沖存儲(chǔ)器及第2高速緩沖存儲(chǔ)器二者未命中的情況下判定有關(guān)屬性的真假,該屬性是未命中的存儲(chǔ)器訪問對(duì)象數(shù)據(jù)的屬性;以及控制單元,在被判定是真的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第2高速緩沖存儲(chǔ)器,在被判定是假的情況下將存儲(chǔ)器數(shù)據(jù)存儲(chǔ)到第1高速緩沖存儲(chǔ)器。
文檔編號(hào)G06F12/08GK101156139SQ20068001139
公開日2008年4月2日 申請(qǐng)日期2006年3月17日 優(yōu)先權(quán)日2005年4月8日
發(fā)明者中島雅逸, 中西龍?zhí)? 岡林葉月, 山本崇夫, 田中哲也, 金子圭介 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社