计算机组成原理--课程设计指导书
院
课程设计指导书
系(部)
计算机科学与技术
专
业
计算机科学与技术
2010年12 月 10 日
课程名称:计算机组成原理 课程编号:7020130610 主 笔 人:钟旭 主 审 人:
一、课程设计的目的
通过该课程设计的学习,总结计算机组成原理课程的学习内容,利用TDN-CM+教学实验系统提供的软硬件操作平台掌握层次化设计方法、运用计算机原理知识,设计并实现一台完整的计算机,从而巩固课堂知识、深化学习内容、完成教学大纲要求,学好计算机科学与技术专业的专业基础课。
二、课程设计的题目 1.基本模型机设计与实现;
2.带移位运算的模型机的设计与实现; 3.复杂模型机的设计与实现。
三、设计内容(主要技术关键的分析、解决思路和方案比较等)
利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDN-CM+计算机组成原理教学实验系统,微机,虚拟软件。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。1.基本模型机设计与实现
指令系统至少要包括六条不同类型指令:如一条输入指令,一条减法指令,一条加法指令,一条存数指令,一条输出指令和一条无条件转移指令。2.带移位运算的模型机的设计与实现
在基本模型机的基础上增加左、右循环和左、右带进位循环四条指令
3.设计不少于10条指令的指令系统。其中,包含算术逻辑指令,访问内存指令,程序控制指令,输入输出指令,停机指令。重点是要包括直接、间接、变址和相对寻址等多种寻址方式。
以上数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。
四、设计步骤
1、确定设计目标
确定所设计计算机的功能和用途。
2、确定指令系统
确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。
3、总体结构与数据通路
总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。
4、设计指令执行流程
数据通路确定后,就可以设计指令系统中每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。
5、确定微程序地址
根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。
6、微指令代码化
根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。
7、组装、调试
在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。
当所有功能模块都调试正常后,进入总调试。连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。
五、设计说明书要求
课程设计说明书按学校统一格式撰写和装订。课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等工具软件绘制或用铅笔工工整整绘制。
(1)封面(包括:题目、所在系、班级、学号、指导教师及时间等项,可到教务处网页上下载)(2)任务书(3)目录
目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”。(4)正文
正文应按目录中编排的章节依次撰写,要求计算正确,论述清楚,文字简练通顺,插图清晰,书写整洁。文中图、表及公式应规范地绘制和书写。
正文是实践设计报告的主体,具体由以下几部分组成:
1)课程设计题目;
2)课程设计使用的实验设备;
3)课程设计步骤(包括确定所设计计算机的功能和用途、指令系统、总体结构与数据通路、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试。)
4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);
(5)附录
附录1:数据通路图 附录2:微程序流程图 附录3:实验接线图 附录4:实验程序及微程序
附录5:参考文献(资料)(格式规范参照长沙学院毕业设计(论文)撰写规范)
六、设计进度安排 时间:
15、16周 讲授:2课时 答疑及设计:26课时 上机调试:8课时 答辩:6课时
七、考核标准
课程设计的成绩分为:优秀:、良好、中等、及格、不及格五个等级。
《 计算机组成原理》 是计算机科学与技术专业 、软件工程专业的专业骨干课程,该课程围绕着构成计算机的五大部件全面详细的阐述了计算机的组成和各部件的工作原理,并引申出各部件的设计实现方法。
为了能够让学生对《 计算机组成原理》 这门课程有一个感性的理解, 我院于2009年购置了由清华大学计算机学院研制开发的TH- union+ 教学实验系统,将其应用于《 计算机组成原理》 实验课程。 TH- union+ 教学实验系统本身就是一台简单的计算机,该实验系统不仅能够支持传统的硬件实验,而且创造性的在实验系统中增加了汇编语言指令系统,使得很多传统硬件实验在连接了硬件电路之后,不再使用手动开关向存储器输入指令和数据的方式验证电路的正确性,而是改用通过输入汇编语言程序对电路的正确性进行验证,大大提高了工作效率, 也能够更好的促进学生对理论知识的消化和理解。 因此在实验课程的设置中,全体实验大致可以分成两个部分,第一部分是结合TH- union+ 教学实验系统现有的汇编语言编写简单的应用程序,以达到熟悉掌握实验系统各部分硬件的目的。第二部分是在第一部分的基础上由学生利用VHDL语言设计一个8位的CPU,并利用实验系统的汇编语言进行编程, 以验证CPU设计的正确性。 在整个实验教学过程中,利用实验系统的汇编语言编程是实验的一个重要环节,但在教学过程中,我们发现,由于学生初次接触该实验系统,对它的汇编语言指令不熟悉,常常和已经学过的8086汇编语言指令混淆, 导致利用实验系统的汇编语言编程的能力不足,对后续实验有一定的影响,因此我们课程组全体教师就有了设计一个汇编语言转换器的想法。
二、对TH- union+ 教学实验系统的改进
TH- union+ 教学实验系统是一个优秀的《 计算机组成原理》 课程实验教学平台,它最初的受益者是清华大学计算机学院的学生,而我们黑龙江大学计算机学院软件学院的学生与清华大学计算机学院的学生相比,动手能力、综合技能还存在一定的差距,正是由于我院学生的这些差距,使我们必须对TH- union+ 教学实验系统进行改进。
TH- union+ 教学实验系统上有一个汇编语言,它和我们学过的8086汇编语言没有任何关系。 也就是说同学们要做计算机组成原理实验就要再学一次汇编语言。 这个汇编语言一共有48条指令,只有4种寻址方式,有16个寄存器,……,一切都变了。 因此我们必须用一个方法使学生快速学会新的汇编语言,并利用它进行程序设计。
TH- union+ 教学实验系统的设计者为了使实验系统更接近真实的计算机在指令系统中设计了与输入输出操作有关的指令,使得程序在设计过程中可以进行输入输出操作。 但是遗憾的是,学生在学习8086汇编语言时, 所有的输入输出操作都是由DOS系统功能调用函数实现, 没有涉及到真正的底层硬件输入输出操作,现在在实验系统上首次自己编写输入输出函数,对学生具有一定的挑战性,这是实验系统的第二点需要改进的地方。
三、解决方法
基于以上两点,课程组全体教师决定自行开发一款辅助软件, 用来实现实验系统的汇编语言程序与8086汇编语言程序相互转换, 进而指导辅助学生快速掌握TH- union+ 教学实验系统的汇编语言和相关知识。
本辅助软 件是利用windows下linux模拟环境 的flex工具和gcc编写完成的。 flex是linux下的一个用来开发编译器的工具, 主要用于词法分析器的设计开发。 由于本辅助软件需要对两种汇编语言的语句进行转换, 其过程包括大量的词法分析工作,因此我们选用flex工具,以缩短开发周期。
本辅助软件由两个可执行文件、两个示例程序和一个说明文件构成, 两个可执行文件暂时定名为my和your。my的功能是把TH- union+ 教学实验系统的汇编语言程序转换成8086汇编语言程序。 your的功能是 把8086汇编语言程序转换成TH- union+ 教学实验系统的汇编语言程序。
由于指令格式的原因,实验系统的汇编语言指令操作数的寻址方式全部隐藏在操作码中,也就是说在指令译码的时候, 当指令译码器分析出指令功能的同时,也知道了指令中各操作数的寻址方式。这就使得实验系统无论在指令数量还是在寻址方式方面都比8086汇编语言指令系统简单, 我们把实验系统的汇编语言看成是8086汇编指令系统的子集。 当my程序扫描到实验系统汇编语言指令时, 根据操作码就可以判断出它对应的8086汇编指令是什么, 寻址方式是什么, 然后转换成8086汇编语言指令即可。 通过my对两种汇编语言相互转换,提示学生注意两种汇编语言的相同点,以便学生在阅读实验系统汇编程序时快速理解它的编程目的。
your的功能是把8086汇编语言程序转换成实验系统的汇编语言程序。 在具体操作中,由于8086汇编语言比实验系统的汇编语言复杂,所以需要做一些简单的限制,以便程序转换。
第一, 我们约定your只能转换正确的8086汇编语言程序。辅助软件的设计目的之一是要学生在已经掌握8086汇编语言的基础上, 不需要再额外学习其他汇编语言就可以在实验系统上编写程序,因此我们假设学生能够利用8086汇编语言在通用计算机上实现实验程序的设计。 为了便于学生利用8086汇编语言设计程序,我们在软件包中增加了一个示例程序2.asm, 它本身也是一个8086汇编语言程序框架, 学生利用这个框架编程效率会更高。 为了保证程序的正确性,在软件中附带了Boland公司的Turbo Assembler汇编语言编译器 ( 简称tasm) , 学生编写的汇编语言可以用tasm编译成可执行文件,以保证程序的正确性。
第二, 我们要对8086汇编语言程序做简单的语法分析。由于实验系统汇编指令的操作数寻址方式都是固定的, 而8086汇编语言的指令系统操作数寻址方式是不固定的, 这就使我们不得不对8086汇编语言程序进行简单的语法分析。
具体操作如下: 转换程序your扫描到一条指令首先对指令的操作码部分进行分析,判断该指令是否可以转换成TH- union+ 教学实验系统的汇编语言指令,如果可以就在指定变量中设置一个指令对应的数值,如果不能转换就输出一行字符串,提示用户你的程序中使用了不可转换的8086汇编语言指令, 在转换过程中把这条指令忽略。 8086汇编语言指令系统是一个复杂指令系统,指令存在大量的功能冗余,因此辅助软件采用忽略指令的方式,在这里也可以采用发现不可转换的指令就发出错误提示,然后强行结束转换的方式,但课程组老师考虑到每个人的编程习惯不同,所以采用前者比较温和的提示方式。
然后是对操作数寻址方式的判断,同样根据不同的寻址方式在指定变量中设置对应的数值,如果是实验平台支持的寻址方式,就直接转换成相应的实验系统汇编语言指令,如果不是实验平台支持的寻址方式,系统将提示出现错误,并强行结束转换。 在这一过程中最麻烦的是一些寻址方式的转换。 例如在8086汇编语言指令系统中,双操作数指令允许目的操作数采用寄存器寻址方式,源操作数采用立即寻址方式。 例如:add ax,10,但是实验系统的汇编语言规定双操作数指令的两个操作数都采用寄存器寻址方式, 只有MVRD指令支持立即寻址,因此一旦发现上述指令,转换程序将产生下面四条指令,以保证程序的正确性。
PUSH R15
MVRD R15,10
ADD R0,R15
POP R15
第三 , 我们要对 输入输出 指令单独 处理 。 由于TH- union+ 教学实验系统有自己的输入输出指令,这些指令与8086汇编语言的输入输出指令完全不同, 为了简化问题,便于学生们迅速掌握串口操作,我们约定在编写与输入输出操作有关的程序时,必须采用事先设计的宏。首先我们在示例程序2.asm中利用DOS系统功能的7号子功能和2号子功能实现基本的输入输出宏。 在编程过程中凡是遇到输入输出操作都调用这两个宏。然后我们把这两个宏名加入到转换程序中,当转换程序扫描到这两个宏名将自动生成对应的实验系统汇编指令。 在程序设计过程中,实验系统的输入输出操作采用查询方式,因此每次生成的实验系统汇编程序里面一定要带一个有条件跳转指令和标号,在具体操作时,很可能出现多次使用输入输出操作, 每次产生的标号都要不同, 所以程序中必须对生成标号进行处理,这是此部分的设计重点。
本辅助软件首次应用于2012级软件学院的实验教学中,提高了教学效率,取得较好的教学效果,同时也有许多热心的同学对辅助软件提出了宝贵的意见,课程组全体教师将根据师生的反馈意见进一步完善辅助软件, 为以后的实验教学提供更多更好的支持。
参考文献
[1]王诚,刘卫东,宋佳兴.计算机组成与设计:第三版[M].北京:清华大学出版社,2008:7.
[2]王诚,刘卫东,宋佳兴.计算机组成与设计实验指导:第三版[M].北京:清华大学出版社,2008:8.
【关键词】计算机组成原理 课程体系 构建
【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2014)09-0247-02
一、课程建设中存在的问题
近年来,多数高等院校计算机科学与技术专业都以必修课的形式开设了“计算机组成原理”这门课程。虽然各院校讲授的内容各不相同,但是他们对该课程的性质、地位、作用及重要性都有了一定的认识。由于“计算机组成原理”课程覆盖的专业较多,因此各校在进行教学时在一些问题上还存在不同的认识,其中的有些问题还需要进一步探索。
二、课程的地位及作用
“计算机组成原理”是系统介绍了计算机组成与系统结构的基本原理、基本设计与实现方法。通过本课程的学习使学生对计算机的组成与系统结构有较全面的认识,使学生从理论和实践上掌握计算机系统的设计与开发的方法,进而提高学生进行计算机应用系统设计开发的能力,培养学生的综合素质。因此,“计算机组成原理”课程在计算机科学与技术专业及相关专业中具有举足轻重的作用。
三、课程体系的构建
(一)课程概述
本课程主要从计算机的基本概念、基本组成结构分析着手,对计算机各个基本组成部件及控制单元的工作原理进行讨论,分析计算机系统的一般特点,使学生掌握有关软、硬件的基本知识,尤其是个基本组成部件有机连接构成整机系统的方法,为培养学生对计算机系统的分析、设计、开发和使用能力打下基础。
(二)课程性质
适用专业类:高等院校计算机科学与技术及相关专业
授课时数:54学时
实践时数:18学时
先修课程:数字逻辑、数据结构与算法、C++语言程序设计。
(三)课程内容
本课程对教学内容的要求分为3个层次,分别是:“掌握”、“理解”和“了解”。对于要求“掌握”和“理解”的内容,要做到概念清楚,原理明白,并具有分析和计算能力,有些内容还要求会应用。“掌握”比“理解”要求更高,有些知识必须熟记。对要求“了解”的内容应当知道基本概念和基本原理。“计算机组成原理”课程体系应由理论知识、实验两大部分组成。
1.理论知识
① 计算机系统概述 (4学时)。主要内容: 计算机系统软硬件的组成与层次结构、 计算机系统的设计技术与评价标准、 计算机的发展和应用。
②计算机的逻辑部件 (6学时)。主要内容:布尔代数的基础知识、 计算机中常用的组合逻辑电路、时序逻辑电路。
③数据表示、运算方法与运算部件 (10学时)。主要内容: 数字化信息编码、 计算机中数据的表示、转换和运算、 二进制乘法和除法运算、 浮点数的运算方法、 运算部件、 数据校验码。
④主存储器 (6学时)。主要内容: 主存储器概述、 读/写存储器、 非易失性半导体存储器。
⑤指令系统 (6学时)。主要内容: 指令格式与数据表示、 寻址方式、 指令类型与指令系统的兼容性、 RISC和CISC、 指令系统举例。
⑥中央处理部件 (6学时)。主要内容: 计算机的硬件系统、 控制器的组成、 微程序控制的工作原理、 流水线工作原理。
⑦存储器系统 (6学时)。主要内容: 存储器系统概述、 高速缓冲存储器、 虚拟存储器、 相联存储器和存储保护。
⑧输入输出系统 (6学时)。主要内容: 输入输出系统概述、 程序中断、 DMA输入输出方式、 通道控制方式、 总线结构、 外设接口。
⑨计算机系统结构 (4学时)。主要内容: 计算机系统概述、 多媒体计算机、超级流水线处理机和超长指令计算机、 计算机网络简述。
理论共54学时,3学分,成绩比例70%。
2.实验
通过做实验让学生加深对所学学科知识的理解和掌握,同时培养学生的动手能力和分析问题的能力,为后续课程的学习奠定基础。具体内容如下:①运算器实验(6学时)②存储器实验(4学时)③微程序控制器实验(2学时)④模型机组成与指令执行实验(4学时)⑤输入输出实验(2学时)。
共18学时,1学分,30%。
(四)课程的重点和难点
重点:掌握计算机的各个组成部件的工作原理。
难点:指令的执行和存储空间的扩充。
四、加强课程构建的具体设想及主要措施
(一)在教学环节中突出本课程的实践环节
“计算机组成原理”是计算机科学与技术类专业的一门重要专业基础课。本课程的学习将为学习“操作系统”、“微机原理”等后续课程和研制开发各种系统和应用软件打下扎实的理论和实践基础,因此可以将“计算机组成原理”课程的知识结构结合相应的实践环节来巩固并加深所需的知识点的理解。在教学过程中,即注重学生基础理论知识的掌握,也注重学生动手能力、设计能力的培养,使本课程在处理知识面的宽度和深度上,既满足作为基础课的要求又达能到课程突出实践环节的特色。
(二)教学方法的整改策略
实验教学分层次组织:以能力培养为宗旨,根据难度分为达到“实验设置基本要求”和“实验设置较高要求”的实验。教师根据学生情况分层次组织实验,既能掌握基础性实验,也能体验有一定难度的实验,使不同程度的学生都能从中受益,并提高学生的学习兴趣。
(三)教学手段的改进
“计算机组成原理”充分地利用了学校网络资源,将教学课件、教辅材料及习题集等资源上网,使学生方便地下载,了解本课程的教学安排、计划和要求、考试题型及考核方式,便于学生课下的复习自学、巩固知识点,并对学生课余主动学习提供了很大的方便。使用这样先进的教学手段,既提高了教学质量,又取得了良好的教学效果。
五、结束语
该课程体系是在分析和研究部分高等院校“计算机组成原理”课程教学实践基础上构建的,但是由于多数院校开设“计算机组成原理”课程授课的学生层次和研究方向、专业特色的不同,教学内容、教学方法、教学手段、实验环节等还处于探索阶段。因此其科学性、合理性和实用性有待实践的进一步检验和完善。
参考文献:
[1]《计算机组成与体系结构》,王诚等编著,北京:清华大学出版社,2003;
课程设计任务书
一、设计任务:
1、基本模型机设计与实现;
2、在基本模型机设计的基础上设计一台复杂模型机。
二、功能指标和设计要求:
利用所学过的理论知识,特别是微程序设计的思想,设计基于微程序控制器的模型计算机,包括设计相应的硬件平台、机器指令系统和微指令等。设计环境为TD-CMA计算机组成原理教学实验箱、微机,联机软件等。同时设计好基于模型机的测试验证程序,并在设计好的硬件平台上调试通过,以验证所设计的模型机功能的可行性与可靠性。在设计完成的前提下,撰写出符合要求的课程设计说明书并通过设计答辩。
1.基本模型机设计与实现
设计一台简单模型机,在具备基本必要的硬件平台的基础上,进一步要求其机器指令系统至少要包括五条不同类型指令:如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条输出指令(假设助记符为OUT)、一条无条件转移指令(假设助记符为JMP)和一条停机指令(假设助记符为HLT);在设计好的模型机基础上,设计一个进行两个数求和运算的测试验证程序,用以验证模型机功能的可行性与可靠性。
2.在任务1的基础上,增加机器指令系统的功能,设计具有不少于10条机器指令的复杂指令系统模型机,包含算术逻辑指令、访问内存指令、控制转移指令、输入输出指令、停机指令等。数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。在设计好的模型机基础上,进一步设计一个测试验证程序,验证模型机功能的可行性与可靠性。
3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。
三、设计步骤:
1、确定设计目标 进行全面深入的模型机设计需求分析,确定所设计计算机的功能和用途。
2、总体结构、数据通路设计及硬件实现
总体结构设计包括确定模型机应具有的基本功能部件(如运算器、控制器以及基本的寄存器等等)以及它们之间的数据通路。
硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,数据通路不同,执行指令所需要的逻辑操作就不同,计算机的结构也就不一样。在此基础上,在后面的微指令设计阶段,就可以依据数据通路关系确定模型机工作过程中的所有微操作,并进一步确定微指令格式中的相应微命令。
3、确定指令系统(机器指令系统)
确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相对应指令所包含的微操作。
4、机器指令转化为微程序执行的相关设计
过程2、3完成后,就可以根据机器指令系统进行指令周期分析,确定出每条机器指令的CPU周期数。对于微程序控制的计算机,进一步确定出每个CPU周期内的微操作(明确哪些微操作可以安排在同一CPU周期中,哪些微操作则不能)。设计出每条机器指令的方框图形式的指令周期流程图。
5、微指令代码化
依据指令周期流程图以及指定的微指令格式,将设计出程序格式中的各字段(操作控制字段、P测试字段、直接微地址字段)相应的二进制代码(即对应的微命令编码)。
6、设计微指令的相关微地址
根据后续微地址的形成方法(直接微地址或P测试转移后重新形成),确定每条微指令的相关后续微地址。确定好微命令在控存中的存放地址,并将所有微命令写入到控存的相应存储单元中。
7、组装、调试
7.1、在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。首先调试每条微指令功能,再调试每条机器指令功能。
连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功能调试及执行指令的正确性验证。
7.2、当所有功能模块都调试正常后,进入总调试。根据设计好的模型机,进一步设计一个功能测试验证程序,运行程序并验证所涉及的模型机功能是否可行和可靠。
四、课程设计报告要求:
课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等绘图工具软件绘制或用铅笔工工整整绘制,要求图文清晰,报告内容包括:
(1)封面
(包括:题目、所在系、班级、学号、指导教师及时间等项)(2)任务书(3)目录
(目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”)。(4)正文
正文应按目录中编排的章节依次撰写,要求论述清楚,文字简练通顺,插图清晰,书写整洁。“设计”不同于实验,要充分体现出“设计”的思想,不能写成实验报告的形式。文中图、表及公式应规范地绘制和书写。正文是实践设计报告的主体,具体由以下几部分组成:
1)课程设计题目;
2)课程设计使用的相关软硬件资源;
3)设计的具体方法和步骤(包括确定所设计计算机的功能和用途、总体结构与数据通路与硬件设计、指令系统、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试、测试验证程序与功能验证情况。)
4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);(5)附录
附录1:数据通路图 附录2:微程序流程图
附录3:实验接线图
附录4:实验程序及微程序 附录5:参考文献(资料)
五、设计工作量:
(1)作品:设计的最终作品包括硬件和软件两个部分,要求硬件实现正确,能够演示并达到设计指标的要求。每个学生(或小组)在作品完成后,要经指导教师检查,同意拆除后方可拆卸。(2)论文:严格按上述课程设计说明书的要求撰写和装订。每个学生一份。
六、成绩评定标准:
课程设计的成绩分为:优秀、良好、中等、及格、不及格五个等级。
优秀:完成复杂模型机的设计与实现,指令系统完备有更新扩充。调试成功。文档规范齐全。
良好:完成模型机的设计与实现,指令系统指令种类丰富有一定的更新。调试成功。文档规范齐全。
中等:完成基本模型机的设计与实现,在老师指导下对指令系统有更新。调试成功。文档规范齐全。
及格:完成基本模型机的设计与实现。调试成功。文档规范齐全。不及格:没有课程设计报告,无故缺勤,不能完成调试者不及格。
七、工作计划:
时间:18周周1~周5 讲授:2课时
设计及调试:26课时 设计报告编8课时 答辩:4课时
八、参考资料:
1、《计算机组成原理》教材,陈智勇主编;
期末考试题型举例
题型包括选择题(单选)、判断题、简答题和计算题。下面给每种题型列举1-2道样题,以及相应的参考答案及评分标准。
1.选择题(每小题3分,共36分)
(1)在定点二进制运算器中,加法运算一般通过来实现。A.原码运算的二进制加法器B.反码运算的二进制加法器 C.补码运算的十进制加法器D.补码运算的二进制加法器 答案:D(2)变址寻址方式中,操作数的有效地址等于加形式地址。A.基址寄存器内容B.堆栈指示器内容 C.变址寄存器内容D.程序计数器内容 答案:C(3)将RAM芯片的数据线、地址线和读写控制线分别接在一起,而将片选信号线单独连接,其目的是。
A.增加存储器字长B.增加存储单元数量 C.提高存储器速度D.降低存储器的平均价格 答案:B 2.判断题(每小题3分,共15分)
(1)输入输出指令的功能是进行CPU和I/O设备之间的数据传送。()答案:√
(2)半导体ROM信息可读可写,且断电后仍能保持记忆。()答案:×
(3)在采用DMA方式传输数据时,数据传送是在DMA控制器本身发出的控制信号控制下完成的。
答案:√
3.简答题(每小题7-8分,共29分)(1)简述计算机运算器部件的主要功能。
答:主要功能包括(1)由其内部的算术与逻辑运算部件ALU完成对数据的算术和逻辑运算;(2)由其内部的一组寄存器承担对将参加运算的数据和中间结果的暂存;(3)作为处理机内部的数据传送通路。
(2)确定一台计算机的指令系统并评价其优劣,通常应从哪几个方面考虑? 答:主要从以下四个方面进行考虑:
a.指令系统的完备性,以常用指令齐全、编程方便为优; b.指令系统的高效性,以程序占内存空间少、运行速度快为优; c.指令系统的规整性,以指令和数据使用规则统一简单、易学易记为优;
d.指令系统的兼容性,以同一系列的低档机的程序能在新的高档机上直接运行为优。
(3)相对主存来说,高速缓冲存储器CACHE具有什么特点?它在计算机系统中是如何发挥它的作用的?
答:CACHE具有容量很小但读写速度非常快的特点。由于少量的一些数据和指令是CPU重复用到的,若将它们从主存复制到CACHE中,CPU就不必在下次使用这些信息时访问慢速的主存,而是从快速CACHE中直接得到。所以,CACHE起到了缓解主存速度跟不上CPU读写速度要求的矛盾,提高了CPU的运行效率。
4.计算题(每小题10分,共20分)
1.将十进制数(0.71)10变换成BCD码、二进制数和16进制数,将(1AB)16变换成二进制数和十进制数。二进制需要小数点后保留8位。
答案:(0.71)10=(0.01110001)BCD=(0.10110101)2=(0.B5)16(1AB)16=(000110101011)2=(427)10 注:以上括弧外的数字均是下角标。
2.已知X=-0.1101,Y=0.0001,分别计算X和Y的原码、补码、-X和-Y的补码、X+Y的补码、Y-X的补码。
答案:[X]原=(1.1101)、[X]补=(1.0011)、[-X]补=(0.1101)[Y]原=(0.0001)、[Y]补=(0.0001)、[-Y]补=(1.1111)[X+Y]补=(1.0100)[Y-X]补=(0.1110)
注:以上括弧外的原、补二字均是下角标。张晓红:回复:期末考试题型举例――谢谢提供
形考作业指导1 计算题:
1.将十六进制数据14.4CH表示成二进制数,然后表示成八进制数和十进制数。说明:
十进制数(Decimal number)用后缀D表示或无后缀 二进制数(Binary number)用后缀B表示 八进制数(Octal number)用后缀Q表示
十六进制数(Hexadecimal number)用后缀H表示
14.4CH=(14.4C)16
2.对下列十进制数表示成8位(含一位符号位)二进制数原码和补码编码。(1)17;(2)-17 提示:(17)10=(10001)2
8位二进制数原码:(0 0010001)原
8位二进制数补码:(0 0010001)补
若完成有困难,建议阅读教材第20页
3.写出X=10111101,Y=-00101011的双符号位原码、反码、补码表示,并用双符号补码计算两个数的差。
提示:阅读教材第38页,注意:双符号位、模
4、判别溢出等概念
形考作业指导2 选择题:
加法器采用并行进位的目的是_____。A.提高加法器的速度B.快速传递进位信号 C.优化加法器结构
D.增强加法器功能
提示:
二进制并行加法器是一种能并行产生两个二进制数算术和的组合逻辑部件
按其进位方式的不同,可分为串行进位二进制并行加法器和并行(超前、先行)进位二进制并行加法器两种类型
为了提高加法器的运算速度,必须设法减小或去除由于进位信号逐级传送所花的时间,使各位的进位直接由加数和被加数来决定,不需依赖低位进位,而是由逻辑电路根据输入信号同时形成各位向高位的进位
代价:增加一些处理进位信号的逻辑器件
位数再多些的话,还可采用分层分组的并行进位方式
简答题:
假定 X = 0.0110011*211(11是指数),Y = 0.1101101*2-10(10是指数)(此处的数均为二进制),在不使用隐藏位的情况下,回答下列问题:
(1)浮点数阶码用4位移码、尾数用8位原码表示(含符号位),写出该浮点数能表示的绝对值最大、最小的(正数和负数)数值;
提示:教材第27页,第2章的内容
本题4位的移码是23+ X,其表示范围-23≤X <23(注:3是2的指数)。所以该浮点数的阶码的几个典型值:
X=(7)10=(111)2,[X]移=1 111; X=(+1)10=(001)2,[X]移=1 001; X=(+0)10=(000)2,[X]移=1 000; X=(-0)10=-(000)2,[X]移=1 000; X=(-1)10=-(001)2,[X]移=0 111; X=(-8)10=-(1000)2,[X]移=0 000
注意:浮点数还有许多约定和标准,本题若改阶码和尾数用补码表示,规格化,IEEE754标准,结果是不一样的
形考作业指导3
选择题:
在设计指令操作码时要做到_____(可多选)。A.能区别一套指令系统中的所有指令 B.能表明操作数的地址 C.长度随意确定 D.长度适当规范统一 提示:
操作码用于指明本条指令的功能。在一套指令系统中必须具有唯一性
操作数的地址是指令中独立于操作码外另外的部分
教材第67页:
“指令字的长度,多数情况下就确定为计算机的字长,即一条指令占用计算机的一个字,由几个字节组成,例如2、4、6、8个字节,但并不一定要求所有的指令的字长都相同,例如,一个计算机字中,可以存放几条很短的指令,长的指令也可能占用多个计算机字,目的在于提高资源利用率。”
组织方案:定长、变长两种
判断题:
计算机的指令越多,功能越强越好。提示:教材第75页,指令系统问题 RISC和CISC的对比 P = I ´ CPI ´ T P 表示执行一段程序所用的时间 I 表示该程序中包含的指令的总条数 CPI 为执行一条指令所需要的机器周期数 T 为每个机器周期长度 请对照完成作业。
形考作业指导4 判断题:
程序计数器PC主要用于解决指令的执行次序问题。提示:
阅读教材第91、92页,控制器的功能和组成 要求对控制器的4个子部件很熟悉
(1)程序计数器(PC):存放下一条指令的地址
(2)指令寄存器(IR):接收并保存从内存中读来的指令内容
(3)指令执行步骤的标记线路:标记每条指令的各个执行步骤的相对次序关系(4)全部控制信号的产生部件:形成并提供当前执行步骤各部件要用到的控制信号
这一章类似这些概念是必考的内容。
形考作业指导5 选择题:
某SRAM芯片容量为1K×8位,除电源和接地端外,连同片选和读/写信号该芯片引出线的最少数目应为_____。
A.23
B.25
C.50
D.20 提示:
阅读教材第118页,图6.5及相关文字说明
判断题:
CPU访问存储器的时间是由存储器的容量决定的,存储器容量越大,访问存储器所需的时间越长。
提示:阅读教材第115页,主存储器的技术指标。存储容量=存储字数×字长
存取时间:从启动一次存储器操作到完成该操作所经历的时间
存储周期:存储器进行一次完整地读写操作所需的全部时间,比存取时间大 存储器带宽:单位时间可写入存储器或从存储器取出信息的最大数量
简答题:
什么是随机存取方式?哪些存储器采用随机存取方式?
提示:按存取方式查阅存储器的分类 顺序存取、串行存取:磁带机 直接存取:磁盘机
随机存取:随机地存取,CPU对任一个存储单元的存取时间相同,与位置无关。静态随机存储器(SRAM)动态随机存储器(DRAM)* 随机存储器(*RAM)每次存储器都占15分以上
形考作业指导6 判断题:
DMA控制器通过中断向CPU发DMA请求信号。提示:教材第173、174页
DMA方式的基本概念和传送过程,图7.10
DMA预处理阶段:外设向DMA控制器发DMA请求,再由DMA控制器向CPU发总线请求。
DMA后处理阶段:DMA控制器向CPU发中断请求。
简答题:
CPU在每次执行中断服务程序前后应做哪些工作? 提示:教材第172页,中断处理、中断返回 CPU执行中断服务程序前:
CPU响应中断之后,在执行中断服务程序前,要进行:① 关中断;
② 保存断点和被停下程序的现场信息;
③ 判别中断源,转中断服务程序的入口地址;
④ 开中断,以便响应更高级别的中断请求。CPU执行中断服务程序后: ① 关中断;
② 恢复现场信息和恢复断点;
③ 开中断;
④ 或响应更高级别的中断请求,或返回断点进入主程序。
简答题:
CPU在每次执行中断服务程序前后应做哪些工作? 提示:教材第172页,中断处理、中断返回 CPU执行中断服务程序前:
CPU响应中断之后,在执行中断服务程序前,要进行:① 关中断;
② 保存断点和被停下程序的现场信息;
③ 判别中断源,转中断服务程序的入口地址;
④ 开中断,以便响应更高级别的中断请求。CPU执行中断服务程序后: ① 关中断;
② 恢复现场信息和恢复断点;
③ 开中断;
④ 或响应更高级别的中断请求,或返回断点进入主程序。
常见问题解答1 为了帮助大家复习,我汇总了一些常见的问题,供大家遇到问题时看看。1.计算机组成原理有点难,应如何进行学习?
本课程跟其他课程确定有点不同,它是本专业唯一一门计算机硬件类专业基础课,它的先修课是数字电子电路,同时还要学一点数制转换的概念,然后才是组成一个独立计算机系统的几大功能部件的原理介绍。可见,这门课的难度一是数学层面的,二是电学层面的,需要有一定的基础课的知识。咱们都是成年学生,可能有些基础知识很久没用忘得差不多了,没关系,边学边补吧。
2.什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体。计算机硬件:计算机的物理实体。
计算机软件:计算机运行所需的程序及相关资料。
硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。
3.计算机组成原理中,KB和K有什么区别?
在日常生活中,我们所用的数大都是十进制。而计算机中的信息单位都是以二进制表示的,常用的信息单位有位和节。
位,也叫比特,记为bit或b,是计算机的最小单位,表示1个二进制数位。
字节,记为Byte或B,是计算机中信息的基本单位,表示8个二进制单位。
计算机中,将1024字节称为1K,1024字节称为1K字节,记为1KB;
将1024K称为1M,1024K字节称为1M字节,记为1MB(通常称为1兆);
1024M称为1G字节,记为1G字节,记为1GB。
4.字和字节有什么关系啊?假如有24根地址线每根线的作用是什么啊?
在计算机中,一串数码是作为一个整体来处理或运算的,称为一个计算机字,简称字。字通常分为若干个字节(每个字节一般是8位)。在存储器中,通常每个单元存储一个字,因此每个字都是可以寻址的。字节是用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制数。每根地址线代表了0和1两个地址,24根地址线,可以表示2的24次方个地址。
常见问题解答2 1.机器数中的原码、补码、移码和反码,怎样才能区别它们?谢谢。
简单说,原码肯定是最接近真值的表示形式;反码在数值为正时与原码相同,负数时各位数值都求反,0代表1,1代表0;补码在数值为正数时与原码一样,负数时在原码基础上求反末位加一。具体请看教材22页。
2.什么是浮点数?
浮点数是相对于定点数的,浮点数是小数点在各个数值位之间可以移动的一种数的表示形式,它可以有整数和小数两部分内容。
3.浮点运算器的组成比定点运算器组成更复杂,主要表现在哪些方面吗? 浮点运算器由处理阶码(整数)的运算线路,和处理尾数(定点小数)的运算线路两部分组成,而且浮点数运算步骤更多,涉及到的数据移位操作(对阶、规格化)更复杂。
常见问题解答3
在运算器部件中,为什么要设置多个累加器?累加器的数目多少对计算机的性能有什么影响吗? 在运算器部件中设置多个累加器就可以暂存更多的数据,有利于在数据计算过程中减少访问速度慢得多的内存储器的次数,可以提高系统的整体性能。
常见问题解答4 1.一条指令通常由哪两个部分组成?指令的操作码一般有哪几种组织方式,各自应用在什么场合,各自的优缺点是什么? 一条指令通常由指令操作码和操作数地址两个部分组成,操作码通常有固定长度和可变长度两种主要的组织方式,前者更常用,格式规整,指令译码速度更快,后者主要用在指令字长比较短的计算机系统中,不得不把指令中的一些位区分不同指令分别用作指令的操作码或操作数地址,不利于快速指令译码和识别。
2.相对CISC指令系统,RISC指令系统有哪些优点?
RISC系统的指令格式规范且种类少,使用的寻址方式简单,指令条数少,指令完成的操作功能简单。
3.按照操作数的个数不同,把指令分成哪几种? 按照操作数的个数不同,指令分为下面四种:
(1)无操作数指令;(2)单操作数指令;(3)双操作数指令;(4)多操作数指令
4.什么是指令字长、存储字长和机器字长?
指令字长是机器指令包含的二进制代码的位数,存储字长存储单元中二进制数的位数,机器字长是运算器一次运算的二进制数的位数。
5.简单说明一个指令周期中读取指令、指令译码、ALU执行、读写内存或接口、数据写回5个执行步骤的含义。
(1)“读取指令”是每一条指令都必须执行的,所完成的功能对所有指令都相同;(2)“指令译码”完成的功能对多数的指令是类似的,例如判断指令类型、读寄存器组等;
(3)“ALU执行”所完成的是数据或地址计算功能,对不同指令会有所区别;(4)“读写内存或接口”只被用于读写内存或者读写接口的指令;
(5)“数据写回”将ALU的计算结果(或从内存、接口读来的数据)写入寄存器组。
常见问题解答5 1.什么是多指令发射技术?有什么特点? 请阅读教材108页,最后那段有你要的答案。超标量处理机:在一个时钟周期同时发射多条指令;
超流水线处理机:在一个时钟周期分期发射多条指令; 超标量超流水线:集中超标量和超流水线两个特点。
2.在微程序的控制器组成中,为什么总要设置微指令寄存器部件呢?
微指令寄存器是控制器的一个很重要的部件,在内存或控制寄存器中保存微程序,微指令寄存器则用来保存将要执行的一条微指令,这有利于提高微程序的执行速度。
3.什么是双核技术?
现在逐渐热起来的“双核”概念,主要是指基于X86开放架构的双核技术。在这方面,起领导地位的厂商主要有AMD和Intel两家。其中,两家的思路又有不同。AMD从一开始设计时就考虑到了对多核心的支持。所有组件都直接连接到CPU,消除系统架构方面的挑战和瓶颈。两个处理器核心直接连接到同一个内核上,核心之间以芯片速度通信,进一步降低了处理器之间的延迟。而Intel采用多个核心共享前端总线的方式。专家认为,AMD的架构对于更容易实现双核以至多核,Intel的架构会遇到多个内核争用总线资源的瓶颈问题。
常见问题解答6 1.在计算机中,为什么要采用多级结构的存储器系统? 采用多级结构的存储器系统的性能价格比最高。
2.衡量高速缓冲存储器(CACHE)性能的最重要的指标是什么,指出影响这一指标的至少3个因素。
衡量CACHE性能最重要的指标是它的命中率,即在原本需要到内存取数据的总的操作次数中,有多少次是在CACHE中得到相应数据,二者之比即为命中率。影响命中率的因素较多,例如,CACHE的容量,大一些好;CACHE的映象方式,CACHE与主存每次交换信息的单位量要适中。(也可以答另外几个因素)
3.使用多体结构的主存储器的目的是什么?什么是低位地址交叉,其优点何在? 使用多体结构的主存储器,是为了使用可以独立读写的多个存储器,以提高对它们并行读写,快速得到多个数据的能力,缓解单个主存储器读写速度慢的矛盾。在多体结构的主存储器中,通常多选用把相邻的存储字存放在不同的存储体中,这被称为低位地址交叉的组织形式,它更符合程序运行的局部性原理,有利于同时(或时间上有覆盖)地读写地址相邻的几个存储字。
4.高速缓存与主存在读写原理方面有何区别?
高速缓冲存储器的运行原理,与主存储器的运行原理是有很大区别的。主存储器运行原理,是建立在每个主存地址对应主存的一个存储单元这一关系之上的。在计算机程序中,要使用主存某单元中的数据,必须在指令中给出该单元的地址。读操作时,给出这一地址后,通过译码电路,就选中主存中欲读的一个存储单元,执行读操作,读出的信息就是需要的数据。
高速缓冲存储器的运行原理则完全不同,由于其存储容量很小,无法通过对原本用于读主存的地址直接进行译码来选择一个CACHE单元,而是通过映象的方法来找到所要的单元,这样CACHE的每个存储单元由3部分内容组成。第一部分内容,是CACHE的数据字段,保存从主存某一单元复制过来的数据内容。第二部分内容,是CACHE的标志字段,保存相应主存单元的地址信息,用它指明该CACHE单元的数据字段部分保存的数据是从哪一个主存单元复制过来的。第三部分内容,是CACHE单元的有效位字段,规定其值为1,表示该CACHE单元中的标志字段、数据字段的内容是有效的,为0,则说明该CACHE单元在此之前尚未使用,其标志字段、数据字段的内容是无效的。
5.什么是虚拟存储器?它能解决什么问题?
虚拟存储器是除了高速缓存和主存外在硬盘上实现内存功能的特殊存储器,目的是为了解决主存容量小,存不下更大程序与更多数据的难题
常见问题解答7 1.在统一编址方式下,存储单元和I/O设备是靠什么区分的呢? 指令和不同的地址
2.为读写输入输出设备,通常有哪几种常用的方式用以指定被读写设备? 有IO地址方式和地址映射(MAP)方式两种,前者使用专门的输入输出指令,并在指令字中用较少的位数给出IO端口号地址来指定设备;后者不设置专门的输入输出指令,使用与访问内存类似的指令读写设备,它需要把内存最高端的少量空间空置不用,将其当作输入输出设备的地址,以表示不同的设备。
3.CUP中断响应是怎么发送请求、收接请求并处理?
中断分为内中断和外中断,中断源提供中断请求信号,中断处理器在可以响应中断的条件下,当一条指令结束的时候,检查正在请求中断的优先级,若高于正在处理的任务,则可以向CPU发出中断请求。响应后就进入中断处理过程。
4.在程序查询流程中,当I/O设备较多时,CPU需按各个I/O设备在系统中的优先级别进行查询,一般需要执行哪些步骤? 程序查询方式下,访问那个设备是在程序中写定的,若轮流访问多个设备,都得写在程序中,由程序中的指令次序决定,而不是由CPU自动查找。
常见问题解答8 什么是计算机系统结构?
上海开放大学本科(专科起点)软件工程(信息服务)专业
《软件测试》课程教学大纲
(2014年2月审定)
第一部分 课程的性质、目的与任务
一、课程的性质、目的与任务
本课程是专业必修课,课程4学分,课程学时数64(含实验学时20)。
课程主要介绍与软件测试相关的概念、方法与工具。内容涉及测试基本概念、测试过程模型与策略、基本测试技术(黑盒测试与白盒测试技术)、分阶段的测试方法(单元测试、集成测试、系统测试、验收测试)、面向对象测试方法、专用应用系统的测试、测试工具的使用等。
通过本课程的学习,使学生了解软件测试的现状与挑战,理解软件测试的基本概念与测试流程,同时基本掌握测试用例设计、测试工具的使用等技术。
二、先修后续课程
先修课程:软件工程、Java程序设计 后续课程:无
第二部分 教学内容与要求
第一章 软件测试基础知识(4学时)
一、教学要求
1.掌握软件测试的含义 2.掌握终止软件测试的因素
3.掌握软件测试的分类(按照不同维度如何划分软件测试的类型)4.理解软件质量的含义以及软件质量保证与软件测试的区别 5.理解软件测试学科的发展历史以及现阶段存在的问题 6.理解软件测试的原则
7.了解软件测试的必要性和目的
二、教学要点
1. 软件测试的基本概念 2. 软件测试的原则 3. 软件测试的分类
三、教学重点和难点
1.软件测试的含义及分类 第二章 软件测试过程模型与标准(2学时)
一、教学要求
1.掌握V、W、H、X软件测试过程模型的特征,以及各自的优缺点 2.理解软件测试标准(以ISO/IEC 29119为主)的内容以及实施方式 3.理解软件测试规范 4.理解TMap测试体系
上海开放大学《软件测试》课程教学大纲
5.了解软件测试过程改进模型(TMM、TPI、CTP、STEP)的实际用途,以及各种测试改进模型的内容。
二、教学要点
1. V、W、H、X软件测试模型 2. 软件测试标准与规范
三、教学重点和难点
1.V、W、H、X模型的特征与优缺点 第三章 静态测试技术(2学时)
一、教学要求
1.掌握代码走查的含义与过程
2.理解静态测试的原则,静态测试的方法分类 3.理解代码检查与技术评审的含义与基本内容
4.了解静态测试的含义,静态测试技术与动态测试技术的区别
二、教学要点
1. 静态测试技术的基本概念 2. 代码走查的含义与过程 3. 正式技术评审的概念
三、教学重点和难点
1.代码走查的含义与过程
第四章 黑盒测试方法(8学时)
一、教学要求
1.掌握黑盒测试的基本概念
2.掌握等价类划分法、边界值分析法、因果图法、基于判定表等黑盒测试方法 3.理解错误推测法、基于场景的测试、正交实验法等黑盒测试方法 4.了解黑盒测试方法的选择策略
二、教学要点
1. 黑盒测试基本概念 2. 等价类划分法 3. 边界值分析法 4. 因果图法 5. 判定表法
三、教学重点和难点
重点:
1.等价类划分法、边界值分析法、以及这两种方法的结合 2.因果图法、判定表法 难点:
1.使用各种测试方法设计黑盒测试用例 第五章 白盒测试方法(8学时)
一、教学要求
1.掌握白盒测试的基本概念
2.掌握逻辑覆盖、基本路径覆盖白盒测试方法
3.理解其他白盒测试方法(循环测试、数据流测试、变异测试、域测试、Z路径覆盖)
上海开放大学《软件测试》课程教学大纲 的内容及其对逻辑覆盖测试的补充 4.了解白盒测试方法的选择策略
二、教学要点
1. 白盒测试基本概念 2. 逻辑覆盖测试 3. 基本路径测试
4. 开源白盒测试工具的使用方法
三、教学重点和难点
重点:
1.逻辑覆盖测试的各种覆盖准则的含义及测试用例设计方法
2.基本路径的概念、程序环路复杂度的计算方法以及基本路径测试用例设计方法 难点:
1.使用各种测试方法设计白盒测试用例 2.使用工具执行测试用例 第六章 单元测试(4学时)
一、教学要求
1.掌握单元测试的基本概念
2.掌握使用使用xUnit测试框架进行单元测试的基本过程 3.掌握JUnit、JMock工具的基本使用方法
二、教学要点
1. 单元测试基本概念、目标与任务
2. 驱动程序与桩程序的概念以及构造方法 3. xUnit测试框架 4. Junit及其使用方法
三、教学重点和难点
1.使用Junit与Jmock搭建单元测试环境 2.编写、执行单元测试用例
第七章 集成测试(4学时)
一、教学要求
1.掌握集成测试的基本概念 2.掌握集成测试的方法与策略 3.理解回归测试的目的与过程 4.了解持续集成的基本概念
二、教学要点
1. 集成测试的概念、测试环境与基本过程 2. 集成测试的策略及各自的优缺点
三、教学重点和难点
1.集成测试的不同策略(大爆炸、自顶向下、自底向上、三明治集成)第八章 系统测试(2学时)
一、教学要求
1.掌握系统测试的基本概念
2.掌握功能测试、性能测试、容量测试、负载测试的概念
上海开放大学《软件测试》课程教学大纲
3.掌握性能测试的基本方法
4.理解系统测试的测试环境以及测试对象
二、教学要点
1. 系统测试的基本概念、测试环境与基本过程 2. 功能测试
3. 性能测试、压力测试、容量测试以及负载测试 4. 系统测试工具
三、教学重点和难点
1.负载测试的策略
2.性能测试、压力测试与容量测试的目标、相同点与不同点
3.性能测试工具(JMeter)的测试用例设计、执行脚本录制与执行测试用例 第九章 验收测试方法(2学时)
一、教学要求
1.掌握验收测试的基本概念与类型 2.掌握α测试与β测试的基本概念
3.了解验收测试的必要性,验收测试的标准
二、教学要点
1. 验收测试的基本概念与类型 2. α测试与β测试
三、教学重点和难点
1.α测试与β测试的基本概念、相同点与不同点
第十章 面向对象测试(4学时)
一、教学要求
1.掌握面向对象测试的基本概念
2.掌握面向对象的测试模型以及面向对象测试的分类 3.掌握面向对象的单元测试、集成测试、系统测试方法 4.理解面向对象测试的模型与过程
5.了解基于缺陷、基于类层次划分、基于类行为模型的面向对象测试方法的概念
二、教学要点
1. 面向对象的单元测试方法 2. 面向对象的集成测试方法 3. 面向对象的系统测试方法
三、教学重点和难点
1.面向对象测试中一般类的不同类型(非模态类、单模态类、准模态类、模态类的概念)
2.针对一般类的单元测试方法
3.针对特殊类(抽象类、泛型类)的单元测试方法与原则 第十一章 专用应用系统测试(2学时)
一、教学要求
1.掌握数据库测试的测试目标与测试过程 2.掌握Web应用系统测试的实施过程
3.理解GUI测试的基本概念、测试原则与测试内容
上海开放大学《软件测试》课程教学大纲
二、教学要点
1. 数据库测试
2. Web应用系统测试 3. GUI测试
三、教学重点和难点
1.Web应用系统的功能性与性能测试 2.数据库的功能性与性能测试 3.数据库测试的典型场景
第十二章 软件测试管理(2学时)
一、教学要求
1.掌握测试缺陷管理的基本概念,缺陷程度的划分,软件缺陷的度量方式
2.理解测试配置管理的基本概念、目标、角色与实施步骤,常用的配置管理工具及其能力
3.了解测试计划的制定、测试工作量的估算方法,测试团队的组织模式与原则,测试过程监控的实施方式,测试文档的类型及各自应包含的内容
二、教学要点
1. 缺陷管理 2. 测试配置管理
三、教学重点和难点
1.缺陷管理的基本概念 2.测试配置管理的基本概念
第三部分 课程实践
本课程实践教学环节由四个课程实验组成,共计20学时,具体包括: 实验
一、白盒测试与黑盒测试用例设计(8学时)
要求:给定待测软件的需求描述和程序流程,利用等价类划分、边界值分析、因果图、判定表等方法设计黑盒测试用例,利用语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖等方法设计白盒测试用例,并撰写测试用例设计文档。
实验
二、Java程序单元测试(4学时)
要求:掌握利用Junit和Jmock进行Java程序单元测试的基本过程和基本方法。
实验
三、Web应用系统功能测试(4学时)
要求:使用开源Web功能测试工具MaxQ对给定Web应用系统进行功能测试。
实验
四、Web应用系统性能测试(4学时)
《计算机组成原理》是高校计算机专业的重要专业基础课程之一,是所有后续硬件专业课的基础和支撑,是计算机专业研究生入学考试的专业课之一。与此同时,它更是一门应用性和综合性很强的专业课程,它既有自身的完整理论体系,有很强的实践性。具有知识面广、内容多、抽象枯燥、难理解、更新快等特点。因此,如何把握住课程的主线和重点,是学生扎实掌握计算机系统各部分的工作原理,牢固建立整机概念,同时强化硬件实践,培养学生的创新理念和创新能力,成为该精品课程改革的重要和迫切议题。因此,如何引导学生学好这门专业课,对于他们日后专业的学习和进一步深造都具有着重要的意义。
二、计算机组成原理课程教学现状
随着计算机技术和电子技术的飞速发展,计算机内部结构日趋复杂、庞大和高度集成化。然而,《计算机组成原理》课程教学长期以来以理论教学为主, 另外,还有一些相应的实验教学。经过几年的独立教学实践,在教学活动的开展上,遇到了许多的问题。
(1)、课程难度大
本课程理论性特别强,大部分知识点偏向于硬件内容,知识点多,内容上有难度、有深度、大部分芯片的工作原理比较抽象,导致教师很难用生动的语言组织教学内容,学生也很难理解那些逻辑性很强的抽象知识点。在教学中,如何帮助学生建立起本门课程的核心思想--"整机"概念是关键。
(2)、学生学习态度存在问题
通过不断与学生沟通交流,发现大部分学生在计算机组成原理这门课程认识上存在很大的误解,这导致他们学习积极性的降低。首先,由于前导课程《数字逻辑》的难度,导致学生在本课程开始前就产生了畏惧的心理,认为关于硬件课程涉及的知识重点难点多,难以掌握,缺乏自信心。其次,许多学生认为《计算机组成原理》是一门只有理论的课程,枯燥、无味、难学、难懂、概念抽象、感性认识差,因此,在学生的学习过程中具有较大的难度, 教学效果很难达到理想的水平。没有学习的兴趣和积极性。最后,计算机实验课程的基础部分大同小异, 但缺少一个综合的、全面的实验体系、学生虽然能够完成每次的实验,但是不能做到举一反三。由于实验学时的限制, 难以组成综合实验, 不利于学生综合实践能力的提高。
针对以上实践教学现状, 我们必须积极探索计算机组成原理课程实践教学改革, 并进行大胆实践。
三、实践教学的研究
本课程开设以来,我一直致力于教学改革,通过多年的探索和实践,确立了课程建设的指导思想--"让学生熟悉计算机各功能部件组成及工作原理,掌握计算机的工作过程及各部分之间的联系,明确数据流和控制流在机内的流动,建立整机概念,为学习后续课程打下良好的基础,并通过面向问题求解能力的培养,提高学生的创新能力";明确了课程建设的近期目标--"夯实基础-培养能力-省内一流"。
(1)、建立实验教学体系
由于《计算机组成原理》课程难度大而且内容抽象,仅以授课方式向学生强行灌输,没有足够的实验的配合,教学目标无法达到。为了培养学生的硬件动手能力,在学院的大力支持下,我们学校购置了能够同时满足一个班实验需求的组成原理实验箱,为实验教学的顺利开展提供了保障。
(2)、精选教材,合理组织教学内容
目前,在高校里用到的《计算机组成原理》的教材较多,而我们从众多教材中选择了唐朔飞的《计算机组成原理》。这本教材中,涵盖的知识范围广,而且易于理解,能够让学生更容易理解计算机各部件的工作原理。由于计算机组成原理是硬件和软件的综合体,而这本教材让学生掌握如何在硬件的基础上提高软件的运行效率。
(3)、注重教学方法的创新
传统的教学方式是"满堂灌", 老师和学生不能很好的互动起来。由于计算机组成原理的理论知识比较强,真正动手做的次数较少,所以学生们会觉得非常枯燥。因此,在实施教学过程中,尽量采用启发式、讨论式、引导式等多种灵活的教学手段,引导学生自觉、主动地从事学习活动,培养学生的独立思考能力和创新意识。在教学的过程中,有目的的给他们安排一些经过周密考虑的具有一定代表性和实际意义的课题或小型项目,简要提示解决问题的思路,让学生通过讨论、查资料、做实验和社会调查等方式完成任务来感悟和理解相关知识及应用,通过完成一个个具体的课题,达到融会贯通一门专业课知识的目的, 有效地培养了学生的团队精神和利用所学知识解决实际问题的能力。这样我们逐步引导学生的思考、激发学生的创新性特征。在他们不经意间学习知识,既轻松,又快乐。
另外,还要改变仅依靠教科书实施课程的做法,要合理充分的利用学校内外的各种教育资源。调整图书馆藏书结构,转变服务方式,提高使用效率;重视实验室、专用媒体教室及各类实训基地的建设;广泛利用蕴藏于学生生活、社会和自然之中的教育资源;积极鼓励开发网络信息化课程资源,增加课程的开放性和灵活性。
(4)、培养学生的学习主动性和积极性
由于本课程为硬件课程,课堂讲授主要为教师讲,学生听,不像软件课程教学可以现场使学生看到理论在实例中的应用,无法激发学生的学习热情。建立以学生为主体的教学理念,让他们上课不再是一味的听教师讲课,教师应该不断就知识点提出问题,引发学生的疑问,让学生带着问题进入教学活动。在课前组织学生讨论问题,调动学生的积极性,让他们参与到教学过程中来,改变学生被动接受知识的情况。培养学习兴趣,激发学生的学习热情。另外,鼓励学生参与教师科研课题研究,充当科研助手,通过开展科研活动与学术研究来培养学生的能力,从而增加他们对计算机组成原理的好感。
四、结束语
当今信息时代,计算机技术已广泛应用到各 (下转第178页行各业,随着我国经济的不断发展,信息技术人才需求不断增加,各高校争相培养国家紧缺的IT职业人才。正如周恩来总理所说"加紧学习,抓住中心,宁精勿杂,宁专勿多。"学生在学习的过程中,要讲究学习方法探究和总结。而我们教师则是要不断的探索新的教学方法,激发学生的学习兴趣。另外,在教学实践中还采用启发式教学,提高学生的学习欲望。
参考文献
[1]蒋本珊.计算机组成原理[M].北京:清华大学出版社, 2004.
[3]汪文."计算机组成原理"课程的教学探讨[J].中国地质教育, 2002, (1) :31-33.
[4]李继芳."计算机组成原理"教学方法的实践与探索[J].浙江万里学院学报2004, (4) :27.
关键词:计算机组成原理;虚拟实验;Visual C++6.0;图形用户界面
中图分类号:G434 文献标志码:A 文章编号:1673-8454(2015)04-0080-03
一、 引言
《计算机组成原理》是计算机专业的专业基础课,既具有很强的理论性,生涩难懂,又具有很强的实践性,需要在搞好课堂教学的同时加强实验教学。[1]《计算机组成原理》实验一般分解为运算器、存储器、微程序控制器等若干个实验单元,在有限课时的教学进度下逐一安排教学。由于实验设备电路复杂、排布线密度高、调试困难等众多因素影响,学生很难在实验室巩固和掌握课堂内容。[2]
为此,笔者在实验教学过程中结合西安唐都公司开发的TDN-CM+计算机组成原理教学实验系统,采用面向对象的Visual C++6.0软件,基于Microsoft Foundation Classes(MFC)类库,分析、设计并实现了一个计算机组成原理虚拟实验系统。该系统简单、可靠,能够移植到大多数Windows环境的PC机,学生能够在课外自由安排实验时间,完成对课堂和实验室内容的补充学习,进而改善教学效果。
二、 虚拟实验系统的设计
1.TDN-CM+计算机组成原理教学实验系统简介
TDN-CM+计算机组成原理教学实验系统采用部件单元式结构,包括运算器、存储器、控制器、总线、外围接口及输入输出设备、大规模可编程逻辑器件等。线路板上设置了大量的开关、指示灯、插线孔等,学生可根据自己设计的模型计算机结构方案,运用排线连接方式或计算机电子自动逻辑设计方式来构造不同结构及复杂程度的原理性计算机,并观察系统运行过程中各种数据和控制信号状态及其时空关系。系统微程序指令、控制器结构及运算器结构的格式及定义均可由学生根据学习需要灵活改变或重新设计,避免了单纯验证性的实验模式,提高了学生计算机系统的综合设计能力。
2.计算机组成原理虚拟实验系统的设计
计算机组成原理虚拟实验系统是对TDN-CM+系统的仿真,设计中除了要保持用户界面的一致性,还要方便用户操作和确保实验结果的高度准确,即简洁性和可靠性。计算机组成原理这门课程主要介绍各主要功能部件的基本结构和工作原理。[3] [4] 因此,本系统在设计中利用面向对象程序设计方法,对TDN-CM+系统的运算器、存储器、微程序控制器和数据通路等功能部件进行仿真,并通过课程设计实现一个较完整的模型机,在实验中了解、熟悉完整的单台计算机基本组成原理。
为方便教学和师生交流,还需实现教学模块。学生从实验列表中选择要进行的实验项目。在做实验之前,用户可以查看实验项目的实验指导,了解实验的原理、要求和注意事项,然后通过播放实验项目教学演示录像加深理解。每个实验都准备了一定数量的填空题和选择题,学生在完成实验后填写好答案提交后,系统即可自动给出得分。
虚拟实验系统总体结构如图1所示。
三、 虚拟实验系统的开发
1.实验操作界面的开发
为了保证虚拟实验系统与TDN-CM+系统的一致性,让用户获得良好的体验,本虚拟实验系统采用图形用户界面。系统界面采用数码相机拍摄,截取出各个按钮、元件、开关、LED灯、插头等图片,用Photoshop进行优化,并对应加载VC++的静态控件和按钮控件。
本系统由学生自主插线,线区位于主界面右侧,线型分为二、四、六、八口线。点击线区内线型号标识生成对应型号的线,拖拽线头移动到相应接口,在控制信号的控制下产生流通数据。主界面的开关分为数据开关和控制开关,利用鼠标左键点击主界面上的模拟开关,即可产生数据或控制信息。为提高虚拟实验教学效果,本系统对用户的错误操作做出更正提示。例如,如果在电源打开状态下进行插线,系统将会弹出“请先关闭电源”的对话框,其他漏连、连错、反向等错误操作产生的效果类似。虚拟实验界面和操作效果与真实系统保持完全一致,主界面如图2所示。
2.存储器虚拟实验的具体实现
下面以存储器虚拟实验为例,说明本虚拟实验系统的虚拟实现原理。存储器是计算机进行各种信息存储和交换的中心,存储器的实验操作包括写入数据和读取数据。[5] 写存储器的操作步骤为数据开关输入访存地址,将地址存入地址寄存器;再从数据开关输入数据,若ROM存储器的片选信号和写信号有效,将数据存入由地址寄存器给出的RAM响应地址的存储单元中。读存储器的操作步骤为数据开关输入访存地址,将地址存入地址寄存器;若RAM存储器的片选信号和读信号有效,从响应地址中读出存储单元中的数据。数据写入和数据读取均需要操作相应的控制信号来使相应部件执行所规定的操作。程序流程图如图3所示。
线的产生与操作、信号的产生与传递的具体实现如下:
(1)线的产生
线区共有八口线、六口线、四口线和二口线四种接线供选择。通过矩形类CRect设置响应产生新线的区域,点击该区域,调用成员函数PtInRect(),如果生成新线变量preplug =FALSE,产生新线;如果线的类型变量linetype=2,产生二口线;如果preplug =TRUE,弹出对话框“当前还有线未用”。
(2)线的操作
包括删除、移动、旋转以及与线柱的连接。通过矩形类CRect设置响应删除线的区域,只有线的两端portA、portB皆处于删除区才调用RemoveAt()函数删除。
移动接口变量movingport='A'表示移动的是A端,B端静止。调用MoveTo()和LineTo()函数绘制线。
线柱分为横向线柱和竖向线柱。按下鼠标右键时调用函数OnRButtonDown()实现接口的旋转,鼠标右击一次,线顺时针旋转90度一次。旋转接口变量direction等于2和4表示线横向,等于1和3表示线竖向。
通过矩形类CRect对象设置响应插线区域,如INPUT DEVICE区SW_B线柱,用CRect对象PutLine_SwitchSWB_click()设置插线响应区域,Removeline_SwitchSWB_click()设置拔线响应区域。调用OnLButtonUp()函数和OnLButtonDown()函数分别完成插线操作和拔线操作。
(3)信号的产生
信号根据其作用可分为数据信号和控制信号两种。各按键的响应函数具体实现如下:
①电源开关响应函数:电源变量power = TRUE,电源打开,才会更新数据,包括各种数据的输入与输出,控制信号的传递等;power = FALSE,电源关闭,通过调用Clearmem()函数清空存储器,重置地址寄存器地址变量data=255。
②数据开关控制开关响应函数:用字符型变量data代表线与线之间传递的信号。data值从高位到低位依次代表数据开关按钮D7-D0的输入值,对应位为低电平则加载向上拨的电平开关。因为控制信号均由二口线传递,所以用data高二位表示电平的高低,data=0代表低电平,其他非零情况代表高电平。
③start键响应函数:按下start键时调用OnLButtonDown()函数,将控制信号赋给变量TS3。
(4)信号的传递
指针puton为指向插在线柱上的线,为NULL表示没有插线。在插线状态下,通过按钮产生信号并传递,例如连接好INPUT DEVICE区和SWITCH UNIT区的SW_B线柱后,点击SWITCH UNIT区SW_B按钮,产生控制信号data,通过调用 Exportdata()函数和Inportdata()函数分别传出和接收控制信号data,控制数据开关输入的数据信号传递到数据总线,并通过总线LED灯显示。存储器实验数据信号、控制信号流向如图4。
四、 结束语
《计算机组成原理》实验连线繁多,操作复杂,虚拟实验系统可以帮助学生实验前熟悉实验操作,减少由于学生错误操作导致的芯片损耗、仪器破坏,有效降低维护成本。学生可以随时随地做实验,不再受场地、课时的限制,有助于加深学生对实验原理的理解,提高教学质量。通过对计算机组成原理虚拟实验系统的测试,采用全软件形式模拟计算机硬件实验系统,具有方便快捷、高效、交互性强等优势,不仅能够完成计算机组成原理实验的要求,还提高了教师工作效率,增强了学生实践能力,具有在实验教学中推广和应用的价值。
参考文献:
[1]王玉华,黄硕之.计算机组成原理课虚拟实验方案[J].实验技术与管理,2005(4):73-75,80.
[2]郝尚富,张志强,孙佰利.计算机组成原理虚拟实验环境的设计及实现[J].计算机仿真,2009(11):320-323.
[3]陈智勇.计算机组成原理[M].西安:西安电子科技大学出版社,2009.
[4]白中英,戴志涛.计算机组成原理[M].北京:科学出版社,2013.
[5]王贤勇,王金亮,许艳丽.基于软件仿真的存储器实验设计[J].实验室研究与探索,2006(7):803-805.
【计算机组成原理--课程设计指导书】推荐阅读:
计算机组成原理任务书07-02
计算机组成原理考试题07-22
二、计算机的组成 教学设计06-11
计算机辅助设计CAD课程标准09-25
计算机原理教学计划10-16
计算机网络原理实验二06-18
计算机专业论文写作指导07-23
计算机基础课程建设06-05
计算机基础课程实验报告11-09