CN105938466A - 用于处理器间通信的电路和方法 - Google Patents

用于处理器间通信的电路和方法 Download PDF

Info

Publication number
CN105938466A
CN105938466A CN201610121696.2A CN201610121696A CN105938466A CN 105938466 A CN105938466 A CN 105938466A CN 201610121696 A CN201610121696 A CN 201610121696A CN 105938466 A CN105938466 A CN 105938466A
Authority
CN
China
Prior art keywords
buffer
processor circuit
processor
circuit
message
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
CN201610121696.2A
Other languages
English (en)
Other versions
CN105938466B (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.)
Xilinx Inc
Original Assignee
Xilinx 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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN105938466A publication Critical patent/CN105938466A/zh
Application granted granted Critical
Publication of CN105938466B publication Critical patent/CN105938466B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

各种示例实施方案涉及在不同处理器电路之间通信的电路和方法。根据示例实施方案,电路布置包括多个处理器电路和处理器间通信电路。处理器间通信电路经配置为处理器电路的每一个配对提供在处理器电路对之间的相应通信信道。处理器间通信电路包括多个缓冲器,所述多个缓冲器包括用于每个通信信道的相应第一缓冲器和相应第二缓冲器。处理器间通信电路中所包括的访问控制电路经配置将对相应第一缓冲器的写访问限制到第一处理器电路并将对相应第二缓冲器的写访问限制到第二处理器电路。

Description

