CN110737618A - 内嵌处理器进行快速数据通信的方法、装置及存储介质 - Google Patents
内嵌处理器进行快速数据通信的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110737618A CN110737618A CN201911009338.2A CN201911009338A CN110737618A CN 110737618 A CN110737618 A CN 110737618A CN 201911009338 A CN201911009338 A CN 201911009338A CN 110737618 A CN110737618 A CN 110737618A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- chip
- units
- unit
- 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.)
- Granted
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
-
- 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/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
本发明提供一种内嵌处理器进行快速数据通信的方法、装置及存储介质,所述方法包括:将内存储器分割为地址连续,且顺序编址的多个片上存储单元;配置连接于内存储器的内存接口控制器,内存接口控制器包括多个内存接口控制单元;配置分别连接于内存接口控制器的片上处理器和DMA控制器,DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元;配置连接于DMA控制器的专用功能模块,专用功能模块包括多个数据采集单元和多个数据接收单元;当片上处理器以及DMA控制器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。本发明可以提供并发的数据处理能力,提高了数据处理带宽。
Description
技术领域
本发明属于集成电路设计技术领域,主要涉及一种内嵌处理器进行快速数据通信的方法、装置及存储介质。
背景技术
内嵌处理器(CPU)的芯片(SoC)设计中,除了CPU外,其他部分多是专用的功能单元逻辑;其中,CPU负责通用的数据处理和芯片运行的配置等功能,但其对于大数据量的处理能力不足;专用的功能单元则可以用硬件的方式实现大数据量和快速的数据处理;所以,CPU与上述专用的功能单元之间必然存在数据通信(交互)需求,且随着所支持的功能越来越复杂,待交互的数据量也越来越多。
传统的设计方案中,专用的功能单元与处理器之间的数据通信是通过处理器主动读写操作来完成的;具体的,专用功能单元将待交互的数据写入内部的数据缓冲器,而处理器则通过普通的读操作将该数据收集进来,并写入处理器的内存中;处理器要向专用功能单元发送数据时,处理器直接写数据到专用功能单元中的数据缓冲器中,然后再通知该专用功能单元;以上的实现方案中,所有的数据处理必须由处理器参与,大大增加了处理器的负担,在数据量较大时对处理器的其他操作影响较大,甚至不能满足实际应用的需求。
基于以上方案缺陷,较多的新技术涌现出来,主要有以下两种实现方案。
如图1所示,方案1采用DMA的处理方式实现数据交互,在处理器与专用功能单元之间增加一个DMA控制器(Direct Memory Access的缩写,中文直译:直接存储器访问);处理器仅负责配置DMA控制器,而具体的数据搬移操作由DMA控制器来完成,在较大数据量的交互时,大大减轻了处理器的负担;该实施方式中,DMA控制器连接在处理器的系统总线上,并直接通过该总线直接访问处理器的内存空间,对其做读写操作,完成数据的收集和发送;因为系统总线是共享机制,如此,其上还会有其他的主设备会发起请求。
方案1实现过程中,处理器无须再从专用功能单元中读写数据,仅需要配置DMA控制器即可,而具体的数据搬移操作由DMA控制器完成;相应的,这种技术实现中处理器无须大量数据的读写操作,可以大大地减轻处理器的负担;然而,因为方案1实现过程中,DMA控制器与处理器共享系统总线,如此,DMA操作必然会抢占系统总线的数据传输带宽,导致整个系统的处理效率变低,特别是在有大量数据的DMA操作时,影响更明显。
如图2所示,方案2的实现方案是采用共享内存的机制实现。在该实施方式中,因为处理器是内嵌的,所以在片上必然会有处理器的部分内存空间;专用功能单元共享该内存空间,可以实现处理器的数据收发操作。具体的,在片上设置处理器与专用功能单元都可以读写的共享内存空间,处理器发送数据到专用功能单元时,先将数据写入该共享内存空间,并增加内存状态标志位,用于标志当前内存中的数据的状态,以方便专用功能单元读取相应数据时进行判断;然后通过中断或状态标志寄存器来通知专用功能单元从指定的位置读取该数据;反之,专用功能单元发送数据到处理器时,执行类似的操作。
方案2中,因为处理器和专用功能单元之间共享内存,数据的交互操作仅需要发送端执行写操作,接收端执行读操作即可,减少了读写数据的次数,提高了数据处理的效率。然而,在该方案中,专用功能单元中的每个数据收集和发送模块都需要设置与共享内存连接的逻辑接口,共享内存中需要增加内存状态标志位,用以指示当前数据信息的状态;如此,共享内存连接接口设计的复杂度与与接口个数成正比,个数越多,设计越复杂;进一步的,共享内存中增加的状态标志位会占用内存空间,导致有效存储空间减少,特别是在专用功能单元中有多个数据收发模块,且待收发数据量较大时,以上增加的逻辑会更复杂,而且因为处理器要根据内存状态标志位来决定当前存储空间的数据的状态,引入了较多的额外逻辑消耗,导致数据效率降低。
发明内容
为解决上述技术问题,本发明的目的在于提供一种内嵌处理器进行快速数据通信的方法和装置。
为了实现上述发明目的之一,本发明一实施方式提供一种内嵌处理器进行快速数据通信的方法,所述方法包括:
将内存储器分割为地址连续,且顺序编址的多个片上存储单元,不同片上存储单元之间的读写操作相互独立且可以同时进行;
配置连接于内存储器的内存接口控制器,所述内存接口控制器包括多个内存接口控制单元,每一内存接口控制单元对应至少一个片上存储单元,每一片上存储单元唯一对应一个内存接口控制单元;
配置分别连接于内存接口控制器的片上处理器和DMA控制器,所述DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元,每一请求分配单元处理的请求信息所对应的地址与片上处理器的地址段匹配,且每一请求分配单元处理的请求信息所对应的地址与通过内存接口控制单元对应的片上存储单元的地址匹配;
配置连接于DMA控制器的专用功能模块,所述专用功能模块包括多个数据采集单元和多个数据接收单元,所述片上处理器用于配置专用功能单元所对应的内存的地址范围,每一专用功能模块均分别连接于每一请求分配单元;
当片上处理器对内存储器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块,和/或当专用功能模块通过DMA控制器对内存储器发生读写请求时,通过所述DMA控制器按请求的地址对接内存接口控制器,并通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。
作为本发明一实施方式的进一步改进,当专用功能模块通过DMA控制器对内存发生读写请求时,所述方法还包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址进行匹配以获得与请求信息匹配的请求分配单元。
作为本发明一实施方式的进一步改进,当专用功能模块通过DMA控制器对内存发生读写请求时,所述方法具体包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址查询每一请求分配单元,判断解析请求携带的地址是否属于当前请求分配单元调度的地址范围,若是,当前请求分配单元响应解析请求,并通过当前请求分配单元连接的内存接口控制单元在相应的片上存储单元上对请求信息进行具体响应。
作为本发明一实施方式的进一步改进,所述方法还包括:预配置请求信息的优先级别和/或处理权重,当任一接口控制单元和/或任一请求分配单元同时接收到多个请求信息时,根据请求信息的优先级别和/或处理权重按序处理每一请求信息;其中,按优先级别自高至低的顺序依次处理每一请求信息,和/或按照处理权重循环调度每一请求信息。
作为本发明一实施方式的进一步改进,通过DMA控制器确认片上存储器已完成请求信息所携带的指令后,所述方法还包括:更新本地寄存器的状态标志信息和产生中断信号,并将中断信号发送至片上处理器。
作为本发明一实施方式的进一步改进,已完成请求信息所携带的指令包括:完成至少一个描述符的数据操作。
作为本发明一实施方式的进一步改进,所述方法还包括:设置超时机制,当DMA控制器确认预定时间内未能完成足够的数据处理时,采用超时机制触发更新本地寄存器的状态标志信息和产生中断信号。
作为本发明一实施方式的进一步改进,所述方法还包括:在每一片上存储单元的入口处一一配置ECC逻辑单元;
若ECC逻辑单元执行的写操作中包含的写数据宽度与片上存储单元的存储宽度一致,则根据ECC的算法直接计算ECC校验码,并将其与原写数据一并写入对应的片上存储单元中;
若执行的写操作中包含的写数据宽度小于片上存储单元的存储宽度,则将原始数据从对应的片上存储单元中读取出来,修改需要更新的部分数据后,再按更新后的整个数据计算ECC校验码,并将其与修改后的数据一并写回片上存储单元;
若执行读操作,则根据检错算法自动检测读出的数据是否有错,并记录错误状态到相应的寄存器中。
为了实现上述发明目的之一,本发明一实施方式提供一种内嵌处理器进行快速数据通信的装置,所述装置包括:
内存储器,所述内存储器被分割为地址连续,且顺序编址的多个片上存储单元,不同片上存储单元之间的读写操作相互独立且可以同时进行;
连接于内存储器的内存接口控制器,所述内存接口控制器包括多个内存接口控制单元,每一内存接口控制单元对应至少一个片上存储单元,每一片上存储单元唯一对应一个内存接口控制单元;
分别连接于内存接口控制器的片上处理器和DMA控制器,所述DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元,每一请求分配单元处理的请求信息所对应的地址与片上处理器的地址段匹配,且每一请求分配单元处理的请求信息所对应的地址与通过内存接口控制单元对应的片上存储单元的地址匹配;
连接于DMA控制器的专用功能模块,所述专用功能模块包括多个数据采集单元和多个数据接收单元,所述片上处理器用于配置专用功能单元所对应的内存的地址范围,每一专用功能模块均分别连接于每一请求分配单元;
当片上处理器对内存储器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块,和/或当专用功能模块通过DMA控制器对内存储器发生读写请求时,通过所述DMA控制器按请求的地址对接内存接口控制器,并通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。
为了实现上述发明目的之一,本发明一实施方式提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的内嵌处理器进行快速数据通信的方法的步骤。
与现有技术相比,本发明的有益效果是:本发明的内嵌处理器进行快速数据通信的方法、装置及存储介质,通过将系统内存储器分割为多个片上存储单元,可以提供并发的数据处理能力,提高了数据处理带宽;同时,数据收发处理由DMA控制器完成,片上处理器仅少量参与,减轻了片上处理器的负担。
附图说明
图1、图2是本发明背景技术提出的不同实施方式的内嵌处理器进行快速数据通信的装置的框架结构示意图;
图3是本发明一实施方式提供的内嵌处理器进行快速数据通信的装置的框架模块示意图;
图4是本发明一实施方式提供的内嵌处理器进行快速数据通信的方法的流程示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图3所示,本发明一实施方式提供的内嵌处理器进行快速数据通信的装置,所述装置包括:内存储器10,所述内存储器10被分割为地址延续,且顺序编址的多个片上存储单元11,不同片上存储单元11之间的读写操作相互独立且可以同时进行;连接于内存储器10的内存接口控制器20,所述内存接口控制器20包括多个内存接口控制单元21,每一内存接口控制单元21对应至少一个片上存储单元11,每一片上存储单元11唯一对应一个内存接口控制单元21;分别连接于内存接口控制器20的片上处理器30和DMA控制器40,所述DMA控制器40包括与内存接口控制单元21一一对应设置的多个请求分配单元41,每一请求分配单元41处理的请求信息所对应的地址与片上处理器30的地址段匹配,且每一请求分配单元41处理的请求信息所对应的地址与通过内存接口控制单元21对应的片上存储单元11的地址匹配;连接于DMA控制器40的专用功能模块50,所述专用功能模块50包括多个数据采集单元51和多个数据接收单元52,所述片上处理器30用于配置专用功能模块50所对应的内存的地址范围,每一专用功能模块50均分别连接于每一请求分配单元41;当片上处理器30对内存储器10发生读写请求,和/或专用功能模块50通过DMA控制器40对内存储器10发生读写请求时,所述DMA控制器40按请求的地址对接内存接口控制器20,并通过内存接口控制单元21查找对应的片上存储单元11以读写内存储器中数据,并将读出的数据返回给原请求模块。
结合图4所示,本发明一实施方式提供一种内嵌处理器进行快速数据通信的方法,该方法中引用上述装置,并对装置中的各个模块及单元做详细说明。
本发明具体实施方式中,所述方法包括:
S1、将内存储器分割为地址连续,且顺序编址的多个片上存储单元,不同片上存储单元之间的读写操作相互独立且可以同时进行;
S2、配置连接于内存储器的内存接口控制器,所述内存接口控制器包括多个内存接口控制单元,每一内存接口控制单元对应至少一个片上存储单元,每一片上存储单元唯一对应一个内存接口控制单元;
S3、配置分别连接于内存接口控制器的片上处理器和DMA控制器,所述DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元,每一请求分配单元处理的请求信息所对应的地址与片上处理器的地址段匹配,且每一请求分配单元处理的请求信息所对应的地址与通过内存接口控制单元对应的片上存储单元的地址匹配;
S4、配置连接于DMA控制器的专用功能模块,所述专用功能模块包括多个数据采集单元和多个数据接收单元,所述片上处理器用于配置专用功能单元所对应的内存的地址范围,每一专用功能模块均分别连接于每一请求分配单元;
S5、当片上处理器对内存储器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块,和/或当专用功能模块通过DMA控制器对内存储器发生读写请求时,通过所述DMA控制器按请求的地址对接内存接口控制器,并通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。
需要说明的是,本发明在片上处理器与片上专用功能模块之间设计内存接口控制器和专用的DMA控制器,实现片上专用功能模块与片上处理器之间的快速、高效的数据通信;上述标号S1至S5仅仅是为了方便描述而进行标号,实际应用中,上述标号S1至S4的顺序可同时进行也可以进行顺序调整,其顺序的排布不会影响数据的输出结果。
对于步骤S1,内存储器被分割为多个片上存储单元,每个片上存储单元均与唯一的内存接口控制单元连接,如此,各个片上存储单元之间的读写操作相互独立,且可以同时进行;本发明具体实施方式中,各个片上存储器的地址以顺序方式进行编址。
对于步骤S2,内存接口控制单元负责接收片上处理器和DMA控制器发出的读写内存储器的请求,并按照请求的地址读写内存储器中的数据,并将读出的数据返回给原请求模块。配置的内存接口控制单元的数据量可根据需要具体设定,其设定数量通常小于等于片上存储单元的数量,即每一内存接口控制单元可操作至少一个片上存储单元;例如:内存接口控制单元和片上存储单元数量相同时,其一对一进行配置,当片上存储单元数量大于内存接口控制单元数量时,在对其进行一对一配置的同时,将多余的片上存储单元配置至同一内存接口控制单元,或配置至多个片上存储单元。
对于步骤S3,DMA控制器中的数据采集单元负责收集待发送的数据,并按照片上处理器对待发送数据指定的地址转入相应的内存接口控制单元,进一步的,通过内存接口控制单元查找相应的片上存储单元,并将数据写入;同时,DMA控制器根据片上处理器的配置,将来自片上存储单元的读数据写入指定的数据接收单元。本实施方式中,配置的请求分配单元的数量与所述内存接口控制单元的数量相同,每个请求分配单元与专用功能模块中的每个单元均有连接,即每个请求分配单元均可以接收任一数据采集单元采集的数据也可以将读请求的结果返回至任一数据接收单元,通常情况下,请求分配单元的数据数量小于等于数据采集单元和数据接收单元的数量之和,然而,实际应用中,虽然每个请求分配单元均可以接收任一专用功能模块的请求信息,但根据每一请求分配单元的具体划分地址段,所述请求分配单元仅根据地址划分响应自己所对应的片上存储器的地址段的访问请求。如上,片上存储单元通过请求分配单元连接至请求分配单元,请求分配单元和片上存储单元的数量均可以根据需要进行扩展或缩减,该需求的变更取决于整个系统的性能要求和逻辑设计复杂度的平衡;每个请求分配单元可对应1个或多个片上存储单元,其原因在于,这些片上存储单元在逻辑上是独立的,请求分配单元对其内部的数据的读写也是相互独立的;相应的,片上存储单元的个数越多,所支持数据处理带宽也就越高;但同时,个数越多逻辑设计也就越复杂,进而导致芯片成本增加;数据采集单元和数据接收单元的数量一般会多于请求分配单元的个数,在系统设计的地址分配时,将有大量数据操作的专用功能模块配置为单独占用一个请求分配单元,而其他仅偶尔有数据操作的专用功能模块可以共用一个请求分配单元,这样的设计即可以保证系统性能又能简化逻辑设计的复杂度。
至于步骤S5,为数据的具体操作流程,实际应用中,请求信息来自片上处理器或DMA控制器,内存接口控制器首先将来自片上处理器和DMA控制器的对内存储器的读写请求分配到指定的片上存储单元所对应的内存接口控制单元上;内存接口控制单元在接收这些读写请求后,若果是读请求,则需要根据请求的源(片上处理器或DMA控制器)将读出的数据返回;如果时写操作,则将请求的数据写入对应的片上存储单元中。
需要说明的是,对于内存接口控制单元和请求分配单元,在同一时间内,其接收的请求有可能为多个业务相互影响,本发明较佳实施方式中,所述方法还包括:对每类请求信息设置适当的仲裁原则。具体的,其可实现方式中,预配置请求信息的优先级别和/或处理权重,当任一接口控制单元和/或任一请求分配单元同时接收到多个请求信息时,根据请求信息的优先级别和/或处理权重按序处理每一请求信息;其中,按优先级别自高至低的顺序依次处理每一请求信息,和/或按照处理权重循环调度每一请求信息。
本发明具体实施方式中,数据交互过程中,当专用功能模块通过DMA控制器对应于内存发生读写请求时,所述方法还包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址进行匹配以获得与请求信息匹配的请求分配单元。较佳的,本发明一具体实施方式中,当专用功能模块通过DMA控制器对应于内存发生读写请求时,所述方法具体包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址查询每一请求分配单元,判断解析请求携带的地址是否属于当前请求分配单元调度的地址范围,若是,当前请求分配单元响应解析请求,并通过当前请求分配单元连接的内存接口控制单元在相应的片上存储单元上对请求信息进行具体响应。
本发明较佳实施方式中,通过DMA控制器确认片上存储器已完成请求信息所携带的指令后,所述方法还包括:更新本地寄存器的状态标志信息和产生中断信号,并将中断信号发送至片上处理器。例如:当DMA控制器确认数据被内存接口控制单元写入指定的片上存储器后,更新本地寄存器的状态标志信息和产生中断信号,以通知片上处理器当前数据已经处理完成。
通常情况下,每一数据通常均具有相应的描述符,当描述符操作完成时,可认为数据处理完成,如此,本发明较佳实施方式中,设置已完成请求信息所携带的指令为:完成至少一个描述符的数据操作;即,根据具体需要,可以配置完成一个或多个描述符的数据操作后修改本地寄存器的状态标志和产生相应的中断信号;一个描述符的配置模式可以保证数据的传输状态及时通知到片上处理器,而多个描述符的配置模式可以保证片上处理器不会被频繁中断,以保证其他应用程序的正常处理;这两种配置模式可以分别用在数据量较小和较大两种不同的情况。
本发明一较佳实施方式中,为了保证数据传输过程中的出现的暂时中断的情况,所述方法还包括:设置超时机制,当DMA控制器确认预定时间内未能完成足够的数据处理时,采用超时机制触发更新本地寄存器的状态标志信息和产生中断信号。
另外,本发明较佳实施方式中,对系统进行ECC配置,以实现ECC可选功能;所述ECC为Error Checking and Correction的缩写,中文直译:误码检测与纠正。具体的,所述方法还包括:在每一片上存储单元的入口处一一配置ECC逻辑单元;若ECC逻辑单元执行的写操作中包含的写数据宽度与片上存储单元的存储宽度一致,则根据ECC的算法直接计算ECC校验码,并将其与原写数据一并写入对应的片上存储单元中;若执行的写操作中包含的写数据宽度小于片上存储单元的存储宽度,则将原始数据从对应的片上存储单元中读取出来,修改需要更新的部分数据后,再按更新后的整个数据计算ECC校验码,并将其与修改后的数据一并写回片上存储单元;若执行读操作,则根据检错算法自动检测读出的数据是否有错,并记录错误状态到相应的寄存器中。
在本发明具体应用中,当配置为要支持ECC功能时,相应的内存接口控制器中便会使能ECC逻辑单元;ECC逻辑单元分成读和写两种操作来处理。对于写操作中包含的写数据宽度与片上存储单元的存储宽度一致以及读数据的操作,ECC逻辑单元使能后可以提高数据的容错性,不会导致任何的性能的损失。
然而,若执行的写操作中包含的写数据宽度小于片上存储单元的存储宽度,则表示当前写操作仅需要更新内存储器中指定地址的部分数据,此时,为了保证写操作不会影响原有数据,需要执行读-修改-写操作,即将原始数据从对应的片上存储单元中读取出来,修改需要更新的部分数据后,再按更新后的整个数据计算ECC校验码,并将其与修改后的数据一并写回片上存储单元。如此,仅当写数据宽度与片上存储单元的存储宽度不一致时才需要执行读-修改-写操作,对于上下逻辑的影响也仅是处理延时变长,并不会影响其正常的功能,也不会需要做任何修改。
结合图3所示,本发明具体示例中,将内存储器按地址连续分成4个片上存储单元该示例中,4个片上存储单元分别以片上存储单元1,片上存储单元2,片上存储单元3,片上存储单元4表示,相应的,片上处理器可配置每一片上存储单元的地址段,在该示例中,4个片上存储单元对应的地址段依次分别为:0x0000~0x3FFF,0x4000~0x7FFF,0x8000~0xBFFF,0xC000~0xFFFF。
配置内存接口控制单元的数量与片上存储单元的数量相等,且两者一一对应配置连接,该4个内存接口控制单元分别为以MEM Mux1,MEM Mux2,MEM Mux3,MEM Mux4表示。
配置请求分配单元的数量与内存接口控制单元的数量相等,且两者一一对应配置连接,该4个请求分配单元分别以DMA Mux1,DMA Mux2,DMA Mux3,DMA Mux4表示;在此需要说明的是,每个请求分配单元处理的请求信息所对应的地址一定与片上处理器对各个片上存储单元配置的的址段相匹配;同时,上述4个请求分配单元与专用功能模块中的每个单元均有连接,在该具体示例中,专用功能模块以包含两个数据采集单元和两个数据接收单元为例进行说明,其分别为数据采集单元1和数据采集单元2,以及数据接收单元1和数据接收单元2。
数据交互过程中,片上处理器对每一数据采集单元和数据接收单元所对应地址段进行配置,当任一数据采集单元和/或数据接收单元接收到请求信息时,均将请求信息发送至DMA控制器;且DMA控制器中的每一请求分配单元DMA Mux均可以接收该请求信息,并根据该请求信息包含的地址判断该请求信息匹配到哪一个请求分配单元的地址范围;若匹配到具体的请求分配单元,则由该请求单元调度当前请求信息,若未能匹配,则不相应请求信息。例如:当前请求信息包含的地址信息位于地址段0x0000~0x3FFF内时,该请求会被DMAMux1处理,否则,DMA Mux1对于该请求信息不做任何响应。
进一步的,若同时有多个请求信息需要同时在DMA Mux1中被处理时,通过多个请求的仲裁规则进行处理,一般情况下,需要紧急处理的请求优先级较高;另外,当多个请求优先级别相同时,还可以通过权重进行循环调度,在此不做进一步的赘述;仲裁规则的设置以保证能满足实际应用需求且逻辑设计简单为最终目标。
进一步的,内存接口控制器接收到来自DMA控制器的数据操作请求后,按地址分配给对应的内存接口控制单元进行处理,同时,片上处理器的数据操作请求也根据地址被送到相应的内存接口控制单元处理;若在上述DMA Mux1处理的数据发送至片上处理单元MEMMux1的同时,当前片上处理器的请求信息中包含的地址同样为0x0000~0x3FFF,则该请求会一并送至内存接口控制单元MEM Mux1接收并处理,此时,同样采样仲裁规则对来自于片上处理器和请求分配单元的数据做选择后,依次进行处理;进一步的,最终被选中的请求会操作片上存储单元1中的数据;写操作直接将数据写入该片上存储单元1,读操作则将片上存储单元1对应地址的数据读出后返回片上处理器或DMA控制器。
本发明可用于内嵌片上处理器与片上专用功能单元之间的快速高效的数据交互处理,基于对性能和设计复杂度的平衡,可以设定系统内存划分的个数,即片上功能单元的数量以及DMA控制器中请求分配单元的数量;需要说明的是,在保证性能达到要求的前提下,以上各个单元的数量越少,逻辑实现越简单;相应的,基于本发明的实现方案,片上处理器仅负责少量的控制信息(如DMA和中断)的处理,具体的数据收发过程由片上的逻辑自主实现;同时,因为系统内存灵活的划分方式和数据收发请求的仲裁方式,可以达到高效的数据处理的效果。
综上所述,本发明的内嵌处理器进行快速数据通信的方法、装置及存储介质,通过将系统内存储器分割为多个片上存储单元,可以提供并发的数据处理能力,提高了数据处理带宽;同时,数据收发处理由DMA控制器完成,片上处理器仅少量参与,减轻了片上处理器的负担;进一步的,数据收发处理经过两级仲裁选择,可以灵活地设置仲裁优先级原则,用较简单的逻辑满足整体系统性能的需求;另外,本发明还通过设置灵活可控的ECC逻辑单元,使得上下级模块无须修改逻辑即可支持ECC数据保护功能。
以上所描述的系统实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件是逻辑模块,即可以位于芯片逻辑中的一个模块中,或者也可以分布到芯片内的多个数据处理模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的芯片设计中。例如:交换芯片、路由器芯片,服务器芯片等等。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.一种内嵌处理器进行快速数据通信的方法,其特征在于,所述方法包括:
将内存储器分割为地址连续,且顺序编址的多个片上存储单元,不同片上存储单元之间的读写操作相互独立且可以同时进行;
配置连接于内存储器的内存接口控制器,所述内存接口控制器包括多个内存接口控制单元,每一内存接口控制单元对应至少一个片上存储单元,每一片上存储单元唯一对应一个内存接口控制单元;
配置分别连接于内存接口控制器的片上处理器和DMA控制器,所述DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元,每一请求分配单元处理的请求信息所对应的地址与片上处理器的地址段匹配,且每一请求分配单元处理的请求信息所对应的地址与通过内存接口控制单元对应的片上存储单元的地址匹配;
配置连接于DMA控制器的专用功能模块,所述专用功能模块包括多个数据采集单元和多个数据接收单元,所述片上处理器用于配置专用功能单元所对应的内存的地址范围,每一专用功能模块均分别连接于每一请求分配单元;
当片上处理器对内存储器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块,和/或当专用功能模块通过DMA控制器对内存储器发生读写请求时,通过所述DMA控制器按请求的地址对接内存接口控制器,并通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。
2.根据权利要求1所述的内嵌处理器进行快速数据通信的方法,其特征在于,当专用功能模块通过DMA控制器对内存发生读写请求时,所述方法还包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址进行匹配以获得与请求信息匹配的请求分配单元。
3.根据权利要求2所述的内嵌处理器进行快速数据通信的方法,其特征在于,当专用功能模块通过DMA控制器对内存发生读写请求时,所述方法具体包括:解析请求信息以获得请求信息携带的地址,根据解析出的地址查询每一请求分配单元,判断解析请求携带的地址是否属于当前请求分配单元调度的地址范围,若是,当前请求分配单元响应解析请求,并通过当前请求分配单元连接的内存接口控制单元在相应的片上存储单元上对请求信息进行具体响应。
4.根据权利要求1所述的内嵌处理器进行快速数据通信的方法,其特征在于,所述方法还包括:预配置请求信息的优先级别和/或处理权重,当任一接口控制单元和/或任一请求分配单元同时接收到多个请求信息时,根据请求信息的优先级别和/或处理权重按序处理每一请求信息;其中,按优先级别自高至低的顺序依次处理每一请求信息,和/或按照处理权重循环调度每一请求信息。
5.根据权利要求1所述的内嵌处理器进行快速数据通信的方法,其特征在于,通过DMA控制器确认片上存储器已完成请求信息所携带的指令后,所述方法还包括:更新本地寄存器的状态标志信息和产生中断信号,并将中断信号发送至片上处理器。
6.根据权利要求5所述的内嵌处理器进行快速数据通信的方法,其特征在于,已完成请求信息所携带的指令包括:完成至少一个描述符的数据操作。
7.根据权利要求5所述的内嵌处理器进行快速数据通信的方法,其特征在于,所述方法还包括:设置超时机制,当DMA控制器确认预定时间内未能完成足够的数据处理时,采用超时机制触发更新本地寄存器的状态标志信息和产生中断信号。
8.根据权利要求1所述的内嵌处理器进行快速数据通信的方法,其特征在于,所述方法还包括:在每一片上存储单元的入口处一一配置ECC逻辑单元;
若ECC逻辑单元执行的写操作中包含的写数据宽度与片上存储单元的存储宽度一致,则根据ECC的算法直接计算ECC校验码,并将其与原写数据一并写入对应的片上存储单元中;
若执行的写操作中包含的写数据宽度小于片上存储单元的存储宽度,则将原始数据从对应的片上存储单元中读取出来,修改需要更新的部分数据后,再按更新后的整个数据计算ECC校验码,并将其与修改后的数据一并写回片上存储单元;
若执行读操作,则根据检错算法自动检测读出的数据是否有错,并记录错误状态到相应的寄存器中。
9.一种内嵌处理器进行快速数据通信的装置,其特征在于,所述装置包括:
内存储器,所述内存储器被分割为地址连续,且顺序编址的多个片上存储单元,不同片上存储单元之间的读写操作相互独立且可以同时进行;
连接于内存储器的内存接口控制器,所述内存接口控制器包括多个内存接口控制单元,每一内存接口控制单元对应至少一个片上存储单元,每一片上存储单元唯一对应一个内存接口控制单元;
分别连接于内存接口控制器的片上处理器和DMA控制器,所述DMA控制器包括与内存接口控制单元一一对应设置的多个请求分配单元,每一请求分配单元处理的请求信息所对应的地址与片上处理器的地址段匹配,且每一请求分配单元处理的请求信息所对应的地址与通过内存接口控制单元对应的片上存储单元的地址匹配;
连接于DMA控制器的专用功能模块,所述专用功能模块包括多个数据采集单元和多个数据接收单元,所述片上处理器用于配置专用功能单元所对应的内存的地址范围,每一专用功能模块均分别连接于每一请求分配单元;
当片上处理器对内存储器发生读写请求时,通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块,和/或当专用功能模块通过DMA控制器对内存储器发生读写请求时,通过所述DMA控制器按请求的地址对接内存接口控制器,并通过内存接口控制单元匹配对应的片上存储单元以读写内存储器中数据,并将读出的数据返回给原请求模块。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任意一项所述的内嵌处理器进行快速数据通信的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911009338.2A CN110737618B (zh) | 2019-10-23 | 2019-10-23 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
US17/771,507 US20220365893A1 (en) | 2019-10-23 | 2020-10-22 | Method and Apparatus for Embedded Processor to Perform Fast Data Communication, and Storage Medium |
PCT/CN2020/122890 WO2021078197A1 (zh) | 2019-10-23 | 2020-10-22 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911009338.2A CN110737618B (zh) | 2019-10-23 | 2019-10-23 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737618A true CN110737618A (zh) | 2020-01-31 |
CN110737618B CN110737618B (zh) | 2021-03-16 |
Family
ID=69270954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911009338.2A Active CN110737618B (zh) | 2019-10-23 | 2019-10-23 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220365893A1 (zh) |
CN (1) | CN110737618B (zh) |
WO (1) | WO2021078197A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078197A1 (zh) * | 2019-10-23 | 2021-04-29 | 盛科网络(苏州)有限公司 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
CN114037506A (zh) * | 2021-10-21 | 2022-02-11 | 深圳市道旅旅游科技股份有限公司 | 工单分配方法、装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN101556565A (zh) * | 2009-01-22 | 2009-10-14 | 杭州中天微系统有限公司 | 嵌入式处理器的片上高性能dma |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
US20180357190A1 (en) * | 2016-12-30 | 2018-12-13 | Intel Corporation | Memory sharing for application offload from host processor to integrated sensor hub |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3856219T2 (de) * | 1987-06-05 | 1998-11-19 | Mitsubishi Electric Corp | Digitaler Signalprozessor mit Adress-Generator für den Zugriff von Daten aus einem Zweidirektionalen Bereich eines Datenspeichers |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US9477597B2 (en) * | 2011-03-25 | 2016-10-25 | Nvidia Corporation | Techniques for different memory depths on different partitions |
CN109308283B (zh) * | 2018-08-31 | 2022-11-22 | 西安微电子技术研究所 | 一种SoC片上系统及其外设总线切换方法 |
US11301295B1 (en) * | 2019-05-23 | 2022-04-12 | Xilinx, Inc. | Implementing an application specified as a data flow graph in an array of data processing engines |
CN110737618B (zh) * | 2019-10-23 | 2021-03-16 | 盛科网络(苏州)有限公司 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
-
2019
- 2019-10-23 CN CN201911009338.2A patent/CN110737618B/zh active Active
-
2020
- 2020-10-22 WO PCT/CN2020/122890 patent/WO2021078197A1/zh active Application Filing
- 2020-10-22 US US17/771,507 patent/US20220365893A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN101556565A (zh) * | 2009-01-22 | 2009-10-14 | 杭州中天微系统有限公司 | 嵌入式处理器的片上高性能dma |
CN104820657A (zh) * | 2015-05-14 | 2015-08-05 | 西安电子科技大学 | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 |
US20180357190A1 (en) * | 2016-12-30 | 2018-12-13 | Intel Corporation | Memory sharing for application offload from host processor to integrated sensor hub |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078197A1 (zh) * | 2019-10-23 | 2021-04-29 | 盛科网络(苏州)有限公司 | 内嵌处理器进行快速数据通信的方法、装置及存储介质 |
CN114037506A (zh) * | 2021-10-21 | 2022-02-11 | 深圳市道旅旅游科技股份有限公司 | 工单分配方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021078197A1 (zh) | 2021-04-29 |
US20220365893A1 (en) | 2022-11-17 |
CN110737618B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481346B2 (en) | Method and apparatus for implementing data transmission, electronic device, and computer-readable storage medium | |
US6546471B1 (en) | Shared memory multiprocessor performing cache coherency | |
CN100592271C (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US11868299B2 (en) | Network-on-chip data processing method and device | |
JP4160925B2 (ja) | 分散型ノード・トポロジにおけるクロス・チップ通信機構を含むマルチプロセッサ・コンピュータ・システム内の処理ユニット間の通信方法およびシステム | |
US20230015404A1 (en) | Memory system and data processing system including the same | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US20090006666A1 (en) | Dma shared byte counters in a parallel computer | |
US20050033948A1 (en) | Method and apparatus for providing updated system locality information during runtime | |
CN114860329B (zh) | 动态一致性偏置配置引擎及方法 | |
US9170963B2 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
CN101566976A (zh) | 信息处理装置、信息处理方法,以及计算机程序 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
JP5307151B2 (ja) | リンクに基づくシステムにおけるシステムルーティング情報の変更 | |
US10445267B2 (en) | Direct memory access (DMA) unit with address alignment | |
US7774513B2 (en) | DMA circuit and computer system | |
CN114902186A (zh) | 非易失性存储器模块的错误报告 | |
CN104460938A (zh) | 利用存储器高速缓存在系统范围内节省电力的方法和系统 | |
US20230063751A1 (en) | A processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process | |
CN114237717A (zh) | 一种多核异构处理器片上暂存动态调度管理器 | |
US6880046B1 (en) | Multiprocessor system and memory access method | |
US11861403B2 (en) | Method and system for accelerator thread management | |
US11704211B1 (en) | Error avoidance in memory device | |
US20240103913A1 (en) | Task scheduling method and system, and hardware task scheduler | |
US11809221B2 (en) | Artificial intelligence chip and data operation method |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |