CN113138711B - 一种存储管理装置及芯片 - Google Patents
一种存储管理装置及芯片 Download PDFInfo
- Publication number
- CN113138711B CN113138711B CN202010066463.3A CN202010066463A CN113138711B CN 113138711 B CN113138711 B CN 113138711B CN 202010066463 A CN202010066463 A CN 202010066463A CN 113138711 B CN113138711 B CN 113138711B
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- processing core
- chip
- storage
- 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
- 238000012545 processing Methods 0.000 claims abstract description 176
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000007726 management method Methods 0.000 description 54
- 238000000034 method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, 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/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- 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
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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
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将连续的存储的相同的数据都释放,供多个处理核读取。图2中的单箭头表示多个核获取相同数据的数据传输的方向,虚线表示核能够与共享存储模块SM实现数据的双向传输。
多个处理核取数的流程为:
第一个处理核C1向SM发出取数指示,SM释放连续存储的相同的数据,需要相同数据的处理核C1-Cn分别对应接收SM释放的相同的数据,这种方式需要SM将同一个数据连续的存储有多份,浪费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,用于根据所述指令指示的处理核,生成与每个所述处理核对应的包头,并基于所述包头和所述释放的数据生成与每个所述处理核对应的数据包。
在一个实施例中,指令包括控制位,所述控制位为多位,每个处理核对应所述控制位中的一位;所述指令解析单元,用于根据所述控制位是否为预设值确定指令指示的处理核,并生成所述指令指示的处理核的所述控制信号。
优选的,控制位为预设值的处理核为指令指示的处理核。
在一个实施例中,指令包括用于指示数据接收方的信息位、取数首地址、取数个数、每个待接收数据的处理核中数据的存储地址的首地址、用于指示指令解析单元生成控制信号的控制位。
在一个具体的实施例中,指令的格式如下:
需要说明的是,可以预先按照顺序对多个处理核进行编号,由于存储管理装置需要通过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时,则表示该数据包是发给与该某一位对应的处理核的。
在一个具体的实施例中,信息位ID_C的格式如下:
保留 | C2 | C1 | MME |
3 | 2 | 1 | 0 |
可以设置为右侧第一位为信息位的第一位,信息位的第一位对应的是存储管理装置MME,当然也可以设置左侧第一位为信息位的第一位,本发明不以此为限。
令编码为00000001,当指令解析单元ID发现指令编码为00000001时,说明这是一条取数指令。
其中,控制位的位数为N+1位,控制位的N+1位与信息位的N+1位是一一对应的,即控制位的第二位到第N+1位与N个处理核分别是一一对应的,与指令指示的处理核对应的所述控制位为预设值,例如,预设值是1,即当指令解析单元确定控制位中的一位或多位为1时,产生控制信号。即,指令解析单元为对应于控制位为1的处理核生成控制信号。例如,芯片有4个处理核,则控制位有5位,控制位的右侧第1位对应的是存储管理装置,右侧第2位到第5位一一对应该4个处理核,当控制位C-C为10110时,即第一位和第四位为0、第二位、第三位和第五位为1,表示要为第一处理核、第二处理核、第四处理核生成控制信号,第一处理核、第二处理核、第四处理核都需要接收数据。
需要说明的是,本发明实施例中,设置C-C的N+1位中右侧第一个数对应的是第一位(对应存储管理装置),右侧第二个数对应的是第二位(对应第一处理核),右侧最后一个数对应的是最后一位(第N处理核),当然也可以设置左侧第一个数对应的是第一位(存储管理装置),左侧第二个数对应的是第二位(第一处理核),左侧最后一个数对应的是最后一位(第N处理核),本发明并不以此为限。
其中,取数信息、存数信息和取数个数可以分别为16比特。
其中,保留是指未进行编码。
图4是根据本发明又一实施方式的存储管理装置的结构示意图。
在一个实施例中,数据包生成单元PG-SW包括Tx发送器和Rx接收器,其中Tx发送器包括包头生成单元P_Gen。
在一个实施例中,所述数据包生成单元PG-SW用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并依次将全部所述数据包发送至所述片上网络NoC,包括:所述数据包生成单元用于根据所述指令指示的处理核,生成与所述指令指示的处理核中的每个所述处理核对应的包头,并基于所述包头和所述释放的数据生成与每个所述处理核对应的数据包,并依次将全部的数据包发送至片上网络NoC。
在一个具体的实施例中,所述指令包括控制位,所述控制位为多位,每个处理核对应所述控制位中的一位;所述指令解析单元,用于根据所述控制位是否为预设值确定指令指示的处理核,并生成所述指令指示的处理核的所述控制信号。
在一个实施例中,每个处理核对应所述控制位中的一位包括:每个处理核按照预设顺序对应所述控制位中的一位。
所述数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,包括:所述数据包生成单元,用于根据所述预设顺序,依次生成所述包头,进而依次生成所述数据包,依次将全部所述数据包发送至所述片上网络。
在一个实施方式中,上述存储管理装置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的包头生成单元P-Gen。
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。
包头生成单元P-GEN根据第一控制信号C_C1和第二控制信号C_C2分别生成第一信息位ID_C1和第二信息位ID_C2,第一信息位为0010,第二信息位为0100。
需要说明的是,当处理核的个数位小于3时,信息位的第四位可以设置为0。
P-GEN根据存储地址Addr_D1_N和第一信息位ID_C1生成第一包头,然后将第一包头和从存储装置释放的数据生成第一数据包,并将该数据包发送至NoC相应的端口处,进而通过NoC发送至第一处理核;然后,P-GEN根据存储地址Addr_D2_N和第二信息位ID_C2生成第二包头,然后将第二包头和从存储装置释放的数据生成第二数据包,并将该数据包发送至NoC相应的端口处,进而通过NoC发送至第二处理核。
NoC将第一数据包发送至第一处理核,将第二数据包发送到第二处理核。
在一个实施例中,P-GEN可以在预先设置的查找表LUT中查找与该控制信号对应的信息位ID_C,例如,根据第一控制信号C-C1在查找表中查找与该第一控制信号对应的信息位ID_C1。P-GEN通过根据控制信号在查找表中查找信息位能够快速的获得信息位,便于快速的生成包头。
在一个实施例中,P-GEN还可以根据该控制信号,生成与该控制信号对应的信息位ID_C,例如,P-GEN根据控制信号0010生成信息位0010。
需要说明的是,本发明通过P-GEN生成包头,然后将包头和数据生成数据包,串行的将数据包发送给指令指示的处理核,相比于通过设置多个开关,并行的将数据包发送给NoC,能够减小MME的面积,更节省成本。
在一个实施例中,存储管理装置MME接收的数据包或者MME发送出的数据包都可以是下述格式:
信息位 | 处理核中数据的存储地址 | 数据 |
(ID_C,4bit) | (Addr_D,16bit) | (128bit) |
本发明实施方式提供的存储装置,能够将数据包发送至需要相同数据的全部处理核,从而需要相同数据的处理核无需分别从存储装置中读取数据,降低了芯片及存储装置的功耗,节省了需要相同数据的处理核读取数据的时间。
图5是根据本发明再一实施方式的芯片的结构示意图。
如图5所示,该芯片包括片上网络NoC、与片上网络连接的多个所述处理核、存储装置和上述实施方式提供的存储管理装置MME。
其中,多个处理核为N个,即第一处理核C1到第N处理核Cn。
该存储管理装置,解析从片上网络获取的指令,根据该指令和从存储模块释放的数据,生成与指令指示的接收数据的处理核对应的数据包,将生成的全部的数据包发送至片上网络,通过片上网络将全部的数据包发送至处理核。
需要说明的是,在图5中,单箭头表示本发明实施方式提供中数据的传输方向,虚线表示能够实现双线的交互,例如处理核C1与存储管理装置MME之间虚线的双箭头表示处理核与存储管理装置MME能够双向的实现数据的发送和接收。存储管理装置MME与存储装置SM也能够双线的实现数据的发送和接收。
本发明的一个实施方式,提供了一种卡板,包括一个或多个上述实施方式提供的芯片。
本发明的一个实施方式,提供了一种电子设备,包括一个或多个上述实施方式提供的卡板。
图6是根据本发明一实施方式的存储管理方法的流程示意图。
如图6所示,该存储管理方法包括步骤S101-步骤S102:
步骤S101,指令解析单元解析从所述片上网络接收到的指令,并根据所述指令生成控制信号。
步骤S102,数据包生成单元根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,并将生成的至少一个所述数据包串行的发送至所述片上网络。
本发明一个实施方式还提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述程序被处理器执行时实现上述实施方式提供的存储管理方法。
本发明的又一个实施方式,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施方式提供的一种存储管理方法。
本发明的又一个实施方式,提供了一种计算机程序产品,其中,包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行上述实施方式提供的一种存储管理方法。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (8)
1.一种存储管理装置,其特征在于,所述存储管理装置设置于片上网络和存储装置之间; 所述存储管理装置包括: 指令解析单元,用于解析从所述片上网络接收到的指令,并根据所述指令生成控制信号;
数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据和所述指令指示的多个处理核生成与多个所述处理核对应的多个数据包,并将生成的多个所述数据包串行的发送至所述片上网络。
2.如权利要求1所述的装置,其特征在于, 所述指令包括取数信息和存数信息。
3.如权利要求2所述的装置,其特征在于,所述装置还包括存取数指示单元; 所述存取数指示单元,用于接收所述取数信息,根据所述取数信息指示所述存储装置释放所述取数信息所指示的数据; 所述存取数指示单元还用于接收所述存数信息,根据所述存数信息生成与所述指令指示的处理核对应的所述数据包的存储地址。
4.如权利要求3所述的装置,其特征在于,所述数据包生成单元用于根据所述控制信号,基于从所述存储装置中释放的数据和所述指令指示的多个处理核生成与多个所述处理核对应的多个数据包,包括: 所述数据包生成单元用于根据所述指令指示的处理核,生成与每个所述处理核对应的包头,并基于所述包头和所述释放的数据生成与每个所述处理核对应的数据包。
5.如权利要求 4所述的装置,其特征在于, 所述指令包括控制位,所述控制位为多位,每个处理核对应所述控制位中的一位;
所述指令解析单元,用于根据所述控制位是否为预设值确定指令指示的处理核,并生成所述指令指示的处理核的所述控制信号。
6.如权利要求5所述的装置,其特征在于, 所述数据包生成单元,用于根据所述指令指示的处理核,生成与每个所述处理核对应的包头,包括: 所述数据包生成单元,用于生成所述指令指示的处理核的地址,基于所述存储地址以及所述指令指示的处理核的地址生成所述包头。
7.如权利要求5或6所述的装置,其特征在于,每个处理核对应所述控制位中的一位,包括:每个处理核按照预设顺序对应所述控制位中的一位; 所述数据包生成单元,用于根据所述控制信号,基于从所述存储装置中释放的数据生成至少一个数据包,包括: 所述数据包生成单元,用于根据所述预设顺序,依次生成所述包头,进而依次生成所述数据包,依次将全部所述数据包发送至所述片上网络。
8.一种芯片,其特征在于,包括片上网络、与所述片上网络连接的多个所述处理核、存储装置和如权利要求1-7任一项提供的存储管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010066463.3A CN113138711B (zh) | 2020-01-20 | 2020-01-20 | 一种存储管理装置及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010066463.3A CN113138711B (zh) | 2020-01-20 | 2020-01-20 | 一种存储管理装置及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113138711A CN113138711A (zh) | 2021-07-20 |
CN113138711B true CN113138711B (zh) | 2023-11-17 |
Family
ID=76809210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010066463.3A Active CN113138711B (zh) | 2020-01-20 | 2020-01-20 | 一种存储管理装置及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113138711B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515295A (zh) * | 2009-03-23 | 2009-08-26 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
CN101996087A (zh) * | 2010-12-02 | 2011-03-30 | 北京星河亮点通信软件有限责任公司 | 多核处理器阵列程序的动态加载系统及方法 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
CN102622329A (zh) * | 2011-02-11 | 2012-08-01 | 微软公司 | 多核计算机中的远程核操作 |
CN102750257A (zh) * | 2012-06-21 | 2012-10-24 | 西安电子科技大学 | 基于访问信息调度的片上多核共享存储控制器 |
CN102938000A (zh) * | 2012-12-06 | 2013-02-20 | 武汉烽火网络有限责任公司 | 一种高速并行的无锁流表路由查找方法 |
CN103092788A (zh) * | 2012-12-24 | 2013-05-08 | 华为技术有限公司 | 多核处理器及数据访问方法 |
KR20130081425A (ko) * | 2012-01-09 | 2013-07-17 | 한국과학기술원 | 멀티 코어 프로세서, 이를 포함하는 멀티 코어 시스템, 전자 장치 및 멀티 코어 프로세서의 캐시 공유 방법 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
CN105528311A (zh) * | 2015-12-11 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于数据包的存储器读写电路及方法 |
CN106161254A (zh) * | 2016-07-18 | 2016-11-23 | 中国科学院计算技术研究所 | 一种多目的数据传输网路路由装置、方法、芯片、路由器 |
WO2018075811A2 (en) * | 2016-10-19 | 2018-04-26 | Rex Computing, Inc. | Network-on-chip architecture |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050079563A (ko) * | 2004-02-06 | 2005-08-10 | 삼성전자주식회사 | 응답 지연 시간을 단축시킨 버스 시스템 |
US8522254B2 (en) * | 2010-06-25 | 2013-08-27 | International Business Machines Corporation | Programmable integrated processor blocks |
US11165717B2 (en) * | 2015-10-26 | 2021-11-02 | Western Digital Technologies, Inc. | Fabric interconnection for memory banks based on network-on-chip methodology |
US10078606B2 (en) * | 2015-11-30 | 2018-09-18 | Knuedge, Inc. | DMA engine for transferring data in a network-on-a-chip processor |
-
2020
- 2020-01-20 CN CN202010066463.3A patent/CN113138711B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515295A (zh) * | 2009-03-23 | 2009-08-26 | 浙江大学 | 片上硬件数据库的高速缓冲器支持实现方法 |
CN101996087A (zh) * | 2010-12-02 | 2011-03-30 | 北京星河亮点通信软件有限责任公司 | 多核处理器阵列程序的动态加载系统及方法 |
CN102622329A (zh) * | 2011-02-11 | 2012-08-01 | 微软公司 | 多核计算机中的远程核操作 |
CN102521201A (zh) * | 2011-11-16 | 2012-06-27 | 刘大可 | 多核数字信号处理器片上系统及数据传输方法 |
CN102567278A (zh) * | 2011-12-29 | 2012-07-11 | 中国科学院计算技术研究所 | 一种片上多核数据传输方法和装置 |
KR20130081425A (ko) * | 2012-01-09 | 2013-07-17 | 한국과학기술원 | 멀티 코어 프로세서, 이를 포함하는 멀티 코어 시스템, 전자 장치 및 멀티 코어 프로세서의 캐시 공유 방법 |
CN102750257A (zh) * | 2012-06-21 | 2012-10-24 | 西安电子科技大学 | 基于访问信息调度的片上多核共享存储控制器 |
CN102938000A (zh) * | 2012-12-06 | 2013-02-20 | 武汉烽火网络有限责任公司 | 一种高速并行的无锁流表路由查找方法 |
CN103092788A (zh) * | 2012-12-24 | 2013-05-08 | 华为技术有限公司 | 多核处理器及数据访问方法 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
CN105528311A (zh) * | 2015-12-11 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于数据包的存储器读写电路及方法 |
CN106161254A (zh) * | 2016-07-18 | 2016-11-23 | 中国科学院计算技术研究所 | 一种多目的数据传输网路路由装置、方法、芯片、路由器 |
WO2018075811A2 (en) * | 2016-10-19 | 2018-04-26 | Rex Computing, Inc. | Network-on-chip architecture |
Non-Patent Citations (2)
Title |
---|
多核CPU中交叉开关总线的设计;朱艳;;电子技术(第03期);全文 * |
层次化共享多通道便签存储器的嵌入式多核体系;刘彩霞;石峰;薛立成;宋红;;计算机辅助设计与图形学学报(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113138711A (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3846040A1 (en) | Neural network data processing apparatus, method and electronic device | |
US9465662B2 (en) | Processor with efficient work queuing | |
US7957392B2 (en) | Method and apparatus for high-performance bonding resequencing | |
US9330002B2 (en) | Multi-core interconnect in a network processor | |
KR101121592B1 (ko) | 버스트 판독기록 동작을 구비한 처리 장치 | |
US7464201B1 (en) | Packet buffer management apparatus and method | |
US20080091789A1 (en) | Distributed Multi-Media Server System, Multi-Media Information Distribution Method, Program Thereof, and Recording Medium | |
CN104065588A (zh) | 一种数据包调度和缓存的装置及方法 | |
US7466716B2 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
CN100504824C (zh) | 用于处理读取请求的方法、设备和系统 | |
US10346049B2 (en) | Distributed contiguous reads in a network on a chip architecture | |
CN113138711B (zh) | 一种存储管理装置及芯片 | |
CN105912306B (zh) | 一种高并发平台服务器的数据处理的方法 | |
CN111884952B (zh) | 一种基于fpga的多通道计算加速设备 | |
CN114902619B (zh) | 一种存储管理装置及芯片 | |
CN115913473B (zh) | 一种数据选择性重传方法及其系统、存储介质、电子设备 | |
CN114885045B (zh) | 一种在高速智能网卡/dpu内节约dma通道资源方法和装置 | |
CN115905061A (zh) | 数据搬运装置、dma装置、电子设备及数据搬运方法 | |
JPS58105344A (ja) | バツフアメモリ管理方式 | |
US9906468B2 (en) | Packet traffic control in a network processor | |
US9229792B1 (en) | Method and apparatus for weighted message passing | |
CN105450543B (zh) | 语音数据传输方法 | |
US7940764B2 (en) | Method and system for processing multicast packets | |
CN112825101B (zh) | 芯片架构及其数据处理方法、电子设备及存储介质 | |
CN115357534B (zh) | 一种高速多路lvds采集系统及存储介质 |
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 |