CN116881194B - 处理器、数据处理方法及计算机设备 - Google Patents
处理器、数据处理方法及计算机设备 Download PDFInfo
- Publication number
- CN116881194B CN116881194B CN202311121440.8A CN202311121440A CN116881194B CN 116881194 B CN116881194 B CN 116881194B CN 202311121440 A CN202311121440 A CN 202311121440A CN 116881194 B CN116881194 B CN 116881194B
- Authority
- CN
- China
- Prior art keywords
- instruction information
- module
- instruction
- data
- buffer
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 272
- 239000000872 buffer Substances 0.000 claims abstract description 161
- 238000000034 method Methods 0.000 claims abstract description 104
- 230000006870 function Effects 0.000 claims abstract description 14
- 230000003139 buffering effect Effects 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 133
- 230000008569 process Effects 0.000 claims description 76
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7896—Modular architectures, e.g. assembled from a number of identical packages
-
- 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/30047—Prefetch instructions; cache control instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种处理器、数据处理方法及计算机设备,属于计算机技术领域。处理器包括缓冲器和按顺序连接的多个模块,多个模块用于实现不同功能,多个模块中包括目标模块;目标模块,用于在按照第一指令信息处理第一数据的时长达到预设时长但还未处理完成的情况下,将第一指令信息传入缓冲器,接收目标模块的上一个模块传入的第二指令信息和第二数据,并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,在将第一数据处理完成后,将第一数据的第一处理结果传入缓冲器;缓冲器,用于缓存第一指令信息,在接收到第一处理结果后,将第一指令信息和第一处理结果传入目标模块的下一个模块。本申请能够提高处理器的效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种处理器、数据处理方法及计算机设备。
背景技术
随着计算机技术的飞速发展,处理器被广泛集成于各种芯片中。其中,最为常见的处理器为顺序流水线处理器。在顺序流水线处理器中包括多个模块,指令信息在多个模块中按照流水线顺序传输,每个模块分别负责实现的不同功能。每当一个模块完成处理后,将指令信息和当前得到的处理结果传入至下一个模块,然后才能接收下一个指令的指令信息和处理结果并进行处理。
但是,由于有些指令在某些模块中的处理时长较长,导致该模块长时间卡顿在一个指令的处理过程中,进而导致无法及时处理下一个指令,因此处理器的效率低下。
发明内容
本申请实施例提供了一种处理器、数据处理方法及计算机设备,能够提高处理器的处理效率。所述技术方案如下。
一方面,提供了一种处理器,所述处理器包括缓冲器和按顺序连接的多个模块,所述多个模块用于实现不同功能,所述多个模块中包括目标模块;所述目标模块,用于在按照第一指令信息处理第一数据的时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述目标模块的上一个模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器;所述缓冲器,用于缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述目标模块的下一个模块。
另一方面,提供了一种数据处理方法,由计算机设备执行,所述计算机设备包括处理器,所述处理器包括缓冲器和按顺序连接的多个模块,所述多个模块用于实现不同功能,所述多个模块中包括目标模块;所述方法包括:通过所述目标模块,在按照第一指令信息处理第一数据的时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述目标模块的上一个模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器;通过所述缓冲器,缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述目标模块的下一个模块。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如上述处理器所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如上述处理器所执行的操作。
另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述处理器所执行的操作。
本申请实施例提供的方案,在处理器中增加了一个缓冲器,在多个模块依次按照第一指令信息处理对应的数据的过程中,如果在目标模块的处理时长较长,则在按照第一指令信息处理第一数据的时长达到预设时长后,目标模块先将第一指令信息暂时存放在缓冲器中。由于该目标模块已经将第一指令信息传入缓冲器,因此该目标模块可以接收下一个第二指令信息和第二数据,并同时按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,当第一数据处理完成后,将第一数据的第一处理结果也传入缓冲器,然后由缓冲器将第一指令信息和对应的第一处理结果同步传入下一个模块。因此本申请中,即使第一指令的处理时长较长,也不会阻塞第二指令的处理过程,提高了处理效率,并且同步处理第一指令信息对应的数据和第二指令信息对应的数据,进一步提高了处理效率,从而提高了整个处理器的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种处理器的结构示意图。
图2是本申请实施例提供的一种缓冲器的结构示意图。
图3是本申请实施例提供的一种数据处理方法的流程图。
图4是本申请实施例提供的另一种数据处理方法的流程图。
图5是相关技术提供的一种指令执行方法的流程图。
图6是相关技术提供的一种指令执行时间的示意图。
图7是相关技术提供的另一种指令执行时间的示意图。
图8是本申请实施例提供的一种指令执行方法的流程图。
图9是本申请实施例提供的一种指令执行时间的示意图。
图10是本申请实施例提供的另一种指令执行方法的流程图。
图11是本申请实施例提供的再一种指令执行方法的流程图。
图12是本申请实施例提供的一种终端的结构示意图。
图13是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一块指令信息称为第二指令信息,且类似地,可将第二指令信息称为第一指令信息。
其中,至少一个是指一个或者一个以上,例如,至少一个模块可以是一个模块、两个模块、三个模块等任一大于等于一的整数个模块。多个是指两个或者两个以上,例如,多个模块可以是两个模块、三个模块等任一大于等于二的整数个模块。每个是指至少一个中的每一个,例如,每个模块是指多个模块中的每一个模块,若多个模块为3个模块,则每个模块是指3个模块中的每一个模块。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号(包括但不限于用户终端与其他设备之间传输的信号等),均为经用户或相关方面充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本申请实施例提供了一种处理器,该处理器应用于计算机设备中,该计算机设备可以为服务器或者终端。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。
本申请实施例提供了一种处理器,该处理器应用于计算机设备中,该处理器包括缓冲器和按顺序连接的多个模块,该多个模块用于实现不同功能,该多个模块中包括目标模块。
其中,目标模块用于在按照第一指令信息处理第一数据的时长达到预设时长但还未处理完成的情况下,将第一指令信息传入缓冲器,接收目标模块的上一个模块传入的第二指令信息和第二数据,并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,在将第一数据处理完成后,将第一数据的第一处理结果传入缓冲器。其中,缓冲器用于缓存第一指令信息,在接收到第一处理结果后,将第一指令信息和第一处理结果传入目标模块的下一个模块。
该处理器中按顺序连接的多个模块构成一条流水线,该流水线是用于执行任意一条指令的完整流水线,指令的执行过程从第一个模块开始到最后一个模块结束。在该流水线中,每个模块所实现的功能不同,也即是,每个模块仅负责一条指令的整个执行过程中的一部分。其中,对于待执行的任一条指令,该指令的指令信息会从第一个模块依次传递到最后一个模块,该指令信息用于指示指令,指令信息包括指令类型以及指令的最终处理结果的存储地址等。每个模块根据指令信息,对上一个模块传入的处理结果进行处理,得到该模块的处理结果,然后将指令信息和当前的处理结果继续传入下一个模块中,直至最后一个模块完成处理,从而完成该指令的整个执行过程。
另外,由于该多个模块是以流水线的形式来执行指令的,所以该多个模块可以并行地处理不同的指令。例如,以相邻的模块A和模块B为例,模块A负责读取指令信息,模块B负责对指令信息进行译码。模块A在读取某一指令的指令信息后,将该指令信息传入模块B,在模块B对该指令信息进行译码的同时,模块A可以读取下一条指令的指令信息。需要说明的是,该多个模块中的每个模块在同一时间只能有一条指令的指令信息,只有在将该指令的指令信息传递出去后,才能接收下一条指令的指令信息。
本申请实施例中,多个模块中包括目标模块,该目标模块可以为该多个模块中的任意一个或者多个模块。针对该目标模块来说,目标模块接收上一个模块传入的第一指令信息和第一数据,该第一指令信息为第一指令的指令信息,例如第一指令信息包括第一指令的指令类型、指令标识或者第一指令的最终处理结果的存储地址等。该第一数据为该第一指令对应的待处理数据或者在执行第一指令过程中产生的中间结果数据。目标模块按照该第一指令信息,对该第一数据进行处理,如果处理时长达到预设时长但是还未处理完成,则在继续处理第一数据的同时,先将该第一指令信息传入缓冲器。由于已经将该第一指令信息传递出去,则目标模块可以正常接收上一个模块传入的第二指令信息和第二数据,该第二指令信息为第二指令的指令信息,该第二指令为第一指令的下一条指令,该第二数据为第二指令对应的待处理数据或者在执行第二指令过程中产生的中间结果数据。此时,目标模块可以并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据。例如,第一指令信息指示除法指令,第二指令信息指示加法指令,则目标模块可以并行地对第一数据进行除法运算和对第二数据进行加法运算,此时第一数据和第二数据的处理过程是相互独立的且互不干扰。
在目标模块将第一数据处理完成后,得到第一处理结果,该第一处理结果为第一数据的处理结果。目标模块将该第一处理结果也传入缓冲器中。其中,缓冲器在接收到目标模块传入的第一指令信息后,缓存该第一指令信息,并等待该第一指令信息对应的第一处理结果,在接收到目标模块传入的第一处理结果后,就可以将该第一指令信息和第一处理结果传入目标模块的下一个模块中,由下一个模块继续进行处理,直至得到最终处理结果,完成第一指令的整个执行过程。
需要说明的是,本申请实施例中的第一指令信息指示的第一指令和第二指令信息指示的第二指令是两个相互独立的指令,第一指令和第二指令是两个不同类型的指令,且第一指令的执行过程中所使用的数据和所产生的数据,与第二指令的执行过程中所使用的数据和所产生的数据也互不相同,所以第一指令的执行过程和第二指令的执行过程是互不干扰的,因此目标模块才可以并行地对第一数据和第二数据进行处理。
在一些实施例中,图1是本申请实施例提供的一种处理器的结构示意图,如图1所示,处理器包括按顺序连接的多个模块,该多个模块包括按顺序连接的取指模块101、译码模块102、执行模块103、访存模块104和回写模块105,处理器还包括缓冲器106和寄存器组107,该执行模块103和该访存模块104为目标模块。其中,取指模块101与译码模块102连接,译码模块102与执行模块103连接,执行模块103与访存模块104连接,访存模块104与回写模块105连接。执行模块103和访存模块104分别与缓冲器106连接,缓冲器106还与回写模块105连接,译码模块102和回写模块105分别与寄存器组107连接。
在一种可能实现方式中,回写模块105包括第一回写端口和第二回写端口,第一回写端口与缓冲器106连接,第二回写端口与访存模块104连接。第一回写端口用于将缓冲器106传入的数据回写至寄存器组107,第二回写端口用于将访存模块104传入的数据回写至寄存器组107。
在一种可能实现方式中,如图2所示,缓冲器106包括多个缓存空间1061,每个缓存空间1061用于存储一条指令的指令信息。
在一种可能实现方式中,目标模块包括多个处理器件,每个处理器件用于处理不同类型的指令,如图2所示,缓冲器106包括多个传输接口1062,每个传输接口分别与目标模块中的一个处理器件连接,传输接口1062用于将处理器件得到的处理结果传入缓冲器106。
在一种可能实现方式中,如图2所示,缓冲器106还包括输入接口1063和输出接口1064,输入接口1063用于将目标模块中的指令信息传入缓冲器106,输出接口1064用于将缓冲器106中的指令信息和处理结果传入目标模块的下一个模块。
在一种可能实现方式中,如图2所示,缓冲器106还包括仲裁器件1065,该仲裁器件1065用于在多个传输接口同时传入不同指令信息对应的处理结果的情况下,确定每个指令信息对应的处理结果的处理顺序。
以下结合图3和图4所示的数据处理方法的流程图,对图1和图2所示的每个模块以及缓冲器所执行的步骤进行介绍。
图3是本申请实施例提供的一种数据处理方法的流程图,本申请实施例由计算机设备执行,该计算机设备中包括图1所示的处理器,该计算机设备还包括存储器。参见图3,该方法包括以下步骤。
301、计算机设备通过取指模块,在存储器中读取第一指令信息,将第一指令信息传入译码模块。
取指模块用于在存储器中读取指令的指令信息。计算机设备通过取指模块,获取指令地址,在存储器中的该指令地址指示的存储空间中读取第一指令信息,该第一指令信息指示第一指令。在读取第一指令信息后,对该指令地址进行更新,得到下一条指令的指令地址。
其中,存储器中存储的第一指令信息为未译码的指令信息,计算机设备在通过取指模块读取该第一指令信息后,由该取指模块将该第一指令信息传入取指模块的下一个模块,也即是传入译码模块。
需要说明的是,在取指模块将第一指令信息传入译码模块后,该取指模块即可在存储器中读取下一条指令的指令信息,以第一指令的下一条指令为第二指令为例,取指模块在存储器中读取第二指令信息,该第二指令信息指示第二指令。
302、计算机设备通过译码模块,对第一指令信息进行译码,在寄存器组中读取第一指令信息对应的第一数据,将译码后的第一指令信息和第一数据传入目标模块。
计算机设备通过译码模块接收取指模块传入的第一指令信息,由译码模块对第一指令信息进行译码,得到译码后的第一指令信息,本申请实施例中后续所说的第一指令信息,均是指经译码模块译码后的第一指令信息。
该第一指令信息中包括寄存器标识,该寄存器标识指示用于存储该第一指令对应的待处理数据的寄存器。译码模块在获取到寄存器标识后,在寄存器组中确定该寄存器标识指示的寄存器,在该寄存器中读取第一指令信息对应的第一数据,该第一数据即为待处理数据。例如第一指令信息指示的指令为加法指令,该第一数据为待进行加法运算的两个数值。
译码模块在获取到译码后的第一指令信息和第一数据后,将该第一指令信息和第一数据传入该译码模块的下一个模块,也即是传入目标模块。
需要说明的是,在译码模块将第一指令信息和第一数据传入目标模块后,该译码模块即可接收取指模块传入的第二指令信息,对第二指令信息进行译码,在寄存器组中读取第二指令信息对应的第二数据。
303、计算机设备通过目标模块,按照第一指令信息处理第一数据,在处理时长达到预设时长但还未处理完成的情况下,将第一指令信息传入缓冲器,接收译码模块传入的第二指令信息和第二数据,并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,在将第一数据处理完成后,将第一数据的第一处理结果传入缓冲器。
计算机设备通过目标模块接收到第一指令信息和第一数据后,该目标模块按照第指令信息处理第一数据。其中,目标模块中包括多个处理器件,每个处理器件用于实现不同的功能,例如,目标模块包括加法器、乘法器以及除法器等,如果第一指令信息指示加法指令,则由加法器对第一数据进行加法运算,如果第一指令信息指示乘法指令,则由乘法器对第一数据进行乘法运算。
本申请实施例中,在目标模块对第一数据进行处理的过程中,如果处理时长达到预设时长但还未处理完成,则目标模块先将第一指令信息传入缓冲器。可选地,该预设时长为一个时钟周期等。
目标模块在将第一指令信息传入缓冲器的同时,继续对第一数据进行处理,此时目标模块中未持有指令信息,因此目标模块在处理第一数据的过程中,还可以接收译码模块传入的第二指令信息和第二数据。其中,该第一指令信息指示的指令与第二指令信息指示的指令不同,且第一数据与第二数据也相互独立。因此,目标模块可以并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据。例如,第一指令信息指示除法指令,第二指令信息指示加法指令,则目标模块中的除法器可以对第一数据进行除法运算,同时目标模块中的加法器可以对第二数据进行加法运算。
目标模块在将第一数据处理完成后,得到第一处理结果,将该第一处理结果传入缓冲器中。需要说明的是,由于第一数据的处理过程和第二数据的处理过程是并行执行,相互独立的,因此可能第一数据先处理完成,也可能第二数据先处理完成,本申请实施例对此不做限定。
在一种可能实现方式中,该目标模块是由执行模块和访存模块构成的,该步骤303中目标模块所执行的步骤是由执行模块和访存模块协同完成的。针对不同类型的指令,执行模块和访存模块所执行的步骤也存在区别,执行模块负责数据的运算,访存模块负责对存储器进行读写。其中,下面分别以第一指令信息指示的指令为非访存指令或访存指令为例,进行详细说明。
第一种情况:第一指令信息指示的指令为非访存指令且属于预设类型,属于预设类型的非访存指令对应的运算时长大于预设时长,例如该第一指令信息指示除法指令,除法指令对应的运算时长大于该预设时长。则该步骤303包括下述步骤3011和步骤3012。
3011、计算机设备通过执行模块,按照第一指令信息对第一数据进行运算,在运算时长达到预设时长的情况下,将第一指令信息传入访存模块,接收译码模块传入的第二指令信息和第二数据,并行地按照第一指令信息对第一数据进行运算和按照第二指令信息对第二数据进行运算,在将第一数据运算完成后,得到第一处理结果,将第一处理结果传入缓冲器。
在译码模块获取到第一指令信息和第一数据后,将该第一指令信息和第一数据传入执行模块,执行模块按照第一指令信息对第一数据进行运算。由于该第一指令信息指示的指令属于预设类型的非访存指令,因此第一指令信息对应的第一数据的运算时长大于预设时长,在第一数据的运算时长达到预设时长时,该第一数据还未运算完成,因此执行模块将第一指令信息传入访存模块,并继续对第一数据进行处理,由于此时执行模块中未持有指令信息,因此执行模块在处理第一数据的过程中,还可以接收译码模块传入的第二指令信息和第二数据。因此,执行模块可以并行地按照第一指令信息对第一数据进行运算和按照第二指令信息对第二数据进行运算。
执行模块在将第一数据运算完成后,得到第一处理结果,将该第一处理结果传入缓冲器中。
3012、计算机设备通过访存模块,用于在接收到第一指令信息后,将第一指令信息传入缓冲器。
计算机设备通过访存模块接收执行模块传入的第一指令信息,在访存模块查询到该第一指令信息指示的指令属于预设类型的非访存指令时,无需等待执行模块传入第一处理结果,直接将该第一指令信息传入缓冲器中即可。
需要说明的是,由于执行模块对第一数据进行运算需要的时间较长,因此访存模块会先将第一指令信息传入缓冲器中,等到执行模块将第一数据运算完成得到第一处理结果后,才能将第一处理结果传入缓冲器中。
第二种情况:第一指令信息指示的指令为访存指令,访存指令对应的读写时长大于预设时长。则该步骤303包括下述步骤3021和步骤3022。
3021、计算机设备通过执行模块,按照第一指令信息对第一数据进行运算,在将第一数据运算完成后,得到第一中间结果,将第一指令信息和第一中间结果传入访存模块,第一中间结果为访存地址。
在译码模块获取到第一指令信息和第一数据后,将该第一指令信息和第一数据传入执行模块,执行模块按照第一指令信息对第一数据进行运算。在第一指令信息指示的指令为访存指令的情况下,对该第一数据进行运算所得到的第一中间结果为访存地址。执行模块将该第一指令信息和第一中间结果传入访存模块中。
3022、计算机设备通过访存模块,按照第一指令信息,基于第一中间结果对存储器进行读写,在读写时长达到预设时长的情况下,将第一指令信息传入缓冲器,接收执行模块传入的第二指令信息和第二中间结果,并行地处理第一中间结果和第二中间结果,在基于第一中间结果读写完成后,得到第一处理结果,将第一处理结果传入缓冲器。
访存模块接收到执行模块传入的第一指令信息和第一中间结果后,按照该第一指令信息,基于该第一中间结果对存储器进行读写。由于该第一指令信息指示的指令为访存指令,因此第一指令信息对应的读写时长大于预设时长,基于第一中间结果对存储器进行读写的时长达到预设时长时,还未读写完成,因此访存模块先将第一指令信息传入缓冲器,并继续对存储器进行读写,由于此时访存模块中未持有指令信息,因此访存模块在对存储器进行读写的过程中,还可以接收执行模块传入的第二指令信息和第二中间结果。因此,访存模块可以并行地处理第一中间结果和第二中间结果。
访存模块在基于第一中间结果读写完成后,得到第一处理结果,将第一处理结果传入缓冲器。
在一种可能实现方式中,第二指令信息指示的指令为非访存指令且不属于预设类型,不属于预设类型的非访存指令对应的运算时长不大于预设时长。则针对第二指令信息指示的指令,计算机设备通过执行模块,在将第二数据运算完成后,得到第二处理结果,将第二指令信息和第二处理结果传入访存模块。计算机设备通过访存模块,在接收到第二指令信息和第二处理结果后,将第二指令信息和第二处理结果传入回写模块。
304、计算机设备通过缓冲器,缓存第一指令信息,在接收到第一处理结果后,将第一指令信息和第一处理结果传入回写模块。
缓冲器在接收到访存模块传入的第一指令信息后,将该第一指令信息缓存,等待第一指令信息对应的第一处理结果,在接收到执行模块或者访存模块传入的第一处理结果后,将该第一指令信息和第一处理结果传入回写模块。
305、计算机设备通过回写模块,按照第一指令信息将第一处理结果回写至寄存器组。
回写模块获取到第一指令信息和第一处理结果后,按照第一指令信息将第一处理结果回写至寄存器组。其中,第一指令信息包括第一指令的最终处理结果的存储地址,该存储地址为寄存器标识,回写模块在寄存器组中确定该寄存器标识指示的寄存器,将该第一处理结果回写至该寄存器中。其中,该第一处理结果可以为其他指令对应的待处理数据。
在一种可能实现方式中,回写模块包括第一回写端口,第一回写端口与缓冲器连接。则上述步骤304-步骤305中,第一指令信息和第一处理结果的回写过程,包括:计算机设备通过缓冲器,缓存第一指令信息,在接收到第一处理结果后,将第一指令信息和第一处理结果传入第一回写端口。计算机设备通过第一回写端口,按照第一指令信息,将第一处理结果回写至寄存器组。
在一种可能实现方式中,回写模块包括第二回写端口,第二回写端口与访存模块连接。则第二指令信息和第二处理结果的回写过程,包括:计算机设备通过访存模块,在接收到第二指令信息和第二处理结果后,将第二指令信息和第二处理结果传入第二回写端口。计算机设备通过第二回写端口,按照第二指令信息,将第二处理结果回写至寄存器组。
本申请实施例中,在回写模块中设置了第一回写端口和第二回写端口,第一回写端口用于回写缓冲器中的指令信息和处理结果,第二回写端口用于回写访存模块中的指令信息和处理结果,通过区分回写端口,可以避免在并行地处理数据的情况下发生冲突。
本申请实施例提供的方法,在处理器中增加了一个缓冲器,在多个模块依次按照第一指令信息处理对应的数据的过程中,如果在目标模块的处理时长较长,则在按照第一指令信息处理第一数据的时长达到预设时长后,目标模块先将第一指令信息暂时存放在缓冲器中。由于该目标模块已经将第一指令信息传入缓冲器,因此该目标模块可以接收下一个第二指令信息和第二数据,并同时按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,当第一数据处理完成后,将第一数据的第一处理结果也传入缓冲器,然后由缓冲器将第一指令信息和对应的第一处理结果同步传入下一个模块。因此本申请中,即使第一指令的处理时长较长,也不会阻塞第二指令的处理过程,提高了处理效率,并且同步处理第一指令信息对应的数据和第二指令信息对应的数据,进一步提高了处理效率,从而提高了整个处理器的效率。
图4是本申请实施例提供的另一种数据处理方法的流程图。本申请实施例由计算机设备执行,该计算机设备中包括图1所示的处理器,该计算机设备还包括存储器。参见图4,该方法包括以下步骤。
401、计算机设备通过取指模块,在存储器中读取第一指令信息。
该步骤401的过程与上述步骤301的过程同理,在此不再赘述。
402、计算机设备通过译码模块,对第一指令信息进行译码,在寄存器组中读取第一指令信息对应的第一数据。
该步骤402的过程与上述步骤302的过程同理,在此不再赘述。
403、计算机设备通过目标模块,按照第一指令信息处理第一数据,在处理时长达到预设时长但还未处理完成的情况下,将第一指令信息传入缓冲器。
该步骤403的过程与上述步骤303的过程同理,在此不再赘述。
404、计算机设备通过缓冲器,接收第一指令信息,在多个缓存空间中确定处于空闲状态的目标缓存空间,将第一指令信息缓存至目标缓存空间,生成目标缓存空间的空间标识,向目标模块返回空间标识。
缓冲器中包括多个缓存空间,一个缓存空间用于存储一个指令的指令信息。可选地,缓冲器中缓存空间的个数可以按照芯片面积、长周期指令的出现频次、长周期指令的处理时长等进行综合考量来设计,例如缓冲器中包括8个缓存空间。长周期指令是指处理时长大于预设时长的指令。
缓冲器接收到第一指令信息后,在多个缓存空间中确定处于空闲状态的目标缓存空间,例如多个缓存空间按顺序排列,将处于空闲状态的第一个缓存空间确定为目标缓存空间,缓冲器将该第一指令信息缓存至目标缓存空间中。另外,为了后续接收到目标模块传入的第一处理结果时能够查找到对应的第一指令信息,缓冲器还将该目标缓存空间的空间标识返回给目标模块。
可选地,缓冲器通过图2所示的输入接口接收目标模块传入的第一指令信息。
405、计算机设备通过目标模块接收缓冲器返回的空间标识,接收译码模块传入的第二指令信息和第二数据,并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,在将第一数据处理完成后,将第一数据的第一处理结果和该空间标识传入缓冲器。
该步骤405的过程与上述步骤303的过程同理,在此不再赘述。
在一种可能实现方式中,目标模块包括多个处理器件,每个处理器件用于处理不同类型的指令,缓冲器包括多个传输接口,每个传输接口分别与目标模块中的一个处理器件连接。计算机设备通过不同的处理器件,并行地按照第一指令信息处理第一数据和按照第二指令信息处理第二数据。计算机设备通过处理器件,在得到第一处理结果后,调用与该处理器件连接的传输接口,将第一处理结果传入缓冲器。
例如,缓冲器包括第一传输接口、第二传输接口和第三传输接口,第一传输接口与目标模块中的除法器连接,在第一指令信息为除法指令的情况下,除法器在对第一数据进行除法运算得到第一处理结果后,除法器调用该第一传输接口将第一处理结果传入缓冲器。第二传输接口与目标模块中的读写器件连接,在第一指令信息为访存指令的情况下,读写器件基于第一中间结果对存储器进行读写,读写完成后得到第一处理结果,调用第二传输接口将第一处理结果传入缓冲器。第三传输接口与目标器件连接,该目标器件用于执行除了除法指令和访存指令之外的其他长周期指令,在目标器件得到第一处理结果后,调用该第三传输接口将第一处理结果传入缓冲器。
406、计算机设备通过缓冲器,接收第一处理结果和空间标识,在空间标识指示的目标缓存空间中获取第一指令信息,将第一指令信息和第一处理结果传入回写模块。
缓冲器接收目标模块传入的第一处理结果和空间标识,在多个缓存空间中确定该空间标识指示的目标缓存空间,获取该目标缓存空间中的第一指令信息,将该第一指令信息和第一处理结果传入回写模块。
在一种可能实现方式中,缓冲器还包括仲裁器件,计算机设备通过仲裁器件,在多个传输接口同时传入不同指令信息对应的处理结果的情况下,确定每个指令信息对应的处理结果的处理顺序。
如果缓冲器中同时传入了多个不同指令信息对应的处理结果,由仲裁器件确定每个指令信息对应的处理结果的处理顺序,按照处理顺序,依次针对多个处理结果分别执行该步骤406。
本申请实施例中,在一个时钟周期中,缓冲器仅能对一个指令信息对应的处理结果进行处理,通过仲裁器件来确定处理顺序,从而节省了硬件面积。
407、计算机设备通过回写模块,按照第一指令信息将第一处理结果回写至寄存器组。
该步骤407的过程与上述步骤305的过程同理,在此不再赘述。
本申请实施例提供的方法,在处理器中增加了一个缓冲器,在多个模块依次按照第一指令信息处理对应的数据的过程中,如果在目标模块的处理时长较长,则在按照第一指令信息处理第一数据的时长达到预设时长后,目标模块先将第一指令信息暂时存放在缓冲器中。由于该目标模块已经将第一指令信息传入缓冲器,因此该目标模块可以接收下一个第二指令信息和第二数据,并同时按照第一指令信息处理第一数据和按照第二指令信息处理第二数据,当第一数据处理完成后,将第一数据的第一处理结果也传入缓冲器,然后由缓冲器将第一指令信息和对应的第一处理结果同步传入下一个模块。因此本申请中,即使第一指令的处理时长较长,也不会阻塞第二指令的处理过程,提高了处理效率,并且同步处理第一指令信息对应的数据和第二指令信息对应的数据,进一步提高了处理效率,从而提高了整个处理器的效率。
相关技术中,处理器为五级顺序流水线处理器,五级顺序流水线处理器包括取指模块、译码模块、执行模块、访存模块和回写模块。图5为五级顺序流水线处理器执行指令的流程图,如图5所示,取指模块根据指令地址在存储器中读取指令信息,将指令信息传入译码模块,译码模块通过译码器对指令信息进行译码,根据译码后的指令信息在寄存器组中获取待处理数据,将指令信息和待处理数据传入执行模块,执行模块按照指令信息对待处理数据进行运算,将指令信息和运算结果传入访存模块,如果该指令信息指示非访存指令,则访存模块直接将指令信息和运算结果传入回写模块,如果该指令信息指示访存指令,则访存模块基于运算结果对存储器进行读写,得到读写结果,将指令信息和读写结果传入回写模块,回写模块根据指令信息,将运算结果或读写结果回写至寄存器组中。
从图5可以看出,该处理器为一个顺序发射、顺序提交、顺序完成的架构,每一条指令按照先后顺序逐级运行,最终的处理结果也按照执行顺序依次回写至寄存器组。其中,按照该执行方式,该处理器中的每条指令的执行时间如图6所示,图6的横坐标为时间,纵坐标为指令序列,C1表示1个时钟周期,C2表示2个时钟周期,C3表示3个时钟周期,以此类推,Cn表示n个时钟周期,n为正整数。任意一个模块在处理完一个指令后,接着处理下一个指令。在各个指令的处理时长均不大于时钟周期的情况下,每一条指令在每一个模块中所消耗的时长均为1个时钟周期。
但是,如果指令中存在长周期指令,长周期指令的处理时长大于1个时钟周期,例如长周期指令为除法指令或者访存指令等,则访存模块会卡在长周期指令的处理过程中,无法处理后续的指令,导致了指令阻塞,造成整个处理器的效率低下。以分别执行除法指令、加法指令1和加法指令2为例,则该处理器中的每条指令的执行时间如图7所示,除法指令的指令信息会卡在访存模块中,等待执行模块的除法运算结果,在访存模块接收到执行模块的除法运算结果后,才能将除法指令的指令信息和除法运算结果传入回写模块,导致访存模块耗费了14个时钟周期。在此过程中,加法指令1的指令信息和处理结果只能在执行模块中等待,无法传入访存模块,也耗费了14个时钟周期,进而导致加法指令2的指令信息在译码模块中等待,无法传入执行模块,同样耗费了14个时钟周期,因此造成了处理器的运行效率低下。
而本申请实施例提供的方法中,在执行长周期指令时,会先将长周期指令的指令信息缓存在缓冲器中,以避免阻塞问题。图8为本申请实施例提供的处理器执行指令的流程图,如图8所示,取指模块根据指令地址在存储器中读取长周期指令信息,将长周期指令信息传入译码模块,译码模块通过译码器对长周期指令信息进行译码,根据译码后的长周期信息在寄存器组中获取待处理数据,将长周期指令信息和待处理数据传入执行模块,执行模块按照长周期指令信息对待处理数据进行运算。如果长周期指令信息指示非访存指令,执行模块在未运算完成时,将长周期指令信息传入访存模块,访存模块将长周期指令信息传入缓冲器,等执行模块运算完成后,将运算结果传入缓冲器,由缓冲器将长周期指令信息和运算结果传入第一回写端口,第一回写端口根据长周期指令信息将运算结果回写至寄存器组。如果长周期指令信息指示访存指令,执行模块在运算完成后,将长周期指令信息和运算结果传入访存模块,访存模块基于运算结果对存储器进行读取,在还未读取完成时,先将长周期指令信息传入缓冲器,在读取完成后,再将读取结果传入缓冲器,由缓冲器将长周期指令信息和读取结果传入第一回写端口,第一回写端口根据长周期指令信息将读取结果回写至寄存器组。
对于长周期指令,则按照上述方式执行,对于短周期指令,则按照与相关技术相同的方式执行。其中,以分别执行除法指令、加法指令1和加法指令2为例,按照该执行方式,该处理器中的每条指令的执行时间如图9所示,除法指令的指令信息会暂时存放在缓冲器中,因此加法指令1和加法指令2的执行过程不会受到除法指令的执行过程的影响而造成阻塞,提高了处理器的运行效率。从图9中可以看出,本申请实施例提供的处理器还是顺序发射、顺序提交的架构,但是完成顺序可能会出现乱序,先执行的除法指令会进入缓冲器中等待结果,而后执行的两条加法指令会先进入回写模块完成回写,除法指令在第17个时钟周期才得到处理结果进入回写模块完成回写,因此本申请实施例提供的处理器是一种顺序发射、乱序完成的架构。
图10是本申请实施例提供的另一种指令执行方法的流程图,以短周期指令的执行过程为例,短周期指令是指处理时长不大于预设时长的指令。如图10所示,该方法包括以下步骤:步骤1、在取指模块中完成对指令信息的读取;步骤2、在译码模块完成对指令信息的译码,并从寄存器组中读取待处理数据;步骤3、在执行模块完成对待处理数据的运算;步骤4、在访存模块中将指令信息和运算结果传入回写模块;步骤5、在回写模块中将运算结果回写至寄存器组。
图11是本申请实施例提供的再一种指令执行方法的流程图,以长周期指令的执行过程为例,长周期指令是指处理时长大于预设时长的指令。如图11所示,该方法包括以下步骤:步骤1、在取指模块中完成对指令信息的读取;步骤2、在译码模块完成对指令信息的译码,并从寄存器组中读取待处理数据;步骤3、在执行模块完成对待处理数据的运算,如果长周期指令为访存指令,则执行模块将指令信息和运算结果同时传入访存模块,如果长周期指令为非访存指令,则执行模块在未运算完成时,先将指令信息传入访存模块;步骤4、如果长周期指令为访存指令,访存模块先将指令信息传入缓冲器,在基于运算结果完成读取后,再将读取结果传入缓冲器,如果长周期指令为非访存指令,则访存模块仅需将指令信息传入缓冲器;步骤5、在缓冲器中缓存指令信息,等接收到运算结果或者读取结果后,将指令信息和对应的运算结果或读取结果传入回写模块,由回写模块将运算结果或读取结果回写至寄存器组。
本申请实施例还提供了一种计算机设备,计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,至少一条计算机程序由处理器加载并执行,以实现如上述数据处理方法中的处理器所执行的操作。
可选地,该计算机设备提供为终端。图12示出了本申请一个示例性实施例提供的终端1200的结构示意图。终端1200包括有:处理器1201和存储器1202。
处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器1201所具有以实现本申请中方法实施例提供的数据处理方法。
在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。可选地,外围设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207和电源1208中的至少一种。
外围设备接口1203可被用于将I/O(Input /Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端1200的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端1200的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在终端1200的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。前置摄像头设置在终端1200的前面板,后置摄像头设置在终端1200的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。
电源1208用于为终端1200中的各个组件进行供电。电源1208可以是交流电、直流电、一次性电池或可充电电池。当电源1208包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还用于支持快充技术。
本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
可选地,该计算机设备提供为服务器。图13是本申请实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,所述存储器1302中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器1301加载并执行以实现上述各个实施例。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的数据处理方法中的处理器所执行的操作。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述实施例的数据处理方法中的处理器所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (18)
1.一种处理器,其特征在于,所述处理器包括缓冲器和按顺序连接的多个模块,所述多个模块用于实现不同功能,所述多个模块包括按顺序连接的取指模块、译码模块、执行模块、访存模块和回写模块,所述处理器还包括寄存器组,所述执行模块和所述访存模块为目标模块;
所述取指模块,用于在存储器中读取第一指令信息;
所述译码模块,用于对所述第一指令信息进行译码,在所述寄存器组中读取所述第一指令信息对应的第一数据;
所述目标模块,用于按照所述第一指令信息处理所述第一数据,在处理时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器;其中,所述第二指令信息指示的第二指令为所述第一指令信息指示的第一指令的下一条指令,所述第一指令和所述第二指令是两个相互独立且不同类型的指令,所述第一指令的执行过程中所使用及产生的数据与所述第二指令的执行过程中所使用及产生的数据互不相同,所述第一指令的执行过程和第二指令的执行过程互不干扰;
所述目标模块,还用于在将所述第二数据处理完成后,将所述第二指令信息和所述第二数据的第二处理结果传入所述回写模块,所述第二数据的处理时长未超出所述预设时长;
所述缓冲器,用于缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述回写模块;
所述回写模块,用于按照所述第一指令信息将所述第一处理结果回写至所述寄存器组;所述回写模块,还用于按照所述第二指令信息将所述第二处理结果回写至所述寄存器组。
2.根据权利要求1所述的处理器,其特征在于,所述第一指令信息指示的指令为非访存指令且属于预设类型,属于所述预设类型的非访存指令对应的运算时长大于所述预设时长;
所述执行模块,用于按照所述第一指令信息对所述第一数据进行运算,在运算时长达到所述预设时长的情况下,将所述第一指令信息传入所述访存模块,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息对所述第一数据进行运算和按照所述第二指令信息对所述第二数据进行运算,在将所述第一数据运算完成后,得到所述第一处理结果,将所述第一处理结果传入所述缓冲器;
所述访存模块,用于在接收到所述第一指令信息后,将所述第一指令信息传入所述缓冲器。
3.根据权利要求1所述的处理器,其特征在于,所述第一指令信息指示的指令为访存指令,所述访存指令对应的读写时长大于所述预设时长;
所述执行模块,用于按照所述第一指令信息对所述第一数据进行运算,在将所述第一数据运算完成后,得到第一中间结果,将所述第一指令信息和所述第一中间结果传入所述访存模块,所述第一中间结果为访存地址;
所述访存模块,用于按照所述第一指令信息,基于所述第一中间结果对所述存储器进行读写,在读写时长达到所述预设时长的情况下,将所述第一指令信息传入所述缓冲器,接收所述执行模块传入的第二指令信息和第二中间结果,并行地处理所述第一中间结果和所述第二中间结果,在基于所述第一中间结果读写完成后,得到所述第一处理结果,将所述第一处理结果传入所述缓冲器。
4.根据权利要求1所述的处理器,其特征在于,所述回写模块包括第一回写端口,所述第一回写端口与所述缓冲器连接;
所述缓冲器,用于缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述第一回写端口;
所述第一回写端口,用于按照所述第一指令信息,将所述第一处理结果回写至所述寄存器组。
5.根据权利要求1所述的处理器,其特征在于,所述第二指令信息指示的指令为非访存指令且不属于预设类型,不属于所述预设类型的非访存指令对应的运算时长不大于所述预设时长;
所述执行模块,还用于在将所述第二数据运算完成后,得到第二处理结果,将所述第二指令信息和所述第二处理结果传入所述访存模块;
所述访存模块,还用于在接收到所述第二指令信息和所述第二处理结果后,将所述第二指令信息和所述第二处理结果传入所述回写模块。
6.根据权利要求5所述的处理器,其特征在于,所述回写模块包括第二回写端口,所述第二回写端口与所述访存模块连接;
所述访存模块,用于在接收到所述第二指令信息和所述第二处理结果后,将所述第二指令信息和所述第二处理结果传入所述第二回写端口;
所述第二回写端口,用于按照所述第二指令信息,将所述第二处理结果回写至所述寄存器组。
7.根据权利要求1所述的处理器,其特征在于,所述缓冲器包括多个缓存空间;
所述缓冲器,用于接收所述第一指令信息,在所述多个缓存空间中确定处于空闲状态的目标缓存空间,将所述第一指令信息缓存至所述目标缓存空间;
所述缓冲器,还用于生成所述目标缓存空间的空间标识,向所述目标模块返回所述空间标识。
8.根据权利要求7所述的处理器,其特征在于,所述目标模块,用于将所述第一处理结果和所述空间标识传入所述缓冲器;
所述缓冲器,用于接收所述第一处理结果和所述空间标识,在所述空间标识指示的目标缓存空间中获取所述第一指令信息,将所述第一指令信息和所述第一处理结果传入所述回写模块。
9.根据权利要求1所述的处理器,其特征在于,所述目标模块包括多个处理器件,每个处理器件用于处理不同类型的指令,所述缓冲器包括多个传输接口,每个传输接口分别与所述目标模块中的一个处理器件连接;
所述处理器件,用于在得到所述第一处理结果后,调用与所述处理器件连接的传输接口,将所述第一处理结果传入所述缓冲器。
10.根据权利要求9所述的处理器,其特征在于,所述缓冲器还包括仲裁器件;
所述仲裁器件,用于在多个传输接口同时传入不同指令信息对应的处理结果的情况下,确定每个指令信息对应的处理结果的处理顺序。
11.一种数据处理方法,其特征在于,由计算机设备执行,所述计算机设备包括处理器,所述处理器包括缓冲器和按顺序连接的多个模块,所述多个模块用于实现不同功能,所述多个模块包括按顺序连接的取指模块、译码模块、执行模块、访存模块和回写模块,所述处理器还包括寄存器组,所述执行模块和所述访存模块为目标模块;所述方法包括:
通过所述取指模块,在存储器中读取第一指令信息;
通过所述译码模块,对所述第一指令信息进行译码,在所述寄存器组中读取所述第一指令信息对应的第一数据;
通过所述目标模块,按照所述第一指令信息处理所述第一数据,在处理时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器;其中,所述第二指令信息指示的第二指令为所述第一指令信息指示的第一指令的下一条指令,所述第一指令和所述第二指令是两个相互独立且不同类型的指令,所述第一指令的执行过程中所使用及产生的数据与所述第二指令的执行过程中所使用及产生的数据互不相同,所述第一指令的执行过程和第二指令的执行过程互不干扰;
通过所述目标模块,在将所述第二数据处理完成后,将所述第二指令信息和所述第二数据的第二处理结果传入所述回写模块,所述第二数据的处理时长未超出所述预设时长;
通过所述缓冲器,缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述回写模块;
通过所述回写模块,按照所述第一指令信息将所述第一处理结果回写至所述寄存器组;通过所述回写模块,按照所述第二指令信息将所述第二处理结果回写至所述寄存器组。
12.根据权利要求11所述的方法,其特征在于,所述第一指令信息指示的指令为非访存指令且属于预设类型,属于所述预设类型的非访存指令对应的运算时长大于所述预设时长;
所述通过所述目标模块,按照所述第一指令信息处理所述第一数据,在处理时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器,包括:
通过所述执行模块,按照所述第一指令信息对所述第一数据进行运算,在运算时长达到所述预设时长的情况下,将所述第一指令信息传入所述访存模块,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息对所述第一数据进行运算和按照所述第二指令信息对所述第二数据进行运算,在将所述第一数据运算完成后,得到所述第一处理结果,将所述第一处理结果传入所述缓冲器;
通过所述访存模块,在接收到所述第一指令信息后,将所述第一指令信息传入所述缓冲器。
13.根据权利要求11所述的方法,其特征在于,所述第一指令信息指示的指令为访存指令,所述访存指令对应的读写时长大于所述预设时长;
所述通过所述目标模块,按照所述第一指令信息处理所述第一数据,在处理时长达到预设时长但还未处理完成的情况下,将所述第一指令信息传入所述缓冲器,接收所述译码模块传入的第二指令信息和第二数据,并行地按照所述第一指令信息处理所述第一数据和按照所述第二指令信息处理所述第二数据,在将所述第一数据处理完成后,将所述第一数据的第一处理结果传入所述缓冲器,包括:
通过所述执行模块,按照所述第一指令信息对所述第一数据进行运算,在将所述第一数据运算完成后,得到第一中间结果,将所述第一指令信息和所述第一中间结果传入所述访存模块,所述第一中间结果为访存地址;
通过所述访存模块,按照所述第一指令信息,基于所述第一中间结果对所述存储器进行读写,在读写时长达到所述预设时长的情况下,将所述第一指令信息传入所述缓冲器,接收所述执行模块传入的第二指令信息和第二中间结果,并行地处理所述第一中间结果和所述第二中间结果,在基于所述第一中间结果读写完成后,得到所述第一处理结果,将所述第一处理结果传入所述缓冲器。
14.根据权利要求11所述的方法,其特征在于,所述回写模块包括第一回写端口,所述第一回写端口与所述缓冲器连接;
所述通过所述缓冲器,缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述回写模块,包括:
通过所述缓冲器,缓存所述第一指令信息,在接收到所述第一处理结果后,将所述第一指令信息和所述第一处理结果传入所述第一回写端口;
所述通过所述回写模块,按照所述第一指令信息将所述第一处理结果回写至所述寄存器组,包括:
通过所述第一回写端口,按照所述第一指令信息,将所述第一处理结果回写至所述寄存器组。
15.根据权利要求11所述的方法,其特征在于,所述第二指令信息指示的指令为非访存指令且不属于预设类型,不属于所述预设类型的非访存指令对应的运算时长不大于所述预设时长;所述通过所述目标模块,在将所述第二数据处理完成后,将所述第二指令信息和所述第二数据的第二处理结果传入所述回写模块,包括:
通过所述执行模块,在将所述第二数据运算完成后,得到第二处理结果,将所述第二指令信息和所述第二处理结果传入所述访存模块;
通过所述访存模块,在接收到所述第二指令信息和所述第二处理结果后,将所述第二指令信息和所述第二处理结果传入所述回写模块。
16.根据权利要求15所述的方法,其特征在于,所述回写模块包括第二回写端口,所述第二回写端口与所述访存模块连接;
所述通过所述访存模块,在接收到所述第二指令信息和所述第二处理结果后,将所述第二指令信息和所述第二处理结果传入所述回写模块,包括:
通过所述访存模块,在接收到所述第二指令信息和所述第二处理结果后,将所述第二指令信息和所述第二处理结果传入所述第二回写端口;
所述通过所述回写模块,按照所述第二指令信息将所述第二处理结果回写至所述寄存器组,包括:
通过所述第二回写端口,按照所述第二指令信息,将所述第二处理结果回写至所述寄存器组。
17.根据权利要求11所述的方法,其特征在于,所述缓冲器包括多个缓存空间;所述通过所述缓冲器,缓存所述第一指令信息,包括:
通过所述缓冲器,接收所述第一指令信息,在所述多个缓存空间中确定处于空闲状态的目标缓存空间,将所述第一指令信息缓存至所述目标缓存空间;
所述方法还包括:
通过所述缓冲器,生成所述目标缓存空间的空间标识,向所述目标模块返回所述空间标识。
18.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如权利要求1-10任一项所述的处理器所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311121440.8A CN116881194B (zh) | 2023-09-01 | 2023-09-01 | 处理器、数据处理方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311121440.8A CN116881194B (zh) | 2023-09-01 | 2023-09-01 | 处理器、数据处理方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116881194A CN116881194A (zh) | 2023-10-13 |
CN116881194B true CN116881194B (zh) | 2023-12-22 |
Family
ID=88260836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311121440.8A Active CN116881194B (zh) | 2023-09-01 | 2023-09-01 | 处理器、数据处理方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881194B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222209A (ja) * | 1998-11-27 | 2000-08-11 | Matsushita Electric Ind Co Ltd | プロセッサ、コンパイル装置及びコンパイルプログラムを記録している記録媒体 |
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
CN113946368A (zh) * | 2021-10-29 | 2022-01-18 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
CN114217859A (zh) * | 2021-11-16 | 2022-03-22 | 广东赛昉科技有限公司 | 一种乱序提交指令的装置及其方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941644B2 (en) * | 2008-10-16 | 2011-05-10 | International Business Machines Corporation | Simultaneous multi-thread instructions issue to execution units while substitute injecting sequence of instructions for long latency sequencer instruction via multiplexer |
US9678758B2 (en) * | 2014-09-26 | 2017-06-13 | Qualcomm Incorporated | Coprocessor for out-of-order loads |
-
2023
- 2023-09-01 CN CN202311121440.8A patent/CN116881194B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222209A (ja) * | 1998-11-27 | 2000-08-11 | Matsushita Electric Ind Co Ltd | プロセッサ、コンパイル装置及びコンパイルプログラムを記録している記録媒体 |
CN108287730A (zh) * | 2018-03-14 | 2018-07-17 | 武汉市聚芯微电子有限责任公司 | 一种处理器流水线结构 |
CN113946368A (zh) * | 2021-10-29 | 2022-01-18 | 西安微电子技术研究所 | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 |
CN114217859A (zh) * | 2021-11-16 | 2022-03-22 | 广东赛昉科技有限公司 | 一种乱序提交指令的装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116881194A (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110045960B (zh) | 基于芯片的指令集处理方法、装置及存储介质 | |
US20240320009A1 (en) | Data access method and apparatus, and non-transient computer-readable storage medium | |
CN104050040A (zh) | 媒体重放工作负荷调度器 | |
CN116842307B (zh) | 数据处理方法、装置、设备、芯片及存储介质 | |
WO2021109703A1 (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN110597740A (zh) | 共享存储空间的访问方法、装置以及系统和存储介质 | |
CN104035540A (zh) | 在图形渲染期间降低功耗 | |
CN108563468B (zh) | 一种蓝牙音箱数据处理的方法、装置及蓝牙音箱 | |
CN110673944B (zh) | 执行任务的方法和装置 | |
CN105830421B (zh) | 电子装置及其操作方法 | |
CN112416294B (zh) | 处理器及其二进制累加方法和计算机可读介质 | |
CN116881194B (zh) | 处理器、数据处理方法及计算机设备 | |
CN117076346B (zh) | 应用程序数据处理方法、装置及电子设备 | |
CN111626035B (zh) | 一种版面分析方法及电子设备 | |
CN113419702B (zh) | 一种数据累加方法、处理器、电子设备及可读介质 | |
KR100731969B1 (ko) | 복수 경로를 통한 메모리 공유 방법 및 장치 | |
CN115964331A (zh) | 一种数据访问方法、装置及设备 | |
US20180004380A1 (en) | Screen display method and electronic device supporting the same | |
CN109217895A (zh) | 一种射频前端器件的控制方法及终端设备 | |
CN113946624A (zh) | 分布式集群、信息处理方法、装置、电子设备及存储介质 | |
CN113792179A (zh) | 录音波形处理方法、装置、电子终端设备和存储介质 | |
CN116909626B (zh) | 数据处理方法、处理器及计算机设备 | |
WO2016054780A1 (zh) | 异步指令执行装置和方法 | |
CN116935824B (zh) | 音频数据的滤波方法、装置、设备和存储介质 | |
CN117349222A (zh) | 处理器、数据处理方法及计算机设备 |
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 |