專利名稱:具備緩存窗口的多核體系架構(gòu)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及片上多處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別是涉及一種具備緩存窗口的多核體 系架構(gòu)及其實(shí)現(xiàn)方法。
背景技術(shù):
1965年Intel公司的創(chuàng)始人之一戈登摩爾在總結(jié)存儲(chǔ)器芯片的增長規(guī)律時(shí),發(fā)現(xiàn)"微芯 片上集成電路的晶體管數(shù)目每12個(gè)月翻一番",稱為"摩爾定律"。這條定律多次遇到挑 戰(zhàn)并被表述為每18個(gè)月翻一番,目前業(yè)界仍然在遵循了該規(guī)律。
當(dāng)前主流的工藝技術(shù)已經(jīng)到45nro甚至32nm的水平,已經(jīng)越來越逼近晶體管尺寸的極 限。如何才能使摩爾定律擺脫失效的命運(yùn),基于硅的集成電路技術(shù)是否能否進(jìn)一步發(fā)展, 取決于未來幾年內(nèi)硅技術(shù)能否有革命性的突破,或發(fā)展出嶄新的計(jì)算技術(shù)。為了延續(xù)摩爾 定律,多核技術(shù)應(yīng)運(yùn)而生,人們進(jìn)入了在一塊芯片上集成多片處理核的時(shí)代。
片上多處理器(CMP, Chip Multi-Processor)中相對簡單的處理核易于設(shè)計(jì),可重用性 高,便于測試和優(yōu)化。存在三種常見的片上并行處理方案超標(biāo)量計(jì)算機(jī),并行多線程和 最近興起的片上多處理器,通過在相應(yīng)的架構(gòu)上用標(biāo)準(zhǔn)的程序進(jìn)行測試,結(jié)果表明片上多 處理器無論在能耗和性能的提升上都有著無與倫比的優(yōu)勢。我們有理由相信,片上多處理 器的作用在未來并行計(jì)算的發(fā)展中會(huì)越來越重要。
同時(shí)硬件發(fā)展有內(nèi)存瓶頸,即處理器性能提高會(huì)大大高于內(nèi)存訪問的提高。 一級和二 級緩存的出現(xiàn)對于系統(tǒng)性能的提高是十分巨大的, 一定程度上緩解了單核處理器上核與存 儲(chǔ)器的速度差異。在緩存的結(jié)構(gòu)被提出后的20多年內(nèi),體系研究者們提出了無數(shù)改進(jìn)和優(yōu) 化緩存設(shè)計(jì)的方案,以試圖更好地彌補(bǔ)內(nèi)存存取速度和處理器處理速度之間巨大的落差, 計(jì)算機(jī)的整體性能也隨之突飛猛進(jìn)。
隨著多核的出現(xiàn),核作為處理器內(nèi)部高速器件,速度得到巨大提升,而與此同時(shí)存儲(chǔ) 器仍然徘徊在低速水平,因此多核體系結(jié)構(gòu)中的存儲(chǔ)結(jié)構(gòu),尤其是片上緩存的設(shè)計(jì),成為 多核中非常重要的單元。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種具備緩存窗口的多核體系架構(gòu)及
3其實(shí)現(xiàn)方法。
本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下
提供一種具備緩存窗口的多核體系架構(gòu),包括至少兩個(gè)并行的片上處理核,每個(gè)片上 處理核各自擁有自己獨(dú)立的一級緩存,并與其它的片上處理核一起共有一個(gè)共享的一級緩 存,即緩存窗口;所述緩存窗口和獨(dú)立的一級緩存分別與二級緩存連接。
作為一種改進(jìn),所述并行的片上處理核有四個(gè)。
作為本發(fā)明更進(jìn)一步的目的,還提供了一種基于前述具備緩存窗口的多核體系架構(gòu)的 實(shí)現(xiàn)方法,各片上處理核對于數(shù)據(jù)的訪問都是通過一級緩存進(jìn)行的,所有的私有數(shù)據(jù)都在 自己獨(dú)立的一級緩存里,共享的數(shù)據(jù)全部放在緩存窗口中,在執(zhí)行共享數(shù)據(jù)訪問的時(shí)候, 各片上處理核都是通過緩存窗口進(jìn)行的。
作為一種改進(jìn),當(dāng)任意一個(gè)片上處理核在請求數(shù)據(jù)的時(shí)候,同時(shí)向自己獨(dú)立的一級緩 存和共享的緩存窗口發(fā)出數(shù)據(jù)請求命令,任一個(gè)緩存中的命中都會(huì)導(dǎo)致數(shù)據(jù)的命中;只有 當(dāng)兩個(gè)緩存中都沒有數(shù)據(jù)的時(shí)候,才會(huì)出現(xiàn)一級緩存訪問失配的情況,此時(shí)就要訪問下層 的二級緩存。
作為一種改進(jìn),在一級緩存上加入一個(gè)寫標(biāo)志,當(dāng)有一個(gè)片上處理核在對一個(gè)數(shù)據(jù)塊 進(jìn)行改寫的時(shí)候,將寫標(biāo)志置為l;當(dāng)其它的片上處理核檢測到這個(gè)寫標(biāo)志位時(shí),暫時(shí)停止 對數(shù)據(jù)塊的寫信號,并等到寫信號位重新變?yōu)?的時(shí)候再進(jìn)行改寫,以保證數(shù)據(jù)寫的安全 性。
作為一種改進(jìn),當(dāng)一個(gè)片上處理核在一級緩存訪問失配的時(shí)候就向二級緩存中讀取數(shù) 據(jù);如果二級緩存的數(shù)據(jù)塊是單一的或已被修改的,表明當(dāng)前有且僅有一個(gè)片上處理核獨(dú) 立的一級緩存中擁有這個(gè)數(shù)據(jù),此時(shí)二級緩存可以通過査找其目錄,向相應(yīng)一級緩存的數(shù) 據(jù)塊發(fā)送確認(rèn)信息;如果此數(shù)據(jù)塊是未修改的,直接將這個(gè)數(shù)據(jù)塊置無效,并同時(shí)將二級 緩存中的數(shù)據(jù)發(fā)送到發(fā)出請求的片上處理核;如果這個(gè)數(shù)據(jù)塊是修改過的,則必須在此一 級緩存中的數(shù)據(jù)寫回二級緩存中后才能回應(yīng)發(fā)出請求的片上處理核。
作為一種改進(jìn),每一個(gè)二級緩存中的數(shù)據(jù)塊一旦變?yōu)楣蚕砗螅创嬖诙鄠€(gè)片上處理核 對其進(jìn)行訪問的時(shí)候,它的共享標(biāo)志不會(huì)自動(dòng)變?yōu)闊o效,除非其收到置無效信號或上層的 緩存窗口相應(yīng)數(shù)據(jù)塊換出時(shí)才會(huì)變?yōu)槲ㄒ坏幕蛐薷牡摹?本發(fā)明與背景技術(shù)相比,具有的有益的效果是
(1) 由于共享數(shù)據(jù)都在緩存窗口中,各個(gè)片上處理核間數(shù)據(jù)的共享和交換就被放到了要 快得多的共享一級緩存上,大大了提高了數(shù)據(jù)通信的效率,降低了通信的代價(jià);
(2) 由于可能需要復(fù)制的的共享數(shù)據(jù)塊已經(jīng)在緩存窗口里,就避免了在傳統(tǒng)不同片上處 理核擁有不同的一級緩存時(shí)所需要的數(shù)據(jù)復(fù)制,這大大制約了一級緩存的本來就很小的空間,提高了利用率,同時(shí)也就降低了緩存的失配率;
(3)在很大程度上簡化了一級緩存上的數(shù)據(jù)一致性協(xié)議。 一致性協(xié)議要解決的最大的問 題就是多核上相同的數(shù)據(jù)可能會(huì)在不同的私有一級緩存或二級緩存里擁有多份拷貝所帶來 的數(shù)據(jù)更新問題。在存在多份拷貝的時(shí)候,要保證一個(gè)片上處理核正在寫的數(shù)據(jù)必須是最 新的數(shù)據(jù)是很困難的。緩存窗口的設(shè)計(jì)消除了數(shù)據(jù)在一級緩存中的復(fù)制,可以大大簡化數(shù) 據(jù)一致性協(xié)議。
圖1為本方法提出的具備緩存窗口的多核體系架構(gòu)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本實(shí)施例中的具備緩存窗口的多核體系架構(gòu),包括至少四個(gè)并行的片上處理核,每個(gè) 片上處理核各自擁有自己獨(dú)立的一級緩存,并與其它的片上處理核一起共有一個(gè)共享的一 級緩存,即緩存窗口;所述緩存窗口和獨(dú)立的一級緩存分別與二級緩存連接。
在實(shí)施多核體系架構(gòu)下緩存窗口的設(shè)計(jì)方法時(shí),考慮了共享數(shù)據(jù)和私有數(shù)據(jù)的分隔性。
(1)緩存窗口 (共享的一級緩存)
四個(gè)片上處理核各自擁有自己獨(dú)立的一級緩存,并與其它的三個(gè)核一起共有一個(gè)共享 的一級緩存,稱之為緩存窗口。 、
共享的數(shù)據(jù)全部放在一級緩存窗口里,各個(gè)核對于數(shù)據(jù)的訪問都是通過一級緩存進(jìn)行 的。核在執(zhí)行的時(shí)候所讀取的所有的共享數(shù)據(jù)都是通過一級緩存窗口進(jìn)行的。所有的私有 數(shù)據(jù)都在自己的獨(dú)立一級緩存里。
例如,當(dāng)上層的一級緩存的訪問發(fā)生失配的時(shí)候,就會(huì)在總線上發(fā)出失配信號以向下 層的二級緩存請求數(shù)據(jù)。不論是緩存窗口還是普通的獨(dú)立一級緩存都會(huì)發(fā)出這個(gè)失配信 號,并到達(dá)二級緩存的緩存控制器。緩存控制器會(huì)依據(jù)上層的請求地址在自己的二級緩存 里尋找是否有匹配的數(shù)據(jù)地址,如果有匹配的話,它依據(jù)匹配的那個(gè)數(shù)據(jù)塊的現(xiàn)在的狀態(tài) (私有的還是共享的)來響應(yīng)上層的數(shù)據(jù)請求;如果匹配的二級緩存數(shù)據(jù)塊是公有的,控制 器允許緩存窗口的請求,并封鎖獨(dú)立一級緩存的請求,反之亦然;如果匹配的二級緩存數(shù) 據(jù)塊是私有的,控制器相應(yīng)地就允許一級緩存的請求,而不回應(yīng)緩存窗口的請求。
2)并行查找策略
當(dāng)任意一個(gè)片上處理核在請求數(shù)據(jù)的時(shí)候,它會(huì)同時(shí)向自己獨(dú)立的一級緩存里和所有 的片上處理核同時(shí)共享的緩存窗口發(fā)出數(shù)據(jù)請求命令,任一個(gè)緩存中的命中都會(huì)導(dǎo)致數(shù)據(jù)的命中。而只有當(dāng)兩個(gè)緩存中都沒有數(shù)據(jù)的時(shí)候,才會(huì)出現(xiàn)一級緩存訪問失配的情況,此 時(shí)就要訪問下層的二級緩存。
例如,如果片上處理核同時(shí)發(fā)出的取址命令請求在一級緩存和緩存窗口都出現(xiàn)失配, 緩存窗口和一級緩存都會(huì)對下層的二級緩存發(fā)出取數(shù)據(jù)命令。不同的是緩存窗口發(fā)出的問 題是取共享數(shù)據(jù)信號,而一級緩存發(fā)出的是取私有數(shù)據(jù)的信號??刂破魅绻l(fā)現(xiàn)上層的數(shù) 據(jù)地址與二級緩存中存在匹配的話,會(huì)再測試一下這個(gè)數(shù)據(jù)塊是共享的數(shù)據(jù)還是私有的數(shù) 據(jù)(修改的數(shù)據(jù)也是私有的數(shù)據(jù))。如果這個(gè)數(shù)據(jù)是共享的,就響應(yīng)緩存窗口的請求而拒絕 普通緩存的請求,反之亦然。
3) 單一改寫策略
本方法在緩存窗口上加入一個(gè)寫標(biāo)志,當(dāng)有一個(gè)片上處理核在對一個(gè)數(shù)據(jù)塊進(jìn)行改寫 的時(shí)候,就會(huì)將寫標(biāo)志置為l。當(dāng)其它的片上處理核檢測到這個(gè)寫標(biāo)志位,它對于數(shù)據(jù)塊的 寫信號就會(huì)暫時(shí)停止,并等到寫信號位重新變?yōu)?的時(shí)候再進(jìn)行改寫,以保證數(shù)據(jù)寫的安 全性。
例如,0號核正在對一個(gè)數(shù)據(jù)塊進(jìn)行寫操作,它將這個(gè)數(shù)據(jù)塊的寫標(biāo)志位置為1。此 時(shí),1號核也要對這個(gè)數(shù)據(jù)塊進(jìn)行寫操作,它檢測到了這個(gè)數(shù)據(jù)塊的寫標(biāo)志位,1號核對這 個(gè)數(shù)據(jù)塊的寫信號就會(huì)暫時(shí)停止。當(dāng)0號核完成對這個(gè)數(shù)據(jù)塊的寫操作后,它清除掉這個(gè) 數(shù)據(jù)塊的寫標(biāo)志位。然后,1號核發(fā)現(xiàn)這個(gè)數(shù)據(jù)塊的寫標(biāo)志位變成了 0,才開始對這個(gè)數(shù)據(jù) 塊進(jìn)行寫操作。
4) 提前寫回策略
當(dāng)一個(gè)片上處理核在一級緩存訪問失配的時(shí)候就會(huì)到二級緩存中取數(shù)據(jù),如果此二級 緩存數(shù)據(jù)塊是單一的或修改的,它表明當(dāng)前有且僅有一個(gè)片上處理核的獨(dú)立一級緩存中擁 有這個(gè)數(shù)據(jù),此時(shí)二級緩存可以通過查找其目錄,向相應(yīng)的一級緩存的數(shù)據(jù)塊發(fā)送確認(rèn)信 息;如果此數(shù)據(jù)塊是未修改的,直接將這個(gè)數(shù)據(jù)塊置無效,并同時(shí)將二級緩存中的數(shù)據(jù)發(fā) 送到請求核;如果這個(gè)數(shù)據(jù)塊是修改過的,則必須在此一級緩存中的數(shù)據(jù)寫回二級緩存中 后才能回應(yīng)請求核。
例如,如果O號核發(fā)出的取址命令在一級緩存失配,它會(huì)到二級緩存中取數(shù)據(jù)。如果它 發(fā)現(xiàn)此二級緩存的數(shù)據(jù)塊處于單一狀態(tài)或者修改狀態(tài),說明當(dāng)前有且僅有一個(gè)核的獨(dú)立一 級緩存中擁有這個(gè)數(shù)據(jù)。這時(shí),0號核通過查找目錄,向相應(yīng)的一級緩存的數(shù)據(jù)塊發(fā)送確認(rèn) 消息;如果此二級緩存的數(shù)據(jù)塊處于未修改狀態(tài),它直接將此數(shù)據(jù)塊設(shè)置成無效狀態(tài),并 且將二級緩存中的數(shù)據(jù)發(fā)送回O號核;如果此數(shù)據(jù)塊是修改過的,0號核必須等到一級緩存 中的數(shù)據(jù)寫回到二級緩存后才能得到數(shù)據(jù)。
5) 換出無效策略
6每一個(gè)二級緩存中的數(shù)據(jù)塊一旦變?yōu)楣蚕砗螅创嬖诙鄠€(gè)片上處理核對其進(jìn)行訪問的 時(shí)候,它的共享標(biāo)志不會(huì)自動(dòng)變?yōu)闊o效,除非其收到置無效信號或上層一級緩存窗口相應(yīng) 數(shù)據(jù)塊的換出時(shí)才會(huì)變?yōu)槲ㄒ坏幕蛐薷牡摹?br>
例如,如果0號核和1號核同時(shí)對二級緩存中的一個(gè)數(shù)據(jù)塊進(jìn)行訪問,此數(shù)據(jù)塊會(huì)進(jìn)入
共享狀態(tài)。此時(shí),它的共享標(biāo)志不會(huì)自動(dòng)變?yōu)闊o效。如果此數(shù)據(jù)塊收到片上處理核置無效 的信號或者一級緩存窗口相應(yīng)的數(shù)據(jù)塊被換出,此數(shù)據(jù)塊才會(huì)變成唯一狀態(tài)或者修改狀 態(tài)。
最后,還需要注意的是,以上公布的僅是本發(fā)明的具體實(shí)施例。本領(lǐng)域的普通技術(shù)人 員能從本發(fā)明公開的內(nèi)容直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種具備緩存窗口的多核體系架構(gòu),包括至少兩個(gè)并行的片上處理核,其特征在于,每個(gè)片上處理核各自擁有自己獨(dú)立的一級緩存,并與其它的片上處理核一起共有一個(gè)共享的一級緩存,即緩存窗口;所述緩存窗口和獨(dú)立的一級緩存分別與二級緩存連接。
2、 根據(jù)權(quán)利要求l所述的具備緩存窗口的多核體系架構(gòu),其特征在于,所述并行的片上 處理核有四個(gè)。
3、 一種基于權(quán)利要求l所述具備緩存窗口的多核體系架構(gòu)的實(shí)現(xiàn)方法,各片上處理核對 于數(shù)據(jù)的訪問都是通過一級緩存進(jìn)行的,所有的私有數(shù)據(jù)都在自己獨(dú)立的一級緩存里,其特征 在于,共享的數(shù)據(jù)全部放在緩存窗口中,在執(zhí)行共享數(shù)據(jù)訪問的時(shí)候,各片上處理核都是通 過緩存窗口進(jìn)行的。
4、 根據(jù)權(quán)利要求3所述具備緩存窗口的多核體系架構(gòu)的實(shí)現(xiàn)方法,其特征在于,當(dāng)任意 一個(gè)片上處理核在請求數(shù)據(jù)的時(shí)候,同時(shí)向自己獨(dú)立的一級緩存和共享的緩存窗口發(fā)出數(shù)據(jù) 請求命令,任一個(gè)緩存中的命中都會(huì)導(dǎo)致數(shù)據(jù)的命中;只有當(dāng)兩個(gè)緩存中都沒有數(shù)據(jù)的時(shí) 候,才會(huì)出現(xiàn)一級緩存訪問失配的情況,此時(shí)就要訪問下層的二級緩存。
5、 根據(jù)權(quán)利要求3所述具備緩存窗口的多核體系架構(gòu)的實(shí)現(xiàn)方法,其特征在于,在一級 緩存上加入一個(gè)寫標(biāo)志,當(dāng)有一個(gè)片上處理核在對一個(gè)數(shù)據(jù)塊進(jìn)行改寫的時(shí)候,將寫標(biāo)志置 為l;當(dāng)其它的片上處理核檢測到這個(gè)寫標(biāo)志位時(shí),暫時(shí)停止對數(shù)據(jù)塊的寫信號,并等到寫信 號位重新變?yōu)镺的時(shí)候再進(jìn)行改寫,以保證數(shù)據(jù)寫的安全性。
6、 根據(jù)權(quán)利要求3所述具備緩存窗口的多核體系架構(gòu)的實(shí)現(xiàn)方法,其特征在于,當(dāng)一個(gè) 片上處理核在一級緩存訪問失配的時(shí)候就向二級緩存中讀取數(shù)據(jù);如果二級緩存的數(shù)據(jù)塊是單 一的或已被修改的,表明當(dāng)前有且僅有一個(gè)片上處理核獨(dú)立的一級緩存中擁有這個(gè)數(shù)據(jù),此 時(shí)二級緩存可以通過査找其目錄,向相應(yīng)一級緩存的數(shù)據(jù)塊發(fā)送確認(rèn)信息;如果此數(shù)據(jù)塊是 未修改的,直接將這個(gè)數(shù)據(jù)塊置無效,并同時(shí)將二級緩存中的數(shù)據(jù)發(fā)送到發(fā)出請求的片上處 理核;如果這個(gè)數(shù)據(jù)塊是修改過的,則必須在此一級緩存中的數(shù)據(jù)寫回二級緩存中后才能回 應(yīng)發(fā)出請求的片上處理核。
7、 根據(jù)權(quán)利要求3所述具備緩存窗口的多核體系架構(gòu)的實(shí)現(xiàn)方法,其特征在于,每一個(gè) 二級緩存中的數(shù)據(jù)塊一旦變?yōu)楣蚕砗?,即存在多個(gè)片上處理核對其進(jìn)行訪問的時(shí)候,它的共 享標(biāo)志不會(huì)自動(dòng)變?yōu)闊o效,除非其收到置無效信號或上層的緩存窗口相應(yīng)數(shù)據(jù)塊換出時(shí)才會(huì) 變?yōu)槲ㄒ坏幕蛐薷牡摹?br>
全文摘要
本發(fā)明涉及片上多處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,旨在提供一種具備緩存窗口的多核體系架構(gòu)及其實(shí)現(xiàn)方法。該多核體系架構(gòu),包括至少兩個(gè)并行的片上處理核,每個(gè)片上處理核各自擁有自己獨(dú)立的一級緩存,并與其它的片上處理核一起共有一個(gè)共享的一級緩存,即緩存窗口;所述緩存窗口和獨(dú)立的一級緩存分別與二級緩存連接。本發(fā)明大大了提高了數(shù)據(jù)通信的效率,降低了通信的代價(jià);提高了利用率,同時(shí)也降低了緩存的失配率;在很大程度上簡化了一級緩存上的數(shù)據(jù)一致性協(xié)議。
文檔編號G06F12/08GK101510191SQ200910096960
公開日2009年8月19日 申請日期2009年3月26日 優(yōu)先權(quán)日2009年3月26日
發(fā)明者喬福明, 滿 曹, 王春昊, 章鐵飛, 繆良華, 蔣冠軍, 度 陳, 陳天洲, 項(xiàng)凌翔, 馬建良 申請人:浙江大學(xué)