專利名稱:用于清除信號量保留的方法及設備的制作方法
技術領域:
本發(fā)明涉及具有共享存儲器的處理系統(tǒng),且更特定來說涉及用于清除信號量保留 的方法及設備。
背景技術:
僅需敲擊幾下鍵盤即可執(zhí)行復雜處理任務的計算機使電子工業(yè)發(fā)生了革命性改 變。這些復雜任務涉及使用總線以迅速及有效的方式彼此通信的驚人數(shù)目的復雜組件。 總線是計算機中的組件之間的通道或路徑。傳統(tǒng)上,駐留在計算機中的許多總線均己實施為共享總線。共享總線可為任何數(shù) 目的組件提供經(jīng)由共用路徑或通道來通信的裝置。近幾年間,共享總線技術已在很大 程度上被點-對-點交換連接法所替代。點-對-點交換連接法可在總線上正在彼此通信的 兩個組件之間提供直接連接??墒褂枚鄠€直接鏈接來允許幾個組件同時通信??墒褂?總線仲裁器來管理經(jīng)由所述總線的通信。實施總線架構的計算機可包含連接到存儲器的若干處理組件。所述存儲器可由系 統(tǒng)設計者或在操作期間動態(tài)地劃分為多個區(qū)域。每一處理組件均可具有其自身的專用 存儲器區(qū)域。另一方面,"共享存儲器區(qū)域"是可通過多次處理來存取的存儲器區(qū)域。 可使用信號量來管理對所述共享存儲器區(qū)域的存取。"信號量"是駐留在共享存儲器 位置中指示共享資源的可存取性的硬件或軟件旗標。需要存取共享存儲器區(qū)域的處理 組件可讀取所述信號量來確定所述共享存儲器區(qū)域的可存取性。如果所述信號量指示 共享存儲器區(qū)域可用,則所述處理組件可設定所述信號量以指示共享存儲器區(qū)域是鎖定的,并繼續(xù)存取存儲器。當處理組件讀取信號量時,存儲器為處理組件創(chuàng)建對共享存儲器區(qū)域的"保留"。 一旦處理組件設定信號量來鎖定共享存儲器區(qū)域,即清除所述保留。然而,如果處理 器在尚未設定信號量之前即被中斷,則必須清除所述保留。需要一種用于清除信號量 保留的有效裝置。發(fā)明內(nèi)容本發(fā)明揭示一種清除信號量保留以排他性地存取共享存儲器的方法。所述方法包 含向與共享存儲器相關聯(lián)的信號量存儲器區(qū)域傳輸寫入請求;及響應于所述寫入請 求禁止對信號量存儲器區(qū)域的內(nèi)容的更新。本發(fā)明揭示一種處理系統(tǒng)。所述處理系統(tǒng)包含多個處理組件;存儲器,其包括 可由所述處理組件共享的共享存儲器區(qū)域及指示共享存儲器部分的排他性寫入存取可 用性的信號量存儲器區(qū)域;及控制器,其維持信號量保留狀態(tài),其中響應于對來自所 述處理組件中的一者的信號量存儲器區(qū)域的寫入請求清除所述控制器的保留狀態(tài)且不 將數(shù)據(jù)寫入到信號量存儲器區(qū)域。本發(fā)明揭示另一種處理系統(tǒng)。所述處理系統(tǒng)包含多個處理組件;存儲器,其包 括可由所述多個處理組件共享的共享存儲器區(qū)域及指示共享存儲器部分的排他性寫入 可用性的信號量存儲器區(qū)域;及控制器,其維持信號量保留狀態(tài),其中所述處理組件 中的每一者均經(jīng)配置以向信號量存儲器區(qū)域傳輸清除信號量保留狀態(tài)且不寫入到信號 量存儲器區(qū)域的寫入請求。此揭示的技術提供的優(yōu)點在于信號量保留可被清除而不占用額外的存儲器且避 免了存儲器存取步驟。根據(jù)以下的詳細說明,本發(fā)明的額外優(yōu)點對所屬技術領域的技 術人員將變得顯而易見,在以下說明中僅以圖解說明預期用于執(zhí)行本發(fā)明的最佳模式 的方式而只顯示及描述了本發(fā)明的優(yōu)選實施例。應認識到,本發(fā)明能夠具有其它及不 同的實施例,且能夠對其幾個細節(jié)做出各種明顯方面的修改且不背離本發(fā)明。因此, 應將各附圖及本說明本質上視為說明性而非限定性。
本文以實例的方式而非以限定的方式在附圖的各圖式中圖解說明本發(fā)明,且在附 圖中相同的參考編號指代相同的元件,且在附圖中圖1是圖解說明處理系統(tǒng)的實例的功能性方塊圖。 圖2是所述處理系統(tǒng)的元件的更詳細的局部方塊圖。 圖3是圖解說明處理系統(tǒng)的操作的流程圖。
具體實施方式
圖1是圖解說明處理系統(tǒng)的實例的功能性方塊圖。所述處理系統(tǒng)可以是計算機或 駐留在計算機中,且能夠處理、檢索及存儲信息。所述處理系統(tǒng)可以是獨立的系統(tǒng)或 嵌入在裝置中,例如有線或無線電話、個人數(shù)字助理(PDA)、膝上型、桌上型計 算機(PC)、傳呼機、調(diào)制解調(diào)器、游戲控制臺、數(shù)碼相機、視頻會議設備、廣播設 備或任何其它需要數(shù)據(jù)處理能力的合適裝置。存儲器100通過存儲器控制器104及系 統(tǒng)總線互連及總線仲裁器106耦合到一個或一個以上處理組件102a及102b。每一處 理組件均可以是任何類型的總線掌控組件,其中包含(舉例來說)微處理器、數(shù)字 信號處理器(DSP)、橋接器、可編程邏輯、離散門或晶體管邏輯、或任何其它信息 處理組件。雖然為簡化說明僅顯示兩個處理組件,但可采用大量處理組件。存儲器可由系統(tǒng)設計者或在操作期間動態(tài)地劃分為多個區(qū)域。存儲器區(qū)域可專用于每一處理組件,而存儲器的其它區(qū)域可由多個處理組件共享以供存取。術語"存儲 器區(qū)域"是指任何存儲器裝置、存儲器裝置的任何部分、存儲器映射區(qū)域等等。共享 的共用存儲器資源可以是任何類型的總線從屬組件,其中包含(舉例來說)寄存器、 存儲器、橋接器或任何其它能夠檢索及存儲信息的組件。為了以有效的方式管理存儲器存取,通常將總線仲裁器耦合到總線。例如,尋求對共享存儲器區(qū)域的存取的處理組件102a可通過總線向總線仲裁器廣播讀取或寫入 請求。然后,總線仲裁器可向請求處理組件102a授予對共享存儲器區(qū)域的存取以執(zhí)行 所述讀取或寫入操作。如果來自一個或一個以上處理組件的多個讀取及/或寫入請求在 總線仲裁器爭辯,則總線仲裁器可確定將要執(zhí)行所述讀取及/或寫入操作的順序并根據(jù) 總線仲裁方案動態(tài)地配置總線互連。所述總線仲裁方案可視特定的應用及總體設計限 制條件而變化。對存儲器的存取可基于優(yōu)先權標準與公平分配考慮之間的平衡。處理器可通過在地址總線上設置地址來廣播讀取請求。可以類似的方式做出寫入 請求,其中額外的數(shù)據(jù)設置在數(shù)據(jù)總線上。所述地址總線及數(shù)據(jù)總線可以是單獨的總 線或單個分時總線??刹捎眠厧帕顚⑦m當?shù)目刂菩盘柼峁┙o存儲器控制器104。或 者,可在單獨的總線上或單個分時總線上將所述控制信號與所述地址及數(shù)據(jù)多路復用。 所述控制信號還可包含(舉例來說)讀取/寫入選通脈沖、排他性或非排他性操作、 有效負載大小信號及(在寫入操作的情形下)寫入字節(jié)啟用??墒褂?寫入字節(jié)啟用" 來指示將使用總線上的哪些字節(jié)通道來廣播用于寫入操作的數(shù)據(jù)。舉例來說,32位數(shù) 據(jù)總線上的2字節(jié)有效負載廣播可使用4個字節(jié)通道中的2個字節(jié)通道??墒褂盟?寫入字節(jié)啟用來向存儲器控制器指示將使用數(shù)據(jù)總線上2個字節(jié)通道中的哪一個來廣 播所述有效負載。處理應用通常要求在未經(jīng)中斷的一序列操作期間對寫入到共享存儲器區(qū)域的排 他性存取。處理系統(tǒng)必須向要求這一排他性存取的處理器提供適當?shù)拇鎯ζ鞔嫒」芾怼?圖2是存儲器100及存儲器控制器104的更詳細方塊圖。通過"信號量"操作來管控 共享存儲器的排他性可存取性。將存儲器100劃分為多個區(qū)域。存儲器區(qū)域110及112 分別專用于處理器102a及102b。存儲器區(qū)域114是由多個處理器共享的存儲器區(qū)域。 如果此區(qū)域適于適定的系統(tǒng)使用,則可進一步將其劃分為多個部分,其中每一部分均 由多個處理器系統(tǒng)的特定處理器共享。區(qū)域116專用于信號量存儲裝置。存儲器控制器104包含排他性狀態(tài)機監(jiān)視器119及120。監(jiān)視器119是與處理器 102a相關聯(lián)的排他性監(jiān)視器,其用于監(jiān)視及控制所述處理器對共享存儲器114的排他 性存取操作。監(jiān)視器120是與102b相關聯(lián)的排他性監(jiān)視器。如先前在本發(fā)明的發(fā)明背景部分中所解釋,信號量是駐留在信號量存儲器區(qū)域 116中且指示共享存儲器資源114的可存取性或不可存取性的旗標。尋求對共享存儲 器區(qū)域的排他性存取的處理組件可經(jīng)由相關聯(lián)的存儲器控制器監(jiān)視器讀取信號量存儲 器區(qū)域,以確定共享存儲器區(qū)域或存儲器區(qū)域部分的可存取性。如果所述信號量指示 共享存儲器區(qū)域可供用于存取,則所述存儲器控制器可在信號量區(qū)域中設定旗標來指200680046989. 3說明書第4/6頁示共享存儲器區(qū)域是"鎖定的",并繼續(xù)存取所述存儲器以由相關聯(lián)的處理器寫入到 共享存儲器區(qū)域114中。在信號量的鎖定狀態(tài)期間,沒有其它處理組件能夠存取共享 存儲器。 一旦完成處理操作,所述旗標即由處理器控制器移除且所述信號量返回到指 示可存取性的未鎖定狀態(tài)。通常調(diào)用信號量保留方案來管理對共享存儲器的排他性存取。作為獲得對共享存 儲器的排他性寫入存取的先決條件,必須在請求處理器的相關聯(lián)存儲器控制器監(jiān)視器 中為所述請求處理器建立保留。所述控制器在信號量讀取操作發(fā)生時設定保留狀態(tài)。 舉例來說,指令代碼序列可需要由處理器102a進行排他性存取以寫入到共享存儲器區(qū) 域114中的位置。為執(zhí)行處理器所要求的寫入排他性請求,必須首先讀取信號量來確 定區(qū)域114是否可由102a存取。信號量讀取操作起始控制器來為監(jiān)視器119中的處理 器102a設定保留狀態(tài)。在沒有鎖定共享存儲器區(qū)域的情況下,處理器102a可立即獲得存取或等到隨后 在代碼序列中獲得存取。處理器102b也可在沒有鎖定信號量的情況下在監(jiān)視器120 中建立保留狀態(tài)。如果兩個處理器同時具有保留狀態(tài),則使得其請求將贏得對存儲器 控制器的仲裁的第一處理器將獲得對共享存儲器區(qū)域的排他性存取。一旦存取區(qū)域114,信號量旗標即被設定且處理器102a獲得排他性存取。響應于 寫入排他性命令,監(jiān)視器119激活控制器以清除監(jiān)視器119中所存儲的保留狀態(tài),以 及對監(jiān)視器120中可能已存儲的相同地址的任何保留。當擁有鎖定的處理器寫入指示 信號量不再是鎖定的信號量位置時,釋放所述信號量的鎖定狀態(tài)。在建立保留之后,處理器102a對代碼序列的處理可異常中止,或所述代碼序列 可能會在共享存儲器區(qū)域的寫入操作發(fā)生之前已被取代。如果共享存儲器尚未由所述 處理器中的任一者存取,則保留將未被清除。由于存儲器控制器監(jiān)視器不能區(qū)分保留 與先前的代碼序列還是與隨后的代碼序列相關聯(lián),協(xié)議要求在可獲得新保留來用于后 續(xù)排他性寫入存取之前清除廢棄的保留。因此,如果一保留不會發(fā)生排他性寫入操作, 則必須采取措施清除所述保留。在處理系統(tǒng)的至少一個實施例中,可通過向信號量存儲器區(qū)域116廣播寫入請求 而同時禁止處理器寫入到信號量存儲器區(qū)域116來清除信號量保留。這可通過多種方 式來實現(xiàn)。舉例來說,可使用寫入字節(jié)啟用以在由處理器做出的寫入到信號量存儲器 區(qū)域116的請求期間停用數(shù)據(jù)總線上的所有字節(jié)通道。因此,處理器的保留已清除, 但信號量存儲器區(qū)域116尚未更新,且由此保持未鎖定來由另一處理器使用。信號量清除操作圖解說明于流程3中。在步驟S20處,處理器102a起始對 代碼序列的處理。在步驟S22處確定處理器是否需要對共享存儲器地址的排他性寫入 操作。如果不需要,則繼續(xù)進行處理直到完成所述代碼序列處理。如果在步驟S22中 確定需要排他性寫入,則處理器在步驟S24處向信號量地址發(fā)布讀取命令。此命令在 與處理器102a相關聯(lián)的存儲器控制器監(jiān)視器119中設定保留。在步驟S26處,讀取信號量地址并確定對共享存儲器區(qū)域的排他性存取是否可用。如果不能,則在步驟S28處清除保留且處理流程返回到步驟S20來繼續(xù)處理代碼串。 如果信號量不指示鎖定狀態(tài),則在步驟S28處確定與保留相關聯(lián)的代碼序列是否已異 常中止。如果所述代碼序列仍將被處理,則處理器102a發(fā)布排他性寫入命令。存儲器 控制器104在認識到在監(jiān)視器119中所設定的處理器102a的保留狀態(tài)時,在步驟S30 處向處理器提供對共享存儲器區(qū)域114的存取。所述存儲器控制器將鎖定旗標寫入到 信號量存儲器并清除任何現(xiàn)有的信號量保留。處理器102a通過對共享存儲器區(qū)域的排 他性存取來繼續(xù)執(zhí)行代碼序列。在步驟S32處,處理器已完成其操作序列并放棄排他 性存取。存儲器控制器104清除信號量旗標來指示共享存儲器可供存取。在步驟S20 處可處理新的代碼序列。如果在步驟S28處確定代碼序列已異常中止,則必須從存儲器控制器中清除保留。 在步驟S34處,處理器發(fā)布排他性寫入命令。處理器設定寫入字節(jié)啟用來啟用數(shù)據(jù)總 線上的所有字節(jié)通道。響應于所述寫入命令,存儲器控制器清除監(jiān)視器119中的保留 狀態(tài),且由于不存在啟用的字節(jié)通道而不寫入到信號量存儲器區(qū)域??稍诓襟ES20處 處理新的代碼序列。結合本文所揭示實施例描述的各種說明性邏輯塊、模塊、電路、元件及/或組件均 可由通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣 列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組件、或其經(jīng)設計 以執(zhí)行本文所述功能的任何組合來實施或執(zhí)行。通用處理器可以是微處理器,或者, 所述處理器也可以是任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機。處理器也可實 施為計算組件的組合,例如DSP與微處理器的組合、多個微處理器的組合、 一個或一 個以上微處理器與DSP核心的聯(lián)合、或任何其它這種配置。結合本文所揭示實施例描述的方法或算法可直接包含在硬件、由處理器執(zhí)行的軟 件模塊或這兩者的組合中。軟件模塊可駐留在RAM存儲器、閃存存儲器、ROM存 儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬磁盤、可裝卸磁盤、CD-ROM 或所屬技術領域中已知的任何其它形式的存儲媒體中??蓪⒋鎯γ襟w耦合到處理器以 使所述處理器可從所述存儲媒體讀取信息及將信息寫入到所述存儲媒體。另一選擇為, 所述存儲媒體可與所述處理器成一體。提供上文對所揭示實施例的說明以使所屬技術領域的技術人員能夠做出或使用 本發(fā)明。所屬技術領域的技術人員將很容易得知對這些實施例的各種修改,且本文所 界定的一般原理也可適用于其它實施例而不背離本發(fā)明的精神或范圍。因此,并不打 算將本發(fā)明限定為本文所示實施例,而是將賦予其與權利要求書相一致的全部范圍, 其中除非明確指明,否則,以單數(shù)形式提及一元件并不是表示"一個且僅一個",而 是指"一個或一個以上"。所屬技術領域的技術人員已知或以后將得知的此整個揭示 內(nèi)容所述各實施例的元件的所有結構及功能等效物均明確地以引用方式并入本文中并 將涵蓋于權利要求書內(nèi)。此外,無論是否已在權利要求書中明確引用此揭示內(nèi)容,本 文所揭示的內(nèi)容均不打算奉獻給公眾。權利要求書要素均不依據(jù)35 U.S.C. § 112第六段的規(guī)定加以解釋,除非使用短語"用于…的裝置"明確描述所述要素,或在方法權 利要求中使用短語"用于…的步驟"來描述所述要素。
權利要求
1、一種清除信號量保留以排他性地存取共享存儲器的方法,所述方法包括傳輸對與所述共享存儲器相關聯(lián)的信號量存儲器區(qū)域的寫入請求;及響應于所述寫入請求禁止對所述信號量存儲器區(qū)域的內(nèi)容的更新。
2、 如權利要求1所述的方法,其中通過傳輸具有所述寫入請求的控制信號來禁 止對所述信號量存儲器區(qū)域的內(nèi)容的更新。
3、 如權利要求2所述的方法,其中所述控制信號包括寫入字節(jié)啟用。
4、 如權利要求3所述的方法,其中提供數(shù)據(jù)總線以經(jīng)由多個字節(jié)通道傳輸數(shù)據(jù), 且其中通過設定所述寫入字節(jié)啟用以停用所述數(shù)據(jù)總線上的所有字節(jié)通道來禁止對所 述信號量存儲器區(qū)域的內(nèi)容的更新。
5、 如權利要求1所述的方法,其進一步包括響應于所述寫入請求將控制器的保留狀態(tài)從保留狀態(tài)變?yōu)榉潜A魻顟B(tài)。
6、 如權利要求5所述的方法,其中所述保留狀態(tài)與來自多個處理組件的一特定 處理組件相關聯(lián),且從所述特定處理組件傳輸所述寫入請求。
7、 如權利要求6所述的方法,其中所述控制器包括多個處理組件中的每一者的 保留狀態(tài),且所述寫入請求僅影響曾傳輸所述寫入請求的所述處理組件的所述控制器 的所述保留狀態(tài)的變化。
8、 一種處理系統(tǒng),其包括多個處理組件;存儲器,其包括可由所述處理組件共享的共享存儲器區(qū)域及指示所述共享存儲器部分的排他性寫入存取可用性的信號量存儲器區(qū)域;及控制器,其維持信號量保留狀態(tài),其中響應于來自所述處理組件中的一者的對所述信號量存儲器區(qū)域的寫入請求清除所述控制器的保留狀態(tài),但不將數(shù)據(jù)寫入到所述 信號量存儲器區(qū)域。
9、 如權利要求8所述的處理系統(tǒng),其中所述處理組件中的所述一者通過向所述 控制器傳輸具有寫入請求的控制信號來防止在對所述信號量存儲器區(qū)域的所述寫入請求期間將數(shù)據(jù)寫入到所述信號量存儲器區(qū)域。
10、 如權利要求9所述的處理系統(tǒng),其中所述控制信號包括寫入字節(jié)啟用。
11、 如權利要求10所述的處理系統(tǒng),其進一步包括位于所述處理器與所述控制 器之間的數(shù)據(jù)總線,所述數(shù)據(jù)總線具有多個字節(jié)通道,且其中所述處理組件中的所述 一者通過設定所述寫入字節(jié)啟用以停用所述數(shù)據(jù)總線上的所有字節(jié)通道來防止在對所 述信號量存儲器區(qū)域的寫入請求期間將數(shù)據(jù)寫入到所述信號量存儲器區(qū)域。
12、 如權利要求8所述的處理系統(tǒng),其中所述控制器含有多個處理組件中的每一 者的保留狀態(tài),且所述寫入請求僅影響曾傳輸所述寫入請求的所述處理組件的所述控制器的所述保留狀態(tài)的變化。
13、 一種處理系統(tǒng),其包括 多個處理組件;存儲器,其包括可由所述多個處理組件共享的共享存儲器區(qū)域及指示所述共享存 儲器區(qū)域的排他性寫入存取可用性的信號量存儲器區(qū)域;及 控制器,其維持信號量保留狀態(tài);其中所述處理組件中的每一者均經(jīng)配置以傳輸對所述信號量存儲器區(qū)域的清除 信號量保留狀態(tài)但不寫入到所述信號量存儲器區(qū)域的寫入請求。
14、 如權利要求13所述的處理系統(tǒng),其中所述處理組件中的每一者均經(jīng)配置以 通過向所述控制器傳輸具有寫入請求的控制信號來防止在對所述信號量存儲器區(qū)域的 所述寫入請求期間將數(shù)據(jù)寫入到所述信號量存儲器區(qū)域。
15、 如權利要求14所述的處理系統(tǒng),其中所述控制信號包括寫入字節(jié)啟用。
16、 如權利要求15所述的處理系統(tǒng),其進一步包括位于所述處理器與所述控制 器之間的數(shù)據(jù)總線,所述數(shù)據(jù)總線具有多個字節(jié)通道,且其中所述處理組件中的每一 者均進一步經(jīng)配置以通過設定所述寫入字節(jié)啟用以停用所述數(shù)據(jù)總線上的所有字節(jié)通 道來防止在對所述信號量存儲器區(qū)域的寫入請求期間將數(shù)據(jù)寫入到所述信號量存儲器 區(qū)域。
17、 如權利要求14所述的處理系統(tǒng),其中所述控制器含有所述處理組件中的每 一者的保留狀態(tài),且所述寫入請求僅影響曾傳輸所述寫入請求的所述處理組件的所述 控制器的所述保留狀態(tài)的變化。
全文摘要
信號量(116)操作管理對由多個處理元件共享的存儲器(114)的排他性存取。由存儲器控制器監(jiān)視用于由處理元件(102a)、(102b)進行的排他性存取的信號量保留狀態(tài)。為清除廢棄的保留狀態(tài),傳輸命令信號以進行對存儲器的寫入操作且同時禁止對所述存儲器的內(nèi)容的更新。響應于接收到所述命令信號將控制器(104)處的保留狀態(tài)從保留狀態(tài)變?yōu)榉潜A魻顟B(tài)。
文檔編號G06F9/46GK101331454SQ200680046989
公開日2008年12月24日 申請日期2006年10月20日 優(yōu)先權日2005年10月20日
發(fā)明者托馬斯·安德魯·薩托里烏斯, 托馬斯·菲利普·施派爾, 詹姆斯·諾里斯·迪芬德爾費爾, 賈亞·普拉喀什·蘇布拉馬尼亞姆·賈納桑 申請人:高通股份有限公司