首页范文计算机硬件编程十篇计算机硬件编程十篇

计算机硬件编程十篇

发布时间:2024-04-25 17:48:31

计算机硬件编程篇1

【关键词】加密方法;加密原理;计算机指纹;易语言

1前言

为防止软件被盗用,维护软件开发者的知识产权,保护软件开发者的经济利益,软件开发者通常防止盗版的措施是采用软加密方法来保护自己的软件产品。本文主要介绍了软加密的工作原理和一种新的生成计算机指纹信息的方法。

2加密原理

软加密是一种在软件运行过程中对计算机指纹进行认证的技术,不同于硬加密需要在计算机相应硬件上固化加密信息。对于任意的两台计算机,都能够通过计算机的系统的特征信息或计算机硬件的标识信息进行区分,如同人的指纹信息一样。这些计算机系统的特征信息和计算机硬件的标识信息的集合统称为计算机指纹。如:磁盘的分区卷标,不同软件系统的计算机中磁盘分区卷标不同;硬盘序列号,任意两张硬盘的序列号是不一样的。软加密并不是对软件的所有信息都进行加密设置,仅仅是在软件安装或运行时进行加密处理。软件程序初次安装时,安装软件会读取相应的计算机指纹信息,安装软件使用用软件开发者在程序中设置的加密算法加密计算机指纹信息生成加密文件,并将加密文件写入到计算机注册表中。当下次启动运行软件程序时,软件程序再次读取相应的计算机指纹信息并采用同一种加密算法将其加密产生密文文件,然后与计算机软件注册表中的密文文件数据进行比较,如果两个文件数据相同则继续运行软件程序,否则停止运行软件程序。

3计算机指纹的生成

易语言是我国自主研发、拥有全部软件知识产权的软件开发编程语言。它具有全可视化的窗口界面,支持使用汉语字、词编程。易语言可有效的保障国家的安全,有效地防止外国软件的后门隐患。

用易语言程序生成计算机指纹,主要依靠易语言中的系统核心支持库。系统核心支持库中的GetHDiskCode命令、GetHDinfo命令、GetCpuinfo命令和Getapa-pterList命令功能如下表1,可以生成计算机指纹硬盘特征字、硬盘序列号、CpU序列号、网卡maC等信息。

表1命令功能表

命令名称:GetHDiskCode

调用格式:〈整数型〉取硬盘特征字()

返回电脑中第一个物理硬盘的物理特征字,该特征字是仅硬件相关的,也就是说与任何软件系统都无关(包括操作系统)。本命令为初级命令。

命令名称:GetHDinfo

调用格式:〈逻辑型〉取硬盘信息(硬盘信息硬盘信息,[整数型硬盘序号])

取硬件出厂信息。本命令为初级命令。

参数的名称为“硬盘信息”,类型为“硬盘信息(HDinfo)”。待取得的硬盘信息。

参数的名称为“硬盘序号”,类型为“整数型(int)”,可以被省略。待取得的硬盘信息的硬盘序号。可以为以下常量之一:0、#接口常量.磁盘0;1、#接口常量.磁盘1;2、#接口常量.磁盘2;3、#接口常量.磁盘3。

命令名称:GetCpuinfo

调用格式:〈无返回值〉取CpU信息(CpU信息CpU信息)

取CpU信息。本命令为初级命令。

参数的名称为“CpU信息”,类型为“CpU信息(CpUinfo)”。待取得的CpU信息。

命令名称:GetapapterList

调用格式:〈网卡信息数组〉取网卡信息列表()

取得本地计算机的网卡信息列表。失败返回空。本命令为初级命令。

4易语言程序的实现

4.1创建程序启动窗口

利用系统核心支持库的基本组件创建计算机指纹信息显示窗口,各基本组件的名称和属性如下表2。

表2组件名称、属性表

组件名称属性组件名称属性

标签1标题=“硬盘特征字”编辑框1内容=nULL

标签2标题=“硬盘序列号”编辑框2内容=nULL

标签3标题=“CpU序列号”编辑框3内容=nULL

标签4标题=“网卡maC”编辑框4内容=nULL

4.2双击启动窗口,添加启动窗口程序变量,添加子程序,如图1

编辑框1.内容=到文本(取硬盘特征字())‘GetHDiskCode命令的应用

取硬盘信息(硬盘信息,#接口常量.磁盘0)‘GetHDinfo命令的应用

编辑框2.内容=到文本(硬盘信息.序列号)

取CpU信息(CpU)‘GetCpuinfo命令的应用

编辑框3.内容=到文本(CpU.序列号)

网卡=取网卡信息列表()‘GetapapterList命令的应用

编辑框5.内容=到文本(网卡[1].物理地址)

4.4程序运行结果,如图2。

图1程序变量定义、子程序定义图

图2运行结果图

5总结

易语言是一种可以使用汉语字、词编写程序,易学易用,适应于我国国情的软件开发程序设计语言。通过易语言的系统核心支持库提供的命令,可以编写简单的易语言程序代码生成相应的计算机指纹信息,方便实现易语言软件程序的软加密操作,也能够有效地保护我国计算机信息的安全。

参考文献:

[1]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40―41.

计算机硬件编程篇2

关键词:非计算机专业;计算机硬件;教学质量

作者简介:郭华(1978-),男,河南灵宝人,军械工程学院信息工程系,讲师。(河北石家庄050003)尚静(1978-),女,河北石家庄人,河北经贸大学公共外语教学部,讲师。(河北石家庄050061)

中图分类号:G642.0文献标识码:a文章编号:1007-0079(2013)10-0129-02

计算机学科是一门科学性与工程性并重的学科。长期以来,工科高校非计算机专业通常开设如下课程:计算机应用基础、计算机软件课程和计算机硬件课程。其中“计算机硬件技术基础”是针对非计算机专业开设的计算机课程中具有应用性和实践性的专业基础课程。随着计算机课程的建设要求变化,学生对硬件课的期望值逐渐上升,“计算机硬件技术基础”面临新的需求和挑战。

一、课程面临的问题

“计算机硬件技术基础”是一门实用性很强的专业基础课程,主要内容为80x86系列的微型计算机基本组成和工作原理,汇编语言程序设计的基本方法,微型计算机输入输出设备以及典型接口电路和接口技术。课程大纲要求通过该课程的学习,掌握微型计算机的基本理论知识,同时也注重培养学生分析和解决实际问题的能力。经过多年的完善,课程在形式上已经建设得比较完备,但也存在一些问题,主要问题有:学生仍然感觉课程很抽象,难于理解;概念很多,不容易掌握;需要记的内容很多,内容之间的关联不明确,缺乏系统性。学习深度不够,不具备解决实际问题的能力。

传统的解决方法多是在课程的形式上下工夫,比如课程体系建设、教材的选择、互动式教学和实验方式的改革等等,缺乏对课程内在特性和学生的学习规律等深层次问题的考虑。笔者通过更深入地思考找到了一些解决以上问题的方法,并在具体教学实践中取得了较好的效果。

二、内容讲授形象化

课程内容讲授的直接目的是把知识教给学生。教师考虑的主要问题是如何让学生更容易理解和接受,同时有利于启发学生进行思考。当知识成为课程时,内容逻辑上更加严密、准确,同时也更加抽象。人对知识的学习需要经历从形象到抽象的过程,学生在没有任何计算机硬件知识的情况下,抽象的内容会难于理解。

任何事物都具有某种程度的相似性,比喻是传递语意的重要方法,任何复杂问题都是可以被简单比喻的。合理利用比喻能将抽象和难以理解的内容转化成形象和容易理解的内容。

在讲授硬件中存储器内容和地址区别时,可以将存储器比喻成一个大楼,楼里有很多房间,每个房间就是一个存储单元,房间的号码就是地址,房间内的东西则是存储的内容。通过比喻可以将抽象问题形象化,加深记忆和理解。

存储器分段是计算机硬件中的难点,需要进行比较复杂的比喻。计算机等级考试时,每个考生的考号是唯一的,这个考号很长,例如2000104000010017等等,这个考号是由几部分组成的,通常是考点号加考场号加座位号的组合。对于某一个监考人员,一般只监考很少教室的考试,具体到某一个教室,也就确定了前面的考场号和考点号组合,在这个前提下,监考人员关心的就是后两位,除非换教室,否则前面是固定的。这样做的好处是监考人员在不换教室的前提下,关心两位号码,而不是例如2000104000010017长的号码,在某个考场内,通过两位号码就可以对应到某个考生。对应到存储器分段,例如2000104000010017就类似于物理地址,一个考场可以看作一个逻辑段,教室中考生号码前面考点号加考场号就是段地址,后面两位座位号就是偏移,一个考场内的考生前面考号是固定的。

通过对教学中的难点用形象的例子进行解释,学生不仅对知识的要点理解得更透彻,而且也增加了计算机硬件学习的兴趣。恰当运用比喻需要对计算机硬件知识体系有深刻的理解,对问题形象化的前提是必须把握内容的核心关键所在,不恰当的比喻不仅不会使问题简单化,还可能使学生对知识产生误解。

三、递进式的引入概念

人对事物的认知是从感性到理性,从形象到抽象。微积分在牛顿和莱布尼茨发明的一百年的时间里,虽然已经在运用,可是逻辑推理并不严密,后来在加入极限的概念后才完善起来。可见,概念实际上是知识发展到一定阶段的结晶。

计算机硬件课程一大特色就是概念多,对概念的引入需要讲求方法和时机。一个严密准确的概念并不一定适合于初学者。比如,学习汇编语言时用到int指令,这是一条中断指令,在课程体系安排中,中断章节比较靠后,而现在学生还根本不知道什么是中断,如果现在将中断的定义告诉学生,由于缺乏相关知识的支撑,学生根本不可能理解,但是现在又要用到这个指令,可以将简化的定义告诉学生,中断可以暂时理解为一个函数调用,这个定义是不严密,不准确的,但是,对于当前学习程度的学生却是适用的。等到学到中断章节时,再将准确定义给出,学生在以前理解的基础上继续完善,就更容易接受这个新概念。

通过递进式的多次解释同一概念,学生对概念的理解会越来越清晰,越来越准确。运用这种方法,学生原来普遍反映计算机硬件课概念多、不好理解的问题得到了有效缓解,而且考试结果反映出学生对概念的理解更加准确。

同样,总结性的内容因为其高度抽象性,不适宜过早教给学生。总结性的内容是教师多年对课程理解的精华,但同时也更加抽象,对于初学硬件的学生,理解起来是很困难的,这就好比给儿童上哲学课一样。因此,对于总结性的内容,都安排在课程的后期讲解,前期更多的是具体的示例和实验。

四、合理调整授课内容的顺序

计算机硬件是一门系统性很强的学科,各个部分之间联系紧密。硬件课程内容多,讲授时则必须把课程内容分成相对独立的章节,但由于学生对其他知识上相互关联的章节并不了解,从而造成了学习上的困难。现有的内容顺序编排虽然概念准确,逻辑严密,其顺序适合对计算机硬件有所了解的人,并不适合初学者学习。针对学生而言,需要有一个由浅入深、逐渐清晰的过程,而不是说明书式的教学。学生对硬件的认识是整体由朦胧变清晰的过程,不是分部分清晰的过程。

计算机硬件课程涵盖两大部分,软件和硬件。这两部分各有各的特点,软件重点是培养学生解决实际问题的能力,授课时不仅局限于指令的使用,更多的注意力放到了把问题转化成程序的能力上。硬件重点是讲解整个计算机硬件系统结构的设计框架,软件和硬件彼此紧密联系。原有课程顺序如表1所示:

表1原课程内容安排

序号章节

一概述

二系统结构

三汇编语言

四存储器

五i/o接口和总线

六典型接口应用

上述课程编排比较明显的问题是:

第二章系统结构知识高度抽象,学生不容易理解;因为第二章没有学明白,缺乏对重点的把握,汇编语言学起来也很吃力;学习接口应用的时候,由于弄不清楚和前面知识的关联性,学生感到更加迷惑。

这样的讲授方式试图把每一部分都清晰地教给学生,本质上是违背了学生接受知识的过程,因此总体教学效率很低。很多学生往往在课程最后才通过自己的努力才把整个体系结构大致搞清楚。

针对上述不足,对整个教学顺序做了小幅度调整,调整后顺序如表2所示:

表2调整后课程内容安排

序号章节

一概述

二汇编语言

三典型接口应用

四系统结构

五存储器

六i/o接口和总线

建立合理课程顺序的原则是要符合学生的学习能力,关键分成两步做:一是寻找合理的课程切入点,二是建立合理的编排顺序。

计算机硬件课程切入点有两个可选:一个是数字电路,从最基本的逻辑电路讲起,再从加法器到CpU的结构;二是汇编语言。对于非计算机专业的计算机硬件教学,学生的基础是学过计算机软件,而且由于非计算机专业学生并不对组成原理做深入的学习,因此,最合理的切入点应该是汇编语言,这部分内容实践性很强,最具体,最形象,通过上机练习可以看得到,摸得着。

确定了切入点,然后就要逐步深入地将课程教给学生。汇编讲完后,然后再讲典型接口应用,典型接口应用相对也比较具体,学生通过接口实验加深对计算机硬件的了解,最后讲系统结构。整个计算机内容逐步由浅入深,由形象到抽象,由模糊到清晰。

具体教授时,对关联知识做适当的讲解,过深,学生听不懂;过浅,内容不够用。例如,汇编语言是需要硬件知识的,采用简单讲解,计算机由三部分构成,CpU、存储器(Ram)和i/o设备。CpU中有寄存器,寄存器和存储器的目的是存放数据,程序中的数据能放到寄存器中,就不要放到存储器中,因为访问存储器还要通过总线,速度慢,寄存器就在CpU内部,速度快。寄存器包括aX,BX,CX,DX,Sp,Bp,Si,Di通用数据寄存器。讲授时没有把所有概念和盘托出,仅介绍和汇编语言直接相关的,使学生在不需要很多基础概念的前提下,快速学习汇编语言,同时,通过对汇编语言的练习,学生对计算机硬件结构有了更加明确的认识。讲授时不追求面面俱到,不追求过于严密的逻辑和体系。

当学生学完第三章后,通过了汇编语言和接口实验的上机练习,已经对计算机硬件有了初步的认识,在此基础上讲授更加抽象的系统结构知识,学生感到很多不清晰的知识变清晰了,甚至对某些知识有恍然大悟的感觉。

通过以上的调整,学生对课程的理解更容易,学习效率明显提高。课程顺序调整的总体原则是把握计算机硬件知识的特点,同时了解学生学习的基本规律,由浅入深,由形象到抽象,由感性到理性循序渐进。

五、结束语

课程内容的讲授更多侧重知识层面,但更高层次的目的并不是知识,而是交给学生发现问题,思考问题,解决问题的能力,这也是高等教育区别于初等教育的根本所在。通过计算机硬件的教学,希望学生能够建立计算机结构体系的基本框架,具备初步的计算机硬件应用能力和创新能力。学生的创新能力本来就存在,关键在于能不能挖掘出来。创新来源于思考,思考来源于对问题的深入,而要深入问题则先要把知识踏踏实实地学明白。针对计算机硬件教学,外在的教学形式虽然重要,但更重要的是课程知识的内在联系和对学生的了解。要在教学中充分发挥学生是主体、老师是主导的基本作用,老师和学生都应该踏踏实实深入学习,深入思考,而不能仅仅局限于应付考试。

参考文献:

[1]雷向东,雷振阳,等.加强计算机硬件课程体系建设与教学质量提升的研究[J].教育教学论坛,2012,(25).

计算机硬件编程篇3

关键词:汇编语言;教学改革;课程建设;教学研究

中图分类号:G424文献标识码:a文章编号:1009-3044(2010)21-5894-02

汇编语言是一种功能强大计算机底层编程语言,是高校电子信息类专业的一门主干课程。汇编语言也是计算机专业的核心课程,是硬件方向的专业基础课程,它是系统了解一台计算机运行的必修知识,它与计算机组成原理、微机原理、计算机体系结构等课程共同描述了一台pC机的正常工作流程。汇编语言也是单片机和嵌入式等课程学习的基础,同时,它也能够为更深入的理解高级语言的运行原理提供了依据。汇编语言是一门具有硬件特性的语言,是高效和灵活指挥计算机工作的必不可少的工具,虽然在计算机语言高级化可视化的大环境下汇编语言的显得地位越来越不重要,但是在单片机以及嵌入式等开发领域仍然离不开汇编语言。

1汇编语言教学中的若干问题

汇编语言难学是汇编教学中的一大难题,这其中有课程本身的因素,也有教师、学生和教学环境等方面的因素。

1.1汇编语言本身学习难度大

汇编语言是一种硬件编程语言,抛开硬件谈汇编将成为空中楼阁。但是,目前的课程安排不尽合理,知识的先后顺序被课程割裂开来,不能系统的全面描述汇编语言的硬件特性,汇编语言要在完整的硬件体系中才能体现出其重要性,而完整的硬件知识构建需要多门课程的学习,这是一个矛盾。

其次,课程本身难度较大。学好汇编语言需要不单单要研究汇编的语法,还要汇编语言有大量的指令和语法规则需要记忆,较繁琐;需要具备一定的计算机硬件基础知识相配合;是一门比较抽象的课程,课程中所讲授的内容较难理解,容易感到枯燥、厌烦,导致产生厌学情绪;上机调试结果不直观且容易出错,这些特点都使得汇编语言这门课比较难学。

1.2学生对汇编的畏惧

首先,学生的学习方法不合理。大学的入门学习语言往往是一门高级语言,如C或C++等。学生在学习汇编语言时,总会借鉴在高级语言学习过程中的一些方法,但是汇编语言和高级语言的学习方法有很大的不同。高级语言不和具体硬件相又比较接近自然语言,所以很容易被理解,可视化编程易于理解和上机操作,相关高级语言算法实验可以解决实际学习中的一些问题,也容易激发学生的学习积极性。而汇编语言却必须和看不到的硬件打交道,相对比较抽象,还有更多琐碎的概念需要记忆,学习起来需要更多的努力,对汇编稍有松懈就可能掉队。在大信息量的多媒体教学情况下,更需要学生在课下多下功夫。

其次,大多数计算机专业学生学习兴趣普遍倾向于软件和网络方向,对硬件方向的课程汇编语言的学习普遍比较放松。

1.3教师教学方法需要进一步改进

最后,老师在授课过程中没有充分调动学生的积极性。很多老师都没有汇编语言的工程使用经验,在讲授课程中完全依赖于课本,课程内容比较枯燥,实验内容比较简单,很难激发学生的学习积极性。还有些老师针对汇编讲汇编,不能够融汇其它硬件课程内容,难以生动的讲述汇编的硬件特性。另外,目前的汇编语言课程实验内容比较简单,实验课时相对较少,很难激发学生的学习兴趣和培养学生的编程能力。

1.4重软件轻硬件还很普遍

目前,不少高校教育经费紧张,对于计算机专业倾向于投资效益比较高的软件方向,致使硬件教学环境比较落后。同时,硬件课程方面的师资力量也比较薄弱,不能与硬件技术发展与时俱进,汇编语言教学内容和思想都比较陈旧。此外,计算机专业软件方向人才的需求比较旺盛,占用人量的比例很高,也容易让人冷落硬件方向建设。汇编语言的课程地位正在“重软件,轻硬件”的大环境下被逐步弱化,有些学校开始将汇编语言课程合并至其它硬件类课程,比如单片机、计算机组成原理等,还有的专科学校干脆完全放弃汇编类课程。

1.5教学设施还有待完善

目前,硬件方向的教材和实验环境得到了很大改善,但是还不能满足汇编语言的教学需要,这体现在两个方面。

首先硬件基础课程教材的系列化。虽然硬件类课程出自统一出版社的系列,但却是由不同学校不同观点不同经验的老师编写的,所谓的系列化的教材只是封面的系列化,而具体的内在知识体系的系列化却没有体现出来。当前应该围绕一批硬件类精品课程和精品教材进行延伸的教材编写,从内在的知识系统上系统化,也可以积极组织相关经典教材的编写着共同参与制定系列化的教材编写方案。

其次是汇编语言硬件实验平台的开发。汇编语言的上机环境比较简单,相关配套设备缺乏,不能调动学生的学习积极性。应当开发相应的有一定技术难度的汇编语言实验平台,并基于平台改革实验内容,充分调动学生的积极性。

2汇编语言教学的若干建议

2.1明确汇编语言的地位和作用

可以用三个必须来重新认识汇编语言。必须明确汇编语言在计算机类本科教学中的核心地位,它是系统理解计算机系统工作的必修课程,将为其它课程学习提供理论支持。必须明确汇编语言在当前信息技术领域中的地位,它是进行信息系统建设特别是嵌入式系统的开发不可缺少的语言,虽然代码量不多但却都是精华。必须回归汇编语言的真实面目,它并不像学生中流传中的那样难学,只要学习方法对头汇编语言就很容易能学好,这需要任课老师在上课中能够学生足够的辩证讲解。

2.2改革教学方法

汇编语言的教材经过多年建设已经出现了不少经典教材,内容结构清晰,语言描述通俗易懂,针对汇编语言的基础知识学生一般都可通过自学获得理解。所以,老师在上课的时候应该减少讲述的内容,做到课堂精讲,并要结合其它课程内容来叙述汇编的作用和来历,重点讲解汇编语言知识在整个硬件知识体系中的作用。课堂精讲,实验要多练,加大实验教学的课时和难度,加大实验在课程考核中的比例。

2.3加强师资力量建设

加强汇编语言师资力量建设,是改善当前汇编语言教学的核心工作。当前的汇编语言教学师资力量极度缺乏,很多任课老师均是围绕课本讲代码,围绕例子将代码,没有相关技术的开发经验,有的甚至没有见到过相应的实际开发例程。当前汇编语言的开发例程很少,老师参与相关工程开发的机会很少,所以应该专门设计一套面向教学的开发例程,围绕这一例程进行相应的师资培训。笔者建议以该例程可以定位在汇编语言在嵌入式开发领域的应用。

2.4加强汇编语言教学的设施

汇编语言的不是独立的语言课程,它有相应的硬件课程作为支撑,并为其它硬件课程提供语言基础。加强汇编语言的教学设施应该着眼于整个硬件类课程的建设,汇编语言只有在一个硬件课程体系中才能显示出它的光彩。其课程的教学设施主要包括硬件类教材体系的建设、开发试验平台的建设和实验内容的建设。

3总结

信息技术的风起云涌总让人把陈旧不变的汇编语言遗忘,汇编语言的教学困境的根本原因是固守陈旧的知识和陈旧的教材停止不前,逐渐的让教师和学生失去兴趣。对于老师,深入汇编语言教学很难出科研成果,于评职称无用;对于学生,学了汇编语言少有用武之地,于找工作无助。对于当前的困境,应该大力崇尚教学神圣的观点的同时,在实际工作中的考核中给予更多体现,让有教学成果的教师也可以成名成家,让相关老师可以放心的投入到汇编语言课程的建设中去。对于学生,要教育他们少些功利的学习思想,多一些远见,着眼于更全面的技术成长。虽然汇编语言的学习有一定的难度,但是在老师、学生和相关部门的共同努力下一定会得到较大的改善。

参考文献:

[1]沈美明,温冬婵.iBmpC汇编语言程序设计[m].2版.北京:清华大学出版社,2003.

计算机硬件编程篇4

关键词:人工智能;计算机体系结构;硬件;软件

人工智能是让机器模拟人类思维和行为方式,从而让其在某些方面达到人类智能的水平。它的研究涉及了多门学科知识,是一个跨学科的研究领域。但是计算机硬件和软件的发展,是人工智能实现的基本保障。本文从计算机体系结构入手,介绍了计算机硬件和软件的发展过程和趋势,以及对人工智能发展起到的作用。

1计算机的体系结构

计算机体系是一个多级层次结构,通常将其分为硬件和软件两大部分。硬件部分主要有输入/输出设备、存储器和CpU。软件有系统软件和应用软件两类。现代集成技术使得计算机的体积越来越小,但是性能却越来越强。硬件作为计算机基本的组成部分,是作为物理底层为上层软件的运作提供了基本的环境支持。在计算机体系设计中的一个核心问题就是如何提高计算机硬件运行和服务的效率,使上层软件的运行更加快速和流畅。随着上层软件种类和功能的不断增加,对底层硬件的要求越来越高。硬件和软件的兼容、配合以及交互成了体系设计最大的问题。分布式体系结构提升了硬件的处理能力,但同时增加了系统结构的复杂性和操作性。如今,随着网络技术的发展,云平台区块链技术的成熟,计算机体系从传统的单机系统扩展为以网络结构为基础的多系统多体系平台。这种模式从理论上看,大大增加的了系统结构的复杂性,但对于用户体验而言,这种复杂性完全可以忽略,用户不需要对其有更多地了解,也不需要投入更多的成本。相反,用户体验到的是方便、快捷、高效的运行环境。集群计算机体系结构就是一个典型的案例。它通过以太网或infiniBand网络作为内联方式,使用Linux操作系统和并行编程接口,采用价格比较低的服务器为运算节点,整个系统较之前系统的成本明显降低,而且公开性和操作性都比较强[1]。软件作为计算机体系结构中的上层应用,在20世纪80年代前,只是为专门的计算机而定制的小程序,功能比较简单更没有形成产业。20世纪80年代后,随着计算机硬件集成化程度提高,计算机体积变小个人电脑普及,各种功能齐全的软件也应用而生,软件开发逐渐标准化产业化。进入21世纪后,英特网普及,开源社区发展迅速,开源软件开始流行,软件开发也逐渐向网络化、智能化的方向发展。其开发策略也从原来面向过程的编程转化到了面向对象的编程,开发的软件功能更强大也更具有人性化,为人类在生活生产中解决很多实际问题。计算机体系结构的发展使得计算机能够以更低的成本,更好的互动,在网络环境下发挥更好的性能。为人工智能的发展提供了更有效的运行环境。

2计算机硬件的发展

1946年,第一代电子管计算机研制成功,它的主要特征是体积大、耗电大,运算速度慢;1959年第二代晶体管计算机诞生,与电子管相比晶体管寿命长、体积小、运算速度快;1965年第三代集成电路计算机产生,集成电路技术使计算机在性能和结构方面都有了很大的提升,其主要的代表就是iBm公司研制的360系列计算机;1971年以后,是大规模集成电路和超大规模集成电路的计算机,以英特尔公司推出的x86系列和奔腾系列微处理器为标志,它不仅大大缩小了计算机的体积,而且还提高了计算机的处理能力。在处理器的研制上,英特尔公司不断刷新着主频记录,处理器一直以摩尔定律的速度在发展,其处理能力每18个月到24个月就增加一倍。1972年的8080处理器,主频2mHz每秒处理50万条指令;1978年的8086处理器,主频8mHz每秒处理80万条指令;1982年的80286处理器,主频12mHz每秒处理270万条指令;1989年的486DX处理器,主频25mHz每秒处理2000万条指令;1993年的奔腾处理器,主频233mHz每秒处理4.35亿条指令;1997的奔腾Ⅱ处理器,主频333mHz每秒处理7.7亿条指令;2000年奔腾Ⅳ处理器,主频已经达到1.4GHz[2]。当英特尔还在一心追求处理器高主频的时候,另一家公司nViDia在1999年8月了一种专门做图像运算工作的微处理器GpU(GraphicprocessingUnit)。GpU采用的是一种全新的架构模式,它将几何转换与光照功能以硬件的形式集成在图形芯片中,由图形芯片直接负责几何转换和光照操作,这使得处理器性能大大提高。与CpU相比,GpU在高清视频、数码照片处理、3D渲染等方面的表现非常优越。GpU的诞生,使得对处理器的研制从追求高主频转换成追求高性能,nViDia与ati两大公司为此展开了激烈的竞争。直到2008年,随着大数据云计算的兴起,以及智能手机的广泛应用,市场对高性能已不再是唯一的诉求,性能适中的轻量级GpU成为了下一个发展方向[3]。随着人工智能技术的发展,神经网络的规模越来越大,采用多处理器集成的架构模式使得算法实现的装置体积巨大。为此,2015年,谷歌推出了tpU(tensorpro-cessingUnit),它是一种专用于神经网络计算的处理器,主要用于深度学习、ai运算,其算力较GpU有很大的提高。alphaGo是第一个战胜围棋世界冠军的人工智能机器人,最初它内部安装了1202个CpU和176个GpU用于运算处理。2015年引入tpU之后,与李世石对战的alphaGo,只有48个tpU负责所有的计算任务。存储器是计算机硬件的另一个主要组成部分。在计算机体系中一般采用外存、缓存、内存多级存储策略。外存容量大成本低但相对读取速度慢,通常用来保存需要长久存放于计算机内的大量数据,例如系统安装的软件、用户的资料、数据库等;缓存是为了提高数据读取的命中率而引入的一种机制;内存数据读取的速度与CpU相当,可以和CpU直接进行数据的交换,是CpU处理数据的来源。但因为内存是通过大量的晶体管构成寄存器来保存数据的,所以采用的硅片面积比较大,制造成本高,在系统中容量配置相对小些。但是随着电子制造技术的提升,现在pc机硬盘的配置可以达到1tB,内存容量如果是64位操作系统一般都在4GB。计算机存储器容量的增加可以满足人工智能时代海量数据的存储。随着计算机硬件的发展,计算机输入系统也呈现多样化形式。数据来源不再是单纯的以键盘输入为主的模式。摄像机微型化之后,计算机系统普遍都安装了摄像头,通过摄像头可以实现视频的采集;而在计算机系统中安装声音采集器可以实现语音输入。传感器可以模拟人类感官让计算机可以像人类一样从自然环境中获取信息,常见的有触觉传感器、视觉传感器、力觉传感器、温湿度传感器和超声波传感器等。计算机的这些新型输入方式更接近于人类日常生活的习惯,也使计算机用起来更人性化,智能化。计算机硬件的这些特性是人工智能发展的基本保障。

3计算机软件的发展

计算机语言是计算机软件开发的主要工具,也是解决实际问题的手段。20世纪50年代,为了方便人们操控计算机的运行,机器指令顺应而生。它采用的是二进制编码,增加了计算机的可操作性,但对用户而言可读性不高,调试难度大。汇编语言是第二代计算机语言,用字母和单词(add、sub等)代替一些特定的指令,增加了程序的可读性,但它是直接面向硬件的操作指令,程序的可移植性差。之后,出现的高级语言其表现形式更接近于数学语言和自然语言,可读性强。而且不依赖于计算机硬件,能在不同的机器上运行,可移植性强。计算机语言的发展,极大地促进了计算机在各个领域的应用和普及,给人们的日常生活带来了翻天覆地的变化。随着人工智能的出现,计算机语言也逐渐向智能化、网络化的方向发展。1956年达特茅斯会议提出“人工智能”概念之后,1958年麦卡锡和明斯基的人工智能项目组,开发了LiSp语言。LiSp使用表结构来表达非数值的计算问题,实现技术简单是使用最广泛的人工智能语言。1972年一种基于谓词逻辑的编程语言prolo生,它是面向逻辑面向用户的一种编程语言,主要用于描述知识的逻辑关系和抽象概念,也称为描述性语言。prolog依照人的思维逻辑,运用数理逻辑中的谓词逻辑来描述解决的问题方法,告诉计算机“要做什么”而不是“怎么做”。prolog编写的程序更接近于自然语言,逻辑性强易写易读易于正确性证明。1982年,由Larrywall设计的perl语言是运行在Unix环境下的一种脚本语言。perl对文件和字符有很强的处理能力,主要用于大型网站开发。20世纪90年代初,荷兰人Rossum设计了python语言,其语法清晰、简洁,并且拥有大量第三方函数模块,编程简单但功能强大,很快成为了人工智能主要的编程语言[4]。在大数据背景下人工智能发展更加迅速,随之而来的是计算机需处理的海量数据,而且这些数据来源广泛,特点多样,若是利用传统的算法进行数据的分析处理,确定数据的有效性和安全性,需耗费大量的时间,也导致整个系统运行变慢,性能下降。而人工智能语言编写的软件利用模糊逻辑粗糙集理论在不影响系统性能的情况下,可以对海量数据实现快速推理和分析,挖掘数据深层次的价值,得出其背后隐藏的规律,有效地帮助人类作出合理的决策。进入21世纪后,网络高速发展,开源软件由于开放二次开发的权力,具有低成本高安全的特性受到了各国企业和政府的支持得到迅速发展。开源软件是在遵守一个开源协议的前提下,将程序的源代码公开,允许其他人学习修改和,也可转化成任何形式的实用软件的一类软件。截至2006年底,全球研发和应用开源软件的企业占到了总数的50%以上。而人工智能开源软件(openCV、nLtK、CntK、tensorFlow等)在自然语言处理、计算机视觉、机器深度学习等领域中也扮演着重要的角色。

4结语

人工智能的发展涉及生物学、神经学、仿生学、电子科学、计算机科学等学科,是多学科交叉融合发展的领域。用来支持人工智能实现的计算机系统,也逐渐表现出一种软中有硬、硬中有软的混合模式。现场可编程门阵列(Field-programmableGatearrays,FpGa)就是一种典型的代表。基于现场可编程门阵列的系统设计,其硬件功能的实现可以通过软件设置来完成,通过调试软件参数就可以实现硬件功能的改进。这种全新的软硬件设计理念使计算机系统具有更强的灵活性和适应性,提高了人工智能的应用效率,为人工智能构建了一个更具可扩展性的大脑。

参考文献

[1]刘细妹.计算机体系结构现状及发展趋势研究[J].计算机产品与流通,2019(3):98.

[2]付华.浅析计算机硬件发展史[J].电脑知识与技术,2016(13):249-250.

[3]Janlen.光影之路GpU架构发展史[J].微型计算机,2011(33):99-117.

计算机硬件编程篇5

关键词:eDa技术;计算机专业;硬件体系;实验教学

中图分类号:G642文献标识码:a

1计算机硬件类实验教学面临的问题

计算机技术不断进步与发展,若计算机硬件类实验教学仍采用传统的实验教学模式和传统的实验平台,开设自主性、综合性、创新性实验就面临一些问题和困难。

1.1硬件设备投入高,硬件项目开发周期长

硬件实验平台的建设需要大量的资金投入,而且硬件类实验消耗很大,需要持续的资金投入做保障。此外,硬件课程建设周期也较长,硬件实验项目开发也非一蹴而就,实验教师需要完备的理论知识和扎实的电子学知识,而且需要反复的实验和长期的实践,才能自如的设计实现,这一过程比掌握一门计算机语言或一种计算机软件开发工具要难得多和慢得多。实验设备的更新速度及实验项目长周期开发难以满足新技术、新方法的更新步伐。

1.2教学实验台的设计针对性强,硬件线路相对固定,实验内容受硬件设计的制约

很多教学实验台的设计针对性强,是针对某门课程而开发设计的,硬件线路部分相对固定,其扩展性很有局限,更新实验内容受硬件设计的制约。硬件实验设备的高投入和实验器件的大消耗,在没有足够资金投入的情况下,在现有硬件设备上进行实验内容的更新,开设自主性、综合性、创新性实验难以实现。

1.3硬件实验教学彼此脱节,缺乏系统化的实验体系

计算机专业硬件类课程必修课程一般包括数字逻辑、计算机组成原理、计算机接口与通信技术、计算机体系结构、嵌入式系统设计,选修课程一般包括单片机原理及应用、数据采集、计算机控制技术等。这些课程之间彼此存在内在的联系,学生通过这些课程的学习,应当能逐步建立起整个计算机系统设计的概念,掌握计算机系统的设计技术,掌握计算机的控制应用。但在具体课程和实验安排中,却往往忽略并割裂了这种内在联系,实验内容没有从模块化、系统化的角度整体考虑计算机系统设计和控制应用的要求。因此,分析这些课程之间的内在联系,设计阶段性、模块化、系统化的实验教学内容,建立计算机硬件实验教学体系,对于培养学生的计算机系统设计能力和应用设计能力十分重要和必要。

2构建基于eDa技术的计算机硬件实验教学体系

eDa技术的迅猛发展,以及可编程逻辑器件pLD的出现及不断推旧出新,为解决上述矛盾提供了一个良好的契机。eDa技术不仅是一种先进的硬件设计技术,而且将在计算机专业的硬件体系实验教学中发挥其重要作用。采用eDa技术可以实现硬件设计软件化,其实以软件实验替代硬件实验的方法也将是计算机硬件设计技术的发展方向,在美国一些著名大学的计算机硬件实验室,包括计算机组成原理实验早已不用那种传统接插式箱式实验台,采用eDa技术进行硬件实验,通过可编程逻辑器件进行修改和重构,实现系统编程和硬件逻辑设计的软件化,设计方法较灵活。由于所有的实验都在计算机上利用软件来完成,不需连接导线,修改测试极为方便,可大大提高实验效率。与通常的实验手段相比,“软件化”实验无器件损耗,可节省实验经费,并减轻实验管理人员的维护工作量。采用eDa技术将为学生进行自主实验、综合实验和创新实验提供广阔的发展空间的同时,全面提高学生工程实践能力和学习硬件设计的兴趣。因此,构建eDa技术贯穿于计算机硬件实验教学体系十分必要。

2.1研究计算机专业硬件类课程之间的关系,设计递进层次的实验结构

要合理设置计算机实验课的结构,在强调计算机实验课之间的逻辑顺序的同时,注意知识内容的相互衔接,上下呼应,以保证学生知识的增长、学生能力的发展和社会需求三者之间的统一。建立基于eDa技术的基础设计、综合设计、应用研究设计三个递进层次的实验结构。

基础设计:主要掌握基本技能、基本方法的运用,加深对理论知识理解。例如,数字逻辑实验课程中组合逻辑和时序逻辑电路的设计,计算机组成原理实验课程中功能部件的设计,计算机接口实验课程中i/o接口部件的设计,学生用eDa软件原理图和硬件描述语言的方法在设计或描述这些功能时,必须清楚部件的结构与性能,充分理解理论知识。以基础设计实验替代验证性实验不仅让学生掌握基本技能和方法,更能透彻理解理论知识。

综合设计:综合所学的知识,应用现代化的设计思想,设计计算机的硬件系统。如将计算机组成原理、计算机接口技术与计算机体系结构实验课程结合,学生用硬件描述语言完成中断控制器、总线控制器的设计,及RiSC、CiSC的CpU优化设计。综合设计实验可以在单科单个实验的基础上,进一步将计算机硬件课程的实验内容打通,建立统一的平台,完成多科目的综合应用。实现更加复杂的计算机硬件系统的设计,达到对整个计算机硬件知识的融会贯通。

应用研究设计:进行软、硬件综合设计,能够根据需要设计出一定规模的计算机硬件应用系统实例,此时的计算机硬件实验就不仅仅是单个或综合的实验教学了,而是一个总的计算机硬件应用系统的设计项目或软、硬件综合设计。学生以接近于实际应用环境,完成高质量综合设计为训练手段,使学生建立系统的概念与工程的概念。如基于SopC的嵌入式设计项目,以掌握计算机硬件结构与应用系统设计作为主要训练目的,使学生对计算机的整个硬件系统、软件环境有较全面、较系统的掌握,才能完成设计任务。

2.2以eDa技术为纽带构建阶段性、层次化的实验教学体系

仔细研究计算机专业硬件类课程之间的关系,构建阶段性、层次化、系统化的实验体系。eDa技术好比纽带,将那些分散的计算机专业硬件类课程有机地连接起来。具体可构建如下几个层次的实验:

(1)数字逻辑层次实验

完成常用组合逻辑和时序逻辑电路的设计,以及具有一定实用功能的逻辑系统的实验。通过这些实验使学生熟悉eDa设计的的全过程。

(2)计算机组成原理层次实验

主要完成运算器、存储器、CpU等大规模器件的设计,通过计算机的功能部件或整个计算机系统的设计实现过程,锻炼学生的工程实践能力。

(3)计算机接口与通信技术层次实验

完成计算机i/o接口部件的设计,侧重于硬件逻辑实现,如定时/计数器、中断控制器、Dma控制器、并行接口、串行接口和VGa显示器的控制电路等。

(4)计算机体系结构层次实验

完成诸如RiSC、CiSC和总线控制器等的设计,实现计算机的各种组成部件或整机系统,追求结构的优化和性能的提高,培养学生进行性能分析和测试的能力。

(5)嵌入式计算机系统层次

主要完成嵌入式系统的硬件、软件的设计和软硬件综合设计、多机容错系统设计、多机并行算法设计等,使学生能熟练进行嵌入式系统应用程序开发和运用嵌入式操作系统进行任务调度和管理,最终设计出一个完整的嵌入式系统。

3实现基于eDa技术的计算机硬件实验体系的措施

3.1增设eDa技术课程是当务之急

eDa技术课程以应用为主,主要介绍当前可编程逻辑器件pLD设计的主导思想和设计方法,以及pLD的体系结构、硬件描述语言HDL、eDa开发工具和数字系统的设计方法。实验教学是eDa课程的一个重要实践环节,通过一系列由浅入深的、不同层次(如基础设计型、综合设计型、应用研究型)的实验,学生可在较短时间内掌握eDa技术的原理和方法,熟悉eDa设计的全过程。

eDa是以pLD及其开发板为硬件平台,以硬件描述语言HDL和eDa技术为开发工具,以软件设计的方法实现硬件的功能。eDa课程的意义不仅仅在于教会学生掌握某种HDL语言和某种eDa工具的使用,更重要的是引导学生掌握现代数字系统设计的方法与思想,能够用形式化的方法来描述硬件电路,并能综合运用先进的eDa技术对设计进行仿真、综合和测试、验证,从而培养和提高学生的硬件设计能力。国外加州大学伯克利分校、斯坦福大学、威斯康辛大学等高校早已经在计算机专业应用eDa技术进行数字系统的设计和CpU的设计。国内著名高校近年也在计算机专业开设了eDa技术课程,开始应用eDa技术进行计算机系统的设计。在计算机领域应用eDa技术是计算机硬件设计技术的发展方向,对于还没有开设eDa技术课程或在计算机硬件系统设计还不能自如应用eDa技术的计算机专业,应该尽早增设eDa技术课程。

3.2精选实验内容,优化实验设置

精选一些基本的实验作为计算机实验的必修内容。在内容选取上,可以打破传统的模式,如以基础设计替代验证性实验,实验内容以训练的性质、层次进行分类。在实验类型的设计上,强调实验项目的设计,拟定方案、调试方法等由学生独立完成,使学生在基础知识、基本方法和基本技能上得到系统的训练,提高学生的主动性。

实验教学项目的设计,应开展多种类型、多种层次、多种目的实验,如基础设计型、综合设计型、创新设计型或应用研究型。合理设置计算机实验课的结构,注意知识内容的相互衔接,前后呼应。如在计算机组成原理层次实验,学生需掌握eDa技术的原理和方法,熟悉eDa设计的全过程;在嵌入式计算机系统层次实验,学生需掌握嵌入式处理器组织结构,如niosiiCpU软核或microBlazeCpU软核。

3.3抓好计算机硬件师资队伍建设

要培养高质量的学生,就必须有高水平的教师。教师是实践教学改革的关键,其知识结构、业务素质、实践能力、敬业精神将影响学生久远。从事计算机硬件教学的教师需要具备丰富的计算机系统知识、扎实的理论功底、一定的工程实践经验。值得思考的是,在当今实践教学内容更新迅速,实践教学指导难度加大,社会用人单位急需实践能力强的应用型人才的情况下,高等工科院校的实践教学教师仍然被定义为“教辅人员”,在岗位津贴、晋升职称、项目申报等方面仍然处于弱势地位。这种现象与重视实践教学和提高人才培养质量并不合谐一致。需要尽快转变传统的观念,抓好计算机硬件师资队伍建设,一方面积极引进计算机硬件人才;另一方面定期进行新技术培训、实践教学方法培训;此外,加强与企业单位横向合作,鼓励老师走向社会,多参加科研项目的研究,不断更新知识,提高业务水平,为实践教学改革与应用型人才培养打下坚实的基础。

3.4建立开放式eDa实验室

可编程片上系统SopC(SystemonaprogrammableChip)使得在一个芯片上实现一个完整的计算机系统成为可能。SopC集成了硬核或软核CpU、DSp、存储器、i/o及可编程逻辑,采用基于SopC的实验平台,使学生调试、验证自己的设计项目成为可能,为学生的自主实验提供广阔的发展空间。比如软硬件协同设计实验,面向DSp等实际应用的实验,基于SopC嵌入式系统设计实验等,使学生能够应用eDa技术完成大型硬件的原型设计,或进行创新性课题的研究。

由于pLD自身的特点,学生最初完全可以在计算机上借助于eDa工具完成设计输入、编译、仿真和综合,这样学生在普通的计算机上即可完成pLD设计的大部分工作,最后再到eDa实验室进行编程下载和验证。借助eDa技术学生能完成涉及多门硬件类课程的实验,在不同的学习阶段,学生学习了相应的硬件课程后,就可以采用eDa技术,自行设计与本课程相关的实验设计或复杂应用系统设计。

采用这种模式开设硬件系列实验,建立一个一定规模的eDa实验室,配备一定数量的SopC实验台和配套的计算机。这并不需要很大的实验室,也无须与学生规模相配套的实验设备,在计算机上安装各种成熟高效的eDa工具,实验室作为开放式实验室,可以是实验时间开放和实验内容开放,为计算机专业学生提供一个良好的硬件环境和软件环境。eDa技术的应用贯穿于计算机硬件体系实验教学,学生的自主设计能力和创新意识将得到极大提高,这无疑对培养具有创新意识的人才有着重要的作用。

4结束语

计算机科学是一门实践性很强且发展迅猛的学科,实践环节是计算机学科建设与发展的重要组成部分。构建合理

的计算机硬件实验体系,对培养学生良好的计算机硬件基础,提高学生设计、应用计算机的能力至关重要。构建系统的eDa技术的实验教学体系,实行开放式实验教学,有利于增加新技术、新方法的实践应用;有利于随时更新实验内容,开设自主性、综合性、创新性实验。建立eDa技术的实验教学体系必将极大地推进计算机专业硬件实验教学内容和教学形式的改革,为创新人才的脱颖而出创造条件。

参考文献:

[1]万晓冬,王友仁等.计算机硬件系列课程体系改革探讨[J].电气电子教学学报,2007,(2):4-6.

[2]郑秋梅.计算机专业硬件系列课程的改革与实践[J].石油教育,2002,(2):69-71.

[3]艾明晶.eDa课程在计算机专业硬件体系实验教学中的作用[J].实验技术与管理,2005,(10):88-91.

[4]徐煜明.计算机专业硬件教学的研究与改革[J].常州工学院学报,2007,(3):83-86.

计算机硬件编程篇6

关键词:计算机教学;硬件系列课程;实验安排;实验管理

赴美国中西部大学考察学习归来,我们重点学习了各层次大学计算机科学(CS)和计算机工程(Ce/eCe)本科专业课程设置、实验教学体系、实验环境建设以及实验内容开发的情况,本文重点阐述计算机硬件系列课程的设置、实验安排、实验管理等方面的调研情况。

1课程设置

美国大部分高校将计算机学科分成了科学与工程两个部分,分别称为CS(ComputerScience)和eCe(electricalandComputerengineering),各自侧重的方面也不同,在硬件系列课程中体现得尤为明显。CS注重讲清计算机的硬件组成和工作原理,实验也

主要以软件模拟实验为主;而eCe注重讲解计算机的组成和构建方式,实验也会在实际的硬件电路上进行。也有一些学校将CS和eCe二者结合为一个系,一般称作eeCS或eCS。

在课程设置上,各校一般会安排一门入门课程,将计算的相关内容简要介绍一下,其中包括计算机组成原理的基础内容,然后在后续选修课程中再深入介绍组成原理和系统结构的内容。各个学校在硬件系列课程的设置中不会把数字逻辑、计算机组成原理和系统结构分得很清晰,课程设置也不尽相同,不过总的介绍内容都是类似的。下面以UiUC的CS、purdue的eCe和西北大学的eeCS为例详细介绍课程设置及内容,如表1、表2和表3所示。

表1UiUCCS硬件系列课程[1]

课程主要内容

CS231:Computerarchitecturei

(计算机体系结构i)从门电路开始,内容包括组合逻辑和时序逻辑、算术逻辑单元、存储器和控制器。

CS232:Computerarchitectureii

(计算机体系结构ii)组成与系统结构的基本内容,包括汇编语言、指令集系统、数据表示、子程序、输入输出、加载和链接、流水线、高速缓存、性能分析等。(cs.uiuc.edu/class/fa09/cs232/)

CS433:ComputerSystemorganization

(计算机系统组成)计算机系统结构深入课程,包括计算机系统分析与设计、各部分之间的管理、性能分析、指令系统设计、流水线、向量机、存储系统。(cs.uiuc.edu/class/sp09/cs433/)

作者简介:李山山(1979-),男,工程师、硕士,研究方向为计算机系统结构、计算机实验系统;全成斌(1972-),男,高级工程师、博士,研究方向为计算机系统结构、计算机实验系统。

表2purdueeCe硬件系列课程[2]

课程主要内容

eCe26600-DigitalLogicDesign

(数字逻辑设计)介绍逻辑设计,着重于设计和实现,内容包括布尔代数、逻辑优化、电路特性、组合逻辑与时序逻辑电路分析、时钟电路、状态机及应用。

eCe26700-DigitalLogicDesignLaboratory

(数字逻辑设计实验)是eCe26600课程对应的实验课程。

eCe36500-introductiontotheDesignofDigitalComputers(数字计算机设计导论)介绍计算机系统的硬件组成,包括指令集选择、算术逻辑单元、硬连线和微程序控制器、内存组织、io接口设计。

eCe43700-ComputerDesignandprototyping

(计算机原型机设计)介绍计算机组成和设计,包括指令集选择、算术逻辑单元设计、数据通路设计、控制策略、流水线、存储系统、io接口设计。(cobweb.ecn.purdue.edu/~ece437l/)

表3西北大学eeCS硬件系列课程[3]

课程主要内容

eeCS203-introductiontoComputerengineering

(计算机工程导论)简要介绍计算机工程设计,包括布尔代数、逻辑门电路、组合逻辑电路的设计和化简、译码器/多路选择器/加法器、时序电路和触发器、汇编语言。(eecs.northwestern.edu/academics/course/eecs_203/)

eeCS303-advancedDigitalLogicDesign

(数字逻辑设计)介绍数字逻辑设计、组合逻辑和实习逻辑电路分析、算术逻辑单元、eDa工具、使用VHDL进行模拟和仿真。(eecs.northwestern.edu/academics/course/eecs_303/)

eeCS361-Computerarchitecturei

(计算机体系结构i)从整体上理解和设计计算机系统、指令系统、体系结构设计、数据通路设计、控制器设计、单周期/多周期/流水线处理器的设计、冲突检测和数据旁路、存储系统及高速缓存和虚拟内存、设备和接口。(eecs.northwestern.edu/academics/course/eecs_361/)

eeCS362-Computerarchitectureproject

(计算机体系结构实验)团队合作完成一个全指令集的支持流水线的处理器的详细设计,包括各个部件、数据通路、控制电路各部分的设计、使用VHDL语言和软件工具进行模拟和仿真。(eecs.northwestern.edu/academics/course/eecs_362/)

从以上课程内容可以看出,这些学校的硬件系列课程虽然名称略有不同,但是主要内容是类似的,都是按照数字逻辑、组成原理、系统结构这一条主线逐步深入的。不过CS偏重理论方面,着重讲清硬件是如何工作的,构架是什么样的以及如何进行性能分析;而eCe则注重应用,着重关注硬件是如何组成的,各部分之间的关系以及如何设计。这一点在实验上体现得十分明显,下一节将重点进行讨论。

2实验内容

在各个学校的实验安排中,CS一般很少安排实际的硬件实验,而主要通过软件模拟的方式进行,或者安排软件性能分析实验,要求只要掌握硬件的工作原理就可以了,不需要接触实际的硬件;而eCe大

部分将实验安排在实际的硬件电路上进行,让学生真正设计和实现一个硬件电路。

下面分别以UiUC的CS、purdue的eCe和西北大学的eeCS为例介绍具体实验内容,如表4、表5和表6所示。

从表4可以看出,UiUC的CS专业在硬件系列课程实验方面都是进行软件实验,不涉及实际的硬件电路。数字逻辑使用模拟软件进行电路的仿真,组成原理和系统结构则是进行了软件层次的实验,并没有采用处理器设计这一类实验。

从表5可以看出,purdueeCe的实验大多是在实际硬件上进行的,数字逻辑采用ttL电路进行实验,组成原理和系统结构实验既采用了软件模拟,也采用了基于FpGa进行处理器设计的实际硬件实验。

表4UiUCCS硬件系列课程实验

课程主要实验

CS231:Computerarchitecturei

(计算机体系结构i)使用模拟软件Logicworks进行电路的模拟,实验内容主要有门电路、组合电路、时序电路、加法减法器、存储器等。

CS232:Computerarchitectureii

(计算机体系结构ii)基于汇编的实验,分成5个machineproject,使用mip32的指令集,在一个模拟系统上进行实验。

CS433:ComputerSystemorganization

(计算机系统组成)分析不同的处理器构架,完成一个报告。

表5purdueeCe硬件系列课程实验

课程主要实验

eCe26700-DigitalLogicDesignLaboratory

(数字逻辑设计实验)使用ttL电路进行实验。

eCe36500-introductiontotheDesignofDigitalComputers

(数字计算机设计导论)使用软件模拟进行实验。

eCe43700-ComputerDesignandprototyping

(计算机原型机设计)使用VHDL语言设计一个双核处理器,在FpGa上实现。

表6西北大学eeCS硬件系列课程实验

课程主要实验

eeCS203-introductiontoComputerengineering

(计算机工程导论)使用面包板和ttL器件,实验内容如下:

1)验证两个简单电路。

2)设计一个简单的组合逻辑电路。

3)设计一个复杂的组合逻辑电路。

4)设计一个算术运算器。

5)汇编语言编程,控制单片机进行简单操作。

6)汇编语言编程,实现对一个机器人的控制。

eeCS303-advancedDigitalLogicDesign

(数字逻辑设计)使用modelSim等软件进行仿真实验,使用VHDL语言,实验内容主要是软件使用,并实现一个状态机。

eeCS361-Computerarchitecturei

(计算机体系结构i)一个整学期的大实验,使用mentor的图形工具,设计一个单周期处理器,完成模拟。

eeCS362-Computerarchitectureproject

(计算机体系结构实验)一个整学期的大实验,使用VHDL设计一个流水线处理器,完成模拟。

从表6可以看出,西北大学的数字逻辑实验采用面包板进行实际电路上的实验,组成原理和系统结构则是采用软件模拟的方案进行处理器设计的实验,如果再深入一步,就是使用FpGa等可编程器件下载进行实际硬件实验了。

从以上这3个学校的硬件系列课实验内容来看,数字逻辑课程都是进行逻辑电路的实验,区别在于是采用软件模拟的方式还是使用实际电路进行实验,CS偏向使用软件模拟,eCe则更偏向在实际硬件上进行实验。组成原理和系统结构的实验差别就很大了,CS偏重上层软件的实验,如汇编实验或者进行性能分析,而eCe更注重处理器设计,完成一个具有一定功能和结构的处理器并在硬件上实现。这样安排实验内容都是基于教学的需求,体现出了学科方向的不同要求。

3实验安排

由于时间仓促,我们在此次行程中没有详细了解每门课程的具体实验内容,只是重点调研了几门课程。下面以purdue的eCe43700课程为例介绍实验的具体安排。

eCe43700实验使用的教学语言是VHDL,使用的教学软件有modelSim(VHDL设计和软件仿真工具软件,modelSim公司产品)和Quartusii(硬件开发和仿真工具软件,altera公司产品),教学硬件是alteraDe2开发及教学电路板(包含FpGa芯片,altera公司产品),辅助硬件是tektronixtLa715logicanalyzer逻辑分析仪(tektronix公司产品,操作系统windows2000)。实验设备如图1和图2所示:

图1De2开发板

图2tek逻辑分析仪

具体实验安排如下:

1)第1周:寄存器文件设计。设计32×32的寄存器文件,双读单写;5~32位址解码器,读写控制。

2)第2周:aLU算术逻辑单元设计。设计实现8种逻辑算术功能的算术逻辑单元,8种逻辑算术功能为SLL、SRL、aDD、SUB、anD、noR、oR、XoR。

3)第3、4周:单周期处理器设计。集成前两个实验成果,设计单周期处理器,实现大部分mipS指令集(i类、R类、J类)软、硬件正确运行。

4)第5、6、7周:流水线处理器设计。在前3个实验的基础上,设计5级流水线处理器,实现大部分mipS指令集软硬件正确运行,控制单元,分支预测,转发和延迟功能等。

