加法器:进位链

1. 为什么研究加法器

ALU就是进行算数运算、逻辑运算等,其中中最重要的逻辑单元就是加法器,因为加法、减法、乘法、除法都是需要加法器辅助完成的,因此我们来需要探讨加法器如何设计

2. 串行加法器 VS 并行加法器

问题:如何提高加法器的速度
思路:加法器要想把速度加快,最好的办法就是所有位数能够并行运算,但是高位两个数加法需要加上低位的进位 ->
问题转换为:如何快速计算出每一位的进位出来,因此实现并行加法器
下图给出并行加法器的结构,通过并行加法器,重点在于确定进位是如何产生,实际上这个结果就是一位全加器的进位输出的逻辑表达式,主要是确定本地进位与传送条件

  • 本地进位:di = AiBi - 与低位进位无关
  • 传送条件:ti = Ai+Bi - 与低位进位无关


从并行加法器可以看出来,数据A和数据B每一位的值ai与bi肯定是确定,以及最后一个一位全加器的C-1为0,因此要想并行运算的关键是如何正确且快速的计算所有的进位

进位链:用来产生每位进位的电路

3 串行进位链 VS 并行进位链

上面我们知道:并行加法器的关键就是产生所有的进位,
进位链的概念:产生所有进位值的电路链

3.1 串行进位链


假设:一个与非门需要ty时间完成
由上图可知:
di本地进位与ti条件进位与低位进位无关,因此可以同时产生。假设此刻已经产生所有的di与ti需要计算所有的进位值,根据上述的逻辑表达式,每个进位都需要两个与非门,且高位进位需要等待低位进位值后再运算,因此在4位串行进位链中,产生全部进位需要:4*2dt=8dt

3.2 并行进位链


假设:一个与非门需要ty时间完成,一个或非门需要的1.5ty时间完成
相比于串行进位链,我们直接C1的逻辑表达式中的C0,替换为d0+t0C(-1),以此类推,将C2、C3、C4中的低位进位用对应的表达式替换,最终我们得到的C0、C1、C2、C3的表达式中只有一个确定进位C-1=0这个值,所以当所有的di与ti准备好后,进位C0、C1、C2、C3可以同时在2.5ty立即产生,以C2的产生过程为例,d2、t2d1、t2t1d0、t2t1t0C-1都是通过与非门同时产生的,然后产生的结果经过或非门,就拿到C2的值,期间就是1ty+1.5ty

3.3 串行进位链 VS 并行进位链

  1. 速度上:以4位进位链为例,一个与非门需要ty时间完成,一个或非门需要的1.5ty时间完成,那么4位串行进位链需要10ty,4位并行进位链需要2.5ty
  2. 集成度:非常明显,并行进位链需要更加庞大的组合逻辑电路

疑问:是不是只用并行进位链就ok啦
答案:并不是的,理论上是可以的,但有一个问题存在,现代计算机中基本上机器字长都是64位,也就是说当n等于64时,通过并行进位链来并行计算进位值会导致一个问题:越到后面的进位值的运算,就需要越来越多的di、ti参与进来,结果就是,电路将会会越来越复杂,因此我们需要在快速并行进位和电路设计复杂度上综合一下

4. 单重分组跳跃进位链 PK 双重分组跳跃进位链

4.1 单重分组跳跃进位链


单重分组跳跃进位链 = 小组内并行进位链 + 组与组之间是串行进位链
假设不变,低位小组的4位并行进位链需要2.5dt,一共n=16,有4个小组,组与组之间由于是采用串行进位,因此最需要 4*2.5dt= 10dt 产生16位的进位

4.2 双重分组跳跃进位链


双重分组跳跃进位链相比于单重分组跳跃进位链的特点:

  • 分两次组,先分大组,然后再分小组
  • 小组与小组之间的并行进位,大组与大组之间采用串行进位

过程:

  • 当di、ti、c-1形成后,经过2.5ty,通过D5~D8、T5-T8的逻辑表达式可知,都可以直接产生出来的,同时最后一个小组的C2、C1、C0也会产生。
  • 再经过2.5dt,由于D5~D8、T5-T8已经产生,通过(3)(4)双重分组跳跃进位链的大组进位线路,等价一个并行进位链的结构,所以可在2.5dt产生C3、C7、C11、C15,都是当前大组中每个小组处于第8小组需要的最低进位
  • 再经过2.5dt,由于C3、C7、C11、C15已经计算出,那么每个小组的最低位已经确定,那么第5小组、第6小组、第7小组的C14~12、C10-8、C6-4可以立即计算出来。

计组 - 加法器:进位链相关推荐

  1. 超前进位加法器实验报告_北科大第二次计组实验报告超前进位加法器.doc

    北科大第二次计组实验报告超前进位加法器 北京科技大学 计算机与通信工程学院 实 验 报 告 实验名称: 超前进位加法器 学生姓名: 专 业: 计算机科学与技术 班 级: 学 号: 指导教师: 实验成绩 ...

  2. 超前进位加法器实验报告_北科大第二次计组实验报告超前进位加法器

    北科大第二次计组实验报告超前进位加法器 北京科技大学 计算机与通信工程学院实 验 报 告实验名称: 超前进位加法器 学生姓名: 专 业: 计算机科学与技术 班 级: 学 号: 指导教师: 实验成绩: ...

  3. 计组期末复习---个人版

    (一)计算机系统概论 1.1计算机分类与发展历史 分类:电子模拟计算机和电子数字计算机 电子模拟计算机:数值由连续量来表示,运算过程是连续的 电子数字计算机:按位运算,并且不是连续地跳动运算 专用计算 ...

  4. 计组第六章——计算机的运算方法重点总结

    目录: 1.原码.反码.补码.移码 2.浮点与定点表示 3.加减法运算 4.原码乘法 5.补码乘法 6.除法运算 7.浮点数运算 8.算术逻辑运算单元 1.原码.反码.补码.移码 1.1机器字长 1. ...

  5. 计组期末复习之例题与解析

    计组例题与解析 第一章:概论 无 第二章:运算方法和运算器 例2-1 求补码 对于正数,不变 对于负数,符号位不变,数值位取反加一 例2-2 数轴形式表示原码.反码.补码范围 第一位符号位,后面是数值 ...

  6. 计组复习(二):单周期数据通路与控制信号

    目录 前言 单周期数据通路 算数逻辑指令(R 型指令) 取指令阶段 译码阶段 执行阶段 内存访问阶段 写回阶段 下一条指令 内存访问指令 分支跳转指令 总结(重要⚠) 前言 昨天复(yu)习了:计组复 ...

  7. 从底层结构开始学习FPGA(7)----进位链CARRY4

    文章目录 系列目录与传送门 一.半加器与全加器 1.1.半加器 1.2.全加器 二.多bit加法(以4bit为例) 2.1.串行(行波)进位加法器(RCA) 2.2.超前进位加法器(Carry-Loo ...

  8. 超前进位加法以及对应FPGA Carry Logic进位链的理解

    1 加法器 1.1 半加器 两个二进制数,不考虑进位输入. 真值表: A B O CO 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 { O = A ‾ B + A B ‾ = A ...

  9. 计算机组成原理实验心得2000字,计组实验报告(共10篇).doc

    计组实验报告(共10篇) 计组实验报告(共10篇) 计组实验报告 计算机组成原理实验报告一 一.算术逻辑运算器 1. 实验目的与要求: 目的:① 掌握算术逻辑运算器单元ALU(74LS181)的工作原 ...

最新文章

  1. 【安全系列之加密算法】常用安全的加密算法
  2. 负载均衡Ribbon和Feign---SpringCloud
  3. excel随机抽取_简单随机抽样及其进阶分层随机抽样方法展示
  4. 书写README的各种markdown语法
  5. Java加密与解密的艺术~RSA实现
  6. CKEditor的使用,并实现图片上传
  7. 【转】使用Python的Requests库进行web接口测试
  8. 计算机接口技术 实验箱,微机原理及接口技术实验箱.doc
  9. 图像相似度对比分析软件,图像相似度对比分析法
  10. gitlab怎么将建好的项目移到某个组下
  11. html返回到处乱跑,电脑鼠标乱动不受控制(鼠标到处乱跑不听使唤)
  12. 『杭电1897』SnowWolf‘s Wine Shop
  13. MGJRouter代码分析
  14. 青龙面板库 大全(9.6更新)
  15. ibm服务器修复安装win7系统,联想thinkpad无法开机重装win7,教你重装系统攻略
  16. 微信团队原创分享:iOS版微信的内存监控系统技术实践
  17. Redis(八) - Redis企业实战之优惠券秒杀
  18. tkMapper插件的详细讲解
  19. 福建省区块链应用商会成立大会 发起单位零伽壹现场做主题分享
  20. 数据分享|中国各省、各市、各区县分年、分月、逐日平均气温数据(2000年~2019年)

热门文章

  1. CenterOS下安装docker
  2. python录音pyaudio_用PyAudio录制特定时间的音频?
  3. 最新海豚码支付系统APP监控支付码免签系统源码V6.0
  4. P4学习笔记(二)一个简单P4交换机实现
  5. Caffe安装,看这篇就够了
  6. UTM坐标与GPS经纬度(WGS84)的相互转换
  7. 一个华裔女孩马天琪的心愿
  8. 特步发布三款竞速跑鞋,岳云鹏赵奕欢完成3.21公里破速挑战
  9. 解决./XXX: symbol lookup error: /home/root/shenyl/lib/libxxx.so: undefined symbol: _ZN3VRC18AppP
  10. C# 多线程初级汇总