CN114691594A - 一种基于非对称双核mcu设计的芯片架构及其实现方法 - Google Patents

一种基于非对称双核mcu设计的芯片架构及其实现方法 Download PDF

Info

Publication number
CN114691594A
CN114691594A CN202210243157.1A CN202210243157A CN114691594A CN 114691594 A CN114691594 A CN 114691594A CN 202210243157 A CN202210243157 A CN 202210243157A CN 114691594 A CN114691594 A CN 114691594A
Authority
CN
China
Prior art keywords
cpu
control cpu
group
eflash
ram
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
CN202210243157.1A
Other languages
English (en)
Other versions
CN114691594B (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.)
Zhuhai Haiqi Semiconductor Co ltd
Original Assignee
Zhuhai Haiqi Semiconductor Co ltd
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 Zhuhai Haiqi Semiconductor Co ltd filed Critical Zhuhai Haiqi Semiconductor Co ltd
Priority to CN202210243157.1A priority Critical patent/CN114691594B/zh
Publication of CN114691594A publication Critical patent/CN114691594A/zh
Application granted granted Critical
Publication of CN114691594B publication Critical patent/CN114691594B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)

Abstract

本发明提供一种基于非对称双核MCU设计的芯片架构及其实现方法,该架构包括第一CPU、第二CPU以及总线矩阵,两个CPU之间可以通过邮箱或者自旋锁机制进行通信,每个CPU配置有一组ROM,分别用于存储第一CPU和第二CPU的启动代码,芯片架构还包括两组RAM和两组eFlash,每一组RAM和eFlash分别通过总线矩阵与第一CPU、第二CPU连接,用于使得两个CPU之间交叉和同时访问,并通过若干eFuse比特位配置来关断某个CPU对某组RAM或者eFlash的访问权限。本发明基于芯片架构提供一种非对称双核设计的软硬件结合方法,无需额外的加解密设计就能够使核心算法或者关键IP驱动代码完全黑盒化,通过极简的类自旋锁设计,可以提升两个CPU对共享RAM空间的访问效率。

Description

一种基于非对称双核MCU设计的芯片架构及其实现方法
技术领域
本发明涉及电子信息技术领域,具体涉及一种电子、互联网通信的基于非对称双核MCU设计的芯片架构以及应用该芯片架构的实现方法。
背景技术
早期在开发MCU应用的时候,因为一颗MCU无法满足系统性能或者其他方面的需求,一般会使用的做法就是采用两颗MCU,按照应用需求分配工作,让它们相互配合来完成所有工作。但是这种方案几乎是下下之策,因为其整机成本,应用开发成本必然变高;而系统的稳定性和可靠性反而会变低。因此诞生了让MCU内部集成两个CPU内核,共同完成应用系统任务,基于芯片内部架构,两个CPU内核能够相互通信,分时和协同工作。如果两个CPU完全相同,具有相同的编程模型,该结构就称为对称双核;如果两个CPU在性能,结构甚至指令集方面有所不同,该结构就称为非对称双核。
相比于对称双核,非对称的优点在于能够进行更加精细的任务分工,灵活地适应不同情景,物尽其用,以最佳地平衡成本、性能与功耗。此外,非对称双核系统的编程难度也更低。因此,在MCU,AIot,视频接口转换等应用领域,非对称较对称双核更有优势。
目前,非对称双核设计在很多领域的芯片中均有广泛使用,常见做法之一是CPU加DSP的方式,由DSP完成那些信号处理和其他运算相关的工作,而CPU完成其他的系统任务;此外还有一种大小核的设计,比如市面上有MCU就采用了ARM公司的Cortex M4加M0的设计,启动时M4先开始运行,而M0处于复位状态,当M4完全载入固件之后,再通过应用程序来启动M0开始工作,与这种方式类似的甚至有使用ARM的大核加上RISC-V的小核结构,但是整个系统的做法还是类似的。
现有技术存在以下缺点:
第一种采用DSP的方式属于特定领域的解决方案,这样的芯片应用场合有限,而现在有很多CPU核的数据处理能力也很强大,它们能够提供更加灵活和宽泛的开发应用场景,成本却和DSP差别不大,所以很多MCU芯片更倾向于双CPU设计。但是目前的非对称双CPU架构也有其短板。
首先,双CPU大小核的方式硬件结构是相对固定的,其主控CPU和协控CPU的角色不能切换,这样可能导致一些功耗或者实时性敏感的开发场景受限。
其次,因为架构所限,MCU的CPU核间通过共享的RAM进行任务调度,控制通信和数据通信时基本都是通过Mailbox基于中断实现的,每个CPU核会触发对方的一个中断源,通过准备数据-触发中断的方式进行通信,但是这种做法的实时性较低;或者CPU核也可以主动定期检查共享RAM的状态,由于是纯软件轮询行为,在真正并行的系统中可能会发生竞争。
再次,有些原厂并不想自己的核心算法或者某些IP驱动代码被开发者篡改或者所见,基于现有双核设计,需要针对相关代码进行加密和特别封装,但这样仍会存在被解密和指令跟踪解析的可能性。
发明内容
本发明的主要目的在于提供一种基于非对称双核MCU设计的芯片架构,该芯片架构非对称双核可以进行主控和协控角色切换,协控CPU的PC指针可在启动前由主控CPU设置,用以提升产品开发的灵活性。
本发明的另一目的在于提供一种基于非对称双核MCU设计的芯片架构的实现方法,在方便产品应用开发的同时,提供一种非对称双核设计的软硬件结合方法,无需额外的加解密设计就能够使核心算法或者关键IP驱动代码完全黑盒化。
为解决上述问题,本发明所采用的技术方案如下:
一种基于非对称双核MCU设计的芯片架构,包括:第一CPU、第二CPU以及总线矩阵,两个CPU之间通过邮箱(MailBox)或者自旋锁(spinlock)机制进行通信,每个CPU配置有一组ROM,分别用于存储第一CPU和第二CPU的启动代码,所述芯片架构还包括两组RAM和两组eFlash,每一组RAM和eFlash分别通过总线矩阵与第一CPU、第二CPU连接,用于使得两个CPU之间交叉和同时访问,并通过若干eFuse比特位配置来关断某个CPU对某组RAM或者eFlash的访问权限。
由此可见,本发明提供一种MCU芯片架构,在具有共享eFlash和RAM分组且地址可自定义映射,核间Mailbox通信的前提下,非对称双核可以进行主控和协控角色切换,协控CPU的PC指针可在启动前由主控CPU设置,用以提升产品开发的灵活性。
在MCU这种锁的竞争不激烈,且占用锁时间较短,又不允许在中断上下文进入睡眠的系统中,自旋锁能够尽可能减少两个CPU任务间的阻塞,提升系统性能,因此从硬件层面提供一种极简的类自旋锁设计,用以提升两个CPU对共享RAM空间的访问效率。
一种基于非对称双核MCU设计的芯片架构的实现方法,该系统应用于上述的一种基于非对称双核MCU设计的芯片架构进行软硬件结合实现,该方法包括;基于芯片架构,设计一个自举管脚和一组eFuse比特位,用于选择主控CPU和协控CPU;使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路;设计若干个使得两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,以实现精准的类自旋锁操作;将需要面向用户保密的算法和相关IP驱动程序命名为ATH_PROGRAM,将ATH_PROGRAM运行在协控CPU上,使用主控CPU来处理中断和其他的系统任务,并对主控CPU和协控CPU进行资源分配;
在完成资源分配后,分别进行主控CPU和协控CPU对应的固件开发,并将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程。
进一步的方案是,所述选择主控CPU和协控CPU,包括:当eFuse比特位CPU_SEL_EF[1:0]均未被烧写时,在上电初始化时通过CPU_SEL的值设置第一CPU或第二CPU为系统主控CPU,在上电完成之后,主控CPU通过软件配置系统寄存器CPU_CLKEN启动协控CPU的时钟,并由系统寄存器CPU_SWRSTN释放协控CPU的复位,系统寄存器PC_INIT[31:0]设置协控CPU的PC起始地址。
更进一步的方案是,当eFuse比特位CPU_SEL_EF[1]被烧写为高电平时,则由CPU_SEL_EF[0]的值来决定第一CPU或第二CPU为系统主控CPU,并且永久固化该设置。
更进一步的方案是,所述使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路,包括:当eFuse比特位未被烧写为高电平时,两个CPU可以访问相应RAM或者eFlash组,反之其访问通路被永久关断;
根据芯片规格需要设计两个CPU对RAM或者eFlash组的访问通路上对应的eFuse比特位开关电路。
更进一步的方案是,所述设计若干个使两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,包括:SPIN_LOCK寄存器复位后默认值为0,任何读操作均会使之拉高为1,任一CPU可以通过写操作将其清零,这样可以在不增加任何硬件成本的前提下,消除由软件实现锁抢占而导致的高延时行为;若两个CPU同时读取SPIN_LOCK寄存器,假设第一CPU读到0并且该读操作导致SPIN_LOCK置位,则第二CPU只能读取到1,此时可确认第一CPU抢到自旋锁,开始执行第一CPU的任务,期间第二CPU一直处于轮询状态,直到第一CPU的任务完成并且写入0释放SPIN_LOCK寄存器,第二CPU才能读取到0后抢到自旋锁,开始执行第二CPU的任务;其中,可以根据芯片规格需要设计SPIN_LOCK寄存器的个数。
更进一步的方案是,对主控CPU和协控CPU进行资源分配包括:将第二CPU设置为主控CPU,第一CPU设置为协控CPU,将ATH_PROGRAM运行在第一CPU上,使用第二CPU来处理中断和其他的系统任务。
更进一步的方案是,在设置好主控CPU和协控CPU后,按照需求选择第一组eFlash作为ATH_PROGRAM的代码区,第一组RAM作为ATH_PROGRAM的数据区,选择第二组eFlash作为系统主程序代码区,选择第二组RAM作为系统RAM以及共享RAM区,主控CPU与协控CPU之间可以利用共享RAM区通过MailBox和自旋锁进行控制信息和数据通信。
更进一步的方案是,所述将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程,包括:在完成资源分配后,分别进行第一CPU和第二CPU对应的固件开发,将第一CPU的固件烧入第一组eFlash,第二CPU的固件烧入第二组eFlash进行联合调试,在调试确认没有问题后进行量产阶段。
更进一步的方案是,在生产过程中,对两组eFlash写入对应固件后,通过对eFuse进行编程,其包括:永久设置第二CPU为主控CPU、永久关断第一CPU的调试通路以及永久关断第二CPU对第一组eFlash和第一组RAM的访问通路。
因此,相比现有技术,本发明具有以下有益效果:
1、本发明的芯片结构可使主控CPU和协控CPU角色自由切换,根据开发人员的习惯能够提供更灵活的开发方式,结合具体的应用开发,能够在性能和功耗之间达到更优平衡;
2、极简的自旋锁设计提升系统性能,从硬件层面保证了非对称CPU核任务的真并行性,在锁的抢占机制方面做到了真正公平,却没有增加任何硬件成本;
3、本发明的芯片结构可以在不使用高级加密算法的前提下,做到关键算法和相关IP的软硬件行为黑盒化,有利于知识产权保护。
下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
图1是本发明一种基于非对称双核MCU设计的芯片架构实施例的原理图。
图2是本发明一种基于非对称双核MCU设计的芯片架构的实现方法实施例中CPU复位和时钟控制的原理图。
图3是本发明一种基于非对称双核MCU设计的芯片架构的实现方法实施例中CPU访问存储控制电路的原理图。
图4是本发明一种基于非对称双核MCU设计的芯片架构的实现方法实施例中获取自旋锁的原理图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,结合附图对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
CPU为中央处理器。
MCU为单片微型计算机或者单片机,应用于诸如手机、PC外围、遥控器,汽车电子、工业控制等。
DSP为数字信号处理器。
BOOT_PIN为自举管脚,是芯片上电启动时用来决定其初始状态和工作模式的管脚。
eFuse为一次性可编程存储器。
eFlash为嵌入式闪存,是嵌入式系统中常用的非易失存储器,支持代码片上执行;在写入之前必须先执行擦除动作,擦除以块为单位。写入也叫编程,需要通过特殊的命令来实现。
一种基于非对称双核MCU设计的芯片架构实施例:
参见图1,本发明的一种基于非对称双核MCU设计的芯片架构,包括:第一CPU、第二CPU以及总线矩阵,两个CPU之间通过邮箱(MailBox)或者自旋锁(spinlock)机制进行通信,每个CPU配置有一组ROM,分别用于存储第一CPU和第二CPU的启动代码,所述芯片架构还包括两组RAM和两组eFlash,每一组RAM和eFlash分别通过总线矩阵与第一CPU、第二CPU连接,用于使得两个CPU之间交叉和同时访问,并通过若干eFuse比特位配置来关断某个CPU对某组RAM或者eFlash的访问权限。
其中,在总线矩阵定义有两个decode模块,分别为decode A和decode B,其中,第一CPU通过decode A调用各个RAM、eFlash等,第二CPU通过decode B调用各个RAM、eFlash等。
具体的,首先设置非对称双核为第一CPU(CPUA)和第二CPU(CPUB),在系统存储方面配备两组ROM,其中,第一组ROM(ROMA)和第二组ROM(ROMB)分别存储第一CPU和第二CPU的启动代码,不能交叉访问。
然后,配备两组RAM和两组eFlash,每组均有独立总线相连,将之进行分组并且设置独立总线的原因是为了避免两个CPU访问同组RAM或者eFlash时出现竞争导致性能急剧下降。
另外,两组RAM和eFlash默认可以让两个CPU交叉和同时访问,但根据开发需要,可通过若干eFuse比特位配置来永久关断某个CPU对某组RAM或者eFlash的访问权限。其中,两个CPU之间互有事件(Event)或者中断(Interrupt)可通过MailBox通信。
由此可见,本发明提供一种MCU芯片架构,在具有共享eFlash和RAM分组且地址可自定义映射,核间Mailbox通信的前提下,非对称双核可以进行主控和协控角色切换,协控CPU的PC指针可在启动前由主控CPU设置,用以提升产品开发的灵活性。
在MCU这种锁的竞争不激烈,且占用锁时间较短,又不允许在中断上下文进入睡眠的系统中,自旋锁能够尽可能减少两个CPU任务间的阻塞,提升系统性能,因此从硬件层面提供一种极简的类自旋锁设计,用以提升两个CPU对共享RAM空间的访问效率。
一种基于非对称双核MCU设计的芯片架构的实现方法实施例:
一种基于非对称双核MCU设计的芯片架构的实现方法,该系统应用于上述的一种基于非对称双核MCU设计的芯片架构进行软硬件结合实现,该方法包括以下步骤:
首先,基于芯片架构,设计一个自举管脚和一组eFuse比特位,用于选择主控CPU和协控CPU。
然后,使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路。
接着,设计若干个使得两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,以实现精准的类自旋锁操作。
然后,将需要面向用户保密的算法和相关IP驱动程序命名为ATH_PROGRAM,将ATH_PROGRAM运行在协控CPU上,使用主控CPU来处理中断和其他的系统任务,并对主控CPU和协控CPU进行资源分配。
最后,在完成资源分配后,分别进行主控CPU和协控CPU对应的固件开发,并将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程。
在本实施例中,选择主控CPU和协控CPU,包括当eFuse比特位CPU_SEL_EF[1:0]均未被烧写时,在上电初始化时通过CPU_SEL的值设置第一CPU或第二CPU为系统主控CPU,在上电完成之后,主控CPU通过软件配置系统寄存器CPU_CLKEN启动协控CPU的时钟,并由系统寄存器CPU_SWRSTN释放协控CPU的复位,系统寄存器PC_INIT[31:0]设置协控CPU的PC起始地址。
当eFuse比特位CPU_SEL_EF[1]被烧写为高电平时,则由CPU_SEL_EF[0]的值来决定第一CPU或第二CPU为系统主控CPU,并且永久固化该设置。
在本实施例中,使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路,包括当eFuse比特位未被烧写为高电平时,两个CPU可以访问相应RAM或者eFlash组,反之其访问通路被永久关断。
然后,根据芯片规格需要设计两个CPU对RAM或者eFlash组的访问通路上对应的eFuse比特位开关电路。
在本实施例中,设计若干个使两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,包括:SPIN_LOCK寄存器复位后默认值为0,任何读操作均会使之拉高为1,任一CPU可以通过写操作将其清零,这样可以在不增加任何硬件成本的前提下,消除由软件实现锁抢占而导致的高延时行为;若两个CPU同时读取SPIN_LOCK寄存器,假设第一CPU读到0并且该读操作导致SPIN_LOCK置位,则第二CPU只能读取到1,此时可确认第一CPU抢到自旋锁,开始执行第一CPU的任务,期间第二CPU一直处于轮询状态,直到第一CPU的任务完成并且写入0释放SPIN_LOCK寄存器,第二CPU才能读取到0后抢到自旋锁,开始执行第二CPU的任务,其中,可以根据芯片规格需要设计SPIN_LOCK寄存器的个数。
在本实施例中,对主控CPU和协控CPU进行资源分配,包括:对主控CPU和协控CPU进行资源分配包括:将第二CPU设置为主控CPU,第一CPU设置为协控CPU,将ATH_PROGRAM运行在第一CPU上,使用第二CPU来处理中断和其他的系统任务。
或者,将第一CPU设置为主控CPU,第二CPU设置为协控CPU,将ATH_PROGRAM运行在第二CPU上,使用第一CPU来处理中断和其他的系统任务。可见,第一、第二CPU的角色可以灵活分配。
在设置好主控CPU和协控CPU后,按照需求选择第一组eFlash作为ATH_PROGRAM的代码区,第一组RAM作为ATH_PROGRAM的数据区,选择第二组eFlash作为系统主程序代码区,选择第二组RAM作为系统RAM以及共享RAM区,主控CPU与协控CPU之间可以利用共享RAM区通过MailBox和自旋锁进行控制信息和数据通信。
在本实施例中,将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程,包括在完成资源分配后,分别进行第一CPU和第二CPU对应的固件开发,将第一CPU的固件烧入第一组eFlash,第二CPU的固件烧入第二组eFlash进行联合调试,在调试确认没有问题后进行量产阶段。
在生产过程中,对两组eFlash写入对应固件后,通过对eFuse进行编程,其包括:永久设置第二CPU为主控CPU、永久关断第一CPU的调试通路以及永久关断第二CPU对第一组eFlash和第一组RAM的访问通路。
在实际应用中,基于上述芯片架构,设计一个BOOT_PIN(命名为CPU_SEL)和一组eFuse比特位(CPU_SEL_EF[1:0]),用来选择主控CPU和协控CPU,主控CPU的时钟和复位默认是打开的,而协控CPU时钟复位默认关闭,需要上电完成之后由主控CPU打开,协控CPU可以旁路自己的ROM,直接从主控CPU设置的PC起始地址启动。
因此,如图2所示,图2为CPU复位和时钟控制的电路。当CPU_SEL_EF[1:0]未被烧写时,上电之初可以通过CPU_SEL的值设置系统主控CPU为CPUA还是CPUB,上电完成之后,主控CPU可以通过软件配置系统寄存器CPU_CLKEN启动协控CPU的时钟,系统寄存器CPU_SWRSTN释放协控CPU的复位,系统寄存器PC_INIT[31:0]设置协控CPU的PC起始地址;当CPU_SEL_EF[1]被烧写为高时,则由CPU_SEL_EF[0]的值来决定系统主控CPU为CPUA还是CPUB,并且会永久固化该设置,具体实现电路。
然后,基于上述芯片架构,使用一组eFuse比特位,用来打开或者关断主控CPU和协控CPU对RAM或者eFlash组的访问通路,相关eFuse比特位未被烧写为高时,CPU可以访问相应RAM或者eFlash组,反之其访问通路被永久关断。以第一组eFlashe(Flash0)和第一组RAM(RAM0)为例,实现方式如图3所示,四个eFuse比特位分别为flh_accdis_a0、flh_accdis_b0、ram_accdis_a0、ram_accdis_b0,图中flh_accdis_b0被烧写为高,因此CPUB无法访问eFlash0。当然,本发明可以根据芯片规格需要设计CPU对RAM或者eFlash组的访问通路上对应的eFuse比特位开关电路。另外,CPU的调试端口到芯片管脚的通路,其他IP的中断到CPU的通路,均可设计成eFuse比特位开关。
接着,设计若干个CPUA和CPUB可以同时访问的特殊系统寄存器位SPIN_LOCK,用来实现精准的类自旋锁操作。其行为阐述如下:复位后默认值为0,任何读操作均会使之拉高为1,任一CPU可以通过写操作将其清零。其中,任何读操作均会使之拉高为1的设计是核心,消除了由软件实现锁抢占时的高延时行为,但是完全没有任何硬件成本。其获取示意图如图4所示,图中CPUA和CPUB同时读取SPIN_LOCK寄存器,CPUA稍快一些读到0并且该读操作导致SPIN_LOCK置位,CPUB读到1,所以首先是CPUA抢到自旋锁,开始执行CPUA的任务,期间CPUB一直轮询直到CPUA的任务完成并且写0释放了SPIN_LOCK,CPUB读到0抢到自旋锁,开始执行CPUB的任务。当然,本发明可以根据芯片规格需要设计SPIN_LOCK的个数。
然后,将需要面向用户保密的算法和相关IP驱动程序命名为ATH_PROGRAM,假设CPUA更善于算术和数据处理,本实施例将ATH_PROGRAM运行在CPUA上,而使用CPUB来处理中断和其他的系统任务。因此,将CPUB设置为主控CPU,CPUA设置为协控CPU,然后按照需求选择eFlash0作为ATH_PROGRAM的代码区,RAM0作为ATH_PROGRAM的数据区,选择eFlash1作为系统主程序代码区,选择RAM1作为系统RAM以及共享RAM区,主控CPU与协控CPU之间可以利用共享RAM区通过MailBox和自旋锁进行控制信息和数据通信。
在完成上述资源分配之后,分别进行CPUA和CPUB对应的固件开发,然后将CPUA的固件烧入eFlash0,CPUB的固件烧入eFlash1进行联合调试,调试没有问题之后进行量产阶段。
在生产过程中,对eFlash写入对应固件之后,最终通过对eFuse进行编程,永久设置CPUB为主控CPU;永久关断CPUA的调试通路;永久关断CPUB对eFlash0和RAM0的访问通路。
因此,ATH_PROGRAM的程序本体和中间数据无法被除CPUA以外的途径获取,主程序仅能通过共享RAM区获取ATH_PROGRAM最终数据加以应用。
所以,相比现有技术,本发明具有以下有益效果:
1、本发明的芯片结构可使主控CPU和协控CPU角色自由切换,根据开发人员的习惯能够提供更灵活的开发方式,结合具体的应用开发,能够在性能和功耗之间达到更优平衡;
2、极简的自旋锁设计提升系统性能,从硬件层面保证了非对称CPU核任务的真并行性,在锁的抢占机制方面做到了真正公平,却没有增加任何硬件成本;
3、本发明的芯片结构可以在不使用高级加密算法的前提下,做到关键算法和相关IP的软硬件行为黑盒化,有利于知识产权保护。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

