chap4计算机组成原理

上传人:枫** 文档编号:567954051 上传时间:2024-07-22 格式:PPT 页数:110 大小:2.45MB
返回 下载 相关 举报
chap4计算机组成原理_第1页
第1页 / 共110页
chap4计算机组成原理_第2页
第2页 / 共110页
chap4计算机组成原理_第3页
第3页 / 共110页
chap4计算机组成原理_第4页
第4页 / 共110页
chap4计算机组成原理_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《chap4计算机组成原理》由会员分享,可在线阅读,更多相关《chap4计算机组成原理(110页珍藏版)》请在金锄头文库上搜索。

1、1 1第第第第4 4 4 4章章章章 计算机的核心部件计算机的核心部件计算机的核心部件计算机的核心部件处理器处理器处理器处理器 2 2【学习指南学习指南学习指南学习指南】主要内容:主要内容:l处理器处理器= =中央处理器(中央处理器(Central Central Processing UnitProcessing Unit)=CPU=CPUl处理器是计算机的处理器是计算机的核心部件核心部件。l处理器的处理器的工作原理工作原理和和设计方法设计方法。 l处理器由处理器由运算器运算器和和控制器控制器组成。组成。l掌握掌握控制器控制器的工作原理是本章的的工作原理是本章的难点难点。l从结构和设计方法上

2、看控制器可以分为从结构和设计方法上看控制器可以分为硬硬连线连线控制器和控制器和微程序微程序控制器两大类。控制器两大类。l结合结合EDAEDA工具学习工具学习CPUCPU的设计。的设计。3 3什么是什么是CPUCPU? 所所谓中中央央处理理器器是是控控制制计算算机机来来自自动完完成成取取出出指指令令和和执行行指指令令任任务的的部部件件。它它是是计算机的算机的核心核心部件,通常部件,通常简称称为CPU。CPU的基本的基本组成成:l控制器控制器l运算器运算器4 44.1 4.1 4.1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介l计算机的数据和程序存储于

3、硬盘。计算机的数据和程序存储于硬盘。l程序是指令的有序集合。程序是指令的有序集合。l程序在执行程序在执行之前之前需需事先事先将其调入将其调入内存内存。lCPUCPU从从内存内存里取出指令和数据,并根据指令的要求对数据里取出指令和数据,并根据指令的要求对数据进行加工(计算)。进行加工(计算)。l指令的执行过程:分为取指令和执行指令指令的执行过程:分为取指令和执行指令2 2个步骤。个步骤。l处理器从内存中取出一条指令,执行该指令,处理器从内存中取出一条指令,执行该指令,l然后再取下一条指令,如此循环反复,执行整个程序。然后再取下一条指令,如此循环反复,执行整个程序。5 56 64.1 4.1 4.

4、1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介l指令执行过程的详细示意图:(假定程序和数据已经放指令执行过程的详细示意图:(假定程序和数据已经放在内存中):在内存中):l根据程序计数器根据程序计数器PCPC的内容从内存中的内容从内存中取取出一条出一条指指令,放令,放置于指令寄存器置于指令寄存器IRIR中;中;l分析分析IRIR中的操作码,决定应中的操作码,决定应执行执行的操作;的操作;l根据根据IRIR的地址码取出参加运算的操作数;的地址码取出参加运算的操作数;l对操作数进行运算;对操作数进行运算;l根据根据IRIR的地址码把运算结果存入指定地址;

5、的地址码把运算结果存入指定地址;l本条指令执行完毕,修改本条指令执行完毕,修改PCPC内容决定下一条指令所内容决定下一条指令所在的地址。在的地址。7 7绿色部分的工作在绿色部分的工作在CPU中完成中完成8 84.1 4.1 4.1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介从处理器的角度考虑,为什么必须要区分从处理器的角度考虑,为什么必须要区分数据数据和和指令指令?l因为二者的信息性质不同,需要处理器用不同的部件作因为二者的信息性质不同,需要处理器用不同的部件作完全不同的处理。完全不同的处理。数据数据需要需要运算器运算器作算术逻辑运算,而作算术逻辑

6、运算,而指令指令需要需要控制器控制器对其进行理解并生成相应控制命令加以对其进行理解并生成相应控制命令加以执行。执行。l如何区分如何区分内存内存中某个单元的内容是中某个单元的内容是数据数据还是还是指令指令呢?在呢?在形式上二者都是二进制位串。形式上二者都是二进制位串。l从时间上区分,处理器在从时间上区分,处理器在取指令周期取指令周期从内存从内存读读出来的就出来的就是指令,而在是指令,而在执行指令周期执行指令周期从内存从内存读写读写的就是数据。的就是数据。9 94.1 4.1 4.1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介l处理器支持的全部指令集构

7、成该处理器的指令系统。处理器支持的全部指令集构成该处理器的指令系统。l指令系统的指令格式、指令种类和指令数量反映了处理指令系统的指令格式、指令种类和指令数量反映了处理器功能的强弱。器功能的强弱。l理论上看,处理器功能越强,完成同样任务的程序就会理论上看,处理器功能越强,完成同样任务的程序就会越短,求解问题的速度就越快。越短,求解问题的速度就越快。10104.1 4.1 4.1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介l指令系统越复杂,为软件提供的支持更多。指令系统越复杂,为软件提供的支持更多。l但是,但是,实验表明实验表明,程序具有自身的特点。,

8、程序具有自身的特点。l程序局部性原理程序局部性原理:只有:只有80%80%的指令会经常用到,而另外的指令会经常用到,而另外20%20%几乎是摆设。几乎是摆设。l精心挑选精心挑选最常使用最常使用的指令组成指令集而加以实现则成为的指令组成指令集而加以实现则成为精简指令系统精简指令系统RISCRISC,与之对立的指令集设计风格为复杂,与之对立的指令集设计风格为复杂指令系统指令系统CISCCISC。11114.1 4.1 4.1 4.1 处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介处理器的工作过程简介l计算机的运算速度可以用每秒钟可以执行多少条指令即计算机的运算速度可以用每秒钟可以执行

9、多少条指令即MIPSMIPS表示。提高计算机速度有以下途径:表示。提高计算机速度有以下途径:l提高集成电路提高集成电路工艺水平工艺水平,缩短延迟时间,提高时钟频,缩短延迟时间,提高时钟频率。率。l改进改进设计设计(包括采用流水线和并行处理技术),提高(包括采用流水线和并行处理技术),提高单个处理器的运算速度。单个处理器的运算速度。l使用多个处理器使用多个处理器并行并行工作,提高整个计算机的运算速工作,提高整个计算机的运算速度如我国的高性能计算机天河一号。度如我国的高性能计算机天河一号。12124.2 4.2 4.2 4.2 数据在内存中与在处理器中的表示方式数据在内存中与在处理器中的表示方式数

10、据在内存中与在处理器中的表示方式数据在内存中与在处理器中的表示方式l内存单元以字节(内存单元以字节(8 8位)为单位。位)为单位。l处理器的处理器的字长字长一般为一般为1616位、位、3232位或位或6464位,是字节的整数位,是字节的整数倍,是倍,是运算器运算器一次能够处理的二进制位数。一次能够处理的二进制位数。13134.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)l指令由指令由操作码操作码和和地址码地址码组成,包含了汇编程序员组成,包含了汇编程序员要求处理器完成特定任务所需的全部信息,即加要求处理器完成特定任务所需的

11、全部信息,即加工的数据是什么以及如何加工。指令(字)长度工的数据是什么以及如何加工。指令(字)长度是字节的整数倍。是字节的整数倍。l操作码操作码指明指令指明指令执行什么操作执行什么操作,例如加、减、乘、,例如加、减、乘、除四则运算或读除四则运算或读/ /写内存或读写内存或读/ /写外设等。写外设等。l地址码地址码指明指明操作数的来源操作数的来源(源地址)与运算结果(源地址)与运算结果的去向(目的地址),通常由若干部分组成。的去向(目的地址),通常由若干部分组成。14144.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)4.3

12、.1 操作码操作码:l定长定长操作码:操作码长度固定。例如操作码长度操作码:操作码长度固定。例如操作码长度8 8位,则最位,则最多可以表示多可以表示28=25628=256条指令。这种规整的安排方式有利于简条指令。这种规整的安排方式有利于简化硬件设计,是一种常规的做法。化硬件设计,是一种常规的做法。l变长变长操作码:操作码长度不固定。指令字中某些位在不同操作码:操作码长度不固定。指令字中某些位在不同的指令中扮演不同的角色,有时是操作码的一部分,有时的指令中扮演不同的角色,有时是操作码的一部分,有时是地址码的一部分。是地址码的一部分。l操作码指明操作类型,将其施加于操作数之上。常用的数操作码指明

13、操作类型,将其施加于操作数之上。常用的数据类型有:据类型有:l整数和浮点数整数和浮点数l位串(位串(Bit StringBit String) l字符(字符(CharacterCharacter) l字符串(字符串(Character StringCharacter String)15154.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)l不同类型数据不同类型数据的操作应当使用的操作应当使用不同的操作码不同的操作码,例如整数加,例如整数加法指令和浮点数加法指令应当使用不同的操作码,应视为法指令和浮点数加法指令应当使用不同的操

14、作码,应视为不同的指令。不同的指令。l不同寻址方式不同寻址方式的操作应当视为的操作应当视为不同的指令不同的指令。16164.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)l按照功能分类,指令可分为:按照功能分类,指令可分为:l算术与逻辑运算类算术与逻辑运算类指令:算术运算指令包括对整数以及指令:算术运算指令包括对整数以及浮点数的四则运算;逻辑运算则是对位串类型的操作数浮点数的四则运算;逻辑运算则是对位串类型的操作数进行逻辑操作。进行逻辑操作。l移位操作类移位操作类指令:包括算术移位、逻辑移位和循环移位指令:包括算术移位、逻辑

15、移位和循环移位等。逻辑移位和循环移位的对象是位串,而算术移位的等。逻辑移位和循环移位的对象是位串,而算术移位的对象则是数据(补码形式的定点小数或整数)。算术左对象则是数据(补码形式的定点小数或整数)。算术左移可能发生移可能发生“溢出溢出”,算术右移必须保持符号位不变。,算术右移必须保持符号位不变。 l数据传送类数据传送类指令:在通用寄存器之间、通用寄存器与内指令:在通用寄存器之间、通用寄存器与内存单元之间、通用寄存器与外围设备(接口)之间、内存单元之间、通用寄存器与外围设备(接口)之间、内存与外围设备之间的数据传送。存与外围设备之间的数据传送。l输入输入/ /输出输出指令:与外围设备交换数据的

16、指令。指令:与外围设备交换数据的指令。171718184.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)l转移类转移类指令:改变指令执行顺序的指令。包括:指令:改变指令执行顺序的指令。包括:l无条件转移指令无条件转移指令l条件转移指令条件转移指令l子程序调用与返回指令子程序调用与返回指令l特权特权指令:仅供系统软件使用,不提供给普通用户指令:仅供系统软件使用,不提供给普通用户使用。一般在多用户、多任务的计算机系统中使使用。一般在多用户、多任务的计算机系统中使用,主要用于系统资源的分配与管理,包括改变用,主要用于系统资源的分配

17、与管理,包括改变系统的工作方式、检测用户的访问权限、修改虚系统的工作方式、检测用户的访问权限、修改虚拟存储器的段表、页表和完成任务的创建和切换拟存储器的段表、页表和完成任务的创建和切换等。等。l其他其他:例如空操作指令、开中断(:例如空操作指令、开中断(CPUCPU受理中断请受理中断请求)、关中断(求)、关中断(CPUCPU不受理中断请求)指令等。不受理中断请求)指令等。19194.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)lOPOP:操作码:操作码lA3A3:目的地址:目的地址lA1A1:第:第1 1操作数地址,(操作

18、数地址,(A1A1)代表)代表A1A1的内容,即第的内容,即第1 1操作数。操作数。lA2A2: 代表第代表第2 2操作数地址,(操作数地址,(A2A2)代表第)代表第2 2操作数。操作数。l地址可以是内存地址,外围设备接口中某个寄存器的地址,也可以是地址可以是内存地址,外围设备接口中某个寄存器的地址,也可以是处理器中通用寄存器的地址,由操作码指明。处理器中通用寄存器的地址,由操作码指明。4.3.2 地址码地址码:l地址码指明操作数的来源(源地址)与运算结果的去向地址码指明操作数的来源(源地址)与运算结果的去向(目的地址)(目的地址)l按地址部分的多少可以将指令分为:按地址部分的多少可以将指令

19、分为:l3 3地址指令:地址指令: 20204.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)4.3.2 地址码地址码:l按地址部分的多少可以将指令分为:按地址部分的多少可以将指令分为:l2 2地址指令:地址指令: l1 1 地址指令:地址指令: 21214.3 4.3 4.3 4.3 指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)指令格式(机器码格式)4.3.2 地址码地址码:l按地址部分的多少可以将指令分为:按地址部分的多少可以将指令分为:l0 0 地址指令:地址指令: l某些指令不涉及操作数,因而某

20、些指令不涉及操作数,因而不需要不需要地址码。某些指令的操作数地址码。某些指令的操作数已经被操作码已经被操作码预先指定(隐含)预先指定(隐含),因而也不需要地址码。,因而也不需要地址码。l地址码越多,指令越灵活,但耗费资源也越大。通用寄地址码越多,指令越灵活,但耗费资源也越大。通用寄存器速度快,而其容量远小于内存,所需地址码较短,存器速度快,而其容量远小于内存,所需地址码较短,有利于缩短指令字长度。当前的处理器中一般都配置有有利于缩短指令字长度。当前的处理器中一般都配置有相当数量的通用寄存器。相当数量的通用寄存器。 22224.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编

21、址)方式寻址(编址)方式 l寻址寻址就是形成操作数的地址以及指令的地址。就是形成操作数的地址以及指令的地址。l处理器从内存中取出指令之后,需要根据指令中的地址码处理器从内存中取出指令之后,需要根据指令中的地址码取数据。为了给软件提供更多的支持,形成数据地址的方取数据。为了给软件提供更多的支持,形成数据地址的方式有许多种。式有许多种。l处理器从内存读取指令的时候需要向内存发送指令的地址处理器从内存读取指令的时候需要向内存发送指令的地址如何形成指令地址也有多种方式。如何形成指令地址也有多种方式。l存放将要读取指令的内存地址的寄存器称为存放将要读取指令的内存地址的寄存器称为程序计数器程序计数器(Pr

22、ogram CounterProgram Counter,PCPC)。)。 l指令的执行顺序通常是顺序执行,所以指令的执行顺序通常是顺序执行,所以PCPC通常表现为一个通常表现为一个计数器计数器;遇到转移指令的时候则需要改变指令的执行顺序,;遇到转移指令的时候则需要改变指令的执行顺序,这时这时PCPC应能接受一个新的指令地址。应能接受一个新的指令地址。23234.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l形式地址形式地址:指令字中的地址码。:指令字中的地址码。l物理地址(有效地址)物理地

23、址(有效地址):最终形成的、发送给内存的、地:最终形成的、发送给内存的、地址总线上的地址。址总线上的地址。l寻址方式寻址方式:如何由形式地址形成有效地址。:如何由形式地址形成有效地址。l不同的处理器能够支持的寻址方式不同。不同的处理器能够支持的寻址方式不同。l指令字中应该有一个字段用以指明指令的寻址方式,寻址指令字中应该有一个字段用以指明指令的寻址方式,寻址方式不同意味着处理器对地址码的理解不同,有时被归入方式不同意味着处理器对地址码的理解不同,有时被归入操作码字段。如果处理器的寻址方式有操作码字段。如果处理器的寻址方式有8 8种,则其指令字中种,则其指令字中应当包含应当包含3 3位的寻址方式

24、字段。位的寻址方式字段。24244.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l直接寻址方式:对指令字中的地址码不作任何变换,有效直接寻址方式:对指令字中的地址码不作任何变换,有效地址和形式地址相同。地址和形式地址相同。25254.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l寄存器寻址方式:属于直接寻址,但地址码寄存器寻址方式:属于直接寻址,但地址码A A不是内存地址不是内存地址而是处

