sysbus和Dcode_bus的EXHRESP怎么接?M3的HRESP为什么是2bit,busmatric输出的HRESP只有1bit(看AHB_lite协议就是1bit)?
sysbus和Dcode_bus的EXHRESP怎么接?M3的HRESP为什么是2bit,busmatric输出的HRESP只有1bit(看AHB_lite协议就是1bit)?
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就行了。