第5章存储体系及结构04_第1页
第5章存储体系及结构04_第2页
第5章存储体系及结构04_第3页
第5章存储体系及结构04_第4页
第5章存储体系及结构04_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理计算机组成原理第第5章章5.1 存储系统的组成存储系统的组成5.2 主存储器的组织主存储器的组织5.3 半导体随机存储器和只读存储器半导体随机存储器和只读存储器5.4 主存储器的连接与控制主存储器的连接与控制5.5 提高提高主存读写速度的主存读写速度的技术技术5.6 多体交叉存储技术多体交叉存储技术5.7 高速缓冲存储器高速缓冲存储器5.8 虚拟存储器虚拟存储器计算机组成原理计算机组成原理存储层次存储层次 1. 主主-辅存存储层次辅存存储层次 : 问题:问题:计算机主存容量相对于程序员所需要的容量来说总是太小,计算机主存容量相对于程序员所需要的容量来说总是太小,程序与数据从辅存调

2、入主存如果由程序员自己安排的,程序员必须花费程序与数据从辅存调入主存如果由程序员自己安排的,程序员必须花费很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位很大精力和时间把大程序预先分成块,确定好这些程序块在辅存中的位置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时置和装入主存的地址,而且还要预先安排好程序运行时各块如何和何时调入调出,因此存在存储空间的分配问题。调入调出,因此存在存储空间的分配问题。好在操作系统的形成和发展好在操作系统的形成和发展使得程序员尽可能摆脱主、辅存之间的地址定位使得程序员尽可能摆脱主、辅存之间的地址定位,同时形成了支持这些,同时形成了支持这

3、些功能的功能的“辅助硬件辅助硬件”,通过软件、硬件的结合,把主存和辅存统一成了,通过软件、硬件的结合,把主存和辅存统一成了一个整体,如图所示。这时,由主存、辅存形成了一个存储层次,即存一个整体,如图所示。这时,由主存、辅存形成了一个存储层次,即存储系统。从整体看,其速度接近于主存的速度,其容量则接近于辅存的储系统。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,每位的平均价格也接近于廉价的慢速的辅存平均价格。这种系统容量,每位的平均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。在系统不断发展和完善,就逐步形成了现在广泛使用的虚

