王银媛
摘要:由于传统的计算机的硬件设备在实验过程当中存在着一定的问题,在该文当中笔者提出了一种以云计算和真实实验板为基础的远程实验室,可以通过浏览器实现FPGA的远程配置,从而进行相关的实验,同时实验数据也可以通过服务器进行全过程的记录,从而实现了对硬件的合理调度。同时利用JTGA机制也可以实现实验快照的保存与恢复。此外,在该系统当中,实验预约功能也得到了很好的完善。在该文的研究当中以以上内容为基础研发了一种远程实验室,实验的结果表明该实验室可以进行广泛的运用。
关键词:云计算平台;计算机;硬件;远程实验室
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)27-0121-02
Abstract: Due to traditional computer hardware during the experiment there were some problems, in which the author of this article presents a true cloud computing and breadboard-based remote laboratory can achieve FPGA remote configuration through a browser, thus for related experiments, and the experimental data can also be recorded through the whole process of the server, in order to achieve reasonable dispatch hardware. While taking advantage of JTGA mechanism can be implemented to save and restore the experimental snapshot. In addition, among the system, experiment booking function has also been very good improvement. In this study, in which more than content-based developed a remote laboratory, experimental results show that the laboratory can be widely used.
Key words: cloud computing platforms; computer; hardware; remote laboratory
1 背景
当前阶段实验云技术是一种新型的技术,所谓的实验云就是将云计算技术融合到远程实验技术当中去。而将虚拟实验引入到实验教学当中去就产生了远程实验技术。传统教育模式由于虚拟实验技术的运用而得到了革命性的改变,当前阶段,在市场当中存在着许多针对实验教学的虚拟实验软件,同时由于现阶段大部分的高校都具有较为丰富的计算机网络资源,从而使得虚拟实验的物质基础已经具备。在虚拟实验室当中对一些实验进行模拟不仅对提高教学质量具有非常重要的意义,同时在某些情况下由于实验条件不具备,可以充分利用这种技术使得学生更高更加深刻的观察到实验的具体现象,此外通过虚拟实验室,学生还可以实现异地实验。从世界范围内来看,虚拟实验室的数量正在不断增多,在许多高校当中都具有较为广泛的运用[1]。
2 云实验平台的总体设计
2.1 总体结构
当前阶段云实验平台的框架主要由三个部分组成,即硬件系统、软件系统与参考文献。硬件系统是云实验平台的物质基础,硬件系统是指云实验平台的计算机硬件以及综合实验板节点、服务器以及交换机等硬件设施,硬件系统当中的所有设备都需要通过网络连接到一起[2]。在实验的过程当中所需要用到的软件以及数据库与运行于数据库当中的WEB服务被称为软件系统,软件系统是用户进行操作的主要区域,是机器语言转化到自然语言的重要工具,在云实验平台的软件系统当中,实验板是由WEB服务器负责管理的,此外WEB服务器还会对客户端的请求进行回应,从而使得实验功能能够顺利地完成,此外还会将相关的实验数据传输到服务器当中去[3]。通过软件系统,用户只需要通过手机或者平板电脑就可以进行相关的实验。在云实验平台当中,参考文献的格式已经不再局限于传统的文本文献,其不仅可以是文本格式,还可以是视频或者音频格式。
2.2 服务端的软件设计
在云实验平台当中,服务端的软件具有重要的意义,是对整个系统进行调度的枢纽。用户通过服务端软件可以实现对实验的控制。在整个云实验平台当中,服务端软件是实验功能软件的基础,通过服务端软件,上层的实验功能软件可以获取对应的硬件接口。服务端软件按照功能可以被划分为三个模块,即网络通信模块、实验资源管理模块与远程硬件控制模块。网络通信模块是整个模块与实验板之间进行通信的通道,其原理是基于SCOKET通信机制,其可以完成数据的接收与发送功能,同时也可以和实验板之间进行有效连接。实验资源管理模块可以对实验板当中的所有资源进行管理,在虚拟实验的过程当中,实验资源管理系统可以实现对实验板连接请求的全过程监控,在完成连接之后,则会对实验板进行初始化[4]。然后加入热备的资源池中,同时借助心跳机制,能够及时发现实验板发生的死机现象并通知管理员处理。远程硬件控制模块可以将用户的控制命令按照相关的协议进行包装,同时通过网络向硬件实验板进行发送。
3 云实验平台任务节点的设计
在云实验平台当中,任务节点端软件需要根据实验板的芯片ARM芯片的STM32进行设计,任务节点端软件实现对实验板的控制需要依赖硬件本身自定义的相关接口才能实现,这些接口主要包括:存储芯片、FPGA、网卡控制芯片、CPLD。任务阶段软件向上可以通过网络与服务段的软件进行连接,同时接受其所发出的控制命令,从而实现对电路板的操控,同时还会将相关的实验结果进行反馈[5]。任务节点端软件所具有的软件功能主要包括以下内容:将从服务器所接受的文件进行FPGA配置,同时将用户代码输入到电路板的程序的存储器,同时根据服务端软件的命令对实验板进行控制;完成心跳机制与硬件自检;分配实验板IP地址;在云实验平台当中,任务节点软件之间的关系如下图中所示:
4 云实验平台关键技术分析
4.1 实验板资源高效管理机制
在云实验平台当中,用户一旦通过软件申请了实验板,那么就会对FPGA进行相关的配置,从而使得相关的实验功能得以实现,在这个过程当中原有的文件会被最新下载的文件所覆盖。在这个过程当中,必然会涉及的一个问题就是替换问题,由于大部分的FPGA文件都是比较大的,这就使得配置的过程往往需要耗费较多的时间,而如果实验板一直在运行当中,那么上次实验所配置的FPGA依然还会被保留,而如果用户所需要进行的实验与上一次是一致的,那么FPGA就没有必要进行重新配置[6]。为了有效解决这种问题,我们将Cache调度的替换算法类比到分配过程当中去,在系统当中采用LRU算法。具体的实施方法如下所示:首先记录实验板当中的FPGA配置信息当中的实验,同时对不同实验板在最近的实验次数进行统计,当用户申请实验板时,如果其所需要进行的实验与最近在某实验板上所进行的实验的内容一致或者是相类似的话,且该实验板并不处于使用状态,那么这些实验板当中最最不经常使用的一块就会被分配给用户。而如果用户所需要进行的实验在最近都没有人进行过,那么系统将会把所有实验板当中最不经常使用的一块实验板分配给用户。通过这种方式进行实验板的分配对提升分配效率具有非常重要的意义。
此外,为了防止出现挂机的现象,系统还会进行实验板的回收,即如果用户申请了实验板,但是该实验板在被分配之后很长一段时间之内都没有进行实验或者没有数据流通,那么系统将会判定该实验板是出于空闲状态的,服务端软件就会自动断开实验板与用户之间的连接,同时将实验板进行回收并分配给其他用户[7]。这种方式能够有效减少挂机现象的产生,从而使得资源浪费的现象大幅度减少。
4.2 实验快照保存与恢复机制
用户在使用云实验平台的过程当中,往往会因为多种因素的影响,必须要在中途终止实验,而如果系统不具有备份功能,则用户在下次重新实验时就必须要从头开始,而无法恢复到上次的备份点,因此,为了用户实验的方便以及提高资源的利用效率,在该系统当中设计了相应的实验快照保存和恢复机制。该机制的实现需要依赖JTAG边界扫面技术,核心思想就是通过对FPGA芯片的扫描从而获取其运行状态的相关数据,同时将这些数据存储到数据库当中去,在进行实验的恢复时,在将所有的数据从数据库当中调出,并通过时钟将其置入FPGA芯片当中去。
实验快照保存与恢复机制的主要三个部分的内容组成,即网络通信模块、边界扫描控制器与远程被测试目标。远程服务器在被启动之后,连接的请求被传送到服务器,服务器会对其作出回应,而本地客户端则会对远程服务器发送JTAG命令,远程服务器会读取该命令并同时向边界扫描器发送,同时边界扫描器会FPGA进行扫描并获取相关的信息,并将相关的信息存储到数据库当中去,党用户需要对这些信息进行恢复时,可以从数据库将这些数据调出,并置于FPGA芯片当中去[8]。其主要流程如下图中所示。
5 系统功能测试
在进行系统测试时,首先需要进行文件传输的测试,其主要内容包括用户代码与配置文件的下载,同时将原始文件与系统所接受到的文件进行对比分析,对比的结果发现,文件在系统当中的传输是一种无损传输,代码文件的测试结果也同样表明文件文件在系统当中的传输是一种无损传输[9]。
其次还需要对用户程序的执行进行测试,对其执行的结果与由Mars(MIPS assembler and runtime simulator)编译软件模拟执行同样的程序所得到的结果进行对比与分析,判断二者之间的结果是否完全一致,对比的结果说明用户程序的寄存器与存储器都是一致的[10]。
6 结束语
在本文当中笔者所提出的云实验平台,不仅能够通过网络环境使得实验资源得以共享,同时还可以为学生进行毕业设计于课程设计等提供必要的实验基础,此外,对于解决现阶段高校实验室的建设也有着重要的意义,可以解决高校在实验室建设过程当中的重复建设以及资源利用率偏低等问题。在本文当中,笔者通过查阅大量的文献,并结合实际调查,设计出了该云实验平台,希望能对我国现阶段高校的实验教学有所帮助。
参考文献:
[1] 杨龙军. 计算机硬件云实验平台关键技术研究与实现[D]. 长沙:国防科学技术大学, 2013.
[2] 闫格. 基于云计算架构的高校实验室设计与实施[J]. 漳州师范学院学报:自然科学版, 2011(3): 25-29.
[3] 俞建华. 基于云计算的远程教学资源建设模式——以浙江开放大学为例[J]. 中国电化教育, 2011(12): 130-135.
[4] 郝丹. 远程实验室:支撑环境与创新动力——“中国远程教育学术论坛”综述[J]. 中国远程教育, 2012(11): 5-15.
[5] 张宇灏. 基于云计算的电熔镁砂生产过程远程能源监视软件平台设计与开发[D]. 沈阳: 东北大学, 2014.
[6] 尹雪蓉, 宋耀光, 倪巍. 云计算环境下OpenFlow网络研究与实验探索[J]. 实验室研究与探索, 2013(12): 122-125,136.
[7] 方雷. 基于云计算的土地资源服务高效处理平台关键技术探索与研究[D]. 杭州: 浙江大学, 2011.
[8] 李婧. 基于云计算的远程教育资源共享技术研究与实现[D]. 西安: 西安电子科技大学, 2013.
[9] 陈昌兴. 高校实验室信息化的云计算策略与方法[J]. 实验技术与管理, 2014(1): 221-224.
[10] 陆忠芳. 基于云计算的移动医疗服务平台的研究与开发[D]. 杭州: 浙江理工大学, 2013.