CN110928811A - 用于处理突发读取事务的装置和方法 - Google Patents
用于处理突发读取事务的装置和方法 Download PDFInfo
- Publication number
- CN110928811A CN110928811A CN201910866042.6A CN201910866042A CN110928811A CN 110928811 A CN110928811 A CN 110928811A CN 201910866042 A CN201910866042 A CN 201910866042A CN 110928811 A CN110928811 A CN 110928811A
- Authority
- CN
- China
- Prior art keywords
- data
- transfer
- data items
- master device
- transaction
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012546 transfer Methods 0.000 claims abstract description 294
- 230000003139 buffering effect Effects 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000004891 communication Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000001902 propagating effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0052—Assignment of addresses or identifiers to the modules of a bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
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)
Abstract
提供了用于处理突发读取事务的装置和方法。该装置具有主设备和经由连接介质耦合到主设备的从设备。主设备包括用于发起使得主设备向从设备发出指定读取地址的地址传送的突发读取事务。从设备被布置为通过使得基于读取地址获得突发读取事务所需的多个数据项、并通过在连接介质上执行多次数据传送以便将多个数据项传送到主设备,来处理突发读取事务。从设备具有传送标识符生成电路,用于为每次数据传送生成传送标识符以指出哪个数据项正通过该数据传送进行传送。主设备具有用于缓冲接收的数据项的缓冲电路,其用于采用为每次数据传送提供的传送标识符来使数据项以确定顺序被提供给处理电路,而不管数据项经由多次数据传送被传送到主设备的顺序如何。
Description
技术领域
本技术涉及用于处理突发读取事务的装置和方法。
背景技术
已知数据处理系统支持突发读取事务的使用,其中主设备可发起单个读取事务,该事务导致多个数据项被取回并返回到主设备。各个数据项可被称为突发事务的节拍,因此突发读取事务将包括多个节拍。为了执行突发事务,主设备通常将经由系统的连接介质向从设备发出地址传送。连接介质可以采用各种形式,但是可以例如是将一个或多个主设备与一个或多个从设备互连的互连。
通常,主设备与从设备之间的通信被布置成符合特定的通信协议,并且当处理突发读取事务时,通常情况是必须以预定顺序将读取事务的节拍返回到主设备的处理电路。关于数据节拍的该响应排序规则可以对系统内的元件施加显著约束,其中可能存在中间节点,中间节点从不同的源收集节拍,然后以所需顺序将这些节拍向上游发送到主设备。例如,这样的中间节点可能需要添加重新排序缓冲器以确保所接收的节拍可以被缓冲并重新排序,使得它们可以被以所需的预定顺序传播到主设备上。
这样的重新排序约束会限制使用突发读取事务的程度。例如,在特定实现中,可以将突发大小限制为相对少量的节拍,以便减少系统内的重新排序缓冲器要求。然而,这避免了通过使用更大的突发事务可以实现的潜在性能益处。或者,特定实现可以选择使所有读取事务串行化,因此完全避免使用突发事务,从而避免对重新排序缓冲器的需要。然而,相对于允许使用突发读取事务的系统,这样的系统通常遭受不佳的性能。
因此,将希望提供一种用于处理系统内的突发读取事务的改进机制,其中响应排序规则与事务的节拍相关联。
发明内容
在一个示例布置中,提供了一种装置,其包括:主设备;和从设备,该从设备经由连接介质耦合到主设备;主设备包括用于发起突发读取事务的处理电路,该突发读取事务使得主设备经由连接介质向从设备发出指定读取地址的地址传送;从设备被布置为:通过使得使用由地址传送指定的读取地址获得突发读取事务所需的多个数据项并通过在连接介质上执行多次数据传送以便将这多个数据项传送到主设备,来处理突发读取事务;从设备包括传送标识符生成电路,该传送标识符生成电路用于为每次数据传送生成将通过连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;并且主设备包括数据缓冲电路,该数据缓冲电路用于缓冲经由多次数据传送接收的数据项并用于采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给处理电路,而不管数据项经由多次数据传送被传送到主设备的顺序如何。
在另一个示例布置中,提供了一种主设备,其包括:接口电路,用于将主设备连接到连接介质,以促进与从设备的通信;处理电路,用于发起突发读取事务,该突发读取事务使得主设备经由连接介质向从设备发出指定读取地址的地址传送;接口电路被布置为:经由连接介质从从设备接收多次数据传送,每次数据传送提供突发读取事务所需的多个数据项当中的数据项,对于每次数据传送,从设备通过连接介质提供传送标识符以指出所述多个数据项中的哪个数据项正提供该数据传送进行传送;以及数据缓冲电路,用于缓冲经由多次数据传送接收的数据项,并用于采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给所述处理电路,而不管数据项经由多次数据传送被传送到主设备的顺序如何。
在又一个示例布置中,提供了一种从设备,其包括:接口电路,用于将从设备连接到连接介质以促进与主设备的通信,该接口电路被布置为:响应于由主设备的处理电路发起的突发读取事务而经由连接介质接收指定读取地址的地址传送,从设备被布置为:通过使得使用由地址传送指定的读取地址获得突发读取事务所需的多个数据项并通过在连接介质上发出多次数据传送以便将这多个数据项传送到主设备来处理突发读取事务;以及传送标识符生成电路,用于为每次数据传送生成将通过连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送,从而使主设备能够缓冲经由多次数据传送接收的数据项,并能够采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给处理电路,而不管数据项经由多次数据被传送传送到主设备的顺序如何。
在又一个示例布置中,提供了一种处理突发读取事务的方法,其包括:采用主设备的处理电路来发起突发读取事务,该突发读取事务使主设备经由连接介质向从设备发出指定读取地址的地址传送;通过使得使用由地址传送指定的读取地址获得突发读取事务所需的多个数据项并通过在连接介质上执行多次数据传送以便将这多个数据项传送到主设备来在从设备处处理突发读取事务;在从设备处为每次数据传送生成将通过连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;以及在主设备处缓冲经由多次数据传送接收的数据项,并采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给处理电路,而不管数据项经由多次数据传送被传送到主设备的顺序如何。
在另一个示例布置中,提供了一种装置,其包括:主装置;和从装置,用于经由连接介质耦合到主装置;主装置包括用于发起突发读取事务的处理装置,突发读取事务使得主装置经由连接介质向从装置发出指定读取地址的地址传送;从装置用于通过使得使用由地址传送指定的读取地址获得突发读取事务所需的多个数据项并通过在连接介质上执行多次数据传送以便将这多个数据项传送到主装置来处理突发读取事务;从装置包括传送标识符生成装置,该传送标识符生成装置用于为每次数据传送生成将通过连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;并且主装置包括数据缓冲装置,该数据缓冲装置用于缓冲经由多次数据传送接收的数据项,并且用于采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给处理装置,而不管数据项经由多次数据传送被传送到主装置的顺序如何。
附图说明
参考如在附图中示出的本技术的示例,仅通过说明的方式,将进一步描述本技术,在附图中:
图1是根据第一示例布置的系统的框图;
图2是示出根据一个示例的图1的从设备的操作的流程图;
图3是示出在一个示例实现中可以合并在图2的过程中的一些可选附加步骤的流程图;
图4示出了在一个示例中在图1的系统内采用的各种地址传送信号和数据传送信号;
图5是更详细地示出根据一个示例布置的图1的主设备的读取数据缓冲电路的示图;
图6是示出根据一个示例布置的图5的访问控制电路的操作的流程图;
图7示意性地示出了在一个示例布置中如何使用图5的缓冲存储装置来整理突发读取事务的各种数据节拍;
图8是根据特定示例实现的系统的框图;以及
图9是根据一个示例实现示出信号在图8的系统的组件之间如何按路线发送的示图。
具体实施方式
如早先讨论的,当用于控制在数据处理系统内的主设备和从设备之间执行的传送的协议要求以预定顺序将突发读取事务的各种节拍返回到主设备的处理电路时,该排序约束可以在系统的设计内引起显著的面积开销。具体而言,在向主设备向前传播之前从不同源收集节拍的任何中间节点处,通常将有必要提供重新排序缓冲器,以允许由该中间节点接收的各种节拍在向主设备向前传播之前重新排序。在一些实现中,可以决定限制突发读取事务的大小,以便减少系统内所需的重新排序缓冲电路的数量。然而,这样的方法降低了可以通过使用更大的突发读取事务来实现的潜在性能益处。例如,突发读取事务可能可以确定都需要从存储器中的同一页面读取的大量读取数据项,并且如果发出单个突发读取事务,则可能是如下情况:为了获得为当处理突发读取事务时要获得的那些读取数据项中的每一个生成物理地址所需的相关地址转换信息,在系统存储器管理单元(MMU)中仅需要单次查找。然而,如果改为减小突发的最大大小,则将有必要发出多个更小的突发读取事务,从而增加所需的系统MMU查找的次数。另外,使用更大的突发读取事务可以减少主设备和从设备之间的各种通信内的报头开销,因为如果经由单个事务请求更多数据,则存在更小的报头开销。
在一些情况下,用于处理突发读取事务的潜在重新排序缓冲器开销可能被认为是不可接受的,而是可能需要将所有读取事务串行化以避免对重新排序缓冲器的需要。然而,这对性能可以有重大影响。本发明人意识到,通常情况是主设备具有某一缓冲存储装置,该缓冲存储装置可以用于在向前提供给主设备的处理电路之前在本地缓冲所接收的数据项,并且在情况是这样的系统中,本文描述的技术可以减轻系统内的中间节点处的上述重新排序缓冲器要求。
具体而言,在一个示例配置中,提供了一种装置,其具有主设备和经由连接介质耦合到该主设备的从设备。主设备具有用于发起突发读取事务的处理电路,该突发读取事务使得主设备经由连接介质向从设备发出指定读取地址的地址传送。
从设备被布置为通过使得使用由地址传送指定的读取地址获得突发读取事务所需的多个数据项(本文中也称为多个节拍)并通过在连接介质上执行多次数据传送以便将这多个数据项传送到主设备来处理突发读取事务。将会领会到,存在可以根据由地址传送指定的读取地址来确定每个数据项(节拍)的地址的多种方式,但是通常将为突发读取事务指定突发类型信息,并且该突发类型信息将与读取地址结合使用来确定每个数据项的地址。
根据本文描述的技术,从设备还包括传送标识符生成电路,该传送标识符生成电路用于为每次数据传送生成将通过连接介质传输的传送标识符,以指出多个数据项中的哪个数据项正通过该数据传送进行传送。另外,主设备包括数据缓冲电路,该数据缓冲电路用于缓冲经由多次数据传送接收的数据项,并用于采用为每次数据传送提供的传送标识符来使得多个数据项以确定的顺序被提供给处理电路,而不管数据项经由多次数据传送被传送到主设备的顺序。
因此,通过使用传送标识符机制,可以以任何顺序将与突发读取事务相关联的各个数据项返回到主设备,其中与每次数据传送相关联地提供传送标识符向主设备提供足够的信息来使其能够在本地对数据项进行重新排序,使得可以按所需顺序将它们提供给处理电路。通过使主设备能够在本地满足重新排序要求,这样的方法可以显著减少系统内的组件的重新排序缓冲器要求。具体而言,由于主设备具有用于每个数据项的传送标识符,并且具有数据缓冲电路以使其能够在本地缓冲所接收的数据项,因此主设备可以采取措施来确保数据项在它们提供给处理电路之前被适当地排序。
数据缓冲电路可以以各种方式进行布置,但是在一个示例中包括具有用于存储数据项的多个条目的缓冲存储装置,以及访问控制电路,该访问控制电路针对每次数据传送而被布置为:采用为该数据传送提供的传送标识符来确定在哪个条目中存储相关联的数据项。因此,在这样的布置中,当确定将所接收的数据项缓冲到缓冲存储器的哪个条目中时使用传送标识符信息。这使得能够凭借关于将每个数据项存储在缓冲存储器内的哪个条目中的决定来实现所需的排序。随后可以通过读取在特定条目序列中存储的数据项来从缓冲存储装置中取回数据项,使得当以特定顺序读取那些条目序列时,这将确保以系统的排序约束所要求的确定顺序将数据项返回到处理电路。
在一个示例实现中,由处理电路发起的每个事务具有与通过连接介质执行的每次传送相关联地提供的事务标识符,并且对于每次数据传送,访问控制电路被布置为:使用事务标识符和为该数据传送提供的传送标识符来确定在哪个条目中存储相关联的数据项。因此,在这样的布置中,事务标识符和传送标识符的组合可以用于直接确定存储所接收的数据项的特定条目。这可以显著降低用于访问缓冲存储装置的条目的访问控制电路的复杂性。具体而言,不需要为每个未决事务维护写指针,也不要求在接收到读取数据的每个节拍时更新任何这样的写指针。相反,不需要维护写指针,因为可以基于事务标识符和传送标识符的组合直接确定条目。在一个示例实现中,事务标识符可以充当指向可以存储事务的数据项的一系列条目的基指针,并且传送标识符可以用作距该基指针的偏移以确定特定条目。
如早先提到,通过这样的方法,可以通过确定将每个接收到的数据项存储到缓冲存储装置中的哪个条目来满足排序约束。具体而言,一旦已经使用上述机制来确定存储每个数据项的条目,当随后在读取操作期间以预定顺序访问缓冲存储装置中的相关条目时,将满足事务的各种节拍所需的确定顺序。具体而言,读取操作随后将使得以确定的顺序将读取事务的多个数据项提供给处理电路,而不需要采取任何额外的步骤。
在一个示例布置中,从设备被布置为:与针对突发读取事务通过连接介质发出的最终数据传送相关联地提供最后一个传送标识符。应当注意的是,由于早先描述的机制,当以确定的顺序考虑节拍时,不需要最终数据传送包括节拍序列的最后一个所需的数据项,因为使用传送标识符允许从设备以任何顺序提供数据项。但是,从设备仍然要知道它何时将发出最终数据传送(例如,如果读取事务中有8个节拍,则它将知道第8个数据项何时将被返回),因此可以与该最终数据传送相关联地包括最后一个传送标识符。根据上面的讨论,将会认识到,最终数据传送可包括任何节拍(即,在标识8个节拍的事务的上述示例中的节拍1至8中的任何节拍)。
在一个示例布置中,数据缓冲电路可以响应最后一个传送标识符,以允许一旦已经缓冲最终数据传送的数据项就执行读取操作,该读取操作使得存储多个数据项的多个条目被读取,以便将多个数据项以确定的顺序提供给处理电路。因此,根据这样的方法,数据缓冲电路可以用于在本地缓冲读取数据事务的所有节拍,然后一旦已经识别出最后一次传送,就允许执行读取操作以使得然后将多个数据项以确定的顺序提供给处理电路。通过避免主设备为了决定何时允许将这些内容转发到处理电路而执行对缓冲内容的任何持续分析的需要,这提供了一种用于处理突发读取事务的多个数据项的特别简单且有效的机制。
然而,如果需要,可以提供分析电路以分析数据缓冲电路内的相关条目的内容,以便允许在事务的所有节拍已经完成之前将各个数据项转发到处理电路。例如,如果在某一时间点已知数据缓冲器内存在节拍1、2、3、7和8,但是不存在节拍4、5和6,则主设备可被布置为在等待剩余节拍的时候将节拍1、2和3输出回处理电路。然而,在已经将节拍4、5和6存储到缓冲器中之前将不会从缓冲器输出节拍7和8,因此可以确保将节拍以所需顺序提供回处理电路。
传送标识符可以以各种方式传播到主设备。在一个示例实现中,突发读取事务具有突发长度指示,该突发长度指示包括n个比特并用于编码突发读取事务所需的数据项的数量,并且传送标识符由n比特信号形成。因此,信号可以用于传送标识符,该传送标识符与用于传送突发读取事务的突发长度的信号一样宽,这样的方法允许在传送标识符信号内分别标识所有单独的节拍。
在期望提供向后兼容性的系统(例如其中一个或多个主设备可能支持使用传送标识符而一个或多个其他主设备可能不支持)中,主设备可被布置为与用于突发读取事务的地址传送相关联地发出传送标识符启用信号,传送标识符启用信号被置位以指出主设备支持使用传送标识符。因此,在这种情况下,如果主设备不支持使用传送标识符,或者由于某种原因主设备确实选择不为特定突发读取事务采用该技术,则可以清除传送启用信号以向从设备指出不应当为当前突发读取事务使用传送标识符。
在一个示例实现中,当传送标识符启用信号被清零时,从设备被布置为禁用传送标识符生成电路并且布置多次数据传送以使得将多个数据项通过连接介质以确定的顺序返回到主设备。然后,这可能需要在系统内的一个或多个中间节点处(例如在从设备处,其在从设备可能将对每个数据节拍的传送请求分派给多于一个源的情况下)提供重新排序缓冲器组件。然而,仍然可以实现性能益处,因为通过如下操作可以减小所需的这种重新排序缓冲电路的大小:在传送标识符启用信号被清除的情况下限制突发读取事务的最大大小,而当传送标识符启用信号被置位时允许执行更大的突发读取事务。作为传送标识符启用信号被清零的情况下的另一替代方案,从设备可被布置为不提供缓冲,并且当接受突发时,从设备然后将使处理串行化以便一次处理一个节拍。
在一个示例实现中,从设备可被布置为与针对突发读取事务的数据传送相关联地发出传送标识符有效信号,该传送标识符有效信号被置位以指出与每次数据传送相关联的传送标识符信号提供有效的传送标识符。这为从设备是否采用传送标识符技术提供了一些灵活性。将领会到,在使用传送标识符启用信号的早先示例中,如果传送标识符启用信号被清零,则从设备也将清除传送标识符有效信号,因为它将需要确保以所需顺序返回突发读取事务的各种数据项目。
然而,即使在标识符启用信号被置位的情况下,从设备也可以在某些情况下决定清除传送标识符有效信号,并承担以所需顺序将数据节拍返回到主设备的责任。
在一个示例实现中,当传送标识符有效信号被清零时,主设备被布置为忽略与每次数据传送相关联的传送标识符信号,并改为假设经由多次数据传送接收的多个数据项是按照确定的顺序。
可以以各种方式指定将多个数据项提供给处理电路的确定的顺序。在一个示例实现中,突发读取事务具有与其相关联的、指示处理电路预期数据项的顺序的默认排序,并且确定的顺序确保将数据项提供给处理电路以便符合默认排序。
可以以各种方式确定与突发读取事务相关联的默认排序。然而,在一个示例实现中,每个数据项具有相关联的地址,该地址是参考突发类型信息和由数据传送指定的读取地址得到的,并且默认排序对应于为多个数据数据项得到地址的顺序。
虽然处理电路可被布置为使得它仅支持在任何时间点有效的一个突发读取事务,但是在替代布置中,处理电路可被布置为具有在任何时间点有效的多达M个突发读取事务,并且缓冲存储装置中的条目的数量足以允许缓冲那M个突发读取事务中的每个突发读取事务的多个数据项。因此,如果可以适当地确定缓冲存储装置的大小以允许多个突发读取事务同时是未决的,则这可以通过允许多个突发读取事务正在进行中并通过减轻对从设备或任何其他适当的中间节点执行对各个事务的节拍的任何本地重新排序的要求来实现显著的性能改进。相反,可以以早先讨论的方式生成传送标识符并且将其与每次数据传送一起传递回主设备,每次数据传送也标识该数据传送所涉及的读取事务。使用早先描述的机制,事务标识符和传送标识符可以用于确定在缓冲电路内将每个接收的数据项存储在哪个条目中,所以在适当的时候,可以以所需顺序将每个突发读取事务的节拍直接从缓冲电路返回到处理电路。
连接介质可以采用各种形式,但是在一个示例实现中包括互连电路,该互连电路被布置为将一个或多个主组件与一个或多个从组件互连,早先讨论的主设备形成主组件之一并且早先讨论的从设备形成从组件之一。
现在将参考附图描述特定示例。
图1是根据一个示例布置的系统的框图。主设备10具有用于执行数据处理操作的处理电路15。在执行那些数据处理操作期间,处理电路可能需要从主设备外部的一个或多个组件获得读取数据,并且还可能生成要输出到一个或多个外部组件以便存储在其中的写入数据。为了处理这样的读和写要求,主设备可以在图1的系统内发起事务,导致在主设备和一个或多个从设备之间在任一方向上发生多次传送。具体而言,主设备可以输出指定与事务相关联的地址的请求(本文中也称为地址传送),并且还可以与该地址传送相关联地输出各种控制信息项以标识事务类型,例如,事务是读取事务还是写入事务。然后,将该请求经由连接介质30转发到适当的从设备40以进行处理。与地址传送相关联,然后还可以在执行事务期间在主设备和从设备之间发生数据传送。在写入事务的情况下,这可能涉及将一次或多次写入数据传送从主设备传播到从设备,从而标识写入数据项,而对于读取事务,这可能涉及将一次或多次数据传送从从设备发出回主设备,从而提供所需的读取数据项。
出于以下讨论的目的,将考虑读取事务的执行,并且具体而言将描述用于有效地处理由主设备10发出的突发读取事务的技术。根据突发读取事务,主设备发出单个地址传送作为对从设备40的请求,该地址传送指定读取地址。此外,作为地址传送的一部分提供的控制信息标识该事务是读取事务并且它是突发事务。控制信息通常还将标识突发的长度,该长度标识突发读取事务所需的数据项的数量,并且还可以指定其他信息,诸如每个数据项的大小。
可以在主设备10内提供请求缓冲器20,以在将处理电路所发出的地址传送经由连接介质分派给目标从设备之前缓冲这些地址传送。
当请求被分派给从设备40时,从设备在请求处理器45处接收该请求,并分析该请求以便确定所需的每个数据项的地址。存在许多可以从由地址传送指定的读取地址得到每个数据项的地址的方法。然而,通常在此过程中将使用事务类型的指示。仅仅作为示例,将考虑使用由英国剑桥的Arm有限公司开发的高级可扩展接口(AXI)协议来控制在图1的系统内的主设备和从设备之间执行的传送的情况。根据AXI协议,支持许多不同的突发类型,它们被标识为“固定”,“incr”(即增量)或“回环”。在固定突发中,对于突发中的每次传送,地址保持相同,并且这样的突发类型可以用于对相同位置的重复访问,例如当加载或清空外围FIFO时。在增量突发中,突发中的每次传送的地址是先前传送地址的增量,并且增量值取决于传送的大小。例如,大小为4字节的突发中的数据传送的下一个地址是先前的地址加上四。回环突发类似于增量突发,因为突发中的每次传送的地址是先前传送地址的增量。然而,在回环突发中,当到达回环边界时,地址环绕到更低的地址。回环边界可被设置为突发中的每次传送的大小乘以突发中的传送的总数。例如,当访问高速缓存行时,这种类型的突发可能是有用的。
一旦请求处理器45已经确定在处理突发读取事务时要取回的数据项所需的各个地址,它就可以向用于处理那些读取请求的一个或多个组件60发出对每个数据项的单独请求。将会领会到,取决于组件60的性质,并非所有地址传送都将被发出到相同组件,因此可能可以以与从请求处理器45输出请求的顺序不同的顺序将从那些组件获得的读取数据返回到从设备40。各个数据项以及用于那些数据项的关联数据传送在本文中称为“节拍”,并且将会领会到,对于突发读取事务,将存在多个节拍,每个节拍提供该事务所需的数据项之一。根据一些事务协议,可能需要将突发读取事务的各个节拍以预定顺序返回到主设备10的处理电路15。例如,该预定顺序可以对应于请求处理器45根据从主设备提供的地址传送信息计算各个地址的顺序。
通常,这意味着在支持突发读取事务的系统中,需要一个或多个中间节点,这一个或多个中间节点将从不同源收集特定事务的节拍以提供某一本地重新排序缓冲电路,使得当那些节拍被中间节点接收时,它们可以被在本地重新排序,以便允许那些节拍然后被以所需顺序向上游发送到主设备。因此,例如,考虑图1的实现,在请求处理器45针对事务的每个节拍发出的请求可以由不同组件处理,或者任何特定组件不被约束为以与其接收的请求相同的顺序提供相关联的读取数据的情况下,那么从设备40通常将需要提供某一内部重新排序缓冲电路以使得节拍能够在从设备内被本地收集然后在向前传播到主设备10之前被重新排序。
然而,这样的要求可以引起系统的设计中的显著面积开销,以及相关联的增加的成本,这在某些情况下限制了已经使用突发读取事务的程度。然而,根据本文描述的技术,提供了一种机制,其减轻了从设备在本地对突发读取事务的数据传送(即,各个节拍)进行重新排序的要求,而是使得能够回到主设备10处执行重新排序。
具体而言,如图1所示,从设备40被布置为提供传送标识符生成电路50(本文中也称为节拍ID生成电路),其被布置为针对每次数据传送(即,针对每个节拍)生成要与节拍的数据项相关联地通过连接介质30传输的传送标识符(本文中也称为节拍标识符),使得将该节拍ID与读取数据一起提供给主设备10。
主设备10具有读取数据缓冲电路25,其中它可以在本地缓冲从连接介质30接收的数据项。然后,读取数据可以从读取数据缓冲电路25返回到处理电路15。如将在本文中更详细地讨论,读取数据缓冲电路不仅包括缓冲存储装置,而且包括相关联的访问控制电路,访问控制电路确定缓冲存储装置中的哪个条目用于容纳每个接收的数据项。具体而言,当确定缓冲器内用于接收相关联的读取数据项的特定条目时,可以使用节拍ID信息。通过这样的方法,可以在突发读取事务的数据项被主设备接收时在本地对它们进行重新排序,使得当它们随后被从读取数据缓冲电路25的缓冲器中读取时,突发读取事务的各个读取数据项可以以所需顺序返回到处理电路15。本文中,该所需顺序将被称为节拍顺序,这意味着以基于主设备为了发起突发读取事务而从请求缓冲器20输出的地址传送信息生成对那些节拍的读取请求的顺序将各个节拍返回到处理电路。
图2是示出图1的从设备40在一个示例实现中的操作的流程图。在步骤100,请求处理器45等待从主设备10接收指定突发读取事务的地址传送。
一旦接收到,则根据伴随地址传送的控制信息来确定突发类型和突发长度信息。在一些实现中,此时还可以确定附加信息,诸如每个数据项的大小。
根据在步骤105确定的信息,请求处理器然后在步骤110创建每个所需数据项的地址,并将对那些数据项的各个读取请求分派给适当的组件60。
如早先讨论的,由于那些各种组件的布置方式,可能以与发出请求的顺序不同的顺序将各个读取数据项返回到从设备40。然而,与每个读取数据项相关联地提供的控制信息将使从设备能够确定单个读取数据项与哪个节拍相关。在步骤115,从设备等待接收事务的节拍之一的读取数据项。当接收到这样的读取数据项时,那么在一个示例实现中,过程进行到步骤125。如稍后将参考图3讨论的,可以在该点之前执行许多可选的附加步骤,如图2中的虚线步骤120所指示。
在步骤125,由节拍ID生成器50生成节拍ID以标识读取数据项所涉及的节拍,然后经由连接介质30从从设备40向主设备10发出数据传送,该数据传送不仅提供读取数据项和事务协议所需的任何相关联的控制信息项,而且提供由节拍ID生成器生成的节拍ID信息。如稍后将讨论的,在一些实现中,还可以使用节拍ID有效信号来确定节拍ID信号是否有效,并且在使用这样的节拍ID有效信号的实现中,可以与在步骤125发出的数据传送相关联地置位该节拍ID有效信号。
如同样由方框125所示,如果当前生成的数据传送是事务的最后一次数据传送,则可以发出单独的信号(本文中称为RLAST信号)来指示该事实。
从上面的讨论中,将领会到,从设备不需要在本地缓冲任何接收的读取数据项以允许在从设备内对那些数据项进行本地重新排序,而是那些数据项可以以与它们被从设备接收的顺序相同的顺序作为数据传送输出回主设备,但是具有与每次数据传送一起提供的相关联的节拍ID信息,以使主设备能够确定任何特定数据传送正在提供突发读取事务所需的多个数据项中的哪个数据项。由于不在从设备处对读取数据进行重新排序,因此将会领会到,最后一次数据传送实际上可能不包含突发读取事务所需的一系列数据项中的最终数据项,因为该最终数据项可能已被早先提供。仅仅作为示例,如果突发读取事务指定8个数据项,则最终数据传送中包括的可以例如是数据项3,并且在这种情况下,将与提供数据项3的数据传送相关联地包括RLAST信号,而不是与提供数据项8的早先数据传送相关联地提供RLAST信号。
在一个示例实现中,RLAST信号是事务协议为了标识事务中的最终数据传送而已经提供的预先存在的信号,并且参考图2说明的用例的差异在于RLAST信号将不一定与突发读取事务所指定的节拍序列中的最后一个节拍相关联,而是将仅与要从从设备发出的用于突发读取事务的最终节拍相关联,而不管数据传送涉及事务的哪个实际节拍。
在步骤125之后,在步骤130确定是否还有为事务等待的节拍,如果是,则过程返回到步骤115。一旦已经从从设备输出了事务的所有节拍,则过程在步骤140结束。
在一个示例实现中,主设备为突发读取事务发出的原始请求可包括节拍ID启用信号,节拍ID启用信号标识该主设备是否被启用以处理节拍ID。这可以例如实现与不具有支持节拍ID的使用的功能的现有主设备的向后兼容性,或者在一些情况下,主设备可被布置为针对特定突发读取事务禁用节拍ID的使用。
另外,从从设备为每次数据传送发出的信号可包括节拍ID有效信号,以指出节拍ID信息是否有效。如果节拍ID无效,则主设备将忽略节拍ID信息,而是将假设从设备所发送的各个数据传送已经按节拍顺序。如果节拍ID启用信号被清除,则从设备在该情况下也将清除节拍ID有效信号,因为将不使用节拍ID。如果节拍ID启用信号被置位,则从设备可以决定是置位节拍ID有效信号以指示正在使用节拍ID机制,还是清除节拍ID有效信号以指示对于特定事务没有正在使用节拍ID机制。
图3示出了取决于如何使用节拍ID启用信号和节拍ID有效信号而可以在图2的步骤120处执行的一些附加步骤。在步骤150,确定主设备利用原始访问请求发出的节拍ID启用信号是否被置位。如果不是,则从设备将在步骤155在本地缓冲每个节拍的读取数据,然后输出数据传送,使得数据项以节拍顺序经由连接介质30返回到主设备10。如果实现采用节拍ID有效标志,则将针对每次数据传送清除节拍ID有效信号。与步骤125的早先讨论一样,RLAST信号将被附加到为事务输出的最终数据传送。
如果在步骤150确定节拍ID启用信号被置位,则在步骤160确定从设备是否仍然不为当前事务使用节拍ID。从设备可能不使用节拍ID的原因可能有很多,一个示例是从设备是不支持生成节拍ID的传统设备。在那种情况下,节拍ID有效信号可以与逻辑0值相关联。如果从设备不为当前事务使用节拍ID,则过程将再次进行到步骤155。然而,否则过程将进行到图3的步骤165,其中执行图2的步骤125,过程然后如早先参考图2讨论的那样继续。
图4示出了可以在主设备所发出的地址传送和从设备所发出的数据传送内提供的信号。具体而言,信号集合200指示作为从主设备到从设备的用于突发读取事务的地址传送的一部分输出的信息。除了早先讨论的读取地址之外,还输出控制信息以标识事务类型。这将例如指出事务是读取事务还是写入事务,以及事务是否是突发事务。对于突发读取事务,控制信息将标识关于突发的信息,诸如突发类型和突发长度,突发长度标识突发事务所需的节拍的数量。
还可以发出早先讨论的节拍ID启用信号,此外,通常将发出事务ID以使得当将对应的数据传送返回到主设备时能够确定特定事务。具体而言,主设备在任何特定时间点可以支持使用多于一个未决事务,因此需要能够为所接收的数据传送确定该数据传送涉及哪个事务。
如信号集合210所示,数据传送信号将包括读取数据(即与该数据传送相关联的当前节拍的数据项),并且还将包括节拍ID信号以标识由节拍ID生成器50生成的节拍ID。然后使用节拍ID有效信号来指出节拍ID信息是否有效,并且如果节拍ID有效信号被清除,则主设备然后将忽略节拍ID信息并且将改为假设各个数据传送正在以节拍顺序返回。还可以作为数据传送信号的一部分返回事务ID,以使主设备能够确定任何特定接收数据传送涉及哪个事务。
图5是更详细地示出图1的读取数据缓冲电路25的示图。读取数据缓冲电路具有缓冲存储装置250,缓冲存储装置250具有多个条目,其中每个条目可以用于存储经由数据传送从从设备返回的读取数据项。此外,访问控制电路260用于控制对缓冲存储装置的访问。具体而言,访问控制电路260可以控制缓冲存储装置内的用于缓冲从连接介质30接收的每个读取数据项的单独条目,并且还可以控制从缓冲存储装置的条目中读出内容,以便产生用于以节拍顺序返回到处理电路15的数据项流。如图5所示,访问控制电路260将接收形成数据传送的各种信号,并且在节拍ID有效的情况下,使用节拍ID和事务ID的组合来确定缓冲存储装置250内的应当存储所接收的数据项的单独条目。这使得能够以特定顺序在缓冲存储装置内临时缓冲突发读取事务的各个节拍,所以当随后访问那些数据节拍时,可以按节拍顺序将它们返回到处理电路。
将参考图6的流程图进一步讨论在一个特定示例布置中由访问控制电路260执行的操作。
在步骤300,访问控制电路260确定是否已经接收到新的数据传送。当已经接收到数据传送时,那么在步骤305确定是否置位了节拍ID有效信号以指示节拍ID有效。如果不是,则忽略节拍ID信息,并且在步骤310将数据项返回到处理电路。具体而言,当节拍ID有效信号被清零时,假设从设备已经管理了数据传送的排序,以便确保将每个节拍以节拍顺序返回到主设备。如果需要,在步骤310,可能存在对所返回的数据的某一本地化缓冲,例如以适应处理电路尚未准备好接收数据项的情况(缓冲器因此促进吸收链回压力),但是在这种情况下,缓冲将有效实施先进先出(FIFO)机制,使得将按照主设备接收数据传送的顺序将数据项转发到处理电路。
如果在步骤305确定节拍ID有效,则在步骤315使用事务ID和节拍ID来确定缓冲器中的条目,然后将接收的数据项存储在该确定的条目中。
在步骤320,然后确定是否已经接收到突发读取事务的最后一次数据传送。参考早先讨论的示例,这可以通过RLAST信号的存在来指示,RLAST信号是由从设备与最后一次数据传送相关联地提供的。如果它不是最后一次数据传送,则过程返回到步骤300以等待接收下一次数据传送。
然而,一旦已经接收到最后一次数据传送,则过程进行到步骤325,其中访问控制电路260用于以预定顺序访问缓冲存储装置内的条目序列,以便读取存储在其中的数据项并将那些数据项提供给处理电路。由于在步骤315使用事务ID和节拍ID来确定存储每个接收的数据项的条目的方式,于是不管接收各个节拍的顺序如何,在步骤325可以以相同的预定顺序访问相同的条目序列,并且将导致将数据项以节拍顺序返回到处理电路。
虽然在图6的示例中,特定突发读取事务的所有节拍都被缓冲在读取数据缓冲电路内,并且只要一旦已经接收到RLAST信号,就然后从数据缓冲电路中读出每个节拍的数据项并将其提供给处理电路,在替代实现中,可能可以在所有节拍已被接收到之前开始以节拍顺序将各个数据节拍转发到处理电路。具体而言,如果访问控制电路具有用于监视将与特定突发读取事务的节拍相关联的每个条目的状态的机制,则它可能能够检测即使当尚未接收到所有节拍时也准备好将某些数据项以节拍顺序提供给处理电路的情况。例如,如果突发事务识别出标记为节拍1至8的八个节拍,并且那些节拍需要以节拍顺序返回到处理电路,那么如果在特定时间点注意到缓冲存储装置存储有节拍1、2、3、7和8,则可以在所有剩余节拍已被接收到之前将节拍1、2和3的数据项转发到处理电路。然而,将会注意的是,节拍7和8将不被转发到处理电路,直到节拍4、5和6已被接收到为止。
图7示意性地示出了如何可以使用节拍ID和事务ID信息来确定缓冲存储装置250内的特定条目。在该示例中,事务ID 405用于标识要用于存储突发读取事务的各个读取数据节拍的一系列条目中的初始条目。然后,节拍ID 410用于标识相对于使用事务ID标识的条目的偏移。在一个特定实施例中,事务ID可以直接用作指针,并且节拍ID可以具有直接编码偏移的值。例如,在图7的示例中,节拍ID可以取0到7的值以指出对应的数据传送涉及8节拍突发读取事务的八个节拍中的哪一个,并且该节拍ID可以被添加到根据事务ID 405确定的指针值,以便确定缓冲存储装置250中的要用于缓冲该节拍的读取数据的特定条目。
如早先讨论的,然后可以按以存储节拍0的数据的条目开始并以存储节拍7的数据的条目结束的先后顺序从条目中读取读取数据,以便将数据的节拍以节拍顺序提供给处理电路。
图8是示出特定示例实现的框图,其中主设备和从设备是通过AXI互连470互连的AXI主设备和从设备,其中根据由英国剑桥的Arm有限公司开发的AXI协议在主设备450和从设备480之间执行系统内的通信。AXI主设备450的处理电路455、请求缓冲器460和读取数据缓冲电路465以早先关于图1的主设备10的处理电路15、请求缓冲器20和读取数据缓冲电路25讨论的方式进行操作。
经由AXI互连470,AXI主设备450连接到子系统475,其中根据不同的协议来执行各种组件之间的通信。具体而言,在图8所示的示例中,子系统475是一致集线器接口(CHI)系统,其中IO流量的请求节点480经由CHI互连485而连接到多个CHI从设备490、495。IO流量的请求节点480(本文中也称为RN-I)作为AXI从设备进行操作,并且具有以类似于参考图1讨论的从设备40的请求处理器45和节拍ID生成器50的方式进行操作的请求处理器482和节拍ID生成器484。RN-I 480还充当CHI系统内的主设备,用于经由CHI互连485向各种从设备490、495发出请求,从设备490、495在本文中也称为作为宿节点HN-F0和HN-F1。
请求处理器482可以经由AXI互连470从AXI主设备450接收用于突发读取事务的地址传送,并且基于此,可以经由CHI互连485向相关的CHI从设备490、495发出一系列读取请求。具体而言,RN-I 480被布置为在高速缓存行边界处将事务分成不同的部分,因为CHI协议不允许突发事务。所有相应产生的高速缓存行大小的CHI事务都是从RN-I发起的,并且可以转到不同的宿节点,这些宿节点将以任何顺序将读取数据返回到RN-I。
图9中仅以示例的方式示出了特定示例序列。在该示例中,AXI主设备450发出突发读取事务,其指出数据元素大小是64字节并且突发长度是2。RN-I 480然后接收地址传送,并生成两个单独的读取请求(在图9中称为ReadA和ReadB),但是基于为每个读取请求得到的地址,一个请求去往第一从设备490,而另一个请求去往第二从设备495。
在这种情况下,可能可以以不同的顺序从从设备接收回数据,的确是如图9所示的情况。另外,在给出的示例中,来自CHI从设备的每次数据传送的长度将是32字节,因此为了提供每个节拍所需的64字节数据将需要两次传送。
在没有早先讨论的节拍ID技术的情况下,在图9所示的示例中,RN-I 480将有必要包括重新排序缓冲电路,以便使得能够对各种数据项进行重新排序,使得回到主设备的第一AXI数据传送包含第一节拍,而第二数据传送包含第二节拍。然而,根据本文描述的技术,这不是必需的,相反,一旦所需的64字节数据可用于特定节拍,它们就可以利用用于确定数据项涉及哪个节拍的节拍ID通过AXI互连返回。因此,如图9所示,第一数据传送497包含由从HN-F1 495返回的数据值B0和B1形成的64字节数据,并且节拍ID被置位为指出数据项是读取突发事务的第二节拍。然后,一旦第一节拍所需的数据可用,就向AXI主设备发回第二数据传送499,该AXI主设备将该数据传送正在提供数据的第一节拍指定作为节拍ID。由于两个节拍现在都已被提供,因此RLAST信号被附加到该第二数据传送499,使得AXI主设备知道两个数据项现在都已被发送。
将会认识到,本文描述的技术提供了许多优点。首先,从面积节省的角度来看,所描述的技术消除了对更大突发读取事务的响应重新排序的需要,因此避免了对互连上的所有中间点处的重新排序缓冲器的需要。因此,从面积/功率的角度来看,系统可以变得优化。其次,该技术提供发送更大突发事务的能力,所以可以获得与更大突发事务相关联的益处,诸如更好的系统MMU查找效率和减少的PCIe报头开销。此外,这些技术可以在面积优化的互连(即没有重新排序缓冲器的那些)中提供性能改进,因为在这样的面积优化的系统中不需要使读取事务串行化,这可以导致这样的面积优化的系统运行于更高的性能点。
在本申请中,词语“配置为...”用于表示装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”表示硬件或软件的互连的布置或方式。例如,装置可具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可被编程为执行该功能。“配置为”并非暗示需要以任何方式改变装置元件以便提供所定义的操作。
尽管本文中已经参考附图详细描述了本发明的说明性实施例,但是将会明白,本发明不限于那些精确的实施例,并且本领域技术人员在不脱离由所附权利要求限定的本发明的范围和精神的情况下可以在其中实现各种改变、添加和修改。例如,在不脱离本发明的范围的情况下,可以进行从属权利要求的特征与独立权利要求的特征的各种组合。
Claims (19)
1.一种装置,包括:
主设备;以及
从设备,经由连接介质耦合到所述主设备;
所述主设备包括用于发起突发读取事务的处理电路,所述突发读取事务使得所述主设备经由所述连接介质向所述从设备发出指定读取地址的地址传送;
所述从设备被布置为:通过使得使用由所述地址传送指定的所述读取地址获得所述突发读取事务所需的多个数据项、并通过在所述连接介质上执行多次数据传送以便将所述多个数据项传送到所述主设备,来处理所述突发读取事务;
所述从设备包括传送标识符生成电路,所述传送标识符生成电路用于为每次数据传送生成将通过所述连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;并且
所述主设备包括数据缓冲电路,所述数据缓冲电路用于缓冲经由所述多次数据传送接收的数据项并采用为每次数据传送提供的传送标识符来使得所述多个数据项以确定的顺序被提供给所述处理电路,而不管所述数据项经由所述多次数据传送被传送到所述主设备的顺序如何。
2.如权利要求1所述的装置,其中,所述数据缓冲电路包括缓冲存储装置以及访问控制电路,所述缓冲存储装置具有用于存储数据项的多个条目,所述访问控制电路被布置为:针对每次数据传送,采用为该数据传送提供的所述传送标识符来确定在哪个条目中存储相关联的数据项。
3.如权利要求2所述的装置,其中,由所述处理电路发起的每个事务具有与在所述连接介质上执行的每次传送相关联地提供的事务标识符,并且对于每次数据传送,所述访问控制电路被布置为:使用所述事务标识符和为该数据传送提供的传送标识符来确定在哪个条目中存储相关联的数据项。
4.如权利要求2所述的装置,其中,所述访问控制电路被布置为确定如下的条目:在所述条目中存储所述突发读取事务的所述多个数据项,使得当这些条目在读取操作期间被以预定的顺序访问时,该读取操作使得所述多个数据项以所述确定的顺序被提供给所述处理电路。
5.如权利要求1所述的装置,其中,所述从设备被布置为:与针对所述突发读取事务通过所述连接介质发出的最终数据传送相关联地提供最后一个传送标识符。
6.如权利要求5所述的装置,其中,所述数据缓冲电路对所述最后一个传送标识符进行响应,以便一旦所述最终数据传送的数据项已被缓冲就允许读取操作的执行,所述读取操作使得存储所述多个数据项的所述多个条目被读取,以便将所述多个数据项以所述确定的顺序提供给所述处理电路。
7.如权利要求1所述的装置,其中,所述突发读取事务具有突发长度指示,所述突发长度指示包括n个比特并被用于对所述突发读取事务所需的数据项的数量进行编码,并且所述传送标识符由n比特信号形成。
8.如权利要求1所述的装置,其中,所述主设备被布置为:与针对所述突发读取事务的所述地址传送相关联地发出传送标识符启用信号,所述传送标识符启用信号被置位以指出所述主设备支持使用传送标识符。
9.如权利要求8所述的装置,其中,当所述传送标识符启用信号被清零时,所述从设备被布置为:禁用所述传送标识符生成电路并布置所述多次数据传送以使得所述多个数据项通过所述连接介质以所述确定的顺序返回所述主设备。
10.如权利要求1所述的装置,其中,所述从设备被布置为:与针对所述突发读取事务的所述数据传送相关联地发出传送标识符有效信号,所述传送标识符有效信号被置位以指出与每次数据传送相关联的传送标识符信号提供有效的传送标识符。
11.如权利要求10所述的装置,其中,当所述传送标识符有效信号被清零时,所述主设备被布置为:忽略与每次数据传送相关联的传送标识符信号并且改为假设经由所述多次数据传送接收的所述多个数据项是按照所述确定的顺序。
12.如权利要求1所述的装置,其中,所述突发读取事务具有与其相关联的默认排序,所述默认排序指示所述处理电路所期望的所述数据项的顺序,并且所述确定的顺序确保所述数据项被提供给所述处理电路以符合所述默认排序。
13.如权利要求12所述的装置,其中,每个数据项具有相关联的地址,该地址是参考突发类型信息和由所述数据传送指定的读取地址而得到的,并且所述默认排序对应于针对所述多个数据项得到所述地址的顺序。
14.如权利要求2所述的装置,其中,所述处理电路被布置为在任何时间点具有有效的多达M个突发读取事务,并且所述缓冲存储装置中的条目的数量足以允许缓冲这M个突发读取事务中的每一个突发读取事务的所述多个数据项。
15.如权利要求1所述的装置,还包括:
互连电路,所述互连电路用于提供所述连接介质,并且被布置为将一个或多个主组件与一个或多个从组件互连,所述主设备形成所述主组件之一并且所述从设备形成所述从组件之一。
16.一种主设备,包括:
接口电路,用于将所述主设备连接到连接介质,以促进与从设备的通信;
处理电路,用于发起突发读取事务,所述突发读取事务使得所述主设备经由所述连接介质向所述从设备发出指定读取地址的地址传送;
所述接口电路被布置为:经由所述连接介质从所述从设备接收多次数据传送,每次数据传送提供所述突发读取事务所需的多个数据项当中的数据项,对于每次数据传送,所述从设备通过所述连接介质提供传送标识符以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;以及
数据缓冲电路,用于缓冲经由所述多次数据传送接收的数据项,并采用为每次数据传送提供的传送标识符来使得所述多个数据项以确定的顺序被提供给所述处理电路,而不管所述数据项经由所述多次数据传送被传送到所述主设备的顺序如何。
17.一种从设备,包括:
接口电路,用于将所述从设备连接到连接介质以促进与主设备的通信,所述接口电路被布置为:响应于由所述主设备的处理电路发起的突发读取事务而经由所述连接介质接收指定读取地址的地址传送,所述从设备被布置为:通过使得使用由所述地址传送指定的读取地址获得所述突发读取事务所需的多个数据项、并通过在所述连接介质上发出多次数据传送以便将所述多个数据项传送到所述主设备,来处理所述突发读取事务;以及
传送标识符生成电路,用于为每次数据传送生成将通过所述连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送,从而使所述主设备能够缓冲经由所述多次数据传送接收的数据项,并能够采用为每次数据传送提供的传送标识符来使得所述多个数据项以确定的顺序被提供给所述处理电路,而不管所述数据项经由所述多次数据传送被传送到所述主设备的顺序如何。
18.一种处理突发读取事务的方法,包括:
采用主设备的处理电路来发起突发读取事务,以使得所述主设备经由连接介质向从设备发出指定读取地址的地址传送;
通过使得使用由所述地址传送指定的读取地址获得所述突发读取事务所需的多个数据项、并通过在所述连接介质上执行多次数据传送以便将所述多个数据项传送到所述主设备,来在所述从设备处处理所述突发读取事务;
在所述从设备处为每次数据传送生成将通过所述连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;以及
在所述主设备处缓冲经由所述多次数据传送接收的数据项,并采用为每次数据传送提供的传送标识符来使得所述多个数据项以确定的顺序被提供给所述处理电路,而不管所述数据项经由所述多次数据传送被传送到所述主设备的顺序如何。
19.一种装置,包括:
主装置;以及
从装置,用于经由连接介质耦合到所述主装置;
所述主装置包括用于发起突发读取事务的处理装置,所述突发读取事务使得所述主装置经由所述连接介质向所述从装置发出指定读取地址的地址传送;
所述从装置用于通过使得使用由所述地址传送指定的读取地址获得所述突发读取事务所需的多个数据项、并通过在所述连接介质上执行多次数据传送以便将所述多个数据项传送到所述主装置,来处理所述突发读取事务;
所述从装置包括传送标识符生成装置,所述传送标识符生成装置用于为每次数据传送生成将通过所述连接介质传输的传送标识符,以指出所述多个数据项中的哪个数据项正通过该数据传送进行传送;以及
所述主装置包括数据缓冲装置,所述数据缓冲装置用于缓冲经由所述多次数据传送接收的数据项,并且用于采用为每次数据传送提供的传送标识符来使得所述多个数据项以确定的顺序被提供给所述处理装置,而不管所述数据项经由所述多次数据传送被传送到所述主装置的顺序如何。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/135,149 US10628355B2 (en) | 2018-09-19 | 2018-09-19 | Apparatus and method for processing burst read transactions |
US16/135,149 | 2018-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928811A true CN110928811A (zh) | 2020-03-27 |
CN110928811B CN110928811B (zh) | 2023-12-22 |
Family
ID=69774068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910866042.6A Active CN110928811B (zh) | 2018-09-19 | 2019-09-12 | 用于处理突发读取事务的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10628355B2 (zh) |
KR (1) | KR20200033179A (zh) |
CN (1) | CN110928811B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886310A (zh) * | 2021-11-02 | 2022-01-04 | 上海兆芯集成电路有限公司 | 桥接模块、数据传输系统和数据传输方法 |
CN114020662A (zh) * | 2021-11-02 | 2022-02-08 | 上海兆芯集成电路有限公司 | 桥接模块、数据传输系统和数据传输方法 |
CN114691571A (zh) * | 2020-12-28 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
CN116414767A (zh) * | 2023-06-09 | 2023-07-11 | 太初(无锡)电子科技有限公司 | 一种对基于axi协议乱序响应的重排序方法及系统 |
CN114691571B (zh) * | 2020-12-28 | 2024-05-28 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10942878B1 (en) * | 2020-03-26 | 2021-03-09 | Arm Limited | Chunking for burst read transactions |
IT202000009364A1 (it) * | 2020-04-29 | 2021-10-29 | St Microelectronics Srl | Procedimento per accedere a una memoria e circuito corrispondente |
US11074206B1 (en) * | 2020-09-29 | 2021-07-27 | Arm Limited | Message protocol for a data processing system |
US11797409B1 (en) | 2022-09-02 | 2023-10-24 | HCL America Inc. | Method and system for managing transactions burstiness and generating signature thereof in a test environment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080320178A1 (en) * | 2007-06-21 | 2008-12-25 | Motoyasu Shirasaki | DMA transfer apparatus |
JP2012150735A (ja) * | 2011-01-21 | 2012-08-09 | Sony Corp | 相互接続装置 |
US20120290752A1 (en) * | 2011-05-09 | 2012-11-15 | Arm Limited | Transaction indentifier expansion circuitry and method of operation of such circuitry |
CN103620570A (zh) * | 2011-06-24 | 2014-03-05 | Arm有限公司 | 存储器控制器和这种存储器控制器的操作方法 |
US20150296018A1 (en) * | 2014-04-09 | 2015-10-15 | Stmicroelectronics S.R.L. | System for the management of out-of-order traffic in an interconnect network and corresponding method and integrated circuit |
US20160188501A1 (en) * | 2014-12-19 | 2016-06-30 | Sonics, Inc. | Reordering Responses in a High Performance On-Chip Network |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449193B1 (en) * | 2000-12-28 | 2002-09-10 | Texas Instruments Incorporated | Burst access memory system |
KR100449807B1 (ko) * | 2002-12-20 | 2004-09-22 | 한국전자통신연구원 | 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템 |
WO2006003693A1 (ja) * | 2004-06-30 | 2006-01-12 | Renesas Technology Corp. | データプロセッサ |
US8332564B2 (en) * | 2009-10-20 | 2012-12-11 | Arm Limited | Data processing apparatus and method for connection to interconnect circuitry |
US20130054852A1 (en) * | 2011-08-24 | 2013-02-28 | Charles Fuoco | Deadlock Avoidance in a Multi-Node System |
-
2018
- 2018-09-19 US US16/135,149 patent/US10628355B2/en active Active
-
2019
- 2019-09-10 KR KR1020190111851A patent/KR20200033179A/ko active Search and Examination
- 2019-09-12 CN CN201910866042.6A patent/CN110928811B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080320178A1 (en) * | 2007-06-21 | 2008-12-25 | Motoyasu Shirasaki | DMA transfer apparatus |
JP2012150735A (ja) * | 2011-01-21 | 2012-08-09 | Sony Corp | 相互接続装置 |
US20120290752A1 (en) * | 2011-05-09 | 2012-11-15 | Arm Limited | Transaction indentifier expansion circuitry and method of operation of such circuitry |
CN103620570A (zh) * | 2011-06-24 | 2014-03-05 | Arm有限公司 | 存储器控制器和这种存储器控制器的操作方法 |
US20150296018A1 (en) * | 2014-04-09 | 2015-10-15 | Stmicroelectronics S.R.L. | System for the management of out-of-order traffic in an interconnect network and corresponding method and integrated circuit |
US20160188501A1 (en) * | 2014-12-19 | 2016-06-30 | Sonics, Inc. | Reordering Responses in a High Performance On-Chip Network |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691571A (zh) * | 2020-12-28 | 2022-07-01 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
CN114691571B (zh) * | 2020-12-28 | 2024-05-28 | 上海寒武纪信息科技有限公司 | 数据处理方法、重排序缓存器及互联设备 |
CN113886310A (zh) * | 2021-11-02 | 2022-01-04 | 上海兆芯集成电路有限公司 | 桥接模块、数据传输系统和数据传输方法 |
CN114020662A (zh) * | 2021-11-02 | 2022-02-08 | 上海兆芯集成电路有限公司 | 桥接模块、数据传输系统和数据传输方法 |
US11960427B2 (en) | 2021-11-02 | 2024-04-16 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Bridging module, data transmission system, and data transmission method |
CN116414767A (zh) * | 2023-06-09 | 2023-07-11 | 太初(无锡)电子科技有限公司 | 一种对基于axi协议乱序响应的重排序方法及系统 |
CN116414767B (zh) * | 2023-06-09 | 2023-09-29 | 太初(无锡)电子科技有限公司 | 一种对基于axi协议乱序响应的重排序方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200089634A1 (en) | 2020-03-19 |
KR20200033179A (ko) | 2020-03-27 |
US10628355B2 (en) | 2020-04-21 |
CN110928811B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928811B (zh) | 用于处理突发读取事务的装置和方法 | |
US5644787A (en) | Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter | |
JP5872560B2 (ja) | 高速メモリ・システム | |
US6189062B1 (en) | Apparatus and method for address translation in bus bridge devices | |
JP2004185639A (ja) | マルチ幅のメモリ・サブシステムをサポートするための方法 | |
WO2018232736A1 (zh) | 内存访问技术及计算机系统 | |
JP2021530813A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
US20020083256A1 (en) | System and method for increasing the count of outstanding split transactions | |
CN114265872B (zh) | 一种用于总线的互联装置 | |
US5416907A (en) | Method and apparatus for transferring data processing data transfer sizes | |
CN110188059B (zh) | 数据有效位统一配置的流控式fifo缓存装置及方法 | |
US20060236001A1 (en) | Direct memory access controller | |
US7143206B2 (en) | Method for controlling data transfer unit having channel control unit, storage device control unit, and DMA processor | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
CN105491082B (zh) | 远程资源访问方法和交换设备 | |
US6633927B1 (en) | Device and method to minimize data latency and maximize data throughput using multiple data valid signals | |
US7206886B2 (en) | Data ordering translation between linear and interleaved domains at a bus interface | |
US9128924B2 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
US6327636B1 (en) | Ordering for pipelined read transfers | |
JP2020514878A (ja) | データ処理 | |
US6910093B2 (en) | Method of pacing and disconnecting transfers on a source strobed bus | |
KR100432701B1 (ko) | 컴퓨터 구성요소 간의 개선된 인터페이스를 위한 방법 및장치 | |
US8239652B2 (en) | Data processing system | |
US6240474B1 (en) | Pipelined read transfers |
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 |