C11和C++11的内存模型详细资料讲解

资料大小: 0.35 MB

所需积分: 4

下载次数:

用户评论: 0条评论,查看

上传日期: 2020-06-10

上 传 者: 十次方他上传的所有资料

资料介绍

标签:内存(1183)cpu(3722)处理器(7715)

  现代计算机体系结构上,CPU执行指令的速度远远大于CPU访问内存的速度,于是引入Cache机制来加速内存访问速度。除了Cache以外,分支预测和指令预取也在很大程度上提升了CPU的执行速度。随着SMP的出现,多线程编程模型被广泛应用,在多线程模型下对共享变量的访问变成了一个复杂的问题。于是我们有必要了解一下内存模型,这是多处理器架构下并发编程里必须掌握的一个基础概念。

  1. 什么是内存模型?

  到底什么是内存模型呢?看到有两种不同的观点:

  · A:内存模型是从来描述编程语言在支持多线程编程中对共享内存访问的顺序。

  · B:内存模型的本质是指在单线程情况下CPU指令在多大程度上发生指令重排(reorder)[1]。

  实际上A,B两种说法都是正确的,只不过是在尝试从不同的角度去说明memory model的概念。个人认为,内存模型表达为“内存顺序模型”可能更加贴切一点。

  一个良好的memory model定义包含3个方面:

  · Atomic Operations

  · ParTIal order of operaTIons

  · Visable effects of operaTIons

  这里要强调的是:我们这里所说的浪潮服务器内存模型和CPU的体系结构、编译器实现和编程语言规范3个层面都有关系。

用户评论

查看全部 条评论

发表评论请先 , 还没有账号?免费注册

发表评论

用户评论
技术交流、我要发言! 发表评论可获取积分! 请遵守相关规定。
上传电子资料