[go: up one dir, main page]

CN111857823B - 用于写回指令执行结果的装置和方法、处理装置 - Google Patents

用于写回指令执行结果的装置和方法、处理装置 Download PDF

Info

Publication number
CN111857823B
CN111857823B CN202010681665.9A CN202010681665A CN111857823B CN 111857823 B CN111857823 B CN 111857823B CN 202010681665 A CN202010681665 A CN 202010681665A CN 111857823 B CN111857823 B CN 111857823B
Authority
CN
China
Prior art keywords
execution
unit
write
delay
write port
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
CN202010681665.9A
Other languages
English (en)
Other versions
CN111857823A (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.)
Kunlun Xing (Beijing) Science and Technology Co., Ltd.
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Kunlun Core Beijing Technology Co ltd
Beijing Baidu Netcom Science and 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 Kunlun Core Beijing Technology Co ltd, Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Kunlun Core Beijing Technology Co ltd
Priority to CN202010681665.9A priority Critical patent/CN111857823B/zh
Publication of CN111857823A publication Critical patent/CN111857823A/zh
Priority to EP21178573.8A priority patent/EP3940531A1/en
Priority to US17/343,139 priority patent/US20210318883A1/en
Priority to KR1020210091693A priority patent/KR102579097B1/ko
Priority to JP2021116396A priority patent/JP7229305B2/ja
Application granted granted Critical
Publication of CN111857823B publication Critical patent/CN111857823B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本公开描述了用于写回指令执行结果的装置和方法,涉及处理器技术领域。具体实现方案为:一种用于写回指令执行结果的装置,包括:第一写端口,被耦合在具有第一执行延迟的第一执行单元与寄存器堆之间,并且被配置为从第一执行单元接收第一执行结果,并且基于第一写地址将第一执行结果写回到寄存器堆中的第一寄存器单元;以及第二写端口,被耦合在具有与第一执行延迟不同的第二执行延迟的第二执行单元与寄存器堆之间,并且被配置为从第二执行单元接收第二执行结果,并且基于第二写地址将第二执行结果写回到寄存器堆中的第二寄存器单元,其中第一写端口未被耦合到第二执行单元,并且第二写端口未被耦合到第一执行单元。

Description

用于写回指令执行结果的装置和方法、处理装置
技术领域
本公开涉及计算机技术,更具体地涉及处理器技术。
背景技术
在处理器中,通常采用指令流水线以便提高由处理器执行指令的效率。指令流水线是指将一条指令的操作分成多个的步骤,每个步骤由专门的电路单元完成。指令流水线通常被划分为取指(IF)、译码(ID)、执行(EXE)、写回(WB)等阶段。在指令被顺序发射、部分乱序执行、乱序写回的处理器核中,在取指阶段中每个周期取指一条指令,在执行阶段中指令根据不同功能而进入对应执行延迟的执行单元,执行单元在每个周期执行一条指令,并且最终计算或执行的结果乱序写回到寄存器堆中。在指令流水线中提高写回效率对提升处理器整体性能非常关键。
发明内容
本公开提供了用于写回指令执行结果的装置和方法、处理装置、电子设备以及存储介质。
根据本公开的一方面,提供了一种用于写回指令执行结果的装置。该装置包括:第一写端口,被耦合在具有第一执行延迟的第一执行单元与寄存器堆之间,并且被配置为从所述第一执行单元接收第一执行结果,并且基于第一写地址将所述第一执行结果写回到所述寄存器堆中的第一寄存器单元;以及第二写端口,被耦合在具有与所述第一执行延迟不同的第二执行延迟的第二执行单元与所述寄存器堆之间,并且被配置为从所述第二执行单元接收第二执行结果,并且基于第二写地址将所述第二执行结果写回到所述寄存器堆中的第二寄存器单元,其中所述第一写端口未被耦合到所述第二执行单元,并且所述第二写端口未被耦合到所述第一执行单元。
根据本公开的另一方面,提供了一种处理装置。该装置包括:寄存器堆,包括多个寄存器单元;多个执行单元,被配置为分别执行指令并且以执行延迟来输出执行结果;以及多个写端口,每个写端口被配置为根据所述多个执行单元的执行延迟,被耦合在具有对应执行延迟的执行单元与所述多个寄存器单元之间,从具有所述对应执行延迟的执行单元接收执行结果,并且将所述执行结果写回到所述多个寄存器单元中与写地址相对应的任一个寄存器单元。
根据本公开的另一方面,提供了一种用于写回指令执行结果的方法,包括:通过第一写端口,从具有第一执行延迟的第一执行单元接收第一执行结果,并且基于第一写地址将所述第一执行结果写回到寄存器堆中的第一寄存器单元;以及通过第二写端口,从具有与所述第一执行延迟不同的第二执行延迟的第二执行单元接收第二执行结果,并且基于第二写地址将所述第二执行结果写回到所述寄存器堆中的第二寄存器单元,其中所述第一写端口未被耦合到所述第二执行单元,并且所述第二写端口未被耦合到所述第一执行单元。
根据本公开的另一方面,提供了一种电子设备。该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信耦合的存储器,其中所述存储器存储有由所述至少一个处理器可执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质。该计算机指令用于使计算机执行上述方法。
根据本公开的另一方面,提供了一种计算机程序产品。该计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现上述方法。
根据本公开的实施例的技术方案解决了由于在指令流水线中针对写端口设置缓存单元以及增加反馈通路引起的问题,能够减少流水线阻塞,显著提升流水线效率,减少资源开销,减轻时序压力,并且提升处理器频率,从而提高整个处理器的性能。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。在附图中:
图1A和图1B是根据传统方案的用于写回指令执行结果的装置的框图;
图2是根据本公开的实施例的用于写回指令执行结果的装置的框图;
图3是根据本公开的实施例的用于写回指令执行结果的装置的框图;
图4是根据本公开的实施例的用于写回指令执行结果的装置的框图;
图5是根据本公开的实施例的用于写回指令执行结果的装置的框图;
图6是根据本公开的实施例的用于写回指令执行结果的方法的流程图;以及
图7是用于实现本公开的实施例的用于写回指令执行结果的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开的实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1A和图1B是根据传统方案的用于写回指令执行结果的装置的框图。
参照图1A,处理器包括取指单元102、译码单元104、执行单元106、108、写端口114和寄存器堆116。取指单元102对指令进行取指,译码单元104对取指的指令进行译码,执行单元106、108执行译码的指令以输出执行结果,并且执行结果经由写端口114写回到寄存器堆116。写端口114基于写地址能够访问寄存器堆116中的寄存器单元118。
在如图1A所示的方案中,一个寄存器堆116采用一个写端口114。对于单发射的处理器,平均每个周期在写回阶段写回一个执行结果,并且对应的寄存器堆116采用一个写端口116。在不同的执行单元106、108的执行结果写回寄存器堆116时,由于不同的执行单元106、108的执行延迟不同,可能发生执行结果同时写回寄存器堆116的冲突。为了处理这种冲突,在写回阶段,设置一个N-1仲裁逻辑或多路选择器(MUX)110,其中N为执行单元的数目。针对不同的执行单元106、108赋予不同的优先级,并且针对执行单元108设置缓存队列112,以将当前不写回的执行结果压入缓存队列112中,在等待写端口114空闲之后将执行结果出队以完成写回操作。缓存队列112的空间是有限的,为了避免缓存溢出,需要时刻监测缓存队列112的空间余量,并且反馈到流水线前序阶段中的取指单元102。在缓存队列112的空间已满时,取指单元102暂停取指,直到缓存队列112中的执行结果完成写回并且释放空间。
参照图1B,处理器包括取指单元102、译码单元104、执行单元106、108、写端口128、130和寄存器堆132。取指单元102对指令进行取指,译码单元104对取指的指令进行译码,执行单元106、108执行译码的指令以输出执行结果,并且执行结果经由写端口128、130写回到寄存器堆132。写端口128基于写地址能够访问寄存器堆132的第一区域的寄存器单元134,并且写端口130基于写地址能够访问寄存器堆132的第二区域的寄存器单元136。
在如图1B所示的方案中,一个寄存器堆132采用多个写端口128、130。写端口128、130中的每个写端口由多个执行单元106、108共享。用于寄存器堆132的写端口的数目增加以后,与上面的传统方案相比,仲裁逻辑或多路选择器(MUX)120、122变为N-M的交叉结构,其中M表示写端口的数目。针对不同的执行单元106、108赋予不同的优先级,并且针对执行单元108设置缓存队列124、126,以将当前不写回的执行结果压入缓存队列124、126中,在等待写端口128、130空闲之后将执行结果出队以完成写回操作。缓存队列124、126的空间是有限的,为了避免缓存溢出,需要时刻监测缓存队列124、126的空间余量,并且反馈到流水线前序阶段中的取指单元102。用于寄存器堆132的写端口128、130各自能够访问的寄存器空间不同。该传统方案对于不同功能单元106、108的写回地址分散在不同写端口128、130的场景下具有性能优化效果,但是如果写回地址相同则性能无提升,并且缓存队列和反馈逻辑的使用也不可避免。
在如图1A所示的方案中,流水线效率依赖对不同执行单元的优先级的设置。优先级的选择策略没有最优解,只能对部分应用可达到预期效果。然而,对其他应用可能触发缓存队列频繁的满状态从而反压流水线的取指阶段,因此对流水线整体效率难以保证。在资源上为了保证正确性,设置的缓存队列是一个主要的资源开销,并且反压流水线反馈通路的布线也对处理器的时序和频率带来负面的影响。
相对于如图1A所示的方案,如图1B所示的方案针对不同执行单元的写回地址不同的场景具有性能优化。然而,在其他情况下如图1B所示的方案也需要设置缓存队列和反馈通路。缓存队列的深度可能相对较小,但不能完全消除,因此从资源和效率上来看优化空间有限。
对于特定的处理器,流水线中不同功能的执行单元的延迟特征是比较明显的。针对这些执行延迟特征,合理分配资源,提高不同功能流水线的写回效率对提升处理器的整体性能非常关键。
至少为了解决上述问题,本公开的实施例提供了一种方案,以便在指令流水线中提高写回效率。根据本公开的实施例,针对一个寄存器堆设置多个写端口,多个写端口分别对应于具有各个执行延迟的执行单元。多个写端口分别被划分和分配到具有对应执行延迟的各个执行单元,并且每个写端口基于写地址能够访问寄存器堆中的任何寄存器单元。通过这样的写端口和通路配置,将会获得性能改进和提升。
根据本公开的实施例,能够减少由于写回导致的流水线阻塞,显著提升流水线效率,从而提高整个处理器的性能。而且,本公开的实施例避免使用传统方案中为了保证正确性需要的缓存队列,减少资源开销,尤其在寄存器位宽大的场景下,能够更大幅地减少了硬件资源使用。由此,本公开的实施例有利于处理器面积的缩小,以及功耗的降低。此外,本公开的实施例消除了与缓存队列相关的反馈通路,由此能够减轻时序处理压力,提升处理器频率。
下文中将结合附图参考各种实施例来详细描述本公开的各种示例实施例。
图2是根据本公开的实施例的用于写回指令执行结果的装置的框图。图2示出了用于指令流水线的处理装置200,其包括用于写回指令执行结果的装置230。在一些实施例中,处理装置200还可以包括第一执行单元206、第二执行单元208和寄存器堆214。在一些实施例中,处理装置200还可以包括取指单元202和译码单元204。
取指单元202被配置为对指令进行取指。译码单元204被配置为对经取指的指令进行译码。经译码后的不同类型的指令分别被输入到对应的不同功能的执行单元。
第一执行单元206被配置为接收经译码后的第一类型的指令并且执行该指令。第一执行单元206被配置为以第一执行延迟来输出第一执行结果。第二执行单元208被配置为接收经译码后的第二类型的指令并且执行该指令。第二执行单元208被配置为以第二执行延迟来输出第二执行结果。第一执行延迟不同于第二执行延迟。本领域技术人员可以理解,本公开中所述的“第一执行延迟不同于第二执行延迟”是指,第一执行延迟和第二执行延迟之间具有显著差异,以使得第一执行结果的写回和第二执行结果的写回可能发生在同一周期。
应当理解的是,取指单元202、译码单元204、第一执行单元206和第二执行单元208是与指令流水线中取指、译码、执行阶段分别相对应的电路单元。这些电路单元是本领域中已知的,在此省略其详细描述。
参照图2,用于写回指令执行结果的装置230包括第一写端口210和第二写端口212。第一写端口210和第二写端口212分别对应于具有第一执行延迟的第一执行单元206和具有第二执行延迟的第二执行单元208。第一写端口210未耦合到第二执行单元208,并且第二写端口212未耦合到第一执行单元206。在一些实施例中,第一写端口210被分配到第一执行单元206。在一些实施例中,第二写端口212被分配到第二执行单元208。在一些实施例中,第一写端口210由第一执行单元206独享,并且第二写端口212由第二执行单元208独享。
第一写端口210被耦合在具有第一执行延迟的第一执行单元206与寄存器堆214之间。第一写端口210被配置为从第一执行单元206接收第一执行结果,并且基于第一写地址将第一执行结果写回到寄存器堆214中的第一寄存器单元。第一写端口210经由第一路径218耦合到寄存器堆214中的所有寄存器单元216。第一路径218包括第一布线集,第一布线集的各个布线分别耦合在第一写端口210与寄存器堆214中的所有寄存器单元216之间。因此,可以经由第一写端口210直接访问寄存器堆214中的任意寄存器单元216。以此方式,可以经由第一写端口210将以第一执行延迟输出的指令执行结果直接写回到寄存器堆214中的任意寄存器单元216,从而提高写回效率。
第二写端口212被耦合在具有第二执行延迟的第二执行单元208与寄存器堆214之间。第二写端口212被配置为从第二执行单元208接收第二执行结果,并且基于第二写地址将第二执行结果写回到寄存器堆214中的第二寄存器单元。第二写端口212经由第二路径220耦合到寄存器堆214中的所有寄存器单元216。第二路径220包括第二布线集,第二布线集的各个布线分别耦合在第二写端口212与寄存器堆214中的所有寄存器单元216之间。因此,可以经由第二写端口212直接访问寄存器堆214中的任意寄存器单元216。以此方式,可以经由第二写端口212将以第二执行延迟输出的指令执行结果直接写回到寄存器堆214中的任意寄存器单元216,从而提高写回效率。
在一些实施例中,处理装置200可以包括多个执行单元,并且装置230可以包括多个写端口。多个执行单元被配置为分别执行指令,并且以执行延迟来分别输出执行结果。多个写端口被配置为分别与多个执行单元的执行延迟相对应。多个写端口分别被分配给具有对应的执行延迟的执行单元。每个写端口根据执行单元的执行延迟被耦合在具有对应执行延迟的执行单元与多个寄存器单元之间。每个写端口被配置为从具有对应执行延迟的执行单元接收执行结果,并且将该执行结果写回到多个寄存器单元中与写地址相对应的任一个寄存器单元。
根据本公开的实施例,在指令被顺序发射、部分乱序执行、乱序写回的处理器核中,在取指阶段中每个周期取指一条指令,在执行阶段中该指令由具有一定执行延迟的执行单元执行,并且指令执行结果经由与该执行延迟相对应的写端口写回到寄存器堆中。由于每个周期执行一条指令,并且每个写端口被分配到具有对应执行延迟的执行单元,对于每个写端口来说不存在多个指令执行结果同时输入的冲突问题。这样,可以避免使用传统方案中必要的仲裁逻辑或多路选择器、缓存队列以及反馈通路。以此方式,减少流水线阻塞,显著提升流水线效率,从而提高整个处理器的性能;避免使用缓存空间,减少资源开销,尤其在寄存器位宽大的场景下,减少的硬件资源更大,对处理器面积功耗都有正向的影响;以及消除缓存空间相关的反馈通路,减轻时序压力,提升处理器频率。
此外,对于同时写一个寄存器单元的冲突问题,对于顺序发射、部分乱序执行、乱序返回的本领域已知处理器结构都具有检测冲突问题并且避免冲突问题的硬件处理结构。该冲突问题可以在译码阶段的处理来被避免。在本公开的实施例中,可以直接应用本领域已知方案中的处理逻辑来避免多个写端口同时写回同一个地址的寄存器单元的正确性问题,无需额外的处理结构。
图3是根据本公开的实施例的用于写回指令执行结果的装置的框图。图3示出了用于指令流水线的处理装置300,其包括用于写回指令执行结果的装置310。在一些实施例中,与处理装置200相比,处理装置300还可以包括第三执行单元302。在一些实施例中,与装置230相比,装置310还可以包括第三写端口304。在一些实施例中,第三写端口304未被耦合到第一执行单元206和第二执行单元208。在一些实施例中,第三写端口304被分配到第三执行单元302。在一些实施例中,第三写端口304由第三执行单元302独享。
第三执行单元302被配置为接收经译码后的第三类型的指令并且执行该指令。第三执行单元302被配置为以第三执行延迟来输出第三执行结果。第三执行延迟不同于第一执行单元206的第一执行延迟和第二执行单元208的第二执行延迟。类似地,上述“第三执行延迟不同于第一执行延迟和第二执行延迟”是指,第三执行延迟与第一执行延迟、第二执行延迟之间具有显著差异,以使得第三执行结果的写回与第一执行结果或第二执行结果的写回可能发生在同一周期。在一些实施例中,第三执行单元302是使用频繁或从其反馈到取指单元202的路径对时序影响严重的执行单元。
第三写端口304被耦合在第三执行单元302与寄存器堆214之间。第三写端口304被配置为从第三执行单元302接收第三执行结果,并且基于第三写地址将第三执行结果写回到寄存器堆214中的第三寄存器单元。第三写端口304经由第三路径306耦合到寄存器堆214中的所有寄存器单元216。第三路径306包括第三布线集,第三布线集的各个布线分别耦合在第三写端口304与寄存器堆214中的所有寄存器单元216之间。这样,可以经由第三写端口304直接访问寄存器堆214中的任意寄存器单元216。
根据本公开的实施例,针对使用频繁或从其反馈到取指单元的路径对时序影响严重的执行单元,附加地分配对应的写端口。以此方式,可以经由第三写端口304将第三执行单元302输出的指令执行结果直接写回到寄存器堆214中的任意寄存器单元216,从而提高写回效率,不影响处理器的时序,并且提高处理器性能。
在一些实施例中,处理装置300包括多个执行单元,多个执行单元的各个执行延迟彼此不同。在此情况下,可以设置多个写端口,每个写端口耦合到多个执行单元中的对应一个执行单元。此外,每个写端口能够访问寄存器堆中的任一个寄存器单元。
图4是根据本公开的实施例的用于写回指令执行结果的装置的框图。图4示出了用于指令流水线的处理装置400,其包括用于写回指令执行结果的装置410。在一些实施例中,与处理装置400相比,处理装置400还可以包括第四执行单元402。
第四执行单元402被配置为接收经译码后的第四类型的指令并且执行该指令。第四执行单元402被配置为以第四执行延迟来输出第四执行结果。在一些实施例中,第四执行延迟和第一执行单元206的第一执行延迟基本上等于特定延迟值。在一些实施例中,第四执行延迟基本上等于第一执行延迟,第四执行延迟与第一执行延迟之间的差在预定范围内,该预定范围的大小可以等于一个周期的预定分数值,以使得第四执行结果的写回和第一执行结果的写回不会发生在同一周期。在一些实施例中,第一执行单元206是用于整数运算的执行单元,并且第四执行单元402是用于浮点运算的执行单元。
在一些实施例中,第一写端口210由第一执行单元206和第四执行单元402共享。第一写端口210进一步被耦合在具有第四执行延迟的第四执行单元402与寄存器堆214之间。第一写端口210进一步被配置为从第四执行单元402接收第四执行结果,并且基于第四写地址将第四执行结果写回到寄存器堆214中的第四寄存器单元。
根据本公开的实施例,针对执行延迟基本上相同的多个执行单元,共用一个写端口。由于共享同一个写端口的多个执行单元以流水线执行指令,不会发生在同一周期写入该写端口的情况,并且不会导致写回正确性问题。以此方式,可以经由第一写端口210将第四执行单元402输出的指令执行结果直接写回到寄存器堆214中的任意寄存器单元216,从而提高写回效率,同时这种配置所需要的资源的消耗和效率影响很小,从而提高指令处理性能。
在一些实施例中,处理装置400包括多个执行单元,多个执行单元的各个执行延迟中的至少两个执行延迟基本上等于特定延迟值。在此情况下,多个写端口中的一个写端口被分配到多个执行单元中的具有该至少两个执行延迟的至少两个执行单元。
图5是根据本公开的实施例的用于写回指令执行结果的装置的框图。图5示出了用于指令流水线的处理装置500,其包括用于写回指令执行结果的装置510。在一些实施例中,与处理装置200相比,处理装置500还可以包括第五执行单元502。在一些实施例中,与装置230相比,装置510还可以包括缓存单元504和多路选择器(MUX)506。
第五执行单元502被配置为接收经译码后的第五类型的指令并且执行该指令。第五执行单元502被配置为以第五执行延迟来输出第五执行结果。第五执行延迟不同于第一执行单元206的第一执行延迟和第二执行单元208的第二执行延迟。在一些实施例中,第五执行单元502是使用频率较低的执行单元。
缓存单元504耦合到第五执行单元504。缓存单元504被配置为从第五执行单元504接收第五执行结果。在一些实施例中,缓存单元504是缓存队列。缓存单元504被配置为暂时存储第五执行结果。在一些实施例中,缓存单元504的深度较小。在一些实施例中,不需要设置从缓存单元504反馈到取指单元202的反馈路径。
多路选择器506耦合在缓存单元504与第二写端口212之间。多路选择器506被配置为从缓存单元504接收第五执行结果,并且基于选择信号将第五执行结果传输到第二写端口212,使得第二写端口212基于第五写地址将第五执行结果写回到寄存器堆214中的第五寄存器单元。在一些实施例中,多路选择器506被配置为在第二写端口212处于空闲状态时,将暂时存储在缓存单元504中的第五执行结果传输到第二写端口212,以用于写回第五执行结果。在一些实施例中,多路选择器506可以包括仲裁逻辑。
根据本公开的实施例,对于使用频率较低并且反馈路径无需向前序流水线传递的执行单元,设置深度较小的缓存单元,并且复用其他写端口。以此方式,可以经由第二写端口212将第五执行单元504输出的指令执行结果写回到寄存器堆214中的任意寄存器单元216,在不增加写端口和对应的与寄存器单元之间的布线的情况下,确保写回效率,并且减小处理器资源的消耗,从而提高处理器性能。
根据本公开的实施例,可以将上面参考图2至图5描述的实施例中的任何配置彼此结合,以便根据执行单元的使用频率、消耗的硬件资源和对时序的影响的考虑,将增加写端口或者添加缓存单元和多路选择器进行平衡,并且根据执行延迟特征来共用写端口。
图6是根据本公开的实施例的用于写回指令执行结果的方法600的流程图。
在框602,通过第一写端口,从具有第一执行延迟的第一执行单元接收第一执行结果,并且基于第一写地址将第一执行结果写回到寄存器堆中的第一寄存器单元。
在框604,通过第二写端口,从具有与第一执行延迟不同的第二执行延迟的第二执行单元接收第二执行结果,并且基于第二写地址将第二执行结果写回到寄存器堆中的第二寄存器单元。第一写端口未耦合到第二执行单元,并且第二写端口未耦合到第一执行单元。
在一些实施例中,方法600可以进一步包括通过第三写端口,从具有与第一执行延迟和第二执行延迟不同的第三执行延迟的第三执行单元接收第三执行结果,并且基于第三写地址将第三执行结果写回到寄存器堆中的第三寄存器单元。第三写端口未耦合到第一执行单元和第二执行单元。
在一些实施例中,方法600可以进一步包括通过第一写端口,从具有第四执行延迟的第四执行单元接收第四执行结果,并且基于第四写地址将第四执行结果写回到寄存器堆中的第四寄存器单元。第四执行延迟与第一执行延迟之间的差在预定范围内。
在一些实施例中,方法600可以进一步包括通过缓存单元,从具有与第一执行延迟和第二执行延迟不同的第五执行延迟的第五执行单元接收第五执行结果,以及通过多路选择器,从缓存单元接收第五执行结果,并且基于选择信号将第五执行结果传输到第二写端口,以通过第二写端口基于第五写地址将第五执行结果写回到寄存器堆中的第五寄存器单元。通过第二写端口经由多路选择器从第二执行单元接收第二执行结果。
根据本公开的实施例,还提供了电子设备和计算机可读存储介质。图7是用于实现本公开的实施例的用于写回指令执行结果的电子设备700的框图。
电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。此外,电子设备还可以表示可编程装置,诸如,现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)等。
如图7所示,电子设备700包括一个或多个处理器701、存储器702、以及用于连接各部件的接口,该接口包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器701可以对在电子设备700内执行的指令进行处理。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本公开所提供的非瞬时计算机可读存储介质。其中,存储器702存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的用于写回指令执行结果的方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的用于写回指令执行结果的方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于写回指令执行结果的方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于写回指令执行结果的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至用于写回指令执行结果的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
电子设备700还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线705或者其他方式连接,图7中以通过总线705连接为例。输入装置703可以接收待处理的输入信息。输出装置704可以输出经处理的信息。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用集成电路、可编程装置、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本公开实施例的技术方案,针对寄存器堆设置多个写端口,多个写端口分别对应于多个执行单元的执行延迟,并且分别被分配给具有对应的执行延迟的执行单元。以此方式,在确保不发生由于执行延迟引起的写冲突的情况下,提高写回指令执行结果的效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (9)

