CN114297098A - 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 - Google Patents
芯片的缓存系统、数据处理方法、设备、存储介质及芯片 Download PDFInfo
- Publication number
- CN114297098A CN114297098A CN202111662634.XA CN202111662634A CN114297098A CN 114297098 A CN114297098 A CN 114297098A CN 202111662634 A CN202111662634 A CN 202111662634A CN 114297098 A CN114297098 A CN 114297098A
- Authority
- CN
- China
- Prior art keywords
- access request
- read
- arithmetic
- local shared
- chip
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 239000000872 buffer Substances 0.000 claims abstract description 165
- 238000000034 method Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000000243 solution Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 239000007853 buffer solution Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种芯片的缓存系统、数据处理方法、装置、设备、存储介质及芯片,该缓存系统包括:多个运算子系统,每个运算子系统中包括至少一个运算单元、和至少一个局部共享缓存器;每个运算单元与所在运算子系统中的任意局部共享缓存器相连;局部共享缓存器,用于缓存所属的运算子系统内的运算单元读取的运算数据;运算单元,用于基于生成的访问请求,访问运算子系统中与访问请求指示的访问地址匹配的局部共享缓存器;并在从访问的局部共享缓存器中读取到访问请求指示的运算数据的情况下,基于读取到的运算数据进行运算。
Description
技术领域
本公开涉及集成电路技术领域,具体而言,涉及一种芯片的缓存系统、数据处理方法、设备、存储介质及芯片。
背景技术
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。随着神经网络的快速发展,神经网络被应用于各个领域内。
一般的,可以利用设计的人工智能(Artificial Intelligence,AI)芯片处理神经网络的运算过程。故设计高效的AI芯片成为了提升神经网络的处理效率的有效手段之一。
发明内容
有鉴于此,本公开至少提供一种芯片的缓存系统、数据处理方法、设备、存储介质及芯片。
第一方面,本公开提供了一种芯片的缓存系统,包括:多个运算子系统,每个所述运算子系统中包括至少一个运算单元、和至少一个局部共享缓存器;每个所述运算单元与所在运算子系统中的任意局部共享缓存器相连;
所述局部共享缓存器,用于缓存所属运算子系统内的运算单元读取的运算数据;
所述运算单元,用于基于生成的访问请求,访问所述运算子系统中与所述访问请求指示的访问地址匹配的局部共享缓存器;并在从访问的局部共享缓存器中读取到所述访问请求指示的运算数据的情况下,基于读取到的所述运算数据进行运算。
这里,将芯片划分为多个运算子系统,每个运算子系统中包括至少一个运算单元和至少一个局部共享缓存器。针对任一运算子系统,该运算子系统中的运算单元可以将读取的运算数据缓存至该运算子系统的局部共享缓存器中,使得该运算子系统中的各个运算单元均能够从局部共享缓存器中读取该运算数据,以及使得每个运算单元能够在不同时间点多次从局部共享缓存器中读取该运算数据,运算数据的利用率较高,且无需从缓存系统的外部多次读取该运算数据,提高了运算单元的运算效率。
一种可能的实施方式中,每个所述运算子系统中还包括:局部互联总线单元;
所述局部互联总线单元,用于将每个所述运算单元与所在运算子系统中的任意局部共享缓存器相连;以及在接收到所述运算单元发出的所述访问请求后,确定与所述访问请求指示的访问地址匹配的局部共享缓存器;
所述运算单元,用于读取所述局部互联总线单元确定的、与所述访问请求指示的访问地址匹配的局部共享缓存器。
这里,通过局部互联总线单元将每个运算单元与任一局部共享缓存器相连,使得每个运算单元能够访问任一局部共享缓存器,提高运算数据的利用率。同时,局部互联总线单元在接收到运算单元发出的访问请求后,确定与访问请求指示的访问地址匹配的局部共享缓存器,以便运算单元能够基于访问请求读取对应的局部共享缓存器。
一种可能的实施方式中,所述运算单元,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取的所述运算数据缓存至所述局部共享缓存器。
这里,在局部共享缓存器中不存在访问请求指示的运算数据时,运算单元可以基于访问请求,从芯片的存储模块中读取访问请求指示的运算数据,并将从存储模块读取的运算数据缓存至局部共享缓存器,以便后续能够从局部共享缓存器中读取到该运算数据,无需再次从存储模块读取该运算数据,提高了运算数据的复用程度。
一种可能的实施方式中,所述芯片的存储模块包括全局缓存器;
所述运算单元,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
一种可能的实施方式中,所述芯片的存储模块还包括外部存储器;
所述运算单元,还用于在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
一种可能的实施方式中,所述缓存系统,还包括:全局互联总线单元;
所述全局互联总线单元,用于将所述各个运算子系统分别与所述存储模块相连。
以下装置、电子设备等的效果描述参见上述方法的说明,这里不再赘述。
第二方面,本公开提供了一种数据处理方法,所述方法应用于第一方面或任一实施方式所述的芯片的缓存系统,所述方法包括:
获取访问请求;
基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
一种可能的实施方式中,所述方法还包括:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取到的所述运算数据缓存至所述局部共享缓存器。
一种可选实施方式中,所述在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,包括:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
一种可选实施方式中,所述方法还包括:
在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
第三方面,本公开提供了一种数据处理装置,所述装置包括:
获取模块,用于获取访问请求;
读取模块,用于基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
运算模块,用于在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
一种可能的实施方式中,所述装置还包括:访问模块,用于:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取到的所述运算数据缓存至所述局部共享缓存器。
一种可选实施方式中,所述访问模块,在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据时,用于:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
一种可选实施方式中,所述访问模块,还用于:
在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
第四方面,本公开提供一种芯片,包括:第一方面或任一实施方式所述的缓存系统和存储模块;
所述缓存系统,用于从所述存储模块中获取运算数据,并将所述运算数据进行缓存。
第五方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第二方面或任一实施方式所述的数据处理方法的步骤;或者如第四方面所述的芯片。
第六方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第二方面或任一实施方式所述的数据处理方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种芯片的缓存系统的架构示意图;
图2示出了本公开实施例所提供的另一种芯片的缓存系统的架构示意图;
图3示出了本公开实施例所提供的一种芯片的架构示意图;
图4示出了本公开实施例所提供的一种数据处理方法的流程示意图;
图5示出了本公开实施例所提供的一种数据处理装置的架构示意图;
图6示出了本公开实施例所提供的另一种芯片的架构示意图;
图7示出了本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
芯片中的算力单元工作时,可以从芯片的外部存储器中读取数据,并将读取的数据存储在内部存储器中,以便算力单元从内部存储器中读取数据,但是在需要读取的数据较多、读取数据的次数较多时,外存与内存之间的交互,使得算力单元的运算效率较低。下述以芯片为人工智能(Artificial Intelligence,AI)芯片为例进行说明。
一般的,可以利用设计的AI芯片处理神经网络的运算过程。以云侧场景为例,大规模的神经网络的推理过程和训练过程,对AI芯片的计算能力提出了更高的需求。为了满足该需求,云侧AI芯片的规模也越来越大,通过增加面积来容纳更多的计算单元,从而使得单芯片具有更大的算力。但是,更多的计算单元也意味着需要更高带宽的数据通路以支撑运算的数据需求。为了满足计算所需的带宽,常规的做法是在AI芯片内部增加缓存,通过对运算数据的复用,降低计算单元对外部存储器的访问需求。
比如,可以在AI芯片的每个计算单元内部设置缓存器,比如,设置的缓存器可以为图形处理器(graphics processing unit,GPU)的一级缓存L1Cache。通过这种方式使得同一计算单元能够多次访问缓存的同一运算数据,实现了运算数据在时间维度上的复用,满足了计算单元的带宽要求;但是,使用这种方式会造成任一计算单元内缓存的运算数据无法被其他计算单元进行读取,即针对任一计算单元,其他计算单元无法访问到该任一计算单元内缓存的运算数据,无法实现运算数据在空间维度上的复用,运算数据的使用率较低。
基于此,本公开实施例提供了一种芯片的缓存系统。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
参见图1所示,为本公开实施例所提供的芯片的缓存系统的架构示意图,该缓存系统包括:多个运算子系统11,每个所述运算子系统11中包括至少一个运算单元101、和至少一个局部共享缓存器102;每个所述运算单元101与所在运算子系统中的任意局部共享缓存器102相连。
所述局部共享缓存器102,用于缓存所属的所述运算子系统内的运算单元读取的运算数据。
所述运算单元101,用于基于生成的访问请求,访问所述运算子系统中与所述访问请求指示的访问地址匹配的局部共享缓存器;并在从访问的所述局部共享缓存器中读取到所述访问请求指示的运算数据的情况下,基于读取到的所述运算数据进行运算。
实施时,针对每个运算子系统,该运算子系统中可以包括局部缓存模块,将局部缓存模块划分成多个物理的内存库bank,每个bank可以对应一个局部共享缓存器;以及该运算子系统中的每个运算单元可以对应一个AI芯片中的计算核。
在每个运算子系统内,该运算子系统内的每个局部共享缓存器可以缓存运算数据,缓存的该运算数据可以为该运算子系统内的任一运算单元从芯片的存储模块中读取到的。进而运算单元在进行运算的时候,可以生成访问请求,并基于生成的访问请求,访问运算子系统中与该访问请求指示的访问地址匹配的局部共享缓存器。若在局部共享缓存器中读取到访问请求指示的运算数据,利用从局部共享缓存器中读取到的运算数据进行运算,比如可以进行卷积运算,得到运算结果。
这里,将芯片划分为多个运算子系统,每个运算子系统中包括至少一个运算单元和至少一个局部共享缓存器。针对任一运算子系统,该运算子系统中的运算单元可以将读取的运算数据缓存至该运算子系统的局部共享缓存器中,使得该运算子系统中的各个运算单元均能够从局部共享缓存器中读取该运算数据,以及使得每个运算单元能够在不同时间点多次从局部共享缓存器中读取该运算数据,运算数据的利用率较高,且无需从缓存系统的外部多次读取该运算数据,提高了运算单元的运算效率。
一种可选实施方式中,参见图2所示,每个所述运算子系统还包括局部互联总线单元103;所述局部互联总线单元103,用于将每个所述运算单元与所在运算子系统中的任意局部共享缓存器相连;以及在接收到所述运算单元发出的所述访问请求后,确定与所述访问请求指示的访问地址匹配的局部共享缓存器;
所述运算单元101,用于读取所述局部互联总线单元确定的、与所述访问请求指示的访问地址匹配的局部共享缓存器。
每个运算子系统中还可以包括局部互联总线单元,局部互联总线单元用于将运算子系统内的每个运算单元与任一局部共享缓存器相连。并在接收到运算单元发出的访问请求后,确定与访问请求指示的访问地址匹配的局部共享缓存器。
进而,在确定了与访问请求指示的访问地址匹配的局部共享缓存器之后,运算单元能够读取与访问请求指示的访问地址匹配的局部共享缓存器。比如,局部互联总线单元可以包括:片上网络系统(Network on Chip,NoC)等。
这里,通过局部互联总线单元将每个运算单元与任一局部共享缓存器相连,使得每个运算单元能够访问任一局部共享缓存器,提高运算数据的利用率。同时,局部互联总线单元在接收到运算单元发出的访问请求后,确定与访问请求指示的访问地址匹配的局部共享缓存器,以便运算单元能够基于访问请求读取对应的局部共享缓存器。
一种可选实施方式中,所述运算单元101,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取的所述运算数据缓存至所述局部共享缓存器。
芯片中还包括存储模块,该存储模块中存储有运算单元需要的运算数据。实施时,针对任一运算子系统,若该运算子系统内的运算单元在从与访问请求指示的访问地址匹配的局部共享缓存器中,未读取到访问请求指示的运算数据时,可以基于访问请求,从芯片的存储模块中读取访问请求指示的运算数据,并将从存储模块中读取到的运算数据缓存至该运算子系统包括的局部共享缓存器。
这里,在局部共享缓存器中不存在访问请求指示的运算数据时,运算单元可以基于访问请求,从芯片的存储模块中读取访问请求指示的运算数据,并将从存储模块读取的运算数据缓存至局部共享缓存器,以便后续能够从局部共享缓存器中读取到该运算数据,无需再次从存储模块读取该运算数据,提高了运算数据的复用程度。
一种可选实施方式中,所述芯片的存储模块包括全局缓存器;其中,所述运算单元101,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
实施时,运算子系统中的运算单元在从与访问请求指示的访问地址匹配的局部共享缓存器中,未读取到访问请求指示的运算数据时,根据该访问请求,从芯片的全局缓存器中读取访问请求指示的运算数据。若成功从全局缓存器中读取到访问请求指示的运算数据时,可以将从全局缓存器中读取到的运算数据缓存至该运算子系统内的局部共享缓存器中。
一种可选实施方式中,所述芯片的存储模块还包括外部存储器;所述运算单元,还用于在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
若运算子系统中的运算单元在从全局缓存器中未读取到访问请求指示的运算数据时,可以根据该访问请求,从芯片的外部存储器中读取访问请求指示的运算数据。并将读取到的运算数据缓存至全局缓存器中,以便其他运算子系统能够从全局缓存器中读取到该运算数据;以及将读取到的运算数据缓存至该运算子系统内的局部共享缓存器中,以便该运算子系统内的其他运算单元能够从该局部共享缓存器中读取到该运算数据、和该运算单元下一次能够从该局部共享缓存器中读取到该运算数据。
其中,芯片的外部存储器可以用于存储芯片中运算单元进行运算时所需的全部运算数据。全局缓存器可以用于存储各个运算子系统中的运算单元读取过的运算数据。任一运算子系统内的局部共享缓存器可以用于存储该运算子系统中每个运算单元读取过的运算数据。
外部存储器和全局缓存器位于芯片内、且位于缓存系统的外部。其中,全局缓存器分别与外部存储区和缓存系统相连。示例性的,在基于访问请求读取运算数据时,可以先从局部共享缓存区中读取访问请求指示的运算数据,若局部共享缓存区中不存在,则从全局缓存器中读取访问请求指示的运算数据;若全局缓存区中不存在,则从外部存储器中读取访问请求指示的运算数据。同时,可以在基于访问请求从外部存储器中读取到访问请求指示的运算数据后,先将读取到的该访问请求指示的运算数据缓存至全局缓存器,再将该访问请求指示的运算数据缓存至局部共享缓存器中。
一种可选实施方式中,所述缓存系统还包括:全局互联总线单元104;所述全局互联总线单元104,用于将所述各个运算子系统分别与所述存储模块相连。
实施时,全局互联总线单元可以将各个运算子系统分别与存储模块相连,即将每个运算子系统与存储模块中的全局缓存器、外部存储器相连,以便任一运算子系统中的每个运算单元能够基于访问请求读取全局缓存器、外部存储器。
参见图3所示,可以将AI芯片划分为X个运算子系统,每个运算子系统下包括N个运算单元和M个局部共享缓存器,将每个运算单元与M个局部共享缓存器相连,使得每个运算单元可以读取相连的任一局部共享缓存器。其中,X、N、M为正整数。
结合图3对缓存系统的工作流程进行示例性说明,运算子系统0中的M个局部共享缓存器中缓存有运算数据。若运算子系统0中的运算单元0进行运算时,运算单元0可以生成并发出访问请求;局部互联总线单元在接收到访问请求之后,确定运算子系统0中与访问请求指示的访问地址匹配的局部共享缓存器。若确定的局部共享缓存器为局部共享缓存器0时,运算单元可以从局部共享缓存器0中读取局部共享缓存器0中缓存的运算数据。
若读取到访问请求指示的运算数据时,运算单元0基于读取到的运算数据进行运算,得到运算结果。若从局部共享缓存器0中未读取到访问请求指示的运算数据时,运算单元0可以基于访问请求读取全局缓存器。若从全局缓存器中读取到访问请求指示的运算数据时,可以将从全局缓存器中读取到的运算数据,缓存至运算子系统0中包括的任一局部共享缓存器中,以及基于读取到的运算数据进行运算,得到运算结果。
若从全局缓存器中未读取到访问请求指示的运算数据时,运算单元0可以基于访问请求读取外部存储器。并将从外部存储器中读取到的运算数据缓存至全局缓存器中、和将读取到的运算数据缓存至运算子系统0中包括的任一局部共享缓存器中,并基于读取到的运算数据进行运算,得到运算结果。
一般的,可以将运算结果缓存至设置的其他缓存器中,无需将运算结果缓存至局部共享缓存器中。比如,其他缓存器可以为运算单元内部的一级缓存器L1 cache等。故在实际调度中,局部共享缓存器主要用于存储只读的运算数据,不会对该局部共享缓存器进行写操作,因此,不同运算子系统包括的至少一个局部共享缓存器之间可以不具有数据一致性,比如运算子系统0中的局部共享缓存器缓存的运算数据、与运算子系统1中的局部共享缓存器缓存的运算数据之间可以不相同。通过上述设计可以在满足运算单元对全局缓存和局部缓存的数据需求的基础上,降低了缓存系统的设计复杂度,提高了AI芯片的性能。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于相同的构思,本公开实施例还提供了一种数据处理方法,该方法应用于上述实施方式所描述的芯片的缓存系统,参见图4所示,为本公开实施例提供的数据处理方法的流程示意图,包括S401-S403,具体的:
S401,获取访问请求;
S402,基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
S403,在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
一种可选实施方式中,所述方法还包括:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取到的所述运算数据缓存至所述局部共享缓存器。
一种可选实施方式中,所述在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,包括:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
一种可选实施方式中,所述方法还包括:
在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
基于相同的构思,本公开实施例还提供了一种数据处理装置,参见图5所示,为本公开实施例提供的数据处理装置的架构示意图,包括获取模块501、读取模块502、运算模块503,具体的:
获取模块501,用于获取访问请求;
读取模块502,用于基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
运算模块503,用于在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
一种可能的实施方式中,所述装置还包括:访问模块504,用于:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取到的所述运算数据缓存至所述局部共享缓存器。
一种可选实施方式中,所述访问模块504,在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据时,用于:
在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
一种可选实施方式中,所述访问模块504,还用于:
在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
基于相同的构思,本公开实施例还提供了一种芯片,包括:上述实施方式所述的缓存系统601和存储模块602;
所述缓存系统601,用于从所述存储模块602中获取运算数据,并将所述运算数据进行缓存。
其中,存储模块602可以包括全局缓存器和外部存储器。即缓存系统可以先基于访问请求从全局缓存器中读取运算数据,在全局缓存器中不存在访问请求对应的运算数据时,再基于访问请求从外部存储器中读取访问请求对应的运算数据。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图7所示,为本公开实施例提供的电子设备的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换,当电子设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701在执行以下指令:
获取访问请求;
基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
其中,处理器701的具体处理流程可以参照上述方法实施例的记载,这里不再赘述。
或者,该电子设备可以如上述实施方式所述的芯片。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种芯片的缓存系统,其特征在于,包括:多个运算子系统,每个所述运算子系统中包括至少一个运算单元、和至少一个局部共享缓存器;每个所述运算单元与所在运算子系统中的任意局部共享缓存器相连;
所述局部共享缓存器,用于缓存所属运算子系统内的运算单元读取的运算数据;
所述运算单元,用于基于生成的访问请求,访问所述运算子系统中与所述访问请求指示的访问地址匹配的局部共享缓存器;并在从访问的局部共享缓存器中读取到所述访问请求指示的运算数据的情况下,基于读取到的所述运算数据进行运算。
2.根据权利要求1所述的缓存系统,其特征在于,每个所述运算子系统中还包括:局部互联总线单元;
所述局部互联总线单元,用于将每个所述运算单元与所在运算子系统中的任意局部共享缓存器相连;以及在接收到所述运算单元发出的所述访问请求后,确定与所述访问请求指示的访问地址匹配的局部共享缓存器;
所述运算单元,用于读取所述局部互联总线单元确定的、与所述访问请求指示的访问地址匹配的局部共享缓存器。
3.根据权利要求1或2所述的缓存系统,其特征在于,所述运算单元,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从芯片的存储模块中读取所述访问请求指示的运算数据,并将从所述存储模块读取的所述运算数据缓存至所述局部共享缓存器。
4.根据权利要求3所述的缓存系统,其特征在于,所述芯片的存储模块包括全局缓存器;
所述运算单元,还用于在从与所述访问请求指示的访问地址匹配的局部共享缓存器中,未读取到所述访问请求指示的运算数据的情况下,基于所述访问请求,从所述芯片的全局缓存器中读取所述访问请求指示的运算数据。
5.根据权利要求4所述的缓存系统,其特征在于,所述芯片的存储模块还包括外部存储器;
所述运算单元,还用于在从所述全局缓存器中未读取到所述访问请求指示的运算数据的情况下,从所述芯片的外部存储器中读取所述访问请求指示的运算数据,并将从所述外部存储器中读取的运算数据缓存至所述全局缓存器。
6.根据权利要求3~5任一所述的缓存系统,其特征在于,所述缓存系统,还包括:全局互联总线单元;
所述全局互联总线单元,用于将所述各个运算子系统分别与所述存储模块相连。
7.一种数据处理方法,其特征在于,所述方法应用于权利要求1至6任一所述的芯片的缓存系统,所述方法包括:
获取访问请求;
基于所述访问请求,读取与所述访问请求指示的访问地址匹配的局部共享缓存器;
在读取到所述访问请求指示的运算数据的情况下,基于从所述局部共享缓存器中读取到的所述运算数据进行运算,得到运算结果。
8.一种芯片,其特征在于,包括:存储模块和如权利要求1~6任一所述的缓存系统;
所述缓存系统,用于从所述存储模块中获取运算数据,并将所述运算数据进行缓存。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求7所述的数据处理方法的步骤;或者如权利要求8所述的芯片。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求7所述的数据处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111662634.XA CN114297098A (zh) | 2021-12-31 | 2021-12-31 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
PCT/CN2022/121033 WO2023124304A1 (zh) | 2021-12-31 | 2022-09-23 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111662634.XA CN114297098A (zh) | 2021-12-31 | 2021-12-31 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297098A true CN114297098A (zh) | 2022-04-08 |
Family
ID=80974096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111662634.XA Pending CN114297098A (zh) | 2021-12-31 | 2021-12-31 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114297098A (zh) |
WO (1) | WO2023124304A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023124304A1 (zh) * | 2021-12-31 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118170714B (zh) * | 2024-05-13 | 2024-08-09 | 北京壁仞科技开发有限公司 | 用于加速计算的方法、计算装置、介质和程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264080A (zh) * | 1998-12-17 | 2000-08-23 | 国际商业机器公司 | 具有共享干预支持的非均匀存贮器存取(numa)数据处理系统 |
CN103020002A (zh) * | 2012-11-27 | 2013-04-03 | 中国人民解放军信息工程大学 | 可重构多处理器系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832388B2 (en) * | 2011-03-11 | 2014-09-09 | Microsoft Corporation | Managing shared memory used by compute nodes |
US9116816B2 (en) * | 2013-03-05 | 2015-08-25 | International Business Machines Corporation | Prefetching for a parent core in a multi-core chip |
CN104699631B (zh) * | 2015-03-26 | 2018-02-02 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN107291629B (zh) * | 2016-04-12 | 2020-12-25 | 华为技术有限公司 | 一种用于访问内存的方法和装置 |
CN114297098A (zh) * | 2021-12-31 | 2022-04-08 | 上海阵量智能科技有限公司 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
-
2021
- 2021-12-31 CN CN202111662634.XA patent/CN114297098A/zh active Pending
-
2022
- 2022-09-23 WO PCT/CN2022/121033 patent/WO2023124304A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1264080A (zh) * | 1998-12-17 | 2000-08-23 | 国际商业机器公司 | 具有共享干预支持的非均匀存贮器存取(numa)数据处理系统 |
CN103020002A (zh) * | 2012-11-27 | 2013-04-03 | 中国人民解放军信息工程大学 | 可重构多处理器系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023124304A1 (zh) * | 2021-12-31 | 2023-07-06 | 上海商汤智能科技有限公司 | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2023124304A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baxter et al. | Maxwell-a 64 FPGA supercomputer | |
Khoram et al. | Accelerating graph analytics by co-optimizing storage and access on an FPGA-HMC platform | |
CN114297098A (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
CN107203807B (zh) | 神经网络加速器的片上缓存带宽均衡方法、系统及其装置 | |
CN106683158A (zh) | 一种GPU纹理映射非阻塞存储Cache的建模结构 | |
KR20170012019A (ko) | 복수의 cpu 및 복수의 gpu를 지원하는 컴퓨팅 환경에서의 연산 방법 | |
CN111860807B (zh) | 分形计算装置、方法、集成电路及板卡 | |
CN107315694A (zh) | 一种缓存一致性管理方法及节点控制器 | |
CN116070682B (zh) | 神经元计算机操作系统的snn模型动态映射方法及装置 | |
CN108694664A (zh) | 业务系统的核对方法及装置、电子设备 | |
CN109684256A (zh) | 服务器及数据传输方法 | |
EP3743821A1 (en) | Wide key hash table for a graphics processing unit | |
CN102411557B (zh) | 多粒度并行fft计算装置 | |
CN101751356B (zh) | 用于改进直接存储器存取传送效率的方法、系统和装置 | |
CN115687708B (zh) | 交易行情数据加工方法及装置、数据加工板卡 | |
US8539207B1 (en) | Lattice-based computations on a parallel processor | |
US20220398283A1 (en) | Method for fast and better tree search for reinforcement learning | |
CN107291628A (zh) | 访问数据存储设备的方法和装置 | |
Krużel et al. | AMD APU systems as a platform for scientific computing | |
CN109542837A (zh) | 运算方法、装置及相关产品 | |
Rees et al. | Large-scale credit risk loss simulation | |
Yun et al. | CLAY: CXL-based Scalable NDP Architecture Accelerating Embedding Layers | |
CN109543835A (zh) | 运算方法、装置及相关产品 | |
CN103198049B (zh) | 一种面向多尺度计算的计算机系统 | |
CN115577760B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40062805 Country of ref document: HK |