欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于管理存儲器的方法和存儲器管理器的制作方法

文檔序號:6580820閱讀:246來源:國知局
專利名稱:用于管理存儲器的方法和存儲器管理器的制作方法
技術(shù)領(lǐng)域
以下描述涉及處理技術(shù),更具體地,涉及一種用于在多處理環(huán)境中管理 存儲器的方法和存儲器管理器。
背景技術(shù)
在存在多核或多處理器的多處理環(huán)境中,分配到各個(gè)核或處理器的進(jìn)程 或線程共享存儲器(諸如,隊(duì)列),并處理存儲在隊(duì)列中的工作。
在這樣的多處理環(huán)境中,可使用多個(gè)進(jìn)程來執(zhí)行特定任務(wù)。進(jìn)程的示例 包括在執(zhí)行任務(wù)時(shí)產(chǎn)生數(shù)據(jù)的生產(chǎn)者進(jìn)程(producer process)和在執(zhí)行任務(wù) 時(shí)消費(fèi)數(shù)據(jù)的消費(fèi)者進(jìn)程(consumer process )。例如,在使用多處理器實(shí)現(xiàn)的 視頻解碼器的情況下,可變長解碼與生產(chǎn)者進(jìn)程相應(yīng),宏塊處理與消費(fèi)者進(jìn) 程相應(yīng)。
在同時(shí)執(zhí)行生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程兩者以提高整體工作性能的環(huán)境 中,由生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程共享的存儲器帶寬應(yīng)被有效使用。
在傳統(tǒng)多處理環(huán)境中,增加分配到消費(fèi)者進(jìn)程的處理器的數(shù)量以增加并 行處理程度,從而提高工作性能。然而,在這種方案中,數(shù)量增加的分配到 消費(fèi)者進(jìn)程的處理器可能用盡存儲器帶寬,并且其它處理器可能沒有機(jī)會訪 問存儲器,從而降低整體工作性能。分配到進(jìn)程的處理器的數(shù)量可以是預(yù)定 的或被限定為預(yù)定數(shù)量。在這種情況下,由于沒有考慮工作狀況而使用預(yù)定 數(shù)量的處理器,故這也會降低整體工作性能。此外,已經(jīng)了解到其它傳統(tǒng)方 法需要改變存儲器總線結(jié)構(gòu)。

