基本知识 ·计算机内存分层 典型大小 两边数据可能已过时 典型访问时间 >2千兆字节 虚拟内存(磁盘) 3-15微秒 256兆-2千兆字节 物理内存 100-150纳秒 128千-4兆字节 2级缓存 40-60纳秒 16-64千字节 1级缓存 5-10纳秒 32字 寄存器(处理器 1纳秒 12
基 本 知 识 • 计算机内存分层 虚拟内存(磁盘) 物理内存 2级缓存 1级缓存 寄存器(处理器) 典型大小 > 2千兆字节 256兆−2千兆字节 128千−4兆字节 16−64千字节 32字 典型访问时间 3−15微秒 100−150纳秒 40−60纳秒 5−10纳秒 1纳秒 两边数据可能已过时 12
基本知识 ·计算机内存分层 程序的效率不仅取决于被执行的指令数,还取决 于执行每条指令需要多长时间,而执行一条指令 的时间区别非常可观 虚拟内存(磁盘)】 若一个程序的大部分存储 访问都落在这种分层的较 物理内存 快层次上,则平均内存访 问时间就会缩短 2级缓存 1级缓存 寄存器处理器
基 本 知 识 • 计算机内存分层 – 程序的效率不仅取决于被执行的指令数,还取决 于执行每条指令需要多长时间,而执行一条指令 的时间区别非常可观 – 若一个程序的大部分存储 访问都落在这种分层的较 快层次上,则平均内存访 问时间就会缩短 虚拟内存(磁盘) 物理内存 2级缓存 1级缓存 寄存器(处理器) 13
基本知识 ·计算机内存分层 寄存器由编译器生成的代码来管理,虚拟内存由 操作系统管理,其他各层被自动管理。对于内存 访问,计算机从底层开始逐 虚拟内存(磁盘) 层查找,直至定位数据为止 数据以块(缓存行、页) 物理内存 为单位在相邻层次之间进 行传送。缓存行:32~256 2级缓存 字节,页:464千字节 1级缓存 寄存器(处理器
基 本 知 识 • 计算机内存分层 – 寄存器由编译器生成的代码来管理,虚拟内存由 操作系统管理,其他各层被自动管理。对于内存 访问,计算机从底层开始逐 层查找,直至定位数据为止 – 数据以块(缓存行、页) 为单位在相邻层次之间进 行传送。缓存行: 32~256 字节, 页: 4~64千字节 虚拟内存(磁盘) 物理内存 2级缓存 1级缓存 寄存器(处理器) 14
基本知识 ·计算机内存分层 现代计算机都设计成程序员不用关心内存子系统 的细节就可以写出正确的程序 对应地,编程语言没有向 虚拟内存(磁盘) 程序员提供干预数据进出 缓存的机制 物理内存 数据密集型程序可从恰当 利用内存子系统中获益, 2级缓存 怎么做? 1级缓存 寄存器(处理器
基 本 知 识 • 计算机内存分层 – 现代计算机都设计成程序员不用关心内存子系统 的细节就可以写出正确的程序 – 对应地,编程语言没有向 程序员提供干预数据进出 缓存的机制 – 数据密集型程序可从恰当 利用内存子系统中获益, 怎么做? 虚拟内存(磁盘) 物理内存 2级缓存 1级缓存 寄存器(处理器) 15
基本知识 ·计算中潜在的并行性 数值应用,例如科学计算和信号处理,一般都有 很多潜在的并行 这些应用处理有大批量元素的数据结构,在该结 构每个元素上的运算相互独立,因而在不同元素 上的运算可以并行执行,例如一些矩阵运算 这些领域的程序一般有比较简单的控制结构和规 整的数据处理模式 下面介绍支持并行计算的较为简单的体系结构, 和怎样写较优的代码 16
基 本 知 识 • 计算中潜在的并行性 – 数值应用,例如科学计算和信号处理,一般都有 很多潜在的并行 – 这些应用处理有大批量元素的数据结构,在该结 构每个元素上的运算相互独立,因而在不同元素 上的运算可以并行执行,例如一些矩阵运算 – 这些领域的程序一般有比较简单的控制结构和规 整的数据处理模式 – 下面介绍支持并行计算的较为简单的体系结构, 和怎样写较优的代码 16