TW201830923A - 針對監聽請求的轉發回應 - Google Patents

針對監聽請求的轉發回應 Download PDF

Info

Publication number
TW201830923A
TW201830923A TW107103406A TW107103406A TW201830923A TW 201830923 A TW201830923 A TW 201830923A TW 107103406 A TW107103406 A TW 107103406A TW 107103406 A TW107103406 A TW 107103406A TW 201830923 A TW201830923 A TW 201830923A
Authority
TW
Taiwan
Prior art keywords
request
node
response
data
cache
Prior art date
Application number
TW107103406A
Other languages
English (en)
Other versions
TWI753093B (zh
Inventor
法寧德拉庫瑪 馬納瓦
布魯斯詹姆斯 馬修遜
詹姆許德 加爾
克拉斯麥格尼斯 布魯斯
Original Assignee
英商Arm股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英商Arm股份有限公司 filed Critical 英商Arm股份有限公司
Publication of TW201830923A publication Critical patent/TW201830923A/zh
Application granted granted Critical
Publication of TWI753093B publication Critical patent/TWI753093B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供一種資料處理設備,其包括用以代表請求節點接收對請求資料之監聽請求的接收電路系統。監聽請求包括關於是否將發生轉發之指示。發送電路系統發送對監聽請求之回應且快取電路系統快取至少一個資料值。當將發生轉發並且至少一個資料值包括請求資料時,回應包括請求資料並且發送電路系統將回應發送至請求節點。

Description

針對監聽請求的轉發回應
本揭示案係關於資料處理。更特定言之係關於快取。
在多處理器系統中,可能具有許多節點或處理器,每個節點或處理器具有它們自身的快取記憶體。該等節點可連接至一或多個共享快取或記憶體。因此,特定資料值可位於共享快取或記憶體之一個中或位於處理器之一個之區域快取中。因此,當節點想要存取資料值時,獲得來自另一節點之資料有時為必要的。此藉由請求器將請求發送至所謂歸屬節點來實現,此舉維持了資料在整個系統中之同調性。隨後歸屬節點將一或多個監聽請求發至可能具有該請求資料之節點。若彼等節點之一個具有資料,則它們可將資料返回至歸屬節點,該歸屬節點將資料返回至請求器。然而,此過程涉及若干通訊之交換,其可能花費時間來解決。
從第一示例性配置來看,提供了一種資料處理設備,包含:接收電路系統,用以代表請求節點接收對請求資料之監聽請求,該監聽請求包含關於是否將發生轉發之指示;發送電路系統,用以將回應發送至該監聽請求;及快取電路系統,用以快取至少一個資料值,其中當將發生轉發並且該至少一個資料值包含該請求資料時,該回應包含該請求資料並且該發送電路系統將該回應發送至該請求節點。
從第二示例性配置來看,提供了一種資料處理設備,包含:接收電路系統,用以接收來自請求節點的對請求資料之資料請求;及發送電路系統,用以將監聽請求發送至其他節點,其中該監聽請求包含該請求節點之識別符,對該請求資料之引用,及一指示,該指示關於當在該其他節點處快取該請求資料時轉發是否將發生為直接從該其他節點至該請求節點。
從第三示例性配置來看,提供了一種資料處理方法,包含以下步驟:快取至少一個資料值;代表請求節點接收對請求資料之監聽請求,該監聽請求包含關於是否將發生轉發之指示;以及發送對該監聽請求之回應,其中當將發生轉發並且該至少一個資料值包含該請求資料時,該回應包含該請求資料並且將該回應發送至該請求節點。
在參照附圖論述實施例之前,提供了對實施例之以下描述。
根據一個示例性配置,提供了一種資料處理設備,包含:接收電路系統,用以代表請求節點接收對請求資料之監聽請求,該監聽請求包含關於是否將發生轉發之指示;發送電路系統,用以發送對該監聽請求之回應;及快取電路系統,用以快取至少一個資料值,其中當將發生轉發並且該至少一個資料值包含該請求資料時,該回應包含該請求資料並且該發送電路系統將該回應發送至該請求節點。
根據上文,監聽請求本身包括是否將發生轉發過程之指示。此可為將發生轉發(若預設為不執行轉發)之指示或者將不發生轉發(若預設為執行轉發)之指示。當轉發發生時,資料處理設備(其可為另一主/請求節點並且亦在此描述中稱作回應節點)將請求資料(若存在)直接轉發至發出對該資料之請求的請求節點。因此,若資料在回應節點處可用,則資料不需要發送回至歸屬節點及自歸屬節點向前傳送至請求節點。因此,此使得可以減少當請求節點發出對由回應節點保存之資料的請求時所涉及之潛時。監聽請求回應於請求節點請求對資料進行存取而由歸屬節點生成。歸屬節點可生成監聽請求,以決定資料是否由系統內的另一節點(諸如回應節點)保存。例如,從回應節點存取資料可能比經由主系統記憶體存取資料更快。
在一些實施例中,從歸屬節點接收該監聽請求;並且當禁止發生轉發時,該回應包含該請求資料並且該發送電路系統將該回應發送至該歸屬節點。當將不發生轉發(藉由預設或者指示)時,不是將回應轉發至請求節點,而是回應節點將回應發送至歸屬節點。
在一些實施例中,從歸屬節點接收該監聽請求;並且當將發生轉發並且該至少一個資料值包含該請求資料時,該發送電路系統另外將完成通知發送至該歸屬節點以指示已經履行該監聽請求。除將回應發送至請求節點之外,回應節點亦可將完成通知發送至歸屬節點以指示監聽請求已經藉由由回應節點執行的轉發動作履行。由於此,歸屬節點不需要持續發出監聽請求,並且可以避免存取主系統記憶體以擷取由請求節點初始請求之資料的需要。
在一些實施例中,該監聽請求包含對該請求節點之指示。藉由在監聽請求中包括對請求節點之指示,回應節點能夠決定系統內之各種節點中的哪個最初請求該資料。此使得在需要任意中間節點之情況下,回應節點可 能直接將針對監聽請求之回應發送至相關請求節點。提議方案允許互連(例如,歸屬節點)使用其自身的不同於自請求節點120發出之識別符的識別符以與監聽目標(例如,回應節點130)通訊。為了使轉發起作用,歸屬節點,除其自身生成之識別符外,亦必須包括由請求節點120生成之識別符。
在一些實施例中,從歸屬節點接收該監聽請求;該監聽請求包含異動識別符以識別自該請求節點至該歸屬節點之異動,該異動致使生成該監聽請求;並且該回應包含該異動識別符。藉由包括提供在監聽請求中之異動識別符(該異動識別符繼而包含來自由請求節點對歸屬節點作出之初始請求的異動識別符),由回應節點產生之回應可以與初始資料請求相關聯。以此方式,請求節點可能決定返回資料與任意請求資料之間的關係。
在一些實施例中,該快取電路系統包含與該至少一個資料值之每個關聯的快取狀態;並且該快取狀態指示資料值為以下各者之至少一個:無效的、共享的、自身的、獨佔的及更改的。提供不同快取狀態以賦能互連系統之不同節點之間的同調性。例如,快取記憶體內之每個項目具備一狀態,該狀態可用以指示整個系統內之資料的共享及/或更改之程度。例如,狀態「無效」可用以指示快取列不再無效且可自由改寫。快取狀態「共享」可指示資料值正在許多不同節點之間共享,但不可更改。狀態「自身的」可指示在區域快取中更改相關快取列。若資料尚未在記憶體中更新,則此更改資料可與系統中之其他節點共享。狀態「獨佔的」可指以下事實:節點為具有列之副本之系統中的唯一節點,但列尚未更改。最終,狀態「更改的」可指示節點在系統中具有快取列之唯一副本且與系統中之主記憶體相比,已經對副本進行了改變。應理解,此處給出之狀態僅僅為當前實施例能夠使用之權限分配的實例。在其他實施例中,相同的權限分配可藉由使用不同快取狀態名稱及/或旗標來提供。例如,由英國劍橋ARM有限公司創造之AMBA規範描述了不同種類,諸如「無效的」、「原始的/改寫的(clean/dirty)」、及「唯一的/共享的」。該等最後兩個選項可組合成任意組合,以提供總共五個不同狀態。在本描述之整個剩餘部分中,將使用AMBA快取狀態。然而,本領域之一般技藝人士將理解到,亦可使用替代/等效的快取狀態。
在一些實施例中,該監聽請求指示是否將發生轉發,而不管在該資料處理設備處與該請求資料關聯儲存的狀態。藉由指示是否將發生由回應節點執行之轉發動作及藉由如此做而不管與請求資料關聯儲存之狀態,可能在不需要額外儲存條件之情況下執行轉發操作。特定而言,在一些實施例中,該監聽請求指示是否將發生轉發,而不管在該快取電路系統中與該請求資料關聯儲存之快取狀態。在該等實施例中,不需要添加另外的快取狀態以指示轉發為可允許的或者已經發生。因此,由回應節點執行之轉發操作與任意快取狀態無關。
在一些實施例中,該監聽請求藉由編碼一種類型的該監聽請求來指示是否將發生轉發。因此,作為由回應節點接收之該一種或多種監聽請求的結果,此指示若資料存在於回應節點處則將發生轉發。
在其他實施例中,該監聽請求藉由該監聽請求中之位元指示是否將發生轉發。藉由在監聽請求中使用位元指示若請求資料在回應節點處可得是否將發生轉發,可提供有效編碼以便在整個系統中沒有顯著訊務增長之情況下賦能轉發。在包含許多節點之系統中或在頻繁發送大量資料之情況下,此可能係重要的。
在一些實施例中,從歸屬節點接收該監聽請求;並且當發送電路系統不能將該回應發送至該請求節點時,該發送電路系統將該回應發送至該歸屬節點。藉由通知歸屬節點回應節點不能將針對監聽請求之回應發送至請求節點,歸屬節點可能能夠採取額外動作以將請求資料提供至請求節點。例如,此可藉由將額外監聽請求發送至系統內之其他節點,或藉由將對該資料之請求發送至主記憶體來實現。在一些其他實施例中,提供逾時,以便歸屬節點將推斷監聽請求已失效,除非歸屬節點被通知與此相反。然而,在此種實施例中,在根據監聽請求之成功可獲得任意結論之前,需要等待最小時間段(亦即,逾時時間)。
在一些實施例中,當將發生轉發並且該快取電路系統缺乏該請求資料時,該發送電路系統將該回應發送至該請求節點以指示缺乏該請求資料。此外,藉由將關於回應節點不能藉由將請求資料提供至請求節點來對監聽請求作出回應的指示符提供至歸屬節點,歸屬節點能夠採取一些替代動作,諸如轉發額外監聽請求或藉由將對要提供的資料之請求發出至主記憶體。
在一些實施例中,除了將包含該請求資料之該回應發送至該請求節點之外,取決於該快取狀態及一種類型的該監聽請求中之至少一者來調整與該快取電路系統中之該請求資料關聯的快取狀態。在一些情況下,監聽請求可能導致與儲存在回應節點之快取電路系統中的請求資料關聯的快取狀態變化。特定而言,快取資料之變化可取決於與接收監聽請求之前的資料關聯之初始快取狀態及進入的監聽請求之類型中的任一者或兩者。可考慮該等因素之每一者,以決定當發送針對監聽請求之回應時與快取電路系統中之請求資料關聯的新快取狀態。
在一些實施例中,該種類型的該監聽請求指示該請求節點之用以快取該請求資料的期望快取狀態。因此,監聽請求可包含對輸入資料之共享及更改的期望程度的指示。特定而言,請求節點可能需要特別資料段由請求節點唯一地保存,或請求節點可能對正保存在共享狀態下之資料滿意。在任一種情況下,期望之快取狀態可為決定怎樣更改與回應節點之快取電路系統中之請求資料關聯的快取狀態的因素。
在一些實施例中,該回應指示該請求節點用以快取該請求資料的要求快取狀態。針對監聽請求提供之回應可指示當請求資料被提供回至請求節點時要針對該請求資料使用的快取狀態。可以基於與請求節點處之資料關聯之初始快取狀態、與請求節點處之資料關聯之新快取狀態及由請求節點提供之任意請求的快取狀態,來決定此種要求快取狀態。
在一些實施例中,共享該要求快取狀態。換言之,由於轉發,由回應節點提供之資料將由請求節點在共享狀態下保存。因此,資料可由請求節點讀取,但可能不由彼節點更改。
在一些實施例中,從歸屬節點接收該監聽請求;當該請求資料指示在該快取電路系統中之快取狀態更改時,該要求快取狀態為原始的(clean)並且該發送電路系統將另一回應發送至該歸屬節點;並且該另一回應包含該請求資料且指示該請求資料已更改。回應節點處理其中回應節點接收對指示快取狀態「已更改」之資料的監聽請求的情況的一種有效方式為回應節點使用先前提及之轉發過程對監聽請求進行回應,以便將資料轉發至請求節點。此可使用要求的「原始」快取狀態發送,以便請求節點不會意識到資料已經更改。同時,回應節點亦可將另一回應發送至歸屬節點,以提供請求資料並亦指示請求資料已經更改。通常,此將導致歸屬節點盡力將更改之資料寫回至例如主系統記憶體。因此,此可實現而不必涉及請求節點,或者不必在資料可以提供至請求節點之前將資料寫回至主系統記憶體。因此,可以改進整體請求操作的潛時。
根據另一示例性配置,提供了:接收電路系統,用以接收來自請求節點之對請求資料的資料請求;及發送電路系統,用以將監聽請求發送至其他節點,其中該監聽請求包含該請求節點之識別符,對該請求資料之引用,及一指示,該指示關於當該請求資料在該其他節點處快取時轉發是否將發生為直接自該其他節點至該請求節點。
當歸屬節點接收來自請求節點對資料之請求時,歸屬節點將監聽請求發至系統內之一或多個其他節點。已發送之監聽請求包括關於是否將發生轉發之指示。由於此,監聽請求之接收器可藉由將請求資料(若存在)發至請求節點,而不是將資料發回至歸屬節點以發送至請求節點,來對監聽請求直接進行回應。
現將參照附圖描述特別實施例。
第1圖圖示資料處理系統100。在資料處理系統100內,具有歸屬節點110、第一請求節點120及第二請求節點130。第一請求節點120及第二請求節點130可為互連內之歸屬節點。在此實施例中,第一請求節點120將稱作請求節點,而第二請求節點130將稱作回應節點。資料處理系統100中之節點110、節點120、節點130之每個包含快取記憶體。每個快取記憶體圖示為具有三行。第一行表示資料值之位址,第二行表示資料值本身,並且第三行表示與資料值關聯之快取狀態。在此實施例中,快取狀態符合在由英國劍橋ARM有限公司創造的AMBA規範中使用之彼等。此種快取狀態包括指示特定項目為無效且可重寫之「I」、指示特定項目為共享及有所改寫兩者(亦即,在更通用術語中,特定項目為節點「自身的」,使得該項目由其他節點共享但已經局部更改)之「SD」,指示項目為共享且原始的(亦即,在更通用術語中,特定項目被「共享」,使得該項目由系統中之其他節點共享且不可更改)之「SC」,以及指示項目為唯一且原始的(亦即,在更通用術語中,特定項目為「獨佔的」,使得該項目由節點唯一所有且尚未更改)之「UC」。
如第1圖之實施例中說明,節點120、節點130之一或多者可對其他節點無權存取的資料值進行存取。例如,請求節點120對資料值0x0094無權存取,該資料值由回應節點130保存。同樣地,回應節點130對資料值0x0090無權存取,該資料值由請求節點120保存。因此,請求節點120期望存取資料值0x0094,則它必須將請求發送至歸屬節點110,此舉維持在整個資料處理系統100中之同調性以獲得對彼資料值的存取。
儘管未在第1圖中圖示,但資料處理系統100亦可包含經由歸屬節點110連接之主系統記憶體。資料可根據來自歸屬節點110之請求自主系統記憶體擷取。然而,此過程可能是費時的,因為存取主系統記憶體一般將比存取快取記憶體之一個更慢。
第2圖示意性地圖示資料處理系統100。在資料處理系統100內,具有歸屬節點110、第一請求節點120及第二請求節點/回應節點130。該等節點之每個包括快取140A、140B、140C;接收電路系統150A、150B、150C;及發送電路系統160A、160B、160C。
如前面提及,請求節點120將對未在請求節點120之區域快取140A中查找到之一些所要資料的請求訊息發至歸屬節點110。此請求訊息藉由請求模式120之發送電路系統160A發送,並且藉由歸屬節點110之接收電路系統150B接收。在此時,歸屬節點110決定在哪裡可查找到請求資料之最新版本。其決定此資料之最新版本可在回應節點130處查找到。因此,其將對要提供之資料的監聽轉發請求訊息發至回應節點130。此由歸屬節點110之發送電路系統160B發送且由回應節點130之接收電路系統150C接收。監聽轉發請求之細節將參照第3圖更詳細地論述。當接收到監聽轉發請求時,回應節點130在其區域快取140C中搜尋請求的資料。若查找到,則作為指示將執行轉發之轉發指示的結果,請求節點130將嘗試將此資料以回應之形式直接轉發至第一請求節點120。此回應由回應節點130之發送電路系統160C發送且由請求節點120之接收電路系統150A接收。
因此,來自請求節點120之請求資料可由回應節點130直接提供。特定而言,在此實施例中,不需要將回應或請求資料提供回至歸屬節點110並且不需要歸屬節點110隨後將資料返回至第一請求節點120。以此方式,由於僅需要一個回應訊息而不是需要兩個回應訊息,所以可改進潛時。
第3圖圖示在資料處理系統100之三個節點之間的異動順序。X軸表示每個節點,並且Y軸表示時間。最初,請求節點120將ReadShared訊息發至歸屬節點110。此指示請求節點120期望對特定資料值進行共享讀取存取。當此由歸屬節點110接收時,歸屬節點110將SnpSharedFwd訊息發出至回應節點130。此訊息為監聽轉發請求訊息,其首先指示請求節點120期望對特定資料值進行共享存取及其次指示將由回應節點130執行轉發。訊息包括用以指示初始請求來源之節點(請求節點120)的轉發節點id。訊息亦包括與由請求節點120發出之初始請求訊息關聯的異動id。特定而言,由請求節點120發出之初始ReadShared訊息與特定異動id(A)關聯。此異動id被包括作為監聽請求轉發訊息之第二參數。最後,監聽請求轉發訊息亦包括其自身的異動id,B。當在回應節點130處接收時,回應節點130決定是否存在請求資料。在此實施例中,假定存在資料值。因為請求節點120期望對資料值進行共享讀取存取,所以與資料值關聯之快取狀態自唯一原始(unique clean; UC)變化至共享原始(shared clean; SC)。另外,回應節點130將SnpResp_SC_Fwded_SC訊息發回至歸屬節點110。第一SC指示回應節點130將副本保留為SC,以及第二SC指示SC副本已經發至請求節點120。此訊息指示已經或將對監聽請求進行回應,並且該監聽請求已經以共享原始(shared clean; SC)快取狀態同時請求及提供。同樣地,回應節點130發出針對監聽請求之回應。在此實施例中,回應以CompData_SC訊息之形式自回應節點130發送至請求節點120。回應節點130藉由從歸屬節點110接收之SnpSharedFwd訊息而知曉請求節點120之id的身份,該id的身份標識請求節點120。此回應訊息包括歸屬節點110之識別符及正對監聽請求回應之異動id(B)作為參數。
因此,當請求節點120接收到此回應時,請求節點120已經成功地獲得資料值。隨後,請求節點120使用確認對歸屬節點110作出回應。此確認包括由歸屬節點110發出之監聽請求之異動id(B)及歸屬節點110之識別符作為參數。一旦歸屬節點接收此確認,就已知資料已經由請求節點120成功地獲取並且不需要採取另外動作來獲取請求資料。若此確認或由回應節點130發出之監聽回應未被歸屬節點110接收到,則歸屬節點110可推斷請求資料尚未由請求節點120獲得並且可能採取另外動作。特定而言,歸屬節點110可使用額外監聽請求來在網路中查詢其他節點,或可存取主系統記憶體以獲得正請求之資料。
為了維持同調性,提供了關於回應節點必須怎樣對接收之不同種類之監聽請求進行回應的許多規則。特定而言,取決於監聽請求的類型(其指示請求節點想要一旦已經獲取到資料就與資料關聯的快取狀態)及由回應節點保存之資料的當前快取狀態,可以採取不同動作或系列動作。特定而言,該等動作可以指定由回應節點保存之資料的快取狀態之變化。該等規則描述如下。此外,如已敘述的,根據由英國劍橋ARM有限公司創造之AMBA規範來提供該等規則。然而,本領域之一般技藝人士將理解到,可使用其他等效狀態來設計等效之規則組。
用於在回應節點130處處理轉發類型監聽的一般規則為 • 若列處於UD(唯一改寫)、UC(唯一原始)、SD(共享改寫)、或SC(共享原始)狀態中,則將副本轉發至請求節點。 • 不允許轉換至對應非轉發類型監聽。 • 回應於非無效監聽類型,不以唯一狀態轉發資料。 • 接收具有DoNotGoToSD位元組之監聽請求的回應節點130不轉換至SD(共享改寫),即使同調性允許SD亦如此。 SnpSharedFwd(監聽共享轉發)
作為由接收SnpSharedFwd之回應節點130遵守之先前列出之普通規則的補充的規則為 • 允許回應節點130以SD(共享改寫)、UC(唯一原始)、UD(唯一改寫)或者SC(共享原始)狀態轉發列。 • 回應節點130將其資料之副本轉換至SD(共享改寫)、SC(共享原始)或者I(無效)狀態。 SnpCleanFwd(監聽原始轉發)
作為由接收SnpCleanFwd之回應節點130遵守之先前列出之普通規則的補充的規則為 • 回應節點130以SC(共享原始)或UC(唯一原始)狀態轉發快取列。 • 回應節點130將其資料之副本轉換至SD(共享改寫)、SC(共享原始)或者I(無效)狀態。 SnpUniqueFwd(監聽唯一轉發)
作為由接收SnpUniqueFwd之回應節點130遵守之先前列出之普通規則的補充的規則為 • 回應節點130以唯一狀態轉發快取列。 • 具有處於任意改寫狀態(諸如UD(唯一改寫)或SD(共享改寫))下之資料的回應節點130將改寫資料發送至請求器而不是歸屬節點。 • 回應節點130將其資料之副本轉換至I(無效)狀態。 • 回應節點130不將資料返回至歸屬節點110。 SnpNotSharedDirtyFwd(監聽不共享改寫轉發)
作為由接收SnpNotSharedDirtyFwd之回應節點130遵守之先前列出之普通規則的補充的規則為 • 回應節點130以SC(共享原始)、UC(唯一原始)及UD(唯一改寫)狀態轉發資料。 • 回應節點130將其資料之副本轉換至SD、SC或I狀態。 SnpOnceFwd
作為由接收SnpOnceFwd之回應節點130遵守之先前列出之普通規則的補充的規則為 • 回應節點130以I(無效)狀態轉發資料。 • 綜上所述,回應節點130不將改寫資料轉發至請求節點120。 • 當資料狀態自UD(唯一改寫)或SD(共享改寫)變化至UC(唯一原始)或SC(共享原始)時,回應節點130將資料返回至歸屬節點110。
第4圖圖示異動圖,其中請求節點120與回應節點130之間的連接已斷開。特定而言,一系列異動以與之前相同之方式進行,其中請求節點120替代地請求資料之唯一副本。然而,一旦SnpUniqueFwd訊息由回應節點130接收到並且回應節點130企圖將資料轉發至請求節點120,就決定請求節點120與回應節點130之間的連接已斷開。因此,回應節點130替代地使用包含請求資料之常規監聽回應訊息對歸屬節點110進行回應。在此時,歸屬節點110可按典型監聽請求/監聽回應過程將資料轉發至請求節點120。
第5圖圖示在請求節點120、回應節點130與歸屬節點140之間的異動圖。異動按第3圖中圖示之實施例進行。然而,在此情況下,請求節點120所請求的由回應節點130儲存之資料為改寫的。換言之,資料已經在回應節點130之區域快取中更改。在此情況下,仍然藉由回應節點130將資料轉發至請求節點120。此外,回應節點130向請求節點120指示資料為原始的。換言之,請求節點120能夠將資料儲存在具有共享原始(shared clean; SC)之快取狀態的資料快取中。然而,當回應節點130將回應發回至歸屬節點140時,此以SnpResp_SC_Fwded_SC訊息之形式完成,該訊息包含更改(改寫)之資料且指示資料以共享原始狀態轉發至請求節點120。回應於此,歸屬節點140將導致資料寫回至系統快取或者主記憶體。因此,請求節點120快速地接收最新資料。此可在不需要將資料發送至歸屬節點140、寫回、以及隨後提供至請求節點120(此等需要可能引起顯著延遲)的情況下實現。
第6圖為圖示根據一個實施例之資料處理方法的流程圖170。過程在步驟180處開始,其中接收監聽轉發請求。在步驟190處,決定區域節點是否在其區域快取中具有請求資料。如不具有,則在步驟200處,可將否定回應發回至歸屬節點並且過程返回至步驟180。或者,在步驟210處,取決於已經發出之監聽請求之類型及區域快取中之資料的當前快取狀態,更改與區域快取中之資料關聯的快取狀態。一旦此步驟完成,若合適,則在步驟220處決定節點是否具有至請求器的連接。如不具有,則在步驟230處,將監聽回應發送回至歸屬節點,並且過程返回至步驟180。若節點具有至請求器之連接,則在步驟240,將回應發送至請求器。過程隨後進行至步驟250,在此處決定是否「更改」與資料關聯之先前快取狀態。例如,此可與意謂本端節點已經更改資料之共享改寫狀態等同。若未更改,則過程返回至步驟180。另外,在步驟260,將更改後之資料發送回至歸屬節點。隨後步驟返回至步驟180。
因此,描述之實施例使得可以直接對監聽請求快速地回應。此外,此可在無需任意提供之系統中的快取狀態之任何擴充的情況下實現。
在本申請案中,使用用語「經配置...」意謂設備元件具有能夠執行所定義操作之構造。在此上下文中,「構造」意謂硬體或軟體之排列或互連方式。例如,設備可具有提供限定操作之專用硬體,或處理器或其他處理裝置可經程式化以執行功能。「經配置以」不暗示設備元件需要以任何方式改變以便提供所限定之操作。
儘管本文已參考附圖詳細地描述本發明之說明性實施例,但應理解,本發明並不限於彼等精確實施例且熟習此項技藝者可在不背離如隨附申請專利範圍所定義之本發明之範疇及精神之情況下在其中實施各種改變、添加及修改。例如,可在不脫離本發明之範疇下,對從屬請求項之特徵與獨立請求項之特徵進行多種組合。
100‧‧‧資料處理系統
110‧‧‧歸屬節點
120‧‧‧第一請求節點
130‧‧‧第二請求節點
140A‧‧‧快取
140B‧‧‧快取
140C‧‧‧快取
150A‧‧‧接收電路系統
150B‧‧‧接收電路系統
150C‧‧‧接收電路系統
160A‧‧‧發送電路系統
160B‧‧‧發送電路系統
160C‧‧‧發送電路系統
170‧‧‧流程圖
180‧‧‧步驟
190‧‧‧步驟
200‧‧‧步驟
210‧‧‧步驟
220‧‧‧步驟
230‧‧‧步驟
240‧‧‧步驟
250‧‧‧步驟
260‧‧‧步驟
本發明將參照附圖中圖示之本發明的實施例來僅以舉例之方式進一步描述,其中:
第1圖圖示根據一個實施例之包含資料處理設備的系統;
第2圖圖示根據一個實施例之歸屬節點及兩個請求器節點;
第3圖圖示根據一個實施例之在歸屬節點與兩個請求器節點之間的一系列異動;
第4圖圖示根據一個實施例之在歸屬節點與兩個請求器節點之間的一系列異動;
第5圖圖示根據一個實施例之在歸屬節點與兩個請求器節點之間的一系列異動;以及
第6圖以流程圖形式圖示根據一個實施例之藉由請求器節點進行資料處理的方法。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (19)

  1. 一種資料處理設備,包含: 接收電路系統,用以代表一請求節點接收對請求資料之一監聽請求,該監聽請求包含關於是否將發生轉發之指示; 發送電路系統,用以發送對該監聽請求之一回應;以及 快取電路系統,用以快取至少一個資料值,其中 當將發生轉發並且該至少一個資料值包含該請求資料時,該回應包含該請求資料並且該發送電路系統將該回應發送至該請求節點。
  2. 如請求項1所述之資料處理設備,其中 從一歸屬節點接收該監聽請求;以及 當禁止發生轉發時,該回應包含該請求資料並且該發送電路系統將該回應發送至該歸屬節點。
  3. 如請求項1所述之資料處理設備,其中 從一歸屬節點接收該監聽請求;以及 當將發生轉發並且該至少一個資料值包含該請求資料時,該發送電路系統另外將一完成通知發送至該歸屬節點以指示已經履行該監聽請求。
  4. 如請求項1所述之資料處理設備,其中 該監聽請求包含該請求節點之一指示。
  5. 如請求項1所述之資料處理設備,其中 從一歸屬節點接收該監聽請求; 該監聽請求包含一異動識別符,該異動識別符用以識別自該請求節點至該歸屬節點之一異動,該異動導致生成該監聽請求;以及 該回應包含該異動識別符。
  6. 如請求項1所述之資料處理設備,其中 該快取電路系統包含與該至少一個資料值之每個關聯的一快取狀態;以及 該快取狀態指示該資料值為以下各者之至少一個:無效的、共享的、自身的、獨佔的、更改的。
  7. 如請求項1所述之資料處理設備,其中 該監聽請求指示是否將發生轉發,而不管在該資料處理設備處與該請求資料關聯儲存的狀態。
  8. 如請求項6所述之資料處理設備,其中: 該監聽請求指示是否將發生轉發,而不管在該快取電路系統中與該請求資料關聯儲存的快取狀態。
  9. 如請求項1所述之資料處理設備,其中 該監聽請求藉由編碼該監聽請求的一種類型來指示是否將發生轉發。
  10. 如請求項1所述之資料處理設備,其中 該監聽請求藉由該監聽請求中之一位元來指示是否將發生轉發。
  11. 如請求項1所述之資料處理設備,其中 從一歸屬節點接收該監聽請求;以及 當該發送電路系統不能將該回應發送至該請求節點時,該發送電路系統將該回應發送至該歸屬節點。
  12. 如請求項1所述之資料處理設備,其中 當將發生轉發並且該快取電路系統缺乏該請求資料時,該發送電路系統將該回應發送至該請求節點以指示缺乏該請求資料。
  13. 如請求項6所述之資料處理設備,其中 除了將包含該請求資料之該回應發送至該請求節點之外,取決於該快取狀態及該監聽請求之一種類型中的至少一者來調整該快取電路系統中與該請求資料關聯的一快取狀態。
  14. 如請求項13所述之資料處理設備,其中該監聽請求的該種類型指示該請求節點之用以快取該請求資料的一期望快取狀態。
  15. 如請求項1所述之資料處理設備,其中 該回應指示該請求節點之用以快取該請求資料的一要求快取狀態。
  16. 如請求項15所述之資料處理設備,其中 共享該要求快取狀態。
  17. 如請求項16所述之資料處理設備,其中 從一歸屬節點接收該監聽請求; 當該請求資料指示在該快取電路系統中之一快取狀態更改時,該要求快取狀態為原始的並且該發送電路系統將一另外回應發送至該歸屬節點;以及 該另外回應包含該請求資料並且指示該請求資料被更改。
  18. 一種資料處理設備,包含: 接收電路系統,用以接收來自一請求節點的對請求資料之一資料請求;以及 發送電路系統,用以將一監聽請求發送至一其他節點, 其中該監聽請求包含該請求節點之一識別符、對該請求資料之一引用、及一指示,該指示關於當該請求資料在該其他節點處快取時轉發是否將發生為直接自該其他節點至該請求節點。
  19. 一種資料處理方法,包含以下步驟: 快取至少一個資料值; 代表一請求節點接收對請求資料之一監聽請求,該監聽請求包含關於是否將發生轉發之一指示;以及 發送對該監聽請求之一回應,其中 當將發生轉發並且該至少一個資料值包含該請求資料時,該回應包含該請求資料並且將該回應發送至該請求節點。
TW107103406A 2017-02-08 2018-01-31 針對監聽請求的轉發回應 TWI753093B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/427,384 2017-02-08
US15/427,384 US11159636B2 (en) 2017-02-08 2017-02-08 Forwarding responses to snoop requests

Publications (2)

Publication Number Publication Date
TW201830923A true TW201830923A (zh) 2018-08-16
TWI753093B TWI753093B (zh) 2022-01-21

Family

ID=61283468

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107103406A TWI753093B (zh) 2017-02-08 2018-01-31 針對監聽請求的轉發回應

Country Status (5)

Country Link
US (1) US11159636B2 (zh)
JP (1) JP7277075B2 (zh)
CN (1) CN108415873B (zh)
GB (1) GB2566563B (zh)
TW (1) TWI753093B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942865B2 (en) * 2019-06-13 2021-03-09 Arm Limited Snooping with access permissions
US11334495B2 (en) * 2019-08-23 2022-05-17 Arm Limited Cache eviction

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275905B1 (en) 1998-12-21 2001-08-14 Advanced Micro Devices, Inc. Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system
EP1141838A1 (en) * 1998-12-21 2001-10-10 Advanced Micro Devices, Inc. Conservation of system memory bandwidth and cache coherency maintenance using memory cancel messages
US6490661B1 (en) * 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6393529B1 (en) 1998-12-21 2002-05-21 Advanced Micro Devices, Inc. Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6631401B1 (en) 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
JP2003216597A (ja) * 2002-01-23 2003-07-31 Hitachi Ltd マルチプロセッサシステム
US7003633B2 (en) * 2002-11-04 2006-02-21 Newisys, Inc. Methods and apparatus for managing probe requests
US7856534B2 (en) * 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US7467262B2 (en) * 2005-05-24 2008-12-16 International Business Machines Corporation Data processing system, cache system and method for scrubbing a domain indication in response to execution of program code
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US7451277B2 (en) * 2006-03-23 2008-11-11 International Business Machines Corporation Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
US7577797B2 (en) * 2006-03-23 2009-08-18 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state based upon a combined response
US7779210B2 (en) * 2007-10-31 2010-08-17 Intel Corporation Avoiding snoop response dependency
JP2009223759A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置,メモリ制御方法およびメモリ制御装置
US9058272B1 (en) * 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US7925840B2 (en) * 2008-09-05 2011-04-12 Arm Limited Data processing apparatus and method for managing snoop operations
US8799586B2 (en) 2009-09-30 2014-08-05 Intel Corporation Memory mirroring and migration at home agent
US8375170B2 (en) * 2010-02-12 2013-02-12 Arm Limited Apparatus and method for handling data in a cache
US8656115B2 (en) * 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
US8635411B2 (en) * 2011-07-18 2014-01-21 Arm Limited Data processing apparatus and method for managing coherency of cached data
US10204049B2 (en) * 2012-01-06 2019-02-12 Intel Corporation Value of forward state by increasing local caching agent forwarding
US8959290B2 (en) * 2012-02-21 2015-02-17 Lsi Corporation Methods and apparatus for reusing snoop responses and data phase results in a cache controller
KR101928770B1 (ko) * 2012-03-02 2018-12-13 에이알엠 리미티드 제1 및 제2의 프로토콜 도메인을 갖는 데이터 처리장치와, 그 데이터 처리장치의 방법
US9235519B2 (en) * 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
WO2014065879A1 (en) * 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US9542316B1 (en) * 2015-07-23 2017-01-10 Arteris, Inc. System and method for adaptation of coherence models between agents

Also Published As

Publication number Publication date
JP7277075B2 (ja) 2023-05-18
CN108415873B (zh) 2024-03-22
GB2566563B (en) 2021-03-10
TWI753093B (zh) 2022-01-21
JP2018129041A (ja) 2018-08-16
US20180227382A1 (en) 2018-08-09
CN108415873A (zh) 2018-08-17
US11159636B2 (en) 2021-10-26
GB201800876D0 (en) 2018-03-07
GB2566563A (en) 2019-03-20

Similar Documents

Publication Publication Date Title
US9235519B2 (en) Method for peer to peer cache forwarding
US7032078B2 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
KR100308323B1 (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
US8806148B2 (en) Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
US20060179241A1 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
US8504779B2 (en) Memory coherence directory supporting remotely sourced requests of nodal scope
JP2008097598A (ja) 共用のグローバル・コヒーレンシ状態を支援するプロセッサ、データ処理システム、および方法
KR20050085848A (ko) 멀티프로세서 시스템 내에서의 캐시 일관성에서 사용하기위한 전송 상태
US7222220B2 (en) Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
TW201832095A (zh) 具有覆寫無效性的讀取事務
JP5004571B2 (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
TWI753093B (zh) 針對監聽請求的轉發回應
US7506108B2 (en) Requester-generated forward for late conflicts in a cache coherency protocol
JP7328742B2 (ja) スヌープ要求への対応
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
US20210216241A1 (en) Write operation status
JP3678620B2 (ja) マルチプロセッサシステムにおけるデータ一貫性維持制御方法
JP2000010862A (ja) キャッシュメモリ制御方法