0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

寄存器写保护的需求和硬件实现

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.寄存器写保护硬件实现

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

如图设计中,多个host编号命名为func_id,且func_id编码连续;有多个doorbell,且doorbell以ram(db_data_mem)的形式呈现,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号,数据包为{db_id,db_data}。

db_id2func_id_mem表示db_id与func_id的对应关系,地址为db_id,数据为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的写操作会触发db_id2func_id_mem的读操作,以db_id作为读地址读出数据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写操作时,写数据必须包含db_id,这样db_id会与func_id进行匹配,匹配通过才会真正去更新doorbell。db_id与func_id匹配不通过,则不会更新doorbell。而其他主机是不知道当前doorbell的地址(func_id)对应的db_id的,因此有效降低了其他主机误写doorbell的概率。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117764
  • IC设计
    +关注

    关注

    37

    文章

    1264

    浏览量

    102963
  • 硬件
    +关注

    关注

    11

    文章

    2923

    浏览量

    64828
  • PCIe
    +关注

    关注

    13

    文章

    1083

    浏览量

    80867

原文标题:

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一文解析Matlab如何实现移位寄存器

    本文主要介绍Matlab如何实现移位寄存器,首先介绍的是移位寄存器的原理及作用,其次介绍了m序列的生成原理及m序列的matlab 仿真实现,最后介绍了Matlab如何
    的头像 发表于 04-26 09:28 1.6w次阅读
    一文解析Matlab如何<b class='flag-5'>实现</b>移位<b class='flag-5'>寄存器</b>

    PIC18F8722系列中的配置寄存器写保护

    最近我在PIC18F822系列数据表中遇到了配置寄存器写保护位。这意味着什么?由于配置寄存器通常只在正常情况下可读,那么为什么要写保护呢?一旦设置,如果我想有一个不同的配置,难道不可能
    发表于 04-09 15:06

    如何在SPI FLASH中添加WP引脚及写保护设置

    使用W25QXX系列SPI FLASH。偶有发生数据被改变的现象,目前想添加写保护功能。1. WP引脚拉低后是保护全片还是全头扇区?2. 看资料WP引脚得和状态寄存器配合起来使用,那么WP不拉高的情况是否可以修改
    发表于 07-15 04:36

    关于SST26VF064B芯片硬件写入保护的问题

    引脚的写保护功能。WP#引脚仅可保护保护寄存器和配置寄存器不发生更改。IOC位优先于配置寄存器
    发表于 10-22 15:38

    特殊寄存器的相关资料下载

    N76E003的PWM5在P15输出时因地址处在有写保护的页面,需要额外的语句进行访问。除了跟其他PWM配置一样的使能和输出语句之外,在对对应寄存器进行赋值操作之前都要加上相应语句
    发表于 01-05 07:28

    'F303写保护它是如何工作的?

    FLASH_WRPR 寄存器描述中,它是 32 位,所以我猜 [1:0] 是一个错字。b) 好的,我们有32 位写保护,4.3.2 写保护写保护以2页的粒度
    发表于 01-31 08:13

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

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用
    发表于 03-08 14:26 2.1w次阅读

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

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加器AX、基址寄存器BX、计数寄存器
    发表于 03-08 14:38 1.2w次阅读

    磁盘被写保护怎么办?u盘写保护怎么去掉?

    我们在使用电脑,在复制电脑上的资料到U盘的时候,有时会显示出磁盘被写保护,不能对磁盘进行任何操作。磁盘被写保护怎么办?以下是小编整理的u盘写保护怎么去掉的方法:第一
    发表于 11-02 10:00 15.5w次阅读
    磁盘被<b class='flag-5'>写保护</b>怎么办?u盘<b class='flag-5'>写保护</b>怎么去掉?

    寄存器与移位寄存器

    寄存器与移位寄存器:介绍寄存器原理和移位寄存器的原理及实现
    发表于 05-20 11:47 0次下载

    深度学习_硬件知识_上拉寄存器与下拉寄存器

    上拉寄存器上拉寄存器是控制对应端口上拉使能的。当对应位为0时,设置对应引脚上拉使能,对应位为1时,禁止对应引脚上拉使能。如果上拉寄存器使能,无论引脚功能寄存器如何设置(输入、输出、数据
    发表于 01-14 14:31 10次下载
    深度学习_<b class='flag-5'>硬件</b>知识_上拉<b class='flag-5'>寄存器</b>与下拉<b class='flag-5'>寄存器</b>

    如何在VHDL中实现一个简单的寄存器

    存储的位数上有所不同,具体取决于系统的配置。在本教程中,我们将学习如何在 VHDL 中实现一个简单的寄存器
    发表于 07-29 16:48 3880次阅读
    如何在VHDL中<b class='flag-5'>实现</b>一个简单的<b class='flag-5'>寄存器</b>

    RA6快速设计指南 [12] 寄存器写保护,I/O端口配置 (1)

    9 寄存器写保护 寄存器写保护功能可防止重要寄存器因软件错误而被覆盖。使用保护
    的头像 发表于 06-30 12:10 451次阅读
    RA6快速设计指南 [12] <b class='flag-5'>寄存器</b><b class='flag-5'>写保护</b>,I/O端口配置 (1)

    RA2快速设计指南 [6] 寄存器写保护和I/O端口配置

    RA2快速设计指南 [6] 寄存器写保护和I/O端口配置
    的头像 发表于 10-24 16:48 353次阅读
    RA2快速设计指南 [6] <b class='flag-5'>寄存器</b><b class='flag-5'>写保护</b>和I/O端口配置

    IC设计:寄存器写保护的以一种实现方式

    在软件硬件交互的过程中,通常需要软件(host)对特定地址的寄存器进行写操作,告之硬件进行特定的处理流程。
    发表于 10-09 09:42 201次阅读
    IC设计:<b class='flag-5'>寄存器</b><b class='flag-5'>写保护</b>的以一种<b class='flag-5'>实现</b>方式