20210221计算机科学速成课40集(1-10)

B站链接

  1. 计算机早期历史:算盘、机械计算机、负责计算的人(computer)
  2. 电子计算机:纸带打孔计算机(IBM)、电子管计算机、晶体管计算机
  3. 布尔逻辑和逻辑门:NOT、AND、OR、XOR(两个输入相同输出0,不同输出1)
  4. 二进制:也曾有过3进制、5进制,2进制优势是只检测高低电平不易被干扰,稳定
  5. 算术逻辑单元:ALU。半加器输入A、B,输出SUM和进位CARRY。全加器输入A、B、进位C,输出SUM和CARRY。
  6. 寄存器&内存:SR锁存器、减少输入输出针脚采用矩阵排列、寻址。随机访问存储RAM。
  7. 中央处理器CPU:Instructions指令。指令包含操作码(前几位)和地址码(后几位)。指令地址寄存器instruction address register用来追踪程序运行到了哪里,通常接入时钟信号,来存储当前指令的内存地址。指令寄存器instruction register,存储当前指令。启动计算机,CPU开始运行时,所有寄存器从0000 0000开始。第一阶段,取指令阶段,首先将指令地址寄存器连接RAM,指令地址寄存器的值为0,因此返回RAM中地址0的数据,该数据(如0010 1110)会复制到指令寄存器,这样就拿到指令了。第二阶段,解码阶段decode phase,前四位0010是LOAD_A指令,该指令的意思是将RAM中某地址的值放入寄存器A,后四位1110是RAM地址,解码阶段指令寄存器要通过逻辑电路确定0010指令是0010指令。第三阶段,执行阶段execute phase,用检查是否是LOAD_A指令的电路可以打开RAM“允许读取线”,拿到RAM中1110地址的值,假设RAM地址1110的值是0000 0011,同时“检查是否是LOAD_A指令的电路”启用寄存器A的“允许写入线”,这样就把RAM中地址1110的值0000 0011写入寄存器A中了。第四阶段,指令执行完成,指令地址寄存器根据时钟信号+1,执行阶段结束,关掉所有线路,去拿下一条指令。CPU包含寄存器单元(数据寄存器)、控制单元(指令寄存器、指令地址寄存器)、算术单元、逻辑运算单元。CPU控制电路是指令集的实例化。简单来说,控制单元读取RAM中控制指令,利用其电路实现对RAM、CPU寄存器读取、写入的控制(允许读取、允许写入)以及地址(寄存器地址、RAM地址)、数据(寄存器、RAM相应地址中的值)的传输,以及对ALU算术单元运算的控制。超频,就是提高时钟频率,但会带来功耗增加。降频也很必要,减少功耗。
  8. 指令和程序:JUMP跳转、HALT(停止)指令。条件JUMP,如JUMP_NEG如果结果负数时JUMP。视频中列举了一个算余数的程序,是通过循环减法来模拟除法,通过条件JUMP来得到余数的。ALU没有除法的功能,但是程序program可以实现。计算机的32位64位指的是指令长度instruction_lenth,上文是以4位指令举例。可变指令长度variable lenth instructions。第一个集成CPU英特尔4004指令集包含46个指令,现代CPU如酷睿i7包含上千个指令和指令变种,长度从1到15个字节,光ADD指令就有很多变种,指令越来越多,是因为给CPU设计的功能越来越多。
  9. 高级CPU设计:早起计算机的提速方式是减少晶体管切换时间。现代CPU发明了各种新技术提升性能,不但让简单指令运行更快也让它能进行更加复杂运算。(1)早期计算机做除法使用减法循环,直至输出负数或0停止,现代计算机直接给CPU设计了除法,可以直接给ALU除法指令。(2)现代处理器越来越复杂,需要不断在复杂-速度之间平衡。比如有专门电路来处理图形操作、解码压缩视频、加密文档等等,如果用标准操作来实现,需要许多时钟周期。比如支持MMX、3DNOW、SSE的CPU,它们有额外电路做相关复杂操作。(3)指令集越来越大,越来越复杂。(4)时钟速度高,RAM无法匹配,因此采用缓存CACHE技术,先读取一段内存到CPU中。如果想要的数据在缓存中,叫做缓存命中CACHE HIT;如果不在叫做缓存未命中CACHE MISS。缓存也可以当做临时空间,储存一些中间值,适合长、复杂运算。(5)另一种提升性能的方法:指令流instruction pipelining。并行处理parallelize。并行处理会引发指令之间依赖问题、跳转指令问题,因此现代CPU设计时通过复杂的电路,实现对有依赖的指令动态排序(乱序执行out-of-order execute),以及分支预测(准确率90%以上)。理想情况流水线1个时钟周期完成1个指令,而超标量处理器superscalar processor 1个时钟周期完成多个指令。(6)多核,同时运行多个指令流。
    10.早期的编程方式: 插线板编程、冯诺依曼结构打孔纸卡输入编程、面板(开关)编程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值