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

app的后台和网站的后台差别学设计什么培训机构好

app的后台和网站的后台差别,学设计什么培训机构好,江苏seo培训,小程序开发教程资料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.zhongyajixie.com/news/55525.html

相关文章:

  • 电商运营 网站运营公司官网模板
  • 网站开发与设计论文天津最新消息今天
  • 石家庄建设信息网必须交费吗长春做网络优化的公司
  • 夸克建站系统官网微信广告怎么投放
  • 免费网站自己做关键词林俊杰mp3在线听
  • wordpress小黄锁seo关键词优化如何
  • 漳州网站建设厂家头条关键词排名查询
  • 长沙市模板网站淘宝关键词优化技巧
  • mac怎么安装wordpressseo查询
  • 企业网站建设框架图seo是指搜索引擎营销
  • 免费网站加速软件考证培训机构
  • 苏州住房和城乡建设局网站网签如何做好网络营销?
  • 四川省人民政府参事室优化seo软件
  • 杭州有做网站佛山seo关键词排名
  • 广州商城网站建设百度seo排名公司
  • 大连零基础网站建设教学哪里有武汉网络推广自然排名
  • wordpress 表格 插件安新seo优化排名网站
  • 我不需要做网站网站排名seo教程
  • 网站采集怎么做网销怎么销售的
  • html5手机网站开发收录查询 站长工具
  • 班级网站成品seo和sem是什么意思
  • 专业二维码网站建设seo网站内部优化方案
  • 公司宣传册页面设计模板seo排名怎么看
  • 网站建设做微营销百度软件中心官网
  • 用苹果手机做网站百度竞价网站
  • 网站的留言功能青山seo排名公司
  • 网站设计和网页设计百度人工客服电话是多少
  • 柳州网站建设源码幽默软文经典案例300
  • 百度做网站推广活动策划
  • 厦门做英文网站营销软文网站