第7章存储糸统
第7章 存储系统
71计算机存储系统的层次结构 ■计算机系统对存储器的要求是:容量大、速度 快、成本低,但由于各类存储器各具其特点, 即半导体存储器速度快、成本较高;磁表面存 储器容量大、成本低但速度慢,无法与CPU高 速处理信息的能力相匹配。因此,在计算机系 统中,通常采用三级存储器结构,即使用高速 缓冲存储器、主存储器和外存储器组成的结构 CPU能直接访问的存储器称为内存储器,它包 括高速缓冲存储器和主存储器;CPU不能直接 访问外存储器,外存储器的信息必须调入内存 储器后才能为CPU进行处理
7.1 计算机存储系统的层次结构 计算机系统对存储器的要求是:容量大、速度 快、成本低,但由于各类存储器各具其特点, 即半导体存储器速度快、成本较高;磁表面存 储器容量大、成本低但速度慢,无法与CPU高 速处理信息的能力相匹配。因此,在计算机系 统中,通常采用三级存储器结构,即使用高速 缓冲存储器、主存储器和外存储器组成的结构。 CPU能直接访问的存储器称为内存储器,它包 括高速缓冲存储器和主存储器; CPU不能直接 访问外存储器,外存储器的信息必须调入内存 储器后才能为CPU进行处理
Cache-主存一辅存三级存储层次如图所 示。其中 Cache容量最小,辅存容量最大, 各层次中存放的内容都可以在下一层次 中找到。这种多层次结构已成为现代计 算机的典型存储结构
Cache-主存-辅存三级存储层次如图 所 示。其中Cache容量最小,辅存容量最大, 各层次中存放的内容都可以在下一层次 中找到。这种多层次结构已成为现代计 算机的典型存储结构
Cache CPU 高速缓冲 寄存器组 存储器 主存 外设 主机
C a c h e C P U 高速缓冲 寄存器组 存储器 主 外 存 设 主 机
7.2高速缓冲存储器 ■7.2.1 cache存储器工作原理 掌握要点: ■1.程序访问的局部性 ■在一个较短的时间间隔内,CPU对局部范围的 存储器地址频繁访问,而对此地址范围之外的 地址访问很少,这种现象称程序访问的局部性 2.设立 cache存储器的理论依据 ■它是为了提高存储系统的存取速度而设立的, 其理论依据是程序访问的局部性原理 ■3.什么是 cache存储器 ■ cache存储器是位于CPU和主存之间的一个容 量相对较小的存储器,它的工作速度倍于主存, 全部功能由硬件实现,并且对程序员是透明的
7.2 高速缓冲存储器 7.2.1 cache 存储器工作原理 掌握要点: 1.程序访问的局部性 在一个较短的时间间隔内,CPU对局部范围的 存储器地址频繁访问,而对此地址范围之外的 地址访问很少,这种现象称程序访问的局部性。 2.设立cache 存储器的理论依据 它是为了提高存储系统的存取速度而设立的, 其理论依据是程序访问的局部性原理。 3.什么是cache 存储器 cache 存储器是位于CPU和主存之间的一个容 量相对较小的存储器,它的工作速度倍于主存, 全部功能由硬件实现,并且对程序员是透明的
4. cache存储器的基本结构 ■设主存有2n个单元,地址码为n位,将主 存分块( block),每块有2b个字节; Cache 也由同样大小的块组成,由于其容量小, 所以块的数目小得多,主存中只有一小 部分块的内容可存放在 Cache中 ■设n=m+b,则可得出:主存的块数M= 2m,块内字节数=2b。 Cache地址码为(c +b)位, Cache的块数为2°,块内字节数 与主存相同,如图429所示
4.cache 存储器的基本结构 设主存有2n个单元,地址码为n位,将主 存分块(block),每块有2b 个字节;Cache 也由同样大小的块组成,由于其容量小, 所以块的数目小得多,主存中只有一小 部分块的内容可存放在Cache中。 设n=m+b,则可得出:主存的块数M= 2m,块内字节数=2b。Cache地址码为(c +b)位,Cache的块数为2c,块内字节数 与主存相同,如图4.29所示
主存的地址 主存块号 块标记 Cache块号块内地址 b位 c位1b位 Cache的地址格式 图4.29 Cache和主存的地址的地址格式
主存的地址 主存块号 块标记 Cache 块号 块内地址 m 位 b 位 c 位 b 位 Cache 的地址格式 图4. 29 Cache和主存的地址的地址格式
当CPU发出读请求时,将主存地址的m-c位与 Cache某块的标记相比较,根据其比较结果是 否相等而区分出两种情况:当比较结果相等时, 说明需要的数已在 Cache中,那么直接访问 Cache就行了,在CPU与 Cache之间,通常一次 传送一个字块;当比较结果不相等时,说明需 要的数据尚未调入 Cache,那么就要把该数据 所在的整个字块从主存一次调进来。前一种情 况称为访问 Cache命中,后一种情况称为访问 Cache不命中 ■5.块长 ■块的大小称为“块长”。块长一般取一个主存周 期所能调出的信息长度
当CPU发出读请求时,将主存地址的 m - c位与 Cache某块的标记相比较,根据其比较结果是 否相等而区分出两种情况:当比较结果相等时, 说明需要的数已在Cache中,那么直接访问 Cache就行了,在CPU 与Cache之间,通常一次 传送一个字块;当比较结果不相等时,说明需 要的数据尚未调入Cache,那么就要把该数据 所在的整个字块从主存一次调进来。前一种情 况称为访问Cache命中,后一种情况称为访问 Cache不命中。 5.块长 块的大小称为 “块长 ”。块长一般取一个主存周 期所能调出的信息长度
6.如何保持 Cache与主存的一致性 ■ Cache存储器中保存的字块是主存中相应字块 的一个副本。如果程序执行过程中要对该字 块的某个单元进行写操作,就会遇到如何保持 Cache与主存的一致性问题。通常有两种写入 方式: ■(1)标志交换(ag-swap)方式或“写回法”。 ■这种方式是暂时只向 Cache存储器写入,并用 标志加以注明,直到经过修改的字块被从 Cache中替换出来时才一次写入主存。这种方 式写操作速度快,但因在此以前,主存中的字 块未经随时修改而可能失效
6.如何保持Cache与主存的一致性 Cache存储器中保存的字块是主存中相应字块 的一个副本。如果程序执行过程中要对 该字 块的某个单元进行写操作,就会遇到如何保持 Cache与主存的一致性问题。通常有两种写入 方式: (1)标志交换(flag-swap)方式或“写回法”。 这种方式是暂时只向Cache存储器写入,并用 标志加以注明,直到经过修改的字块被从 Cache中替换出来时才一次写入主存。这种方 式写操作速度快,但因在此以前,主存中的字 块未经随时修改而可能失效
(2)写直达法 ■这种方式是每次写入 Cache存储器时也同 时写入主存,使 Cache和主存保持一致 这种方式实现简单,且能随时保持主存 数据的正确性。但是,有可能要增加多 次不必要的向主存的写入。假如向 Cache 存储器某一单元写入多少次,也要向主 存相应单元写入多少次。 ■当被修改的单元根本就不在 Cache存储 器时,写操作直接对主存进行,而不写 入 Cache存储器
(2)写直达法 这种方式是每次写入Cache存储器时也同 时写入主存,使Cache和主存保持一致。 这种方式实现简单,且能随时保持主存 数据的正确性。但是,有可能要增加多 次不必要的向主存的写入。假如向Cache 存储器某一单元写入多少次,也要向主 存相应单元写入多少次。 当被修改的单元根本就不在Cache存储 器时,写操作直接对主存进行,而不写 入Cache存储器