CN110073340A - 事务处理 - Google Patents

事务处理 Download PDF

Info

Publication number
CN110073340A
CN110073340A CN201780076771.0A CN201780076771A CN110073340A CN 110073340 A CN110073340 A CN 110073340A CN 201780076771 A CN201780076771 A CN 201780076771A CN 110073340 A CN110073340 A CN 110073340A
Authority
CN
China
Prior art keywords
identifier
affairs
transactions requests
indicator
transactions
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
CN201780076771.0A
Other languages
English (en)
Other versions
CN110073340B (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.)
ARM Ltd
Original Assignee
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN110073340A publication Critical patent/CN110073340A/zh
Application granted granted Critical
Publication of CN110073340B publication Critical patent/CN110073340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/466Transaction processing
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Abstract

事务处理设备包括:事务处理电路,其用于处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及检测电路,其用于检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。

Description

事务处理
技术领域
本公开涉及事务处理。
背景技术
一些事务处理协议利用与数据处理事务相关联的标识符,使得发起者设备(其发起事务)可以等待对事务的响应,并且在响应从事务服务器设备到达发起者设备时,可以适当地处理响应。
在一些协议中,多个并发事务能够由发起者设备发布,具有相同标识符。排序要求通常应用于这样的事务组。例如,排序要求可以是以下各项中的一个或多个:事务以事务发布顺序被递送至其目的地的要求;对事务的响应以事务发布顺序被返回至事务的发起者的要求;以及事务以事务发布顺序被完成的要求。
然而,可能出现排序可能被潜在地破坏的情况,例如,在由多个服务器设备处理事务组的情况下。在这种情况下,可以使用所谓的排序技术来避免排序要求被破坏。这些技术可以包括停止相对于排序要求“提早”接收或处理的事务,和/或缓冲与事务有关的信息,直到转发这种信息的适当阶段。
发明内容
在示例布置中,提供了一种事务处理设备,包括:
事务处理电路,其用于处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测电路,其用于检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在另一示例布置中,提供了一种发起者设备,包括:
事务发布电路,其用于发布针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;
事务发布电路被配置为将指示符与标识符相关联,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在另一示例布置中,提供了一种表示数据处理事务请求的数据信号,数据信号包括:标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及与标识符相关联的指示符,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在另一示例布置中,提供了一种方法,包括:
处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;
以及检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在另一示例布置中,提供了一种方法,包括:
发布针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
将指示符与标识符相关联,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
本技术的其他各个方面和特征由所附权利要求限定。
附图说明
仅通过举例的方式,参考附图中示出的实施例,进一步描述本技术,在附图中:
图1示意性地示出了数据处理装置;
图2和图3示意性地示出了示例事务处理情况;
图4示意性地示出了事务处理电路;
图5和图6是示出操作发起者设备的方法的示意流程图;
图7至图9是示出操作事务处理电路的方法的示意流程图。
图10示意性地示出了事务处理电路;
图11示意性地示出了发起者设备;并且
图12和图13是示出概要方法的示意流程图。
具体实施方式
在参考附图讨论实施例之前,提供以下对实施例的描述。
示例实施例提供了一种事务处理设备,包括:
事务处理电路,其用于处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测电路,其用于检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在示例布置中,提供指示符以指示标识符是否与多于一个并发未决事务请求有关。如果不是,则可以方便地忽略或绕过任何重新排序布置,因为不存在由事务标识符强加的排序要求,该事务标识符不与多于一个并发未决事务请求有关。
适用于事务请求处理的排序要求可以是这样的,处理的方面包括从具有以下各项的列表中选择的一个或多个:
(i)事务被递送至其目的地;
(ii)对事务的响应被返回至事务的发起者;以及
(iii)事务被完成(例如,与该事务有关的所有处理均已被执行)。
在示例布置中,排序电路(作为事务处理设备的一部分)可以包括:缓冲器电路,其用于存储定义具有相同标识符的一组请求的数据;以及比较器电路,其用于检测与新接收到的事务相关联的标识符是否与由缓冲器电路保持数据的任何事务的标识符相同。在示例中,排序电路被配置为根据具有相同标识符的这些事务的发布顺序,来输出由缓冲器电路保持的定义这些事务的数据。
在示例布置中,缓冲器电路可以被配置为响应于针对事务标识符的完成确认,移除与该事务标识符有关的缓冲数据。
在事务不与另一并发未决事务共享标识符的情况下,可以方便地避免重新排序,其中,事务处理电路被配置为在处理以下事务请求时绕过排序电路:针对该事务请求,检测电路检测到指示符被设置为指示请求标识符仅与一个并发未决请求有关。这进而允许使用较不强大(例如,占用更少的电路空间)排序电路,因为至少一些事务可以绕过它。
另一示例实施例提供了一种发起者设备,包括:
事务发布电路,其用于发布针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;
事务发布电路被配置为将指示符与标识符相关联,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在示例布置中,一旦具有标识符的较早事务已经被完成并且(例如)其完成被发起者确认,则可以重复使用事务标识符(并且仍被认为不应用于另一并发未决事务)。因此,在示例布置中,设备响应于接收到与事务标识符有关的完成确认而允许针对另一请求重复使用该事务标识符,其中针对该事务标识符,指示符被设置为指示事务仅与一个并发未决事务请求有关。
因为在至少示例实施例中仅需要唯一/非唯一指示,所以指示符可以是一位指示符。
另一示例实施例提供了一种数据处理装置,包括:
如上定义的一个或多个事务处理设备;
如上定义的一个或多个发起者设备;以及
互连电路,其用于将一个或多个发起者连接到一个或多个事务处理设备。
为了允许在事务的处理的各个阶段避免重新排序(在唯一标识符的情况下),在示例布置中,装置被配置为将指示符与包括事务标识符的所有事务消息相关联。
另一示例实施例提供了一种表示数据处理事务请求的数据信号,该数据信号包括:标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及与标识符相关联的指示符,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
另一示例实施例提供了一种方法,包括:
处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
注意,这些步骤可以并行或隐含地被执行。例如,由于发起者的操作的其他细节,可以隐含地知道发起者中的一组ID是唯一的;也就是说,不需要两个单独或串行地实现的步骤来包含该功能。
另一示例实施例提供了一种方法,包括:
发布针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
将指示符与标识符相关联,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
参考附图,图1示意性地示出了包括多个主设备或事务发起者设备(另外称为发起者)100、110、120、130的数据处理系统。发起者100、110根据AXI(高级可扩展接口)协议进行操作。发起者120、130根据CHI(相干集线器接口)协议进行操作。
发起者100、110连接到互连140,并且发起者120、130连接到缓存一致性互连150。
互连140、150经由互连160连接到各种从节点170、180,例如,主存储器、访问主存储器的动态存储器控制器等。
图1的数据处理装置可以实现为所谓的片上系统(SoC)或片上网络(NoC)系统。
在操作中,发起者100...130发布与数据处理操作有关的所谓的事务请求。事务请求的示例是从特定存储器地址、或一系列存储器地址读取数据的请求。另一示例是将数据写入存储器地址、或一系列存储器地址的请求。其他事务请求可以涉及以下事项,例如,使在装置中的特定节点处保持的某些数据的副本无效等。
发起者将每个事务与事务标识符相关联。在某些情况下,事务标识符可以是“唯一的”。术语“唯一的”并不意味着跨整个装置的唯一性,也不意味着跨整个时间的唯一性。相反,唯一性被定义为来自特定发起者仅有一个当前未决事务具有该标识符。因此,标识符可以是唯一的,即使另一发起者使用相同的标识符,并且标识符仍然可以被认为是唯一的,尽管相同发起者多次使用标识符,如果只有一个当前未决事务具有该标识符,也就是说,一旦具有特定标识符的事务已经被完成并且其完成已经被发起者确认,则可以在后续事务中使用相同的标识符,而不损害其唯一状态。
由发起者发布的数据处理事务经由各种互连被递送至目的地。例如,从节点170、180之一。在那里,执行与事务有关的处理,并且将适当的响应发送给该事务的发起者。在与事务相关的处理结束时,完成确认被发送到发起者。
CHI发起者120、130通过CHI协议进行绑定,总是使用如上定义的唯一标识符。
然而,AXI发起者100、110可以使用唯一标识符,或可以发布具有相同标识符的一组两个或更多个事务。在AXI和各种其他事务处理协议中允许这样的布置。然而,应用于共享标识符的这样的一组事务的条件是,针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一个方面必须按照该组事务的发布顺序来执行。处理的这种方面的示例是从包括以下各项的列表中选择的一个或多个:
·事务被递送至其目的地(例如从节点);
·对事务的响应被返回至发起者;以及
·事务被完成(例如,与该事务相关的所有处理已经在从设备处被处理完成;在写入的示例情况下,写入的结果现在可由针对相同地址的任意后续事务进行观察)。
应该理解,可以应用这些条件中的多于一个条件。
考虑到对共享事务标识符的事务请求的至少部分有序处理的要求,可以在图1的装置内提供所谓的重新排序布置,以确保满足排序要求。
因此,为了满足排序约束,在具有相同标识符的事务被发送到可以重新排序它们的目的地时,在一些示例布置中,它们被停止,或系统被提供有一个或多个重新排序缓冲器。这些预防措施既适合于满足协议的排序要求,又试图避免相关死锁条件。
因此,图1提供了数据处理装置的示例,包括一个或多个事务处理设备;一个或多个发起者设备;和互连电路,用于将一个或多个发起者连接到一个或多个事务处理设备。
注意,事务处理设备可以是从设备。但更一般地说,它是发起者下游的设备。因此,互连或互连的一部分可以是事务处理设备。
图2示意性地示出了其中可能需要重新排序的情况。主设备或发起者设备200向一对从设备210、220发送共享事务标识符的一组事务。换句话说,在共享标识符的一组事务请求中,在该示例中,一些事务由从设备210处理,而一些事务由从设备220处理。从两个从设备接收的响应在其定时和/或排序方面可以彼此独立。因此,为了符合排序要求,逻辑230用被用来提供重新排序。
逻辑230提供以下功能:跟踪与已经进行中的事务有关的标识符;将新接收到的事务请求与这些标识符进行比较;在某些情况下,提供重新排序缓冲器,以便可以暂时缓冲事务的结果,直到它们可以按照适当顺序被发布回给发起者;以及在某些情况下,提供与CDAS(循环依赖性避免方案)有关的电路,其再次控制事务可以被转发到该示例中的从设备210、220的顺序,从而避免由于必须停止来自从设备210、220的响应而导致的死锁。
图3中示出了可能发生这种问题的另一示例布置,其中符合AXI的主设备或发起者300正在向符合CHI的从设备或其他域310发布事务请求。同样,在主设备和从设备(例如,作为互连电路的一部分)之间,逻辑320被提供有如上所述的逻辑230的功能,并且用作两个协议之间的桥接器。
本技术的示例提供与事务标识符相关联的指示符,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
在一些示例中,指示符可以是一位指示符(因为仅需要唯一/非唯一指示)。虽然指示符可以被复用到已经用于传送标识符(或其他数据字段)的相同连接上,但是为了速度和方便,在一些示例布置中,指示符可以通过附加连接来承载。虽然指示符可以仅从发起者被提供到具有重新排序能力的第一下游阶段,但是在示例布置中,指示符与承载标识符的所有事务消息(包括例如响应和完成确认)相关联。
标识符和指示符的示例格式如下:
指示符 标识符
(1位) (6位)
0b1 0b101010
承载该信息的事务相关消息提供表示数据处理事务请求的数据信号的示例,该数据信号包括:标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及与标识符相关联的指示符,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
用于提供指示符的技术将在下面进行讨论。首先,图4示意性地表示提供事务排序功能的逻辑230、320的示例。
参考图4,电路400在事务输入410(也用作响应输出,将在下面进行描述)处接收事务以及其相关联的指示符。用作指示符检测器420的检测电路检测与接收到的事务请求相关联的指示符是否指示标识符是如上所述唯一的。如果事务标识符是唯一的,则不需要进行重新排序,并且可以经由旁路路径430将事务转发到事务输出440(还用作响应输入,将在下面进行讨论)。
然而,如果标识符不是唯一的(如由指示符指示的),则提供包括标识符和/或重新排序缓冲器450、检测器和排序逻辑460、以及CDAS电路470的电路以处理对事务的正确排序。下面将详细讨论这些单元的操作。事务请求由事务输出440输出。
响应于由目的地设备处理事务请求,生成响应以传递回发起者。响应可以包括响应于读取请求而提供的数据。响应可以包括指示已经执行了处理操作的完成确认。
响应输入440将接收到的响应引用至指示符检测器445(为了附图的清楚起见,在图4中单独示出,但是其可以通过与指示符检测器420相同的逻辑来实现)。如果指示符指示响应与具有唯一标识符的事务请求有关,则响应可以由旁路路径430传递至输出410。然而,如果指示符指示响应与具有非唯一标识符的事务请求,则响应被传递至缓冲器450、检测器/排序逻辑460、CDAS 470以用于在被输出之前以下面将讨论的方式进行处理,以便(在示例布置中)根据具有相同标识符的这些事务的(由相关发起者的)发布顺序,来输出由缓冲器电路保持的定义这些事务的数据。
因此,图4提供了排序电路(450、460、470)的示例,包括:缓冲器电路(450),用于存储定义具有相同标识符的一组请求的数据;以及比较器电路(460),用于检测与新接收到的事务相关联的标识符是否与由缓冲器电路保持数据的任何事务的标识符相同。事务处理电路400被配置为在处理以下事务请求时绕过排序电路(例如,通过旁路路径430):针对该事务请求,检测电路检测到指示符被设置为指示请求标识符仅与一个并发未决请求有关。
图5是示出事务发起者处的操作的示意流程图。
在步骤500处,发起者建立要发布的事务,并且向该事务分配标识符。
在步骤510处,发起者确定标识符是否是唯一的,也就是说,标识符不用于任意其他当前未决事务,并且事务本身不是相同标识符需要被重复使用的一组事务之一。
注意,这些步骤可以并行或隐含地被执行。例如,由于发起者的操作的其他细节,可以隐含地知道发起者中的一组ID是唯一的;也就是说,不需要两个单独或串行地实现的步骤来包含该功能。
发起者生成事务,因此知道标识符是否以唯一的方式被使用。例如,事务可以是用于处理去往或来自发起者处的一组行填充缓冲器或其他缓存存储器区域的数据传输的一组事务之一,在这种情况下,因为事务被分配了共享标识符,所以发起者知道标识符在多个事务请求中被非唯一地使用。在另一示例中,发起者可以连接到另一域、或与另一域相关联,该另一域提供要作为请求转发的事务组或流,所有这些都具有相同的标识符。在另一示例中,事务可以是这样的,发起者设备不具有以任意顺序接收事务响应的重新排序能力(或足够的能力),因此使用相同的标识符来确保以已知的顺序接收响应。
如果在步骤520处,检测到标识符是唯一的,则控制转到步骤530,在步骤530处设置指示符以指示唯一性。如果不是,则控制转到步骤540,在步骤540处设置指示符以指示缺乏唯一性。
图6是表示发起者处的操作的示意性流程图,其中,在步骤600处,发起者接收关于特定标识符的完成确认,并且在步骤610处,允许重复使用该标识符作为唯一标识符。这是发起者设备响应于接收到与事务标识符有关的完成确认而允许针对另一请求重复使用该事务标识符的示例,其中针对该事务标识符,指示符被设置为指示事务仅与一个并发未决事务请求有关。
图7是与图4的电路有关的示意流程图。图7涉及对新接收到的事务的处理(如图4所示的通常向下的路径)。下面要讨论的图8和9涉及对新接收到的事务响应的处理(如图4中所示的通常向上的路径)。
在步骤700处,在输入410处接收新的事务请求。
在步骤710处,检测器420检查指示符,并且在步骤720处,如果指示符被设置为指示唯一性,则事务通过旁路路径430(由“是”分支725表示)被路由,并且在步骤730处,事务由输出440被发布。
如果唯一标识符没有被设置为指示唯一性(或被设置为指示非唯一性),则控制转到步骤740,由缓冲器450、逻辑460、以及在适当的情况下由CDAS 470实现。在步骤740处,将新接收到的事务请求的标识符与由缓冲器450保持的当前未决事务的标识符的跟踪列表进行比较。如果标识符已经存在于列表中,则定义新接收到的事务的数据被添加到列表中(相对于列表中的一个或多个条目)的有序位置,以指示新接收到的事务是在列表中已经存在的那些事务之后被接收的。如果标识符不在列表中,则定义事务的数据被添加到列表中。列表中的条目持续存在,直到随后接收到与该标识符有关的完成确认,作为示例,缓冲器电路被配置为响应于针对事务标识符的完成确认,而移除与该事务标识符有关的缓冲数据。然而,注意,在使用重新排序缓冲器的布置中,条目可以持续存在,直到完成确认被接收并且然后从缓冲器被发送。这是因为完成确认可能以错误的顺序被接收,因此需要保持跟踪,直到完成确认被有效发送。
如果存在任何资源冲突或排序问题,则在步骤750处,停止事务,直到(作为步骤750的“否”结果),在步骤760处,事务通过分配和跟踪资源被准备用于发布。然后,控制转到步骤730,在步骤730处,事务被发布。如果存在资源冲突,则事务请求被停止,直到冲突被解决(例如,通过较早接收到的具有相同的标识符的事务被完成)。作为停止的替代,请求可以被添加到重新排序缓冲器(其可以由缓冲器450来实现)。重新排序缓冲器存储请求本身,而不是仅存储定义请求的数据。因此,不需要停止从提供请求的节点接收和处理请求;请求可以被接受,并且然后由重新排序缓冲器存储,直到转发请求的适当阶段。
图8与类似情况有关,并且关于从作为事务的目的地的从节点或其他节点接收(在输入440处)事务响应。
在步骤810处,检查指示符字段以检测标识符是否是唯一的,如上所述。如果在步骤820,指示符是唯一的,则(作为“是”分支825)控制(通过旁路路径430)传递到步骤830,在步骤830处,响应被发布回给发起者。
然而,如果步骤820处的结果是“否”,则控制转到步骤840,在步骤840处,将事务响应的标识符与缓冲器450保持的跟踪列表进行比较。如果在步骤850处,满足排序要求(例如,响应已经以相对于其他响应的正确顺序被接收,或(在该特定示例中)针对响应的接收顺序没有排序要求),则控制转到步骤860,在步骤860处,取消分配并且解开事务所使用的资源,并且在步骤830处发布响应。然而,如果步骤850处的结果为“否”,则控制传递回至步骤840,处于停止状况,直到满足排序要求。也就是说,响应被停止,直到发起者在当前响应之前(通过排序要求)所需接收到的响应可用。
图9示意性地示出了在步骤850的“否”结果处停止事务的替代方案。图9中示出的步骤代替图8中的步骤850,图8的其余部分保持不变。
控制从步骤840传递,在步骤900处,将响应添加到重新排序缓冲器(其可以由缓冲器450实现)。重新排序缓冲器存储响应本身,而不是仅存储定义响应的数据。因此,不需要停止从提供响应的节点接收和处理响应;响应可以被接受,并且然后由重新排序缓冲区存储,直到转发响应的适当阶段。
在步骤910处,查询ID跟踪列表,以在步骤920处检测事务响应是否被有效发布。如果答案是“否”,则控制返回到步骤910,而如果答案是“是”,则控制转到步骤860。
图10示意性地示出了事务处理设备的概要实施例,该事务处理设备包括:事务处理电路1000,其用于处理针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及检测电路1010,其用于检测与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
图11示意性地示出了发起者设备的概要实施例,该发起者设备包括:事务发布电路1100,其用于发布针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;事务发布电路被配置为将指示符与标识符相关联,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
图12是示出一种方法的示意流程图,该方法包括:
处理(在步骤1200处)针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测(在步骤1210处)与标识符相关联的指示符的状态,该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
注意,这些步骤可以并行或隐含地被执行。例如,由于发起者的操作的其他细节,可以隐含地知道发起者中的一组ID是唯一的;也就是说,不需要两个单独或串行地实现的步骤来包含该功能。
图13是示出一种方法的示意流程图,该方法包括:
发布(在步骤1300处)针对数据处理事务的事务请求,该事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
将指示符与标识符相关联(在步骤1310处),该指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
作为用于提供向后兼容性的示例技术,在没有实现这些技术的AXI发起者(或预先存在的子系统)连接到使用这些技术的互连或从设备时,指示符可以被设置(或硬连线)为指示“非唯一的”,其将始终给出正确的排序行为。如果系统集成者事先知道没有使用这些技术的AXI发起者或子系统总是生成唯一ID,则可以在使用这些技术的互连或从设备的输入处将指示符设置或硬连线为“唯一的”,而不是指示符随着事务而来。
在示例布置中,本技术可以有助于节省集成电路实现中的电路面积。如果系统架构师对主设备的属性有一定的了解,尤其是针对不使用唯一ID的事务需要多少带宽,则可能就是这种情况。设计工具可以帮助做出这个决定。例如,设计工具可以获取关于主设备的要求和/或唯一ID行为的输入(例如,从模型或输入直接作为规范的形式输入到设计工具中),并且使用该信息来配置更优的排序电路的大小或存在。
在本申请中,词语“被配置为......”被用来表示装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”表示硬件或软件的互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或可以对处理器或其他处理设备(例如,上面讨论的处理元件)进行编程以执行功能。“被配置为”并不意味着需要以任何方式改变设备元件以便提供所定义的操作。
虽然本文已经参考附图详细描述了本技术的说明性实施例,但是应该理解,本技术不限于那些精确的实施例,并且本领域技术人员在不脱离由所附权利要求限定的技术的范围和精神的情况下,可以在其中进行各种改变、添加和修改。例如,在不脱离本技术的范围的情况下,从属权利要求的特征可以与独立权利要求的特征进行各种组合。

Claims (16)

1.一种事务处理设备,包括:
事务处理电路,其用于处理针对数据处理事务的事务请求,所述事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测电路,其用于检测与所述标识符相关联的指示符的状态,所述指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
2.根据权利要求1所述的设备,其中,处理的方面包括从包括以下各项的列表中选择的一个或多个:
(i)事务被递送至其目的地;
(ii)对事务的响应被返回至事务的发起者;以及
(iii)事务被完成。
3.根据权利要求1所述的设备,包括排序电路,所述排序电路包括:
缓冲器电路,其用于存储定义具有相同标识符的一组请求的数据;以及
比较器电路,其用于检测与新接收到的事务相关联的标识符是否与针对由所述缓冲器电路所保持的数据的任何事务的标识符相同。
4.根据权利要求3所述的设备,其中,所述排序电路被配置为:根据具有相同标识符的这些事务的发布顺序,来输出由所述缓冲器电路保持的定义这些事务的数据。
5.根据权利要求3或4所述的设备,其中,所述缓冲器电路被配置为:响应于针对事务标识符的完成确认,移除与该事务标识符有关的缓冲数据。
6.根据权利要求3至5中的任一项所述的设备,其中,所述事务处理电路被配置为:在处理事务请求时绕过所述排序电路,其中针对该事务请求,所述检测电路检测到所述指示符被设置为指示请求标识符仅与一个并发未决请求有关。
7.根据前述权利要求中的任一项所述的设备,其中,所述指示符是一位指示符。
8.一种发起者设备,包括:
事务发布电路,其用于发布针对数据处理事务的事务请求,所述事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;
所述事务发布电路被配置为将指示符与所述标识符相关联,所述指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
9.根据权利要求8所述的设备,其中,处理的方面包括从包括以下各项的列表中选择的一个或多个:
(i)事务被递送至其目的地;
(ii)对事务的响应被返回至所述发起者设备;以及
(iii)事务被完成。
10.根据权利要求8或9所述的设备,所述设备响应于接收到与事务标识符有关的完成确认而允许针对另一请求重复使用该事务标识符,其中针对该事务标识符,所述指示符被设置为指示该事务仅与一个并发未决事务请求有关。
11.根据权利要求5所述的设备,其中,所述指示符是一位指示符。
12.一种数据处理装置,包括:
一个或多个事务处理设备,其均为根据权利要求1至4中的任一项所述的事务处理设备;
一个或多个发起者设备,其均为根据权利要求5至6中的任一项所述的发起者设备;以及
互连电路,其用于将所述一个或多个发起者连接到所述一个或多个事务处理设备。
13.根据权利要求12所述的装置,其中,所述装置被配置为将所述指示符与包括事务标识符的所有事务消息相关联。
14.一种表示数据处理事务请求的数据信号,所述数据信号包括:标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及与所述标识符相关联的指示符,所述指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
15.一种方法,包括:
处理针对数据处理事务的事务请求,所述事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
检测与所述标识符相关联的指示符的状态,所述指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
16.一种方法,包括:
发布针对数据处理事务的事务请求,所述事务请求具有相关联的标识符,使得针对具有相同标识符的一组事务请求中的每个事务请求的处理的至少一方面必须按照该组事务的发布顺序来执行;以及
将指示符与标识符相关联,所述指示符用于指示该标识符是否与多于一个并发未决事务请求有关。
CN201780076771.0A 2016-12-19 2017-12-13 事务处理 Active CN110073340B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1621638.4 2016-12-19
GB1621638.4A GB2557944B (en) 2016-12-19 2016-12-19 Transaction handling
PCT/GB2017/053725 WO2018115814A1 (en) 2016-12-19 2017-12-13 Transaction handling

Publications (2)

Publication Number Publication Date
CN110073340A true CN110073340A (zh) 2019-07-30
CN110073340B CN110073340B (zh) 2023-06-20

Family

ID=58284356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780076771.0A Active CN110073340B (zh) 2016-12-19 2017-12-13 事务处理

Country Status (7)

Country Link
US (1) US20190266010A1 (zh)
EP (1) EP3555753B1 (zh)
JP (1) JP7084406B2 (zh)
KR (1) KR102502304B1 (zh)
CN (1) CN110073340B (zh)
GB (1) GB2557944B (zh)
WO (1) WO2018115814A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714779B2 (en) 2020-03-25 2023-08-01 Xilinx, Inc. NoC relaxed write order scheme

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295548B1 (en) * 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
US7170989B1 (en) * 2002-09-06 2007-01-30 Sprint Communications Company L.P. Transaction dependency manager
US20080040523A1 (en) * 2006-08-08 2008-02-14 Arm Limited Interconnect logic for a data processing apparatus
US20080059705A1 (en) * 2006-08-30 2008-03-06 Arm Limited Line fill techniques
US20110185102A1 (en) * 2010-01-24 2011-07-28 Freescale Semiconductor, Inc Bus bridge and method for interfacing out-of-order bus and multiple ordered buses
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments
US20120290752A1 (en) * 2011-05-09 2012-11-15 Arm Limited Transaction indentifier expansion circuitry and method of operation of such circuitry
US20140143487A1 (en) * 2012-11-21 2014-05-22 Adi Habusha System and method for managing transactions
JP2014517431A (ja) * 2011-06-24 2014-07-17 エイアールエム リミテッド メモリコントローラおよびかかるメモリコントローラの動作方法
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion
CN105005538A (zh) * 2014-04-17 2015-10-28 Arm有限公司 许可对互连电路内的排序风险检测进行修复的装置和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201829B2 (en) * 2012-09-06 2015-12-01 Apple Inc. Low power, area-efficient tracking buffer

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295548B1 (en) * 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
US7170989B1 (en) * 2002-09-06 2007-01-30 Sprint Communications Company L.P. Transaction dependency manager
US20080040523A1 (en) * 2006-08-08 2008-02-14 Arm Limited Interconnect logic for a data processing apparatus
US20080059705A1 (en) * 2006-08-30 2008-03-06 Arm Limited Line fill techniques
US20110185102A1 (en) * 2010-01-24 2011-07-28 Freescale Semiconductor, Inc Bus bridge and method for interfacing out-of-order bus and multiple ordered buses
US20120226742A1 (en) * 2011-03-03 2012-09-06 Citrix Systems Inc. Transparent User Interface Integration Between Local and Remote Computing Environments
US20120290752A1 (en) * 2011-05-09 2012-11-15 Arm Limited Transaction indentifier expansion circuitry and method of operation of such circuitry
JP2014517431A (ja) * 2011-06-24 2014-07-17 エイアールエム リミテッド メモリコントローラおよびかかるメモリコントローラの動作方法
US20140143487A1 (en) * 2012-11-21 2014-05-22 Adi Habusha System and method for managing transactions
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion
CN105005538A (zh) * 2014-04-17 2015-10-28 Arm有限公司 许可对互连电路内的排序风险检测进行修复的装置和方法

