含適當(dāng)屬性來確定讀取偏好型排他命令和升級偏好型排他命令。舉例來說,為了提供讀取偏好型排他命令的功能,可以將指示發(fā)出請求的處理器可能需要線具有排他的屬性添加到讀取命令。在大多數(shù)情況下,其它處理代理將響應(yīng)于允許發(fā)出請求的代理使高速緩沖存儲線變成排他的屬性而釋放所述線。應(yīng)注意,屬性被設(shè)置成指示發(fā)出請求的處理器可能必需處于排他狀態(tài)的線的讀取命令也可被稱作讀取偏好型排他命令。并且,可以通過在升級命令中包含指示發(fā)出請求的處理器可能必需線具有排他的屬性而實(shí)施升級偏好型排他命令的功能。
[0050]圖4A說明使用讀取偏好型排他總線命令的示范性第一信號量管理技術(shù)400。對此第一技術(shù),在執(zhí)行LDEX后,當(dāng)LDEX本身無法要求線的排他時(shí),PXl 402、PX2 403和相干總線經(jīng)配置以機(jī)會性地獲得線的排他。PX2保留包含地址A處的數(shù)據(jù)的高速緩沖存儲線。并且,在發(fā)出PXl的LDEX A之前,PX2的RG未被標(biāo)記。在第一操作404中,PXl執(zhí)行LDEX A,其使得發(fā)出讀取偏好型排他總線命令,并且獲得處于排他狀態(tài)的線。由于所述線處于排他狀態(tài),所以PX2對線的復(fù)本失效,并且接著給PXl的RG標(biāo)記上地址A。在第二操作405中,PXl發(fā)出STEX A,STEX A完成執(zhí)行,因?yàn)镻Xl的RG被標(biāo)記,并且未發(fā)出額外總線命令。PX2不要求進(jìn)一步的動(dòng)作。因?yàn)椴灰驪Xl的STEX A在完成執(zhí)行之前作出額外總線命令,所以信號量管理技術(shù)400對性能有幫助。
[0051]圖4B說明使用讀取偏好型排他總線命令的示范性第二信號量管理技術(shù)420。對此第二信號量管理技術(shù)420,PXl 402、PX2 403和相干總線經(jīng)配置以在執(zhí)行LDEX后即刻獲得排他的線。PXl和PX2兩者都在其包含地址A處的數(shù)據(jù)的相關(guān)聯(lián)高速緩沖存儲器處保留高速緩沖存儲線的復(fù)本。在PXl發(fā)出LDEX A之前,PX2的RG未被標(biāo)記。在第一操作424中,PXl執(zhí)行LDEX A,其使得發(fā)出讀取偏好型排他總線命令,并且獲得處于排他狀態(tài)的線。由于所述線處于排他狀態(tài),所以PX2對線的復(fù)本失效,并且接著給PXl的RG標(biāo)記上地址A。在第二操作425中,PX2執(zhí)行LDEX A,其使得發(fā)出讀取偏好型排他總線命令,并且獲得處于共享狀態(tài)的線。由于所述線處于共享狀態(tài),所以PXl對所述線的復(fù)本改變成共享狀態(tài),PXl的RG保持標(biāo)記上地址A,并且PX2的RG標(biāo)記上地址A。在第三操作426中,ΡΠ發(fā)出STEX A,其使得發(fā)出額外總線命令以使PX2的線失效并且消除PX2的RG的標(biāo)記。由于PX2的線失效并且PXl的RG被標(biāo)記,所以STEX完成執(zhí)行。當(dāng)PXl正在試圖采集信號量時(shí),被發(fā)出以使PX2的具有A的線失效的命令會導(dǎo)致額外的等待時(shí)間。然而,不存在活鎖。只有對兩個(gè)處理代理正在試圖同時(shí)獲得相同信號量的相對不常見的情況,才需要額外的總線命令。
[0052]圖4C說明使用升級偏好型排他總線命令的示范性第三信號量管理技術(shù)440。對此第一技術(shù),在執(zhí)行LDEX后,當(dāng)LDEX本身無法要求線的排他時(shí),PXl 402、PX2 403和相干總線經(jīng)配置以機(jī)會性地獲得線的排他。PX2保留包含地址A處的數(shù)據(jù)的高速緩沖存儲線。并且,在發(fā)出PXl的LDEX A之前,PX2的RG未被標(biāo)記。在第一操作444中,PXl執(zhí)行LDEX A,LDEX A命中其L2高速緩沖存儲器,使得發(fā)出升級偏好型排他總線命令,并且獲得處于排他狀態(tài)的線。由于所述線處于排他狀態(tài),所以PX2對線的復(fù)本失效,并且接著給PXl的RG標(biāo)記上地址A。在第二操作445中,PXl發(fā)出STEX A,其完成執(zhí)行,因?yàn)镻Xl使所述線保持在排他狀態(tài),并且PXl的RG被標(biāo)記。PX2不要求進(jìn)一步的動(dòng)作。因?yàn)椴灰驪Xl的STEX A在完成執(zhí)行之前作出額外總線命令,所以信號量管理技術(shù)440對性能有幫助。
[0053]在框348、350、356和358的替代實(shí)施例中,不是由與PX2相關(guān)聯(lián)的第2層高速緩沖存儲器提供數(shù)據(jù),而是可以由存儲器層級中的下一層高速緩沖存儲器或從主系統(tǒng)存儲器提供數(shù)據(jù)。在此情況下,不管數(shù)據(jù)來自哪里,框348和350中指示的高速緩沖存儲線失效都會發(fā)生。
[0054]雖然圖1說明具有兩個(gè)處理代理PXl 104和PX2 108的系統(tǒng),但是本文所述的實(shí)施例也適用于具有三個(gè)或更多個(gè)處理代理的系統(tǒng)。在這個(gè)進(jìn)一步的實(shí)施例中,每一額外L2高速緩沖存儲器和控制器監(jiān)聽所述多個(gè)高速緩沖存儲器控制器之間的相干總線,并且在檢測到總線命令后,即刻獨(dú)立地以關(guān)于圖3A-3C和4A-4C描述的方式作出響應(yīng)。舉例來說,在具有三個(gè)處理代理PX1、PX2和PX3的系統(tǒng)中,PXl例如在圖3A的框304處發(fā)出LDEX,并且例如在框306處也在PXl的高速緩沖存儲器中未中,則L2高速緩沖存儲器和控制器-1106將在相干總線上發(fā)出讀取偏好型排他命令。PX2和PX3子系統(tǒng)兩者都將監(jiān)聽相干總線并且識別讀取偏好型排他命令,并且如果所請求的線在PX2的高速緩沖存儲器和PX3的高速緩沖存儲器兩者中,則PX2的和PX3的L2高速緩沖存儲器和控制器都將檢查相關(guān)聯(lián)的保留粒度的狀態(tài),并且基于確定的RG的狀態(tài)值和高速緩沖存儲線狀態(tài),將前進(jìn)到適當(dāng)?shù)目?48、350,356或358。在此情況下,每一高速緩沖存儲器控制器都有數(shù)據(jù)要提供到PXl子系統(tǒng),通過相干總線上的協(xié)議提供適當(dāng)裝置以選擇是用于PX2的控制器還是用于PX3的控制器提供數(shù)據(jù)到PXl子系統(tǒng)。
[0055]圖5說明根據(jù)本發(fā)明的實(shí)施例的利用具有高效活鎖避免的示范性信號量管理的便攜式裝置500的特定實(shí)施例。便攜式裝置500可以是無線電子裝置且包含系統(tǒng)核心504,所述系統(tǒng)核心包含耦合到具有軟件指令510的系統(tǒng)存儲器508的處理器組合體506。便攜式裝置500包括電力供應(yīng)器514、天線516、例如鍵盤等輸入裝置518、例如液晶顯示器IXD等顯示器520、具有視頻能力的一個(gè)或兩個(gè)相機(jī)522、揚(yáng)聲器524和麥克風(fēng)526。系統(tǒng)核心504還包含無線接口 528、顯示控制器530、相機(jī)接口 532以及編解碼器534。處理器組合體506可以包含多處理器(MP)系統(tǒng)554,其包含兩個(gè)核心處理單元,具有本機(jī)第I層指令和數(shù)據(jù)(L1I&D)高速緩沖存儲器549的PXl 536和具有本機(jī)第I層指令和數(shù)據(jù)(L1I&D)高速緩沖存儲器550的PX2 538。MP系統(tǒng)554可以對應(yīng)于圖1的雙核系統(tǒng)102。處理器組合體506還可包含調(diào)制解調(diào)器子系統(tǒng)540、閃存控制器544、閃存裝置546、多媒體子系統(tǒng)548、第2層高速緩沖存儲器O和控制器O 551、第2層高速緩沖存儲器I和控制器I 552和相干總線553。閃存裝置546可以包含可裝卸式閃存存儲器或還可以是嵌入式存儲器。
[0056]在說明性實(shí)例中,系統(tǒng)核心504根據(jù)在圖1、3A-3C和4A-4C中說明的或與這些圖相關(guān)聯(lián)的任何實(shí)施例操作。舉例來說,如圖5中所示,MP系統(tǒng)554雙核處理器經(jīng)配置以存取存儲于其相關(guān)聯(lián)雙核處理器的L1I&D高速緩沖存儲器549和550、L2高速緩沖存儲器551和552以及系統(tǒng)存儲器508中的數(shù)據(jù)或程序指令以提供如中圖3A-3C所說明的操作。
[0057]無線接口 528可以耦合到處理器組合體506并且耦合到無線天線516,使得經(jīng)由天線516和無線接口 528接收到的無線數(shù)據(jù)可以提供到MSS 540并且與MP系統(tǒng)554共享。相機(jī)接口 532耦合到處理器組合體506并且還耦合到一或多個(gè)相機(jī),例如具有視頻能力的相機(jī)522。顯示控制器530耦合到處理器組合體506并且耦合到顯示裝置520。編碼器/解碼器(編解碼器)534也耦合到處理器組合體506。揚(yáng)聲器524 (所述揚(yáng)聲器可以包括一對立體聲揚(yáng)聲器)和麥克風(fēng)526耦合到編解碼器534。外圍裝置和其相關(guān)聯(lián)的接口是示范性的并且不在數(shù)量或在能力上受到限制。舉例來說,輸入裝置518可以包括通用串行總線(USB)接口等等、QWERTY樣式的鍵盤、字母數(shù)字鍵盤以及數(shù)字小鍵盤,所述各者可以個(gè)別地在特定裝置中實(shí)施或以組合形式在不同裝置中實(shí)施。
[0058]MP系統(tǒng)554雙核處理器經(jīng)配置以執(zhí)行軟件指令510,軟件指令510存儲于例如與系統(tǒng)存儲器508相關(guān)聯(lián)的非暫時(shí)性計(jì)算機(jī)可讀媒體中,并且可執(zhí)行以使例如雙核處理器536和538等計(jì)算機(jī)執(zhí)行程序以提供如圖3A-3C和4A-4C中所說明的操作。PXl 536和PX2538經(jīng)配置以執(zhí)行軟件指令510,軟件指令510是從高速緩沖存儲器的不同級和系統(tǒng)存儲器508存取的。
[0059]在特定實(shí)施例中,系統(tǒng)核心504物理上組織在系統(tǒng)級封裝中或在芯片上系統(tǒng)裝置上。在一個(gè)特定實(shí)施例中,如圖5中所說明,組織為芯片上系統(tǒng)裝置的系統(tǒng)核心504物理上耦合到電力供應(yīng)器514、無線天線516、輸入裝置518、顯示裝置520、一或多個(gè)相機(jī)522、揚(yáng)聲器524、麥克風(fēng)526,并且可以耦合到可裝卸式閃存裝置546。
[0060]根據(jù)本文所描述的實(shí)施例的便攜式裝置500可以并入在多種電子裝置中,例如機(jī)頂盒、娛樂單元、導(dǎo)航裝置、通信裝置、個(gè)人數(shù)字助理(PDA)、固定位置數(shù)據(jù)單元、移動(dòng)位置數(shù)據(jù)單元、移動(dòng)電話、蜂窩電話、計(jì)算機(jī)、便攜式計(jì)算機(jī)、平板計(jì)算機(jī)、監(jiān)視器、計(jì)算機(jī)監(jiān)視器、電視、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、視頻播放器、數(shù)字視頻播放器、數(shù)字視頻光盤(DVD)播放器、便攜式數(shù)字視頻播放器、存儲或檢索數(shù)據(jù)或計(jì)算機(jī)指令的任何其它裝置,或其任何組合。
[0061]結(jié)合本文中所揭示的實(shí)施例描述的各種說明性邏輯塊、模塊、電路、元件或組件可以用通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散