鸟叔的Linux私房菜 0x00计算机概论学习笔记

论坛 期权论坛 脚本     
已经匿名di用户   2022-7-2 22:16   3913   0

0x00_1 计算机:辅助人脑的好工具

我们生活中随处可见各种各样的计算机,包括ATM机,GPS,笔记本,台式电脑等等。那么计算机的定义是什么?

计算机其实是:接受用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或储存有用的信息。如图所示


因此,只有要输入设备以及输出设备,让你可以输入数据并使该机器产生信息,那么它就是一台计算机了。

0x00_1.1计算机硬件的五大单元
  • 输入单元:包括键盘、鼠标、卡片阅读机、手写板等等;
  • 中央处理器(CPU):含有算术逻辑、控制、记忆等单元;
  • 输出单元:例如屏幕、打印机等等。

中央处理器(CPU)是一个具有特定功能的芯片,里面含有微指令集,CPU内含有两个主要的单元,如图。

五大单元的相关性如图所示(注:主记忆体为内存)

其中,CPU实际要处理的命令全部来自于内存。特别注意实线部分的传输方向,基本上数据都是流经内存再转出去。

0x00_1.2CPU的种类

两种主要的CPU种类:精简指令集(RISC)和复杂指令集(CISC)系统。(我们所用的软件都必须通过CPU中的指令集来实现)

  • 精简指令集(Reduced Instruction Set Computing,RISC)

  1. 这种CPU设计中,微指令集较为精简,每个指令的执行时间都很短,完整的操作也很单纯,指令的执行能较佳;但是要做复杂的事情,往往需要多个指令集。
  2. 这种CPU设计往往应用于学术领域的大型工作站中,包括银行金融等领域中。但我们的手机,电脑、以及交换机等等,都基本上采用的ARM结构.

  • 复杂指令集(Complex Instruction Set Computer,CISC)

  1. 与RISC不同的是,在CISC的指令集中,每个小指令可以执行一些较低的硬件操作,指令数目多而且复杂,每条指令长度并不相同。正因为如此,每条指令执行可以处理的工作都十分的丰富,即使花费的时间较长。该类型主要用于Intel、AMD、VIA等x86架构的CPU上。
  2. 由于x86架构广泛应用于个人计算机,因此,个人计算机常被称为x86架构的计算机。x86是怎么来的?这是因为Intel最早开发的是CPU代号为8086,而且后来开发的架构有80286,80386,因此x86就这样称呼过来了。(原来是这样。。)
  3. 2003年,Intel将x86架构的CPU由8位升到了16、32位
  4. 不同x86CPU架构的CPU主要在于微指令集不同。越先进的指令集,不仅可以加速多媒体的运行,提高虚拟化的性能(应该是虚拟机吧?)而且还可以提高能源利用率(节电!)。
0x00_1.3接口设备

没啥好说的,就主要是三个:储存设备,显示设备,网络设备。

0x00_1.4运作流程(一张图的事。。)


0x00_1.5计算机分类

  • 超级计算机(Supercomputer)
  • 大型计算机(Mainframe Computer)
  • 迷你计算机(Minicomputer)
  • 工作站(Workstation)
  • 微电脑(Microcomputer)

(百度一下,你就知道大笑大笑

0x00_1.6计算机上面常用的计算单位(大小,速度等)

  1. 大小单位
  • 计算机依有没有通电来记录信息,所以理论上它叧认识 0与1 而已。0/1 癿单位我们称为 bit。但bit实在太小了, 并且在储存数据时每份简单的数据都会使用到8个bit的大小来记录,因此定义出byte这个单位,他们的关系为:
  • 1Byte = 8bit
  • 不过同样的,Byte 还是太小了,在较大的容量情况下,使用 byte 相当不容易判断数据的大小,举例来说,1000000B这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单位表示法,例如 K 代表 1024,M 代表 1024K 等。 而这些单位在不同的单位制下有不同的数值表示,底下就列出常见的单位与进位制对应表:

进位制KMGTP
二进制10241024K1024M1024G1024T
十进制10001000K1000M1000G1000T
  • 一般来说,文件大小使用的是二进制的方式,所以 1 GBytes 的文件大小实际上为:1024x1024x1024Bytes 这么大! 速度单位则常使用十进制,例如 1GHz 就是 1000x1000x1000 Hz 的意思。

2.速度单位

  • CPU 的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一。而在网络传输方面,由亍网络使用的是 bit 为单位,因此网络常使用的单位为 Mbps 是 Mbits/s,亦即是每秒多少 Mbit。举例来说,大家常听到的 8M/1M ADSL 传输速度,如果转成文件容量的 byte 时,其实理论最大传输值为:1Mbyte/s 125Kbyte/s 的上传/下载速度。

0x00_2 个人计算机架构与接口设备

我们来看看主板上最重要的芯片组

芯片组通常分为两个桥接器来控制各组件的通信分别是:

(1)北桥负责连接速度较快的CPU、内存与显卡等组件

(2)南桥负责连接速度较慢的周边接口,包括硬盘、USB、网卡等

但是AMD,Intel两大厂商的CPU架构并不相同。

1、Intel

2、AMD

AMD与Intel芯片组不同的地方在于,内存直接与CPU通信而不通过北桥。而且,AMD为了加速CPU于内存直接的通信,将内存控制组件集成到CPU中。(当然不能通过主板上是否存在北桥而来判断主板使用的芯片组是AMD还是Intel)

0x00_2.1CPU

我们常听说多核CPU,那么多核走中的核是指什么呢?核,其实是指运算内核,所以多核也就意味着CPU封装当中嵌入了两个以上的运算内核

  不同的CPU有不同的脚位(也就是插脚),如图


CPU的频率是指CPU每秒钟可以进行的工作次数。频率越高表示CPU在单位时间内可以做更多的事情。

e.g Intel的Core 2 Due型号E8400的CPU频率为3.0GHz,表示这个CPU在一秒内可以进行3.0*10^9次工作

  • CPU的“外频”与“倍频”

外频是指CPU与外部组件进行数据传输/运算时的速度,倍频则是CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率

(很多人听说过“超频”,其实超频是指将CPU的倍频或者是外频通过主板的设定功能更改成较高频率的一种方式。但因为CPU的倍频在出厂时已经锁定而无法修改,所以较常被超频的是外频)

  • 32位与64位

  1. 前面谈到CPU运算癿数据都是由内存提供的,内存与CPU的通信速度靠的是外部频率, 那么每次工作可以传送的数据量有多大呢?那就是总线的功能了。一般主板芯片组有分北桥与南桥,北桥的总线称为系统总线,因为是内存传输的主要信道,所以速度较快。 南桥就是所谓的输入输出(I/O) 总线,主要在联系硬盘、USB、网卡等接口设备。
  2. 北桥所支持的频率我们称为前端总线速度(Front Side Bus,FSB),而每次传送的位数则是总线的宽度。那么总线的频宽则是 FSB X 总线宽度 ,即每秒钟可传输的最大数据量目前常见的总线宽度有32/64位
  3. 与总线宽度相似,CPU每次能够处理的数据量称为字组大小(word size),字组大小依据CPU的设计32位与64位。所以现在所称的计算机是32位或64位主要依据COU解析的字组大小而来的。早期的32位CPU能够解析的数据量有限,所以导致32位的CPU最多只能支持最大到4GB的内存。(字组大小可以与总线宽度不相同举例来说,在Pentium Pro时代,该CPU是32位的处理器, 但当时的芯片组可以设计出64位癿总线宽度。在这样的架构下我们通常还是以CPU的字组大小来称呼该架构。 个人计算机的64位CPU是到2003 年由AMD Athlon64后才出现的)

  • CPU等级

  1. 由于x86架构的CPU在Intel的Pentium系列(1993年)后就有不统一的脚位与设计,为了将不同种类的CPU规范等级, 所以就有i386,i586,i686等名词出现了。基本上,在Intel Pentium MMX不 AMD K6年代癿CPU称为i586等级,而Intel Celeron与AMD Athlon(K7)年代之后的32位CPU 就称为i686等级。 至于目前的64位CPU则统称为x86_64等级。
  2. 目前很多的程序都有对CPU做优化的设计,万一哪天你发现一些程序是注明给686的CPU使用时, 就不要将他安装在586以下等级的计算机中,否则可是会无法执行该软件的!不过,在686倒是可以安装386的软件。也就是说,这些东西具有向下兼容的能力

0x00_2.2 内存

CPU读取的数据都来自于内存。个人计算机的内存主要组件为动态随机存取内存(Dynamic Random Access Memory, DRAM), 随机访问内存只有在通电时才能记录与使用,断电后数据就消失了。因此我们也称这种RAM为挥发性内存。 (大概闪存就是这样来的吧?)

未完,待续

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP