CN113656214A - 一种乱序cpu刷新但不停顿流水的实现方法及系统 - Google Patents

一种乱序cpu刷新但不停顿流水的实现方法及系统 Download PDF

Info

Publication number
CN113656214A
CN113656214A CN202110684067.1A CN202110684067A CN113656214A CN 113656214 A CN113656214 A CN 113656214A CN 202110684067 A CN202110684067 A CN 202110684067A CN 113656214 A CN113656214 A CN 113656214A
Authority
CN
China
Prior art keywords
instruction
physical register
flush
rob
refreshing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110684067.1A
Other languages
English (en)
Inventor
李长林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Saifang Technology Co ltd
Original Assignee
Guangdong Saifang Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Saifang Technology Co ltd filed Critical Guangdong Saifang Technology Co ltd
Priority to CN202110684067.1A priority Critical patent/CN113656214A/zh
Publication of CN113656214A publication Critical patent/CN113656214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及微处理器技术领域,具体涉及一种乱序CPU刷新但不停顿流水的实现方法及系统,进行CPU乱序执行时,在datapath执行单元执行完回report,若指令被刷新,则直接回report;从未commit中找出已收到report的指令作为当前周期的commit指令;根据被刷新的指令情况进行释放当前指令分配的物理寄存器或确定释放的物理寄存器;通过Rename中对ROB中释放的物理寄存器进行回收,并更新freelist,完成刷新。本发明不用为产生分支指令的刷新或提交异常的ROB刷新停顿pipeline流水,有效的提高了CPU性能;不用为产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表,保存任何信息,有效的节约功耗和面积。

Description

