TW201832084A - 資料處理 - Google Patents

資料處理 Download PDF

Info

Publication number
TW201832084A
TW201832084A TW107102608A TW107102608A TW201832084A TW 201832084 A TW201832084 A TW 201832084A TW 107102608 A TW107102608 A TW 107102608A TW 107102608 A TW107102608 A TW 107102608A TW 201832084 A TW201832084 A TW 201832084A
Authority
TW
Taiwan
Prior art keywords
data
data access
circuit system
memory
request
Prior art date
Application number
TW107102608A
Other languages
English (en)
Other versions
TWI766936B (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 TW201832084A publication Critical patent/TW201832084A/zh
Application granted granted Critical
Publication of TWI766936B publication Critical patent/TWI766936B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Photoreceptors In Electrophotography (AREA)

Abstract

記憶體控制器包含記憶體存取電路系統,此記憶體存取電路系統經配置以回應於資料存取提示訊息來啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信的另一節點;用以回應於資料存取請求來存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點並且用以提供所存取資料作為對資料存取請求之資料存取回應。

Description

資料處理
本揭示案係關於資料處理。
資料傳輸協定可調節在裝置或經由互連電路系統彼此連接的節點之間資料傳輸的操作,例如晶片上系統(system on chip; SoC)或晶片上網路(network on chip; NoC)系統之情境中的情況。此種資料傳輸協定之實例為所謂高級微控制器匯流排架構(Advanced Microcontroller Bus Architecture; AMBA)同調集線器介面(Coherent Hub Interface; CHI)協定。
在CHI協定中,節點可以分類為請求節點(request nodes; RN)、主節點(home nodes; HN)或從屬節點(slave node; SN)。節點可以完全地同調或輸入/輸出(input/output; I/O)同調。完全同調之HN或RN(分別為HN-F、RN-F)包括同調快取儲存器;完全同調之SN(SN-F)與HN-F配對。HN-F可以管理記憶體區域之同調性及/或串列化,並且可稱作同調性點(point of coherency; POC)及/或串列化點(point of serialisation; POS)之實例。
此處,術語「同調」意味藉由一個節點寫入至同調記憶體系統中之記憶體位址的資料與藉由節點中之另一者自同調記憶體系統中之彼記憶體位址讀取的資料一致。因此,與同調函數關聯之邏輯之作用為確保在資料處理異動發生之前,若待存取之資料條目的版本過時(由於對同一資料條目之另一副本所作的修改),則待存取之副本首先執行更新。同樣地,若資料處理異動涉及更改資料條目,則同調邏輯避免與資料條目之其他現有副本起衝突。
串列化指來自潛在多個請求節點之記憶體存取請求的處理之定序,以及可能採取待服務之不同潛伏期之定序,以便彼等請求之結果以正確的順序呈現給請求節點,並且正確地處理請求之間的任意依賴關係(例如,在資料寫入至同一位址之後讀取資料)。
可以經由HN-F執行諸如讀取請求之資料存取,HN-F可服務讀取請求本身(例如,藉由存取快取記憶體)或者可將讀取請求送交至SN-F以用於解決,例如,若所需資料條目必須自主記憶體或更高階快取記憶體讀取便如此。在此類實例中,SN-F可包含與諸如動態隨機存取記憶體(dynamic random access memory; DRAM)之記憶體關聯的動態記憶體控制器(dynamic memory controller; DMC)。在HN-F本身不能服務請求之情況下,HN-F處理向SN-F發出讀取請求。
其他示例性協定包括高級可延伸介面(Advanced Extensible Interface; AXI)或AXI同調性延伸(AXI Coherency Extensions; ACE)協定。ACE協定不使用例如HN,但可提供例如由互連實施之POC/POS。
在示例性佈置中,提供一種記憶體控制器,包含: 記憶體存取電路系統,經配置: 用以回應於資料存取提示訊息啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信之另一節點; 用以回應於資料存取請求存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點以及 用以提供所存取資料作為對資料存取請求之資料存取回應。
在另一示例性佈置中,提供一種記憶體控制方法,此記憶體控制方法包含以下步驟: 回應於資料存取提示訊息啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信之另一節點; 回應於資料存取請求存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點;以及 提供所存取資料作為對資料存取請求之資料存取回應。
在另一示例性佈置中,提供資料處理電路系統,包含: 預測電路系統,用以儲存預測資料,此預測資料指出最近資料存取請求由第一資料源還是第二資料源履行,以及用以自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;以及 發出電路系統,用以將資料存取請求發至第一資料源,此發出電路系統經配置以將指示發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
在另一示例性佈置中,提供一種資料處理方法,此資料處理方法包含以下步驟: 儲存預測資料,此預測資料指出最近資料存取請求由第一資料源還是第二資料源履行; 自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;以及 將指示發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
本技術之另外各別態樣及特征由隨附申請專利範圍定義。
在參照附圖論述實施例之前,提供了實施例之以下描述。
一示例性實施例提供一種記憶體控制器,包含: 記憶體存取電路系統,經配置: 用以回應於資料存取提示訊息啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信之另一節點; 用以回應於資料存取請求存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點以及 用以提供所存取資料作為對資料存取請求之資料存取回應。
在示例性實施例中,與資料存取請求關聯之潛時,諸如經由諸如主節點之另一節點傳遞至記憶體控制器的資料存取請求,可能藉由提供記憶體控制器以回應資料存取提示而潛在地減少,此資料存取提示指出可能的後續資料存取請求。當接收後續資料存取請求時,可能已經開始相關資料存取。
在實例中,資料存取提示訊息及資料存取請求每個藉由一定範圍之一或多個記憶體位址來指定資料存取。例如,當記憶體存取電路系統已經回應於資料存取提示訊息針對給定範圍之一或多個記憶體位址啟動資料存取時,記憶體存取電路系統經配置以僅當記憶體控制器接收指定給定範圍之一或多個記憶體位址的後續資料存取請求時,提供所存取資料作為資料存取回應。以此方式,資料存取提示訊息可啟動資料存取,但彼資料存取並未完成,除非接收到後續資料存取請求。
對於回應之傳遞路徑,例如在資料存取請求經由諸如主節點之另一節點到達之情況下,資料存取請求可指定與記憶體控制器資料通信之另一節點,此資料存取回應應提供至此另一節點。
在實例中,接收節點例如取決於當前負載對資料存取提示訊息起作用或者不起作用可能是可選的。在此類實例中,記憶體存取電路系統經配置以回應於所接收之資料存取提示訊息決定是否啟動資料存取。
示例性佈置亦可提供一種資料處理系統,包含:一或多個主控節點,每個具有關聯快取記憶體;一或多個從屬節點,每個包含上文定義之記憶體控制器;及主節點,用以控制由資料處理系統儲存之資料中的同調性。
在實例中,一或多個主控節點經配置以將資料存取請求發至主節點;以及主節點經配置以偵測資料存取請求是否可由主節點履行或者資料存取是否需要對一或多個從屬節點執行存取,以及當需要對一或多個從屬節點執行存取時,主節點將資料存取請求發送至一或多個從屬節點。例如,一或多個主控節點可經配置以發送以下任一者:將資料存取請求發送至主節點;或者將資料存取請求發送至主節點以及將資料存取提示訊息發送至一或多個從屬節點之彼一者,當主節點不能履行彼資料存取時此等一或多個從屬節點將履行由資料存取請求指定之資料存取。
在實例中,什麼應由主控節點發出之選擇可由一或多個主控節點作出,此等一或多個主控節點包含用以決定是否發送資料存取提示訊息之預測電路系統。
在實例中,預測電路系統經配置以回應於指示決定是否將資料存取提示訊息發送至從屬節點,此等指示接收自主節點及從屬節點之一者或兩者,指出從屬節點是否履行一或多個上述資料存取請求。
另一示例性實施例提供一種記憶體控制方法,此記憶體控制方法包含以下步驟: 回應於資料存取提示訊息啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信之另一節點; 回應於資料存取請求存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點;以及 提供所存取資料作為對資料存取請求之資料存取回應。
另一示例性實施例提供一種資料處理電路系統,包含: 預測電路系統,用以儲存預測資料,此預測資料指出最近資料存取請求由第一資料源還是第二資料源履行,以及用以自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;以及 發出電路系統,用以將資料存取請求發至第一資料源,此發出電路系統經配置以將指示發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
在此等示例性實施例中,基於關於資料是否將由第二資料源履行之預測,指示(諸如讀取提示訊息)可發至或者不發至第二資料源。以此方式,傳輸頻寬可以保存(相比於針對每次資料存取發送讀取提示訊息),但仍然具有潛能以藉由允許第二資料源回應於讀取提示訊息啟動資料存取來減少潛時。
在一些實例中,預測電路系統經配置以回應於接收自第一及第二資料源之一者或兩者的資訊來儲存預測資料,此資訊指出哪個資料源履行最近資料存取請求。預測可根據此種儲存之資料。
在一些實例中,預測資料包含計數值,預測電路經配置以取決於最近資料存取請求由第一還是第二資料源履行來改變計數值。例如,預測電路系統可包含用以比較計數值與閾值之比較器。
在一些實例中,預測電路系統經配置以回應於正由第一資料源履行之最近資料存取將計數值改變了第一變化量,以及回應於正由第二資料源履行之最近資料存取將計數值改變了第二變化量,此第二變化量具有與第一變化量相反之極性。此等變化量可能為固定的或者預測電路可經配置以改變第一變化量及第二變化量之一者或兩者。
為了允許可能使用讀取提示訊息之不同可能性,在一些實例中,預測電路系統經配置以針對兩種或更多種類的資料存取請求產生各別預測。例如,兩種或更多種類的資料存取請求可自由以下各者組成之清單中選出: 資料讀取請求; 指令提取請求;及 位址轉換提取請求。
為了允許不同資料存取請求之間的差異,在一些實例中,預測電路系統經配置以取決於以下各者之一或多個產生預測: 啟動資料存取請求之處理指令的程式計數值; 回應於資料存取請求存取之資料條目的位址。
在一些實例中,預測電路系統經配置以由程式計數值及資料條目之位址的一者或兩者產生索引,以及用以藉由索引存取計數值表。為了減輕混疊(藉由同一索引但取決於程式計數及/或位址之不同值對同一預測資料之不期望存取),在一些實例中,預測電路系統經配置以由程式計數值及資料條目之位址的一者或兩者產生標籤以及用以儲存與藉由索引存取的計數值表中之項目關聯的標籤。例如,預測電路系統可經配置以擷取所儲存標籤以及比較所擷取標籤與由程式計數及資料條目之位址的一者或兩者產生之標籤。
在一些實例中,預測電路系統經配置以藉由各別索引存取兩個或更多個計數值表,此等各別索引由程式計數值及資料條目之位址的一者或兩者之不同各別部分產生。例如,當兩個或更多個表格具有與產生標籤匹配之儲存標籤時,預測電路系統經配置以根據由兩個或更多個表格之一者儲存的計數值產生預測,其中此索引由程式計數值及資料條目之位址的一者或兩者的更大數目之位元產生。
示例性佈置亦提供一種資料處理設備,包含:一或多個主控節點,每個包含如上文定義之電路系統以及每個具有關聯快取記憶體; 主節點,提供第一資料源,此主節點經配置以偵測它是否可藉由自快取記憶體之一或多者獲得所請求資料來履行給定資料存取請求,以及經配置以當主節點不能履行給定資料存取請求時請求來自第二資料源之請求資料;以及 一或多個從屬節點,提供第二資料源,每個從屬節點具有更高階記憶體。
在一些實例中,主控節點經配置以將傳輸請求發至主節點,請求向一或多個從屬節點之一者的資料傳輸;以及主節點經配置以串列化傳輸請求及存取請求至一或多個從屬節點,以便寫入至從屬節點處之記憶體位址的資料與回應於後續存取請求自彼記憶體位址讀取的資料一致。
在一些實例中,主節點經配置以控制跨一或多個主控節點之快取記憶體及一或多個從屬節點之更高階記憶體之同調性作為同調記憶體系統,以便藉由一個節點寫入至同調記憶體系統中之記憶體位址的資料與藉由節點中之另一者自同調記憶體系統中之彼記憶體位址讀取的資料一致。
另一示例性實施例提供一種資料處理方法,此資料處理方法包含以下步驟: 儲存預測資料,此預測資料指出最近資料存取請求由第一資料源還是第二資料源履行; 自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;以及 將指示發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
現參照附圖,第1圖示意地圖示資料處理設備,其表現為由網路100互連之裝置網路。可提供設備作為單個積體電路系統,諸如所謂晶片上系統(system on chip; SoC)或晶片上網路(network on chip; NoC),或者作為複數個互連離散裝置。
不同所謂節點經由網路100連接。此等節點包括一或多個主節點(home node; HN)110,其監察網路系統內之資料同調性;一或多個從屬節點(slave node; SN),諸如更高階快取記憶體120(對於「更高階」之引用關於由請求節點提供之快取記憶體並且在下文描述);主記憶體130及周邊裝置140。在第1圖中圖示之從屬節點的選擇作為實例,以及可以提供零個或更多個每種類型的從屬節點。
在此實例中,從屬節點120、從屬節點130每個包含記憶體控制器(DMC)122、記憶體控制器132及記憶體(DRAM)124、DRAM 134。
第1圖亦圖示複數個所謂請求節點(requesting node; RN)150、RN 160、RN 170,其在此實例中按照CHI(同調集線器介面)協定操作。
RN 150、RN 160、RN 170為具有關聯快取記憶體152、關聯快取記憶體162、關聯快取記憶體172之完全同調RN(RN-F)。RN 170亦可為RN-F並且可具有快取記憶體172。
更一般而言,節點可以為完全同調或者輸入/輸出(input/output; I/O)同調。完全同調之HN或RN(分別為HN-F、RN-F)包括同調的快取儲存器。例如,HN-F 110包含快取儲存器112。
完全同調SN(SN-F)與HN-F配對。HN-F可管理記憶體區域之同調性。
第1圖提供一種資料處理系統之實例,此資料處理系統包含:一或多個主控節點150、主控節點160、主控節點170,每個具有關聯快取記憶體152、關聯快取記憶體162、關聯快取記憶體172;一或多個從屬節點120,每個包含記憶體控制器;及主節點110,用以控制由資料處理系統儲存之資料中的同調性。
同樣地,第1圖提供資料處理設備之實例,此資料處理設備包含:一或多個主控節點150、主控節點160、主控節點170,每個包含預測器及發出電路系統(下文論述)及每個具有關聯快取記憶體152、關聯快取記憶體162、關聯快取記憶體172;主節點110,提供第一資料源,此主節點經配置以偵測它是否可藉由自快取記憶體之一或多者獲得請求資料來履行給定資料存取請求,並且經配置以當主節點不能履行給定資料存取請求時請求來自第二資料源(諸如從屬節點120、從屬節點130)之請求資料;及一或多個從屬節點120、從屬節點130,提供第二資料源,每個從屬節點具有更高階記憶體。
第2圖為圖示資料讀取存取之示意時序圖。
在第2圖中,請求節點RN-F 150、請求節點RN-F 160、請求節點RN-F 170之一者企圖讀取由主節點HN-F 110監察(從同調性之視角)的資料。HN-F充當所謂同調性點(point of coherency; PoC)。根據管理暫時重疊資料存取請求,或者其中一個資料存取請求之結果至少與另一資料存取請求之完成時序相關的資料存取請求之處理之定序,HN-F亦可充當所謂串列化點(point of coherency; PoS)以確保以適當順序啟動及/或完成此類資料存取請求。
因此,在實例中,主控節點經配置以將傳輸請求發至主節點,該請求係請求向一或多個從屬節點之一者的資料傳輸;以及主節點經配置以充當PoS以串列化傳輸請求及存取請求至一或多個從屬節點,以便寫入至從屬節點處之記憶體位址的資料與回應於後續存取請求自記憶體位址讀取之資料一致。在實例中,主節點經配置以充當PoC以控制跨一或多個主控節點之快取記憶體及一或多個從屬節點之更高階記憶體之同調性作為同調記憶體系統,以便藉由一個節點寫入至同調記憶體系統中之記憶體位址的資料與藉由節點之另一者自同調記憶體系統中之彼記憶體位址讀取的資料一致。
請求節點將資料讀取請求200發送至主節點。主節點偵測它是否可服務或履行請求本身,在此情況下它將資料讀取回應205提供至請求節點並且完成此過程。
藉由主節點服務讀取請求可涉及主節點自其自己的快取記憶體(若它具有一個)擷取請求資料及/或自由主節點管理之快取記憶體(諸如快取記憶體152、快取記憶體162、快取記憶體172之一或多者)擷取請求資料,此主節點在其作用中充當PoC。在一些實例中,藉由諮詢由作為PoC(諸如所謂監聽過濾器)之主節點維持之記錄,在其作為PoC之控制下指出每個快取記憶體保持之資料,或者藉由查詢快取記憶體之一或多者,主節點可偵測它是否保持請求資料之最新或有效版本,或快取記憶體在其同調性管理下是否保持請求資料之最新或有效版本。用以偵測主節點是否可服務讀取請求之由主節點使用的特別技術取決於使用之系統架構。主節點是否可服務讀取請求之偵測可為先發制人之偵測(例如,使用如上文提及之監聽過濾器),或可為故障引起之偵測,藉由主節點成功地完成對服務讀取請求之嘗試。
藉由主節點服務讀取請求意味不對記憶體120、記憶體130執行存取以服務讀取請求。
然而,若主節點偵測到它不能服務請求本身,則它依次將讀取請求210發送至適當的從屬節點SN 120、SN 130。從屬節點之記憶體控制器(DMC)接收請求,並且作為異動215、異動220,自記憶體(DRAM)讀取所需資料。隨後記憶體控制器將作為讀取回應225之資料經由主節點回傳至請求節點,或者直接回傳至請求節點(如在第2圖之實例指出)。在實例中,由主節點提供之讀取請求可指定與記憶體控制器資料通信的另一節點(諸如RN),此讀取回應應提供至此另一節點。
因此,主節點及從屬節點分別提供第一及第二資料源之實例,佈置此第一及第二資料源,以便若資料存取請求不由第一資料源履行,則由第二資料源履行。
記憶體存取中之潛時對系統效能(至少在一些情況下)是重要的乃至是關鍵的。在第2圖之實例中,引入潛時-在此情況下記憶體讀取請求必須傳遞至DRAM-如主節點接收請求200與發出請求210之間的延遲230,以及DMC接收請求210與啟動異動215之間的延遲235。
第3圖為根據本揭示案之示例性實施例圖示資料讀取存取的示意時序圖。
如參照第2圖描述,RN-F發出資料讀取請求300,並且將所謂「讀取提示」305直接發至從屬節點之記憶體控制器,若主節點本身不能實行此舉,則此從屬節點將必須服務或履行讀取請求。RN-F可偵測出哪個從屬節點與來自系統配置或記憶體映射資訊之讀取請求有關。例如,此可為所謂系統位址映射(System Address Map; SAM),其由系統級配置建立並且在第1圖之網路或設備中在位址範圍與目的地之間提供映射。在示例性佈置中,每個節點具有唯一(在系統內並且當時)標識符(identification; ID)。封包指定待發送到之目標ID,及應回傳回應至其之源ID。
可將諸如讀取請求之封包發送至主節點(或雜項節點,並未結合本技術進一步論述),此主節點可為HN-F(完全同調)或HN-I(輸入/輸出同調)。RN之SAM邏輯可在位址上使用散列函數以得出待使用之特定HN的選擇。額外配置資訊將特定HN映射至節點ID。
若HN-F本身不履行資料存取請求,RN-F 150、RN-F 160、RN-F 170亦提供類似於上述之SAM功能以偵測請求將由哪個從屬節點處理。所以,亦藉由每個RN-F之SAM功能將一組一或多個從屬節點映射至位址範圍。因此,對於各別位址,可能存在映射至彼位址之HN,其為RN-F將發送讀取請求之地方,且亦映射至同一位址之SN-F,其為RN-F將發送讀取提示之地方(若適合)。使用從屬節點之目標ID編址讀取提示,而使用HN之目標ID編址讀取請求。
因此,在實例中,請求或主控節點經配置以存取位址配置資訊,其將位址或位址範圍(例如,關於資料存取請求)映射至主節點及從屬節點,例如使得主控或請求節點可將適於待存取之位址或位址範圍之資料存取請求(諸如讀取請求)發至主節點,以及將適於同一位址或位址範圍之資料存取提示(諸如讀取提示)發至從屬節點。
主節點如上所述地進行,將所需資料作為讀取回應310返回,或者將讀取請求315發送至從屬節點(同樣,若需要,使用類似的SAM功能來偵測要使用哪個從屬節點,及/或上述配對佈置)。然而,在目前情況下,從屬節點已經啟動異動320、異動330以回應於在讀取提示305之時間335的接收來擷取所需資料。因此,不是從屬節點等到接收讀取請求315才開始異動320,而是記憶體控制器能夠回應於讀取提示305之接收而較早地開始異動320。如前所述,一旦記憶體控制器接收所需資料,則它提供所需資料作為對RN-F的讀取回應340。
由於提供讀取提示305而提早開始之異動320、異動330允許時段345之潛時的省免。此類時段之長度取決於系統之許多不同設計參數及態樣,但在示例性實施例中,關於自DRAM讀取資料所花費之全部時間,此類省免可能為重要的。
第4圖為僅參照第3圖描述之圖解方法的示意流程圖。在第4圖中,中斷垂直(如繪製)線分隔請求節點之活動、主節點之活動及從屬節點之活動。
第4圖中圖示之過程開始於請求節點在步驟400發出讀取請求及讀取提示。讀取請求發至與所需位址或位址範圍相關之主節點,以及讀取提示發至與位址或位址範圍相關之從屬節點,並且若主節點不能服務讀取請求,則從屬節點將需要服務讀取請求。讀取請求及讀取提示可由請求節點以任意順序或共同發出。
在步驟405,主節點接收讀取請求300並且在步驟410偵測讀取請求是否可由主節點履行。例如,主節點可在快取記憶體、監聽過濾器等等中查尋請求以偵測讀取請求300是否可藉由主節點滿足。
若答案為是,則在步驟415主節點履行讀取請求,並且在步驟420向請求節點提供讀取回應310。
若在步驟410答案為否,則在步驟425主節點將請求315發送至從屬節點。此結束了主節點在此特定異動中之參與。
單獨地,在步驟430,從屬節點自請求節點接收提示305,以及在步驟435,啟動異動320以存取記憶體。隨後在從屬節點處之控制流程可按照兩個路徑之一者,並且此等路徑之間的區別將在下文進一步論述。在一個路徑中,若接收提示305但不接收後續讀取請求315,意味(例如)提示305為不必要的並且主節點實際上可使用讀取回應310服務請求,則在步驟440丟棄提示以及終止回應於提示之接收啟動的記憶體異動。
另一方面,若已經接收請求315,則完成異動320、異動330,儘管由於步驟435處之提前啟動比其他的略微早,但是在步驟450處提供回應340之前在步驟445處履行讀取請求。
在第1圖圖示之類型的網路中讀取提示可為一種訊息或指令,其不同於至少一些其他類型之訊息或指令,不需要作用,以及不同於至少一些其他類型或訊息,不需要回應。從屬節點可丟棄或忽視讀取提示,例如若從屬節點已經完全加載其他動作。甚至,中間節點可以丟棄或不能傳遞讀取提示,例如若完全加載中間節點之緩衝及/或傳輸容量。不需要從屬節點提供關於讀取提示之回應或回執。因此,在實例中,記憶體存取電路系統可經配置以回應於所接收之讀取提示決定是否啟動資料存取。
在第4圖中,一或多個主控節點經配置以將資料存取請求發至主節點(400);以及主節點經配置以偵測資料存取請求是否可由主節點履行或者資料存取是否需要對一或多個從屬節點執行存取(410),以及當需要對一或多個從屬節點執行存取時,主節點將資料存取請求發送至一或多個從屬節點(425)。在實例中,一或多個主控節點可經配置以發送以下任一者:將資料存取請求200發送至主節點;或者將資料存取請求300發送至主節點以及將資料存取提示訊息305發送至一或多個從屬節點之彼一者,當主節點不能履行資料存取時此等一或多個從屬節點將履行由資料存取請求指定之資料存取。
第5圖示意地圖示請求節點RN-F 500之功能的部分。此實例關於單個處理器核心(如下文描述),但可同樣地應用於處理器群組或「叢集」。處理器核心510基於處理器指令執行處理操作並且亦存取快取記憶體520。處理器核心經由第1圖中之網路100啟動資料處理異動並且包含用以發出及處理此種異動的電路系統530。
電路系統530包含:預測電路系統532、歷史儲存器534、未完成的異動緩衝器536及發出邏輯538。預測電路系統532及歷史儲存器534之功能將在下文論述。發出邏輯538處理資料讀取或寫入請求至網路之發出,以及未完成的異動儲存器536保持已經發出及尚未接收完成回應之請求的細節。
因此,在第5圖中,一或多個主控節點500包含用以決定是否發送此資料存取提示訊息之預測電路系統532。
第5圖亦提供資料處理電路系統之實例,此資料處理電路系統包含:預測電路系統532,用以儲存預測資料(例如在歷史儲存器534中),此預測資料指出最近資料存取請求由第一資料源(諸如主節點)還是第二資料源(諸如DRAM)履行,以及用以自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;及發出電路系統538,用以將資料存取請求300發至第一資料源,發出電路系統經配置以將指示(諸如讀取提示305)發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
第6圖示意地圖示預測電路系統532之操作的實例。例如,歷史儲存器534維持計數值。回應於關於如何處理先前讀取異動接收之資訊605,計數值由變化邏輯600改變。例如,若處理讀取異動以便自主節點接收其回應,則由歷史儲存器534保存之計數可遞減,例如減少一。若讀取回應指出處理由DRAM處理,則由歷史儲存器534保存之計數可遞增,例如增加一。
比較器610比較由歷史儲存器534保存之最近計數與閾值620。若當前計數大於閾值(指出已經由DRAM處理大量最近的異動),則預測邏輯532可對發出電路系統538指出(例如藉由信號615)與發出讀取請求同時發出讀取提示。另一方面,若計數值小於或等於閾值,則信號615可指出不發出讀取提示。
應注意,若所謂命令頻寬允許,則讀取提示可與讀取請求同時發出。亦即,若提供實體匯流排以傳送此種命令及匯流排上之間隙允許同時發出兩者,則此可發生。若讀取請求及讀取提示必須在不同時間發出,則在一些實例中,它為關於首先發出哪一者之任意選擇。
使用第6圖中圖示之類型的電路系統的一個原因(及在下文論述之其他實例中)為避免其中在每個讀取請求旁邊或與每個讀取請求關聯發出讀取提示的情況。此舉可以將負重置於整個系統上,因為需要將讀取提示跨網路傳播至相關從屬節點。因此,儘管在每個讀取請求下發出讀取提示可(至少在一些實例中)保證在主節點不能服務讀取請求之情況中滿足上述潛時優點,此將根據可能過載可用於在節點之間傳遞資訊的訊息傳輸頻寬而損害系統效能。因此,第6圖中圖示類型之電路系統,或將在下文論述之其他實例,可提供關於讀取提示是否可能與特定讀取請求結合有用或適當的預測或預計。以此方式,發出較少讀取提示(與在每個讀取請求下發出讀取提示之比較情況中相比),但第6圖之電路系統或待在下文論述之其他實例的目標為實際上發出之讀取提示將傾向於為對各別讀取請求為有用的或適當的讀取提示。
應注意,如上文論述,讀取提示不一定由中間節點轉發或由接收從屬節點作用。因此,在一些實例中,如正在RN處提供之此處論述類型的預測電路系統可改為或另外在中間節點或從屬節點處提供,從而為中間節點及/或從屬節點提供關於是否分別轉發及/或作用讀取提示的資訊。
變化邏輯600處理由歷史儲存器534保存之計數的遞增或遞減。遞增之大小及遞減之大小為一或者甚至為相同的並非必需。例如,計數可針對由主節點處理之每次異動遞減一,但針對由DRAM處理之每次異動遞增二。在一些實例中,增量及減量可在操作期間在適合的基礎上變化,例如若發出電路系統538偵測到在與例如發出讀取提示之目標速率比較中正發出太多或太少讀取提示。同樣地,閾值620可例如藉由發出電路系統538在相同之基礎上調適。當異動由DRAM處理時遞增計數及當由主節點本身處理時遞減計數亦並非必需。只要變化具有相反之極性,則可使用任一個功能。同樣地,取決於由變化邏輯600應用之變化的極性,由比較器610執行之測試可為以下各者之任一者:大於閾值620,大於或等於閾值620、小於閾值620,或者小於或等於閾值620。通常可佈置與閾值620之比較,以便(使用變化及比較之任一極性)正由DRAM服務之請求的優勢將傾向於導致預測電路系統指出下一個讀取請求應伴有讀取提示,以及正由主節點服務之請求的優勢將傾向於導致預測電路系統指出下一個讀取請求應不會伴有讀取提示。通常,在實例中,預測電路系統經配置以回應於正由第一資料源履行之最近資料存取將計數值改變了第一變化量,以及回應於正由第二資料源履行之最近資料存取將計數值改變了第二變化量,此第二變化量具有與第一變化量相反之極性。如論述,可使用適當的變化,以便在實例中預測電路系統經配置以改變第一變化量及第二變化量之一者或兩者。
在此等實例中,預測資料包含計數值,預測電路系統經配置以取決於最近資料存取請求由第一還是第二資料源履行來改變計數值。
第6圖之實例提供單個計數器並且因此提供基於程式之相控操作的預測的實例,以便程式可能陷入通用快取-缺失或通用快取-命中行為。單個計數器提供一種優美簡單之方式來追蹤對快取-命中或快取-缺失操作之偏移。在其他實例中,使用更複雜之計數佈置,提供相對更詳細之預測佈置。
資訊605之使用可提供實例,其中預測電路系統經配置以回應於指示605決定是否將資料存取提示訊息發送至從屬節點,此等指示接收自主節點及從屬節點之一者或兩者,指出從屬節點是否履行一或多個上述資料存取請求。在實例中,預測電路系統經配置以回應於接收自第一及第二資料源之一者或兩者的資訊來儲存預測資料,此資訊指出哪個資料源履行最近資料存取請求。
第6圖之實例使用由比較器610執行之與閾值的「硬」比較(用以比較計數值與閾值之比較器的實例),來關於是否應發出讀取提示給出是/否結果。在其他實例中,計數之大小可提供提示會有用之可能性指示,以便比較器可產生關於是否基於此可能性及其他因素(諸如產生讀取提示之速率對所需速率,如上文論述)發送讀取提示的指示。所以,計數可替代地指出「軟」可能性而不是用作硬比較。
RN及/或預測電路系統可儲存指出讀取提示是否實際上針對特別讀取請求發出的資訊。此資訊可以下文論述之示例性方式與來自從屬節點關於讀取提示是否有用之返回資訊結合使用,及/或與自從屬節點返回的指出從屬節點服務特定讀取請求之資訊結合使用。
第7圖示意地圖示預測電路系統之多個實例700、實例710、實例720,例如一個針對讀取異動之多種分類之每一者,諸如:(i)資料讀取操作;(ii)指令提取操作;(iii)記憶體位址轉換資訊提取,例如由記憶體管理單元(memory management unit; MMU)使用。預測電路系統700、預測電路系統710、預測電路系統720可具有在第6圖中圖示之類型或具有下文論述之類型。根據異動730之類型,實例700至實例720之各別一者可選中以由示意多工器740操作。適當預測電路系統之輸出用作當前預測,以及向各別預測電路系統提供接收回之指出預測是否適當的資訊(諸如先前請求由主節點還是由DRAM處理之指示605,但在下文論述之其他實例中,可額外或替換提供更多詳細資訊)。
因此,第7圖提供實例,其中預測電路系統經配置以針對兩種或更多種類的資料存取請求而產生各別預測。例如,兩種或更多種類的資料存取請求可以自由資料讀取請求、指令提取請求及位址轉換提取請求組成之清單中選出。
第8圖示意地圖示由表800提供,及由組合器820產生之位址資訊810編址的計數值或其他資訊的表,組合器820組合例如適於啟動當前讀取操作之指令的程式計數值之位元及/或正由當前操作存取之實體位址(physical address; PA)之位元(例如,在正存取之一定範圍之位址中的最低實體位址)。由組合器820執行之組合可例如為散列操作、所謂折疊操作(其中各別值之位元群組彼此組合)等等。
表800保存多個計數值。回應於位址資訊810,一個計數值經選擇以用於存取並且作為計數值805輸出(例如,輸出至類似於第6圖之比較器610的比較器)。當接收關於先前讀取請求(例如,它由主節點還是DRAM服務)之結果的資訊605時,例如使用變化邏輯600或類似的(例如遞增或遞減),改變適於彼讀取請求之各別計數值(如藉由組合器820使用適於彼讀取請求之PA/PC資訊所決定的)。
所以,第7圖提供根據一種讀取請求(按照其操作)分割之預測電路系統的實例。第8圖提供取決於與讀取請求有關之PC及PA之一者或兩者(按照其操作)分割的預測電路系統的實例。
應注意,組合器820之操作可導致所謂混疊之情況,其中PA及PC(之一者或兩者)之不同值集合可導致相同位址資訊810的產生。此潛在問題可由將在下文論述之第9圖之實例至少部分地減緩。
第9圖示意地圖示預測電路系統之另一實例。此處,計數值儲存在表中,例如具有256個項目(因此由八位元索引編址)之表,以便自正存取之當前程式計數器及實體位址之一者或兩者所導出的值用以產生索引來選擇適當的計數值。
在此實例中,提供三個此種表900、表910、表920。在所有情況下,索引藉由正存取之程式計數器及/或實體位址之位元的不同組合而產生。藉由各別折疊/散列邏輯905、折疊/散列邏輯915、折疊/散列邏輯925執行索引之產生。
折疊/散列邏輯905對程式計數器及實體位址之全部32位元(在本實例中)運算。在實例中,它例如藉由將程式計數器及實體位址值之每一者分割成每個8位元之部分(例如,在LSB開始且在MSB終止之連續8位元部分)及將彼等部分添加在一起而不傳送(互斥或運算)來將此等值折疊在一起。然而,可使用其他位元壓縮或散列方法。所得索引用以擷取表900中之適當項目。
表900中之每個項目儲存各別計數值及標籤。標籤亦由程式計數器及/或實體位址產生,但使用不同之折疊或散列方法。標籤儲存在表900中之計數值旁邊並且亦由折疊/散列邏輯905單獨地再生。當存取表項目時,不僅計數906輸出而且與標籤908比較之儲存標籤907由折疊/散列邏輯905產生。比較器909偵測兩個標籤值是否相同。若它們相同,則由比較器930執行之計數值與閾值(thr1 )之比較與預測有關,並且回應於關於讀取請求之結果接收回之資訊更改各別計數值(例如,藉由類似於變化邏輯600之變化邏輯,並未在第9圖中圖示)。若標籤值不相同,則此可能僅意味著將較長位址值折疊或散列成較短索引值之混疊效應意味著不正確項目已經針對程式計數器及實體位址讀出。在此情況下,由比較器930執行之比較並不用作預測過程的部分。
藉由折疊/散列邏輯915執行類似佈置,除了它僅使用程式計數器及/或實體位址的最低有效16位元。同樣地,折疊/散列邏輯925僅使用程式計數器及/或實體位址之最低有效8位元。每個使用比較器909及比較器930之類似佈置。
所以,折疊/散列邏輯905、915、925之三種情況使用PC/PA位元之各別不同部分(例如,各別不同大小部分)以產生索引及標籤。較小部分更傾向於上述混疊類型。若表之兩者或更多者之標籤的比較證實為肯定的(標籤匹配),則使用與來自表之彼一者的計數值的閾值比較,其使用程式計數器/實體位址之更大量的位元來產生其索引。換言之,更高級(如在第9圖中繪製)之表在具有匹配標籤之多個表格的情況中使用。
在其他實例中,最近請求之結果之歷史,例如1用以指出讀取請求由主節點服務以及0用以指出讀取請求由DRAM服務,佈置在具有(亦即)32個歷史值之順序(先進先出)暫存器950中,其中最低有效之項目為最新歷史值,可併入除PC及/或PA之外或代替PC及/或PA之折疊/散列過程,例如使用與上述相同之部分(31:0、15:0、7:0)。
因此,第9圖提供預測電路系統之實例,此預測電路系統經配置以取決於以下各者之一或多者產生預測:啟動資料存取請求之處理指令的程式計數值;及回應於資料存取請求存取之資料條目的位址。在實例中,預測電路系統經配置以由程式計數值及資料條目之位址的一者或兩者產生(藉由電路系統905、電路系統915、電路系統925)索引,以及經配置以藉由索引存取計數之值表。電路系統905、電路系統915、電路系統925可由程式計數值及資料條目之位址的一者或兩者產生標籤,以及儲存與藉由索引存取的計數值表中之項目關聯之標籤。在實例中,預測電路系統(藉由電路系統905、電路系統915、電路系統925及比較器909)經配置以擷取所儲存之標籤並且用以比較所擷取之標籤與由程式計數值及資料條目之位址的一者或兩者產生之標籤。
在第9圖中,預測電路系統經配置以藉由各別索引存取計數值之兩個或更多個表,此等各別索引由程式計數值及資料條目之位址的一者或兩者之不同各別部分產生。如上文論述,在實例中,當兩個或更多個表格具有與產生標籤匹配之儲存標籤時,此預測電路系統經配置以根據由兩個或更多個表格之一者儲存的計數值產生預測,其中此索引由程式計數值及資料條目之位址的一者或兩者的更大數目之位元產生。
第10圖示意地圖示記憶體控制器1005(諸如DMC 122、DMC 132),其經佈置以接收讀取提示1000及讀取或寫入請求1010之一者或兩者。提供未完成的讀取提示之緩衝器1020,以便當由啟動對DRAM執行存取之存取邏輯1030接收及作用新讀取提示時,定義彼提示之資訊儲存在未完成的提示緩衝器1020中。
在實例中,讀取提示(資料存取提示訊息)及資料存取請求(讀取請求)每個藉由一定範圍的一或多個記憶體位址指定資料存取。在接收關於與未完成的提示相同之記憶體位址或位址範圍的後續請求,以及在接收提示並且啟動動作之後馬上充分地接收請求(下文將論述)的情況下,則偵測電路系統1022自未完成的提示緩衝器1020刪除。個別地,請求儲存在未完成的請求緩衝器1040中。存取邏輯1030持續存取相關記憶體位址或多個位址,並且在適當時候產生回應1050。回應可包括所請求的資料(在讀取請求的情況下)及完成應答(其在一些實例中可伴隨讀取回應之最後一個資料條目或資料節拍)。
偵測電路系統1022經佈置以偵測在接收對應於彼讀取提示之請求的時候讀取提示是否有效(例如,仍然保存在未完成的提示緩衝器1020中),以及用以產生指出此偵測之結果的信號1024。
形成回應1050之部分或全部的應答可包括資訊,此資訊識別出資料自DRAM(預測電路系統可使用來證實預測為正確的)獲得。此可藉由在應答中指出回應340(第3圖)之來源之標識符來實施,例如作為提供回應340之特定記憶體資源之標識符,作為提供回應340之記憶體資源之類型分類的標識符,及/或由DARM提供回應340的指示。
形成回應之部分或全部的應答亦可包括指示(取決於信號1024),此指示關於讀取提示在接收後續請求的時候是否仍然有效,從而指出提示之使用在省免記憶體存取潛時之部分中有用。
若接收到並且作用(並且儲存在未完成的提示緩衝器1020中)提示但沒有接收後續請求(例如,因為畢竟HN能夠服務請求),則在從接收讀取提示及/或首先將讀取提示儲存在未完成的提示緩衝器中的預定時間之後,或當存取邏輯1030指出在由提示啟動之存取過程中到達預定階段時,或兩者之較早者,或兩者之較遲者,偵測電路系統1022撤銷提示並且自未完成的提示緩衝器1020中刪除提示。
所以,當記憶體存取電路系統已經回應於讀取提示針對給定範圍之一或多個記憶體位址啟動資料存取時,記憶體存取電路系統經配置以僅當記憶體控制器接收指定給定範圍之一或多個記憶體位址的後續資料存取請求時,提供存取資料作為資料存取回應。僅讀取提示不導致(在示例性佈置中)相關資料之返回。它僅啟動記憶體存取以為後續讀取請求做準備。
然而,若後續接收讀取請求(在已經撤銷讀取提示之後),則將產生信號1024以指出相關讀取提示在接收讀取請求的時候無效。
在上文論述之預測電路系統之實例中,取決於由主節點還是參考諸如DRAM之從屬節點服務或履行讀取請求來改變計數值等等。在其他實例中,取決於(i)實際上是否提供讀取提示(可在預測電路系統及/或RN處執行而不需要自從屬節點返回之資訊的偵測)及(ii)各別讀取提示在接收後續請求的時候是否仍然有效之一者或兩者,可改變(替換或外加)計數值,從而指出提示之使用在省免記憶體存取潛時之部分中有用。若提供「有用」讀取提示,則此將傾向於將計數值或其他預測轉向指示,此指示為應提供另外的讀取提示(例如,針對分類或散列之位址)。若提供了讀取提示但它並非「有用」,則此可經佈置亦將計數值之變化轉向指示,此指示為不應提供另外讀取提示。若不提供讀取提示但讀取請求由從屬節點(例如,DRAM)服務,則此可傾向於將預測轉向指示,此指示為應提供另外的讀取提示。應理解,此等結果之任一者之任意各別情況本身可能不導致RN行為之變化以發出或不發出讀取提示(除非可能各別情況導致計數移到閾值之另一側),但此種各別情況仍然可將計數值移向一個結果或另一個,或者換言之傾向於以某種方式轉向預測。
因此,第10圖提供記憶體控制器之實例,此記憶體控制器包含:記憶體存取電路系統(諸如存取邏輯1030),其經配置以回應於資料存取提示訊息1000啟動儲存在記憶體中之資料的資料存取,資料存取提示訊息1000接收自與記憶體控制器資料通信之另一節點;經配置以回應於資料存取請求1010存取儲存在記憶體中之資料,資料存取請求1010接收自與記憶體控制器資料通信的另一節點,以及用以提供存取資料作為對資料存取請求之資料存取回應1050。
第11圖示意地圖示記憶體控制方法,此方法包含以下步驟: 在步驟1100,回應於資料存取提示訊息啟動儲存在記憶體中之資料的資料存取,此資料存取提示訊息接收自與記憶體控制器資料通信之另一節點; 在步驟1110,回應於資料存取請求存取儲存在記憶體中之資料,此資料存取請求接收自與記憶體控制器資料通信之另一節點;以及 在步驟1120,提供存取資料作為對資料存取請求之資料存取回應。
第12圖示意地圖示資料處理方法,此方法包含以下步驟: 在步驟1200,儲存預測資料,此預測資料指出最近資料存取請求由第一資料源還是第二資料源履行; 在步驟1210,自預測資料預測下一個資料存取請求將由第一資料源還是第二資料源履行,佈置第一及第二資料源以便若資料存取請求不由第一資料源履行,則由第二資料源履行;以及 在步驟1220,將指示發至第二資料源,此指示為給定資料存取請求回應於預測電路系統可能需要由第二資料源履行,此預測電路系統預測給定資料存取請求將由第二資料源履行。
在本申請案中,使用用語「經配置...」意謂設備元件具有能夠執行所定義操作之結構。在此上下文中,「配置」意謂硬體或軟體之互連之排列或方式。例如,設備可具有提供定義操作之專用硬體,或處理器或其他處理裝置(諸如上文論述之處理元件)可經程式化以執行功能。「經配置以」不提示設備元件需要以任何方式改變以便提供所定義之操作。
儘管本技術已參考所附圖式詳細地描述本發明之說明性實施例,但應理解,本技術並不限於彼等精確實施例且熟習此項技術者可在不背離如隨附申請專利範圍所定義之本技術之範疇及精神之情況下在其中實施各種改變、添加及修改。例如,可在不脫離本技術之範疇下,對從屬請求項之特徵與獨立請求項之特徵執行多種組合。
100‧‧‧網路
110‧‧‧主節點(HN)
112‧‧‧快取儲存器
120‧‧‧從屬節點
122‧‧‧記憶體控制器(DMC)
124‧‧‧記憶體(DRAM)
130‧‧‧從屬節點/主記憶體
132‧‧‧DMC
134‧‧‧DRAM
140‧‧‧周邊裝置
150‧‧‧請求節點(RN)/主控節點
152‧‧‧關聯快取記憶體
160‧‧‧主控節點
162‧‧‧關聯快取記憶體
170‧‧‧主控節點
172‧‧‧關聯快取記憶體
200‧‧‧資料讀取請求
205‧‧‧資料讀取回應
210‧‧‧讀取請求
215‧‧‧異動
220‧‧‧異動
225‧‧‧讀取回應
230‧‧‧延遲
235‧‧‧延遲
300‧‧‧資料讀取請求
305‧‧‧讀取提示
310‧‧‧讀取回應
315‧‧‧讀取請求
320‧‧‧異動
330‧‧‧異動
335‧‧‧時間
340‧‧‧讀取回應
345‧‧‧時段
400‧‧‧步驟
405‧‧‧步驟
410‧‧‧步驟
415‧‧‧步驟
420‧‧‧步驟
425‧‧‧步驟
430‧‧‧步驟
435‧‧‧步驟
440‧‧‧步驟
445‧‧‧步驟
450‧‧‧步驟
500‧‧‧請求節點RN-F/主控節點
510‧‧‧處理器核心
520‧‧‧快取記憶體
530‧‧‧電路系統
532‧‧‧預測電路系統
534‧‧‧歷史儲存器
536‧‧‧未完成的異動緩衝器
538‧‧‧發出邏輯
600‧‧‧變化邏輯
605‧‧‧資訊/指示
610‧‧‧比較器
615‧‧‧信號
620‧‧‧閾值
700‧‧‧實例/預測電路系統
710‧‧‧實例/預測電路系統
720‧‧‧實例/預測電路系統
730‧‧‧異動
740‧‧‧多工器
800‧‧‧表
805‧‧‧表
810‧‧‧位址資訊
820‧‧‧組合器
900‧‧‧表
905‧‧‧折疊/散列邏輯
906‧‧‧計數
907‧‧‧儲存標籤
908‧‧‧標籤
909‧‧‧比較器
910‧‧‧表
915‧‧‧折疊/散列邏輯
920‧‧‧表
925‧‧‧折疊/散列邏輯
930‧‧‧比較器
950‧‧‧暫存器
1000‧‧‧讀取提示/資料存取提示訊息
1005‧‧‧記憶體控制器
1010‧‧‧讀取或寫入請求/資料存取請求
1020‧‧‧未完成的提示緩衝器
1022‧‧‧偵測電路系統
1024‧‧‧信號
1030‧‧‧存取邏輯
1040‧‧‧未完成的請求緩衝器
1050‧‧‧回應
1100‧‧‧步驟
1110‧‧‧步驟
1120‧‧‧步驟
1200‧‧‧步驟
1210‧‧‧步驟
1220‧‧‧步驟
本技術將以舉例之方式參照附圖中圖示之其實施例進一步地描述,其中:
第1圖示意地圖示資料處理設備;
第2圖為圖示資料讀取存取之示意時序圖;
第3圖為圖示資料讀取存取之示意時序圖;
第4圖為圖示方法之示意流程圖;
第5圖示意地圖示主控節點;
第6圖示意地圖示預測電路系統;
第7圖示意地圖示預測電路系統;
第8圖示意地圖示預測電路系統之一部分;
第9圖示意地圖示預測電路系統之另一實例;
第10圖示意地圖示記憶體控制器;以及
第11圖及第12圖為圖示方法之示意流程圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (29)

  1. 一種記憶體控制器,包含: 記憶體存取電路系統,經配置: 用以回應於一資料存取提示訊息啟動儲存在一記憶體中之資料的一資料存取,該資料存取提示訊息接收自與該記憶體控制器資料通信之另一節點; 用以回應於一資料存取請求存取儲存在該記憶體中之資料,該資料存取請求接收自與該記憶體控制器資料通信之另一節點以及 用以提供該存取資料作為對該資料存取請求之一資料存取回應。
  2. 如請求項1所述之記憶體控制器,其中該資料存取提示訊息及該資料存取請求每個藉由一定範圍之一或多個記憶體位址來指定一資料存取。
  3. 如請求項2所述之記憶體控制器,其中,當該記憶體存取電路系統已經回應於一資料存取提示訊息針對一給定範圍之一或多個記憶體位址啟動一資料存取時,該記憶體存取電路系統經配置以僅當該記憶體控制器接收指定該給定範圍之一或多個記憶體位址的一後續資料存取請求時,提供該存取資料作為一資料存取回應。
  4. 如請求項1所述之記憶體控制器,其中該資料存取請求指定與該記憶體控制器資料通信之另一節點,該資料存取回應應提供至該另一節點。
  5. 如請求項1所述之記憶體控制器,其中該記憶體存取電路系統經配置以回應於一接收之資料存取提示訊息決定是否啟動一資料存取。
  6. 一種資料處理系統,包含: 一或多個主控節點,每個具有一關聯快取記憶體; 一或多個從屬節點,每個包含如請求項1所述之一記憶體控制器;以及 一主節點,用以控制由該資料處理系統儲存之資料中的同調性。
  7. 如請求項6所述之系統,其中: 該等一或多個主控節點經配置以將資料存取請求發出至該主節點;以及 該主節點經配置以偵測一資料存取請求是否可由該主節點履行或者該資料存取是否需要對一或多個從屬節點執行一存取以及,當需要對一或多個從屬節點執行一存取時,該主節點用以將一資料存取請求發送至該等一或多個從屬節點。
  8. 如請求項7所述之系統,其中該等一或多個主控節點經配置以發送以下任一者: 將一資料存取請求發送至該主節點;或者 將一資料存取請求發送至該主節點以及將一資料存取提示訊息發送至該等一或多個從屬節點之彼一者,當該主節點不能履行彼資料存取時,該等一或多個從屬節點將履行由該資料存取請求指定之該資料存取。
  9. 如請求項8所述之系統,其中該等一或多個主控節點包含用以決定是否發送該資料存取提示訊息之預測電路系統。
  10. 如請求項9所述之系統,其中該預測電路系統經配置以回應於指示決定是否將該資料存取提示訊息發送至一從屬節點,該等指示接收自該主節點及該從屬節點之一者或兩者,指出該從屬節點是否履行一或多個上述資料存取請求。
  11. 一種記憶體控制方法,包含以下步驟: 回應於一資料存取提示訊息啟動儲存在一記憶體中之資料的一資料存取,該資料存取提示訊息接收自與該記憶體控制器資料通信之另一節點; 回應於一資料存取請求存取儲存在該記憶體中之資料,該資料存取請求接收自與該記憶體控制器資料通信之另一節點;以及 提供該存取資料作為對該資料存取請求之一資料存取回應。
  12. 一種資料處理電路系統,包含: 預測電路系統,用以儲存預測資料,該預測資料指出最近資料存取請求由一第一資料源還是一第二資料源履行,以及用以自該預測資料預測一下一個資料存取請求將由該第一資料源還是該第二資料源履行,佈置該第一及第二資料源以便若一資料存取請求不由該第一資料源履行,則由該第二資料源履行;以及 發出電路系統,用以將該資料存取請求發至該第一資料源,該發出電路系統經配置以將一指示發至該第二資料源,該指示為一給定資料存取請求回應於該預測電路系統可能需要由該第二資料源履行,該預測電路系統預測該給定資料存取請求將由該第二資料源履行。
  13. 如請求項12所述之電路系統,其中該預測電路系統經配置以回應於接收自該第一及第二資料源之一者或兩者的資訊來儲存該預測資料,該資訊指出哪個資料源履行一最近資料存取請求。
  14. 如請求項13所述之電路系統,其中該預測資料包含一計數值,該預測電路系統經配置以取決於一最近資料存取請求是否由該第一或該第二資料源履行來改變該計數值。
  15. 如請求項14所述之電路系統,其中該預測電路系統包含用以比較該計數值與一閾值之一比較器。
  16. 如請求項14所述之電路系統,其中該預測電路系統經配置以回應於正由該第一資料源履行之一最近資料存取將該計數值改變了一第一變化量,以及回應於正由該第二資料源履行之一最近資料存取將該計數值改變了一第二變化量,該第二變化量具有與該第一變化量相反之一極性。
  17. 如請求項16所述之電路系統,其中該預測電路系統經配置以改變該第一變化量及該第二變化量之一者或兩者。
  18. 如請求項12所述之電路系統,其中該預測電路系統經配置以針對兩種或更多種類的資料存取請求產生各別預測。
  19. 如請求項18所述之電路系統,其中該等兩種或更多種類的資料存取請求自由以下各者組成之清單中選出: 資料讀取請求; 指令提取請求;及 位址轉換提取請求。
  20. 如請求項12所述之電路系統,其中該預測電路系統經配置以取決於以下各者之一或多個產生一預測: 啟動一資料存取請求之一處理指令的一程式計數值;及 回應於該資料存取請求存取之一資料條目的一位址。
  21. 如請求項20所述之電路系統,其中該預測電路系統經配置以由該程式計數值及該資料條目之該位址的一者或兩者產生一索引,以及用以藉由該索引存取一計數值表。
  22. 如請求項21所述之電路系統,其中該預測電路系統經配置以由該程式計數值及該資料條目之該位址的一者或兩者產生一標籤,以及用以儲存與藉由該索引存取的該計數值表中之一項目關聯之該標籤。
  23. 如請求項22所述之電路系統,其中該預測電路系統經配置以擷取一儲存標籤以及比較該擷取標籤與由該程式計數值及該資料條目之該位址的一者或兩者產生之該標籤。
  24. 如請求項23所述之電路系統,其中該預測電路系統經配置以藉由各別索引存取兩個或更多個計數值表,該等各別索引由該程式計數值及該資料條目之該位址的一者或兩者之不同各別部分產生。
  25. 如請求項24所述之電路系統,其中,當兩個或更多個表格具有與一產生標籤匹配之一儲存標籤時,該預測電路系統經配置以取決於由該等一或多個表格之彼一者儲存的一計數值產生該預測,其中該索引由該程式計數值及該資料條目之該位址的一者或兩者的該更大數目之位元產生。
  26. 一種資料處理設備,包含: 一或多個主控節點,每個包含如請求項12所述之電路系統以及每個具有一關聯快取記憶體; 一主節點,提供該第一資料源,該主節點經配置以偵測它是否可藉由自該等快取記憶體之一或多者獲得該請求資料來履行一給定資料存取請求,以及經配置以當該主節點不能履行該給定資料存取請求時請求來自該第二資料源之該請求資料;以及 一或多個從屬節點,提供該第二資料源,每個從屬節點具有一更高階記憶體。
  27. 如請求項26所述之設備,其中: 該主控節點經配置以將一傳輸請求發至該主節點,請求向該等一或多個從屬節點之一者的一資料傳輸;以及 該主節點經配置以串列化傳輸請求及存取請求至該等一或多個從屬節點,以便寫入至一從屬節點處之一記憶體位址的資料與回應於一後續存取請求自彼記憶體位址讀取的資料一致。
  28. 如請求項26所述之設備,其中該主節點經配置以控制跨該等一或多個主控節點之該等快取記憶體及該等一或多個從屬節點之該等更高階記憶體之同調性作為一同調記憶體系統,以便藉由一個節點寫入至該同調記憶體系統中之一記憶體位址的資料與藉由該等節點之另一者自該同調記憶體系統中之彼記憶體位址讀取的資料一致。
  29. 一種資料處理方法,包含以下步驟: 儲存預測資料,該預測資料指出最近資料存取請求由一第一資料源還是一第二資料源履行; 自該預測資料預測一下一個資料存取請求將由該第一資料源還是該第二資料源履行,佈置該第一及第二資料源以便若一資料存取請求不由該第一資料源履行,則由該第二資料源履行;以及 將一指示發至該第二資料源,該指示為一給定資料存取請求回應於該預測電路系統可能需要由該第二資料源履行,該預測電路系統預測該給定資料存取請求將由該第二資料源履行。
TW107102608A 2017-02-08 2018-01-25 資料處理 TWI766936B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/427,391 2017-02-08
US15/427,391 US10402349B2 (en) 2017-02-08 2017-02-08 Memory controller having data access hint message for specifying the given range of one or more memory addresses

Publications (2)

Publication Number Publication Date
TW201832084A true TW201832084A (zh) 2018-09-01
TWI766936B TWI766936B (zh) 2022-06-11

Family

ID=61132819

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107102608A TWI766936B (zh) 2017-02-08 2018-01-25 資料處理

Country Status (8)

Country Link
US (2) US10402349B2 (zh)
EP (1) EP3580661B1 (zh)
JP (1) JP7089530B2 (zh)
KR (1) KR102526431B1 (zh)
CN (1) CN110235113B (zh)
IL (1) IL268321B (zh)
TW (1) TWI766936B (zh)
WO (1) WO2018146448A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
US11269773B2 (en) * 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062610B2 (en) * 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US7058767B2 (en) * 2003-04-28 2006-06-06 International Business Machines Corporation Adaptive memory access speculation
JP2006139646A (ja) * 2004-11-15 2006-06-01 Seiko Epson Corp データ転送装置およびデータ転送方法
GB2440758B (en) * 2006-08-08 2011-03-30 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US7555597B2 (en) * 2006-09-08 2009-06-30 Intel Corporation Direct cache access in multiple core processors
US7890699B2 (en) 2008-01-10 2011-02-15 International Business Machines Corporation Processing unit incorporating L1 cache bypass
JP4945611B2 (ja) * 2009-09-04 2012-06-06 株式会社東芝 マルチプロセッサ
WO2011094436A2 (en) * 2010-01-28 2011-08-04 Hewlett-Packard Development Company, L.P. Interface methods and apparatus for memory devices
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
GB2522057B (en) 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
GB2522906B (en) * 2014-02-10 2021-07-14 Advanced Risc Mach Ltd Region identifying operation for identifying a region of a memory attribute unit corresponding to a target memory address
US10445240B2 (en) * 2014-08-01 2019-10-15 Analog Devices Global Unlimited Company Bus-based cache architecture
US9658963B2 (en) * 2014-12-23 2017-05-23 Intel Corporation Speculative reads in buffered memory
US20160224241A1 (en) * 2015-02-03 2016-08-04 Qualcomm Incorporated PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
US10282297B2 (en) * 2017-02-08 2019-05-07 Arm Limited Read-with overridable-invalidate transaction

Also Published As

Publication number Publication date
JP7089530B2 (ja) 2022-06-22
CN110235113A (zh) 2019-09-13
TWI766936B (zh) 2022-06-11
JP2020514878A (ja) 2020-05-21
US20190347217A1 (en) 2019-11-14
US10713187B2 (en) 2020-07-14
KR20190112020A (ko) 2019-10-02
KR102526431B1 (ko) 2023-04-27
IL268321A (en) 2019-09-26
EP3580661B1 (en) 2023-03-01
EP3580661A1 (en) 2019-12-18
US10402349B2 (en) 2019-09-03
WO2018146448A1 (en) 2018-08-16
CN110235113B (zh) 2023-11-14
IL268321B (en) 2020-10-29
US20180225232A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
KR102494804B1 (ko) 데이터 처리
JP5037566B2 (ja) ディレクトリ型コヒーレンシー・プロトコルでの同時アクセスの最適化
US8818942B2 (en) Database system with multiple layer distribution
US10248564B2 (en) Contended lock request elision scheme
US7640401B2 (en) Remote hit predictor
US7243194B2 (en) Method to preserve ordering of read and write operations in a DMA system by delaying read access
KR102581572B1 (ko) 허브 디바이스 및 그의 작동방법
TWI766936B (zh) 資料處理
US10339055B2 (en) Cache system with multiple cache unit states
CN111406251B (zh) 数据预取方法及装置
US7725660B2 (en) Directory for multi-node coherent bus
US10917198B2 (en) Transfer protocol in a data processing network
CN112955877B (zh) 修改存储数据的装置和方法
US11748280B2 (en) Broadcast scope selection in a data processing system utilizing a memory topology data structure
Gupta et al. WINDOW BASED DATA MANAGEMENT USING CACHING FOR REALTIME DISTRIBUTED SYSTEM