CN117806894B - 多核异构芯片及其dma控制器故障的检测方法和装置 - Google Patents
多核异构芯片及其dma控制器故障的检测方法和装置 Download PDFInfo
- Publication number
- CN117806894B CN117806894B CN202410232523.2A CN202410232523A CN117806894B CN 117806894 B CN117806894 B CN 117806894B CN 202410232523 A CN202410232523 A CN 202410232523A CN 117806894 B CN117806894 B CN 117806894B
- Authority
- CN
- China
- Prior art keywords
- check code
- injection
- dma controller
- module
- parameter set
- 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 53
- 238000002347 injection Methods 0.000 claims abstract description 239
- 239000007924 injection Substances 0.000 claims abstract description 239
- 238000001514 detection method Methods 0.000 claims abstract description 88
- 238000004891 communication Methods 0.000 claims abstract description 36
- 238000007689 inspection Methods 0.000 claims description 63
- 238000004422 calculation algorithm Methods 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 28
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000012546 transfer Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
多核异构芯片及其DMA控制器故障的检测方法和装置,其方法包括:第一应用域的注入模块读取一个注入参数组,计算其第一校验码,将注入参数组和第一校验码发送至DMA控制器;DMA控制器基于注入参数组计算出第二校验码,并基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运;注入模块基于数据搬运的源地址处数据,计算出第三校验码,并通过核间通信发送至第二应用域的检查模块;检查模块基于数据搬运的目的地址处数据,计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器是否存在故障。能够降低芯片流片后的DMA控制器故障率,降低成本,提高故障检测的独立性和安全性。
Description
技术领域
本申请涉及数据传输技术领域,特别是涉及多核异构芯片及其DMA控制器故障的检测方法和装置。
背景技术
DMA(Direct Memory Access,直接存储器访问)控制器是一种用于管理数据传输的硬件设备,它能够在系统内存和外部设备之间直接进行数据传输,而无需CPU(CentralProcessing Unit,中央处理器)的干预。尤其在车用芯片中,DMA控制器扮演着重要角色,其用于高效地处理各种传感器数据、音频视频流以及其他通信数据,甚至可以不经软件干预实现自动控制电机、背光等功能。
相关技术中,DMA控制器作为车用芯片的核心控制单元,在芯片流片后才能检测或体现出故障。然而,芯片流片后当前DMA控制器故障无法修复,这不仅会引发生产成本的增加,还容易导致项目进度的延误。因此,随着多核异构在车用芯片中的应用推广,如何提供一种专用于多核异构芯片的DMA控制器故障的检测方法,实现在芯片设计阶段对DMA控制器故障进行前置检测,降低芯片流片后的DMA控制器故障率,成为亟待解决的问题。
发明内容
为了解决现有技术中存在的至少一个问题,本申请的目的在于提供多核异构芯片及其DMA控制器故障的检测方法和装置,能够实现在芯片设计阶段对DMA控制器故障进行前置检测,降低芯片流片后的DMA控制器故障率,这不仅有助于降低成本,确保项目进度,而且能够提高DMA控制器运行和检测的可靠性。此外,通过在多核异构芯片框架中的独立模块分开部署,还有利于提高故障检测的独立性和安全性。
为实现上述目的,本申请提供的多核异构芯片的DMA控制器故障的检测方法,应用于多核异构芯片,所述多核异构芯片被配置有第一应用域和第二应用域,所述方法包括,
所述第一应用域的注入模块响应于接收到检测启动信号,读取所述检测启动信号对应的一个注入参数组,计算出基于所述注入参数组的第一校验码,将所述注入参数组和所述第一校验码发送至所述多核异构芯片的DMA控制器;其中,所述注入参数组包括对应数据的源地址参数、目的地址参数和数据量参数;
所述DMA控制器基于接收到的所述注入参数组,计算出第二校验码,并基于所述第一校验码和所述第二校验码的初步比对结果,确定是否对所述注入参数组对应的数据进行数据搬运;
所述注入模块基于所述数据搬运的源地址处数据计算出第三校验码,并通过核间通信发送至所述第二应用域的检查模块;
所述检查模块基于所述数据搬运的目的地址处数据计算出第四校验码,并基于所述第三校验码和所述第四校验码的二次比对结果,确定所述DMA控制器是否存在故障。
进一步地,所述方法还包括,
所述注入模块采用第一算法计算出所述第一校验码,所述DMA控制器采用所述第一算法计算出所述第二校验码;
所述注入模块采用第二算法计算出所述第三校验码,所述检查模块采用所述第二算法计算出所述第四校验码;
其中,所述第一算法和/或所述第二算法为循环冗余校验CRC算法。
进一步地,所述方法还包括,
响应于所述第二校验码与所述第一校验码相同,所述DMA控制器对所述注入参数组对应的数据进行数据搬运;
所述数据搬运完成后,所述DMA控制器将第一中断信号上报至所述注入模块;
响应于接收到所述第一中断信号,所述注入模块计算所述第三校验码;
响应于所述第二校验码与所述第一校验码不同,所述DMA控制器结束对所述注入参数组的检测,并将第二中断信号上报至所述注入模块;
响应于接收到所述第二中断信号,所述注入模块读取下一个注入参数组,以对所述下一个注入参数组进行检测,直至读取所述检测启动信号对应的全部注入参数组。
进一步地,所述方法还包括,
响应于所述第四校验码与所述第三校验码相同,所述检查模块通过核间通信向所述注入模块发送参数检测通过指令;
响应于接收到所述参数检测通过指令,所述注入模块读取下一个注入参数组,以对所述下一个注入参数组进行检测,直至读取所述检测启动信号对应的全部注入参数组;
响应于发送出所述全部注入参数组对应的参数检测通过指令,所述检查模块确定所述DMA控制器故障检测合格;
响应于所述第四校验码与所述第三校验码不同,所述检查模块确定所述DMA控制器存在故障,并输出检测故障结果信息。
进一步地,所述方法还包括,
在发送所述检测启动信号前,所述检测启动信号的全部注入参数组,被预先配置至注入参数池,以供所述注入模块读取;且,
与所述全部注入参数组一一对应的全部检查参数组,被预先配置至检查参数池,以供所述检查模块读取。
更进一步地,所述注入模块计算出所述第三校验码后,所述方法还包括,
所述注入模块将所述数据的参数位置信息通过核间通信发送至所述检查模块;
所述检查模块基于所述参数位置信息,确定所述检查参数池中与所述注入参数组对应的检查参数组。
进一步地,所述方法还包括,
所述注入模块计算出所述第一校验码后,通过APB总线向所述DMA控制器发送DMA启动指令;
所述注入模块计算出所述第三校验码后,通过核间通信向所述检查模块发送检查启动指令。
为实现上述目的,本申请还提供的多核异构芯片的DMA控制器故障的检测装置,应用于多核异构芯片,所述多核异构芯片被配置有第一应用域和第二应用域,所述装置包括,
注入模块,被配置于所述第一应用域中,响应于接收到检测启动信号,读取所述检测启动信号对应的一个注入参数组,计算出基于所述注入参数组的第一校验码,将所述注入参数组和所述第一校验码发送至所述多核异构芯片的DMA控制器;其中,所述注入参数组包括对应数据的源地址参数、目的地址参数和数据量参数;
DMA控制器,被配置为基于接收到的所述注入参数组,计算出第二校验码,并基于所述第一校验码和所述第二校验码的初步比对结果,确定是否对所述注入参数组对应的数据进行数据搬运;
所述注入模块,还被配置为基于所述数据搬运的源地址处数据计算出第三校验码,并通过核间通信发送至检查模块;
检查模块,被配置于所述第二应用域中,基于所述数据搬运的目的地址处数据,计算出第四校验码,并基于所述第三校验码和所述第四校验码的二次比对结果,确定所述DMA控制器是否存在故障。
为实现上述目的,本申请还提供的多核异构芯片,被配置有如上所述的多核异构芯片的DMA控制器故障的检测装置。
为实现上述目的,本申请还提供的电子设备,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器被设置为运行所述指令以执行如上所述的多核异构芯片的DMA控制器故障的检测方法。
本申请的多核异构芯片及其DMA控制器故障的检测方法和装置,通过第一应用域的注入模块计算出基于注入参数组的第一校验码,将注入参数组和第一校验码发送至多核异构芯片的DMA控制器;并通过DMA控制器对注入参数组计算出第二校验码,基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运;以及通过注入模块基于数据搬运的源地址处数据计算出第三校验码,通过核间通信发送至第二应用域的检查模块;并通过检查模块基于数据搬运的目的地址处数据计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器是否存在故障。由此,能够实现在芯片设计阶段对DMA控制器故障进行前置检测,降低芯片流片后的DMA控制器故障率,这不仅有助于降低成本,确保项目进度,而且能够提高DMA控制器运行和检测的可靠性。此外,通过在多核异构芯片框架中的独立模块分开部署,还有利于提高故障检测的独立性和安全性。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
图1为根据本申请实施例的多核异构芯片的结构框图;
图2为根据本申请另一实施例的多核异构芯片的结构框图;
图3为根据本申请实施例的DMA控制器故障的检测方法的流程图;
图4为根据本申请另一实施例的DMA控制器故障的检测方法的流程图;
图5为根据本申请又一实施例的DMA控制器故障的检测方法的流程图;
图6为根据本申请实施例的DMA控制器故障的检测装置的结构框图;
图7为根据本申请实施例的DMA控制器故障的检测装置的结构框图;
图8为根据本申请实施例的电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分的基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块、单元或数据进行区分,并非用于限定这些装置、模块、单元或数据所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
首先需要说明的是,本申请提供的多核异构芯片的DMA控制器故障的检测方法,应用于多核异构芯片。
对于多核异构芯片来说,其上包含多种硬件资源,硬件资源包括计算类型的硬件资源,例如CPU核心、GPU核心等,存储类型的硬件资源,比如内存等,控制类型的硬件资源,比如电源控制器、时钟控制器、中断控制器等,通信类型的硬件资源,比如总线等。多种硬件资源被配置为多个硬件集合,每个硬件集合被配置为运行不同的操作系统,每个硬件集合不响应其他硬件集合的数据访问请求,也不响应除配置在本硬件集合上的操作系统之外,其他操作系统的调度。多核异构芯片上还设置有支持不同硬件集合之间通信的硬件资源,即核间通信通道,该硬件资源被配置为支持不同硬件集合中硬件的数据传输或者读取请求,以支持在不同操作系统之间建立数据通信链路,实现跨硬件资源的数据传输,以及跨操作系统的信息通信。本申请中多核异构芯片的DMA控制器故障的检测方法即基于核间通信通道实现的。
图1为根据本申请实施例的多核异构芯片的结构框图。如图1所示,多核异构芯片100被配置有第一应用域110和第二应用域120。其中,第一应用域110被配置有注入模块111,第二应用域120被配置有检查模块121。此外,多核异构芯片100还包括DMA控制器130。
图2为根据本申请另一实施例的多核异构芯片的结构框图。如图2所示,第一应用域和第二应用域中分别被配置有相应的CPU、第一外设和第二外设。其中,DMA控制器可用于在系统内存和外设之间直接进行数据搬运。CPU可用于对DMA控制器和系统内存进行配置。第一应用域和第二应用域的CPU中分别被配置有注入模块和检查模块(图中未示出),不同应用域的CPU之间通过核间通信进行通讯。
图3为根据本申请实施例的多核异构芯片的DMA控制器故障的检测方法流程图,下面将参考图3,对本申请的多核异构芯片的DMA控制器故障的检测方法进行详细描述。
在步骤201,第一应用域的注入模块响应于接收到检测启动信号,读取检测启动信号对应的一个注入参数组,计算出基于注入参数组的第一校验码,将注入参数组和第一校验码发送至多核异构芯片的DMA控制器。
具体地,在需要对多核异构芯片进行DMA控制器故障检测时,可以向第一应用域的注入模块发送检测启动信号。注入模块接收到检测启动信号后,读取检测启动信号对应的一个注入参数组,对于该注入参数组,计算出一个第一校验码,将该注入参数组和第一校验码可以通过APB总线发送至多核异构芯片的DMA控制器。
需要说明的是,本申请中的检测启动信号,可以包括待检测数据的至少一个注入参数组的信息(如将内存地址从0x40000开始1KB的数据,搬运至内存地址从0x50000开始的1KB内存空间内)。
本申请中的注入参数组,可以是特定功能性的数据结构。本申请实施例中,注入参数组可以包括数据的源地址参数(如0x40000)、目的地址参数(如0x50000)和数据量参数(1KB)。
在步骤202,DMA控制器基于接收到的注入参数组,计算出第二校验码,并基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运。
在具体示例中,第一校验码和第二校验码可以采用相同的算法,比如CRC32算法。可以理解的是,也可以采用其他适用于计算校验码进行比对的算法,本申请对此不作具体限制。
本申请实施例中,参考图4所示,该方法还包括:
步骤301,响应于第二校验码与第一校验码相同,DMA控制器对注入参数组对应的数据进行数据搬运。
步骤302,数据搬运完成后,DMA控制器将第一中断信号上报至注入模块。
步骤303,响应于接收到第一中断信号,注入模块计算第三校验码。
也就是说,若注入模块计算的第一校验码和DMA控制器计算的第二校验码相同,则DMA控制器进行该注入参数组对应的数据搬运。而后,DMA控制器将第一中断信号上报至注入模块,注入模块接收到第一中断信号后,可以基于该搬运数据的源地址计算相应数据量得到第三校验码,以供后续对DMA控制器在相应数据搬运执行过程的校验比对。
进一步地,该方法还包括:
步骤304,响应于第二校验码与第一校验码不同,DMA控制器结束对注入参数组的检测,并将第二中断信号上报至注入模块。
步骤305,响应于接收到第二中断信号,注入模块读取下一个注入参数组,以对下一个注入参数组进行检测,直至读取检测启动信号对应的全部注入参数组。
也就是说,DMA控制器对注入参数组进行初步校验比对,若该初步校验比对未通过,则继续从注入参数池中以预设顺序读取下一个注入参数组,直至读取到合法参数组(能够通过该初步校验比对的参数组),或直至注入参数池为空。
在步骤203,注入模块基于数据搬运的源地址处数据计算出第三校验码,并通过核间通信发送至第二应用域的检查模块。
在步骤204,检查模块基于数据搬运的目的地址处数据计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器是否存在故障。
也就是说,在DMA控制器通过初步校验比对,并进行相应的数据搬运后,还要对该数据搬运的执行过程进行二次校验比对。即,对于该次数据搬运,注入模块基于源地址处的数据,计算出第三校验码,检查模块基于目的地址处的数据,计算出第四校验码,并对第三校验码和第四校验码进行比对。以基于该二次校验比对的结果,确定DMA控制器是否存在故障。
在具体示例中,第三校验码和第四校验码可以采用相同的算法,比如CRC32算法。可以理解的是,也可以采用其他适用于计算校验码进行比对的算法,本申请对此不作具体限制。
本申请实施例中,参考图5所示,该方法还包括:
步骤401,响应于第四校验码与第三校验码相同,检查模块通过核间通信向注入模块发送参数检测通过指令。
步骤402,响应于接收到参数检测通过指令,注入模块读取下一个注入参数组,以对下一个注入参数组进行检测,直至读取检测启动信号对应的全部注入参数组。
进一步地,该方法还包括:
步骤403,响应于发送出全部注入参数组对应的参数检测通过指令,检查模块确定DMA控制器故障检测合格。
也就是说,若该注入参数组通过二次校验比对,则对下一组数据的注入参数组进行循环检测,直至按预设顺序检测该检测启动信号对应的全部注入参数组。并且,若全部注入参数组对应的数据搬运都通过相应的二次校验比对,则确定该DMA控制器故障检测合格。
本申请实施例中,该方法还包括:
步骤404,响应于第四校验码与第三校验码不同,检查模块确定DMA控制器存在故障,并输出检测故障结果信息。
即,若该注入参数组对应的参数搬运未通过二次校验比对,则输出该DMA控制器的故障结果信息,接触故障后才进行流片生产。
根据本申请实施例的多核异构芯片的DMA控制器故障的检测方法,通过第一应用域的注入模块计算出基于注入参数组的第一校验码,将注入参数组和第一校验码发送至多核异构芯片的DMA控制器;并通过DMA控制器对注入参数组计算出第二校验码,基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运;以及通过注入模块基于数据搬运的源地址处数据计算出第三校验码,通过核间通信发送至第二应用域的检查模块;并通过检查模块基于数据搬运的目的地址处数据计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器是否存在故障。由此,能够实现在芯片设计阶段对DMA控制器故障进行前置检测,降低芯片流片后的DMA控制器故障率,这不仅有助于降低成本,确保项目进度,而且能够提高DMA控制器运行和检测的可靠性。此外,通过在多核异构芯片框架中的独立模块分开部署,还有利于提高故障检测的独立性和安全性。
本申请实施例中,该方法还包括:注入模块采用第一算法计算出第一校验码,DMA控制器采用第一算法计算出第二校验码;注入模块采用第二算法计算出第三校验码,检查模块采用第二算法计算出第四校验码。进一步地,第一算法和第二算法中的至少一个为循环冗余校验CRC算法,比如为CRC32算法。
本申请实施例中,该方法还包括:在发送检测启动信号前,检测启动信号的全部注入参数组,被预先配置至注入参数池,以供注入模块读取;并且,与全部注入参数组一一对应的全部检查参数组,被预先配置至检查参数池,以供检查模块读取。
进一步地,注入模块计算出第三校验码后,该方法还包括:注入模块将数据的参数位置信息通过核间通信发送至检查模块;检查模块基于参数位置信息,确定检查参数池中与注入参数组对应的检查参数组。
也就是说,可以对参数组进行预配置。具体地,可以基于参数位置信息(具体可以是参数位置识别码,如1、2、……),确定全部注入参数组的次序,并形成与之一一对应的全部检查参数组。将配置有参数位置信息的全部注入参数组,配置至注入参数池,并将配置有参数位置信息的全部检查参数组,配置至检查参数池。而后,注入模块可通过向检查模块核间通信当前数据搬运的参数位置信息,使检查模块基于参数位置信息确定相应的检查参数组,用以计算出第四校验码,实现二次校验比对。
本申请实施例中,该方法还包括:注入模块计算出第一校验码后,通过APB(Advanced Peripheral Bus,外围总线)向DMA控制器发送DMA启动指令;注入模块计算出第三校验码后,通过核间通信向检查模块发送检查启动指令。即,注入模块计算出第一校验码后,可通过APB总线控制DMA控制器启动;注入模块计算出第三校验码后,可通过核间通信控制检查模块启动。
本申请实施例中,多核异构芯片的随机存取存储器,可以包括:检测启动信号对应的全部注入参数组涉及的配置地址空间、全部注入参数组未涉及的其他地址空间。该方法还可以包括:获取该DMA控制器的故障检测前其他地址空间中的第一数据信息,并获取故障检测后其他地址空间中的第二数据信息,将第二数据信息与第一数据信息进行比对。若比对一致,则确定故障检测未影响其他地址空间的数据;若比对不一致,则确定故障检测改变其他地址空间的数据,此时输出该DMA控制器的故障结果信息,并在解除故障后才进行流片生产。
下面将通过一具体实施例对本申请作进一步解释和说明。
在该具体实施例中,在注入参数池中预配置多个注入参数组,并在检查参数池中预配置与多个注入参数组一一对应的多个检查参数组。其中,第一组注入参数组和第一组检查参数组均为(0x40000,0x50000,1KB),0x40000为该参数组对应的待搬运数据的源地址,0x50000为相应的目的地址,1KB为待搬运数据的数据量。
响应于接收到检测启动信号,注入模块读取该第一组注入参数组(0x40000,0x50000,1KB),通过CRC32算法以第一组注入参数组作为源数据、以CRC32初始值a(a可为任意值,比如0)进行计算,得到第一校验码。注入模块将第一组注入参数组通过APB总线配置至DMA控制器,并将第一校验码写入DMA控制器。而后,注入模块通过APB总线启动DMA控制器。
DMA控制器通过CRC32算法以第一组注入参数组作为数据源、以CRC32初始值a(即该CRC32初始值与计算第一校验码的CRC32初始值a大小相等)进行计算,得到第二校验码,并与第一校验码进行比对。
若第二校验码与第一校验码相同,DMA控制器执行从源地址0x40000至目的地址0x50000的1KB数据搬运,并在搬运结束后将第一中断信号上报至注入模块。若第二校验码与第一校验码不同,DMA控制器直接结束,并将第二中断信号上报给注入模块。
注入模块接收到DMA控制器发送的第一中断信号后,通过CRC32算法以源地址0x40000开始的1KB数据作为源数据、以CRC32初始值b(b可为任意值,比如0)进行计算,得到第三校验码。通过Mailbox(核间通信)将第三校验码和第一组注入参数组的位置参数信息(1)发送给检查模块。
注入模块接收到DMA控制器发送的第二中断信号后,注入模块读取下一个注入参数组,以对下一个注入参数组进行检测,直至读取检测启动信号对应的全部注入参数组。
检查模块通过Mailbox收到第三校验码和位置参数信息(1)后,从检查参数池中取出第一组检查参数组(0x40000,0x50000,1KB),通过CRC32算法以目的地址0x50000开始的1KB数据作为源数据、以CRC32初始值b(即该CRC32初始值与计算第三校验码的CRC32初始值b大小相等)进行计算,得到第四校验码,并与第三校验码进行比对。
若第四校验码与第三校验码相同,则确定DMA控制器执行当前第一组注入参数组正常。此时,检查模块记录该参数组通过检测,并通过Mailbox通知注入模块继续执行下一个参数组。直到执行完成该检测启动信号对应的全部参数组,检查模块输出所有参数的执行结果,通过检查结果判断DMA控制器是否符合设计预期。若符合,则可以流片生产;若不符合,则待故障解除后才进行后续流片生产,降低了流片生产后的DMA控制器故障率。
相反地,若第四校验码与第三校验码不同,则确定DMA控制器存在故障,此时终止故障检测,输出检测故障结果信息,并控制不进行流片生产,由此有效降低了流片生产后的DMA控制器故障率,不仅有助于降低成本,确保项目进度,而且能够提高DMA控制器运行和检测的可靠性。
综上所述,根据本申请实施例的多核异构芯片的DMA控制器故障的检测方法,通过第一应用域的注入模块计算出基于注入参数组的第一校验码,将注入参数组和第一校验码发送至多核异构芯片的DMA控制器;并通过DMA控制器对注入参数组计算出第二校验码,基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运;以及通过注入模块基于数据搬运的源地址处数据计算出第三校验码,通过核间通信发送至第二应用域的检查模块;并通过检查模块基于数据搬运的目的地址处数据计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器是否存在故障。由此,上述DMA控制器故障的检测方法的有益效果可体现在以下四个方面:
1、可于实际硬件上运行之前,在仿真环境中进行,能够实现在芯片设计阶段对DMA控制器故障进行前置检测,降低芯片流片后的DMA控制器故障率,从而能够提前发现和修复可能存在的故障,进而可节省时间和资源,避免在后期才发现问题需要进行修改所导致的研发成本增加。
2、通过系统且可调整的故障前置检测,能够全面化或个性化地验证DMA控制器的功能性,这有助于确保DMA控制器检测、运行的可靠性。
3、通过在多核异构芯片框架中的独立模块分开部署,还有利于提高故障检测的独立性和安全性。
4、可通过设置不同的算法、架构和操作策略,找到最佳的解决方案,有助于提高DMA控制器的效率和响应性。
图6为根据本申请实施例的多核异构芯片的DMA控制器故障的检测装置的结构框图。该检测装置,应用于多核异构芯片,多核异构芯片被配置有第一应用域和第二应用域。参考图6所示,多核异构芯片的DMA控制器53故障的检测装置50包括,注入模块51、检查模块52和DMA控制器53。
其中,注入模块51,被配置于第一应用域中,响应于接收到检测启动信号,读取检测启动信号对应的一个注入参数组,计算出基于注入参数组的第一校验码,将注入参数组和第一校验码发送至多核异构芯片的DMA控制器53。其中,注入参数组包括对应数据的源地址参数、目的地址参数和数据量参数。
DMA控制器53,被配置为基于接收到的注入参数组,计算出第二校验码,并基于第一校验码和第二校验码的初步比对结果,确定是否对注入参数组对应的数据进行数据搬运。
注入模块51,还被配置为基于数据搬运的源地址处数据计算出第三校验码,并通过核间通信发送至检查模块52。
检查模块52,被配置于第二应用域中,基于数据搬运的目的地址处数据,计算出第四校验码,并基于第三校验码和第四校验码的二次比对结果,确定DMA控制器53是否存在故障。
本申请实施例中,注入模块51被配置为采用第一算法计算出第一校验码,DMA控制器53被配置为采用第一算法计算出第二校验码;
注入模块51被配置为采用第二算法计算出第三校验码,检查模块52被配置为采用第二算法计算出第四校验码。
进一步地,第一算法和/或第二算法被配置为循环冗余校验CRC算法。
本申请实施例中,DMA控制器53被配置为:响应于第二校验码与第一校验码相同,对注入参数组对应的数据进行数据搬运;数据搬运完成后,将第一中断信号上报至注入模块51。且,注入模块51被配置为:响应于接收到第一中断信号,计算第三校验码。
进一步地,DMA控制器53被配置为:响应于第二校验码与第一校验码不同,结束对注入参数组的检测,并将第二中断信号上报至注入模块51。且,注入模块51被配置为:响应于接收到第二中断信号,读取下一个注入参数组,以对下一个注入参数组进行检测,直至读取检测启动信号对应的全部注入参数组。
本申请实施例中,检查模块52被配置为:响应于第四校验码与第三校验码相同,通过核间通信向注入模块51发送参数检测通过指令。且,注入模块51被配置为:响应于接收到参数检测通过指令,读取下一个注入参数组,以对下一个注入参数组进行检测,直至读取检测启动信号对应的全部注入参数组。
进一步地,检查模块52被配置为:响应于发送出全部注入参数组对应的参数检测通过指令,确定DMA控制器53故障检测合格。
本申请实施例中,检查模块52被配置为:响应于第四校验码与第三校验码不同,确定DMA控制器53存在故障,并输出检测故障结果信息。
本申请实施例中,检测装置50还包括预配置模块(图中未示出)。预配置模块被配置为:在发送检测启动信号前,将检测启动信号的全部注入参数组,预先配置至注入参数池,以供注入模块51读取;将与全部注入参数组一一对应的全部检查参数组,预先配置至检查参数池,以供检查模块52读取。
进一步地,注入模块51被配置为:计算出第三校验码后,将数据的参数位置信息通过核间通信发送至检查模块52。且,检查模块52被配置为:基于参数位置信息,确定检查参数池中与注入参数组对应的检查参数组。
本申请实施例中,注入模块51被配置为:计算出第一校验码后,通过APB总线向DMA控制器53发送DMA启动指令。注入模块51还被配置为:计算出第三校验码后,通过核间通信向检查模块52发送检查启动指令。
需要说明的是,上述实施例中对多核异构芯片的DMA控制器故障的检测方法的解释说明也适用于上述实施例中的多核异构芯片的DMA控制器故障的检测装置,此处不再赘述。
图7为根据本申请实施例的多核异构芯片的DMA控制器故障的检测装置的结构框图。参考图7所示,注入参数池中的三组注入参数组,与检查参数池中的三个检查参数组一一对应。注入模块包括用于检查初始化环境的初始化确认单元、用于从注入参数池中读取注入参数组的参数读取单元和校验码计算单元。注入模块可通过AXI(AdvancedeXtensible Interface,先进可扩展互连)总线从注入参数池读取注入参数组,并通过APB总线与DMA控制器通信。DMA控制器包括CRC校验单元,可通过AHB(Advanced HighPerformance Bus,先进高性能总线)与其他控制器通信,并通过AXI总线分别与片外RAM(Random Access Memory,随机存取存储器)和片内RAM通信。检查模块包括用于检查初始化环境的初始化确认单元、用于从检查参数池中读取检查参数组的参数读取单元和校验码计算单元。检查模块可通过AXI总线从检查参数池读取检查参数组,并可通过APB总线分别与DMA控制器和其他控制器通信,通过AXI总线与片外RAM通信,通过AHB总线与片内RAM通信。
本申请一个实施例中,提供了一种多核异构芯片。参考图1所示,多核异构芯片100被配置有上述实施例中的多核异构芯片的DMA控制器故障的检测装置,即注入模块111、检查模块121和DMA控制器130。
本申请实施例中,多核异构芯片100可以是车用芯片。
图8为根据本申请实施例的电子设备的结构框图。参考图8所示,电子设备60包括存储器61和处理器62,存储器61中存储有计算机指令,处理器62被设置为运行指令以执行上述实施例中的多核异构芯片的DMA控制器故障的检测方法。
本申请实施例中,电子设备60可以是车机。
应该理解的是,虽然说明书附图的流程图中的各个步骤按照箭头的指示依次显示,但这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确地说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其他的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要指出的是,上述所提到的具体数值只为了作为示例详细说明本申请的实施,而不应理解为对本申请的限制。在其他例子或实施方式或实施例中,可根据本申请来选择其他数值,在此不作具体限定。
本领域普通技术人员可以理解:以上仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种多核异构芯片的DMA控制器故障的检测方法,其特征在于,所述方法应用于多核异构芯片,所述多核异构芯片被配置有第一应用域和第二应用域,所述第一应用域和所述第二应用域中分别被配置有相应的CPU,不同应用域的CPU之间通过核间通信进行通讯,所述方法包括,
所述第一应用域的注入模块响应于接收到检测启动信号,读取所述检测启动信号对应的一个注入参数组,计算出基于所述注入参数组的第一校验码,将所述注入参数组和所述第一校验码发送至所述多核异构芯片的DMA控制器;其中,所述注入参数组包括对应数据的源地址参数、目的地址参数和数据量参数;
所述DMA控制器基于接收到的所述注入参数组,计算出第二校验码,并基于所述第一校验码和所述第二校验码的初步比对结果,确定是否对所述注入参数组对应的数据进行数据搬运;
所述注入模块基于所述数据搬运的源地址处数据,计算出第三校验码,并通过核间通信发送至所述第二应用域的检查模块;
所述检查模块基于所述数据搬运的目的地址处数据,计算出第四校验码,并基于所述第三校验码和所述第四校验码的二次比对结果,确定所述DMA控制器是否存在故障。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括,
所述注入模块采用第一算法计算出所述第一校验码,所述DMA控制器采用所述第一算法计算出所述第二校验码;
所述注入模块采用第二算法计算出所述第三校验码,所述检查模块采用所述第二算法计算出所述第四校验码;
其中,所述第一算法和/或所述第二算法为循环冗余校验CRC算法。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括,
响应于所述第二校验码与所述第一校验码相同,所述DMA控制器对所述注入参数组对应的数据进行数据搬运;
所述数据搬运完成后,所述DMA控制器将第一中断信号上报至所述注入模块;
响应于接收到所述第一中断信号,所述注入模块计算所述第三校验码;
响应于所述第二校验码与所述第一校验码不同,所述DMA控制器结束对所述注入参数组的检测,并将第二中断信号上报至所述注入模块;
响应于接收到所述第二中断信号,所述注入模块读取下一个注入参数组,以对所述下一个注入参数组进行检测,直至读取所述检测启动信号对应的全部注入参数组。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括,
响应于所述第四校验码与所述第三校验码相同,所述检查模块通过核间通信向所述注入模块发送参数检测通过指令;
响应于接收到所述参数检测通过指令,所述注入模块读取下一个注入参数组,以对所述下一个注入参数组进行检测,直至读取所述检测启动信号对应的全部注入参数组;
响应于发送出所述全部注入参数组对应的参数检测通过指令,所述检查模块确定所述DMA控制器故障检测合格;
响应于所述第四校验码与所述第三校验码不同,所述检查模块确定所述DMA控制器存在故障,并输出检测故障结果信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括,
在发送所述检测启动信号前,所述检测启动信号的全部注入参数组,被预先配置至注入参数池,以供所述注入模块读取;且,
与所述全部注入参数组一一对应的全部检查参数组,被预先配置至检查参数池,以供所述检查模块读取。
6.根据权利要求5所述的方法,其特征在于,所述注入模块计算出所述第三校验码后,所述方法还包括,
所述注入模块将所述数据的参数位置信息通过核间通信发送至所述检查模块;
所述检查模块基于所述参数位置信息,确定所述检查参数池中与所述注入参数组对应的检查参数组。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括,
所述注入模块计算出所述第一校验码后,通过APB总线向所述DMA控制器发送DMA启动指令;
所述注入模块计算出所述第三校验码后,通过核间通信向所述检查模块发送检查启动指令。
8.一种多核异构芯片的DMA控制器故障的检测装置,其特征在于,所述装置应用于多核异构芯片,所述多核异构芯片被配置有第一应用域和第二应用域,所述第一应用域和所述第二应用域中分别被配置有相应的CPU,不同应用域的CPU之间通过核间通信进行通讯,所述装置包括,
注入模块,被配置于所述第一应用域中,响应于接收到检测启动信号,读取所述检测启动信号对应的一个注入参数组,计算出基于所述注入参数组的第一校验码,将所述注入参数组和所述第一校验码发送至所述多核异构芯片的DMA控制器;其中,所述注入参数组包括对应数据的源地址参数、目的地址参数和数据量参数;
DMA控制器,被配置为基于接收到的所述注入参数组,计算出第二校验码,并基于所述第一校验码和所述第二校验码的初步比对结果,确定是否对所述注入参数组对应的数据进行数据搬运;
所述注入模块,还用于基于所述数据搬运的源地址处数据,计算出第三校验码,并通过核间通信发送至检查模块;
检查模块,被配置于所述第二应用域中,基于所述数据搬运的目的地址处数据,计算出第四校验码,并基于所述第三校验码和所述第四校验码的二次比对结果,确定所述DMA控制器是否存在故障。
9.一种多核异构芯片,其特征在于,所述多核异构芯片被配置有如权利要求8所述的多核异构芯片的DMA控制器故障的检测装置。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机指令,所述处理器被设置为运行所述指令以执行权利要求1-7中任一项所述的多核异构芯片的DMA控制器故障的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232523.2A CN117806894B (zh) | 2024-03-01 | 2024-03-01 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410232523.2A CN117806894B (zh) | 2024-03-01 | 2024-03-01 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117806894A CN117806894A (zh) | 2024-04-02 |
CN117806894B true CN117806894B (zh) | 2024-05-28 |
Family
ID=90421972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410232523.2A Active CN117806894B (zh) | 2024-03-01 | 2024-03-01 | 多核异构芯片及其dma控制器故障的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117806894B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588112A (en) * | 1992-12-30 | 1996-12-24 | Digital Equipment Corporation | DMA controller for memory scrubbing |
JP2001229120A (ja) * | 2000-02-18 | 2001-08-24 | Sharp Corp | チェーン式dmaの処理誤り検出方法及びdmaコントローラ |
CN103034599A (zh) * | 2012-12-12 | 2013-04-10 | 深圳国微技术有限公司 | 安全dma控制器、soc系统及其数据搬运方法 |
CN103186492A (zh) * | 2011-12-28 | 2013-07-03 | 联芯科技有限公司 | 基于axi总线的数据一致性保护方法及其系统 |
CN106803036A (zh) * | 2017-02-16 | 2017-06-06 | 深圳前海生生科技有限公司 | 系统运行中数据流的安全检测和容错方法 |
CN112149125A (zh) * | 2019-06-28 | 2020-12-29 | 英特尔公司 | 使用与高速缓存行有关的存储器所有权位防止信任域访问 |
CN114328316A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | Dma控制器、soc系统及基于dma控制器的数据搬运方法 |
CN116467099A (zh) * | 2023-05-24 | 2023-07-21 | 南京芯驰半导体科技有限公司 | 基于核间通讯的信息处理方法、装置、芯片及电子设备 |
US11853179B1 (en) * | 2018-12-28 | 2023-12-26 | Teledyne Lecroy, Inc. | Detection of a DMA (direct memory access) memory address violation when testing PCIE devices |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866971B (zh) * | 2012-08-28 | 2015-11-25 | 华为技术有限公司 | 传输数据的装置、系统及方法 |
-
2024
- 2024-03-01 CN CN202410232523.2A patent/CN117806894B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588112A (en) * | 1992-12-30 | 1996-12-24 | Digital Equipment Corporation | DMA controller for memory scrubbing |
JP2001229120A (ja) * | 2000-02-18 | 2001-08-24 | Sharp Corp | チェーン式dmaの処理誤り検出方法及びdmaコントローラ |
CN103186492A (zh) * | 2011-12-28 | 2013-07-03 | 联芯科技有限公司 | 基于axi总线的数据一致性保护方法及其系统 |
CN103034599A (zh) * | 2012-12-12 | 2013-04-10 | 深圳国微技术有限公司 | 安全dma控制器、soc系统及其数据搬运方法 |
CN106803036A (zh) * | 2017-02-16 | 2017-06-06 | 深圳前海生生科技有限公司 | 系统运行中数据流的安全检测和容错方法 |
US11853179B1 (en) * | 2018-12-28 | 2023-12-26 | Teledyne Lecroy, Inc. | Detection of a DMA (direct memory access) memory address violation when testing PCIE devices |
CN112149125A (zh) * | 2019-06-28 | 2020-12-29 | 英特尔公司 | 使用与高速缓存行有关的存储器所有权位防止信任域访问 |
CN114328316A (zh) * | 2021-11-22 | 2022-04-12 | 北京智芯微电子科技有限公司 | Dma控制器、soc系统及基于dma控制器的数据搬运方法 |
CN116467099A (zh) * | 2023-05-24 | 2023-07-21 | 南京芯驰半导体科技有限公司 | 基于核间通讯的信息处理方法、装置、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117806894A (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210011451A (ko) | 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링 | |
CN108804109B (zh) | 基于多路功能等价模块冗余仲裁的工业部署和控制方法 | |
CN114817105A (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
US20240295980A1 (en) | Memory system with accessible storage region to gateway | |
CN117806894B (zh) | 多核异构芯片及其dma控制器故障的检测方法和装置 | |
CN104346306B (zh) | 高完整性dma操作的系统和方法 | |
EP2643576A1 (en) | Method for enabling calibration during start-up of a micro controller unit and integrated circuit therefor | |
CN114880266B (zh) | 故障处理的方法、装置、计算机设备和存储介质 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
KR20220074993A (ko) | 콘트롤러 | |
KR101300443B1 (ko) | 바이패스 경로를 이용하여 신뢰성 검증을 할 수 있는 플래시 메모리 저장 장치, 및 이를 이용한 플래시 메모리 저장 장치의 신뢰성 검증 시스템 및 방법 | |
CN112199230B (zh) | 一种支持多核系统异常处理的存储控制器 | |
CN116028404A (zh) | 一种dma配置方法和配置电路 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN113672260A (zh) | 一种处理器cpu初始化方法 | |
IT202100007475A1 (it) | Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento | |
JP2010146117A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
CN117032579B (zh) | 一种从机启动方法、装置及存储介质 | |
JP2012048277A (ja) | 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体 | |
US11698833B1 (en) | Programmable signal aggregator | |
CN116594953B (zh) | 一种基于pcie互联的多核异构芯片、启动方法和系统 | |
TW201327139A (zh) | 節點置換處理方法與使用其之伺服器系統 | |
US12007936B2 (en) | Power efficient memory value updates for arm architectures | |
CN109992510B (zh) | 一种远程调试装置及方法 | |
JP2013093076A (ja) | 半導体メモリ装置及びそのテスト方法 |
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 |