目录
前言
整理不易,请多多支持笔者,谢谢 😉
指令系统和计算机体系结构
CPU
计算机执行指令的过程中,需要由CPU的控制器产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。
CPU的运算器只能完成运算,而控制器用于控制整个CPU的工作。
CPU 访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为空间局限性。
程序的局限性:时间和空间。时间局限性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行。
RISC (Reduced Instruction Set Computer,精简指令集系统计算机)
- 指令长度固定、指令种类尽量少
- 寻址方式比较单一,多寄存器寻址
- 增加寄存器数目以减少访存次数
- 用硬布线电路实现指令解码,快速完成指令译码
CISC(Complex Instruction Set Computer,复杂指令集系统计算机)
CPU 在执行指令的过程中,会自动修改程序计数器的内容,以使其保存的总是将要执行的下一条指令的地址。
计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将程序计数器的内容送到地址总线上。
CPU 执行指令的过程中,会自动修改 PC 的内容,PC 是程序(指令)计数器,用来存放将要执行的下一条指令。
指令寄存器(IR)用于存放当前从主存储器读出的正在执行的一条指令。指令寄存器的位数取决于指令字长。
指令译码器(ID)对指令中的操作码字段进行分析和解释。
地址寄存器(AR),不是我们常用的 CPU 内部部件,其作用是是用来保存当前 CPU所要访问的内存单元或 I/O 设备的地址。
累加器(AC)全称累加寄存器,是一个通用寄存器。其功能是,当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为 ALU提供一个工作区。累加寄存器暂时存放 ALU 运算的结果信息。
在程序运行过程中,CPU 需要将指令从内存中取出并加以分析和执行。CPU 依据指令周期的不同阶段来区分在内存中以二进制编码形式存放的指令和数据。
指令和数据是都存储在内存中,传统计算机 CPU在执行过程中根据指令周期的不同阶段来区分是指令还是数据,取指周期取出的是指令,执行周期取出的是数据。
CPU访问速度:通用寄存器 > Cache > 内存 > 硬盘
三总线结构的计算机总线系统由数据总线、地址总线和控制总线组成。
程序计数器、指令寄存器和指令译码器都是 CPU 中控制单元的部件,加法器是算术逻辑运算单元的部件。
流水线
下列关于流水线方式执行指令的叙述中,不正确的是 A
A.流水线方式可提高单条指令的执行速度
B.流水线方式下可同时执行多条指令
C.流水线方式提高了各部件的利用率
D.流水线方式提高了系统的吞吐率
对于只有单条指令的情况下,流水线方式与顺序执行时没有区别的。流水线的原理是在某一时刻可以让多个部件同时处理多条指令,避免各部件等待空闲,由此提高了各部件的利用率,也提高了系统的吞吐率。
流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则流水线的吞吐率是最长流水段操作时间的倒数。
某四级指令流水线分别完成取指、取数、运算、保存结果四步操作。若完成上述操作的时间依次为 8ns、9ns、 4ns、8ns,则该流水线的操作周期应至少为9ns 。
将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行,若取指时间t 取指=4△t、分析时间 t 分析=2△t、执行时间 t 执行=3△t,则执行完 100 条指令,需要的时间为405△t。
第一条指令执行时间+(指令数-1)*各指令段执行时间中最大的执行时间。 4△t + 3△t + 2△t +(100-1)X 4△t =405△t
某指令流水线由 4 段组成,各段所需要的时间如下图所示。连续输入 8 条指令时的吞吐率(单位时间内流水线所完成的任务数或输出的结果数)为8/28△t。
(1+2+3+1)+7*3=28
如果流水线出现断流,加速比会明显下降;要使加速比和效率最大化应该对流水线各级采用相同的运行时间;流水线釆用异步控制并不会给流水线性能带来改善,反而会增加控制电路的复杂性。
其他
VLIW:(Very Long Instruction Word,超长指令字)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:
- 左移(<<)
- 带符号右移/算术右移(>>)
- 无符号右移/逻辑右移(>>>)
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移 n 位就相当于乘以 2 的 n 次方。
在机器指令的地址字段中,直接指出操作数本身的寻址方式称为立即寻址。
例如:MOV AX, 1234H ;
给AX寄存器赋值为1234H。指令中地址码字段直接给出操作数本身,而不是其访存地址,不需要访问任何地址的寻址方式被称为立即寻址。
Flynn 主要根据指令流和数据流来分类,分为四类:
- 单指令流单数据流机器(SISD)
- 单指令流多数据流机器(SIMD)
- 多指令流单数据流机器(MISD)
MISD 是采用多个指令流来处理单个数据流。在实际情况中,采用多指令流处理多数据流才是更有效的方法。因此MISD 只是作为理论模型出现,没有投入实际应用。- 多指令流多数据流机器(MIMD)
若某计算机字长为 32 位,内存容量为 2GB,按字编址,则可寻址范围为512M。
内存容量 2GB=2x1024x1024x1024x8位,按字编址时,存储单元的个数为2x1024x1024x1024x8/32=512x1024x1024,即可寻址范围为 512MB。
存储上的 k 是1024,速度上的 k 是1000,注意区分。
输入输出系统
DMA
直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间(即主存与外设之间)直接成块传送。
DMA方式工作时,CPU交出计算机系统总线的控制权,在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,并不需要CPU参与工作。故这种方式传送的速度最快。
CPU 是在一个总线周期结束时响应 DMA 请求的。
中断
计算机运行过程中,遇到突发率件,要求 CPU 暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为中断,其处理过程中保存现场的目的是返回去继续执行原程序。
当用户通过键盘或鼠标进入某应用系统时,通常最先获得键盘或鼠标输入信息的是中断处理程序。
计算机中 CPU 的中断响应时间指的是从发出中断请求到开始进入中断处理程序的时间。
中断向量可提供中断服务程序的入口地址。
为了便于实现多级中断嵌套,使用堆栈来保护断点和现场最有效。
计算机运行过程中,CPU 需要与外设进行数据交换。采用中断方式和 DMA 方式控制技术时, CPU 与外设可并行工作。
其他
BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从 CMOS 中读写系统设置的具体信息。
系统性能测评和可靠性基础
某系统由 3 个部件构成,每个部件的千小时可靠度都为 R,该系统的千小时可靠度为(1-(1-R)²)R,则该系统的构成方式是前两个部件并联后与第三个部件串联。
三个部件串联:R * R * R
三个部件并联:1 - (1-R) * (1-R) * (1-R)
前两个部件并联后与第三个部件串联:(1 - (1-R) * (1-R)) * R
第一个部件与后两个部件并联构成的子系统串联:R * (1-(1-R) * (1-R))
计算机基本工作原理
数据校验
在循环冗余校验方法中,采用模 2 运算来构造校验位。
循环冗余校验(Cyclic Redundancy Check, CRC)
</