1.一种用于写回指令执行结果的装置,包括:
第一写端口,被耦合在具有第一执行延迟的第一执行单元与寄存器堆之间,并且被配置为从所述第一执行单元接收第一执行结果,并且基于第一写地址将所述第一执行结果写回到所述寄存器堆中的第一寄存器单元;
第二写端口,被耦合在具有与所述第一执行延迟不同的第二执行延迟的第二执行单元与所述寄存器堆之间,并且被配置为从所述第二执行单元接收第二执行结果,并且基于第二写地址将所述第二执行结果写回到所述寄存器堆中的第二寄存器单元,其中所述第一写端口未被耦合到所述第二执行单元,并且所述第二写端口未被耦合到所述第一执行单元;
缓存单元,被耦合到具有与所述第一执行延迟和所述第二执行延迟不同的第五执行延迟的第五执行单元,并且被配置为从所述第五执行单元接收第五执行结果;以及
多路选择器,被耦合在所述缓存单元与所述第二写端口之间,并且被配置为从所述缓存单元接收所述第五执行结果,并且基于选择信号将所述第五执行结果传输到所述第二写端口,使得所述第二写端口基于第五写地址将所述第五执行结果写回到所述寄存器堆中的第五寄存器单元,其中所述第二写端口经由所述多路选择器被耦合到所述第二执行单元,
其中所述第一写端口进一步被耦合在具有第四执行延迟的第四执行单元与所述寄存器堆之间,并且进一步被配置为从所述第四执行单元接收第四执行结果,并且基于第四写地址将所述第四执行结果写回到所述寄存器堆中的第四寄存器单元,其中所述第四执行延迟与所述第一执行延迟基本相同。
2.根据权利要求1所述的装置,其中所述第一写端口被耦合到所述寄存器堆中的所有寄存器单元,并且所述第二写端口被耦合到所述寄存器堆中的所有寄存器单元。
3.根据权利要求1所述的装置,进一步包括:
第三写端口,被耦合在具有与所述第一执行延迟和所述第二执行延迟不同的第三执行延迟的第三执行单元与所述寄存器堆之间,并且被配置为从所述第三执行单元接收第三执行结果,并且基于第三写地址将所述第三执行结果写回到所述寄存器堆中的第三寄存器单元,
其中所述第三写端口未被耦合到所述第一执行单元和所述第二执行单元,并且所述第三写端口被耦合到所述寄存器堆中的所有寄存器单元。
4.一种处理装置,包括:
寄存器堆,包括多个寄存器单元;
多个执行单元,被配置为分别执行指令并且以执行延迟来输出执行结果;
多个写端口,每个写端口被配置为根据所述多个执行单元的执行延迟,被耦合在具有对应执行延迟的执行单元与所述多个寄存器单元之间,从具有所述对应执行延迟的执行单元接收执行结果,并且将所述执行结果写回到所述多个寄存器单元中与写地址相对应的任一个寄存器单元;
缓存单元,被耦合到所述多个执行单元中的具有第一执行延迟的第一执行单元,并且被配置为从所述第一执行单元接收第一执行结果;以及
多路选择器,被耦合在所述缓存单元与所述多个写端口中的第一写端口之间,并且被配置为从所述缓存单元接收所述第一执行结果,并且基于选择信号将所述第一执行结果传输到所述第一写端口,其中所述多路选择器进一步被耦合到所述多个执行单元中的具有与所述第一执行延迟不同的第二执行延迟的第二执行单元,并且被配置为从所述第二执行单元接收第二执行结果,并且基于所述选择信号将所述第二执行结果传输到所述第一写端口,
其中所述多个执行单元的执行延迟彼此不同,并且每个写端口被耦合到所述多个执行单元中的一个执行单元,
其中所述多个执行单元的执行延迟中的至少两个执行延迟等于特定延迟值,并且所述多个写端口中的一个写端口被耦合到所述多个执行单元中的具有所述至少两个执行延迟的至少两个执行单元。
5.一种用于写回指令执行结果的方法,包括:
通过第一写端口,从具有第一执行延迟的第一执行单元接收第一执行结果,并且基于第一写地址将所述第一执行结果写回到寄存器堆中的第一寄存器单元;
通过第二写端口,从具有与所述第一执行延迟不同的第二执行延迟的第二执行单元接收第二执行结果,并且基于第二写地址将所述第二执行结果写回到所述寄存器堆中的第二寄存器单元,其中所述第一写端口未被耦合到所述第二执行单元,并且所述第二写端口未被耦合到所述第一执行单元;
通过缓存单元,从具有与所述第一执行延迟和所述第二执行延迟不同的第五执行延迟的第五执行单元接收第五执行结果;以及
通过多路选择器,从所述缓存单元接收所述第五执行结果,并且基于选择信号将所述第五执行结果传输到所述第二写端口,以通过所述第二写端口基于第五写地址将所述第五执行结果写回到所述寄存器堆中的第五寄存器单元,其中通过所述第二写端口经由所述多路选择器从所述第二执行单元接收所述第二执行结果,
其中所述方法还包括:通过所述第一写端口,从具有第四执行延迟的第四执行单元接收第四执行结果,并且基于第四写地址将所述第四执行结果写回到所述寄存器堆中的第四寄存器单元,其中所述第四执行延迟与所述第一执行延迟基本相同。
6.根据权利要求5所述的方法,进一步包括:
通过第三写端口,从具有与所述第一执行延迟和所述第二执行延迟不同的第三执行延迟的第三执行单元接收第三执行结果,并且基于第三写地址将所述第三执行结果写回到所述寄存器堆中的第三寄存器单元,
其中所述第三写端口未被耦合到所述第一执行单元和所述第二执行单元。
7.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信耦合的存储器,
其中所述存储器存储有由所述至少一个处理器可执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行根据权利要求5或6中任一项所述的方法。
8.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行根据权利要求5或6中任一项所述的方法。
9.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求5或6中任一项所述的方法。
CN202010681665.9A 2020-07-15 2020-07-15 用于写回指令执行结果的装置和方法、处理装置 Active CN111857823B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010681665.9A CN111857823B (zh) 2020-07-15 2020-07-15 用于写回指令执行结果的装置和方法、处理装置
EP21178573.8A EP3940531A1 (en) 2020-07-15 2021-06-09 Apparatus and method for writing back instruction execution result and processing apparatus
US17/343,139 US20210318883A1 (en) 2020-07-15 2021-06-09 Apparatus and method for writing back instruction execution result and processing apparatus
KR1020210091693A KR102579097B1 (ko) 2020-07-15 2021-07-13 명령 수행 결과를 라이트백하기 위한 장치 및 방법, 프로세싱 장치
JP2021116396A JP7229305B2 (ja) 2020-07-15 2021-07-14 命令実行結果をライトバックするための装置及び方法、処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010681665.9A CN111857823B (zh) 2020-07-15 2020-07-15 用于写回指令执行结果的装置和方法、处理装置

