lcytms
发表于 2018-8-15 21:59:35
0954
这个时候,银行才应答你的请求。
也就是说,当银行没有叫到你的时候,相当于这个银行busy了。
它是要求你等待,你就只能等待。
一直等到叫号叫到你。
我们记住这个规则。
记住这个故事,有助于我们对这种规则的理解。
好比我们说的那个约会谜题。
lcytms
发表于 2018-8-16 21:54:07
0955
国内的应聘有很多类似的例子,但是只要把约会谜题的故事记住,都会迎刃而解。
下面,是一张时序。
这张时序图的绘制呢,不像我们做同步电路,我们一定是右侧逼近。
这边的右侧逼近给你绘出来了一点。
稍微往右边走了一点。
这是比较早期的绘制方式。
在标注为1的位置上,主机发出了地址,发出了byteenable。
Byteenable我们说暂时放一放,不用管。
主机发出了读命令。
读为真。
在这一拍上,waitrequest也是右侧逼近的。
lcytms
发表于 2018-8-16 21:55:17
0956
Waitrequest是谁发的?
对,是从机发的。
从机也在第一拍上,发出了waitrequest,但是它是设置为真了。
这样的话呢,到第二拍,主机捕获了waitrequest为真,主机就知道了,第一拍发的读命令,从机忙了。
它没有响应。
也就是说,我读命令,要读什么?
数据。
所有这一切,从机都busy了。
Busy到没有时间响应。
所以说,你主机必须要保持住,要Hold。
因为你不hold,就意味着从机它忙了嘛。
lcytms
发表于 2018-8-16 21:56:07
0957
忙得没有时间来应答,并不知道你的请求。
如果你没有在储蓄所等,叫号叫到你的时候,储蓄所仍然不知道你要干什么。
所以说你必须等着。
所以说在第二拍,主机捕获到了waitrequest,知道了从机busy了,它的地址、它的命令都要保持住。
波浪线,说明这个延长关系。
延长关系到了第三拍。第三拍上是从机waitrequest为低,右侧逼近,但是我们知道第三拍上,主机能够捕获到的waitrequest,仍然是高电平,是不是?
第三拍,waitrequest刚刚拉低嘛,主机能捕获到的waitrequest仍然是高电平。
lcytms
发表于 2018-8-19 22:54:45
0958
于是命令还得保持,还得Hold。
第四拍,这一次,主机捕获到了waitrequest为低电平,就意味着主机知道从机响应了第一拍发出的读命令。
主机就可以将这一次的地址和字节使能得撤了。
数据的读请求,可以撤销掉了,既然主机可以做这样的选择,主机也可以发新的读写命令,或者主机可以叫停。
lcytms
发表于 2018-8-19 22:55:44
0959
事实上,在这张图上,主机就停下来了,主机把read置为低电平。
Write也是低电平。
主机这个时候是主机叫停。
同时主机还有一件事要做。
因为主机是读嘛,它是在第一拍发出的是读命令。
在第四拍上,由于捕获到了waitrequest为低电平,它除了决定可以继续走和继续停之外,它有一件事要做。
就是要捕获readdata。
只能在这一拍上捕获。
我们看看它的状态转移图在什么位置。
lcytms
发表于 2018-8-19 22:56:30
1000
主机在第一拍。
lcytms
发表于 2018-8-19 22:57:07
1001
在这一拍上,主机会发出地址,也可能有条件。
地址我写个A1。
lcytms
发表于 2018-8-19 22:57:44
1002
然后它有一个byteenable,直接使能,并且发出读命令。
Write应该是低电平。
给出了地址,给出了读命令,当然是要读它了。
然后在s1上等什么?
对于主机而言,它要检测waitrequest,是不是?
当waitrequest为真值的时候,这些都得保持住。
lcytms
发表于 2018-8-19 22:58:27
1003
所以说这个EBD呢,就没有分母了,分数线就可以省略了。
这边有waitrequest。
当waitrequest为假,主机当然可以把地址撤掉,主机可以选择叫停。