5)第8、9周:高速缓存设计(包括指令缓存和数据缓存)。5级流水线处理器集成缓存,实现mipS大部分指令集软、硬件正确运行。

6)第10、11、12周:双核处理器设计。设计缓存联控单元(使用有限状态机实现mSi算法),控制双核5级流水线处理器,双指令缓存,双数据缓存,单一内存,实现mipS大部分指令集软、硬件正确运行。

eCe43700是大四的1门系统结构课程实验,实验内容为使用硬件设计语言设计和实现1个双核处理器,并在可编程器件FpGa上下载运行。在具体的实验安排上,实验被划分成若干个具体步骤,从部件设计到单周期处理器设计,再到流水线处理器设计,最后引入高速缓存,直至完成双核处理器的设计。整个过程中实验内容逐步深入,要求也十分明确,既便于学生循序渐进地开展实验,也便于控制进度。在实验工作量方面,学生需要完成单周期、流水线和双核三种处理器的设计,工作量十分饱满,能很好地提高学生硬件设计能力和实际工程能力。在实验环境和支撑方面,实验室提供了强大的实验开发平台,并配备了先进的实验辅助测量仪器,为学生提供了很好的实验保障,使实验能够顺利完成。

4实验管理

在实验的具体管理方面,各个学校都投入了很多的人力和物力,以保障课程实验能够顺利开展。通过对各学校实验管理的调研,我们认为虽然他们各有特色,但也有以下几个共同点:

