01计算机组成原理与体系结构
4-层次化存储结构
2021-07-21 2539 2
简介 了解层次化存储,各个层次的存取速度。
1. 层次化存储结构
寄存器存在于CPU中,属于存储体系中最快的存储结构。
cache一般为多少K大的有多少M字节的。例如mac book pro 中的 一级缓存128kb二级缓存1MB三级缓存6MB。
cache不是必须的, 引入cache是一种性价比方案,有了cache,提升了十倍甚至上百倍的性能(局部性原理),cache是存储主存的一部分内容, cache是按内容存取的,cache中的内容来自主存,不同内容存在不同区域,速度和效率高于按地址存存取方式,这种存储器叫相联存储器。
层次化存储,依据局部性原理:
1. 基于时间的局部性原理, 执行完的指令可能在很短时间后再次执行。比如循环体中的语句,放入到cache中,加快速度。 内存和外存也有类似的情况
2. 空间局部性。 如访问数组时,访问第一个空间,很快就会访问接下来的空间
2. Catch
寄存器是否作为存储器看待?
存在于CPU中,有时候没有把寄存器当做顶级的存储器看待,寄存器一般集成在CPU中,所以一般不将寄存器作为存储器对待。
Cache的功能
提高CPU数据输入输出的速率,突破冯诺依曼瓶颈, 即CPU与存储系统间数据传送带宽的限制。
在计算机的存储系统体系中, Cache是访问速度最快的层次(这里不讨论寄存器,因为寄存器是存在于CPU中)
使用cache改善系统性能的依据是程序的局部性原理
什么是局部性原理?
时间局部性:
指程序中的某条指令一旦执行,不久以后该指令可能再次执行,比如程序中存在着循环。
某一个时段集中访问某一条指令(某条指令执行后不久再次执行)或者某一时段集中读取某些数据
空间局部性:
指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围內,其典型情况是程序顺序执行。
主要体现在访问数组的时候, 访问数组a[n]的时候,访问了a[0], 立即访问a[1], 称为空间局部性
比如数据库访问表的时候, Oracle是按block读取数据的,DB2是按page读取数据,一次读取的是多条数据,那么这条数据附近的数据再次读取的时候,就会提高速度。
工作集理论:
工作集是进程运行时被频繁访问的页面的集合, 经常访问的内容集合调入cache中,短时间内不会被替换出cache,以提高效率
Catch命中率计算
如果以h代表对Cache的访问命中率, t1表示Cache的存期的周期时间,t2表示主存储器周期时间, 以读操作为例, 使用“cache+主存储器”的系统平均周期时间t3,则:
t3 = h * t1 + (1-h) * t2 (1-h又称为失效率, 未命中率)
假设cache的命中率为95%, t1为 1ns, t2为1ms=1000ns, 100次访问“Cache+主存”,95次访问了cache(命中率为95%), 5次访问了主存(失效率未5%), 则一次访问 “Cache+主存” 的平均时间为 ( 95*1ns + 5*1000ns ) / 100
则使用catch+主存储器的系统平均周期时间 t3 = 95% * 1ns + 5% * 1000ns = 50.95ns
3. 存储器分类
计算机系统的存储器按所处的位置可分为内存和外存。
按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。
按存储器的工作方式可分为读写存储器和只读存储器。
按访问方式可分为按地址访问的存储器和按内容访问的存储器。
按寻址方式可分为随机存储器、顺序存储器和直接存储器。
按访问方式:
按地址访问的存储器(内存、U盘、硬盘、软盘、光盘) 和 按内容访问的存储器(cache)
按寻址方式:
随机存储器: 对任何存储单元存入或读取数据, 访问任何一个存储单元所需的时间是相同的。(U盘、内存)
顺序存储器: 访问所需数据的时间与数据所在的存储位置相关(磁带)
直接存储器: 介于随机存储器和顺序存储器之间的一种寻址方式(硬盘、软盘、光盘)
对磁道寻址是随机的, 在磁道内, 是顺序寻址的。
相联存储器: cache,内容访问的存储器, 将数据或数据的一部分作为关键字, 该关键字与存储器中的每个单元进行比较,找出存储器中所有与关键字对应的数据。
用在高速缓冲存储器、虚拟存储器中用作段表、页表、块表存储器, 用在数据库和知识库中