Publications (2)

Publication Number Publication Date
CN111857823A CN111857823A (zh) 2020-10-30
CN111857823B true CN111857823B (zh) 2024-10-29

Family

ID=72984096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010681665.9A Active CN111857823B (zh) 2020-07-15 2020-07-15 用于写回指令执行结果的装置和方法、处理装置

Country Status (5)

Country Link
US (1) US20210318883A1 (zh)
EP (1) EP3940531A1 (zh)
JP (1) JP7229305B2 (zh)
KR (1) KR102579097B1 (zh)
CN (1) CN111857823B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250113723A1 (en) 2021-07-21 2025-04-03 Lg Chem, Ltd. Polymer, and Organic Light Emitting Element Using Same
JP2024137389A (ja) * 2023-03-24 2024-10-07 株式会社Preferred Networks データ処理装置
CN116302620B (zh) * 2023-05-18 2023-08-18 珠海星云智联科技有限公司 一种支持乱序回写和并行化的命令通道

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63197217A (ja) * 1987-02-12 1988-08-16 Matsushita Electric Ind Co Ltd デ−タ処理装置
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
JP3435278B2 (ja) * 1996-02-02 2003-08-11 東芝マイクロエレクトロニクス株式会社 データ処理装置
US6041387A (en) * 1997-09-12 2000-03-21 Siemens Aktiengesellschaft Apparatus for read/write-access to registers having register file architecture in a central processing unit
WO2000008555A1 (en) * 1998-08-06 2000-02-17 Koninklijke Philips Electronics N.V. Data processing device
EP1046100A1 (en) 1998-08-06 2000-10-25 Trimedia Technologies, Inc. Data processor and method of processing data
US6279085B1 (en) 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
US6654870B1 (en) * 1999-06-21 2003-11-25 Pts Corporation Methods and apparatus for establishing port priority functions in a VLIW processor
WO2004084065A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Pipelined instruction processor with data bypassing
EP1596280A1 (en) * 2004-05-12 2005-11-16 STMicroelectronics Limited Pseudo register file write ports
CN101667448B (zh) * 2008-09-04 2012-11-07 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
CN106293631B (zh) * 2011-09-26 2020-04-10 英特尔公司 用于提供向量分散操作和聚集操作功能的指令和逻辑
GB2503438A (en) * 2012-06-26 2014-01-01 Ibm Method and system for pipelining out of order instructions by combining short latency instructions to match long latency instructions
GB2516864A (en) * 2013-08-02 2015-02-11 Ibm Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance
US9612840B2 (en) * 2014-03-28 2017-04-04 Intel Corporation Method and apparatus for implementing a dynamic out-of-order processor pipeline
US20160313923A1 (en) * 2015-04-22 2016-10-27 Mediatek Inc. Method for accessing multi-port memory module and associated memory controller
US10318302B2 (en) * 2016-06-03 2019-06-11 Synopsys, Inc. Thread switching in microprocessor without full save and restore of register file
US20180032335A1 (en) * 2016-07-31 2018-02-01 Microsoft Technology Licensing, Llc Transactional register file for a processor

