从以上内容可以看出,Flash位于S3C44BOX的第0个Bank,地址从Ox00000000到0x00200000,容量为2MB。SDRAM位于第6个Bank,地址从Oxoc000000到0xOc800000,容量为8 MB。S3C44BOX工作频率为60 MHz,串口采用S3C44BOx片上的一个UART,并在该串口上支持控制台功能,使得uClinux的启动输出信息可以在超级终端上显示出来。其他的配置包括TCP/IP网络,10/100 Mbps以太网络、IDE和ext2文件系统等内容。配置完的uClinux操作系统带有进程调度模块、内存管理模块、ATA接口驱动程序、文件系统、TCP/1P协议栈、网卡驱动等功能。
uClinux配置完成以后即可对uClinux编译,产生两个文件:一个是非压缩的uClinux操作系统二进制代码uCllnux_bootram.bin,其在SDRAM中工作的起始地址为0xoc008000;另一个是压缩的uclinux操作系统二进制代码uClinux_bootrom.bin,通过JTAG线缆烧写到Flash中,由bootloader程序将其加载到SDRAM中执行。在系统启动的时候uCIinux_bootrom.bin要先进行解压缩,存放到SDRAM中,然后跳转到uClinux操作系统的入口处执行。内核在启动时要检查机器的CPU类型和体系结构、初始化CPU、建立RAM页表和中断矢量表、加载设备驱动程序。这一切完成之后,uClinux创建最初的init进程,安装根文件系统ROMFS和ext2磁盘文件系统。最后,操作系统将自动执行IND软件,等待接收客户端请求。
uClinux操作系统的引导通过B00tlDader程序完成。从本质上讲,它不属于操作系统内核,针对不同的CPU体系结构,不具有可移植性。本设计所编写的Bootloader程序在系统启动时完成以下几项工作: ①将存放在Flash中压缩的操作系统内核进行解压缩,然后复制到从0xoc008000处开始的SDRAM中; ②改写系统的内存地址镜像,将RAM的起始地址映射为O; ③设置CPU的sp寄存器,并将内核的BSS段清零; ④设置CPU的pc寄存器,使其值指向内核的起始地址。4 性能分析 智能网络磁盘的性能受到系统各个方面的制约,像IND软件的进程调度策略、局域网的带宽、ATA总线的带宽、文件系统的缓存机制和客户端的缓存机制。这里分析文件系统的缓存机制及系统数据吞吐率,以此对智能网络磁盘的性能作个初步的衡量。
虚拟文件系统和块设备驱动程序普遍采用高速缓存技术,将最近最常使用的数据保存在内存中,提高数据在内存中的命中率。文件系统的目录项对象、索引节点对象、文件对象及vfsmount对象都存在独立的高速缓存区中,当请求的对象在高速缓存区中,且有效时,就直接从高速缓存区中取出数据发送给客户;如果所请求的数据不存在,则在高速缓存区中取出一个空闲的对象作为新对象的描述符,这样可以减少为创建新对象而分配内存所花费的时间,提高系统的效率。对于索引节点对象、目录项对象及vfsmount对象,为了提高它们的查找效率,这些对象都存在于它们各自的Hash表中。对于块设备驱动程序使用高速缓存区,可以降低频繁地读取存储设备的次数。对客户端目录文件的读取要采用一定的预取机制,因为对目录文件的打开比较频繁,每打开一个目录,都要建立一次连接,因此,采可行的预取机制可以有效地减少建立连接的次数。 系统性能测试采用BenchMark软件。硬件测试平台由智能网络磁盘、l00MB交换机和24台客户机组成。测试文件大小为1 MB,客户机随机地向智能网络磁盘发送读请求,测试结果如图4所示。吞吐率表示多用户请求时单位时间内通过网络传输的数据总量。 
从测试结果可以得出,当客户数逐渐增多时,每个客户所得到的平均带宽逐渐渐少。当客户增加到24个时,每个客户可得到大约O.3 Mbps的带宽,可以满足文件远程访问请求。
结 语 本文首先介绍了智能网络磁盘的硬件开发环境,然后详细介绍了智能网络磁盘的软件模块及关键技术,最后在S3C4480X嵌入式开发板上实现了智能网络磁盘。客户端在访问智能网络磁盘时,速度还有待进一步提高。这可以从改善网络环境,提高网卡的速度着手,对客户端请求的调度策略也可以作为一个方面的研究,其他的功能模块还需要继续添加。相信智能网络磁盘对企业来说是一个好的解决存储设备问题的方案。
|