计算硬件知识整理
电脑的组成
电脑的五大单元包括:输入单元、输出单元、控制单元、算数逻辑单元、存储单元五大部分。其中 CPU 占有控制、算术逻辑单元,存储单元又包含内存与辅助内存;
Linux 中所有的硬件设备文件都会在 /dev
这个目录内
下面列出几个常见的设备与其在 Linux 当中的文件名啰:
设备 | 设备在Linux内的文件名 |
---|---|
无限数据接收设备,相当于黑洞 | /dev/null |
SCSI/SATA/USB硬盘机 | /dev/sd[a-p] |
本地回环设备 | /dev/loop[0-7] |
虚拟终端 | /dev/tty[0-63] |
串口 | /dev/ttyS[0-3] |
硬盘设备
如果 PC 上面有两个 SATA 磁盘以及一个 USB 磁盘,而主板上面有六个 SATA 的插槽。这两个 SATA 磁盘分别安插在主板上的 SATA1, SATA5 插槽上, 请问这三个磁盘在 Linux 中的设备文件名为何?
答:由于是使用侦测到的顺序来决定设备文件名,并非与实际插槽代号有关,因此设备的文件名如下:
- SATA1插槽上的文件名:/dev/sda
- SATA5插槽上的文件名:/dev/sdb
- USB磁盘(开机完成后才被系统捉到):/dev/sdc
Tip: SATA,全称Serial Advanced Technology Attachment,又叫串口硬盘,是将主机总线适配器连接到硬盘的总线接口。SATA 是硬盘接口的标准规范,也是目前应用最多的硬盘接口,从最初的 SATA 1.0 进化如今的 SATA 3.0 ,普通 2.5 英寸 SSD 以及 HDD 硬盘都使用这种接口,理论传输带宽 6Gbps,其最大的优势就是成熟,兼容的设备多,普及程度也比较高。
而这里 sdb 后面跟的数字是什么呢?
后面的数字表示设备上的分区,而这个分区是主分区,一般都会挂载着某个目录
上图中假设我的硬盘分为两个分区,partition 1是挂载到根目录,至于partition 2则是挂载到 /home 这个目录。所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下; 也就是说,进入该目录就可以读取该分区的意思。
CPU 基础知识
CPU 的运算速度常使用 MHz 或者是 GHz 之类的单位,这个 Hz 其实就是秒分之一。Hz 是时钟频率单位,叫赫兹(Hertz),是 CPU 运算时的工作的频率(1 秒内发生的同步脉冲数)的简称,CPU 使用的是 GHz,GigaHertz,对于 CPU 和 GPU 来说,越高的时钟频率对应越高的性能以及更高的耗电量和更多的发热量。
一般而言,制造工艺的纳米数越小,能量的使用效率越高。
那一般的 CPU 是多少 HZ 呢?如下图所示
不过这个频率并非定死的,现在 Intel 的 CPU 会自动超频与降频,如果有大量运算会自动的超频,反之会自动降频借此达到节能省电的目的
ARM 和 X86 架构
CPU 依设计理念主要分为:精简指令集(RISC)与复杂指令集(CISC)系统;
X86:复杂指令集(CISC:Complex Instruction Set Computer) ARM:精简指令集(RISC:Reduced Instruction Set Computer)
X86指令集中的指令是复杂的,一条很长指令就可以很多功能,而 ARM 指令集的指令是很精简的,需要几条精简的短指令完成很多功能。
X86 的方向是高性能方向,因为它追求一条指令完成很多功能,而 ARM 的方向是面向低功耗,要求指令尽可能精简。目前 X86 的市场主要是 PC 和服务器,因为需要高性能。ARM 的市场主要是手机和平板,因为需要低功耗。
- Intel i7处理器平均发热率为45瓦。
- 基于 ARM 的片上系统(其中包括图形处理器)的发热率最大瞬间峰值大约是3瓦
64 位和 32 位
所谓的位指的是 CPU 一次数据读取的最大量!64 位 CPU 代表 CPU 一次可以读写 64bits 这么多的数据,32 位 CPU 则是 CPU 一次只能读取 32 位的意思。 因为 CPU 读取数据量有限制,因此能够从内存中读写的数据也就有所限制。所以,一般 32 位的 CPU 所能读写的最大数据量,大概就是 4GB 左右。
内存 RAM
随机存取存储器(英语:Random Access Memory,缩写:RAM)是与 CPU 直接交换数据的内部存储器。
不论是软件程序还是数据,都必须要读入内存后 CPU 才能使用。个人电脑的内存主要元件为动态随机存取内存(Dynamic Random Access Memory, DRAM), 随机存取内存只有在通电时才能记录与使用,断电后数据就消失了。因此也称这种 RAM 为挥发性内存。
DRAM 根据技术的更新又分好几代,而使用上较广泛的有所谓的 SDRAM 与 DDR SDRAM 两种。这个 DDR 是所谓的双倍数据传送速度(Double Data Rate), 他可以在一次工作周期中进行两次数据的传送
# 检查内存型号
$ sudo dmidecode -t memory
速度如下
SDRAM/DDR | 型号 | 数据宽度(bit) | 内部频率(MHz) | 频率速度 | 带宽(频率x宽度) |
---|---|---|---|---|---|
SDRAM | PC100 | 64 | 100 | 100 | 800MBytes/sec |
SDRAM | PC133 | 64 | 133 | 133 | 1064MBytes/sec |
DDR | DDR-266 | 64 | 133 | 266 | 2.1GBytes/sec |
DDR | DDR-400 | 64 | 200 | 400 | 3.2GBytes/sec |
DDR | DDR2-800 | 64 | 200 | 800 | 6.4GBytes/sec |
DDR | DDR3-1600 | 64 | 200 | 1600 | 12.8GBytes/sec |