文档库 最新最全的文档下载
当前位置:文档库 › Cache的工作原理

Cache的工作原理

Cache的工作原理
Cache的工作原理

Arm cache

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通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache的3种基本结构如下:

DCACHE

ARM cache架构由cache存储器和写缓冲器(write-buffer)组成,其中写缓冲器是CACHE 按照FIFO原则向主存写的缓冲处理器。

一般来说CACHEABILITY和BUFFERABILITY都是可以配置的,所以,一块存储区域可以配置成下面4种方式:NCNB CNB NCB CB。在实际应用当中,可以根据需要对主存进行配置。对I/O MAP来说,一般都需要采用NCNB方式,以保证对I/O的正确操作。而其他的存储区域一般都可以配置成CB方式,以获取最好的性能。

引入CACHE和WRITE BUFFER是为了提高存储访问的速度,提供系统性能。如果CACHE 打开的话,CPU读写主存的时候,都是通

过CACHE进行的。进行读操作的时候,如果在CACHE里面找到了所需的内容(CACHE HIT),直接从CACHE里读取;如果要读的内容不在CACHE上的时候(CACHE MISS),先把所需的内容装载到CACHE里,在从CACHE上读取。进行写操作的时候,数据先写到CACHE上。具体又可以分为WRITE THROUGH和WRITE BACK两种方式。如果是WRITE THROUGH方式的话,每次写操作都通

过CACHE+WRITE BUFFER把数据直接写到主存当中去;如果是WRITE BACK 方式的话,数据最初只是写到CACHE上,必要的时候(CACHE REPLACEMENT) 在将CACHE上的数据通过WRITE BUFFER实际回写到主存当中去。

DCaches使用的是虚拟地址,它的大小是16KB,它被分成512行(entry),每行8个字(8 words,32Bits)。每行有两个修改标志位(dirty bits),第一个标志位标识前4个字,第二个标志位标识后4个字,同时每行中还有一个TAG 地址(标签地址)和一个valid bit。

与ICaches一样,系统上电或重起(Reset)的时候,DCaches功能是被关闭的,我们必须往Ccr bit置1去开启它,Ccr bit在CP15协处理器中控制寄存器1的第2位(关闭DCaches 功能则是往该位置0)。与ICaches不同,DCaches功能是必须在MMU开启之后才能被使用的。

我们现在讨论的都是DCaches,你可能会问那Write Buffer呢?他和DCaches区别是什么呢?其实DCaches和Write Buffer两者间的操作有着非常紧密的联系,很抱歉,到目前为止我无法说出他们之间有什么根本上的区别(-_-!!!),但我能告诉你什么时候使用的是DCaches,什么时候使用的是Write Buffer.系统可以通过Ccr bit对Dcaches的功能进行开启与关闭的设定,但是在s3c2410中却没有确定的某个bit可以来开启或关闭Write Buffer…你可能有点懵…我们还是来看一张表吧,这张表说明了DCaches,Write Buffer和CCr,Ctt (descriptor中的C bit),Btt(descriptor中的B bit)之间的关系,其中“Ctt and Ccr”一项里面的值是Ctt与Ccr进行逻辑与之后的值(Ctt&&Ccr).

从上面的表格中我们可以清楚的知道系统什么时候使用的是DCaches,什么时候使用的是Write Buffer,我们也可以看到DCaches的写回方式是怎么决定的(write-back or write-througth)。

在这里我要对Ctt and Ccr=0进行说明,能够使Ctt and Ccr=0的共有三种情况,分别是

Ctt =0,Ccr=0

Ctt =1,Ccr=0

Ctt =0,Ccr=1

我们分别对其进行说明。

情况1(Ctt =0,Ccr=0):这种情况下CPU的DCaches功能是关闭的(Ccr=0),所以CPU 存取数据的时候不会从DCaches里进行数据地查询,CPU直接去内存存取数据。

情况2(Ctt =1,Ccr=0):与情况1相同。

情况3(Ctt =0,Ccr=1):这种情况下DCaches功能是开启的,CPU读取数据的时候会先从DCaches里进行数据地查询,若DCaches中没有合适的数据,则CPU会去内存进行读取,但此时由于Ctt =0(Ctt 是descriptor中的C bit,该bit决定该descriptor所描述的内存区域是否可以被Cache),所以CPU不会把读取到的数据Cache到DCaches(不发生linefill).

到此为止我们用两句话总结一下DCaches与Write Buffer的开启和使用:

1.DCaches与Write Buffer的开启由Ccr决定。

2.DCaches与Write Buffer的使用规则由Ctt和Btt决定。

ICACHE

当系统上电或重起(Reset)的时候,ICaches功能是被关闭的,我们必须往lcr bit置1去开启它,lcr bit在CP15协处理器中控制寄存器1的第12位(关闭ICaches功能则是往该位置0)。ICaches功能一般是在MMU开启之后被使用的(为了降低MMU查表带来的开销),但有一点需要注意,并不是说MMU被开启了ICaches才会被开启,正如本段刚开始讲的,ICaches的开启与关闭是由lcr bit所决定的,无论MMU是否被开启,只要lcr bit被置1了,ICaches就会发挥它的作用。

大家是否还记得discriptor(描述符)中有一个C bit我们称之为Ctt,它是指明该描述符描述的内存区域内的内容(可以是指令也可以是数据)是否可以被Cache,若Ctt=1,则允许Cache,否则不允许被Cache。于是CPU读取指令出现了下面这些情况:

如果CPU从Caches中读取到所要的一条指令(cache hit)且这条指令所在的内存区域是Cacheble的(该区域所属描述符中Ctt=1),则CPU执行这条指令并从Caches中返回(不需要从内存中读取)。

若CPU从Caches中读取不到所要的指令(cache miss)而这条指令所在的内存区域是Cacheble 的(同第1点),则CPU将从内存中读取这条指令,同时,一个称为“8-word linefill”的动作将发生,这个动作是把该指令所处区域的8个word写进ICaches的某个entry中,这个entry 必须是没有被锁定的(对锁定这个操作感兴趣的朋友可以找相关的资料进行了解)

若CPU从Caches中读取不到所要的指令(cache miss)而这条指令所在的内存区域是UnCacheble的(该区域所属描述符中Ctt=0),则CPU将从内存读取这条指令并执行后返回(不发生linefill)

