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