主存与cache的地址映射关系

合集下载

2016年上半年上午 软件设计师 试题及答案与解析-软考考试真题-基础知识

2016年上半年上午 软件设计师 试题及答案与解析-软考考试真题-基础知识

2016年上半年上午软件设计师考试试题-答案与解析一、单项选择题(共75分,每题1分。

每题备选项中,只有1个最符合题意)●第1题.VLIW是(1)的简称。

A.复杂指令系统计算机B.超大规模集成电路C.单指令流多数据流D.超长指令字【参考答案】D【答案解析】VLIW:(VeryLongInstructionWord,超长指令字)一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。

●第2题.主存与Cache的地址映射方式中,(2)方式可以实现主存任意一块装入Cache中任意位置,只有装满才需要替换。

A.全相联B.直接映射C.组相联D.串并联【参考答案】A【答案解析】全相联映射是指主存中任一块都可以映射到Cache中任一块的方式,也就是说,当主存中的一块需调入Cache时,可根据当时Cache的块占用或分配情况,选择一个块给主存块存储,所选的Cache块可以是Cache中的任意一块。

●第3题.如果“2X”的补码是“90H”,那么X的真值是(3)。

A.72B.-56C.56D.111【参考答案】B【答案解析】90H即为二进制的:10010000。

说明此数为负数,其反码为:10001111,其原码为:11110000,即-112,2X=-112,所以X=-56。

●第4题.移位指令中的(4)指令的操作结果相当于对操作数进行乘2操作。

A.算术左移B.逻辑右移C.算术右移D.带进位循环左移【参考答案】A【答案解析】移位运算符就是在二进制的基础上对数字进行平移。

按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n 次方。

●第5题.内存按字节编址,从A1000H到B13FFH的区域的存储容量为(5)KB。

A.32B.34C.65D.67【参考答案】C【答案解析】(B13FF+1-A1000H)/1024=65KB。

计算机组成原理部分答案

计算机组成原理部分答案

4.6 某机字长为32位,其存储容量是64KB ,按字编址的寻址范围是多少?若主存按字节编址,试画出主存字地址和字节地址的分配情况。

解:主存容量64KB ,如果按字编址,有64KB / 4B = 16K 个可寻址单元寻址范围是 214或0 ~ 16K-1如果按字节编址,有64K 个可寻址单元。

每个字包含4个字节。

用二进制表示的地址,字地址的最低2位是00。

4、7. 一个容量为16K ×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1K ×4位,2K ×8位,4K ×4位,16K ×1位,4K ×8位,8K ×8位解:地址线和数据线的总和 = 14 + 32 = 46根;选择不同的芯片时,各需要的片数为:1K ×4:(16K ×32) / (1K ×4) = 16×8 = 128片2K ×8:(16K ×32) / (2K ×8) = 8×4 = 32片4K ×4:(16K ×32) / (4K ×4) = 4×8 = 32片16K ×1:(16K ×32)/ (16K ×1) = 1×32 = 32片4K ×8:(16K ×32)/ (4K ×8) = 4×4 = 16片8K ×8:(16K ×32) / (8K ×8) = 2×4 = 8片4.15 设CPU 共有16根地址线,8根数据线,并用MREQ (低电平有效)作访存控制信号,W /R 作读写命令信号(高电平为读,低电平为写)。

现有下列存储芯片:ROM (2K ×8位,4K ×4位,8K ×8位),RAM (1K ×4位,2K ×8位,4K ×8位),及74138译码器和其他门电路(门电路自定)。

组成原理-武汉纺织大学题库填空题

组成原理-武汉纺织大学题库填空题

首页课程导学教学内容课程实验课程作业自我测试课程交流测试试卷课程答疑教学资料您当前的位置:自我测试返回填空题1、 请在括号内填入适当答案。

在CPU 中: (1) 保存当前正在执行的指令的寄存器是; (2) 保存当前正要执行的指令地址的寄存器是; (3) 算术逻辑运算结果通常放在和。

查看答案正确答案:指令寄存器IR 程序计数器PC 通用寄存器 数据缓冲寄存器DR 查看点评2、 硬布线器的设计方法是:先画出流程图,再利用写出综合逻辑表达式,然后用等器件实现。

查看答案正确答案:指令(周期) 布尔(逻辑)代数 门电路和触发器查看点评3、 微程序控制器由、、三大部分组成,其中是ROM 存储器,用来存放。

查看答案正确答案:控制存储器 微指令寄存器 地址转移逻辑 控制存储器 微程序查看点评4、 流水CPU 中的主要问题是:相关、相关和相关。

查看答案正确答案:资源 数据 控制查看点评5、 并行处理技术主要有三种形式:并行、并行和并行。

查看答案正确答案:时间 空间 时间及空间查看点评6、 微程序设计技术是利用方法设计的一门技术,具有规整性、、可维护性等一系列优点。

查看答案计算机组成原理C o m p u t e r O r g a n i z a t i o n P r i n c i p l e 返回平台首页正确答案:软件 控制器 灵活性查看点评7、 微指令格式中,微指令的编码通常采用以下三种方式:、和。

查看答案正确答案:直接表示法 编码表示法 混合表示法查看点评8、 由于数据通路之间的结构关系,微操作可分为和两种。

查看答案正确答案:相容性 相斥性查看点评9、 在程序执行过程中,控制器控制计算机的运行总是处于、分析指令和的循环当中。

查看答案正确答案:取指令 执行指令查看点评10、 CPU从主存取出一条指令并执行该指令的时间叫,它常用若干个来表示,而后者又包含若干个。

查看答案正确答案:指令周期 机器周期 时钟周期查看点评11、 CPU的四个主要功能是、、和。

以下习题来自《计算机系统结构》第七章 存储体系。

以下习题来自《计算机系统结构》第七章 存储体系。

