一、存储设备
1、SRAM
1>、SRAM 主要作为高速缓存存储器。
2>、SRAM 将每个位都存储在一个双稳态的存储单元里。只要有电,它就会永远的保存它的值。
2、DRAM
1>DRAM 住要作为内存
2> DRAM 在10-100毫秒时间内失去电荷。内存系统必须周期性的通过读取,然后重写的方式来刷新内存的每一位。
备注:对电容的了解
3、SRAM 对比 DRAM
4、传统的DRAM
内部构造
图示中的每个人小正方形的格子(蓝色方块),代表一个超单元。每个超单元由w(一般为8)个单元(一个单元存储1bit)组成。
DRAM芯片由两部分组成。一部分是多行多列的长方形矩阵组成,另外一部分是内存行缓冲区。长方形矩阵的存储的信息容量 = 行数 * 列数 * 每个单元格含有的单元数。
每个DRAM芯片通过引脚连接到称为内存控制器的电路。这个电路可以一次传送w位(上图w=8)信息。上图还有2位地址引脚,传送查找或者存储某个单元数据的行标或者列标。
数据读写流程
1、通过addr引脚,传入行地址(例如:第二行的行地址) → 找到第二行数据 → 将第二行数据存储到内存缓冲区
2、内存控制器发送列地址1 → DRAM 将内存缓冲区的超单元(2,1)复制,并返回给内存控制器。
5、内存模块( )(略)6、增强的DRAM7、磁盘
磁盘构造&磁盘容量
一个磁盘有多个盘片,一个盘片有2个表面,每个表面都用来存储信息。每个盘面有多个同心圆,我们成之为磁道,就像圆形操场的多个跑道。每个磁道通过间隙分成多个扇区。每个扇区可以记载一定数量的字节。
磁盘容量 = 每个扇区的字节数 * 每个磁道的平均扇区数量 * 每个面的磁道数量 * 每个盘片的表面数量 * 每个磁盘的盘片数量
磁盘操作
寻道时间:磁盘的传动臂定位到数据存在于某条磁道上,称之为寻道,所花费的时间,称为寻道时间;
旋转时间:磁盘定位磁道之后,在磁道上面找到数据所在的扇区,所花费的时间,称之为旋转时间;
传送时间:磁盘头读取(或写入)某扇区的内容,并将内容传送到磁盘控制器的时间,成为传送时间。
顺序读取 VS 随机读取
通过小题来理解随机读取和顺序读取的区别:
答:
✅ A、1M = 1024K = 2000 * 512字节。即1M文件需要2000个逻辑块来存储数据。一个磁道有1000个扇区,如果映射刚好是顺序的,那么1M文件刚好存储满2个磁道。
1、将磁盘头定位到第一块上的平均寻道时间和平均旋转时间。(5ms + 6ms/2 = 8ms)
2、磁盘旋转2圈的时间(6ms*2 = 12ms)
那么:总耗时 = 8ms + 12ms = 20ms
在传输大量数据的时候,磁盘是一边传输数据,一边查找数据的。所以,可以不计算。
B、5ms * 2000 + 6ms * 2000/2 + 6ms * 2000 *1/1000
回答错误
正确答案:将磁盘头定位到第一块上的平均寻道时间和平均旋转时间。
这个过程重复2000次。所以总耗时= 8ms * 2000 = = 16s
磁盘控制器 & 逻辑磁盘块
磁盘控制器维护着逻辑块号和实际磁盘扇区之间的映射关系。
现代磁盘呈现为一个B个扇区组成的逻辑块序列。
当操作系统读写磁盘时,发送一个逻辑块号到磁盘控制器,控制器上的固件将逻辑块号翻译为一个(盘面、磁道、扇区)的三元组。
8、ROM(Read-Only )
存储在ROM设备中的程序称之为固件()。当一个计算机通电之后,它会存储在ROM中的固件。一些系统在固件中提供了少量基本的输入输出函数,例如PC的BIOS例程。复杂的设备,像显卡和磁盘驱动控制器,也依赖固件翻译来自CPU的I/O输入输出请求。
9、SSD(固态硬盘)
闪存翻译层相当于磁盘控制器。删除芯片相当于磁盘盘区以及驱动设备。
10、磁盘 VS SSD
优点:访问速度比磁盘要快,能耗更低,同时更结实。
缺点:反复读写之后,闪存块会磨损,但是需要很多年才会磨损(见练习题6.5)。另外,SSD每个字节比旋转磁盘贵大约30倍(作者统计数据,随着时代变化,价格比会有所改变)。
二、连接设备(总线、I/O桥和I/O适配器)
1、总线
总线分是一组并行的导线,能携带地址、数据和控制信号。总线分为系统总线、内存总线和I/O总线。
2、I/O桥
I/O桥 是由一个芯片组组成(其中包括内存控制器)。在介绍内存的时候,为了方便理解,我们把内存控制器当作内存的一部分,其实内存控制器是集成到了I/O桥里。I/O 桥接器的功能是翻译总线之间的电子信号。例如将系统总线的电子信号翻译成为内存总线的电子信号。
3、I/O适配器
三、访问内存流程 & 访问磁盘流程1、访问内存
读事务的三个步骤:
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( Acess)传送。当DMA传送完成时,磁盘控制器用中断的方式通知CPU(发送一个中断信号来通知CPU)。
备注:DMA 称之为直接内存访问,设备可以自己执行读或者写总线事务而不需要内存干涉。
四、存储技术趋势
1、增加密度(从而降低成本)比降低访问时间容易得多
2、DRAM和磁盘性能与CPU性能之间的差距实际上在加大。
3、性能对比
通过书中的价格趋势图表以及当前市场各设备价格。我们可以计算根据我们的实际需求,更好的配置各种硬件,降低商业成本。
五、其他的一些心得
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 ( )和 ROM (Read-Only )并不是互相对应的概念。
8、随机读取和顺序读取的区别,以及性能上的巨大差异。
9、计算机存储器层级结构,存在于L1层的数据,必然存在于L2层里,以此类推。(来自于CSAPP课堂里的内容)
10、存储在ROM设备中的程序称之为固件()。当一个计算机通电之后,它会存储在ROM中的固件。一些系统在固件中提供了少量基本的输入输出函数,例如PC的BIOS例程。复杂的设备,像显卡和磁盘驱动控制器,也依赖固件翻译来自CPU的I/O输入输出请求。
11、固件和驱动程序的区别?
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666