week 2 (略)
第一课
历史上的计算设备
从电子管到云计算
第二课
摩尔定律下的计算危机
量子计算机的基本原理
量子计算新成果简介+鼓励
🚩week 3 程序运行的基本原理
【问题引入】计算机怎么完成计算
思路整理
- 已经知道
电路是能完成计算的,所以,可以设计加法、减法、乘法…各种电路,用他们来完成各种类型的计算 - 所以,是不是可以:
- 需要完成什么计算,就动手设计相应的电路
- 设计好多个原子电路,需要的时候就把它们临时组装在一起(ENIAC)
冯诺伊曼式计算机
【问题引入】什么是存储程序式计算机(冯诺伊曼式计算机)?
【问题引入】命令是怎么被执行的?
每一行都是一条命令
假设 第一条命令 第一团为要做的事情(e.g. 相加) 后面是两个数
- 首先,在控制器里面有个很重要的东西叫做命令记录员,它的职责就是记录当前执行到哪条命令,接下来要执行哪条命令。
- 在命令记录员的指引之下,找到当前要执行的命令,并且把这条命令提取出来,放到控制器中的命令暂存处。
- 接下来,控制器里面的命令解释器就会对这个命令进行解释,看看它要做什么事情,然后把这个结果传递给控制信号产生器产生相应的控制信号(e.g. 两个数相加)
- 接下来在控制器的控制之下,把这两个数再从存储器中提取出来,分别放入到运算器的两个数据缓存区里
- 控制信号产生器产生一个信号告诉计算电路,做这两个数的加法,
CPU = 运算器+ 控制器 + 总线 + 存储器中的高速缓存(内存和外存不在)
存储器的种类与特点
度量单位
字节是我们在程序中能控制的最小的内存单位
存储器
存储器的原理与类型
存储器操作原理
【问题引入】存储器的原理是什么?为什么能存住数字?
👇这个线路图,它只用来存一位数据(1或者0)
- 三极管的特性:当两端是高电位的时候,则电路相通;低电位-断开
- 在这个电路中, T3、T4都是当电阻来用的。 因为在电路的制造里面,三极管制造是容易的,电阻有时候就使用一个三极管来代替。
- 我们假设A点此时为高电位,高电位表示1,B点是一个低电位,表示0。
为什么这个1或者0能够保持?- 我们观察一下这个电路。当A点是高电位的时候, 正好造成这个三极管的导通,所以,这个B点接地。 从而使B点很好地保持住低电位。 然而,由于B点是低电位,又造成A点下的三极管是截止的。 从而使A点很好地保持高电位。于是,就造成这样一种现象, 如果A点是高电位,就促使B点更好地保持低电位;如果B点是低电位,就促使A点更好地保持高电位。
- 于是,这个状态就被稳定下来。从而A点的高电位和B点的低电位能够很好地保持住。
使用多个这样的存储单元,我们就得到一个存储阵列
存储器的类型
【问题引入】存储器技术实现上的种类是什么?DDR是什么意思?
看上去SRAM更好一些, 但实际上DRAM具有更快的存取效率。 所以,我们的内存通常会使用DRAM类型的存储器来制造。
Flash EPROM 优盘的主要技术
内存
地址与数据单位
【问题引入】为什么32位的CPU最多只能配备4G内存?
32位CPU寻址空间的大小只能达到2的32次幂。32次幂恰好等于4G。 所以说,它最大只能管理4G。
这就好比说,北大的宿舍号码,宿舍房间的编排号最多只有三位。那北大的宿舍房间数量不会超过10的三次幂,也就是小于1000
CPU指令的执行
【问题引入】那是不是不管什么样的“程序”,CPU都能够识别并且执行呢?那如果不是,CPU能执行哪些程序呢? 然后这些程序的执行过程又是怎样的呢?
CPU的指令集
指令集: CPU能够执行的一套指令的集合
指令
拓展
(了解,不要求掌握)
- 程序计数器PC
保存着将要执行的下一个指令的地址。程序计数器会把这个地址放到地址寄存器中。地址寄存器的作用就是来缓存这个地址的- 指令寄存器 IR
是用来缓存从存储器中取出的指令的,指令寄存器会把它交给指令密码器,指令密码器的主要作用就是对指令的语意进行解析。根据解析的结果,交给操做控制器和逻辑产生器來产生相应的控制信号- 地址存放器MAR
存放要访问的主存地址
程序的执行
程序通过编译变成汇编代码,汇编代码仍然是CPU不能理解的。 再对汇编代码再次进行转换,把它转换为机器码。
示例
- mov a,4 在数据区为变量a开辟一片区域,并赋值为4
- mov eax,a
eax通常代表运算器中的累加计算器
把变量a的值传递给运算器的累加器- add eax,b
要把运算器中累加器的值与变量b的值作一个相加,其结果存放在累加器中