用于处理器间通信的电路和方法
技术领域
本公开内容一般涉及处理器间通信。
背景技术
可编程集成电路(IC)是可被编程以执行指定逻辑功能的装置。一种类型的可编程IC,现场可编程门阵列(FPGA),通常包括可编程片单元阵列。这些可编程片单元包括各种类型的逻辑块,所述逻辑块可包括,例如,输入/输出块(IOB)、可配置逻辑块(CLB)、专用随机存取存储器块(BRAM)、乘法器、数字信号处理块(DSP)、处理器、时钟管理器、延迟锁定环路(DLL)、总线或网络接口,诸如周边部件互连高速(PCI)和以太网等等。
每个可编程片单元通常包括可编程互连和可编程逻辑两者。可编程互连通常包括通过可编程互连点(PIP)互连的大量不同长度的互连线。可编程逻辑使用可编程元件实现用户设计的逻辑,所述可编程元件可包括,例如函数发生器、寄存器、算术逻辑等等。
可编程互连和可编程逻辑通常通过将配置数据流加载到内部配置存储器单元中进行编程,所述内部配置存储器单元定义如何配置可编程元件。配置数据可从存储器(例如,从外部PROM)读取或由外部装置写入到FPGA中。然后各存储器单元的集体状态确定FPGA的功能。
一些可编程IC包括一个或多个嵌入式处理器,所述处理器能够执行程序代码。处理器可被制造成相同裸片的部分,所述部分包括也被统称为IC的“可编程电路”的可编程逻辑电路和可编程互连电路。但应当理解的是,处理器内的程序代码的执行可与“编程”或“配置”可编程电路区分,所述可编程电路可在IC上有用。编程或配置IC的可编程电路的行为导致不同物理电路的实施,如可编程电路内的配置数据所规定。
发明内容
各种示例实施方案旨在用于在处理器电路之间通信的电路和方法。根据一个示例实施方案,电路布置包括多个处理器电路和处理器间通信电路。处理器间通信电路经配置在处理器电路的每一个配对之间为该对处理器电路提供相应的通信信道。处理器间通信电路包括多个缓冲器,所述缓冲器包括每个通信信道的相应第一缓冲和相应第二缓冲器。处理器间通信电路中所包括的访问控制电路经配置将对相应第一缓冲器的写访问限制到第一处理器电路并将对相应第二缓冲器的写访问限制到第二处理器电路。
还公开了用于多个处理器电路之间通信的方法。对于多个处理器电路中的至少一配对,将对用于所述配对的相应第一缓冲器的写访问限制到所述配对的第一处理器电路。将对用于所述配对的相应第二缓冲器的写访问限制到所述配对的第二处理器电路。经由相应第一缓冲器将消息从所述配对的第一处理器电路传送到所述配对的第二处理器电路。经由相应第二缓冲器将消息从所述配对的第二处理器电路传送到所述配对的第一处理器电路。
附图说明
在阅读以下详细说明且在参考附图之后,所公开的设备和方法的各个方面和特征将变得明显,其中:
图1示出多处理器系统的块级示图;
图2示出第一示例系统的连接示图;
图3示出第二示例系统的连接示图;
图4示出用于在一对处理器电路之间传送消息的过程;
图5示出在数据事务(data transaction)中通过源处理器电路执行以用于将数据传送到目标处理器电路的示例过程;
图6示出响应于源处理器电路启动数据事务以通过目标处理器电路执行的示例过程;
图7示出通过处理器件通信电路执行的过程;以及
图8示出可根据所公开的电路和方法配置的可编程IC。
具体实施方式
在以下描述中,许多特定细节被提出用于描述本文呈现的特定示例。然而,对本领域技术人员应明显的是,一个或多个其他示例和/或这些示例的变化可在没有下面给出的所有特定细节的情况下实践。在其他实例中,没有详细描述众所周知的特征,以不使本文示例的描述模糊。
在具有多处理器电路的系统中,处理器电路要求彼此通信的机制。用于处理器电路之间通信的一个方法使用全部的处理器电路可访问的共享存储器块。为了将数据从第一处理器传输到第二处理器,第一处理器将数据写入共享存储器块。第二处理器然后从共享存储器块读取数据,以完成数据的传输。然而,在多个处理器向共享存储器块写入的情况下,可发生冲突。例如,在消息可被预期的接收方读取之前,由一个处理器写入共享存储器的消息可被另一个处理器改写。
通常,访问控制软件用于协调对共享存储器的访问,以防止发生地址冲突和/或竞争条件。在具有同等处理器电路的多处理器系统中,一个处理器的访问控制软件可用于协调全部同等处理器对共享存储器的访问。例如说明性示例,访问控制软件诸如超级监督者(hypervisor)可用于为不同的处理线程或在多处理器系统上同时运行的操作系统协调存储器访问。当使用多个同等处理器时,访问控制与处理器中的每一个兼容,并且可用于为全部的同等处理器协调对共享存储器块的访问。该方法避免开发自定义访问控制软件的需要。
然而,包括异构处理器电路的多处理器系统可能无法使用现有访问控制软件来协调访问。异构处理器电路具有不同的电路布置和/或架构。在具有异构处理器电路的系统中,现有的访问控制软件可能不与所有的处理器电路兼容。本公开内容中呈现的示例电路和方法提供用于在异构处理器电路之间通信的技术和设备。
各种示例实施方案被公开并针对用于在不同处理器电路之间通信的电路和方法。根据一个实施方案,电路布置包括多个处理器电路和处理器间通信电路。处理器间通信电路经配置为所述处理器电路的每一个配对而在每对处理器电路之间提供相应通信信道。处理器间通信电路包括多个缓冲器,所述缓冲器包括每个通信信道的相应第一缓冲器和相应第二缓冲器。处理器间通信电路中所包括的访问控制电路经配置将对相应第一缓冲器的写访问限制到第一处理器电路并将对相应第二缓冲器的写访问限制到第二处理器电路。在一些实施方案中,访问控制电路还可将对第一缓冲器的读访问限制到第一处理器电路和第二处理器电路,并将对第二缓冲器的读访问限制到第一处理器电路和第二处理电路。用于在处理器电路之间的通信的专用缓冲器与由访问控制电路强制的访问限制的使用在系统中保存了数据完整性,而不要求复杂的基于软件的访问控制机制来协调消息的通信。
在一些实施方案中,缓冲器可由存储器中的相应存储器地址实施,所述存储器是处理器间通信电路的一部分。可选地或附加地,一个或多个缓冲器可以由单独的存储器实施,所述单独的存储器通信地耦合到处理器间通信电路。例如,缓冲器可在用于存储程序代码的主存储器的保留块中实施,所述程序代码由一个或多个处理器电路执行。
访问控制电路可使用各种过程和/或电路布置将对每个缓冲器的访问限制到合适的处理器电路配对。在一些实施方案中,用于从缓冲器读取/向缓冲器写入的所有读/写事务请求被提供给访问控制电路并被检查,以确定是否应允许对对应缓冲器的访问。例如,响应于接收读/写事务,访问控制电路从权限表为对应缓冲器确定权限。权限表可存储在例如访问控制电路的存储器中,或者在用于实施缓冲器的存储器的一部分中。如果所确定的权限指示应允许读/写事务,则读/写事务请求被转发到存储器。否则,控制电路例如通过丢弃读/或事务以阻止读/写事务。
通过处理器间通信电路提供的通信信道可用于在一对处理器电路之间传送各种消息。为了易于参考,电路主要是参考第一处理器电路和第二处理器电路之间的请求消息和响应消息的传送做出描述的。请求消息可包括例如读请求或写请求。响应消息可包括例如读数据或写确认。为了易于参考,术语消息在本文可用于指请求消息或响应消息。第一处理器电路和第二处理器电路之间的通信信道可被实施为单向的或双向的。例如,在一个双向实施方案中,单个通信信道可用于将请求消息从第一处理器电路传送到第二处理器电路并且还将请求消息从第二处理器电路传送到第一处理器电路。在该上下文中,用于信道的第一缓冲器可用于将请求消息和响应消息两者从第一处理器电路传送到第二处理器电路。反之,用于信道的第二缓冲器可用于将请求消息和响应消息两者从第二处理器电路传送到第一处理器电路。
作为示例单向实施方案,第一通信信道用于将请求消息从第一处理器电路传送到第二处理器电路,并且第二通信信道用于将请求消息从第二处理器电路传送到第一处理器电路。
在请求消息被写入处理器电路的合适缓冲器之后,不同的实施方案可使用各种机制来提示所需处理器电路读取请求消息。在一些实施方案中,一对处理器电路的第一处理器电路经配置在向通信信道的第一缓冲器写消息之后,将警报提供给该对处理器电路的第二处理器电路。可例如通过为第二处理器设置中断,将警报提供给第二处理器电路。类似地,各种机制可用于提示处理器电路从通信信道的第二缓冲器读取响应消息。在一个实施方案中,第二处理器电路可通过为第一处理器电路设置第二中断,提示第一处理器电路从第二缓冲器读取响应消息。在另一个实施方案中,第二处理器电路可通过清除由第一处理器电路设置的第一中断,提示第一处理器电路从第二缓冲器读取响应消息。
为了易于说明,可参考在向缓冲器写消息之后由处理器电路提供的警报来主要描述示例。然而,在一些实施方案中,可由其他电路提供该类警报。例如,在一个实施方案中,访问控制电路经配置监控对缓冲器的写入并且在已经将消息写入一个缓冲器之后,将警报提供给合适的处理器。
现在参考附图,图1示出多处理器系统的块级示图。系统100包括多个处理器电路102、104和106以及处理器间通信电路110。在该示例中,处理器间通信电路110经由数据总线108通信地连接到处理器电路102、104和106。处理器间通信电路110经配置提供用于在处理器电路102、104和106之间通信的通信信道。处理器间通信电路包括多个缓冲器140、142、144和146。在该示例中,缓冲器140、142、144和146通过处理器间通信电路110的存储器130中的相应存储器位置实施。在处理器电路102、104和106的相应配对之间的每个通信信道都包括缓冲器140、142、144和146的相应配对。一对处理器电路中的每个处理器电路经配置通过向用于信道的相应对缓冲器写入消息/从用于信道的相应对缓冲器读取消息来与另一个处理器电路通信。
如先前所述,访问控制电路120限制对缓冲器140、142、144和146中的每一个的访问,以便防止缓冲的消息在由目标处理器电路读取之前被改写。更具体地,对于第一处理器电路和第二处理器电路之间的通信信道,访问控制电路120经配置将对用于信道的第一缓冲器的写访问限制到第一处理器电路。反之,访问控制电路120经配置将对用于信道的第二缓冲器的写访问限制到第二处理器电路。在一些实施方案中,访问控制电路还经配置将对相应的第一缓冲器和第二缓冲器的读访问限制到相应的第一处理器电路和第二处理器电路。换句话说,访问控制电路阻止第一处理器电路和第二处理器电路以外的处理器从第一处理器电路和第二处理器电路之间的通信专用的信道读取。在一些实施方案中,访问控制电路120经配置基于权限表150中指示的每个缓冲器的访问权限,限制对缓冲器的读/写访问。每个缓冲器的访问权限可规定例如允许将数据写入缓冲器的相应处理电路。在一些实施方案中,访问权限还可规定被允许从缓冲器读取数据的处理电路。在该示例中,权限表150存储在存储器130中,所述存储器130还用于实施缓冲器140、142、144和146。在一些实施方案中,权限表150可存储在与缓冲器分离的存储器中,诸如例如形成访问控制电路120的一部分或通信地耦合到处理器间通信电路。
图2示出第一示例系统的连接示图。系统200包括三个处理器电路210、212和214。系统包括一组通信信道230、232、234、236、238和240,例如,如通过图1中的处理器间通信电路110提供的。每个通信信道经由相应的第一缓冲器提供从第一处理器到第二处理器的数据路径。每个通信信道还经由相应的第二缓冲器提供从第二处理器到第一处理器的数据路径。在一些实施方案中,数据路径可包括用于在处理器和缓冲器之间传送数据的相应的信号线。在一些其他实施方案中,数据可经由如图1中示出的共享数据总线以在处理器和缓冲器之间传送。
在该示例中,每个处理器电路通过通信信道中的相应一个连接到彼此。每个处理器电路210、212和214还通过相应的通信信道230、238和240连接到其自身。通信信道230、238和240提供用于在同一处理器电路上执行的不同进程(例如,进程线程)之间的通信的机制。
在该示例中,通信信道230、232、234、236、238和240中的每一个都被配置用于经由相应缓冲器对双向通信。示图220示出通过用于通信信道234的缓冲器配对222和224的数据流,所述通信信道234连接处理器电路A 210和处理器电路B 212。经由用于通信信道234的第一缓冲器222,请求消息和响应消息(Rq_A和Rsp_A)从处理器电路A 210传送到处理器电路B 212。反之,经由通信信道234的第二缓冲器224,请求消息和响应消息(Rq_B和Rsp_B)从处理器电路B 212传送到处理器电路A 210。
在该示例中,系统200包括三个处理器电路。然而,系统200可适配成包括附加的处理器。通常,对于包括N个处理器的系统,系统将包括(N2+N)/2个双向通信信道,其包括N2+N个缓冲器。
图3示出第二示例系统的连接示图。系统300包括三个处理器电路310、312和314,如参考图2中的处理器电路210、212和214描述的。在该示例中,处理器电路310、312和314通过一组通信信道340、342、344、346、348、350、352、354、356、358、360和362互连。
每一个处理器电路(例如,310)通过相应的通信信道配对(例如,344和346)连接到每一个其他处理器电路(例如,312和314)。每个处理器电路310、312和314还通过相应的通信信道配对(例如,340和342)连接到其自身。
在该示例中,在相应的处理器配对之间的通信信道配对中的每一个都包括用于由处理器中的第一个启动的数据事务的第一通信信道,并包括用于由处理器中的第二个启动的数据事务的第二通信信道。作为一个示例,第一通信信道344将请求消息(Rq_A)从处理器电路A 310传送到处理器电路B 312,并将对应响应消息(Rsp_B)从处理器电路B 312传送到处理器电路A 310。第二通信信道346将请求消息(Rq_B)从处理器电路B 312传送到处理器电路A 310,并将对应的响应消息(Rsp_A)从处理器电路A 310传送到处理器电路B 312。
在该示例中,通信信道340、342、344、346、348、350、352、354、356、358、360和362中的每一个都包括用于以第一方向传送请求消息的第一缓冲器以及用于以第二方向传送响应消息的第二缓冲器。示图320示出通过用于第一通信信道344的一对缓冲器322和324的数据流,所述第一通信信道344连接处理器电路A 310和处理器电路B 312。经由缓冲器322,请求消息Rq_A从处理器电路A 310传送到处理器电路B 312。经由缓冲器324,响应消息Rsp_B从处理器电路B 312传送到处理器电路A 310。示图330示出通过用于第二通信信道346的一对缓冲器332和334的数据流,所述第二通信信道346连接处理器电路A 310和处理器电路B 312。经由缓冲器334,请求消息Rq_B从处理器电路B 312传送到处理器电路A 310。经由缓冲器332,响应消息Rsp_A从处理器电路A 310传送到处理器电路B 312。
在该示例中,系统300包括三个处理器电路。然而,系统300可适于包括附加的处理器。通常,对于包括N个处理器的系统,系统300将包括(N2+N)个双向通信信道,其包括(2N2+2N)个缓冲器。与图2中示出的系统相比,图3中的系统要求2N个附加的缓冲器。然而,使用如图3中示出的分离缓冲器,在每个方向中传送请求消息和响应消息能够实现更复杂的通信并行性/流线化(streaming)/管线化(pipelining)。作为一个示例,第一处理器电路能够在接收先前消息的响应消息之前,准备并向缓冲器写入消息。
图4示出用于在一对处理器电路之间传送消息的过程。在方框402处,将对用于所述配对的相应缓冲器的第一缓冲器的写访问限制到处理器电路配对的第一处理器电路。在方框404处,将对用于所述配对的相应缓冲器的第二缓冲器的写访问限制到所述处理器电路配对的第二处理器电路。可选地,在方框406处,将对第一缓冲器和第二缓冲器的读访问限制到所述处理器电路配对。限制读访问还可帮助防止恶意进程窥探在处理器电路之间传送的数据。可通过访问控制电路执行方框402、404和406处的读访问和/或写访问的限制,所述访问控制电路如图1中的访问控制电路120,其将处理器连接到缓冲器。附加地或可选地,可通过在访问被限制的每一个缓冲器和处理器之间配置路由资源路由数据信号来执行方框402、404和406处的读访问和/或写访问的限制。
在方框408处,经由第一缓冲器,消息从第一处理器电路传送到第二处理器电路。在方框402处,限制对第一缓冲器的访问允许第一处理器电路通过写入第一缓冲器来将数据传送到第二处理器电路,而不必担心数据在由第二处理器读取之前被另一个处理器改写。在方框410处,经由第二缓冲器,消息从第二处理器电路传送到第一处理器电路。在方框404处,限制对第一缓冲器的访问允许第二处理器电路通过写入第二缓冲器来将数据传送到第一处理器电路,而不必担心数据在由第一处理器读取之前被另一个处理器改写。
图5示出在将数据传送到目标处理器电路的数据事务中通过源处理器电路执行的示例过程。图6示出响应于源处理器电路启动数据事务以通过目标处理器电路执行的示例过程。为了易于说明,在被执行用于将数据从图2中的处理器电路210传送到处理器电路212的过程的背景下,图5和图6一起讨论。响应于将被传送的新消息502,在图5中启动过程。在方框504处,通过源处理器电路210将消息写入用于源处理器电路和目标处理器电路的第一缓冲器222。在方框506处,提示目标处理器电路212从第一缓冲器222读取消息。例如,源处理器电路210可通过设置对应于目标处理器电路212的第一中断提示目标处理器电路212。如参考图6所讨论,中断的设置提示目标处理器212从第一缓冲器222读取消息。响应于中断602的设置,启动图6中的过程。在方框604处,由目标处理器电路212从第一缓冲器222读取消息。在方框606处,由目标处理器电路212处理消息。在方框608处,目标处理器电路212将响应消息写入用于源处理器和目标处理器的第二缓冲器224。响应消息可包括,例如源处理器所请求的确认或数据。在方框610处,提示源处理器电路210从第二缓冲器224读取响应消息。例如,可通过清除第一中断或通过设置对应于源处理器电路210的第二中断来提示源处理器电路210。返回到图5,在方框610处的提示使判定框508将过程推进到510。在方框510处,源处理器电路210从第二缓冲器224读取响应消息。
图7示出由处理器间通信电路执行的过程,其与一个或多个实施方案一致。在方框702处,过程由处理器间通信电路启动,所述处理器间通信电路接收一个缓冲器的读事务或写事务。在方框704处,响应于接收读事务/写事务,访问控制电路为所指示的缓冲器以及读事务/写事务的发送方查询权限。例如,可从权限表检索权限。如果事务被权限允许,则判定框706将过程指向方框710,这里执行所请求的缓冲器读事务/写事务。否则,如果事务未被允许,则判定框706将过程指向方框708,这里阻止缓冲器读事务/写事务。
图8示出可根据一个或多个实施方案配置的可编程IC 802。可编程IC也可被称为片上系统(SOC),其包括处理子系统810和可编程逻辑子系统830。处理子系统810可被编程为经由用户程序的执行来实施用户设计的软件部分。程序可被规定为配置数据流的一部分,或者可以从片上或片外数据存储装置检索。处理子系统810可包括用于执行一个或多个软件程序的各种电路812、814、816和818。电路812、814、816和818可以包括例如一个或多个处理器核、浮点单元(FPU)、中断处理单元、片上存储器、存储器高速缓存和/或高速缓存相关互连。
可编程IC 802的可编程逻辑子系统830可经编程以实施用户设计的硬件部分。例如,可编程逻辑子系统可包括许多可编程资源832,其可以经编程以实施配置数据流中规定的一组电路。可编程资源832包括可编程互连电路、可编程逻辑电路和配置存储器单元。可编程逻辑使用可编程元件实施用户设计的逻辑,所述可编程元件可包括例如函数发生器、寄存器、算术逻辑等等。可编程互连电路可包括由可编程互连点(PIP)互连的大量不同长度的互连线。
可编程资源832可通过将配置数据流加载到配置存储器单元中进行编程,所述配置数据流定义如何配置可编程互连电路和可编程逻辑电路。然后各存储器单元的集体状态确定可编程资源832的功能。配置数据可从存储器读取(例如,从外部PROM)或由外部装置写入到可编程IC 802中。在一些实施方案中,可通过可编程逻辑子系统830中所包括的配置控制器834将配置数据加载到配置存储器单元中。在一些其他实施方案中,可通过由处理器子系统810执行的启动过程将配置数据加载到配置存储器单元中。
可编IC 802可包括各种电路,从而互连处理子系统810与在可编程逻辑子系统830内实施的电路。在该示例中,可编程IC 802包括核心交换机826,所述核心交换机826可在处理子系统810和可编程逻辑子系统830的各种数据端口之间路由数据信号。核心交换机826还可在可编程逻辑810或处理子系统830的任一个和可编程IC的各种其他电路(诸如内部数据总线)之间路由数据信号。可选地或附加地,处理子系统810可包括用于绕开核心交换机826,与可编程逻辑子系统直接连接的接口。例如,这类接口可使用如ARM公布的AMBA AXI协议规范(AXI)实施。
在一些实施方案中,处理子系统810和可编程逻辑子系统830还可经由存储器控制器821向片上存储器822或片外存储器(未示出)的存储器位置进行读取或写入。存储器控制器821可被实施为与一种或多种不同类型的存储器电路通信,包括但不限于双数据率(DDR)2、DDR3、低功率(LP)DDR2类型的存储器,无论是16位、32位、具有ECC的16位等等。提供了存储器控制器821可与其通信的不同存储器类型的列表仅用于说明目的,而不是为了限制或穷举。如图8中所示,可编程IC 802可包括存储器管理单元820和转换后援缓冲器824,从而将由子系统810和830使用的虚拟存储器地址转换为由存储器控制器821使用的物理存储器地址,以访问特定存储器位置。
可编程IC可包括用于与外部电路通信数据的输入/输出(I/O)子系统850。I/O子系统850可包括各种类型的I/O装置或接口,包括例如闪存型I/O装置、更高性能的I/O装置、较低性能的接口、调试I/O装置和/或RAM I/O装置。
I/O子系统850可包括被示为860A和860B的一个或多个闪存接口860。例如,一个或多个闪存接口860可实施为被配置用于4位通信的四串行外围接口(QSPL)。一个或多个闪存接口860中可被实施为并行8位NOR/SRAM类型的接口。一个或多个闪存接口860可被实施为被配置用于8位和/或16位通信的NAND接口。应理解的是,所描述的特定接口被提供用于说明目的而非限制。可以使用具有不同位宽度的其他接口。
I/O子系统850可包括一个或多个接口862,其与闪存接口860相比提供更高等级的性能。接口826A-826C中的每个都可分别耦合到DMA控制器864A-864C。例如,接口862中的一个或多个可被实施为通用串行总线(USB)类型的接口。接口862中的一个或多个可被实施为千兆以太网类型的接口。接口862中的一个或多个可被实施为安全数字(SD)类型的接口。
I/O子系统850还可包括一个或多个接口866,诸如与接口862相比提供更低等级的性能的接口866A-866D。例如,接口866中的一个或多个可被实施为通用I/O(GPIO)类型的接口。接口866中的一个或多个可被实施为通用异步接收器/发送器(UART)类型的接口。接口866中的一个或多个可以串行外围接口(SPI)总线类型的接口的形式实施。接口866中的一个或多个可以控制器局域网(CAN)类型的接口和/或I2C类型的接口的形式实施。接口866中的一个或多个还可以定时器类型的接口的形式实施。
I/O子系统850可包括一个或多个调试接口868,诸如处理器JTAG(PJTAG)接口868A和跟踪接口868B。PJTAG接口868A可为可编程IC 802提供外部调试接口。跟踪接口868B可提供端口,以从处理子系统810或可编程逻辑子系统830接收调试信息,例如,跟踪。
如图所示,接口860、862、866和868中的每一个都可耦合到多路器870。多路器870提供多个输出,所述多个输出可直接路由或耦合到可编程IC 802的外部引脚,例如,在其内部设置有可编程IC 802的封装体的焊球。例如,可编程IC 802的I/O引脚可在接口860、862、866和868中共享。用户可经由配置数据流配置多路器870,以选择接口860-868中的哪一个将被使用,并因此经由多路器870耦合到可编程IC 802的I/O引脚。I/O子系统850还可包括架构多路器(fabric multiplexer)I/O(FMIO)接口(未示出),以将接口862-868连接到可编程逻辑子系统的可编程逻辑电路。附加地或可选地,可编程逻辑子系统830可经配置以实施可编程逻辑内的一个或多个I/O电路。在一些实施方案中,可编程IC 802还可包括子系统840,所述子系统840具有用于功率和/或安全管理的各种电路。例如,子系统840可包括功率管理单元846,所述功率管理单元846经配置以监控和保持用于对可编程IC 802的各种子系统供电的一个或多个电压域。在一些实施方案中,功率管理单元846可在闲置时禁用各别子系统的供电以减小功率消耗,而不在使用时禁用子系统的供电。
子系统840还可包括安全电路以监控子系统的状态来确保正确操作。例如,子系统840可包括被配置成监控各种子系统(例如,如在状态寄存器844中所指示)的状态的一个或多个实时处理器842。实时处理器842可被配置成响应于检测到错误以执行许多任务。例如,对于一些错误,实时处理器842可响应于检测到错误以生成警报。作为另一个示例,实时处理器842可复位子系统以试图将子系统恢复到正确操作。子系统840包括交换网络848,所述交换网络848可用于互连各种子系统。例如,交换网络848可经配置将各种子系统810、830和840连接到I/O子系统850的各种接口。在一些应用中,交换网络848还可用于将实时处理器842与将被监控的子系统隔离。这样的隔离是某些应用标准(例如,IEC-61508 SIL3或ISO-26262标准)所要求的,从而确保实时处理器842不受在其他子系统中发生的错误影响。
本发明的方法和电路被认为可应用于多种系统和应用。本领技术人在考量了本说明书后可显然看出其他方面和特征。例如,虽然这些方面和特征在一些情况下可在单个附图中描述,但应理解的是,一个附图的特征可与另一个附图的特征组合,即使所述组合未被明确地示为或明确地描述为组合。本说明书和附图旨在仅被当做示例,本发明的真实范围由随附权利要求限定。

Claims (20)

1.一种系统,包括:
多个处理器电路;以及
处理器间通信电路,其耦合到所述多个处理器电路,并经配置为所述处理器电路的每一個配对提供在所述配对的第一处理器电路到所述配对的第二处理器电路之间的相应通信信道,其中所述处理器间通信电路包括:
多个缓冲器,所述多个缓冲器包括用于每个相应通信信道中相应第一缓冲器和相应第二缓冲器;以及
访问控制电路,其耦合到所述多个缓冲器,并为在所述第一处理器电路到所述第二处理器电路之间的所述相应通信信道经配置以:
将对所述第一缓冲器的写访问限制到所述第一处理器电路;以及
将对所述第二缓冲器的写访问限制到所述第二处理器电路。
2.根据权利要求1所述的系统,其中对于所述相应通信信道,所述访问控制电路进一步经配置将对所述第一缓冲器和所述第二缓冲器的读访问限制到所述第一处理器电路和所述第二处理器电路。
3.根据权利要求1所述的系统,其中:
在所述第一处理器电路和所述第二处理器电路之间的所述相应通信信道为双向的;
所述多个处理器电路包括N个处理器电路;以及
所述多个缓冲器包括(N2+N)/2个缓冲器。
4.根据权利要求1所述的系统,其中:
对于所述处理器电路的所述配对中的每一个,在所述第一处理器电路和所述第二处理器电路之间的所述相应通信信道为从所述第一处理器电路到所述第二处理器电路的通信信道;以及
所述处理器间通信电路进一步经配置提供从所述第二处理器电路到所述第一处理器电路的第二通信信道。
5.根据权利要求4所述的系统,其中:
所述多个处理器电路包括N个处理器电路;以及
所述多个缓冲器包括(2N2+2N)个缓冲器。
6.根据权利要求1所述的系统,其中对于所述处理器电路的所述配对中的每一个,在所述相应第一处理器电路经配置响应于将消息写入第一缓冲器,以提示所述相应第二处理器从所述第一缓冲器读取所述消息。
7.根据权利要求6所述的系统,其中通过所述第一处理器电路进行的所述提示包括提供设置第一中断。
8.根据权利要求7所述的系统,其中对于所述处理器电路的所述配对中的每一个,所述相应第二处理器电路经配置响应于所述第一中断,以从所述相应第一缓冲器读取所述消息。
9.根据权利要求8所述的系统,其中所述相应第二处理器电路进一步经配置响应于从所述相应第一缓冲器读取的所述消息,以:
将响应消息写入所述相应第二缓冲器;以及
提示所述相应第一处理器电路从所述第二缓冲器读取所述响应消息。
10.根据权利要求9所述的系统,其中由所述相应第二处理器电路对所述相应第一处理器电路进行的所述提示包括清除所述第一中断。
11.根据权利要求9所述的系统,其中由所述相应第二处理器电路对所述相应第一处理器电路进行的所述提示包括设置第二中断。
12.根据权利要求1所述的系统,其中:
所述多个缓冲器位于存储器的相应存储器地址处;以及
所述访问控制电路经配置处理对所述存储器进行读或写的访问请求。
13.根据权利要求12所述的系统,其中所述访问控制电路经配置响应于所述访问请求中的一个,以基于所述访问请求中指示的源地址、所述访问请求中指示的目标地址以及指示对于所述多个缓冲器中每一个的访问权限的权限表来确定是否应允许访问。
14.根据权利要求13所述的系统,其中所述权限表存储在所述存储器中。
15.一种用于在多个处理器电路之间通信的方法,对于所述多个处理器电路中的至少一配对,所述方法包括:
将对用于所述配对的相应第一缓冲器的写访问限制到所述配对的第一处理器电路;
将对用于所述配对的相应第二缓冲器的写访问限制到所述配对的第二处理器电路;
经由所述相应第一缓冲器,将消息从所述配对的所述第一处理器电路传送到所述配对的所述第二处理器电路;以及
经由所述相应第二缓冲器,将消息从所述配对的所述第二处理器电路传送到所述配对的所述第一处理器电路。
16.根据权利要求15所述的方法,进一步包括:
将对所述相应第一缓冲器和所述相应第二缓冲器的读访问限制到所述配对的所述第一处理器电路和所述第二处理器电路;以及
其中所述消息从所述第一处理器电路到所述第二处理器电路的所述传送包括:
使用所述配对的所述第一处理器电路,
将第一消息写入所述相应的第一缓冲器,且
提示所述配对的所述第二处理器电路从所述相应第一缓冲器读取所述第一消息;以及
使用所述配对的所述第二处理器电路,响应于所述第一处理器电路的所述提示,以从所述相应第一缓冲器检索所述第一消息。
17.根据权利要求16所述的方法,其中所述消息从所述第二处理器电路到所述第一处理器电路的所述传送包括:
使用所述配对的所述第二处理器电路,
响应于从所述相应第一缓冲器读取所述第一消息,将第二消息写入所述相应第二缓冲器,且
提示所述配对的所述第一处理器电路从所述相应第二缓冲器读取所述第二消息;以及
使用所述配对的所述第一处理器电路,响应于通过所述配对的所述第二处理器电路进行的所述提示,从所述相应第一缓冲器读取所述第二消息。
18.根据权利要求17所述的方法,其中:
使用处理器间通信电路中所包括的访问控制电路,执行对所述第一缓冲器和所述第二缓冲器的读访问和写访问的所述限制;以及
所述消息到所述第一缓冲器和所述第二缓冲器的所述写入及所述消息从所述第一缓冲器和所述第二缓冲器的所述读取经由所述处理器间通信电路,而在所述第一处理器电路和所述第二处理器电路以及所述第一缓冲器和所述第二缓冲器之间传送所述消息。
19.根据权利要求17所述的方法,其中:
所述第二处理器电路的所述提示包括设置第一中断;以及
所述第一处理器电路的所述提示包括设置第二中断。
20.根据权利要求17所述的方法,其中:
所述第二处理器电路的所述提示包括设置第一中断;以及
所述第一处理器电路的所述提示包括清除所述第一中断。
CN201610121696.2A 2015-03-04 2016-03-03 用于处理器间通信的电路和方法 Active CN105938466B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/638,692 US10037301B2 (en) 2015-03-04 2015-03-04 Circuits and methods for inter-processor communication
US14/638,692 2015-03-04

