CN116360708B - 数据写入方法及装置、电子设备和存储介质 - Google Patents

数据写入方法及装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116360708B
CN116360708B CN202310613053.XA CN202310613053A CN116360708B CN 116360708 B CN116360708 B CN 116360708B CN 202310613053 A CN202310613053 A CN 202310613053A CN 116360708 B CN116360708 B CN 116360708B
Authority
CN
China
Prior art keywords
writing
data
memory bank
written
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310613053.XA
Other languages
English (en)
Other versions
CN116360708A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202310613053.XA priority Critical patent/CN116360708B/zh
Publication of CN116360708A publication Critical patent/CN116360708A/zh
Application granted granted Critical
Publication of CN116360708B publication Critical patent/CN116360708B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

数据写入方法及装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据写入方法及装置、电子设备和存储介质。
背景技术
在芯片中,数据存储单元能够对数据进行存储,而随着对处理性能要求的提高,对存储单元中的数据请求往往是并行的,例如,存在多个请求方同时写入数据的情况。
数据存储单元中往往会存在多个存储体(Bank),当多个请求方同时请求向同一个存储体写入数据时,会发生存储体冲突(bank conflict)。
存储体冲突可能会导致数据无法写入存储体,产生数据丢失的问题,需要多个写入周期(cycle)来完成数据的写入,降低了数据存储单元的写入效率。
发明内容
本公开提出了一种数据写入技术方案。
根据本公开的一方面,提供了一种数据写入方法,包括:
接收请求方发送的数据写入请求,所述数据写入请求用于请求向内存中写入数据;
响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;
根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态;
在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则写入多个请求方的数据。
在一种可能的实现方式中,所述根据线程束标识确定待写入数据的存储体的存储体标识,包括:
根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
在一种可能的实现方式中,所述根据线程束标识确定待写入数据的存储体的存储体标识,包括:
对表征待写入数据属性的属性标识的进行高低位反转操作;
对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
在一种可能的实现方式中,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态;
所述根据所述存储体标识,确定请求方对各存储体的写入状态,包括:
根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
在一种可能的实现方式中,所述根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位,包括:
在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0;
在存储体接受目标请求方的数据写入请求的情况下,根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0;
在数据写入对应存储体后,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
在一种可能的实现方式中,所述按照预设规则写入多个请求方的数据,包括:
针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;
在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
在一种可能的实现方式中,所述按照预设规则写入多个请求方的数据,包括:
按照轮询的规则写入多个请求方的数据。
在一种可能的实现方式中,所述方法还包括:
根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
在一种可能的实现方式中,所述根据表征待写入数据属性的属性标识,确定存储体中的写入地址,包括:
按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址;
针对所述存储体中初始的数据写入请求,将所述初始写入地址确定为待写入数据的写入地址;
针对所述存储体中初始数据写入请求之后的数据写入请求,将所述初始写入地址与偏移值相加,得到待写入数据的写入地址。
在一种可能的实现方式中,所述方法是以硬件电路实现的。
根据本公开的一方面,提供了一种数据写入装置,包括:
存储体标识确定单元,用于接收请求方发送的数据写入请求,响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;
状态变更单元,用于根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态;
写入单元,与存储器连接,用于在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则向所述存储器中写入多个请求方的数据。
在一种可能的实现方式中,所述存储体标识确定单元,用于根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
在一种可能的实现方式中,所述存储体标识确定单元,用于对表征待写入数据属性的属性标识的进行高低位反转操作;
对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
在一种可能的实现方式中,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态;
所述状态变更单元,用于根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
在一种可能的实现方式中,所述状态变更单元与所述写入单元间采用握手机制,所述状态变更单元与所述存储体之间采用握手机制;
所述状态变更单元,用于在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0;
所述状态变更单元,用于接收所述写入单元的使能信号,根据所述使能信号确定准许写入的目标请求方;根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0;
所述状态变更单元,用于接收存储体返回的写入完成信号,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
在一种可能的实现方式中,所述写入单元,包括:
运算子单元,用于针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;
写入子单元,用于在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
在一种可能的实现方式中,所述写入单元,用于按照轮询的规则写入多个请求方的数据。
在一种可能的实现方式中,所述装置还包括:
写入地址确定单元,用于根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
在一种可能的实现方式中,所述写入地址确定单元,用于按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址;针对所述存储体中初始的数据写入请求,将所述初始写入地址确定为待写入数据的写入地址;针对所述存储体中初始数据写入请求之后的数据写入请求,将所述初始写入地址与偏移值相加,得到待写入数据的写入地址。
根据本公开的一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
在本公开实施例中,通过接收请求方发送的数据写入请求,然后响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;根据所述存储体标识,确定请求方对各存储体的写入状态;在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则写入多个请求方的数据。由此,通过根据线程束标识来确定待写入数据的存储体,以使得不同线程束标识的待写入数据写入到不同的存储体中,以解决存储体冲突的问题。此外,通过记录存储体的写入状态,在确定多个请求方等待向同一存储体中写入数据的情况下,写入多个请求方的数据,以解决存储体冲突的问题,提高了数据的写入效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的数据写入方法的流程图。
图2示出本公开实施例中待写入数据的数据格式示意图。
图3示出根据本公开实施例的一种内存中的数据结构示意图。
图4示出根据本公开实施例的数据写入装置的框图。
图5示出了根据本公开实施例对写入状态进行标记的流程图。
图6示出根据本公开实施例的一种电子设备1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
本公开提供一种数据写入方法,在一种可能的实现方式中,所述数据写入方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal DigitalAssistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。或者,可通过服务器执行所述方法。
图1示出根据本公开实施例的数据写入方法的流程图,如图1所示,所述数据写入方法包括:
在步骤S11中,接收请求方发送的数据写入请求。
所述数据写入请求用于请求向内存中写入数据。这里的请求方可以是任何请求向内存中写入数据的主体,本公开对此不做任何限定。
需要说明的一点是,本申请实施例涉及请求的数据可以包括表征图像的数据、图像的颜色数据(比如RGB数据)、图像位置数据(比如XYZ 坐标数据)中的至少一种。本申请实施例涉及请求的数据还可以包括其他类型的数据,本申请实施例对此不加以限定。
在一个示例中,待写入数据的格式如图1所示,图1示出根据本公开实施例的一种待写入数据的格式的示意图,每一行中分别存储4种不同属性的数据R0~R3,不同的行存储的是不同线程束(Wrap)的数据V0~V3。
请求方每次请求输入的Data数据会有对应的线程束标识(wrap id),线程束标识可以是一个具体的数字。在一个示例中,线程束标识在硬件中的具体表示为:Wrap_id[2:0],该标识表征线程束标识为3比特的信号,其中,0是最低位,2是最高位。
这里的请求方可以有多个,当有多个请求方需要对相同存储体进行写入时,会出现不同请求方对同一存储体进行写入的问题,即发生了bank conflict情况。
在步骤S12中,响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识。
为了解决bank conflict的问题,本公开可以根据线程束标识来确定待写入数据的存储体,以使得不同线程束标识的待写入数据写入到不同的存储体中,提高了一个cycle内的数据的写入效率。
在一种可能的实现方式中,根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
在待写入数据中会有不同属性的数据,不同属性的数据会存储到不同的存储体中,请参阅图2,图2示出本公开实施例中待写入数据的数据格式示意图,在该示例中,示出了待写入数据中包含4种不同属性的数据R0~R3,共4行数据,那么,可以将R0~R3的数据按一定间隔散列到不同的存储体中。
由此,经过散列后,不同线程束标识的待写入数据,由于其线程束标识不同,那么待写入数据中的不同属性的数据大概率会被散列到不同的存储体中进行存储,而通过按照预定间隔进行散列,能够使得不同线程束标识的待写入数据的存储位置在彼此的间隔中,实现了不同线程束标识的待写入数据的存储位置相互错开的效果,减少了存储体冲突的可能。
在步骤S13中,根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态。
这里的写入状态包括:等待写入状态、正在写入状态和写入完成状态,其中,等待写入状态表征已经确定了要向该存储体中写入请求方的数据;正在写入状态表征正在向存储体中写入请求方的数据;写入完成状态表征已经完成了向该存储体中写入请求方的数据。具体对各状态的确定方式可参见本公开提供的可能的实现方式,此处不做赘述。
在步骤S14中,在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则写入多个请求方的数据。
在对该数据结构的内存进行写入操作时,在一个写入周期中多个请求方的数据写入请求携带的线程束标识可能是相同的,具体来说,本公开实施例不仅针对独立的线程并行所提出,而且同样适用于GPU中以线程束为单位进行调度的情况。线程束可以认为是一组线程,GPU以线程束为单位进行调度执行,同一个线程束中的所有线程共用同一套取指和译码单元;也就是说,同一个WARP中的所有线程是同步执行的,只不过每个线程处理的数据不相同。
那么,在线程束标识相同的情况下,基于线程束标识计算得到的存储体标识也有可能是相同的,在一个写入周期中,便可能会存在多个请求方对同一存储体的写入状态均为等待写入的情况,在这种情况下,可以按照预设规则写入多个请求方的数据,以解决bankconflict的问题。
在本公开实施例中,通过接收请求方发送的数据写入请求,然后响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;根据所述存储体标识,确定请求方对各存储体的写入状态;在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则写入多个请求方的数据。由此,通过根据线程束标识来确定待写入数据的存储体,以使得不同线程束标识的待写入数据写入到不同的存储体中,以解决存储体冲突的问题。此外,通过记录存储体的写入状态,在确定多个请求方等待向同一存储体中写入数据的情况下,写入多个请求方的数据,以解决存储体冲突的问题,提高了数据的写入效率。
在一种可能的实现方式中,所述根据线程束标识确定待写入数据的存储体的存储体标识,包括:对表征待写入数据属性的属性标识进行高低位反转操作;对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
对表征待写入数据属性的属性标识的进行高低位反转操作,具体可以是对属性标识中的数字的排列顺序进行反转操作,示例性的,在属性标识中数字的排列顺序为[011]的情况下,排列顺序反转后即为[110],即将从左到右的排列顺序,变为了从右到左的排列顺序。
然后再对反转后的属性标识和线程束标识进行异或运算,线程束标识的位数和属性标识的位数相同,进行异或运算后的结果,即可作为不同属性的数据对应的存储体的存储体标识,实现了不同线程束标识的待写入数据的存储位置相互错开的效果。
为便于更清楚地理解存储体标识的确定过程,下面通过公式(1)来对存储体标识的确定过程进行说明,需要说明的是,本公开中提供的具体数学表达式为本公开实施例在具体实施时的一种可能的实现方式,而不应当理解为对本公开实施例保护范围的限制。
bankid = R_num[0:2] ^ wrap_id[2:0] (1)
其中,R_num表示待写入数据的属性标识,R_num [0:2]表示高低位反转后的属性标识,该属性标识的位数为3,其中0为最高位,2为最低位,wrap_id[2:0]表示线程束标识,该线程束标识的位数为3,其中0位最低位,2为最高位,^表示异或运算。
在一种可能的实现方式中,所述方法还包括:根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
在确定不同属性的数据对应的存储体的存储体标识后,在将待写入数据写入存储体之前,还可以按待写入数据中的属性标识的顺序,得到待写入数据在存储体中的写入地址。
该写入地址可以理解为图3所示的表格中的行号,该行号的顺序可以和属性标识的顺序相同,示例性的,针对属性标识为R0~R3的4个属性,其在存储体中的写入地址,也分别为地址0~3的顺序。
在本公开实施例中,通过根据表征待写入数据属性的属性标识,确定存储体中的写入地址,能够快速而准确地确定写入地址
在一种可能的实现方式中,所述根据表征待写入数据属性的属性标识,确定存储体中的写入地址,包括:按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址;针对所述存储体中初始的数据写入请求,将所述初始写入地址确定为待写入数据的写入地址;针对所述存储体中初始数据写入请求之后的数据写入请求,将所述初始写入地址与偏移值相加,得到待写入数据的写入地址。
按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址,接上例,初始写入地址即为图3中行号的顺序,该行号的顺序可以和属性标识的顺序相同。在存储体中,在未向存储体中写入任何数据之前,即针对所述存储体中初始的数据写入请求而言,存储体中的待写入数据的写入地址即为初始写入地址。
而写入地址会随着数据写入请求的增加而依次累加,即对前一数据写入请求的数据写入完毕后,后一数据写入请求的写入地址位于前一数据写入请求的写入地址之后。那么,针对所述存储体中初始数据写入请求之后的数据写入请求,在确定待写入数据在存储体中的写入地址时,会在写入地址上加上偏移值,该偏移值即为前一数据写入请求最终的写入地址,以免不同写入请求写入存储体中的同一地址,导致数据被覆盖。
示例性的,可以通过公式(2)来对存储体中地址address的确定过程进行说明。
address = R_num [1:0] (2)
address = addr_offset + R_num [1:0] (3)
针对存储体中初始的数据写入请求,可以通过公式(2)来确定存储体中的写入地址,即存储体中地址按属性标识R_num [1:0]的顺序依次排列,针对后续的数据写入请求,可以通过公式(3)来确定存储体中的写入地址,即在写入地址上加上偏移值addr_offset。
下面对本公开实施例的一种具体应用场景进行介绍,图3示出根据本公开实施例的一种内存中的数据结构示意图,该图中示出了0~7共8个存储体,在该应用场景中,每个请求方需要写入4个存储体,每个存储体4个32比特的数据(即图2所示的数据结构)。
在线程束标识wrapid=0的情况下,在通过上述公式(1)进行计算后,可以确定图2所示的待写入数据,属性R0对应的存储体标识为0,写入地址为0;属性R1对应的存储体标识为4,写入地址为1;属性R2对应的存储体标识为2,写入地址为2;属性R3对应的存储体标识为6,写入地址为3。具体如图3中深色表格所示,待写入数据被间隔散列写入到了存储体中。
在一种可能的实现方式中,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态;所述根据所述存储体标识,确定请求方对各存储体的写入状态,包括:根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
在该实现方式中,可以通过写入状态信号来表征写入状态,通过对写入状态信号的置位,实现对写入状态的变更。写入状态信号的具体形式可以是二进制字符串,由0和1构成,写入信号中的具体值是通过存储体标识来确定的,在确定写入状态信号中的具体值后,即可对写入状态信号进行置位,其具体实现方式可参见本公开提供的可能的实现方式,此处不做赘述。
在本公开实施例中,通过根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位,实现对写入状态的变更,由此,能够更加简洁而准确地表征存储体的写入状态。
在一种可能的实现方式中,所述根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位,包括:在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0;在存储体接受目标请求方的数据写入请求的情况下,根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0;在数据写入对应存储体后,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
针对等待写入状态(master_bank_todo)而言,在确定待写入数据的存储体的存储体标识后即可确定。例如,针对目标请求方,当目标请求方的线程束标识wrapid = 0时,通过上述计算可以确定存储体0/2/4/6需要占用写入请求,此时将目标请求方的等待写入状态标记为8’b01010101,其中1表示该存储体需要写入,0表示该存储体不需要写入;当目标请求方的线程束标识wrapid=1时,通过上述计算可以确定存储体1/3/5/7需要占用请求,此时将目标请求方的等待写入状态标记为8’b10101010。
针对正在写入状态(master_bank_doing)而言,在存储体接受目标请求方的数据写入请求后即可确定。例如,接上例,针对目标请求方,当存储体接受了目标请求方的wrapid=0的写入请求时,则将对应的正在写入状态进行置位为8’b01010101;当存储体接受了目标请求方的wrapid=1的写入请求时,则将对应的正在写入状态进行置位为8’b10101010。
针对写入完成状态(master_bank_done)而言,在数据写入对应存储体后,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,在写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。接上例,针对目标请求方,当存储体完成了目标请求方的wrapid=0的写入请求时,则将对应的写入完成状态进行置位为8’b01010101;当存储体完成了目标请求方的wrapid=1的写入请求时,则将对应的写入完成状态进行置位为8’b10101010。
在本公开实施例中,对于多个请求方的请求写入操作,可以记录每个请求方每次写入各个存储体的状态,从而准确地确定是否存在向同一存储体写入数据的情况,以解决bank conflict的问题,减少写入数据丢失的情况。
在一种可能的实现方式中,所述按照预设规则写入多个请求方的数据,包括:针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
在该实现方式中,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果,在运算结果与等待写入状态信号相同的情况下,即master_bank_todo = master_bank_doing & master_bank_done,则表示本次数据完全写入对应内存中,则可以进行下次数据写入请求,否则不能接收下笔数据写入请求,需要继续等待写入操作,直至运算结果与等待写入状态信号相同才可以进行下次传输。
在本公开实施例中,通过判断正在写入状态信号和完成写入状态信号进行与运算的运算结果是否与等待写入状态信号相同,能够准确地判断请求方的数据是否能够写入完成,以便进行下次传输,提高数据的写入效率。
在一种可能的实现方式中,所述按照预设规则写入多个请求方的数据,包括:按照轮询的规则写入多个请求方的数据。
在该实现方式中,轮询的策略可以是Round-Robin轮询调度策略,请求方在通过round robin仲裁后,即可获得写入存储体的权限,对存储体进行写入,保证多个请求方顺序写入同一存储体中,避免了bank conflict的问题。
在一种可能的实现方式中,所述方法是以硬件电路实现的。硬件电路中可提供有各种处理电路、存储电路以及其他外围电路。硬件电路可以包括任何数量的硬接线或可配置电路,其中的一些或全部可以包括电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合,这些电子组件、半导体器件和/或逻辑元件部分或全部设置在个人计算机(PC)、服务器、移动电话、平板计算机或能够执行处理器可读指令的其他计算系统中。
在一种可能的实现方式中,本公开提供的数据写入方案可应用于GPU。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了数据写入装置,用来实现本公开提供的任一种数据写入方法,相应技术方案和描述和参见方法部分的相应记载。
图4示出根据本公开实施例的数据写入装置的框图,如图4所示,所述装置包括:包括:
存储体标识确定单元,用于接收请求方发送的数据写入请求,响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;
状态变更单元,用于根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态;
写入单元,与存储器连接,用于在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则向所述存储器中写入多个请求方的数据。
该数据写入装置给出了本公开的数据写入方法的硬件实现,在该数据写入装置中,存储器中包含一个或多个存储体,存储体标识确定单元能够接收请求方发送的数据写入请求,并根据线程束标识确定待写入数据的存储体的存储体标识。
如图4所示,示出了3个数据请求方0~2,请求向8个存储体0-7中写入数据,请求方分别发送数据写入请求至存储体标识确定单元,存储体标识确定单元会分别计算待写入数据的存储体的存储体标识。状态变更单元会记录每一个数据请求方对各存储体的写入状态。状态变更单元会与写入单元和存储体之间采用握手机制,来确定数据请求方对各存储体的写入状态。
具体来说,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态,所述状态变更单元,用于根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
所述状态变更单元与所述写入单元间采用握手机制,所述状态变更单元与所述存储体之间采用握手机制。
所述状态变更单元,用于在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0。
所述状态变更单元,用于接收所述写入单元的使能信号,根据所述使能信号确定准许写入的目标请求方;根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0。
写入单元在通过仲裁确定准许写入存储体的目标请求方后,会向状态变更单元发送使能信号,该使能信号中可以记录有准许写入的目标请求方以及对应的存储体的存储体标识。状态变更单元在获取到使能信号后对目标请求方的正在写入状态进行置位。
所述状态变更单元,用于接收存储体返回的写入完成信号,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
状态变更单元与存储体之间采用握手机制,当数据写入对应存储体后,存储体会给状态变更单元发送写入完成信号,此时状态变更单元会将对应的写入完成信号进行置位。需要说明的是,因为绕线太多,写入完成信号的传递路径在图4中未示出。
下面结合具体的流程图来说明本公开提供的硬件实现中对写入状态的标记过程,图5示出了根据本公开实施例对写入状态进行标记的流程图。如图5所示,在接收到数据写入请求后,以及在计算得到要写入数据的存储体标识后,首先根据存储体标识对等待写入状态置位;然后再判断存储体是否准许写入,判断为是的情况下,即根据计算得到的存储体标识对正在写入状态置位;写入完成后对写入完成状态置位;然后判断等待写入状态信号是否等于正在写入状态信号和写入完成状态信号进行与操作的结果;在判断结果为相等的情况下,进行下次传输,在判断为不相等的情况下,则继续等待。
在本公开实施例提供的硬件实现方案中,等待写入状态、正在写入状态、写入完成状态这三种状态可以在1个cycle内完成,因此具有较高的数据写入效率,而对于没有基于这三种写入状态进行数据写入的硬件,每增加一个cycle的计算时间,会降低整个系统的50%的效率。
在一种可能的实现方式中,所述存储体标识确定单元,用于根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
在一种可能的实现方式中,所述存储体标识确定单元,用于对表征待写入数据属性的属性标识的进行高低位反转操作;对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
在一种可能的实现方式中,所述写入单元,包括:
运算子单元,用于针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;
写入子单元,用于在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
在一种可能的实现方式中,所述写入单元,用于按照轮询的规则写入多个请求方的数据。
在一种可能的实现方式中,所述装置还包括:
写入地址确定单元,用于根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
在一种可能的实现方式中,所述写入地址确定单元,用于按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址;针对所述存储体中初始的数据写入请求,将所述初始写入地址确定为待写入数据的写入地址;针对所述存储体中初始数据写入请求之后的数据写入请求,将所述初始写入地址与偏移值相加,得到待写入数据的写入地址。
此外,本公开还提供了电子设备、计算机可读存储介质、程序,上述均可用来实现本公开提供的任一种数据写入方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
该方法与计算机系统的内部结构存在特定技术关联,且能够解决如何提升硬件运算效率或执行效果的技术问题(包括减少数据存储量、减少数据传输量、提高硬件处理速度等),从而获得符合自然规律的计算机系统内部性能改进的技术效果。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的单元可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器存储的指令,以执行上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
电子设备可以被提供为终端、服务器或其它形态的设备。
图6示出根据本公开实施例的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器或终端设备。参照图6,电子设备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 (18)

1.一种数据写入方法,其特征在于,包括:
接收请求方发送的数据写入请求,所述数据写入请求用于请求向内存中写入数据;
响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;
根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态;
在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则写入多个请求方的数据;
所述根据线程束标识确定待写入数据的存储体的存储体标识,包括:
根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
2.根据权利要求1所述的方法,其特征在于,所述根据线程束标识确定待写入数据的存储体的存储体标识,包括:
对表征待写入数据属性的属性标识的进行高低位反转操作;
对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
3.根据权利要求1所述的方法,其特征在于,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态;
所述根据所述存储体标识,确定请求方对各存储体的写入状态,包括:
根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
4.根据权利要求3所述的方法,其特征在于,所述根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位,包括:
在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0;
在存储体接受目标请求方的数据写入请求的情况下,根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0;
在数据写入对应存储体后,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
5.根据权利要求4所述的方法,其特征在于,所述按照预设规则写入多个请求方的数据,包括:
针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;
在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
6.根据权利要求1所述的方法,其特征在于,所述按照预设规则写入多个请求方的数据,包括:
按照轮询的规则写入多个请求方的数据。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
8.根据权利要求7所述的方法, 其特征在于,所述根据表征待写入数据属性的属性标识,确定存储体中的写入地址,包括:
按待写入数据中的属性标识的顺序,得到待写入数据的初始写入地址;
针对所述存储体中初始的数据写入请求,将所述初始写入地址确定为待写入数据的写入地址;
针对所述存储体中初始数据写入请求之后的数据写入请求,将所述初始写入地址与偏移值相加,得到待写入数据的写入地址。
9.根据权利要求1至8中的任一项所述的方法,其特征在于,所述方法是以硬件电路实现的。
10.一种数据写入装置,其特征在于,包括:
存储体标识确定单元,用于接收请求方发送的数据写入请求,响应于所述数据写入请求,根据线程束标识确定待写入数据的存储体的存储体标识;
状态变更单元,用于根据所述存储体标识,确定请求方对各存储体的写入状态,所述写入状态用于指示所述请求方对各存储体的占用状态;
写入单元,与存储器连接,用于在存在多个请求方对同一存储体的写入状态均为等待写入的情况下,按照预设规则向所述存储器中写入多个请求方的数据;
所述存储体标识确定单元,用于根据所述线程束的标识,将待写入数据中不同属性的数据的存储位置按预定间隔进行散列,得到所述不同属性的数据对应的存储体的存储体标识,使得不同线程束标识的待写入数据的存储位置相互错开。
11.根据权利要求10所述的装置,其特征在于,所述存储体标识确定单元,用于对表征待写入数据属性的属性标识的进行高低位反转操作;
对反转后的属性标识和线程束标识进行异或运算,得到所述不同属性的数据对应的存储体的存储体标识。
12.根据权利要求10所述的装置,其特征在于,所述写入状态包括:等待写入状态、正在写入状态和写入完成状态;
所述状态变更单元,用于根据所述存储体标识,对表征存储体的写入状态的写入状态信号进行置位。
13.根据权利要求12所述的装置,其特征在于,所述状态变更单元与所述写入单元间采用握手机制,所述状态变更单元与所述存储体之间采用握手机制;
所述状态变更单元,用于在确定待写入数据的存储体的存储体标识后,根据待写入数据的存储体的存储体标识,确定表征各存储体的等待写入状态的等待写入状态信号,所述等待写入状态信号中,等待写入数据的存储体的值为1,其它存储体的值为0;
所述状态变更单元,用于接收所述写入单元的使能信号,根据所述使能信号确定准许写入的目标请求方;根据所述目标请求方对应的待写入数据的存储体的存储体标识,确定表征各存储体的正在写入状态的正在写入状态信号,所述正在写入状态信号中,正在写入数据的存储体的值为1,其它存储体的值为0;
所述状态变更单元,用于接收存储体返回的写入完成信号,根据写入完成的存储体的存储体标识,确定表征各存储体的写入完成状态的写入完成状态信号,所述写入完成状态信号中,完成写入的存储体的值为1,其它存储体的值为0。
14.根据权利要求13所述的装置,其特征在于,所述写入单元,包括:
运算子单元,用于针对目标请求方,对正在写入状态信号和完成写入状态信号进行与运算,得到运算结果;
写入子单元,用于在运算结果与等待写入状态信号相同的情况下,确定目标请求方的请求写入的数据已写入完成,对下一请求方的数据进行写入。
15.根据权利要求10所述的装置,其特征在于,所述写入单元,用于按照轮询的规则写入多个请求方的数据。
16.根据权利要求10所述的装置,其特征在于,所述装置还包括:
写入地址确定单元,用于根据表征待写入数据属性的属性标识,确定存储体中的写入地址。
17.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器存储的指令,以执行权利要求1至9中任意一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至9中任意一项所述的方法。
CN202310613053.XA 2023-05-26 2023-05-26 数据写入方法及装置、电子设备和存储介质 Active CN116360708B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310613053.XA CN116360708B (zh) 2023-05-26 2023-05-26 数据写入方法及装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310613053.XA CN116360708B (zh) 2023-05-26 2023-05-26 数据写入方法及装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116360708A CN116360708A (zh) 2023-06-30
CN116360708B true CN116360708B (zh) 2023-08-11