1)同实验安排一样,为了控制实验进度,将整个实验细分成若干个步骤,并设置相应的检查点,规定各检查点应该完成的任务,学生需要在检查点之前完成相应的任务,教师或助教会根据学生完成情况安排实验辅导等,这样就能够很好地控制整个实验的进度,实现目标化管理。在检查过程中,教师一般会安排学生作实验报告,讲解自己的进度、遇到的困难以及解决方案等,锻炼学生的表达能力。

2)设置专门的实验课程或课程中安排专门的实验课时,实验课一般实行小班教学,这样教师可以充分了解每个学生的实验情况,及时解决他们遇到的具体问题。同时,教师还在课外安排相应的答疑时间,并且充分利用网络资源,通过e-mail或网上答疑等为学生提供帮助。

3)由于实验的工作量比较大,学校会设置较多助教,尤其是综合实验,一般20名学生就会安排1名助教。对助教的要求也比较严格,他们不仅要批改作业,辅导实验,还要抽出时间在专门的答疑教室答疑,通过网络解答学生的问题,需要助教投入更多的时间和精力。

4)有专门的实验室管理人员协助教师进行实验,保证实验时间。一般实验室的开放时间比较长,方便学生随时来作实验,尤其是软件模拟的实验,基本上保证机房24小时开放。对于硬件实验,大部分学校安排的自由实验课时都比较长,学生可以利用课余时间到实验室进行实验。

总结起来,各学校在实验管理上都做出了比较大

的投入。虽然实验的工作量较大,但采取有效的管理机制,加之人员的配合,保证了实验能够顺利进行,学生能够完成实验任务,取得良好的教学效果。

5小结

通过对美国中部UiUC、伊利诺伊理工、芝加哥大学、西北大学和普度大学这5所大学硬件系列课程的调研,我们整理出他们的课程设置及实验内容,了解了他们具体的实验安排和管理办法。

对比国内的硬件系列课程,在课程设置和实验内容上已经逐渐接近我们考察学校的水平。但由于实验课时不足,造成实验任务较小,学生没有得到充分锻炼。在实验管理方面,国内投入的实验教学力量比较少,尤其是助教数量偏少,实验管理没有达到较高水平。在实验设备和环境上,国内各高校都已经开始使用硬件设计语言和可编程芯片进行实验,实验平台已经达到国外高校水平,但由于经费不足,因此实验辅助仪器还比较少。

通过此次考察,我们找到了国内硬件系列课程和实验与美国几所大学的异同点,以此来把握这些课程和实验的主流方向,了解自身的不足,不断改进教学和实验,切实提高教学质量和实验层次。

参考文献:

[1]UiUCCS.2009UiUC计算机专业课程设置[eB/oL].[2010-06-30].courses.illinois.edu/cis/2009/fall/catalog/CS/.

[2]purdueeCe.课程设置[eB/oL].[2010-06-30].esa-oas-prod-wl.itap.purdue.edu/prod/bzwsrch.p_search_catalog?subject=eCe.

[3]northwesterneeCS.eeCS课程设置[eB/oL].[2010-06-30].eecs.northwestern.edu/academics/course/.

investigationandResearchontheComputerHardwareSeriesCourseandexperimentinUSa

LiShan-shan,QUanCheng-bin

(ComputereducationandexperimentCenter,tsinghuaUniversity,Beijing100084,China)

计算机硬件编程篇7

(1)及时进行系统备份、更新,加装防杀病毒系统

这样可有效的防止计算机因系统软件故障而不能使用,同时也可以在系统被严重破坏后,管理员可以很快地将系统恢复到正常情况下,保证教学的正常运行.

(2)给计算机加装硬盘保护装置,如三茗卫士等硬盘还原/保护卡

这样从硬件上保证了计算机的系统维持在一个稳定的状态.如果让其开机自动还原,可以保证计算机总处于最后一次备份的状态,较好地防止了计算机病毒对系统的破坏,即使在上一次运行中被破坏,系统也可以在下一次开机启动时,将系统恢复正常,从而保证教师的正常教学演示.然而,随着技术的发展,软件层出不穷,教学内容要求的增多,特别是计算机类专业的课程体系的变化,要求在多媒体教室计算机上实现更多的演示功能.不仅是课件及相关的图示,更多地要求在线实战演练.因此,对多媒体教室计算机的需求也发生了很大的变化,可能不再局限于在一台计算机上操作,也可能要求在计算机上能够保存前几次的演示结果等,而如上所述管理以不能很好地适应现实的教学,出现了各种各样的因局.

2多媒体教室计算机管理的困局

2.1软件及硬件之争这主要表现为各个教师对计算机的软件要求不一样,而某些软件又相互间存在一定的不兼容性,各自要求的环境不一样,一台计算机不能满足教学的要求.甚至,有的老师本身就需要多台计算机进行教学,如网络通信类课程.具体表现如下分析.

(1)多操作系统之争.由于计算机体系结构的不同,针对不同的计算机需要不同的操作系统,如现有流行的操作系统就有maCoS、Linux、win-dows、安卓等,这就导致了计算机的使用环境有多种形式.为了让学生更好地适应各种计算机的使用环境,教学可能要求利用多媒体计算机进行相应的操作系统环境的学习与演示.因此,教师要求多媒体教室的计算机上应有相应的操作系统环境进行教学,即要求一台计算机上应有多个操作系统存在.

(2)系统位数之争.为了加快计算机的运算速度,提高计算机的性能,现代计算机除了提高集成度,加快运行频率,也将计算机的字长由原来的16位升级到32位,甚至64位,相应的软件系统也跟着变化.对于计算机类专业学生所面对的工作环境也跟着变化,主要是编程类课程的要求也变化了.可能要求在不同位数CpU下编程.但由于软件工业的一些滞后性,某些编程环境还未上升到64位,大部分还处于32位的编程模式,特别是面向对象编程中将要用到各种控件及已有的动态链接库.编程环境要求需要在相同位数下的CpU、操作系统下以及相同位数的动态链接库与控件,否则程序不能运行.有的老师要求在64位下编程,有的要求32位下编程,通过实践发现编程时要用到的类库并不能很好地兼容.

(3)应用软件版本之争.随着计算机科学与技术的发展,计算机应用软件也是日新月异,而且版本更新也在加快.就办公软件而言有金山wpSoffice、微软的mSoffice、永中office、openoffice等等.单就mSoffice也有office2003、office2007、office2010及office2013之分.程序设计开发环境就微软一家也有VS6.0、VS2005、VS20008、VS2010等.这些软件教学时,其操作过程最好能够直观、现场教学,才能加快教学的进程,提高教学效率,增强学生的感观,减少学习的畏难情绪,提高教学质量.对于管理者来讲,如仅有一台计算机,则被要求在这台计算机上安装上不同版本的软件,但它们之间可能存在固有的兼容性问题,导致不能安装不同的版本,一台机器上只能安装高版本的情况出现.

(4)硬件数量之争.对于计算机专业的学生来讲,所开设的课程还包含计算机原理、操作系统、计算机网络等课程.这些课程很多地方都需要多个计算机硬件进行演示,比如机与机的通信,机器的启动过程演示.通过实际的演示,可以增加学生的直观感与成功感,提高学习兴趣,提高学习的质量,从而提高教学质量.但多媒体教室一般只配备一台计算机,而教师也不可能上课带多台计算机到教室.

2.2管理者与使用者之争为了更好地为教学服务,保证计算机能可靠地工作,既要防止计算机被偷盗,还要防止计算机软件被破坏.计算机管理者一般都会在计算机上安装机房哨兵、三茗卫士等硬盘保护系统,以防计算机上的数据被改写.但这同时也给上课老师带来很多不方便,要自行安装一个软件不能保存在硬盘上,每次上课都得重新安装,浪费宝贵的上课时间.如果不安装,教师讲解就不直观,学生还认为软件不好安装,进而认为软件太不好用了,学习兴趣受到极大的打击.如果将权限开放给教师,可能导致机器的管理陷入混乱状态,所装软件太多,机器的性能大大下降,教学的时效性也就大打折扣了.总之,一部分教师要求机器不加保护,管理者又要通过系统的保护来提高管理的质量的矛盾.

3多媒体教室计算机的维护与管理新法

根据以上分析,原有的基于保护卡的多媒体计算机管理方法已不能完全适应现时的教学要求,同时要求多媒体教室配备至少两台或以上的计算机才能保证计算机科学类课程的教学,而且要求计算机的硬盘应具有较大空间.这不但增加了管理者的工作量,同时也要求更多的经费.随着计算机软件仿真技术的发展,特别是现时的云计算的提出与实施,认为软件就是服务.多台计算机的硬件需要服务,可以通过软件来提供服务.通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统成为现实.这就是虚拟机,它的提出,改变了原来的管理方法.而且现在多媒体教室配备的计算机的性能已得到很大的改观,利用虚拟机软件在一台计算机上虚拟出多台电脑,并保证计算机工作的效率也成为可能.因此,利用虚拟机软件可以很好地解决以上所提到的各种矛盾.

3.1多台计算机需求的解决据以上分析,由于教师教学不同课程,可能要求多台计算机,或者多种操作系统、不同版本的软件进行教学演示等.管理都可以在一台计算机上安装虚拟机软件,如VmworkStation,VirtualBox,VirtualpC,然后根据教师的需要虚拟出相应的硬件环境,每个虚拟硬件就是一台计算机,再安装上相应的操作系统及相关的编程软件与应用软件.各教师上课时按自己需要启动相应的一个或多个虚拟计算机.利用宿主机进行教学文稿的讲解,利用虚拟计算机进行教学原理、操作过程演示等,操作简单,各个环境也可以很好地互动并传递资料,虚拟计算机环境也不影响宿主计算机.如图1所示,即在一台计算机上提供了maCoSX、Linux操作环境,加上宿主机上的win7系统,共提供了三个操作系统环境,相当于三台计算机供操作与使用.图1虚拟机运行实际管理中,可以通过点击虚拟机软件中的新建来组建一台计算机,然后安装上相应的操作系统,及相关的软件.在相应的虚拟计算机环境中进行教学与演示.实践证明在一台双核CpU、内存2GB的计算机,一般可以同时运行两个虚拟计算机,相当于3台计算机,仅启动需要较长时间,但整体运行效率还是可以的接受的.

3.2硬盘保护与不保护的矛盾解决管理者为了保证机器的稳定性与加快机器的启动,一般不允许在计算机上安装过多的软件,同时为了防止病毒,减少系统被破坏的可能,多媒体教室的计算机上都装有硬盘保护卡,计算机在使用过程中对硬盘所做的写入操作皆无效.但教师上课时,又必须演示某些软件的安装并临时使用,如果安装软件要求重启,教师的安装将不成功,教学过程也不成功.分析可知,硬盘保护卡仅保护物理计算机的硬盘不被写入,对于可移动硬盘或U盘不作保护,因此可考虑教师们将自己待写入内容存放于移动硬盘上.通过实践,只要在本地计算机上安装好虚拟机软件,教师可以在相应环境中将虚拟计算机的映像文件保存在可移动盘上,然后在虚拟机环境中打开相应的映像文件就可以进入相应的虚拟计算机,得到自己教学需要的环境,完成软件的安装使用和程序的调试,而且对其中的操作也写入相应的移动盘上相应的虚拟盘上,与教室计算机的硬盘写入无关.这样教师就可以形成一个自己的可移动计算机操作环境,课下与课外所作的工作皆可保存在自己的可移动盘,携带方便,教学准备与教学演示环境一致,防止了环境不一致带来的一些不必要的误会.最终,保证了教师教学过程的通畅,也保证了多媒体教室计算机的完整、统一管理.

4总结

计算机硬件编程篇8

摘要:本文介绍了我校对计算机硬件实验课程体系及实践教学环节进行的改革,建立了“基础层-应用层-提高层”三层体系结构的硬件课程群实验体系,并对多层次、系列化的硬件实践教学模式及训练模式进行了探讨。

关键词:硬件课程群;实验体系;实验内容;实践能力

中图分类号:G642

文献标识码:B

我校计算机专业自99级开始进行了较大规模的扩招,但由于师资力量跟不上、实验条件和实验内容相对落后等原因,造成计算机硬件教育存在层次单一、教学内容滞后、理论与实践脱节等问题,学生普遍存在着“重软怕硬”的现象,毕业后硬件设计能力差,软件开发缺少后劲。为提高学生的硬件动手能力,增强毕业生的社会适应性,学院自2002年开始进行计算机硬件课程群建设及相应的硬件课程群实验体系建设,包括“计算机组成原理”等九门硬件课程及5门相关的实践课程。本文对我院计算机硬件课程群实验体系建设及硬件实践教学环节的改革进行了探讨与总结。

1构建科学完整的硬件课程群实验体系

在原有的课程体系下,我院为本科生开设的硬件实验教学课程有“数字逻辑实验”、“计算机组成实验”、“微机接口实验”、“单片机实验”。由于实验条件的限制,各课程实验内容相对独立,综合性、系统性较差;尚有部分硬件主干课程没有对应的实验课程,如系统结构。实验课程体系存在诸多问题。

(1)缺乏对学生系统设计能力的培养。传统的硬件设计和软件设计相分离的设计方法成为阻碍设计和实现复杂、大规模系统的关键因素。系统平台的搭建、软硬件的协同设计验证和软硬件功能模块的可重用性已成为现阶段设计方法的热点。培养学生具有系统设计的思想成为当务之急。

(2)缺乏对学生可编程芯片设计能力及eDa技术的培养。可编程芯片与eDa技术是现代电子设计的发展趋势,将可编程芯片设计及eDa技术引入实验教学中是时展的需要。

(3)缺乏综合性的实践课程,学生的创新能力发挥受限。由于实验条件限制,原有的多数实验是基于纯硬件逻辑设计的,只是在面包板上用器件构建小系统,功能扩展性差;并且只能开设数量有限、技术含量较低的实验,学生无法开展自主的综合性设计,无法进行创新能力的培养。

为此,经过充分调研和论证,我院首先从修改03级教学计划入手,对课程体系中的多门课程进行了调整,同时理顺各门课程间的关系,构建起了新的硬件课程体系。该课程体系由必修课程、选修课程及配套实践三部分组成。必修课包括“组成原理”、“接口技术”、“系统结构”等基础课程。为适应社会需求,在选修课中删去原有的“诊断与容错”等一些过时的课程,增加“数据采集”、“计算机控制技术”、“嵌入式系统”等社会需求较强、实用价值高的应用性课程,同时新开了“模型机设计与组装”、“硬件综合实践”等实践课程。在07版教学计划中,又新增了“DSp原理与应用”、“嵌入式系统实践”等新课程,保证课程体系的实用性与先进性。

硬件系列课程从体系结构上划分为三个层次:基础层、应用层和提高层,其课程间的关系如图1所示。基础层为“数字电路”与“组成原理”。“数字电路”课程虽然在教学体系上不属于计算机硬件系列课程,但它是计算机硬件系统的技术基础,是必修的前续课;“组成原理”介绍计算机的基本组成和工作原理,解决整机概念;通过“电工电子实习”与“模型机设计与组装”两门实践课程,强化学生的硬件动手能力。在应用层中,通过“接口技术”介绍应用层的接口和相关外设,以“嵌入式系统”等四门实用性强的课程作为选修课,每门课程都配有相应的实验环节,并通过“硬件综合实践”、“嵌入式系统实践”强化学生对基础知识的掌握和综合应用。提高层为“系统结构”及“性能测试与分析”实践课程,通过学习和实践,能够使学生比较全面地掌握计算机系统的基本概念、基本原理、基本结构、基本分析方法、基本设计方法和性能评价方法,并建立起计算机系统的完整概念。

在硬件课程群实验体系建设过程中,突出强调课程体系的系统性和完备性。从第1学期到第7学期硬件实验不断线,层次逐步提高,实验内容衔接连贯。注意各硬件实践的相互次序和互补,使硬件实践训练层次化、系列化,以此来系统强化学生的硬件动手能力。同时调整各课程的开设顺序,理顺每门课与前导课和后续课之间的关系,从而保证硬件课程体系的系统性和完备性。

注:所有必修课程与选修课程均开设课内实验,包括验证实验(20%)、设计实验(80%);实践课程单独开设,包括综合实验(80%)、探索实验(20%)。

2改革实验教学内容与模式

计算机硬件系列课程的重要特点之一是工程性、实践性强。为了使学生在学过该系列课程后具备较强的实际动手能力和计算机应用系统的开发能力,应在实验教学内容的设置上体现出基础性、系统性、实用性和先进性,既要重视计算机硬件的基础内容,又要结合当今电子与计算机的最新发展。为此,我们对该硬件系列课程的实验教学内容和教学模式进行了改革创新。

2.1优化实验内容,引进实验新技术,提高硬件设计的效率和兴趣

随着计算机硬件技术的日益发展,各种各样的微处理器不断更新,功能不断增强,以FpGa为代表的数字系统现场集成技术取得了惊人的发展,嵌入式系统设计也逐步成为主流。为了使学生跟上时代潮流,了解最新技术,需要不断引入新设备、新技术,提高硬件设计的效率和兴趣。如更新的“组成原理”和“系统结构”实验台,通过RS232串口与pC机相连,可在pC机上编程并向系统装载实验程序,还可在pC机的图形界面下进行动态调试并观察实验的运行,使学生像设计软件一样来设计硬件,做到了硬件设计软件化,大大提高了硬件设计的效率和兴趣。“模型机设计与组装”,将CpLD和FpGa等技术引入,用CpLD来设计复杂模型机。“汇编语言”和“接口技术”补充windows下设备驱动程序的设计与实现,增加pCi、USB的应用等内容。“系统结构”通过局域网组建小型的微机机群,研究探索多处理机操作系统,试验并行程序的运行与任务分配调控等功能。为适应当前嵌入式芯片的迅速普及应用,新开设了“嵌入式系统设计”课程设计。针对学生已学过多门硬件课程,但仍不能完成一个完整的、可独立工作的计算机系统设计问题,新开设了“硬件综合实践”,使同学亲自体会设计一台微型计算机系统的全过程。

2.2建立“验证型-设计型-综合型-探索型”的多层次实践教学模式

在实验教学内容的改革上,本着“加强基础、拓宽专业、注重实践、提高素质”的方针,将实验项目分为4类,即验证型、设计型、综合型、探索型,实验项目由浅入深,循序渐进。在所有硬件必修和选修课程中,全部开设课内实验。课内实验由验证实验(20%)、设计实验(80%)组成。所有实践课程都单独开设实验,包括综合实验(80%)、探索实验(20%)。这样,课内课程中开设“验证型”和“设计型”的实验,在后续课程设计中,开设“综合型”和“探索型”的实验,形成“验证型-设计型-综合型-探索型”的多层次实践教学模式,系统强化学生的综合设计和硬件动手能力。

在验证型实验中,注重使学生巩固基本理论,进一步掌握基本概念和基本技能。在设计型的实验中,注重培养学生的创新意识、设计能力和动手实践能力。在这一类实验中,以学生动手为主,教师辅导为辅,只给定实验的课题及达到的目的,中间过程需学生自己去查阅资料和设计方案,直至最后调试完成。在综合型实验中,注重培养学生综合运用所学知识的能力,使学生受到更为实际、更加全面的科学研究的训练。综合实验的特点是没有现成的模式可循,学生需要独立完成硬、软件设计和调试。在调试过程中,学生自己动手分析解决实验中出现的问题,虽然有一定的难度和深度,但对学生很有吸引力,能使学生从应付实验变为主动实验,不仅提高了基本操作技能,也发挥了学生的主观能动性和创造性。课程设计的部分内容属于探索型实验,学生可以自主选择感兴趣的课题及相关开发工具,写出设计书,交给指导教师审核后实施。在这一过程中,学生需要查阅大量的资料,培养了学生的自学能力、研究设计能力、独立分析问题及解决问题的能力和创新能力。

2.3确立“系列化硬件实践训练”方案

硬件实践训练由“课程实验-课程设计-综合训练-毕业设计”四个系列组成。课程实验――所有硬件课程都开设。课程设计――在“嵌入式系统”、“组成原理”等重点课程中开设,在这些课程的课内实验中进行部件或模块实验,在课程设计中进行综合性、创新性设计。综合训练――通过“硬件综合实践”展开。该课程安排在大四开设,是一门综合性设计实践课程,也是对前面所学课程的一个全面应用和总结,在硬件课程群建设中起着“总练兵”的作用。通过让学生亲自设计一台小型计算机控制系统,包括计算机的各个部件和功能,“麻雀虽小,五脏俱全”,旨在让学生真真切切感受到如何设计一个可独立工作的计算机系统,强化和提高学生的综合实践能力,培养学生的创新思维和创造能力。毕业设计――每年精选一定数量的硬件毕业设计题目,提供实验场所、设备及材料,让对硬件感兴趣的同学去实现自己的设计,放飞自己的理想。学生以接近于实际应用环境,完成高质量综合设计为训练手段,以掌握计算机硬件结构与应用系统设计作为主要训练目的,使学生对计算机的整个硬件系统有较全面、较系统的掌握。要求学生能够根据需要设计出一定规模的计算机硬件应用系统实例,从模板设计、制作、总线的走向、计算机部件选取、工作原理的分析、部件在模板上的部局、部件的焊接、运算能力的调试、结果正误的判断分析等流程的设计到具体的制作,直至最后写出毕业论文,使学生建立系统的概念与工程的概念。

3结束语

上述改革取得了令人满意的效果。大学生对计算机硬件实验课程学习的兴趣增强了,实验室开放期间,有更多的学生走进了硬件实验室。在毕业设计时,有更多的学生选择了与计算机硬件系统设计和开发相关的课题。学生做完硬件综合实习和硬件毕业设计课题后,普遍充满自豪感和成就感,感到硬件设计及底层软件开发不再可怕。通过这样的训练,提高了其综合设计能力和创新能力,同时也锻炼了他们的团队合作精神,步入单位就能直接胜任计算机应用系统设计、开发的工作,实现高校、学生、用人单位等各方面的多赢。同时我们也应该看到,随着新技术的不断发展,计算机硬件系列课程及其实验体系的建设和实验内容的改革是一项长期不懈的工作,需要不断完善。

参考文献

[1]罗家奇,李云,葛桂萍等.计算机硬件系统实验教学改革的研究[J].实验室研究与探索,2007,26(8):98-99.

[2]武俊鹏,孟昭林.计算机硬件实验课程体系的改革探索[J].实验技术与管理,2005,22,(10):107-109.

计算机硬件编程篇9

计算机专业硬件课程体系的构成

2005年,aCm(美国计算机机械协会)和ieee/CS(国际电气电子工程师协会计算机学会)联合提交了CC2005,该报告从学术的视角,将计算学科分为计算机科学(CS)、计算机工程(Ce)、软件工程(Se)、信息技术(it)、信息系统(iS)等5个专业学科,并针对本科生的教育,提出相应的知识领域、知识单元和知识点,给出相应的参考教育计划和课程设置[2]。课题组以此为蓝本,结合学院的实际情况,确定了计算机硬件课程体系中的主干课程:(1)电子技术;(2)数字逻辑;(3)汇编语言;(4)计算机组成原理;(5)微机原理与接口。计算机系统结构课程群:(1)单片机原理与嵌入式技术;(2)计算机系统结构;(3)多核程序设计;(4)嵌入式程序设计。

整合课程内容,优化课程体系

课题组在计算机专业硬件课程体系建设的过程中发现,硬件系列课程之间存在着很强的逻辑关系。从知识结构上看,计算机硬件系列课程是构成计算机系统知识中物理结构及体系结构的完整知识模块。从教学角度上看,需要从全局考虑,将其作为一个整体统一安排,而在体系内部,可以按照知识单元和知识点进行更深程度的细化和分类,并逐一整合。这样既可以更好地明确各门课程之间在教学上的协调,又保证了硬件课程体系的整体性和系统性。以“计算机组成原理”这门课程为例。在运算器基本原理部分涉及“数字逻辑”课程中所讲授的组合逻辑电路、时序逻辑电路;在存储系统部分涉及“操作系统”的虚拟存储器的知识;在指令系统部分涉及“汇编语言”的知识;在控制器部分涉及“计算机系统结构”中关于流水线的知识;在i/o系统部分涉及“微机原理与接口”的中断技术的知识。如果不将课程设置方案具体落实到知识点的整合和重组,任课教师就无法把握好教学的重点,学生也不能真正从整体的层次上把握系统的构建和各个部分的设计方法、原则。课题组根据目前的社会需求和学院的实际情况,以课题梯队为核心,重组了计算机硬件系列课程体系,由主讲教师负责组织课程梯队教师的集体研讨,修订教学大纲,对教学及课程实践内容进行定位,对相互重叠、重复、交叉的教学内容进行整合优化之后,基本做到了课程之间的无缝衔接,即前导知识无断层,同时也避免了课程内容重复讲授的现象,形成了一套衔接合理、重点突出、层次分明的课程体系。

加强实践教学,拓展学生能力

围绕计算机专业硬件课程体系,课题组系统地整理了计算机专业硬件课程的内在联系,从实验结构角度出发,整体考虑计算机系统设计和控制应用的要求,设计出阶段性、模块化、系统化、递进层次的实验教学内容。课题组采用eDa技术,就计算机专业硬件实践课程的特点以及eDa技术的优势,改革现有实验方式,结合QuartusⅡ软件,利用VHDL语言和VerilogHDL语言,除完成计算机专业硬件基础课程之外,还支持Fp-Ga设计(Field-programmableGatearray,现场可编辑门阵列),使计算机专业硬件课程实践教学方式发生质的变化,极大程度地减小了软件系统对硬件系统扩展性的制约,减少了软件系统对硬件系统的依赖,为计算机专业硬件课程体系的建设提供了平台支持,打下了坚实基础。

由于eDa技术中采用从上向下的设计理念,使得电路的设计具有很强的逻辑性,也提高了学生的动手能力和创新能力,成就感也提高了学生对计算机专业硬件课程学习的积极性和主动性。新增的硬件综合实验环节,学生可以综合运用所学到的知识和eDa技术,通过理论设计、逻辑分析、仿真分析、模拟分析,最终设计出实际的电路。在整个硬件综合实验过程中,所涉及的知识面广,实验内容的动态性、实时性和综合性较强,使学生的创新意识和工程实践能力得到了极大的提高。课题组根据学生的实际情况,创造性地选择和设计实验题目,对硬件系列课程实验进行精心编排和设计,极大地改善了硬件实验课程的教学效果,以学生系统、全面地掌握硬件知识为目的,强化了学生对知识的运用能力、解决实际问题的能力,以及动手能力和创新能力。

计算机硬件编程篇10

关键词:aS3.0;交互;事件监听;mouseevent

中图分类号:tp311文献标识码:a文章编号:1009-3044(2015)09-0126-03

abstract:thispaperispresentedintheteachingofcomputerbasiccourses,someshortcomingsoftheteachingcontentofcomputerhardware,putsontheteachingmodeofinteractivecourseware,andfocusesonhowtodevelopacomputerhardwareinstallationofthecourseware.

Keywords:aS3.0;interactive;eventlistener;mouseevent

1开发背景

在计算机公共课教学中,计算机硬件的教学内容是该课程的一个重要组成。但在教学中一般的过程是介绍硬件系统的组成、工作原理、各个硬件参数等。学生几乎没有对实际硬件接触乃至组装的机会。如果没有实际的接触和组装,这部分的教学效果会大打折扣,笔者根据自己的教学实际需求,利用FLaSHCS5.5aS3.0及photoshop设计和开发了一款适合计算机硬件教学的交互式课件。

2课件基本模块设计

本课件根据教学实际需求包含硬件系统工作原理、具体硬件介绍、安装演示、仿真安装练习和测试习题五个部分

工作原理介绍功能:利用动画演示计算机对数据加工处理的基本过程。分为输入、存储、运算和输出4个环节。

主要硬件介绍功能:利用动画演示每个硬件在计算机中的位置,物理外形、主要参数等

安装演示功能:利用教学录像演示计算机硬件的整个安装流程,先介绍硬件实物然后进入具体安装,整个过程有配音和字幕。

模拟仿真安装:利用交互式动画建立一个模拟仿真的安装环境,使用者通过拖放式的游戏进行硬件的模拟安装。

习题练习功能:利用交互功能创建单项选择练习题环境,使用者可以通过练习检验自己所学知识的掌握情况。

3主界面搭建

主界面是一个导航界面,通过主界面可以跳转到前面所述的各个功能模块。主界面建立在技术上主要是利用图形绘制界面,添加相应按钮来进行跳转控制。跳转控制主要通过编写按钮的CLiCK事件监听程序来实现。界面的基本外观如图1所示。

4各个功能实现

1)工作原理介绍功能实现

首先建立独立场景,在本场景下导入相关基本素材。整个工作原理介绍为一个完整的动画自动演示过程,以一个显示二进制数的元件模拟一个被加工处理的数据,利用带有箭头的线段作为控制线、数据线和地址线的信号变化和方向变化。在控制线动画的作用下产生输入动作,数据元件从输入设备端进入通过数据线进入内存,内存中一个带有地址编号的单元出现该数据表示一个存储动作。在通过控制线动画模拟发出运算指令向内存取数据,内存中数据元件进入CpU,随后进行运算操作。控制线再发出存放数据指令将运算后的数据存入内存中。控制线发出输出指令,数据通过数据线传递至输出设备,整个动画演示结束。本部分的功能实现首先要清楚了解计算机的基本工作原理,然后在技术实现上能够更形象描述出每个动作变化。对每个环节上动画之间顺序进行正确编排,本部分基本不需要代码编写即可完成。

2)硬件演示实现

硬件演示的目标是告诉学习者每个硬件在计算机中所处位置,物理外观如何以及主要参数意义。因此本模块采用了二级导航,用户选择不同硬件按钮后播放不同的动画内容,如单击“CpU”按钮时,首先显示CpU在计算机中的位置;然后弹出物理外观图;同时介绍物理外观下的各个部分;最后放大CpU背面显示主要参数。其他硬件部分以此类推。

3)硬件系统安装演示实现

在这部分功能中主要是一个教学录像片。教学录像录制时,先介绍每个主要独立硬件,安装工具,最后是安装过程。在安装过程录制时有每一步骤的配音,安装步骤科学安排。首先是在主板上安装CpU、风扇、内存和显示卡;然后将主板固定于机箱,将机箱相关连线与主板连接;安装硬盘及光驱;封箱后连接键盘鼠标显示器等设备。

教学录像中的一些重要环节应该加入提示标记等符号,因此录制完成后再利用会声会影加以编辑。在相应的时段加入提示符号,提示字幕来为学习者更加详细的解释安装过程。

4)硬件安装仿真实现

该功能可以解决实际安装需要拆解机器,造成器件消耗的成本问题。安装仿真采用交互游戏的模式,学习者可以通过在模拟环境下的操作来进行安装的练习。

以主板硬件安装为例,首先需要完成素材准备。为了模拟该环境,将一个主板和主板上所有插接的原件拍摄成图片;利用photoshop对图片中主板上的原件进行截取,保存为独立图片。该工作结束后,将得到主板及所插接硬件的整体图片,主板上插接的各个部件(如显卡、内存、CpU等)图片。第二部将上述图片导入Flash库中,在新建场景中,利用导入的图片创建主板元件及主板上插接部件相关的元件,将这些元件一一放入场景中,布局位置大概位置如图2所示,同时为各个元件实例进行命名。命名是为了在后续的程序代码中对这些元件进行引用。

在基本场景及元件建立完成后,核心工作是对指定的元件进行编码来完成模拟安装交互操作。以内存安装为例。首先场景右侧放置了内存的元件,实例名称为nc;在主板上内存位置放置了一个内存元件,实例名称为ncs;在主板内存相应位置制作一个与此位置图形一致的图形元件,实例名为nccz;在动作代码中将ncs设置为不可见,this.ncs.alpha=0。然后编写nc和nccz的监听代码。

nc元件的代码主要是响应鼠标拖动,拖动中释放鼠标时检测其是否与nccz元件发生了hittestobject事件;如果发生则令ncs可见,拖放结束,nc不可见;否则nc回到原来位置。具体代码如下:

functionrelease_xk(event:mouseevent)

{if(tnc.hittestobject(nccz))

{this.nc.alpha=0;

this.tnc.stopDrag();

this.ncs.alpha=100;}

else

{tnc.y=235.85;

tnc.x=80.15;

nc.stopDrag();}}

functionmove_nc(event:mouseevent)

{this.nc.startDrag();}

nc.addeventListener(mouseevent.moUSe_Down,move_nc);

tnc.addeventListener(mouseevent.moUSe_Up,release_xk);

测试时,拖动nc元件,如果nc元件正好被拖动至nccz上释放鼠标,则ncs控件会显示在内存应该所在位置;如果没有在nccz上释放鼠标,那么hittestobject事件不会发生,则nc将回到原来位置显示,可以继续进行拖动操作。

5)单选练习功能实现

创建场景如图3所示,主要包含了4个复选按钮控件ca、cb、cc、cd,作为4个选项按钮,添加了3个按钮st、xt、pd,st切换到上一题;xt切换到下一题;pd判断答题结果。该功能的主要控制逻辑是当操作者做出选择并单击判断按钮后,根据选择的选项是否正确给出提示,提示方式是播放一个正确zq或错误cw的影片剪辑。

主要代码如下:

判断作答是否正确代码

Functionpd1(pd:mouseevent)

{if(ca.selected==0&&cb.selected==1&&cc.selected==0&&cd.selected==0)

{right_mc.play();}

else{

false_mc.play();}}

pd.addeventListener(mouseevent.CLiCK,pd1);

试题之间切换代码

functionxyt(e:mouseevent)

{this.nextFrame();}

xt.addeventListener(mouseevent.CLiCK,xyt);

//跳转上一题;

functionxyt(e:mouseevent)

{this.prevFrame();}

xt.addeventListener(mouseevent.CLiCK,xyt);

5测试应用

经过调试后,最后生成swf文件,在本学期的课堂教学中投入实际应用。在硬件教学中主要以该课件进行,学生对这种形式非常欢迎,课堂教学效果有了进一步改善。尤其是模拟安装练习和习题测试,由于是具有交互性的环境学生乐于反复尝试,这要最直接的结果就是对计算机硬件课程内容的良好掌握。

参考文献: