1

图解计算机结构与体系分类!!

 3 years ago
source link: https://segmentfault.com/a/1190000039147877
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

写在前面

今天,我们继续更新【程序员进阶系列】专题,冰河带你从零入坑程序员。接下来,我们一起聊聊计算机的结构和体系分类。

文章已收录到:

https://github.com/sunshinelyz/technology-binghe

https://gitee.com/binghe001/technology-binghe

计算机结构

计算机结构主要由运算器、控制器、存储器、输入设备和输出设备组成。简化的结构图如下图所示。

zyAVfmu.jpg!mobile

接下来,我们再看看看其详细的结构图如下所示。

6vANni3.jpg!mobile

其中,主存储器又叫做内存储器,也就是内存;辅助存储器又叫做辅存,也就是外存储器,例如磁盘;CPU的核心部件为运算器和控制器。

CPU由运算器、控制器、寄存器组和内部总线组成。

IFnEZ3N.jpg!mobile

运算器包含:算术逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器。

FBjy2e.jpg!mobile

  • 算术逻辑单元(ALU):数据的算术运算和逻辑运算。
  • 累加寄存器(AC):通用寄存器,为ALU提供一个工作区,用于暂存数据。
  • 数据缓冲寄存器(DR):写内存时,暂存指令或数据。
  • 状态条件寄存器(PSW):存储状态标志和控制标志,有时也可以将状态条件寄存器归为控制器部分。

控制器包含:程序计数器、指令寄存器、指令译码器、时序部件。

NRz6Vfz.jpg!mobile

  • 程序计数器(PC):存储下一条要执行的指令的地址。
  • 指令寄存器(IR):存储即将执行的指令。
  • 指令译码器(ID):对指令中的操作码字段进行分析解释。
  • 时序部件:提供时序控制信号。

计算机体系结构分类

首先,我们先来看一个在计算机领域中,对计算机的体系结构进行分类的一种经典方法,就是Flynn分类法,Flynn分类法将计算机分成单指令流单数据流、单指令流多数据流、多指令流单数据流、多指令流多数据流。

aAVNJvF.jpg!mobile

具体信息如下表所示。

体系结构类型 结构 关键特性 代表 单指令流单数据流(SISD) 控制部分:一个 处理器:一个 主存模块:一个 单处理器系统 单指令流多数据流(SIMD) 控制部分:一个 处理器:多个 主存模块:多个 各处理机以异步的形式执行同一条机灵 并行处理机、阵列处理机、超级向量处理机 多指令流单数据流(MISD) 控制部分:多个 处理器:一个 主存模块:多个 被证明是不可能的,至少是不实际的 目前没有,有资料记载流水线处理机为此类 多指令流多数据流(MIMD) 控制部分:多个 处理器:多个 主存模块:多个 能够实现作业、任务、指令等各级全面并行 多处理机系统、多计算机

指令的基本概念

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的格式如下所示。

2ieeQrE.jpg!mobile

其中,操作码部分指出了计算机要执行什么性质的操作,例如,加法、减法、取数、存数等。地址码字段需要包含各操作数的地址及操作结果的存放地址等,从其地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令。

三地址指令

FjmInqv.jpg!mobile

例如,执行a+b=c操作时,就是使用的三地址指令。此时如下所示。

fAJZvaA.jpg!mobile

二地址指令

Uvqqm2.jpg!mobile

例如,执行a+=b操作时,执行的就是二地址指令,此时如下所示。

Mfyu2aa.jpg!mobile

一地址指令

yQjMbeM.jpg!mobile

例如,执行a++操作时,执行的就是一地址指令,此时如下所示。

bAbYJra.jpg!mobile

零地址指令

YFBJRre.jpg!mobile

例如,宕机就是零地址指令。

寻址方式

总体来说,寻址方式可以分为:立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址。

Q7niIbm.jpg!mobile

  • 立即寻址:操作数直接在指令中,速度快,灵活性差。
  • 间接寻址:指令中存放的是操作数的地址。
  • 间接寻址:指令中存放了一个地址,这个地址对应的内容是操作数的地址。
  • 寄存器寻址:寄存器存放操作数。
  • 寄存器内存放的是操作数的地址。

CISC与RISC

CISC和RISC分别表示复杂指令集系统和精简指令集系统,具体信息如下表所示。

指令系统类型 指令 存执方式 实现方式 其他 CISC(复杂) 数量多、使用频率差别大,可变长格式 支持多种 微程序控制技术(微码) 研发周期长 SISC(精简) 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存。 支持方式少 增加了通信寄存器、硬布线逻辑控制为主,适合采用流水线 优化编译,有效支持高级编程语言

如何比较CISC和RISC,分哪些维度?

指令数量、指令使用频率、存执方式、寄存器、流水线支持、高级语言支持。

  • CISC:复杂、指令数量多,频率差别大、多寻址。
  • RISC:精简、指令数量少。操作寄存器,单周期,少寻址,多通用寄存器,流水线,

好了,今天就到这儿吧,我是冰河,大家有啥问题可以在下方留言,也可以加我微信:sun_shine_lyz,我拉你进群,一起交流技术,一起进阶,一起牛逼~~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK