计算机组成原理虚拟实验系统的设计与实现

2014-05-16 09:54张雯雰刘华艳廖隽婷
实验室研究与探索 2014年5期
关键词:器件客户端原理

张雯雰, 肖 娟, 刘华艳, 廖隽婷

(湘南学院计算机科学系,湖南郴州 423000)

计算机组成原理虚拟实验系统的设计与实现

张雯雰, 肖 娟, 刘华艳, 廖隽婷

(湘南学院计算机科学系,湖南郴州 423000)

为增加使用灵活性、降低程序复杂度、提高实验效果,提出了一种基于浏览器客户端技术的计算机组成原理虚拟实验系统设计方案。该系统全部采用浏览器客户端技术实现,具有良好的交互性和扩展性。系统使用JAVASCRIPT开发组件库,利用CSS绘制芯片等组件,采用VML绘制组件间的连接线,用HTML5 File API实现电路文件的导入导出。提出了基于队列的单线程组件调度算法,有效解决了众多组件之间信息传递和调度运行的问题。系统从功能上对组件进行仿真,实现了实验电路的仿真运行,支持自主设计电路,可进行复杂模型机等设计性实验。本系统已用于实验教学,取得了良好的教学效果。

仿真;虚拟实验室;计算机组成原理;浏览器客户端技术

0 引言

计算机组成原理是计算机专业开设的一门重要的专业基础课,实验是学习此门课程的重要环节,通过动手实验,学生能亲身体验硬件间的连接、信息的交互以及硬件的工作过程等。传统的实验箱在教学中显现出诸多弊端:①硬件相对固定、不易扩展,不利于设计性实验的开展。②由于硬件动作的不可见性,学生做实验时,不清楚硬件动作的执行流程和单元间的数据流动,实验透明度不高[1]。③ 存在元器件老化、损坏以及连接线接触不良等问题,导致实验成功率不高。④受到时间和空间的限制,特定的实验只能在规定的时间和地点完成[2]。⑤购买和维护成本较高,有时不得不采取分组实验。可见,计算机组成原理虚拟实验系统对提高实验效果、降低教学成本、实现全时空教学目标都具有重要意义。

现有的计算机组成原理虚拟实验系统主要分为三类,①利用已有的EDA(电子设计自动化)软件来实现[3-6],这类软件一般为单机运行,不适合网络教学,而且由于是专业级的高度仿真,难以屏蔽本课程无需关心的电路细节问题。② 对某种已有的实验箱从外观到操作进行模拟[7-9],这种方式继承了物理实验箱不易扩展等缺点。③从芯片级进行仿真,可拖拽芯片和连接线组成芯片电路并运行[1,10-13],此类系统多为 B/S模式或C/S模式、使用JAVA编程,需下载和安装浏览器插件才能运行。

本文的计算机组成原理仿真实验平台属于上述第③类系统,用JAVASCRIPT+JQUERY+JQUERYUI+CSS+VML编程实现,在IE10中测试通过。目前,实现网络虚拟实验室的技术主要有 Java、Flash、VRML等[14],本系统则采用了基于JavaScript的浏览器客户端技术,正因为全部使用客户端技术,所以系统结构简单,既能以B/S模式运行,也可不加修改直接以单机方式运行,且无需下载任何插件,能够非常方便地整合到其它网络综合实验平台中。

本系统设计实现了多个经典实验电路,实验透明度较高,例如对于关键的微程序控制器实验,设有屏蔽微程序控制器的内部电路、将其抽象并封装为一个组件,而是给出了一个由微地址生成逻辑、微地址寄存器、微程序存储器和时序产生器组成的具体电路,便于实验者了解控制器的工作原理,理解微指令中顺序控制部分的作用,为模型机与微程序设计打下基础。此外,本系统具有高度的可扩展性,学生可以自己设计实验电路,便于设计性实验的开展。

1 系统架构

系统架构如图1所示。客户端通过浏览器向Web服务器提出页面请求,Web服务器响应请求,找到所请求的页面,并将此页面及其引用的JavaScript脚本代码和CSS样式表作为响应内容,发送回客户端,客户端浏览器打开发回的页面文件、解释并执行JavaScript代码。

客户端承担了仿真实验室运行的全部任务,包括操作界面的显示、电路的连接与绘制、电路的运行等等。由于JavaScript脚本是由客户端解释执行,不占用服务器资源,从而大大减轻了服务器的压力、提高了页面反应速度。

图1 系统架构

2 系统功能模块

系统主要包括5大部分:电路绘制、组件调度、组件库、文件操作、实验指导。其中,组件库是实验组件的类库,供电路绘制、组件调度和文件操作模块调用;电路绘制模块根据用户的拖拽动作生成仿真电路;组件调度模块是所有组件的运行调度中心,负责调度和控制组件的工作顺序,并且将运行结果在电路图中显示出来。实验文件操作主要提供实验电路的新建、导入和导出等功能。系统功能模块如图2所示。

图2 系统功能模块

3 系统的设计与实现

3.1 组件建模

电路建模具有层次性,根据层次的不同可将元件模型分为晶体管级和行为级。行为级模型是根据元件的传递函数或者输入/输出特性来构造模型,优点是在较少牺牲精度的前提下降低了实现难度,同时保证模型实用性[15]。本系统采用了基于行为级模型的建模方式。

实验组件可分为3种:源器件、中间器件和终端器件。源器件产生驱动整个电路运行的源数据,包括开关、单脉冲、连续脉冲等。中间器件接收输入信号,经处理后输出结果信号,包括ALU芯片、RAM芯片、门电路等。终端器件用于显示结果,只有输入引脚没有输出引脚,如小灯。

组件库设计的难点是:组件类的设计和定义,类定义必须满足组件绘制、运行与调度功能需要,为组件的绘制、运行与调度提供所有必须的属性和方法;源器件产生源数据的方法,主要是开关和脉冲的实现方法。

组件库由所有实验组件的JavaScript类组成,组件类描述组件的外形属性、电气属性和功能方法。例如,ALU芯片74LS181的属性和方法定义如下:

开关组件有开、关2种状态,对应输出0和1 2种电平信号。电源按下时,系统会自动搜寻到所有的开关组件,并按照开关状态向外输出电平信号。在实验运行过程中,用户可以通过单击开关组件使其闭合或打开,浏览器捕捉到鼠标单击事件后自动调用源器件响应函数,实现输出电平的转换和开关图标的切换。

脉冲组件使用JavaScript中的Timer定时器实现。用setTimeout函数设置电平跳变的时间间隔以及跳变时要调用的处理函数。脉冲组件启动之后,经过指定的时间间隔,会自动调用源器件响应函数,实现输出电平的转换,并且初始化下一个timer、启动下一次的电平跳变。

3.2 电路图绘制模块

电路绘制模块的主要任务是根据鼠标拖放的位置,在实验电路区域显示组件和连接线,并为组件和连接线绑定鼠标事件的处理函数。

当实验者从工具箱拖拽某种组件到实验电路区域时,电路绘制模块会自动生成该组件的一个对象,并按照类中给定的外形属性绘制其图标。当实验者将鼠标从一个引脚拖放到另一个引脚时,该模块会自动计算并绘制引脚间的连接折线,并把连接线信息保存到组件对象中。拖动组件时,该模块会修改组件的位置参数,实现组件的移动,同时重画与其相连的所有连接线。

3.3 组件调度模块

实验电路是由多个功能相对独立的组件组成,当一个组件运行时,该组件执行自己的功能方法,并将结果输出到下一级组件,下一级组件工作后再把结果输出到下下级组件,电平信号就这样在电路中传递和扩散,直到没有新的信号生成。设计的难点在于,怎样让众多组件协调有序地逐级工作。

此模块在实现上有2个选择,① 采用多线程技术;②使用单线程方法。由于JAVASCRIPT是单线程的,因此本系统采用了单线程方法。

本模块使用队列实现组件调度。如图3所示,电源按钮按下时,遍历所有组件,将满足运行条件的组件入队,然后从队头取出第一个组件执行,按组件的输出结果依次修改与其相连的下级组件输入引脚的值,并判断下级组件是否达到运行条件,如果达到运行条件且不在队尾则入队,如此直到队列为空。除了电源按钮的单击事件会启动组件调度过程以外,在实验进行中,源器件的鼠标单击事件或Timer事件也会触发组件调度过程。该模块的主要属性和方法定义如下:

图3 组件调度流程图

其中,源器件触发事件处理函数是当开关、脉冲等源器件被单击或Timer被触发时被系统自动调用的。此函数会更新源器件的值,并将其加入队列,然后启动runCircuit函数。

该算法简明有效,避免了多线程中读写共享资源的冲突,无需使用锁机制。

4 仿真实例

本系统开发了许多组件,可分为4类:一是数字功能器件,主要包括:① 74LS181、RAM6116等芯片;②逻辑门电路,如与门、或门、非门等;③ 基本元件,主要包括开关、小灯、单脉冲和连续脉冲;④ 为虚拟组件,此类组件没有对应的物理芯片,是为了屏蔽电路细节或为了电路的简洁,将多个功能部件封装为一个组件而成,比如时序电路组件和EPROM2716×3组件。

系统的用户界面图,上面是菜单栏和工具栏,左边是实验设备列表,右边是实验电路区。以运算器组成实验为例,实验者将需要的组件从左边的设备列表拖拽到实验电路区,接上连接线,按下工具栏的电源按钮后,电路开始运行,实验者可通过开关和单脉冲设置芯片的输入,仿真电路会自动进行运算和信息传递,最后将结果显示在小灯上。

5 结语

本文在对现有计算机组成原理虚拟实验室进行分析和研究的基础上,提出了一种计算机组成原理虚拟实验系统的实现方案。该仿真实验平台基于浏览器客户端技术,极大减轻了网络服务器的负担,可非常方便地用于远程网络教学。我校已在3个专业的计算机组成原理实验课中使用该系统,实践表明,此系统具有一定的优越性、教学效果好。同时,该系统也为其他课程虚拟实验室的建设提供了一个很好的参考模型。

[1] 王建新,张丽媛,盛 羽,等.基于组件的计算机组成原理虚拟实验室的设计与实现[J].系统仿真学报,2008,20(9),2469-2474.

WANG Jian-xin,ZHANG Li-yuan,SHENG Yu,et al.Design and Implementation of Principles of Computer Organization Virtual Lab Based on Component[J].Journal of System Simulation,2008,20(9),2469-2474.

[2] 姚文月.基于VRML的计算机原理虚拟实验室的研究与设计[D].南京:南京信息工程大学,2011.

[3] KOUZES R T,MYERS J D,WULF W A.Collaboratories:Doing science on the Internet[J].IEEE Computer,1996,29(8):40-46.

[4] 于湛麟.Multisim在计算机组成原理实验中的应用[J].电子设计工程,2012,20(15),15-17.

YU Zhan-lin.Application of Multisim in computer composition principle experiment[J].Electronic Design Engineering,2012,20(15),15-17.

[5] ZOU Fenghua,GU He,LI Nianfeng.Application of Quartus II and FPGA Technology in ExperimentofPrinciples ofComputer Composition[M].Software Engineering and Knowledge Engineering:Theory and Practice.Springer Berlin Heidelberg,2012:841-846.

[6] 朴希南.基于EDA技术的计算机组成原理虚拟实验[J].电脑知识与技术,2011,7(7):1707-1709.

PIAO Xi-nan.Principles of Computer Organization Virtual Experiment Based on EDA Technology[J].Computer Knowledge and Technology,2011,7(7):1707-1709.

[7] 郝尚富,李 英,钱国栋.基于UML的计算机组成原理虚拟实验室[J].吉林大学学报,2012,30(6):633-637.

HAO Shang-fu,LI Ying,QIAN Guo-dong.Virtual Experiment System of Computer Composition Principle Based on UML[J].Journal of Jilin University,2012,30(6):633-637.

[8] 刘 均,冯志林.计算机组成原理仿真实验系统设计与实现[J].浙江工业大学学报,2009,37(5):486-520.

