-
什么是存储系统?
存储系统大致可分为主存储器,辅助存储器,高速缓冲存储器三层,其中高速缓冲存储器用来改善主存储器与cpu的速度匹配问题,辅助存储器则用于扩大存储空间。课本上从存储系统的层次结构出发,对每一层次的概念、结构、工作机制等做了详细解释,回答了存储系统是什么的问题。 -
存储系统的各层次之间是如何协作的呢?
这篇文章通过贯穿整个存储系统的访问流程,展现出各个层次之间的协作关系。下图为存储系统的访问流程图,其访问过程可以分为5个部分:①TLB的访问过程,②Page的访问过程,③页面的分配和置换,④cache的访问过程,⑤主存储器的访问过程。
![](https://i-blog.csdnimg.cn/blog_migrate/034d9aec444b2d267aa3b324be59cd1b.jpeg)
TLB的访问过程
在存储系统中若要从主存取得数据,必须先访问页表;为了实现对页表的快速访问,需要增设快表。TLB与page之间存在全相联映射、直接映射、组想联映射三种地址映射方式,因此TLB的访问分别存在以下三种情况。
- 全相连映射
![](https://i-blog.csdnimg.cn/blog_migrate/35d48addf38ab5078651374a132551d3.jpeg)
- 直接映射
![](https://i-blog.csdnimg.cn/blog_migrate/cae6f0e7a8e5e5deb9ec726872009456.jpeg)
- 组相连映射
![](https://i-blog.csdnimg.cn/blog_migrate/97376fc699f45da6bf19b3317da33d3d.jpeg)
Page的访问过程
如果TLB的访问未命中,则需要访问主存中的页表。为了避免连续的页表本身占用大量主存空间,存储系统通常采用分级页表,这里以二级页表的访问过程举例。
![](https://i-blog.csdnimg.cn/blog_migrate/7de619fa2e24b2989cfbcfa91aed815b.jpeg)
页面分配和置换
若page未命中,说明所需页面未调入主存,需要执行调页策略。对于页面的分配和置换,现代存储系统通常采用三种策略:固定分配局部置换,可变分配全局置换,可变分配局部置换。主存与外存之间的协作关系可以反映在分配策略上。
![](https://i-blog.csdnimg.cn/blog_migrate/c9cdee2a0450e81007bf6105cf744a97.jpeg)
cache的访问过程
虚拟地址经过地址变换可以得到相应的物理地址;物理地址经过地址映射可以转化为cache地址。cache与主存之间存在全相联映射、直接映射、组想联映射三种地址映射方式,因此cache的访问分别存在以下三种情况。
- 全相连映射
![](https://i-blog.csdnimg.cn/blog_migrate/c741c4afae282d8112ce830c1c60e246.jpeg)
- 直接映射
![](https://i-blog.csdnimg.cn/blog_migrate/3aefe509fac7bcda6b0cdb5d8b4517f7.jpeg)
- 组相连映射
![](https://i-blog.csdnimg.cn/blog_migrate/b39c86c8a53416b957c3ca7b629f0e7f.jpeg)
主存储器的访问过程
如果cache访问未命中,则需要访问主存。而在访问主存的过程中cpu的传输周期比存储器的存储周期小,为了提高访问速度,存储系统通常采用多体交叉存储技术。多体交叉存储器由多体模块组成,每个模块都可由DRAM芯片经过扩容而成。因此主存储器的访问过程可以分为三个层面:多体交叉存储器的访问过程、主存模块的访问过程、DRAM芯片的访问过程。
- 低位交叉存储器的访问过程
![](https://i-blog.csdnimg.cn/blog_migrate/ddf0a5038f636933c615afb396595625.jpeg)
- 主存模块和DRAM芯片的访问过程
![](https://i-blog.csdnimg.cn/blog_migrate/694f53296828287766fb46aaf39aae6a.jpeg)