RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是內(nèi)存語義?CXL是如何劃分語義的

Linux閱碼場(chǎng) ? 來源:Linux閱碼場(chǎng) ? 2024-04-08 10:27 ? 次閱讀

隨著人工智能大模型,高性能計(jì)算(HPC),大數(shù)據(jù)和搜推等業(yè)務(wù)的興起,原本以Web服務(wù)為主要應(yīng)用的數(shù)據(jù)中心也開始關(guān)注這些新業(yè)務(wù)所帶來的需求變化,例如通過緊耦合計(jì)算網(wǎng),提供更高的帶寬和更低的延遲。而在緊耦合計(jì)算網(wǎng)中,是否支持豐富的內(nèi)存語義成為了關(guān)鍵。

但究竟什么是內(nèi)存語義,業(yè)界一直沒有一個(gè)清晰的定義,有的人說Infiniband(IB)的RDMA語義就是內(nèi)存語義,也有人說消息語義也是內(nèi)存語義,也有人說訪問內(nèi)存的語義是內(nèi)存語義,也有人說Load/Store語義是內(nèi)存語義,眾說紛紜,我們下面來看看Wikipedia是怎么定義內(nèi)存語義的:

Memory Semantics(From Wikipedia)

Incomputing and parallel processing, memory semantics refers to the process logicused to control access to shared memorylocations, or at a higher level to shared variables in the presence of multiplethreads or processors.

Memorysemantics may also be defined for transactional memory, where issues related tothe interaction of transactions and locks, and user-level actions need to bedefined and specified.

可以看出,維基百科認(rèn)為內(nèi)存語義是針對(duì)多線程針對(duì)共享內(nèi)存區(qū)進(jìn)行的操作,又或者是針對(duì)內(nèi)存的訪問操作等。

為了更好的解釋什么是內(nèi)存語義,我們先來看看什么是語義以及IB中是如何劃分語義的:

什么是語義?

通常來說,語義就是互聯(lián)中用于交互的一個(gè)或者多個(gè)操作的組合,通常在事務(wù)層(TransactionLayer)中定義。(IB沒有事務(wù)層,所以IB在傳輸層中定義了語義)

IB語義劃分

IB介紹了兩種語義,分別是ChannelSemantics(通道語義)和Memory(RDMA)Semantics(內(nèi)存語義/RDMA語義)

其中,Channel Semantic包括Send/Receive操作;RDMA語義包括RDMA WRITE,RDMA READ和ATOMIC操作;

IB語義劃分依據(jù)猜測(cè)

從IB提供的具體操作來看,Send/Receive,RDMA_Read,RDMA_Write和ATOMIC操作實(shí)際上都是針對(duì)內(nèi)存的操作,所不同的是,Send/Receive操作的請(qǐng)求端不知道響應(yīng)端會(huì)將數(shù)據(jù)寫到哪里,即請(qǐng)求端在發(fā)送Send請(qǐng)求時(shí),不需要填寫目標(biāo)地址。但實(shí)際上,最終這筆數(shù)據(jù)還是寫到響應(yīng)端的內(nèi)存中去了。所以嚴(yán)格意義上說,Send/Receive操作仍然屬于內(nèi)存相關(guān)操作,只不過IB希望與另外三種操作做出區(qū)分。于是Send/Receive操作被賦予了新的名稱,被稱為Channel Semantics,意思就是在通道的一端你只管send數(shù)據(jù)就好,具體數(shù)據(jù)去哪了,通道的另一端會(huì)負(fù)責(zé)處理。

RDMA_Read,RDMA_Write和ATOMIC操作有一個(gè)共同點(diǎn)就是三種操作都需要指定響應(yīng)端的虛擬地址,通過響應(yīng)端的地址翻譯,獲得最終響應(yīng)端的內(nèi)存地址。這三種操作在IB標(biāo)準(zhǔn)中被劃分在了RDMA語義下,也被稱為內(nèi)存語義,但從上述分析來看,這里將RDMA語義稱為內(nèi)存語義,有一點(diǎn)概念放大的嫌疑。

下面我們對(duì)比的看看CXL是如何劃分語義的:

CXL語義劃分

CXL介紹了三大類語義,包括I/O語義,緩存協(xié)議語義和內(nèi)存訪問語義,即CXL.io, CXL,cache和CXL.mem。其中,CXL.io語義與PCIe語義類似。

CXL語義劃分依據(jù)猜測(cè)

CXL提供了非常豐富的事務(wù)層操作,我們可以把CXL鏈路以及兩端抽象成下面的模型:

2a19d2c0-f54d-11ee-a297-92fbcf53809c.png

下面我們看看CXL鏈路要支撐CXL Point A和B進(jìn)行哪些交互,簡(jiǎn)單起見,我們只關(guān)注請(qǐng)求類型:

