CN107357666A - 一种基于硬件保护的多核并行***处理方法 - Google Patents

一种基于硬件保护的多核并行***处理方法 Download PDF

Info

Publication number
CN107357666A
CN107357666A CN201710495308.1A CN201710495308A CN107357666A CN 107357666 A CN107357666 A CN 107357666A CN 201710495308 A CN201710495308 A CN 201710495308A CN 107357666 A CN107357666 A CN 107357666A
Authority
CN
China
Prior art keywords
core
operating system
read
write
program
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
Application number
CN201710495308.1A
Other languages
English (en)
Other versions
CN107357666B (zh
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.)
Xian Microelectronics Technology Institute
Original Assignee
Xian Microelectronics Technology Institute
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 Xian Microelectronics Technology Institute filed Critical Xian Microelectronics Technology Institute
Priority to CN201710495308.1A priority Critical patent/CN107357666B/zh
Publication of CN107357666A publication Critical patent/CN107357666A/zh
Application granted granted Critical
Publication of CN107357666B publication Critical patent/CN107357666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于硬件保护的多核并行***处理方法,采用基于KeyStone架构的多核DSP处理器,将多核DSP处理器划分为主核和从核,各核运行嵌入式实时操作***,主核上运行主控核操作***,从核上运行加速核操作***,主控核操作***负责控制,加速核操作***负责计算,主控核操作***和加速核操作***共同完成高可靠功能的初始化。该方法通过硬件异常事件检测及时发现嵌入式软件运行时错误,从而防止***执行错误的动作,提升了嵌入式多核并行***的可靠性;同时提供了日志记录功能,并能够在异常发生时搜集执行环境的信息,有助于事后分析和排查错误;通过后台任务提供了异常恢复功能,能够在异常发生后维持***继续运行而不会失控。

Description

一种基于硬件保护的多核并行***处理方法
技术领域
本发明属于多核嵌入式***的可靠性设计技术领域,具体涉及一种基于硬件保护的多核并行***处理方法。
背景技术
随着并行计算日益密集的应用需求,嵌入式领域处理器正在从单核向多核处理器迅速发展,多核并行计算将成为嵌入式领域的一个重要发展方向。随着多核并行***的应用越来越广泛,多核并行***的功能日益完善和复杂,如何为多核并行***提供可靠性功能的设计方法非常迫切。
多核并行***中核间经常交互,也就意味着访问主体(如DSP核)可能会访问不该访问的空间,而访问分为读、写、执行三种类型,如果访问主体或地址不正确,则会产生非法的读、写、执行行为,最终导致***不稳定甚至崩溃。基于TI KeyStone架构的多核DSP具有硬件保护机制,可以利用该机制设定相应的访问权限,从而提升整个多核并行***的可靠性。
目前尚无基于TI KeyStone架构硬件保护机制实现多核并行***可靠性的设计方法,本发明基于TI KeyStone的硬件保护机制,提出了一种高可靠多核并行***的设计方法,为整套多核并行***提供可靠性保障。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于硬件保护的多核并行***处理方法,使得多核并行***在运行时能够具有较强的可靠性,同时当异常发生时,能够及时记录异常信息以便于事后分析,并唤醒后台任务接管***以维持***的运行而不失控。
本发明采用以下技术方案:
一种基于硬件保护的多核并行***处理方法,采用基于KeyStone架构的多核DSP处理器,将所述多核DSP处理器划分为主核和从核,主核和从核均运行嵌入式实时操作***,主核上运行主控核操作***,从核上运行加速核操作***,主控核操作***负责控制,加速核操作***负责计算,主控核操作***初始化核外共享设备和核内独占设备,加速核操作***初始化核内独占设备,主控核操作***和加速核操作***共同完成高可靠功能的初始化。
优选的,包括以下步骤:
S1、在主控核操作***中编写日志任务;
S2、在各核操作***中编写高优先级后台任务;
S3、在各核操作***中编写异常服务程序;
S4、编写周期定时器中断服务程序,在中断服务程序中对二级缓存L2进行刷新,使能多核共享内存的自动刷新功能,实现对多核共享内存比特位的检错和纠错;
S5、确定需要捕捉的异常事件号,并将事件号关联到不可屏蔽中断,使能异常检查,完成异常检查的配置;
S6、编写从核上的计算应用任务,并将从核计算应用任务的运行时栈部署到各核对应的多核共享内存中;
S7、编译链接后确定各个程序段和区域的长度范围、访问主体和读-写-执行属性;
S8、将具有相同访问主体和读-写-执行属性的程序段和区域通过链接脚本文件连续排列,不同访问主体和读-写-执行属性的程序段和区域之间按内存保护粒度对齐排列,各个程序段和区域加载到二级缓存L2中;
S9、在操作***初始化中按上述程序段和区域长度范围配置好对应的访问权限,配置各级内存的纠错检错功能。
优选的,步骤S1中,所述日志任务周期地读取各个核的日志缓存区,并根据配置将日志缓存区中的日志消息通过TCP/IP协议传输到PC端日志解析服务器或存储到目标板上的Flash中。
优选的,步骤S2中,所述高优先级后台任务的优先级高于所有应用任务以确保其比所有应用任务早运行,运行后挂起该后台任务,直到异常服务程序中将其唤醒并接管***,等待来自外界的指令或者重构触发异常的计算应用任务。
优选的,步骤S6中,将多核共享内存空间按照处理器核数进行平均分配,并配置主核和从核对应共享内存的访问权限。
优选的,在主核和从核操作***初始化过程中配置多核共享内存中各核对应区域的硬件保护权限:
确定各核对应的多核共享内存的地址范围;
通过配置多核共享内存的内存保护寄存器,设置主核和从核对应的多核共享内存起始地址、长度范围、访问主体和读-写-执行权限。
优选的,步骤S7中,对操作***和应用进行编译链接,通过查看生成的可执行文件的ELF头信息确定各个程序段和区域的长度范围和读-写-执行属性。
优选的,步骤S8中,本核上的程序段和区域按读-写-执行属性包括:程序只读代码段、程序只读数据段、程序读写数据段、数据交互区和日志缓存区,所述程序只读代码段、程序只读数据段和程序读写数据段的访问主体限定为只允许本核访问,所述数据交互区的访问主体限定为允许其他核和主设备访问,用于多核并行***运行时计算数据的交互,所述日志缓存区的访问主体限定为允许主核读取和本核写入,用于主核上的日志任务能够从该区域读取各个核的日志信息,并写入Flash或通过TCP/IP协议传输。
优选的,所述程序只读代码段的属性为读-执行,由.text段构成;所述程序只读数据段的属性为只读,由.const、.rodata、.cinit等程序段构成;所述程序读写数据段的属性为读-写,由剩余的可读可写的程序段构成,所述数据交互区和日志缓存区的属性为读-写。
优选的,在主核和从核操作***初始化过程中配置二级缓存L2中各个属性程序段和区域的硬件保护权限,具体为:
确定主核和从核二级缓存L2中操作***加载完毕后的各个程序段和区域的地址范围;
通过配置主核和从核二级缓存L2的内存保护寄存器,设置每个程序段和区域起始地址、长度范围、访问主体和读-写-执行权限。
与现有技术相比,本发明至少具有以下有益效果:
本发明基于硬件保护的多核并行***处理方法,采用基于KeyStone架构的多核DSP处理器,将所述多核DSP处理器划分为主核和从核,各核运行嵌入式实时操作***,主核上运行主控核操作***,从核上运行加速核操作***,主控核操作***负责控制,加速核操作***负责计算,主控核操作***初始化核外共享设备和核内独占设备,加速核操作***初始化核内独占设备,主控核操作***和加速核操作***共同完成高可靠功能的初始化。在KeyStone架构下,各级内存均有相应的访问控制模块以实现对特定地址空间的保护,利用该硬件保护机制,相比于传统的软件保护方法,本发明为基于多核DSP的多核并行***提供了一种软硬结合的可靠性的设计方法,能够有效防止***运行时发生的非法访问。
进一步的,先在主控核操作***中编写日志任务,主控核上的日志任务能够读取各个核缓存的日志信息,并写入Flash或通过TCP/IP协议传输,以便于使用者分析***状态;然后在各核操作***中编写高优先级后台任务,为多核并行***提供了异常恢复功能,能够在异常发生后维持***继续运行而不会失控;然后在各核操作***中编写异常服务程序,能够在异常发生时搜集执行环境的信息,有助于事后故障分析;然后编写周期定时器中断服务程序,在中断服务程序中对L2进行刷新,使能多核共享内存的自动刷新功能,实现对多核共享内存比特位的检错和纠错;然后确定需要捕捉的异常事件号,并将事件号关联到不可屏蔽中断,使能异常检查,完成异常检查的配置;然后编写从核上的计算应用任务,并将从核计算应用任务的运行时栈部署到各核对应的多核共享内存中;然后确定各个程序段的长度和属性;然后将具有相同属性的程序段通过链接脚本文件连续排列,并将不同访问主体和读-写-执行属性的程序段和区域之间按内存保护粒度对齐排列,并将各个程序段和区域加载到二级缓存L2中;最后在操作***初始化中按上述程序段和区域长度范围配置好对应的访问权限,配置各级内存的纠错检错功能,将L1级核内存储空间作为***缓存,用于提升***的运行效率,***中任何主设备对L1地址区域没有任何访问权限。
进一步的,为了确保异常发生后该后台任务能够接管***,必须使得异常服务程序运行结束后最高优先级就绪任务即为该后台任务,否则操作***会调度其他高优先级的应用任务,使应用任务在***异常状态下继续运行,最终导致***的崩溃。
进一步的,将多核共享内存按DSP核数平均分配给各核,并将计算任务的运行时栈空间部署在所划分的共享内存分片中,而不是部署在DSP核内的L2存储空间(L1此时已配成***缓存或叫做cache,是无法直接寻址的,每个核的L2空间,资源紧张,本发明将其空间腾空尽量用作图像、大规模矩阵等计算数据的缓存以及存放前述各程序段,以提高计算效率),计算核上的计算任务如果发生栈溢出问题,具体表现为读写行为越界,使用共享内存的富余空间,一方面可以减轻L2空间不足的压力,另一方面较大的运行时栈空间也可以间接降低计算任务运行时栈溢出的概率。
进一步的,由于L2以固定大小的内存保护粒度进行读-写-执行权限的配置,各个程序段大小不可能刚好是内存保护粒度的倍数,因此将具有相同读-写-执行属性的程序段连续排列在一起,可以最大程度地节约L2的存储空间,消除内部碎片。将程序只读代码段、程序只读数据段按其只读属性配置访问权限为只读,使得它们不能被非法改写,并且程序只读数据段不能被当作指令被执行,同时还可以防止被其他DSP核非法访问;程序读写数据段按其可读可写属性配置访问权限为可读可写,使得它们不能被当作指令被执行,同时还可以防止被其他DSP核非法访问;数据交互区按其可读可写属性配置访问权限为可读可写,使得它们不能被当作指令被执行,但可以允许被其他DSP核访问,以便于进行数据的交换;日志缓存区按其可读可写属性配置访问权限为可读可写,使得它们不能被当作指令被执行,同时仅允许主控核对其进行读访问。
进一步的,由于只有程序只读代码段可以允许执行,且核间不能互访程序段,从而有效地防止了PC指针跑飞后执行错误的指令,能基本消除PC指针跑飞造成的***崩溃等问题。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明实施例提供的构建高可靠多核并行***的方法流程图;
图2为本发明实施例提供的DSP核内L2空间的布局图;
图3为本发明实施例提供的多核并行***的可靠性功能架构图;
图4为本发明实施例提供的可靠性验证***和日志解析结果示例图。
具体实施方式
首先结合一款具体的具有TI KeyStone架构的多核DSP目标板来实施本发明所述方法。TI推出的KeyStone架构中提供了硬件保护相关的机制,通过该硬件保护机制可以实现对基于多核DSP的多核并行***构建高可靠功能。本发明采用TI公司生产的TMDSEVM6678L评估板,该板载有采用了KeyStone架构的单片8核DSP处理器TMS320C6678(简称C6678),每个DSP核运行频率最高可达1.25GHz,提供每秒高达40GMAC定点运算和20GFLOP浮点运算能力,同时该硬件平台具备强大的缓存架构和多样的外设集,特别适合构建多核并行***。每个DSP核均有32KB的一级内存/程序缓存L1P和一级内存/数据缓存L1D,以及512KB的二级内存/缓存L2。另外C6678还具有4MB的多核共享内存空间和512MB的DDR3内存。
同时C6678具有前述KeyStone架构所提供的所有硬件保护功能,在KeyStone架构下,各级内存均有相应的访问控制模块以实现对特定地址空间的保护,具体而言,对于核内的存储空间如L1、L2,被均分为固定大小的内存页,每一页均有一个MPPA(Memory PageProtection Attributes)寄存器用于配置该页的读-写-执行权限和相应的具备该权限的***主设备,从而实现内存保护;对于核外的存储空间如其他核的核内空间、多核共享内存和DDR3内存,则通过内存段的方式来配置每段地址空间的读-写-执行权限和相应的具备该权限的***主设备,通过核内的XMC(External Memory Controller)可以配置各个DSP核对核外存储空间不同地址段的读-写-执行权限,每个段的长度可以根据需求进行调整。在多核共享内存控制器(MSMC)中集成了2套MPAX(Memory Protection and AddressExtension)用于配置***中非DSP核主设备对多核共享内存和DDR3的读-写-执行权限,其中SES/MPAX用于配置非核主设备对DDR3的访问,SMS/MPAX用于配置非核主设备对共享内存的访问。另外***中的各级内存均具有检错纠错功能,可以在发生比特位翻转时进行检测并纠错。
对于L1D、L1P,C6678将32KB的空间分为16个大小为2KB的页,即L1D和L1P的内存保护粒度为2KB,每一页均有一个MPPA寄存器用于配置其读-写-执行权限和相应的可访问主设备的ID,从而实现内存保护;L2的内存保护原理与此类似,***将其512KB的空间分成了32个大小为16KB的页,即L2的内存保护粒度为16KB。对于XMC/MPAX,一共有16对内存保护用寄存器(XMPAXH和XMPAXL),每一对寄存器用于对一片连续的地址访问空间(地址空间大小大于4KB)进行权限设置,从而阻止DSP核对核外的数据空间的非法访问。多核共享内存控制器的SES/MPAX和SMS/MPAX的内存保护原理与此类似,分别有8对内存保护用寄存器(XMPAXH和XMPAXL)。另外L1P可以检测1bit的内存错误,L2和多核共享内存可以检测2bit错误并纠正1bit错误。
多核并行***上运行的操作***主要由底层的分布式的微内核、中间层并行计算框架以及上层复杂密集计算应用组成。将多核DSP划分为主核和从核,各核运行嵌入式实时操作***,主核上运行主控核操作***,从核上运行加速核操作***,主控核操作***负责控制,加速核操作***负责计算。
整套***由DSP核0作为主控核,DSP核1~7作为加速核。其中主控核和加速核的可执行镜像文件在加载完毕后将存放在各DSP核的L2空间中,L1P和L1D均作为Cache以加快***的执行速度。
主控核操作***初始化核外共享设备和核内独占设备,加速核操作***初始化核内独占设备,主控核操作***和加速核操作***共同完成高可靠功能的初始化。
各核的操作***在编译链接完成后将加载到核内L2存储空间,为了保证各个具有相同读-写-执行属性的程序段在加载后能够在地址空间上紧邻,且按照内存页对齐,可以通过编写链接脚本.cmd文件重新排列各个程序段。排列完成后***在L2中可以分成程序只读代码段、程序只读数据段、程序读写数据段、数据交互区、日志缓存区,其中程序只读代码段的属性为读-执行,主要由.text段构成;程序只读数据段的属性为只读,主要由.const、.rodata、.cinit等程序段构成;程序读写数据段的属性为读-写,由剩余的可读可写的程序段构成;上述三个段只能允许本核访问,其他核无权访问;数据交互区和日志缓存区的属性为读-写,其中数据交互区允许其他核和主设备访问,主要用于多核并行***运行时计算数据的交互;日志缓存区允许主核读取和本核写入,本核产生日志信息后写入该区域,主核上的日志任务能够从该区域读取各个核的日志信息,并写入Flash或通过TCP/IP协议传输。
在操作***初始化过程中配置L2中各个属性程序段和区域的硬件保护权限,具体包括:
1、确定操作***加载完毕后的各个程序段和区域的地址范围;
2、通过配置L2的MPPA寄存器,设置每个程序段和区域起始地址、长度范围和访问主体和读-写-执行权限。
通过上述配置,使得核间不能互访程序段,并且由于只有程序只读代码段可以允许执行,一旦非法访问程序只读代码段必触发异常并拒绝访问,从而有效地防止了PC指针跑飞后执行错误的指令,能基本消除PC指针跑飞造成的***崩溃等问题。
本发明中将L1级核内存储空间作为***缓存,用于提升***的运行效率,如果对该区域进行了直接访存,则会触发相应异常,所以也需要对L1的访问权限进行设置。配置L1的MPPA寄存器,将L1的全部地址区域的访问权限设置为0,表示***中任何主设备对L1地址区域没有任何访问权限。
加速核操作***上一般运行用户编写的计算应用,计算应用在运行结束前不会发生任务切换,由于计算应用是由用户编写的,且存在多核间交互的情况,故需要防止用户应用访问非法地址空间从而造成***崩溃,另外对于复杂的计算应用往往对运行时栈空间有较大的需求,故极有可能造成运行时栈溢出的风险。为了防止栈溢出后对与栈相邻的空间造成覆写,本发明将核外的多核共享内存平均划分,每个核都有一段专属的多核共享内存空间作为计算任务的运行时栈,通过配置前述XMC使得DSP核对其专属的多核共享内存空间具有读-写权限,通过配置SMS/MPAX使得其他非核主设备不能对该段空间进行任何访问,这样当栈发生溢出时,必然会访问相邻的非法地址从而触发硬件保护异常。
使能各级内存的检错纠错功能,当***中发生比特位翻转时,需要及时对其进行检错和纠错。但***只能对发生的1比特错误进行纠错,对于2比特及以上的错误只能检测,所以必须在发生1比特错误后、2比特错误之前完成纠错功能。内存的检错功能必须通过读的方式才能触发,故为了及时发现错误需要定期从内存中读出数据进行检测。通过在***中设置定时器中断,在每个周期结束后触发定时器中断,在中断服务程序中进行内存数据的读出和写回操作,实现及时纠错的目的。
由于硬件保护机制必须通过事件触发,所以必须确定要检测的异常事件,并对这些异常事件进行注册。具体包括解除***对需要捕获的事件的屏蔽、使能异常检测标志、使能异常服务程序对应的不可屏蔽中断。在任务运行时,***中的硬件保护异常发生后会上报对应的事件,如果事件没有被屏蔽且异常检查被使能,则该事件会触发程序发生跳转,进入到异常服务程序向量入口。在异常服务程序的入口,切换运行时栈空间,即从任务栈切换到***栈,然后继续进行后续的异常服务程序处理。在异常服务程序中需要记录下***当前的关键寄存器,具体包括状态寄存器、返回地址寄存器、时钟寄存器、栈指针寄存器、参数寄存器、返回值寄存器、异常标志位寄存器等,帮助定位触发异常的指令位置和排查触发异常的原因。异常服务程序完成异常发生时的执行环境的搜集后,写入日志缓存区,最后唤醒后台任务接管***。
在各核操作***初始化时都会创建一个高优先级的后台任务,在***启动后,由于优先级高于计算应用,故会先于计算应用运行。之后后台任务挂起,等待异常服务程序运行完毕后将其唤醒并接管***。后台任务可以选择重构任务,或者等待外界命令。
利用上述C6678硬件保护机制实现***的可靠性,如图1所示,具体实施步骤如下:
S1、在主控核操作***中编写日志任务,该任务周期地读取各个核的日志缓存区,并可根据配置将日志缓存区中的日志消息通过TCP/IP协议传输到PC端日志解析服务器或存储到目标板上的Flash中;
S2、在各核操作***中编写高优先级后台任务,其优先级高于所有应用任务以确保其比所有应用任务早运行,运行后挂起该后台任务。直到异常服务程序中将其唤醒并接管***,等待来自外界的指令或者重构触发异常的计算应用任务;
S3、在各核操作***中编写异常服务程序,在该服务程序中搜集触发异常时的***执行环境,包括状态寄存器、返回地址寄存器、时钟寄存器、栈指针寄存器、参数寄存器、返回值寄存器、异常标志位寄存器等,帮助定位触发异常的指令位置和排查触发异常的原因。异常服务程序完成异常发生时的执行环境的搜集后,写入日志缓存区,最后唤醒后台任务接管***;
S4、编写周期定时器中断服务程序,在中断服务程序中对L2进行刷新,具体是通过IDMA(核内DMA)将数据读出再写入,从而实现对L2中比特位的检错和纠错;使能多核共享内存的自动刷新功能,从而实现对多核共享内存比特位的检错和纠错;
S5、确定需要捕捉的异常事件号,并将事件号关联到不可屏蔽中断,使能异常检查,完成异常检查的配置;如C6678的120号事件表示DSP核访问L1P时产生了内存保护故障,122号事件表示DSP核直接或间接访问L1D时产生了内存保护故障;
S6、编写从核上的计算任务,将多核共享内存平均分为8段,每段512KB,并将从核任务的运行时栈部署到各核对应的多核共享内存中;
S7、对操作***和应用进行编译链接,查看生成的.map文件,该文件是对可执行文件ELF头信息的解析,确定各个程序段的长度和属性;
S8、将具有相同属性的程序段通过.cmd链接脚本文件连续排列,并如图2所示划分成程序只读代码段、程序只读数据段、程序读写数据段,将L2中剩余的空间划分为数据交互区、日志缓存区,并且各个段和区域按照16KB字节对齐,然后重新编译链接后确定各个段和区域的长度范围;
S9、在操作***初始化中按上述程序段和区域长度范围配置好对应的访问权限,配置L1P和L1D缓存的访问权限,配置好共享内存中运行时栈的访问权限,配置各级内存的纠错检错功能。配置完成后整个多核并行***的可靠性功能架构如图3所示。
采用上述实施步骤构建高可靠多核并行***,并编写相关测试用的计算应用任务和PC端日志解析服务器进行测试,测试内容包括栈溢出检测和保护、栈的读写保护、代码跑飞保护、程序只读段保护、L1cache保护、L1P错误检测、LL2错误检测和纠错、多核共享内存错误检测和纠错、其他保留空间的保护等。测试结果如下表所示:
表1
通过上述分项测试可知,大部分的可靠性措施有效率均达100%,而代码跑飞检测的有效率偏低,这是由于给出的随机跑飞地址位于DSP核内L2的程序只读代码段,故有效率未达到100%。如果发生这种代码区内的跑飞,可采用其他方法进行保护(比如看门狗电路)。
主控核操作***的日志任务会将日志缓存区的日志信息读出并通过TCP/IP协议传输到PC端日志解析服务器,经日志解析器解析后结果如图4中日志记录窗口所示。通过后台任务,在上述每项测试中触发异常后无需断电重启整个***,而是由后台任务接管***,并等待PC端发送新的测试命令。
综上所述,本发明提供了一种基于硬件保护的高可靠多核并行***处理方法,该方法能够有效地提升嵌入式多核并行***的可靠性,能够有效地检测以栈溢出为代表的软件常见错误并保护***不会执行错误的动作;同时提供了日志记录功能,并能够在异常发生时搜集执行环境的信息,有助于事后分析和排查错误;通过后台任务提供了异常恢复功能,能够在异常发生后维持***继续运行而不会失控。

Claims (10)

1.一种基于硬件保护的多核并行***处理方法,其特征在于,采用基于KeyStone架构的多核DSP处理器,将所述多核DSP处理器划分为主核和从核,主核和从核均运行嵌入式实时操作***,主核上运行主控核操作***,从核上运行加速核操作***,主控核操作***负责控制,加速核操作***负责计算,主控核操作***初始化核外共享设备和核内独占设备,加速核操作***初始化核内独占设备,主控核操作***和加速核操作***共同完成高可靠功能的初始化。
2.根据权利要求1所述的一种基于硬件保护的多核并行***处理方法,其特征在于,包括以下步骤:
S1、在主控核操作***中编写日志任务;
S2、在各核操作***中编写高优先级后台任务;
S3、在各核操作***中编写异常服务程序;
S4、编写周期定时器中断服务程序,在中断服务程序中对二级缓存L2进行刷新,使能多核共享内存的自动刷新功能,实现对多核共享内存比特位的检错和纠错;
S5、确定需要捕捉的异常事件号,并将事件号关联到不可屏蔽中断,使能异常检查,完成异常检查的配置;
S6、编写从核上的计算应用任务,并将从核计算应用任务的运行时栈部署到各核对应的多核共享内存中;
S7、编译链接后确定各个程序段和区域的长度范围、访问主体和读-写-执行属性;
S8、将具有相同访问主体和读-写-执行属性的程序段和区域通过链接脚本文件连续排列,不同访问主体和读-写-执行属性的程序段和区域之间按内存保护粒度对齐排列,各个程序段和区域加载到二级缓存L2中;
S9、在操作***初始化中按上述程序段和区域长度范围配置好对应的访问权限,配置各级内存的纠错检错功能。
3.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,步骤S1中,所述日志任务周期地读取各个核的日志缓存区,并根据配置将日志缓存区中的日志消息通过TCP/IP协议传输到PC端日志解析服务器或存储到目标板上的Flash中。
4.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,步骤S2中,所述高优先级后台任务的优先级高于所有应用任务以确保其比所有应用任务早运行,运行后挂起该后台任务,直到异常服务程序中将其唤醒并接管***,等待来自外界的指令或者重构触发异常的计算应用任务。
5.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,步骤S6中,将多核共享内存空间按照处理器核数进行平均分配,并配置主核和从核对应共享内存的访问权限。
6.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,在主核和从核操作***初始化过程中配置多核共享内存中各核对应区域的硬件保护权限:
确定各核对应的多核共享内存的地址范围;
通过配置多核共享内存的内存保护寄存器,设置主核和从核对应的多核共享内存起始地址、长度范围、访问主体和读-写-执行权限。
7.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,步骤S7中,对操作***和应用进行编译链接,通过查看生成的可执行文件的ELF头信息确定各个程序段和区域的长度范围和读-写-执行属性。
8.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,步骤S8中,本核上的程序段和区域按读-写-执行属性包括:程序只读代码段、程序只读数据段、程序读写数据段、数据交互区和日志缓存区,所述程序只读代码段、程序只读数据段和程序读写数据段的访问主体限定为只允许本核访问,所述数据交互区的访问主体限定为允许其他核和主设备访问,用于多核并行***运行时计算数据的交互,所述日志缓存区的访问主体限定为允许主核读取和本核写入,用于主核上的日志任务能够从该区域读取各个核的日志信息,并写入Flash或通过TCP/IP协议传输。
9.根据权利要求8所述的一种基于硬件保护的多核并行***处理方法,其特征在于,所述程序只读代码段的属性为读-执行,由.text段构成;所述程序只读数据段的属性为只读,由.const、.rodata、.cinit等程序段构成;所述程序读写数据段的属性为读-写,由剩余的可读可写的程序段构成,所述数据交互区和日志缓存区的属性为读-写。
10.根据权利要求2所述的一种基于硬件保护的多核并行***处理方法,其特征在于,在主核和从核操作***初始化过程中配置二级缓存L2中各个属性程序段和区域的硬件保护权限,具体为:
确定主核和从核二级缓存L2中操作***加载完毕后的各个程序段和区域的地址范围;
通过配置主核和从核二级缓存L2的内存保护寄存器,设置每个程序段和区域起始地址、长度范围、访问主体和读-写-执行权限。
CN201710495308.1A 2017-06-26 2017-06-26 一种基于硬件保护的多核并行***处理方法 Active CN107357666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710495308.1A CN107357666B (zh) 2017-06-26 2017-06-26 一种基于硬件保护的多核并行***处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710495308.1A CN107357666B (zh) 2017-06-26 2017-06-26 一种基于硬件保护的多核并行***处理方法