一种乱序CPU刷新但不停顿流水的实现方法及系统
技术领域
本发明涉及微处理器技术领域,具体涉及一种乱序CPU刷新但不停顿流水的实现方法及系统。
背景技术
传统的乱序CPU刷新时,产生分支指令的刷新或提交异常的ROB刷新时,需要停顿几个周期用于刷新恢复
产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表和RAT表的恢复,则需要保存指令执行过程中的相关信息供发生flush时物理寄存器空闲列表的恢复。
本方案则提出一种乱序CPU刷新但不停顿流水的实现方法当发生刷新时,不用停顿pipeline,不需要为对物理寄存器空闲列表专门保存任何信息,有效的减少了寄存器的数量。
发明内容
针对现有技术的不足,本发明公开了一种乱序CPU刷新但不停顿流水的实现方法及系统,不用为产生分支指令的刷新或提交异常的ROB刷新停顿pipeline流水;不用为产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表的恢复,保存任何信息。
本发明通过以下技术方案予以实现:
第一方面,本发明提供一种乱序CPU刷新但不停顿流水的实现方法,包括以下步骤:
S1进行CPU乱序执行时,在datapath执行单元执行完回report,若指令被刷新,则直接回report;
S2从未commit中找出已收到report的指令作为当前周期的commit指令;
S3根据被刷新的指令情况进行释放当前指令分配的物理寄存器或确定释放的物理寄存器;
S4通过Rename中对ROB中释放的物理寄存器进行回收,并更新freelist,完成刷新。
更进一步的,所述方法中,从未commit中找出最多5条连续已收到report的指令作为当前周期的commit指令。
更进一步的,所述方法中,若刷新的指令情况是被flush的指令,则释放当前指令分配的物理寄存器。
更进一步的,所述方法中,若刷新的指令情况是正常retire的指令,则释放该条指令目的架构寄存器原来所分配的物理寄存器的原则确定释放的物理寄存器。
更进一步的,所述方法中,当产生分支指令刷新时,将保留站中比产生分支指令刷新的指令还年轻的指令置为flushed,后面就不再发射到执行单元中执行,直接由保留站向ROB发送出完成信号。
第二方面,本发明公开了一种乱序CPU刷新但不停顿流水的实现系统,所述系统用于实现第一方面所述的乱序CPU刷新但不停顿流水的实现方法,包括Rename模块,ROB模块和datapath模块。
更进一步的,所述rename模块用于完成架构寄存器的重命名,进而解除WRW RAW假相关性,同时维护投机的架构寄存器和物理寄存器的映射表RAT表,对物理寄存器进行分配和回收,对checkpoint进行管理并在发生flush时对RAT表进行恢复。
更进一步的,所述datapath模块用于完成指令的具体功能,并将最终结果接入物理寄存器,将指令完成情况及出现的异常送报给所述ROB模块,同时处理刷新有关的处理,当被刷新时,该指令不用执行时,将report发送给所述ROB模块。
更进一步的,所述ROB模块用于保证所有指令最终顺序的提交,并记录非投机的架构寄存器和物理寄存器的映射表RAT表,供ROB_flush时RAT表恢复使用,在指令提交时释放对应的物理寄存器给rename。
更进一步的,所述ROB模块中进行物理寄存器释放时,如果是被flush的指令,则释放的是该指令所分配的物理寄存器;如果是正常retire的指令,则释放的是该指令的目的架构寄存器之前所分配的物理寄存器。
本发明的有益效果为:
本发明不用为产生分支指令的刷新或提交异常的ROB刷新停顿pipeline流水,有效的提高了CPU性能;不用为产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表,保存任何信息,有效的节约功耗和面积。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种乱序CPU基本框图;
图2是一种乱序CPU刷新但不停顿流水的实现方法原理步骤框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例公开如图2所示的一种乱序CPU刷新但不停顿流水的实现方法,包括以下步骤:
S1进行CPU乱序执行时,在datapath执行单元执行完回report,若指令被刷新,则直接回report;
S2从未commit中找出已收到report的指令作为当前周期的commit指令;
S3根据被刷新的指令情况进行释放当前指令分配的物理寄存器或确定释放的物理寄存器;
S4通过Rename中对ROB中释放的物理寄存器进行回收,并更新freelist,完成刷新。
本实施例中,从未commit中找出最多5条连续已收到report的指令作为当前周期的commit指令。
本实施例中,若刷新的指令情况是被flush的指令,则释放当前指令分配的物理寄存器。若刷新的指令情况是正常retire的指令,则释放该条指令目的架构寄存器原来所分配的物理寄存器的原则确定释放的物理寄存器。
本实施例中,当产生分支指令刷新时,将保留站中比产生分支指令刷新的指令还年轻的指令置为flushed,后面就不再发射到执行单元中执行,直接由保留站向ROB发送出完成信号。
本实施例不用为产生分支指令的刷新或提交异常的ROB刷新停顿pipeline流水。
本实施例不用为产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表的恢复,保存任何信息。
实施例2
本实施例公开如图1所示的一种乱序CPU基本框图,本实施例的主要实施方案在rename,ROB和datapath模块中。
本实施例rename模块:(1)完成架构寄存器的重命名,从而解除WRW RAW假相关性(2)维护投机的架构寄存器和物理寄存器的映射表RAT表(3)物理寄存器的分配和回收(4)checkpoint的管理(5)发生flush时RAT表的恢复。
datapath模块:(1)完成指令的具体功能,并将最终结果接入物理寄存器(2)把指令完成情况及出现的异常送报给ROB(3)处理刷新有关的处理,当被刷新时,该指令不用执行,但是还是要把report发送给ROB
ROB模块:(1)保证所有指令最终顺序的提交(2)记录非投机的架构寄存器和物理寄存器的映射表RAT表,供ROB_flush时RAT表恢复使用(3)指令提交时释放对应的物理寄存器给rename,如果是被刷新的指令,则释放当前指令分配的物理寄存器,如果没有被刷新,则释放该条指令目的架构寄存器原来所分配的物理寄存器。
本实施例中,当产生分支指令刷新时,将保留站中比产生分支指令刷新的指令还年轻的指令置为flushed,后面就不用再发射到执行单元中执行,而是直接由保留站向ROB送出完成信号。
本实施例中,在ROB物理寄存器释放时,如果是被flush的指令,则释放的是该指令所分配的物理寄存器;如果是正常retire的指令,则释放的是该指令的目的架构寄存器之前所分配的物理寄存器。
综上,本发明不用为产生分支指令的刷新或提交异常的ROB刷新停顿pipeline流水,有效的提高了CPU性能;不用为产生分支指令的刷新或提交异常的ROB刷新时,为了能对物理寄存器空闲列表,保存任何信息,有效的节约功耗和面积。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法包括以下步骤:
S1进行CPU乱序执行时,在datapath执行单元执行完回report,若指令被刷新,则直接回report;
S2从未commit中找出已收到report的指令作为当前周期的commit指令;
S3根据被刷新的指令情况进行释放当前指令分配的物理寄存器或确定释放的物理寄存器;
S4通过Rename中对ROB中释放的物理寄存器进行回收,并更新freelist,完成刷新。
2.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,从未commit中找出最多5条连续已收到report的指令作为当前周期的commit指令。
3.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,若刷新的指令情况是被flush的指令,则释放当前指令分配的物理寄存器。
4.根据权利要求3所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,若刷新的指令情况是正常retire的指令,则释放该条指令目的架构寄存器原来所分配的物理寄存器的原则确定释放的物理寄存器。
5.根据权利要求1所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,所述方法中,当产生分支指令刷新时,将保留站中比产生分支指令刷新的指令还年轻的指令置为flushed,后面就不再发射到执行单元中执行,直接由保留站向ROB发送出完成信号。
6.一种乱序CPU刷新但不停顿流水的实现系统,所述系统用于实现如权利要求1-5任一项所述的乱序CPU刷新但不停顿流水的实现方法,其特征在于,包括Rename模块,ROB模块和datapath模块。
7.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述rename模块用于完成架构寄存器的重命名,进而解除WRW RAW假相关性,同时维护投机的架构寄存器和物理寄存器的映射表RAT表,对物理寄存器进行分配和回收,对checkpoint进行管理并在发生flush时对RAT表进行恢复。
8.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述datapath模块用于完成指令的具体功能,并将最终结果接入物理寄存器,将指令完成情况及出现的异常送报给所述ROB模块,同时处理刷新有关的处理,当被刷新时,该指令不用执行时,将report发送给所述ROB模块。
9.根据权利要求6所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述ROB模块用于保证所有指令最终顺序的提交,并记录非投机的架构寄存器和物理寄存器的映射表RAT表,供ROB_flush时RAT表恢复使用,在指令提交时释放对应的物理寄存器给rename。
10.根据权利要求9所述的乱序CPU刷新但不停顿流水的实现系统,其特征在于,所述ROB模块中进行物理寄存器释放时,如果是被flush的指令,则释放的是该指令所分配的物理寄存器;如果是正常retire的指令,则释放的是该指令的目的架构寄存器之前所分配的物理寄存器。
CN202110684067.1A 2021-06-21 2021-06-21 一种乱序cpu刷新但不停顿流水的实现方法及系统 Pending CN113656214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110684067.1A CN113656214A (zh) 2021-06-21 2021-06-21 一种乱序cpu刷新但不停顿流水的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110684067.1A CN113656214A (zh) 2021-06-21 2021-06-21 一种乱序cpu刷新但不停顿流水的实现方法及系统

