CN115210690A - 硬件微融合存储器操作的重命名 - Google Patents
硬件微融合存储器操作的重命名 Download PDFInfo
- Publication number
- CN115210690A CN115210690A CN202080088624.7A CN202080088624A CN115210690A CN 115210690 A CN115210690 A CN 115210690A CN 202080088624 A CN202080088624 A CN 202080088624A CN 115210690 A CN115210690 A CN 115210690A
- Authority
- CN
- China
- Prior art keywords
- memory operation
- memory
- block
- data register
- register operands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 3
- 239000011521 glass Substances 0.000 claims description 2
- 230000036541 health Effects 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction 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)
Abstract
本发明公开的方面包括硬件微融合存储器(例如,加载和存储)操作。一方面,硬件微融合存储器操作是一种使用多个数据寄存器操作数执行的单一原子存储器操作,例如,加载对或存储对操作。为进行重命名,将所述加载对或存储对操作视为两个独立操作,但以包含两个数据寄存器操作数的单一微操作形式进行调度。然后,以原子方式执行所述加载对或存储对操作。
Description
优先权申请
本申请要求2019年12月20日提交的第16/722,870号美国专利申请“硬件微融合存储器操作”的优先权,所述第16/722,870号美国专利申请通过本发明的整体引用,成为本发明的一部分。
发明领域
本发明技术通常涉及处理器存储器操作,具体涉及具有多个目的地的原子加载和存储操作。
背景技术
存储器操作(例如,加载和存储操作)是将数据写入与处理器相关的存储器中或从中读取数据的操作。这些存储器操作通常是大量处理器工作负载的很大一部分,因此,快速、高效执行存储器操作的能力可提高处理器的总体性能。对于包含大数据集的工作负载(例如,许多云计算工作负载),加载和存储操作可包括与特定工作负载相关的大多数指令。
为了解决这一问题,某些计算机架构已将多个独立存储器指令融合到一个较大的存储器操作中,但是,这种方法需要很大的微架构跟踪开销,才能确保处理器正确运行。其他处理架构可提供增强存储器操作,如成对加载和存储指令(例如,Arm的加载对和存储对指令)。此类操作可在连续存储器位置上有效执行封装在单一指令内的两个存储器操作,以保存指令带宽,同时使用全数据宽度的现有硬件存储器操作流水线。
为了提高处理器的存储器操作性能,一种常规方法是增加处理器中硬件存储器操作流水线的数量。但是,向处理器添加硬件存储器操作流水线在硅面积和操作复杂性方面的成本相对较高,可能涉及与其他所需功能不可接受的权衡。另一种方法是减少与存储器操作相关的延迟时钟周期数量。但是,这可能导致总体时钟频率降低,并可能降低非存储器操作性能。因此,需要确定可提高处理器存储器操作执行能力的其他技术。
发明内容
具体实施方式中公开的方面包括硬件微融合存储器(例如,加载和存储)操作。一方面,硬件微融合存储器操作是一种使用多个数据寄存器操作数执行的单一原子存储器操作,例如,加载对或存储对操作。为进行重命名,将所述加载对或存储对操作视为两个独立操作,但以包含多个数据寄存器操作数的单一操作形式进行调度。然后,以原子方式执行所述加载对或存储对操作。
一方面,就这一点而言,一种设备包括一个重命名块,用于接收规定多个数据寄存器操作数的第一存储器操作,并对所述第一存储器操作进行重命名。所述设备进一步包括一个调度块,用于接收所述重命名后第一存储器操作,将所述重命名后第一存储器操作存储在多个调度块条目的至少一个条目中,并以包含多个数据寄存器操作数的单一操作形式调度所述第一存储器操作。所述设备进一步包括一个存储器操作块,用于接收所述调度后第一存储器操作,并以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
另一方面,一种设备包括重命名装置,用于接收规定多个数据寄存器操作数的第一存储器操作,并对所述第一存储器操作进行重命名。所述设备进一步包括一个调度装置,用于接收所述重命名后第一存储器操作,将所述重命名后第一存储器操作存储在调度装置多个条目的至少一个条目中,并以包含多个数据寄存器操作数的单一操作形式调度所述第一存储器操作。所述设备进一步包括存储器操作装置,用于接收所述调度后第一存储器操作,并以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
另一方面,一种方法包括接收规定重命名块处多个数据寄存器操作数的第一存储器操作,并通过重命名块对所述第一存储器操作进行重命名。所述方法进一步包括向调度块提供所述重命名后第一存储器操作,并以包含多个数据寄存器操作数的单一操作形式调度所述重命名后第一存储器操作。所述方法进一步包括向存储器操作块提供所述调度后第一存储器操作,然后以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
另一方面,一种非瞬时计算机可读介质存储计算机可执行指令,当由处理器执行这些指令时,使处理器接收规定重命名块处多个数据寄存器操作数的第一存储器操作,并通过重命名块对所述第一存储器操作进行重命名。所述指令进一步使处理器向调度块提供所述重命名后第一存储器操作,并以包含多个数据寄存器操作数的单一操作形式调度所述重命名后第一存储器操作。所述指令进一步使处理器向存储器操作块提供调度后第一存储器操作,并由存储器块以原子方式执行所述调度后第一存储器操作。
附图说明
图1为支持硬件微融合存储器操作的示例性处理器的框图。
图2为显示了通过图1示例性处理器的一部分进行硬件微融合存储器操作的流程的详细框图。
图3为图1示例性处理器的调度块条目的详图。
图4为显示了硬件微融合存储器操作的执行方法的流程图。
图5为可执行硬件微融合存储器操作的示例性处理器系统的框图。
具体实施方式
参照附图,公开了本发明的几个示例性方面。在本发明中,单词“示例性”是指“用作示例、实例或例证”。本发明所述的任何“示例性”方面并不一定优于其他方面。
具体实施方式中公开的方面包括硬件微融合存储器(例如,加载和存储)操作。一方面,硬件微融合存储器操作是一种使用多个数据寄存器操作数执行的单一原子存储器操作,例如,加载对或存储对操作。为进行重命名,将所述加载对或存储对操作视为两个独立操作,但以包含两个数据寄存器操作数的单一操作形式进行调度。然后,以原子方式执行所述加载对或存储对操作。
在这方面,图1为支持硬件微融合存储器操作的示例性处理器105的框图100。处理器105包括一个与调度块120耦合的重命名块110,并且可向调度块120提供重命名硬件微融合存储器操作。调度块120与加载/存储单元130耦合,并且可在加载/存储单元130上调度硬件微融合存储器操作,以便执行所述操作。加载/存储单元130可与缓存和存储器层次结构140耦合,并以原子方式执行硬件微融合存储器操作。缓存和存储器层次结构140可包括一个或多个级别的缓存(可能是处理器105专有,或可在处理器105和其他未显示的处理器之间共享)、紧耦合存储器、主存储器或本领域技术人员已知的其他类型的存储器。
运行时,重命名块110接收硬件微融合存储器操作(例如,加载对或存储对操作),并对硬件微融合存储器操作进行重命名。一方面,将所述硬件微融合存储器操作视为两个独立存储器操作(在存储对的情况下,一个操作适用于每个数据源寄存器;或在加载对的情况下,一个操作适用于数据目的地寄存器),因此,所述单一硬件微融合存储器操作在重命名时有效占用两个槽位。将重命名块110中的单独槽位用于硬件微融合存储器操作的每个数据寄存器操作数,可缓解重命名块110的尺寸和复杂性增加问题,从而支持硬件微融合存储器操作,但代价是在对硬件微融合存储器操作进行重命名时,会消耗重命名块110的更多现有资源。在另一个方面,可增加重命名块中的槽位尺寸,从而支持硬件微融合存储器操作。无论是以两个独立存储器操作还是单一存储器操作的形式存储在较大的重命名槽位中,所述重命名块可以包含多个数据寄存器操作数的单一原子存储器操作形式向调度块120提供硬件微融合存储器操作。
调度块120从重命名块110接收硬件微融合存储器操作(无论是以两个单独存储器操作还是单一存储器操作的形式),并以包含多个数据寄存器操作数的单一存储器操作形式调度所述硬件微融合存储器操作(即,在加载对或存储对的情况下,单一寄存器宽度的两倍)。在加载对操作的情况下,调度块120以包含两个目的地寄存器的单一存储器操作形式将加载对操作存储在调度块120的单一条目中。然后,以原子操作的形式向加载/存储单元130提供所述硬件微融合存储器操作。在存储对操作的情况下,调度块120跨两个调度块条目存储存储对操作,随后由加载/存储单元130组合并以包含两个独立微操作的单一原子操作形式执行所述操作。
加载/存储单元130从调度块120接收硬件微融合存储器操作,并以原子存储器操作的形式执行所述操作。一方面,加载/存储单元130包括一个通向缓存和存储器层次结构140的数据路径135,所述路径足够宽,可支持所述硬件微融合存储器操作作为单个事务(即,数据路径135的数据宽度与数据寄存器操作数数量的累积数据宽度相对应,因此,对于加载对或存储对操作,数据路径135的数据宽度与单一寄存器尺寸的两倍相对应)。在加载对操作的情况下,这可包括从存储器地址加载双寄存器宽度值,并将所述值的每一半存储在一对规定数据目的地寄存器中的一个寄存器中。在存储对操作的情况下,这可包括将一对规定数据源寄存器的内容存储为在规定存储器地址开始的连续值。在某些方面,加载/存储单元130可进一步执行存储对和加载对操作之间的存储-加载转发操作。
在这方面,图2为显示了通过图1示例性处理器的一部分进行硬件微融合存储器操作250(在某些方面,可为加载对或存储对操作)的流程的详细框图200。重命名块110包括四个重命名槽位211a、211b、211c和211d,可接收硬件微融合存储器操作250,并作为两个独立操作对其进行处理,以进行重命名。例如,重命名块110可将硬件微融合存储器操作250的第一部分251a分配为单一操作(表示重命名槽位211a的第一数据源/目的地寄存器),重命名块110可将硬件微融合存储器操作250的第二部分251b分配为另一个单一操作(表示重命名槽位211b的第二数据源/目的地寄存器)。因此,为进行重命名,重命名块110将硬件微融合存储器操作250视为两个独立存储器操作。如上所述,参照图1,这缓解了重命名块110的尺寸和复杂性增加问题,以便执行所述硬件微融合存储器操作。然后,重命名块110在槽位211a中对硬件微融合存储器操作250的第一部分251a以及在槽位211b中对硬件微融合存储器操作250的第二部分251b进行重命名,并将第一硬件微融合存储器操作250的这两个部分提供给调度块120。
调度块120从重命名块110接收硬件微融合存储器操作250的第一部分251a和第二部分251b,在加载对操作的情况下,将硬件微融合存储器操作250的这两个部分存储在调度块120的单一条目中(在存储对的情况下,可跨调度块120的两个条目存储硬件微融合存储器操作250,可以单一原子操作的形式向加载/存储单元130提供所述操作)。调度块120包括四个调度槽位221a、221b、221c和221d,在加载对操作的情况下,一方面,可向槽位221a分配硬件微融合存储器操作250。调度槽位221a-d中的每个槽位均可包括多个目的地字段,以执行硬件微融合存储器操作(将在图3中进一步讨论)。在向调度块120中的槽位221a分配硬件微融合存储器操作250后,所述调度块可调度硬件微融合存储器操作250,以便在加载/存储单元130中执行所述操作,并且可向加载/存储单元130提供硬件微融合存储器操作250,以原子操作的形式执行所述操作。
加载/存储单元130包括一个第一加载/存储流水线231a和一个第二加载/存储流水线231b。从调度块120接收硬件微融合存储器操作250,为便于执行,将其路由到第一加载/存储流水线231a或第二加载/存储流水线231b(在所示方面,将所述存储器操作路由到第一加载/存储流水线231a,但这仅用于说明目的)。一方面,第一加载/存储流水线231a和第二加载/存储流水线231b支持全数据宽度的硬件微融合存储器操作250,因此,可以单一操作的形式执行硬件微融合存储器操作250(即,在加载对操作的情况下,第一加载/存储流水线231a和第二加载/存储流水线231b支持与单一寄存器尺寸两倍相对应的数据宽度)。然后,第一加载/存储流水线231a与缓存和存储器层次结构140通过数据路径135共同执行硬件微融合存储器操作250(如上所述,参照图1)。一方面,加载/存储单元130可独立跟踪硬件微融合存储器操作250的多个目的地。进一步地,另一方面,如果硬件微融合存储器操作250为存储对操作,则加载/存储单元130可从调度块120的两个条目中接收硬件微融合存储器操作250(如上所述,参照图1),并以两个独立微操作的形式(视为单一原子操作)执行硬件微融合存储器操作250。所述两个独立微操作可指向相关存储缓冲区中的单一条目。在一个示例性方面,这可包括一个用于执行地址计算和第一数据元素存储的第一微操作以及一个用于执行第二数据元素存储的第二微操作。
图3为图1示例性处理器调度器(如调度块120)条目300的详图。例如,条目300可与调度块120条目221a-d中的任一条目相对应。一方面,条目300举例说明了条目221a,调度块120将硬件微融合存储器操作250存储在其中。
条目300包括一个控制字段310、一个第一源就绪字段321、一个第一源字段322、一个第二源就绪字段331、一个第二源字段332、一个第一目的地字段340以及一个第二目的地字段350。控制字段310包含与硬件微融合存储器操作250等操作有关的一般流水线控制信息。第一源就绪字段321包含一个指示器,指示第一源字段322所示的第一源是否随时可用。同样,第二源就绪字段331包含一个指示器,指示第二源字段332所示的第二源是否随时可用。第一目的地字段340包含硬件微融合存储器操作250等操作的第一目的地指示信息。第二目的地字段350包含硬件微融合存储器操作250等操作的第二目的地指示信息。
如图1和图2所示,通过在每个条目300中提供两个源字段(第一源字段321和第二源字段331)和两个目的地字段(第一目的地字段340和第二目的地字段350),调度块120可存储并调度使用多个数据寄存器操作数(例如,多个源或多个目的地)执行的单一原子存储器操作。
在这方面,图4为显示了硬件微融合存储器操作的执行方法400的流程图。所述方法从方框410开始,此时,在所述重命名块处接收规定多个数据寄存器操作数的存储器操作。例如,通过重命名块110接收硬件微融合存储器操作250。
方法400继续至方框420,其中,在存储器操作中进行重命名。例如,重命名块110以第一部分251a的形式将硬件微融合存储器操作250存储在重命名槽位211a中,以第二部分251b的形式存储在重命名槽位211b中,并在槽位211a和槽位211b中单独进行重命名。然后,所述方法继续至方框430,其中,向调度块提供所述重命名后存储器操作。例如,在对槽位211a和槽位211b单独进行重命名,从而对存储器操作250进行重命名后,重命名块110向调度块120提供重命名后存储器操作250。
方法400继续至方框440,其中,所述调度块以包含多个数据寄存器操作数的单一操作形式调度所述重命名后存储器操作。例如,调度块120将硬件微融合存储器操作250存储在调度槽位221a中,将多个数据寄存器操作数存储在第一源字段322和第二源字段332中或第一目的地字段340和第二目的地字段350中。
所述方法继续至方框450,其中,所述调度器向存储器操作块提供调度存储器操作,然后以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。例如,调度块120向第一加载/存储流水线231a提供存储在调度槽位221a中的硬件微融合存储器操作,第一加载/存储流水线231a与缓存和存储器层次结构140通过数据路径135以原子方式共同执行硬件微融合存储器操作250。
本领域的技术人员应认识到,虽然上文讨论了某些示例性方面,但是,本发明的指导适用于其他方面。例如,虽然以上方面讨论了成对操作,但是,本发明的指导也适用于大量的分组操作。此外,在特定硬件块的背景下讨论了特定功能,但这些硬件块的功能分配仅用作示例,在不脱离本发明的指导的情况下,可将所讨论的功能纳入其他硬件块中。
在任何基于处理器的设备中可提供支持本发明公开方面所述的硬件微融合存储器操作的示例性处理器部分,或将其集成到任何基于处理器的设备中。示例包括但不限于服务器、计算机、便携式计算机、台式计算机、移动计算设备、机顶盒、娱乐单元、导航设备、通信设备、固定定位数据单元、移动定位数据单元、全球定位系统(GPS)设备、手机、移动电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算设备(例如,智能手表、健康或健身追踪器、眼镜等)、个人数字助理(PDA)、显示器、计算机显示器、电视机、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆部件、航空电子系统、无人机和多旋翼飞行器。
在这方面,图5显示了可支持或执行图1-4所示及所述硬件微融合存储器操作的处理器系统500的一个示例。在本示例中,处理器系统500包括一个处理器501,处理器501包括一个或多个中央处理器(CPU)505,每个CPU 505包括一个或多个处理器内核,所述处理器可与图1的处理器105相对应。CPU 505可为主设备。CPU 505可包括与CPU 505耦合的高速缓冲存储器508,用于快速访问临时存储数据。CPU 505与系统总线510耦合,可使处理器系统500中的主设备和从设备相互耦合。众所周知,CPU 505通过系统总线510交换地址、控制和数据信息,从而与其他设备进行通信。例如,作为从设备的一个示例,CPU 505可向存储控制器551传达总线事务请求。虽然图5中未显示,但是,可提供多条系统总线510,其中,每条系统总线510构成不同的结构。
可将其他主设备和从设备与系统总线510连接。如图5所示,作为示例,这些设备可包括一个存储器系统550、一个或多个输入设备530、一个或多个输出设备520、一个或多个网络接口设备540以及一个或多个显示控制器560。输入设备530可包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。输出设备520可包括任何类型的输出设备,包括但不限于语音、视频、其他视觉指示器等。网络接口设备540可为能够与网络545交换数据的任何设备。网络545可为任何类型的网络,包括但不限于有线或无线网络、专用网或公用网、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、蓝牙™网络以及互联网。网络接口设备540可支持任何类型的所需通信协议。存储器系统550可包括与一个或多个存储单元552耦合的存储控制器551。
CPU 505还可通过系统总线510访问显示控制器560,控制向一台或多台显示器562发送的信息。显示控制器560通过一个或多个视频处理器561向显示器562发送需显示的信息,所述视频处理器将需显示的信息处理成适用于显示器562的格式。显示器562可包括任何类型的显示器,包括但不限于阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子体显示器、发光二极管(LED)显示器等。
本领域的技术人员应进一步理解,与本发明公开方面有关的所述各种说明性逻辑块、模块、电路和算法均可以电子硬件、存储在存储器或另一种计算机可读介质中的指令的方式实现,并由处理器或其他处理设备或其组合执行。作为示例,可在任何电路、硬件组件、集成电路(IC)或IC芯片中使用本发明所述的主设备和从设备。本发明公开的存储器可为任何类型和大小的存储器,并且可存储任何类型的所需信息。为了清楚说明这种可互换性,上文在其功能方面对各种说明性组件、块、模块、电路和步骤进行了一般性说明。如何实现此类功能取决于特定应用、设计选择和/或对整个系统施加的设计约束。本领域的技术人员可针对每个特定应用采用各种方式实现所述功能,但是,此类实现决策不应解释为偏离本发明的范围。
可使用执行本发明所述功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑设备、离散门或晶体管逻辑、离散硬件组件或其任何组合来实现或执行与本发明公开方面有关的所述各种说明性逻辑块、模块和电路。处理器可为微处理器,但是,可替代地,所述处理器可为任何常规处理器、控制器、微处理器或状态机。处理器还可作为计算设备组合(例如,一个DSP和一个微处理器的组合、多个微处理器、一个或多个微处理器结合一个DSP内核,或任何其他此类配置)实现。
本发明公开的方面可体现在硬件中以及硬件存储的指令中,例如,可驻留在随机存取存储器(RAM)、闪存存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的计算机可读介质中。示例性存储介质与处理器耦合,使处理器可从所述存储介质中读取信息,并将信息写入其中。可替代地,所述存储介质可为处理器不可或缺的一部分。所述处理器和存储介质可驻留在ASIC中。所述ASIC可驻留在远程站中。可替代地,所述处理器和存储介质可以离散组件的形式驻留在远程站、基站或服务器中。
还应注意,本发明任何示例性方面所述的操作步骤仅旨在提供示例和讨论。可按除所示顺序之外的各种不同顺序执行所述操作。此外,实际可在多个不同步骤中执行单一操作步骤中所述的操作。此外,可结合示例性方面所讨论的一个或多个操作步骤。应理解,可对流程图中所示的操作步骤进行各种不同的修改,这对本领域的技术人员显而易见。本领域的技术人员还应理解,可采用各种不同的技术和技巧来表示信息和信号。例如,可用电压、电流、电磁波、磁场或磁性粒子、光场或光学粒子或其任何组合来表示在整个上述说明中可能提及的数据、指令、命令、信息、信号、位数、符号和芯片。
本发明的上述说明旨在使本领域的任何技术人员能够制作或使用本发明。可对本发明进行各种修改,这对本领域的技术人员显而易见,本发明定义的通用原则可适用于其他变更。因此,本发明并不仅限于本发明所述的示例和设计,而是具有与本发明公开原则和新特征一致的最广范围。
Claims (25)
1.一种设备,包括:
一个重命名块,用于接收规定多个数据寄存器操作数的第一存储器操作,并对所述第一存储器操作进行重命名;
一个调度块,用于接收所述重命名后第一存储器操作,将所述重命名后第一存储器操作存储在多个调度块条目的至少一个条目中,并以包含多个数据寄存器操作数的单一操作形式调度所述第一存储器操作;以及
一个存储器操作块,用于所述接收调度后第一存储器操作,并以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
2.根据权利要求1所述的设备,其中,所述重命名块可将所述多个数据寄存器操作数中的每个数据寄存器操作数视为独立存储器操作,从而对所述第一存储器操作进行重命名。
3.根据权利要求1所述的设备,其中,存储所述重命名后第一存储器操作的所述调度块条目进一步存储所述多个数据寄存器操作数。
4.根据权利要求1所述的设备,其中,所述存储器操作块可独立跟踪所述多个数据寄存器操作数。
5.根据权利要求4所述的设备,其中,所述存储器操作块支持所述多个数据寄存器操作数在单一管道中的全数据宽度。
6.根据权利要求1所述的设备,其中,所述第一存储器操作为存储对操作。
7.根据权利要求7所述的设备,其中,所述调度块在存储器操作块中以多个独立操作的形式调度所述第一存储器操作,其中,所述多个独立存储器操作中的每个操作均指向存储缓冲区中的单一条目。
8.根据权利要求7所述的设备,其中,所述重命名块可进一步接收规定多个数据寄存器操作数的第二存储器操作,检测所述第二存储器操作是否为加载对操作(其中,所述加载对操作的多个数据寄存器操作数中的至少一个与存储对操作的多个数据寄存器操作数中的一个相匹配),并执行从所述第一存储器操作到所述第二存储器操作的数据转发操作。
9.根据权利要求1所述的设备,其中,所述第一存储器操作为加载对操作。
10.根据权利要求1所述的设备,集成到集成电路(IC)。
11.根据权利要求10所述的设备,进一步集成到以下一种设备:服务器、计算机、便携式计算机、台式计算机、移动计算设备、机顶盒、娱乐单元、导航设备、通信设备、固定定位数据单元、移动定位数据单元、全球定位系统(GPS)设备、手机、移动电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算设备(例如,智能手表、健康或健身追踪器、眼镜等)、个人数字助理(PDA)、显示器、计算机显示器、电视机、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆部件、航空电子系统、无人机和多旋翼飞行器。
12.一种设备,包括:
重命名装置,用于接收规定多个数据寄存器操作数的第一存储器操作,并对所述第一存储器操作进行重命名;
调度装置,用于接收所述重命名后第一存储器操作,将所述重命名后第一存储器操作存储在调度装置多个条目的至少一个条目中,并以包含多个数据寄存器操作数的单一操作形式调度所述第一存储器操作;以及
存储器操作装置,用于接收所述调度后第一存储器操作,并以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
13.根据权利要求12所述的设备,其中,所述重命名装置可将多个数据寄存器操作数中的每个数据寄存器操作数视为独立存储器操作,从而对所述第一存储器操作进行重命名。
14.一种方法,包括:
接收规定重命名块处多个数据寄存器操作数的第一存储器操作;
通过重命名块对所述第一存储器操作进行重命名;
向调度块提供所述重命名后第一存储器操作;
以包含多个数据寄存器操作数的单一操作形式调度所述重命名后第一存储器操作;以及
向存储器操作块提供所述调度后第一存储器操作,然后以原子方式跨多个数据寄存器操作数执行所述第一存储器操作。
15.根据权利要求14所述的方法,其中,进一步包括由存储器操作块以原子方式执行所述调度后第一存储器操作。
16.根据权利要求15所述的方法,其中,所述存储器操作块可独立跟踪所述多个数据寄存器操作数。
17.根据权利要求15所述的方法,其中,在多个数据寄存器操作数的全数据宽度上由存储器操作块单一管道执行所述调度后第一存储器操作。
18.根据权利要求14所述的方法,其中,对所述第一存储器操作进行重命名包括将多个数据寄存器操作数中的每个数据寄存器操作数视为独立存储器操作。
19.根据权利要求14所述的方法,其中,所述第一存储器操作为加载对操作。
20.根据权利要求19所述的方法,其中,以包含多个数据寄存器操作数的单一操作形式调度所述重命名后第一存储器操作包括将所述多个数据寄存器操作数存储在调度块的单一条目中。
21.根据权利要求14所述的方法,其中,所述第一存储器操作为存储对操作。
22.根据权利要求21所述的方法,其中,以存储器操作块中并行的多个独立存储器操作的方式执行所述重命名后第一存储器操作,其中,所述多个独立存储器操作中的每个操作均指向存储缓冲区中的单一条目。
23.根据权利要求21所述的方法,进一步包括:
接收规定多个数据寄存器操作数的第二存储器操作;
检测所述第二存储器操作是否为加载对操作(其中,所述加载对操作的多个数据寄存器操作数中的至少一个与存储对操作的多个数据寄存器操作数中的一个相匹配);以及
执行从所述第一存储器操作到所述第二存储器操作的数据转发操作。
24.一种非瞬时计算机可读介质,其上存储计算机可执行指令,当由处理器执行这些指令时,使处理器:
接收规定重命名块处多个数据寄存器操作数的第一存储器操作;
通过重命名块对所述第一存储器操作进行重命名;
向调度块提供所述重命名后第一存储器操作;
以包含多个数据寄存器操作数的单一操作形式调度所述重命名后第一存储器操作;
向存储器操作块提供所述调度后第一存储器操作;以及
由所述存储器操作块以原子方式执行所述调度后第一存储器操作。
25.根据权利要求24所述的非瞬时计算机可读介质,其中,对所述第一存储器操作进行重命名包括将多个数据寄存器操作数中的每个数据寄存器操作数视为独立存储器操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/722,870 US20210191721A1 (en) | 2019-12-20 | 2019-12-20 | Hardware micro-fused memory operations |
US16/722870 | 2019-12-20 | ||
PCT/US2020/065725 WO2021127255A1 (en) | 2019-12-20 | 2020-12-17 | Renaming for hardware micro-fused memory operations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115210690A true CN115210690A (zh) | 2022-10-18 |
Family
ID=74186911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080088624.7A Pending CN115210690A (zh) | 2019-12-20 | 2020-12-17 | 硬件微融合存储器操作的重命名 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210191721A1 (zh) |
EP (1) | EP4078361A1 (zh) |
CN (1) | CN115210690A (zh) |
WO (1) | WO2021127255A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220206791A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Methods, systems, and apparatuses to optimize cross-lane packed data instruction implementation on a partial width processor with a minimal number of micro-operations |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216516B2 (en) * | 2016-09-30 | 2019-02-26 | Intel Corporation | Fused adjacent memory stores |
US10282296B2 (en) * | 2016-12-12 | 2019-05-07 | Intel Corporation | Zeroing a cache line |
US10459726B2 (en) * | 2017-11-27 | 2019-10-29 | Advanced Micro Devices, Inc. | System and method for store fusion |
US11835988B2 (en) * | 2017-12-01 | 2023-12-05 | Advanced Micro Devices, Inc. | System and method for load fusion |
CN108845830B (zh) * | 2018-07-03 | 2021-12-03 | 中国人民解放军国防科技大学 | 一种一对数装载指令的执行方法 |
US20200042322A1 (en) * | 2018-08-03 | 2020-02-06 | Futurewei Technologies, Inc. | System and method for store instruction fusion in a microprocessor |
-
2019
- 2019-12-20 US US16/722,870 patent/US20210191721A1/en active Pending
-
2020
- 2020-12-17 CN CN202080088624.7A patent/CN115210690A/zh active Pending
- 2020-12-17 EP EP20842451.5A patent/EP4078361A1/en active Pending
- 2020-12-17 WO PCT/US2020/065725 patent/WO2021127255A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4078361A1 (en) | 2022-10-26 |
US20210191721A1 (en) | 2021-06-24 |
WO2021127255A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108417B2 (en) | Storing narrow produced values for instruction operands directly in a register map in an out-of-order processor | |
CN109716292B (zh) | 在块原子数据流架构中提供存储器相依性预测 | |
US10860328B2 (en) | Providing late physical register allocation and early physical register release in out-of-order processor (OOP)-based devices implementing a checkpoint-based architecture | |
CN109564546B (zh) | 通过绕过加载存储单元来跟踪存储和加载 | |
JP2016535887A (ja) | マルチコアプロセッサにおける並行関数の効率的なハードウェアディスパッチ、ならびに関連するプロセッサシステム、方法、およびコンピュータ可読媒体 | |
US20180081691A1 (en) | REPLAYING SPECULATIVELY DISPATCHED LOAD-DEPENDENT INSTRUCTIONS IN RESPONSE TO A CACHE MISS FOR A PRODUCING LOAD INSTRUCTION IN AN OUT-OF-ORDER PROCESSOR (OoP) | |
CN115210690A (zh) | 硬件微融合存储器操作的重命名 | |
US20160019060A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US20160179532A1 (en) | Managing allocation of physical registers in a block-based instruction set architecture (isa), and related apparatuses and methods | |
US20160274915A1 (en) | PROVIDING LOWER-OVERHEAD MANAGEMENT OF DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
US10719325B2 (en) | System and method of VLIW instruction processing using reduced-width VLIW processor | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
EP3857356B1 (en) | Providing predictive instruction dispatch throttling to prevent resource overflows in out-of-order processor (oop)-based devices | |
US10514925B1 (en) | Load speculation recovery | |
US11934834B2 (en) | Instruction scheduling in a processor using operation source parent tracking | |
US9716646B2 (en) | Using thresholds to gate timing packet generation in a tracing system | |
EP4189539B1 (en) | Inserting a proxy read instruction in an instruction pipeline in a processor | |
US20190258486A1 (en) | Event-based branching for serial protocol processor-based devices |
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 |