CN115033394A - 一种多核mcu访问共享外设的控制系统及相关设备 - Google Patents

一种多核mcu访问共享外设的控制系统及相关设备 Download PDF

Info

Publication number
CN115033394A
CN115033394A CN202210562226.5A CN202210562226A CN115033394A CN 115033394 A CN115033394 A CN 115033394A CN 202210562226 A CN202210562226 A CN 202210562226A CN 115033394 A CN115033394 A CN 115033394A
Authority
CN
China
Prior art keywords
numerical value
module
register
shared
access
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
CN202210562226.5A
Other languages
English (en)
Other versions
CN115033394B (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.)
Shenzhen Hangshun Chip Technology R&D Co Ltd
Original Assignee
Shenzhen Hangshun Chip Technology R&D 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 Shenzhen Hangshun Chip Technology R&D Co Ltd filed Critical Shenzhen Hangshun Chip Technology R&D Co Ltd
Priority to CN202210562226.5A priority Critical patent/CN115033394B/zh
Priority to EP22943380.0A priority patent/EP4369198A1/en
Priority to PCT/CN2022/109602 priority patent/WO2023226189A1/zh
Publication of CN115033394A publication Critical patent/CN115033394A/zh
Application granted granted Critical
Publication of CN115033394B publication Critical patent/CN115033394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/10Program control for peripheral devices
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开一种多核MCU访问共享外设的控制系统和相关设备,所述控制系统包括:M个存储模块、M个处理模块和N个共享模块;在依次任意一路连接的存储模块、处理模块和共享模块上,存储模块用于在上电或复位操作后生成第一数值并进行存储;处理模块用于读取第一数值,并在判断第一数值为目标数值时传输数据至共享模块,以及用于在第一数值为目标数值后,读取共享模块中存储的第二数值,并根据第二数值锁定相应的共享模块进行数据传输;共享模块用于在判断第一数值为目标数值时接收处理模块传输的数据。通过判断出第一数值为目标数值而将数据传输至共享模块,根据第二数值锁定相应的共享模块,改善多个MCU同时访问一个共享外设时的冲突问题。

Description