Also Published As

Publication number Publication date
US20210318883A1 (en) 2021-10-14
JP2021168189A (ja) 2021-10-21
KR20210095599A (ko) 2021-08-02
EP3940531A1 (en) 2022-01-19
KR102579097B1 (ko) 2023-09-15
JP7229305B2 (ja) 2023-02-27
CN111857823A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
EP3920032B1 (en) Backward compatibility testing of software in a mode that disrupts timing
US10700968B2 (en) Optimized function assignment in a multi-core processor
JP7159223B2 (ja) キャッシュの競合を管理するための方法およびシステム
US10127043B2 (en) Implementing conflict-free instructions for concurrent operation on a processor
CN111857823B (zh) 用于写回指令执行结果的装置和方法、处理装置
US10355975B2 (en) Latency guaranteed network on chip
US10140129B2 (en) Processing core having shared front end unit
JP7605558B2 (ja) プロセッサ機構をダイナミックにチューニングするための技術
CN108257078B (zh) 存储器知晓重排序源
CN110609796A (zh) 用于存储系统中预取的方法、设备和计算机程序产品
CN114168202B (zh) 指令调度方法、指令调度装置、处理器及存储介质
US8949575B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
US20170185411A1 (en) Instruction execution method and processor
JP2022554029A (ja) スケジューラキュー割り当てバーストモード
US20070260857A1 (en) Electronic Circuit
CN115269011A (zh) 指令执行单元、处理单元及相关装置和方法
CN114924794A (zh) 一种存储部件的发射队列的地址存储、调度方法和装置
US11144367B2 (en) Write power optimization for hardware employing pipe-based duplicate register files
CN119415155B (zh) Risc-v指令加速方法、系统、设备及存储介质
KR101927255B1 (ko) 레지스터 윈도우 오버플로우/언더플로우 처리 장치
CN120670373A (zh) 处理器核心、处理器以及用于处理器的方法
CN116594694A (zh) 内存指令调度系统、方法、图形处理器和电子设备
US20110239218A1 (en) Method and system of lazy out-of-order scheduling
CN118672655A (zh) 指令处理装置、方法、处理器、电子设备和存储介质
CN117872308A (zh) 基于cpu+gpu异构服务器平台的雷达信号处理优化方法

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211015

Address after: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100094

Applicant after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Applicant after: Kunlun core (Beijing) Technology Co.,Ltd.

Address before: 100094 2F, baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing

Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100094

Patentee after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Country or region after: China

Patentee after: Kunlun Xing (Beijing) Science and Technology Co., Ltd.

Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100094

Patentee before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Country or region before: China

Patentee before: Kunlun core (Beijing) Technology Co.,Ltd.