CPU的缓存及拓扑结构的查看 详解_第1页
CPU的缓存及拓扑结构的查看 详解_第2页
CPU的缓存及拓扑结构的查看 详解_第3页
CPU的缓存及拓扑结构的查看 详解_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页CPU的缓存及拓扑结构的查看详解CPU的缓存及拓扑结构的查看详解

发表于:2023-05-11来源:不详:领测软件测试网采编点击数:标签:

CPU的缓存及拓扑结构的查看详解软件测试今天忽然对CPU的Cache感兴趣了,稍微了解了一下,做一下知识笔记吧。包括CPU的各级Cache以及CPU的拓扑结构。cpu的处理数据的速度是非常非常快的,但是,数据需要从硬盘中读取出才能传递到CPU处理,然而硬盘的读写

CPU的缓存及拓扑结构的查看详解软件测试

今天忽然对CPU的Cache感兴趣了,稍微了解了一下,做一下知识笔记吧。

包括CPU的各级Cache以及CPU的拓扑结构。

cpu的处理数据的速度是非常非常快的,但是,数据需要从硬盘中读取出才能传递到CPU处理,然而硬盘的读写速度跟CPU的处理初速比,差的实在是成千上万倍。

所以加入了内存这个配件,他的目的就是将暂时需要用到的程序数据等,暂时存储在内存中。由于内存的读写速度远远大于硬盘,所以这个效率得到了非常大的提升。

但是,CPU的处理速度依然远远大于内存,CPU依然需要等待大量的时间从内存读取数据,CPU(性能)被浪费,所以CPU引入了一级缓存,他的容量很小,只有几十K左右,但他的读写速度却已经与CPU处理速度非常接近了。

CPU缓存:缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。

L1Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32256KB。

L2Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是512KB,而(服务器)和工作站上用CPU的L2高速缓存更高达256-1MB,有的高达2MB或者3MB。

L3Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。

无论是二级缓存、三级缓存还是内存都不能存储处理器操作的原始指令,这些指令只能存储在CPU的一级指令缓存中,而余下的二级缓存、三级缓存和内存仅用于存储CPU所需数据。

一级缓存、二级缓存都是core这个级别独享的;而三级缓存是socket独享的(同一个socket上的多个core共享)

根据工作原理的不同,目前主流处理器所采用的一级数据缓存又可以分为实数据读写缓存和数据代码指令追踪缓存2种,它们分别被AMD和Intel所采用。不同的一级数据缓存设计对于二级缓存容量的需求也各不相同,下面让我们简单了解一下这两种一级数据缓存设计的不同之处。

一、AMD一级数据缓存设计

AMD采用的一级缓存设计属于传统的"实数据读写缓存'设计。基于该架构的一级数据缓存主要用于存储CPU最先读取的数据;而更多的读取数据则分别存储在二级缓存和系统内存当中。做个简单的假设,假如处理器需要读取"AMDATHLON643000+ISGOOD'这一串数据(不记空格),那么首先要被读取的"AMDATHL'将被存储在一级数据缓存中,而余下的"ON643000+ISGOOD'则被分别存储在二级缓存和系统内存当中。

需要注意的是,以上假设只是对AMD处理器一级数据缓存的一个抽象描述,一级数据缓存和二级缓存所能存储的数据长度完全由缓存容量的大小决定,而绝非以上假设中的几个字节。"实数据读写缓存'的优点是数据读取直接快速,但这也需要一级数据缓存具有一定的容量,增加了处理器的制造难度(一级数据缓存的单位制造成本较二级缓存高不少)。

二、Intel一级数据缓存设计

自P4时代开始,Intel开始采用全新的"数据代码指令追踪缓存'设计。基于这种架构的一级数据缓存不再存储实际的数据,而是存储这些数据在二级缓存中的指令代码(即数据在二级缓存中存储的起始地址)。假设处理器需要读取"INTELP4ISGOOD'这一串数据(不记空格),那么所有数据将被存储在二级缓存中,而一级数据代码指令追踪缓存需要存储的仅仅是上述数据的起始地址。

由于一级数据缓存不再存储实际数据,因此"数据代码指令追踪缓存'设计能够极大地降CPU对一级数据缓存容量的要求,降低处理器的生产难度。但这种设计的弊端在于数据读取效率较"实数据读写缓存设计'低,而且对二级缓存容量的依赖性非常大。

另外,cat/proc/cpuinfo中看到的cache一般来说是现实最大级别缓存的容量,可能是三级缓存(如果有)或者是二级缓存。

如果需要了解cpu的拓扑结构,了解逻辑CPU和物理的CPU的映射关系,以及了解CPU的内部的硬件参数,比如说L1,L2,L3cache的大小等信息。这时cpuinfo就不够用了,上面的信息不够多;所幸的是Intel提供了这样的一个工具来看CPU的拓扑结构。

参见:/en-us/articles/intel-64-architecture-processor-topology-enumeration/

下载下来编译、运行有OK了。

./cpu_topology64.out

我的一台(测试)服务器IntelWestmere-EP平台,缓存相关信息如下:

L1DisLevel1Datacache,size(KBytes)=32,Cores/cache=2,Caches/package=6

L1IisLevel1Instructioncach

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论