Publications (2)

Publication Number Publication Date
CN105938466A true CN105938466A (zh) 2016-09-14
CN105938466B CN105938466B (zh) 2021-01-26

Family

ID=56849839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610121696.2A Active CN105938466B (zh) 2015-03-04 2016-03-03 用于处理器间通信的电路和方法

Country Status (2)

Country Link
US (1) US10037301B2 (zh)
CN (1) CN105938466B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344111A (zh) * 2018-10-15 2019-02-15 北京电子工程总体研究所 一种基于双核arm的soc的数据传输系统和方法
CN113111017A (zh) * 2021-03-24 2021-07-13 联想(北京)有限公司 一种信息处理方法和电子设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170286324A1 (en) * 2016-04-05 2017-10-05 Renesas Electronics Corporation Semiconductor device and access management method
US9734099B1 (en) * 2017-04-27 2017-08-15 Micro Lambda Wireless, Inc. QSPI based methods of simultaneously controlling multiple SPI peripherals
KR102376750B1 (ko) * 2018-09-13 2022-03-21 한국전자통신연구원 디버깅을 위한 네트워크를 포함하는 시스템 온 칩
JP7199885B2 (ja) * 2018-09-14 2023-01-06 キヤノン株式会社 メモリ制御装置
WO2020162316A1 (ja) * 2019-02-04 2020-08-13 日立オートモティブシステムズ株式会社 異種非対称システムのための混在する重要な機能を管理するためのシステムおよび方法
US11086815B1 (en) * 2019-04-15 2021-08-10 Xilinx, Inc. Supporting access to accelerators on a programmable integrated circuit by multiple host processes

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US6047391A (en) * 1997-09-29 2000-04-04 Honeywell International Inc. Method for strong partitioning of a multi-processor VME backplane bus
CN101013383A (zh) * 2007-02-13 2007-08-08 杭州华为三康技术有限公司 实现多核cpu进行报文联合处理的系统及方法
US20080155571A1 (en) * 2006-12-21 2008-06-26 Yuval Kenan Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
US20080320254A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
CN101601016A (zh) * 2007-02-07 2009-12-09 罗伯特·博世有限公司 管理模块、生产者和消费者处理器、其装置以及用于通过共享存储器进行处理器间通信的方法
CN101636715A (zh) * 2007-03-23 2010-01-27 高通股份有限公司 用于多处理器系统的指令通信技术
CN101853238A (zh) * 2010-06-01 2010-10-06 华为技术有限公司 通信处理器间消息通信方法和系统
US20120079141A1 (en) * 2010-09-29 2012-03-29 Canon Kabushiki Kaisha Information processing apparatus and inter-processor communication control method
US8924619B2 (en) * 2013-03-15 2014-12-30 Seagate Technology Llc Unified message-based communications

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9604496D0 (en) 1996-03-01 1996-05-01 Xilinx Inc Embedded memory for field programmable gate array
EP1414211A1 (en) * 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
EP1563356B1 (en) * 2002-11-05 2018-05-16 Lightfleet Corporation Optical fan-out and broadcast interconnect
US7970279B2 (en) * 2002-11-05 2011-06-28 Lightfleet Corporation N-way serial-channel interconnect
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
JP3757286B2 (ja) * 2003-07-09 2006-03-22 独立行政法人情報通信研究機構 光パケットのバッファリング装置とそのバッファリング方法
US8223647B2 (en) * 2004-07-21 2012-07-17 Nokia Corporation System and method for increasing data throughout using a block acknowledgement
US20060064508A1 (en) * 2004-09-17 2006-03-23 Ramesh Panwar Method and system to store and retrieve message packet data in a communications network
US20070008902A1 (en) * 2005-07-11 2007-01-11 Saritha Yaramada Managing negotiations of quality of service parameters in wireless networks
US7769948B2 (en) * 2005-10-07 2010-08-03 Agere Systems Inc. Virtual profiles for storage-device array encoding/decoding
US20070083482A1 (en) * 2005-10-08 2007-04-12 Unmesh Rathi Multiple quality of service file system
US20080256271A1 (en) * 2006-12-12 2008-10-16 Breed Paul T Methods and apparatus for reducing storage usage in devices
WO2008091575A2 (en) * 2007-01-22 2008-07-31 Vast Systems Technology Corporation Method and system for modeling a bus for a system design incorporating one or more programmable processors
US7801045B2 (en) * 2007-06-19 2010-09-21 Alcatel Lucent Hierarchical rate limiting with proportional limiting
US8473904B1 (en) 2008-01-16 2013-06-25 Xilinx, Inc. Generation of cache architecture from a high-level language description
US8468510B1 (en) 2008-01-16 2013-06-18 Xilinx, Inc. Optimization of cache architecture generated from a high-level language description
US8356125B1 (en) 2008-05-15 2013-01-15 Xilinx, Inc. Method and apparatus for providing a channelized buffer
US9378003B1 (en) 2009-07-23 2016-06-28 Xilinx, Inc. Compiler directed cache coherence for many caches generated from high-level language source code
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
WO2012109679A2 (en) * 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
IN2015MN00014A (zh) * 2012-07-18 2015-10-16 Panasonic Ip Corp America
US20140149715A1 (en) * 2012-11-28 2014-05-29 Los Alamos National Security, Llc Scalable and programmable computer systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US6047391A (en) * 1997-09-29 2000-04-04 Honeywell International Inc. Method for strong partitioning of a multi-processor VME backplane bus
US20080155571A1 (en) * 2006-12-21 2008-06-26 Yuval Kenan Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units
CN101601016A (zh) * 2007-02-07 2009-12-09 罗伯特·博世有限公司 管理模块、生产者和消费者处理器、其装置以及用于通过共享存储器进行处理器间通信的方法
CN101013383A (zh) * 2007-02-13 2007-08-08 杭州华为三康技术有限公司 实现多核cpu进行报文联合处理的系统及方法
CN101636715A (zh) * 2007-03-23 2010-01-27 高通股份有限公司 用于多处理器系统的指令通信技术
US20080320254A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
CN101853238A (zh) * 2010-06-01 2010-10-06 华为技术有限公司 通信处理器间消息通信方法和系统
US20120079141A1 (en) * 2010-09-29 2012-03-29 Canon Kabushiki Kaisha Information processing apparatus and inter-processor communication control method
US8924619B2 (en) * 2013-03-15 2014-12-30 Seagate Technology Llc Unified message-based communications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344111A (zh) * 2018-10-15 2019-02-15 北京电子工程总体研究所 一种基于双核arm的soc的数据传输系统和方法
CN113111017A (zh) * 2021-03-24 2021-07-13 联想(北京)有限公司 一种信息处理方法和电子设备

