计算机组成原理(考研408)练习题#2

用于复习408或计算机组成原理期末考试。如有错误请在评论区指出。

So let's start studying with questions!

それでは、問題の勉強を始めましょう!

11.某 cache 采用全相联映射,假设 cache 有 3 块,程序运行过程中需要访问的主存块号依 次为 0,1,2,4,2,3,0,2,1,3,2,3,0,1,4 则若采用 LRU 替换算法,改程序运行过程中的命 中率是多少。(请写出计算过程) 

首先,全相联映射的意思是,任何主存块都可以映射到缓存的任何一个块中。因此,在这个例子中,我们有一个包含 3 个缓存块的全相联缓存。因此,每个主存块都可以映射到这三个块中的任何一个。

使用 LRU 替换算法,我们需要按照最近最少使用的顺序来替换缓存中的块。具体来说,当缓存中的块全部被占用时,当需要添加一个新的块时,我们会选择最近最少被使用的块进行替换。因此,在这个例子中,我们需要记录每个缓存块上一次被访问的时间。

以下是这个程序运行过程中每个主存块的命中情况,以及缓存中每个块的状态和时间戳:

访问主存块缓存块 1时间戳 1缓存块 2时间戳 2缓存块 3时间戳 3命中/未命中
0未命中
101未命中
20112未命中
4011223未命中
2011423命中
3011523未命中
0361523未命中
2361708命中
1362908未命中
31102908未命中
211131208命中
311121308命中
0114213315命中

根据上表中的最后一列,程序运行过程中一共有 15 次主存块访问。其中,有 7 次命中,8 次未命中。因此,缓存的命中率为:

命中率 = 命中次数 / 总访问次数 = 7 / 15 ≈ 0.47

因此,使用 LRU 替换算法时,这个程序运行过程中的缓存命中率约为 0.47。

12. 主存容量为 512KB,Cache 容量为 4KB,每个字块为 16 个字,每个字 32 位。

(1)Cache 地址有多少位?可容纳多少块?

(2)主存地址有多少位?可容纳多少块?

(3)在直接映射方式下,主存的第几块映射到 Cache 的第 5 块(设起始字块为第 1 块)?

(4)直接映射方式下,主存地址中的各字段(主存字块标记、缓存字块地址、字块内地址)各多少位?

根据题目给出的情况,可以计算如下:

(1) Cache 地址的位数: Cache 容量为 4KB = 4 * 1024B 每个字块为 16 个字,每个字 32 位,所以一个字块大小为 16 * 32 = 512B Cache 可容纳的块数为 Cache 容量 / 字块大小 = 4KB / 512B = 8 因此,Cache 地址的位数为 log2(8) = 3 位。

(2) 主存地址的位数: 主存容量为 512KB = 512 * 1024B 每个字块为 16 个字,每个字 32 位,所以一个字块大小为 16 * 32 = 512B 主存可容纳的块数为 主存容量 / 字块大小 = 512KB / 512B = 1024 因此,主存地址的位数为 log2(1024) = 10 位。

(3) 在直接映射方式下,主存的第几块映射到 Cache 的第 5 块: 直接映射方式下,每个主存块只能映射到 Cache 中的一个特定块。由于 Cache 可容纳的块数为 8,所以主存中的第 5 块会映射到 Cache 中的第 5 mod 8 = 5 块。 因此,主存的第 5 块映射到 Cache 的第 5 块。

(4) 直接映射方式下,主存地址中的各字段各多少位: 在直接映射方式下,主存地址中通常包含三个字段:主存字块标记(Tag)、缓存字块地址(Index)和字块内地址(Offset)。 根据前面的计算,Cache 可容纳的块数为 8,需要 3 位来表示 Cache 中的块号,因此缓存字块地址(Index)需要 3 位。 主存中的块数为 1024,需要 10 位来表示主存中的块号,因此主存字块标记(Tag)需要 10 - 3 = 7 位。 每个字块内有 16 个字,需要 4 位来表示字块内的地址(Offset)。 因此,直接映射方式下,主存地址中的各字段分别需要 7 位、3 位和 4 位来表示。

 简答题

1.简述 DRAM 的三种刷新方式。

DRAM(Dynamic Random Access Memory,动态随机存取存储器)是一种常用的半导体存储器,用于存储计算机系统中的数据。由于 DRAM 存储的数据是以电荷形式存储在电容中的,而电容会因为漏电而导致数据丢失,因此 DRAM 需要定期刷新(refresh)来维持数据的正确性。常见的 DRAM 刷新方式主要有三种,分别是:

  1. 基于行的刷新(Row-Based Refresh): 基于行的刷新方式是最常见的 DRAM 刷新方式。DRAM 存储数据的单元通常以行(row)和列(column)的形式组成存储数组。在基于行的刷新中,整个存储数组被分为多个行,每个行包含多个存储单元。刷新时,控制器会按照预定的时间间隔,逐行地激活行,并读出其数据后重新写入,从而刷新整个存储数组的数据,保持其正确性。

  2. 基于页的刷新(Page-Based Refresh): 基于页的刷新方式是一种改进的刷新方式,主要应用于现代高密度 DRAM。在基于页的刷新中,DRAM 存储数据的单元被组织成更小的页(page),而不是行。刷新时,控制器会按照页的粒度来刷新存储数组的数据,从而减小了刷新的开销。

  3. 随机刷新(Random Refresh): 随机刷新方式是一种相对较少使用的刷新方式。在随机刷新中,控制器会随机选择存储数组中的一部分单元进行刷新,而不是按照行或页的顺序进行刷新。这种方式可以减小刷新时的集中负载,并且可以更加灵活地根据系统负载和性能要求进行刷新操作。

需要注意的是,不同的 DRAM 刷新方式在实际应用中可能会有不同的优缺点,如刷新效率、复杂性、功耗等方面的差异。选择合适的刷新方式需要根据具体的应用场景和系统需求来决定。

2.简述总线的链式查询方式的工作原理。 

总线的链式查询方式是一种用于多个设备(如处理器、存储器、外设等)之间进行通信的方式,其中设备按照优先级依次查询总线以确定是否可以访问总线并进行数据传输的方法。其工作原理如下:

  1. 总线查询优先级:每个设备在总线上都有一个固定的查询优先级,优先级高的设备具有更高的访问权。一般情况下,CPU(中央处理器)的优先级最高,其他设备的优先级较低。

  2. 查询总线:设备按照其优先级顺序依次查询总线是否可用。查询总线的方式可以是轮询(Polling)或者链式查询(Daisy Chain)。

  3. 链式查询方式:在链式查询方式中,设备按照一定的顺序连接在总线上,形成一个链式结构。当一个设备查询总线时,如果总线空闲,则可以进行数据传输;如果总线被其他设备占用,则设备会继续将查询传递给链中的下一个设备,直到找到空闲的总线。

  4. 数据传输:当一个设备获得空闲的总线后,可以进行数据传输,如读取数据、写入数据等操作。其他设备在总线被占用时只能等待,直到总线空闲后再次查询总线。

  5. 查询结束:当设备完成数据传输后,会释放总线,并将查询传递给链中的下一个设备,从而形成下一轮的查询。

总线的链式查询方式可以有效地协调多个设备之间的访问需求,避免了总线冲突和竞争,提高了系统的通信效率。但同时,链式查询方式也可能引入一定的延迟和复杂性,因此在设计和实现总线通信时需要综合考虑系统的性能、可靠性和复杂性等因素。

3.简述总线的集中式仲裁的几种方式。 

总线的集中式仲裁是一种用于协调多个设备之间对总线访问权的控制方式,其中一个仲裁器负责判定哪个设备可以访问总线。以下是几种常见的总线集中式仲裁方式:

  1. 静态优先级编码方式:在这种方式中,每个设备都被赋予一个固定的优先级编码,通常通过硬件电平或者地址线的编码来实现。仲裁器根据设备的优先级编码来判定哪个设备可以访问总线。具有较高优先级编码的设备将具有更高的访问权。

  2. 动态仲裁方式:在这种方式中,每个设备在需要访问总线时,向仲裁器发送请求信号,仲裁器根据一定的策略来判定哪个设备可以访问总线。常见的动态仲裁方式包括基于优先级、时间片、轮询、随机等策略。这种方式可以根据系统的需求和负载动态地分配总线访问权,提供一定的灵活性和适应性。

  3. 旋转优先级仲裁方式:在这种方式中,仲裁器会依次将总线访问权分配给每个设备,每个设备在获得总线访问权后可以进行数据传输。当某个设备的访问结束后,仲裁器会将总线访问权传递给下一个设备,从而形成循环的优先级序列。这种方式可以保证每个设备都有机会访问总线,但可能会引入一定的延迟。

这些仲裁方式在实际系统中可以根据系统的需求和性能要求选择和配置。不同的仲裁方式具有不同的优点和缺点,需要在设计和实现总线控制时进行综合考虑。

4.请写出一次中断执行过程 

中断是计算机系统中的一种事件处理机制,当系统在执行当前任务时,接收到一个中断请求信号时,会中断当前任务的执行,转而处理中断请求,然后再返回到中断前的任务继续执行。以下是一次中断执行过程的简要描述:

  1. 正常执行任务:计算机系统在执行当前任务(例如一条指令或者一个程序)时,处于正常的执行状态,CPU按照指令流程执行指令,读取和写入内存中的数据。

  2. 中断请求发生:在当前任务执行过程中,某个外部设备或者系统事件发生了中断请求,例如键盘输入、定时器溢出、外部设备完成数据传输等。

  3. 中断请求检测:CPU会周期性地检测中断请求的状态,例如通过中断请求线或者中断向量表等方式,判断是否有中断请求发生。

  4. 中断处理:如果检测到有中断请求发生,CPU会保存当前任务的执行状态(如寄存器值、程序计数器等)到特定的寄存器或者栈中,以便后续能够恢复执行。然后,CPU会根据中断请求的类型,跳转到相应的中断处理程序(也称为中断服务程序或中断处理例程),开始处理中断请求。

  5. 中断处理程序执行:中断处理程序负责处理中断请求,例如读取设备数据、处理中断事件、更新系统状态等。中断处理程序会根据中断请求的类型进行相应的操作,并在处理完毕后,恢复保存的任务执行状态。

  6. 中断处理程序返回:中断处理程序处理完中断请求后,会执行返回操作,将保存的任务执行状态从寄存器或者栈中恢复回来,然后继续执行中断前的任务。

  7. 恢复执行:CPU从保存的任务执行状态中恢复,继续执行中断前的任务,从上一次中断被触发的位置继续执行下一条指令,保留了任务的执行现场。

以上是一次简要的中断执行过程,实际中断处理过程可能涉及更多的细节和步骤,包括中断优先级、中断屏蔽、中断嵌套等处理机制,具体的中断处理流程和实现方式可能因不同的计算机系统而有所不同。

5.什么是多重中断?实现多重中断的必要条件是什么?

 

多重中断是指在计算机系统中同时存在多个中断请求,并需要按照一定的优先级或者其他规则进行处理的情况。当多个中断请求同时发生时,需要系统能够正确处理这些中断请求,并按照一定的策略进行优先级判定和中断处理,以保证系统的可靠性和正确性。

实现多重中断的必要条件包括以下几点:

  1. 中断优先级判定:在多重中断的情况下,不同中断请求可能具有不同的优先级,需要系统能够根据优先级判定的策略,对中断请求进行排序和优先级判定。例如,可以通过硬件设置中断请求的优先级,或者通过软件编程中断服务程序的优先级来实现。

  2. 中断屏蔽和解除屏蔽:为了避免中断过于频繁地打断正在执行的任务,需要系统能够对中断进行屏蔽,即在某些情况下阻止某些中断请求的发生。同时,当系统准备好处理中断时,需要解除对中断的屏蔽,允许中断请求进入处理流程。中断屏蔽和解除屏蔽的策略需要合理设计,以确保系统在处理多个中断请求时的正确性和效率。

  3. 中断处理程序嵌套:在多重中断的情况下,可能会出现中断处理程序被中断的情况,即中断嵌套。为了处理中断嵌套的情况,系统需要设计合理的中断处理程序嵌套机制,以确保多个中断请求能够按照优先级和处理顺序进行嵌套处理,避免冲突和错误。

  4. 中断资源的共享和互斥:在多重中断的情况下,可能会涉及到共享的中断资源,例如中断服务程序中使用的全局变量或者设备资源。系统需要设计合理的资源共享和互斥机制,以确保多个中断请求能够正确地访问和操作共享的资源,避免竞态条件和其他并发访问引发的问题。

综上所述,实现多重中断需要合理的中断优先级判定、中断屏蔽和解除屏蔽策略、中断处理程序嵌套机制以及资源共享和互斥机制等条件,并且这些条件需要根据具体的计算机系统和中断处理需求进行合理设计和实现。

6.简述 DMA 控制器中三种内存访问方式 

DMA(Direct Memory Access,直接内存访问)控制器是计算机系统中一种特殊的硬件设备,用于在主处理器(CPU)和外部设备之间进行高速数据传输,以减轻CPU的负担。DMA控制器可以通过三种不同的内存访问方式来执行数据传输操作,包括:

  1. 串行方式(Single Mode):在串行方式下,DMA控制器将数据字节逐个地从外部设备读取或写入到内存中。这种方式适用于需要按字节传输数据的情况,例如串行通信接口(如串口、SPI等)与内存之间的数据传输。

  2. 块方式(Block Mode):在块方式下,DMA控制器将以数据块为单位进行传输,每次传输一个数据块,而不是逐个字节地传输。这种方式适用于需要一次性传输大量数据的情况,例如磁盘读写操作或者大容量数据缓冲区的数据传输。

  3. 循环方式(Cycle Mode):在循环方式下,DMA控制器将通过循环的方式重复地传输数据,直到指定的传输次数或者满足某个条件为止。这种方式适用于需要多次重复传输数据的情况,例如音频数据的循环缓冲区传输。

这三种内存访问方式可以根据具体的传输需求和外部设备的特性来选择使用,以实现高效的数据传输操作。不同的内存访问方式具有不同的优点和适用场景,可以根据应用的需求和系统的硬件特性进行选择和配置。

 7.假设某计算机的主存地址空间为 256MB,按字节编址,其数据 Cache 有 8 个 cace 行, 每行 64B。如果该 cache 采用直接映射,则写出主存和 cache 的地址结构

在直接映射方式下,主存和Cache的地址结构如下:

  1. 主存地址结构: 主存地址空间为256MB,按字节编址,共有2^28个地址。主存地址结构如下:

|---------------------|-------------------|-------------------|

| 27 bits | 0 bits |

| 主存块标记 | 字块内地址 |

其中,主存块标记占据高27位,用于标识主存中的不同块,字块内地址占据低0位,用于表示字块内的不同字节。

  1. Cache地址结构: Cache具有8个Cache行,每行64B,共有2^6个地址。Cache地址结构如下:

|-----------------|----------|---------|

| 5 bits | 6 bits | 3 bits |

| 缓存块地址 | 行内地址 | 字节内地址 |

其中,缓存块地址占据高5位,用于标识Cache中的不同块,行内地址占据中间6位,用于表示Cache行内的不同字节,字节内地址占据低3位,用于表示Cache行内的不同字节。

在直接映射方式下,主存的每个块都映射到Cache的某一特定行,主存块标记用于在Cache中查找对应的行,行内地址用于确定Cache行内的具体字节,从而实现对数据的访问和缓存。

 8.简述 cache 和主存中常见的写策略有哪些。

Cache和主存中常见的写策略主要包括以下几种:

  1. 写直写(Write-through):在写操作时,同时更新Cache和主存中的数据。这样可以保持Cache和主存中的数据一致性,但写操作的延迟较大,因为需要等待主存的写操作完成。写直写策略适用于对数据一致性要求较高的场景,例如数据库系统。

  2. 写回(Write-back):在写操作时,只更新Cache中的数据,不立即更新主存中的数据。只有在Cache中的数据被替换出去时,才将Cache中的数据写回主存。这样可以减小写操作的延迟,但可能导致Cache和主存中的数据不一致,因为主存中的数据可能在Cache中被修改但尚未写回。写回策略适用于对性能要求较高的场景,例如多媒体系统。

  3. 写分配(Write-allocate):在写操作时,如果数据不在Cache中,先将数据调入Cache,然后再进行写操作。这样可以保持Cache和主存中的数据一致性,但可能导致Cache的读操作被替换出去,增加了读操作的延迟。写分配策略适用于对数据一致性要求较高的场景。

  4. 不写分配(Write-no-allocate):在写操作时,如果数据不在Cache中,直接将数据写回主存,不将数据调入Cache。这样可以减小Cache的读操作被替换出去的情况,减小了读操作的延迟,但可能导致Cache和主存中的数据不一致。不写分配策略适用于对性能要求较高的场景。

不同的写策略在不同的场景下有不同的优缺点,需要根据系统的具体需求和性能要求进行选择。

9.假设某计算机中有 4 级中断源 A,B,C,D。并且这四级中断源的优先级分别是 B>C>D>A, 则

(1)若当前计算机正在处理 C 级中断源的中断,此时的中断屏蔽字的内容为。(假设 中断屏蔽字按照 ABCD 的顺序写)

(2)若当前计算机正在处理 D 级中断,此时 C 级中断能否中断 D 的中断服务程序,为什么 

根据题目给出的中断优先级信息,可以得出以下结论:

  1. 若当前计算机正在处理 C 级中断源的中断,则此时的中断屏蔽字的内容为: 1110,其中对应的位数分别对应四级中断源 A、B、C、D,值为1表示对应中断源被屏蔽,值为0表示对应中断源未被屏蔽。因为 B>C>D>A,所以 B、C、D 三个中断源被屏蔽,A 中断源未被屏蔽。

  2. 当前计算机正在处理 D 级中断时,C 级中断无法中断 D 的中断服务程序。这是因为根据题目给出的中断优先级信息,D 级中断优先级高于 C 级中断,即 D>C。因此,在处理 D 级中断时,中断控制器会屏蔽掉 C 级中断,防止 C 级中断中断正在处理的 D 级中断服务程序,保证了 D 级中断的优先级。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.定点8位字长的字,采用2的补码形式表示时,一个字所表示的整数范围是___。 A.–128—+127 B.-127—+127 C.-129—+128 D.-128—+128 2.运算器虽有许多部件组成,但核心部分是___。 A.数据总线 B.算术逻辑单元 C.多路开关 D.通用寄存器 3.某计算机字长32位,其存储容量是1MB,若按字编址,它的寻址范围是___。 A.0—1M B.0—512KB C.0—256K D.0—256KB 4.二地址指令中,操作数的物理位置可安排在___。 A.栈顶和次栈顶 B.两个主存单元 C.一个主存单元和一个寄存器 D.两个寄存器 5.描述多媒体CPU的基本概念中,正确的表述是___。 A.多媒体CPU是带有MMX技术的处理器. B.MMX是一种多媒体扩展结构. C.MMX指令集是一种MIMD(多指令流多数据流)的并行处理指令. D.多媒体CPU是以超标量结构为基础的CISC的基础. 6.在下面描述的RISC机器基本概念中,不正确的表述是____。 A. RISC机器不一定是流水CPU. B. RISC机器一定是流水CPU. C. RISC机器有复杂的指令系统. D. CPU配备很少的通用寄存器. 7.在下面描述的PCI总线基本概念中,不正确的表述是___。 A.PCI总线是一个与处理器无关的高速外围总线. B.PCI总线的基本传输机制是猝发式传送. C.PCI设备一定是主设备. D.系统中允许只有一条PCI总线. 8.CRT的分辨率为1024×1024像素,像素的颜色总数为256色,则刷新存储器每个单元 字长是___。 A.256位 B.16位 C.8位 D.7位 9.在单级中断系统中,CPU一旦响应中断,则立即关闭___标志,以防止本次中断服 务结束前同级的其他中断源产生另一次中断进行干扰。 A.中断允许 B.中断请求 C.中断屏蔽 10.为了便于实现多级中断,保有现场信息最有效的方法是采用___。 A.通用寄存器 B.堆栈 C.存贮器 D.外存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩Scott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值