来自微信公众账号:开点工作室(ID:kaidiancs)
阿里2015笔试中有这样一道题目:
以下描述中,错误的是( )。
A.SATA硬盘因为有机械部件,随机读写时会发生磁头的物理运动。主流硬盘的平均寻道时间在几毫秒到几十毫秒
B.SATA硬盘读写的最小单位是扇区,扇区的大小是512字节或者4KB
C.文件系统读写硬盘的最小单位也是扇区
D.SSD支持随机读写,但是一般读性能要好于写性能
E.SSD的随机读写延时要比SATA硬盘低两个数量级
F.SSD根据使用技术的不同,写的寿命是有限的,需要软件进行写优化,确保存储单元的写次数基本同步增长
本题属于计算机组成原理课程的内容,考查硬磁盘和固态硬盘的读写特性。目前主流的外部存储器是硬磁盘(Hard Disk,HD)和固态硬盘(Solid State Disk,SSD),因为这两种存储器的存储介质完全不同,因而其读写特性完全不同。
选项A中的说法是正确的。早期内置的硬盘驱动器使用并行的IDE接口(PATA)与磁盘控制器相连,目前几乎所有内置硬盘驱动器都使用串行的SATA接口。因为硬盘驱动器中每个盘面只有一个磁头,所有磁头都连接到同一个传动臂,因此,当传动臂移动时,所有磁头跟着一起移动,寻道操作结束后,所有磁头停留在不同盘面的同一个磁道上。在系统给出一组随机磁盘访问请求的情况下,传动臂需要在不同的磁道上来回移动,移动过程为一种机械运动,因此平均寻道时间达几毫秒到几十毫秒。
选项B中的说法是正确的。数据在磁盘上的记录格式分定长记录格式和不定长记录格式两种。目前大多采用定长记录格式。当寻道结束使磁头固定在某一个位置上后,磁盘盘片进行旋转,盘片和磁头做相对运动形成一个磁道,磁头固定在不同的位置就得到不同的磁道,因而每个盘片上有很多磁道,它们构成一个个同心圆。每个磁道由若干个扇区(也称扇段)组成,每个扇区记录一个数据块,每个扇区有ID字段和数据字段组成。ID字段用于保存数据所在的位置信息(磁道号、磁头号、扇区号);数据字段中存放真正的数据和相应的CRC信息。早期磁盘的记录格式中,数据占512字节,最近几年的磁盘记录格式中,数据占4KB。因此,对于磁盘来说,最小的读写单位是扇区。
选项C的说法可以认为是正确的。文件系统以逻辑块(簇)大小为单位在磁盘上给文件分配空间,因而最小的读写单位是一个逻辑块。一个逻辑块可以包含一个或多个扇区。大多数文件系统的逻辑块大小为多个扇区而不是一个扇区。其原因是,若逻辑块大小设定为一个扇区,则文件系统需要使用更多的磁盘空间存放索引信息,而且在文件读写时会发生频繁的寻道和旋转等待操作。当然,如果某文件系统的逻辑块大小就设定为一个扇区,这也是可以的,这种情况下,文件系统进行磁盘读写的最小单位就是一个扇区。
选项D中的说法是正确的的。固态硬盘(SSD)是一种使用NAND闪存组成的外部存储系统。与硬盘一样,SSD通过标准的硬盘接口(SATA或USB)插槽连接到主机上,其外部接口的行为和硬盘一样,处理的也是来自CPU的磁盘逻辑块的读写请求,文件系统以逻辑块为单位在SSD上为文件分配空间。SSD中包含一个或多个闪存芯片和闪存翻译层(flashtranslation layer),其中的闪存芯片相当于硬盘驱动器,闪存翻译层相当于磁盘控制器,用于把对逻辑块的请求转换成对底层闪存芯片的访问。因此,SSD也和硬盘一样支持随机读写。由于闪存芯片中写的过程是先进行区块擦除(使一个区块中全都变成“1”状态),然后再在需要的地方改写为“0”,因此SSD的读性能要好于写性能。顺序读比顺序写大致快一倍,而随机读比随机写大致快10倍。
选项E的说法是正确的。SSD也可以通过标准的硬盘接口(SATA或USB)插槽连接到主机上,进行随机读写,其随机读的访问时间(延时latency)大约为几十微秒,而随机写的访问时间大约为几百微秒。硬盘由于需要寻道和旋转等待,所以其读和写的访问时间大约是几毫秒到几十毫秒,因此,SSD随机读写延时比硬盘要低两个数量级。
选项F的说法是错误的。SSD中一个闪存芯片由若干个区块组成,每个区块由若干页组成,通常,页大小为512B~4KB,每个区块由32~128个页组成,因而区块大小为16KB~512KB,数据可以按页为单位进行读写。当需要写某页信息时,必须先对该页所在的区块进行擦除操作。一旦一个区块被擦除过,区块中的每一页就可以直接再写一次。若某一区块进行了大约100 000次重复写之后,就会被磨损而变成坏的区块,不能再被使用。因此,闪存翻译层中有一个专门的均化磨损(wear leveling)逻辑电路,试图将擦除操作平均分布在所有区块上,以最大限度地延长SSD的使用寿命。由此可见,对于物理区块的写优化是由SSD中的硬件实现的,无需软件进行写优化。
更多计算机专业技术文章、笔试面试资料尽在微信公众账号:开点工作室。