标签:
重要知识点
三种常见的存储技术
RAM,ROM,磁盘。
随机访问存储器(RAM)
非易失性存储器(ROM)
RAM断电会丢失它们的信息,所以它们是易失的,而ROM即使断电后也仍然保存着它们的信息。由于历史原因,虽然ROM中有的类型即可以读也可以写,但是它们整体上都称为只读存储器。ROM是以它们能够被重编程(写)的次数和它们进行重编程所用的机制进行区分。
访问主存
数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列的步骤来完成的,这些步骤称为总线事物。
|--可分为数据总线、控制总线、地址总线、系统总线、存储总线、I/O总线等。如下图所示:
磁盘存储
磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节。
磁盘由盘片构成的。每个盘片有两面或者称为表面,表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴,它使得盘片以固定的旋转速率旋转,通常是5400~15000转每分钟。磁盘通常包含一个或多个这样的盘片,并封装在一个密封的容器内。
磁盘的每个表面是由一组称为磁道的同心圆组成的。每个磁道被划分为一组扇区。每个扇区包含相等数量的数据位(通常是512字节),这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙分隔开,这些间隙中不存储数据位。间隙存储用来标识扇区的格式化位。磁盘制造商通常用术语柱面来描述多个盘片驱动器的构造,这里,柱面是所有盘片表面上到主轴中心的距离相等的磁道距离的集合。
磁盘容量
一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。磁盘容量是由以下因素决定的:
计算公式如下:
磁盘操作
磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个传动臂的一端。
寻道:通过沿着传动臂,驱动器将读/写头定位在盘面上的任何磁道上。
磁盘以扇区大小的块来访问数据。对扇区的访问时间有三个主要的部分:
逻辑磁盘块
为了对操作系统隐藏磁盘构造的复杂性,现代磁盘将它们的构造呈现为一个简单的视图,一个B个扇大小的逻辑块序列,编号为0,1,…,B-1。磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)磁盘扇区之间的映射关系。
操作系统的I/O操作的具体过程
例:当读一个磁盘扇区的数据到主存,操作系统会发送一个命令道磁盘控制器,让它读某个逻辑块号。控制器上的固件执行一个快速表查找,将一个逻辑块号翻译成一个(盘面,磁道,扇区)的三元组,这个三元组唯一地标识了对应的物理扇区,控制器上的硬件解释这个三元组,将读/写头移动到适当的柱面,等待扇区移动到读/写头下,将读/写头感知到的位放到控制器上的一个小缓冲区中,然后将它们拷贝到主存中。
局部性原理
一个编写良好的计算机程序常常具有良好的局部性。也就是说,它们倾向于引用临近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向性被称为局部性原理。
局部性通常有两种不同的形式:
数据引用局部性:对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。具有步长为1的引用模式的程序有很好的空间局部性。在存储器以大步长跳来跳去的程序空间局部性会很差。
取指令局部性:对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。
存储器的层次结构
存储器结构的中心思想:对于每一个k,位于k层的更小更快的存储设备作为位于k+1层的更大更慢的存储设备的缓存。
高速缓存结构
若一个计算机系统,其中每个存储器地址有m位,形成M=个不同的地址。如下图所示,这样的一个机器的高速缓存被组织成一个S=个高速缓存组的数组。每个数组包含E个高速缓存行。每一行是由一个B=字节的数据块组成的,一个有效位指明这个行是否包含有意义的信息,还有t=m-(b+s)个标记位(是当前块的存储器地址的位的一个子集),它们唯一地标识存储在这个高速缓存行中的块。
高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步:1)组选择,2)行匹配,3)字抽取。
分类:
1.直接映射高速缓存:每组只有一行(E=1)的高速缓存。
2.组相连高速缓存:每个组都保存多于一行的高速缓存行(1<E<C/B)。
3.全相连高速缓存:由一个包含所有高速缓存行的组(即E=C/B)组成。
遇到的问题及解决方法
问题:
磁盘为什么需要转两圈才能读完一个扇区?
解决方法:
在博客园提问。因为磁盘有两面。
家庭作业
6.29
由练习题6.13图得
组7中命中的十六进制存储器地址为:
(1101111011100)=0x1BDC
(1101111011101)=0x1BDD
(1101111011110)=0x1BDE
(1101111011111)=0x1BDF
组5中命中的十六进制存储器地址为:
(0111000110100)=0x0E34
(0111000110101)=0x0E35
(0111000110110)=0x0E36
(0111000110111)=0x0E37
组4中命中的十六进制存储器地址为:
(1100011110000)=0x18F0
(1100011110001)=0x18F1
(1100011110010)=0x18F2
(1100011110011)=0x18F3
(0000010110000)=0x00B0
(0000010110001)=0x00B1
(0000010110010)=0x00B2
(0000010110011)=0x00B3
组2中没有命中的存储器地址。
6.30
A.
CT |
CT |
CT |
CT |
CT |
CT |
CT |
CT |
CI |
CI |
CO |
CO |
B.
操作 |
地址 |
命中? |
读出的值(或未知) |
读 |
0x409 |
否 |
- |
写 |
0x40A |
是 |
- |
读 |
0x833 |
是 |
0xD0 |
参考资料
《深入理解计算机系统》第6章存储器层次结构。
标签:
原文地址:http://www.cnblogs.com/Ntime/p/4915279.html