CN116643698A - 数据写入方法及装置、电子设备和存储介质 - Google Patents
数据写入方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116643698A CN116643698A CN202310613092.XA CN202310613092A CN116643698A CN 116643698 A CN116643698 A CN 116643698A CN 202310613092 A CN202310613092 A CN 202310613092A CN 116643698 A CN116643698 A CN 116643698A
- Authority
- CN
- China
- Prior art keywords
- data
- branch prediction
- prediction data
- writing
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004927 fusion Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及计算机技术领域,公开了一种数据写入方法及装置、电子设备和存储介质,所述装置包括:至少一个数据接收单元,至少一个数据融合单元和数据写入单元,其中:所述数据接收单元,用于接收数据写入请求方发送的分支预测数据;所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行融合,得到融合分支预测数据;所述数据写入单元,用于在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。本公开实施例提高了存储分支预测数据的效率,提高了系统性能。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据写入方法及装置、电子设备和存储介质。
背景技术
在计算机中,分支预测技术的应用非常广泛,例如在GPU中,分支预测技术可以提高GPU的流水线效率,从而提高程序的执行效率。
在分支预测技术中,会预测分支指令的执行路径,分支指令是一种控制流指令,它根据条件判断来决定程序的执行路径,例如if语句、while语句等。而分支预测数据,用来表征预测的分支指令具体执行的分支。例如,针对if语句,可以通过1表征执行if分支的指令,通过0表征执行else分支的指令。
分支预测数据往往存储到分支预测存储中,在相关技术中,在对分支预测数据进行存储时,效率较低。
发明内容
本公开提出了一种数据写入技术方案。
根据本公开的一方面,提供了一种数据写入装置,包括:至少一个数据接收单元,至少一个数据融合单元和数据写入单元,其中:
所述数据接收单元,用于接收数据写入请求方发送的分支预测数据;
所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行融合,得到融合分支预测数据;
所述数据写入单元,用于在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
在一种可能的实现方式中,所述装置还包括:
有效数据确定单元,用于将所述分支预测数据和线程状态数据进行与操作,得到有效的分支预测数据,所述线程状态数据,用于表征所述分支预测数据对应的线程是否处于有效状态。
在一种可能的实现方式中,所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行或操作,得到融合分支预测数据。
在一种可能的实现方式中,所述数据融合单元,用于获取有效数据确定单元输出的有效的分支预测数据;将多个周期接收到的同一线程束标识的有效的分支预测数据进行或操作,得到融合分支预测数据,所述周期为所述请求方向所述数据接收单元发送分支预测数据的周期。
在一种可能的实现方式中,所述装置还包括:
缓存单元,用于将发送方发送的不同线程束标识的分支预测数据,按照规则排列在对应的缓存位置。
在一种可能的实现方式中,多个所述数据接收单元并行接收不同请求方发送的分支预测数据。
在一种可能的实现方式中,所述装置还包括:
数据选择单元,用于在接收到多个请求方的数据写入信号的情况下,从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,并指示所述数据写入单元进行写入。
在一种可能的实现方式中,所述数据选择单元,用于在接收到多个请求方的数据写入信号的情况下,按照预设的优先级,依次选择出多个请求方的分支预测数据,并指示数据写入单元写入分支预测存储中
根据本公开的一方面,提供了一种数据写入方法,包括:
接收数据写入请求方发送的第一分支预测数据,所述第一分支预测数据对应于第一线程束标识;
在所述第一线程束标识对应的缓存位置中存在第二分支预测数据的情况下,将所述第一分支预测数据和所述第二分支预测数据进行融合,得到融合分支预测数据,并将所述融合分支预测数据写入所述缓存位置;
在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
在一种可能的实现方式中,所述方法还包括:
在所述第一线程束标识对应的缓存位置中不存在分支预测数据的情况下,将所述第一分支预测数据写入所述缓存位置。
在一种可能的实现方式中,所述第一分支预测数据中包含多个线程对应的分支预测数据,所述请求方发送的不同线程束标识的分支预测数据,按照规则排列在对应的缓存位置中。
在一种可能的实现方式中,在接收数据写入请求方发送的第一分支预测数据后,所述方法还包括:
将所述第一分支预测数据和线程状态数据进行与操作,得到有效的第一分支预测数据,所述线程状态数据,用于表征所述第一分支预测数据对应的线程是否处于有效状态。
在一种可能的实现方式中,所述将所述第一分支预测数据和所述第二分支预测数据进行融合,得到融合分支预测数据,包括:
将所述第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据。
在一种可能的实现方式中,所述将所述第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据,包括:
将有效的第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据,所述第二分支预测数据为已缓存的至少一个周期的有效的分支预测数据,所述周期为所述请求方向所述数据接收单元发送分支预测数据的周期。
在一种可能的实现方式中,在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中,包括:
并行接收多个请求方发送的分支预测数据。
在一种可能的实现方式中,所述方法还包括:在接收到多个请求方的数据写入信号的情况下,从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,依次写入分支预测存储中。
在一种可能的实现方式中,所述从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,包括:
按照预设的优先级,依次选择出多个请求方的分支预测数据。
在一种可能的实现方式中,所述方法是以硬件电路实现的。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,数据写入装置包括:至少一个数据接收单元,至少一个数据融合单元和数据写入单元,其中:所述数据接收单元,用于接收数据写入请求方发送的分支预测数据;所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行融合,得到融合分支预测数据;所述数据写入单元,用于在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。由此,通过对请求方发送的同一线程束标识的分支预测数据进行合并,使得请求方无需等待同一线程束标识的所有分支预测数据收集齐再发送,而是可以先发送已有的部分,等后续其它部分收集到后再发送,在此期间可以去执行其它的操作,以提高请求方的执行效率;与此同时,数据写入装置在接收分支预测数据时,无需一直等待同一线程束标识的分支预测数据接收完毕,可以先去接收其它线程束标识的分支预测数据,以提高系统性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的数据写入装置的结构示意图。
图2示出本公开实施例提供的一种缓存数据的排列规则示意图。
图3示出根据本公开实施例的另一种数据写入装置的结构示意图。
图4示出根据本公开实施例的数据写入方法的流程图。
图5示出根据本公开实施例的一种电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的数据写入装置的结构示意图,如图1所示,所述数据写入装置包括:至少一个数据接收单元101,至少一个数据融合单元102和数据写入单元103,其中:所述数据接收单元101,用于接收数据写入请求方发送的分支预测数据;所述数据融合单元102,用于将多次接收到的同一线程束标识的分支预测数据进行融合,得到融合分支预测数据;所述数据写入单元103,用于在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
数据接收单元可以有一个或者多个,用于并行接收不同请求方发送的分支预测数据,数据写入请求方发送分支预测数据时,线程束标识可以作为随路数据,也即请求方每次发送的分支预测数据均会有对应的线程束标识(wrap id)。
线程束标识对应一组线程,分支预测数据用于表征这一组线程执行的分支指令。作为一个示例,线程束标识对应一组共8个线程,那么,分支预测数据可以是8位的数据,举例来说,分支预测数据可以表示为[10101001],其中1和0分别表示分支指令的两个分支,8位数据中每一位对应一个线程。
这里的分支指令具体可以是用于进行图像处理的指令,其所处理的数据包括图像数据,在一个示例中,图像数据可以是图像的颜色数据,例如,图像像素的红绿蓝(RedGreen Blue,RGB)色彩数据;在另一个示例中,图像数据还可以是图形的位置数据,例如,图形的XYZ坐标数据。此外,请求方所请求处理的数据也可以是图像数据,具体也可以是图像的颜色数据,或者图形的XYZ坐标数据。
对于同一线程束标识的分支预测数据,由于其涉及较多线程,各线程执行的分支指令也可能发生变化,因此,请求方可能无法在短时间内完全收集完毕。在本公开实施例中,针对同一线程束标识的分支预测数据,请求方可以多次发送,无需一直等待收集完毕,在此期间可以执行其它操作,例如发送其它线程束标识的分支预测数据,以提高系统性能;且数据写入装置也无需一直等待接收同一线程束标识的分支预测数据,在此期间可以执行其它操作,例如接收其它线程束标识的分支预测数据,以提高系统性能。
在本公开实施例中,针对多次接收到的同一线程束标识的分支预测数据,通过数据融合单元进行融合处理,得到融合分支预测数据,使得多次接收到的同一线程束标识的分支预测数据,经组合后的数据格式保持不变,其占据的存储空间(比特数)保持固定,避免影响后续对其进行缓存以及写入分支预测存储中。
在本公开实施例中,会接收请求方发送的多个线程束标识对应的一组分支预测数据,然后在接收到所述请求方的数据写入信号的情况下,通过数据写入单元,将请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
由此,通过对请求方发送的同一线程束标识的分支预测数据进行合并,使得请求方无需等待同一线程束标识的所有分支预测数据收集齐再发送,而是可以先发送已有的部分,等后续其它部分收集到后再发送,在此期间可以去执行其它的操作,以提高请求方的执行效率;与此同时,数据写入装置在接收分支预测数据时,无需一直等待同一线程束标识的分支预测数据接收完毕,可以先去接收其它线程束标识的分支预测数据,以提高系统性能。
在一种可能的实现方式中,所述装置还包括:缓存单元,用于将发送方发送的不同线程束标识的分支预测数据,按照规则排列在对应的缓存位置。
图2示出本公开实施例提供的一种缓存数据的排列规则示意图,其中,D0-D15为16个线程束标识对应的分支预测数据,线程束0-线程束15为对应的线程束标识。数据写入装置可以按照线程束标识,将分支预测数据写入对应的缓存位置。
图2中示出了16个线程束标识的分支预测数据,最理想的情况是,只需要16个周期(cycle)就可以把16份分支预测数据写完,请求方在发送第16个分支预测数据时添加一个数据写入信号,数据写入装置在接收到数据写入信号后,就可以将这16份数据一起写入分支预测存储中。
而如果请求方必须要把每一个线程束标识的分支预测数据收集齐才下发的话,则会导致系统卡住,例如,请求方下发了数据D1、D2、D3和D4,而D5没有收集完全,请求方就会一直等待D5收集完全,这时请求方无法去进行其它事情,就会一直等待,整个系统就会卡住,请求方会等待其上一级将D5的完整数据发给它,即使后面已经拿到了D6、D7和D8的数据,但是也必须等D5收集完再发。
而在本公开实施例中,即使D5没有收集齐,请求方也可以先把已有的部分发给数据写入装置,当在某个时刻拿到了D5剩余的那部分数据后,请求方只需附带线程束标识将D5剩余部分下发给数据写入装置即可,当请求方确定16个线程束标识的分支预测数据都发完后,在发送最后一个数据时添加一个数据写入信号,并发送给数据写入装置。数据写入装置在发现数据写入信号的情况下,将16份数据一起写入分支预测存储。
在上例中,请求方虽然没有一次性收集齐D5的分支预测数据,但可以先把部分数据发给数据写入装置,待后续收集齐后,再发给数据写入装置,数据写入装置会做一个融合的操作,将多次接收到的同一线程束标识的分支预测数据进行融合。由此,请求方不会因为没有收集齐一部分数据而暂停发送数据,请求方可以发送后续的D6、D7等数据,避免请求方一直等待数据而导致系统卡住,提高了存储分支预测数据的效率。
数据写入信号是由请求方发送的,用于指示数据写入装置将分支预测数据写入分支预测存储中,在请求方将一组分支预测数据收集齐时,会发送数据写入信号给数据写入装置,在某一线程束标识的分支预测数据均为0或者没有分支预测数据的情况下,可无需向数据写入装置下发该线程束标识的分支预测数据。而数据写入装置作为接收端,被动地接收分支预测数据并缓存,在收到数据写入信号的情况下,即将这一组分支预测数据写入分支预测存储中。数据写入装置无需关注这一组数据中有多少个数据是有效的,也无需关注是否有哪些分支预测数据没有发送。
在一种可能的实现方式中,所述装置还包括:有效数据确定单元,用于将所述分支预测数据和线程状态数据进行与操作,得到有效的分支预测数据,所述线程状态数据,用于表征所述分支预测数据对应的线程是否处于有效状态。
由于线程可能并非完全处于有效状态,因此,可以通过线程状态数据来表示其有效状态,作为一个示例,线程束标识对应一组共8个线程,那么,线程状态数据可以是8位的数据,举例来说,线程状态数据可以表示为[11111101],其中1表示有效线程,0表示无效线程,8位数据中每一位对应1个线程。
通过将分支预测数据和线程状态数据进行与操作,即可得到有效的分支预测数据,接上例,线程状态数据表示为[11111101],分支预测数据可以表示为[10101001],在对二者进行与操作后,得到的结果为[10101001]。
在本公开实施例中,通过将分支预测数据和线程状态数据进行与操作,即可得到有效的分支预测数据,提高了写入分支预测存储中的数据的准确性。
在一种可能的实现方式中,所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行或操作,得到融合分支预测数据。
在本公开实施例中,分支预测数据的增加,在GPU内部是一个固定的行为,是从0变为1的过程,例如,请求方在第1次发送的分支预测数据是[00000001],然后下一次发的数据,会把其中的0变成1,而往往不会把1变成0,也就是说,分支预测数据的更改,往往是将无效改成有效,而不会是有效改成无效。
基于此,在将多次接收到的同一线程束标识的分支预测数据进行融合时,可以对分支预测数据进行或操作,得到融合分支预测数据。在一个示例中,请求方在两次发送的同一线程束标识的分支预测数据分别是[00000001]和[00001000],则在将二者进行或操作后,得到的融合分支预测数据为[00001001]。
在本公开实施例中,通过数据融合单元,将多次接收到的同一线程束标识的分支预测数据进行或操作,得到融合分支预测数据,由此,能够快速且准确地将分支预测数据进行融合,提高了分支预测数据融合时的效率和准确率。
在一种可能的实现方式中,所述数据融合单元,用于获取有效数据确定单元输出的有效的分支预测数据;将多个周期接收到的同一线程束标识的有效的分支预测数据进行或操作,得到融合分支预测数据,所述周期为所述请求方向所述数据接收单元发送分支预测数据的周期。
请求方在向数据接收单元发送分支预测数据时,可以按照周期多次向数据接收单元发送。针对每一个周期收到的分支预测数据,有效数据确定单元都可以将分支预测数据和线程状态数据进行与操作,得到有效的分支预测数据。而针对多个周期的有效的分支预测数据,数据融合单元可以将多个周期接收到的同一线程束标识的有效的分支预测数据进行或操作,得到融合分支预测数据。
下面对本实现方式中的完整流程做示例性描述,示例性的,请求方在第一个周期(cycle0)输入线程束标识wrapid=0的分支预测数据(P0)为00010001,线程状态数据为00110011;第三个周期(cycle2)输入wrapid=0的分支预测数据(P0)11001100,线程状态数据为11001100;则融合操作通过公式可以表示为:
P0(wrapid 0)=P0((cycle0)&active_mask(cycle0))|(P0(cycle2)&active_mask(cycle2))
其中,P0(wrapid 0)表示线程束标识为0的融合后的有效的分支预测数据,P0((cycle0)&active_mask(cycle0))表示对第一个周期的分支预测数据和线程状态数据active_mask(cycle0)执行与操作,P0((cycle2)&active_mask(cycle2))表示对第三个周期的分支预测数据和线程状态数据active_mask(cycle2)执行与操作,以确定有效的分支预测数据,|表示或操作。
通过以上公式,上例中融合后的结果为P0=11011101。
在一种可能的实现方式中,多个所述数据接收单元并行接收不同请求方发送的分支预测数据。
在一种可能的实现方式中,所述装置还包括:数据选择单元105,用于在接收到多个请求方的数据写入信号的情况下,从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,并指示所述数据写入单元进行写入。数据写入单元在接收到数据选择单元的指示后,将选择出的分支预测数据写入分支预测存储中,以避免不同请求方的数据写入冲突。
在一种可能的实现方式中,所述数据选择单元,用于在接收到多个请求方的数据写入信号的情况下,按照预设的优先级,依次选择出多个请求方的分支预测数据,并指示数据写入单元写入分支预测存储中。
多个数据接收单元可以通过各自独立的接口来接收不同请求方发送的分支预测数据,因此,可以并行地接收分支预测数据,相应的,数据融合单元也可以有多个,数据融合单元和数据接收单元一一对应;有效数据确定单元也可以有多个,有效数据确定单元和数据接收单元一一对应。
图3示出根据本公开实施例的另一种数据写入装置的结构示意图,如图3所示,数据写入装置包括:3个数据接收单元101,3个有效数据确定单元104,3个数据融合单元102,1个数据选择单元105,1个数据写入单元103。
3个请求方各自向3个数据接收单元发送分支预测数据,三组数据接收单元、有效数据确定单元、数据融合单元,各自独立地并行执行接收数据后的操作,各单元有各自独立的接口,各自处理和发送各自的数据,其功能是相同的。
而在最后数据写入分支预测存储时,在接收到多个请求方的数据写入信号的情况下,可以通过数据选择单元105,按照优先级依次将不同请求方的分支预测数据选择出来,并指示数据写入单元103写入分支预测存储中。这里预设的优先级,可以是按照预设的顺序依次写入,或者,也可以根据实际的业务场景,保证优先级更高的业务场景的分支预测数据优先写入,本公开对此不作限定。
在本公开实施例中,通过多个所述数据接收单元并行接收不同请求方发送的分支预测数据,能够提高收集分支预测数据的效率;并且,在接收到多个请求方的数据写入信号的情况下,按照预设的优先级,依次将多个请求方的分支预测数据写入分支预测存储中,由此,保证了不同请求方的数据不会存在写入冲突,且保证优先级高的分支预测数据优先写入,对业务更友好。
此外,本公开还提供了数据写入方法,用来实现本公开提供的任一种数据写入装置,相应技术方案和描述可参见装置部分的相应记载。
图4示出根据本公开实施例的数据写入方法的流程图,如图4所示,所述方法包括:包括:
S21,接收数据写入请求方发送的第一分支预测数据,所述第一分支预测数据对应于第一线程束标识;
S22,在所述第一线程束标识对应的缓存位置中存在第二分支预测数据的情况下,将所述第一分支预测数据和所述第二分支预测数据进行融合,得到融合分支预测数据,并将所述融合分支预测数据写入所述缓存位置;
S23,在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
在一种可能的实现方式中,所述方法还包括:
在所述第一线程束标识对应的缓存位置中不存在分支预测数据的情况下,将所述第一分支预测数据写入所述缓存位置。
在一种可能的实现方式中,所述第一分支预测数据中包含多个线程对应的分支预测数据,所述请求方发送的不同线程束标识的分支预测数据,按照规则排列在对应的缓存位置中。
在一种可能的实现方式中,在接收数据写入请求方发送的第一分支预测数据后,所述方法还包括:
将所述第一分支预测数据和线程状态数据进行与操作,得到有效的第一分支预测数据,所述线程状态数据,用于表征所述第一分支预测数据对应的线程是否处于有效状态。
在一种可能的实现方式中,所述将所述第一分支预测数据和所述第二分支预测数据进行融合,得到融合分支预测数据,包括:
将所述第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据。
在一种可能的实现方式中,所述将所述第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据,包括:
将有效的第一分支预测数据和所述第二分支预测数据进行或操作,得到融合分支预测数据,所述第二分支预测数据为已缓存的至少一个周期的有效的分支预测数据,所述周期为所述请求方向所述数据接收单元发送分支预测数据的周期。
在一种可能的实现方式中,在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中,包括:
并行接收多个请求方发送的分支预测数据。
在一种可能的实现方式中,所述方法还包括:在接收到多个请求方的数据写入信号的情况下,从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,依次写入分支预测存储中。
在一种可能的实现方式中,所述从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,包括:
按照预设的优先级,依次选择出多个请求方的分支预测数据。
在一种可能的实现方式中,所述方法是以硬件电路实现的。硬件电路中可提供有各种处理电路、存储电路以及其他外围电路。硬件电路可以包括任何数量的硬接线或可配置电路,其中的一些或全部可以包括电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合,这些电子组件、半导体器件和/或逻辑元件部分或全部设置在个人计算机(PC)、服务器、移动电话、平板计算机或能够执行处理器可读指令的其他计算系统中。
在一种可能的实现方式中,本公开提供的数据写入方案可应用于GPU。
在一种可能的实现方式中,所述数据写入方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行所述方法。
此外,本公开还提供了电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种数据写入方法,相应技术方案和描述可参见方法部分的相应记载,不再赘述。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的单元可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图5示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图5,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如微软服务器操作系统(Windows ServerTM),苹果公司推出的基于图形用户界面操作系统(Mac OS XTM),多用户多进程的计算机操作系统(UnixTM),自由和开放原代码的类Unix操作系统(LinuxTM),开放原代码的类Unix操作系统(FreeBSDTM)或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由电子设备1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理的个人信息种类等信息。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (13)
1.一种数据写入装置,其特征在于,包括:至少一个数据接收单元,至少一个数据融合单元和数据写入单元,其中:
所述数据接收单元,用于接收数据写入请求方发送的分支预测数据;
所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行融合,得到融合分支预测数据;
所述数据写入单元,用于在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
有效数据确定单元,用于将所述分支预测数据和线程状态数据进行与操作,得到有效的分支预测数据,所述线程状态数据,用于表征所述分支预测数据对应的线程是否处于有效状态。
3.根据权利要求1所述的装置,其特征在于,所述数据融合单元,用于将多次接收到的同一线程束标识的分支预测数据进行或操作,得到融合分支预测数据。
4.根据权利要求3所述的装置,其特征在于,所述数据融合单元,用于获取有效数据确定单元输出的有效的分支预测数据;将多个周期接收到的同一线程束标识的有效的分支预测数据进行或操作,得到融合分支预测数据,所述周期为所述请求方向所述数据接收单元发送分支预测数据的周期。
5.根据权利要求1所述的装置,其特征在于,所述装置还包括:
缓存单元,用于将发送方发送的不同线程束标识的分支预测数据,按照规则排列在对应的缓存位置。
6.根据权利要求1所述的装置,其特征在于,多个所述数据接收单元并行接收不同请求方发送的分支预测数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
数据选择单元,用于在接收到多个请求方的数据写入信号的情况下,从多个请求方的分支预测数据中依次选择出要写入的分支预测数据,并指示所述数据写入单元进行写入。
8.根据权利要求7所述的装置,其特征在于,所述数据选择单元,用于在接收到多个请求方的数据写入信号的情况下,按照预设的优先级,依次选择出多个请求方的分支预测数据,并指示数据写入单元写入分支预测存储中。
9.一种数据写入方法,其特征在于,包括:
接收数据写入请求方发送的第一分支预测数据,所述第一分支预测数据对应于第一线程束标识;
在所述第一线程束标识对应的缓存位置中存在第二分支预测数据的情况下,将所述第一分支预测数据和所述第二分支预测数据进行融合,得到融合分支预测数据,并将所述融合分支预测数据写入所述缓存位置;
在接收到所述请求方的数据写入信号的情况下,将所述请求方发送的多个线程束标识对应的一组分支预测数据写入分支预测存储中。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述第一线程束标识对应的缓存位置中不存在分支预测数据的情况下,将所述第一分支预测数据写入所述缓存位置。
11.根据权利要求9或10中任一项所述的方法,其中,所述方法是以硬件电路实现的。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以实现权利要求1至8中任意一项所述的装置。
13.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至8中任意一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310613092.XA CN116643698B (zh) | 2023-05-26 | 2023-05-26 | 数据写入方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310613092.XA CN116643698B (zh) | 2023-05-26 | 2023-05-26 | 数据写入方法及装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116643698A true CN116643698A (zh) | 2023-08-25 |
CN116643698B CN116643698B (zh) | 2024-03-29 |
Family
ID=87614913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310613092.XA Active CN116643698B (zh) | 2023-05-26 | 2023-05-26 | 数据写入方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116643698B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060095746A1 (en) * | 2004-08-13 | 2006-05-04 | Kabushiki Kaisha Toshiba | Branch predictor, processor and branch prediction method |
US20080307210A1 (en) * | 2007-06-07 | 2008-12-11 | Levitan David S | System and Method for Optimizing Branch Logic for Handling Hard to Predict Indirect Branches |
US20150128144A1 (en) * | 2013-11-01 | 2015-05-07 | Arm Limited | Data processing apparatus and method for processing a plurality of threads |
US20190087928A1 (en) * | 2017-09-20 | 2019-03-21 | Arm Limited | Discarding of threads processed by a warp processing unit |
CN111930428A (zh) * | 2020-09-27 | 2020-11-13 | 南京芯瞳半导体技术有限公司 | 一种条件分支指令的融合方法、装置及计算机存储介质 |
CN114153500A (zh) * | 2021-12-01 | 2022-03-08 | 海光信息技术股份有限公司 | 指令调度方法、指令调度装置、处理器及存储介质 |
CN114416397A (zh) * | 2021-12-30 | 2022-04-29 | 上海阵量智能科技有限公司 | 一种芯片、访问内存的方法及计算机设备 |
CN115543194A (zh) * | 2022-09-21 | 2022-12-30 | 联想凌拓科技有限公司 | 分布式对象存储方法、装置、设备和计算机可读存储介质 |
-
2023
- 2023-05-26 CN CN202310613092.XA patent/CN116643698B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060095746A1 (en) * | 2004-08-13 | 2006-05-04 | Kabushiki Kaisha Toshiba | Branch predictor, processor and branch prediction method |
US20080307210A1 (en) * | 2007-06-07 | 2008-12-11 | Levitan David S | System and Method for Optimizing Branch Logic for Handling Hard to Predict Indirect Branches |
US20150128144A1 (en) * | 2013-11-01 | 2015-05-07 | Arm Limited | Data processing apparatus and method for processing a plurality of threads |
CN105659208A (zh) * | 2013-11-01 | 2016-06-08 | Arm 有限公司 | 处理多个线程的数据处理装置及方法 |
US20190087928A1 (en) * | 2017-09-20 | 2019-03-21 | Arm Limited | Discarding of threads processed by a warp processing unit |
CN111930428A (zh) * | 2020-09-27 | 2020-11-13 | 南京芯瞳半导体技术有限公司 | 一种条件分支指令的融合方法、装置及计算机存储介质 |
CN114153500A (zh) * | 2021-12-01 | 2022-03-08 | 海光信息技术股份有限公司 | 指令调度方法、指令调度装置、处理器及存储介质 |
CN114416397A (zh) * | 2021-12-30 | 2022-04-29 | 上海阵量智能科技有限公司 | 一种芯片、访问内存的方法及计算机设备 |
CN115543194A (zh) * | 2022-09-21 | 2022-12-30 | 联想凌拓科技有限公司 | 分布式对象存储方法、装置、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116643698B (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7012689B2 (ja) | コマンド実行方法及び装置 | |
CN107315729B (zh) | 用于图表的数据处理方法、介质、装置和计算设备 | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
CN110825436B (zh) | 应用于人工智能芯片的计算方法和人工智能芯片 | |
CN116320469B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
CN109189555A (zh) | 一种端口镜像的实现方法、装置、服务器及存储介质 | |
CN117130663B (zh) | 一种指令读取方法及l2指令缓存、电子设备和存储介质 | |
CN112418389A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US11195248B2 (en) | Method and apparatus for processing pixel data of a video frame | |
CN116643698B (zh) | 数据写入方法及装置、电子设备和存储介质 | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
US20240319967A1 (en) | Script generation method and apparatus, device, and storage medium | |
CN116483584A (zh) | Gpu的任务处理方法、装置、电子设备和存储介质 | |
CN115906531A (zh) | 高速缓冲存储器的模拟方法、装置、电子设备和存储介质 | |
CN111026463A (zh) | 一种页面加载方法、装置、设备和存储介质 | |
CN110825461A (zh) | 数据处理方法和装置 | |
CN112732979B (zh) | 信息写入方法、装置、电子设备和计算机可读介质 | |
US10360137B2 (en) | Adaptive testing using dynamically determined system resources of a computer system | |
CN113051173B (zh) | 测试流程的编排执行方法、装置、计算机设备和存储介质 | |
CN111625692A (zh) | 特征抽取方法、装置、电子设备和计算机可读介质 | |
CN116048816B (zh) | 数据请求处理方法、装置、电子设备和存储介质 | |
US9978117B2 (en) | Semiconductor apparatus and high speed image data processing | |
CN116166575B (zh) | 访存段长度的配置方法、装置、设备、介质和程序产品 | |
CN116360708B (zh) | 数据写入方法及装置、电子设备和存储介质 | |
CN109977036B (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 |