目前各种低功耗核如ARM,tensilica等都提供write buffer的功能。
write buffer就是一个queue。其目的从大的方面说是为了匹配CPU和外设总线
带宽差异。从具体来说它可以把CPU从流水线执行阶段和访问外部总线隔离(因为访问外部总线往往会有仲裁等待,
从CPU流水的执行来说如果没有write buffer,它会一直等待这个写数据完成,这样就会导致流水线暂定。极端情况,
write buffer满了,这个时候CPU也不得不等待。所以write buffer深度设计时也很关键),充分释放CPU的性能。
其性能决定于其深度,取存指令密度以及外设总线互连。
其实任何数据通道上的下行写buffer都是一样道理。首先是由于带宽的不匹配,造成数据流水不通畅;其次是
数据通道上某些部件延迟的引入。bandwitdth-delay product延迟带宽积,带宽匹配程度决定了buffer深度。
网络中有RLL(round-trip time)往返延时概念。因此现代设计对带宽,延迟等很关注。具体地说,一般用户更关注
read latency。因为写延迟可以通过写buffer来返回缩短,而读延迟很时候则明显大于写延迟。