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的概率。

审核编辑:汤梓红

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

    关注

    31

    文章

    5308

    浏览量

    119980
  • IC设计
    +关注

    关注

    37

    文章

    1291

    浏览量

    103742
  • 硬件
    +关注

    关注

    11

    文章

    3247

    浏览量

    66099
  • PCIe
    +关注

    关注

    15

    文章

    1217

    浏览量

    82424

原文标题:

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

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

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

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

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

    移位寄存器,移位寄存器是什么意思 移位寄存器_
    发表于 03-08 14:50 1.7w次阅读

    寄存器与移位寄存器

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

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

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

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

    (R_BSP_RegisterProtectEnable 和 R_BSP_RegisterProtectDisable),分别用于使能和禁用寄存器写保护。 9. I/O 端口配置(1) 《硬件手册》中的“I/O
    的头像 发表于 04-10 17:55 940次阅读

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

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

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

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

    寄存器分为基本寄存器和什么两种

    寄存器是计算机中用于存储数据的高速存储单元,它们是CPU内部的重要组成部分。寄存器可以分为基本寄存器和扩展寄存器两种类型。 一、基本寄存器
    的头像 发表于 07-12 10:31 1099次阅读

    寄存器寻址的实现方式

    在计算机体系结构中,寄存器寻址是一种常见的寻址方式,它允许程序直接访问CPU内部的寄存器寄存器寻址可以提高程序的执行效率,因为它避免了对内存的访问。 寄存器寻址的基本概念
    的头像 发表于 07-12 10:36 549次阅读

    接口的控制与状态寄存器什么作用

    的行为并获取硬件的状态信息。 接口的控制与状态寄存器的作用 在现代计算机系统中,硬件设备与软件之间的交互是通过一系列的接口来实现的。这些接口不仅需要能够传输数据,还需要能够控制
    的头像 发表于 10-17 10:42 253次阅读