25、理器中通用寄存器的地址。而是处理器中通用寄存器的地址。l基地址寻址方式:有效地址为形式地址与基地址内容的和。基地址寻址方式:有效地址为形式地址与基地址内容的和。l基地址寄存器是处理器中一个特定的寄存器,其内容只能由系统程基地址寄存器是处理器中一个特定的寄存器,其内容只能由系统程序设定,由特权指令执行,以保证系统的安全。序设定,由特权指令执行,以保证系统的安全。l用途在于为程序或数据分配存储区,此时基地址为该存储区的首地用途在于为程序或数据分配存储区,此时基地址为该存储区的首地址,而形式地址则是相对于首地址的偏移量。例如,假如某处理器址,而形式地址则是相对于首地址的偏移量。例如,假如某处理器可以

26、执行多道程序,为了避免在使用内存空间时可能发生的冲突,可以执行多道程序,为了避免在使用内存空间时可能发生的冲突,每道程序所用空间只能由系统程序来分配,基地址寻址方式给系统每道程序所用空间只能由系统程序来分配,基地址寻址方式给系统程序分配存储空间提供了硬件支持。程序分配存储空间提供了硬件支持。 2626内容由系统程内容由系统程序指定序指定27274.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l变址寻址方式:有效地址为形式地址与变址寄存器的和。变址寻址方式:有效地址为形式地址与变址寄存器的和。

27、l变址寄存器可以是通用寄存器中的某一个,由本条指令指变址寄存器可以是通用寄存器中的某一个,由本条指令指定,该寄存器中的值可以由程序员预先设定。定,该寄存器中的值可以由程序员预先设定。l变址寻址方式主要用于对处理一维数组提供支持。当程序变址寻址方式主要用于对处理一维数组提供支持。当程序员需要对数组中的每一个元素进行同样处理的时候,可以员需要对数组中的每一个元素进行同样处理的时候,可以编写循环程序,每次只对数组中一个元素进行处理,下一编写循环程序,每次只对数组中一个元素进行处理,下一轮循环时程序不变,只要变址寄存器的内容加轮循环时程序不变,只要变址寄存器的内容加1 1即可。即可。 2828内容由应

28、用程序指定,可变。内容由应用程序指定,可变。29294.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l相对寻址方式:有效地址为形式地址与相对寻址方式:有效地址为形式地址与PCPC内容相加之和。内容相加之和。l形式地址为补码,可正、可负,是相对于本条指令的一个偏移量。形式地址为补码,可正、可负,是相对于本条指令的一个偏移量。l主要用于转移指令,转移到本条指令之前或之后的某一条指令。主要用于转移指令,转移到本条指令之前或之后的某一条指令。l间接寻址方式:指令字中的形式地址是地址的地址。间接寻址方

29、式:指令字中的形式地址是地址的地址。l有的处理器支持多次间接寻址,但多数只允许一次间接寻址。有的处理器支持多次间接寻址,但多数只允许一次间接寻址。l形式地址可以指向内存,也可以指向通用寄存器,为寄存器间接寻形式地址可以指向内存,也可以指向通用寄存器,为寄存器间接寻址。址。 303031314.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.1 4.4.1 基本寻址方式概述基本寻址方式概述l立即数寻址方式:指令字中形式地址立即数寻址方式:指令字中形式地址A A不是地址,其本身就不是地址,其本身就是数据。是数据。l只能用来表示常数。由于不必访问存

30、储器,因而可以加快指令的执只能用来表示常数。由于不必访问存储器,因而可以加快指令的执行速度。行速度。l堆栈寻址方式:堆栈寻址方式:l堆栈是存储器中一块特定的区域,按照堆栈是存储器中一块特定的区域,按照FIFOFIFO原则管理。原则管理。l处理器中有一个专用寄存器,称作堆栈指针(处理器中有一个专用寄存器,称作堆栈指针(Stack Pointer, SPStack Pointer, SP),),SPSP指向堆栈的栈顶。指向堆栈的栈顶。l堆栈寻址方式,指令字中不包含地址码,参加运算的操作数及运算堆栈寻址方式,指令字中不包含地址码,参加运算的操作数及运算结果的去向都在堆栈的顶部,由结果的去向都在堆栈的

31、顶部,由SPSP隐含指定。隐含指定。l寻址方式可以组合起来使用。寻址方式可以组合起来使用。32324.4 4.4 4.4 4.4 寻址(编址)方式寻址(编址)方式寻址(编址)方式寻址(编址)方式4.4.2 4.4.2 寻址方式举例寻址方式举例lIBM360计算机指令系统的寻址方式。计算机指令系统的寻址方式。l图中所用符号说明如下:图中所用符号说明如下:lOP代表操作码,长度代表操作码,长度8位,故操作码个数位,故操作码个数256。lRi,Rj代表通用寄存器地址,长度代表通用寄存器地址,长度4位,故可以指明位,故可以指明16个通用个通用寄存器中的某一个。寄存器中的某一个。lX代表变址寄存器地址,

32、长度代表变址寄存器地址,长度4位,故可以指明位,故可以指明16个通用寄存器个通用寄存器中的某一个。中的某一个。lB代表基地址寄存器地址,长度代表基地址寄存器地址,长度4位,故可以指明位,故可以指明16个通用寄存个通用寄存器中的某一个。器中的某一个。lD,D1,D2代表操作数的形式地址。代表操作数的形式地址。lI代表立即数,长度代表立即数,长度8位。位。lL代表被运算数据的长度(代表被运算数据的长度(1 256个字节)。个字节)。3333 34344.5 4.5 4.5 4.5 一个简单处理器(简化模型)的指令系统一个简单处理器(简化模型)的指令系统一个简单处理器(简化模型)的指令系统一个简单处

33、理器(简化模型)的指令系统l通过简化的处理器模型,学习处理器的工作原理、设计通过简化的处理器模型,学习处理器的工作原理、设计方法和实现方法。方法和实现方法。l模型机模型机字长字长8 8位位,支持,支持4 4种指令格式种指令格式。l约定数据以约定数据以整数的补码整数的补码表示,其表示,其最高位为符号位最高位为符号位。l在数据进行加法或减法运算时可能产生在数据进行加法或减法运算时可能产生“溢出溢出”,如果,如果发生发生“溢出溢出”,则令,则令“溢出溢出”标志标志overflow = 1overflow = 1。35353636操作码操作码OPIR(15.12)指令格式指令格式 指令的助记符指令的助

34、记符操作的内容操作的内容00003Idle无操作, PC := PC+1;(为取下一条指令准备地址)00012Load DataR0 I ;(立即数I送R0 ) PC := PC+1; 00101Move Rx, RyRx (Ry); PC := PC+1;00111Add Rx, RyRx (Rx) + (Ry); PC := PC+1;01001Sub Rx, RyRx (Rx) (Ry); PC := PC+1;01011AND Rx, RyRx (Rx) AND (Ry); PC := PC+1;01101OR Rx, RyRx (Rx) OR (Ry); PC := PC+1;011

35、11XOR Rx, RyRx (Rx) XOR (Ry); PC := PC+1;10001Shr RxRx (Rx)逻辑右移1位 ; PC := PC+1;10011Shl RxRx (Rx)逻辑左移1位 ; PC := PC+1;10101Swap Rx, RyA (Ry);Ry (Rx);Rx (A);PC := PC+1;10114Jmp AddrPC := PC+1;取本指令的后半部;PC Addr; (为取下一条指令准备地址)11004Jz AddrPC := PC+1;取本指令的后半部;if (R0)= 0 then PC Addrelse PC := PC+1; (为取下一条指

36、令准备地址)11014Read Addr PC := PC+1;取本指令的后半部;R0 ( addr ); (从内存指定地址取数据)PC := PC+1; (为取下一条指令准备地址)11104Write AddrPC := PC+1;取本指令的后半部;Addr (R0); (把R0的内容写入内存指定地址)PC := PC+1;(为取下一条指令准备地址)11113Stop无操作,PC 保持不变;3737CPUCPU实例实例实例实例38384.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.14.6.1处理器的组成处理器的组成l处理器由运

37、算器和控制器组成。处理器由运算器和控制器组成。l控制器向运算器中各个部件发出控制信号,指挥运算器控制器向运算器中各个部件发出控制信号,指挥运算器中各个部件协调工作,使数据沿指定路径在运算器中流中各个部件协调工作,使数据沿指定路径在运算器中流动,从而完成整个运算。动,从而完成整个运算。l运算器将各种部件适当连接成为网络,信息在网络中流运算器将各种部件适当连接成为网络,信息在网络中流动,也被称作数据通路。动,也被称作数据通路。l数据通路数据通路由寄存器、多路选择器、算术逻辑运算单元由寄存器、多路选择器、算术逻辑运算单元(ALUALU)以及其他功能部件组成。)以及其他功能部件组成。39394.6 4

38、.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计l寄存器依照功能不同,可分为:寄存器依照功能不同,可分为:l通用寄存器:通用寄存器:l用于存放原始数据和运算结果用于存放原始数据和运算结果l指令可按地址访问相应的寄存器指令可按地址访问相应的寄存器l数量由指令格式决定,若访问通用寄存器的地址码为数量由指令格式决定,若访问通用寄存器的地址码为2 2位,则数据通位,则数据通路中通用寄存器的数量为路中通用寄存器的数量为4 4。l累加寄存器(累加寄存器(AccumulatorAccumulator,AccAcc,AcAc)或临时寄存器:)或临时寄存器:l当运算

39、器的算术逻辑单元(当运算器的算术逻辑单元(ALUALU)执行全部算术和逻辑运算时,为)执行全部算术和逻辑运算时,为ALUALU提供一个工作区。累加寄存器暂时存放提供一个工作区。累加寄存器暂时存放ALUALU运算的结果信息。显运算的结果信息。显然,运算器中至少要有一个累加寄存器。然,运算器中至少要有一个累加寄存器。 l程序计数器(程序计数器(Program CounterProgram Counter,PCPC):):l即指令计数器或指令指针,用于存放将要执行的即指令计数器或指令指针,用于存放将要执行的下一条指令在内存下一条指令在内存中的地址。中的地址。 若程序顺序执行:若程序顺序执行:PC P

40、C+1;若程序有跳转:;若程序有跳转:PCPC+偏移地址。偏移地址。40404.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计l指令寄存器(指令寄存器(Instruction RegisterInstruction Register,IRIR):):用于存放从内存中取出的指令。在指令执行期间内容保用于存放从内存中取出的指令。在指令执行期间内容保持不变,以便控制指令的执行。持不变,以便控制指令的执行。其中指令的操作码送到其中指令的操作码送到指令译码器,译码后输出控制信号。指令译码器,译码后输出控制信号。l内存地址寄存器(内存地址寄存器(Mem

41、ory Address RegisterMemory Address Register,MARMAR):):用来保存当前用来保存当前CPU所访问的内存单元的地址。由于在内所访问的内存单元的地址。由于在内存和存和CPU之间存在着操作速度上的差别,所以必须使用之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读地址寄存器来保持地址信息,直到内存的读/写操作完成写操作完成为止。为止。l内存数据寄存器(内存数据寄存器(Memory Data RegisterMemory Data Register,MDRMDR):):用来暂时存放由内存储器读出的一条指令或一个数据字;用来暂时

42、存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在将它们存放在数据数据寄存器中。寄存器中。 4141状态条件寄存器状态条件寄存器PSWR 状状态态条件寄存器保存由算条件寄存器保存由算术术指令和指令和逻辑逻辑指令运行或指令运行或测试测试的的结果建果建立立起来起来的各种条件的各种条件码内容内容,同,同时状状态条件寄存器条件寄存器还保存中断和保存中断和系系统工作状工作状态等信息,以便使等信息,以便使CPU和系和系统统能及能及时时了解机器运行了解机器运行状状态态和程序运行状和程序运行状态态。因此,状。因

43、此,状态态条件寄存器是一个条件寄存器是一个由各种状由各种状态条件条件标志拼凑而成志拼凑而成的寄存器的寄存器。 O 溢出溢出 D 方向方向 I 中断允许中断允许 T 追踪追踪 S 符号符号 Z 零零 A 辅助进位辅助进位 P 奇偶奇偶 C 进位进位4.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计 O D I T S Z A P C42424.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计l多路选择器用于引导数据的流动,常用的多路器有多路选择器用于引导数据的流动,常用的多路器有2 2选选1

44、 1、4 4选选1 1和和8 8选选1 1等。等。lALUALU用于执行算术运算和逻辑运算。由指令操作码决定。用于执行算术运算和逻辑运算。由指令操作码决定。4343 444445454.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.2 4.6.2 处理器和内存的相互联系处理器和内存的相互联系l程序和数据存放在内存中,处理器要和内存相互配合才程序和数据存放在内存中,处理器要和内存相互配合才能执行程序,处理器和内存之间的连接关系如图:能执行程序,处理器和内存之间的连接关系如图:12246464.6 4.6 4.6 4.6 处理器的组成与

45、设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.3 4.6.3 控制器控制器l控制器向数据通路中各个部件发出控制信控制器向数据通路中各个部件发出控制信号,使各个部件协调工作。号,使各个部件协调工作。l协调动作需要时间标志,而时间标志则是协调动作需要时间标志,而时间标志则是用时序信号来体现的。用时序信号来体现的。l控制器发出的各种控制信号都是时间因素控制器发出的各种控制信号都是时间因素(时序信号)和空间因素(部件位置)的(时序信号)和空间因素(部件位置)的函数。函数。47474.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计

46、l节拍:一个节拍对应于一个时钟脉冲。如图所示:节拍:一个节拍对应于一个时钟脉冲。如图所示:lstep_istep_i:代表第代表第i i个节拍,其宽度与时钟周期相等。个节拍,其宽度与时钟周期相等。l节拍电位和其他信号相互组合用于控制操作,引导数据节拍电位和其他信号相互组合用于控制操作,引导数据在数据通路中流动;在节拍的末尾处由时钟脉冲把运算在数据通路中流动;在节拍的末尾处由时钟脉冲把运算结果(或中间结果)打入寄存器。结果(或中间结果)打入寄存器。l一个节拍中包含一个时钟脉冲被称作单相时钟。包含多一个节拍中包含一个时钟脉冲被称作单相时钟。包含多个时钟脉冲,则被称作多相时钟。个时钟脉冲,则被称作多

47、相时钟。 4848触触发器器数据,数据,电位位控制信号,脉冲控制信号,脉冲 数据准数据准备好后,以好后,以电位的方式送触位的方式送触发器(可器(可执行保存),行保存),当控制信号来到后当控制信号来到后仅用一个脉冲信号即可把数据装入触用一个脉冲信号即可把数据装入触发器。器。49494.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.3 4.6.3 控制器控制器l节拍电位和时钟脉冲之间的配合关系:节拍电位和时钟脉冲之间的配合关系:50504.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设

48、计4.6.4 4.6.4 处理器指令执行的详细流程处理器指令执行的详细流程 51514.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计将节拍视为状态,将节拍视为状态,则为则为FSM。52524.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.4 4.6.4 处理器指令执行的详细流程处理器指令执行的详细流程 l加电的时候自动产生一个清零(复位)信号加电的时候自动产生一个清零(复位)信号ResetReset,使所,使所有有寄存器清零寄存器清零,控制器处于初始状态,控制器处于初始状态st

49、_0st_0。l程序和数据程序和数据都存放在都存放在内存内存中。模型机选用宏模块中。模型机选用宏模块lpm_ram_dqlpm_ram_dq例化实现内存。例化实现内存。lCPUCPU要访问内存之前必须提供访问要访问内存之前必须提供访问地址地址及及读写命令读写命令,内存,内存用时钟信号将其寄存之后,进行地址译码、寻址,然后才用时钟信号将其寄存之后,进行地址译码、寻址,然后才能执行读写操作。能执行读写操作。CPUCPU必须等待内存完成读写操作任务之必须等待内存完成读写操作任务之后,才能执行下一步的操作。这期间必然存在一定的延迟。后,才能执行下一步的操作。这期间必然存在一定的延迟。l指令的执行过程所

50、经历的时间为:指令的执行过程所经历的时间为: Time = Time = n nT T (T T代表时钟周期,代表时钟周期,n n 代表执行该指令所需节代表执行该指令所需节拍数)拍数)53534.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.4 4.6.4 处理器指令执行的详细流程处理器指令执行的详细流程 l提高指令执行的速度,必须尽量减小提高指令执行的速度,必须尽量减小n n和和T T。l模型机为了减小节拍数模型机为了减小节拍数n n,利用时钟的上升沿和下降沿分,利用时钟的上升沿和下降沿分别执行不同的操作以提高效率,小结如下:别执

51、行不同的操作以提高效率,小结如下:l对时钟对时钟上升沿上升沿敏感的寄存器:敏感的寄存器:通用寄存器通用寄存器,程序计数器,程序计数器PCPC,指令寄存器,指令寄存器IRIR和数据寄存器和数据寄存器MDRMDR。 l对时钟对时钟下降沿下降沿敏感的寄存器:临时寄存器敏感的寄存器:临时寄存器A A、地址寄存、地址寄存器器MARMAR以及以及状态状态寄存器。寄存器。l表表4.24.2列出不必受时钟控制的操作,明显列出这些信号列出不必受时钟控制的操作,明显列出这些信号名称及操作特点是为了方便名称及操作特点是为了方便VHDLVHDL编程。编程。 5454信号名称信号名称操操 作作是否受是否受时钟的控制的控

52、制是否受状是否受状态的控制的控制ResetReset = 0 时,使所有寄存器清零并进入状态St_0否否M_addressM_address (MAR)否否M_data_outM_data_out (MDR)否否Write_Read仅在状态St_3且指令操作码为Write时Write_Read 1;否则 Write_Read 0(参看表4.3)否是55554.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计加法指令(加法指令(Add Rx, Ry):):lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的

53、操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:l IR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。l IR(7.0) 00000000,IR 低低8位无用,令其全部为位无用,令其全部为0。l PC (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l MAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。l A (Ry),Ry由由IR(9.8)指定。)指定。l 下一个状态转入下一个状态转入st_1。 5

54、6564.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计加法指令(加法指令(Add Rx, Ry):):lst_1:执行加法操作并读下一条指令:执行加法操作并读下一条指令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。l时钟上升沿时执行的操作:时钟上升沿时执行的操作: lRx (Rx) + (A); Rx由由IR(11.10)指定。)指定。l时钟下降沿时执行的操作:下一个状态转入时钟下降沿时执行的操作:下一个状态转入st_0。l与加法指令执行过程相似的指令有:与加法指令执行过程相似的指令有:Mo

55、ve,Sub,And,Or,Xor,Shr,Shl。57574.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计立即数指令(立即数指令(load data):):lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:l IR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。l IR(7.0) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。l P

56、C (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l MAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。lA (Ry),Ry由由IR(9.8)指定。)指定。l 下一个状态转入下一个状态转入st_1。 58584.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计立即数指令(立即数指令(load data):):lst_1:加载立即数并读下一条指令:加载立即数并读下一条指令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write

57、_Read 0。l时钟上升沿时执行的操作:时钟上升沿时执行的操作: lR0(3.0) IR(11.8),把立即数,把立即数data(即(即IR(11.8)加载于)加载于R0的低的低4位。位。lR0(7.4) 0000,R0的高的高4位全部置零。位全部置零。l时钟下降沿时执行的操作:下一个状态转入时钟下降沿时执行的操作:下一个状态转入st_0。59594.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计交换指令交换指令 (Swap Rx, Ry) :lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:

58、Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。lIR(7.0) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。lPC (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。lA (Ry),Ry由由IR(9.8)指定。)指定。l下一个状态转入下一个状态转入st_1。 60604.6 4.6

59、 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计交换指令交换指令 (Swap Rx, RySwap Rx, Ry):):lst_1st_1:执行交换指令的一部分操作:执行交换指令的一部分操作:l只和只和st_1st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0Write_Read 0。 (冗余(冗余操作)操作)l时钟上升沿时执行的操作:时钟上升沿时执行的操作: lRy ( Rx ); RxRy ( Rx ); Rx由由IRIR(11.1011.10)指定,)指定,RyRy由由IRIR(9.89.8)指定。)指定。l时钟下降

60、沿时执行的操作:时钟下降沿时执行的操作:l下一个状态转入下一个状态转入st_2st_2。lst_2st_2:执行交换指令的后续操作并读下一条指令。:执行交换指令的后续操作并读下一条指令。l只和只和st_2st_2有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read =0Write_Read =0,内存读(读,内存读(读下一条指令)。下一条指令)。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lRx (A); RxRx (A); Rx由由IRIR(11.1011.10)指定。)指定。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l 下一个状态转入下一个状态转入st_0st

61、_0。 61614.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计读内存指令(读内存指令(Read Addr):):lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。lIR(7.0) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。lPC (PC)+ 1),为后续指令准备指令地址。),

62、为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。lA (Ry),Ry由由IR(9.8)指定。)指定。l 下一个状态转入下一个状态转入st_1。 6262读内存指令(读内存指令(Read Addr):):lst_1:发出读本指令的第:发出读本指令的第2字节的命令:字节的命令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。读本指令。读本指令的第的第2字节。字节。l时钟下降沿时执行的操作:下一个状态转入时钟下降沿时执行的操作:下一个状态转入st_2。ls

63、t_2:将本指令的第:将本指令的第2字节加载于字节加载于IR(7.0)。)。l只和只和st_2有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(7.0) M_data_in,将本指令的的第,将本指令的的第2字节加载于字节加载于IR(7.0)。指令已经全部取出,存放在)。指令已经全部取出,存放在IR(15.0)。)。lPC (PC)+ 1),为下一条指令准备指令地址。),为下一条指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l MAR (IR(11.0),把取数地址加载于),

64、把取数地址加载于MAR。l 下一个状态转入下一个状态转入st_3。4.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计63634.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计读内存指令(读内存指令(Read Addr):):lst_3:向存储器发出读取数据的命令。:向存储器发出读取数据的命令。l只和只和st_3有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR (PC)。)。l 下一个状态转入下一个状态转入

65、st_4。lst_4:将读出的数据加载于:将读出的数据加载于R0并发出读取下一条指令的命并发出读取下一条指令的命令。令。l只和只和st_4有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:l R0 M_data_in,将从存储器指定地址中读出的数据加载于,将从存储器指定地址中读出的数据加载于R0。l时钟下降沿时执行的操作:时钟下降沿时执行的操作: l下一个状态转入下一个状态转入st_0。64644.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计写内存指令(写内存指令(

66、Write Addr):):lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:l IR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。l IR(7.0) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。l PC (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l MAR (PC),为下一条指令准备指令地址。),为下一条指

67、令准备指令地址。l A (Ry),Ry由由IR(9.8)指定。)指定。l 下一个状态转入下一个状态转入st_1。 6565写内存指令(写内存指令(Write Addr):): :lst_1:发出读本指令的第:发出读本指令的第2字节的命令:字节的命令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。读本指令。读本指令的第的第2字节。字节。l时钟下降沿时执行的操作:下一个状态转入时钟下降沿时执行的操作:下一个状态转入st_2。lst_2:将本指令的第:将本指令的第2字节加载于字节加载于IR(7.0)。)。l只和只和st_2有关而与时钟无关的操作:有关而与

68、时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(7.0) M_data_in,将本指令的的第,将本指令的的第2字节加载于字节加载于IR(7.0)。指令已经全部取出,存放在)。指令已经全部取出,存放在IR(15.0)。)。lPC (PC)+ 1),为下一条指令准备指令地址。),为下一条指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l MAR (IR(11.0),把取数地址加载于),把取数地址加载于MAR。l 下一个状态转入下一个状态转入st_3。4.6 4.6 4.6 4.6 处理器的组成与设计处理器的组

69、成与设计处理器的组成与设计处理器的组成与设计66664.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计写内存指令(写内存指令(Write Addr):): lst_3:向存储器发出读取数据的命令。:向存储器发出读取数据的命令。l只和只和st_3有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 1。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR (PC)。)。l 下一个状态转入下一个状态转入st_4。lst_4:读下一条指令。:读下一条指令。l只和只和st_4有关而与时钟无关的操作:有关而与时钟无关的操作:Wr

70、ite_Read 0。l时钟下降沿时执行的操作:时钟下降沿时执行的操作: l下一个状态转入下一个状态转入st_0。67674.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计无条件转移指令(无条件转移指令(Jmp AddrJmp Addr) :lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。lIR(7.0

71、) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。lPC (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。lA (Ry),Ry由由IR(9.8)指定。)指定。l下一个状态转入下一个状态转入st_1。 68684.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计无条件转移指令(无条件转移指令(Jmp AddrJmp Addr):):lst_1:发出读本指令的第发出读本指令的第2

72、 2字节的命令字节的命令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。读本指令读本指令的第的第2 2字节。字节。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l下一个状态转入下一个状态转入st_2。lst_2st_2:将指令的第:将指令的第2 2字节加载于字节加载于IRIR(7.07.0)并为转移做准)并为转移做准备工作。备工作。l只和只和st_2st_2有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作: lIRIR(7.07.

73、0) M_data_inM_data_in,将本指令的的第,将本指令的的第2 2字节加载于字节加载于IRIR(7.07.0)。)。至此,指令已经全部取出,存放在至此,指令已经全部取出,存放在IRIR(15.015.0)。)。lPC PC (PCPC)+ 1+ 1),这是一个冗余操作。),这是一个冗余操作。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lMAR MAR (IRIR(11.011.0),把转移目的地址加载于),把转移目的地址加载于MARMAR。l下一个状态转入下一个状态转入st_3 st_3 。 69694.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器

74、的组成与设计处理器的组成与设计无条件转移指令(无条件转移指令(Jmp AddrJmp Addr):):lst_3st_3:读下一条指令。:读下一条指令。l只和只和st_3st_3有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lPC PC (IRIR(11.011.0),把转移目的地址加载于),把转移目的地址加载于PCPC。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l下一个状态转入下一个状态转入st_0st_0。 70704.6 4.6 4.6 4.6 处理器的组成与设

75、计处理器的组成与设计处理器的组成与设计处理器的组成与设计条件转移指令(条件转移指令(Jz AddrJz Addr) :lst_0:取指令。:取指令。l只和只和st_0有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIR(15.8) M_data_in,将读出的指令加载于,将读出的指令加载于IR(15.8)。)。l IR(7.0) 00000000,IR低低8位无用,令其全部为位无用,令其全部为0。l PC (PC)+ 1),为后续指令准备指令地址。),为后续指令准备指令地址。l时钟下降沿时执行的操作

76、:时钟下降沿时执行的操作:l MAR (PC),为下一条指令准备指令地址。),为下一条指令准备指令地址。l A (Ry),Ry由由IR(9.8)指定。)指定。l 下一个状态转入下一个状态转入st_1。 71714.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计条件转移指令(条件转移指令(Jz AddrJz Addr):):lst_1:发出读本指令的第发出读本指令的第2 2字节的命令字节的命令:l只和只和st_1有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0。读本指读本指令的第令的第2 2字节。字节。l时钟下降沿时执

77、行的操作:时钟下降沿时执行的操作:l下一个状态转入下一个状态转入st_2。lst_2st_2:将指令的第:将指令的第2 2字节加载于字节加载于IRIR(7.07.0)并为转移做准)并为转移做准备工作。备工作。l只和只和st_2st_2有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作: lIRIR(7.07.0) M_data_inM_data_in,将本指令的的第,将本指令的的第2 2字节加载于字节加载于IRIR(7.07.0)。)。完成取指至完成取指至IRIR(15.015.0

78、)。)。lPC PC (PCPC)+ 1+ 1),),形成不转移的后续指令地址形成不转移的后续指令地址。l时钟下降沿时执行的操作:时钟下降沿时执行的操作:lIF ( R0 ) = 0 THEN MAR (IR(11.0); ELSE MAR ( PC ); (把转移目的地址加载于把转移目的地址加载于MAR)。l下一个状态转入下一个状态转入st_3 st_3 。 72724.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计条件转移指令(条件转移指令(Jz AddrJz Addr):):lst_3st_3:读下一条指令。:读下一条指令。l只和只和

79、st_3st_3有关而与时钟无关的操作:有关而与时钟无关的操作:Write_Read 0Write_Read 0,内存读。,内存读。l时钟上升沿时执行的操作:时钟上升沿时执行的操作:lIF ( R0 ) = 0 THEN PC(IR(11.0),把转移目的地址),把转移目的地址加载于加载于PC。 l时钟下降沿时执行的操作:时钟下降沿时执行的操作:l下一个状态转入下一个状态转入st_0st_0。 7373St_0:译码或测试译码或测试St_1St_1St_1St_1St_2Add Rx,RyLoad data Swap RX,RyRead Addr Jmp Addr 指令周期指令周期指令周期指令

80、周期St_2St_3St_4Write Addr St_1St_2St_3Jz Addr 实际系统应实际系统应加入中断检加入中断检测测7474当前状当前状态态执执 行行 操操 作作次态及与访问存储器有关次态及与访问存储器有关的操作的操作XIF reset = 0 THEN 所有寄存器(所有寄存器(PC,IR,MAR,MDR)清)清0 END IF;IF reset = 0 THEN Next_state St_0;END IF;St_0取指令取指令: IR(15.0) M_data_in | 00000000;(说明:符号明:符号“|”表示表示连接)接) A (Ry) ; Next_state

81、 St_1; Write_Read 0;PC ( PC ) +1;MAR (PC);7575当前状态当前状态执执 行行 操操 作作次态及与访问存储器有关的操作次态及与访问存储器有关的操作St_1IF OP = Load THEN R0 0000 | IR(11.8) ;Write_Read 0;IF (OP = Stop ) THEN Next_state St_1;ELSIF (OP = Swap OR OP = Jmp OR OP = Jz OR OP = ReadOR OP = Write) THEN Next_state st_2;ELSENext_state st_0;END IF;

82、IF OP = Move THEN R(x) (A);IF OP = Shr THEN Rx (Rx)逻辑右移右移1位位;IF OP = Shl THEN Rx (Rx)逻辑左移左移1位位;IF OP = Add THEN Rx (Rx) )(A);IF OP = Sub THEN Rx (Rx) )(A);IF OP = AND THEN R(x) (Rx) ) AND (A);IF OP = OR THEN Rx (Rx) ) OR(A);IF OP = XOR THEN Rx (Rx) ) XOR (A);IF OP = Swap THEN Ry (Rx); IF OP = Stop T

83、HEN NULL;IF OP = Idle THEN NULL;IF OP = Jmp THEN NULL;IF OP = Jz THEN NULL;IF OP = Read THEN NULL;IF OP = Write THEN NULL;7676当前当前状状态态执执 行行 操操 作作次态及与访问存储器次态及与访问存储器有关的操作有关的操作St_2IF OP = Swap THEN Rx (A);Write_Read 0;MDR (R0););IF (OP = Swap ) THEN Next_state St_0;ELSENext_state St_3;PC (PC)1;END IF;I

84、F (OP = Jmp OR OP = Read OR OP = Write) THENIR(7.0) M_data_in;MAR (IR(11.0););IF (OP = Jz ) AND ( ( R0 ) = 0 ) THEN IR(7.0) M_data_in;MAR (IR(11.0););ELSE MAR ( PC ); 7777当前当前状态状态执执 行行 操操 作作次态及与访问存储器次态及与访问存储器有关的操作有关的操作St_3IF (OP = Jmp) THEN PC (IR(11.0););IF (OP = Write) THEN Write_Read 1;ELSE Write

85、_Read 0;IF (OP = Jmp OR OP = Jz ) THEN Next_state St_0;ELSE Next_state St_4;IF (OP = Jz AND(R0)= 0)THEN PC (IR(11.0););IF (OP = Read ) OR (OP = Write)THEN MAR (PC); 7878当前当前状态状态执执 行行 操操 作作次态及与访问存储器次态及与访问存储器有关的操作有关的操作St_4IF (OP = Read) THEN R0 M_data_in;Write_Read 0;Next_state St_0;79794.6 4.6 4.6 4.

86、6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.5 4.6.5 处理器的处理器的VHDLVHDL行为描述行为描述l依据指令周期图中描述的状态机,用硬件描述语言依据指令周期图中描述的状态机,用硬件描述语言VHDLVHDL,在在RTLRTL级上描述并实现包括级上描述并实现包括处理器和内存处理器和内存在内的一个简单在内的一个简单计算机核心。计算机核心。l约定:约定:lCPUCPU视作有限状态机,以寄存器传输级的风格描述其行为,处理器视作有限状态机,以寄存器传输级的风格描述其行为,处理器(包括数据通路和控制器)单独作为一个实体;(包括数据通路和控制器)单独作为一个实

87、体; l内存用宏模块的方式实现,单独作为一个实体;内存用宏模块的方式实现,单独作为一个实体;l处理器和内存互连组成一台计算机核心。处理器和内存互连组成一台计算机核心。80804.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.5 4.6.5 处理器的处理器的VHDLVHDL行为描述行为描述l处理器的处理器的VHDLVHDL代码分为代码分为2 2大部分:大部分:l关键字关键字entityentity描述描述CPUCPU的外观。的外观。l关键字关键字architecturearchitecture描述描述CPUCPU的行为。的行为。lar

88、chitecturearchitecture内部分为内部分为3 3部分:部分:l标号为标号为fallingfalling的进程:描述在时钟下降沿时所执行的操作。的进程:描述在时钟下降沿时所执行的操作。l标号为标号为risingrising的进程:描述在时钟上升沿时所执行的操作。的进程:描述在时钟上升沿时所执行的操作。l和时钟无关的操作写在和时钟无关的操作写在architecturearchitecture末尾,由简单并行赋值语句末尾,由简单并行赋值语句和条件并行赋值语句组成。和条件并行赋值语句组成。l程序包程序包std_logic_unsigned中定义了许多函数,可以实现中定义了许多函数,可

89、以实现std_logic_vetor和无符号整数之间的类型转换、算术运算以及和无符号整数之间的类型转换、算术运算以及比较操作。比较操作。l约定约定CPUCPU采用补码系统,并且在算术运算时产生溢出信号。采用补码系统,并且在算术运算时产生溢出信号。l通用寄存器堆通用寄存器堆 R(3.0)R(3.0)定义为定义为2 2维数组。维数组。l应避免多个进程向同一个信号赋值。应避免多个进程向同一个信号赋值。81814.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.6 CPU4.6.6 CPU的的VHDLVHDL代码的基本框架代码的基本框架 82

90、82 状态机及其状态机及其VHDL描述描述8383lLIBRARY IEEE;lUSE IEEE.STD_LOGIC_1164.ALL;lENTITY st_mach ISlPORT( clk, reset: INSTD_LOGIC;l Input1, Input2 : INSTD_LOGIC;l Output1: OUTSTD_LOGIC);lEND st_mach;lARCHITECTURE A OF st_mach IS - 杖举状态 StatelTYPE STATE_TYPE IS ( state_A, state_B, state_C );lSIGNAL state: STATE_T

91、YPE;lBEGINlPROCESS ( reset, clk )lBEGINlIF reset = 1 THEN- Reset Statel state lIF Input1 = 0 THENl state = state_B;lELSEl state lstate lIF Input2 = 1 THENl state lstate = state_A;lEND CASE;lEND IF;lEND PROCESS;lWITH state SELECT - 定义状态机输出定义状态机输出lOutput1 =0 WHEN state_A,l1 WHEN state_B,l0 WHEN state_

92、C;lEND a;85854.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.7 CPU4.6.7 CPU的完整的的完整的VHDLVHDL代码代码 86864.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.8 4.6.8 处理器和内存相连组成一台计算机处理器和内存相连组成一台计算机87874.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.8 4.6.8 处理器和内存相连组成一台计算机处理器和内存相连组成一台计算机

93、l程序是指令的有序集合,存放在存储器模块程序是指令的有序集合,存放在存储器模块MEMMEM里。里。l程序执行的过程,就是不断从程序执行的过程,就是不断从MEMMEM中取指并执行的过程。中取指并执行的过程。l模型机和存储器模块相连,构成一台计算机。模型机和存储器模块相连,构成一台计算机。l图中的存储器模块是调用图中的存储器模块是调用QuartusQuartus的库元件的库元件lpm_ram_dqlpm_ram_dq实现的。实现的。l注意注意: :图图4.184.18中存储器模块没有使用地址总线中存储器模块没有使用地址总线M_address(11.0)M_address(11.0)的全部,而只取用

94、低的全部,而只取用低6 6位位M_address(5.0)M_address(5.0),是为了节省资源,以便让规模较小的,是为了节省资源,以便让规模较小的器件也能容纳下本设计。器件也能容纳下本设计。l图中图中CPUCPU的数据输入总线的数据输入总线M_data_inM_data_in与与MEMMEM的数据输出总线的数据输出总线M_qM_q等同看待。等同看待。88884.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.8 4.6.8 处理器和内存相连组成一台计算机处理器和内存相连组成一台计算机系统测试:检验所设计的系统能否实现预期功能。

95、系统测试:检验所设计的系统能否实现预期功能。编写调试程序,预先加载到存储器模块中。编写调试程序,预先加载到存储器模块中。提供时钟信号,运行系统。提供时钟信号,运行系统。观察运行结果。观察运行结果。在在Quartus环境下的操作步骤如下:环境下的操作步骤如下:l创建一个新项目创建一个新项目cpu.qpf,顶层文件为,顶层文件为cpu.vhd。l对对cpu.qpf进行编译。进行编译。l编译成功后为其创建一个编译成功后为其创建一个CPU符号图。符号图。l创建新项目创建新项目computer.qpf,顶层文件为,顶层文件为computer.bdf。l例化存储器模块库元件例化存储器模块库元件lpm_ra

96、m_dq,指定初始化存储器内容的文,指定初始化存储器内容的文件件cpu_mem.mif,写入调试程序,写入调试程序。l调用调用CPU模块。模块。l对对computer.qpf进行编译。进行编译。l对项目对项目computer.qpf进行模拟仿真,分析结果,判断进行模拟仿真,分析结果,判断computer的工作情况是否与预期相符的工作情况是否与预期相符 。8989程序地址(H)指令代码指令助记符操作操作结果(16进制)16进制2进制R0R1R2R3内存01E单元00000000 0000Idle无操作000000000001150001 0101Load 5R0 050502240010 010

97、0Move R1, R0R1 (R0)0503D01101 0000Read 01FR0 (01F)39041F0001 111190909191929293939494959596964.6 4.6 4.6 4.6 处理器的组成与设计处理器的组成与设计处理器的组成与设计处理器的组成与设计4.6.9 4.6.9 微程序控制器和硬连线控制器微程序控制器和硬连线控制器l根据结构和设计方法不同,控制器可分为根据结构和设计方法不同,控制器可分为硬连线型、存储逻辑型。硬连线型、存储逻辑型。l硬连线控制器:主要采用硬连线控制器:主要采用 节拍发生器节拍发生器 + + 组合逻辑电路组合逻辑电路 来实现;来实

98、现; l微程序控制器:主要采用存储逻辑来实现;微程序控制器:主要采用存储逻辑来实现;9797硬连线控制器基本思想:l l把控制器看作把控制器看作产生固定生固定连接的接的时序控制信序控制信号的号的逻辑电路路; l l以使用最少元件和取得最高操作速度以使用最少元件和取得最高操作速度以使用最少元件和取得最高操作速度以使用最少元件和取得最高操作速度为设计为设计目目目目标标。l l结构上主要是由构上主要是由门电路和触路和触发器构成的复器构成的复杂树形网形网络。9898硬连线控制器组合逻辑线路组合逻辑线路指令指令译码器译码器指令寄存器指令寄存器节拍电位节拍电位/节拍节拍脉冲发生器脉冲发生器微操作控制信号微

