基于FPGA的SOA三层架构的网络硬盘控制器设计

基于FPGA的SOA三层架构的网络硬盘控制器设计,第1张

项目设计一种采用“流程+引擎+构件”的SOA三层架构的网络硬盘控制器。系统采用FPGA作为系统控制器,在FPGA内部MicroBlaze软核处理器上移植PetaLinux *** 作系统,加载NFS网络文件系统,将扩展Int 13H规范中定义的基本硬盘 *** 作指令封装成原子构件,并采用VHDL硬件描述语言实现各原子构件,实现对硬盘的基本 *** 作。设计引擎模块,根据NFS文件系统 *** 作指令,调用相关原子 *** 作,实现硬盘存储空间管理、文件存储 *** 作、用户管理等功能。本文设计网络硬盘控制器可作为个人存储服务器连接到以太网,用户可通过连接网络的任意主机实现对服务器硬盘的访问管理。

1 引言

随着电子邮箱及网络硬盘的普及,用户可不用携带存储设备,而直接通过网络进行数据的上传和下载,实现个人数据的管理。然而,使用网络运营商提供的网络硬盘可用空间有限,且数据保密性不强。本项目旨在研究一种适合于个人应用的网络硬盘存储装置,该网络硬盘使用RJ45接口连接到以太网,通过以太网以TCP/IP协议,用户可用以太网上任意主机实现对网络硬盘的管理 *** 作,与电子邮箱及网络运营商提供的网络硬盘相比,此项目设计的个人网络存储硬盘有着存储空间容量大、使用安全、可靠性较高等优点。

2 系统原理与特点

系统结构如图2-1所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第2张

图2-1 系统结构

用户通过连接网络的客户端PC机采用TCP/IP协议实现文件的上传和下载,上传文件时,用户通过客户端PC机向网络硬盘控制器发送上传文件指令,并发送文件数据,FPGA内以太网控制器模块接收数据并由DDR2控制器模块写入到DDR2中缓存,然后根据NFS协议将数据从DDR2中读出经硬盘控制器模块写入到硬盘中保存;客户端下载文件时,用户通过客户端PC机向硬盘控制器发送下载文件指令,FPGA内以太网控制器模块接收指令后,根据NFS协议将文件数据通过硬盘控制器模块读出并写入到DDR2缓存中,然后将数据由DDR2中读出并由以太网控制器模块,加载网络协议栈,将数据由网络发送到客户端PC。

FPGA内部调用MicroBlaze处理器,移植PetaLinux *** 作系统,配置TCP/IP协议栈,加载NFS网络文件系统,利用VHDL语言设计Int13H规范中定义的对硬盘 *** 作的原子构件,并设计对原子构件调用的引擎管理模块,将原子构件与引擎管理模块以用户IP核形式添加到与MicroBlaze处理器互联的PLB片内总线,FPGA内部系统模块框图如图2-2所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第3张

图2-2 FPGA内功能模块 

 3 硬盘引擎管理模块设计

借鉴互联网分布式计算领域中网格计算、云计算技术广泛采用的SOA架构为核心设计思想,首先进行业务需求分析、根据业务用例、用例场景、业务步骤的分析过程找出对应的原子业务。根据业务原子业务映射到相应的系统需求进行系统建模,通过形式语义将场景步骤序列描述为由一系列原子构件的组合。完成“流程+引擎+构件”的三层SOA结构的文件系统设计。

3.1 文件系统业务单元

文件系统是 *** 作系统中负责管理和存储文件信息的软件系统。主要负责对文件存储器空间进行组织和分配,文件的存储以及对存入的文件进行保护和检索。文件系统主要包括存储空间管理、文件存储 *** 作、用户管理这三个业务单元。

存储实间管理主要包括对存储空间的组织、分配和回收。文件存储 *** 作主要包括用户对存储空间文件的基本 *** 作,包含文件的生成、删除、打开、关闭、文件读、文件写等。用户管理主要包括用户的注册、登录以及用户权限管理等。

3.2 提取业务用例

在提取文件系统的业务用例时,主要是从业务主角——用户的角度出发,对文件系统的每一个业务单元进行分析提取业务用例。

3.2.1 存储空间管理

存储空间管理业务单元的用例视图如图3-1所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第4张

图3-1 存储空间管理用例视图

存储空间管理该业务单元主要包括如下业务用例:初始化存储空间、分配存储空间、追加存储空间、回收存储空间、查询剩余存储空间。

3.2.2 文件存取 *** 作

文件存取 *** 作业务单元的业务用例视图如图3-2所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第5张

图3-2 文件存取 *** 作用例视图

文件存取 *** 作业务单元包括如下业务用例:建立文件、打开文件、读文件、写文件、关闭文件、保存文件、删除文件、保存文件、列举文件、检索文件、复制文件等。

3.2.3 用户管理

用户管理用例视图如图3-3所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第6张

图3-3 用户管理用例视图

用户管理该业务单元包括的业务用例主要有填加用户、删除用户、用户登录、用户退出、设置用户权限、修改用户权限等。

3.3业务用例场景

3.3.1 划分业务用例场景

业务用例在实际执行的进程中可能会有多种不同的情况发生,每一种情况都称为该业务用例的一个业务用例场景,也可以说业务用例场景是指实例化的用例。通过对文件系统的业务用例进行分析,划分出文件系统的业务用例场景如表1所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第7张

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第8张

3.3.2 描述业务用例

本文对文件系统业务用例描述采用的是用例文档和UML的活动图,通过画出文件系统业务用例场景的活动图,按照所用例文档模板的格式对活动图进行描述,建立文件系统的业务用例模型,得到文件系统的业务需求文档。

3.4 提取原子业务

前面对文件系统进行了业务建模,分析了文件系统的业务参与者、业务用例和业务场景,在此小结中将分析提取文件系统的原子业务。主要通过分析业务场景的主干流程来进行原子业务的提取。

3.4.1 存储空间管理原子业务分析

以追加存储空间为例分析业务流程。

前置条件:文件当前存储空间不足,文件剩余存储空间中有足够的空闲空间。

后置条件:成功为文件追加空闲存储空间。

该业务流程由如下业务步骤组成:

《1》。文件存储空间不足,申请新的存储空间;

《2》。文件定位;

《3》。追加新的存储空间。

分析上述业务步骤,画出追加存储空间业务用例场景的业务流程图如图3-4所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第9张

图3-4 追加存储空间活动图

经分析追加存储空间该业务用例中可提取出两个原子业务:文件定位、追加存储空间。分析存储空间管理业务单元其它业务用例场景的业务流程后,得出该业务单元原子业务树状结构图如图3-5所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第10张

图3-5 存储空间管理原子业务模型结构图

3.4.2 文件存取 *** 作原子业务分析

以顺序读文件为例分析业务流程。

前置条件:文件存在并且可读。

后置条件:从文件指定位置处顺序读取指定长度内容。

该业务流程由如下业务步骤组成:

《1》。确定文件所在存储空间;

《2》。打开目标文件;

《3》。读取指定长度的文件内容;

《4》。关闭文件。

分析上述业务步骤,画出顺序读文件业务用例场景的业务流程图如图3-6所示。

经分析顺序读取文件该业务用例中可提取出四个原子业务:文件定位、打开文件、顺序读文件、关闭文件。

分析文件存取 *** 作业务单元其它业务用例场景的业务流程后,提取出该业务单元原子业务树状结构图如图3-7所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第11张

图3-6 顺序读取文件业务活动图

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第12张

3.4.3 用户管理原子业务分析

以注册用户为例分析业务流程。

前置条件:有权限成为文件系统用户。

后置条件:注册成功,分配用户名。

该业务流程由如下业务步骤组成:

《1》。管理员进入存储空间;

《2》。登记用户信息。

分析上述业务步骤,画出注册用户业务用例场景的业务流程图如图3-8所示。经分析注册用户该业务用例中可提取出两个原子业务:用户登录、登记用户信息。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第13张

分析用户管理业务单元其它业务用例场景的业务流程后,得出该业务单元原子业务部分树状结构图如图3-9所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第14张

图3-9 用户管理原子业务模型结构图

通过以上对文件系统各业务单元的分析,提取文件系统完整的原子业务及其描述如表3-2所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第15张

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第16张

4 Petalinux及NFS网络文件系统的移植

Petalinux的移植主要工作为硬件平台搭建,以及内核的裁剪与移植,其中硬件平台的搭建在windows *** 作系统上安装的Xilinx EDK环境中完成,选择Virtex5-lx110t开发板,由于网络文件服务器的需要选择以太网的IP核,DDR,串口,定时器等并添加相应的中断,成功建立工程的block diagram 如图4-1所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第17张

图4-1 搭建工程框图

然后进行基于Petalinux软件平台的配置, *** 作系统和库选项选择Petalinux,修改主要存储空间和输入输出的当前值,软件平台搭建完毕,最后生成库和板级支持包,然后生成比特流文件下载至目标板测试工程的正确性。

Petalinux是一套开发环境,linux内核的裁剪以及移植在安装centos 5.6 *** 作系统的主机完成首先利用Petalinux自带的工具创建嵌入式平台,将在windows下完成的工程拷贝到Linux系统,转换到Linux系统格式,根据开发板选择新的平台,然后用make menuconfig 命令进入内核裁剪的图形化界面,合理的裁剪之后进行编译将生成的image.bin文件通过下载线下载至开发板的DDR SDRAM中,在串口终端可以看到系统启动信息,如图4-2所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第18张

图4-2 系统启动信息

网络文件系统支持以应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议,大多数网络文件系统都分成客户端和文件服务器两部分。客户端以逻辑文件块的方式存取数据,文件服务器使用块映射存取真正的磁盘块,并完成磁盘格式和元数据(如目录)的管理,对客户端完全屏蔽,一般客户端和文件服务器以TCP/IP方式通信。NFS是网络文件系统(Network File System)的简称,是分布式计算机系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统,可让不同 *** 作系统的计算机共享数据。

NFS服务器的移植:nfs服务器的实现需要内核nfsd的支持外加两个应用程序套件 portmap 和nfs-uTIls ,Petalinux中移植此应用程序,下载此应用程序的源码,添加到petalinux的usr目录下,修改makefile 和config.in 文件,重新配置内核加入nfs服务器端的支持,同时交叉编译此应用程序,将生成的可执行文件复制到 romfs 的bin 目录下,再在etc 目录下添加exports 文件用来设置可挂载目录,使得Petalinux 系统具有nfs服务器端的功能。

5 IDE硬盘控制器的设计

IDE(Integrated Drive Electronics,集成驱动电子设备)是由Compaq开发并由Western Digital公司生产的硬盘驱动器。IDE是在早期的ST506硬盘基础上改进而成的,采用40线的单组电缆进行连接,数据传输的可靠性得到了增强,硬盘制造起来变得容易,因为厂商不需要再担心自己的硬盘是否与其他厂商生产的控制器兼容,对用户而言,硬盘安装起来也更为方便。因此IDE接口实际上是系统级接口,故也称为ATA(Advanced Technology Attachment)接口,(ATA更接近于接口的协议层标准,而IDE多用于描述接口的物理结构)。其传输方式主要有PIO和DMA两种。ATA接口规范从最初的ATA-1版本已发展到ATA-7版本。

5.1 硬盘接口信号

ATA/ATAPI-6标准中定义的主机和设备端之间的通信连接信号如表5-1所示。其中,左边是对信号的描述,中间表示信号的传输方向(由主机到设备还是由设备到主机),右边表示信号的名称。

CS(1:0)-:主机发送给硬盘的片选信号,实现对寄存器的选择;

DA(2:0):主机发送给硬盘的地址信号,用来实现对硬盘寄存器的寻址;

DD(15:0):主机与硬盘之间的数据连接线,当主机对硬盘寄存器进行读写时,使用该数据总线的低八位进行数据传输,当对数据寄存器进行读写时,用该总线的16位进行数据传输;

DIOR-:HDMARDY-:HSTROBE:复用信号,表示对寄存器读信号/Ultra DMA就绪/Ultra DMA数据输出同步信号,DIOR-表示主机对硬盘寄存器的读信号,HDMARDY-表示Ultra DMA数据输入时,主机发出的就绪信号,HSTROBE表示Ultra DMA数据输出时主机发出的时钟同步信号,双沿有效,即在该信号的上升沿和下降沿,主机将数据输出;

DIOW-:STOP:复用信号,表示主机写寄存器命令/主机终止Ultra DMA突发传输信号,DIOW-表示主机发出的对硬盘寄存器的写命令信号。在Ultra DMA突发传输时,主机可通过使能STOP信号来终止Ultra DMA突发传输。

DMACK-:在DMA开始传输时,主机对硬盘发出的DMA传输请求的应答信号;

DMARQ:当硬盘准备好数据收发时,给主机发出的DMA传输请求信号;

INTRQ:硬盘发出的中断请求信号;

RESET-:主机发出的硬盘复位信号,低电平有效。

表5-1 硬盘接口信号

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第19张

5.2 硬盘接口寄存器

