《内存基础知识干货.docx》由会员分享,可在线阅读,更多相关《内存基础知识干货.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、内存基础知识干货 内存信任大家都听说过,电脑速度慢了或许身边的高手会建议我们升级更大容量的内存。那么电脑内存原委是干什么用的呢?下面就让我带你去看看内存基础学问大全,希望能帮助到大家! 你不知道的内存学问 一、CPU与内存 先铺垫几个概念,以免后面混乱: Socket或Processor: 指一个物理CPU芯片,盒装还是散装的。上面有许多针脚,干脆安装在主板上。 Core : 指在Processor里封装一个CPU核心,每个Core都是完全独立的计算单元,我们平常说的4核心CPU,指的就是Processor里面封装了4个Core。 HT超线程: 目前Intel与AMD的Processor大多支
2、持在一个Core里并行执行两个线程,此时从操作系统看就相当于两个逻辑CPU(Logical Processor)。大多数状况下,我们程序里提到的CPU概念就是指的这个Logical Processor。 咱们先来看几个问题: 1、CPU可以干脆操作内存吗? 可能一大部分老铁确定会说:确定的啊,不能操作内存怎么读取数据呢。 其实假如我们用这聪慧的大脑想一想,咱们的台式主机大家确定都玩过。上面CPU和内存条是两个完全独立的硬件啊,而且CPU也没有任何干脆插槽用于挂载内存条的。 也就是说,CPU和内存条是物理隔离的,CPU并不能干脆的访问内存条,而是须要借助主板上的其他硬件间接的来实现访问。 2、C
3、PU的运算速度和内存条的访问速度差距有多大? 呵呵呵,这么说吧,就是一个鸿沟啊,CPU的运算速度与内存访问速度之间的差距是100倍。 而由于CPU与内存之间的速度差存在N个数量级的巨大鸿沟,于是CPU最密切的小伙伴Cache 闪亮登场了。与DRAM 家族的内存(Memory)不同,Cache来自SRAM家族。 而DRAM与SRAM的最简洁区分就是后者特殊快,容量特殊小,电路结构特别困难,造价特殊高。 而Cache与主内存之间的巨大性能差距主要还是工作原理与结构不同: DRAM存储一位数据只须要一个电容加一个晶体管,SRAM则须要6个晶体管。 由于DRAM的数据其实是被保存在电容里的,所以每次读
4、写过程中的充放电环节也导致了DRAM读写数据有一个延时的问题,这个延时通常为十几到几十ns。 内存可以被看作一个二维数组,每个存储单元都有其行地址和列地址。 由于SRAM的容量很小,所以存储单元的地址(行与列)比较短,可以被一次性传输到SRAM中。DRAM则须要分别传送行与列的地址。 SRAM的频率基本与CPU的频率保持一样,而DRAM的频率直到DDR4以后才起先接近CPU的频率。 3、Cache 是怎么运用的? 其实Cache 是被集成到CPU内部的一个存储单元(平常也被我们称为高速缓存),由于其造价昂贵,并且存储容量远远不能满意CPU大量、高速存取的需求。 所以出于对成本的限制,在现实中往
5、往采纳金字塔形的多级Cache体系来实现最佳缓存效果。 于是出现了,一级Cache(L1 Cache)、二级Cache(L2 Cache)及三级Cache(L3 Cache)。每一级都牺牲了部分性能指标来换取更大的容量,目的也是存储更多的热点数据。 以Intel家族Intel SandyBridge架构的CPU为例: L1 Cache容量为64KB,访问速度为1ns左右 L2Cache容量扩大4倍,达到256KB,访问速度则降低到3ns左右 L3 Cache的容量则扩大512倍,达到32MB,访问速度也下降到12ns左右(也比访问主存的105ns(40ns+65ns)快一个数量级) L3 Ca
6、che是被一个Socket上的全部CPU Core共享的,其实最早的L3 Cache被应用在AMD发布的K6-III处理器上,当时的L3 Cache受限于制造工艺,并没有被集成到CPU内部,而是被集成在主板上,如图: 从上图我们也能看出来,CPU假如要访问内存中的数据,则须要经过L1、L2、L3三道关卡,就是这三个Cache中都没有须要的数据,才会从主内存中干脆进行读取。 最终我们来看下Intel Sandy Bridge CPU的架构图: 二、多核CPU与内存共享的问题 问题: Cache一样性问题 多核CPU共享内存的问题也被称为Cache一样性问题。 其实就是多个CPU核心看到的Cach
7、e数据应当是一样的,在某个数据被某个CPU写入自己的Cache(L1 Cache)以后,其他CPU都应当能看到相同的Cache数据。 假如在自己的Cache中有旧数据,则抛弃旧数据。 考虑到每个CPU都有自己内部独占的Cache,所以这个问题与分布式Cache保持同步的问题是同一类问题 目前业界公认的解决一样性问题的最佳方案就是Intel 的MESI协议了,大多数SMP架构都采纳了这一方案。 解决方案:MESI 不知道大家还记得Cache Line 吗,就是我们常说的高速缓存中缓存条目里面的那个缓存行。 其实细致想想,在进行I/O操作从来不以字节为单位,而是以块为单位,有两个缘由: I/O 操
8、作比较慢,所以读一个字节与读连续N个字节的花费时间基本相同 数据访问一般都具有空间连续的特征 所以CPU针对Memory的读写也采纳了类似于I/O块的方式 事实上,CPU Cache(高速缓存)里最小的存储单元就是Cache line(缓存行),Intel CPU 的一个Cache Line存储64个字节。 每一级Cache都被划分为许多组Cache Line,典型的状况就是4条Cache Line为一组。 当Cache从Memory中加载数据时,一次加载一条Cache Line的数据 如图我们可以看到,每个Cache Line 头部都有两个Bit来标识自身状态,总共四种: M(Modifie
9、d):修改状态,在其他CPU上没有数据的副本,并且在本CPU上被修改过,与存储器中的数据不一样,最终必定会引发系统总线的写指令,将Cache Line中的数据写回Memory中。 E(E_clusive):独占状态,表示当前Cache Line中的数据与Memory中的数据一样,此外,在其他CPU上没有数据的副本。 S(Shared):共享状态,表示Cache Line中的数据与Memory中的数据一样,而且当前CPU至少在其他某个CPU中有副本。 I(Invalid):无效状态,在当前Cache Line中没有有效数据或者该Cache Line数据已经失效,不能再用;当Cache要加载新数据
10、时,优先选择此状态的Cache Line,此外,Cache Line的初始状态也是I状态 在对Cache(高速缓存)的读写操作引发了Cache Line(缓存行)的状态改变,因而可以将其理解为一种状态机模型。 但MESI的困难和独特之处在于状态有两种视角: 一种是当前读写操作(Local Read/Write)所在CPU看到的自身的Cache Line状态及其他CPU上对应的Cache Line状态 另一种是一个CPU上的Cache Line状态的变迁会导致其他CPU上对应的Cache Line状态变迁。 如下所示为MESI协议的状态图: 详细MESI的实现过程可以看我另一篇文章: 看懂这篇,
11、才能说了解并发底层技术 深化理解不一样性内存 MESI协议解决了多核CPU下的Cache一样性问题,因而成为SMP架构的唯一选择,而SMP架构近几年快速在PC领域(_86)发展。 SMP架构是一种平行的架构,全部CPU Core都被连接到一个内存总线上,它们同等访问内存,同时整个内存是统一结构、统一寻址的。 如下所示给出了SMP架构的示意图: 随着CPU核心数量的不断增加,SMP架构也暴露出天生的短板,其根本瓶颈是共享内存总线的带宽无法满意CPU数量的增加,同时,在一条“公路”上通行的“车”多了,难免会陷入“拥堵模式”。 不知道你是否听说过总线风暴,可以看下:总线风暴 在这种状况下,分布式解决
12、方案应运而生,系统的内存与CPU进行分割并捆绑在一起,形成多个独立的子系统,这些子系统之间高速互联,这就是NUMA(None Uniform Memory Architecture)架构,如下图所示。 可以看出,NUMA架构中的内存被分割为独立的几块,被不同CPU私有化了。 因此在CPU访问自家内存的时候会特别快,在访问其他CPU限制的内存数据时,则须要通过内部互联通道访问。 NUMA架构的优点就是其伸缩性,就算扩展到几百个CPU也不会导致性严峻的下降。 NUMA技术的特点 在NUMA架构中引入了一个重要的新名词Node 一个Node由一个或者多个Socket Socket组成,即物理上的一个
13、或多个CPU芯片组成一个逻辑上的Node 我们来看一个Dell PowerEdge系列服务器的NUMA的架构图: 从上图可以看出其特点: 4个处理器形成4个独立的NUMA Node由于每个Node都为8 Core,支持双线程 每个Node里的Logic CPU数量都为16个,占每个Node安排系统总内存的1/4 每个Node之间都通过Intel QPI(QuickPath Interconnect)技术形成了点到点的全互联处理器系统 NUMA这种基于点到点的全互联处理器系统与传统的基于共享总线的处理器系统的SMP还是有巨大差异的。 在这种状况下无法通过嗅探总线的方式来实现Cache一样性,因此
14、为了实现NUMA架构下的Cache一样性,Intel引入了MESI协议的一个扩展协议MESIF 针对NUMA的支持 NUMA架构打破了传统的“全局内存”概念,目前还没有随意一种编程语言从内存模型上支持它,当前也很难开发适应NUMA的软件。 Java在支持NUMA的系统里,可以开启基于NUMA的内存安排方案,使得当前线程所需的内存从对应的Node上安排,从而大大加快对象的创建过程 在大数据领域,NUMA系统正发挥着越来越强大的作用,SAP的高端大数据系统HANA被SGI在其UV NUMA Systems上实现了良好的水平扩展 在云计算与虚拟化方面,OpenStack与VMware已经支持基于NU
15、MA技术的虚机安排实力,使得不同的虚机运行在不同的Core上,同时虚机的内存不会跨越多个NUMA Node 内存学问扫盲 带你先相识一下内存 内存,也叫内存储器,是一种快速存储设备,在计算机角色扮演里占据着核心的位置。现在的内存条是一块长方形薄片状的电路板,上面焊接有许多黑色“方块”的存储芯片,让人在主板上可以一眼发觉它。 内存条下方都会带有一个缺口用于辨别安装方向,防止用户误安装 内存条局部细微环节 可在很久以前,内存是作为一块IC电子元件焊接在主板上的,这种“焊接”技术会给后期的维护、修理带去极大的问题和麻烦。因此,机灵的人类独创了更为人性化的“插拔式”内存条,然后再在主板上设计一个安装插
16、槽,一切就妥妥得了。 笔记本内存插槽 台式机内存插槽(红色和黄色的长条形区域) 内存有哪几种? 假如不算离我们生活比较远的服务器内存,内存有两种规格:笔记本内存和台式内存。从本质功能来讲,两者大同小异,只是外观尺寸的差异。 上方为笔记本内存,下方为台式机内存 已经安装有内存的台式机主板 内存条的发展 内存条从最早发展到现在,大致经验了了SIMM、EDO DRAM、SDRAM、DDR这几个阶段的技术革新。其中最为大家熟识的DDR作为一种在性能与成本之间折中的解决方案,从诞生就占据着市场,并在频率上始终“高歌猛进”,由此DDR2、DDR3、DDR4、DDR5应势而生. DDR2相比于第一代DDR,
17、优势在于频率和功耗有肯定的提升,在实际的应用方面,因为DDR2自身的不足,所以在历史的舞台上它也只是一个“过客”。 它的下一代产品DDR3横空出世,又再次成为了人们关注的对象。DDR3集成了高密度的闪存颗粒,这对于降低高容量内存成本及削减生产支出都是有极大帮助的,可谓是推广阔容量内存的源动力。目前该内存仍旧是市场消费的主力。 相比而言,DDR4是最新的内存型号,由于处于普及初期因此市场占有率不高,但是它的确是新配机用户的首选。它和DDR3基本的技术相差不大,但DDR4的重心是在提高频率和带宽上,因此将来的市场应当是属于DDR4的。 内存规格不断升级,运行频率越来越高,如DDR3 1600、DD
18、R3 2400最终的1600和2400数字就代表了内存的运行频率是1600MHz或2400MHz,频率越高,内存单位时间内可以处理的数据越多,因此执行效率更高,电脑整体速度更快。假如你是一个发烧友,DDR4是你不二的选择。当然也须要相应的主板来匹配,因为每一代内存在接口或电压规格上会有所不同,不同代的内存之间不能通用。 内存条为什么会影响电脑性能 其实很简洁!我们运行一款软件后,CPU或显卡要对数据进行处理,而且这个数据传输的过程是动态的,也就是说CPU要不断地从硬盘读或写数据。如我们编辑文档时的存储或翻页等操作,但是硬盘的速度特别慢,而CPU的处理速度极为快,硬盘特别慢的读写速度无法满意CP
19、U极快的处理速度,因此常常会出现CPU等待硬盘数据传输过来的状况,严峻影响电脑性能的发挥甚至说是完全无法运用。这时候就须要“中转站”来存放临时数据,CPU提前将要处理器的数据存放到内存中,须要运用时干脆从里面找寻,这样就可以达到高效执行的目的。 鼠标右键打开我的电脑即可看到系统已经安装的内存容量(黄色字样) 因此内存越大,CPU可以提前缓存的文件或数据更多,电脑运行的速度越快,这也是为什么内存容量小的电脑,常常会出现硬盘灯常亮、电脑卡顿的现象,缘由就在于内存容量不够用,CPU将硬盘当作数据“缓存空间”,这就导致速度跟不上趟的硬盘拖累了整台电脑。还有一点值得留意的是存储在内存里的数据都是短暂的,
20、关机或者断电后就会消逝。 从市场反馈的结果来看,价格在200元左右的8GB、DDR3 1600MHz的台式机内存是消费的“香饽饽”。笔者看来,这个标准是完全可以满意大部分消费者日常运用中各种临时数据存储和传递的需求了。当然,现在内存价格便宜了,配备16GB也不是什么奢侈的事情了。 内存条常识 1、内存条介绍 内存条是一种比固态硬盘更先进的存储技术,它的读写速度比硬盘快上十倍有余,以现在主流的DDR4代内存条为例,它的读写速度可以轻松达到7000MB/s以上,而传统的机械硬盘最高也就不超过300MB/s,即使是最厉害的固态硬盘,也就3000MB/s的样子。想比内存也是慢了很多。 由于CPU处理数
21、据的速度是超级快的,而硬盘的读写速度又很慢,他们在进行数据交换的时候就产生了一个速度上的冲突,这个时候读写速度超快的内存条就可以帮上大忙了。当我们开机或打开软件的时候,硬盘就会把这些软件须要用到的数据传输到内存条里保存起来。(这就是开机速度和打开软件或打开嬉戏的速度,传统的机械硬盘传输这个数据到内存条的速度很慢,所以开机和打开软件的速度很慢)。 当软件打开后,数据就是存在内存条中了,这个时候读写速度超快的内存条就可以与CPU以超高的速度进行数据传输了,这就是为什么你打开软件和嬉戏须要等很久,但是在软件运用和嬉戏中却并没有那么明显的卡顿的缘由了。当我们关闭软件或者清理后台进程时,内存条里的数据就
22、会被删除掉。所以内存中的数据是不能长时间存储的。 留意:笔记本内存和台式机内存是不一样的 2、内存条的容量 内存条的容量自然就是能存储的数据多少了,我们每打开一个软件,这些软件的数据都会被保存到内存中,假如内存条被塞满,我们接着打开其他软件的时候,CPU就只能从硬盘调取数据了(速度慢),这样电脑的速度就会很慢并且伴有卡顿现象。 常见的内存条容量有 2G、4G、8G、16G 3、内存条的颗粒 颗粒就是内存条的存储数据的东西,现在主流的颗粒生产商就是;三星、海力士、镁光这三家。由于颗粒在生产时候会有质量参差不齐的状况,所以一些成色极品的颗粒会被选择出来做成高端超频内存条,而一些成色一般但合格的颗粒
23、会被拿去做成一般内存条。所以在购买内存条的时候要留意! 4、内存条的频率 常见的有1333MHz、1600MHz、2133MHz、2400MHz、2666MHz、3200MHz,内存条的频率,它可以看成是内存条数据的传输速度,是内存条最重要的参数。各位挚友在购买的时候肯定要依据自己的状况实际选择哦,这里提示大家一下,假如两条内存频率不一样的话,会自动向下兼容的哦。购买时最好先了解自己电脑适合的内存条频率,不然收到货不兼容就很不爽了 5、单通道与双通道 打个比方,比如说单通道就是一条双向车道,双通道就是两条双向车道(带宽增加),所以说双通道比较稳定一点。 双通道是能带来一些性能的提升的,特殊是运
24、用CPU核心显卡的用户,由于CPU要同时负责程序数据和显示数据的处理,须要的数据流量更大,所以双通道带来的双倍带宽才能满意这么大的数据流量的需求。 现在电脑内存8G已经很常见了,基本上都是双通道组的,也可以依据个人习惯来配 8G可以选择2_4G 16G可以选择2_8G 32G选择2_16G 依据个人需求选择合适容量的内存条。对于一般用户来说8GB是够用的,假如是专业作图设计或者玩吃鸡和大型单机嬉戏,可以选择2根8GB组双通道。假如自己也不知道自己须要多少容量的,可以先买一根8GB的运用,发觉不够可以再买一根8GB组成双通道。 内存基础学问干货本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第18页 共18页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页第 18 页 共 18 页