CXL.Cache

Point A CXL.T1/T2 CPU L3
Point B CPU L3 CXL.T1/T2
x86指令 N/A Load/Store
設(shè)備指令 Load/Store N/A
請(qǐng)求類型 Read
Read0
Write
Read0-Write
Snp*
空間類型 主存
HDM-D
HDM-H
HDM-DB
主存
HDM-D
HDM-H
內(nèi)存屬性 Cacheable
Uncacheable
Cacheable

CXL.mem

Point A CXL.T2/T3 CPU HA
Point B CPU L3 CXL.T2/T3
x86指令 N/A MOV
設(shè)備指令 N/A Load/Store
請(qǐng)求類型 BISnp* MemRd*
MemWr*
MemInv*
etc
空間類型 HDM-DB HDM-D
HDM-H
HDM-DB
內(nèi)存屬性 Cacheable Cacheable
Uncacheable

CXL.io

Point A CPU Core CPU Core CPU Core
Point B CXL.T1/T2/T3 CXL.T1/T2/T3 CXL.T1/T2/T3
x86指令 MOV IN/OUT MOV
請(qǐng)求類型 MRd/MWr IORd/IOWr CfgRd/CfgWr
空間類型 內(nèi)存空間->PDM 64KB I/O空間 內(nèi)存空間->配置空間
內(nèi)存屬性 Uncacheable N/A Uncacheable
Point A CXL.T1/T2/T3 CXL.T1/T2/T3 Host
Point B Host CXL.T1/T2/T3 Host
x86指令 N/A N/A MOV
設(shè)備指令 Load/Store Load/Store
DMARd/DMAWr
N/A
請(qǐng)求類型 MRd/MWr MRd/MWr UIOMRd
UIOMWr
空間類型 內(nèi)存空間-主存 內(nèi)存空間->PDM
內(nèi)存空間->GFAM
內(nèi)存空間->GFAM
內(nèi)存屬性 Cacheable
Uncacheable
Uncacheable Cacheable
Uncacheable

什么是Load/Store指令?

通常來說,Load/Store(L/S)指令是處理器核對(duì)內(nèi)存空間的訪問操作,包括Load操作,將數(shù)據(jù)從內(nèi)存空間讀到處理器核內(nèi)的寄存器中;以及Store操作,將處理器核內(nèi)寄存器的數(shù)據(jù)寫到內(nèi)存空間中。

x86架構(gòu)中,對(duì)內(nèi)存空間訪問的指令典型的是MOV指令;ARM架構(gòu)中,對(duì)內(nèi)存空間訪問的指令典型的是LDR/STR;因?yàn)橛胁簧俚目臻g被映射(mapping)到了內(nèi)存空間,即采用內(nèi)存空間的訪問指令,所以Load/Store指令不但能夠訪問實(shí)際的內(nèi)存,也可以訪問其他的一些設(shè)備,以及設(shè)備空間,例如BIOS ROM,南橋的寄存器,PCIe設(shè)備上的內(nèi)存等等。

什么是DMA操作?

如果我們?cè)趦蓚€(gè)物理地址間搬移數(shù)據(jù),而不需要CPU介入的話,我們就稱這種操作是DMA操作。這其中最重要的是DMA引擎,它具備一些寄存器接口,高級(jí)別的DMA引擎可能配備了硬件隊(duì)列,用于描述搬移數(shù)據(jù)和地址的相關(guān)信息。從最終效果上來看,一次DMA操作等同于兩次Load/Store操作,即先通過Load操作將數(shù)據(jù)從物理地址A讀到DMA引擎,然后再通過Store操作將數(shù)據(jù)從DMA引擎寫到物理地址B。

容易混淆的概念:

Load/Store是處理器的一種指令,例如x86的MOV指令,該指令會(huì)產(chǎn)生對(duì)內(nèi)存空間的訪問?,F(xiàn)代計(jì)算機(jī)系統(tǒng)中,內(nèi)存空間并不都指向具體的內(nèi)存(DRAM)。也包括BIOS ROM,PCH寄存器空間,PCIe配置空間等,所以Load/Store最好說成是內(nèi)存空間訪問指令或語義。

內(nèi)存空間訪問和內(nèi)存訪問有什么不同?

內(nèi)存空間是指處理器通過遍歷其地址線的排列組合,能夠通過Load/Store指令訪問的最大的物理地址空間。例如某款處理器的地址線能夠支持1MByte的內(nèi)存空間,但實(shí)際上內(nèi)存只有640KByte,如下圖所示:

2a29f7f4-f54d-11ee-a297-92fbcf53809c.png

我們以x86處理器為例,CPU可訪問的主要空間包括:

