计算机组成原理存储器相关问题解答
问题:要设计具有64K×2位存储容量的芯片,问如何安排地址线和数据线引脚的数目,才能使两者之和最小。请说明有几种解答。
解:
在满足64K×2位存储容量的前提下,存在两种情况:
(1)地址线:16根,数据线:2根
(2)地址线:17根,数据线:1根
由于16+2=17+1=18
所以,最小的和=18
其他的情况,均会比18大。这是因为只能减少地址线的根数,但这样会大大增加数据线的数量。
问题:字位扩展的存储器组成逻辑图该怎么画?
答:首先掌握以下原则:
一个存储器的容量假定为M×N位,若使用l×k位的芯片(l<M,k<N=需要在字向和位向同时进行扩展。此时共需要(M/l)×(N/k)个存储器芯片。
其中,M/l表示把M×N的空间分成(M/l)个部分(称为页或区),每页(N/k)个芯片。
地址分配原则如下:
首先利用log2 l位表示低位地址:用来选择访问页内的l个字
其次利用log2(M/l)位表示高位地址:用来经片选译码器产生片选信号。
绘制逻辑图的时候,以书上例4-1、4-2、4-3为准。根据教学要求,目前对绘制逻辑图不作要求,只要达到理解即可。
问题:虚拟地址格式该怎么画?
例如,在页式虚拟存储器中,若主存容量为16MB,页面容量为4KB,程序地址空间为2G,问虚页号有多少位?页表长度为多少?并画出虚拟地址格式。
解:
页面容量为:4KB=212B
程序地址空间:2GB=231B
故虚页号字段位数=31-12=19
页表长度=219
虚拟地址格式:
问题:Cache一节中,存储空间的分配问题应该如何把握?
例如:有一CACHE-主存层次的存储器,其主存容量1MB,CACHE容量64KB,每块8KB,采用直接映射方式。
(1)求主存地址格式?
(2)主存地址为35303H,问它在主存哪个块?
(3)主存的第k块映射到CACHE的哪一块?
解:
(1)Cache容量64KB,每块8KB,所以
块内地址为13位(第0位到第12位);
块地址为16-13=3位(第13位到第15位);
(注:块地址也可以称为CACHE行地址)
页面标记为20-16=4位(第16位到第19位)
(2)35303H=0011 0101 0011 0000 0011
所以区号=0011
块号 =010
块内地址=1 0011 0000 0011
(3)Cache有8块
主存的第k块映射到Cache的第k mod 8个块
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?