CN111857829A - 处理器操作方法及装置以及相关产品 - Google Patents

处理器操作方法及装置以及相关产品 Download PDF

Info

Publication number
CN111857829A
CN111857829A CN201910341003.4A CN201910341003A CN111857829A CN 111857829 A CN111857829 A CN 111857829A CN 201910341003 A CN201910341003 A CN 201910341003A CN 111857829 A CN111857829 A CN 111857829A
Authority
CN
China
Prior art keywords
fine
grained
region
storage area
grained region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910341003.4A
Other languages
English (en)
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.)
Anhui Cambricon Information Technology Co Ltd
Original Assignee
Anhui Cambricon Information 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 Anhui Cambricon Information Technology Co Ltd filed Critical Anhui Cambricon Information Technology Co Ltd
Priority to CN201910341003.4A priority Critical patent/CN111857829A/zh
Priority to KR1020207036508A priority patent/KR102379406B1/ko
Priority to EP20217331.6A priority patent/EP3825847B1/en
Priority to KR1020207036492A priority patent/KR102519470B1/ko
Priority to EP20217329.0A priority patent/EP3825843B1/en
Priority to EP20217333.2A priority patent/EP3825848A1/en
Priority to KR1020207036505A priority patent/KR102550451B1/ko
Priority to JP2021510522A priority patent/JP7073580B2/ja
Priority to EP20217332.4A priority patent/EP3828698B1/en
Priority to KR1020207036494A priority patent/KR102569336B1/ko
Priority to KR1020207032006A priority patent/KR20210002518A/ko
Priority to EP20783678.4A priority patent/EP3800547A4/en
Priority to EP20217330.8A priority patent/EP3825846A1/en
Priority to PCT/CN2020/082775 priority patent/WO2020200244A1/zh
Priority to KR1020207036496A priority patent/KR102522416B1/ko
Priority to EP20217328.2A priority patent/EP3825842B1/en
Priority to KR1020207036500A priority patent/KR102579192B1/ko
Publication of CN111857829A publication Critical patent/CN111857829A/zh
Priority to JP2020198158A priority patent/JP7121101B2/ja
Priority to JP2020198079A priority patent/JP7121100B2/ja
Priority to JP2020198102A priority patent/JP7150802B2/ja
Priority to JP2020198041A priority patent/JP2021170312A/ja
Priority to JP2020198021A priority patent/JP7239547B2/ja
Priority to JP2020198177A priority patent/JP7121102B2/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • 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

Abstract

本公开涉及一种处理器操作方法及装置以及相关产品,所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法,本公开可以提高相关产品在进行神经网络模型的运算时的运算效率。

Description

