(水声工程专业论文)高速海量固态硬盘的实现.pdf_第1页
(水声工程专业论文)高速海量固态硬盘的实现.pdf_第2页
(水声工程专业论文)高速海量固态硬盘的实现.pdf_第3页
(水声工程专业论文)高速海量固态硬盘的实现.pdf_第4页
(水声工程专业论文)高速海量固态硬盘的实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(水声工程专业论文)高速海量固态硬盘的实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

t , 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由 作者本人独立完成的。有关观点、方法、数据和文献的引用已在 文中指出,并与参考文献相对应。除文中已注明引用的内容外, 本论文不包含任何其他个人或集体已经公开发表的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式 标明。本人完全意识到本声明的法律结果由本人承担。 作者( 签字) :诈长雁 日期:3 d o 年3 月玛日 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 回往授予学位后即可口在授予学位1 2 个月后 口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 作者( - 签- - - 字) :影张集导师( 签字) :私匀1 l 日期:细f o 年3 月玛日9 u t o 年7 月;日 哈尔滨工程大学硕士学位论文 摘要 在现代的海洋和航天领域的研究中,设备经常工作在恶劣的环境中,并 且还要对现场的高速大规模数据进行实时存储。在日常的生活中,人们也需 要便携式的存储设备,来随时地对数据进行备份与转移。目前,在市场上比 较主流的存储设备是采用传统的盘片结构而成的机械硬盘。而传统硬盘的机 械结构限制其只能在比较安全稳定的环境中工作,并且传统的机械硬盘体积 大,功耗高不适合小规模系统的应用。于是有人提出了固态硬盘的概念。它 是一种以半导体芯片作为存储介质的存储器,由于不包含机械部件,它的存 取速度较传统机械硬盘有了很大的提高,并且功耗得到很大的降低,而且体 积也缩小了,更主要的是可以工作在复杂的环境中。 本固态硬盘的硬件平台采用4 x 4 的n a n df l a s h 芯片阵列为存储介质, 利用a r m 和f p g a 相互配合的方式进行流水线存储操作,并且存储容量可 扩展,真正做到了海量存储。另外具有i d e 和u s b 两种接口,可以实现数 据采集以及移动硬盘的功能。 本论文主要的工作为:在固态硬盘的硬件平台上,利用v e r i l o gh d l 语 言对f p g a 编程实现i d e 接口逻辑、数据缓冲模块和n a n df l a s h 阵列控 制器。利用汇编语言和c 语言在a r m 平台上编程,参照a t a 6 协议针对接 口转换芯片6 8 0 1 3 发送过来的主机命令进行翻译,指挥固态硬盘进行相应的 工作。 关键词:a r m + f p g a ;v e r i l o gh d l ;n a n df l a s h 阵列;a t a 命令;数据 缓冲;u l t r a - d m a 传输模式 m a d eu po fm a g n e t i cd i s k b e c a u s eo fm a g n e t i cd i s ka n dh u g ec u b a g e ,t h eh a r d d i s kc a no n l yw o r ki ns a f ea n ds t a b l ee n v i r o n m e n t s ,a n dc a n tb ea p p l i e di n e m b e d d e ds y s t e m s os o m e o n ep r o p o s et h ec o n c e p to fs o l i ds t a t ed r i v e t h e s t o r a g em e d i u mo fs o l i ds t a t ed r i v ei sa k i n do fs e m i c o n d u c t o rc h i p s c a u s eo f w i t h o u tm e c h a n i c a lc o m p o n e n t s ,t h es p e e do fd a t a s t o r a g ea b o u ts o l i ds t a t e d r i v ei sm u c hh i l g h e r , t h ep o w e ri sm u c hl o w e ra n da l s oh a v eas m a l l e rc u b a g e t h a nh a r dd i s k a n dm o r ei m p o r t a n ti st h a ts o l i ds t a t ed r i v ec a nw o r ki na c o m p l e xe n v i r o n m e n t t h eh a r d w a r ep l a t f o r mo ft h i ss o l i ds t a t ed r i v e si sm a d eu po f 4x 4n a n d f l a s hc h i pa ss t o r a g em e d i u m ,u s ea r ma n df p g aa sc o n t r o lc h i pt oo p e r a t ea p i p e l i n e ,a n dt h ec a p a b i l i t yo fs o l i ds t a t ed r i v e sc a ne x p a n d i na d d i t i o n ,t h i s s y s t e m h a v ei d ea n du s bi n t e r f a c e ,s oi tc a nw o r ka sd a t a - c o l l e c t i o no r r e m o v a b l ed i s k t h em a i n w o r ko ft h i st h e s i si so nt h eb a s eo fh a r d w a r ep l a t f o r m ;u s ev e r i l o g h d lt op r o g r a mt h ef p g ai no r d e rt or e a l i z et h e i n t e r f a c el o g i co fi d e ,d a t a b u f f e rm o d u l ea n dn a n df l a s hc o n t r o l l e rm o d u l e u s ea s s e m b l e ra n dcl a n g u a g e t op r o g r a ma r m ,a n dc o n s u l tt h ea t a 一6p r o t o c o lt ot r a n s l a t et h ec o m m a n dw h i c h i ss e n db y6 8 013f r o mh o s t ,a n dd i r e c tt h ew o r ko fs o l i ds t a t ed r i v e k e yw o r d s :a r m + f p g a ;v e r i l o gh d l ;a r r a yo fn a n df l a s h ;c o m m a n do f a t a 6 ;d a t a - b u f f e r ;u l t r a - d m at r a n s f e rm o d e 0 2 1 术既杰苤气 2 2i d e 接1 :3 协议6 2 3 硬盘分区及f a t 3 2 文件系统1 1 2 3 1 根引导区1 】 2 3 2 根记录区13 2 - 3 3f a t 表1 5 2 3 4 数据区1 6 2 4 $ 3 c 2 4 4 0 a 的启动文件分析1 6 2 5 本章小结1 6 第3 章系统结构18 3 1 系统总体结构1 8 3 2 系统各部分功能1 9 3 2 1 接口部分1 9 3 2 2 逻辑转换部分2 2 3 2 3 系统控制部分3 2 3 2 4 存储介质部分3 3 3 3 本章小结3 4 第4 章n a n df l a s h 的调试3 5 4 1 总体概述3 5 4 2 调试过程3 6 4 2 1 写命令和地址参数调试3 7 4 2 2 读操作3 7 0 5 2 50 x 2 0 、0 x 3 0 命令5 8 5 2 60 x b l 命令5 8 5 3 本章小结5 9 结 论6 l 参考文献6 2 攻读硕士学位期间发表的论文和取得的科研成果6 5 致 谢6 6 附 录6 7 哈尔滨t 程大学硕士学位论文 第1 章绪论 1 1 论文的研究背景及立题意义 随着人类探索的不断深入,人们越来越多地开始对海洋以及外太空领域 进行各种研究。同时,在日常生活中,人们也开始更多地关注个人信息的方 便保存与交互。而以上两个方面都需要对信息进行存储。 目前市场上比较普遍的存储设备有传统的机械硬盘和u 盘。传统的机械 硬盘虽然属于主流的存储设备,但是由于其自身的特性,还存在很多缺点: 1 存储速度慢。机械硬盘采用盘片高速旋转、磁头作径向移动的方式对 数据进行存取,因此在硬盘中执行一次数据读写操作的时间周期分为三部分: 寻道时间、旋转等待延时和数据传输时问。无论读写数据的大小,前两个步 骤都必须执行,而这两个步骤一般都耗时0 5 m s 以上。 2 不稳定。传统硬盘的机械结构导致硬盘故障率较高。磁头磨损,悬臂 变形,硬盘在受到震动后外壳、盘面或马达的微小的变形都将导致硬盘工作 性能的不稳定。目前普通硬盘在非工作状态下仅可承受百g 左右的冲击力, 因此在移动设施或震动较大场合等复杂状态下,传统硬盘都不太适用。 3 功耗大。传统硬盘中盘片的机械旋转和磁头的径向运动均会在很大程 度上导致硬盘功耗增大。 u 盘虽然小巧轻便,但其容量却无法扩展,无法扩大其应用环境。 基于以上的各种原因,人们提出了固态硬盘的概念。固态硬盘( s o l i ds t a t e d r i v e ) ,也称作电子硬盘或者固态电子盘,是由控制单元和固态存储单元 ( d r a m 或f l a s h 芯片) 组成的硬盘川。固态硬盘与传统的机械硬盘相比有以 下几个特点f 2 】: 1 数据存取速度快。根据相关媒体测试:在同样配置的笔记本电脑下, 运行大型图像处理软件时能明显感觉到固态硬盘无论在保存还是在打开文件 时都更快。当按下笔记本电脑的电源开关时,搭载固态硬盘的笔记本从开机 到出现桌面一共只用了1 8 秒,而搭载传统硬盘的笔记本总共用时3 1 秒,差 距还是相当大的。 利于便携。此外,重量的减轻也使得笔记本搭载多块固态硬盘成为可能。 综上所述,基于固态硬盘的数据存储系统将比传统的存储器具有更优越 的性能。本固态硬盘的硬件平台是以a r m 和f p g a 联合控制的方式,以 n a n d 型f l a s h 为存储介质,具有标准的i d e 接口以及u s b 2 0 接口,可 以实现计算机硬盘和移动硬盘的功能。并且含有额外的数据采集端口,可以 直接连接采集系统,作为数据采集卡使用。 1 2 国内外发展现状 目前,固态硬盘正逐渐进入高端企业用户和普通消费者的视野。2 0 0 7 年 7 月i b m 在其刀片式服务器上部署s a n d i s ks s d ,固态硬盘开始走进人们的 视线。2 0 0 8 年1 月e m c 在高端企业级存储产品s y m m e t r i xd m x 4 中添加容 量分别为7 3 g b 和1 4 6 g b 的固态硬盘;2 0 0 8 年6 月,s u n 在服务器和存储产 品中也开始支持固态硬盘。在消费领域,主要受价格和容量因素制约,固态 硬盘集中于高端的笔记本和超轻薄笔记本电脑中使用。2 0 0 7 年下半年,美国 苹果公司在m a c b o o ka i r 超便携笔记本中就以s s d 固态硬盘取代传统机械硬 盘,2 0 0 8 年3 月我国联想公司在t h i n k p a dx 3 0 0 中也首次选用s s d 固态硬盘 作为标准配置。 2 0 0 8 年,i b m 宣布了一个代码代号为“p r o j e c tq u i c k s i l v e r 的研究项目, 这个项目的主要内容是测试一组容量高达4 t b 的固态硬盘磁盘阵列性能。 i b m 报告显示,q u i c k s i l v e r 不但性能良好,响应时间只有此前记录的1 2 0 , 哈尔滨t 程大学硕十学位论文 所需空间也只有之前的1 5 ,功耗和降温需求则降至5 5 。2 0 0 8 年8 月1 9 日 开幕的英特尔信息技术峰会现场,英特尔n a n d 产品事业部正式宣布进军 s s d 高效能固态硬盘,并且制定了产品规划与时间表,新产品将命名为“i n t e l h i g hp e r f o r m a n c es a t as o l i ds t a t ed r i v e ”o i d e 作为老式的硬盘接口,在传统硬盘上已几乎被s a t a 和s a t a i i 接 口的传统硬盘所取代。而在做为新一代硬盘的固态硬盘上,近几年i d e 接口 的固态硬盘却在市场上大受欢迎,许多国外厂商如韩国的三星、日本的东芝、 美国的i n t e l 等老牌存储器厂商不停地推出新的类型的i d e 接口固态硬盘,并 且在出售价格方面与同等条件的s a t a 或s a t a i i 接口的固态硬盘相比差别 不大,而作为固态硬盘控制核心的控制芯片也跟随着固态硬盘的发展而迅猛 发展。在国内,对于i d e 接口的固态硬盘的研究则鲜有厂商,国内首款i d e 接口固态硬盘是由深圳浩天电子技术开发有限公司生产的赛速系列,在该固 态硬盘控制芯片的控制下,它的平均读取速度达到5 1 m b s ,写入速度达到 5 2 2 8 m b s 。相对于i d e 接口的d m a 1 3 3 的传输速度来说,这个访问速度明 显远远还不是瓶颈。而对固态硬盘访问速度起核心作用的就是固态硬盘的控 制芯片,其中i d e 控制器又对控制芯片的功能起到了一定的决定性作用。因 此,相信在接下来的几年,国内会有更多的厂商投入到i d e 固态硬盘的研究 行列。 1 3 论文的研究内容 由于主要的硬件平台已经设计好,所以本论文的工作主要集中在软件编 程实现固态硬盘的各项功能上。即利用v e r i l o gh d l 语言对f p g a 进行编程 和利用c 语言对a r m 进行编程。 当一个外部存储器与主机相连后,主机会对设备发出一系列的命令,来 对设备进行识别。为了保证本论文中的固态硬盘能够与主机正常的通信,需 要对主机发送的各种命令进行识别与翻译。所以本论文的工作重点集中在提 取主机发送的命令,并对这些命令进行相应的应答。也就是说,要在固态硬 盘内部实现一个i d e 控制器的功能。i d e 控制器主要包括接口寄存器组和控 制单元。接口寄存器组的作用是保存主机发送的命令和相关参数。而控制单 元则需要a r m 和f p g a 来联合工作实现。其中,a r m 的主要作用是对这些 3 哈尔滨t 程人学硕十学位论文 命令进行翻译,然后根据命令通知固态硬盘进行那些动作。 另外,作为一个高速海量的存储设备,其存储数据的能力也不能忽视。 这样就要求在固态硬盘的内部有一个满足高速数据传输的数据通道,将大量 数据存储如硬盘介质n a n df l a s h 中。 根据以上的内容,本论文的安排如下: 第一章:绪论。主要对固态硬盘相对于机械硬盘的优点和当前固态硬盘 的发展情况进行介绍。 第二章:固态硬盘技术分析。介绍固态硬盘的i d e 接口协议, 及f a t 3 2 文件系统,系统实现脱机工作的主要方法。 第三章:系统结构。详细介绍本论文中固念硬盘的系统结构, 模块的功能要求,以及各个结构的软件实现方法; 硬盘分区 说明各个 第四章:n a n df l a s h 的调试。详细介绍固态硬盘存储介质的读写过程, 以及具体的调试方法与结果。 第五章:系统调试。详细介绍实现固态硬盘的调试方法与结果,以及本 固态硬盘所支持的命令集的具体情况。 最后,本文还对工作做了总结以及对尚未完成的一些工作的设想。 4 哈尔滨工程大学硕+ 学位论文 第2 章固态硬盘技术分析 2 1 概述 本论文在实现固态硬盘的过程中,主要从3 方面进行考虑,分别是:高 速、海量和固态硬盘。 首先,高速是所有硬盘发展的过程中都苦苦追寻的目标。传统硬盘主要 依靠提高盘片转速来获得较高的数据存储速度。在本系统中,由于采用了 6 8 0 1 3 芯片,将u s b 2 0 接口转换为标准的i d e 接1 3 ,u s b 2 0 接口具有很高 的传输速度,高速达到4 8 0 m b s 3 1 。在1 6 位数据总线的系统中,传输一组数 据的时间周期为1 6 4 8 0 m s = 3 3 n s 。本系统为了能够充分的利用这一接口 的最高速度,没有采用传统的p i o 数据传输模式( 最高时钟周期为1 2 0 n s ) , 而是采用了u l t r a d m a 这一比较复杂的模式。根据a t a 6 协议中的规定, u l t r a - d m a 模式具有一个非常显著的特点,就是数据锁存时钟的上升沿和下 降沿都可以用来锁存数据,所以其可以在一个时钟周期内在1 6 位数据总线的 系统中传输3 2 - b i t 的数据。同时u l t r a d m a 模式在保证数据高速传输的同时 还引入了c r c 校验算法,保证数据传输的可靠性。为了实现这些目标,本论 文采用a r m 强大的软件编程功能,利用c 语言对主机发送来的信号进行处 理,然后控制f p g a 初始化d m a 通道,准备接收数据。同时,在f p g a 内, 应用v e r i l o gh d l 语言来制作d m a 通道控制器,根据a r m 的使能信号来初 始化d m a 通道进行传输数据的工作。在f p g a 内部还有大量的r a m 资源, 本系统利用这些r a m 资源制作数据缓冲模块,对高速的数据进行缓冲,保 证数据传输的不丢失和f p g a 内部各模块的时序匹配。 其次,海量的实现。要想实现硬盘的海量存储,只有增加存储介质的数 量。本系统在数据存储的过程中,采用4 级流水线的工作模式,即在第一组 f l a s h 芯片处于内部数据烧写的过程时,系统开始依次地写第二、三、四组 f l a s h ,当第四组f l a s h 处于内部数据烧写时,第一组已经烧写完毕,可 以继续接收数据了。这样就免除了数据写的等待时间,达到数据的高速存储。 同时,增加硬盘容量的时候,只要在后面继续增加f l a s h 的组数即可,对 5 哈尔滨t 程大学硕十学位论文 整个系统的存储速度没有任何影响,唯一需要做的就是在f p g a 内制作 f l a s h 选择器的时候多增加一些选通线即可。 最后,固态硬盘。目前计算机系统都是高度集成化的系统,原先存在于 计算机主板上的硬盘控制器被移到了硬盘之中,这样本系统还需要在f p g a 内部制作一个硬盘控制器。主机为了和硬盘进行交流,主要通过向硬盘发送 命令来通知硬盘的各种动作。在a t a 6 协议中规定了大大小小6 9 条命令。 这些命令每一个都对应着硬盘工作的一种模式。但经过研究发现,实现一个 硬盘正常工作的最小命令集应该至少包括以下几个命令:i d e n t i f y d e v i c e 、s e tf e a t u r e s 、r e a dd m a 和w r i t ed m a 。而这些命令仅仅 是针对u l t r a - d m a 传输模式来工作的。只有硬盘正常接收了这些命令后,硬 盘才能够工作。所以,在f p g a 内部利用r a m 资源制作一个双口r a m 作 为主机发送的命令的暂存空间,然后由a r m 将这些命令读取并且进行翻译, 以确定是什么命令好控制硬盘进行相应的工作。为了实现数据的有序储存, 本系统引入了硬盘分区和f a t 3 2 文件系统,所以,硬盘在工作的时候也主要 是对硬盘的扇区进行数据操作。这样就需要在f p g a 内部制作一个n a n d f l a s h 的控制器,来控制将f p g a 内数据缓冲区的数据写入f l a s h 芯片中, 或将f l a s h 内的数据读出发送到数据缓冲区内。由此可知,这个硬盘控制 器包括两部分:a r m 和f p g a 。主要工作就是当主机发送命令后,a r m 进 入中断处理程序,读取f p g a 内的命令寄存器组中的命令参数,然后查询 a r m 内部的命令表,确定当前主机发送的是什么命令,同时给主机返回状态 值。如果是一些状态命令,例如i d e n t i f yd e v i c e ,则由a r m 直接利用寄 存器传输模式将信息返回给主机。如果是数据传输命令,例如r e a d w r i t e d m a ,则由a r m 控制f p g a 来初始化d m a 传输通道,实现主机与数据缓 冲区的数据交互。同时,a r m 根据这些命令参数将其翻译为n a n df l a s h 的读写命令,然后由f p g a 来控制实现f l a s h 与数据缓冲区的数据交互。 当数据传输完成后,a r m 退出中断程序,进入空闲状态,等待主机下一次命 令的写入。 2 2i d e 接口协议 固态硬盘的控制器的制作主要是根据i d e 接口协议来完成的。本节主要 6 一 哈尔滨丁程大学硕十学位论文 介绍i d e 接口的基本知识,为论文后续的工作打好基础。i d e 接口如图2 1 。 图2 1i d e 接口 i d e 接1 2 1 几乎所有的信号都采用t t l 电平。其中主要的信号为: n c s 1 :0 :这个是由主机发送过来的片选信号,用来选择设备中的命 令块寄存器或者控制块寄存器。当n d m a c k 有效时,n c s l 和n c s 0 应该置低,并且传输1 6 b i t s 的数据。 d a 2 :0 - 这个是一个3 - b i t 的二进制地址代码,主机可以通过设置不 同的d a 值与n c s 信号一起来访问某一寄存器或者是数据端口。 n d a s p 这是一个时分复用的信号,用来声明当前的设备被激活, 或者当前的是设备1 。 d d 1 5 :0 可以作为主机和设备相互通信的双向数据线,可以是8 位的带宽或者1 6 位带宽。其中的低8 位被用来进行寄存器的数据传 输。而数据的传输则采用1 6 位宽度。 n d i o r n h d m a r d y h s t r o b e :n d i o r 是由主机发送的时钟信号, 用来读取设备寄存器或数据端口。n h d m a r d y 是u l t r a - d m a 读方 式的流控制信号。当主机已经准备好接收设备发送来的u l t r a d m a 数据时,此信号有效。并且主机通过将该信号置低的方式来终止此 次u l t r a - d m a 传输。h s t r o b e 是主机在u l t r a d m a 写方式的数据 锁存信号。它上升沿和下降沿都可以用来锁存数据。主机可以通过 停止产生时钟沿来终止此次u l t r a d m a 写方式传输。 n d l 0 w s t o p :n d i o w 是主机写设备寄存器或数据端口的时钟锁存 信号。在u l t r a - d m a 传输初始化之前n d i o w 应被置低。当在进行 u l t r a d m a 传输的过程中,通过置低s t o p 来终止此次u l t r a d m a 传输。 7 哈尔溟: 程大学硕十学位论文 d m a r q 和n d m a c k :这是一对关于d m a 传输的控制信号。其中 d m a r q 信号是设备用来向主机发送d m a 传输请求时发出,而 n d m a c k 则是主机当d m a 传输准备好时对d m a r q 信号的响应。 i n t r q - 中断请求信号,用来向主机发出中断请求。 i o i m y 柚d m a i y ,d s t r o b e :i o r d y 信号用来对主机的总线访 问周期进行延长。n d d m a r d y 是u l t r a d m a 写方式的流控制信号。 设备通过使能该信号来通知主机,设备已经准备好接收数据。设备 可以通过置低该信号来中止当前的u l t r a d m a 写方式。d s t r o b e 是u l t r a - d m a 读方式的数据锁存信号,并且其上升沿和下降沿都可 以锁存数据。设备可以通过不产生时钟沿来终止当前的u l t r a d m a 读方式。 n r e s e t 该信号是硬件复位信号,被主机用来复位设备。 i d e 接口与主机之间的通信主要是通过访问i d e 控制器中的寄存器组来 实现的,其中包括许多种寄存器【4 】【5 】,它们描述了控制器如何出现在主机系 统中,是i d e 接口与主机之间数据传输的媒介。如表2 1 。 表2 1i d e 命令寄存器 地址 名称 n c s l n c s od a 2d a ld a o读访问 写访问 10o00 p i o 操作数据寄存器 l0o0l 错误寄存器 特征寄存器 lool0 扇区数寄存器 l0o1l 扇区低地址 1 0 1o0 扇区中地址 1 o 1ol 扇区高地址 l 01 10 设备寄存器 1 ol ll 状态寄存器命令寄存器 oll lo 设备控制寄存器 1l1 11d m a 方式数据端口 1 命令寄存器 8 哈尔滨二r 程大学硕+ 学位论文 命令寄存器是一个只写寄存器,由表2 1 可知,其和状态寄存器具有相 同的地址。命令寄存器中含有主机发送给设备的命令代码。当这个寄存器被 写后,设备要立即执行这个命令。 2 状态寄存器 状态寄存器是一个只读寄存器,它反映了i d e 控制器执行命令后的状态。 _状态寄存器的内部定义如下表2 2 。 表2 2 状态寄存器参数 d 7d 6 d 5d 4d 3d 2 d ld o b s yd r d y d fo b s d r q o b so b se r r 其中各位的含义为: b s y ( b u s y ) :控制器忙; m 1 、上山4 i 廿廿、,f i ,上 d f ( d e v i c ef a u l t ) :控制器处理错误: d r q ( d a t ar e q u e s t ) :请求服务,控制器希望通过数据寄存器与处理 器交换一个字节数据; o b s :保留位; e r r ( e r r o r ) :命令执行错误位。 3 设备控制寄存器 设备控制寄存器是一个只写控制器,它主要负责设备的重启以及中断等 设备控制操作。设备控制器寄存器的位特性内容如表2 3 ,值得一提的设备控 制器的d 7 位,即“h o b ”位,它的作用是当主机传输地址为4 8 b i t 地址格式 时,表明当前地址寄存器中的地址是高位地址还是低位地址。由于i d e 接口 中一共有三个起始扇区地址寄存器,每个寄存器的位数都为8 b i t ,三个寄存 器一起只能表示2 4 b i t 地址位。而当采用的是4 8 b i t 地址时,主机需要分两次 来写入地址,首先传输的是高位地址,然后是低位地址。此时,便用“h o b 位来表示地址位是高2 4 位还是低2 4 位。 表2 3 设备控制寄存器 d 7d 6d 5d 4d 3d 2d 1d o h o brrrrs r s tn i e no 9 哈尔滨工程大学硕士学位论文 其中各位的含义为: h o b 表示4 8 b i t 地址时地址寄存器中地址的高低位,1 为高8 位, 0 为低8 位: d 6 , - , 一d 3 预留位,用户自己定义; s r s t - 软件重启位,为l 时设备重启: n l e n 中断允许位,为o 表示允许中断。 4 数据端口 数据端口并不是真正的寄存器,而是由于该端v i 也是由n c s 和d a 来选 通的。数据端口主要作为d m a 方式传输时的流经通路。为双向读写。 5 数据寄存器 同数据端口一样,都可以双向读写。但是其主要作为p i o 模式时数据传 输的接口寄存器。 6 错误寄存器 错误寄存器是一个只读控制器。这个寄存器中的内容只有在b s y 和d r q 都等于o 并且e r r 位为1 的时候才有效。当设备完成上电、复位或执行完某 些命令之后才有效。当设备处于睡眠模式时,该寄存器无效。其内部结构如 表2 4 。 表2 4 错误寄存器 d 7d 6d 5d 4d 3d 2d 1d 0 撑岸 撑 拌撑a b r t拌撑 其中各位的含义为: a b r t :当设备在执行某个命令出错时,该位置l ; 群:该位只有在某些情况下才有意义。 7 特征寄存器 该寄存器为只写控制器。只有在b s y 和d r q 等于0 时,并且n d m a c k 无效时才会被写。 8 扇区地址寄存器 总共有3 个寄存器,分别保存当前命令的所要求的2 4 位地址。 9 扇区数寄存器 1 0 种协议的命令在执行的过程中不会用到系统内部的数据缓冲区。但 是,这些命令仍然可以在设备和主机之间进行信息交换。这种信息 交换是通过读写寄存器来完成的。 d m a 协议:主要分为u l t r a - d m a 协议和m u l t i p l e d m a 协议。它们 之间有些类似,但是u l t r a - d m a 协议会更复杂一些,而且在数据的 传输速度上也会快很多。而且u l t r a d m a 协议下的数据传输有一个 非常显著的特点,即数据传输时钟的上升沿和下降沿都被用来锁存 数据,这样更加提高了数据的传输效率。 主机对设备进行数据传输时的传输模式主要通过s e tf e a t u r e s 和 i d e n t i f yd e v i c e 两个命令来执行。 2 3 硬盘分区及f a t 3 2 文件系统 作为一个可以与计算机进行交互的存储设备,固态硬盘在与计算机联机 时,需要能过进行分区和格式化。在进行分区和格式化之后,硬盘就可以使 用了。整个硬盘可以分为:根引导区、根记录区、分区表和数据区四个部分【6 1 。 2 3 1 根引导区 根引导区( b o o ts e c t o r ) 位于硬盘的第一个逻辑扇区,它由m b r ( 主引导 1 1 哈尔滨t 程人学硕士学位论文 记录m a s t e rb o o tr e c o r d ) 、d p t ( 硬盘分区表d i s kp a r t i t i o nt a b l e ) 和 b o o t r e c o r d i d ( 根记录号) 三部分组成,共一个扇区5 1 2 字节【7 】。 其中,主引导记录m b r 由4 4 6 个字节( 0 x 0 0 x 0 1 b d ) 组成,存放系统主 引导程序。d p t 表占用6 4 个字节( 0 x 0 1 b e h - 0 x 0 1 f d ) ,记录磁盘的基本分区 信息。分区表包括四个分区项,每项1 6 字节,分别记录了各个分区的信息。 引导区标记占用两个字节( 0 x 0 1 f e 和o x 0 1 f f ) ,对于合法的引导区,它的值 0 x 5 5 a a ,这是判别引导区是否合法的标志。如表2 5 。 表2 5 根引导区结构 位置 字节数 内容 0 x 0 4 4 6 主引导记录 0 x o l b e 1 6 分区信息1 0 x 0 1 c e 1 6 分区信息2 0 x 0 1 d e1 6 分区信息3 0 x 0 1 e e1 6 分区信息4 0 x o l f e 2 0 x 5 5 a a 分区表是由四个分区信息项组成的,每一项1 6 个字节,表示当前分区的 各项信息。 0 x 0 :分区状态,占用一个字节。0 x 0 表示非活动分区,0 x 8 0 表示活 动分区。 0 x l :分区起始磁头号,占用一个字节。此处取值0 x 0 1 。 0 x 2 :分区起始扇区和柱面号,占用两个字节。低字节的低6 位为扇 区号,高2 位为柱面号的第9 、1 0 位,高字节为柱面号的低8 位。 o x 4 :分区类型,占用一个字节。其保留值如表2 6 。 表2 6 分区类型保留值 值分区类型 0 x 0 bf a t 3 2 0 x 0 7n t f s 0 x 8 3l i n u x 0 x 0 c 主分区 1 2 0 x 5 :分区结束磁头号,占用一个字节。 o x 6 :分区结束扇区和柱面号,占用两个字节。 0 x 8 :该分区前的扇区数,占用四个字节。 o x c :分区大小,即总扇区数,占用四个字节。这一项也可以理解为 整个硬盘的存储空间,每个扇区的容量为5 1 2 b y t e s 。根据目前市场 上的习惯,一些厂商规定硬盘的容量以十进制计算,即如果硬盘容 量为4 g b ,则其容量大小为4 0 0 0 0 0 0 0 0 0 b ,转换为二进制则是 3 7 2 g b 。其占用的扇区数为7 8 1 2 5 0 0 ,转换为1 6 进制为0 x 7 7 3 5 9 4 。 在本系统中,对固态硬盘采用单一的分区模式,所以根引导区中只需要 一个分区信息项,从0 x 0 1 b e 开始占用1 6 个字节,而其他的分区信息则用o x 0 0 来进行填充。 2 3 2 根记录区 d b r ( d o sb o o tr e c o r d ) 是操作系统引导记录区的意思。它通常位于o 磁 头1 柱面l 扇区处,是操作系统可以直接访问的第一个扇区,它包括引导程 序和一个被称为b p b ( b i o sp a r a m e t e rb l o c k ) 的分区参数记录表等内容。d b r 占用三个扇区。第一个扇区为引导记录信息,保存了一些重要的参数和引导 程序,引导程序的主要任务是当m b r 将系统控制权交给它时,判断本分区 跟目录前两个文件是不是操作系统的引导文件。如果确定存在,就把它读入 内存,并把控制权交给该文件。第二个扇区为文件系统信息区。第三个扇区 为保留区 s l 。其主要内容如表2 7 。 表2 7d b r 区内容 名称偏字内容 移节 量数 b s _ j m p b o o t 03起始标志0 x e b 5 8 9 0 b s o e m n a m e 38 格式化硬盘的系统的标志,本系统采用a s c i i 字码为 “m s d o s 5 0 ” 1 3 哈尔滨:l 程大学硕十学位论文 b p b _ b y t s p e r s e c 1 12 每扇区的字节数,本系统采用5 1 2 字:i 了 b p b s e c p e r c l u s 1 3l 每簇的扇区个数,本系统采用8 个扇区 b p b r 5 v d s e c c m 1 42 保留扇区数,0 x 2 4 b p b n u m f a t s 1 6l 文件分配表个数为2 b p b r o o t e n t c n t 1 72f a t 3 2 文件系统中这两个字节应为0 b p b 3 0 t s e c l 6 1 9 2 f a t 3 2 文件系统中这两个字节应为0 b p b m e d i a 2 ll 如果设备是硬彘则该字节应为0 x f 8 ,如果设备是可移 动磁盘( 如软盘) 则该字节通常为0 x f 0 b p b f a t s z l6 2 22 f a t 3 2 文件系统中这两个字节应为0 b p b s e c p e r t r k 2 42 每条磁道含有的扇区个数为6 4 b p b n u m h e a d s 2 62 设备的磁头个数2 5 6 个 b p b h i d d s e c 2 8 4 隐藏扇区数为0 b p b 3 q t s e c 3 2 3 24 磁盘容量 b p b f a t s z 3 2 3 6 4 文件分配表大小 b p b e x t f l a g s 4 02 b i t 0 3 :止在读写的文件分配表编号,只有在对文件分 配表操作失败时有效 b i t 7 :0 表示将操作映射到所有的f a t 表 l 表示只有b i t 0 3 表示的那个f a t 表有效 其余各位是保留位 b p b f s v e r 4 2 2 文件分配表的版本号 b p b 。r o o t c i u s 4 4 4 指向数据区起始段的簇号,通常为2 b p b f s l n f o 4 8 2f s l n f os e c t o r 的地址,通常是1 b p b b k b o o k s e c 5 02b p b 表备份的地址,通常是6 b p b r e s e r v e d 5 21 2保留 b p b d r v n u m 6 41软盘为0 x 0 0 、硬盘为0 x 8 0 b s r e s e r v e d l 6 5l保留( 被w i n d o w sn t 使用) ,格式化硬盘的系统代码, 哈尔滨t 程大学硕十学位论文 一般为0 b s _ b o o t s i g 6 6l 扩展引导扇区标志( 0 x 2 9 ) , b sv r o l i d6 74 磁盘的i d 号 b s v o l l a b 7 1l l 磁盘的名称,如没有名称则为“n on a m e ” b s f i l s y s t y p e 8 28 文件系统格式,f a t l 6 或f a t 3 2 该扇区的前十一个字节表示引导记录信息。从0 x 0 b 开始则是b p b 表的 内容,它的结束以0 x 5 5 a a 为标志。 在引导记录信息后的一个扇区是文件系统信息扇区,见表2 8 表2 8 文件系统信息 位置字:仃数内容 0 0 h4 标忠字节0 x 5 2 5 2 6 1 4 1 0 4 h4 8 00 x 0 l e 4 h4 标忠字节0 x 7 2 7 2 4 1 6 1 l e 8 h4 空闲簇数 l e c h4 最近使用过的簇号 1 f 0 h1 2保留 1 f c h2 0 x 0 l f e h2 引导记录标志字节0 x 5 5 a a 文件系统信息扇区后的一个扇区为保留扇区,之后还有若干保留扇区及 备份扇区。紧跟着就是f a t 表了。 2 3 3f a t 表 f a t 表义簇号的方式记录簇的分配情况9 1 。在f a t 3 2 文件系统中,使用 4 个字节来标记簇号分配的链表,但实际上高4 位总为0 ,即用于实际的描述 簇号的位数为2 8 b i t s 。 硬盘的数据区的每一簇在f a t 表中多对应一个记录项,这个记录项包含 了该簇的使用情况和状态。因此,通过查找f a t 表就可以了解硬盘各个簇的 分配情况。例如:用0 x 0 表示簇未分配,0 x 0 f f f f f f 7 表示已损坏的簇, 0 x 0 f f f f f f 8 o x o f f f f f f f 表示簇结束的标志。对于某文件,其所分配的硬盘 15 哈尔滨r 程大学硕十学位论文 空间以簇为单位,从第一簇开始每一簇都指出下一簇的簇号,最后一簇写入 簇结束标志,由此在f a t 表中形成一个簇链表。 d i r ( d i r e c t o r y ) 是根目录区,紧接着备份f a t 表之后,记录着根目录下每 个文件( 目录) 的起始簇号、文件属性等重要信息。操作系统根据d i r 中文件 的起始簇号,结合f a t 表就可以知道每个文件、目录在硬盘中的具体位置了。 每个文件或目录的信息用一个目录项来记录,占3 2 字节,可以是目录项、子 目录项、卷标项( 仅根目录有) 、己删除目录项、长文件名文件或目录项等。 文件和目录的项目内容有所不同。 2 3 4 数据区 数据区位于f a t 表之后,占据硬盘

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论