通过以上的说明,我们可以了解到CPU是怎么通过ICaches执行指令的。你可能会有这个疑问,ICaches总共只有512个条目(entry),当512个条目都被填充完之后,CPU要把新读取近来的指令放到哪个条目上呢?答案是CPU会把新读取近来的8个word从512个条目中选择一个对其进行写入,那CPU是怎么选出一个条目来的呢?这就关系到ICaches 的替换法则(replacemnet algorithm)了。ICaches的replacemnet algorithm有两种,一种是Random模式另一种Round-Robin模式,我们可以通过CP15协处理器中寄存器1的RR bit 对其进行指定(0 = Random replacement 1 = Round robin replacement),如果有需要你还可以进行指令锁定(INSTRUCTION CACHE LOCKDOWN)。

虚拟cache

Cache 位于MMU前面靠近CPU称为逻辑CACHE又叫虚拟Cache。CPU可以直接访问CACHE的数据,而ARM 11(ARMV6)的结构是CACHE 在MMU后面CPU访问CACHE 要通过MMU地址转换

在DM6446的core用的是哈佛结构,即把CACHE分为8K的D-CACHE(数据CACHE)和16K的I-cache(指令CACHE)

一个完整的CACHE分为CACHE控制器和CACHE存储器

例子

Davinci DM6446 D-cache行应为512行,cache存储器主要分为三个部分:目录存储段(driectory-story),状态信息段(status information)和数据项段(data section)每一行cache 都包括这三部分。Cache用目录存储段来存储主存的地址,数据项段存放的是主存的数据,在cache中用状态信息段来记录状态信息,其中v表示有效位,d表示脏位,有效位记录当前cache行是活动的,cache行的数据和主存中的数据是一致的,处理器可以读取。脏位则表示cache行的数据和主存中的数据不一致。

在读写请求到达存储器前会被CACHE捕获,cache存储器将该请求分成三部分标签,组索引和数据索引域,cache通过组索引域确定可能包含地址和数据cache的行,cache存储器检查匹配的CACHE 行的状态标签,如果是V表示(cache hit)命中,否则cache失效(cache miss)在cache失效时从主存吧cache行考到CACHE存储器

主存中的部分内容存放在cache中的最简单方式是直接映射,在一个直接映射中,主存的地址唯一对应cache行,因为主存容量很大所以主存的很多地址映射到同一个cache行

见下图:

在DM6446 中内存为128M (bootargs 设为128M)8K的D-CACHE则128×1024/8 = 16384映射一个cache行。由于cache的速度大大大于低速的主存速度,因此需要写缓冲器。

Cache与DRAM存取的一致性

在CPU与主存之间增加了Cache之后,便存在数据在CPU和Cache及主存之间如何存取的问题。读写各有2种方式。

贯穿读出式(Look Through)

该方式将Cache隔在CPU与主存之间,CPU对主存的所有数据请求都首先送到Cache,由Cache自行在自身查找。如果命中,则切断CPU对主存的请求,并将数据送出;不命中,则将数据请求传给主存。

该方法的优点是降低了CPU对主存的请求次数,缺点是延迟了CPU对主存的访问时间。

旁路读出式(Look Aside)

在这种方式中,CPU发出数据请求时,并不是单通道地穿过Cache,而是向Cache和主存同时发出请求。由于Cache速度更快,如果命中,则Cache在将数据回送给CPU的同时,还来得及中断CPU对主存的请求;不命中,则Cache不做任何动作,由CPU直接访问主存。

它的优点是没有时间延迟,缺点是每次CPU对主存的访问都存在,这样,就占用了一部分总线时间。

写穿式(Write Through)

任一从CPU发出的写信号送到Cache的同时,也写入主存,以保证主存的数据能同步地更新。

它的优点是操作简单,但由于主存的慢速,降低了系统的写速度并占用了总线的时间。回写式(Copy Back)

为了克服贯穿式中每次数据写入时都要访问主存,从而导致系统写速度降低并占用总线时间的弊病,尽量减少对主存的访问次数,又有了回写式。

它是这样工作的:数据一般只写到Cache,这样有可能出现Cache中的数据得到更新而主存中的数据不变(数据陈旧)的情况。但此时可在Cache 中设一标志地址及数据陈旧的信息,只有当Cache中的数据被再次更改时,才将原更新的数据写入主存相应的单元中,然后再接受再次更新的数据。这样保证了Cache和主存中的数据不致产生冲突。

ARM cache 策略

Cache的写策略分为直写策略和回写策略。同时向cache行和相应的主存位置写数据,同时更新这两个地方的数据的方法称为直写策略(writethrough),把数据写入cache行,不写入主存的或者只有当cache被替换时或清理cache行时才写入主存的策略称为回写策略(writeback)。采用回写策略时,当处理器cache命中,只向cache存储器写数据,不写入主存,主存里的数据就和cache里不一致,cache里的数据是最新的,主存里的数据是早前的。这就用cache存储器信息状态标志位了,当向cache存储器里某行写数据时,置相应行的信息标志脏位为1,那么主控制器下次访问cache存储器就知道cache里有主存没有的数据了,把数据写回到主存中去。

当一个cache访问失效时,cache控制器必须从当前有效行中取出一个cache行存储从主存中取到的信息,被选中替换的cache行称为丢弃者,如果这个cache行中脏位为1则应把该cache行中的数据回写到主存中,而替换策略决定了那个cache行会被替换,在arm926ejs中ARM支持两种策略:轮转策略和伪随机策略。轮转策略就是取当前cache行的下一行,伪随机策略是控制器随机产生一个值。

当cache失效时,ARM采取两种方式分配cache行,一种是读操作(read-allocate)还有一种是读-写分配策略(read-write-allocate),当cache未命中时对于读操作策略,在对cache存储器读操作时才会分配cache行

全相联Cache

在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。程序可以访问很多的子程序、堆栈和段,而它们是位于主存储器的不同部位上。

因此,Cache保存着很多互不相关的数据块,Cache必须对每个块和块自身的地址加以存储。当请求数据时,Cache控制器要把请求地址同所有地址加以比较,进行确认。

这种Cache结构的主要优点是,它能够在给定的时间内去存储主存器中的不同的块,命中率高;缺点是每一次请求数据同Cache中的地址进行比较需要相当的时间,速度较慢。直接映像Cache

直接映像Cache不同于全相联Cache,地址仅需比较一次。

在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为Cache中的每个块位置分配一个索引字段,用Tag 字段区分存放在Cache位置上的不同的块。

单路直接映像把主存储器分成若干页,主存储器的每一页与Cache存储器的大小相同,匹配的主存储器的偏移量可以直接映像为Cache偏移量。Cache的Tag存储器(偏移量)保存着主存储器的页地址(页号)。

以上可以看出,直接映像Cache优于全相联Cache,能进行快速查找,其缺点是当主存储器的组之间做频繁调用时,Cache控制器必须做多次转换。

组相联Cache

组相联Cache是介于全相联Cache和直接映像Cache之间的一种结构。这种类型的Cache 使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。

分析影响cache命中率的因素

分析影响cache命中率的因素 摘要: 存储器是计算机的核心部件之一。由于CPU和主存在速度上的存在着巨大差异,现代计算机都在CPU和主存之间设置一个高速、小容量的缓冲存储器cache。而它完全是是由硬件实现,所以它不但对应用程序员透明,而且对系统程序员也是透明的。Cache对于提高整个计算机系统的性能有着重要的意义,几乎是一个不可缺少的部件。 关键字:cache容量;失效率;块大小;相联度;替换策略。 一、概述 存储器是计算机的核心部件之一。其性能直接关系到整个计算机系统性能的高低。如何以合理的价格,设计容量和速度都满足计算机系统要求的存储器系统,始终是计算机系统结构设计的中关键的问题之一。 计算机软件设计者和计算机用户对于存储器容量的需求是没有止境的,他们希望容量越大越好,而且要求速度快、价格低。仅用单一的存储器是很难达到这一需求目标的。较好的方法是采用存储层次,用多种存储器构成存储器的层次结构。 其中“cache-主存”和“主存-辅存”层次是常见的两种层次结构,几乎所有现代的计算机都同时具有这两种层次。我们都知道,程序在执行前,需先调入主存。在这里主要讨论的是“cache-主存”层次。 “cache-主存”是在为了弥补主存速度的不足,这个层次的工作一般来说,完全是由硬件实现,所以它不但对应用程序员透明,而且对系统程序员也是透明的。 如前所述,为了弥补CPU和主存在速度上的巨大差异,现代计算机都在CPU和主存之间设置一个高速、小容量的缓冲存储器cache。Cache对于提高整个计算机系统的性能有着重要的意义,几乎是一个不可缺少的部件。 Cache是按块进行管理的。Cache和主存均被分割成大小相同的块。信息以块为单位调入cache。相应的,CPU的访存地址被分割成两部分:块地址和块内位移。

计算机原理试题与答案

全国2004年4月高等教育自学考试 计算机原理试题 课程代码:02384 第一部分选择题(共25分) 一、单项选择题(本大题共25小题,每小题1分,共25分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.计算机中一次处理的最大二进制位数即为() A.位B.字节 C.字长D.代码 2.下列算式中属于逻辑运算的是() A.1+1=2 B.1-1=0 C.1+1=10 D.1+1=1 3.下图所示的门电路,它的逻辑表达式是() A.F=CD AB B.F=ABCD C.F=AB+CD D.F=ABCD 4.八进制数中的1位对应于二进制数的() A.2位B.3位 C.4位D.5位 5.下列叙述正确的是() A.原码是表示无符号数的编码方法 B.对一个数据的原码的各位取反而且在末位再加1就可以得到这个数据的补码

C.定点数表示的是整数 D.二进制数据表示在计算机中容易实现 6.浮点数0.00100011B×2-1的规格化表示是() A.0.1000110B×2-11B B.0.0100011B×2-10B C.0.0100011B×20B D.0.1000110B×21B 7.两个定点数作补码加法运算,对相加后最高位出现进位1的处理是() A.判为溢出B.AC中不保留 C.寄存在AC中D.循环加到末位 8.运算器中通用寄存器的长度一般取() A.8位B.16位 C.32位D.等于计算机字长 9.目前在大多数微型机上广泛使用宽度为32/64位的高速总线是() A.ISA B.EISA C.PCI D.VESA 10.某计算机指令的操作码有8个二进位,这种计算机的指令系统中的指令条数至多为 ()A.8 B.64 C.128 D.256 11.间接访内指令LDA @Ad的指令周期包含CPU周期至少有() A.一个B.二个 C.三个D.四个 12.在程序中,可用转移指令实现跳过后续的3条指令继续执行。这种指令的寻址方式是() A.变址寻址方式B.相对寻址方式

CACHE的一些名词术语

CACHE的一些名词术语 Allocation 在CACHE中发现一个位置,并把新的cache数据存到这个位置的过程。这个处理过程可能包括evicting(驱逐)cache中已存在的数据,从而为新的数据腾出空间。 Associativity 指每个Set(集)里包含的line frames(行帧)数。也就是cache的way(路)数。 Capacity miss容量失效 因为cache的容量限制,导致不能包括一个程序的整个working set(工作集),从而造成cache失效。这是三个cache失效原因(容量、强制、冲突)之一。Clean干净 一个有效的cache行,它的内容没有被更高层内存或CPU修改写过,我们称这个cache行是“干净”的,显然相反状态是dirty(“脏”) Coherence一致性 如果读内存任意地址的数据返回的总是这个地址的数据最近的更新,我们说内存系统是一致的。存取指CPU和EDMA等的存取。 Compulsory miss强制失效 有时称为首次引用失效。强制失效是一种肯定发生的一种失效,因为数据事先从没有使用过也就没有机会被cache。但有些情况也被称为强制失效,尽管它们不是第一被引用的数据,比如对非写定位的cache进行同一位置的重复写,以及对一个不被cache内存区域的存取。这是三个cache失效原因(容量、强制、冲突)之一。 Conflict miss 冲突失效 由于Associativity的限制导致的而非容量限制造成的cache失效。 Direct-mapped cache直接映射cache 直接映射cache映射低层内存的每个地址到cache的一个单一位置。这样低层内存的多个地址可能被映射到cache中的同一位置上。它相当于1-way set-associative cache。 Dirty脏 对writeback回写cache,写到达多级存储结构的某一层,并更新这一层内容,但并不更新更低层的内存,这样,当一个cache行有效并包含更新后的数据,但却不更新下一更低层的内存,我们说这个cache是“脏”的,显然一个有效行的相反状态是“干净”。 DMA直接内存存取

计算机组成原理试题及答案

二、填空题 1 字符信息是符号数据,属于处理(非数值)领域的问题,国际上采用的字符系统是七单位的(ASCII)码。P23 2 按IEEE754标准,一个32位浮点数由符号位S(1位)、阶码E(8位)、尾数M(23位)三个域组成。其中阶码E的值等于指数的真值(e)加上一个固定的偏移值(127)。P17 3 双端口存储器和多模块交叉存储器属于并行存储器结构,其中前者采用(空间)并行技术,后者采用(时间)并行技术。P86 4 衡量总线性能的重要指标是(总线带宽),它定义为总线本身所能达到的最高传输速率,单位是(MB/s)。P185 5 在计算机术语中,将ALU控制器和()存储器合在一起称为()。 6 数的真值变成机器码可采用原码表示法,反码表示法,(补码)表示法,(移码)表示法。P19-P21 7 广泛使用的(SRAM)和(DRAM)都是半导体随机读写存储器。前者的速度比后者快,但集成度不如后者高。P67 8 反映主存速度指标的三个术语是存取时间、(存储周期)和(存储器带宽)。P67 9 形成指令地址的方法称为指令寻址,通常是(顺序)寻址,遇到转移指令时(跳跃)寻址。P112 10 CPU从(主存中)取出一条指令并执行这条指令的时间和称为(指令周期)。 11 定点32位字长的字,采用2的补码形式表示时,一个字所能表示

的整数范围是(-2的31次方到2的31次方减1 )。P20 12 IEEE754标准规定的64位浮点数格式中,符号位为1位,阶码为11位,尾数为52位,则它能表示的最大规格化正数为(+[1+(1-2 )]×2 )。 13 浮点加、减法运算的步骤是(0操作处理)、(比较阶码大小并完成对阶)、(尾数进行加或减运算)、(结果规格化并进行舍入处理)、(溢出处理)。P54 14 某计算机字长32位,其存储容量为64MB,若按字编址,它的存储系统的地址线至少需要(14)条。64×1024KB=2048KB(寻址范32围)=2048×8(化为字的形式)=214 15一个组相联映射的Cache,有128块,每组4块,主存共有16384块,每块64个字,则主存地址共(20)位,其中主存字块标记应为(9)位,组地址应为(5)位,Cache地址共(13)位。 16 CPU存取出一条指令并执行该指令的时间叫(指令周期),它通常包含若干个(CPU周期),而后者又包含若干个(时钟周期)。P131 17 计算机系统的层次结构从下至上可分为五级,即微程序设计级(或逻辑电路级)、一般机器级、操作系统级、(汇编语言)级、(高级语言)级。P13 18十进制数在计算机内有两种表示形式:(字符串)形式和(压缩的十进制数串)形式。前者主要用在非数值计算的应用领域,后者用于直接完成十进制数的算术运算。P19 19一个定点数由符号位和数值域两部分组成。按小数点位置不同,

cache性能分析实验报告

计算机系统结构实验报告 名称: Cache性能分析学院:信息工程 姓名:陈明 学号:S121055 专业:计算机系统结构年级:研一

实验目的 1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解; 2.了解Cache的容量、相联度、块大小对Cache性能的影响; 3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能提高的好处; 4.理解Cache失效的产生原因以及Cache的三种失效; 5.理解LRU与随机法的基本思想,及它们对Cache性能的影响; 实验平台 Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器 实验步骤 1.运行SimpleScalar模拟器; 2.在基本配置情况下运行程序(请指明所选的测试程序),统计Cache总失效 次数、三种不同种类的失效次数; 3.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的测试程序), 统计各种失效的次数,并分析Cache容量对Cache性能的影响; 4.改变Cache的相联度(1路,2路,4路,8路,64路),运行程序(指明所 选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响; 5.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选的测试程 序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响; 6.分别采用LRU与随机法,在不同的Cache容量、不同的相联度下,运行程序 (指明所选的测试程序)统计Cache总失效次数,计算失效率。分析不同的替换算法对Cache性能的影响。 预备知识 1. SimpleScalar模拟器的相关知识。详见相关的文档。 2. 复习和掌握教材中相应的内容 (1)可以从三个方面改进Cache的性能:降低失效率、减少失效开销、减少Cache命中时间。 (2)按照产生失效的原因不同,可以把Cache失效分为三类: ①强制性失效(Compulsory miss)

计算机组成原理参考答案汇总

红色标记为找到了的参考答案,问答题比较全,绿色标记为个人做的,仅供参考!第一章计算机系统概述 1. 目前的计算机中,代码形式是______。 A.指令以二进制形式存放,数据以十进制形式存放 B.指令以十进制形式存放,数据以二进制形式存放 C.指令和数据都以二进制形式存放 D.指令和数据都以十进制形式存放 2. 完整的计算机系统应包括______。 A. 运算器、存储器、控制器 B. 外部设备和主机 C. 主机和实用程序 D. 配套的硬件设备和软件系统 3. 目前我们所说的个人台式商用机属于______。 A.巨型机 B.中型机 C.小型机 D.微型机 4. Intel80486是32位微处理器,Pentium是______位微处理器。 A.16B.32C.48D.64 5. 下列______属于应用软件。 A. 操作系统 B. 编译系统 C. 连接程序 D.文本处理 6. 目前的计算机,从原理上讲______。 A.指令以二进制形式存放,数据以十进制形式存放 B.指令以十进制形式存放,数据以二进制形式存放 C.指令和数据都以二进制形式存放 D.指令和数据都以十进制形式存放 7. 计算机问世至今,新型机器不断推陈出新,不管怎样更新,依然保有“存储程序”的概念,最早提出这种概念的是______。 A.巴贝奇 B.冯. 诺依曼 C.帕斯卡 D.贝尔 8.通常划分计算机发展时代是以()为标准 A.所用的电子器件 B.运算速度 C.计算机结构 D.所有语言 9.到目前为止,计算机中所有的信息任以二进制方式表示的理由是() A.节约原件 B.运算速度快 C.由物理器件的性能决定 D.信息处理方便 10.冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是() A.指令操作码的译码结果 B.指令和数据的寻址方式 C.指令周期的不同阶段 D.指令和数据所在的存储单元 11.计算机系统层次结构通常分为微程序机器层、机器语言层、操作系统层、汇编语言机器层和高级语言机器层。层次之间的依存关系为() A.上下层都无关 B.上一层实现对下一层的功能扩展,而下一层与上一层无关 C.上一层实现对下一层的功能扩展,而下一层是实现上一层的基础

cache性能分析报告

《计算机系统结构课内实验》 实验报告

一、实验目的及要求 1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理 解; 2.了解Cache的容量、相联度、块大小对Cache性能的影响; 3.掌握降低Cache失效率的各种方法,以及这些方法对Cache性能 提高的好处; 4.理解Cache失效的产生原因以及Cache的三种失效; 5.理解LRU与随机法的基本思想,及它们对Cache性能的影响; 二、实验环境 Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器 三、实验内容 1.运行SimpleScalar模拟器; 2.在基本配置情况下运行程序(请指明所选的测试程序),统计 Cache总失效次数、三种不同种类的失效次数; 3.改变Cache容量(*2,*4,*8,*64),运行程序(指明所选的 测试程序),统计各种失效的次数,并分析Cache容量对Cach e性能的影响; 4.改变Cache的相联度(1路,2路,4路,8路,64路),运行 程序(指明所选的测试程序),统计各种失效的次数,并分析相联度对Cache性能的影响; 5.改变Cache块大小(*2,*4,*8,*64),运行程序(指明所选 的测试程序),统计各种失效的次数,并分析Cache块大小对Cache性能的影响;

6.分别采用LRU与随机法,在不同的Cache容量、不同的相联度 下,运行程序(指明所选的测试程序)统计Cache总失效次数,计算失效率。分析不同的替换算法对Cache性能的影响。 四、实验步骤 1、关于simplescalar的简要说明 SimpleScalar包括多个仿真器:sim-fast ,sim-safe,sim-cache,sim-cheetah,sim-pro和sim-outorder。 本次实验使用的是sim-cache,下面说明一下sim-cache。sim-cache:在这个仿真中加入了cache,用户可以对cache及TLB 进行设置,支持两级的cache和一级的TLB,第一级cache和TLB 均分为数据和指令两部分。(摘自百度百科) 下面简要说明一下有关cache的信息: 一般来说,Cache的结构参数主要包括以下几个方面:容量、块大小、相联度、替换算法等。在SimpleScalar模拟器中,采用了两级Cache结构,同时数据和指令Cache分开。SimpleScalar的Cache参数配置命令为::::: :Cache的名称,其中: dl1:一级数据Cache; dl2:二级数据Cache; il1:一级指令Cache; il2:二级指令Cache;

计算机组成原理试题及答案

《计算机组成原理》试题 一、(共30分) 1.(10分) (1)将十进制数+107/128化成二进制数、八进制数和十六进制数(3分) (2)请回答什么是二--十进制编码?什么是有权码、什么是无权码、各举一个你熟悉的有权码和无权码的例子?(7分) 2.已知X=0.1101,Y=-0.0101,用原码一位乘法计算X*Y=?要求写出计算过程。(10分) 3.说明海明码能实现检错纠错的基本原理?为什么能发现并改正一位错、也能发现二位错,校验位和数据位在位数上应满足什么条件?(5分) 4.举例说明运算器中的ALU通常可以提供的至少5种运算功能?运算器中使用多累加器的好处是什么?乘商寄存器的基本功能是什么?(5分) 二、(共30分) 1.在设计指令系统时,通常应从哪4个方面考虑?(每个2分,共8分) 2.简要说明减法指令SUB R3,R2和子程序调用指令的执行步骤(每个4分,共8分) 3.在微程序的控制器中,通常有哪5种得到下一条指令地址的方式。(第个2分,共10分) 4.简要地说明组合逻辑控制器应由哪几个功能部件组成?(4分) 三、(共22分) 1.静态存储器和动态存储器器件的特性有哪些主要区别?各自主要应用在什么地方?(7分) 2.CACHE有哪3种基本映象方式,各自的主要特点是什么?衡量高速缓冲存储器(CACHE)性能的最重要的指标是什么?(10分) 3.使用阵列磁盘的目的是什么?阵列磁盘中的RAID0、RAID1、RAID4、RAID5各有什么样的容错能力?(5分) 四、(共18分) 1.比较程序控制方式、程序中断方式、直接存储器访问方式,在完成输入/输出操作时的优缺点。(9分) 2.比较针式、喷墨式、激光3类打印机各自的优缺点和主要应用场所。(9分) 答案 一、(共30分) 1.(10分) (1) (+107/128)10 = (+1101011/10000000)2 = (+0.1101011)2 = (+0.153)8 = (+6B)16 (2) 二-十进制码即8421码,即4个基2码位的权从高到低分别为8、4、2、1,使用基码的0000,0001,0010,……,1001这十种组合分别表示0至9这十个值。4位基二码之间满足二进制的规则,而十进制数位之间则满足十进制规则。 1

计算机原理 试题及答案

计算机组成原理试卷A 一、选择题(每小题2分,共30分) 1.下列数中最小的数是______。 A.(100100)2 B.(43)8 C.(110010)BCD D.(25)16 2.计算机经历了从器件角度划分的四代发展历程,但从系统结构上来看,至今绝大多数计算机仍属于______型计算机。 A.实时处理 B.智能化 C.并行 D.冯.诺依曼 3.存储器是计算机系统中的记忆设备,它主要用来______。 A.存放数据 B.存放程序 C.存放微程序 D.存放数据和程序 4.以下四种类型指令中,执行时间最长的是______。 A.RR型指令 B.RS型指令 C.SS型指令 D.程序控制指令 5. 计算机的外围设备是指______。 A.输入/输出设备 B.外存储器 C.远程通信设备 D.除了CPU和内存以外的其它设备 6.堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作动作是:(A)→M SP,(SP)-1→SP,那么出栈操作的动作应为______。 A.(M SP)→A,(SP)+1→SP B.(SP)+1→SP,(M SP)→A C.(SP)-1→SP,(M SP)→A D.(M SP)→A,(SP)-1→SP 7.某寄存器中的值有时是地址,因此只有计算机的______才能识别它。 A.译码器 B.判别程序 C.指令 D.时序信号 8. 寄存器间接寻址方式中,操作数处在______。 A.通用寄存器 B.主存单元 C.程序计数器 D.堆栈 9. 假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校验的字符码是______。 A.11001011 B.11010110 C.11000001 D.1100101 10.不是发生中断请求的条件是______。 A.一条指令执行结束 B.一次I/O操作结束 C.机器内部发生故障 D.一次DMA操作结束 11.指令系统中采用不同寻址方式的目的主要是______。 A实现存贮程序和程序控制B缩短指令长度,扩大寻址空间,提高编程灵活性C可以直接访问外存D提供扩展操作码的可能并降低指令译码难度 12.某SRAM芯片,其容量为512×8位,除电源和接地端外,该芯片引出线的最小数目应 是______。 A 23 B 25 C 50 D 19 13.算术右移指令执行的操作是______。 A 符号位填0,并顺次右移1位,最低位移至进位标志位;

计算机原理-答案

《计算机原理》答案 一、填空题 1、1024 1024 1024 2、运算器、控制器、存储器、输入设备、输出设备 1、内存储器外存储器 2、打字键区_、功能键区、游标/控制键区__、数字键区_ 3、处理器、文件、存储器、作业、 4、多任务、图形界面 5、您的计算机进入睡眠状态、关闭计算机、重新启动计算机和重新启动计算机并切换到 MS___DOS方式(M)。 6、两 7、三 8、用户的帐号 9、不同性质的概念 二、简答题 1、简述计算机的工作原理。 计算机仅有硬件,计算机只有运算的可能性,如果计算机进行计算、控制等功能的话,计算机还必须配有必要的软件。所谓软件就是指使用计算机的各种程序。(1)指令和程序的概念指令就是让计算机完成某个操作所发出的指令或命令,即计算机完成某个操作的依据。 一条指令通常有两个部分组成,前面是操作码部分,后面是操作数部分。操作码是指该指令要完成的操作,操作数是指参加运算的数或者数所在的单元地址。一台计算机的所有指令的集合,称为该计算机的指令系统。 使用者根据解决某一问题的步骤,选用一条条指令进行有许的排列。计算机执行了这一指令序列,便可完成预定的任务。这一指令序列就称为程序。显然,程序中的每一条指令必须是所用计算机的指令系统中的指令,因此指令系统是系统提供给使用者编制程序的基本依据。指令系统反映了计算机的基本功能,不同的计算机其指令系统也不相同。 (2)计算机执行指令的过程 计算机执行指令一般分为两个阶段:第一阶段,将要执行的指令从内存取到CPU内;第二阶段,CPU对屈辱的该指令进行分析译码,判断该条指令要完成的操作,然后向各部件发出完成该操作的控制信号,完成该指令的功能。当一条指令执行完后就进入下一条指令的取指操作。一般将第一阶段取指令的操作称为取指周期,将第二阶段称为执行周期。 (3)程序的执行过程 程序是一系列指令的有序集合构成,计算机执行程序就是、执行这系列指令。CPU从内存读出一条指令到CPU执行,该指令执行完,再从内存读出下一条指令到CPU内执行。CPU 不断取指令,执行指令,这就是程序的执行过程。 2、计算机有哪些应用领域? 目前,电子计算机已经在工业、农业、财贸、经济、国防、科技及社会生活的各个领域中得到极其广泛的应用。归纳起来分以下几个方面。科学计算数据处理自动控制计算机辅助工程人工智能 3、什么是操作系统? 操作系统是计算机软件系统的核心和基础,它提供了软件开发和运行的环境。有了操作系统,计算机的各个部件才得以协调工作,得到有效管理。 4、文档是如何创建、关闭和打开的?其内容是如何进行复制、删除和移动的? 创建;在WORD窗口中选择文件菜单中的新建,即可新建一个文档 关闭:所谓关闭文档,即对当前文档存盘并退出对该文档的处理,只需要在文件菜单中选择关闭命令,或者用鼠标单击文档窗口右上角的关闭按钮。如果关闭文档之前尚未保存文档,则系统会给出提示,询问是否保存对该文档的修改。 打开;(1)在WINDOWS的资源管理器中或我的电脑窗口中找到需要打开的WORD文档,然后

Cache性能分析

Cache 性能分析 一、性能分析 1.不同容量下Cache 命中率: 设置:选择不同的cache 容量,2k ,4k ,8k ,16k ,32k ,64k ,128k ,256k 块大小:16k 相联度:直接相连 替换策略:LRU 预取策略:不预取 写策略:写回 写不命中的调快策略:按写分配 文件:cc1.din 表1 不同容量下Cache 命中率 图1 结论:在其他条件一定的情况下,随着cache 容量的增加,不命中率逐渐减小 2.相联度对不命中率的影响: 设置:Cache 容量:64K/256KB 块大小;16B 相联度设置:1,2,4, 8,16,32 替换策LRU 预取策略:不预取 写策略:写回 写不命中的调快策略:按写分配 文件:cc1.din Cache 容量为64KB 时: 表2 当容量为64K 时的不命中率 相联度 1 2 4 8 16 32 不命中率(%) 2.71 1.80 1.61 1.55 1.54 1.54 Cache 容量为256KB 时: 表3 当容量为256K 时的不命中率 相联度 1 2 4 8 16 32 不命中率(%) 1.58 1.34 1.28 1.26 1.24 1.24 结论: Cache 的容量(KB ) 2 4 8 16 32 64 128 256 不命中率(%) 18.61 14.09 10.12 6.34 3.81 2.71 1.95 1.58

图2 结论:(1)当Cache容量一定时,随着相联度的不断增加,不命中率逐渐减小,但是当相联度增加到一定程度时,不命中率保持不变。 (2)当关联度相同时,Cache容量越大,不命中率越小,当关联度增加到一定程度时,不命中率和Cache容量大小无关。 3.Cache块大小对命中率的影响: 设置:Cahce块大小(B):16,32,64,128,256 Cache容量设置(KB):2,8,32,128,512 相联度:直接相联预取策略:不预取写策略:写回写不命中的调快策略:按写分配文件:eg.din 表4 不同Cache行大小情况下Cache的不命中率 块大小(B) Cache的容量(KB) 2 8 32 128 512 16 7.80% 7.40% 7.20% 7.20% 7.20% 32 5.40% 5.00% 4.70% 4.70% 4.70% 64 4.00% 3.40% 3.10% 3.10% 3.10% 128 4.40% 3.30% 2.40% 2.40% 2.40% 256 6.50% 5.10% 2.30% 1.90% 1.90% 图3 结论:(1)在Cache容量一定时,Cache 不命中率随着Cache行的增加先减小后增加。 (2)在Cache行一定的情况下,Cache不命中率随着Cache容量的增加不断减小。

实验6Cache性能分析

实验6 Cache 性能分析 6.1 实验目的 1. 加深对Cache 的基本概念、基本组织结构以及基本工作原理的理解; 2. 掌握Cache 的容量、相联度、块大小对Cache 性能的影响; 3. 掌握降低Cache 不命中率的各种方法,以及这些方法对Cache 性能提高的好处; 4. 理解LRU 与随机法的基本思想以及它们对Cache 性能的影响; 6.2 实验平台 实验平台采用Cache 模拟器My Cache 。 6.3 实验内容及步骤 首先要掌握My Cache 模拟器的使用方法。 6.3.1 Cache 的容量对不命中率的影响 1. 启动MyCache 模拟器。 2. 用鼠标单击“复位”按钮,把各参数设置为默认值。 3. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏 览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 4. 选择不同的Cache 容量,包括2KB 、4KB 、8KB 、16KB 、32KB 、64KB 、128KB 和256KB 。分 别执行模拟器(单击“执行到底”按钮即可执行),然后在表5.1中记录各种情况下的不命中率。 地址流文件名: E:\cjh\系统结构模拟器\MyCache 模拟器\地址流\all.din 5. 以容量为横坐标,画出不命中率随Cache 容量变化而变化的曲线,并指明地址流文件名。 不命中率随Cache容量变化图 0.00% 2.00%4.00%6.00%8.00%10.00%12.00%2 4 8 16 32 64 128 Cache容量(KB) 不命中率 6据结果,你能得出什么结论? 6.3.2 相联度对不命中率的影响 1. 用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache 的容量为64KB 。 2. 选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏 览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 3. 选择不同的Cache 相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行 模拟器(单击“执行到底”按钮即可执行),然后在表5.2中记录各种情况下的不命中

计算机组成原理试题及答案

本科生期末试卷十五 一、选择题(每小题1分,共10分) 1.下列数中最大的数为______。 A.(10010101)2 B.(227)8 C.(96)8 D.(143)5 2.IEEE754标准规定的32位浮点数中,符号位为1位,阶码为8位,则它所能表示的最大规格化正数为______。 A.+(2 – 223)×2+127B.+(1 – 223)×2+127C.+(2 – 223)×2+255 D.2+127 + 227 3.四片74181ALU和一片74182CLA器件相配合,具有如下进位传送功能______。 A.行波进位 B.组内先行进位,组间先行进位 C.组内先行进位,组间行波进位 D.组内行波进位,组间先行进位 4.某计算机字长32位,其存储容量为4MB,若按字编址,它的寻址范围是______。 A.0-1M B.0-4MB C.0-4M D.0-1MB 5.以下四种类型的半导体存储器中,以传输同样多的字为比较条件,则读出数据传输率最高的是______。 A.DRAM B.SRAM C.闪速存储器 D.EPROM 6.位操作类指令的功能是______。 A.对CPU内部通用寄存器或主存某一单元任一位进行状态检测(0或1) B.对CPU内部通用寄存器或主存某一单元任一位进行状态强置(0或1) C.对CPU内部通用寄存器或主存某一单元任一位进行状态检测或强置 D.进行移位操作 7.操作控制器的功能是______。 A.产生时序信号 B.从主存取出一条指令 C.完成指令操作的译码 D.从主存取出指令,完成指令操作码译码,并产生有关的操作控制信号,以解释执 行该指令 8.采用串行接口进行七位ASCⅡ码传送,带有一位奇偶校验位为1位起始位和1位停止位,当波特率为9600波特时,字符传送速率为______。 A.960 B.873 C.1371 D.480 9.3.5英寸软盘记录方式采用____________。 A.单石双密度 B.双石双密度 C.双面高密度 D.双石单密度 10.通道对CPU的请求形式是______。 A.自陷 B.中断 C.通道命令 D.跳转指令 二、填空题(每小题3分,共24分) 1.{(26)16∨(63)16}⊕(135)8的值是A______。 2.Cache是一种A______存储器,是为了解决CPU和主存之间B______不匹配而采用的一项重要的硬件技术。现发展为C______体系。 3.一个较完善的指令系统应包含A______类指令,B______类指令,C______类指令,程序控制类指令,I/O类指令,字符串类指令,系统控制类指令。

cache性能分析及优化实验报告

实验报告 实验名称:计算机原理cache性能分析及优化实验 学员:张英杰学号: 201008040092 培养类型: 4+1军人年级:任职培训队 专业:计算机科学与技术所属学院:计算机学院 指导教员:唐玉华职称:研究员 实验室:校计算机中心四号院机房实验日期: 2010.12.1—2010.12.19国防科学技术大学训练部制

《实验报告》填写说明 1.学员完成人才培养方案和课程标准要所要求的每个实验后,均须提交实验报告。 2.实验报告封面必须打印,报告内容可以手写或打印。 3.实验报告内容编排及打印应符合以下要求: (1)采用A4(21cm×29.7cm)白色复印纸,单面黑字打印。上下左右各侧的页边距均为3cm;缺省文档网格:字号为小4号,中文为宋体,英文和阿拉伯数字为Times New Roman,每页30行,每行36字;页脚距边界为2.5cm,页码置于页脚、居中,采用小5号阿拉伯数字从1开始连续编排,封面不编页码。 (2)报告正文最多可设四级标题,字体均为黑体,第一级标题字号为4号,其余各级标题为小4号;标题序号第一级用“一、”、“二、”……,第二级用“(一)”、“(二)” ……,第三级用“1.”、“2.”……,第四级用“(1)”、“(2)” ……,分别按序连续编排。 (3)正文插图、表格中的文字字号均为5号。

一实验概述 (一)实验目的 1.掌握Cache的基本概念、基本组织结构 2.掌握影响Cache性能的三个指标 3.了解相联度对Cache的影响 4.了解块大小对Cache的影响 5.了解替换算法对Cache的影响 6.了解Cache失效的分类及组成情况 7.了解一些基本的Cache性能优化方法(选做) (二)实验步骤 1.运行模拟器SimpleScalar 2.在基本配置情况下运行矩阵乘计算程序统计Cache失效次数,并统计三种 不同类型的失效 3.改变Cache容量,统计各种失效的次数,并进行分析 4.改变Cache的相联度,统计各种失效的次数,并进行分析 5.改变Cache块大小,统计各种失效的次数,并进行分析 6.改变Cache的替换策略,统计各种失效次数,并分析 7.对给出的矩阵乘计算程序进行适当改写以优化cache性能。(选做) (三)实验平台 Vmware 虚拟机,redhat 9.0 linux 操作系统,SimpleScalar模拟器。(四)实验课时 3课时 (五)参考资料 计算机体系结构教材、SimpleScalar模拟器使用指南等 二背景知识 (一)Cache基本知识 (1) 可以从三个方面改进Cache的性能:降低失效率、减少失效开销、减少Cache 命中时间; (2) 按照产生失效的原因不同,可以把Cache失效分为三类: 1)强制性失效(Compulsory miss)

