公务员期刊网 精选范文 计算机硬件编程范文

计算机硬件编程精选(九篇)

计算机硬件编程

第1篇:计算机硬件编程范文

【关键词】硬件课程 软件工程 课程改革

【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2011)11-0011-01

一、引 言

计算机学院从2005年开始招生软件工程专业的学生,现在软件工程专业学生已达到我院学生总人数的70%以上。“培养学生成为基础扎实、知识面广、实践能力强、综合素质高、能适应信息产业和软件产业需求的系统设计和开发的高级人才”是我院一直以来对软件工程专业学生的根本要求。这里的“基础扎实、知识面广”包括软件和硬件两个方面。特别是现在的软件开发越来越偏向不同的硬件平台做专业开发。而作为系统开发的人员必须掌握一定的硬件知识。对于完全不懂硬件的软件工程学生来讲,就业前景和发展都会受到极大的制约。

但是,我院硬件课程相对较薄弱。具体存在以下问题:①课程的内容深、难且不实用。学生理解计算机硬件较困难,学到的知识停留于空洞的概念,没有得到技能的提高。②技术发展迅速,硬件课程教材和实验设施严重滞后。现在的硬件教学教材还停留在70年代8086/8088阶段。③实验困难。与软件实验不同,硬件实验需要一定规模的计算机设备,同时课程教学上也没有足够的课时进行实验。④培养目标与社会需求存在差距。计算机硬件教学已严重脱离了硬件技术的发展实际,学生学习计算机硬件的基本原理的基础知识,不会开发电子产品,不会做工程项目。⑤学生的兴趣和教学的内容严重脱节。现在学生对于计算机硬件的最新技术比较感兴趣,但是硬件课程讲授的是过时的知识,学生无法在课程中体会到硬件的好处,感觉硬件课程像“鸡肋”。

基于以上分析,对计算机科学学院软件工程专业硬件课程进行改革已迫在眉睫,要培养适应社会要求的软件人才,应该而且必须加强相关硬件课程的建设,这样才能培养出全面的人才。所以,经过两年的教学实践,对于软件工程的学生应该掌握哪些硬件知识、软件工程中的硬件课程如何设置等进行了一定的探索,下面就相关内容进行简单探讨:

二、硬件课程改革的措施

我校软件工程专业硬件系列课程设置了数字逻辑、计算机组成原理、汇编语言、微机接口技术4门课程。这些课程设置虽然相对独立,但所提供的课程内容划分不明确,相互重叠现象较严重。如基本原理和指令系统的内容,在多门课程中都有出现。

所以,硬件课程改革的目标是:将4门硬件课程整合、筛选,组合为1门综合型的硬件课程,达到内容精炼、重点突出、减少重复的要求。目的是将硬件系列课程作为一个整体统一考虑,建立一个完整的、系统的课程内容体系,这对提高教学质量和压缩学时都非常有效。

1.硬件课程教学模块的设置

具体设置以下模块:数字逻辑与数字系统(核心);数据的机器级表示(核心);汇编级机器组织(核心);存储系统组织与结构(核心);接口与通信(核心);功能组织(核心);多处理和其他系统结构(核心);性能提高技术(选修);网络与分布式系统结构(选修)。

2.硬件课程教学内容的设置

教学内容:①计算机概论:计算机概述、运算基础;②数字逻辑基础:卡诺图、组合电路、时序电路;③运算器:半加器、全加器、算术逻辑部件、定点运算器、浮点运算器;④汇编语言程序设计基础:指令系统、汇编语言语法、汇编语言程序设计基础;⑤存储器系统:存储器芯片、存储器层次结构、内存接口技术;⑥控制器:中央处理器的组成和功能、指令流程、硬连线逻辑、微程序控制器;⑦输入/输出技术:I/O接口与端口、输入/输出控制方式、三种简单接VI芯片、中断系统与中断接口、总线;⑧可编程接口芯片及其应用:可编程接口芯片的几个基本概念、可编程并行接口芯片、可编程定时器/计数器、通用同步/异步接收/发送器、模/数转换器、芯片组;⑨实用接口技术:主板、硬盘接口、高速串行总线;⑩计算机系统结构概述:计算机系统结构基本概念、流水线技术、并行计算机系统结构、提高处理器性能的技术。

实验环节:①数字逻辑(时);②汇编语言程序设计上机练习(时);③接口实验6~8个(18~24学时)。

3.课程实施中需要关注的问题

(1)注意学生共性和个性的关系。该课程体系规划是针对软件工程专业的基本要求编写的,反映了软件工程专业对计算机硬件的共性要求,不同学校的软件工程和计算机软件专业还可根据本校培养特点做不同的选择与增删,以适应本校培养的个性要求。

(2)处理好理论讲授和实验的关系。各校根据本校培养的方向和实际条件,组织不同要求的实验教学,可进行单个实验,也可组织小系统实验。

(3)注意基本内容稳定性和新技术、新知识反映的及时性的关系。课程的基本内容(即计算机的基本理论和基本技术)必须稳定,而随着计算机技术迅速发展不断出现的新器件和新部件必须在教学中及时反映,必须考虑如何处理两者关系。

三、结束语

我院软件工程专业计算机硬件技术基础课程改革已取得一定成果,在今后的课程建设中,还需要坚持重视理论基础知识、培养实践综合能力、提高整体教学质量的总方针,真正实现理论和实际相结合,强化能力培养和创新意识,逐步建成适合培养现代化复合型软件人才的计算机硬件技术课程新体系。

第2篇:计算机硬件编程范文

关键词:计算机硬件技术;教学实践;实验教学;教学改革

0.引言

随着国家信息化步伐的加快和高等教育的发展,社会对于计算机专业人才的需求呈现一种加速增长的态势,各级高校都建立起较为完善的计算机人才的培养体系,社会上的各种培训机构也针对当前社会对于计算机需求的热点问题提供培训服务。但随着计算机行业从业人员的增多,国家对计算机人才的需求不仅体现在数量的增加上,更多体现在质量的提高上。培养具有较高的研究和实践能力的高层次计算机专业人才已经成为许多重点大学计算机专业教育的主要目标,理论与实践并重对建设“研究型”大学,构建创新型社会具有重要意义。

1.现状及问题分析

计算机技术的发展日新月异,计算机专业的学生不仅要掌握系统的计算机基本理论和基本知识,更要掌握最新的软硬件技术,拥有较强的实际动手能力,来满足企业用人单位的岗位技能要求,实现真正意义上的人才培养与岗位需求“零距离”。而要想让学生真正掌握计算机专业知识,达到熟练应用的目的,就必须加强实践环节,努力培养学生的实践能力。

如果教学计划顾此失彼,不能突出专业特色,学生择业难度就会加大。因此,高校计算机专业要想面向企业培养出合格人才就必须改变传统的教学理念,明确并围绕实用型人才的培养目标,调整课程体系结构,注重实践技能的培养,改革旧的教学设置,加大实践环节,重新设置教学计划,加强实验室、实习基地建设,开展校企合作,提高师资队伍整体素质,为完成实用型人才培养制订切实可行的计划,确立人才培养的模式。

汇编语言程序设计是计算机软件技术和硬件技术的接口和桥梁,是高等院校计算机软硬件及应用专业学生需要学习的核心课程之一,它是直接面向CPU的效率最高的语言,也是能够利用计算机所有硬件特性并且能够直接控制硬件的一门语言。在某些场合,只有使用汇编语言才能达到目的,如系统的引导控制、软件的加密与破解、病毒剖析、代码优化、CPU核心编程、软件疑难问题分析等。然而,由于它的内容十分丰富,知识量大,概念抽象,被认为是一门“教师难教、学生难学”的课程。

微机接口技术是与计算机硬件技术联系最密切的一门课程,掌握微机接口技术能使学生充分了解和运用微机领域内的先进技术,尤其是涉及CPU与外部设备进行的有关控制、传输等的技术。该课程中的Windows操作系统保护模式内容也是操作系统、编译原理等课程的先修知识。但由于该课程与硬件技术联系最密切,而计算机专业的本科生又缺少计算机硬件实践的锻炼,使得学生在学习该课程时普遍反映难度较大,很难完全掌握相关知识,尤其涉及芯片级的硬件技术时,更是难以深入认识。

针对上述课程问题,为提高学生实践能力,加强实验课程建设,结合了汇编语言程序设计和微机接口技术相关知识的实践性课程――汇编与接口课程设计被引入了教学计划。该教学计划试图在这些课程的基础上探索一条提高学生专业实践能力的新道路。

汇编与接口课程设计是计算机类专业本科生的一门必修课,是对汇编语言程序设计、计算机接口技术和计算机组成原理等计算机硬件类必修课程的必要补充和延伸。通过该课程的改革和发展,使学生从硬件类相关课程中学到的知识得以巩固和深化,培养学生对计算机硬件类课程和相关研究方向的兴趣。课程将理论与实践相结合,通过大量与实际应用相关的实验来学习和掌握汇编语言和接口技术等方面的内容。

基于以上情况,以提高学生的实践能力,尤其是与微型计算机硬件相关的实践能力为导向,改变传统的教学模式,激发学生的学习兴趣,培养学生的实践和创新能力,更新教学环节、教学计划和教学设备,设计出新的实践案例是我们的研究重点。