Publications (2)

Publication Number Publication Date
CN107357666A true CN107357666A (zh) 2017-11-17
CN107357666B CN107357666B (zh) 2020-04-21

Family

ID=60273182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710495308.1A Active CN107357666B (zh) 2017-06-26 2017-06-26 一种基于硬件保护的多核并行***处理方法

Country Status (1)

Country Link
CN (1) CN107357666B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108363912A (zh) * 2018-02-28 2018-08-03 苏州国芯科技有限公司 一种程序代码的密保方法及装置
CN109240844A (zh) * 2018-08-20 2019-01-18 成都国科微电子有限公司 一种日志获取方法及***
CN109634729A (zh) * 2018-11-20 2019-04-16 中国船舶重工集团公司第七0七研究所 一种捷联惯导设备多核dsp并行解算方法
CN110045992A (zh) * 2019-04-24 2019-07-23 北京翼辉信息技术有限公司 一种适用于多核板卡的通用***及方法
CN110297661A (zh) * 2019-05-21 2019-10-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于amp构架dsp操作***的并行计算方法、***及介质
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核***的设计和核间任务通信的实现方法
CN110750375A (zh) * 2019-07-16 2020-02-04 许昌许继软件技术有限公司 一种嵌入式设备及其异常信息处理方法
CN111819629A (zh) * 2019-12-18 2020-10-23 深圳市汇顶科技股份有限公司 管理存储器供电状态的方法及芯片
CN112035394A (zh) * 2020-07-27 2020-12-04 首都师范大学 面向实时处理的多核处理器的存储装置及数据处理方法
CN112162879A (zh) * 2020-09-30 2021-01-01 中国科学院计算技术研究所 一种实时多核dsp软件的日志***
CN114116645A (zh) * 2021-12-02 2022-03-01 南京地平线集成电路有限公司 多处理单元的日志管理方法、装置、存储介质及电子设备
CN114257643A (zh) * 2022-01-28 2022-03-29 北京安帝科技有限公司 一种日志传输方法及***
CN114968962A (zh) * 2022-08-01 2022-08-30 中瓴智行(成都)科技有限公司 基于多核通信的日志管理方法、***及电子设备
CN115185746A (zh) * 2022-09-07 2022-10-14 中国电子科技集团公司第五十八研究所 一种基于C66x多核DSP芯片的上下文环境备份与恢复方法
CN116028422A (zh) * 2023-02-14 2023-04-28 北京智芯微电子科技有限公司 一种异构多核***及其核间通信方法、芯片和存储介质
CN117591036A (zh) * 2024-01-18 2024-02-23 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***
CN118069067A (zh) * 2024-04-16 2024-05-24 泉州华中科技大学智能制造研究院 基于无主从TCP通信的Nor Flash数据存储方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090109959A1 (en) * 1996-11-18 2009-04-30 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
CN102640132A (zh) * 2009-09-28 2012-08-15 辉达公司 用于并行处理器的高效断言执行
CN102662740A (zh) * 2012-03-29 2012-09-12 迈普通信技术股份有限公司 非对称多核***及其实现方法
CN103885919A (zh) * 2014-03-20 2014-06-25 北京航空航天大学 一种多dsp和fpga并行处理***及实现方法
CN104820582A (zh) * 2015-05-14 2015-08-05 西安电子科技大学 一种基于Navigator的多核嵌入式DSP并行编程模型实现方法
CN105045658A (zh) * 2015-07-02 2015-11-11 西安电子科技大学 一种利用多核嵌入式dsp实现动态任务调度分发的方法
CN105190561A (zh) * 2013-03-13 2015-12-23 高通股份有限公司 双主机嵌入式共享装置控制器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090109959A1 (en) * 1996-11-18 2009-04-30 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
CN102640132A (zh) * 2009-09-28 2012-08-15 辉达公司 用于并行处理器的高效断言执行
CN102662740A (zh) * 2012-03-29 2012-09-12 迈普通信技术股份有限公司 非对称多核***及其实现方法
CN105190561A (zh) * 2013-03-13 2015-12-23 高通股份有限公司 双主机嵌入式共享装置控制器
CN103885919A (zh) * 2014-03-20 2014-06-25 北京航空航天大学 一种多dsp和fpga并行处理***及实现方法
CN104820582A (zh) * 2015-05-14 2015-08-05 西安电子科技大学 一种基于Navigator的多核嵌入式DSP并行编程模型实现方法
CN105045658A (zh) * 2015-07-02 2015-11-11 西安电子科技大学 一种利用多核嵌入式dsp实现动态任务调度分发的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAPENG XIONG,LIANG CHEN: "T-RBAC based Multi-domain Access Control Method in Cloud", 《NETWORK PROTOCOLS AND ALGORITHMS》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108363912A (zh) * 2018-02-28 2018-08-03 苏州国芯科技有限公司 一种程序代码的密保方法及装置
CN109240844A (zh) * 2018-08-20 2019-01-18 成都国科微电子有限公司 一种日志获取方法及***
CN109240844B (zh) * 2018-08-20 2022-03-22 成都国科微电子有限公司 一种日志获取方法及***
CN109634729A (zh) * 2018-11-20 2019-04-16 中国船舶重工集团公司第七0七研究所 一种捷联惯导设备多核dsp并行解算方法
CN110045992A (zh) * 2019-04-24 2019-07-23 北京翼辉信息技术有限公司 一种适用于多核板卡的通用***及方法
CN110297661B (zh) * 2019-05-21 2021-05-11 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于amp构架dsp操作***的并行计算方法、***及介质
CN110297661A (zh) * 2019-05-21 2019-10-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于amp构架dsp操作***的并行计算方法、***及介质
CN110750375A (zh) * 2019-07-16 2020-02-04 许昌许继软件技术有限公司 一种嵌入式设备及其异常信息处理方法
CN110750375B (zh) * 2019-07-16 2023-07-21 许昌许继软件技术有限公司 一种嵌入式设备及其异常信息处理方法
CN110545319A (zh) * 2019-08-23 2019-12-06 武汉久同智能科技有限公司 一种SoC核***的设计和核间任务通信的实现方法
CN111819629A (zh) * 2019-12-18 2020-10-23 深圳市汇顶科技股份有限公司 管理存储器供电状态的方法及芯片
CN112035394A (zh) * 2020-07-27 2020-12-04 首都师范大学 面向实时处理的多核处理器的存储装置及数据处理方法
CN112162879A (zh) * 2020-09-30 2021-01-01 中国科学院计算技术研究所 一种实时多核dsp软件的日志***
CN114116645A (zh) * 2021-12-02 2022-03-01 南京地平线集成电路有限公司 多处理单元的日志管理方法、装置、存储介质及电子设备
CN114257643A (zh) * 2022-01-28 2022-03-29 北京安帝科技有限公司 一种日志传输方法及***
CN114968962A (zh) * 2022-08-01 2022-08-30 中瓴智行(成都)科技有限公司 基于多核通信的日志管理方法、***及电子设备
CN115185746A (zh) * 2022-09-07 2022-10-14 中国电子科技集团公司第五十八研究所 一种基于C66x多核DSP芯片的上下文环境备份与恢复方法
CN116028422A (zh) * 2023-02-14 2023-04-28 北京智芯微电子科技有限公司 一种异构多核***及其核间通信方法、芯片和存储介质
CN117591036A (zh) * 2024-01-18 2024-02-23 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***
CN117591036B (zh) * 2024-01-18 2024-03-19 四川云海芯科微电子科技有限公司 基于固件与芯片微内核的占位数据补齐方法及***
CN118069067A (zh) * 2024-04-16 2024-05-24 泉州华中科技大学智能制造研究院 基于无主从TCP通信的Nor Flash数据存储方法及装置

Also Published As

Publication number Publication date
CN107357666B (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN107357666A (zh) 一种基于硬件保护的多核并行***处理方法
EP3591565A1 (en) Computing device with increased resistance against rowhammer attacks
CN103064784B (zh) 面向Xen环境的运行时内存泄漏检测方法及其实现***
US8627140B2 (en) Failure management method and computer
CN102184365B (zh) 基于SoC芯片外部数据安全存储***及存取控制方法
CN103984630B (zh) 一种基于at697处理器的单粒子翻转故障处理方法
CN107463459A (zh) ***异常内存数据的保存方法、装置、***及终端设备
WO2007002940A2 (en) Debugging using virtual watchpoints
CN108351826A (zh) 监视处理器的操作
CN103226499A (zh) 一种恢复内部存储器中的异常数据的方法及装置
CN102567245A (zh) 用于soc芯片***的存储控制器及其实现方法
US9009579B2 (en) Address translation checking device, central processing unit, and address translation checking method
US20100205477A1 (en) Memory Handling Techniques To Facilitate Debugging
CN100465910C (zh) 对产品中闪存数据的防错、纠错方法
CN104714834B (zh) 一种空间确定的任务调度方法
EP2645249A1 (en) Information processing apparatus, and method of controlling information processing apparatus
CN101639816B (zh) 一种总线的实时跟踪***及相应的跟踪、调试方法
WO2020007813A1 (en) Computing device with increased resistance against rowhammer attacks
CN107977577A (zh) 访存指令访问检测方法及装置
CN104657239B (zh) 基于分离式日志的多核处理器瞬时故障恢复***及其瞬时故障恢复方法
CN103902419A (zh) 一种缓存测试方法及装置
US20230268022A1 (en) Mediating directed refresh management induced row hammer and row access strobe (ras) clobber failures
CN101763292B (zh) 基于地址窗口的处理器推测访问过滤装置及其过滤方法
CN104956337B (zh) 计算机装置和计算机装置的控制方法
CN111061591A (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