相联存储器是按内容访问的存储器
‘壹’ 计算机原理
计算机原理
一. 填空题:
1. 计算机系统由(硬件)系统和(软件)系统构成。
2. 计算机硬件系统包括(运算器、存储器、控制器、输入输出设备)组成。
3. 八位二进制补码表示整数的最小值为(-128),最大值为(+127)
)。
4. 在浮点加法运算中,主要的操作步骤是(对阶、尾数相加、结果规格化、舍入 )和(溢出检查)。
5. 在浮点补码加减运算中,当运算结果的尾数不是(00.1x……x)和(11.0x……x)形式时,需要进行规格化操作。
6. 一个定点数由(符号位)和(数值位)两部分组成,根据小数点位置不同,定点数有(纯小数)和(纯整数)两种表示方法。
7. 采用双符号位的方法进行溢出检测时,若运算结果中两个符号位(不相同),则表明发生了溢出,若结果的符号位为(01),表示发生正溢出;若为(10),表示发生负溢出。
8. 某一静态RAM芯片,其容量为64K×1位,则其地址线有(16)条。
9. 采用4K×4位规格的静态RAM存储芯片扩展32KB的存储模块,需要这种规格的芯片(16)片。
10. cache是一种(高速缓冲)存储器,是为了解决CPU和主存之间(速度)而采用的一项重要的硬件技术。
11. 存储器的技术指标有(存储容量、存取时间、存取周期、存储器带宽)。
12. 虚拟存储器是建立在(多层次存储 )结构上,用来(主存容量不足)解决。
13. 相联存储器是按(内容)访问的存储器,在cache中用来(行地址表)地址,在虚拟存储器中用来存放(段表,页表和快表)。在这两种应用中,都需要(快速)查找。
_二. 名词解释
1. 存储单元:若干个存储元组成。
2. 存取时间:指从启动一次存储器操作到完成该操作所经历的时间。
3. CPU:由运算器和控制器组成。
4. 应用软件:完成应用功能的软件,专门为解决某个应用领域中的具体任务而编写。
5. SRAM:静态随机访问存储器;采用双稳态电路存储信息。
6. 全相联映像:是一种地址映像方式,每个主存块可映像到任何cache块。
三. 计算题、设计题
1. 已知x=-0.1100,y=+0.1101,求x-y的补码、x+y的补码,并说明有否溢出。
解:x=-0.1100 y=0.1101
[x]补=1.0100 [y]补=0.1101
[-y]补=1.0011
[x+y]补=[x]补+[y]补=1.0100+0.1101=0.0001 未溢出
[x-y]补=[x]补+[-y]补=1.0100+1.0011=0.0111 溢出
2. 将十进制数20.59375转换成IEEE754标准32位浮点数的二进制格式来存储。
(20.59375)10=(10100.10011)2
10100.10011=1.010010011×24
e=4
s=0, E=4+127=131, M=010010011
最后得到32位浮点数的二进制存储格式为:
0100 0001 1010 0100 1100 0000 0000 0000
(41A4C000)16
3. 用512K×16位的flash存储器芯片组成一个2M×32的半导体只读存储器,试问:
①数据寄存器多少位?
解:数据寄存器32位
地址寄存器23位
共需要8片FLASH
4. 某计算机系统的内存储器由cache和主存构成,cache的存取周期为45ns,主存的存取周期为20ns。已知在一段给定的时间内,CPU共访问内存4500次,其中340次访问主存。问:
①cache的命中率是多少?
解:①cache的命中率:H=Ne/Ne+Nn=4500-340/4500=0.92
②Ta=H·Te+(1-H)Tm=0.92×45+(1-0.92)×200=57.4ns
③e=Tc/Ta×100%=0.78×100%=78%
5. 设有一个1MB容量的存储器,字长为32位,问:
①按字节编址:1MB=220×8,地址寄存器为20位,数据寄存器为8位;
编址范围为00000H~FFFFFH
②按半字编址:1MB=220×8=219×16,地址寄存器为19位,数据寄存器;
为16位;编址范围为00000H~7FFFFH
③按字编址:1MB=220×8=218×32,地址寄存器为18位,数据寄存器;
为32位;编址范围为00000H~3FFFFH
四. 问答题:
1. 简述存储器芯片中地址译码方法?
两种方式:单译码方式—只用一个译码电路,将所有的地址信号转换成字 选通信号,每个字选通信号用于选择一个对应的存储单元。
双译码方式—采用两个地址译码器,分别产生行选通信号和列选通信号,行、列选通同时有效的单元被选中。
2. 什么是多体交叉编址?有什么优缺点?
主存分成几个独立、同样大小的地址空间,相同容量模块,每个模块地址是连续的,而不是在同一模块上,CPU在一
个存取周期内可同时访问这些模块。这样使整个主存的平均利用率得到提高,加宽了存储器带宽。缺点是不利于扩展。
3. 什么是cache命中率?
答:Cache的命中率是指:在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取
的总次数,n定义为命中率,则有:
n=Nc/Nc+Nm
‘贰’ 相联存储器的原理
写入信息时按顺序写入,不需要地址。
读出时,要求中央处理单元给出一个相联关键字,用它和存储器中所有单元中的一部分信息进行比较,若它们相等,则将此单元中余下的信息读出。这是实现存储器并行操作的一种有效途径,特别适合于信息的检索和更新。
考虑表3-1所示的表格,假设它存放在计算机的主存储器中。该表格由五个记录所组成,每个记录包含四个子段:职工号、姓名、出生年月和工资数。
在表3-1中,信息的存贮与检索问题往往涉及到访问一个记录中的某个子段,如“李四的出生年月是什么时间?”“职工号是5199109的人的姓名是什么?”这类问题如果采用传统的随机存储器,那么一定要确切地指出“李四”的那一项在表格中的物理地址(n+1)与职工号“5199109”和姓名“李四”没有逻辑上的关系,因而用常规方法寻找上述答案时,增加了程序的复杂性。
表3-1 存放在存储器中的一张表格 物理地址 职工号 姓名 出生年月 工资数 n
n+1
n+2
n+3
n+4 5697102
5199109
6296311
7100212
6211403 张三
李四
王五
赵八
吴九 1975.12
1960.09
1980.05
1953.06
1975.059 2300
4000
1750
4200
2500 但是如果我们选择记录的一个子段作为地址来访问存储器时,那么会明显地带来好处,例如,我们选职工号5199109作为地址来访问存储器,那么很快就能知道5199109号是“李四”,“1960年09月”生,工资数为“4000元”。
上述表格的问题采用相联存储器结构,就能圆满得到解决。一般而言,相联存储器是指其中任一存储项都可以直接用该项的内容作为地址来存取的存储器。选用来寻址存储器的子段叫做关键字,简称为键。这样,存放在相联存储器的项中的项可以看成具有下列格式:
KEY,DATA
其中键KEY是地址,而数据DATA是读写信息。
由此可知,相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项),去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。
‘叁’ 主存和cache之间的映像方式有哪几种
1.直接映像(Direct Mapping)
采用直接映像时,Cache的某一块只能和固定的一些主存块建立映像关系,主存的某一块只能对应一个Cache块。直接映像的优点是硬件简单、成本低;缺点是不够灵活,主存的若干块只能对应惟一的Cache块,即使Cache中还有空位,也不能利用。
2.全相联映像(Associative Mapping)
采用全相联映像时,Cache的某一块可以和任一主存块建立映像关系,而主存中某一块也可以映像到(2ache中任一块位置上。由于Cache的某一块可 以和任一主存块建立映像关系,所以Cache的标记部分必须记录主存块块地址的全部信息。例如,主存分为2n块,块的地址为n位,标记也应为n位。 采用全相联映像方式时,主存地址被理解为由两部分组成:标记(主存块号)和块内地址。CPU 在访问存储器时,为了判断是否命中,主存地址的标记部分需要和Cache的所有块的标记进行比较。为了缩短比较的时间,将主存地址的标记部分和Cache 的所有块的标记同时进行比较。如果命中,则按块内地址访问Cache中的命中块(其标记与主存地址给出的标记相同);如果未命中,则访问主存。
全相联映像的优点是灵活,Cache利用率高。缺点有两个:一是标记位数增加了(需要记录主存块块地址的全部信息),使得Cache的电路规模变 大,成本变高;二是比较器难于设计和实现(通常采用“按内容寻址的”相联存储器)。因此,只有小容量Cache才采用这种映像方式。
3.组相联映像(Set Associative Mapping)
组相联映像方式是介于直接映像和全相联映像之间的一种折中方案。设Cache中共有m个块,在采用组相联映像方式时,将m个Cache块分成u组(set),每组k个块(即m=u
×k),组间直接映像,而组内全相联映像。所谓组间直接映像,是指某组中的Cache块只能与固定的一些主存块建立映像关系。
‘肆’ 相联存贮器是按( )进行寻址的存贮器
C
关联存储器(相联存储器),是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找块表。既可以按照地址寻址也可以按照内容寻址(通常是某些字段),为了与传统寄存器作区别,称为按内容寻址的存储器。
中文名相联存储器外文名Content Addressed Memory也 称为按内容访问存储器
‘伍’ 相联存储器的解释
关联存储器(又译作相联存储器)(associative memory)
也称为按内容访问存储器(content addressed memory)
或简称为TLB(Translation Lookaside Buffer)
‘陆’ 数据库系统工程师考试的考试试题
●假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量约为(2)MB。
● (3)是指按内容访问的存储器。
(3)A.虚拟存储器B.相联存储器
C. 高速缓存(Cache) D. 随机访问存储器 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。
【说明】
假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如下:
1. 系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。
2. 在接到供货请求后,从商品库存记录文件中进行商品库存信息查询。如果库存满足供货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。
3. 配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。
4. 采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支付货款。该系统采用结构化方法进行开发,得到待修改的数据流图(如图1-1所示)。
【问题1】(8分)
使用【说明】中的词语,给出图 1-1 中外部实体 E1 至 E4 的名称和数据存储 D1 至D4的名称。
【问题2】(7分)
图 1-1 中存在四处错误数据流,请指出各自的起点和终点;若将上述四条错误数据流删除,为保证数据流图的正确性,应补充三条数据流,请给出所补充数据流的起点和终点。(起点和终点请采用数据流图1-1中的符号或名称) 数据库系统工程师2009年上半年软考真题,详情请参见参考资料 。
‘柒’ 普通存储器和相联存储器基本结构相同吗
不相同,关联存储器(相联存储器),是一种不根据地址而是根据存储内容来进行存取的存储器,可以实现快速地查找块表...
‘捌’ 计算机组成原理题目
1.D 2. C 3. C 4 A 5 A 6 B 7 B 8 B 9 A 10 C 11. D 12.D 13. D 14. A 15.C16.2 17.2 18 2 19.2 20.2
‘玖’ 计算机组成原理(三)存储系统
辅存中的数据要调入主存后才能被CPU访问
按存储介质,存储器可分为磁表面存储器(磁盘、磁带)、磁心存储器半导体存储器(MOS型存储器、双极型存储器)和光存储器(光盘)。
随机存取存储器(RAM):读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关,如内存条等
顺序存取存储器(SAM):读写一个存储单元所需时间取决于存储单元所在的物理位置,如磁盘等
直接存取存储器(DAM):既有随机存取特性,也有顺序存取特性。先直接选取信息所在区域,然后按顺序方式存取。如硬盘等
相联存储器,即可以按内容访问的存储器(CAM)可以按照内容检索到存储位置进行读写,“快表”就是一种相联存储器
读写存储器—即可读、也可写(如:磁盘、内存、Cache)
只读存储器—只能读,不能写(如:实体音乐专辑通常采用CD-ROM,实体电影采用蓝光光盘,BIOS通常写在ROM中)
断电后,存储信息消失的存储器——易失性存储器(主存、Cache)
断电后,存储信息依然保持的存储器——非易失性存储器(磁盘、光盘)
信息读出后,原存储信息被破坏——破坏性读出(如DRAM芯片,读出数据后要进行重写)
信息读出后,原存储信息不被破坏——非破坏性读出(如SRAM芯片、磁盘、光盘)
存储器芯片的基本电路如下
封装后如下图所示
图中的每条线都会对应一个金属引脚,另外还有供电引脚、接地引脚,故可以由此求引脚数目
n位地址对应2 n 个存储单元
假如有8k×8位的存储芯片,即
现代计算机通常按字节编址,即每个字节对应一个地址
但也支持按字节寻址、按字寻址、按半字寻址、按双字寻址
(Dynamic Random Access Memory,DRAM)即动态RAM,使用栅极电容存储信息
(Static Random Access Memory,SRAM)即静态RAM,使用双稳态触发器存储信息
DRAM用于主存、SRAM用于Cache,两者都属于易失性存储器
简单模型下需要有 根选通线,而行列地址下仅需 根选通线
ROM芯片具有非易失性,断电后数据不会丢失
主板上的BIOS芯片(ROM),存储了“自举装入程序”,负责引导装入操作系统(开机)。逻辑上,主存由 辅存RAM+ROM组成,且二者常统一编址
位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。
字扩展是指增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围。
实际上,存储器往往需要同时扩充字和位。字位同时扩展是指既增加存储字的数量,又增加存储字长。
两个端口对同一主存操作有以下4种情况:
当出现(3)(4)时,置“忙”信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间段后再访问。
多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交义工作。多体并行存储器分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)两种.
①高位交叉编址
②低位交叉编址
采用“流水线”的方式并行存取(宏观上并行,微观上串行),连续取n个存储字耗时可缩短为
宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍。存取周期为T,存取时间/总线传输周期为r,为了使流水线不间断,应保证模块数
单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。
缺点:每次只能同时取m个字,不能单独取其中某个字;指令和数据在主存内必须是连续存放的
为便于Cache 和主存之间交换信息,Cache 和主存都被划分为相等的块,Cache 块又称Cache 行,每块由若干字节组成。块的长度称为块长(Cache 行长)。由于Cache 的容量远小于主存的容盘,所以Cache中的块数要远少于主存中的块数,它仅保存主存中最活跃的若干块的副本。因此 Cache 按照某种策略,预测CPU在未来一段时间内欲访存的数据,将其装入Cache.
将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾
CPU欲访问的信息已在Cache中的比率称为命中率H。先访问Cache,若Cache未命中再访问主存,系统的平均访问时间t 为
同时访问Cache和主存,若Cache命中则立即停止访问主存系统的平均访问时间t 为
空间局部性:在最近的未来要用到的信息(指令和数据),很可能与现在正在使用的信息在存储空间上是邻近的
时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息
基于局部性原理,不难想到,可以把CPU目前访问的地址“周围”的部分数据放到Cache中
直接映射方式不需要考虑替换算法,仅全相联映射和组相联映射需要考虑
①随机算法(RAND):若Cache已满,则随机选择一块替换。实现简单,但完全没考虑局部性原理,命中率低,实际效果很不稳定
②先进先出算法(FIFO):若Cache已满,则替换最先被调入Cache的块。实现简单,依然没考虑局部性原理
③近期最少使用算法(LRU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块已经有多久没被访问了。当Cache满后替换“计数器”最大的.基于“局部性原理”,LRU算法的实际运行效果优秀,Cache命中率高。
④最不经常使用算法(LFU):为每一个Cache块设置一个“计数器”,用于记录每个Cache块被访问过几次。当Cache满后替换“计数器”最小的.并没有很好地遵循局部性原理,因此实际运行效果不如LRU
现代计算机常采用多级Cache,各级Cache之间常采用“全写法+非写分配法”;Cache-主存之间常采用“写回法+写分配法”
写回法(write-back):当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。减少了访存次数,但存在数据不一致的隐患。
全写法(写直通法,write-through):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)。使用写缓冲,CPU写的速度很快,若写操作不频繁,则效果很好。若写操作很频繁,可能会因为写缓冲饱和而发生阻塞访存次数增加,速度变慢,但更能保证数据一致性
写分配法(write-allocate):当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改。通常搭配写回法使用。
非写分配法(not-write-allocate):当CPU对Cache写不命中时只写入主存,不调入Cache。搭配全写法使用。
页式存储系统:一个程序(进程)在逻辑上被分为若干个大小相等的“页面”, “页面”大小与“块”的大小相同 。每个页面可以离散地放入不同的主存块中。CPU执行的机器指令中,使用的是“逻辑地址”,因此需要通“页表”将逻辑地址转为物理地址。页表的作用:记录了每个逻辑页面存放在哪个主存块中
逻辑地址(虚地址):程序员视角看到的地址
物理地址(实地址):实际在主存中的地址
快表是一种“相联存储器”,可以按内容寻访,表中存储的是页表项的副本;Cache中存储的是主存块的副本
地址映射表中每一行都有对应的标记项
主存-辅存:实现虚拟存储系统,解决了主存容量不够的问题
Cache-主存:解决了主存与CPU速度不匹配的问题
‘拾’ 相联存储器是什么组成原理里面的相联是什么
相联存储器的定义介绍可见网络:
http://ke..com/link?url=-flumWFF1OGCxB7aJ7hNINv0vCb5k6
相联存储器可以用来作虚拟内存页表访问时的TLB快表。
下面是快表的介绍:
根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理器要在主内寻址时,不是直接在内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,页表文件(PTE page table entry 页表条目存放在内存中)就是负责将虚拟内存地址翻译成实际的物理内存地址,TLB中存放了部分PTE页表的缓存。而CPU寻址时会优先在TLB中进行寻址。TLB是在MMU中包括的一段小的缓存(MMU memory management unit 存储器管理单元,是CPU芯片上的一个专用硬件)。处理器的性能就和寻址的命中率有很大的关系。
如果TLB中正好存放着所需的页表,则称为TLB命中(TLB Hit);如果TLB中没有所需的页表,则称为TLB失败(TLB Miss)。如果快表命中的话,实现虚拟地址到物理地址的映射可以少访问一次内存。
如果命中的话,就可以直接将虚拟地址转换为物理地址,如果不命中,则必须在PTE页表中继续查找,并将找到的PTE存放到TLB中,覆盖已经存在的一个条目。