主机对硬盘的访问是通过对接口寄存器的访问来实现的。ATA-6标准规定的硬盘接口寄存器如表5-2所示。这些寄存器按照功能划分为命令寄存器(Command block registers)和控制寄存器(Control block registers)。命令寄存器用来接收主机发出的各种命令和传送数据,包括数据寄存器、扇区计数寄存器等。控制寄存器用作控制硬盘 *** 作,如使能硬盘中断、选择硬盘等。

表5-2 硬盘端接口寄存器

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第20张

5.3 硬盘控制器模块设计

硬盘控制器模块内部结构如图5-1所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第21张

图5-1 硬盘控制器模块内部结构

5.3.1 总线接口模块

总线接口模块是硬盘控制器与PLB总线的连接模块,接收处理器通过PLB总线发来的 *** 作命令及读写数据。

5.3.2 硬盘复位模块

硬盘上电后需要完成一个复位过程,即ATA/ATAPI-6标准中描述的上电及硬件复位协议。复位过程既可以通过软件编程实现也可以通过在硬盘控制器内部设计专用的逻辑来实现。系统上电后,硬盘控制器通过硬盘复位模块生成一个宽带大于25us的低电平复位信号,复位信号回到高电平2ms后,即复位 *** 作完成。复位信号波形如图5-2所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第22张

图5-2 复位信号波形

5.3.3 PIO模块

该模块的功能是产生读写硬盘内部寄存器的时序,该模块产生待访问的硬盘寄存器的地址线,并输出读写信号,根据数据传输方向,发送数据到数据线或从数据线上读取数据, *** 作完成后,释放地址、数据线。

根据PIO读写时序,该模块应实现以下功能:

产生访问硬盘寄存器的地址信号,并具有一定有效宽带。

产生相应的读写信号DIOR-/DIOW-,当为写 *** 作时,使数据具有规定的建立和保持时间;当为读 *** 作时,给出读数据的时机。

处理硬盘输入的IORDY信号,当IORDY无效时,应延长对硬盘的读写周期。

5.3.4 Ultra DMA模块

Ultra DMA模块是硬盘控制器的关键模块,其主要功能是实现Ultra DMA突发数据输出时序的控制。Ultra DMA *** 作可分为三个阶段,分别是初始阶段、数据传输阶段、传输中止阶段。

初始阶段的时序描述为:当硬盘发出DMA请求信号DMARQ,控制器通过DMACK-进行应答,等到硬盘发出的DDMARDY-信号有效后,控制器开始输出HSTROBE信号。

数据传输阶段的时序描述为:HSTROBE时钟的上升沿和下降沿都触发数据输出,在数据传输过程中,控制器可通过停止产生HSTROBE信号来暂停数据的输出,硬盘可以通过使DDMARDY-信号无效来暂停数据的接收。

传输终止阶段,控制器和硬盘都可终止数据传输,终止数据传输可分为四个过程:停止请求、停止检查、HSTROBE返回高电平、发送CRC校验值。对于控制器停止数据传输,首先停止产生HSTROBE时钟信号,发出STOP命令信号,控制器检查硬盘的DDMARDY和DMARQ均无效后,使HSTROBE返回高电平,使DMACK-无效,并在DMACK-信号跳变沿处输出CRC校验值到数据线DD(15:0),如图5-3所示。对于硬盘停止数据传输,通过使DDMARDY和DMARQ均无效来停止数据传输,控制器需要在tL1时间内发出STOP信号,使HSTROBE返回高电平,使DMACK-无效,并输出CRC校验值至DD(15:0),如图5-4所示。

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第23张

图5-3 控制器终止Ultra DMA数据传输时序

基于FPGA的SOA三层架构的网络硬盘控制器设计,基于FPGA的SOA三层架构的网络硬盘控制器设计,第24张

图5-4 硬盘终止Ultra DMA数据传输时序

5.3.5 控制器模块

控制模块是硬盘控制器的核心,该模块的主要功能是实现CPU对硬盘控制器中寄存器的配置,并根据相关寄存器的写入信息实现对应的控制 *** 作。

6 总结

项目设计一种基于“流程+引擎+构件”SOA三层架构的网络硬盘控制器。采用FPGA作为系统控制器,在MicroBlaze软核处理器上移植PetaLinux *** 作系统,加载NFS网络文件系统,将扩展Int 13H规范中定义的基本硬盘 *** 作指令封装成原子构件,采用VHDL硬件描述语言实现各原子构件 *** 作。设计引擎管理模块,根据NFS文件系统 *** 作指令,调用相关原子 *** 作,实现硬盘存储空间管理、文件存储 *** 作、用户管理等功能。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2639361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存