專利名稱:動態(tài)高速緩存管理的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),并且尤其涉及具有優(yōu)化的高速緩存 管理的多處理器系統(tǒng)。
背景技術(shù):
計算機硬件和軟件技術(shù)的進步已經(jīng)產(chǎn)生了能通過將系統(tǒng)資源邏 輯地劃分到不同任務(wù)來執(zhí)行高度復(fù)雜的并行處理的多處理器計算機 系統(tǒng)。處理器可以存在于通常至少具有二級高速緩存的一個或多個處 理器模塊上。
通常,訪問高速緩存比訪問主存儲器快。高速緩存通常位于處 理器模塊上,或位于處理內(nèi)。高速緩存用作緩沖器,用來保存近期使 用的指令和數(shù)據(jù),從而在每次需要指令和數(shù)據(jù)時,降低與從主存儲器 提取指令和數(shù)據(jù)相關(guān)的等待時間。
一些高速緩存保存了來自主存儲器的最頻繁使用的存儲器線。
存儲器線是來自主存儲器的數(shù)據(jù)的最小可讀單元,諸如8字節(jié),高速 緩存線是高速緩存內(nèi)的對應(yīng)單元。高速緩存線存儲了存儲器線,因此, 每次使用存儲器線時,不必從相對較慢的主存儲器取回存儲器線。
通常,只有最經(jīng)常使用的存儲器線被存儲在高速緩存中,這是 因為相對較快和昂貴的高速緩存通常小于主存儲器。因此,正常情況 下,高速緩存不存儲處理事務(wù)所需要的所有數(shù)據(jù)。這通常是這樣實現(xiàn)
的跟蹤最近使用的入口或高速緩存線,以及用與不能被高速緩存的 當(dāng)前內(nèi)容所滿足的近期的高速緩存請求相關(guān)的存儲器線來代替最近 使用的高速緩存線。因為高速緩存線已被轉(zhuǎn)移到主存儲器而不能被滿 足的高速緩存請求經(jīng)常被稱為高速緩存缺失,這是因為處理器將請求 發(fā)送到高速緩存,并且失去了從該高速緩存取回存儲器線的內(nèi)容的機 處理器通常包括用于保存諸如指令之類的經(jīng)常使用的存儲器線 的副本的一級(Ll)高速緩存,否則就要從相對較慢的主存儲器頻繁 地訪問這些指令。Ll高速緩存可以將用于訪問主存儲器的大概成千 上萬個周期的等待時間降低為訪問緩存時產(chǎn)生的幾個周期。然而,Ll 高速緩存通常很小,這是因為在容量上限制了處理器內(nèi)使用的面積。
二級(L2)高速緩存一般處于處理器模塊上,物理上接近處理 器,從而相對于訪問主存儲器,顯著地降低了等待時間。L2高速緩 存可以大于L1高速緩存,這是因為制造L2高速緩存的費用較低,并 且可將L2高速緩存配置為保存例如更大數(shù)量的近期使用的存儲器 線。
L2高速緩存可以被實現(xiàn)為針對處理器模塊中的多于一個處理器 的大的、共享的高速緩存,或者實現(xiàn)為針對模塊中的每個處理器的分 開的、私有的高速緩存。對于涉及訪問大量存儲器線的處理器上的工 作量需求,大的、共享的L2高速緩存是有益的。例如,當(dāng)處理器正 在訪問大的數(shù)據(jù)庫時,可重復(fù)地訪問大量存儲器線。然而,如果L2 高速緩存不足以大到容納大量被重復(fù)訪問的存儲器線或存儲器塊,則 首先被訪問的存儲器線可能被重寫(即被犧牲),并且處理器可能必 須再次向主存儲器請求那些塊。
諸如YAPI和TSSA之類的流應(yīng)用模塊由通過FIFO通信的任務(wù)構(gòu) 成。通常,為了降低訪問數(shù)據(jù)的等待時間,應(yīng)該對FIFO進行高速緩 存。然而,有時如果平均的FIFO高速緩存要求大于單個高速緩存能 夠處理的能力,這將導(dǎo)致高速緩存失配。這種實際高速緩存大小和期 望高速緩存大小之間的失配將導(dǎo)致處于高速緩存內(nèi)的其他存儲塊的 犧牲,而傾向于將這些存儲器塊用于特定的FIF0。
例如,在某些情況下,將即刻需要的存儲器塊可能被錯誤地選 定用于犧牲,從而導(dǎo)致了額外的、不必要的數(shù)據(jù)傳輸。另外一種可能 性是,確定在近期將不被使用并且因此是犧牲的適合候選的模塊將不 被犧牲。因此,期望一種用于表示哪個存儲塊將在近期被用于寫入或 讀出的確定方法。
己經(jīng)設(shè)計出了一些包括FIFO寄存器的系統(tǒng),其中FIFO寄存器 具有與任務(wù)調(diào)度程序通信的輸入計數(shù)單元和輸出計數(shù)單元。一個特定
的FIFO寄存器類型包括計數(shù)器,該計數(shù)器對要在FIFO寄存器中被交 換的數(shù)據(jù)的估計生產(chǎn)時間(EPT)和要在FIFO寄存器中被交換的數(shù)據(jù) 的估計消耗時間(ECT)進行計數(shù)??衫眠@些計數(shù)器來使存儲塊的 無效犧牲最小。
發(fā)明內(nèi)容
本發(fā)明的設(shè)備通過使多核或多處理器系統(tǒng)能確定性地識別適于 犧牲的高速緩存塊并且還能阻止將在最近被需要的存儲塊的犧牲來 改進計算系統(tǒng)的性能。為了獲得這些目標(biāo),該系統(tǒng)利用了 FIF0,該 FIF0具有能以EPT和ECT計數(shù)器的形式獲得的調(diào)度信息。
本發(fā)明的上述概括不是用于呈現(xiàn)本發(fā)明的每個公開的實施例或 每個方面。在附圖和隨后的詳細描述中,提供了其它方面、細節(jié)和示 范性實施例。
連同附圖,考慮本發(fā)明的各種實施例的下列詳細描述,將更完
全地理解本發(fā)明,其中
圖1示出了 FIFO緩沖器以及估計生產(chǎn)時間(EPT)和估計消耗 時間(ECT)計數(shù)器。
具體實施例方式
雖然本發(fā)明適于各種修改和可選的形式,但是在附圖中,通過 示例方式已經(jīng)示出其特定形式,并且將給予詳細的描述。然而,應(yīng)該 理解,目的不是將本發(fā)明限于所述的特定實施例。相反,目的是將覆 蓋所有屬于由所附權(quán)利要求所限定的本發(fā)明的思想和范圍內(nèi)的修改、 等效和替換。
圖1示出了包括EPT計數(shù)器102和ECT計數(shù)器104的高速緩存 100。高速緩存100包括5個占據(jù)高速緩存100的一部分的FIFO。每 個FIFO均處理數(shù)據(jù)。根據(jù)本發(fā)明的一個實施例,高速緩存IOO可以
是單個級的存儲器。根據(jù)另一實施例,高速緩存100具有多個級。本
發(fā)明的另一方面包括高速緩存100,其是在多個處理器之間共享的, 或者由具有多個處理器核的單個處理器共享。
數(shù)據(jù)通常采取來自處理器或控制器的工作請求的形式。正常情 況下,工作請求被組織在隊列或堆棧中。工作請求的每個隊列或堆棧 均被饋送至FIFO,并且被存儲(通常為臨時存儲)在先進先出序列 中,用于進一步的處理。能夠理解的是,雖然以利用FIFO中的EPT 和ECT計數(shù)器方式描述了本發(fā)明,但是本發(fā)明還可利用與LIF0結(jié)合 的這些計數(shù)器,LIF0以逆序來處理來自隊列或堆棧的工作請求。因 此,EPT和ECT計數(shù)器表示在各個FIFO中用于可能的數(shù)據(jù)產(chǎn)生或消 耗的剩余時間(或周期)。
EPT計數(shù)器102和ECT計數(shù)器104與任何特定的FIFO相關(guān)。EPT 計數(shù)器102和ECT計數(shù)器104可被使能或禁用。
存在三種如下描述的可能性第一種可能性是特定FIFO的EPT 計數(shù)器102和ECT計數(shù)器104均被禁用,這意味著它們將不會影響任 何與高速緩存相關(guān)的它們所代表的FIFO的操作。第二種可能性是EPT 計數(shù)器102或ECT計數(shù)器104中的一個被禁用,而另一個被使能。第 三種可能性是兩個計數(shù)器均被使能。這三種可能性的每種均存在結(jié) 果。
雖然在任何給定的時間,對于這些計數(shù)器,存在三種操作可能, 但是應(yīng)該理解,EPT或者ECT計數(shù)器的狀態(tài)(使能或禁用)在整個時 間內(nèi)也均可以變化。根據(jù)本發(fā)明的一個方面,可以預(yù)先確定EPT或 ECT計數(shù)器的狀態(tài)。更確切地說,其或者被使能或者被禁用。根據(jù)本 發(fā)明的另一方面,EPT或ECT計數(shù)器的狀態(tài)、或者兩者的狀態(tài)可以響 應(yīng)于被特別定義的事件的發(fā)生或不發(fā)生。根據(jù)本發(fā)明的另一方面,取 決于被特別定義的事件的發(fā)生或不發(fā)生和當(dāng)前的系統(tǒng)負載,EPT或 ECT計數(shù)器的狀態(tài)、或者兩者的狀態(tài)可以是選擇性的。根據(jù)本發(fā)明的 另一方面,取決于被特別定義的事件的發(fā)生或不發(fā)生和預(yù)期的系統(tǒng)負 載,EPT或ECT計數(shù)器的狀態(tài)、或者兩者的狀態(tài)可以是選擇性的。預(yù) 期的系統(tǒng)負載可采用預(yù)測性分析來預(yù)言或估計。
當(dāng)EPT和ECT計數(shù)器均被使能時,基于預(yù)定的決策制定標(biāo)準(zhǔn),
它們均做出關(guān)于從高速緩存預(yù)提取數(shù)據(jù)和將數(shù)據(jù)回寫至較低存儲器
級的決策。由EPT做出的預(yù)提取決策獨立于由ECT做出的決策。因此, 當(dāng)在這個決策制定過程中采用同樣數(shù)據(jù)時,根據(jù)本發(fā)明的一個方面, EPT決策的輸出不會影響ECT計數(shù)器的決策制定。
特定的FIFO可具有最小值的EPT和ECT計數(shù)器,其中與該FIFO 對應(yīng)的數(shù)據(jù)在其被利用之前具有的被修改的機會為最小。可選地, FIFO可具有最大值的EPT和ECT計數(shù)器,其中與該FIFO對應(yīng)的數(shù)據(jù) 在其被利用之前具有極大的變化可能性??梢岳斫獾氖?,計數(shù)器的作 用是變化的,當(dāng)計數(shù)器值增加時,其作用降低,直到出現(xiàn)計數(shù)器具有 實際上沒有任何意義的最大值的情況。因此,當(dāng)計數(shù)器達到最大閾值 時,根據(jù)本發(fā)明,EPT和ECT計數(shù)器將被禁用。
最大計數(shù)器閾值表示了多少空間可以被保存下來,以用于處理。 根據(jù)本發(fā)明的一個方面,計數(shù)器閾值是預(yù)定的。根據(jù)本發(fā)明的另一方 面,計數(shù)器閾值是根據(jù)特定處理器事務(wù)的特性而變化的,并且其靜態(tài) 地基于針對各種處理器的任務(wù)調(diào)度表。根據(jù)本發(fā)明的另一方面,計數(shù) 器閾值是動態(tài)的,它隨著預(yù)定的總處理能力的優(yōu)化方案而變化。
當(dāng)EPT和ECT數(shù)據(jù)接近對應(yīng)于該FIFO的最大閾值時,存在極大 可能性的是該數(shù)據(jù)在近期不會被改變,因此可去除由該FIFO占據(jù)的 高速緩存線。因此,用于將與該FIFO對應(yīng)的任何修改過的數(shù)據(jù)進行 回寫的回寫操作被啟動。簡單地說,當(dāng)EPT和ECT計數(shù)器達到最大閾 值時,存儲在特定FIFO中的數(shù)據(jù)被排隊,用于犧牲。
如果EPT計數(shù)器具有最大值,并且被禁用,而ECT計數(shù)器具較 小的值,這可能表示發(fā)生器已經(jīng)產(chǎn)生了足夠的數(shù)據(jù),并且該發(fā)生器被 調(diào)度完成。處理器之一對數(shù)據(jù)的使用者進行調(diào)度,并且開始使用該數(shù) 據(jù)。如果針對FIFO的數(shù)據(jù)沒有被緩存,則基于ECT計數(shù)器的采樣值, 自動啟動適當(dāng)?shù)念A(yù)提取操作,并且將與該FIFO對應(yīng)的數(shù)據(jù)引入該高 速緩存。數(shù)據(jù)的預(yù)提取速度取決于處理步驟和ECT計數(shù)器的最高有效 值。因此,高速緩存資源被優(yōu)化。
如果EPT計數(shù)器具有較小的值,而ECT具有最大值并且被禁用。 在這種情況下,只有發(fā)生器被調(diào)度,而使用者仍然沒有被調(diào)度來運行。 因此,使用者在近期不會使用由發(fā)生器產(chǎn)生的數(shù)據(jù)。在這種情況下, 高速緩存可被作為回寫緩沖器。采用適當(dāng)?shù)幕貙懼噶顏砘貙懹砂l(fā)生器 正在產(chǎn)生的數(shù)據(jù)?;貙懼噶畹乃俣然贓PT計數(shù)器的閾值。
如果EPT和ECT均具有較小的值,并且都被使能,則存在以下 這種情況由于正在產(chǎn)生的數(shù)據(jù)被使用者使用,所以FIFO的平均填 充率很小。然而,如果發(fā)生器和使用者的處理步驟之間存在很大差異 同樣基于EPT和ECT計數(shù)器的有效閾值時,可以再次采用適當(dāng)?shù)念A(yù)提 取和回寫指令來限制FIFO中的數(shù)據(jù)。
雖然參考幾個特定的示范性實施例已經(jīng)描述了本發(fā)明,但是所 屬領(lǐng)域的技術(shù)人員應(yīng)該意識到,在不脫離由權(quán)利要求所提出的本發(fā)明 的思想和范圍的情況下,可以進行很多變化。
權(quán)利要求
1.一種用于處理數(shù)據(jù)流的設(shè)備,其包括處理器;至少一級高速緩存(100),其與所述處理器通信,用于從所述處理器接收指令,并且響應(yīng)于該指令,將數(shù)據(jù)線傳送到所述處理器;第一計數(shù)器(102),其與所述高速緩存通信,用于估計針對特定數(shù)據(jù)線的生產(chǎn)時間;第二計數(shù)器(104),其與所述高速緩存(100)通信,用于估計針對特定數(shù)據(jù)線的消耗時間;其中所述第一(102)和第(104)計數(shù)器使能所述設(shè)備來優(yōu)化指令調(diào)度。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,其中每個計數(shù)器(102、 104) 均具有最大閾值,當(dāng)達到所述最大閾值時,所述計數(shù)器使能所述高速緩存的犧牲。
3. 根據(jù)權(quán)利要求1所述的設(shè)備,其進一步包括具有任務(wù)調(diào)度表 的多個處理器,所述高速緩存(100)與所述多個處理器通信,每個 計數(shù)器均具有最大閾值,當(dāng)達到所述最大閾值時,所述計數(shù)器使能所 述高速緩存的犧牲,所述最大閾值是預(yù)定的。
4. 根據(jù)權(quán)利要求l所述的設(shè)備,其進一步包括具有任務(wù)調(diào)度表 的多個處理器,所述高速緩存(100)與所述多個處理器通信,每個 計數(shù)器均具有最大閾值,當(dāng)達到所述最大閾值時,所述計數(shù)器使能所 述高速緩存(100)的犧牲,所述最大閾值是可變的。
5. 根據(jù)權(quán)利要求1所述的設(shè)備,其進一步包括具有任務(wù)調(diào)度表 的多個處理器,所述高速緩存(100)與所述多個處理器通信,每個 計數(shù)器均具有最大閾值,當(dāng)達到所述最大閾值時,所述計數(shù)器使能所 述高速緩存(100)的犧牲,所述最大閾值靜態(tài)地基于所述處理器的 任務(wù)調(diào)度表。
6. —種用于處理數(shù)據(jù)流的系統(tǒng),其包括用于處理數(shù)據(jù)的裝置, 該裝置包括多個處理器,所述處理器具有任務(wù)調(diào)度表;至少一級高速 緩存(100),該高速緩存(100)與所述處理器進行共享通信,該高 速緩存用于從所述處理器接收指令,并且響應(yīng)于所述指令,將數(shù)據(jù)線 傳送到所述處理器;估計生產(chǎn)時間(EPT)計數(shù)器(102),其與所述 高速緩存通信,用于估計針對特定數(shù)據(jù)線的生產(chǎn)時間;估計消耗時間(ECT)計數(shù)器(104),其與所述高速緩存通信,用于估計針對特定 數(shù)據(jù)線的消耗時間;以及所述EPT計數(shù)器(102)和所述ECT計數(shù)器(104)具有最大閾值,當(dāng)達到所述最大閾值時,所述計數(shù)器使能特 定高速緩存線的犧牲,所述最大閾值靜態(tài)地基于所述處理器的任務(wù)調(diào) 度表。
全文摘要
本發(fā)明的設(shè)備通過使能多核或多處理器系統(tǒng)來確定性地識別適于犧牲的高速緩存(100)塊以及阻止近期將被需要的存儲塊的犧牲,來改進計算系統(tǒng)的性能。為了實現(xiàn)這些目標(biāo),該系統(tǒng)具有能以估計生產(chǎn)時間(EPT)(102)和估計消耗時間(ECT)(104)計數(shù)器的形式來獲得調(diào)度信息的FIFO,以做出適合的預(yù)提取和回寫決定,從而數(shù)據(jù)傳輸與處理器執(zhí)行重疊。
文檔編號G06F12/12GK101341471SQ200680048463
公開日2009年1月7日 申請日期2006年12月21日 優(yōu)先權(quán)日2005年12月23日
發(fā)明者米林德·庫爾卡尼, 納倫德拉納斯·烏杜帕 申請人:Nxp股份有限公司