全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > EDA/IC设计 >

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

时间:2023-10-09 09:42

人气:

作者:admin

标签:   寄存器  保护    设计 

导读:IC设计:寄存器写保护的以一种实现方式-在软件硬件交互的过程中,通常需要软件(host)对特定地址的寄存器进行写操作,告之硬件进行特定的处理流程。...

1.寄存器写保护的需求

在软件硬件交互的过程中,通常需要软件(host)对特定地址的寄存器进行写操作,告之硬件进行特定的处理流程。

在使用PCIe SR-IOV能力时,对芯片硬件来说,有多个软件(host),而doorbell寄存器与特定的host绑定,从安全角度考虑,我们期望doorbell寄存器只能被绑定的软件(host)写,而不能被其他host写,不会因为其他host的误写操作导致进程出错。

寄存器的写保护指的是某些特殊的寄存器只能被指定的host写更新,而不能被其他host更新。此处的寄存器可能是单个普通寄存器,也可能是多个寄存器组成的ram

2.寄存器写保护硬件实现

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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信