计算机组成原理 复习大纲.ppt_第1页
计算机组成原理 复习大纲.ppt_第2页
计算机组成原理 复习大纲.ppt_第3页
计算机组成原理 复习大纲.ppt_第4页
计算机组成原理 复习大纲.ppt_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理,复习大纲,计算机系统,计算机系统是由计算机硬件系统、计算机软件系统及通讯网络系统组成的一个整体系统。 一台完整的计算机系统包括硬件系统和软件系统。,计算机硬件结构,计算机可由运算器、控制器、存储器、输入设备、输出设备等五个部分组成,这就是著名的Von.Neumann结构。,一、数据编码与数据校验,定点、浮点数的表示和表示范围 海明码校验 奇偶校验,假设机器数为纯小数。 1、原码表示 原码的表示:正数的符号位用0表示,负数的符号位用1表示,尾数用数值表示。 原码的定义:X原 X 0=X1 1X -1X=0 例:X=0.1011, X原=01011; X=0.1011, X原=1X

2、=1.0000(0.1011)=11011。,原码的特性: (1) X原符号位+|X|,即原码的最高位为符号位,尾数部分为数值位(绝对值)。 (2) 数的原码有正负零之分,+ 0原000000000, - 0原100000000。 (3) 8位原码的数值范围为:+127原01111111, -127原11111111。 (4) 原码表示与增值转换方便,但两异号相加要做减法。 为了把减法运算转换为加法运算,提出了反码和补码。,2、反码表示 反码的表示:正数的反码符号位为0,尾数用数值表示(与原码相同);负数的反码为正数值连同符号位按位取反。 反码的定义:X反 X 0=X1 (2-2-n)+x -

3、1X=0 例:X=+0.1011, X反0.1011 X=-0.1011, X反=1.0100,反码的特性: (1) 反码的最高位为符号位,0为正,1为负,机器数与真值的关系:X反(22-n)+X) MOD(2-2-n); (2) 数的反码有正负零之分,+0=00000000, -0=11111111; (3) 8位反码的数值范围为,+127=01111111,-127=11111111; (4) 反码加运算,若最高位有进位,必须把该进位值加到结果的最低位,即“循环进位”。 例,X反0.11011,Y反=1.01010, X+Y反? 0.11011 + 1.01010 (1)0.00101 +

4、 1 0.00110,3、补码的表示 补码的表示:正数的补码与原码相同,即符号位用0表示,尾数用数值表示,负数的补码为数的反码,且在最低为加1,即取反加1。 补码的定义: X补 X 0=X1 2+X -1=X=0 MOD 2 例:X=+0.1011, X补01011; X=-0.1011,X补10101。,模与互补的概念: 例如,校正时间的方法:标准时间是6点钟,非标准时间是10点钟;有两种校正方法: 1046倒拨 1086顺拨 104108 (mod 12);称12为模数,(+8)与(-4)对模12互为余数,或称同余。 同理,在8位二进制中任一负数 (-X) 的补码都可以由 28-X 来得到

5、。,补码的特性: (1) 补码的最高位为符号位,0为正,1为负,机器数与真值的关系:X补2符号位X; (2) 数的补码表示中无正负之分,+0补=-0补=00000000; (3) 两个数的补码相加时,结果不超过机器能表示的范围,可以把符号位与数位同等处理,即机器数的符号位与数值位都是正确的补码表示。即: X+Y补=X补+Y补 (mod 2) X-Y补=X补+-Y补 (mod 2),1、定点小数 表示方法:小数点固定在最高数值位与符号位之间,小数点不用明确表示出来。任何一个小数都可以被写成: N=Ns.N-1N-2N-m 其中,符号位用0表示正号,用1表示负号,后面m位表示该小数的数值。定点小数

6、的值的范围很小,对用m+1个二进制位表示的小数,其值的范围|N|=1-2-m ,即小于1的纯小数。,定点数和浮点数,2、定点整数 表示方法:小数点固定在数值最低位右边的一种数据,最小的数为1。具有带符号和不带符号的两类。 带符号的整数:N=NsNnNn-1.N2N1N0 对于n+1位二进制整数,其值范围为|N|=2n-1 不带符号的整数:N=NnNn-1.N2N1N0 对于n+1为的二进制整数,其值范围为0=N=2n+1-1,例题,设机器字长为16位,定点表示时,尾数15位,阶符1位。试问: (1)定点原码整数表示时,最大正数为多少?最小负数为多少? (2)定点补码整数表示时,最大正数为多少?

7、最小负数为多少? (3)定点原码小数表示时,最大正数为多少?最少负数为多少? (4)定点补码小数表示时,最大正数为多少?最少负数为多少?,3、浮点数 表示方法:任意一个二进制数通过移动小数点的位置表示成阶码和尾数两部分,类似科学计算法。 N=2ES 其中,E为N的阶码,有符号的整数;S为N的尾数,数值的有效部分,一般取二进制定点纯小数形式。 例,1011101B= 2+7 0.1011101 101.1101B= 2+30.1011101 0.01011101B= 2-10.1011101,浮点数的一般格式: E0 E1En S0 S1.Sm 阶符 阶码 尾符 尾数 或者为:M0 E M 尾符

8、 阶码 尾数 例,101.1101= 2+30.1011101 =0.1011101 2+3 其浮点数形式为:0011 11011101 阶码 尾数,浮点数的规格化: 浮点数运算后必须化成规格化形式。 (1) 对于原码尾数来说,应该使最高数字位S1=1,如果不是1,且尾数不是全0时就要移动尾数直到S1=1,阶码相应变化,保证N值不变。 (2) 如果尾数是补码,当N是正数时 S1必须是1,N是负数时S1必须是0才是规格化形式。,例题,设阶码和尾数各为4位(各包含1个符号位),用补码表示,试问浮点数的表示范围为多少?,最小负数:1.00020111 最大负数: 1.01121000 最小正数: 0

9、.10021000 最大正数: 0.11120111,1、一浮点数,阶码部分为q位,尾数部分为p位,各包含一位符号位,均用补码表示;该规格化浮点数所能表示的最大正数、最小正数、最大负数和最小负数分别是多少?,综 合 例 题,解:,例 题,2、如果有16个信息位的信息,采海明码校验,需要多少校验位?应设置在哪些位置上?写出相应的海明码。,二、运算方法与运算器,补码加减法运算、溢出判断 浮点加、减运算 一位原码、补码乘除法运算,例 题,1、设x=0.1010,Y=0.0101,求X+Y补 2、设x=0.1010,Y=-0.0101,求X+Y补 3、设x=-0.1010,Y=-0.0101,求X+Y

10、补 4、设x=-0.1011,Y=-0.0101,求X+Y补,溢出的判断,1、变形码操作检测 方法:每个操作数在运算时都采用两个符号位,正数用00表示,负数用11表示,两个符号位与码值一起参加运算;若运算结果的两个符号位的代码不一致时表示溢出,两个符号位代码一致时,没有溢出。 2、单符号位操作检测 方法:当运算结果的符号位与操作数的符号位不一致时,表示溢出;当加数和被加数符号位不同时,相加的结果绝对不会溢出。,浮点数的运算方法,(1)对阶 对阶的原则:小阶向大阶看齐。 若mn则将操作数y的尾数右移一位,y的阶码n加1,直到mn。 若mn则将操作数x的尾数右移一位,x的阶码m加1,直到mn。 (

11、2)尾数相加 尾数相加与定点数的加、减法相同,浮点数的运算方法,(3)结果规格化 当运算结果的尾数部分不是11.0或00.1的形式时,则应进行规格化处理。 当尾数符号位01或10需要右规。 右规的方法是尾数连同符号位右移一位、和的阶码加1, 右规处理后就可得到11.0或00.1的形式,即成为规格化的数. 当运算结果的符号位和最高有效位为11.1或00.0时需要左规。 左规的方法是尾数连同符号位一起左移一位、和的阶码减1, 直到尾数部分出现11.0或00.1的形式为止。,(4)溢出判断 在阶码的符号位出现01或10时,表示溢出,而尾数的符号位为01或10时,给出的是运算结果需要右规的信号。 例:

12、 X=20100.11011011,Y=2100(-0.10101100) 求X+Y补,浮点数的运算方法,例: x101.1001020100.10110010 y1100.100021000.11001000 x补0011,0.1011001 y补0100,0.1100100 (1) 对阶 E m 补 n 补001111001111,其真值位1,即:x的阶码比y的阶码小1,x的尾数应右移1位,阶码加1得:x补0100,0.0101101 (0舍1入),(2) 尾数相加减 用双符号,即: x尾补 y尾补 00.0101101 00.0101101 00.1100100 11.0011100 0

13、1.0010001 11.1001001,(3) 结果规格化 由于加运算结果的尾数为 01.的形式,所以应右规,尾数右移一位,阶码加1,所以结果为: xy补0101,0.1001001 0舍1入 xy2101 0.1001001 由于减运算结果的尾数为 11.1的形式,所以应左规,尾数左移一位,阶码减1,所以结果为: xy补0011,1.0010010 xy20110.1101110,BOOTH算法,BOOTH算法流程: 开始时,部分积为0,即P0补0,然后每一步都是在前次部分积的基础上由(Yi+1-Yi)(i=0,1,2n)决定对X补的操作,再右移一位,得到新的部分积。如此重复n+1步,最后

14、一步不移位,便得到X补*Y补。 运算规则: 如果Yn=Yn+1,部分积Pi加0,再右移一位; 如果YnYn+1=01,部分积加x补,再右移一位; 如果YnYn+1=10,部分积加-X补,再右移一位。 如此重复进行n+1步,最后一步不移位;包括一位符号位,所得乘积为2n+1位,其中n为尾数位数。,例 题,例,X补1.0101,Y补1.0011,求X*Y补? 解:-X补=0.1011,采用双符号位表示后,运算过程如下: 部分积 乘数 操作 00.0000 1.00110 Yn+1=0,YnYn+1=10; + 00.1011 加-X补 00.1011 00.0101 110011 YnYn+1=1

15、1; + 00.0000 加0 00.0101 00.0010 111001 YnYn+1=01; + 11.0101 加X补 11.0111 11.1011 111100 YnYn+1=00; + 00.0000 加0 11.1011 11.1101 111110 YnYn+1=10 + 00.1011 加-X补 00.1000 1111 最后一步不移位,恢复余数法,规则:每次余数ri(最初是被除数X不移位)左移一位减除数,得到新的余数ri+1, ri+1=2 ri +-y补;如果ri +1=0,表示够减,商上“1”;如果ri+1 0,表示不够减,商上“0”,还要加除数y,然后左移一位再作减

16、除数y的运算。,例 题,X=0.1001,Y=0.1011,用恢复余数法秋X/Y=? X原X补0.1001 Y原Y补0.1011 -Y补1.0101,X/Y Q 00.1001 +-y补 11.0101 q0=0 11.1110 r00 00.1110 +-y补 11.0101 q2=1 00.0011 r20 00.0110 +-y补 11.0101 q3=0 11.1011 r30,不恢复余数法,基本规则: (1) 被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数。 (2) 余数与除数同号,商为“1”,余数左移一位,下次减除数;余数与除数异号,商为“0”,余数左移一位,下

17、次加除数。 (3) 重复步骤(2),包括符号位在内,共做n+1步。 恢复余数法与不恢复余数法的区别: 当余数ri为正时:恢复余数法为,+ri*2-y,商为“1” 不恢复余数法为,+ri*2-y,商为“1” 当余数ri为负时:恢复余数法为,(-ri+y)*2-y=-2ri+y, 商为“1” 不恢复余数法为,-ri*2+y,商为“0”,例,X=0.1001,Y=0.1011,用不恢复余数法求X/Y=? X原X补=0.1001,Y原Y补0.1011,-Y补1.0101 X/Y Q 00.1001 +-Y补 11.0101 q0=0 11.1110 r00 00.1110 +-Y补 11.0101 q

18、2=1 00.0011 r20 00.0110 +-Y补 11.0101 q3=0 11.1011 r30,例 题,三、指令系统与控制器,指令格式与寻址方式 指令的操作流程 微指令格式设计 微程序设计的控制器,指令格式,指令由表示操作性质的操作码和表示操作对象的地址码两部分组成。 操作码字段 地址码字段,例 题,1、指令字长为6位,每个地址码为4位,采用扩展操作码的方式,设计15条三地址指令、14条二地址指令、31条一地址指令和16条零地址指令。 画出扩展图 画出指令译码逻辑。,【例题分析】 每个地址码为4位: 三地址占12位,15条三地址指令的操作码为4位; 二地址占8位,14条二地址指令的

19、操作码为8位; 一地址占4位,31条一地址指令的操作码为12位; 16条零地址指令的操作码为16位;, 操作码的扩展如下:,指令译码逻辑如图所示,寻址方式,直接寻址 存储器寻址 基址寻址 变址寻址 间接寻址 相对寻址 立即寻址 堆栈寻址,例 题,例1 某机主存容量为64kl6位,采用单字长、单地址指令,共有60条。试采用立即、直接、寄存器、寄存器间接、变址、变址间接、相对、相对间接这八种寻址方式设计指令格式。并说明每一种寻址方式的寻址范围及有效地址计算方法。 【例题分析】 60条指令操作码字段(OP)至少需占用6位;寻址方式有八种,所以寻址字段3位(其中I为间接特征,X为寻址模式);形式地址(

20、D)7位。 其指令格式如下: 15 10 9 8 7 6 0 OP I X D,寻址模式定义、寻址方式的寻址范围如下:,例 2,指令格式如下所示,OP为操作码字段,试分析指令格式的特点。,解:(1)操作码字段为6位,可指定26 = 64种操作,即64条指令。 (2)单字长(32)二地址指令。 (3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器内容 + 偏移量来决定),所以是RS型指令。 (4)这种指令结构用于访问存储器。,中央处理器的功能和组成,1 中央处理器的功能 中央处理器简称CPU,它具有如下四方面的功能: (1)程序的顺序控制。 (2)操作控制 产生取出并执行

21、指令的微操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。 (3)时间控制 对各种操作实施时间上的控制。 (4)数据加工 对数据进行算术运算和逻辑运算处理。,中央处理器的功能和组成,2. 中央处理器的组成 中央处理器由控制器、运算器和总线组成。 (1)控制器 控制器是全机的指挥中心,其基本功能就是执行指令。 控制器由程序计数器PC、指令寄存器IR、地址寄存器(AR)、数据寄存器(DR)、指令译码器、时序系统和微操作信号发生器组成。,中央处理器的功能和组成, 程序计数器PC 用以指出下条指令在主存中的存放地址,CPU根据PC的内容去主存取得指令。因程序中指令是顺序执

22、行的,所以PC有自增功能。 指令寄存器(IR): 用来保存当前正在执行的一条指令的代码。 地址寄存器(AR): 用来存放当前CPU访问内存单元的地址。 数据寄存器(DR): 用来暂存由内存储器中读出或写如入内存的指令或数据。,6.1 中央处理器的功能和组成, 指令译码器: 分别对操作码字段、寻址方式字段、地址码字段进行译码,向控制器提供操作的特定信号。 时序部件: 用来产生各种时序信号,时序信号可分为CPU周期信号、节拍周期信号和节拍脉冲信号,它们都是由统一时钟CLOCK分频得到。 微操作形成部件: 根据IR的内容(指令)、PSW的内容(状态信息)以及时序线路三方面的内容,产生控制整个计算机系

23、统所需的各种控制信号。其结构有组合逻辑型和存储逻辑型。,6.1 中央处理器的功能和组成,(2)运算器 运算器由算术逻辑单元(ALU)、通用寄存器、程序状态字寄存器、数据暂存器、移位器等组成。它接收从控制器送来的命令并执行响应的动作,负责对数据的加工和处理。 各组成部件的作用是: 算术逻辑单元(ALU): 用以进行双操作数的算术逻辑运算。 通用寄存器组: 用来存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。 暂存器: 用来暂存从主存储器读出的数据,这个数据是不能存放在通用寄存器中,否则会破坏其原有的内容。,6.1 中央处理器的功能和组成, 程序状态字寄存器(PSW) 保留由算术

24、逻辑运算指令或测试指令的结果建立的各种状态信息。 移位器 在ALU输出端设暂存器用来存放运算结果,它具有对运算结果进行移位运算的功能。,指令的执行,指令的执行 (1)指令的执行过程 取指令 根据指令计数器PC提供的地址从主存储器中读取现行指令,送到主存数据缓冲器MDR中。然后再送往CPU内的指令寄存器IR中。同时改变指令计数器的内容,使之指向下一条指令地址或紧跟现行指令的立即数或地址码。,指令的执行, 取操作数 如果是无操作数指令则可直接进入下一个过程。如果需要操作数则根据寻址方式计算地址,然后到存储器中去取操作数。如果是双操作数指令则需两个取数周期; 执行操作 根据操作码完成相应的操作并根据

25、目的操作数的寻址方式存结果。 (2)指令之间的衔接方式 指令之间的衔接方式有:串行的顺序执行方式、并行的重叠处理方式和流水执行方式。,指令的执行,一个指令周期由若干个机器周期组成,每个机器周期又由若干个时钟周期组成。 一个机器周期内包含的时钟周期个数决定于该机器周期内完成的动作所需的时间。 一个指令周期包含的机器周期个数亦与指令所要求的动作有关,如单操作数指令,只需要一个取操作数周期,而双操作数指令需要两个取操作数周期。,例 2 CPU结构框图如图所示,写出以下几条指令的操作流程图,CLA ;清AC ADD I D ;I=0 为直接寻址, 即:(AC)+(D)AC ;I=1为间接寻址, 即:(

26、AC)+(D)AC STA I D ;I=0 为直接寻址, 即:(AC)D ;I=1为间接寻址, 即:(AC)(D) LDA I D ;I=0 为直接寻址, 即:(D)AC ;I=1为间接寻址, 即:(D)AC JMP I D ;I=0 为直接寻址, 即: D(PC) ;I=1为间接寻址, 即:(D)(PC),解: 指令的操作流程图如图所示,例3 已知CPU数据通路如图所示,线上标有控制信号。 (1) 设计适合此数据通路的微指令。 (2) 写出以下指令的操作流程图,并标出相应的微操作序列。(有偏移量时为双字长指令,无偏移量时为单字长指令) 指令ADD (Rd), Rs的功能是:(Rd)+(Rs

27、)(Rd)。 指令ADD Rd, #disp的功能是:(Rd)+(disp)Rd。 指令ADD disp(Rs),Rd的功能是:(Rs)+disp)+(Rd)(Rs)+disp。,CPU数据通路如下图, ADD (Rd), Rs指令的操作流程如图, ADD Rd, #disp指令的操作流程如图, ADD Rd,(Rs + disp)指令的操作流程,微程序控制器,微程序控制概念 (1)微程序控制方式的基本思想 将机器指令分解为基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序。每种机器指令对应一段微程序,在制造CPU时固化在CPU中的一个控制存储器(CM)中。执行

28、一条机器指令时,CPU依次从CM中取微指令,从而产生微命令。 一条微指令包含的微命令,控制实现一个节拍的操作;若干条微指令组成的一小段微程序解释执行一条机器指令。CM中的微程序能解释执行整个指令系统的所有机器指令。,微程序控制器,(2)基本概念和术语 微命令与微操作 微命令控制完成微操作的命令。例如:打开或关闭某个控制门的电位信号,某个寄存器的打入脉冲等。微命令由控制器通过控制线向有关的部件发出。 微操作由微命令控制实现的最基本操作。 微指令与微周期 微指令若干个微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。,6.5 微程序控制器,微周期通常指从控制存储器中读取一条微

