计算机体系结构:alu算术运算单元 北大计算机系
(55页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
29.9 积分
北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 计算机组织与系统结构计算机组织与系统结构 电路设计过程与电路设计过程与ALUALU设计设计 The Design Process 1 A, B; 1 位进位输入:位进位输入:Cin.Cin. 输出输出: 1 x 16: 1 x 16位结果:位结果:S; 1S; 1位进位输出:位进位输出:Co.Co. 操作操作: PASS, ADD (A + B + Cin), SUB (A : PASS, ADD (A + B + Cin), SUB (A - - B B - - Cin),Cin), AND, XOR, OR, COMPARE (AND, XOR, OR, COMPARE (相等相等) ) 性能性能: : 现在,还没有详细说明!现在,还没有详细说明! (2) (2) 框图框图 理解数据和控制流理解数据和控制流 ALU A B M Cin Co S 16 16 16 3 模式模式/ /功能功能 “VHDLVHDL行为行为“ “ “VHDLVHDL实体实体“ “ 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 二进制数绪论二进制数绪论 °4位二进制数位二进制数 °示例示例: : ? 3 + 2 = 5 3 + 3 = 6 二进制二进制 二进制二进制 十进制十进制 0 0000 1 0001 2 0010 3 0011 十进制十进制 4 0100 5 0101 6 0110 7 0111 0 0 1 1 0 0 1 0 + 0 1 0 1 1 0 0 1 1 0 0 1 1 + 0 1 1 0 1 1 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 计算机中的机器数表示计算机中的机器数表示 °原码表示原码表示 ?符号位用符号位用0 0表示正数,用表示正数,用1 1表示负数表示负数 ?数值用二进制表示数值用二进制表示 ?对对0 0有两种表示:有两种表示:+0+0和和- -0 0 °反码表示反码表示 ?若是正数,与原码表示一致若是正数,与原码表示一致 ?若是负数,除符号位以外取反若是负数,除符号位以外取反 ?对对0 0有两种表示:有两种表示:+0+0和和- -0 0 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 补码补码(Two’s Complement)表示表示 °负数的补码表示负数的补码表示 ?每位取反每位取反, ,并加并加 1 1 ?负数的最大位负数的最大位( MSB) ( MSB) 总是为总是为 1 = 1 = 符号位符号位 ?最大的最大的4 4位二进制数位二进制数: 7: 7 最小的最小的4 4位二进制数位二进制数: : - -8 8 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 ALU的设计需求和规范描述的设计需求和规范描述 °ALU 控制线控制线 (ALUop) 功能功能 ? 000 按位与(按位与(and)) ? 001 按位或(按位或(Or)) ? 010 Add ? 110 Subtract ? 111 Set-on-less-than ALU N N N A B 结果(Result) 溢出(Overflow) 零(Zero) 3 ALUop 输出进位(CarryOut) 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 1位位 ALU °该该 1位位 ALU将完成将完成 AND、、OR和和 ADD A B 1-bit 全加器全加器 输出进位(输出进位(CarryOut)) 输入进位(输入进位(CarryIn)) 多路选择器多路选择器 结果(结果(Result)) 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 1位全加器位全加器 °又称为又称为 ““ (3, 2) adder” °半加器半加器: 没有没有CarryIn 和和 CarryOut °真值表真值表: 1-bit 全加器全加器 CarryOut CarryIn A B C 输入输入 输出输出 注释注释 A B CarryIn Sum CarryOut 0 0 0 0 0 0 + 0 + 0 = 00 0 0 1 0 1 0 + 0 + 1 = 01 0 1 0 0 1 0 + 1 + 0 = 01 0 1 1 1 0 0 + 1 + 1 = 10 1 0 0 0 1 1 + 0 + 0 = 01 1 0 1 1 0 1 + 0 + 1 = 10 1 1 0 1 0 1 + 1 + 0 = 10 1 1 1 1 1 1 + 1 + 1 = 11 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 CarryOut的逻辑方程式的逻辑方程式 °CarryOut = (!A S_delay: integer := 20 ns); port ( signal A, B: in vlbit_vector (0 to 31); signal m: in vlbit_vector (0 to 3); signal S: out vlbit_vector (0 to 31); signal c: out vlbit; signal ovf: out vlbit) end ALU; . . . S Need 32-bit multiply and divide, signed and unsigned °Sll, Srl, Sra (下一讲下一讲) = Need left shift, right shift, right shift arithmetic by 0 to 31 bits °Nor (课后思考课后思考) = logical NOR or use 2 steps: (A OR B) XOR 11111111 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 设计过程的要素设计过程的要素 °分治分治 Divide and Conquer (e.g., ALU) ? 针对较简单的部件,阐明解决方案针对较简单的部件,阐明解决方案. ? 设计每个部件(子问题)设计每个部件(子问题) °产生产生 并并 测试测试 Generate and Test (e.g., ALU) ? 给出一组积木,寻求如何将它们组装起来,满足需求给出一组积木,寻求如何将它们组装起来,满足需求 °逐步求精逐步求精 Successive Refinement (e.g., carry lookahead) ? 解决“大多数”问题解决“大多数”问题 (即即, 忽视一些约束或特殊情况)忽视一些约束或特殊情况), 检查并修改缺陷检查并修改缺陷 °阐明可供选择的高级方案阐明可供选择的高级方案 Formulate High-Level Alternatives (e.g., carry select) ? 当追踪任何一种步骤时,都要最考虑多种策略当追踪任何一种步骤时,都要最考虑多种策略 °做已知如何做的事情做已知如何做的事情 Work on the Things you Know How to Do ? 在不断前进中,未知的事情将越来越明显。在不断前进中,未知的事情将越来越明显。 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 设计过程小结设计过程小结 采用层次式设计处理复杂性采用层次式设计处理复杂性 自顶向下自顶向下 vs.自底向上自底向上 vs. 逐步求精逐步求精 设计表达的重要性设计表达的重要性: ? 基本模块(基本模块(Block Diagrams)) ? 分解为位片(分解为位片( Bit Slices)) ? 真值表、真值表、 K-Maps ? 电路图电路图 ? 其他描述其他描述: 状态图、时序图状态图、时序图, 寄存器传输寄存器传输, . . . 优化标准优化标准: 门数门数 [封装数封装数] Logic Levels Fan-in/Fan-out Power top down bottom up 面积面积 Delay mux design meets at TT Cost Design time 管脚输出管脚输出 北京大学计算机科学技术系北京大学计算机科学技术系 计算机系统结构教研室计算机系统结构教研室 总结总结 °设计过程概述设计过程概述 ? 设计是一个不断反复的过程设计是一个不断反复的过程-- 逐步求精逐步求精 ? 无需等到无需等到 洞察一切后洞察一切后 才开始设计才开始设计 °二进制算术绪论二进制算术绪论 ? 使用补码表示,易于实现减法使用补码表示,易于实现减法 °ALU设计设计 ? 设计一个简单的设计一个简单的4位位 ALU ? 其他构建其他构建ALU的技术的技术 °ISA驱动的驱动的ALU设计设计 关 键 词: 计算机体系结构:alu算术运算单元北大计算机系
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文