![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
consistency&coherence
文章平均质量分 88
描述上述两者间的区别及联系
newyork major
芯片蜉蝣
展开
-
coherence protocal基础
文章中的比较简单的,用于举例的一致性我们就直接跳过了,直接讲常用的一致性协议是从哪些方面考虑问题的;一致性协议,主要从states, transactions, events, transitions 4个方面来考虑;原创 2024-05-10 14:31:41 · 831 阅读 · 0 评论 -
常见的一些RELAXED MODEL CONCEPTS
尽管两个load L1 和 L2 没有明确排序,但 RVWMO 隐式强制执行 L1 -> L2,因为 L1 和 L2 之间存在地址依赖 (address dependency):L1 产生的值被 L2 解引用。这两种 RMW 的原子性语义略有不同。然而,RVWMO 通过隐式强制 Load -> Store 顺序 (L1 -> S1 和 L2 -> S2) 来禁止这种行为,因为每个load和store之间存在数据依赖 (data dependency) 关系:每个load读取的值由接下来的store写入。原创 2024-05-09 19:36:17 · 758 阅读 · 0 评论 -
Relaxed MemoryConsistency
SC和TSO都被称之为强(strong)保序模型;因此,我们需要一种更宽松的memory consistency model,这些模型试图只保留程序员“需要”的顺序。原创 2024-05-09 17:47:48 · 1023 阅读 · 0 评论 -
Total Store Orderand(TSO) the x86 MemoryModel
可编程性*:一个良好的模型应该使编写多线程程序变得(相对)容易。这个模型应该对大多数用户来说是直观的,即使是那些没有阅读详细细节的用户也是如此。它应该是精确的,以便专家可以拓展所允许的范围。*性能*:一个良好的模型应该在合理的功耗、成本等条件下促进高性能的实现。它应该给予实现者广泛的选项余地。*可移植性*:一个良好的模型应该被广泛采用,或者至少提供向后兼容性或在不同模型之间进行转换的能力。*精确性*:一个良好的模型应该被精确定义,通常通过数学方式。原创 2024-05-09 15:55:45 · 985 阅读 · 0 评论 -
SC的实现原理及方式
最常见的是,软件、核心硬件或缓存硬件请求预取以更改 B 在一级缓存中的状态,以允许通过以下方式加载(例如,B 的状态是 M 或 S)或加载和存储(B 的状态是 M)发出 coherence 请求,例如 GetS 和 GetM。更一般地说,L1 缓存可以满足的操作总是可以同时完成,因为 coherence 的 SWMR 不变量确保它们是不冲突的。coherence可以提高上述SC implemention的并行度,例如,对于非冲突的load/store,带了cohenrence之后,这两个操作可以并行执行;原创 2024-05-09 14:33:51 · 1016 阅读 · 0 评论 -
SEQUENTIAL CONSISTENCY----SC
使用了SC模型后,表 3.1 程序的所有执行都以 r2 作为 NEW 终止。唯一的不确定性—— L1 在加载值 SET 一次之前加载 flag 为 0 的次数——并不重要。SC这种memory consistency model中,每个core的执行顺序和指令的PO顺序相同;SC模型是最直观的memory consistency model;上面描述的这种指令执行的总的顺序,称之为memory order;<m: memory操作的顺序;<p: program的顺序;最后一个不满足SC;原创 2024-05-09 10:31:23 · 302 阅读 · 0 评论 -
memory consistency
需要注意的是,store-load reordering, 可能也是因为FIFO write buffer的local bypassing造成的,所以,即使core是按照PO的顺序来执行,也可能导致程序未按照预期执行;对于多线程而言,如果两个core之间,存在相同地址的访问,则可能出现如图所示的各种执行顺序,对程序的执行结果,也会有相应影响;对于单个thread而言,究竟以什么顺序执行无所谓,但是多余多线程,如上图所示,其执行的顺序,就会影响程序预期的结果;或者第二个store可以与更早的进行merge;原创 2024-05-06 19:54:36 · 662 阅读 · 0 评论 -
coherence的基本概念
Coherence 的定义,无论我们选择哪种定义,仅在某些情况下相关,架构师必须意识到它何时适用,何时不适用。Cache coherence 协议将缓存完全抽象出来并呈现出原子内存的错觉,就好像缓存被移除一样,只有内存包含在 coherence 框内;结束了一个read-only/read-write的epochs, 开始一个read-write epochs;相当于,这种设计,每个core感觉不到cache的存在,每个人都觉得是在跟一个原子内存系统交互;5. coherence的粒度。原创 2024-05-06 16:45:11 · 694 阅读 · 0 评论 -
Coherence & Consistency的背景
● 在共享内存连贯性模型的情况下,我们会涉及到多个线程的加载(load)和存储(store)操作,这里ISA可以允许多个线程的同时执行;● 因此可能会出现多种不同的正确执行(execution),通常是来自不同线程的指令间的多种合法交错(interleaving)。⭕加载(load)和存储(store)操作的规则;⭕load/store是如何作用到内存中的;定义了这种行为是正确的。需要有一个规则来定义。原创 2024-05-06 11:57:51 · 560 阅读 · 0 评论