一种多核MCU访问共享外设的控制系统及相关设备
技术领域
本发明涉及集成电路技术领域,特别涉及一种多核MCU访问共享外设的控制系统及相关设备。
背景技术
随着集成电路的高速发展,MCU(MCU:Microcontroller Unit,中文名为微控制单元)是把CPU(CPU:central processing unit,简称CPU,中文名为中央处理器,是计算机系统的运算控制核心,是信息处理和程序执行的最终执行单元)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART(UART:Universal AsynchronousReceiver/Transmitter,中文名为通用异步收发传输器,它是将要传输的资料在串行通信与并行通信之间加以转换)、PLC(PLC:ProgrammablelogicController,中文为可编程控制器,是指以计算机技术为基础的新型工业控制装置)、DMA(DMA:Direct Memory Access,中文名为直接存储器访问,DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输)等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制)也逐渐向多核多主机的方向发展(多核MCU是指一个MCU内部具有两个及两个以上CPU核),如果此时有一个共享空间的某一个外设正在被一个CPU访问,如果此时另一个CPU也来访问这个外设,则可能会引起错误。另外,共享空间的某些外设功能和CPU核相关,因此这些外设需要限制被其他的CPU来访问,现阶段的多个CPU同时访问同一个共享空间,如果此时产生冲突,让CPU的访问失败,会导致外设不能正常使用。
现在的多核MCU访问共享外设的操作是,通过定义一个寄存器用软件的方式,读写操作semaphore寄存器,不能有效的避免冲突。而如果通过软件配置一个CPU访问一个外设地址,另一个CPU并没有读这个semaphore寄存器,而是直接访问,那么同样也会出现访问冲突的问题。上述的两种方式均不能完全避免冲突的产生。
因而现有技术还有待改进和提高。
发明内容
本发明的主要目的在于提供一种多核MCU访问共享外设的控制系统和相关设备,旨在解决现有技术中多个MCU无法同时正常访问同一个共享外设的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种多核MCU访问共享外设的控制系统,所述多核MCU访问共享外设的控制系统包括:M个存储模块、M个处理模块和N个共享模块;每一个所述处理模块均与一个所述存储模块连接,每一个所述处理模块还均与N个共享模块连接;在依次任意一路连接的所述存储模块、所述处理模块和所述共享模块上,所述存储模块用于在上电或复位操作后生成第一数值并进行存储;所述处理模块用于读取所述第一数值,并在判断所述第一数值为目标数值时,传输数据至所述共享模块,用于在所述第一数值为目标数值后,读取所述共享模块中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输,以及用于读取所述共享模块中存储的第三数值后,与预设数值进行比较,若大小相等则解除相应的所述共享模块的锁定状态;所述共享模块用于提供所述第二数值和所述第三数值,以及用于在判断所述第一数值为目标数值时,接收所述处理模块传输的所述数据。
所述多核MCU访问共享外设的控制系统中,所述处理模块包括:处理器;所述处理器与对应的一个所述存储模块连接,所述处理器还均与每一个所述共享模块连接。
所述多核MCU访问共享外设的控制系统中,所述存储模块包括:第一寄存器;所述第一寄存器与对应的一个所述处理模块连接。
所述多核MCU访问共享外设的控制系统中,所述共享模块包括:第二寄存器和第三寄存器;所述第二寄存器和所述第三寄存器均与每一个所述处理器连接。
所述多核MCU访问共享外设的控制系统中,所述第一寄存器包括XX_ACCESSABLE寄存器;
所述多核MCU访问共享外设的控制系统中,所述第二寄存器包括LOCK寄存器,所述第三寄存器包括KEY寄存器。
一种基于如上所述的多核MCU访问共享外设的控制系统的多核MCU访问共享外设的控制方法,所述多核MCU访问共享外设的控制方法包括以下步骤:
在进行上电或复位操作后,所述存储模块生成所述第一数值并进行存储;
所述处理模块读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块;
在判断出所述第一数值为目标数值后,所述处理模块读取所述共享模块中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输。
所述多核MCU访问共享外设的控制方法中,所述多核MCU访问共享外设的控制方法具体包括:
在进行上电或复位操作后,第一寄存器生成所述第一数值,并将所述第一数值存储在所述存储模块中;
处理器读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块,否则禁止访问共享模块;
在判断出所述第一数值为目标数值后,所述处理器读取第二寄存器中预先写入的所述第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输。
所述多核MCU访问共享外设的控制方法中,所述多核MCU访问共享外设的控制方法还包括:
当所述共享模块处于锁定访问状态时,所述处理器读取第三寄存器中预先写入的所述第三数值,若所述第三数值等于所述预设数值,则解除相应的所述共享模块的锁定访问状态,否则,继续锁定相应的所述共享模块。
一种计算机可读存储介质,所述计算机可读存储介质存储有多核MCU访问共享外设的控制程序,所述多核MCU访问共享外设的控制程序被处理器执行时实现如上所述的多核MCU访问共享外设的控制方法的步骤。
相较于现有技术,本发明提供的一种多核MCU访问共享外设的控制系统和相关设备,控制系统包括:M个存储模块、M个处理模块和N个共享模块;在依次任意一路连接的所述存储模块、所述处理模块和所述共享模块上,存储模块用于在上电或复位操作后生成第一数值并进行存储;处理模块用于读取第一数值,并在判断第一数值为目标数值时,传输数据至共享模块,以及用于在第一数值为目标数值后,读取共享模块中存储的第二数值,并根据第二数值锁定相应的共享模块进行数据传输;共享模块用于提供第二数值,以及用于在判断第一数值为目标数值时,接收处理模块传输的数据。本发明中通过判断第一数值是否为目标数值,而决定是否能将数据正常传输至共享模块,还可根据第二数值锁定相应的共享模块与处理模块进行数据传输,实现了多个MCU正常访问同一个共享外设,从而改善了多个MCU同时访问一个共享外设时的冲突问题。
附图说明
图1为本发明提供的多核MCU访问共享外设的控制系统的较佳实施例的结构框图;
图2为本发明提供的多核MCU访问共享外设的控制系统的较佳实施例的逻辑结构图;
图3为本发明提供的多核MCU访问共享外设的控制系统的较佳实施例中所述处理器的锁定过程图;
图4为本发明提供的多核MCU访问共享外设的控制系统的较佳实施例的总体流程图;
图5为本发明提供的多核MCU访问共享外设的控制方法的较佳实施例的流程图;
图6为本发明提供的多核MCU访问共享外设的控制方法的较佳实施例的具体流程图。
附图说明
100:存储模块;110:第一寄存器;200:处理模块;210:处理器;300:共享模块;310:第二寄存器;320:第三寄存器。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明提供了一种多核MCU访问共享外设的控制系统及相关设备。本发明中通过先读取第一数值,并判断第一数值是否为目标数值,而决定是否能将数据正常传输至共享模块,并可在判断出第一数值是否为目标数值时,读取第二数值并根据第二数值锁定相应的共享模块进行数据传输,还可在所述共享模块处于锁定状态时,读取第三数值并与预设数值进行比较,若第三数值等于预设数值则解除锁定状态,从而实现多个MCU正常访问同一个共享外设,有效地改善了多个MCU同时访问一个共享外设时的冲突问题。
下面通过具体示例性的实施例对多核MCU访问共享外设的控制系统设计方案进行描述,需要说明的是,下列实施例只用于对发明的技术方案进行解释说明,并不做具体限定:
请参阅图1,本发明提供的一种多核MCU访问共享外设的控制系统,所述多核MCU访问共享外设的控制系统包括:M个存储模块100、M个处理模块200和N个共享模块300;每一个所述处理模块200均与一个所述存储模块100连接,每一个所述处理模块200还均与N个共享模块300连接;在依次任意一路连接的所述存储模块100、所述处理模块200和所述共享模块300上,所述存储模块100用于在上电或复位操作后生成第一数值并进行存储;所述处理模块200用于读取所述第一数值,并在判断所述第一数值为目标数值时,传输数据至所述共享模块300,用于在所述第一数值为目标数值后,读取所述共享模块300中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块300进行数据传输,以及用于读取所述共享模块300中存储的第三数值后,与预设数值进行比较,若大小相等则解除相应的所述共享模块300的锁定状态;所述共享模块300用于提供所述第二数值和所述第三数值,以及用于在判断所述第一数值为目标数值时,接收所述处理模块200传输的所述数据。其中,所述共享模块300可以是共享外设;所述存储模块100为flash option;所述存储模块100和所述处理模块200均属于MCU的一部分,由M个所述存储模块100和M个所述处理模块200可以构成M个MCU;M可以等于N,且均为大于或等于1的正整数;所述目标数值为“1”。
具体地,当给所述多核MCU访问共享外设的控制系进行上电或复位操作后,所述存储模块100会生成所述第一数值,并将所述第一数值存储在自身中,然后,所述处理模块200读取所述存储模块100中存储的所述第一数值,并判断所述第一数值是否为目标数值(“1”),若所述第一数值为目标数值,则所述处理模块200能够正常访问相应的所述共享模块300,所述处理模块200将所述数据传输至所述共享模块300,否则,例如为“0”,则所述处理模块200无法对所述共享模块300进行访问,即无法将所述数据传输至所述共享模块300;接下来,在判断出所述第一数值为目标数值时,已被锁定访问的所述处理模块200还可以通过读取所述共享模块300中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块300进行数据传输,即根据所述第二数值,只允许特定的所述处理模块200访问所述共享模块300,而如果需要对所述共享模块300的锁定状态进行解锁时,则需要所述处理模块200读取所述共享模块300中存储的第三数值后,与所述预设数值进行比较,若大小相等则解除相应的所述共享模块300的锁定状态,若大小不等,则继续保持所述共享模块300的锁定状态。需要说明是:解除相应的所述共享模块300的锁定状态,只能是与已被是锁定了的所述共享模块300进行锁定访问的所述处理模块200来解锁,即所述处理模块200只能是通过自身来锁定和解锁。
本发明中通过所述处理模块200判断所述第一数值是否为目标数值,而决定是否能够正常访问所述共享模块300,即是否将所述数据传输至所述共享模块300,从而实现在访问所述共享模块300前,通过判断来决定是否访问,并通过在判断出所述第一数值是否为目标数值时,根据读取出所述共享模块300中存储的第二数值,来锁定相应的所述共享模块300与所述处理模块200进行数据传输,从而实现特定的所述共享模块300对所述共享模块300的专属访问,以及通过将所述共享模块300中存储的第三数值与所述预设数值进行比较,若大小相等则由该特定的所述处理模块200解除相应的所述共享模块300的锁定状态,从而实现了解除相应的所述共享模块300的锁定状态,最终可以有效避免共享外设的地址访问冲突,可以避免发生外设错误操作。
需要说明的是本发明中也可在判断出所述第一数值为“0”时,所述处理模块200将所述数据传输至所述共享模块300,具体看触发所述处理模块200正常访问所述共享模块300的条件是如何设计的。
进一步地,所述存储模块100包括:第一寄存器110;所述第一寄存器110与对应的一个所述处理模块200连接;其中,在本发明的实施例中每个所述存储模块均标记为100,但是为了区分,第1个所述第一寄存器标记为111,第2个所述第一寄存器标记为112,第3个所述第一寄存器标记为113,一直到第M个所述第一寄存器标记为11M;所述第一寄存器110包括XX_ACCESSABLE寄存器,属于semaphore(旗语)寄存器的一部分,所述XX_ACCESSABLE寄存器在上电或者复位产生时,自动加载到flash option中的。
具体地,当给所述多核MCU访问共享外设的控制系进行上电或复位操作后,所述XX_ACCESSABLE寄存器内的所述第一数值自动加载到所述存储模块100(flash option)中,以便所述处理器210读取所述存储模块100中存储的所述第一数值,并进行下一步的操作。本发明中在进行上电或复位操作后,通过所述XX_ACCESSABLE寄存器自动将所述第一数值加载到所述存储模块100中,以便所述处理器210进行读取后根据所述第一数值判断能否访问所述共享模块300。
进一步地,所述处理模块200包括:处理器210;所述处理器210与对应的一个所述存储模块100连接,所述处理器210还均与每一个所述共享模块300连接;其中,在本发明的实施例中每个所述处理模块均标记为200,但是为了区分,第1个所述处理器标记为211,第2个所述处理器标记为212,第3个所述处理器标记为213,一直到第M个所述处理器标记为21M。
具体地,当给所述多核MCU访问共享外设的控制系进行上电或复位操作后,所述存储模块100会生成所述第一数值,并将所述第一数值存储在自身中,然后,所述处理器210读取所述存储模块100中存储的所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则所述处理器210能够正常访问相应的所述共享模块300,所述处理器210将所述数据传输至所述共享模块300,否则,所述处理器210无法对所述共享模块300进行访问,即无法将所述数据传输至所述共享模块300,那么,该情况下,所述处理器210无需响应所述共享模块300产生的中断,从而可以屏蔽掉不必要的中断处理带来的开销;
接下来,在判断出所述第一数值为目标数值时,已被锁定访问的所述处理器210还可以通过读取所述共享模块300中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块300与所述处理器210进行数据传输,即根据所述第二数值,只允许特定的所述处理器210访问所述共享模块300,而如果需要对所述共享模块300的锁定状态进行解锁时,则需要所述处理器210读取所述共享模块300中存储的第三数值后,与所述预设数值进行比较:若大小相等则解除相应的所述共享模块300的锁定状态;若大小不等,则继续保持所述共享模块300的锁定状态。需要说明是:同样地解除相应的所述共享模块300的锁定状态,只能是与已被是锁定了的所述共享模块300进行锁定访问的所述处理器210来解锁,即所述处理器210只能是通过自身来锁定和解锁。
本发明中所述处理器210通过判断所述第一数值是否为目标数值,实现是否对所述共享模块300进行直接访问,通过根据所述第二数值锁定相应的所述共享模块300与所述处理器210进行数据传输,实现对特定的所述共享模块300进行专属访问,通过将所述第三数值与所述预设数值进行比较,并根据比较结果决定是否解除相应的所述共享模块300的锁定状态,从而实现了只能由该特定的所述共享模块300决定是否解除相应的所述共享模块300的锁定状态。
进一步地,所述共享模块300包括:第二寄存器310和第三寄存器320;所述第二寄存器310和所述第三寄存器320均与每一个所述处理器210连接;其中,在本发明的实施例中每个所述共享模块均标记为300,但是为了区分,第1个所述第二寄存器标记为311,第2个所述第二寄存器标记为312,第3个所述第二寄存器标记为313,一直到第N个所述第二寄存器标记为31N,同理,第1个所述第三寄存器标记为321,第2个所述第三寄存器标记为322,第3个所述第三寄存器标记为323,一直到第N个所述第三寄存器标记为32N。其中,所述第二寄存器310包括LOCK寄存器,所述第三寄存器320包括KEY寄存器,所述LOCK寄存器同样属于semaphore(旗语)寄存器的一部分,所述LOCK寄存器是可读可写的。
具体地,所述处理器210和所述共享模块300的逻辑结构图如图2所示,图2中以2个处理器210(CPU1和CPU2)和2个共享外设地址(共享外设1和共享外设2)为例,其中,semaphore1寄存器和semaphore2寄存器均是整合了XX_ACCESSABLE寄存器和LOCK寄存器;开关逻辑1-开关逻辑4都是通过判断逻辑打开的,判断逻辑1和判断逻辑2就是属于判断所述第一数值是否为目标数值的判断条件,只有当所述第一数值为目标数值时,判断逻辑的结果输出才是真,那么就控制开关逻辑打开,是属于一种硬件控制的。每个共享外设都有一组semaphore寄存器(包括XX_ACCESSABLE寄存器和LOCK寄存器)与之连接,图2中列出两种方式访问共享外设,以CPU2为例说明:CPU2可以通过开关逻辑2和开关逻辑4直接访问共享外设1和共享外设2,但是开关逻辑是通过判断逻辑打开的,所以没有开关逻辑的判断条件,开关逻辑2和开关逻辑4是无法直接打开的,但是可以在上电或复位时,将CPU1中和CPU2中XX_ACCESSABLE寄存器存储的第一数值上传到存储模块100(flash option)中,然后,通过判断逻辑,即判断所述第一数值是否是否为目标数值,看是否打开开关逻辑,来决定是否能访问到共享外设。
而在判断出所述第一数值为目标数值后,所述处理器210还可以通过读取所述共享模块300中所述第二寄存器310(LOCK寄存器)内存储的预先写入的所述第二数值,并根据所述第二数值锁定相应的所述共享模块300与所述处理器210进行数据传输,即对于其中一个共享外设n来说,可能会出现Q个所述处理器210与所述共享外设中的所述LOCK寄存器连接,那么通过根据Q个所述处理器210读取到的各自的所述第二数值,锁定Q个所述CPU中的任意一个处理器210与共享外设n进行数据传输;具体的锁定过程见图3所示,图3中以4个处理器210(CPU1、CPU2、CPU3和CPU2)连接1个共享外设为例,判断由4个CPU组成的4位二进制数字,即判断由4个LOCK寄存器中各自存储的所述第二数值组成4位二进制数字内是否为目标数值,如果4个所述第二数值都是“0”则表示没有被锁定访问,那么就可以向LOCK寄存器写入不同的值来锁定访问,即通过改变所述第二数值锁定对应的CPU。如下所示:
4'b0001表示只允许CPU1访问共享外设1;4'b0010表示只允许CPU2访问共享外设1;4'b0100表示只允许CPU3访问共享外设1;4'b1000表示只允许CPU4访问共享外设1;同理,如果是连接共享外设2,也是通过同样的方式进行锁定访问。而对于一个共享外设来说,只能对一个处理器210进行锁定,即在其中一个所述共享外设与多个所述处理器210连接时,多个所述LOCK寄存器对应的多个所述第二数值中只能同时一位有效(同时只有一位是目标数值)。
而如果需要对已被锁定的所述共享模块300的锁定状态进行解锁时,则需要已被锁定的所述处理器210读取所述共享模块300中所述第三寄存器320(KEY寄存器)内存储的预先写入的所述第三数值,并将所述第三数值与所述预设数值进行比较:若大小相等则解除相应的所述共享模块300的锁定状态,若大小不等,则继续保持所述共享模块300的锁定状态,从而实现只能由已被锁定的所述处理器210本身解锁。本发明提供的所述多核MCU访问共享外设的控制系统的总体流程图如图4所示,其中,“硬件判断”是所述处理器210直接读取所述第一数值,并判断是不是目标数值的过程,KEY值为所述第三数值,设定值为预设数值,当所述KEY值等于所述设定值的时候,所述共享外设可接受所有的CPU的正常访问。
本发明中通过将semaphore(旗语)寄存器分成两部分:所述XX_ACCESSABLE寄存器和所述LOCK寄存器,并将所述XX_ACCESSABLE寄存器配置在所述存储模块100(flashoption)中,将所述LOCK寄存器配置在所述共享模块300(外接设备)中;通过根据所述共享模块300中所述第二寄存器310(LOCK寄存器)内存储的预先写入的所述第二数值,来锁定相应的所述共享模块300与所述处理器210进行数据传输,以及通过根据所述第三寄存器320(KEY寄存器)内存储的预先写入的所述第三数值,实现了一次只能由一个所述处理器210进行锁定和自身解锁,从而有效地避免多核MCU同时访问共享外设时造成的冲突。
进一步地,请参阅图5,本发明提供的一种基于如上所述的多核MCU访问共享外设的控制系统的多核MCU访问共享外设的控制方法,所述多核MCU访问共享外设的控制方法包括以下步骤:
S01、在进行上电或复位操作后,所述存储模块100生成所述第一数值并进行存储;
S02、所述处理模块200读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块300;
S03、在判断出所述第一数值为目标数值后,所述处理模块200读取所述共享模块300中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块300进行数据传输。其中,所述目标数值为“1”。
具体地,在进行上电或复位操作后,所述存储模块100会生成所述第一数值,并将所述第一数值存储在自身中,然后,所述处理模块200读取所述存储模块100中存储的所述第一数值,并判断所述第一数值是否为目标数值(“1”),若所述第一数值为目标数值,则所述处理模块200能够正常访问相应的所述共享模块300,所述处理模块200将所述数据传输至所述共享模块300,否则,所述处理模块200无法对所述共享模块300进行访问,从而实现通过判断所述第一数值是否为目标数值,来决定是否访问所述共享模块300;接下来,在判断出所述第一数值为目标数值时,所述处理模块200还可以通过读取所述共享模块300中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块300进行数据传输,从而实现特定的所述共享模块300对所述共享模块300的专属访问,进而可以有效避免共享外设的地址访问冲突,可以避免发生外设错误操作。
进一步地,请参阅图6,所述多核MCU访问共享外设的控制方法具体包括:
S10、在进行上电或复位操作后,第一寄存器110生成所述第一数值,并将所述第一数值存储在所述存储模块100中;
S20、处理器210读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块300,否则禁止访问共享模块300;
S30、在判断出所述第一数值为目标数值后,所述处理器210读取第二寄存器310中预先写入的所述第二数值,并根据所述第二数值锁定相应的所述共享模块300进行数据传输。
进一步地,请继续参阅图6,所述多核MCU访问共享外设的控制方法还包括:
S40、当所述共享模块300处于锁定访问状态时,所述处理器210读取第三寄存器320中预先写入的所述第三数值,若所述第三数值等于所述预设数值,则解除相应的所述共享模块300的锁定访问状态,否则,继续锁定相应的所述共享模块300。
具体地,在进行上电或复位操作后,所述第一寄存器110内的所述第一数值自动加载到所述存储模块100(flash option)中,所述处理器210再读取所述存储模块100中所述第一数值,并进行判断:若所述第一数值为目标数值,则所述处理器210能够正常访问相应的所述共享模块300,所述处理器210将所述数据传输至所述共享模块300,否则,例如为“0”,则所述处理器210无法对所述共享模块300进行访问,即无法将所述数据传输至所述共享模块300;接下来,在判断出所述第一数值为目标数值时,所述处理器210还可以通过读取所述第二寄存器310(LOCK寄存器)内存储的预先写入的所述第二数值,并根据所述第二数值锁定相应的所述共享模块300与所述处理器210进行数据传输,从而实现通过预设所述第二数值为高电平,而不允许其他处理器210来访问这个共享外设;最后,如果需要对所述共享模块300的锁定状态进行解锁时,则需要已被锁定访问的所述处理器210读取所述共享模块300中所述第三寄存器320(KEY寄存器)内存储的预先写入的所述第三数值,并将所述第三数值与所述预设数值进行比较:若大小相等则解除相应的所述共享模块300的锁定状态,若大小不等,则继续保持所述共享模块300的锁定状态。
本发明中通过所述处理器210在判断出所述第一寄存器110内的所述第一数值为目标数值后,根据所述第二寄存器310(LOCK寄存器)内的第二数值锁定相应的所述处理器210与所述共享模块300(共享外设)进行访问,从而有效地改善了多个所述处理器210与所述共享外设连接时,出现访问冲突和共享外设错误操作;以及已被锁定访问的所述处理器210通过将所述第三寄存器320(KEY寄存器)内的所述第三数值与所述预设数值进行比较,在所述第三数值与所述预设数值相等时,解除相应的所述共享模块300的锁定访问状态,从而实现所述处理器210实现自身锁定和解锁。
进一步地,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有多核MCU访问共享外设的控制程序,所述多核MCU访问共享外设的控制程序被处理器210执行时实现如上所述的多核MCU访问共享外设的控制方法的步骤;由于上述对该所述多核MCU访问共享外设的控制方法的步骤进行了详细的描述,在此不再赘述。
进一步地,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有自动并行策略搜索程序40,所述自动并行策略搜索程序40被处理器执行时实现如上所述的多核MCU访问共享外设的控制方法的步骤;由于上述对该所述多核MCU访问共享外设的控制方法的步骤进行了详细的描述,在此不再赘述。
综上所述,本发明提供的一种多核MCU访问共享外设的控制系统和相关设备,控制系统包括:M个存储模块、M个处理模块和N个共享模块;存储模块用于在上电或复位操作后生成第一数值并进行存储;在依次任意一路连接的所述存储模块、所述处理模块和所述共享模块上,处理模块用于读取第一数值,并在判断第一数值为目标数值时,传输数据至共享模块,以及用于在第一数值为目标数值后,读取共享模块中存储的第二数值,并根据第二数值锁定相应的共享模块进行数据传输;共享模块用于提供第二数值,以及用于在判断第一数值为目标数值时,接收处理模块传输的数据。本发明中通过判断第一数值是否为目标数值,而决定是否能将数据正常传输至共享模块,还可根据第二数值锁定相应的共享模块与处理模块进行数据传输,实现了多个MCU正常访问同一个共享外设,从而改善了多个MCU同时访问一个共享外设时的冲突问题。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种多核MCU访问共享外设的控制系统,其特征在于,所述多核MCU访问共享外设的控制系统包括:M个存储模块、M个处理模块和N个共享模块;每一个所述处理模块均与一个所述存储模块连接,每一个所述处理模块还均与N个共享模块连接;在依次任意一路连接的所述存储模块、所述处理模块和所述共享模块上,所述存储模块用于在上电或复位操作后生成第一数值并进行存储;所述处理模块用于读取所述第一数值,判断所述第一数值为目标数值时,传输数据至所述共享模块,并读取所述共享模块中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输,以及用于读取所述共享模块中存储的第三数值后,与预设数值进行比较,若大小相等则解除相应的所述共享模块的锁定状态;所述共享模块用于提供所述第二数值和所述第三数值,以及用于在判断所述第一数值为目标数值时,接收所述处理模块传输的所述数据。
2.根据权利要求1所述的多核MCU访问共享外设的控制系统,其特征在于,所述处理模块包括:处理器;所述处理器与对应的一个所述存储模块连接,所述处理器还均与每一个所述共享模块连接。
3.根据权利要求1所述的多核MCU访问共享外设的控制系统,其特征在于,所述存储模块包括:第一寄存器;所述第一寄存器与对应的一个所述处理模块连接。
4.根据权利要求2所述的多核MCU访问共享外设的控制系统,其特征在于,所述共享模块包括:第二寄存器和第三寄存器;所述第二寄存器和所述第三寄存器均与每一个所述处理器连接。
5.根据权利要求3所述的多核MCU访问共享外设的控制系统,其特征在于,所述第一寄存器包括XX_ACCESSABLE寄存器。
6.根据权利要求4所述的多核MCU访问共享外设的控制系统,其特征在于,所述第二寄存器包括LOCK寄存器,所述第三寄存器包括KEY寄存器。
7.一种基于权利要求1-6任一项所述的多核MCU访问共享外设的控制系统的多核MCU访问共享外设的控制方法,其特征在于,所述多核MCU访问共享外设的控制方法包括以下步骤:
在进行上电或复位操作后,所述存储模块生成所述第一数值并进行存储;
所述处理模块读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块;
在判断出所述第一数值为目标数值后,所述处理模块读取所述共享模块中存储的第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输。
8.根据权利要求7所述的多核MCU访问共享外设的控制方法,其特征在于,所述多核MCU访问共享外设的控制方法具体包括:
在进行上电或复位操作后,第一寄存器生成所述第一数值,并将所述第一数值存储在所述存储模块中;
处理器读取所述第一数值,并判断所述第一数值是否为目标数值,若所述第一数值为目标数值,则将所述数据传输至所述共享模块,否则禁止访问共享模块;
在判断出所述第一数值为目标数值后,所述处理器读取第二寄存器中预先写入的所述第二数值,并根据所述第二数值锁定相应的所述共享模块进行数据传输。
9.根据权利要求8所述的多核MCU访问共享外设的控制方法,其特征在于,所述多核MCU访问共享外设的控制方法还包括:
当所述共享模块处于锁定访问状态时,所述处理器读取第三寄存器中预先写入的所述第三数值,若所述第三数值等于所述预设数值,则解除相应的所述共享模块的锁定访问状态,否则,继续锁定相应的所述共享模块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多核MCU访问共享外设的控制程序,所述多核MCU访问共享外设的控制程序被处理器执行时实现如权利要求7-9任一项所述的多核MCU访问共享外设的控制方法的步骤。
CN202210562226.5A 2022-05-23 2022-05-23 一种多核mcu访问共享外设的控制系统及相关设备 Active CN115033394B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210562226.5A CN115033394B (zh) 2022-05-23 2022-05-23 一种多核mcu访问共享外设的控制系统及相关设备
EP22943380.0A EP4369198A1 (en) 2022-05-23 2022-08-02 Control method for multi-core mcu to access shared peripheral, and related device
PCT/CN2022/109602 WO2023226189A1 (zh) 2022-05-23 2022-08-02 多核mcu访问共享外设的控制方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210562226.5A CN115033394B (zh) 2022-05-23 2022-05-23 一种多核mcu访问共享外设的控制系统及相关设备

Publications (2)

Publication Number Publication Date
CN115033394A true CN115033394A (zh) 2022-09-09
CN115033394B CN115033394B (zh) 2023-05-26

Family

ID=83121901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210562226.5A Active CN115033394B (zh) 2022-05-23 2022-05-23 一种多核mcu访问共享外设的控制系统及相关设备

Country Status (3)

Country Link
EP (1) EP4369198A1 (zh)
CN (1) CN115033394B (zh)
WO (1) WO2023226189A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117873930A (zh) * 2024-01-19 2024-04-12 无锡摩芯半导体有限公司 车规级域控mcu中多个can通信模块ram空间动态共享方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101399695A (zh) * 2007-09-26 2009-04-01 阿里巴巴集团控股有限公司 一种操作共享资源的方法和设备
CN104063331A (zh) * 2014-07-03 2014-09-24 龙芯中科技术有限公司 处理器、共享存储区域访问方法和锁管理器
CN104346317A (zh) * 2013-07-23 2015-02-11 中兴通讯股份有限公司 共享资源访问方法和装置
US9519652B2 (en) * 2012-04-27 2016-12-13 Huawei Technologies Co., Ltd. Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system
CN112905962A (zh) * 2021-03-04 2021-06-04 深圳市航顺芯片技术研发有限公司 一种mcu内程序代码保护的方法、智能终端及存储介质
CN113039532A (zh) * 2018-07-24 2021-06-25 耶路撒冷理工学院 用于实现实施复合赋值的共享无锁存储器的系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108604281B (zh) * 2016-11-24 2020-09-08 华为技术有限公司 数据处理的方法及其终端
CN116438518A (zh) * 2020-11-16 2023-07-14 许梓俊 通过硬件加速内核线程进行微线程控制的处理器架构
CN112631742B (zh) * 2020-12-30 2023-10-31 上海金卓科技有限公司 一种资源访问权限管理装置、方法及系统
CN114036091B (zh) * 2021-10-30 2023-06-16 西南电子技术研究所(中国电子科技集团公司第十研究所) 多处理器外设复用电路及其复用方法
CN114490127A (zh) * 2022-01-20 2022-05-13 Oppo广东移动通信有限公司 核间通信方法、装置、电子设备及存储介质
CN114328322B (zh) * 2022-03-17 2022-08-05 之江实验室 一种可配置功能模式的dma控制器运行方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101399695A (zh) * 2007-09-26 2009-04-01 阿里巴巴集团控股有限公司 一种操作共享资源的方法和设备
US9519652B2 (en) * 2012-04-27 2016-12-13 Huawei Technologies Co., Ltd. Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system
CN104346317A (zh) * 2013-07-23 2015-02-11 中兴通讯股份有限公司 共享资源访问方法和装置
CN104063331A (zh) * 2014-07-03 2014-09-24 龙芯中科技术有限公司 处理器、共享存储区域访问方法和锁管理器
CN113039532A (zh) * 2018-07-24 2021-06-25 耶路撒冷理工学院 用于实现实施复合赋值的共享无锁存储器的系统
CN112905962A (zh) * 2021-03-04 2021-06-04 深圳市航顺芯片技术研发有限公司 一种mcu内程序代码保护的方法、智能终端及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117873930A (zh) * 2024-01-19 2024-04-12 无锡摩芯半导体有限公司 车规级域控mcu中多个can通信模块ram空间动态共享方法

