【期末计算机组成原理速成】第三章:存储器

一、本章考点总览


二、考点分析

1、存储系统在计算机中有什么作用?

考点:存储器概述

考频:★★★★☆

难度:★★☆☆☆

解析:

存储系统是计算机的重要组成部分之一。存储系统提供写入和读出计算机工作需要的信息(程序和数据)的能力,实现计算机的信息记忆功能

现代计算机系统中常采用寄存器、高速缓存、主存、外存的多级存储体系结构

存储系统的层次结构分为3层,即Cache、主存、辅助存储器。

Cache:高速缓冲存储器,容量小,速度快,与CPU中的寄存器通过字进行信息交换

主存:内存,与cache通过块进行信息交换

辅助存储器:主要是磁盘,容积大、价格低、速度慢,与主存通过页面进行信息交换


2、计算机系统中有哪些存储器?

考点:存储器概述

考频:★★★★☆

难度:★★☆☆☆

解析:


3、什么是主存储器?如何与CPU进行连接?

考点:存储器与CPU的连接

考频:★★★★☆

难度:★★★★☆

解析:

主存储器(Main memory),简称主存。其作用是存放指令和数据,并能由中央处理器(CPU)直接随机存取。

主存储器性能指标:

存储容量:在一个存储器中可以容纳的存储单元总数存储空间的大小,用字数,字节数表示 存取时间:启动到完成一次存储器操作所经历的时间,ns表示

存储周期:连续启动两次操作所需间隔的最小时间,ns表示

存储器带宽:单位时间里存储器所存取的信息量, 它是衡量数据传输速率的重要技术指标,单位是b/s( 位/秒)或B/S(字节/秒)
(1)主存通过数据总线、地址总线和控制总线与CPU连接。

(2)数据总线的位数与工作频率的乘积正比于数据传输率。

(3)地址总线的位数决定了可寻址的最大内存空间。

(4)控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻


4、如果目前只有两片1K × 4位的 存储芯片,如何组成 1K × 8位 的存储器?

考点:存储器与CPU的连接

考频:★★★★☆

难度:★★★★☆

解析:

位扩展(增加存储字长)

存储字长:存储单元中的二进制代码(存储字)位数,存储字长可以是8位、16位、32位等。数据位数与CPU的数据线数相等。

保证两个芯片同时进行读操作和写操作,片选线相同


字扩展(增加存储字的数量)

存储字是指存放在一个存储单元中的二进制代码组合。利用A10来控制芯片工作状态

用1K×8位 存储芯片组成2K×8位的存储器


字、位扩展

用1K × 4位 存储芯片组成 4K × 8位 的存储器


5、主存与CPU的速度不一样,如何进行调节来保证CPU的高速工作?

考点:高速缓冲存储器

考频:★★★☆☆

难度:★★★☆☆

解析:

存储系统主要体现在下面两个层次上:Cache---主存、主存---辅存。

"Cache---主存"层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析, CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

"主存---辅存"层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果


6、主存与Cache大小不一样,那么它们的地址如何进行映射?

考点:Cache-主存地址映射

考频:★★★☆☆

难度:★★★☆☆

解析:

1.直接映射(directmapping):将一个主存块存储到唯一一个Cache行

主存中每个块只能装入Cache中的唯一位置

若产生块冲突,原来的块无条件被移出,无需替换算法

Cache块号 = 主存块号 mod Cache总块数


2.全相联映射(fullyassociative mapping):将一个主存块存储到任意一个Cache行

主存中的每一块可以装入Cache中的任何位置Cache块中的标记用于指出该块取自主存的哪一块,所以CPU访存时需要与所有Cache块的标记比较


3.组相联映射(setassociative mapping):将一个主存块存储到唯一的一个Cache组中任意一行

将Cache分为Q个大小相等的组,每个主存块可以装入固定组内的任意一块。

即组间采用直接映射,组内采用全相联映射

每组内有几块就称为几路组相联映射


7、已知: Cache的速度是主存的5倍; Cache被访问的命中率为0.95;问:采用Cache后,存储器性能提高了多少倍?

考点:cache性能指标

考频:★★★★☆

难度:★★★☆☆

解析:

设Cache的存取周期为t,主存的存取周期为5t,

(1) Cache 和主存同时被访问:则系统的平均访问时间为ta = 0.95*t +0.05*5t = 1.2t; 5t/1.2t = 4.17, 也就是使用cache后性能提高了3.17倍。(2)若采用先访问Cache再访问主存的方式:不命中时,访问Cache耗时为t ,发现不命中后再访问主存耗时为5t,总耗时为6t。ta = 0.95*t +0.05*6t = 1.25t;5t/1.25t=4 提高了3倍

1、命中率H:

CPU欲访问的信息已在Cache中的比率

设一个程序执行期间,Cache的总命中次数为NC,访问主存的总次NM ,则: H=Nc /(Nc+Nm)

