如何成为一个程序员一:认识电脑(一)

2024-02-29
26 阅读
电脑是程序员的好伙伴,也是编程必备的工具,你对电脑了解多少呢?

世界上第一台计算机:

ENIAC(埃尼阿克) 于1946年2月14日在美国宣告诞生,长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元,计算速度是每秒5000次加法或400次乘法。

埃尼阿克

经过75年不间断的发展和创新,现在的计算机早已经没有了当初的笨重和昂贵,它们不但小巧精致,而且性能强悍。如果和埃尼阿克比的话,现在的家庭计算机的运算速度大概是埃尼阿克的几十亿甚至上百亿倍。

计算机的组成:

一台计算机由非常多的器件构成,如果说哪些器件可以算作计算机核心部件的话,那它们应该是

CPU 、GPU(显卡)、 主板 、 内存 、 硬盘

它们在很大程度上决定了一台计算机的性能。

当然,一个计算机的部件肯定不只这些,但是以上这几部分绝对是一台电脑最最核心的几个器件。话不多说,一个个认识一下。

CPU:

中文名又叫中央处理器,这个东西目前全世界通用的就两个牌子 Intel 和 AMD,且都是美帝企业。中国也有自己的 “龙芯”,只是性能上和上述两个品牌有不小的差距,中国芯片发展起步很早,也曾很受重视,但是因为一个汉芯事件让中国的芯片发展毫不客气的讲至少停摆了十年。可悲可叹。

汉芯事件 :2003年2月上海交通大学微电子学院院长陈进教授发明的“汉芯一号”造假,他买来进口芯片,磨去标识印上自己logo,造出了“汉芯一号”,并借助“汉芯一号”,陈进又申请了数十个科研项目,骗取了高达上亿元的科研基金。中国亟待在高新科技领域有所突破, 自主研发高性能芯片是我国科技界的一大梦想。陈进利用这种期盼,骗取了无数的资金和荣誉,使原本该给国人带来自豪感的“汉芯一号”,变成了一起让人瞠目结舌的重大科研造假事件。

intel处理器

amd处理器

中央处理器主要包括两个部分,即控制器、运算器,还有一些存储器比较重要。举个小例子简单说明这两个部分的作用:

算数式 : 99 x 100 + (25 -3 x 2) ÷ 2

控制器:先计算括号里的 3 x 2 ,在计算 25 - 6 ,然后再计算 ÷ 2 ······

运算器:3 x 2 = 6 、 25 - 6 = 19 ·······

存储器:读入要运算的数据,存储计算完的结果

可以简单理解为控制器控制流程,运算器负责计算。

如何判断一个cpu的好坏?

CPU有几个重要的参数:主频、核心、线程、缓存、架构

intel 10900K

以intel 目前最新第十代芯片10900K为例:

主频:就是图中的频率,1GHz代表cpu一秒钟能产生十亿个时钟频率,一次加法运算可能需要多个时钟频率,所以这个数越大代表cpu的运算速度越快。这里捎带说一下intel的cpu的后缀字母,尤其是装机的时候,一不小心就吃个大亏。

K :不锁倍频,可以超频来提升电脑的性能。

X :此款CPU是同一型号性能最强的。

F :与标准版的区别是去除了核显。

S :功耗降至65W的低功耗版桌面级CPU,和K相比,降低了功耗,相应的性能就会降低。

T :代表该处理器是功耗降至45W的节能版桌面级CPU,省电。

U :代表该处理器是低电压版移动处理器。多用于商务笔记本,为了省电,性能很差。

没有后缀的代表该处理器为标准版型号。

总结:

追求性能:X、K、KF(自己搭配显卡) 装机首选KF追求省电:S、T、U

笔者大学的笔记本CPU就是后缀U的,当时也不懂,后来使用中真的是一言难尽。任何情况下我都不推荐别人买后缀U的。真的渣渣。

核心/线程:

如上图中的cpu是10核心20线程。

核心:物理硬件上的运算单元数量,10核心代表有10个独立的运算单元,它们可以同时进行计算,而且频率不会降低,但是总的效率是小于 10 * 主频的。至于为什么,后面会

线程:线程是cpu调度的基本单位,好比如一个柜员(核心)管理两个窗口(线程),严格意义上来说,这个柜员在某一时刻只能在一个窗口服务,因为他肯定不会分身,但是只要他来回两个窗口之间切换的够快,对于办理业务的人来说他会觉得业务员一直在为自己服务。

总结:核心数和线程越多越好,但是比例一般都是 1 :2 ,比例变大,线程之间切换执行的开销就会成倍增长,而切换的过程是不执行任务的,也就是性能浪费,得不偿失。

缓存:

正常来说,内存存储着计算机运行时的所有数据,cpu从内存读取数据进行计算,计算完成后再写回到内存。早期的计算机确实也是这样的。

举例说明:

早期的时候,假设cpu的运算速度是100,内存的速度是50,虽然cpu快一点,但是差距能接受。后来cpu更新进步太快了,cpu的速度变成了100000,内存的速度才进步到500。

这时候人们发现不能让cpu直接和内存交互了,内存太慢了,内存读了1秒的数据,cpu 用了0.00001就计算完了,写回到内存用了1秒,一个任务用了2.00001秒,时间都用在内存的读写上了。

这时候缓存就诞生了,缓存的速度比内存快很多,几十上百倍的速度提升,那缓存是怎么提升性能的?缓存的数据也是来源于内存的,这不是又多了一次读写吗?

首先要明确缓存中存储的是什么数据,缓存中存储的是cpu最常用到的数据,假设现在cpu需要一个数据,首先查看缓存中有没有,如果没有从内存读取到缓存,再给到cpu进行计算,如果这个数据只用到这一次,那么这次计算的性能是 内存读取时间+缓存读取时间+查找数据时间,比之前单纯的内存读取还慢,但是如果cpu用到这个数据多次呢?数据已经加载到缓存了,cpu后续用到这个数据是不是就不需要内存读取了,加载一次,使用多次,使用的次数越多,性能提升就越大。

那缓存这么快为什么不用缓存替换内存呢?

缓存是集成在cpu上的,cpu的体积就决定了缓存不可能有太大的容量,另一个原因就是制造成本,缓存的制造成本是内存的很多倍。

现代cpu缓存一般分三级,分别是 L1、L2、L3。

L1的速度最快也最小,依次类推,L3容量最大速度也最慢,查找顺序也是先查找L1有没有cpu需要的数据,如果没有查L2,L2没有查L3,L3没有去内存加载。

如何确定哪些数据最常用?换句话说如何决定缓存里存储哪些数据?对于这个问题已经有很多成熟度的算法。

说一个很简答的思想:在一段时间内,按照使用次数进行排序,每次加载新数据淘汰前一段时间内使用次数最低的。

内存:

先放图:

金士顿内存条

内存条是干什么的?

简单来说内存是计算机运行时数据存放的地方,当我们鼠标双击打开某个软件的时候,这个软件运行时需要的数据就会从硬盘加载到内存,供cpu读取使用。内存是cpu和硬盘之间数据沟通的桥梁。

内存的好坏很大程度上影响着计算机的性能,确切的说是传输数据的性能。cpu是一台车,内存是马路,车的性能再好,也需要一条宽阔平坦的马路来发挥性能,所以计算机硬件需要互相搭配最适合才能发挥最佳性能。

示例图

内存重要的几个参数:

分享至:
小草

小草

专注人工智能、前沿科技领域报道,致力于为读者带来最新、最深度的科技资讯。

评论 (0)

当前用户头像