CN117785289B - 保留站电路的控制方法、装置、保留站电路及存储介质 - Google Patents
保留站电路的控制方法、装置、保留站电路及存储介质 Download PDFInfo
- Publication number
- CN117785289B CN117785289B CN202410213544.XA CN202410213544A CN117785289B CN 117785289 B CN117785289 B CN 117785289B CN 202410213544 A CN202410213544 A CN 202410213544A CN 117785289 B CN117785289 B CN 117785289B
- Authority
- CN
- China
- Prior art keywords
- placement
- instruction information
- information
- placement unit
- unit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000005540 biological transmission Effects 0.000 claims abstract description 71
- 230000006870 function Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000005265 energy consumption Methods 0.000 abstract description 15
- 238000012545 processing Methods 0.000 description 17
- 238000012423 maintenance Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供了一种保留站电路的控制方法、装置、保留站电路及存储介质。应用于保留站电路的控制单元,保留站电路还包括根据写入的指令信息的写入时长的顺序排列的多个放置单元。方法包括:在控制单元接收到待派遣的指令信息时,获取放置单元发送的槽位占用信息、槽位发射信息和位置信息;根据槽位占用信息判断存在空闲的放置单元和根据槽位发射信息确认存在待发射的指令信息时,在待发射的指令信息发射完成之后,再根据位置信息更新放置单元存储的指令信息,并根据更新后的放置单元的槽位信息和位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元以写入待派遣的指令信息。本申请能提升保留站电路的工作速度并降低其工作能耗。
Description
技术领域
本申请属于计算机控制技术领域,尤其涉及一种保留站电路的控制方法、装置、保留站电路及存储介质。
背景技术
计算机指令的乱序处理算法作为一种提高处理器的指令并行度与吞吐量的方法,已在现代各类高性能处理器中被大量使用。
保留站电路(Reservation Station,RS) 通过移位寄存器,可优先地将指令移动至底部的空闲槽位,并优先地将处于底部槽位的指令发射至处理模块。然而,当保留站电路中同时出现多个指令符合发射条件的情况时,若没有合适的发射仲裁逻辑,保留站电路可能在这些指令中进行随机选择后发射。在最坏的情况下,最先进入保留站电路的指令可能会因长时间未得到发射权限反而被持续阻塞在保留站电路中。若后续进入保留站电路的指令与该条指令存在数据依赖关系,则后续指令的源寄存器的数据会因为长时间处于不可用状态,导致后续指令也无法发射而阻塞在保留站电路中,最终造成保留站电路的槽位用尽,迫使整条处理器流水线停止。
因此,亟需设计一种全新的解决方案,用于克服上述技术问题。
发明内容
本申请实施例提供了一种保留站电路的控制方法、装置、保留站电路及存储介质,用以实现在保留站电路内精确控制已写入的指令信息的发射与新接收的指令信息的写入,提升保留站电路的工作速度并降低其工作能耗。
本申请的实施例期望提供一种保留站电路的控制方法、装置、保留站电路及存储介质。
在本申请的第一方面中,提供了一种保留站电路的控制方法,应用于所述保留站电路的控制单元,所述保留站电路还包括多个放置单元,多个所述放置单元根据写入的指令信息的写入时长的顺序排列,所述控制单元和所述放置单元通信连接;所述方法包括:
在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息;
根据所述槽位占用信息判断是否存在空闲的所述放置单元;
若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;
若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;
根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;
根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
在本申请的第二方面中,提供了一种保留站电路的控制装置,所述保留站电路的控制装置应用于保留站电路的控制单元,所述保留站电路还包括多个放置单元,多个所述放置单元根据写入的指令信息的写入时长的顺序排列,所述控制单元和所述放置单元通信连接;所述保留站电路的控制装置包括:
获取模块,用于在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息;
判断模块,用于根据所述槽位占用信息判断是否存在空闲的所述放置单元;
确认模块,用于若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;
更新模块,用于若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;
确定模块,用于根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;
写入模块,用于根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
在本申请的第三方面中,提供了一种保留站电路,包括控制单元和多个放置单元,多个所述放置单元根据写入的指令信息的写入时长的顺序排列,所述控制单元和所述放置单元通信连接;
其中,所述控制单元包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现本申请任一实施例所提供的保留站电路的控制方法的步骤。
在本申请的第四方面中,提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行本申请任一实施例所提供的保留站电路的控制方法的步骤。
本申请实施例提供的技术方案中,提供了一种保留站电路的控制方法,应用于保留站电路的控制单元,保留站电路还包括多个放置单元,多个放置单元根据写入的指令信息的写入时长的顺序排列,控制单元和所述放置单元通信连接。首先,在控制单元接收到待派遣的指令信息时,获取每个放置单元发送的槽位信息和每个放置单元的位置信息;其中,槽位信息包括槽位占用信息和槽位发射信息。其次,根据槽位占用信息判断是否存在空闲的放置单元。进而,若确认存在空闲的放置单元,根据槽位发射信息确认多个放置单元存储的指令信息中是否存在待发射的指令信息。然后,若存在待发射的指令信息,在待发射的指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并获取更新后的每个放置单元的槽位信息和每个所述放置单元的位置信息。再然后,根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元。最终,根据目标放置单元对应的位置信息将待派遣的指令信息写入目标放置单元。
相对于现有技术中在保留站电路内若有多条指令时,通过设有仲裁逻辑对这些指令的写入保留电站的写入时间进行比较并挑选出写入时间最久的指令进行发射的方式,本申请实施例中通过对保留电路内的放置单元根据写入的指令信息的写入时长的顺序排列,进而在保留站电路内的控制单元接收到待派遣的指令信息时,若确定存在空闲的放置单元且存在待发射的指令信息时,在待发射的所述指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元,以将待派遣的指令信息写入目标放置单元。进而所提供的方法在无需设置相应的发射仲裁逻辑的情况下,简化了电路逻辑以及指令处理流程,减少了比较、选择操作所需的计算能耗,提升保留站电路的工作速度并降低其工作能耗,同时,集中而连续的被占用的放置单元与空闲的放置单元的分布设计,可以减少电路中的空隙,进一步降低保留站电路的功耗。同时,通过集中而连续的放置单元以及空闲单元,能够通过查看位置信息和槽位信息,快速定位和调试保留站电路的问题,有助于提升保留站电路的调试和维护效率,为开发人员的调试与维护工作提供了便利。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施例,其中:
图1示意性地示出了根据本申请中保留站电路的控制方法的一种流程示意图;
图2示意性地示出了根据本申请中保留站电路的一种架构示意图;
图3示意性地示出了根据本申请中保留站电路的发射方法的一种流程示意图;
图4示意性地示出了根据本申请中保留站电路的发射方法的一种原理示意图;
图5示意性地示出了根据本申请中保留站电路的控制方法的一种原理示意图;
图6示意性地示出了根据本申请中保留站电路的控制方法的另一种原理示意图;
图7示意性地示出了根据本申请中保留站电路的控制方法的又一种原理示意图;
图8示意性地示出了根据本申请中保留站电路的控制装置的一种结构示意图;
图9示意性地示出了根据本申请中控制单元的一种结构示意图;
图10示意性地示出了根据本申请中服务器的一种结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施例来描述本申请的原理和精神。应当理解,给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本申请的实施例可以实现为一种系统、装置、设备、系统或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
目前,计算机指令的乱序处理算法作为一种提高处理器的指令并行度与吞吐量的方法,已在现代各类高性能处理器中被大量使用。
保留站电路(Reservation Station,RS)是为了解决相继进入流水线的指令间数据或资源的相关性,在功能部件的输入端设置的暂存寄存器。操作数可以在保留站里等待,直到相关问题解决。保留站电路通过移位寄存器,可优先地将指令移动至底部的空闲槽位,并优先地将处于底部槽位的指令发射至处理模块。
然而,当保留站电路中同时出现多个指令符合发射条件的情况时,若没有合适的发射仲裁逻辑,保留站电路可能在这些指令中进行随机选择后发射。在最坏的情况下,最先进入保留站电路的指令可能会因长时间未得到发射权限反而被持续阻塞在保留站电路中。若后续进入保留站电路的指令与该条指令存在数据依赖关系,则后续指令的源寄存器的数据会因为长时间处于不可用状态,导致后续指令也无法发射而阻塞在保留站电路中,最终造成保留站电路的槽位用尽,迫使整条处理器流水线停止。
申请人发现,为解决上述问题,现有的方法采用例如Tomasulo算法及其后世衍生的乱序处理算法在保留站电路内若有多条指令同时符合发射条件时,通过设有仲裁逻辑对这些指令的写入保留电站的写入时间进行比较并挑选出写入时间最久的指令进行发射。上述方法为追踪指令的写入时间,还需要额外电路以达到目标。写入时间的追踪、比较与挑选会增加电路的复杂度,过多的逻辑门会增加电路信号传输的延时,对整个处理器的吞吐量造成不良影响。并且经典保留站电路中,空闲槽位与被占用槽位的分布会随着指令派遣与发射的进行变得离散且不连续,为开发人员的调试与维护工作增加了难度。
因此,亟需设计一种全新的解决方案,用于克服在保留站电路内若有多条指令对指令的写入时间的追踪带来的技术问题,简化开发人员的调试与维护工作。
为了克服上述技术问题,根据本申请的实施例,提出了一种保留站电路的控制方法、装置、保留站电路及存储介质。
本申请实施例提供的技术方案中,提供了一种保留站电路的控制方法,应用于保留站电路的控制单元。保留站电路还包括多个放置单元,多个放置单元根据写入的指令信息的写入时长的顺序排列,控制单元和所述放置单元通信连接。首先,在控制单元接收到待派遣的指令信息时,获取每个放置单元发送的槽位信息和每个放置单元的位置信息;其中,槽位信息包括槽位占用信息和槽位发射信息。其次,根据槽位占用信息判断是否存在空闲的放置单元。进而,若确认存在空闲的放置单元,根据槽位发射信息确认多个放置单元存储的指令信息中是否存在待发射的指令信息。然后,若存在待发射的指令信息,在待发射的指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并获取更新后的每个放置单元的槽位信息和每个所述放置单元的位置信息。再然后,根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元。最终,根据目标放置单元对应的位置信息将待派遣的指令信息写入目标放置单元。
相对于现有技术中在保留站电路内若有多条指令时,通过设有仲裁逻辑对这些指令的写入保留电站的写入时间进行比较并挑选出写入时间最久的指令进行发射的方式,本申请实施例中通过对保留电路内的放置单元根据写入的指令信息的写入时长的顺序排列,进而在保留站电路内的控制单元接收到待派遣的指令信息时,若确定存在空闲的放置单元且存在待发射的指令信息时,在待发射的所述指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元,以将待派遣的指令信息写入目标放置单元。进而所提供的方法在无需设置相应的发射仲裁逻辑的情况下,简化了电路逻辑以及指令处理流程,减少了比较、选择操作所需的计算能耗,提升保留站电路的工作速度并降低其工作能耗,同时,集中而连续的被占用的放置单元与空闲的放置单元的分布设计,可以减少电路中的空隙,进一步降低保留站电路的功耗,也为调试与维护工作提供了便利。此外,通过集中而连续的放置单元以及空闲单元,能够通过查看位置信息和槽位信息,快速定位和调试保留站电路的问题,有助于提升保留站电路的调试和维护效率。
作为一种可选的实施方式,保留站电路的控制装置的数量是一个,也可以是多个。一些示例中,保留站电路的控制装置可以实现为部署在芯片内部的逻辑单元;另一些示例中,也可以是以其他形式部署在数字电路结构中,本申请不作限制。例如,保留站电路的控制装置可以设置在各种设备(如终端设备、服务器)的处理器件中。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面结合具体应用场景,参考图1来描述根据本申请示例性实施例的用于通信的方法。需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施例在此方面不受任何限制。相反,本申请的实施例可以应用于适用的任何场景。
下面结合以下实施例对保留站电路的控制方法的执行过程进行说明。图1为本申请实施例提供的一种保留站电路的控制方法的流程图。该方法应用于如图2所示的保留站电路的控制单元,保留站电路还包括多个放置单元,多个放置单元根据写入的指令信息的写入时长的顺序排列,控制单元和所述放置单元通信连接。如图1所示,该方法包括如下步骤:
步骤101,在控制单元接收到待派遣的指令信息时,获取每个放置单元发送的槽位信息和每个放置单元的位置信息;其中,槽位信息包括槽位占用信息和槽位发射信息。
步骤102,根据槽位占用信息判断是否存在空闲的放置单元。
步骤103,若确认存在空闲的放置单元,根据槽位发射信息确认多个放置单元存储的指令信息中是否存在待发射的指令信息。
步骤104,若存在待发射的指令信息,在待发射的指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并获取更新后的每个放置单元的槽位信息和每个所述放置单元的位置信息。
步骤105,根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元。
步骤106,根据目标放置单元对应的位置信息将待派遣的指令信息写入目标放置单元。
首先,在介绍上述步骤101至106的具体实施方式之前,先介绍本申请实施例所涉及的执行主体,即保留站电路的控制单元。
本申请所提供的保留站电路是一种数字逻辑电路的设计,该保留站电路可适用于各类指令集架构(Instruction Set Architecture,ISA)所规定的指令的动态规划作业,其中,ISA包括但不限于MIPS,Risc-V,x86,IA-64,ARM,Alpha等架构。
控制单元可以是微控制单元(Microcontroller Unit,MCU),控制单元可以位于开发板中,也可以位于任意终端设备中,本申请实施例对控制单元的安装位置不作限制。进而实现控制指令信息的派遣与发射;为派遣指令分配对应的放置单元;对放置单元内的指令信息进行移位。
保留站电路的放置单元,可以为多个槽位,其主要作用是为派遣指令信息提供存储空间,通过放置单元根据写入的指令信息的写入时长的顺序排列,能够确保控制单元能够快速确认放置单元内写入的指令信息的先后顺序,避免在每次指令信息派遣时控制单元都需要追踪各放置单元内写入的指令信息的写入时长。
为了解决上述至少一个技术问题,本申请实施例提供了一种保留站电路的控制方法,用以在无需设置相应的发射仲裁逻辑的情况下,提升保留站电路的工作速度并降低其工作能耗,实现对指令信息的自动派遣与发射。
保留站电路的控制方法中,首先,通过将放置单元按照指令信息的写入时长的顺序排列,可以确保较长时间等待的指令信息尽快得到处理。这样可以避免现有技术中通过仲裁逻辑进行比较的过程,从而减少了额外的延迟和计算开销,提高了指令的发射效率。其次,在控制单元接收待派遣的指令信息时,通过获取每个放置单元的槽位信息和位置信息,可以实时判断是否存在空闲的放置单元。当确定存在空闲的放置单元且存在待发射的指令信息时,通过待发射指令信息发射完成后的更新操作,可以及时更新每个放置单元所存储的指令信息,并根据更新后的槽位信息和位置信息确定待派遣指令信息的目标放置单元。这样的设计使得指令信息能够更加顺畅地在保留站电路中传递和执行,减少了指令的等待时间和冲突,提高了保留站电路的工作速度。此外,由于本方案避免了复杂的发射仲裁逻辑,节省了相应的电路资源和计算开销,从而降低了保留站电路的工作能耗。总结来说,本方案通过优化保留站电路的控制方法,包括放置单元的排序和更新操作,实现了指令信息的高效处理和发射,从而提升了保留站电路的工作速度并降低了其工作能耗。
具体来说,在步骤101中,控制单元用于在接收到待派遣的指令信息时,获取每个放置单元发送的槽位信息和每个放置单元的位置信息,例如控制单元向放置单元发送信息获取请求,以使得放置单元响应该请求反馈其槽位信息和位置信息,或者,放置单元每隔预设时长(如10s)向控制单元发送一次槽位信息和位置信息。
本申请实施例中,槽位信息包括槽位占用信息和槽位发射信息,例如以R(Ready)表示放置单元内的指令信息是否准许发射,以V(Valid)表示放置单元内是否已写入指令信息。进而控制单元能够快速确认各放置单元的情况以确定待派遣的指令信息的派遣方案。
本申请实施例中,位置信息可以是放置单元对应的槽位的方位信息,例如坐标信息或编号信息,其中,编号信息可以为按照放置单元排列顺序进行编号的信息,例如3个槽位从下至上依次为0至2号,进而控制单元能够快速确认所接收的槽位信息对应的放置单元在多个放置单元中的位置。
本申请实施例中,派遣是指将指令从投入缓冲区(如指令缓冲区)发送到保留站电路中的过程。在乱序处理算法中,派遣指令的目的是将指令放置在保留站中等待发射。通过保留站,指令可以管理和调度其所需的资源,在满足发射条件时被发送到功能单元(如执行单元)中执行。
步骤102中,控制单元根据槽位占用信息判断是否存在空闲的放置单元。
本申请实施例中,控制单元在获取各放置单元发送的槽位占用信息后,能够快速判断各放置单元是否被占用,例如以V(即Valid)表示放置单元内是否已写入指令信息时,当V对应高电平即为1时表示该放置单元被占用,V为0即低电平时表示该放置单元空闲,或以F(即False)和T(即True)等信息表征放置单元是否被占用。进而控制单元能够快速判断多个放置单元中是否存在空闲的放置单元,为后续指令信息的派遣提供实现基础。
步骤103中,若确认存在空闲的放置单元,控制单元根据槽位发射信息确认多个放置单元存储的指令信息中是否存在待发射的指令信息。
本申请实施中,在控制单元确认多个槽位信息中存在空闲的未被占用的放置单元后,能够根据槽位发射信息确认多个放置单元存储的指令信息中是否存在待发射的指令信息,以R(即Ready)表示放置单元内的指令信息是否准许发射时,当R对应高电平即为1时表示该放置单元被占用,为0即低电平时表示该放置单元空闲,或以F和T等信息表征放置单元是否被占用。进而控制单元能够快速判断多个放置单元中是否存在待发射的指令信息,为后续指令信息的派遣提供实现基础。
步骤104中,若存在待发射的所述指令信息,控制单元在所述待发射的指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并获取更新后的每个放置单元的槽位信息和每个放置单元的位置信息。
本申请实施例中,为确保逻辑的正确性,控制单元先将待发射的指令信息进行发射,在发射完成后由于此时可能在多个写入指令信息的放置单元中存在一个位于内部、首末端任一位置的放置单元处于空闲,此时在将待派遣的指令信息进行派遣之前,需要先对多个放置单元写入的指令信息进行移位,进而确保放置单元能保持根据写入的指令信息的写入时长的顺序排列,进而本申请不需要额外的指令信息的写入时长(也可称为指令信息的年龄)追踪电路以及复杂的仲裁逻辑便能保证每次新派遣的指令信息之前的指令信息的写入时长(年龄)均大于该指令信息。
具体来说,在一可选实施例中,保留站电路还包括多个功能单元和多个寄存单元;请结合参照图3和图4,在根据位置信息更新每个放置单元所存储的指令信息之前,方法还包括步骤301至步骤305。
步骤301,获取待发射的指令信息的功能信息和寄存信息。
步骤302,根据功能信息在多个功能单元中确认目标功能单元。
步骤303,控制待发射的指令信息发射至目标功能单元。
步骤304,获取目标功能单元执行指令信息所生成的结果信息。
步骤305,根据寄存信息在多个寄存单元中确认目标寄存单元,以将结果信息写入目标寄存单元中。
在本申请所提供的方法中,保留站电路基于内部设置的移位寄存器,会优先地将写入时长最长(年龄最大)的指令信息移动至保留站电路内一端(例如最底部)的放置单元,并将新进入的指令信息分配入保留站电路中紧接着写入时长最短(年龄最小)指令信息的位置空闲放置单元,从而使保留站电路内指令的写入时长的分布变得规律且连续。
本申请不需要额外的写入时长(年龄)追踪电路以及复杂的仲裁逻辑便能保证每次发射的指令为保留站电路内写入时长最长(年龄最大)的指令信息。精简的电路可以有效提升电路的处理速度,降低整体的工作能耗;并且空闲槽位,被占用槽位的空间分布也为两片连续的区域,有利于开发者在调试过程中掌握保留站电路内部情况与对保留站电路的维护工作。
本申请中,年龄指的是指令进入保留站后停留在其中的时间长度,即指令从派遣进入保留站到被允许发射的时间。年龄用于衡量指令在保留站中的等待时间。也就是,指令的年龄越大,意味着指令在保留站中停留的时间越长。相对于传统的保留站电路中使用计数器或其他逻辑电路来标记每条指令的年龄,并通过比较和选择来确定最年长的指令进行发射,本申请的保留站电路中,通过移位寄存器的方式,可以实现指令的自动年龄排序,使得指令从底部到顶部的位置顺序与年龄从大到小的顺序保持一致。
在本申请所提供的方法中,如图4所示,保留站电路是得以让指令乱序执行的关键组件。指令信息(对应图4中指令队列包含的派遣指令)被派遣入保留站电路(对应图4中的保留站)后,若控制单元(对应图4中的控制电路)在确认源寄存器的数据因为数据冒险处于不可用状态,则在保留站电路的放置单元(对应图4中的槽位0至槽位3)中停留,若源寄存器的数据处于可用状态,则指令被发射并进入对应的功能单元(Function Unit,FU)确定为目标功能单元(对应图4中的功能模块)中执行,目标功能单元的执行操作完毕后,得到的结果写入指令所规定的目标寄存单元(对应图4中的寄存器)中。
派遣指令进入保留站电路时,控制单元会扫描保留站电路中的空闲的放置单元,并将指令分配入可用的某个放置单元中,当指令符合发射条件时,由保留站电路将该指令发射给目标功能单元,并将该指令原本占据的放置单元重新置为空闲状态。
在一可选实施例中,若确认存在多个待发射的所述指令信息,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述方法还包括:获取所述指令信息对应的写入时长;根据所述写入时长从大到小的顺序依次发射所述指令信息。
为确保逻辑正确,当当多个放置单元的准许信号同时有效时,本申请中保留站电路的控制单元会优先发射时长最长的指令信息。
在一可选实施例中,多个所述放置单元沿第一方向排列形成放置队列,所述放置队列中的每个所述放置单元所存储的指令信息对应的写入时长沿着所述放置队列的顺序递减;在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,包括:获取所述待发射的所述指令信息对应的所述放置单元的位置信息;在所述待发射的所述指令信息发射完成之后,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,完成对每个所述放置单元所存储的指令信息的更新。
如图5所示,多个放置单元(即图5中的槽位0至槽位3)沿第一方向排列形成放置队列(如图5中的第一方向为下至上),控制单元(如图5中所示控制电路)通过令写入时长沿着所述放置队列的顺序递减(如图5中槽位0内的指令信息的写入时长最大)以使得保留站电路内指令的写入时长的分布变得规律且连续。同时槽位信息包括槽位占用信息和槽位发射信息,例如如图5所示以R(Ready)表示放置单元内的指令信息是否准许发射,以V(Valid)表示放置单元内是否已写入指令信息。同时如图5所示,保留站电路还包括多路复用器(Multiplexer,MUX),其作用为根据控制单元的准许发射信号,选择该信号所对应放置区域内的指令并将其发射。进而在待发射的指令信息发射完成之后,控制单元能根据位置信息将放置队列中位于发射完成的所述放置单元之后的每个放置单元的指令信息依次写入在放置队列中的前一个所述放置单元,完成对每个放置单元所存储的指令信息的更新。
进一步地,第一方向为从下至上、从上至下、从左至右或从右至左的任一项。进而采用所提供的方法,可以任意对保留站电路内的放置区域(槽位)进行任意顺序的排布,此时控制单元根据第一方向和放置区域的位置信息均能快速确认保留站电脑内放置区域写入的指令信息的写入时长。
进一步地,第一方向为从下至上,所述根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,包括:根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元上方的每个所述放置单元的指令信息依次写入在所述放置队列中位于其下方的所述放置单元。
请参照图6,首先,当第一方向为从下至上时,在无需移位的情况下,待派遣的指令信息会优先地进入最底部的空闲放置区域(当第一方向为上至下则为最顶部,同理第一方向为左至右为最左侧和第一方向为右至左为最右侧),如:当全部放置区域(图6中槽位0至槽位3)都空闲时,指令会进入槽位0,当槽位0被占用而其余槽位都空闲时,指令会进入槽位1,以此类推。当保留站电路内有若干放置区域被占用,且在已被占用的放置区域内中即将出现空闲的放置区域时,控制单元会做出如下工作:例如,当前时刻,槽位0,1,2中都存有指令,且处于中间的槽位1即将发射指令时,控制单元通过槽位1上部的多路复用器(MUX)接收到“槽位0,1,2都存有指令且槽位0或1准许发射”的信号,此时控制单元通过MUX获取来自槽位2内的指令,待槽位1的指令完成发射任务后,控制单元立即将槽位2的指令转移至槽位1中填补空缺。
需要说明的是,本申请中的控制单元中,若移位控制信号和准许派遣信号同时有效,移位控制信号的优先级大于准许派遣的优先级。例如保留站电路的入口处同时出现了待派遣指令,控制单元会优先将槽位2的指令转移入槽位1后,再将派遣指令分配入槽位2中。
需要说明的是,请参照图7,图7可以视为本申请控制单元的整体逻辑框图。当待控制单元进行判断的放置单元为最底部(即存放写入时长最长的指令信息的放置单元,即图7中的槽位0)时,此时控制单元无需判断图7中的“槽位(X-1)~0皆存有指令且槽位(X-1)~0不存在指令准许发射且准许派遣信号有效?”的内容。
在所述根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息之后,所述方法还包括:若不存在待发射的所述指令信息,根据所述位置信息确认所述待派遣的指令信息对应的放置单元为所述目标放置单元;其中,所述目标放置单元为在多个所述放置单元中与非空闲的所述放置单元相邻的放置单元;根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
当控制单元确定此时多个放置单元均不存在需要发射的指令信息时,直接可以将新进入的指令信息分配入保留站电路中紧接着写入时长最短(年龄最小)指令信息的位置空闲放置单元,从而使保留站电路内指令的写入时长的分布变得规律且连续。
本实施例中,通过对保留电路内的放置单元根据写入的指令信息的写入时长的顺序排列,进而在保留站电路内的控制单元接收到待派遣的指令信息时,若确定存在空闲的放置单元且存在待发射的指令信息时,在待发射的所述指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元,以将待派遣的指令信息写入目标放置单元。进而所提供的方法在无需设置相应的发射仲裁逻辑的情况下,提升保留站电路的工作速度并降低其工作能耗,同时,集中而连续的被占用的放置单元与空闲的放置单元的分布设计为开发人员的调试与维护工作提供了便利。
在介绍了本申请实施例的方法之后,接下来,参考图2对本申请实施例的保留站电路进行介绍。在图2示出的保留站电路20中,至少包括:控制单元201和多个放置单元202,多个放置单元202根据写入的指令信息的写入时长的顺序排列,控制单元201和放置单元202通信连接。
在该保留站电路20中,控制单元201,主要被配置为执行以下功能,即:在所述控制单元201接收到待派遣的指令信息时,获取每个所述放置单元202发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息。
根据所述槽位占用信息判断是否存在空闲的所述放置单元202。
若确认存在空闲的所述放置单元202,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息。
若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元202的位置信息。
根据更新后的每个所述放置单元的槽位信息和每个所述放置单元202的位置信息,确定所述待派遣的指令信息对应的放置单元202为目标放置单元;
根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
在一可选实施例中,多个所述放置单元202沿第一方向排列形成放置队列,所述放置队列中的每个所述放置单元202所存储的指令信息对应的写入时长沿着所述放置队列的顺序递减;在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,控制单元201被配置为:获取所述待发射的所述指令信息对应的所述放置单元202的位置信息;在所述待发射的所述指令信息发射完成之后,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元202之后的每个所述放置单元202的指令信息依次写入在所述放置队列中的前一个所述放置单元202,完成对每个所述放置单元202所存储的指令信息的更新。
在一可选实施例中,所述第一方向为从下至上、从上至下、从左至右或从右至左的任一项。
在一可选实施例中,所述第一方向为从下至上,所述根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元202之后的每个所述放置单元202的指令信息依次写入在所述放置队列中的前一个所述放置单元,控制单元201被配置为:根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元上方的每个所述放置单元的指令信息依次写入在所述放置队列中位于其下方的所述放置单元。
在一可选实施例中,所述保留站电路还包括多个功能单元和多个寄存单元,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,控制单元201还被配置为:获取待发射的所述指令信息的功能信息和寄存信息;根据所述功能信息在多个所述功能单元中确认目标功能单元;控制待发射的所述指令信息发射至所述目标功能单元;获取所述目标功能单元执行所述指令信息所生成的结果信息;根据所述寄存信息在多个所述寄存单元中确认目标寄存单元,以将所述结果信息写入所述目标寄存单元中。
在一可选实施例中,若确认存在多个待发射的所述指令信息,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述控制单元201还被配置为:获取所述指令信息对应的写入时长;根据所述写入时长从大到小的顺序依次发射所述指令信息。
在一可选实施例中,在所述根据所述槽位发射信息确认多个所述放置单元202存储的指令信息中是否存在待发射的所述指令信息之后,控制单元201还被配置为:若不存在待发射的所述指令信息,根据所述位置信息确认所述待派遣的指令信息对应的放置单元202为所述目标放置单元;其中,所述目标放置单元为在多个所述放置单元202中与非空闲的所述放置单元202相邻的放置单元202;根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
本实施例中,通过对保留电路内的放置单元根据写入的指令信息的写入时长的顺序排列,进而在保留站电路内的控制单元接收到待派遣的指令信息时,若确定存在空闲的放置单元且存在待发射的指令信息时,在待发射的所述指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元,以将待派遣的指令信息写入目标放置单元。进而所提供的方法在无需设置相应的发射仲裁逻辑的情况下,简化了电路逻辑以及指令处理流程,减少了比较、选择操作所需的计算能耗,提升保留站电路的工作速度并降低其工作能耗,同时,集中而连续的被占用的放置单元与空闲的放置单元的分布设计,可以减少电路中的空隙,进一步降低保留站电路的功耗,也为调试与维护工作提供了便利。此外,通过集中而连续的放置单元以及空闲单元,能够通过查看位置信息和槽位信息,快速定位和调试保留站电路的问题,有助于提升保留站电路的调试和维护效率。
在介绍了本申请实施例的方法和电路之后,接下来,参考图8对本申请实施例的保留站电路的控制装置40进行介绍。
本申请实施例中图8所示的保留站电路的控制装置40能够实现对应于上述图1所对应的实施例中保留站电路的控制方法的步骤。保留站电路的控制装置40实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述保留站电路的控制装置40应用于服务端设备或终端设备(即安装图2中的控制单元201的设备)。所述保留站电路的控制装置40可参考图1所对应的实施例中所执行的操作,此处不作赘述。
一些实施方式中,所述保留站电路的控制装置40中包括获取模块401、判断模块402、确认模块403、更新模块404、确定模块405和写入模块406。
获取模块401,用于在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息。
判断模块402,用于根据所述槽位占用信息判断是否存在空闲的所述放置单元。
确认模块403,用于若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息。
更新模块404,用于若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息。
确定模块405,用于根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元。
写入模块406,用于根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
一些实施方式中,多个所述放置单元沿第一方向排列形成放置队列,所述放置队列中的每个所述放置单元所存储的指令信息对应的写入时长沿着所述放置队列的顺序递减。所述更新模块404,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,还用于:获取所述待发射的所述指令信息对应的所述放置单元的位置信息;在所述待发射的所述指令信息发射完成之后,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,完成对每个所述放置单元所存储的指令信息的更新。
示例性的,所述第一方向为从下至上、从上至下、从左至右或从右至左的任一项。
示例性的,所述第一方向为从下至上,所述更新模块404,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,用于:根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元上方的每个所述放置单元的指令信息依次写入在所述放置队列中位于其下方的所述放置单元。
一些实施方式中,所述保留站电路还包括多个功能单元和多个寄存单元;所述保留站电路的控制装置还包括执行模块,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述执行模块用于:获取待发射的所述指令信息的功能信息和寄存信息;根据所述功能信息在多个所述功能单元中确认目标功能单元;控制待发射的所述指令信息发射至所述目标功能单元;获取所述目标功能单元执行所述指令信息所生成的结果信息;根据所述寄存信息在多个所述寄存单元中确认目标寄存单元,以将所述结果信息写入所述目标寄存单元中。
一些实施方式中,所述保留站电路还包括发射模块;在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述发射模块用于:获取所述指令信息对应的写入时长;根据所述写入时长从大到小的顺序依次发射所述指令信息。
一些实施方式中,所述保留站电路还包括空闲写入模块;在所述根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息之后,所述空闲写入模块用于:若不存在待发射的所述指令信息,根据所述位置信息确认所述待派遣的指令信息对应的放置单元为所述目标放置单元;其中,所述目标放置单元为在多个所述放置单元中与非空闲的所述放置单元相邻的放置单元;根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
本实施例中,通过对保留电路内的放置单元根据写入的指令信息的写入时长的顺序排列,进而在保留站电路内的控制单元接收到待派遣的指令信息时,若确定存在空闲的放置单元且存在待发射的指令信息时,在待发射的所述指令信息发射完成之后,根据位置信息更新每个放置单元所存储的指令信息,并根据更新后的每个放置单元的槽位信息和每个放置单元的位置信息,确定待派遣的指令信息对应的放置单元为目标放置单元,以将待派遣的指令信息写入目标放置单元。进而所提供的方法在无需设置相应的发射仲裁逻辑的情况下,简化了电路逻辑以及指令处理流程,减少了比较、选择操作所需的计算能耗,提升保留站电路的工作速度并降低其工作能耗,同时,集中而连续的被占用的放置单元与空闲的放置单元的分布设计,可以减少电路中的空隙,进一步降低保留站电路的功耗,也为调试与维护工作提供了便利。此外,通过集中而连续的放置单元以及空闲单元,能够通过查看位置信息和槽位信息,快速定位和调试保留站电路的问题,有助于提升保留站电路的调试和维护效率。
在介绍了本申请实施例的方法、系统和装置之后,接下来,对本申请实施例的计算机可读存储介质进行说明,计算机可读存储介质可为光盘,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息根据所述槽位占用信息判断是否存在空闲的所述放置单元;若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
上面从模块化功能实体的角度对本申请实施例中的保留站电路的控制装置40进行了描述,下面从硬件处理的角度分别对本申请实施例中的执行保留站电路的控制方法的控制单元和服务器进行描述。
需要说明的是,所提供的控制单元可以是微控制单元(Microcontroller Unit,MCU),MCU可以位于开发板中,也可以位于任意终端设备中,本申请实施例对控制单元的安装位置不作限制。
需要说明的是,在本申请保留站电路的控制装置实施例的图8所示的获取模块401对应的实体设备可以为输入/输出单元、收发器、射频电路、通信模块和输入/输出(I/O)接口等,判断模块402、确认模块403、更新模块404、确定模块405和写入模块406对应的实体设备可以为处理器。图8所示的保留站电路的控制装置40可以具有如图9所示的结构,当图8所示的保留站电路的控制装置40具有如图9所示的结构时,图9中的处理器和收发器能够实现前述对应该装置的装置实施例提供的判断模块402、确认模块403、更新模块404、确定模块405、写入模块406和获取模块401相同或相似的功能,图9中的存储器执行上述保留站电路的控制方法时需要调用的计算机程序。
图10是本申请实施例提供的一种服务器结构示意图,该服务器50可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图中未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器50上执行存储介质530中的一系列指令操作。
服务器50还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口580,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由服务器所执行的步骤可以基于该图10所示的服务器50的结构。例如,上述实施例中由图8所示的保留站电路的控制装置40所执行的功能可以应用到基于该图10所示的服务器结构。例如,所述中央处理器522通过调用存储器532中的指令,执行以下操作:
通过输入输出接口558接收到待派遣的指令信息时;获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息;根据所述槽位占用信息判断是否存在空闲的所述放置单元;若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的电路,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。
Claims (16)
1.一种保留站电路的控制方法,其特征在于,所述方法应用于所述保留站电路的控制单元,所述保留站电路还包括多个放置单元,多个所述放置单元根据写入的指令信息的写入时长从长到短的顺序排列,以使写入时长较长的指令信息得到优先处理;所述控制单元和所述放置单元通信连接;所述方法包括:
在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息;
根据所述槽位占用信息判断是否存在空闲的所述放置单元;
若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;
若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;
根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;
根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
2.根据权利要求1所述的方法,其特征在于,多个所述放置单元沿第一方向排列形成放置队列,所述放置队列中的每个所述放置单元所存储的指令信息对应的写入时长沿着所述放置队列的顺序递减;在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,包括:
获取所述待发射的所述指令信息对应的所述放置单元的位置信息;
在所述待发射的所述指令信息发射完成之后,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,完成对每个所述放置单元所存储的指令信息的更新。
3.根据权利要求2所述的方法,其特征在于,所述第一方向为从下至上、从上至下、从左至右或从右至左的任一项。
4.根据权利要求2所述的方法,其特征在于,所述第一方向为从下至上,所述根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,包括:
根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元上方的每个所述放置单元的指令信息依次写入在所述放置队列中位于其下方的所述放置单元。
5.根据权利要求1所述的方法,其特征在于,所述保留站电路还包括多个功能单元和多个寄存单元;在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述方法还包括:
获取待发射的所述指令信息的功能信息和寄存信息;
根据所述功能信息在多个所述功能单元中确认目标功能单元;
控制待发射的所述指令信息发射至所述目标功能单元;
获取所述目标功能单元执行所述指令信息所生成的结果信息;
根据所述寄存信息在多个所述寄存单元中确认目标寄存单元,以将所述结果信息写入所述目标寄存单元中。
6.根据权利要求1所述的方法,其特征在于,若确认存在多个待发射的所述指令信息,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述方法还包括:
获取所述指令信息对应的写入时长;
根据所述写入时长从大到小的顺序依次发射所述指令信息。
7.根据权利要求1所述的方法,其特征在于,在所述根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息之后,所述方法还包括:
若不存在待发射的所述指令信息,根据所述位置信息确认所述待派遣的指令信息对应的放置单元为所述目标放置单元;其中,所述目标放置单元为在多个所述放置单元中与非空闲的所述放置单元相邻的放置单元;
根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
8.一种保留站电路的控制装置,其特征在于,所述保留站电路的控制装置应用于保留站电路的控制单元,所述保留站电路还包括多个放置单元,多个所述放置单元根据写入的指令信息的写入时长从长到短的顺序排列,以使写入时长较长的指令信息得到优先处理;所述控制单元和所述放置单元通信连接;所述保留站电路的控制装置包括:
获取模块,用于在所述控制单元接收到待派遣的指令信息时,获取每个所述放置单元发送的槽位信息和每个所述放置单元的位置信息;其中,所述槽位信息包括槽位占用信息和槽位发射信息;
判断模块,用于根据所述槽位占用信息判断是否存在空闲的所述放置单元;
确认模块,用于若确认存在空闲的所述放置单元,根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息;
更新模块,用于若存在待发射的所述指令信息,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,并获取更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息;
确定模块,用于根据更新后的每个所述放置单元的槽位信息和每个所述放置单元的位置信息,确定所述待派遣的指令信息对应的放置单元为目标放置单元;
写入模块,用于根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
9.根据权利要求8所述的装置,其特征在于,多个所述放置单元沿第一方向排列形成放置队列,所述放置队列中的每个所述放置单元所存储的指令信息对应的写入时长沿着所述放置队列的顺序递减;
所述更新模块,在所述待发射的所述指令信息发射完成之后,根据所述位置信息更新每个所述放置单元所存储的指令信息,还用于:
获取所述待发射的所述指令信息对应的所述放置单元的位置信息;
在所述待发射的所述指令信息发射完成之后,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,完成对每个所述放置单元所存储的指令信息的更新。
10.根据权利要求9所述的装置,其特征在于,所述第一方向为从下至上、从上至下、从左至右或从右至左的任一项。
11.根据权利要求9所述的装置,其特征在于,所述第一方向为从下至上,所述更新模块,根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元之后的每个所述放置单元的指令信息依次写入在所述放置队列中的前一个所述放置单元,用于:
根据所述位置信息将所述放置队列中位于所述发射完成的所述放置单元上方的每个所述放置单元的指令信息依次写入在所述放置队列中位于其下方的所述放置单元。
12.根据权利要求8所述的装置,其特征在于,所述保留站电路还包括多个功能单元和多个寄存单元;所述装置还包括执行模块,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述执行模块用于:
获取待发射的所述指令信息的功能信息和寄存信息;
根据所述功能信息在多个所述功能单元中确认目标功能单元;
控制待发射的所述指令信息发射至所述目标功能单元;
获取所述目标功能单元执行所述指令信息所生成的结果信息;
根据所述寄存信息在多个所述寄存单元中确认目标寄存单元,以将所述结果信息写入所述目标寄存单元中。
13.根据权利要求8所述的装置,其特征在于,所述保留站电路还包括发射模块;若确认存在多个待发射的所述指令信息,在所述根据所述位置信息更新每个所述放置单元所存储的指令信息之前,所述发射模块用于:
获取所述指令信息对应的写入时长;
根据所述写入时长从大到小的顺序依次发射所述指令信息。
14.根据权利要求8所述的装置,其特征在于,所述保留站电路还包括空闲写入模块;在所述根据所述槽位发射信息确认多个所述放置单元存储的指令信息中是否存在待发射的所述指令信息之后,所述空闲写入模块用于:
若不存在待发射的所述指令信息,根据所述位置信息确认所述待派遣的指令信息对应的放置单元为所述目标放置单元;其中,所述目标放置单元为在多个所述放置单元中与非空闲的所述放置单元相邻的放置单元;
根据所述目标放置单元对应的位置信息将所述待派遣的指令信息写入所述目标放置单元。
15.一种保留站电路,其特征在于,包括控制单元和多个放置单元,多个所述放置单元根据写入的指令信息的写入时长的顺序排列,所述控制单元和所述放置单元通信连接;
其中,所述控制单元包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的保留站电路的控制方法。
16.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的保留站电路的控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410213544.XA CN117785289B (zh) | 2024-02-27 | 2024-02-27 | 保留站电路的控制方法、装置、保留站电路及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410213544.XA CN117785289B (zh) | 2024-02-27 | 2024-02-27 | 保留站电路的控制方法、装置、保留站电路及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117785289A CN117785289A (zh) | 2024-03-29 |
CN117785289B true CN117785289B (zh) | 2024-05-10 |
Family
ID=90382031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410213544.XA Active CN117785289B (zh) | 2024-02-27 | 2024-02-27 | 保留站电路的控制方法、装置、保留站电路及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785289B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243216B1 (en) * | 2003-04-25 | 2007-07-10 | Advanced Micro Devices, Inc. | Apparatus and method for updating a status register in an out of order execution pipeline based on most recently issued instruction information |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
CN115309454A (zh) * | 2022-07-14 | 2022-11-08 | 复旦大学 | 一种超标量risc-v处理器的扩展指令接口 |
-
2024
- 2024-02-27 CN CN202410213544.XA patent/CN117785289B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243216B1 (en) * | 2003-04-25 | 2007-07-10 | Advanced Micro Devices, Inc. | Apparatus and method for updating a status register in an out of order execution pipeline based on most recently issued instruction information |
CN113778522A (zh) * | 2021-09-13 | 2021-12-10 | 中国电子科技集团公司第五十八研究所 | 一种发射单元中指令发射处理方法 |
CN115309454A (zh) * | 2022-07-14 | 2022-11-08 | 复旦大学 | 一种超标量risc-v处理器的扩展指令接口 |
Non-Patent Citations (1)
Title |
---|
一种基于Nand Flash多版本程序的FPGA智能加载方法;刘剑;李赛辉;周邦华;雷丽丽;;雷达与对抗;20150915(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117785289A (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4669079A (en) | Method and apparatus for bus arbitration in a data processing system | |
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
AU620318B2 (en) | Arbitration technique for a split transaction bus in a multiprocessor computer system | |
KR100524575B1 (ko) | 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법 | |
US20180095738A1 (en) | Method, device, and system for creating a massively parallilized executable object | |
KR101775569B1 (ko) | 가상 재시도 큐 | |
US20160062930A1 (en) | Bus master, bus system, and bus control method | |
JP2009508247A (ja) | バス調停に関する方法及びシステム | |
JP2009525536A (ja) | 適応型の領域ロック処理 | |
JP2004318876A (ja) | マルチサイクル・データ転送要求のための分散型アービトレーションを管理する方法およびシステム | |
CN110716691A (zh) | 调度方法、装置、闪存设备和系统 | |
CN117785289B (zh) | 保留站电路的控制方法、装置、保留站电路及存储介质 | |
US7779188B2 (en) | System and method to reduce memory latency in microprocessor systems connected with a bus | |
CN117132446A (zh) | Gpu的数据访问处理方法、装置及存储介质 | |
CN112415307B (zh) | 一种用于并行测试的ats仪器资源控制方法 | |
KR960005395B1 (ko) | 최소 경합 프로세서 및 시스템 버스 시스템 | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
JP3111052B2 (ja) | 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム | |
CN115150472A (zh) | 并发控制方法、网卡、计算机设备、存储介质 | |
US10740150B2 (en) | Programmable state machine controller in a parallel processing system | |
US20080281999A1 (en) | Electronic system with direct memory access and method thereof | |
CN109324982B (zh) | 一种数据处理方法以及数据处理装置 | |
CN110516329B (zh) | 一种预约机制解决多路访问存储单元簇冲突的数字电路设计方法 | |
CN117880364B (zh) | 一种数据传输方法、系统以及相关装置 | |
US10901735B2 (en) | Apparatus and method to improve performance of memory accesses from plural arithmetic processors |
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 |