CN107810492B - 可配置的邮箱数据缓冲器装置 - Google Patents

可配置的邮箱数据缓冲器装置 Download PDF

Info

Publication number
CN107810492B
CN107810492B CN201680035355.1A CN201680035355A CN107810492B CN 107810492 B CN107810492 B CN 107810492B CN 201680035355 A CN201680035355 A CN 201680035355A CN 107810492 B CN107810492 B CN 107810492B
Authority
CN
China
Prior art keywords
data
configurable
slave
master
core
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
Application number
CN201680035355.1A
Other languages
English (en)
Other versions
CN107810492A (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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN107810492A publication Critical patent/CN107810492A/zh
Application granted granted Critical
Publication of CN107810492B publication Critical patent/CN107810492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)

Abstract

本发明揭示一种单芯片微控制器,其具有主控核心及至少一个从控核心。所述主控核心由主控系统时钟计时,且所述从控核心由从控系统时钟计时,且其中每一核心与多个外围装置相关联以分别形成主控微控制器及从控微控制器。在所述主控微控制器与所述从控微控制器之间提供通信接口,其中所述通信接口具有与流量控制逻辑耦合的多个可配置的方向数据寄存器;所述流量控制逻辑可配置以将方向指派到所述多个可配置的数据寄存器中的每一者。

Description

