CN114237509B - 数据访问方法及装置 - Google Patents
数据访问方法及装置 Download PDFInfo
- Publication number
- CN114237509B CN114237509B CN202111548866.2A CN202111548866A CN114237509B CN 114237509 B CN114237509 B CN 114237509B CN 202111548866 A CN202111548866 A CN 202111548866A CN 114237509 B CN114237509 B CN 114237509B
- Authority
- CN
- China
- Prior art keywords
- data
- core
- kernel
- ddr
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/061—Improving I/O performance
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据访问方法及装置,该方法包括:接收第一内核发送的数据获取请求,数据获取请求中包括待访问的第一数据的标识。根据数据获取请求获取第一数据。确定第一数据对应的至少一个第二内核,第二内核为待访问第一数据的内核。向第一内核和至少一个第二内核发送第一数据。通过在接收到第一内核针对第一数据的数据获取请求的时候,还确定同样需要获取第一数据的其余第二内核,之后将第一数据同时发送给第一内核和其余的第二内核,从而可以保证其余的第二内核无需再请求获取数据,因此避免了对DDR的重复访问,从而可以有效避免对内存单元的访问过于频繁的问题。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种数据访问方法及装置。
背景技术
随着计算机技术的不断发展,嵌入式神经网络处理器(Neural-networkProcessing Unit,NPU)得到了越来越广泛的应用。
目前,在NPU中通常是包括多个内核的,其中多个核可以并行的进行数据处理,以提升NPU的处理效率。其中,NPU中的每个内核都可以单独的访问NPU中的双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR),以获取需要的数据。
然而,不同的内核可能向DDR获取的内容是相同的,这样就会导致对DDR的访问过于频繁。
发明内容
本申请实施例提供一种数据访问方法及装置,以克服对DDR的访问过于频繁的问题。
第一方面,本申请实施例提供一种数据访问方法,包括:
接收第一内核发送的数据获取请求,所述数据获取请求中包括待访问的第一数据的标识;
根据所述数据获取请求获取第一数据;
确定所述第一数据对应的至少一个第二内核,所述第二内核为待访问所述第一数据的内核;
向所述第一内核和所述至少一个第二内核发送所述第一数据。
在一种可能的设计中,确定所述第一数据对应的至少一个第二内核,包括:
确定所述第一数据对应的多个内核;
将所述多个内核中除所述第一内核之外的其它内核,确定为所述至少一个第二内核。
在一种可能的设计中,确定所述第一数据对应的多个内核,包括:
获取数据配置信息,所述数据配置信息中包括多个数据的标识和每个数据的标识对应的内核的标识;
根据所述第一数据的标识和所述数据配置信息,确定所述第一数据对应的多个内核。
在一种可能的设计中,根据所述数据获取请求获取第一数据,包括:
根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据,其中,所述DDR中存储的数据为用于多个内核访问的数据。
在一种可能的设计中,根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据之前,还包括:
判断内存中是否存在数据;
若所述内存中存在数据,则将所述内存中的数据存储在所述DDR中,并删除所述内存中的数据。
在一种可能的设计中,向所述第一内核和所述至少一个第二内核发送所述第一数据之后,还包括:
在所述DDR中删除所述第一数据。
在一种可能的设计中,在所述DDR中删除所述第一数据,包括:
判断所述第一内核和所述至少一个第二内核是否成功接收所述第一数据;
在确定所述第一内核和所述至少一个第二内核成功接收所述第一数据时,在所述DDR中删除所述第一数据。
在一种可能的设计中,所述方法应用于中控器,所述中控器设置在嵌入式神经网络处理器NPU中,所述NPU中还包括DDR和多个内核。
第二方面,本申请实施例提供一种数据访问装置,包括:
收发模块,用于接收第一内核发送的数据获取请求,所述数据获取请求中包括待访问的第一数据的标识;
获取模块,用于根据所述数据获取请求获取第一数据;
确定模块,用于确定所述第一数据对应的至少一个第二内核,所述第二内核为待访问所述第一数据的内核;
所述收发模块,还用于向所述第一内核和所述至少一个第二内核发送所述第一数据。
在一种可能的设计中,所述确定模块具体用于:
确定所述第一数据对应的多个内核;
将所述多个内核中除所述第一内核之外的其它内核,确定为所述至少一个第二内核。
在一种可能的设计中,所述确定模块具体用于:
获取数据配置信息,所述数据配置信息中包括多个数据的标识和每个数据的标识对应的内核的标识;
根据所述第一数据的标识和所述数据配置信息,确定所述第一数据对应的多个内核。
在一种可能的设计中,所述获取模块具体用于:
根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据,其中,所述DDR中存储的数据为用于多个内核访问的数据。
在一种可能的设计中,所述装置还包括:处理模块;
所述处理模块,用于在根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据之前,判断内存中是否存在数据;
若所述内存中存在数据,则将所述内存中的数据存储在所述DDR中,并删除所述内存中的数据。
在一种可能的设计中,所述处理模块还用于:
在向所述第一内核和所述至少一个第二内核发送所述第一数据之后,在所述DDR中删除所述第一数据。
在一种可能的设计中,所述处理模块具体用于:
判断所述第一内核和所述至少一个第二内核是否成功接收所述第一数据;
在确定所述第一内核和所述至少一个第二内核成功接收所述第一数据时,在所述DDR中删除所述第一数据。
在一种可能的设计中,所述方法应用于中控器,所述中控器设置在嵌入式神经网络处理器NPU中,所述NPU中还包括DDR和多个内核。
第三方面,本申请实施例提供一种数据访问设备,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如上第一方面以及第一方面各种可能的设计中任一所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计中任一所述的方法。
本申请实施例提供一种数据访问方法及装置,该方法包括:接收第一内核发送的数据获取请求,数据获取请求中包括待访问的第一数据的标识。根据数据获取请求获取第一数据。确定第一数据对应的至少一个第二内核,第二内核为待访问第一数据的内核。向第一内核和至少一个第二内核发送第一数据。通过在接收到第一内核针对第一数据的数据获取请求的时候,还确定同样需要获取第一数据的其余第二内核,之后将第一数据同时发送给第一内核和其余的第二内核,从而可以保证其余的第二内核无需再请求获取数据,因此避免了对DDR的重复访问,从而可以有效避免对内存单元的访问过于频繁的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的多个内核共同访问数据的实现示意图;
图2为本申请实施例提供的数据访问方法的流程图;
图3为本申请实施例提供的数据访问方法的流程图二;
图4为本申请实施例提供的NPU的结构示意图;
图5为本申请实施例提供的将数据存储至DDR的实现示意图;
图6为本申请实施例提供的数据配置信息的实现示意图;
图7为本申请实施例提供的发送数据的实现示意图;
图8为本申请实施例提供的数据访问装置的结构示意图;
图9为本申请实施例提供的数据访问设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请的技术方案,下面对本申请所涉及的相关技术进行进一步的详细介绍。
随着计算机技术的不断发展,NPU的使用也随着越来广泛了,其中,NPU采用“数据驱动并行计算”的架构,因此NPU特别擅长处理视频、图像类的海量多媒体数据。
目前在NPU中通常可以包括多个核,比如说4核的NPU、8核的NPU等等,本实施例中的核可以理解为核心(core),也可以称为内核。比如说上述介绍的4核的NPU就表示NPU中包括4个内核,8核的NPU就表示NPU中包括8个内核,其中多个核可以并行处理数据,从而可以有效提升NPU的处理效率。
可以理解的是,内核要进行数据的处理时,需要首先获取相应的数据,在一种可能的实现方式中,内核所需要的数据例如可以存储在DDR中。目前NPU中的每个内核都可单独的访问DDR,以获取需要的数据。
然而,并且不同的核可能向DDR获取的内容是相同的,这样就会导致对DDR进行不必要的访问,进而会导致对DDR的访问过于频繁。
例如可以参照图1进行理解,图1为本申请实施例提供的多个内核共同访问数据的实现示意图。
如图1所示,假设当前存在4核的NPU,则在该NPU中可以包括4个内核,分别是图1所示的内核1、内核2、内核3和内核4,假设当前4个内核都需要获取相同的数据,则参照图1,NPU中的4个内核都会向DDR发起数据获取请求,以请求获取需要的数据,并且各个核获取数据的频率可能是非常高的,这样就会导致对DDR的访问过于频繁。
针对现有技术中的问题,本申请提出例如了如下技术构思:针对多个内核都需要获取的重复数据,可以将标识重复数据所对应的多个内核,之后在接收到任一个内核针对该重复数据的获取请求的时候,将重复数据直接发送给对应的多个内核,从而可以避免针对DDR的重复访问,以解决对DDR的访问过于频繁访问的问题。
在上述介绍内容的基础上,下面结合具体的实施例对本申请提供的数据访问方法进行介绍,值得说明的是,本申请中各实施例的执行主体例如可以为上述介绍的NPU。在一种可能的实现方式中,在NPU中例如可以设置有中控器,例如可以由中控器控制执行本申请中各实施例介绍的数据访问方法,其中中控器的具体实现可以根据实际需求进行选择,只要其具备数据交互和数据处理的功能即可。
首先结合图2进行介绍,图2为本申请实施例提供的数据访问方法的流程图。
如图2所示,该方法包括:
S201、接收第一内核发送的数据获取请求,数据获取请求中包括待访问的第一数据的标识。
在本实施例中,在NPU中可以包括多个内核,在一种可能的实现方式中,NPU中的中控器例如可以接收第一内核发送的数据获取请求,其中,第一内核可以为NPU中所包括的多个内核中的任意一个内核,本实施例对此不做限制,凡是需要进行数据获取并发送了数据获取请求的内核,均可以作为本实施例中的第一内核,本实施例对第一内核具体是哪一个内核不做特别限定。
其中,数据访问请求用于请求获取第一数据,在一种可能的实现方式中,在数据获取请求中包括待访问的第一数据的标识,其中第一数据的具体实现同样可以根据实际需求进行选择,其可以为任意的第一内核所需要的数据,以及第一数据的标识例如可以为数字、字母、字符串等等,只要第一数据的标识可以实现对第一数据的唯一指示即可,其具体的实现可以根据实际需求进行选择。
S202、根据数据获取请求获取第一数据。
中控器在接收到数据获取请求之后,可以根据数据获取请求获取第一数据,可以确定的是,在数据获取请求中包括待访问的第一数据的标识,则例如可以根据第一数据的标识从相应的存储单元中获取第一数据。
S203、确定第一数据对应的至少一个第二内核,第二内核为待访问第一数据的内核。
在获取到第一数据之后,就可以将第一数据发送给需要第一数据的第一内核了,然而在本实施例中,可能存在多个内核都需要访问第一数据,因此在获取到第一数据之后,还可以确定第一数据所对应的至少一个第二内核,本实施例中的第二内核为待访问第一数据的内核。
其中,至少一个第二内核的内核数量,以及具体是哪些内核,可以取决于实际中内核的数据获取需求,本实施例对至少一个第二内核的具体实现不做限制。
S204、向第一内核和至少一个第二内核发送第一数据。
之后,在发送第一数据的时候,可以向第一内核发送第一数据,还可以同时向至少一个第二内核发送第一数据。
通过在接收到一个内核的数据获取请求的时候,直接将该数据发送给所有需要的内核,在上述介绍的内容中,就可以避免各个第二内核再发起数据访问请求,从而可以有效避免针对数据的重复获取。
本申请实施例提供的数据访问方法,包括:接收第一内核发送的数据获取请求,数据获取请求中包括待访问的第一数据的标识。根据数据获取请求获取第一数据。确定第一数据对应的至少一个第二内核,第二内核为待访问第一数据的内核。向第一内核和至少一个第二内核发送第一数据。通过在接收到第一内核针对第一数据的数据获取请求的时候,还确定同样需要获取第一数据的其余第二内核,之后将第一数据同时发送给第一内核和其余的第二内核,从而可以保证其余的第二内核无需再请求获取数据,因此避免了对DDR的重复访问,从而可以有效避免对内存单元的访问过于频繁的问题。
在上述实施例的基础上,下面结合图3至图7对本申请提供的数据访问方法进行进一步的详细介绍,图3为本申请实施例提供的数据访问方法的流程图二,图4为本申请实施例提供的NPU的结构示意图,图5为本申请实施例提供的将数据存储至DDR的实现示意图,图6为本申请实施例提供的数据配置信息的实现示意图,图7为本申请实施例提供的发送数据的实现示意图。
如图3所示,该方法包括:
S301、接收第一内核发送的数据获取请求,数据获取请求中包括待访问的第一数据的标识。
其中,S301的实现方式与上述S201介绍的实现方式类似,此处不再赘述。
S302、根据数据获取请求,在双倍速率同步动态随机存储器DDR中获取第一数据,其中,DDR中存储的数据为用于多个内核访问的数据。
在本实施例中,在NPU中例如可以设置有DDR,在DDR中例如可以存储有多个数据,在DDR中存储的数据为用于多个内核访问的数据。
下面例如可以结合图4对DDR中的数据进行介绍,如图4所示,在NPU中设置有中控器,以及还设置有DDR和多个内核,比如说可以包括图4所示的内核1、内核2、内核3、内核4,在DDR中可以存储有多个内核访问的数据,其中中控器在DDR和内核之间,可以进行数据访问的控制。
在DDR中所具体存储的数据的大小和数据的内容都可以根据实际需求进行选择,本实施例对此不做限制。以及可以理解的是,若需要从DDR中获取数据并发送给相应的内核,则也需要预先将多个内核访问的数据存储至DDR中。
则在一种可能的实现方式中,在根据数据获取请求,在双倍速率同步动态随机存储器DDR中获取第一数据之前,例如可以判断内存中是否存在数据;若内存中存在数据,则将内存中的数据存储在DDR中,并删除内存中的数据。
本实施例中的内存例如可以为和NPU在同一个设备中的内存,比如说当前实施例中的NPU是服务器的NPU,则当前所介绍的内存比如说可以是服务器的内存。再比如说当前实施例中的NPU是终端设备的NPU,则当前所介绍的内存比如说可以是终端设备的内存,本实施例对此不做限制。
例如在内存中例如可以存储多个内核访问的数据,在一种可能的实现方式中,在内存中所存储的数据比如说可以是多个内核都需要的数据。假设当前存在数据A,其中内核1、内核2、内核3和内核4都需要数据A,则可以将数据A存储在内存中。其中,具体哪些数据是多个内核都需要的,这些是可以预先确定的,因此本实施例中可以将多个内核都需要访问的数据存储在内存中。
则参照图5,中控器可以检测在内存中是否存在数据,在一种可能的实现方式中,中控器例如可以实时的检测在内存中是否存在数据,或者中控器还可以以预设时长为周期,定期的检测在内存中是否存在数据。
若确定在内存中存在数据,则中控器可以控制将内存中的数据存储在DDR中,从而可以实现将多个内核访问的数据存储在DDR中,以便于后续的访问,这里之所以要将内存中的数据存储至DDR中,是因为中控器从DDR中进行数据获取的速度更快,从而可以提升数据处理的速度。
以及在将内存中的数据存储在DDR中之后,还例如可以将内存中的数据进行删除,以节省内存中的存储空间,以便于后续存储新的数据。
上述介绍的是在内存中仅存储多个内核都需要访问的数据的实现方式,或者在另一种可能的实现方式中,针对仅有一个内核需要的数据,也就是说不是重复获取的数据,也可以存储在内存中,之后中控器在检测到内存中存在数据的时候,与上述介绍的类似,可以将此数据存储在DDR中,以便于后续需要的时候发送给相应的内核。
因此本实施例中存储在内存中,也可以理解为存储在DDR中的数据,可以是多个内核共同需要的数据,或者还可以是单个内核需要的数据,其实现方式类似,具体的数据可以根据实际需求进行选择。
在将数据存储在DDR中之后,中控器就可以根据数据获取请求在DDR中获取第一数据了,具体的,可以根据第一数据的标识从DDR中获取第一数据。
S303、获取数据配置信息,数据配置信息中包括多个数据的标识和每个数据的标识对应的内核的标识。
在本申请的技术方案中,中控器在获取到第一数据之后,需要确定当前除了第一内核之外,还存在哪些内核需要第一数据。在本实施例的一种可能的实现方式中,中控器可以获取数据配置信息,在数据配置信息中可以包括多个数据的标识以及每个数据的标识对应的内核的标识。
例如可以参照图6进行理解,如图6所示,假设当前在DDR中存在3个数据,这3个数据的标识分别是图6中所示的A、B、C。针对数据标识A,其对应的内核标识例如为图6中的1、2、3,表示内核1、内核2和内核3需要数据A。类似的,针对数据标识B,其对应的内核标识例如为图6中的1、2、3、4,表示内核1、内核2、内核3和内核4需要数据A。类似的,针对数据标识C,其对应的内核标识例如为图6中的1、2,表示内核1和内核2需要数据A。
在实际实现过程中,数据配置信息的具体实现方式可以根据实际需求进行确定,以及其中的数据的标识和内核的标识的具体实现都可以根据实际需求进行选择,本实施例对这些的具体实现均不做限定。
以及可以理解的是,在DDR中的数据是会发生变化的,因此当前的数据配置信息也会随之进行更新,具体的,在数据配置信息中所包括的数据标识,对应的是当前存储在DDR中的各个数据。以及,具体的内核需要什么样的数据是可以预先确定的,因此各个数据标识所对应的内核标识是可以获取到,在一种可能的实现方式中,内存中的数据就携带有对应的内核标识,那么中控器在将内存中的数据存储在DDR中的时候,可以根据数据的标识所对应的内核的标识同步更新数据配置信息。
基于上述介绍可以确定的是,中控器是可以预先确定好数据配置信息的,之后在需要的时候可以直接获取数据配置信息。
S304、根据第一数据的标识和数据配置信息,确定第一数据对应的多个内核。
因为在数据配置信息包括各个数据的标识各自对应的内核的标识,以及当前在数据获取请求中是包括第一数据的标识的,因此可以根据第一数据的标识,在数据配置信息中进行查找,确定第一数据的标识所对应的内核的标识,从而确定第一数据对应的多个内核。
比如说参照图6进行理解,假设当前第一数据的标识是A,则根据数据标识A和图6所示的数据配置信息,可以确定第一数据(也就是数据A)所对应的多个内核分别是内核1、内核2和内核3。
S305、将多个内核中除第一内核之外的其它内核,确定为至少一个第二内核。
基于上述介绍可以确定的是,本实施例中需要确定至少一个第二内核,其中第二内核为待访问第一数据的内核。可以理解的是,上述确定的第一数据对应的多个内核,实际上就是待访问第一数据的全部内核,那么在其中是包括第一内核的,现在要确定第二内核,因此就可以将多个内核中除第一内核之外的其它内核确定为至少一个第二内核。
假设继续沿用上述示例,比如说当前确定第一数据所对应的多个内核分别是内核1、内核2和内核3,以及假设第一内核是内核1,则可以确定至少一个第二内核包括内核2和内核3。
此处还需要说明的是,当多个内核都需要进行数据获取的时候,具体是其中的哪一个内核作为第一内核发送数据获取请求,在一种可能的实现方式中,NPU的多个内核中例如可以设置有一个主内核,除了主内核之外的其余内核都是辅内核,那么当前若多个需要进行数据获取的内核中包括主内核,那么主内核就可以作为第一内核发送数据获取请求。
比如说当前在NPU中包括内核1、内核2、内核3和内核4,假设其中的内核1是主内核,那么针对上述介绍的示例,比如说内核1、内核2和内核3都需要获取数据A,那么就可以由内核1作为第一内核来发送数据获取请求。
或者在其余可能的实现方式中,还可以是在多个需要进行数据获取的内核中,将内核标识最大的内核确定为第一内核,或者将内核标识最小的内核确定为第一内核,或者还可以是随机的一个内核作为第一内核,然后告知其余的内核自己已经发送了数据获取请求,那么其余的内核就不会再进行数据获取请求的发送了,在实际实现过程中,第一内核的具体确定可以根据实际需求进行选择和设置,本实施例对此不做限制。
S306、向第一内核和至少一个第二内核发送第一数据。
其中,S306的实现方式与上述S204的实现方式类似,此处不再赘述。
例如还可以参照图7以一个具体的示例对上述过程进行进一步的理解,如图7所示,假设当前内核1作为第一内核向中控器发送了数据获取请求,其中数据获取请求用于请求获取数据A。
然后中控器可以根据数据获取请求从DDR中获取数据A,并且例如可以确定数据A对应的至少一个第二内核包括内核2和内核3,之后中控器可以直接向内核1、内核2和内核3都发送数据A,例如可以采用多播的方式进行发送,从而可以避免内核2和内核3对DDR的访问。
S307、在DDR中删除第一数据。
因为DDR中的存储空间是有限的,因此在发送第一数据之后,中控器还可以在DDR中删除第一数据,以节省DDR中的存储空间,以便于后续存储新的数据。
在一种可能的实现方式中,中控器例如可以判断第一内核和至少一个第二内核是否成功接收第一数据;在确定第一内核和至少一个第二内核成功接收第一数据时,在DDR中删除第一数据。
若确定第一内核、至少一个第二内核中的任一个没有成功接收第一数据,则例如可以向未成功接收的内核再次发送所述第一数据,以保证数据传输的成功率。
本申请实施例提供的数据访问方法,通过从内存中获取多个内核待访问的数据,并将数据存储在DDR中,从而可以在接收到数据访问请求的时候,从DDR中快速的获取到需要的数据,以提升数据访问的效率和速度。同时,通过根据数据配置信息确定第一数据对应的多个内核,可以保证发送第一数据的目的内核的正确性,同时有效避免了多个内核因为相同的数据对DDR造成的不必要的访问,以避免对DDR的访问过于频繁。以及,在将第一数据发送给相应的内核之后,可以将第一数据从DDR中删除,从而可以节省DDR中的存储空间,以保证上述的数据访问流程的正常执行。
图8为本申请实施例提供的数据访问装置的结构示意图。如图8所示,该装置80包括:收发模块801、获取模块802、确定模块803以及处理模块804。
收发模块801,用于接收第一内核发送的数据获取请求,所述数据获取请求中包括待访问的第一数据的标识;
获取模块802,用于根据所述数据获取请求获取第一数据;
确定模块803,用于确定所述第一数据对应的至少一个第二内核,所述第二内核为待访问所述第一数据的内核;
所述收发模块801,还用于向所述第一内核和所述至少一个第二内核发送所述第一数据。
在一种可能的设计中,所述确定模块803具体用于:
确定所述第一数据对应的多个内核;
将所述多个内核中除所述第一内核之外的其它内核,确定为所述至少一个第二内核。
在一种可能的设计中,所述确定模块803具体用于:
获取数据配置信息,所述数据配置信息中包括多个数据的标识和每个数据的标识对应的内核的标识;
根据所述第一数据的标识和所述数据配置信息,确定所述第一数据对应的多个内核。
在一种可能的设计中,所述获取模块802具体用于:
根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据,其中,所述DDR中存储的数据为用于多个内核访问的数据。
在一种可能的设计中,所述装置还包括:处理模块804;
所述处理模块,用于在根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据之前,判断内存中是否存在数据;
若所述内存中存在数据,则将所述内存中的数据存储在所述DDR中,并删除所述内存中的数据。
在一种可能的设计中,所述处理模块804还用于:
在向所述第一内核和所述至少一个第二内核发送所述第一数据之后,在所述DDR中删除所述第一数据。
在一种可能的设计中,所述处理模块804具体用于:
判断所述第一内核和所述至少一个第二内核是否成功接收所述第一数据;
在确定所述第一内核和所述至少一个第二内核成功接收所述第一数据时,在所述DDR中删除所述第一数据。
在一种可能的设计中,所述方法应用于中控器,所述中控器设置在嵌入式神经网络处理器NPU中,所述NPU中还包括DDR和多个内核。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本申请实施例提供的数据访问设备的硬件结构示意图,如图9所示,本实施例的数据访问设备90包括:处理器901以及存储器902;其中
存储器902,用于存储计算机执行指令;
处理器901,用于执行存储器存储的计算机执行指令,以实现上述实施例中数据访问方法所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器902既可以是独立的,也可以跟处理器901集成在一起。
当存储器902独立设置时,该数据访问设备还包括总线903,用于连接所述存储器902和处理器901。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上数据访问设备所执行的数据访问方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (12)
1.一种数据访问方法,其特征在于,包括:
接收第一内核发送的数据获取请求,所述数据获取请求中包括待访问的第一数据的标识;
根据所述数据获取请求获取第一数据;
确定所述第一数据对应的至少一个第二内核,所述第二内核为待访问所述第一数据的内核;
向所述第一内核和所述至少一个第二内核发送所述第一数据。
2.根据权利要求1所述的方法,其特征在于,确定所述第一数据对应的至少一个第二内核,包括:
确定所述第一数据对应的多个内核;
将所述多个内核中除所述第一内核之外的其它内核,确定为所述至少一个第二内核。
3.根据权利要求2所述的方法,其特征在于,确定所述第一数据对应的多个内核,包括:
获取数据配置信息,所述数据配置信息中包括多个数据的标识和每个数据的标识对应的内核的标识;
根据所述第一数据的标识和所述数据配置信息,确定所述第一数据对应的多个内核。
4.根据权利要求1-3任一项所述的方法,其特征在于,根据所述数据获取请求获取第一数据,包括:
根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据,其中,所述DDR中存储的数据为用于多个内核访问的数据。
5.根据权利要求4所述的方法,其特征在于,根据所述数据获取请求,在双倍速率同步动态随机存储器DDR中获取所述第一数据之前,还包括:
判断内存中是否存在数据;
若所述内存中存在数据,则将所述内存中的数据存储在所述DDR中,并删除所述内存中的数据。
6.根据权利要求5所述的方法,其特征在于,向所述第一内核和所述至少一个第二内核发送所述第一数据之后,还包括:
在所述DDR中删除所述第一数据。
7.根据权利要求6所述的方法,其特征在于,在所述DDR中删除所述第一数据,包括:
判断所述第一内核和所述至少一个第二内核是否成功接收所述第一数据;
在确定所述第一内核和所述至少一个第二内核成功接收所述第一数据时,在所述DDR中删除所述第一数据。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述方法应用于中控器,所述中控器设置在嵌入式神经网络处理器NPU中,所述NPU中还包括DDR和多个内核。
9.一种数据访问装置,其特征在于,包括:
收发模块,用于接收第一内核发送的数据获取请求,所述数据获取请求中包括待访问的第一数据的标识;
获取模块,用于根据所述数据获取请求获取第一数据;
确定模块,用于确定所述第一数据对应的至少一个第二内核,所述第二内核为待访问所述第一数据的内核;
所述收发模块,还用于向所述第一内核和所述至少一个第二内核发送所述第一数据。
10.一种数据访问设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至8中任一所述的方法。
11.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至8中任一所述的方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111548866.2A CN114237509B (zh) | 2021-12-17 | 2021-12-17 | 数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111548866.2A CN114237509B (zh) | 2021-12-17 | 2021-12-17 | 数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114237509A CN114237509A (zh) | 2022-03-25 |
CN114237509B true CN114237509B (zh) | 2024-03-26 |
Family
ID=80757800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111548866.2A Active CN114237509B (zh) | 2021-12-17 | 2021-12-17 | 数据访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114237509B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109219805A (zh) * | 2017-05-08 | 2019-01-15 | 华为技术有限公司 | 一种多核系统内存访问方法、相关装置、系统及存储介质 |
CN110597643A (zh) * | 2019-08-30 | 2019-12-20 | Oppo广东移动通信有限公司 | 核间通信方法、处理器以及电子设备 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5516744B2 (ja) * | 2010-08-27 | 2014-06-11 | 富士通株式会社 | スケジューラ、マルチコアプロセッサシステムおよびスケジューリング方法 |
US9444890B2 (en) * | 2013-12-12 | 2016-09-13 | International Business Machines Corporation | Switch-based data tiering |
US10402341B2 (en) * | 2017-05-10 | 2019-09-03 | Red Hat Israel, Ltd. | Kernel-assisted inter-process data transfer |
US11063747B2 (en) * | 2019-03-25 | 2021-07-13 | Micron Technology, Inc. | Secure monitoring using block chain |
-
2021
- 2021-12-17 CN CN202111548866.2A patent/CN114237509B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109219805A (zh) * | 2017-05-08 | 2019-01-15 | 华为技术有限公司 | 一种多核系统内存访问方法、相关装置、系统及存储介质 |
CN110597643A (zh) * | 2019-08-30 | 2019-12-20 | Oppo广东移动通信有限公司 | 核间通信方法、处理器以及电子设备 |
CN112559433A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
CN112328533A (zh) * | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114237509A (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572414B2 (en) | Methods and systems for devices with self-selecting bus decoder | |
WO2010045029A1 (en) | Indirect register access method and system | |
CN108989432B (zh) | 用户态的文件发送方法、文件接收方法和文件收发装置 | |
CN105740330B (zh) | 分页展示数据的方法及装置 | |
CN110019873B (zh) | 人脸数据处理方法、装置及设备 | |
WO2021086693A1 (en) | Management of multiple physical function non-volatile memory devices | |
CN109446147B (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
US20220011971A1 (en) | Method for processing read/write data, apparatus, and computer readable storage medium thereof | |
CN115934625B (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
CN115617255A (zh) | 缓存文件的管理方法和管理装置 | |
CN110069533B (zh) | 一种基于区块链的事件订阅方法及装置 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN109347899B (zh) | 在分布式存储系统中写入日志数据的方法 | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
CN116610608B (zh) | 直接内存访问描述符处理方法、系统、装置、设备及介质 | |
CN114237509B (zh) | 数据访问方法及装置 | |
CN111125168B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110427394B (zh) | 数据操作方法及装置 | |
CN107291628B (zh) | 访问数据存储设备的方法和装置 | |
CN113486025B (zh) | 数据存储方法、数据查询方法及装置 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN111966486B (zh) | 一种获取数据的方法、fpga系统以及可读存储介质 | |
CN108509478B (zh) | 规则引擎文件的拆分调用方法、电子装置及存储介质 | |
CN107689996B (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 |