《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt

上传人(卖家):momomo 文档编号:5715980 上传时间:2023-05-05 格式:PPT 页数:116 大小:1.14MB
下载 相关 举报
《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt_第1页
第1页 / 共116页
《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt_第2页
第2页 / 共116页
《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt_第3页
第3页 / 共116页
《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt_第4页
第4页 / 共116页
《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt_第5页
第5页 / 共116页
点击查看更多>>
资源描述

1、 第第 7 章章微处理器的内部组成微处理器的内部组成及外部功能特性及外部功能特性本章主要内容本章主要内容1.微处理器的内部组成结构微处理器的内部组成结构2.微处理器的外部引脚功能微处理器的外部引脚功能3.微处理器的总线时序微处理器的总线时序7.1 微处理器的内部结构微处理器的内部结构n为了说明现代微处理器的内部组成结构,这里给出一为了说明现代微处理器的内部组成结构,这里给出一个经适当简化的个经适当简化的Pentium处理器的内部结构框图处理器的内部结构框图(如图如图7.1所示所示),并以此为例对现代微处理器的主要组成部件,并以此为例对现代微处理器的主要组成部件及其实现技术做概要说明。及其实现技

2、术做概要说明。Pentium 微处理器(1993,320万晶体管)图图7.1 Pentium 处理器的内部结构框图处理器的内部结构框图数据总线(64位)控制总线地址总线(32位)总线接口单元(BIU)指令Cache(8KB)预取缓冲器指令译码器数据Cache(8KB)执行单元(EU)ALU(U流水)ALU(V流水)寄存器组BTB控制单元(CU)MicrocodeROM浮点处理单元(FPU)32位32位7.1.1 总线接口单元总线接口单元BIUn总线接口单元总线接口单元BIU(Bus Interface Unit)是微处理器与微是微处理器与微机中其他部件机中其他部件(如存储器、如存储器、I/O接

3、口等接口等)进行连接与通信进行连接与通信的物理界面。的物理界面。n通过这个界面,实现微处理器与其他部件之间的数据通过这个界面,实现微处理器与其他部件之间的数据信息、地址信息以及控制命令信号的传送。信息、地址信息以及控制命令信号的传送。n由图由图7-1可见,可见,Pentium处理器的处理器的外部数据总线宽度为外部数据总线宽度为64位,位,它与存储器之间的数据传输率可达它与存储器之间的数据传输率可达528MB/s。n由于由于Pentium处理器内部的算术逻辑单元处理器内部的算术逻辑单元ALU(Arithmatic Logic Unit)和寄存器的宽度仍是和寄存器的宽度仍是32位位的,所以它的,所

4、以它仍属于仍属于32位微处理器。位微处理器。nPentium处理器的处理器的地址总线位数为地址总线位数为32位,位,即它的直接寻即它的直接寻址物理地址空间为址物理地址空间为2324GB。n另外,另外,BIU还有还有地址总线驱动、数据总线驱动、总线地址总线驱动、数据总线驱动、总线周期控制及总线仲裁周期控制及总线仲裁等多项功能。等多项功能。7.1.2 指令指令Cache与数据与数据CacheCache(高速缓存高速缓存)技术是现代微处理器及微型计算机设技术是现代微处理器及微型计算机设计中普遍采用的一项重要技术。计中普遍采用的一项重要技术。它使它使CPU在较低速的存储器件条件下获得较高速的存在较低速

5、的存储器件条件下获得较高速的存储器访问时间,并提高系统的性能价格比。储器访问时间,并提高系统的性能价格比。在在Pentium之前的之前的80386设计中,曾在处理器外部设置设计中,曾在处理器外部设置一个容量较小但速度较快的一个容量较小但速度较快的“片外片外Cache”。在在80486中,则是在处理器内部设置了一个中,则是在处理器内部设置了一个8KB的的“片内片内Cache”,统一作为指令和数据共用的高速缓存。,统一作为指令和数据共用的高速缓存。Pentium处理器中的处理器中的Cache设计与设计与80386和和80486有很大的有很大的不同,它采用不同,它采用哈佛结构哈佛结构。把把Cache

6、分为分为“指令指令Cache”和和“数据数据Cache”分别设置,分别设置,从而避免仅仅设置统一从而避免仅仅设置统一Cache时发生存储器访问冲突的时发生存储器访问冲突的现象。现象。Pentium包括两个包括两个8KB的的Cache一个为一个为8KB的数据的数据Cache,一个为,一个为8KB的指令的指令Cache。指令指令Cache只存储指令,而数据只存储指令,而数据Cache只存储指令所需的只存储指令所需的数据。数据。在只有统一的高速缓存的微处理器在只有统一的高速缓存的微处理器(如如 80486)中,一个数据中,一个数据密集的程序很快就会占满高速缓存,几乎没有空间用于指密集的程序很快就会占

7、满高速缓存,几乎没有空间用于指令缓存,这就降低了微处理器的执行速度。令缓存,这就降低了微处理器的执行速度。在在Pentium中就不会发生这种情况,因为它有单独的指令中就不会发生这种情况,因为它有单独的指令Cache。如图如图7-1所示,经过所示,经过BIU,指令被保存在,指令被保存在8KB的的“指令指令Cache”中,而指令所需要的数据则保存在中,而指令所需要的数据则保存在8KB的的“数据数据Cache”中。中。这两个这两个Cache可以并行工作,并被称为可以并行工作,并被称为“1级级Cache”或或“片内片内Cache”,以区别于设置在微以区别于设置在微处理器外部的处理器外部的“2级级Cac

8、he”或或“片外片外Cache”。7.1.3 超标量流水线结构超标量流水线结构n“超标量流水线超标量流水线”结构是结构是Pentium处理器设计技术处理器设计技术的核心。的核心。n流水线流水线(pipeline)方式是把一个重复的过程分解为方式是把一个重复的过程分解为若干子过程,每个子过程可以与其他子过程并行若干子过程,每个子过程可以与其他子过程并行进行的工作方式。进行的工作方式。n采用流水线技术设计的微处理器,把每条指令分为若采用流水线技术设计的微处理器,把每条指令分为若干个顺序的操作干个顺序的操作(如取指、译码、执行等如取指、译码、执行等),每个操作,每个操作分别由不同的处理部件分别由不同

9、的处理部件(如取指部件、译码部件、执行如取指部件、译码部件、执行部件等部件等)来完成。来完成。n这样构成的微处理器,可以同时处理多条指令。这样构成的微处理器,可以同时处理多条指令。n对于每个处理部件来说,每条指令的同类操作对于每个处理部件来说,每条指令的同类操作(如取指如取指令令)就像流水一样连续被加工处理。就像流水一样连续被加工处理。n这种指令重叠、处理部件连续工作的计算机这种指令重叠、处理部件连续工作的计算机(或处理或处理器器),称为流水线计算机,称为流水线计算机(或处理器或处理器)。n采用流水线技术,可以加快计算机执行程序的速度并采用流水线技术,可以加快计算机执行程序的速度并提高处理部件

10、的使用效率。提高处理部件的使用效率。n图图 7.2 表示了把指令划分为五个操作步骤并由处理器表示了把指令划分为五个操作步骤并由处理器中五个处理部件分别处理时流水线的工作情形。中五个处理部件分别处理时流水线的工作情形。图图7.2 五级流水的工作情形五级流水的工作情形03215476时间单位第一条指令第三条指令第二条指令取指译码写结果执行地址生成取指译码写结果执行地址生成取指译码写结果执行地址生成n如图如图7.2所示,流水线中的各个处理部件可并行工作,所示,流水线中的各个处理部件可并行工作,从而可使整个程序的执行时间缩短。从而可使整个程序的执行时间缩短。n容易看到,在图中所示的容易看到,在图中所示

11、的7个时间单位个时间单位内,已全部执行内,已全部执行完完3条指令。条指令。n如果以完全串行的方式执行,则如果以完全串行的方式执行,则3条指令需条指令需3515个个时间单位时间单位才能完成。才能完成。n显然,显然,采用流水线方式可以显著提高计算机的处理速采用流水线方式可以显著提高计算机的处理速度。度。nPentium处理器的流水线由分别称为处理器的流水线由分别称为“U流水流水”和和“V流水流水”的两条指令流水线构成的两条指令流水线构成(双流水线结构双流水线结构),其中每条流水线都,其中每条流水线都拥有自己的地址生成逻辑、拥有自己的地址生成逻辑、ALU及数据及数据Cache接口。接口。nPenti

12、um处理器可以在一个时钟周期内同时发送两条指令进处理器可以在一个时钟周期内同时发送两条指令进入流水线。比相同频率的单条流水线结构入流水线。比相同频率的单条流水线结构(如如 80486)性能提性能提高了一倍。高了一倍。n通常称这种具有两条或两条以上能够并行工作的流水线结通常称这种具有两条或两条以上能够并行工作的流水线结构为构为超标量超标量(superscalar)结构。结构。n与图与图7.2所示的情形相同,所示的情形相同,Pentium的每一条流水线也是的每一条流水线也是分为五个阶段分为五个阶段(5级流水级流水):n“指令预取指令预取”、“指令译码指令译码”、“地址生成地址生成”、“指令指令执行

13、执行”和和“回写回写”。nPentium处理器实现的是两条流水线的并行操作,而每处理器实现的是两条流水线的并行操作,而每条流水线由五个流水级构成。条流水线由五个流水级构成。另外,还可以将流水线的若干流水级另外,还可以将流水线的若干流水级进一步细分为更进一步细分为更多的阶段多的阶段(流水小级流水小级),并通过一定的流水线调度和控制,并通过一定的流水线调度和控制,使每个细分后的使每个细分后的“流水小级流水小级”可以与其他指令的不同可以与其他指令的不同的的“流水小级流水小级”并行执行,从而进一步提高微处理器并行执行,从而进一步提高微处理器的性能。的性能。这被称为这被称为“超级流水线超级流水线”技术技

14、术(superpipelining)。“超级流水线超级流水线”与“超标量超标量”结构结构的不同:n超标量结构超标量结构是通过重复设置多个是通过重复设置多个“取指取指”部件,设置部件,设置多个多个“译码译码”、“地址生成地址生成”、“执行执行”和和“写结果写结果”部件,并让这些功能部件同时工作来加快程序的执行,部件,并让这些功能部件同时工作来加快程序的执行,实际上是实际上是以增加硬件资源为代价来换取处理器性能的;以增加硬件资源为代价来换取处理器性能的;n而而超级流水线超级流水线处理器则不同,它只需增加少量硬件,处理器则不同,它只需增加少量硬件,是通过各部分硬件的充分重叠工作来提高处理器性能是通过

15、各部分硬件的充分重叠工作来提高处理器性能的。的。n从流水线的时空角度上看:从流水线的时空角度上看:n超标量处理器采用的是空间并行性超标量处理器采用的是空间并行性;n超级流水线处理器采用的是时间并行性。超级流水线处理器采用的是时间并行性。n从超大规模集成电路从超大规模集成电路(VLSI)的实现工艺来看:的实现工艺来看:n超标量处理器能够更好地适应超标量处理器能够更好地适应VLSI工艺的要求。通常,工艺的要求。通常,超标量处理器要使用更多的晶体管超标量处理器要使用更多的晶体管。n超流水线处理器则需要更快的晶体管及更精确的超流水线处理器则需要更快的晶体管及更精确的 电路设计。电路设计。n为了进一步提

16、高处理器执行指令的并行度,可以把超标为了进一步提高处理器执行指令的并行度,可以把超标量技术与超流水线技术结合在一起,这就是量技术与超流水线技术结合在一起,这就是“超标量超超标量超流水线流水线”处理器处理器。n例如,例如,Intel的的P6结构结构(Pentium/处理器处理器)就是采用这就是采用这种技术的更高性能微处理器,其种技术的更高性能微处理器,其n超标度为超标度为3(即有即有3条流水线条流水线并行操作并行操作);n流水线的级数为流水线的级数为12级。级。7.1.4 动态转移预测及转移目标缓冲器动态转移预测及转移目标缓冲器BTB (Branch Target Buffer)n正是由于计算机

17、指令中具有能够改变程序流向的指令,正是由于计算机指令中具有能够改变程序流向的指令,才使得程序结构灵活多样,程序功能丰富多彩。才使得程序结构灵活多样,程序功能丰富多彩。n这类指令一般包括跳转这类指令一般包括跳转(JMP)指令、调用指令、调用(CALL)指令和指令和返回返回(RET)指令等,我们统称之为指令等,我们统称之为转移转移(branch)指令。指令。n转移指令又可分为转移指令又可分为“无条件转移指令无条件转移指令”及及“条件转移指条件转移指令令”两大类。两大类。n无条件转移指令执行时一定会发生转移无条件转移指令执行时一定会发生转移,而,而条件转移条件转移指令执行时是否发生转移则取决于指令所

18、要求的条件指令执行时是否发生转移则取决于指令所要求的条件当时是否满足。当时是否满足。n例如:例如:80 x86系统中的条件转移指令系统中的条件转移指令“JC START”,执行时若,执行时若进位标志进位标志CF为为1,则使程序转移到,则使程序转移到“转移目标地转移目标地址址”START处;否则,将顺序执行紧接着这条指令之处;否则,将顺序执行紧接着这条指令之后的下一条指令。后的下一条指令。n 转移指令也给处理器的流水线操作带来麻烦。转移指令也给处理器的流水线操作带来麻烦。n因为在因为在处理器预取指令时处理器预取指令时还未对指令进行译码,即它还未对指令进行译码,即它还不知道哪条指令是转移指令,所以

19、只能按程序的静还不知道哪条指令是转移指令,所以只能按程序的静态顺序进行。态顺序进行。n也就是说,即使是遇到一条转移指令,也也就是说,即使是遇到一条转移指令,也无法到无法到“转转移目标地址移目标地址”处去预取指令装入指令队列处去预取指令装入指令队列,而,而只能顺只能顺序地装入紧接着转移指令之后的若干条指令序地装入紧接着转移指令之后的若干条指令。n而当指令被执行并而当指令被执行并确实发生转移时确实发生转移时,指令预取缓冲器,指令预取缓冲器中预先装入的指令就没用了。中预先装入的指令就没用了。n此时必须此时必须将指令缓冲器中原来预取的指令废除将指令缓冲器中原来预取的指令废除(也称也称“排空排空”流水线

20、流水线),并从转移目标地址开始处重新取指,并从转移目标地址开始处重新取指令装入流水线。令装入流水线。n这样就极大地影响了流水线的处理速度和性能。这样就极大地影响了流水线的处理速度和性能。n已有多项技术用于减小转移指令对流水线性能的影响,已有多项技术用于减小转移指令对流水线性能的影响,如基于编译软件的如基于编译软件的“延迟转移延迟转移”(delayed branching)技技术和基于硬件的术和基于硬件的“转移预测转移预测”(branch prediction)技术。技术。n转移预测又有转移预测又有“静态转移预测静态转移预测”及及“动态转移预测动态转移预测”之分。静态转移预测只依据转移指令的类型

21、来预测转之分。静态转移预测只依据转移指令的类型来预测转移是否发生。例如,对某一类条件转移指令总是预测移是否发生。例如,对某一类条件转移指令总是预测为转移发生,对另一类总是预测转移不发生。为转移发生,对另一类总是预测转移不发生。n显然,静态转移预测的正确率不会很高,只能作为其显然,静态转移预测的正确率不会很高,只能作为其他转移处理技术的辅助手段。他转移处理技术的辅助手段。n动态转移预测法动态转移预测法(dynamic branch prediction)是依据一是依据一条转移指令过去的行为来预测该指令的将来行为。即条转移指令过去的行为来预测该指令的将来行为。即处理器要有一个处理器要有一个“不断学

22、习不断学习”的过程。的过程。n由于程序结构中有众多重复或循环执行的机会,所以由于程序结构中有众多重复或循环执行的机会,所以在预测算法选得较好的情况下,动态转移预测会达到在预测算法选得较好的情况下,动态转移预测会达到较高的正确率,较高的正确率,故被现代微处理器所普遍采用。故被现代微处理器所普遍采用。n下面,仍以下面,仍以Pentium为例来简要说明这种动态转移预测为例来简要说明这种动态转移预测法的基本工作原理。法的基本工作原理。nPentium提供了一个称为提供了一个称为“转移目标缓冲器转移目标缓冲器”BTB (Branch Target Buffer)的小的小Cache来动态预测程序的转来动态

23、预测程序的转移操作。移操作。n在程序执行时,若某条指令导致转移,便在程序执行时,若某条指令导致转移,便记忆下这条记忆下这条转移指令的地址转移指令的地址及及转移目标地址转移目标地址(放入放入BTB内部的内部的“登登记项记项”中中),并用这些信息来预测这条指令再次发生转,并用这些信息来预测这条指令再次发生转移时的路径,预先从这里记录的移时的路径,预先从这里记录的“转移目标地址转移目标地址”处处预取指令,以保证流水线的指令预取不会空置。预取指令,以保证流水线的指令预取不会空置。n其基本工作机制如图其基本工作机制如图7.3所示。所示。图图7.3 Pentium BTB的工作机制的工作机制转移目标地转移

24、目标地址址历史位历史位 有效位有效位 转移指令地址转移指令地址 指令指令预取器预取器逻辑控制逻辑控制执行执行指令译码指令译码预取缓冲器预取缓冲器指令指令Cache加入新项加入新项转移取转移取顺序取顺序取 选择相应操作选择相应操作实际执行情况实际执行情况命中与否命中与否查找查找取指令取指令n“指令译码指令译码”阶段检查从预取缓冲器中取出的指令是否阶段检查从预取缓冲器中取出的指令是否为转移指令,若是转移指令,则将此指令的地址送往为转移指令,若是转移指令,则将此指令的地址送往BTB进行查找。进行查找。n若若BTB命中命中(即在即在BTB中存在相应的登记项中存在相应的登记项),则根据该,则根据该项的项

25、的“历史位历史位”状态预测此指令在执行阶段是否发生状态预测此指令在执行阶段是否发生转移。转移。n若预测为发生转移,则将该项中登记的若预测为发生转移,则将该项中登记的“转移目标地转移目标地址址”提交给指令预取器,提交给指令预取器,并指挥指令预取器从并指挥指令预取器从“转移转移目标地址目标地址”处提取指令装入预取缓冲器,即进行图处提取指令装入预取缓冲器,即进行图7.3中所示的中所示的“转移取转移取”;n若预测为不发生转移,则从该转移指令的下一条指令若预测为不发生转移,则从该转移指令的下一条指令开始提取指令,即进行所谓开始提取指令,即进行所谓“顺序取顺序取”。n若若BTB未命中未命中(即在即在BTB

26、中不存在相应的登记项中不存在相应的登记项),则说,则说明明BTB中没有该指令的历史记录,此时固定预测为不中没有该指令的历史记录,此时固定预测为不发生转移,即固定进行发生转移,即固定进行“顺序取顺序取”。n至于该指令在执行阶段实际发生转移时的处理情况,至于该指令在执行阶段实际发生转移时的处理情况,将在下面介绍将在下面介绍Pentium“执行单元执行单元”的功能时再作具体的功能时再作具体说明。说明。nBTB登记项中的登记项中的“历史位历史位”用以登记相应转移指令先前用以登记相应转移指令先前的执行行为,并用于预测此指令执行时是否发生转移。的执行行为,并用于预测此指令执行时是否发生转移。n在执行阶段要

27、根据实际是否发生转移,来修改命中项的在执行阶段要根据实际是否发生转移,来修改命中项的历史位;历史位;n对于对于BTB未命中的转移指令而在执行阶段发生转移的情未命中的转移指令而在执行阶段发生转移的情况,在况,在BTB中建立新项中建立新项(加入新项加入新项)并设定历史位为并设定历史位为11。n图图7.4给出了给出了BTB历史位的意义及状态转换情况。历史位的意义及状态转换情况。图图7.4 Pentium BTB历史位的意义历史位的意义及状态转换及状态转换历史位历史位:11预测:强发生转移预测:强发生转移历史位:历史位:00预测:不发生转移预测:不发生转移历史位:历史位:01预测:弱发生转移预测:弱发

28、生转移历史位:历史位:10预测:发生转移预测:发生转移实际发生转移时,历史位修改方向实际发生转移时,历史位修改方向实际不发生转移时,历史位修改方向实际不发生转移时,历史位修改方向发生转移发生转移不发生转移不发生转移由图由图7.4可以看出,可以看出,Pentium对历史位意义的设定更倾向于对历史位意义的设定更倾向于预测转移发生。预测转移发生。历史位历史位11常称为常称为“强发生强发生”(strongly taken)状态,状态,10称为称为“发生发生”(taken)状态,状态,01称为称为“弱发生弱发生”(weakly taken)状态,这三种历史位都预测转移发生。状态,这三种历史位都预测转移发

29、生。容易想到,对于循环程序而言,在首次进入循环和退容易想到,对于循环程序而言,在首次进入循环和退出循环时,都将出现转移预测错误的情况。出循环时,都将出现转移预测错误的情况。即首次进入循环时,预测不发生转移,而实际发生转即首次进入循环时,预测不发生转移,而实际发生转移;退出循环时,预测发生转移,而实际不发生转移。移;退出循环时,预测发生转移,而实际不发生转移。这两种情况下均需要重新计算转移地址,并造成流水这两种情况下均需要重新计算转移地址,并造成流水线的停顿和等待。线的停顿和等待。但若循环但若循环10次,次,2次预测错误而次预测错误而8次正确;循环次正确;循环100次,次,2次预测错误而次预测错

30、误而98次正确。次正确。因此,因此,循环次数越多,循环次数越多,BTB的效益越明显。的效益越明显。7.1.5 指令预取器和预取缓冲器指令预取器和预取缓冲器指令预取器指令预取器总是按给定的指令地址,从指令总是按给定的指令地址,从指令Cache中顺中顺序地取出指令放入预取缓冲器中,直到在指令译码阶序地取出指令放入预取缓冲器中,直到在指令译码阶段遇到一条转移指令并预测它在指令执行阶段将发生段遇到一条转移指令并预测它在指令执行阶段将发生转移时为止。转移时为止。此时,如图此时,如图7.4所示,由所示,由BTB提供预测转移发生时的目提供预测转移发生时的目标地址,并按此地址开始再次顺序地取指令,直到又标地址

31、,并按此地址开始再次顺序地取指令,直到又遇到一条转移指令并预测转移发生时为止。遇到一条转移指令并预测转移发生时为止。指令预取器就是以这种指令预取器就是以这种折线式顺序折线式顺序由指令由指令Cache取出指取出指令装入令装入预取缓冲器预取缓冲器的。的。7.1.6 指令译码器指令译码器指令译码器指令译码器的基本功能是将预取来的指令进行译码,的基本功能是将预取来的指令进行译码,以确定该指令的操作。以确定该指令的操作。Pentium处理器中,指令译码处理器中,指令译码器的工作过程可分为两个阶段:器的工作过程可分为两个阶段:在第一个阶段,对指令的操作码进行译码,并检查是在第一个阶段,对指令的操作码进行译