Claims (10)

1.一种基于非对称双核MCU设计的芯片架构,其特征在于,包括:
第一CPU、第二CPU以及总线矩阵,两个CPU之间通过邮箱或者自旋锁机制进行通信,每个CPU配置有一组ROM,分别用于存储第一CPU和第二CPU的启动代码,所述芯片架构还包括两组RAM和两组eFlash,每一组RAM和eFlash分别通过总线矩阵与第一CPU、第二CPU连接,用于使得两个CPU之间交叉和同时访问,并通过若干eFuse比特位配置来关断某个CPU对某组RAM或者eFlash的访问权限。
2.一种基于非对称双核MCU设计的芯片架构的实现方法,其特征在于,该方法应用于如权利要求1所述的一种基于非对称双核MCU设计的芯片架构进行软硬件结合实现,该方法包括:
基于芯片架构,设计一个自举管脚和一组eFuse比特位,用于选择主控CPU和协控CPU;
使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路;
设计若干个使得两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,以实现精准的类自旋锁操作;
将需要面向用户保密的算法和相关IP驱动程序命名为ATH_PROGRAM,将ATH_PROGRAM运行在协控CPU上,使用主控CPU来处理中断和其他的系统任务,并对主控CPU和协控CPU进行资源分配;
在完成资源分配后,分别进行主控CPU和协控CPU对应的固件开发,并将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程。
3.根据权利要求2所述的方法,其特征在于,所述选择主控CPU和协控CPU,包括:
当eFuse比特位CPU_SEL_EF[1:0]均未被烧写时,在上电初始化时通过CPU_SEL的值设置第一CPU或第二CPU为系统主控CPU,在上电完成之后,主控CPU通过软件配置系统寄存器CPU_CLKEN启动协控CPU的时钟,并由系统寄存器CPU_SWRSTN释放协控CPU的复位,系统寄存器PC_INIT[31:0]设置协控CPU的PC起始地址。
4.根据权利要求3所述的方法,其特征在于:
当eFuse比特位CPU_SEL_EF[1]被烧写为高电平时,则由CPU_SEL_EF[0]的值来决定第一CPU或第二CPU为系统主控CPU,并且永久固化该设置。
5.根据权利要求3所述的方法,其特征在于,所述使用一组eFuse比特位,打开或者关断主控和协控CPU对RAM或者eFlash组的访问通路,包括:
当eFuse比特位未被烧写为高电平时,两个CPU可以访问相应RAM或者eFlash组,反之其访问通路被永久关断;
根据芯片规格需要设计两个CPU对RAM或者eFlash组的访问通路上对应的eFuse比特位开关电路。
6.根据权利要求2所述的方法,其特征在于,所述设计若干个使得两个CPU可以同时访问的特殊系统寄存器位SPIN_LOCK,包括:
若两个CPU同时读取SPIN_LOCK寄存器,假设第一CPU读到0并且该读操作导致SPIN_LOCK置位,则第二CPU只能读取到1,此时可确认第一CPU抢到自旋锁,开始执行第一CPU的任务,期间第二CPU一直处于轮询状态,直到第一CPU的任务完成并且写入0释放SPIN_LOCK寄存器,第二CPU才能读取到0后抢到自旋锁,开始执行第二CPU的任务;其中,可以根据芯片规格需要设计SPIN_LOCK寄存器的个数。
7.根据权利要求2所述的方法,其特征在于,所述对主控CPU和协控CPU进行资源分配,包括:
对主控CPU和协控CPU进行资源分配包括:将第二CPU设置为主控CPU,第一CPU设置为协控CPU,将ATH_PROGRAM运行在第一CPU上,使用第二CPU来处理中断和其他的系统任务。
8.根据权利要求7所述的方法,其特征在于:
在设置好主控CPU和协控CPU后,按照需求选择第一组eFlash作为ATH_PROGRAM的代码区,第一组RAM作为ATH_PROGRAM的数据区,选择第二组eFlash作为系统主程序代码区,选择第二组RAM作为系统RAM以及共享RAM区,主控CPU与协控CPU之间可以利用共享RAM区通过MailBox和自旋锁进行控制信息和数据通信。
9.根据权利要求8所述的方法,其特征在于,所述将主控CPU和协控CPU的固件对应烧入两组eFlash中进行联合调试、量产、编程,包括:
在完成资源分配后,分别进行第一CPU和第二CPU对应的固件开发,将第一CPU的固件烧入第一组eFlash,第二CPU的固件烧入第二组eFlash进行联合调试,在调试确认没有问题后进行量产阶段。
10.根据权利要求9所述的方法,其特征在于:
在生产过程中,对两组eFlash写入对应固件后,通过对eFuse进行编程,其包括:永久设置第二CPU为主控CPU、永久关断第一CPU的调试通路以及永久关断第二CPU对第一组eFlash和第一组RAM的访问通路。
CN202210243157.1A 2022-03-11 2022-03-11 一种基于非对称双核mcu设计的芯片架构及其实现方法 Active CN114691594B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210243157.1A CN114691594B (zh) 2022-03-11 2022-03-11 一种基于非对称双核mcu设计的芯片架构及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210243157.1A CN114691594B (zh) 2022-03-11 2022-03-11 一种基于非对称双核mcu设计的芯片架构及其实现方法

