DJ9第3章4算术逻辑运算基础_第1页
DJ9第3章4算术逻辑运算基础_第2页
DJ9第3章4算术逻辑运算基础_第3页
DJ9第3章4算术逻辑运算基础_第4页
DJ9第3章4算术逻辑运算基础_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

DJ9·Chapter3.4算术逻辑运算基础DJ9第3章第4节·计算机组成原理核心课程Contents目录算术逻辑运算基础——从二进制编码到ALU设计的完整知识脉络01算术逻辑运算概述02二进制基础与数据编码03定点加减运算04定点乘法运算05定点除法运算06浮点运算方法07逻辑运算与ALU设计CHAPTER01算术逻辑运算概述运算方法分类体系与ALU核心部件的基本概念运算方法分类与体系运算方法分类与体系计算机运算方法分为算术运算与逻辑运算两大类。算术运算处理数值的加减乘除,逻辑运算处理布尔代数的与或非操作,二者共同构成ALU的核心功能,是计算机数据处理的基石。算术运算加减乘除四则运算在计算机中均以二进制形式实现,且所有运算最终可归结为加法操作二进制加法逻辑运算以布尔代数为基础,对二进制位进行与、或、非、异或等位级操作,广泛用于条件判断和数据掩码布尔代数数据格式分类定点运算处理整数和纯小数,浮点运算覆盖更大数值范围的科学计算定点·浮点ALU核心部件算术逻辑部件是CPU中执行运算的核心单元,其设计复杂度直接影响处理器的计算性能与功耗表现CPU核心ComputerArchitecture算术逻辑部件ALU概述ALU是CPU中执行算术与逻辑运算的核心部件,它接收操作数和操作码,通过组合逻辑电路完成各类运算,并通过状态标志位反馈运算结果的特征信息,为程序控制流提供判断依据。运算选择ALU接收两个操作数输入和一个操作码输入,根据操作码选择执行加法、减法、逻辑与、逻辑或等具体运算类型。操作码驱动状态标志ALU输出运算结果的同时产生状态标志位,包括进位标志CF、零标志ZF、符号标志SF和溢出标志OF,供条件跳转使用。CF·ZF·SF·OF超前进位现代处理器ALU通常采用超前进位加法器结构,通过并行计算各级进位消除逐级传递延迟,显著提升加法运算速度。并行进位辅助操作ALU还支持移位、比较和数据传送等辅助操作,这些操作虽不涉及复杂算术,但在地址计算和数据处理中不可或缺。移位·比较·传送ComputerArchitecture运算方法在计算机系统中的地位算术逻辑运算是计算机系统的底层基础设施,其实现效率直接影响处理器性能。理解运算方法不仅有助于掌握计算机组成原理,更为后续的体系结构优化、编译器设计和嵌入式开发奠定理论基础。ALU运算瓶颈ALU运算速度是CPU性能的关键瓶颈,加法器的进位传播延迟直接限制了处理器主频上限和每周期指令数IPC。现代处理器采用超前进位、选择进位等优化技术来缓解这一瓶颈。关键指标:IPC编译器优化编译器在代码优化阶段充分利用运算方法特性进行变换,例如用左移指令代替乘以2的幂次运算、用补码加法统一处理有符号数的加减运算,从而生成更高效的机器码。核心策略:位移优化理论基础掌握运算方法是理解计算机组成原理的核心环节,为后续学习流水线设计、超标量架构、乱序执行和向量处理器等高级主题奠定坚实的理论基础。进阶方向:流水线Chapter02二进制基础与数据编码二进制运算规则回顾与机器数编码方式的系统梳理ARITHMETIC二进制算术运算规则二进制算术运算遵循逢二进一和借一当二的基本规则。四则运算中加法是最基础的操作,减法可通过补码转化为加法,乘除法可分解为移位与加法的组合,这一特性极大简化了硬件设计。加法0+0=0、0+1=1、1+0=1、1+1=10(逢二进一),进位传播是加法器设计的核心挑战。当两个1相加时产生进位,该进位需要向高位传递,形成进位链。逢二进一减法0-0=0、1-0=1、1-1=0、0-1=1(借一当二),实际计算机中通过补码将减法统一为加法处理,避免了独立的减法器电路设计。补码转换乘法仅1×1=1产生非零结果,乘法可分解为逐位相乘再累加,硬件上通过移位和加法实现。乘数的每一位决定是否将被乘数加入部分积。移位累加除法1÷1=1、0÷1=0、0÷0和1÷0无意义,除法通过反复比较和减法实现,是四种运算中硬件最复杂的,需要处理商和余数。比较减法算术逻辑运算基础定点数与浮点数表示计算机中数值数据分为定点数和浮点数两种表示方式。定点数小数点位置固定,适合整数和纯小数运算,硬件简单高效;浮点数采用科学计数法,通过阶码和尾数的组合覆盖更大的数值范围和精度。定点数表示定点整数的小数点在最低位之后,定点小数的小数点在符号位之后,表示范围有限但运算硬件简单Fixed-Point浮点数表示采用N=M×RE的科学计数法表示,M为尾数、E为阶码、R为基数,通过阶码增减实现小数点浮动N=M×REIEEE754标准单精度32位含1位符号、8位阶码和23位尾数,可表示约7位有效数字;双精度64位提供更高精度32/64bit应用场景对比定点运算硬件成本低、速度快,适用于嵌入式系统和数字信号处理;浮点运算精度更高、范围更广,适用于科学计算和图形渲染DSP·GPU·EmbeddedMACHINENUMBERENCODING原码反码补码移码编码机器数编码是计算机表示有符号数的核心方法。原码直观但加减复杂,反码存在双零问题,补码统一了加减法且零的表示唯一,移码专用于浮点数阶码以方便比较大小,四种编码各有其设计目的和适用场景。原码符号位+绝对值最高位为符号位(0正1负),其余位为数值绝对值,表示直观但加减运算需先判断符号再决定操作,硬件实现复杂。存在+0与-0两种零早期计算机曾采用SIGN-MAGNITUDE反码数值位逐位取反正数反码与原码相同,负数数值位逐位取反。存在+0和-0编码不同的双零问题,主要作为求补码的中间步骤。补码计算的前置步骤循环进位增加复杂度ONES'COMPLEMENT补码反码末位加一正数补码与原码相同。核心优势是将减法统一为加法且零的表示唯一,是现代计算机的标准编码方式。零的表示唯一确定加减法统一为加法TWO'SCOMPLEMENT移码补码符号位取反使所有阶码值均为正数,便于按无符号数直接比较大小,专用于IEEE754浮点数的阶码表示。无符号数直接比较IEEE754阶码标准BIASED/EXPONENTEncodingComparison编码方式对比与转换实例通过具体数值的编码对比可以直观理解四种编码方式的差异。正数的原码、反码、补码完全相同,负数则依次递进变换;补码中零的表示唯一性是其成为标准编码的关键原因。5位二进制编码方式对比(含符号位)数值原码反码补码移码+500101001010010110101-510101110101101101011+000000000000000010000-010000111110000010000+700111001110011110111-710111110001100101001正数三种编码相同,负数依次递进变换;补码中+0与-0编码均为00000,零表示唯一Chapter03定点加减运算补码加减法原理、运算关系式、变补操作与溢出判断COMPLEMENTARITHMETIC补码加减法基本原理与优势补码加减法是现代计算机算术运算的标准方法。操作数用补码表示,符号位参加运算,结果也用补码表示。采用补码的三大优势——符号位参与运算、加减统一为加法、结果无需修正——极大简化了ALU的硬件设计。SIGNBIT符号位直接参与运算操作数用补码表示,符号位与数值位一起参与运算,无需像原码那样先分离符号位再单独处理,显著简化了运算电路设计。ALUSIMPLIFICATIONUNIFIEDADDITION加减法统一为加法减法只需将减数变补后与被减数相加,ALU中只需一个加法器即可完成两种运算。1ADDER=2OPSNOCORRECTION运算结果无需修正运算结果直接为补码形式,无需根据操作数的正负进行额外修正,结果可直接存储或参与后续运算。ZEROOVERHEADUNIQUEZERO零的编码唯一补码表示中零的编码唯一(全0),避免了反码中+0和-0两种编码带来的比较和判断复杂性。±0→SINGLE0COMPLEMENTADDITION补码加法运算关系式与实例补码加法的核心关系式为(X+Y)补=X补+Y补,即两数的补码直接相加即得和的补码。无论操作数正负,运算过程完全一致,符号位与数值位一同参与运算,超出字长的进位直接丢弃。FORMULA基本关系式(X+Y)补=X补+Y补表明求两数之和只需将补码直接相加,无需判断操作数正负,运算过程统一。X补+Y补CASE·POSITIVE正数+正数(+3)补00011+(+2)补00010=00101,即+5的补码。两正数相加结果为正,符号位为0。+3++2=+5CASE·NEGATIVE负数+负数(−3)补11101+(−2)补11110=11011,即−5的补码。最高位进位丢弃,符号位为1表示负数。−3+−2=−5CASE·MIXED正数+负数(+3)补00011+(−2)补11110=00001,即+1的补码。正负数相加过程与同号相加完全一致。+3+−2=+1ARITHMETICLOGICUNIT补码减法运算与变补操作补码减法通过(X-Y)补=X补+(-Y)补将减法转化为加法。变补操作是核心步骤:将Y补连同符号位在内所有位取反后末位加1,即可得到-Y补,然后用加法器完成减法运算。减法转化为加法补码减法关系式(X-Y)补=X补+(-Y)补,使ALU只需一个加法器电路即可同时处理加减两种运算。(X-Y)补变补操作规则不管Y补为正或负,将Y补连同符号位在内所有位取反,末位加1,即可得到(-Y)补。取反+1实例验证X=+4(00100),Y=-5(11011);-Y补=00101,X补+(-Y)补=01001,即+9。+9硬件实现只需一组反相器对所有位取反,再在加法器最低位进位输入端加1即可完成。反相器OVERFLOWDETECTION溢出判断方法补码运算中,两个同号数相加可能超出表示范围导致溢出。溢出判断是保证运算结果正确性的关键环节,常用双符号位法和单符号位法两种方法,硬件实现简单且判断准确。双符号位法用两位符号位表示数值,00为正、11为负;运算后若两位符号位不同(01或10),则判定发生溢出,又称变形补码法。01/10单符号位进位判断法比较最高数值位的进位C1与符号位的进位C0,若C1≠C0则发生溢出,硬件上只需一个异或门即可实现。XOR同号相加可能溢出溢出只在两个同号数相加时发生:正数加正数可能产生上溢(结果变负),负数加负数可能产生下溢(结果变正)。上溢·下溢异号相加不会溢出正数加负数的结果绝对值一定小于操作数绝对值的较大者,不会超出表示范围,因此异号数相加天然安全。绝对值安全CHAPTER04定点乘法运算原码一位乘法、补码校正法与Booth比较法的原理与实现ComputerArithmetic·Principle原码一位乘法原理与流程原码一位乘法模拟手算乘法的过程,符号位单独异或处理,数值部分取绝对值从乘数最低位开始逐位判断,为1则加被乘数,为0则不加,每次操作后右移一位,经n次循环得到乘积。01符号位单独处理乘积符号Pf=Xf⊕Yf,由两操作数符号位异或得到;数值部分取绝对值|X|和|Y|进行乘法运算,符号与数值完全分离。Pf=Xf⊕Yf02部分积累加过程从乘数最低位开始逐位检查,当前位为1则将被乘数加到部分积上,为0则不加,完整模拟手算的逐位相乘逻辑。逐位判断累加03联合右移循环每次加法和判断完成后,部分积与乘数寄存器联合右移一位,经过n次循环(n为数值位位数)得到完整的2n位乘积。nCycles→2nbits04硬件资源配置需要三个n位寄存器分别存放被乘数、部分积与乘数,以及一个n位加法器;最终乘积精度为操作数位数的两倍。3Registers+ALUCOMPLEMENTMULTIPLICATION补码一位乘法(校正法)补码校正法在原码一位乘法基础上增加符号校正步骤:先按无符号数方式计算部分积,再根据操作数符号进行修正。该方法虽能处理补码乘法,但校正步骤增加了运算时间的不确定性。基本思路先按原码一位乘法方式计算数值部分乘积,最后根据X和Y的符号位决定是否需要加上校正项。校正逻辑基于符号位的异或运算结果。符号位判断被乘数X为负当符号位为1时,需在最终结果中加上[-X]补进行校正,以补偿符号位参与运算带来的偏差。校正操作在乘法完成后执行。[-X]补校正乘数Y为负同样需在最终结果中加上[-X]补进行校正,校正次数取决于两个操作数的符号组合。若XY均为负,可能需要两次校正。符号组合决定校正法缺点最后一步可能需要额外加法操作,导致运算时间不固定,不利于流水线设计。现代处理器中已广泛采用布斯算法等更高效的补码乘法方案。流水线受限BoothMultiplicationBooth算法(比较法)Booth算法通过检查乘数相邻两位的编码变化决定操作:01加被乘数、10减被乘数、00或11不操作。该方法统一处理正负数无需符号校正,且能将连续1的加法序列优化为一次加减操作,是现代处理器乘法器的基础。01核心规则:检查乘数相邻位Yi和Yi+1,编码为01时加[X]补,10时减[X]补(即加[-X]补),00或11时不操作仅右移02执行流程:乘数最低位右侧增设辅助位Yn+1=0,从最低位开始逐对比较,每次操作后算术右移一位,共执行n+1步03连续1优化:乘数中连续的1(如0111=7)可转化为高位加1低位减1(1000-1),将多次加法压缩为一次加法和一次减法04硬件优势:统一处理正负数乘法,无需像校正法那样在最后做符号修正,运算步数固定,非常适合硬件流水化实现HARDWAREMULTIPLIER乘法运算硬件实现分析乘法器硬件设计从串行阵列向并行Wallace树演进,延迟从O(n)降低到O(logn)。现代处理器通过流水线化进一步提升吞吐量,使乘法运算不再是性能瓶颈,支撑了图形渲染和科学计算的高性能需求。阵列乘法器用n×n个全加器组成二维阵列,所有部分积同时生成并逐级累加,结构规整但延迟为O(n)级别,适用于中低速场景O(n)Wallace树乘法器通过3-2压缩器将多个部分积快速归约为两个数,再用超前进位加法器完成最终加法,延迟降低到对数级别O(logn)流水线化乘法器将乘法操作分成部分积生成、压缩归约、最终加法三个阶段,每周期可启动一次新乘法,大幅提升吞吐量流水线化CHAPTER05定点除法运算原码除法原理、恢复余数法与加减交替法的实现机制OriginalCodeDivision原码除法基本原理原码除法将符号位与数值部分分开处理,商的符号由两操作数符号异或得到,数值部分用绝对值进行除法。除法运算需要满足被除数绝对值小于除数绝对值的约束条件,且除数不能为零。符号位单独处理商的符号Qf=Xf⊕Yf(两操作数符号位异或),数值部分取绝对值|X|和|Y|进行除法运算。基本运算思路用被除数(或部分余数)反复减去除数,根据减法结果的正负决定当前商位为1还是0,逐步求出商的各位。小数除法约束条件被除数绝对值必须小于除数绝对值(|X|<|Y|),否则商将大于等于1,超出定点小数的表示范围导致溢出。除零异常检测除数为零时必须由硬件检测并触发异常中断,因为除以零在数学上无意义,且会导致后续运算结果完全错误。除法运算方法恢复余数法恢复余数法每一步先用部分余数减除数,结果为正则商1保留差值,结果为负则商0并将除数加回恢复原余数。该方法逻辑直观但每步操作次数不固定,控制复杂且运算时间不确定。01每步操作部分余数Ri减去除数Y,若Ri−Y≥0则商位qi=1,新余数为Ri−Y;若Ri−Y<0则商位qi=0,需恢复余数02恢复余数操作当Ri−Y<0时,部分余数已被减坏,需将除数Y加回得到原来的Ri值,然后左移一位继续下一步运算03循环移位每步完成后将部分余数左移一位(相当于乘以2),然后重复减除数的操作,经过n次循环得到n位商04主要缺点不够减时需额外一次加法恢复余数,导致每步操作次数不固定(1次或2次加法),控制逻辑复杂,不利于硬件优化ARITHMETICLOGICUNIT不恢复余数法(加减交替法)不恢复余数法消除了恢复余数的额外操作:当余数为负时不恢复,而是左移后下一步改为加除数。每步固定一次加法或减法,操作次数确定,控制逻辑简化,是实际硬件中首选的除法实现方法。01核心改进:当部分余数Ri−Y<0时不恢复余数,直接将负余数左移一位,下一步改为加除数而非减除数,消除额外的恢复操作消除恢复02操作规则:上一步余数为正则本步做减法(左移后减Y),上一步余数为负则本步做加法(左移后加Y),每步固定一次加减操作固定一步03商位确定:加减操作后结果为正则商1,结果为负则商0,商的符号位仍由两操作数符号异或得到,与原码除法一致正→1负→004数学等价性:负余数左移后加除数等价于先恢复余数再左移后减除数,两种方法最终结果完全相同,可严格证明等价证明CHAPTER06浮点运算方法浮点加减乘除运算的完整流程与舍入溢出处理FLOATING-POINTARITHMETIC浮点数加减运算步骤浮点加减运算包含对阶、尾数加减、规格化、舍入和溢出判断五个步骤,整个流程环环相扣。01对阶比较两操作数阶码E_x和E_y,将阶码较小者的尾数右移(每右移一位阶码加1),直到两阶码相等,对齐小数点位置。02尾数加减对阶完成后两尾数按定点加减法进行运算,结果的阶码等于对阶后的公共阶码。03规格化若尾数结果不满足规格化要求,需左规(尾数左移、阶码减1)或右规(尾数右移、阶码加1)。04舍入对阶时尾数右移丢失的低位信息需通过舍入策略(四舍五入、恒置1法、截断法)处理,减小精度损失。05溢出判断检查最终阶码是否超出表示范围,上溢触发异常中断,下溢则将结果按机器零处理。FLOATINGPOINT浮点数乘除运算浮点乘法为阶码相加、尾数相乘后规格化舍入;浮点除法为阶码相减、尾数相除后规格化舍入。相比加减运算无需对阶步骤,流程更简洁,但阶码运算需注意偏置值的处理。01浮点乘法步骤阶码相加(Ex+Ey−E,E为偏置值),尾数相乘(Mx×My),对尾数乘积规格化和舍入,最后检查阶码溢出02浮点除法步骤阶码相减(Ex−Ey+E),尾数相除(Mx÷My),对尾数商规格化和舍入,最后检查阶码溢出和除零异常03阶码偏置值修正两个移码表示的阶码直接相加会多出一个偏置值,需在结果中减去一个E值进行修正04硬件并行实现依赖专用浮点乘法器和除法器,现代GPU中此类运算单元数量远超整数ALU,以支撑大规模并行计算IEEE754·数值计算浮点运算中的舍入与溢出处理浮点运算的精度和可靠性依赖舍入策略和溢出处理。IEEE754定义了四种舍入模式,默认向最近偶数舍入以避免统计偏差;阶码上溢触发异常,下溢按机器零处理,确保系统不因数值异常而崩溃。IEEE754舍入模式定义四种舍入模式:向最近偶数舍入(默认)、向正无穷舍入、向负无穷舍入和向零截断,默认模式可避免统计偏差。四种模式向最近偶数舍入当丢失部分恰好等于最低位权值的一半时,舍入到最低位为偶数的结果,长期使用可消除累积舍入误差。消除误差阶码上溢处理运算结果的阶码超过最大可表示值,表示数值过大无法表示,硬件触发溢出异常中断,由操作系统或程序进行异常处理。异常中断阶码下溢处理运算结果的阶码低于最小可表示值,表示数值过小接近零,硬件将结果按机器零处理,不触发异常但精度完全丧失。机器零Chapter07逻辑运算与ALU设计基本与复合逻辑运算的真值表分析及ALU的结构设计LOGICOPERATIONS基本逻辑运算(与或非)与、或、非是三种基本逻辑运算,构成完备的逻辑运算集合。与运算要求所有输入为1才输出1,或运算只需一个输入为1即输出1,非运算对单输入取反。基本逻辑运算真值表ABA∧B(与)A∨B(或)¬A(非)00001010111001011110与运算全1出1,或运算有1出1,非运算取反;三者构成完备逻辑运算集CompositeLogic复合逻辑运算与门电路实现异或、同或、与非、或非是四种常用复合逻辑运算。异或在加法器和加密中广泛应用

温馨提示

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

评论

0/150

提交评论