CN114902619B - 一种存储管理装置及芯片 - Google Patents
一种存储管理装置及芯片 Download PDFInfo
- Publication number
- CN114902619B CN114902619B CN201980102940.2A CN201980102940A CN114902619B CN 114902619 B CN114902619 B CN 114902619B CN 201980102940 A CN201980102940 A CN 201980102940A CN 114902619 B CN114902619 B CN 114902619B
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- chip
- network
- processing core
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种存储管理装置和芯片,其中,所述存储管理装置设置于片上网络和存储装置之间;所述存储管理装置包括:指令解析单元,用于解析从所述片上网络接收到的指令,并根据所述指令生成控制信号;数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并将全部所述数据包发送至所述片上网络。本发明实施方式提供的存储管理装置,能够将数据包发送至需要相同数据的全部处理核,从而需要相同数据的各个处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
Description
技术领域
本发明涉及芯片技术领域,尤其是涉及一种存储管理装置及芯片。
背景技术
随着科学技术的发展,人类社会正在快速进入智能时代。智能时代的重要特点,就是人们获得数据的种类越来越多,获得数据的量越来越大,而对处理数据的速度要求越来越高。
芯片是数据处理的基石,它从根本上决定了人们处理数据的能力。从应用领域来看,芯片主要有两条路线:一条是通用芯片路线,例如中央处理器(Central ProcessingUnit,CPU)等,它们能提供极大的灵活性,但是在处理特定领域算法时有效算力比较低;另一条是专用芯片路线,例如张量处理器(Tensor Processing Unit,TPU)等,它们在某些特定领域,能发挥较高的有效算力,但是面对灵活多变的比较通用的领域,它们处理能力比较差甚至无法处理。
由于智能时代的数据种类繁多且数量巨大,所以要求芯片既具有极高的灵活性,能处理不同领域且日新月异的算法,又具有极强的处理能力,能快速处理极大的且急剧增长的数据量。
发明内容
(一)发明目的
本发明的目的是提供一种存储管理装置及芯片,该存储管理装置能解析从片上网络接收到的指令,基于从外部存储装置中释放的数据生成至少一个数据包,并将全部的数据包发送至片上网络,能够通过片上网络将存储管理装置生成的全部的数据包发送至相应的处理核,使得需要相同数据的各个处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种存储管理装置,所述存储管理装置设置于片上网络和存储装置之间;所述存储管理装置包括:指令解析单元,用于解析从所述片上网络接收到的指令,并根据所述指令生成控制信号,数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并将全部所述数据包发送至所述片上网络。
本发明实施方式提供的存储管理装置,能解析从片上网络接收到的指令,基于从外部存储装置中释放的数据生成至少一个数据包,并将全部的数据包发送至片上网络,通过在片上网络和存储装置之间设置存储管理装置,由存储管理装置将数据包发送至需要相同数据的全部处理核,从而需要相同数据的各个处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
进一步地,所述数据包生成单元用于根据所述控制信号,基于从所述存储装置中释放的数据生成数据包,包括:所述数据包生成单元用于根据所述控制信号,基于所述释放的数据和所述指令指示的处理核,生成与所述处理核对应的所述数据包。
进一步地,当所述指令指示的处理核的个数为多个时,所述数据包生成单元用于基于所述释放的数据和所述指令指示的处理核,生成与每个所述处理核对应的所述数据包,并将生成的多个所述数据包并行的发送至所述片上网络。
进一步,所述指令包括取数信息和存数信息。
可选地,所述装置还包括存取数指示单元;所述存取数指示单元,用于接收所述存数信息,以指示所述存储装置释放所述取数信息所指示的数据;所述存取数指示单元还用于接收所述取数信息,根据所述存数信息生成与每个所述指令指示的处理核对应的所述数据的存储地址。
可选地,所述数据包生成单元用于根据所述控制信号,基于从所述存储装置中释放的数据生成数据包,包括:所述数据包生成单元用于根据所述控制信号生成所述指令指示的处理核的地址,基于所述释放的数据、所述存储地址和所述指令指示的处理核的地址生成所述数据包。
可选地,数据包生成单元包括开关,所述开关的数量大于或等于与所述片上网络连接的处理核的数量;其中,每个处理核对应一个所述开关,所述控制信号用于控制所述开关的状态。
可选地,数据包生成单元用于将所述数据包并行的发送至所述指令指示的处理核,包括:所述数据包生成单元用于根据所述控制信号接通与所述指令指示的处理核对应的开关,将所述数据包并行的发送至所述片上网络,以通过所述片上网络将所述数据包发送至对应的所述处理核。
可选地,开关包括控制端、输入端和输出端;每个所述开关的所述输入端用于接收所述存取数指示单元发送的所述存储地址和所述存储装置释放的所述数据;每个所述开关的所述控制端用于根据接收的所述控制信号实现接通状态或断开状态。
进一步可选的,所述指令解析单元用于将所述控制信号发送至所述控制端,以控制所述开关接通,所述数据包生成单元将所述处理核的地址和通过所述输入端获取的所述存储地址、所述数据生成数据包。
可选地,所述指令包括用于控制所述开关的控制位;与每个所述指令指示的处理核对应的所述控制位为预设值;当所述指令解析单元确定所述控制位为预设值时,生成所述控制信号。
优选的,所述指令包括取数个数,所述取数信息包括取数地址的首地址;所述存取数指示单元,用于根据所述取数地址的首地址和所述取数个数生成取数地址,并根据所述取数地址指示所述存储装置释放所述数据。
进一步优选的,所述存数信息包括所述指令指示的处理核中数据的存储地址的首地址,所述存取数指示单元,用于根据所述存储地址的首地址和所述取数个数生成所述存储地址。
可选的,所述指令包括:控制位、信息位、取数首地址、取数个数、每个待接收数据的处理核中数据的存储地址的首地址。
其中,控制位用于控制开关的状态,信息位用于指示待接收数据的处理核。
可选的,所述存储管理装置还包括指令缓存单元,用于接收所述片上网络发送的所述指令,并对所述指令缓存,将缓存后的所述指令发送给所述指令解析单元。
根据本发明的第二方面,提供了一种芯片,包括片上网络、与所述片上网络连接的多个所述处理核、存储装置和第一方面提供的存储管理装置。
根据本发明的第三方面,提供了一种卡板,包括一个或多个第二方面提供的芯片。
根据本发明的第四方面,提供了一种电子设备,包括一个或多个第三方面提供的卡板。
根据本发明的第五方面,提供了一种存储管理方法,包括:解析从片上网络接收到的指令,并根据所述指令生成控制信号;根据所述控制信号,基于从存储装置中释放的数据生成至少一个数据包,并将全部所述数据包发送至片上网络。
根据本发明的第六方面,提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述程序被处理器执行时实现第五方面的一种存储管理方法。
根据本发明的第七方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现第五方面的一种存储管理方法。
根据本发明的第八方面,提供一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行第五方面的一种存储管理方法。
(三)有益效果
本发明实施方式提供的存储管理装置,能解析从片上网络接收到的指令,基于从外部存储装置中释放的数据生成至少一个数据包,并将全部的数据包发送至片上网络,通过在片上网络和存储装置之间设置存储管理装置,由存储管理装置将数据包发送至需要相同数据的全部处理核,从而需要相同数据的各个处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
附图说明
图1是现有技术中多个核获取相同数据的流程示意图;
图2是现有技术中多个核获取相同数据的流程示意图;
图3是根据本发明一实施方式的存储管理装置的结构示意图;
图4是根据本发明又一实施方式的存储管理装置的结构示意图;
图5是根据本发明再一实施方式的芯片的结构示意图;
图6是根据本发明一实施方式的存储管理方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在神经网络计算中,经常会用到多核或者众核的芯片架构。如何让众多的核能够发挥出尽量高的算力成为芯片性能的关键。而算力的发挥,取决于核怎么将数据高效的读到核内进行计算。
例如,在图片识别的应用中,芯片有N个核,所有的核独立并行处理图片,各核所用的算法和权重均相同。那么最大的发挥芯片的算力,且花费最小的延时及功耗的方法,就是所有的核共用相同一份权重,即多个核提取相同数据。
图1是现有技术中多个核获取相同数据的流程示意图。
如图1所示,一个CPU包括N个处理核和共享存储模块(Shared Memory,SM),N个处理核为处理核C1到处理核Cn,各个处理核均单独从SM中读取本核需要的数据,当各个处理核需要相同的数据时,例如相同的权重或其他相同的参数,多个处理核取数的流程为:
处理核C1向SM发出取数指示,并提取到SM释放的数据,当处理核C1取数完成之后,其他处理核在依次向SM发出取数指令,再次从SM中提取存储在相同位置的数据。
图1中的单箭头表示多个核获取相同数据的数据传输的方向,虚线表示核能够与共享存储模块SM实现数据的双向传输。
通常这种方式存在如下的弊端:
当多个处理核需要使用相同的数据,每个处理核都需要独自去读取,一方面,相同的数据从SM中读取多次,导致SM的功耗大,另一方面,当SM中只存储有一份该数据,则需要多个处理核一个接一个的读取,排在后面的处理核需要等前面的处理核读取之后,才能读取,导致排在后面的处理核读取数据存在延时,有时候只有处理核读取到该数据后才能计算,这样导致排在后面的处理核等待的时间很长,浪费了算力,降低了芯片的性能。
图2是现有技术中多个核获取相同数据的流程示意图。
如图2所示,一个GPU中包括N个处理核和SM,N个处理核为处理核C1到处理核Cn,该SM中连续的存储有多个相同的数据,一个处理核从SM中读取需要的数据,SM将连续的存储的相同的数据都释放,供多个处理核读取。多个处理核取数的流程为:
第一个处理核C1向SM发出取数指示,SM释放连续存储的相同的数据,需要相同数据的处理核C1-Cn分别对应接收SM释放的相同的数据,这种方式需要SM将同一个数据连续的存储有多份,浪费SM的内存。
图2中的单箭头表示多个核获取相同数据的数据传输的方向,虚线表示核能够与共享存储模块SM实现数据的双向传输。
为解决上述问题,提出本发明的技术方案。
下面将详细说明本申请一实施方式提供的芯片。在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”、“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
图3是根据本发明一实施方式的存储管理装置的结构示意图。
在本实施方式中,该存储管理装置设置于片上网络和存储装置之间;其中片上网络NoC连接N个处理核,N为大于等于1的整数。
如图3所示,所述存储管理装置包括:指令解析单元ID和数据包生成单元PG-SW。
指令解析单元ID,用于解析从所述片上网络接收到的指令,并根据所述指令生成控制信号。
数据包生成单元PG-SW,用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并将全部所述数据包发送至所述片上网络。
存储管理装置能解析从片上网络接收到的指令,基于从外部存储装置中释放的数据生成至少一个数据包,并将全部的数据包发送至片上网络,通过在片上网络和存储装置之间设置存储管理装置,由存储管理装置将数据包发送至需要相同数据的全部处理核,从而需要相同数据的处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
在一个实施例中,数据包生成单元PG-SW用于根据所述控制信号,基于从所述存储装置中释放的数据生成数据包,包括:数据包生成单元PG-SW用于根据所述控制信号,基于所述释放的数据和所述指令指示的处理核,生成与所述处理核对应的所述数据包。
在一个优选的实施例中,当所述指令指示的处理核为多个时,所述数据包生成单元用于基于所述释放的数据和所述指令指示的处理核,生成与所述处理核对应的所述数据包,并将所述数据包发送至所述片上网络,包括:所述数据包生成单元用于基于所述释放的数据和所述指令指示的处理核,生成与每个所述处理核对应的所述数据包,并将生成的多个所述数据包并行的发送至所述片上网络,进而通过片上网络将每个数据包发送给指令指示的处理核。
需要说明的是,“与每个处理核对应”是指与每个处理核地址对应。优选的,“与每个处理核对应”还可以是指分别与每个处理核地址对应、与每个处理核中数据的存储地址相对应。
在一个实施例中,指令包括取数信息和存数信息。
在一个实施例中,存储管理装置还包括存取数指示单元Addr-G;存取数指示单元Addr-G,用于接收所述取数信息,根据所述取数信息指示存储装置释放所述取数信息所指示的数据,其中,数据可以是权重等参数。
在一个优选的实施例中,指令包括取数个数,所述取数信息包括取数地址的首地址;所述存取数指示单元,用于根据所述取数地址的首地址和所述取数个数生成取数地址,并根据所述取数地址指示所述存储装置释放所述数据。
在本实施例中,设置取数信息为取数地址的首地址,一方面能节省指令的位数,使得指令能携带更多的其他信息,另一方面,通过取数指示单元根据指令的取数地址首地址和取数个数,提取数据更方便。
在一个实施例中,存取数指示单元Addr-G还用于接收所述存数信息,根据所述存数信息生成与所述指令指示的处理核对应的所述数据包的存储地址。
在一个可选的实施例中,存储管理装置还包括指令缓存单元,用于接收所述片上网络发送的指令,并对所述指令缓存,将缓存后的所述指令发送给所述指令解析单元ID。
当片上网络发送的指令为多个时,指令缓存单元IS按照接收指令的时间的先后顺序对指令缓存,并按照缓存的顺序将指令发送给指令解析单元ID。
可选的,指令缓存单元IS可以是指令栈,用于临时存储接收到的存取数据指令,该存储管理装置MME会逐条的执行栈中的指令。
在一个优选的实施例中,存数信息包括所述指令指示的处理核中数据的存储地址的首地址,所述存取数指示单元,用于根据所述存储地址的首地址和所述取数个数生成所述存储地址。
在本实施例中,设置存数信息为处理核中数据的存储地址的首地址,相比于指令中存数信息为处理核中数据的存储地址,能节省指令的位数。
在一个实施例中,数据包生成单元用于根据所述控制信号,基于从所述存储装置释放的数据生成数据包,包括:
所述数据包生成单元PG-SW,用于根据所述控制信号生成所述指令指示的处理核的地址,基于所述释放的数据、所述存储地址以及所述指令指示的处理核的地址生成所述数据包。
在一个实施例中,指令包括控制位,与每个所述指令指示的待接收数据的处理核对应的所述控制位为预设值,当所述指令解析单元ID确定所述控制位为预设值时,生成对应该处理核的所述控制信号。
在一个实施例中,指令包括用于指示待接收数据的处理核的信息位、取数首地址、取数个数、每个待接收数据的处理核中数据的存储地址的首地址、用于控制开关的控制位。
在一个具体的实施例中,指令的格式如下:
需要说明的是,可以先对多个处理核进行编号,由于存储管理装置需要通过NoC接收指令,也需要通过NoC将生成的数据包发送给指令指示的一个或多个处理核,所以将存储管理装置与处理核一同编号。例如,芯片中共有N个处理核,可设定存储管理装置的编号为1、第一个处理核C1的编号为2、第N个处理核Cn的编号为N+1。
应当理解的是,也可以设定存储管理装置的编号为0、第一个处理核C1的编号为1、第N个处理核Cn的编号为第N,本发明以存储管理装置的编号为1为例,但不以此为限。
该指令可以为148比特。
其中,信息位用ID_C表示,可以为4比特,用于指示待接收数据的处理核的地址,信息位设置有N+1位,这N+1位中的第一位与存储管理装置对应,第二位至第N+1位分别与N个处理核一一对应。片上网络NoC通过该信息位确定指令或数据包的接收方。这里接收方可以是处理核或者存储管理装置。即当ID_C中第一位为1时,表示该指令或数据包是发送给存储管理装置的;当ID_C中第二位至第N+1位中的某一位为1时,则表示该数据包是发给与该某一位对应的处理核的。
指令编码,可以为8比特,指令编码设置有多种信息,例如设定取数指令编码为00000001,当指令解析单元ID发现指令编码为00000001时,说明这是一条取数指令。
其中,控制位的位数为N+1位,控制位的N+1位与信息位的N+1位是一一对应的,其中第二位到第N+1位与N个处理核分别是一一对应的,与每个指令指示的处理核对应的所述控制位为预设值,例如,预设值是1,即当指令解析单元识别出控制位为1时,产生控制信号。例如,芯片有4个处理核,则控制位有5位,第2位到第5位一一对应该4个处理核,当C-C为10110时,即第一位和第四位为0、第二位、第三位和第五位为1,表示第一处理核、第二处理核、第四处理核都需要接收数据。
需要说明的是,本发明实施例中,设置C-C的N+1位中右侧第一个数对应的是第一位(对应存储管理装置),右侧第二个数对应的是第二位(对应第一处理核),右侧最后一个数对应的是最后一位(第N处理核),当然也可以设置左侧第一个数对应的是第一位(存储管理装置),左侧第二个数对应的是第二位(第一处理核),左侧最后一个数对应的是最后一位(第N处理核),本发明并不以此为限。
其中,取数信息、存数信息和取数个数可以分别为16比特。
其中,保留是指未进行编码。
图4是根据本发明又一实施方式的存储管理装置的结构示意图。
在一个实施例中,数据包生成单元包括Tx发送器和Rx接收器,其中Tx发送器包括开关和包头生成单元,所述开关的数量大于或等于与所述片上网络NoC连接的处理核的数量。其中,每个处理核对应一个所述开关,所述控制信号用于控制所述开关的状态。
在一个实施例中,所述数据包生成单元PG-SW用于将多个所述数据包并行的发送至所述片上网络NoC,包括:所述数据包生成单元用于根据所述控制信号接通与所述指令指示的处理核对应的开关,将所述数据包并行的发送至所述片上网络,以通过所述片上网络将全部的所述数据包发送至所述处理核。
在一个具体的实施例中,开关包括控制端、输入端和输出端;每个所述开关的所述输入端用于接收所述存取数指示单元发送的所述存储地址和从所述存储装置中释放的所述数据;每个所述开关的所述控制端用于根据接收的所述控制信号实现接通状态或断开状态。
其中,指令包括的控制位,该控制位用于控制开关的状态;与每个所述指令指示的处理核对应的所述控制位为预设值;当所述指令解析单元ID确定所述控制位为预设值时,生成所述控制信号。
在一个实施方式中,上述存储管理装置MME通过Rx接收器将接收到的数据存储在存储装置中。
在图4所示的实施方式中,第一处理核C1通过片上网络NoC将指令发送存储管理装置MME,其中,缓存单元IS缓存所述指令,并将指令发送给指令解析单元ID。
指令解析单元ID解析出解码指令为00000001,表示是需要从存储装置中取出数据,指令解析单元ID解析出取数首地址Addr_S、取数个数为M个,控制信息C_C为0110,表示需要将该M个数发送给第一处理核C1和第二处理核C2,解析出将该M个数据存入到第一处理核C1的存储地址的首地址Addr_D1和将该M个数据存入到第二处理核C2的存储地址的首地址Addr_D2。指令解析单元ID根据控制信息0110,分别生成第一控制信号C_C1即0010和第二控制信号C_C2即0100。
指令解析单元ID将取数个数M、Addr_S和Addr_D发送给存取数指示单元Addr_G,且将第一控制信号C_C1和第二控制信号C_C2分别发送给数据包生成单元PG_SW中与第一处理核和第二处理核分别对应的第一开关S1和第二开关S2。
Addr_G根据M和Addr_S生成具体的取数地址,并从外部的存储装置SM中取数,且根据M、Addr_D1和Addr_D2生成具体的存数地址Addr_D1_N和Addr_D2_N,并将Addr_D1_N和Addr_D2_N发给PG_SW。
PG_SW根据接收到的第一控制信号C_C1和第二控制信号C_C2接通第一开关和第二开关。包头生成单元ID-GEN根据第一控制信号C_C1和第二控制信号C_C2分别生成第一信息位ID_C1和第二信息位ID_C2,第一信息位为0010,第二信息位为0100。
需要说明的是,当处理核的个数位小于3时,信息位的第四位可以设置为0。
PG_SW根据从第一开关的输出端获得的存储地址Addr_D1_N和第一信息位ID_C1生成第一包头,根据从第二开关的输出端获得的存储地址Addr_D2_N和第二信息位ID_C2生成第二包头。PG_SW还根据该第一包头和从第一开关的输出端获得的从存储装置释放的数据生成第一数据包,根据该第二包头和从第二开关的输出端获得的从存储装置释放的数据生成第二数据包,并行的将第一数据包和第二数据包发送到片上网络NoC。
NoC将第一数据包发送至第一处理核,将第二数据包发送到第二处理核。
在一个实施例中,存储管理装置MME接收的数据包或者MME发送出的数据包都可以是下述格式:
信息位 | 处理核中数据的存储地址 | 数据 |
(ID_C,4bit) | (Addr_D,16bit) | (128bit) |
需要说明的是,在图4所示的实施方式中,具有两个处理核,当具有三个处理核时,则数据包生成单元则设置有3个开关。当第一处理核发送的指示第一处理核和第二处理核都需要数据,第三处理核不需要数据。指令解析单元ID可以生成第三控制信号,控制第三开关为断开的状态,或者指令解析单元ID也可以不生成第三控制信号。
本发明实施方式提供的存储装置,能够将数据包发送至需要相同数据的全部处理核,从而需要相同数据的各个处理核无需分别从存储装置中取数,降低了时延,节省了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
图5是根据本发明再一实施方式的芯片的结构示意图。
如图5所示,该芯片包括片上网络NoC、与片上网络连接的多个所述处理核、存储装置和上述实施方式提供的存储管理装置MME。
其中,多个处理核为N个即第一处理核C1到第N处理核Cn。
该存储管理装置,解析从片上网络获取的指令,根据该指令和从存储模块释放的数据,生成与指令指示的接收数据的处理核对应的数据包,将生成的全部的数据包发送至片上网络,通过片上网络将全部的数据包发送至处理核。
需要说明的是,在图5中,单箭头表示本发明实施方式提供中数据的传输方向,虚线表示能够实现双线的交互,例如处理核C1与存储管理装置MME之间虚线的双箭头表示处理核与存储管理装置MME能够双向的实现数据的发送和接收。存储管理装置MME与存储装置SM也能够双向的实现数据的发送和接收。
本发明的一个实施方式,提供了一种卡板,包括一个或多个上述实施方式提供的芯片。
本发明的一个实施方式,提供了一种电子设备,包括一个或多个上述实施方式提供的卡板。
图6是根据本发明一实施方式的存储管理方法的流程示意图。
如图6所示,该存储管理方法包括步骤S101-步骤S102:
步骤S101,指令解析单元解析从所述片上网络接收到的指令,并根据所述指令生成控制信号。
步骤S102,数据包生成单元根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并将全部所述数据包发送至所述片上网络。
本发明一个实施方式还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述程序被处理器执行时实现上述实施方式提供的存储管理方法。
本发明的又一个实施方式,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施方式提供的一种存储管理方法。
本发明的又一个实施方式,提供了一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行上述实施方式提供的一种存储管理方法。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (9)
1.一种存储管理装置,其特征在于,所述存储管理装置设置于片上网络和存储装置之间;
所述存储管理装置包括:
指令解析单元,用于解析从所述片上网络接收到的指令,并根据所述指令生成控制信号;
数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据和所述指令指示的多个处理核,生成分别与多个所述处理核对应的多个数据包,并将多个所述数据包并行的发送至所述片上网络。
2.如权利要求1所述的装置,其特征在于,所述指令包括取数信息和存数信息。
3.如权利要求2所述的装置,其特征在于,所述装置还包括存取数指示单元;
所述存取数指示单元,用于接收所述取数信息,根据所述取数信息指示所述存储装置释放所述取数信息所指示的数据;
所述存取数指示单元还用于接收所述存数信息,根据所述存数信息生成与所述指令指示的处理核对应的所述数据包的存储地址。
4.如权利要求3所述的装置,其特征在于,所述数据包生成单元用于根据所述控制信号,基于从所述存储装置释放的数据和所述指令指示的多个处理核,生成分别与多个所述处理核对应的多个数据包,包括:
所述数据包生成单元用于根据所述控制信号生成所述指令指示的处理核的地址,基于所述释放的数据、所述存储地址以及所述指令指示的处理核的地址生成所述数据包。
5.如权利要求4所述的装置,其特征在于,所述数据包生成单元包括开关,所述开关的数量大于或等于与所述片上网络连接的处理核的数量;
其中,每个处理核对应一个所述开关,所述控制信号用于控制所述开关的状态。
6.如权利要求5所述的装置,其特征在于,所述数据包生成单元用于将多个所述数据包并行的发送至所述片上网络,包括:
所述数据包生成单元用于根据所述控制信号接通与所述指令指示的处理核对应的开关,将多个所述数据包并行的发送至所述片上网络,以通过所述片上网络将多个所述数据包发送至对应的所述处理核。
7.如权利要求5或6所述的装置,其特征在于,所述开关包括控制端、输入端和输出端;
每个所述开关的所述输入端用于接收所述存取数指示单元发送的所述存储地址和所述存储装置中释放的所述数据;
每个所述开关的所述控制端用于根据接收的所述控制信号实现接通状态或断开状态。
8.如权利要求1-7任一项所述的装置,其特征在于,
所述指令包括控制位;与每个所述指令指示的处理核对应的所述控制位为预设值;
当所述指令解析单元确定所述控制位为预设值时,生成所述控制信号。
9.一种芯片,其特征在于,包括片上网络、与所述片上网络连接的多个所述处理核、存储装置和如权利要求1-8任一项提供的存储管理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/130640 WO2021134521A1 (zh) | 2019-12-31 | 2019-12-31 | 一种存储管理装置及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114902619A CN114902619A (zh) | 2022-08-12 |
CN114902619B true CN114902619B (zh) | 2023-07-25 |
Family
ID=76686059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980102940.2A Active CN114902619B (zh) | 2019-12-31 | 2019-12-31 | 一种存储管理装置及芯片 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114902619B (zh) |
WO (1) | WO2021134521A1 (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082891A (zh) * | 2007-05-10 | 2007-12-05 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
CN101932996A (zh) * | 2007-09-24 | 2010-12-29 | 认知电子公司 | 具有降低功耗的并行处理计算机系统及提供该系统的方法 |
CN102508643A (zh) * | 2011-11-16 | 2012-06-20 | 刘大可 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
CN103034615A (zh) * | 2012-12-07 | 2013-04-10 | 无锡美森微电子科技有限公司 | 一种适用于流应用多核处理器的存储管理方法 |
CN103092788A (zh) * | 2012-12-24 | 2013-05-08 | 华为技术有限公司 | 多核处理器及数据访问方法 |
CN103744644A (zh) * | 2014-01-13 | 2014-04-23 | 上海交通大学 | 采用四核结构搭建的四核处理器系统及数据交换方法 |
CN105095150A (zh) * | 2015-08-14 | 2015-11-25 | 中国电子科技集团公司第五十八研究所 | 一种支持片上网络的网络接口 |
CN106293642A (zh) * | 2016-08-08 | 2017-01-04 | 合肥工业大学 | 一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制 |
US9658675B1 (en) * | 2015-02-19 | 2017-05-23 | Amazon Technologies, Inc. | Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores |
CN109241641A (zh) * | 2018-09-18 | 2019-01-18 | 西安微电子技术研究所 | 一种双核ARM型SoC应用验证实现方法及应用验证板 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100675850B1 (ko) * | 2005-10-12 | 2007-02-02 | 삼성전자주식회사 | AXI 프로토콜을 적용한 NoC 시스템 |
US20080177979A1 (en) * | 2006-03-01 | 2008-07-24 | Gheorghe Stefan | Hardware multi-core processor optimized for object oriented computing |
CN100561924C (zh) * | 2007-10-10 | 2009-11-18 | 山东大学 | 片上网络数字路由器及其并行数据传输方法 |
FR2925187B1 (fr) * | 2007-12-14 | 2011-04-08 | Commissariat Energie Atomique | Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees |
US8490111B2 (en) * | 2011-04-16 | 2013-07-16 | Throughputer, Inc. | Efficient network and memory architecture for multi-core data processing system |
US10949200B2 (en) * | 2013-06-16 | 2021-03-16 | President And Fellows Of Harvard College | Methods and apparatus for executing data-dependent threads in parallel |
US20170147513A1 (en) * | 2015-11-24 | 2017-05-25 | Knuedge, Inc. | Multiple processor access to shared program memory |
CN105528311A (zh) * | 2015-12-11 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于数据包的存储器读写电路及方法 |
US10068041B2 (en) * | 2016-02-01 | 2018-09-04 | King Fahd University Of Petroleum And Minerals | Multi-core compact executable trace processor |
CN108470009B (zh) * | 2018-03-19 | 2020-05-29 | 上海兆芯集成电路有限公司 | 处理电路及其神经网络运算方法 |
-
2019
- 2019-12-31 WO PCT/CN2019/130640 patent/WO2021134521A1/zh active Application Filing
- 2019-12-31 CN CN201980102940.2A patent/CN114902619B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082891A (zh) * | 2007-05-10 | 2007-12-05 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
CN101932996A (zh) * | 2007-09-24 | 2010-12-29 | 认知电子公司 | 具有降低功耗的并行处理计算机系统及提供该系统的方法 |
CN102508643A (zh) * | 2011-11-16 | 2012-06-20 | 刘大可 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
CN103034615A (zh) * | 2012-12-07 | 2013-04-10 | 无锡美森微电子科技有限公司 | 一种适用于流应用多核处理器的存储管理方法 |
CN103092788A (zh) * | 2012-12-24 | 2013-05-08 | 华为技术有限公司 | 多核处理器及数据访问方法 |
CN103744644A (zh) * | 2014-01-13 | 2014-04-23 | 上海交通大学 | 采用四核结构搭建的四核处理器系统及数据交换方法 |
US9658675B1 (en) * | 2015-02-19 | 2017-05-23 | Amazon Technologies, Inc. | Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores |
CN105095150A (zh) * | 2015-08-14 | 2015-11-25 | 中国电子科技集团公司第五十八研究所 | 一种支持片上网络的网络接口 |
CN106293642A (zh) * | 2016-08-08 | 2017-01-04 | 合肥工业大学 | 一种用于粗粒度多核计算系统的分支处理模块及其分支处理机制 |
CN109241641A (zh) * | 2018-09-18 | 2019-01-18 | 西安微电子技术研究所 | 一种双核ARM型SoC应用验证实现方法及应用验证板 |
Also Published As
Publication number | Publication date |
---|---|
CN114902619A (zh) | 2022-08-12 |
WO2021134521A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269529B2 (en) | Neural network data processing apparatus, method and electronic device | |
US9465662B2 (en) | Processor with efficient work queuing | |
KR101121592B1 (ko) | 버스트 판독기록 동작을 구비한 처리 장치 | |
KR102409024B1 (ko) | 네트워크 프로세서에서의 멀티-코어 상호접속 | |
US20140153575A1 (en) | Packet data processor in a communications processor architecture | |
CN101567849B (zh) | 一种数据缓存方法和装置 | |
US9529640B2 (en) | Work request processor | |
US8885480B2 (en) | Packet priority in a network processor | |
CN101443740A (zh) | 用于高速缓存存储器的最大驻留替换的方法和系统 | |
US7466716B2 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
CN100504824C (zh) | 用于处理读取请求的方法、设备和系统 | |
CN114902619B (zh) | 一种存储管理装置及芯片 | |
CN114546914A (zh) | 用于对多个通道信息执行数据处理的处理装置及系统 | |
CN113138711B (zh) | 一种存储管理装置及芯片 | |
JPS58105344A (ja) | バツフアメモリ管理方式 | |
US9906468B2 (en) | Packet traffic control in a network processor | |
CN114553776A (zh) | 一种信号乱序控制与速率自适应的传输装置及其传输方法 | |
CN113778937A (zh) | 用于执行片上网络(NoC)中的事务聚合的系统和方法 | |
US8176117B2 (en) | Accelerator for object-oriented communications and method | |
CN112825101B (zh) | 芯片架构及其数据处理方法、电子设备及存储介质 | |
CN112437032B (zh) | 数据收发装置及方法、存储介质和电子设备 | |
CN112817638A (zh) | 一种数据处理装置及方法 | |
CN102637153B (zh) | 耦合设备、处理器装置、数据处理装置、传输数据的方法 | |
CN112383313A (zh) | 一种并行数据解码装置及方法 | |
CN117331689A (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 |