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

news/2025/3/14 16:51:13/

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

So let's start studying with questions!

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

1. 设有一个 1MB 容量的存储器,字长为 32 位,问:

(1)按字节编址,地址寄存器、数据寄存器各为几位?编址范围为多大?

(2)按半字编址,地址寄存器、数据寄存器各为几位?编址范围为多大?

(3)按字编址,地址寄存器、数据寄存器各为几位?编址范围为多大?

(1) 按字节编址时,地址寄存器和数据寄存器各为20位(因为1MB = 2^20字节),编址范围为0x00000 到 0xFFFFF。

(2) 按半字编址时,地址寄存器和数据寄存器各为21位(因为1MB = 2^20字节,每半字(2字节)需要1位地址),编址范围为0x00000 到 0xFFFFF。

(3) 按字编址时,地址寄存器和数据寄存器各为20位(因为1MB = 2^20字节),编址范围为0x00000 到 0xFFFFF。

2. 设有一个具有 20 位地址和 32 位字长的存储器:问

(1)该存储器能存储多少字节信息?

(2)如果存储器由 512K*8 位的 SRAM 芯片构成,需要多少片?

(3)描述地址码的哪几位送入到译码器中,译码器的哪些出口连接内存芯片的 CS 端 

(1) 该存储器能存储2^20字节的信息,因为地址位数为20位,每个地址对应一个字节。

(2) 如果存储器由512K*8位的SRAM芯片构成,需要8片。因为每片512K字节,共需8片×512K字节/片 = 4MB。

(3) 地址码的高11位(A19-A9)送入译码器中,译码器的输出连接到内存芯片的CS(片选)端。这样,译码器的输出可以选择对应的内存芯片进行读取或写入操作,实现对不同内存芯片的选择控制。

3.设 CPU 有 16 根地址线、8 根数据线,现有下列存储芯片:1K×4 位 RAM、4K×8 位 RAM、 8K×8 位 RAM、2K×8 位 ROM、4K×8 位 ROM、8K×8 位 ROM。现在需要将 CPU 与存储器进行连接,要求最小 8K 为系统程序区,相邻 16K 为用户程序区,最大 4K 为系统程序工作区。

(1)分别写出系统程序区、用户程序区、系统程序工作区的地址范围,要求用 16 进制 表示。

(2)给出系统程序区、用户程序区、系统程序工作区应选用的芯片种类即数量。

(3)CPU 地址线的哪几位需要送入到译码器形成片选信号?

(4)译码器的各输出口分别应与哪个所选芯片 CS 端连接?

(1) 根据题目要求,系统程序区最小为8K,用户程序区为相邻的16K,最大为4K的系统程序工作区,可以得到以下地址范围:

系统程序区地址范围:0x0000 - 0x1FFF 用户程序区地址范围:0x2000 - 0x5FFF 系统程序工作区地址范围:0x6000 - 0x7FFF

(2) 根据地址范围和存储芯片的容量,可以选择以下芯片种类及数量:

  • 系统程序区:1片 8K×8位 ROM
  • 用户程序区:1片 16K×8位 ROM
  • 系统程序工作区:1片 4K×8位 RAM

(3) CPU地址线的高13位(A15 - A3)需要送入译码器形成片选信号,用于对不同芯片进行选择控制。

(4) 译码器的各输出口应与所选的存储芯片的CS(片选)端连接,具体连接关系如下:

  • 系统程序区:译码器的一个输出口连接到8K×8位 ROM的CS端
  • 用户程序区:译码器的一个输出口连接到16K×8位 ROM的CS端
  • 系统程序工作区:译码器的一个输出口连接到4K×8位 RAM的CS端

4.某机器中,已知配有一个地址空间位 0000H-3FFF 的 ROM 区。现在用一个 RAM 芯片 8K*8 形成 40K*16 的 RAM 区域,其实地址位 6000H。设 CPU 地址线有 16 根,数据线有 16 根。

