第六章 存储器结构层次
- CPU执行指令,而存储器系统为CPU存放指令和数据。
- 存储器系统是一个线性的字节数组。
- 实际上,存储器系统是一个具有不同的容量、成本和访问时间的存数设备的层次结构。靠近CPU的小的、成本和访问时间的存储设备的层次结构。
- 高速缓存存储器是作为主存储器的数据和指令的缓冲区域。
- 主存暂时存放存储在容量较大的、慢速磁盘上的数据,而这些磁盘常常又作为存储在通过网络连接的其他机器的磁盘或磁带的数据的缓冲区。
- 局部性的基本属性:具有良好局部性的程序倾向于一次又一次地访问相同的数据集合,或是倾向于访问邻近的数据集合。具有良好局部性的程序比局部性差的程序更多地倾向于从存储器层次结构中较高层次处访问数据,因此运行的更快。
6.1 存储技术
6.1.1 随机访问存储
- 随机访问存储器分为两类:静态和动态。
- SRAM比DRAM更快,但也贵得多。
- SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。
- DRAM用来作为主存以及图形系统的帧缓冲区。
- SRAM和DRAM
- SRAM将每个位存储在一个双稳态存储器单元里。它可以无限期的保存两个不同的电压配置。
- DRAM将每位存储为对一个电容的充电。
- SRAM抗干扰强,存取比DRAM快,更贵,耗功更大。
- 传统的DRAM
- 一个DRAM芯片分为d个超单元切划分成r行c列,每个超单元有w个DRAM单元组成。DRAM芯片芯片被连接到存储控制器的电路,这个电路一次可以传送w位到芯片或从芯片传出w位。
- 电路设计者将DRAM组织成二维列阵而不是线性数组的一个原因降低芯片上引脚的数量。
- DRAM芯片包装在存储器模块中,它是插在主板的扩展槽上的。一个超单元存储一个字节。
- 非易失性存储器
- 如果断电,SRAM和DRAM都会丢失他们的信息。
- PROM可编程一次
- EPROMM 1000次
- EEPROM 10的5次方
- 闪存是一类非易失性存储器,基于EEPROM,固态硬盘基于EEPROM。
- 存储在ROM设备中的程序称为固件。
访问主存
- 总线事物:从主存中传送到CPU是读事务,从CPU传送到主存叫写事务。
- 总线是一组并行的导线,能携带地址、数据和控制信号。取决于总线的设计,数据和地址信号可以共享同一组导线,也可以使用不同的。
- 系统总线连接CPU和I/O桥,存储器总线连接I/O桥和主存。
- 读事务三个步骤:
- CPU将地址A放在系统总线上,I/O桥将信号传递到存储器总线。其次主存感觉到存储器总线上的地址信号,从存储器总线上读出地址,从DRAM取出数据字,并将数据写道存储器总线。
- I/O桥将存储器总线信号翻译成系统总线信号,然后沿着系统总传递。
- 最后,CPU感觉到系统总线上的数据,并将数据拷贝到相应的寄存器上。
- 写事务三个步骤:
- CPU将地址放到系统总线上,存储器从存储总线上读出地址,并等待数据到达。
- CPU将相应寄存器的数据字拷贝到系统总线。
- 主存从存储器总线上读出数据字,并将这些位存储到DRAM中。
6.1.2 磁盘存储
- 磁盘是由一个或多个盘片组成,他们被封装在一个密封的包装里,每个盘片有两个表面,每个表面有一组成为磁道的同心圆,每个磁道被划分为一组扇区,每个扇区包含相等数量的数据位。
- 磁盘容量=扇区字节数*扇区数*磁道数*表面数*盘片数
- Taccess=Tavg seek +Tavg rotation +Tavg transfer
4.连接到I/O设备
- 外围设备通过I/O总线连接到CPU和主存。
- 通用串行总线控制器是连接到USB设备的中转机构。USB是广泛使用的一个标准。
- 图形卡(或适配器)也连接I/O总线上。
- 主机总线适配器将一个或者多个磁盘连接在I/O总线上,使用的是一个特别的主机总线接口定义的通信协议。
访问磁盘
- CPU使用一种称为存储器映射I/O的技术来向I/O设备发出命令,在使用存储映射I/O的系统中,地址空间有一块地址是为与I/O设备通信保留的。每个这样的地址称为端口。当一个设备连接到总线时,它与一个或者多个端口相关联。
磁盘读
- 第一条指令是发送一个命令字,告诉磁盘发起一个读,同时还发送了其它的参数。
- 第二条指令应该读的逻辑块号。
- 第三条指令指明应该存储盘扇区的内容的主存地址。
- 逻辑块号翻译一个扇区地址,然后将内容传送到主存,而不需要CPU干涉,这个过程称为直接存储器访问。这种数据传送称为DMA传送。
- 磁盘扇区的被容被安全存储在主存以后,磁盘控制器通过给CPU发送一个中断信号来通知CPU。
问题:
可能有点低级,书上说,磁盘数据传送的主存,不需要CPU干涉,那么这要岂不是个BUG,可以通过磁盘随意该写内存的数据?如果没有BUG,那是如何保证从磁盘向主存传送数据是合法的?