共计 1812 个字符,预计需要花费 5 分钟才能阅读完成。
写在后面
明天,咱们持续更新【程序员进阶系列】专题,冰河带你从零入坑程序员。接下来,咱们一起聊聊计算机的构造和体系分类。
文章已收录到:
https://github.com/sunshinelyz/technology-binghe
https://gitee.com/binghe001/technology-binghe
计算机构造
计算机构造次要由运算器、控制器、存储器、输出设施和输出设备组成。简化的结构图如下图所示。
接下来,咱们再看看看其具体的结构图如下所示。
其中,主存储器又叫做内存储器,也就是内存;辅助存储器又叫做辅存,也就是外存储器,例如磁盘;CPU 的核心部件为运算器和控制器。
CPU 由运算器、控制器、寄存器组和外部总线组成。
运算器蕴含:算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器。
- 算术逻辑单元(ALU):数据的算术运算和逻辑运算。
- 累加寄存器(AC):通用寄存器,为 ALU 提供一个工作区,用于暂存数据。
- 数据缓冲寄存器(DR):写内存时,暂存指令或数据。
- 状态条件寄存器(PSW):存储状态标记和管制标记,有时也能够将状态条件寄存器归为控制器局部。
控制器蕴含:程序计数器、指令寄存器、指令译码器、时序部件。
- 程序计数器(PC):存储下一条要执行的指令的地址。
- 指令寄存器(IR):存储行将执行的指令。
- 指令译码器(ID):对指令中的操作码字段进行剖析解释。
- 时序部件:提供时序管制信号。
计算机体系结构分类
首先,咱们先来看一个在计算机领域中,对计算机的体系结构进行分类的一种经典办法,就是 Flynn 分类法,Flynn 分类法将计算机分成单指令流单数据流、单指令流多数据流、多指令流单数据流、多指令流多数据流。
具体信息如下表所示。
体系结构类型 | 构造 | 要害个性 | 代表 |
---|---|---|---|
单指令流单数据流(SISD) | 管制局部:一个 处理器:一个 主存模块:一个 | 单处理器零碎 | |
单指令流多数据流(SIMD) | 管制局部:一个 处理器:多个 主存模块:多个 | 各处理机以异步的模式执行同一条伶俐 | 并行处理机、阵列处理机、超级向量处理机 |
多指令流单数据流(MISD) | 管制局部:多个 处理器:一个 主存模块:多个 | 被证实是不可能的,至多是不理论的 | 目前没有,有材料记录流水线处理机为此类 |
多指令流多数据流(MIMD) | 管制局部:多个 处理器:多个 主存模块:多个 | 可能实现作业、工作、指令等各级全面并行 | 多处理机系统、多计算机 |
指令的基本概念
一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的格局如下所示。
其中,操作码局部指出了计算机要执行什么性质的操作,例如,加法、减法、取数、存数等。地址码字段须要蕴含各操作数的地址及操作后果的寄存地址等,从其地址构造的角度能够分为三地址指令、二地址指令、一地址指令和零地址指令。
三地址指令
例如,执行 a +b= c 操作时,就是应用的三地址指令。此时如下所示。
二地址指令
例如,执行 a += b 操作时,执行的就是二地址指令,此时如下所示。
一地址指令
例如,执行 a ++ 操作时,执行的就是一地址指令,此时如下所示。
零地址指令
例如,宕机就是零地址指令。
寻址形式
总体来说,寻址形式能够分为:立刻寻址、间接寻址、间接寻址、寄存器寻址、寄存器间接寻址。
- 立刻寻址:操作数间接在指令中,速度快,灵活性差。
- 间接寻址:指令中寄存的是操作数的地址。
- 间接寻址:指令中寄存了一个地址,这个地址对应的内容是操作数的地址。
- 寄存器寻址:寄存器寄存操作数。
- 寄存器内寄存的是操作数的地址。
CISC 与 RISC
CISC 和 RISC 别离示意简单指令集零碎和精简指令集零碎,具体信息如下表所示。
指令系统类型 | 指令 | 存执形式 | 实现形式 | 其余 |
---|---|---|---|---|
CISC(简单) | 数量多、应用频率差异大,可变长格局 | 反对多种 | 微程序控制技术(微码) | 研发周期长 |
SISC(精简) | 数量少,应用频率靠近,定长格局,大部分为单周期指令,操作寄存器,只有 Load/Store 操作内存。 | 反对形式少 | 减少了通信寄存器、硬布线逻辑管制为主,适宜采纳流水线 | 优化编译,无效反对高级编程语言 |
如何比拟 CISC 和 RISC,分哪些维度?
指令数量、指令应用频率、存执形式、寄存器、流水线反对、高级语言反对。
- CISC:简单、指令数量多,频率差异大、多寻址。
- RISC:精简、指令数量少。操作寄存器,单周期,少寻址,多通用寄存器,流水线,
好了,明天就到这儿吧,我是冰河,大家有啥问题能够在下方留言,也能够加我微信:sun_shine_lyz,我拉你进群,一起交换技术,一起进阶,一起牛逼~~