CHI dataless 傳輸——CHI(4)

上篇介紹了read的操作類型,本篇我們來介紹一下dataless

目錄

一、dataless操作概覽

二、Non-CMO (Non-Cache Maintenance Operation)

1、CleanUnique

2、StashOnce and StashOnceSep

3、Evict

三、CMO (Cache Maintenance Operation)


一、dataless操作概覽

名稱(non-CMO)

描述

CleanUnique

snoopable地址區域的請求,將Requestercache line狀態更改為“Unique”,以便對該cache line執行寫操作。對其他的mastercache clean,并且invalid,其他cache line dirty的數據需要寫入main memory

MakeUnique

CleanUnique,但是dirty cacheline直接丟棄。

Evict

用于告訴ICN,該RN-F不再緩存這個cacheline(類似于CPU知會HNF某一條cacheline已經被逐出了,本地已經沒有了)

StashOnceUnique, StashOnceSepUnique

snoopable地址區域的請求,以嘗試將被尋址的cacheline移動到目標緩存,以使目標能夠存儲該行。被尋址的RN可以按照ReadUnique來處理

StashOnceShared, StashOnceSepShared.

同上,被尋址的RN可以按照ReadNotSharedDirty 來處理

名稱 (CMO)

描述

CleanShared

snoopable地址區域的請求,有緩存副本都更改為非dirty狀態,并且任何dirty副本都會寫回main memory

CleanSharedPersist

同上,但是dirty數據寫入PoP(Point of Persistence ). PoP是內存系統中的一個點,當系統電源斷開時,會保持對內存的寫入,當電源恢復時,會可靠的恢復對內存的寫入

CleanSharedPersistSep

同上,但是對requester需要有2responseComp response 表示請求到達HNPersist response表示請求已到達PoP

CleanInvalid

requesterI態時才能發此請求, 將擁有此 cacheline 副本invalidatedirty的寫回main memory

MakeInvalid

同上,dirty的丟棄

CleanSharedPersistSep 的功能與leanSharedPersist 類似,但需要對請求者進行兩個單獨的響應:

1、Comp 響應,表明請求已達到一致性點(PoC),并且可以在請求者處消除危險。

2、持久響應,表明請求已到達PoP 或最終目的地。

PoC (Point of Coherence) :?A point at which all agents that can access memory are guaranteed to see the same copy of a memory location. In a typical CHI based system it is the HN-F in the interconnect.

保證所有可以訪問內存的代理都能看到內存位置的相同副本的點。 在典型的基于 CHI 的系統中,它是互連中的 HN-F

Dataless transaction可分為Non-CMO (Non-Cache Maintenance Operation) CMO (Cache Maintenance Operation)

第一個表為non-CMO的操作,第二個表為CMO操作

二、Non-CMO (Non-Cache Maintenance Operation)

支持的操作有:

? CleanUnique.?

? MakeUnique.?

? Evict.

? StashOnceUnique, StashOnceSepUnique.

? StashOnceShared, StashOnceSepShared.

步驟如下:

1、The Requester sends a Snoopable Read request on the REQ channel?

2、The Completer returns the read data and any associated transaction response with the CompData opcode on the RDAT channel

3、Requester must return an acknowledgement, using the CompAck opcode on the SRSP channel to indicate that the transaction has completed.?

non-CMO的操作本文會舉3個例子:CleanUnique、StashOnceShared、Evict

1、CleanUnique

CleanUnique : CleanUnique是將其他的mastercache clean,并且invalid,只保留當前mastercache(此cache可以是clean,也可以是dirty); 其他cache line dirty數據需要寫入main memory

1、RN-F1 has the cache line in SD state and responds to the snoop with a snoop response with data and PD asserted.

2、HN-F waits for all snoop responses and then sends a Comp_UC response to the Requester.

3、HN-F sends a Write request to update memory with the data received from RN-F1.