如何通过各种实验手段使学生加深对理论知识的理解,掌握计算机硬件设计和软硬件协同设计的基本方法,训练和培养学生硬件动手能力、创新能力以及认真、严谨的科研作风,提升学生的就业竞争力是计算机专业硬件相关课程需要关注的重点。

2.待解决的问题

如何改变传统的教学模式,激发学生的学习兴趣,培养学生的实践和创新能力,是我们研究的重点。汇编与接口课程设计主要解决以下几个方面的问题。

1)密切跟踪新技术的发展,紧跟当前计算机领域热点问题。

计算机技术及相关的软硬件设计正处于高速发展过程中。然而,由于计算机相关教材中理论的整理、编写和出版的时间滞后性,学生通过书本所学到的理论知识和当前计算机、信息领域所活跃的应用技术有一定的差距。因此,如何紧跟当前的热点问题,使学生在走出校园后能够快速跟上计算机技术发展的节奏是我们要考虑的一个主要问题。

如今,移动互联网技术越来越普及,移动终端和博客、微薄和微信的结合已经成为当今计算机专业学生最大的兴趣所在。在汇编与接口课程设计中,我们将开设相关的实验设计,通过移动通信模块GPRS/3G等实现实验开发板和网络的联接。通过该实验设计,学生不仅可以掌握相关的理论知识,还能掌握底层硬件基础上的实践能力,当学生走上工作岗位后能快速投入到项目中,实现高校和企业的无缝连接。除该实验外,课程设计还将开设更多与当前技术热点相关的实验。

我们还将重点针对实验课程进行课程改革,逐步改变现有的实验环境,以目前主流的嵌入式主板作为硬件实验平台,全面更新实验内容,使所设计的实验都可以在嵌入式主板及外设的框架内实现,同时采用国内独特的实验模式,更贴近目前的实际应用。

2)实现理论与实践的结合。

目前,实验课程所依托的科研团队科研成果丰硕,这些科研成果都是当前最新的技术、方法和理论,如何将这些理论与实践,特别是与实验课程相结合,也是当前教学教改所研究的重点

将科研成果引入到教学实践中,需要处理好经典与现代、理论与实践的关系,既要体现基础性、系统性、兼容性,又要注意与时俱进,还要在满足教学基本要求的前提下,注意把科研成果引入教学与实验,在实践教学中培养学生的实践能力和创新能力,促进实践型、研究型课程的教学改革。

在实施中,需要依托科研项目,注意提取科研中的相关知识点,并引入到教学实验中,提升创新型人才的培养水平。在教学与科研结合方面,课程主讲人所属的教学团队主要由计算机系统结构研究所和计算机存储技术团队教师组成,有很好的结构。主讲教师参加的研究项目中有许多与底层硬件相关,如反汇编逆向分析、程序性能优化、高级语言与汇编语言的混合编程等应用,积累了丰富的汇编语言工程开发经验。我们将注意提取科研中的相关知识点,引入到教学实验中,丰富课程实例,深入浅出地讲解,以便学生更好地理解知识,跟上时代的发展,为学生把知识转化为解决前沿科技问题奠定基础。这必将推动教学质量的进一步提高,为使学生学有所用,把所学知识转化为生产力做出应有贡献。

3)实现学生创新能力的培养。

创新型实验以设计微/小型系统软件及具有应用背景的创新实验为主,培养学生对计算机知识的融会贯通能力,如数据库管理系统设计、全屏幕编辑器设计、读取硬盘序列号、获得远程机器的控制权、硬盘DMA等。

汇编与接口课程设计是一门实践性很强的课程。课程组跟踪计算机软硬件技术的最新发展,对国内外的相关课程教学及实践进行了深入的调研,结合在科研实践中取得的部分成果,开设出一系列具有鲜明应用特色的验证型、综合型和创新型的层次实验,进一步巩固理论教学内容。验证型实验以掌握单元知识为目标,着重训练基础编程能力,如中断程序设计、线程同步、文件管理、高效数据管理系统等。创新型实验以设计具有应用背景的实验为主,培养学生对计算机知识体系的融会贯通能力,如缓冲区溢出实验、读取硬盘序列号、硬盘DMA等。汇编与接口课程设计课程组还开发了嵌入式系统51系列相关的实验设计,使学生在掌握Windows/DOS汇编语言编程技术的同时,掌握51汇编语言及51C语言编程技术。通过这些实践,不仅锻炼了学生的动手能力,也拓宽了学生的视野,为学生进行自主性和创新性实验打下了基础。

按照建构主义教育理论,基于个体的差异性,学生可以按照自己的能力和兴趣选做部分或全部实验,充分发挥了学生的主观能动性。这种强调自主学习的教学过程和方法,有效地促进了学生自我认知的发展和新知建构。通过实践环节,提高了学生的程序设计能力,为学习后续专业课程、设计硬件驱动、性能优化、代码对抗等底层系统级软件程序打下坚实基础,为导向创新型课程进行了有益的探索和实践。

在课程实验过程中,召集部分学有余力、对课程感兴趣的学生组建学习兴趣小组。教师提供一些有一定难度的汇编语言和接口技术相关的开放型课题以及预期的研究成果和目标交予兴趣小组讨论和研究。同时,教师给予积极的指导,培养学生的研究兴趣,并以此带动整个教学班的学习和研究气氛。

课程将会充分发挥学生的想象力,给学生一个创新思维的空间。我们培养的学生将来不仅是计算机的使用者,更是计算机的设计者。在学生能够熟练应用计算机及其相关技术的基础上,让学生充分发挥自己的想象,设计相关实验,给课程注入新的活力,这将锻炼学生的创新思维能力,激发学生自主学习的兴趣。

3.实验实践

重点针对课程的现状,按照本科教学合格评估标准,在现有实验的基础上开发新的综合型、研究型实验项目。按照验证型实验、案例综合型实验和创新型实验这3个层次逐渐培养学生开发与接口技术相关的应用程序和驱动程序的能力。

汇编与接口课程设计实验课程的主要内容可以分为横向和纵向两个方面。

在纵向上,课程的主要内容分为4部分:第1部分是汇编语言程序设计相关实验,包括6个验证性实验和4个设计性实验;第2部分是微机接口技术实验,以TPC-H通用微机实验系统为平台,设计了各种接口芯片实验,包括6个验证性实验、5个设计性实验和4个综合设计性实验;第3部分是汇编语言与接口技术相结合的实验,该部分主要是一些重点体现汇编语言应用于接口技术的实验,共4个实验;第4部分是一些综合性和创新性实验,如与移动互联网技术相关的网络通信实验、GPS定位实验等,共5个综合性实验。

从横向上,课程的主要内容也分为4部分:第1部分基于Pentium的Windows汇编语言程序设计,如数据库管理系统设计、全屏幕编辑器设计、缓冲区溢出实验等,共5个实验;第2部分是基于8086/ARM的16位机的相关实验,如读取硬盘序列号、双机通信等;第3部分是基于嵌入式8951/ARM的汇编实验,如实现A/D、D/A转换、计算器设计、中断控制等实验,该部分包括6个基本实验和1个综合性实验;第4部分是基于895l/ARM的C语言验证试验,该部分是在嵌入式8951/ARM环境下采用c语言实现和汇编语言相同的功能,学生通过编写51汇编语言和实现相同功能的51C语言相比较,找到C语言对应的反汇编码,分析其优劣,从而达到举一反三的效果。

和其他实践课程类似,汇编语言与微机接口技术实验课程是一门实践性很强的课程,只有通过大量的实践,才能够真正达到得心应手的效果,才能够对提高学生的动手能力有所帮助。与目前的其他实践类课程相比,本课程的教学实践力图在以下几个方面有所创新。

1)不同软件系统下的理解和实践能力培养。

由于汇编语言和接口技术本身的特点,学习这些实践技术离不开实际的计算机软件系统。因此,本课程既要兼顾以DOS环境为主的16位模式程序设计,以满足目前大部分控制硬件的程序要求,也要体现时代性,介绍以Windows为主的32位保护模式下的接口技术相关程序设计,授课内容和实验环节能更好地与目前主流计算机系统相吻合。

除此之外,课程设计改革还考虑到在单片机和嵌入式实时操作系统下的汇编语言与接口技术相结合的实践能力培养,给学生以充分的选择余地。

2)不同的CPU架构下的实践能力培养。

众所周知,在CPU方面,Intel系列已经经历了从16位的8086/8088/80286到32位80386/80486/Pentium(II、III、IV),

直到64位的Itanium。本实践课程的一部分选择当今广为流行的Intel 80X86及Pentium为CPU的微型计算机系统及其兼容机作为硬件平台,另外一部分选择了以8951/ARM为代表的单片机和嵌入式系统作为编程的主要硬件环境,深入学习和实践汇编语言程序设计与接口技术的相关内容。通过895l/ARM/8086/Pentium一系列的汇编语言和接口技术的实践,使学生能够充分了解汇编语言在不同的CPU架构下的编程规范以及掌握汇编语言具有CPU依赖性的特点,使学生在未来的应用中能够快速掌握不同体系、不同架构下的CPU的汇编语言程序设计。

3)更高的着眼点。

目前,很多高校的计算机课程只注重在一些应用层面上对学生进行培养,然而,我们认为计算机科学与技术一级学科本科专业培养目标应该将着眼点放在将学生培养成计算机的设计者而不是计算机的使用者上。

目前,社会上对于计算机专业人才的需求非常旺盛,很多信息类、机械类甚至管理类的学生毕业后都选择了投身于计算机与信息行业。如果我们将培养目标仅仅定位于计算机的合格使用者上,那么计算机科学与技术学科毕业生相比其他专业学科的毕业生毫无专业竞争力。计算机专业的毕业生不仅要会编写程序,还要知道为什么这样编写程序,更要知道计算机底层是如何对这些程序进行编译、解释和执行的。而要了解这些知识,就需要充分地接触、了解和掌握汇编语言和接口技术相关的知识,课程中开设的一些综合性实验在硬件上涉及8951、ARM、8086和Pentium系列CPU,软件上涉及汇编语言、C语言和51C语言,从横向和纵向两个方面加深学生对计算机内部运行机制的理解,对相关课程知识间的融会贯通起到促进作用。同时,实验课程中还需要学生动手连接各种接口芯片的线路,以直观的方式向学生展示计算机程序运行的步骤,充分了解各种接口芯片的工作机制、运行方式等,打通学生从底层硬件技术到顶层软件技术了解计算机的通路,提供了很好的将学生培养成合格计算机设计者的途径。

第3篇:计算机硬件编程范文

【关键词】可编程逻辑;SAT算法;可满足性;FPGA

逻辑器件可分类两大类:固定逻辑器件和可编程逻辑器件。固定逻辑器件中的电路是永久性的,其硬件逻辑结构和连接方式固定不变。而可编程逻辑器件(FPGA,CPLD等)内部连接模式和逻辑结构可以根据不同的需要改变,从而可以实现多种不同的功能。所以,此类器件能够为客户提供范围广泛的具有多种逻辑能力、速度和电压特性的标准成品部件。

可编程硬件算法研究的发展是和硬件水平的发展密不可分的。可编程硬件是指最早的硬件可编程算法的概念是G.Estrin在1960年左右提出的[1],但由于主要以分立器件为硬件平台,而集成电路也尚在初期,因此并未得到更多研究和应用的支持。从1990年开始,超过10K门级的可编程逻辑器件FPGA(其典型结构如图一所示)的出现,使得硬件可编程逻辑算法的研究进入了蓬勃发展的时期[2],其应用主要分为三种:1、硬件设计模拟;2、快速硬件成样;3、硬件算法研究。而其中硬件算法研究是基于FPGA硬件并行处理能力,已经在密码学,图像和信号处理领域取得了很多成果。自1997年后,随着FPGA进入到了百万门级的水平,硬件可编程逻辑能力上升到了一个新的高度,基于硬件可编程逻辑的高难度算法的实现与研究也受到越来愈多的关注。其中,基于FPGA的可满足性问题(SAT问题)的算法研究逐渐成为研究的热点[7-14]。

SAT问题是逻辑学的一个基本问题,也是当今计算机科学和人工智能研究的核心问题。工程技术、军事、工商管理、交通运输及自然科学研究中的许多重要问题,如程控电话的自动交换、大型数据库的维护、大规模集成电路的自动布线、软件自动开发、机器人动作规划等,都可转化成SAT问题。可满足性SAT问题同时也是第一个被证明的NP-Complete问题,目前解决SAT问题已有的完全算法的运行时间呈指数增长。因此,基于FPGA(如图一)对SAT算法加速的研究,具有很大的理论和应用价值,同时也有助于寻找优化其他复杂计算的方法。

一、问题定义

对于命题公式Y,如果存在对Y中变量的赋值,使得Y在该赋值下的真值为1,则称Y是可满足的。可满足性问题(SAT问题)是判定一个任意给定的命题公式是否可满足的问题。众所周知,任何命题逻辑公式都逻辑等价于一个合取范式(CNF-Conjunctive Normal Form)。合取范式即是子句的合取,而子句是文字(变元或其否定)的析取。

例如,就是一个合取范式。当a=1,b=0,c=1时,Y=1。故Y是可满足的。

SAT算法可以分为完全算法(Complete)和不完全算法(Incomplete)算法两大类。通过完全算法总是可以判断公式是否可以满足,尽管有可能计算时间是相当长的。如Davis-Putnam 的DP算法[3]和广泛用于电子电路测试向量生成的PODEM (Path-Oriented Decision Making) 算法[4]都是完全算法。不完全算法则是规定的时间内寻找SAT问题的解,如果找到则说明可满足,但找不到SAT的可满足解不能作为SAT是否可满足的依据。经典的DP算法如下所示,通过遍历变量空间的方式搜索满足SAT的解。

Procedure DPLL (CNF formula Φ)

If Φ is empty return yes.

else if there is an empty clause in Φ return no.

else if there is a pure literal l in Φ return DPLL(Φ(l)).

else if there is a unit clause {l} in Φ return DPLL(Φ(l)).

else

select a variable v occurring in Φ.

if DPLL(Φ(v))=yes

return yes.

else

return DPLL(Φ(¬v)).

end

end

图二所示的是DP算法的例子。

随着研究的深入,很多DP算法的优化算法和技术涌现出来,其中有代表性的如GRASP(Generic search Algorithm for the Satisfiability Problem)算法中的non-chronological回溯技术[5]等。

二、研究进展现状和发展趋势

基于可编程逻辑的SAT的算法研究分为两个大的阶段,前期(1996-2002)以实例型(Instance-Specified Solver)算法为标志;后期(2002-至今)以应用型(Application-Specified Solver)算法为标志。

实例型(Instance-Specified Solver)算法:硬件结构针对每一个实例进行编译配置然后计算的方式,每一个不同的实例对应不同的硬件结构。

应用型(Application-specified solver)算法:硬件结构针对应用进行一次编译和配置然后计算,在同一个硬件机构上对应用中不同的实例进行计算。

(1)实例型(Instance-Specified Solver)算法(1996-2002)

ⅰ)实例型硬件直接逻辑算法:Suyama et all(1996)

Suyama et al.[7]在1996年首次提出了实例型硬件直接逻辑算法(如图三所示)。他首先将SAT实例CNF先转换为3-SAT,然后由SFL Generator转换为HDL语言,将其编译下载后在FPGA固化为硬件逻辑。形成CNF的Clause逻辑计算模块。通过在2N-1的空间用穷举法或类似DP回溯算法搜索取值,对实例的可满足型进行求解。

该研究采用DIMACS(Center for Discrete Mathematics & Theoretical Computer Science)[15]的几个实例在 Altera FLEX10K250 FPGA时钟频率10Hz的平台上进行了验证。测试结果和在UltraSPARC-II/296MHz上的POSIT(Propositional satisfibility testbed)结果进行了比较,速度可以达到1-10倍。但是其计算的速度的计算没有包含FPGA编译和配置的时间。

ⅱ)实例型硬件状态机(FSM)DP算法:Zhong et al.(1999)

1999年Zhong et al.提出了如图四所示DP算法的硬件可编程SAT算法[8]。SAT Clause编译为FPGA硬件Deduction模块和Implication模块,以采用流水线结构进行计算。算法模型采用了如图四所示的有限状态机(FSM)的方式。

实验通过多个FPGA互联形成Xilinx FPGA硬件阵列进行了验证。和著名的软件算法GRASP在Sun5/110MHz/64MB保护模式下比较,提高了一个数量级的速度,但该结果同样未将硬件编译和配置时间计入。

FSM的使用使得该算法可以有效利用DP的相关软件算法中的技术如non chronological backtracking等。而且结构具有可扩展性,对于大的SAT实例,可以采用互联的FPGA阵列解决。该方法利用了FPGA的管道技术,提高了数据处理速度。但由于实例型算法编译和硬件配置时间漫长,实用性不够,同时运算中每个时钟周期只有一个FSM激活,周期利用率低。

ⅲ)实例型硬件并行PODEM算法:Abromavici et al.(2000)

Abromavici et al.(2000)利用了电子电路测试中测试向量生成的常用算法,提出了如图五所示的SAT实例型算法的新的思路[9]。他将CNF编译成为对应的PODEM电路形式,通过向前推导输出模型(Forward model)和向后反推输入模型(Backward model),进行多路并行的推导,得到SAT问题的解。

实验通过DIMACS部分实例在XC6264 FPGA,主频3.5 MHz的平台上进行了验证。和著名的软件算法GRASP在Sun Ultra Sparc工作站1026Mb RAM和248MHz主频下比较,未将硬件编译和配置时间计入的情况下,提高了1.01-7000倍的速度。

ⅳ)实例型硬件混合算法:Dandalis et al.(2002)

Dandalis et al.首次提出了如图六所示的软硬件混合的算法,将算法在软件和硬件中进行功能划分,从而将算法中耗时最多的Deduction模块和Implication模块由FPGA硬件来实现[10]。

该研究在硬件设计中采用了管道(Pipeline)技术,将CNF的Deduction分成了并行的N路M容量管道,并将其结果在m次周期后合并(结果)吗,并且采用了FPGA动态加载的功能将Implication生成的learnt Clause构成新的管道。

实验通过DIMACS部分实例在Virtex XCV1000-6-FG680 FPGA进行了验证。验证结果:没有和其他算法进行比较,主要对比了不同的N值下,算法速度的影响。

该算法使用了FPGA中的动态配置功能,同时使用Pipeline和immerge的功能对PFGA并行能力的利用提出了新的思路。但其整体算法系统未完善,还未能进行实际的实验对比验证,通样存在编译载入时间过长的问题。

(2)应用型(Application-specified solver)算法(2002-至今)

ⅰ)应用型SAT FPGA DP混合算法:Sousa et al.(2002)

Sousa et al.首次推出了SAT的DP应用型FPGA硬件算法,即一次编译下载,FPGA将可以解决不同的Instance问题,而不需要再编译重载。

该算法以特殊3SAT为对象,采用寄存器阵列存储CNF的实例将算法在软件和硬件中分工[11-12]。如图七所示,软件模块部分主要处理:冲突Conflict分析,回溯backtrack控制,语句的数据库管理;硬件模块部分:并行推导Deduction和变量选择Decide。

通过3SAT实例在RC1000 PCI板上集成XCV2000E Xilinx FPGA和4块SRAM(2M)的平台上进行了验证。但由于没有建立软件接口,因而没有进行对比和得到实际的结果。

该研究对于应用型的FPGA硬件算法进行了创造性的尝试,用动态更新寄存器的方法解决FPGA对于不同的实例配置的问题。采用了虚拟内存的概念解决当FPGA容量时的问题,但仅限于对于3SAT的解决方案。

ⅱ)应用型SAT FPGA DP混合算法:Skliarova et al.(2004)

Skliarova et al.采用了如图八所示的算法,以三态存储阵列(0,1,free)作为联系变量和Clause阵列的矩阵模块,从而实现了将SAT的实例存储到矩阵模块中的转换[13]。算法为求解该矩阵每个Clause都正交向量V,如果该向量存在则SAT的实例可满足。

实验通过DIMACS benchmark中的几个实例在:ADM-XRC PCI板卡上集成XCV812E V EM FPGA 40MHZ平台上进行了验证。

验证结果:和采用GRASP算法在AMD/1GHZ/256M计算机上的计算提高了2个数量级(包含实例载入的时间)

该研究采用了三态存储阵列和矩阵模型,将应用型SAT FPGA的算法的对象,扩展到了一般SAT实例。该算法实现了软硬件的系统和接口,形成较完整算法功能。但提出的矩阵模型在不同应用实例中效果和效率差异很大,并且该算法只是用硬件实现了SAT的算法,并未有效的利用硬件的并行处理能力。

ⅲ)应用型SAT FPGA DP混合算法:John D.Davis et al.(2008至今)

John D.Davis et al.将软硬件模块功能进行较合理划分,如图九所示:建立和实现了BCP在硬件FPGA中的运算和相关接口模型[14]。算法使用了Index walk的技术更紧致的将Clause阵列存储在BRAM中,同时采用硬件并行方式:将BCP的功能通过Inference模块,Mulitplex合集模块和Conflict detection模块以及输入输出模块完成。

实验通过Crypto benchmarks和k-SAT实例(3≤k≤6)在HyperTransport(HT)和PCI-Express两种高速板卡上集成FPGA(200MHZ)的平台进行的测试。

验证结果:和采用GRASP算法在Pentium 4/3.6 GHz/2 GB RAM系统上的计算提高了3.7和38.6倍(包含实例载入的时间)。

该应用型SAT FPGA DP混合算法目前为止比较完整实现功能的算法,其创造性的Index walk算法将实例有效和紧致的存储,便于在同等资源下更大的实例计算。该算法通过多个并行的模块对BRAM进行操作,有效的利用了FPGA的并行性。但由于高速计算下,软件和FPGA硬件的通讯和同步较困难,不同的实例的工作量协调成为需要解决的问题。

三、概括总结

从上面的研究情况中可以得出以下的概括总结:

(1)算法类型:分为实例型和应用型两种。早期的研究以实例型为主,由于对于每个实例都有漫长的编译下载时间,其实用性和发展都有限;近期的研究都以应用型为主,在对应用的实例的算法加速过程中取得了初步的进展。

(2)执行模式:分为单纯的硬件算法和混合型算法。由于FPGA硬件的资源有限,研究中大部分采用了混合型的算法,将SAT算法功能在软件和硬件之间划分。划分分为两种方式:按照计算复杂性划分:将计算量大的,可以并行计算的功能划分给硬件系统;按照存储量或者逻辑容量来划分,FPGA不能容纳的部分由软件来管理和控制。

(3)逻辑容量:硬件系统的计算能力受其硬件资源的限制,与应用SAT实例需求相比始终不足,而采用了多种扩展方式进行扩展:

ⅰ)多个硬件组成阵列的方式。

ⅱ)将硬件中的功能采用并联或流水线的形式划分。

ⅲ)按照硬件的存储量和逻辑容量来划分,其余部分软件管理,如采用软件系统中的虚拟内存概念在硬件中调配。

(4)计算能力。硬件算法的时间由四个部分组成:硬件编译时间,硬件配置时间,数据通讯或下载时间,实际执行时间。实例型硬件算法受硬件编译时间限制较大,应用型硬件算法决定于通讯时间和实际执行时间。但由于各种研究的硬件平台各不相同,大都采用与类似DIMACS benchmark的实例用软件算法的计算结果比较,但由于软件运行的计算机系统的各不相同,其实际速度提升很难把握。在和软件进行对比中大部分采用了GRASP的SAT计算结果,但在2002年以来其计算能力就已经被zChaff和BerkMin等越来越多的算法超越,要提高硬件算法的实用性,需要找到更有效的评估方法。

四、研究思路

实例型(Instance-Specify)的编译配置过程本身就是一个SAT的可满足性问题求解的过程,时间过长,在研究中将着重在更具有实用价值应用型(application-Specify)硬件算法。硬件平台的资源与SAT应用的需求相比总是不足,很多SAT软件算法中的先进技术硬件还暂时很难实现,将功能在软件和硬件上合理分工的混合型算法更具合理性。

下一步研究将致力于:1、找到合理的应用型硬件算法,充分发挥硬件的并行处理能力,从而提高算法速度,降低同步过程中对速度的影响,达到提升整体的计算速度效果。2、建立不单纯使用计算时间来进行算法速度比较的硬件算法评估方式,使不同平台的硬件算法速度更具有可比性和参考价值。

参考文献

第4篇:计算机硬件编程范文

【关键词】高校;计算机硬件;课程教学

随着我国计算机控制技术的提高,社会中对计算机硬件专业人才需求也是越来越大,因此在高校教学中,应该改进其计算机硬件课程教学模式,提高学生对计算机硬件知识的掌握能力以及实践应用能力,提高计算机硬件课程的教学质量。本篇就主要探讨改进计算机硬件课程教学的实践策略,以下就做具体介绍:

一、高校计算机硬件课程教学现状

(1)教师存在的问题。绝大多数的教师在计算机硬件课程教学中,不仅缺乏对硬件产品的研发实践经验,计算机硬件课程教学中,理论性强、应用广还与实践联系紧密,而且由于现在计算机硬件的更新换代速度快,故此在教学中教师对计算机硬件的掌握程度较低,因此在对学生教课中不仅不能激发学生兴趣,还将会降低课堂教学的质量。

(2)缺乏实践教学。对于计算机硬件课程教学中,其作为一门技术型实践性很强的基础课程,教学中会因为课时限制以及一些客观条件的限制,使得在教学中缺乏实践教学的应用,不仅不能很好的培养学生的硬件动手能力,也不能激发学生的硬件学习兴趣,还有就是会降低学生对计算机硬件知识的理解能力,这些都将会影响高校学生在计算机硬件知识方面的提高。

(3)硬件课程体系不完善。对于当前高校的计算机硬件核心课程中,不仅包括《数字逻辑》、《计算机组成原理》等课程,同时计算机硬件也是教育可以教学中的核心课程,针对目前高校教学中,其课程结构不合理。并且在硬件核心课程中,不仅缺乏联系,而且课程教学之间结合也不够严密,硬件课程知识中对于一些知识点又出现重复教学的弊端,这些问题都将给高校计算机硬件课程教学带来一定困难,降低计算机硬件课程教学质量。

二、高校计算机硬件课程教学改革措施

(1)教学体系的改善实践。针对高校中计算机硬件课程,应该从整体上把握硬件课程的体系结构,并且能够遵从“循序渐进,由浅入深”的原则,将计算机硬件体系划分为基础、应用以及提高这3个层次,分别用来提高学生的计算机硬件知识;在教学中教师应该注重培养学生的实践能力以及创新意识,教学中教师应该为辅,学生应该为主,加强学生综合运用知识解决问题的能力,提高学生对计算机硬件的实践技能,可以有效发挥学生在计算机硬件学习中的主观能动性。

(2)改善教师水平。对于课程教学中,教师要经常和学生进行互动,并且还可以灵活采用网上答疑以及在线测试等教辅手段,促进学生在计算机硬件学习中的提高,提高学生的学习效率,激发学生的学习兴趣。强化实践教学,开展综合性课程设计,应用现代教育技术实施到计算机硬件课程教学中。利用现代化教学手段进行硬件课程教学,在改变教学手段的同时,也可以有效改进教学过程,提高学生的计算机硬件知识水平,扩展硬件课程体系,使学生学到最新的硬件技术知识,强化学习的计算机硬件课程教学效率。

(3)改善教学方式实践。在教学中,可以采取启发式教学,针对计算机硬件教学,教师应该培养学生的独立思考于解决问题的能力,例如在课堂中讲汇编语言程序设计的时候,教师可以要求学生编写一段硬件程序,引导学生做一些对于硬件接口芯片的扩充实验不仅会加深学员对汇编语言的理解,还可以激发学生的学习热情。

针对实践教学中,可以根据现阶段学生学flas设计与制作课程,使学生制作一个渐变式折扇打开动画,如下图1中就是折扇打开到一半的状态:

图1打开折扇的flas

教师还应该仔细设计实验环节,增加实践教学课时,丰富实践教学内容,提高硬件实践教学在学生心目中的地位,使学生可以对硬件课程教学提升兴趣;先为学生讲解主要的知识点,包括FLASH图形绘制技巧、位图填充及调整、多层元件补间动画、遮罩的应用等原理,之后可以为学生介绍具体的操作方法,如下:先找一面纸折扇图片作基础素材,使用Photoshop把图片底做成透明的,并从图片中“抠”下扇柄图片,打开flash软件,点“文件”――“新建”――输入画布尺寸,之后点“文件”――“打开图象”,将折扇拉到工作区,点“添加帧”,需要12个空白帧,在第1帧点“变形工具”,选中扇子复制粘贴,第2帧复制粘贴折扇图片,直到13个帧都有折扇图片,通过一系列设置之后,就可以做出折叠扇子的动画效果,既有趣也生动。

综上所述,针对高校计算机硬件课程教学大纲以及教学内容、教学手段与方法进行创新,不仅可以提高学生学习计算机硬件知识的积极性,还可以提高学生的实践动手能力,学习计算机硬件知识的积极性,还可以提高学生的实践动手能力,提高学前教育专业教育科技中计算机硬件课程的教学水平,有实际的应用价值。

参考文献:

第5篇:计算机硬件编程范文

关键词:软件加密;注册;PC

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)30-7206-02

随着计算机性能的不断提升,以及互联网应用的不断扩展,计算机软件业得到了迅猛发展。软件是一种特殊的产品,为了防止软件的非法复制、盗版,保护软件开发者的利益,就必须对软件进行加密保护[1,2]。理论上,没有破解不了的软件,仅靠技术对软件进行保护是不够的,最终还要靠人们知识产权意识和法制观念的进步。软件保护方式的设计应在一开始就作为软件开发的一部分来考虑,列入开发计划和开发成本中,并在保护强度、成本和易用性之间进行折衷考虑,选择合适的平衡点[3,4]。

本文提供了一种实用的软件加密方法,通过读取计算机硬盘序列号、CPU序列号及网卡MAC地址,以这些参数为基础产生机器码,用户把机器码通过电子邮件(E-mail)、电话或邮寄等方法告知软件开发者,由开发者通过注册机(软件)生成该软件的注册码回传给用户,供用户注册后使用软件。注册码与计算机的硬件参数息息相关,并通过特定文件进行保存,只能由进行注册的计算机使用,从而可有效防止软件的非法复制。

1 基本原理

硬盘序列号、CPU序列号及网卡MAC地址是生产厂家为区别出厂硬盘、CPU及网卡而设置的生产标识,不同的厂家硬盘序列号、CPU序列号及网卡MAC地址编码不同,但其标识是唯一且只读的,因此可使用这些参数作为计算机标识,在软件开发时作为加密标志,使软件运行时必须与计算机进行一一对应的认证,从而保证软件合法运行。

该方法工作原理流程如图1所示,软件运行时,首先读取计算机的硬盘序列号、CPU序列号及网卡MAC地址,根据这些参数合成一个编码,对该编码进行相关变换,生成计算机唯一的机器码告知用户,同时通过加密变换等手段(注册码生成模块)生成注册码,等待与用户输入的注册码进行比对。用户将机器码告知软件开发者。开发者通过加密变换等手段(注册机)进行处理,生成软件的注册码返回给用户,用户将注册码输入软件。软件将用户输入的注册码与自身计算得到的注册码进行比对,一旦结果正确即完成了软件注册,并将注册码保存到指定的注册文件中,以便软件今后运行时直接读取注册码,不必重复进行注册。

2 程序的实现

2.1计算机硬件参数读取

2.1.1 硬盘序列号读取

读取硬盘序列号程序使用了第三方开发的DiskID32.dll动态链接库,关键代码如下:

2.1.2 CPU序列号读取

CPU的序列号只能采用对CPU控制器直接操作的方式进行读取,即只能采用CPU的I/O指令操作控制器, 对于CPU序列号的读取采用了汇编语句读取,其关键代码如下:

2.1.3 MAC地址读取

通过调用NetBIOS函数获得网卡MAC地址,关键代码如下:

2.2 机器码与注册码生成

根据读取的硬盘序列号、CPU序列号及MAC地址,各抽取一定的字节组合生成新的计算机编码,对该编码进行相关变换,生成机器码。若在读取硬盘序列号、CPU序列号及MAC地址时出现异常,则根据预置的硬盘序列号、CPU序列号及MAC地址进行相应的替换,以保证机器码的顺利生成。

通过对机器码进行移位、异或、加密等变换处理,形成与机器码唯一对应的注册码,这个过程中的移位、异或、加密等变换处理由软件开发者根据加密强度的需要进行自主设定。

2.3 注册文件读写

使用Windows API函数进行注册文件的读写,关键代码如下:

3 结束语

本文提出的方法,借助计算机硬件参数信息进行软件加密注册,确保了软件注册的唯一性,可有效防止非法拷贝,保护了软件的产权。经过在VC++6.0环境中编程应用,结果表明该方法简洁有效,可用于小型软件的保护。然而,软件保护领域中没有绝对安全的保护技术,开发者只能在发现问题并不断解决问题中积累经验,以达到更高级别的软件安全[5]。

参考文献:

[1] 孙敬先,李长星,郑敏.基于硬盘序列号和RSA算法的软件加密方法[J].电脑知识与技术,2010,26(6):7267-7269.

[2] 段善荣.软件保护技术的分析及实现[J].武汉理工大学学报(信息与管理工程版),2009,31(6): 906-908.

[3] 李光辉,李琼仙.VFP环境下读取硬盘序列号实现应用程序加密的研究[J].昆明冶金高等专科学校学报,2011,27(1): 9-12.

第6篇:计算机硬件编程范文

    大多数高等院校计算机本科专业涉及的硬件教学课程主要有“数字逻辑”、“汇编语言程序设计”、“计算机组成原理”、“计算机系统结构”、“微机原理与接口技术”、“单片机”、“嵌入式系统”等,在新形势下部分课程内容设置显得不够合理,部分教学内容与实际应用脱节,影响了教学效果,无法完全满足教学大纲中要求的动手能力培养,更无法有效培养同学们的创新意识。目前,作为计算机教学重要专业基础课程的“数字逻辑”,要求学生掌握组合逻辑、时序逻辑电路的分析和设计方法,研究对象主要是分立元件、通用中小规模集成电路及基本的可编程器件等,介绍的方法也以传统方法为主,已无法适应目前应用的需要;作为专业主干课程的“计算机组成原理”、“计算机系统结构”,主要内容是讨论计算机的结构、各功能部件原理及设计方法,同时介绍当前的新技术、新方法,目的是让同学们熟悉计算机的结构,为以后应用和设计计算机系统打下基础。目前大家普遍采用的教材在部件设计中讨论的方法主要是硬布线逻辑或微程序设计方法:硬布线逻辑运行速度高,但缺乏灵活性;微程序设计方法有一定的灵活性,但资源占用多,运行速度慢。尽管这两种方法对于理解计算机组成原理不失为一种较好的选择,但由于缺乏实际应用背景,学生学习兴趣受到影响,教学效果也大打折扣,提高学生的动手能力、培养创新意识更是无从谈起。“汇编语言程序设计”课程也存在类似尴尬,讨论以16位个人计算机为背景的汇编语言程序设计知识,适合入门和了解基本原理,但与“计算机组成原理”、“计算机系统结构”课程一样,由于缺乏实际应用背景,教学目标无法完全实现。随着电子设计自动化(EDA)、系统编程(ISP)、片上系统(SOC)等技术的发展,32位个人计算机的应用已很成熟,多核64位计算机应用也将逐步成为主流。嵌入式系统设计需要较强的软硬件知识综合应用能力,因此在计算机硬件课程的教学中应加大相关新技术的比例,并根据实际及时调整教学内容。国外许多知名高校本科专业的教学内容已经作了适时调整,如麻省理工学院非常注重学生的设计能力的培养,为此专门开设了“计算机系统设计”课程,要求学生在实践环节中自主设计ALU、单指令周期CPU、多指令周期CPU乃至流水线32位MipsCPU和Cache;斯坦福大学也有相似的课程和实验环节;加州大学伯克利分校和杨百翰大学在基于可编程逻辑的超级计算机研制方面也有大量成果。当前在国内,案例教学已被越来越多的人所接受,尤其是在一些法学、工商管理类高校已经开始广泛运用。案例教学法是一种动态的、开放的教学方法,目标是解决学生如何用更有效的方式获得知识以提高应用能力的问题。案例教学法具有综合性、交互性、启发性、针对性和可操作性等多种特征,它的使用大大缩短了教学理论与实际应用之间的差距,同时对教师的教学观念产生了重大的影响。鉴于计算机专业知识与实际应用结合紧密的特点,教学中尤其适合案例式教学。目前在国内计算机课程的教学中,案例教学还处于一个起步阶段,主要表现在:案例教学比例不够,没有形成完整的体系;案例数量不足,质量欠缺;许多高校尽管重视案例教学的应用,但是在案例的搜集、整理与分析等方面相对滞后;案例陈旧,缺乏代表性等。

    2以ISP技术为主线改革计算机专业硬件课程教学体系和教学内容

    计算机本科专业涉及的硬件教学课程按合理教学顺序一般为“数字逻辑”、“汇编语言程序设计”、“计算机组成原理”、“计算机系统结构”、“微机原理与接口技术”、“单片机”、“嵌入式系统”等,一些课程可以在时间上重叠,如“数字逻辑”、“汇编语言程序设计”等。由于ISP、EDA技术可以灵活地开发出具有自主知识产权的硬件产品,是目前工程实践领域和芯片设计领域运用最广泛也是最有应用前景的技术,因此在计算机硬件课程的教学中应该把相关技术列为重要内容,即以ISP、SOC技术为主线,使相关课程形成一个完整的体系,达到培养创新性人才的目的。为了实现这一目标,在“数字逻辑”课程中,应大幅增加可编程逻辑技术的比重,重点讨论用EDA方法,利用ISP技术、SOC技术设计IP核的方法,使学生对相关技术的应用及发展趋势有一个全面的理解,并具备基本的实践能力;在“计算机组成原理”课程中增加计算机设计原理和实践的内容,也可考虑再单独增加一门计算机设计课程以替代目前“计算机组成原理”课程设计,在该课程中重点讨论如何采用EDA方法,利用ISP技术、SOC技术设计计算机各部件如CPU、Cache等,通过实际应用和实践进一步加深对相关技术的理解和掌握。在“微机原理与接口技术”课程可以考虑以16位计算机应用知识入门,以讨论32位计算机的应用为重点。相应的,作为“微机原理与接口技术”课程的先行课程,“汇编语言程序设计”课程也应把相应的内容整体提升到32位,考虑到学习过程的先易后难,可以先介绍16位汇编语言程序设计知识作为入门,再对32位汇编语言程序设计相关内容展开。单片机系统本质上也是嵌入式系统,嵌入式系统是针对应用或用户定制的完整、高效的计算机系统,嵌入式系统设计需要较强的操作系统原理、应用程序设计和硬件设计方面知识的综合应用能力,其中特别是硬件系统设计能力可以通过以上几门硬件课程的系统学习逐步培养,因此相关课程的教学内容应注意衔接,同时遵循先易后难的原则,面向实际应用,以提高动手能力、增强创新意识为目的。针对实践教学,目前相关课程的实验教学的实验项目及内容固定,大多为验证性实验,实验步骤程式化,许多同学按教学实验计划做完实验,仍然无法充分理解课程的主要内容,无法真正拥有教学大纲所要求的动手能力。更重要的是计算机技术一直处于高速发展中,高等院校的计算机教学理应不断地适应这种要求,相关的实验教学应适时地调整教学内容。解决问题的一个好思路是利用ISP、SOC技术开发出一种内容可定制的硬件课程教学实验平台,由于作为控制对象的电路是相同或相近的,可以设计为通用模块,而实验平台控制部分则可以利用可编程逻辑改变,以适应不同的课程。如控制部分设计为基本CPU即可做“计算机组成原理”课程的相关实验;控制部分设计为单片机即可做“单片机”课程的相关实验;甚至控制部分可以设计为个人计算机CPU,配合有关的接口电路,即可做“微机原理与接口技术”课程的相关实验等。在我院的计算机本科专业相关硬件课程教学实践中,我们已作出了一些有益的探索,如我院“数字逻辑”教学大纲已在近年作过相应调整,EDA技术、可编程技术的理论和实践教学内容的比例从原来的20%增加到60%以上,经过多年的建设,“数字逻辑”课程在今年被评定为“湖北省精品课程”;在“计算机组成原理”课程中引入利用ISP技术设计CPU软核等教学和实践内容;“汇编语言程序设计”、“微机原理与接口技术”课程中也增加了32位计算机相关内容的学习和讨论,新的实验设备可以进行32位的相关实验等,这些安排增强了学生的学习兴趣,学生学习的主动性也明显提高了。

    3采用案例教学法作为计算机专业硬件课程教学的主要方法

    案例教学法是一种事半功倍的教学方法,在教学过程中围绕事先精选的典型的、具有工程背景的实际案例进行讨论,可以为同学们模拟实际应用的场景,获得近似于实战的经验。为完成设计目标,同学们自然会自己主动学习,在这一过程中掌握知识,并学会应用知识,提高解决问题的能力;也能通过用不同的途径解决问题,培养创新意识。这样教师在授课中可以把精力集中于教学内容的总体把握上,而不需要过分在知识细节上消耗时间,提高了教学效率。案例教学法关键在于选择合适的案例,案例首先必须有代表性和实时性,必须是实践中的典型应用实例。在实践中应用的几率高,具有普遍意义,这样的实例在教学过程中值得花费精力讨论和设计,才是有意义的。同样重要的是案例需具有实际工程背景,学生可以面对具体的实际问题和特定的环境,有针对性地通过自主学习和思考进行设计,培养实际解决问题的能力。案例还应该形成相对固定的案例集,并具备一定的开放性,应定期对案例集进行评估,剔除一些过时的案例,增加一些新的典型应用实例。这样就保证了案例的典型性、实时性及工程背景。在教学实践中,我们把案例教学法作为主要方法,并把案例分为4类:一是问题评论型,给出问题和解决问题的方案,让学生去评价;二是分析实现型,不给出解决方案,要求学生讨论分析以提出方案;三是实际模拟型,是指在教学过程中依据教学内容,让学生分别充当不同的角色,进行模拟性的实践活动;四是发展开放型,通过案例发现新的理论生长点,讨论相关理论的发展趋势。我院在相关课堂教学中采用的部分案例如表1所示。在“数字逻辑”、“计算机组成原理”等课程的重点章节教学中,我们通过采用上述案例法,调动学生成为积极参与者,而不是消极被动的听众,在案例学习和讨论中,鼓励学生提出更多解决问题的办法,在课堂上营造出积极发表意见和争论的气氛。这样提高了学生的学习兴趣,教学效果有明显改善,学生的动手能力有了显着增强。

第7篇:计算机硬件编程范文

【关键词】单片机系统;计算机;辅助软件;设计工具;硬件设计;仿真

选用合理的计算机辅助软件技术与工具来对单片机进行辅助,以便其控制系统能够发挥良好的作用,对其系统的设计与开发还能够在节省人力方面起到很大的效果,形成一种电脑解放人脑的绝对优势。而在早期阶段的Z80单片机,即使采用了汇编语言进行编程,但机器识别编码的能力非常的弱,只能够识别由1和0形成的编码,所以此单片机在进行编程后还要利用人工对其进行翻译并要翻译成机器能够识别的编码,还要将其人工翻译成的机器码再输入进单片机内,经过这样一个繁琐的过程后才能够对软件进行调试。但在科学技术发达的今天,此种劳动力早就已经被电脑技术所代替,而且其劳动功效大大提高了许多。即使有了现在的科学技术,也不能够满足人们对高效方法的不断追求和对其更具有高效工作效率工具的开发。目前在单片机系统设计开发技术上,利用计算机辅助设计和软硬件结合仿真的开发设计工具已被许多的开发者所采用。

1.51单片机控制系统设计开发工具及选用

1.1 由于科学技术的不断发展,在单片机技术领域有了很大的进步,对51系统单片机的开发工具和设备上有了很多的技术成果,例如,能够采用C语言开发51单片机程序,而经常使用其开发软件的公司就有加拿大软件公司DAVEDUNFIELD推出的MICRO-C51编译器、IAR公司和2500A.D公司开发的编译器、Windows 集成开发环境Keil软件等。而在我国利用这项技术的公司有MedWin集成开发环境、伟福集成开发软件等。对于功能比较齐全的集成开发环境来说,能够把用户在开发利用软件适应过程中所需要的整体工具采用有效的方式将其进行结合,具体所采用的工具都有编辑器、高级语言编辑器、汇编器、定位/连接器等,这些工具的使用可以有效的优化用户开发环境。具有软件硬件仿真工具的公司有Nahau公司的EMUL51XA-PC随时在线的仿真器、英国Labcenter公司的Proteus软件等。

1.2 对于8051单片机的应用程序来说,可以采用汇编语言,使用汇编语言的好处就是能够与硬件相结合形成一定的关联,这样就能够快速便捷的运用硬件功能,其所使用的资源非常小、执行的速度较快。对于后来所开发的C51语言来说,能够便捷的实现程序设计模块化、其代码可读性好、维护起来较简单、升级速度快,并且经过实验证明,在大部分应用条件下执行效率能够与汇编语言非常的接近,利用C51语言来进行单片机软件编程具有很大的优点,在市场上的竞争具有非常大的优势。所以利用C51来对单片机进行程序设定已经受到了社会的广大认可,并成为了主流形式之一。

1.3 而在C51的编译执行方面,现在非常常见的是KEIL51软件。KEIL51是德国KEIL公司开发单片机C语言编译器,其之前被称为KELINC51,其形成了文件编辑处理、编译链接、项目管理、窗口、工具引用和软件仿真管理等许多功能,在其仿真技术中,具有两个类型的仿真模式:软件模拟方式与目标板调试方式。根据其模拟仿真模式来看,根本不需要利用8051单片机硬件就可以形成程序仿真调试,这样能够在用户程序的开发效率上得到很高的提高。

综上所述,可以根据其整体使用作用与工具软件得到其成本,使用51单片机的计算辅助设计工具的组合方式都有以下内容:可以采用C51语言当做编辑语言的关键点,KEIL与Proteus以及双龙软件作为其软件的编译、调试、仿真、下载和制作PCB板的重点工具软件,据调查发现这是市场上性比价较好的组合,并且这些软件还能够满足常用需求的免费版本。

2.51单片机的计算机辅助设计工具组合的使用

2.1 设计系统的硬件结构和软件各模块流程图

第一步可以先依照一个单片机控制系统的作用要求,对其进行硬件电路和软件的整体结构进行具体设计,根据对每个模块软件的设计中获取程序流程图。图1所示是根据其功能与硬件工作原理设计的流程图。

C51是利用标准C模块命令与规则作为基本条件来对其进行扩展,能够便捷的设计出模块程序。根据设计出的模块流程图,可以简单的对每个程序模块依据流程图利用C语言来进行编程。而且编写程序还能够启动Proteus画出单片机电路。

2.3 利用Proteus画出单片机电路

若是要对硬件电路实现仿真,就要利用Proteus画出单片机系统的电路,通常情况下能够按照系统的每个模块分别画出电路,若对其进行仿真后再组合成总成电路,也能够将整个电路以此画出。对于使用的视电路方式、软件的难易程度以及调试难易程度的具体状况来决定。图2所示是利用Proteus画出的电路图。

2.4 软硬件结合仿真和调试

能够利用KEIL软件对已经编译成功的C51语言程序进行进一步的编译,等到编译形成后就能够在KEIL上进行调试,此时就可以利用KEIL和Proteus结合运作进行软、硬件的调试和仿真。在这一过程中通常情况下是需要非软、硬件的设计采取多次的改动和仿真调试的。

2.5 对硬件电路的制作

只有经过对软硬件的调试后才能够制作硬件电路,此时便能够利用Proteus的ARES软件简便的进行PCB板的设计与制作,之后才能够对软件进行安装。

2.6 实际软硬件调试、修改

根据以上步骤的运行,现在可以对硬件电路的实际软件调试和修改逐渐实现。这样就能够利用双龙软件把事先调试好的程序按步骤下载到硬件电路的8051单机片中来进行具体的测试调整。因为目前的仿真软件还不能够完全与真实电路的效果相同,因此此时的硬件电路和软件业也可以做更多的改进。

3.讨论

3.1 根据在日常中的使用效果,以上的计算机辅助设计仿真工具进行一定的组合后可以继续一般状况的调试、仿真、下载、制作PCB板等工作,从而在51单片机控制系统的设计、制作和调试工作效率上得到很大的提高。Proteus可以对很多类型的单片机运行仿真技术,因此这种方式能够得到许多单片机系统设计的运用,但以上所提到的KEIL等需要利用其它的单片机采取与之对应的软件。

3.2 对于这种仿真技术来说,在其使用过程中有以下两种问题。

(1)运用仿真技术来进行工作和运用真实的电路来进行工作存在一定的差别。而站在硬件的仿真结果的角度来说,其结果与实际状况或许会有一些不同,出现这一现象的原因是由于硬件在实际运行过程中其状况存在一定的复杂性,对于仿真来说,就是利用程序来进行模拟实际元件的工作情况,但还需要靠人来进行程序的编辑,而人工编辑是难以将全部模拟电子元件的实际情况充分展现出来的,尤其是很多元件在一起工作时。

(2)元件仿真模拟不足。即使Proteus含有非常丰富的元件库,其元件有一部分是能够在电路图时使用的,但有一部分在进行程序仿真时就不能完成仿真,而这是因为没有与之相对应的方程程序而造成的。

3.3 对于以上的问题,其解决的办法有以下几种。一是采用具有同样功能的不同型号元件取代进行仿真;二是查找与之对应的仿真模型程序来进行工作;三能够自己建立元件,即自己为元件设计仿真模型程序。

4.小结

通过以上对单片机系统计算机辅助设计工具及软硬件设计和仿真技术的分析研究,可以对其进行一些设想。EDA(电子设计自动化)中的一项技术就是利用硬件来描述语言VHDL,依照预想的功能写出对设计文件的具体描述,就可以利用计算机自动地完成这些功能的逻辑电路图。

参考文献

第8篇:计算机硬件编程范文

关键词:三本院校;硬件;教学改革;嵌入式系统

中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2012)07-0171-02

上世纪80年代,我国高校相继开设了计算机专业。初始,教学过程中软件与硬件两大体系并重。当时流传这样一句话:“硬件学接口,软件学编程。”随着大规模集成电路及门阵列芯片的普及,微机硬件体系中基本上已无分立元器件,学生面对微机硬件体系课程中提到的器件和部件没有直观认识,看不见摸不着。硬件课程的教学目标不明确,大多数只是为了了解计算机体系结构而没有硬件方面应用的愿望,因为教学内容无法在实际工程中得到应用,进而学生不能在硬件方向上就业。然而近几年来,嵌入式电子产品蜂拥而来、名目繁多,嵌入式电子产品行业对人才的需求十分旺盛。这就给计算机硬件教学带来了挑战并给计算机专业学生就业拓宽了门路,特别是三本院校的情况更是如此。那么,三本院校计算机硬件教学如何适应这种形式?怎样进行教学改革?这是一个非常紧迫的课题。

一、三本院校计算机硬件教学现状分析

三本院校其实就是民办应用型本科院校,其计算机专业硬件教学现状比一二本公办院校更糟糕。他们在教学经费、实验条件、师资水平、教学积淀、科研氛围等方面更逊一筹。首先是,在理念上轻视硬件教学,认为硬件知识无实用价值,无就业前景,只是象征性保留两三门硬件课程,由于实验条件所限基本只讲理论或图示实验。学生根本不懂“接口”这一软硬件结合的技术,有的甚至放弃了硬件教学,计算机科学与技术专业变成了名副其实的“软件工程”。更不可思议的是:面对朝夕相伴的微机系统,绝大多数计算机学生从未打开过机箱,根本不认识CPU、南北桥芯片、内存条,也不知道串、并口在哪里。其次,硬件教学培养目标不明确,随意性大。课程设置存在两个误区:其一是课程名称种类繁多,不稳定、变动大;其二是盲目套用一二本院校的方案,不适合三本院校的教学、师资条件和学生的学习能力及特点,更谈不上特色。在教材选取和教学内容剪裁时陈旧过时(部分教师偷懒),仍以18年前就讲授的8086体系为主体,不能与时俱进。学生面对现代微机的新理念、新技术、新架构很少介绍甚至没有介绍。比如,微处理器的双核和多核技术、串口硬盘和并口硬盘有何区别等等。实际授课时硬件理论讲授过多,实际动手实验太少。例如:详尽分析pentium处理器内部结构时,学生如坠云雾,而具有实用价值的现代微机的部件原理、性能指标、优化组合等又不讲。开设的硬件实验一般都由教师规定好内容和步骤,学生按部就班地在实验板(箱)上拔插线路,基本都是验证性实验,无思考余地,更谈不上设计和综合集成。

二、三本院校计算机硬件教学改革的意义

基于上述三本院校计算机硬件教学的现状,其教学改革非常必要、刻不容缓。

1.学生就业是三本院校的生命线。学生就业是三本院校教学的指挥棒,学生及家长的基本诉求就是要解决就业问题。就业好的三本院校社会声誉高,生源稳定,就业直接关系到三本院校的生存,特别是在其生源已经呈现紧张趋势的今天。大学生就业的最大障碍是缺乏实际工作经验,这造成了用人单位招不到自己需要的学生,学生找不到工作的怪现象。计算机硬件教学改革的基本意义就是能拓宽就业的门路。在硬件教学过程中必须面向实际应用,切实加强学生的动手能力,始终围绕和紧跟主流微机进行教学,摒弃复杂玄妙的原理剖析,粗线条地从实用角度给学生一个整体观念。这使学生能在IT行业从事维护、组装、销售、网络工程实施等工作。另一方面,扎实地进行嵌入式系统的教学和实践,使学生能在电子产品制作、自动控制方向上伸进一条腿。笔者所在的广东培正学院地处IT行业十分发达的珠三角地区,中小IT企业星罗棋布,基于嵌入式系统的电子产品数不胜数。嵌入式电子产品人才需求十分旺盛。这些企业特别看重学生的动手能力,学生只要具备基本的电子电路、单片机技术、嵌入式系统基础,并能使用相关仪器和工具,其就业之路十分顺畅,工资待遇非常可观,这种现象已经被近几年就业市场所证明。

2.硬件教学改革符合三本院校学生的学习特点及要求。大学本科教育现已成为大众化教育,在此背景下,三本院校学生具有如下特点:①基础知识和学习能力不及一二本院校学生,这是中学教育及高考决定了的。②对实用的技术技能感兴趣,不太习惯理论学习和逻辑思维,这是由二个因素决定的:一是自身长期学习的惯性使然;二是学习目的决定,因为他们中绝大多数没有进一步深造(如考研)的要求,只想更好地就业。③学习上易于冲动,少有恒心和耐力。缺乏自信心,往往遇难而退、望而却步。④他们兴趣广泛,思维灵活,绝大多数学生表面看起来不想学习,其实他们的“成就感”愿望极强,迫切想学到他们认为有用的知识和技术。如上所述可知,不能强行按一二本院校学生的要求来强制他们学习,应因势利导。从应用角度阐述理论,采用案例教学甚至项目驱动教学。在适量学完微机硬件体系结构后,教学重点放在嵌入式电子产品的基本原理、简单EDA(Electronc Design Automation)设计、简单制作方面。使学生能使用常用仪器和工具制作出简单的电子产品,于是兴趣大增、“成就感”油然而生,收到事半功倍的效果。

三、三本院校计算机硬件教学改革的措施

谈到改革措施,首先应转变教学理念,以应用和实用为目标设计硬件教学课程体系并剪裁教学内容,使之为就业的二个方面服务;全面改革教学方法使之符合三本学生的学习特点;更新传统的考试考核方式使之更好地调动学习积极性。

1.转变教学理念,修改硬件课程体系和教学内容。①教学理念与硬件教学体系。在高等教育大众化的今天,三本院校的教学理念首先要确立培养应用型人才的目标、建立新的教学质量评价体系、理论知识为实际应用服务、综合评价知识、技能和能力等诸多要素。此处能力包括实践能力和社会适应能力。在调研了学生就业状况和用人单位需求二个方面的前提下设计硬件教学课程体系。如前所述,硬件教学有二个就业方向,一是以学生面对的主流微机系统知识为背景从事微机系统维护、组装、销售、网络施工等工作;二是以嵌入式系统知识为背景从事电子产品设计、制作、销售等工作。这二个就业方向对应二条主要教学路线:数字逻辑80386汇编语言计算机组成原理X86体系接口技术windows设备程序开发。这条路线尾节点只能作为少数成绩优秀学生深造,涉及到深层次技术,可作为选修。数字逻辑MCS51汇编语言(或ARM汇编)电子电路基础单片机技术嵌入式系统。而作为知识支撑,还有一条辅线:80386汇编语言(MCS51汇编语言)操作系统(嵌入式操作体统)智能卡芯片操作系统COS(Chip Operating System)。②课程设置与教学内容。为了保证教学路线的实施,在课程设置上与教学内容上应做精心安排,80386汇编和MCS51汇编作为一门《汇编语言程序设计》开出;X86体系接口和单片机技术合为一门《接口与单片机》开出。二条主线上其余节点就是课程名称,共有7门课程。在教学内容剪裁上要注重实用与应用,还要注重针对主流机型、设备、部件器件介绍前沿知识。例如:计算机组成原理中避免分析CPU内部结构的复杂机理,从性能与发展趋势分析双核多核CPU;摒弃三块一线(CPU、存储器、IO接口、系统总线)传统的主机板架构,引入现代微机的1-3-5-7式(一条总线、三大芯片、五条总线、七个接口)架构。接口知识中精简传统的且少有实用价值的8253、8255等接口芯片的讲解而重点介绍USB接口,USB接口是学生面对的最具实用价值和发展前景的接口标准。数字逻辑和电子电路少些逻辑运算和复杂电路分析,加强嵌入式系统中实用的流行的控制芯片的讲解,为嵌入式系统学习和电子制作打下基础。嵌入式系统教学内容以ARM嵌入式系统为教材,它应用面广,最具发展前景。教学内容中实践部分是落脚点,实训简单实用的嵌入式电路板的制作,如何使用常见工具,如:万用表、示波器、电烙铁手工焊接及BGA温控焊接等。电路设计学习EDA,会使用软件进行设计,如:protel、protus等软件。

2.改革硬件教学方法和手段。先进合理的教学方法和手段会收到事半功倍的效果,是学生掌握教学内容的必要条件。可采用如下办法:①精心制作CAI多媒体课件,对于复杂的数据流程一定要动态演示。②以学生面对的微机系统及设备为讲述对象并进行实验,如:汇编指令in/out是接口技术中最常用的指令,可以用微机CMOS数据读写(地址口地址为70H、数据口地址为71H)为案例进行讲解,学生既熟悉实验环境又方便操作,若能做成CMOS数据保护程序,则学生更有成就感。另外,直接读写硬盘扇区也是很好的接口技术案例。③案例教学法始终贯穿于教学过程中,特别是在嵌入式系统教学和电子电路制作实训中,刺激学生的学习兴趣使其得到“成就感”。当然,好的案例选取是要靠教师具有从业经验和项目经历并且花大量精力才能实现。④项目驱动教学,以案例教学为基础,以合适的实际项目作为实训对象则教学效果更佳。这可以提高学生分析问题解决问题的能力,还可以培养学生的工程素养及团队合作精神。

3.革新课程的考试考核方式。考试是整个教学过程的最后一个环节,是学生学习的指挥棒,事关学生眼前利益,要用考试促进平时学习。硬件教学的传统考试考核方法一定要改革,否则,改革措施就会落空。应由单一的笔试改成:笔试+实验制作+参与案例项目+职业认证+大学生科技比赛等多个环节考核、综合评定。笔试成绩只占30%,其余部分是实践成绩,占70%。一个学生不一定能同时得到三个实践环节的成绩,但是只要获得其中一项成绩即可。这样一来,学生不能再一味死记硬背理论知识,必须要将理论知识应用于实例中,主要学习精力自然就放在实践环节中去了。在硬件方向就业后就不必花过多时间参加岗位培训。

参考文献:

[1]李文生,等.案例驱动的嵌入式系统教学改革探索[J].计算机教育,2011,(2):22-25.

第9篇:计算机硬件编程范文

《计算机原理教程》是一本以理论计算机为对象的系统讲述计算机基础理论和方法的教材,内容主要包括计算机产生发展的基础理论、计算机运算器、存储器、指令系统、控制器、总线结构、输入输出设备、输入输出接口、DMA、通道处理机、汇编程序设计、操作系统等原理和基本设计方法,这些都是学习计算机软硬件必须了解和掌握的基础知识。该书是作者20余年计算机教学和科研经验的总结,是一本系统学习计算机理论和方法的入门书。

该书独具特色地解析了软件程序设计的顺序、分支、循环、子程序调用、中断等程序结构对硬件的依赖关系,系统地讲述了指令的一般设计方法,详细讲解了DMA、通道等部件计算机和相关指令的设计,将程序设计结构、程序执行和计算机组成结构紧密地结合在一起,有机地揭示了计算机软件与硬件的相互关系,特别强调“硬件是软件的基础,软件是硬件的完善与发展”的思想。

书中介绍的计算机的记数原理、信息存储原理、限位数运算原理、总线结构的数据传输原理、计算机控制原理、指令与程序设计原理、主机与外设信息交换原理、软件与操作系统原理、多处理机系统与网络计算机系统发展原理等,不仅是计算机专业人员必须掌握的,也是计算机文化的重要组成部分。

该书与其他同类教材相比,结构清晰,内容更加系统连贯,没有知识瑕点。书中用理论模型计算机作为剖析的目标,知识性和理论性较强,方便深入浅出地阐述。由于理论计算机没有实际计算机那些应用上的复杂问题,因而全书内容系统,结构相对简单,直击目标,更易于学习内容的把握。书中对计算机各个部件的论述都给出了逻辑原理图,这些原理图都可以直接成为实际计算机设计的设计图。通过原理图的设计,不仅能够简单直观地讲解计算机的理论,而且也实际培养了读者的计算机设计能力。

将计算机硬件和软件紧密配合讲解计算机,也是《计算机原理教程》的一个特色。书中将硬件发展和软件的需求联系起来,以十分简单的形式给出键盘管理程序和设备驱动程序的设计实例,这种将软硬件有机地结合在一起的处理方法,贯穿全书。这种处理手法使读者更容易理解软件和硬件不可分割的关系,让读者真实地感受到软件对硬件所起的作用,从而进一步加深对计算机基本概念的理解。

《计算机原理教程》虽然是一本教材,但所阐述的内容,许多都具有一定的理论价值。例如对补码制的理解,对虚拟存储空间和操作系统管程的解释等都有更深的内涵。特别是对书中所述计算机启动运行的全过程的描述,为读者揭示了计算机的整体工作过程,为将来进行深入地学习和全面地理解计算机创造了条件。

该书也兼顾到计算机汇编语言程序设计、编译方法和系统程序设计等内容,在讲述硬件的同时,介绍软件的方法,这不仅使内容更加完整,而且也为读者专修这些课程奠定了必要的基础。

《计算机原理教程》还有一个突出的特点,那就是计算机知识引入起点不高,内容系统连贯,具有高中以上文化水平的读者,都可以看懂学会书中的内容,跟随作者设计的步伐,逐渐进入计算机系统的领域。该教材可以作为计算机系统知识学习的第一门课。

配合计算机原理课程,作者还编写了《计算机原理教程习题解答与教学参考》,供教学和学习选用。读者若深入学习计算机设计,可学习《基于QutartusII的计算机核心设计》教材,它可给计算机原理内容更实际的支持,《计算机原理教程》的许多设计,都可以直接成为计算机设计的实例。

《计算机原理教程》不仅适用于本科计算机专业,也适合于本科计算机应用专业。书中带“*”的内容有一定的难度,非计算机专业可以选讲,而且这样处理的结果,不影响全书的完整性和内容的基础作用。