專利名稱:用于管理存儲器的方法和存儲器管理器的制作方法
技術領域:
以下描述涉及處理技術,更具體地,涉及一種用于在多處理環(huán)境中管理 存儲器的方法和存儲器管理器。
背景技術:
在存在多核或多處理器的多處理環(huán)境中,分配到各個核或處理器的進程 或線程共享存儲器(諸如,隊列),并處理存儲在隊列中的工作。
在這樣的多處理環(huán)境中,可使用多個進程來執(zhí)行特定任務。進程的示例 包括在執(zhí)行任務時產(chǎn)生數(shù)據(jù)的生產(chǎn)者進程(producer process)和在執(zhí)行任務 時消費數(shù)據(jù)的消費者進程(consumer process )。例如,在使用多處理器實現(xiàn)的 視頻解碼器的情況下,可變長解碼與生產(chǎn)者進程相應,宏塊處理與消費者進 程相應。
在同時執(zhí)行生產(chǎn)者進程和消費者進程兩者以提高整體工作性能的環(huán)境 中,由生產(chǎn)者進程和消費者進程共享的存儲器帶寬應被有效使用。
在傳統(tǒng)多處理環(huán)境中,增加分配到消費者進程的處理器的數(shù)量以增加并 行處理程度,從而提高工作性能。然而,在這種方案中,數(shù)量增加的分配到 消費者進程的處理器可能用盡存儲器帶寬,并且其它處理器可能沒有機會訪 問存儲器,從而降低整體工作性能。分配到進程的處理器的數(shù)量可以是預定 的或被限定為預定數(shù)量。在這種情況下,由于沒有考慮工作狀況而使用預定 數(shù)量的處理器,故這也會降低整體工作性能。此外,已經(jīng)了解到其它傳統(tǒng)方 法需要改變存儲器總線結(jié)構。
發(fā)明內(nèi)容
在一個總體方面, 一種多處理環(huán)境中的存儲器管理器,包括 一個或多個生產(chǎn)者處理器,能夠被分配以產(chǎn)生數(shù)據(jù); 一個或多個消費者處理器,能夠 被分配以消費產(chǎn)生的數(shù)據(jù);控制器,基于存儲器與處理器之間的帶寬的狀況 來管理所述一個或多個消費者處理器。
控制器可包括帶寬監(jiān)視器,檢查存儲器與處理器之間的帶寬狀況。
帶寬監(jiān)視器可包括隊列監(jiān)視器,檢查根據(jù)將在被處理器共享的共享隊 列中處理的數(shù)據(jù)的數(shù)量確定的共享隊列的長度。
帶寬監(jiān)視器可包括隊列監(jiān)視器,計算根據(jù)將在被處理器共享的共享隊 列中處理的數(shù)據(jù)的數(shù)量和具體時間確定的共享隊列的運動平均值。
控制器可基于帶寬的狀況來調(diào)節(jié)被分配以消費產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量。
控制器可包括進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則 增加被分配以消費產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量,如果共享隊列的長度小于預 定的下限,則減少被分配以消費產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量。
控制器可包括進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則 減少將被所述一個或多個消費者處理器消費的數(shù)據(jù)的分配單元大小,如果共 享隊列的長度小于預定的下限,則增加將被將被所述一個或多個消費者處理 器消費的數(shù)據(jù)的分配單元大小。
控制器可包括進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段 時間,則增加被分配以消費產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量,如果共享隊列的長 度持續(xù)減少給定的一段時間,則減少被分配以消費產(chǎn)生的數(shù)據(jù)的處理器的數(shù) 量。
控制器可包括進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段 時間,則減少將被所述一個或多個消費者處理器消費的數(shù)據(jù)的分配單元大小, 如果共享隊列的長度持續(xù)減少給定的一段時間,則增加將被所述一個或多個 消費者處理器消費的數(shù)據(jù)的分配單元大小。
在另一總體方面, 一種在包括生產(chǎn)者進程、消費者進程和存儲器的多處 理環(huán)境中的存儲器管理方法,包括檢查存儲器與被分配到生產(chǎn)者進程和消 費者進程的一個或多個處理器之間的帶寬的狀況;以及基于所述帶寬的狀況 管理消費者進程。
檢查帶寬的狀況的步驟可包括根據(jù)將在共享隊列中處理的數(shù)據(jù)的數(shù)量 來確定被生產(chǎn)者進程和消費者進程共享的共享隊列的長度。管理消費者進程的步驟可包括基于帶寬的狀況來調(diào)節(jié)凈皮分配到消費者
進程的處理器的數(shù)量。
調(diào)節(jié)處理器的數(shù)量的步驟可包括如果共享隊列的長度大于預定的上限, 則增加被分配到消費者進程的處理器的數(shù)量,如果共享隊列的長度小于預定 的下限,則減少被分配到消費者進程的處理器的數(shù)量。
調(diào)節(jié)處理器的數(shù)量的步驟可包括如果共享隊列的長度持續(xù)增加給定的 一段時間,則增加被分配到消費者進程的處理器的數(shù)量,如果共享隊列的長 度持續(xù)減少給定的一段時間,則減少被分配到消費者進程的處理器的數(shù)量。
管理消費者進程的步驟可包括如果共享隊列的長度大于預定的上限, 則減少將被消費者進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度小 于預定的下限,則增加將被消費者進程消費的數(shù)據(jù)的分配單元大小。
管理消費者進程的步驟可包括如果共享隊列的長度持續(xù)增加給定的一 段時間,則減少將被消費者進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列 的長度持續(xù)減少給定的一段時間,則增加將被消費者進程消費的數(shù)據(jù)的分配 單元大小。
檢查帶寬的狀況的步驟可包括確定共享隊列的長度變化,所述確定共 享隊列的長度變化包括計算共享隊列的運動平均值。
在另一總體方面, 一種用于多處理環(huán)境中的存儲器管理器,包括共享 隊列,被產(chǎn)生數(shù)據(jù)的第 一進程和消費第 一進程產(chǎn)生的數(shù)據(jù)的第二進程共享; 控制器,基于共享隊列的狀況來管理第二進程。
控制器可基于共享隊列的狀況來調(diào)節(jié)分配到第二進程的處理器的數(shù)量。
控制器可包括隊列監(jiān)視器,檢查根據(jù)將在共享隊列中處理的數(shù)據(jù)的數(shù) 量確定的共享隊列的長度。
控制器還可包括進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限, 則增加分配到第二進程的處理器的數(shù)量,如果共享隊列的長度小于預定的下 限,則減少分配到第二進程的處理器的數(shù)量。
控制器還可包括進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限, 則減少將被第二進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度小于 預定的下限,則增加將被第二進程消費的數(shù)據(jù)的分配單元大小。
控制器可包括隊列監(jiān)視器,計算根據(jù)將在共享隊列中處理的數(shù)據(jù)的數(shù) 量和具體時間確定的共享隊列的運動平均值??刂破鬟€可包括進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一 段時間,則增加被分配到第二進程的處理器的數(shù)量,如果共享隊列的長度持 續(xù)減少給定的一段時間,則減少被分配到第二進程的處理器的數(shù)量。
控制器還可包括進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一 段時間,則減少將被第二進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的 長度持續(xù)減少給定的一段時間,則增加將被第二進程消費的數(shù)據(jù)的分配單元 大小。
在另一總體方面, 一種用于多處理環(huán)境中的存儲器管理器,包括共享 隊列,被第一進程和第二進程共享,其中,第一進程產(chǎn)生數(shù)據(jù),共享隊列的 條目是將由第二進程處理的工作;控制器,基于共享隊列的狀況來自適應地 調(diào)節(jié)被分配到第二進程的處理器的數(shù)量和/或?qū)⒈坏诙M程處理的數(shù)據(jù)的分 配單元大小。
控制器可包括隊列監(jiān)視器,檢查根據(jù)將在共享隊列中處理的數(shù)據(jù)的數(shù) 量確定的共享隊列的長度;進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上 限,則增加被分配到第二進程的處理器的數(shù)量和/或減少將被第二進程處理的 數(shù)據(jù)的分配單元大小,如果共享隊列的長度小于預定的下限,則減少被分配 到第二進程的處理器的數(shù)量和/或增加將被第二進程處理的數(shù)據(jù)的分配單元 大小。
控制器可計算共享隊列的運動平均值,如果共享隊列的長度變化指示增 加趨勢,則增加被分配到第二進程的處理器的數(shù)量和/或減少將被第二進程處 理的數(shù)據(jù)的分配單元大小,如果共享隊列的長度變化指示減少趨勢,則減少 被分配到第二進程的處理器的數(shù)量或增加將^皮第二進程處理的凄t據(jù)的分配單 元大小。
控制器可通過將一個或多個處理器置為睡眠狀態(tài)來調(diào)節(jié)分配到第二進程 的處理器的數(shù)量。
在另 一總體方面,提供了 一種存儲用于在多處理環(huán)境中管理存儲器的程
序的計算機可讀存儲介質(zhì),包括引起計算機執(zhí)行以下內(nèi)容的命令確定被第 一進程和第二進程共享的共享列隊的長度和/或共享列隊的長度變化,其中, 第一進程產(chǎn)生數(shù)據(jù),共享隊列的條目是將由第二進程處理的工作;以及基于 共享列隊的長度和/或共享列隊的長度變化的狀況來管理第二進程。 通過以下描述、附圖和權利要求,其它特點和方面將會變得清楚。
圖1是示出包括存儲器和存儲器管理器的示例性計算裝置的框圖。
圖2A和圖2B示出如何根據(jù)共享隊列的長度來調(diào)節(jié)分配到消費者進程的 處理器的數(shù)量。
圖3示出如何根據(jù)共享隊列的長度來調(diào)節(jié)分配到消費者進程的數(shù)據(jù)的分 配單元大小。
圖4是用于管理存儲器的示例性方法的流程圖。
在整個附圖和詳細描述中,除非另有說明,否則,相同的附圖標號表示 相同的元件、特征和結(jié)構。為了清楚、明白和方便,可夸大這些元件的相對 大小和描述。
具體實施例方式
提供以下詳細描述以助于讀者全面理解在此描述的方法、設備和/或系 統(tǒng)。因此,向該領域中的普通技術人員建議在此描述的系統(tǒng)、設備和/或方法 的各種改變、修改和等同物。另外,為了更加清楚和簡明,可省略對已知功 能和結(jié)構的描述。
圖1示出包括存儲器IIO和存儲器管理器的示例性計算裝置。
存儲器110包括共享隊列111和數(shù)據(jù)區(qū)域112。存儲器管理器訪問存儲 器110,并且存儲器管理器包括控制器140和多個處理器121、 132、 134和 136??刂破?40可實現(xiàn)在一個或多個處理器上??刂破?40包括帶寬監(jiān)視器 141和進程調(diào)節(jié)器144。
共享隊列111被產(chǎn)生工作和用于工作的數(shù)據(jù)的生產(chǎn)者進程120和通過處 理工作消費數(shù)據(jù)的消費者進程130共享。例如,由生產(chǎn)者進程120產(chǎn)生的將 被消費者進程130處理的工作、關于工作的描述可被存儲在共享隊列111中, 用于所述將被消費者進程130處理的工作的數(shù)據(jù)可一皮存儲在存儲器110的數(shù) 據(jù)區(qū)域112中。消費者進程130可根據(jù)存儲在共享隊列111中的工作來讀取 和處理存儲器110的數(shù)據(jù)區(qū)域112中的用于工作的數(shù)據(jù)。生產(chǎn)者進程120使 工作在共享隊列111中列隊。消費者進程130從共享隊列l(wèi)ll讀取工作并根 據(jù)工作描述處理來自數(shù)據(jù)區(qū)域112的數(shù)據(jù)。因此,共享隊列111的長度根據(jù) 生產(chǎn)者進程120產(chǎn)生的工作的數(shù)量和消費者進程130消費的工作的數(shù)量而改說明書第6/10頁變。
例如,在生產(chǎn)者進程120產(chǎn)生十(10)個工作并且消費者進程130消費 十(10)個工作中的四(4)個工作的情況下,共享隊列111的長度是六(6)。 共享隊列111的長度還根據(jù)生產(chǎn)者進程120的工作產(chǎn)生率和消費者進程130 的工作消費率而改變。生產(chǎn)者進程120可被分配生產(chǎn)者處理器121。消費者 進程130可一皮分配多個消費者處理器132、 134和136。
控制器140基于存儲器110與處理器121、 132、 134和136之間的帶寬 的狀況來控制消費者進程130。
在一個示例中,控制器140可基于存儲器110與處理器121、 132、 134 和136之間的存儲器帶寬的狀況來調(diào)節(jié)分配到消費者進程130的處理器的數(shù) 量??苫诠蚕黻犃?11的狀況來檢查存儲器帶寬的狀況。
例如,如果通過將較少的消費者處理器分配到消費者進程130而帶寬欠 飽和,則共享隊列111的長度變長,并且控制器140可隨后增加分配到消費 者進程130的處理器的數(shù)量。如果通過例如將相對較多數(shù)量的處理器分配到 消費者進程130而帶寬過飽和,則共享隊列111的長度變短,并且控制器140 可隨后減少分配到消費者進程130的處理器的數(shù)量。換句話說,隨著更多的 將被處理的數(shù)據(jù)在共享隊列111中列隊,分配到消費者進程130的處理器的 數(shù)量可被增加。
為了執(zhí)行增加或減少分配到消費者進程130的處理器的數(shù)量的任務,控 制器140可包括帶寬監(jiān)視器141和進程調(diào)節(jié)器144。帶寬監(jiān)視器141可包括 隊列監(jiān)視器142。帶寬監(jiān)視器141基于可被隊列監(jiān)視器142確定的共享隊列 111的長度來檢查存儲器IIO與處理器之間的帶寬的狀況。如果共享隊列111 的長度超過例如預定上限,則進程調(diào)節(jié)器144增加分配到消費者進程130的 處理器的數(shù)量,如果共享隊列111的長度少于例如預定下限,則進程調(diào)節(jié)器 144減少分配到消費者進程130的處理器的數(shù)量。上限可被設置為在指示從 測試各種工作量獲得的最優(yōu)工作性能的值之上大約5%與大約30%之間的值。 相似地,下限可被設置為在指示從測試各種工作量獲得的最優(yōu)工作性能的值 之下大約5%與大約30%之間的值。因此,能夠通過僅將確定數(shù)量的處理器用 于消費者進程130并保持剩余的處理器處于例如睡眠^^莫式來減少功耗。
如另一示例,可隨著共享隊列111的長度變化來調(diào)節(jié)分配到消費者進程 130的處理器的數(shù)量。換句話說,隊列監(jiān)視器142計算共享隊列111的運動平均值以測量共享隊列111的長度變化。如果例如所述變化持續(xù)增加給定的一
段時間,則增加分配到消費者進程130的處理器的數(shù)量,而如果例如所述變 化持續(xù)減少給定的一段時間,則減少分配到消費者進程130的處理器的數(shù)量。
在另一示例中,控制器140可基于存儲器110與處理器121、 132、 134 和136之間的帶寬的狀況來調(diào)節(jié)被消費者進程130消費的數(shù)據(jù)的分配單元大 小??苫诠蚕黻犃?11的狀況檢查存儲器帶寬的狀況。除了上述的處理器 數(shù)量的調(diào)節(jié)之外還可執(zhí)行分配單元大小的調(diào)節(jié),或者執(zhí)行分配單元大小的調(diào) 節(jié)可替代處理器數(shù)量的調(diào)節(jié)。
例如,如果共享隊列111的長度變長,則控制器140可使將被發(fā)送到消 費者進程130的數(shù)據(jù)的分配單元大小變小。如果共享隊列111的長度變短, 則控制器140可使將^皮發(fā)送到消費者進程130的數(shù)據(jù)的分配單元大小變大。 在本示例中,消費者進程130直到數(shù)據(jù)累積到預定的分配單元大小才可讀取 和處理數(shù)據(jù)。換句話說,消費者進程130可被控制為只要數(shù)據(jù)在共享隊列111 中列隊就處理數(shù)據(jù),或者消費者進程130可被控制為直到數(shù)據(jù)累積到預定的 分配單元大小才處理數(shù)據(jù)。
隊列監(jiān)視器1,42可檢查由將在共享隊列111中處理的數(shù)據(jù)數(shù)量確定的共 享隊列111的長度。如果共享隊列的長度大于例如預定的上限,則進程調(diào)節(jié) 器144可減小將被消費者進程130消費的數(shù)據(jù)的分配單元大小,如果共享隊 列的長度小于例如預定的下限,則可增加將被消費者進程130消費的數(shù)據(jù)的 分配單元大小。
這種方法,分配到消費者進程130的處理器可被置于睡眠模式下,直到 共享隊列111中累積的數(shù)據(jù)達到當前分配單元大小。因此,生產(chǎn)者進程120 可更容易地訪問存儲器并且可減小功耗。另外,由于可通過調(diào)節(jié)分配單元大 小來確定消費者進程是否保持在睡眠模式,故生產(chǎn)者進程120可更容易地訪 問存儲器。
如另一示例,可隨著共享隊列111的長度變化來調(diào)節(jié)將被消費者進程130 消費的數(shù)據(jù)的分配單元大小。在這種情況下,進程調(diào)節(jié)器144計算共享隊列 111的運動平均值。如果例如共享隊列111的長度變化持續(xù)增加給定的一^a時 間,則進程調(diào)節(jié)器144可減小將被消費者進程130消費的數(shù)據(jù)的分配單元大 小。如果例如共享隊列111的長度變化持續(xù)減小給定的一段時間,則進程調(diào) 節(jié)器144可增加將被消費者進程130消費的數(shù)據(jù)的分配單元大小。圖2A和圖2B示出如何根據(jù)共享隊列的長度來調(diào)節(jié)分配到消費者進程的 處理器的數(shù)量。
參照圖1和圖2A,在一個實現(xiàn)中,如果共享隊列111的長度大于上限, 這意味著通過將較少的消費者處理器分配到消費者進程130而使存儲器與處 理器之間的帶寬欠飽和。因此,控制器140可增加分配到消費者進程130的 處理器的數(shù)量。如果共享隊列111的長度減小到下限以下,這意味著例如通 過將過多處理器分配到消費者進程130而使存儲器與處理器之間的帶寬過飽 和。因此,控制器140可減少分配到消費者進程130的處理器的數(shù)量。以這 種方式,分配到消費者進程130的處理器的數(shù)量可被調(diào)節(jié)到例如最優(yōu)數(shù)量。
參照圖1和圖2B,在另一實現(xiàn)中,如果共享隊列111的長度變化小于零 (0)(例如,由于被消費者進程130消費的工作大于由生產(chǎn)者進程120產(chǎn)生 的工作,故共享隊列111的長度持續(xù)減小給定的一段時間),則減少分配到消 費者進程130的處理器的數(shù)量。如果由于被消費者進程130消費的工作小于 由生產(chǎn)者進程120產(chǎn)生的工作,故共享隊列111的長度持續(xù)增加給定的一段 時間,則增加分配到消費者進程130的處理器的it量。
圖3示出如何根據(jù)共享隊列的長度來調(diào)節(jié)分配到消費者進程的數(shù)據(jù)的分 配單元大小。
參照圖1和圖3,在一個實現(xiàn)中,如果共享隊列111的長度大于上限, 則可減少分配到消費者進程130的數(shù)據(jù)的分配單元大小。當長度減小到下限 以下,則增加分配到消費者進程130的數(shù)據(jù)的分配單元大小。以這種方式, 分配到消費者進程130的數(shù)據(jù)的分配單元大小可被調(diào)節(jié)。
圖4是管理存儲器的示例性方法的流程圖。所述方法可被例如圖1中示 出的存儲器管理器執(zhí)行。
仍然參照圖1,確定共享隊列111的長度或長度變化(310)。
基于共享隊列111的狀況來管理消費者進程130。如果存儲器帶寬被消 費者進程130占用,以致生產(chǎn)者進程120無法在這種消費速率下再產(chǎn)生工作, 則共享隊列111中剩余較少的條目(320)。
所述過飽和狀態(tài)可被確定,如果例如共享隊列111的長度小于預定的下 限,則減少分配到消費者進程130的處理器的數(shù)量和/或增加將被消費者進程 130消費的數(shù)據(jù)的分配單元大小(330)。如另一示例,如上所述,當共享隊 列111的長度變化在給定的一段時間為負時,可減少分配到消費者進程130的處理器的數(shù)量和/或可增加將被消費者進程130消費的數(shù)據(jù)的分配單元大小。
如果通過將較少的處理器分配到消費者進程130而使存儲器帶寬欠飽 和,則共享隊列中剩余較多的條目(340)??赏ㄟ^檢查共享隊列111的長度 來確定所述欠飽和狀態(tài)。如果共享隊列111的長度大于預定的上限,則可以 是生產(chǎn)者進程的速率超過消費者進程的速率,并且在存儲器帶寬中存在用于 消費者處理器的空間。因此,增加分配到消費者進程130的處理器的數(shù)量和/ 或減少將被消費者進程130消費的數(shù)據(jù)的分配單元大小(350)。如另一示例, 當共享隊列的長度變化在給定的一段時間為正時,可增加分配到消費者進程 130的處理器的數(shù)量和/或可減小將被消費者進程130消費的數(shù)據(jù)的分配單元 大小。
確定生產(chǎn)者進程120是否已經(jīng)停止操作(360)。如果生產(chǎn)者進程120已 經(jīng)停止操作,則當前管理處理結(jié)束。如果生產(chǎn)者進程120沒有停止操作,則 管理處理可返回確定共享隊列111的狀況(310)。
根據(jù)上述的示例,提供了一種用于在多處理環(huán)境(諸如,多核處理器或 多處理器)中管理存儲器的示例性方法和存儲器管理器。
根據(jù)上述的示例,當沒有足夠的存儲器帶寬用于生產(chǎn)者進程時,對于消 費者進程可被受限訪問共享存儲器,從而使得在多核或多處理器環(huán)境中更有 效地執(zhí)行多處理。
此外,通過將不必要的處理器置于睡眠模式,可降低功耗。此外,由于 根據(jù)工作量或使用的數(shù)據(jù)的屬性來自適應地調(diào)節(jié)處理器的分配或配置,故可 避免在執(zhí)行工作之前預設處理器的數(shù)量或數(shù)據(jù)的分配量(例如,分布 (profiling ))。
僅作為不詳盡的描述,在此提供的教導可被應用于解碼器(例如,視頻 解碼器)、在多核處理器或多處理器上操作的生產(chǎn)者-消費者處理裝置(例如, 用于在多核處理器或多處理器上以多線程執(zhí)行生產(chǎn)者-消費者并行進程的系 統(tǒng))。再次僅作為不詳盡的描述,在此提供的教導可被應用于編寫隊列條目以 在多核處理器上執(zhí)行關于可變長解碼(VLD)的進程的裝置和由多處理器執(zhí) 行運動補償(MC)、逆變換(IT)、反量化(IQ)等的裝置。
上述的方法可被記錄、存儲或安裝在包括由計算機實施以引起處理器執(zhí) 行程序指令的所述程序指令的一個或多個計算機可讀介質(zhì)中。介質(zhì)還可包括程序指令、數(shù)據(jù)文件、數(shù)據(jù)結(jié)構等的單個或組合。計算機可讀介質(zhì)的示例包
括磁性介質(zhì),諸如硬盤、軟盤和磁帶;光學介質(zhì),諸如CD-ROM盤和DVD; 磁光介質(zhì),諸如光盤;被具體配置為存儲和執(zhí)行程序指令的硬件裝置,諸如 只讀存儲器(ROM)、隨機訪問存儲器(RAM)、閃存等。程序指令的示例包 括機器碼,諸如由編譯器產(chǎn)生的;文件,包含可被計算機使用解釋器執(zhí)行 的更高級代碼。所述硬件裝置可被配置以作為一個或更多個軟件模塊,以執(zhí) 行上述的操作和方法,反之亦然。此外,計算機可讀存儲介質(zhì)可被分布在通 過網(wǎng)絡連接的計算機系統(tǒng)中,計算機可讀代碼或程序指令可被以分布式方式 存儲和執(zhí)行。
計算系統(tǒng)或計算機可包括與總線、用戶接口和存儲器控制器電連接的微 處理器。計算系統(tǒng)或計算機還可包括閃存裝置。閃存裝置可經(jīng)由存儲器控制 器存儲N比特數(shù)據(jù)。N比特數(shù)據(jù)被微處理器執(zhí)行或?qū)⒈晃⑻幚砥鲌?zhí)行,并且 N可以是1或大于1的整數(shù)。其中,計算系統(tǒng)或計算機是移動設備,可另外 提供電池以供給計算系統(tǒng)或計算機的操作電壓。本領域中的普通技術人員應 該理解,計算系統(tǒng)或計算機還可包括應用芯片組、相機圖像處理器(CIS)、 移動動態(tài)隨機訪問存儲器(DRAM)等。存儲器控制器和閃存裝置可組成使 用非易失性存儲數(shù)據(jù)的固態(tài)硬盤(SSD)。
以上已經(jīng)示出了一些示例性實施例。然而,應該理解可做出各種修改。 例如,如果以不同的順序扭J亍上述^支術和/或如果以不同的方式組合上述系 統(tǒng)、結(jié)構、裝置或電路中的組件和/或使用其它組件或它們的等同物替換或補 充所述組件,則可獲得適合的結(jié)果。因此,其它實施落入權利要求的范圍內(nèi)。
權利要求
1、一種多處理環(huán)境中的存儲器管理器,包括一個或多個生產(chǎn)者處理器,能夠被分配以產(chǎn)生工作;一個或多個消費者處理器,能夠被分配以消費產(chǎn)生的工作;控制器,基于存儲器與處理器之間的帶寬的狀況來管理所述一個或多個消費者處理器。
2、 如權利要求1所述的存儲器管理器,其中,控制器包括 帶寬監(jiān)視器,;險查存儲器與處理器之間的帶寬狀況。
3、 如權利要求2所述的存儲器管理器,其中,帶寬監(jiān)視器包括 隊列監(jiān)視器,檢查根據(jù)將在被處理器共享的共享隊列中處理的工作的數(shù)量確定的共享隊列的長度。
4、 如權利要求2所述的存儲器管理器,其中,帶寬監(jiān)視器包括 隊列監(jiān)視器,計算根據(jù)將在被處理器共享的共享隊列中處理的工作的數(shù)量和具體時間確定的共享隊列的運動平均值。
5、 如權利要求1所述的存儲器管理器,其中,控制器基于帶寬的狀況來 調(diào)節(jié)被分配以消費產(chǎn)生的工作的處理器的數(shù)量。
6、 如權利要求5所述的存儲器管理器,其中,控制器包括 進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則增加被分配以消費產(chǎn)生的工作的處理器的數(shù)量,如果共享隊列的長度小于預定的下限,則減 少被分配以消費產(chǎn)生的工作的處理器的數(shù)量。
7、 如權利要求5所述的存儲器管理器,其中,控制器包括 進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則減少將被所述一個或多個消費者處理器消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度小 于預定的下限,則增加將被將被所述一個或多個消費者處理器消費的數(shù)據(jù)的 分配單元大小。
8、 如權利要求8所述的存儲器管理器,其中,控制器包括 進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段時間,則增加被分配以消費產(chǎn)生的工作的處理器的數(shù)量,如果共享隊列的長度持續(xù)減少給定 的一段時間,則減少被分配以消費產(chǎn)生的工作的處理器的數(shù)量。
9、 如權利要求5所述的存儲器管理器,其中,控制器包括進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段時間,則減少將 被所述一個或多個消費者處理器消費的數(shù)據(jù)的分配單元大小,如果共享隊列 的長度持續(xù)減少給定的 一段時間,則增加將被所述一個或多個消費者處理器 消費的數(shù)據(jù)的分配單元大小。
10、 一種在包括生產(chǎn)者進程、消費者進程和存儲器的多處理環(huán)境中的存儲器管理方法,所述方法包括檢查存儲器與被分配到生產(chǎn)者進程和消費者進程的一個或多個處理器之 間的帶寬的狀況;以及基于所述帶寬的狀況管理消費者進程。
11、 如權利要求IO所述的方法,其中,檢查帶寬的狀況的步驟包括根 據(jù)將在共享隊列中處理的工作的數(shù)量來確定被生產(chǎn)者進程和消費者進程共享 的共享隊列的長度。
12、 如權利要求IO所述的方法,其中,管理消費者進程的步驟包括基 于帶寬的狀況來調(diào)節(jié)被分配到消費者進程的處理器的數(shù)量。
13、 如權利要求12所述的方法,其中調(diào)節(jié)處理器的數(shù)量的步驟包括如果共享隊列的長度大于預定的上限, 則增加被分配到消費者進程的處理器的數(shù)量,如果共享隊列的長度小于預定 的下限,則減少被分配到消費者進程的處理器的數(shù)量。
14、 如權利要求12所述的方法,其中調(diào)節(jié)處理器的數(shù)量的步驟包括如果共享隊列的長度持續(xù)增加給定的一 段時間,則增加被分配到消費者進程的處理器的數(shù)量,如果共享隊列的長度 持續(xù)減少給定的一段時間,則減少被分配到消費者進程的處理器的數(shù)量。
15、 如權利要求IO所述的方法,其中管理消費者進程的步驟包括如果共享隊列的長度大于預定的上限,則 減少將被消費者進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度小于 預定的下限,則增加將被消費者進程消費的數(shù)據(jù)的分配單元大小。
16、 如權利要求IO所述的方法,其中管理消費者進程的步驟包括如果共享隊列的長度持續(xù)增加給定的一段 時間,則減少將被消費者進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的 長度持續(xù)減少給定的一段時間,則增加將被消費者進程消費的數(shù)據(jù)的分配單 元大小。
17、 如權利要求IO所述的方法,其中,檢查帶寬的狀況的步驟包括確 定共享隊列的長度變化,所述確定共享隊列的長度變化包括計算共享隊列的運動平均值。
18、 一種用于多處理環(huán)境中的計算裝置,包括共享隊列,被產(chǎn)生工作的第 一進程和消費第 一進程產(chǎn)生的工作的第二進 程共享;和控制器,基于共享隊列的狀況來管理第二進程。
19、 如權利要求18所述的計算裝置,其中,控制器基于共享隊列的狀況 來調(diào)節(jié)分配到第二進程的處理器的數(shù)量。
20、 如權利要求18所述的計算裝置,其中,控制器包括 隊列監(jiān)視器,檢查根據(jù)將在共享隊列中處理的工作的數(shù)量確定的共享隊列的長度。
21、 如權利要求20所述的計算裝置,其中,控制器還包括 進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則增加分配到第二進程的處理器的數(shù)量,如果共享隊列的長度小于預定的下限,則減少分配到 第二進程的處理器的量。
22、 如權利要求20所述的計算裝置,其中,控制器還包括 進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則減少將被第二進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度小于預定的下限,則增 加將被第二進程消費的數(shù)據(jù)的分配單元大小。
23、 如權利要求18所述的計算裝置,其中,控制器包括 隊列監(jiān)視器,計算根據(jù)將在共享隊列中處理的數(shù)據(jù)的數(shù)量和具體時間確 定的共享隊列的運動平均值。
24、 如權利要求23所述的計算裝置,其中,控制器還包括 進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段時間,則增加被分配到第二進程的處理器的數(shù)量,如果共享隊列的長度持續(xù)減少給定的一段 時間,則減少被分配到第二進程的處理器的數(shù)量。
25、 如權利要求23所述的計算裝置,其中,控制器還包括 進程調(diào)節(jié)器,如果共享隊列的長度持續(xù)增加給定的一段時間,則減少將被第二進程消費的數(shù)據(jù)的分配單元大小,如果共享隊列的長度持續(xù)減少給定 的一段時間,則增加將被第二進程消費的數(shù)據(jù)的分配單元大小。
26、 一種用于多處理環(huán)境中的計算裝置,包括共享隊列,被第一進程和第二進程共享,其中,第一進程產(chǎn)生數(shù)據(jù),共 享隊列的條目是將由第二進程處理的工作;和控制器,基于共享隊列的狀況來自適應地調(diào)節(jié)被分配到第二進程的處理 器的數(shù)量和/或?qū)⒈坏诙M程處理的數(shù)據(jù)的分配單元大小。
27、 如權利要求26所述的計算裝置,其中,控制器包括 隊列監(jiān)視器,檢查根據(jù)將在共享隊列中處理的工作的數(shù)量確定的共享隊列的長度;和進程調(diào)節(jié)器,如果共享隊列的長度大于預定的上限,則增加被分配到第 二進程的處理器的數(shù)量和/或減少將被第二進程處理的數(shù)據(jù)的分配單元大小, 如果共享隊列的長度小于預定的下限,則減少被分配到第二進程的處理器的數(shù)量和/或增加將被第二進程處理的數(shù)據(jù)的分配單元大小。
28、 如權利要求26所述的計算裝置,其中,控制器計算共享隊列的運動 平均值,如果共享隊列的長度變化指示增加趨勢,則增加被分配到第二進程 的處理器的數(shù)量和/或減少將被第二進程處理的數(shù)據(jù)的分配單元大小,如果共 享隊列的長度變化指示減少趨勢,則減少被分配到第二進程的處理器的數(shù)量 或增加將被第二進程處理的數(shù)據(jù)的分配單元大小。
29、 如權利要求26所述的計算裝置,其中,控制器通過將一個或多個處 理器置為睡眠狀態(tài)來調(diào)節(jié)分配到第二進程的處理器的數(shù)量。
30、 一種存儲用于在多處理環(huán)境中管理存儲器的程序的計算機可讀存儲 介質(zhì),包括引起計算機執(zhí)行以下內(nèi)容的命令確定被第一進程和第二進程共享的共享列隊的長度和/或共享列隊的長 度變化,其中,第一進程產(chǎn)生數(shù)據(jù),共享隊列的條目是將由第二進程處理的 工作;以及基于共享列隊的長度和/或共享列隊的長度變化的狀況來管理第二進程。
全文摘要
提供了一種用于管理存儲器的方法和存儲器管理器。所述存儲器管理器基于由產(chǎn)生數(shù)據(jù)的生產(chǎn)者進程和消費數(shù)據(jù)的消費者進程共享的共享隊列的狀況來調(diào)節(jié)分配到消費者進程的處理器的數(shù)量和/或?qū)⒈幌M者進程消費的數(shù)據(jù)的分配單元大小。
文檔編號G06F9/50GK101685409SQ200910178219
公開日2010年3月31日 申請日期2009年9月27日 優(yōu)先權日2008年9月26日
發(fā)明者白賢基, 辛圭桓, 金鐘泰 申請人:三星電子株式會社