Also Published As

Publication number Publication date
CN105938466B (zh) 2021-01-26
US10037301B2 (en) 2018-07-31
US20160259756A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
CN105938466A (zh) 用于处理器间通信的电路和方法
KR102413593B1 (ko) 교착상태 방지를 위한 방법들 및 회로들
KR102424238B1 (ko) 프로그래밍가능 논리부를 위한 메모리의 가상화
KR101403233B1 (ko) 정보 처리 장치 및 부정 액세스 방지 방법
US10789153B2 (en) Debug controller circuit
US9652252B1 (en) System and method for power based selection of boot images
US10698824B1 (en) Scalable coherence management independent of transport protocol
US7353315B2 (en) Bus controller with virtual bridge
CN107278299A (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
JP2017527903A (ja) ヘテロジニアスマルチプロセッサシステムにおけるプロセッサ間割込のためのメカニズム
US9747225B2 (en) Interrupt controller
US20230205726A1 (en) Device with data processing engine array that enables partial reconfiguration
WO2021055602A1 (en) Tracing status of a programmable device
US10176131B1 (en) Controlling exclusive access using supplemental transaction identifiers
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US9448937B1 (en) Cache coherency
US9589088B1 (en) Partitioning memory in programmable integrated circuits
US10043027B1 (en) Generation of mask-value pairs for managing access to memory segments
Chatzistylianos Hardware/Software Design Exploration Towards Resource Isolation and Performance Improvement in SoC FPGAs

Legal Events

Date Code Title Description
C06 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