CN114168522B - 一种数据传输方法、装置及传输部件 - Google Patents
一种数据传输方法、装置及传输部件 Download PDFInfo
- Publication number
- CN114168522B CN114168522B CN202210131817.7A CN202210131817A CN114168522B CN 114168522 B CN114168522 B CN 114168522B CN 202210131817 A CN202210131817 A CN 202210131817A CN 114168522 B CN114168522 B CN 114168522B
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- transmission
- component
- storage hierarchy
- 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
Images
Classifications
-
- 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/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种数据传输方法、装置及传输部件,属于电子技术领域。方法包括:当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;基于所述第一数据得到第二数据;确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据。采用本发明,可以提高数据传输的效率。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种数据传输方法、装置及传输部件。
背景技术
内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作***就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。
CPU(Central Processing Unit,中央处理单元)、GPU(Graphics ProcessingUnit,图形处理器)或其他专用处理器、DDR(Double Data Rate SDRAM,双倍速率同步动态随机存储器,即内存)、PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)通过总线连接,SSD(Solid State Disk,固态硬盘)与PCIe连接。
以CPU和GPU为例,当CPU、GPU共同处理数据时,首先通过PCIe从SSD中读取数据,存储在DDR中;然后,GPU可以从DDR读取所需数据进行处理,并将处理后的数据返回DDR;CPU再从DDR读取GPU处理的数据,将处理后的数据返回DDR。当数据处理完毕后,通过PCIe将数据传回SSD存储。
由于CPU与GPU或其他专用处理器之间的数据传输,是通过DDR中转实现的,也即是内存级别的数据交互,传输速度较慢,影响数据传输的效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据传输方法、装置及传输部件。技术方案如下:
根据本发明的一方面,提供了一种数据传输方法,所述方法包括:
当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;
基于所述第一数据得到第二数据;
确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据。
根据本申请的另一方面,提供了一种传输部件,所述传输部件与每个处理器连接,所述传输部件包括:配置模块,多个数据通道,多个仲裁选择模块;
所述配置模块连接处理器、仲裁选择模块和数据通道,用于将传输信号进行译码,并根据译码对所述数据通道和所述仲裁选择模块进行配置;
所述数据通道连接至少两个仲裁选择模块,每个数据通道用于在至少两个仲裁选择模块之间传输数据;
所述仲裁选择模块与多个处理器连接,用于将第一处理器的数据传输至第二处理器。
根据本申请的另一方面,提供了一种数据传输装置,包括:
确定模块,用于当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
传输模块,用于从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;
处理模块,用于基于所述第一数据得到第二数据;
存储模块,用于确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据。
根据本申请的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述数据传输方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述数据传输方法。
本发明实施例中,当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器传输第一数据;基于第一数据得到第二数据;确定第二数据的第二目标存储层次,并在第二目标存储层次的存储部件中存储第二数据。通过不同的存储层次进行数据传输,相比于固定使用DDR的数据传输方法,能够提高数据传输的速度,提高数据传输的效率。
附图说明
在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:
图1示出了根据本发明示例性实施例提供的数据传输方法流程图;
图2示出了根据本发明示例性实施例提供的数据传输方法流程图;
图3示出了根据本发明示例性实施例提供的第一判断处理示意图;
图4示出了根据本发明示例性实施例提供的第二判断处理示意图;
图5示出了根据本发明示例性实施例提供的第三判断处理示意图;
图6示出了根据本发明示例性实施例提供的第四判断处理示意图;
图7示出了根据本发明示例性实施例提供的传输部件示意图;
图8示出了根据本发明示例性实施例提供的传输部件示意图;
图9示出了根据本发明示例性实施例提供的基于传输部件的数据传输方法流程图;
图10示出了根据本发明示例性实施例提供的数据传输装置的示意性框图;
图11示出了能够用于实现本发明的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。
应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
【实施例一】
本发明实施例提供了一种数据传输方法,该方法可以应用于终端、服务器和/或其他具备处理能力的电子设备,本发明对此不作限定。
如图1所示的数据传输方法流程图,步骤101-104给出的第一处理器向第二处理器的一次数据传输过程,该方法包括:
步骤101,当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
步骤102,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器传输第一数据;
步骤103,基于第一数据得到第二数据;
步骤104,确定第二数据的第二目标存储层次,并在第二目标存储层次的存储部件中存储第二数据。
可选的,当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标传输存储层次,包括:
当数据从第一处理器向第二处理器传输时,获取第一传输信号,第一传输信号用于指示第一目标存储层次;
根据第一传输信号,确定当前用于存储待传输的第一数据的第一目标存储层次。
可选的,确定第二数据的第二目标存储层次,包括:
确定第二数据的传输需求;
在多个存储层次中,根据传输需求,确定满足传输需求的第二目标存储层次。
可选的,传输需求包括数据量和/或数据优先级。
可选的,传输需求为数据量时,在多个存储层次中,根据传输需求,确定满足传输需求的第二目标存储层次,包括:
对传输速度从快到慢排序的每个存储层次,依次执行第一判断处理:
确定当前存储层次的最大容量是否大于等于第二数据的数据量;
当最大容量大于等于第二数据的数据量时,将当前存储层次作为第二目标存储层次,并停止第一判断处理;
当最大容量小于第二数据的数据量时,对下一存储层次执行第一判断处理。
可选的,传输需求为数据优先级时,在多个存储层次中,根据传输需求,确定满足传输需求的第二目标存储层次,包括:
对传输速度从快到慢排序的每个存储层次,依次执行第二判断处理:
确定当前存储层次中是否存储有其他数据;
当前存储层次中存储有其他数据时,确定其他数据的优先级是否高于第二数据;
当其他数据的优先级高于第二数据的优先级时,对下一存储层次执行第二判断处理;
当其他数据的优先级低于第二数据的优先级时,确定当前存储层次为第二目标存储层次,并停止第二判断处理。
可选的,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器发送第一数据,包括:
获取第二传输信号,第二传输信号包括第一处理器的源地址和第二处理器的目的地址;
根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据;
根据第二处理器的目的地址向第二处理器传输第一数据。
可选的,根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据,包括:通过传输部件,根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据;
根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据,包括:通过传输部件,根据第二处理器的目的地址向第二处理器传输第一数据。
可选的,传输部件包括配置模块和多个仲裁选择模块;
该方法还包括:通过配置模块将第二传输信号进行译码,获取第一处理器的源地址和第二处理器的目的地址;
通过传输部件,根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据,包括:通过一个仲裁选择模块,根据源地址选择第一处理器,从第一处理器的第一目标存储层次的存储部件中获取第一数据;
通过传输部件,根据第二处理器的目的地址向第二处理器传输第一数据,包括:通过另一仲裁选择模块,根据目的地址选择第二处理器,向第二处理器传输第一数据。
可选的,传输部件还包括多个数据通道;
该方法还包括:
通过一个仲裁选择模块在多个数据通道中选择目标数据通道;
通过目标数据通道,向另一仲裁选择模块传输第一数据。
可选的,该方法还包括:
当多个数据通道进行数据传输时,通过仲裁选择模块确定多个数据通道的优先级;
按照优先级由高到低的顺序依序控制多个数据通道进行数据传输。
可选的,该方法还包括:
通过配置模块对每个数据通道配置流量比例;
当多个数据通道进行数据传输时,通过仲裁选择模块,根据流量比例对每个数据通道的发送频率进行控制。
可选的,数据通道用于对第一数据进行数据处理,该数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。
可选的,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器传输第一数据,包括:
基于第一处理器,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器发送第一数据;或,
基于第二处理器,从第一目标存储层次的存储部件中,获取第一数据;或,
基于传输部件,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器发送第一数据。
可选的,基于第一数据得到第二数据,包括:
将第一数据作为第二数据;或,
基于任一处理器对第一数据进行处理,得到第二数据;或,
基于传输部件对第一数据进行处理,得到第二数据。
【实施例二】
上一个实施例介绍了第一处理器向第二处理器的一次数据传输的过程,本实施例将结合硬盘等外部存储器,介绍另一种数据传输的过程。
下面将参照图2所示的数据传输方法流程图,对数据传输方法进行介绍。
步骤201,从外部存储器获取数据,并存储在内存中。
在一种可能的实施方式中,当操作***运行程序时,可以从外部存储器中获取运行该程序所需的数据,并存储在内存中,以便处理器或传输部件调用该数据。
步骤202,从内存中获取数据,在任一处理器中对数据进行处理,得到处理后的数据。
其中,任一处理器可以是CPU、GPU等设置在电子设备中的处理器,本实施例对具体的处理器不作限定。
在一种可能的实施方式中,当任一处理器需要对该数据进行处理时,可以调用该数据进行处理,处理完成后得到相应的中间数据。可选的,可以是通过传输部件将数据从内存传输至该处理器。
需要说明的是,本实施例中将得到结果数据之前处理得到的任意数据均称为中间数据,后文同理。
步骤203,确定存储层次,并在该存储层次的存储部件中存储处理后的数据。
在一种可能的实施方式中,电子设备中可以设置有多种存储层次的存储部件。根据传输速度的快慢,存储层次可以依次划分为寄存器、缓存和内存,其中,缓存也分不同的层次,一级Cache(高速缓冲存储器)比二级Cache快,二级Cache比三级Cache快,依次类推,最后一级Cache(Last Level Cache)最慢。对于除CPU之外的其他处理器XPU(如GPU,图形处理单元),由于Local RAM(本地存储器)与缓存的传输速度相近,还可以将Local RAM划分为与缓存相同的存储层次。
得到中间数据后,可以在上述多种存储层次中,确定一个存储层次,并在相应的存储部件中,存储该中间数据。例如,当CPU处理完成时,若确定在一级Cache中存储中间数据,则在CPU的一级Cache中存储该中间数据。
可选的,可以根据传输需求确定存储层次,传输需求可以包括数据量和/或数据优先级。由于中间数据可以在处理器之间传输,为了便于介绍,下面将待传输的中间数据称为待传输数据。
当传输需求为数据量时,如图3所示的第一判断处理示意图,上述步骤203的处理可以如下:
对传输速度从快到慢排序的每个存储层次,依次执行第一判断处理:
确定当前存储层次的最大容量是否大于等于待传输数据的数据量;
当最大容量大于等于待传输数据的数据量时,将当前存储层次作为目标存储层次,并停止第一判断处理;
当最大容量小于待传输数据的数据量时,对下一存储层次执行第一判断处理。
在一种可能的实施方式中,可以确定待传输数据的数据量大小。进而,从寄存器开始,判断寄存器的最大容量是否大于等于该数据量,如果大于等于,表明可以通过寄存器进行传输,则可以在寄存器中存储该待传输数据;如果小于,表明寄存器不满足传输需求,则可以对下一存储层次,如一级Cache,继续执行如对寄存器的上述判断处理,此处不再赘述,直到确定下数据量满足传输需求的存储层次。
如果存储部件中已经没有空间存储待传输数据,则可以在已存储的数据中,选择一条数据进行替换。例如,可以基于替换算法进行替换,替换算法可以包括随机替换算法(Random)、最近最少使用算法(LRU,Least Recently Used)、访问次数最少算法(LFU,LeastFrequently Used)等,本实施例对具体的替换算法不作限定。后文同理,不再赘述。
当传输需求为优先级时,如图4所示的第二判断处理示意图,上述步骤203的处理可以如下:
对传输速度从快到慢排序的每个存储层次,依次执行第二判断处理:
确定当前存储层次中是否存储有其他数据;
当前存储层次中未存储有其他数据时,将当前存储层次作为目标存储层次,并停止第二判断处理;
当前存储层次中存储有其他数据时,确定其他数据的优先级是否高于待传输数据;
当其他数据的优先级高于待传输数据的优先级时,对下一存储层次执行第二判断处理;
当其他数据的优先级低于待传输数据的优先级时,确定当前存储层次为目标存储层次,并停止第二判断处理。
在一种可能的实施方式中,待传输数据的优先级可以预先设置,也可以根据数据重要性或使用频率等确定,本实施例对此不作限定。可以从寄存器开始,判断寄存器中是否存储有数据,如果没有,表明可以优先存储该待传输数据,则可以在寄存器中存储该待传输数据;如果有,则继续判断已存储的数据的优先级是否高于待传输数据。
如果低于,表明可以在寄存器中优先存储上述待传输数据,则在寄存器中进行存储。如果高于,表明在寄存器中优先存储上述已存储的数据,则继续对下一存储层次执行如对寄存器的上述判断处理,此处不再赘述,直到确定下优先级满足传输需求的存储层次。
此外,如果等于,可以对下一存储层次执行第二判断处理,或者,也可以确定当前存储层次为目标存储层次,并停止第二判断处理。本实施例中在等于的情况下,对于继续对下一存储层次执行判断处理或停止判断处理的条件不作限定。
当传输需求包括数据量和优先级时,可以将上述两种判断处理相结合,如图5所示的第三判断处理示意图,上述步骤203的处理可以如下:
对传输速度从快到慢排序的每个存储层次,依次执行第三判断处理:
确定当前存储层次中是否存储有其他数据;
当前存储层次中未存储有其他数据时,将当前存储层次作为目标存储层次,并停止第三判断处理;
当前存储层次中存储有其他数据时,确定其他数据的优先级是否高于待传输数据;
当其他数据的优先级高于待传输数据的优先级时,对下一存储层次执行第三判断处理;
当其他数据的优先级低于待传输数据的优先级时,确定当前存储层次的最大容量是否大于等于待传输数据的数据量;
当最大容量大于等于待传输数据的数据量时,将当前存储层次作为目标存储层次,并停止第三判断处理;
当最大容量小于待传输数据的数据量时,对下一存储层次执行第三判断处理。
其中的具体处理与上述同理,此处不再赘述。
图5示出的第三判断处理仅为一种可能的实施方式,或者,如图6所示的第四判断处理示意图,上述步骤203的处理还可以如下:
对传输速度从快到慢排序的每个存储层次,依次执行第四判断处理:
确定当前存储层次的容量是否大于等于待传输数据的数据量;
当容量小于待传输数据的数据量时,对下一存储层次执行第四判断处理;
当容量大于等于待传输数据的数据量时,确定当前存储层次中是否存储有其他数据;
当前存储层次中存储有其他数据时,确定其他数据的优先级是否高于待传输数据;
当其他数据的优先级高于待传输数据的优先级时,对下一存储层次执行第四判断处理;
当其他数据的优先级低于待传输数据的优先级时,确定当前存储层次为目标存储层次,并停止第四判断处理。
其中的具体处理与上述同理,此处不再赘述。
上述第三判断处理保证优先级高的数据存储在速度快的存储层次中,第四判断处理保证在满足传输数据量的情况下,优先存储优先级高的数据。当然,当传输需求包括数据量和优先级时,还可以有其他具体的实施方式,本实施例中不再一一列举。
步骤204,当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次。
其中,第一处理器和第二处理器为不同的处理器,且可以是任一处理器。当一个处理器向另一处理器传输数据时,传输方即为第一处理器,接收方即为第二处理器。
此时,待传输数据存储在第一处理器的存储部件或内存中。当传输数据时,可以确定存储数据的目标存储层次。
可选的,上述步骤204的处理可以如下:当数据从第一处理器向第二处理器传输时,获取第一传输信号;根据第一传输信号,确定当前用于存储待传输的第一数据的第一目标存储层次。
其中,第一传输信号可以用于指示第一目标存储层次,例如,可以包括第一目标存储层次的标识。第一传输信号可以由发起数据传输的任一部件进行发起,也可以基于CPU的统一调度发起,本实施例对此不作限定。
在一种可能的实施方式中,当第一处理器将待传输的数据存储完成时,第一处理器可以通过寄存器向第二处理器或CPU发送一个传输通知。该传输通知可以用于指示数据完成准备,并指示第一目标存储层次。
第二处理器的寄存器可以接收到该传输通知,并且可以做好接收数据的准备。
也即是说,当第一处理器可以传输数据时,可以向第二处理器告知已准备好数据,并告知该数据存储在何处。第二处理器可以获知相应的信息,并做好相应的准备。由于传输信号的数据量较小,可以通过寄存器传输,并且寄存器的传输速度最快,在此基础上,可以提高处理器之间的传输效率。
相对应的,当数据传输由第一处理器发起时,第一处理器可以获取相应的第一传输信号,并对该第一传输信号进行解析,获取其中的第一目标存储层次的信息。当数据传输由第二处理器或传输部件发起时,与第一处理器同理,此处不再赘述。
步骤205,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器传输第一数据。
在一种可能的实施方式中,在确定目标存储层次后,可以访问对应的存储部件,获取待传输数据,进而,向第二处理器传输该数据。
可选的,步骤205中的传输处理可以基于多种部件实现,相应的处理可以如下:基于第一处理器,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器发送第一数据;或,基于第二处理器,从第一目标存储层次的存储部件中,获取第一数据;或,基于传输部件,从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器发送所述第一数据。
在第一种可能的实施方式中,数据传输可以由第一处理器发起,此时,可以是基于第一处理器从相应的存储部件中获取待传输数据,并将待传输数据发送至第二处理器。
在第二种可能的实施方式中,数据传输可以由第二处理器发起,此时,可以是基于第二处理器从相应的存储部件中获取待传输数据至自身。
在第三种可能的实施方式中,数据传输可以由传输部件发起,此时,可以是基于传输部件从相应的存储部件中获取待传输数据,并将待传输数据发送至第二处理器。传输部件中的具体处理将在另一个实施例中介绍,本实施例不作赘述。
可选的,数据传输可以基于传输信号实现,上述步骤205的处理可以如下:获取第二传输信号;根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据;根据第二处理器的目的地址向第二处理器传输第一数据。
其中,第二传输信号可以包括第一处理器的源地址和第二处理器的目的地址。在此基础上,可以根据源地址和目的地址进行相应的访存操作。第二传输信号可以由发起数据传输的任一部件进行发起,也可以基于CPU的统一调度发起,本实施例对此不作限定。
可选的,可以通过传输部件获取到相应的第二传输信号,并对第二传输信号进行处理,进而获取上述源地址和目的地址并访问对应的存储部件,获取待传输数据,向第二处理器传输该数据。传输部件中的具体处理将在另一实施例中进行介绍,本实施例在此不作赘述。
步骤206,基于第一数据得到第二数据。
其中,第一数据可以是指待传输的数据,第二数据可以是指经过传输后待存储的数据。因此,在步骤206中可以对第一数据进行处理,得到的第二数据即为处理后的数据;也可以不对第一数据进行处理,也即是将在数据传输后,直接对相应的数据进行存储。
可选的,步骤206的处理可以如下:将第一数据作为第二数据;或,基于任一处理器对第一数据进行处理,得到第二数据;或,基于传输部件对第一数据进行处理,得到第二数据。
在第一种可能的实施方式中,数据传输过程中可以不对第一数据进行处理,直接将该第一数据传输至第二处理器,并作为待存储的第二数据。
在第二种可能的实施方式中,数据传输过程中可以基于任一处理器对第一数据进行处理,得到处理后的数据,此时,第二处理器可以接收到该处理后的数据,并将其作为待存储的第二数据。其中,任一处理器可以是指第一处理器、第二处理器或除第一处理器和第二处理器之外的其他处理器,本实施例对此不作限定。
在第三种可能的实施方式中,数据传输过程中可以基于传输部件对第一数据进行处理,得到处理后的数据,此时,第二处理器可以接收到该处理后的数据,并将其作为待存储的第二数据。传输部件中的具体处理将在另一实施例中进行介绍,本实施例在此不作赘述。
步骤207,确定第二数据的第二目标存储层次,并在第二目标存储层次的存储部件中存储第二数据。
步骤207的具体处理与上述步骤203同理,此处不再赘述。
下一次进行数据传输时,可以重复上述步骤204-207。并且,数据传输可以是并行的,本实施例对此不作限定。
需要说明的是,本次数据传输过程中的第二数据,在下次数据传输时可能会成为第一数据而被传输,本实施例对此不作限定。
步骤208,当运算完成时,将数据传回外部存储器存储。
在一种可能的实施方式中,数据运算完成时,结果数据可以存储在任一存储部件中,此时,可以将结果数据从该存储部件中传回外部存储器,并在外部存储器中存储该结果数据。
在另一种可能的实施方式中,如果结果数据存储在除内存之外的任一存储部件中,则可以先将结果数据传输至内存,进而将结果数据从内存传回外部存储器。可选的,在这种实施方式中,可以是通过传输部件将结果数据传输至内存。
本实施例中,通过不同的存储层次进行数据传输,相比于固定使用DDR的数据传输方法,可以尽可能使用传输速度快的存储层次,能够提高数据传输的速度,提高数据传输的效率。
【实施例三】
上述实施例中,数据从第一处理器传输至第二处理器的中间过程可以由传输部件实现。传输部件如图7、8所示,传输部件与每个处理器连接,包括配置模块、多个仲裁选择模块,还包括多个数据通道。传输部件有三组接口,一组是接收传输信号的端口,该端口可以与CPU或其他处理器连接;另两组是连接处理器的寄存器、Cache、Local RAM或内存的读写端口。
所述配置模块连接处理器、仲裁选择模块和数据通道,用于将传输信号进行译码,并根据译码对所述数据通道和所述仲裁选择模块进行配置;
所述数据通道连接至少两个仲裁选择模块,每个数据通道用于在至少两个仲裁选择模块之间传输数据;
所述仲裁选择模块与多个处理器连接,用于将第一处理器的数据传输至第二处理器。
可选的,所述传输信号包括所述第一处理器的源地址和所述第二处理器的目的地址;
一个仲裁选择模块,被配置为通过所述源地址选择第一处理器,从所述第一处理器的所述第一目标存储层次的存储部件中获取第一数据;
另一仲裁选择模块,被配置为通过所述目标地址向所述第二处理器发送所述第一数据。
可选的,所述一个仲裁选择模块,还用于在所述多个数据通道中选择目标数据通道;通过所述目标数据通道,向所述另一仲裁选择模块传输所述第一数据。
可选的,所述仲裁选择模块,还用于当多个数据通道进行数据传输时,确定多个数据通道的优先级;按照所述优先级由高到低的顺序依序控制多个数据通道进行数据传输。
可选的,所述配置模块,还用于对每个数据通道配置流量比例;
所述仲裁选择模块,还用于当多个数据通道进行数据传输时,根据所述流量比例对所述每个数据通道的发送频率进行控制。
可选的,所述数据通道用于对所述第一数据进行数据处理,所述数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。
下面将参照图9所示的基于传输部件的数据传输方法流程图,对该方法进行介绍。
步骤901,获取第二传输信号。
其中,第二传输信号携带的信息可以包括第一处理器的源地址和第二处理器的目的地址。可选的,第二传输信号与上述第一传输信号可以是同一传输信号,该传输信号可以用于指示第一目标存储层次,并且可以包括第一处理器的源地址和第二处理器的目的地址。
此处的传输信号可以由发起数据传输的任一部件进行发起;或者,也可以基于CPU的调度,由CPU统一发起。进而,传输部件可以监听或接收到相应的传输信号。
可选的,当传输部件接收到传输信号时,可以通过配置模块将传输信号进行译码,获取第一处理器的源地址和第二处理器的目的地址。
以CPU统一调度发起的传输信号为例,配置模块可以对其进行译码,并发送到通道0~n-1和仲裁选择模块内,主要用来配置源地址、目的地址、数据长度、工作模式、流量控制和Cache一致性设置等。此时,CPU发起的传输信号可以称为配置寄存器命令。
步骤902,根据第一处理器的源地址从第一目标存储层次的存储部件中获取第一数据。
在一种可能的实施方式中,传输部件可以根据源地址访问第一处理器,从上述实施例的第一目标存储层次的存储部件中,获取待传输数据。
可选的,可以通过一个仲裁选择模块,根据源地址选择第一处理器,从第一处理器的第一目标存储层次的存储部件中获取第一数据。
在一种可能的实施方式中,配置模块对仲裁选择模块进行配置后,可以将一个仲裁选择模块与源地址所指示的第一处理器的存储部件连通,并基于该仲裁选择模块从该存储部件中,获取待传输数据。
步骤903,根据第二处理器的目的地址向第二处理器传输第一数据。
在一种可能的实施方式中,传输部件可以根据目的地址访问第二处理器,并在目的地址所指示的存储部件中,存储上述第二数据。
可选的,可以通过另一仲裁选择模块,根据目的地址选择第二处理器,向第二处理器传输第一数据。
在一种可能的实施方式中,配置模块对仲裁选择模块进行配置后,可以将另一个仲裁选择模块与目的地址所指示的第二处理器的存储部件连通,并基于该仲裁选择模块向该存储部件发送待传输数据。
在上述一个仲裁选择模块和另一个仲裁选择模块之间,可以通过数据通道进行传输。可选的,传输的处理可以如下:
通过上述一个仲裁选择模块在多个数据通道中选择目标数据通道;
通过目标数据通道,向上述另一仲裁选择模块传输第一数据。
其中,选择目标数据通道的策略可以是随机选择,例如随机选择任一空闲的通道进行传输。或者,还可以是基于规划算法进行选择,本实施例对此不作限定。
可选的,传输部件还可以基于数据通道的优先级进行传输控制,相应的处理可以如下:
当多个数据通道进行数据传输时,通过仲裁选择模块确定多个数据通道的优先级;
按照优先级由高到低的顺序依序控制多个数据通道进行数据传输。
其中,数据通道的优先级可以预先设置,也可以根据数据通道的特性进行设置,如功耗小的数据通道优先级高,本实施例对此不作限定。
也即是说,当多个数据通道传输数据时,可以控制优先级高的数据通道先于优先级低的通道传输,提高***性能。
可选的,传输部件还可以对数据通道的发送频率进行控制,相应的处理可以如下:
通过配置模块对每个数据通道配置流量比例;
当多个数据通道进行数据传输时,通过仲裁选择模块,根据流量比例对每个数据通道的发送频率进行控制。
也即是说,当多个数据通道传输数据时,可以控制每个数据通道的发送频率,使得每个数据通道之间的流量满足符合配置的流量比例。
可选的,数据通道用于对第一数据进行数据处理,该数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。在此基础上,可以把第一处理器中读取的每一个数据复制成多份写入第二处理器,或者把从第一处理器中读取的大矩阵按照小矩阵的方式写入第二处理器等。
本实施例中,将传输部件作为桥梁在处理器之间传输数据,可以避免一个处理器直接调用另一处理器的数据,保证处理器之间的隔离性。
【实施例四】
本发明实施例提供了一种数据传输装置,该装置用于实现上述数据传输方法。如图10所示的数据传输装置的示意性框图,数据传输装置1000包括:确定模块1001,传输模块1002,处理模块1003,存储模块1004。
确定模块1001,用于当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
传输模块1002,用于从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;
处理模块1003,用于基于所述第一数据得到第二数据;
存储模块1004,用于确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据。
可选的,所述确定模块1001,用于:
当数据从第一处理器向第二处理器传输时,获取第一传输信号,所述第一传输信号用于指示第一目标存储层次;
根据所述第一传输信号,确定当前用于存储待传输的第一数据的第一目标存储层次。
可选的,所述确定模块1001,用于:
确定所述第二数据的传输需求;
在多个存储层次中,根据所述传输需求,确定满足所述传输需求的第二目标存储层次。
可选的,所述传输需求包括数据量和/或数据优先级。
可选的,所述传输需求为数据量时,所述确定模块1001,用于:
对传输速度从快到慢排序的每个存储层次,依次执行第一判断处理:
确定当前存储层次的最大容量是否大于等于所述第二数据的数据量;
当所述最大容量大于等于所述第二数据的数据量时,将所述当前存储层次作为所述第二目标存储层次,并停止所述第一判断处理;
当所述最大容量小于所述第二数据的数据量时,对下一存储层次执行所述第一判断处理。
可选的,所述传输需求为数据优先级时,所述确定模块1001,用于:
对传输速度从快到慢排序的每个存储层次,依次执行第二判断处理:
确定当前存储层次中是否存储有其他数据;
当前存储层次中存储有所述其他数据时,确定所述其他数据的优先级是否高于所述第二数据;
当所述其他数据的优先级高于所述第二数据的优先级时,对下一存储层次执行所述第二判断处理;
当所述其他数据的优先级低于所述第二数据的优先级时,确定所述当前存储层次为所述第二目标存储层次,并停止所述第二判断处理。
可选的,所述传输模块1002,用于:
获取第二传输信号,所述第二传输信号包括所述第一处理器的源地址和所述第二处理器的目的地址;
根据所述第一处理器的源地址从所述第一目标存储层次的存储部件中获取所述第一数据;
根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据。
可选的,所述传输模块1002,用于:
通过传输部件,根据所述第一处理器的源地址从所述第一目标存储层次的存储部件中获取所述第一数据;
通过所述传输部件,根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据。
可选的,所述传输部件包括配置模块和多个仲裁选择模块;
所述传输模块1002,还用于:通过所述配置模块将所述第二传输信号进行译码,获取所述第一处理器的源地址和所述第二处理器的目的地址;
通过一个仲裁选择模块,根据所述源地址选择第一处理器,从所述第一处理器的所述第一目标存储层次的存储部件中获取所述第一数据;
通过另一仲裁选择模块,根据所述目的地址选择第二处理器,向所述第二处理器传输所述第一数据。
可选的,所述传输部件还包括多个数据通道;
所述传输模块1002,还用于:
通过所述一个仲裁选择模块在所述多个数据通道中选择目标数据通道;
通过所述目标数据通道,向所述另一仲裁选择模块传输所述第一数据。
可选的,所述传输模块1002,还用于:
当多个数据通道进行数据传输时,通过所述仲裁选择模块确定多个数据通道的优先级;
按照所述优先级由高到低的顺序依序控制多个数据通道进行数据传输。
可选的,所述传输模块1002,还用于:
通过所述配置模块对每个数据通道配置流量比例;
当多个数据通道进行数据传输时,通过所述仲裁选择模块,根据所述流量比例对所述每个数据通道的发送频率进行控制。
可选的,所述数据通道用于对所述第一数据进行数据处理,所述数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。
可选的,所述传输模块1002,用于:
基于所述第一处理器,从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器发送所述第一数据;或,
基于所述第二处理器,从所述第一目标存储层次的存储部件中,获取所述第一数据;或,
基于传输部件,从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器发送所述第一数据。
可选的,所述处理模块1003,用于:
将所述第一数据作为所述第二数据;或,
基于任一处理器对所述第一数据进行处理,得到所述第二数据;或,
基于传输部件对所述第一数据进行处理,得到所述第二数据。
本发明实施例中,当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;从第一目标存储层次的存储部件中,获取第一数据,并向第二处理器传输第一数据;基于第一数据得到第二数据;确定第二数据的第二目标存储层次,并在第二目标存储层次的存储部件中存储第二数据。通过不同的存储层次进行数据传输,相比于固定使用DDR的数据传输方法,能够提高数据传输的速度,提高数据传输的效率。
【实施例五】
本发明示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。
【实施例六】
本发明示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
【实施例七】
本发明示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。
【实施例八】
参考图11,现将描述可以作为本发明的电子设备1100的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,数据中心服务器、笔记本电脑、瘦客户机、膝上型计算机、台式计算机、工作站、个人数字助理、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图11所示,电子设备1100包括计算单元1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。计算单元1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
电子设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106、输出单元1107、存储单元1108以及通信单元1109。输入单元1106可以是能向电子设备1100输入信息的任何类型的设备,输入单元1106可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1107可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1108可以包括但不限于磁盘、光盘。通信单元1109允许电子设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1101可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1101的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1101执行上文所描述的各个方法和处理。例如,在一些实施例中,数据传输方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到电子设备1100上。在一些实施例中,计算单元1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为数据传输方法。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本发明使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
Claims (20)
1.一种数据传输方法,其特征在于,所述方法包括:
当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;
基于所述第一数据得到第二数据;
确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据;
所述从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据,包括:
获取第二传输信号,所述第二传输信号包括所述第一处理器的源地址和所述第二处理器的目的地址;
通过传输部件,根据所述第一处理器的源地址从所述第一目标存储层次的存储部件中获取所述第一数据;
通过传输部件,根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据;
其中,所述传输部件包括配置模块和多个仲裁选择模块;
所述方法还包括:通过所述配置模块将所述第二传输信号进行译码,获取所述第一处理器的源地址和所述第二处理器的目的地址;
所述通过传输部件,根据所述第一处理器的源地址从所述第一目标存储层次的存储部件中获取所述第一数据,包括:通过一个仲裁选择模块,根据所述源地址选择第一处理器,从所述第一处理器的所述第一目标存储层次的存储部件中获取所述第一数据;
所述通过所述传输部件,根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据,包括:通过另一仲裁选择模块,根据所述目的地址选择第二处理器,向所述第二处理器传输所述第一数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次,包括:
当数据从第一处理器向第二处理器传输时,获取第一传输信号,所述第一传输信号用于指示第一目标存储层次;
根据所述第一传输信号,确定当前用于存储待传输的第一数据的第一目标存储层次。
3.根据权利要求1所述的数据传输方法,其特征在于,所述确定所述第二数据的第二目标存储层次,包括:
确定所述第二数据的传输需求;
在多个存储层次中,根据所述传输需求,确定满足所述传输需求的第二目标存储层次。
4.根据权利要求3所述的数据传输方法,其特征在于,所述传输需求包括数据量和/或数据优先级。
5.根据权利要求3所述的数据传输方法,其特征在于,所述传输需求为数据量时,所述在多个存储层次中,根据所述传输需求,确定满足所述传输需求的第二目标存储层次,包括:
对传输速度从快到慢排序的每个存储层次,依次执行第一判断处理:
确定当前存储层次的最大容量是否大于等于所述第二数据的数据量;
当所述最大容量大于等于所述第二数据的数据量时,将所述当前存储层次作为所述第二目标存储层次,并停止所述第一判断处理;
当所述最大容量小于所述第二数据的数据量时,对下一存储层次执行所述第一判断处理。
6.根据权利要求3所述的数据传输方法,其特征在于,所述传输需求为数据优先级时,所述在多个存储层次中,根据所述传输需求,确定满足所述传输需求的第二目标存储层次,包括:
对传输速度从快到慢排序的每个存储层次,依次执行第二判断处理:
确定当前存储层次中是否存储有其他数据;
当前存储层次中未存储有所述其他数据时,将所述当前存储层次作为所述第二目标存储层次,并停止所述第二判断处理;
当前存储层次中存储有所述其他数据时,确定所述其他数据的优先级是否高于所述第二数据;
当所述其他数据的优先级高于所述第二数据的优先级时,对下一存储层次执行所述第二判断处理;
当所述其他数据的优先级低于所述第二数据的优先级时,确定所述当前存储层次为所述第二目标存储层次,并停止所述第二判断处理。
7.根据权利要求1所述的数据传输方法,其特征在于,所述传输部件还包括多个数据通道;
所述方法还包括:
通过所述一个仲裁选择模块在所述多个数据通道中选择目标数据通道;
通过所述目标数据通道,向所述另一仲裁选择模块传输所述第一数据。
8.根据权利要求7所述的数据传输方法,其特征在于,所述方法还包括:
当多个数据通道进行数据传输时,通过所述仲裁选择模块确定多个数据通道的优先级;
按照所述优先级由高到低的顺序依序控制多个数据通道进行数据传输。
9.根据权利要求7所述的数据传输方法,其特征在于,所述方法还包括:
通过所述配置模块对每个数据通道配置流量比例;
当多个数据通道进行数据传输时,通过所述仲裁选择模块,根据所述流量比例对所述每个数据通道的发送频率进行控制。
10.根据权利要求7所述的数据传输方法,其特征在于,所述数据通道用于对所述第一数据进行数据处理,所述数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。
11.根据权利要求1所述的数据传输方法,其特征在于,所述从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据,包括:
基于所述第一处理器,从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器发送所述第一数据;或,
基于所述第二处理器,从所述第一目标存储层次的存储部件中,获取所述第一数据;或,
基于传输部件,从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器发送所述第一数据。
12.根据权利要求1所述的数据传输方法,其特征在于,所述基于所述第一数据得到第二数据,包括:
将所述第一数据作为所述第二数据;或,
基于任一处理器对所述第一数据进行处理,得到所述第二数据;或,
基于传输部件对所述第一数据进行处理,得到所述第二数据。
13.一种传输部件,其特征在于,所述传输部件与每个处理器连接,所述传输部件包括:配置模块,多个数据通道,多个仲裁选择模块;
所述配置模块连接处理器、仲裁选择模块和数据通道,用于将传输信号进行译码,并根据译码对所述数据通道和所述仲裁选择模块进行配置;
所述数据通道连接至少两个仲裁选择模块,每个数据通道用于在至少两个仲裁选择模块之间传输数据;
所述仲裁选择模块与多个处理器连接,用于将第一处理器的数据传输至第二处理器;
其中,所述传输信号包括所述第一处理器的源地址和所述第二处理器的目的地址;
一个仲裁选择模块,被配置为通过所述源地址选择第一处理器,从所述第一处理器的第一目标存储层次的存储部件中获取第一数据;
另一仲裁选择模块,被配置为通过所述目的地址向所述第二处理器传输所述第一数据。
14.根据权利要求13所述的传输部件,其特征在于,所述一个仲裁选择模块,还用于在所述多个数据通道中选择目标数据通道;通过所述目标数据通道,向所述另一仲裁选择模块传输所述第一数据。
15.根据权利要求13所述的传输部件,其特征在于,所述仲裁选择模块,还用于当多个数据通道进行数据传输时,确定多个数据通道的优先级;按照所述优先级由高到低的顺序依序控制多个数据通道进行数据传输。
16.根据权利要求13所述的传输部件,其特征在于,所述配置模块,还用于对每个数据通道配置流量比例;
所述仲裁选择模块,还用于当多个数据通道进行数据传输时,根据所述流量比例对所述每个数据通道的发送频率进行控制。
17.根据权利要求13所述的传输部件,其特征在于,所述数据通道用于对数据进行数据处理,所述数据处理包括但不限于直接传输、数据复制、矩阵拆分、矩阵转置、数据混洗、编解码。
18.一种数据传输装置,其特征在于,包括:
确定模块,用于当数据从第一处理器向第二处理器传输时,确定当前用于存储待传输的第一数据的第一目标存储层次;
传输模块,用于从所述第一目标存储层次的存储部件中,获取所述第一数据,并向所述第二处理器传输所述第一数据;
处理模块,用于基于所述第一数据得到第二数据;
存储模块,用于确定所述第二数据的第二目标存储层次,并在所述第二目标存储层次的存储部件中存储所述第二数据;
所述传输模块,用于:获取第二传输信号,所述第二传输信号包括所述第一处理器的源地址和所述第二处理器的目的地址;通过传输部件,根据所述第一处理器的源地址从所述第一目标存储层次的存储部件中获取所述第一数据;通过所述传输部件,根据所述第二处理器的目的地址向所述第二处理器传输所述第一数据;
其中,所述传输部件包括配置模块和多个仲裁选择模块;
所述传输模块,还用于:通过所述配置模块将所述第二传输信号进行译码,获取所述第一处理器的源地址和所述第二处理器的目的地址;通过一个仲裁选择模块,根据所述源地址选择第一处理器,从所述第一处理器的所述第一目标存储层次的存储部件中获取所述第一数据;通过另一仲裁选择模块,根据所述目的地址选择第二处理器,向所述第二处理器传输所述第一数据。
19.一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-12中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210131817.7A CN114168522B (zh) | 2022-02-14 | 2022-02-14 | 一种数据传输方法、装置及传输部件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210131817.7A CN114168522B (zh) | 2022-02-14 | 2022-02-14 | 一种数据传输方法、装置及传输部件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168522A CN114168522A (zh) | 2022-03-11 |
CN114168522B true CN114168522B (zh) | 2022-04-29 |
Family
ID=80489899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210131817.7A Active CN114168522B (zh) | 2022-02-14 | 2022-02-14 | 一种数据传输方法、装置及传输部件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168522B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1232918C (zh) * | 2003-04-11 | 2005-12-21 | 大唐移动通信设备有限公司 | 一种基于共享存储器的多处理器间数据交互方法及装置 |
KR100706801B1 (ko) * | 2006-01-04 | 2007-04-12 | 삼성전자주식회사 | 멀티 프로세서 시스템 및 그것의 데이터 전송 방법 |
CN101430664B (zh) * | 2008-09-12 | 2010-07-28 | 中国科学院计算技术研究所 | 一种多处理器***及Cache一致性消息传输方法 |
US8438306B2 (en) * | 2010-11-02 | 2013-05-07 | Sonics, Inc. | Apparatus and methods for on layer concurrency in an integrated circuit |
CN103218343A (zh) * | 2013-03-28 | 2013-07-24 | 上海大学 | 采用数据驱动机制多处理器间数据通信电路 |
CN108874445A (zh) * | 2017-10-30 | 2018-11-23 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行向量点积指令的方法 |
US11321248B2 (en) * | 2019-05-24 | 2022-05-03 | Texas Instruments Incorporated | Multiple-requestor memory access pipeline and arbiter |
-
2022
- 2022-02-14 CN CN202210131817.7A patent/CN114168522B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114168522A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130198312A1 (en) | Techniques for Remote Client Access to a Storage Medium Coupled with a Server | |
JP6239130B2 (ja) | 作業負荷に従ってメモリバス帯域幅を低減するためのシステムおよび方法 | |
JP2017211984A (ja) | 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置 | |
WO2017173618A1 (zh) | 压缩数据的方法、装置和设备 | |
JP2017519294A (ja) | フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc) | |
CN104104705B (zh) | 分布式存储***的接入方法和设备 | |
WO2024088268A1 (zh) | Rdma事件管理方法、设备及存储介质 | |
US20230137668A1 (en) | storage device and storage system | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
WO2021012795A1 (zh) | 网络节点的调度方法、装置、电子设备和存储介质 | |
CN114936173A (zh) | 一种eMMC器件的读写方法、装置、设备和存储介质 | |
US11093175B1 (en) | Raid data storage device direct communication system | |
CN116467235B (zh) | 一种基于dma的数据处理方法、装置、电子设备及介质 | |
CN114168522B (zh) | 一种数据传输方法、装置及传输部件 | |
WO2024027140A1 (zh) | 一种数据处理方法、装置、设备、***及可读存储介质 | |
EP3373151A1 (en) | Device and method for controlling data request | |
JP2024024607A (ja) | メモリーアクセスのための集積回路、処理方法、電子機器及び媒体 | |
CN115151902A (zh) | 集群扩容方法、装置、存储介质及电子设备 | |
JP2016076108A (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
WO2023221427A1 (zh) | 寻卡方法、nfc芯片及电子设备 | |
CN112749103A (zh) | 数据缓存***和数据缓存***的控制方法 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
CN112463027B (zh) | 一种i/o处理方法、***、设备及计算机可读存储介质 | |
US10832132B2 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product | |
CN116166605B (zh) | 数据混合传输方法、装置、dma控制器、介质及*** |
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 |