1、计算机组成与结构 参考书计算机组成与结构 王爱英 清华大学出版社计算机组成原理(第四版)白中英 科学出版社计算机组成与系统结构 李亚民 清华大学出版社计算机组织与结构性能设计William Stallings 清华大学出版社计算机系统体系结构 Morris Mano 清华大学出版社第一章第一章 计算机系统概论计算机系统概论 第一节第一节 计算机语言计算机语言计算机语言与计算机执行程序之间的关系汇编语言指令的格式汇编语言程序例子第一章 计算机系统概论 第二节 计算机硬件 计算机硬件的构成输入设备输出设备运算器控制器存储器第一章 计算机系统概论1.计算机由五大部件组成计算机由五大部件组成3.指令和
2、数据用二进制表示指令和数据用二进制表示4.指令由操作码和地址码组成指令由操作码和地址码组成6.以运算器为中心以运算器为中心2.指令和数据以同等地位存于存储器指令和数据以同等地位存于存储器 可按地址寻访可按地址寻访5.存储程序存储程序一、冯冯诺依曼计算机的特点诺依曼计算机的特点5.存储程序存储程序第一章 计算机系统概论 第二节 计算机硬件(三总线结构)CPU存储器输入/输出输入/输出数据总线地址总线控制总线第一章 计算机系统概论PC机结构框图CPUCPU clock(2x-5x system clock)CPU to PCI bridgePCI to ISA bridgeAGPMemory co
3、ntrollerL2 CacheIDEserialparallelKey boardaudioFDCSuper I/OMemorySystem busPCI busISA busPCI slotAGP slot第一章 计算机系统概论 计算机应用:燕大计算机系主要研究方向:数据库及数据挖掘(分布式数据库,空间数据库,网格技术等);机器人、计算机仿真、可视分析与可视化(河北省系统集成及计算机虚拟仿真重点实验室);电子商务及环保、生物分析方向;并行计算;计算机网络方向(网络安全,网络数据库,入侵检测,移动网络等);。图图2.6 全加器的功能表及逻辑图全加器的功能表及逻辑图第二章 计算机的逻辑部件第二
4、章 计算机的逻辑部件加法器的构成:Fn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1 Cn=XnYnCn-1+XnYnCn-1+XnYnCn-1+XnYnCn-1化简以后得:Fn=Xn异或Yn异或Cn-1 Cn=XnYn+(Xn+Yn)Cn-1第二章 计算机的逻辑部件 超前进位的原理C1=X1Y1+(X1+Y1)C0C2=X2Y2+(X2+Y2)C1C3=X3Y3+(X3+Y3)C2C4=X4Y4+(X4+Y4)C3令:Pi=Xi+Yi Gi=XiYi 将P20公式2.16-2.19化简得2.22-2.25式,转换成与非式得2.26-2.29式。P21图2.8第二章
5、计算机的逻辑部件 SN74181的工作原理(P22 图2.9)M=1:执行逻辑运算M=0:执行算术运算门22,门24,门26,门28为G0,P0;G1,P1;G2,P2;G3,P3的求和门,既门22=G0异或P0异或C0。门13,门14,门15,门16,门19为C0,C1,C2,C3,C4。第二章 计算机的逻辑部件16位超前进位加法器工作原理(P24 图2.12)CnCnCnCn74181*4G PG PG PG P G0 P0 Gn+x G1 P1 Gn+y G2 P2 Gn+z G3 P3 CnCn74182图2.13 二输入四输出译码器图图2.15 双四通道选一数据选择器双四通道选一数据
6、选择器图图2.21 四四D寄存器寄存器第三章 运算方法和运算器 第一节 数据的表示方法和转换计算机中涉及到的数据有:数值数据;特殊符号数据;中文;英文。数值型数据的表示和转换(数制)1.二进制与十进制之间得转换2.二进制与八进制、十六进制之间得转换3.二进制小数与十进制小数之间得转换第三章 运算方法和运算器 第一节 数据的表示方法和转换数值型数据的编码和计算(有权码BCD码、无权码余3码、格雷码)BCD码:二进制表示的十进制数。运算调整规则:运算结果大于9或有进位时+6调整(加法)。运算结果大于9或有借位时6调整(减法)。余3码、格雷码(P63 表3.3)数字串在计算机中的表示。(用ASCII
7、码表示数字、符号)第三章 运算方法和运算器 第二节 带符号数在计算机中的表示方法及加减运算原码、反码、补码的表示及计算。(图3.1解释)溢出的判断及解决方法。(1.符号原则:正+正=正,负+负=负 2.双符号位原则,运算结果只能为00或11。3.溢出=最高符号位进位与最高数值位进位的异或。)计算机实现加减运算要解决的问题:溢出、多个寄存器、结果的移位、运算结果影响标志位。定点数和浮点数的概念。(单精度浮点数、双精度浮点数、临时浮点数。浮点数的隐藏位,浮点数的规格化)移码的概念第三章 运算方法和运算器 第三节 二进制乘法运算定点原码一位乘(手工实现乘法与计算机实现乘法的区别?符号问题、乘数的存放
8、及乘数最低位的判断、部分积的右移实现数位对齐、每次只能两个数据相加。P73 图3.5的解释)原码一位乘:设X=0.1101,Y=0.1011,求X*Y=?第三章 运算方法和运算器 部分积 乘数 说明 00 0000 1011 初始 乘数最低位为1,加被乘数 +00 1101 00 1101 部分积和乘数共同右移一位 00 0110 1 101 1 移出部分丢失,此时乘数最低位为1,+被乘数 +00 1101 01 0011 部分积和乘数共同右移一位 00 1001 11 10 1 移出部分丢失,此时乘数最低位为0,+0 +00 0000 00 1001 11 10 部分积和乘数共同右移一位 0
9、0 0100 111 1 移出部分丢失,此时乘数最低位为1,+被乘数 00 1101 01 0001 111 1 部分积和乘数共同右移一位 P0=0P1=(P0+XYn)2-1P2=(P1+XYn-1)2-1Pi+1=(Pi+XYn-i)2-1Pn=(Pn-1+XY1)2-1 Pn为乘积。式中的2-1表示二进制数据右移一位,相当于乘以2-1。图3.6 乘法运算的控制流程 补码一位乘 将前述补码乘法公式进行变换,可得出另一公式,是由布斯(Booth)提出的,又称为“布斯公式”。XY补=X补(-Y0+Yi2-i)=X补-Y0+Y12-1+Y22-2+Yn2-n=X补-Y0+(Y1-Y12-1)+(
10、Y22-1-Y22-2)+(Yn2-(n-1)-Yn2-n)=X补(Y1-Y0)+(Y2-Y1)2-1+(Yn-Yn-1)2-(n-1)+(0-Yn)2-n=X补 (Yi+1-Yi)2-i(3.17)乘数的最低1位为Yn,在其后面再添加1位Yn+1,其值为0。ni 1ni 1第三章 运算方法和运算器定点补码一位乘(Booth 方法)(续)P0补=0P1补=P0补+(Yn+1-Yn)X补2-1P2补=P1补+(Yn-Yn-1)X补2-1P3补=P2补+(Yn-1-Yn-2)X补2-1Pn补=Pn-1补+(Y2-Y1)X补2-1Pn+1补=Pn补+(Y1-Y0)X补=X*Y补第三章 运算方法和运算
11、器 定点补码两位乘Pi+1补=Pi补+(Yn-i+1-Yn-i)X补2-1 Pi+2补=Pi+1补+(Yn-i-Yn-i-1)X补2-1将1式代入2式得:Pi+2补=Pi补+(Yn-i+1+Yn-I-2 Yn-i-1)X补2-2根据三位的组合得表3.5,进行补码两位乘。表3.5 组合值Yn-i-1、Yn-i、Yn-i+1与Pi+2补的关系 Yn-i-1Yn-iYn-i+1组合值组合值Pi+2补补0000Pi补补+02-20011Pi补补+X补补2-20101Pi补补+X补补2-20112Pi补补+2X补补2-2100-2Pi补补+2-X补补2-2101-1Pi补补+-X补补2-2110-1Pi
12、补补+-X补补2-21110Pi补补+02-2硬件实现乘法-阵列乘法器 第三章 运算方法和运算器 第四节 二进制除法运算定点原码一位除法(手工实现除法与计算机实现除法的区别:够减不够减问题,是商0还是商1问题;被除数或余数的低位补进问题;商的位置问题;符号问题;商与被除数或余数的低位的存放问题。)恢复余数法:(P83例子)第三章 运算方法和运算器 不恢复余数法:在恢复余数法的除法中,第I-1次求商的余数为Ri-1,第I次求商的余数为Ri,则:Ri=2Ri-1-Y 当余数0时,商0,同时余数+Y,左移一位(乘2)再减Y得Ri+1,既 Ri+1=2(Ri+Y)-Y=2Ri+Y 既余数小于0时+Y,
13、余数大于0时-Y。第三章 运算方法和运算器 第五节 浮点数的运算方法 浮点数的加减运算(对阶、尾数相加减、规格化、舍入、溢出检查)浮点数的乘除运算(阶码的加减运算、尾数的乘除运算、规格化、舍入、溢出判断)规格化规则 规格化操作的规则是:如果结果的两个符号位的值不同,表示加/减运算尾数结果溢出,此时将尾数结果右移1位,阶码E+1,称为“向右规格化”,简称“右规”。如果结果的两个符号位的值相同,表示加/减运算尾数结果不溢出。但若最高数值位与符号位相同,此时尾数连续左移,直到最高数值位与符号位的值不同为止;同时从E中减去移位的位数,这称之为“向左规格化”,简称“左规”。浮点运算举例 例例3.45 两
14、浮点数相加,求两浮点数相加,求X+Y。已知:已知:X=2010*0.11011011,Y=2100*(-0.10101100)解解:计算过程:计算过程:对阶操作对阶操作 阶差阶差E=EX补补+-EY补补=00010+11100=11110 X阶码小,阶码小,MX右移右移2位,保留阶码位,保留阶码E=00100。MX补补=00 00 110 110 11 下划线上的数是右移出去而保留的附加位。下划线上的数是右移出去而保留的附加位。尾数相加尾数相加 MX补补+MY补补=000011011011+1101010100=1110001010 11浮点运算举例 规格化操作规格化操作 左规,移左规,移1位
15、,结果位,结果=1100010101 10;阶码阶码-1,E=00011。舍入舍入 附加位最高位为附加位最高位为1,在所得结果的最低位,在所得结果的最低位+1,得新结果:得新结果:M补补=1100010110,M=-0.11101010。判溢出判溢出 阶码符号位为阶码符号位为00,故不溢出,最终结果为:,故不溢出,最终结果为:X+Y=2011(-0.11101010)第三章 运算方法和运算器 第六节 数据校验奇偶校验奇校验:当数据位1的个数为偶数时,校验位为1,当数据位1的个数为奇数时,校验位为0。偶校验:当数据位1的个数为偶数时,校验位为0,当数据位1的个数为奇数时,校验位为1。(包括交叉校
16、验,P96图3.10)第三章 运算方法和运算器第六节 数据校验(海明校验 P99图3.11)原理:在被校验的数据中加入几个校验位,当某一位出错时,可同时在几个校验位上体现出来,这不但可以发现错误还可以指出哪一位出错,为纠正错误提供了依据。设校验位的个数为r,则它有2r 种编码,除一种编码代表无错外,其余2r-1种编码可以代表错误发生在哪一位,再去掉r种校验位可能出错,剩下的k=2r-r-1种编码可以代表数据位出错。第三章 运算方法和运算器 第六节 数据校验(海明校验 P99图3.11)发现两位错,并能纠正一位错须满足如下关系:2r-1=k+r海明码编码规律:1)校验位放在2i-1的位置上,数据
17、位依次从低到高排列。2)海明码的每一位Hi由多个校验位校验,被校验的每一位的位号要等于校验它的校验位的位号之和。例如:8个数据位,5个校验位的海明码:H13H12H11H3H2H1表3.8 数据位k与校验位r的对应关系 k 值最 小 的 r 值14451151226627577581208海明编码规律 若海明码的最高位号为m,最低位号为1,即HmHm-1H2H1,则此海明码的编码规律通常是:(1)校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。(2)海明码的每一位码Hi(包括数据位和校验位本身)由多个校验位
18、校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。这样安排的目的,是希望校验的结果能正确反映出出错位的位号。每个字节由8个二进制位组成,此处的k为8,按式(3.19)求出校验位的位数r应为5,故海明码的总位数为13,可表示为H13H12H11H3H2H1 5个校验位P5P1对应的海明码位号应分别为H13,H8,H4,H2和H1。P5只能放在H13一位上,它已经是海明码的最高位了,其他4位满足Pi的位号等于2i-1的关系。其余为数据位Di,则有如下排列关系:P5D8D7D6D5P4D4D3D2P3D1P2P1 按前面讲的,每个海明码的位号,要等于参与校验它的几个校验位的位号之和的
19、关系,可以给出如表3.9所示的结果。表3.9 出错的海明码位号和校验位位号的关系海明码位号数据位/校验位参与校验的校验位位号被校验位的海明码位号=校验位位号之和H1P111=1H2P222=2H3D11,23=1+2H4P344=4H5D21,45=1+4H6D32,46=2+4H7D41,2,47=1+2+4H8P488=8H9D51,89=1+8H10D62,810=2+8H11D71,2,811=1+2+8H12D84,812=4+8H13P51313=13第三章 运算方法和运算器H=P5D8D7D6D5P4D4D3D2P3D1P2P1 P5 D8 D7 D6 D5 P4 D4 D3 D
20、2 P3 D1 P2 P1 H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1S5 1 1 1 1 1 1 1 1 1 1 1 1 1S4 0 1 1 1 1 1 0 0 0 0 0 0 0 S3 0 1 0 0 0 0 1 1 1 1 0 0 0S2 0 0 1 1 0 0 1 1 0 0 1 1 0S1 0 0 1 0 1 0 1 0 1 0 1 0 1 第三章 运算方法和运算器 循环冗余校验(CRC):设被校验的数据信息代码M(X)是n位的二进制信息,将M(X)左移K位后被一个约定的生成多项式G(x)相除,生成多项式是K+1位的二进制数,相除后得到K位余
21、数就是校验位。校验位拼接到原信息位的后面形成N+K位的循环冗余校验码CRC码。CRC码能够被生成多项式整除,所以当校验信息位是否出错时,只需将CRC码用多项式相除,如果正好除尽,表明无信息出错,当不能除尽时,说明信息位出错。第三章 运算方法和运算器 校验位的计算模2运算:模2加:0+0=0,0+1=1,1+1=0,1+0=1,模2减:0-0=0,0-1=1,1-0=1,1-1=0模2除:商的原则是当部分余数的首位是1时,商1,反之商0,然后按模2减求的余数,这个余数不记最高位。例:M(X)=1101,生成多项式G(x)=X3+X0=1001,求CRC=?解:因生成多项式是4位=K+1,所以K=
22、3,将M(x)左移3位,成为1101000,除以生成多项式1001,得校验位100。第三章 运算方法和运算器CRC校验:1100 1001 1101000 1001 1000 1001 0010 0000 0100 0000 100 校验位 CRC码=1101 100CRC的译码与纠错 将收到的循环校验码用约定的生成多项式G(x)去除,如果码字无误则余数应为0,如有某一位出错,则余数不为0,不同位数出错余数不同。更换不同的待测码字可以证明:余数与出错位的对应关系是不变的,只与码制和生成多项式有关。因此表3.10给出的关系可作为(7,4)码的判别依据。对于其他码制或选用其他生成多项式,出错模式将
23、发生变化。表3.10(7,4)循环码的出错模式(生成多项式G(x)=1011)A1A2A3A4A5A6A7余数出错位正 确11000100 0 0无错 误11000110 0 1711000000 1 0611001101 0 0511010100 1 1411100101 1 0310000101 1 1201000101 0 11关于生成多项式 并不是任何一个(r+1)位多项式都可以作为生成多项式的。从检错及纠错的要求出发,生成多项式应能满足下列要求:(1)任何一位发生错误都应使余数不为0。(2)不同位发生错误应当使余数不同。(3)对余数继续作模2除,应使余数循环。将这些要求反映为数学关系
24、是比较复杂的,对一个(n,k)码来说,可将(xn-1)分解为若干质因子(注意是模2运算),根据编码所要求的码距选取其中的因式或若干因式的乘积作为生成多项式。表3.11 生成多项式 nk码距dG(x)多项式G(x)二进制码743G1(x)=(x3+x+1)或(x3+x2+1)1011110134G2(x)=(x3+x+1)(x+1)或(x3+x2+1)(x+1)111011011115 117 35(x4+x+1)(x4+x+1)(x4+x3+x2+x+1)1001111101000131 2621 35(x5+x2+1)(x5+x2+1)(x5+x4+x3+x2+1)1001011110110
25、100163 5751 35(x4+x+1)(x4+x+1)(x6+x4+x+1)1000011101000011010110411024(x16+x15+x2+1)11000000000000101习题 3.27 设某运算器只由一个加法器和A,B两个D型边沿寄存器组成,A,B均可接收加法器输出,A还可接收外部数据,如图。问:(1)外部数据如何才能传送到B?(2)如何实现A+BA和A+BB?(3)如何估算加法执行时间?(4)若A,B均为锁存器,实现A+BA和A+BB有何问题?习题 3.28 今有一串行加法器,计算两个n位数据之和,已知相加两数存放在A,B寄存器中,请画出能实现(A)+(B)A的
26、逻辑图。图中只准用一个一位加法器,逐位进行计算。3.29 如果采用偶校验,下述两个数据的校验位的值是什么?(1)0101010 (2)0011011 3.30 设有16个信息位,如果采用海明校验,至少需要设置多少个校验位?应放在哪些位置上?3.31 设有8位有效信息,试为之编制海明校验线路。说明编码方法,并分析所选方案具有怎样的检错与纠错能力。若8位信息为01101101,海明码是何值?习题 设有6位有效信息,试为之编制海明校验线路。说明编码方法,并分析所选方案具有怎样的检错与纠错能力。第4章 主存储器4.1 主存储器处于全机中心地位4.2 主存储器分类4.3 主存储器的主要技术指标4.4 主
27、存储器的基本操作4.5 读/写存储器(即随机存储器(RAM)第4章 主存储器4.6 非易失性半导体存储器4.7 DRAM的研制与开发4.8 半导体存储器的组成与控制4.9 多体交叉存储器习题主存储器处于全机中心地位(1)当前计算机正在执行的程序和数据均存放在存储器中。CPU直接从存储器取指令或存取数据。(2)计算机系统中输入输出设备数量增多,数据传送速度加快,因此采用了直接存储器存取(DMA)技术和输入输出通道技术,在存储器与输入输出系统之间直接传送数据。主存储器处于全机中心地位(3)共享存储器的多处理机的出现,利用存储器存放共享数据,并实现处理机之间的通信,更加强了存储器作为全机中心的作用。
28、第四章 主存储器 第一节 主存储器在PC机中处的位置(以主存储器为中心、以CPU为中心、单总线结构)I/O设备1I/O设备nCPU主存储器第四章 主存储器 第一节 主存储器在PC机中处的位置(以主存储器为中心、以CPU为中心、单总线结构)I/O设备1I/O设备n主 存储 器CPU第四章 主存储器 第一节 主存储器在PC机中处的位置(以主存储器为中心、以CPU为中心、单总线结构)CPU主存储器磁 盘打印机显示器单总线第四章 主存储器 第二节 主存储器的分类(按存储介质分为按存储介质分为:半导体存储器、磁存储器、光存储器。按存取方式按存取方式分为分为:随机存取存储器RAM、只读存储器ROM、顺序存
29、取存储器SAM、直接存取存储器DAM。按按信息的可保护性信息的可保护性分类分为易失性(静态和动态RAM)和非易失性(ROM)。按所处的位置按所处的位置分为Cache、主存、辅存)随机存储器(random access memory,简称RAM);ROM;PROM;EPROM;E2PROM。存储器的性能指标:存储容量、存取时间(存取周期)、价格。第四章 主存储器PC机的存储体系结构。(Cache主存层次、主存辅存层次)主存辅存辅助软硬设备CPUCACHE主存辅助硬件CPU第四章 主存储器 主存储器的基本操作:取指、读、写。(P107 图4.1主存储器与CPU的联系)字选择线位线2位线1T4T3T
30、6T2T1T5VSSVDDVGG静态存储单元工作原理第四章 主存储器动态RAM的工作原理读出数据线写入选择线读出选择线写入数据线CT3T1T2读出时,读出数据线预充致高电位,然后读出选择线来高电位,使T3导通,若C上有电荷,则T2导通,读出数据线通过T2,T3接地,读出电压位地。若C上无电荷,则T2不导通,读出数据线的电压无变化。写入时,在写入数据线上加写入信号,在写入选择线上加高电位,则T1导通,C随写入信号而充电或放电。若T1截止,则C的电压保持不变。第四章 主存储器 动态存储器单管存储单元工作原理数据线(位线)字线CDCSVDDTDRAM与SRAM的比较DRAM有很多优点。首先,由于它使
31、用简单的单管单元作为存储单元,因此,每片存储容量较大,约是SRAM的4倍;由于DRAM的地址是分批进入的,所以它的引脚数比SRAM要少很多,它的封装尺寸也可以比较小。这些特点使得在同一块电路板上,使用DRAM的存储容量要比用SRAM大4倍以上。其次,DRAM的价格比较便宜,大约只有SRAM的1/4。第三,由于使用动态元件,DRAM所需功率大约只有SRAM的1/6。DRAM与SRAM的比较DRAM存在不少缺点。首先,也是由于使用动态元件,它的速度比SRAM要低。其次,DRAM需要再生,这不仅浪费了宝贵的时间,还需要有配套的再生电路,它也要用去一部分功率。SRAM一般用作容量不大的高速存储器。快擦
32、除读写存储器(Flash Memory)Flash Memory是在EPROM与E2PROM基础上发展起来的,它与EPROM一样,用单管来存储一位信息,它与E2PROM相同之处是用电来擦除。但是它只能擦除整个区或整个器件。快擦除读写存储器兼有ROM和RAM两者的性能,又有ROM,DRAM一样的高密度。目前价格已略低于DRAM,芯片容量已接近于DRAM,是唯一具有大存储量、非易失性、低价格、可在线改写和高速度(读)等特性的存储器。它是近年来发展很快很有前途的存储器。表4.1 列出几种存储器的主要应用 存储器应 用SRAMcacheDRAM计算机主存储器ROM固定程序,微程序控制存储器PROM用户
33、自编程序。用于工业控制机或电器中EPROM用户编写并可修改程序或产品试制阶段试编程序E2PROMIC卡上存储信息Flash Memory固态盘,IC卡第四章 主存储器 第八节 半导体存储器的组成与控制存储器的构成(位扩展、字扩展、字位扩展)位扩展 例如:16K*4的芯片构成16K*8的存储器。(P120图4.18)地址线:14根A0-A13,数据线8位,每块芯片4位,控制线:只画出2根,片选和读写线。字扩展 例如:16K*8的芯片构成64K*8的存储器。(P120图4.19)地址线:每块芯片需地址14根,覆盖16K的存储空间。共4组,所以还需要2根地址用于选择不同的芯片,共需16根地址。数据线
34、8位,连到每一块芯片,控制线一根,读写控制。第四章 主存储器字位扩展 例如:用1K*4的芯片构成4K*8的存储器(P121图4.20)。地址线:每块芯片容量1K,所以需地址线10根,整个存储器分成4组,所以译码信号需2根,共需地址线12根。数据线:每块芯片数据位4位,每组两块芯片构成存储单元的8位。控制线:读写控制线和内存请求(其中内存请求用于译码器的控制端)。刷新通常有两种刷新方式。(1)集中刷新集中式刷新指在一个刷新周期内,利用一段固定的时间,依次对存储器的所有行逐一再生,在此期间停止对存储器的读和写。例如,一个存储器有1 024行,系统工作周期为200ns。RAM刷新周期为2ms。这样,
35、在每个刷新周期内共有10 000个工作周期,其中用于再生的为1 024个工作周期,用于读和写的为8 976个工作周期。集中刷新的缺点是在刷新期间不能访问存储器,有时会影响计算机系统的正确工作。刷新(2)分布式刷新采取在2ms时间内分散地将1 024行刷新一遍的方法,具体做法是将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每隔时间t产生一次刷新请求。动态MOS存储器的刷新要有硬件电路的支持,包括刷新计数器、刷新访存裁决,刷新控制逻辑等。这些线路可以集中在RAM存储控制器芯片中。例如Intel 8203 DRAM控制器是为了控制2117,2118和2164 DRAM芯片而设计的
36、。2117,2118是16K1位的DRAM芯片,2164是64K1位的DRAM芯片。图4.21是Intel 8203逻辑框图。存储校验线路计算机在运行过程中,主存储器要和CPU、各种外围设备频繁地高速交换数据。由于结构、工艺和元件质量等种种原因,数据在存储过程中有可能出错,所以,一般在主存储器中设置差错校验线路。实现差错检测和差错校正的代价是信息冗余。信息代码在写入主存时,按一定规则附加若干位,称为校验位。在读出时,可根据校验位与信息位的对应关系,对读出代码进行校验,以确定是否出现差错,或可纠正错误代码。4.9 多体交叉存储器4.9.1 编址方式计算机中大容量的主存,可由多个存储体组成,每个体
37、都具有自己的读写线路、地址寄存器和数据寄存器,称为“存储模块”。这种多模块存储器可以实现重叠与交叉存取。如果在M个模块上交叉编址(M=2m),则称为模M交叉编址。通常采用的编址方式如图4.22(a)所示。设存储器包括M个模块,每个模块的容量为L,各存储模块进行低位交叉编址,连续的地址分布在相邻的模块中。第i个模块Mi的地址编号应按下式给出:M j+i其中,j=0,1,2,L-1;i=0,1,2,M-1表4.2 地址的模四交叉编址 模体地址编址序列对应二进制地址最低二位M00,4,8,12,4j+0,0 0M11,5,9,13,4j+1,0 1M22,6,10,14,4j+2,1 0M33,7,
38、11,15,4j+3,1 1第六章 中央处理部件CPU指令执行工作过程:寄存器BX地址寄存器AR控制信号发生器指令译码器ID指令寄存器IR数据寄存器DR运算器程序计数器PC寄存器AX内存第六章 中央处理部件CPU Intel80386的管脚连线(165图6.2)D0-D31:32位双向数据线。A0-A31:单向32位地址总线,在CPU内部,A0-A1转换为BE0#-BE3#,以确定所读范围:读一个字:A31-A2有效,同时BE0#-BE3#有效。读半个字:A31-A2有效,BE0#,BE1#有效,读低半 字。A31-A2有效,BE2#,BE3#有效,读高半字。读字节:A31-A2有效,BE0#
39、有效,读最低字节。以此类推。第六章 中央处理部件CPUW/R#,D/C#,M/IO#,LOCK#:总线周期定义信号 W/R#D/C#M/IO#读周期 0 1 1写周期 1 1 1读指 0 0 1IO读 0 1 0IO写 1 1 0第六章 中央处理部件CPUADS#,NA#,BS16#,READY#:总线控制信号ADS#:地址状态信号,输出低有效。NA#:输入低有效,当一个总线周期没有完成时,可以通知CPU开始下一个总线周期的操作。(地址和控制信号的输出)BS16#:输入低有效,表示被访问的存储器或IO是16位的数据宽度。即386即可以进行32位也可以进行16数据操作。READY#:输入低有效,
40、表示存储器或IO已经完成CPU要求的操作,或达到CPU要求的状态进行下面的工作。第六章 中央处理部件CPUHOLD,HLDA 总线仲裁信号:主设备、从设备的概念,当从设备要求使用总线进行数据传送时,必须向主设备提出请求即HOLD,主设备同意请求时,发出回答信号即HLDA。INTR,NMI 可屏蔽中断和不可屏蔽中断信号PEREQ,BUSY#,ERROR 协处理器接口信号:PEREQ:协处理器请求信号,要求CPU传送一个数据到FPU。BUSY#:协处理器忙信号。ERROR:协处理器出错信号。第六章 中央处理部件CPU第二节 控制器的组成控制器具有控制协调程序的执行,它具有的功能:取指、分析指令、执
41、行指令、控制程序的输入、数据的输入、结果的输出、对异常情况和特殊要求的处理。控制器的组成:程序计数器PC,指令寄存器IR,指令译码器ID,脉冲源及启停电路,时序控制信号形成部件。(P169图6.3)第六章 中央处理部件CPU第二节 控制器的组成-指令执行过程指令格式:指令:ADD AX,dispbx 执行过程:分为4个机器周期:取指、计算地址、取数、相加。(P170 图6.6,6.7)MOV AX,DISPBX JMP START JC LOOP2操作码 Rs,rdImm(或disp)Rs1 第六章 中央处理部件CPU第二节 控制器的组成取指机器周期所用控制信号:PC AB,W/R#=0,M/
42、IO#=1,DB IR,PC+1计算地址机器周期所用控制信号:rs1 GR,(rs1)ALU,disp ALU,“+”,ALU AR存储器取数机器周期所用控制信号:AR AB,W/R#=0,M/IO#=1,DB DR 相加机器周期所用控制信号:rs GR,(rs)ALU,DR ALU,“+”,rd GR,ALU rd ,置状态标志N,Z,V,C。第六章 中央处理部件CPU第二节 控制器的组成指令举例:ADD AX,BX它由两个机器周期构成:取指、相加。取指机器周期所用控制信号:PC AB,W/R#=0,M/IO#=1,DB IR,PC+1相加机器周期所用控制信号:rs GR,(rs)ALU,r
43、s1 GR,(rs1)ALU,“+”,rd GR,ALU rd ,置状态标志N,Z,V,C。操作码 Rs,rd(空)Rs1 第六章 中央处理部件CPU第二节 控制器的组成已知有如下指令,指出它们是由几个机器周期构成的:MOV AX,0066H MOV DISPBX,AX MOV AX,DISPBX JMP START JC LOOP2第六章 中央处理部件CPU第三节 微程序控制计算机的工作原理名词介绍:微操作;微指令;微程序;控制存储器。表6.1的控制信号及图6.8。取 指计算地址1002 取 数 1003加法运算1000减法运算1000 取 数 1006计算地址1005计算地址1000100
44、0100110021003微程序流程图第六章 中央处理部件CPU微程序控制器框图控制存储器指令译码地址码操作码 下 址控制字段IR形成本条指令的微程序入口CMIR第六章 中央处理部件CPU时序信号及工作脉冲T2CLK2CLKCLKCP-T1T1CLK2CPCP1CLK2CLKCLK2CLKT2CLK2CLKT1第六章 中央处理部件CPU第四节 微程序设计技术微程序设计技术关心3个问题:如何缩短微指令的长度?如何减少微程序长度?如何提高微程序的执行速度?微指令编译法:直接控制法;字段直接编译法;字段间接编译法;常数字段;其它。微程序流的控制:1.以增量方式产生后继微地址 2.增量和下址相结合产生
45、后继微地址(P186,187图6.23,6.24)3.多路转移方式AM2910芯片介绍P189,190图625,6.26)4.微中断。组合逻辑设计计算机设计原理设计原理硬布线实指令执行指 令时序和节拍指令执行所需的控制信号微程序实指令执行指 令时序和节拍指令执行所需的控制信号指令执行的两种模式硬布线实现指令的执行 时序与节拍:一条指令的实现可分成取指、计算地址、取数及执行等几个步骤。在微程序控制方式中,每一步由一条微指令实现,而在这里则由指令的操作码直接控制并产生实现上述各步骤所需的控制信号。在大部分情况下,每一步由一个机器周期实现,如何区分一条指令的四个机器周期呢?可以考虑用两位计数器的译码
46、输出来表示当前所处的机器周期。图6.31 用计数器译码器形成机器周期信号然而由于每条指令的功能不同,所以所需的机器周期数可能就不相同,因此某些指令可能缺少某个周期(例如转移指令),而有些复杂指令的某个周期则需要延长(例如乘法指令的执行周期),例如,执行A指令时需要四个机器周期,因此计数器的变化规律是00011011;而执行B指令时仅需要三个机器周期(例如不用计算地址),则计数器的变化规律为001011,据此可列出真值表(表6.3)。表6.3 计数器状态变化 A指令B指令cyAcyBcyAcyB cyAcyBcyA cyB 0001001001101011101111001100表中cyA,cy
47、B表示当前周期的计数器状态,cyA,cyB表示下一周期计数器状态。根据真值表列出表达式,对于A指令,其表达式为cyAcyAcyB+cyAcyB;cyBcyA cyB+cyAcyBcyB。对于B指令,其表达式为cyAcyA cyB+cyAcyBcyB;cyBcyAcyB。根据表达式得出逻辑图图6.32 时序计数器逻辑图图6.32为仅有两条指令的逻辑图,实际机器有几十条几百条指令,根据指令功能列出每条指令的机器周期变化规律,最后归纳出几种情况,将情况相同的指令归为一类,然后列出表达式,画出逻辑图。6.5.2 操作控制信号的产生 1.操作码译码器指令由操作码与地址码两部分组成,其中操作码表示当前正在
48、执行的是什么指令。各条指令所需实现的操作随指令而异。假如操作码有7位,则最多可表示128条指令,一般在机器内设置一个指令译码器,其输入为操作码(7位),输出有128根线,在任何时候,有且仅有一根线为高电位,其余均为低电位(或反之,即一根线为低电位,其余为高电位),每根输出线表示一条指令,因此译码器的输出可以反映出当前正在执行的指令。由译码器的输出和机器周期状态cy1cy4作为输入,使用逻辑电路产生操作控制信号,其框图如图6.33所示。实际上为了简化逻辑,译码器与组合逻辑是结合在一起设计的。图6.33 形成操作控制信号的逻辑框图 2.操作控制信号的产生这里我们主要讨论图6.33中的“组合逻辑电路
49、”究竟是由什么组成的。仍以加法指令为例,如前所述,假设一条加法指令的功能是由四个机器周期cy1cy4完成的,分别为取指、计算有效地址、取操作数、进行加法运算并送结果。机器逻辑图仍如图6.8所示,所以完成一条指令的操作所需的操作信号仍如前所示。参考图6.7的波形图,在取指周期要完成从存储器取出指令送指令寄存器以及将指令计数器加1,为取下一条指令作好准备。为访问存储器,需要将地址送往地址总线(PCAB),并发出启动存储器所需的信号ADS、M/IO及W/R,然后将取得的指令送往指令寄存器(DBIR)。用逻辑式表示之PCAB加法指令cy1(6.6)ADS加法指令cy1T1(6.7)M/IO加法指令cy
50、1(6.8)W/R加法指令cy1(6.9)DBIR加法指令cy1(6.10)PC+1加法指令cy1(6.11)公式6.66.11存在一个问题,即在取指周期,当前这条指令尚未取出,在IR中保留的还是上一条指令内容,因此不可能用它来产生控制本条指令所需的信号,所以在取指周期只允许安排与指令类型无关的操作,因此应将这些公式中的“加法指令”取消,于是将式(6.6)改写为:PCABcy1(6.12)6.76.11应同样修改,不再一一列出。同样,在计算地址周期cy2完成有效地址的计算(rs1)+Disp),为此要将rs1的内容取出与IR中的位移量一起送ALU,发出rs1GR(送通用寄存器地址),(rs1)