当前位置: 首页 > news >正文

可以申请微信号的网站郑州个人网站建设公司排行榜

可以申请微信号的网站,郑州个人网站建设公司排行榜,西安房产网签查询官网,微信官方小程序商城SC 只定义 semantic-level 的含义 如我在前一个回答中提到的,SC 是一个语义模型,由 Lamport 定义,主要描述程序执行的逻辑行为: 内存操作按程序顺序执行。所有处理器对内存操作的顺序有一致的全局视图。 SC 不直接规定硬件如何…

SC 只定义 semantic-level 的含义

如我在前一个回答中提到的,SC 是一个语义模型,由 Lamport 定义,主要描述程序执行的逻辑行为:

  • 内存操作按程序顺序执行。
  • 所有处理器对内存操作的顺序有一致的全局视图。

SC 不直接规定硬件如何实现这些语义(例如,是否使用缓存、写缓冲区或指令重排序)。实现层面由硬件设计者决定,只要最终的程序行为符合 SC 的语义即可。因此,SC 的定义是抽象的,关注结果等价性,而不是具体的实现机制。

PC一致性模型的案例

Recall that in SC, each load/store is ordered with regard to the following load/store. In other words,
the ordering of the following pairs is enforced: load → load, load → store, store → load, and
store → store. In the processor consistency (PC) model, the ordering between an older store and a
younger load (store → load) is relaxed. When a store has not performed, a younger load is allowed
to issue to the cache and even complete.
1.  When a store has not performed, a younger load is allowed to issue to the cache.没有破坏 atomicity of memory accesses(这里指的是store的两个不可分割操作被分别看到,比store atomicity 概念更大) , 因为 	load 还没拿到值,只是发出了请求(可取消、可延迟),对可见性没有实质影响load 没有在store前完成,在全局内存顺序中,load 出现在 store 之后2.  When a store has not performed, a younger load is allowed to  complete.可能破坏 store的原子性 , 如果 load 提前完成(即读到值),而 store 还没 perform,就可能读到了错误的旧值,破坏了 atomicity of memory accessesload 已经完成, load → store 出现在全局顺序.情况1 没破坏 SC 中的第一个约束, 情况2 破坏了 SC 中的第一个约束
尽管这样,但是这都是  relax.但是如果实现中只存在 情况1 这一种relax , 那么 实现还是符合 SC
那么他是基于什么的relax 呢 ? 
需要肯定的是, 他是实现层面的 relax
因此此时我们就需要 一个 符合 SC 的 implementation-level 定义  // 书中没有这个概念,这里提出这个概念是为了好理解他们不完全相等
违背了 SC 的 implementation-level , 并不一定违背 SC 的 Semantic-level // 参考情况1

SC 的 implementation-level 定义

由于 SC 本身是一个语义模型,不直接指定实现细节,但其严格的语义要求对硬件实现施加了隐式的约束。为了满足 SC 的语义,硬件在实现层面必须做到以下几点(这是 SC 的 implementation-level 定义):

  1. 严格的程序顺序执行
    • 硬件必须确保每个处理器的内存操作(读/写)按照程序顺序发出和完成。
    • 禁止指令重排序,包括:
      • read-read 重排序
      • read-write 重排序
      • write-read 重排序
      • write-write 重排序
  2. 立即的写操作可见性
    • 写操作必须立即对所有处理器可见(即写操作的结果立即传播到全局内存)。
    • 禁止使用写缓冲区(write buffer)延迟写操作的传播,除非通过同步机制(如总线锁)确保立即可见。
  3. 全局一致的内存视图
    • 所有处理器必须对内存操作的顺序有一致的观察,相当于硬件维护一个全局的内存操作序列。
    • 缓存一致性协议(如 MESI)必须保证写操作的传播是全序的(total order),例如通过总线序列化或全局广播。
  4. 同步机制
    • 硬件可能需要使用内存屏障(fence 指令)或总线锁来强制顺序。
    • 推测执行(如分支预测或乱序执行)必须在提交时确保符合 SC 语义。

实现层面的例子

  • 在一个多核系统中,SC 的实现可能需要:
    • 禁用写缓冲区,或者每次写操作后立即刷新(flush)写缓冲区。
    • 使用全序广播协议(如 snoopy 协议),确保所有处理器看到相同的写操作顺序。
    • 禁止乱序执行引擎(如现代 CPU 的乱序执行单元)对内存操作进行重排序。
  • 例如,x86 架构的严格实现可能通过锁定总线或插入内存屏障(如 LOCK 前缀或 MFENCE 指令)来实现 SC。
  • 通常不会使用 store buffer(写缓冲区),或者如果存在 store buffer,其行为必须受到严格限制,以确保符合 SC 的语义要求。
- **SC 实现中是否会存在 store buffer?**-**严格的 SC 实现**中,通常**不存在 store buffer**,或者 store buffer 的行为被严格限制(如立即刷新),以确保写操作立即对所有处理器可见。-**优化的 SC 实现**中,可能有限制地使用 store buffer,但必须通过内存屏障或全序广播等机制确保写操作的立即可见性,符合 SC 语义。
- **原因**:Store buffer 的延迟传播可能导致写操作的可见顺序与程序顺序不一致,违反 SC 的全局顺序要求。
- **实际影响**:禁用或限制 store buffer 会增加写操作的延迟,降低性能,但这是 SC 严格语义的必要代价。

性能代价

  • SC 的实现通常效率较低,因为禁用重排序、写缓冲区和推测执行会增加延迟和降低吞吐量。
  • 例如,写操作需要等待全局广播完成,可能会导致处理器停顿。
http://www.yayakq.cn/news/476056/

相关文章:

  • 南宁国贸网站建设成年学校培训班
  • 培训网站建设机构住建部2017建设工程合同范本
  • 网站建设关键词优化网站建设创意公司
  • 制作外贸网站成本html总结心得体会小短篇
  • php能用着手机网站开发企业网站模板中文 产品列表
  • 做网站的职业叫什么中国免费企业建站
  • 广州新塘做网站做网站公司好做吗
  • 网站建设的税率是多少晋江怎么交换友情链接
  • 网站的主题与风格说明如何做静态页网站
  • 哪些网站做机票酒店有优势乡镇做电器网站能不能营运
  • 中山手机网站建设电话桥东企业做网站
  • 山西建筑网站设计设计网页传奇平台
  • 华星建设集团网站新市区做网站
  • 合肥网站制作套餐设计上海兼职网站建设
  • 回龙观网站建设设计师必去的网站
  • 做银行应该关注的网站个人中心页面设计html
  • 能够做外贸的网站有哪些wordpress 更改编辑器
  • 百度搜索不到公司网站wordpress tag导入
  • 只能家居网站建设目的wordpress分类别名获取文章
  • 东营区住房和城乡建设局网站北京制作网站公司哪家好
  • 一个网站用两个域名建设银行网上银行网站可以开通网银
  • 钟落潭有没有做网站的福州免费企业网站建站
  • jquery 网站根目录华为云服务器怎么做网站
  • 江门模板建站源码东莞计算机培训机构哪个最好
  • 网站推广服务外包中国视觉设计网站
  • 电子商务网站建立企业年金交满多少年才能领取
  • 长沙做网站 青创互联邯郸网站建设taigew
  • 网站备案注册程序员培训班哪家好
  • 工业设计网站下载手机设计软件哪个好
  • 如何在木上做网站钱建网站