29、指令并执行相应的微操作所需的时间。 若一个微周期的全部微命令用一个同步脉冲定时,则这种微周期称为单周期; 若一个微周期内用一个以上的同步脉冲定时全部微命令,则称多周期。 机器语言程序与微程序 一系列指令的有序集合称为机器语言程序。 一系列微指令的有序集合称为微程序,一条指令的功能由一段微程序来实现。,6.5 微程序控制器, 主存储器与控制存储器 主存储器用于存放程序和数据,在CPU外部,用RAM来实现。 控制存储器用于存放微程序,在CPU内部,用ROM来实现。 地址寄存器AR与微地址寄存器AR 地址寄存器AR用于存放主存的读/写地址; 微地址寄存器AR用于存放控存的读/写微指令的地址; 指令寄

30、存器IR与微指令寄存器IR 指令寄存器IR用于存放从主存中读出的指令; 微指令寄存器IR用于存放从控存中读出的微指令;,微程序控制器设计技术,微指令编码方法 (1)直接控制编码(不译码法) 直接控制编码是指微指令的微命令字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0就可以了。因此,微命令的产生不需译码。 这种编码的优点是简单、直观,执行速度快,操作并行性最好; 其缺点是微指令字长过长,使控制存储器单元的位数过多。而且,在给定的任何一个微指令中,往往只需部分微命令,因此只有部分位置1,造成有效的空间不能充分利用。,微程序控制器设计技术,

31、(2)字段直接编译法 相斥性微命令和相容性微命令 同一微周期中不能同时出现的微命令称为相斥性微命令; 在同一微周期中可以同时出现的微命令称为相容性微命令。 分段直接编译法 将微指令的微命令字段分成若干小字段,把相斥性微命令组合在同一字段中,而把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其它字段无关,这就称为分段直接编译法。,微程序控制器设计技术,分段的原则 A. 互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。 B. 与数据通路结构相适应。 C. 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。 D. 一般

32、每个小段还要留出一个状态,表示本字段不发出任何现行命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。,微程序控制器设计技术,(3)分段间接编译法 分段间接编译法是在直接编译法基础上,进一步缩短微指令字长的一种编码方法。在这种编译法中,一个字段的含义不仅决定于本字段编码,还兼由其它字段来解释,以便使用较少的信息位表示更多的微命令。 (4)混合控制法直接控制法与译码控制法的混合使用。,例1 对图6.8中的微命令进行编码 【相关知识】 分段直接编译法是将微指令的微命令字段分成若干小字段,把相斥性微命令组合在同一字段中,而把相容性微命令组合在不同的字段中,每个字段

33、独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其它字段无关。在此采用混合控制法。,例题,例题,【例题分析】 (1) 按照CPU结构图找互斥性微操作: 以AB总线为单位: AR AB、PC AB 是互斥的 以ALU为单位: DR ALU、PC ALU、(rs1) ALU 是互斥的 imm(disp) ALU、(rs) ALU 是互斥的 ALU GR、ALU DR、ALUPC、ALUAR 是互斥的 、是互斥的 以GR为单位: rs1 GR、rsrd GR 是互斥的 以DB为单位: DB DR、DBIR、DRDB 是互斥的,例1,(2) 分组 DR ALU、PC ALU、(rs1) A

34、LU这一组微命令用2位控制。 ALU GR、ALU DR、ALUPC、ALUAR这一组微命令是相斥的,用3位控制。 DB DR、DBIR、DRDB这一组微命令用2位控制。 AR AB、PC AB这一组微命令放在一起,但若用译码控制需加译码器,仍需2位控制,所以就用直接控制。,例1,rs1 GR、rs rd GR这一组微命令也用直接控制,原因同上。 ADS、M/IO、W/R是相容的,用直接控制,用3位。 因为PC1与imm(disp) ALU、(rs) ALU不会同时出现,为了节省位数,所以将他们放在一起用2位控制。 【例题答案】 微指令格式图6.14所示:,例1,微程序的顺序控制,1、微程序入

35、口地址的形成 由于每条机器指令都需要取指操作,所以将取指操作编制成一段公用微程序,通常安排在控制存储器的0号或1号单元开始的一段CM空间。 每一条机器指令对应着一段微程序,其入口就是初始微地址。首先由“取指令”微程序取出一条机器指令到IR中,然后根据机器指令操作码转换成该指令对应的微程序入口地址。这是一种多分支(或多路转移)的情况,常用以下方式形成入口地址: 如操作码为P,则入口地址为P或P。,微程序的顺序控制,2、后继微地址的形成 在转移到一条机器指令对应的微程序入口地址后,则开始执行微程序,这时每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成后继微指令地址。 计数器方式 这种方式与

36、用程序计数器产生机器指令地址的方式相类似。在顺序执行微指令时,后续微指令地址由现行微指令加上一个增量来产生;在非顺序执行微指令时,由转移微指令实行转移,转移微指令的控制字段分成两部分:条件选择字段与转移地址字段。由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若转移条件不满足, 则直接从微程序计数器中取得下一条指令。,微程序的顺序控制,用计数器法产生微地址的缺点是微程序中出现大量的转移微指令。它们约占整个微指令数的25,导致执行时间大大增加。另外,在编制微程序中,因微指令的地址受到限制,因而不方便;要区分微命令微指令和转移微指令使得微程序控制电路复杂化。 下址字段法也称为断定

