CN107111572B - 用于避免死锁的方法和电路 - Google Patents

用于避免死锁的方法和电路 Download PDF

Info

Publication number
CN107111572B
CN107111572B CN201580058973.3A CN201580058973A CN107111572B CN 107111572 B CN107111572 B CN 107111572B CN 201580058973 A CN201580058973 A CN 201580058973A CN 107111572 B CN107111572 B CN 107111572B
Authority
CN
China
Prior art keywords
circuit
report
telecommunication circuit
data
write
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
CN201580058973.3A
Other languages
English (en)
Other versions
CN107111572A (zh
Inventor
S·艾哈迈德
T·克诺普
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 CN107111572A publication Critical patent/CN107111572A/zh
Application granted granted Critical
Publication of CN107111572B publication Critical patent/CN107111572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Abstract

公开了一种系统,包括第一通信电路(110),其使用第一通信协议通过第一数据端口(112)传送数据(302、304)。所述系统还包括第二通信电路(130、340),其使用第二通信协议通过第二数据端口(132)传送数据。第二通信协议以读取和写入请求被接收的次序处理读取和写入请求。桥接电路(120、310)被配置成在第一通信电路的第一数据端口(112)与第二通信电路的第二数据端口(132)之间传送数据。桥接电路(120、310)被配置成将经由缓冲电路(122、328)将非报告的写入传送到第二通信电路以及经由旁路缓冲电路的通信路径(322)将报告的写入传送到第二通信电路。

Description

用于避免死锁的方法和电路
技术领域
本公开总体涉及集成电路(IC),更具体地,涉及数据通信。
背景技术
可编程集成电路(IC)是可以被编程来执行特定逻辑功能的器件。一种类型的可编程IC-现场可编程门阵列(FPGA)-通常包括可编程片的阵列。每个可编程片可以包括可编程互连和可编程逻辑。可编程互连通常包括通过可编程互连点(PIP)被互相连接的大量的、各种长度的互连线。可编程逻辑通过使用可包括例如函数生成器、寄存器、算术逻辑等等的可编程元件而实施用户设计的逻辑。可编程互连和可编程逻辑通常通过将配置数据流加载到内部配置存储器单元而被编程,这些内部配置存储器单元定义了如何配置可编程元件。配置数据可以由外部设备从存储器(例如,从外部PROM)读出或被写入到FPGA。各个存储器单元的集合状态然后确定了FPGA的功能。
某些可编程IC包括能够执行程序代码的嵌入式处理器。处理器被制作成包括可编程逻辑电路和可编程互连电路(也可被合称为IC的“可编程电路”)的相同的裸片的一部分。应当看到,在处理器内执行程序代码是与“编程”或“配置”在IC上可提供的可编程电路可区分的。编程或配置IC的可编程电路的动作导致在可编程电路内实施由配置数据指定的不同的物理电路。
具有嵌入式处理器系统的可编程IC常常包括操作存储器、软件指令存储器、输入/输出和计算机系统的其它部件,它们有时被称为片上系统(SOC)解决方案。设计师可以在可编程逻辑中实施复杂的功能,提高效率和吞吐量。这种架构组合提供了串行和并行处理、灵活性和可缩放性等各种优点,由此使得能够进行最佳化的系统分割-特别是在智能视频、数字通信、机器系统和医疗器械领域。
鉴于有各种选择可供设计师使用,一件设计可包括在软件与一个或多个集成电路的可编程逻辑之间划分的几个部分。然而,实施用于不同部分之间通信的适当的安排向设计师提出了挑战。数据总线结构提供了在系统的各个部分之间以及与外部设备通信数据的方便的方法。
数据总线可以通过许多不同的数据总线协议(诸如外围设备互连(PCI)、PCIExpress(PCIe)、高级微控制器总线结构(AMBA)等等)来实现,设计师实施接口电路,以用与所选择的数据总线协议兼容的方式传送去往和来自数据总线的数据。
发明内容
公开了一种系统,包括第一通信电路,所述第一通信电路使用第一通信协议通过第一数据端口传送数据。系统还包括第二通信电路,所述第二通信电路使用第二通信协议通过第二数据端口传送数据。第二通信协议以读取和写入请求被接收的次序处理读取和写入请求。桥接(bridge)电路被配置成在第一通信电路的第一数据端口与第二通信电路的第二数据端口之间传送数据。桥接电路被配置成经由缓冲电路将非报告的写入(non-postedwrite)传送到第二通信电路,以及经由旁路缓冲电路的通信路径将报告的写入(postedwrite)传送到第二通信电路。
还公开了用于数据通信的方法。使用第一通信电路,使用第一通信协议通过第一数据总线传送数据。使用第二通信电路,使用第二通信协议通过第二数据总线传送数据,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求。非报告的写入经由缓冲电路从第一通信电路传送到第二通信电路。报告的写经由旁路缓冲电路的通信路径从第一通信电路被传送到第二通信电路。
公开了另一个系统,包括第一通信电路,所述第一通信系统使用第一通信协议通过第一数据端口传送数据。所述系统还包括第二通信电路,所述第二通信电路使用第二通信协议通过第二数据端口传送数据,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求。系统还包括桥接电路。桥接电路具有包括缓冲电路的、在第一与第二数据端口之间的第一通信路径。桥接电路还具有旁路缓冲电路的、在第一与第二数据端口之间的第二通信路径。桥接电路包括输入电路,其被配置成确定从第一通信电路接收的写入作业是报告的写入还是非报告的写入。响应于确定所述写入作业是非报告的写入,输入电路经由第一通信路径将非报告的写入提供给第二通信电路。响应于确定所述写作业是报告的写入,输入电路经由第二通信路径将报告的写入提供给第二通信电路。
通过考虑下面的具体实施方式和附图,将了解本发明的其它特性。
附图说明
通过阅读以下的具体实施方式和参考附图,将更明白所公开的方法和电路的各种方面和特性,附图中:
图1示出了与一个或多个实施例一致的、具有通信桥接电路的系统;
图2示出了与一个或多个实施例一致的、用于运行第一和第二通信电路与通信桥接电路的过程;
图3示出了与一个或多个实施方案一致的AXI-PCIe桥接电路;以及
图4示出了可以配置为与一个或多个实施方案一致的可编程IC。
具体实施方式
可编程IC可包括分别使用不同的通信协议传送数据的电路。例如,可编程IC可以使用AXI通信协议在第一总线上在系统的不同部分之间传送数据,以及使用PCIe通信协议而与被连接到系统的I/O端口的外部设备通信。当在使用不同的通信协议的电路之间通信数据时,接口电路可被用来在由每个协议所使用的数据格式之间转换数据。
然而,由于不同的通信协议利用的排序规则,可能会发生死锁情形,在这种情形下,在通信电路可以继续处理之前每个通信电路需要来自其它通信电路的数据。例如,当从AXI设备到PCIe设备的数据信道变为被非报告的写入阻塞时,可能发生死锁。非报告的写入需要在发送设备可以继续进行下一个数据作业之前,接收设备用确认来应答,以表示作业的成功或失败。非报告的写入可包括,例如,I/O写入和/或配置写入。相反,报告的写入是在进行其它作业之前不需要确认的写入作业。报告的写入可包括,例如,存储器写入和/或数据消息。为了便于参考,报告的和非报告的读和写总的被称为数据作业(transaction)。
通过将来自AXI设备的所有的下游数据作业缓冲到缓冲电路直至下游PCIe设备准备好处理附加的数据作业为止,某些方法可以防止在AXI设备与PCIe设备之间的死锁。通过缓冲数据作业,排序规则可被保留,而同时允许AXI设备可以继续发布新的数据作业。更具体地,AXI设备可以发布数据作业,这些数据作业是为了完成任何可能阻塞来自PCIe设备的上游确认的待决上游数据作业所必需的。然而,可被缓冲的下游作业的数目受到在桥接电路中可提供的缓存器限制。而且,取决于应用,大量的下游读/写作业可以被接受,同时等待非报告的写入完成。
公开了一种包括用于在使用第一通信协议(例如,AXI)传送数据的第一设备与使用第二通信协议(例如,PCIe)传送数据的第二设备之间传送数据的防死锁的桥接电路的系统。桥接电路被配置成使用第一通信协议与第一通信电路传送数据,和使用第二通信协议与第二通信电路传送数据。这些通信协议中的至少一个通信协议被配置成以读取和写入请求被接收的次序处理读取和写入请求。桥接被配置成通过经由缓冲器将下游非报告的写入传送到第二设备而防止死锁。其它下游读取/写入请求被从第一设备传送到第二设备,而不用缓冲。在这个方法中,与缓冲所有下游数据作业的方法相比,需要缓冲较少的数据作业。因此,缓冲器的尺寸可被减小——由此减少制造成本。
所公开的电路和方法可被使用于在使用各种通信协议的电路之间传送数据。然而,为了便于说明,示例和实施例主要参照在AXI设备与PCIe设备之间的数据通信进行描述。
现在参照附图,图1示出了按照一个或多个实施方案的、具有通信桥接电路120的系统。系统包括第一通信电路110,其被配置成使用第一通信协议(例如,AXI)经由第一数据端口112通信。系统还包括第二通信电路130,其被配置成使用第二通信协议(例如,PCIe)经由第二数据端口132通信,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求。
桥接电路120被配置成在第一通信电路的第一数据端口与第二通信电路的第二数据端口之间传送数据。桥接电路120被配置成使用第一通信协议与第一通信电路110传送数据,以及使用第二通信协议与第二通信电路130传送数据。
图2示出了根据一个或多个实施方案、用于运行第一和第二通信电路与通信桥接电路的过程。为了便于说明,图1和图2被一起讨论。在块210,数据由第一通信电路通过使用第一通信协议被传送。在块220,数据由第二通信电路被传送。在块210和220执行的通信可以发送数据到各种电路或从各种电路接收数据,所述的各种电路包括,例如,第一和第二通信电路110和130、处理电路140、存储器160和/或外部电路。如果由第一和第二通信电路传送的数据是用于在第一和第二通信电路之间的通信,则判决块230将过程转到块240。否则,判决块230把过程转回块210。
在块240,通过使用桥接电路120在第一和第二通信电路之间传送数据。通过在由两个通信协议使用的对应数据格式之间转换数据消息/数据包,桥接电路120可以传送数据。桥接电路120根据写入作业是报告的写入作业还是非报告的写入作业,将写入作业242从第一通信电路110以不同的方式传送到第二通信电路130。对于非报告的写入作业,判决块244使得桥接电路120在块246将来自第一通信电路110的非报告的写入作业经由缓冲电路122传送到第二通信电路130。对于报告的写入作业,判决块244使得桥接电路120在块248通过使用旁路缓冲电路122的通信路径将报告的写入传送到第二通信电路130。如上所述,从第一通信电路110到第二通信电路130的非报告的写入的缓冲有助于防止第一和第二通信电路变为死锁。
在各种应用中,第一和第二通信电路可以执行除了通信以外的功能,并且它们可以使用各种通信协议进行通信。在一个可能的应用中,第一通信电路110可以是高速缓存一致性互连,它被配置成保持在处理电路140的缓存150所存储的数据与在存储器160所存储的数据之间的数据一致性。处理电路140、缓存150和存储器160(用虚线显示)在图1示出,以便于示例性应用的讨论,而它们对于系统的某些其它实施例是不需要的。
在示例性高速缓存一致性互连应用中,第一通信电路可以响应于在数据端口112接收读取请求,读出/侦听(snoop)、修改/写回缓存150和存储器160中的数据值。例如,响应于接收到指示由缓存150缓存的存储器140的存储器地址的读取请求,第一通信电路110可以从缓存检索(retrieve)对应于存储器地址的数据值。第一通信电路110可以使用AXI一致性扩展(ACE)来与存储器160和高速缓存150通信数据以及保持高速缓存一致性。
在没有由桥接电路120缓冲非报告的写入的情况下,在第一AXI通信电路(例如,110)与第二PCIe通信电路(例如,30)之间可能出现死锁。以下的示例示出图1所示的系统中死锁是如何发生和被避免的:
(1)存储器160的存储器地址(X)被缓存在缓存150中。
(2)第二通信电路130执行上游写入(A)到缓存的存储器地址(X)。
(3)处理电路140执行下游非报告的写入(B)到第二通信电路130。这个非报告的写入(B)需要在第二通信电路130可以提供确认以完成非报告的写(B)之前完成上游写入(A)。
(4)第一通信电路的数据端口112变为被阻塞(例如,被由于非报告的写入(B)而不能被桥接120接受的待决下游读/写入请求(D)阻塞)。
(5)独立于之前的步骤,缓存150可以触发将缓存的地址(X)写回(E)到存储器。
(6)写回(E)被安排在非报告的写入(A)之后。
(7)上游写入(A)使得第一通信电路110侦听(F)所缓存的地址(X)。
在以上的情形中,地址(X)的侦听(F)将不被确认,直至地址(X)的以前的写回(E)完成。在非报告的写入(B)取得进展之前,写回(E)将不会完成,所以读取/写入请求(D)可被第一通信电路110发布。在上游写入(A)完成之前,非报告的写入(B)不会完成,而上游写入(A)正在侦听(F)上等待。由于这些作业中没有一个取得进展,因此通信电路处于死锁。通过缓冲下游读取/写入请求,桥接电路可以继续接受新的读取/写入作业,而同时等待非报告的写入完成。因此,第一通信电路不被读取/写入请求D阻塞,它可以执行地址(X)的写回(E),并且执行侦听(F)来完成上游写入A——由此打破死锁。
如以上所述,死锁可以通过缓冲下游读取/写入作业而得以避免。桥接电路120可以阻止死锁,而不用缓冲所有的下游读取/写入作业。在一个或多个实施例中,桥接电路120被配置成只将由第一通信电路130到第二通信电路170的非报告的写入缓冲到缓冲电路中(图1中未示出)。非报告的写入可以被缓冲在例如先进先出(FIFO)缓冲器中。桥接电路120提供其它下游读写作业到第二通信电路130而不进行缓冲。与缓冲所有的下游数据作业相比较,这减少了需要被缓冲的数据作业的数目,并且允许缓冲器尺寸减小。在某些实施方例中,缓冲电路被配置成至少存储最大数目的、在给定时间可能正在待决的非报告的写入。例如,如果桥接电路和第二通信电路被配置成在第一时间段内完成非报告的写入,则缓冲电路可被配置成至少缓冲最大数目的、可以由第一通信电路在第一时间段内发布的非报告的写入请求。由于非报告的写入的数目可能大大地低于报告的和非报告的写入的总数目,因此缓冲器尺寸可被做成小于缓冲在第一时间段内可能发布的、最大数目的报告的和非报告的写入所需要的尺寸。
桥接电路120可以使报告的写入优先于被桥接电路缓冲的待决的、非报告的写入。这允许桥接电路保证报告的写入的进展。此外,报告的写入可以利用其它空闲下游信道以提高吞吐量。
应当看到,在各种应用中,第一和第二通信电路110和130可能遇到其他死锁情形,这些情形是由于下游信道被非报告的写入阻塞所引起的。由桥接电路120缓冲非报告的写入,同样被用来避免在这样的情形中出现死锁。
图3示出了根据一个或多个实施方案的AXI-PCIe桥接电路。AXI-PCIe桥接电路310被配置成在AXI通信电路(在图3中未示出)和PCle接口340之间传送数据。PCle接口340用根据PCLe通信协议连接到它的PCIe设备(未示出)创建数据作业350。PCIe是包含作业层342、数据链路层344和物理层346的分层的协议。作业层342通过使用基于包的分离作业(带有请求和应答)而创建和保持基于包的作业。数据链路层344提供顺序编号和循环冗余检验(CRC),以用于数据包的传输。物理层346通过使用许多数据通道发送和接收数据,每个数据通道包括发送信号线对和接收信号线对。
AXI-PCIe桥接电路310包括下游电路320,其用于将来自AXI通信电路的下游数据302传送到PCIe接口340。非报告的写入由AXI-PCIe桥接电路310经由先进先出(FIFO)缓冲器328传送到PCIe接口340。其它数据作业(报告的读取/写入和非报告的读取)由AXI-PCIe桥接电路310经由旁路FIFO缓冲器328的数据路径322传送到PCIe接口340。如图3所示,下游电路可以包括地址转换电路326,其被配置成执行在由AXI协议使用的地址(例如,AXI-PCIe桥接电路310在AXI数据总线上的地址)与被用于连接到PCIe接口340的PCIe设备的地址之间的转换。应当指出,对于PCIe,地址转换对配置读取/写入是不需要的(配置写入是非报告的),这是因为它们访问设备的配置寄存器。因此,非报告的读取可以经由数据路径324旁路地址转换电路326。
在某些实施例中,AXI-PCIe桥接电路310包括输入电路321,其识别下游数据302中的非报告的写入,以及将非报告的写入路由到FIFO缓冲器328。在某些实施方案中,输入电路321可以根据写入请求中的目标地址确定写入请求是报告的写入还是非报告的写入。如果目标地址是在配置地址空间的范围内,则写入请求被确定为是非报告的写入。
AXI-PCIe桥接电路310还包括上游电路330,其用于将来自PCIe接口340的上游数据304传送到AXI通信设备。上游电路330包括地址转换电路336,其被配置成执行在由PCIe设备所使用的地址与由AXI协议所使用的地址之间的转换。类似于下游电路320,转换电路336不需要对某些上游数据执行地址转换,诸如中断。不需要地址转换的上游数据可以经由旁路地址转换电路336的数据路径334传送到AXI通信电路。
图3并非意在显示可被包括在AXI-PCIe桥接电路中的所有的电路,也不意在排除其它电路被包括在各种实施方案中。而是,本公开的电路可以被调整以包括执行各种其它功能的附加电路。例如,在某些实施方案中,AXI-PCIe桥接电路310可包括直接存储器访问(DMA)电路360,其可被使用来提供直接访问由一个协议使用的地址而不用地址转换。各种实施例可以附加地或替换地包括各种其它电路。
图4示出了可以根据一个或多个实施例的被配置的可编程IC 402。可编程IC也可以被称为片上系统(SOC),它包括处理子系统410和可编程逻辑子系统430。处理子系统410可被编程来经由用户程序的执行而实施用户设计的软件部分。程序可被指定为配置数据流的一部分或可以从片上或片下数据存储装置取回。处理子系统410可包括用于执行一个或多个软件程序的各种电路412、414、416和418。电路412、414、416和418可包括,例如,一个或多个处理器核心、浮点单元(FPU)、中断处理单元、片上存储器、存储器高速缓存和/或高速缓存一致性互连。
可编程IC 402的可编程逻辑子系统430可被编程来实施用户设计的硬件部分。例如,可编程逻辑子系统可包括许多可编程资源432,它们可被编程来实施在配置数据流中指定的一组电路。可编程资源432包括可编程互连电路、可编程逻辑电路和配置存储器单元。可编程逻辑通过使用可编程单元来实施用户设计的逻辑,所述可编程单元可包括,例如,函数生成器、寄存器、算术逻辑等等。可编程互连电路可包括通过可编程互连点(PIP)被互相连接的大量的、不同长度的互连线。
可编程资源432可以通过把配置数据流加载到配置存储器单元而被编程,配置存储器单元定义如何配置可编程互连电路和可编程逻辑电路。各个存储器单元的集合状态然后确定可编程资源432的功能。配置数据可以由外部设备从存储器(例如,从外部PROM)读出或被写入到可编程IC 402。在某些实施例中,配置数据可以由被包括在可编程逻辑子系统430中的配置控制器434加载到配置存储器单元。在某些其它实施方案中,配置数据可以通过被处理器子系统410执行的启动过程而被装载到配置存储器单元。
可编程IC 402可包括各种电路,其用来互连处理子系统410与在可编程逻辑子系统430内所实施的电路。在这个例子中,可编程IC 402包括核心交换器426,它可以在处理子系统410与可编程逻辑子系统430的各个数据端口之间路由数据信号。核心交换器426还可以在可编程逻辑或处理子系统410和430的任一项与可编程IC的各种其它电路(诸如内部数据总线)之间路由数据信号。替换地或另外地,处理子系统410可包括接口,以便与可编程逻辑子系统直接连接一一也即旁路核心交换器426。这样的接口可以通过使用如由ARM发布的AMBA AXI协议技术规范(AXI)而被实施。
在某些实施例中,处理子系统410和可编程逻辑子系统430还可以经由存储器控制器421读出或写入到片上存储器422或片下存储器(未示出)的存储器位置。存储器控制器421可被实施来与一个或多个不同类型的存储器电路通信,所述存储器电路包括但不限于,双倍数据速率(DDR)2、DDR3、低功率(LP)DDR2类型的存储器,不管是16比特、32比特还是带有ECC的16比特等等。存储器控制器421能够与之进行通信的不同存储器类型的列表被提供以仅仅用于说明的目的,而不意在作为限制,或是穷尽的。如图4中所示,可编程IC 402可包括存储器管理单元420和转换旁路缓冲器424,用来将由子系统410和430所使用的虚拟存储器地址转换成由存储器控制器421所使用的物理存储器地址,以便访问具体的存储器位置。
可编程IC可包括输入/输出(I/O)子系统450,用于与外部电路进行数据通信。I/O子系统450可包括各种类型的I/O设备或接口,包括,例如闪存类型I/O设备、较高性能I/O设备(例如,PCIe)、较低性能接口、调试I/O设备和/或RAM I/O设备。
I/O子系统450可包括一个或多个闪存接口460,其被示为460A和460B。例如,一个或多个闪存接口460可被实施为四串行外围接口(QSPI),其被配置成用于4比特通信。一个或多个闪存接口460可被实施为并行8比特NOR/SRAM类型的接口。一个或多个闪存接口460可被实施为NAND接口,其被配置成用于8比特和/或16比特通信。应当看到,所描述的具体接口被提供来用于说明而不是限制目的。可以使用具有不同比特宽度的其它接口。
I/O子系统450可包括一个或多个接口462,其提供了比起存储器接口460更高水平的性能。每个接口462A-462C可被分别耦接到DMA控制器464A-464C。例如,一个或多个接口462可被实施为通用串行总线(USB)类型的接口。一个或多个接口462可被实施为吉比特以太网类型的接口。一个或多个接口462可被实施为安全数字(SD)类型的接口。
I/O子系统450还可包括一个或多个接口466,诸如提供比起接口462较低水平性能的接口466A-466D。例如,一个或多个接口466可被实施为通用I/O(GPIO)类型的接口。一个或多个接口466可被实施为通用异步接收机/发射机(UART)类型的接口。一个或多个接口466可以以串行外设接口(SPI)总线类型接口的形式被实施。一个或多个接口466可以以控制器区域网络(CAN)类型的接口和/或12C类型的接口形式被实施。一个或多个接口466可以以三重定时器计数器(TTC)和/或看门狗(WDT)类型的接口形式被实施。
I/0子系统450可包括一个或多个调试接口468,诸如处理器JTAG(PJTA6)接口468A和追踪接口(trace interface)468B。PJTA6接口468A可以提供用于可编程IC 402的外部调试接口。追踪接口468B可以提供用来接收来自处理子系统410或可编程逻辑子系统430的调试(例如,追踪、信息)的端口。
如所显示的,每个接口460、462、466和468可被耦接到多路复用器470。多路复用器470提供多个输出,这些输出可直接被路由到或被耦接到可编程IC 402的外部引脚,例如,其中布置可编程IC 402的封装的焊球。例如,可编程IC 402的I/O引脚可以在接口460、462、466、和468之间被共享。用户可以配置多路复用器470,通过配置数据流来选择接口460-468中的哪一个要被使用,从而经由多路复用器470而被耦接到可编程IC402的I/O引脚。I/O子系统450还可以包括交织(fabric)多路复用器I/O(FMIO)接口(未示出),其被用来连接接口462-468到可编程逻辑子系统的可编程逻辑电路。另外或替换地,可编程逻辑子系统430可被配置成在可编程逻辑内实施一个或多个I/O电路。在某些实施方案中,可编程IC 402还可以包括子系统440,其具有用于电源和/或安全管理的各种电路。例如,子系统440可包括电源管理单元446,其被配置成监视和保持被用于给可编程IC 402的各种子系统供电的一个或多个电压域。在某些实施例中,电源管理单元446可以禁用各个子系统空闲时的供电,以便减小电源消耗,而不禁用正在工作的子系统的供电。
子系统440还可包括安全电路,用来监视子系统的状态,以便确保正确的运行。例如,子系统440可包括一个或多个实时处理器442,其被配置成监视各种子系统的(例如,在状态寄存器444中指示的)状态。实时处理器442可被配置成响应于检测到错误而执行多个任务。例如,对于某些错误,实时处理器442可以响应于检测到错误而生成报警。作为另一个例子,实时处理器442可以复位子系统,试图使得子系统还原到正确的运行。子系统440包括开关网络448,它可被用来互连各种子系统。例如,开关网络448可被配置成连接各种子系统410、430和440到I/O子系统450的各种接口。在某些应用中,开关网络448也可以被用来隔离实时处理器442与要被监视的子系统。这样的隔离可能是某些应用标准(例如,IEC-61508SIL3或ISO-26262标准)所需要的,以保证实时处理器442不受其它子系统中发生的错误影响。
公开了一种系统,其包括:被配置成使用第一通信协议通过第一数据端口传送数据的第一通信电路;被配置为使用第二通信协议通过第二数据端口传送数据的第二通信电路,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求;以及被配置成在第一通信电路的第一数据端口与第二通信电路的第二数据端口之间传送数据的桥接电路,其中桥接电路被配置成经由缓冲电路将非报告的写入传送到第二通信电路以及经由旁路缓冲电路的通信路径将非报告的写入传送到第二通信电路。
某些这样的系统还可以包括:被连接到第一通信电路的存储器;被耦接到第一通信电路并且具有用于缓存来自存储器的数据的缓存的处理电路;并且其中:第一通信电路还被配置成,响应于在第一数据端口上接收到读取请求以及指示被缓存所缓存的存储器的存储器地址,从缓存检索对应于存储器地址的数据值;以及通过经由缓存器电路将非报告的写入传送到第二通信电路,防止对于来自缓存的数据值的写回被待决非报告的写阻塞的死锁。
在某些这样的系统中,桥接电路还可以被配置成使得至第二通信电路的报告的写入优先于至第二通信电路的非报告的写入。
在某些这样的系统中,缓冲电路可以是先进先出(FIFO)缓冲器。
在某些这样的系统中,桥接电路可被配置成使用第一通信协议与第一通信电路通信数据,以及使用第二通信协议与第二通信电路通信数据。
在某些这样的系统中,桥接电路可包括地址转换电路,地址转换电路被配置成和安排成为第一通信电路与第二通信电路之间的报告的读取和写入作业的地址转换。
在某些这样的系统中,桥接电路可包括直接存储器访问电路,直接存储器访问电路被配置成通过旁路地址转换电路的数据路径将来自第一或第二通信电路之一的读写作业提供给第一或第二通信电路的另一个通信电路。
在某些这样的系统中,桥接电路和第二通信电路可被配置成,响应于接收到来自第一通信电路的非报告的写入,在第一时间段内提供非报告的写入的确认;以及缓冲电路被配置成缓冲少于由第一通信电路在第一时间段内发布的最大数目的非报告的写入请求。
在某些这样的系统中,缓冲电路可被配置成缓冲少于由第一通信电路在第一时间段内发布的、可能的最大数目的非报告的和报告的写入请求,
在某些这样的系统中,桥接电路可包括一电路,该电路被配置成响应于来自第一通信电路的写入,确定所述写入是报告的写入还是非报告的写入。
在某些这样的系统中,桥接电路可包括以被配置成响应于来自第一通信电路的写入,根据目标地址确定所述写入是报告的写入还是非报告的写入。
在另一个例子中,可以提供一种用于数据通信的方法。用于数据通信的这样的方法可包括:使用第一通信电路、使用第一通信协议通过第一数据端口传送数据;使用第二通信电路、使用第二通信协议通过第二数据端口传送数据,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求;经由缓冲电路将来自第一通信电路的非报告的写入传送到第二通信电路;经由旁路缓冲电路的通信路径将来自第一通信电路的报告的写入传送到第二通信电路。
在某些这样的方法中,将来自第一通信电路的报告的写入传送到第二通信电路可包括在传送被存储在缓冲电路中的非报告的写入之前,将报告的写入传送到第二通信电路。
某些这样的方法还可以包括使用第一通信电路来保持在被连接到第一通信电路的存储器所存储的数据和在被连接到第一通信电路的缓存所存储的数据之间的数据一致性。
在某些这样的方法中,缓冲电路是先进先出(FIFO)缓冲器。
某些这样的方法还可以包括执行在第一通信电路与第二通信电路之间的、用于报告的读取和写入作业的地址转换。
某些这样的方法还可以包括响应于接收到来自第一通信电路的写入,根据目标地址确定所述写入是报告的写入还是非报告的写入。
某些这样的方法还可以响应于确定所述写入是非报告的写入,将非报告的写入路由到缓冲电路;以及响应于确定所述写入是报告的写入,将报告的写入路由到旁路缓冲电路的通信路径。
公开了另一个系统。这样的系统可包括:被配置成使用第一通信协议通过第一数据端口传送数据的第一通信电路;被配置成使用第二通信协议通过第二数据端口传送数据的第二通信电路,其中所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求;和桥接电路,包括:在第一和第二通信数据端口之间的第一通信路径,所述第一通信路径包括缓冲电路;在第一和第二通信数据端口之间的第二通信路径,所述第二通信路径旁路缓冲电路;和被配置成确定从第一通信电路接收的写入作业是报告的写入还是非报告的写入的输入电路;响应于确定所述写入作业是非报告的写入,将所述非报告的写入经由第二通信路径提供给第二通信电路;以及响应于确定所述写入作业是报告的写入,将所述报告的写入经由第二通信路径提供给第二通信电路。
在某些这样的系统中,输入电路可被配置成根据在写入作业中所指示的目标地址,确定写入作业是报告的写入还是非报告的写入。
所述方法和电路被认为可应用于各种各样的系统和应用。本领域技术人员通过考虑本说明书,将明白其它方面和特点。例如,虽然这些方面和特性在某些情形下是在各附图图中被描述的,但将会看到,来自一个图中的特点可以与另一个图的特点相组合,尽管组合没有被明显地显示,或明显地作为组合被描述。本说明书和附图仅仅意在被作为示例,本发明的真正的范围由所附权利要求表示。

Claims (14)

1.一种系统,其特征在于,所述系统包括:
第一通信电路,其被配置成使用第一通信协议通过第一数据端口传送数据;
第二通信电路,其被配置成使用第二通信协议通过第二数据端口传送数据,所述第二通信协议以读取和写入请求被接收的次序处理所述读取和写入请求;以及
桥接电路,其被配置成在所述第一通信电路的所述第一数据端口与所述第二通信电路的所述第二数据端口之间传送数据,其中所述桥接电路被配置成经由缓冲电路将所有非报告的写入请求传送到所述第二通信电路,以及经由旁路所述缓冲电路的通信路径将报告的写入请求传送到所述第二通信电路,所述通信路径不缓冲多个报告的写入请求,同时多个非报告的写入请求被缓冲;
其中所述桥接电路包括一电路,该电路被配置成响应于来自所述第一通信电路的写入请求,根据目标地址确定所述写入请求是报告的写入请求还是非报告的写入请求。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
存储器,其被连接到所述第一通信电路;
处理电路,其被耦接到所述第一通信电路并且具有用于缓存来自所述存储器的数据的缓存;以及
其中:
所述第一通信电路还被配置成,响应于在所述第一数据端口接收到读取请求以及指示被所述缓存所缓存的存储器的存储器地址,从所述缓存检索对应于所述存储器地址的数据值;以及
通过经由所述缓冲电路将待决的非报告的写入请求传送到所述第二通信电路,防止由于来自所述缓存的数据值的写回被所述待决的非报告的写入请求阻塞而产生的死锁。
3.根据权利要求1或权利要求2所述的系统,其特征在于,所述桥接电路还被配置成使得至所述第二通信电路的报告的写入请求优先于至所述第二通信电路的非报告的写入请求。
4.根据权利要求1-2中任一项所述的系统,其特征在于:
所述缓冲电路是先进先出(FIFO)缓冲器;以及
所述桥接电路被配置成经由旁路所述缓冲电路的通信路径传送报告的和非报告的读取。
5.根据权利要求1-2中任一项所述的系统,其特征在于,所述桥接电路被配置成使用所述第一通信协议与所述第一通信电路传送数据,并且使用所述第二通信协议与所述第二通信电路传送数据。
6.根据权利要求1-2中任一项所述的系统,其特征在于,所述桥接电路包括地址转换电路,所述地址转换电路被配置和安排成为所述第一通信电路与所述第二通信电路之间的报告的读取和写入请求执行地址转换。
7.根据权利要求6所述的系统,其特征在于,所述桥接电路包括直接存储器访问电路,所述直接存储器访问电路被配置成通过旁路所述地址转换电路的数据路径将读取和写入请求由所述第一或第二通信电路中的一个提供给所述第一或第二通信电路中的另一个。
8.根据权利要求1-2中任一项所述的系统,其特征在于:
所述桥接电路和所述第二通信电路被配置成,响应于接收到来自所述第一通信电路的非报告的写入请求,在第一时间段内提供对于所述非报告的写入请求的确认;以及
所述缓冲电路被配置成至少缓冲在所述第一时间段内由所述第一通信电路发布的最大数目的非报告的写入请求。
9.根据权利要求8所述的系统,其特征在于:
所述缓冲电路被配置成缓冲少于在所述第一时间段内由所述第一通信电路发布的最大数目的非报告的和报告的写入请求。
10.一种用于数据通信的方法,其特征在于,所述方法包括:
使用第一通信电路、使用第一通信协议通过第一数据端口传送数据;
使用第二通信电路、使用第二通信协议通过第二数据端口传送数据,所述第二通信协议以读取和写入请求被接收的次序处理读取和写入请求;
响应于接收到来自所述第一通信电路的写入请求,根据目标地址确定所述写入请求是报告的写入请求还是非报告的写入请求;
经由缓冲电路将来自所述第一通信电路的非报告的写入请求传送到所述第二通信电路,所述缓冲电路缓冲多个非报告的写入请求;
经由旁路所述缓冲电路的通信路径将来自所述第一通信电路的报告的写入请求传送到所述第二通信电路,所述通信路径不缓冲多个报告的写入请求,同时所述多个非报告的写入请求被缓冲。
11.根据权利要求10所述的方法,其特征在于,所述将来自所述第一通信电路的报告的写入请求传送到所述第二通信电路包括:在传送被存储在所述缓冲电路中的非报告的写入请求之前,将所述报告的写入请求传送到所述第二通信电路。
12.根据权利要求10或权利要求11所述的方法,其特征在于,所述方法还包括:
使用所述第一通信电路来保持在被连接到所述第一通信电路的存储器所存储的数据和在被连接到所述第一通信电路的缓存所存储的数据之间的数据一致性。
13.根据权利要求10-11中任一项所述的方法,其特征在于,所述方法还包括:为所述第一通信电路与所述第二通信电路之间的报告的读取和写入请求执行地址转换。
14.根据权利要求10-11中任一项所述的方法,其特征在于,所述方法还包括:
响应于确定所述写入请求是非报告的写入请求,将所述非报告的写入请求路由到所述缓冲电路;以及
响应于确定所述写入请求是报告的写入请求,将所述报告的写入请求路由到旁路所述缓冲电路的通信路径。
CN201580058973.3A 2014-10-31 2015-09-29 用于避免死锁的方法和电路 Active CN107111572B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/530,561 2014-10-31
US14/530,561 US11281618B2 (en) 2014-10-31 2014-10-31 Methods and circuits for deadlock avoidance
PCT/US2015/053032 WO2016069176A1 (en) 2014-10-31 2015-09-29 Methods and circuits for deadlock avoidance

Publications (2)

Publication Number Publication Date
CN107111572A CN107111572A (zh) 2017-08-29
CN107111572B true CN107111572B (zh) 2019-05-03

Family

ID=54364664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580058973.3A Active CN107111572B (zh) 2014-10-31 2015-09-29 用于避免死锁的方法和电路

Country Status (6)

Country Link
US (1) US11281618B2 (zh)
EP (1) EP3213220B1 (zh)
JP (1) JP6382446B2 (zh)
KR (1) KR102413593B1 (zh)
CN (1) CN107111572B (zh)
WO (1) WO2016069176A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824058B2 (en) * 2014-11-14 2017-11-21 Cavium, Inc. Bypass FIFO for multiple virtual channels
WO2018042767A1 (ja) 2016-08-31 2018-03-08 株式会社ソシオネクスト バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法
US10402355B2 (en) 2017-02-08 2019-09-03 Texas Instruments Incorporated Apparatus and mechanism to bypass PCIe address translation by using alternative routing
CN110196826B (zh) * 2018-02-24 2021-06-18 深圳市中兴微电子技术有限公司 一种死锁判断方法及装置
CN108632142B (zh) * 2018-03-28 2021-02-12 华为技术有限公司 节点控制器的路由管理方法和装置
US11477049B2 (en) * 2018-08-02 2022-10-18 Xilinx, Inc. Logical transport over a fixed PCIE physical transport network
CN109491951B (zh) * 2018-09-28 2022-05-10 超聚变数字技术有限公司 一种配置数据的方法以及计算设备
US11593281B2 (en) * 2019-05-08 2023-02-28 Hewlett Packard Enterprise Development Lp Device supporting ordered and unordered transaction classes
US11204879B2 (en) * 2019-06-06 2021-12-21 Arm Limited Memory management circuitry managing data transactions and address translations between an upstream device and a downstream device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076130A (en) * 1998-03-19 2000-06-13 Hewlett-Packard Company System and method for efficient communication between buses
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659709A (en) * 1994-10-03 1997-08-19 Ast Research, Inc. Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6567414B2 (en) * 1998-10-30 2003-05-20 Intel Corporation Method and apparatus for exiting a deadlock condition
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US20030013568A1 (en) * 2001-07-13 2003-01-16 Rivin Eugeny I. Power transmission belt
US6804741B2 (en) 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US7003615B2 (en) * 2002-04-22 2006-02-21 Broadcom Corporation Tracking a non-posted writes in a system using a storage location to store a write response indicator when the non-posted write has reached a target device
US7443869B2 (en) * 2003-08-04 2008-10-28 Intel Corporation Deadlock avoidance queuing mechanism
US7296101B2 (en) * 2004-02-17 2007-11-13 Intel Corporation Method and system for using a patch module to process non-posted request cycles and to control completions returned to requesting device
US7219175B1 (en) * 2005-03-31 2007-05-15 Emc Corporation Method and system for improving the latency in a data transmission system
US7698493B2 (en) * 2005-08-31 2010-04-13 Ati Technologies, Inc. Methods and apparatus for translating write request messages in a computing system
US8019910B2 (en) * 2007-07-31 2011-09-13 Hewlett-Packard Development Company, L.P. Transaction flow control in PCI express fabric
US7861027B2 (en) * 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
JP2010134627A (ja) * 2008-12-03 2010-06-17 Canon Inc バス中継装置
JP5304421B2 (ja) * 2009-05-01 2013-10-02 富士通セミコンダクター株式会社 追い越しモードを有するデータバッファ装置
US8572342B2 (en) * 2010-06-01 2013-10-29 Hitachi, Ltd. Data transfer device with confirmation of write completion and method of controlling the same
US20140082238A1 (en) * 2012-09-14 2014-03-20 Nvidia Corporation Method and system for implementing a control register access bus
US9164938B2 (en) * 2013-01-02 2015-10-20 Intel Corporation Method to integrate ARM ecosystem IPs into PCI-based interconnect
US9996484B1 (en) * 2014-09-17 2018-06-12 Amazon Technologies, Inc. Hardware acceleration for software emulation of PCI express compliant devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076130A (en) * 1998-03-19 2000-06-13 Hewlett-Packard Company System and method for efficient communication between buses
US6243781B1 (en) * 1998-12-03 2001-06-05 Intel Corporation Avoiding deadlock by storing non-posted transactions in an auxiliary buffer when performing posted and non-posted bus transactions from an outbound pipe

Also Published As

Publication number Publication date
US11281618B2 (en) 2022-03-22
KR20170078697A (ko) 2017-07-07
KR102413593B1 (ko) 2022-06-24
EP3213220A1 (en) 2017-09-06
EP3213220B1 (en) 2019-01-09
JP2018502359A (ja) 2018-01-25
JP6382446B2 (ja) 2018-08-29
US20160124891A1 (en) 2016-05-05
CN107111572A (zh) 2017-08-29
WO2016069176A1 (en) 2016-05-06

Similar Documents

Publication Publication Date Title
CN107111572B (zh) 用于避免死锁的方法和电路
JP7247213B2 (ja) デバッグコントローラ回路
US10037301B2 (en) Circuits and methods for inter-processor communication
KR101519771B1 (ko) 집적 회로 내의 프로세서 시스템의 확장
US7353315B2 (en) Bus controller with virtual bridge
US9639447B2 (en) Trace data export to remote memory using remotely generated reads
US10657084B1 (en) Interrupt moderation and aggregation circuitry
CN108604209A (zh) 扁平化端口桥
CN103797435B (zh) 用于控制两个集成电路之间的事务交换的方法
CN104050028B (zh) 用于触发和跟踪初级可调节结构内的片上系统结构事务的方法和装置
JP2017528821A (ja) プログラマブル論理のためのメモリの仮想化
US10896119B1 (en) Common input/output interface for application and debug circuitry
US20180336034A1 (en) Near memory computing architecture
US10176131B1 (en) Controlling exclusive access using supplemental transaction identifiers
US10042692B1 (en) Circuit arrangement with transaction timeout detection
US9448937B1 (en) Cache coherency
US10088523B2 (en) Debug adapter
CN104461796B (zh) 用于嵌入式8051cpu的jtag调试模块及调试方法
CN104572515B (zh) 跟踪模块、方法、系统和片上系统芯片
CN103150262B (zh) 管道式串行接口闪存访问装置
US10592358B2 (en) Functional interconnect redundancy in cache coherent systems
CN109032990A (zh) 一种pcie芯片及pcie系统
CN118245404A (zh) 一种基于fpga调节片间缓存一致性的系统和方法
TW200945191A (en) Processing unit including wireless modules and method thereof

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