CN112416434B - 物理寄存器分配方法、物理寄存器分配装置和电子设备 - Google Patents

物理寄存器分配方法、物理寄存器分配装置和电子设备 Download PDF

Info

Publication number
CN112416434B
CN112416434B CN202011410413.9A CN202011410413A CN112416434B CN 112416434 B CN112416434 B CN 112416434B CN 202011410413 A CN202011410413 A CN 202011410413A CN 112416434 B CN112416434 B CN 112416434B
Authority
CN
China
Prior art keywords
register
read
write
logical
physical
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
CN202011410413.9A
Other languages
English (en)
Other versions
CN112416434A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011410413.9A priority Critical patent/CN112416434B/zh
Publication of CN112416434A publication Critical patent/CN112416434A/zh
Application granted granted Critical
Publication of CN112416434B publication Critical patent/CN112416434B/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file

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

物理寄存器分配方法、物理寄存器分配装置和电子设备
技术领域
本公开的实施例涉及一种物理寄存器分配方法、物理寄存器分配装置和电子设备。
背景技术
处理器执行的程序中往往包含循环体,例如在for循环,while循环等。在程序的执行过程中,循环体中的指令往往被反复执行多次,占据了程序执行的大部分时间和资源。
发明内容
本公开至少一个实施例提供一种物理寄存器分配方法,包括:在执行至少一轮程序中的所述循环体的过程中,确定所述循环体中的指令对逻辑寄存器的读写信息,其中,所述读写信息指示是否对所述逻辑寄存器进行读操作和写操作;以及根据所述读写信息,调整所述逻辑寄存器与物理寄存器之间的对应关系,使得所述循环体的下一轮执行按照所述对应关系进行数据读写。
例如,在本公开一实施例提供的物理寄存器分配方法中,在执行至少一轮所述循环体的过程中,确定所述循环体中的指令对所述逻辑寄存器的读写信息,包括:在执行至少一轮所述循环体的过程中,通过寄存器重命名操作确定所述循环体中的指令对所述逻辑寄存器的读写信息;以及在寄存器重命名表中标记所述逻辑寄存器的读写信息。
例如,在本公开一实施例提供的物理寄存器分配方法中,寄存器重命名表包括标志位,在所述寄存器重命名表中标记所述逻辑寄存器的读写信息,包括:在所述标志位记录所述逻辑寄存器的读写信息。
例如,在本公开一实施例提供的物理寄存器分配方法中,标志位包括第一比特位和第二比特位,所述第一比特位用于记录是否对所述逻辑寄存器进行读操作,所述第二比特位用于记录是否对所述逻辑寄存器进行写操作。
例如,在本公开一实施例提供的物理寄存器分配方法中,根据所述读写信息,调整所述逻辑寄存器与所述物理寄存器之间的对应关系,包括:响应于所述读写信息指示对所述逻辑寄存器只进行读操作,将与所述逻辑寄存器对应的物理寄存器从第一物理寄存器调整为第二物理寄存器,以使所述逻辑寄存器中对应的数据信息保存到所述第二物理寄存器中,其中,所述第二物理寄存器的读写功耗小于所述第一物理寄存器的读写功耗。
例如,在本公开一实施例提供的物理寄存器分配方法中,第二物理寄存器到所述处理器内的读写电路接口的距离小于所述第一物理寄存器到所述读写电路接口的距离。
例如,在本公开一实施例提供的物理寄存器分配方法中,根据所述读写信息,调整所述逻辑寄存器与所述物理寄存器之间的对应关系,包括:响应于所述读写信息指示既不对所述逻辑寄存器进行写操作也不进行读操作,将所述逻辑寄存器对应的数据信息保存到所述处理器的内部存储区域;以及将所述逻辑寄存器与第一物理寄存器相对应调整为所述逻辑寄存器不与任何物理寄存器对应。
例如,本公开一实施例提供的物理寄存器分配方法还包括:将所述逻辑寄存器与所述第一物理寄存器相对应调整为所述逻辑寄存器不与任何物理寄存器对应,包括:修改所述寄存器重命名表,使得所述逻辑寄存器不与任何物理寄存器对应;将所述第一物理寄存器释放;以及将所述寄存器重命名表对应的所述逻辑寄存器的状态标记为释放状态,以指示所述逻辑寄存器对应的数据信息被保存到所述内部存储区域。
例如,在本公开一实施例提供的物理寄存器分配方法中,还包括:响应于所述循环体执行结束,从所述寄存器重命名表中读取所述逻辑寄存器的状态;为被标记为所述释放状态的逻辑寄存器重新分配物理寄存器;以及从所述内部存储区域中读取所述数据信息,并且将所述数据信息写入重新分配的物理寄存器。
例如,在本公开一实施例提供的物理寄存器分配方法中,循环体包括多个条件分支,所述多个条件分支至少包括第一条件分支和第二条件分支;在执行至少一轮所述循环体的过程中,确定所述循环体中的指令对所述逻辑寄存器的读写信息,包括:在第k轮执行所述循环体的过程中,响应于执行所述第一条件分支,确定所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的第一读写信息,其中,k为大于或等于1的整数;在第p轮执行所述循环体的过程中,响应于执行所述第二条件分支,根据所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的读写操作更新所述第一读写信息而得到第二读写信息,其中,p为大于k的整数。
例如,在本公开一实施例提供的物理寄存器分配方法中,确定所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的第一读写信息,包括:确定所述第二条件分支涉及的第二分支逻辑寄存器的第一读写信息为既不对所述第二分支逻辑寄存器进行写操作也不进行读操作,其中,所述第二分支逻辑寄存器为所述第二条件分支涉及并且所述第一条件分支不涉及的逻辑寄存器;根据所述读写信息,调整所述逻辑寄存器与所述物理寄存器之间的对应关系,包括:响应于所述第一读写信息指示既不对所述第二分支逻辑寄存器进行写操作也不进行读操作,将所述第二分支逻辑寄存器中对应的数据信息保存到所述处理器的内部存储区域;修改寄存器重命名表,使得所述第二分支逻辑寄存器不与任何物理寄存器对应,并且将所述第二分支逻辑寄存器对应的第一物理寄存器释放;以及将所述寄存器重命名表对应的所述第二分支逻辑寄存器的状态标记为释放状态,以指示所述第二分支逻辑寄存器中的数据信息被保存到所述内部存储区域;响应于执行所述第二条件分支,根据所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的读写操作更新所述第一读写信息而得到所述第二读写信息,包括:响应于在执行所述第二条件分支的过程中需要对被标记为所述释放状态的第二分支逻辑寄存器进行读写操作,从所述内部存储区域读取所述数据信息,并为所述第二分支逻辑寄存器重新分配物理寄存器,将所述数据信息写入重新分配的物理寄存器;根据所述读写操作更新所述第一读写信息而得到所述第二读写信息;以及将所述第二分支逻辑寄存器的状态信息清除。
例如,在本公开一实施例提供的物理寄存器分配方法中,还包括:响应于所述循环体执行结束,清除所述寄存器重命名表中的读写信息。
本公开至少一个实施例还提供一种物理寄存器分配装置,包括:确定单元,配置为在执行至少一轮程序中的循环体的过程中,确定所述循环体中的指令对逻辑寄存器的读写信息,其中,所述读写信息指示是否对所述逻辑寄存器进行读操作和写操作;以及调整单元,配置为根据所述读写信息,调整所述逻辑寄存器与物理寄存器之间的对应关系,使得所述循环体的下一轮执行按照所述对应关系进行数据读写。
本公开至少一个实施例还提供一种电子设备,包括:处理器,处理器用于实现本公开任一实施例提供的物理寄存器分配方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了本公开至少一个实施例提供的物理寄存器分配方法的流程图;
图2示出了本公开至少一个实施例提供的一种寄存器重命名表的示意图;
图3示出了本公开至少一个实施例提供的物理寄存器分配方法中将逻辑寄存器与第一物理寄存器相对应调整为逻辑寄存器不与任何物理寄存器对应的方法流程图;
图4示出了本公开至少一个实施例提供的另一物理寄存器分配方法的流程图;
图5示出了本公开至少一个实施例提供的一种物理寄存器分配装置500的示意框图;
图6为本公开一些实施例提供的一种电子设备的示意框图;以及
图7为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
处理器通常从内存中加载需要执行的程序,根据程序计数器指示的内存地址,从内存中获取该地址存储的程序的指令。然后,对该程序的指令进行译码,根据译码结果确定逻辑寄存器和对逻辑寄存器对应的操作数执行的读写操作,然后对操作数执行该操作,从而获得执行结果。
而在程序中往往会包含循环体,循环体的执行占据了整个程序执行的大部分时间和资源。本公开的发明人发现,循环体的每一轮循环对逻辑寄存器的读写模式是重复的,因此,可以利用这一循环体特性对循环体的执行进行优化,从而节约循环体执行过程中所需要的资源。
因此,本公开的实施例提供一种物理寄存器分配方法、物理寄存器分配装置和电子设备。该物理寄存器分配方法包括:在执行至少一轮程序中的循环体的过程中,确定循环体中的指令对逻辑寄存器的读写信息,读写信息指示是否对物理寄存器分配逻辑寄存器进行读操作和写操作;以及根据读写信息,调整逻辑寄存器与物理寄存器之间的对应关系,使得循环体的下一轮执行按照对应关系进行数据读写。
该方法可以根据循环体中的指令对逻辑寄存器的读写信息调整与逻辑寄存器相对应的物理寄存器,从而在执行循环体的过程中优化对物理寄存器的利用,节约循环体执行过程中消耗的资源。
图1示出了本公开至少一个实施例提供的物理寄存器分配方法的流程图。
如图1所示,该方法可以包括步骤S20~S30。
步骤S20:在执行至少一轮程序中的循环体的过程中,确定循环体中的指令对逻辑寄存器的读写信息。读写信息指示是否对逻辑寄存器进行读操作和写操作。
步骤S30:根据读写信息,调整逻辑寄存器与物理寄存器之间的对应关系,使得循环体的下一轮执行按照对应关系进行数据读写。
该方法可以根据循环体中的指令对逻辑寄存器的读写信息调整与逻辑寄存器相对应的物理寄存器,从而在执行循环体的过程中优化对物理寄存器的利用,节约在执行循环体的过程中消耗的资源。
对于步骤S20,程序,例如可以是本领域技术人员编写的代码,该代码可以实现某种功能。该程序中可以包括循环体,循环体中可以包括至少一个指令。在处理器执行该程序从而实现某种功能的过程中,该循环体中的至少一个指令往往被循环执行多次。
在本公开的一些实施例中,循环体例如可以是热点循环,热点循环可以是在程序执行过程中,执行时间较长或者占用整体执行时间比重较大的循环,整体执行时间是从开始执行程序到执行程序结束整体花费的时间。
例如,某个程序包括10条指令,其中第四条指令到第八条指令构成循环体,处理器按照该程序依次执行第一条指令、第二条指令和第三条指令,在第三条指令执行完成的情况下,开始执行循环体中的指令(即,第四条指令到第八条指令)。
需要说明的是,本公开的实施例中,程序的具体功能、程序的具体代码结构、循环体中的指令的具体执行方式等可以根据实际需求而定,本公开的实施例对此不作限制。
对于步骤S20,逻辑寄存器可以为指令集体系结构中定义的寄存器。逻辑寄存器,例如可以是在X86指令集体系结构中定义的RAX、RBX等。
在处理器对某个指令进行译码后,通常需要进行寄存器重命名操作。寄存器重命名操作,即,为指令中的逻辑寄存器分配物理寄存器,以从物理寄存器读取数据或者向物理寄存器写入数据。物理寄存器为处理器中实际存在的寄存器。例如,处理器每执行一条程序中的指令,便为该条指令中的逻辑寄存器分配了物理寄存器。
在步骤S20,例如经过循环体的第一轮循环,可以得到循环体中的全部指令或者部分指令对逻辑寄存器的读写信息,并且为多个逻辑寄存器分配了物理寄存器。读写信息例如可以指示该循环体中的指令是从逻辑寄存器中读取数据还是向逻辑寄存器中写入数据。
在本公开的一些实施例中,例如在执行至少一轮循环体的过程中,通过寄存器重命名操作确定循环体中的指令对逻辑寄存器的读写信息,以及在寄存器重命名表中标记逻辑寄存器的读写信息。
在寄存器重命名流水级可以识别出循环体中的指令对逻辑寄存器的读写信息,从而可以在寄存器重命名表中标记逻辑寄存器的读写信息。
在本公开的一些实施例中,寄存器重命名表包括标志位,在寄存器重命名表中标记逻辑寄存器的读写信息,包括:在标志位记录逻辑寄存器的读写信息。
在本公开的一些实施例中,标志位可以为1个二进制位(1bit),也可以为多个二进制位(多bit)。本领域技术人员可以根据需要设置寄存器重命名表中的标志位。例如只关心是否对逻辑寄存器进行只读操作,那么标志位可以设置为1bit,通过该1bit对是否对逻辑寄存器进行只读操作进行标记。例如,如果对逻辑寄存器进行只读操作,则该1bit的值为1,如果不是对逻辑寄存器进行只读操作,则该1bit设置为0或者该1bit为空。
在本公开的一些实施例中,标志位可以包括第一比特位和第二比特位,所述第一比特位用于记录是否对所述逻辑寄存器进行读操作,所述第二比特位用于记录是否对所述逻辑寄存器进行写操作。
图2示出了本公开至少一实施例提供的一种寄存器重命名表的示意图。
如图2所示,该寄存器重命名表可以包括四项信息,其中第一项可以表示逻辑寄存器,第二项可以表示为逻辑寄存器分配的物理寄存器。寄存器重命名表记录了逻辑寄存器和物理寄存器之间的映射关系(即对应关系)。寄存器重命名表中的第三项为R位,第四项为W位,其中R位用于标识逻辑寄存器是否被读,W位用于标识逻辑寄存器是否被写。如果逻辑寄存器只被进行了读操作,则R位被置为1,W位为0或者为空;如果逻辑寄存器只被进行了写操作,则W位被置为1,R位为0或者为空;如果逻辑寄存器既被进行了读操作又被进行了写操作,则R位和W位均被置为1。
例如,如图2所示,为逻辑寄存器RAX分配的物理寄存器为PR1,如果对逻辑寄存器RAX进行只读操作,则该逻辑寄存器RAX对应的R位的值为1,W位的值为空。
通过在寄存器重命名表中增加R位和W位可以便捷准确地记录循环体中的指令对逻辑寄存器执行的操作。
对于步骤S30,例如可以是根据R位和W位的值,调整逻辑寄存器与物理寄存器之间的对应关系。这里,前述的读写信息例如可以是寄存器重命名表中的R位和W位所记录的信息。
在本公开的一些实施例中,物理寄存器为处理器内部的寄存器。
例如,在循环体执行完第一轮循环体中的指令的过程中,为逻辑寄存器RAX分配的物理寄存器为PR1,即,逻辑寄存器RAX与物理寄存器PR1相对应,那么如果循环体中的指令是对逻辑寄存器RAX进行读取操作,则从与逻辑寄存器RAX相对应的物理寄存器PR1中获取数据,如果循环体中的指令是对逻辑寄存器RAX进行写入操作,则向与逻辑寄存器相对应的物理寄存器PR1中写入数据。
如果在执行第一轮循环的过程中,逻辑寄存器RAX的读写信息的R位的值为1,W位的值为空,那么可以调整与逻辑寄存器RAX相对应的物理寄存器。例如可以将与逻辑寄存器RAX相对应的物理寄存器由PR1调整为PR2。
在执行第二轮循环以及之后的循环的过程中,由于与逻辑寄存器RAX相对应的物理寄存器调整为了PR2,那么再次对逻辑寄存器RAX执行读操作时,则从与逻辑寄存器RAX相对应的物理寄存器PR2中获取数据或者向与逻辑寄存器RAX相对应的物理寄存器PR2中写入数据。
在本公开的一些实施例中,步骤S30,根据读写信息,调整逻辑寄存器与物理寄存器之间的对应关系,包括:响应于读写信息指示对逻辑寄存器只进行读操作(例如进行只读操作),将与逻辑寄存器对应的物理寄存器从第一物理寄存器调整为第二物理寄存器,以使逻辑寄存器中对应的数据信息保存到第二物理寄存器中。例如,第二物理寄存器的读写功耗小于第一物理寄存器的读写功耗。
只读操作可以是只对逻辑寄存器进行读操作而不对其进行写操作。例如,循环体中的循环体中的指令对逻辑寄存器RAX进行只读操作,则可以将与逻辑寄存器RAX对应的物理寄存器从PR1调整为PR2,其中,PR2的读写功耗小于PR1的读写功耗。
为循环体中涉及到的只进行读操作的逻辑寄存器重新分配读功耗更小的物理寄存器,从而可以降低整个循环体的功耗,进而降低运行程序所需要的功耗。
在本公开的一些实施例中,例如第二物理寄存器到处理器内的读写电路接口的距离小于第一物理寄存器到读写电路接口的距离。由于第二物理寄存器到处理器内的读写电路接口的距离小于第一物理寄存器到读写电路接口的距离,那么第二物理寄存器的读写功耗小于第一物理寄存器的读写功耗。也就是,从第二物理寄存器中读取数据所需要的功耗小于从第一物理寄存器读取数据所需要的功耗,以及向第二物理寄存器中写入数据所需要的功耗小于向第一物理寄存器写入数据所需要的功耗。例如在上述实施例中,PR2到处理器内的读写电路接口的距离小于PR1到读写电路接口的距离。
在本公开的一些实施例中,步骤S30,根据读写信息,调整逻辑寄存器与物理寄存器之间的对应关系,包括:响应于读写信息指示既不对逻辑寄存器进行写操作也不进行读操作,将逻辑寄存器对应的数据信息保存到处理器的内部存储区域;以及将逻辑寄存器与第一物理寄存器相对应调整为逻辑寄存器不与任何物理寄存器对应。
例如可以是在寄存器重命名表中的R位的值为空并且W位的值为空时,表明既不对逻辑寄存器进行写操作也不进行读操作。例如,循环体中的指令既不对逻辑寄存器RBX进行写操作也不进行读操作,则可以将逻辑寄存器RBX对应的数据信息保存到处理器的内部存储区域,并且将逻辑寄存器RBX与第一物理寄存器PR3相对应调整为逻辑寄存器RBX不与任何物理寄存器对应。处理器的内部存储区域,例如可以是处理器内除物理寄存器之外的其他存储区域。对在循环体中不读不写的逻辑寄存器,回收为其分配的物理寄存器,有利于降低物理寄存器短缺的概率。
图3示出了本公开至少一个实施例提供的物理寄存器分配方法中将逻辑寄存器与第一物理寄存器相对应调整为逻辑寄存器不与任何物理寄存器对应的方法流程图。
如图3所示,该方法可以包括步骤S31~S33。
步骤S31:修改寄存器重命名表,使得逻辑寄存器不与任何物理寄存器对应。
例如,可以将寄存器重命名表中与该逻辑寄存器相对应的物理寄存器删除,使得逻辑寄存器不与任何物理寄存器相对应。例如在上述示例中,循环体中的指令既不对逻辑寄存器RBX进行写操作也不进行读操作,则可以将逻辑寄存器RBX对应的物理寄存器从寄存器重命名表中删除,使得RBX不与任何物理寄存器相对应。
步骤S32:将第一物理寄存器释放。
例如可将第一物理寄存器释放意味着该第一物理寄存器在后续执行程序的过程中可以被重新利用。例如,在第一轮循环结束后,第一物理寄存器被释放,那么在第二轮循环过程中,该第一物理寄存器可以被重新利用。例如,第一轮循环后,物理寄存器PR3被释放,那么意味中在第二轮循环中,PR3可以被利用。例如循环体中的指令包括r3=r2+r1,并且物理寄存器PR3在第一轮循环结束后被释放,那么在第二轮循环中被释放的物理寄存器PR3可以被分配给逻辑寄存器r3,作为循环体中的指令r3=r2+r1的目的寄存器。
步骤S33:将寄存器重命名表中的逻辑寄存器的状态标记为释放状态,以指示逻辑寄存器对应的数据信息被保存到内部存储区域。
在本公开的一些实施例中,寄存器重命名表中还可以包括状态项,该状态项用于记录逻辑寄存器的状态。当逻辑寄存器对应的数据信息被保存到内存存储区域的情况下,寄存器重命名表中该逻辑寄存器的状态被标记为释放状态。
图4示出了本公开至少一个实施例提供的另一物理寄存器分配的方法的流程图。
如图4所示,该方法在前述实施例的基础上还可以包括步骤S40~S60。
步骤S40:响应于循环体执行结束,从寄存器重命名表中读取逻辑寄存器的状态。
例如可以是响应于循环体中的参数满足了循环体的结束条件,从寄存器重命名表中读取逻辑寄存器的状态。
步骤S50:为被标记为释放状态的逻辑寄存器重新分配物理寄存器。
例如,在上述逻辑寄存器RBX被标记为释放状态的示例中,步骤S50可以为逻辑寄存器RBX重新分配物理寄存器。例如可以将逻辑寄存器RBX分配为与物理寄存器P11相对应。并且,例如可以在寄存器重命名表中记录与该逻辑寄存器RBX相对应的物理寄存器为P11。
步骤S60:从内部存储区域中读取数据信息,并且将数据信息写入重新分配的物理寄存器。
由于逻辑寄存器RBX对应的数据信息被存储到内部存储区域,因此需要从该内部存储区域中获取该数据信息,并且将该数据信息写入重新分配的物理寄存器,例如P11中。
在本公开的一些实施例中,循环体可以包括多个条件分支,多个条件分支至少包括第一条件分支和第二条件分支。在执行至少一轮循环体的过程中,确定循环体中的指令对逻辑寄存器的读写信息,包括:在第k轮执行循环体的过程中,响应于执行第一条件分支,确定循环体中的指令对第二条件分支中涉及的逻辑寄存器的第一读写信息,其中,k为大于或等于1的整数;在第p轮执行循环体的过程中,响应于执行第二条件分支,根据循环体中的指令对第二条件分支中涉及的逻辑寄存器的读写操作更新第一读写信息而得到第二读写信息,其中,p为大于k的整数。
在本公开的一些实施例中,确定循环体中的指令对第二条件分支中涉及的逻辑寄存器的第一读写信息,包括:确定第二条件分支涉及的第二分支逻辑寄存器的第一读写信息为既不对第二分支逻辑寄存器进行写操作也不进行读操作,第二分支逻辑寄存器为第二条件分支涉及并且第一条件分支不涉及的逻辑寄存器。
例如,在程序中包括如下循环体:
Figure BDA0002815356230000111
在上述循环体中包括两个条件分支,其中一个条件分支可以是cond1成立时,执行循环体中的指令S1,另一个条件分支可以是条件cond1不成立时,执行循环体中的指令S2。在每轮循环中,循环体要么执行了循环体中的指令S1,要么执行了循环体中的指令S2。
在一些示例中,若循环体执行了指令S1,那么第一条件分支可以为cond1成立时,执行指令S1,第二条件分支可以为条件cond1不成立时,执行指令S2。第二分支逻辑寄存器D、E、F为第二条件分支涉及并且第一条件分支不涉及的逻辑寄存器。在循环体执行指令S1的过程中,可以确定第二条件分支中的指令S2涉及到的第二分支逻辑寄存器D、E、F的第一读写信息为既不对第二分支逻辑寄存器D、E、F进行写操作也不进行读操作。
在另一些示例中,类似地,若循环体执行了指令S2,那么第二条件分支可以为cond1成立时,执行指令S1,第一条件分支可以为条件cond1不成立时,执行指令S2。第二分支逻辑寄存器A、B、C为第二条件分支涉及并且第一条件分支不涉及的逻辑寄存器。在循环体执行指令S2的过程中,可以确定第二条件分支中的指令S1涉及到的第二分支逻辑寄存器A、B、C的第一读写信息为既不对第二分支逻辑寄存器A、B、C进行写操作也不进行读操作。
假设在第k轮循环中,程序运行了指令S1,则记录逻辑寄存器A、B、C为被读或者被写,逻辑寄存器D、E、F既不被读也不被写。也就是,响应于执行第一条件分支cond1中的指令S1,确定循环体中的指令对第二条件分支中涉及的逻辑寄存器D、E、F的第一读写信息为既不被读也不被写。例如,逻辑寄存器D、E、F的R位都为空或者都被记录为0,以及逻辑寄存器D、E、F的W位都为空或者都被记录为0。
例如在第p轮循环中,程序运行了循环体中的指令S2,逻辑寄存器D、E、F被读或者被写,则根据指令S2对逻辑寄存器D、E、F的读写操作更新第一读写信息而得到第二读写信息。例如,指令S2对逻辑寄存器E进行了只读操作,则将E的第一读写信息由R位和W位都为空,更新为R位为1,W位为空。
在本公开的一些实施例中,步骤S30,根据读写信息,调整所逻辑寄存器与物理寄存器之间的对应关系,包括:响应于第一读写信息指示既不对第二分支逻辑寄存器进行写操作也不进行读操作,将第二分支逻辑寄存器中对应的数据信息保存到处理器的内部存储区域,修改寄存器重命名表,使得第二分支逻辑寄存器不与任何物理寄存器对应,并且将第二分支逻辑寄存器对应的第一物理寄存器释放,以及将寄存器重命名表中第二分支逻辑寄存器的状态标记为释放状态,以指示第二分支逻辑寄存器中的数据信息被保存到内部存储区域。
例如,在上述实施例所描述的场景中,若循环体执行了循环体中的指令S1,那么第一条件分支可以为cond1成立时,执行指令S1,第二条件分支可以为条件cond1不成立时,执行循环体中的指令S2。第二分支逻辑寄存器D、E、F为第二条件分支涉及并且第一条件分支不涉及的逻辑寄存器。在循环体执行指令S1的过程中,可以确定第二条件分支中的指令S2涉及到的第二分支逻辑寄存器D、E、F的第一读写信息为既不对第二分支逻辑寄存器D、E、F进行写操作也不进行读操作。响应于第一读写信息指示既不对第二分支逻辑寄存器D、E、F进行写操作也不进行读操作,将第二分支逻辑寄存器D、E、F中对应的数据信息保存到处理器的内部存储区域,修改寄存器重命名表,使得第二分支逻辑寄存器D、E、F不与任何物理寄存器对应,并且将第二分支逻辑寄存器D、E、F对应的第一物理寄存器(这里为多个第一物理寄存器)释放,以及将寄存器重命名表中第二分支逻辑寄存器D、E、F的状态标记为释放状态,以指示第二分支逻辑寄存器D、E、F中的数据信息被保存到内部存储区域。例如可以按照上文参考图3描述的步骤S31~S33执行。
在本公开的一些实施例中,响应于执行第二条件分支,根据循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的读写操作更新所述第一读写信息而得到第二读写信息,包括:响应于在执行第二条件分支的过程中需要对被标记为释放状态的第二分支逻辑寄存器进行读写操作,从内部存储区域读取数据信息,并为第二分支逻辑寄存器重新分配物理寄存器,将数据信息写入重新分配的物理寄存器,根据读写操作更新第一读写信息而得到第二读写信息,以及将所述第二分支逻辑寄存器的状态信息清除。
例如在循环体的第p轮循环中,循环体执行第二条件分支,即,条件cond1不成立时,执行循环体中的指令S2。由于在循环体执行第二条件分支之前,第二条件分支涉及到的第二分支逻辑寄存器D、E、F被标记为释放状态,并且第二分支逻辑寄存器D、E、F对应的数据信息被存储到内部存储区域,因此,响应于在执行第二条件分支的过程中需要对被标记为释放状态的第二分支逻辑寄存器D、E、F进行读写操作,从内部存储区域读取数据信息,为第二分支逻辑寄存器D、E、F重新分配物理寄存器,将数据信息写入重新分配的物理寄存器,并且可以根据读写操作更新第一读写信息而得到第二读写信息,以及将第二分支逻辑寄存器D、E、F的状态信息清除。例如,可以在寄存器重命名表中第二分支逻辑寄存器D、E、F对应的物理寄存器项中填入新分配的物理寄存器,将数据信息写入新分配的物理寄存器,并且分别将第二分支逻辑寄存器D、E、F各自的R位和W位重新赋值,将第二分支逻辑寄存器D、E、F的释放状态信息清除。例如第二分支逻辑寄存器E的R位和W位分别赋值为1和空,第二分支逻辑寄存器F的R位和W位分别赋值为1和空,第二分支逻辑寄存器D的R位和W位分别赋值为空和1。
在本公开的另一实施例中,该物理寄存器的分配方法还包括,响应于循环体执行结束,清除寄存器重命名表中的读写信息。例如响应于循环体执行结束,可以将寄存器重命名表中的R位和W位清零或者置空,以便后续程序中重新利用R位和W位对逻辑寄存器的读写信息进行记录。
在本公开的一些实施例中,在上文描述的步骤S30可以通过调用函数的方式实现。例如,可以在处理器的ucode程序中加入函数hot_loop_enter(),在处理器执行微指令程序ucode的过程中,响应于微指令程序ucode调用函数hot_loop_enter(),执行movpwropt操作。movpwropt操作的微指令的指令格式例如可以为movpwropt Reg,其中,源操作数是Reg,表示逻辑寄存器。movpwropt操作例如可以包括:响应于读写信息指示对逻辑寄存器进行读操作,将与逻辑寄存器对应的物理寄存器从第一物理寄存器调整为第二物理寄存器,以使逻辑寄存器中对应的数据信息保存到第二物理寄存器中,第二物理寄存器的读写功耗小于第一物理寄存器的读写功耗,以及响应于读写信息指示既不对逻辑寄存器进行写操作也不进行读操作,将逻辑寄存器对应的数据信息保存到处理器的内部存储区域,将逻辑寄存器与第一物理寄存器相对应调整为逻辑寄存器不与任何物理寄存器对应。
需要说明的是,本公开的实施例中,物理寄存器分配方法的各个步骤的执行顺序不受限制,虽然上文以特定顺序描述了各个步骤的执行过程,但这并不构成对本公开实施例的限制。该物理寄存器分配方法中的各个步骤可以串行执行或并行执行,这可以根据实际需求而定。该物理寄存器分配方法还可以包括更多或更少的步骤,本公开的实施例对此不作限制。
图5示出了本公开至少一个实施例提供的一种物理寄存器分配装置500的示意框图。
例如,如图5所示,该物理寄存器分配装置500包括确定单元520和调整单元530。
确定单元520配置为执行至少一轮程序中的循环体的过程中,确定循环体中的指令对逻辑寄存器的读写信息,其中,读写信息指示是否对逻辑寄存器进行读操作和写操作。确定单元520例如可以执行图1描述的步骤S20,在此不再赘述。
调整单元530配置为根据读写信息,调整逻辑寄存器与物理寄存器之间的对应关系,使得循环体的下一轮执行按照对应关系进行数据读写,其中,物理寄存器为处理器内部的寄存器。调整单元530例如可以执行图1描述的步骤S30。
例如,确定单元520和调整单元530可以为硬件、软件、固件以及它们的任意可行的组合。例如,确定单元520和调整单元530可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,物理寄存器分配装置500的各个单元与前述的物理寄存器分配方法的各个步骤对应,关于物理寄存器分配装置500的具体功能可以参考关于物理寄存器分配方法的相关描述,此处不再赘述。图5所示的物理寄存器分配装置500的组件和结构只是示例性的,而非限制性的,根据需要,该物理寄存器分配装置500还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器,处理器用于实现上述的物理寄存器分配方法。该电子设备根据循环体中的指令对逻辑寄存器的读写信息调整与逻辑寄存器相对应的物理寄存器,从而在执行循环体的过程中优化对物理寄存器的利用,节约循环体执行过程中消耗的资源。
图6为本公开一些实施例提供的一种电子设备的示意框图。如图6所示,该电子设备600包括处理器610。处理器610在运行时可以执行上文所述的物理寄存器分配方法中的一个或多个步骤。
例如,处理器610可以是中央处理单元(CPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器610可以为通用处理器或专用处理器,可以控制电子设备600中的其它组件以执行期望的功能。
需要说明的是,本公开的实施例中,电子设备600的具体功能和技术效果可以参考上文中关于物理寄存器分配方法的描述,此处不再赘述。
图7为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备700例如适于用来实施本公开实施例提供的物理寄存器分配方法。电子设备700可以是终端设备等。需要注意的是,图7示出的电子设备700仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器)710,其可以根据存储在只读存储器(ROM)720中的程序或者从存储装置780加载到随机访问存储器(RAM)730中的程序而执行各种适当的动作和处理。在RAM 730中,还存储有电子设备700操作所需的各种程序和数据。处理装置710、ROM 720以及RAM 730通过总线740彼此相连。输入/输出(I/O)接口750也连接至总线740。
通常,以下装置可以连接至I/O接口750:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置760;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置770;包括例如磁带、硬盘等的存储装置780;以及通信装置790。通信装置790可以允许电子设备700与其他电子设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但应理解的是,并不要求实施或具备所有示出的装置,电子设备700可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,处理装置710在运行程序的循环体的过程中,可以执行上述物理寄存器分配方法,从而可以实现本公开实施例提供的物理寄存器分配方法中限定的功能。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种物理寄存器分配方法,包括:
在执行至少一轮程序中的循环体的过程中,确定所述循环体中的指令对逻辑寄存器的读写信息,其中,所述读写信息指示是否对所述逻辑寄存器进行读操作和写操作;以及
根据所述读写信息,调整所述逻辑寄存器与物理寄存器之间的对应关系,使得所述循环体的下一轮执行按照所述对应关系进行数据读写,
其中,根据所述读写信息,调整所述逻辑寄存器与物理寄存器之间的对应关系,包括:
响应于所述读写信息指示对所述逻辑寄存器只进行读操作,将与所述逻辑寄存器对应的物理寄存器从第一物理寄存器调整为第二物理寄存器,以使所述逻辑寄存器中对应的数据信息保存到所述第二物理寄存器中,其中,所述第二物理寄存器的读写功耗小于所述第一物理寄存器的读写功耗;或者
响应于所述读写信息指示既不对所述逻辑寄存器进行写操作也不进行读操作,将所述逻辑寄存器对应的数据信息保存到处理器的内部存储区域;以及将所述逻辑寄存器与第一物理寄存器相对应调整为所述逻辑寄存器不与任何物理寄存器对应。
2.根据权利要求1所述的方法,其中,在执行至少一轮所述循环体的过程中,确定所述循环体中的指令对所述逻辑寄存器的读写信息,包括:
在执行至少一轮所述循环体的过程中,通过寄存器重命名操作确定所述循环体中的指令对所述逻辑寄存器的读写信息;以及
在寄存器重命名表中标记所述逻辑寄存器的读写信息。
3.根据权利要求2所述的方法,其中,所述寄存器重命名表包括标志位,
在所述寄存器重命名表中标记所述逻辑寄存器的读写信息,包括:
在所述标志位记录所述逻辑寄存器的读写信息。
4.根据权利要求3所述的方法,其中,所述标志位包括第一比特位和第二比特位,所述第一比特位用于记录是否对所述逻辑寄存器进行读操作,所述第二比特位用于记录是否对所述逻辑寄存器进行写操作。
5.根据权利要求1所述的方法,其中,所述第二物理寄存器到所述处理器内的读写电路接口的距离小于所述第一物理寄存器到所述读写电路接口的距离。
6.根据权利要求2所述的方法,其中,将所述逻辑寄存器与所述第一物理寄存器相对应调整为所述逻辑寄存器不与任何物理寄存器对应,包括:
修改所述寄存器重命名表,使得所述逻辑寄存器不与任何物理寄存器对应;
将所述第一物理寄存器释放;以及
将所述寄存器重命名表对应的所述逻辑寄存器的状态标记为释放状态,以指示所述逻辑寄存器对应的数据信息被保存到所述内部存储区域。
7.根据权利要求6所述的方法,还包括:
响应于所述循环体执行结束,从所述寄存器重命名表中读取所述逻辑寄存器的状态;
为被标记为所述释放状态的逻辑寄存器重新分配物理寄存器;以及
从所述内部存储区域中读取所述数据信息,并且将所述数据信息写入重新分配的物理寄存器。
8.根据权利要求1所述的方法,其中,所述循环体包括多个条件分支,所述多个条件分支至少包括第一条件分支和第二条件分支;
在执行至少一轮所述循环体的过程中,确定所述循环体中的指令对所述逻辑寄存器的读写信息,包括:
在第k轮执行所述循环体的过程中,响应于执行所述第一条件分支,确定所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的第一读写信息,其中,k为大于或等于1的整数;
在第p轮执行所述循环体的过程中,响应于执行所述第二条件分支,根据所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的读写操作更新所述第一读写信息而得到第二读写信息,其中,p为大于k的整数。
9.根据权利要求8所述的方法,其中,确定所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的第一读写信息,包括:
确定所述第二条件分支涉及的第二分支逻辑寄存器的第一读写信息为既不对所述第二分支逻辑寄存器进行写操作也不进行读操作,其中,所述第二分支逻辑寄存器为所述第二条件分支涉及并且所述第一条件分支不涉及的逻辑寄存器;
根据所述读写信息,调整所述逻辑寄存器与所述物理寄存器之间的对应关系,包括:
响应于所述第一读写信息指示既不对所述第二分支逻辑寄存器进行写操作也不进行读操作,将所述第二分支逻辑寄存器中对应的数据信息保存到所述处理器的内部存储区域;
修改寄存器重命名表,使得所述第二分支逻辑寄存器不与任何物理寄存器对应,并且将所述第二分支逻辑寄存器对应的第一物理寄存器释放;以及
将所述寄存器重命名表对应的所述第二分支逻辑寄存器的状态标记为释放状态,以指示所述第二分支逻辑寄存器中的数据信息被保存到所述内部存储区域;
响应于执行所述第二条件分支,根据所述循环体中的指令对所述第二条件分支中涉及的逻辑寄存器的读写操作更新所述第一读写信息而得到所述第二读写信息,包括:
响应于在执行所述第二条件分支的过程中需要对被标记为所述释放状态的第二分支逻辑寄存器进行读写操作,从所述内部存储区域读取所述数据信息,并为所述第二分支逻辑寄存器重新分配物理寄存器,将所述数据信息写入重新分配的物理寄存器;
根据所述读写操作更新所述第一读写信息而得到所述第二读写信息;以及
将所述第二分支逻辑寄存器的状态信息清除。
10.根据权利要求2所述的方法,还包括:
响应于所述循环体执行结束,清除所述寄存器重命名表中的读写信息。
11.一种物理寄存器分配装置,包括:
确定单元,配置为执行至少一轮程序中的循环体的过程中,确定所述循环体中的指令对逻辑寄存器的读写信息,其中,所述读写信息指示是否对所述逻辑寄存器进行读操作和写操作;以及
调整单元,配置为根据所述读写信息,调整所述逻辑寄存器与物理寄存器之间的对应关系,使得所述循环体的下一轮执行按照所述对应关系进行数据读写,
其中,所述调整单元配置为:
响应于所述读写信息指示对所述逻辑寄存器只进行读操作,将与所述逻辑寄存器对应的物理寄存器从第一物理寄存器调整为第二物理寄存器,以使所述逻辑寄存器中对应的数据信息保存到所述第二物理寄存器中,其中,所述第二物理寄存器的读写功耗小于所述第一物理寄存器的读写功耗;或者
响应于所述读写信息指示既不对所述逻辑寄存器进行写操作也不进行读操作,将所述逻辑寄存器对应的数据信息保存到处理器的内部存储区域;以及将所述逻辑寄存器与第一物理寄存器相对应调整为所述逻辑寄存器不与任何物理寄存器对应。
12.一种电子设备,包括处理器,其中,所述处理器用于执行如权利要求1-10任一项所述的物理寄存器分配方法。
CN202011410413.9A 2020-12-03 2020-12-03 物理寄存器分配方法、物理寄存器分配装置和电子设备 Active CN112416434B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011410413.9A CN112416434B (zh) 2020-12-03 2020-12-03 物理寄存器分配方法、物理寄存器分配装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011410413.9A CN112416434B (zh) 2020-12-03 2020-12-03 物理寄存器分配方法、物理寄存器分配装置和电子设备

Publications (2)

Publication Number Publication Date
CN112416434A CN112416434A (zh) 2021-02-26
CN112416434B true CN112416434B (zh) 2023-02-17

Family

ID=74829194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011410413.9A Active CN112416434B (zh) 2020-12-03 2020-12-03 物理寄存器分配方法、物理寄存器分配装置和电子设备

Country Status (1)

Country Link
CN (1) CN112416434B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043626B1 (en) * 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
CN101601008A (zh) * 2007-01-24 2009-12-09 高通股份有限公司 用于在扩展指令的组成指令之间转发中间结果的寄存器重命名系统的使用
CN103988174A (zh) * 2011-12-02 2014-08-13 Arm有限公司 无需额外寄存器执行寄存器重命名的数据处理设备和方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430243B2 (en) * 2012-04-30 2016-08-30 Apple Inc. Optimizing register initialization operations
US11042381B2 (en) * 2018-12-08 2021-06-22 Microsoft Technology Licensing, Llc Register renaming-based techniques for block-based processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043626B1 (en) * 2003-10-01 2006-05-09 Advanced Micro Devices, Inc. Retaining flag value associated with dead result data in freed rename physical register with an indicator to select set-aside register instead for renaming
CN101601008A (zh) * 2007-01-24 2009-12-09 高通股份有限公司 用于在扩展指令的组成指令之间转发中间结果的寄存器重命名系统的使用
CN103988174A (zh) * 2011-12-02 2014-08-13 Arm有限公司 无需额外寄存器执行寄存器重命名的数据处理设备和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
通过寄存器队列模型实现寄存器分配和指令调度;沈立等;《小型微型计算机系统》;20040421(第04期);全文 *

Also Published As

Publication number Publication date
CN112416434A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
EP3832499B1 (en) Matrix computing device
US4493020A (en) Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
CN109154886B (zh) 用于处理数据的方法和设备
US9891949B2 (en) System and method for runtime scheduling of GPU tasks
KR20180039645A (ko) 메모리와 복수의 벡터 레지스터와의 사이에서 복수의 데이터 구조체를 전송하는 장치 및 방법
US20150149744A1 (en) Data processing apparatus and method for performing vector processing
US20140013333A1 (en) Context-state management
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
US10268519B2 (en) Scheduling method and processing device for thread groups execution in a computing system
US20230084523A1 (en) Data Processing Method and Device, and Storage Medium
EP4318211A1 (en) Method for inspecting code under weak memory order architecture, and corresponding device
CN105550029A (zh) 一种进程调度方法及装置
JP3773470B2 (ja) データ処理装置内でのコプロセッサ命令の取り扱い
CN114610394B (zh) 指令调度的方法、处理电路和电子设备
US11481250B2 (en) Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values
US20190220257A1 (en) Method and apparatus for detecting inter-instruction data dependency
JP2017228267A (ja) リタイアフェーズ中に部分書込み結果をマージするシステムおよび方法
CN112416434B (zh) 物理寄存器分配方法、物理寄存器分配装置和电子设备
CN110609705B (zh) 一种提高mcu总线效率的方法、智能终端、存储介质及芯片
US20140244977A1 (en) Deferred Saving of Registers in a Shared Register Pool for a Multithreaded Microprocessor
US11593113B2 (en) Widening memory access to an aligned address for unaligned memory operations
US20130166887A1 (en) Data processing apparatus and data processing method
CN117010465A (zh) 神经网络加速器的调度方法、装置、电子设备及存储介质
US20160196140A1 (en) Data processing device, method of reporting predicate values, and data carrier
JP3481479B2 (ja) 命令制御装置

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