概述
一、计算机的软硬件概念
1.1 计算机系统
计算机系统分为硬件和软件两大部分
- 硬件:计算机的实体,如注解的外设等
- 软件:具有各类特殊功能的信息(程序)组成
- 系统软件:用来管理整个计算机系统(如:语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件)
- 应用软件
1.2 计算机系统的层次结构
1.3 计算机体系结构和计算机系统属性
- 计算机体系结构:程序员所见到的计算机系统属性概念性的结构和功能结构(如:指令系统、数据类型、寻址技术、I/O机理)
- 计算机组成:实现计算机体系结构所体现的属性(具体指令的实现)
二、计算机的基本组成
2.1 冯诺依曼计算机的特点
-
由五大部分组成
- 运算器:计算机的主要功能是运算所以需要一个运算器
- 控制器:运算的过程中有加减法之分,所以需要一个控制器进行控制
- 存储器:冯诺依曼体系是存储程序的机器,指令和数据都需要进行存储
- 输入设备:数据需要进行输入
- 输出设备:数据需要进行输出
-
指令和数据以同等重要的地位存储于存储器,可按地址进行访问
-
指令和数据均是二进制
-
指令由操作码和地址码组成
- 操作码:告诉计算机这条指令要做什么操作(比如:是加法还是减法)
- 地址码:操作数所存储的地址
-
存储程序*:程序也是存储到存储器当中
只要是有存储程序的计算机都属于冯诺依曼计算机
-
以运算器为中心
2.2 硬件框图
是不是很复杂?看不懂吧?看不懂也问题不大,当然看懂最好,我们接下来进行分析和改进
- 问题:
- 以运算器为中心,导致运算器成为系统的瓶颈
- 图很乱,不具有层次化的特征
- 改进:
- 以存储器为中心
现在第一个问题解决了,但第二个问题还是存在图很乱,不具有层次化的特征
-
在改进:3Y
- 层次化(Hierachy):将被设计的系统划分为多个模块或子模块,将大问题划分为多个小问题
- 模块化(Modylarity):要有明确定义的功能和接口,因为将多个小问题合并成大问题需要解决接口问题
- 规则化(Regularity):模块更容易被重用,提高复用性
基于3Y可以将将硬件划分如图
2.3 计算机的计算步骤
例如有这样一个式子:
ax^2+bx+cax2+bx+c
首先先对他化简
ax^2+bx+c=(ax+b)x+bax2+bx+c=(ax+b)x+b
然后计算机的计算步骤为
- 取x到运算器中
- 乘以x在运算器中
- 加b在运算器中
- 乘以x在运算器中
- 加c在运算器中
-
指令格式举例
ACC:accumulator累加器
000001 0000001000 其中000001为操作码 0000001000为地址码
- 取数α [α] -> ACC
- 存数β [ACC] -> β
- 加法γ [ACC] + [γ] -> ACC
- 乘法δ [ACC] * [δ] -> ACC
- 打印σ [σ] -> 打印机
指令和数据都是保持到存储器中的
2.4 存储器的基本组成
-
存储体 —— 存储单元 —— 存储元件(0/1)
-
存储单元:存放二进制编码
-
存储字:存储党员中二进制代码的组合
-
存储字长:存储党员中二进制代码的位数
-
MAR:存储器地址寄存器 反映存储单元个数
-
MDR:存储器数据寄存器 反映存储字长
设MAR=4 ——> 16 个存储单元
MDR=8 每个存储单元8位
-
2.5 运算器的基本组成及操作过程
运算 | ACC | MQ | X |
---|---|---|---|
加法 | 被加数/和 | 加数 | |
减法 | 被减数/差 | 减数 | |
乘法 | 乘积高位 | 乘数/乘积低位 | 被乘数 |
除法 | 被除数/余数 | 商 | 除数 |
-
组成:
- ACC:累加器
- MQ:乘商寄存器
- X:寄存器
- ALU:运算器
-
加法:
-
指令:
-
初态:ACC已经存储被加数了
-
运算:
- [M] -> X
- [ACC] + [X] -> ACC
-
-
减法:
-
指令:
-
初态:ACC已经存储被减数了
-
运算:
- [M] -> X
- [ACC] - [X] -> ACC
-
-
乘法:
-
指令:
-
初态:ACC已经存储被乘数了
-
运算:
- [M] -> MQ
- [ACC] -> X
- 0 -> ACC
- [x]* [MQ] -> ACC//MQ
-
-
除法:
-
指令:
-
初态:ACC已经存储被除数了
-
运算:
- [M] -> X
- [ACC] / [X] -> MQ
-
2.6 控制器
控制器的功能——解释指令,保证指令按需完成
控制器的基本结构如下图:
完成一条指令的步骤
-
取指令
由PC完成
PC(程序计数器)存放单曲执行指令的
地址
下一条指令地址位(PC)+ 1
-
分析指令
由IR完成
IR(指令寄存器)存放当前指令
内容
-
执行指令
由CU完成
指令执行过程中有很多运行步骤,故需要CU参与保证运行顺序没问题
2.7 主机完成一条指令的过程
以取数为例
指令的执行分为三步
- 取指令
- 通过PC(程序计数器)获取当前指令地址,将其传给MAR(存储器地址寄存器)
- MAR通过其存储的地址到存储体中寻找指令
- 将找到的指令内容存储到MDR(存储器数据寄存器)中
- 将MDR中的指令传给IR(指令寄存器)
- 分析指令
5. 将IR中指令的操作码部分传给CU(控制器)进行处理发现这是一条取数指令 - 执行指令
6. IR将指令中地址码部分传给MAR
7. MAR通过这个地址在存储体中寻找数据
8. 将找到的内容传到MDR中
9. 最后将MDR中的数据存到ACC(累加器)当中
注意:执行指令的每一步操作都需要CU的控制,因为需要CU控制执行的先后顺序
简化一下就是
- 取指令:PC -> MAR -> M -> MDR -> IR,(PC)+1 -> PC
- 分析指令:OP(IR) -> CU
- 执行指令:Ad(IR) -> MAR -> M -> MDR -> ACC
接下来我们再以存数为例
- 取指令
- 通过PC(程序计数器)获取当前指令地址,将其传给MAR(存储器地址寄存器)
- MAR通过其存储的地址到存储体中寻找指令
- 将找到的指令内容存储到MDR(存储器数据寄存器)中
- 将MDR中的指令传给IR(指令寄存器)
- 分析指令
5. 将IR中指令的操作码部分传给CU(控制器)进行处理发现这是一条存数指令 - 执行指令
6. IR将指令中地址码部分传给MAR
7. MAR通过这个地址在存储体中开辟一块内存,用于存储数据
8. 将ACC中的数据传到MDR
9. 最后将MDR中的数据存到存储体当中
简化一下就是
- 取指令:PC -> MAR -> M -> MDR -> IR,(PC)+1 -> PC
- 分析指令:OP(IR) -> CU
- 执行指令:Ad(IR) -> MAR -> M,ACC -> MDR -> M
如果你仔细分析过了话,你会神奇的发现其实取指令的操作是一样的
三、计算机的硬件指标
3.1 机器字长
机器字长指CPU一次能处理的数据位数,与CPU中寄存器位数有关
一般来讲机器字长越长性能越好
3.2 运算速度
- 主频:CPU内核工作的时钟频率
- 核数:CPU的内核个数
- CPI:执行一条指令所需的时钟周期数
- IPC:一个时钟周期能完成的指令
- MIPS:每秒执行百万条指令数
- FLOPS:每秒浮点运算次数
3.3 存储容量
存放二进制信息的总位数
- 主存
- 存储单元个数 * 存储字长 (例如MAR=16位,MDR=32位 => 64K * 32位)
- 字节数:8G
- 辅存
- 字节数:80G
最后
以上就是甜甜心情为你收集整理的计算机组成原理概述一、计算机的软硬件概念的全部内容,希望文章能够帮你解决计算机组成原理概述一、计算机的软硬件概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复