CN114047956B - 处理器指令多发射方法、双发射方法、装置及处理器 - Google Patents

处理器指令多发射方法、双发射方法、装置及处理器 Download PDF

Info

Publication number
CN114047956B
CN114047956B CN202210046744.1A CN202210046744A CN114047956B CN 114047956 B CN114047956 B CN 114047956B CN 202210046744 A CN202210046744 A CN 202210046744A CN 114047956 B CN114047956 B CN 114047956B
Authority
CN
China
Prior art keywords
instruction
processed
execution
conflict
resources required
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.)
Active
Application number
CN202210046744.1A
Other languages
English (en)
Other versions
CN114047956A (zh
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.)
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
Beijing Smartchip Microelectronics 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 Beijing Smartchip Microelectronics Technology Co Ltd filed Critical Beijing Smartchip Microelectronics Technology Co Ltd
Priority to CN202210046744.1A priority Critical patent/CN114047956B/zh
Publication of CN114047956A publication Critical patent/CN114047956A/zh
Application granted granted Critical
Publication of CN114047956B publication Critical patent/CN114047956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及处理器领域,提供一种处理器指令多发射方法、双发射方法、装置及处理器。所述处理器指令多发射方法包括:判断待处理的连续N条指令执行时需要的资源是否冲突,其中N为大于等于3的整数;在确定待处理的N条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内发射待处理的第一条指令至第N条指令。本发明通过判断待处理的多条指令执行所需要的资源是否冲突来确定是否多发射指令,在资源不冲突的情况下多发射指令,处理器只需要一套执行单元,在不增加额外的执行单元的情况下实现指令多发射,提升处理器执行效率。

Description