处理器操作方法及装置以及相关产品
技术领域
本公开涉及计算机技术领域,尤其涉及一种处理器操作方法及装置以及相关产品。
背景技术
随着人工智能技术的不断发展,需要处理的数据量和数据维度都在不断增大。在相关技术中,当多个操作针对相同的存储区域进行操作时,需要等待前一条操作完毕,后一条操作才能执行,降低了处理器的处理效率。
发明内容
有鉴于此,本公开提出了一种处理器操作技术方案。
根据本公开的一方面,提供了一种处理器操作方法,所述方法包括:在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
根据本公开的另一方面,提供了一种处理器操作装置,所述装置包括:操作判断模块,用于在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
根据本公开的另一方面,提供了一种人工智能芯片,所述人工智能芯片包括如上所述的处理器操作装置。
根据本公开的另一方面,提供了一种电子设备,所述电子设备包括如上所述的人工智能芯片。
根据本公开的另一方面,提供了一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如上所述的人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
根据本公开的实施例,能够在第一操作针对的目标存储区域包括至少一个细粒度区域,且存在正在进行的针对目标存储区域的第二操作时,判断第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域之间是否有重叠,在两者无重叠时,执行第一操作。这样,第一操作和第二操作当前操作的细粒度区域无重叠即可执行,使得第一操作和第二操作可以同时对目标存储区域进行操作,提高了处理器的处理效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图2示出根据本公开实施例的处理器操作方法的流程图。
图3a和图3b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图4a和图4b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图5a和图5b示出根据本公开实施例的处理器操作方法的应用场景的示意图。
图6示出根据本公开实施例的处理器操作方法的循环缓冲存储区域的示意图。
图7示出根据本公开实施例的处理器操作装置的框图。
图8示出根据本公开实施例的板卡的结构框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
请参阅图1,图1示出根据本公开实施例的处理器操作方法的应用场景的示意图。其中,处理器100可以是通用处理器(例如中央处理器CPU、图形处理器GPU),也可以是专用处理器(例如人工智能处理器、科学计算处理器或数字信号处理器等),本公开对处理器的类型不作限制。存储设备200包括至少一个目标存储区域210。可以理解,处理器可以通过执行读操作或者执行写操作来实现对某个目标存储区域210的访问,处理器执行针对某个目标存储区域210的读操作,可以是指处理器获取该目标存储区域210中的数据。而处理器执行针对某个目标存储区域210的写操作,可以是指处理器将数据写入该目标存储区域210中。在相关技术中,由于处理器可以并行执行多个操作,为了避免冲突,当处理器并行执行的多个操作都是针对某个目标存储区域210的操作时,处理器将只执行该多个操作中的一个,同时阻塞其他操作,从而会导致处理器的效率降低。本公开提供的处理器操作方法将目标存储区域210进一步划分为多个细粒度区域211,当处理器并行执行的多个操作都是针对某个目标存储区域210的操作时,处理器可以判断该多个操作针对的细粒度区域211是否重叠,如果各个操作针对的细粒度区域211不重叠,就可并行执行该多个操作,因此,大大提高了处理器的效率。需要说明的是,存储设备200可以设置在处理器内部(例如片上缓存或寄存器等),也可以设置在处理器的外部且可以与处理器进行数据通信(例如片下存储器等)。本公开对存储设备的类型不做限定。本公开所涉及的操作,可以是处理器硬件支持的基本操作,也可以是将该基本操作进行解析后的微指令(例如请求信号等)。本公开对操作的具体类型不做限定。本公开处理器可以并行执行两个操作,也可以并行执行两个以上的操作,本公开对并行执行的操作的数量不做限定。
图2示出根据本公开实施例的处理器操作方法的流程图。所述处理器操作方法可应用于处理器。
如图2所示,该处理器操作方法包括:
步骤S11,在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域。
其中,第一操作可以是读操作或者写操作,类似的,第二操作也可以是读操作或者写操作。本公开对第一操作和第二操作的具体类型不作限制。一个操作可包括一个或多个操作数。目标存储区域可以是第一操作和第二操作的一个或多个操作数所对应的存储区域。目标存储区域所在的整体存储区域可以是处理器的内部存储器(例如片上缓存或寄存器等),也可以是连接到处理器的外部存储器(例如片下存储器等)。
在一种可能的实现方式中,第一操作和/或第二操作可以包括一个或多个操作数,目标存储区域可以是第一操作和第二操作中的任意操作数对应的存储区域。目标存储区域为第一操作中的至少一个操作数和第二操作中的至少一个操作数共同对应的存储区域。例如,对于第一操作中的第一操作数和第二操作中的第二操作数,第一操作数可以为第一操作中的任意操作数,第二操作数可以为第二操作中的任意操作数。当第一操作数和第二操作数为相同的操作数时,目标存储区域可以为第一操作数的存储区域或第二操作的存储区域。当第一操作数的存储区域和第二操作数的存储区域有重叠区域时,目标存储区域为重叠区域。
在一种可能的实现方式中,目标存储区域包括至少一个细粒度区域。其中,细粒度区域的尺寸和/或数量的确定方式,可以包括根据硬件设计确定的方式、根据目标操作数的相关操作确定的方式、根据操作中相关参数进行定义的方式中的其中一种或任意组合。其中,根据硬件设计确定的方式,即在硬件设计时确定细粒度区域的尺寸,譬如确定存储区域的一行或多行为一个细粒度区域。根据目标操作数的相关操作确定的方式,包括根据目标操作数的处理需求、存储方式、或传输方式等进行确定的方式,例如目标操作数为一个二维矩阵数据,其规模为M*N(M,N均为正整数),表示存储所占字节数,即一行M字节,共有N行,可以确定M字节为一个细粒度区域,该目标操作数所对应的目标存储区域包括N个细粒度区域。根据操作中相关参数进行定义的方式,包括根据操作中携带的细粒度的尺寸和/或数量,将目标存储区域划分为多个细粒度区域。当第一操作中的第一操作数和第二操作中的第二操作数共同对应此目标存储区域时,第一操作和第二操作可以根据目标存储区域中划分出的多个细粒度区域,采用本公开实施例中的方法。
需要说明的是,多个细粒度区域的尺寸可以相同,也可以不同。例如,第一操作可以携带第一细粒度的尺寸(各细粒度区域的数据位数),并可以将该第一细粒度的尺寸设置为64位,而第二操作可以携带第二细粒度尺寸(例如各细粒度区域的数据位数),并可以将该第二细粒度的尺寸设置为256位。即在执行第一操作时,将每64位作为一个细粒度区域,而在执行第二操作时,每256位作为一个细粒度区域。又如,第一操作和第二操作所携带的细粒度尺寸(例如各细粒度区域的数据位数)均为512位。同样的,第一操作也可以携带第一细粒度的数量(例如设置为4个),而第二操作携带第二细粒度的数量(例如设置为8个)。即在执行第一操作时,将目标存储区域划分为4个细粒度区域,而在执行第二操作时,将目标存储区域划分为8个细粒度区域。可以理解,操作中还可以同时携带细粒度的尺寸、数量这两个参数。可以根据需求确定各细粒度区域的尺寸和/或数量,本公开对此不做限定。
在一种可能的实现方式中,可通过根据该目标存储区域的占用状态来判断是否存在正在进行的针对目标存储区域的第二操作。例如,处理器可以通过查询占用状态列表来判断目标存储区域是否被占用,如被占用,则判断结果为存在正在进行的针对目标存储区域的第二操作。其中,该占用状态列表可以是预先设置并存储在存储器上,也可以是在处理器开始执行某个任务之前生成,并在该任务完成之后注销。当各存储区域的占用状态发生变化时,处理器更新该占用状态列表的内容以记录各存储区域的占用状态。
在一种可能的实现方式中,可以通过查询各操作的执行状态来判断是否存在正在进行的针对目标存储区域的第二操作。例如,可以记录各操作的操作数所对应的存储区域,并记录各操作的执行状态。若针对目标存储区域的操作的执行状态为未完成,则判断结果为存在正在进行的针对目标操作区域的第二操作。还可以通过判断操作数的占用状态,来确定操作数对应的目标存储区域是否被占用,从而确定是否存在正在进行的针对目标操作区域的第二操作。本公开对判断是否存在正在进行的针对目标操作区域的第二操作的判断依据不做限定。
在一种可能的实现方式中,在第一操作针对目标存储区域执行操作前,可判断是否存在正在进行的针对目标存储区域的第二操作。
在一种可能的实现方式中,在第一操作针对目标存储区域的执行过程中,也可以判断是否存在正在进行的针对目标存储区域的第二操作。
步骤S12,在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否重叠。
第一细粒度区域和第二细粒度区域可以为目标存储区域中多个细粒度区域中的任意细粒度区域。可以理解的是,针对目标存储区域的操作,即为针对目标存储区域中各细粒度区域的操作。例如,目标存储区域A为第1行至第10行,每1行为一个细粒度区域,目标存储区域A包括10个细粒度区域。针对目标存储区域A的写操作可以看做针对此10个细粒度区域的写操作。其执行过程可以为,写第1个细粒度区域(第1行),第1个细粒度区域写完后写第2个细粒度区域(第2行),第2个细粒度区域写完后写第3个细粒度区域(第3行),以此类推,直至写完第10个细粒度区域(第10行),完成目标存储区域A的写操作。
当有针对目标存储区域的操作时,随着操作的执行,目标存储区域中的细粒度区域的状态,可以包括已被操作完成状态、正在进行操作状态和未被操作状态。操作当前所针对的细粒度区域的状态为正在进行操作状态。由此,当存在针对目标存储区域的操作时,可以认为是存在针对目标存储区域中的一个细粒度区域的操作,正在被操作的细粒度区域,即为操作当前所针对的细粒度区域。
在一种可能的实现方式中,第一操作当前所针对的第一细粒度区域,可以包括将要执行的第一操作所针对的细粒度区域,通常为第一个细粒度区域。也可以包括正在执行的第一操作当前所针对的细粒度区域,可以为任意一个细粒度区域。第二操作当前所针对的第二细粒度区域,可以为正在执行的第二操作当前所针对的细粒度区域,可以为任意一个细粒度区域。
在一种可能的实现方式中,当在第一操作针对目标存储区域执行操作前,判断是否存在正在进行的针对目标存储区域的第二操作时,第一操作当前所针对的第一细粒度区域,为第一操作将要执行的细粒度区域。例如,在第一操作针对目标存储区域执行操作前,第一操作当前所针对的第一细粒度区域通常为目标存储区域的第一个细粒度区域。此时,第一操作还未对第一细粒度区域执行操作。而正在进行的第二操作当前所针对的第二细粒度区域,可以与第二操作的执行进程相关。若第二操作也刚开始执行,则第二细粒度区域也可为目标存储区域的第一个细粒度区域。此时,第一细粒度区域与第二细粒度区域重叠。若第二操作已经完成第一个细粒度区域的操作,当前所针对的第二细粒度区域为第P个细粒度区域(P为大于1的整数),则第一细粒度区域与第二细粒度区域不重叠。
在一种可能的实现方式中,当在第一操作针对目标存储区域的操作过程中,判断是否存在正在进行的针对目标存储区域的第二操作时,可根据第一操作的执行进程确定第一细粒度区域,根据第二操作的执行进程确定第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。
在一种可能的实现方式中,若各操作执行过程的节拍一致,可只在第一操作针对目标存储区域执行操作前,判断是否存在正在进行的针对目标存储区域的第二操作,并判断第一细粒度区域与第二细粒度区域是否重叠。其中,节拍一致是指在细粒度区域的尺寸相同的情况下,两个操作对于一个细粒度区域的操作时长相同。
在一种可能的实现方式中,若各操作执行过程的节拍不一致或不能确定是否一致,可在第一操作针对目标存储区域的操作过程中,每完成当前所针对的第一细粒度区域的操作后,再继续判断是否存在正在进行的针对目标操作区域的第二操作,以及继续判断第一细粒度区域与第二细粒度区域是否重叠,以确定第一操作是否可以继续执行。
在一种可能的实现方式中,可根据物理地址、指针位置、细粒度区域标识等,来判断第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域之间是否重叠。例如,可记录各操作当前的物理地址,根据第一操作当前的物理地址以及第二操作当前的物理地址,以及物理地址与细粒度区域之间的对应关系,分别确定第一操作当前所针对的第一细粒度区域以及第二操作当前所针对的第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。物理地址可以包括细粒度区域的起始地址、终止地址、设定位置的地址或实时操作地址中的一种或任意组合。再例如,可为各操作设置指针,指针指向操作当前所针对的细粒度区域。根据第一操作的指针位置和第二操作的指针位置,分别确定第一操作当前所针对的第一细粒度区域以及第二操作当前所针对的第二细粒度区域,进而判断第一细粒度区域与第二细粒度区域是否重叠。再例如,还可以为各细粒度区域设置标识,通过记录操作当前所针对的细粒度区域的标识来判断第一细粒度区域与第二细粒度区域是否重叠。标识可以包括字母、数字或符号的任意组合。还可以通过其他方式判断第一细粒度区域与第二细粒度区域是否重叠,本公开对第一细粒度区域与第二细粒度区域之间是否重叠的判断依据不作限制。
步骤S13,在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,如果第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域不重叠,可以是第一细粒度区域是第二操作已经操作完成的细粒度区域,也可以是第二操作不需要进行操作的细粒度区域,此时执行第一操作不会对第二操作的操作过程及操作结果产生影响,可以执行第一操作。
根据本实施例,能够在第一操作针对的目标存储区域包括至少一个细粒度区域,且存在正在进行的针对目标存储区域的第二操作时,判断第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域之间是否有重叠,在两者无重叠时,执行第一操作。这样,第一操作和第二操作当前操作的细粒度区域无重叠即可执行,使得第一操作和第二操作可以同时对目标存储区域进行操作,提高了处理器的处理效率。
在一种可能的实现方式中,所述方法还可包括:在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
在一种可能的实现方式中,第一细粒度区域与第二细粒度区域有重叠,包括第一细粒度区域与第二细粒度区域完全重叠或部分重叠。第一细粒度区域与第二细粒度区域有重叠时,若执行第一操作,则第一操作针对重叠部分区域的操作,可以影响第二操作的执行导致第二操作的操作结果不准确,也可以影响第一操作的执行导致第一操作的操作结果不准确。此时,可阻塞第一操作,即暂停第一操作的执行,可以在第二操作对当前所针对的第二细粒度区域操作完成后,执行第一操作。即第一细粒度区域与第二细粒度区域不重叠时,执行第一操作。
在本实施例中,在第一细粒度区域与第二细粒度区域有重叠时,阻塞第一操作,能够避免由于各操作的细粒度区域的重叠而导致的操作错误、操作结果不准确,保证各操作的正确性。
图3a和图3b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图3a和图3b所示,整体存储区域20中包括目标存储区域21,其中,目标存储区域21被划分为4个细粒度区域,依次为细粒度区域22、细粒度区域23、细粒度区域24和细粒度区域25。
如图3a所示,当前仅包括写操作,用写指针wp表示写操作当前所针对的细粒度区域。在写操作刚开始时,写指针wp指向细粒度区域22,可首先判断是否存在正在进行的针对目标存储区域21的第二操作,如果判断结果为不存在第二操作,则开始对细粒度区域22进行写操作;当完成对细粒度区域22的写操作后,写指针wp增加,即wp++,并指向下一个细粒度区域23,进行同样的判断后,开始对细粒度区域23进行写操作;当完成对细粒度区域23的写操作后,写指针wp增加,指向下一个细粒度区域24,进行同样的判断后,开始对细粒度区域24进行写操作。
又如图3b所示,当前包括两个操作,读操作和写操作,其中读操作为第一操作,写操作为第二操作。并且使用写操作的写指针wp和读操作的读指针rp分别表示写操作和读操作当前所针对的细粒度区域。
在执行读操作(第一操作)时,判断是否存在正在进行的针对目标存储区域21的第二操作。经判断,当前存在第二操作写操作,进一步判断读操作(第一操作)当前所针对的第一细粒度区域(图3b中的细粒度区域22)与写操作(第二操作)当前所针对的第二细粒度区域(图3b中的细粒度区域24)之间是否重叠,例如可根据细粒度区域的编号(22和24),或根据rp与wp之间的关系(rp=0,wp=2,rp<wp),确定出第一细粒度区域与第二细粒度区域之间不重叠,然后,可执行读操作(第一操作)。
当完成对细粒度区域22的读操作后,rp增加,即rp++,并指向下一个细粒度区域23,进行同样的判断后,第一操作开始对细粒度区域23进行操作;当完成对细粒度区域23的读操作后,rp增加并指向下一个细粒度区域24。在该情况下,继续判断第一细粒度区域与第二细粒度区域之间是否重叠,如果细粒度区域编号相同或指针rp=wp,即可判断第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域重叠,则第一操作不可执行,阻塞第一操作。当第二操作完成对细粒度区域24的操作后,wp增加,并指向下一个细粒度区域25时,rp<wp,可以执行第一操作。
在一种可能的实现方式中,所述第一操作和所述第二操作中可至少一个操作为写操作。即,当对目标数据的操作为写后读(第二操作为写操作,第一操作为读操作)、读后写(第二操作为读操作,第一操作为写操作)或者写后写(第二操作和第一操作均为写操作)时,可采用本公开实施例中的方法。
例如,如果第一操作为读操作,第二操作为写操作,第一操作需要读取的目标操作数需要是第二操作写操作后的数据,第二操作所针对的第二细粒度区域的编号为8,则第一操作仅能够读取编号在8之前的细粒度区域的数据。也就是说,如果第一操作当前所针对的第一细粒度区域为编号1~7的细粒度区域中的任意一个,则可以执行第一操作。
在一种可能的实现方式中,如果第一操作和第二操作均为读操作,则第一操作和第二操作的细粒度区域之间的关系不会影响操作结果,可以采用本公开实施例中的方法,也可直接执行第一操作而不进行细粒度区域的判断。
在本实施例中,当第一操作和第二操作中的至少一个操作为写操作时,通过使用本公开实施例中的方法,通过将目标存储区域划分为一个或多个细粒度区域,并以细粒度区域为单位执行操作,可以使得读后写、写后读、写后写等操作既能够正确的执行,得到准确的执行结果,又可以减少操作之间的等待时间,提高处理器的执行效率。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量可以是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
可以理解,确定所述细粒度区域的尺寸和/或数量可以是在操作生成前预先设定好的,也可以是每条操作生成时实时确定的。其中,在操作前预先设定好细粒度区域的尺寸和/或数量,可以包括根据预先设定好的预设长度的数据所在区域、预先设定好的预设维度的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量。而预先设定好的设定长度的数据和预先设定好的预设维度的数据可以与各操作的操作数无关,也可以预先根据各操作的操作数综合确定,可以根据需求确定。而在每条操作生成时实时确定细粒度区域的尺寸和/或数量,可以包括根据各操作的操作数,确定设定长度的数据或设定维度的数据,即,可以根据各操作的操作数的不同,实时确定设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量。
举例来说,可根据设定长度的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,可根据目标操作数中设定长度的数据所在存储区域的尺寸,来设定细粒度区域的尺寸,该区域可以为固定的位宽。例如,目标操作数B是20*10*5的三维数据,其在目标存储区域的存储方式为40*25(即每行40位数据,共25行),则可将设定长度设定为40位,将目标存储区域的每1行设为一个细粒度区域,目标操作数B的存储区域可划分为25个细粒度区域;也可将存储区域的每5行设为一个细粒度区域,目标操作数B的存储区域可划分为5个细粒度区域。本公开对此不作限制。
可以理解的是,根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,可以在目标存储区域中确定细粒度区域的尺寸和/或数量,也可以在目标存储区域所在的整体存储区域中确定细粒度区域的尺寸和/或数量,以及在整体存储区域中的其他区域确定细粒度区域的尺寸和/或数量。上述示例仅给出其中一种情况,本公开不限定根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种,确定细粒度区域的尺寸和/或数量的适用划分范围。
在一种可能的实现方式中,还可根据设定维数的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,目标操作数C是20*10的二维数据,可根据设定维数为1维、长度为20的数据,将目标操作数C的存储区域划分为10个细粒度区域。
此外,还可同时根据目标操作数的存储区域中的设定长度的数据所在区域的大小和设定维度的数据所在区域的大小,确定细粒度区域的尺寸和/或数量。例如,针对目标操作数C,可根据设定维数为2维、尺寸为4*2的数据来划分细粒度区域,从而将目标操作数C的存储区域划分为25个细粒度区域。
应当理解,本领域技术人员可根据实际情况设定划分细粒度区域的尺寸和/或数量,本公开对此不作限制。
在本实施例中,通过根据设定长度的数据所在区域的大小和/或设定维度的数据所在区域的大小,来确定所述细粒度区域的尺寸和/或数量,可针对数据特性来完成对细粒度区域的划分,能够提高细粒度区域划分的灵活性,从而提高多操作的执行的效率,也可以使得细粒度区域的划分结果能够更加符合不同操作数的特性,从而适应不同类型操作数的处理需求,进一步提高多操作的整体执行效率。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量可以是根据硬件计算能力、硬件带宽中的至少一种确定的。
其中,硬件计算能力可以是硬件在一个计算周期内并行处理的数据量,硬件带宽可以是数据传输能力,例如单位时间内传输的数据量。
举例来说,应用该处理器操作方法的处理器,其硬件计算能力为一个计算周期内并行处理100位数据,硬件带宽为单位时间内传输200位数据,对于大小为1000位的目标存储区域,可根据硬件计算能力将该目标存储区域划分为10个细粒度区域,其中,每个细粒度区域包括100位数据;也可根据硬件带宽将该目标存储区域划分为5个细粒度区域,其中,每个细粒度区域包括200位数据。
应该理解,硬件计算能力、硬件带宽可根据处理器硬件的不同而不同,本公开对硬件计算能力、硬件带宽不作限制。
可以理解的是,根据硬件计算能力、硬件带宽中的至少一种,可以在目标存储区域中确定细粒度区域的尺寸和/或数量,也可以在目标存储区域所在的整体存储区域中确定细粒度区域的尺寸和/或数量,以及在整体存储区域中的其他区域确定细粒度区域的尺寸和/或数量。上述示例仅给出其中一种情况,本公开不限定根据硬件计算能力、硬件带宽中的至少一种,确定细粒度区域的尺寸和/或数量的适用划分范围。
通过这种方式,可根据处理器的处理能力(硬件计算能力和/或硬件带宽)来确定所述细粒度区域的尺寸和/或数量,使得细粒度区域的划分结果更加符合不同硬件使用环境的需求,使得根据细粒度区域执行的操作与处理器的处理能力趋于同步,能够尽可能地发挥硬件的执行效率,从而提高处理器的处理效率。
在一种可能的实现方式中,所述第一操作可以为第一处理指令中的操作,所述第二操作可以为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
其中,第一处理指令和第二处理指令可包括数据存取指令、运算指令、同步指令和通信指令等一种或多种,譬如该指令为读且运算指令。本公开对第一处理指令和第二处理指令的具体类型不作限制。
在一种可能的实现方式中,第一指令可以与第二指令有依赖关系,例如,第一指令需要使用第二指令的计算结果等依赖关系。第一指令也可以与第二指令没有依赖关系。当第一指令与第二指令有依赖关系时,通过本公开实施例中的方法,第一指令与第二指令可以并行执行。
在本实施例中,第一操作和第二操作可以是不同指令中的操作,利用本公开实施例中的方法,可以提高指令执行效率。
在一种可能的实现方式中,第一操作和第二操作也可以为同一处理指令中的两个操作,第二操作可以与第一操作无关,或者第二操作可以基于第一操作的结果。其中,该处理指令可以包括数据存取指令、运算指令、同步指令和通信指令等一种或多种,譬如该指令为“读和加”运算指令,则第一操作为读操作,第二操作为加法运算操作。本公开对该处理指令的具体类型不作限制。
在一种可能的实现方式中,所述方法还可包括:记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
步骤S13可包括:当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
在一种可能的实现方式中,位置信息可包括细粒度区域的标识信息。标识信息可以包括数字、字母符号的任意组合。本公开对此不做限定。
例如,位置信息可使用细粒度区域的编号信息来表示,可将目标存储区域被划分为6个细粒度区域,其编号依次为0-5。在执行针对目标存储区域的第一操作和第二操作时,可分别记录第一操作当前操作的第一细粒度区域的第一位置信息(例如编号为2)和第二操作当前操作的第二细粒度区域的第二位置信息(例如编号为5);然后根据编号信息之间的关系(2<5),可知,第一位置信息与第二位置信息不一致;此时,执行第一操作。
在一种可能的实现方式中,位置信息可包括细粒度区域的地址信息。地址信息可以包括细粒度区域的起始地址信息、终止地址信息、细粒度区域中预设位置的地址信息、地址偏移量信息中的至少一个。例如,细粒度区域的位置信息为ADDR15-ADDR31。
通过这种方式,可使用位置信息直接高效地判断第一细粒度区域与第二细粒度区域是否重叠,确定是否执行第一操作,可提高处理器的执行效率。
在一种可能的实现方式中,所述第一位置信息可包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息可包括第二操作已操作完成的细粒度区域的第二数量,
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作,可包括:当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
举例来说,第一操作为第二操作之后的操作,其目标存储区域被划分为6个细粒度区域,其位置信息可使用已操作完成的细粒度区域的数量来表示。在执行针对目标存储区域的第一操作和第二操作时,可分别记录第一操作已操作完成的细粒度区域的第一数量(例如第一数量为3)和第二操作已操作完成的细粒度区域的第二数量(例如第二数量为5);然后根据第一操作与第二操作的执行顺序,以及第一数量与第二数量的关系,可知,第一操作为第二操作之后的操作,且第一数量3小于第二数量5,此时,执行第一操作。
通过这种方式,可根据已操作完成的细粒度区域的数量来直观地判断第一细粒度区域与第二细粒度区域是否重叠,进而确定是否执行第一操作,可简化判断过程,提高处理器的执行效率。
在一种可能的实现方式中,所述目标存储区域可包括可操作区域和非可操作区域,步骤S12可包括:在存在所述第二操作,且所述第一操作当前所针对的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠。
在一种可能的实现方式中,目标存储区域中可包括一个或多个非可操作区域、也可包括连续或不连续的非可操作区域。
在一种可能的实现方式中,目标存储区域中可包括一个或多个可操作区域、也可包括连续或不连续的可操作区域。本公开对此不做限定。
在一种可能的实现方式中,在第一操作为针对目标存储区域的操作时,可首先判断是否存在正在进行的针对目标存储区域的第二操作;当存在第二操作时,判断第一操作所针对的第一细粒度区域是否位于可操作区域内;当存在第二操作,且第一操作所针对的第一细粒度区域位于可操作区域内时,然后再判断第一操作所针对的第一细粒度区域与第二操作所针对的第二细粒度区域之间是否有重叠;当第一细粒度区域与第二细粒度区域之间没有重叠时,执行第一操作。
在一种可能的实现方式中,所述非可操作区域可以包括禁止操作区域和非禁止操作区域。如果第一操作为写操作,当目标操作数的部分数据不可修改时,可将该部分数据所在的存储区域设定为禁止操作区域,以避免误修改该部分数据;如果正在进行的第二操作为读取第一操作之前的数据的读操作(读后写),则可将第二操作所在的一个或多个细粒度区域设定为非禁止操作区域,当第二操作完成对非禁止操作区域的读取后,可将该非禁止操作区域变更为可操作区域。本公开对非可操作区域的分类及划分方式不作限制。
在本实施例中,可先判断第一操作的细粒度区域是否可操作,再判断不同操作的细粒度区域之间的关系,一方面提高了判断的效率,另一方面可以对指定数据进行保护以防止有误操作发生,也可以对指定的空间禁止读写,从而预留出该空间,用于执行其他操作,进一步提高了处理器在执行细粒度同步时的灵活性。
在一种可能的实现方式中,所述非可操作区域可以为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述方法还可包括:当所述第二操作所针对的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
也就是说,包括第二细粒度区域在内的非可操作区域可以不随第二操作所针对的第二细粒度区域的更新而更新,当第二操作所针对的第二细粒度区域移出非可操作区域后,更新非可操作区域的位置。例如,非可操作区域可以为包括所述第二细粒度区域在内的Q个细粒度区域(Q为大于1的整数),当前的非可操作区域包括第2至第2+Q-1个细粒度区域。当第二操作在非可操作区域内执行完Q个细粒度区域后,移出非可操作区域,则非可操作区域的位置随着第二操作所针对的细粒度区域的位置进行更新,更新后的非可操作区域包括第2+Q个至2+Q+Q-1个细粒度区域。其中,Q的大小可以根据需求任意确定。
图4a和图4b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图4a所示,目标存储区域30包括8个细粒度区域,其中,可操作区域包括5个细粒度区域(细粒度区域31、细粒度区域35、细粒度区域36、细粒度区域37和细粒度区域38),非可操作区域M0包括3个细粒度区域(细粒度区域32、细粒度区域33和细粒度区域34)。其中,第二操作当前所针对的第二细粒度区域为细粒度区域32。
当第二操作执行完对细粒度区域32的操作后,第二操作当前所针对的第二细粒度区域为细粒度区域33,此时,第二操作当前所针对的第二细粒度区域(细粒度区域33)未移出非可操作区域,不更新非可操作区域的位置;当第二操作执行完对细粒度区域33的操作后,第二操作当前所针对的第二细粒度区域为细粒度区域34,此时,第二操作当前所针对的第二细粒度区域(细粒度区域34)还未移出非可操作区域,不更新非可操作区域的位置;当第二操作执行完对细粒度区域34的操作后,第二操作当前所针对的第二细粒度区域为细粒度区域35,此时,第二操作当前所针对的第二细粒度区域(细粒度区域35)已移出非可操作区域,更新非可操作区域的位置到细粒度区域35、36和37)。需要说明的是,本公开对非可操作区域的大小不做限定。
如图4b所示,更新非可操作区域的位置后,在目标存储区域30中可操作区域包括5个细粒度区域(细粒度区域31、细粒度区域32、细粒度区域33、细粒度区域34和细粒度区域38),非可操作区域M0包括3个细粒度区域(细粒度区域35、细粒度区域36和细粒度区域37)。
通过这种方式,不需要实时更新非可操作区域的位置,能够降低更新非可操作区域所产生的开销。
在一种可能的实现方式中,所述非可操作区域可以为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,所述非可操作区域的位置随所述第二操作的操作位置更新。
也就是说,当非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域时,可以设定第二细粒度区域在非可操作区域中的位置(例如中间位置、最后位置等),非可操作区域的位置随第二操作的操作位置而更新。例如,非可操作区域可以为包括所述第二细粒度区域在内的Q个细粒度区域,当前的非可操作区域包括第2至第2+Q-1个细粒度区域,第二细粒度区域在非可操作区域内的设定位置为第R个(其中R≤Q)。当第二操作执行完成对当前所针对的细粒度区域的操作后,第二操作开始执行针对下一个细粒度区域的操作,此时,非可操作区域的位置随第二操作的操作位置而更新,更新后的非可操作区域包括第2+1至第2+Q个细粒度区域。其中,Q的大小及R的取值可根据需求确定。本公开对非可操作区域包括的细粒度区域的数量、第二细粒度区域位于非可操作区域内的位置均不作限制。
图5a和图5b示出根据本公开实施例的处理器操作方法的应用场景的示意图。如图5a所示,目标存储区域40中包括8个细粒度区域,其中,可操作区域包括5个细粒度区域(细粒度区域41、细粒度区域45、细粒度区域46、细粒度区域47和细粒度区域48),非可操作区域M1包括3个细粒度区域(细粒度区域42、细粒度区域43和细粒度区域44)。其中,第二操作当前所针对的第二细粒度区域设定为位于非可操作区域M1的第二个细粒度区域,即细粒度区域43。
当第二操作执行完对细粒度区域43的操作后,第二操作当前所针对的第二细粒度区域为细粒度区域44,此时,非可操作区域的位置随第二操作的操作位置而更新,以使第二操作当前所针对的第二细粒度区域位于非可操作区域M1的第二个细粒度区域。
如图5b所示,更新非可操作区域的位置后的目标存储区域40中,可操作区域包括5个细粒度区域(细粒度区域41、细粒度区域42、细粒度区域46、细粒度区域47和细粒度区域48),非可操作区域M1包括3个细粒度区域(细粒度区域43、细粒度区域44和细粒度区域45)。
通过这种方式,能够实时更新非可操作区域的位置,提高细粒度处理的同步程度,从而进一步提高数据同步处理的效率。
在一种可能的实现方式中,所述目标存储区域可包括:循环缓冲存储区域。所述循环缓冲存储区域可用于循环存储数据。
图6示出根据本公开实施例的处理器操作方法的循环缓冲存储区域的示意图。如图6所示,目标存储区域50中包括循环缓冲存储区域51,其地址为start_addr~end_addr。
例如,第二操作为写操作,可将目标操作数写入循环缓冲存储区域51中,其地址指针point从start_addr开始,依次向下存储数据,直到end_addr,即占满循环缓冲存储区域51的存储空间,此时,地址指针point跳回到start_addr,判断该地址是否被所需同步的第一操作使用完毕,如果使用完毕,则将数据存储到该地址,覆盖原有数据,之后地址指针point依次向下移动,直到end_addr,此时,可重新覆盖数据,循环上述过程。
在本实施例中,采用循环缓冲存储区域来存储数据,既可节省数据存储空间,也可提高存储空间使用效率。
在一种可能的实现方式中,可将循环缓冲存储区域划分为多个细粒度区域。对于每个细粒度区域,可通过列表或标志位或其他方式来对细粒度区域中的数据是否可覆盖进行管理,例如,可设置覆盖标志位来表示细粒度区域中的数据是否可覆盖。
举例来说,第一操作为读操作,第二操作为写操作,即先写后读,可使用写指针wp和读指针rp分别表示第二操作和第一操作当前所针对的细粒度区域。在第二操作当前所针对的第二细粒度区域的覆盖标志位为可覆盖时,可执行第二操作,写入数据,数据写入完成后,将该第二细粒度区域的覆盖标志位设为不可覆盖,wp++,第二操作当前所针对的第二细粒度区域为下一个细粒度区域,如果wp>end_addr,则wp=start_addr;在第一操作当前所针对的第一细粒度区域与第二细粒度区域之间不重叠,且第一细粒度区域的覆盖标志位为不可覆盖时,可执行第一操作,读取数据,数据读取完成后,将该第一细粒度区域的覆盖标志位设为可覆盖,rp++,第一操作当前所针对的第一细粒度区域为下一个细粒度区域,如果rp>end_addr,则rp=start_addr;在第一细粒度区域与第二细粒度区域有重叠,即rp=wp时,则不可执行第一操作,需等待第二操作完成对当前所针对的第二细粒度区域的操作后,可执行第一操作。
在本实施例中,将循环缓冲存取区域划分为多个细粒度区域,使得多个操作可同时对循环缓冲存储区域进行操作,从而提高处理器的处理效率。
在一种可能的实现方式中,所述细粒度区域可包括状态标识,所述状态标识可包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
步骤S13可包括:在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;若是,则执行所述第一操作。
在一种可能的实现方式中,细粒度区域可包括状态标识,状态标识可包括操作细粒度区域的操作已完成状态或操作未完成状态。例如,状态标识可使用0和1来表示,其中,0表示操作细粒度区域的操作未完成状态,1表示操作细粒度区域的操作已完成状态,或者0表示操作细粒度区域的操作已完成状态,1表示操作细粒度区域的操作未完成状态。本公开对状态标识的表示方式不作限制。
在一种可能的实现方式中,第二操作可将目标存储区域中已操作完成的细粒度区域的状态标识设置为操作已完成状态,未操作或正在操作的细粒度区域的状态标识设置为操作未完成状态。也可将已操作完成的细粒度区域中的部分细粒度区域的状态标识设置为操作已完成状态,其他细粒度区域设置为操作未完成状态。例如,第二操作已操作完成5个细粒度区域,可将前3个细粒度区域的状态标识设置为操作已完成状态,其他细粒度区域设置为操作未完成状态。
在一种可能的实现方式中,在存在正在进行的针对目标存储区域的第二操作时,对于第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域,可在确定第一细粒度区域与第二细粒度区域之间不重叠后,判断第一细粒度区域的状态标识是否为操作已完成状态;如果第一细粒度区域的状态标识为操作已完成状态,可执行第一操作。
在本实施例中,细粒度区域包括状态标识,在第一细粒度区域与第二细粒度区域之间不重叠时,根据第一细粒度区域的状态标识,确定第一操作是否可执行,可在提高处理器的处理效率的同时,提高数据处理的正确性。
在一种可能的实现方式中,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,步骤S13可包括:判断所述第一细粒度区域的状态标识是否为操作已完成状态;若是,则在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
也就是说,在存在正在进行的针对目标存储区域的第二操作时,对于第一操作当前所针对的第一细粒度区域与第二操作当前所针对的第二细粒度区域,可在确定第一细粒度区域的状态标识为操作已完成状态后,根据第一细粒度区域与第二细粒度区域之间重叠关系,确定第一操作是否可执行。在第一细粒度区域与第二细粒度区域之间不重叠时,可执行第一操作。
在本实施例中,细粒度区域包括状态标识,可在确定第一细粒度区域的状态标识为操作已完成状态后,根据第一细粒度区域与第二细粒度区域之间重叠关系,确定第一操作是否可执行,可在提高数据处理的正确性同时,提高处理器的处理效率。
在一种可能的实现方式中,所述第一操作和所述第二操作的目标操作数一致,所述目标存储区域为所述目标操作数的存储区域。
在一种可能的实现方式中,当第一操作的目标操作数和第二操作的目标操作数一致时,目标存储区域可以是一个目标操作数的存储区域。此目标操作数的存储区域即为目标存储区域。将目标存储区域划分为多个细粒度区域后,根据本公开实施例中的方法,可以使得操作相同目标操作数的两个操作并行执行而不影响各操作的执行结果。
在本实施例中,可使用本公开实施例中的方法,实现针对相同操作数的两个操作的并行执行,提高处理器的执行效率。
在一种可能的实现方式中,所述目标存储区域为第一操作中第一操作数的第一存储区域和第二操作中第二操作数的第二存储区域之间的重叠区域。
在一种可能的实现方式中,当两个操作数的存储区域存在重叠区域时,目标存储区域即为重叠区域。可以将两个操作的存储区域中的重叠区域划分为多个细粒度区域,根据本公开实施例中的方法,可以使得操作数的存储区域有重叠区域的两个操作并行执行而不影响各操作的执行结果。
在本实施例中,当两个操作的操作数的存储区域有重叠时,可使用本公开实施例中的方法实现两个操作的并行执行,提高处理器的执行效率。
在一种可能的实现方式中,所述方法还可包括:将目标存储区域所在的整体存储区域划分为多个细粒度区域。
在一种可能的实现方式中,目标存储区域可以为存储装置的整体存储区域中的部分存储区域或全部存储区域,所述整体存储区域包括预设的多个细粒度区域。
例如目标存储区域所在的整体存储区域为RAM1,RAM1可以包括预先设定m个细粒度区域(m为正整数)。目标存储区域在RAM1中可以占据RAM1中的n个细粒度区域(n为正整数,且n<=m)。需要说明的是,目标存储区域也可以包括某细粒度区域中的部分区域。在如上示例的RAM1中,假设每个细粒度区域为整体存储区域RAM1中的一行,每行为100比特。目标存储区域可以包括前面(n-1)个完整的细粒度区域,并且又包括最后一个细粒度区域的部分区域,例如为RAM1中第n行(第n个细粒度区域)中的前80个比特。
在一种可能的实现方式中,当将存储装置的整体存储区域划分为多个细粒度区域时,针对整体存储区域中任意目标存储区域的任意操作,且无论目标存储区域为第一操作和第二操作的相同目标操作数的存储区域,还是目标存储区域为第一操作中第一操作数的存储区域和第二操作中第二操作数的存储区域的重叠区域,都可以根据整体存储区域的细粒度划分结果,确定目标存储区域中的细粒度区域。任意操作的任意操作数在整体存储区域的中存储区域,具有相同尺寸的细粒度区域。
在一种可能的实现方式中,可以根据存储装置的硬件特性,确定整体存储区域的细粒度区域的尺寸和/或数量,即可以根据存储装置的硬件计算能力、硬件带宽中的至少一种,确定整体存储区域的细粒度区域的尺寸和/或数量。
在本实施例中,将目标存储区域所在的整体存储区域划分为多个细粒度区域,针对整体存储区域中任意目标存储区域的任意操作,都可以按照相同的细粒度尺寸执行,不同操作按照本公开实施例中的方法并行时,可以更加方便地同步,提高操作并行度,进而提高处理器的处理效率。
在一种可能的实现方式中,所述方法还可包括:
根据第一操作中携带的第一细粒度划分信息,将所述第一操作中第一操作数的第一存储区域划分为多个细粒度区域,及
根据第二操作中携带的第二细粒度划分信息,将所述第二操作中第二操作数的第二存储区域划分为多个细粒度区域。
在一种可能的实现方式中,可以在操作中携带细粒度划分信息,细粒度划分信息可以包括细粒度的尺寸和/或数量。不同的操作可以携带不同的细粒度划分信息。相同类型的操作可携带相同的细粒度划分信息。可在操作中操作数的设定位置携带细粒度划分信息,也可在操作码或操作数中携带是否进行细粒度划分的标识信息。本公开对细粒度划分信息中的内容及表现方式不做限定。
在一种可能的实现方式中,根据第一操作中携带的第一细粒度划分信息,将第一操作数的第一存储区域划分为多个第一细粒度区域。第一操作数所在的整体存储区域中的其他区域,可不进行细粒度的划分,也可按照其他操作携带的细粒度划分信息,进行细粒度的划分。本公开对此不做限定。
可以理解的是,当第二操作的第二操作数与第一操作的第一操作数一致时,第一存储区域与第二存储区域完全重叠。而第一细粒度划分信息和第二细粒度划分信息可以一致,也可以不一致。当第一细粒度划分信息和第二细粒度划分信息不一致时,第一存储区域可同时按照第二细粒度划分信息进行细粒度划分。即,针对同一个存储区域,不同的操作可以将其划分为不同尺寸或数量的多个细粒度区域。此时,可根据第一操作当前所针对的第一细粒度区域的物理地址,以及第二操作当前所述针对的第二细粒度区域之间的物理地址,判断第一细粒度区域与第二细粒度区域是否重叠,并根据判断结果进行第一操作和第二操作的并行执行。
在一种可能的实现方式中,各操作中携带的细粒度划分信息,可包括根据设定长度的操作数据所在区域、设定维数的操作数所在区域中的至少一种,确定出的所述细粒度区域的尺寸和/或数量,使得细粒度的划分结果更加符合操作中操作数的类型或属性。
在本实施例中,根据第一操作中携带的第一细粒度划分信息,将所述第一操作中第一操作数的第一存储区域划分为多个细粒度区域,及根据第二操作中携带的第二细粒度划分信息,将所述第二操作中第二操作数的第二存储区域划分为多个细粒度区域。根据操作中携带的细粒度划分信息进行细粒度的划分,可使得细粒度的划分结果,更加符合各操作的处理需求,操作并行更加灵活。
应当理解,本领域技术人员可以根据实际情况将目标存储区域进行细粒度区域的划分与设置,本公开对此不作限制。
需要说明的是,尽管以上述实施例作为示例介绍了处理器操作方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各步骤,只要符合本公开的技术方案即可。
图7示出根据本公开实施例的处理器操作装置的框图。如图7所示,所述处理器操作装置包括:
操作判断模块71,用于在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;
重叠判断模块72,用于在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;
执行模块73,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,所述装置还包括:执行控制模块,用于在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
在一种可能的实现方式中,所述第一操作和所述第二操作中的至少一个操作为写操作。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
在一种可能的实现方式中,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
在一种可能的实现方式中,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
在一种可能的实现方式中,所述装置还包括:位置记录模块,用于记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,所述执行模块73,包括:第一执行子模块,用于当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
在一种可能的实现方式中,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,第一执行子模块,还用于:当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
在一种可能的实现方式中,所述目标存储区域包括可操作区域和非可操作区域,所述重叠判断模块72,包括:判断子模块,用于在存在所述第二操作,且所述第一操作当前所针对的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否重叠。
在一种可能的实现方式中,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述装置还包括:
更新模块,用于当所述第二操作所针对的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
在一种可能的实现方式中,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,所述非可操作区域的位置随所述第二操作的操作位置更新。
在一种可能的实现方式中,所述目标存储区域包括:循环缓冲存储区域。
在一种可能的实现方式中,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块73,包括:第一状态判断子模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;第二执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态时,执行所述第一操作。
在一种可能的实现方式中,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块73,包括:第二状态判断子模块,用于判断所述第一细粒度区域的状态标识是否为操作已完成状态;第三执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态,且所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
在一种可能的实现方式中,所述第一操作和所述第二操作的目标操作数一致,所述目标存储区域为所述目标操作数的存储区域。
在一种可能的实现方式中,所述目标存储区域为第一操作中第一操作数的第一存储区域和第二操作中第二操作数的第二存储区域之间的重叠区域。
在一种可能的实现方式中,所述装置还包括:第一设定模块,用于将目标存储区域所在的整体存储区域划分为多个细粒度区域。
在一种可能的实现方式中,所述装置还包括:
第二设定模块,用于根据第一操作中携带的第一细粒度划分信息,将所述第一操作中第一操作数的第一存储区域划分为多个细粒度区域,及
第三设定模块,用于根据第二操作中携带的第二细粒度划分信息,将所述第二操作中第二操作数的第二存储区域划分为多个细粒度区域。
在一种可能的实现方式中,还公开了一种人工智能芯片,其包括了上述处理器操作装置。
在一种可能的实现方式中,还公开了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;所述存储器件,用于存储数据;所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;所述控制器件,用于对所述人工智能芯片的状态进行监控。
在一种可能的实现方式中,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;所述人工智能芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;所述接口装置为:标准PCIE接口。
图8示出根据本公开实施例的板卡的结构框图,参阅图8,上述板卡除了包括上述人工智能芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与人工智能芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述人工智能芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述人工智能芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述人工智能芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述人工智能芯片电连接。所述接口装置用于实现所述人工智能芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述人工智能芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本公开并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述人工智能芯片电连接。所述控制器件用于对所述人工智能芯片的状态进行监控。具体的,所述人工智能芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述人工智能芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述人工智能芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述人工智能芯片芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,公开了一种电子设备,其包括了上述人工智能芯片。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
A1、一种处理器操作方法,所述方法包括:
在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;
在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A2、根据权利要求A1所述的方法,所述方法还包括:
在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
A3、根据权利要求A1所述的方法,所述第一操作和所述第二操作中的至少一个操作为写操作。
A4、根据权利要求A1所述的方法,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
A5、根据权利要求A1所述的方法,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
A6、根据权利要求A1所述的方法,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
A7、根据权利要求A1-A6中任意一项所述的方法,所述方法还包括:
记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
A8、根据权利要求A7所述的方法,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,
当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作,包括:
当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
A9、根据权利要求A1所述的方法,所述目标存储区域包括可操作区域和非可操作区域,在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否重叠,包括:
在存在所述第二操作,且所述第一操作当前所针对的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否重叠。
A10、根据权利要求A9所述的方法,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述方法还包括:
当所述第二操作所针对的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
A11、根据权利要求A9所述的方法,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,
所述非可操作区域的位置随所述第二操作的操作位置更新。
A12、根据权利要求A1所述的方法,所述目标存储区域包括:循环缓冲存储区域。
A13、根据权利要求A1所述的方法,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;
若是,则执行所述第一操作。
A14、根据权利要求A1所述的方法,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态;
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作,包括:
判断所述第一细粒度区域的状态标识是否为操作已完成状态;
若是,则在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A15、根据权利要求A1所述的方法,所述第一操作和所述第二操作的目标操作数一致,所述目标存储区域为所述目标操作数的存储区域。
A16、根据权利要求A1所述的方法,所述目标存储区域为第一操作中第一操作数的第一存储区域和第二操作中第二操作数的第二存储区域之间的重叠区域。
A17、根据权利要求A1-A16中任意一项所述的方法,所述方法还包括:
将目标存储区域所在的整体存储区域划分为多个细粒度区域。
A18、根据权利要求A1-A17中任意一项所述的方法,所述方法还包括:
根据第一操作中携带的第一细粒度划分信息,将所述第一操作中第一操作数的第一存储区域划分为多个细粒度区域,及
根据第二操作中携带的第二细粒度划分信息,将所述第二操作中第二操作数的第二存储区域划分为多个细粒度区域。
A19、一种处理器操作装置,所述装置包括:
操作判断模块,用于在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;
重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;
执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A20、根据权利要求A19所述的装置,所述装置还包括:
执行控制模块,用于在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
A21、根据权利要求A19所述的装置,所述第一操作和所述第二操作中的至少一个操作为写操作。
A22、根据权利要求A19所述的装置,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
A23、根据权利要求A19所述的装置,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
A24、根据权利要求A19所述的装置,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
A25、根据权利要求A19-A24中任意一项所述的装置,所述装置还包括:
位置记录模块,用于记录所述第一操作当前操作的第一细粒度区域的第一位置信息和所述第二操作当前操作的第二细粒度区域的第二位置信息,
所述执行模块,包括:
第一执行子模块,用于当所述第一位置信息与所述第二位置信息不一致时,执行所述第一操作。
A26、根据权利要求A25所述的装置,所述第一位置信息包括第一操作已操作完成的细粒度区域的第一数量,所述第二位置信息包括第二操作已操作完成的细粒度区域的第二数量,
所述第一执行子模块,还用于:
当所述第一操作为所述第二操作之后的操作,且所述第一数量小于所述第二数量时,执行所述第一操作。
A27、根据权利要求A19所述的装置,所述目标存储区域包括可操作区域和非可操作区域,所述重叠判断模块,包括:
判断子模块,用于在存在所述第二操作,且所述第一操作当前所针对的第一细粒度区域位于所述可操作区域内时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否重叠。
A28、根据权利要求A27所述的装置,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域在所述非可操作区域内的位置随所述第二操作的操作位置更新,所述装置还包括:
更新模块,用于当所述第二操作所针对的第二细粒度区域移出所述非可操作区域后,更新所述非可操作区域的位置。
A29、根据权利要求A27所述的装置,所述非可操作区域为包括所述第二细粒度区域在内的多个细粒度区域,且所述第二细粒度区域位于所述非可操作区域内的设定位置,
所述非可操作区域的位置随所述第二操作的操作位置更新。
A30、根据权利要求A19所述的装置,所述目标存储区域包括:循环缓冲存储区域。
A31、根据权利要求A19所述的装置,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块,包括:
第一状态判断子模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第二执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态时,执行所述第一操作。
A32、根据权利要求A19所述的装置,所述细粒度区域包括状态标识,所述状态标识包括操作所述细粒度区域的操作已完成状态或操作未完成状态,
所述执行模块,包括:
第二状态判断子模块,用于判断所述第一细粒度区域的状态标识是否为操作已完成状态;
第三执行子模块,用于在所述第一细粒度区域的状态标识为操作已完成状态,且所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
A33、根据权利要求A19所述的装置,所述第一操作和所述第二操作的目标操作数一致,所述目标存储区域为所述目标操作数的存储区域。
A34、根据权利要求A19所述的装置,所述目标存储区域为第一操作中第一操作数的第一存储区域和第二操作中第二操作数的第二存储区域之间的重叠区域。
A35、根据权利要求A19-A34中任意一项所述的装置,所述装置还包括:
第一设定模块,用于将目标存储区域所在的整体存储区域划分为多个细粒度区域。
A36、根据权利要求A19-A35中任意一项所述的装置,所述装置还包括:
第二设定模块,用于根据第一操作中携带的第一细粒度划分信息,将所述第一操作中第一操作数的第一存储区域划分为多个细粒度区域,及
第三设定模块,用于根据第二操作中携带的第二细粒度划分信息,将所述第二操作中第二操作数的第二存储区域划分为多个细粒度区域。
A37、一种人工智能芯片,所述人工智能芯片包括如权利要求A19-A36中任意一项所述的处理器操作装置。
A38、一种电子设备,所述电子设备包括如权利要求A37所述的人工智能芯片。
A39、一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求A37所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
A40、根据权利要求A39所述的板卡,所述存储器件包括:多组存储单元,每一组所述存储单元与所述人工智能芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述人工智能芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种处理器操作方法,其特征在于,所述方法包括:
在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;
在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;
在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一细粒度区域与所述第二细粒度区域有重叠时,阻塞所述第一操作。
3.根据权利要求1所述的方法,其特征在于,所述第一操作和所述第二操作中的至少一个操作为写操作。
4.根据权利要求1所述的方法,其特征在于,所述细粒度区域的尺寸和/或数量是根据设定长度的数据所在区域、设定维数的数据所在区域中的至少一种确定的。
5.根据权利要求1所述的方法,其特征在于,所述细粒度区域的尺寸和/或数量是根据硬件计算能力、硬件带宽中的至少一种确定的。
6.根据权利要求1所述的方法,其特征在于,所述第一操作为第一处理指令中的操作,所述第二操作为第二处理指令中的操作,所述第二处理指令为指令队列中在所述第一处理指令之前的处理指令。
7.一种处理器操作装置,其特征在于,所述装置包括:
操作判断模块,用于在第一操作为针对目标存储区域的操作时,判断是否存在正在进行的针对所述目标存储区域的第二操作,所述目标存储区域包括至少一个细粒度区域;
重叠判断模块,用于在存在所述第二操作时,判断所述第一操作当前所针对的第一细粒度区域与所述第二操作当前所针对的第二细粒度区域之间是否有重叠;
执行模块,用于在所述第一细粒度区域与所述第二细粒度区域之间不重叠时,执行所述第一操作。
8.一种人工智能芯片,其特征在于,所述人工智能芯片包括如权利要求7所述的处理器操作装置。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的人工智能芯片。
10.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求8所述的人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
CN201910341003.4A 2019-04-04 2019-04-25 处理器操作方法及装置以及相关产品 Pending CN111857829A (zh)