99、操作控制信号结果反果反馈信息信息启动启动停止停止时钟时钟复位复位IR M1 MiT1 Ti硬连线控制器的结构图硬连线控制器的结构图9999逻辑网网络的的输入信号来源有三个:入信号来源有三个:l来自指令操来自指令操码译码器的器的输出出Im;l来自来自执行部件的反行部件的反馈信息信息Bj;l来自来自时序序产生器的生器的时序信号,包括序信号,包括节拍拍电位信号位信号Mi和和节拍脉冲信号拍脉冲信号Tk。逻辑网网络N的的输出信号出信号就是微操作控制信号,用就是微操作控制信号,用来来对执行部件行部件进行控制。行控制。硬硬连线控制器的基本原理控制器的基本原理:lC=f( Im,Mi,Tk,Bj )实现:每一

100、个操作控制信号与指令,:每一个操作控制信号与指令,时序,条件序,条件都有一个都有一个逻辑关系,用关系,用逻辑表达式描述。表达式描述。100100微程序控制器基本概念基本概念程序机器指令机器指令1机器指令机器指令2机器指令机器指令i机器指令机器指令n.微指令微指令2微指令微指令1微指令微指令i微指令微指令n.微程序101101微程序控制器原理框图控制存储器控制存储器地址译码地址译码微地址寄存器微地址寄存器OPP字段字段 控制字段控制字段地址转移地址转移逻辑逻辑状态条件状态条件指令寄存器指令寄存器微命令微命令信号信号 102102机器指令和微指令的关系:机器指令和微指令的关系:程序计数器程序计数器

101、pc地址寄存器地址寄存器缓冲寄存器缓冲寄存器指令寄存器指令寄存器微地址寄存器微地址寄存器微指令寄存器微指令寄存器主存储器主存储器控制存储器控制存储器微命令微命令地址译码器地址译码器地址译码地址译码+1103103比较硬连线控制和微程序控制?l l硬硬连线控制与微程序控制器相同之控制与微程序控制器相同之处是是根据指令操作根据指令操作码和和时序信号,序信号,产生各种控生各种控制信号,以便正确地建立各种数据通路,制信号,以便正确地建立各种数据通路,完成取指令和完成取指令和执行指令的控制。行指令的控制。l l硬硬连线控制的控制的优点是由于控制器的速度点是由于控制器的速度取决于取决于电路延路延迟,所以速

102、度,所以速度较快。快。104104l l硬硬硬硬连线连线控制的主要缺点是由于将控制部件看成控制的主要缺点是由于将控制部件看成控制的主要缺点是由于将控制部件看成控制的主要缺点是由于将控制部件看成专专门产门产生固定生固定生固定生固定时时序控制信号的序控制信号的序控制信号的序控制信号的逻辑电逻辑电路,所以把用最路,所以把用最路,所以把用最路,所以把用最少元件和取得最高速度作少元件和取得最高速度作少元件和取得最高速度作少元件和取得最高速度作为设计为设计目目目目标标。一旦。一旦。一旦。一旦设计设计完完完完成,不可能通成,不可能通成,不可能通成,不可能通过过其他的修改添加新功能。其他的修改添加新功能。其他

103、的修改添加新功能。其他的修改添加新功能。l l微程序控制的主要微程序控制的主要微程序控制的主要微程序控制的主要优优点是同硬点是同硬点是同硬点是同硬连线连线控制器相比,控制器相比,控制器相比,控制器相比,具有具有具有具有规规整性、灵活性、可整性、灵活性、可整性、灵活性、可整性、灵活性、可维护维护性等一系列性等一系列性等一系列性等一系列优优点。点。点。点。l l微程序控制的主要缺点是由于微程序控制器采用微程序控制的主要缺点是由于微程序控制器采用微程序控制的主要缺点是由于微程序控制器采用微程序控制的主要缺点是由于微程序控制器采用了存了存了存了存储储程序原理,所以每条指令都至少要从控存中程序原理,所以

104、每条指令都至少要从控存中程序原理,所以每条指令都至少要从控存中程序原理,所以每条指令都至少要从控存中取一次,因此影响了速度。取一次,因此影响了速度。取一次,因此影响了速度。取一次,因此影响了速度。1051054.74.7 流水线技术流水线技术流水线技术流水线技术l集成电路工艺水平的提高,给计算机性能的提高提集成电路工艺水平的提高,给计算机性能的提高提供了技术基础。供了技术基础。u方法方法1:减小逻辑门延迟时间,提高计算机的主频。:减小逻辑门延迟时间,提高计算机的主频。u方法方法2:增加硬件增加硬件来提高计算机的速度。来提高计算机的速度。并行处理并行处理流水线流水线 流水线技术流水线技术1061

105、064.74.7 流水线技术流水线技术流水线技术流水线技术l假设指令执行的过程可分解为假设指令执行的过程可分解为3 3个子过程:个子过程:l取指令;取指令;l执行指令;执行指令;l保存结果并为取下一条指令作好准备工作。保存结果并为取下一条指令作好准备工作。l假定这假定这3 3个步骤花费的时间相等(皆为个步骤花费的时间相等(皆为t t),并且由),并且由3 3个个部件分别执行其中的一个子任务。部件分别执行其中的一个子任务。107107 流水线上流水线上3 3 个部件有序工作个部件有序工作l l在某一时间点上观察,3件工作在同时进行:uu保存第保存第k k条指令的结果;条指令的结果;uu执行第执行

106、第k k+1+1条指令;条指令;uu取第取第k k+2+2条指令。条指令。 1081084.8 4.8 精简指令系统计算机(精简指令系统计算机(精简指令系统计算机(精简指令系统计算机(RISCRISC)l复杂指令计算机(复杂指令计算机(CISC)和精简指令计算机()和精简指令计算机(RISC)uu硬件成本不断下降,软件成本不断上升,促使人们在指令系统中硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增加指令条数和指令的复杂度,给软件提供了更多的支持,形成增加指令条数和指令的复杂度,给软件提供了更多的支持,形成了了CISC计算机计算机。 uuJohn CockeJohn Cocke对对C

107、ISC计算机提出质疑计算机提出质疑 :多数复杂指令的使用频率多数复杂指令的使用频率极低,不如把它们精简掉,把节省下来的硬件资源用于别处,形极低,不如把它们精简掉,把节省下来的硬件资源用于别处,形成成RISC。1091094.8 4.8 精简指令系统计算机(精简指令系统计算机(精简指令系统计算机(精简指令系统计算机(RISCRISC)RISC计算机的计算机的特点特点:1.减少指令总数,优先选用使用频率高的简单指令。减少指令总数,优先选用使用频率高的简单指令。2.指令长度固定,指令格式种类较少。指令长度固定,指令格式种类较少。3.寻址方式种类少。寻址方式种类少。4.处理器中设置大量通用寄存器,多达

108、几百甚至上千个。处理器中设置大量通用寄存器,多达几百甚至上千个。5.只有取数和存数指令需要访问存储器,其余指令的操作都只有取数和存数指令需要访问存储器,其余指令的操作都在寄存器之间进行,因此大部分指令都可以在一个周期内在寄存器之间进行,因此大部分指令都可以在一个周期内完成。完成。6.为提高指令执行速度,采用流水线技术和硬连线控制逻辑。为提高指令执行速度,采用流水线技术和硬连线控制逻辑。7.采用优化的编译技术对高级语言程序进行编译,减少程序采用优化的编译技术对高级语言程序进行编译,减少程序的执行时间。的执行时间。110110本章小结本章小结本章小结本章小结l处理器可分为数据通路和控制器处理器可分为数据通路和控制器2部分:部分:u数据通路数据通路容易理解;容易理解;u控制器控制器则是学习的重点和难点。则是学习的重点和难点。u 具体方法:具体方法:1.用一个简化的处理器模型作实例,通过用一个简化的处理器模型作实例,通过实例引导学习实例引导学习。2.用硬件描述语言用硬件描述语言VHDL描述处理器模型的行为。描述处理器模型的行为。3.借助于和借助于和EDA工具工具Quartus对对VHDL代码进行编译和代码进行编译和模拟验证模拟验证。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号