CN110347617A - 一种多核SoC中DMA模块的功能验证方法 - Google Patents

一种多核SoC中DMA模块的功能验证方法 Download PDF

Info

Publication number
CN110347617A
CN110347617A CN201910597031.2A CN201910597031A CN110347617A CN 110347617 A CN110347617 A CN 110347617A CN 201910597031 A CN201910597031 A CN 201910597031A CN 110347617 A CN110347617 A CN 110347617A
Authority
CN
China
Prior art keywords
dma
configuration
data channel
level
dma module
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.)
Pending
Application number
CN201910597031.2A
Other languages
English (en)
Inventor
李丽
董英雷
程开丰
赵毅峰
徐瑾
沈思睿
杨一博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201910597031.2A priority Critical patent/CN110347617A/zh
Publication of CN110347617A publication Critical patent/CN110347617A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及了一种多核SoC中DMA模块的功能验证方法,具体步骤为:首先建立基于有向二分图的多核SoC中DMA模块抽象配置模型;然后采用等价类划分算法将原本扁平无序的配置空间转换成了三层的配置空间树;接着采用深度优先算法对配置空间树的叶子节点集进行遍历,得到包含高层次配置信息的无冗余全覆盖叶子节点序列;最后通过内核相关的DMACfg转换函数将每个叶子节点转换成实际DMA的配置信息。有益效果:本发明的证方法可以在保证完备的功能覆盖率基础上最小化验证配置激励集。

Description

一种多核SoC中DMA模块的功能验证方法
技术领域
本发明属于仿真验证算法领域,尤其涉及一种多核SoC中DMA模块的功能验证方法。
背景技术
在经典von Neumann计算机体系结构中,I/O与主存Memory之间要想进行数据的交互,则必须通过内核中转。当要传输的数据量很大时,上述传输方式的低效率就很明显,因为在整个数据传输过程中内核都无法处理其它事务。而在如今的大数据时代,硬盘、网络、GPU等I/O设备与主存Memory之间大量数据的传输已成为必不可少的需求。为了解决上述问题,从IBM-PC开始几乎所有的SoC(系统级芯片)中都引入了DMA模块,用以实现I/O与主存Memory之间的直接快速数据交互,从而空出内核资源,用以处理其它事务,最大化提高运算效率。但是为了内核能控制数据流,每次DMA的数据搬运都必须首先由内核对DMA进行相应的配置启动,然后DMA负责按照配置信息进行具体的数据传输工作,传输结束后DMA再以中断方式通知内核。
随着摩尔定律下SoC中处理器数目和IO规模的不断增长,与之伴随的是验证复杂度的增加。据统计目前大规模SoC的70%左右研发成本需要用于功能验证。传统功能验证主要基于随机配置,虽然随机配置很多时候能够帮助触发一些Corner的设计缺陷。但其弊端也很明显,其中最大的问题是输入配置空间的冗余和不均匀覆盖,而且待验证设计规模越大,这种不均匀性越严重。因此对于多核SoC中必不可少的DMA模块的验证,如何在保证验证覆盖率的基础上实现配置空间无冗余均匀覆盖已经成为研究的热点与难点。
发明内容
本发明的目的在于克服现有多核SoC中DMA模块仿真验证随机配置的不足,提供一种配置空间无冗余均匀覆盖的配置生成策略,在保证验证覆盖率的基础上实现配置空间无冗余均匀覆盖,具体由以下技术方案实现:
所述多核SoC中DMA模块的功能验证方法,包括下述步骤:
步骤1)建立基于有向二分图的多核SoC中DMA模块抽象配置模型;
步骤2)采用等价类划分算法将原本扁平无序的配置空间转换成三层的配置空间树;
步骤3)对配所述置空间树进行深度优先遍历,得到包含高层次配置信息的叶子节点序列后,再通过内核DMACfg转换函数将每个叶子节点转换成DMA模块的配置信息。
所述的多核SoC中DMA模块的功能验证方法的进一步设计在于,所述步骤1)的多核SoC中DMA模块抽象配置模型为有向二分图模型DBG=<DVh,DVs,DE>,其中主点集DVh中的点与配置启动DMA的内核一一对应;从点集DVs中的点与DMA启动传输的数据通道一一对应;并且,设定满足DVh中顶点vhi到DVs中顶点vsi之间存在有向边eij=<vhi,vsj>的充要条件是vhi对应内核能够通过配置DMA启动对vsi对应数据通道的数据传输,DE表示双像函数。
所述的多核SoC中DMA模块的功能验证方法的进一步设计在于,步骤2)中的配置空间划分采用层次化等价类划分算法,包括如下步骤:
步骤2-1)对整个配置空间进行划分得到一级子空间,每个一级子空间内的配置具有相同的活跃内核数;
步骤2-2)对一级子空间进一步划分得到二级子空间,每个二级子空间内的配置具有相同的发起DMA配置的CPU内核集合;
步骤2-3)对二级子空间进一步划分得到三级子空间,每个三级子空间内的配置具有确定的内核和每个内核启动的源/目的数据通道对应关系。
所述的多核SoC中DMA模块的功能验证方法的进一步设计在于,所述步骤3)中所述DMACfg转换函数首先对叶子节点中包含的主点集DVh进行遍历以得到活跃CPU内核;再对于每一个活跃CPU内核vhi,通过双像函数DE获得对应的两个从点像其中第一个像表示源数据通道,第二个像表示目的数据通道;接着随机设置包含有对应源数据通道内的起始地址SAddr、对应目的数据通道内的起始地址DAddr及搬运长度length的细节信息;最后通过CPU内核与DMA模块间配置总线的底层写驱动函数将上述配置信息写入DMA内部寄存器,完成DMA的配置启动。
本发明的有益效果
第一,本发明的多核SoC中DMA模块的功能验证方法是一个独立于具体DMA内部结构的可扩展验证策略。该策略先将DMA的配置抽象成数学模型,然后基于模型进行抽象配置生成,最后才通过SoC实现相关的转换函数生成实际的DMA配置信息。
第二,本发明的多核SoC中DMA模块的功能验证方法能够实现配置空间的无冗余均匀覆盖。由于该策略通过抽象和等价类划分的方法将原本扁平化的配置空间转换成了层次化树状配置空间,然后通过结构化的遍历算法确保特定覆盖率下配置空间的无冗余均匀覆盖。
综上所述,本发明可以有效地解决传统基于随机的多核SoC中DMA验证难扩展,冗余及死角等不均匀覆盖的问题,有着良好的实际应用价值。
附图说明
图1为两核SoC中的DMA模块结构图。
图2为DMA的有向二分图模型。
图3为DMA的配置空间树DCST。
图4为不同配置方案下行覆盖率与配置数的关系示意图。
具体实施方式
下面结合附图和具体实施方式,对本发明进行详细的说明。
图1所示是一个示例两核SoC中的DMA模块FooDMA,该系统中只有两个内核CoreA和CoreB,可能的数据通道有3个,分别为UART控制器、VGA控制器与主存Memory。其中能够通过DMA进行直接数据搬运的通道为UART控制器与主存Memory间、VGA控制器与主存Memory间。
首先构建FooDMA的抽象配置模型DBG=<DVh,DVs,DE>,具体抽象规则如下:
1)主点集DVh:每个可发起配置的内核抽象成顶点后构成的集合;
2)从点集DVs:每个数据通道抽象成顶点后构成的集合;
3)有向边集DE:DVh中顶点vhi到DVs中顶点vsi之间存在有向边eij=<vhi,vsj>的充要条件是vhi对应的内核配置信息可以启动DMA对vsi对应数据通道的数据传输。
按照上述规则,FooDMA的配置有向二分图模型如图2,其三元素分别为
DVh={CoreA,CoreB}、DVs={Memory,UART,VGA}和
得到DBG模型后,接着用层次化等价类划分算法对所有可能的<内核,数据通道>间驱动事务排列组合构成的DMA配置空间(DCS,DMA Configuration Space)进行划分,以将原扁平化的配置空间转换成结构化的DMA配置空间树(DCST,DMA Configuration SpaceTree)。在介绍划分算法之前,先定义3个重要的参数。
1)NHC(Number of Host Cores):SoC中所有可以向DMA发配置的CPU核数目,即DDBG中集合DVh的基,即NHC=|DVh|;
2)NDC(Number of Data Channels):DMA支持的所有数据通道的数目,即DDBG中集合DVs的基,即NDC=|DVs|;
3)NAHC(Number of Active Host Cores):当下系统活跃的CPU核数,即DIBS中集合的基,即
显然有下面的关系:
NAHC≤NHC (1)
层次化等价类划分算法分3步,具体流程如下:
第一层:对整个DMA配置空间进行划分,划分的依据是每个子集的NAHC数(即活跃主核数)相同。根据式(1),DCS可被划分成NHC个子集,即EP(DCS)={DS1,DS2…DSNHC},其中子集DSi的下标i表示活跃主核数,取值范围为1≤i≤NHC;
第二层:对于每个集合DSi进行划分,划分的依据是每个子集具有相同的活跃主核集合。每个DSi可被划分成个子集,即EP(DSi)={DSi,1,DSi,2…},其中子集DSi,j有两个下标:第一个i表示是对DSi的划分;第二个j是特征编号,其取值范围为
第三层:对于每个集合DSi,j进行划分,划分的依据是每个子集内的内核和每个内核启动的数据源/目的数据通道间的对应关系是确定的。由于不同CPU核的配置信息之间相互独立,可以相同,记DSi,j内配置所占用的i个处理器核对应DIBS中的点分别为则DSi,j可被划分成个子集(deg+(vh)表示DDBG中点vh的出度),即EP(DSi,j)={DSi,j,1,DSi,j,2…},其中子集DSi,j,k有三个下标:前两个i,j表示是对DSi,j的划分;第三个k是特征编号,其取值范围为
经过层次化等价类划分算法,原来扁平化的DMA配置空间就被转换成3层的配置空间树DCST,DCST的每个叶子节点就代表了一个抽象配置,因为其描述了有哪些CPU内核发起了配置,并给出了每个活动CPU内核所驱动的数据通道。对FooDMA,由于NHC=2,NDC=3,其DCST如图3所示。
其中每一层节点的含义如下表
表1 FooDMA的DCST各层节点含义
在得到配置空间树DCST后,接下来就可以进行结构化的配置生成,首先对DCST的叶子节点集进行深度优先遍历(DFT),得到包含高层次配置信息的无冗余全覆盖叶子节点序列,接下来采用与SoC实现相关的DMACfg(LeafNode)转换函数将每个叶子节点转换成多核总线模块实际的输入配置,具体为:
1.首先对叶子节点中包含的主点集进行遍历以得到活跃CPU内核。
2.对于每一个活跃CPU内核vhi,通过双像函数DEA获得对应的两个从点像其中第一个像表示源数据通道,第二个像表示目的数据通道。
3.随机设置对应源数据通道内的起始地址SAddr、对应目的数据通道内的起始地址DAddr及搬运长度length等细节信息。
4.最后通过CPU内核与DMA模块间配置总线的底层写驱动函数将上述配置信息写入DMA内部寄存器,完成DMA的配置启动。
为了评估本发明的有益效果,实验对比了2种不同配置生成方案(传统随机配置,结构化配置)下FooDMA的覆盖率值与配置激励数的关系,结果如图4。由结果可见,相比传统随机配置,结构化的配置生成策略能使行覆盖率更快地收敛,且收敛时的配置数减少21.5%。
本发明不限于以上实施方式,任何基于本发明机理的,可轻易想到的变化或替换,都应属于本发明的保护范围。

Claims (4)

1.一种多核SoC中DMA模块的功能验证方法,其特征在于,包括下述步骤:
步骤1)建立基于有向二分图的多核SoC中DMA模块抽象配置模型;
步骤2)采用等价类划分算法将原本扁平无序的配置空间转换成三层的配置空间树;
步骤3)对配所述置空间树进行深度优先遍历,得到包含高层次配置信息的叶子节点序列后,再通过内核DMACfg转换函数将每个叶子节点转换成DMA模块的配置信息。
2.根据权利要求1所述的多核SoC中DMA模块的功能验证方法,其特征在于:所述步骤1)的多核SoC中DMA模块抽象配置模型为有向二分图模型DBG=<DVh,DVs,DE>,其中主点集DVh中的点与配置启动DMA的内核一一对应;从点集DVs中的点与DMA启动传输的数据通道一一对应;并且,设定满足DVh中顶点vhi到DVs中顶点vsi之间存在有向边eij=<vhi,vsj>的充要条件是vhi对应内核能够通过配置DMA启动对vsi对应数据通道的数据传输,DE表示双像函数。
3.根据权利要求1所述的多核SoC中DMA模块的功能验证方法,其特征在于:
步骤2)中的配置空间划分采用层次化等价类划分算法,包括如下步骤:
步骤2-1)对整个配置空间进行划分得到一级子空间,每个一级子空间内的配置具有相同的活跃内核数;
步骤2-2)对一级子空间进一步划分得到二级子空间,每个二级子空间内的配置具有相同的发起DMA配置的CPU内核集合;
步骤2-3)对二级子空间进一步划分得到三级子空间,每个三级子空间内的配置包含内核分别与源数据通道、目的数据通道间唯一的对应关系。
4.根据权利要求1所述的多核SoC中DMA模块的功能验证方法,其特征在于:所述所述步骤3)中所述DMACfg转换函数首先对叶子节点中包含的主点集DVh进行遍历以得到活跃CPU内核;再对于每一个活跃CPU内核vhi,通过双像函数DE获得对应的两个从点像其中第一个像表示源数据通道,第二个像表示目的数据通道;接着随机设置包含有对应源数据通道内的起始地址SAddr、对应目的数据通道内的起始地址DAddr及搬运长度length的细节信息;最后通过CPU内核与DMA模块间配置总线的底层写驱动函数将上述配置信息写入DMA内部寄存器,完成DMA的配置启动。
CN201910597031.2A 2019-07-03 2019-07-03 一种多核SoC中DMA模块的功能验证方法 Pending CN110347617A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910597031.2A CN110347617A (zh) 2019-07-03 2019-07-03 一种多核SoC中DMA模块的功能验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910597031.2A CN110347617A (zh) 2019-07-03 2019-07-03 一种多核SoC中DMA模块的功能验证方法