37、方式 下址字段法与计数器法不同,它不采用uPC,而是在微指令格式中,设置一个下址字段,用于指明下一条要执行的微指令地址。当一条微指令被取出时,下一条微指令的地址已获得。它相当于每条微指令都具有转移微指令的功能。采用这种方法就不必设置专门的转移微指令,但增加了微指令字的长度。,微程序的顺序控制, 增量方式与断定方式的结合 在这种控制方式中微指令寄存器有计数的功能,但在微指令中仍设置一个顺序控制字段,它分成两部分:条件选择字段与转移地址字段。由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器中取得下一条指令。,四、存储系统与存储结构,内存储器的结构

38、与扩展方法 多体交叉存储器 高速缓冲存储器与数据调度 磁记录存储器的原理与性能指标计算,主存储器分类,RAM SRAM和DRAM ROM 掩膜ROM,PROM,EPROM,EEPROM,SRAM存储单元,DRAM存储单元,动态存储器的刷新,(1)刷新 动态存储元是依靠栅极电容上有无电荷来表示信息的,但电容的绝缘电阻不是无穷大,因而电荷会泄漏掉。通常,MOS管栅极电容上的电荷只能保持几个毫秒。为了使已写入存储器的信息保持不变,一般每隔一定时间必须对存储体中的所有记忆单元的栅极电容补充电荷,这个过程就是刷新。 (2)动态存储器如何刷新 刷新是由刷新控制逻辑定时自动地刷新,对CPU是透明的。 刷新通

39、常是一行一行地进行的,与存储器扩展无关,只与单个芯片的内部结构有关。 读出时可以刷新,但刷新时不读出。,刷新方式,常用的刷新方式由三种:集中式、分散式、异步式。 设存储器为10241024矩阵,读写周期tc200ns,刷新间隔为2ms,那么,在2ms内就有10,000个tc。 集中刷新方式 如图为集中刷新方式的时间分配图。在2ms内,前一段时间进行读或写或保持。保持状态即未选中状态,既不读也不写。后一段集中进行刷新。用于刷新的时间只需1024个tc,且集中在后段时间。前段8976个tc都用来读写保持。,这种方式的主要缺点是在集中刷新的这段时间内不能进行存取访 问,称之为死时间。, 分散刷新方式

40、,分散刷新方式如图所示。它是把系统周期ts分为两半,前半 段用来进行读或写或保持,后半段作为刷新时间。,这种方式下,每过1024个ts整个存储器就刷新一次。读写周期tc200ns,系统周期为400ns,那么,只需409.6s即可将整个存储器刷新一遍。 显然,在2ms内可进行了5000次刷新,因刷新过于频繁,影响了系统的速度,但它不存在死时间。这种方式不适合于高速存储器., 分布刷新方式(异步式),将以上两种方式结合起来,便形成异步刷新方式,如图所示。,它是先用要刷新的行数对2ms进行分割成1024等份,然后再将已分割的每段时间分为两部分,前段时间用于读或写或保持, 后一小段时间用于刷新。 行数

41、为1024时,可保证每隔2106/10241953ns刷新一行,取刷新信号周期为1800ns。这样既充分利用了2ms时间,又能保持系统的高速性。,例 题,例 有一个16K16的存储器,用1K4位的DRAM芯片(内部结构为6416)构成,设读写周期为0.1s ,问: 采用分布刷新方式,如单元刷新间隔不超过ms,则刷新信号周期是多少? 如采用集中刷新方式,存储器刷新一遍最少用多少读写周期?死时间率是多少? 解: 采用分布刷方式,在2ms时间内分散地把芯片64行刷新一遍,故刷新信号的时间间隔为2ms64 31.25s,即可取刷新信号周期为31s。 如采用集中刷新方式,假定T为读写周期,则所需刷新时间

42、为64T。因为T单位为0.1s ,2ms2000s,则死时间率 (64T2000)100%0.32% 。,RAM存储器的扩展,由于每一个集成片的存储容量终究是有限的,所以需要一定数量的片子按一定方式进行连接后才能组成一个完整的存储器。 (1)位扩展 位扩展指的是用多个存储器器件对字长进行扩充。 由mKn1的存储器芯片组成mKn2的存储器,需(n2n1)片mKn1的存储器芯片。 位扩展的连接方式是将多片存储器的地址、片选、读写控制端相应并联,数据端分别引出。,(2) 字扩展,字扩展指的是增加存储器中字的数量。 由m1Kn的存储器芯片组成m2Kn的存储器,需(m2m1)片m1Kn的存储器芯片。 静

43、态存储器进行字扩展时,将各芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围。,(3)字位同时扩展,实际存储器往往需要字向和位向同时扩充, 由m1Kn1的存储器芯片组成m2Kn2的存储器,需(m2m1)(n2n1)片m1Kn1的存储器芯片。,例 题,例1 用16k8位的SRAM芯片构成64K16位的存储器,要求画出该存储器的组成逻辑框图。 解:用16k8位的SRAM芯片构成64K16位的存储器,需(6416168)8片16K8的存储器芯片(先位扩展再字扩展)。 存储器容量为64K16位,其地址线为16位(A15A0); 芯片是16k8的,其地址线为14根(A13A0)