2、缺失率M:

CPU欲访问的信息不在Cache中的比率 M =1-H


三、真题速通

存储器是计算机系统的记忆设备,主要用来_______

A、存放数据 B 、存放程序 C 、 存放数据和程序 D 、存放微程序

答:C


存储器的随机访问方式是指( )

A、可随意访问存储器

B 、按随机文件访问存储器

C 、可对存储器进行读出与写入

D 、可按地址访问存储器任一编址单元,其访问时间相同且与地址无关

答:D


指令流是( )

A、从主存流向控制器 B、从控制器流向主存

C、从控制器流向控制器 D、从主存流向主存

答:A


数据流是( )

A、从主存流向控制器 B、从控制器流向主存

C、从控制器流向运算器 D、从主存流向运算器

答:D


内存一般采用( )存储器件,和外存相比,它的速度( )、成本( )

答:半导体 快 高


存储器的读操作是将( )中的数据传送到( )中,该存储器位置中的原数据内容( )

存储器的写操作是将( )中的数据传送到( )中,该存储器位置中的原数据内容( )

答:

存储器 运算器 保持不变

运算器 存储器的某个存储单元 被替代


在多级存储体系中,"Cache-主存"结构的作用是解决( )的问题

A 、主存容量不足 B 、主存与辅存速度不匹配

C 、辅存与CPU速度不匹配 D 、主存与CPU速度不匹配

答:D


一个16K×32位的存储器,其地址线和数据线的总和是______

答:46


利用1K×4位的存储芯片,组成4K×8位的存储器。求需要芯片,地址线,数据线的数量各为多少?扩展过程是怎么样的?

答: (1)共需几块芯片:(4K×8)/(1K×4)= 8

(2)需要几根地址线:4K地址空间(存储单元的个数),需要12根地址线

(3)需要几根数据线:8根

(4)扩展过程:先进行位扩展,这个过程相当于分组,将2片1K×4位构成一组,利用位扩展,构成1K × 8位的完整存储单元。这样一共可以分成四组。再将这些分组视为一个完整的存储单元,进行字扩展


计算机中设置Cache的作用是什么? 能否将Cache的容量扩大,最后取代主存,为什么?

参考答案:计算机中设置Cache主要是为了加速CPU访存速度。

不能把Cache的容量扩大到最后取代主存,主要因为Cache和主存的结构原理以及访问机制不同(主存是按地址访问, Cache是按内容及地址访问)

(1)Cache 容量越大成本越高,难以满足人们追求低价格的要求;

(2)如果取消主存,当 CPU 访问 Cache 失败时,需要将辅存的内容调入 Cache 再由 CPU 访问,造成 CPU 等待时间太长,损失更大


简述高速缓存、内存、系统主存三者之间的关系

参考答案:系统主存一般就是指内存。

高速缓存是为了协调CPU与主存之间存取速度的差异而设置的。一般情况下,CPU的工作速度高,但内存的工作速度相对较低,为了解决这个问题,通常使用高速缓存,高速缓存的存取速度介于CPU和主存之间。系统将一些CPU在近几个时间段内经常访问的内容存入高速缓冲存储器,当CPU需要使用数据时,先在高速缓存中寻找,如果找到,就不必访问内存了,如果找不到,那么再找内存,这样就在一定程度上缓解了由于主存速度低造成的CPU等待的情况


假设Cache中有64块,每块大小为16字节,那么主存中地址为1200的块被映射到Cache中的哪一块?

答:Cache的块数C=64,主存中地址为1200对应的主存块号为j=75,对应的Cache块号i=j MOD C=75 MOD 64=11,所对应Cache的块号为11

相关推荐
猫猫不是喵喵.37 分钟前
【Linux】Linux入门实操——rpm与yum
linux·运维·服务器
苦逼IT运维40 分钟前
Docker 配置 HTTP 和 HTTPS 网络代理
网络·http·docker
盼海1 小时前
排序算法(六)--堆排序
java·算法·排序算法
叫我:松哥1 小时前
基于python flask的网页五子棋实现,包括多种语言,可以悔棋、重新开始
开发语言·python·算法·游戏·flask
陈序缘1 小时前
Rust 力扣 - 198. 打家劫舍
开发语言·后端·算法·leetcode·rust
凭君语未可1 小时前
豆包MarsCode算法题:三数之和问题
java·算法
苏言の狗2 小时前
CCF认证202406-01 | 矩阵重塑(其一)
c语言·数据结构·c++·算法·矩阵
@大嘴巴子2 小时前
从入门到精通数据结构----四大排序(上)
数据结构·算法·排序算法
_GR2 小时前
每日OJ_牛客_游游的字母串_枚举_C++_Java
java·数据结构·c++·算法·哈希算法
因特麦克斯3 小时前
每日一题&智能指针
数据结构·算法·leetcode