Skip to content

Latest commit

 

History

History
52 lines (37 loc) · 7.44 KB

CSAPP第六章--存储器的层次结构.MD

File metadata and controls

52 lines (37 loc) · 7.44 KB
我们依赖于一个简单的计算机系统模型,CPU执行指令,而存储器系统为CPU存放指令和数据.在简单模型中,存储器系统是一个线性的字节数组.而CPU能够在一个常数时间内访问每个存储器的位置.
实际上,存储器系统是一个具有不同容量,成本和访问时间的存储设备的层次结构.CPU寄存器保存着最常用的数据.靠近CPU的小的,快速的高速缓存存储器作为一部分储存在相对慢速的主储存器中数据和指令的缓冲区域,主存缓存存储在容量较大的,慢速磁盘上的数据.
 作为一个程序员,如果你的程序需要的数据是存储在CPU寄存器中的,那么在指令的执行期间,在0个周期内就能访问到它们.如果存储在高速缓存中,需要4~75个周期.如果存储在主存中,需要上百个周期.而如果存储在磁盘上,需要大约几千万个周期!
本章我们会看看基本的存储技术——SRAM存储器,DRAM存储器,ROM存储器以及旋转和固态的硬盘

6.1存储技术

早期的计算机只有几千字节的随机访问存储器,目前磁盘的容量以每两年加倍的速度增长.

6.1.1 随机访问存储器

随机访问存储器(RAM)分为两类:静态的和动态的.静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵得多.SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下.DRAM用来作为主存以及图形系统的帧缓冲区.一个桌面系统的SRAM不会超过几兆字节,但是DRAM却有几百或几千兆字节.

1.静态RAM

SRAM将每个位存储在一个双稳态的存储器单元里面.每个单元是用一个六晶体管电路来实现的,由于SRAM存储器单元的双稳态特性,只要有电,它就会永远地保持它的值.即使有干扰来扰乱电压,当干扰消除时,电路就会恢复到稳定值.

2.动态RAM

DRAM将每个位存储为对一个电容的充电.与SRAM不同,DRAM存储器单元对干扰非常敏感.当电容的电压被扰乱之后,它就永远不会恢复了.暴露在光线下会导致电容电压改变.实际上,数码照相机和摄像机中的传感器本质上就是DRAM单元的阵列.

3.SRAM与DRAM

只要有供电,SRAM就会保持不变,与DRAM不同,它不需要刷新.SRAM的存取比DRAM快.SRAM对诸如光和电噪声这样的干扰不敏感.代价是SRAM单元比DRAM单元使用更多的晶体管,因而密集度低,而且更贵,功耗更大. 891C4CF1FB7459F4EF7793DE8A03F93E

4.内存模块

DRAM芯片封装在内存模块中,它插在主板的扩展槽上.Core i7系统使用的240个引脚的双列直插内存模块,它以64位位块传送数据到内存控制器和从内存控制器传出数据.

5.ROM

如果断电,DRAM和SRAM会丢失它们的消息.从这个意义上来说,它们是易失的.另一方面,非易失性存储器即时在关电后,仍然保存着它们的信息.闪存是一类非易失性存储器,基于EEPROM,它已经成为了一种重要的存储技术.闪存无处不在,为大量的电子设备提供快速而持久的非易失性存储,包括数码相机,手机,音乐播放器,笔记本,一种新型的基于闪存的磁盘驱动器,称为固态硬盘,它能提供相对于传统旋转磁盘的一种更快速,更强健和更低能耗的选择.存储在ROM设备中的程序通常被称为固件.当一个计算机系统通电以后,它会运行存储在ROM中的固件,一些系统在固件中提供了少量基本的输入输出函数—例如PC的BIOS例程.复杂的设备,像图形卡和磁盘驱动控制器,也依赖固件翻译来自CPU的I/O请求.

6.访问主存

数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回.每次CPU和主存之间的数据传送都是通过一系列步骤完成的,这些步骤称为总线事务.读事务从主存传送数据到CPU,写事务从CPU传送数据到主存.总线是一组并行的导线,能携带地址,数据和控制信号.取决于总线的设计,数据和地址信号可以共享同一组导线,也可以使用不同的.同时,两个以上的设备也能共享同一总线.控制线携带的信号会同步事务,并标识出当前正在被执行的事务的类型. 9FD746A8A5D46F9AACC93BCD0F49B9D8

6.1.2 磁盘存储

磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千兆字节,而基于RAM的存储器只能有几百或几千兆字节.不过,从磁盘上读信息的时间为毫秒级,比DRAM读慢了10万倍,比从SRAM读慢了10万倍.

1.磁盘构造

磁盘是由盘片构成的,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料.盘片中央有一个可以旋转的主轴,它使得盘片以固定的旋转速率旋转,每个表面是由一组称为磁道的同心圆组成的,每个磁道被划分为一组扇区,每个扇区包含相等数量的数据位(通常是512字节),扇区之间由一些间隙分隔开,这些间隙中不存储数据位.间隙存储用来标识扇区的格式化位.磁盘是由一个或多个叠放在一起的盘片组成的,它们被封装在一个密封的包装里,整个装置通常被称为磁盘驱动器,我们通常称为磁盘.有时,我们会称磁盘为旋转磁盘,以使之区别于闪存的固态硬盘(SSD),SSD是没有移动部分的.

2.磁盘容量

一个磁盘上可以记录的最大位数称为它的最大容量.磁盘容量是由以下技术因素决定的:记录密度,磁道密度,面密度,所以磁盘容量 = 字节数 * 平均扇区数 * 磁道数 * 表面数 * 盘片数 E390C408397147A42387628577AF247B

3.磁盘操作

磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个传动臂一段,通过沿着半径轴前后移动这个传动臂,驱动器可以将读/写头定位在盘面上的任何磁道上.这样的机械运动称为寻道.

6.1.3 固态硬盘

固态硬盘是一种基于闪存的存储技术,SSD封装到I/O总线上标准硬盘插槽,行为就和其他硬盘一样,处理来自CPU的读写逻辑磁盘块的请求.一个SSD封装由一个或多个闪存芯片和闪存翻译层组成,闪存芯片替代传统旋转磁盘中的机械驱动器,而闪存翻译层是一个硬件/固件设备,扮演与磁盘控制器相同的角色,将对逻辑块的请求翻译成对底层物理设备的访问. 2B022C1CC490E166CAD1D3D698646F97 0B3381B21D181E3D3F2B1296D0CFCE47

6.1.4 存储技术趋势

不同的存储技术有不同的价格和性能折中,SRAM比DRAM快一点,而DRAM比磁盘要快很多,另一方面,快速存储总是比慢速存储要贵的.SRAM每字节的造价比DRAM高,DRAM的造价又比磁盘高得多.SSD位于DRAM和旋转磁盘之间.内存和磁盘技术的一个基本事实:增加密度(从而降低成本)比降低访问时间容易得多.DRAM和磁盘的性能滞后于CPU的性能.