当前位置: 首页 > news >正文

计算机组成原理知识总结

目录

  • 第一章、计算机系统概述
    • 知识框架:
    • 1.冯诺依曼机和存储程序的概念?
    • 2.计算机的工作过程?
    • 3.在计算机系统结构中,什么是编译?什么是解释?
    • 4.描述一下指令执行过程?
      • 1) 取指令: PC 一>MAR—>M—>MDR—>IR
      • 2) 分析指令: OP(IR)—>CU
      • 3) 执行指令: Ad(IR)—>MAR—>M—>MDR—>ACC
    • 5.计算机的主要性能指标?
      • 1. 机器字长
      • 2. 数据通路带宽
      • 3. 主存容量
      • 4. 运算速度
  • 第二章、数据的表示和运算
    • 知识框架:
    • 6.IEEE754标准浮点数
    • 7.C语言中的浮点数类型及类型转换
    • 8.在计算机中,为什么要采用二进制来表示数据?
    • 9.各编码方式的数值范围
  • 第三章、存储系统
    • 知识框架:
    • 10.多级存储系统?
    • 11.半导体随机存储器?
      • 1.SRAM 的工作原理
      • 2 .DRAM 的工作原理
      • 3.只读存储器(ROM) 的特点
    • 12.有哪些技术能够提高CPU访存速度?
      • 1.双端口RAM
      • 2.多模块存储器
    • 13.Cache
    • 14.虚拟存储器
  • 第四章、指令系统
    • 知识框架:
    • 15.指令流水线的基本概念
    • 16.CISC和RISC(复杂指令集和精简指令集)的对比?
  • 第五章、中央处理器
    • 知识框架:
    • 18.CPU 的功能?
    • 19.流水线越多,并行度就越高。是否流水段越多,指令执行越快?
    • 20.有关指令相关、数据相关的几个概念
  • 第六章、总线
    • 知识框架:
    • 21.引入总线结构有什么好处?
    • 22、总线相关概念
      • 1、系统总线按照传输信息的不同,分成哪几类?是单向的,还是双向的?
      • 2、什么是总线宽度、总线带宽、总线复用、信号线数?
  • 第七章、输入输出系统
    • 知识框架:
    • 23.CPU 响应中断应具备哪些条件?
    • 24.中断响应优先级和中断处理优先级分别指什么?
    • 25.向量中断、中断向量、向量地址三个概念是什么关系?
    • 26.程序中断和调用子程序有何区别?

第一章、计算机系统概述

知识框架:

在这里插入图片描述

1.冯诺依曼机和存储程序的概念?

冯·诺依曼在研究EDVAC 机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:

  1. 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5 大部件组成。
  2. 指令和数据以同等地位存储在存储器中,并可按地址寻访。
  3. 指令和数据均用二进制代码表示。
  4. 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
  5. 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
  6. 早期的冯诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。现代计算机以存储器为中心。
    “存储程序”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。冯诺依曼结构的模型机:
    在这里插入图片描述

2.计算机的工作过程?

计算机的工作过程分为以下三个步骤:

  1. 把程序和数据装入主存储器。
  2. 将源程序转换成可执行文件。
  3. 从可执行文件的首地址开始逐条执行指令。

3.在计算机系统结构中,什么是编译?什么是解释?

翻译的方式有两种,一个是编译,一个是解释。
编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,如果源程序不变以后要运行的话就不用重新翻译。解释则不同,解释性语言的程序不需要编译,在运行程序的时候才翻译,翻译一句执行一句,不生成目标程序,这样解释性语言每执行一次就要翻译一次,效率比较低。
.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释,然后解释执行。Java很特殊,Java程序需要编译但是没有直接编译成机器语言,即二进制语言,而是编译成字节码(.class)再用解释方式执行。java程序编译以后的class属于中间代码,并不是可执行程序exe,不是二进制文件,所以在执行的时候需要一个中介来解释中间代码,这就是所谓的java虚拟机(JVM)。
C语言编译过程分成四个步骤:
1, 由.c文件到.i文件,这个过程叫预处理,将#include包含的头文件直接拷贝到hello.c当中;将
#define定义的宏进行替换,同时将代码中没用的注释部分删除等
2, 由.i文件到.s文件,这个过程叫编译
3, 由.s文件到.o文件,这个过程叫汇编
4, 由.o文件到可执行文件,这个过程叫链接,将翻译成的二进制与需要用到库绑定在一块
在这里插入图片描述

4.描述一下指令执行过程?

程序中第一条指令的地址置于PC 中,根据PC 取出第一条指令,经过译码、执行步骤等,控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址。用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC 中)为例进行说明,其信息流程如下:

1) 取指令: PC 一>MAR—>M—>MDR—>IR

根据PC 取指令到IR, 将PC 的内容送MAR, MAR 中的内容直接送地址线,同时控制器将读信号送读/写信号线,主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上,MDR 从数据线接收指令信息,并传送到IR 中。

