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

技术编号:2913469 阅读:308 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种高性能微处理器结构寄存器保留恢复指令的实现方法。包括一类结构寄存器保留恢复指令,一套保留恢复指令转换逻辑,结构寄存器保留缓冲存储器,以及数据流装入队列和数据流存储队列。其中所述的结构寄存器保留恢复指令,由保留恢复指令转换逻辑转化为带有特殊标志的存储装入指令,由存储访问控制部件对结构寄存器保留恢复缓冲存储器进行读写操作,完成对结构寄存器的保留和恢复操作。本发明专利技术通过存储装入指令所使用的存储和装入队列解决保留缓冲存储器真相关性冲突和推测写入问题,同时将保留缓冲存储器独立于现有微处理器中多级Cache结构之外,保证对保留恢复缓冲存储器的访问延时始终与命中一级数据Cache的存储装入指令延时相同,既能有效缩短结构寄存器的保留和恢复延时,又能有效利用现有存储访问控制硬件逻辑,不必增加过多的硬件设计复杂度和硬件开销。

【技术实现步骤摘要】

本专利技术涉及一种高性能微处理器结构寄存器保留恢复指令的实现方法,特别是涉及一种通过特殊存储装入类指令来实现结构寄存器保留恢复的方法。
技术介绍
目前的高性能微处理器中,处理结构寄存器保留和恢复时,大多采用普通的存储指令,将结构寄存器保存到软件管理的主存空间(例如系统堆栈),并利用普通的装入指令将主存空间中保留的内容恢复到结构寄存器中。也有部分处理器提供专用的堆栈操作指令,例如x86处理器中的push和pop指令,但从本质上来说都是利用层次式存储结构中的Cache和主存来保留结构寄存器内容。该方法存在两个缺点:一是延时较长。虽然有多级Cache结构,但由于Cache容量有限,一旦访问不命中Cache则必须直接访问主存,延时大幅度增加;二是在使用数据流存储和装入指令时,除了被保留寄存器作为源寄存器之一以外,还至少要占用另一个结构寄存器作为存储装入指令的源地址寄存器。如果采用固定延时的计算类指令来实现结构寄存器的保留,则作为保留指令目标或恢复指令源的保留缓冲存储器会成为实现的难点。因为保留缓冲存储器与结构寄存器不同,它没有类似“重命名寄存器”或者“寄存-->器窗口”那样处理推测写入的回退机制,也没有以物理寄存器为单位的记分板机制来限制真相关的保留恢复指令的乱序执行。如果由硬件来解决这一问题,则会大大增加硬件复杂度。然而,不解决真相关的检测和推测写入的回退问题,又会增加保留恢复指令的使用限制,不便于使用,并降低保留恢复操作的效率。本专利技术公布了一种高性能微处理器的结构寄存器保留方法。该方法利用一个独立于层次式存储结构之外的片内存储器——结构寄存器保留缓冲存储器(简称结构寄存器保留缓冲或保留缓冲),该保留缓冲采用独立编址方式,其数据宽度与结构寄存器的数据宽度相同。该方法还提供了一条结构寄存器保留指令(简称保留指令)和一条结构寄存器恢复指令(简称恢复指令),这两条指令的格式与普通存储装入指令不同,其操作数部分只包含被保存的结构寄存器号和结构寄存器保留缓冲索引地址,因此保留指令和恢复指令,除了使用被保留或恢复的结构寄存器作为源寄存器或目标寄存器外,不占用其它结构寄存器。为了在不大量增加硬件开销的情况下,支持保留指令和恢复指令的乱序执行,在硬件实际处理这两条指令时,将其转化为特殊的数据流存储装入指令,并采用类似于存储装入指令的处理方式,利用存储访问控制中的数据流装入队列和数据流存储队列来处理保留恢复指令乱序执行带来相关性的问题。但是保留恢复指令不访问层次式存储结构的各级存储器,而访问保留缓冲,完成对结构寄存器的保留或恢复。附图说明下面结合附图与具体实施方式对本专利技术作进一步详细地说明:-->图1是本专利技术一实例,说明结构寄存器保留指令的处理流程;图2是本专利技术另一实例,说明结构寄存器恢复指令的处理流程。具体实施方式本专利技术是一种高性能微处理器结构寄存器保留方法,采用结构寄存器保留指令(简称保留指令)和结构寄存器恢复指令(简称恢复指令),完成对结构寄存器的快速保留和恢复操作。保留指令和恢复指令有独立的指令编码,其操作数部分只包含被保存或恢复的结构寄存器号和结构寄存器保留缓冲的索引地址,但在指令译码阶段,由硬件将保留指令强制转化为带有特殊标志的数据流存储指令,将恢复指令强制转化为带有特殊标志的数据流装入指令。转化后的保留指令类似存储指令,其源数据寄存器为需要保留的结构寄存器,地址寄存器内容固定为“全0”(不实际占用普通结构寄存器),其地址偏移部分为保留缓冲的索引地址。转化后的恢复指令类似装入指令,其目标数据寄存器为需要恢复的结构寄存器,地址寄存器内容固定为“全0”(不实际占用普通结构寄存器),其地址偏移部分为保留缓冲的索引地址。保留指令和恢复指令与普通数据流存储装入指令一样,都经过地址计算,将保留缓冲的索引地址转换为存储访问的物理地址表示形式,该地址不参与虚实地址代换,直接进入存储控制部件。在存储控制部件中,保留指令与数据流存储指令的处理流程相似,查询保留缓冲存储器,并将结果和指令的相关信息,包括数据,记入数据流存储队列中。不同之处在于,保留指令不访问一级数据Cache,而是访问结构寄存器保留缓冲存储器,且查询结果一定是命中且拥有写权限。该保留指令之前的所有指令都已经正常提交以后,该保留指令流才被允许提-->交,将数据写入保留缓冲。在存储控制部件中,恢复指令与数据流装入指令的处理流程相似,查询保留缓冲存储器,如果命中则根据地址将数据读出,然后写入相应的结构寄存器,并将访问结果和指令的相关信息,记入数据流装入队列中。不同之处在于,保留指令不访问一级数据Cache,而是访问结构寄存器保留缓冲存储器,且查询结果一定是命中。如果对同一保留缓冲存储器条目进行访问的恢复指令和恢复指令被乱序发射时,存储访问控制部件会如同处理存储器相关的两条乱序发射的存储和装入指令一样,处理这些相关性冲突,不需要增加新的硬件开销。以下所述实例详细地说明了本专利技术。实例一如图1,A是结构寄存器保留指令,通过指令转换逻辑将A转换为带有特殊标志的数据流存储指令,转换后的指令A的源寄存器即为要保存的结构寄存器,不需要地址寄存器,偏移量为结构寄存器保留缓冲索引地址。A指令发射后,在地址计算部件将保留缓冲的索引地址与全“0”值相加,得到有效存储访问地址。该地址经过地址代换部件,但不进行代换,直接作为存储访问的物理地址。A指令使用其物理地址查询保留缓冲存储器对应条目状态,但保留缓冲并没有状态,而是直接返回命中并且具备写权限,并将访问结果和指令的相关信息,包括数据,记入数据流存储队列中。A指令在查询保留缓冲条目状态的同时还利用其物理地址,相联查找数据流装入队列条目,如果发现与之地址相同,但更年轻的带有特殊标志-->的数据流装入指令,则说明发生了先写后读相关性冲突,此时必须和处理普通数据流指令的先写后读相关性冲突一样,产生重发自陷。A指令之前的所有指令都已经正常提交以后,如果该指令没有发生相关性冲突,则被允许提交,此时,才能向读写控制部件发出写请求,读写控制部件发现是带有特殊标志的数据流存储指令,则将数据根据物理地址写入保留缓冲,而不是写入一级数据Cache。实例二如图2,B是结构寄存器恢复指令,通过指令转换逻辑将B转换为带有特殊标志的数据流装入指令,转换后的指令B的目标寄存器即为要恢复的结构寄存器,不需要地址寄存器,偏移量为本文档来自技高网...

【技术保护点】
一种高性能微处理器的结构寄存器保留恢复指令的实现方法,包括一类结构寄存器保留恢复指令,一套保留恢复指令转换逻辑,结构寄存器保留缓冲存储器,以及数据流装入队列和数据流存储队列;所述的结构寄存器保留恢复指令,由保留恢复指令转换逻辑转化为带有特殊标志的存储装入指令,由存储访问控制部件对结构寄存器保留缓冲存储器进行读写操作,完成对结构寄存器的保留和恢复操作,其特征在于所述的结构寄存器保留缓冲采用了独立于层次式存储结构之外的、独立编址的片内存储器实现。

【技术特征摘要】
1、一种高性能微处理器的结构寄存器保留恢复指令的实现方法,包
括一类结构寄存器保留恢复指令,一套保留恢复指令转换逻辑,结构寄存
器保留缓冲存储器,以及数据流装入队列和数据流存储队列;所述的结构
寄存器保留恢复指令,由保留恢复指令转换逻辑转化为带有特殊标志的存
储装入指令,由存储访问控制部件对结构寄存器保留缓冲存储器进行读写
操作,完成对结构寄存器的保留和恢复操作,其特征在于所述的结构寄存
器保留缓冲采用了独立于层次式存储结构之外的、独立编址的片内存储器
实现。
2、如权利要求1所述的一种高性能微处理器结构寄存器保留恢复指
令的实现方法,其特征在于将结构寄存器保留指令转化为特殊的数据流存
储指令...

【专利技术属性】
技术研发人员:胡向东王飙
申请(专利权)人:上海高性能集成电路设计中心
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1