1.2.1 CPU、存储设备
计算机中,CPU主要负责执行指令,存储设备则用来存储。
CPU
Learning By Reading 难度:★★★ 重要性:★★★
CPU有哪些部分组成?
一个典型的CPU有算术逻辑单元,寄存器和控制单元,算术逻辑单元(ALU)用来执行具体的指令,比如基本的数学计算(加减乘除等)、读写数据; “知道下一条指令是什么”由控制单元(Control unit)完成(CU还有其他功能),大多数时候指令是按照从前到后的顺序执行的, 但有时候,我们会希望突然跳到某条指令上。 寄存器(Register)是一种存储设备,它们数量比较少,64位计算机中每一个寄存器可以存8字节。 每个寄存器都有自己的名字,在x86中,它们叫
AX
,BX
,……在ARM中,它们叫R0
,R1
,……阅读了解CPU的基本组成
我们将通过实际的例子了解CPU的指令都能实现哪些功能。
不同厂商不同型号的CPU在设计和实现上差异较大。目前最常见的CPU架构是ARM和x86。
Learning By Reading 难度:★★★★ 重要性:★
在看看ARM和x86之前,我们先来了解一种比较简单,因而在教学中经常使用的指令集
MIPS。
Learning By Reading 难度:★★★★ 重要性:★
Learning By Reading 难度:★★★★ 重要性:★
Learning By Reading 难度:★ 重要性:★
阅读材料,了解ARM和x86之间的优劣比较。
存储设备
存储设备有很多种,从经常听到的“U盘”、“硬盘”、“内存”到相对较少听讲的“高速缓存”、“寄存器”,它们都是有不同使用场景的存储设备。
Learning By Reading 难度:★ 重要性:★★
了解不同存储设备。
内存是CPU可以直接寻址的存储空间,用来存储数据和指令供CPU使用,完成人类大脑的“记忆”功能。 比如要计算5+6
,计算机要存储:
数据
数字5,存放在地址A
数字6,存放在地址B
计算结果,数字11,存放在地址C
指令
指令“把地址A中存放的数字和地址B中存放的数字相加并存放在地址C中
注:这里只是举例,实际上需要用到更多的指令来完成这个任务。
需要注意的是,计算出来的结果也需要存储在某个地方。人类 用大脑进行计算的时候,其实也会存储(记住)这个结果,只是我们一般不去注意。
数据以多种多样的形式存在,它们在存储器中存储的方式可能也不同。
Learning By Reading 难度:★★★ 重要性:★★
Learning By Thinking 难度:★★★★★ 重要性:★
查阅助教以及ARM、x86指令集,说一说
5+6
需要用到哪些指令?
衡量包括内存在内的存储器有两个重要的指标:速度和大小 。速度越快价格越高,大小越大价格也越高,这是显而易见的。 出于价格的考虑,两者之间需要权衡。 现代计算机中通常有不同速度的存储器,包括寄存器(Register)、高速缓存(Cache)、随机存取存储器(Random-access memory,RAM)。 从前到后越来越慢、越来越大。
作为一个比方,草稿纸可以看作存储设备。同样,人脑也是。人脑速度快、容量小;草稿纸速度慢、容量大。
Learning By Reading 难度:★ 重要性:★
阅读材料,了解内存、cache和寄存器之间的关系及区别
Learning By Reading 难度:★★★ 重要性:★★
当需要数据的时候,计算机会先去高速的存储器中寻找,找不到的时候再去低速的存储器中寻找, 并把这部分数据载入到高速的存储器中。在很多情况下,一段数据被使用之后在未来短时间内会再次被使用,因此, 这种方法通常能节省大量时间。而这种特性叫做“时间局部性(Temporal locality)”。 除此之外,还有空间局部性(Spatial locality)等局部性原理(Principle of locality)保证代码高效运行。
分支局部性:
里面牵涉到具体的代码现在可能看不懂,但学习完之后请回头再来看这部分。
Last updated