RM新时代网站-首页

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

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

3天內不再提示

寄存器寫保護的需求和硬件實現(xiàn)

ruikundianzi ? 來源:IC的世界 ? 2023-10-17 15:30 ? 次閱讀

1.寄存器寫保護的需求

在軟件硬件交互的過程中,通常需要軟件(host)對特定地址的寄存器進行寫操作,告之硬件進行特定的處理流程,我們在《IC設計:軟硬件交互-polling》中提到的doorbell寄存器就屬于此類。

在使用PCIe SR-IOV能力時,對芯片硬件來說,有多個軟件(host),而doorbell寄存器與特定的host綁定,從安全角度考慮,我們期望doorbell寄存器只能被綁定的軟件(host)寫,而不能被其他host寫,不會因為其他host的誤寫操作導致進程出錯。

寄存器的寫保護指的是某些特殊的寄存器只能被指定的host寫更新,而不能被其他host更新。此處的寄存器可能是單個普通寄存器,也可能是多個寄存器組成的ram

2.寄存器寫保護硬件實現(xiàn)

03461952-6659-11ee-939d-92fbcf53809c.png

如圖設計中,多個host編號命名為func_id,且func_id編碼連續(xù);有多個doorbell,且doorbell以ram(db_data_mem)的形式呈現(xiàn),db_data_mem的地址表示func_id號,這樣,func_id與doorbell的關系就綁定了。

在如下的模塊中:存在3個ram,db_id_func_mem、db_id2func_id_mem、db_data_mem、

db_id_func_mem是虛擬ram,用于cfg_csr產生ram訪問接口,在圖中畫出也方便理解流程,地址表示func_id號,數(shù)據(jù)包為{db_id,db_data}。

db_id2func_id_mem表示db_id與func_id的對應關系,地址為db_id,數(shù)據(jù)為func_id,db_id2func_id_mem的內容需要軟件提前配置好。

db_data_mem是目標ram,地址表示func_id號,data表示db_data內容。

配置模塊cfg_csr對db_id_func_mem的寫訪問信號線包含:wdata、wen、waddr等信號,其中wdata為{db_id,db_data},waddr表示的是func_id。

對db_id_func_mem的寫操作會觸發(fā)db_id2func_id_mem的讀操作,以db_id作為讀地址讀出數(shù)據(jù)func_id。

寫訪問信號進過打拍對齊后,將wr_addr_dly與db_id_func_mem讀出的func_id進行比較,如果相等則證明寫操作正確,db_data會被寫入到db_data_mem。如果不相等,則不會對db_data_mem進行寫操作。

3.為什么此種設計能夠達到寫保護的效果呢?

在這里,每個主機都知道自己的db_id,以及doorbell的地址(func_id),而不知道其他主機的db_id和doorbell的地址。主機在進行doorbell寫操作時,寫數(shù)據(jù)必須包含db_id,這樣db_id會與func_id進行匹配,匹配通過才會真正去更新doorbell。db_id與func_id匹配不通過,則不會更新doorbell。而其他主機是不知道當前doorbell的地址(func_id)對應的db_id的,因此有效降低了其他主機誤寫doorbell的概率。

審核編輯:湯梓紅

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

    關注

    31

    文章

    5334

    瀏覽量

    120219
  • IC設計
    +關注

    關注

    38

    文章

    1295

    瀏覽量

    103908
  • 硬件
    +關注

    關注

    11

    文章

    3311

    瀏覽量

    66195
  • PCIe
    +關注

    關注

    15

    文章

    1234

    瀏覽量

    82571

原文標題:

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PIC18F8722系列中的配置寄存器寫保護

    最近我在PIC18F822系列數(shù)據(jù)表中遇到了配置寄存器寫保護位。這意味著什么?由于配置寄存器通常只在正常情況下可讀,那么為什么要寫保護呢?一旦設置,如果我想有一個不同的配置,難道不可能
    發(fā)表于 04-09 15:06

    如何在SPI FLASH中添加WP引腳及寫保護設置

    使用W25QXX系列SPI FLASH。偶有發(fā)生數(shù)據(jù)被改變的現(xiàn)象,目前想添加寫保護功能。1. WP引腳拉低后是保護全片還是全頭扇區(qū)?2. 看資料WP引腳得和狀態(tài)寄存器配合起來使用,那么WP不拉高的情況是否可以修改
    發(fā)表于 07-15 04:36

    'F303寫保護它是如何工作的?

    FLASH_WRPR 寄存器描述中,它是 32 位,所以我猜 [1:0] 是一個錯字。b) 好的,我們有32 位寫保護,4.3.2 寫保護寫保護以2頁的粒度
    發(fā)表于 01-31 08:13

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定義  寄存器是中央處理內的組成部分。寄存器是有限存貯容量
    發(fā)表于 03-08 14:26 ?2.2w次閱讀

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思

    數(shù)據(jù)寄存器,數(shù)據(jù)寄存器是什么意思 數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括累加AX、基址寄存器BX、計數(shù)
    發(fā)表于 03-08 14:38 ?1.3w次閱讀

    移位寄存器,移位寄存器是什么意思

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    發(fā)表于 03-08 14:50 ?1.7w次閱讀

    寄存器與移位寄存器

    寄存器與移位寄存器:介紹寄存器原理和移位寄存器的原理及實現(xiàn)。
    發(fā)表于 05-20 11:47 ?0次下載

    如何在VHDL中實現(xiàn)一個簡單的寄存器

    存儲的位數(shù)上有所不同,具體取決于系統(tǒng)的配置。在本教程中,我們將學習如何在 VHDL 中實現(xiàn)一個簡單的寄存器
    發(fā)表于 07-29 16:48 ?4621次閱讀
    如何在VHDL中<b class='flag-5'>實現(xiàn)</b>一個簡單的<b class='flag-5'>寄存器</b>

    RA2快速設計指南 [7] 寄存器寫保護和I/O端口配置

    (R_BSP_RegisterProtectEnable 和 R_BSP_RegisterProtectDisable),分別用于使能和禁用寄存器寫保護。 9. I/O 端口配置(1) 《硬件手冊》中的“I/O
    的頭像 發(fā)表于 04-10 17:55 ?972次閱讀

    RA6快速設計指南 [12] 寄存器寫保護,I/O端口配置 (1)

    9 寄存器寫保護 寄存器寫保護功能可防止重要寄存器因軟件錯誤而被覆蓋。使用保護
    的頭像 發(fā)表于 06-30 12:10 ?870次閱讀
    RA6快速設計指南 [12] <b class='flag-5'>寄存器</b><b class='flag-5'>寫保護</b>,I/O端口配置 (1)

    RA2快速設計指南 [6] 寄存器寫保護和I/O端口配置

    RA2快速設計指南 [6] 寄存器寫保護和I/O端口配置
    的頭像 發(fā)表于 10-24 16:48 ?624次閱讀
    RA2快速設計指南 [6] <b class='flag-5'>寄存器</b><b class='flag-5'>寫保護</b>和I/O端口配置

    IC設計:寄存器寫保護的以一種實現(xiàn)方式

    在軟件硬件交互的過程中,通常需要軟件(host)對特定地址的寄存器進行寫操作,告之硬件進行特定的處理流程。
    發(fā)表于 10-09 09:42 ?770次閱讀
    IC設計:<b class='flag-5'>寄存器</b><b class='flag-5'>寫保護</b>的以一種<b class='flag-5'>實現(xiàn)</b>方式

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1295次閱讀

    寄存器尋址的實現(xiàn)方式

    在計算機體系結構中,寄存器尋址是一種常見的尋址方式,它允許程序直接訪問CPU內部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因為它避免了對內存的訪問。 寄存器尋址的基本概念
    的頭像 發(fā)表于 07-12 10:36 ?634次閱讀

    接口的控制與狀態(tài)寄存器什么作用

    的行為并獲取硬件的狀態(tài)信息。 接口的控制與狀態(tài)寄存器的作用 在現(xiàn)代計算機系統(tǒng)中,硬件設備與軟件之間的交互是通過一系列的接口來實現(xiàn)的。這些接口不僅需要能夠傳輸數(shù)據(jù),還需要能夠控制
    的頭像 發(fā)表于 10-17 10:42 ?404次閱讀
    RM新时代网站-首页