2) 分析指令: OP(IR)—>CU

指令译码并送出控制信号。控制器根据IR 中指令的操作码,生成相应的控制信号,送到不同的执行部件。在本例中, IR 中是取数指令,因此读控制信号被送到总线的控制线上。

3) 执行指令: Ad(IR)—>MAR—>M—>MDR—>ACC

取数操作。将IR 中指令的地址码送MAR, MAR 中的内容送地址线,同时控制器将读信号送读/写信号线从主存指定存储单元读出操作数,并通过数据线送至MDR, 再传送到ACC 中。此外,每取完一条指令,还须为取下一条指令做准备,形成下一条指令的地址,即(PC)+1 —> PC。

5.计算机的主要性能指标?

1. 机器字长

机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU 的寄存器位数、加法器有关。因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8 位)的整数倍。

2. 数据通路带宽

数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU 内部的数据总线宽度(内部寄存器的大小)有可能不同。各个子系统通过数据总线连接形成的数据传送路径称为数据通路。

3. 主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数x字长(如512Kx16 位)来表示存储容量。其中, MAR 的位数反映存储单元的个数, MAR 的位数反映可寻址范围的最大值(而不一定是实际存储器的存储容量)。

4. 运算速度

(1) 吞吐量和响应时间。
• 吞吐量:指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存, CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。
• 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/0 操作、操作系统开销等的时间)。
(2) 主频和CPU 时钟周期。
• CPU 时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU 中最小的时间单位,每个动作至少需要1 个时钟周期。
• 主频:机器内部时钟的频率。
(3)CPI(Clock cycle Per Instruction),即执行一条指令所需的时钟周期数。

第二章、数据的表示和运算

知识框架:

在这里插入图片描述

6.IEEE754标准浮点数

在这里插入图片描述

7.C语言中的浮点数类型及类型转换

C 语言中的float 和double 类型分别对应于IEEE 754 单精度浮点数和双精度浮点数。long double类型对应于扩展双精度浮点数,但long double 的长度和格式随编译器和处理器类型的不同而有所不同。在C 程序中等式的赋值和判断中会出现强制类型转换,以char->int->long->double 和float->double最为常见,从前到后范围和精度都从小到大,转换过程没有损失。

  1. 从int 转换为float 时,虽然不会发生溢出,但int 可以保留32 位, float 保留24 位,可能有数据舍入,若从int 转换为double 则不会出现。
  2. intfloat 转换为double 时,因为double 的有效位数更多,因此能保留精确值。
  3. double 转换为float 时,因为float 表示范围更小,因此可能发生溢出。此外,由于有效位数变少,因此可能被舍入。
  4. float 或double 转换为int 时,因为int 没有小数部分,所以数据可能会向0 方向被截断(仅保留整数部分),影响精度。另外,由于int 的表示范围更小,因此可能发生溢出。

8.在计算机中,为什么要采用二进制来表示数据?

从可行性来说,采用二进制,只有0 和1 两个状态,能够表示0 、1 两种状态的电子器件很多,如开关的接通和断开、晶体管的导通和截止、磁元件的正负剩磁、电位电平的高与低等,都可表示0、1 两个数码。使用二进制,电子器件具有实现的可行性。
从运算的简易性来说,二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表有55 条公式,而二进制乘法只有4 条规则)。
从逻辑上来说,由于二进制0 和1 正好和逻辑代数的假(false) 和真(true) 相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。

9.各编码方式的数值范围

在这里插入图片描述

第三章、存储系统

知识框架:

在这里插入图片描述

10.多级存储系统?

为了解决存储系统大容量、高速度和低成本3 个相互制约的矛盾,在计算机系统中,通常采用多级存储器结构,在图中由上至下,位价越来越低,速度越来越慢,容量越来越大, CPU 访问的频度也越来越低
在这里插入图片描述
实际上,存储系统层次结构主要体现在"Cache-主存”层次和“主存-辅存”层次。前者主要解决CPU和主存速度不匹配的问题,后者主要解决存储系统的容量问题。在存储体系中, Cache 、主存能与CPU 直接交换信息,辅存则要通过主存与CPU 交换信息;主存与CPU 、Cache 、辅存都能交换信息。
存储器层次结构的主要思想是上一层的存储器作为低一层存储器的高速缓存。从CPU 的角度看,"Cache—主存”层次速度接近于Cache, 容量和位价却接近千主存。从“主存—辅存”层次分析,其速度按近于主存,容址和位价动接近于辅存。这就解决了速度、容量、成本这三者之间的矛盾。
在“主存—辅存”这一层次的不断发展中,逐渐形成了虚拟存储系统,在这个系统中程序员编程的地址范围与虚拟存储器的地址空间相对应。对具有虚拟存储器的计算机系统而言,编程时可用的地址空间远大于主存间。

11.半导体随机存储器?

主存储器由DRAM 实现,靠处理器的那一层(Cache) 则由SRAM 实现,它们都属于易失性存储器,只要电源被切断,原来保存的信息便会丢失。DRAM 的每比特成本低千SRAM, 速度也慢于SRAM, 价格差异主要是因为制造DRAM 需要更多的硅。而ROM 属千非易失性存储器。

1.SRAM 的工作原理

通常把存放一个二进制位的物理器件称为存储元,它是存储器的最基本的构件。地址码相同时多个存储元构成一个存储单元。若干存储单元的集合构成存储体。静态随机存储器(SRAM) 的存储元是用双稳态触发器(六晶体管MOS) 来记忆信息的,因此即使信息被读出后,它仍保持其原状态而不需要再生(非破坏性牍出)。SRAM 的存取速度快,但集成度低,功耗较大,所以一般用来组成高速缓冲存储器。

2 .DRAM 的工作原理

与SRAM 的存储原理不同,动态随机存储器(DRAM) 是利用存储元电路中栅极电容上的电荷来存储信息的, DRAM 的基本存储元通常只使用一个晶体管,所以它比SRAM 的密度要高很多。DRAM 采用地址复用技术,地址线是原来的1/2, 且地址信号分行、列两次传送。相对于SRAM 来说, DRAM 具有容易集成、位价低、容量大和功耗低等优点,但DRAM 的存取速度比SRAM 的慢,一般用来组成大容量主存系统。DRAM 电容上的电荷一般只能维持1~2ms, 因此即使电源不断电,信息也会自动消失。为此,每隔一定时间必须刷新,通常取2ms, 这个时间称为刷新周期。常用的刷新方式有3 种:集中刷新、分散刷新和异步刷新。

3.只读存储器(ROM) 的特点

ROM 和RAM 都是支持随机存取的存储器,其中SRAM 和DRAM 均为易失性半导体存储器。而ROM 中一旦有了信息,就不能轻易改变,即使掉电也不会丢失,它在计算机系统中是只供读出的存储器。ROM 器件有两个显著的优点:
1) 结构简单,所以位密度比可读写存储器的高。
2) 具有非易失性,所以可靠性高。

12.有哪些技术能够提高CPU访存速度?

为了提高CPU 访问存储器的速度,可以采用双端口存储器、多模块存储器等技术,它们同属并行技术,前者为空间并行,后者为时间并行。

1.双端口RAM

双端口RAM 是指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据
线和读写控制线,允许两个独立的控制器同时异步地访问存储单元,如图所示。当两个端口的地
址不相同时,在两个端口上进行读写操作一定不会发生冲突。
在这里插入图片描述

2.多模块存储器

为提高访存速度,常采用多模块存储器,常用的有单体多字存储器和多体低位交叉存储器。
注意: CPU 的速度比存储器的快,若同时从存储器中取出n 条指令,就可充分利用CPU 资源,提高运行速度。多体交叉存储器就是基于这种思想提出的。
(1)单体多字存储器
单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m 个字,总线宽度也为m 个字。一次并行读出m 个字,地址必须顺序排列并处于同一存储单元。单体多字系统在一个存取周期内从同一地址取出m条指令,然后将指令逐条送至CPU执行,即每隔1/m 存取周期, CPU 向主存取一条指令。显然,这增大了存储器的带宽,提高了单体存储器的工作速度。
缺点: 指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或操作数不能连续存放,这种方法的效果就不明显。
(2)多休并行存储器
多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交叉工作。多体并行存储器分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)两种。

13.Cache

Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random Access Memory静态存储器)组成。Cache的功能是提高CPU数据输入输出的速率。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。
Cache通常采用相联存储器。
使用Cache改善系统性能的依据是程序的局部性原理
替换算法:
当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。最常用的替换算法有随机算法、先进先出算法(FIFO)和近期最少使用算法(LRU)。
写操作:
因为需要保证缓存在Cache中的数据与内存中的内容一致,Cache的写操作比较复杂,常用的有写直达法、写回法和标记法。
与主存的映射方式:
直接映射:主存数据块只能装入Cache中的唯一位置
全相联映射:可以把主存数据块装入Cache 中的任何位置
组相联映射:将Cache分为若干组,一个数据块可以装入一组内的任何一个位置

14.虚拟存储器

虚拟存储器的基本概念
虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩存的一种存储器系统
页式虚拟存储器
页式管理:是把虚拟存储空间和实际空间等分成固定大小的页,各虚拟页可装入主存中的不同实际页面位置.页式存储中,处理机逻辑地址由虚页号和页内地址两部分组成,实际地址也分为页号和页内地址两部分,由地址映射机构将虚页号转换成主存的实际页号.
段式虚拟存储器
段式管理: 把主存按段分配的存储管理方式.它是一种模块化的存储管理方式,每个用户程序模块可分到一个段,该程序模块只能访问分配给该模块的段所对应的主存空间.段长可以任意设定,并可放大和缩小.
段页式虚拟存储器
段页式管理:是上述两种方法的结合,它将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行.段的长度必须是页长的整数倍,段的起点必须是某一页的起点.