4、拟存储系统。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际具有对应这个地址码宽度的全部虚存空间一样。该空间可以比主存实际空间大得多,以致可以存得下整个程序。这种指令地址码称为虚地址空间大得多,以致可以存得下整个程序。这种指令地址码称为虚地址(虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量(虚存地址、虚拟地址)或逻辑地址,其对应的存储容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址、实(存)地址,其对或虚存空间;而把实际主存的地

5、址称为物理地址、实(存)地址,其对应的存储容量称为主存容量、实存容量或实(主)存空间应的存储容量称为主存容量、实存容量或实(主)存空间计算机组成原理计算机组成原理计算机组成原理计算机组成原理2. CACHE-主存存储层次主存存储层次当用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存当用虚地址访问主存时,机器自动地把它经辅助软件、硬件变换成主存实地址。查看这个地址所对应的单元内容是否已经装入主存,如果在主实地址。查看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那块程存就进行访问,如果不在主存内就经辅助软件、硬件把它所在的那

6、块程序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来序和数据由辅存调入主存,而后进行访问。这些操作都不必由程序员来安排,也就是说,对应用程员员是透明的。安排,也就是说,对应用程员员是透明的。 主主-辅存层次解决了存储器辅存层次解决了存储器大容量要求和低成本之间的矛盾。大容量要求和低成本之间的矛盾。 在速度方面,计算机的主存和在速度方面,计算机的主存和CPU间间保持了大约一个数量级的差距。显然这个差距限制了保持了大约一个数量级的差距。显然这个差距限制了CPU速度潜力的发速度潜力的发挥。为了弥合这个差距,仅采用一种工艺的单一存储器是行不通的,必挥。为了弥合这个差距,仅采用一种工艺的单

7、一存储器是行不通的,必须进一步从计算机系统结构和组织上去研究。设置高速缓冲存储器须进一步从计算机系统结构和组织上去研究。设置高速缓冲存储器(Cache)是解决存取速度的重要方法。在)是解决存取速度的重要方法。在CPU和主存中间设置高速缓和主存中间设置高速缓冲存储器,构成高速缓存(冲存储器,构成高速缓存(Cache)-主存层次,要求主存层次,要求Cache在速度上能在速度上能跟得上跟得上CPU的要求。的要求。Cache-主存间的地址映象和调度吸取了比它较早出主存间的地址映象和调度吸取了比它较早出现的主现的主-辅存存储层次的技术,不同的是因其速度要求高,不是由软、硬辅存存储层次的技术,不同的是因其

8、速度要求高,不是由软、硬件结合而完全由硬件来实现,如图所示。件结合而完全由硬件来实现,如图所示。计算机组成原理计算机组成原理计算机组成原理计算机组成原理1.程序的局部性原理程序的局部性原理 程序的局部性包括:时间局部性和空间局部程序的局部性包括:时间局部性和空间局部性。性。 时间局部性是指如果一个存储单元被访问,时间局部性是指如果一个存储单元被访问,则可能该单元会很快被再次访问。这是因为程则可能该单元会很快被再次访问。这是因为程序存在着循环。序存在着循环。 空间局部性是指如果一个存储单元被访问,空间局部性是指如果一个存储单元被访问,则该单元邻近的单元也可能很快被访问。这是则该单元邻近的单元也可

9、能很快被访问。这是因为程序中大部分指令是顺序存储、顺序执行因为程序中大部分指令是顺序存储、顺序执行的,数据一般也是以向量、数组、树、表等形的,数据一般也是以向量、数组、树、表等形式簇聚地存储在一起的。式簇聚地存储在一起的。5.7.1 高速存储工作原理高速存储工作原理 计算机组成原理计算机组成原理5.7 高速缓冲存储器高速缓冲存储器 高速缓冲技术就是利用程序的局部性高速缓冲技术就是利用程序的局部性原理,把程序中正在使用的部分存放在一原理,把程序中正在使用的部分存放在一个高速的容量较小的个高速的容量较小的Cache中,使中,使CPU的的访存操作大多数针对访存操作大多数针对Cache进行,从而使进行

10、,从而使程序的执行速度大大提高。程序的执行速度大大提高。2.Cache的基本结构的基本结构 Cache和主存都被分成若干个大小相和主存都被分成若干个大小相等的块,每块由若干字节组成。由于等的块,每块由若干字节组成。由于Cache的容量远小于主存的容量,它保存的容量远小于主存的容量,它保存的信息只是主存中最活跃的若干块的的信息只是主存中最活跃的若干块的副本副本。计算机组成原理计算机组成原理 高速缓冲存储器是存在于主存与高速缓冲存储器是存在于主存与CPU之间的一级存储之间的一级存储器,器, 由静态存储芯片由静态存储芯片(SRAM)组成,容量比较小但速度比组成,容量比较小但速度比主存高得多,主存高得

11、多, 接近于接近于CPU的速度。的速度。主要由三大部分组成:主要由三大部分组成:Cache存储体:存储体: 存放由主存调入的指令与数据块。存放由主存调入的指令与数据块。地址转换部件:建立目录表以实现主存地址到缓存地址转换部件:建立目录表以实现主存地址到缓存 地址的转换。地址的转换。替换部件:在缓存已满时按一定策略进行数据块替换,替换部件:在缓存已满时按一定策略进行数据块替换, 并修改地址转换部件。并修改地址转换部件。Cache的结构的结构计算机组成原理计算机组成原理计算机组成原理计算机组成原理Cache的工作原理的工作原理 高速缓冲存储器通常由高速缓冲存储器通常由高速存储器、联想存储器、替换高

12、速存储器、联想存储器、替换逻辑电路和相应的控制线路组成。逻辑电路和相应的控制线路组成。 在有高速缓冲存储器的计算机系统中,中央处理器存取在有高速缓冲存储器的计算机系统中,中央处理器存取主存储器的地址划分为行号、列号和组内地址三个字段。于主存储器的地址划分为行号、列号和组内地址三个字段。于是,主存储器就在逻辑上划分为若干行;每行划分为若干的是,主存储器就在逻辑上划分为若干行;每行划分为若干的存储单元组;每组包含几个或几十个字。高速存储器也相应存储单元组;每组包含几个或几十个字。高速存储器也相应地划分为行和列的存储单元组。二者的列数相同,组的大小地划分为行和列的存储单元组。二者的列数相同,组的大小

13、也相同,但高速存储器的行数却比主存储器的行数少得多。也相同,但高速存储器的行数却比主存储器的行数少得多。 联想存储器用于地址联想,有与高速存储器相同行数和联想存储器用于地址联想,有与高速存储器相同行数和列数的存储单元。当主存储器某一列某一行存储单元组调入列数的存储单元。当主存储器某一列某一行存储单元组调入高速存储器同一列某一空着的存储单元组时,与联想存储器高速存储器同一列某一空着的存储单元组时,与联想存储器对应位置的存储单元就记录调入的存储单元组在主存储器中对应位置的存储单元就记录调入的存储单元组在主存储器中的行号。的行号。计算机组成原理计算机组成原理 当中央处理器存取主存储器时,硬件首先自动

14、对存取当中央处理器存取主存储器时,硬件首先自动对存取地址的列号字段进行译码,以便将联想存储器该列的全部地址的列号字段进行译码,以便将联想存储器该列的全部行号与存取主存储器地址的行号字段进行比较:若有相同行号与存取主存储器地址的行号字段进行比较:若有相同的,表明要存取的主存储器单元已在高速存储器中,称为的,表明要存取的主存储器单元已在高速存储器中,称为命中,硬件就将存取主存储器的地址映射为高速存储器的命中,硬件就将存取主存储器的地址映射为高速存储器的地址并执行存取操作;若都不相同,表明该单元不在高速地址并执行存取操作;若都不相同,表明该单元不在高速存储器中,称为脱靶,硬件将执行存取主存储器操作并

15、自存储器中,称为脱靶,硬件将执行存取主存储器操作并自动将该单元所在的那一主存储器单元组调入高速存储器相动将该单元所在的那一主存储器单元组调入高速存储器相同列中空着的存储单元组中,同时将该组在主存储器中的同列中空着的存储单元组中,同时将该组在主存储器中的行号存入联想存储器对应位置的单元内。行号存入联想存储器对应位置的单元内。计算机组成原理计算机组成原理 当出现脱靶而高速存储器对应列中没有空的位置时,当出现脱靶而高速存储器对应列中没有空的位置时,便淘汰该列中的某一组以腾出位置存放新调入的组,这称便淘汰该列中的某一组以腾出位置存放新调入的组,这称为替换。为替换。 确定替换的规则叫替换算法,常用的替换

16、算法有确定替换的规则叫替换算法,常用的替换算法有: 最近最少使用算法(最近最少使用算法(LRU)、)、 先进先出法(先进先出法(FIFO)、)、 随机法(随机法(RAND)等。)等。 替换逻辑电路就是执行这个功能的。替换逻辑电路就是执行这个功能的。 另外,当执行写主存储器操作时,为保持主存储器和另外,当执行写主存储器操作时,为保持主存储器和高速存储器内容的一致性,对命中和脱靶须分别处理。高速存储器内容的一致性,对命中和脱靶须分别处理。计算机组成原理计算机组成原理5.7 高速缓冲存储器高速缓冲存储器5.7.2 Cache的读写操作的读写操作1. Cache的读操作的读操作 如果如果Cache命中

17、,就直接对命中,就直接对Cache进行读进行读操作,与主存无关;如果操作,与主存无关;如果Cache不命中,则不命中,则仍需访问主存,并把该块信息一次从主存调仍需访问主存,并把该块信息一次从主存调入入Cache内。内。2. Cache的写操作的写操作 如果如果Cache命中,需要进行一定的写处命中,需要进行一定的写处理,处理的方法有:写直达法和写回法,理,处理的方法有:写直达法和写回法,计算机组成原理计算机组成原理Cache更新策略更新策略 为了解决为了解决Cache与主存不一致的问题,与主存不一致的问题,Cache必须必须更新。选择合适的更新策略更新。选择合适的更新策略计算机组成原理计算机组

18、成原理 目的:维护Cache、主存数据的一致性。 主要方式:3 写一次法: 上述两种方法的结合,主要用于多个Cache数据不一致的维护,具体策略可参考体系结构的相关内容。Cache更新策略更新策略计算机组成原理计算机组成原理从CPU发出的写信号送Cache的同时也写入主存。CPUCache主主 存存1、通写法、通写法计算机组成原理计算机组成原理数据一般只写到Cache,当Cache中的数据被再次更新时,将原更新的数据写入主存相应单元,并接受新的数据。CPUCache主主 存存更新更新写入写入2、回写法、回写法 计算机组成原理计算机组成原理3 3、写一次法、写一次法写一次法与回写法的写策略基本相

19、同,写一次法只是在第一次写命中时要同时写入主存。这是因为CPU第一次写Cache命中时,CPU要在总线上启动一个存储器写周期,其他Cache监听到此主存块地址及写信号后,即把他们各自保存的主存块该保存到主存中就拷贝,该作废的就作无效处理,以便维护全部Cache与主存的一致性。然后CPU对Cache的写命中则按照回写法的策略对待,这可以节省CPU的总线周期,有利于超标量流水线的进程,有利于提高系统的运行速度计算机组成原理计算机组成原理5.7 高速缓冲存储器高速缓冲存储器5.7.3 地址映象地址映象地址映象是指某一数据在内存中的地址与在缓冲中的地址映象是指某一数据在内存中的地址与在缓冲中的地址,两

20、者之间的对应关系。地址,两者之间的对应关系。下面介绍三种地址映象的方式。下面介绍三种地址映象的方式。1. 全相联映像全相联映像 地址映象规则:地址映象规则:主存的任意一块可以映象到主存的任意一块可以映象到Cache中的任意一块中的任意一块(1) 主存与缓存分成相同大小的数据块。主存与缓存分成相同大小的数据块。(2) 主存的某一数据块可以装入缓存的任意一块空间主存的某一数据块可以装入缓存的任意一块空间中。中。 计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理 如果如果Cache的块数为的块数为Cb,主存的块数为,主存的块数为Mb,则映象关系,则映象关系共有共有

21、CbMb种。种。目录表存放在相关(联)存储器中,其中包括三部分:数据目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。由于是全相联方式,因此,目录表的容量应当与装入位)。由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。缓存的块数相同。优点:灵活,命中率比较高,优点:灵活,命中率比较高,Cache的块冲突概率最低,的块冲突概率最低,Cache存储空间利用率高。存储空间利用率高。缺点:访问相关存储器时,每次都要与全部内容比较,速度缺点:访问相关存储器时,每次都要与全部内容比

22、较,速度低,成本高,实现苦难,因而应用少。低,成本高,实现苦难,因而应用少。计算机组成原理计算机组成原理例:设访问存储器地址的块号序列为22、26、22、26、16、4、16、18,采用全相联映射方式时,Cache行分配情况计算机组成原理计算机组成原理5.7 高速缓冲存储器高速缓冲存储器2. 直接映像直接映像 地址映象规则:地址映象规则: 主存储器中一块只能映象到主存储器中一块只能映象到Cache的一个特定的块中。的一个特定的块中。若这个位置已有内容,则产生块若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去。冲突,原来的块将无条件地被替换出去。(1) 主存与缓存分成相同大小的数据

23、块。主存与缓存分成相同大小的数据块。(2) 主存容量应是缓存容量的整数倍,将主存空间按主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。块数相等。(3) 主存中某区的一块存入缓存时只能存入缓存中块主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。号相同的位置。 计算机组成原理计算机组成原理某一主存块只能能映射到某一主存块只能能映射到CacheCache的特定行的特定行 i = j mod m i = j mod m 其中:其中: i i:CacheCache的行号;的行号; j j:主存的块号;

24、:主存的块号; m m:CacheCache的总行数的总行数 计算机组成原理计算机组成原理直接映射方式直接映射方式计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理 主存中各区内相同块号的数据块都可以分别调入缓存中主存中各区内相同块号的数据块都可以分别调入缓存中块号相同的地址中,但同时只能有一个区的块存入缓存。由块号相同的地址中,但同时只能有一个区的块存入缓存。由于主、缓存块号相同,因此,目录登记时,只记录调入块的于主、缓存块号相同,因此,目录登记时,只记录调入块的区号即可。主、缓存块号及块内地址两个字段完全相同。目区号即可。主、缓存块号及块内地址两个字段完全

25、相同。目录表存放在高速小容量存储器中,其中包括二部分:数据块录表存放在高速小容量存储器中,其中包括二部分:数据块在主存的区号和有效位。目录表的容量与缓存的块数相同。在主存的区号和有效位。目录表的容量与缓存的块数相同。优点:地址映象方式简单,数据访问时,只需检查区号是否优点:地址映象方式简单,数据访问时,只需检查区号是否相等即可,因而可以得到比较快的访问速度,硬件设备简单。相等即可,因而可以得到比较快的访问速度,硬件设备简单。缺点:替换操作频繁,命中率比较低。缺点:替换操作频繁,命中率比较低。计算机组成原理计算机组成原理5.7 高速缓冲存储器高速缓冲存储器3. 3. 组相联映像方式组相联映像方式

26、 组相联的映象规则:组相联的映象规则:(1) (1) 主存和主存和CacheCache按同样大小划分成块。按同样大小划分成块。(2) (2) 主存和主存和CacheCache按同样大小划分成组。按同样大小划分成组。(3) (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。分成区,主存中每一区的组数与缓存的组数相同。(4) (4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块是

27、各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到地址之间则可以任意存放,即从主存的组到CacheCache的组之间采用的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。直接映象方式;在两个对应的组内部采用全相联映象方式。 组相联映像将组相联映像将CacheCache空间分成大小相同的组,让主存中的一空间分成大小相同的组,让主存中的一块直接映像装入块直接映像装入CacheCache中对应组的任何一块位置上,即组间采取中对应组的任何一块位置上,即组间采取直接映像,而组内采取全相联映像。直接映像,而组内采取全相联映像。计算机组成原理计算机组成

28、原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理例例1 1:设:设CacheCache有有8 8个行,分成个行,分成2 2个组,设访问存储器地址的块号序个组,设访问存储器地址的块号序列为列为2222、2626、2222、2626、1616、4 4、1616、1818,采用组相联映射方式时,采用组相联映射方式时,CacheCache行分配情况行分配情况 计算机组成原理计算机组成原理 主存地址与缓存地址的转换有两部分,组地址是按直主存地址与缓存地址的转换有两部分,组地址是按直接映象方式,按地址进行访问,而块地址是采用全相联接映象方式,按地址进行访问,而块地址是采用全相联方式,按内容访问

29、。组相联的地址转换部件也是采用相方式,按内容访问。组相联的地址转换部件也是采用相关存储器实现。关存储器实现。优点:块的冲突概率比较低,块的利用率大幅度提高,优点:块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。块失效率明显降低。缺点:实现难度和造价要比直接映象方式高。缺点:实现难度和造价要比直接映象方式高。计算机组成原理计算机组成原理比较比较:计算机组成原理计算机组成原理 CPU在任一时刻从高速缓冲中直接可靠获取数在任一时刻从高速缓冲中直接可靠获取数据的几率。据的几率。 命中率越高命中率越高,直接获取数据的可靠性就越大。直接获取数据的可靠性就越大。 高速缓冲空间与主存空间在一定范围

30、内保持适当高速缓冲空间与主存空间在一定范围内保持适当比例的映射关系比例的映射关系, 可以使高速缓冲的命中率相当高。可以使高速缓冲的命中率相当高。 一般情况一般情况, 高速缓冲与内存的空间比为高速缓冲与内存的空间比为4:1000 即即128kB 高速缓冲可映射高速缓冲可映射32MB内存内存 256kB 高速缓冲可映射高速缓冲可映射64MB内存内存 在这种情况下,命中率都在在这种情况下,命中率都在90以上以上命中率命中率:计算机组成原理计算机组成原理1 1随机算法随机算法2 2近期最少使用(近期最少使用(LRULRU)算法)算法3 3先进先出(先进先出(FIFOFIFO)算法)算法 三种替换策略(

31、算法)三种替换策略(算法)计算机组成原理计算机组成原理PC机的机的Cache技术的实现技术的实现1.单单/ /多级多级CacheCache刚开始Cache是单级的;后来发展后大多使用多级Cache(增加Cache的级数,将统一的Cache变成分开的Cache)80386以前的Cache都是外部的;L1:容量几十KB;速度与CPU相当;L2:容量256KB2MB;速度与主板相当;从PentiumPro,II开始,L2和CPU封装在一起,速度是CPU的1/2,2/5,1/3;目前,大部分L1/L2和CPU封装在一个芯片内,速度都可达核心速度。高端的如Itanium,将24MB的L3都集成到片内,有

32、利于CPU效率的提高。多级Cache的访问:计算机组成原理计算机组成原理2.统一统一Cache/Cache/分开分开CacheCache 统一统一CacheCache: 分开分开CacheCache: 8048680486以前的以前的CPUCPU都是一级都是一级CacheCache;从;从PentiumPentium开始,由于开始,由于CPUCPU采用了流水线控制技术,才将数据与指令采用了流水线控制技术,才将数据与指令CacheCache分开,以满足分开,以满足指令预取与执行并行的需要;所以现在大多数指令预取与执行并行的需要;所以现在大多数CPUCPU的的L1L1被分为被分为指令与数据指令与数

33、据CacheCache,成为典型的哈弗结构,成为典型的哈弗结构. . 典型一级(典型一级(L1)缓存系统的)缓存系统的80的内存申请都发生在的内存申请都发生在CPU内部。内部。 只有只有20的内存申请是与外部内存打交道。的内存申请是与外部内存打交道。 而这而这20的外部内存申请中的的外部内存申请中的80又与二级(又与二级(L2)缓存打)缓存打交道。交道。 因此,只有因此,只有4的内存申请定向到主存中。的内存申请定向到主存中。计算机组成原理计算机组成原理CPU高速缓冲的重要性高速缓冲的重要性 PC系统的发展趋势之一系统的发展趋势之一: CPU主频越做越高主频越做越高, 系统系统架构越做越先进架构

34、越做越先进, 而主存的结构和存取时间改进较慢。而主存的结构和存取时间改进较慢。因此在因此在PC系统中高速缓存越做越大。高速缓存已是评系统中高速缓存越做越大。高速缓存已是评价和选购价和选购PC系统的一个重要指标。系统的一个重要指标。 新一代的微处理器新一代的微处理器, 已实现设计了已实现设计了L1高速缓存高速缓存, L2 高速缓存和在主板上的高速缓存和在主板上的L3高速缓存。高速缓存。 比如比如:在在Intel Pentium III中中, L1高速缓存为高速缓存为 32 KB, L2可从可从512 KB到到1 MB。而。而AMD K6-III的的L1为为64KB,L2可达可达256KB, 外部

35、外部L3 高速缓存可达高速缓存可达1 MB。计算机组成原理计算机组成原理第第5章章5.1 存储系统的组成存储系统的组成5.2 主存储器的组织主存储器的组织5.3 半导体随机存储器和只读存储器半导体随机存储器和只读存储器5.4 主存储器的连接与控制主存储器的连接与控制5.5 提高提高主存读写速度的主存读写速度的技术技术5.6 多体交叉存储技术多体交叉存储技术5.7 高速缓冲存储器高速缓冲存储器5.8 虚拟存储器虚拟存储器计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器5.8.1 虚拟存储器的基本概念虚拟存储器的基本概念 1. 问题的提出问题的提出 程序大于总内存程序大于总内存 多道程序要

36、运行内存只能容纳部分作业多道程序要运行内存只能容纳部分作业 要解决上述问题必须改变常规存储器管理方式中要解决上述问题必须改变常规存储器管理方式中作业作业一次性装入一次性装入和运行时的和运行时的驻留性驻留性。 OS把程序当前使用的部分代码和数据保留在内存把程序当前使用的部分代码和数据保留在内存中中, 而把其它部分存在磁盘上而把其它部分存在磁盘上, 需要时在内存和磁盘需要时在内存和磁盘之间动态对换之间动态对换, 以解决上述问题以解决上述问题; 这就是虚拟存储器这就是虚拟存储器的基本思想。的基本思想。 计算机组成原理计算机组成原理2. 程序局部性程序局部性 在一段时间内一个程序的执行往往呈现出高度的

37、在一段时间内一个程序的执行往往呈现出高度的局部性局部性, 顺序执行的多顺序执行的多, 过程调用过程调用, 循环结构循环结构, 对数组操对数组操作等等。表现为作等等。表现为: 时间局部性:时间局部性: 一条指令被执行了,则在不久的将来它可能再被一条指令被执行了,则在不久的将来它可能再被执行。执行。空间局部性:空间局部性: 若某一存储单元被使用,则在一定时间内若某一存储单元被使用,则在一定时间内, 与该与该存储单元附近的单元可能被使用。存储单元附近的单元可能被使用。计算机组成原理计算机组成原理3. 虚拟存储技术虚拟存储技术 以以CPU时间和外存空间换取昂贵内存空间时间和外存空间换取昂贵内存空间,

38、这这是操作系统中的资源转换技术。是操作系统中的资源转换技术。实现思想实现思想: 当进程运行时当进程运行时, 先将一部分程序装入内先将一部分程序装入内存存, 另一部分暂时留在外存另一部分暂时留在外存, 当要执行的指令不在当要执行的指令不在内存时内存时, 由系统自动将它们从外存调换到内存。即由系统自动将它们从外存调换到内存。即具有请求调入和置换功能具有请求调入和置换功能。虚拟存储器定义虚拟存储器定义: 具有请求调入和置换功能具有请求调入和置换功能,对内对内存容量扩充存容量扩充, 得到一个逻辑容量等于内存与外存容得到一个逻辑容量等于内存与外存容量之和的量之和的“虚内存虚内存”。计算机组成原理计算机组

39、成原理 页页 号号 P P 页页 内内 位位 移移 量量 W W31 11 04. 虚拟地址结构虚拟地址结构页的大小页的大小= =?页的多少页的多少= =?虚存的大小虚存的大小= =?计算机组成原理计算机组成原理CPUMMU内存内存磁盘磁盘控制器控制器总线总线CPU把虚地址送给把虚地址送给MMU MMU把物理地址送给存储器把物理地址送给存储器计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器 虚拟存储器由主存储器和联机工作的辅虚拟存储器由主存储器和联机工作的辅助存储器(通常为磁盘存储器)共同组成,助存储器(通常为磁盘存储器)共同组成,这两个存储器在硬件和系统软件的共同管理这两个存储器在硬

40、件和系统软件的共同管理下工作,对于应用程序员,可以把它们看作下工作,对于应用程序员,可以把它们看作是一个单一的存储器。是一个单一的存储器。 虚拟存储器将主存或辅存的地址空间统虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的存储空间。在这个一编址,形成一个庞大的存储空间。在这个大空间里,用户可以自由编程,完全不必考大空间里,用户可以自由编程,完全不必考虑程序在主存是否装得下以及这些程序将来虑程序在主存是否装得下以及这些程序将来在主存中的实际存放位置。在主存中的实际存放位置。计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器 在实际的物理存储层次上,所编程序和数据在操在实际的物理存储

41、层次上,所编程序和数据在操作系统管理下,先送入磁盘,然后操作系统将当前运作系统管理下,先送入磁盘,然后操作系统将当前运行所需要的部分调入主存,供行所需要的部分调入主存,供CPU使用。使用。 程序运行时,程序运行时,CPU以虚地址来访问主存,由辅助以虚地址来访问主存,由辅助硬件找出虚地址和实地址之间的对应关系,并判断这硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址指示的存储单元内容是否已装入主存。如果个虚地址指示的存储单元内容是否已装入主存。如果已在主存中,则通过地址变换,已在主存中,则通过地址变换,CPU可直接访问主存可直接访问主存的实际单元;如果不在主存中,则把包含这个字的一的实际单

42、元;如果不在主存中,则把包含这个字的一页或一个程序段调入主存后再由页或一个程序段调入主存后再由CPU访问。如果主存访问。如果主存已满,则由替换算法从主存中将暂不运行的一页或一已满,则由替换算法从主存中将暂不运行的一页或一段调回辅存,再从辅存调入新的一页或一段到主存。段调回辅存,再从辅存调入新的一页或一段到主存。计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器5.8.2 页式虚拟存储器页式虚拟存储器 以页为基本单位的虚拟存储器叫页式以页为基本单位的虚拟存储器叫页式虚拟存储器。各类计算机页面大小不等,虚拟存储器。各类计算机页面大小不等,一般为一般为512B到几到几KB。主存空间和虚存空间。

43、主存空间和虚存空间都划分成若干个大小相等的页。主存即实都划分成若干个大小相等的页。主存即实存的页称为实页,虚存的页称为虚页。存的页称为实页,虚存的页称为虚页。 页式虚拟存储器的每页长度是固定的,页式虚拟存储器的每页长度是固定的,页表的建立很方便,新页的调入也容易实页表的建立很方便,新页的调入也容易实现。但是由于程序不可能正好是页面的整现。但是由于程序不可能正好是页面的整倍数,最后一页的零头将无法利用而造成倍数,最后一页的零头将无法利用而造成浪费。同时,页不是逻辑上独立的实体,浪费。同时,页不是逻辑上独立的实体,使程序的处理、保护和共享都比较麻烦。使程序的处理、保护和共享都比较麻烦。计算机组成原

44、理计算机组成原理计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器5.8.3 段段式虚拟存储器式虚拟存储器 段式虚拟存储器中的段是按照程序的段式虚拟存储器中的段是按照程序的逻辑结构划分的,各个段的长度因程序而逻辑结构划分的,各个段的长度因程序而异。异。 由于段的分界与程序的自然分界相对由于段的分界与程序的自然分界相对应,所以具有逻辑独立性,易于程序的编应,所以具有逻辑独立性,易于程序的编译、管理、修改和保护,也便于多道程序译、管理、修改和保护,也便于多道程序共享。但是,因为段的长度参差不齐,起共享。但是,因为段的长度参差不齐,起点和终点不定,给主存空间分配带来了麻点和终点不定,给主存空间

45、分配带来了麻烦;容易在段间留下不能利用的零头,造烦;容易在段间留下不能利用的零头,造成浪费。成浪费。计算机组成原理计算机组成原理计算机组成原理计算机组成原理5.8 虚拟存储器虚拟存储器5.8.4 段页段页式虚拟存储器式虚拟存储器 将程序按其逻辑结构分段,每段再划将程序按其逻辑结构分段,每段再划分为若干大小相等的页;主存空间也划分分为若干大小相等的页;主存空间也划分为若干同样大小的页。虚存和实存之间以为若干同样大小的页。虚存和实存之间以页为基本传送单位,每个程序对应一个段页为基本传送单位,每个程序对应一个段表,每段对应一个页表。表,每段对应一个页表。CPU访问时,虚访问时,虚地址包含段号、段内页

46、号、页内地址地址包含段号、段内页号、页内地址3部分。部分。首先将段表起始地址与段号合成,得到段首先将段表起始地址与段号合成,得到段表地址;然后从段表中取出该段的页表起表地址;然后从段表中取出该段的页表起始地址,与段内页号合成,得到页表地址;始地址,与段内页号合成,得到页表地址;最后从页表中取出实页号,与页内地址拼最后从页表中取出实页号,与页内地址拼接形成主存实地址。段页式存储器综合了接形成主存实地址。段页式存储器综合了前两种结构的优点,但要经过两级查表才前两种结构的优点,但要经过两级查表才能完成地址转换,费时要多些。能完成地址转换,费时要多些。计算机组成原理计算机组成原理虚拟存储器的特征虚拟存

47、储器的特征离散性离散性: 是实现虚拟存储器的基础是实现虚拟存储器的基础多次性多次性: 多次将部分调入内存多次将部分调入内存, 每当运行到不在每当运行到不在内存那部分程序时内存那部分程序时,再将它调入再将它调入交换性交换性: 暂时不执行允许换出暂时不执行允许换出, 需要时再换入需要时再换入虚拟性虚拟性: 逻辑逻辑(虚虚)上扩充了内存物理上扩充了内存物理(实实)容量容量 虚拟性以多次性和交换性为基础虚拟性以多次性和交换性为基础,多次性和多次性和交换性又必须建立在离散分配的基础之上。交换性又必须建立在离散分配的基础之上。计算机组成原理计算机组成原理虚拟存储器的实现方式虚拟存储器的实现方式请求分页方式

48、请求分页方式分段请求方式分段请求方式硬件支持:硬件支持:请求分页请求分页(段段)的页的页(段段)表机构表机构缺页缺页(段段)中断机构中断机构请求分页请求分页(段段)的地址变换机构的地址变换机构计算机组成原理计算机组成原理请求分页式存储管理请求分页式存储管理 在进程开始运行之前在进程开始运行之前, 不是装入全部页面不是装入全部页面,而是装入而是装入一个或零个页面一个或零个页面, 之后根据进程运行的需要之后根据进程运行的需要, 动态装入动态装入其它页面其它页面; 当内存空间已满当内存空间已满,而又需要装入新的页面时而又需要装入新的页面时, 则根据某种算法淘汰某个页面则根据某种算法淘汰某个页面, 以

49、便装入新页面。以便装入新页面。 硬件支持及工作过程硬件支持及工作过程1.页表机制页表机制状态位状态位P:表示该页是在内存还是在外存:表示该页是在内存还是在外存访问位:记录该页在一段时间内被访问的次数访问位:记录该页在一段时间内被访问的次数修改位:查看此页是否在内存中被修改过修改位:查看此页是否在内存中被修改过计算机组成原理计算机组成原理计算机组成原理计算机组成原理 在地址映射过程中在地址映射过程中, 在页表中发现所要访问在页表中发现所要访问的页不在内存的页不在内存, 则产生缺页中断。操作系统接到则产生缺页中断。操作系统接到此中断信号后此中断信号后, 就调出缺页中断处理程序就调出缺页中断处理程序

50、,根据页根据页表中给出的外存地址表中给出的外存地址, 将该页调入内存将该页调入内存,使进程继使进程继续运行下去。续运行下去。 如果内存中有空闲块如果内存中有空闲块, 则分配一页将新调入则分配一页将新调入页装入内存页装入内存, 并修改页表中相应页表项目的驻留并修改页表中相应页表项目的驻留位及相应的内存块号。若此时内存中没有空闲块位及相应的内存块号。若此时内存中没有空闲块, 则要淘汰某页则要淘汰某页, 若该页在内存期间被修改过若该页在内存期间被修改过, 则要则要将其写回外存。将其写回外存。2.缺页中断机构缺页中断机构计算机组成原理计算机组成原理计算机组成原理计算机组成原理影响缺页次数的因素影响缺页

51、次数的因素(1) 分配给进程的物理页面数分配给进程的物理页面数(2) 页面本身的大小页面本身的大小(3) 程序的编制方法程序的编制方法(4) 页面淘汰算法页面淘汰算法计算机组成原理计算机组成原理 页面分配与置换页面分配与置换请求调页中操作系统提供的支持请求调页中操作系统提供的支持 请求调页时请求调页时, 把所需的页从外存调入内存把所需的页从外存调入内存 置换时置换时, 将内存的某些页调至外存将内存的某些页调至外存问题:问题:进程正常运行所需的最少物理块是多少?进程正常运行所需的最少物理块是多少?每个进程分配的物理块数是固定的吗?每个进程分配的物理块数是固定的吗?每个进程分配的物理块数依据是什么

52、?每个进程分配的物理块数依据是什么?计算机组成原理计算机组成原理1. 最小物理块数的确定最小物理块数的确定 最小物理块数与硬件结构、指令格式、寻址方式最小物理块数与硬件结构、指令格式、寻址方式有关。有关。 直接寻址方式最少块数为直接寻址方式最少块数为2 间接寻址方式最少块数为间接寻址方式最少块数为3 功能较强的机器最少块数为功能较强的机器最少块数为62. 页面分配和置换策略页面分配和置换策略(固定分配、可变分配固定分配、可变分配) 1) 固定分配局部置换固定分配局部置换 系统中驻留的进程数与分配给进程的页数是什系统中驻留的进程数与分配给进程的页数是什么关系?(正比?反比?)么关系?(正比?反比

53、?) 块数太多会出现什么问题?块数太多会出现什么问题? 块数太少会出现什么问题?块数太少会出现什么问题?计算机组成原理计算机组成原理2) 可变分配全局置换可变分配全局置换 空闲物理块由谁管理?空闲物理块由谁管理?(OS?进程?)进程?) 缺页中断时从何处获得空闲页?缺页中断时从何处获得空闲页? 调入调出什么时候发生(空闲页用完还是给进程分调入调出什么时候发生(空闲页用完还是给进程分配的页用完?)配的页用完?)3) 可变分配局部置换可变分配局部置换 为每个进程所分配的物理块数相对固定为每个进程所分配的物理块数相对固定 从每个进程所分配的页面中进行换入换出。从每个进程所分配的页面中进行换入换出。

54、从全局的角度动态调整每个进程所分配的页面从全局的角度动态调整每个进程所分配的页面计算机组成原理计算机组成原理3. 分配算法分配算法(固定分配策略)固定分配策略) 平均分配算法平均分配算法 驻留内存的进程平均分配驻留内存的进程平均分配, 貌似公平貌似公平, 实际实际不公平不公平, 长进程缺页率高长进程缺页率高 按比例分配算法按比例分配算法 按驻留内存的进程的大小比例分配按驻留内存的进程的大小比例分配, 较公平较公平 考虑优先权的分配算法考虑优先权的分配算法 整个内存分为两部分整个内存分为两部分, 一部分按比例分配一部分按比例分配, 另一部分按优先权分配另一部分按优先权分配, 照顾到重要紧迫的照顾

55、到重要紧迫的进程尽快完成进程尽快完成计算机组成原理计算机组成原理 页面调入策略页面调入策略什么时候调入?从何处调入?怎么调入?什么时候调入?从何处调入?怎么调入?1.什么时候调入什么时候调入 预调入策略预调入策略: 一次调入若干相邻页一次调入若干相邻页(预计即将运行预计即将运行的页的页)比单页调入效率高比单页调入效率高, 命中率约命中率约5050% %。 请求调页策略请求调页策略: 缺页时提出请求缺页时提出请求, OS将所需一页调将所需一页调入内存入内存, 易于实现易于实现, I/O启动频率高系统开销大。启动频率高系统开销大。2. 从何处调入页面从何处调入页面-外存分为文件区和对换区外存分为文

56、件区和对换区(I/O快快)系统有足够的对换区时系统有足够的对换区时, 运行前全部从文件区调入运行前全部从文件区调入对换区对换区, 运行中全部从对换区调入所需页。运行中全部从对换区调入所需页。系统缺少足够的对换区时系统缺少足够的对换区时, 不会被修改的页从文件不会被修改的页从文件区调入区调入, 会被修改的页从对换区调入换出。会被修改的页从对换区调入换出。UNIX:未运行过的页从文件区调入未运行过的页从文件区调入, 换出到对换区换出到对换区计算机组成原理计算机组成原理3. 页面调入过程页面调入过程 当程序所要访问的页不在内存时当程序所要访问的页不在内存时, 向向CPU发出缺页中断发出缺页中断, 中

57、断处理程序首先保留中断处理程序首先保留CPU环环境境, 再通过查找页表得到该页在外存的物理块再通过查找页表得到该页在外存的物理块号。号。 此时如果内存未满此时如果内存未满,则将该页调入内存并则将该页调入内存并修改页表修改页表,若内存已满若内存已满,则从内存中选出一页准则从内存中选出一页准备换出备换出, 如果该页已被修改则还需将它写回外如果该页已被修改则还需将它写回外存存, 然后再把所缺页调入内存并修改相应的页然后再把所缺页调入内存并修改相应的页表项表项, 置器存储位为置器存储位为1并将此页表项写入快表。并将此页表项写入快表。整个调入过程对用户是透明的。整个调入过程对用户是透明的。计算机组成原理