可配置的邮箱数据缓冲器装置
相关专利申请案
本申请案主张2015年6月18日申请的第62/181,379号美国临时专利申请案的优先权,所述美国临时申请案出于所有目的特此以引用方式并入本文中。
技术领域
本发明涉及一种多处理器嵌入式系统(例如具有多个核心的微控制器)且特定来说,本发明涉及一种用于此嵌入式系统的可配置的邮箱数据缓冲器设备。
背景技术
多处理器核心微控制器可经设计具有完全分离的核心,且每一核心可基于不同系统时钟操作。因此,为了提供在两个核心之间通信的能力,特定通信接口是必要的。特定来说,需要快速且可靠地跨越两个处理器之间的时钟边界移动小量数据的构件。解决方案必须完全可配置且对于硅使用是有效的。
发明内容
根据实施例,一种单芯片微控制器可包括主控核心及至少一个从控核心,其中所述主控核心由主控系统时钟计时且所述从控核心由从控系统时钟计时,且其中每一核心与多个外围装置相关联以分别形成主控微控制器及从控微控制器;所述单芯片微控制器进一步包括所述主控微控制器与所述从控微控制器之间的通信接口,其中所述通信接口包括与流量控制逻辑耦合的多个可配置的方向数据寄存器;所述流量控制逻辑可配置以将方向指派到所述多个可配置的数据寄存器中的每一者。根据技术方案1所述的单芯片微控制器,其进一步包括用以配置每一方向数据寄存器的熔丝。
根据另一实施例,所述单芯片微控制器可进一步包括用以配置每一方向数据寄存器的配置寄存器。根据另一实施例,所述单芯片微控制器可进一步包括经配置以相对于所述多个可配置的方向数据寄存器在所述主控与从控核心之间提供交握信号的交握逻辑块。根据另一实施例,所述通信接口可经进一步配置以界定多个邮箱,其中所述多个可配置的数据寄存器的连续数据寄存器的可配置数目被指派给每一邮箱。根据另一实施例,所述单芯片微控制器可进一步包括用以配置每一方向数据寄存器的熔丝。根据另一实施例,所述单芯片微控制器可进一步包括用以配置每一方向数据寄存器的配置寄存器。根据另一实施例,在所述单芯片微控制器的编程期间,可指派可配置的数据寄存器的数据方向。根据另一实施例,在所述单芯片微控制器的编程期间,可编程寄存器到邮箱的指派及所述多个可配置的数据寄存器中的每一者的数据方向的指派。根据另一实施例,每一数据寄存器可由方向信号及交握信号控制。根据另一实施例,邮箱的所述可配置的寄存器中的一者可用作控制寄存器。根据另一实施例,所述多个可配置的数据寄存器中的至少一者可作为状态寄存器。根据另一实施例,所述多个可配置的数据寄存器中的至少一者可作为命令寄存器。根据另一实施例,所述单芯片微控制器可进一步包括多个多路复用器,其用于界定仅从所述主控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述从控核心的读取路径或仅从所述从控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述主控核心的读取路径。根据另一实施例,当分别设置从所述主控核心或从控核心到所述可配置的数据寄存器中的一者的所述写入路径时,从所述可配置的数据寄存器中的一者到所述主控核心或从控核心的读取路径是可用的。根据另一实施例,当设置从所述主控核心到所述可配置的数据寄存器中的一者的所述写入路径时,所述主控时钟提供用于写入所述可配置的数据寄存器中的所述一者的时钟且所述从控时钟提供用于读取所述可配置的数据寄存器中的所述一者的时钟。根据另一实施例,当设置从所述从控核心到所述可配置的数据寄存器中的一者的所述写入路径时,所述从控时钟提供用于写入所述可配置的数据寄存器中的所述一者的时钟且所述主控时钟提供用于读取所述可配置的数据寄存器中的所述一者的时钟。根据另一实施例,所述单芯片微控制器可进一步包括所述通信接口内的读取先进先出(FIFO)存储器及写入FIFO存储器,其中所述读取FIFO存储器包括与所述从控核心耦合的数据输入及与所述主控核心耦合的数据输出且所述写入FIFO存储器包括与所述主控核心耦合的数据输入及与所述从控核心耦合的数据输出。根据另一实施例,可任选地通过配置寄存器启用所述读取FIFO存储器及写入FIFO存储器。根据另一实施例,所述单芯片微控制器可进一步包括多个从控核心,其中所述通信接口包括多个数据寄存器设置,每一数据寄存器设置包括与流量控制逻辑耦合的多个可配置的方向数据寄存器;所述流量控制逻辑可配置以将方向指派到所述多个可配置的数据寄存器中的每一者。
根据另一实施例,在一种用于在单芯片微控制器上的主控核心与从控核心之间提供通信的方法中,其中所述主控核心由主控系统时钟计时且所述从控核心由从控系统时钟计时且其中每一核心与多个外围装置相关联以分别形成主控微控制器及从控微控制器,所述方法包括:在所述主控微控制器与所述从控微控制器之间提供通信接口,配置与流量控制逻辑耦合的多个可配置的方向数据寄存器以形成相应邮箱,对于所述多个可配置的方向数据寄存器中的每一者配置从或到所述主控核心的数据方向;仅通过所述多个可配置的方向数据寄存器来交换所述主控核心与所述从控核心之间的数据。
根据所述方法的另一实施例,在所述单芯片微控制器的编程期间,通过熔丝执行配置的所述步骤。根据所述方法的另一实施例,使用所述主控核心与所述从控核心之间的交握信号来执行交换的所述步骤。根据所述方法的另一实施例,所述多个可配置的数据寄存器的连续数据寄存器的可配置数目可被指派给每一邮箱。根据所述方法的另一实施例,邮箱的所述可配置的寄存器中的一者可用作控制寄存器。根据所述方法的另一实施例,所述多个可配置的数据寄存器的至少一者可用作为状态寄存器或命令寄存器。
附图说明
图1展示双核心微控制器的第一实施例的框图;
图2展示双核心或多核心微控制器的第二实施例的框图;
图3展示根据各种实施例的通信接口的更详细框图;
图4展示根据各种实施例的示范性邮箱配置;
图5展示数据写入通道(顶部)及数据读取通道(底部);
图6展示邮箱交握协议顺序图;及
图7展示双核心或多核心微控制器的任选额外FIFO存储器的框图。
图8展示读取FIFO中断操作;及
图9展示根据各种实施例的经组合的邮箱及FIFO通信接口的框图。
具体实施方式
如图1及2中所展示,双核心或多核心处理装置100、200可经设计以具有含主控中央处理单元(CPU)112的主控微控制器110及各自具有从控中央处理单元122中的一或多个从控单元120,其中每一从控中央处理单元122的核心设计大体上可相同于或类似于主控CPU 112的核心设计。然而,根据其它实施例,从控CPU 122可不同于主控CPU 112。主控微控制器具有其自身的外围装置组,如图1及2中所展示。从控单元120可或可不具有其自身的外围装置组且因此由自身形成微控制器。因此,每一主控及从控装置形成几乎完全独立的处理装置且可与专用总线或通信接口130通信。图1及2展示具有主控微控制器110及单个或多个从控微控制器120的此设计。提供允许在两个核心110、120之间通信的通信接口130。如所展示,每一处理器112、122可在哈佛架构中设计。然而,根据各种实施例的原理可易于转换成冯·诺依曼架构。主控单元包括(例如)用作程序存储器的闪存器116及用作数据存储器的随机存取存储器114,各自与主控核心112耦合。
如图1及2中所展示,从控单元120可经设计成不具有闪存器。相反,提供专用程序随机存取存储器126。归因于事实:此存储器是易失性的,将根据各种实施例通过主控110负载此存储器。此设计选择具有优点:避免由闪存技术提供的瓶颈。闪存器大体上比RAM慢。因此,将不存在读取延迟且从控单元可以更高执行速度操作,其对于某些高速应用程序(例如(例如)SMPS应用程序)是非常有益。如上文所述,可根据各种实施例实施多于一个从控单元120。如果两个核心相同,那么主控核心112可经设计以包含额外指令;可不在从控单元120中实施额外指令或额外指令在从控单元中是无功能的。这些额外指令允许从闪存器116传送数据或将数据从外部源传送到从控装置120的PRAM 126中。举例来说,根据实施例,可在单芯片装置内实施多个核心且每一核心可具有经指派的配置寄存器,其中此寄存器的位中的一者可界定相应单元是主控单元还是从控单元。可呈现仅允许所述核心中的一者被设置为主控单元的逻辑。一旦已设置此位,可允许执行额外指令。在其它单元(从控)中,不会执行这些指令;例如,这些指令可解释为非法运算码。
由主控单元110存取PRAM 126的控制逻辑可位于如图1中所展示的具有缓冲器/比较器单元118的主控单元中。替代地,类似单元可布置在如图2中所展示的具有PRAM封套数据单元128的从控单元120内。任一单元经设计以授予特定于主控单元110或特定于从控单元120的PRAM的存取。其它实施例可将逻辑的一些部分置于主控核心内及将其它部分置于从控核心中或将逻辑布置在两个单元外部。类似地,通信接口130可位于任一单元内部或完全位于两个单元外部。可由如图2中使用虚线所指示的通信接口130提供PRAM存取单元118或128的额外控制。图2还使用虚线展示额外从控单元140及150。所有单元可通过总线及每一从控单元中的相关联封套数据单元128连接。因此,实施例不受限于双核心实施方案。所属领域的技术人员应了解其它实施方案是可能的。
根据各种实施例,提供两种方法以在主控处理器与从控处理器之间传送数据。基于邮箱的数据管道是默认方法且总是存在。基于FIFO的数据管是参数化选项。每一方法具有优点及缺点。
根据各种实施例,在与数据流量控制逻辑(其可为指派给任何邮箱的熔丝)的数个块耦合的通信接口130内,提供一组熔丝可配置的双向n位“邮箱”寄存器。整个说明书中的“双向”意味着相对于当配置寄存器时可选择两个方向中的一者的寄存器。在操作中,每一寄存器是单向的。然而,由于邮箱可包含经配置以在任一方向上操作的寄存器,因此所述邮箱可视为双向。在16位双核心微控制器中,这些寄存器将为n=16位宽。一些额外缓冲消除时钟多路复用问题且避免必须在每一方向上复制邮箱。因此,介于一个字与16个字之间的寻址数据的块可变成邮箱,其中根据一些实施例,待写入/读取的最后寄存器将引导硬件数据流量控制协议。因为每一数据寄存器的方向是可编程的,所以在讨论数据传送协议时,参考主控单元或从控单元是没有意义的。因此,术语“发射器”及“接收器”随后用以分别表示数据写入处理器及数据读取处理器。取决于数据寄存器方向,数据写入处理器及数据读取处理器可分别是主控及从控,或从控及主控。
根据一些实施例,可由(例如)装置熔丝(每个邮箱一个装置熔丝)来确定邮箱寄存器操作数据方向。这可由新颖邮箱寄存器设计结构的使用而变得实用,如下文将更详细解释。
使用数据流量控制协议来控制对邮箱内的(共享资源)数据寄存器的存取。因此,对基于邮箱的数据管道的存取是互斥的(即无法由两个处理器同时存取基于邮箱的数据管道)。在处理对另一处理器的访问控制之前,每一处理器必须完成其存取。
然而,邮箱的所有内容将被存储器映射,且不必须以任何特定顺序存取(除经指派以处置必须由两个处理器最后存取的硬件数据流量控制协议的邮箱寄存器以外)。
此外,不需要在存储器中依序寻址构成软件管理缓冲器的邮箱。这在其中所传送的数据由控制、状态及系统数据的混合物组成的应用程序中可为有益的。此外,对于由多于一个数据寄存器组成的邮箱,邮箱内的所有数据寄存器的方向不必须相同。数据流量控制协议用以在主控与从控之间传送访问控制,但仅指派到协议硬件的数据寄存器必须遵循所需数据方向规则。下文将就图4更详细解释邮箱的数个可能组织到各种大小、方向及能力的缓冲器中。这些组织及缓冲器仅为展现邮箱方案灵活性,且不希望作为特定使用模型。其它配置是可能的。
每一数据流量控制逻辑块可基于熔丝位字段设置(每个数据流量控制块一个位字段)而指派给任何邮箱。上文的结果是:用户可界定高达所支持的邮箱的数目的任何大小的数据缓冲器(其可为受限制的)。数据流量控制逻辑块将被指派到待写入的所述缓冲器的最后元件。缓冲器内的元件(即,个别邮箱寄存器)可经配置用于在任一方向上操作(即,缓冲器内的数据既可写入也可读取)。
仅读取及写入数据寄存器的多任务源及目的处理器时钟引入设计时序问题,使得其不实用(且迫使2个邮箱的样例化,每个方向上一个邮箱)。然而,根据各种实施例,支持两侧上的写入缓冲器及写入数据排布管线的共同读取缓冲器(具有从写入时钟延迟的多路复用时钟),解决时序问题且产生有效设计。
跨越时钟边界的数据导管由于上文概述的原因而通常是单向的。数据流量控制通常与跨越时钟边界或其它接口的数据导管的每一元件相关联。根据各种实施例,熔丝可用以指派交握逻辑以降低设计复杂度(主要降低特殊功能寄存器需求)。
在微控制器的配置期间,即当编程主控闪存程序时,通常仅设置熔丝,例如通过外部程序设计师装置。通常,初始配置经设计用于特定应用程序,且不需要在运行时间期间改变。因此,熔丝的使用可为优选的。然而,可代以使用编程邮箱的其它构件。举例来说,可使用任何类型的非易失性存储器来替代熔丝。
多核心微控制器或嵌入式系统可经设计以包括主控核心及从控处理器,如图1或2中所展示。如上文所提及,与共处理器不同,从控处理器是完全功能独立处理器核心且可具有多个经指派或可指派的外围装置。类似地,主控处理器可具有多个经指派或可指派的外围装置,且基于其自身的时钟运行。因此,不同核心可使用不同速度计时,例如根据一些实施例,从控核心可使用更高时钟以能够控制处理密集任务。通过RAM的使用作为大体上比闪存器快的程序存储器也使此变得可能。
根据各种实施例,在以不同时钟率异步运行的主控处理器与从控处理器之间产生简单16位数据通道。此16位通道可经设计以最初是双向的,其中方向可通过熔丝或配置寄存器在程序时间处固定、稳健及灵活性的且仅需要最小硅占据面积,特定来说当使用熔丝用于配置时。
图3展示包含多个邮箱寄存器MBXD0…MBXD15相关联逻辑340、350及熔丝310、320以及将由邮箱寄存器MBXD0…MBXD15链接的主控总线及从控总线的框图。熔丝或配置存储器310、320控制每一邮箱寄存器的方向及交握选择。还提供共享交握逻辑块330。根据一个实施例,十六个邮箱寄存器可布置在16位双核心微控制器中。这些寄存器可指派给不同邮箱,其中每一寄存器仅可指派给邮箱。
图4展示将包含数据、状态及命令字的主控/从控数据接口130中的邮箱的不同可能配置。应注意不指派任何H/W数据流量控制。经由软件协议来控制存取。如图4中所展示,邮箱可分成不同寄存器组410。为此,可使用配置熔丝420,如(例如)图4的右侧上所展示。熔丝420的块将前9个寄存器指派到第一邮箱,保持下一寄存器未使用且将后4个寄存器指派到第二邮箱。通过将熔丝设置为(例如)Fh或任何其它预定义值而将最后两个寄存器用作为状态字及命令字。
实例1展示支持2个单向缓冲器、命令字及状态字的布置。数据流量控制逻辑块被指派到缓冲器中的每一者的最后存取的字(注意缓冲器长度在所支持的邮箱的数目的限制内是任意的)。数据流量控制逻辑块还被指派到所述命令字。然而,因为通过软件控制对所述状态字的存取,所以不需要任何数据流量控制逻辑块。未使用邮箱寄存器MSIxMBXD9。
实例2展示支持2个双向缓冲器及命令字的布置。数据流量控制逻辑块被指派到缓冲器中的一者但不是另一者的最后存取的字。这是因为应用程序可确保仅一个处理器将在完成另一缓冲器存取之后存取缓冲器。数据流量控制逻辑块也被指派到所述命令字。
图5展示图5的上半部分中的数据写入通道及图5的下半部分中的数据读取通道。左侧表示主控侧及右侧表示从控侧。经由用于写入操作及直接用于读取操作的缓冲器寄存器510或520通过多路复用器530来存取实际邮箱540。邮箱540大体上由主控核心控制。然而,时钟由主控或从控通过多路复用器550提供。如图5中所展示,旗标cfg_mbox_master_data_rd[n]确定邮箱寄存器配置为相对于主控的写入通道(图5的顶部)或读取通道(图5的底部)。写入仅由主控或从控允许而读取可由主控或从控执行。可根据实施例实施多路复用器560及570以支持发射器写入,紧接着(例如)读取(这是因为实际邮箱更新延迟达一半循环)及选择实际邮箱寄存器作为接收器的读取源。
根据实施例,对于发射器,如果邮箱被写入且接着在读取的1循环内被读取,那么硬件断言pipelined_wren且读取来自恰被写入的缓冲器寄存器510或520。如果所述邮箱在其被写入之后的1循环之后的任何点处被读取,那么pipeline_wren=0且读取来源于实际邮箱寄存器。但是,实际邮箱总是与邮箱缓冲器510或520一起更新。其它实施方案是可能的,其中发射缓冲器被读取。对于接收器,很显然,绝没有写入的MBOX缓冲器510/520不被读取,所以信号pipelined_wren=0且选择实际邮箱。
根据实施例,除了其数据方向之外,16个MSI邮箱数据寄存器MSIxMBXDn(其中0<=n<=15)中的每一者相同。根据一些实施例,布置可含有8个数据流量控制协议硬件块,数据流量控制协议硬件块中的每一者可指派到任何数据寄存器以形成邮箱。
下文更详细描述通信接口的示范性实施例。所有邮箱MSIxMBXDn数据寄存器是单向使得寄存器内容绝没有从主控端口及从控端口两者读取/写入。每一MSIxMBXDn寄存器从主控(作为发射器)读取/写入且仅从从控(作为接收器)读取或从从控(作为发射器)读取/写入且仅从主控(作为接收器)读取,取决于所选定的通道数据方向。此方法避免数据写入冲突且希望简化设计。
每一邮箱数据寄存器可经熔丝配置为读取通道或写入通道(从主控角度来看)。对于邮箱[n]:
●cfg_mbox_master_data_rd[n]=0:数据寄存器配置为主控数据写入通道。
●cfg_mbox_master_data_rd[n]=1:数据寄存器配置为主控数据读取通道。
此概念提供适当灵活性替代使得所有寄存器为双向(其使设计变得复杂化)。此方法的主要缺点是每一寄存器的数据方向在运行时间处固定。
根据各种实施例,支持一种自动数据流量控制机构以控制通过邮箱的数据的流量。
8个数据流量交握协议硬件块中的每一者控制位于MSIxMBXS寄存器中的两个数据备妥状态旗标(DTRDY_α,其中α是A、B、C、D、E、F、G或H)。一个旗标是用于数据发射器且位于接口的发射侧上的MSIxMBXS寄存器中。另一旗标是用于数据接收器且位于接口的接收侧上的MSIxMBXS寄存器中。
因为数据发射器总是被假定为传送起始器,所以不需要来自数据接收器的硬件数据请求。如果应用程序需要起始传送的数据请求,那么必须通过软件来处置所述数据请求。接收处理器软件将必须对发射处理器指示需要数据。此可通过中断或通过基于邮箱的软件命令协议来实现。
交握协议硬件块中的每一者具有与交握协议硬件块相关联的熔丝启用(cfg_mbox_handshake_enable_n[7:0])。必须编程熔丝以启用对应交握协议硬件块。熔丝cfg_mbox_handshake_enable_n[0]对应于交握协议硬件块A,cfg_mbox_handshake_enable_n[1]对应于交握协议硬件块B等等。
8个协定块中的每一者由cfg_mbox_handshake_register_select[31:0]内的八个4位字段指派到特定MSI邮箱数据寄存器。所选定的MSI邮箱寄存器称为邮箱协议数据寄存器。未指派的邮箱寄存器称为邮箱数据寄存器。协议数据寄存器可为单个邮箱或通过软件界定为缓冲器的一组邮箱寄存器内的邮箱寄存器。根据一些实施例,当邮箱界定为缓冲器时,最后缓冲器必须存取到协议数据寄存器。类似地,当接收处理器看到数据已备妥且存取邮箱时,最后缓冲器还必须存取到协议数据寄存器。
当任一处理器存取邮箱时,数据流量控制硬件处于闲置状态中(MSIxMBXS.DTRDY_α=0)。发射处理器现可存取邮箱以起始数据传送数据流量控制。数据流量控制如下文所描述操作,其中MSIxMBXDn假定为指派到协议硬件块α(即,MSIxMBXDn是协议数据寄存器):
1.发射处理器:
a)写入除最后数据字之外的所有数据字(如果缓冲器)
b)Din→MSIxMBXDn(最后数据写入);1→DTRDY_α(自动);发送准备读取中断到接收器(自动)
2.接收处理器:
接收准备读取中断1
a)读取除最后数据字之外的所有数据字(如果缓冲器)
b)MSIxMBXDn_αDout(最后数据读取);0→DTRDY_α(自动);发送准备写入中断到发射器(自动)
3.发射处理器:
接收准备写入中断
a)0→DTRDY_α(自动2)
b)回路返回到[1]且根据需要重复。
在步骤3a之后,完成数据流量控制,且发射处理器可退出或继续发送更多数据(即,回路返回到步骤1)。图6中展示协议顺序图。如上文所述,由发射器设置的DTRDY_α旗标写入到MSIxMBXDn寄存器将导致来自对应邮箱的接收器数据流量控制协议中断(准备读取)。
类似地,由MSIxMBXDn寄存器的接收器读取清除DTRDY_α旗标将导致来自对应邮箱的数据发射器数据流量控制协议中断(准备写入)。对于正确操作的数据流量控制,发射处理器不能将新数据发送到邮箱通道中直到发射处理器观察到DTRDY_α=0为止。类似地,接收处理器在自邮箱读取数据之前必须等待直至DTRDY_α=1(或接收处理器可读取旧数据)。
尽管使用中断希望为管理邮箱数据流量控制协议的主要方法,但也可使用软件来轮询状态位。在应用程序(其中通过邮箱发送的数据待在周期性控制程序内使用)中,邮箱数据流量控制状态旗标的软件轮询可为优选方法。发射处理器轮询软件及接收处理器轮询软件应测试其相应DTRDY_α旗标以确定数据流量控制的状态。从发射处理器及接收处理器的角度,数据流量控制状态位的意义如下:
●发射处理器:
-DTRDY_α=0:准备发送数据(邮箱为空或数据陈旧)
-DTRDY_α=1:不准备发送数据(尚未读取邮箱)
●接收处理器:
-DTRDY_α=0:准备接收数据(邮箱为空或数据陈旧)
-DTRDY_α=1:数据可用于读取(但尚未读取)
因为MSIxMBXDn寄存器不经受除POR/BOR之外的任何装置复位,所以如果接收器软件能够使用数据,那么因此保存数据。假设是:如果接收器读取已在进行中(即,触发中断,或轮询及发现设置DTRDY_α),那么优选地是回传有效(如果旧)数据替代复位值。然而,所有DTRDY_α流量控制位(主控及从控两者)经受主控(upbm_reset_n)复位。此是必要的以在复位退出之后初始化数据流量协议块。如果主控经历复位,那么将复位协议数据流量控制MSIxMBXS.DTRDY_α旗标的主控视图及从控视图两者。假定从控复位从主控单元解耦(熔丝MSRE=0)使得如果复位主控那么从控将继续运行,如果主控(发射器)写入到MSIxMBXDn寄存器紧接着主控复位,那么从控(接收器)侧中断请求将不会发生。
如果从控经历复位,那么将既不复位DTRDY_α流量控制位的主控视图,也不复位DTRDY_α流量控制位的从控视图。如果从控(发射器)写入到MSIxMBXDn寄存器紧接着从控复位,那么主控(接收器)侧中断请求仍将正常发生。还需要使用主控复位来复位主控DTRDY_α流量控制位及从控单元DTRDY_α流量控制位两者,以避免可能数据冲突条件。在当主控复位与从控复位未经耦合(熔丝MSRE=0)且从控复位将不停用从控(熔丝SSRE=0)时的从控MSIxMBXS.DTRDY_α旗标情况中,如果从控DTRDY_α旗标由从控复位来复位,那么可出现可能数据冲突条件。
如果从控DTRDY_α旗标在从控复位上经复位,那么可复位主控,其复位DTRDY_α旗标的主控视图,但不是从控的视图。这将留给(仍在运行中的)从控服务从控DTRDY_α旗标机会,且可能在主控写入到对应邮箱时,读取对应邮箱(假定邮箱为空,这是因为主控单元DTRDY_α=0)。
如果接收器DTRDY_α=1,那么由接收器从MSIxMBXDn寄存器的读取将仅产生数据流量控制协议中断(准备写入)。如果接收器DTRDY_α=0(其将是从邮箱的新数据的初始读取之后的情况),那么由接收器的邮箱的后续读取将不具效应(除回传目标邮箱的数据内容以外)。
这允许邮箱由用于移动通过邮箱的最后数据值的暂时存储的接收器使用。然而,在从邮箱读取数据之后,邮箱的内容必须视为陈旧且经受由发射器改变(随时)。因此,为成功管理邮箱暂时存储,假定适当位置存在软件数据传送协议,使得数据接收器可防止数据发射器使用新数据任意重写邮箱的内容。举例来说,如果接收器必须从发射器请求数据(经由另一邮箱或中断),那么发射器将不会重写邮箱。
正如对于任何SFR的情况,MSIxMBXDn寄存器是可字节存取或可字存取的。为当使用数据缓冲器时支持字节大小数据处理及字大小数据处理两者,发射器协议寄存器的MS字节或字写入将设置对应DTRDY_α旗标。类似地,接收器协议数据寄存器(位于MSI的另一侧上)的MS字节或字读取将设置对应DTRDY_α旗标。
如果在装置上可用,那么可使用DMA在MSI的主控侧或从控侧上存取邮箱数据寄存器。邮箱数据流量控制协议将产生可与DMA操作兼容的中断,其允许个别邮箱寄存器内的数据在无需CPU介入的情况下被传送。当主控子系统及/或从控子系统在闲置模式中操作时,也支持邮箱的DMA存取。
对于待传送的第一DMA数据值(或块),可由软件或可通过手动地在软件中写入第一数据值(或数据的块)来触发经指派的发射器DMA通道。当DMA写入到邮箱协议数据寄存器(在块传送的情况中最后写入)时,将设置对应DTRDY_α旗标。设置发射器DTRDY_α旗标将在接口的接收器侧上产生准备读取中断。接收器准备读取中断(在邮箱协议数据寄存器由发射器写入之后起始,其设置DTRDY_α=1)将触发对应接收器DMA通道,且引起对应接收器DMA通道读取目标邮箱(或在块传送的情况中读取若干邮箱)。借此,对应接收器DMA通道将清除对应DTRDY_α旗标。清除接收器DTRDY_α旗标将在接口的发射器侧上产生发射器准备写入中断。这将触发经指派的发射器DMA通道写入下一数据值(或数据的块),且自动设置DTRDY_α旗标,其再次起始序列。
因为邮箱操作为以无关时钟速度操作的两个处理器之间的数据导管,所以当所有数据及控制信号跨越时钟边界移动时,所有数据及控制信号必须同步。当写入数据及当数据变得可用于接收时,这将在数据与控制信号之间产生延迟。这称为邮箱通道延时。
同步延迟是来自MSIxMBXDn的发射器写入到对应接收器中断请求的前缘的1个发射器时钟+2个接收器时钟。在接收器中断请求的断言之前,数据将可用于由接收器读取。对于轮询接收器DTRDY_α旗标的应用程序,延迟是来自MSIxMBXDn的发射器写入到接收器DTRDY_α旗标更新的1个发射器时钟+3个接收器时钟。
类似地,来自MSIxMBXDn的接收器读取到对应发射器中断请求的前缘的延迟将是1个接收器时钟(以更新接收器DTRDY_α旗标)+2个发射器时钟。对于轮询发射器DTRDY_α旗标的应用程序,延迟是来自MSIxMBXDn的接收器读取到对应发射器中断请求的前缘的1个发射器时钟+3个接收器时钟。
因为协议交握是完全自动的,所以促成超过数据传送延时的所有其它延迟将是软件轮询、中断或DMA传送延时的函数。
举例来说,参考图6,如果假定中断(其中启用上下文交换)用以从邮箱读取数据/将数据写入到邮箱,且排除将数据写入到所述邮箱中的时间,那么邮箱通道延时将是从发射器写入循环的端到第一接收器ISR指令的1个(同步)发射器时钟+2个(同步)+5个(异常处理)接收器时钟。
如果系统使用DMA通道来移动数据,那么邮箱通道延时由DMA传送延时(3个循环)及先前所描述的同步延时组成。即,假定DMA通道分配到发射器中的邮箱及接收器中的邮箱两者,在发射器DMA缓冲器与接收器DMA缓冲器之间移动数据的字的邮箱通道延时(假定无总线仲裁延迟发生)将是3个(DMA传送)+1个(同步)发射器时钟+2个(同步)接收器时钟到接收器DMA通道请求。数据将在3个接收器时钟之后到达接收器缓冲器。然而,在传送的第一循环期间,DMA将读取MSIxMBXDn,其将触发回传信号以清除发射器DTRDY_α旗标且起始另一传送。所以回转延时将是1个(DMA读取)+1个(同步)接收器时钟+2个(同步)发射器时钟到下一发射器DMA通道请求。因此,每个传送字的总往返路径延迟是6个发射器时钟+4个接收器时钟。
所提出的实施例提供经由熔丝选择及锁定数据通道的数据流动方向的能力、将数个数据通道流量控制(交握)逻辑块中的一者指派给任何邮箱的能力及在异步时钟域之间产生有利植入的双向数据通道同时避免逻辑复制的能力。
图7展示额外任选FIFO数据管道。双核心或多核心微控制器的实施例还可包含一组两个FIFO 710、720,如图7中所展示;FIFO用于从从控的数据读取及另一FIFO用于数据写入到从控。通过参数来确定每一FIFO的存在及深度。FIFO用以协调主控处理器与从控处理器之间的数据队列。每一FIFO通道数据流动是单向的以简化设计及操作;FIFO是专用读取数据通道,另一FIFO是专用写入数据通道。尽管存在固有同步延迟,但FIFO设计仍是如此使得不需要数据备用(归因于由于同步延迟或操作速度差异的缓慢占用率计算,数据备用通常经添加以适应写入超限)。
如果FIFO不会变空(或遭遇错误条件),那么主控及从控会同时存取FIFO。因此,FIFO可提供比在由另一处理器读取之前必须由处理器负载的基于邮箱的数据管道更佳的通量。
然而,依序负载及卸除FIFO内容且FIFO内容不像邮箱数据管道内的数据那样可随机存取。FIFO也是(依据定义)单向的。这使得FIFO更佳地适于需要最快方法以在处理器之间传送数据的块的应用程序。
如果参数MSI_FIFO_PRESENT=1,那么双核心或多核心微控制器的实施例还可含有(例如)2通道FIFO。FIFO用以协调主控处理器与从控处理器之间的数据队列。如果FIFO不会变空(或遭遇错误条件),那么主控及从控会同时存取FIFO。因此,FIFO可提供比在由另一处理器读取之前必须由处理器负载的基于邮箱的数据管道更佳的通量。每一FIFO通道数据流动是单向的以简化设计及操作;通道是专用读取数据通道,另一通道是专用写入数据通道,如图7中所展示。为了一致,总是相对于主控处理器如何看待FIFO来指称FIFO。
此外,FIFO数据寄存器不具有寄存器名称内的相关联方向。然而,基于主控如何看待这些寄存器,主控WFDATA寄存器将是写入FIFO数据写入(输入)寄存器,及从控WFDATA寄存器将是写入FIFO数据读取寄存器。类似地,主控RFDATA寄存器将是读取FIFO数据读取(输出)寄存器,及从控RFDATA寄存器将是读取FIFO数据写入寄存器。在以下章节中,数据发射器是将数据写入到FIFO中的处理器。相反,数据接收器是从FIFO读取数据的处理器。
每次清除对应启用控制位时(对于写入FIGO,是MSIxFIFOCS.WFEN;及对于读取FIFO,是MSIxFIFOCS.RFEN)将停用FIFO。在装置复位期间,清除FIFO启用控制位。在正常操作条件下,FIFO将保持启用。然而,如果存在FIFO错误,或如果从控处理器已复位(或已停止响应且需要被复位),那么MSIxFIFOCS.WFEN控制位及MSIxFIFOCS.RFEN控制位可用以根据需要清除及重新初始化FIFO。当被停用时,擦除FIFO内容(复位为逻辑‘0’),且地址指针初始化为FIFO空状态,其中两个指标均设置为彼此相等(在此情况中,全部为0)。还设置FIFO空状态位(对于写入FIFO,设置为MSIxFIFOCS.WFEMPTY;及对于读取FIFO,设置为MSIxFIFOCS.RFEMPTY)。在启用FIFO之后,空状态位将保持设置直到第一数据值写入到FIFO中为止。
待从主控处理器传递到从控处理器的数据由主控处理器写入到写入FIFO数据写入寄存器中(主控MSIxWFDATA[15:0])。接着,从控可从写入FIFO数据读取寄存器(从控MSIxWFDATA)读取数据。待从从控处理器传递到主控处理器的数据由从控处理器写入到读取FIFO数据写入寄存器中,MSIxRFDATA[15:0]。接着,主控可从读取FIFO数据读取寄存器(MSIxRFDATA)读取数据。
因为每一数据寄存器存取修改数据通道FIFO地址指针,所以数据被写入及读取作为单个实体(即,字或字节)。FIFO数据写入寄存器(主控MSIxWFDATA[15:0]及从控MSIxRFDATA[15:0])是只读寄存器。读取这些寄存器将回传所有0且不会影响FIFO地址指针。FIFO数据读取寄存器(主控MSIxRFDATA[15:0]及从控MSIxWFDATA[15:0])是只读。写入到这些寄存器将无影响。当数据发射器写入到FIFO数据写入寄存器(对于写入FIFO,是MSIxWFDATA;及对于读取FIFO,是MSIx-RFDATA)时数据写入到FIFO内的下一自由位置。最后写入到FIFO的数据保持在寄存器中且由下一系统时钟边缘上的FIFO FSM负载到FIFO存储器中。此寄存器的读取将回传全部0。此寄存器是不可见于数据接收器处理器(位于FIFO的读取侧上)。
当负载经寻址的FIFO位置时,写入地址指针经调整以指向圆形缓冲器内的下一自由位置。如果不存在剩余自由位置,那么设置FIFO满状态位(对于写入FIFO,设置为MSIxFIFOCS.WFFULL;及对于读取FIFO,设置为MSIx-FIFOCS.RFFULL)。
当数据接收器处理器读取FIFO数据读取寄存器(对于写入FIFO,是MSIxWFDATA;及对于读取FIFO,是MSIxRFDATA)时从FIFO读取数据。读取循环将从由读取指针寻址的FIFO存储器位置存取数据。
此寄存器是不可写,也不可见于数据发射器处理器(位于FIFO的写入侧上)。在读取经寻址的FIFO位置之后,读取地址指针经调整以指向圆形缓冲器内的下一有效数据位置。如果不存在待读取的剩余位置,那么设置FIFO空状态位(对于写入FIFO,设置为MSIxFIFOCS.WFEMPTY;及对于读取FIFO,设置为MSIxFIFOCS.RFEMPTY)。
可以多种方式使用FIFO。可请求数据或可将数据推送到处理器。可直接隐含(使用空状态位状态或相关联中断)数据认可或间接隐含(使用处理器来处理中断)数据认可。
举例来说,根据实施例,FIFO空状态位用以产生中断到数据发射器处理器。FIFO中断触发选择位(RFITSEL1:0]及WFITSEL[1:0])结合FIFO地址指针一起使用以确定何时针对接收处理器产生数据有效中断。这些中断希望用作数据传送协议的部分。然而,如果应用程序不需要,那么可在中断控制器宏内停用这些中断。
根据实施例,当FIFO据信为空时,设置FIFO空状态旗标且针对数据发射器处理器产生FIFO空中断。中断可产生于空状态旗标(对于写入FIFO,是MSIxFIFOCS.WFEMPTY;及对于读取FIFO,是MSIxFIFOCS.RFEMPTY)的逻辑0到逻辑1转变上。将数据写入到FIFO将清除空状态旗标且将数据有效中断发送到接收器。
当发射器处理器写入到FIFO时,可取决于FIFO中断触发选择位(对于读取FIFO及写入FIFO分别是(RFITSEL1:0]及WFITSEL[1:0])的状态结合FIFO指标的内容而产生数据有效中断脉冲,如图8中所概述。
当数据写入到先前空FIFO中时,清除空状态旗标(对于写入FIFO,是MSIxFIFOCS.WFEMPTY;及对于读取FIFO,是MSIxFIFOCS.RFEMPTY)且其保持清除直到FIFO再次变空为止。中断产生于空状态旗标的逻辑1到逻辑0转变上。
当数据写入将导致FIFO满足由FIFO中断触发选择位界定的阈值时,在引起阈值被满足的FIFO写入(即,并非写入到下一FIFO地址)之后产生数据有效中断。如果数据写入导致FIFO变得满,那么还将设置满状态旗标(对于写入FIFO,设置为MSIxFIFOCS.WFFULL;及对于读取FIFO,设置为MSIx-FIFOCS.RFFULL)且将保持设置直到FIFO不再满为止。
设置FIFO满状态位之后的FIFO(对于写入FIFO,设置为MSIxFIFOCS.WFFULL;及对于读取FIFO,设置为MSIxFIFOCS.RFFULL),FIFO占用逻辑将检测到潜流条件且设置潜流状态旗标(对于写入FIFO,设置为MSIxFIFOCS.WFOF;及对于读取FIFO,设置为MSIxFIFOCS.RFOF)。注意将会忽略数据写入,且将不会修改FIFO写入指标,其保存FIFO的内容。
类似地,如果数据接收器在设置FIFO空状态位(对于写入FIFO,设置为MSIxFIFOCS.WFEMPTY;及对于读取FIFO,设置为MSIxFIFOCS.RFEMPTY)之后尝试从FIFO读取数据,那么FIFO占用逻辑将检测到潜流条件且设置潜流状态旗标(对于写入FIFO,设置为MSIxFIFOCS.WFUF;及对于读取FIFO,设置为MSIxFIFOCS.RFUF)。注意在读取之前将不会调整FIFO读取指标(正如通常一样),其导致最近读取的FIFO地址的重新读取。
主控处理器及从控处理器可直接彼此中断。主控单元可通过断言MSIx-CON.MTSIRQ控制位而发布中断请求到从控处理器。类似地,从控单元可通过断言MSIxCON.STMIRQ控制位而发布中断请求到主控处理器。
通过使用中断认可控制位(对于主控到从控中断请求,是MSIxCON.MTSIACK;及对于从控到主控中断请求,是MSIxCON.STMIACK)而认可中断。
所有主控/从控中断控制/状态位可由任一处理器读取。中断请求位由请求处理器读取/写入,且中断认可位由中断处理器通过MSIxCON控制寄存器读取/写入。中断请求位仅由中断处理器读取,且中断认可位仅由请求处理器通过MSIxSTAT状态寄存器读取。
根据实施例,当主控单元断言MSIxCON.MTSIRQ位时,主控与从控时钟同步以变成从控中断。从从控单元角度来看,MTSIRQ位是MSIx-STAT.MTSIRQ处的只读状态位。当服务所述中断时,从控必须通过设置处置器内的某点处的MSIxCON.MTSIACK位来认可所述中断。在同步到主控时钟域中之后,主控将观察到MSIxSTAT.MTSIACK=1,且接着清除MSIxCON.MTSIRQ位(的其视图),并取消请求。当从控观察到MSIxSTAT.MTSIRQ=0时,交握由从控完成。此时,从控清除MSIxCON.MTSIACK以消除认可,且接着会退出中断处置器。
当从控断言MSIxCON.STMIRQ位时,从控与主控同步以变成主控中断。从主控角度来看,STMIRQ位是MSIxSTAT.MTSIRQ处的只读位。当完成所述中断的服务时,主控必须通过设置处置器的末端处的MSIxCON.STMIACK位来认可所述中断。在同步到从控时钟域中之后,从控单元将观察到MSIxSTAT.STMIACK=1,且接着清除MSIxCON.STMIRQ位(的其视图),并取消请求。当主控观察到MSIxSTAT.STMIRQ=0时,交握由主控完成。此时,主控清除MSIxCON.STMIACK以消除认可及中断处置器。
图9展示如上文所解释的邮箱系统与图1及2的通信接口130内的FIFO系统的组合。如上文所提及,根据实施例,所述FIFO可默认为停用且仅邮箱可在作用中且用户可编程装置以启用所述FIFO,例如通过设置相关联控制寄存器中的位。