SnpRespData_I_PD后綴為PD,PD ( pass dirty )?表示更新內存的責任已傳遞給請求者或 ICN。只能為帶有數據的 Snoop 響應聲明 Pass Dirty

Comp_UC : CleanUnique MakeUniquecomp response

MakeUnique相比cleanunique,沒有寫入main memory的操作,且不管其他cacheline的狀態,dirtys數據會丟棄

2、StashOnce and StashOnceSep

Cache stashing機制可將數據存在系統中特定cache中,確保data靠近使用的節點,因此可以提高系統性能。Cache stashing只支持Snoopable memory空間。

相關的操作有:

? StashOnceUnique,

? StashOnceSepUnique.

? StashOnceShared,

? StashOnceSepShared.

步驟如下:

1、RN在REQ channnel發送request

2、ICN返回 comp response

3、如果是StashOnceSep requestHome返回StashDone響應,表示request已經被保序

4、Home還可以選擇是否在SNP channelsnoop 目標RN-F

5、目標RN-F發送SnpResp響應,可以選擇是否包含DataPull DataPull =0b001表示響應包含讀請求

6、如果DataPull =0b001,則Home發送CompData響應

7、目標RN-F收到CompData后,返回CompAck

Datapull[2:0]==0b001?: Inclusion of Data Pull in the Snoop response(Snoop 響應中包含數據拉取)

Data Pull. Indicates the inclusion of an implied Read request in the Data response. (數據拉取。 指示在數據響應中包含隱含的讀取請求)

DataPull只能等于0b0000b001

Comp : Completer接受已經請求,并且不會發送RetryAck相應

StashDone : 后續對于同一內存位置的transaction,該transaction是可被觀察到的(保序)

StashOnce的四種操作的區別在于:

? Sends StashOnce?Unique to Home if the stashed cache line is to be modified.

如果要修改stash的緩存行,則將 StashOnce*Unique 發送到 Home

? Sends StashOnce?Shared to Home if the stashed cache line is not to be modified.

如果不修改stash的緩存行,則將StashOnce*Shared 發送到Home

? Sends StashOnceSep only if the Requester is capable of handling the StashDone response.

僅當請求者能夠處理StashDone 響應時才發送StashOnceSep

? The StashOnce? requests provide a Stash target when the data is to be stashed in a peer cache.

當數據要存儲在對等緩存中時,StashOnce* 請求提供存儲目標。

? The StashOnce? requests do not provide a Stash target when the data is to be allocated to the next level cache.

當數據要分配到下一級緩存時,StashOnce* 請求不提供Stash 目標。

StashOnceShared為例

1、RN sends a StashOnceShared request to HN-F with the Stash target identified as RN-F1.

2、HN-F sends a Comp response after establishing processing order for the received request that is guaranteeing the request is processed before a request to the same address?

此響應是為了保序(該處理request要優先于后續任何request對該地址的請求)

3、HN-F sends a SnpStashShared snoop to RN-F1, and a ReadNoSnp request to SN-F to fetch Data.

4、RN-F1 sends SnpResp_I_Read response to HN-F.

5、HN-F treats the Read request from RN-F1 as a ReadNotSharedDirty, and sends a combined CompData to?RN-F1.

6、?RN-F1 sends CompAck to HN-F to complete the Read transaction.

該操作的目的是,將SN中指定地址的數據,搬到RN-F1。但是在搬運前,要先對RN-F1進行snoop,判斷RN-F1是否已經具有該數據

Snpresp_i_Read, 表示當前stateinvalid的,同時帶有read操作,要pull data;

SnpStashShared
Snoop request recommending that the Snoopee obtains a copy of the cache line in a Shared state:
? Permitted to be sent to only one RN-F.?只能發送給RN-F
? This specification recommends not sending the snoop if the cache line is cached at the target.?如果
cache line就在target中,則建議不發送snoop
? The Snoopee must not return data with the Snoop response.?該
snoop不能返回數據
? Permits the Snoop response to include a Data Pull.?該
snoopresponse允許包含Data Pull
? Must not change the cache line state at the Snoopee.?不能改變被
snoopcache line狀態