Publications (2)

Publication Number Publication Date
CN114691594A true CN114691594A (zh) 2022-07-01
CN114691594B CN114691594B (zh) 2023-05-23

Family

ID=82138523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210243157.1A Active CN114691594B (zh) 2022-03-11 2022-03-11 一种基于非对称双核mcu设计的芯片架构及其实现方法

Country Status (1)

Country Link
CN (1) CN114691594B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112246A (zh) * 2023-10-24 2023-11-24 苏州元脑智能科技有限公司 自旋锁的控制装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105784A (zh) * 2007-07-13 2008-01-16 上海大学 基于视音频嵌入式开发平台的高速数字图像/视频信号分析与处理选件二次开发板
CN103377157A (zh) * 2012-04-27 2013-10-30 沈阳高精数控技术有限公司 一种用于嵌入式数控系统的双核数据通信方法
CN105190550A (zh) * 2013-03-15 2015-12-23 华为技术有限公司 用于启动具有多个中央处理器的计算机系统的方法
CN105409173A (zh) * 2013-06-19 2016-03-16 施耐德电器工业公司 统一以太网解决方案
CN107132799A (zh) * 2017-06-21 2017-09-05 湖南利能科技股份有限公司 一种多mcu数据交互智能采集的装置和方法
CN107942797A (zh) * 2017-11-29 2018-04-20 上海无线电设备研究所 基于sopc的嵌入式双核伺服控制器及其设计方法
CN109992539A (zh) * 2019-03-13 2019-07-09 盛科网络(苏州)有限公司 双主机协同工作装置
CN112905395A (zh) * 2021-03-12 2021-06-04 湖南长城银河科技有限公司 一种面向异构多核/众核微处理器的自纠错启动系统
CN113934516A (zh) * 2020-06-29 2022-01-14 华为技术有限公司 一种锁管理方法、装置及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101105784A (zh) * 2007-07-13 2008-01-16 上海大学 基于视音频嵌入式开发平台的高速数字图像/视频信号分析与处理选件二次开发板
CN103377157A (zh) * 2012-04-27 2013-10-30 沈阳高精数控技术有限公司 一种用于嵌入式数控系统的双核数据通信方法
CN105190550A (zh) * 2013-03-15 2015-12-23 华为技术有限公司 用于启动具有多个中央处理器的计算机系统的方法
CN105409173A (zh) * 2013-06-19 2016-03-16 施耐德电器工业公司 统一以太网解决方案
US20180349308A1 (en) * 2013-06-19 2018-12-06 Schneider Electric Industries Sas Universal ethernet solution
CN107132799A (zh) * 2017-06-21 2017-09-05 湖南利能科技股份有限公司 一种多mcu数据交互智能采集的装置和方法
CN107942797A (zh) * 2017-11-29 2018-04-20 上海无线电设备研究所 基于sopc的嵌入式双核伺服控制器及其设计方法
CN109992539A (zh) * 2019-03-13 2019-07-09 盛科网络(苏州)有限公司 双主机协同工作装置
CN113934516A (zh) * 2020-06-29 2022-01-14 华为技术有限公司 一种锁管理方法、装置及设备
CN112905395A (zh) * 2021-03-12 2021-06-04 湖南长城银河科技有限公司 一种面向异构多核/众核微处理器的自纠错启动系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHANKAI LI 等: "Design of intelligent diagnosis module for high voltage circuit breaker based on dual-MCU control", 《2011 1ST INTERNATIONAL CONFERENCE ON ELECTRIC POWER EQUIPMENT - SWITCHING TECHNOLOGY》 *
恩智浦半导体公司: "非对称双核微控制器", 《世界电子元器》 *
瞿伟 等: "基于多核处理器的非对称嵌入式系统研究综述", 《计算机科学》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112246A (zh) * 2023-10-24 2023-11-24 苏州元脑智能科技有限公司 自旋锁的控制装置
CN117112246B (zh) * 2023-10-24 2024-02-09 苏州元脑智能科技有限公司 自旋锁的控制装置

