概述
1、从低向上讲解
2、3-7 分 平均5 分,只有上午考
3、和架构考察知识点基本一致
4、存储系统重点 几乎每年必考
5、流水线 考察交深入 超标量流水线
6、可靠性:串并联系统的可靠性计算
计算机组成
计算机五大部件
计算机硬件组成
1、运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit。CPU 是硬件系统的核心,用于数据的加工处理能完成各种算术、逻辑运算及控制功能
2、存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度慢,可以长期保存程序和数据。
3、输入设备和输出设备合称为外部设备 (简称外设,也叫IO设备),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
CPU执行算术运算或者逻辑运算时,常将源操作数和结果存在(B)中
A.程序计数器(PC) B.累加器 (AC)
C.指令寄存器 (IR) D.地址寄存器 (AR)
A 程序计数器(Program Counter,PC)
程序计数器(Program Counter,PC)是用于存放下一条指令所在单元的地址的地方。CPU在执行程序时,会按照PC所指向的地址去取出指令并执行,然后PC的值会自动更新,指向下一条要执行的指令地址。它的主要作用是控制程序的执行流程,而不是暂存算术运算或逻辑运算的源操作数和结果,所以A选项错误。
B 累加器(Accumulator,AC)
累加器(Accumulator,AC)是一个通用寄存器,在CPU执行算术运算或者逻辑运算时,它常被用来暂存源操作数和运算结果。例如,在进行加法运算时,一个操作数可以先存放在累加器中,然后与另一个操作数进行相加,相加的结果又会存回到累加器中。所以累加器可以满足题目中暂存源操作数和结果的要求,B选项正确。
C 指令寄存器(Instruction Register,IR)
指令寄存器(Instruction Register,IR)的功能是存放当前从主存储器读出的正在执行的一条指令。当CPU从内存中取出一条指令后,会将其存放在指令寄存器中,以便后续对该指令进行译码和执行。它主要用于指令的存储和解析,而不是用于暂存运算的源操作数和结果,所以C选项错误。
D 地址寄存器(Address Register,AR)
地址寄存器(Address Register,AR)主要用于存放CPU当前访问的内存单元的地址。在CPU与内存进行数据交换时,地址寄存器会提供要访问的内存地址,使得CPU能够准确地找到所需的数据或指令所在的位置。它不用于暂存算术运算或逻辑运算的源操作数和结果,所以D选项错误。
执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即( C)的内容送到地址总线上
A.指令寄存器(IR) B.通用寄存器(GR)
C.程序计数器(PC) D.状态寄存器(PSW)
本题答案选C。以下是对各选项的分析:
A指令寄存器(Instruction Register,IR)
指令寄存器(Instruction Register,IR)的作用是存放从内存中取出的当前正在执行的指令。它的主要功能是保存指令内容,以便后续对指令进行译码和执行操作,而不是提供指令的地址,所以不会将其内容送到地址总线上来读取指令,A选项错误。
B 通用寄存器(General - Purpose Register,GR)
通用寄存器(General - Purpose Register,GR)是一组可以由程序员灵活使用的寄存器,它们可以用于暂存数据、地址或者中间运算结果等。通用寄存器主要用于数据的存储和运算操作,并非专门用于存储指令地址,因此不会在取指令阶段将其内容送到地址总线上,B选项错误。
C 程序计数器(Program Counter,PC)
程序计数器(Program Counter,PC)的主要功能是存放下一条要执行的指令的地址。在一个指令周期开始时,CPU需要从内存中读取要执行的指令,此时会将程序计数器PC中的内容送到地址总线上,通过地址总线找到内存中相应的存储单元,从而读取该地址处的指令。在取出指令后,程序计数器会自动更新,指向下一条要执行的指令地址,C选项正确。
D 状态寄存器(Program Status Word,PSW)
状态寄存器(Program Status Word,PSW)也称为程序状态字寄存器,它用于保存CPU在执行指令过程中的各种状态信息,如进位标志、溢出标志、零标志等。这些状态信息反映了指令执行后的结果和CPU的当前状态,而不是用于存储指令地址,所以不会将其内容送到地址总线上来读取指令,D选项错误。
综上,答案选C。
浮点数
Flynn分类法
CISC和RISC
流水线技术
第一题
总时间=各段时间之和 + (n-1)*T_max。这里各段时间之和是2+1+1+1+1=6ns,然后加上99*2ns=198ns,总时间=6+198=204ns。所以吞吐率=100/(204e-9)=约490,196,078.43≈4.9×10^8个/s。这时候答案接近4.9e8,
第二题
单缓冲区情况
在单缓冲区的情况下,磁盘块数据的处理过程是顺序进行的,即先将一个磁盘块读入缓冲区,再将缓冲区的数据送至用户区,最后在用户区内对数据进行处理。由于磁盘块与缓冲区大小相同,且在数据从缓冲区传送到用户区时,磁盘可以同时读入下一个磁盘块的数据,但为了保证数据处理的顺序性,必须等上一个磁盘块的数据处理完才能处理下一个磁盘块的数据。
对于第一个磁盘块,需要依次经历读入缓冲区、送至用户区、在用户区处理这三个步骤,所花费的时间为:15+5+1=21(μsμs)。
对于剩下的99个磁盘块,由于在将缓冲区的数据送至用户区时磁盘可以同时读入下一个磁盘块的数据,所以每个磁盘块实际花费的时间取决于读入缓冲区时间和送至用户区时间中的最大值与处理时间之和。因为15>5,所以每个磁盘块花费的时间为15+5+1=21(μsμs)。
因此,处理1010个磁盘块采用单缓冲区总共花费的时间为:21+9×(15+5)=21+9×20=20121+9×(15+5)=21+9×20=201(μsμs)。
双缓冲区情况
在双缓冲区的情况下,当一个缓冲区在向用户区传送数据时,另一个缓冲区可以同时从磁盘读入数据,这两个操作可以并行进行。
对于第一个磁盘块,同样需要依次经历读入缓冲区、送至用户区、在用户区处理这三个步骤,所花费的时间为:15+5+1=2115+5+1=21(μsμs)。
对于剩下的99个磁盘块,由于有双缓冲区,磁盘可以不断地向一个缓冲区读入数据,同时另一个缓冲区向用户区传送数据,所以可以将读入缓冲区和送至用户区这两个操作并行执行,花费时间取决于两者中的最大值15μs15μs,再加上处理时间1μs1μs,即每个磁盘块花费15+1=1615+1=16(μsμs)。
因此,处理1010个磁盘块采用双缓冲区总共花费的时间为:21+9×(15+1)=21+9×16=16521+9×(15+1)=21+9×16=165(μsμs)。
综上,采用单缓冲区需要花费的时间为201μs;采用双缓冲区需要花费的时间为165μs
校验码
可靠性
答案D
总线
总线的特性
总线是连接多个部件的信息传输线,是各部件共享的传输介质。由于总线是共享资源,同一时刻只能有一个部件向总线发送数据,否则会发生数据冲突,导致数据传输错误。
数据发送方式
如果多个部件同时向总线发送数据,不同部件发送的信号会相互干扰,使得总线上的数据混乱,无法准确传输信息。所以挂接在总线上的多个部件只能分时向总线发送数据,即每个时刻只有一个部件可以占用总线发送数据。
数据接收方式
而对于数据接收,总线上传输的数据可以被多个部件同时接收,因为接收数据不会产生冲突问题,多个部件可以同时监听总线上的数据,根据自身的需求来接收相应的数据。
综上所述,挂接在总线上的多个部件只能分时向总线发送数据,但可同时从总线接收数据,答案选B。
半双工总线的特点
半双工通信允许数据在两个方向上传输,但同一时刻只允许数据在一个方向上传输,也就是说半双工总线可以在两个方向上轮流传输信息。例如,在某些通信场景中,设备A和设备B通过半双工总线连接,设备A可以先向设备B发送数据,之后设备B再向设备A发送数据,二者不能同时进行数据发送。
全双工总线的特点
全双工通信允许数据同时在两个方向上进行传输,即全双工总线可以在两个方向上同时传输信息。比如在一些高速网络通信中,使用全双工总线可以实现数据的双向同时传输,大大提高了数据传输的效率。
对各选项的分析
- 选项A:描述错误,半双工总线是可以在两个方向轮流传输信息,而不是只能在一个方向上传输信息;全双工总线是可以在两个方向同时传输信息,不是轮流传输。
- 选项B:描述错误,半双工总线不是只能在一个方向上传输信息,而是可以在两个方向上轮流传输。
- 选项C:该选项对半双工总线和全双工总线的描述是正确的。
- 选项D:描述错误,半双工总线不能在两个方向上同时传输信息,全双工总线不是在两个方向上轮流传输信息。
综上,答案选C。
选项A
串行总线是将数据一位一位地顺序传送,虽然全双工串行总线是存在的,但串行总线并不都是全双工的,也有半双工和单工的串行总线。并且串行总线由于每次只传输一位数据,传输速率相对较低,但它适宜于长距离传输数据,因为其线路简单,抗干扰能力相对较强。所以选项A中“串行总线一般都是全双工总线”的说法错误。
选项B
波特率是指单位时间内传输的二进制位数,在一些串行通信系统中,波特率是在总线初始化时预先设置好的,但在实际使用中,有些串行总线是可以通过软件重新配置来改变波特率的,以适应不同的通信需求。所以“波特率使用中不可改变”的说法错误。
选项C
串行总线是按位(bit)传输数据的,由于在数据传输过程中可能会受到各种干扰,导致数据出现错误。为了保证数据的正确性,通常会在数据中添加校验码,当接收端接收到数据后,会根据校验码来判断数据是否正确,如果发现错误,可以通过一定的纠错机制进行纠正。所以该选项说法正确。
选项D
串行总线的数据发送和接收方式有多种,常见的有软件查询方式、中断方式和DMA(直接内存访问)方式等。软件查询方式只是其中一种,并不是唯一的工作方式。所以“是以软件查询方式工作”的说法错误。
综上,答案选C。
存储系统
答案选D
选项A
在Cache中,命中率主要受Cache的容量、映射方式以及Cache中数据的替换策略等因素影响。虽然替换算法的时间复杂度会影响Cache的性能,但它不是影响Cache命中率的关键因素。关键因素在于Cache能否有效地存储和管理那些CPU即将要访问的数据,即Cache的空间利用效率等。所以选项A错误。
选项B
Cache的设计思想是利用程序访问的局部性原理,在CPU和主存之间设置一个容量相对较小但速度非常快的高速缓冲存储器。通过合理的映射方式和替换算法,使得CPU在大部分时间里能够直接从Cache中获取所需的数据,从而提高访存速度。同时,Cache的成本相对主存较高,所以需要在合理的成本下尽可能提高命中率,以达到性能和成本的平衡。因此,选项B正确。
选项C
Cache的设计目标是在有限的成本下,通过高速的存储和快速的访问,提高CPU访问数据的速度,而不是使Cache的容量尽可能与主存容量相等。如果Cache容量与主存容量相等,那么成本会大幅增加,并且在性能提升上也不会有与之匹配的收益,因为Cache主要是为了存储CPU近期可能会访问的数据,并不需要存储主存中的所有数据。所以选项C错误。
选项D
CPU内的Cache(一级Cache、二级Cache等)和CPU外的Cache(如三级Cache)在整个计算机系统中承担着不同的角色和功能。它们的容量大小是根据系统的设计需求和性能优化目标来确定的,并没有CPU中的Cache容量应该大于CPU之外的Cache容量这样的固定规则。一般来说,CPU内的Cache容量相对较小,但速度更快,而CPU外的Cache容量可能会大一些,以提供更广泛的数据缓冲。所以选项D错误。
综上,答案是B。
第一题
- 选项A:硬件可以实现高速的数据处理和操作。在Cache - 主存的地址转换中,使用专门的硬件电路来完成地址映射和转换。这些硬件电路能够在极短的时间内完成地址的转换工作,以保证CPU能够高效地访问Cache。例如,常见的Cache地址映射方式(直接映射、全相联映射、组相联映射)的地址转换逻辑都是由硬件实现的,这样可以满足CPU高速访问的要求。所以主存单元到Cache单元的地址转换由硬件完成,该选项正确。
- 选项B:寻址方式主要是指CPU在指令中指定操作数地址的方式,它与主存和Cache之间的地址转换没有直接关系。寻址方式关注的是如何从指令中获取操作数的地址,而不是如何将主存地址转换为Cache地址,所以该选项错误。
- 选项C:软件的执行速度相对较慢,无法满足Cache - 主存地址转换所需的高速要求。虽然Cache系统中可能会有一些辅助硬件来完成其他功能,但地址转换本身主要是由硬件独立完成的,而不是由软件和少量辅助硬件完成,所以该选项错误。
- 选项D:微程序主要用于实现CPU的指令系统,是将一条机器指令分解为一系列微指令来执行。它与Cache - 主存之间的地址转换过程没有直接联系,地址转换是为了实现快速的Cache访问,和微程序实现指令执行的功能不同,所以该选项错误。
第二题
本题可根据不同Cache地址映像方式的特点,分析其块冲突概率的高低,进而确定从高到低的排列顺序。
直接映像
直接映像是指主存中的每一块只能映像到Cache的一个特定块中。具体来说,主存块号与Cache块号之间存在固定的映射关系,通过主存地址的某些位直接确定其在Cache中的位置。这种映射方式的优点是实现简单、成本低,但缺点是灵活性差。当多个主存块需要映射到Cache中同一个特定块时,就会发生块冲突,即使Cache中还有其他空闲块也无法使用,因此直接映像的块冲突概率较高。
组相联映像
组相联映像是直接映像和全相联映像的折中方案。它将Cache分成若干组,主存块先映像到Cache的特定组,然后在组内可以采用全相联的方式进行映像。也就是说,一个主存块可以映像到Cache中特定组内的任意一块。这种方式比直接映像更灵活,因为它在组内有一定的选择空间,当发生块冲突时,有更多的块可供选择来存放主存块,所以其块冲突概率比直接映像低。
全相联映像
全相联映像是指主存中的任意一块可以映像到Cache中的任意一块。在这种映像方式下,主存块可以灵活地存放在Cache的任何空闲位置,只要Cache中有空闲块,就不会发生块冲突,只有当Cache全部被占满时才会出现块冲突,因此全相联映像的块冲突概率最低。
综上所述,按照Cache地址映像的块冲突概率从高到低排列为:直接映像→组相联映像→全相联映像,答案选B。
输入输出技术
无条件传送方式
无条件传送方式是指在进行输入/输出操作时,假定外部设备已经准备好数据或者可以接收数据,CPU直接进行数据的传送。这种方式需要CPU执行程序指令来控制数据的传送,例如使用特定的输入/输出指令将数据从外设读入或输出到外设,所以该方式不符合要求。
中断方式
中断方式是指当外部设备准备好数据或者完成操作时,向CPU发出中断请求,CPU暂停当前正在执行的程序,转去执行相应的中断服务程序来完成数据的传送。在中断服务程序中,CPU需要执行一系列的指令来处理数据的输入/输出,因此也需要CPU执行程序指令来传送数据,该方式不符合要求。
程序查询方式
程序查询方式是指CPU通过不断地查询外部设备的状态,判断设备是否准备好数据或者可以接收数据。当设备准备好时,CPU执行相应的指令来进行数据的传送。整个过程中,CPU需要不断地执行查询指令和传送指令,所以同样需要CPU执行程序指令来传送数据,该方式不符合要求。
DMA方式
DMA(Direct Memory Access,直接内存访问)方式是一种完全由硬件执行I/O数据交换的工作方式。在DMA方式下,DMA控制器(DMAC)可以直接控制内存和外设之间的数据传输,不需要CPU的干预。当外设需要进行数据传输时,DMAC向CPU发出请求,CPU将总线控制权交给DMAC,DMAC在接收到总线控制权后,直接在内存和外设之间进行数据传输,传输完成后再将总线控制权交还给CPU。整个数据传输过程中,不需要CPU执行程序指令来传送数据,符合题目要求。
综上,答案是DMA方式。
内存编址
分析:有内存地址偏移量,可以求出总内存是多大。然后用总内存除以单片内存,即可算出需要几片内存。
总内存 = 尾地址 - 首地址 +1
8FFFF - 84000 = BFFF (A=10,B=11, C=12,D=13,E=14, F=15)
BFFF +1 = C000
C000 转二进制 = 1100 0000 0000 0000 = 2^15 + 2^14 = 2^10 * ( 2^5 + 2^4) = 1k * (32+16) = 48K 由于是按字节编址,1B=8b,因此总内存= 48K * 8
总内存 / 单片内存 = 48K * 2^3 / 8K * 2^2 = 6 * 2^1 = 12
结论:共需12片
磁盘管理