32、码,并检查是否为转移指令。否为转移指令。若是转移指令,则将此指令的地址送往若是转移指令,则将此指令的地址送往BTB。再进一。再进一步检查步检查BTB中该指令的历史记录,并决定是否实施相中该指令的历史记录,并决定是否实施相应的转移预测操作。应的转移预测操作。在第二个阶段,指令译码器需生成存储器操作数的地在第二个阶段,指令译码器需生成存储器操作数的地址。址。在保护方式下,还需按保护模式的规定检查是否有违在保护方式下,还需按保护模式的规定检查是否有违约地址,若有,则产生约地址,若有,则产生“异常异常”(exception),并进行,并进行相应的处理。相应的处理。7.1.7 执行单元执行单元EUn指令

33、的执行以两个指令的执行以两个ALU为中心,完成为中心,完成U、V流水线中两条流水线中两条指令的算术及逻辑运算。指令的算术及逻辑运算。n执行单元的主要功能有:执行单元的主要功能有:n(1)按地址生成阶段按地址生成阶段(即指令译码的第二阶段即指令译码的第二阶段)提供的存储器提供的存储器操作数地址,首先在操作数地址,首先在1级数据级数据Cache中获取操作数中获取操作数;n若若1级数据级数据Cache“未命中未命中”(操作数未在操作数未在Cache中中),则在,则在2级级Cache(片外片外Cache)或主存中查找。或主存中查找。n(2)确认在指令译码阶段对转移指令的转移预测是否与实确认在指令译码阶

34、段对转移指令的转移预测是否与实际情况相符,即确认预测是否正确。际情况相符,即确认预测是否正确。n若预测正确,若预测正确,则除了适当修改则除了适当修改BTB中的中的“历史位历史位”外,外,其他什么事情也不发生;其他什么事情也不发生;n若预测错误若预测错误,则除了修改,则除了修改“历史位历史位”外,还要清除该指外,还要清除该指令之后已在令之后已在U、V流水线中的全部指令流水线中的全部指令(“排空排空”流水线流水线),并指挥并指挥“指令预取器指令预取器”重新取指令装入流水线。重新取指令装入流水线。n另外,另外,对于前面提到的在查找对于前面提到的在查找BTB时时“未命中未命中”从而固定预测从而固定预测

35、为不发生转移的情况为不发生转移的情况:n若在执行阶段此指令确实没有发生转移若在执行阶段此指令确实没有发生转移,则其他什么事情也不,则其他什么事情也不发生,以后再遇到此转移令时仍作为一个发生,以后再遇到此转移令时仍作为一个“新面孔新面孔”的转移指的转移指令按前述办法来对待;令按前述办法来对待;n若在执行阶段此指令实际发生转移的话若在执行阶段此指令实际发生转移的话,则按,则按“预测错误预测错误”处处理,此时除了理,此时除了“排空排空”流水线外,还需将流水线外,还需将“转移目标地址转移目标地址”提提交给交给BTB,连同在指令译码阶段提交的,连同在指令译码阶段提交的“转移指令地址转移指令地址”,在在B

36、TB中建立一个新项,并设定中建立一个新项,并设定“历史位历史位”为为“强发生强发生”状态状态(11)。7.1.8 浮点处理单元浮点处理单元FPUn浮点处理单元浮点处理单元FPU(Floating Point Unit)专门用来处理浮专门用来处理浮点数或进行浮点运算,因此也称浮点运算器。点数或进行浮点运算,因此也称浮点运算器。n在在8086、80286及及80386年代,曾设置单独的年代,曾设置单独的FPU芯片芯片(8087、80287和和80387),并称为算术协处理器,并称为算术协处理器(Mathematical CO-processor),简称协处理器。那时的,简称协处理器。那时的主板上配

37、有专门的协处理器插座。主板上配有专门的协处理器插座。n自从自从80486 DX开始开始,则将,则将FPU移至微处理器内部,成为移至微处理器内部,成为微处理器芯片的一个重要组成部分微处理器芯片的一个重要组成部分(如图如图7-1所示所示)。nPentium处理器的处理器的FPU性能已做了很大改进。性能已做了很大改进。FPU内有内有8个个80位的浮点寄存器位的浮点寄存器FR0FR7,内部数据总线宽度为,内部数据总线宽度为80位,并有分立的浮点加法器、浮点乘法器和浮点除法位,并有分立的浮点加法器、浮点乘法器和浮点除法器,器,可同时进行三种不同的运算。可同时进行三种不同的运算。nFPU的浮点指令流水线也

