CPU基础 知识大全 详解有哪些? CPU在电脑中是最核心关键的硬件之一,相当于人的大脑,决定了电脑运算能力,因此CPU的选择至关重要。下面就让我带你去看看CPU基础知识大全详解,希望对你有所帮助吧!
程序员必须了解的CPU知识 - 科普篇
1导读
对于一名程序员来说,无论你使用的是什么语言,代码最终都会交给CPU来执行。所以了解CPU相关的知识一方面属于程序员的内功,另一方面也可以帮助你在日常编写代码时写出更加高效的代码
本文不打算对CPU进行深入探究,相反是以简单的语言来帮助大家了解CPU的工作原理以及不得不提到的CPU缓存相关知识,其中晦涩的内容我会通过配图来帮助大家理解,最后会以几个例子来帮助大家更直观的感受到CPU缓存带来的性能影响
2CPU基础知识
CPU即Central Processing Unit(中央处理器),是我们的代码打交道最多的硬件之一,要想让一个CPU工作,就必须给它提供指令和数据,而这里的指令和数据一般就放在我们的内存当中。其中指令就是由我们平常编写的代码翻译而来,数据也是我们代码中需要用到的数据(例如一个int值、一串字符串等等)
以C语言为例,从我们开始编写到运行的生命周期可以粗略的用下图表示:
大致分为以下几个步骤
我们日常中使用编辑器或者IDE敲入代码
代码编写完成后使用编译和链接工具生成可以被执行的程序,也就是机器语言(指令的集合)
当程序被运行时,整个程序(包括指令和数据)会被完整的载入到内存当中
CPU不停的向内存读取该程序的指令执行直到程序结束
通过上述第4步我们知道,CPU自身是没有保存我们的程序的,需要不停的向内存读取
那么有个问题是CPU是如何向内存读取的呢
这里其实存在一个“总线”的概念,即CPU会通过地址总线、控制总线、数据总线来与我们的内存进行交互。其中地址总线的作用是寻址,即CPU告诉内存需要哪一个内存地址上的数据;控制总线的作用是对外部组件的控制,例如CPU希望从内存读取数据则会在控制总线上发一个“读信号”,如果希望往内存中写一个数据则会发一个“写信号”;而数据总线的作用顾名思义就是用来传输数据本身的了
例如CPU需要希望从内存中读一条数据,那么整个过程为:
到这里我们已经知道了CPU在执行我们程序的过程中会不断的与内存交互,读取需要的指令和数据或者写入相关的数据。这个过程是非常非常快的,一般CPU与内存交互一次需要200个时钟周期左右,而现代的处理器单个时钟周期一般都短于1纳秒(1秒 = 十亿纳秒)
但我们的前辈们仍然对这个速度不满足,所以又对CPU设计了一套缓存系统来加速对内存中数据的读取
3CPU缓存
现代CPU通常设计三级缓存(L1、L2、L3),其中L1、L2缓存是每个CPU核心独享的,L3缓存是所有CPU核心共享的,而L1缓存又分为数据缓存和指令缓存
我们的数据就从内存先到L3缓存中,再到L2缓存中,再到L1缓存中,最后再到CPU寄存器中
按照大小来看,通常L1 < L2 < L3 < 内存 < 磁盘,如果你手边有一台Linu__机器的话,可以通过下面的命令查看CPU各级缓存的大小
以我手上这台服务器为例,L1指令缓存大小为32K、数据缓存大小为32K,L2缓存大小为1MB,L3缓存大小为3575MB
按照速度来看,通常L1 > L2 > L3 > 内存 > 磁盘,以时钟周期为计量单位
L1缓存:约 4 个CPU时钟周期
L2缓存:约 10 个CPU时钟周期
L3缓存:约 40 个CPU时钟周期
内存:约 200 个CPU时钟周期
也就意味着如果能命中缓存,我们程序的执行速度至少提升5倍左右,如果能命中L1缓存则提升50倍左右,这已经属于相当大的性能提升了
有了缓存系统后,CPU就不必要每条指令或数据都读一次了,可以一次性读取若干条指令或数据然后放到缓存里供以后查询,因为根据局部性原理,CPU访问内存时,无论是读取指令还是数据,所访问的内存单元都趋于聚集在一个较小的连续区域中,所以一次性读取一块连续的内存有利于后续的缓存命中
现实中,CPU通常情况下每次的读取内存时都会一次性读取内存中连续的64个字节,这个连续的64字节术语就叫做Cache Line(缓存行),所以每一级CPU缓存就像下面这样
如果你手边有一台Linu__机器的话,可以通过下面的命令查看你的机器使用的CPU的Cache Line大小是多少
对于我的服务器来说,L1缓存就有 32KB / 64B = 512 个Cache Line
到这里,我们已经知道了CPU缓存的工作原理和加载方式,这里实际上还遗留了两个话题没有讲,一个是如何组织每一级的 Cache Line(例如 L1 的 512 个Cache Line)来提升访问的命中率;另一个更加复杂一点,在现代CPU都是多核的场景下如何保证数据的一致性,因为每个核都有自己的L1和L2缓存,那么如果核心1修改的时候只修改了缓存的数据而没有修改内存中的数据,其他核心读到的就是旧数据了,如何解决这一问题
由于本篇 文章 只是期望对CPU知识进行一个科普,不希望对于小白来说一次性接触大量的新内容,所以这两个问题我准备在后面的另外两篇再进行更细致的讨论
4性能对比
下面以几个实际的例子来加深大家对Cache Line如何影响程序性能的理解
示例一
我们假设有一个5000万长度的int数组,接着把这个数组的其中一些元素乘以2,考虑下面这两份代码
直觉上代码一比代码二少循环了4倍,并且也少乘2了4倍,理论上代码一比代码二快4倍左右才合理
但在我的服务器上运行的结果是代码一平均花费90毫秒,代码二平均花费93毫秒,性能几乎是差不多的,读者可以自行思考一下原因,再点击下方空白处查看解析
点击下方空白区域查看解析
▼
解析
这里最主要的原因还是Cache Line,虽然代码一需要执行的指令确实比代码二要少4倍,但由于CPU一次会把连续的64个字节都读入缓存,而读写缓存的速度又特别快(还记得吗L1的读取速度只有约4个时钟周期,是内存的50倍),以至于我们很难察觉到这4倍指令的差距
示例二
假设我们需要遍历一个二维数组,考虑下面这两种遍历 方法 :
由于数组长度是一模一样的,直觉上我们期望的是两份代码运行时间相差无几。但在我的服务器上代码一运行需要23毫秒,代码二运行需要51毫秒,读者可以自行思考一下原因,再点击下方空白处查看解析
点击下方空白区域查看解析
▼
解析
这里最主要的原因依然是Cache Line,由于C语言中二维数组的内存是连续的,所以我们按行访问的时候访问的一直都是连续的内存,而Cache Line也是连续的64个字节,所以按行访问对Cache Line更友好,更容易命中缓存
而按列访问的话每次访问的内存不是连续的,每次的跨度都是256__sizeof(int)也就是1KB,更容易出现缓存Miss
示例三
假设我们有一个数组,我们希望计算所有大于100的元素的和,考虑下面两份代码
其中代码一是随机生成了个长度为1000W的数组,然后统计大于100的所有数字的和;代码二也是随机生成了个长度为1000W的数组,但是是先排完序,再统计大于100的所有数字的和。并且可以看到,两份代码都是只计算了统计sum的那段代码的消耗时间,所以两份代码都不考虑随机生成数组和排序花费的时间
理论上来讲两份代码花费时间应当是相差无几的,但实际上在我的机器上跑出来第一份代码输出的是46毫秒,第二份代码输出的是23毫秒
读者可以自行思考一下原因,再点击下方空白处查看解析,提示:第二份代码中在统计sum之前数组是有序的
电脑CPU如何选购 台式机 CPU知识扫盲和选购建议
CPU有几个重要的参数:架构、主频、核心、线程、缓存、接口。
架构:
有句老话叫“抛开架构看核心主频都是耍流氓”,那什么是架构假如我们把架构想象成交通工具,那么老的架构就是火车,而新的架构就是高铁,所以架构的提升直接影响CPU的性能。这也就是为什么老式的CPU虽然也有超高的主频但性能还是被现在的i3碾压的原因了。
电脑CPU如何选购台式机CPU知识扫盲和选购建议
主频:
我们常在CPU的信息里看到 某某CPU主频36GHz,这里的主频其实是CPU内核工作的时钟频率,并不直接等于CPU的运算速度,但是高的主频对于CPU的运算速度却至关重要。
核心:
核心又称内核,是CPU用来完成所有计算、接受/存储命令、处理数据等任务的装置。我们可以简单的把核心理解为人的手,单核就是一只手、双核就是两只手、四核就是四只手。
核心数并不是越多越好的,要看使用场景,比如在打字的时候,两只手就比一只手效率高,但是在 *** 作鼠标的时候,使用两只手只会起到适得其反的效果。至于什么场景需要使用多少核心的CPU在下面会讲到。
电脑CPU如何选购台式机CPU知识扫盲和选购建议
线程:
我们通常会看到“四核四线程” 和“四核八线程”这两种说法,我们可以简单的把工厂里的流水线比作线程,把工人比作核心,早先由于工人工作技能不高,一个工人只能处理一条流水线的任务,我们可以把这个称为单核单线程,但是后来工人技术熟练了,觉得 *** 作一条流水线很无聊,不能体现自己的价值,于是就给又分配一条流水线,让这个工人同时处理两条流水线的任务,我们可以把这个称为“单核双线程”。
缓存:
缓存也是CPU里的一项非常重要的参数,由于CPU的运算速度比内存条的读写速度要快很多,这会让CPU花费很长的时间等待数据的到来或是把数据写入内存条,这个时候CPU内的高速缓存可以作为临时的存储介质来缓解CPU的运算速度与内存读写速度不匹配的矛盾,所以缓存越大越好。
电脑CPU如何选购台式机CPU知识扫盲和选购建议
接口:
CPU需要通过接口安装在主板上才能工作,而目前CPU的接口都是针脚式接口,AMD和英特尔的CPU在接口上就有很大的差别,所以需要使用适配接口的主板才能正常工作。目前英特尔主流的接口类型为LGA-1151接口(6、7、8代i3 i5 i7都是这种接口);AMD平台主流的接口类型有AM4接口(锐龙系列)和FM2+接口(速龙系列、APU系列)。
PS:英特尔最新的酷睿8代CPU虽然也是LGA-1151接口,但不适配老式的LGA-1151接口主板的平台,需要另购主板
说完了这些重要的参数,相信你也对CPU有了一个大概的了解,我们再谈谈不同场景对CPU的选择。
计算机系统基础:CPU相关知识笔记
1、什么是CPU
计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备5大部件组成。
运算器和控制器等部件被集成在一起称为中央处理单元(Central Processing Unit,CPU)CPU
是硬件系统的核心。
2、CPU的用途
CPU主要负责获取程序指令、对指令进行译码并加以执行。
CPU的功能如下:
3、CPU的组成
CPU主要由运算器、控制器、寄存器和内部总线等部件组成。
31 运算器
运算器包括算术逻辑单元(ALU)、累加器、缓冲寄存器、状态条件寄存器等。它的主要工作是完成所规定的的各种算术和逻辑运算。
算术逻辑单元(ALU):ALU的重要组成部件,负责处理数据,实现算术和逻辑运算。
累加器(AC):当执行算术或逻辑运算时,为ALU提供一个工作区。
数据缓冲器(DR):作为CPU和内存、外部设备之间数据传送的中转站、 *** 作速度的缓冲;
在单累加器结构的运算器中,DR还可以作为 *** 作数寄存器。
状态寄存器(PSW):保存算术指令和逻辑指令运行或测试的结果建立的的各种条件码内容,分为状态标志和控制标志。
32 控制器
用于控制这个CPU的工作,不仅要保证程序的正确执行,还要能处理异常事件。
控制器主要包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑。
321 指令控制
指令寄存器(IR):当执行一条指令时,需要先把它从内存存储器取到缓冲寄存器中,再送入IR中暂存,指令译码器会根据IR的内容产生各种微 *** 作命令,控制其他部件协调工作,完成指令的功能。
程序计数器(PC):PC具有寄存和计数两种功能。又称为指令计数器。
地址寄存器(AR):用来保存当前CPU所访问的内存单元地址。
指令译码器(ID):包含指令 *** 作码和地址码两部分,为了能执行任何给定的指令必须对 *** 作码进行分析,以便识别要进行的 *** 作。
322 时序控制
时序控制要为每条指令按时间顺序提供应有的控制信号。
323 总线控制
为多个功能部件提供服务的信息通路的控制电路。
324 中断控制
用于控制各种中断请求,并根据优先级排队,逐个交给CPU处理。
33 寄存器组
分为专用寄存器、通用寄存器。运算器和控制器中的寄存器是专用寄存器,作用是固定的。
通用寄存器用途广泛由程序员规定其用途。
4、什么是多核CPU
内核:CPU的核心称为内核,是CPU的最重要组成部分。CPU的所有计算、接收/存储命令、处理数据都是由核心执行。
多核:在一个单芯片上集成两个或者更多个处理器内核,并且每个内核都有自己的逻辑单元、控制单元、中端处理器、运算单元、一级Cache、二级Cache共享或独有。
多核CPU优点:可满足用户同时进行多任务处理等要求。
CPU基础知识大全详解相关文章:
★ CPU的基础知识大全有哪些
★ CPU基础知识拓展大全
★ 电脑主板应用知识大全
大多数广告营销都打着免费体验服务器的旗号,不少人为之心动。进去一看是可以体验,各种填写信息,也有很多限制,最后没感觉到产品的优势和自己是否适配,也浪费了自己的时间精力成本,尤其对新手小白不熟悉部署更是得不偿失。老话说天下没有免费的午餐,这句话是有一定道理的。20世纪互联网+时代,如果你已经规划预算购买服务器了,就不建议去踩坑,还是正规渠道多方面对比,选购性价比高又适合自己的服务器。割韭菜、薅羊毛的确香,也要分具体的情况,免费服务器就算了,划不来处处都是坑。以下也是小编分享的一些选购服务器的小细节,希望小伙伴可以喜欢。
大方向建议选择大厂:腾讯云、百度云、阿里云,华为云,最近几年京东云异军突起,收获了一部分忠实粉丝。
阿里云对学生党很友好。有的服务器两三年200左右,运算配置要求不高的新手小白来说,性价比高。三大厂商的用户基数大,整合资源分摊每一个用户身上,成本超低相比于其他私企有价格优势。在双11/12的助力下,大厂绞尽脑汁宣传,为的就是增加用户粘度,抢占大份额市场。根据自己的预算和配置,在节假日的秒杀优惠活动,选择适合的产品,简直不能再划算了,懂得都懂。一般选服务器之前考虑品牌,性价比,另一个大多人考虑的就是售后服务这块。
百度云依托百度平台,口碑有保障,推广平台可以引入流量,有推广需求用户可以尝试下
市面上现在有两种模式,租用和托管。租用就是用户无需购买物理机等硬件设备,直接选择自己需要的配置,IDC公司按照需求部署环境和参数,进行管理和运维。托管则是用户自己购买物理机硬件设备,选择IDC公司机房进行管理和运维。
这要看你的大小了,如果太大,数量多就会出现问题。你可以限制每张的大小,而且为每张定义一个缓冲区,而且缓冲区可以从堆里去临时申请,这样处理会少出问题,而且还有一点需要注意,接收时要保证缓冲区不越界,也就是每接收一次需要知道缓冲区剩余大小,如果较小,那么调用参数就要调整,不能使用MAXDATA。我的世界是一款自由度极高的沙盒游戏,游戏中玩家需要自食其力生存下去,然而在这个庞大的世界之中危险数不胜数,如果想要提升存活率,一套好的套装和一把优秀的武器是必不可少的。我的世界中有许多传说级武器,本文整理了游戏中出现的所有武器中最强力的前五款,按末次排序分别为始源之q、无尽星空、砧板神剑、附带最终指令的木剑和臭名昭著的32K。最强武器32K全名为32K Weapon,是顶级黑客ITtistan使用服务器后台创造,拥有32767的附魔,是在所有服务器中的最强武器,这把武器曾毁灭了一个服务器,也被称为我的世界中最强大的武器。尊敬的海信用户,您好!不知道您具体的网络环境,是通过无线路由器连接?还是有线连接?电视机是不支持代理服务器上网方式。您家的LED32K316J电视机可以实现无线上网,需要准备好USB无线网卡,无线网卡推荐使用磊科NW360、NW362,其它型号的网卡不保证能够支持。相关 *** 作请参见产品使用指南。我的世界中要想称霸服务器,首先应在游戏中找到对应的服务器,并研究服务器的规则,开始积累资源,与服务器中的玩家建立友好的关系,把自己积极参与进服务器的游戏活动,不断壮大自己的实力,最终能够称霸服务器。
产品类型:智能交换机
应用层级:三层
传输速率:10/100/1000Mbps
交换方式:存储-转发
背板带宽:256Gbps
包转发率:96Mpps
MAC地址表:32K
端口结构:非模块化
端口数量:28个
端口描述:24个10/100/1000Base-T以太网端口,4个复用的1000Base-X千兆SFP端口
控制端口:1个Console口
扩展模块:2个扩展插槽
传输模式:支持全双工
堆叠功能:可堆叠
VLAN:支持基于端口的VLAN(4K个)
支持基于MAC的VLAN
基于协议的VLAN
基于IP子网的VLAN
支持QinQ,灵活QinQ
支持VLAN Mapping
支持Voice VLAN
支持GVRP
QOS:支持L2-L4包过滤功能
支持时间段ACL
支持入方向和出方向的双向ACL策略
支持基于VLAN下发ACL
支持对端口接收报文的速率和发送报文的速率进行限制
支持报文重定向
支持CAR功能
每个端口支持8个输出队列
支持灵活的队列调度算法,可以同时基于端口和队列进行设置,支持SP、WRR、SP+WRR三种模式
支持报文的8021p和DSCP优先级重新标记
组播管理:支持IGMP Snooping v1/v2/v3,MLD Snooping v1/v2
支持组播VLAN
支持IGMP v1/v2/v3,MLD v1/v2
支持PIM-DM,PIM-SM,PIM-SSM
支持MSDP,MSDP for IPv6
支持MBGP,MBGP for IPv6
网络管理:支持XModem/FTP/TFTP加载升级
支持命令行接口(CLI),Telnet,Console口进行配置
支持SNMPv1/v2/v3,WEB网管
支持RMON告警、事件、历史记录
支持iMC智能管理中心
支持系统日志,分级告警,调试信息输出
支持HGMPv2
支持NTP
支持电源的告警功能,风扇、温度告警
支持Ping、Tracert
支持VCT电缆检测功能
支持DLDP单向链路检测协议
支持LLDP
支持Loopback-detection端口环回检测
安全管理:支持用户分级管理和口令保护
支持8021X认证/集中式MAC地址认证
支持Guest VLAN
支持RADIUS认证
支持SSH 20
支持端口隔离
支持端口安全
支持PORTAL认证
支持EAD
可支持DHCP Snooping,防止欺骗的DHCP服务器
支持动态ARP检测,防止中间人攻击和ARP拒绝服务
支持BPDU guard,Root guard
支持uRPF(单播反向路径检测),杜绝IP源地址欺骗,防范病毒和攻击
支持IP/Port/MAC的绑定功能
支持OSPF、RIPv2报文的明文及MD5密文认证
电源电压:AC 100-240V,50-60Hz
电源功率:110W
产品尺寸:440×300×436mm
产品重量:4kg
环境标准:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)