1.2计算机系统的层次结构

简介: 1.2计算机系统的层次结构

请先食用这一篇计算机工作过程

(1)微指令

前边我们了解到,高级语言编写的代码,最终需要翻译成机器语言,才能被CPU执行。

传统意义上的机器,只能识别机器语言,机器语言就是用二进制表述的指令。

CPU在执行这些用二进制表示的机器指令的时候,还需要把这些指令细分为很多小步骤。这些细分的小步骤可以被成为微指令或者微操作。

之前我们看过的这个例子:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NPaZ8WL2-1673508626621)(D:\Typora图片\image-20230112140114352.png)]

第一条取数指令(就是图示的二进制指令)需要被划分为9个更加细分的操作。(就是图片左边的9个操作)

这9个指令就是微指令,依次执行才能完成取数操作。

微程序机器可以看作 传统机器的分解。

用微程序机器的微指令来解释并且执行M1这个传统机器的每一条机器指令。

如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TJeA2T0U-1673508626622)(D:\Typora图片\image-20230112140503008.png)]

(2)汇编语言

由于传统机器只能识别二进制指令,用这种二进制指令来编程是非常不方便的。

20世纪50年代,开始出现符号式的程序设计语言--汇编语言。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-io72tgfp-1673508626623)(D:\Typora图片\image-20230112141819008.png)]

虚拟:任何一台机器,都不可能识别汇编语言。用汇编语言编写的程序想要执行,必须通过汇编程序翻译成机器语言。用汇编语言编程的程序员,在他看来,这台机器可以直接识别汇编语言。但这只是看起来,实际上是需要翻译成机器语言的。

汇编语言指令和机器语言指令一一对应!

结合之前给出的例子来看。

第一个操作码(000001)指明这是一个取数指令,地址码部分(0000000101-->5)指向5号单元。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A2tUV6gP-1673508626624)(D:\Typora图片\image-20230112141504560.png)]

所以我们这里给出的汇编语言代码,LOAD说明是取数操作,5说明了要从地址单元为5的

地方取数。和下面机器指令的两个部分一一对应。

如图:在这里插入图片描述

第二条乘法指令也是类似,MUL指明这是一条乘法指令,6说明了要与地址单元为6的那个数进行相乘。

所以,汇编语言编写的程序只是更方便我们理解而已,本质上和机器指令没有太大区别。还是属于低级语言。

(3)高级语言

经过以上分析,用汇编语言编写程序也是非常不方便的。

随着计算机的发展,慢慢出现了高级语言,现在我们编程大多用的是高级语言。比如C、Java。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VHFjpwrO-1673508626625)(D:\Typora图片\image-20230112142913648.png)]

但是并没有任何一台机器可以直接识别高级语言代码,需要通过编译程序翻译成汇编语言,再经过汇编程序翻译成机器语言。

(4)操作系统

我们编写的程序,难免会用到操作系统提供的一些服务,比如某些系统调用。

所以一般来说,用汇编语言编写的程序,通常也需要请求操作系统的服务。通过系统调用的方式来请求,系统调用又可以称为“广义指令”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7j9D6NC-1673508626626)(D:\Typora图片\image-20230112143221476.png)]

操作系统和操作系统之上的部分,可以划分为软件,下方传统机器和微指令部分可以划分为硬件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gMQuwrMf-1673508626626)(D:\Typora图片\image-20230112143744212.png)]

显然,《计算机组成原理》这个课程,关注的是硬件部分。

(5)编译程序与解释程序

用高级语言编写的源程序,需要编译程序翻译为汇编语言(助记符:方便人们记忆的符号,本质上和机器语言一一对应),然后通过汇编程序翻译为机器语言程序。机器语言程序才是让CPU执行的程序。

如果程序里面,调用了其他的库函数,那么在汇编之后,还需要再经过链接的操作,也就是将你的程序以及调用的其他程序链接起来,这是《操作系统》研究的东西。这门课,主要关注语言的逐步转换。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kdNmiqiS-1673508626627)(D:\Typora图片\image-20230112145416674.png)]

