计算机体系结构3_单处理器内存访问顺序

简介:

一,单处理器访问顺序

     1.指令execute和指令retire

       Instruction execution creates  results and status and determines whether  or not the instruction causes an  exception.

       Instruction retirement  commits the results of instruction execution, in program order, to software-visible resources such as memory, caches, write-combining 

buffers,  and registers, or it causes an exception to occur if instruction execution created one.

       Retire instructions in program order, but implementations can execute instructions in any order, subject only to data dependencies.

      2.读顺序

       Generally, reads do not affect program order because they do not affect the state of software-visible resources other than register contents.

       However, some  system devices might be sensitive to reads. In such a situation software can map a read-sensitive device to a memory  type that enforces strong 

       read-ordering, or use read/write barrier instructions  to force strong read-ordering.

       读不会影响程序运行顺序,因为读不会影响软件可见资源的状态和内容,对于读敏感的设备,软件可以将设备映射到strong-read-ordering的内存,或使用

barrier强制读顺序。

       3.读准则

       对于可缓存的内存,以下规则管理读的顺序:

                          

                    当乱序读对软件透明,与顺序执行具有相同的效果时,乱序读允许。

                   

                     允许预读。

                     

                             

                      当读的位置与写位置相同时,不允许读重排到写前边,否则,可以重排读操作到写操作前边。

                       

                   


        4.写准则

                     写会影响程序运行顺序,因为写会影响软件可见资源的状态和内容,以下规则管理写的顺序:

                     

                     通常不允许乱序写,如果执行乱序写,写操作只有知道前边的操作完成时,才可以写内存。处理器需要在软件不可见的buffer保存乱序写的结果,

                     直到可以将结果写到内存中。

                  

                    对write-combining内存可能会执行乱序写。

                   

                    不允许预测写,像乱序写一样,只有之前所有的操作都完成时,才可以将预写的结果保存到内存中,处理器通过一个私有buffer暂存预写结果直

                    到被这些结果写到内存中。

                  

                    允许将写的结果缓存在buffer中,之后按照程序执行顺序将buffer中结果再写入到主存中。用于暂存写结果的buffer不被软件可见,但是之后

                    对被缓存数据的读写操作可以直接通过此buffer来完成。

                  

                    允许写合并,通过使用使用类型为wc内存或non-temporal store指令,将多个写操作合并为一个写操作。当使用写合并时,其他写不同地址的

                    操作可能会被提前执行,只有当写顺序不影响程序执行顺序时,才可以被使用。


参考:

       AMD64 Architecture Programmer’s Manual Volume 2: System Programming Chpter7

目录
相关文章
|
3月前
牛牛的计算机内存(状压dp)
牛牛的计算机内存(状压dp)
22 0
|
1月前
|
虚拟化
操作系统体系结构和内存分层
操作系统体系结构和内存分层
15 0
|
9月前
|
Linux Anolis 异构计算
关于远程直接内存访问技术 RDMA 的高性能架构设计介绍
本文介绍 RDMA 技术的基本原理及交流在工程上的设计思路。
|
30天前
|
缓存 算法 编译器
C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。
C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。
35 0
|
5月前
|
测试技术 API
【OS Pintos】Project1 项目要求说明 | 进程中止信息 | 参数传递 | 用户内存访问 | 有关项目实现的建议
【OS Pintos】Project1 项目要求说明 | 进程中止信息 | 参数传递 | 用户内存访问 | 有关项目实现的建议
78 0
|
6月前
|
存储 缓存 算法框架/工具
从GPU的内存访问视角对比NHWC和NCHW
NHWC和NCHW是卷积神经网络(cnn)中广泛使用的数据格式。它们决定了多维数据,如图像、点云或特征图如何存储在内存中。
157 4
|
3月前
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
58 0
|
8月前
|
存储 缓存 算法
体系结构及内存分配
体系结构及内存分配
52 0
|
4月前
|
存储 缓存 C语言
内存与CPU:计算机默契交互的关键解析
内存与CPU之间的密切互动是计算机运行的关键。从RAM到Cache,内存的物理结构和读写过程都影响着计算机的性能。指针在内存中的作用至关重要,就像楼房模型和数组一样,帮助我们理解内存的工作原理。了解内存的重要性,是深入了解计算机运行的第一步。
内存与CPU:计算机默契交互的关键解析
|
6月前
|
存储 机器学习/深度学习 C++
C/C++数据在计算机内存中的存储形式详解
C/C++数据在计算机内存中的存储形式详解