專利名稱:在具有混合體系結(jié)構(gòu)的系統(tǒng)中使用原子操作來修改信息單元的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于修改信息單元的方法和裝置,其使用原子操作,具體是在便于不同類型的原子操作(atomic operation)的環(huán)境中。
背景技術(shù):
成功的原子操作包括不間斷的操作序列。如果未完成該序列,則把原子操作看作是失敗的原子操作。典型的原子操作包括“讀取-修改-寫入”操作。
很多現(xiàn)代設(shè)備包括多個半導(dǎo)體部件,例如微處理器、直接存儲訪問單元、微控制器等。為了降低這些日趨復(fù)雜的設(shè)備的成本,多個部件共享相同的系統(tǒng)資源。共享資源典型地是存儲體、總線、外圍設(shè)備等。
為了避免沖突,共享資源在此時僅可以由一個主要部件來控制。典型的控制方案包括在嘗試控制從屬部件之前確定共享資源的可用性。Moriarty等人的題為“Self-modifying synchronization memory addressspace and protocol for communication between multiple bus masters of acomputer system”的美國專利6,446,149描述了一種用于管理共享資源的方法,在此通過引用將其包括在本文中。
共享資源的可用性通常由信號量(semaphore)表示。信號量是可以被各個部件訪問的標(biāo)志或狀態(tài)指示符。它通常駐留于預(yù)定的存儲地址處,并且其值反映了共享資源是否可用。
使用“讀取-修改-寫入”原子操作來更新信號量是一般慣例。存在兩種用于更新信號量的普通方法。第一種方法涉及鎖定存儲信號量的存儲模塊直到完成信號量更新過程。在一些現(xiàn)有技術(shù)系統(tǒng)中,存儲模塊以及可選擇的一個或多個總線在信號量更新過程期間是被鎖定的。鎖定型信號量更新過程通常包括(i)鎖定存儲模塊以及可選擇的一個或多個總線;(ii)由請求部件讀取信號量;(iii)響應(yīng)于信號量的值,確定共享資源是否可用;(iv)如果信號量值指示共享資源可用,則改變該信號量以指示共享資源被預(yù)定由請求部件來使用,否則確定共享實(shí)體不可用,以及(v)解鎖先前鎖定的存儲器以及一個或多個總線。該方法導(dǎo)致總線和存儲性能的顯著降低。
第二種方法包括地址監(jiān)聽(address snooping)。在該方法中,存儲模塊以及任選的一個或多個總線在整個過程期間并未鎖定。請求部件并不阻止其它部件訪問存儲模塊,但卻監(jiān)控該存儲模塊以確定是否在讀取和期望的修改階段之間修改了信號量。如果發(fā)生了這樣的修改,則將原子操作標(biāo)記為失敗的原子操作,并且請求部件可以判定是否重復(fù)該原子操作。
監(jiān)聽型原子操作比鎖定型原子操作更為帶寬有效,但卻更為復(fù)雜。Eiffert等人的題為“Method and apparatus for performing atomic accessesin a data processing system”的美國專利5727172描述了一種地址監(jiān)聽方法,在此通過引用將其包括在本文中。其要求監(jiān)聽邏輯來支持多個總線主控器。
由于很多現(xiàn)代半導(dǎo)體部件的以及尤其是微處理器的復(fù)雜性,大多數(shù)半導(dǎo)體器件的設(shè)計(jì)基于以前開發(fā)的部件。在一些情況下,共享資源的各種半導(dǎo)體組件應(yīng)用不同類型的原子操作。
Krein的題為“Method for semaphore communication betweenincompatible bus locking architectures”的美國專利5548780描述了一種多總線體系結(jié)構(gòu),其包括用于在不同總線之間傳播原子操作的多個總線橋,本專利在此通過引用包括入本文中。該方法要求信號量具有將指示共享資源的可用性的某個預(yù)定值。
Morrison等人的題為“Mechanism for implementing bus lockingwith a mixed architecture”的美國專利6381663描述了一種用于在支持原子操作的總線與不支持原子操作的另一總線之間橋接的裝置和方法,在此通過引用將其包括在本文中。該解決方案就性能來說代價非常的高。
需要提供一種能夠有效處理不同類型的原子事務(wù)的裝置和方法。
發(fā)明內(nèi)容
一種用于修改信息單元的方法,該方法包括(i)通過第一總線接收啟動監(jiān)聽型原子操作的請求,該監(jiān)聽型原子操作與位于存儲模塊的第一地址處的至少一個信息單元相關(guān)聯(lián);(ii)通過第一總線提供該信息單元;(iii)嘗試完成與已更新的信息單元關(guān)聯(lián)的監(jiān)聽型原子操作;以及(iv)如果在接收、提供和嘗試中的至少一個階段期間,所述第一地址由于鎖定型原子操作而被鎖定,則將該原子操作定義為失敗的原子操作。
一種用于修改信息單元的方法,該方法包括(i)通過第一總線接收對位于存儲模塊的第一地址處的信息單元進(jìn)行原子讀操作的請求;(ii)通過第一總線提供該信息單元;以及(iii)如果在接收和提供中的至少一個階段期間,所述第一地址并未由于鎖定型原子操作而被鎖定,則嘗試對已更新的信息單元進(jìn)行監(jiān)聽型原子寫操作。
一種用于修改信息單元的方法,該方法包括(i)通過第一總線接收對位于存儲模塊的第一地址處的信息單元進(jìn)行監(jiān)聽型原子讀操作的請求;(ii)通過第一總線提供該信息單元;(iii)嘗試對已更新的信息單元進(jìn)行監(jiān)聽型原子寫操作;以及(iv)如果在接收、提供和嘗試中的至少一個階段期間,所述第一地址由于鎖定型原子操作而被鎖定,則將包括該原子寫操作的原子操作定義為失敗的原子操作。
本發(fā)明提供了一種用于修改信息單元的裝置,該裝置包括(i)存儲模塊,其適于將信息單元存儲在第一地址處;以及(ii)控制器,其連接到第一和第二總線并且連接到存儲模塊;該控制器適于(a)通過第一總線接收對信息單元進(jìn)行原子讀操作的請求;(ii)便于通過第一總線提供該信息單元;以及(iii)便于如果在接收和提供階段期間,所述第一地址并未由于鎖定型原子操作而被鎖定,則嘗試對已更新的信息單元進(jìn)行監(jiān)聽型原子寫操作。
本發(fā)明提供了一種用于修改信息單元的裝置,該裝置包括第一請求部件(例如但不限于處理器、控制器等),其適于通過第一總線發(fā)送對位于存儲模塊的第一地址處的信息單元進(jìn)行原子讀操作的請求;控制器,其被配置以便于通過第一總線提供該信息單元;而如果在接收和提供中的至少一個階段期間,所述第一地址并未由于鎖定型原子操作而被鎖定,則第一請求部件進(jìn)一步適用于嘗試對已更新的信息單元進(jìn)行監(jiān)聽型原子寫操作。
根據(jù)以下結(jié)合附圖所進(jìn)行的詳細(xì)描述將更加充分地理解和領(lǐng)會本發(fā)明,其中圖1是根據(jù)本發(fā)明的實(shí)施例的對包括兩個處理器以及共享存儲模塊的裝置的示意性說明;圖2是對包括共享存儲模塊和第一處理器的子系統(tǒng)的示意性說明;圖3是根據(jù)本發(fā)明的實(shí)施例的對在原子操作期間交換的各種信號的示意性說明;圖4是根據(jù)本發(fā)明的實(shí)施例的說明了用于修改信息單元的方法的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的、成功的監(jiān)聽型原子操作的時序圖;以及圖6-7是根據(jù)本發(fā)明實(shí)施例的、由控制器執(zhí)行的兩個過程的流程圖。
具體實(shí)施例方式
以下詳細(xì)描述包括本發(fā)明的各種實(shí)施例的非限制性例子。詳細(xì)描述以及附圖中所采用的特定術(shù)語和表達(dá)以及所公開的特定結(jié)構(gòu)和操作細(xì)節(jié)僅僅是出于說明的目的,并不打算以任何方式限制如所附權(quán)利要求所描述的本發(fā)明的范圍。
該方法和系統(tǒng)解決了與使用預(yù)定信號量值相關(guān)聯(lián)的問題。
圖1說明了根據(jù)本發(fā)明的實(shí)施例的裝置10。裝置10包括子系統(tǒng)100,而該子系統(tǒng)100依次包括諸如第一處理器110的第一請求部件,并且還包括共享存儲模塊(圖2中標(biāo)記為370)。裝置10進(jìn)一步包括系統(tǒng)總線60,其連接到(i)諸如第二處理器20的第二請求實(shí)體,(ii)高級存儲模塊50,(iii)子系統(tǒng)100,(iv)外圍設(shè)備70,以及(v)外部系統(tǒng)I/F 80。
高級存儲模塊50通常是裝置10的主存儲模塊。它通常為各種處理器存儲程序和數(shù)據(jù)。它還可以是支持芯片外存儲器的二級高速緩存模塊,但卻不是必需這樣。
系統(tǒng)總線60經(jīng)由墊圈(也稱為接口)380連接到子系統(tǒng)100。接口380連接到包括數(shù)據(jù)通道(圖2中標(biāo)記為130)和指令通道(圖2中標(biāo)記為340)的子系統(tǒng)100內(nèi)的各個部件。接口380進(jìn)行總線協(xié)議轉(zhuǎn)換并且具有在數(shù)據(jù)傳送與指令傳送之間仲裁的仲裁能力。
裝置10還包括DMA系統(tǒng)總線90,其通過DMA接口382連接到DMA控制器30、多個外圍設(shè)備40以及共享存儲模塊370。DMA系統(tǒng)總線90可以由諸如處理器20的外部組件使用來訪問共享存儲模塊370。
一方面,共享存儲模塊370連接到適合便于鎖定型原子操作的DMA系統(tǒng)總線90。另一方面,共享存儲模塊370連接到便于監(jiān)聽型原子操作的兩個數(shù)據(jù)總線XA 122和XB 124。
圖2說明了根據(jù)本發(fā)明的實(shí)施例的裝置10的子系統(tǒng)100。子系統(tǒng)100包括處理器110、數(shù)據(jù)通道130、存儲器管理單元(MMU)300、指令通道340、共享存儲模塊370以及接口單元380。共享存儲模塊370可以是一級RAM存儲模塊,但卻不是必需如此。
處理器110和指令通道340連接到單個程序總線120。
處理器110具有第一數(shù)據(jù)端口116和第二數(shù)據(jù)端口118。第一數(shù)據(jù)端口116通過第一數(shù)據(jù)總線(XA)122連接到數(shù)據(jù)通道130的第一端口132、連接到MMU 300以及共享存儲模塊370。第二數(shù)據(jù)端口118通過第二數(shù)據(jù)總線(XB)124連接到數(shù)據(jù)通道130的第二端口134、連接到MMU 300以及共享存儲模塊370。
數(shù)據(jù)通道130通過數(shù)據(jù)取總線(data fetch bus)126連接到接口380,而接口380又連接到諸如高級存儲模塊50的一個或多個附加存儲器。
將共享存儲模塊370方便地劃分成兩組存儲體,每組包括多個存儲體以及控制器。
共享存儲模塊370接收各種控制信號,其包括狀態(tài)信息并且特別是有關(guān)原子操作的信息。圖3對這些信號中的一些進(jìn)行了說明。
處理器110將與第一數(shù)據(jù)總線XA 122關(guān)聯(lián)的三種控制信號發(fā)送給共享存儲模塊370。這些信號是ATOMIC_A信號500、READ_A信號502和WRITE_A信號504。處理器110從共享存儲模塊370接收ATOMIC_RESULT_A信號506,其指示由處理器110通過第一數(shù)據(jù)總線XA 122啟動的監(jiān)聽型原子操作是失敗的還是成功的。假設(shè)處理器110一旦通過第一數(shù)據(jù)總線XA 122啟動原子操作就聲明(assert)ATOMIC_A信號500,并且一旦原子操作結(jié)束就否定該信號。處理器110在通過第一數(shù)據(jù)總線XA 122的讀操作期間聲明READ_A信號502,并且在通過第一數(shù)據(jù)總線XA 122的寫操作期間聲明WRITE_A信號504。
處理器110將與第二數(shù)據(jù)總線XB 124關(guān)聯(lián)的三種控制信號發(fā)送給共享存儲模塊370。這些信號是ATOMIC_B信號510、READ_B信號512和WRITE_B信號514。處理器110從共享存儲模塊370接收ATOMIC_RESULT_B信號516,其指示由處理器110通過第二數(shù)據(jù)總線XB 124啟動的監(jiān)聽型原子操作是失敗的還是成功的。假設(shè)處理器110一旦通過第二數(shù)據(jù)總線XB 124啟動原子操作就聲明ATOMIC_B信號510,并且一旦原子操作結(jié)束就否定該信號。處理器110在通過第二數(shù)據(jù)總線XB 124的讀操作期間聲明READ_B信號512,并且在通過第二數(shù)據(jù)總線XB 124的寫操作期間聲明WRITE_B信號514。
處理器20向共享存儲模塊370發(fā)送LOCK信號520、READ/WRITE信號528和TRANSACTION_REQUEST信號524。其從共享存儲模塊370接收REQUEST_ACK信號526。處理器20聲明TRANSACTION_REQUEST信號524以請求通過DMA總線384的事務(wù)(例如讀或?qū)懖僮?,以及響應(yīng)于已聲明的REQUEST_ACK信號526而發(fā)生的事務(wù)。在整個鎖定型原子操作期間聲明LOCK信號520,并且READ/WRITE信號528被聲明以指示讀操作以及被否定以指示寫操作。
共享存儲模塊370存儲信號量371,該信號量371可以指示諸如外圍設(shè)備40(1)的某個外圍設(shè)備是否可以由處理器20或處理器110控制。通常,共享存儲模塊370存儲多個信號量,其反映了多個外圍設(shè)備的可用性,但出于解釋的簡明性僅說明了單個信號量。
圖4是說明了根據(jù)本發(fā)明的實(shí)施例用于修改信息單元的方法600的流程圖。信息單元可以包括表示數(shù)據(jù)、地址、狀態(tài)等的多個信號。方便起見,信息單元是信號量。
方法600開始于階段610,其通過第一總線接收啟動與位于存儲模塊的第一地址處的至少一個信息單元相關(guān)聯(lián)的監(jiān)聽型原子操作的請求。該請求方便地是對開始監(jiān)聽型原子讀操作的請求。參照圖3中所陳述的例子,并且假設(shè)監(jiān)聽型原子操作與第一數(shù)據(jù)總線XA 122關(guān)聯(lián),那么處理器110聲明ATOMIC_A信號500并且聲明READ_A信號502。
根據(jù)本發(fā)明的實(shí)施例,處理器110還可以啟動與第二數(shù)據(jù)總線XB124關(guān)聯(lián)的監(jiān)聽型原子操作,并且共享存儲器370控制器的每個可以在這些請求之間進(jìn)行仲裁。根據(jù)本發(fā)明的另一實(shí)施例,處理器110能夠一次啟動一個原子操作(要么通過總線XA 122要么通過總線XB 124)并且不需要這樣的仲裁。
階段610之后是階段620,其通過第一總線提供信息單元。參照圖3中所陳述的例子,并且進(jìn)一步假設(shè)信息單元位于第一組存儲體內(nèi),則第一組控制器允許通過第一數(shù)據(jù)總線XA 122將所請求的數(shù)據(jù)單元發(fā)送給處理器110。
階段620之后是階段630,其讀取信息單元并且確定是否應(yīng)當(dāng)修改信息單元來提供已修改的信息單元。如果答案是肯定的,則階段630之后是階段640,以及如果答案是否定的,則階段630之后是結(jié)束原子事務(wù)的階段660。參照圖3中所陳述的例子,假設(shè)信息單元是反映外圍設(shè)備40(1)的可用性的信號量371。如果信號量371指示外圍設(shè)備40(1)不可用,那么處理器110可以判定不更新信號量371并且終止該原子操作。如果信號量371指示外圍設(shè)備40(1)可用,那么處理器110可以嘗試更新信號量371以指示處理器110將要控制外圍設(shè)備40(1)。
階段640包括嘗試完成監(jiān)聽型原子操作。該完成可以包括對先前所修改的信息單元的原子寫操作。參照圖3中所陳述的例子,如果處理器110判定這樣的更新是合適的,則通過第一數(shù)據(jù)總線XA 122發(fā)送已更新的信號量371。
階段650包括如果在接收、提供和嘗試中的至少一個階段期間,第一地址由于鎖定型原子操作而被鎖定,則將監(jiān)聽型原子操作定義為失敗的原子操作。參照圖3中所陳述的例子,如果在階段620-640中的一個或多個階段期間,共享存儲模塊370參與了與信號量371關(guān)聯(lián)的鎖定型原子操作,則結(jié)束由處理器110所啟動的監(jiān)聽型原子操作。
處理器110可以嘗試執(zhí)行監(jiān)聽型原子操作直到其成功控制外圍設(shè)備40(1),但卻并不必需如此。例如,處理器110可以重復(fù)該會話達(dá)到預(yù)定量的迭代。
圖5是根據(jù)本發(fā)明實(shí)施例的、成功的監(jiān)聽型原子操作的時序圖。該時序圖說明了時鐘信號CLK 555、與第一數(shù)據(jù)總線XA 122關(guān)聯(lián)的24位地址總線524、READ_A信號502、WRITE_A信號504、ATOMIC_A信號500以及ATOMIC_RESULT_A信號506。
在時鐘的第一周期(T1),處理器110通過第一數(shù)據(jù)總線XA 122發(fā)送信號量371的24位地址(SEM_ADD),并且聲明READ_A信號502以及ATOMIC_A信號500。在一個時鐘周期之后否定READ_A。
假設(shè)在第二時鐘周期(T2)將信號量371通過第一數(shù)據(jù)總線XA 122發(fā)送給處理器110。
在下一時鐘周期(T3)期間,處理器110更新信號量371并且即將嘗試將已更新的信號量寫到共享存儲模塊370。
在下一時鐘周期(T4),處理器110聲明WRITE_A信號504并且還通過第一數(shù)據(jù)總線XA 122發(fā)送信號量371的24位地址。
在下一時鐘周期(T5),處理器否定WRITE_A信號504以及ATOMIC_A信號500。假設(shè)處理器110成功寫入已修改的信號量371,那么第一組處理器374聲明ATOMIC_RESULT_A信號506。
根據(jù)本發(fā)明的實(shí)施例,圖6說明了由控制器執(zhí)行的第一過程700并且圖9說明了同樣由控制器執(zhí)行的另一過程800,其中控制器可以是例如但不限于第一組處理器374。
第一過程700涉及監(jiān)控支持總線(例如但不限于DMA總線384)的鎖定型原子操作,而另一過程800涉及監(jiān)控支持總線(例如第一和第二數(shù)據(jù)總線XA 122和XB 124)的監(jiān)聽型原子操作。出于解釋的簡明性,僅舉例說明了對第一數(shù)據(jù)總線XA 122的監(jiān)控。過程800的結(jié)果取決于過程700的結(jié)果。
過程700開始于階段710,其監(jiān)控支持鎖定型原子操作的第一總線,直到檢測到諸如原子讀操作的原子操作。該監(jiān)控可以包括接收并檢查各種控制信號,例如LOCK信號520,但卻不是必需如此。
一旦檢測到這樣的原子操作,階段710之后就接著是階段720,其存儲原子操作所訪問的存儲地址。該地址在鎖定型原子操作期間是鎖定的。
階段720之后是階段730,其監(jiān)控第一總線以檢測原子操作結(jié)束(例如結(jié)束原子操作的原子寫操作已經(jīng)結(jié)束)。一旦原子操作結(jié)束,階段730之后就接著是階段740,階段740清除先前存儲的地址或者用別的方式指示其未被鎖定。階段740之后是階段710。
過程800開始于階段810,其監(jiān)控支持監(jiān)聽型原子操作的第二總線,直到檢測到諸如原子讀操作的原子操作。可以通過監(jiān)控各個控制信號(例如ATOMIC_A信號500)來檢測這樣的操作,但卻不是必需如此。
一旦檢測到這樣的原子操作,階段810之后就接著是階段820,其確定原子操作是否與被鎖地址關(guān)聯(lián)。該被鎖地址通常是被過程700鎖定的地址。
如果該地址是鎖定的,則在階段830期間將原子操作標(biāo)記為失敗的。失敗的原子操作可以結(jié)束,但通常即使原子操作失敗,該過程也前進(jìn)到階段850。
如果地址并未鎖定,則在階段840期間將原子操作標(biāo)記為成功的原子操作。
階段840之后是階段850,其監(jiān)聽第二總線以確定該地址是否是在監(jiān)聽型原子操作結(jié)束之前被鎖定。如果答案是肯定的,那么在階段860期間將原子操作標(biāo)記為失敗的,否則跟著是階段870,其將原子操作標(biāo)記為成功的原子操作。注意到,如果操作在階段830期間被標(biāo)記為失敗的,則其在階段870期間不會被標(biāo)記為成功的原子操作。階段870和階段860之后是階段810。
在不偏離如權(quán)利要求所述的本發(fā)明的精神和范圍的情況下,本領(lǐng)域的普通工作人員可以想到文中所描述的內(nèi)容的變化、修改和其它實(shí)現(xiàn)。因此,本發(fā)明并不是由前面的說明性描述來限定的,而是由以下權(quán)利要求的精神和范圍來限定的。
權(quán)利要求
1.一種用于使用原子操作修改信息單元的方法,所述方法包括以下階段通過第一總線接收啟動與位于存儲模塊的第一地址處的至少一個信息單元相關(guān)聯(lián)的監(jiān)聽型原子操作的請求;通過所述第一總線提供所述信息單元;嘗試完成與已更新的信息單元相關(guān)聯(lián)的監(jiān)聽型原子操作;以及如果在所述接收階段、提供和嘗試期間,所述第一地址由于鎖定型原子操作而被鎖定,則將所述監(jiān)聽型原子操作定義為失敗的原子操作。
2.根據(jù)權(quán)利要求1的所述方法,其中所述接收階段包括接收執(zhí)行監(jiān)聽型原子讀操作的請求。
3.根據(jù)權(quán)利要求1的所述方法,其中所述嘗試完成階段包括嘗試對已更新的信息單元執(zhí)行監(jiān)聽型原子寫操作。
4.根據(jù)權(quán)利要求1的所述方法,其中通過第二總線提供啟動所述鎖定型原子操作的請求。
5.根據(jù)權(quán)利要求1的所述方法,其中所述信息單元包括信號量。
6.根據(jù)權(quán)利要求1的所述方法,其中所述嘗試階段包括通過所述第一總線提供已更新的信息單元。
7.根據(jù)權(quán)利要求1的所述方法,其進(jìn)一步包括重復(fù)所述接收、提供和嘗試階段,直到完成成功的監(jiān)聽型原子操作。
8.根據(jù)權(quán)利要求1的所述方法,其中所述鎖定型原子操作是鎖定型原子讀操作。
9.根據(jù)權(quán)利要求1的所述方法,其中所述鎖定型原子操作是鎖定型原子寫操作。
10.根據(jù)權(quán)利要求1的所述方法,其進(jìn)一步包括如下階段接收啟動對位于所述第一地址處的信息單元的監(jiān)聽型原子操作的另一請求,以及在所述監(jiān)聽型原子操作之間進(jìn)行仲裁。
11.一種用于修改信息單元的方法,所述方法包括以下階段通過第一總線接收對位于存儲模塊的第一地址處的信息單元執(zhí)行原子讀操作的請求;通過所述第一總線提供所述信息單元;如果在所述接收和提供中的至少一個階段期間,所述第一地址并未由于鎖定型原子操作而被鎖定,則嘗試對已更新的信息單元進(jìn)行監(jiān)聽型原子寫操作。
12.根據(jù)權(quán)利要求11的所述方法,其中通過第二總線提供啟動所述鎖定型原子操作的請求。
13.根據(jù)權(quán)利要求11的所述方法,其中所述信息單元包括信號量。
14.根據(jù)權(quán)利要求11的所述方法,其中所述嘗試階段包括通過所述第一總線提供已更新的信息單元。
15.根據(jù)權(quán)利要求11的所述方法,其進(jìn)一步包括重復(fù)所述接收、提供和嘗試階段,直到完成成功的監(jiān)聽型原子操作。
16.根據(jù)權(quán)利要求11的所述方法,其中所述鎖定型原子操作是鎖定型原子讀操作。
17.根據(jù)權(quán)利要求11的所述方法,其進(jìn)一步包括如下階段接收對位于所述第一地址處的信息單元執(zhí)行監(jiān)聽型原子讀操作的另一請求,以及在所述監(jiān)聽型原子讀操作之間進(jìn)行仲裁。
18.一種用于使用原子操作修改信息單元的裝置,所述裝置包括存儲模塊,其適于將信息單元存儲在第一地址;控制器,其耦合到第一總線和所述存儲模塊;所述控制器適于接收啟動與位于存儲模塊的第一地址處的至少一個信息單元相關(guān)聯(lián)的監(jiān)聽型原子操作的請求;通過所述第一總線提供所述信息單元;嘗試完成對已更新的信息單元的監(jiān)聽型原子操作;以及如果在所述接收、提供和嘗試中的至少一個階段期間,所述第一地址由于鎖定型原子操作而被鎖定,則將所述原子操作定義為失敗的原子操作。
19.根據(jù)權(quán)利要求18的所述裝置,其中通過第二總線提供啟動所述鎖定型原子操作的請求。
20.根據(jù)權(quán)利要求18的所述裝置,其中所述信息單元包括信號量。
21.根據(jù)權(quán)利要求18的所述裝置,其中所述控制器進(jìn)一步適于通過所述第一總線發(fā)送失敗的原子操作。
22.根據(jù)權(quán)利要求18的所述裝置,其中所述鎖定型原子操作是鎖定型原子讀操作。
23.根據(jù)權(quán)利要求18的所述裝置,其進(jìn)一步包括耦合到所述第一總線的第一處理器以及耦合到所述第二總線的第二處理器。
24.一種用于修改信息單元的裝置,所述裝置包括第一請求部件,其適于通過第一總線發(fā)送對位于存儲模塊的第一地址處的信息單元執(zhí)行原子讀操作的請求;控制器,其被配置以便于通過所述第一總線提供所述信息單元;而所述第一請求部件進(jìn)一步適于如果在接收和提供中的至少一個階段期間,所述第一地址并未由于鎖定型原子操作而被鎖定,則嘗試對已更新的信息單元執(zhí)行監(jiān)聽型原子寫操作。
25.根據(jù)權(quán)利要求24的所述裝置,其中所述控制器進(jìn)一步適于通過所述第一總線發(fā)送失敗的原子操作。
26.根據(jù)權(quán)利要求24的所述裝置,其中所述鎖定型原子操作是鎖定型原子讀操作。
27.根據(jù)權(quán)利要求24的所述裝置,其進(jìn)一步包括第二請求部件,所述第二請求部件適于啟動所述鎖定型原子操作。
28.根據(jù)權(quán)利要求24的所述裝置,其中所述第一請求實(shí)體是處理器。
全文摘要
一種用于修改信息單元的系統(tǒng)和方法,所述方法包括以下階段(i)通過第一總線接收啟動與位于存儲模塊的第一地址的至少一個信息單元關(guān)聯(lián)的監(jiān)聽型原子操作的請求;(ii)通過第一總線提供該信息單元;(iii)嘗試完成對已更新的信息單元的監(jiān)聽型原子操作;以及(iv)如果在接收、提供和嘗試中的至少一個階段期間,該第一地址由于鎖定型原子操作而被鎖定,則將該原子操作定義為失敗的原子操作。
文檔編號G06F9/46GK101044459SQ200580035470
公開日2007年9月26日 申請日期2005年8月19日 優(yōu)先權(quán)日2004年9月2日
發(fā)明者科斯坦廷·戈丁, 摩西·安舍爾, 尤里·達(dá)揚(yáng), 德維爾·皮萊格 申請人:飛思卡爾半導(dǎo)體公司