计算机存储器容量扩展设计实例解析

存储器容量扩充是《计算机组成原理》课程的重要知识点。讲解一个例题,以说明进行存储器容量扩充设计的方法。

题目:在32位计算机系统中,用8K×16位的SRAM芯片组成一个64KB的存储器,已知起始地址为:6000 0000H。已知:SRAM芯片有两个控制端nCS和nWE:当nCS=0时SRAM被选中。当nWE=0时,进行写操作:当nWE=1时,进行读操作。CPU的读写控制信号为R/nW(R/nW=1时,进行读操作;R/nW=0时,进行写操作),访存控制信号为nMREQ(nMREQ=0时访存)。要求:设计此存储器,画出它与CPU连接框图。

解:

第1步:确定存储器扩展方案      

分析题意可知,本题是要利用8K×16位SRAM设计16K×32位的存储器,因此需要用4块SRAM芯片进行字位扩展,具体方案是:由2个芯片为一组进行位扩展,需要2组进行字扩展(需要2个片选信号)。确定了位扩展方案后,可以画出下图。要注意,位扩展芯片输出的数据线跟系统数据总线的接法。例如:组1-H输出的数据线接系统数据总线的D31-D16位,而组1-l输出的数据线接系统数据总线的D15-D0位。

第2步:设计地址译码电路,译码电路的输出接到每个SRAM芯片的nCS引脚,提供片选信号。这一步可以细化:

① 为了便于分析地址,把地址变换成二进制形式      

60000000H=0110 0000 0000 0000 0000 0000 0000 0000 B

② 画出地址空间分配表

③ 为每个参与字扩展的存储小组,指定地址译码输出值

在上面的地址空间分配表基础上,设定地址译码输出值。由于本题需要对2组存储器模块进行字扩展,因此需要2个地址译码输出信号。加下表中,填充为红色的列。

④将上表转换成真值表画法,以便进行译码电路设计。转换后的真值表如下:

由于本题中SRAM需要的片选信号nCS的有效状态是低电平,而上表中cs0和cs1的有效状态是高电平,因此,增加nCS0和nCS1,用这两个信号作为SRAM芯片nCS引脚的驱动信号。完善后的真值表,如下:

⑤ 写出输出信号的逻辑表达式

⑥画出译码输出信号的逻辑电路图

⑦考虑系统访存信号nMREQ的控制作用,完整的地址译码电路如下:

至此,地址译码电路设计完成。

第3步:将地址译码电路与存储器芯片连接,得到完整的CPU与存储器连接的逻辑电路图

方法二:利用译码器来实现地址译码电路

接下来介绍一种利用译码器来实现地址译码电路的方法。以利用3:8译码器来实现地址译码电路为例,进行说明。

已知译码器有3个编码输入端和1个低电平有效的使能端#EN。为了能够利用译码器的编码输入端,把地址总线的A31~A13位,划分成两部分,见下表:

按此表的设计,可以把A15~A13接入译码器的编码输入端,见下图

分析上表中A31~A16的取值可知,本题中,A31~A16的取值固定不变,因此可以与访存信号nMREQ一起考虑,设计组合逻辑电路,以驱动译码器的使能端#EN。先写出A31~A16的地址译码逻辑表达式:

地址译码逻辑电路如下:

考虑访存信号nMREQ后,画出下图所示的完整地址译码逻辑电路:

将该地址译码电路与存储器芯片连接,得到完整的CPU与存储器连接的逻辑电路,如下图所示:

综上所述,本文介绍了两种设计地址译码逻辑电路的方法。当字扩展组数较多时,推荐使用译码器来进行设计的方案。方法一介绍的专用组合逻辑电路的方法,仅适用于字扩展组数较少的情况。在这个问题的解决过程中,准确编写地址空间分配表是整个设计的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86470.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转载-秒杀系统—1.架构设计和方案简介

转载: https://mp.weixin.qq.com/s?__bizMzg5MzY5NDM3MQ&mid2247490866&idx1&sn0081517454680c85e0ed23eda4e82df5&chksmc02ba5fef75c2ce8b0c7f54182f3bda539230c75d2d75ed2b514b93decc0ff0c5de548a35dc3&cur_album_id3548464749150224391&…

Kubernetes中的容器生命周期回调

在介绍Kubernetes容器生命周期回调前,展示一个案例。 有个私有化部署的项目需要跑一个redis用作缓存,因redis中的数据不需要持久化,选择在Kubernetes中通过deployment的方式部署,下面是deployment的代码片段, ......…

基于STM32的工业仓库环境智能监控系统设计

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】市面上同类产品研究现状【6】摘要 1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发 1.5 模块的技术详情介绍【1】ESP8266-WIFI模块…

如何在 Manjaro Linux 上启用 AUR 仓库来安装软件包

Manjaro 是基于 Arch 的系统,是了解和学习 Arch Linux 命令的绝佳方式。它自带所有流行的桌面环境界面,无论是 XFCE 还是 Gnome 的爱好者,都可以在 Manjaro 中直接使用。 Manjaro 或 Arch Linux 的默认软件包管理器是 Pacman,我们…

有限上升时间信号的反射波形

有限上升时间信号的反射波形: 从上一节讨论中我们知道,阻抗不连续的点处,反射信号是入射信号的一个副本,并讨论了上升时间为0的信号的反射情况。这些规律对于上升时间不为0的信号同样适用,只不过入射信号和反射信号的叠加稍稍复杂…

Vue 3.4+ defineModel 全面详解 + 实战最佳实践

🌟 前言:为什么要关注 defineModel? 过去我们在 Vue 组件中使用 v-model 时,常需要这样写: // 子组件 defineProps([modelValue]) defineEmits([update:modelValue])function update(val) {emit(update:modelValue, …

MySQL事物隔离级别详解

目录 事物隔离级别总结 实际情况演示 脏读(未提交) 避免脏读(读已提交) 不可重复读 可重复读 幻读 事物隔离级别总结 SQL标准定义了四种事物隔离级别,用来平衡事物的隔离性(Isolation)和…

【安卓开发】Kotlin入门教程

一、Kotlin 基础入门 1.1 Kotlin 简介 Kotlin 是一种由 JetBrains 开发的静态类型编程语言,运行在 Java 虚拟机上,也可以编译为 JavaScript 或原生代码。它于 2017 年被 Google 宣布为 Android 官方开发语言。 主要特点: 简洁:…

工业机器人保护气体节约方法

焊接在现代工业生产中作为一项关键技术,其效率和质量直接影响着产品的最终性能和生产成本。随着智能制造的不断推进,工业焊接机器人在自动化生产线中扮演着越来越重要的角色。焊接过程中的气体调节一直是一个技术难题,它直接关系到焊接质量的…

java中集合API

集合API 一、简述二、Collection(1).List1.ArrayList:2. LinkedList (2) Set 三、Map1.HashMap2. TreeMap 三、Iterator接口Collections工具类1.对集合元素进行排序2.基于Comparator,自定义方法(内部类)进行…

Oracle 用户权限与对象权限详解

一、权限体系概述 Oracle 数据库的权限管理是保障数据安全的核心机制,主要分为系统权限(System Privileges) 和对象权限(Object Privileges) 两大类: 系统权限:赋予用户在数据库中执行特定操作…

kubectl get pods 时 “client-side throttling, not priority and fairness“ 原因初探

1. 问题起源 在kubernetes里,使用kubectl get pods 时,返回 I0508 05:43:04.655602 100742 request.go:668] Waited for 1.178494016s due to client-side throttling, not priority and fairness, request: GET:https://10.103.0.1:443/apis/cert-ma…

力扣网C语言编程题:位运算来解决 “寻找重复数”

一. 简介 前面两篇文章解决力扣网上"查找重复数"的题目,提供了三种思路:哈希表、二分法和快慢指针。文章如下: 力扣网C语言编程题:“寻找重复数”的两种思路-CSDN博客 力扣网C语言编程题:快慢指针来解决 …

3D视觉感知

目录 3D视觉感知任务 单目3D感知 单目3D物体检测 – 直接预测3D信息 单目3D物体检测 – 总结 单目深度估计 双目3D感知 多目3D感知 3D视觉感知任务  输入:单摄像头或多摄像头生成的图像数据  单张图像  图像序列  输出  稀疏&#xff1a…

es中常规的根据字段查询时走什么索引(说明:「常规的根据字段查询」不包含分词查询)

在Elasticsearch中,“常规的根据字段查询”且不涉及分词的查询(如精确匹配、范围查询),主要依赖以下索引机制: 一、核心索引类型及适用场景 字段类型索引结构典型查询方式应用场景keyword倒排索引(未分词…

MYSQL如何插入数据,效率会更高

在MySQL中,插入数据的效率可以通过多种方式逐步提升。以下是从简单到复杂的优化路径,帮助你逐步提高数据插入的性能: 一、基础插入:逐条插入 这是最基础的插入方式,适用于少量数据的插入操作。虽然简单,但…

Rabbitmq的五种消息类型介绍,以及集成springboot的使用

交换机类型 Fanout Exchange 扇型交换机,这个交换机没有路由键概念,就算你绑了路由键也是无视的。 这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列 Direct Exchange 直连型交换机,根据消息携带的路由键将消息投递…

日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月2023年12月

日语学习-日语知识点小记-进阶-JLPT-真题训练-N2阶段(4):2022年12月&2023年12月 1、前言(1)情况说明(2)工程师的信仰(3)真题训练 2、2个卷的单词部分1、 真题-2023年…

从代码学习深度强化学习 - Actor-Critic 算法 PyTorch版

文章目录 前言算法原理1. 从策略梯度到Actor-Critic2. Actor 和 Critic 的角色3. Critic 的学习方式:时序差分 (TD)4. Actor 的学习方式:策略梯度5. 算法流程代码实现1. 环境与工具函数2. 构建Actor-Critic智能体3. 组织训练流程4. 主程序:启动训练5. 实验结果总结前言 在深…

Python 数据分析与可视化 Day 8 - Pandas 高级操作技巧

✅ 今日目标 掌握 Pandas 的索引体系(Index / MultiIndex)使用 set_index() 和 reset_index() 管理数据索引理解 pivot_table 与 melt、stack/unstack 重塑数据形态初步理解“宽表”与“长表”在数据分析与可视化中的应用场景 📚 一、深入理…