44、; 称A13A0为芯片内部地址,A15A14为芯片外部地址,也称芯片选择地址; 存储器的组成逻辑框图如图所示。,存储器系统设计举例,例2 用8K8位的ROM芯片和8K4位的RAM芯片组成存储器,按字节编址,其中RAM的地址为0000H5FFFH,ROM地址的地址为C000HFFFFH,画出此存储器组成结构图及与CPU的连接图。,【例题分析】,RAM的地址范围展开为: 000 0000000000000 010 1111111111111,A12A0从0000H1FFFH, 容量为:8K ; 高位地址A15 A14A13从000010, 所以RAM的容量为:8K3=24K。 RAM用8K4的芯片

45、组成,需8K4的芯片6片。 ROM的末地址首地址=FFFFHC000H=3FFFH,所以ROM的容量为:214=16K。ROM用8K8的芯片组成,需8K8的芯片2片。 ROM的地址范围展开为: 1100 0000 0000 00001111 1111 1111 1111 高为地址A15 A14A13从110111 。,存储器的组成结构图及与CPU的连接图,主存储器的主要技术指标,主存容量量(注意单位) 存储器的存取时间 存储器的存储周期,高速缓冲存储器 (Cache),掌握要点: 1程序访问的局部性 在一个较短的时间间隔内,CPU对局部范围的存储器地址频繁访问,而对此地址范围之外的地址访问很少

46、,这种现象称程序访问的局部性。 2设立cache存储器的目的和理论依据 它是为了提高存储系统的存取速度而设立的; 其理论依据是程序访问的局部性原理。 3什么是cache 存储器 cache 存储器是位于CPU和主存之间的一个容量相对较小的存储器,它的工作速度倍于主存,全部功能由硬件实现,并且对程序员是透明的。,说 明,设主存有2n个单元,地址码为n位,将主存分块(block),每块有2b 个字节;Cache也由同样大小的块组成,由于其容量小,所以块的数目小得多,主存中只有一小部分块的内容可存放在Cache中。 设nmb,则可得出:主存的块数M2m,块内字节数2b。Cache地址码为(cb)位,

47、Cache的块数为2c,块内字节数与主存相同,如图所示。,cache 存储器工作原理,Cache和主存的地址的地址格式,当CPU发出读请求时,将主存地址的mc位与Cache某块的标记相比较,根据其比较结果是否相等而区分出两种情况: 当比较结果相等时,说明需要的数已在Cache中,那么可以直接访问Cache;在主存与Cache之间,通常一次传送一个字块; 当比较结果不相等时,说明需要的数据尚未调入Cache,那么就要把该数据所在的整个字块从主存一次调进来。 前一种情况称为访问Cache命中,后一种情况称为访问Cache不命中。,Cache存储器的地址映像,为了把信息放到Cache存储器中,必须应

48、用某种函数把主存地址映像到Cache,称作地址映像。 在信息按照这种映像关系装入Cache后,执行程序时,应将主存地址变换成Cache地址,这个变换过程叫做地址变换。,1 直接地址映像方式,在直接映像方式中,映像函数可定为: ji mod 2c 其中,j是Cache的字块号,i是主存的字块号。在这种映像方式中,主存的第0块,第2c块,第2c1块,只能映像到Cache的第0块,而主存的第l块,第2c1块,第2c+11块,只能映像到Cache的第l块。,Cache存储器的地址映像,例1,设主存容量1MB,高缓容量16KB,块的大小为512字节。 (1)Cache地址格式 (2)写出主存地址格式 (

49、3)块表的容量为多大? (4)画出直接方式地址映像及变换示意图 (5)主存地址为CDE8FH的单元映像在cache中的什么位置? 【例题解答】 (1) Cache容量16KB,16KB=214,所以Cache地址为14位;块的大小为512字节,所以块内地址为9位,块地址为5位。 Cache地址格式为: 13 9 8 0 块地址 块内地址,(2)主存容量1MB,1MB=220,所以主存地址为20位;块的大小为512字节,所以块内地址为9位,块地址为5位,块标记为6位。 主存地址格式为: 19 14 13 9 8 0 块标记 块地址 块内地址,(3)Cache的每一块在块表中有一项,Cache的块

50、地址为5位,所以块表的单元数为25;块表中存放的是块标记,由于块标记为6位,所以块表的字长为6位。 故块表的容量为: 25字6位。,例1,直接方式地址映像及变换示意图,(5)因为cache容量为16KB=214B,块长为512B,所以cache有161024/512=32个块。 因为CDE8F H= 1100,1101,1110,1000,1111 所以块号= 1100,1101,111 块内地址=0,1000,1111 在直接映射方式下,主存中的第i块映射到cache中第i mod 25个块中; 1100,1101,111 mod 32 = 01111; 所以,地址CDE8F的单元在cach

51、e中的地址为01111,010001111。 直接映像的优点是实现简单。 直接映像方式的缺点是不够灵活,即主存的2t(t=m-c)个字块只能对应唯一的Cache存储器字块,因此,即使Cache存储器别的许多地址空着也不能占用。这使得Cache存储空间得不到充分利用,并降低了命中率。,例1,2 全相联映像,全相联映像方式允许主存中的每一个字块映像到Cache存储器的任何一个字块位置上,也允许从确实已被占满的Cache存储器中替换出任何一个旧字块。这是一个理想的方案,但实际上由于它的成本太高而不能采用。 它的标记位数从mc位增加到m位(与直接映像相比),使Cache标记容量加大; 在访问Cache

