1、主要内容第第2章章 数据操控数据操控 计算机体系结构计算机体系结构 机器语言机器语言 程序的执行程序的执行 算术算术/ /逻辑指令逻辑指令 与其他设备的通信与其他设备的通信 其他体系结构其他体系结构计算机体系结构l 计算机中实现计算机中实现控制数据操控控制数据操控的电路,是作为计算机的一个独的电路,是作为计算机的一个独立的部分存在的,称为立的部分存在的,称为中央处理器(中央处理器(CPUCPU)。l 早期的早期的CPUCPU体积庞大,今天的体积庞大,今天的CPUCPU体积很小、集成度高。体积很小、集成度高。计算机体系结构CPUCPU的外部特征,以及在计算机中的物理位置的外部特征,以及在计算机中
2、的物理位置CPU主板主板计算机体系结构CPUCPU的组成的组成l 算术算术/ /逻辑单元(逻辑单元(arithmetic/logic unitarithmetic/logic unit) ALUALU实现数据操作的电路,包括算术运算和布尔运算实现数据操作的电路,包括算术运算和布尔运算l 控制单元(控制单元(control unitcontrol unit) CUCU协调计算机活动的电路,包括:发出运算指令,操作数的读取等。协调计算机活动的电路,包括:发出运算指令,操作数的读取等。l 寄存器单元(寄存器单元(registerregister) 通用寄存器通用寄存器(general-purpose
3、 registergeneral-purpose register) 临时保存临时保存CPUCPU正在操作的数据。即:保存正在操作的数据。即:保存ALUALU电路的输入和运算的电路的输入和运算的结果。结果。 专用寄存器专用寄存器(special-purpose registerspecial-purpose register) 程序计数器、指令寄存器程序计数器、指令寄存器计算机体系结构CPUCPU的工作原理的工作原理寄存器寄存器中央处理器中央处理器 CPU主存储器主存储器算术算术/逻逻辑单元辑单元控制控制单元单元总线总线CPU和主存储器通过和主存储器通过总线总线(BUS)连接连接 CPU和主存
4、储器之间通常设置了和主存储器之间通常设置了高速缓冲存储器高速缓冲存储器(cache memory)各类存储器的分工各类存储器的分工:P54步骤1:从主存储器中取出一个要加的数放入一个寄存器中。步骤2:从主存储器中取出另一个要加的数放入另一个寄存器中。步骤3:激活加法电路,以步骤1、2所用的寄存器为输入,用另一个寄存器存放相加结果步骤4:将该结果存入主存储器。步骤5:停止。RAM计算机体系结构存储程序的概念存储程序的概念l把计算机程序存放到主存储器里的思想把计算机程序存放到主存储器里的思想-存储程序概念存储程序概念l早期的计算机早期的计算机举例:类似举例:类似“音乐盒音乐盒”那时,要改变计算机执
5、行的程序,等于重新制造一台计算机那时,要改变计算机执行的程序,等于重新制造一台计算机l后来,人们认识到程序可以像数据一样进行编码,并存放到存储器中。后来,人们认识到程序可以像数据一样进行编码,并存放到存储器中。这样同一台计算机,可以执行很多种程序,而不需要改动计算机的硬件。这样同一台计算机,可以执行很多种程序,而不需要改动计算机的硬件。计算机体系结构 l中央处理器(中央处理器(Central Processing UnitCentral Processing Unit,CPUCPU) 算术算术/ /逻辑部件(逻辑部件(arithmetic/logic unitarithmetic/logic
6、unit) 控制部件(控制部件(control unitcontrol unit) 寄存器(寄存器(registerregister)l通用寄存器(通用寄存器(general-purpose registergeneral-purpose register)l专用寄存器(专用寄存器(special-purpose registerspecial-purpose register)l主板(主板(motherboardmotherboard)l总线(总线(busbus)l高速缓冲存储器(高速缓冲存储器(cache memorycache memory)本节涉及到的概念本节涉及到的概念计算机体系结构
7、P P5454 问题与练习问题与练习机器语言l 机器语言(机器语言(machine languagemachine language)CPUCPU能辨认的能辨认的二进制模式二进制模式编码的指令和编码系统统称为机器语言编码的指令和编码系统统称为机器语言l 机器指令(机器指令(machine instructionmachine instruction)用机器语言表达的指令称为用机器语言表达的指令称为机器指令机器指令 ? ?问题:现在常用的一些程序设计语言,例如问题:现在常用的一些程序设计语言,例如C C、JavaJava、C+C+等和机器语言有什么关系?等和机器语言有什么关系?-编译编译1. 1
8、. 指令系统指令系统l问题:计算机的指令是不是越多越好?一台计算机的问题:计算机的指令是不是越多越好?一台计算机的CPUCPU究竟应该包究竟应该包含多少条指令才比较合适?含多少条指令才比较合适?l一旦一台计算机能够实现几个经过精心挑选的任务,那么添加更多一旦一台计算机能够实现几个经过精心挑选的任务,那么添加更多的特性是不会增加该计算机的理论能力的。的特性是不会增加该计算机的理论能力的。l换句话说,超越某一点后,附加的特性只能增加便利性,不会增加换句话说,超越某一点后,附加的特性只能增加便利性,不会增加该计算机的基本能力。该计算机的基本能力。机器语言 例:计算机例:计算机A:+、-、*、/ 计算
9、机计算机B:+、-、*、/、平方、开方、立方等、平方、开方、立方等1. 1. 指令系统指令系统l利用以上原则的不同程度,导致出现了两种利用以上原则的不同程度,导致出现了两种CPUCPU的体系结构(两种指的体系结构(两种指令系统):令系统):精简指令集计算机(精简指令集计算机(RISCRISC):): CPU CPU只需要执行最小的机器指令集。只需要执行最小的机器指令集。复杂指令集计算机(复杂指令集计算机(CISCCISC):): CPU CPU能够执行大量复杂的指令。能够执行大量复杂的指令。 Intel Intel公司生产的公司生产的CPUCPU是是CISCCISC结构的,而结构的,而IBM
10、PowerPCIBM PowerPC是是RISCRISC结结构的。构的。机器语言 机器语言1. 1. 指令系统指令系统指令分成指令分成3 3大类:大类:l数据传输类数据传输类l算术算术/ /逻辑运算类逻辑运算类l控制类控制类寄存器寄存器中央处理器中央处理器主存储器主存储器算术算术/逻逻辑部件辑部件控制部件控制部件总线总线CPU和主存储器通过总线连接和主存储器通过总线连接 机器语言步骤1:从主存储器中取出一个要加的数放入一个寄存器中。步骤2:从主存储器中取出另一个要加的数放入另一个寄存器中。步骤3:激活加法电路,以步骤1、2所用的寄存器为输入,用另一个寄存器存放相加结果步骤4:将该结果存入主存储
11、器。步骤5:停止。1. 1. 指令系统指令系统数据传输数据传输指令:指令:l请求在各个位置之间传输数据的指令请求在各个位置之间传输数据的指令l右图中步骤右图中步骤1 1、2 2、4 4属于传输指令属于传输指令注意:注意:l这里的这里的“传输传输”实际上指的是实际上指的是“复制复制”,通常不用,通常不用“movemove”或或“transfertransfer”l术语术语“LOADLOAD”、“STORESTORE”通常用来指通常用来指在在CPUCPU和主存储器之间和主存储器之间传输数据。传输数据。lI/OI/O指令指令是一类特殊的数据传输指令,单独列为一类。指是一类特殊的数据传输指令,单独列为
12、一类。指在在CPUCPU和其它设备和其它设备间传输数据。间传输数据。机器语言1. 1. 指令系统指令系统算术算术/ /逻辑运算指令:逻辑运算指令:l负责数据的运算负责数据的运算,即告诉控制部件请求在,即告诉控制部件请求在算术算术/ /逻辑部件内实现一个活动逻辑部件内实现一个活动l右图中步骤右图中步骤3 3属于算术属于算术/ /逻辑运算指令逻辑运算指令注意:注意:l逻辑运算逻辑运算ANDAND、OROR、NOTNOT、XORXOR通常是基于通常是基于位位的运算。的运算。因此逻辑运算指令可以完成对某一个寄存器中特定的若干位操作,而对其他位因此逻辑运算指令可以完成对某一个寄存器中特定的若干位操作,而
13、对其他位没有影响没有影响-掩码掩码l除逻辑运算,还有一类对寄存器内容左右移动的运算除逻辑运算,还有一类对寄存器内容左右移动的运算: :移位运算移位运算(SHIFT)(SHIFT)、循环移位运算(循环移位运算(ROTATEROTATE)。步骤1:从存储器中取出一个要加的数放入一个寄存器中。步骤2:从存储器中取出另一个要加的数放入另一个寄存器中。步骤3:激活加法电路,以步骤1、2所用的寄存器为输入,用另一个寄存器存放相加结果步骤4:将该结果存存储器。步骤5:停止。机器语言1. 1. 指令系统指令系统控制指令:控制指令:l指导程序执行的指令,而不作数据操作指导程序执行的指令,而不作数据操作l右图中步
14、骤右图中步骤5 5属于控制指令属于控制指令注意:注意:l常见的控制指令:转移(常见的控制指令:转移(JUMPJUMP)、分支()、分支(BRANCHBRANCH)l转移有两种形式:转移有两种形式:无条件转移无条件转移有条件转移有条件转移,例如:,例如:P56P56,图,图2.32.3的步骤的步骤3 3步骤1:从存储器中取出一个要加的数放入一个寄存器中。步骤2:从存储器中取出令一个要加的数放入另一个寄存器中。步骤3:激活加法电路,以步骤1、2所用的寄存器为输入,用另一个寄存器存放相加结果步骤4:将该结果存存储器。步骤5:停止。一个演示用的机器语言1.1.机器的体系结构机器的体系结构 机器有机器有
15、1616个通用寄存器个通用寄存器。每个寄存器的长度为一字节(每个寄存器的长度为一字节(8 8位)。位)。为了在为了在指令中标识寄存器,每个寄存器各赋予一个惟一的四位模式表示其寄存器号。指令中标识寄存器,每个寄存器各赋予一个惟一的四位模式表示其寄存器号。所以寄存器所以寄存器0 0由由00000000(十六进制(十六进制0 0)标识,寄存器)标识,寄存器4 4由由01000100(十六进制(十六进制4 4)标识。)标识。 机器主存有机器主存有256256个单元个单元。每个单元赋予一个范围在。每个单元赋予一个范围在0 0到到255255之间的整数地之间的整数地址。所以一个地址能够用址。所以一个地址能
16、够用0000000000000000到到1111111111111111范围内(或范围内(或0000到到FFFF范围的十六范围的十六进制值)的一个八位模式来表示。进制值)的一个八位模式来表示。一个演示用的机器语言2. 2. 示例性的机器语言示例性的机器语言 附录附录算术算术/ /逻辑部件逻辑部件中央处理器中央处理器寄存器寄存器012F总线总线主存储器主存储器地址地址单元单元00000101020203030404FFFF控制部件控制部件程序计数器程序计数器指令寄存器指令寄存器(1)共有)共有16个通用寄存器,个通用寄存器,256个主存储单元。个主存储单元。(2)分别用二进制编号,用十六进制表示
17、。)分别用二进制编号,用十六进制表示。一个演示用的机器语言2. 2. 示例性的机器语言示例性的机器语言指令及其构成:指令及其构成:l该计算机的每一条指令都是一个二进制序列;该计算机的每一条指令都是一个二进制序列;l这个二进制序列可被分为两部分:这个二进制序列可被分为两部分:操作码、操作数操作码、操作数l操作码指名该指令将进行什么操作操作码指名该指令将进行什么操作,例如:,例如:STORESTORE、ADDADD、XORXOR等等l操作数给出了参与本次运算的更详细的信息操作数给出了参与本次运算的更详细的信息。操作码操作码操作数操作数一条指令的组成一条指令的组成一个演示用的机器语言2. 2. 示例
18、性的机器语言示例性的机器语言l ? ?问题:在实际的计算机指令集中,操作码占几位取决于什么?问题:在实际的计算机指令集中,操作码占几位取决于什么?l对应着每一种操作码的位模式,操作数都有不同的解释。对应着每一种操作码的位模式,操作数都有不同的解释。操作码操作码操作数操作数实际的位模式(实际的位模式(16位)位)十六进制形式(十六进制形式(4个数字)个数字)一条指令的组成一条指令的组成一个演示用的机器语言2. 2. 示例性的机器语言示例性的机器语言l在我们的在我们的示例计算机中,机器语言一共有示例计算机中,机器语言一共有1212条基本指令条基本指令;因此,操;因此,操作码需占作码需占4 4位。位
19、。l总的机器指令都是两字节长。头总的机器指令都是两字节长。头4 4位是操作码,后位是操作码,后1212位组成操作数字位组成操作数字段。段。l1212位组成操作数位组成操作数由三个十六进制数表示,分别代表不同的含义。由三个十六进制数表示,分别代表不同的含义。l详见附录详见附录C C一个简单的机器语言 说明:说明:l 字母字母R R、S S及及T T在表示寄存器标识符的那些字段处用来替代十六进制数字,在表示寄存器标识符的那些字段处用来替代十六进制数字, R R、S S、T T代表的是寄存器的地址代表的是寄存器的地址 它们因指令的具体应用而异。它们因指令的具体应用而异。l 字母字母X X及及Y Y用
20、来在变量字段替代十六进制数字,而用来在变量字段替代十六进制数字,而不代表寄存器不代表寄存器。一个简单的机器语言操作码操作码操作数操作数说明说明1RXY以地址为以地址为XY的存储单元的位模式加载(的存储单元的位模式加载(LOAD)寄存器)寄存器R。例:例:14A3使得地址使得地址A3的存储单元内容放入寄存器的存储单元内容放入寄存器4。2RXY以位模式以位模式XY 加载(加载(LOAD)寄存器)寄存器R。例:例:20A3使得值使得值A3放入寄存器放入寄存器0。3RXY将寄存器将寄存器R的位模式存放(的位模式存放(STORE)于地址为)于地址为XY的存储单元。的存储单元。例:例:35B1使得寄存器使
21、得寄存器5的内容放入地址为的内容放入地址为B1的存储单元。的存储单元。4ORS将寄存器将寄存器R的位模式移入(的位模式移入(MOVE)寄存器)寄存器S。例:例:40A4使得寄存器使得寄存器A的内容复制到寄存器的内容复制到寄存器4。5RST寄存器寄存器S与寄存器与寄存器T的位模式作为补码表示相加(的位模式作为补码表示相加(ADD),求和结果),求和结果放在寄存器放在寄存器R。例:例:5726使得寄存器使得寄存器2与寄存器与寄存器6的二进制值相加,和放入寄存器的二进制值相加,和放入寄存器7。6RST寄存器寄存器S与寄存器与寄存器T的位模式作为浮点表示值相加(的位模式作为浮点表示值相加(ADD),浮
22、点结),浮点结果放在寄存器果放在寄存器R。例:例:634E使寄存器使寄存器4与寄存器与寄存器E的浮点值相加,结果放入寄存器的浮点值相加,结果放入寄存器3。一个简单的机器语言操作码操作码操作数操作数说明说明7RST寄存器寄存器S与寄存器与寄存器T的位模式做或(的位模式做或(OR)操作,结果放在寄)操作,结果放在寄存器存器R。例:例:7CB4使得寄存器使得寄存器B与寄存器与寄存器4的内容做或操作,结果放的内容做或操作,结果放入寄存器入寄存器C。8RST寄存器寄存器S与寄存器与寄存器T的位模式做与(的位模式做与(AND)操作,结果放在寄)操作,结果放在寄存器存器R。例:例:8045使得寄存器使得寄存
23、器4与寄存器与寄存器5的内容做与操作,结果放入的内容做与操作,结果放入寄存器寄存器0。9RST寄存器寄存器S与寄存器与寄存器T的位模式做异或(的位模式做异或(EXCLUSIVE OR)操)操作,结果放在寄存器作,结果放在寄存器R。例:例:95F3使得寄存器使得寄存器F与寄存器与寄存器3的内容做异或操作,结果放的内容做异或操作,结果放入寄存器入寄存器5。一个简单的机器语言操作码操作码操作数操作数说明说明AROX将寄存器将寄存器R的位模式循环(的位模式循环(ROTATE)右移一位,做)右移一位,做X次。次。每次把低端开始的那个位放入高端。每次把低端开始的那个位放入高端。例:例:A403使得寄存器使
24、得寄存器4的内容循环右移的内容循环右移3位。位。BRXY若寄存器若寄存器R的位模式等于寄存器的位模式等于寄存器0的位模式,则跳转(的位模式,则跳转(JUMP)到位于地址到位于地址XY的存储单元中的指令。否则继续正常执行顺序。的存储单元中的指令。否则继续正常执行顺序。(跳转是通过在执行周期将(跳转是通过在执行周期将XY复制进程序计数器来实现。)复制进程序计数器来实现。)例:例:B43C先比较寄存器先比较寄存器4及寄存器及寄存器0的内容。如果两者相等,的内容。如果两者相等,则把模式则把模式3C置入程序计数器,所以下一条执行的指令将是这置入程序计数器,所以下一条执行的指令将是这个存储器地址中的那条。
25、否则,不做任何别的事情,程序照个存储器地址中的那条。否则,不做任何别的事情,程序照常继续。常继续。C000停止(停止(HALT)执行。)执行。例:例:C000使得程序执行停止。使得程序执行停止。机器语言运算对象的这运算对象的这部分标识接收部分标识接收数据的存储器数据的存储器单元的地址单元的地址运算对象的这部分标运算对象的这部分标识哪个寄存器的值需识哪个寄存器的值需要储存要储存运算码运算码3表示把表示把一个寄存器中的一个寄存器中的内容存储到一个内容存储到一个存储器单元中存储器单元中指令指令指令指令35A7的译码的译码 2. 2. 示例性的机器语言示例性的机器语言机器指令的译码(解码):机器指令的
26、译码(解码):机器语言2. 2. 示例性的机器语言示例性的机器语言根据附录根据附录C C,解释下列指令序列的含义:,解释下列指令序列的含义:l156C156Cl166D166Dl50565056l306E306ElC000C000机器语言P P5858 问题与练习问题与练习程序执行l程序:指令的有序集合程序:指令的有序集合 l计算机必须将程序复制到计算机必须将程序复制到CPUCPU中才能执行。即在中才能执行。即在CPUCPU中解码和执行。中解码和执行。l程序的执行顺序和他们在存储器中保存的顺序是一致的,除非程序程序的执行顺序和他们在存储器中保存的顺序是一致的,除非程序中包含中包含JUMPJUM
27、P指令。指令。现实中:现实中:程序被存放在硬盘中,当执行时,先被加载到内存里,然后再一条程序被存放在硬盘中,当执行时,先被加载到内存里,然后再一条条的复制到条的复制到CPUCPU的控制器中执行。的控制器中执行。程序执行控制部件中的两个控制部件中的两个专用寄存器专用寄存器:l程序计数器程序计数器程序计数器中包含了程序计数器中包含了下一条要执行的指令的地址要执行的指令的地址l指令寄存器指令寄存器指令寄存器用于保存指令寄存器用于保存当前正在执行的指令执行的指令算术算术/ /逻辑部件逻辑部件中央处理器中央处理器寄存器寄存器012F总线总线主存储器主存储器地址地址单元单元0000010102020303
28、0404FFFF控制部件控制部件程序计数器程序计数器指令寄存器指令寄存器程序执行l从整体上看,由控制部件负责协调一个程序的执行。对于程序中的从整体上看,由控制部件负责协调一个程序的执行。对于程序中的每一条指令的执行,控制部件要完成的工作都可以被分为三个基本每一条指令的执行,控制部件要完成的工作都可以被分为三个基本的步骤。的步骤。取指令取指令译码译码执行执行l控制部件是通过重复执行一个算法来实现它的工作的,该算法引导控制部件是通过重复执行一个算法来实现它的工作的,该算法引导它完成一个称为它完成一个称为机器周期机器周期的三步处理。的三步处理。l一条指令的执行时间一条指令的执行时间 - - 一个机器
29、周期一个机器周期1个机器周期内的工作程序执行机器周期内执行一条指令的算法机器周期内执行一条指令的算法1. 按程序计数按程序计数器指示的地址器指示的地址从存储器中读从存储器中读出一条指令,出一条指令,然后增加程序然后增加程序计数器的值。计数器的值。2. 对指令寄对指令寄存器中的位存器中的位模式进行译模式进行译码。码。3. 实现指令寄存器里实现指令寄存器里指令所规定的动作。指令所规定的动作。读读取取执行执行译码译码在我们的示例计算机中,计数器的值应该加2程序执行 运算对象运算对象的这部分的这部分是要放在是要放在程序计数程序计数器的值。器的值。运算对象的这部分指运算对象的这部分指示要与寄存器示要与寄
30、存器0比较比较的寄存器。的寄存器。运算码运算码B表示,表示,如果指定的寄存如果指定的寄存器的内容与寄存器的内容与寄存器器0的内容相同,的内容相同,那么改变程序计那么改变程序计数器的值。数器的值。指指令令转移指令的执行比较特殊,例如:指令转移指令的执行比较特殊,例如:指令B258B258的译码的译码 1、转移指令需用到指令规定的运算对象之外的寄存器、转移指令需用到指令规定的运算对象之外的寄存器2、转移指令是唯一能够改变程序计数器的值的指令、转移指令是唯一能够改变程序计数器的值的指令程序执行 1. 1. 程序执行的一个例子程序执行的一个例子l156C156Cl166D166Dl50565056l3
31、06E306ElC000C000假定该程序存放在从假定该程序存放在从地址地址A0A0开始的连续的开始的连续的地址里地址里程序执行1. 1. 程序执行的一个例子程序执行的一个例子程序的执行1. 1. 程序执行的一个例子程序执行的一个例子程序的执行1. 1. 程序执行的一个例子程序执行的一个例子l156C156Cl166D166Dl50565056l306E306ElC000C000? ?程序存放在程序存放在A0-A9A0-A9,它所操作的数据它所操作的数据放在哪里?放在哪里?程序的执行2 2. . 程序程序与数据与数据l 程序和数据都存放在主存储器中程序和数据都存放在主存储器中,机器本身不知道哪
32、里是程序,机器本身不知道哪里是程序,哪里是数据。哪里是数据。l 如果错误的把一段数据的起始地址填写到程序计数器中,控制如果错误的把一段数据的起始地址填写到程序计数器中,控制部件将会把这段数据当作程序去执行。部件将会把这段数据当作程序去执行。 程序和数据同时存放在存储器中的优点:程序和数据同时存放在存储器中的优点:l 一个程序可以操作自身,使之具有学习的能力。一个程序可以操作自身,使之具有学习的能力。l 一个程序也可以把其它的程序当作数据操作。一个程序也可以把其它的程序当作数据操作。程序的执行P P6262 问题与练习问题与练习算术/逻辑指令 循环移位和移位运算循环移位和移位运算l 循环移位循环
33、移位(circular shiftcircular shift或或rotationrotation)l 逻辑移位逻辑移位(logical shiftlogical shift)l 算术移位算术移位(arithmetic shiftarithmetic shift)位模式位模式A3循环右移循环右移1位位 由由A3(十六进制)(十六进制)表示的位模式表示的位模式各位向右移各位向右移1位。位。最右面的位最右面的位“移出移出”了,把它填在另一了,把它填在另一端的空位上端的空位上最后的位模式,它最后的位模式,它用用D1(十六进制)(十六进制)表示表示与其他设备的通信l CPUCPU与主存储器组成了一个计
34、算机的与主存储器组成了一个计算机的核心核心 在这一节中,我们将称这个核心为计算机在这一节中,我们将称这个核心为计算机l 在本节中,我们将研究在本节中,我们将研究“计算机计算机”如何与外部设备通信的如何与外部设备通信的 例如:磁盘、打印机、键盘、鼠标、监视器等例如:磁盘、打印机、键盘、鼠标、监视器等与其他设备的通信1. 1. 控制器的作用控制器的作用 一台一台“计算机计算机”(核心)与其他设备之间的通信通常是由(核心)与其他设备之间的通信通常是由我们称为控制器的中间设备处理的。我们称为控制器的中间设备处理的。l 对于个人计算机来说,控制器就是一块电路板,它是插在计对于个人计算机来说,控制器就是一
35、块电路板,它是插在计算机的主板上的。算机的主板上的。l 每个控制器本身通常就是一个小的计算机,它有自己的存储每个控制器本身通常就是一个小的计算机,它有自己的存储电路和电路和CPUCPU。与其他设备的通信与其他设备的通信与其他设备的通信l 控制器把信息和数据在两种形式之间转换控制器把信息和数据在两种形式之间转换: 一是与计算机内部特征相适应的形式一是与计算机内部特征相适应的形式 二是与所连接的外部设备相适应的形式二是与所连接的外部设备相适应的形式l 每个控制器都是为特定类型的设备设计的,彼此不能通用。每个控制器都是为特定类型的设备设计的,彼此不能通用。 甚至是同一类型的两个外部设备,它们彼此的控
36、制器也不相同。甚至是同一类型的两个外部设备,它们彼此的控制器也不相同。例如:老式磁盘系统的控制器对新式硬盘就不适用。例如:老式磁盘系统的控制器对新式硬盘就不适用。与其他设备的通信 CPUCPU与控制器的种通信方式:与控制器的种通信方式:(1 1)端口端口 在某些计算机中,机器语言提供了在某些计算机中,机器语言提供了额外的运算码额外的运算码用于控用于控制器的制器的LOADLOAD和和STORE-STORE-这些运算码我们称之为这些运算码我们称之为I/OI/O指令。指令。 I/OI/O指令通过编址系统来标识各种各样的控制器。指令通过编址系统来标识各种各样的控制器。赋给赋给每个控制器一个唯一的地址,
37、我们称为每个控制器一个唯一的地址,我们称为I/OI/O地址,也叫做端地址,也叫做端口口与其他设备的通信 (2 2) 存储器映射输入存储器映射输入/ /输出输出在这种方式中,在这种方式中,CPUCPU使用与存储器通信使用与存储器通信相同的运算码相同的运算码来来和各种控制器通信和各种控制器通信 CPUCPU如何区分当前通信的对象是某个控制器还是主存如何区分当前通信的对象是某个控制器还是主存储器呢?储器呢? 每个控制器被设计成响应唯一的一组主存储器的地址,每个控制器被设计成响应唯一的一组主存储器的地址,而主存储器被设计成忽略对这些地址的引用(而主存储器被设计成忽略对这些地址的引用(即:主即:主存储器
38、不能使用这些地址)。存储器不能使用这些地址)。与其他设备的通信 存储器映射输入存储器映射输入/ /输出输出与其他设备的通信2.2.直接内存存取直接内存存取-DMA-DMA 控制器直接存取主存储器的能力称为控制器直接存取主存储器的能力称为-DMA-DMA 如图如图2.132.13中所示,控制器是连接在总线上的,当中所示,控制器是连接在总线上的,当CPUCPU不使不使用总线时,控制器可以利用总线与主存储器通信。用总线时,控制器可以利用总线与主存储器通信。 DMA DMA的好处在于,它大大提高了计算机的性能的好处在于,它大大提高了计算机的性能与其他设备的通信冯冯诺依曼瓶颈诺依曼瓶颈 位模式必须在位模
39、式必须在CPUCPU与主存储器、与主存储器、CPUCPU与控制器、各个控制器与控制器、各个控制器与主存储器之间进行传送。与主存储器之间进行传送。 协调总线上的数据传输就是一个重要的研究课题。协调总线上的数据传输就是一个重要的研究课题。 即使是杰出的设计,即使是杰出的设计,中央总线也可能成为中央总线也可能成为CPUCPU与控制器竞争与控制器竞争总线存取的障碍总线存取的障碍 这种障碍称为这种障碍称为 冯诺依曼瓶颈冯诺依曼瓶颈l DMA DMA的使用对于增加计算机总线所处理的通信量有决定性的影响。的使用对于增加计算机总线所处理的通信量有决定性的影响。与其他设备的通信3.3.握手握手l 在计算机两个部
40、件之间的数据传输很少是单向的。在计算机两个部件之间的数据传输很少是单向的。 例如:例如: 打印机打印机l 握手:计算机与外部设备之间交换设备状态的信息,协调握手:计算机与外部设备之间交换设备状态的信息,协调它们之间的活动的过程。它们之间的活动的过程。l 握手通常涉及一个握手通常涉及一个状态字状态字 状态字是一个位模式状态字是一个位模式,由外部设备生成并发送给控制器。,由外部设备生成并发送给控制器。它的各个二进制为反映了该设备的各种状态。它的各个二进制为反映了该设备的各种状态。与其他设备的通信l 4.4.流行的通信媒介流行的通信媒介 计算机设备间的通信的两种方式:串行、并行计算机设备间的通信的两
41、种方式:串行、并行 并行通信并行通信:若干信号同时传输,每个信号都在各自的:若干信号同时传输,每个信号都在各自的“线路线路”上。即:上。即:数据在多个信道上同时传输数据在多个信道上同时传输。数据线数目与传输数据相同。数据线数目与传输数据相同。速度快,但是链路复杂。如:计算机的内部总线。速度快,但是链路复杂。如:计算机的内部总线。 串行通信串行通信:指在一条信号线上一个信号节一个信号地传输。即:指在一条信号线上一个信号节一个信号地传输。即:数据数据在一个信道上一位一位依次传输在一个信道上一位一位依次传输。数据线数目与与传输数据无关。数据线数目与与传输数据无关。优点是只需要一条相对简单的数据路径,
42、可以优点是只需要一条相对简单的数据路径,可以在短距离内提供相对高速在短距离内提供相对高速的的数据传输。数据传输。与其他设备的通信串行通信并行通信与其他设备的通信流行的通信媒介流行的通信媒介 MODEMMODEM(调制解调器)(调制解调器) DSL DSL(数字用户电路)(数字用户电路) OPTICAL FIBRE OPTICAL FIBRE (光纤)(光纤) CATV(CATV(有线电视有线电视) ) WIRELESS COMMUNICATION WIRELESS COMMUNICATION (无线通信)(无线通信)与其他设备的通信 5. 5. 数据通信速率数据通信速率 传输数据位的速率是以每
43、秒传输数据位的速率是以每秒比特比特数(数(bits per secondbits per second,bpsbps)度量的。度量的。常用的单位有:常用的单位有:l kbps kbps(千(千bpsbps,等于,等于10103 3bpsbps)l Mbps Mbps(兆(兆bpsbps,等于,等于10106 6bpsbps)l Gbps Gbps(吉(吉bpsbps,等于,等于10109 9bpsbps)与其他设备的通信. . 数据通信速率数据通信速率 多路复用技术多路复用技术一条高速的主干链路同时为多条低速的接入链路提供服务,也就是使得网络干线可以同时运载大量的语音和数据传输。常见的多路复用
44、技术包括频分多路复用(FDM)、时分多路复用(TDM)、波分多路复用(WDM)和码分多路复用(CDMA)。带宽带宽l 通常一条线路的带宽大致等于该线路的最大传输速度l 称某条通信线路有较高带宽,等于说它的传输速率较快与其他设备的通信计算机调制器模拟通信信道计算机解调器调制速率(baud)数据传输速率(bps)串行通信的例子:串行通信的例子: 现行的电话系统现行的电话系统与其他设备的通信l 调制解调器(调制解调器(MODEMMODEM),把位模式和可听的声调相互转换),把位模式和可听的声调相互转换l 实际上,实际上,MODEMMODEM就是用不同频率的声调来表示位模式就是用不同频率的声调来表示位
45、模式与其他设备的通信调幅、调频、调相调幅、调频、调相程序的执行P P 问题与练习问题与练习其他体系结构 1. 1. 流水线流水线吞吐量(吞吐量(throughputthroughput):机器在给定时间内完成的任务总量。机器在给定时间内完成的任务总量。流水线技术(流水线技术(pipeliningpipelining):允许在一个机器周期内,取指、译允许在一个机器周期内,取指、译码、执行的步骤重叠执行。码、执行的步骤重叠执行。是增加计算机吞吐量的一种方法。是增加计算机吞吐量的一种方法。其他体系结构 2. 2. 多处理器计算机多处理器计算机流水线技术是迈向并行处理技术(流水线技术是迈向并行处理技术
46、(parallel processingparallel processing)的第一步)的第一步。真正的并行处理需要多个处理单元。真正的并行处理需要多个处理单元。()将多个处理单元连接到同一个主存()将多个处理单元连接到同一个主存采用多核的采用多核的单指令流单数据流(单指令流单数据流(SISDSISD)多指令流多数据流多指令流多数据流(MIMDMIMD):不同的指令在不同的数据集上操作。不同的指令在不同的数据集上操作。()将许多小型机器聚集成大的计算机()将许多小型机器聚集成大的计算机采用集群的方式采用集群的方式单指令流多数据流(单指令流多数据流(SIMDSIMD)实验报告1l 实验名称:使用机器语言编程实验名称:使用机器语言编程l 实验内容:实验内容: 对于主存中地址为对于主存中地址为F0、F1、F2中的中的3个数,使用书中个数,使用书中的机器语言编写程序:判断是否存在某一个数是另外两个数的机器语言编写程序:判断是否存在某一个数是另外两个数的和。如存在,将此数存入地址的和。如存在,将此数存入地址A0中,否则地址中,否则地址20中保存中保存00. 要求写出地址、指令、指令说明要求写出地址、指令、指令说明。(自由设定程序的起始地址) 注意: 1.请将作业写在实验报告纸上; 2.最晚时间为11月4日。3.雷同作业会按未交对待哟。