一种基于记分牌原理的两级缓置发射的调控装置的制造方法

文档序号:9787160阅读:384来源:国知局
一种基于记分牌原理的两级缓置发射的调控装置的制造方法
【技术领域】
[0001]本发明涉及超标量微处理器的指令流水线技术领域,特别是涉及一种基于记分牌原理的两级缓置发射的调控装置。
【背景技术】
[0002]现代超标量处理器一般包括取指,译码,重命名,发射,执行,退出等基本的流水线站台,且包含多个执行部件,允许多条指令并行执行。作为连接指令流水线和执行部件的桥梁,发射部件可以实时判断处理器当前的运行状态,从指令窗口中挖掘可以并行的指令,并动态调度到执行部件上执行。在发射部件之前的流水站台,指令均顺序进入,顺序流出;而对于发射部件而言,指令顺序进入,乱序流出。
[0003]为了支持指令动态调度,在超标量处理器中经常采用记分牌技术,其原理为:在记分牌状态中集中记录所有当前操作数的状态,标明是否可用,即是否可以被指令读出使用。指令对某个操作数要进行写操作时,封锁该操作数,使之不可用;当该指令执行完成后,则将该操作数解锁,标明此操作数可用。在操作数被封锁期间,以该操作数为源操作数的指令不可发射至执行部件,以消除写后读冒险,保证有数据相关性的指令严格按照程序序执行。而没有数据相关性的指令,在记分牌上也没有可关联性,可以乱序发射至执行部件,乱序执行。
[0004]具体来说,系统中用于维护指令间数据相关性的记分牌状态表(后续简称为记分牌状态表)包含η位的信息,集中记录了η个操作数是否可用的信息,即是否被封锁。每一位对应一个操作数,为“O”表示该操作数可用,即已经解锁;为“I”表示该操作数不可用,即被封锁。
[0005]经过重命名站台的每条指令都带有一个η位的源记分牌,每一位对应一个操作数。源记分牌中为“O”的位置表示本条指令的执行不需要对应的操作数可用,为“I”的位置表示本条指令的执行需要对应的操作数可用。每条指令的源记分牌,根据其源操作数的个数,可以有零位或者多位为“I”。
[0006]同时,经过重命名站台的每条指令都带有一个η位的目标记分牌,每一位对应一个操作数。目标记分牌中为“O”的位置表示本条指令不会修改对应的操作数,为T的位置表示本条指令会修改对应的操作数。每条指令的目标记分牌,根据其目标操作数的个数,可以有零位或者一位为“I”。
[0007]指令从上一级站台进入发射部件时,若其目标指示牌中第m位为I,则将记分牌状态表的第m位置“I”,即将其封锁;待该指令被发射至执行部件,并执行完成后,将记分牌状态表的第m位清“O”,即将其解锁。
[0008]对于进入发射部件的指令,每个周期都将自己的源记分牌与记分牌状态表相比较,只要两者在相同的位置出现了 “I”,就意味着存在数据写后读冒险,该指令不允许被发射。
[0009]通常情况下,由于发射部件中缓存的指令已经经过了译码、重命名等站台的处理,包含较多的信息,且查找、判断等控制逻辑较为复杂,在物理实现时,布线密集,逻辑级数多,延迟较长,是物理设计的难点。随着处理器频率和发射带宽的提升,指令发射逻辑容易成为流水线关键路径。因此发射部件设计需要兼顾性能和物理实现,才能达到最好效果。
[0010]因此,在发射部件的设计中,传统的一级缓置设计往往难以同时满足性能和时序的要求。而若采用两级缓置设计,则可以将指令分别存储在两个缓冲中,在缓存的指令总数相当的前提下,与只有一级发射缓冲相比,可以降低物理实现难度,有利于提高处理器的频率。
[0011]在两级缓置发射的设计中,为了尽可能有好的性能表现,充分发挥两级缓冲的作用,总是尽可能的将操作数没有准备好的指令放在接近流水线上游的一级缓冲中,而将操作数已经接近准备好的指令放在接近流水线下游的二级缓冲中,这样既充分利用资源,又能最大程度减少对性能带来的影响。因此,控制指令从一级缓冲发射至二级缓冲的时机显得至关重要。其中,接近流水线上游的一级缓冲这里称之为一级等待队列,接近流水线下游的二级缓冲称之为二级发射队列。

