CN114780148B - 一种系统寄存器访问指令的执行方法、装置及电子设备 - Google Patents

一种系统寄存器访问指令的执行方法、装置及电子设备 Download PDF

Info

Publication number
CN114780148B
CN114780148B CN202210683046.2A CN202210683046A CN114780148B CN 114780148 B CN114780148 B CN 114780148B CN 202210683046 A CN202210683046 A CN 202210683046A CN 114780148 B CN114780148 B CN 114780148B
Authority
CN
China
Prior art keywords
register access
system register
execution unit
access instruction
execution
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
CN202210683046.2A
Other languages
English (en)
Other versions
CN114780148A (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.)
Phytium Technology Co Ltd
Original Assignee
Phytium 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202210683046.2A priority Critical patent/CN114780148B/zh
Publication of CN114780148A publication Critical patent/CN114780148A/zh
Application granted granted Critical
Publication of CN114780148B publication Critical patent/CN114780148B/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/3802Instruction prefetching
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

本申请公开了一种系统寄存器访问指令的执行方法、装置及电子设备,该方法包括:从指令缓存中取出系统寄存器访问指令;确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;将系统寄存器访问指令分派至与执行部件对应的发射队列;将发射队列中的系统寄存器访问指令发射至对应的执行单元;执行系统寄存器访问指令,得到执行结果。本申请实施例中,可以不用单独设置一个执行部件来处理系统寄存器访问指令,可以减少微处理器中通用寄存器文件的访问端口,减少一个发射队列的资源,在对性能影响很小的情况下,达到降低微处理的体积和功耗的目的。

Description

