200513 计算导论与C语言基础 week2&3 笔记


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能够执行的一套指令的集合

指令

在这里插入图片描述

在这里插入图片描述

拓展

(了解,不要求掌握)
在这里插入图片描述

  1. 程序计数器PC
    保存着将要执行的下一个指令的地址。程序计数器会把这个地址放到地址寄存器中。地址寄存器的作用就是来缓存这个地址的
  2. 指令寄存器 IR
    是用来缓存从存储器中取出的指令的,指令寄存器会把它交给指令密码器,指令密码器的主要作用就是对指令的语意进行解析。根据解析的结果,交给操做控制器和逻辑产生器來产生相应的控制信号
  3. 地址存放器MAR
    存放要访问的主存地址

程序的执行

在这里插入图片描述

程序通过编译变成汇编代码,汇编代码仍然是CPU不能理解的。 再对汇编代码再次进行转换,把它转换为机器码。

示例

在这里插入图片描述

  • mov a,4 在数据区为变量a开辟一片区域,并赋值为4
  • mov eax,a
    eax通常代表运算器中的累加计算器
    把变量a的值传递给运算器的累加器
  • add eax,b
    要把运算器中累加器的值与变量b的值作一个相加,其结果存放在累加器中

示例小结

在这里插入图片描述

总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值