1、逻辑电路1 与(and) Y=AB 分析相当于 2 个开关串联在一条线上,即 A 和 B 两个开关,当两者都闭合时电路才是通路;当其中任意一个打开时,电路就是断路(其中包含两者都是打开情况) 。如下图情况:A B Y=AB0 0 00 1 01 0 01 1 1其中数字 0 表示电路中的断路,1 表示电路中的通路。如果输入端 A 作为控制端,则 A 的值将会决定输入端 B 的值是否能被输出到端口 Y。意思即为:A 为 0 时表示不能输入端口 Y,相反亦然。与表示符号另一片第 2 脚接+5V,第 3 脚接输出1 3112345131211 109 8123642第 6 引脚接 9;第 11 引脚
2、接 101 3112345131211 109 8123642第 8 脚输出,测出 A、B 与 Y、Z 间的逻辑关系2全加器的设计考虑低位来的进位的加法称为全加。完成全加功能的电路称为全加器。全加器的方框图如图 3.2.2 所示,从图中可知它有加数 A,被加数 B,低位向高位的进位 Ci 三个输入端。有全加和 S 和向高位的进位 C0 二个输出端。(1) 根据全加器方框图及二进制数相加的原则列出真值表加表 3.2.2 所示。(2) 根据全加器真值表利用卡诺图可用不同的方案实现全加器。方案一:利用异或门和与非门实现。全加和 S 与向高位进位 C0 的卡诺图和化简过程如图 3.2.3 所示。表 3
3、.2.2 全加器真值表半加器SC0A B半加和向高位的 进位加数 被加数Ci低位 向高位的 进位图 3.2.2 全加器方框图 图 3.2.3 全加器的卡诺图(a) S 卡诺图 (b) C 0 卡诺图0ii ii iSABCABCA B C1 S C00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 01 01 00 11 00 10 11 1&C0S& 1 1ABCi图 3.2.4 用异或门和与非门构成全加器根据 S 和 C0 的表达式画出逻辑电路图如图 3.2.4 所示,在化简过程中,我们注意到利用公共项。方案二:利用与或非门及非门实现。在中规模组件中一般都
4、采用与或非门和非门来实现全加器,由于全加器有 S 和 C0 两路输出,从图 3.2.3(b)C0 的卡诺图可看出 C0 可写为: 0iiABC利用一个与或非门和非门即可形成 C0。下面我们利用卡诺图的变换找出 S 和 0C的公共项,如图 3.2.5 所示。 图 3.2.5 S 的卡诺图变换从图 3.2.5 中看出0012iiSCFABCA00iiB00iiACABC根据 C0 和 S 的逻辑表达式画出逻辑电路图如图 3.2.6 所示。采用与或非门构成的全加器具有使用器件少、速度快的特点,目前集成全加器广泛采用此种形式。3集成全加器全加器是常用的算术运算电路,其逻辑符号如图 3.2.7 所示。在
5、一位全加器的基础上,可以构成多位全加器。当两个 n 位二进制数相加时,进位方式有两种,即逐位进位和超前进位,目前生产的集成四位全加器也具有上述两种进位方式。(1) (1) 4 位逐位进位全加器1 1 1 1& & &0CS&AB1C图 3.2.6 用与或非门构成的全加器FCOIAB图 3.2.7 一位全加器逻辑符号图 3.2.8 是 4 位二进制数相加逐位进位的全加器电路。由于每一位相加结果,必须等到低一位的进位产生以后才能建立,因此这种结构叫做逐位进位全加器(或串行进位全加器)。逐位进位全加器的最大缺点是运算速度慢。为提高运算速度,必须设法减小或消除由于进位信号逐级传递所耗费的时间。为了提高
6、运算速度,制成了超前进位全加器。B3A3B2A2B1A1B0A0F0F1F2F3C OC O C O C O C OC I C I C I C I图 3.2.8 4 位逐位进位全加器(2) 超前进位全加器。图 3.2.9 所示为 4 位超前进位全加器逻辑电路图,从图中可见: 1111112221111111XABABYCIFCIIABIABCIAB将 Y2 进行变换: 112111 1YCIABCIABIAB与全加器 C0 比较,可知 Y2 为第一位 A1B1 和 CI1 相加产生的相加产生的向高位的进位信号CO1,也就是第 2 位的进位输入 CI2同理,可写出:X3X4X2X1Y4Y3Y2Y
7、1( 1 1 ) B4( 1 2 ) A4( 1 5 ) B3( 1 4 ) A3( 2 ) B2( 3 ) A2( 6 ) B1( 5 ) A1( 7 ) C I1111&1&1&11= 1= 1= 1= 111&1&1&111F1( 4 )F2( 1 )F3( 1 3 )F4( 1 0 )C O4( 9 )图 3.2.9 4 位超前进位全加器3221211YCIOABABABCI43323I213211ABABI44343CO24321ABABA43211CI 0P3QCIO图 3.2.10 4 位全加器逻辑符号从 Y2,Y3,Y4,C O 的表达式可见,各位进位信号的产生均只需要经历一级
8、与非门和一级与或非门的延迟时间,比逐位进位的全加器大大缩短了时间。4 位超前进位全加器集成电路有:CT54283/CT74283; CT54S283/CT74S283; CT54LS283/CT74LS283; CC4008 等。图 3.2.10 所示为 4 位全加器逻辑符号。4全加器的应用实例全加器除了可作为二进制的加法运算外,还可做其它方面的应用,如乘法运算、8421BCD 码的加法运算,实现码制变换等。(1) 试用全加器完成二进制的乘法功能。以二个 2 位二进制数相乘为例。乘法算法如下:10A 10B1010PA1 A0 B1 B0A1B0 A0B0+ A1B1 A0B1P2 P1 P0
9、 010123ABCPC1 为 A1B0+A0B1 的进位位,P 3=C2,C2 为 A1B1+C1 的进位位,按上述 P0,P 1,P2,P3 的关系可构成用全加器实现二进制乘法的电路,如图 3.2.11 所示。(2) 采用四位全加器实现将 8421BCD 码转换成为余 3 码的码制转换电路。余 3 码是在8421BCD 码基础上加上恒定常数 3(0011),因此,可采用 4 位全加器,8421BCD 码作为一组数据输入端的输入,另一组数据输入端接上恒定常数(0011),输出 F3F 0 即为余 3 码。实现了码制转换,如图 3.2.12 所示。COIP 0 P 1 P 2 P 3&A0B0
10、A1B1图 3.2.11 利用全加器实现二进制乘法CIO30PQF3F2F1F0A B C D1图 3.2.12 用全加器实现码制转换(3) 用四位全加器构成一位 8421BCD 码的加法电路。两位 8421BCD 码相加,其和仍应为8421BCD 码,如不是 8421BCD 码则结果错误。 若和小于等于 9 结果正确,如4 0100+ 3 + 0011 7 7 01110111 是 8421BCD 码的 7,结果正确。 若和大于 9 则结果错误,若要得到正确结果,则需加 6(011)修正。如6 0110+ 7 + 0111 13 10111101 在 8421BCD 码中是非法码,结果错误,
11、如果加 6 修正后,则产生了进位信号,且本位1101+ 0110 1,0011“0011”也是正确的。 若和产生进位,则结果错误,也需加 6 修正。如8 1000+ 9 + 1001 17 1,0001虽产生了进位,但本位和不正确,若加 6 修正1,0001+ 0110 1,0111得到正确结果。产生错误的原因是 8421BCD 码为十进制,逢十进一,而四位二进制数是逢十六进一,故二者进位关系不同。其中刚好相差 6,故需加 6 进行修正。这样,构成两个一位 8421BCD 相加时,必须由三部分组成:一部分进行加数和被加数相加;第二部分是修正判别,判别是否要加以修正,即产生修正控制信号;第三部分
12、完成加 6 修正。第一部分和第三部分均由 4 位全加器实现。第二部分修正判别电路应在 8421BCD 码相加有进位信号 CO 产生时,或者和数在 1015 的情况下产生修正控制信号 F,所以 F 应为10,23,415mFCO利用图 3.2.14 所示的卡诺图将和大于 9 的部分化简得出 F:321321FA根据上述分析及 F 信号产生的逻辑表达式可得到两个一位 8421BCD 码相加的电路,如图3.2.13 所示。 03PQCICO30PQCICO84218421加数被加数AB8421进数8421和相加1&修正判断修正图 3.2.13 用全加器实现两个 8421BCD 码加法好像+ 用异或运
13、算 - 其实 CPU 只有加法 什么都转换成加法做 - 其实是用补码表示数的方法 用加法实现出来 * 是左位移运算/ 是右位移浮点数可以是单精度数据和双精度 数据。单精度浮点数占据 32 位二进制,1 位为符号位,0 代表正数,1 代表负数,8 位指数位,即指数可以达到 10 进制数据的 2 的 8 次方,尾数 23 位,即尾数可以达到 2 的 23 次方。双精度浮点数占据 64 位二进制,1 位为符号位,11 位指数位,52 位尾数位。2不同进制间的转换 (1)二进制、八进制、十六进制数转换成十进制数 当二进制、八进制、十六进制数转换成十进制数时,只 要“按权展开”即可。 【例 3-1】二进
14、制数转换成十进制数。 (10100.01)2=(1 24+0 23+1 22+0 21+0 20+0 2- 1+12-2)10=(20.25)10 【例 3-2】八进制数转换成十进制数。 (300.6)8=(3 82+0 81+0 80+6 8-1) 10=(192.75) 10 【例 3-3】十六进制数转换成十进制数。 (3B.C)16= (3 161+11160+1216-1) 10=(59.75) 10 十进制数转换成二进制、八进制、十六进制数时,因为 整数部分和小数部分转换的规则不同,所以要将整数和小数 部分分开进行转换。 整数部分的转换 整数部分的转换规则是“除基取余,逆向取” 。也
15、就是 说,用要转换的十进制整数去除以基数 R,将得到的余数作 为结果数据中各位的数字,直到余数为 0 为止。先得到的余 数作为转换后的最低位,最后得到的余数作为转换后的最高 位。 【例 3-4】将十进制整数 835 分别转换成二进制和八进制数。 余数 低位 二进制转换: 8 834 2 8 104 0 8 13 5 8 1 1 0 高位 所以,(834) 10=(1502) 8 2009.7.2 计算机组成原理 197 - Page 198-二进制转换: 余数 低位 2 834 0 2 417 1 2 208 0 2 104 0 2 52 0 2 26 0 2 13 1 2 6 0 2 3 1
16、 2 1 1 0 高位 所以,(834) 10=(1101000010) 2小数部分的转换 小数部分的转换规则是“乘基取整,正向取” 。也就是说,用要转 换的十进制小数去乘以基数 R,将得到的乘积的整数部分作为结果数据 中各位的数字,小数部分继续与基数 R 相乘。以次类推,直到某一步乘 积的小数部分为 0 或已得到希望的位数为止。最后,将先得到的整数部分 作为转换后的最高位,最后得到的整数部分作为转换后的最低位。 2009.7.2 计算机组成原理 198 - Page 199-【例 3-5】将十进制小数 0.6875 分别转换成二、 八进制数。 0.6875 2=1.375 1 0.375 2
17、=0.75 0 0.75 2=1.5 1 0.5 2=1.0 1 所以,(0.6875)10=(0.1011)2 0.6875 8=5.5 5 0.5 8=4.0 4 所以,(0.6875)10=(0.54)8 低位 其它例题(略) 2009.7.2 计算机组成原理 199 - Page 200-二进制数转换成八进制数 二进制数转换为八进制数的规则可以概括为 “三位并一位” 。即以小数点为基数,整数部分从 右至左,每三位一组,最高位不足三位时,添 0 补 足三位;小数部分从左至右,每三位一组,最低有 效位不足三位时,添 0 补足三位。然后,将各组的 三位二进制数按 22,21,20 权展开后相
18、加,得到一 位八进制数。 【例 3-9】将(1000110.01101 )2 转换成八进制数。 001 000 110 . 011 010 1 0 6 . 3 2 所以, (1000110.01101)2=(106.32)8 2009.7.2 计算机组成原理 200 - Page 201-二进制数转换成十六进制数 二进制数转换为十六进制数规则可概括为“四位并一 位” 。即以小数点为基数,整数部分从右至左,每四位一组, 最高位不足四位时,添 0 补足四位;小数部分从左至右,每 四位一组,最低有效位不足四位时,添 0 补足四位。然后, 将各组的四位二进制数按 23,22,21,20 权展开后相加,
19、 得到一位十六进制数。 【例 3-10】将(10010111.11011 )2 转换成十六进制数。 1001 0111 . 1101 1000 9 7 . D 8 所以, (10010111.11011)2= (97.D8)16 思考:计算机能够直接识别运算的是二进制,那么计 算机中还要采用八进制、十六进制的目的是什么? 3.3.1 原码、反码、补码的定义 1原码 对于无符号数,原码是一种用数值本身表示的二进制编 码。 对于有符号数,原码是一种以符号和数值表示的二进制 编码。有符号数的原码编码规则是:用最高位表示符号,整 数用 0 表示,负数用 1 表示。其他位表示该数的绝对值。 例如:X=(
20、+105) X原=(01101001)2 Y=(-105) Y原=(11101001)2 注意:0 的原码有两种,即+0 原=(00000000)2 ,-0 原=(10000000)2 结论:正数的原码是它本身,负数的原码是真值取绝对 值后,在最高位(左端)补“1” 。2反码 反码使用得较少,它只是补码得一种过渡。 对于无符号数,反码是一种用对数值按位取反表示的二 进制编码。 对于有符号数,反码是一种用符号位和对数值按位取反 表示的二进制编码。有符号数的反码编码规则是:用最高位 表示符号,正数用 0 表示,负数用 1 表示。正数的反码是其原 码本身,负数反码的数值部分是原码的数值部分按位取反。
21、 例如: +65原=(01000001)2 +65反=(01000001)2 -65原=(11000001)2 65 反=(10111110)2 注意:0 的反码有两种,即+0 反=(00000000)2 ,-0 反=(11111111)2 。 结论:正数的反码与其原码相同,负数的反码是符号位 不变,其余各位按位取反。 3补码 补码是计算机处理有符号数的运算常用的一种方法。 对于无符号数,补码是一种用对数值按位取反并加 1 表示的二进制 编码。 对于有符号数,补码是一种用符号和对数值按位取反并加 1 表示的 二进制编码。 对于 n 位计算机,某数 x 的补码定义为: X 2n-1 X 0 X补
22、 = 2n - |X| 0X -2n-1 结论:正数的补码等于正数本身,负数的补码等于模(即 2n)减 去它的绝对值,即符号位 1 不变,数值部分是原码的数值部分按位取反 并加 1。 4三种码制的比较 (1)对于正数它们都等于真值本身,而对于负数各有不同的表示; (2)原码和反码各有两种零的表示法,而补码具有唯一的零。乘法运算过程步骤可归为如下几点: (1)乘法运算可用移位运算和加法运算实现,当 4 位数乘 4 位数时,需要作 4 次移位运算和 4 次加法运 算; (2)由乘数的末位值决定乘数是否与部分积相加, 然后右移 1 位,形成新的部分积;同时乘数也右移 1 位,由次低位作为末位值,空出
23、的最高位为部分积 的最低位。 (3)每次作加法时,被乘数仅仅与原部分积的高 位相加,其低位被移至乘数所空出的高位位置。5 移码“移码”是用来表示浮点型小数的阶码。对于正数,符号位为”1,其余位不变(+1110001-11110001) ;对于负数,符号位为”0,其余位取反,最后加”1(-1110001-00001111) 。存储容量:所谓存储容量即存储器能够保存的数据的 数量。常用的单位有 GB、MB、KB 等。 1GB=1024MB,1MB=1024KB,1KB=1024B。也可以用 乘积的方式表示,公式为: 容量字数字长 如 1KB 可以表示为 1K8 位,1MB 可以表示为 1M 8 位
24、等。存取速度:所谓存取速度即是单位时间内存储器能读 写的位数或字节数。该参数跟存储器的时钟频率有关。 一般情况下,时钟频率越高,存取速度越快。如果用位 数衡量,常用单位有 Kb/s、Mb/s 等;如果用字节数衡量, 常用单位有 KB/s、MB/s 等。 读写周期:所谓读写周期是指读写一位或一 个字节所需要的时间。该参数与存取速度成反比。 存取速度越快,周期越短,反之亦然。所谓虚拟存储,就是采用一定的方法将一定 的外存容量模拟成内存,同时对程序进出内存的 方式进行管理,从而得到一个比实际内存容量大 得多的内存空间,使得程序的运行不受内存大小 的限制。虚拟存储方法的实现依赖于程序的特性:顺序性 局
25、部性根据程序的以上两个特性,需要运行的程序 不需要完全进入内存也可运行。具体方法如下: 根据程序的顺序性和局部性原理,如果将程序分 成几块,当前面一个块快运行结束时再将下一个 块调入内存,则程序的执行将不会受到影响,而 且程序所需要的内存容量也将变小。 页式存储系统 是对作业而言,即对整个程序而言。根据分区分配时,区域的大小是否固定,分 区分配又可以分为固定分区分配和可变分区分配。 所谓固定分区分配,是指先将内存分成若干 固定区域,区域大小一经确定将永远不再改变,每个作业占用一个区域分区过程中,要给作业分配内存,必须首先 要知道哪些分区是空闲(未分配)的,这些空闲 区的容量是多大。因此系统需要
26、设置一种表格来 纪录这些信息,常常采用的方法是分区分配表。常用的分区方法一般有两种:最佳适应法(以容量考虑) 和 最先适应法(以时间考虑) 。所谓最佳适应法,是指在给作业分 配空间时,首先遍查分区分配表找到一个能满足 作业要求的最小分区分配给该作业。而最先适应 法则是指在分区时,按地址从低到高查找分区分 配表,将找到的第一个能满足作业运行要求的分 区分配给作业。所谓可变分区分配是指先不给内存分区,给 作业分配时,根据作业运行时对内存的需要再从 剩余空间中分出一部分给该作业。经过一段时间 的分配后内存也将分为若干区域,因此,在可变 分区中也需要设置分区分配表。分页虚拟存储 在可变分区分配中,为了
27、解决空闲区不连续 问题而采用了移动作业的内存空间的方法,系统 开销非常大,而且采用的方法是让硬件适应软件 的方法。其实解决上述问题的也可以从另一方面 入手,那就是让软件去适应硬件。这里所说的软 件是作业,硬件是内存。既然移动内存需要花费 很多 CPU 时间,那就将作业划分为几个部分,每 个部分存在一个空闲区域中,这样,要保存一个 较大的作业就不需要找到一个比作业空间大的空 闲空间,而只需要多个空闲块的容量之和大于作 业容量即可。请求分页虚拟存储所谓“请求” ,是指不将作业的所有页同时放入内存, 而是作业在运行过程中需要某个页时,如果该页没有在内 存中,则请求中断,让系统将该页从外存放入内存。因
28、此, 在给作业分配空间时,不需要按作业的页数分配物理块, 而是只给作业分配少量的物理块,然后通过一定的置换机 制实现用少量的物理块运行较大的作业。所谓“置换”是 指当作业需要某个没有在内存中的页时,如果系统分配给 作业的几个物理块已经全部被占满,则根据一定的算法将 内存中的页面调到外存,而将马上要运行的页调入内存。 比如:系统分配给某作业三个物理块,此三个物理块分别 保存作业的 2、4 和 6 号页,当作业需要运行 5 号页时,因为 系统分配给该作业的三个块已经被占满,则需要从 2、4 和 6 号页中选择淘汰一个,将其调出内存,而将 5 号页面放入 内存运行。如果置换算法设计不当,则页将会频繁
29、地调入 调出内存,增大系统开销,降低系统性能,特别是“颠簸”问题的存在,给置换算法提出了很高的要求。 常用的页面置换算法主要有:先进先出置换 算法、最久不用置换算法和最近最久未用置换算法。 根据程序执行的顺序性和局部性,当一个页 刚刚被使用过,则该页被再次使用的几率较高; 相反,越早使用过的页,被再次使用的几率越低。 最近最久未用算法就是基于作业的这一特性设计 的。 段式虚拟存储 是对程序的模块而言,即对其功能而言。通过前面的学习,我们知道,页式虚拟存储因 为页的大小跟物理块的大小相同,所以很大程度上 解决了存储管理的碎片问题。但是按照固定的大小 对作业进行分页,往往会破坏作业本身的逻辑结构,
30、 因为现在的程序大都按其功能分为很多的子程序, 而子程序的大小各不相同,更不会是刚好页大小的 整数倍,所以如果单纯对作业进行分页,则有的页 可能会包含有一个子程序的结尾部分和另外一个页 的开始部分。这就完全破坏了程序的模块化。然而 模块化思想解决软件危机的最基本的思想,编程序 时要注意程序模块化,存储管理时更要注意保持子 程序的完整性。 存储空间分配段式存储管理系统中,由于按照逻辑关系将 作业分成了若干段,所以没有必要给作业分配一 个连续的地址空间,只需要给每个段分配一个连 续的空间即可。因此在段式存储管理方式下,逻 辑相邻的段可能在物理地址上不连续。段页式管理中作业的页表不唯一在段页式管理方
31、式下,作业访问内存中的语句之 前,要两次访问内存,而页式存储管理和段式存 储管理访问内存语句前,只需要访问一次内存。 外存设备与磁盘阵列技术对外存的要求跟内存 不同,对外存主要要求其容量足够大,而对其读 取速度的要求不高。常用的外存主要有软盘、U 盘、磁盘和光盘等。 辅助存储器的主要技术指标是存储密度、存 储容量、数据传输率和寻址时间等。 存储密度是指单位长度或单位面积磁层表面所 存储的二进制信息量。对于磁盘存储器,用道密度 和位密度表示,也可以用两者的乘积面密度表示。对于磁带存储器,则主要用位密度表示。存储容量指磁表面存储器所能存储的二进制信 息总量。一般用字节为单位。数据传输率是指在单位时
32、间内与主机之间传送 数据的位数或字节数。寻址时间是指发出读磁盘命令到数据全部读出 的时间长度。要对数据寻址,硬盘的 地址信息将包含盘面号、磁道号和扇区号。值得注 意的是:虽然不同磁道上的扇区长度不同,但是它 们的存储容量却是相同的。 与磁盘不同的是,光盘采用一个连续的旋转 形的轨道来存储数据的(有点类似音轨的概念) , 这些轨道被分成相同尺寸,相同密度的区域,因 此,使盘片的利用率得到进一步的提高。由于光 盘上的数据是以相同的密度存放的,因此在读取 光盘的时候就要采取恒定的线速度。光驱在读取 内外圈数据时盘片的旋转速度会大为不同,需要 光驱的主轴马达不断改变旋转速度以适应读取数 据的需要。 指
33、令系统一台计算机中全部指令 的集合称为这台计算机的指令系统,它是软、硬件设计的分 界面。 CPU 中至少要有 5 个专用的寄存器。它们是:程 序计数器(PC) 、指令寄存器(IR) 、存储器地址寄 存器(MAR) 、存储器数据寄存器(MDR) 、状态标 志寄存器(PSWR ) 。 CPU 的主要技术参数: cpu 包含控制器和运算器1. 字长 2. 内部工作频率 3. 外部工作频率 4. 片内 Cache 的容量和速率 5. 工作电压 6. 地址总线宽度 7. 数据总线宽度 8. 制造工艺 时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,
34、例如 12M 的晶振,它的时间周期就是 1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU 仅完成一个最基本的动作。对于某种单片机,若采用了 1MHZ 的时钟频率,则时钟周期为 1us;若采用 4MHZ 的时钟频率,则时钟周期为 250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的 8051 单片机的时钟范围是 1.2MHz-12MHz。在
35、 8051 单片机中把一个时钟周期定义为一个节拍(用 P 表示),二个节拍定义为一个状态周期(用 S 表示)。机器周期在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个 S 周期(状态周期)组成。8051 系列单片机的一个机器周期同 6个 S 周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用 P 表示),二个节拍定义为一个状态周期(用 S 表示),8051 单片机的机器周期由 6 个状态周期组成,也就是说
36、一个机器周期=6 个状态周期=12 个时钟周期。指令周期指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。组合逻辑控制器和微程序控制器的比较组合逻辑控制和微程序控制之间的最显著差异可归结为两点: 1实现 2性能 任何流水线上的某一段不能在一个时钟周期内完 成,通常就叫做流水线停顿。一旦流
37、水线停段,性能就会降低。 因此流水线处理器设计的一个重要目标就是通过某些措施来有 效地避免或减小这种停顿的影响。常用的技术主要有指令预取 (指令队列、指令缓冲)和快速 Cache 等。 为避免流水线停顿,时钟周期的长度应足以保证 任何段都能够完成任务。如果不同的功能部件需要不同的执行 时间,时钟周期的长度应设计为能够满足最长任务也能完成的 要求。而那些提早完成任务的部件在时钟周期的剩余时间里将 处于空闲状态。因此,提高流水线性能最有效的办法是让不同 的段需要相同的时间。 1访存冲突 解决的主要办法有: (1)设置分别存放指令和操作数的两个独立编址的主存; (2)采用多体交叉存储器,使两条相邻指
38、令 的操作数存放在不同的存储体内; (3)采用指令预取(指令缓冲)技术。控制器是计算机系统的指挥中心,它向 CPU 内部和外部发送控制信号,控制运算器完成各种 运算,并控制CPU 与存储器和 I/O 模块交换数据等。 控制器主要由指令部件、时序部件、微操 作控制器和中断控制逻辑组成。指令部件主要完成取 指令和指令译码,包括程序计数器、指令寄存器、指 令译码器和地址形成部件等。时序部件用于产生计算 机运行中所需要的时序信号,以使计算机的各功能部 件按照正确的时序信号操作。微操作控制器是控制器 的核心部件,其功能是根据指令操作码和时序信号, 产生 CPU 所需的各种微操作信号,以便正确地建立数 据
39、通路,完成取指令和执行指令的控制。 计算机由 CPU、主存储器和 I/0 模块组成,这 些模块并不是独立的,它们在一起相互协作,完成 指令序列所要求的功能,各个模块之间需要相互通 信。因此,在各个模块之间必须有一个能将它们连 接在一起的互连设施,使得信息可以在存储器与 CPU 之间、I/0 模块与 CPU 之间和 I/0 模块与存储器之 间进行传送。总线技术就是一种将各个模块连接到 一起的互连设施。总线结构固有的灵活与低成本特 性使其成为现代计算机中使用最普遍的互连结构。一般 串行总线用于长距离的数据传送,并行总线用于短 距离的高速数据传送。 通常规定由 CPU 发出的信号为输出信号,送入 C
40、PU 的信号为输 入信号。地址线一般为输出信号,数据线为双向信 号,控制线的每一根都是单向的,有的为输出信号, 有的为输入信号。在并行 传输总线中,又可以按传输数据宽度分 8 位、16 位、 32 位、64 位等传输总线。总线的数据宽度和总线带 宽有密切关系 。总线带宽是指总线的传输速率,是 指每秒钟传输的最大字节数(MB/S) ,高带宽则意 味着系统的高处理能力。下面给出了总线带宽的计 算公式: 总线带宽=总线时钟频率总线位数/8 , 从公式中我们可以看到,总线带宽的大小和时 钟频率、总线位数有关。 总线分类 总线是以存储设备为中心根据所连接部件的不同,计算机总线通常被分 成三种类型:内部总线、系统总线和外部总线(又 称为通信总线) 。按系统传输信息的不同又可分为三类:数据总 线、地址总线和控制总线。 计算机 I/O 方式 计算机主机与外设之间的数据传送方式随着 计算机技术的发展经历了从简单到复杂、从低级到 高级、从集中管理到分散管理的演变过程。按照 I/O 管理组织、I/O 接口与外设并行工作的程序方式, 概括起来,可将数据传送方式分为:程序查询方式、 中断方式、DMA 方式。