随笔分类 - 《计算机组成》 陆俊林
摘要:计算机组成 7 流水线处理器 7.5 数据冒险的处理 在程序当中,我们经常会对同一个变量进行反复的使用和修改。这样对于流水线处理器来说,就会经常出现数据冒险的情况,我们必须很好的应对和解决。在这一节,我们就来看一看有哪一些不同的解决方法。 我们先来看这个数据冒险的例子。产生这个数据冒险,是因为第二条
阅读全文
摘要:计算机组成 7 流水线处理器 7.4 流水线的冒险 流水线技术之所以能提高性能,究其本质是利用了时间上的并行性。它让原本应该先后执行的指令,在时间上一定程度的并行起来,然而这也会带来一些冲突和矛盾,进而可能引发错误。这就是我们这一节所需要探讨的问题。 首先我们来看什么是冒险。在流水线当中我们希望每一
阅读全文
摘要:计算机组成 7 流水线处理器 7.3 超标量流水线 超标量流水线在现代的处理器当中得到了广泛的应用,也就是这种技术给我们带来了出色的处理器性能。那究竟什么才是超标量流水线,它又是如何工作的呢?我们这一节将一起探讨这个问题。 这个是我们之前已经构建好的一条流水线,但是如果我们觉得它的吞吐率还不够高。其
阅读全文
摘要:计算机组成 7 流水线处理器 7.2 流水线的优化 相对于单周期处理器,流水线技术可以提升处理器的性能,但是,如果仅仅按照指令执行的步骤去切分流水线的话,不能够充分利用流水线这项技术的优势。那如何才能挖掘流水线技术的更多潜力呢?我们在这一节就来探讨这个问题。 我们还是用这个厨房做菜的例子来对流水线进
阅读全文
摘要:计算机组成 7 流水线处理器 7.1 流水线的基本原理 流水线作为一种生产管理的模式,对于提高生产效率有着非常大的帮助,最早是兴起于汽车制造厂,现在已在很多的行业得到了广泛的应用。 那在处理器设计当中也借鉴了流水线的概念,以提升性能。今天我们就来看一看流水线处理器是如何设计的。 这位老朋友大家还记得
阅读全文
摘要:计算机组成 6 单周期处理器 6.6 控制信号的集成 自己设计出一个处理器是一件非常有意义的工作。那现在,我们离这个工作的目标只差最后一点点了,而最后的这一步,又是非常关键的。那就是把我们之前所产生的这些控制信号集成起来,并且,让这个处理器能够自动地工作。 现在我们已经分析完了这个示例的指令系统中所
阅读全文
摘要:计算机组成 6 单周期处理器 6.5 分支指令的控制信号 分支指令,是一类特殊的指令,它能够改变程序的流向。因此,想要执行分支指令,我们还需要对现有的结构进行进一步的改造。 在我们现在这个示例的指令系统当中,分支指令只有一条,它的格式是I型的,那我们首先来看一看分支指令是如何工作的。 左边是一段C语
阅读全文
摘要:计算机组成 6 单周期处理器 6.4 访存指令的控制信号 对于MIPS这样的指令系统来说,其运算指令是不能直接访问存储器的,因此,我们还需要设计单独的访存指令,用来完成寄存器和存储器之间的数据传输。在这一节,我们就来看一看这一类访存指令是如何生成控制信号的。 对于我们要实现的这个处理器,访存指令都是
阅读全文
摘要:计算机组成 6 单周期处理器 6.3 运算指令的控制信号 通常,在一个指令系统中,运算指令是最为重要的。而从另一个方面看,一般来说,运算指令的执行过程是最为简洁明了的。所以我们先来看,运算指令所需的控制信号是怎样构成的。 MIPS的指令系统,从功能上划分,可以分为运算指令,访存指令和分支指令。而从指
阅读全文
摘要:计算机组成 6 单周期处理器 6.2 数据通路的建立 现在一方面我们已经有了指令系统的总体需求,另一方面,我们也准备好了几个关键的组件。那现在我们就来一起看一看能否根据这些需求,将这些关键的组件拼合起来,构造出一个完整的数据通路。 要建立一个数据通路,基本原则是分析指令系统当中每一条指令的需求,并根
阅读全文
摘要:计算机组成 6 单周期处理器 6.1 处理器的设计步骤 处理器或者说是CPU,是现代计算机当中最为复杂的一个部件。不过,这并不意味着我们就做不了这件事情,如果要设计一个简单但是能工作的处理器,也没有那么地神秘。在这一节,我们就一起来探索处理器是如何设计出来的。 要设计一个处理器,可以分为如下几个步骤
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.7 除法器的优化 我们现在的这个除法器已经可以正常的工作了。但是距离实用还有相当大的距离,必须要经过优化,不过除法的优化就比较复杂。因此,在这一节,我们只是对它的优化方法和优化的方向做一个非常基本的探讨。 这是我们已经有了的这一版除法器,我们不妨称之为第一版的实现
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.6 除法器的实现 现在,我们已经将除法的运算过程用适合硬件实现的方法描述出来了,那么就可以着手开始设计真正的硬件的除法器了。那么在这一节,我们将首先整理出一个除法器的工作流程,然后通过一个事例来分析除法器的结构和它的工作原理。 我们首先来看一个32位除法器的工作流
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.5 除法的运算过程 在加、减、乘、除这样的基本算数运算当中,除法是最为复杂的。因此,我们想要实现硬件的除法器,还是从最简单的情况开始说起。 我们还是采用纸笔进行模仿除法运算的方式,来回顾一下除法的运算过程。这里是两个十进制的数,被除数是1001010,除数是100
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.4 乘法器的优化2 当我们购买一台计算机时,不仅希望它的性能足够好,还希望它的价格足够低。那对于CPU这样的集成电路芯片来说,它的价格的一个重要因素就是其中晶体管的数量。或者说是芯片的面积。因此,在我们设计各个功能部件的时候,如何减小芯片的面积也是一个重要的优化方
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.3 乘法器的优化1 计算机的最大优势在于它的运算速度。因此,当我们设计计算机当中的一个功能部件时,在保证其功能正确性的前提下,就得考虑它是否拥有足够好的性能。那么在这一节,我们就要一起对这个乘法器进行性能上的分析和优化。 首先,我们来快速回顾一下N位乘法器的工作流
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.2 乘法器的实现 如果希望CPU支持某一种运算,我们就需要用硬件电路来实现对应的功能部件。我们现在已经有了一种乘法运算的方法,适合硬件来进行实现。而且,我们还掌握了一些硬件电路的基本知识。我们就可以一起来尝试如何构建一个硬件的乘法器。 现在我们来看乘法器是怎么实现
阅读全文
摘要:计算机组成 5 乘法器和除法器 5.1 乘法的运算过程 乘法是我们日常生活中经常使用的运算。如果是两个非常简单的事物,我们用口算就能解决, 即使是比较大的数我们也只要用一支笔和一张纸就能够非常轻松的完成。这种方法我们在小学的时候就已经掌握了。那么计算机又是如何实现乘法的呢?这个问题就比较复杂了,不过
阅读全文
摘要:计算机组成 4 算术逻辑单元 4.6 加法器的优化 ALU提供的加法和减法,究其本质都是由加法器来实现的。我们现在学习的加法器,是由一个一个的全加器串联而成,它在性能上存在着很大的问题,而这个问题究竟是什么?我们又该如何解决?在这一节,我们将来一起探讨这件事情。 我们还是来看这个四位加法器的例子,在
阅读全文
摘要:计算机组成 4 算术逻辑单元 4.5 加法和减法的实现 加法和减法是两种基本的算术运算。计算机进行二进制的加减法的运算和我们平时用纸笔进行的运算方法肯定是不一样的。那它是如何实现的呢?让我们一起来分析。 我们先来看如果用手工运算的话如何进行二进制加法的。这里有两个四位数的二进制数相加,被加数是110
阅读全文