Priority Applications (23)

Application Number Priority Date Filing Date Title
CN201910341003.4A CN111857829A (zh) 2019-04-25 2019-04-25 处理器操作方法及装置以及相关产品
EP20783678.4A EP3800547A4 (en) 2019-04-04 2020-04-01 DATA PROCESSING METHOD AND DEVICE AND RELEVANT PRODUCT
EP20217330.8A EP3825846A1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036492A KR102519470B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
EP20217329.0A EP3825843B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
EP20217333.2A EP3825848A1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036505A KR102550451B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
JP2021510522A JP7073580B2 (ja) 2019-04-04 2020-04-01 データ処理方法、装置、及び関連製品
EP20217332.4A EP3828698B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036494A KR102569336B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
EP20217331.6A EP3825847B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036508A KR102379406B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
KR1020207032006A KR20210002518A (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
EP20217328.2A EP3825842B1 (en) 2019-04-04 2020-04-01 Data processing method and apparatus, and related product
KR1020207036496A KR102522416B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
PCT/CN2020/082775 WO2020200244A1 (zh) 2019-04-04 2020-04-01 数据处理方法及装置以及相关产品
KR1020207036500A KR102579192B1 (ko) 2019-04-04 2020-04-01 데이터 처리방법과 장치 및 관련 제품
JP2020198177A JP7121102B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198021A JP7239547B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198079A JP7121100B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198102A JP7150802B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198041A JP2021170312A (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品
JP2020198158A JP7121101B2 (ja) 2019-04-04 2020-11-30 データ処理方法、装置、及び関連製品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910341003.4A CN111857829A (zh) 2019-04-25 2019-04-25 处理器操作方法及装置以及相关产品

Publications (1)

Publication Number Publication Date
CN111857829A true CN111857829A (zh) 2020-10-30

Family

ID=72951564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910341003.4A Pending CN111857829A (zh) 2019-04-04 2019-04-25 处理器操作方法及装置以及相关产品

Country Status (1)

Country Link
CN (1) CN111857829A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588300A (zh) * 2004-08-09 2005-03-02 威盛电子股份有限公司 进行硬盘阵列同位运算的装置与相关方法
WO2016040666A1 (en) * 2014-09-10 2016-03-17 Amazon Technologies, Inc. Scalable log-based transaction management
CN107347253A (zh) * 2015-02-25 2017-11-14 米雷普里卡技术有限责任公司 用于专用处理器的硬件指令生成单元
CN109543832A (zh) * 2018-11-27 2019-03-29 北京中科寒武纪科技有限公司 一种计算装置及板卡
CN109657782A (zh) * 2018-12-14 2019-04-19 北京中科寒武纪科技有限公司 运算方法、装置及相关产品

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1588300A (zh) * 2004-08-09 2005-03-02 威盛电子股份有限公司 进行硬盘阵列同位运算的装置与相关方法
WO2016040666A1 (en) * 2014-09-10 2016-03-17 Amazon Technologies, Inc. Scalable log-based transaction management
CN107347253A (zh) * 2015-02-25 2017-11-14 米雷普里卡技术有限责任公司 用于专用处理器的硬件指令生成单元
CN109543832A (zh) * 2018-11-27 2019-03-29 北京中科寒武纪科技有限公司 一种计算装置及板卡
CN109657782A (zh) * 2018-12-14 2019-04-19 北京中科寒武纪科技有限公司 运算方法、装置及相关产品

Similar Documents

Publication Publication Date Title
CN111857828B (zh) 处理器操作方法及装置以及相关产品
EP3832500B1 (en) Device and method for performing vector four-fundamental-rule operation
CN111782133A (zh) 数据处理方法及装置以及相关产品
EP3800547A1 (en) Data processing method and apparatus, and related product
US7881201B2 (en) Resending control circuit, sending device, resending control method and resending control program
US20240111536A1 (en) Data processing apparatus and related products
US20030200423A1 (en) Repeat block with zero cycle overhead nesting
CN111831337B (zh) 数据同步方法及装置以及相关产品
CN111782274B (zh) 数据处理装置及相关产品
CN111857829A (zh) 处理器操作方法及装置以及相关产品
CN111783992A (zh) 数据处理装置及相关产品
CN109542837B (zh) 运算方法、装置及相关产品
CN111782577B (zh) 数据处理装置及方法以及相关产品
CN111831329B (zh) 数据处理方法及装置以及相关产品
CN113867686A (zh) 运算方法、装置及相关产品
CN111782267B (zh) 数据处理方法及装置以及相关产品
CN111723920A (zh) 人工智能计算装置及相关产品
US9978117B2 (en) Semiconductor apparatus and high speed image data processing
CN109144505B (zh) Android页面的展示方法和装置
CN111399905B (zh) 运算方法、装置及相关产品
CN111400341B (zh) 标量查找指令处理方法、装置及相关产品
CN113807507A (zh) 数据处理方法及装置以及相关产品
CN117891390A (zh) 数据访问方法、装置、设备以及存储介质
CN113033789A (zh) 用于保序的总线系统、集成电路装置、板卡及保序方法
CN115016848A (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