处理器指令多发射方法、双发射方法、装置及处理器
技术领域
本发明涉及处理器领域,具体地涉及一种处理器指令双发射方法、一种处理器指令双发射装置、一种处理器、一种芯片以及一种存储介质。
背景技术
随着嵌入式系统复杂性的提升,对嵌入式处理器的性能提出了更高的要求。为此,在嵌入式处理器中开始采用在一个周期内发射并处理多条指令的技术。由于成本(面积,逻辑门数量)的限制,通常采用指令双发射方法。
现有的嵌入式处理器的指令双发射方法,通常是在单周期内发射两条指令,通过额外增加译码单元和执行单元来处理两条指令,提高处理器性能。但是,在流水级中设置两个相同的译码单元和执行单元(译码逻辑和执行单元的资源翻倍),增加了处理器的面积资源开销,而且指令分发控制和执行策略还会带来设计上的逻辑复杂性,明显增加了处理器的功耗和成本。
发明内容
本发明实施方式的目的是提供一种处理器指令双发射方法及装置,以降低处理器的功耗和成本。
为了实现上述目的,本发明第一方面提供一种处理器指令多发射方法,所述方法包括:
判断待处理的连续N条指令执行时需要的资源是否冲突,其中N为大于等于3的整数;
在确定待处理的连续N条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内发射所述待处理的连续N条指令。
进一步地,所述方法还包括:
在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
进一步地,所述判断待处理的连续N条指令执行时需要的资源是否冲突,包括:
判断待处理的连续N条指令执行时需要的部件中是否具有相同的部件;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
本发明第二方面提供一种处理器指令双发射方法,所述方法包括:
判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突;
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。
进一步地,所述方法还包括:
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
进一步地,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件,若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,否则,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
进一步地,所述在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令,包括:
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向取指级反馈禁止指令双发射信息,将待处理的第二条指令退回给取指级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
进一步地,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
进一步地,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
本发明第三方面提供一种处理器指令多发射装置,所述装置包括:
判断模块,用于判断待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源是否冲突,其中N为大于等于3的整数;
多发射模块,用于在所述判断模块确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源均不冲突的情况下,在同一个时钟周期内发射待处理的第一条指令至第N条指令。
进一步地,所述多发射模块还用于在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
进一步地,所述判断待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中是否具有相同的部件;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
本发明第四方面提供一种处理器指令双发射装置,所述装置包括:
判断模块,用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突;
双发射模块,用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。
进一步地,所述双发射模块还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
进一步地,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件,若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,否则,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
进一步地,所述在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令,包括:
所述双发射模块在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向取指级反馈禁止指令双发射信息,将待处理的第二条指令退回给取指级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
进一步地,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
进一步地,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
本发明第五方面提供一种处理器,包括译码单元,所述处理器还包括指令双发射寄存器和双发射检测单元:
所述指令双发射寄存器,用于存储待处理的第一条指令和待处理的第二条指令,将待处理的第一条指令发送到所述译码单元,将待处理的第二条指令发送到所述双发射检测单元;
所述双发射检测单元,用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。
进一步地,所述双发射检测单元还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,将所述待处理的第二条指令退回给取指级并取指级反馈禁止指令双发射信息。
进一步地,所述处理器还包括:
取指单元;
指令发射选通器,用于从所述取指单元选择指令更新到所述指令双发射寄存器,在所述双发射检测单元退回指令时优先将退回的指令更新到所述指令双发射寄存器。
进一步地,所述指令双发射寄存器包括第一指令寄存器和第二指令寄存器,所述第一指令寄存器用于存储和发射待处理的第一条指令,所述第二指令寄存器用于存储和发射待处理的第二条指令;
所述指令发射选通器从所述取指单元选择两条指令依次更新到所述第一指令寄存器和所述第二指令寄存器,在接收到所述双发射检测单元退回的指令时优先将该退回的指令更新到所述第一指令寄存器。
进一步地,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述双发射检测单元判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
进一步地,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
进一步地,所述处理器还包括:
程序计数器,用于根据所述译码单元反馈的所述第一条指令的译码结果以及所述双发射检测单元反馈的双发射结果,更新程序计数器值。
进一步地,所述程序计数器更新程序计数器值至少包括以下情况之一:
在所述双发射结果为成功且双发射的指令不是分支指令的情况下,所述程序计数器更新程序计数器值为原PC值累加双发射的两条指令的长度之和;
在所述双发射结果为成功且双发射的指令是分支指令的情况下,所述程序计数器更新程序计数器值为分支目标地址;
在所述双发射结果为失败且发射的第一条指令不是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为原PC值累加第一条指令的长度;
在所述双发射结果为失败且发射的第一条指令是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为分支目标地址。
本发明还提供一种芯片,所述芯片包括上述的处理器指令多发射装置、处理器指令双发射装置、或者包括上述的处理器。
本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的处理器指令多发射方法或者处理器指令双发射方法。
本发明通过判断待处理的多条指令执行所需要的资源是否冲突来确定是否多发射指令,在资源不冲突的情况下多发射指令,处理器只需要一套执行单元,在不增加额外的执行单元的情况下实现指令多发射,提升处理器执行效率。
本发明的处理器指令双发射方法及装置,通过判断待处理的两条指令执行所需要的资源是否冲突来确定是否双发射指令,在资源不冲突的情况下双发射指令,处理器只需要一套译码逻辑、执行单元,在不增加额外的译码单元和执行单元的情况下实现指令双发射,达到提升处理器执行效率的目的。本发明中,处理器只需要一套译码逻辑、执行单元,相对于现有技术中设置两套或多套执行单元,降低了处理器的功耗和成本。此外,本发明通过对双发射指令的类型进行限定,即预先设置符合双发射条件的指令类型(双发射指令类型),判断待处理的第二条指令为预设的双发射指令类型时才双发射待处理的第一条指令和第二条指令。在判断待处理的第二条指令的指令类型是否为预设的双发射指令类型的过程中,只需对限定的指令类型的指令进行译码,其译码逻辑是所有指令集译码逻辑的一个子集,相对于现有技术中设置两个相同的译码单元,减小了处理器的逻辑资源面积,降低成本。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的处理器指令多发射方法的流程图;
图2是本发明一种实施方式提供的处理器指令双发射方法的流程图;
图3是本发明一种实施方式提供的处理器指令多发射装置的框图;
图4是本发明一种实施方式提供的处理器指令双发射装置的框图;
图5是本发明一种实施方式提供的处理器的结构框图;
图6是本发明一种实施方式提供的处理器的指令发射选通逻辑框图;
图7是本发明一种实施方式提供的处理器的程序计数器更新的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明一种实施方式提供的处理器指令多发射方法的流程图。如图1所示,本实施方式提供一种处理器指令多发射方法,包括以下步骤:
S10、判断待处理的连续N条指令执行时需要的资源是否冲突,其中N为大于等于3的整数。
具体的,判断待处理的连续N条指令执行时需要的部件中是否具有相同的部件;若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
S11、在确定待处理的连续N条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内发射所述待处理的连续N条指令。
在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
本实施方式通过判断待处理的多条指令执行所需要的资源是否冲突来确定是否多发射指令,在资源不冲突的情况下多发射指令,处理器只需要一套译码逻辑、执行单元,在不增加额外的执行单元的情况下实现指令多发射,提升处理器执行效率。
图2是本发明一种实施方式提供的处理器指令双发射方法的流程图。如图2所示,本实施方式提供一种处理器指令双发射方法,包括以下步骤:
S20、判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突。
在一种可选实施方式中,首先确定待处理的第一条指令和待处理的第二条指令执行时需要的部件,然后判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件;若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,否则,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
在另一种可选实施方式中,判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,其中,所述双发射指令类型的指令为执行时占用逻辑资源少的指令或执行时不占用逻辑资源的指令。若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。所述双发射指令类型的指令,例如空操作类指令(NOP)、跳转类指令(BRANCH或JUMP)、提示类指令(HINT)、条件码限定类指令(If-Then),这些指令的执行不占用算术逻辑单元和访存单元(不占用流水线的执行单元),且针对这些指令的译码逻辑简单,译码逻辑面积资源(逻辑门电路的数量)占用少。
S21、在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。
所述方法还包括以下步骤:在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。具体为,在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向前一级(即取指级)反馈禁止指令双发射信息,将待处理的第二条指令退回给前一级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
本发明实施方式的处理器指令双发射方法,通过判断待处理的两条指令执行所需要的资源是否冲突来确定是否双发射指令,在资源不冲突的情况下双发射指令,处理器只需要一套译码逻辑、执行单元,在不增加额外的执行单元的情况下实现指令双发射,达到提升处理器执行效率的目的。本发明中,处理器只需要一套译码逻辑、执行单元,相对于现有技术中设置两套执行单元,降低了处理器的功耗和成本。
进一步地,本发明的处理器指令双发射方法,通过对双发射指令的类型进行限定,即预先设置符合双发射条件的指令类型(双发射指令类型),判断待处理的第二条指令为预设的双发射指令类型时才双发射待处理的第一条指令和第二条指令。在判断待处理的第二条指令的指令类型是否为预设的双发射指令类型的过程中,只需对限定的指令类型的指令进行译码,其译码逻辑是所有指令集译码逻辑的一个子集,相对于现有技术中设置两个相同的译码单元,减小了处理器的逻辑资源面积,降低成本。
图3是本发明一种实施方式提供的处理器指令多发射装置的框图。如图3所示,本实施方式提供一种处理器指令多发射装置,所述装置包括:判断模块和多发射模块。所述判断模块用于判断待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源是否冲突,其中N为大于等于3的整数。所述多发射模块用于在所述判断模块确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源均不冲突的情况下,在同一个时钟周期内发射待处理的第一条指令至第N条指令。
所述多发射模块在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
所述判断模块判断待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中是否具有相同的部件;待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
图4是本发明一种实施方式提供的处理器指令双发射装置的框图。如图4所示,本实施方式提供一种处理器指令双发射装置,所述装置包括判断模块和双发射模块。所述判断模块用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突。所述双发射模块用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。所述双发射模块还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。具体的,所述双发射模块在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向取指级反馈禁止指令双发射信息,将待处理的第二条指令退回给取指级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
在一种可选实施方式中,所述判断模块判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件,若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,若否,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
在另一种可选实施方式中,所述判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,其中,所述双发射指令类型的指令为执行时占用逻辑资源少的指令或执行时不占用逻辑资源的指令。若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。所述双发射指令类型的指令,例如空操作类指令(NOP)、跳转类指令(BRANCH或JUMP)、提示类指令(HINT)、条件码限定类指令(If-Then),这些指令的执行不占用算术逻辑单元和访存单元(不占用流水线的执行单元),且针对这些指令的译码逻辑简单,译码逻辑面积资源占用少。
本发明实施方式的处理器指令双发射装置,通过判断待处理的两条指令执行所需要的资源是否冲突来确定是否双发射指令,在资源不冲突的情况下双发射指令,处理器只需要一套译码逻辑、执行单元,在不增加额外的执行单元的情况下实现指令双发射,达到提升处理器执行效率的目的。本发明中,处理器只需要一套译码逻辑、执行单元,相对于现有技术中设置两套执行单元,降低了处理器的功耗和成本。
进一步地,本发明的处理器指令双发射装置,通过对双发射指令的类型进行限定,即预先设置符合双发射条件的指令类型(双发射指令类型),判断待处理的第二条指令为预设的双发射指令类型时才双发射待处理的第一条指令和第二条指令。在判断待处理的第二条指令的指令类型是否为预设的双发射指令类型的过程中,只需对限定的指令类型的指令进行译码,其译码逻辑是所有指令集译码逻辑的一个子集,相对于现有技术中设置两个相同的译码单元,减小了处理器的逻辑资源面积,降低成本。
图5是本发明一种实施方式提供的处理器的结构框图。如图5所示,本实施方式提供一种处理器,包括取指单元、译码单元、执行单元及程序计数器,所述处理器还包括指令双发射寄存器、双发射检测单元以及指令发射选通器。所述指令双发射寄存器用于存储待处理的第一条指令(图中的指令1)和待处理的第二条指令(图中的指令2),将待处理的第一条指令发送到所述译码单元,将待处理的第二条指令发送到双发射检测单元。所述双发射检测单元用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令。所述双发射检测单元还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,将所述待处理的第二条指令退回给指令发射选通器,并向所述指令发射选通器反馈禁止指令双发射信息。所述指令发射选通器,用于从所述取指单元(的指令缓冲区)选择指令更新到所述指令双发射寄存器,在所述双发射检测单元退回指令时优先将退回的指令更新到所述指令双发射寄存器。
图6是本发明一种实施方式提供的处理器的指令发射选通逻辑框图。如图6所示,所述指令发射选通器从取指单元的指令缓冲区选择指令(指令1和指令2)更新到指令双发射寄存器。所述指令双发射寄存器包括第一指令寄存器(图中的寄存器1)和第二指令寄存器(图中的寄存器2),所述第一指令寄存器用于存储和发射待处理的第一条指令(指令1),所述第二指令寄存器用于存储和发射待处理的第二条指令(指令2)。所述指令发射选通器从取指单元选择两条指令依次更新到第一指令寄存器和第二指令寄存器。双发射检测单元双发射失败时,将待处理的第二条指令退回到指令发射选通器,并向指令发射选通器反馈禁止指令双发射信息。指令发射选通器在接收到双发射检测单元退回的指令(即当前时钟周期的待处理的第二条指令)时,优先将该退回的指令更新到第一指令寄存器,将从取指单元(的指令缓冲区)选择的指令更新到第二指令寄存器。在当前时钟周期的下一个时钟周期,退回的指令(即当前时钟周期的待处理的第二条指令)作为下一个时钟周期的待处理的第一条指令,由第一指令寄存器发射到译码单元进行译码。在下一个时钟周期,若第二指令寄存器中存储的指令(即下一时钟周期的待处理的第二条指令)符合双发射条件(与下一个时钟周期的待处理的第一条指令执行时需要的资源不冲突),则与译码单元译码的指令(下一个时钟周期的待处理的第一条指令)在下一个周期内双发射。
所述双发射检测单元判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令为执行时占用逻辑资源少的指令或执行时不占用逻辑资源的指令;若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。所述双发射指令类型的指令,例如空操作类指令(NOP)、跳转类指令(BRANCH或JUMP)、提示类指令(HINT)、条件码限定类指令(If-Then),这些指令的执行不占用算术逻辑单元和访存单元(不占用流水线的执行单元),且针对这些指令的译码逻辑简单,译码逻辑面积资源占用少。这些指令尤其是跳转类指令在软件程序中出现的频次较高,将该类指令进行双发射可以显著提升处理器的性能。
在处理器中,程序计数器(Program Counter,PC) 用来存放当前欲执行指令的地址。在程序开始执行前,需将程序的一条指令所在的内存单元地址送入程序计数器,因此程序计数器(PC)的内容是从内存提取的第一条指令的地址,每执行一条指令PC增加一个量,这个量等于指令所含的字节数,使其总是保持将要执行的下一条指令的地址。
本实施方式中,所述程序计数器(Program Counter,PC)用于根据所述译码单元反馈的所述第一条指令的译码结果以及所述双发射检测单元反馈的双发射结果,更新程序计数器值。指令双发射结果同时作用于程序计数器的更新控制上,可保证指令取指流水级正确预取新的指令。
如图7所示,通常程序计数器在指令执行过程中更新程序计数器值,即使用指令执行产生的PC值来更新程序计数器值,针对双发射指令的情况,不同的双发射结果,程序计数器更新程序计数器值分为以下几种情况:
1)在所述双发射结果为成功且双发射的指令不是分支指令的情况下,所述程序计数器更新程序计数器值为原PC值累加双发射的两条指令的长度之和。
2)在所述双发射结果为成功且双发射的指令是分支指令的情况下,所述程序计数器更新程序计数器值为分支目标地址(即跳转地址)。
3)在所述双发射结果为失败且发射的第一条指令不是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为原PC值累加第一条指令的长度。
4)在所述双发射结果为失败且发射的第一条指令是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为分支目标地址(即跳转地址)。
本发明实施方式提供的处理器,通过双发射检测单元判断待处理的两条指令执行所需要的资源是否冲突来确定是否双发射指令,在资源不冲突的情况下双发射指令,处理器只需要一个译码单元(对应一套译码逻辑)、一套执行单元,在不增加额外的执行单元的情况下实现指令双发射,达到提升处理器执行效率的目的。本发明中,处理器只需要一套译码逻辑、执行单元,相对于现有技术中设置两套译码逻辑、执行单元,降低了处理器的功耗和成本。
进一步地,本发明的双发射检测单元能够对双发射指令的类型进行限定,即预先设置符合双发射条件的指令类型(双发射指令类型),判断待处理的第二条指令为预设的双发射指令类型时才双发射待处理的第一条指令和第二条指令。在判断待处理的第二条指令的指令类型是否为预设的双发射指令类型的过程中,只需对限定的指令类型的指令进行译码,其译码逻辑是所有指令集译码逻辑的一个子集,相对于现有技术中设置两个相同的译码单元,减小了处理器的逻辑资源面积,降低成本。
本发明实施方式还提供一种芯片,所述芯片包括上述的处理器指令多发射装置、处理器指令双发射装置、或者包括上述的处理器。
本发明实施方式还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的处理器指令多发射方法或者处理器指令双发射方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