以下习题来自《计算机系统结构》第七章存储体系。

7.1解释下列术语直接映像:每个主存地址映像到Cache中的一个指定地质的方式称为直接映像。

全相联映像:任何主存地址可映像到任何Cache地址的方式称为全相联映像。

组相联映像:组相联映像指的是将存储空间的页面分成若干组,各组之间是直接映像,而组内各块之间是全相联映像。

全写法:全写法也称直达法,即写操作将数据同时写入Cache和缓存。

写回法:写Cache时不写主存,仅当被写Cache数据块要被替换出去时才写回主存。

虚拟存储器:虚拟存储器是主存的扩展,当主存的容量不能满足要求时,数据可存放在外存中,在程序中仍然按地址访问外存空间。

大小取决于计算机的访存能力。

段式管理:把主存按段分配的存储管理方式称为段式管理。

页式管理:把虚拟存储空间和实际存储空间等分成固定大小的页,各虚拟页可装入主存中不同的实际页面位置。

段页式管理:段页式管理式段式管理和页式管理的结合,他将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行。

段的长度必须是页的长度的整数倍,段的起点必须是某一页的起点。

快表:为了提高页表中常用项的访问速度,采用快速硬件构成的比全表小的多的部分表格。

慢表:存放在主存中的整个页表。

高速缓存:高速缓冲存储器是位于CPU和主存之间的高层存储子系统。

时间局部性:如果一个存储项被访问,则可能该项会很快再次被访问。

空间局部性:如果一个存储项被访问,则该项及其邻近的相也可能很快被访问。

段表:在对虚拟内存进行管理时,系统中用于指明各段在主存中的位置的表,表中包括段名或段号、段起点、装入位和段长等。

页表:在对虚拟内存进行管理时,系统中用于指明各页在主存中的位置的表,表中包括页号、每页在主存中的起始位置、表示该页是否已装入主存的装入位等。

块表:存储系统中的一个用于解决块和页的定位、标志、和寻址问题的表。

7.2 有人认为,随着存储器芯片集成度的提高,主存的容量将越来越大,虚拟存贮器将被淘汰,未来的计算机中将不采用虚拟存储器。

Cache基础知识介绍

Cache基础知识介绍

• 两极cache相比较而言,L1 cache的容量小,但数据存取速 度较快,L2 cache的容量大,但数据存取速度较慢。部分 系统中也存在三级cache的结构。
Microprocessor
Fastest
CPU
Level 1 cache
Fast
Level 2 cache
Slow
memory
Cache的作用是什么
• 通过优化代码提高cache命中率
对数组int x[1024][4]进行求和 代码段A for(i=0;i<1024;i++) for(j=0;j<4;j++) sum += x[i][j]
Entry 0 Way 0 x[i][0] x[i][1]
代码段B for(j=0;j<4;j++) for(i=0;i<1024;i++) sum += x[i][j]
• 块:块是cache与主存的传输单位。 • 路(way): 路是组相联映射方式的cache结构中的基本存 储单位,每一路存储一个块的数据。 • 组(entry):组是组相联映射方式的cache对块进行管理的 单位。 • 区 (tag) :块的地址对应的主存储器中的区。 • 块内偏移地址(offset): 用来标示块内一个字节的地址。 • 组相联映射方式下主存储器的地址空间由,区,组和块内 偏移地址组成。
什么是cache
• Cache又叫高速缓冲存储器,位于CPU与内存之间,是一种 特殊的存储器子系统。 • 目前比较常见的是两极cache结构,即cache系统由一级高 速缓存L1 cache和二级高速缓存L2 cache组成,L1 cache通 常又分为数据cache(I-Cache)和指令cache(D-Cache), 它们分别用来存放数据和执行这些数据的指令。

cache三种方式

cache三种方式

第三章存储系统第五节Cache存储器二、主存与Cache的地址映射由于Cache比主存小的多,因此必须使用一种机制将主存地址定位到Cache中,即地址映射。

这个映射过程全部由硬件实现,对程序员透明。

1.地址映射方法:采用查表法(用专用快速硬件实现表格)表中内容:映射的Cache地址、标记(命中判断)、有效位2.地址映射的三种方式:(1)全相联映射方式:灵活,但映射函数复杂,不易实现。

(2)直接映射方式:映照简单,不需计算,快速,但效率不高,易颠簸;。

(3)组相联映射方式:组内全相联映射,组间直接映射(1)全相联映射方式·任一主存块能映射到Cache中任意行(主存块的容量等于Cache行的容量),见图1:·映射过程:(见图2)①存入Cache:块表标记中存放主存的块号②检索:访问主存地址的块号与所有Cache行标记比较(图2阴影区)·符合,即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;·不符合:访问主存,并将该块调入Cache。

·优点:灵活,不易产生冲突;缺点:比较电路难于实现,且效率低,速度慢。

例:设访问存储器地址的块号序列为22、26、22、26、16、4、16、18,采用全相联映射方式时,Cache行分配情况(见图3)。

全相联映射方式实例演示(2)直接映射方式直接映射方式实例演示·某一主存块只能能映射到Cache的特定行,见图4:i = j mod m 其中:i:Cache的行号;j:主存的块号;m:Cache的总行数。

·映射过程:(见图5)①存入Cache:快表标记中存放主存地址的区号(将块地址分为二部分:·块(行)地址·标记(区号))②检索:根据访问主存地址的中间字段(行号),找到Cache快表中的这一行,读取该行中的标记字段与主存地址高位字段(区号)比较(图5阴影区)·符合:即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;·不符合:访问主存,并将该块调入Cache。

4.3主教材习题解析

4.3主教材习题解析

4.3 主教材习题解析4.1 说明1M×l位DRAM片子的刷新方法,刷新周期定为8ms。

解:1M×l位DRAM片子的组织为1024×1024,(1024行1024列),每次刷新2048单元,在一个刷新周期内刷新512次,每次刷新间隔为8ms / 512 = 15.625微秒,即每隔15.625微秒刷新2行,在不到8ms时间全部刷新一遍(即刷新周期定为8ms)。

刷新时,送9位行地址A8~A0,行地址选通信号RAS#=L,写信号WE#=H (刷新是假读)4.2 用16k×8位的DRAM芯片构成64K×32位的存储器:画出该存储器的组成逻辑框图解:采用字位扩展法,4片16k×8位芯片组成一组为位扩展,形成32位字共用4组字扩展,构成64k×32的存储器。

4.3 设有一个具有20位地址和32位字长的存储器,求(1)该存储器能存储多少个字节的信息?(2)若存储器由512k×8位SRAM芯片组成,需要多少片?(3)需要多少位地址作芯片选择?解:(1)220×32 / 8 = 4MB(2)4MB / 512k×8位= 8片,2片构成1MB, 4MB需4组(3)2片构成1MB, 4MB需4组,用2位地址作芯片选择。

4.4. 用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。

(1)512×4位RAM构成16KB的存储系统;(2)1024×1位RAM构成128KB的存储系统;(3)2K×4位RAM构成64KB的存储系统;(4)64K×1位RAM构成256KB的存储系统;解:1) 需要16KB/512×4=64片片外地址译码需11位地址线。

2) 需要128KB/1K×1=1024片片外地址译码需10位地址线。

中级软件设计师2013年11月上午试题_真题(含答案与解析)-交互

中级软件设计师2013年11月上午试题_真题(含答案与解析)-交互

中级软件设计师2013年11月上午试题(总分75, 做题时间90分钟)单选选择本试卷的试题中有A、B、C、D四个选项,请选择一个最恰当的选项。

1.在程序执行过程中,Cache与主存的地址映像由______。

SSS_SINGLE_SELA 硬件自动完成B 程序员调度C 操作系统管理D 程序员与操作系统协同完成分值: 1答案:A[解析] CPU对存储器的访问,通常是一次读写一个字单元。

当CPU访问Cache 不命中时,需将存储在主存中的字单元连同其后若干个字一同调入Cache中。

由于CPU首先访问的是Cache,并不是主存。

为此,需要一种机制将CPU的访主存地址转换成访Cache地址。

而主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的。

2.指令寄存器的位数取决于______。

SSS_SINGLE_SELA 存储器的容量B 指令字长C 数据总线的宽度D 地址总线的宽度分值: 1答案:B[解析] 当CPU执行一条指令时,先把它从内存储器读取到缓冲寄存器中,再送入指令寄存器IR暂存,IR是用来存放要执行的指令的,所以很明显跟指令的长度有关。

3.若计算机存储数据采用的是双符号位(00表示正号、11表示负号),两个符号相同的数相加时,如果运算结果的两个符号位经______运算得1,则可断定这两个数相加的结果产生了溢出。

SSS_SINGLE_SELA 逻辑与B 逻辑或C 逻辑同或D 逻辑异或分值: 1答案:D[解析] 本题考查逻辑运算,两个相同符号位经过异或可以得到1。

4.某指令流水线由4段组成,各段所需要的时间如下图所示。

连续输入8条指令时的吞吐率(单位时间内流水线所完成的任务数或输出的结果数)为______。

SSS_SINGLE_SELA 8/56ΔtB 8/32ΔtC 8/28ΔtD 8/24Δt分值: 1答案:C[解析] 吞吐率是指单位时间里流水线处理机流出的结果数。

对指令而言,就是单位时间里执行的指令数。

2009-2013年计算机组成考研原试题与答案

2009-2013年计算机组成考研原试题与答案

2009年全国硕士研究生计算机学科入学统一考试计算机组成原理试题分析一、选择题(每个题2分)11.冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是A.指令操作码的译码结果B.指令和数据的寻址方式C.指令周期的不同阶段D.指令和数据所在的存储单元[答案] C[解析] 1、指令执行步骤,在取指期间取来的是指令,读数据期间读来的是数据;2、指令和数据性质上的区别,虽然二者都用二进制表示,但属于完全不同性质的信息,数据是计算机加工处理的“原材料”,指令是告知计算机运行功能和执行步骤的命令类信息。

12.一个C语言程序在一台32位机器上运行。

程序中定义了三个变量x、y和z,其中x和z为int型,y为short型。

当x = 127,y = -9时,执行赋值语句z = x+y后,x、y和z的值分别是A.x = 0000007FH,y = FFF9H,z = 00000076HB.x = 0000007FH,y = FFF9H,z = FFFF0076HC.x = 0000007FH,y = FFF7H,z = FFFF0076HD.x = 0000007FH,y = FFF7H,z = 00000076H[答案] D[解析] 1、十进制整数到二进制的转换,数据的补码表示;2、补码加法运算,2两个不同位数的补码数相加时需要进行符号扩展;X=127,[X]补=0000007FH(32位整数),运算后其值不变Y=-9,[Y]补=FFF7H (16位整数),运算后其值不变[Z]补= [X补+Y补]=0000007FH+FFFFFFF7H=00000076H3、解题技巧,也可先求出127+(-9)=118,再变成补码后去与可供选择的答案对比。

补码位扩展规则:高位补符号位13.浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。

设浮点数的阶码和尾数均采用补码表示,且位数分别为5位和7位(均含2位符号位)。

中级软件设计师上午试题-计算机组成与结构(一)-1

中级软件设计师上午试题-计算机组成与结构(一)-1

中级软件设计师上午试题-计算机组成与结构(一)-1(总分:50.00,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:2,分数:50.00)地址编号从80000H到BFFFFH,且按字节编址的内存容量为______KB,若用16K×4bit的存储器芯片构成该内存,共需______片。

(分数:45.00)(1).∙ A.128∙ B.256∙ C.512∙ D.1024(分数:2.50)A.B. √C.D.解析:(2).∙ A.8∙ B.16∙ C.32∙ D.64(分数:2.50)A.B.C. √D.解析:[解析] 从80000H到BFFFFH有BFFFFH-80000H+1个地址单元,即40000H个地址单元。

若按字节编址,有218个字节,即256KB。

若用16K×4bit的存储芯片,需要(256K×2×4bit)/(16K×4bit)=32片芯片。

(3).在程序执行过程中,Cache与主存的地址映像由______。

∙ A.硬件自动完成∙ B.程序员调度∙ C.操作系统管理∙ D.程序员与操作系统协同完成(分数:2.50)A. √B.C.D.解析:[解析] CPU对存储器的访问,通常是一次读写一个字单元。

当CPU访问Cache不命中时,需将存储在主存中的字单元连同其后若干个字一同调入(Cache中。

由于CPU首先访问的是Cache,并不是主存。

为此,需要一种机制将CPU的访主存地址转换成Cache地址。

而主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的。

(4).______不属于按寻址方式划分的一类存储器。

∙ A.随机存储器∙ B.顺序存储器∙ C.相联存储器∙ D.直接存储器(分数:2.50)A.B.C. √D.解析:[解析] 相联存储器是按内容访问的一种存储器,是按访问方式划分的。

存储器按访问方式可分为按地址访问的存储器和按内容访问的存储器。

主存和Cache的几种映射方式

主存和Cache的几种映射方式

主存和Cache的⼏种映射⽅式在⼀切开始之前,⾸先最重要的是需要去明⽩和掌握内存的块的定义:内存被分为若⼲块,这些块:1.⼤⼩相等,2.每块由若⼲字组成,3.块的长度成为块长,块的长度是指由⼏个字组成就是多长,⽐如⼀个块由x个字组成,那么块长为x.4.每个块由连续的字组成。

在Cache中这种块被某些替换原则替换进⼊Cache之后,称为Cache的⾏(有些书上也称为块,这⾥就⽤⾏表⽰,以免混淆)。

有以下⼏个特点:1.块长(⼀般是取⼀个存取周期内从主存调出的信息长度,和交互存取有关系)与⾏长相等,这点和物理页和逻辑页的页内地址的长度是⼀样的原理类似。

2.Cache中⾏的位数=⾏号+⾏内地址内存中块的位数=块号+块内地址。

3.块内地址的位数由块的长度决定(设块的长度为x,块内地址的位数其实就是⽤⼏位能表⽰x的问题),块号的位数由块的数⽬决定(⽐如块的数⽬是x,块号其实就是⽤⼏位⼆进制数能表⽰x个数的问题),⾏号的位数由⾏数决定。

块⾥的内容就是⾏的内容,⾏内地址和块内地址相同。

、标记位是什么?先记住⼀点,标记位和cache的地址没有⼀点关系。

每个⾏对应⼀个标记位。

后⾯会进⾏说明CPU与内存以及Cache之间的交互⽅式好了,明⽩了块和⾏的定义之后,我们来看看CPU与内存和Cache之间的交互:1.CPU同时(也有可能不是同时,这时事先访问cache cahce⾥⾯没有再对主存进⾏访问,如果缺失的话访存时间会长⼀点)向Cache和内存发出读请求。

把地址同时送给Cache和内存。

2.Cache控制逻辑(由硬件实现)判断此内存地址是否在Cache中,在则⽴马将此内存的字送给CPU,与此同时,终⽌访问内存。

3.若不在Cache中,⽤主存读取周期从主存中将字取出送往CPU,与此同时,把含有这个字的整个数据块通过Cache与主存的直接通路送到Cache 中。

(由这个交互过程我们可以看到,主存和Cache与CPU交互的时候传送的是字,但是Cache和主存交互传送的是块)了解了过程之后我们来看看映射关系是什么,映射关系是CPU在访存时,将主存地址变换成Cache地址的过程。

假设主存地址为32位,按字节编址,主存和cache之间回写

假设主存地址为32位,按字节编址,主存和cache之间回写

假设主存地址为32位,按字节编址,主存
和cache之间回写
<br>主存和cache之间的回写是计算机存储系统中的一个重要技术,它可以提高系统的性能、可靠性和可扩展性。

假设主存地址为32位,按字节编址,主存和cache之间的回写将涉及到多种复杂的技术。

首先,确定主存和cache之间的地址映射关系。

因为主存地址为32位,所以cache中的地址也必须是32位。

主存地址和cache地址之间必须建立一种映射关系,这种映射关系可以是一对一的,也可以是一对多的,具体取决于系统的设计。

当主存和cache之间建立了地址映射关系后,就可以开始回写操作。

主存和cache之间的回写操作可以分为两种:一种是回写到cache,另一种是回写到主存。

在回写到cache的情况下,系统会根据地址映射关系,将主存中的数据回写到cache中,以提高cache的命中率。

在回写到主存的情况下,系统会将cache中的数据回写到主存中,以确保主存中的数据是最新的。

主存和cache之间的回写操作需要考虑到很多因素,例如地址映射关系、缓存命中率、数据一致性等。

如果这些因素没有得到很好的控制,可能会导致系统性能的降低,或者导致数据不一致的情况。

因此,主存和cache之间的回写操作需要经过精心的设计,以保证系统的性能和可靠性。

总而言之,主存和cache之间的回写操作是计算机存储系
统中一项重要的技术,它能够提高系统的性能和可靠性。

但是,要想获得最佳性能,就需要经过精心的设计,以确保不出现数据错误和性能下降的情况。

Cache地址映射

Cache地址映射
4.5.2 地址映像与地址变换方法
地址映像指存放在主存中的程序或数据按照某种规则复 制到Cache中;
地址变换指主存地址与Cache地址如何变换; 块0
1.全相联映像方式
块1
(1)映像方式
主存和Cache都分成 若干大小相等的块, 每块由若干存储单元 组成,主存的任一块 都可装入Cache中的 任一块中。
……
块0 块1 块0 块1 …… 块0 块1 主存
0组 1组 0区 3组 0组 1组 1区 3组
0组 1组 7区 3组
主存64块, Cache8块,2块 一组,主存划分 为8个区,每区划 分为4组。
(2)地址变换
主存地址
区号E
组号G
组内块号B 块内地址W
组号g
Cache地址
组内块号b 块内地址w
相联比较
块0 块1 …… 块Cb-1
Cache
…… 块i …… 块Mb-1 主存
(2)地址变换
主存地址
相联比较
主存块号B
Cache地址
Cache块号b
命中
块内地址W 块内地址W
B
b
1
主存块号B
Cache块号b
有效位
目录表,由相联存储器构成,共Cb个字
(3)特点
优点: 灵活,块冲突率低,只有在Cache中的块全部装满后
…… 块Me-Gb=GbCgMe-Gb
…… 块Me-1=GbCgMe-1
主存
Cg(Me-1)组
CgMe-Cg+1组 Me-1区
CgMe-1组
0组
块0 块1
1组
块0 块1
……
3组
块0 块1
Cache
仅画出了Cache 的0组的情况

cache 组相连方

cache 组相连方

cache 组相连方
cache组相连是将cache分组,同时内存也分组,每次将内存的一个组存到cache中。

这种方式是基于局部性原理,即最近访问的数据可能会被重复访问,它的邻居也极可能被访问,把它们都放入cache最有效。

以8路组相连为例,每个组里面有8个行,cache的容量要远远小于主存,主存和cache 不是一一对应的,拿到一个地址,首先是映射到一个组里面去,如何映射是通过取内存地址的中间几位来实现的。

cache组相连方式可以提高cache的利用率,有效改善数据访问的性能。

在实际应用中,可以根据具体需求和硬件配置选择合适的cache组织方式。

主存与cache的地址映射关系

主存与cache的地址映射关系

主存与cache的地址映射关系主存与Cache的地址映射CPU对存储器的访问,通常是⼀次读写⼀个字单元。

当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若⼲个字⼀同调⼊Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。

因此,主存和Cache之间⼀次交换的数据单位应该是⼀个数据块。

数据块的⼤⼩是固定的,由若⼲个字组成,且主存和Cache的数据块⼤⼩是相同的。

从Cache-主存层次实现的⽬标看,⼀⽅⾯既要使CPU的访存速度接近于访Cache的速度,另⼀⽅⾯为⽤户程序提供的运⾏空间应保持为主存容量⼤⼩的存储空间。

在采⽤Cache-主存层次的系统中,Cache对⽤户程序⽽⾔是透明的,也就是说,⽤户程序可以不需要知道Cache的存在。

因此,CPU每次访存时,依然和未使⽤Cache的情况⼀样,给出的是⼀个主存地址。

但在Cache-主存层次中,CPU⾸先访问的是Cache,并不是主存。

为此,需要⼀种机制将CPU的访主存地址转换成访Cache地址。

⽽主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的,也就是说,当CPU访Cache未命中时,需要将欲访问的字所在主存中的块调⼊Cache中,按什么样的策略调⼊,直接影响到主存地址与Cache地址的对应关系,这也就是本⼩节要解决的主存与Cache的地址映射问题。

主要有三种地址映射⽅式,分别为全相联映射、直接相联映射和组相联映射。

1. 全相联映射全相联映射是指主存中任⼀块都可以映射到Cache中任⼀块的⽅式,也就是说,当主存中的⼀块需调⼊Cache时,可根据当时Cache的块占⽤或分配情况,选择⼀个块给主存块存储,所选的Cache块可以是Cache中的任意⼀块。

例如,设Cache共有2C块,主存共有2M块,当主存的某⼀块j需调进Cache中时,它可以存⼊Cache的块0、块1、…、块i、… 或块2C -1的任意⼀块上。

Cache和主存之间的映像

Cache和主存之间的映像

3.7.3 Cache和主存之间的映像方式为了把信息放到Cache中,必须应用某种函数把主存地址映像到Cache中定位,称为地址映像(映射)。

而将主存地址变换成Cache地址,称做地址变换,它们之间是密切相关的。

常用的地址映像方式有三种,分别是全相联映像、直接映像和组相联映像。

1.全相联映像全相联映像是指将内存和Cache按照固定的相同的大小进行分块。

内存的块和Cache的块可以任意对应,即内存的任何一块都可以映像到Cache的任何一块。

在Cache的存储空间被占满的情况下,也允许确实已被占满的Cache存储器中替换出任何一个旧块,具体如图3-14所示。

2.直接映像直接映像先将Cache分成若干块,每个块的大小相同,并对每个块进行编号。

同时根据Cache容量大小将内存分成若干区(页),每个区的容量都跟Cache的容量相同,然后对内存进行分块,每块的大小跟Cache块的大小相同,同样对区内的块进行编号。

映像时,内存的某个区的块只能保存在与其块号相同的Cache块中。

如图3-15所示,内存各区中的第0块只能映像到Cache的第0块,而不能映像到其他块。

3.组相联映像组相联映像实际上是直接映像和全相联映像的折中方案。

组相联映像方式先将Cache分成大小相同的若干区(组),对每个区按照直接映像的方式进行分块,并且编号,因此,Cache中有多个编号相同的块。

对内存按照Cache区的大小进行分页,再对每页按照Cache块的大小进行分块,每个内存块可以对应不同Cache区中的相同块号的块。

如图3-16中内存第0页的第0块,可以对应Cache的第0区的第0块,也可以对应第j区的第0块。

在三种方式中,全相联映像方式比较灵活,Cache的块冲突概率最低、空间利用率最高,但是地址变换速度慢,而且成本高,实现起来比较困难;直接映像方式是最简单的地址映像方式,成本低,易实现,地址变换速度快,而且不涉及其他两种映像方式中的替换算法问题。

cache和主存的三种映射方式

cache和主存的三种映射方式

Cache与主存之间的全相联映射,直接映射和组相联映射的区别1.高速缓冲存储器的功能、结构与工作原理高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。

Cache的功能是用来存放那些近期需要运行的指令与数据。

目的是提高CPU对存储器的访问速度。

为此需要解决2个技术问题:一是主存地址与缓存地址的映象及转换;二是按一定原则对Cache的内容进行替换。

Cache的结构和工作原理如图2.3.1所示。

主要由三大部分组成:Cache存储体:存放由主存调入的指令与数据块。

地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。

2.地址映象与转换地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。

下面介绍三种地址映象的方式。

1.全相联方式地址映象规则:主存的任意一块可以映象到Cache中的任意一块(1) 主存与缓存分成相同大小的数据块。

(2) 主存的某一数据块可以装入缓存的任意一块空间中。

全相联方式的对应关系如图2.3.2所示。

如果Cache的块数为Cb,主存的块数为Mb,则映象关系共有Cb×Mb种。

图2.3.3示出了目录表的格式及地址变换规则。

目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。

由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。

举例:某机主存容量为1M,Cache的容量为32KB,每块的大小为16个字(或字节)。

划出主、缓存的地址格式、目录表格式及其容量。

容量:与缓冲块数量相同即211=2048(或32K/16=2048)。

优点:命中率比较高,Cache存储空间利用率高。

缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而应用少。

2.直接相联方式地址映象规则:主存储器中一块只能映象到Cache的一个特定的块中。

计算机系统结构课后答案unit4

计算机系统结构课后答案unit4

第四章课后题1、设二级虚拟存储器的TA1=10^(-7)s、TA2=10^(-2)s,为使存储层次的访问效率e达到最大值的80%以上,命中率H至少要求达到多少?实际上这样高的命中率是很难达到的,那么从存储层次上如何改进?解:∵e=1/[H+(1-H)r] 且r=TA2/TA1 ∴H至少达到99.9%这样的命中率很难达到,可在二级存储器间加一层电子磁盘,降低r,从而降低对H的要求。

2、程序存放在模32单字交叉存储器中,设访存申请队的转移概率λ为25%,求每个存储周期能访问到的平均字数。

当模数为16呢?由此你可得到什么结论?解:B=[ 1-(1-λ)^m] /λ由λ=0.25,m=32 求得:B=4-4*(3/4)^32=4同理,m=16时,B=4-4*(3/4)^16=3.96由此可看出,当转移概率λ为25%比较大时,采用模32与模16的每个存储周期能访问的平均字数非常相近。

就是说,此时,提高模数m对提高主存实际频宽已不显著。

实际上,模数m的进一步增大,会因工程实现上的问题,导致实际性能反而可能比模16的还要低,且价格更高。

所以模数m不宜太大。

对于λ为25%的情况,可以计算机出m=8时,其B已经接近于3.6了。

3、设主存每个分体的存取周期为2μs,宽度为4个字节。

采用模m多分体交叉存取,但实际频宽只能达到最大频宽的0.6倍。

现要求主存实际频宽为4M B/S,问主存模数m应取多少方能使两者速度基本适配?其中m取2的幂。

解:由题意已知存取周期Tm=2*10^(-6)s,宽度W=4B,B实=0.6Bm=4*2^20 B/S,Bm=W*m/Tm=6.99*10^6B/Sm=Bm*Tm/W=6.99*10^6*2*10^-6/4=3.495所以m取4能满足要求P.S.①微秒(百万分之一秒) 1μs=10^-6s②计量单位中的M(兆)是10的6次方,见到M自然想起要在该数值的后边续上六个0,即扩大一百万倍。

在二进制中,MB也表示到了百万级的数量级,但1 MB不正好等于1000000字节,而是1048576字节,即1MB = 2E+20 By tes = 1048576Bytes。

计算机组成原理习题第三章

计算机组成原理习题第三章

计算机组成原理习题第三章第三章一.填空题1.在多级存储体系中,cache的主要功能是,虚拟存储器的主要功能是2.SRAM靠存储信息,DRAM靠存储信息。

存储器需要定时刷新。

3.动态半导体存储器的刷新一般有、和4.一个512KB的存储器,其地址线和数据线的总和是5.若RAM芯片里有1024个单元,用单译码方式,地址译码器有条输出线;用双译码方式,地址译码器有条输出线。

6.高速缓冲存储器中保存的信息是主存信息的7.主存、快速缓冲存储器、通用寄存器、磁盘、磁带都可用来存储信息,按存取时间由快至慢排列,其顺序是8.、和组成三级存储系统,分级的目的是9.动态半导体存储器的刷新一般有和两种方式,之所以刷新是因为10.用1K某1位的存储芯片组成容量为64K某8位的存储器,共需片,若将这些芯片分装在几块板上,设每块板的容量为4K某8位,则该存储器所需的地址码总位数是,其中位用于选板,位用于选片,位用于存储芯片的片内地址。

11.最基本的数字磁记录方式、、、、、和六种。

12.缓存是设在和之间的一种存储器,其速度匹配,其容量与有关。

13.Cache是一种存储器,用来解决CPU与主存之间不匹配的问题。

现代的Cache可分为和两级,并将和分开设置。

14.计算机系统中常用到的存储器有:(1)SRAM,(2)DRAM,(3)Flah,(4)EPROM,(5)硬盘存储器,(6)软盘存储器。

其中非易失的存储器有:具有在线能力的有;可以单字节修改的有:可以快速读出的存储器包括15.反映存储器性能的三个指标是、、和,为了解决这三方面的矛盾,计算机采用体系结构。

16.存储器的带宽是指,如果存储周期为TM,存储字长为n位则存储器带宽位,常用的单位是或为了加大存储器的带宽可采用、和17.一个四路组相联的Cache共有64块,主存共有8192块,每块32个字。

则主存地址中的主存字块标记为位,组地址为位,字块内地址为位。

18.在虚拟存储器系统中,CPU根据指令生成的地址是,经过转化后的地址是二.选择题1.在磁盘和磁带这两种磁介质存储器中,存取时间与存储单元的物理位置有关,按存储方式分A.二者都是顺序存取B.二者都是直接存取C.磁盘是直接存取,磁带是顺序存取D.磁带是直接存取,磁盘是顺序存取2.存储器进行一次完整的读写操作所需的全部时间称为A.存取时间B.存取周期C.CPU周期D.机器周期3.若存储周期250n,每次读出16位,则该存储器的数据传送率为A.4某106B/B.4MB/C.8某106B/D.8MB/4.用户程序所放的主存空间属于A.随机存取存储器B.只读存储器C.顺序存取存储器D.直接存取存储器5.以下哪种类型的存储器速度最快A.DRAMB.ROMC.EPROMD.SRAM6.下述说法中正确的是A.半导体RAM信息可读可写,且断电后仍能保持记忆B.动态RAM 是易失性RAM,而静态RAM中的存储信息是不易失C.半导体RAM是易失性RAM,但只要电源不断电所存信息是不丢失的D.半导体RAM是非易失性的RAM7.若数据在存储器中采用以低字节地址为字地址的存放方式,则十六进制数12345678H的存储字节顺序按地址由小到大依次为A.12345678B.78563412C.87654321D.341278568.在对破坏性读出的存储器进行读写操作时,为持续原存信息不变,必须辅以的操作是A.刷新B.再生C.写保护D.主存校验9.SRAM芯片,其容量为1024某8,除电源和接地端外,该芯片最少引出线数为A.16B.17C.20D.2110.存储器容量为32K某16,则A.地址线为16根,数据线为32根B.地址线为32根,数据线为16根C.地址线为15根,数据线为16根D.地址线为16根,数据线为15根11.某计算机字长为32位,存储器容量为4MB,按字编址,其寻址范围是0到A.220-1B.221-1C.223-1D.224-112.设机器字长为32位,一个容量为16MB的存储器,CPU按半字寻址,其可寻址的单元数是A.224B.223C.222D.22113.下列说法正确的是A.EPROM是可改写的,因而也是随机存储器的一种B.EPROM是可改写的,但它不能用作为随机存储器用C.EPROM只能改写一次,故不能作为随机存储器用D.EPROM是只能改写一次的只读存储器14.存储器采用部分译码法片选时A.不需要地址译码器B.不能充分利用存储器空间C.会产生地址重叠D.CPU的地址线全参与译码15.双端口存储器发生读写冲突的情况是A.左端口与右端口地址码不同B.左端口与右端口地址码相同C.左端口与右端口数据码相同D.左端口与右端口数据码不同16.如果一个存储单元被访问,则可能这个存储单元会很快的再次被访问,这称为A.时间局部性B.空间局部性C.程序局部性D.数据局部性17.在主存和CPU之间增加高速缓冲存储器的目的是A.解决CPU和主存之间的速度匹配问题B.扩大主存容量C.扩大CPU通用寄存器的数目D.既扩大主存容量又扩大CPU中通用寄存器的数量18.在程序的执行过程中,cache与主存的地址映射是由A.操作系统来管理的B.程序员调度的C.由硬件自动完成的D.由软硬件共同完成的19.容量为64块的cache采用组相连映射方式,字块大小为128个字,每4块为一组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主存与Cache的地址映射
CPU对存储器的访问,通常是一次读写一个字单元。

当CPU访Cache不命中时,需将存储在主存中的字单元连同其后若干个字一同调入Cache中,之所以这样做,是为了使其后的访存能在Cache中命中。

因此,主存和Cache之间一次交换的数据单位应该是一个数据块。

数据块的大小是固定的,由若干个字组成,且主存和Cache的数据块大小是相同的。

从Cache-主存层次实现的目标看,一方面既要使CPU的访存速度接近于访Cache的速度,另一方面为用户程序提供的运行空间应保持为主存容量大小的存储空间。

在采用Cache-主存层次的系统中,Cache对用户程序而言是透明的,也就是说,用户程序可以不需要知道Cache的存在。

因此,CPU每次访存时,依然和未使用Cache的情况一样,给出的是一个主存地址。

但在Cache-主存层次中,CPU首先访问的是Cache,并不是主存。

为此,需要一种机制将CPU的访主存地址转换成访Cache地址。

而主存地址与Cache地址之间的转换是与主存块与Cache块之间的映射关系紧密联系的,也就是说,当CPU访Cache未命中时,需要将欲访问的字所在主存中的块调入Cache中,按什么样的策略调入,直接影响到主存地址与Cache地址的对应关系,这也就是本小节要解决的主存与Cache的地址映射问题。

主要有三种地址映射方式,分别为全相联映射、直接相联映射和组相联映射。

1. 全相联映射
全相联映射是指主存中任一块都可以映射到Cache中任一块的方式,也就是说,当主存中的一块需调入Cache时,可根据当时Cache的块占用或分配情况,选择一个块给主存块存储,所选的Cache块可以是Cache中的任意一块。

例如,设Cache共有2C块,主存共有2M块,当主存的某一块j需调进Cache中时,它可以存入Cache的块0、块1、…、块i、… 或块2C -1的任意一块上。

如图4-28所示。

图4-28 全相联映射方式
在全相联映射方式下,CPU的访主存地址为如下形式:
其中,M为主存的块号,W为块内的字号。

而CPU访Cache的地址形式为:
其中,C为Cache的块号,W为块内的字号。

主存地址到Cache地址的转换是通过查找一个由相联存储器实现的块表来完成的,其形成过程如图4-29示。

图4-29 全相联映射的地址转换
当一个主存块调入Cache中时,会同时在一个存储主存块号和Cache 块号映射表的相联存储器中进行登记。

CPU访存时,首先,根据主存地址中的主存块号M在相联存储器中查找Cache块号,若找到,则本次访Cache命中,于是将对应的Cache块号取出,并送访Cache地址的块号C 字段;紧接着将主存地址的块内字号W直接送Cache地址的块内字号W 字段,从而形成一个访Cache的地址;最后根据该地址完成对Cache单元的访问.
全相联映射方式的优点是Cache的空间利用率高,但缺点是相联存储器庞大,比较电路复杂,因此只适合于小容量的Cache之用。

2. 直接相联映射
直接相联映射方式是指主存的某块j只能映射到满足如下特定关系的Cache块i中:
i=j mod 2C(4.2)
图4-30 直接相联映射方式
上图中,主存的第0、2C、2C+1、… 块只能映射到Cache的第0块,主存的第1、2C+1、2C+1+1、… 块只能映射到Cache的第1块,… … ,主存的第2C-1、2C+1-1、…2M-1块只能映射到Cache的第2C-1块。

在直接相联映射方式下,CPU的访主存地址为如下形式:
其中,T为标志号,C为Cache的块号,W为块内的字号。

在这里,原主存的块号M实际上被分成了两个字段:T和C,其中C用于指出主存的块可以映射的Cache的块。

一般来讲,主存的块数是Cache的块数的整数倍,也就是说主存的块数2M和Cache的块数2C满足关系式:2M=n·2C
在直接相联映射方式下,标志号T是随Cache的每个块一起存储的,其地址转换过程如图4-31所示。

图4-31 直接相联映射的地址转换
当一个主存块调入Cache中时,会同时将主存地址的T标志存入Cache块的标志字段中。

当CPU送来一个访存地址时,首先,根据该主存地址的C字段找到Cache的相应块,然后将该块标志字段中存放的标志与主存地址的T标志进行比较,若相符,说明主存的块目前已调入该Cache块中,则命中,于是使用主存地址的W字段访问该Cache块的相应字单元;若不相符,则未命中,于是使用主存地址直接访主存。

直接相联映射方式的优点是比较电路最简单,但缺点是Cache块冲突率较高,从而降低了Cache的利用率。

由于主存的每一块只能映射到Cache的一个特定块上,当主存的某块需调入Cache时,如果对应的Cache特定块已被占用,而Cache中的其它块即使空闲,主存的块也只能通过替换的方式调入特定块的位置,不能放置到其它块的位置上。

3. 组相联映射
以上两种方式各有优缺点,而且非常有趣的是,它们的优缺点正好相反,也就是说,对于全相联映射方式来说为优点的恰是直接相联映射方式的缺点,而对于全相联映射方式来说为缺点的恰是直接相联映射方式的优点。

那么,可否找到一种能较好地兼顾这两种方式的优点的映射方式呢?下面我们就来看看组相联映射方式在这种方式下,将Cache分成2u组,每组包含2v块。

主存的块与Cache的组之间采用直接相联映射,而与组内的各块则采用全相联映射。

也就是说,主存的某块只能映射到Cache的特定组中的任意一块。

主存的某块j与Cache的组k之间满足如下关系:
k=j mod 2u(4.3)
设主存共有2s×2u块(即M=s+u),则它们的映射关系如下图4-32示。

图4-32 组相联映射方式
图中,主存的块0、2u、2u+1、…、(2s-1)2u可以映射到Cache的第0组的任意一块,主存的块1、2u+1、2u+1+1、…、(2s-1)2u+1可以映射到Cache的第1组的任意一块,… … ,主存的块2u-1、2u+1-1、…、2M-1可以映射到Cache的第2u-1组的任意一块。

在组相联映射方式下,CPU的访主存地址和访Cache地址分别为如下形式:
其中,u为Cache的组号,v为组内的块号。

Cache的块号C=u+v,而主存的块号M=s+u。

也就是说,主存块地址的后u位指出了主存的这一块所能映射的Cache的组。

与全相联映射方式类似的是,在组相联映射方式下,主存地址到Cache地址的转换也是通过查找一个由相联存储器实现的块表来完成的,其形成过程如图4-33所示。

图4-33 组相联映射的地址转换
当一个主存块调入Cache中时,会同时将其主存块地址的前s位写入一个由相联存储器实现的快表的对应Cache块项的s字段中。

例如,设主存的某块调入Cache的第1组的第2块中,则在快表的组1第3项的s字段会登记下该主存块地址的前s位。

CPU访存时,首先,根据主存地址中的主存块号中的u字段找到快表的相应组,然后将该组的所有项的前s位同时与主存地址的s字段作比较,若相符,则说明主存块在Cache中,于是将Cache中该项的v字段取
出,作为Cache地址的v字段,而Cache地址的u、W字段直接由主存地址的u、W字段形成,最后形成一个完整的访Cache地址。

当然,若比较结果是没有相符项,则未命中,由主存地址直接访主存。

其实,全相联映射和直接相联映射可以看成是组相联映射的两个极端情况。

若u=0,v=C,则Cache只包含1组,此即全相联映射方式;若u=C,v=0,则组内的块数等于1,此即直接相联映射。

在实际应用中,相联映射方式每组的块数一般取值较小,典型值为2、4、8、16等,分别称为两路组相联、四路组相联等。

这样一方面使得比较器的规模较小,实现较容易,例如两路组相联采用两路比较,四路组相联采用四路比较等;另一方面,Cache每组增加的可映射块数可有效减少冲突,提高Cache访问的命中率。

相关文档
最新文档