處理器訪問空間 處理器訪問指令舉例
內(nèi)存空間(48-bit或者52-bit) MOV
I/O空間 (16-bit) In/Out
配置空間 (28-bit) MOV or In/Out
其他空間(MSR,CPUID等) RDMSR/WRMSR, CPUID ...

其中,配置空間因沒有獨(dú)立的指令,訪問該空間可通過I/O空間實(shí)現(xiàn)(Legacy方式,16M空間),也可以通過內(nèi)存空間進(jìn)行訪問(256M空間),不同的空間將使用不同的指令進(jìn)行訪問。

結(jié)語

通過上面的分析可以看出,內(nèi)存語義的定義在不同的上下文中的確不是特別固定。比較主流的觀點(diǎn)有:

內(nèi)存語義是指某種事務(wù)層的操作,其操作對(duì)象是具體內(nèi)存實(shí)體的。該定義的代表是IB的RDMA語義。

內(nèi)存語義是指專門針對(duì)內(nèi)存實(shí)體操作的語義,與IO語義不同,這種上下文中的內(nèi)存語義是不提供類似IO語義那樣的保序操作。例如對(duì)于非同地址的內(nèi)存讀寫操作,是沒有序的要求。該定義的代表是CXL.mem。

術(shù)語:

PDM: Private Device Memory:傳統(tǒng)PCIe設(shè)備上的內(nèi)存資源,以及通過CXL.io訪問的內(nèi)存資源(CXL設(shè)備),該設(shè)備資源不支持Host Writeback操作

HDM:Host-managedDevice Memory:設(shè)備上的內(nèi)存資源,該資源被映射在Host緩存一致性地址空間,該資源支持Host Writeback操作,包括HDM-D,HDM-H以及HDM-DB三種類型

HDM-D:HDM-DeviceCoherent:該內(nèi)存可被CXL.cache或類似語義進(jìn)行管理

HDM-H:HDM-Host OnlyCoherent:該內(nèi)存只被Host使用并管理

HDM-DB:HDM-DeviceCoherent with Back-Invalidate:該內(nèi)存被共享給了多個(gè)Host,并通過CXL.mem的Back-Invalidate通道進(jìn)行緩存一致性維護(hù)

L/S:Load/Store:處理器對(duì)內(nèi)存空間的訪問操作,可操作實(shí)際內(nèi)存,設(shè)備配置空間(MMCFG),設(shè)備資源空間(MMIO)等。

References:

PCIExpress Base Specification Revision 6.2

CXL_3.1Specification Release_FINAL.pdf

InfiniBand_Architecture_Specification_Volume_1_R1.7

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3019

    瀏覽量

    74003
  • 人工智能
    +關(guān)注

    關(guān)注

    1791

    文章

    47183

    瀏覽量

    238241
  • 傳輸層
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    10889
  • RDMA
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    8945
  • 大模型
    +關(guān)注

    關(guān)注

    2

    文章

    2423

    瀏覽量

    2640

原文標(biāo)題:[基礎(chǔ)]什么是內(nèi)存語義?你叫對(duì)了嗎?

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于OWL屬性特征的語義檢索研究

    【來源】:《電子設(shè)計(jì)工程》2010年02期【摘要】:在文獻(xiàn)檢索中,概念的語義相似度計(jì)算直接影響查準(zhǔn)率和查全率指標(biāo)。將本體描述語言O(shè)WL(Web Ontology Language)的屬性特征有機(jī)結(jié)合
    發(fā)表于 04-24 09:48

    Verilog 硬件語義

    Verilog 硬件語義
    發(fā)表于 10-18 20:15

    語義機(jī)器人

    人工智能將迎來語義理解新時(shí)代。打破了傳統(tǒng)人工智能在語言交互方面反射式的應(yīng)答方式,成功地通過獨(dú)創(chuàng)的中文語義理解算法,讓計(jì)算機(jī)可以準(zhǔn)確理解語言環(huán)境,進(jìn)行上下文處理、口語處理、省略處理。該平臺(tái)可用于構(gòu)建
    發(fā)表于 03-10 16:52

    求助:關(guān)于語義網(wǎng)本體構(gòu)建,懇請(qǐng)大神幫忙

    我最近在做基于語義網(wǎng)的礦震系統(tǒng)分析,在對(duì)礦震信息進(jìn)行XML語義描述后,不知道怎么在protege建立本體詞匯,如何表示各種信息之間的關(guān)系呢?跪求幫助
    發(fā)表于 04-26 16:19

    NLPIR大數(shù)據(jù)語義智能分析平臺(tái)先精準(zhǔn)分詞才語義分析

    特性,是對(duì)數(shù)據(jù)包含信息的更高層次的抽象?! §`玖軟件NLPIR大數(shù)據(jù)語義智能分析平臺(tái)針對(duì)中文數(shù)據(jù)挖掘的綜合需求,融合了網(wǎng)絡(luò)精準(zhǔn)采集、自然語言理解、文本挖掘和語義搜索的研究成果,先后歷時(shí)十八年,服務(wù)了
    發(fā)表于 08-27 10:53

    NLPIR語義分析是對(duì)自然語言處理的完美理解

    。  人類自然語言通常以詞為基本構(gòu)成單位,進(jìn)而構(gòu)成句子,再由句子形成篇章。篇章的語義由篇章中包含的所有句子的語義綜合而成,而句子的語義又由句中的詞語語義及一定的語法所確定;作為句子和篇
    發(fā)表于 10-19 11:34

    目標(biāo)檢測(cè)和圖像語義分割領(lǐng)域性能評(píng)價(jià)指標(biāo)

    目標(biāo)檢測(cè)和圖像語義分割領(lǐng)域的性能評(píng)價(jià)指標(biāo)
    發(fā)表于 05-13 09:57

    IOT語義互操作性

    IOT語義互操作性...
    發(fā)表于 07-27 06:24

    語義網(wǎng)詳解

    語義網(wǎng)詳解 1. 引言 2. 為什么需要語義網(wǎng)? 3. 
    發(fā)表于 08-04 10:33 ?2605次閱讀

    基于語義向量表示的查詢擴(kuò)展方法的應(yīng)用設(shè)計(jì)

    針對(duì)傳統(tǒng)查詢擴(kuò)展方法在專業(yè)領(lǐng)域中擴(kuò)展詞與原始查詢之間缺乏語義關(guān)聯(lián)的問題,提出一種基于語義向量表示的查詢擴(kuò)展方法。首先,構(gòu)建了一個(gè)語義向量表示模型,通過對(duì)語料庫中詞的上下文語義進(jìn)行學(xué)習(xí),
    發(fā)表于 12-12 16:11 ?0次下載

    基于語義的文本語義分析

    文本情感傾向性研究是人工智能的分支學(xué)科,涉及了計(jì)算語言學(xué),數(shù)據(jù)挖掘,自然語言處理等多個(gè)學(xué)科?;?b class='flag-5'>語義的情感傾向研究和基于機(jī)器學(xué)習(xí)的情感傾向研究是情感傾向性分析的兩個(gè)方向。本文采用了基于語義的方法
    發(fā)表于 12-15 16:35 ?6次下載

    語義分割算法系統(tǒng)介紹

    圖像語義分割是圖像處理和是機(jī)器視覺技術(shù)中關(guān)于圖像理解的重要任務(wù)。語義分割即是對(duì)圖像中每一個(gè)像素點(diǎn)進(jìn)行分類,確定每個(gè)點(diǎn)的類別,從而進(jìn)行區(qū)域劃分,為了能夠幫助大家更好的了解語義分割領(lǐng)域,我
    的頭像 發(fā)表于 11-05 10:34 ?6681次閱讀

    PyTorch教程-14.9. 語義分割和數(shù)據(jù)集

    劃分為屬于不同語義類的區(qū)域。與目標(biāo)檢測(cè)不同,語義分割在像素級(jí)別識(shí)別和理解圖像中的內(nèi)容:它對(duì)語義區(qū)域的標(biāo)記和預(yù)測(cè)是在像素級(jí)別。 圖 14.9.1顯示了
    的頭像 發(fā)表于 06-05 15:44 ?641次閱讀
    PyTorch教程-14.9. <b class='flag-5'>語義</b>分割和數(shù)據(jù)集

    圖像分割與語義分割中的CNN模型綜述

    圖像分割與語義分割是計(jì)算機(jī)視覺領(lǐng)域的重要任務(wù),旨在將圖像劃分為多個(gè)具有特定語義含義的區(qū)域或?qū)ο?。卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為深度學(xué)習(xí)的一種核心模型,在圖像分割與語義分割中發(fā)揮著至關(guān)重要的
    的頭像 發(fā)表于 07-09 11:51 ?823次閱讀

    圖像語義分割的實(shí)用性是什么

    圖像語義分割是一種重要的計(jì)算機(jī)視覺任務(wù),它旨在將圖像中的每個(gè)像素分配到相應(yīng)的語義類別中。這項(xiàng)技術(shù)在許多領(lǐng)域都有廣泛的應(yīng)用,如自動(dòng)駕駛、醫(yī)學(xué)圖像分析、機(jī)器人導(dǎo)航等。 一、圖像語義分割的基本原理 1.1
    的頭像 發(fā)表于 07-17 09:56 ?415次閱讀
    RM新时代网站-首页