58、计算机组成原理好的页面置换算法应具有低的页面更换频率好的页面置换算法应具有低的页面更换频率 最佳置换算法最佳置换算法 先进先出算法先进先出算法 最近最久未使用最近最久未使用LRU 算法算法 CLOCK算法算法页面缓冲算法页面缓冲算法页面置换算法页面置换算法计算机组成原理计算机组成原理1. 最佳置换算法最佳置换算法淘汰永不使用或最长时间内不再被访问的页淘汰永不使用或最长时间内不再被访问的页 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 2 7 0 0 0 0 4 0 0 0 1 1 3 3 3 1 1 无法实现无法实现, 只能用它做评

59、价标准。只能用它做评价标准。2. 先进先出置换算法先进先出置换算法 简单易行简单易行 没有考虑访问频度的差别没有考虑访问频度的差别, 不能保证经常访问不能保证经常访问的页不被淘汰。的页不被淘汰。计算机组成原理计算机组成原理3. 最近最久未使用最近最久未使用LRU 算法算法淘汰在最近最久未使用的页面。淘汰在最近最久未使用的页面。 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 4 4 4 0 1 1 1 0 0 0 0 0 0 3 3 3 0 0 1 1 3 3 2 2 2 2 2 7如何确定哪一页是最近最久未使用的页?如何确定哪一页是最近最久

60、未使用的页?1)移位寄存器)移位寄存器 为每个在内存的页面配置一个移位寄存器为每个在内存的页面配置一个移位寄存器,当访问当访问某页时将相应的寄存器最高位置某页时将相应的寄存器最高位置1, 每隔一定时间将寄每隔一定时间将寄存器右移存器右移1位位,将寄存器存的数看作一个整数将寄存器存的数看作一个整数,显然最小显然最小值的寄存器对应的页就是最近最久未使用的页。值的寄存器对应的页就是最近最久未使用的页。计算机组成原理计算机组成原理2)特殊栈)特殊栈 用特殊栈保存当前在内存的各页面号用特殊栈保存当前在内存的各页面号, 栈的大小栈的大小等于分配的物理块数等于分配的物理块数, 当前访问页号始终保持在栈顶当前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论