当前位置:文档之家› 第6章 存储器层次结构

第6章 存储器层次结构

n局部性原理★n存储器层次结构☆n高速缓存存储器☆n到目前为止的计算机模型中,我们假设计算机的存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置。

但它没有反映现代系统实际的工作方式。

n实际上,存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。

n如果你的程序需要的数据是存储在CPU寄存器中,那在指令的执行期间,在零个周期内就能访问到它们;如果存储在高速缓存中,需要1~30个周期;如存储在主存中,需要50~200个周期;如存储在磁盘上,需要大约几千万个周期n作为一个程序员,需要理解存储器层次结构,它对应用程序的性能有着巨大的影响,这是因为计算机程序的一个称为局部性的基本属性引起的。

•不同矩阵乘法核心程序执行相同数量的算术操作,但有不同程度局部性,它们运行时间可以相差20倍•本章将介绍基本的存储技术、局部性、高速缓冲存储器等内容。

n局部性原理★n存储器层次结构☆n高速缓存存储器☆•RAM(随机访问存储器,Random-Access Memory )–静态RAM (SRAM)•每个cell使用6个晶体管电路存储一个位•只要有电,就会无限期地保存它的值•相对来说,对电子噪声等干扰不敏感•比DRAM更快、更贵–动态RAM (DRAM)•每个cell使用1个电容和1个访问晶体管电路存储一个位•每隔10-100 ms必须刷新值•对干扰敏感•比SRAM慢,便宜ü拍、太、吉、兆、千、毫、微、纳(毫微)、皮(微微)、飞(毫微微)•传统DRAM芯片–所有cell被组织为d个supercell,每个supercell包含了w个cell,一个d×w的DRAM总共存储了dw位信息。

supercell被组织成r行c 列的矩阵,即rc=d。

•步骤1(a): Row access strobe (RAS)选择row 2•步骤1(b): 从DRAM阵列中拷贝Row 2到行缓冲区•步骤2(a): Column access strobe (CAS)选择column 1。

•步骤2(b): 将Supercell(2,1)从行缓冲区拷贝到数据线,并最终传送回CPU•作业:上网了解下内存接口类型和内存颗粒封装标准•作业:上网了解下Rank、P-Bank、L-Bank、tRCD、CL、tRP的含义,然后通过一些内存查看软件查看下自己计算机的内存信息,并尝试通过获得的信息,推算下内存容量•增强DRAM(所有增强型DRAM都是以常规的DRAM为核心而建立的)–Fast page mode DRAM (FPM DRAM)–Extended data out DRAM (EDO DRAM)–Synchronous DRAM (SDRAM)•使用时钟的上升沿作为控制信号,而不是采用异步控制信号。

–Double data-rate synchronous DRAM (DDR SDRAM)•使用时钟的两个边沿作为控制信号,每次预取2bit–Double data-rate 2 synchronous DRAM (DDR2 SDRAM)•使用时钟的两个边沿作为控制信号,每次预取4bit–Double data-rate 3 synchronous DRAM (DDR3 SDRAM)•使用时钟的两个边沿作为控制信号,每次预取8bit–Double data-rate 4 synchronous DRAM (DDR4 SDRAM)•使用时钟的两个边沿作为控制信号,每次预取8bit,采用Bank Group架构–Rambus DRAM(RDRAM)–Video RAM (VRAM)•类似于FPM DRAM,但输出是通过将行缓冲进行移位得到的•双端口(允许并行地读和写)•核心频率、时钟频率和数据频率–2007年6月,JEDEC (Joint Electron Device Engineering Council,电子元器件工业联合会)正式完成了DDR3内存技术标准的制定。

同时,随着Intel 3/4系列的芯片组的发布,内存技术开始从DDR2逐步转入DDR3体系。

–一般的DRAM内存颗粒有3种不同的频率指标:•核心频率:即内存Cell阵列(Memory Cell Array)的工作频率。

•时钟频率:指内存总线的工作频率,数据传输的I/O Buffer也是受其控制。

•数据频率:指数据传送的频率,单位时间内数据预取的次数,表示数据传输快慢。

•标准SDRAM分为PC 66、PC 100和PC 133几种,其芯片核心频率分别为66MHz、100MHz和133MHz,与系统总线时钟频率、数据频率都相等。

•DDR采用“2 bit Prefetch”的机制,这意味着每个时钟周期内存Cell 阵列都会发送2bit数据到I/O Buffer内暂存,以满足下个时钟周期的两次数据传送。

所以DDR266的核心频率为133MHz,但数据频率提高到266MHz。

•DDR2引入了4bit预取和频率不对等的设计,控制I/O Buffer的时钟频率提升到核心频率的2倍,而数据传输频率仍为时钟频率的2倍,也就是说DDR2的数据传输频率达到核心频率的4倍•DDR3则将预取位数提高到8bit,并将时钟频率提升为核心频率的4倍。

假设其核心频率为100MHz,那么时钟频率就达到400MHz,数据传输频率则高达800MHz,这也就是DDR3 800的设计标准。

•数据传输速度–在数据频率不断提升的过程中,内存的核心频率始终保持相对稳定,这主要受到DRAM结构的先天限制:作为一种并行传输的内存技术,DRAM核心无法达到很高的工作频率。