Family

ID=86928418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310613053.XA Active CN116360708B (zh) 2023-05-26 2023-05-26 数据写入方法及装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116360708B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840877A (zh) * 2017-11-24 2019-06-04 华为技术有限公司 一种图形处理器及其资源调度方法、装置
WO2020186631A1 (en) * 2019-03-21 2020-09-24 Huawei Technologies Co., Ltd. Compute shader warps without ramp up
CN112214243A (zh) * 2020-10-21 2021-01-12 上海壁仞智能科技有限公司 配置向量运算系统中的协作线程束的装置和方法
CN114153500A (zh) * 2021-12-01 2022-03-08 海光信息技术股份有限公司 指令调度方法、指令调度装置、处理器及存储介质
CN116010299A (zh) * 2023-03-29 2023-04-25 摩尔线程智能科技(北京)有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840877A (zh) * 2017-11-24 2019-06-04 华为技术有限公司 一种图形处理器及其资源调度方法、装置
WO2020186631A1 (en) * 2019-03-21 2020-09-24 Huawei Technologies Co., Ltd. Compute shader warps without ramp up
CN112214243A (zh) * 2020-10-21 2021-01-12 上海壁仞智能科技有限公司 配置向量运算系统中的协作线程束的装置和方法
CN114153500A (zh) * 2021-12-01 2022-03-08 海光信息技术股份有限公司 指令调度方法、指令调度装置、处理器及存储介质
CN116010299A (zh) * 2023-03-29 2023-04-25 摩尔线程智能科技(北京)有限责任公司 一种数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN116360708A (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN110852882B (zh) 用于区块链网络的分组共识方法、装置、设备和介质
KR20150091663A (ko) 멀티 채널 메모리를 포함하는 시스템 및 그 동작 방법
CN110825436B (zh) 应用于人工智能芯片的计算方法和人工智能芯片
CN111163130A (zh) 一种网络服务系统及其数据传输方法
CN116431099B (zh) 数据的处理方法、多输入输出队列电路及存储介质
CN108304272B (zh) 一种数据io请求的处理方法及装置
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN117130663B (zh) 一种指令读取方法及l2指令缓存、电子设备和存储介质
CN111049735B (zh) 群组头像显示方法、装置、设备及存储介质
CN116360708B (zh) 数据写入方法及装置、电子设备和存储介质
CN109120731B (zh) 一种通用型通讯方法、系统及装置
CN115237831B (zh) 数据传输方法、装置、芯片、电子设备和介质
CN110740138A (zh) 数据传输方法和装置
WO2022227561A1 (zh) 用于数据读取的装置、方法、芯片、计算机设备及存储介质
CN112764897B (zh) 任务请求的处理方法、装置、系统及计算机可读存储介质
US10284501B2 (en) Technologies for multi-core wireless network data transmission
CN112511441A (zh) 报文的处理方法及装置
CN113051077A (zh) 一种用户请求的处理方法、装置、终端设备及存储介质
CN116009792B (zh) 一种图像处理中的数据读取、写入装置及方法、电子设备
CN113434508B (zh) 用于存储信息的方法和装置
CN116048816B (zh) 数据请求处理方法、装置、电子设备和存储介质
CN116049032B (zh) 基于光线追踪的数据调度方法、装置及设备、存储介质
CN112307859B (zh) 一种用户语言等级确定方法、装置、电子设备及介质
CN112711545B (zh) 一种基于数组链表式队列结构的数据存取方法
CN109377177B (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