---------------------------------------------------------------------------------------------------------------------------------
声明 ①极简
②可能有误
③持续更新中
---------------------------------------------------------------------------------------------------------------------------------
一、计系
1.1、计的发展
纸条编程,有孔-0,无孔-1
计算机系统=硬件+软件
软件
①系统软件,管理整个计系
②应用软件,按需编的各种程序
硬件的发展
①电子管
②晶体管
③中小规模集成电路
④(超)大规模集成电路
1.2、计系统层次结构
1,硬件
硬件的基本组成
①早期冯诺依曼机的结构
②现代计算机的结构
存储程序(冯首次提出)
将指令,以二进制代码的形式,事先输入计的主存储器,然后按其首地址,执行程序的第一条指令,然后按该程序的规定顺序,执行其他指令,直至程序结束
早期冯诺依曼机
1️⃣软件
数据+程序
2️⃣硬件①输入设备,把信息转换成,机器能识别的形式
②存储器,存数据+程序
③运算器,算术运算+逻辑运算
④控制器,指挥程序运行
⑤输出设备,把结果转换成,人熟悉的形式
计系中,软件和硬件,在逻辑上等效
冯——特点
①计算机,由五大部件组成
②指令和数据,以同等地位存于存储器,可按地址寻访
③指令和数据,用二进制表示
④指令,由操作码和地址码组成
⑤存储程序
⑥以运算器为中心(⇒低效)
现——特点
①以存储器为中心
②CPU=运算器+控制器
2,主存储器
存储体,按地址存数据
MAR位数,反映存储单元的个数
MDR位数=存储字长··
MAR=4位⇒总共有2⁴个存储单元
MDR=16位⇒ 每个存储单元可存放16bit
1个字 (word)= 16bit
1个字节(Byte)= 8bit
1B=1个字节
1b=1个bit
存储体——内部概念
存储单元:存一串二进制代码
(每个地址,对应一个存储单元)
存储单元中
①存储字(word):二进制代码的组合
②存储字长:二进制代码的位数
存储元:存二进制的电子元件,1存储元可存 1bit
3,运算器
运算器
算术运算(+-*/)
逻辑运算(与或非)
运算器——组成
1️⃣ACC,累加器
①存操作数
②存运算结果
2️⃣MQ,乘商寄存器,*/时①存操作数
②存运算结果
(3)X,通用的操作数寄存器存操作数
(4)ALU,算术逻辑单元(最贵)通过电路,算数运算+逻辑运算
4,控制器
控制器——基本组成
①CU:控制单元,分析指令
②IR:指令寄存器,存当前指令
③PC:程序计数器,存放下一指令的地址,能自动+1
完成一条指令——步骤
①取指令 PC——取指
②分析指令 IR——取指
③执行指令 CU——执行
计——工作过程
必经步骤
①(PC) —> MAR
②M(MAR) —> MDR
③(MDR) —> IR
④取指令结束 (PC)+1 —> PC
⑤OP(IR) —> CU
⑥分析指令结束
可能步骤
①Ad(IR) —> MAR
②M(MAR) —> MDR
③(MDR) —> ACC
④执行指令结束
CPU区分指令和数据:指令周期的不同阶段
现在的计算机,把MAR、MDR也集成在CPU
5,计软
计软——种类
①应用软件,为了解决某问题,而编制的程序
②系统软件,管理硬件资源,并向上层应用程序提供基础服务
语言
①高级语言:C/C++、Java、Python
②汇编语言:助记符
③机器语言:二进制代码
高语——>机语
翻译程序
①编译器(一下全部翻译)
②汇编器
③解释器(同步翻译)
软件和硬件的逻辑功能等价,同一功能
①可用硬件实现(性能高成本高)
②可用软件实现(性能低成本低)
指令集体系结构(ISA),软件和硬件之间的界面
设计系的ISA,需要定义
①一台计,可支持哪些指令
②每条指令的作用
③每条指令的用法
6,计系
计——层次结构
软件
M4,高语机器⇒执行高语
M3,汇语机器⇒执行汇语
M2,OS机器⇒向上提供广义指令
硬件
M1,传统机器⇒执行机语指令
M0,微程序机器⇒执行微指令
计系——工作原理
1.3、计的性能指标
MAR位数,存储单元最多有多少个
MDR位数=存储字长=每个存储单元的大小
总容量=存储单元个数×存储字长 bit
总容量=存储单元个数×存储字长/8 Byte
总容量——例题
MAR=32位
MDR=8位
总容量=2^32 * 8 bit = 4GB
CPU——性能指标
数据通路带宽(路有多宽)
数据总线一次,所能并行传送信息的位数
吞吐量(淘宝能收多少信息)
指系统,在单位时间内处理请求的数量
响应时间
①人向计,发送1请求
②系统对该请求,做响应
③人获得结果
的等待时间
基准程序(跑分软件)
测量计处理速度的一种实用程序
数量单位
二、数据的表示和运算
2.1、数制与编码
1,无符号数
定点数,小数点的位置固定 Eg:9.007 ——常规计数
浮点数,小数点的位置不固定 Eg:9.96*10² ——科学计数法
无符号数——定义
整个机器字长的全部二进制位,all为数值位,没有符号位,=|数|
(只有无符号整数,没有无符号小数)
无符号数——范围
位数=n,范围∈[0,2ⁿ-1]
2,有符号数
真值——范围
若机器字长=n+1,真值∈[0,2ⁿ⁺¹-1]
(原因,真值有+0和-0)
真值
①+0,原码=0,0000000
②-0, 原码=1,0000000
原码
原码——定义
①符号位,0+,1-
②数值位(尾数),=|真值|
原码——写法
例1,-19
一般,[x]原 =1,0010011
机器字长未知,[x]原 =1, 10011例2,-0.75
[x]原 = 1.1100000
原码——范围
若机器字长=n+1
①原码整数∈[-(2ⁿ-1),2ⁿ-1]
②原码小数∈[-(1-2⁻ⁿ),1-2⁻ⁿ]
原码——缺
①符号位,不能运算
②解决①,贵
补码
补码的真值,只有一种,全0
[+0]补= [-0]补= 00000000
补码——范围(多出一个)
①补码整数,∈[-2ⁿ,2ⁿ-1]
②补码小数,∈[-1,1-2⁻ⁿ]
补码——作用
减变加,省硬件成本
移码
移码——定义
补码的符号位取反
(只能表示整数)
移码——范围
①移码整数,∈[-2ⁿ,2ⁿ-1]
②移码小数,∈[-1,1-2⁻ⁿ]
移码——作用
便于对比大小
转换
原——>补
1️⃣正数
原=反=补
2️⃣负数
法一,机算
①原,符号位不变,数值位取反⇒反
②反,末位+1⇒补
法二,手算
①找最右1
②1,左边,数值位取反
,右边,不变
补——>原
1️⃣正数
补=原
2️⃣负数
法一
①数值位取反
②末位+1
法二
①找最右1
②1,左边,数值位取反
,右边,不变
补——>-补
①符号位,数值位取反
②末位+1
3,进制
r进制,逢r进1(其基数=r)
基数,每个数码位所用到的不同符号的个数
二进制——最适用于计的原因
①可用两个稳定状态的物理器件表示
②0-假,1-真,便于逻辑运算
③便于逻辑门电路,实现算术运算
十—>二
1️⃣算
①整数——除基取余
②小数——乘基取整(∞小数,二进制不能精确表示)
2️⃣拼凑法
十—>八
1️⃣直接转
①整数——除基取余
②小数——乘基取整
2️⃣十—>二—>八
①十—>二,①整数——除基取余
②小数——乘基取整
②二—>八
3️⃣十—>二—>八
①十—>二,拼凑法
②二—>八
引入BCD码——原因
①十—>二,麻烦
②快速转,一一对应
十—>8421
1️⃣手算
①十+
②十—>8421
2️⃣机算
①8241+
②若超过1010~1111(10~15),+0110(6)
映射关系
①8421
②余3码
③2421
2.2、运算方法和运算电路
0,逻辑门电路
逻辑门电路——图
异或——作用
①奇个 1,异或结果=1
②偶个 1,异或结果=0
逻辑运算——公式
逻辑运算——优先级
①非>与>或
②()优先级,更高
1,多路选择器
多路选择器——作用
①电路守门员
②多输入,just通过1个
多路选择器——图
2,三态门
三态门——作用
①电路守门员
②根据op,决定是否通过输入
三态门——图
三态门和非门——区别
三态门
①输入
②输出
③控制信号
非门
①输入
②输出
3,加法器
一位全加器
(支持1bit加法)
nbit加法器
没封装的
封装的
nbit加法器——缺
进位信息串行,计算V慢
nbit加法器——缺原因
①V=V进位产生+V传递
②位数越多,V越慢
③电信号稳态耗时,V进位产生有延迟
④串行进位/行波进位,进位信号逐级形成(多米诺骨牌)
nbit加法器——别称
①两个输入端,允许并行输入⇒并行加法器
②进位信息,串行产生⇒串行进位加法器
③综上,串行进位的并行加法器
并行进位的并行加法器
all进位信息,同时产生,几乎无延迟
nbit加法器——标志位
①OF(Overflow Flag)溢出标志
判,带符号数+-,是否溢出
OF=1,溢出
OF=0,未溢出
②SF(Sign Flag)符号标志
判,带符号数+-,结果的正负性
SF=1,=负
SF=0,=正
③ZF(Zero Flag)零标志
判,+-,结果是否为0
ZF=1,=0
ZF=0,≠0
④CF(Carry Flag)进位/借位标志
判,无符号数+-,是否溢出
CF=1,溢出
CF=0,未溢出
标志位——公式
① 最高位的进位⊕次高位的进位
② 符号位
③ bit 全0,ZF=1
④
4,算术逻辑单元ALU
CPU——图
运算器——核心=ALU
ALU——核心=加法器
ALU——功能
①算术运算,+-*/
②逻辑运算,与、或、非、同或、移位
③求补码
④求直送
ALU——图
5,算术移位
注
由于原、反、补码位数有限,算术移位,不能精确等效×、÷
补充
移位不用记这么多东西,看我标蓝的
(服了哈哈哈哈哈哈哈,白看了这么多移位)
定点整数
①有符号整数,补码
②无符号整数,无符号数
定点数的移位
①算术移位,补码
②逻辑移位,无符号数
(移位运算,计不区分算术还是逻辑,由数据类型决定)
算术移位——原码
原码——移位原理
①符号位不变
②移数值位
原码——右移
①高位补0
②低位舍弃,若舍=0,等价于÷2
舍≠0,丢精度
原码——左移
①低位补0
②高位舍弃,若舍=0,等价于X2
舍≠0,大误差
算术移位——反码
正数的反码——移位=原码
+数的反码——右移
①高位补0
②低位舍弃
+数的反码——左移
①低位补0
②高位舍弃
-数的反码——右移
①高位补1
②低位舍弃
-数的反码——左移
①低位补1
②高位舍弃
算术移位——补码
+数的补码——移位=原码
+数的补码——右移
①高位补0
②低位舍弃
+数的补码——左移
①低位补0
②高位舍弃
-数的补码——右移=反
①高位补1
②低位舍弃
-数的补码——左移=原
①低位补0
②高位舍弃
6,逻辑移位
逻辑移位=无符号数的算术移位
逻辑右移
①高位补0
②低位舍
逻辑左移
①低位补0
②高位舍
逻辑移位——应用
用3B,存RGB
循环移位
带进位位CF,可留着循环移位
7,定点数的加减
原码——加
(符号位不参与运算,自己判断)
①正+正——>绝对值做加法,结果=正
②负+负——>绝对值做加法,结果=负
③正+负——>|大|—|小|,符号同|大|
④负+正——>|大|—|小|,符号同|大|
原码——减
转成加
①正-负——>正+正
②负-正——>负+负
③正-正——>正+负
④负-负——>负+正
补码——加
①真值——>原
②原——>补
③补相加(符号位参与运算)
④补——>原
补码——减
(减转加)
①真值——>原
②原——>补
③-补——>补
④补相加(符号位参与运算)
⑤补——>原
补码加减——溢出情况
①上溢,正+正=负
②下溢,负+负=正
补码加减——溢出判断
①一位符号位
V=0,无溢出
V=1,溢出
②一位符号位,看进位
V=0,无溢出
V=1,溢出
③双符号位
正数符号=00
负数符号=11
V=0,无溢出
V=1,溢出
注
双符号位补码,模4补码
(实际只存1个符号位,运算时复制1个符号位,不会增存储所需空间)
单符号位补码,模2补码
8,无符号数的加减
无符号整数——加法
①从右往左,按位加,进1
②溢出,只留n位
无符号整数——减法
①被减数不变
②减数all取反,末位+1
③加
(减转加,原因=加法电路便宜)
无符号数——加减法判溢出
1️⃣手算
超出[0,2ⁿ-1],溢出
2️⃣机算①加
最高位的进位=1,溢出
②减
(减转加)
最高位的进位=0,溢出
9,补码加减运算电路
补码加减运算电路——图
(也可用于无符号数+-)
10,原码一位乘法
原码一位乘法——元件
①ACC,存乘积高位
②MQ,存乘积、乘积低位
③X,存被乘数
原码一位乘法——方法
①先加法
②再逻辑右移
③重复n次(符号位不参与运算)
原码一位乘法——机算步骤
题目
①机器字长n+1=5
②[A]原=1.1101
③[B]原=0.1011
求A×B
步骤
原码一位乘法——手算步骤
题目
①机器字长n+1=5
②A=−0.1101
③B=+0.1011
求A×B
步骤
①
②符号位=A符⊕B符=1
③结果
真值=-0.10001111
其原码机器数=1.10001111
11,补码一位乘法
原码一位乘法——元件
①
灰,MQ中最低位
红,辅助位,初始=0
②寄存器,all统一为n+2位,⇒双符号位补码
补码一位乘法——方法
①先加法
②再算术右移
③重复n次④最后再加一次
(符号位参与运算)
加法——规则
①辅助位-MQ中最低位=1,ACC+[x]补
②辅助位-MQ中最低位=0,ACC+0
③辅助位-MQ中最低位=-1,ACC)+[-x]补
补码一位乘法——手算步骤
12,原码除法
题目
①机器字长n+1=5,含1位符号位
②A=0.1011
③B=0.1101
求A÷B
手算除法(二进制)——步骤
恢复余数法——机算
恢复余数法——手算规律
①不管小数点
②每确定一位商,减一次,得到4位余数
③余数末尾补0,确定下一位商
④确定5位商即可停止(机器字长为5位)
恢复余数法——手算
①写
|A|=0.1011
|B|=0.1101
[|B|]补=0.1101
[−|B|]补=1.0011
②
加减交替法(不恢复余数法)——手算
恢、加——区别
恢
①余数=负,商0
②余数+除数(恢复)
③左移
④余数-除数
加
①余数=负,商0
②左移
③+除数
①余数=正,商1
②左移
③余数-除数
注
加减交替法,余数的正负=商,商也是⊕
加减交替法——计算次数
一般
①加/减n+1次,每次加减确定一位商
②左移n次
最终,若余数=负,商0,并+[|B|]补,得到正余数
①加/减n+2次
②左移n次