38、是双流水线结构。每条流水线的浮点指令流水线也是双流水线结构。每条流水线分为分为8个流水级:个流水级:预取指令、指令译码、地址生成、取操作数、执行预取指令、指令译码、地址生成、取操作数、执行1、执行执行2、写回结果和错误报告。、写回结果和错误报告。7.1.9 控制单元控制单元CUn控制单元控制单元CU(Control Unit)的基本功能是控制整个微处的基本功能是控制整个微处理器按照一定的时序过程一步一步地完成指令的操作。理器按照一定的时序过程一步一步地完成指令的操作。nPentium 的大多数简单指令都是以所谓的大多数简单指令都是以所谓“硬连硬连线线”(hard wired)逻辑来实现的,即指

39、令通过逻辑来实现的,即指令通过“指令译指令译码器码器”译码后直接产生相应的控制信号来控制指令的译码后直接产生相应的控制信号来控制指令的执行,从而获得较快的指令执行速度;执行,从而获得较快的指令执行速度;n对于那些复杂指令的执行则是以对于那些复杂指令的执行则是以 “微程序微程序”(microprogramming)方式实现的。方式实现的。按照微程序实现方式,是将指令的操作变成相应的一按照微程序实现方式,是将指令的操作变成相应的一组微指令序列组微指令序列(即微程序即微程序)并预先存放在一个只读存储器并预先存放在一个只读存储器(Microcode ROM)中。中。当指令执行时,按安排好的顺序从只读存

40、储器中一条当指令执行时,按安排好的顺序从只读存储器中一条一条读出这些微指令,从而产生相应的操作控制信号一条读出这些微指令,从而产生相应的操作控制信号去控制指令的执行。去控制指令的执行。n“微程序微程序”方式与方式与“硬连线硬连线”方式是方式是CPU控制指令执行控制指令执行的两种不同的实现方式。的两种不同的实现方式。n它们各有不同的特点。它们各有不同的特点。n一般说来,一般说来,“微程序微程序”方式较方便灵活,但指令执行方式较方便灵活,但指令执行速度较慢,在传统的微处理器设计如速度较慢,在传统的微处理器设计如CISC(Complex Instruction Set Computer)结构中常被采

41、用;结构中常被采用;n“硬连线硬连线”方式灵活性较差,但它的突出优点是指令执方式灵活性较差,但它的突出优点是指令执行速度很快,行速度很快,常用于常用于RISC(Reduced Instruction Set Computer)结构的机器中。结构的机器中。n也可以说,也可以说,RISC结构中一般不使用结构中一般不使用“微程序微程序”技术。技术。n另外,控制单元还负责流水线的时序控制,以及处理另外,控制单元还负责流水线的时序控制,以及处理与与“异常异常”和和“中断中断”有关的操作和控制。有关的操作和控制。7.2 微处理器的外部功能特性微处理器的外部功能特性7.2.1 微处理器的外部引脚信号微处理器

42、的外部引脚信号1.80386 DX的外部引脚信号概况的外部引脚信号概况n80386 DX微处理器共微处理器共132个外部引脚,用来实现与存储个外部引脚,用来实现与存储器、器、I/O接口或其他外部电路进行连接和通信。接口或其他外部电路进行连接和通信。n按功能的不同,可将这按功能的不同,可将这132个引脚信号分成个引脚信号分成4组:组:存储器存储器/IO接口接口 中断接口中断接口 DMA接口接口 协处理器接口协处理器接口n图图7.6给出了给出了80386 DX外部引脚信号概况图示。表外部引脚信号概况图示。表 7-1列出了各个引脚信号的名称、功能、传送方向以及每列出了各个引脚信号的名称、功能、传送方

43、向以及每个信号的有效电平。个信号的有效电平。图图7.6 微处理器微处理器(80386 DX)的外部引脚信号的外部引脚信号微处理器微处理器80386DXA31A2D31D0DMA接口接口中断接口中断接口协处理器接口协处理器接口HOLDHLDAINTRNMI_BUSYPEREQRESET_ERROR_ _BE3BE0_READY_ADS _M/IO _W/R_BS16_LOCK_NA _D/C存储器存储器/IO接口接口表表7-1 80386 DX 外部引脚信号列表外部引脚信号列表30BE BE16BS名称名称功能功能方向方向有效电平有效电平CLK2系统时钟系统时钟输入输入A31A2地址总线地址总线

44、输出输出字节允许字节允许输出输出0D31D0数据总线数据总线输入输入/输出输出16位总线宽度位总线宽度输入输入0W/写写/读指示读指示输出输出1/0D/数据数据/控制指示控制指示输出输出1/0M/存储器存储器/IO指示指示输出输出1/0地址状态地址状态输出输出0就绪就绪输入输入0下一地址请求下一地址请求输入输入0总线封锁总线封锁输出输出0INTR中断请求中断请求输入输入1NMI非屏蔽中断请求非屏蔽中断请求输入输入1RESET系统复位系统复位输入输入1HOLD总线保持请求总线保持请求输入输入1HLDA总线保持响应总线保持响应输出输出1PEREQ协处理器请求协处理器请求输入输入1协处理器忙协处理器

45、忙输入输入0协处理器错协处理器错输入输入0RCIOADSREADYNALOCKBUSYERRORn例如,例如,“存储器存储器/IO接口接口”中的中的M/IO信号信号:n其功能是其功能是“存储器存储器/IO指示指示”,用以告诉外部电路当前,用以告诉外部电路当前微处理器是在微处理器是在访问存储器还是访问存储器还是I/O接口;接口;n该信号的传送该信号的传送方向是输出方向是输出,即它是由微处理器产生的,即它是由微处理器产生的输出信号;它的输出信号;它的有效电平为有效电平为1/0,其含义为,在这个信,其含义为,在这个信号线上的逻辑号线上的逻辑1电平表明电平表明CPU当前是在访问存储器,而当前是在访问存

46、储器,而逻辑逻辑0电平表明是在访问电平表明是在访问I/O接口。接口。n又如,又如,“中断接口中断接口”中的中的INTR信号信号:n是是可屏蔽中断请求输入信号,其有效电平是逻辑可屏蔽中断请求输入信号,其有效电平是逻辑1。外。外部设备利用这个信号通知微处理器,它们需要得到服部设备利用这个信号通知微处理器,它们需要得到服务。务。(1)地址和数据总线信号地址和数据总线信号n地址总线和数据总线形成了地址总线和数据总线形成了CPU与存储器和与存储器和I/O子系统子系统间进行通信的基本通路。间进行通信的基本通路。n在早期的在早期的Intel微处理器微处理器(如如8085、8086/8088)中,曾普遍中,曾

47、普遍采用地址总线和数据总线复用技术,即将部分采用地址总线和数据总线复用技术,即将部分(或全部或全部)地址总线与数据总线共用微处理器的一部分引脚,目的地址总线与数据总线共用微处理器的一部分引脚,目的是为了减少微处理器的引脚数量,但由此也会带来控制是为了减少微处理器的引脚数量,但由此也会带来控制逻辑及操作时序上的复杂性。逻辑及操作时序上的复杂性。n自自80286及更高型号的微处理器开始,及更高型号的微处理器开始,则采用分开的则采用分开的地址和数据总线。地址和数据总线。n如图如图7.5所示,所示,80386 DX的地址总线信号的地址总线信号A31A2和数和数据总线信号据总线信号D31D0被分别设定在

48、不同的引脚上。被分别设定在不同的引脚上。n从硬件的观点来看,从硬件的观点来看,80386 DX的实模式与保护模式之的实模式与保护模式之间仅有一点不同,即地址总线的规模。间仅有一点不同,即地址总线的规模。n在实模式下,只输出低在实模式下,只输出低18位地址信号位地址信号A19A2。n在保护模式下,则输出在保护模式下,则输出30位地址信号位地址信号A31A2。n其实,实模式的地址长度为其实,实模式的地址长度为20位,保护模式的地址长位,保护模式的地址长度是度是32位。其余的两位地址码位。其余的两位地址码A1和和A0被被80386 DX内部内部译码,产生字节允许信号译码,产生字节允许信号BE3、BE

49、2、BE1和和BE0,以,以控制在总线上传送字节、字或双字。控制在总线上传送字节、字或双字。n由图由图7.6 及表及表7-1可以看到,可以看到,地址总线是输出信号线。地址总线是输出信号线。它们用于传送从它们用于传送从CPU到存储器或到存储器或I/O接口的地址信息。接口的地址信息。n在实模式下,在实模式下,20位地址给出了位地址给出了80386 DX寻址寻址1M(220)字节物理地址空间的能力;字节物理地址空间的能力;n而在保护模式下,而在保护模式下,32位地址可以寻址位地址可以寻址4G(232)字节的物字节的物理地址空间。理地址空间。n无论是在实模式下还是保护模式下,无论是在实模式下还是保护模

50、式下,80386 DX微型计微型计算机均具有算机均具有独立的独立的I/O地址空间地址空间。n该该I/O地址空间的大小为地址空间的大小为64K字节单元。字节单元。n所以,在寻址所以,在寻址I/O设备时,仅需使用地址线设备时,仅需使用地址线A15A2及及相应的字节允许信号相应的字节允许信号BE。n数据总线由数据总线由32条数据线条数据线D31D0构成。由图构成。由图7.6及表及表7-1可以看到,可以看到,数据总线是双向的,数据总线是双向的,即数据既可以由存储即数据既可以由存储器或器或I/O接口输入给接口输入给CPU,也可以由,也可以由CPU输出给存储器输出给存储器或或I/O接口。接口。n在数据总线

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《微型计算机基本原理与应用》课件第7章 微处理器的内部组成及外部功能特性.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|