Also Published As

Publication number Publication date
WO2023226189A1 (zh) 2023-11-30
EP4369198A1 (en) 2024-05-15
CN115033394B (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
US4698753A (en) Multiprocessor interface device
US4237534A (en) Bus arbiter
US4453214A (en) Bus arbitrating circuit
US4380798A (en) Semaphore register including ownership bits
US5907862A (en) Method and apparatus for the sharing of a memory device by multiple processors
US4282572A (en) Multiprocessor memory access system
US9690737B2 (en) Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks
EP0186006A2 (en) Multiprocessor system
US4415972A (en) Dual port memory interlock
US5666515A (en) Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
PL182982B1 (pl) Sposób i podsystem interfejsu do dołączania karty rozszerzeń
US6795901B1 (en) Shared memory interface with conventional access and synchronization support
US5287503A (en) System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register
CN108733594B (zh) 存储器控制器与数据储存装置
PL180029B1 (pl) System komputerowy z ukladem mostkowym pomiedzy dwiema szynami PL PL PL
US7089339B2 (en) Sharing of functions between an embedded controller and a host processor
CN102449612B (zh) 数据空间仲裁器
US5727172A (en) Method and apparatus for performing atomic accesses in a data processing system
US7313794B1 (en) Method and apparatus for synchronization of shared memory in a multiprocessor system
CN115033394B (zh) 一种多核mcu访问共享外设的控制系统及相关设备
JPH10143467A (ja) データ処理システムにおいてバス所有権を調停するための方法および装置
EP0363882B1 (en) Multiprocessor system using communication register having processor-associated storage locations
CN111124622A (zh) 一种多线程访问临界资源的方法、存储介质及智能终端
JP2749819B2 (ja) 共有メモリ制御方式
US5261108A (en) Multiprocessor communications register providing complete access in a full access mode, and mapped access in a partial access mode

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