Claims (25)

1.一种单芯片微控制器,其包括主控核心及从控核心,其中所述主控核心由主控系统时钟计时,且所述从控核心由从控系统时钟计时,且其中每一核心与多个外围装置相关联以分别形成主控微控制器及从控微控制器;所述单芯片微控制器进一步包括所述主控微控制器与所述从控微控制器之间的通信接口,其中所述通信接口包括与流量控制逻辑耦合的多个可配置的方向数据寄存器;所述流量控制逻辑可配置以将方向指派到所述多个可配置的数据寄存器中的每一者,且进一步包括熔丝或配置寄存器以配置每一方向数据寄存器;
其中所述单芯片微控制器进一步包括多个多路复用器,所述多个多路复用器用于界定仅从所述主控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述从控核心的读取路径,或仅从所述从控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述主控核心的读取路径。
2.根据权利要求1所述的单芯片微控制器,其中每一方向数据寄存器由所述熔丝配置。
3.根据权利要求1所述的单芯片微控制器,其中每一方向数据寄存器由所述配置寄存器配置。
4.根据权利要求1所述的单芯片微控制器,其进一步包括经配置以相对于所述多个可配置的方向数据寄存器在所述主控与从控核心之间提供交握信号的交握逻辑块。
5.根据权利要求1所述的单芯片微控制器,其中所述通信接口可经进一步配置以界定多个邮箱,其中所述多个可配置的数据寄存器的连续数据寄存器的可配置数目被指派给每一邮箱。
6.根据权利要求5所述的单芯片微控制器,其进一步包括用以配置每一方向数据寄存器的熔丝。
7.根据权利要求5所述的单芯片微控制器,其进一步包括用以配置每一方向数据寄存器的配置寄存器。
8.根据权利要求1所述的单芯片微控制器,其中在所述单芯片微控制器的编程期间,指派可配置的数据寄存器的数据方向。
9.根据权利要求5所述的单芯片微控制器,其中在所述单芯片微控制器的编程期间,编程寄存器到邮箱的指派及所述多个可配置的数据寄存器中的每一者的数据方向的指派。
10.根据权利要求1所述的单芯片微控制器,其中每一数据寄存器由方向信号及交握信号控制。
11.根据权利要求5所述的单芯片微控制器,其中邮箱的所述可配置的寄存器中的一者用作控制寄存器。
12.根据权利要求1所述的单芯片微控制器,其中所述多个可配置的数据寄存器中的至少一者作为状态寄存器。
13.根据权利要求1所述的单芯片微控制器,其中所述多个可配置的数据寄存器中的至少一者作为命令寄存器。
14.根据权利要求1所述的单芯片微控制器,其中当分别设置从所述主控核心或从控核心到所述可配置的数据寄存器中的一者的所述写入路径时,从所述可配置的数据寄存器中的一者到所述主控或从控核心的读取路径是可用的。
15.根据权利要求1所述的单芯片微控制器,其中当设置从所述主控核心到所述可配置的数据寄存器中的一者的所述写入路径时,所述主控时钟提供用于写入所述可配置的数据寄存器中的所述一者的时钟,且所述从控时钟提供用于读取所述可配置的数据寄存器中的所述一者的时钟。
16.根据权利要求1所述的单芯片微控制器,其中当设置从所述从控核心到所述可配置的数据寄存器中的一者的所述写入路径时,所述从控时钟提供用于写入所述可配置的数据寄存器中的所述一者的时钟,且所述主控时钟提供用于读取所述可配置的数据寄存器中的所述一者的时钟。
17.根据权利要求1所述的单芯片微控制器,其进一步包括所述通信接口内的读取FIFO存储器及写入FIFO存储器,其中所述读取FIFO存储器包括与所述从控核心耦合的数据输入及与所述主控核心耦合的数据输出,且所述写入FIFO存储器包括与所述主控核心耦合的数据输入及与所述从控核心耦合的数据输出。
18.根据权利要求17所述的单芯片微控制器,其中任选地通过配置寄存器启用所述读取FIFO存储器及写入FIFO存储器。
19.根据权利要求1所述的单芯片微控制器,其进一步包括多个从控核心,其中所述通信接口包括多个数据寄存器设置,每一数据寄存器设置包括与流量控制逻辑耦合的多个可配置的方向数据寄存器,所述流量控制逻辑可配置以将方向指派到所述多个可配置的数据寄存器中的每一者。
20.一种用于在单芯片微控制器上的主控核心与从控核心之间提供通信的方法,其中所述主控核心由主控系统时钟计时,且所述从控核心由从控系统时钟计时,且其中每一核心与多个外围装置相关联以分别形成主控微控制器及从控微控制器,所述方法包括:
在所述主控微控制器与所述从控微控制器之间提供通信接口,
通过设置熔丝或通过对配置寄存器进行编程来配置与流量控制逻辑耦合的多个可配置的方向数据寄存器,以形成相应邮箱,
对于所述多个可配置的方向数据寄存器中的每一者,配置从或到所述主控核心的数据方向;
仅通过所述多个可配置的方向数据寄存器来交换所述主控核心与所述从控核心之间的数据;
其中所述单芯片微控制器进一步包括多个多路复用器,所述多个多路复用器用于界定仅从所述主控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述从控核心的读取路径,或仅从所述从控核心到所述可配置的数据寄存器中的一者的写入路径及从所述可配置的数据寄存器中的所述一者到所述主控核心的读取路径。
21.根据权利要求20所述的方法,在所述单芯片微控制器的编程期间,通过熔丝来执行以下步骤:
通过设置熔丝或通过对配置寄存器进行编程来配置与流量控制逻辑耦合的多个可配置的方向数据寄存器,以形成相应邮箱;以及
对于所述多个可配置的方向数据寄存器中的每一者,配置从或到所述主控核心的数据方向。
22.根据权利要求20所述的方法,其中使用所述主控与从控核心之间的交握信号来执行仅通过所述多个可配置的方向数据寄存器来交换所述主控核心与所述从控核心之间的数据的步骤。
23.根据权利要求20所述的方法,其中所述多个可配置的数据寄存器的连续数据寄存器的可配置数目被指派给每一邮箱。
24.根据权利要求23所述的方法,其中邮箱的所述可配置的寄存器中的一者用作控制寄存器。
25.根据权利要求23所述的方法,其中所述多个可配置的数据寄存器中的至少一者作为状态寄存器或命令寄存器。
CN201680035355.1A 2015-06-18 2016-06-17 可配置的邮箱数据缓冲器装置 Active CN107810492B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562181379P 2015-06-18 2015-06-18
US62/181,379 2015-06-18
US15/184,789 2016-06-16
US15/184,789 US10120815B2 (en) 2015-06-18 2016-06-16 Configurable mailbox data buffer apparatus
PCT/US2016/038115 WO2016205675A1 (en) 2015-06-18 2016-06-17 A configurable mailbox data buffer apparatus