The responses that include Data Pull are:
SnpResp_I_Read.
SnpRespData_I_Read.
SnpRespData_I_PD_Read.
SnpRespDataPtl_I_PD_Read.

3、Evict

告訴HN, 當前RN中的這條cacheline不再進行緩存;類似于CPU知會HNF某一條cacheline已經被逐出了,本地已經沒有了;

RN在發送請求之前,會先將狀態調整到 I

Evict

? ? ? ? --告訴HN, 當前RN中的這條cacheline不再進行緩存;

? ? ? ? --類似于CPU知會HNF某一條cacheline已經被逐出了,本地已經沒有了;

? ? ? ? --RN在發送之前,會先將狀態調整到I;

三、CMO (Cache Maintenance Operation)

支持的操作有:

? CleanShared.?

? CleanSharedPersist.?

? CleanSharedPersistSep.?

? CleanInvalid.? ? MakeInvalid.

步驟如下:

1、The Requester sends a request on the REQ channel

2、The Completer returns a Comp response on the CRSP channel.

3、For the CleanSharedPersistSep transaction the Completer also returns a Persist response to the Requester. The Completer is permitted to combine the Comp and Persist responses into a single CompPersist response.

CleanSharedPersistSep為例:

要求所有CPUdirty數據都寫回主存

In this example of CleanSharedPersistSep transaction flow, the Point of Persistence (PoP) is at the SN-F.

1、RN-F1 has the cache line in SC state. RN-F1 responds to the snoop with a snoop response without data.

2、HN-F waits for all snoop responses and then sends a Comp_SC response to the Requester.

3、HN-F sends a CleanSharedPersistSep request to SN-F, only after completing the writing back of all snooped Dirty data, if any, to the SN-F. SN-F responds to the request with Comp

4、SNF sends a Persist response to RN-F0 to indicate that the request has reached the PoP, and data from any prior writes to the same location is pushed to the PoP?

