首页 理论教育 8086微处理器中的操作与现代微处理器设计中的常见技术

8086微处理器中的操作与现代微处理器设计中的常见技术

时间:2023-11-03 理论教育 版权反馈
【摘要】:图2-11 流水线操作与非流水线操作在8086微处理器中,当EU未占用外部总线,且8086指令队列中出现2个空字节时,BIU自动启动取指令操作来填充指令队列。在现代的微处理器设计中,类似8086微处理器中EU和BIU的并发操作这种流水线技术是一种常见的提高微处理器性能的手段。目前Intel主推的Core系列微处理器使用折中的14级流水线,以减轻流水线无法充满(气泡)带来的效率问题。

8086微处理器中的操作与现代微处理器设计中的常见技术

除了在一个微处理器中使用多个运算器进行并发的数据处理之外,流水线也是另外一种经常被使用而且行之有效的提升微处理器性能的方式。流水线是指将计算机指令处理过程拆分为多个步骤,并通过多个硬件处理单元并行执行来加快指令执行速度的处理方式。其具体执行过程类似工厂中的流水线,并因此得名。计算机指令就是流水线传送带上的产品,各个硬件处理单元就是流水线旁的工人。由于流水线中指令的每个步骤(被称为流水线级)都要比整个指令简单,其处理所需要的时间也相对比较短,因此可以通过使用流水线技术提高微处理器的主频。很显然,在一个k级流水线中,一条指令需要依次经过这k级流水线的处理才能完成执行,这就意味这一条需要k个时钟周期才能完成。与此同时,由于一个k级流水线具有k个用于处理指令不同步骤的处理单元,在最理想的状态下可以同时处理k条指令,所以每个时钟周期都可以有一条指令完成处理。也就是说,在流水线充满的情况下,每个时钟周期可以完成一条指令,而使用流水线技术的微处理器可以使用更短的时钟周期,从而获得更好的处理性能。

在8086微处理器中,由于EU和BIU可以相互独立工作,就为实现EU和BIU的流水线操作,提高微处理器的性能提供了基础。在8086微处理器的正常运行过程中,BIU在保证EU与片外及时传送操作数的前提下,可以独立安排预取指令来填充指令队列的操作。由于指令队列缓冲器中已经缓冲了将要执行的指令,EU中的执行指令是预先准备好的,EU可以连续操作而不需要等待,EU和BIU实现一种流水化的操作,这就是流水线操作的雏形,相对于8080/8085这些8位微处理器是一个巨大进步。图2-11对比了非流水线操作和8086的流水线操作的区别。

从图2-11中可以看出,在4个周期中,非流水线操作的处理机只能执行2条指令,而流水线操作的处理机执行了3条指令,而且随着周期数的增加,两者之间的差距也会更大。虽然由于转移指令、总线争用等原因8086的流水线不一定能够保持图中所表示的理想情况,但流水线所带来的性能增益是很明显的。

978-7-111-46342-9-Chapter02-30.jpg

图2-11 流水线操作与非流水线操作(www.xing528.com)

在8086微处理器中,当EU未占用外部总线,且8086指令队列中出现2个空字节(8088是一个空字节)时,BIU自动启动取指令操作来填充指令队列。当指令队列是满的而且EU又不需要与片外进行数据交换的时候,BIU和外部总线处于空闲状态。当EU执行转移类的指令的时候,由于指令流的顺序发生了变化,指令预取队列中已经缓冲的指令将不再执行,指令队列也要重新刷新。这时的流水线操作就要受到影响,BIU将按转移目标地址重新取指令填充指令队列。

在现代的微处理器设计中,类似8086微处理器中EU和BIU的并发操作这种流水线技术是一种常见的提高微处理器性能的手段。在8086之后,X86系列所使用的流水线级数不断增加,80386为4级,80486为5级,Pentium在整数处理时为5级,在浮点运算时为6级,从Pentium Pro开始的第六代微处理器P6(还包括Pentium Ⅱ、Pentium Ⅲ)为12级,而采用NetBurst结构的Pentium 4又在P6的基础上扩大一倍以上,最多达到了31级。流水线级数越大,每个流水线级需要的处理时间也就越短,微处理器的主频也能越高,这种具有很大级数的流水线一般被称作“超流水线”。但是流水线级数也不是越大越好的,一方面过高的主频带来的功耗、散热等问题给微处理器设计带来很多困难,另一方面级数过多的流水线很难被充满,而无法充满的流水线也会带来微处理器整体性能的下降,这也是Pentium 4微处理器在性能上失败的一个重要原因。目前Intel主推的Core系列微处理器使用折中的14级流水线,以减轻流水线无法充满(气泡)带来的效率问题。

随着微处理器技术的发展,一条流水线,哪怕是一条高性能的超流水线也难以满足微处理器的性能要求,这就需要在微处理器中设计能够并发处理的多条流水线,依靠流水线之间的并行处理来提高微处理器处理指令的能力。在多流水线的微处理器中,各流水线之间可以完全相同,也可以不同。在现代的高性能微处理器设计中,最常见的手段是在微处理器中设计多个不同用途的流水线(如整数处理流水线、浮点数处理流水线、Load/Store处理流水线、转移处理流水线,或者它们的组合等),不同的流水线用来执行不同种类的指令,并针对其所执行的指令进行优化,从而得到更好的性能。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