还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
南京大学计算机组成原理欢迎来到南京大学计算机组成原理课程本课程是计算机科学与技术专业的核心基础课程,旨在帮助学生理解计算机系统的基本工作原理、组成结构以及设计思想通过本课程的学习,你将深入理解从电子器件到计算机系统的构建过程,掌握数据表示、运算器设计、存储系统等关键知识,为后续学习计算机体系结构、操作系统等高级课程奠定坚实基础本课程强调理论与实践相结合,将通过丰富的案例分析、实验设计和前沿技术讨论,培养学生的系统思维和工程实践能力让我们一起踏上探索计算机核心奥秘的旅程!计算机系统结构概览应用软件层面向用户的各类应用程序系统软件层操作系统、编译器、汇编器计算机体系结构层指令集架构、组成原理逻辑电路层门电路、触发器、组合逻辑物理电子层晶体管、二极管、电子器件计算机系统基本组成包括中央处理器(CPU)、存储器、输入/输出设备以及它们之间的连接总线这种基本结构基于冯·诺依曼体系结构,特点是存储程序和指令数据共享存储器冯·诺依曼体系结构定义了现代计算机的基本工作模式,即指令和数据存储在同一存储器中,由控制器顺序取出指令,依次执行运算和控制功能这一架构虽然简单,但奠定了计算机发展的基础计算机的发展历程第一代电子管计算机1946-1957年,体积庞大,耗电量大,可靠性低,代表作ENIAC第二代晶体管计算机1958-1964年,体积缩小,可靠性提高,功耗降低第三代集成电路计算机1965-1971年,小规模集成电路,性能大幅提升第四代微处理器计算机1972年至今,大规模集成电路,个人计算机普及未来发展量子计算、生物计算、光计算等新型计算范式计算机发展的主要方向包括高性能化、小型化、网络化和智能化随着工艺技术的不断进步,芯片集成度持续提高,计算能力呈指数级增长摩尔定律预测集成电路上的晶体管数量大约每两年翻一番,虽然近年来这一增长速度有所放缓,但通过新材料、新架构等创新,计算机性能仍在持续提升未来,随着物理极限的接近,计算机发展将更多依赖于架构创新和新型计算范式计算机的性能指标主频与时钟周期主频表示CPU时钟的频率,通常以GHz为单位时钟周期是时钟频率的倒数,代表完成一个基本操作所需的最短时间主频越高,理论上处理速度越快,但现代CPU性能已不仅由主频决定与CPI MIPS每条指令平均时钟周期数CPI反映执行一条指令需要的平均时钟周期每秒百万条指令数MIPS表示CPU每秒能执行的百万级指令数量,是评估性能的重要指标吞吐量与延迟吞吐量表示单位时间内系统处理的任务数量,反映整体处理能力延迟则是完成单个任务所需的时间,反映响应速度二者通常需要权衡优化基准测试SPEC、Linpack、TPC等标准基准测试通过运行标准程序集,提供不同系统间可比较的性能数据基准测试结果更客观地反映实际应用性能性能评估需要综合考虑多种因素,单一指标往往无法全面反映系统性能例如,相同主频下,不同架构的CPU性能可能相差甚远;而在复杂工作负载下,缓存大小、内存带宽等因素也会显著影响实际性能数据的表示方法总览数值数据字符数据整数定点表示法码ASCII实数浮点表示法编码Unicode适用于数学计算汉字编码(码)GB逻辑数据多媒体数据布尔值图像编码真值表音频编码逻辑运算视频编码在计算机科学中,字节()是基本的数据单位,通常由位()组成字()是计算机进行数据处理的基本单位,其长度Byte8bit Word取决于处理器架构,如位系统中为字节,位系统中为字节324648字长()是指一次能处理的二进制数据的位数,直接影响处理器的运算能力和寻址空间现代个人计算机大多采用Word SizeCPU64位字长,而嵌入式系统可能使用位、位或位字长,取决于其应用需求和性能要求81632二进制、八进制与十六进制十进制二进制八进制十六进制0000000100011120010229100111910101012A15111117F16100002010进制转换是计算机科学的基础操作二进制转十进制时,按位权展开相加;十进制转二进制,可采用除2取余,逆序排列方法;二进制与八进制、十六进制之间的转换,可利用位分组技术(每3位对应一个八进制数,每4位对应一个十六进制数)这些不同进制在计算机领域有各自的应用场景二进制是计算机内部表示和处理数据的基本形式;八进制曾广泛用于早期计算机系统,如Unix文件权限;十六进制则常用于内存地址表示、机器码分析和颜色编码(如RGB值)等场景,能有效缩短二进制表示的长度定点数表示方法原码表示法反码表示法补码表示法最高位表示符号(为正,为负),其正数的反码与原码相同;负数的反码是正数的补码与原码相同;负数的补码是01余位表示数值的绝对值其原码除符号位外,其余各位取反其反码加1例如表示为,表示为例如反码为,反码为例如补码为,补码为+50101-51101+50101-51010+50101-51011(位表示则为和)(位表示则为和)(位表示则为和)800000101100001018000001011111101080000010111111011缺点存在正零和负零两种表示,且运解决了加减法统一的问题,但仍存在正优点统一了加减法运算,并且零有唯算规则复杂零和负零两种表示一表示形式在计算机系统中,补码是最常用的定点数表示方法使用补码表示可以将减法转化为加法运算,简化了硬件设计例如,计算时,5-3可转换为的补码运算,即,保留低位得,结果为5+-30101+1101=10010400102溢出检测是定点数运算中的重要环节对于补码加减法,当两个同号数相加得到异号结果,或两个异号数相减得到与被减数符号不同的结果时,表示发生了溢出现代处理器通常设置专门的溢出标志位来检测和处理这种情况浮点数表示及标准IEEE单精度浮点数格式双精度浮点数格式特殊值表示32位表示,1位符号位,8位指数域,23位尾数64位表示,1位符号位,11位指数域,52位尾IEEE754标准定义了多种特殊值±0(指数和域指数偏移量为127,表示范围约为±10^38,数域指数偏移量为1023,表示范围约为尾数全为0)、±∞(指数全1,尾数全0)、精度约为7位十进制数常用于需要平衡精度和±10^308,精度约为16位十进制数适用于需NaN(Not aNumber,指数全1,尾数不全为0)存储空间的普通计算场景要高精度的科学计算和金融应用等,使浮点运算更加完备浮点数规范化是指将尾数调整为
1.xxx...的形式(二进制小数点左侧恰有一个1),以提高表示精度在IEEE标准中,由于整数部分始终为1,所以在存储时可以省略这个1(称为隐藏位),从而增加一位有效精度浮点数舍入是处理精度限制的关键机制IEEE754标准定义了四种舍入模式向最近舍入(默认)、向零舍入、向正无穷舍入和向负无穷舍入不同的舍入方式适用于不同的应用场景,合理选择舍入模式对保证计算结果的正确性至关重要字符及其他编码编码ASCII使用7位二进制表示128个字符,包括英文字母、数字、标点符号和控制字符是最基础的字符编码标准,构成其他编码的基础常见ASCII码A=650x41,a=970x61,0=480x30扩展与ASCII ISO-8859扩展ASCII使用8位,表示256个字符ISO-8859系列(如ISO-8859-1/Latin-1)支持西欧语言字符这些编码标准解决了基本的多语言需求,但无法同时支持所有语言码(中国国标码)GBGB2312编码收录6763个汉字,使用两个字节表示一个汉字GBK扩展了GB2312,支持更多汉字和繁体字GB18030进一步扩展,与Unicode兼容,是中文系统的主要编码标准与编码Unicode UTFUnicode为全球所有字符提供统一编码,目前包含超过14万个字符UTF-8是一种可变长编码方式,兼容ASCII,已成为网络和操作系统的主流编码UTF-16和UTF-32分别使用16位和32位固定长度编码字符串在计算机内存中的存储方式与编码方案和字节序(Endianness)密切相关ASCII字符串每个字符占用1字节,而Unicode字符串根据编码方式(UTF-8/16/32)占用不同的字节数字符串通常以特殊字符(如\0)标记结束,或使用长度前缀来指示长度码制扩展是为了支持更多字符而对现有编码的扩充常见的扩展技术包括多字节编码(如UTF-8)、转义序列(使用特殊字符标记扩展码)、码页切换(根据上下文切换不同编码方案)等这些技术使计算机能够处理越来越丰富的文字和符号常用逻辑运算与门电路与运算()AND逻辑符号·、∧、,表示且关系真值表仅当所有输入为1时,输出才为1应用用于判断多个条件是否同时满足或运算()OR逻辑符号+、∨、|,表示或关系真值表只要有一个输入为1,输出就为1应用用于判断多个条件是否至少有一个满足非运算()NOT逻辑符号¬、~、!,表示取反真值表输入为0时输出1,输入为1时输出0应用用于条件的否定判断异或运算()XOR逻辑符号⊕、^,表示不同则真真值表两输入不同时输出1,相同时输出0应用奇偶校验、算术运算基本门电路是数字系统的基础构建块与门使用两个串联的晶体管实现;或门使用两个并联的晶体管实现;非门使用一个晶体管配合上拉电阻实现这些基本门电路可以组合形成更复杂的功能单元组合逻辑电路是由基本门电路通过一定连接方式组成的电路,其输出仅取决于当前输入,不依赖于先前状态常见的组合逻辑电路包括多路选择器(MUX)、译码器(Decoder)、全加器等这些电路是构建计算机运算器和控制器的重要部件运算器组成结构算术逻辑单元累加寄存器执行加减乘除等算术运算和逻辑运算存储ALU的输入操作数和输出结果状态寄存器控制电路保存运算状态和标志位(如进位、溢出、零协调各部件工作并控制数据流向标志等)运算器与CPU的关系密切,是CPU的核心功能部件之一现代CPU中,运算器通常包含多个功能单元,如整数ALU、浮点运算单元(FPU)、向量处理单元(SIMD)等,以支持多种类型的计算任务运算器的性能直接影响CPU的整体性能运算控制方式决定了数据如何在运算器内部流动和处理常见的控制方式包括微程序控制和硬布线控制微程序控制通过执行微指令序列来实现复杂操作,灵活性高但速度较慢;硬布线控制直接通过组合逻辑电路实现控制功能,速度快但灵活性低现代处理器通常结合两种方式,以平衡性能和灵活性算术逻辑单元ALU通用功能单元1基本算术与逻辑操作专用运算单元加速特定运算(如乘法、除法)高级运算扩展支持复杂指令集与特殊运算是中执行数据处理操作的核心部件,其架构构成包括操作数输入端口、功能选择控制线、结果输出端口以及状态标志输出典型的ALU CPU可执行的功能包括算术运算(加、减、增量、减量等)、逻辑运算(与、或、非、异或等)、移位操作(左移、右移、循环移位等)以ALU及比较操作(相等、大于、小于等)现代设计中采用了多种技术来提高运算速度,包括并行处理架构、超前进位链、流水线设计等影响性能的关键因素包括门电路延迟ALU ALU(取决于制造工艺)、互连路径长度、时钟频率、功耗约束等为平衡不同应用需求,处理器中往往配置多个功能各异的,如整数、ALU ALU浮点、向量等,以实现整体性能最优化ALU ALU定点加减法器设计半加器全加器并行加法器超前进位加法器实现一位二进制加法,无进位输入,实现一位二进制加法,包含进位输入,多个全加器并行工作,进位级联传播优化进位生成和传播,加速运算过程输出包括和与进位输出包括和与进位并行加法器和串行加法器是两种基本的加法器设计方案并行加法器同时处理所有位,通过级联全加器实现,速度快但硬件复杂度高;串行加法器按位依次处理,通过时钟控制移位和加法操作,硬件简单但速度较慢在实际应用中,并行加法器更为常见,尤其是在需要高性能的场景溢出与进位是定点加减法中需要特别关注的问题进位(Carry)是指运算过程中向高位的数值传递;溢出(Overflow)则是指结果超出了表示范围对于无符号数,最高位的进位表示溢出;对于有符号数(补码表示),当两个同号数相加结果变为异号时发生溢出现代处理器通过设置专门的标志位(进位标志CF和溢出标志OF)来指示这些情况,便于程序进行相应处理定点乘除法器原理移位加法乘法器基于纸笔乘法的原理,将乘法分解为一系列移位和加法操作•乘法过程类似于十进制乘法的笔算过程•依次检查乘数的每一位•乘数位为1则加上对应位置的被乘数•结果左移一位继续处理下一位算法乘法器BoothBooth算法利用编码技术减少加法次数,提高乘法效率•将连续的1压缩为
1000...-
100...的形式•通过检测乘数中的01和10模式•01模式时加被乘数,10模式时减被乘数•00或11模式时只移位,不需要加减操作恢复余数除法器基于反复试减的原理,模拟笔算除法过程•初始化余数为被除数•每步尝试从余数中减去左移的除数•如果结果非负,商位为1;否则为0并恢复余数•余数左移继续下一位处理不恢复余数除法器优化恢复余数算法,避免恢复操作,提高效率•根据当前余数符号决定下一步加或减•余数为负则加除数,为正则减除数•无需恢复操作,减少硬件复杂度•最后根据余数符号可能需要额外修正Booth算法是一种重要的乘法优化技术,特别适用于含有连续1的乘数其核心思想是利用编码来减少加法次数例如,乘数1111可视为10000-1,将四次加法转换为一次减法和一次移位操作改进的Booth算法(如Booth-2编码)可以进一步提高效率,每次处理多个乘数位浮点运算及其实现4浮点加减步骤对阶、尾数运算、规格化、舍入3浮点乘法步骤指数相加、尾数相乘、规格化5浮点除法步骤指数相减、尾数相除、规格化、舍入、边界检查5-15运算周期乘法比加法复杂,除法最为耗时浮点加减法是最复杂的浮点运算,需要经过多个步骤首先进行对阶操作,将较小指数的数调整为与较大指数相同(尾数相应右移);然后执行尾数的加减运算;接着对结果进行规格化,确保尾数在正确范围内(通常为
1.xxx…);最后根据指定的舍入模式进行舍入,确保结果精度IEEE754标准定义了多种特殊值处理规则无穷大(±∞)用于表示溢出,NaN(非数)用于表示无效操作(如0/0)当操作数包含特殊值时,需遵循特定规则任何与NaN的运算结果都是NaN;有限数加减无穷大得到无穷大;两个无穷大相减得到NaN;零乘以任何有限非零数得到零;除以零得到无穷大(符号取决于被除数)这些规则使浮点运算更加健壮,能够优雅地处理异常情况运算器中的快速加法算法运算器中的流水线技术流水线技术是提高处理器性能的关键方法,其核心思想是将指令执行过程分解为多个独立的阶段,使不同指令的不同阶段可以并行执行典型的五级流水线包括取指令IF、指令解码ID、执行EX、访存MEM和写回WB每个阶段由专门的硬件单元负责,各阶段之间通过流水寄存器相连流水线的理论加速比等于流水线级数,但实际加速比通常低于理论值,原因包括流水线冒险(数据冒险、控制冒险和结构冒险)导致的停顿;流水线寄存器引入的额外延迟;各阶段执行时间不均衡;分支预测失败等现代处理器采用多种技术优化流水线性能,包括动态分支预测、寄存器重命名、指令调度、乱序执行和推测执行等,使实际性能更接近理论性能。
个人认证
优秀文档
获得点赞 0