Publications (2)

Publication Number Publication Date
CN107810492A CN107810492A (zh) 2018-03-16
CN107810492B true CN107810492B (zh) 2021-08-24

Family

ID=56550308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680035355.1A Active CN107810492B (zh) 2015-06-18 2016-06-17 可配置的邮箱数据缓冲器装置

Country Status (7)

Country Link
US (1) US10120815B2 (zh)
EP (1) EP3311298A1 (zh)
JP (1) JP2018519587A (zh)
KR (1) KR20180019603A (zh)
CN (1) CN107810492B (zh)
TW (1) TW201710922A (zh)
WO (1) WO2016205675A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10002103B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers
US10002102B2 (en) * 2015-03-13 2018-06-19 Microchip Technology Incorporated Low-pin microcontroller device with multiple independent microcontrollers
CN106791152B (zh) * 2016-12-30 2019-08-27 Oppo广东移动通信有限公司 一种通信方法及移动终端
KR20210045009A (ko) * 2019-10-16 2021-04-26 삼성전자주식회사 인터페이싱 장치, 인터페이싱 장치를 포함하는 반도체 장치 및 반도체 장치의 통신 방법
CN112732628A (zh) * 2019-10-29 2021-04-30 Oppo广东移动通信有限公司 核间数据处理方法、系统、片上系统以及电子设备
CN111427821B (zh) * 2020-03-19 2021-10-01 深圳震有科技股份有限公司 双核amp系统共用spi接口的方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496880B1 (en) * 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
CN101013415A (zh) * 2005-11-16 2007-08-08 阿尔卡特公司 用于多处理器阵列的线程感知分布式软件系统
CN103943624A (zh) * 2013-01-23 2014-07-23 索尼公司 存储元件、半导体器件和写入方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957352B2 (en) * 2002-03-15 2005-10-18 Intel Corporation Processor temperature control interface
JP2004318628A (ja) * 2003-04-18 2004-11-11 Hitachi Industries Co Ltd 演算処理装置
JP2008059282A (ja) * 2006-08-31 2008-03-13 Olympus Corp 分散処理システム、分散処理方法及びプログラム
KR101430687B1 (ko) * 2007-09-28 2014-08-18 삼성전자주식회사 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법
US20130160028A1 (en) 2011-12-14 2013-06-20 John E. Black Method and apparatus for low latency communication and synchronization for multi-thread applications
US20140075174A1 (en) * 2012-09-10 2014-03-13 Texas Instruments Incorporated Boot State Restore from Nonvolatile Bitcell Array

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496880B1 (en) * 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
CN101013415A (zh) * 2005-11-16 2007-08-08 阿尔卡特公司 用于多处理器阵列的线程感知分布式软件系统
CN103943624A (zh) * 2013-01-23 2014-07-23 索尼公司 存储元件、半导体器件和写入方法

