高频管道去耦合队列设计的制作方法

文档序号:6419164阅读:266来源:国知局
专利名称:高频管道去耦合队列设计的制作方法
技术领域
本发明一般涉及处理器,更具体说,本发明涉及处理器管道的性能增强。
处理器设计者总是试图减少处理器执行一个程序所花费的时间量。增加处理器性能的一种技术是重叠执行多条指令时涉及的步骤。这种技术称为管道。管道或管级(pipe stage)的每一个步骤完成一个指令的一部分。管级一个连接到下一个以形成一个管,其中指令从一端进入,并通过各级执行,在另一端输出。由于管道利用顺序指令流中指令间的并行性,因此它能减少每条指令的平均执行时间。
由于指令在不同的管级以不同的速率执行,因此,为了保证管道的最佳性能,一种方法包含在管道中插入队列以去耦合这些管级。例如,当在管道的取指令级和解码级之间插入一个队列时,处理器可以在取指令级中取回指令,并把它们存储到所插入的队列中。代替等待取指令级的输出,处理器能够直接从该队列中获取指令并开始其解码级。结果,取指令级和解码级的执行被去耦合。换句话说,这两个级可以独立执行它们各自的任务。
尽管所述去耦合队列机构增强了管道的性能,但是它的限制仍然阻碍在加速处理器中的继续设计努力。当处理器进一步拆分它的管级并增加它的时钟速度时,去耦合队列建立时间的持续时间和它为执行一条读或写操作的延迟时间鉴于正在减少的时钟周期而相当长。当这样的额外开销等于处理器时钟周期时,没有进一步的管道可用于增强处理器的性能。
如上所述,需要一种改进的方法和装置来满足不断发展的定时目的和以目标频率设计处理器而不影响它的性能。
一种用于加快处理器中多条指令处理的方法和装置。在一个实施例中,处理器有多个管道单元以处理多个指令。每一个管道单元有多个管级。另外,提供一个自定时队列从另一管级去耦合至少一个所述管级,其中自定时队列支持在该处理器的单一时钟周期内的读和写操作。
本发明通过例子来说明,并不由附图限制,附图中相似的参考指示相似的元件,其中图1表示用于处理指令的常规的管道。
图2表示用于根据图1中的管道处理指令的顺序。
图3表示本发明的一个特定应用的方框图。
图4表示本发明的一个实施例的方框图。
图5表示一个通用计算机系统结构。
图6表示本发明的控制逻辑单元的一个实施例的流程图。
图7表示本发明的控制逻辑单元的写指针和读指针处理的流程图。
图8a表示写指针和读指针指向本发明的数据存储单元中同一条目的一个例子。
图8b表示在本发明的数据存储单元中读指针返转和WR模式被激活的一个例子。
图8c表示在本发明的数据存储单元中写指针返转和RW模式被激活的一个例子。
图9表示为在一个处理器时钟周期内产生一个写信号和一个读信号的定时图。
说明了一种用于加快处理器中多个指令的处理的方法和装置。在下面的说明中,为透彻理解本发明,叙述了许多具体的细节,例如控制逻辑单元、数据存储单元和定时产生单元,等等。但是对于熟悉一般技术的人来说显然,本发明可以不要这些特殊细节实现。在其它的例子中,为避免不必要地模糊本发明,公知的元件和理论,诸如处理器设计、寄存器文件、管道、设置时间,等等,未特别详细讨论。
图1表示用于处理指令的常规的管道。这些指令的处理由四个阶段组成取指令100(称为F),指令解码102(称为D),计算操作数地址104(称为A)和执行/取操作数/存储操作数106(称为X)。这些步骤的每一个成为一个管级,并产生如图2所示的执行模式。当每一个指令仍然花费四个时钟周期时,在每一个时钟周期内硬件执行四个不同的指令的某一部分。尽管管道不减少单个指令的执行时间,但是它增加了单位时间完成的指令数量。
已经简单地讨论了常规管道的原理,图3表示本发明的一个特定应用的方框图。对于本领域的技术人员来说显然,该方框图可应用于处理器的其它管级。另外,图4表示本发明的一个实施例的方框图。该方框图可以在各种通用计算机系统的不同类型的处理器内实现。图5表示一个这样的计算机系统。
该计算机系统结构包括一个具有包含本发明的管道单元502的处理器500,用于处理音频、视频和数据信息,其与用于通信信息的总线部件504连接;随机存取存储器506,其与所述总线部件504连接,用于存储为所述处理器500的静态信息和指令;数据存储设备512,诸如磁盘和磁盘驱动器,其与所述总线部件504连接,用于存储操作系统516、信息和指令;可读介质514,诸如软盘或CD,其与所述总线部件504连接,用于为所述处理器500检索信息和指令;显示设备508,其与所述总线部件504连接,用于给计算机用户显示信息;字母数字或其它常规输入设备510,其与所述总线部件504连接,用于给所述处理器500通信信息和命令选择。
本发明的操作本发明是一种用于加快处理器中多个指令处理的方法和装置。具体说,本发明不但在处理器的一个管道单元中从另一个管级去耦合一个管级,而且它也支持从在处理器的单一时钟周期内的同一数据存储位置的读和写操作。另外,本发明产生它本身不重叠的读和写信号以触发合适的读和写操作。这些读和写信号在最小持续时间内保持激活以完成希望的操作和满足随后的逻辑级的设置时间的需要。本发明也包括决定最有效的顺序的逻辑部件以执行读和写操作。
本发明的一个应用是在如图3所示的特殊部件上操作的通用计算机系统。具体说,在管道单元502中选择的管级与本发明结合以用于表示去耦合队列306的功能。数据存储设备512上的操作系统516从数据存储设备512或可读介质514加载指令后,它还为指令的执行建立需要的环境。为处理器500的指令一般存储在随机存取存储器506中。
方框300从存储器取回可变长度指令。然后方框302根据从方框304的预解码得到的字节数来循环和对齐这个取回的信息。方框300、302和304可以一起被看作如图1所示的管级F100。由于去耦合队列306存储方框304的输出,因此图1中的指令解码单元或管级D102不需要停止等待管级F100的完成。代替的是,指令解码单元308可以通过处理存储的来自去耦合队列306中的指令进行。换句话说,管级F100和管级D102的操作通过使用去耦合队列306去耦合。
应该强调的是,尽管使用特定管级来说明本发明,但是本发明可以结合到其它管级内而不超出其范围。例如,可以在管级D102和管级A104之间插入去耦合队列306。此外,对熟悉一般技术的人来说十分明显,把本发明应用于比图1表示的四个管级更多的管级,或者一个处理器内的多个管道,或者在图5中表示的一个示例计算机系统内的多个处理器,而不背离本发明的范围。
图4进一步细化出图3中包含的去耦合队列306的结构。具体说,去耦合队列306包括控制逻辑单元400、定时产生单元402和数据存储单元404。在本发明的一个实施例中,数据存储单元404是一个寄存器文件。
图4和图6表示控制逻辑单元400的一个实施例。根据它的外部输入406和其内部指针计算,控制逻辑单元400产生一个控制信号410以指示为去耦合队列306希望的读和写方式。具体说,控制逻辑单元400通过在步骤600设定定时产生单元402为先写操作后读操作(称为WR)模式而开始。当控制逻辑单元400计算数据存储单元404中的位置以把到来的数据412写入和从其读出输出的数据414时,控制逻辑单元400保持独立的写指针和读指针以追踪计算的位置。
根据这两个指针的值或其外部输入406的值,控制逻辑单元400在步骤602判定数据存储单元404是否具有容量来继续接收到来的数据412。当写指针和读指针指示数据存储单元404已满,或者当外部输入406指示前一管级停止时,在步骤604,控制逻辑单元400给定时产生单元402发布一个控制信号410以切换到先读操作后写操作(称为RW)模式。否则,WR模式继续。
以相似的方式,根据写指针和读指针的值,在步骤606,控制逻辑单元400检验在输出数据414上的读操作是否耗尽数据存储单元404。根据步骤606的结果和控制逻辑单元400的当前状态,要么RW模式变回WR模式,或者状态RW模式或WR模式保持不变。
结合图8a、图8b和图8c所示的例子和图4所示的方框图,图7进一步说明所讨论的读指针和写指针操作。在步骤700,使用图8a所示具有五个条目的数据存储单元404,读指针800(称为RP800)和写指针802(称为WP802)最初指向同一第一条目,控制逻辑单元400以WR模式开始。当输入数据412进入数据存储单元404时,在步骤702WP802增量。类似地,当输出数据414离开数据存储单元404时,在步骤702RP802也增量。当指针到达数据存储单元404的末尾或条目5时,该指针返转即又从条目1开始。
图8b说明一个可能的方案,其中RP800返转,且数据存储单元404为空。更具体说,当WP802从条目1前进到条目5,并返转到条目2,和当RP800也以类似方式前进时,所有已被写入数据存储单元404的输入数据412通过输出数据414被读出。当在步骤704RP800和WP802指向同一条目2时,在步骤706验证RP800已被返转,在步骤710WR模式继续。换句话说,写操作必须在任何进一步读操作可以发生之前发生。当执行写操作时,WP802前进到条目3,而RP800保持在条目2。
另一方面,图8c提供一个可替换的方案,其中数据存储单元404为满。类似于前面的讨论,当在步骤704RP800和WP802指向同一条目时,在步骤708验证WP802已被返转,在步骤712WR模式变为RW模式。尤其是,读操作必须在任何随后的写操作之前发生,因为数据存储单元404不能接收任何另外的输入数据412。当执行读操作时,RP800前进到条目3,而WP802保持在条目2。
尽管使用本发明的一个实施例的细节说明一种特定方式的切换结构和控制逻辑单元400的操作,但是对于熟悉一般技术的人来说显然,在不背离本发明的范围下使用其它方法也能达到相同的目标。例如,模式切换智能可以是数据存储单元404的一部分。另外,应该考虑到可以以不同的顺序安排图6和图7表示的逻辑步骤,而仍然产生相同的结果。例如,图6中的步骤606和步骤602或图7中的步骤706和步骤708可以通过一些小的修改互换,而不影响结果。
在说明了在去耦合队列306中不同部件之间的交互反应后,图4结合图9表示定时产生单元402的操作。根据来自控制逻辑单元400的控制信号410,定时产生单元402产生一个相应于数据存储单元404的信号以初始数据存储单元404的写操作和读操作。具体说,当控制信号410指示WR模式时,处理器时钟416的上升边沿触发一个写信号418。相反,如果控制信号410指示RW模式,则处理器时钟416的上升边沿触发一个读信号420。
在单一处理器时钟周期的持续时间900内,当控制信号410指示WR模式时,不重叠的写信号418在图9所示902的持续时间内变为激活。在这段时间内,由写信号418触发的写操作完成把输入数据412写入数据存储单元404。在完成它的写操作后,数据存储单元404给定时产生单元402发布一个完成信号。在这一点,写信号418的时钟边沿下降,并触发随后的不重叠的读信号420。在持续时间为912的某些延迟后,读信号420被传输给数据存储单元404以触发它相应的读操作。类似于写信号418,读信号420保持激活,直到完成读操作。另外,它在906的持续时间内也保持激活以满足随后的逻辑级的任何最小设置时间要求。结果,随后的逻辑级可以立即利用剩余时间,即持续时间908,来执行任何需要的操作。
当控制信号410指示RW模式时类似的原理适用,代替不重叠的写信号418在902的一段持续时间内保持激活,不重叠的读信号420在这段时间内保持激活。不重叠的写信号418由读信号420的下降时钟边沿触发,它在904的一段持续时间内保持激活。
如上所述,本发明支持一个处理器时钟周期内的读操作和写操作。另外,由于操作不重叠,因此读操作可以从数据存储单元404的一个条目读出,而写操作可以写入同一条目。使用图8a作为说明,读操作可以首先从条目1读数据,然后写操作在同一处理器时钟周期内写入条目1。
这样,公开了一种用于加快处理处理器中多个指令的方法和装置。尽管特别参考


了本发明,但是,对于熟悉一般技术的人来说显然,本发明可以出现在任何数目的具有提供管道功能的处理器的系统中。另外还可以考虑到熟悉一般技术的人可以在不背离本发明的精神和范围下对其进行很多改变和修改。
权利要求
1.一种用于加快处理器中多个指令的处理的方法,该方法包括步骤a.提供多个管道单元以处理多个指令,其中所述多个管道单元的每一个有多个管级;和b.提供一个自定时队列从另一管级去耦合至少一个所述管级,其中所述自定时队列支持在所述处理器的单一时钟周期内的读和写操作两者。
2.根据权利要求1的方法,其中步骤(b)中的所述自定时队列进一步包括一个控制逻辑单元;一个定时产生单元;一个数据存储单元。
3.根据权利要求2的方法,其中,所述定时产生单元产生一个不重叠的写信号,用于在所述单一时钟周期内触发所述写操作;产生一个不重叠的读信号,用于在所述同一单一时钟周期内触发所述读操作;保证在最小持续时间内所述写和读信号保持激活以完成所述相应的写和读操作,并满足随后的逻辑级的设置时间要求。
4.根据权利要求1的方法,其中,执行所述写和读操作的序列可以互换。
5.根据权利要求1的方法,其中,可以在所述数据存储单元的同一条目上执行所述写和读操作。
6.根据权利要求4的方法,其中,所述控制逻辑单元决定所述写和读操作的所述顺序;和指示所述定时产生单元以按照所述顺序产生所述写和读信号。
7.根据权利要求3的方法,其中,所述定时产生单元产生一个第一信号,它要么是所述写信号要么是所述读信号;和一个第二信号,它要么是所述写信号要么是所述读信号,其中所述第一信号由所述处理器的一个时钟信号的上升边沿触发;所述第二信号由所述第一信号的下降边沿触发。
8.根据权利要求2的方法,其中,所述处理器的所述单一时钟周期很小;和所述数据存储单元有少量数据条目,但是每一个所述数据条目可以存储很大的数据值。
9.根据权利要求2的方法,其中,所述数据存储单元是一个寄存器文件。
10.一种处理器,包括用于处理多个指令的多个管道单元,其中所述多个管道单元的每一个有多个管级;和用于从另一个管级去耦合至少一个所述管级的自定时队列,其中所述自定时队列支持在所述处理器的单一时钟周期内的读和写操作。
11.根据权利要求10的处理器,其中,所述自定时队列进一步包括一个控制逻辑单元;一个定时产生单元;一个数据存储单元。
12.根据权利要求11的处理器,其中所述定时产生单元产生一个不重叠的写信号,用于在所述单一时钟周期内触发所述写操作;产生一个不重叠的读信号,用于在所述同一单一时钟周期内触发所述读操作;和保证在最小持续时间内所述写和读信号保持激活以完成所述相应的写和读操作,并满足随后的逻辑级的设置时间要求。
13.根据权利要求10的处理器,其中执行所述写和读操作的序列可以互换。
14.根据权利要求10的方法,其中可以在所述数据存储单元的同一条目上执行所述写和读操作。
15.根据权利要求13的处理器,其中所述控制逻辑单元决定所述写和读操作的所述顺序;指示所述定时产生单元以按照所述顺序产生所述写和读信号。
16.根据权利要求12的处理器,其中,所述定时产生单元产生一个第一信号,它要么是所述写信号要么是所述读信号;和一个第二信号,它要么是所述写信号要么是所述读信号,其中所述第一信号由所述处理器的一个时钟信号的上升边沿触发;所述第二信号由所述第一信号的下降边沿触发。
17.根据权利要求11的处理器,其中,所述处理器的所述单一时钟周期很小;所述数据存储单元有少量数据条目,但是每一个所述数据条目可以存储很大的数据值。
18.根据权利要求11的处理器,其中所述数据存储单元是一个寄存器文件。
19.一种计算机系统,包括一个处理器,包括,用于处理多个指令的多个管道单元,其中所述多个管道单元的每一个有多个管级;和用于从另一个管级去耦合至少一个所述管级的自定时队列,其中所述自定时队列支持在所述处理器的单一时钟周期内的读和写操作;连接到存储设备和所述处理器的总线部件,其中所述存储设备包括一个操作系统。
20.根据权利要求19的计算机系统,其中,所述处理器包括所述自定时队列,所述自定时队列进一步包括一个控制逻辑单元;一个定时产生单元;一个数据存储单元。
21.根据权利要求20的计算机系统,其中所述自定时队列包括所述定时产生单元,所述定时产生单元产生一个不重叠的写信号,用于在所述单一时钟周期内触发所述写操作;产生一个不重叠的读信号,用于在所述同一单一时钟周期内触发所述读操作;和保证在最小持续时间内所述写和读信号保持激活以完成所述相应的写和读操作,并满足随后的逻辑级的设置时间要求。
22.根据权利要求21的计算机系统,其中所述自定时队列可以互换执行一系列所述写和读操作。
23.根据权利要求19的方法,其中可以在所述数据存储单元的同一条目上执行所述写和读操作。
24.根据权利要求22的计算机系统,其中,所述自定时队列包括所述控制逻辑单元,所述控制逻辑单元决定所述写和读操作的所述顺序;指示所述定时产生单元根据所述顺序产生所述写和读信号。
25.根据权利要求24的计算机系统,其中,所述自定时队列包括所述定时产生单元,所述定时产生单元产生一个第一信号,它要么是所述写信号要么是所述读信号;和一个第二信号,它要么是所述写信号要么是所述读信号,其中所述第一信号由所述处理器的一个时钟信号的上升边沿触发;所述第二信号由所述第一信号的下降边沿触发。
26.根据权利要求20的计算机系统,其中,所述处理器的所述单一时钟周期很小;所述自定时队列包括所述数据存储单元,所述数据存储单元有少量数据条目,但是所述数据条目的每一个可以存储很大的数据值。
27.根据权利要求20的计算机系统,其中所述自定时队列包括所述数据存储单元,所述数据存储单元是一个寄存器文件。
全文摘要
一种用于加快处理器中多条指令处理的方法和装置。在一个实施例中,所述处理器有多个管道单元来处理多条指令。所述管道单元的每一个具有多个管道级(502)。另外,提供一个自定时队列(306)从另一个管级去耦合所述至少一个管级,其中所述自定时队列支持由不重叠读和写信号(902,904)触发的发生在所述处理器的同一单一时钟周期(900)内的读和写操作。
文档编号G06F9/38GK1320238SQ99811402
公开日2001年10月31日 申请日期1999年9月20日 优先权日1998年9月24日
发明者S·巴米迪帕蒂, K·V·韦德 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1