Claims (23)

1.一种处理器指令多发射方法,所述处理器包括一套译码逻辑,其特征在于,所述方法包括:
判断待处理的连续N条指令执行时需要的资源是否冲突,其中N为大于等于3的整数;
在确定待处理的连续N条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内发射所述待处理的连续N条指令;
其中,所述判断待处理的连续N条指令执行时需要的资源是否冲突,包括:
判断待处理的连续N条指令执行时需要的部件中是否具有相同的部件;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
2.根据权利要求1所述的处理器指令多发射方法,其特征在于,所述方法还包括:
在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
3.一种处理器指令双发射方法,所述处理器包括一套译码逻辑,其特征在于,所述方法包括:
判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突;
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令;
其中,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件,若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,否则,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
4.根据权利要求3所述的处理器指令双发射方法,其特征在于,所述方法还包括:
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
5.根据权利要求4所述的处理器指令双发射方法,其特征在于,所述在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令,包括:
在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向取指级反馈禁止指令双发射信息,将待处理的第二条指令退回给取指级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
6.根据权利要求3所述的处理器指令双发射方法,其特征在于,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;
若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;
若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
7.根据权利要求6所述的处理器指令双发射方法,其特征在于,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
8.一种处理器指令多发射装置,所述处理器包括一套译码逻辑,其特征在于,所述装置包括:
判断模块,用于判断待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源是否冲突,其中N为大于等于3的整数;
多发射模块,用于在所述判断模块确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源均不冲突的情况下,在同一个时钟周期内发射待处理的第一条指令至第N条指令;
其中,所述判断待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中是否具有相同的部件;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中具有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-1条指令执行时需要的资源冲突;
若待处理的第N条指令执行时需要的部件与待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,且待处理的第一条指令至第N-1条指令执行时需要的部件中没有相同的部件,确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突。
9.根据权利要求8所述的处理器指令多发射装置,其特征在于,所述多发射模块还用于在确定待处理的第N条指令执行时需要的资源与待处理的第一条指令至第N-2条指令执行时需要的资源均不冲突,且与待处理的第N-1条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射待处理的第一条指令至第N-1条指令,在所述一个时钟周期的下一个时钟周期内发射待处理的第N条指令。
10.一种处理器指令双发射装置,所述处理器包括一套译码逻辑,其特征在于,所述装置包括:
判断模块,用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突;
双发射模块,用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令;
其中,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第二条指令执行时需要的部件与待处理的第一条指令执行时需要的部件中是否具有相同的部件,若是,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突,否则,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突。
11.根据权利要求10所述的处理器指令双发射装置,其特征在于,所述双发射模块还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
12.根据权利要求11所述的处理器指令双发射装置,其特征在于,所述在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令,包括:
所述双发射模块在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,向取指级反馈禁止指令双发射信息,将待处理的第二条指令退回给取指级,在所述一个时钟周期的下一个时钟周期内发射所述待处理的第二条指令。
13.根据权利要求10所述的处理器指令双发射装置,其特征在于,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;
若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;
若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
14.根据权利要求13所述的处理器指令双发射装置,其特征在于,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
15.一种处理器,包括译码单元,其特征在于,所述处理器还包括指令双发射寄存器和双发射检测单元:
所述指令双发射寄存器,用于存储待处理的第一条指令和待处理的第二条指令,将待处理的第一条指令发送到所述译码单元,将待处理的第二条指令发送到所述双发射检测单元;
所述双发射检测单元,用于判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突的情况下,在同一个时钟周期内双发射所述待处理的第一条指令和所述待处理的第二条指令;
其中,所述判断待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源是否冲突,包括:
所述双发射检测单元判断模块判断待处理的第二条指令的指令类型是否为预设的双发射指令类型,所述双发射指令类型的指令包括执行时不占用逻辑资源的指令;
若待处理的第二条指令的指令类型是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源不冲突;
若待处理的第二条指令的指令类型不是预设的双发射指令类型,确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突。
16.根据权利要求15所述的处理器,其特征在于,所述双发射检测单元还用于在确定待处理的第二条指令执行时需要的资源与待处理的第一条指令执行时需要的资源冲突的情况下,在一个时钟周期内发射所述待处理的第一条指令,将所述待处理的第二条指令退回给取指级并向取指级反馈禁止指令双发射信息。
17.根据权利要求16所述的处理器,其特征在于,所述处理器还包括:
取指单元;
指令发射选通器,用于从所述取指单元选择指令更新到所述指令双发射寄存器,在所述双发射检测单元退回指令时优先将退回的指令更新到所述指令双发射寄存器。
18.根据权利要求17所述的处理器,其特征在于,所述指令双发射寄存器包括第一指令寄存器和第二指令寄存器,所述第一指令寄存器用于存储和发射待处理的第一条指令,所述第二指令寄存器用于存储和发射待处理的第二条指令;
所述指令发射选通器从所述取指单元选择两条指令依次更新到所述第一指令寄存器和所述第二指令寄存器,在接收到所述双发射检测单元退回的指令时优先将该退回的指令更新到所述第一指令寄存器。
19.根据权利要求18所述的处理器,其特征在于,所述双发射指令类型的指令包括:空操作类指令、跳转类指令、提示类指令及条件码限定类指令中的一者或多者。
20.根据权利要求15所述的处理器,其特征在于,所述处理器还包括:
程序计数器,用于根据所述译码单元反馈的所述第一条指令的译码结果以及所述双发射检测单元反馈的双发射结果,更新程序计数器值。
21.根据权利要求20所述的处理器,其特征在于,所述程序计数器更新程序计数器值至少包括以下情况之一:
在所述双发射结果为成功且双发射的指令不是分支指令的情况下,所述程序计数器更新程序计数器值为原PC值累加双发射的两条指令的长度之和;
在所述双发射结果为成功且双发射的指令是分支指令的情况下,所述程序计数器更新程序计数器值为分支目标地址;
在所述双发射结果为失败且发射的第一条指令不是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为原PC值累加第一条指令的长度;
在所述双发射结果为失败且发射的第一条指令是分支指令的情况下,所述程序计数器根据第一条指令的译码结果更新程序计数器值为分支目标地址。
22.一种芯片,其特征在于,所述芯片包括权利要求8-9中任一项所述的处理器指令多发射装置、权利要求10-14中任一项所述的处理器指令双发射装置、或者包括权利要求15-21中任一项所述的处理器。
23.一种存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被执行时实现权利要求1-2中任一项所述的处理器指令多发射方法、或者权利要求3-7中任一项所述的处理器指令双发射方法。
CN202210046744.1A 2022-01-17 2022-01-17 处理器指令多发射方法、双发射方法、装置及处理器 Active CN114047956B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210046744.1A CN114047956B (zh) 2022-01-17 2022-01-17 处理器指令多发射方法、双发射方法、装置及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210046744.1A CN114047956B (zh) 2022-01-17 2022-01-17 处理器指令多发射方法、双发射方法、装置及处理器