一种系统寄存器访问指令的执行方法、装置及电子设备
技术领域
本申请涉及计算机微处理器设计技术领域,尤其涉及一种系统寄存器访问指令的执行方法、装置及电子设备。
背景技术
系统寄存器通常保存的是微处理器的有关配置和状态信息。系统寄存器访问指令包括读系统寄存器指令和写系统寄存器指令两类,读系统寄存器指令把某个系统寄存器的值读出来后存入通用寄存器,写系统寄存器指令把来自某个通用寄存器的值写入系统寄存器。
一种体系结构中定义的系统寄存器动辄几十个,甚至几百个,主流微处理器设计时对系统寄存器并不进行重命名,因此系统寄存器的访问指令需要顺序执行。为了不增加其他指令乱序执行的控制复杂度,系统寄存器访问指令由一个单独的执行部件执行,但这会增加微处理的体积和功耗。
发明内容
有鉴于此,本申请实施例通过提供一种系统寄存器访问指令的执行方法、装置及电子设备,用以至少解决现有技术中存在的上述技术问题。
根据本申请第一方面,本申请实施例提供了一种系统寄存器访问指令的执行方法,包括:从指令缓存中取出系统寄存器访问指令;确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;将系统寄存器访问指令分派至与执行部件对应的发射队列;将发射队列中的系统寄存器访问指令发射至对应的执行单元;执行系统寄存器访问指令,得到执行结果。
可选地,执行部件为微处理器已有的执行部件。
可选地,执行部件为自身处理任务少的执行部件。
可选地,执行部件为多周期整数执行部件。
可选地,执行部件为当前处理任务少的执行部件。
可选地,确定系统寄存器访问指令对应的执行部件,包括:提取系统寄存器访问指令的特征信息;基于特征信息确定系统寄存器访问指令对应的执行部件。
可选地,系统寄存器访问指令的执行方法还包括:将执行结果输出至结果总线。
根据本申请第二方面,本申请实施例还提供了一种系统寄存器访问指令的执行装置,包括:取出单元,用于从指令缓存中取出系统寄存器访问指令;确定单元,用于确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;分派单元,用于将系统寄存器访问指令分派至与执行部件对应的发射队列;发射单元,用于将发射队列中的系统寄存器访问指令发射至对应的执行单元;系统寄存器访问指令执行单元,用于执行系统寄存器访问指令,得到执行结果。
根据本申请第三方面,本申请实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任意实施方式中的系统寄存器访问指令的执行方法。
根据本申请第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行如第一方面或第一方面任意实施方式中的系统寄存器访问指令的执行方法。
本申请实施例提供的系统寄存器访问指令的执行方法、装置及电子设备,通过从指令缓存中取出系统寄存器访问指令;确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;将系统寄存器访问指令分派至与执行部件对应的发射队列;将发射队列中的系统寄存器访问指令发射至对应的执行单元;执行系统寄存器访问指令,得到执行结果;如此,是将系统寄存器访问指令的执行单元与其他处理任务的执行单元共同设置在一个执行部件中,从而系统寄存器访问指令的执行单元可以设置在其他处理任务的执行部件中,并通过共享该其他处理任务的执行部件的发射队列和结果总线的方式,实现执行系统寄存器访问指令,这样,可以不用单独设置一个执行部件来处理系统寄存器访问指令,可以减少微处理器中通用寄存器文件的访问端口,有利于时序,且减少一个发射队列的资源,在对性能影响很小的情况下,达到降低微处理的体积和功耗的目的。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
图1为本申请实施例中一种系统寄存器访问指令的执行方法的流程示意图;
图2为本申请实施例中一种微处理硬件结构示意图;
图3为本申请实施例中一种系统寄存器访问指令的执行方法的另一流程示意图;
图4为本申请实施例中一种系统寄存器访问指令的执行装置的结构示意图;
图5为本申请实施例中一种电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,为了不增加其他指令乱序执行的控制复杂度,系统寄存器访问指令由一个单独的执行部件执行。该执行部件对应有一个发射队列和结果总线。本申请人发现,系统寄存器访问指令在SPEC(Standard Performance Evaluation Corporation,SPEC)程序中的占比非常小,而有些其他的指令,例如多周期整数指令,在SPEC程序中的占比也非常小,且该其他的指令的发射队列经常是空闲状态,因此,本申请人想到,可以将系统寄存器访问指令的执行部件与该其他的指令的执行部件进行合并,将系统寄存器访问指令与该其他的指令共享一个发射队列和结果总线,可以达到减小微处理的体积和功耗的目的。
为此,本申请实施例提供了一种系统寄存器访问指令的执行方法,如图1所示,包括:
S101,从指令缓存中取出系统寄存器访问指令。
本实施例中,微处理器的指令包括分支指令、多周期整数指令、单周期整数指令、浮点/向量指令、访存指令、系统寄存器访问指令等。当需要对系统寄存器进行访问时,可以从指令缓存中取出系统寄存器访问指令。
S102确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线。
本实施例中,执行部件中的多个执行单元用于执行不同的指令,多个执行单元中包括系统寄存器访问指令执行单元和其他处理任务执行单元。
在一种实现方式中,系统寄存器访问指令执行单元可以是共享其他处理任务执行部件的发射队列和结果总线。
在另一种实现方式中,其他处理任务执行单元可以是共享系统寄存器访问指令执行部件的发射队列和结果总线。
在另一种实现方式中,可以新建一个执行部件,在该执行部件中建立系统寄存器访问指令执行单元和其他处理任务执行单元,以及该执行部件对应的发射队列和结果总线,使得系统寄存器访问指令执行单元和其他处理任务执行单元共享一个发射队列和结果总线。
S103,将系统寄存器访问指令分派至与执行部件对应的发射队列;
在本实施例中,系统寄存器访问指令对应的执行部件具有一个发射队列,因此,在确定了系统寄存器访问指令对应的执行部件后,将系统寄存器访问指令分派至于该执行部件对应的发射队列。
S104,将发射队列中的系统寄存器访问指令发射至对应的执行单元;
在本实施例中,由于执行部件中的多个执行单元用于执行不同的指令,多个执行单元中包括系统寄存器访问指令执行单元和其他处理任务执行单元。因此,在发射队列中,需要进一步判断指令的类型,如果是系统寄存器访问指令,则将系统寄存器访问指令顺序发射至系统寄存器访问指令执行单元,如果是其他处理任务的指令,则将其他处理任务的指令乱序发射至其他处理任务执行单元。
在本实施例中,设置多个执行单元,将发射队列中的系统寄存器访问指令发射至对应的执行单元,可以使得相应的执行单元执行相应的处理任务,保证系统寄存器访问指令能够被正确执行。
S105,执行系统寄存器访问指令,得到执行结果。
在本实施例中,系统寄存器访问指令执行单元执行系统寄存器访问指令,将系统寄存器中的值读取出来,得到执行结果。
在一些实施例中,系统寄存器访问指令的执行方法还包括:将执行结果输出至结果总线。
具体实施时,结果总线为系统寄存器访问指令执行单元与其他处理任务执行单元共享的一条结果总线,将执行结果输出至结果总线,可以使得执行结果通过结果发送至通用寄存器。
本申请实施例提供的系统寄存器访问指令的执行方法,通过从指令缓存中取出系统寄存器访问指令;确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;将系统寄存器访问指令分派至与执行部件对应的发射队列;将发射队列中的系统寄存器访问指令发射至对应的执行单元;执行系统寄存器访问指令,得到执行结果;如此,是将系统寄存器访问指令的执行单元与其他处理任务的执行单元共同设置在一个执行部件中,从而系统寄存器访问指令的执行单元可以设置在其他处理任务的执行部件中,并通过共享该其他处理任务的执行部件的发射队列和结果总线的方式,实现执行系统寄存器访问指令,这样,可以不用单独设置一个执行部件来处理系统寄存器访问指令,可以减少微处理器中通用寄存器文件的访问端口,有利于时序,且减少一个发射队列的资源,在对性能影响很小的情况下,达到降低微处理的体积和功耗的目的。
在一些实施例中,可以预设系统寄存器访问指令对应已有的执行部件,例如,预设系统寄存器访问指令对应的执行部件为多周期整数执行部件。从而执行部件为微处理器已有的执行部件。
在本实施中,将执行部件设置为微处理器已有的执行部件,可以减少对微处理器的设计改动,并实现将系统寄存器访问指令的执行单元与其他处理任务的执行单元共同设置在一个执行部件中,系统寄存器访问指令的执行单元设置在其他处理任务的执行部件中,并共享该其他处理任务的执行部件的发射队列和结果总线。
在一种实现方式中,可以设置执行部件为自身处理任务少的执行部件。
具体实施时,由于多周期整数执行部件自身处理任务较少,其发射队列和结果总线经常处于空闲状态,因此,可以将多周期整数执行部件设置为系统寄存器访问指令对应的执行部件。
在本实施例中,将自身处理任务少的执行部件设置为系统寄存器访问指令的执行部件,可以提高自身任务少的执行部件的使用率,对性能的影响也非常小,并且减少一个SPR发射队列,减少一条结果总线访问通用寄存器的端口,有利于时序。
在一些实施例中,确定系统寄存器访问指令对应的执行部件的步骤包括:提取系统寄存器访问指令的特征信息;基于特征信息确定系统寄存器访问指令对应的执行部件。
具体实施时,可以预存各种指令对应的特征信息与执行部件之间的映射关系。可以对系统寄存器指令进行译码,来提取系统寄存器访问指令的特征信息。例如,对于系统寄存器访问指令,如果其译码为MXU,则系统寄存器访问指令的特征信息为MXU,则确定系统寄存器访问指令对应的执行部件为多周期整数执行部件。多周期整数部件对应MXU发射队列。
在该实施例中,通过提取系统寄存器访问指令的特征信息,可以快速确定系统寄存器访问指令对应的执行部件。
在一种实现方式中,可以不预设系统寄存器指令对应的执行部件,而是在微处理器当前空闲或处理任务少的执行部件中确定一个执行部件为系统寄存器访问指令对应的执行部件。从而可以设置系统寄存器访问指令的执行部件为当前处理任务少的执行部件。
在本实施例中,将当前执行任务少的执行部件设置为系统寄存器访问指令的执行部件,可以提高对各执行部件的利用率,且减少一个SPR发射队列,减少一条结果总线访问通用寄存器的端口,有利于时序。
以下以系统寄存器访问指令与多周期整数指令共享多周期整数执行部件对应的发射队列和结果总线为例进行说明。
本实施例涉及的微处理器的硬件结构如图2所示,包括取指单元,译码单元、寄存器重命名单元、分派单元、发射队列、执行部件和通用寄存器。其中,微处理器的指令包括分支指令、多周期整数指令、单周期整数指令、浮点/向量指令、访存指令、系统寄存器访问指令等。相应地,分支指令对应BRU发射队列和分支执行部件(Branch);多周期整数指令对应MXU发射队列和多周期整数执行部件(包括SPR执行单元和MUL/DIV执行单元);单周期整数指令对应ALU发射队列和单周期整数执行部件(ALU);浮点/向量指令对应VFU发射队列和浮点/向量执行部件(FP/SIMD);访存指令对应LSU发射队列和访存执行部件(Load/Store);系统寄存器访问指令与多周期整数指令相同,对应MXU发射队列和多周期整数执行部件(包括SPR执行单元和MUL/DIV执行单元)。每个执行部件通过对应的结果总线与通用寄存器(WB)连接。
在本实施例中,各功能单元的作用如下:
1、取指单元:用于将指令从指令缓存中取出来。
2、译码单元:用于将从指令缓存中取出的指令进行译码,来提取这条指令的特征信息,该特征信息用于确定这条指令是去分支执行部件、多周期整数执行部件、单周期整数执行部件、浮点/向量执行部件、访存执行部件中的哪个执行部件执行,对于系统寄存器访问指令,将其译码为多周期整数执行部件,和多周期整数指令(包括整数乘除法指令(MUL/DIV指令))共享一个发射队列和执行部件。
3、寄存器重命名单元:用于对带有目的寄存器的指令进行寄存器重命名,消除写后写和先读后写(WAW/WAR)两种假相关。由于系统寄存器访问指令不进行寄存器重命名,因此寄存器重命名单元对系统寄存器访问指令什么都不做。
4、分派单元:用于根据各发射队列的占用情况和当前的指令类型,均衡调度各发射队列,其中系统寄存器访问指令分派到MXU发射队列。
5、发射队列:用于顺序或乱序向执行部件发射指令。系统寄存器访问指令进入MXU发射队列,由于系统寄存器访问指令没有进行寄存器重命名,因此要保持顺序发射,而对于MXU发射队列中的MUL/DIV指令是可以进行乱序发射的,因此对于MXU发射队列需要支持乱序发射和顺序发射两种模式,对系统寄存器访问指令,要保持系统寄存器访问指令之间的顺序性,但是对系统寄存器访问指令和MUL/DIV指令之间是可以乱序的。选择将系统寄存器访问指令和MUL/DIV指令共享一个发射队列原因:(1)多周期整数指令在SPEC程序中的占比非常小,因此多周期整数发射队列经常是空闲状态。(2)系统寄存器访问指令在SPEC程序中的占比也非常小,因此即使和多周期整数共享一个发射队列,对性能的影响也非常小。(3)减少一个SPR发射队列,可以减少一条结果总线访问通用寄存器的端口,有利于时序,并且合并后的MXU发射队列可以做的更大,乱序资源的窗口就更大。
6、执行部件:用于执行从发射队列发射的指令。对于从MXU发射队列发射的系统寄存器访问指令,将进入SPR执行单元中执行,对于从MXU发射队列发射的MUL/DIV指令,将进入MUL/DIV执行单元完成指令的计算。最终SPR和MUL/DIV执行单元共享结果总线,将执行结果通过结果总线写回通用寄存器。
本实施例的系统寄存器访问指令的执行方法如图3所示。执行步骤具体如下:
1)从指令缓存中取出指令,送入译码单元进行指令拆分和译码。
2)指令译码后,如果判断是对应多周期整数执行部件,将分派到多周期整数发射队列,否则将指令发射到其它指令类型对应的发射队列。
3)在多周期整数发射队列中继续判断是否是系统寄存器访问指令,如果是,顺序发射至多周期整数执行部件中的系统寄存器访问指令执行单元,即SPR执行单元;如果不是,乱序发射至多周期整数单元中的MUL/DIV执行单元。
4)最终将执行结果输出到结果总线,通过结果总线写回到通用寄存器寄存器的文件中。
本申请实施例还提供了一种系统寄存器访问指令的执行装置,如图4所示,包括:
取出单元41,用于从指令缓存中取出系统寄存器访问指令。
确定单元42,用于确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线。
分派单元43,用于将系统寄存器访问指令分派至与执行部件对应的发射队列。
发射单元44,用于将发射队列中的系统寄存器访问指令发射至对应的执行单元。
系统寄存器访问指令执行单元45,用于执行系统寄存器访问指令,得到执行结果。
本申请实施例提供的系统寄存器访问指令的执行装置,通过从指令缓存中取出系统寄存器访问指令;确定系统寄存器访问指令对应的执行部件,执行部件包括多个执行单元,多个执行单元间使用频率或使用时间不同,多个执行单元共享同一发射队列和结果总线;将系统寄存器访问指令分派至与执行部件对应的发射队列;将发射队列中的系统寄存器访问指令发射至对应的执行单元;执行系统寄存器访问指令,得到执行结果;如此,是将系统寄存器访问指令的执行单元与其他处理任务的执行单元共同设置在一个执行部件中,从而系统寄存器访问指令的执行单元可以设置在其他处理任务的执行部件中,并通过共享该其他处理任务的执行部件的发射队列和结果总线的方式,实现执行系统寄存器访问指令,这样,可以不用单独设置一个执行部件来处理系统寄存器访问指令,可以减少微处理器中通用寄存器文件的访问端口,有利于时序,且减少一个发射队列的资源,在对性能影响很小的情况下,达到降低微处理的体积和功耗的目的。
在一个可选的实施例中,执行部件为微处理器已有的执行部件。
在一个可选的实施例中,执行部件为自身处理任务少的执行部件。
在一个可选的实施例中,执行部件为多周期整数执行部件。
在一个可选的实施例中,执行部件为当前处理任务少的执行部件。
在一个可选的实施例中,确定单元42用于提取系统寄存器访问指令的特征信息;基于特征信息确定系统寄存器访问指令对应的执行部件。
在一个可选的实施例中,系统寄存器访问指令执行单元45,还用于将执行结果输出至结果总线。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
图5示出了可以用来实施本申请的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如系统寄存器访问指令的执行方法。例如,在一些实施例中,系统寄存器访问指令的执行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的系统寄存器访问指令的执行方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行系统寄存器访问指令的执行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种系统寄存器访问指令的执行方法,其特征在于,包括:
从指令缓存中取出系统寄存器访问指令;
确定所述系统寄存器访问指令对应的执行部件,所述执行部件包括多个执行单元,多个所述执行单元包括所述系统寄存器访问指令的执行单元与其他处理任务的执行单元,多个所述执行单元间使用频率或使用时间不同,多个所述执行单元共享同一发射队列和结果总线;
将所述系统寄存器访问指令分派至与所述执行部件对应的发射队列;
将所述发射队列中的所述系统寄存器访问指令发射至对应的执行单元;
执行所述系统寄存器访问指令,得到执行结果。
2.根据权利要求1所述的系统寄存器访问指令的执行方法,其特征在于,所述执行部件为微处理器已有的执行部件。
3.根据权利要求2所述的系统寄存器访问指令的执行方法,其特征在于,所述执行部件为自身处理任务少的执行部件。
4.根据权利要求2所述的系统寄存器访问指令的执行方法,其特征在于,所述执行部件为多周期整数执行部件。
5.根据权利要求2所述的系统寄存器访问指令的执行方法,其特征在于,所述执行部件为当前处理任务少的执行部件。
6.根据权利要求1所述的系统寄存器访问指令的执行方法,其特征在于,所述确定所述系统寄存器访问指令对应的执行部件,包括:
提取所述系统寄存器访问指令的特征信息;
基于所述特征信息确定所述系统寄存器访问指令对应的执行部件。
7.根据权利要求1所述的系统寄存器访问指令的执行方法,其特征在于,还包括:
将所述执行结果输出至所述结果总线。
8.一种系统寄存器访问指令的执行装置,其特征在于,包括:
取出单元,用于从指令缓存中取出系统寄存器访问指令;
确定单元,用于确定所述系统寄存器访问指令对应的执行部件,所述执行部件包括多个执行单元,多个所述执行单元包括所述系统寄存器访问指令的执行单元与其他处理任务的执行单元,多个所述执行单元间使用频率或使用时间不同,多个所述执行单元共享同一发射队列和结果总线;
分派单元,用于将所述系统寄存器访问指令分派至与所述执行部件对应的发射队列;
发射单元,用于将所述发射队列中的所述系统寄存器访问指令发射至对应的执行单元;
系统寄存器访问指令执行单元,用于执行所述系统寄存器访问指令,得到执行结果。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-7任意一项所述的系统寄存器访问指令的执行方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行如权利要求1-7任意一项所述的系统寄存器访问指令的执行方法。
CN202210683046.2A 2022-06-17 2022-06-17 一种系统寄存器访问指令的执行方法、装置及电子设备 Active CN114780148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210683046.2A CN114780148B (zh) 2022-06-17 2022-06-17 一种系统寄存器访问指令的执行方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210683046.2A CN114780148B (zh) 2022-06-17 2022-06-17 一种系统寄存器访问指令的执行方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN114780148A CN114780148A (zh) 2022-07-22
CN114780148B true CN114780148B (zh) 2022-09-23

