【计算机组成 课程笔记】4.2 除法器的硬件实现

这篇具有很好参考价值的文章主要介绍了【计算机组成 课程笔记】4.2 除法器的硬件实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 课程链接:

计算机组成_北京大学_中国大学MOOC(慕课)

4 - 5 - 405-除法的运算过程(09-'43--)_哔哩哔哩_bilibili

在加减乘除这样的基本算数运算中,除法是最为复杂的,因此我们想要实现硬件的除法器,还是从最简单的情况开始说起。

1. 除法的运算过程

回想一下手算除法的过程。这里是两个由0和1组成的被除数和除数。首先将除数和被除数从高位开始对齐,将对齐的部分进行减法,当我们发现减完的结果是一个正数,也就是够减的时候,我们就在商的对应位标一个1,然后把减完的差放在下面。再从被除数后面的位中拿一位下来(10),继续判断是否够减。我们发现在这个例子中它不够减,于是我们在商的对应位标一个0。再多拿一位也还不够(101),所以再标1个0。然后再拿一位下来(1010),够减了,于是标1,然后把减完的差放在下面,减完的结果已经没有多余的被除数位可以拿下来了,所以这个数就是余数。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

我们仔细观察上面的运算过程,其实中间忽略了一些步骤,完整的运算相当于是把除数每次右移1位,与被除数的对应位数进行比较,如果被除数大,则商为1,如果除数大,则商为0,被除数减掉除数以后剩下的就是当前轮次的余数。而商是从最高位开始计算,直到最低位,这也可以看成是一个左移的操作。

好,我们整理一个除法器的工作流程。以32位除法器为例:

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

2. 除法器的硬件实现

为了简便起见,我们以4位的除法器来进行说明。一个4位的除法器,需要1个8位的余数寄存器,需要1个8位的除数寄存器,且带右移功能,还需要一个4位的商寄存器,且带左移的功能。最后需要1个8位的ALU,支持加法和减法的运算。这里需要支持加法运算,主要是因为2b中有一个回退的操作。最后还需要1个控制逻辑控制这几个寄存器和ALU的工作。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

现在我们就有了一个完整的除法器,我们就来看一下这个除法器是如何工作的。

0. 初始化

初始化各个寄存器,将8位的被除数放入余数寄存器;将4位的除数放入除数寄存器的高4位,并将低4位补上0;将4位的商寄存器置为0。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

1. 减法运算

初始化后正式进入计算的过程。第一步是进行减法运算,将当前余数寄存器的内容减去除数寄存器的内容,得到结果是11100111。这时控制逻辑还会向余数寄存器发出写入的信号,在下一个时钟上升沿到来的时候,11100111就会写入余数寄存器。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

2. 检查余数

现在余数寄存器已经更新了,第二步就是检查这个余数寄存器,如果大于等于0,就执行2a分支,否则执行2b分支。对于当前这个例子,我们发现余数寄存器的最高位是1,表示小于0,所以执行的是2b分支。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

2b. 当余数<0

因为余数<0,意味着我们不应该进行刚才那次减法,所以我们这里就要回退刚才第1步的操作,即执行加法运算。控制逻辑会给ALU一个加法信号,让它进行计算,同时也会给余数寄存器一个写入的信号,在下一个时钟上升沿到来的时候,00000111就又会写入余数寄存器,这样就完成了回退的工作。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

另外,我们还需要做的是将商寄存器左移1位,并将新的最右位设为0。这样这一步的内容就完成了。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

2a. 当余数>=0

当余数>=0时,我们不需要进行回退的操作。举例,在第5轮的时候,第2步的运算结果得到的余数寄存器中的值时00000001,由于最高位是0,说明余数是1个正数。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

那么此时要做的事情就是将商寄存器左移1位,新的最右位置为1。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

3. 对除数进行右移

为了下一步运算做准备,我们现在要把除数寄存器右移1位。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

4. 判断是否进行下一轮

因为这是1个4位的除法器,所以我们需要检查的是当前是不是第5轮循环。那经过检查,如果现在还不是第5轮,所以我们还需要进行下一轮计算,即重复上述1~4步的过程。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

如果已经是最后1轮,则结束。结果如下图所示。所以对于这个例子来说00000111 / 0010 = 7 / 2 = 3,余1,与下面寄存器中的结果相符。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

3. 除法器的优化1

这是我们已经有了的一个除法器的实现,我们称它为第1版。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

我们首先来考虑面积方面的优化,目前有的问题是,除数寄存器实际只使用了其中的一半,商寄存器初始时是空的,从右到左逐位填满,余数寄存器初始时是满的,有实际意义的位从左到右逐渐减少。

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

从这些问题出发,我们可以进行如下的优化:

【计算机组成 课程笔记】4.2 除法器的硬件实现,计算机系统,笔记

4. 除法器的优化2

除了面积优化以后,从乘法器那边得到启发,是不是还能做一些性能方面的优化呢?

但是乘法的特点是每个部分积是独立的,可以并行计算各个部分的积。而对于除法来说,需要检查上一轮做完以后的余数,并且如果余数<0,还需要进行回退,这样的话它每一轮的运算就不是相互独立的了,因此无法进行并行。所以在这个除法器的大框架下,很难进行进一步的性能优化。

当然,正是由于除法的优化非常困难,也引来了很多人对除法运算进行深入的研究,如果对此有兴趣,可以进一步深入地探索。文章来源地址https://www.toymoban.com/news/detail-699712.html

到了这里,关于【计算机组成 课程笔记】4.2 除法器的硬件实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机硬件】1、计算机的硬件组成、校验码

    CPU主要是由运算器、控制器、寄存器组和内部总线等部件组成 1、程序控制 通过执行指令来控制程序的执行顺序 2、操作功能 一条指令的实现需要若干操作信号配合,控制相应的部件完成相对应的操作 3、时间控制 对各种操作进行时间上的控制,指令执行的过程中操作信号出

    2024年01月19日
    浏览(54)
  • 计算机组成原理之计算机硬件发展和计算机系统的组成

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好

    2024年01月24日
    浏览(86)
  • 【计算机三级嵌入式】考试自学笔记(三)——嵌入式系统硬件组成、嵌入式处理芯片以及存储器介绍

    常考知识点: 嵌入式最小硬件组成 嵌入式处理芯片 嵌入式系统的存储器 I/O接口及常用I/O设备 ARM内核典型嵌入式处理芯片 嵌入式系统外部通信接口 嵌入式最小硬件系统的组成如下: 嵌入式硬件系统≠嵌入式最小硬件系统 电源电路 :为整个嵌入式系统提供能量 时钟电路 :

    2023年04月12日
    浏览(88)
  • 计算机组成原理——课程设计

      深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。 1.    TEC-2机一台 2.    电脑一台 3.    TEC-2模拟软件一套 1.分析TEC-2机的功

    2024年02月08日
    浏览(58)
  • 头歌计算机组成原理实验—运算器设计(4)第4关:16位快速加法器设计

    实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器,并能利用相关知识分析对应电路的时间延迟,理解电路并行的概念。

    2024年02月05日
    浏览(134)
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    掌握快速加法器中先行进位的原理,能利用相关知识设计4位先行进位电路,并利用设计的4位先行进位电路构造4位快速加法器,能分析对应电路的时间延迟。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 利用已设计好的四位先行进位电路构造四位快速加法器,其引脚定

    2024年02月02日
    浏览(247)
  • 计算机组成原理(2)各个硬件的工作原理

    (1)存储体(M) 1、存储单元 :每个存储单元存放一串二进制代码。 2、存储字(word) :存储单元中二进制代码的组合。 3、存储字长 :存储单元中二进制代码的位数,一般是 8bit 的倍数。 4、存储元件 (存储元):即存储二进制的电子元件,每个存储元件可存 1bit。 MAR位数

    2024年02月13日
    浏览(48)
  • 计算机组成原理课程论文:分布式存储系统组成和应用

    摘要 分布式存储系统是一种解决大规模数据处理和存储需求的重要技术。本文首先对分布式存储系统进行了概述,包括其定义、优缺点等。然后,详细介绍了分布式存储系统的组成部分,包括存储节点、数据管理软件、网络连接和元数据管理,并结合具体案例进行了说明。接

    2024年02月13日
    浏览(66)
  • 西南交通大学 计算机组成原理实验课程设计

     代码部分: 波形图部分: (上图Load为2节拍,我之前写错了。。。这里忘了改了)

    2024年02月13日
    浏览(49)
  • 九耶丨阁瑞钛伦特-大型计算机硬件组成(一)

    ​ IBM大型机系统是由主机和多种外围设备组合形成的一个综合系统,上面是一个主机系统组成的例子。 ​以上是OS390操作系统的组成情况: MVS: 大型机操作系统的核心部分,有时又被使用为大型机操作系统的全称。 SMS: SMS是STORAGE MANAGEMENT SUBSYSTEM的缩写。它是MVS下的一个系

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包