时间:2022-07-15 12:13:55
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机体系结构,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:计算机体系 软件模拟 精度
当前社会早已进入了计算机时代,人们的日常生活和工作都离不开计算机辅助,计算机技术也不断更新,变得更为复杂,处理器技术也越来越复杂。现在单片处理器的晶体管数量已超过10亿。这样就给计算机系统的制造带来了资金成本和时间成本上的大幅度增加。为了解决这个问题,计算机体系结构软件模拟技术就成为研发人员的首选。这种技术可以精确到时钟级别,从根本上解决了计算机体系结构研发的长时间和高成本问题。
1 计算机体系结构软件模拟技术的发展历程
1.1 萌芽阶段 计算机体系结构软件模拟技术的发展经历了一个漫长的过程。计算机软件模拟技术的结构虽然已经建立,但是处理器技术并不完善,对系统运行也不能进行合理控制,由于处理器的工作效率低下,所以控制软件的设计也非常缓慢,计算机体系结构的软件模拟技术在不断的探索中缓慢前行。上世纪八十年代,我国的计算机技术有了长足发展,经过长期不懈的研究,我国计算机系统在独立操作数据驱动和处理器高效利用技术两方面有了新的突破。至此,软件系统可以在计算机上进行更好地运行,计算机系统的控制也更为便捷。计算机的运行是以收集和处理技术为基础的。所以,在计算机应用软件技术的研发过程中要收集大量的数据,并结合计算机基础知识在计算机处理器平台上对软件系统进行构建和设计。这是计算机体系结构软件模拟技术发展的重要前提,技术人员由此掌握了计算机软件系统建设的大量数据经验。
1.2 技术研发阶段 研发人员运用性能分析模拟技术改良了计算机系统,这样,团建模拟技术就可以在处理器中进行合理运用。计算机系统的质量得到了大幅度的提高,软件模拟技术也开始被广泛运用在计算机系统结构软件的研发中。计算机体系结构软件的模拟技术可以对系统运行进行更加顺利和有效的控制,再结合性能分析模拟技术,计算机系统的研发成本急剧下降。这样就降低了技术研发阶段的风险,从根本上节省了大量的时间成本和资金成本,保障了研发单位的经济利益。在技术研发时,还要考虑到计算机系统升级、实际应用,使计算机技术的实用性大幅度提高,计算机系统的工作能力成倍增加。
2 开发计算机体系结构软件模拟技术面临的问题
2.1 设备的研发难度非常之高 计算机是一套非常复杂的系统,如果笼统地将计算机的各种特点都运用软件系统模拟是几乎不可能实现的。面对这个问题,研究人员采用了计算机系统的层次划分技术,使原本复杂的计算机系统变得相对简单化。计算机体系结构就是将计算机系统根据组成机构进行层次划分。简化后的计算机系统的复杂性依然很高,给模拟设备的开发造成了很大困难,目前计算机体系结构软件模拟设备的开发主要利用C语言来进行,这种串行结构编程语言给模拟器的实际开发造成了长时间、高成本的问题。
2.2 模拟设备精度低,运作效果差 模拟设备的精度低,效率差也是计算机体系结构软件模拟设备开发中遇到的问题,在开发过程中,对模拟器的具体要求未能进行准确的分析研究;未能透彻理解计算机体系结构的真正目的等都大大增加了错误率。另外,一般的研究开发人员将整体的运行效果用检测流程中的部分程序指令代替,造成了模拟设备精度低的问题。
3 计算机体系结构软件模拟技术开发中问题的应对策略
3.1 将检测流程中的执行指令进行合理减少 性能检测流程中标准化指令是不能改变的,但是可以在此基础上对系统性能检测流程中的执行指令进行科学而合理的减少和更正,使模拟器的运行结构能表现整体运行效果。这样就可以使模拟器的运作时间大幅度减少,缩短运行周期。
3.2 对模拟程序的指令数量进行适当减少 选择准确的模拟程序指令代替原系统整体运作结果,对模拟程序的指令数量进行适当减少,可以提高模拟系统的精确度。在选择模拟程序指令的时候,可以采取抽样选择程序指令或者是直接结构连续性指令的方式。一般来说都是采用抽样统计的方式选取程序指令,因为其精准度更高。
4 结语
当前社会已进入数字化和信息化时代,计算机技术在人们的日常生活和工作中运用程度越来越高,人们对计算机的性能也不断提出更高的要求。因此,计算机体系结构软件的模拟技术的运用也越来越广泛,成为软件开发必不可少的条件。计算机应用功能的完善需要开发人员不断探索和研究。在开发过程中,技术人员要采用正确而有效的方式应对开发过程中出现的各种问题。这样才能有效降低软件开发的周期,节省开发成本,并开发出实用性高的计算机应用软件。
参考文献:
[1]许建卫,陈明宇,杨伟,潘晓雷,郑规,赵健博,孙凝晖.计算机体系结构模拟器技术和发展[J].系统仿真学报,2009(20).
[2]包云岗,许建卫,陈明宇,樊建平.一种新型计算机体系结构模拟器的研究与实现[J].系统仿真学报,2007(07).
关键词:计算机体系结构;实验教学;模拟;仿真
1 背景
“计算机体系结构”(以下简称“体系结构”)是计算机科学与技术专业计算机工程方向的一门重要课程,它强调从系统级的角度介绍计算机的组成和相应软硬件模块的设计与实现方法。通过课程学习,学生能够深入理解和掌握计算机系统的软硬件接口、各项性能指标、系统性能的基本分析方法,以及为了达到最佳性能、最佳性价比、最佳性能功耗比等不同设计目标所应采用的软硬件设计技术。
除了课堂讲授,实验也是该课程教学的一个重要环节。通过实验,能够有效地加深学生对课堂上所学习的各个关键知识点的理解与掌握。以2010年研究生入学考试的第44题为例:
44. 某计算机的主存地址空间大小为256MB,按字节编址。指令和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:…(略)
假定int类型数据用32位补码表示,程序编译时i、j、sum均分配在寄存器中,数组a按行优先方式存放,其地址为320(十进制)。请回答,要求说明理由或给出计算过程。
(1) 若不考虑用于Cache一致性维护和替换算法
的控制位,则数据Cache的总容量为多少?
该题第(1)问主要考察学生对“数据Cache中存放了哪些数据和控制信息”这一知识点的掌握情况。能够正确回答该问的同学并不多,因为绝大部分同学都忽视了valid bit和dirty bit这两个重要信息。
我们对我院2007级的部分本科生进行了调查,让他们独立完成该题。参加调查的学生都系统地学习过Cache的相关知识,并进行过16位CPU的设计实验,但其中一半同学仅设计实现了基本指令流水线,另一半同学还完成了分离的一级指令Cache和数据Cache设计。
从调查结果来看,完成了Cache设计的同学回答正确率远远高于另一部分同学,他们认为实验有助于加深他们对这一知识点的理解与掌握,并且效果明显。
在Hennessy和Patterson推出了《计算机体系结构:量化分析方法》[1]这一经典教材后,量化研究方法已经成为当前计算机体系结构教学和相关研究所采用的基本方法。这进一步增加了计算机体系结构实验的重要性,学生通过实验掌握性能数据的收集和分析方法。因此,加强实验建设,充分发挥实验作用已经成为高水平计算机体系结构课程建设必须完成的重要任务。
作者简介:沈立,男,副教授,研究方向为计算机系统结构、编译技术、虚拟化技术;张春元,男,教授,研究方向为计算机系统结构;王志英,男,教授,研究方向为计算机系统结构。
目前进行体系结构实验主要有软件模拟和硬件仿真两种形式,虽然二者在功能上基本等效,但由于抽象程度不同,它们所反映出的实现细节也不相同。以Cache子系统设计实现为例,无论是软件模拟还是硬件仿真都可以反映出valid bit和dirty bit等控制信息所占用的存储容量;而在动态指令调度的相关实验中,虽然通过两种方法都能够得到动态调度带来的性能加速,但硬件仿真方法能够更准确地反映出实现该机制所需的开销。
笔者从以下三个方面介绍在该课程实验教学方面所作的工作:首先,在分析该课程各知识点的特点以及其是否适合进行实验的基础上,我们设计了15个实验模块;其次,探讨了如何为不同培养类型和知识结构的学生选择合适的实验模块,以及在组织和实施实验教学方面采取的措施;第三,提出若干值得思考的问题。
2 课程知识点分析
在进行实验教学时,应针对不同的教学目标采取不同的实验模式。一般说来,对于那些以理解掌握成熟的模型、协议、算法等为主要目标的知识点,如Cache一致性协议,往往以验证性实验为主;而对于那些以熟练使用某种方法解决实际问题为主要目标的知识点,如Cache的结构和优化方法,往往以设计性实验为主。
下面以我们正在使用的教材[2]为主,结合国内外其它有影响力的教材[1,3-4]分析体系结构课程各个知识点的特点,深入探讨适合这些知识点的实验方式。
绝大部分体系结构教材的内容都可以被划分为基本概念、指令系统、流水线技术等8个章节[5]。当然,其中部分教学内容不可避免地会与其他课程重合,如操作系统课程会介绍虚存的相关知识,计算机原理课程会系统介绍I/O的相关知识点,并行程序设计的相关课程中会系统介绍同步、同时多线程、集群等有关知识点。在体系结构课程的教学过程中,这些重叠的知识点往往会根据实际情况略讲或不讲。
表1中列出了各章节中适合开设实验的各个知识点以及可以开设的实验类型。表中所列出的知识点粒度较粗,如指令级并行技术就被归结为硬件方法与软件方法两类,因为所设计的各种技术具有相似的特征。
在进行实验前,学生除了学习相关知识点外,还必须熟练掌握有关实验工具使用方法。不同的实验方法需要掌握不同的实验工具,包括软件模拟器、EDA工具、FPGA开发板等。通过其他课程的学习,学生已经掌握了全部或部分工具的使用方法,但从体系结构课程建设的角度出发,我们还是将其视作可以进行实验的知识点。当然,也有些教材[6]较多地采用验证的方式进行实验。
3 课程实验建设
从上节的分析不难看出,指令集、流水线和指令级并行、Cache、多处理机是体系结构课程教学的重点,因此课程实验也主要围绕这些内容进行。我们选择32位DLX指令集作为实验对象,主要原因在于:DLX是典型的RISC指令集,指令格式规整、简洁,且具有开源的编译器(含库)、模拟器等软件工具。
3.1 实验模块设计
我们设计的15个实验模块,覆盖了流水线设计、指令级并行、Cache的设计与优化等计算机体系结构实验的经典内容,如表2所示。除此之外,我们还专门设计了与指令集设计与优化有关的模块。至于Cache一致性、I/O和并行程序设计方面的内容,没有设置相关的实验,因为Cache一致性以验证为主,设计实现工作量太大,更适合作为创新实验,而其它内容的实验一般在“计算机原理”、“微机原理”、“并行程序设计”等课程内完成。
这些实验分别对应指令集设计与优化(模块2、4、14)、DLX整数流水线(模块6~9)、指令级并行技术(模块10~13)、Cache子系统(模块15)。此外,为了使学生熟悉实验工具和环境的使用,我们还专门设置了3个实验模块(1、3、5)。
根据难度不同,也可以将这些实验分为基础实验和提高实验两类。前9个模块为基础实验,主要围绕着如何设计并实现一个DLX整数流水线、实现相关的软件工具、以及如何进行仿真验证。后6个模块为提高实验,实现各种提高流水线性能的指令级并行技术。
表2中列出的不少实验模块都可以在FPGA上进行,包括模块2、8~11、13、15,使学生可以更好地理解软硬件技术在实现开销和性能上的优劣。此外,还有一些模块(如4、12、14)也强调了对软件工具链的使用和修改,有助于学生更全面深入地理解CPU设计所需完成的全部工作。
3.2 组织与实施
不同实验模块的难度以及完成所需时间也不相同,表2的数据可用作组织实验教学时的参考。
教学时既可以选择全部15个模块,也可以选择部分模块。究竟如何选择,取决于具体的教学目标以及用于实验的学时数。例如,若需实现一个DLX整数流水线并进行硬件仿真,可以选择模块6~9,需要8~16个学时;若仅需了解DLX整数流水线的工作原理和基本指令调度方法,选择模块1即可,这需要2~4个学时。
学生在进行实验时也可以采用不同的组织形式。例如,我们就将学生分组进行实验,每组1~3人不等。除了完成基本实验外,每组还必须完成6个提高实验中的一个。各组的成绩主要根据完成情况给出,若仅完成基本实验,成绩为C或D;若还完成了提高实验,成绩可以达到A或B。未完成基本实验或完成质量不高的小组就不必再进行提高实验了。
4 若干思考
在实验教学的组织与实施过程中,我们也发现了以下一些值得思考的问题,这些问题也可以视作教学改革的方向。
4.1 以实验教学代替课堂教学
让学生在实验过程中学习、理解体系结构课程中的一些知识点,其效果可能会比直接进行课堂教学更好。因此,能够以实验教学代替课堂教学是这里要探讨的第一个问题。
以Tomasulo算法为例,这是一种经典的动态指令调度策略。为了生动地描述该方法的效果,几乎所有的教材或是课件都会给出如图1所示的时序图,图中清晰地描述出每个时钟周期各指令、功能单元、寄存器、保留站的状态。在讲授记分牌时也有类似的情形。
图1中的时序数据既可以根据模拟器的输出直接得到,也可以通过手工推导得出,显然前者的效率更高。不过,既然都是生成时序图,也可以考虑由学生借助模拟器等工具获得时序数据并进行分析。
这样,在讲授这部分内容时,可以采用下面的形式:先用20~30分钟介绍支持该算法的流水线结构;然后借助模拟器的输出选择性地介绍几个时钟周期下流水线的状态,每个状态介绍占用3~5分钟;余下的时间由学生自行利用模拟器进行深入学习。
4.2 增加实验在考核中的比重
作为一门对实践技能要求较高的课程,体系结构课程的考核成绩通常会同时包含笔试成绩和实验成绩。如何合理划分二者的比例,是一个值得探讨的问题。
加大实验在考核中所占的比重,可以督促学生重视实验并亲手完成实验,有利于取得更好的实验效果。但受到实验通常会分组进行,不同小组可能会互相借鉴,实验检查方法主观性强、花费时间长等因素,现有的实验考核方法可能无法准确评估一个学生的完成情况,以及对所要求技能的掌握和熟练程度。
我们目前采取的方法是将一部分实验内容作为笔试试题,如果没有真正参与到实验过程中,很难回
答正确。但这只是一种初步的策略,如何才能比较准确地考核学生的实验完成情况,尚需进行系统的研究与探讨。
5 结语
根据我们对体系结构课程各知识点的理解与分析,我们围绕着指令级结构、流水线、指令级并行技术、Cache等知识点设计了15个实验模块。这些模块大致可以分为三个层次:实验工具和环境的熟悉与掌握、基本实验和提高实验,可以根据教学目标的需要选择不同的实验模块组织教学活动。
上面提到的各实验模块的教学目的、要求、环境、步骤等细节已经在我们编写的《计算机体系结构实验》教材[7]一书中进行了详细介绍。有些学校可能没有专门开设体系结构课程,而是将相关知识放在“计算机原理”、“计算机组织与结构”或类似的课程中学习,本文所介绍的内容也可以用作这些课程实验建设的参考。
在接下来的教学活动中,我们还将根据情况增加与多核体系结构有关的实验模块。
参考文献:
[1] John L. Hennessy, David A. Patterson. Computer Architecture: A Quantitative Approach[M]. 4th Ed. San Francisco: Morgan Kaufmann, 2007.
[2] 王志英,张春元,沈立,等. 计算机体系结构[M]. 北京:清华大学出版社,2010.
[3] 张晨曦,王志英,沈立,等. 计算机系统结构教程[M]. 北京:清华大学出版社,2009.
[4] 郑纬民,汤志忠. 计算机系统结构[M]. 北京:清华大学出版社,2005.
[5] 张晨曦,王志英,刘依,等.“计算机系统结构”课程内容体系的研究[J]. 计算机教育,2009(20):57-60.
[6] 张晨曦. 计算机体系结构实验教程[M]. 北京:清华大学出版社,2010.
[7] 沈立,肖侬,王志英. 计算机体系结构实验[M]. 北京:清华大学出版社,2010.
Experiments Establish for Computer Architecture
SHEN Li, ZHANG Chunyuan, WANG Zhiying
(School of Computer, National University of Defense Technology, Changsha 410073, China)
Abstract: Parallel computer is the highest point of information technology. How to combine the advantages of kinds of parallel systems structure: the shared memory and distributed memory and explores a new parallel system structure and how to take full advantage of the resource and processing ability of computer have always been the research focus in parallel computer field. Computer virtualization technology can conduct abstract and unified management to resources of physical computers with the advantage of flexible. The paper explores the application of computer virtualization technology, new type parallel computer system structure and the technology idea of taking full advantage of parallel computer resources.
关键词:并行计算机;计算机体系结构;虚拟化技术;虚拟机
Key words: parallel computer;computer architecture;virtualization technology;virtual machine
中图分类号:TP316文献标识码:A文章编号:1006-4311(2010)24-0170-02
1并行计算机发展进程中存在的两个问题
并行计算机是指能够支持并行算法的计算机。并行计算机的处理能力与存储能力比一般的个人计算机强大得多,因而成为信息技术领域的制高点。各主要信息技术强国都举全国之力,在该领域展开了激烈的竞争,以抢占制高点,争夺信息领域的主动权。尽管并行计算机技术发展迅速,推广应用也很普及,但是,在并行计算机的发展与应用领域还存在着两个主要问题,一是并行计算机体系结构发展滞后,二是并行计算机的资源利用率还比较低。这两个方面的问题制约着并行计算机系统规模与性能的进一步提高,也制约着并行计算机的推广应用,亟待解决。
当前,并行计算机体系结构主要有两大发展方向,一是以SMP(Symmetric Multiprocessor)为代表的共享存储体系结构,二是以工作站机群COW(Cluster Of Workstation)为代表的分布存储体系结构。共享存储体系结构的优点是易于编程、整机效率高,缺点是可扩展性差、成本高昂;分布存储体系结构的优点是可扩展性强、成本低廉,缺点是管理和编程困难、整机效率较低。可见这两种主流的并行计算机体系结构各有优缺点,而且彼此之间互补性很强。这两种并行体系结构主导着并行计算机的发展方向,但是由于其各自的缺陷都很明显,因而也制约着并行计算机的进一步发展。如何结合二者的优点,克服彼此的不足,设计一种既易于编程和管理,整机效率得到充分发挥,又具有良好的可扩展性和成本优势的并行计算机体系结构,一直是业界的研究热点之一,研究人员付出了很多努力,但是,成效不够显著。其原因是难以有效地融合两种体系结构的优势特征。
并行计算机的研发与生产耗费巨大,一般是为了某类特定的高强度计算或大规模数据处理应用而研发和生产,并且一般是针对峰值需求来设计并行计算机的系统性能。但是,在实际应用中,并行计算机往往并没有得到充分利用。原因有二,一是高强度的计算和处理需求并不是很饱和,二是应用需求并不总是处于峰值状态。因此,为了充分利用并行计算机的资源,发挥其效益,必须解决并行计算机的综合利用问题。
2虚拟化技术及其主要优势
计算机虚拟化技术是指对计算机系统资源进行抽象与管理、使用的技术总称[2]。计算机虚拟化技术通过软件技术或者软硬件相结合的技术,在计算机硬件之上构建一个软件层,称为虚拟机监控器VMM(Virtual Machine Monitor),VMM的功能是对底层的物理资源进行抽象,屏蔽物理资源的差异性,使其对上层呈现为具有统一特征和访问接口的虚拟资源集合。从而在物理机器之上构建虚拟的计算环境,使得指令在虚拟的环境中执行,而不是直接在物理平台上执行。根据VMM所处的层次不同,虚拟化技术又分为系统级虚拟化技术和进程级虚拟化技术。系统级虚拟化技术是指VMM直接构建于物理机器之上,VMM能够模拟整个计算机系统环境,在VMM之上能够构建多个虚拟机VM(Virtual Machine),每个VM都是一个完整的系统环境,能够运行包括操作系统在内的整个软件栈。进程级虚拟化技术是指VMM构建于操作系统之上,其功能是模拟进程运行环境,VMM构建的每个VM只能支持单个进程的运行。本文主要讨论和利用系统级虚拟化技术,下文简称为虚拟化技术。
虚拟化技术具有两个显著的优势。一是虚拟化技术能够对物理资源进行抽象,因而能够屏蔽物理资源的差异性,甚至是分布式特性,使物理资源对上层软件呈现为统一的资源视图,提供统一的资源访问接口。利用虚拟化技术就能够对底层的物理资源进行统一管理和进行灵活的、细粒度的划分和调配使用。二是虚拟化技术能够对指令的执行进行实时监控,因而能够捕获敏感指令的执行,进而能够对敏感指令的行为进行审计。所以,利用虚拟化技术就能够实现包括系统安全策略在内的一系列系统管理意图,并且使得这些特殊的管理意图对上层软件透明。
3利用虚拟化技术解决并行计算领域的两个问题
3.1 利用虚拟化技术构建新型的并行计算机体系结构利用虚拟化技术,可以构建新型的并行计算机体系结构,从而结合共享存储并行结构和分布存储并行结构的优势。可以通过两种技术思路来构建新型的并行计算机体系结构,一是通过虚拟机集群的方式,二是通过分布式虚拟机监控器的方式。
关键词:高级计算机系统结构,流水线技术,指令系统
1流水线技术
1.1 流水线的基本概念
计算机系统结构的国际权威美国Stanford大学的John L.Hennessy和UC Berkely大学的 David A.Paterson在其名著《Computer Architecture-- A quantitative approach》一书别指出:“流水线过去是,而且将来也很有可能还是提高计算机性能的最有效技术之一”[1]
流水线技术(Pipeline technology)是将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。流水线中的每个子过程及其功能部件称为流水线的级或段(pipeline stage),流水线的段数称为流水线的深度(pipeline depth),段与段相互连接形成流水线。
1.2 流水线的分
从不同的角度和观点,可以把流水线分成多种不同的种类:
1.单功能流水线(single-function pipeline):只能完成一种固定功能的流水线
2.多功能流水线(multi-function pipeline ):流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
3.静态流水线(static pipeline):在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
4.动态流水线(dynamic pipeline):在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
5.部件级流水线(component level pipeline):把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。
6.处理机级流水线(processor level pipeline):把解释指令的过程按照流水方式处理。
7.处宏流水线(macro pipeline):由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
8.标量流水处理机(Scalar pipeline processor):处理机不具有向量数据表示,仅对标量数据进行流水处理。
9.向量流水处理机(vector pipeline processor):处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
10.线性流水线(linear pipeline):流水线的各段串行连接,没有反馈回路。
11.非线性流水线(non-linear pipeline):流水线中除有串行连接的通路
外,还有反馈回路。
12.顺序流水线(order pipeline):流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的。
13.乱序流水线(out-order pipeline):流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成(从输出端流出)。
1.3流水线的相关与冲突
相关(correlation)是指两条指令之间存在某种依赖关系。如果两条指令相关,则他们就有可能不能在流水线中重叠执行或者只能部分重叠执行,
1. 结构相关(structure correlation):当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时将产生“结构相关”;
2. 数据相关(data correlation):当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”;
3. 控制相关(control correlation):当流水线遇到分支指令或其他会改变PC值的指令时就会发生“控制相关”。
流水线冲突(pipeline conflict)是指对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。流水线冲突有三种类型:
1.结构冲突(structure conflict):因硬件资源满足不了指令重叠执行的要求而发生的冲突。解决方法:流水化功能单元;资源重复;暂停流水线。
2.数据冲突(data conflict):当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
3.控制冲突(control conflict):流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。
2.指令系统
2.1 指令系统的基本概念
[2]指令系统(instruction system)是指机器所具有的全部指令的集合 ,它反映了计算机所拥有的基本功能。在计算机系统的设计和使用过程中 ,硬件设计人员采用各种手段实现指令系统 ,而软件设计人员则使用这些指令系统编制各种各样的系统软件和应用软件 ,用这些软件来填补硬件的指令系统与人们习惯的使用方式之间的语义差距。计算机指令系统分为两类:复杂指令系统(CISC)和精简指令系统(RISC)
2.2 复杂指令系统 ( CISC )
2.2.1CISC的产生
早期的计算机 ,存储器是一个很昂贵的资源 ,因此希望指令系统能支持生成最短的程序。此外 ,还希望程序执行时所需访问的程序和数据位的总数越少越好。在微程序出现后 ,将以前由一串指令所完成的功能移到了微代码中 ,从而改进了代码密度。此外 ,它也避免了从主存取指令的较慢动作 ,从而提高执行效率。在微代码中实现功能的另一论点是: 这些功能能较好的支持编译程序。如果一条高级语言的语句能被转换成一条机器语言指令 ,这可使编译软件的编写变得非常容易。此外 ,在机器语言中含有类似高级语言的语句指令 ,便能使机器语言与高级语言的间隙减少。这种发展趋向导致了复杂指令系统 ( CISC )设计风格的形成 ,即认为计算机性能的提高主要依靠增加指令复杂性及其功能来获取。
2.2.2 CISC 的主要特点
CISC指令系统的主要特点是:
(1)指令系统复杂,具体表现在以下几个方面:
①指令数多 ,一般大于 100条。
② 寻址方式多 ,一般大于 4种。
③ 指令格式多 ,一般大于 4种。
(2)绝大多数指令需要多个机器时钟周期方可执行完毕。
(3)各种指令都可以访问存储器。
2.3 精简指令系统 (RISC)
2.3.1RISC的产生
由于CISC技术在发展中出现了问题 ,计算机系统结构设计的先驱者们尝试从另一条途径来支持高级语言及适应 VLSI技术特点。1975年IBM公司 John Cocke提出了精简指令系统(RISC)的设想。到了1979年,[4]美国UC Berkely大学由 Patterson 教授领导的研究组,首先提出了RISC这一术语 ,并先后研制了 RISC-Ⅰ和 RISC-Ⅱ计算机。1981年美国的Stanford大学在Hennessy教授领导下的研究小组研制了MIPSRISC计算机 ,强调高效的流水和采用编译方法进行流水调度,使得RISC技术设计风格得到很大补充和发展。到了90年代初,IEEE的Michael Slater 对于RISC的定义作了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行 ,并使优化编译器能生成优化代码。
2.3.2 RISC 的主要特点
RISC为使流水线高效率执行 ,应具有下述特征:
(1)简单而统一格式的指令译码;
(2)大部分指令可以单周期执行完成;
(3)只有 LOAD 和 STORE 指令可以访问存储器;
(4)简单的寻址方式 ;
(5)采用延迟转移技术 ;
(6)采用 LOAD 延迟技术。
RISC为使优化编译器便于生成优化代码 ,应具有下述特征:
(1)三地址指令格式 ;
(2)较多的寄存器 ;
(3)对称的指令格式。
2.4 RISC和CISC 的比较
2.4.1不同的实现方式
两者的实现方式是不一样的。对于CISC来说,采用的存储结构是比较易于实现的数据和指令合一的方式。采用这种存储结构的原因是CISC具有比较高级的指令语义,同时具有比较长的执行指令的周期。而对于RISC来说,其采用的存储结构是数据和指令相互分离的结构,这是因为其采取了逻辑的硬布线方式,同时对于指令的读取比较频繁。
2.4.2不同的编译器要求
如果时钟频率相同,同时失去编译器,那么RISC与CISC的体系结构的计算机的效率其实并没有差别。而且相对来说,RISC体系结构更加需要编译器对指令的优化。CISC具有很大的市场,同时技术的发展也已经相当成熟。RISC体系结构并不能够直接取代CISC的体系结构。固然,RISC体系结构具有很强的竞争力,但是其逻辑硬布线到目前为止并没有统一的规定。RISC也并不是传统意义上的概念,现代的RISC也具有很多明显的变化,主要表现在:具有分支预测的功能、能够超标量执行,同时还能够乱序执行指令。
3.计算机系统结构的发展势
3.1多线程体系
所谓的多线程技术(multithreading technology)[5],是一种结合了冯诺依曼的控制流模型以及数据流模型的新兴技术。它能够进行现场的指令级交换以及顺序调度。一般说来,在线程中,如果其中一条指令执行,那么相应后面的指令都会相继执行。线程可以成为计算机中调度执行的基本步骤,同时计算机中可以同时并发运行许多个线程。这样做的好处是:提高了并行度的效果,同时又能相互隐藏延迟的操作。多线程有着许多优点,同时也有一些不足之处。它的优点是能够在很大程度上提高整个处理器的利用效率,在整体上使计算机的性能提高到一个新的档次。多线程技术能很好地隐藏几乎所有的延迟,这是诸如分支预测错误延迟技术等其它技术所不具备的。因此,多线程技术能够在计算机微处理器的结构中具有很高的应用价值。
3.2 高性能计算
[6]高性能计算(high performance computer,HPC)是计算机集群系统,它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题。高性能计算方法的基本原理就是将问题分为若干部分,而相连的每台计算机均可同时参与问题的解决,从而显著缩短了解决整个问题的计算时间。解决大型计算问题需要功能强大的计算机系统,随着高性能计算的出现,使这一类应用从昂贵的大型外部计算机系统演变为采用商用服务器产品和软件的高性能计算机集群体。因此,高性能计算系统已经成为解决大型问题计算机系统的发展方向。其中,混合体系统结构已成为HPC发展趋势。
4.结束语
目前计算机的发展十分迅速,已经在各个方面彻底改变了现代人们的生活方式和工作方式,人们的沟通以及工作的效率得到了很大程度上的提高。本论文简要介绍了计算机流水线技术,指令系统 ,然后提出了两种指令系统(RISC和CISC)并对比了两种不同的体系结构,比较了这两种体系结构中存在的问题,进而提出计算机体系结构的发展趋势。
参考文献:
[1] 郑炜民 汤志忠等译John L.Hennessy, David A.Paterson 计算机系统结构:一种定量方法(第二版)[M] 北京:清华大学出版社,2002
[2] 谈怀江 计算机指令系统的变化及发展 孝感学院计算机科学系 [J],2014
[3] 李成铮,魏立津 计算机体系结构的发展及技术问题探讨 华中科技大学文华学院 [J],2008
[4] 刘超.计算机系统结构.[M]中国水利水电出版社,2005.
关键词:离散数学;计算机科学;应用研究
1.离散数学在计算机数据结构中的应用
计算机科学中,计算机问题的解决往往需要借助数据机构的帮助,从而建立严格的数字模型。数据结构在计算机科学中发挥着重要的作用,它使计算机科学的数据模型得以建立,明确操作对象,并对操作对象进行分析,构建数字语言与计算机语言的契合点。计算机科学中,计算机数据结构主要分为树形结构、网状结构、现行结构以及图状结构,不同的结构有不同的数据结构形式,发挥着不同的作用。离散数学在计算机数据结构中的应用,能够为计算机处理员工绩效报酬以及相关事项提供有效帮助。
2.离散数学在计算机数据库中的应用
计算机数据库技术是进行数据处理和存储的重要技术,在社会生产生活的多个领域都有着广泛的应用。计算机数据库技术是计算机科学中的一项重要技术。离散数学在计算机数据库中的应用,主要是通过笛卡尔积这一重要理论有效地帮助数据库的建立。另外,离散数学中的理论也应用于数据库中的表结构设计以及域间关系,使数据库能够更加完善,能够在应用中具备更高的使用价值,提升数据库的整体质量。
3.离散数学在人工智能中的应用
人工智能的实现需要依赖于数学理论和数学推理,从而使人工智能能够通过逻辑推理产生作用。离散数学的逻辑推理在人工智能中的应用较为广泛,使人工智能能够实现正常的运行传导。离散数学在人工智能中的应用,体现为一种数学的分析过程和处理过程。离散数学中的布尔代数理论是一种数学逻辑语言,能够帮助人工智能实现逻辑的设计,帮助人工智能建立逻辑运转体系,促进人工智能实现智能化。
4.离散数学在计算机体系结构中的应用
在计算机的体系结构中,为了确保整体体系的结构性与有效性,需要进行科学的指令吸引设计,并对指令吸引设计进行内容的改进和完善。指令吸引设计能够通过操作码以及地址码来操作地址信息和相关的信息,实现指令的格式化。离散数学在计算机体系结构中的应用,应用了哈夫曼压缩概念进行问题的解决。哈夫曼压缩概念是对数学概率的加工利用,当事件发生的概率较低时,哈夫曼概念使用较长的位数进行相应的处理,当事件发生的概率较大时,哈夫曼概念则使用较短的位数进行相应处理。在应用中,哈夫曼算法能够建立哈夫曼树,从而使哈夫曼树发挥作用,对系统指令中的数据频度进行统计和分析,并进行适当的排列。另外,排列频度结点通过的序列则构成了哈夫曼编码,哈夫曼编码能够与指令编码相结合,最后达到使用目的。
5.离散数学在计算机科学中应用的发展趋势
在未来的发展过程中,计算机科学的硬件基础将会逐渐得到进步,离散数学的数学理论知识也将在计算机科学中得到更为广泛的应用,促进计算机科学实现更快更好的发展。离散数学的逻辑推理在计算机科学中的应用帮助着计算机的软件设计。离散数学的关联词概念则能够在计算机科学内用于二进制数据的运算。另外,离散数学在计算机科学中的应用,也通过数学集合论概念用于数据结构以及算法分析,帮助计算机数据库的建立和结构设计,使计算机数据库技术能够得到有效的进步发展。此外,离散数学中的布尔代数理论使计算机的网络通信系统得以建立,使计算机科学的人工智能得以实现。离散数学的逻辑推理理论使人工智能能够实现数学的分析和处理活动。离散数学在计算机科学中的应用会越来越广泛,在计算机科学的系统建立、逻辑设计等各方面都会充分发挥作用,实现与计算机科学的良好结合。在计算机科学中,人工智能会成为设计、发展和创新的一项重要理论,支撑着计算机科学的进步发展。
离散数学以离散性的结构以及相互间的关系作为研究对象,其在计算机科学中的应用,能够有效地指导数据库的建立,改进和完善计算机体系结构,提高计算机的运行效率与运行质量,未来应更加注重离散数学在计算机科学中的应用。
参考文献:
关键词:计算机硬件;集成电路设计;教学改革
信息系统工程教育论坛我院计算机科学与技术本科专业始建于1987年,历经20年的发展,为油田及相关企事业单位培养了大量的计算机应用人才。“具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用”是本专业的培养目标。基于这个培养目标,结合目前计算机硬件技术最新发展现状及趋势,提出本硬件系列课改方案。
一、硬件系列课改的目的及意义
当前,计算机在信息社会中充当了重要角色,也是发展最为迅速的一门学科。随着这门学科的不断发展,目前,计算机核心技术愈来愈集中在集成电路芯片设计和软件设计这两项技术中,其中CPU和OS设计技术是最核心的两项技术,特别是高性能计算机技术一直是衡量国家实力的一个重要标志。在硬件系列课程里,培养学生CPU及相关硬件的设计能力,培养学生自主创新并能够设计出拥有自主知识产权的计算机部件的能力,是当前计算机硬件课程重要的改革方向,也是目前社会迫切需要的计算机硬件人才[1]。因此,适应当前计算机硬件技术的发展及社会对计算机硬件人才的需求,及时调整硬件系列课程的培养方向,既有利于学生及时掌握最新的计算机硬件技术,又有利于学生及时把所学知识转化为社会生产力,对扩大我院学生就业,树立我院计算机科学与技术专业学生良好的社会形象意义深远。
二、硬件系列教学的国内外发展现状及趋势
由于我国的制造业比较落后,一直以来,计算机硬件的核心技术未能被国内掌握。相应地,在计算机硬件教学中,像计算机组成和计算机体系结构等重要硬件课程,传统上仅仅以讲授、分析原理为主,且内容不能适应现代计算机技术的发展[2]。国外一些知名大学非常重视计算机硬件的教学,美国的许多高校本科计算机专业中都无一不是安排了CPU设计方面的课程和实验内容。例如麻省理工学院计算机专业的一门相关课程是《计算机系统设计》,学生在实验课中,须自主完成ALU、单指令周期CPU、多指令周期CPU乃至实现流水线32位MIPS CPU和Cache等的设计。Stanford大学计算机系的本科生也有相似的课程和实验。随着计算机硬件技术的不断发展,国内开展硬件设计技术的条件已逐渐成熟,这主要得益于计算机硬件发展中的两个重要技术,一是大规模可编程逻辑器件CPLD/FPGA的成熟,可以在一个芯片中通过编写硬件描述语言设计CPU和全部的相关硬件电路,减轻了硬件芯片间连接的复杂性,同时消除了硬件制造的限制。二是硬件描述语言的成熟,以VHDL和Verilog VHDL语言为代表的硬件描述语言,可以通过编写程序的方式来描述极其复杂的硬件电路逻辑,大大降低了以前采用手工方式设计硬件电路的复杂性。国内的一些知名大学,在最近几年里,也相应地增加了硬件电路设计在教学中的比重,据我们了解,清华大学、电子科技大学、哈工大、哈理工等一些学校,已经修改了计算机组成原理及计算机体系结构等方面的课程教学内容,把利用CPLD/FPGA和硬件描述语言设计CPU及其相关硬件电路作为重要内容加入到课程体系里,取得了良好的教学效果,大大加强了学生对计算机工作原理的理解及计算机硬件的设计能力,逐步实现了与发达国家高校计算机本科教育的接轨。
三、目前我院硬件系列教学现状及不足
计算机科学与技术本科专业硬件系列主要课程设置始于20年前,期间虽经过部分调整,但基本教学内容依然延续20年前的知识体系。按授课先后次序排列,这些课程包括:《数字逻辑与数字电路》、《计算机组成原理》、《数字系统设计自动化》、《计算机体系结构》、《单片机原理及应用》、《嵌入式系统》、《硬件课程设计》等7门。基于当前硬件课程系列教学现状,我们认为存在以下的不足:1.从整体上看,硬件系列教学内容过于强调基本原理和基本方法,缺少能够验证原理、实际实现这些原理及方法的手段,导致学生缺少动手能力,对原理和方法认识模糊,会说不会做的现象比较严重,创新能力较弱。2.《数字逻辑与数字电路》和《数字系统设计自动化》,这两门课之间存在较大的联系,在内容上存在承上启下的关系,前者是讲述数字电路的基本概念、组合及时序电路的传统分析设计方法,后者则介绍组合及时序电路的现代分析设计方法,基于目前的教学实际情况,可以合并成一门课讲述。3.《计算机组成原理》和《计算机体系结构》是计算机科学与技术本科专业非常重要的两门课,通过这两门课的学习,应使学生能够设计简单的CPU及相关的硬件电路,从而加深对基本原理、基本方法的理解,增强实际动手能力。基于现在的教学内容及教学手段还无法达到上述目的。4.《单片机原理及应用》和《嵌入式系统》两门课存在较大的内容交叉。这两门课都是讲述特定计算机在控制及嵌入式产品中的应用,《单片机原理及应用》这门课介绍的是8位机MCS-51的原理,《嵌入式系统》这门课介绍的是32位机ARM的原理,鉴于目前嵌入式领域的发展现状及趋势,建议取消《单片机原理及应用》这门课,以避免课程内容重复。5.《硬件课程设计》作为硬件系列的最后一门硬件设计课,学生已掌握了较丰富的软硬件知识,因此应该具备设计较复杂的硬件电路的能力,目前的设计内容较简单并与《数字逻辑与数字电路》课程实验存在一定交叉,建议选择有一定复杂度并较实用的设计内容。从而培养学生综合运用硬件知识及硬件设计能力。
四、硬件系列教学新课改方案
针对我院计算机科学与技术专业的实际情况,在保证总的硬件教学学时不变的前提下,对硬件系列教学提出如下建议:1.课程合并:《数字系统设计自动化》是计算机组成原理等的先修课,为保证能及时开课,同时该课和《数字逻辑与数字电路》这门课有密切的联系,合并为一门课,仍称为《数字逻辑与数字电路》,并适当增加学时,建议在大二上学期开课,取消《数字系统设计自动化》这门课。2.《计算机组成原理》:这门课改为《计算机组成及设计》,增加CPU及相关硬件电路设计内容,在讲清楚组成原理的基础上,以设计为重点,建议在大二下学期开课。 3.《计算机体系结构》:适当增加设计内容,原学时保持不变,建议在大三上学期开课。4.《单片机原理及应用》:本课程取消,鉴于目前嵌入式系统涉及软硬件知识较多,难以在一门课程中全面系统学习,因此另开设一门《嵌入式软件开发》课程,重点讲述如何设计编写嵌入式软件程序,建议在大三下学期开课。5.《嵌入式系统》:这门课作为《嵌入式软件开发》的先修课,重点讲述嵌入式系统的基本概念及方法、ARM处理器的硬件工作原理、接口、汇编语言等,而相关操作系统及其程序设计等知识暂不涉及,建议在大三上学期开课。6.《硬件课程设计》:在设计题目中,引入嵌入式系统、FPGA及计算机组成等知识,适当增加设计的综合性和复杂性,建议在大四上学期开课。基于新的硬件系列课程体系,能够有效理顺课程之间的先后关系,并把硬件课程均匀分散到大学四年的学习中,同时对重要的课程及相关的知识进行了加强,例如数字电路设计贯穿在整个硬件系列课程中;舍弃了过时的技术,增加了新技术的份量,例如去掉了单片机,加强了嵌入式系统。因此,我们认为:调整后的硬件系列课程是较合理的,它吸收了当前先进的硬件设计技术,保证了知识的实用性,有一定的前瞻性。
五、结束语
高等教育是为学生提供专业技能和生存本领、服务社会的最后一站,教学内容及方法直接关系到学生的未来发展。通过不断教学改革,保持教学的先进性和实用性一直是高教课改的目标之一。通过这次课改,理顺了我院硬件系列课程的教学关系,增强学生未来服务社会的竞争力,因此很有实际意义。
作者:李军 崔旭 李建平 单位:1.东北石油大学 2.大庆市萨东第二小学
参考文献
这个专业以计算机为基础的专业,和纯粹的计算机专业还有很大的不同,它偏向于电子电路,信息处理这方面。
计算机学科的特色主要体现在:
理论性强,实践性强,发展迅速按一级学科培养基础扎实的宽口径人才,体现在重视数学、逻辑、数据结构、算法、电子设计、计算机体系结构和系统软件等方面的理论基础和专业技术基础,前两年半注重自然科学基础课程和专业基础课程,拓宽面向。后一年半主要是专业课程的设置,增加可选性、多样性、灵活性和方向性,突出学科方向特色,体现最新技术发展动向。
(来源:文章屋网 )
关键词:课程群;计算机硬件;农业院校;人才培养
当前我国很多高等农业院校计算机专业已逐渐转变为软件工程和计算机科学与技术两个专业方向。然而,在教学实践中过分强调软件与应用,计算机硬件方面的教学却相对薄弱,导致学生缺乏计算机体系结构、计算机组成与结构等硬件方向的基本能力。即,计算机教育上存在着“重软轻硬”的倾向。
1计算机硬件教学存在问题分析
当前,农业院校计算机科学与技术本科专业中,计算机硬件与结构方向的核心和普通知识点一般体现在以下几门课程中:数字逻辑、计算机组成原理、微机原理、微机接口技术、汇编语言、计算机系统结构、计算机系统结构、嵌入式系统等。在教学过程中,各门课程相互之间内容衔接较多、重复之处也比较多,而某些知识点缺乏前导、造成断层。教师一般按照自己的教学大纲和计划对各门课程内容进行划定,而不是以计算机系统的整个体系结构为主线,造成缺乏系统性和科学性,难以实现学生从大一到大四的完整体系,使知识的连贯性变差;而且计算机硬件技术,例如:处理器技术、存储技术及网络技术等每天都有新的进展和变化,这些变化很难及时地反映到计算机硬件相关教材和实验设备上,因此难以体现发展中的新技术和教材之间的关联。由此造成,学生对这些课程普遍存在没有学习兴趣,教师上课缺乏激情的情况[1]。
因此,学生在掌握计算机硬件基本原理的基础上,如何结合计算机硬件技术的发展,并充分体现硬件技术的系统性和实践性,是当前农业院校计算机硬件教学所面临的重要问题;也是真正实现计算机科学与技术专业培养目标所必须解决的问题。
2计算机硬件课程群
为了解决以上存在的问题,本文提出构建计算机科学与技术专业硬件课程群。课程群方法是近年来高等院校课程体系建设实践中出现的一项新的课程开发技术。其基本思想是把各门课程内容联系紧密,内在逻辑性强,属同一培养能力范畴的同一类课程作为一个课程群组进行建设,从技能培养目标层次有效的把握课程内容的分配、实施、保障和技能的实现。课程群体系的进程如图1所示。
其优势在于以下3个方面:
1) 内容具有科学性。课程群各组成课程之间关系密切、逻辑性强,知识具有递进性,便于组织教学。
2) 实验室高效利用。课程群使计算机专业实验室可以进行大型的跨课程综合型实验,不仅在使用人次上,更重要的是在每次使用的效率上将得到极大的提高。
3) 教学具有可控性。课程群所有课程的教与学透明度提高,教学中的随意性和非计划性减少,可以有效的提高教学的可控性[2]。
3计算机硬件课程群构建的主要内容
本课程群的构建主要针对我校2010级本科教学人才培养实施方案。构建以下3个方面:计算机硬件课程群课程建设,综合型实验与课程设计设置和课程群内容的更新[3]。
3.1计算机硬件课程群课程建设
课程群的建立包括确定核心课程与选修课程。在课程群设置中,以学科方向和模块为核心,同时与专业培养计划相适应。在设置课程群的时候,打破单一授课的限制,使不同专业教研室的教师根据课程群设置凝聚一起,集中对各门核心课程和选修课程的内容与组织进行系统地规划,避免重复和脱节现象。例如:可以考虑把汇编语言课程和计算机组成原理课程结合,侧重于计算机硬件的五大部件、寻址方式和指令系统。这样有利于把计算机组成原理中介绍的一般性的知识和具体的微机系统联系起来,给学生打下牢固的理论基础;也可将汇编语言、计算机组成原理和微机接口技术3门课程全部联系起来,将计算机硬件基础知识全部融合在一起,提供给学生完善的知识体系[4]。
3.2计算机硬件课程群综合型实验建设
计算机硬件课程群建设中,强调实践教学的重要性。在课程群建设中,不是以单一的课程为单位设计实验,而是按照整个课程群来设计一体化的实验环境与实验内容。可以将汇编语言方向、微机接口方向、计算机组成原理和计算机体系结构等实验有机地结合在一起,创建良好的实验环境,灵活运用实验室、开放式实验室等多种手段培养学生的研究能力与团队精神的教育方法。例如,在计算机组成原理实验中设置了8255、8253等实验,同样在计算机接口实验技术中也有同样的内容,因此,可以考虑整合这部分内容,利用几个接口芯片开发一个小系统,不仅使同学学习了相关接口芯片知识,同时也锻炼了芯片在系统中的应用,建立整机概念等。
3.3课程群内容更新建设
根据计算机学科发展情况,及时、动态地调整课程群内核心课程、选修课程的设置,同时考虑到每一门课程具体内容的设置。让学生要尽可能学习掌握同当前主流技术发展方向联系比较紧密的新技术(如Pentium 的超标量流水线、分离的指令Cache 与数据Cache、指令分支预测技术、Itanium 的EPIC 核心技术),以及计算机新技术发展趋势(如未来处理器技术, 现代网络环境对硬件技术的要求, 64 位微处理器技术)等。
4结语
本方案已经通过相关课程专业教师多次研讨,打破以往独立课程设置方式,初步确立计算机硬件的课程群设置,计算机硬件综合实验设置的方案。该方案如果做进一步的深入研究、探讨与实践,必将对提高计算机专业学生软件和硬件能力的协调起到良好的作用,改变当前高等农业院校计算机专业学生硬件能力偏差的现状,提高其学生的自身综合素质和增强其就业能力。
参考文献:
[1] 唐建宇. 计算机硬件课程教学中的若干问题分析与探讨[J]. 福建电脑,2007(5):188-189.
[2] 刘新平,郑秋梅,孙士明,等. 计算机硬件课程群实验体系的改革与完善[J]. 计算机教育,2008(12):117-119.
[3] 王让定,钱江波,石守东,等. CC2005的计算机学科硬件与结构课程群改革探索[J]. 计算机教育,2008(8):137-138.
[4] 刘全利,黄贤英,杨宏雨. 计算机组成原理课程群建设的探讨[J]. 科技信息,2008(4):9-10.
Discuss on the Computer Hardware Course Group in Computer Science and
Technology Teaching of Agricultural Universities
ZHANG Xi-hai, YU Xiao, WU Ya-chun, WEI Xiao-li
(Engineering college, Northeast Agriculture University, Harbin 150030, China)
处理器带u表示UltraLowVoltage,超低电压版CPU,发热量和功耗比L系列的还要低。则L表示Lowvoltage,指的是低电压版CPU,发热量跟标准版的相比大约只有一半。
中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。
在计算机体系结构中,CPU是对计算机的所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元。CPU是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。
(来源:文章屋网 )
关键词:应用型本科;嵌入式课程体系;教学方法
中图分类号:G434 文献标识码:A 文章编号:1009-3044(2013)36-8340-01
嵌入式是一门从上层应用到底层内核开发的软硬件结合,对综合技术要求较高的技术领域,各高校近年来普遍开设嵌入式方向或专业,我校也已经在计算机科学与技术系设置嵌入式专业。目前我校计算机科学与技术系已经开设的嵌入式课程的前续课程有数字电路,计算机体系结构、计算机组成原理、微机原理与接口技术、程序设计语言I及面向过程程序设计、操作系统、数据结构与算法等。考虑到嵌入式课程建设的连续性、层次性和前沿性的需要,形成了包含嵌入式系统、嵌入式内核编程与驱动开发和嵌入式软件设计在内的嵌入式专业课程体系。下面主要介绍这三门课程的建设。
1 嵌入式课程设置
我系首次开设的嵌入式系统课程是偏硬件系统设计的一门课程,目标是通过对本门课程的学习,使学生了解ARM体系结构,掌握ARM伪操作及伪指令,掌握嵌入式Linux系统的构建能力,包括嵌入式交叉编译环境搭建,bootloader移植,文件系统制作,内核的编译过程;掌握Linux下C与汇编混合编程,同时理解嵌入式系统驱动程序编写思想。
考虑到实际的嵌入式系统设计过程中,对特定的微处理器内部结构的知识要求淡化的同时,对处理器接口知识的要求却在增加。因此,嵌入式系统课程增加了嵌入式系统中常用的接口的基本原理和接口协议部分,学生可以通过本门课程的学习,自己动手搭建定制的嵌入式操作系统,并通过对实际的硬件接口学习及操作,增强学生的嵌入式系统设计的能力。
嵌入式驱动开发要求学生掌握驱动开发方法、开发流程;掌握内核关键数据结构及中断机制等内容,但是由于学时限制,起初开设的嵌入式系统课程,这部分内容仅要求学生掌握驱动设备的类型及驱动开发流程。本次将嵌入式驱动开发部分的内容独立设置为一门课程——嵌入式内核编程与驱动开发,目标是通过学习本门课程,学生能够理解嵌入式驱动开发基本概念、理论和方法;了解嵌入式Linux驱动工作原理,熟悉Linux内核关键数据结构和机制;掌握交叉编译工具的使用和嵌入式驱动开发整体流程。使学生在学完本门课程后,能够自己动手开发驱动程序,并进行内核编程开发。
嵌入式系统经过系统设计和底层开发后,仅是一个具备了硬件、驱动及操作系统的设备,还需要在该系统上开发大量的应用软件,才能称之为有用的受人们欢迎的系统。所以嵌入式系统的软件开发同样重要。起初的嵌入式系统课程仅介绍了Linux下C与汇编混合编程方法,这仅适用于底层开发驱动的要求,但这远远不能满足当今企业对嵌入式软件开发人员的要求。本次将嵌入式软件开发独立设置为一门课程,目标是通过本课程学习掌握Linux常用命令及Linux下C编程及开发流程,掌握Linux操作系统编程关键技术,包括进程控制,多线程编程及网络通信等。使学生在学完本门课程后,能够进行多进程、多线程编程及网络通信编程等功能,实现操作系统应用软件的开发。
嵌入式系统,其前期课程为计算机体系结构,计算机组成原理,微机原理与接口技术;嵌入式内核编程及驱动开发,其前期课程为操作系统,数据结构与算法,嵌入式系统;嵌入式软件设计,其前期课程为程序设计语言I、面向过程程序设计、操作系统,编译原理,嵌入式系统及嵌入式内核编程与驱动开发。
2 教学方法的运用
2.1 嵌入式系统课程
1)嵌入式Linux常用开发工具及GNU工具链生成部分采用案例教学法。通过搭建GNU工具链任务,让学生在完成任务的同时达到熟练掌握常用命令及工具的作用。
2)嵌入式Linux系统的构建部分采用项目驱动法,学生在完成每节的学习后,完成Linux系统构建的一部分功能,最终完成Linux系统构建,通过综合运用以上知识点,自己动手定制一个U盘上的最小系统,实现从U盘启动系统。
3)嵌入式系统基础接口的原理及协议部分,每部分内容都有丰富的案例,由于这部分涉及的内容比较多,采用案例分析法与分组讨论法,通过设置设计型实验项目,让学生先讨论,提出一个可行性方案,并最终在设备上实现各种功能。
2.2 嵌入式内核编程及驱动开发课程
1)Linux设备驱动概述及开发环境构建及硬件基础部分采用案例分析法,理解嵌入式驱动开发的方法; (下转第8354页)
2)Linux内核及内核编程、Linux内核模块、Linux文件系统与设备文件系统部分采用任务驱动法,通过对模块的加载卸载、模块参数和编译模块等任务的操作使学生熟练掌握Linux内核模块的操作;
3)字符设备驱动部分采用案例分析法,了解嵌入式Linux驱动工作原理;
4)并发与竞态、LINUX设备驱动中的阻塞、非阻塞I/O与异步通知、Linux异常处理体系结构部分采用案例分析法进行讲解,熟悉Linux内核关键数据结构和机制。
2.3 嵌入式软件设计课程
每部分都配有相应的任务或项目,各重点知识点都配有案例进行分析,便于学生理解和掌握。具体需要完成的项目包括:Linux下服务器配置项目;简单程序开发项目;多进程及守护进程程序编写任务;管道通信及共享内存任务;生产者消费者项目;NTP协议项目。最终实现一个嵌入式Web应用系统的设计与开发项目。
3 结束语
综上所述,嵌入式课程由原来的一门课程,即嵌入式系统课程,通过教学内容的扩充及调整为三门课程。将课程分为系统设计类课程,即嵌入式系统;底层开发类课程,即嵌入式内核编程及驱动开发;软件开发应用类课程,即嵌入式软件设计。通过综合运用项目驱动教学法、分组讨论法、任务驱动法、案例分析法等教学方法开展教学,引导和激发学生的主动学习和探究意识,引导和激发学生的动手实践意识,达到学以致用。
参考文献:
关键词:移动互联网 云计算 3G 4G
1.移动互联网的发展
在最近几年里,移动通信和互联网成为当今世界发展最快的两大产业。这一高速增长现象反映了随着时代与技术的进步,人类对移动性和信息的需求急剧上升。出现移动通信与互联网相结合的趋势是历史的必然。
1.1用户体验成本较高。用户体验移动互联网成本高,主要体现在两方面,服务资费高和更换终端成本高。随着各种资费套餐的推出和价格政策的逐步改革,资费高问题将逐步得到缓解。有相当一部分用户因为终端价格过高而止步。而且目前推出的智能手机等终端可支持的比较成熟的应用相对来说还很少。对于未来可能出现的多种应用业务,现有的终端还能否支持、是否还需要再次投入成本等,都是造成部分用户观望的原因。
1.2移动终端处理能力弱。无论是在运算还是多媒体处理方面,移动终端都与个人电脑存在着很大差距,因此所能处理的应用也相对功能简单;[本文转自:]
1.3网络带宽相对较小。尽管随着3G等宽带移动接入技术的普及,带宽的瓶颈会不断被突破。但更多、更丰富的移动互联网应用业务的产生也将会对带宽提出更高的要求;
2.云计算概述
2.1 云计算简介
云计算是一个网络应用模式。云计算是一种全新网络服务方式,将传统的以桌面为核心的任务处理转变为网络为核心的任务处理,利用互联网实现自己想要完成的一切处理任务,使网络成为传递服务、计算力和信息的综合媒介,真正实现按需计算、多人协作。
云计算具有虚拟化、灵活制定、动态可扩展、高可靠性、强大计算和存储能力等优点。当然此技术的运用也存在一定风险性。
2.2 云计算机体系构成
现代计算机的基本结构包括5个基本组成成分:运算器、控制器、存储器、输入设备和输出设备。这就是一直指导现代计算机体系发展的著名的冯・诺依
曼体系。
基于冯・诺依曼体系的设计思想和云计算理念,我们可以设计出如下云计算机体系结构,未来一切云服务都可以架构在这个系统模型上工作。云计算机中应该具有6个组成成分:主服务控制机群、存储节点机群、应用节点机群、计算节点机群、输入设备和输出设备。
(1)存储节点机群和应用节点机群相当于传统计算机体系中的存储器部分,但又有所区别。存储节点机群是由庞大的磁盘阵列系统或多组拥有海量存储能力的机群系统所组成的存储系统,它的责任是处理用户数据资源的存取工作,并不关心用户对这些数据要如何应用,也不会处理存取数据资源和后台安全策略管理以外的任何操作。应用节点机群则是由一组或多组拥有不同业务处理逻辑的机群系统所组成的应用系统,它负责存储应用程序和处理各种逻辑复杂的用户请求;
(2)主服务控制机群对应于传统计算机体系结构中,可以类似看作控制器
部分。它是由一组或多组主引导服务机群和多组分类控制机群所组成的机群系统。主要负责接收用户应用请求、验证用户合法性,并根据应用请求类型进行
应用分类和负载均衡;
(3)输入/输出设备和目前的个人计算机没有实质性变化,显示器、键盘、鼠标等人机交互设备还是必要的。
(4)计算节点机群提供类似运算器的功能。对于计算节点机群,它是由多组架构完善的云计算机群所组成的,其主要工作是处理超大运算量要求的计算,并不是提供小计算量服务。因为机群运算会在多极交互以及计算分配组装上花费不少时间,所以小计算量运算如在计算节点机群进行处理不但开销大,而且很有可能效率远不如单机运算,可以说得不偿失。这些小计算量运算服务只需在应用节点机群或计算节点机群的某台机器中完成即可;
3.3G移动通信在我国的发展
我们知道,在3G通信的三大国际主流标准中,包含了我国大唐电信所提出的具有自主知识产权的TD―SCDMA标准,但由于这是一个全新的标准。因此在2G通信中,并不存在与这一标准相对应的2G体制。 显然。 这对于要建立一个全新的T D―SCDMA系统而言,确实带来了巨大的困难。
考虑到上述情况。必需为TD―SCDMA系统的建立,留有足够的时间。为此,我国工信部一推再推,直至2009年1月才正式向三大运营商颁发3G牌照,从而开启了我国3G通信市场。不难看出,由于3G照的推迟,我国3G通信的市场开启时间也相应的推迟,与国际相比,约推迟了7-8年。所幸的是,我国的移动通信的主管部门,或是研发单位,都没有因3G牌照颁发的推迟而在等待。相反,许多运营商和研发单位都在积极的向3G大举进军,为即将到来的3G通信做了大量的准备工作。我国政府更是大力支持,为此出台了一系列政策,加大财政支持力度。积极协调TD―SCDMA网络建设,在未来3年至5年内,中国移动对TD―SCDMA网络建设的投资将要达到5000亿元。由此可以看出,其发展前景十分广阔,令人期待。根据我国的这一具体情况三大运营商都计划在2009年至2011年间,分别发展3G用户各为0.5 亿户即到了2011年,我国的3G用户数将达到1.5 亿户。
4.移动通信网由3G向4G的过渡
移动通信系统向4G发展是一种不可逆的趋势。4G依然存在标准难以统一、 技术难以实现、容量受到限制、市场难以消化、设备难以更新的问题。如何在3G的基础上发展4G受到社会各界的关注。首先就是要将3G的核心技术CDMA技术融合到OFDM技术当中去。逐渐发展到以OFDM技术为主导并对CDMA技术行进延伸。
计算机工程是涉及现代计算系统、计算机控制设备的软硬件设计、制造、操作的科学与技术,建立在计算、数学、科学和工程学的基础上,主要研究计算机处理器、多处理器通讯设计、网络设计和存储器体系,着重研究硬件设计以及与软件和操作系统的交互性能,如嵌入式系统、分布式数据与大规模存储系统。绝大多数美国学校的电气工程和计算机工程是在一个系,除数学、物理等基础科学知识外,课程体系主要包括计算机科学和电气工程等学科的相关课程、设计和构建计算机系统及基于计算机系统的相关软硬件课程。培养的学生应具备从事计算机系统工作的能力,或具备基于计算机相关系统进行分析、设计、应用和集成工作的能力,具有扎实的计算机基础理论、良好的科学素质和工程实践能力,包括良好的团队合作和人际交流沟通能力[5]。下面主要介绍美国这4所大学的计算机工程课程设置情况。
1.1UIUC计算机工程专业本科课程设置
UIUC计算机工程专业学生需要修满128个学分,这些课程分为如下7大类:1)科学基础与数学课程(31学分),包括数学、物理、化学在内的10门课程。2)计算机工程核心课程(34学分),这些课程重点介绍计算机工程领域的基本概念、基本原理、基本实验方法和技术,共有10门课程。3)专业基础数学课程(6学分),包括离散数学和概率、工程应用两门数学课程。4)写作课程(4学分),1门写作原理课程,主要讲授研究报告的写作方法。5)专业技术选修课(23学分),其中1门必须选自计算机工程和计算机科学专业技术选修课程之外的课程,其他必须均选自计算机工程和计算机科学专业技术选修课程。这些课程强调计算机工程实践中用到的主要分析方法和设计原则。6)社会科学与人文科学课程(18学分),这些课程被工学院认可并满足学校对学生社会科学与人文科学课程通识教育的要求。7)自由选修课程(12学分),这些几乎没有限制的选修课可以让学生学习任何领域的知识。学生可以在计算机工程专业深入学习课程,也可以学习生物工程、技术管理或语言等课程。
1.2普度大学计算机工程专业本科课程设置
普度大学计算机工程专业学生需要修满125个学分,这些课程分为如下6大类:1)通识教育课程(24~25学分),包括6~7学分的两门交流技巧课程和18个学分的社会与人文学科选修课程。2)数学课程(21~22学分),数学课程有两种套餐,各6门课,学生可以根据自己的情况任选一种。3)科学基础课程(18~19学分),包括物理、化学、生物及面向对象编程等5门课程。4)工程基础课程(7学分),包括工程导论两门课程及计算机工程和计算机科学以外学科的工程学科选修课1门。5)计算机工程专业课程(49学分),包括32~33学分的13门计算机工程专业核心课程;两门共计1学分的研讨课程;2门3~4学分的高级设计课程;2门8学分的研究生课程;1~2门计算机专业选修课程,使计算机工程专业课程总学分达到49学分。6)任选课程(4~6学分),根据辅修要求或个人兴趣,任选课程可以从理学院或文理学院中适合工科学生的数学、科学课程中选择,目的是使总学分达到125学分。
1.3伊利诺伊理工学院计算机工程专业本科课程设置
IIT计算机工程专业学生需要修满130~134个学分,这些课程分为如下3大类:1)限选课程(109学分),学分分配如下:计算机工程专业限选课程47学分,包括计算机工程和计算机科学两类课程;数学限选课程24学分;物理限选课程11学分;化学限选课程3学分;工程科学限选课程3学分;社会科学与人文学科限选课程21学分。2)选修课程(15~19学分),包括专业选修课程9~12学分,其中含1门硬件设计选修课;科学选修课程3学分。3)跨专业实践项目课程(6学分),包括IPROI跨专业实践项目I和IPROII跨专业实践项目II两门课程。
1.4西北大学计算机工程专业本科课程设置
西北大学计算机工程专业学生需要修48门课程,这些课程分为如下7类:1)通用工程方法、数学、科学基础课程(15门),必修计算方法与线性代数GenEng205-1、线性代数与力学GenEng205-2、动态系统建模GenEng205-3和微分方程GenEng205-4等4门通用工程方法课程;必修微积分(I)MATH220,微积分(II)MATH224,微积分(III)MATH230及多元积分与矢量微积分MATH234四门数学课程;必修普通物理(I)Physics135-2和普通物理(II)Physics135-3两门科学基础课程;从McCormick工学院科学基础课程中任选其他2门课程;另外必修IDEA106-1工程设计与交流(I)、IIDEA106-2工程设计与交流(II)两门工程设计和交流课程。2)工程基础课程(5门),必修4门,包括EECS202电气工程导论、EECS203计算机工程导论、EECS211编程基础(C++)、EECS302概率系统与随机信号,并从McCormick工学院工程基础课程热电力学、系统工程与分析、材料科学和流体与固体中任选1门。3)交流与社科人文学科课程(8门),选修GenCmn102演讲或GenCmn103课程的其中1门,另外选修7门满足McCormick工学院要求的社科人文学科课程。4)专业核心课程(5门),必修EECS205计算机系统软件基础、EECS303高级数字逻辑设计、EECS361计算机体系结构、EECS311数据结构与数据管理和EECS343电路基础这5门课程。5)技术选修课程(10门),西北大学计算机工程专业分高性能计算、VLSI与CAD、嵌入式系统和算法设计与软件系统4个方向,每个方向开设若干门技术课程,每个学生必须在这4个方向中选修5门课;从专业基础课程EECS213计算机系统导论、EECS222信号与系统基础、EECS223固态工程基础、EECS224电磁场与光学基础、EECS225电子学基础5门课中根据学习方向选修2门;剩下3门从计算机科学、计算机工程、数学、科学基础等课程中选修,如可以是生物学BIOL210-1,2,3和化学原理CHEM210-1,2,3课程,也可以经申请同意选修相关计算机工程研究生课程。6)自由选修课程(5门),共修5门,学生可以根据自身情况和兴趣爱好自由选修。若从未学习过任何计算机编程语言,建议其中1门选修编程入门(Python)EECS110课程。7)高级项目课程(1门),至少在微处理器系统项目EECS347-1、计算机体系结构项目EECS362和VLSI设计项目EECS3923门课中选修1门。
24所大学计算机工程课程设置特色
4所大学计算机工程本科专业的课程设置都通过美国工程教育认证机构ABET的EC2000指标体系认证,有如下特点:
1)注重基础知识的学习,在贯彻通识教育中培养学生的各种能力。基础知识直接决定学生未来的发展潜力[7-8],而基础知识的掌握通常是通过通识教育实现的。与我国高校通识教育不同的是,这4所美国大学按照各种完整的项目组织基础知识,让学生在基于项目的学习中形成各种能力。他们还特别重视人际沟通能力的培养和学生对广泛深入的人文社科知识的理解,使所有工科学生在数学、物理、信息、物质、生命、技术和能源科学方面及人文社科方面打下广泛的基础。这种比知识更重要的能力是学生取之不尽、用之不竭的资源。普度大学第一年的工程基础培养及UIUC第一年的计算机工程训练从一开始就围绕能力培养,使学生能更好地理解和应用所学的基础科学和数学知识。