首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
计算机组成原理 第二章 2.3~2.6
📅 2026/10/24 7:39:00
✍️ 爱科研究院
👁 阅读 3,247
一、知识框架总览第二章 2.3~2.6 的主线是“运算方法 运算部件”两条线索运算方法定点乘法、定点除法、浮点加减法核心是“如何用加法器和移位器实现乘除与浮点运算”。运算部件逻辑运算、ALU多功能算术/逻辑运算单元、内部总线、定点运算器基本结构核心是“数据通路如何组织、控制信号如何产生”。二、2.3 定点乘法运算2.3.1 基本思想定点乘法本质是“移位 相加”的重复过程。设被乘数为x乘数为y则x×yx× (yn-12n-1 yn-22n-2 … y020 )即根据乘数每一位的取值决定是否累加被乘数每处理一位就把部分积右移一位。硬件上只需“加法器 移位寄存器 控制逻辑”。2.3.2 原码一位乘法符号处理符号位单独处理结果符号 两操作数符号的异或。数值部分取绝对值做无符号乘法采用“部分积右移”方式。运算规则乘数最低位为 1 则部分积加被乘数为 0 则加 0然后部分积与乘数联合右移一位。结果位数两个 n 位定点小数相乘结果为 2n 位需注意小数点位置与溢出判断。原码一位乘的优点是规则简单、易于理解缺点是符号与数值分开处理硬件上需要额外的符号处理逻辑。2.3.3 补码一位乘法Booth 算法补码乘法可直接对带符号数运算符号位参与运算无需单独处理符号。Booth 算法根据乘数相邻两位yiyi-1 的组合决定操作yiyi-1操作00部分积加 0右移一位01部分积加 [x]补右移一位10部分积加 [-x]补右移一位11部分积加 0右移一位要点乘数末位后需附加一位y-1初值为 0。移位为算术右移保持符号位不变。n 位乘数需进行 n 次“判断—加减—移位”最后一步通常只加减不移位视教材约定。Booth 算法天然支持符号位参与运算是补码乘法的标准实现方式。2.3.4 阵列乘法器阵列乘法器用组合逻辑阵列并行产生所有部分积并逐级相加速度快但硬件量大。其结构可看作“与门阵列产生部分积 全加器阵列完成累加”属于典型的空间换时间设计。2.3.5 易错点提示原码乘与补码乘的移位方向、符号处理方式不同不要混用。补码乘法中加 [-x]补 时要注意求补规则连同符号位一起取反加 1。结果位数与小数点位置要结合定点小数/定点整数的约定判断。三、2.4 定点除法运算3.1 基本思想定点除法是乘法的逆运算本质是“比较—减—左移”的重复过程。需先判断是否溢出定点小数除法要求 |被除数| |除数|否则商溢出。3.2 原码恢复余数法符号单独处理数值部分取绝对值相除。每次用余数减去除数若余数为负说明“不够减”商上 0并恢复余数加回除数若余数为正商上 1。然后余数与商联合左移一位继续下一位。缺点不够减时需要恢复余数操作步数不固定控制较复杂、速度较慢。3.3 原码加减交替法为克服恢复余数法步数不固定的缺点采用“加减交替”余数为正时商上 1下一步做减法余数左移后减除数。余数为负时商上 0下一步做加法余数左移后加除数。无需恢复余数步数固定硬件实现更规整。该方法与原码恢复余数法在数学上等价但执行效率更高是原码除法的常用实现。3.4 补码除法补码除法中符号位参与运算商和余数均为补码形式。判断“够减”不再看余数符号而要看余数与除数符号是否相同余数与除数同号说明够减商上 1。余数与除数异号说明不够减商上 0。商的末位需按教材约定进行“末位恒置 1”或修正处理。补码除法省去了符号单独处理但判断逻辑和修正规则更易出错复习时要重点掌握判断条件与移位规则。3.5 易错点提示除法前必须做溢出判断|被除数| |除数|。恢复余数法与加减交替法的“商位取值”和“下一步加减”要对应清楚。补码除法的“够减”判断依据是符号关系不是余数正负的直观含义。四、2.5 定点运算器的组织4.1 逻辑运算运算器不仅能做算术运算还能完成逻辑运算常见包括逻辑与AND按位与常用于掩码、清零特定位。逻辑或OR按位或常用于置位。逻辑非NOT按位取反。逻辑异或XOR按位异或常用于比较、求反、奇偶校验。逻辑运算按位独立进行不产生进位因此实现简单通常与算术运算共用 ALU 的数据通路。4.2 多功能算术/逻辑运算单元ALUALU 是运算器的核心部件能够完成加、减、与、或、异或等多种运算。其关键设计思想是用函数发生器根据操作控制信号S3~S0 选择不同的运算功能。用并行进位链先行进位提高加法速度常见有组内并行、组间并行等结构。典型芯片如 741814 位 ALU通过模式控制端M区分算术运算与逻辑运算。74181 的功能特点M 1 时为逻辑运算M 0 时为算术运算。通过S3~S0 选择 16 种运算功能。提供进位产生/传播信号便于多片级联构成更宽位数的 ALU。4.3 内部总线内部总线是运算器内部各部件之间传送数据的公共通路。常见组织方式单总线结构所有部件挂在一条总线上同一时刻只能有一个数据传送需分时复用速度较慢但结构简单。双总线结构可同时传送两个操作数减少冲突提高效率。三总线结构可同时提供两个操作数并写回结果速度最快硬件开销最大。总线结构的选择需要在速度与硬件成本之间折中是运算器组织设计的重要内容。4.4 定点运算器的基本结构定点运算器通常由以下部分组成算术逻辑单元ALU完成算术与逻辑运算。寄存器组存放操作数、中间结果和运算结果如通用寄存器、暂存寄存器。移位器完成左移、右移支持乘除运算与规格化。内部总线连接各部件完成数据传送。控制逻辑根据指令产生运算控制信号与寄存器读写信号。状态寄存器/标志位记录进位、溢出、零、符号等结果特征。其数据通路可概括为“寄存器 → 总线 → ALU → 移位器 → 寄存器”的循环控制信号决定每一步的数据流向与运算功能。五、2.6 浮点运算方法和浮点运算器5.1 浮点数的表示回顾浮点数一般表示为NM×RE其中M为尾数决定精度E为阶码决定范围R为基数通常为 2。浮点运算需分别处理阶码和尾数。5.2 浮点加法、减法运算的五个步骤浮点加减法的核心是“先对齐阶码再对尾数运算最后规格化”。标准流程如下对阶求阶差 ΔEEx −Ey将小阶向大阶看齐小阶数的尾数右移 ΔE位阶码增大到与大阶相同。右移时舍去的低位需保留供后续舍入使用。尾数求和/求差阶码对齐后对尾数进行加或减运算通常用补码加法实现减法。规格化使结果尾数满足规格化形式。左规尾数溢出或高位无效时左移阶码相应减小右规尾数运算结果溢出如双符号位为 01 或 10时右移一位阶码加 1。舍入对右移或规格化过程中舍去的位进行处理常见方法有“0 舍 1 入”法、“恒置 1”法、就近舍入四舍六入五成双等。溢出判断根据阶码是否超出表示范围判断上溢或下溢。阶码上溢表示结果超出浮点数范围需作溢出处理阶码下溢通常按机器零处理。5.3 对阶与规格化的关键细节对阶原则小阶向大阶看齐避免大阶数尾数左移导致高位丢失。对阶右移尾数右移会损失精度因此需保留附加位参与后续舍入。左规尾数出现 00.0… 或 11.1… 形式时左移直到满足规格化要求同时阶码减 1。右规尾数求和产生进位导致溢出时右移一位阶码加 1一般只需一次右规。舍入与溢出顺序先规格化、再舍入舍入可能再次引起溢出需再次判断。5.4 浮点乘除法简述浮点乘法阶码相加尾数相乘结果规格化并舍入。浮点除法阶码相减尾数相除需判断除数是否为 0、是否溢出结果规格化并舍入。5.5 浮点运算器的组成浮点运算器通常包括阶码运算部件完成阶码加减、比较判断对阶方向与溢出。尾数运算部件完成尾数加、减、乘、除通常复用定点 ALU。规格化与舍入部件完成左规、右规及舍入处理。寄存器组与控制逻辑存放操作数、中间结果产生各步控制信号。由于浮点运算步骤多、控制复杂实际实现中常采用流水线或专用浮点协处理器来提高性能。5.6 易错点提示对阶方向搞反必须小阶向大阶看齐。规格化时阶码增减方向与尾数移位方向要对应一致。舍入后可能再次溢出不能遗漏二次判断。上溢与下溢的处理方式不同下溢一般按机器零处理。六、复习要点速记知识点核心口诀原码一位乘符号异或数值右移累加补码一位乘看相邻两位加 [x]补 或 [-x]补算术右移原码除法恢复余数法步数不定加减交替法步数固定补码除法看余数与除数是否同号判断够减ALUM 区分算术/逻辑S3~S0 选功能先行进位提速内部总线单总线简单慢多总线快但贵浮点加减对阶 → 尾数运算 → 规格化 → 舍入 → 溢出判断建议复习时结合教材例题手算一遍原码/补码乘法、加减交替除法以及一道浮点加减法题重点体会“移位方向、符号处理、规格化与舍入”这几个高频失分点。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/24 7:34:00
SSD1322 OLED驱动芯片底层机制拆解:从接口时序到灰度表
2026/10/24 7:34:00
响应式数据流实战:从零构建实时数据处理内核
2026/10/24 7:34:00
pandapower在配网仿真中的实战应用
2026/10/24 10:54:20
Faster R-CNN与Visual Genome区域注意特征实践
2026/10/24 10:54:20
SLAM数据集评测避坑指南:TUM、KITTI、EuRoC细节剖析
2026/10/24 10:54:20
claude-mem持久化记忆层:大模型对话记忆管理的架构与实操
2026/10/24 10:54:20
openTCS 5.9实战:从AGV调度框架到工厂建模与订单调度落地
2026/10/24 10:54:20
〖共创稿事节〗HarmonyOS 7 新特性实战(35):让 3D 浮雕沿真实地貌边界抬升
2026/10/24 10:49:20
claude-mem 持久化记忆系统:架构解析与检索调优实战
2026/10/24 0:02:52
UDP协议实现局域网音量与关机控制:后台常驻与批量管理
2026/10/24 0:02:52
MATLAB缩进快捷键与批量格式化实战指南
2026/10/24 0:02:52
用Poco实现Qt风格信号与槽的跨平台C++方案
2026/10/24 4:01:50
OpenResearch实战:Claude Code、Codex、OpenCode、Cursor 工作流搭建与故障排查
2026/10/24 4:01:49
知识管理核弹:用Obsidian构建第二大脑的工程化方案(TaoToken 统一 Key 接入版)
2026/10/24 0:59:24
金融AI落地指南:从调研报告到技术选型与工程实践
2026/10/23 10:58:39
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/23 10:58:39
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/23 10:58:39
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)