一种通过分布控制扩展访存队列容量的装置的制作方法

文档序号:7651562阅读:127来源:国知局
专利名称:一种通过分布控制扩展访存队列容量的装置的制作方法
技术领域
本发明涉及一种在乱序发射的超标量微处理器中管理访存队列的装 置,可通过分布式控制来间接扩展访存队列容量。
背景技术
在超标量微处理器中,访存指令处理通常包括取指、译码、寄存器重 命名、发射、读寄存器、地址计算、地址代换、访存操作、指令退出等几 个流水线站台,其中访存操作的延迟不确定,可能需要多个周期。为了提 高性能,微处理器需要支持指令乱序发射、乱序执行和顺序退出。为此, 微处理器需要设置专门的访存队列,存放从地址代换到指令退出之间飞行 的访存指令状态,并通过指令重排序缓冲处理指令的顺序退出。访存队列 通常包括装入队列和存储队列两部分,装入队列用于保留存储器读指令的 相关信息,存储队列用于保留存储器写指令的相关信息。设置访存队列主 要是在保证存储器访问行为正确的基础上,缓解因访存延迟带来的性能瓶 颈,因此,访存队列的条目数与微处理器性能密切相关。但是由于访存队 列管理复杂,条目数的增加直接影响硬件开销和工作频率,因此条目数受 到一定限制,进而如何有效地利用有限的条目成为本专利研究的重点。
在重命名站台之前,指令都是顺序处理,进入发射站台后指令可以被 乱序执行。为保证访存指令乱序执行的正确性,访存指令在访存队列中的 位置必须遵从程序中的顺序,所以通常在寄存器重命名站台为访存指令分配访存队列的条目号。另外,还在寄存器重命名站台为所有指令按程序分 配重排序缓冲的条目号,即指令序列号,以便在指令飞行过程中登记特征 信息,保证乱序执行后的指令按程序顺序退出。在指令进入发射队列的同 时,进入重排序缓冲。发射站台分派访存指令,在访存指令经过地址代换 后,只需根据己分配的条目号进入访存队列相应的条目。
在寄存器重命名站台,为访存指令分配访存队列条目号时,需要判断 访存队列是否有空闲条目,常用的策略是将访存队列作为头尾相连的循环 队列,在寄存器重命名站台设置头尾指针管理访存队列的分配和回收。初 始时,头尾指针相同,都指向条目0。当寄存器重命名站台遇到一条访存 指令时,将头指针所指的条目分配给该访存指令,头指针循环加l。当一 条访存指令退出时,尾指针循环加1。在发生转移预测失败或其它异常时, 需要对访存队列的头指针进行修复,将错误路径上分配出去的条目回收。 这样,从尾指针到头指针循环减1之间的条目表示已分配的条目,从头指 针到尾指针循环减1之间的条目表示空闲的条目。这种方法可以准确地控 制访存队列满的情况,但它有两个缺陷 一是访存队列的条目数等于寄存 器重命名到指令退出之间飞行的访存指令数,造成地址代换后到指令退出 之间飞行的访存指令数小于访存队列的条目数,不能充分利用访存部件资 源;二是访存指令在寄存器重命名站台会因为访存队列满阻塞非访存指令 进入发射队列,减弱乱序发射和乱序执行的粒度,降低执行部件资源的利 用率。
为此,本专利提出了一种全新的方法,调整了访存队列的分配策略, 在重命名站台和发射站台分布控制访存指令的分派,使得访存队列的条目数等于指令发射到指令退出之间飞行的访存指令数,从而有效地提高了访 存队列的利用率,弥补了常用的访存队列分配策略带来的性能损失。该方 法在不增加访存队列容量的基础上,利用已有的发射队列扩展了访存队列 的容量,提高了微处理器的性能。

发明内容
本发明要解决的技术问题是提供一种通过分布控制扩展访存队列容 量的装置,在不增加访存队列实际条目数的基础上,通过分布控制访存队 列的分配原则和访存指令的发射原则,间接地扩展访存队列的容量。
为解决上述技术问题,本发明的通过分布控制扩展访存队列容量的装 置采用如下技术方案实现:该装置包括在微处理器的寄存器重命名站台设 置访存队列条目分配器,在微处理器的发射站台设置访存指令发射控制 器。其中,在所述微处理器的寄存器重命名站台中,访存队列条目分配器 的操作为当需要为访存指令分配访存队列条目号时,只看当前发射队列 中访存指令携带的访存队列条目号是否与即将分配的新条目号相同,如果 不同则该访存指令可获得新的访存队列条目号,如果相同则该访存指令被 阻塞在寄存器重命名站台,直到具有相同访存队列条目号的访存指令从发 射队列中分派出去为止;在所述微处理器的发射站台中,访存指令发射控 制器的操作为如果发射的是访存指令,在满足其它发射条件下,还要看 后续所有站台中飞行的访存指令携带的访存队列条目号是否与即将发射 的访存指令携带的访存队列条目号相同,如果都不相同则该条访存指令允 许发射,如果其中一个相同则该条访存指令继续保留在发射队列。
采用本发明的通过分布控制扩展访存队列容量的装置,在不增加访存队列条目数的基础上,通过调整访存队列的分配策略,在重命名站台和发 射站台分布控制访存指令的分派,充分利用发射队列缓冲来增加飞行中的 访存指令数量,间接扩展了访存队列的容量,提高了微处理器性能。


