CN110928818B - 直接存储访问、处理器和电子设备 - Google Patents
直接存储访问、处理器和电子设备 Download PDFInfo
- Publication number
- CN110928818B CN110928818B CN201911253858.8A CN201911253858A CN110928818B CN 110928818 B CN110928818 B CN 110928818B CN 201911253858 A CN201911253858 A CN 201911253858A CN 110928818 B CN110928818 B CN 110928818B
- Authority
- CN
- China
- Prior art keywords
- memory access
- direct memory
- channel
- module
- data
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供一种直接存储访问、处理器和电子设备,直接存储访问包括至少一个物理通道和至少一个逻辑通道,至少一个物理通道响应于内部引擎的搬移请求进行数据搬移;至少一个逻辑通道和至少一个物理通道并行,至少一个逻辑通道响应于软件调度的搬移请求进行数据搬移。本申请实施例可以减小对软件调度的依赖,更方便搬移数据。
Description
技术领域
本申请涉及处理器技术领域,特别涉及一种直接存储访问、处理器和电子设备。
背景技术
直接存储访问(Direct memory access,DMA)可将数据从一个地址空间搬移到另一个地址空间。直接存储访问具体是通过其逻辑通道实现数据的搬移。
逻辑通道需要软件介入,由软件提前配置描述符或者寄存器,完成初始化来进行数据搬移。
发明内容
本申请实施例提供一种直接存储访问、处理器和电子设备,可以减小对软件调度的依赖,更方便搬移数据。
本申请实施例公开一种直接存储访问,包括:
至少一个物理通道,响应于内部引擎自主进行数据搬移请求;和
至少一个逻辑通道,所述至少一个逻辑通道和所述至少一个物理通道并行,所述至少一个逻辑通道响应于软件调度进行数据搬移请求。
本申请实施例还公开一种处理器,包直接存储访问,所述直接存储访问为如上所述的直接存储访问。
本申请实施例还公开一种电子设备,包括:
系统总线;和
处理器,所述处理器包括直接存储访问,所述直接存储访问为如上所述的直接存储访问,所述直接存储访问和所述系统总线连接。
本申请实施例中,直接存储访问的逻辑通道和物理通道并行,实现分离,从而物理通道可以独立于逻辑通道的调度,减小对软件的依赖,进而更方便搬移数据。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的直接存储访问的第一种结构示意图。
图2为本申请实施例提供的直接存储访问的第二种结构示意图。
图3为本申请实施例提供的直接存储访问的第三种结构示意图。
图4为本申请实施例提供的处理器的结构示意图。
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
直接存储访问(Direct memory access,DMA)可将数据从一个地址空间搬移到另一个地址空间。数据搬移的地址空间可以是内部存储器,也可以是外设接口。通常提前在RAM上存储控制DMA数据搬移的描述符,描述符包括源端地址空间、目的端地址空间、数据长度等信息。软件对DMA进行初始化,数据开始搬移,这个搬移的过程可以脱离处理器诸如CPU、NPU等独立进行,提高处理器诸如CPU、NPU的效率,减小处理器诸如CPU、NPU负担。
请参阅图1,图1为本申请实施例提供的直接存储访问的第一种结构示意图。DMA100包括多个逻辑通道120和一个仲裁模块140。多个逻辑通道120均与仲裁模块140连接,仲裁模块140可通过一个总线接口连接数据总线20。需要说明的是,仲裁模块140也可以通过其他接口连接外设和存储中的至少一者。
其中,逻辑通道120的个数可以为h个,h为大于1的自然数,即逻辑通道120可以至少为两个。每个逻辑通道120都可以接收数据搬移请求诸如请求1、请求2、请求f,并基于数据搬移请求进行数据搬移操作。
每个DMA100的逻辑通道120可以完成描述符生成、解析、控制等功能,具体情况根据命令请求(request)的构成来确定。当多个逻辑通道120同时接收到数据搬移的请求时,通过仲裁模块140可以选出一个请求,进入读请求队列162和写请求队列164,等待数据搬移。
逻辑通道120需要软件介入,由软件提前配置描述符或者寄存器,完成初始化来进行数据搬移。DMA100所有逻辑通道120对于软件都是可见的,由软件来进行调度。而有些业务场景,如内部引擎自主进行数据搬移时,不需要经过软件来调度,则不能使用此类DMA100的逻辑通道120。因此不方便根据业务需求灵活地移植,过于依赖软件调度。
基于此,本申请实施例还提供一种DMA以实现不同搬移的需求。
请参阅图2,图2为本申请实施例提供的直接存储访问的第二种结构示意图。直接存储访问200可包括至少一个逻辑通道210和至少一个物理通道220,至少一个逻辑通道210和至少一个物理通道220并行,也可以理解为至少一个逻辑通道210和至少一个物理通道220共同连接到同一个接口。从而至少一个物理通道220和至少一个逻辑通道210可以并行的搬移数据。由于物理通道220对数据的搬移由内部引擎自主发出请求,不需要经过上层软件的调度,从而可以整个DMA200对软件调度的依赖,更加方便搬移数据,进而更加方便根据业务需求灵活地搬移数据。
其中逻辑通道210可以响应于上层软件调度的搬移请求进行数据搬移。该上层软件可以是可编程单元。需要说明的是,逻辑通道210所搬移的数据可以为图像数据、权重数据、指令等。可编程单元诸如为中央处理器(CPU)。
其中逻辑通道210的个数可以为n个,n可以为大于或等于1的自然数。诸如逻辑通道210的个数为一个、两个、三个等。需要说明的是,逻辑通道210的实际个数可根据实际产品的需求进行设置。
其中物理通道220可以响应于内部引擎的搬移请求进行数据搬移,该内部引擎可以是CPU的引擎也可以NPU的引擎,诸如指令预处理模块。需要说明的是,物理通道220所搬移的数据可以为图像数据、权重数据、指令等。
其中物理通道220的个数可以为m个,m可以为大于或等于1的自然数。诸如物理通道220的个数为一个、两个、三个等。需要说明的是,物理通道220的实际个数可根据实际产品的需求进行设置。在一些实施例中,逻辑通道210的个数可以为两个,物理通道220的个数可以为一个。
请继续参阅图2,DMA200还可以包括第一仲裁模块230和总线接口240,总线接口240可连接数据总线,该第一仲裁模块230可通过该总线接口240与数据总线连接,该第一仲裁模块230还分别与所有的物理通道220以及所有的逻辑通道210连接,以便于逻辑通道210、物理通道220从数据总线搬移数据。当多个通道同时发起读/写请求时,第一仲裁模块230可以仲裁出一个读/写请求发送给总线接口240。诸如一个逻辑通道210和一个物理通道220同时发起读/写请求时,第一仲裁模块230可以仲裁出一个物理通道220的读/写请求发送给总线接口240,或者第一仲裁模块230可以仲裁出一个逻辑通道210的读/写请求发送给总线接口240。需要说明的是,该总线接口240也可以设置在DMA200的外部。
需要说明的是,当多个通道同时发起请求时,第一仲裁模块230依据仲裁规则给出一个结果,仲裁规则可以是轮询、优先级等。在一些实施例中,第一仲裁模块230可以对至少一个物理通道220和至少一个逻辑通道210的带宽进行重新分配。
在一些实施例中,逻辑通道210可以包括逻辑通道接口211、描述符控制模块212和数据传输模块213。逻辑通道接口211可以与可编程单元连接,逻辑通道接口211、描述符控制模块212及数据传输模块213依次连接,数据传输模块213还与数据总线20连接。
逻辑通道接口211可以由可编程单元下发命令的格式所确定,逻辑通道接口211可以含有描述符的地址。描述符控制模块212根据可编程处理单元下发的命令来索引描述符,解析数据源端地址、目的端地址、数据长度等信息,对DMA200的传输数据模块213发起读写数据命令。数据传输模块213接收上一级(描述符控制模块212)的读写数据命令,将该读写数据命令转换成所需信号,可以先读后写,完成数据搬移,返回响应给描述符控制模块212。
逻辑通道210搬移数据的具体过程如下:
配置DMA200的控制状态寄存器(Control Status Register,CSR)290。需要说明的是,DMA200搬移数据需要满足几个条件:数据从哪里传(源地址),数据传到哪里去(目的地址),数据在什么时间传输(触发源,或者说触发信号)。需要将DMA200的各种参数、条件配置完成才能够实现数据的搬移。可以采用上层软件,或者说可编程单元设置源地址、目的地址以及触发源。
实际应用中,可以将DMA200的各种参数及条件设置在控制状态寄存器290中,或者说将DMA200的配置信息以及参数,如工作模式、仲裁优先级、接口信息等设置在控制状态寄存器290中。在一些实施例中,比如在控制状态寄存器290中设置外设寄存器的地址、数据存储器的地址、需要传输数据的数据量、各个通道之间的优先级、数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度等。
上层软件诸如可编程单元对DMA200的逻辑通道210下发数据搬移命令至逻辑通道接口211,或者说可编程单元对DMA200的逻辑通道210下发数据搬移请求至逻辑通道接口211,可编程单元对DMA200的逻辑通道210下发数据搬移命令时一并携带有描述符的地址,或者直接携带有描述符。并通过逻辑通道接口211将该描述符的地址或者描述符传输到描述符控制模块212。
描述符控制单元212若接收到的是描述符的地址,则描述符控制单元212根据该描述符的地址读取描述符。即索引描述符。然后基于该描述符进行解析,即生成数据搬移所需信息,如数据源端地址空间、目的端地址空间、数据长度等。而当描述符控制单元212接收到的是描述符,则描述符控制单元212直接解析描述符。
描述符控制单元212解析完成描述符后,数据传输模块213可遵循先读后写的原则,将描述符控制单元212所解析描述符而生产的信息转换成总线接口信号,并传输至第一仲裁模块230。
第一仲裁模块230在接收到多个逻辑通道210同时发起的读/写请求时,可以仲裁出一个发送到总线接口240。
而当第一仲裁模块230同时接收到有来自逻辑通道210发起的读/写请求以及来自物理通道220发起的读/写请求时,第一仲裁模块230同样可以仲裁出一个发送到总线接口240,并通过总线接口240传输到数据总线。
DMA200的读/写请求传输到数据总线后,数据总线完成读写命令,源端地址空间的数据写入目的端地址空间。从而完成数据搬移。
其中,物理通道220可以通过接口与内部引擎诸如指令预处理模块(Icachecontrol unit,ICU)连接,该接口可以包含进行数据搬移的配置和参数。当然该物理通道220进行数据搬移的配置和参数也可以由控制状态寄存器290来配置。
需要说明的是,DMA200还可以通过其他结构与其他部件实现连接,以实现数据的搬移。
请参阅图3,图3为本申请实施例提供的直接存储访问的第三种结构示意图。DMA200还可以包括第二仲裁模块250和存储接口260,该存储接口260与第二仲裁模块250连接,存储接口260可以连接存储模块(memory),该存储模块与DMA200位于同一个处理器中,该存储模块与DMA200也可以位于不同的器件中。诸如DMA200位于NPU中,存储模块可以位于NPU中,也可以位于其它器件中。第二仲裁模块250可以与每一个逻辑通道210连接,且第一仲裁模块230和第二仲裁模块250连接同一个逻辑通道210时,可以由一选择器连接到同一个逻辑通道210。需要说明的是,该存储接口260也可以设置在DMA200的外部。其中,存储模块可以是SRAM(Static Random-Access Memory)、DDR SDRAM(Double Data RateSynchronous Dynamic Random Access Memory)等存储器件。
请继续参阅图3,DMA200还可以包括第三仲裁模块270和外设接口280,该外设接口280与第三仲裁模块270连接,外设接口280可以连接外部设备,该外部设备与DMA200位于不同的器件中,诸如DMA200位于NPU中,外部设备为CPU等。第三仲裁模块270可以与每一个逻辑通道210连接,且第一仲裁模块230和第三仲裁模块270连接同一个逻辑通道210时,可以由一选择器连接到同一逻辑通道210。需要说明的是,该外设接口280也可以设置在DMA200的外部。
请继续参阅图3,本申请实施例DMA200还可以同时包括第一仲裁模块230、第二仲裁模块250及第三仲裁模块270。第一仲裁模块230连接总线接口240,第二仲裁模块250连接存储接口260,第三仲裁模块270连接外设接口280,第一仲裁模块230、第二仲裁模块250及第三仲裁模块270均可以与逻辑通道210连接,当第一仲裁模块230、第二仲裁模块250及第三仲裁模块270连接有一个逻辑通道210时,可以由一个选择器连接在一个逻辑通道210和三个仲裁模块之间。
需要说明的是,本申请实施例还可以设置其他接口及其他仲裁模块。图3所示出的仲裁模块的个数实际可以为一个、两个或三个。即当图3所示出的仲裁模块为一个时,可以为第一仲裁模块230。当图3所示出的仲裁模块为两个时,可以是第一仲裁模块230和第二仲裁模块250,也可以是第一仲裁模块230和第三仲裁模块270。当图3所示出的仲裁模块为三个时,可以是第一仲裁模块230、第二仲裁模块250及第三仲裁模块270。
本申请实施例的DMA200可以应用到处理器中。
请参阅图4,图4为本申请实施例提供的处理器的结构示意图。处理器10包括直接存储访问200、可编程单元300和内部引擎400。直接存储访问200可参阅图2所示的DMA200,在此不再赘述。可编程单元300可与所有的逻辑通道210连接,且可编程单元300可与控制状态寄存器290连接。内部引擎400与物理通道220连接。内部引擎400可以发起数据搬移请求,以直接通过物理通道220实现数据的搬移,而不需要进行上层软件的调度。该内部引擎400的个数为k个,k为大于或等于1的自然数。当内部引擎400为多个时,多个内部引擎400可同时连接一个物理通道220,也可以是每一个内部引擎400连接各自一个物理通道220。
该处理器10可以是神经网络处理器(Neural Network Process Unit,NPU),该内部引擎400可以包括指令存储控制模块,或者说是指令预处理模块。该处理器10可以实现对一些数据诸如图像数据等进行处理。诸如将该处理器10应用到电子设备中可以优化电子设备的图像。
请参阅图5,图5为本申请实施例提供的电子设备的结构示意图。电子设备1可包括可编程单元300、直接存储访问200、内部引擎400、外设部件40、存储模块30及系统总线20。其中,可编程单元300、直接存储访问200及内部引擎400可以为电子设备1中一个处理器诸如NPU、CPU的一个部分,可编程单元300、直接存储访问200及内部引擎400具体可以参阅图4及相关内容,在此不再赘述。
DMA200通过总线接口240与系统总线20连接,以便于DMA200和系统总线20进行数据的搬移。
外设部件40可以通过外设接口280与DMA200连接,以便于DMA200与外设部件40进行数据搬移。
存储模块30可以通过存储接口260与DMA200连接,以便于DMA200与存储模块300进行数据搬移。
以上对本申请实施例提供的直接存储访问、处理器和电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种直接存储访问控制器,其特征在于,包括:
至少一个物理通道,响应于内部引擎的搬移请求进行数据搬移;和
至少一个逻辑通道,所述至少一个逻辑通道和所述至少一个物理通道并行,所述至少一个逻辑通道响应于软件调度的搬移请求进行数据搬移;
第一仲裁模块和总线接口,所述第一仲裁模块连接所述至少一个物理通道和所述至少一个逻辑通道,所述第一仲裁模块还与所述总线接口连接;
第二仲裁模块和存储接口,所述第二仲裁模块连接所述至少一个逻辑通道,所述第二仲裁模块还与所述存储接口连接;
第三仲裁模块和外设接口,所述第三仲裁模块连接所述至少一个逻辑通道,所述第三仲裁模块还与所述外设接口连接。
2.根据权利要求1所述的直接存储访问控制器,其特征在于,所述至少一个逻辑通道包括两个逻辑通道,所述至少一个物理通道包括一个物理通道。
3.根据权利要求1所述的直接存储访问控制器,其特征在于,所述第一仲裁模块用于重新分配所述至少一个物理通道和所述至少一个逻辑通道的带宽。
4.根据权利要求1所述的直接存储访问控制器,其特征在于,所述逻辑通道包括逻辑通道接口、描述符控制模块和数据传输模块,所述描述符控制模块连接所述逻辑通道接口和所述数据传输模块,所述数据传输模块和所述第一仲裁模块连接。
5.根据权利要求1所述的直接存储访问控制器,其特征在于,所述直接存储访问控制器还包括控制状态寄存器,所述控制状态寄存器用于存储所述直接存储访问控制器的配置信息及参数。
6.一种处理器,其特征在于,包括直接存储访问控制器,所述直接存储访问控制器为如权利要求1至5任一项所述的直接存储访问控制器。
7.根据权利要求6所述的处理器,其特征在于,所述处理器还包括可编程单元,所述可编程单元与所述至少一个逻辑通道和所述控制状态寄存器连接。
8.根据权利要求6所述的处理器,其特征在于,所述处理器还包括至少两个处理引擎,所述至少两个处理引擎连接所述至少一个物理通道。
9.一种电子设备,其特征在于,包括:
系统总线;和
处理器,所述处理器包括直接存储访问控制器,所述直接存储访问控制器为如权利要求1至5任一项所述的直接存储访问控制器,所述直接存储访问控制器和所述系统总线连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253858.8A CN110928818B (zh) | 2019-12-09 | 2019-12-09 | 直接存储访问、处理器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253858.8A CN110928818B (zh) | 2019-12-09 | 2019-12-09 | 直接存储访问、处理器和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928818A CN110928818A (zh) | 2020-03-27 |
CN110928818B true CN110928818B (zh) | 2023-06-16 |
Family
ID=69857813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911253858.8A Active CN110928818B (zh) | 2019-12-09 | 2019-12-09 | 直接存储访问、处理器和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928818B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777031A (zh) * | 2009-01-14 | 2010-07-14 | 中兴通讯股份有限公司 | 直接存储器存取控制器以及数据传输方法 |
CN102193865A (zh) * | 2010-03-16 | 2011-09-21 | 联想(北京)有限公司 | 存储系统、存储方法和使用其的终端 |
CN105389277A (zh) * | 2015-10-29 | 2016-03-09 | 中国人民解放军国防科学技术大学 | Gpdsp中面向科学计算的高性能dma部件 |
-
2019
- 2019-12-09 CN CN201911253858.8A patent/CN110928818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777031A (zh) * | 2009-01-14 | 2010-07-14 | 中兴通讯股份有限公司 | 直接存储器存取控制器以及数据传输方法 |
CN102193865A (zh) * | 2010-03-16 | 2011-09-21 | 联想(北京)有限公司 | 存储系统、存储方法和使用其的终端 |
CN105389277A (zh) * | 2015-10-29 | 2016-03-09 | 中国人民解放军国防科学技术大学 | Gpdsp中面向科学计算的高性能dma部件 |
Also Published As
Publication number | Publication date |
---|---|
CN110928818A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282659B2 (en) | Device for implementing artificial neural network with multiple instruction units | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
WO2020078470A1 (zh) | 片上网络数据处理方法及装置 | |
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
CN101344871A (zh) | 一种保证访问先后顺序的总线仲裁单元及其实现方法 | |
US9172839B2 (en) | Image forming apparatus, control method and storage medium | |
CN110928818B (zh) | 直接存储访问、处理器和电子设备 | |
US20060218313A1 (en) | DMA circuit and computer system | |
US6567908B1 (en) | Method of and apparatus for processing information, and providing medium | |
KR102256670B1 (ko) | 효율적인 통신 버스 중재 시스템 및 방법 | |
CN109947390A (zh) | 缓冲器系统及其操作方法 | |
CN115563038B (zh) | 基于dma控制器的数据处理系统、方法和数据处理设备 | |
WO2021139733A1 (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
US20090138647A1 (en) | Bus switch, electronic equipment, and data transfer method | |
CN114021715A (zh) | 基于Tensorflow框架的深度学习训练方法 | |
US6609188B1 (en) | Data flow processor | |
KR20040031155A (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
US20230082673A1 (en) | Network Computer with External Memory | |
JPH11252150A (ja) | ネットワーク接続装置、及びネットワーク接続制御方法 | |
US20160004655A1 (en) | Computing system and operating method of the same | |
CN107992328A (zh) | 一种数据处理的方法、装置和片上系统 | |
JP2713204B2 (ja) | 情報処理システム | |
EP3327521B1 (en) | Duplexing process control device | |
JPH0314155A (ja) | ローカルエリアネットワークの命令制御方式 | |
JPH0246967B2 (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 |