亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在多處理器系統(tǒng)中共享存儲器的方法和裝置的制作方法

文檔序號:6569010閱讀:237來源:國知局
專利名稱:用于在多處理器系統(tǒng)中共享存儲器的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般的涉及多處理器系統(tǒng),更具體地涉及一種用于在多處 理器系統(tǒng)中共享存儲器的方法和裝置。
背景技術(shù)
典型地,在處理器間共享存儲器采用信號量方式完成,信號量是 一種在多處理環(huán)境中限制訪問共享存儲器的經(jīng)典方法。信號量經(jīng)常由
API (應(yīng)用程序接口)以庫調(diào)用的方式來管理。對于實時應(yīng)用(例如流
視頻)來說,該類調(diào)用耗時太長,從而影響到終端用戶可以察覺到的 應(yīng)用的性能。
因此,產(chǎn)生了在多處理器系統(tǒng)中提高共享存儲器應(yīng)用的性能的需要。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的實施方式提供了一種用于在多處理器系統(tǒng)中共享存 儲器的方法和裝置。
在本發(fā)明的第一實施方式中,描述一種用于在多處理器系統(tǒng)中共 享存儲器的方法。該方法具有以下步驟,為兩個或多個處理器建立存 儲器緩沖池,并為每個存儲器緩沖池建立指向相應(yīng)的存儲器緩沖區(qū)的 緩沖區(qū)指針的陣列。該方法還包括以下步驟,對于每個緩沖區(qū)指針的 陣列,為擁有存儲器緩沖池的處理器建立消耗指針,以及為共享所述 存儲器緩沖池的另一個處理器建立釋放指針,每個指針最初都指向陣 列的預(yù)定位置。該方法還包括根據(jù)已消耗和已釋放的緩沖區(qū)來調(diào)節(jié)消 耗指針和釋放指針的步驟。在本發(fā)明的第二實施方式中,多處理器系統(tǒng)具有用于共享存儲器 的計算機可讀存儲介質(zhì)。該存儲介質(zhì)有計算機指令,用于在處理器間 建立存儲器緩沖池,以及為每一個存儲器緩沖池,建立緩沖區(qū)指針的 陣列,該緩沖區(qū)指針指向?qū)?yīng)的存儲器緩沖區(qū)。該存儲介質(zhì)進一步包 括計算機指令,用于在每一個緩沖區(qū)指針的陣列為擁有存儲器緩沖池
的處理器建立消耗指針,和為共享所述存儲器緩沖池的另一個處理器 建立釋放指針,每個指針最初都指向陣列的預(yù)定位置。存儲介質(zhì)進一 步包括計算機指令,用于根據(jù)已消耗和已釋放的緩沖區(qū)來調(diào)節(jié)消耗指 針和釋放指針。
在本發(fā)明的第三實施方式中,用于共享存儲器的多處理器系統(tǒng)具 有存儲器,和兩個或多個處理器。對處理器進行編程以在處理器間建 立存儲器緩沖池,并為每個存儲器緩沖池,建立指向相應(yīng)存儲器緩沖 區(qū)的緩沖區(qū)指針的陣列。進一步對處理器進行編程,以對于每一個緩 沖區(qū)指針陣列,為擁有存儲器緩沖池的處理器建立消耗指針,并為共 享所述存儲器緩沖池的另一個處理器建立釋放指針,每個指針最初都 指向陣列的預(yù)定位置。進一步對該處理器進行編程,以根據(jù)已消耗和
已釋放的緩沖區(qū)來調(diào)節(jié)消耗指針和釋放指針。


圖1是根據(jù)本發(fā)明一個實施方式的多處理器系統(tǒng)的框圖。 圖2是根據(jù)本發(fā)明一個實施方式的圖1中的每一個處理器所使用 的存儲器緩沖池的框圖。
圖3示出了根據(jù)本發(fā)明的一個實施方式的多處理器系統(tǒng)的每一個 處理器中的操作方法的流程圖。
具體實施例方式
雖然說明書歸納了權(quán)利要求,該權(quán)利要求限定了被認為具有新穎 性的本發(fā)明實施方式的特征,但應(yīng)該認為,結(jié)合附圖,仔細研究以下說明,將更好地理解本發(fā)明的實施方式,其中,延續(xù)相同的附圖標(biāo)記。 圖1是根據(jù)本發(fā)明的一個實施方式的多處理器系統(tǒng)100的框圖。
多處理器系統(tǒng)100包括一存儲器102和兩個或多個處理器104。存儲器 102可以是任何傳統(tǒng)的存儲設(shè)備,例如大容量存儲器磁盤驅(qū)動器、RAM、 SRAM、 DRAM、 Flash,和/或類似的可讀寫存儲介質(zhì)。處理器104可 以是任何傳統(tǒng)的計算技術(shù),例如微處理器,和/或DSP (數(shù)字信號處理 器)。根據(jù)本發(fā)明的多處理器系統(tǒng)100,可以被任意數(shù)量的傳統(tǒng)設(shè)備所 使用,該類傳統(tǒng)設(shè)備包括無限制的移動電話、PDA (個人數(shù)字助理)、 膝上電腦和臺式電腦,僅僅提及很少的一些。多處理器系統(tǒng)100也可 操作任何使用多處理器資源的傳統(tǒng)軟件應(yīng)用。
圖3示出了根據(jù)本發(fā)明的一個實施方式,描述用于在所述處理器 104之間共享存儲器的多處理器系統(tǒng)IOO的每一個處理器104中使用的 方法200的流程圖。方法200從步驟202開始,如圖2中所示,每一 個處理器104都建立存儲器緩沖池IIO和120。在步驟204,為每一個
緩沖池建立一個指向相應(yīng)存儲器緩沖區(qū)的緩沖區(qū)指針的陣列。在步驟 206,在該共享池描述符區(qū)域,分別被描述為Fr_Buff—Rel—Ptr (空閑緩 沖區(qū)釋放指針)和Fr_Buff—Cons—Ptr (空閑緩沖區(qū)消耗指針)的釋放和 消耗指針依次引用這些陣列。共享池描述符還可以包括緩沖區(qū)尺寸和 緩沖區(qū)計數(shù)。緩沖區(qū)尺寸指示每個存儲器緩沖區(qū)的存儲容量(以字節(jié)、 字、長字或其它),緩沖區(qū)計數(shù)指示在存儲器緩沖池中有多少緩沖區(qū) 指針和對應(yīng)的存儲器緩沖區(qū)可用。
最初,每一個釋放和消耗指針都指向緩沖區(qū)指針陣列的一個預(yù)定 位置。在本實例中,指針指向陣列的開始處。然而應(yīng)該理解,也可以 使用陣列中的其它開始點。圖2中的緩沖池可以在處理器104間被共 享,或被內(nèi)部地消耗。因此,在步驟208,每一個處理器104都做出存 儲器池是被內(nèi)部使用的還是被共享使用的確定。如果被共享,處理器 104繼續(xù)執(zhí)行步驟210,以確定消耗指針是否指向空值。本文中,空值是指一個不存在或不可用的指針。對于本領(lǐng)域技術(shù)人員,顯然可以將 表示空值的任何技術(shù)應(yīng)用于本發(fā)明。當(dāng)諸如這樣的條件被檢測到時, 表示存儲器緩沖池滿(即,不存在可用的空閑存儲器)。在這種情況
下,可以重新對處理器104編程來重復(fù)步驟208至210,直至釋放一個 或多個存儲器緩沖區(qū)。
另一方面,如果檢測到一個可用的緩沖區(qū)指針,處理器繼續(xù)執(zhí)行 步驟212,將緩沖區(qū)指針讀到其內(nèi)部存儲器中,以確定在何處訪問存儲 器緩沖區(qū)。為確認該存儲器緩沖區(qū)的消耗,處理器104繼續(xù)執(zhí)行步驟 214,將剛從緩沖區(qū)指針陣列中讀取的緩沖區(qū)指針無效,然后遞增消耗 指針216。根據(jù)需要的緩沖區(qū)的數(shù)量,處理器104將步驟210至216重 復(fù)執(zhí)行需要的次數(shù),(依據(jù)緩沖區(qū)計數(shù)取模的方式)。 一旦處理器104 已經(jīng)獲得了它所需要的所有存儲器緩沖區(qū),繼續(xù)執(zhí)行步驟218,與另一 個處理器104共享緩沖區(qū)指針和與之關(guān)聯(lián)的存儲器緩沖區(qū)??梢允褂?任何用于共享存儲器與其它處理器104 (例如消息緩沖區(qū)一未示出)通 信的方式。
一旦另一個處理器104已經(jīng)消耗了共享存儲器(即,已經(jīng)在共享 存儲器上執(zhí)行了所有需要的任務(wù),并且不再需要共享的存儲器緩沖 區(qū)),繼續(xù)執(zhí)行步驟220,將由釋放指針(如在步驟214由具有存儲器 池的處理器104所創(chuàng)建的)指向的空值替換為提供給所述處理器104 的共享緩沖區(qū)指針。對于每一個由共享緩沖區(qū)指針替換的空值,釋放 指針遞增到緩沖區(qū)指針陣列的下一位置。重復(fù)執(zhí)行步驟220至222至 所需要被釋放(空閑)的緩沖區(qū)指針數(shù)量的次數(shù)。
這樣,因為在處理器104間共享了緩沖區(qū)指針和與之對應(yīng)的存儲 器緩沖區(qū),接收該共享存儲器的接收方處理器,在不再使用所述存儲 器時,立刻自主地補充該共享存儲器。剛剛描述的在處理器104之間 消耗和釋放緩沖區(qū)的自主動作,比利用時間消耗信號量庫調(diào)用的現(xiàn)有 技術(shù)系統(tǒng)具有實質(zhì)性的性能改進。當(dāng)處理器104打算為其本身消耗存儲器緩沖區(qū)時,繼續(xù)執(zhí)行步驟
224至230。這些步驟在操作上與在步驟210至216中描述的一樣。艮P , 處理器104根據(jù)需要重新獲取緩沖區(qū)指針,使它們的存在無效,并且 根據(jù)重新獲取到的存儲器緩沖區(qū)數(shù)量遞增消耗指針。在步驟232,在上 述步驟中重新獲取的存儲器緩沖區(qū),被處理器104消耗。 一旦被消耗 掉,在步驟234中消耗指針就遞減,用被消耗的緩沖區(qū)指針替換先前 創(chuàng)建的空值,從而釋放(空閑)所述指針和與之相關(guān)聯(lián)的存儲器緩沖 區(qū)以供將來使用。重復(fù)執(zhí)行步驟234和236至需要的次數(shù),以釋放處 理器104不再需要的被消耗的存儲器緩沖區(qū)。
能夠很容易地應(yīng)用上述實施方式,使得一個處理器104可以很容 易地與兩個或多個處理器共享存儲器。此外,在處理器104與新處理 器動態(tài)交流的情況下,可以對所述處理器進行編程以調(diào)節(jié)其存儲器池, 以適應(yīng)與另外的處理器進行存儲器共享。例如,具有1M字節(jié)的緩沖空 間的存儲器池的處理器104,可以將該緩沖池重新設(shè)置為兩個具有圖2 結(jié)構(gòu)的并按照方法200工作的500K字節(jié)的緩沖池。這樣的重新設(shè)置可 以被重復(fù)(或撤銷)多次,該次數(shù)為在多處理器環(huán)境中共享的存儲器 可能需要增加或移除的次數(shù)。
對于讀者來說,根據(jù)本發(fā)明的實施方式,顯然可以在硬件、軟件 及硬件和軟件的組合來實現(xiàn)。因此,可以將所述實施方式嵌入到計算 機程序產(chǎn)品中,該計算機程序產(chǎn)品包括能夠執(zhí)行在此所描述的方法的 所有特征,并且當(dāng)加載到計算機系統(tǒng)中時,該計算機程序產(chǎn)品可以像 計算機指令一樣執(zhí)行這些方法。本上下文中的計算機程序,是指用任 何語言、代碼或符號的指令集合的任何表達,其中該指令集合旨在使 具有信息處理能力的系統(tǒng),以直接地或者在以下一個或者兩個步驟之 后執(zhí)行特定的功能,a)轉(zhuǎn)換到另一種語言、代碼或符號;b)以不同的 物質(zhì)形態(tài)再生產(chǎn)。顯然,根據(jù)本發(fā)明的實施方式可以用于許多裝置。因此,盡管說 明書使用特定的裝置和方法,在此的目的和內(nèi)涵也適合并適用于在此 未描述的其它裝置。因此,對于那些本領(lǐng)域技術(shù)人員來說,顯然可以 在不偏離本發(fā)明的精神和范圍的情況下,對所公開的實施方式進行修 改。
因此,應(yīng)該認為所描述的實施方式僅是本發(fā)明實施方式的一些較 突出的特征和應(yīng)用實例。也應(yīng)該理解,權(quán)利要求旨在覆蓋在此所描述 的結(jié)構(gòu)以及執(zhí)行在此所列舉的功能,而不僅是結(jié)構(gòu)上的等同物。從而, 從說明書中讀到的等效結(jié)構(gòu)被解釋為包含在以下權(quán)利要求定義的范圍 內(nèi)。因此,應(yīng)該對以下權(quán)利要求而不是對上述說明書做出參考,指示 本發(fā)明的實施例的范圍。
權(quán)利要求
1.一種用于在多處理器系統(tǒng)中共享存儲器的方法,包括以下步驟為兩個或多個處理器建立存儲器緩沖池;為每一個存儲器緩沖池,建立指向相應(yīng)的存儲器緩沖區(qū)的緩沖區(qū)指針陣列;對每一個緩沖區(qū)指針陣列,為擁有所述存儲器緩沖池的處理器建立消耗指針,以及為共享所述存儲器緩沖池的另一個處理器建立釋放指針,每個指針最初都指向所述陣列的預(yù)定位置;以及根據(jù)被消耗和被釋放的緩沖區(qū),調(diào)節(jié)所述消耗指針和釋放指針。
2. 根據(jù)權(quán)利要求l所述的方法,根據(jù)以下步驟在處理器之間消耗 和釋放緩沖區(qū)指針以及相應(yīng)的存儲器緩沖區(qū)讀取由所述消耗指針指向的緩沖區(qū)指針;將所述緩沖區(qū)指針無效;遞增所述消耗指針到下一個緩沖區(qū)指針;在處理器之間共享所述被消耗的緩沖區(qū)指針和與之相關(guān)聯(lián)的存儲 器緩沖區(qū);利用所述共享的緩沖區(qū)指針替換由所述釋放指針指向的空值;以及遞增所述釋放指針。
3. 根據(jù)權(quán)利要求2所述的方法,包括以下步驟 在所述讀取步驟之前,確認所述消耗指針不指向空值;以及 如果檢測到空值,停止消耗操作直到所述消耗指針指向可用的緩沖區(qū)指針。
4. 根據(jù)權(quán)利要求l所述的方法,由控制所述存儲器的處理器,根 據(jù)以下步驟消耗和釋放緩沖區(qū)指針以及相應(yīng)的存儲器緩沖區(qū)讀取由所述消耗指針指向的緩沖區(qū)指針;將所述緩沖區(qū)指針無效; 遞增所述消耗指針到下一個緩沖區(qū)指針;消耗與所述被消耗的緩沖區(qū)指針相關(guān)聯(lián)的所述存儲器緩沖區(qū); 遞減所述消耗指針;以及利用所述被消耗的緩沖區(qū)指針替換由被遞減的消耗指針指向的空 值,從而釋放所述指針和與之相關(guān)聯(lián)的存儲器緩沖區(qū)。
5. 根據(jù)權(quán)利要求4所述的方法,包括以下步驟 在所述讀取步驟之前,確認所述消耗指針不指向空值;以及 如果檢測到空值,停止消耗操作直到所述消耗指針指向可用的緩沖區(qū)指針。
6. 根據(jù)權(quán)利要求l所述的方法,包括為每一個存儲器緩沖池,建 立對應(yīng)于每一個所述存儲器緩沖區(qū)的緩沖區(qū)尺寸和緩沖區(qū)計數(shù)中的至 少一個的步驟。
7. 根據(jù)權(quán)利要求1的方法,包括在一處理器處調(diào)節(jié)其存儲器緩沖池和對應(yīng)的消耗指針和釋放指針,以適應(yīng)與另外的處理器進行存儲器 共享的步驟。
8. —種用于共享存儲器的多處理器系統(tǒng),包括 存儲器;以及兩個或多個處理器,編程每一個處理器,用于 在所述處理器之間建立存儲器緩沖池;為每一個存儲器緩沖池,建立緩沖區(qū)指針陣列,指向?qū)?yīng)的存儲 器緩沖區(qū);對每一個緩沖區(qū)指針陣列,為擁有所述存儲器緩沖池的處理器建 立消耗指針,以及為共享所述存儲器緩沖池的另一個處理器建立釋放 指針,每個指針最初都指向所述陣列的預(yù)定位置;以及根據(jù)被消耗和被釋放的緩沖區(qū),調(diào)節(jié)所述消耗指針和釋放指針。
9. 根據(jù)權(quán)利要求8所述的多處理器系統(tǒng),其中,編程所述處理器,用于讀取由所述消耗指針指向的緩沖區(qū)指針;將所述緩沖區(qū)指針無效;遞增所述消耗指針到下一個緩沖區(qū)指針;在處理器之間共享所述被消耗的緩沖區(qū)指針和與之相關(guān)聯(lián)的存儲 器緩沖區(qū);利用所述共享的緩沖區(qū)指針替換由所述釋放指針指向的空值;以及遞增所述釋放指針。
10. 根據(jù)權(quán)利要求9所述的多處理器系統(tǒng),其中,編程所述處理 器,用于在所述讀取步驟之前,確認所述消耗指針不指向空值;以及 如果檢測到空值,停止消耗操作直到所述消耗指針指向可用的緩 沖區(qū)指針。
全文摘要
用于共享存儲器的一種多處理器系統(tǒng)(100)包括存儲器(102),以及兩個或多個處理器(104)。編程所述處理器以在所述處理器之間建立(202)存儲器緩沖池,并且為每一個存儲器緩沖池建立(204)緩沖區(qū)指針陣列,指向相應(yīng)的存儲器緩沖區(qū)。進一步編程所述處理器,對每一個緩沖區(qū)指針陣列,為擁有存儲器緩沖池的處理器建立(206)消耗指針,并且為共享所述存儲器緩沖池的另一個處理器建立(206)釋放指針,每一個指針最初都指向所述陣列的預(yù)定位置,根據(jù)被消耗和被釋放的緩沖區(qū)調(diào)節(jié)(208-236)消耗指針和釋放指針。
文檔編號G06F3/00GK101310241SQ200680034803
公開日2008年11月19日 申請日期2006年8月22日 優(yōu)先權(quán)日2005年9月22日
發(fā)明者斌 劉, 沙爾貝勒·克哈萬德, 瓊·克哈萬德 申請人:摩托羅拉公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1