版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 处理器,3. 1 处理器的指令集 3. 2 处理器的基本组成与工作过程 3. 3 从CISC到RISC 3. 4 Intel 80 x86系列微处理器 3. 5 ARM系列微处理器,2020/7/27,第3章 处理器,3. 1 处理器的指令集,3. 1. 1 概述 人们与计算机交流所用的“词汇”叫做“指令(Instruction)”,所有可以采用的“词汇”组成的集合叫做“指令集 (Instruction Set) ”,这些“词汇”按照一定的顺序组合就形成了程序(Program)。 在国内,“指令集”常称为“指令系统”。,2020/7/27,第3章 处理器,3. 1. 1 概述,计算机能
2、直接识别的是由0和1排列而成的指令,即所谓“机器指令”。使用不方便。 汇编语言是基于英文的机器指令助记符。例如,某个机器指令原来用0101表示加法运算,现在引入助记符ADD或add来表示0101,方便了人们编写程序。 按汇编语言书写的程序叫做汇编语言源程序,汇编语言源程序由汇编程序(Assembler)转换成机器指令,供计算机接受并执行。,2020/7/27,第3章 处理器,3. 1. 1 概述,汇编语言的提出是计算机技术的一大进步,体现了计算思维的一个重要概念抽象。 计算机程序设计语言的发展过程就是 不断抽象的过程。通过抽象,程序设计语言具有了更好的可编程性、可移植性、可重用性。,2020/
3、7/27,第3章 处理器,3. 1 处理器的指令集,3. 1. 2 指令的操作码与操作数,3. 1. 1 概述,冯诺依曼型计算机机器指令的逻辑格式,规定了指令所具有的功能。课程中主要用汇编语言助记符表示。,指令所要处理的数据。常以数据所在存储单元的地址形式给出。也称 “指令地址码”。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,一条指令中,操作数可能有一个、两个或三个,甚至更多。 当然,操作数的个数也可以是零,即指令没有操作数,如停机指令。 在这些操作数中,作为处理单元输入的叫源操作数(Source Operand),用于存放处理结果的叫目的操作数(Destina
4、tion Operand)。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,指令中所能表示的操作数数据类型,即能够被计算机硬件直接辨识的操作数数据类型,称为“数据表示”。 常见的“数据表示”有定点数(含有符号数和无符号数)、浮点数(含单精度浮点数和双精度浮点数)、字符、逻辑数(又称布尔型数据)。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,“堆栈(Stack)”是一个重要的数据结构,广泛应用于子程序调用和中断服务等领域。堆栈的存取原则是后进先出(Last In First Out, LIFO)。对堆栈的操作都是针对栈顶单元进行的,有“压
5、入(PUSH)”和“弹出(POP)”两条指令。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,用专门的硬件设备来实现的堆栈称为级联堆栈或硬件堆栈。为了降低硬件成本,大多数计算机(特别是微型计算机)常用软件来实现堆栈,即在内存中开辟一个堆栈区,并在处理器中设置指示堆栈栈顶单元地址的“堆栈指针寄存器(Stack Pointer, SP)”来管理这个堆栈。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,相对于硬件堆栈,软件堆栈有三个优点: 可以有较大的深度。 可以设置多个堆栈。 除了专门的堆栈指令PUSH和POP外,还可以使用任何访问主存的指令
6、来访问堆栈中的数据。,2020/7/27,第3章 处理器,3. 1. 2 指令的操作码与操作数,只有标量数据表示和标量指令的处理器叫标量处理器,这是最常见、最通用的处理器。 带有向量数据表示和向量指令的处理器叫向量处理器,例如我国于20世纪80年代研制的银河-1超级计算机就装备有向量处理器。,2020/7/27,第3章 处理器,3. 1 处理器的指令集,3. 1. 3 寻址方式,所谓寻址方式(Addressing)指的是指令按照何种方式寻找或访问到所需的操作数或信息。 寻址方式分为指令寻址和数据寻址。 指令寻址是为了找到下一条指令; 数据寻址是为了找到本条指令所需的操作数。,2020/7/27
7、,第3章 处理器,3. 1. 3 寻址方式,分为顺序寻址和跳跃寻址两种。 顺序寻址就是程序计数器PC中的值就是下一条指令的存储地址。每读取一次PC后,PC自动加1,指向下一条指令。 跳跃寻址则是先由当前指令改写PC的内容,然后计算机读取PC,根据PC的值访问主存储器,取下一条指令。,1. 指令寻址,2020/7/27,第3章 处理器,改写PC的指令有“跳转指令(Jump )”和“分支指令(Branch )”。在国内,“跳转指令”常称为“无条件转移指令”,“分支指令”常称为“条件转移指令”。 这两种指令既可直接赋予PC一个新的值,也可在PC现有值的基础上增加或减少一定数量。后者也称“相对寻址”或
8、“PC相对寻址”,其中增加或减少的数量叫做“相对位移量”,它是一个补码表示整数。,1. 指令寻址,2020/7/27,第3章 处理器,3. 1. 3 寻址方式,立即数寻址 直接寻址 间接寻址 堆栈寻址,1. 指令寻址,2. 数据寻址,寄存器寻址 寄存器间接寻址 基址寻址 变址寻址,2020/7/27,第3章 处理器,(1)立即数寻址 (Immediate Addressing) (2)直接寻址 (Direct Addressing),2. 数据寻址,在指令中直接给出操作数的数值。只要取到指令,就可以立即处理指令中的操作数,这种操作数叫做“立即数” 。,在指令中直接给出操作数内存地址。 “直接寻
9、址”执行时间较长。另外,由于指令长度的限制,指令中采用“直接寻址”的操作数的个数一般不超过两个,所能寻址的范围较小。,2020/7/27,第3章 处理器,(3)间接寻址 (Indirect Addressing),2. 数据寻址,指令中给出的主存地址中存放的并不是操作数,而是操作数的内存地址。先按指令给出的地址访问主存读出操作数的存放地址,然后再次访问主存,访问目标操作数。 “间接寻址”的优点一是扩大了主存中操作数的寻址范围,二是使用同一条指令可以访问/处理存放于不同主存单元中的数据。,2020/7/27,第3章 处理器,(4)寄存器寻址 (Register Addressing),2. 数据
10、寻址,操作数是寄存器名(即寄存器编号),指令要处理的数据就存储在该寄存器中。 处理器的寄存器数量很少,所以寄存器名很短,采用“寄存器寻址”的指令格式中可以放下两个或三个寄存器地址。 优点是增加了指令中操作数的个数,增强了指令的功能;获取操作数的速度快。,2020/7/27,第3章 处理器,(5)寄存器间接寻址 (Register Indirect Addressing),2. 数据寻址,存储在寄存器中的是操作数的内存地址。在读取寄存器后,要按照读取值访问内存,才能获得真正的操作数。 优点是,通过改变寄存器中的内存地址,可用相同的指令处理不同的数据;指令较短,执行速度较快 。,2020/7/27
11、,第3章 处理器,(6)基址寻址 ( Base Addressing ),2. 数据寻址,“逻辑地址”是程序员编写程序时使用的地址。 “主存物理地址”是程序段/数据段在主存中的实际存放地址。 程序段/数据段的“逻辑地址”都是从零开始编址的。而程序段/数据段每次装入主存的起始地址是不确定的,每次运行时,某条指令或某个数据的“主存物理地址”也是不确定的。但是这条指令或这个数据的“逻辑地址”是固定的。,2020/7/27,第3章 处理器,(6)基址寻址 ( Base Addressing ),2. 数据寻址,为了实现“逻辑地址”到“主存物理地址” 的转换,可以在处理器内部设置一个专门存放程序段/数据
12、段在主存中起始地址的寄存器,称起始地址为“基地址”,简称“基址”,称该寄存器为“基址寄存器”。这样在执行时将“逻辑地址”与基址寄存器中的值相加即得到指令或数据的“主存物理地址”。 指令中给出的“逻辑地址”又称为相对于基址的“位移量”,位移量是一个有符号的整数,常用补码表示。,2020/7/27,第3章 处理器,(7)变址寻址 (Indexed Addressing),2. 数据寻址,为支持用循环结构处理数组/向量而提出。 寻址过程:将数组/向量的起始地址作为操作数在指令中给出,将数组/向量的元素下标i存放在一个专门的寄存器变址寄存器中。指令执行时,用变址加法器将指令中的起始地址与变址寄存器中的
13、内容相加,得到数组/向量元素的地址。 由于对数组/向量的访问既可能是顺序访问,又可能是随机访问,这样只需改变变址寄存器中的i值,就可/访问到数组/向量的任一元素。,2020/7/27,第3章 处理器,2. 数据寻址,为了支持同时处理多个数组或向量,处理器可设置多个变址寄存器。例如,8086微处理器有两个变址寄存器,一个是存放源操作数变址值的寄存器SI,另一个是存放目的操作数变址值的寄存器DI。此时,采用 “变址寻址”指令中除了要给出数组/向量的起始地址外,还需指明使用的是哪个变址寄存器。 变址寻址还可与其他寻址方式结合使用。例如与基址寻址结合可得到“基址变址寻址”,与“间接寻址”结合可以得到“
14、先变址后间接寻址”等。,2020/7/27,(7)变址寻址 (Indexed Addressing),第3章 处理器,(8)堆栈寻址,2. 数据寻址,采用“堆栈寻址”的前提是处理器支持堆栈数据结构,设置有“堆栈指针寄存器SP”。 “堆栈寻址”无须给出操作数的存储地址,只要声明操作数采用堆栈寻址,机器就会根据栈顶指示寄存器的内容找到栈顶单元,然后对栈顶单元进行弹出或压入操作。,2020/7/27,第3章 处理器,根据堆栈的增长方向,基于主存储器实现的堆栈分为: 递增堆栈(Ascending Stack) ,也称向上增长堆栈。随着数据的压入,这种堆栈向高地址方向增长; 递减堆栈(Descendin
15、g Stack) ,也称向下增长堆栈。随着数据的压入,这种堆栈向低地址方向增长。,2020/7/27,(8)堆栈寻址,第3章 处理器,根据SP所指示栈顶单元的属性,堆栈也可分为: 满堆栈(Full Stack) 。SP指示栈顶单元存储的是最后压入数据。 空堆栈(Empty Stack) 。SP指示栈顶单元用于接收下一个要压入的数据。,2020/7/27,(8)堆栈寻址,第3章 处理器,2020/7/27,2009年全国研究生入学统一考试计算机专业试题 某机器字长16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字
16、节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是 。 A2006H B2007H C2008H D2009H,2011年全国研究生入学统一考试计算机专业试题 偏移寻址通过将某个寄存器内容与一个形式地址相加而生成有效地址。下列寻址方式中,不属于偏移寻址的是 。 A.间接寻址 B.基址寻址 C.相对寻址 D.变址寻址,第3章 处理器,3. 1 处理器的指令集,3. 1. 4 指令的基本功能,通用计算机系统的指令集可分为5类基本指令: (1)算术/逻辑/移位指令(简称算逻指令) (2)数据传送指令(简称数传指令) (3)控制转移指
17、令 (4)输入/输出指令 (5)处理器控制及调试指令,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(1)算逻指令,定点加法指令ADD 定点减法指令SUB 定点乘法指令MUL 定点除法指令DIV 加1指令INC 减1指令DEC 比较指令CMP,浮点加法指令ADDF 浮点减法指令SUBF 浮点乘法指令MULF 浮点除法指令DIVF,十进制数算术运算指令,使用这些指令时,要注意它们对处理器中状态标志位的影响,算术指令,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(1)算逻指令,“与”运算指令AND “或”运算指令OR “非”运算指令NOT “异或”运算
18、指令XOR 位测试 位清除 位求反,算术左移指令 算术右移指令 逻辑左移指令 逻辑右移指令 带进位循环左移指令 不带进位循环左移指令 带进位循环右移指令 不带进位循环右移指令,逻辑指令,移位指令,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(2)数传指令,根据数据的流向分: 寄存器与寄存器之间的数据传送 寄存器与主存储器单元之间的数据传送 寄存器与堆栈之间的数据传送 堆栈与主存储器单元之间的数据传送 内存单元与内存单元之间的数据传送,2020/7/27,第3章 处理器,(2)数传指令,根据传输的功能分: 一般传送指令 实现数据复制功能,即把源操作数的内容写入目的操作数。
19、其汇编语言助记符通常为MOV。 在有些计算机上,将主存储器单元的内容写入寄存器的数据传送指令,其汇编语言助记符为LOAD;将寄存器内容写入主存储器单元的数据传送指令,其汇编语言助记符为STORE。,2020/7/27,第3章 处理器,(2)数传指令,根据传输的功能分: 堆栈操作指令 压入栈顶PUSH 弹出栈顶POP PUSH的源操作数和POP指令的目的操作数,一般是寄存器号,也可能是主存储器单元地址.,2020/7/27,第3章 处理器,(2)数传指令,上述两类数据指令的数据流动是单方向的。要实现两个数据的交换,需要编写三条指令并额外占用一个存储单元。因此大多数计算机都提供“数据交换指令”来简
20、化双向数据流动的实现,如Intel 80 x86中的XCHG指令。 这类指令的源操作数和目的操作数一般都是寄存器,至多允许源操作数是主存储器单元。 数据交换指令的执行时间一般较长。,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(1)算逻指令 (2)数传指令 (3)控制转移指令,跳转指令JUMP 分支指令 子程序调用CALL/返回指令RET 循环控制指令LOOP 中断系统指令,将指令操作数的内容写入PC之中,强制改变指令执行的顺序。 也称无条件转移指令,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(3)控制转移指令,跳转指令JUMP 分支指令,根据
21、特定条件(往往是上一条指令的执行结果),决定程序是顺序执行还是转移到一个新的位置执行,即有条件地改变指令执行的顺序。也称条件转移指令。 条件转移指令可能依据的条件有: 为0、为正/负数、发生进位/借位、为奇数/偶数、发生溢出或以上条件的组合。,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(3)控制转移指令,分支指令,条件转移指令又分为“绝对转移”和“相对转移”两种。 对于“绝对转移”,当条件满足时,计算机将把该指令中所含操作数的内容直接写入PC中。 对于“相对转移”,当条件满足时,计算机将把该指令中所含操作数的内容与PC中的内容相加后,把结果写入PC中。,2020/7/
22、27,第3章 处理器,常见的条件转移指令有: 等于零转移BEQ 不等于零转移BNEQ 小于转移BLS 大于转移BGT 小于等于转移/不大于转移BLEQ 大于等于转移/不小于转移BGEQ 不带符号小于转移BLSU 不带符号大于转移BGTU 不带符号小于等于转移/不带符号不大于转移BLEQU 不带符号大于等于转移/不带符号不小于转移BGEQU,没有进位转移BCC 有进位转移BCS 没有溢出转移BVC 有溢出转移BVS,2020/7/27,第3章 处理器,(3)控制转移指令,跳转指令JUMP 分支指令 子程序调用CALL/返回指令RET,在程序中,有一些具有特定功能的程序段会被反复使用。为了提高程序
23、的可读性、可重用性和可维护性,人们将这样的程序段独立出来,将其定义成一个子程序。 这样,在需要执行特定功能时,主程序中不再需要编写一个程序段,而只需要编写一条调用子程序的指令即可。,2020/7/27,第3章 处理器,子程序调用CALL/返回指令RET,调用子程序的指令格式: CALL Subprogram_Name 功能是,首先把当前程序的断点(也称主调程序的返回地址,即当前程序计数器PC中的值)保存到系统堆栈中,然后由子程序名Subprogram_Name求得子程序的入口地址,最后把子程序的入口地址写入PC,从而将程序控制转移至被调子程序。 调用子程序指令CALL一般都与“返回指令RET”
24、一起配合使用。RET指令的功能是把保存在堆栈中的程序断点弹回到PC之中。,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(1)算逻指令 (2)数传指令 (3)控制转移指令 (4)输入/输出指令,为了完成主机与外设之间信息交换的各种操作而设置,包括: 启动输入/输出设备、停止输入/输出设备、测试输入/输出设备及数据的输入或输出等指令。 例如,Intel 80 x86中的输入指令为IN指令,输出指令为OUT指令。,2020/7/27,第3章 处理器,3. 1. 4 指令的基本功能,(1)算逻指令 (2)数传指令 (3)控制转移指令 (4)输入/输出指令 (5)处理器控制及调试
25、指令,包括各种设置/清除标志位(如陷阱标志、中断允许标志、处理器工作状态标志位)指令、特权指令、进程同步指令、调试指令、停机指令(HALT)等。 调试指令用于硬件或软件的调试。硬件调试指令包括钥匙位置、开关状态的读取指令,重要寄存器和主存储器单元内容的显示等。软件调试指令包括断点的设置及跟踪指令,自陷阱指令等。,2020/7/27,第3章 处理器,对于面向多用户系统的处理器,为了保证信息安全,处理器的工作状态被分为核心态(Kernel mode /System mode)和用户态(User mode)。 仅能在核心态(也叫管理态/管态)下运行的指令称为特权指令(Privileged instr
26、uction)。用户态(也叫目态)下的程序要想执行管态下的功能(由操作系统实现并提供用户使用)必须通过执行“访管指令”来实现。,2020/7/27,第3章 处理器,此外,还有:空操作指令NOP和等待指令WAIT 一般通用计算机应具有的指令及其功能参见表4-1,访管指令是一条可以在目态下执行的指令,用户程序中凡是要调用操作系统功能的地方就安排一条访管指令。当执行到访管指令时,处理器就自愿地产生一个中断事件(访管中断),暂停用户程序的执行,陷入管态,让操作系统为用户服务。,2020/7/27,第3章 处理器,3. 1 处理器的指令集,3. 1. 5 指令的格式,涉及指令的操作码长度、指令“地址制”
27、及采用的寻址方式、指令长度等三方面的问题。,2020/7/27,第3章 处理器,3. 1. 5 指令的格式,(1)指令操作码的长度有定长和不定长两种选择 选择定长的操作码可以简化指令译码器的设计与实现;选择不定长操作码(也称扩展操作码)可使常用指令拥有较短的操作码而不常用指令拥有较长的操作码(即哈夫曼压缩编码) ,从而压缩程序所占的存储空间。,2020/7/27,第3章 处理器,3. 1. 5 指令的格式,(2)在一条指令中出现几个操作数地址,这是指令的“地址制”所要解决的问题。一般情况下,指令中地址的个数,可以取4,3,2,1,0个。 在四地址指令中,两个地址分别指示两个源操作数,一个地址指
28、示目的操作数,最后一个地址指示下一条指令的存储单元。,2020/7/27,第3章 处理器,三地址指令是在四地址指令的基础上,将指令中下一条指令的地址省略掉,改用PC来指示下一条指令的地址。 两地址指令是在三地址指令的基础上,将一个源操作数同时作为目的操作数。 一地址指令是在两地址指令的基础上,隐含使用某个寄存器(如ACC)作为一个源操作数或目的操作数。 停机指令、清除/设置特定标志位指令无须操作数,即为零地址。,2020/7/27,第3章 处理器,“地址制”设计或改进的目的是为了压缩指令长度,缩短指令的执行时间。在相同的指令长度内,减少地址个数可以扩大所能表示指令的条数或操作数的寻址范围。 同
29、一条指令中不同操作数可采用不同的寻址方式 例如,一条指令中的操作数可以都存放在寄存器里,也可以把一个操作数存放在寄存器里,而另一个操作数存放在主存里。存放在主存里的操作数可以按基址寻址、变址寻址或间接寻址。,2020/7/27,第3章 处理器,3. 1. 5 指令的格式,指令长度可以是固定或变化的。固定长度的指令便于指令的存取和译码,但会限制操作数个数的增加和复杂寻址方式的使用;而变化长度的指令的特点正好相反。 例如,IBM S/ 370指令采用定长的8位操作码,有单地址、两地址和三地址三种地址制,不同的操作数可以采用不同的寻址方式,指令字长有16位、32位和48位三种。,2020/7/27,
30、第3章 处理器,3. 1 处理器的指令集,3. 1. 1 概述 3. 1. 2 指令的操作码与操作数 3. 1. 3 寻址方式 3. 1. 4 指令的基本功能 3. 1. 5 指令的格式 3. 1. 6 面向多媒体处理的增强指令,请同学们自行阅读、了解。,2020/7/27,第3章 处理器,3. 1 处理器的指令集 3. 2 处理器的基本组成与工作过程,3. 2. 1 处理器的基本功能和基本组成 1处理器概述 从外观上看,处理器是矩形或正方形的块状物,通过密密麻麻的管脚与主板相连。 实现处理器内部各个单元之间信号传输的线路称为片内总线,它又分为片内控制总线和片内数据总线。 用于实现处理器与主存
31、储器和输入/输出设备之间信号传输的线路称为片外总线,简称总线。,2020/7/27,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成 1处理器概述,除了电源引脚(Vcc)和接地引脚(GND)外,大部分引脚都用于信号传输。按照传输信号类别的不同,这些引脚可以分为数据总线引脚、地址总线引脚和控制总线引脚。 若数据总线的宽度是8位,则数据总线引脚将被命名为D0,D1,D7;若数据总线的宽度是16位,则数据总线引脚将被命名为D0,D1,D15。32位的数据总线可类推。,2020/7/27,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成 1处理器概述,若处理器的访存地址宽度是10位
32、,则地址总线引脚将被命名为A0,A1,A9;若访存地址宽度是20位,则地址总线引脚将被命名为A0,A1,A19。32位的地址总线可类推。 常见的控制总线引脚有时钟CLK、复位RESET、总线请求HRQ、总线允许HLDA、中断请求INTR、中断响应INTA、读RD、写WR等。,2020/7/27,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成 2处理器的基本功能,处理器的工作就是周而复始地执行指令,它的基本功能包括取指令、分析指令、取数据、处理数据、写回结果。 (1)取指令。处理器根据PC给出的主存地址访问主存储器,取出一个标准字长的指令,将其送入处理器内部专门存放当前指令的指令寄存
33、器 IR,然后PC加1。,2020/7/27,第3章 处理器,(2)分析指令。处理器将IR中的操作码部分取出送入指令译码器(Decoder)进行译码。根据译码结果判断出指令的功能(即指令将要执行什么操作)、操作数的寻址方式以及操作数的数据类型,形成源操作数或目的操作数的物理地址。 (3)取数据。根据源操作数的物理地址访问主存,取出源操作数。源操作数将被送入处理器内部的数据寄存器,如累加器ACC。,2020/7/27,第3章 处理器,(4)处理数据。处理器将源操作数送入运算器,并根据指令译码结果启动运算器的相应操作对数据进行处理。处理结果存回通用数据寄存器。 (5)写回结果。如果指令要求将结果写
34、回主存,那么处理器将根据目的操作数的地址,将目的操作数写入主存。,2020/7/27,3. 2. 1 处理器的基本功能和基本组成 2处理器的基本功能,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成 3处理器的基本组成,访问主存是处理器经常执行的一个公共操作。为此,处理器设置了专门存放访存地址的寄存器MAR、专门存放与主存交换数据的寄存器MDR/MBR。 在用户看来,只要把主存地址送入MAR,启动读命令,在一个访存周期内,目标数据就会从主存被读入到MDR中;或者只要把主存地址送入MAR并把目标数据送入MDR,启动写命令,在一个访存周期内,目标数据就会从MDR被写回到主存中。,2020
35、/7/27,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成 3处理器的基本组成,处理数据的功能单元叫算术逻辑单元ALU,它的功能是对数据进行各种算术运算或逻辑运算。,2020/7/27,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成,2020/7/27,第3章 处理器,3. 处理器的基本组成,根据冯诺依曼型计算机的特点,处理器的所有工作都是在控制单元CU的指挥下完成的。 CU的功能是,通过对指令的分析(译码),按照一定的时序,发出控制信号,使CPU在控制信号的驱动下,完成相应指令的功能。,2020/7/27,第3章 处理器,3. 处理器的基本组成,处理器内部设置有大量的
36、寄存器。高级语言程序员,无须了解这些寄存器。中级程序(如C语言)程序员,可能需要了解一些寄存器的知识。汇编语言程序员需要对寄存器有深入的了解。 但是即使是汇编语言程序员,处理器内部的某些寄存器也是无须关心的,如MAR和MDR。即,MAR和MDR对汇编程序员是“透明的”。,2020/7/27,第3章 处理器,寄存器分为“用户可见的寄存器”和“用户透明的寄存器”,这里的“用户”是指汇编语言程序员。 “用户可见的寄存器”包括通用数据寄存器、基址寄存器、变址寄存器、FR、PC等 “用户透明的寄存器”包括MAR、MDR、ALU的输入寄存器A和B以及输出寄存器SUM,3. 处理器的基本组成,2020/7/
37、27,第3章 处理器,目前,中断已经成为计算机/处理器不可或缺的功能。没有中断,很多现代计算机系统的功能(比如多用户、多任务)都无法实现。 所谓中断,是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机会在适当时机暂停现行程序的运行,转向执行处理这些异常情况或特殊请求的程序(即中断处理程序或中断服务程序),处理结束后再返回到现行程序的间断处继续执行。,3. 处理器的基本组成,2020/7/27,第3章 处理器,能够发出中断请求的部件或事件,称为“中断源”。为了区分不同请求信号,不同的中断源被赋予了一个不同的“中断类型号”。 由于中断请求信号到来的时间是随机的,处理器不可能随时对它进
38、行处理。通常约定:中断可以中断程序,但不能中断指令。处理器只会在指令执行的末尾,去检测是否有中断请求。若有,并且处理器处于允许响应的状态,则响应中断请求,否则执行下一条指令。,3. 处理器的基本组成,2020/7/27,第3章 处理器,为此,控制总线要增加接收中断请求(Interrupt Request)信号的引脚INTR和发出中断响应(Interrupt Acknowledge)信号的引脚INTA。处理器内部要设置一个“中断允许(Enable Interrupt, EINT)”标志和一个中断状态触发器“INT”。EINT=1,表示允许响应中断请求,否则不允许。响应中断请求后,处理器将进入中断
39、状态INT被置成1。可以通过“开中断(Set Interrupt, STI)”指令将EINT置为1,也可以通过“关中断(Clear Interrupt, CLI)”指令将EINT清成0。,2020/7/27,第3章 处理器,处理器内部与中断有关的逻辑电路称为中断单元,实现中断的所有硬件和软件称为中断系统。 中断技术的详细内容将在第8章中介绍.,2020/7/27,09年计算机专业研究生入学统一考试试题 下列选项中,能引起外部中断的事件是 。 A.键盘输入 B.除数为0 C.浮点运算下溢 D.访存缺页 答:根据中断源位于处理器的内部还是外部,中断分为内部中断和外部中断。内部中断的例子有:除数为0
40、,溢出,非法访问(如越界访问等。外部中断的例子有:来至外设的中断(如键盘输入),来至定时器的时钟中断等。 “访存缺页”属于故障,不是中断。故选A。,第3章 处理器,3. 2. 1 处理器的基本功能和基本组成,2020/7/27,第3章 处理器,3. 2 处理器的组成与工作过程,3. 2. 2 计算机的工作过程,计算机的工作是由处理器的工作来驱动的,所以这里讨论计算机的工作过程主要关注处理器的工作,而处理器的工作就是执行指令。 通常,把处理器取出并执行一条指令称为对指令的解释(Interpret)。 处理器每取出并执行一条指令所需的全部时间叫指令周期。,2020/7/27,第3章 处理器,3.
41、2. 2 计算机的工作过程,在一个指令周期内,处理器所要完成的操作有“取指”和“执行”, “取指”就是将一条指令从主存取入到处理器中,“执行”就是对指令进行译码并完成其指定的操作,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,有的指令采用间接寻址。为了取到操作数,在取指周期之后还有一个访问主存,读取操作数地址的周期,这个周期就是间址周期。,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,不同指令所完成的功能不同,所以它们的指令周期也不尽相同。 例如,无条件转移指令“JUMP TARGET”在取指周期中就可以把转移目标地址“TARGET”写入PC,不
42、再需要执行其他操作,所以无条件转移指令的执行周期就可以省略。 类似的还有空操作指令NOP。,2020/7/27,第3章 处理器,加法指令“ADD X”在执行周期中需要访问地址为X的主存单元取出操作数,将其与ACC中的数据相加,结果存回ACC。该指令取指周期和执行周期中的主要操作都是访问一次主存,其取指周期和执行周期可以设计成等长。 有的指令在执行周期中需要完成较多的操作,那么它的执行周期就要长于取指周期, 乘/除法指令就是这样的指令。,2020/7/27,第3章 处理器,由于不同指令的指令周期不尽相同,为了简化控制,一般将其设计成某个基准周期的整数倍,这个基准周期称为机器周期。机器周期是所有指
43、令执行过程中的一个基准时间。 指令操作分为处理器内部操作和对主存的访问两类。前者完成时间较短,而后者完成时间较长。为了保证在一个机器周期至少能够完成一个指令的基本操作,选取处理器访问一次主存的时间(也称主存周期)作为机器周期。,2020/7/27,第3章 处理器,在一个机器周期内,处理器需要完成若干带有时序限制的微操作,每个微操作的完成也需要一定的时间。为了实现对微操作的控制,处理器用时钟信号CLK来控制每一个微操作命令的产生。 这样,在一个机器周期内又包含了若干时钟周期(也称节拍)。一个节拍的宽度正好等于一个时钟周期。在一个节拍内,处理器完成一个或几个可以同时执行的微操作。,2020/7/2
44、7,第3章 处理器,为了实现各种操作的时序控制,在处理器内部专门设置有时钟部件。 指令周期、机器周期和节拍的关系如下图所示。,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,下面以计算 X + Y 为例来编制控制计算机/处理器工作的程序。 (1)从内存单元X中取数据送入累加器ACC; (2) ACC加上内存单元Y中的数据, 结果存回ACC中; (3) ACC的值存入内存单元Z中; (4)停机。,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,此程序在某模型机上运行,用到的指令如下:,2020/7/27,第3章 处理器,程序存入主存的结果如下,其中分配
45、给变量X,Y和Z的内存单元地址是1100B、1101B和1110B。,2020/7/27,第3章 处理器,执行程序时,管理程序先将程序第一条指令的地址(1000B)送入PC,然后启动执行。,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,2020/7/27,第3章 处理器,2020/7/27,第3章 处理器,3. 2. 2 计算机的工作过程,2020/7/27,第3章 处理器,3. 2 处理器的组成与工作过程,3. 2. 1 处理器的基本功能和基本组成 3. 2. 2 计算机的工作过程 3. 2. 3 采用流水线技术的处理器,请同学们自行阅读、了解。,2020/7/27,
46、第3章 处理器,3. 1 处理器的指令集 3. 2 处理器的基本组成与工作过程 3. 3 从CISC到RISC,上世纪七十年代,系列机的发展,使得计算机的指令系统变得越来越复杂。 例如,VAX-11 拥有 330条指令,指令长度从16位到456位长不等,寻址方式有16种。 这使得CPU的设计变得十分复杂,设计周期延长,设计成本倍增。,3. 3. 1 RISC产生的背景,2020/7/27,某计算机的指令使用频率,2020/7/27,20 80 规律,在典型程序的运行中,80% 的时间执行的只是占指令系统 20% 的少数常用指令。 在CPU控制存储器中,80% 的空间被只占运行时间 20% 的多
47、数复杂指令占用。,3. 3. 1 RISC产生的背景,由于存在着“软硬件等价性原理” ,复杂指令的功能可以由基于简单指令的子程序来完成。 所以人们就产生了一种想法:设计一个只具有简单指令的简单的CPU,2020/7/27,1975年,IBM的John Cocke 领导的一个研究小组率先设计了一个只有120条简单指令的计算机IBM 801 1981年,美国加州大学伯克利分校的David Patterson 设计了一个只有31条指令的简单的微处理器,并将其命名为RISC I,RISC是Reduced Instruction Set Computer的缩写,3. 3. 1 RISC产生的背景,202
48、0/7/27,IBM的John Cocke 也因此获得了国际计算机界的最高奖图灵奖。,此后,RISC技术得到了广泛地接受,几乎所有的微处理器都宣称采用RISC技术。,2020/7/27,采用简单的指令格式、寻址方式的计算机就称为精简指令集计算机RISC (Reduced Instruction Set Computer) 相对而言,具有复杂的指令格式、寻址方式的计算机就称为复杂指令集计算机CISC (Complex Instruction Set Computer),3. 3. 1 RISC产生的背景,2020/7/27,第3章 处理器,3. 3 从CISC到RISC,3. 3. 1 RISC
49、产生的背景 3. 3. 2 RISC的定义,目前,指令条数的多少已不再是区分CISC和RISC的标志, CISC和RISC正在走向融合。绝大多数现代微处理器都宣称采用RISC技术。 对于RISC,目前尚未出现一个能为众人所接受的定义。但是人们更多关注的是RISC的特征,2020/7/27,RISC 的主要特征,选用使用频率较高的一些 简单指令 复杂指令的功能由简单指令来组合,指令 长度固定,只有 LOAD / STORE 指令访存,引入流水技术,一个时钟周期 完成一条指令,组合逻辑 实现控制器,多个 通用 寄存器,采用 优化 的 编译 程序,2020/7/27,RISC的新发展 控制系统部分采
50、用微程序技术; 指令的种类有所增加;,现代RISC具有如下特点 1.面向寄存器结构; 2.重视流水线的执行效率; 3. LOAD/STORE风格 4.重视优化编译技术,2020/7/27,第3章 处理器,3. 3 从CISC到RISC,3. 3. 1 RISC产生的背景 3. 3. 2 RISC的定义 3. 3. 3 指令级并行技术,2020/7/27,请同学们自行阅读、了解。,第3章 处理器,3. 1 处理器的指令集 3. 2 处理器的基本组成与工作过程 3. 3 从CISC到RISC 3. 4 Intel 80 x86系列微处理器,3. 4. 1 Intel 8086/8088 微处理器
51、8086是第一款16位微处理器,问世之初,市场上缺乏与之配套的外围芯片,用8086来构建微型计算机成本很高。为此,Intel公司推出与8086兼容的准16位微处理器8088。8088的通用寄存器组、ALU、指令系统都是按照16位设计的,与8086完全相同,只不过8088的数据引脚是8位的。这样就可以兼容当时已有的一整套的外围芯片。,2020/7/27,3. 4 Intel 80 x86系列微处理器,3. 4. 1 Intel 8086/8088 微处理器,8086/8088微处理器的浮点运算能力和I/O能力相对较弱,为了满足用户对高性能计算的要求,Intel公司还推出了两款协处理器数值运算协处
52、理器8087 和 I/O协处理器8089。 为此,只配置一个8086/8088微处理器的工作模式被定义为最小模式。在这种模式中,所有的总线控制信号都直接由8086或8088发出。相对而言,包含协处理器的微处理器工作模式被定义为最大模式。,2020/7/27,8086/8088 在组成结构上分为: 总线接口部件(Bus Interface Unit, BIU) 执行部件 (Executing Unit, EU) 总线接口部件负责取指令,执行部件负责执行指令,从而构成了一个“两段的流水线”。,取指令1,执行指令1,取指令2,执行指令2,取指令3,执行指令3,2020/7/27,通用寄存器组,AX,
53、BX,CX,DX,外部总线,内部总线,地址加法器,2020/7/27,8086/8088 的 分 段 存 储 结 构,存储器为什么要分段呢? 16位微处理器,常规上管理216 = 64KB的存储空间 这样的存储空间满足不了应用的要求。 用什么方法来扩大呢? 将正常管理的64KB存储空间定义为一个段 让微处理器能够管理多个这样的段 通过分段存储结构,8086/8088能够管理1MB的存储空间。,2020/7/27,8086/8088的分段存储结构,存储器分段后如何来管理呢? 每个段的起始地址称为:段基址或段地址 每个段内的地址称为:段内偏移地址 一个物理存储单元就可以通过“段地址:偏移地址”来唯
54、一确定了 如何管理“段地址”和“偏移地址”呢? 设置多个段基址寄存器 设置多个偏移地址寄存器 都有哪些“段基址寄存器”和“偏移地址寄存器”呢?,2020/7/27,依照用途的不同,可分为如下段,8086/8088的分段存储结构,存储程序(指令)代码。其段基址存放于CS寄存器,段内偏移地址存放于IP寄存器,存储程序定义的变量。段基址存放于DS寄存器,段内偏移地址存放于SI、DI或BX寄存器,管理系统堆栈。段基址存放于SS寄存器,段内偏移地址存放于SP或BP寄存器,存储经过处理的中间变量。段基址存放于ES寄存器,段内偏移地址存放于SI、DI或BX寄存器,2020/7/27,8086/8088 的分
55、段存储结构,由段基址和相对于该段的偏移地址共同描述的地址 逻辑地址,例如: 5000H:2000H,20根地址线所表示的地址 物理地址,2020/7/27,0 0 0 0,段 地 址,如何根据16位的段地址和16位的段内偏移地址来计算20位的物理地址呢?,19 4 3 0,段地址左移四位,20 位 的 物 理 地 址,8086/8088 的分段存储结构,2020/7/27,物理地址的计算方法,段地址左移四位,再加上偏移地址,就得到20位的物理地址。,2020/7/27,3. 4 Intel 80 x86系列微处理器,3. 4. 1 Intel 8086/8088 微处理器,8086/8088的
56、标志分为两类:状态标志和控制标志。 状态标志表示前面操作执行后,算术逻辑单元所处的状态,这些状态常作为后继指令执行的条件。 状态标志有6个,分别是符号标志SF、零标志ZF、奇偶标志PF、进位标志CF、辅助进位标志AF和溢出标志OF。 控制标志是人为设置的,每一个控制标志负责控制某一种特殊的功能。控制标志有三个,分别是方向标志DF、中断标志IF和陷阱标志TF。,2020/7/27,3. 4 Intel 80 x86系列微处理器,状态标志,(1)符号标志SF。与计算结果的最高位相同,表示计算结果的正/负。0表示正,1表示负。 (2)零标志ZF。若计算结果为零,则ZF=1,否则=0。 (3)奇偶标志PF。若计算结果的低8位中1的个数为偶数,则PF=1,否则=0。 (4)进位标志CF。若执行的加法运算在最高位产生进位,或者执行的减法运算引起最高位产生借位,则CF=1,否则=0。此外,带进位的循环移位也可能会改变CF。可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年数据驱动的机械设计方法
- 结核病隔离护理措施
- 中药材库存管理
- 兴发集团2026届春季校园招聘备考题库【基础题】附答案详解
- 2026四川自贡市国有资本投资运营集团有限公司招聘1人备考题库(满分必刷)附答案详解
- 肿瘤科白血病化疗并发症监测方案
- 2026陕西西安交通大学党委医学部文员招聘1人备考题库附参考答案详解【满分必刷】
- 2026湖北黄石市阳新县高中学校校园招聘教师26人备考题库(突破训练)附答案详解
- 2026华中农业大学海南研究院招聘4人备考题库含答案详解
- 2026-2027广东佛山南海区石门高级中学招聘教师188人备考题库(第三场)带答案详解(黄金题型)
- 西南大学PPT 04 实用版答辩模板
- 东北地区概况农业生产条件及农业发展
- 胃malt淋巴瘤临床与诊治进展
- 承包人实施计划及施工组织设计
- 马克思主义哲学十讲
- 血脂异常和脂蛋白异常血症病人的护理
- 《草船借箭》【市一等奖】
- 连续性血液净化设备技术要求
- 物流项目计划书
- 进展性脑卒中的诊疗策略课件
- 统编人教版五年级上册小学语文第四单元测试卷
评论
0/150
提交评论