1.寄存器寫保護(hù)的需求
在軟件硬件交互的過程中,通常需要軟件(host)對(duì)特定地址的寄存器進(jìn)行寫操作,告之硬件進(jìn)行特定的處理流程,我們?cè)凇?a target="_blank">IC設(shè)計(jì):軟硬件交互-polling》中提到的doorbell寄存器就屬于此類。
在使用PCIe SR-IOV能力時(shí),對(duì)芯片硬件來說,有多個(gè)軟件(host),而doorbell寄存器與特定的host綁定,從安全角度考慮,我們期望doorbell寄存器只能被綁定的軟件(host)寫,而不能被其他host寫,不會(huì)因?yàn)槠渌鹔ost的誤寫操作導(dǎo)致進(jìn)程出錯(cuò)。
寄存器的寫保護(hù)指的是某些特殊的寄存器只能被指定的host寫更新,而不能被其他host更新。此處的寄存器可能是單個(gè)普通寄存器,也可能是多個(gè)寄存器組成的ram。
2.寄存器寫保護(hù)硬件實(shí)現(xiàn)
如圖設(shè)計(jì)中,多個(gè)host編號(hào)命名為func_id,且func_id編碼連續(xù);有多個(gè)doorbell,且doorbell以ram(db_data_mem)的形式呈現(xiàn),db_data_mem的地址表示func_id號(hào),這樣,func_id與doorbell的關(guān)系就綁定了。
在如下的模塊中:存在3個(gè)ram,db_id_func_mem、db_id2func_id_mem、db_data_mem、
db_id_func_mem是虛擬ram,用于cfg_csr產(chǎn)生ram訪問接口,在圖中畫出也方便理解流程,地址表示func_id號(hào),數(shù)據(jù)包為{db_id,db_data}。
db_id2func_id_mem表示db_id與func_id的對(duì)應(yīng)關(guān)系,地址為db_id,數(shù)據(jù)為func_id,db_id2func_id_mem的內(nèi)容需要軟件提前配置好。
db_data_mem是目標(biāo)ram,地址表示func_id號(hào),data表示db_data內(nèi)容。
配置模塊cfg_csr對(duì)db_id_func_mem的寫訪問信號(hào)線包含:wdata、wen、waddr等信號(hào),其中wdata為{db_id,db_data},waddr表示的是func_id。
對(duì)db_id_func_mem的寫操作會(huì)觸發(fā)db_id2func_id_mem的讀操作,以db_id作為讀地址讀出數(shù)據(jù)func_id。
寫訪問信號(hào)進(jìn)過打拍對(duì)齊后,將wr_addr_dly與db_id_func_mem讀出的func_id進(jìn)行比較,如果相等則證明寫操作正確,db_data會(huì)被寫入到db_data_mem。如果不相等,則不會(huì)對(duì)db_data_mem進(jìn)行寫操作。
3.為什么此種設(shè)計(jì)能夠達(dá)到寫保護(hù)的效果呢?
在這里,每個(gè)主機(jī)都知道自己的db_id,以及doorbell的地址(func_id),而不知道其他主機(jī)的db_id和doorbell的地址。主機(jī)在進(jìn)行doorbell寫操作時(shí),寫數(shù)據(jù)必須包含db_id,這樣db_id會(huì)與func_id進(jìn)行匹配,匹配通過才會(huì)真正去更新doorbell。db_id與func_id匹配不通過,則不會(huì)更新doorbell。而其他主機(jī)是不知道當(dāng)前doorbell的地址(func_id)對(duì)應(yīng)的db_id的,因此有效降低了其他主機(jī)誤寫doorbell的概率。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1295瀏覽量
103918 -
硬件
+關(guān)注
關(guān)注
11文章
3312瀏覽量
66200 -
PCIe
+關(guān)注
關(guān)注
15文章
1234瀏覽量
82582
原文標(biāo)題:
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論