CHI中ordering的抽象
上图是一个典型的读操作过程中的几个流程,其中:
- compdata, 这个就是CHI协议保序之Comp保序-CSDN博客中提到的,comp保序,它实现的功能是,通知这个请求的RN, 你的请求,我已经开始处理了,同时也相当于告诉其他的RN, 我开始处理这个请求了;
- compack,这个就是CHI协议保序之Compack保序_chi协议中compack-CSDN博客中提到的,为了维护整个系统的Multi-copy atomicity , 当RN知道自己的某个请求,已经开始处理了之后,此时它需要把控制权给释放掉,让其他人,或者自己的下一个命令,能够开始处理;
通过以上两个机制,已经可以实现Multi-copy atomicity了,但是此时我们发现,效率是很低的,原因在于:
- 此时的RN相当于是outstanding是1,只有当上一个处理完成了,走完上图中的整套流程,我们才能发送下一个同地址的,或者同一个地址区间的请求;
为了提高整个执行的效率,又规定了一些node-pair之间的order机制,即CHI协议保序之trans order保序中提到的trans order;
- 有了这个机制,上图中的HNF,就可以告诉RN, 你刚刚发送的命令,我已经接受了,我会按照这个接收的顺序,处理你的请求,你可以发送下一个请求了;
- 这样,整个系统的outstanding, 就可以达到很高的状态;