Publications (2)

Publication Number Publication Date
CN114047956A CN114047956A (zh) 2022-02-15
CN114047956B true CN114047956B (zh) 2022-04-19

Family

ID=80196595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210046744.1A Active CN114047956B (zh) 2022-01-17 2022-01-17 处理器指令多发射方法、双发射方法、装置及处理器

Country Status (1)

Country Link
CN (1) CN114047956B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526895A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 基于指令双发射的高性能低功耗嵌入式处理器
CN112581351A (zh) * 2020-12-05 2021-03-30 西安翔腾微电子科技有限公司 一种双发射simt染色处理单元写回单元结构及写回通路冲突检测方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082755A1 (en) * 2006-09-29 2008-04-03 Kornegay Marcus L Administering An Access Conflict In A Computer Memory Cache
CN109933368B (zh) * 2019-03-12 2023-07-11 北京市合芯数字科技有限公司 一种指令的发射和验证方法及装置
US11163582B1 (en) * 2020-04-20 2021-11-02 Andes Technology Corporation Microprocessor with pipeline control for executing of instruction at a preset future time

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101526895A (zh) * 2009-01-22 2009-09-09 杭州中天微系统有限公司 基于指令双发射的高性能低功耗嵌入式处理器
CN112581351A (zh) * 2020-12-05 2021-03-30 西安翔腾微电子科技有限公司 一种双发射simt染色处理单元写回单元结构及写回通路冲突检测方法

Also Published As

Publication number Publication date
CN114047956A (zh) 2022-02-15

Similar Documents

Publication Publication Date Title
CN106104481B (zh) 用于执行确定性和机会性多线程的系统和方法
US9965274B2 (en) Computer processor employing bypass network using result tags for routing result operands
CN107810481B (zh) 处理器指令窗口中的指令块的基于年龄的管理
US6523110B1 (en) Decoupled fetch-execute engine with static branch prediction support
CN107771318B (zh) 基于块大小将指令块映射到指令窗口
CN109101276B (zh) 在cpu中执行指令的方法
US7266674B2 (en) Programmable delayed dispatch in a multi-threaded pipeline
US20130198495A1 (en) Method and Apparatus For Register Spill Minimization
US7454596B2 (en) Method and apparatus for partitioned pipelined fetching of multiple execution threads
CN112214241A (zh) 一种分布式指令执行单元的方法及系统
CN115629806A (zh) 一种处理指令的方法、系统、设备和存储介质
KR100986375B1 (ko) 피연산자의 빠른 조건부 선택
US7747993B2 (en) Methods and systems for ordering instructions using future values
JP2006216040A (ja) ソフトウエアによる動的予測方法および装置
CN114047956B (zh) 处理器指令多发射方法、双发射方法、装置及处理器
US8490098B2 (en) Concomitance scheduling commensal threads in a multi-threading computer system
US20020087852A1 (en) Method and apparatus for predicting branches using a meta predictor
EP0778519B1 (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
CN116113940A (zh) 一种图计算装置、处理方法及相关设备
US20150347143A1 (en) Computer processor employing instructions with elided nop operations
CN111857830B (zh) 一种提前转发指令数据的通路设计方法、系统及存储介质
CN115328552A (zh) 一种低成本高效分支预测器实现方法
CN114138334A (zh) 一种循环程序执行方法、装置以及处理器
US9959119B2 (en) Computer processor employing double-ended instruction decoding
US20070233961A1 (en) Multi-portioned instruction memory

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
GR01 Patent grant
GR01 Patent grant