类比法在“计算机组成原理”课程教学中的应用
2012-01-11杨松涛王宗殿
俞 磊,杨松涛,王宗殿,黄 静
(安徽中医学院 医药信息工程学院,安徽 合肥 230031)
“计算机组成原理”是计算机类专业一门重要的专业基础课程,主要介绍计算机各部件的功能组成和工作原理,旨在使学生掌握计算机系统的基本设计技术,培养他们分析和解决计算机系统实际问题的能力[1-2].从专业课程体系来讲,该课程是“数字逻辑”和“汇编语言程序设计”的后继课程,同时也是“微机原理和接口技术”、“操作系统”、“编译原理”、“计算机系统结构”、“嵌入式系统”等课程的先修课程之一,在整个课程体系中起到承上启下的作用,占据着非常重要地位.
然而从教学的实际情况来看,这门课程普遍存在着“难学难教”的现象,主要原因是该课程属于硬件课程,概念多而且抽象,初学者理解起来难度较大.另外,该课程以技术描述内容居多,很多都是讲原理,既没有“离散数学”那样的证明和推导,也没有“数据结构”和“编译原理”那样的算法介绍与分析,初学者常会觉得理论规律性不强,把握起来很困难.
针对上述状况,改进该课程的教学方法势在必行.现在大多数的学校都已普遍采用多媒体教学,相对于传统的“一支粉笔+一块黑板”的板书教学,该方法信息量大,教学过程更为直观.但是多媒体毕竟只是一种辅助手段,教师的讲授在整个教学中的作用仍是至关重要的,这就需要把其他一些有效的教学方法融入到该门课程的教学中来.对于这种概念原理较为抽象的硬件课程而言,类比法是一种非常好的教学方法.类比是举例和比较的综合,目的是用一个具体、熟悉、容易理解的事物,以比较的方式,来说明一个抽象、生疏、难懂的事物,可以是概念的比较、实物的比较、定律(或规律)的比较、结构的比较、原理的比较、思路的比较、状态的比较等[3-5].笔者结合教学实践,探讨了类比法在“计算机组成原理”课程教学中的具体应用.
1 类比法在“计算机组成原理”教学中的具体应用
在该门课程的教学中,适当的运用类比方法,将难懂的概念和原理类比成学生可理解并接受的事件,然后再扩展成书本上的内容,实践证明这样教学效果非常好.下面就按照教材中知识点的顺序,举几个例子来谈一谈.
1.1 计算机的工作原理
计算机又称“电脑”,之所以称为电脑,是因其具有人脑的功能,有记忆能力和计算能力等,是一个智能工具,所以在讲授计算机工作原理时可以由“人”进行类比.例如,一个人看到式子“1+1=”时会脱口而出“等于2”,从这一事件上可得知人脑的工作过程:首先是眼或耳把“1+1=”信息送入大脑,其次是大脑对输入的信息分类,“1”是数据,“+”和“=”为指令,最后计算,通过口说出结果或通过手在纸上写出结果.听、看、说、写是在大脑控制下完成,大脑起到运算、控制和记忆的作用.由此类比到电脑,在其运算器、控制器、存储器、输入设备和输出设备这五个组成部分中,前三部分相当于大脑,输入设备相当于耳和眼,输出设备相当于手和口.从简单的类比中就可得出计算机的工作原理,先通过输入设备输入信息,接着控制器分析是数据还是指令,然后分别发出控制信号,以此完成输入、运算和输出.
以上谈的是计算机整机的工作原理,实际上每一部件具体的工作原理也可进行简单的类比,比如在讲述存储器的读、写时可分别与银行的取钱、存钱相类比,不仅形象生动,而且相关的时序问题也容易理解了.
1.2 补码的概念
在先行“C语言程序设计”课程中曾提及过补码,但只是告诉学生怎样求解补码,现在在“计算机组成原理”课程中又提及补码,是要求学生理解为什么在计算机的运算中需引入补码,这是个难点,可通过钟表对时的方法进行类比.假设现在的标准时间为4点整,而表上的时间已经7点整,为了校准时间,可采用两种方法:要么将时针退7-4=3格,要么将时针向前拨12-3=9格.这两种方法都能对准到4点,由此可看出,减3和加9是等价的,就是说9是(-3)对12的补码,可以用数学公式表示-3=+9(mod12),其中mod12的意思就是对12取模.之所以7-3和7+9(mod12)等价,原因就是表指针超过12时,将12自动丢掉,最后得到16-12=4.通过这个例子的类比,再跟学生指出在计算机中负数用补码表示的原因是为了把减法转化为加法,方便的实现运算.这样,学生对计算机中补码的引入以及模运算就非常清楚了.
1.3 浮点数的表示及其相关运算
在讲浮点数的表示时,先带学生回忆他们都非常熟悉的科学计数法.科学计数法有尾数和指数的概念,浮点数分别对应为尾数和阶码.并且,浮点数多了“基数”的概念,对于二进制计数的机器来说是一个常数,一般规定为2、8或16,而科学计数法中多是用在十进制中,所以一般为10.这样,由科学计数法类比到计算机中浮点数表示法,学生就非常容易理解了.
另外,科学计数法中的尾数是有要求的,小数的整数部分为1到9,如果不符合这一要求就要调整相应的指数和尾数(须保持数值不变),使之符合要求.同样,类比到浮点数的表示,尾数也是有要求的,当尾数的值不为0时,其绝对值应≥0.5,即尾数域的最高有效位应为1,否则应修改阶码同时左右移动小数点(须保持数值不变),使其变成符合要求的形式,这就是浮点数的尾数规格化.接下来,关于浮点数的加减乘除等运算,让学生无需去强记相关法则,只需根据由两个科学计数法表示的小数的运算过程去类比浮点数的相应运算过程就可以了.比如,两个指数不一样的科学计数法表示的小数相加,若指数不同肯定要先将指数调整为相等数值,然后再把各自的尾数相加才可以.同理,在计算机浮点数运算中也是如此,这一过程叫做“对阶”.这样,学生就轻松理解了.
1.4 Cache的地址映射方式与替换策略
主存与cache的地址映射对于初学者很抽象,不好理解,但是道理与学生到阅览室找空座位看书非常类似,主存中的块相当于学生,cache相当于阅览室,cache中的块相当于阅览室中的空座位.直接映象方式是主存中的任一块只能被放置到Cache中唯一固定的一个位置上,相当于每个要看书的学生在阅览室只有唯一固定的一个座位可以坐.全相连映像方式是主存中的任一块可以被放置到Cache中任意一个位置上,相当于阅览室的座位每个学生可以随便坐,只要当前这个座位是空着的.组相联映象方式是主存中的任一块可以被放置到Cache中唯一固定的一个组中的任何一个位置,相当于这个学校有多个班级,每个班级只能占用一个阅览室,并且是固定的,但是每个班级的学生在进入他们班所固定对应的阅览室时,其中的座位是随便坐的,只要当前该阅览室有空座位可坐就行.
接下来再讲cache的“置换策略”就很容易了,就好比当前所有阅览室的所有座位都已占用,而此时又有学生要进来找座位看书,那只有一种方法,让里面的学生出来腾出座位让外面的学生进来看书.但是让哪个学生出来呢,总要遵循一定的原则,比如随便抓阄法,抓到谁谁出去,还有谁最先进来的谁出去,另外还有谁最近一段时间进来后并没有认真看书的出去.于是很自然的引出随机法、先进先出法FIFO、最近最少使用法LRU方法等.
1.5 指令寻址方式
对于指令的寻址方式,可通过一些生活中常见的事例进行类比,帮助理解.如你想找一个人A,若A与你同在一个办公室工作,你可在办公室立即找到他,这就是立即数寻址的含义;若他与你不在同一单位工作,但你能打听到他的家庭住址,根据家庭地址可以找到他,这就是直接寻址的含义;若你不知道A的家庭住址,但你知道B的家庭地址,而B知道A的地址,你可通过B打听到A的地址,从而找到A,这就是间接寻址的含义.
1.6 电位和脉冲体制的概念
在讲“电位、脉冲体制”时,首先要讲数据通路.这是一个很抽象的概念,为帮助学生理解,可借助城市自来水管网模型[6]进行类比:来自控制器的控制信号将数据打入寄存器就相当于打开水龙头将水放入容器内,一个多路选择器就相当于一个容器内有多个进水口,每次只能打开一个.这样一来,微程序控制器中控制时序的“电位、脉冲体制”就好理解了:自来水管中水的水压、体积等属性由水管中的水压和水流速度决定,而流出水流的起止时间以及时间长度由打开水龙头的起止时间决定,由此类比到“电位、脉冲”体制就是输出信号的电压、电荷属性和数据属性由电位决定,而输出信号的起止时间以及维持时间长度由脉冲决定.
1.7 CPU流水线的工作原理
在讲流水线时,可通过工厂生产产品进行类比.假设需要生产甲、乙、丙、丁、戊五个产品,每个产品须经过工序1、工序2、工序3和工序4四道工序,每道工序的生产时间为t.如果只有一个工人工作,那就要先进行第一个产品的四道工序作业,生产出第一个产品,再进行第二个产品的四道工序作业,接着再进行第三个产品的四道工序作业.依此类推,则生产出五个产品总共需要的时间就是20t.
如果采用流水线作业,A、B、C、D四个工人分别负责工序1、工序2、工序3、工序4的生产,前提是A、B、C、D四个工人能同时工作,并且四道工序有顺序规定,后面工序只有等前面工序完成之后才能进行.则具体作业流程是:工人A先进行第一个产品甲的工序1作业,此时另外三个工人B、C、D等待.当工人A进行下一产品乙的工序1作业时,工人B开始工作,进行第一个产品甲的工序2作业.当结束之后,工人C开始工作,进行第一个产品甲的工序3作业,而工人B则进行第二个产品乙的工序2作业,工人A进行第三个产品丙的工序1作业.当这步结束之后,工人D开始工作,进行第一个产品甲的工序4作业,而工人A进行第四个产品丁的工序1作业,工人B则进行第三个产品丙的工序2作业,工人C进行第二个产品乙的工序3作业.至此,四个工人已全部开始工作.根据上述流程,画出工作示意图,如图1所示,则生产五个产品的时间总共是8t,显然提高了工作效率.经过这样的类比之后,再来讲述计算机中流水线的相关概念和原理,就非常容易理解了.
图1 工作示意图
1.8 总线的仲裁方式
总线的仲裁方式也是难点,可采用类比法帮助学生理解.比如在讲“链式查询”方式时,可类比成学生在食堂排队等着吃午餐[7]的情境.餐点是一样一样的出来,每次只能是一个同学吃到(部件获得总线的控制权),谁吃到由老师判定(总线仲裁器判定总线的授权).第一次出来一个包子,因为并不是所有的同学都喜欢吃包子,谁想吃就向老师提出申请(同一时刻,可能有几个部件向总线仲裁器提出总线请求),在这种方式下,老师会将包子传递给离他最近的同学(链式仲裁优先级最高的部件离仲裁器最近).如果这个同学刚才没有发出要吃包子的申请,就会传给他的下面同学,依次类推,直至传到刚才发出了吃包子请求的第一个同学为止,那么他得到了吃包子的权利(在刚才发出请求的部件中离仲裁器最近的获得了总线的控制权).然后根据此情境进行总结:链式查询的优先级是固定的,某个部件只有在它前面所有部件都没有提出申请的情况下才会获得总线控制权.这样一来,学生在轻松快乐中就理解了这个原理.
1.9 基本输入输出方式
在讲基本信息输入输出常用的程序查询方式、程序中断方式、直接内存访问(DMA)方式和通道方式时,如果按部就班,分别讲述每种方式的原理、特点,学生会觉得抽象枯燥,不易理解.可通过幼儿园小孩分糖果的例子进行类比,帮助他们理解.这个例子的描述是:假设幼儿园一个阿姨带10个孩子,要给每个孩子分4块水果糖.假设孩子们能把4块糖都吃完,那么这个阿姨应该采用什么方法呢?
方法1:她先给孩子甲一块糖,盯着甲吃完,然后再给他第二块,等他吃完后又给他第三块,吃完后再给他第四块.接着再分糖给孩子乙,其过程与对孩子甲完全一样.依次类推,直至给第10个孩子发完四块糖为止.看来这种方法效率太低,孩子们吃糖时她一直在旁守候,什么事也不能干.
方法2:给孩子们每人发一块糖各自去吃,并约定谁吃完后就向她举手报告,她再发第二块.看来这种新方法提高了工作效率,而且在未接到孩子们吃完糖的报告以前,她还可以腾出时间给孩子们改作业.但这种方法还可以改进,具体如方法3.
方法3:进行批处理,分别给每个孩子拿4块糖各自去吃,要求孩子们把分到的4块糖全部吃完后再向她报告.显然这种方法工作效率大大提高,她可以腾出更多的时间改作业.
方法4:权力下放,把发糖的事交给另一个人分管,只是必要时她才过问一下.
在举过这个简单的例子之后,把计算机系统中信息输入输出的四种方式分别与上述的四种发糖方法进行类比.程序查询方式与第一种方法相仿:数据在CPU和外围设备之间的传送完全靠计算机程序控制,外围设备动作往往很慢,所以程序进入查询循环时将白白浪费时间,一直等待,不能处理其他业务;程序中断方式和第二种方法相类似:一个中断发生时,CPU暂停它的现行程序,转向中断处理程序,等中断处理完毕后,CPU又返回到它原来的任务中,并从方才停止的地方开始继续执行程序;直接内存访问(DMA)方式和第三种方法相仿:DMA控制器从CPU那完全接管对总线的控制,数据交换不经过CPU,而直接在内存和外围设备之间进行,以便高速传送数据;通道方式与第四种方法相仿:通道是一个具有特殊功能的处理器,可实现对外围设备的统一管理和外围设备与内存之间的数据传送,CPU将部分权力下放给通道,大大提高了CPU的工作效率.这样,学生对这四种方式理解起来就非常容易了.
另外,在分别详细的讲述每种方式时还可采用类比方法帮助学生理解.比如在讲述中断概念和过程时,可与平常秘书在办公室接听电话进行类比.秘书正在做某一件事情(相当于CPU执行主程序)时,忽然听到电话铃声响起(相当于有中断请求),此时秘书暂时停下手边的事情(相当于中断主程序),去接听电话(中断响应),接听电话(执行中断服务程序)完毕后,再返回(中断返回)来继续做原来事情(继续执行主程序).
2 类比法在“计算机组成原理”教学中应注意的问题
在运用类比法进行教学时,要注意类比的两事物是在某些属性上具有相似性(授课时正是抓住类比事物的相似性去帮助学生理解新知识),但绝非等同,对于它们之间的差异性要在讲课时正确的引导学生,以免学生在理解上出现偏差.
另外,类比法不是由个别到普遍的推理,仅仅是一种由个别到个别,或是由一类到一类的推理,所以类比法的前提和结论之间的联系是否正确必须要经过检测,如果失败则须重新寻找合适的类比实例,否则会适得其反.所以,在教学实践过程中类比实例库需不断的更新、完善和丰富,这是一个积累的过程.
此外,还应注意类比的作用是有限的,只能帮助理解但不能代替对知识的正面阐述,所以运用过类比之后,还需将相应的概念再正面阐述一下;这是至关重要的,因为类比的最终目的是加深学生对讲授知识点的理解.作为授课教师千万不能本末倒置,把类比的内容重点详细讲,对真正所要讲授的知识内容却一笔带过,这样就喧宾夺主了.
3 结束语
“计算机组成原理”是计算机类专业一门重要的核心专业课程.运用类比法进行教学,可以使学生温故知新,找到新旧知识之间的联系,减少对新知识的畏难情绪,提高他们的学习兴趣,对于教师而言也有利于帮助学生透彻理解,提高教学效率.实践证明,对于这门抽象枯燥的原理课,类比法是一种切实可行的教学方法,今后在这门课程的教学实践中,要继续完善和丰富类比实例库,同时也需积极融合其他较好的教学方法,争取取得更为满意的教学效果.
参考文献:
[1]黄岚,程新荣,袁钢,等.计算机组成原理课程教学之管见[J].高等农业教育,2005,12(12):68-69.
[2]赵正平.“计算机组成原理”课程教学方法改革探讨[J].阜阳师范学院学报,2007,24(4):87-88.
[3]李建.浅谈类比法在高职高专计算机基础教学中的运用[J].桂林师范高等专科学校学报,2009,23(2):173-176.
[4]刘任熊.类比法在“计算机网络基础”教与学中的作用[J].信息系统工程,2010(6):119-121.
[5]刘任熊.巧用类比法掌握计算机网络概念八例[J].电脑知识与技术,2010,6(18):4892-4893.
[6]黎慧,刘旭明.计算机组成原理课程教学探讨[J].信息技术,2007(15):85-86.
[7]俞磊,王宗殿,杨松涛,等.医学信息类专业“计算机组成原理”教学探讨[J].电脑知识与技术,2010,6(4):924-925.