1C31116G02 销售部洪先生:18965131356(微信同号) 固话:0592-5072236 QQ:1665532815
6DD1681-0GK0 6DD1682-0AJ1 6DD1682-0AJ2 6DD1682-0AJ3 6DD1682-0BB0 6DD1682-0BB1 6DD1682-0BC0 6DD1682-0BC3 6DD1682-0BC4 6DD1682-0BE0 6DD1682-0CC0 6DD1682-0CD0 6DD1682-0CE3 6DD1682-0CE4 6DD1682-0CF0 6DD1682-0CG0 6DD1682-0CH0 6DD1682-0CH1 6DD1682-0CH2 6DD1682-0DA1 6DD1683-0BB0 6DD1683-0BC0 6DD1683-0BC5 6DD1683-0BE0 6DD1683-0BE5 6DD1683-0CC0 6DD1683-0CC5 6DD1683-0CD0 6DD1683-0CD5 6DD1683-0CH0 6DD1683-0CH1 6DD1684-0AH0 6DD1684-0BB0 6DD1684-0BC0 6DD1684-0BD0 6DD1684-0BH2 6DD1684-0BJ0 6DD1684-0CH0 6DD1684-0DB2 6DD1684-0DG1 6DD1684-0DK0 6DD1684-0EA0 6DD1684-0EB0 6DD1684-0EC0 6DD1684-0EE0 6DD1684-0EF0 6DD1684-0EK0 6DD1684-0FA0 6DD1684-0FB0 6DD1684-0FD0 6DD1684-0FE0 6DD1684-0FF0 6DD1684-0FH0 6DD1684-0GC0 6DD1684-0GD0 6DD1684-0GE0 6DD1684-0GF0 6DD1684-0GG0 6DD1684-0GH0 6DD1688-0AD0 6DD1688-0AE0 6DD1688-0AE2 6DD1688-1AA0 6DD1688-1AB0 6DD1688-1AC0 6DD1688-1AC1 6DD1801-5DA8 6DD1805-5DA0 6DD1842-0AA0 6DD1842-0AA1 6DD1842-0AB0 6DD1842-0AB1 6DD1842-0AD0 6DD1842-0AD1 6DD1843-0AA0 6DD1843-0AB0 6DD2920-0AA0 6DD2920-0AB0 6DD2920-0AB1 6DD2920-0AC0 6DD2920-0AD0 6DD2920-0AH0 6DD2920-0AL0 6DD2920-0BB0 6DD2920-0AJ0 6DD2920-0AM0 6DD2920-0AN1
主-辅存存储层次 由于计算机主存容量相对于程序员所需要的容量来说总是太小,程序与数据从辅存调入主存是由程序员自己安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出,因此存在存储空间的分配问题。操作系统的形成和发展使得程序员尽可能摆脱主、辅存之间的地址定位,同时形成了支持这些功能的“辅助硬件”,通过软件、硬件的结合,把主存和辅存统一成了一个整体,如图所示。这时,由主存、辅存形成了一个存储层次,即存储系统。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位的平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。这种指令地址码称为虚地址(虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址、实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间
当用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。查看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程员员是透明的。 主-辅存层次解决了存储器大容量要求和低成本之间的矛盾。 在速度方面,计算机的主存和CPU直保持了大约一个数量级的差距。显然这个差距限制了CPU速度潜力的发挥。为了弥合这个差距,仅采用一种工艺的单一存储器是行不通的,必须进一步从计算机系统结构和组织上去研究。设置高速缓冲存储器(Cache)是解决存取速度的重要方法。在CPU和主存中间设置高速缓冲存储器,构成高速缓存(Cache)-主存层次,要求Cache在速度上能跟得上CPU的要求。Cache-主存间的地址映象和调度吸取了比它较早出现的主-辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬件结合而完全由硬件来实现,如图所示。 地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。下面介绍三种地址映象的方式。 1.全相联方式 地址映象规则:主存的任意一块可以映象到Cache中的任意一块 (1) 主存与缓存分成相同大小的数据块。 (2) 主存的某一数据块可以装入缓存的任意一块空间中。如果Cache的块数为Cb,主存的块数为Mb,则映象关系共有Cb×Mb种。 目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。 优点:命中率比较高,Cache存储空间利用率高。 缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而应用少。 2.直接相联方式 地址映象规则: 主存储器中一块只能映象到Cache的一个特定的块中。 (1) 主存与缓存分成相同大小的数据块。 (2) 主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。 (3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。 主存中各区内相同块号的数据块都可以分别调入缓存中块号相同的地址中,但同时只能有一个区的块存入缓存。由于主、缓存块号相同,因此,目录登记时,只记录调入块的区号即可。主、缓存块号及块内地址两个字段完全相同。目录表存放在高速小容量存储器中,其中包括二部分:数据块在主存的区号和有效位。目录表的容量与缓存的块数相同。 优点:地址映象方式简单,数据访问时,只需检查区号是否相等即可,因而可以得到比较快的访问速度,硬件设备简单。 缺点:替换操作频繁,命中率比较低。 3.组相联映象方式 组相联的映象规则: (1) 主存和Cache按同样大小划分成块。 (2) 主存和Cache按同样大小划分成组。 (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。 (4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。 主存地址与缓存地址的转换有两部分,组地址是按直接映象方式,按地址进行访问,而块地址是采用全相联方式,按内容访问。组相联的地址转换部件也是采用相关存储器实现。 优点:块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。 缺点:实现难度和造价要比直接映象方式高。
替换策略
1. 根据程序局部性规律可知:程序在运行中,总是频繁地使用那些最近被使用过的指令和数据。这就提供了替换策略的理论依据。综合命中率、实现的难易及速度的快慢各种因素,替换策略可有随机法、先进先出法、最近最少使用法等。 (1).随机法(RAND法) 随机法是随机地确定替换的存储块。设置一个随机数产生器,依据所产生的随机数,确定替换块。这种方法简单、易于实现,但命中率比较低。 (2).先进先出法(FIFO法) 先进先出法是选择那个最先调入的那个块进行替换。当最先调入并被多次命中的块,很可能被优先替换,因而不符合局部性规律。这种方法的命中率比随机法好些,但还不满足要求。先进先出方法易于实现, (3).最近最少使用法(LRU法) LRU法是依据各块使用的情况, 总是选择那个最近最少使用的块被替换。这种方法比较好地反映了程序局部性规律。 实现LRU策略的方法有多种。
|