【发明内容】

[0012]本发明所要解决的技术问题是提供一种基于记分牌原理的两级缓置发射的调控装置,使指令在一级等待队列等候,避免无谓的占用二级发射队列条目。
[0013]本发明解决其技术问题所采用的技术方案是:提供一种基于记分牌原理的两级缓置发射的调控装置,包括一级等待队列和二级发射队列,所述一级等待队列和二级发射队列之间设置了一个通用调控记分牌,所述通用调控记分牌用于调控所有指令从一级等待队列发向二级发射队列的时机;其中,与指令的源记分牌有效位置对应的通用调控记分牌的状态全部为解锁状态,作为该指令被允许从一级等待队列发射至二级发射队列的条件之
O
[0014]所述通用调控记分牌的宽度和用于维护指令间数据相关性的记分牌状态表的宽度一致,每一位有两种状态:为“O”表示解锁状态,为“I”表示封锁状态。
[0015]对于LOAD类指令,所述通用调控记分牌的执行周期数与命中一级数据缓存时的执行周期数相同。假设指令的目标记分牌的第m位为有效位置,执行周期数为N,则该指令从重命名站台进入一级等待队列后,立即将通用调控记分牌的第m位封锁;该指令从一级等待队列发射至二级发射队列后第N个周期,将通用调控记分牌的第m位解锁。
[0016]指令进入一级等待队列,若发现存在与本指令的源记分牌有效位置对应的通用调控记分牌的状态有任意一位或几位为封锁状态,则指令被禁止发射至二级发射队列,这样可以保证操作数肯定没有准备好的指令在一级等待队列等候,而不占用二级发射队列的条目。分析如下:
[0017]假设指令j直接数据相关于指令i,即指令j会引用指令i的结果。若指令i在一级等待队列等候Wli个周期,在二级发射队列等候W2i个周期,执行周期为Ni,目标记分牌的有效位置为第Mi位,其中Wli > I,W2i > l,Ni> 1,0< Mi <n。根据指令顺序进入发射部件的特点,指令j肯定比指令i后进入一级等待队列,一种可能是指令j与指令i在同一个周期进入,但位置靠后;另一种可能是指令j与指令i是不同的周期进入,指令j更晚。
[0018]以指令i进入一级等待队列的时刻为第O个周期,则通用调控记分牌的第Mi位被封锁的时刻为第O个周期,被解锁的时刻为第Wli+N1-1个周期。意味着若指令j在第O个周期至第Wli+N1-Ι个周期之间到达一级等待队列,由于通用调控记分牌相应位置没有解锁,指令j都会在第Wli+Ni个周期之后才可能进入二级发射队列。而记分牌状态表相应位置会在第Wli+W2i+N1-1个周期解锁,由于W2i > I,可以得出Wli+W2i+Ni_l 2 Wli+Ni,故指令j在第Wli+Ni个周期前进入二级发射队列没有意义,只能无谓增加其在二级发射队列中的等待时间,无谓占用二级发射队列的条目,因为在这之前,记分牌状态表相应位置肯定没有解锁。
[0019]另一方面,如果指令j在第Wli+Ni个周期之后才被允许进入二级发射队列,则可能的情况是:记分牌状态表相应位置已经解锁,但是指令j还没有进入二级发射队列,无法及时发射至执行部件,从而影响性能。
[0020]故通用调控记分牌的意义就在于在操作数肯定没有准备好的情况下,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1