第四章、指令系统

知识框架:

在这里插入图片描述

15.指令流水线的基本概念

流水线基本原理:
流水线技术是一种显著提高指令执行速度与效率的技术。方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令。如果把一条指令的解释过程进一步细分,例如分成取指,译码, 访存,执行,和写回五个子过程,并用五个子部件分别处理这五个子过程.这样只需在上一指令的第一子过程处理完毕进入第二子过程处理时,在第一子部件中就开始对第二条指令的第一子过程进行处理.随着时间推移,这种重叠操作最后可达到五个子部件同时对五条指令的子过程进行操作。
典型的五级流水线的数据通路:
在这里插入图片描述
流水线方式的特点:
与传统的串行执行方式相比,采用流水线方式具有如下特点:

  1. 把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来执行,并依靠多个功能部件并行工作来缩短程序的执行时间。
  2. 流水线每个功能段部件后面都要有一个缓冲寄存器,或称锁存器,其作用是保存本流水段的执行结果,供给下一流水段使用。
  3. 流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流。
  4. 只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。在采用流水线方式工作的处理机中,要在软件和硬件设计等多方面尽量为流水线提供连续的任务。
  5. 流水线需要有装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指最后一个任务进入流水线到输出流水线的时间。

影响流水线性能的因素
1)结构相关是当多条指令同一时刻争用同一资源形成冲突
解决方案:(1)暂停一个时钟周期(2)单独设置数据存储器和指令存储器
2)数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的.
解决方案:(2)暂停一个时钟周期(2)数据旁路:把前一条指令的ALU计算结果直接输入到下一条指令
3)控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的.
解决方案:(1)延迟转移技术。(2)转移预测技术

16.CISC和RISC(复杂指令集和精简指令集)的对比?

在这里插入图片描述

第五章、中央处理器

知识框架:

在这里插入图片描述

18.CPU 的功能?

中央处理器(CPU) 由运算器和控制器组成。其中,控制器的功能是负责协调并控制计算机各部件执行程序的指令序列,包括取指令、分析指令和执行指令;运算器的功能是对数据进行加工。
CPU 的具体功能包括:

  1. 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制。一条指令的功能往往由若干操作信号的组合来实现。CPU 管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
  3. 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工。对数据进行算术和逻辑运算。
  5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。

19.流水线越多,并行度就越高。是否流水段越多,指令执行越快?

错误,原因如下:

  1. 流水段缓冲之间的额外开销增大。每个流水段有一些额外开销用于缓冲间传送数据、进行各种准备和发送等功能,这些开销加长了一条指令的整个执行时间,当指令间逻辑上相互依赖时,开销更大。
  2. 流水段间控制逻辑变多、变复杂。用于流水线优化和存储器(冲突处理的控制逻辑将随流水段的增加而大增,这可能导致用于流水段之间控制的逻辑比段本身的控制逻辑更复杂。

20.有关指令相关、数据相关的几个概念

  1. 两条连续的指令读取相同的寄存器时,会产生读后读相关,这种相关不会影响流水线。
  2. 某条指令要读取上一条指令所写入的寄存器时,会产生写后读相关,它称数据相关或真相关,影响流水线。按序流动的流水线只可能出现RAW 相关。
  3. 某条指令的上条指令要读/写该指令的输出寄存器时,会产生读后写和写后写相关。在非按序流动的流水线中,既可能发生RAW 相关,又可能发生WAR 相关和WAW 相关。对流水线影响最严重的指令相关是数据相关。

第六章、总线

知识框架:

在这里插入图片描述

21.引入总线结构有什么好处?

引入总线结构主要有以下优点:
1)简化了系统结构,便于系统设计制造。
2)大大减少了连线数目,便于布线,减小体积,提高系统的可靠性。
3)便于接口设计,所有与总线连接的设备均采用类似的接口。
4)便于系统的扩充、更新与灵活配置,易千实现系统的模块化。
5)便于设备的软件设计,所有接口的软件对不同的接口地址进行操作。
6)便于故障诊断和维修,同时也能降低成本。

22、总线相关概念

1、系统总线按照传输信息的不同,分成哪几类?是单向的,还是双向的?

1)分成数据总线、地址总线以及控制总线。
2)数据总线:各个功能部件之间传送数据信息,双向传输;
3)地址总线:用来指明数据总线上,源数据或目的数据所在的主存单元的地址。单向:由CPU发出
4)控制总线:用来发送各种控制信号。对于控制总线中的单根线,是单向的,即只能由一个部件发向另一 个部件。而一组控制总线中,有输入也有输出,因此,控制总线也可以看成是双向的。

2、什么是总线宽度、总线带宽、总线复用、信号线数?

1)总线宽度:数据总线的根数,一般是8的倍数。是衡量计算机系统性能的重要指标;
2)总线带宽:即总线数据传输速率,总线上每秒能够传输的最大字节量。
3)总线复用:一条信号线上分时传送两种信号。例如数据总线和地址总线的分时复用;
4)信号线数:地址总线、数据总线和控制总线三种总线的线数之和。

第七章、输入输出系统

知识框架:

在这里插入图片描述

23.CPU 响应中断应具备哪些条件?

1)在CPU 内部设置的中断屏蔽触发器必须是开放的。
2)外设有中断请求时,中断请求触发器必须处于"1" 状态,保持中断请求信号。
3)外设(接口)中断允许触发器必须为"1"'这样才能把外设中断请求送至CPU 。
具备上述三个条件时, CPU 在现行指令结束的最后一个状态周期响应中断。

24.中断响应优先级和中断处理优先级分别指什么?

中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为"0", 对新中断开放),若是,则中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。

25.向量中断、中断向量、向量地址三个概念是什么关系?

1)中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表。
2)向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号。
3)向量中断:指一种识别中断源的技术或方式。识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址。

26.程序中断和调用子程序有何区别?

两者的根本区别主要表现在服务时间和服务对象上不一样。

  1. 调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL) 执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。而中断过程发生的时间一般是随机的, CPU 在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决的。
  2. 子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。
  3. 主程序调用子程序的过程完全属千软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。
  4. 子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大。

相关文章:

计算机组成原理知识总结

目录 第一章、计算机系统概述知识框架:1.冯诺依曼机和存储程序的概念?2.计算机的工作过程?3.在计算机系统结构中,什么是编译?什么是解释?4.描述一下指令执行过程?1) 取指令: PC 一&g…...

springboot学习(八十五) 解决springboot3.2找不到资源无法抛出404错误的问题

