專利名稱:用于高速緩沖存儲器替換的數(shù)據(jù)處理系統(tǒng)和方法
背景技術(shù):
當(dāng)今的數(shù)據(jù)處理系統(tǒng)或處理器是基于特定存儲器分層分層結(jié)構(gòu)的,包括具有不同速度和尺寸的存儲器。然而, 由于快速存儲器較昂貴,所以將存儲器分層分層結(jié)構(gòu)組織為多個等級,其中每個等級比相鄰的下一等級的每個字節(jié)更小、更快速、更昂貴。通常,一個等級中的所有數(shù)據(jù)也可在下一等級中找到,并且可在該下一等級的下一等級中找到所有該下一等級的數(shù)據(jù),直到達到分層分層結(jié)構(gòu)的底層。具有多處理器環(huán)境的多任務(wù)數(shù)據(jù)處理系統(tǒng)通常包括同時在各個處理器上運行的多個應(yīng)用程序。
高速緩沖存儲器是存儲器分層結(jié)構(gòu)的第一等級,即,它是最靠近CPU或處理單元的存儲器。如果CPU請求可在高速緩沖存儲器中找到的數(shù)據(jù)項,則發(fā)生所謂的高速緩沖存儲器命中。然而,如果不能夠在高速緩沖存儲器中找到CPU所請求的數(shù)據(jù)項,則發(fā)生所謂的高速緩沖存儲器未命中。校正高速緩沖存儲器未命中并獲取所請求的數(shù)據(jù)項所需的時間取決于存儲器的等待時間和帶寬。等待時間對應(yīng)于搜索塊的第一個字的時間,帶寬與搜索塊的剩余部分的時間有關(guān),高速緩沖存儲器的基本概念是獲取這些數(shù)據(jù)項,這將需要在實際處理之前在即將到來的處理循環(huán)周期進行數(shù)據(jù)項的獲取。
一旦發(fā)生高速緩沖存儲器未命中,則高速緩沖存儲器控制器必須選擇當(dāng)前存儲在高速緩沖存儲器中的數(shù)據(jù)項或塊,用要獲取的希望的數(shù)據(jù)項或數(shù)據(jù)塊來替換該數(shù)據(jù)項或塊??呻S機地、根據(jù)最近使用LRU或根據(jù)先入先出FIFO來執(zhí)行實際的高速緩沖存儲器替換。通過均勻分配來執(zhí)行隨機選擇,從而隨機地選擇塊。為了減少在下一到來的周期期間拋掉所需的信息的可能性,在最近很少使用的高速緩沖存儲器替換方案中記錄了對塊的訪問。因此,根據(jù)過去的訪問來計算預(yù)測,從而用最長時間段未用的塊來替換這些塊。然而,由于LRU高速緩沖存儲器替換策略計算量大,所以根據(jù)先入先出替換策略,確定最早的塊用于替換而不是LRU。
先入先出FIFO替換策略還可稱為循環(huán)選擇。這里,僅在未命中而不是每次命中時更新高速緩沖存儲器。通過更新數(shù)據(jù)、地址標記等來執(zhí)行對塊的替換。將高速緩沖存儲器中由高速緩沖存儲器替換策略所選擇要替換的數(shù)據(jù)塊稱為犧牲塊。可將這種犧牲塊移動到犧牲緩沖器。將犧牲塊寫入存儲器分層結(jié)構(gòu)中的相鄰等級中。
一般而言,平均存儲器訪問時間與命中時間加上未命中比率乘以未命中判罰之積的和相對應(yīng),一種減少未命中判罰的技術(shù)是采用多級高速緩沖存儲器。這里,忽略實際的CPU而關(guān)注于高速緩沖存儲器和主存儲器之間接口。通過在原始的高速緩沖存儲器和主存儲器之間添加另一級的高速緩沖存儲器,可將第一級的高速緩沖存儲器設(shè)計為足夠小以與快速CPU的時鐘周期相匹配,而第二級的高速緩沖存儲器可足夠大以捕獲要由CPU在到來的時鐘周期期間使用的充足的數(shù)據(jù)。
另一減少未命中判罰的技術(shù)是采用犧牲高速緩沖存儲器。這里,從例如L1高速緩沖存儲器的高速緩沖存儲器中丟棄的數(shù)據(jù)項(犧牲塊)可存儲在犧牲高速緩沖存儲器中。在已經(jīng)從主存儲器或其它高速緩沖存儲器等級中取回了從高速緩沖存儲器中丟棄的數(shù)據(jù)(犧牲塊)時,可以以低等待時間來重新使用該數(shù)據(jù)項或數(shù)據(jù)塊。因此,這些被丟棄的數(shù)據(jù)項或數(shù)據(jù)塊被存儲在犧牲高速緩沖存儲器中。換言之,僅將由于高速緩沖存儲器未命中和隨后的高速緩沖存儲器替換而丟棄的數(shù)據(jù)項存儲在犧牲高速緩沖存儲器中。
這種犧牲高速緩沖存儲器通常是較小的完全相關(guān)的高速緩沖存儲器。該高速緩沖存儲器設(shè)計用于存儲由于沖突缺失或容量缺失而從CPU或L1高速緩沖存儲器中丟棄的塊。典型地將該高速緩沖存儲器設(shè)置在主高速緩沖存儲器及其替換路徑之間。僅將由于高速緩沖存儲器未命中而從L1高速緩沖存儲器中丟棄的塊存儲在其中。將其用于減少高速緩沖存儲器未命中判罰。
另一高速緩沖存儲器替換策略是最不經(jīng)常使用的技術(shù);其中,從高速緩沖存儲器中丟棄最不經(jīng)常使用的塊,以為新預(yù)取數(shù)據(jù)創(chuàng)造空間。
關(guān)于高速緩沖存儲器替換技術(shù),有兩個重要問題,即應(yīng)該將哪個數(shù)據(jù)塊取回到高速緩沖存儲器中和應(yīng)該從高速緩沖存儲器中丟棄哪個數(shù)據(jù)塊,使得新取回的數(shù)據(jù)塊可存儲在高速緩沖存儲器中而不是丟棄的數(shù)據(jù)塊。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種數(shù)據(jù)處理系統(tǒng),包括具有改進的高速緩沖存儲器替換能力的多個處理單元和高速緩沖存儲器,還提供了一種高速緩沖存儲器替換方法。
由根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng)以及根據(jù)權(quán)利要求5所述的高速緩沖存儲器替換方法來實現(xiàn)該目的。
因此,提供了一種數(shù)據(jù)處理系統(tǒng),具有至少一個處理單元,用于交錯處理多任務(wù);以及高速緩沖存儲器,與所述至少一個處理單元相關(guān)聯(lián),用于高速緩存要由所述至少一個處理單元處理的多任務(wù)的數(shù)據(jù)。將高速緩沖存儲器分為多個高速緩沖存儲器行。每一高速緩沖存儲器行與多任務(wù)之一相關(guān)聯(lián)。此外,設(shè)置任務(wù)調(diào)度器,用于調(diào)度要由所述至少一個處理單元以交錯方式處理的多任務(wù)。設(shè)置高速緩沖存儲器控制器,用于在高速緩沖存儲器中選擇要從高速緩沖存儲器中丟棄的高速緩沖存儲器行。根據(jù)任務(wù)調(diào)度器的任務(wù)調(diào)度來執(zhí)行該選擇。
因此,高速緩沖存儲器替換是基于實際的任務(wù)調(diào)度信息的。由于任務(wù)調(diào)度器知曉處理單元在到來的時鐘周期期間要處理的任務(wù),所以高速緩沖存儲器控制器使用該信息來決定要丟棄高速緩沖存儲器中的哪些高速緩沖存儲器行以便給新預(yù)取的數(shù)據(jù)提供足夠的空間。換言之,通過查詢?nèi)蝿?wù)調(diào)度信息,可以確保不丟棄與下一可運行任務(wù)相對應(yīng)的高速緩沖存儲器行,從而減少了高速緩沖存儲器未命中。
根據(jù)本發(fā)明的方面,任務(wù)調(diào)度器包括用于存儲調(diào)度模式的調(diào)度表。高速緩沖存儲器控制器包括犧牲控制裝置,用于存儲在高速緩沖存儲器行上要丟棄的信息。該信息是基于存儲在調(diào)度表中的調(diào)度模式的。因此,高速緩沖存儲器控制器將知曉高速緩沖存儲器行與多任務(wù)中的哪個相關(guān)聯(lián),并根據(jù)任務(wù)調(diào)度器的任務(wù)調(diào)度信息,高速緩沖存儲器控制器可直接選擇要丟棄的高速緩沖存儲器行,而不需要預(yù)先與任務(wù)調(diào)度器進行通信。
根據(jù)本發(fā)明的另一方面,任務(wù)調(diào)度器包括用于存儲調(diào)度模式的調(diào)度表。高速緩沖存儲器控制器包括犧牲控制裝置,用于存儲在高速緩沖存儲器行上不被丟棄的信息。該選擇同樣是基于存儲在調(diào)度表中的調(diào)度模式的。這里,作為可選實施例,確定不應(yīng)該丟棄的高速緩沖存儲器行。
根據(jù)本發(fā)明的另一方面,由任務(wù)調(diào)度器根據(jù)存儲在調(diào)度表中的調(diào)度模式來更新犧牲控制裝置,使得犧牲控制裝置不必在丟棄高速緩沖存儲器行之前咨詢?nèi)蝿?wù)調(diào)度器。
本發(fā)明還涉及一種高速緩沖存儲器替換方法,用于與交錯處理多任務(wù)的處理單元相關(guān)聯(lián)的高速緩沖存儲器。該高速緩沖存儲器包括多個高速緩沖存儲器行;每一高速緩沖存儲器行與多任務(wù)之一相關(guān)聯(lián),并且對要由處理單元以交錯方式處理的多任務(wù)之一進行調(diào)度。根據(jù)任務(wù)調(diào)度來選擇高速緩沖存儲器中要丟棄的高速緩沖存儲器行。
本發(fā)明是基于使用任務(wù)調(diào)度器知曉的信息來決定高速緩沖存儲器中要丟棄的實際高速緩沖存儲器行的概念。由于任務(wù)調(diào)度器知曉多任務(wù)環(huán)境中的哪個任務(wù)是處理單元中的下一可運行任務(wù),所以它可預(yù)測與下一可運行任務(wù)相對應(yīng)的高速緩沖存儲器行,從而不丟棄與該任務(wù)相對應(yīng)的高速緩沖存儲器行,以便避免到來的時鐘周期中的高速緩沖存儲器未命中。
參考下面所述的實施例,并結(jié)合附圖,本發(fā)明的這些和其它方面將是顯而易見并清晰的圖1示出了根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的基本結(jié)構(gòu),圖2示出了圖1的結(jié)構(gòu)的一部分,圖3示出了根據(jù)圖1的高速緩沖存儲器5的高速緩沖存儲器組織,圖4示出了根據(jù)圖1的數(shù)據(jù)處理系統(tǒng)的調(diào)度時刻的表示。
具體實施例方式
圖1示出了根據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)的基本方框圖。該數(shù)據(jù)處理系統(tǒng)包括處理單元1、高速緩沖存儲器5、高速緩沖存儲器控制器20、總線8、主存儲器7和任務(wù)調(diào)度器10。主存儲器7與總線8相連。高速緩沖存儲器5和高速緩沖存儲器控制器20同樣與總線8相連。處理單元1與高速緩沖存儲器5相連。任務(wù)調(diào)度器10與總線8以及處理單元1和高速緩沖存儲器控制器20相連。
這種數(shù)據(jù)處理系統(tǒng)可實現(xiàn)為芯片上系統(tǒng)。根據(jù)第一實施例的數(shù)據(jù)處理系統(tǒng)尤其適用于多任務(wù)流應(yīng)用,例如音頻和視頻應(yīng)用。然而,根據(jù)第一實施例的數(shù)據(jù)處理系統(tǒng)也可執(zhí)行其它應(yīng)用。
圖2示出了根據(jù)圖1的系統(tǒng)結(jié)構(gòu)的一部分。這里,僅示出了任務(wù)調(diào)度器10和高速緩沖存儲器控制器20。省略了圖1的所有其他元件,以便簡化該圖。圖2用于解釋任務(wù)調(diào)度器10和高速緩沖存儲器控制器20之間用于執(zhí)行根據(jù)本發(fā)明的高速緩沖存儲器替換的關(guān)系。任務(wù)調(diào)度器10包括查找表/調(diào)度表30。高速緩沖存儲器控制器20包括犧牲控制寄存器50和犧牲引擎單元40。任務(wù)調(diào)度器的任務(wù)調(diào)度模式存儲在查找表30中。因此,該表包括與處理單元在到來的時鐘周期內(nèi)要執(zhí)行的任務(wù)(即下一運行任務(wù))有關(guān)的信息。
任務(wù)調(diào)度器10根據(jù)存儲在查找表30中的信息來更新犧牲控制寄存器50。犧牲控制寄存器50可實現(xiàn)為MIMO寄存器??梢砸砸?guī)則時間間隔、和/或在查找表30中發(fā)生改變時執(zhí)行上述更新。
犧牲控制寄存器50包括與在到來的時鐘周期期間要執(zhí)行的任務(wù)有關(guān)的信息。該信息可以是任務(wù)ID。任務(wù)調(diào)度器根據(jù)存儲在表30中的任務(wù)模式,來更新犧牲控制寄存器50中的信息。犧牲引擎單元40讀取存儲在由任務(wù)調(diào)度器更新的犧牲控制寄存器50(即任務(wù)控制單元)中的任務(wù)ID,并將該任務(wù)ID與高速緩沖存儲器塊或高速緩沖存儲器行的標簽相比較,并選擇要丟棄的高速緩沖存儲器塊或高速緩沖存儲器行之一。
上述高速緩沖存儲器替換策略還可與上述現(xiàn)有技術(shù)的高速緩沖存儲器替換策略結(jié)合使用。例如,如果不存在與下一可運行任務(wù)相對應(yīng)的高速緩沖存儲器行,則犧牲選擇可根據(jù)傳統(tǒng)的高速緩沖存儲器替換策略。
圖3示出了根據(jù)圖1的高速緩沖存儲器5的高速緩沖存儲器組織。在根據(jù)圖1所述的多任務(wù)環(huán)境中,需要針對單個處理器或處理單元1來調(diào)度多任務(wù)或多線程。處理單元可存儲與不同任務(wù)相關(guān)的多個上下文,其中,如果中斷了某個任務(wù),則可切換到另一任務(wù)。因此,根據(jù)圖1所述的高速緩沖存儲器5包含具有來自不同任務(wù)的數(shù)據(jù)的不同高速緩沖存儲器行6,在處理單元上運行的應(yīng)用要處理所述不同任務(wù)。在帶來或取回當(dāng)前在處理單元上運行的任務(wù)所需的新高速緩沖存儲器行的過程期間執(zhí)行實際的高速緩沖存儲器替換。
如果將三個任務(wù)T1-T3映射到處理單元1上,每個任務(wù)T1-T3可需要不同的高速緩沖存儲器行6或高速緩沖存儲器塊。這里,在圖3中,第一和第二高速緩沖存儲器行填有與第一任務(wù)T1相對應(yīng)的數(shù)據(jù)。第三高速緩沖存儲器行包含與第二任務(wù)T2相對應(yīng)的數(shù)據(jù),而第四和第五高速緩沖存儲器行包含與第三任務(wù)T3相對應(yīng)的數(shù)據(jù)。
為了預(yù)取在處理單元的將來處理中所需的新數(shù)據(jù)到高速緩沖存儲器中,需要丟棄當(dāng)前緩存在高速緩沖存儲器5中的一些數(shù)據(jù),以便給新預(yù)取(取回)的數(shù)據(jù)提供充足的空間。根據(jù)接下來要處理任務(wù)有關(guān)的任務(wù)調(diào)度器的信息,來決定丟棄的高速緩沖存儲器行。
圖4示出了關(guān)于調(diào)度時刻的任務(wù)調(diào)度模式示例的表。最上一行表示任務(wù)ID,最底一行表示調(diào)度時刻1-12。因此,從圖4可見,任務(wù)調(diào)度遵循重復(fù)的模式,即T1、T2、T3、T1、T3、T2等。任務(wù)調(diào)度信息被存儲在根據(jù)圖2的任務(wù)調(diào)度器10的查找表30中。因此,該表包含與下一可運行任務(wù)有關(guān)的信息。為了避免高速緩沖存儲器未命中,不能夠從高速緩沖存儲器中丟棄圖3所示的高速緩沖存儲器5中與作為下一可運行任務(wù)的任意任務(wù)相關(guān)聯(lián)的高速緩沖存儲器行6。
為了解釋根據(jù)上述實施例的高速緩沖存儲器替換技術(shù)的優(yōu)點,現(xiàn)在參考圖4來描述根據(jù)LRU(最近很少使用)技術(shù)的高速緩沖存儲器替換。在處理單元1執(zhí)行第三任務(wù)T3時(調(diào)度時刻3),LRU將選擇替換與第一任務(wù)T1相關(guān)聯(lián)的高速緩沖存儲器行,因為與第一任務(wù)T1相對應(yīng)的高速緩沖存儲器行是最近很少使用的高速緩沖存儲器行。然而,基于LRU的高速緩沖存儲器替換不是優(yōu)選的,因為在調(diào)度時刻4下一可運行任務(wù)是第一任務(wù)T1。因此,如果使用LRU,則處理單元1將在第三任務(wù)T3之后調(diào)度第一任務(wù)T1時發(fā)生高速緩沖存儲器未命中。因此,根據(jù)本發(fā)明的高速緩沖存儲器替換,即基于任務(wù)調(diào)度信息的高速緩沖存儲器替換是優(yōu)選的,因為可根據(jù)任務(wù)調(diào)度器的信息來預(yù)測下一可運行任務(wù)。在圖4的示例中,基于本發(fā)明的高速緩沖存儲器替換技術(shù)將選擇丟棄與第二任務(wù)T2相關(guān)聯(lián)的高速緩沖存儲器行,而不是與第一任務(wù)T1相對應(yīng)的高速緩沖存儲器行。
上述高速緩沖存儲器替換技術(shù)可根據(jù)存儲在查找表30中的下一可運行任務(wù)的信息而反復(fù)執(zhí)行。
換言之,調(diào)度信息用作替換技術(shù)的輸入,以便最小化多任務(wù)環(huán)境中的高速緩沖存儲器未命中。
應(yīng)該注意,上述實施例例證而不是限制了本發(fā)明,本領(lǐng)域的技術(shù)人員能夠在不背離所附權(quán)利要求的范圍的情況下設(shè)計出多個可選實施例。在權(quán)利要求中,括號之間的附圖標記不應(yīng)理解為限制權(quán)利要求。詞語“包括”并不排除權(quán)利要求中所列元件或步驟之外的其它元件或步驟的存在。元件之前的詞語“一”并不排除多個該元件的存在。在列舉了多個裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可實現(xiàn)為同一個硬件項。唯一的事實是位于彼此不同的從屬權(quán)利要求中的一些措施并不表示使用這些措施的組合不能夠產(chǎn)生有益效果。
此外,權(quán)利要求中的任意附圖標記并不構(gòu)成權(quán)利要求范圍的限制。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括-至少一個處理單元(1),用于交錯處理多任務(wù)(T1-T3);-高速緩沖存儲器(5),與所述至少一個處理單元(1)相關(guān)聯(lián),用于高速緩存要由所述至少一個處理單元(1)處理的多任務(wù)(T1-T3)的數(shù)據(jù);所述高速緩沖存儲器(5)包括多個高速緩沖存儲器行(6);-任務(wù)調(diào)度器(10),用于調(diào)度要由所述至少一個處理單元(1)以交錯方式處理的多任務(wù)(T1-T3);以及-高速緩沖存儲器控制器(20),用于根據(jù)任務(wù)調(diào)度器(10)的任務(wù)調(diào)度,在所述高速緩沖存儲器(5)中選擇要丟棄的高速緩沖存儲器行(6)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中-數(shù)據(jù)調(diào)度器(10)包括用于存儲調(diào)度模式的調(diào)度表(30);以及-高速緩沖存儲器控制器(20)包括犧牲控制裝置,基于存儲在調(diào)度表(30)中的調(diào)度模式,存儲將要丟棄的高速緩沖存儲器行(6)的任務(wù)標識符。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中-任務(wù)調(diào)度器(10),包括用于存儲調(diào)度模式的調(diào)度表(30);以及-高速緩沖存儲器控制器(20)包括犧牲控制裝置,基于存儲在調(diào)度表(30)中的調(diào)度模式,存儲不被丟棄的高速緩沖存儲器行(6)的任務(wù)標識符。
4.根據(jù)權(quán)利要求2或3所述的數(shù)據(jù)處理系統(tǒng),其中-由任務(wù)調(diào)度器(10)根據(jù)存儲在調(diào)度表(30)中的調(diào)度模式來更新犧牲控制裝置(5)。
5.一種高速緩沖存儲器替換方法,用在與交錯處理多任務(wù)的處理單元相關(guān)聯(lián)的高速緩沖存儲器中,其中,該高速緩沖存儲器包括多個高速緩沖存儲器行,每一高速緩沖存儲器行與多任務(wù)之一相關(guān)聯(lián),所述方法包括步驟-對要由處理單元(1)以交錯方式處理的多任務(wù)之一進行調(diào)度;-根據(jù)任務(wù)調(diào)度來選擇高速緩沖存儲器中要丟棄的高速緩沖存儲器行。
全文摘要
提供了一種數(shù)據(jù)處理系統(tǒng),具有至少一個處理單元(1),用于交錯處理多任務(wù)(T1-T3);以及與所述至少一個處理單元(1)相關(guān)聯(lián)的高速緩沖存儲器(5),用于高速緩存要由所述至少一個處理單元(1)處理的多任務(wù)(T1-T3)的數(shù)據(jù)。高速緩沖存儲器(5)分為多個高速緩沖存儲器行(6)。每一高速緩沖存儲器行(6)與多任務(wù)(T1-T3)之一相關(guān)聯(lián)。此外,設(shè)置任務(wù)調(diào)度器(10),用于調(diào)度要由所述至少一個處理單元(1)以交錯方式處理的多任務(wù)(T1-T3)。設(shè)置高速緩沖存儲器控制器(20),用于根據(jù)任務(wù)調(diào)度器(10)的任務(wù)調(diào)度,在所述高速緩沖存儲器(5)中選擇要從高速緩沖存儲器(5)中丟棄的高速緩沖存儲器行(6)。
文檔編號G06F12/12GK101073051SQ200580042315
公開日2007年11月14日 申請日期2005年12月5日 優(yōu)先權(quán)日2004年12月10日
發(fā)明者薩伊納斯·卡爾拉帕勒姆, 比約·托馬斯, 納加拉杰·布薩 申請人:皇家飛利浦電子股份有限公司