Publications (1)

Publication Number Publication Date
CN110347617A true CN110347617A (zh) 2019-10-18

Family

ID=68178148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910597031.2A Pending CN110347617A (zh) 2019-07-03 2019-07-03 一种多核SoC中DMA模块的功能验证方法

Country Status (1)

Country Link
CN (1) CN110347617A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750957A (zh) * 2019-10-30 2020-02-04 南京宁麒智能计算芯片研究院有限公司 一种高效多核RISC-V处理器的Cache系统验证方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150095008A1 (en) * 2013-01-18 2015-04-02 Inspur Electronic Information Industry Co., Ltd Extension cache coherence protocol-based multi-level coherency domain simulation verification and test method
CN107247628A (zh) * 2017-06-22 2017-10-13 华中科技大学 一种面向多核系统的数据流程序任务划分与调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150095008A1 (en) * 2013-01-18 2015-04-02 Inspur Electronic Information Industry Co., Ltd Extension cache coherence protocol-based multi-level coherency domain simulation verification and test method
CN107247628A (zh) * 2017-06-22 2017-10-13 华中科技大学 一种面向多核系统的数据流程序任务划分与调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘功杰等: "DMA控制器的一种硬件验证方法", 《计算机工程与科学》 *
程开丰等: "面向总线系统的高层次结构化激励生成算法", 《湖南大学学报(自然科学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750957A (zh) * 2019-10-30 2020-02-04 南京宁麒智能计算芯片研究院有限公司 一种高效多核RISC-V处理器的Cache系统验证方法
CN110750957B (zh) * 2019-10-30 2024-05-24 南京宁麒智能计算芯片研究院有限公司 一种高效多核RISC-V处理器的Cache系统验证方法

Similar Documents

Publication Publication Date Title
WO2016197768A1 (zh) 芯片验证方法、装置及系统
US8438320B2 (en) Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
CN105740946B (zh) 一种应用细胞阵列计算系统实现神经网络计算的方法
CN109740244A (zh) 一种激励空间无冗余均匀覆盖的多核互联总线验证方法
CN101446987B (zh) 一种用于多核处理器Cache一致性实物验证的装置
CN107301455A (zh) 用于卷积神经网络的混合立方体存储系统及加速计算方法
CN104375805A (zh) 采用多核处理器仿真可重构处理器并行计算过程的方法
CN107402901A (zh) 由两个或更多处理器共享的存储设备和包括其的系统
CN107613035A (zh) 终端设备mac地址的分配方法及mac分配设备
CN109656623A (zh) 执行卷积运算操作的方法及装置、生成指令的方法及装置
US20220067264A1 (en) Chip design method, design device, computer device and storage medium
CN103744999B (zh) 基于层次划分存储结构的空间矢量数据在线交互制图方法
DE102016204283A1 (de) Datenspeichervorrichtungen, Datenverarbeitungssysteme, die diese aufweisen, Verfahren zum Betreiben und Verfahren zum Herstellen derselben.
CN108833144B (zh) 一种基于聚类统计模型的智能电表集中器选址方法
CN105718996A (zh) 细胞阵列计算系统以及其中的通信方法
CN110750957B (zh) 一种高效多核RISC-V处理器的Cache系统验证方法
CN109101338A (zh) 一种基于多路芯片扩展的区块链处理架构及其方法
US9246688B1 (en) Dataset licensing
CN109801665A (zh) Sram自测试系统、架构及方法、存储介质
CN110347617A (zh) 一种多核SoC中DMA模块的功能验证方法
Salah et al. Constructing Effective UVM Testbench for DRAM Memory Controllers
CN105955896A (zh) 一种可重构dbf算法硬件加速器及控制方法
CN115688495B (zh) 分布式lvc仿真体系协同筹划方法、服务器及存储介质
CN108427584A (zh) 快速启动的具有并行计算核的芯片及该芯片的配置方法
CN107491605A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191018