–但不管是哪种内存,都以64bit的数据块(即一个物理Bank位宽)传送数据,因此内存的数据传输速度为:数据频率*位宽/8Byte/s。

–因此,PC100MHz的SDRAM的数据传输速度为800 MByte/s。

–DDR400内存又称为PC3200内存,前者是以数据频率来命名内存的,后者则是以数据传输速度来命名内存的。

–DDR2 800内存又称为PC6400。

•主频、外频和FSB–主频: CPU的时钟频率。

外频:系统总线的工作频率。

•主频=外频*倍频–FSB(Front Side Bus): 连接CPU与北桥芯片的系统总线。

–CPU通过FSB连接到北桥芯片,进而通过北桥芯片和内存、显卡交换数据。

FSB是CPU和外界交换数据的最主要通道。

–在P4以前,CPU的FSB数据频率等于其外频。

P4 CPU采用了Quad Pumped(4倍并发)技术,该技术可以使系统总线在一个时钟周期内传送4次数据,也就是传输效率是原来的4倍,相当于用了4条原来的前端总线来和内存发生联系。

即数据频率是时钟频率的4倍。

•FSB和双通道内存技术–对于P4 CPU来说,在外频仍然是133MHZ的时候,前端总线的数据频率变成了133X4=533MHz,当外频升到200MHz,前端总线变成800MHz,这就是所谓的533前端总线的P4和800前端总线的P4。

他们的实际外频只有133和200,但由于人们保留了以前老的概念——前端总线就是外频,所以习惯了这样的叫法:533外频的P4和800外频的P4。

–在133的外频下,P4 CPU的数据频率为533MHz,而DDR的数据频率只有266MHz,出现了CPU和内存的数据频率不匹配的现象。

–为了解决这个问题,出现了所谓的双通道内存技术,两条内存使用两条通道一起工作,一起提供数据,等于速度又增加一倍,两条DDR266就有266X2=533的速度,刚好是P4 CPU的前端总线速度,没有拖后腿的问题。

•QPI(QuickPath Interconnect,快速通道互联)−对于1333MHz的FSB所提供的内存带宽是1333MHz×64bit/8=10667MB/s=10.67GB/s ,其与双通道的DDR2 667正好匹配,但如果使用双通道的DDR2 800、DDR2 1066的内存,这时候FSB的带宽就小于内存的带宽,更不用说对i7支持的三通道高频率DDR3内存搭配了。

−对于多处理器系统,如多个处理器共享一个FSB连接到北桥,再通过北桥里边的内存控制器来访问内存,则存在FSB抢占。

如每个处理器通过单独的FSB连接到北桥,这样不同的处理器之间就不会出现一个处理器占用总线而另一个在等待的情况了,但是不同的处理器还是共用相同的内存控制器,这样不同的处理器之间还是要争夺内存的带宽。

此外,在多处理器系统中,不同处理器之间需要进行缓存同步,在FSB这样的架构下,缓存同步要通过读写内存来实现,造成处理器缓存之间访问的延迟很大。

随着处理器核心性能的提高,以及核心数量的急剧增长,FSB正在日益成为瓶颈,必须加以解决。

−此外,为与AMD的HT总线抗衡,Intel认识到,要想再通过单纯提高处理器外频和FSB,难以象以前那样带来更好的性能提升,所以2008年Intel推出了QPI总线。

−对于现在最新的CPU,整个北桥芯片都集成到CPU中,所以QPI总线也被集成到了CPU内部,主板只留下南桥芯片,CPU就依靠DMI(直接媒体接口)总线与南桥芯片通信(准确的说,是CPU内部的北桥芯片通过DMI总线与外部的南桥芯片通信)。

•DDR4–采用8bit预取的Bank Group分组,每个Bank Group可以独立读写。

–从DDR3的多点分支总线到DDR4的点对点总线技术,如右图所示。

–3DS(3-Dimensional Stack,三维堆叠)技术是DDR4内存中最关键的技术之一,它用来增大单颗芯片的容量。

–虽然DDR4内存标准规范早在2012年9月发布了,DRAM厂商也完成了对DDR4内存芯片的研发,但据报道,DDR4内存最快也要在2014年底的Haswell-E中才能见到。

•非易失性存储器–非易失性存储器是掉电之后,仍然能够保存其信息的存储器。

–ROM(掩膜式只读存储器)•在芯片制造过程中写入,使用时只读出,不能改变。

–PROM(可编程ROM)•制造时,存储器全部设为0或1,用户有一次机会根据自己的需要把某些位设为1或0。

–EPROM(可擦写可编程ROM)、EEPROM(电子可擦除PROM)•前者需要特殊的设备进行多次擦写和编程,后则不需要–Flash Memory•类似于EEPROM,如Bios、MP3、USB闪存盘、SSD。

–固件:存储在ROM中的程序称为固件(firmware)。

•连接CPU和存储器的典型总线–总线是一组平行的导线,能携带地址、数据和控制信号。

–总线被多个设备分时共享。

•存储器读事务–CPU的总线接口发起读事务。

读事务分为3个步骤:–CPU将地址A传送到系统总线上,I/O桥接器将信号传递到存储器总线上。

相关主题