优点:访问速度比磁盘要快,能耗更低,同时更结实。
缺点:反复读写之后,闪存块会磨损,但是需要很多年才会磨损(见练习题6.5)。另外,SSD每个字节比旋转磁盘贵大约30倍(作者统计数据,随着时代变化,价格比会有所改变)。
二、连接设备(总线、I/O桥和I/O适配器)1、总线总线分是一组并行的导线,能携带地址、数据和控制信号。总线分为系统总线、内存总线和I/O总线。
2、I/O桥I/O桥 是由一个芯片组组成(其中包括内存控制器)。在介绍内存的时候,为了方便理解,我们把内存控制器当作内存的一部分,其实内存控制器是集成到了I/O桥里。I/O 桥接器的功能是翻译总线之间的电子信号。例如将系统总线的电子信号翻译成为内存总线的电子信号。
3、I/O适配器- 通用串行总线(Universal Serial Bus),连接各种I/O外围设备。如键盘鼠标、打印机等等。
- 显卡。包含硬件和软件逻辑
- 主机总线适配器。将一个或者多个磁盘连接到I/O总线。
- 其他设备,比如网络适配器。
读事务的三个步骤:
1、CPU将地址A放在内存总线上,再传递到内存总线。
2、主存从内存总线上读取地址A,取出内存上的字x,然后将字x放到总线上。
3、CPU从总线中读出字x,并将它复制到寄存器中
写事务的三个步骤:
1、CPU将地址A放再总线上,内存从总线上读取地址A,并等待数据字
2、CPU将数据字y放到总线上
3、主存从总线读数据字y,并将它存储到地址A。
2、访问磁盘的概要步骤以 CPU读取磁盘数据 为实例:
- CPU通过将命令、逻辑块号和目的内存地址写到与磁盘相关的内存映射地址,发起一个磁盘读。因为磁盘读的时间很长,所以此后CPU会转去执行其他工作。
- 磁盘控制器读取扇区,并执行到主存的DMA(Direct Memory Acess)传送。
- 当DMA传送完成时,磁盘控制器用中断的方式通知CPU(发送一个中断信号来通知CPU)。
<aside> 备注:DMA 称之为直接内存访问,设备可以自己执行读或者写总线事务而不需要内存干涉。
</aside>
四、存储技术趋势1、增加密度(从而降低成本)比降低访问时间容易得多
2、DRAM和磁盘性能与CPU性能之间的差距实际上在加大。
3、性能对比
<aside> 通过书中的价格趋势图表以及当前市场各设备价格。我们可以计算根据我们的实际需求,更好的配置各种硬件,降低商业成本。
</aside>
五、其他的一些心得1、严格意义上讲,内存不算是I/O设备
2、内存、磁盘都有自己的芯片,磁盘可以发送指令到CPU。例如在DMA技术中,磁盘通过发送指令告知CPU数据读取完成。(来自于CSAPP课堂里的内容)
3、磁盘控制器将磁盘构造为一个B个扇区大小的逻辑块序列。
4、I/O总线要连接I/O设备(磁盘、显卡)需要适配器(磁盘适配器、网络适配器、显卡适配器)。
5、I/O总线连接I/O设备也需要驱动程序。例如显卡驱动程序。
6、电容和晶体管是什么样子的?可以参考B站上的资料。理解了它们,才能比较好的理解DRAM和SRAM相关的内容
7、RAM (Random Access Memory)和 ROM (Read-Only memory)并不是互相对应的概念。
8、随机读取和顺序读取的区别,以及性能上的巨大差异。
9、计算机存储器层级结构,存在于L1层的数据,必然存在于L2层里,以此类推。(来自于CSAPP课堂里的内容)
10、存储在ROM设备中的程序称之为固件(fireware)。当一个计算机通电之后,它会存储在ROM中的固件。一些系统在固件中提供了少量基本的输入输出函数,例如PC的BIOS例程。复杂的设备,像显卡和磁盘驱动控制器,也依赖固件翻译来自CPU的I/O输入输出请求。
11、固件和驱动程序的区别?