Publications (1)

Publication Number Publication Date
CN113656214A true CN113656214A (zh) 2021-11-16

Family

ID=78488986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110684067.1A Pending CN113656214A (zh) 2021-06-21 2021-06-21 一种乱序cpu刷新但不停顿流水的实现方法及系统

Country Status (1)

Country Link
CN (1) CN113656214A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599445A (zh) * 2022-11-25 2023-01-13 太初(无锡)电子科技有限公司(Cn) 一种指令乱序执行方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599445A (zh) * 2022-11-25 2023-01-13 太初(无锡)电子科技有限公司(Cn) 一种指令乱序执行方法

Similar Documents

Publication Publication Date Title
US8327188B2 (en) Hardware transactional memory acceleration through multiple failure recovery
US7870369B1 (en) Abort prioritization in a trace-based processor
KR100531433B1 (ko) 다중스레드 프로세서내의 이벤트 어커런스를 처리하는방법 및 장치
DE60038693T2 (de) Verfahren und vorrichtung zur ausschaltung eines taktsignals in einem vielfadenprozessor
JP5661934B2 (ja) アトミック領域の条件コミットのための決定メカニズムを提供する装置、方法、およびシステム
US8082430B2 (en) Representing a plurality of instructions with a fewer number of micro-operations
US8180977B2 (en) Transactional memory in out-of-order processors
US9063747B2 (en) Microprocessor systems and methods for a combined register file and checkpoint repair register
US20040128448A1 (en) Apparatus for memory communication during runahead execution
US20050120191A1 (en) Checkpoint-based register reclamation
CN110597556B (zh) 一种寄存器映射表检查点资源的管理方法、系统及介质
US9361111B2 (en) Tracking speculative execution of instructions for a register renaming data store
US20080244186A1 (en) Write filter cache method and apparatus for protecting the microprocessor core from soft errors
US20090182956A1 (en) Method and apparatus for improving transactional memory commit latency
US20110264898A1 (en) Checkpoint allocation in a speculative processor
US7155599B2 (en) Method and apparatus for a register renaming structure
JPH11500551A (ja) 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法
CN107003896B (zh) 具有共享事务处理资源的装置和数据处理方法
JP3183837B2 (ja) ロード・キュー及びバイパス・エラーを検出する方法
US10977038B2 (en) Checkpointing speculative register mappings
US20180293122A1 (en) Apparatus and method for handling memory access operations
CN1908890A (zh) 用于使用记录板机制处理加载锁定指令的方法和装置
US6061777A (en) Apparatus and method for reducing the number of rename registers required in the operation of a processor
US10545765B2 (en) Multi-level history buffer for transaction memory in a microprocessor
CN113656214A (zh) 一种乱序cpu刷新但不停顿流水的实现方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination