计算机组成原理微课版(第2、3章)教案 数据信息的表示、运算方法与运算器_第1页
计算机组成原理微课版(第2、3章)教案 数据信息的表示、运算方法与运算器_第2页
计算机组成原理微课版(第2、3章)教案 数据信息的表示、运算方法与运算器_第3页
计算机组成原理微课版(第2、3章)教案 数据信息的表示、运算方法与运算器_第4页
计算机组成原理微课版(第2、3章)教案 数据信息的表示、运算方法与运算器_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据信息的表示参考学时8学时。教学目标(能力要求)理解计算机数据表示的基本需求:能阐述二进制适合计算机数据表示的原因;可熟练进行不同进制间数据的转换;能解释数据表示范围、表示精度、溢出等基本概念。掌握机器码基本概念和表示方法:能描述不同机器码的定义;能区分原码、反码、补码、移码的差异与优缺点;可熟练进行不同编码的相互转换;能利用补码的进行手工加减法运算。理解定点数的基本原理:能描述计算机中定点数的基本原理,能给出定点数的表示范围和最小精度;能够分析定点数相对于浮点数的优势和局限性,包括计算效率、存储需求、精度等方面的比较。掌握浮点数基本概念和IEEE754标准:能描述浮点数的表示需求、发展历史和在计算机科学中的重要作用;能解释浮点数表示方法,能区分单精度和双精度浮点数表示差异,能根据使用需求选择合适的浮点数表示;能依据浮点数格式熟练进行IEEE754编码与真值的互相转换;能区分规格化数和非规格化数的表示范围;能够识别和解决在IEEE754浮点数表示和计算中常见的问题和异常,如舍入误差、溢出、下溢、精确性异常、结合律异常、NaN非数、无穷大、除零错误等。理解高级语言中不同数据类型的底层逻辑:能根据数据表示相关原理解释分析C语言中整型、浮点型数据表示和运算中出现的各种“异常”。掌握字符型数据在计算机内部的表示:能简单区分不同字符集(ASCII、GB2312、Unicode、UTF-8)标准字符定义、占用空间的差异,可根据需求选择合适的标准,可解释解内存中字符串数据的特征。了解码制的基本概念和特点:能解释8421码、余3码、格雷码的编码特点和运算结果校正问题,能区分有权码和无权码。掌握校验码基本原理和应用:可描述校验码的基本原理和应用场合,理解码距和编码检错和纠错能力之间的关系;掌握奇偶校验码、海明码、CRC校验码的编码规则,能生成校验码或对校验编码进行检错/纠错;能区分不同校验码的检错和纠错能力,分析他们的适用性和局限性;能根据实际需要设计和实现数据通信或存储中的校验码方案,以确保数据的可靠传输和存储。教学重点和难点教学重点:补码表示与计算机中的数据类型教学难点:IEEE754标准,浮点数特性,海明编码设计,循环冗余校验码编解码教学主要内容数值表示的作用(15分钟)计算机数据表示需求进位计数制及其相互转换数值数据的表示(180分钟)数的机器码表示(60分钟)真值与机器码的区分四种机器码定义与区别定点数表示(无符号、有符号)(30分钟)浮点数表示(IEEE754标准)(70分钟)十进制数(5分钟)计算机中的数据类型(15分钟)非数值数据的表示(25分钟)字符表示(字符串)汉字编码数据信息的校验(160分钟)码距与校验(20分钟)奇偶校验(15分钟)海明校验(45分钟)循环冗余校验(80分钟)教学过程与方法数值表示的作用(15分钟)计算机数据表示需求简单介绍计算机中数据表示的基本需求以及二进制在计算机数据表示中的优势。进位计数制及其相互转换介绍二进制与其他进制之间的基本转换方法以及简便方法。注意磁存储以及通讯领域中使用的SI因子不是二进制,提醒后续学生在存储容量和传输速率方面进行计算时要使用10进制作为单位。数值数据的表示(180分钟)数的机器码表示(60分钟)真值与机器码的区分简要介绍真值和机器码的区别,以内存、寄存器中的数据是什么编码为问题引出机器码问题。四种机器码定义与区别原码主要思想是增加符号位(符号位在定点小数中权值为1,在定点整数中为2n),可以只接在黑板上推导出原码的公式,1+|x|或2n+|x|,帮助学生理解原码公式,公式不要求记忆,但应该可以推导。给出实例,演示原码求解过程,引出原码两个零的问题以及原码表示范围,最终总结原码表示的优缺点。介绍反码定义,演示反码求解过程,引出两个零问题,根据反码和真值数值为相反的原理,利用|真值|+反码=111…11(各位均为1的数)可以推导反码公式。介绍反码表示范围,反码表示优缺点。以钟表动画演示为例引出补码概念,重点强调模数的概念(时间超过12点归零,运算超出模数要舍弃),根据模数概念引出补码公式,比较补码公式和前述反码公示的差异,引出负数补码逐位取反末位加一的求解方法。介绍补码快速手工求解的方法扫描法,通过实例求解,解释补码表示只有一个机器零,区分补码与原码、反码表示范围的差异,强调补码表示区间的非对称性。介绍双符号位补码,注意强调单符号和双符号模数的差异以及双符号的优势与劣势。介绍补码加减法特性,总结补码优势与应用场景。介绍移码的定义、求解方法以及应用场合。详细比较不同机器码在数轴上的差异,加深学生对机器码的理解和区分。对比不同机器码的公式差异。对比不同机器码的数据表示范围差异,最后总结不同机器码的实际应用场合。定点数表示(无符号、有符号)(30分钟)首先介绍最高有效位(MSB)以及最低有效位(LSB)的概念,然后开始引出定点整数,定点小数,区分对应数据表示范围和溢出情况。通过一个简单的程序引出计算机中的真实数据表示问题,C语言中的整型数据到底采用是什么机器码?通过反汇编代码进一步解释C语言程序底层的数据表示逻辑。简单总结C语言中的各种数据类型、表示方法以及数据表示区间。用实际程序运行再次强化C语言中整型数据的补码数据表示。最后对C语言中的整型数据类型进行总结。浮点数表示(IEEE754标准)(70分钟)以一个有违常理的奇怪程序引出浮点数表示问题。以直接用两个定点数表示浮点数整数和小数为例说明浮点数表示存在的问题,由此引出科学计数法,解释浮点数表示的规格化问题。采用阶码和尾码两个定点数形式表示浮点数N=2±e×(±m),分析浮点数表示范围和溢出情况,分析阶码和尾码长度与浮点数表示范围和精度的关系,给出实例展示,同时引出浮点数在数轴上密度与分布问题。介绍浮点数现行标准IEEE754的由来,讲解单精度浮点数和双精度浮点数的表示规则。以单精度浮点数为例解释IEEE754浮点数阶码和尾码的具体协议规格。探讨IEEE754浮点数规格化数和非规格化数表示范围。以实际C语言程序分析整数和浮点数除零问题。以实际C语言程序分析浮点数运算中的非数问题。以实际C语言程序分析浮点数表示的两个机器零问题。分析浮点数表示范围与精度,重点探讨浮点数在数轴上的分布密度问题,由此引出浮点数运算不满足结合律的问题。介绍浮点数据与真值之间相互转换的流程,结合具体实例进行演示,并布置相应作业给学生课后练习。引导学生利用已学浮点数表示原理解释先前的程序运行问题。引导学生利用已学浮点数表示原理对以上表达式进行判断,加深浮点数理解,并进一步对C语言中的浮点数表示进行总结。十进制数(5分钟)简单介绍BCD码,十进制浮点数等问题。计算机中的数据类型(15分钟)对比汇编语言和高级语言中的数据类型。介绍高级语言中的数据类型宽度,注意指针类型。以四位整型数据的循环框展示整型数据表示范围,溢出方式。展示C语言中不同数据类型的表示范围。介绍C语言中整型数据类型相互转换的具体逻辑,引导学生课后阅读教材以及课件上给出的程序例子,这部分内容408考研经常会有出现。非数值数据的表示(25分钟)字符表示(字符串)介绍ASCII码表示标准,注意最高有效位MSB=0。以全零的ASCII字符表示什么意思为问题引发学生思考,引出C语言中字符串表示问题。汉字编码介绍GB2312标准,强调编码与ASCII编码的差异,解释区位码和机内码的区别,要求学生利用实验实现二者的转换。进一步引出当前的汉字国家标准以及UTF标准,帮助学生理解常用汉字编码标准之间的差异。数据信息的校验(160分钟)码距与校验(20分钟)以身份证编码最后一位的x问题引出校验的基本原理与实际应用。阐述数据校验的目的解决编码在时间空间上的传输可靠行问题(具体对应存储和网络传输),介绍数据校验的基本原理。介绍码距的基本概念,在黑板上给出实例,以图片解释码距与抗干扰能力的关系。解释校验码实际应用的完整流程,帮助学生加深理解。奇偶校验(15分钟)介绍奇偶校验规则,校验位以及检错位逻辑表达式。介绍奇偶校验基本流程,启发学生思考检错码为零是否表示数据正确?进一步用实际例子解释奇偶校验只能识别奇数错的检错特性。介绍分组交叉奇偶校验如何提升奇偶校验检错能力,引导学生思考,进一步引出海明校验,一种特殊的分组交叉奇偶校验方法。海明校验(45分钟)介绍海明校验码编码规则,检错机制(检错码的值为1位错位置)。根据海明编码的规则,推导海明编码中数据位和校验位宽度的关系,引出4位数据位海明编码如何分组的问题。根据海明编码的规则,推导4位数据位海明编码如何进行分组。讲解完4位数据位海明编码如何进行分组的思路后,进一步推广到(n,k)码的分组规则,帮助学生掌握海明编码设计的能力。介绍海明编码实验框架,根据课程安排酌情布置海明编码设计实验,可要求学生设计16位汉字编码的海明编解码方案,要求能检测两位错,纠正1位错。循环冗余校验(80分钟)讲解CRC循环冗余校验码编码规则,其中重点介绍模2运算规则,生成多项式的基本概念,帮助学生理解CRC循环冗余校验码的计算规则。利用上图讲CRC循环冗余校验码的编解码全过程,注意原始数据再进行编码时要补上r个零,编解码双方采用相同的生成多项式。以上图为例详细介绍CRC编码计算全过程。动画展示CRC编码余数循环的机制。探讨CRC校验码出现多位错时余数的情况,分析检错能力。介绍模2除法运算的结合律,由此可以通过事先求解多个常量的余数进一步求解任意数据的CRC余数。以具体例子展示CRC检错过程中1位错和2位错的检错情况。简单介绍CRC编码的检错特性以及应用领域。分析CRC串行编解码电路的工作原理和特性。介绍CRC编码实验框架,讲解如何利用组合电路实现CRC编解码电路,讲解CRC编码快速求解方法,揭示CRC编解码也是一种交叉奇偶校验编码的本质。根据课程安排酌情布置CRC编码设计实验,可要求学生设计16位汉字编码的CRC编解码方案,要求能检测两位错,纠正一位错。对所学的几种校验码进行总结对比。运算方法与运算器参考学时7学时。教学目标(能力要求)理解高级语言中不同运算符的底层逻辑实现:可将不同数据类型的运算符转换成对应机器指令,并指出对应的硬件实现逻辑。掌握定点加减法运算与溢出检测规则:了解补码运算在计算机中的重要性,能熟练利用补码运算规则进行定点数加减法运算,可利用三种方法进行定点数溢出检测。掌握定点加减法的逻辑实现:能给出一位全加器输出信号的逻辑表达式,了解如何通过级联多个全加器实现多位串行进位加法器,并能分析其时间延迟特性与性能缺陷;能阐述可控加减法电路的设计原理,理解其在计算机运算器实现中的重要意义。理解先行进位以及快速加法器原理:能概述先行进位加法器的设计原理,理解硬件性能优化的基本思路,并能利用相关原理在实验中构造16位、32位、64位先行进位电路,且能分析其时间延迟特性。掌握定点乘法运算方法与逻辑实现:能利用原码一位乘法和补码一位乘法的规则进行正确的手工运算,并能运用相关原理设计对应的实验电路。理解无符号阵列乘法器的构成原理,并能简单分析其时间延迟特性,可在实验框架中设计实现一个5位无符号阵列乘法器;了解乘法流水线提升乘法运算吞吐率的基本原理。掌握定点除法运算方法:能利用原码恢复余数法和不恢复余数法进行正确的手工除法运算,能区分二者的性能差异,能给出原码不恢复数法的基本逻辑框图。掌握浮点数运算方法:能按照对阶、尾数求和、规格化、舍入、溢出判断等步骤手工进行浮点加减法运算;了解浮点数乘除运算的基本步骤。理解运算器构成的基本原理:能描述运算器的基本构成,能区分不同总线结构对运算器的影响,可根据相关原理构建具有特定功能的定点运算器实验系统。教学重点和难点教学重点:补码可控加减法运算电路实现,浮点加减法运算。教学难点:快速加法器设计、补码一位乘法运算教学主要内容计算机中的运算(20分钟)C语言中的位运算C语言中的逻辑运算C语言中的移位运算C语言中的算术运算定点加减法运算(100分钟)补码加/减法运算方法(10分钟)补码运算溢出及检测(7分钟)加减法的逻辑实现(82分钟)一位全加器(8分钟)多位串行加法器(7分钟)可控加减法电路(7分钟)标志位(6分钟)先行进位加法器(55分钟)定点乘法运算(120分钟)原码一位乘法(45分钟)补码一位乘法(25分钟)阵列乘法器(21分钟)补码阵列乘法器(4分钟)乘法器性能优化(25分钟)定点除法运算(35分钟)原码一位除法(27分钟)阵列除法器(8分钟)浮点运算(45分钟)浮点数的加/减运算(38分钟)浮点数的乘/除运算(7分钟)运算器(45分钟)定点运算器(30分钟)定点运算器实验(12分钟)浮点运算器(3分钟)教学过程与方法计算机中的运算(20分钟)系统梳理C语言中的各类运算符,启发学生思考运算符后面的底层逻辑。C语言中的位运算以C语言位运算对应的汇编代码为例讲解高级语言中位运算的底层逻辑实现。C语言中的逻辑运算以逻辑运算对应的汇编代码为例讲解逻辑运算的底层逻辑实现。C语言中的移位运算以移位运算对应的汇编代码为例讲解移位运算的底层逻辑实现。C语言中的算术运算

以整数、浮点数加减乘除算术运算的汇编代码为例讲解算术运算的底层逻辑实现。定点加减法运算(100分钟)补码加/减法运算方法(10分钟)简单介绍补码加减法运算基本规则,注意减法变加法是关键,但由于补码表示范围不对称,一些特殊值可能存在溢出问题,补码公式的证明学时不够可以不讲。补码运算溢出及检测(7分钟)以单符号运算的四种情况分别介绍计算机进行溢出检测的2种方法以及底层逻辑实现。双符号溢出检测方法,可以反问学生计算机中是单符号还是双符号,为什么?进一步启发学生如何在程序中判断溢出?加减法的逻辑实现(82分钟)一位全加器(8分钟)以多位加法依赖于一位加法引出一位全加器的功能需求。利用组合逻辑的设计方法逐步设计出一位全加器,并进一步给出电路,简单分析时间延迟。多位串行加法器(7分钟)利用一位全加器串联构成多位加法器,并实现有符号溢出检测。以四个8位无符号数的运算为例分析无符号加减法运算溢出检测方法。可控加减法电路(7分钟)利用补码减法变加法的规则将多位串行加法器改造为可控加减法单元。注意启发学生思考Sub信号产生的依据是什么?标志位(6分钟)以溢出检测位引出计算机中的标志寄存器,分析X86计算机中的常见标志位功能。先行进位加法器(55分钟)详细分析串行加法器时间延迟,让学生注意数字逻辑电路特有的片内并行性。根据时间延迟分析公式,时延与位数n成线性关系,如何进一步优化性能?利用进位逻辑表达式推导引入进位生成函数和传递函数,可以提前用电路生成各位全加器所需的进位信号,利用水管阀门图形象的说明进位链与生成函数传递函数的关系。利用与门、异或门阵列构建生成函数、传递函数电路。利用逻辑门电路实现先行进位电路,注意不同进位信号逻辑门输入引脚数目的变化。利用前面构建的两个电路进一步实现四位快速加法器,并进一步引导学生分析其时间延迟。尝试利用四位快速加法器构建16位快速加法器,引出成组进位产生函数和成组进位传递函数。分析四位一组的进位逻辑表达式和一位一组的进位逻辑表达式之间的关系,引出成组先行进位思想。利用水管阀门图说明进位链与成组生成函数、成组传递函数的关系。依据成组进位的思想构建可级联的两级先行进位电路。尝试利用四位快速加法器、可级联的两级先行进位电路构建16位组内、组间先行进位电路,并进一步引导学生分析该电路的关键路径与时间延迟,比较串行加法器和并行加法器的性能差异。定点乘法运算(120分钟)原码一位乘法(45分钟)以简单的横向阵列乘法器引出原码一位乘法,尝试用数学表达进一步分析。分析原码一位乘法的运算流程,注意运算次数,符号计算等关键点。用一个具体例子演示原码一位乘法运算完整过程,提醒学生注意运算中间的溢出不会影响结果的正确性。尝试利用硬件逻辑实现原码一位乘法,注意分析软件实现和硬件实现的差异。用动画方式逐步展示原码一位乘法硬件逻辑电路,此处可以布置相应的实验任务要求学生在Logisim中实现相应电路,注意Logisim中没有原码,实验只能实现无符号数一位乘法,该实验有助于学生提前理解数据通路,系统停机逻辑设计等。补码一位乘法(25分钟)推导补码一位乘法运算公式,并进一步与原码一位乘法比较,得出以下一位乘法运算流程图。分析补码一位乘法运算流程,注意运算次数和右移次数与原码一位乘法的差异。以动画方式展示补码一位乘法硬件逻辑实现,根据需要是否布置实验任务。从硬逻辑实现的角度再次举例说明运算详细过程。阵列乘法器(21分钟)从手工乘法运算引出阵列乘法器。首先给出最直接的横向进位阵列乘法器,进一步分析电路成本以及运算关键路径和逻辑时延。再进一步启发得到斜向进位阵列乘法器,进一步分析电路成本以及运算关键路径和逻辑时延。补码阵列乘法器(4分钟)利用无符号阵列乘法器实现补码阵列乘法器。乘法器性能优化(25分钟)进一步启发学生思考如何优化乘法运算,简单介绍乘法流水线一起其他现行主流方法。分析计算机中的整数乘法运算的底层逻辑实现,强调溢出判断的重要性。分析变量与常数之间乘法运算的编译器优化机制。定点除法运算(35分钟)原码一位除法(27分钟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论