实际上,还有一些语言,经过编译程序的编译之后,可以直接由源程序转换为机器语言程序。(图中绿色箭头)

还有一些高级语言代码的执行,并不是通过编译程序,而是通过解释程序(解释器),把高级语言代码翻译成与之对等的机器语言指令。很多脚本类的语言都是采用这样的机制。(图中红色箭头)


:bookmark_tabs:区别

编译程序

直接把高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需要翻译一次)。

比如用C语言写的程序,通过编译、汇编之后,最终形成.exe文件。这个文件其实就是用机器语言描述的程序。只要生成了.exe文件,之后就不用再编译了,只需要加载这个文件即可。

解释程序

将源程序的一条语句翻译成对应于机器语言的语句,并立即执行,紧接着再翻译下一句(每次执行都要翻译)。

比如用JavaScript脚本语言写了几句代码,在执行的时候,每执行一句,都会丢给解释程序,让它帮我们将代码翻译成与之对等的机器语言。翻译一句之后,立即执行,然后翻译下一句。

明显,编译程序的效率更高。

像C、Java这类语言可以称为编译型语言,而JavaScript、Python这类语言可以称为解释型语言。

编译、汇编、解释程序,可以统称为“翻译程序”。

(6)总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kQfbnVS2-1673508626627)(D:\Typora图片\image-20230112151003611.png)]

最后,再来看一下这两个概念的理解。

计算机体系结构:必须要探讨的是指令系统应该怎么设计。也就是我设计的这一台计算机,要对上层的机器语言程序提供哪一些指令。比如有没有乘法指令。如果不给这台机器提供乘法指令,那么使用这一台机器的程序员想要实现乘法操作,只能将数一个一个加起来。

计算机组成原理:如果我要给上层提供乘法指令,这个乘法指令如何用硬件来实现。

在这里插入图片描述


感谢王道,不懂的可以去B站搜视频,这里我只是总结出来了。希望能够帮到你。
整理不容易,多多支持~
请添加图片描述

相关文章
|
6月前
|
算法 调度
计算机系统结构
【1月更文挑战第5天】计算机系统结构。
86 2
|
5月前
|
开发框架 Java 程序员
什么是层次式体系结构?
层次式体系结构设计是将系统组成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。
88 1
|
5月前
|
存储 网络协议 网络架构
网络协议与层次划分:探索计算机网络体系结构
网络协议与层次划分:探索计算机网络体系结构
130 0
|
6月前
|
存储 固态存储 安全
计算机硬件组成部分
中央处理器(CPU) • 功能: 负责执行计算机程序的指令,是计算机的大脑。 • 细节: 包括控制单元(CU)和算术逻辑单元(ALU)。CU负责指令流程控制,而ALU执行实际的算术和逻辑运算。 内存(RAM - 随机存取存储器) • 功能: 提供临时存储空间,用于存储正在运行的程序和数据。 • 细节: RAM 是易失性存储器,关机后数据会丢失。访问速度比存储设备快。 存储设备(硬盘驱动器/固态驱动器) • 功能: 用于永久性存储数据和程序。 • 细节: 硬盘驱动器(HDD)通过旋转磁盘存储数据,而固态驱动器(SSD)使用存储芯片,速度更快。
356 0
|
Java 程序员 C++
1.2.3计算机系统的层次结构
1.2.3计算机系统的层次结构
|
网络协议 网络架构
计算机网络的层次结构
计算机网络的层次结构
计算机网络的层次结构
|
存储 Java
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
249 0
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
存储 Java
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
321 0
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
程序员
计算机系统层次结构
通常由用户用高级语言编写程序(称为源程序),然后将它和数据一起送人计算机内,再由 计算机将其翻译成机器能识别的机器语言程序(称为目标程序),机器自动运行该机器语言程 序,并将计算结果输出。
177 0
|
C# 开发者 Windows
【5分钟系列】计算机系统结构的定义
【5分钟系列】计算机系统结构的定义
327 0
【5分钟系列】计算机系统结构的定义