CN112860596A - 一种神经网络张量处理器的数据流高速缓存 - Google Patents
一种神经网络张量处理器的数据流高速缓存 Download PDFInfo
- Publication number
- CN112860596A CN112860596A CN202110167464.1A CN202110167464A CN112860596A CN 112860596 A CN112860596 A CN 112860596A CN 202110167464 A CN202110167464 A CN 202110167464A CN 112860596 A CN112860596 A CN 112860596A
- Authority
- CN
- China
- Prior art keywords
- data
- parameter
- tensor
- characteristic
- address
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 146
- 238000013507 mapping Methods 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013506 data mapping Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000007812 deficiency Effects 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
-
- 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/0893—Caches characterised by their organisation or structure
-
- 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
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Neurology (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
本发明公开了一种神经网络张量处理器的数据流高速缓存,包括数据地址映射模块、数据地址生成模块、特征数据SRAM存储器和参数数据SRAM存储器;数据流高速缓存外部连接一个大容量的片外存储器和一个神经网络计算模块,片外存储器保存所有的特征数据和参数数据,数据流高速缓存用于根据神经网络计算模块正在计算的输出张量的行地址,通过数据地址生成模块、数据地址映射模块生成的特征地址和参数地址,预取对应的特征数据和参数数据并缓存在小容量的特征数据SRAM存储器和参数数据SRAM存储器中。数据流高速缓存的一次索引可以输出计算1行输出特征张量所需的大量数据(如几百个字节),在数据流计算架构下,数据流高速缓存拥有较高的存储效率。
Description
技术领域
本发明涉及神经网络张量处理器领域,尤其涉及一种神经网络张量处理器的数据流高速缓存。
背景技术
传统处理器(CPU、GPU、DSP)使用Cache高速缓存技术在片上存储器内缓存最近经常使用的指令和数据,从而解决芯片内部存储器与外部存储器在内存速度和内存带宽上的巨大鸿沟(芯片内部存储器的内存速度要远大于外部存储器)。在现代处理器系统中,计算性能远大于存储性能,因此处理器内存子系统对现代处理器系统性能的影响起着至关重要的作用。
Cache高速缓存技术使用芯片内部的存储器保存最近使用的指令和数据,并使用指令和数据的内存地址作为索引地址来实现指令和数据的查找与匹配。处理器内核的每个指令和数据的请求都首先访问Cache高速缓存,如果地址命中,则意味着所需的指令和数据已经存储在cache存储器中,无需访问片外存储器便可立刻获得所需的指令和数据。
Cache高速缓存使用指令和数据的内存地址来寻址,而该地址由传统处理器架构中的指令所决定。
Cache是专为指令集架构所设计的高速缓存技术。而对于无指令的数据流计算体系,数据的存取不再由指令所决定,数据将根据系统配置按照处理器架构预先定义的规则进行读写,具有极强的可预见性和规则性,因此,cache高速缓存在数据流架构下无法发挥其作用,传统cache高速缓存技术不再适合于数据流计算体系。
发明内容
有鉴于现有技术的上述缺陷,本发明的目的是提供一种用于神经网络数据流计算架构的高速缓存技术,称为神经网络张量处理器的数据流高速缓存。数据流高速缓存为神经网络张量计算提供数据。
为实现上述目的,本发明提供了一种神经网络张量处理器的数据流高速缓存,包括数据地址映射模块、数据地址生成模块、特征数据SRAM存储器和参数数据SRAM存储器;
所述数据流高速缓存外部连接一个大容量的片外存储器和一个神经网络计算模块,所述片外存储器保存所有的特征数据和参数数据,所述数据流高速缓存用于根据神经网络计算模块正在计算的输出张量的行地址,通过所述数据地址生成模块、所述数据地址映射模块生成的特征地址和参数地址,预取对应的特征数据和参数数据并缓存在小容量的所述特征数据SRAM存储器和所述参数数据SRAM存储器中。
技术效果:
数据流高速缓存的一次索引输出计算1行输出特征张量(神经网络最小计算)所需的大量数据(如几百个字节),而传统cache的一次索引仅根据地址输出相应小量数据(如4个字节),因此,在数据流计算架构下,数据流高速缓存拥有较高的存储效率。
进一步的,所述数据地址生成模块用于接收来自神经网络计算模块的输出张量行地址;根据该行地址,所述数据地址生成模块将产生计算该输出张量行数据的所有特征输入数据和参数输入数据的地址,并按照顺序把生成的地址发送给所述数据地址映射模块;所述数据地址生成模块还接收来自外部其他控制模块的配置信息,该配置信息包括输入特征张量的尺寸、输入参数张量的尺寸、输出特征张量的尺寸以及计算模式;根据该配置信息,所述数据地址生成模块自动计算获得输出张量行与输入张量的对应关系,当计算某行输出张量时,按顺序产生计算所需的正确的输入张量数据的地址。
进一步的,所述数据地址映射模块包括地址转换模块、特征数据SRAM存储器映射表、参数数据SRAM存储器映射表、映射匹配控制模块、数据预取写模块和数据读模块;
所述地址转换模块所述用于将特征地址转换为特征行h,将参数地址转换为参数n;其中,特征行h代表该特征地址所指定数据所属的特征行号,参数n代表该参数地址所指定数据所属的参数索引号;
所述特征数据SRAM存储器映射表用于存储所述特征数据SRAM存储器内所保存的特征张量行的行号;所述特征行h与所述特征数据SRAM存储器映射表的内容进行查询匹配,该匹配操作由所述映射匹配控制模块完成;如果匹配成功,则代表特征地址所对应的张量已存储于所述特征数据SRAM存储器中,该地址将通过所述数据读模块发送给所述特征数据SRAM存储器用于对应数据的读取;如果匹配不成功,则代表特征地址所对应的张量不存储于所述特征数据SRAM存储器中,该地址将发送给所述数据预取写模块;
所述参数数据SRAM存储器映射表存储所述参数数据SRAM存储器内所保存的参数张量的索引号;所述参数n与参数数据SRAM存储器映射表的内容进行查询匹配,该匹配操作由映射匹配控制模块完成;如果匹配成功,则代表参数地址所对应的张量已存在于所述参数数据SRAM存储器中,该地址将通过数据读模块发送给所述参数数据SRAM存储器用于对应数据的读取;如果匹配不成功则代表参数地址所对应的张量不存在于所述参数数据SRAM存储器中,该地址将发送给所述数据预取写模块;
所述数据预取写模块用于读取来自片外存储器的特征张量行数据以及参数张量数据,并执行所述特征数据SRAM存储器和所述参数数据SRAM存储器的更新操作;
所述数据读模块用于根据指定的特征地址和参数地址读取所述特征数据SRAM存储器以及所述参数数据SRAM存储器中的对应数据。
进一步的,所述数据预取写模块内维护有一个特征数据替换指针和一个参数数据替换指针,所述特征数据替换指针永远指向所述特征数据SRAM存储器中最旧一个特征张量行,所述参数数据替换指针永远指向所述参数数据SRAM存储器中最旧一个参数张量;当所述特征数据SRAM存储器或所述参数数据SRAM存储器的存储空间未满时,新的特征数据或参数数据按顺序写入相应的存储器;当所述特征数据SRAM存储器或所述参数数据SRAM存储器的存储空间满时,新的特征张量行h+1将替换最旧的特征张量行,或新的参数张量n+1将替换最旧的参数张量。
进一步的,所述数据预取写模块还具备数据预取功能:在所述特征张量行h+1和参数张量n+1读取并替换完成后,所述数据预取写模块将继续读取H行特征张量和N个参数张量,使其替换所述特征数据SRAM存储器或所述参数数据SRAM存储器中最旧的H行特征张量和最旧的N个参数张量;H和N的具体数值由配置参数决定。
进一步的,所述特征数据SRAM存储器用于缓存部分特征数据,所述特征数据的最小存储单元是尺寸为(1,1,wf,c)的1行输入特征张量数据,其中wf为张量数据的列数,c为张量数据的通道数。
进一步的,所述参数数据SRAM存储器用于缓存部分或全部参数数据,所述参数数据的最小存储单元是尺寸为(1,hp,wp,c)的1个输入参数张量数据,其中hp为张量数据的行数,wp为张量数据的列数,c为张量数据的通道数。
本发明实现了如下技术效果:
本发明的数据流高速缓存与传统cache高速缓存最大的区别在于,数据流高速缓存的一次索引输出计算1行输出特征张量(神经网络最小计算)所需的大量数据(如几百个字节),而传统cache的一次索引仅根据地址输出相应小量数据(如4个字节),因此,在数据流计算架构下,数据流高速缓存拥有较高的存储效率。
附图说明
图1是本发明的数据流高速缓存在神经网络张量处理器的数据流计算引擎中的位置图;
图2是本发明的神经网络张量计算示例;
图3是本发明的数据流高速缓存的硬件框图;
图4是本发明的特征数据SRAM存储器和参数数据SRAM存储器的数据映射关系;
图5是本发明的数据地址映射模块的硬件框图;
图6是本发明的特征数据SRAM存储器映射表和参数数据SRAM存储器映射表;
图7是本发明的特征数据SRAM存储器和参数数据SRAM存储器的数据更新。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。
本发明提出一种用于神经网络数据流计算架构的高速缓存技术,称为数据流高速缓存。数据流高速缓存为神经网络张量计算提供数据。
一个神经网络张量处理器的数据流计算引擎示例如图1所示,由4D数据存储访问模块、片上存储器、4D计算模块、1D数据存储访问模块、1D计算模块和直接存储器写模块组成。其中,片上存储器即为本发明所指的数据流高速缓存;4D计算模块用于实现本发明所指的神经网络张量计算,数据流高速缓存外部连接一个大容量的片外存储器,通过4D数据存储访问模块进行读取,获取并缓存4D计算模块执行神经网络张量计算所需要的数据。关于神经网络张量处理器,可参见前案专利1(发明名称为:一种神经网络多核张量处理器,申请号为:202011423696.0),或前案专利2(发明名称为:一种神经网络张量处理器,申请号为:202011421828.6)。
一个神经网络张量计算示例如图2所示,该计算实现了尺寸为(1,hf,wf,c)的输入特征张量和尺寸为(n,hp,wp,c)的输入参数张量的乘法累加运算,并得到尺寸为(1,ho,wo,n)的输出特征张量。其中,我们称hx为张量数据的行数,wx为张量数据的列数,c为张量数据的通道数,n为张量数据的个数。例如输入特征张量的行数为hf,列数为wf,通道数为c,个数为1。
本发明所采用的上述神经网络张量计算的特征在于,以尺寸为(1,1,wo,n)的1行输出特征张量的计算为最小单元,我们称之为神经网络最小计算。根据计算模式的不同,神经网络最小计算所需的输入特征张量数据和输入参数张量数据的数量不同,以图1所示的神经网络张量计算为例,为了计算得到1行输出特征张量,神经网络最小计算需要尺寸为(1,M,wo,n)的M行输入特征张量和尺寸为(n,hp,wp,c)的所有输入参数张量,而这些输入张量数据将由数据流高速缓存提供。
数据流高速缓存与传统cache高速缓存最大的区别在于,数据流高速缓存的一次索引输出计算1行输出特征张量(神经网络最小计算)所需的大量数据(如几百个字节),而传统cache的一次索引仅根据地址输出相应小量数据(如4个字节),因此,在数据流计算架构下,数据流高速缓存拥有较高的存储效率。
图3所示为数据流高速缓存的硬件框图,其中,上述神经网络张量计算由神经网络计算模块实现,而该计算所需的所有数据由本发明所提出的数据流高速缓存提供。
数据流高速缓存由数据地址映射模块、数据地址生成模块、特征数据SRAM存储器、参数数据SRAM存储器四部分组成。
数据流高速缓存外部连接一个大容量的片外存储器,大容量片外存储器保存所有的特征数据和参数数据,数据流高速缓存的主要任务就是根据神经网络计算模块正在计算的输出张量的行地址,通过数据地址生成模块和数据地址映射模块生成的特征地址和参数地址,预取对应的特征数据和参数数据并缓存在小容量的特征数据SRAM存储器和参数数据SRAM存储器中。
数据流高速缓存连接一个神经网络计算模块,数据流高速缓存和神经网络计算模块通常位于同一个芯片内。神经网络计算模块为数据流高速缓存提供当前正在计算的输出张量行地址,而数据流高速缓存根据该行地址输出计算该输出张量行数据所需的所有特征数据和参数数据。
特征数据SRAM存储器用于缓存部分特征数据(全部特征数据存储于片外存储器),该特征数据的最小存储单元是尺寸为(1,1,wf,c)的1行输入特征张量数据,而存储器内所能存储的最大行数量与存储器容量以及特征张量大小有关。
参数数据SRAM存储器,用于缓存部分或全部参数数据,该参数数据的最小存储单元是尺寸为(1,hp,wp,c)的1个输入参数张量数据,而存储器内所能存储的最大参数数量与存储器容量以及参数张量大小有关。
特征数据SRAM存储器和参数数据SRAM存储器的数据映射关系如图4所示。
数据地址生成模块接收来自神经网络计算模块的输出张量行地址。根据该行地址,数据地址生成模块将产生计算该输出张量行数据的所有特征输入和参数输入数据的地址,并按照顺序把生成的地址发送给数据地址映射模块。
数据地址生成模块接收来自其他控制模块的配置信息,该配置信息包括输入特征张量的尺寸、输入参数张量的尺寸、输出特征张量的尺寸以及计算模式等信息。根据该配置信息,数据地址生成模块自动计算获得输出张量行与输入张量(包括特征和参数)的对应关系,使得当计算某行输出张量时,可以按顺序产生计算所需的正确的输入张量数据的地址。
数据地址映射模块由地址转换模块、特征数据SRAM存储器映射表、参数数据SRAM存储器映射表、映射匹配控制模块、数据预取写模块、数据读模块组成,如图5所示。
数据地址映射模块接收来自数据地址生成模块的特征地址(某个特征数据的地址)和参数地址(某个参数数据的地址)。地址转换模块将特征地址转换为特征行h,将参数地址转换为参数n。其中,特征行h代表该地址所指定数据所属的特征行号,参数n代表该地址所指定数据所属的参数索引号。
特征数据SRAM存储器映射表存储特征数据SRAM存储器内所保存的特征张量行的行号。上述特征行h与上述映射表内容进行查询匹配,该匹配操作由映射匹配控制模块完成。如果匹配成功,则代表特征地址所对应的张量已存储于特征数据SRAM存储器中,该地址将通过数据读模块发送给特征数据SRAM存储器用于对应数据的读取。如果匹配不成功,则代表特征地址所对应的张量不存储于特征数据SRAM存储器中,该地址将发送给数据预取写模块。数据预取写模块将把上述未匹配成功地址所属的特征张量行从片外存储器取出,并更新到特征数据SRAM存储器和特征数据SRAM存储器映射表中,更新完毕后,该地址再通过数据读模块发送给特征数据SRAM存储器用于对应数据的读取。
参数数据SRAM存储器映射表存储参数数据SRAM存储器内所保存的参数张量的索引号。上述参数n与上述映射表内容进行查询匹配,该匹配操作由映射匹配控制模块完成。如果匹配成功,则代表参数地址所对应的张量已存在于参数数据SRAM存储器中,该地址将通过数据读模块发送给参数数据SRAM存储器用于对应数据的读取。如果匹配不成功,则代表参数地址所对应的张量不存在于参数数据SRAM存储器中,该地址将发送给数据预取写模块。数据预取写模块将把上述未匹配成功地址所属的参数张量从片外存储器取出,并更新到参数数据SRAM存储器和参数数据SRAM存储器映射表中,更新完毕后,该地址再通过数据读模块发送给参数数据SRAM存储器用于对应数据的读取。
特征数据SRAM存储器映射表和参数数据SRAM存储器映射表如图6所示。
数据预取写模块读取来自片外存储器的特征张量行数据以及参数张量数据,并执行特征/参数数据SRAM存储器的更新操作,具体更新规则如下。
如图7所示,数据预取写模块内维护一个特征数据替换指针和一个参数数据替换指针,使特征数据替换指针永远指向特征数据SRAM存储器中最旧一个特征张量行(如h-7),使参数数据替换指针永远指向参数数据SRAM存储器中最旧一个参数张量(如n-7)。当特征/参数数据SRAM存储器的存储空间未满时,新的特征/参数数据按顺序写入存储器;当特征/参数数据SRAM存储器的存储空间满时,新的特征张量行h+1将替换最旧的特征张量行h-7,新的参数张量n+1将替换最旧的参数张量n-7。
数据预取写模块还具备数据预取功能。在上述特征张量行h+1和参数张量n+1读取并替换完成后,数据预取写模块将继续读取H行特征张量和N个参数张量,使其替换特征/参数数据SRAM存储器中h-6到h-6-H地址的特征张量(即最旧的H行特征张量)和n-6到n-6-N地址的参数张量(即最旧的N个参数张量)。H和N的具体数值由配置参数决定。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (7)
1.一种神经网络张量处理器的数据流高速缓存,其特征在于:包括数据地址映射模块、数据地址生成模块、特征数据SRAM存储器和参数数据SRAM存储器;
所述数据流高速缓存外部连接一个大容量的片外存储器和一个神经网络计算模块,所述片外存储器保存所有的特征数据和参数数据,所述数据流高速缓存用于根据神经网络计算模块正在计算的输出张量的行地址,通过所述数据地址生成模块、所述数据地址映射模块生成的特征地址和参数地址,预取对应的特征数据和参数数据并缓存在小容量的所述特征数据SRAM存储器和所述参数数据SRAM存储器中。
2.如权利要求1所述的数据流高速缓存,其特征在于:所述数据地址生成模块用于接收来自神经网络计算模块的输出张量行地址;根据该行地址,所述数据地址生成模块将产生计算该输出张量行数据的所有特征输入数据和参数输入数据的地址,并按照顺序把生成的地址发送给所述数据地址映射模块;所述数据地址生成模块还接收来自外部其他控制模块的配置信息,该配置信息包括输入特征张量的尺寸、输入参数张量的尺寸、输出特征张量的尺寸以及计算模式;根据该配置信息,所述数据地址生成模块自动计算获得输出张量行与输入张量的对应关系,当计算某行输出张量时,按顺序产生计算所需的正确的输入张量数据的地址。
3.如权利要求1所述的数据流高速缓存,其特征在于:所述数据地址映射模块包括地址转换模块、特征数据SRAM存储器映射表、参数数据SRAM存储器映射表、映射匹配控制模块、数据预取写模块和数据读模块;
所述地址转换模块所述用于将特征地址转换为特征行h,将参数地址转换为参数n;其中,特征行h代表该特征地址所指定数据所属的特征行号,参数n代表该参数地址所指定数据所属的参数索引号;
所述特征数据SRAM存储器映射表用于存储所述特征数据SRAM存储器内所保存的特征张量行的行号;所述特征行h与所述特征数据SRAM存储器映射表的内容进行查询匹配,该匹配操作由所述映射匹配控制模块完成;如果匹配成功,则代表特征地址所对应的张量已存储于所述特征数据SRAM存储器中,该地址将通过所述数据读模块发送给所述特征数据SRAM存储器用于对应数据的读取;如果匹配不成功,则代表特征地址所对应的张量不存储于所述特征数据SRAM存储器中,该地址将发送给所述数据预取写模块;
所述参数数据SRAM存储器映射表存储所述参数数据SRAM存储器内所保存的参数张量的索引号;所述参数n与参数数据SRAM存储器映射表的内容进行查询匹配,该匹配操作由映射匹配控制模块完成;如果匹配成功,则代表参数地址所对应的张量已存在于所述参数数据SRAM存储器中,该地址将通过数据读模块发送给所述参数数据SRAM存储器用于对应数据的读取;如果匹配不成功,则代表参数地址所对应的张量不存在于所述参数数据SRAM存储器中,该地址将发送给所述数据预取写模块;
所述数据预取写模块用于读取来自片外存储器的特征张量行数据以及参数张量数据,并执行所述特征数据SRAM存储器和所述参数数据SRAM存储器的更新操作;
所述数据读模块用于根据指定的特征地址和参数地址读取所述特征数据SRAM存储器以及所述参数数据SRAM存储器中的对应数据。
4.如权利要求3所述的数据流高速缓存,其特征在于:所述数据预取写模块内维护有一个特征数据替换指针和一个参数数据替换指针,所述特征数据替换指针永远指向所述特征数据SRAM存储器中最旧一个特征张量行,所述参数数据替换指针永远指向所述参数数据SRAM存储器中最旧一个参数张量;当所述特征数据SRAM存储器或所述参数数据SRAM存储器的存储空间未满时,新的特征数据或参数数据按顺序写入相应的存储器;当所述特征数据SRAM存储器或所述参数数据SRAM存储器的存储空间满时,新的特征张量行h+1将替换最旧的特征张量行,或新的参数张量n+1将替换最旧的参数张量。
5.如权利要求4所述的数据流高速缓存,其特征在于:所述数据预取写模块还具备数据预取功能:在所述特征张量行h+1和参数张量n+1读取并替换完成后,所述数据预取写模块将继续读取H行特征张量和N个参数张量,使其替换所述特征数据SRAM存储器或所述参数数据SRAM存储器中最旧的H行特征张量和最旧的N个参数张量;H和N的具体数值由配置参数决定。
6.如权利要求1所述的数据流高速缓存,其特征在于:所述特征数据SRAM存储器用于缓存部分特征数据,所述特征数据的最小存储单元是尺寸为(1,1,wf,c)的1行输入特征张量数据,其中wf为张量数据的列数,c为张量数据的通道数。
7.如权利要求1所述的数据流高速缓存,其特征在于:所述参数数据SRAM存储器用于缓存部分或全部参数数据,所述参数数据的最小存储单元是尺寸为(1,hp,wp,c)的1个输入参数张量数据,其中hp为张量数据的行数,wp为张量数据的列数,c为张量数据的通道数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167464.1A CN112860596B (zh) | 2021-02-07 | 2021-02-07 | 一种神经网络张量处理器的数据流高速缓存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110167464.1A CN112860596B (zh) | 2021-02-07 | 2021-02-07 | 一种神经网络张量处理器的数据流高速缓存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860596A true CN112860596A (zh) | 2021-05-28 |
CN112860596B CN112860596B (zh) | 2023-12-22 |
Family
ID=75988957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110167464.1A Active CN112860596B (zh) | 2021-02-07 | 2021-02-07 | 一种神经网络张量处理器的数据流高速缓存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860596B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737605A (zh) * | 2023-08-11 | 2023-09-12 | 上海燧原科技有限公司 | 基于芯片多级存储的数据预取方法、装置、设备及介质 |
WO2023179619A1 (zh) * | 2022-03-25 | 2023-09-28 | 中山大学 | 一种神经网络的高速缓存方法、系统、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11143774A (ja) * | 1997-11-06 | 1999-05-28 | Hitachi Ltd | キャッシュ制御機構 |
CN102970538A (zh) * | 2005-09-20 | 2013-03-13 | 英特尔公司 | 为运动补偿动态配置视频解码器高速缓存 |
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN111984548A (zh) * | 2020-07-22 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络计算装置 |
-
2021
- 2021-02-07 CN CN202110167464.1A patent/CN112860596B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11143774A (ja) * | 1997-11-06 | 1999-05-28 | Hitachi Ltd | キャッシュ制御機構 |
CN102970538A (zh) * | 2005-09-20 | 2013-03-13 | 英特尔公司 | 为运动补偿动态配置视频解码器高速缓存 |
CN103026346A (zh) * | 2010-07-27 | 2013-04-03 | 国际商业机器公司 | 包括固态存储器设备的存储系统中的逻辑到物理地址映射 |
CN107066393A (zh) * | 2017-01-12 | 2017-08-18 | 安徽大学 | 提高地址映射表中映射信息密度的方法 |
CN111984548A (zh) * | 2020-07-22 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络计算装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023179619A1 (zh) * | 2022-03-25 | 2023-09-28 | 中山大学 | 一种神经网络的高速缓存方法、系统、装置及存储介质 |
CN116737605A (zh) * | 2023-08-11 | 2023-09-12 | 上海燧原科技有限公司 | 基于芯片多级存储的数据预取方法、装置、设备及介质 |
CN116737605B (zh) * | 2023-08-11 | 2023-11-14 | 上海燧原科技有限公司 | 基于芯片多级存储的数据预取方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112860596B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US7783836B2 (en) | System and method for cache management | |
CN112860596B (zh) | 一种神经网络张量处理器的数据流高速缓存装置 | |
CN110018971B (zh) | 缓存替换技术 | |
CN109461113B (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
US11567874B2 (en) | Prefetch management in a hierarchical cache system | |
US9569219B2 (en) | Low-miss-rate and low-miss-penalty cache system and method | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
US11977491B2 (en) | Prefetch kill and revival in an instruction cache | |
CN113157636B (zh) | 协处理器、近数据处理装置和方法 | |
CN112631962A (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
CN110187832A (zh) | 一种数据操作的方法、设备和系统 | |
TW202004494A (zh) | 直接記憶體存取方法、裝置、專用計算晶片及異構計算系統 | |
CN110018847B (zh) | 可配置寄存器及基于可配置寄存器的数据存取方法 | |
CN113222115B (zh) | 面向卷积神经网络的共享缓存阵列 | |
Geethakumari et al. | Streamzip: Compressed sliding-windows for stream aggregation | |
CN115033500A (zh) | 缓存系统模拟方法、装置、设备和存储介质 | |
US8756362B1 (en) | Methods and systems for determining a cache address | |
JP3770091B2 (ja) | キャッシュ制御方法及びキャッシュ制御回路 | |
CN107861815B (zh) | 一种多gpu环境下的数据通信性能优化方法 | |
CN112579482A (zh) | 一种非阻塞Cache替换信息表超前精确更新装置及方法 | |
CN112817639A (zh) | Gpu读写单元通过操作数收集器访问寄存器文件的方法 | |
US10990589B2 (en) | Computing apparatuses and methods of processing operations thereof | |
US11314438B2 (en) | Arithmetic processing device, information processing device, and control method for arithmetic processing device | |
Khan | Brief overview of cache memory |
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 |