(1)CPU 的哪几位地址进行译码?

(2)ROM 和 RAM 各自连接译码器的哪个输出端?

 (1) 根据题目中提到的地址空间和RAM芯片的布局,CPU的地址线的高14位(A15 - A2)需要进行译码,用于对ROM和RAM进行地址选择。

(2) ROM和RAM分别连接译码器的以下输出端:

  • ROM连接译码器的一个输出端,用于对ROM进行片选(CS)控制。
  • RAM连接译码器的另一个输出端,用于对RAM进行片选(CS)控制。

5.要求用 128K×16 的 SRAM 芯片组成 512K×16 的随机存储器,用 64K×16 的 EPROM 芯片 组成 128K×16 的只读存储器。试问:

(1)数据寄存器多少位?

(2)地址寄存器多少位?

(3)两种芯片各需多少片?

(4)若 EPROM 的地址从 00000H 开始,RAM 的地址从 60000H 开始,写出各芯片的地址 分配情况。

 (1) 数据寄存器的位数取决于存储器的字长,题目中提到的SRAM和EPROM的字长都是16位,因此数据寄存器的位数为16位。

(2) 地址寄存器的位数取决于存储器的地址空间大小。对于128K×16的SRAM芯片,地址空间大小为128K,需要17位地址线;对于64K×16的EPROM芯片,地址空间大小为64K,需要16位地址线。因此,地址寄存器的位数应为17位。

(3) 对于512K×16的随机存储器,需要使用4片128K×16的SRAM芯片;对于128K×16的只读存储器,需要使用2片64K×16的EPROM芯片。

(4) 根据题目中给出的地址分配情况,可以得到各芯片的地址分配如下:

  • SRAM芯片的地址分配范围:00000H - 1FFFFH (共128K)
  • EPROM芯片的地址分配范围:00000H - FFFFFH (共64K) 其中,SRAM的地址从00000H开始,EPROM的地址从60000H开始。

6.用 512K*8 位的存储芯片组成一个 4M*32 位的半导体只读存储器。请回答下面问题

(1) 该存储器的数据线和地址线分别是多少?

(2)共需要几片这样的存储器芯片?

(3)详 细说明每根地址线的连接方式和作用。

(1) 该存储器的数据线和地址线分别是多少? 根据题目中给出的存储芯片规格,512K8 位的存储芯片有8位数据线,4M32 位的半导体只读存储器有32位数据线。因此,该存储器的数据线位数为32位。

对于地址线,存储芯片的位数可以通过将存储容量除以每片芯片的容量得到,即: 4M32 位的存储器总共有4M/512K = 8片512K8位的存储芯片组成。 每片512K*8位的存储芯片有20位地址线(因为512K = 2^19,需要19位地址线来表示512K的地址范围,再加上一个偶校验位,总共20位)。 因此,该存储器的地址线位数为20位。

(2) 共需要几片这样的存储器芯片? 根据题目中给出的存储芯片规格,512K8 位的存储芯片组成4M32 位的存储器需要8片。

(3) 每根地址线的连接方式和作用 对于每根地址线,连接方式和作用如下:

  • 地址线的连接方式:地址线连接到存储芯片的地址输入端,通常通过地址译码器进行连接。
  • 地址线的作用:地址线用于指定要访问的存储单元的地址。每一根地址线可以表示2个状态(0或1),因此,20位地址线可以表示2^20 = 1M 个不同的地址,对应着存储器的1M个存储单元。通过地址线,CPU可以向存储器发送读取或写入操作的地址信息,从而实现对存储器的读取或写入操作。

7.设某存储器容量为 32 个字,字长为 64 位,模块数 m=4,分别采用顺序方式和交叉方式 进行组织。存储周期 T=200ns,数据总线宽度为 64 位,总线传送周期 r=50ns。再连续读出 4 个字的情况下,求顺序存储器和交叉存储器各自的带宽。

顺序方式的存储器带宽计算如下: 每次读出一个字,存储周期为 T=200ns,数据总线宽度为 64 位。因此,每次读出的数据量为 64 位。

连续读出 4 个字,共需 4 次存储周期。每次存储周期内都能读出一个字,因此顺序存储器总共读出 4 个字需要 4 次存储周期。

顺序存储器的带宽 = 每次读出的数据量 × 每秒钟读出的次数 带宽 = 64 位/字 × 4 次/秒 = 256 位/秒

交叉方式的存储器带宽计算如下: 每次读出一个字,存储周期为 T=200ns,数据总线宽度为 64 位。因此,每次读出的数据量为 64 位。

连续读出 4 个字,每次读出一个字,因此总共需要 4 次存储周期。

交叉存储器的带宽 = 每次读出的数据量 × 每秒钟读出的次数 带宽 = 64 位/字 × 4 次/秒 = 256 位/秒

因此,顺序存储器和交叉存储器各自的带宽都为 256 位/秒。

8.有一个处理机,主存容量为 1MB,字长 1B,块大小 16B,cache 容量 64K,若 cache 采用直接映射方式。

(1)画出 cache 和主存的地址结构

(2)写出两个不同的地址,使它们映射到同一个 cache

(1) cache 和主存的地址结构如下:

主存地址结构: 总容量:1MB 字长:1B 块大小:16B

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

cache地址结构: 容量:64K 字长:1B 块大小:16B 直接映射方式

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

(2) 两个不同的地址映射到同一个 cache 可以通过不同的主存地址但相同的组索引和标记来实现。例如: 主存地址1: 0x123456 主存地址2: 0x789ABC

假设 20 位标记位是相同的,而 4 位组索引位也是相同的,那么这两个主存地址会映射到同一个 cache 组。这样,当处理机访问这两个主存地址时,由于它们映射到了同一个 cache 组,可能会导致缓存命中或缓存失效的情况,从而影响 cache 的性能和一致性。

9.设某机贮存容量为 16MB,按字节编址。Cache 容量为 16KB。每个字块 8 个字,每个字 32 位。设计一个四路组相连映射的 cache 组织,要求: (1)画出主存地址字段中各段的位数 (2)设 Cache 的初态为空,CPU 依次从主存第 0,1,2~99 号单元中读出 100 个字(主 存一次读出一个字),并重复此顺序 8 次,问命中率为多少?

(1) 主存地址字段中各段的位数如下:

总容量:16MB (24位) 字长:1B (8位) 块大小:8个字 (3位块内偏移) Cache容量:16KB (14位) 四路组相连映射,所以组数为 Cache容量 / (块大小 * 字长) = 16KB / (8 * 8) = 256组 每组包含4个块,因此需要2位组索引

主存地址结构: |----------------|-------------|-------------|----------------|---------------|

Cache地址结构: |----------------|-------------|-------------|----------------|--------------|

(2) 根据题目描述,CPU从主存地址0、1、2...99中依次读出100个字,并重复8次。由于Cache的初态为空,即没有任何数据被缓存,每次访问都会导致缓存失效,命中率为0%。

10.某 cache 容量为 64KB,块大小 128B,采用四路组相联结构。主存 4GB,按字节编址。

(1)该 cache 共有多少块,多少组?

(2)该 cache 中的标记位共有多少个?每个标记位几位?

(1) 该 cache 共有多少块,多少组?

Cache容量:64KB = 64 * 2^10 B = 64 * 1024 B 块大小:128B 四路组相联结构,每组包含4个块。

每个块的大小与块大小相同,为128B。所以,总的块数为 Cache容量 / 块大小 = 64KB / 128B = 512块。

每组包含4个块,所以总的组数为 块数 / 4 = 512块 / 4 = 128组。

(2) 该 cache 中的标记位共有多少个?每个标记位几位?

Cache采用四路组相联结构,每个块包含一个标记位。标记位的位数取决于主存的总容量和块大小。

主存容量:4GB = 4 * 2^30 B = 4 * 1024 * 1024 * 1024 B

每个块的大小与块大小相同,为128B。

标记位的位数 = 主存总容量 - 块大小的位数 - 组索引的位数

组索引的位数 = log2(组数)

主存总容量的位数 = log2(主存总容量)

所以,标记位的位数 = log2(主存总容量) - log2(块大小) - log2(组数)

代入已知数据,可得:

标记位的位数 = log2(4 * 1024 * 1024 * 1024) - log2(128) - log2(128)

标记位的位数 = 32 - 7 - 7 = 18位

所以,该 cache 中的标记位共有18个,并且每个标记位占用18位。

 


http://www.ppmy.cn/news/48102.html

相关文章

【数据结构】第十三站:排序(上)

本文目录 一、排序概念二、插入排序1.插入排序的基本思想2.算法实现3.时间复杂度分析 三、希尔排序1. 希尔排序的思想2.希尔排序的代码实现3.希尔排序和插入排序的性能测试比较4.希尔排序的时间复杂度 四、直接选择排序1.基本思想2.直接选择排序的步骤3.直接选择排序的代码实现…

【C++】vector的使用

文章目录 1. 主要结构2. 构造函数与复制重载3. 迭代器4. 容量相关1.容量读取2.容量修改 5. 数据访问6. 数据修改1. 尾插尾删2.任意位置的插入删除 7.其他接口 在之前我们学习了string的使用与模拟实现,在参考文档中可以发现,vector和string以及其他的容器…

ElasticJob

官网 :: ElasticJob ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案&…

​破除“内卷”,什么才是高阶智能座舱更优方案?

下一代智能座舱雏形已现。 从多屏互动到舱内全场景交互,从中控娱乐快速延伸到更多元化的车内娱乐平台;越来越多元化功能集中上车,座舱空间的营造(包括氛围灯、香氛等)以及AR技术的应用等等,开始深刻影响着…

[渗透测试笔记] 56.日薪2k的蓝队hw中级定级必备笔记系列篇4之面试必备web中间件漏洞汇总

文章目录 1.Weblogic1.1 任意文件上传漏洞(CVE-2018-2894)1.2 XML远程代码执行RCE漏洞(CVE-2020-14882)1.3 SSRF漏洞(CVE-2014-4210)1.4 Java反序列化漏洞(CVE-2018-2628)2.Nginx2.1 解析漏洞2.2 Nginx文件名逻辑漏洞(CVE-2013-4547)2.3 Nginx越界读取缓存漏洞(CVE-2017-752…

代码随想录刷题笔记2

文章目录 二叉树递归遍历统一迭代形式层序遍历迭代形式——队列 题型删除普通二叉树目标节点两棵树比较 递归模板深度、高度问题完全二叉树判断完全二叉树 平衡二叉树左叶子最大树二叉搜索树最近公共祖先 二叉树 递归遍历 递归三部曲 确定递归函数的 参数 与 返回值。确定终止…

【Vue全家桶】Pinia状态管理

【Vue全家桶】Pinia状态管理 文章目录 【Vue全家桶】Pinia状态管理写在前面一、认识Pinia1.1 认识Pinia1.2 为什么使用Pinia? 二、 Store2.1 定义Store2.2 Option对象2.3 setup函数2.4 使用定义的Store 三、Pinia核心概念State3.1 定义State3.2 操作State3.3 使用选…

为何MySQL 8.0开始取消了查询缓存

官方文档说明:MySQL :: MySQL 8.0: Retiring Support for the Query Cache MySQL查询缓存是查询结果缓存。它将以SEL开头的查询与哈希表进行比较,如果匹配,则返回上一次查询的结果。 进行匹配时,查询必须逐字节匹配,例…