Also Published As

Publication number Publication date
CN114691594B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US9465753B2 (en) Memory management unit that applies rules based on privilege identifier
US8051467B2 (en) Secure information processing
US8683115B2 (en) Programmable mapping of external requestors to privilege classes for access protection
CN102163072B (zh) 用于节能的基于软件的线程重映射
US20170161204A1 (en) GPU Virtualisation
CN107017014B (zh) 用于低能量mcu的动态集装箱化系统存储器保护
US11048588B2 (en) Monitoring the operation of a processor
US7398383B2 (en) Method and system for using internal FIFO RAM to improve system boot times
JPH02252008A (ja) マイクロプロセッサ
KR950014179B1 (ko) 서비스 프로세서
JPH0616250B2 (ja) 複数のチャンネル・タイマ・システムに使用するタイマ・チャンネル
JPH02252010A (ja) マッチ認識特性を持つタイマ・チャンネル
CN114780248A (zh) 资源访问方法、装置、计算机设备及存储介质
US20070055839A1 (en) Processing operation information transfer control systems and methods
CN114691594A (zh) 一种基于非对称双核mcu设计的芯片架构及其实现方法
CN114416637A (zh) 一种soc芯片复位处理方法、装置、soc芯片及介质
CN110221861B (zh) 一种cpu寄存器体系结构及其中断处理方法
Balas et al. CV32RT: Enabling Fast Interrupt and Context Switching for RISC-V Microcontrollers
Prakash et al. Custom instructions with local memory elements without expensive DMA transfers
US20060168420A1 (en) Microcontroller cache memory
CN111506531A (zh) 一种easy-master微码模块及其配置方法
JP2003296130A (ja) マイクロコンピュータ
JP4008196B2 (ja) レジスタ制御装置及びマルチcpuシステム
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JPH05242008A (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