① 高速缓存与主内存的关系是什么
高速缓存是为了解决主内存存取速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响问题而出现的。
根据程序局部性原理,正在使用的主内存某一单元邻近的那些单元将被用到的可能性很大。
因而,当中央处理器存取主内存某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓存,中央处理器即将存取的主内存单元很可能就在刚刚调入到高速缓存存储器的那一组单元内。
于是,中央处理器就可以直接对高速缓存存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主内存的操作能为存取高速缓存存储器所代替,计算机系统处理速度就能显着提高。
(1)主存储和高速缓存的地址映射方法扩展阅读:
高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。
有很多方法可用来缓和中央处理器和主存储器之间速度不匹配的矛盾,如采用多个通用寄存器、多存储体交叉存取等,在存储层次上采用高速缓冲存储器也是常用的方法之一。
很多大、中型计算机以及新近的一些小型机、微型机也都采用高速缓冲存储器。
参考资料来源:网络-高速缓冲存储器
② Cache与主存之间的全相联映射,直接映射和组相联映射的区别
高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的访问速度。为此需要解决2个技术问题:一是主存地址与缓存地址的映象及转换;二是按一定原则对Cache的内容进行替换。
Cache的结构和工作原理如图2.3.1所示。
主要由三大部分组成:
Cache存储体:存放由主存调入的指令与数据块。
地址转换部件:建立目录表以实现主存地址到缓存地址的转换。
替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。
2.3.2地址映象与转换
地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。下面介绍三种地址映象的方式。
1.全相联方式
地址映象规则:主存的任意一块可以映象到Cache中的任意一块
(1)主存与缓存分成相同大小的数据块。
(2)主存的某一数据块可以装入缓存的任意一块空间中。
全相联方式的对应关系如图2.3.2所示。如果Cache的块数为Cb,主存的块数为Mb,则映象关系共有Cb×Mb种。
③ 缓存的缓存映射
根据E的数值,高速缓存可以被分为不用的类,包括直接映射缓存,组相联缓存和全相联缓存。 在组相联缓存里,E大于1,就是说一个组里面有多个cacheline。E等于多少,就叫有多少路,所以叫E路组相联。
组相联的行匹配就要复杂一些了,因为要检查多个行的标记位和有效位。如果最终找到了,还好。当然,找不到会从下一级存储器中取出包含所需求数据的行来替换,但一个组里面这么多行,替换哪个行。如果有一个空行,自然就是替换空行,如果没有空行,那就引发了一些其他的替换策略了。除了刚才介绍过的随机策略,还有最不常使用策略,最近最少使用策略。这些策略本身是需要一定开销的,但要知道,不命中的开销是很大的,所以为了保证命中率,采取一些相对复杂的策略是值得的。 所谓全相联,就是由一个包含所有缓存行的组组成的缓存。由于只有一个组,所以组选择特别简单,此时地址就没有组索引了,只有标记和偏移,也就是t部分和b部分。其他的步骤,行匹配和数据选择,和组相联原理是一样的,只是规模大得多了。如果说上面关于这三种映射方法的描述非常抽象,为了能理解得更加透彻,把存储器比作一家大超市,超市里面的东西就是一个个字节或者数据。为了让好吃好玩受欢迎的东西能够容易被看到,超市可以将这些东西集中在一块放在一个专门的推荐柜台中,这个柜台就是缓存。如果仅仅是把这些货物放在柜台中即完事,那么这种就是完全关联的方式。
可是如果想寻找自己想要的东西,还得在这些推荐货物中寻找,而且由于位置不定,甚至可能把整个推荐柜台寻找个遍,这样的效率无疑还是不高的。于是超市老总决定采用另一种方式,即将所有推荐货物分为许多类别,如“果酱饼干”,“巧克力饼干”,“核桃牛奶”等,柜台的每一层存放一种货物。这就是直接关联的访问原理。这样的好处是容易让顾客有的放矢,寻找更快捷,更有效。
但这种方法还是有其缺点,那就是如果需要果酱饼干的顾客很多,需要巧克力饼干的顾客相对较少,显然对果酱饼干的需求量会远多于对巧克力饼干的需求量,可是放置两种饼干的空间是一样大的,于是可能出现这种情况:存放的果酱饼干的空间远不能满足市场需求的数量,而巧克力饼干的存放空间却被闲置。为了克服这个弊病,老板决定改进存货方法:还是将货物分类存放,不过分类方法有所变化,按“饼干”,“牛奶”,“果汁”等类别存货,也就是说,无论是什么饼干都能存入“ 饼干”所用空间中,这种方法显然提高了空间利用的充分性,让存储以及查找方法更有弹性。
④ 电脑的事,急~!
http://..com/question/40018468.html?si=7&wtp=wk
cache
开放分类: 缓存、计算机组成原理
cache n. 高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。另见 wait state。【英】A special memory subsystem in which frequently useddata values are plicated for quick access. A memory cache stores the contents of frequently accessed RAMlocations and the addresses where these data items are stored. When the processor references an address inmemory, the cache checks to see whether it holds that address. If it does hold the address, the data is returned tothe processor; if it does not, a regular memory access occurs. A cache is useful when RAM accesses are slowcompared with the microprocessor speed, because cache memory is always faster than main RAM memory.
Cache的出现是基于两种因素:首先,是由于CPU的速度和性能提高很快而主存速度较低且价格高,第二就是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。很显然,要尽可能发挥CPU的高速度就必须用硬件实现其全部功能。
Cache与主存之间可采取多种地址映射方式,直接映射方式是其中的一种。在这种映射方式下,主存中的每一页只能复制到某一固定的Cache页中。由于Cache块(页)的大小为16B,而Cache容量为16KB。因此,此Cache可分为1024页。可以看到,Cache的页内地址只需4位即可表示;而Cache的页号需用10位二进制数来表示;在映射时,是将主存地址直接复制,现主存地址为1234E8F8(十六进制),则最低4位为Cache的页内地址,即1000,中间10位为Cache的页号,即1010001111。Cache的容量为16KB决定用这14位编码即可表示。题中所需求的Cache的地址为10100011111000。
Cache中的内容随命中率的降低需要经常替换新的内容。替换算法有多种,例如,先入后出(FILO)算法、随机替换(RAND)算法、先入先出(FIFO)算法、近期最少使用(LRU)算法等。这些替换算法各有优缺点,就以命中率而言,近期最少使用(LRU)算法的命中率最高。
浏览器缓存
缓存用于存储一些临时的文件。在浏览网页的过程中,网页会自动存储在用户的硬盘上。下次再浏览相同的网站的时候,系统会自动从硬盘中调出该网页,既节省了时间也减少了网络的交换。用户可以自行设定缓存方便其上网的需要。电脑中还存在高速缓冲存储器和硬盘缓存。缓存的种类:本地服务器缓存、网页缓存、硬盘缓存、一级高速缓存、二级高速缓存。
简单理解
cache是一个高速小容量的临时存储器,可以用高速的静态存储器芯片实现,或者集成到CPU芯片内部,存储CPU最经常访问的指令或者操作数据。
回
⑤ 高速缓冲存储器的工作原理
高速缓冲存储器的工作原理:
当中央处理器存取主存储器时,硬件首先自动对存取地址的列号字段进行译
码,以便将联想存储器该列的全部行号与存取主存储器地址的行号字段进行比较:若有相同的,表明要存取的主存储器单元已在高速存储器中,称为命中,硬件就将
存取主存储器的地址映射为高速存储器的地址并执行存取操作;若都不相同,表明该单元不在高速存储器中,称为脱靶,硬件将执行存取主存储器操作并自动将该单
元所在的那一主存储器单元组调入高速存储器相同列中空着的存储单元组中,同时将该组在主存储器中的行号存入联想存储器对应位置的单元内。
当出现脱靶而高速存储器对应列中没有空的位置时,便淘汰该列中的某一组以
腾出位置存放新调入的组,这称为替换。确定替换的规则叫替换算法,常用的替换算法有:最近最少使用算法(LRU)、先进先出法(FIFO)和随机法
(RAND)等。替换逻辑电路就是执行这个功能的。另外,当执行写主存储器操作时,为保持主存储器和高速存储器内容的一致性,对命中和脱靶须分别处理。
高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。
⑥ 关于计算机组成原理的Cache-主存地址映象问题
CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力,cache用于做cpu和内存的缓存。
Cache的工作原理是基于程序访问的局部性(通俗说就是把经常用到的数据放在一个高速的cache里面)。
对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。
数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。
系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。
CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。
命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。
只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。
一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。在这种情况下,命中率都在90%以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它拷进Cache,以备下次访问。
⑦ 高速缓存Cache问题
本题高速缓冲存储器地址映像与变换的内容
高速缓冲存储器(Cache)简称高速缓存,它的功能是提高CPU数据输入输出的速率,突破所谓的“冯·诺依曼瓶颈”。使用高速缓存改善系统性能的依据是程序的局部性原理。如果CPU需要访问的内容大多能在高速缓存中找到(称为访问命中,hit)则可大大提高系统的性能
1、高速缓存Cache的存储系统的平均存储时间可以表示为:t3=h*t1+(1-h)*t2.其中,Cachce的存取时间t1、主存的存取时间t2及平均存取时间为t3已知后,可以求出Cache的命中率h为99%
2、高速缓存与主存之间有多种地址映射方式。常见的有直接映射方式、全相联映射方式和组相联映射方式。
全相联映射方式的基本单元分为两部分:地址部分和数据部分、数据部分用于存放数据,而地址部分用于存放该数据的存储器地址。
当进行映射时,相联存储器把CPU发出的存储器地址与高速缓存内所有的地址信息同时进行比较,已确定是否命中。
全相联映射方式的主存地址构成为:块内地址+区号+块号。高速缓存Cache的地址构成为:块号+块内地址。
将主存地址8888888H从十六进制转换为二进制为:1000100010001000100010001000B
即块内地址为10001000100010001000B,相联存储器中区号为100010B,区块号为00B,所以相联存储器中存储的是10001000B=88H。由相联存储器的地址变换表查出88H块号为01B。最后根据Cache的地址构成,把Cache块号与块内地址连接起来后得到高速缓存Cache的地址为0110001000100010001000B,转换为十六进制后即188888H
⑧ 计算机组成原理中,比较一下缓存管理中各种地址映射的方法
在计算机中,数据只用0和1两种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个“位”为一个“字节”,用来表示常用的256个字母、符号、控制标记。在64位计算机中,“一个字长”所占的字节数为8。字长的字节数 = 计算机位数/8。 单位 是“比特”,也就是“位”(bit,简称b),它表示 1个二进制位 。比“位”大的单位是“字节”(byte,简称B),它等于 8个二进制位 。
⑨ 高分!!!关于汇编地址映像 急
看到上面的这些乱七八糟的回答,我说两句:
1.直接映像法 2.全相映像法 3.组相映像法
这三种映射是在 计算机组成原理 里有详细的解释。
大概说一下,这三种映射涉及的对象是寄存器,CACHE,和内存;
其中cache(高速缓冲存贮器,简称高速缓存)是在两者之间的,寄存器寻址的时候要判断目前找的地址是否在CACHE中,如果不在就从内存读取,并且把读近来的地址保存到CACHE的某一个位置上,如果CACHE已经写满了数据就按照某种算法淘汰掉某一项。如果在CACHE中,那么就直接从CACHE中读取这个地址。
所谓1.直接映像法 2.全相映像法 3.组相映像法 是指把内存的地址写到CACHE的一种方法。
1.直接映像法 是指内存中的某段地址只能映射到CACHE的某一项上,而不能映射到别的地方,不管别的地方是否有数据。这种方法的优点是读写和存贮都很方便,但是缺点是CACHE的利用律低。
2.全相映像法 是指内存的地址可以映射到CACHE的任何一项上。这种虽然可以提高CACHE的利用律,但是读写的时候不方便;
3.组相映像法 这种方法是把上面的两种方法组合起来,就是把CACHE分成几组。特定的内存地址只能映射的特定的某一组,但是可以映射到这一组的任何一项上。
这是我理解和记忆的内容,不知楼主能不能理解,如果想了解更多的,可是参考《组成原理》这本书。有错误还请指正,谢谢!