一、计算机的软硬件概念
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(指令寄存器)
分析指令
- 将IR中指令的操作码部分传给CU(控制器)进行处理发现这是一条存数指令 执行指令
- IR将指令中地址码部分传给MAR
- MAR通过这个地址在存储体中开辟一块内存,用于存储数据
- 将ACC中的数据传到MDR
- 最后将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
———————————————— 版权声明:本文为CSDN博主「woyaottk」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。