一种高性能微处理器结构寄存器保留恢复指令的实现方法

文档序号:6608503阅读:273来源:国知局
专利名称:一种高性能微处理器结构寄存器保留恢复指令的实现方法
技术领域
本发明涉及一种高性能微处理器结构寄存器保留恢复指令的实现方 法,特别是涉及一种通过特殊存储装入类指令来实现结构寄存器保留恢复 的方法。
背景技术
目前的高性能微处理器中,处理结构寄存器保留和恢复时,大多采用 普通的存储指令,将结构寄存器保存到软件管理的主存空间(例如系统堆 栈),并利用普通的装入指令将主存空间中保留的内容恢复到结构寄存器
中。也有部分处理器提供专用的堆栈操作指令,例如x86处理器中的push 和pop指令,但从本质上来说都是利用层次式存储结构中的Cache和主存 来保留结构寄存器内容。
该方法存在两个缺点 一是延时较长。虽然有多级Cache结构,但由 于Cache容量有限, 一旦访问不命中Cache则必须直接访问主存,延时大 幅度增加;二是在使用数据流存储和装入指令时,除了被保留寄存器作为 源寄存器之一以外,还至少要占用另一个结构寄存器作为存储装入指令的 源地址寄存器。
如果采用固定延时的计算类指令来实现结构寄存器的保留,则作为保 留指令目标或恢复指令源的保留缓冲存储器会成为实现的难点。因为保留 缓冲存储器与结构寄存器不同,它没有类似"重命名寄存器"或者"寄存器窗口"那样处理推测写入的回退机制,也没有以物理寄存器为单位的记 分板机制来限制真相关的保留恢复指令的乱序执行。如果由硬件来解决这 一问题,则会大大增加硬件复杂度。然而,不解决真相关的检测和推测写 入的回退问题,又会增加保留恢复指令的使用限制,不便于使用,并降低 保留恢复操作的效率。
本发明公布了一种高性能微处理器的结构寄存器保留方法。该方法利 用一个独立于层次式存储结构之外的片内存储器——结构寄存器保留缓 冲存储器(简称结构寄存器保留缓冲或保留缓冲),该保留缓冲采用独立 编址方式,其数据宽度与结构寄存器的数据宽度相同。该方法还提供了一 条结构寄存器保留指令(简称保留指令)和一条结构寄存器恢复指令(简 称恢复指令),这两条指令的格式与普通存储装入指令不同,其操作数部 分只包含被保存的结构寄存器号和结构寄存器保留缓冲索引地址,因此保 留指令和恢复指令,除了使用被保留或恢复的结构寄存器作为源寄存器或 目标寄存器外,不占用其它结构寄存器。为了在不大量增加硬件开销的情 况下,支持保留指令和恢复指令的乱序执行,在硬件实际处理这两条指令 时,将其转化为特殊的数据流存储装入指令,并采用类似于存储装入指令 的处理方式,利用存储访问控制中的数据流装入队列和数据流存储队列来 处理保留恢复指令乱序执行带来相关性的问题。但是保留恢复指令不访问 层次式存储结构的各级存储器,而访问保留缓冲,完成对结构寄存器的保 留或恢复。


下面结合附图与具体实施方式
对本发明作进一步详细地说明图1是本发明一实例,说明结构寄存器保留指令的处理流程; 图2是本发明另一实例,说明结构寄存器恢复指令的处理流程。
具体实施例方式
本发明是一种高性能微处理器结构寄存器保留方法,采用结构寄存器 保留指令(简称保留指令)和结构寄存器恢复指令(简称恢复指令),完成 对结构寄存器的快速保留和恢复操作。保留指令和恢复指令有独立的指令 编码,其操作数部分只包含被保存或恢复的结构寄存器号和结构寄存器保 留缓冲的索引地址,但在指令译码阶段,由硬件将保留指令强制转化为带 有特殊标志的数据流存储指令,将恢复指令强制转化为带有特殊标志的数 据流装入指令。转化后的保留指令类似存储指令,其源数据寄存器为需要 保留的结构寄存器,地址寄存器内容固定为"全0"(不实际占用普通结 构寄存器),其地址偏移部分为保留缓冲的索引地址。转化后的恢复指令 类似装入指令,其目标数据寄存器为需要恢复的结构寄存器,地址寄存器
内容固定为"全o"(不实际占用普通结构寄存器),其地址偏移部分为保
留缓冲的索引地址。保留指令和恢复指令与普通数据流存储装入指令一 样,都经过地址计算,将保留缓冲的索引地址转换为存储访问的物理地址 表示形式,该地址不参与虚实地址代换,直接进入存储控制部件。
在存储控制部件中,保留指令与数据流存储指令的处理流程相似,査 询保留缓冲存储器,并将结果和指令的相关信息,包括数据,记入数据流
存储队列中。不同之处在于,保留指令不访问一级数据Cache,而是访问 结构寄存器保留缓冲存储器,且查询结果一定是命中且拥有写权限。该保 留指令之前的所有指令都已经正常提交以后,该保留指令流才被允许提交,将数据写入保留缓冲。
在存储控制部件中,恢复指令与数据流装入指令的处理流程相似,査 询保留缓冲存储器,如果命中则根据地址将数据读出,然后写入相应的结 构寄存器,并将访问结果和指令的相关信息,记入数据流装入队列中。不
同之处在于,保留指令不访问一级数据Cache,而是访问结构寄存器保留 缓冲存储器,且査询结果一定是命中。
如果对同一保留缓冲存储器条目进行访问的恢复指令和恢复指令被 乱序发射时,存储访问控制部件会如同处理存储器相关的两条乱序发射的 存储和装入指令一样,处理这些相关性冲突,不需要增加新的硬件开销。
以下所述实例详细地说明了本发明。
实例一
如图l, A是结构寄存器保留指令,通过指令转换逻辑将A转换为带 有特殊标志的数据流存储指令,转换后的指令A的源寄存器即为要保存的
结构寄存器,不需要地址寄存器,偏移量为结构寄存器保留缓冲索引地址。 A指令发射后,在地址计算部件将保留缓冲的索引地址与全"0"值相加, 得到有效存储访问地址。该地址经过地址代换部件,但不进行代换,直接 作为存储访问的物理地址。
A指令使用其物理地址査询保留缓冲存储器对应条目状态,但保留缓 冲并没有状态,而是直接返回命中并且具备写权限,并将访问结果和指令 的相关信息,包括数据,记入数据流存储队列中。
A指令在查询保留缓冲条目状态的同时还利用其物理地址,相联查找 数据流装入队列条目,如果发现与之地址相同,但更年轻的带有特殊标志的数据流装入指令,则说明发生了先写后读相关性冲突,此时必须和处理 普通数据流指令的先写后读相关性冲突一样,产生重发自陷。
A指令之前的所有指令都已经正常提交以后,如果该指令没有发生相 关性冲突,则被允许提交,此时,才能向读写控制部件发出写请求,读写 控制部件发现是带有特殊标志的数据流存储指令,则将数据根据物理地址
写入保留缓冲,而不是写入一级数据Cache。 实例二
如图2, B是结构寄存器恢复指令,通过指令转换逻辑将B转换为带 有特殊标志的数据流装入指令,转换后的指令B的目标寄存器即为要恢复 的结构寄存器,不需要地址寄存器,偏移量为结构寄存器保留缓冲索引地 址。B指令发射后,在地址计算部件将保留缓冲的索引地址与全"0"值 相加,得到有效存储访问地址。该地址经过地址代换部件,但不进行代换, 直接作为存储访问的物理地址。
B指令使用其物理地址查询保留缓冲存储器对应条目状态,保留缓冲 并没有状态,而是直接返回命中并且读出相应条目的数据,并将访问结果 和指令的相关信息,记入数据流存储队列中。
B指令在查询保留缓冲条目状态的同时还利用其物理地址,相联査找 数据流存储队列条目,如果发现与之地址相同,但更年老的带有特殊标志 的数据流装入指令,则说明需要恢复的数据还没有写入保留缓冲,此时必 须将所有与之地址相同,但更年老的带有特殊标志的数据流装入指令中, 选择最年轻的数据装入指令保存的数据作为恢复数据。B指令将恢复数据写入物理寄存器中,并等待该保留指令之前的所有 指令都己经正常提交以后,该恢复指令才被允许提交,此时,才能将物理 寄存器映射为结构寄存器。
权利要求
1、一种高性能微处理器的结构寄存器保留恢复指令的实现方法,包括一类结构寄存器保留恢复指令,一套保留恢复指令转换逻辑,结构寄存器保留缓冲存储器,以及数据流装入队列和数据流存储队列;所述的结构寄存器保留恢复指令,由保留恢复指令转换逻辑转化为带有特殊标志的存储装入指令,由存储访问控制部件对结构寄存器保留缓冲存储器进行读写操作,完成对结构寄存器的保留和恢复操作,其特征在于所述的结构寄存器保留缓冲采用了独立于层次式存储结构之外的、独立编址的片内存储器实现。
2、 如权利要求1所述的一种高性能微处理器结构寄存器保留恢复指 令的实现方法,其特征在于将结构寄存器保留指令转化为特殊的数据流存 储指令,结构寄存器恢复指令转化为特殊的数据流装入指令,实现对于独 立编址的结构寄存器保留缓冲存储器的存取操作,且转化后的特殊数据流 存储指令和数据流装入指令的执行延时,与命中一级数据Cache普通数据 流存储指令和数据流装入指令的执行延时相同。
3、 如权利要求2所述的一种高性能微处理器结构寄存器保留恢复指 令的实现方法,其特征在于由结构寄存器保留指令转化成的特殊数据流存 储指令,以及由结构寄存器恢复指令转化成特殊的数据流装入指令,可以 通过存储装入指令所使用的存储队列和装入队列,解决结构寄存器保留缓 冲存储器数据访问的真相关性冲突和推测写入问题,从而实现结构寄存器 保留恢复指令的乱序发射和乱序执行。
全文摘要
本发明公开了一种高性能微处理器结构寄存器保留恢复指令的实现方法。包括一类结构寄存器保留恢复指令,一套保留恢复指令转换逻辑,结构寄存器保留缓冲存储器,以及数据流装入队列和数据流存储队列。其中所述的结构寄存器保留恢复指令,由保留恢复指令转换逻辑转化为带有特殊标志的存储装入指令,由存储访问控制部件对结构寄存器保留恢复缓冲存储器进行读写操作,完成对结构寄存器的保留和恢复操作。本发明通过存储装入指令所使用的存储和装入队列解决保留缓冲存储器真相关性冲突和推测写入问题,同时将保留缓冲存储器独立于现有微处理器中多级Cache结构之外,保证对保留恢复缓冲存储器的访问延时始终与命中一级数据Cache的存储装入指令延时相同,既能有效缩短结构寄存器的保留和恢复延时,又能有效利用现有存储访问控制硬件逻辑,不必增加过多的硬件设计复杂度和硬件开销。
文档编号G06F9/30GK101446891SQ20071009430
公开日2009年6月3日 申请日期2007年11月27日 优先权日2007年11月27日
发明者飙 王, 胡向东 申请人:上海高性能集成电路设计中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1