Also Published As

Publication number Publication date
GB201621638D0 (en) 2017-02-01
GB2557944B (en) 2020-02-12
JP2020502660A (ja) 2020-01-23
CN110073340B (zh) 2023-06-20
EP3555753A1 (en) 2019-10-23
KR20190097092A (ko) 2019-08-20
KR102502304B1 (ko) 2023-02-22
JP7084406B2 (ja) 2022-06-14
EP3555753B1 (en) 2022-04-13
GB2557944A (en) 2018-07-04
WO2018115814A1 (en) 2018-06-28
US20190266010A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
JP3853540B2 (ja) ファイバチャネル接続磁気ディスク装置およびファイバチャネル接続磁気ディスク制御装置
CN100579108C (zh) 一种远程密钥验证的方法和主机结构适配器
US9467399B2 (en) Processing concurrency in a network device
CN106982136B (zh) 一种多域分层的多域物联网平台及多域管理方法
US7558895B2 (en) Interconnect logic for a data processing apparatus
CN103744719B (zh) 锁管理方法及系统、锁管理系统的配置方法及装置
EP3470984B1 (en) Method, device, and system for managing disk lock
CN108897628A (zh) 一种分布式锁的实现方法、装置及电子设备
CN110442610A (zh) 负载均衡的方法、装置、计算设备以及介质
CN105242872A (zh) 一种面向虚拟集群的共享存储系统
US9525621B2 (en) Semaphore soft and hard hybrid architecture
US9213660B2 (en) Receiver based communication permission token allocation
CN104580428B (zh) 一种数据路由方法、数据管理装置和分布式存储系统
CN110073340A (zh) 事务处理
CN103514164A (zh) 数据迁移方法及系统
JP2007200086A (ja) データ複製システムおよびデータ複製方法
CN106341440A (zh) 一种数据更新方法和装置
CN108733477A (zh) 数据集群化处理的方法、装置及设备
US20150195357A1 (en) Enhancing active link utilization in serial attached scsi topologies
CN101902454B (zh) 用于将多个非光纤通道设备耦合至光纤通道仲裁环路的桥设备和方法
US9184996B2 (en) Thin client system, management server, client environment management method and program
US20130304943A1 (en) Method for broadcast processing with reduced redundancy
NL1027136C2 (nl) Werkwijze en samenstellen voor dynamisch partitiebeheer van gedeelde onderling verbonden partities.
JP2013037693A (ja) データ処理システムの同期化
CN109240829A (zh) 用于交换芯片的申请、管理独占资源的方法及装置

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