计算机基本科学

注:以下内容包括图片均截取自 Youtube Crash Course的视频,若有侵权请联系我

计算机发展历史

  1. 为了减少人类工作量,出现算盘
  2. 然后有了步进计算器(原理就是数个齿轮,每个有十个齿,表示0-9,每加到9时,再加1会到0,前面的齿轮+1,就像算盘,减法相反,乘除不过是多个加减),可以做加减乘除
  3. computer最开始是指计算的人,后来才指机器
  4. 因为计算机可以减少很多人力物力,然后计算机高速发展

电子计算机

机电

  1. 早期使用机械继电器连接电路, 比如控制马达,使齿轮+1(每秒50次)
  2. 缺点:因为是机械,所以有延迟,磨损。
  3. 要排除故障太费力,还会吸引臭虫(bug

热电子管(玻璃)

  1. 二极管(单向流动): 一极加热放出电子,另一极吸引正电子(电流);
  2. 三极管:在二极管的基础上加一个控制电极,施加正电允许电子流动,负电阻止电子流动(与继电器功能一样,断开和闭合电路,但没有磨损) 。
  3. 缺点:成本高, 会向灯泡一样被烧坏;

晶体管(固态)

  1. 中间是半导体,可以控制半导体的导电性来控制电流。
  2. 每秒10000次;
  3. 体积更小,因为是固体,所以相对于热电子管更经用;(现在晶体管的小于50nm,而一张纸的厚度是10,000nm,每秒几百万次,工作时间更耐久)
  4. 后来采用二进制进行计算

布尔逻辑和逻辑门

  1. 使用两种状态就可以表示所有东西了。
  2. 晶体管不仅可以开和关, 还可以让不同大小的电流通过,早期的计算机有三进制和五进制,但是进制越多越难区分信号(被干扰
  3. 早期数学已经开始研究二进制了,已经解决了所有运算法则(布尔代数

三个基本布尔操作

NOT:将布尔值反转

AND:有false则output为false(将晶体管串联实现)

OR:有true则为true

XOR:相同则为false;不同为true

寄存器和内存

因为使用ALU计算后的数值需要存起来,于是有了内存。

RAMRandom Access Memory随机存取存储器):

  • 只在通电时数据是保留的

锁存器

  • 可以记录一位信息
1 2

寄存器

  • 并排存放的一组锁存器

  • 寄存器能存一个数字,这个数字有多少位叫位宽

  • Memory

    • 因为要存更多数据,并排存放的话需要很多数据线,此时需要用矩阵

矩阵1

矩阵2

  • 那如何确定一个地址呢:

    • 使用“多路复用器(Multplexers)”

    • 原理(将行和列转化位8位二进制)

抽象化

256-bit-memory

256-byte-memory

可以将上面整体看成一个可寻址内存(RAM):

以上内存是一个静态内存SRAM,现在有DRAM等很多

ALU

在CPU里面,ALU主要负责计算和判断

算术单元(arithmetic)

负责加减

  • 半加器Half adder
    • 功能:输入两个bit,输出两个的和(SUM进位(CARRY
    • 实现:

  • 全加器Full adder
    • 功能:三个输入bit,同样输出sumcarry
    • 实现电路:

例子(8位行波进位加法器)

超出所表示位数表示“溢出”,后果很严重。

ps:现在使用超前进位加法器

逻辑单元(logic)

  • 用来执行一些逻辑操作,比如AND OR NOT等,还有判断是否为负数,是否为0等

抽象化:

自建CPU

组件

  • 需要RAM

  • 假设一个操作码(opcode

    前四位:

​ 后四位表示地址

  • 所需寄存器
    • 指令地址寄存器:追踪程序运行到哪里,存当前指令的内存地址
    • 指令寄存器:存当前指令
  • 启动计算机时,寄存器从0开始

CPU工作阶段

FETCH PHASE

  • 取指令阶段

  • 将指令地址寄存器连接到RAM,寄存器的值为0,RAM返回地址0的值

  • 将值给指令寄存器

DECODE PHASE

  • 解码阶段

  • 识别操作码电路

EXECUTE PHASE

  • 执行阶段

  • 操作码正确可以打开RAM的允许读取线
  • 这里说的是将地址14的数据放入寄存器A(RAM需要连接所有寄存器
  • 这个阶段完成,指令地址寄存器+1
作者

manu

发布于

2019-12-11

更新于

2023-01-06

许可协议

# 相关文章
  1.计算机概论
# 推荐文章
  1.ALTER
  2.数据库笔记
  3.微信小程序笔记
  4.动态调试-OD
  5.winPE结构
  6.git指令

:D 一言句子获取中...