CN113656214A - 一种乱序cpu刷新但不停顿流水的实现方法及系统 - Google Patents
一种乱序cpu刷新但不停顿流水的实现方法及系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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刷新时,产生分支指令的刷新或提交异常的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的指令,则释放的是该指令的目的架构寄存器之前所分配的物理寄存器。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599445A (zh) * | 2022-11-25 | 2023-01-13 | 太初(无锡)电子科技有限公司(Cn) | 一种指令乱序执行方法 |
-
2021
- 2021-06-21 CN CN202110684067.1A patent/CN113656214A/zh active Pending
Cited By (1)
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 |