原图:
原连接:https://blog.youkuaiyun.com/weixin_44425619/article/details/115207331
这篇文章流传很广,被各大网站频繁转载
阿锋在这里请教各位看官老爷,您觉得这张图表有问题吗?
什么?AHB也支持乱序?很明显不支持呀!
AHB协议本身是不支持乱序访问的。AHB是不支持非对齐操作的,Master必须按照Address Phase和Data Phase的顺序发送请求,如果一个Slave 发生阻塞,后续访问也不能超车,只能等待,如何乱序访问?
如果非要在有AHB总线的电路上实现乱序访问,ChatGTP3.5给出了个办法:通过使用一些专门的硬件模块,例如乱序缓存(Out-of-order buffer)和乱序执行引擎(Out of Order Execution Engine),可以使AHB支持乱序访问。这些硬件模块可以接收来自Master的请求,并将它们进行重排序,使得它们可以并行地向Slave发出请求。Slave收到请求后,会将响应发送回Master,因此为了保证正确性,这些硬件模块必须能够正确地将响应重新排序,以使得响应可以正确地与之前的请求关联起来。但这种实现方式,我暂时没有想到有多大的实际意义。乱序执行引擎该基于什么进行乱序调度,哪条命令能乱序,哪条不能,引擎也不知道啊。
**下面是我对上图的纠正,**如有误,欢迎您对下表进行纠正