自顶向下,顶层的存储访问速率高,但是价格成本也贵。
1.寄存器
存储器的顶层是 CPU 中的寄存器,集成在cpu中,其材料和cpu相同,速度在所有存储介质中最快,但是价格昂贵。
2.高速缓存
其速度介于寄存器和内存之间,当应用程序需要从内存中读取去相关数据时,系统会先检查其所需但数据是否在高速缓存中,如果命中高速缓存,就从中获取,如果没有,则从内存中获取。它们存在但意义就是为了平衡CPU处理速度与内存读写但速度差异。为了更好的处理这种差异,往往在架构中存在着多级缓存的设计.
3.主存
也就是我们常说的内存,又叫RAM(Random Access Memory),它的特点就是易失性,也就是断电以后其数据内容会丢失。速度快于硬盘,但次于高速缓存。
4.硬盘
目前市场上比较常见但也是机械硬盘和固态硬盘。
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,数据就存放在磁盘盘片中。大家见过老式 的留声机吗?留声机上使用的唱片和我们的磁盘盘片非常相似,只不过留声机只有一个磁头,而硬盘是上下双磁头,盘片在两个磁头中间高速旋转。
也就是说,机械硬盘是上下盘面同时进数据读取的。而且机械硬盘的旋转速度要远高于唱片(目前机械硬盘的常见转速是 7200 r/min),所以机械硬盘在读取或写入数据时,非常害怕晃动和磕碰。另外,因为机械硬盘的超高转速,如果内部有灰尘,则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
什么是磁道呢?每个盘片都在逻辑上有很多的同心圆,最外面的同心圆就是 0 磁道。我们将每个同心圆称作磁道(注意,磁道只是逻辑结构,在盘面上并没有真正的同心圆)。硬盘的磁道密度非常高,通常一面上就有上千个磁道。但是相邻的磁道之间并不是紧挨着的,这是因为磁化单元相隔太近会相互产生影响。
那扇区又是什么呢?扇区其实是很形象的,大家都见过折叠的纸扇吧,纸扇打开后是半圆形或扇形的,不过这个扇形是由每个扇骨组合形成的。在磁盘上每个同心圆是磁道,从圆心向外呈放射状地产生分割线(扇骨),将每个磁道等分为若干弧段,每个弧段就是一个扇区。每个扇区的大小是固定的,为 512Byte。扇区也是磁盘的最小存储单位。
柱面又是什么呢?如果硬盘是由多个盘片组成的,每个盘面都被划分为数目相等的磁道,那么所有盘片都会从外向内进行磁道编号,最外侧的就是 0 磁道。具有相同编号的磁道会形成一个圆柱,这个圆柱就被称作磁盘的柱面。
硬盘的大小是使用"磁头数 x 柱面数 x 扇区数 x 每个扇区的大小"这样的公式来计算的。其中,磁头数表示硬盘共有几个磁头,也可以理解为硬盘有几个盘面,然后乘以 2;柱面数表示硬盘每面盘片有几条磁道;扇区数(Sectors)表示每条磁道上有几个扇区;每个扇区的大小一般是 512Byte。
硬盘还有接口的概念。机械硬盘通过接口与计算机主板进行连接。硬盘的读取和写入速度与接口有很大关系。大家都见过大礼堂吧,大礼堂中可以容纳很多人,但是如果只有一扇很小的门,那么人是很难进入或出来的,这样会造成拥堵,甚至会出现事故。机械硬盘的读取和写入也是一样的,如果接口的性能很差,则同样会影响机械硬盘的性能。
目前,常见的机械硬盘接口有以下几种:
- IDE 硬盘接口(Integrated Drive Eectronics,并口,即电子集成驱动器)也称作 "ATA硬盘" 或 "PATA硬盘",是早期机械硬盘的主要接口,ATA133 硬盘的理论速度可以达到 133MB/s(此速度为理论平均值)。
- SATA 接口(Serial ATA,串口),是速度更高的硬盘标准,具备了更高的传输速度,并具备了更强的纠错能力。目前已经是 SATA 三代,理论传输速度达到 600MB/s(此速度为理论平均值)。
- SCSI 接口(Small Computer System Interface,小型计算机系统接口),广泛应用在服务器上,具有应用范围广、多任务、带宽大、CPU 占用率低及热插拔等优点,理论传输速度达到 320MB/s。
固态硬盘和传统的机械硬盘最大的区别就是不再采用盘片进行数据存储,而采用存储芯片进行数据存储。固态硬盘的存储芯片主要分为两种:一种是采用闪存作为存储介质的;另一种是采用DRAM作为存储介质的。目前使用较多的主要是采用闪存作为存储介质的固态硬盘,如图所示:
输入输出系统输入输出系统涉及的内容比较复杂,重点在于IO设备如何与主机交互信息数据的控制方式以及响应的接口功能和组成。
I/O设备于主机交换信息的有五种方式,程序查询,中断,DMA,I/O通道方式和I/O处理机方式,重点是前三种。
程序查询方式:其是cpu通过程序不断的轮询I/O设备是否已经做好准备,从而控制I/O设备与主机交换信息。其通过在IO设备内部接口设置一个用来标志是否准备就绪的状态标记,CPU通过轮询这种状态标记来实现相互之间的信息交换。过程如下图:
中断方式:中断方式是一种IO设备主动要求CPU的暂停目前的处理工作而去处理其任务的一种方式,其减少来cpu轮询所带来的开销,但是其硬件电路设计和软件中断程序上要相对复杂。流程图如下: