<>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 --> 分析指令 --> 执行指令)的过程,直至打印指令的结束。
* 打印结果。
* 停机。
(完)

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信