LIU Jun, FENG Zhi-lin. Design and implement of simulation experiment system for principles of computer organization[J].Journal of Zhejiang University of Technology,2009,37(5):486-520.

[9] 董 玮,赵 林,陈秀寓.计算机组成原理虚拟实验的设计与实现[J].计算机教育,2009,15:182-185.

DONG Wei,ZHAO Lin,CHEN Xiu-yu.Design and implement of simulation experiment for principles of computer organization[J].Computer Education,2009,15:182-185..

[10] 谢朝晖.CPU虚拟实验平台的设计与实现[D].长沙:中南大学,2009.

[11] 郑耿忠.计算机组成原理虚拟实验室的研究及实现[J].计算机系统应用,2008,2:62-65.

ZHENG Geng-zhong.Thestudyand implementofcomputer organization princile’s virtual laboratory[J].Computer Systems Application,2008,2:62-65.

[12] 蒋 旭.基于组件的虚拟实验室系统的研究[D].西安:西安科技大学,2010.

[13] 冉啟皓,唐九飞,于俊清.基于Web的计算机学科虚拟实验关键技术研究[C]//第七届和谐人机环境联合学术会议.北京:清华大学出版社,2011:197-206.

RAN Qi-hao, TANG Jiu-fei, YU Jun-qing. Research on Key Technologies of Computer Science Virtual Experiment Based on Web[C]// 9th Conference on Harmonious Human Machine Environment.China.Beijing:Tsinghua University PRESS,2011:197-206.

[14] 张 刚,罗小华,贺利芳.构建网络虚拟实验室技术研究[J].实验室研究与探索,2008,27(3):55-58.

ZHANG Gang, LUO Xiao-hua, HE Li-fang. Research on Technologies to Support Web Virtual Lab[J].Research and Exploration in Laboratory,2008,27(3):55-58.

[15] 王建宏,何 川,王 戈.复杂模拟电路仿真中的元件建模技术[J].计算机工程与设计,2012,33(12):4691-4695.

WANG Jian-hong,HE Chuan,WANG Ge.Component modeling technology on simulation of complex analog circuits[J].Computer Engineering and Design,2012,33(12):4691-4695.

Design and Implementation of Virtual Experiment System for Computer Composition Principle

ZHANG Wen-fen,XIAO Juan,LIU Hua-yan,LIAO Jun-ting
(Faculty of Computer,Xiangnan University,Chenzhou 423000,China)

This paper proposes an implementation method for the course of principles of computer composition virtual experiment system based on browser client technology to increase flexibility,reduce the complexity of software,and improve the experimental effect.This system is highly interactive and extensible as it is fully realized by browser client technologies.It uses JAVASCRIPT to define component library,uses CSS rendering chip and other components,uses VML to draw the connecting line,and uses HTML5 File API to read and write files.A single-threaded scheduling algorithm based on the queue is presented to effectively solve problems of data transfer and component dispatch between many components.This system simulates components from the perspective of functions and realizes simulative operation of the experimental circuit.In this system,a user can design circuit by himself and can design complicated model machine.This system has been applied in experimental teaching,and achieved good teaching effects.

simulation;virtual lab;computer composition principle;browser client technology

G 642.423;TP 391.7

A

1006-7167(2014)05-0062-05

2013-06-27

湖南省科技计划项目(2011TP4016-3);湖南省教育科学规划项目(XJK013QXX003);湖南省教育厅科研项目(湘财教指【2011】91 号NO.11C1182);湘南学院科研项目(院发【2012】126号NO.44、187号 NO.27)

张雯雰(1976-),女,湖南澧县人,硕士,副教授,研究方向:智能算法。

Tel.:0735-2239516,18075531016;E-mail:yydzhwf@163.com

猜你喜欢
器件客户端原理
了解咳嗽祛痰原理,有效维护健康
如何看待传统媒体新闻客户端的“断舍离”?
平均场正倒向随机控制系统的最大值原理
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
化学反应原理全解读
通信原理教学改革探索
旋涂-蒸镀工艺制备红光量子点器件
面向高速应用的GaN基HEMT器件
一种加载集总器件的可调三维周期结构