极术小姐姐 · 2019年12月31日

EXHRESP怎么接,HRESP位宽不匹配

sysbus和Dcode_bus的EXHRESP怎么接?M3的HRESP为什么是2bit,busmatric输出的HRESP只有1bit(看AHB_lite协议就是1bit)?

1 个回答 得票排序 · 时间排序
棋子 · 2019年12月31日

exclusive access 主要用于多master或者多cpu的系统中,多个master之间有数据共享的时候,为了避免冲突,比如两个master都有可能对一块儿地址进行写操作,比如CPU A写了一个值为1,但是有可能CPU B把这个地址的值改成0,但是CPU A不知情,后面CPU A以为读出来是1,但是实际上是0.

所以为了保护这块儿shared的memory,不让多个master有冲突,需要一个握手的协议,这个握手的协议里面,需要有一个互斥锁,谁拿到了这个锁子,谁就能访问,其他master就不能访问。

一般单核的情况下,就把EXRESP接为1,代表exclusive 访问失败;

M3的HRESP是2位,是因为之前的AHB协议是2个bit,但实际上bit 1也没用到,接为0就行了。

你的回答