52、时,需要和Cache的全部标记进行“比较”才能判断出所访主存地址的内容是否已在Cache中。 由于Cache速度要求高,所以全部“比较”操作都要用硬件实现,通常由“按内容寻址的”相联存储器完成。所需逻辑电路甚多,以致无法用于Cache中。,Cache存储器的地址映像,全相联映像Cache组织,在上面的例1在全相联映像中,(1) Cache容量16KB,16KB=214,所以Cache地址为14位;块的大小为512字节,所以块内地址为9位,块地址为5位,共32个块。Cache地址格式为: 13 9 8 0 块地址 块内地址 (2)主存容量1MB,1MB=220,所以主存地址为20位;块的大小为5

53、12字节,所以块内地址为9位,块地址为11位,共211=2048个块。主存地址格式为: 19 9 8 0 块标记 块内地址 (3)Cache的每一块在块表中有一项,Cache的块地址为5位,所以块表的单元数为25;块表中存放的是块标记,由于块标记为11位,所以块表的字长为11位。 故块表的容量为: 25字11位。,(4) 全相联映像方式地址映像及变换示意图,3.组相联地址映像方式,组相联映像方式是直接映像和全相联映像方式的一种折衷方案。 组相联映像Cache组织如图7.5所示(P237)。它把Cache字块分为2c组,每组包含2r个字块,于是有ccr。那么,主存字块Mm(i)(0i2m1)可以

54、用下列映像函数映像到Cache字块Mc(j) (0j2c1)上。 j(i mod 2 c) 2 rk 0k2 r1 k是为位于上列范围内的可选参数(整数)。按这种映像方式,组间为直接映像,而组内的字块为全相联映像方式。,Cache存储器的地址映像,组相联地址映像方式结构图,例3,一个组相联映象Cache由64个存储块构成,每组包含4个存储块。主存包含4096个存储块,每块由8字组成,每字为32位。存储器按字节编址,访存地址为字地址。 (1)写出Cache地址位数和地址格式。,【解】 (1) Cache由64个存储块构成,每块由8字组成,每字为32位, 存储器按字节编址,所以Cache容量=64

55、8字4B=211B, 所以Cache的地址总数为11位。每组包含4个存储块,所以组内 块号为2位;Cache有64/4=16个组,所以组号为4位。 Cache地址格式为: 10 9 8 5 4 2 1 0 组内块号 组号 块内字地址 字内字节地址,块内地址,(2)写出主存地址的地址格式,主存包含4096个存储块,主存容量=40968字4字节=217字节 主存高位地址为17-11=6位。 主存地址格式为: 16 11 10 9 8 5 4 2 1 0 主存高位地址 组内块号 组号 块内字地址 块内字节地址,主存字块标记 c,t r c=c-r,b,块内地址,例3,(3)画出组相联映像方式的示意图

56、,组相联映像方式的示意图如下图所示:,(4)主存地址18AB9H映射到Cache的哪个字块?,主存地址18AB9H = 1 1000 1010 1011 1001 方法1: 组号为0101,所以主存地址18AB9H可以映射到Cache的第5组中的字块20、字块21、字块22或字块23。 方法2: 块内地址位1 1001; 块号位i= 1 1000 1010 101;设Cache的块号为j, 因为 j =(i mod 24 ) 22 k 0k221 所以 j=(1 1000 1010 101 mod 24 ) 22 k =010122 k =54 k 所以主存地址18AB9H可以映射到Cache

57、的第5组中的字块20、字块21、字块22或字块23。,例3,当新的主存字块需要调入Cache存储器而它的可用位置又已被占满; 常用的替换算法有:先进先出(FIFO)算法和近期最少使用(LRU)算法。 FIFO算法总是把一组中最先调入的块或页替换出去,它不需要随时记录各个字块或页的使用情况,所以实现容易、开销小。 LRU算法是把一组中近期最少使用的字块或页替换出去。LRU替换算法的平均命中率比FIFO要高,并且当分组容量加大时,能提高LRU替换算法的命中率。,替换算法,磁表面存储器的工作原理,磁表面存储器的读写原理 信息记录方式 磁盘地址格式,记录块是磁盘存储器读写信息的最小单位。 磁盘地址格式为: 驱动器号 磁道号(圆柱面号) 记录面号(磁头号) 扇区号 请注意磁道号(圆柱面号)与记录面号的顺序。,磁盘存储器的主要技术指标,(1)存储密度:磁盘单位面积能记录的二进制信息量, 它包括道密度和位密度。 道密度 道密度是沿磁盘半径方向单位长度上的磁道数。 道密度磁道数存储区域的长度 单位为道英寸(TPI)或道毫米(TPM); 位密度 位密度是磁道单位长度上可以记录的二进制代码位数。 位密度磁道容量内圈的周长 单位为位英寸(bp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论