[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf_第1页
[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf_第2页
[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf_第3页
[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf_第4页
[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

[学位论文]基于FPGA的IDE固态硬盘控制器的设计与实现.pdf.pdf 免费下载

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

文档简介

中山大学 硕士学位论文 基于FPGA的IDE固态硬盘控制器的设计与实现 姓名 阙海滔 申请学位级别 硕士 专业 软件工程 指导教师 周凡 20090603 基于F P G A 的I D E 固态硬盘控制器的设计与实现摘要 论文题目 专业 硕士生 指导教师 基于F P G A 的I D E 固态硬盘控制器的设计与实现 软件工程 阙海滔 周凡讲师 摘要 固态硬盘是一种以F L A S H 为存储介质的新型硬盘 由于它不像传统硬盘一 样以高速旋转的磁盘为存储介质 不需要浪费大量的寻道时间 因此它有着传统 硬盘不可比拟的顺序和随机存储速度 同时由于固态硬盘不存在机械存储结构 因此还具有高抗震性 无工作噪音 可适应恶劣工作环境等优点 随着计算机技 术的高速发展 固态硬盘技术已经成为未来存储介质技术发展的必然趋势 本文以设计固态硬盘控制芯片I D E 接口部分为项目背景 通过可编程逻辑 器件F P G A 基于A r A 协议并使用硬件编程语言v e r i l o g 设计了一个位于设备 端的I D E 控制器 该I D E 控制器的主要作用在于解析主机所发送的I D E 指令并 控制硬盘设备进行相应的状态迁移和指令操作 从而完成硬盘设备端与主机端之 间基本的状态通信以及数据通信 论文主要完成了几个方面的内容 第一 论文 从固态硬盘的基本结构出发 分析了固态硬盘I D E 控制器的功能性需求以及寄 存器传输 P I O 传输和U D M A 传输三种触r A 协议主要传输模式所必须遵循的时 序要求 并概括了I D E 控制器设计的要点和难点 第二 论文设计了I D E 控制 器的总体功能框架 将I D E 控制器从功能上分为寄存器部分 顶层控制模块 异步F I F O 模块 P I O 控制模块 U D M A 控制模块以及C R C 校验模块六大子功 能模块 并分析了各个子功能模块的基本工作原理和具体功能设计 第三 论文 以设计状态机流程和主要控制信号的方式实现了各个具体子功能模块并列举了 部分关键代码 同时给出了主要子功能模块的时序仿真图 最后 论文给出了基 于P I O 传输模式和基于U D M A 传输模式的具体指令操作流程实现 并通过S A S 逻辑分析仪和Q u a r t u s l I 对I D E 控制器进行了功能测试和分析 验证了本论文设 计的正确性 关键词 F P G A I D E 固态硬盘 D M A 读写 P I O 读写 基于F P G A 的I D E 固态硬盘控制器的设计与实现 A b s t F a c t T i t l e M a j o r N a m e S u p e r v i s o r D e s i g na n dI m p l e m e n t a t i o no fl D ES o l i dS t a t eD i s kC o n t r o l l e r b a s e do nF P G A S o f t w a r eE n g i n e e r i n g Q u eH a i T a o I n s t r u c t o rZ h o uF a n A b s t r a c t AS o l i dS t a t eD i s k S S D i sad a t as t o r a g ed e v i c et h a tu s e ss o l i ds t a t em e m o r y s u c ha sF L A S H t os t o r ep e r s i s t e n td a t a U n l i k et h et r a d i t i o n a lh a r dd i s k su s i n gh i g h s p e e ds p i n n i n gd i s k sa ss t o r a g em e d i a S S Dd o e sn o tn e e dal o ts e e k i n gt i m et h u si t o b t a i n sm u c hh i g h e rs e q u e n t i a la n dr a n d o ma c c e s ss p e e d I na d d i t i o n a sS S Dc o n s i s t s o fn om e c h a n i c a ls t o r a g ea r c h i t e c t u r e i th a sh i g hm e c h a n i c a lr e l i a b i l i t ya n dl o wn o i s e U n d o u b t e d l yS S Dw i l lp l a yal e a d 啦r o l ea sap r o m i s i n gs t o r a g et e c h n i q u ei nt h e f u t u r e W ef o c u so na nF P G Ac h i pd e s i g no fI D Ec o n t r o l l e rf o rS S Db a s e do nA T A p r o t o c 0 1 U n d e rt h ec o n t r o lo ft h ei n s t r u c t i o n sa n a l y z e db yI D Ec o n t r o l l e rf r o mt h e h o s t t h eS S D c a i lc o m m u n i c a t ew i t hi tt h r o u g hs t a t et r a n s i t i o na n dd a t at r a n s m i s s i o n T h i st h e s i si so r g a n i z e da sf o l l o w s F i r s t b a s e do nt h ea r c h i t e c t u r eo fS S D w e a n a l y z et h ef u n c t i o n a l i t yr e q u i r e m e n to fS S DI D Ec o n t r o l l e ra n dt h et i I I l i l l g r e q u i r e m e n to ft h et h r e em a j o rt r a n s m i s s i o nm o d e so f A T A p r o t o c o l t h a ti sR e g i s t e r P I Oa n dU D M A a n dw ea l s os u m m a r i z et h ek e yp o i n t sa n dt h ed i f f i c u l t i e so f d e s i g n i n ga nI D Ec o n t r o l l e r S e c o n d t h ea r c h i t e c t u r eo fI D Ec o n t r o l l e r c o n s i s t i n go f r e g i s t e r t o pc o n t r o lu n i t a s y n c h r o n o u sF I F Ou n i t P I Oc o n t r o lu n i t U D M Ac o n t r o l u n i ta n dC R C t e s t i n gu n i t i sg i v e nt od e m o n s t r a t ei t sf u n c t i o n T h i r d w ei m p l e m e n t e a c hu n i tw i t hf i n i t es t a t em a c h i n e a n ds o m ek e ys o u r c ec o d e sa r ee n c l o s e da sw e l la s t h et i m i n gs i m u l a t i o nd i a g r a mo ft h em a j o rf u n c t i o n a ls u b m o d u l e s F i n a l l y w e p r e s e n tt h ei n s t r u c t i o n sd e c o d e dp r o c e s so fP I O a n dU D M At r a n s m i s s i o nm o d e W e a l s ot e s ta n da n a l y z et h ef u n c t i o n a l i t yo ft h eI D Ec o n t r o l l e rb yu s i n gS A SL o g i c s A n a l y z e ra n dQ u a r t u s l IS Ot h a tt h ec o r r e c t n e s so fo u rw o r ki sv e r i f i e d 基于F P G A 的I D E 困态硬盘控制器的设计与实现 A b s t r a c t K e y W o r d s F P G A I D E S o l i dS t a t eD i s k D M Ar e a da n dw r i t e P I Or e a d a n dw r i t e 原创性声明 本人郑重声明 所呈交的学位论文 是本人在导师的指 导下 独立进行研究工作所取得的成果 除文中已经注明引 用的内容外 本论文不包含任何其他个人或集体已经发表或 撰写过的作品成果 对本文的研究作出重要贡献的个人和集 体 均已在文中以明确方式标明 本人完全意识到本声明的 法律结果由本人承担 学位论文作者签名 阙冯为 日期江哆年多月 学位论文使用授权声明 本人完全了解中山大学有关保留 使用学位论文的规定 即 学校有权保留学位论文并向国家主管部门或其指定机构送交论 文的电子版和纸质版 有权将学位论文用于非赢利目的的少量复 制并允许论文进入学校图书馆 院系资料室被查阅 有权将学位 论文的内容编入有关数据库进行检索 可以采用复印 缩印或其 他方法保存学位论文 保密的学位论文在解密后使用本规定 黧鬻麓磐妁嚣耀乡日 日期 少吁年6 月多日日期力酣声多月3 日 基于F P G A 的I D E 固态硬盘控制器的设计与实现绪论 第1 章绪论 随着电子产品技术的高速发展 电子芯片的更新换代速度日新月异 而推动 电子产品发展的动力及核心就是E D A E l e c t r o n i cD e s i g n A u t o m a t i o n 电子设计 自动化 工程 E D A 工程是以计算机为工作平台 借助E D A 操作软件 使用硬 件描述语言对可编程器件进行操作 从而实现电子系统的电子产品自动化设计过 程 l 而F P G A 是可编程器件中商业化最为成功的一种 通过计算机对芯片进行 编程设计 使得各种片上系统的设计趋向软件化 自动化 智能化 也是基于这 种特征 使得F P G A 越来越得到广泛的应用 本章首先对基于F P G A 的I D E 固态硬盘控制器的研究背景进行分析 然后 扼要的介绍了本文的主要的研究工作 1 1 论文背景 近年来 随着计算机技术的飞速发展 人们对于数据存储的要求也不断提高 高速度 高安全性 高抗震性 低噪音已经成为人们选择存储设备的基本要求 传统的机械硬盘由于其本身硬件架构的条件限制 其低下的随机访问效率 易损 的机械存储结构以及磁盘旋转时的噪音已经成为不可改变的缺陷 2 于是 随着 F L A S H 芯片技术集成度的不断提高 固态硬盘开始走入人们的视线 固态硬盘 以F L A S H 作为存储介质 它有着传统硬盘不可比拟的顺序和随机存储速度 且 由于固态硬盘不存在机械存储结构 因此还具有高抗震性 无工作噪音 可适应 恶劣工作环境等优点 同时 固态硬盘亦兼容传统硬盘的A T A 协议 因此 固 态硬盘已经成为存储设备发展的必然趋势 而作为固态硬盘的核心控制芯片 它 包含了I D E 接口设计和F L A S H 的控制管理两大模块 因此 本论文所设计的I D E 接口控制器对于固态硬盘的性能起到了一定的决定性的作用 此外 随着E D A 工程的迅速发展 F P G A 系统级芯片的不断成熟 S O C S y s t e mO nC h i p 的设计思路也越来越普及 3 许多原本非常复杂的控制功能 都能在一块普通的F P G A 芯片上实现 同时 F P G A 还拥有开发周期短 应用灵 活 速度快 4 等优点 因此 使用F P G A 来做为I D E 固态硬盘控制器的载体是一 个非常好的选择 基于F P G A 的I D E 固态硬盘控制器的设计与实现绪论 基于以上所描述的两个方面 本文提出了设计一个基于F P G A 的I D E 固态 硬盘控制器的课题 同时 本论文的课题亦是作者在某著名大公司参与进行的一 个预研子项目 目的在于使用F P G A 设计一个位于硬盘设备端的I D E 控制器 以实现固态硬盘与主机之间的命令操作以及数据传输 1 2 国内外发展现状 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 接口固态硬盘是由深圳浩 天电子技术开发有限公司生产的赛速 A S A X 系列 在该固态硬盘控制芯片的 控制下 它的平均读取速度达到5 1 M B s 写入速度达到5 2 2 8 M B s 相对于I D E 接口的D M A l 3 3 m s 的传输速度来说 这个访问速度明显远远还不是瓶颈 而 对固态硬盘访问速度起核心作用的就是固态硬盘的控制芯片 其中I D E 控制器 又对控制芯片的功能起到了一定的决定性作用 因此 相信在接下来的几年 国 内会有更多的厂商投入到I D E 固态硬盘的研究行列 1 3 论文主要工作 本论文所设计的I D E 控制器是位于硬盘控制电路板上的 用来控制固态硬 盘的工作状态 同时充当固态硬盘存储介质与主机的系统总线之间的数据通道 它负责接收主机发送的命令码并解析转化为相应的御 A 协议指令操作 同时它 能引导固态硬盘配合主机时序完成与主机的数据传输 本文针对基于F P G A 实现的I D E 固态硬盘控制器进行研究 首先根据固态 硬盘的证据结构 分析了该I D E 控制的功能性需求 然后本文分析了该I D E 控 制器实现A T A 协议所必须的两种主要的数据传输模式的时序要求 并根据这些 需求以及I D E 控制器自身特点概括了设计与实现的难点和要点 接着本文根据 2 基于F P G A 的I D E 固态硬盘控制器的设计与实现绪论 根据F P G A 的自顶而下 5 1 的开发原则 提出了将I D E 控制器以其功能职责分为 六大子功能模块的设计方法 子功能模块由顶层模块状态机统一调度 并与顶层 模块状态机同步执行 同时子功能模块内部又由不同的状态机来组成 各状态机 同步操作 互相协作完成状态迁移 以此来实现I D E 控制器对御A 协议的解析 和对主机的数据传输 这样 一方面提高了I D E 控制器设计程序的可读性 健 壮性和可扩展性 使得I D E 控制器能更好地配合I D E 协议的时序 另一方面 良好的程序设计也能更加节约逻辑资源 提高I D E 固态硬盘控制器的功能扩展 能力 降低了成本 在此基础上 论文以基于状态机设计和主要控制信号实现的 方式实现了各个具体的子功能模块 对主要的子功能模块进行了时序仿真或验 证 并给出了I D E 主要指令集操作的流程图实现 最后 论文使用S A S 逻辑分 析仪对本文所设计的I D E 控制器进行了功能测试 并通过分析测试结果验证论 文设计的正确性 1 4 论文章节安排 本论文章节内容安排如下 第l 章 绪论 在本章节中 首先介绍了论文的研究背景 然后阐述了论文 所进行的主要工作 第2 章 F P G A 介绍和I D E 协议综述 在本章节中 首先对F P G A 的结构 和F P G A 开发设计方法进行了系统的介绍 然后描述了I D E 接口的结构以及I D E 接口所遵循的A T A 协议的发展历史 最后系统的介绍了A T A 协议中关于寄存器 和关键指令集部分的描述 第3 章 基于F P G A 的I D E 固态硬盘控制器设计的需求分析 在本章节中 首先从固态硬盘的结构出发 分析了I D E 控制器在固态硬盘中所处的位置 并 由此对I D E 控制器所负责的功能进行了功能性需求分析 然后 论文对于I D E 控制器所必须遵循的A T A 协议主要传输模式的时序要求进行了具体分析 并概 括了I D E 控制器设计的难点与要点 第4 章 基于F P G A 的I D E 固态硬盘控制器的具体设计与实现 在本章节 中 论文首先给出了I D E 控制器的总体设计架构 将I D E 控制器从功能上分为 六个子功能模块 并描述了各个子功能模块的主要功能 然后 论文实现了各个 3 基于F P G A 的I D E 固态硬盘控制器的设计与实现绪论 具体的子功能模块并列举了部分关键性代码 并对主要的子共功能模块进行了时 序仿真 接着 论文给出了A r A 协议主要指令集的具体的指令操作流程实现图 最后 论文使用测试软件对本文所设计的I D E 控制器进行了功能测试 根据功 能测试图分析并验证了论文设计的正确性 第5 章 总结与展望 本章总结了全文的研究成果以及I D E 控制器架构设 计方面的优点 然后对本论文缺点和不足做了简要介绍 并对未来的工作做了一 定的计划 4 基于F P G A 的I D E 同态硬盘控制器的设计与实现F P G A 介绍和D E 协议综述 第2 章F P G A 介绍和I D E 协议综述 本章首先对F P G A 的结构进行简要的介绍 然后对F P G A 的设计方法和设 计流程进行必要的概述 接着 论文会介绍I D E 协议的发展 分析I D E 协议的 体系结构 并对I D E 协议的关键寄存器和关键指令集做出详细的综述 2 1F P G A 介绍 F P G A 全称为现场可编程逻辑器件 它与C P L D 复杂可编程逻辑器件 是两种目前应用非常广泛的逻辑器件 被称之为可编程专用集成电路 而与 C P L D 相比 一般F P G A 具有更高的集成度 更强的逻辑功能和更大的灵活性 F P G A 不仅可以解决电子系统小型化 低功耗 高可靠性等问题 而且其开发周 期短 开发软件投入少 芯片价格不断降低 促使F P G A 越来越多地取代了A S I C 的市场 特别是对小批量 多品种的产品需求 使F P G A 成为首选 8 9 2 1 1F P G A 结构介绍 一般来说 F P G A 在结构上包含3 类可编程资源 可编程逻辑功能块 C o n f i g u r a b l eL o g i cB l o c k C L B 可编程输入 输出块 I OB l o c k l O B 可编 程互连 I n t e r c o n n e c tR e s o u r c e I R 此外 F P G A 在结构上还包含了一个叫做 S R A M 结构的配置存储单元以及锁相环 P L L 等其他一些基本的单元 1 0 I I 如 图2 1 所示 C L B 是实现用户逻辑功能的基本单元 它们通常规则地排列成一个 阵列 散布于整个芯片中 可编程输入 输出模块主要完成芯片上逻辑与外部引 脚的接口 它通常排列在芯片的四周 而可编程互连资源包括各种长度的连线线 段和一些可编程链接开关 它们将各个C L B 之间或者C L B 与I O B 之间以及I O B 之间连接起来 构成特定功能的电路 同时 不同厂家的F P G A 在可编程逻辑块 的规模 内部互连线的结构和采用的可编程元件上有较大的差异 一般来说 常 见F P G A 从结构上可以分为三类 1 2 查找表结构 多路开关结构和多级与非门 结构 S 基于F P G A 的I D E 固态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 1 查找表结构性F P G A 该种F P G A 的可编程逻辑单元为查找表L U T L o o k U pT a b l e 由查找表构成函数发生器 通过查找表来实现函数 目前的F P G A 通 常采用4 输入的L U T 所以一个L U T 可以看成一个有4 位地址线的R A M 2 多路开关型F P G A 该种F P G A 中 可编程逻辑功能模块是可配置的 多路开关 利用多路开关的特性对多路开关的输入和选择信号进行配置 然后接 到固定电平或输入信号上 实现不同的逻辑功能 3 多级与非门级F P G A 它基于一个与 或 异或逻辑块 该基本电路由一 个触发器和一个多路开关来扩充 圈曰圈 日圈日 图2 1 F P G A 的基本结构示意图 2 1 2F P G A 设计流程 一般来说 完整的F P G A 设计流程包括电路设计输入 功能仿真 逻辑综合 优化 综合后仿真 布局布线 时序仿真与验证 板级仿真与验证 硬件测试和 配置数据等 1 3 1 6 1 如图2 2 该设计流程参考自 数字逻辑E D A 设计与实践 M A P L U s l I 与Q u a r t u s 双剑合璧 页4 5 4 7 6 日 固 日 日 曰 曰 基于F P G A 的I D E 固态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 图2 2 F P G A 设计流程示意图哪 1 电路设计与输入 电路设计与输入是指通过某些规范的描述方式 将电路构思输入给E D A 工 具 常用的设计输入方法有硬件描述语言法和原理图设计方法等 目前进行大规 模程序设计时 通常采用硬件描述语言输入法 它采用的是自顶而下的设计方法 根据系统的设计需求 首先对系统的结构和功能进行定义 主要包括 系统功能 描述 技术参数定义 功能模块划分及描述 通信协议 软硬件协同实现方案 该设计流程图参考自论文 基于F P G A 的S A T A 控制器的研究与实现 第1 1 页 7 基于F P G A 的I D E 同态硬盘控制器的设计与实现 系统数据流 控制流和存储方案 同步方案 测试方案 模块接口信号 定义及 连接 寄存器定义等 然后使用硬件描述语言进行算法行为描述 1 7 电路设计 与输入在整个F P G A 的开发流程中是至关重要的一环 它直接影响后面工作的质 量 时间以及效率 如逻辑综合与测试 产品功能扩展等 一个好的电路设计与 输入能更加节约开发成本 能使产品更有效的工作 同时也能更容易的进行功能 的扩展 2 功能仿真 电路设计完成后 为了验证电路功能与设计要求的一致性 需要用专门的仿 真工具对设计进行功能仿真 功能仿真又称为前仿真 P e r S i m u l a t i o n 1 8 通 过仿真能及时发现设计中的错误 从而提高设计的可靠性和设计的效率 功能仿 真的主要目的就是验证语言设计的电路结构是否和设计意图相符 仿真过程没有 加入时序信息 不涉及具体器件的硬件特性 3 逻辑综合与优化 逻辑综合是指将硬件描述 原理图等设计输入翻译成基本门 R A M 触发 器等基本逻辑单元组成的逻辑网表 并根据目标与要求 约束条件 优化所生成 的逻辑网表 输出标准格式的网表文件 供F P G A 厂商的布局布线器进行实现 4 综合后仿真 综合后仿真用于对综合的结果进行检验 以验证综合后的电路结构是否与设 计意图相符 是否存在歧义 它在仿真时 将综合生成的标准延时文件反标注到 综合仿真模型中去 可估计门延迟带来的影响 但值得注意到是 综合后仿真只 能估计门延迟 而不能估计线延迟 因此 它实际的仿真结果与布线后的实际情 况仍然有一定的差距 这种仿真的主要目的在于检查综合器的综合结果是否与设 计输入一致 目前主流综合工具日益成熟 对于一般性设计 如果设计者确信自 己表述明确 则可以省略综合后仿真 5 布局布线 逻辑综合的结果是一些由基本们 R A M 等基本逻辑单元组成的逻辑网表 与实际芯片的配置情况还有较大的差距 布局布线过程是实现过程的最主要的过 程 所谓实现过程 是指根据所选择F P G A 芯片的型号 使用F P G A 厂商提供 的工具 将综合输出的逻辑网表适配到具体的F P G A 器件上的过程 布局和布线 8 基于F P G A 的I D E 同态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 是两个不同的过程 布局是指将逻辑网表中的硬件原语或者底层单元合理地适配 到F P G A 内部的固有硬件结构上 布局对于设计的最终产品具有很大的影响 布 线则是指根据布局的拓扑结构 利用F P G A 内部的有限资源 合理正确连接各个 元件的过程 一般来说 布局布线会根据不同的时序约束而有较大的不同 用户 可以通过设置参数来制定布局布线的优化准则 总的来说 优化目标主要包括面 积和速度两个方面 用户可以根据设计的主要矛盾来选择优化面积或者优化速度 又或者二者平衡 但一般来说满足时序约束最重要 此时选择速度或时序最佳 6 时序仿真与验证 时序仿真的主要目的在于验证F P G A 的实际工作时序与所要求的时序是否 符合 由于时序仿真是在布局布线之后的仿真 因此时序仿真不仅包含了门延时 还包含了线延迟 因此能较好地反映芯片的实际工作情况 通过时序仿真和验证 能及时地发现是否存在不满足时序约束条件或者器件固有时序规则 如建立时 间 保持时间等 的情况 确保设计的可靠性和稳定性 7 板级仿真与验证 在某些高速设计的情况下需要使用第三方的板级验证工具进行方正和验证 如D e s i g n T i m i n gD e s i g n e r 等 这些工具能较好地分析高速信号之间的电磁干扰 等电路特性 8 硬件测试 该步骤是指将前面步骤所生成的配置文件写入到芯片中进行测试 示波器和 逻辑分析仪是主要的测试调试工具 一般来说 设计人员在设计F P G A 时会保留 一些引脚作为J T A G 接口 这些J T A G 口可以用来读取F P G A 内部信号 通过厂 商提供的开发工具来设置特定的触发点 捕捉F P G A 信号的时序 从而进行F P G A 在实际电路板中工作时的时序测试 此外 测试人员也可以通过示波器来进行硬 件测试 首先在示波器中设置特定的信号触发条件 然后通过测试探头对F P G A 的实际工作时的引脚信号进行捕捉和测试 硬件测试是F P G A 设计中的最后一 环 是最终产品质量的最后把关 所有硬件测试中所反映的问题 都需要根据错 误的定位返回到相应的步骤进行更改或者是重新设计 以确保F P G A 设计的稳定 性和可靠性 9 基于F P G A 的I D E 固态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 2 2I D E 接口 2 2 1I D E 接口简介 I D E I n t e g r a t e dD r i v eE l e c t r o n i c s 即 电子集成驱动器 又称为A r A A T A t t a c h m e n t 接口 1 9 它是C o m p a q 公司为解决老式的S T 5 0 6 4 1 2 接口速度 慢 开发成本高而开发的新硬盘标准 2 0 1 9 8 4 年W e s t e m D i g i t a l 公司生产了S T 5 0 6 控制器 该控制器可直接安装在驱动器中 并通过4 0 芯电缆与系统总线连接 这是世界上第一个I D E 接E l 的硬盘驱动器 并应用于C o m p a q 计算机系统中 由于I D E 接口的硬盘具有价格低廉 稳定性较好 标准化程度高 2 1 1 等优点 使之迅速得到普及并得到了长足的发展 并成为了工业标准 1 9 8 8 年1 0 月A N S I 中X 3 T 9 2 工作组的一个委员会开始讨论I D E 的有关问题 作为第一步 该委员 会提出了一个通用I D E 接口的公共访问模式 I D E 接口新的名字叫御队 1 9 9 3 年2 月发表了3 1 版 使其成为了A N S I 标准变成了可能 后来 A T A 经历了从 A L A 1 到A T A 6 的发展 2 2 1 还有A T A 7 它兼容之前所有的A T A 协议标准 同 时将D M A 传输的最高传输速度提升至1 3 3 M B s 御隗 7 标准协议也是本篇论文 所遵循的A r A 协议 图2 3 表明了I D E 的基本功能 从图中我们可以看出I D E 控制器是怎样的 嵌入外设单位 I D E 总线适配器的左边只需要少量的译码器和总线驱动器 在这 里I D E 驱动器更像一个元件而不是一个外设 2 3 1 一 数据缓冲器 一 入心 数据分离器 驱动器存储介质 接 叫控制器 r 卜 读取机构 接 一 口 适 口 叫 酉己 器 一 路器 图2 3I D E 基本功能示意图 该图片参考自论文 基于F P G A 及N i o s 软核处理器的硬盘加密卡设计 1 0 基于F P G A 的 D E 同态硬盘控制器的设计与实现 F P G A 介绍和 D E 协议综述 2 2 2I D E 接口连接方式 I D E 总线有两种连接方式 2 4 2 5 1 第一种连接方式是标准安装方式 它是通过 一个I D E 接口适配器与系统总线连接 两个I D E 驱动器则直接连接到I D E 适配 器上面 0 号驱动器是主驱动器 1 号驱动器是从驱动器 在正常情况下这两个 驱动器相互独立 对它们的选择由设备寄存器决定 第二种安装方式是标准的 A T A 连接方式 由带I D E 接口的接口控制器通过E S D I 接口或S T 5 0 6 与硬盘接 口连接 2 2 3I D E 接口信号定义 表2 I I D E 接口信号定义 管脚名称方向说明管脚 名称 方向说明 1R E S E T I复位 2 1 D M A R Q O D M A 请求 2G r o u n d地 2 2G r o u n d 地 3D D 7 I O 数据总线位7 2 3D I O W I I o 写 4D D 8I O数据总线位8 2 4G r o u n d 地 5D D 6I O数据总线位62 5 D I O R I I O 读 6D D 9I o 数据总线位9 2 6G r o u n d地 7D D 5 I o 数据总线位5 2 7I O R D YO I O 通道准备 8D D l OI O数据总线位1 02 8 C S E L 设备选择 9D D 4I o 数据总线位4 2 9D M A C K ID M A 确认 1 0D D l lI o 数据总线位1 1 3 0G r o u n d地 1 1 D D 3 I O 数据总线位3 3 1 I N T R Q O 中断请求 1 2D D l 2I O数据总线位1 23 2N C A T A 2 中使用 1 3D D 2I O 数据总线位2 3 3D A lI地址位l 1 4D D l 3I o 数据总线位1 3 3 4P D l A G 见注1 1 5D D lI O数据总线位l3 5 D A OI 地址位O 1 6D D l 4I O数据总线位1 43 6D A 2I地址位2 1 7D D 0I o 数据总线位0 3 7C S O I片选0 1 8D D l 5I O 数据总线位1 5 3 8C S l 一I 片选l 1 9G r o u n d地 3 9D A S P O 驱动器状态 2 0N C4 0 G r o u n d 地 注l P D I A G C B L I D 复用信号 当一条排线上有两个存储设备时 设备1 通 知设备0 设备1 已经自检通过 I D E 接口通过8 0 芯电缆与系统总线连接 其接口信号定义如表2 1 1 2 6 之引 其 田该表格参考自协议 鲥A t t a c h m e n tw i t hP a c k e tI n t e r f a c e 7V o l u m e3 1 1 基于F P G A 的D E 固态硬盘控制器的设计与实现 F P G A 介绍和D E 协议综述 中带f i g i 9 9 后缀的信号 如R E S E T 表示低电平有效 方向是相对于硬盘而言的 I 表示信号是进入硬盘的 o 表示信号是从硬盘出来 I O 表示双向 下面对部 分关键信号用途进行一下详细的介绍 C S I 0 一 这个是主机传送过来的芯片选择信号 低电平有效 它和信号 D A 2 O 一起 通过不同的组合信号内容 可以用来选择不同的指令块寄存器或 者是控制块寄存器 D A 2 0 这个是一个3 比特位码地址信号 主机可以通过设置不同的D A 值与C S 信号一起来访问某一寄存器或者是数据端口 D A S P 低电平有效 当控制器处于重启阶段是 设备1 可以通过设置D A S P 信号为1 来表示设备已经准备好 D D 1 5 0 双向数据线 直接取自系统数据线 用于传输数据 命令或者是 从驱动器中读取状态信息 D I O R 和D I O W 驱动器内部读写时的控制信号 D M A R Q 和D M A C K 驱动器内部的D M A 传输控制信号 其中D M A R Q 信号是设备用来向主机发送D M A 传输请求时发车 而D M A C K 则是主机当 D M A 传输准备好时对D M A R Q 信号的响应 H q T R Q 中断请求信号 直接与系统总线的I R Q l 4 连接 用来向主机发出 中断请求 I O R D Y 若该信号为低电平 则表示驱动器设备没有准备好 主机不可访 问 此时C P U 插入等待周期 延时对驱动器的访问 反之则表示设备已经准备 好 可以立即进行访问 当该信号不使用时为高阻态 P D I A G 该信号是上电时所用到的一个信号 当它为高电平时表示驱动器1 已经完成自我检测 2 3 I D E 接口协议 I D E 接口具有比较复杂的协议 它由一组数量较多的状态组成 每一个I D E 命 令都在相应的状态中执行 在完成命令本身的功能的同时 还可能引起状态的转 移 下面图2 4 和图2 5 是I D E 主机和硬盘驱动器总体的状态和协议转换刚2 8 1 由图中我们可以看出不管是主机方面的状态图还是硬盘驱动器的状态转换 基于F P G A 的 D E 同态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 都是一个闭环控制过程 主机和驱动器任意时刻都处于某种状态之中 并且这种 状态将根据各种不同的条件而向下一个状态转换 另外基本上每一种状态根据触 发条件向下一状态时都有好几种选择 每一个具体的状态都可以分化为很多小的 状态 由于这种状态的复杂变化 给我们分析和根据各种状态的变化带来了一定 的难度 抖H R H o s tp o w e r0 1 1 1 o rH a r d w 3 r eR e s e t P o w e rO n IF 三三S E Ta s s e r 州 H S R H o s tS o f t w a r e R e s e t I S 最S 了 H N o H o S tN o n O a t a C O r n m a n d C o m r n 辛n d S e r v i c e r e t u r n 8 毫J sr 或e a s e d H P I O I H o s tP l Od a t a l nc o m m a n d H P D o H o s tP I Od j 扫卜 O u tc o m m a n 畦 H D 瓤A H o s tD 剖l e o m m a n d H E D H o s tE X E C U T E O E V l C ED 逸G 目O S l CP o m r l l 溘n d H D R H o s tD V l C E R E S E TC O r n m a j l 3 d H P H o s tP A C K E Tr l o r l d a t a P I Od a t ac o m m a n d H P D H o s tP A C K E T D M Ac o m m a n d H D M A Q H o s tD M A Q U E U Dc o m m a n d 图2 4 D E 总体协议主机状态变换图 该表格摘录自协议 A TA t t a c h m e n tw i t hP a c k e tI n t e r f a c e 7V o l u m e3 1 3 基于F P G A 的I D E 固态硬盘控制器的设计与实现F P G A 介绍和1 D E 协议综述 o 一 吣坩蚋J 三E s t 州 一 一 l 1rf 轴 甜t m 纠e 袖 隋瓤口 口暑 俺秘 嘲 一L C a m 妒a 州撕 c 忡I dt 6 一删 t 矗鼋 二呵5 r o 翻r K O L f t n I L r I 1 暑u I t 畦一 l l R lo 种一 摹o t M 矗譬 t I I 溘R 0 7 o V t r l I I o P 叼电籼 一纠o 喇k 口 铒 o 冉 量 n c 日r m t l 番 o L l l L r 1 一I I I P I I o Q T 口 心 I o 啊 勺 一 r 7 e o 盯耵n n d l 童O k t J k 0 叫哮 l 5 叠盘产篮 r 一 l 一 I L 一 i t J 一 r 1 3 u l N O o v 拍口 鼻 C U T E D l E O D 啊 冲 冀I 腓举蜘秭一州一一 臼附 醮吨蝌串戳 I l 一一1 l L 一 J l 1 帕 ba c o 孽 v I C 毫R 暑 t L 搿瞄 嗣缓 一 口P b 坩l C K f t 翻 tp 垒 蔓越皇 拿 L 一 l 一 L q1 1 t 一 一 l 一 r 峄嗡 O 岍p l 屺t t E ro 眦0 0 l t d A f 麓t d 1 e o n l m I d o 州拦翌 o 一一j 一 一一1 一 一一JI 2 3 1I D E 传输模式 图2 5I D E 总体协议设备状态变换图 A T A 7 的标准中定义了三种数据的传输模式 并口传输P I O 模式 M u t i w o r d D M A 模式和U l t r aD M A 模式 三种传输模式中 以P I O 模式的传输速度最慢 M D M A 模式和U l t r aD M A 模式的差别在于硬件时序上有所不同 后者在硬件时 序上有所改进 带来数据传输速度的提高 同时不增加软件编程人员的复杂程度 因而该传输模式在硬盘接口技术的发展上具有重大的意义 2 9 并彻底取代了 M D M A 传输模式为主机进行数据传输 P I O 是最早实现的并口传输方式 它通过数据寄存器的读写来实现数据的传 输 当设备空闲时 一旦主机成功的向命令寄存器写入P I O 传输指令 就能立 回 该表格摘录自协议 A TA t t a c h m e n tw i t hP a c k e tI n t e r f a c e 7V o l u m e3 1 4 基于F P G A 的I D E 固态硬盘控制器的设计与实现F P G A 介绍和I D E 协议综述 即进行P I O 的传输 A T A 7 协议中定义P I O 模式有0 1 2 3 4 五种方式 3 0 传输速度P 1 0 0 最慢 P 1 0 4 最快 一般来说 能兼容传输速度快的模式的主机一 定能兼容速度的P I O 模式 而如果不能兼容速度快的P I O 模式则自动转化为速 度慢的传输模式 U D M A 模式和多字的D M A 传输模式在软件上是没有区别的 因为在硬件 上屏蔽了软件的细节 发起U D M A 传输时比较复杂的 特别是对时序的实现非 常严格 加m 7 相比于以前版本 定义了更快的U D M A l 3 3 模式 有7 种D M A 传输模式 其传输速度达到了1 3 3 M B s 对于F P G A 芯片的门延迟和时钟频率要 求是比较苛刻复杂的 3 1 1 与P I O 模式相同 D M A 传输中速度较快的模式能兼容 速度较慢的模式 此外 D M A 数据传输一般是通过数据端口来进行的 而不像 P I O 模式采用数据寄存器 一般来说 主机对数据传输模式的选择是通过写入特征命令s e tf e a t u r e s 并结 合该指令的子命令参数来实现的 该条命令属于无参数指令集 当主机向I D E 控制器的特征寄存器写入0 3 h 的子命令参数时 则可以通过向扇区数寄存器写不 同的值来设定特殊的传输模式和传输的方式 此外 在主机上电时 I D E 控制器 也会通过指令I D E N T I F YD E V I C E 的某一位向主机反馈所能支持的传输模式和 传输方式 以帮助主机确定接下来数据传输所能采用的传输方式 2 3 2I D E 驱动器中的寄存器 I D E 接口协议中定义了I D E 接口中所必须用到的寄存器 在I D E 接口中 这些寄存器的主要作用在于接收主机传过来的命令信息或者反映设备命令执行 的状态 I D E 协议中的所有命令都是通过读 写寄存器内容来执行的 I D E 接口 一共有两组寄存器 命令寄存器和控制寄存器 命令寄存器用来接收命令和传送 数据 控制寄存器组则用来作为磁盘控制 命令寄存器包括 扇区地址寄存器 柱面地址寄存器 设备寄存器 扇区数寄存器 命令寄存器 状态寄存器 特征 寄存器 错误寄存器和数据寄存器 而控制寄存器则包括辅助状态寄存器和设备 控制寄存器 各个寄存器除了数据寄存器 都是8 位的寄存器 而数据寄存器则 是1 6 位的寄存器 此外 A r A 协议规范为每个寄存器都提供了一个由C S 1 0 和 D A 2 0 总共五个信号所组成的地址编码 这样 I D E 控制器可以根据这个地址 基于F P G A 的I

温馨提示

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

评论

0/150

提交评论