计算机组成原理——存储器(主存容量扩展)

对于字扩展与位扩展的解释:

计算机原理中的字,位扩展,都给老子进来学,看不懂算我输!

如果主存的容量无法满足 CPU 的需求,可以通过存储器扩展来解决,扩展的方式有两种:

主存的位数不够(相当于快递柜的尺寸太小,放不下大包裹),则可以通过位扩展的方式(快递柜扩容)实现;

下图是用两片8K*1位的芯片扩充为8K*2位的。其中A0——A15代表地址线,D0——D7代表数据线。

1K=2^10           8=2^3         所以8K=2^13                所以用A0——A12作为芯片的数据线

由1位扩展为2位,所以是数据位数扩展。原来1位只能表示0或1,现在用D0与D1的组合可以表示00,01,10,11。
主存的字数不够(存储单元的数目不够,相当于快递柜数目太少,放不了太多包裹),则可以通过字扩展的方式实现。

下图是用四片8K*8位的芯片扩充为32K*8位的。其中A0——A15代表地址线,D0——D7代表数据线。

32K=2^15而8K只需要2^13,所以剩下的A14与A15通过译码器来用于确定选取那个芯片。

译码器有四个输出,分别为00,01,10,11。代表这四个芯片。


1. 在一个容量为128KB的SRAM存储器芯片上,按字长32位编址,其地址范围可从0000H到7fffH

位(bit)、字节(byte)、字符、编码之间的关系

1KB=1024字节=2^10字节

1字节=8位

所以128KB=128*1024*8位=2^20位

一个数据占32=2^5位,所以总共可以存储2^20/2^5=2^15位,15位全为1就是7fffH

2. 某存储器容量为 64KB,按字节编址,地址 4000H~5FFFH 位 ROM 区,其余为 RAM 区。若采用 8K×4 位的 SRAM 芯片进行设计,则需要该芯片的数量是(     C     )

A. 7                                    B. 8                               C. 14                                      D. 16 
 

题干中是按字节编址,也就是说一个数据占一个字节。在题1中,是按字长32位编址,也就是一个数据占4个字节。

然后题干:地址 4000H~5FFFH 位 ROM 区,也就是ROM区有5FFFH - 4000H + 1个可以存放数据的区域。

5FFFH - 4000H + 1 = 2000H = 10 0000  0000  0000 = 2^{13} B = 8KB

所以RAM区占64-8=56KB,又因为一个数据占一个字节,一个字节=8位,所以转化为:

8K*4位的芯片扩展为56K*8位,所以需要(56/8)*(8/4)=14个

3. 某计算机主存容量为 64KB,其中 ROM 区为 4KB,其余为 RAM 区,按字节编址。现要用 2K×8 位的 ROM 芯片和 4K×4 位的 RAM 芯片来设计该存储器,则需要上述规格的 ROM 芯片数和 RAM 芯片数分别是(     D     )。

A. 1,15                             B. 2,15                        C. 1,30                            D. 2,30
 

2K*8位的芯片扩展为4K*8位,所以需要2个

4K*4位的芯片扩展为60K*8位,所以需要30个

8. 假定用若干个 2K x 4 位芯片组成一个 8K x 8位存储器,则 0B1FH 所在芯片的最小地址

是 (   D     )
A. 0000H                           B. 0600H                           C. 0700H                         D. 0800H
 

用8个2K x 4 位芯片组成一个 8K x 8位存储器

其中两个2K x 4 位芯片组成一个2K x 8位芯片,即位扩展(图中的芯片不对,但是大致意思是一样的)

四组这样的组成一个 8K x 8位存储器(图中的芯片不对,但是大致意思是一样的)

题干中0B1FH=0 1011 0001 1111,代表地址线

8K=2^13,所以有13根地址线。2K=2^11,所以其中11根用于连接芯片,2根用于输出组选信号。(图中A11,A10两个二进制数可以有00,01,10,11四种情况,对应了四组芯片(每组有两个芯片)组成的八位存储器。即00代表选第一组,01选第二组。。。。。)

所以0 1011 0001 1111的高两位是片选信号01,所以选第二组。

然后看0 1011 0001 1111的的第三位0,也就是图中的A9,他负责选每组中的哪个芯片,0为组中的第1个,1为第二个。

整体看一下:

若有八个的话就要有A12,A11,A10三个二进制数000,001,010,011,100,101,110,111来代表八组二个芯片组成的八位存储器。

所以选的是第二组的第一个芯片,即 010 00 0000 0000 ,转换为16进制为0800H

第一组的起始地址: 000 00 0000 0000  -  001 11 1111 1111

第二组的起始地址: 010 00 0000 0000  -  011 11 1111 1111

第三组的起始地址: 100 00 0000 0000  -  101 11 1111 1111

第四组的起始地址: 110 00 0000 0000  -  111 11 1111 1111
 

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

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

相关文章

中文编程开发工具高级版全部构件工具箱列表,中文编程自由版下载

中文编程开发工具高级版全部构件工具箱列表,中文编程自由版下载 附:中文编程工具构件工具箱总共22组305个构件,构件明细如下:文本件16个: (普通标签,连接标签,闪动标签,立…

MATLAB的rvctools工具箱熟悉运动学【机械臂机器人示例】

1、rvctools下载安装 rvctools下载地址:rvctools下载 截图如下,点击红色箭头指示的“Download Shared Folder” 即可下载 下载之后进行解压,解压到D:\MATLAB\toolbox这个工具箱目录,这个安装路径根据自己的情况来选择&#xff0c…

element 的 Notification 通知,自定义内容

通知事件: // 商户后台通知 MerchantBackgroundNotice() {// 禁止消息通知弹出多条if(this.notifyInstance) {this.notifyInstance.close();}const h this.$createElement; // 创建文本节点this.notifyInstance this.$notify({showClose: false, // 禁止关闭按钮…

Flink CDC -Sqlserver to Sqlserver java 模版编写

1.基本环境 <flink.version>1.17.0</flink.version> 2. 类文件 package com.flink.tablesql;import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.flink.streaming.api.environment.StreamExecutionEnviro…

【从删库到跑路 | MySQL总结篇】表的增删查改(进阶上)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】&#x1f388; 本专栏旨在分享学习MySQL的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 一、数据…

【C语言】【选择排序及其优化】

选择排序是指&#xff1a;第一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;然后再从剩余的未排序元素中寻找到最小&#xff08;大&#xff09;元素&#xff0c;然后放到已排序的序列的末尾&#xff0…

论文阅读:“Appearance Capture and Modeling of Human Teeth”

文章目录 AbstractIntroductionMethod OverviewTeeth Appearance ModelEnamelDentinGingiva and oral cavity Data AcquisitionImage captureGeometry capture ResultsReferences Abstract 如果要为电影&#xff0c;游戏或其他类型的项目创建在虚拟环境中显示的人类角色&#…

Python---引用变量与可变、非可变类型

引用变量 在大多数编程语言中&#xff0c;值的传递通常可以分为两种形式“ 值 传递 与 引用 传递”&#xff0c;但是在Python中变量的传递基本上都是引用传递。 变量在内存底层的存储形式 a 10 第一步&#xff1a;首先在计算机内存中创建一个数值10&#xff08;占用一块…

计算机组成原理——小啃一下

CPU和主存储器结构 CPU&#xff1a; 运算器 ACC&#xff08;累加器&#xff09;ALU&#xff08;算数逻辑单元&#xff09;MQ&#xff08;乘商寄存器&#xff09;X&#xff08;操作数寄存器&#xff09; 控制器 CU&#xff08;控制单元&#xff09;IR&#xff08;指令寄存器&a…

Linux基础项目开发1:量产工具——程序框架(一)

前言&#xff1a; 前面已经将Linux应用开发基础知识学习完了&#xff0c;现在让我们来做个小项目练练手&#xff0c;对之前的一些知识点进行一个更加具体详细的认识与了解&#xff0c;我们要进行的项目名称为&#xff1a;电子产品量产测试与烧写工具&#xff0c;这是一套软件&a…

【单调栈】最大宽度坡

public int maxWidthRamp(int[] nums) {/* 此方法思路正确&#xff0c;但超时int n nums.length;Deque<Integer> stack;int max 0;for (int i 0; i < n; i) {stack new LinkedList<>();stack.push(nums[i]);int j i 1;while (j < n) {stack.push(nums…

已知两个链表L1和L2分别表示两个集合,其中元素递增排列。请设计一个算法,用于求出L1与L2的交集,并存放在L1链表中

已知两个链表L1和L2分别表示两个集合&#xff0c;其中元素递增排列。请设计一个算法&#xff0c;用于求出L1与L2的交集&#xff0c;并存放在L1链表中。 代码思路&#xff1a; 我们创建一个辅助链表L3&#xff0c;用于存储L1和L2链表的交集&#xff0c;用s遍历L3各个元素 用p和…