發(fā)明內(nèi)容
在一個(gè)總體方面, 一種多處理環(huán)境中的存儲器管理器,包括 一個(gè)或多個(gè)生產(chǎn)者處理器,能夠被分配以產(chǎn)生數(shù)據(jù); 一個(gè)或多個(gè)消費(fèi)者處理器,能夠 被分配以消費(fèi)產(chǎn)生的數(shù)據(jù);控制器,基于存儲器與處理器之間的帶寬的狀況 來管理所述一個(gè)或多個(gè)消費(fèi)者處理器。
控制器可包括帶寬監(jiān)視器,檢查存儲器與處理器之間的帶寬狀況。
帶寬監(jiān)視器可包括隊(duì)列監(jiān)視器,檢查根據(jù)將在被處理器共享的共享隊(duì) 列中處理的數(shù)據(jù)的數(shù)量確定的共享隊(duì)列的長度。
帶寬監(jiān)視器可包括隊(duì)列監(jiān)視器,計(jì)算根據(jù)將在被處理器共享的共享隊(duì) 列中處理的數(shù)據(jù)的數(shù)量和具體時(shí)間確定的共享隊(duì)列的運(yùn)動平均值。
控制器可基于帶寬的狀況來調(diào)節(jié)被分配以消費(fèi)產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量。
控制器可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度大于預(yù)定的上限,則 增加被分配以消費(fèi)產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量,如果共享隊(duì)列的長度小于預(yù) 定的下限,則減少被分配以消費(fèi)產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量。
控制器可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度大于預(yù)定的上限,則 減少將被所述一個(gè)或多個(gè)消費(fèi)者處理器消費(fèi)的數(shù)據(jù)的分配單元大小,如果共 享隊(duì)列的長度小于預(yù)定的下限,則增加將被將被所述一個(gè)或多個(gè)消費(fèi)者處理 器消費(fèi)的數(shù)據(jù)的分配單元大小。
控制器可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度持續(xù)增加給定的一段 時(shí)間,則增加被分配以消費(fèi)產(chǎn)生的數(shù)據(jù)的處理器的數(shù)量,如果共享隊(duì)列的長 度持續(xù)減少給定的一段時(shí)間,則減少被分配以消費(fèi)產(chǎn)生的數(shù)據(jù)的處理器的數(shù) 量。
控制器可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度持續(xù)增加給定的一段 時(shí)間,則減少將被所述一個(gè)或多個(gè)消費(fèi)者處理器消費(fèi)的數(shù)據(jù)的分配單元大小, 如果共享隊(duì)列的長度持續(xù)減少給定的一段時(shí)間,則增加將被所述一個(gè)或多個(gè) 消費(fèi)者處理器消費(fèi)的數(shù)據(jù)的分配單元大小。
在另一總體方面, 一種在包括生產(chǎn)者進(jìn)程、消費(fèi)者進(jìn)程和存儲器的多處 理環(huán)境中的存儲器管理方法,包括檢查存儲器與被分配到生產(chǎn)者進(jìn)程和消 費(fèi)者進(jìn)程的一個(gè)或多個(gè)處理器之間的帶寬的狀況;以及基于所述帶寬的狀況 管理消費(fèi)者進(jìn)程。
檢查帶寬的狀況的步驟可包括根據(jù)將在共享隊(duì)列中處理的數(shù)據(jù)的數(shù)量 來確定被生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程共享的共享隊(duì)列的長度。管理消費(fèi)者進(jìn)程的步驟可包括基于帶寬的狀況來調(diào)節(jié)凈皮分配到消費(fèi)者
進(jìn)程的處理器的數(shù)量。
調(diào)節(jié)處理器的數(shù)量的步驟可包括如果共享隊(duì)列的長度大于預(yù)定的上限, 則增加被分配到消費(fèi)者進(jìn)程的處理器的數(shù)量,如果共享隊(duì)列的長度小于預(yù)定 的下限,則減少被分配到消費(fèi)者進(jìn)程的處理器的數(shù)量。
調(diào)節(jié)處理器的數(shù)量的步驟可包括如果共享隊(duì)列的長度持續(xù)增加給定的 一段時(shí)間,則增加被分配到消費(fèi)者進(jìn)程的處理器的數(shù)量,如果共享隊(duì)列的長 度持續(xù)減少給定的一段時(shí)間,則減少被分配到消費(fèi)者進(jìn)程的處理器的數(shù)量。
管理消費(fèi)者進(jìn)程的步驟可包括如果共享隊(duì)列的長度大于預(yù)定的上限, 則減少將被消費(fèi)者進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小,如果共享隊(duì)列的長度小 于預(yù)定的下限,則增加將被消費(fèi)者進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小。
管理消費(fèi)者進(jìn)程的步驟可包括如果共享隊(duì)列的長度持續(xù)增加給定的一 段時(shí)間,則減少將被消費(fèi)者進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小,如果共享隊(duì)列 的長度持續(xù)減少給定的一段時(shí)間,則增加將被消費(fèi)者進(jìn)程消費(fèi)的數(shù)據(jù)的分配 單元大小。
檢查帶寬的狀況的步驟可包括確定共享隊(duì)列的長度變化,所述確定共 享隊(duì)列的長度變化包括計(jì)算共享隊(duì)列的運(yùn)動平均值。
在另一總體方面, 一種用于多處理環(huán)境中的存儲器管理器,包括共享 隊(duì)列,被產(chǎn)生數(shù)據(jù)的第 一進(jìn)程和消費(fèi)第 一進(jìn)程產(chǎn)生的數(shù)據(jù)的第二進(jìn)程共享; 控制器,基于共享隊(duì)列的狀況來管理第二進(jìn)程。
控制器可基于共享隊(duì)列的狀況來調(diào)節(jié)分配到第二進(jìn)程的處理器的數(shù)量。
控制器可包括隊(duì)列監(jiān)視器,檢查根據(jù)將在共享隊(duì)列中處理的數(shù)據(jù)的數(shù) 量確定的共享隊(duì)列的長度。
控制器還可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度大于預(yù)定的上限, 則增加分配到第二進(jìn)程的處理器的數(shù)量,如果共享隊(duì)列的長度小于預(yù)定的下 限,則減少分配到第二進(jìn)程的處理器的數(shù)量。
控制器還可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度大于預(yù)定的上限, 則減少將被第二進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小,如果共享隊(duì)列的長度小于 預(yù)定的下限,則增加將被第二進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小。
控制器可包括隊(duì)列監(jiān)視器,計(jì)算根據(jù)將在共享隊(duì)列中處理的數(shù)據(jù)的數(shù) 量和具體時(shí)間確定的共享隊(duì)列的運(yùn)動平均值。控制器還可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度持續(xù)增加給定的一 段時(shí)間,則增加被分配到第二進(jìn)程的處理器的數(shù)量,如果共享隊(duì)列的長度持 續(xù)減少給定的一段時(shí)間,則減少被分配到第二進(jìn)程的處理器的數(shù)量。
控制器還可包括進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度持續(xù)增加給定的一 段時(shí)間,則減少將被第二進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元大小,如果共享隊(duì)列的 長度持續(xù)減少給定的一段時(shí)間,則增加將被第二進(jìn)程消費(fèi)的數(shù)據(jù)的分配單元 大小。
在另一總體方面, 一種用于多處理環(huán)境中的存儲器管理器,包括共享 隊(duì)列,被第一進(jìn)程和第二進(jìn)程共享,其中,第一進(jìn)程產(chǎn)生數(shù)據(jù),共享隊(duì)列的 條目是將由第二進(jìn)程處理的工作;控制器,基于共享隊(duì)列的狀況來自適應(yīng)地 調(diào)節(jié)被分配到第二進(jìn)程的處理器的數(shù)量和/或?qū)⒈坏诙M(jìn)程處理的數(shù)據(jù)的分 配單元大小。
控制器可包括隊(duì)列監(jiān)視器,檢查根據(jù)將在共享隊(duì)列中處理的數(shù)據(jù)的數(shù) 量確定的共享隊(duì)列的長度;進(jìn)程調(diào)節(jié)器,如果共享隊(duì)列的長度大于預(yù)定的上 限,則增加被分配到第二進(jìn)程的處理器的數(shù)量和/或減少將被第二進(jìn)程處理的 數(shù)據(jù)的分配單元大小,如果共享隊(duì)列的長度小于預(yù)定的下限,則減少被分配 到第二進(jìn)程的處理器的數(shù)量和/或增加將被第二進(jìn)程處理的數(shù)據(jù)的分配單元 大小。
控制器可計(jì)算共享隊(duì)列的運(yùn)動平均值,如果共享隊(duì)列的長度變化指示增 加趨勢,則增加被分配到第二進(jìn)程的處理器的數(shù)量和/或減少將被第二進(jìn)程處 理的數(shù)據(jù)的分配單元大小,如果共享隊(duì)列的長度變化指示減少趨勢,則減少 被分配到第二進(jìn)程的處理器的數(shù)量或增加將^皮第二進(jìn)程處理的凄t據(jù)的分配單 元大小。
控制器可通過將一個(gè)或多個(gè)處理器置為睡眠狀態(tài)來調(diào)節(jié)分配到第二進(jìn)程 的處理器的數(shù)量。
在另 一總體方面,提供了 一種存儲用于在多處理環(huán)境中管理存儲器的程
序的計(jì)算機(jī)可讀存儲介質(zhì),包括引起計(jì)算機(jī)執(zhí)行以下內(nèi)容的命令確定被第 一進(jìn)程和第二進(jìn)程共享的共享列隊(duì)的長度和/或共享列隊(duì)的長度變化,其中, 第一進(jìn)程產(chǎn)生數(shù)據(jù),共享隊(duì)列的條目是將由第二進(jìn)程處理的工作;以及基于 共享列隊(duì)的長度和/或共享列隊(duì)的長度變化的狀況來管理第二進(jìn)程。 通過以下描述、附圖和權(quán)利要求,其它特點(diǎn)和方面將會變得清楚。


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