Plus:计算机系统的基本概念
重要组件
一般的情形
和编程密切相关的计算机组件,不得不提的是这3件:
- 中央处理器(CPU)
- 内存(Memory/RAM)
- 硬盘(Hard Drive)
CPU:CPU的工作是进行计算,一般而言,考虑电脑运行多快,首先考虑的是CPU快不快。
内存:内存的任务是储存数据。物理上也是一块块芯片。作为储存介质,优点是速度飞快(虽然还不是最快的,CPU内部的缓存cache更快),缺点是容量相对较少,并且断电之后数据丢失。这种“快速、小容量、断电丢失数据”的储存装置,在手机的语境里可能称之为“运行内存”。
比如某些笔记本电脑,可能内存一般是8G或者16G;安卓手机比如红米K50是8G或者12G,iPhone 13是4G。老的实验室的教师机的内存是4G,学生机的内存是… 。
硬盘:硬盘的任务也是存储数据,和内存相对,优点是容量巨大,并且断电后数据依然保留, 但速度相对内存就会慢很多很多。这种“慢速、大容量、断电保留数据”的装置,在手机语境里可能称为“闪存”。
比如有些笔记本电脑,硬盘大概512G或者1T(1024G或者1000G,看算法);典型的安卓手机比如红米K50是128G或者256G,iPhone 13有64G版、128G版等等。
显然,内存适合短时间的,反复读写的数据。硬盘适合长时间、但不用反复读写的数据保存。
如果你看到“16G + 1T”或者“8G + 256G”,可以明白指的是什么。
手机的情形
手机的Soc(System on a Chip)有些特殊,会把cpu和gpu(图形处理器)和其他一系列组件,如内存控制器,5G模块等等整合到一个芯片中。比如高通的骁龙系列,苹果的A系列,刚刚上新闻的华为的麒麟9000s,都是Soc的名称。
因此,严格来说,手机的cpu,指的是Soc里面的cpu模块,比如骁龙8 Gen2的大核Cortex-X3,小核Cortex-A720等等。
苹果的M处理器
特别的,最近2年苹果电脑的M系列芯片,是从苹果手机的A系列芯片发展过来,因此M1、M2等其实也是一个集成了一堆东西的Soc。
3个硬件工作的基本概念
打个比方,你要做某样工作:
- 工作的时候,你就是cpu,你决定了工作的速度。
- 硬盘就像你的柜子,巨大能装,但拿东西不方便(比较慢)。
- 内存就像你的书桌,面积比较小,但你只能在上面工作。桌面的大小决定了你一次能干多少活。
工作时候:
- 你会把有关的材料,从柜子里拿到书桌上
- CPU把数据从硬盘里读到内存中,比如Load一个游戏,打开Word写文档。
- 你在书桌上开始你的工作
- CPU开始运算,比如计算游戏角色的血量,在Word里写了一段话
- 工作完毕,把工作的结果放回到柜子里
- CPU把信息从内存保存回到硬盘中。游戏和Word文档都要存盘。
- 然后清理桌面,留出空间给下一项工作。
- CPU把有关的内存空间释放,留给其他程序
机房的电脑
那么,为什么机房的电脑用起来那么慢?
CPU比较旧,更重要的,内存非常小。(可能只有4G,你的手机应该也有4G起步,8G不算大。)
你的书桌或者工作台,如果面积很小会如何?
你每次只能从柜子里拿出一点材料,处理一点,然后放回柜子,然后拿出其他材料到桌子上, 然后再处理,时间都花费反复地内存和硬盘转移数据之上,并且我们也知道硬盘本身非常慢, 比内存慢一个数量级。这就导致你用一个内存(手机的运行内存)很小的电脑或者手机,会觉得特别卡。
(注意:上述描述只是一个比喻,有兴趣的同学可以自行查阅电脑的运作原理。)