前言 springboot3.2以下可以定义ErrorPageRegistrar将404错误转发到一个接口地址,但升级到springboot3.2(spring6.1)后,该配置不生效,抛出了500错误。 以前的错误页面处理如下: ConditionalOnClass(ErrorPageRegist…...

OpenHarmony 应用通用签名

一.背景 由于hap包需要经过签名才能安装到设备上,在DevEco Studio可以进行自动签名,但是自动签名只能安装在当前的设备上,在其他设备上不能安装,所以我们需要进行通用的手动签名,手动签名HarmonyOS和OpenHarmony流程是…...

Redis:原理+项目实战——Redis实战1(session实现短信登录(并剖析问题))

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis的Java客户端 📚订阅专栏:Redis速成 希望文章对你们有所帮助…...

交叉编译aarch64架构支持openssl的curl、libcurl

本文档旨在指导读者在x86_64平台上交叉编译curl和openssl库以支持aarch64架构。在开始之前,请确保您的系统环境已正确配置。 1. 系统环境准备 系统是基于Ubuntu 20.04 LTS,高版本可能会有问题。首页,安装必要的开发工具和库文件。打开终端并…...

扩展名是.KEY的文件可能有不同的存在,打开方式也因此不同

本文解释了使用KEY文件扩展名的所有不同格式,以及如何在可能的情况下打开和转换每种格式。 KEY文件的定义 KEY文件扩展名可能是用于注册软件程序的纯文本或加密的通用许可证密钥文件。不同的应用程序使用不同的KEY文件来注册各自的软件,并证明用户是合…...

软件工程总复习笔记

软件工程课程复习提纲 文章目录 软件工程课程复习提纲一、基本知识点1. 软件工程的概念及目标2. 软件危机的概念及典型表现3. 瀑布模型的概念及特点4. 快速原型模型的特点5. 螺旋模型的基本思想6. 软件生命周期的概念及划分为哪几个阶段7. 软件需求的定义8. 常见的软件需求获取…...

蓝桥杯-每日刷题-030

打印等边三角形 一、题目要求 题目描述 输出等边三角形&#xff1a;输入n值&#xff0c;输出高度为n的等边三角形。输入格式 输入存在多组测试数据。对于每组测试数据输入一个正整数n(1<n<100)。输出格式 对于每组测试数据输出对应的等边三角形。每组测试数据最后输出一…...

AI赋能游戏开发,如何更好地处理随之而来的海量数据,更好地利用开发游戏?

人工智能&#xff08;AI&#xff09;正在改变我们所知的游戏行业。它为3A工作室、独立开发者和业余爱好者提供了工具&#xff0c;让他们能够更轻松地创建以前需要大量时间和资源的项目。尤其是&#xff0c;虚幻引擎的AI工具已经取得了显著的进步。 虚幻引擎AI拥有专门用于游戏…...

Serverless架构学习路线及平台对比

在云计算领域&#xff0c;Serverless架构已经成为了一个重要的趋势。本文将为你提供一条清晰的Serverless架构学习路线&#xff0c;帮助你系统地掌握这个领域的知识&#xff0c;并对比国内外的Serverless平台的优缺点。 一、基础理论学习 首先&#xff0c;我们需要理解Server…...

解决ROS含动态参数的Config文件无法正确识别的错误

问题描述 功能包名为paddle_detection 在工作空间下, 通过catkin_make可以正常通过编译且执行无异常, 可以通过bloom-generate rosdebian生成依赖 但是在将其打包成deb包的过程中fakeroot debian/rules binary报错 fatal error: paddle_detection/paddle_detectionConfig.…...

探索 PyTorch 中的 torch.nn 模块**(1)

目录 引言 torch.nn使用和详解 Parameter 函数作用 使用技巧 使用方法和示例 UninitializedParameter 特点和用途 可进行的操作 使用示例 UninitializedBuffer 特点和用途 可进行的操作 使用示例 Module**&#xff08;重点&#xff09; 关键特性和功能 举例说…...

【WPF.NET开发】预览事件

本文内容 先决条件预览标记为“已处理”的事件通过控件解决事件禁止问题 预览事件&#xff0c;也称为隧道事件&#xff0c;是从应用程序根元素向下遍历元素树到引发事件的元素的路由事件。 引发事件的元素在事件数据中报告为Source 。 并非所有事件场景都支持或需要预览事件。…...

JDBC->SpringJDBC->Mybatis封装JDBC

一、JDBC介绍 Java数据库连接&#xff0c;&#xff08;Java Database Connectivity&#xff0c;简称JDBC&#xff09;是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口&#xff0c;提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们…...

ts中的keyof 关键字

const getVal <T,K extends keyof T>(obj:T,key:K) : T[K]>{return obj[key]; }使用了 keyof 关键字。keyof 是 TypeScript 的一个特性&#xff0c;它返回一个字符串字面量类型&#xff0c;表示对象类型的所有属性键的联合类型。 这段代码定义了一个泛型函数 gatVal&…...

Head First Design Patterns - 装饰者模式

什么是装饰者模式 装饰者模式动态地将额外责任附加到对象上。对于拓展功能&#xff0c;装饰者提供子类化的弹性替代方案。 --《Head First Design Patterns》中的定义 为什么会有装饰者模式 根据上述定义&#xff0c;简单来说&#xff0c;装饰者模式就是对原有的类&#xff0c…...

MySQL 执行过程

MySQL 的执行流程也确实是一个复杂的过程&#xff0c;它涉及多个组件的协同工作&#xff0c;故而在面试或者工作的过程中很容易陷入迷惑和误区。 MySQL 执行过程 本篇将以 MySQL 常见的 InnoDB 存储引擎为例&#xff0c;为大家详细介绍 SQL 语句的执行流程。从连接器开始&…...

判断电话号码是否重复-excel

有时候重复的数据不需要或者很烦人&#xff0c;就需要采取措施&#xff0c;希望以下的方法能帮到你。 1.判断是否重复 方法一&#xff1a; 1&#xff09;针对第一个单元格输入等号&#xff0c;以及公式countif(查找记录数的范围&#xff0c;需要查找的单元格&#xff09; 2…...

【Java开发岗面试】八股文—Java虚拟机(JVM)

声明&#xff1a; 背景&#xff1a;本人为24届双非硕校招生&#xff0c;已经完整经历了一次秋招&#xff0c;拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验&#xff08;主要是校招&#xff09;&#xff0c;包括我自己总结的八股文、算法、项目介绍、HR面和面试…...

【Linux】Linux 下基本指令 -- 详解

无论是什么命令&#xff0c;用于什么用途&#xff0c;在 Linux 中&#xff0c;命令有其通用的格式&#xff1a; command [-options] [parameter] command&#xff1a;命令本身。-options&#xff1a;[可选&#xff0c;非必填]命令的一些选项&#xff0c;可以通过选项控制命令的…...

Eureka注册及使用

一、Eureka的作用 Eureka是一个服务注册与发现的工具&#xff0c;主要用于微服务架构中的服务发现和负载均衡。其主要作用包括&#xff1a; 服务提供者将自己注册到Eureka Server上&#xff0c;包括服务的地址和端口等信息。服务消费者从Eureka Server上获取服务提供者的地址…...

Ubuntu之修改时区/时间

1、查看当前时间及时区状态 sudo timedatectl status # 显示当前时区为Asia/Shanghai 2、查看当前系统时间 sudo date 3、查看当前系统时间及时区 sudo date -R # 显示当前时间及对应时区&#xff0c;时区为“0800”北京时区 4、修改硬件时间 修改日期格式&#xff1a…...

4、内存泄漏检测(多线程)

4、内存泄漏多线程 多线程下使用Valgrind 工具的memcheck检查. 安装 sudo apt install valgrind使用 valgrind --toolmemcheck --leak-checkfull ./app_main 指令效果如下所示. wqwq-Virtual-Machine:~/work/test_zlog/build$ valgrind --toolmemcheck --leak-checkfull .…...

在使用tcp长连接时,是否还需要再引入重发机制?

一 什么是tcp长连接&#xff1f; 在TCP&#xff08;Transmission Control Protocol&#xff09;中&#xff0c;长连接是指在通信过程中保持连接状态的一种方式&#xff0c;相对于短连接而言。长连接通常用于需要频繁通信的场景&#xff0c;以减少连接建立和断开的开销。在长连接…...

记一次Oracle Cloud计算实例ssh恢复过程

#ssh秘钥丢失# &#xff0c; #Oracle Cloud# 。 电脑上的ssh秘钥文件不知道什么时候丢失了&#xff0c;直到用的时候才发现没有了&#xff0c;这下可好&#xff0c;Oracle Cloud的计算实例连不上了&#xff0c;这个实例只能通过ssh连接上去&#xff1a; 以下是解决步骤&#x…...

2024年01月数据库流行度最新排名

点击查看最新数据库流行度最新排名&#xff08;每月更新&#xff09; 2024年01月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多&#xff0c;这个数据库就被认为越受欢迎。这是一个领先指标。原始数…...

Stable Diffusion API入门:简明教程

Stable Diffusion 是一个先进的深度学习模型&#xff0c;用于创造和修改图像。这个模型能够基于文本描述来生成图像&#xff0c;让机器理解和实现用户的创意。使用这项技术的关键在于掌握其 API&#xff0c;通过编程来操控图像生成的过程。 在探索 Stable Diffusion API 的世界…...

数据结构--二叉搜索树的实现

目录 1.二叉搜索树的概念 2.二叉搜索树的操作 二叉搜索树的插入 中序遍历(常用于排序) 二叉搜索树的查找 二叉搜索树的删除 完整二叉树代码&#xff1a; 二叉搜索树的应用 key/value搜索模型整体代码 1.二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一…...

《微信小程序开发从入门到实战》学习六十八

6.6 网络API 6.6.1 网络API 使用wx.request接口可以发起网络请求。该接口接受一个Object参&#xff0c;参数支持属性如下所示&#xff1a; url(必填)&#xff1a;开发者服务器地址 data&#xff1a;请求的参数&#xff0c;类型为string/object/ArrayBuffer header&#xf…...

阿里是如何去“O”的?

大家好&#xff0c;我是老猫&#xff0c;猫头鹰的“猫”。 今天我们来聊聊数据库这个话题。 2009年&#xff0c;阿里提出“去IOE化”的概念&#xff0c;这在当时看起来是天方夜谭&#xff0c;但目前来看可以说是"轻舟已过万重山"。 IOE是传统IT三大件&#xff0c;…...

蓝桥杯备赛 day 1 —— 递归 、递归、枚举算法(C/C++,零基础,配图)

目录 &#x1f308;前言 &#x1f4c1; 枚举的概念 &#x1f4c1;递归的概念 例题&#xff1a; 1. 递归实现指数型枚举 2. 递归实现排列型枚举 3. 递归实现组合型枚举 &#x1f4c1; 递推的概念 例题&#xff1a; 斐波那契数列 &#x1f4c1;习题 1. 带分数 2. 反硬币 3. 费解的…...

87 双指针解验证回文字符串II

问题描述&#xff1a;简单给定一个非空字符串s&#xff0c;最多删除一个字符&#xff0c;判断是否成为回文字符串。 双指针解法&#xff1a;指针1指向开头&#xff0c;指针2指向结尾&#xff0c;定义一个count记录不满足回文串的数量&#xff0c;若超过1&#xff0c;则返回fal…...

【排序算法】【二叉树】【滑动窗口】LeetCode220: 存在重复元素 III

作者推荐 【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值 本文涉及的基础知识点 C算法&#xff1a;滑动窗口总结 题目 给你一个整数数组 nums 和两个整数 indexDiff 和 valueDiff 。 找出满足下述条件的下标对 (i, j)&#xff1a; i ! j, abs(i - j) < indexDi…...

OS 7--DNS配置+Apache发布网站

环境准备 centOS 7 1.配置DNS 1.1 域名为lianxi.com 1.2 为WWW服务器、FTP服务器、NEWS服务器做域名解析 1)安装DNS yum -y install bind bind-utils (如果安装不上&#xff0c;就把磁盘在重洗挂载一下&#xff09; 2&#xff09;修改DNS配置文件 vim /etc/resolv.conf…...

1月2日代码随想录二叉树的最小深度及层序遍历总结

个人认为这么一个层序遍历的章节放这么多基本一样的题目算是很没意思的了 填充每个节点的下一个右侧节点和二叉树最大深度和前面的代码几乎完全一样&#xff0c;所以我就跳过了 代码随想录 (programmercarl.com) 代码随想录 (programmercarl.com) 111.二叉树的最小深度 给…...

RK3568平台开发系列讲解(Linux系统篇)PWM系统编程

🚀返回专栏总目录 文章目录 一、什么是PWM二、PWM相关节点三、PWM应用编程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 PWM 的系统编程。 一、什么是PWM PWM,即脉冲宽度调制(Pulse Width Modulation)...

Linux CPU 数据 Metrics 指标解读

过去从未仔细了解过使用 top 和 htop 等命令时显式的CPU信息&#xff0c;本文我们详解解读和标注一下各个数据项的含义&#xff0c;同时和 Ganglia 显式的数据做一个映射。开始前介绍一个小知识&#xff0c;很多查看CPU的命令行工具都是 cat /proc/stat 里的数据&#xff0c;所…...

Ansible自动化运维(一)简介及部署、清单

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…...

深度学习MLP_实战演练使用感知机用于感情识别_keras

目录 &#xff08;1&#xff09;why deep learning is game changing?&#xff08;2&#xff09;it all started with a neuron&#xff08;3&#xff09;Perceptron&#xff08;4&#xff09;Perceptron for Binary Classification&#xff08;5&#xff09;put it all toget…...

[ffmpeg系列 02] 音视频基本知识

一 视频 RGB&#xff1a; AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB… Y&#xff1a;明亮度, Luminance或luma, 灰阶图&#xff0c; UV&#xff1a;色度&#xff0c;Chrominance或Chroma。 YCbCr: Cb蓝色分量&#xff0c;Cr是红色分量。 取值范围&#xff…...

【ASP.NET Core 基础知识】--目录

介绍 1.1 什么是ASP.NET Core1.2 ASP.NET Core的优势1.3 ASP.NET Core的版本历史 环境设置 2.1 安装和配置.NET Core SDK2.2 使用IDE&#xff08;Integrated Development Environment&#xff09;&#xff1a;Visual Studio Code / Visual Studio 项目结构 3.1 ASP.NET Core项…...

java数据结构与算法刷题-----LeetCode509. 斐波那契数

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…...

vue3 element plus el-table封装(二)

上文是对el-table的基本封装&#xff0c;只能满足最简单的应用&#xff0c;本文主要是在上文的基础上增加slot插槽&#xff0c;并且对col插槽进行拓展&#xff0c;增加通用性 // BaseTable.vue <template><el-table><template v-for"name in tableSlots&…...

cnn lstm结合网络

目录 特征处理例子&#xff1a; cnn 5张图片一组&#xff0c;提取特征后&#xff0c;再给lstm&#xff0c;进时间序列分类。 特征处理例子&#xff1a; import torch# 假设 tensor 是形状为 15x64 的张量 tensor torch.arange(15 * 2).reshape(15, 2) # 生成顺序编号的张量&…...

Ubuntu连接xshell

安装ssh服务器 sudo apt-get install openssh-server​ 重启ssh sudo service ssh restart 3.启动ssh服务 /etc/init.d/ssh start4.修改文件&#xff0c;允许远程登陆 sudo vi /etc/ssh/sshd_config PermitRootLogin prohibit-password #默认为禁止登录 PermitRootLogin y…...

nginx安装和配置

目录 1.安装 2.配置 3.最小配置说明 4. nginx 默认访问路径 1.安装 使用 epel 源安装 先安装 yum 的扩展包 yum install epel-release -y 再安装 nginx yum install nginx -y 在启动nginx 前先关闭防火墙 systemctl stop firewalld 取消防火墙开机自启 systemctl di…...

【头歌实训】kafka-入门篇

文章目录 第1关&#xff1a;kafka - 初体验任务描述相关知识Kafka 简述Kafka 应用场景Kafka 架构组件kafka 常用命令 编程要求测试说明答案代码 第2关&#xff1a;生产者 &#xff08;Producer &#xff09; - 简单模式任务描述相关知识Producer 简单模式Producer 的开发步骤Ka…...

华为云创新中心,引领浙南的数字化腾飞

编辑&#xff1a;阿冒 设计&#xff1a;沐由 县域经济是我国国民经济的重要组成部分&#xff0c;是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中&#xff0c;县域经济扮演的角色也越来越重要。 毫无疑问&#xff0c;县域经济的良性发展&#xff0c;需要多方…...

240101-5步MacOS自带软件无损快速导出iPhone照片

硬件准备&#xff1a; iphone手机Mac电脑数据线 操作步骤&#xff1a; Step 1: 找到并打开MacOS自带的图像捕捉 Step 2: 通过数据线将iphone与电脑连接Step 3&#xff1a;iphone与电脑提示“是否授权“&#xff1f; >>> “是“Step 4&#xff1a;左上角选择自己的设…...

github鉴权失败

问题&#xff1a; 如上图所示 git push 时发生了报错&#xff0c;鉴权失败&#xff1b; 解决方案 Settings->Developer settings->Personal access tokens->Generate new token。创建新的访问密钥&#xff0c;勾选repo栏&#xff0c;选择有效期&#xff0c;为密钥命…...