Cache的工作原理4

前言 虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/存之间的存取速度有关。 若CPU工作速度较高,但存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力。 如500MHz的PⅢ,一次指令执行时间为2ns,与其相配的存(SDRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来? 如何减少CPU与存之间的速度差异?有4种办法: 一种是在基本总线周期中插入等待,但这样会浪费CPU的能力。 另一种方法是采用存取时间较快的SRAM作存储器,这样虽然解决了CPU与存储器间速度不匹配的问题,但却大幅提升了系统成本。 第3种方法是在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache法。 还有一种方法,采用新型存储器。 目前,一般采用第3种方法。它是PC系统在不大增加成本的前提下,使性能提升的一个非常有效的技术。 本文简介了Cache的概念、原理、结构设计以及在PC及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,以备下次访问。

计算机组成原理答案

计算机组成原理答案文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

第5章习题参考答案 1.请在括号内填入适当答案。在CPU中: (1)保存当前正在执行的指令的寄存器是( IR ); (2)保存当前正在执行的指令地址的寄存器是( AR ) (3)算术逻辑运算结果通常放在( DR )和(通用寄存器)。 2.参见图的数据通路。画出存数指令“STO Rl,(R2)”的指令周期流程图,其含义是将寄存器Rl的内容传送至(R2)为地址的主存单元中。标出各微操作信号序列。 解: STO R1, (R2)的指令流程图及微操作信号序列如下: 3.参见图的数据通路,画出取数指令“LAD (R3),R0”的指令周期流程图,其含义是将(R3)为地址主存单元的内容取至寄存器R2中,标出各微操作控制信号序列。 解: LAD R3, (R0)的指令流程图及为操作信号序列如下: 4.假设主脉冲源频率为10MHz,要求产生5个等间隔的节拍脉冲,试画出时序产生器的逻辑图。 解: 5.如果在一个CPU周期中要产生3个节拍脉冲;T l=200ns,T2=400ns,T3=200ns,试画出时序产生器逻辑图。 解:取节拍脉冲T l、T2、T3的宽度为时钟周期或者是时钟周期的倍数即可。所以取时钟源提供的时钟周期为200ns,即,其频率为5MHz.;由于要输出3个节拍脉冲信号,而T3的宽度为2个时钟周期,也就是一个节拍电位的时间是4个时钟周期,所以除了C4外,还需要3个触发器——C l、C2、C3;并令

211C C T *=;321C C T *=;313C C T =,由此可画出逻辑电路图如下: 6.假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令公用的。已知微指令长度为32位,请估算控制存储器容量。 解:80条指令,平均每条指令由4条微指令组成,其中有一条公用微指令,所以总微指令条数为80 (4-1)+1=241条微指令,每条微指令32位,所以控存容量为:24132位 7.某ALU 器件是用模式控制码M S 3 S 2 S 1 C 来控制执行不同的算术运算和逻辑操作。下表列出各条指令所要求的模式控制码,其中y 为二进制变量,φ为0或l 任选。 试以指令码(A ,B ,H ,D ,E ,F ,G)为输入变量,写出控制参数M ,S 3,S 2,S l ,C 的逻辑表达式。 解: 由表可列如下逻辑方程 M=G S 3=H+D+F S 2=A+B+D+H+E+F+G S 1=A+B+F+G C=H+D+Ey+Fy 8.某机有8条微指令I 1—I 8,每条微指令所包含的微命令控制信号如下表所示。 a —j 分别对应10种不同性质的微命令信号。假设一条微指令的控制字段仅限为8位,请安排微指令的控制字段格式。

实验4 Cache性能分析

实验4 Cache性能分析 4.1 实验目的 1.加深对Cache的基本概念、基本组织结构以及基本工作原理的理解; 2.掌握Cache的容量、相联度、块大小对Cache性能的影响; 3.掌握降低Cache不命中率的各种方法,以及这些方法对Cache性能提高的好处; 4.理解LRU与随机法的基本思想以及它们对Cache性能的影响; 4.2 实验平台 实验平台采用Cache模拟器My Cache。 4.3 实验内容及步骤 首先要掌握My Cache模拟器的使用方法。 4.3.1 Cache的容量对不命中率的影响 1.启动MyCache模拟器。 2.用鼠标单击“复位”按钮,把各参数设置为默认值。 3.选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏 览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 4.选择不同的Cache容量,包括2KB、4KB、8KB、16KB、32KB、64KB、128KB和256KB。分 别执行模拟器(单击“执行到底”按钮即可执行),然后在表5.1中记录各种情况下的不命中率。 地址流文件名: 5.以容量为横坐标,画出不命中率随Cache容量变化而变化的曲线,并指明地址流文件名。 6.根据该模拟结果,你能得出什么结论? 4.3.2 相联度对不命中率的影响 1.用鼠标单击“复位”按钮,把各参数设置为默认值。此时的Cache的容量为64KB。 2.选择一个地址流文件。方法:选择“访问地址”→“地址流文件”选项,然后单击“浏 览”按钮,从本模拟器所在的文件夹下的“地址流”文件夹中选取。 3.选择不同的Cache相联度,包括直接映像、2路、4路、8路、16路和32路。分别执行 模拟器(单击“执行到底”按钮即可执行),然后在表5.2中记录各种情况下的不命中率。

计算机组成原理课后答案

计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体 计算机硬件:计算机的物理实体 计算机软件:计算机运行所需的程序及相关资料 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要 如何理解计算机系统的层次结构? 实际机器M1向上延伸构成了各级虚拟机器,机器M1内部也可向下延伸而形成下一级的微程序机器M0,硬件研究的主要对象归结为传统机器M1和微程序机器M0,软件研究对象主要是操作系统及以上的各级虚拟机 说明高级语言、汇编语言和机器语言的差别及其联系。 机器语言是可以直接在机器上执行的二进制语言 汇编语言用符号表示指令或数据所在存储单元的地址,使程序员可以不再使用繁杂而又易错的二进制代码来编写程序 高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性 如何理解计算机组成和计算机体系结构? 计算机体系结构是对程序员可见的计算机系统的属性 计算机组成对程序员透明,如何实现计算机体系结构所体现的属性 冯·诺依曼计算机的特点是什么? 由运算器、控制器、存储器、输入设备、输出设备五大部件组成 指令和数据以同一形式(二进制形式)存于存储器中 指令由操作码、地址码两大部分组成 指令在存储器中顺序存放,通常自动顺序取出执行 以运算器为中心(原始冯氏机) 画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。 计算机硬件各部件 运算器:ACC, MQ, ALU, X 控制器:CU, IR, PC 主存储器:M, MDR, MAR

I/O设备:设备,接口 计算机技术指标: 机器字长:一次能处理数据的位数,与CPU的寄存器位数有关 存储容量:主存:存储单元个数×存储字长 运算速度:MIPS, CPI, FLOPS 解释概念 主机:计算机硬件的主体部分,由CPU+MM(主存或内存)组成 CPU:中央处理器,是计算机硬件的核心部件,由运算器+控制器组成 主存:计算机中存放正在运行的程序和数据的存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成 存储单元:可存放一个机器字并具有特定存储地址的存储单位 存储元件/存储基元/存储元:存储一位二进制信息的物理元件,是存储器中最小的存储单位,不能单独存取 存储字:一个存储单元所存二进制代码的逻辑单位 存储字长:一个存储单元所存二进制代码的位数 存储容量:存储器中可存二进制代码的总量 机器字长:CPU 能同时处理的数据位数 指令字长:一条指令的二进制代码位数 解释英文代号 CPU: Central Processing Unit PC: Program Counter IR: Instruction Register CU: Control Unit ALU: Arithmetic Logic Unit ACC: Accumulator MQ: Multiplier-Quotient Register

相关文档