<>1.1 计算机系统简介
<>1.1.1 计算机的软硬件概念
<>计算机组成概览:
<>1.1.2 计算机系统的层次结构
<>物理角度:
<>程序员角度:
系统复杂性管理的方法之一:抽象
区别两点:
* 计算机体系结构:程序员所见到的计算机系统的属性概念性的结构与功能特性(如:有无乘法指令)。
* 计算机组成:实现计算机体系结构所体现的属性(如:怎样实现乘法指令)。
<>1.2 计算机的基本组成
<>1.2.1 冯.诺依曼计算机的特点
<>六个特点:
* 计算机由五大部件组成。
* 指令和数据以同等地位存于存储器中,可按地址寻访。
* 指令和数据用二进制表示。
* 指令由操作码和地址码组成。
* 存储程序。
* 以运算器为中心。
<>1.2.2 计算机硬件框图
<>传统冯.诺依曼计算机硬件框图:
两个缺点:
* 以运算器为中心,运算器成为了计算机的瓶颈。
* 复杂繁琐。
<>改进后的以存储器为中心的计算机硬件框图:
缺点:
* 依旧较为复杂,层次性不高
<>现代计算机硬件框图:
系统复杂性管理的方法之二:层次化、模块化、规则性。
<>1.2.3 计算机的工作步骤
<>上机前的两个准备:
* 建立数学模型,例:
* 确定计算方法:
注:并非所有的问题都可以用计算解决 —— 计算可行性理论
<>计算ax2 + bx +c 的步骤:
<>优化后(ax+b)x+c的算法:
总结:优化后的算法,速度更快,所需存储空间最小
<>用指定的指令格式描述:
如指令:
取数 a
对应的指令码:
000001 0000001000
文本描述:
[a] --> ACC
<>于是就有了计算(ax+b)x+c的指令清单:
总结:指令和数据都是保存在存储器中
<>存储器的基本结构:
* 存储字:存储单元中二进制代码的组合。
* 存储字长:存储单元中二进制代码的位数。
* 按地址寻访:每个储存单元赋予一个地址。 <>举个栗子: 设MAR=4位,MDR=8位,则存储单元个数=16,存储字长=8。
总结:运算器通过读取存储器内存储的指令和数据完成操作。
<>运算器的基本结构:
<>① 加法操作过程
指令:
加 M
初态:
X ACC MQ 内存单元M
NULL 被加数 NULL 加数
过程:
1. [M] --> X 2. [ACC] + [X] --> ACC <>② 减法操作过程
指令:
减 M
初态:
X ACC MQ 内存单元M
NULL 被减数 NULL 减数
过程:
1. [M] --> X 2. [ACC] - [X] --> ACC <>③ 乘法操作过程
指令:
乘 M
初态:
X ACC MQ 内存单元M
NULL 被乘数 NULL 乘数
过程:
1. [M] --> MQ 2. [ACC] --> X 3. 零--> ACC 3. [X]×[MQ] --> ACC//MQ <>④ 除法操作过程
指令:
除 M
初态:
X ACC MQ 内存单元M
NULL 被除数 NULL 除数
过程:
1. [M] --> MQ 2. [ACC] --> X 3. [X] ÷ [MQ] --> MQ//ACC
注:乘除法的过程1和过程2顺序可变,指令的执行顺序由控制器控制。
<>控制器的基本结构:
<>主机完成一条指令的过程:
<>1. 取数指令的执行过程
步骤:
* 取指令(① ~ ④)
① 指令的地址存放在PC中,将地址由PC传给MAR。
② 再将地址由MAR传给存储体。
③ 在控制单元CU的控制下,将指令取出并放入到MDR中。
④ 在控制单元CU的控制下,将指令由MDR传给IR。
* 分析指令(⑤)
⑤ 将指令的操作码部分由IR传给CU控制单元(由CU对操作码分析并发出相应的控制信号来完成对应操作)。
* 执行指令(⑥ ~ ⑨)
⑥ 在控制单元CU的控制下,将IR中的地址码部分传给MAR。
⑦ 再将操作数的地址由MAR传给存储体。
⑧ 由存储体将操作数传入MDR中。
⑨ 由MDR将操作数传入ACC当中,至此取数指令执行结束。 <>2. 存数指令的执行过程
步骤:
* 取指令(① ~ ④)
① 指令的地址存放在PC中,将地址由PC传给MAR。
② 再将地址由MAR传给存储体。
③ 在控制单元CU的控制下,将指令取出并放入到MDR中。
④ 在控制单元CU的控制下,将指令由MDR传给IR。
* 分析指令(⑤)
⑤ 将指令的操作码部分由IR传给CU控制单元(由CU对操作码分析并发出相应的控制信号来完成对应操作)。
* 执行指令(⑥ ~ ⑨)
⑥ 在控制单元CU的控制下,将IR中的地址码部分传给MAR。
⑦ 再将地址码由MAR传给存储体,告诉存储体将要存入的数的地址。
⑧ 在CU控制单元的控制下,将需要存入的数由ACC传给MDR。
⑨ 由MDR将数传到存储体当中,至此存数指令执行结束。
总结:
* 在如图所示的指令架构中,任何指令的执行步骤中步骤1取指令的过程总是相同的(皆为① ~ ④)。
* 任何一条指令的执行都需要经过三步(取指令、分析指令、执行指令)。
<>综上所述,ax2 + bx + c 程序的运行过程即为:
* 将程序通过I/O设备送至计算机。
* 将程序的首地址传入到PC中。
* 启动程序运行。
* 对每一条指令循环进行(取指令 --> PC=PC+1 --> 分析指令 --> 执行指令)的过程,直至打印指令的结束。
* 打印结果。
* 停机。
(完)
热门工具 换一换