版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑RAID控制器中磁盘接口控制器流水线设计与实现-设计应用摘要:在研究磁盘接口功能和现有磁盘接口设计的基础上,提出了一种带四级流水的磁盘接口设计模型,并对该模型实现过程中的模块间通信问题和模块间缓冲管理问题进行了相应的分析和设计。通过FPGA仿真与实验结果表明,在各种情况下,磁盘接口的吞吐率都有提高,在高写请求率和重负载两种情况下尤为显著。
随着网络发展和计算机的普及应用,人们对存储系统的性能要求越来越高,尤其是关键事务的应用。廉价冗余磁盘阵列(RAID)采用分条和冗余的方法提高了存储系统的容量、速度和可靠性,已成为高性能数据存储的结构。磁盘阵列控制器是磁盘阵列的,多数缓存预取策略、缓存置换策略、磁盘聚合写策略、数据冗余计算、数据备份与重建均由磁盘阵列控制器完成。磁盘接口控制器主要负责磁盘组的管理及读写磁盘操作的具体实现。
流水线技术是计算机技术中同时具备空间并行性和时间并行性的技术,它把一个顺序处理的过程分解成若干个子处理过程,每个子处理过程能在专用的独立模块上有效地并行工作。本文通过对磁盘接口控制器的流水线设计,提高了磁盘接口的吞吐率。较高的磁盘接口控制器吞吐率可以降低平均访问时间,使复杂有效的预取和置换算法方便地应用于磁盘阵列,提高缓存的命中率,从而提高磁盘阵列的整体性能。
1现有磁盘接口控制器设计
磁盘接口设计方式主要有2种:(1)使用通用处理器充当磁盘接口控制器,通过在处理器上运行相应的软件完成来自控制器上其他处理器的磁盘操作请求。这种方式的优点就是实现简单,但缺点也很明显。每一个新的磁盘操作请求必须在前一磁盘操作请求完成之后才能启动,并且需要占用大量处理器时间的异或操作也由该处理器承担,这使得每磁盘操作的时间太长,进而使得磁盘接口控制器的平均磁盘访问时间过长,吞吐率较低,尤其是降级模式读操作和磁盘写操作。(2)把需要长时间占用通用处理器的异或操作独立出来,由异或专用ASIC完成此功能,其他操作仍由通用处理器运行相应的软件完成。现在的中低端磁盘阵列常采用这种方式。使用专用的ASIC分担所有的异或操作,虽然可以部分减少需要异或操作的磁盘访问时间,如降级模式读操作和磁盘写操作,但新的磁盘操作也必须在前一磁盘操作完成之后才会启动,磁盘操作过程也是按顺序执行的,整体的吞吐率仍不是很高。所以这种方式不适合于高端磁盘阵列的需要。
2并行流水线设计模型
与其他磁盘接口不同,磁盘阵列中的磁盘接口除了简单地完成磁盘的读写外,还需要完成数据块的逻辑地址到实际磁盘物理地址的映射和保证数据块在磁盘阵列中可靠地存储。根据所有磁盘操作请求完成的特点,磁盘接口操作被划分为4个子任务,每一个子任务由一个独立的模块来实现。在具体实现时,这些模块可以在同一芯片内,也可以在不同芯片中。这4个模块分别是:共享缓存操作模块、异或计算操作模块、地址映射模块和磁盘操作模块。共享缓存操作模块根据给定的共享缓存数据块地址读写数据块;异或计算操作模块是在降级模式读磁盘操作和正常模式下磁盘写操作时,完成异或计算;地址映射模块主要实现磁盘数据块的放置策略,将主机访问磁盘阵列的地址,如逻辑块地址LBA、逻辑单元号LUN,转换为实际的磁盘号、柱面号、磁道号、扇区号等;磁盘操作模块主要是根据地址映射模块操作后的结果完成磁盘的读写,包括相应的协议转换。图1是同一芯片实现各模块的磁盘接口控制器的结构框图。
实际上每个磁盘操作执行的这四个模块的次序和次数是不定的。读磁盘操作的数据流方向与写磁盘操作的数据流方向是相反的,执行这四个模块的顺序也是相反的。读写磁盘操作的各模块执行顺序如图2所示。一个磁盘操作请求只要在其执行的个模块空闲时便可启动,多个磁盘操作请求可以重叠的方式被磁盘接口控制器处理。理想情况下,磁盘接口控制器可以同时处理4个磁盘操作请求。
3关键问题分析
磁盘接口的并行流水线设计模型在具体实现时有2个问题需要解决:(1)如何控制磁盘操作请求在模块间执行顺序和执行次数。因为在具体执行时有3种情况:4个模块每个模块执行1次、执行部分模块多次和只执行3个模块。(2)需要操作的数据块如何在模块间进行传递。
3.1任务通信
要控制一个磁盘操作请求如何在模块间进行处理,一种有效的方式就是让每个模块都知道这个磁盘操作请求的具体需求。为此,一个用来描述磁盘操作请求的特殊的数据结构被引入,其结构如图3。每一个磁盘操作请求都有一个磁盘操作数据块结构,磁盘接口控制器预处理部件每收到一个来自控制器上的其他处理器的磁盘操作请求便产生相应的操作数据块结构,并根据其操作类型放入相应的模块任务池中。
每一个模块都有一个任务池来存放操作数据块结构。模块总是从自己的任务池中取操作数据块结构,然后根据数据块结构中的说明进行相应的处理,处理完成后再根据数据块结构中的说明正确地放入到下一个模块的任务池中。如某个模块处理后磁盘操作请求已完成,则该模块不再向其他模块传递该数据块结构,直接将其删除。这种方式简单有效,易于编码实现。
3.2缓冲管理
在RAID5中,计算奇偶校验块需要同分条中的4个数据块,因此异或计算模块需要一个较大的缓冲来存放数据块。其他模块也至少需要一个数据块大小的缓冲存放当前操作的数据块。一个双队列的生产者-消费者模型(如图4)被用来实现高效缓冲管理。
这2个队列的长度不是固定的,是根据每个操作方向上的请求数量动态调整。在图4中,若读磁盘操作请求较多则增加缓冲队列1的长度;若写磁盘操作请求较多则增加缓冲队列2的长度。2个队列的总大小总是小于或等于整个缓冲的大小。每一个队列都是循环队列,生产者总是把新的数据块放到队列的尾部;只要该队列不为空,消费者总是从队列的头部取走数据块。
4磁盘接口控制器系统设计与实现
4.1应用环境
本控制器应用在RAID控制器的系统总线与连接硬盘的SAS总线之间,主要根据RAID控制器中的主处理器命令进行可靠快速的磁盘数据块的读写。
图5描述了本控制器典型应用环境。深色部分为本控制器,浅色部分是外部环境。
从应用环境中可以看出,磁盘接口控制器是连接RAID控制器与硬盘组的桥梁。磁盘接口控制器通过SAS总线连接多个硬盘,通过系统总线(如PCI总线)连接到RAID控制器整个系统中。
4.2总体结构与各功能模块
磁盘接口控制器包括5个大的功能模块:磁盘命令预处理模块、共享缓存操作模块、地址映射模块、异或计算模块、磁盘操作模块。由于采用的是FPGA测试和验证,对成熟的模块,如PCI模块、SATA模块、DMA模块直接使用FPGA中的资源。四级流水的磁盘接口控制器总体结构如图6。
4.2.1命令预处理模块
命令预处理模块主要根据RAID控制器中主处理器的命令决定该命令的操作流程,不同的读写方式在不同的工作模式下其数据流程不一样。命令预处理模块主要包括命令缓冲区和PLC微处理器。命令缓冲区主要接收RAID控制器中主处理器发过来的命令,命令包括:2种工作模式命令(正常模式和降级模式)、2种分条读写方式(完整分条和部分分条)、磁盘写命令(逻辑块地址LBA,逻辑块数)、磁盘读命令(逻辑块地址LBA,逻辑块数)。PLC微处理器是一个8bitRISC微处理器,也是整个控制器的,负责解析磁盘操作命令和控制命令的整个执行过程,包括其他4个功能模块的任务分派和协调。
4.2.2共享缓存操作模块
RAID控制器包含有大容量的SDRAM作为磁盘阵列的缓存,所有异或操作的数据块都存放在缓存中。共享缓存操作模块主要完成缓存数据块的读写,包括PCI总线和读写控制逻辑。PCI总线使用FPGA芯片自身所带的逻辑,读写控制逻辑主要根据命令预处理模块发过来的命令产生相应的读写时序并解决总线冲突。
4.2.3地址映射模块
由于RAID控制器中主处理器操作的都是逻辑地址,地址映射模块完成的是逻辑地址到物理盘号、柱面号、扇区号的映射。地址映射模块包括逻辑地址寄存器和物理地址寄存器,并包括一个地址变换机构。地址变换机构是一个快速哈希变换机构,输入的逻辑地址通过快速哈希变换和相应的查表获得实际的物理地址。
4.2.4异或操作模块
异或操作模块是RAID保证数据可靠性的基础,主要完成异或计算。这个模块比较简单,包括2个数据输入寄存器和一个输出寄存器,所有寄存器的位数是256bit,异或操作可完成2个16B数据的操作。一个分条的异或操作通过多次执行异或计算逻辑来实现。
4.2.5磁盘操作模块
磁盘操作模块主要完成实际磁盘的数据读写,该模块通过SATA总线连接多个磁盘。该模块主要包括SATA主控制器和磁盘操作单元,SATA主控制器使用FPGA芯片本身自带的逻辑,磁盘操作单元是要实现的逻辑,主要接收和执行PLC微处理器发过来的读写命令,将数据从磁盘读到共享缓冲区或把共享缓冲区的数据写到对应的磁盘上。
4.3RTL设计与实现
根据前述的系统结构和各功能模块,对本控制器进行了RTL设计和实现。这里以复位控制、输入控制为例说明其实现过程。
复位控制是IC设计中一个基本而重要的问题。综合同步复位和异步复位的优缺点,对复位控制电路的设计采用“异步复位,同步撤离”的策略,使用2个触发器级联,消除亚稳态的影响。同时,为了滤除异步复位中毛刺的影响,在复位端口用一个二输入与非门和一个缓冲器设计了滤除毛刺的电路,这样就可以得到一个干净的复位信号。
在本控制器的5个子模块中都存在数据的输入和输出。不同的模块只需要配置不同大小的FIFO。输入控制的设计主要以一个异步FIFO作为弹性缓冲器,该FIFO的大小是可配置的。另外还有一部分逻辑用来生成输出数据有效指示信号,这个指示信号采集到的FIFO读信号有效时即为有效。
5FPGA测试与实验结果
经过RTL设计、仿真及相应的EDA验证,实现了流水线的磁盘接口控制器并对该控制器进行了FPGA测试。测试过程中,使用的测试平台板为XilinxML505测试平台,主芯片为Virtex-5FPGA,在不加SATA多路器的情况下可同时连接4个SATA硬盘。
为了进行性能分析和比较,除了流水线的磁盘接口控制器外,同样基于Virtex-5FPGA并使用MIPSCPU核的磁盘接口控制器也被实现。基于MIPSCPU核的磁盘接口控制器在Virtex-5FPGA上可以很方便地实现,因为Virtex-5FPGA本身自带MIPSCPU核和SATA控制器。只需要实现专用异或逻辑及在MIPSCPU核实现地址映射和读写控制即可。
测试过程中使用的磁盘为高速SATA磁盘,对应的磁盘参数见表1。这里只对磁盘接口控制器进行测试,对磁盘阵列控制器中主处理器产生的磁盘操作命令通过模拟产生。命令到达的方式服从泊松分布,工作为正常工作模式,读写方式为随机产生。在读磁盘请求数与写磁盘请求数相等的情况下,其实验结果如图7所示。由图可知,在任何磁盘请求到达率情况下,基于流水线的磁盘接口控制器的吞吐率都比基于MIPS的吞吐率高。在其他读写请求比率的条件下,也可以得到类似
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国奶茶产品市场规模分析及投资前景规划研究报告
- 2024-2030年中国大口徑HDPE水管项目投资风险分析报告
- 2024-2030年中国商品防伪标签市场竞争状况及投资趋势分析报告
- 2024-2030年中国印刷滚筒抹布资金申请报告
- 2024年水利水电施工环保责任承诺书3篇
- 2024年度图书印刷与网络销售渠道合作合同2篇
- 2024年版车位独家销售代理协议版B版
- 眉山药科职业学院《生物化学(B类)》2023-2024学年第一学期期末试卷
- 2024年生物科技研究与发展合同
- 专业知识 电视新闻采访与编辑中同期声的技巧
- 气相色谱检测器FID-培训讲解课件
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- 《HSK标准教程1》-HSK1-L8课件
- 幼儿园小班绘本:《藏在哪里了》 课件
- 上册外研社六年级英语复习教案
- 替班换班登记表
- 社会保险法 课件
- 阿利的红斗篷 完整版课件PPT
- 桥梁工程挡土墙施工
- 供应商质量问题处理流程范文
- 实验室生物安全手册(完整版)资料
评论
0/150
提交评论