Also Published As

Publication number Publication date
WO2016205675A9 (en) 2017-01-12
EP3311298A1 (en) 2018-04-25
US20160371200A1 (en) 2016-12-22
WO2016205675A1 (en) 2016-12-22
CN107810492A (zh) 2018-03-16
US10120815B2 (en) 2018-11-06
TW201710922A (zh) 2017-03-16
JP2018519587A (ja) 2018-07-19
KR20180019603A (ko) 2018-02-26

Similar Documents

Publication Publication Date Title
CN107810492B (zh) 可配置的邮箱数据缓冲器装置
JP3661235B2 (ja) 共有メモリシステム、並列型処理装置並びにメモリlsi
US8521934B1 (en) Multi-port context-based host controller
US7433977B2 (en) DMAC to handle transfers of unknown lengths
US20210019185A1 (en) Compute task state encapsulation
US11341087B2 (en) Single-chip multi-processor communication
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
JP4891405B2 (ja) バリア操作の条件付き伝搬のための方法および装置
CN106354674B (zh) 半导体装置和系统
US8086766B2 (en) Support for non-locking parallel reception of packets belonging to a single memory reception FIFO
WO2017112529A1 (en) Configuration arbiter for multiple controllers sharing a link interface
JP2007219816A (ja) マルチプロセッサシステム
US20070156937A1 (en) Data transfer in multiprocessor system
KR20020008955A (ko) 버스 시스템 및 그 실행 순서 조정방법
US7006521B2 (en) External bus arbitration technique for multicore DSP device
CN111290983A (zh) Usb传输设备及传输方法
CN114746853A (zh) 存储器与分布式计算阵列之间的数据传输
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
KR102206313B1 (ko) 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법
CN111052100A (zh) 可位操作的直接存储器访问
JPH1185673A (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