下面结合附图与具体实施方式
对本发明作进一步详细的说明
图1是本发明中访存指令的流水线处理示意图。
具体实施例方式
本专利的装置包括在微处理器的寄存器重命名站台设置访存队列条 目分配器,在发射站台设置访存指令发射控制器。其中,在所述微处理器
的寄存器重命名站台设置的访存队列条目分配器包括:将访存队列作为循 环队列,为装入队列和存储队列分别设置一个头指针,复位后,头指针都 为"0",表示即将分配第O个条目给对应的访存指令。当寄存器重命名站 台中遇到装入指令时,先査询当前发射队列中所有装入指令携带的装入队 列条目号与装入队列头指针所指的条目号是否相同,如果其中一个相同, 则不能给该条装入指令分配新条目,必须在寄存器重命名站台等待,直到 具有相同装入队列条目号的装入指令从发射队列中分派出去为止。对于存 储指令,处理方式与装入指令相同,这里不再细述。每条指令流向后续站 台时都将携带装入队列条目号和存储队列条目号,并按程序顺序存放在重 排序缓冲中。当发生转移预测失败或异常时,读出重排序缓冲中相应的装 入队列条目号和存储队列条目号,对寄存器重命名站台中当前的装入队列 头指针和存储队列头指针进行修复。
本专利在所述微处理器的发射站台中设置的访存指令发射控制器包括访存队列条目号缓冲,用于存放访存指令从发射到进入访存队列之间 每个站台中访存指令所携带的访存队列条目号。每个缓冲包括一位有效 位、 一位类型位和多位访存队列条目号。其中,有效位为"l"表示对应 站台中的访存指令有效;类型位为"0"表示装入指令,为"1"表示存储 指令。在本专利所述的微处理器中,从发射到进入访存队列之间存在3
个站台,所以需要设置3个缓冲,分别标记为缓冲0、缓冲1和缓冲2, 在每个周期,缓冲0中输入新发射指令的信息,缓冲1接收缓冲0的信息, 缓冲2接收缓冲1的信息。访存指令发射控制器将当前装入队列和存储队 列中所有条目的有效位作为输入,并为访存指令增加一个发射条件。当准 备发射装入指令时,如果其装入队列条目号与3个缓冲中任一有效的装入 队列条目号相同或装入队列对应条目有效,则该条装入指令不能发射;同 样,当准备发射存储指令时,如果其存储队列条目号与3级缓冲中任一有 效的存储队列条目号相同或存储队列对应条目有效,则该条存储指令不能 发射。如果发射站台成功地发出了一条装入指令,则将其装入队列条目号 记入缓冲0中,置有效位为"l",置类型位为"0";如果发射站台成功 地发出了一条存储指令,则将其存储队列条目号记入缓冲O中,置有效位 为"1",置类型位为"1";如果发射了一条非访存类指令,则置缓冲0 的有效位为"0"。
本装置中访存队列的管理方法与常用的访存队列管理方法的区别在 于在寄存器重命名站台,为一条访存指令分配一个访存队列条目时,如
果原来分配该条目的访存指令还没有退出,常用的方法不允许给年轻的访 存指令分配相同的条目号,直到年老的访存指令退出为止,而本装置允许给年轻的访存指令分配相同的条目,并让该条访存指令进入发射队列中等 待,但不允许进入发射站台之后的流水线中。由此可见,常用的方法中, 访存队列条目数等于寄存器重命名到指令退出之间飞行的访存指令数;而 本装置中,访存队列条目数等于指令发射到指令退出之间飞行的访存指令 数,而从寄存器重命名到指令退出之间允许飞行的访存指令数将大于访存 队列数,间接扩展了访存队列的容量,提高了微处理器的访存性能。同时, 寄存器重命名站台因访存指令阻塞的概率下降,更多非访存指令可进入发 射队列,从而充分发挥乱序发射的优势,进一步提高了微处理器的性能。
权利要求
1、一种超标量微处理器中通过分布控制扩展访存队列容量的装置,包括在超标量微处理器的寄存器重命名站台设置访存队列分配器,在发射站台设置访存指令发射控制器,其特征在于所述的访存队列分配器为每一条访存指令分配访存队列条目时,按程序顺序进行分配,并且根据当前流水线发射站台中所有访存指令占有访存队列条目的情况决定是否将该访存指令发送到发射站台;所述的访存指令发射控制器准备发射访存指令时,则根据后续站台中飞行的访存指令占有访存队列条目的情况决定是否将该条访存指令发送到执行部件。
2、 如权利要求1所述的通过分布控制扩展访存队列容量的装置,其特征在于所述的访存队列分配器,设置在所述的微处理器的寄存器重命名站台,将访存队列作为循环队列进行管理,从条目o开始进行循环分配,为装入队列和存储队列分别设置头指针,复位结束后,头指针都指向条目0;当遇到访存指令时,如果头指针所指条目号与所述的微处理器的发射 队列中所有访存指令的访存队列条目号不相同,则为该条访存指令分配访 存队列条目,否则将该访存指令阻塞在寄存器重命名站台,直到具有相同 访存队列条目号的访存指令从发射队列中分派出去才停止阻塞。
3、 如权利要求1所述的通过分布控制扩展访存队列容量的装置,其 特征在于所述的访存指令发射控制器,设置在所述的微处理器的发射站台,如果从发射站台到访存指令进入存储队列或装入队列之间有n个站 台,则设置n个缓冲,分别标记为缓冲0、缓冲l、……、缓冲n—l,这 些缓冲用于记录当前n个站台中访存指令的访存队列条目号,当准备发射访存指令时,除了检査常规的发射条件以外,还要增加一项检查,即判断该访存指令携带的访存队列条目号与n个缓冲中的访存队列条目号是否相同,而且还要判断对应的访存队列条目是否有效,如果不同并且无效, 则允许发射该条访存指令,否则阻塞该条访存指令的发射,发射完访存指令后,将其访存队列条目号记录在缓冲0中,缓冲0中原有值传递给缓冲 1,缓冲1中原有值传递给缓冲2,类似依次传递直到缓冲n —1,缓冲n 一l中原有值被覆盖。
全文摘要
本发明公开了一种超标量微处理器中通过分布控制扩展访存队列容量的装置,即在所述微处理器的指令流水线中,在寄存器重命名站台设置访存队列分配器,在指令发射站台设置访存指令发射控制器。访存队列分配器为每一条访存指令分配访存队列条目号时,检查当前待分配的新条目号与发射队列中访存指令携带的访存队列条目号是否匹配,如果不匹配,则分配新条目,并将访存指令发送到发射队列;如果匹配,则不分配新条目,将访存指令阻塞在寄存器重命名站台。访存指令发射控制器准备发射访存指令时,在常规的指令发射条件的基础上增加一项判断条件,即检查该访存指令携带的访存队列条目号与已发射但还未退出的访存指令携带的访存队列条目号是否匹配,如果不匹配,则允许发射,将该访存指令发送到执行部件;如果匹配,则阻止发射,将该访存指令继续保留在发射队列中。该装置在访存指令退出之前将这些访存指令占用的访存队列条目预先分配给年轻的访存指令,并缓存在已有的发射队列中,在保证访存队列信息不被覆盖的前提下,增加了流水线上访存指令的数量,间接扩展了访存队列的容量,弥补了常用访存队列控制方法中的性能损失。
文档编号H04L12/56GK101447911SQ200710094300
公开日2009年6月3日 申请日期2007年11月27日 优先权日2007年11月27日
发明者飞 尹, 董建萍 申请人:上海高性能集成电路设计中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1