PoP (Point of Persistence) : 系統中用于持久性存儲的特定位置或機制。它表示數據在系統中的存儲狀態,以確保數據在斷電或重啟后仍然可用。通常是將易失性存儲(如cache)復制到非易失性存儲(如硬盤

圖中,Comp_UC反映了其他master中該cache line的狀態

Comp_UC

? ? ? ? 1、表明該cache line副本在Requester中至高可以為UC狀態(即可以是UCUCESCI)。

? ? ? ? 2、不過MakeReadUnique/CleanUnique這兩個“Upgrade”的請求則有所差異,SD收到Comp_UC后進入UD狀態。這在下文關于MakeReadUnique的描述中可以再次看到。

相應的response還有:

Comp_I

????????表明該cache line副本在Requester中最終需為I狀態。

Comp_SC

????????表明該cache line副本在Requester中至高可以為SC狀態(即可以是SCI)。

Comp_UD_PD

????????表明將更新Memory的責任傳遞給Requester,該cache line副本在Requester中至高可以為UD狀態(即可以是UDSD)。

對于CleanShared,可能會收到Comp_UCComp_SCComp_ICleanShared用于將其他副本的dirty數據寫回,并不會無效化其他副本,所以收到response后緩存行狀態不改變。

對于CleanUnique,只會收到Comp_UC。收到時處于I狀態(出現I狀態的原因是發出CleanUnique后被invalid),則進入UCE;收到時處于SC狀態,則進入UC狀態;收到時處于SD,則進入UD狀態。

對于MakeUnique,只會收到Comp_UC。由于其寫一整行,所以最終進入UD狀態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14621.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14621.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14621.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# 中的 Dictionary<TKey, TValue> 類

Dictionary<TKey, TValue> 是 C# 中的一個泛型集合類,它提供了一種鍵值對的存儲結構,可以用來存儲和快速訪問數據。它的主要特點如下: 鍵值對結構: Dictionary 中的每個元素都是一個鍵值對,鍵必須是唯一的,值可以重復。 快速訪問: Dictionary 基于哈希表實現,可以提供 O…

大白話聊聊MySQL查詢之五子句(知識簡單但重要)

前言&#xff1a; 在日常開發中&#xff0c;查詢數據占很大的比重&#xff0c;在使用 MySQL 數據庫進行查詢時&#xff0c;我們經常需要通過各種條件和規則來篩選和排序數據。要實現這些功能&#xff0c;就不得不使用以下這些子句&#xff1a;WHERE、ORDER BY、GROUP BY、HAVI…

物聯網層次架構設計

物聯網可以分為三個層次&#xff0c;底層是用來感知數據的感知層&#xff0c;即利用傳感器、二維碼、RFID等設備隨時隨地獲取物體的信息。第二層是數據傳輸處理的網絡層&#xff0c;即通過各種傳感網絡與互聯網的融合&#xff0c;將對象當前的信息實時準確地傳遞出去。第三層則…

忍の摸頭之術游戲娛樂源碼

本資源提供給大家學習及參考研究借鑒美工之用&#xff0c;請勿用于商業和非法用途&#xff0c;無任何技術支持&#xff01; 忍の摸頭之術游戲娛樂源碼&#xff0c;抖音上面非常火的摸頭殺畫面,看得我眼花繚亂,源碼拿去玩吧&#xff1b; 目錄說明 忍の摸頭之術&#xff1a;域…

輕松同步:將照片從三星手機傳輸到iPad的簡便方法

概括 想要在新 iPad 上查看三星照片嗎&#xff1f;但是&#xff0c;如果您不知道如何將照片從三星手機傳輸到 iPad&#xff0c;則無法在 iPad 上查看圖片。為此&#xff0c;本文分享了 7 個有用的方法&#xff0c;以便您可以使用它們在不同操作系統之間輕松發送照片。現在&…

EfficientSAM分割對象后求其中圖像中的高

1 分割對象 EfficientSAM https://github.com/yformer/EfficientSAM 2 計算在圖像中最高點即y值最小點 import os import cv2def read_images(folder_path):image_files [f for f in os.listdir(folder_path) iff.endswith(".jpg") or f.endswith(".png&quo…

c語言之運算符練習題

C語言中的運算符是執行特定操作的符號&#xff0c;它們是編程中不可或缺的部分。C語言提供了多種類型的運算符&#xff0c;包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符等。以下是一些常見的C語言運算符練習題&#xff0c;可以幫助你熟悉和練習這些運算符的使…

虛擬化技術[1]之服務器虛擬化

文章目錄 虛擬化技術簡介數據中心虛擬化 服務器虛擬化服務器虛擬化層次寄居虛擬化裸機虛擬化VMM無法直接捕獲特權指令解決方案 服務器虛擬化底層實現CPU虛擬化內存虛擬化I/O設備虛擬化 虛擬機遷移虛擬機動態遷移遷移內容&#xff1a;內存遷移遷移內容&#xff1a;網絡資源遷移遷…

小短片創作-組裝場景(一)

1、項目基礎設置 通過第三人稱模板&#xff0c;創建1個項目 1.自動曝光&#xff1a;關閉&#xff0c;因為要做專業的小短片&#xff0c;曝光需要手動控制。 2.擴展自動曝光中的默認亮度范圍&#xff1a;啟用 3.全局光照系統&#xff1a;選擇屏幕空間光照&#xff08;SSGI&am…

Transformer詳解常見面試問題

文章目錄 1. 各模塊解決1.1 輸入部分1.2 多頭注意力&#xff08;作者使用8個頭&#xff09;1.3 殘差和LayerNorm1.4 Decoder部分 2.Transformer經典問題2.1 tranformer為何使用多頭注意力機制&#xff1f;2.2 Transformer相比CNN的優缺點2.3 Encoder和decoder的區別&#xff1f…

Spring中RestTemplate用法

系列文章目錄 文章目錄 系列文章目錄前言 前言 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站&#xff0c;這篇文章男女通用&#xff0c;看懂了就去分享給你的碼吧。 RestTemplate 是從…

自編譯frida得一些記錄

frida編譯 這個過程坑肯定很多 但是只要大方向對得&#xff0c;解決掉每個小錯誤達到目的就ok得 # 就是想自己把frida代碼done下來改一改 然后看看git clone gitgithub.com:frida/frida.git git fetch git checkout 14.1.3# 下載node包管理工具 apt install nvm nvm install …

Web Speech API(1)—— SpeechRecognition

Web Speech API 使你能夠將語音數據合并到 Web 應用程序中。Web Speech API 有兩個部分&#xff1a;SpeechSynthesis 語音合成&#xff08;文本到語音 TTS&#xff09;和 SpeechRecognition 語音識別&#xff08;異步語音識別&#xff09;。 SpeechRecognition 語音識別通過 S…

axios案例應用

1、Spring概述 Spring 是分層的 Java SE/EE 應用 full-stack 輕量級開源框架&#xff0c;以 IoC(Inverse Of Control: 反轉控制)和 AOP(Aspect Oriented Programming:面向切面編程)為內核&#xff0c;提供了展現層 Spring MVC 和持久層。Spring JDBC 以及業務層事務管理等眾多…

day16|二叉樹的屬性

相關題目 ● 104.二叉樹的最大深度 559.n叉樹的最大深度 ● 111.二叉樹的最小深度 ● 222.完全二叉樹的節點個數 二叉樹的深度與高度 如圖&#xff0c; 二叉樹的深度表示&#xff1a;任意一個葉子節點到根節點的距離&#xff0c;是從上往下計數的&#xff0c;因此使用前序遍歷…

2024年甘肅特崗教師招聘報名流程,速速查收哦!

2024年甘肅特崗教師招聘報名流程&#xff0c;速速查收哦&#xff01;

python-雞兔同籠問題:已知雞和兔的總頭數與總腳數。求籠中雞和兔各幾只?

【問題描述】典型的雞兔同籠問題。 【輸入形式】輸入總頭數和總腳數兩個實數&#xff1a;h&#xff0c;f 【輸出形式】籠中雞和兔的個數&#xff1a;x&#xff0c;y 【樣例輸入】16 40 【樣例輸出】雞12只&#xff0c;兔4只 【樣例說明】輸入輸出必須保證格式正確。…

AI大模型探索之路-訓練篇25:ChatGLM3微調實戰-基于LLaMA-Factory微調改造企業級知識庫

系列篇章&#x1f4a5; AI大模型探索之路-訓練篇1&#xff1a;大語言模型微調基礎認知 AI大模型探索之路-訓練篇2&#xff1a;大語言模型預訓練基礎認知 AI大模型探索之路-訓練篇3&#xff1a;大語言模型全景解讀 AI大模型探索之路-訓練篇4&#xff1a;大語言模型訓練數據集概…

CS西電高悅計網課設——校園網設計

校園網設計 一&#xff0c;需求分析 所有主機可以訪問外網 主機可以通過域名訪問Web服務器 為網絡配置靜態或者動態路由 圖書館主機通過DHCP自動獲取IP參數 為辦公樓劃分VLAN 為所有設備分配合適的IP地址和子網掩碼&#xff0c;IP地址的第二個字節使用學號的后兩位。 二…

ESP32 實現獲取天氣情況

按照小安派AiPi-Eyes天氣站思路&#xff0c;在ESP32 S3上實現獲取天氣情況。 一、在ESP32 S3實現 1、main.c 建立2個TASK void app_main(void) {//lvgl初始化xTaskCreate(guiTask, "guiTask", 1024 * 6, NULL, 5, NULL);//wifi初始化、socket、json處理taskcustom_…