Family

ID=82421858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210683046.2A Active CN114780148B (zh) 2022-06-17 2022-06-17 一种系统寄存器访问指令的执行方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN114780148B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634638B1 (en) * 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
CN102968293A (zh) * 2012-11-28 2013-03-13 中国人民解放军国防科学技术大学 基于指令队列的程序循环代码动态检测及执行方法
CN108027767A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 寄存器读取/写入排序
CN108845829A (zh) * 2018-07-03 2018-11-20 中国人民解放军国防科技大学 一种系统寄存器访问指令的执行方法
CN108845830A (zh) * 2018-07-03 2018-11-20 中国人民解放军国防科技大学 一种一对数装载指令的执行方法
CN113590197A (zh) * 2021-07-30 2021-11-02 中国人民解放军国防科技大学 一种支持可变长向量处理的可配置处理器及其实现方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424034B2 (en) * 2013-06-28 2016-08-23 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US9183611B2 (en) * 2013-07-03 2015-11-10 Apple Inc. Apparatus implementing instructions that impose pipeline interdependencies
US11243775B2 (en) * 2019-03-26 2022-02-08 Intel Corporation System, apparatus and method for program order queue (POQ) to manage data dependencies in processor having multiple instruction queues

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634638B1 (en) * 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
CN102968293A (zh) * 2012-11-28 2013-03-13 中国人民解放军国防科学技术大学 基于指令队列的程序循环代码动态检测及执行方法
CN108027767A (zh) * 2015-09-19 2018-05-11 微软技术许可有限责任公司 寄存器读取/写入排序
CN108845829A (zh) * 2018-07-03 2018-11-20 中国人民解放军国防科技大学 一种系统寄存器访问指令的执行方法
CN108845830A (zh) * 2018-07-03 2018-11-20 中国人民解放军国防科技大学 一种一对数装载指令的执行方法
CN113590197A (zh) * 2021-07-30 2021-11-02 中国人民解放军国防科技大学 一种支持可变长向量处理的可配置处理器及其实现方法

Also Published As

Publication number Publication date
CN114780148A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN107810480B (zh) 根据性能度量的指令块分配
US9733945B2 (en) Pipelining out-of-order instructions
US9928124B2 (en) Reverting tightly coupled threads in an over-scheduled system
US9286119B2 (en) System, method, and computer program product for management of dependency between tasks
US20120060016A1 (en) Vector Loads from Scattered Memory Locations
JP2018519602A (ja) 連続ブロックの並列実行を有するブロックベースアーキテクチャ
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
CN112561079A (zh) 分布式的模型训练装置、方法及计算机程序产品
CN114675890B (zh) 一种指令执行方法、装置、设备及存储介质
WO2008116830A2 (en) Processor, method and computer program
US8578387B1 (en) Dynamic load balancing of instructions for execution by heterogeneous processing engines
CN115880132A (zh) 图形处理器、矩阵乘法任务处理方法、装置及存储介质
US20220350607A1 (en) Method of executing operation, electronic device, and computer-readable storage medium
US9256461B2 (en) Handling interrupt actions for inter-thread communication
CN110688160B (zh) 一种指令流水线处理方法、系统、设备及计算机存储介质
US9471305B2 (en) Micro-coded transcendental instruction execution
US20190294571A1 (en) Operation of a multi-slice processor implementing datapath steering
CN114780148B (zh) 一种系统寄存器访问指令的执行方法、装置及电子设备
CN116243983A (zh) 处理器、集成电路芯片、指令处理方法、电子设备和介质
US20210089305A1 (en) Instruction executing method and apparatus
CN114579191A (zh) 一种指令发射方法、装置、电子设备及存储介质
WO2024087039A1 (zh) 一种块指令的处理方法和块指令处理器
US20230205530A1 (en) Graph Instruction Processing Method and Apparatus
CN115599307B (zh) 数据存取方法、装置、电子设备、存储介质
CN117389512B (zh) 一种算术逻辑单元alu系统、电子设备和存储介质

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