色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

EC SRAM映射到CPU Memory空間的共享內存設計

CHANBAEK ? 來源: 吃面小哥 ? 作者: 吃面小哥 ? 2023-11-18 15:11 ? 次閱讀

ShareMemory,顧名思義就是共享內存。這個概念在很多計算機系統中都存在,本文特指 EC SRAM 映射到 CPU Memory 空間的共享內存設計。

01—ShareMemory 簡介

此處的 ShareMemory 特指,在 EC 和 CPU(x86/ARM) 通過 eSPI/LPC 總線連接的系統中,EC SRAM 映射到 Host Memory 空間。當 Host 端需要訪問 EC SRAM 時,就和訪問 Host 的 Memory 一樣簡便。

ShareMemory 的設計極大提高了CPU 和 EC 之間的數據傳輸效率。

eSPI/LPC 的 Master Controller,一般作為一個 PCI 設備存在。因此可以通過修改 eSPI/LPC Controller 的 PCI 配置空間寄存器將指定的 IO 空間和 Memory 空間等資源分配給 eSPI/LPC Master Controller。

當 OS 或者應用軟件通過 CPU 指令訪問指定 IO端口,或者訪問指定 Memory 地址時,訪問操作會被轉發至 eSPI/LPC 的

Controller。最終由 eSPI/LPC Controller

生成通訊協議發送給 eSPI/LPC 總線上連接的從設備,如下圖所示。

圖片

eSPI/LPC Slave 一般有 EC、BMC、SIO 等。以EC 為例,當從設備接到 eSPI/LPC 總線上的 Memory Cycle后,eSPI/LPC Slave Controller 就會解碼 Memory 地址。

如果發現該地址在配置的Memory 空間內,eSPI/LPC Slave Controller 就會把數據寫入指定的 SRAM,或者將指定SRAM 的值返回。如此就完成了 EC SRAM 映射到 CPU Memory 空間,這就是 EC ShareMemory 實現的原理。

圖片

02—CPU 端的配置

由于設計上的差異,不同 CPU 針對

ShareMemory 的配置有所不同。

x86 Intel 平臺

在 Intel 平臺上,eSPI 和 LPC Controller 都是作為一個 PCI 設備存在,兩個控制器的 PCI 設備號一致,都是B0:D31:F0,實際使

用時二選一。

如下圖所示,配置 Offset 98h 寄存器,即可把 CPU 的指定Memory 空間分配給

eSPI/LPC Master Controller。

圖片

圖片

x86 AMD 平臺

在 AMD 平臺上 eSPI 的配置寄存器先被映射到指定的 Memory 空間。配置eSPI MMIO 寄存器即可把指定的CPU Memory 空間分配給 eSPI 控制器。eSPI 配置空間基地址為 0xFEC2_0000,MMIO 基地址配置寄存器為 Offset 50/54/58/5C,長度配置寄存器為 Offset 60/64。

圖片

圖片

注意 : 此處的寄存器配置后直接生效。

ARM Phytium 平臺

飛騰平臺上的 LPC Controller 作為一個外設存在,支持 DMA模式、IO模式、

Memory模式、FirmwareMemory 模式。

由寄存器 INT_APB_SPCE_CONF 配置,每個模塊占用Memory 空間大小為 32M。

如下表格所示訪問 CPU Memory 空間 0x20000062,會發起 LPC 的 IO Cycle(IO Port 62)。

訪問 CPU Memory 空間 0x22000000,

會發起 LPC 的 Memory Cycle。

LPC Controller 的 CPU Memory 資源劃分如下:

模塊基地址
IO0x20000000
Memory0x22000000
FirmwareMemory0x24000000
DMA0x26000000

其他 CPU 平臺

eSPI/LPC Master Controller 的資源分配方法在不同的 CPU 平臺上都不一樣,需要

根據 CPU 指導手冊完成配置。

03—EC 端的配置

EC 的硬件設計中,一般有個

ShareMemory Controller,作為一個SIO設備存在,負責處理 eSPI/LPC 總線上的 Memory Cycle。

EC 端有如下兩個參數需要配置:

第一,指定可識別的 Host 端的Memory 基地址。這就指明了 EC 可解碼的

Host Memory 起始地址。配置寄存器一般位于 SIO 配置空間。

第二,指定EC端匹配的 SRAM 基地址和長度。這就指明了 EC 端的某段

SRAM 空間被映射到 Host Memory 空間。配置寄存器一般位于 EC 的

ShareMemory Controller 內。

上述2個配置參數的配置方法以及寄存器位置,查閱對應 EC 芯片的用戶手冊即可獲取。如下圖所示,是基于 eSPI 總線實現

ShareMemory 訪問功能后,Host 讀寫

EC SRAM 的通訊波形。

圖片

圖片

EC 端和 CPU 端都完成相應配置后,在OS 下訪問 Memory 即可訪問到指定的 EC SRAM 存儲區間。

下圖 Intel ADL 平臺和 EC 的配置結果,最終實現了 EC SRAM 0x300映射到

Host Memory 空間的 0xFE800300 位置。

圖片

下圖是 AMD Ryzen7840 平臺和 EC 配置結果,最終實現了 EC

SRAM 0x300 映射到 Host Memory 空間的 0xFE0B0300 位置。

圖片

04—ShareMemory 的應用

ShareMemory 的目的就是把 EC 的 SRAM 存儲映射到 CPU Memory 空間,如此 CPU 就可以快速完成大量的 EC 數據訪問。使用 EC 端提供的

ShareMemory Semaphore,Host 訪問完 EC SRAM 還可以通知 EC 內核。

ACPI 規范定義的 ECI 也可以訪問 EC SRAM,但是涉及到狀態位的等待同步,訪問速度沒有 ShareMemory 快。

因此 Host 和 EC 之間有大量數據需要傳遞的時候,ShareMemory 就是第一方案。當然EC SRAM也可以映射到 CPU的 IO 空間,實現原理一樣。只是方向 CPU IO端口,最終會在eSPI/LPC 總線上發起 IO Cycle,EC端接到后按映射關系轉換為 SRAM的訪問即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9265

    瀏覽量

    373289
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11006

    瀏覽量

    215076
  • sram
    +關注

    關注

    6

    文章

    779

    瀏覽量

    115508
  • 計算機
    +關注

    關注

    19

    文章

    7605

    瀏覽量

    89767
  • 共享內存
    +關注

    關注

    0

    文章

    16

    瀏覽量

    8385
收藏 0人收藏

    評論

    相關推薦

    如何將共享代碼映射到DSPR5以及將其映射到其他RAM區域?

    Scratch-Pad SramCPU5 DSPR)相關聯。 在鏈接器腳本中,我已經映射了每個.text 部分移至其各自的 PSPR 內核。 我想知道如何將共享代碼
    發表于 01-24 07:26

    Linux的mmap文件內存映射機制

    一。mmap系統調用使得進程之間通過映射同一個普通文件實現共享內存。普通文件被映射到進程地址空間后,進程可以像訪問普通
    發表于 03-08 09:54

    請問如何在platform文件中實現將msmc映射到0xa0000000起始的地址空間中?

    用openmp時講到,需要將共享的變量放到no cacheable的空間中。對于6678片子來講,如果想要放到共享內存中,要么將msmc全部設為no cacheable,或者將部分ms
    發表于 07-24 08:40

    mmap()函數映射到內存中出現bus error的錯誤

    在2440開發板上將一副BMP圖片顯示到LCD上(不用GUI),我的做法是將BMP圖片用mmap()函數映射到內存中,在將其讀到Framebuffer設備中顯示(frambuffer有驅動),映射
    發表于 02-25 12:42

    為何啟動模式為SRAM時0x20000000不會映射到0x00000000 ?

    0x00000000BOOT0:1,BOOT1:1時為SRAM啟動,但0x20000000不會映射到0x00000000,在0x00000000區域看到的資料都是0xAA,我設置BOOT0:1,BOOT1:1 SRAM模式
    發表于 07-29 04:35

    使用UARTLite IP如何找到內存映射IO方法

    ); if(memfd == -1){printf(“無法打開/dev/mem.\n”);出口(0); } printf(“/ dev / mem opens。\ n”);//將一頁內存映射到用戶空間,以便
    發表于 04-16 10:07

    linux如何共享內存實驗

    ;);  del_sem(semid);  exit(1);  }  /* 將共享內存地址映射到當前進程地址空間 */  shared_memory
    發表于 06-08 07:47

    共享內存知識記錄

    最近學習了共享內存,做筆記記錄一下。 預計會補全 信號量和消息隊列。我理解的共享內存共享內存
    發表于 12-15 06:37

    地址總線是要映射到FPGA的內部還是直接ARM的內存空間

    ARM跟FPGA通信,要采用8位地址總線、8位數據總線、讀寫控制線,怎么實現,地址總線是要映射到FPGA的內部還是直接ARM的內存空間?最好有ARM端簡單的C程序描述下,謝謝。
    發表于 11-22 14:58

    STM32G0將地址0x00000000重新映射到SRAM不起作用咋辦

    ();__HAL_SYSCFG_REMAPMEMORY_SRAM();不幸的是,這不起作用,0x00000000 仍然映射到 FLASH。如果我嘗試重新映射到系統內存,它工作得很好:_
    發表于 12-22 06:18

    ESP32-D0WDR2-V3帶外接flash和emmc,外部閃存將無法將內存映射到cpu內存空間是怎么回事?

    用途。” 這似乎暗示相關的引腳(SD_DATA0-3、SD_CLK、GPIO16)被嵌入式PSRAM使用,不能連接到外部閃存或emmc。任何人都可以確認是否是這種情況?但是如果不使用這些 PIN,外部閃存將無法將內存映射到 cpu
    發表于 04-12 06:01

    淺析linux內存映射原理

    內存映射,簡而言之就是將用戶空間的一段內存區域映射到內核空間
    發表于 08-24 09:35 ?1707次閱讀
    淺析linux<b class='flag-5'>內存</b><b class='flag-5'>映射</b>原理

    世上最好的共享內存(Linux共享內存最透徹的一篇)上集

    現階段廣泛應用于多媒體、Graphics領域的共享內存方式,某種意義上不再強調映射到進程虛擬地址空間的概念(那無非是為了讓CPU訪問),而更
    的頭像 發表于 11-29 14:29 ?1.8w次閱讀

    深入剖析Linux共享內存原理

    在Linux系統中,每個進程都有獨立的虛擬內存空間,也就是說不同的進程訪問同一段虛擬內存地址所得到的數據是不一樣的,這是因為不同進程相同的虛擬內存地址會映射到不同的物理
    的頭像 發表于 10-30 09:52 ?2444次閱讀
    深入剖析Linux<b class='flag-5'>共享</b><b class='flag-5'>內存</b>原理

    內存是怎么映射到物理地址空間的?內存是連續分布的嗎?

    如果我們將兩個4G內存插入內存插槽,得到的內存地址空間是0到8G嗎?是不是0到4G是第一根內存,4到8G是第二根
    的頭像 發表于 06-30 15:59 ?3983次閱讀
    <b class='flag-5'>內存</b>是怎么<b class='flag-5'>映射到</b>物理地址<b class='flag-5'>空間</b>的?<b class='flag-5'>內存</b>是連續分布的嗎?
    主站蜘蛛池模板: 成人动漫bt种子 | 亚洲欧美日韩人成 | 妞干网手机免费视频 | 热99RE久久精品国产 | 青青青草免费 | 99久久精品国产亚洲AV | 亚洲免费在线播放 | 在线视频中文字幕 | 亚洲精品无码专区在线播放 | 俄罗斯美女性生活 | 麻花传媒MD0044视频 | 失禁 调教 刺激 哭喊男男 | 国产乱人视频在线观看 | 亚洲视频中文 | 久久久久久久久女黄9999 | a毛片基地免费全部视频 | 亚洲精品久久久久AV无码林星阑 | 最近中文字幕MV高清在线视频 | 毛片免费大全 | 激情内射亚洲一区二区三区 | 日本xxxxx按摩19 | 亚洲视频在线观看 | 中文字幕人成人乱码亚洲影视 | 寂寞护士中文字幕 mp4 | 精品国产麻豆AV无码 | 99久久国产露脸精品国产麻豆 | 哪灬你的鸣巴好大 | 99国产精品人妻无码免费 | 探花口爆颜射乳交日韩 | 灌饱娇嫩H将军公主最新章节 | 在线视频 国产 日韩 欧美 | 天堂无码人妻精品AV一区 | 久久久久久久久a免费 | 在线不卡日本v二区 | 护士喂我吃乳液我脱她内裤 | 亚洲精品免费视频 | 中文在线观看永久免费 | 女人高潮特级毛片 | 日韩欧美一区二区三区在线 | 老司机亚洲精品影院在线观看 | 用快播看黄的网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品