Contents
链接 【超详细】计算机组成原理总结及思维导图.
链接 计算机组成原理知识点.
链接 计算机组成原理----思维导图.
链接 【重学计算机】计算机组成原理.
链接 前引_计算机科学导论.
链接 哈工大刘宏伟老师讲课视频.
计算机系统概论(贯穿本书)
- 计算机系统简介
- 计算机的基本组成
- 计算机硬件的主要指标
现在计算机主要是 数字电子计算机
- 计算机组成原理,讲的就是计算机硬件系统的逻辑实现
计算机系统,包括 硬件 + 软件
软件分为两大类:系统软件 和 应用软件
系统软件:又称系统程序,为了使系统资源得到合理调度,高效运行
- 标准程序库、语言处理程序(汇编程序、编译程序)、操作系统(批处理、分时、实时)、服务程序(诊断、调试、连接)、数据库管理系统、网络软件等
应用软件 (通用软件、专用软件):用户根据任务需要编制的程序
层次结构:
指令 = 操作码 + 地址码
汇编语言 用助记符代替指令,是符号语言,汇编语言指令与机器指令一一对应
高级语言,编写时硬件不相关,开发效率高,可移植性强,运行效率低 (需要转换成低级语言)
翻译程序,有两种 编译程序 和 解释程序
编译程序:将源程序一次性全翻译成机器语言程序(目标程序),再执行机器语言程序
解释程序:特点是翻译一次执行一次,即使下一次重复执行该语句时,也必须重新翻译
- 微指令,指令分解而成,微指令构成的 微程序 = 一条指令
程序,包括运算的全部步骤
指令,是程序中的单个步骤
- 例:计算程序包括:
加法指令、乘法指令、取数指令、存数指令、打印指令、停机指令
冯诺依曼计算机,以运算器为中心
冯诺依曼机工作方式的基本特点是:按地址访问并顺序执行指令
现代计算机改进了一下,以存储器为中心
- 指令和数据以同等地位存于存储器中
有许多运算的结果是无法准确表示的,此时
迭代计算,直到相邻两次的计算差值满足用户的精度要求
例如 求Sin 20.2.18
主存 = 存储体 + MAR + MDR
存储体,若干个存储单元组成 (大楼)
- 存储单元,存放一串二进制代码 (房间),每个存储单元给一个地址 (房间号)
- 存储元件,一个二进制代码位 (床位), 有人为1,没人为0
- 存储字,存储单元中的二进制代码串 (房间中的信息),一个存储单元对应一个存储字
- 存储字长,存储字的长度,存储单元中二进制代码的位数 (床位数)
MAR,存储器地址寄存器 (Memory Address Rejister)
- 保存存储单元的地址,其位数反映存储单元的个数(若 n 位,对应 2n 个存储单元地址)
MDR,存储器数据寄存器 (Data)
-
保存要存入存储体中或刚从存储体中取出的数据,其位数反映存储字长(n 位,对应存储字长 n,因每次取出一个存储字)
-
在指令字长、存储字长、机器字长相等的情况下,
ACC = IR = X = MDR位数
PC = MAR位数;想想为什么 -
指令字长:一个指令字中包含的二进制位数
-
存储字长:已经介绍,是一个存储单元的二进制代码串的位数,存储字长通常 ≤ 机器字长,一般相等
-
机器字长:计算机 (CPU) 能直接处理的二进制数据的位数,通常与CPU寄存器位数有关
该字长越长,数的表示范围越大,计算精度越高 (若该字长过短,运算时一个运算数要拆开表示的话,也会影响计算机运算速度) 一般为 8位 16位 32位等
运算器 = X + ALU + ACC + MQ
这个运算器的结构只是课本模型机给出的,实际运算器中寄存器的数量根据不同情况设计
——————
ALU,(Arithmetic Logical Unit) 算术逻辑单元
- 运算器的核心,通常是组合电路,所以一般在其输入端有 两个寄存器
其中一个就是 ACC 累加器 (Accumulator),另一个是称为 X 的 数据寄存器; - 因为乘法得出的结果的长度是操作数的两倍,多出来的长度存放在 MQ 寄存器中,运算结果保存在 ACC 中
CPU和运算器的关系:CPU = 运算器 + 控制器
8086、286、386、奔腾、酷睿、I5等均指CPU
——————
乘法得出的结果一定是 一行为 被乘数,一行为 0
-
加法指令中有一个操作数的地址 M,另一个操作数在 ACC 中,
- 第一个操作:将地址 M 对应的数据 取出 到 X 中
第二个操作:在 ALU 中执行加法操作,操作数分别来自 ACC 和 X
第三个操作:结果保存至 ACC
- 第一个操作:将地址 M 对应的数据 取出 到 X 中
-
乘法指令的先后顺序,初态 被乘数在 ACC 中,
- 需要[ACC] → X,然后 0 → ACC,最后[X] × [MQ] → ACC // MQ (加中括号表示其中的数据)
由 控制器控制 操作执行顺序,在 ALU 中执行乘法操作
- 需要[ACC] → X,然后 0 → ACC,最后[X] × [MQ] → ACC // MQ (加中括号表示其中的数据)
控制器 = CU + IR + PC
功能:解释指令(包括 取出 分析 执行 等过程),保证指令的有序执行
——————
- CU,控制单元,发出控制信号
- IR,Instruction Register 指令寄存器,保存当前要执行的指令
- PC,Programming Counter 程序计数器,保存要执行指令的地址 (会自动 +1)
链接 见计算机科学导论第3章.
-
主机完成一条取数指令:
-
一个程序在计算机上的运行过程:(其中OP是指令的操作码字段,Ad是地址码字段)
如何区分从存储器中取出的是指令还是数据?二者是从不同阶段取出,以此区分 20.2.22
机器字长,
- CPU一次能处理数据的位数,通常与CPU中寄存器位数相等
为简化问题,模型机中存储字长也与之相等
运算速度<