CN105900076B - 用于处理多个交易的数据处理系统及方法 - Google Patents
用于处理多个交易的数据处理系统及方法 Download PDFInfo
- Publication number
- CN105900076B CN105900076B CN201580003877.9A CN201580003877A CN105900076B CN 105900076 B CN105900076 B CN 105900076B CN 201580003877 A CN201580003877 A CN 201580003877A CN 105900076 B CN105900076 B CN 105900076B
- Authority
- CN
- China
- Prior art keywords
- transaction
- transactions
- request
- address
- cache
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims description 37
- 208000033748 Device issues Diseases 0.000 claims abstract description 4
- 230000004044 response Effects 0.000 claims description 122
- 238000012423 maintenance Methods 0.000 claims description 95
- 230000015654 memory Effects 0.000 claims description 80
- 230000007246 mechanism Effects 0.000 claims description 15
- 230000000116 mitigating effect Effects 0.000 claims description 11
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 19
- 238000013459 approach Methods 0.000 description 8
- 230000000644 propagated effect Effects 0.000 description 6
- 238000013479 data entry Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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
-
- 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/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本案关于一种数据处理系统,该数据处理系统具有主装置(55)及多个从属装置(60、62、64),该数据处理系统使用互连电路系统(50)以耦接主装置与多个从属装置,以使得交易能够在有来自主装置的请求时由从属装置执行。主装置发出多交易请求,该多交易请求辨识多个待执行交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息。互连电路系统内的请求分配电路系统分析地址信息及数量指示,以便针对多个交易中的每一者确定执行该交易所需的从属装置。
Description
技术领域
本发明关于用于处理多个交易的数据处理系统及方法。
背景技术
在现代的数据处理系统中,最大程度地有效利用可用内存带宽变得越来越重要。例如,在片上系统(System on Chip;SoC)中,有多个可发出涉及写入或读取大量数据的交易的主装置,如图形处理单元(graphics processing unit;GPU)及显示控制器。已知发出交易为丛发交易,丛发交易由多个拍组成,每一拍期间有一定量的数据被写入内存,或自内存中被读取。此种丛发交易可极为有效地利用内存带宽。然而,存在一限制,即任何特定交易必须由特定从属装置处理。在现代系统中,多个内存装置可配备在SoC内,或连接至SoC,及数据可交插在该多个装置中,且此举可限制可由任何特定交易寻址的数据的数量。
此外,现代SoC通常包括多个主装置,每个主装置可包含一个或多个等级的高速缓存。此举导致快取相干性问题,且在通常情况下,使多个主装置与从属装置互连的互连电路系统包括高速缓存相干性电路系统(例如探听电路系统)以确保高速缓存内容保持相干,且由此将使每一主装置存取最新数据。然后,在发出交易时,假定交易规定可快取的地址,则在发出交易时将不会知晓该地址处的数据是否经快取。因此,将不会知晓是在高速缓存中还是在内存中存取数据。通常情况下,此举限制由任何特定交易寻址的数据的数量以使该数量不超过快取线大小,由此在数据存在于高速缓存中的情况下确保任何特定交易可藉由对该高速缓存的存取而获得执行。对于丛发交易而言,此举由此限制丛发的总大小。尽管此方法确保可以简单及有效的方式维持快取相干性,但由于对处理多个较小丛发交易的需求,此方法减少对可用内存带宽的有效利用。利用该种较小丛发亦增大互连电路系统内的功率消耗,且可能由于有效地降低未来交易在这些交易的重新排序队列中的可见性而降低内存控制器的重新排序能力,从而降低内存效率。
US 2010/0042759提供一种机制,该机制用于容许两个或两个以上内存装置作为单个聚集目标而经处理。因此,主装置可将交易发至该单个聚集目标,从而容许规定较大的丛发交易。然后,单个交易经分裂以用于发送至多个从属装置。然而,结果随后需要重新组合,以便可使这些结果从原始交易所被导引至的单个聚集目标返回至主装置。此举导致协调结果的复杂性。
与有效处理SoC中主装置与从属装置之间的交易相关联的上述问题亦可针对在SoC内发出的其他类型的交易而发生。例如,主装置可将交易发至互连电路系统,该互连电路系统辨识将针对SoC内多个快取储存器执行的高速缓存维护操作。由于在关联交易发至互连电路系统之时可能并不知晓哪一个或哪些高速缓存储存装置需要实施快取维护操作,因此通常将每一交易限制为寻址到数据的单个快取线。因此,通常情况下,必须发出多个单独交易以便执行针对多个快取线的高速缓存维护操作。此举倾向于增大互连内的功率消耗。
由此,提供用于在数据处理系统内处理交易的改良机制是合乎需要的。
发明内容
自第一方面可见,本发明提供一数据处理系统,该系统包括:主装置;多个从属装置;互连电路系统,该互连电路系统经配置以耦接主装置与该多个从属装置,以使得交易能够在有来自主装置的请求时而得以由该多个从属装置执行;主装置经配置以发出辨识多个待执行交易的多交易请求,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;互连电路系统包括请求分配电路系统,该请求分配电路系统经配置以分析地址信息及数量指示,以便为多个交易中的每一者确定执行该交易所需的从属装置,且进一步经配置以将交易请求发至每一已确定的从属装置,以在该多个交易中辨识将由该已确定的从属装置执行的交易;每一经确定的从属装置经配置以向主装置提供响应,以辨识由经确定的从属装置执行的每一交易的完成情况,每一经确定的从属装置经配置以提供自身的响应,这些响应独立于来自任何其他经确定的从属装置的响应,且每一响应包括根据基本交易识别符及交易特定信息所确定的交易识别符,以使得主装置能够辨识在多交易请求内所辨识的每一交易的完成情况。
依据本发明,主装置经配置以发出辨识多个待执行交易的多交易请求。然后,互连电路系统内的请求分配电路系统对具备多交易请求的地址信息及指示待执行交易的数目的数量指示进行分析,以便确定需要哪些从属装置执行每一交易。然后,由于该分析,请求分配电路系统将交易请求发至有关从属装置,这些请求辨识将由那些从属装置执行的交易。然后,每一从属装置经配置以处理分配给该从属装置的交易,且向主装置提供响应,主装置辨识每一交易的完成情况。每一从属装置提供其响应(这些响应独立于来自任何其他从属装置的响应),每一响应包括根据多交易请求中提供的基本交易识别符及一些交易特定信息所确定的交易识别符,此举使得主装置能够辨识在多交易请求内经辨识的每一交易的完成情况。
藉由此方法,请求分配电路系统可确保多交易请求内所规定的个别交易经路由至适当的从属装置以用于处理,但不需要协调由多个从属装置产生的响应。特定而言,主装置察觉到,尽管主装置已发出单个请求(多交易请求),但该请求涉及多个交易,且主装置期待接收针对每一交易的响应。由此,这些响应可由每一从属装置连同适当的交易识别符一起独立地产生,以容许主装置确定该多交易请求内哪一交易正在被响应。
响应将采用多种形式。例如,对于读取交易而言,可将一个或多个响应提供至主装置,每一响应辨识一读取数据条目。对于写入交易而言,将自从属装置将响应发送返回至主装置以确认写入交易已经操作,例如写入数据已由从属装置接收到。
因为多交易请求涉及多个交易,因此此举在互连电路系统内可产生效率,且在互连电路系统与从属装置之间产生有效利用。例如,藉由分析多交易请求的多个交易,此举可导致对互连电路系统内的资源的更有效的利用。另外,在确定交易中数个交易可由同一从属装置处理的情况下,请求分配电路系统可将该多个交易一起路由至从属装置,从而容许更佳地利用互连电路系统与从属装置之间的带宽。另外,藉由向从属装置提供该多个待执行的交易的知识,从属装置能够更有效地处理那些交易。作为一特定实例,从属装置可为用以控制对DRAM内存的存取的内存控制器。存取内存的同一开放页面内的数据的多个条目更为有效,且在藉由同时接收及处理多个交易的情况下,与必须单独处理该多个交易的情况相比,内存控制器能够更有效地处理该交易序列。然后,从属装置仍可发送响应至主装置,该主装置辨识每一交易的完成情况,从而使得主装置能够确定已经处理每一交易的时间。
存在数个方式,请求分配电路系统可以这些方式向每一已确定的从属装置发出交易请求。在一个实施例中,由请求分配电路系统发出的交易请求包括至少一个多交易请求,该至少一个多交易请求中的每一者辨识该多个交易中需要由已确定的向其发送多交易请求的从属装置执行的多个交易。藉由该种方法,单个从属装置可接收关于该从属装置将处理的多个交易的通告,从而使得该从属装置能够配置对那些交易的处理,以便使效率优化。作为一特定实例,如若请求分配电路系统确定多交易请求中的交易的特定顺序无需经受任何探听/快取相干性操作,且该顺序中全部交易将由特定从属装置服务,则可将多交易请求发出至该从属装置,该从属装置辨识那些交易顺序。因此,与以逐件方式接收那些单个交易及分别处理那些交易相比,从属装置往往由于了解待执行的交易的整体顺序而将能够更有效地处理那些交易。
多交易请求可采用多种形式。然而,在一实施例中,由主装置发出的多交易请求是多丛发交易请求,且该多个交易中的每一者是一丛发交易,该丛发交易规定在主装置与经确定用于该丛发交易的从属装置之间待执行的多个数据传送。
地址信息可采用多种形式,但在一实施例中,地址信息包括基本地址,且藉由参考基本地址而确定由多交易请求辨识出的每一交易的地址。由此,可藉由参考基本地址而确定与每一交易关联的单个地址。
在一个实施例中,每一多交易请求辨识关于在连续地址范围内的预定地址的交易序列。由此,仅举例而言,如若每一交易是辨识数据中一定数目的字节的丛发交易,则可辨识地址以便规定相邻数据块,每一数据块含有由多交易请求规定的交易序列内的单独丛发交易的主题。
在一替代性实施例中,交易序列无需相关于连续地址范围内的预定地址。例如,在一实施例中,多交易请求包括遮蔽信息,该遮蔽信息用于结合基本地址以确定由多交易请求辨识的每一交易的地址。在一个实施例中,遮蔽信息可采用按位字段形式,该按位字段例如可用以辨识相邻数据块序列中哪些数据块将经每一交易而处理。例如,按位字段「1011」可辨识第一、第二及第四数据块应由多交易请求内的三个交易序列处理。
交易特定信息可采用多种形式,该交易特定信息结合基本交易识别符以便针对返回至主装置的每一响应而形成交易识别符。然而,在一个实施例中,当从属装置对特定交易提供响应时,交易特定信息包括经规定用于交易的地址的数个位,该交易特定信息由该从属装置用以结合基本交易识别符以产生包括在响应中的交易识别符。例如,地址中一定数目的低阶位在结合基本交易识别符的情况下可用以唯一地辨识每一交易。
在一个实施例中,数据处理系统进一步包括至少又一主装置,该主装置具有快取储存器,该快取储存器中的数据经高速缓存以用于由该至少又一主装置存取。由此,快取相干性问题可在数据处理系统内产生,且请求分配电路系统经配置以在确定如何分配由多交易请求规定的多个交易之时虑及这些问题。特定而言,在一实施例中,互连电路系统包括探听电路系统,探听电路系统可响应于所接收到的交易请求,以基于规定用于与该接收到的交易请求关联的交易的地址而执行针对该快取储存器的探听操作,以便确定该地址处的数据是否储存在快取储存器内。请求分配电路系统经进一步配置以分析地址信息及数量指示,以便确定该多个交易中是否有任何交易规定了需要由探听电路系统执行探听操作的地址,且请求分配电路系统可响应于对多个交易中的至少一者需要执行探听操作的确定,以将自主装置接收到的多交易请求分裂成多个交易请求,且将这些交易请求中的至少一者发至探听电路系统。依据由于探听电路系统执行的探听操作而自探听电路系统接收到的响应,可能将响应直接发至主装置以用于有关交易,或可能必须将那些交易路由至从属装置中的一者上以用于处理。
在一个实施例中,发至探听电路系统的交易请求中的至少一者包括多交易请求,该多交易请求辨识该多个交易中执行探听操作所需要的多个交易。藉由被通知有多个需要由探听电路系统进行处理的交易,探听电路系统能够更有效地执行探听操作,例如藉由在任何关联探听过滤器内执行更少查找,和/或将探听请求发至快取储存器,该探听请求辨识待探听的多个快取线。
探听电路系统可采用多种形式,但在一实施例中,探听电路系统包括多个探听电路,每一探听电路与不同地址范围相关联,且请求分配电路系统经配置以将单独的交易请求发至每一探听电路。藉由提供多个探听电路,可同时执行不同地址范围的探听操作,由此改良效率。此外,可将多交易请求发至每一探听电路,从而提供更高效率效益。
在一个实施例中,探听电路系统在接收到来自请求分配电路系统的交易请求时,可将探听请求自动发至每一高速缓存。然而,在一替代性实施例中,探听电路系统可包括探听过滤器,探听过滤器经配置以维持以下地址的地址指示,针对这些地址的数据储存在快取储存器中,且执行交易的探听操作包括参考使用由该交易规定的地址的探听过滤器,且在探听过滤器指示该地址与探听过滤器所维持的地址指示中的一者匹配的情况下将探听请求发至快取储存器。该种方法可减少需要被发至快取储存器的探听请求的数目。
此外,当处理多交易请求时,探听电路系统能够基于对多交易请求内辨识的多个交易的认识,而减少在探听过滤器中所需的查找次数。例如,探听过滤器中每一项可经配置以储存比正常略短的标记部分,该标记部分因此与多个快取线匹配,且对于那些快取线中的每一者而言,该项可经配置以储存一信息,倘若侦测到与该项的匹配,则该信息辨识需要探听哪些高速缓存。因此能针对每一项执行单个查找,且倘若交易的对应的缩短标记部分与储存在探听过滤器的项中的标记部分匹配,则储存在该项中的有关信息可用以辨识需要针对关联的快取线探听哪些高速缓存。藉由能够将多个快取线与单个项关联,此举可藉由减少所需查找次数以便处理多交易请求所覆盖的全部地址范围,而显著地改良对探听过滤器的存取效率。
多个从属装置可采用多种形式,但在一实施例中,多个从属装置包括多个内存控制器,这些内存控制器耦接至关联内存装置。
在一个实施例中,每一关联的内存装置经配置以储存与地址型样关联的数据,一个内存装置的地址型样与另一个内存装置的地址型样交插。请求分配电路系统经配置以将多丛发交易请求分裂成单独的多个丛发交易请求,这些请求将被发至每一内存控制器,以便使每一内存控制器执行该多个交易中的交易,这些交易的规定地址在关联内存装置的地址型样内。每一内存控制器因此能在独立于由其他内存控制器中任何者处理的交易的情况下,处理自身所接收的多丛发交易请求中所辨识的多个交易,每一内存控制器将响应发回至主装置以指示每一内存控制器已处理的每一交易的完成情况。藉由接收多丛发交易请求,内存控制器将可看见需要该控制器执行的多个交易,且因此可计划自身对关联的内存装置的存取,以便优化对该多个交易所需的多个存取的处理效率。
存在数个方式,每一内存控制器可以这些方式可确定自身需要执行的交易。例如,在一个实施例中,每一内存控制器可具备控制数据,该控制数据由内存控制器用以辨识哪些交易需要由该内存控制器执行。特定而言,在通常情况下静态定义以下方式:地址交插在多个内存装置之间,且由此可将该信息提供至内存控制器。内存控制器可由此在由主装置发出完整的原始多丛发交易请求时接收这些请求,且可根据控制数据确定自身应处理该多丛发交易请求内的哪些个别交易。然后,内存控制器会将自身处理的每一交易的响应发回主装置。假定多丛发交易请求经路由至全部有关的内存控制器,此举将确保全部交易得以执行,且主装置得到涉及该多丛发交易请求内的每一交易的完成情况的通知。
或者,请求分配电路系统可将控制数据编码至发往每一内存控制器的多交易请求内。由此,每一内存控制器将接收略经修正的多交易请求,控制数据特定于该多交易请求所发至的内存控制器。此控制数据可采用多种形式,但在一个实施例中,控制数据可采用以下形式:某种遮蔽数据,用以辨识将由接收内存控制器处理的特定交易子集。
如前文所论述,多交易请求内规定的交易可为读取交易或写入交易。倘若这些交易为写入交易,则通常情况下将有大量写入数据将需要路由至多个从属装置,以便使得由多交易请求所规定的每一写入交易能够得以执行。此举可潜在地导致互连电路系统的写入数据路由电路系统内的拥塞,此拥塞可降低互连电路系统的操作效率。然而,在一个实施例中,此种拥塞可能性藉由延缓写入数据条目的传输直至多个从属装置需要这些条目而得以减轻。特定而言,在一个实施例中,由主装置发出的多交易请求辨识多个写入交易,这些写入交易需要从主装置将写入数据写入经确定用于每一写入交易的从属装置,互连电路系统包括写入数据路由电路系统,该写入数据路由电路系统经配置以将该多个写入交易中每一者的写入数据路由至经确定用于每一写入交易的从属装置,且主装置经配置以延迟每一交易的写入数据经由写入数据路由电路系统的输出,直至经确定用于该交易的从属装置发出对该写入数据的请求。
存在多种方式,从属装置可以这些方式发出对写入数据的请求。在一个实施例中,数据处理系统在每一已确定的从属装置与主装置之间进一步包括交握机制,经由该交握机制,每一已确定的从属装置发出对写入数据的请求。因此,当从属装置经由该交握机制请求每一写入数据条目时,主装置将仅输出每一写入数据条目。
在一替代性实施例中,主装置包括快取储存器,该写入数据储存在该快取储存器中,且由已确定的从属装置发出的写入数据的请求经配置以使所请求的写入数据将被逐出快取储存器。因此,在此实施例中,写入数据储存在高速缓存中,且按照有关从属装置的需要或在有关从属装置需要时被逐出高速缓存。有数个方式,数据可以这些方式被逐出快取储存器。例如,从属装置可为经配置以将探听请求发至互连电路系统内的探听电路系统,以使逐出发生。
在一个实施例中,互连电路系统进一步包括响应路由电路系统,该响应路由电路系统经配置以在多个交易的执行期间将由每一从属装置发出的响应路由至主装置。依据一个实施例,互连电路系统进一步包括争用缓解电路系统,其与请求分配电路系统关联,且根据请求分配电路系统将使多交易请求分裂成多个发至不同从属装置的交易请求的确定而经配置,该争用缓解电路系统用以针对多个交易请求应用争用减少措施,以便设法降低响应路由电路系统内由于响应从不同的从属装置经由响应路由电路系统返回而产生的争用。特定而言,因为请求分配电路系统分析正在进入的关于多个所需交易的多交易请求,因此在此时,互连电路系统对响应数目及那些响应的来源(亦即哪些从属装置将发出该多种响应)将有些失察,且依据此实施例,互连电路系统包括争用缓解电路系统,该争用缓解电路系统设法减少响应路由电路系统内由于多个需要从多个从属装置返回至主装置的响应而产生的争用。
存在多种方式,争用缓解电路系统可以这些方式设法减少响应路由电路系统内的争用。例如,所应用的争用减少措施可在响应路由电路系统内为每一从属装置分配不同的时槽,以便避免多个从属装置同时设法将响应发送至主装置。替代地或另外,可在每一交易请求内提供关联的数据指示,从而限制已确定的从属装置所使用的数据速率。数据指示例如可辨识从属装置可返回响应时的最大速率(例如用于返回读取交易的读取数据的最大速率),或对于写入交易而言,数据指示可规定从属装置可请求写入数据的最大速率。藉由节流可使用的数据速率,此举可降低互连电路系统中发生争用的机会。作为另一可能的可用措施,请求分配电路系统可错开交易请求向每一单个从属装置的向前传播,以便在由特定从属装置进行的交易操作之间引入时间延迟。
在一个实施例中,在多交易请求辨识多个写入交易的情况下,多交易请求可包括一字段,该字段辨识将针对每一交易写入的写入数据值。此字段可用于例如将逻辑0值写入记忆区。因为写入数据值被规定为交易字段,因此所需写入数据可由处理该交易的从属装置在本端产生,且此举由此可导致写入数据拥塞减少,且功率消耗降低。
用于上述实施例的多交易请求亦可用以提供有效的记忆复制功能性。例如,在一个实施例中,多交易请求可辨识多个待执行的读取交易,且可进一步规定用以辨识每一读取数据值应被写入的地址的写入地址指示,由此容许在不分离发出的写入交易请求的情况下自一个地址读取数据,然后将该数据写入另一地址。写入地址信息可以多种方式得以规定,例如由明确的写入地址规定,或藉由规定待应用于每一交易的读取地址的某个偏移值而规定。
作为用于执行该种记忆复制操作的一替代性机制,主装置可经配置以发出多交易读取请求,随后发出关联的多交易写入请求,且请求分配电路系统经配置以可响应于该多交易读取请求及该关联的多交易写入请求,以将交易请求发至每一已确定的从属装置,以便使数据从一个地址中被读取,然后被写入另一地址。
存在数个方式,多交易写入请求可以这些方式经辨识为与多交易读取请求相关联。例如,在一个实施例中,关联的多交易写入请求经配置以将同一基本交易识别符规定为用于多交易读取请求,以便使得请求分配电路系统能够将关联的多交易写入请求辨识为与该多交易读取请求相关联。
自第二方面可见,本发明提供互连电路系统,该互连电路系统用于将主装置与多个从属装置互连,以使得交易能够在有来自主装置的请求时由该多个从属装置执行,该互连电路系统包括:主接口,经配置以接收来自主装置的多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;请求分配电路系统,经配置以分析地址信息及数量指示,以便针对多个交易中的每一交易确定执行该交易所需要的从属装置,且进一步经配置以将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;及响应路由电路系统,经配置以将从每一已确定的从属装置提供的响应路由至主装置,以辨识由该已确定的从属装置执行的每一交易的完成情况,每一已确定的从属装置以独立于来自任何其他已确定的从属装置的响应的方式提供其自身响应,且每一响应包括根据基本交易识别符及交易特定信息所确定的交易识别符,以使得主装置能够辨识在多交易请求内经辨识的每一交易的完成情况。
自第三方面可见,本发明提供在数据处理系统内执行交易的方法,该数据处理系统包括主装置、多个从属装置,及互连电路系统,该互连电路系统将主装置与该多个从属装置耦接以使得这些交易能够在有来自主装置的请求时由该多个从属装置执行,该方法包括:自主装置发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;在互连电路系统内分析地址信息及数量指示,以便针对多个交易中的每一交易确定执行该交易所需要的从属装置,且将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;及将来自每一已确定的从属装置的响应发至主装置,以辨识由该已确定的从属装置执行的每一交易的完成情况,每一已确定的从属装置以独立于来自任何其他已确定的从属装置的响应的方式提供其自身响应,且每一响应包括根据基本交易识别符及交易特定信息所确定的交易识别符,以使得主装置能够辨识在多交易请求内经辨识的每一交易的完成情况。
自第四方面可见,本发明提供数据处理系统,该数据处理系统包括:主装置;多个从属装置;互连装置,该互连装置用于将主装置与该多个从属装置耦接,以使得交易能够在有来自主装置的请求时由该多个从属装置执行;主装置用于发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;互连装置包括请求分配装置,该请求分配装置用于分析地址信息及数量指示,以便针对多个交易中的每一交易确定执行该交易所需要的从属装置,且进一步用于将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;每一已确定的从属装置用于将响应提供至主装置,以辨识由该已确定的从属装置执行的每一交易的完成情况,每一已确定的从属装置以独立于来自任何其他已确定的从属装置的响应的方式提供其自身响应,且每一响应包括根据基本交易识别符及交易特定信息所确定的交易识别符,以使得主装置能够辨识在多交易请求内经辨识的每一交易的完成情况。
本发明的发明者认识到,亦可关于在主装置与多个快取储存装置之间执行的交易而采用本发明的多交易请求方法,特定而言,交易序列规定快取维护操作。特定而言,自本发明的又一方面可见,本发明提供数据处理系统,该数据处理系统包括:主装置;多个快取储存装置;互连电路系统,该互连电路系统经配置以将主装置与该多个快取储存装置耦接,以使得由主装置规定的快取维护操作能够由多个快取储存装置执行;主装置经配置以发出多交易请求,该多交易请求辨识多个待执行的交易,且该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,该多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;互连电路系统包括请求分配电路系统,请求分配电路系统经配置以分析地址信息及数量指示,以便针对多个交易中的每一交易确定该多个快取储存装置中执行该交易需要哪些装置,且进一步经配置以将交易请求发至多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及快取维护追踪电路系统,该电路系统经配置以在该多个交易的执行期间接收来自多个快取储存装置的进度指示,且向主装置提供进度信息以使得主装置能够确定该多个交易何时完成。
依据本发明的此方面,互连电路系统内的请求分配电路系统能够确定需要多个快取储存装置中的哪些装置来执行多交易请求中所规定的每一交易,且因此能够将交易请求发至多个快取储存装置中的每一者以辨识需要每一储存装置执行的交易。每一快取储存装置可随后执行其所需要的快取维护操作,快取维护追踪电路系统用以接收自那些快取储存装置返回的进度指示,然后将进度信息提供至主装置。经由利用多交易请求方法,可一次性规定快取维护操作的整体序列,而请求分配电路系统可由此确保每一个别快取储存装置执行适当的快取维护操作。尽管某些快取维护操作可仅需由单个高速缓存执行,但其他快取维护操作可能需要在多个快取储存装置内执行,且在该情况下,快取维护追踪电路系统可使用来自多个快取储存装置的进度指示以确定每一快取维护操作何时已完成,且据此通知主装置。
无需主装置了解哪些快取储存装置需要处理每一单个交易/快取维护操作,主装置仅使用自快取维护追踪电路系统提供的进度信息来确定多个多交易何时已完成。根据主装置的观点,多个交易/快取维护操作以何种顺序执行并不重要,且由此,此举容许多个快取储存装置使自身特性优化以按尽可能有效的方式执行多个快取维护操作。例如,在个别快取储存装置接收到规定待执行的交易/快取维护操作序列的多交易请求的情况下,当执行某些快取维护操作时,有可能减少在快取储存装置的标记部分内所需的查找次数。
与本发明的第一方面的发明一样,请求分配电路系统其自身可发出多交易请求,在此情况中,这些多交易请求的接收者为快取储存装置中的一或更多者。此外,与第一方面的发明一样,由多交易请求辨识的每一交易的地址在一个实施例中是藉由参考由该多交易请求规定的基本地址而确定的。
多个快取储存装置可采用多种形式。例如,这些快取储存装置可全部为在多个主装置之间共享的快取储存装置。或者,这些快取储存装置可全部是与特定主装置关联的个别快取储存装置。在一特定实施例中,多个快取储存装置可包含与特定主装置关联而提供的快取储存装置与在多个主装置之间共享的其他快取储存装置的混合物。
在一个实施例中,请求分配电路系统包括探听电路系统,该探听电路系统经配置以针对该多个快取储存装置执行探听操作,以便执行由多个交易请求中的每一者规定的快取维护操作。
在一个特定实施例中,探听电路系统包括多个探听电路,每一探听电路与不同的地址范围相关联,且请求分配电路系统进一步包括第一级请求分配电路系统,该第一级请求分配电路系统经配置以分析地址信息及数量指示,以便针对多个交易中的每一交易确定需要多个探听电路中的哪一电路来执行由该交易规定的快取维护操作,且依据该确定而将单独的交易请求发至每一探听电路。因此,在此实施例中,请求分配电路系统将首先基于与每一交易关联的地址确定哪一探听电路将接收该交易,且由此将依据该确定而将交易请求发至每一探听电路。此举通常可使得每一探听电路接收多交易请求,这些多交易请求辨识与该探听电路关联的特定交易。个别探听电路可由此处理那些请求,以便确定哪些快取储存装置需要执行快取维护操作中的每一者,那些探听电路随后将交易请求发至快取储存装置上(及同样地,那些交易请求中的一或更多者自身可以是规定将由该多交易请求所发至的快取储存装置执行的多个交易/快取维护操作的多交易请求)。
快取维护追踪电路系统可采用多种形式。然而,在一个实施例中,快取维护追踪电路系统包括在该多个探听电路中每一电路内提供的快取维护追踪电路,每一快取维护追踪电路经配置以在执行由关联的探听电路所处理的交易所规定的快取维护操作期间接收来自多个快取储存装置的进度指示,且以独立于由每一其他快取维护追踪电路所提供的进度信息的方式向主装置提供进度信息。特定而言,当主装置发出多交易请求时,主装置对如何处理那些交易没有约束,且由此在多个快取维护追踪电路之间无需任何协作。相反,从快取维护追踪电路中的每一者所提供的进度信息足以使得主装置能够确定原始多交易请求中所规定的全部交易何时已经处理,此已足够。
在一个实施例中,探听电路系统可经配置以在接收到交易请求之时向快取储存装置中的每一者发出探听请求。然而,在一替代性实施例中,探听电路系统包括探听过滤器,该探听过滤器经配置以针对每一快取储存装置维持地址的地址指示,这些地址的数据储存在该快取储存装置中;及针对一交易执行的探听操作包括:藉由使用由该交易规定的地址在探听过滤器内执行查找操作,且针对每一快取储存装置而言,在该查找操作指示地址与由探听过滤器维持的该快取储存装置的地址指示中的一者匹配的情况下,向该快取储存装置发出探听请求。此举可减少系统内的探听请求通信量。此外,在探听电路系统接收辨识待执行的多个交易的多交易请求的情况下,在探听过滤器内的查找可经优化以便降低与在探听过滤器内执行查找相关联的功率消耗。
例如,在一个实施例中,探听过滤器可包括:多个项,(每一项储存一地址指示;)及快取标识符信息,在交易地址与该地址指示匹配的情况下,该信息指示应向该多个快取储存装置中的哪些装置发出探听请求。
然而,如若探听电路系统接收到多交易请求,该多交易请求规定在较大地址范围中待执行的快取维护操作序列,则此举可能需要探听过滤器内的相同项经受多个查找操作。在一个实施例中,在此种情况下,执行经修正的查找操作以便减少对探听过滤器的存取次数。特定而言,在一个实施例中,探听过滤器是集结合储存器,且每一交易的地址的索引部分用以辨识探听过滤器内的项,该项的地址指示将用以比较该地址。如若由多交易请求规定的多个交易涉及一地址范围,该地址范围大至足以在处理该多个交易时需要多次参考探听过滤器中的每一项,则探听电路系统经配置以在探听过滤器内应用经修正的查找操作,藉此,探听过滤器的每一项经受一次查找,自该项获得的地址指示的数个位被遮蔽,然后这些位与多个交易共有的遮蔽地址进行比较;及如若该比较指示匹配,则探听请求被发至与探听过滤器中的该项关联的快取标识符信息所指示的每一快取储存装置。此方法可显著降低与执行探听操作关联的功率消耗,且改良效能。
在快取储存装置接收多交易请求的情况下,同一基本方法亦可用于快取储存装置内。特定而言,可在每一快取项内仅执行一次查找,再次使用遮蔽以执行经修正的比较,且由该比较产生的匹配指示关联快取项中的数据值应经受快取维护操作。
作为提高探听操作效率的另一方式,探听过滤器项的结构自身可变更,以使得储存在项中的地址指示不仅涉及单个快取线,而是涉及多个快取线(例如藉由将地址指示配置为较少位数的地址)。项可随后储存指示,该指示是哪些快取储存装置用以探听共享该缩短地址指示的快取线中的每一个。当利用探听过滤器获得匹配时,随后,此举将依据哪些快取储存装置已由该项标志为需要对每一快取线进行探听,而使得探听请求被发至与探听过滤器中的该项相关联的任何或全部快取线中所需高速缓存中的每一者。
由快取维护追踪电路系统提供至主装置的进度信息可采用多种形式。例如,一旦已经执行由多交易请求规定的全部多个交易,则进度信息可形成由快取维护追踪电路系统发出的单个组合响应。或者,多个单独的进度信息条目可由快取维护追踪电路系统提供,每一条目提供一计数值。主装置可随后经配置以累计接收到的计数值,以便确定全部交易何时已完成。在需要由多个快取储存装置执行特定快取维护操作的情况下,快取维护追踪电路系统将确保由全部那些快取储存装置对该快取维护操作的完成仅产生单个返回至主装置的「计数」,以确保主装置仅需要累计计数值以便确定多个变换何时已完成。
自又一方面可见,本发明提供互连电路系统,该互连电路系统用于互连主装置与多个快取储存装置,以使由主装置规定的快取维护操作能够由多个快取储存装置执行,该互连电路系统包括:主接口,经配置以接收来自主装置的多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;请求分配电路系统,该系统经配置以分析地址信息及数量指示,以便针对多个交易中的每一交易确定需要该多个快取储存装置中哪些装置执行该交易,且进一步经配置以将交易请求发至多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及快取维护追踪电路系统,该电路系统经配置以在该多个交易的执行期间接收来自多个快取储存装置的进度指示,且向主装置提供进度信息以使得主装置能够确定该多个交易何时已完成。
自又一方面可见,本发明提供在数据处理系统内执行快取维护操作的方法,该数据处理系统包括主装置、多个快取储存装置,且互连电路系统,该互连电路系统将主装置与该多个快取储存装置耦接以使得由主装置规定的这些快取维护操作能够由该多个快取储存装置执行,该方法包括:自主装置发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;在互连电路系统内分析地址信息及数量指示,以便针对多个交易中的每一交易确定需要该多个快取储存装置中哪些装置执行该交易,且将交易请求发至多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及在该多个交易的执行期间在互连电路系统内接收来自多个快取储存装置的进度指示,且向主装置提供进度信息以使得主装置能够确定该多个交易何时已完成。
自本发明的又一方面可见,本发明提供数据处理系统,该数据处理系统包括:主装置;多个快取储存装置;互连装置,该互连装置用于将主装置与该多个快取储存装置耦接,以使得由主装置规定的快取维护操作能够由多个快取储存装置执行;主装置用于发出多交易请求,该多交易请求辨识多个待执行的交易,且该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;互连装置包括请求分配装置,该请求分配装置用于分析地址信息及数量指示,以便针对多个交易中的每一交易确定需要该多个快取储存装置中哪些装置执行该交易,且进一步用于将交易请求发至多个快取储存装置中的每一装置,以辨识该多个交易中将由多个快取储存装置中的每一者执行的交易;及快取维护追踪装置,该装置用于在该多个交易的执行期间接收来自多个快取储存装置的进度指示,且用于向主装置提供进度信息以使得主装置能够确定该多个交易何时已完成。
附图说明
本发明将仅以举例的方式,藉由参考如附图中图示的本发明实施例进行进一步描述,在这些附图中:
图1A示意性图示依据一个实施例的多交易请求,且图1B图示依据一个实施例的多交易请求内包括的交易信息数目的替代性格式;
图2是依据一个实施例的数据处理系统的框图;
图3示意性图示依据一个实施例的延缓写入机制,该延缓写入机制可并入图2的系统内;
图4示意性图示一实施例,其中依据一个实施例的请求分配电路系统包括相干性处理电路系统以确保快取相干性;
图5示意性图示依据一个实施例可如何由数个阶层式分配块形成请求分配电路系统;
图6A及图6B示意性图示依据不同实施例可如何将交插支持功能并入请求分配电路系统内;
图7A及图7B示意性图示依据不同实施例可如何将争用缓解功能并入请求分配电路系统内;
图8示意性图示依据一替代性实施例的多交易请求;
图9示意性图示依据一个实施例可如何执行内存复制操作;
图10图示依据一替代性实施例的数据处理系统,该数据处理系统使得快取维护操作能够经由发出多交易请求得以执行;
图11A及图11B图示依据不同实施例的用于图10的探听过滤器内的项的两个不同格式;
图12是一流程图,该图图示依据一个实施例的优化,该优化可在图10的系统内进行的探听过滤器查找或高速缓存查找内执行;及
图13示意性图示依据一个实施例如何执行图12中论述的遮蔽。
具体实施方式
图1A是一图表,该图示意地图示依据一个实施例利用由主装置发出的多交易请求10规定的多个字段。第一字段12规定基本交易识别符,该基本交易识别符可用以结合交易特定信息以针对多交易请求中规定的每一交易产生识别符。此外,字段14提供有关多交易请求内所含交易的数目的信息。此信息可采用多种形式,且图1B图标两个可能实例。依据第一实例,字段14实际上采用大小字段30的形式,该大小字段规定交易的数目。在一替代性实施例中,字段14采用按位字段35的形式,该形式中每一位经设定或清零以便指示数据块序列内的特定数据块是否将由多交易请求内的事务处理。此信息可用以结合地址字段16内提供的地址信息,以便辨识多交易请求内每一交易的起始地址。
例如,地址信息字段16可规定与多交易请求内包含的交易序列中的第一交易关联的基本地址。在给定每一交易将在主装置与从属装置之间传送的特定数据数量的情况下(作为自主装置传送至从属装置的写入操作,或作为自从属装置将数据返回至主装置的读取操作),可确定序列中每一交易的起始地址。当使用单个大小字段30时,可假定交易是连续的交易序列,且可由此根据字段16中的基本地址确定每一交易的起始地址。如若换用按位字段35,则可藉由使用按位字段中的信息来确定序列中每一交易的起始地址。藉由使用图1B中所示的实例,在该实例中第一位、第二位及第四位已设定,但第三位清零,此举可用以辨识第一交易自基本地址发生,第二交易是相邻数据块的交易,藉由按照由每一交易所处理的数据大小所确定的某个量递增每一交易的基本地址而找到起始地址(为实现说明的目的,将假定此起始地址等于基本地址加偏移X)。第三位位置中的逻辑0值指示下一地址(亦即基本地址加2X)处的数据块将不成为交易对象,且下一交易则实际上是相对于位于一起始地址处的数据,该起始地址等于基本地址加3X。
请返回参看图1A,可提供丛发大小字段18以辨识每一交易所传送的数据量。在此实例中,假定每一交易是丛发交易,在该丛发交易中在每一时钟周期(本文中亦称作拍)传送预定数据量,且在交易的每一拍期间针对不同的数据块重复该过程。丛发大小字段可用以辨识经由每一丛发交易(针对每一丛发交易发出单独响应)传送的整体数据量。此字段可为可选的,因为在一替代性实施例中,可预定丛发大小。
读取/写入字段20用以针对每一多交易请求辨识由该请求辨识的多个交易是读取交易还是写入交易。在任何特定实施例中,亦可提供一个或多个另外的可选字段22以提供被视为相关的其他信息。
图2是依据一个实施例的数据处理系统的框图。在此实例中,主装置55经由互连电路系统50与多个从属装置60、62、64、66耦接。如那些熟习该项技术者将理解,互连电路系统时常会将多个主装置与多个从属装置互连,但为便于说明,图2中仅图标单个主装置。依据所述实施例,主装置55将发出多交易请求,该多交易请求具有前文中参考图1A及图1B所述的形式,且该多交易请求将由互连电路系统50内的请求分配电路系统70接收。请求分配电路系统70经配置以确定需要哪一从属装置执行由多交易请求规定的每一交易。通常情况下,从属装置60、62、64、66中的每一者将被映像至全部的可能地址范围(由地址映像所辨识)内的特定地址范围,且由此,藉由使用字段16中的地址信息及字段14中有关交易数目的信息,请求分配电路系统70可确定每一交易的起始地址,然后藉由参考地址映像可确定需要哪一从属装置执行每一交易。然后,请求分配电路系统70将交易请求序列发至每一从属装置。
依据一个实施例,在多个交易将由一个特定从属装置处理的情况下,请求分配电路系统可形成多交易请求以传播至从属装置上。藉由经由单个请求为从属装置提供有关该装置需要执行的多个交易的信息,此举可使得该从属装置能够设法优化自身的特性,以改良处理该多个交易的效率。例如,如若从属装置是用以存取诸如DRAM内存之类的内存的内存控制器,则对DRAM中内存的开启页面进行多次存取通常更为高效,因为存在与关闭DRAM页面及打开另一页面相关联的额外负担。利用对需要执行的交易序列的认知,内存控制器可设法优化内存存取,以便在执行由多交易请求中所辨识的交易序列所规定的必要的写入或读取操作时更有效地利用开启页面。
如若多交易请求规定写入交易序列,则写入数据亦将需要由主装置55经由路径77输出至互连装置50,随后,在该互连装置处,写入数据路由电路系统75将用以将所需写入数据路由至每一交易的有关从属装置。在一个实施例中,由请求分配电路系统确定的关于哪一从属装置将处理每一交易的信息亦可提供至写入数据路由电路系统,以用于恰当地路由每一交易的关联写入数据。然而,在一替代性实施例中,每一写入交易的写入数据不发至从属装置,直至从属装置请求该写入数据才发出。由此,在此实施例中,一旦请求分配电路系统70已将交易请求发至特定从属装置,则该从属装置将响应发回至原始主装置55,指示该从属装置已准备好接受写入数据。此响应包含写入数据必须经路由送达的从属装置ID。
由此,当主装置首先发送多交易请求时,主装置不知晓为每一交易及关联的写入数据指定哪一从属装置,而是等待来自从属装置的指示,该指示指出现在可以为多交易请求内的特定交易发送写入数据,该指示亦提供信息,该信息使得写入数据路由电路系统75能够将写入数据路由至适当的从属装置。
依据所述实施例,尽管主装置已发出单个多交易请求,但主装置知道自身已请求进行执行的个别交易。因为交易是离散的,因此主装置并不关心个别交易的执行顺序,亦无需了解哪些从属装置正在处理任何特定交易。所需操作仅为通知主装置每一交易的完成情况。对于每一交易而言,此操作可藉由每一从属装置经由互连装置50内的读取数据/响应路由电路系统80发出响应数据而实现,然后此操作将该响应数据经由路径82路由至主装置。对于写入交易,响应数据仅需为简单的确认型式信号,该信号用以确认写入交易已经执行。此外,将基于字段12中的基本交易识别符及一些交易特定信息而产生交易识别符,以使得主装置能够确定多交易请求中所辨识的多个交易中哪一交易正在得到响应。
对于规定读取交易序列的多交易请求而言,经由电路系统80返回的读取数据自身可形成响应,主装置需要该响应以便确定已经执行个别交易,此外,读取数据的每一条目伴随有交易识别符,该交易识别符辨识正在得到响应的特定交易。
藉由此种机制,主装置可发出规定多个交易的单个请求,组成该多交易请求的该多个交易随后由请求分配电路系统70路由至适当的从属装置。在个别从属装置自身接收来自请求分配电路系统的多交易请求的情况下,该从属装置可基于对需要执行的多个交易的认知而设法优化该多个交易所需的存取。例如,如若从属装置是支持交易重新排序的从属装置,则该从属装置可选择对那些交易重新排序,以便更有效地执行所请求的交易。此外,虑及前述的内存控制器/DRAM内存实例,从属装置可设法最大化对开启页面的存取,以便更有效地处理交易所需的存取。由于每一交易可经独立辨识,因此每一从属装置可以独立于其他从属装置而操作,因此可在可用时自那些从属装置经由读取数据/响应路由电路系统80提供响应,每一响应提供足以使得主装置能够在多个交易之间辨识正在得到响应的特定交易的交易识别符。此机制使得能够在与从属装置的通信路径中对可用带宽的更佳利用,同时由于某些从属装置能够基于对需要执行的多个交易的概览而改良处理交易的效率,因此亦使得效能改良能够得以实现。
对于规定写入交易序列的多交易请求而言,存在以下可能性:如若多个交易所需的写入数据将从与多交易请求关联的主装置55输出至写入数据路由电路系统75,则此举可能导致写入数据路由电路系统75内的拥塞。特定而言,写入数据路由电路系统将通常由数个级组成,这些级具有关联的写入队列,且那些队列中某些队列可能变得充满,从而等待多个写入交易进行处理。此举可能降低互连电路系统的操作效率。在一个实施例中,此种潜在的写入拥塞藉由延缓来自主装置的写入数据的传输而得以减轻,如图3中示意性地图示。为实现说明的目的,图标从属装置60中的一者,该从属装置具有请求队列100,转送至从属装置的每一交易请求被置入该请求队列。依据一个实施例,如若从属装置接收多交易请求,则该多交易请求仅占据请求队列100内的一个槽。请求处理电路系统105经配置以处理来自队列的请求。因为多交易请求可经排列以仅占据单个请求队列,因此与其他方式相比,此举有效地容许请求处理电路系统对更大数目的搁置交易具有可见性,且由此改良请求处理电路系统由于对未来交易的可见性增大而可能应用的任何重新排序的效率。
在图3中,圆中所含数字用以指示从由从属装置接收到交易请求起,直至写入该交易请求的关联写入数据的一般进程列。
当请求处理电路系统正在处理多交易请求时,对于每一交易而言,该电路系统可将适当的控制信号发送返回至主装置55,请求关于该交易的写入数据。该请求可利用交易识别符而标记,该交易识别符根据多交易请求的基本交易识别符及一些交易特定信息(如起始地址的一些低阶位)而获得。此举随后将使所需的写入数据经由写入数据路由电路系统75而从主装置输出,在该电路系统中,该写入数据将置于写入数据队列110内。请求处理电路系统105将控制写入控制电路系统115,以便写入控制电路系统可随后从队列读取该写入数据,且启动写入操作。对于内存控制器及关联的内存装置的前述实例,图3的从属装置60内图标的组件可在内存控制器内提供,且写入数据将从写入控制组件115中输出以用于储存在关联的内存装置内。
用于触发主装置以输出写入数据的机制可采用多种形式。例如,交握机制可存在于从属装置与主装置之间以使得从属装置能够请求写入数据的输出。如若此种交握机制不可用,则从属装置能够致使从主装置的高速缓存中逐出写入数据,例如藉由使互连装置内的探听电路系统发出探听请求以将数据从主装置高速缓存中逐出。
图4图标请求分配电路系统可如何经配置以在处理多交易请求时管理快取相干性问题。与图3一样,圈中所含数字指示图中所示的多个互动的相对排序。在此实例中,数据处理系统包括主装置序列130、140、150,这些主装置中的每一者具有与其自身关联的高速缓存132、142、152。那些高速缓存中的每一者可为单个等级的高速缓存,或其自身可由多个等级的高速缓存组成,例如1级高速缓存与2级高速缓存相结合。如图所示,假定主装置130将多交易请求发至请求分配电路系统160,在此实例中,请求分配电路系统包括相干性处理电路系统,该相干性处理电路系统在一个实施例中可采用探听电路系统的形式。
在一个实施例中,请求分配电路系统160内的相干性处理电路系统可经配置以针对多交易请求中发出的每一交易的地址而将探听请求发至其他主装置140、150的高速缓存142、152,探听响应随后返回请求分配电路系统。或者,相干性处理电路系统可对提供地址指示的储存结构进行存取,这些地址的数据保存在高速缓存142、152中;且随后仅在该储存结构指示高速缓存中具有储存数据之时,才将探听请求发至有关的高速缓存,该储存数据的地址指示与该交易中的地址指示匹配。请求分配电路系统160的相干性处理电路系统内的储存结构可采用多种形式,但在一个实施例中,该储存结构采用探听过滤器的形式,该探听过滤器用于保持地址部分的日志及对应针对交易而进行探听的高速缓存的辨识,该交易的关联地址部分与探听过滤器中所记录的该地址部分匹配。
为响应于探听请求而需要采取的操作将依据实施例及交易类型而有所不同。例如,对于写入交易而言,探听请求可能仅使本地高速缓存142、152中所储存的数据的任何复本无效化,随后,由主装置130提供新写入数据以用于在有关的从属装置170、172、174中储存。此举将确保主装置140、150随后不会由于存取其本地高速缓存中的过期数据而存取错误数据。或者,除了将新的写入数据写入内存之外,还可将该新写入数据写入经探听的高速缓存中。对于读取交易而言,在由读取交易所请求的数据经发现存在于高速缓存内的情况下,探听请求将通常使所需数据作为探听响应的部分从经探听的高速缓存输出。此举将容许相干性处理电路系统160随后将所需的读取数据经由读取数据/响应路由电路系统165返回至主装置130,无需存取从属装置170、172、174以存取该数据。
在高速缓存142、152中的每一者针对多交易请求中的每一交易而经探听的实施例中,对于读取交易而言通常将为以下情况:在确定关联的交易请求是否需要传播至从属装置上之前,将由相干性处理电路系统聚集探听响应(因为所需的读取数据不存在于高速缓存142、152中的一者中)。对于写入交易序列而言,在有关快取线包含先前版本的写入数据的情况下,如若探听请求仅使有关快取线无效化,则写入交易可被同时传播至所需的从属装置170、172、174上。类似地,对于使用探听过滤器以便仅多交易请求所规定的一交易请求子集可需要发出探听请求的实施例而言,将有数个交易请求,这些交易请求可在不延迟情况下传播至从属装置170、172、174上,无需等待接收到任何探听响应。为此,自请求分配电路系统160中传播出的多个探听请求、探听响应及交易请求全部用组件符号3进行标志,以指示这些探听请求、探听响应及交易请求基本上同时存在,受上文所列约束的限制。与前文所述实施例一样,在请求分配电路系统辨识出多个交易需要传播至从属装置中的一者的情况下,请求分配电路系统可将多交易请求发至有关的从属装置上,该多交易请求辨识将由该从属装置执行的交易。
从前文的论述中将了解,从属装置中的每一者将经由读取数据/响应路由电路系统165独立地将响应输出至主装置130,以指示所执行的交易中的每一者的完成情况。此外,基于接收到的来自经探听的高速缓存142、152的探听响应,请求分配电路系统160内的相干性处理电路系统自身可为响应的来源,这些响应经由读取数据/响应路由电路系统165经路由返回至主装置130。与来自从属装置的响应一样,任何来自相干性处理电路系统的响应将具有与该电路系统关联的交易识别符,该交易识别符根据多交易请求的字段12中的基本交易识别符及一些交易特定信息而获得,如交易的起始地址的一定数目的低阶地址位。由此,与前文所述实施例一样,主装置130可监视经由读取数据/响应路由电路系统165提供的多个响应,以便确定多交易请求中规定的交易中的每一者何时已完成。
图5示意性图标请求分配电路系统200可如何由以阶层式方式排列的多个分散级形成。在此实例中,假定在请求分配电路系统内提供由两个单独的探听电路212、214形成的探听电路系统,每一探听电路与不同的地址范围关联。由此,提供地址映像分裂电路210,该电路分析最初接收到的多交易请求,以便针对多交易请求中规定的每一交易确定哪一探听电路应查核该交易。由于该分析,将经修正的多交易请求发送至每一探听电路,以辨识需要由那些探听电路进行查核的多个交易。第一探听电路212将针对其自身接收的每一交易而确定是否需要针对主装置140、150内的高速缓存142、152发出任何探听请求。如若需要,则将发出那些探听请求,且将接收所需的探听响应。对于写入交易而言,探听电路亦将通常将交易请求发至该电路的关联从属装置上,在此情况下,该从属装置是内存控制器202。此外,此举可藉由从探听电路212将多交易请求发至内存控制器202而实现,以容许内存控制器202在处理该多个交易时优化自身特性。可基于探听响应而针对不能得到响应的任何读取交易采取同一操作。
探听电路214将以与探听电路212类似的方式操作,按需求将探听请求发至高速缓存142、152。然而,在此情况下,并非仅有与由探听电路214管理的地址范围关联的单个从属装置,相反,在此实例中,有由内存控制器204、206、208形成的三个从属装置。由此,由探听电路214输出的交易请求首先传递至地址映像分裂电路220,该地址映像分裂电路在此实例中了解与内存控制器204关联的地址。由此,对于具有映像至内存控制器204的关联地址的任何交易而言,地址映像分裂电路220会将该交易发至内存控制器204。全部其他交易请求随后将被转送至地址映像分裂电路225上,地址映像分裂电路了解与内存控制器206及208中的每一者关联的地址,且由此分裂接收到的交易,以便将交易请求传播至适当的内存控制器206、208。
将了解,图5仅为一实例,该实例为:如何可以阶层式方式排列请求分配电路系统以在按需执行探听请求的同时将多个交易请求路由至所需的从属装置上。
可能为以下情况:特定从属装置的关联地址与另一从属装置的关联地址以粗略粒度等级或更精细的粒度等级相交插。例如,此情况往往是使用DRAM内存的情况,在该内存中将提供多个内存控制器,每一内存控制器控制对关联的DRAM记忆块的存取,且地址交插在多个DRAM记忆块之间以便改良访问时间。在一个实施例中,请求分配电路系统可包括交插支持电路系统,以便协助将接收到的多交易请求分裂成针对每一从属装置指定的交易请求。图6A中以实例的方式图标此配置,在该图中,主装置250经由包括请求分配电路系统255的互连装置耦接至两个从属装置270、280。请求分配电路系统包括交插支持块260,该交插支持块对内存映像262进行存取,该内存映像辨识地址如何经映像至两个从属装置270、280,这些从属装置例如可为内存控制器。从属装置中的每一装置将具有与该装置关联的交易处置器272、282以执行交易,该装置接收这些交易的交易请求。如前文所论述,从属装置自身可接收来自请求分配电路系统255的多交易请求,且在该情况下,交易处置器将确定交易中待执行的每一交易,然后使那些交易由从属装置执行,响应数据随后被路由返回至主装置以指示交易中的每一者的完成情况。
在图6A的实例中,请求分配电路系统255分析多交易请求,且特定而言,交插支持块260参考内存映像262以便确定哪些交易需要路由至从属装置270、280中的哪一者。然后,请求分配电路系统255产生经修正的多交易请求,该多交易请求经发送至从属装置中的每一者。在此实施例中,修正涉及针对由请求分配电路系统发出的每一多交易请求设定在字段14内的交易信息数目,以辨识对于接收从属装置而言需要执行哪些交易。在一个实施例中,此举可藉由使用诸如图1B中按位字段35的按位字段而实现,以辨识多交易请求内将由接收从属装置处理的特定交易。因此,自请求分配电路系统255发至从属装置270的多交易请求将以不同于自请求分配电路系统255发至从属装置280的多交易请求的方式设定该按位字段,以便从属装置中的每一者随后将执行所请求的交易及将所需响应发至主装置。主装置由此将能够确定其最初发出的多交易请求中规定的交易中的每一者何时已完成。
图6B图示一替代性实施例,在该实施例中,从属装置270、280中的每一者在本地储存码信息274、284,这些码信息辨识用以在从属装置270、280之间交插地址的交插型样。在此实施例中,从属装置270、280随后都接收到相同多交易请求,且使用关联的码信息274、284以确定将处理多交易请求内的哪些交易。交插支持块260随后用于确定哪些交易将由从属装置270或从属装置280处理,且随后构成多交易请求,该多交易请求以一方式经广播至那些从属装置,该方式将使得那些从属装置能够使用其本地储存码274、284,以便辨识那些从属装置需要处理的特定交易。
在图6A及图6B中,图示了可选的争用缓解块265。现将藉由参考图7A及图7B描述可使用此块的方式。在处理由多交易请求规定的多个交易时,互连装置的读取数据/响应路由电路系统内存在出现争用问题的可能性,且对于写入交易而言,互连装置的写入数据路由电路系统内亦存在此可能性。争用的可能性将在有多个交易同时经服务的任何系统中出现。然而,因为请求分配电路系统255可控制多交易请求的处理方法,且特定而言控制如何将那些交易告知执行该多交易请求中所规定的交易的所需的多个从属装置,因此请求分配电路系统255可包括争用缓解块265以应用争用减缓措施,以便设法减少互连装置内的争用。作为可能采取的争用减少措施的一个实例(请参见图7A),请求分配电路系统255可经配置以将多交易请求发至从属装置270,且对所需多交易请求至另一从属装置280的传输进行延时。此举有可能在时序中引入交错,利用该交错,响应经路由返回主装置,因此减少争用。
图7B图示一替代性实施例,在该实施例中,多交易请求基本上同时从请求分配电路系统255被发至每一从属装置270、280,但缓解控制信息作为边带信号包括在多交易请求中的每一者内。在一实例中,此举可规定可由从属装置使用的某个最大数据速率,例如以降低每一从属装置可向主装置提供响应的最大速率,或在多交易请求关于多个写入交易的情况下降低每一从属装置可从主装置请求写入数据的最大速率。此举将用以降低互连装置内的争用的可能性。可将特定时槽分配至从属装置中的每一者,以便经由读取数据/响应路由电路系统80返回响应数据,作为另一减低争用措施。
在一替代性实施例中,在从属装置与主装置之间使用交握信号以请求写入交易的写入数据,可能无需特别针对写入数据路由电路系统75采取争用缓解措施。相反,如若两个从属装置同时请求写入数据,则主装置将仅接收那些请求中的一者,且针对所接受的请求提供写入数据。其请求未在当时被服务的从属装置可重新发出请求,或可在等待写入数据的同时重新计划不同的交易。
图8示意性图示另一格式的多交易请求,该多交易请求可针对某些类型的写入交易用于一个实施例中。多交易请求300包括多个字段,亦即与图1A中图示的字段12、14、16、18、20,及22对应的字段312、314、316、318、320,及322。在此实例中,读写字段320经设定以辨识该多交易请求关于写入交易序列。亦提供写入类型字段324,此字段可经设定为第一值以辨识正常写入,或可经设定为第二特别值以辨识特定形式的写入操作,在该操作中,可直接根据写入类型字段而隐含写入数据。例如,在一个实施例中,如若写入类型字段经设定为逻辑0值,则此举意谓着每一写入交易的写入数据将为逻辑0值序列,由此容许内存的整体区域得以重置为逻辑0值。利用此种形式的多交易请求,从属装置将无需为每一交易个别请求写入数据,因为将隐含写入数据,且可在本地产生写入数据。此举减少写入数据拥塞,且降低互连装置内的功率消耗。
所述实施例的多交易请求方法亦可用以执行有效的内存复制操作,如图9中示意地图示。依据内存复制操作,自第一地址读取数据,然后将数据直接写入第二地址。在一个实施例中,可藉由发出多交易读取请求,随后发出与该多交易读取请求关联的多交易写入请求,来针对较大范围的内存地址执行此种记忆体操作。指示多交易读取请求与多交易写入请求之间的关联的一个方式是为该两个多交易请求使用同一基本交易识别符。首先考虑全部地址及多交易写入请求的对象(subject)皆位于单个从属装置内的第一情况,则可在该从属装置内提供图9中图标的组件,且这些组件包括队列350及请求处理电路355,多交易请求被接收至该队列350中,且该请求处理电路355用于处理请求队列内的请求。在处理请求之时,请求处理块355将与读取控制电路系统360及写入控制电路系统365通信,以使所需的读取及写入操作发生。在发现队列包含多交易读取请求及随后的多交易写入请求,该两个请求具有同一基本交易识别符时,则请求处理块355将控制读取控制电路以执行所需的读取操作,且读取数据的每一条目由此将从读取控制块直接转送至写入控制块365,请求处理块将使该写入控制块执行所需的写入操作。
在并未全部针对同一从属装置执行读取及写入操作的情况下,例如在正在从一个从属装置读取数据,然后将数据写入另一从属装置的情况下,可在互连结构内实施两个从属装置之间的协作,以便将从从属装置中的一者返回至互连装置的读取数据直接路由至其他从属装置中的写入控制块,以使得该数据被写入该其他从属装置内的所需的内存地址。
在一替代性实施例中,不请求单独的多交易读取请求及多交易写入请求以便执行内存复制功能,而是可规定经修正的多交易读取请求,该请求包括写入地址信息以使得能够确定每一读取数据条目皆应写入的地址。写入地址信息可采用多种形式,但在一个实施例中,写入地址信息可包括指示将应用于每一读取地址的偏移的偏移指示,以便计算对应的写入地址。
将理解,对于实际上经寻址的数据而言,多交易请求的长度通常由于读取或写入遇到页面边界而受限制。
亦可使用前述实施例中所述的多交易请求方法,以便提高由从主装置发至互连装置内的探听电路系统的交易所启动的快取维护操作的效率,以便针对系统内的多个高速缓存使快取维护操作得以执行。以举例方式藉由参考图10而图标此种配置。在此实例中,主装置400发出多交易请求(在此情况下,多交易请求内的每一交易规定一快取维护操作),且该多交易请求由探听电路430内的请求分配电路系统440接收。可在系统内提供多个高速缓存,且请求分配电路系统440藉由参考多交易请求内的地址信息及数量指示(亦即指示交易数目)确定哪些高速缓存需要经受哪些快取维护操作。多个高速缓存可为与其他主装置410、420关联的本地高速缓存412、422,或可为数个共享高速缓存450、452,例如可由主装置400、410、420中的每一者存取的3级高速缓存。在一个实施例中,如图10中所示,多个高速缓存可包括本地高速缓存412、422与共享高速缓存450、452的混合物。
在一个实施例中,针对每一交易,将探听请求发至高速缓存中的每一者以在那些高速缓存内启动查找,且如若侦测到作为高速缓存查找的部分的命中(亦即如若交易的有关地址部分与所储存的与快取线关联的地址部分匹配),则启动快取维护操作在关联的快取线上执行。
然而,在一替代性实施例中,维持探听过滤器445,该探听过滤器具有多个辨识地址部分的项,且在交易的对应地址部分与探听过滤器项中所储存的地址部分匹配的情况下,提供哪些高速缓存需经受探听请求的指示。此种配置在图11A中图示,在该图中,探听过滤器500中的每一项505包括标记地址部分507,该标记地址部分是高速缓存的快取线内所保持的全部数据值共有的地址部分。此外,每一项在高速缓存字段509中储存一指示,该指示指示在标记部分507与交易的标记部分匹配的情况下(在此情况下,该交易规定快取维护操作)需要经探听的高速缓存。藉由使用探听过滤器方法,此举可藉由确定需要经受每一快取维护操作的高速缓存的子集而减少系统内的探听请求通信量。
快取维护操作可采用多种形式,那些熟习该项技术者将理解此点。例如,快取维护操作可需要使快取线内容清零及无效化。如若快取线中保持的数据比内存中储存的数据更新,则清零操作将需要在使内存无效化之前将当前内容写出至内存。
因为主装置400规定多交易请求,该多交易请求辨识多个交易及由此辨识多个需要执行的快取维护操作,因此在请求分配电路系统440确定特定高速缓存需要执行多个快取维护操作的情况下,请求分配电路系统440可藉由将多交易请求作为探听请求发至有关的高速缓存来向高速缓存辨识该快取维护操作。此举可使得能够对高速缓存内的快取维护操作的处理进行一定优化,如下文将例如藉由参考图12及图13所论述。
多个探听响应将返回至请求分配电路系统,且随后被转送至追踪电路系统435上,该电路系统负责将进度信息提供返回至主装置400以使得主装置能够确定多个交易(在此情况下为多个快取维护操作)何时已经执行。在特定快取维护操作需要在高速缓存中的多者内执行的情况下,追踪电路系统将监视来自高速缓存中的每一者的响应,且一旦已接收到全部探听响应后,则仅处理已完成的特定交易。
追踪电路系统435可经配置以追踪多交易请求中规定的全部交易的执行,然后在全部所需快取维护操作已经执行的情况下,将单个通知发送回主装置400。或者,追踪电路系统可以更逐件的方式提供进度信息,例如在交易块或个别交易经处理时,将计数值序列发回至主装置400。主装置400可由此仅累计多个计数值,以便确定多交易请求中规定的全部交易何时已经处理。
将了解,利用本地高速缓存412、422,内容将随着时间经过而动态改变,且探听过滤器445提供一有效机制以用于追踪与每一高速缓存内的项关联的地址,且由此指示探听请求是否将为必需。对于共享高速缓存450、452,时常为以下情况:不同的地址范围与不同的高速缓存关联,且由此在高速缓存与其中所储存的数据的地址之间存在更为静态的关系。在此种配置中,请求分配电路系统440可存取关于共享高速缓存450、452的一些静态映像信息,以便针对任何特定交易确定需要将探听请求发至共享高速缓存中的哪一者。
尽管可提供单个探听电路,但在一个实施例中,提供多个探听电路430、460,每一探听电路与不同的地址范围关联。在此种实施例中,可提供第一级请求分配电路系统470以用于参考关于与每一探听电路关联的地址范围的信息,以便针对由多交易请求规定的每一交易确定哪一探听电路应接收及处理关联的交易。此举可产生交易子集,该子集被转送至探听电路430,且一不同子集经路由至探听电路460。探听电路中的每一者可由此经配置以接收来自第一级请求分配电路系统470的经修正的多交易请求,该经修正的多交易请求辨识将由该探听电路处理的多个交易。在此种实施例中,每一探听电路将具有单独的追踪电路系统435,每一追踪电路系统将独立地将进度信息提供返回至主装置400。主装置400可由此监视从追踪电路中的每一者中提供的进度信息,以便确定何时已经处理与多交易请求关联的全部交易。
应值得注意,与前文论述的实施例不同,对于规定快取维护操作序列的多交易请求,主装置400通常将无需以逐个交易的方式知晓哪些交易已经执行。相反,主装置仅需知晓快取维护操作何时已经完成。由此,通常仅需将充足进度信息传递回主装置,以使主装置足以确定全部快取维护操作何时已经执行,且该信息无需包括唯一交易识别符信息以向主装置400辨识个别交易。
图11B图示可对探听过滤器的配置进行的优化,该优化用以协助处理由多交易请求所规定的多个快取维护操作。在此实施例中,探听过滤器520中的每一项525具有字段530,该字段储存的标记部分略短于图11A的实例的字段507中储存的标记部分,由此,此较短的标记部分与多个快取线匹配。单个查找可由此针对每一项525得以执行,且倘若交易的对应的缩短标记部分与储存在字段530中的标记部分匹配,则全部多个字段532、534、536中的有关信息可用以针对与那些字段关联的快取线来辨识需要探听哪些高速缓存。由于能够将多个快取线与单个项关联起来,此举可藉由减少为处理多交易请求所覆盖的完整地址范围而需要的查找次数,来显著改良对探听过滤器的存取效率。
探听过滤器445将时常具有与高速缓存相同的基本结构,且由此可经配置为N路集结合储存器结构,如图13中藉由组件600所图标。通路602、604、606、608中的每一者将包括多个项,这些项储存标记部分及一些关联信息。在探听过滤器内,关联的信息将为图11A或图11B中图标的信息,亦即在侦测到与项中储存的标记部分有匹配的情况下辨识需经探听的高速缓存。对于高速缓存自身,关联的信息将包括有效及坏控制数据。此外,将了解,在这些高速缓存中,对于每一标记项而言,将有对应的快取线储存多个数据值,在交易地址的标记部分与项620中储存的标记部分之间发现有匹配的情况下,将存取这些数据值。
如图13所示,对于虑及地址610而言,地址的索引部分614将用以辨识N路集结合储存器结构内的特定集,且标记信息将由此从该集中的每一项输出至对应标记比较块625、630、635,N路集结合结构中的每一通路具有一个标记比较块。输出标记信息将由此与地址610的标记部分612比较,以便确定是否存在命中。如若存在命中,则在正在探听过滤器中执行查找的情况下,项的关联信息将辨识需要经探听的高速缓存。如若正在高速缓存中的一者内执行查找,则倘若有命中,此举将辨识需要经受快取维护操作的快取线。
图12是一流程图,该图图标在多交易请求所覆盖的地址范围大于快取通路尺寸的情况下,倘若多交易请求经导引至那些组件,则可在探听过滤器445或在任一高速缓存中使用的优化。如若地址范围不大于快取通路大小,则流程仅前进至步骤575,在该步骤中执行标准标记查找流程。然而,如若地址大于快取通路大小,则流程前进至步骤555,在该步骤中确定将需要多少迭代经由每一索引进入高速缓存内以便服务全部交易。然后,该流程并非经由每一索引迭代多次,而是前进至步骤560,在该步骤中,为每一索引执行一次标记查找,以便获得该索引位置处的每一集的对应标记值。其后,在步骤565中,每一标记值的数个最低有效位根据标记比较而经遮蔽,遮蔽的位数依据步骤555中确定的迭代数目而定。例如,如若确定将需要八个迭代经由每一索引,则将遮蔽标记值中最低有效的三个位。更一般而言,如若所需迭代数目是二的幂,则可使用简单的位掩码。对于其他迭代,可使用更复杂的技术。
此外,如图13所示,遮蔽来自地址610的标记部分612的同等数目的位,以便每一标记比较块625、630、635基于经遮蔽的标记信息执行标记比较。在正在数据高速缓存412、422、450、452中的一者中执行查找,或正在探听过滤器高速缓存中执行查找的情况下,倘若在任一通路中侦测到命中,则对对应的快取线执行清零操作,随后,此举将触发探听请求被发至由探听过滤器项中的关联控制信息所辨识出的每一高速缓存。
在探听过滤器在物理地址上工作的实施例中,将了解,任何较大的虚拟地址操作可需要细化至页面大小的操作,因此在此种情况下限制可从主装置发出的多交易请求的大小。
作为可由参考图12及图13所述的该方法实现的优势的实例,将八路256kB高速缓存视作实例。如若每一线路是64字节,则总高速缓存将具有4k线路,且将有512个集。由此,如若需要执行4MB清零操作,则在没有使用图12及图13的方法的情况下,此举将需要执行64k次检查,在4MB清零的执行期间针对每一索引执行重复的查找操作。然而,经由使用图12及图13的方法,每一项仅检查一次,且由此将执行512次检查,而不是64k次检查。每一检查将有效地覆盖128个地址,所以地址的7个位经遮蔽以用于标记检查。
虽然本文已描述特定实施例,但将了解,本发明并非限制于这些实施例,且可在符合本发明范畴的情况下对实施例进行许多修正及增添。例如,可在不脱离本发明范畴的情况下,利用独立权利要求的特征进行附属专利申请范围的多个特征组合。
Claims (45)
1.一种数据处理系统,包括:
主装置;
多个从属装置;
互连电路系统,经配置以将该主装置与该多个从属装置耦接,以使得交易能够在有来自该主装置的请求时由该多个从属装置执行;
该主装置经配置以发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;
该互连电路系统包括请求分配电路系统,该请求分配电路系统经配置以分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定执行该交易所需的从属装置,且进一步经配置以将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;
每一经确定的从属装置经配置以向该主装置提供响应,以辨识由该经确定的从属装置执行的每一交易的完成情况,每一经确定的从属装置经配置以提供自身的响应,这些响应独立于来自任何其他经确定的从属装置的响应,且每一响应包括根据该基本交易识别符及该交易特定信息所确定的交易识别符,以使得该主装置能够辨识在该多交易请求内所辨识的每一交易的完成情况。
2.如权利要求1所述的数据处理系统,其中由该请求分配电路系统发出的交易请求包括至少一个多交易请求,该至少一个多交易请求中的每一者辨识需由该经确定的从属装置执行的该多个交易中的多个,该多交易请求被发至该经确定的从属装置。
3.如权利要求1或2所述的数据处理系统,其中由该主装置发出的多交易请求是多丛发交易请求,且该多个交易中的每一者是丛发交易,该丛发交易规定将在该主装置与该经确定的从属装置之间针对该丛发交易执行多个数据传送。
4.如权利要求1所述的数据处理系统,其中该地址信息包括基本地址,且藉由参考该基本地址而确定由该多交易请求辨识的每一交易的地址。
5.如权利要求4所述的数据处理系统,其中每一多交易请求辨识涉及连续地址范围内的预定地址的交易序列。
6.如权利要求4所述的数据处理系统,其中该多交易请求包括遮蔽信息,该遮蔽信息用于结合该基本地址以针对由该多交易请求辨识的每一交易确定地址。
7.如权利要求4所述的数据处理系统,其中当从属装置针对特定交易提供响应时,由该从属装置结合该基本交易识别符使用以产生包括在该响应中的交易识别符的交易特定信息,该交易特定信息包括针对该交易规定的地址的数个位。
8.如权利要求1所述的数据处理系统,进一步包括:
至少又一个主装置,该主装置具有快取储存器,其中数据经高速缓存以便由该至少又一个主装置存取;
该互连电路系统包括探听电路系统,该探听电路系统可响应于接收到的交易请求,基于规定用于与该接收到的交易请求关联的交易的地址,来针对该快取储存器执行探听操作,以便确定位于该地址处的数据是否储存在该快取储存器内;
该请求分配电路系统进一步经配置以分析该地址信息及该数量指示,以便确定该多个交易中的任何者是否规定如下地址:该地址需要由该探听电路系统执行探听操作;
该请求分配电路系统可响应于需要对该多个交易中的至少一者执行探听操作的确定,将自该主装置接收的多交易请求分裂成多个交易请求,且将这些交易请求中的至少一者发至该探听电路系统。
9.如权利要求8所述的数据处理系统,其中发至该探听电路系统的这些交易请求中的至少一者包括多交易请求,该多交易请求辨识该多个交易中需要执行探听操作的多个交易。
10.如权利要求8或9所述的数据处理系统,其中该探听电路系统包括多个探听电路,每一探听电路与不同的地址范围关联,且该请求分配电路系统经配置以将单独的交易请求发至每一探听电路。
11.如权利要求8所述的数据处理系统,其中该探听电路系统包括探听过滤器,该探听过滤器经配置以维持以下地址的地址指示:这些地址的数据储存在该快取储存装置中;及针对交易执行的探听操作包括:使用由该交易规定的地址来参考该探听过滤器,且在该探听过滤器指示该地址与由该探听过滤器维持的地址指示中的一者匹配的情况下,向该快取储存装置发出探听请求。
12.如权利要求3所述的数据处理系统,其中该多个从属装置包括多个内存控制器,该多个内存控制器耦接至关联的内存装置。
13.如权利要求12所述的数据处理系统,其中:
每一关联的内存装置经配置以储存与地址型样关联的数据,一个内存装置的地址型样与另一个内存装置的地址型样交插;及
该请求分配电路系统经配置以将该多丛发交易请求分裂成单独的多丛发交易请求,这些请求将被发至每一内存控制器以便使每一内存控制器执行该多个交易之中的如下交易:这些交易的规定地址位于该关联的内存装置的地址型样内。
14.如权利要求13所述的数据处理系统,其中所述内存控制器中的每一者具备控制数据,该控制数据由该内存控制器用以辨识哪些交易需要由该内存控制器执行。
15.如权利要求14所述的数据处理系统,其中该请求分配电路系统将该控制数据编码至发往每一内存控制器的多交易请求之内。
16.如权利要求1所述的数据处理系统,其中:
由该主装置发出的多交易请求辨识多个写入交易,这些写入交易需要自该主装置将写入数据写入针对每一写入交易所确定的从属装置;
该互连电路系统包括写入数据路由电路系统,该写入数据路由电路系统经配置以将该多个写入交易中每一交易的写入数据路由至针对每一写入交易所确定的从属装置;及
该主装置经配置以针对每一交易延迟该写入数据经由该写入数据路由电路系统的输出,直至针对该交易所确定的从属装置对该写入数据发出请求为止。
17.如权利要求16所述的数据处理系统,进一步在每一经确定的从属装置与该主装置之间包括交握机制,该每一经确定的从属装置经由该交握机制发出对该写入数据的请求。
18.如权利要求16所述的数据处理系统,其中该主装置包括快取储存器,该写入数据储存在该快取储存器中,且由经确定的从属装置发出的对该写入数据的请求经配置以使所请求的写入数据将被逐出该快取储存器。
19.如权利要求1所述的数据处理系统,其中该互连电路系统进一步包括:
响应路由电路系统,该响应路由电路系统经配置以在该多个交易的执行期间将由每一从属装置发出的响应路由至该主装置;及
争用缓解电路系统,该争用缓解电路系统与该请求分配电路系统关联,且被配置为在确定该请求分配电路系统将使该多交易请求分裂成多个交易请求发至不同从属装置之时,针对该多个交易请求应用争用减少措施,以便设法减少该响应路由电路系统内由于响应从不同的从属装置经由该响应路由电路系统返回而产生的争用。
20.如权利要求19所述的数据处理系统,其中该争用减少措施包括在该响应路由电路系统内为不同从属装置中的每一者分配不同的时槽。
21.如权利要求19所述的数据处理系统,其中该争用减少措施包括结合由该请求分配电路系统发出的每一交易请求而提供数据速率指示,该数据速率指示限制经确定的从属装置所使用的数据速率。
22.如权利要求1所述的数据处理系统,其中该多交易请求辨识多个写入交易,这些写入交易需要自该主装置将写入数据写入针对每一写入交易所确定的从属装置,且该多交易请求包括以下字段:该字段辨识将针对每一交易所写入的写入数据值。
23.如权利要求1所述的数据处理系统,其中该多交易请求辨识多个待执行的读取交易,且进一步规定用以辨识每一读取数据值应被写入的地址的写入地址指示,由此容许在不发出单独的写入交易请求的情况下自一个地址读取数据,然后将该数据写入另一地址。
24.如权利要求1所述的数据处理系统,其中:
该主装置经配置以发出多交易读取请求,随后发出关联的多交易写入请求;及
该请求分配电路系统经配置以响应于该多交易读取请求及关联的多交易写入请求,将交易请求发至每一经确定的从属装置,以便从一地址读取数据,然后将该数据写入另一地址。
25.如权利要求24所述的数据处理系统,其中该关联的多交易写入请求经配置以将同一基本交易识别符规定为用于该多交易读取请求,以便使得该请求分配电路系统能够将该关联的多交易写入请求辨识为与该多交易读取请求相关联。
26.一种互连电路系统,用于将主装置与多个从属装置互连,以使得交易能够在有来自该主装置的请求时由该多个从属装置执行,该互连电路系统包括:
主接口,经配置以接收来自该主装置的多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;
请求分配电路系统,该请求分配电路系统经配置以分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定执行该交易所需的从属装置,且进一步经配置以将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;及
响应路由电路系统,该响应路由电路系统经配置以将自每一经确定的从属装置提供的响应路由至该主装置,以辨识由该经确定的从属装置执行的每一交易的完成情况,每一经确定的从属装置以独立于来自任何其他经确定的从属装置的响应的方式提供其自身的响应,且每一响应包括根据该基本交易识别符及该交易特定信息所确定的交易识别符,以使得该主装置能够辨识在该多交易请求内所辨识的每一交易的完成情况。
27.一种数据处理系统,包括:
主装置;
多个快取储存装置;
互连电路系统,经配置以将该主装置与该多个快取储存装置耦接,以使得由该主装置所规定的快取维护操作能够由该多个快取储存装置执行;
该主装置经配置以发出多交易请求,该多交易请求辨识多个待执行的交易,且该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,该多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;
该互连电路系统包括请求分配电路系统,该请求分配电路系统经配置以分析该地址信息及该数量指示,以便针对多个交易中的每一交易确定需要该多个快取储存装置中的哪些装置执行该交易,且进一步经配置以将交易请求发至该多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及
快取维护追踪电路系统,该电路系统经配置以在该多个交易的执行期间接收来自该多个快取储存装置的进度指示,且向该主装置提供进度信息以使得该主装置能够确定该多个交易何时已完成。
28.如权利要求27所述的数据处理系统,其中由该请求分配电路系统发出的交易请求包括至少一个多交易请求,该至少一个多交易请求中的每一者辨识该多个交易中需要由该快取储存装置执行的的多个交易,其中该多交易请求被发至该快取储存装置。
29.如权利要求27或28所述的数据处理系统,其中该地址信息包括基本地址,且藉由参考该基本地址而确定由该多交易请求辨识的每一交易的地址。
30.如权利要求27所述的数据处理系统,进一步包括又一主装置,且该多个快取储存装置包括由该主装置与该又一主装置共享的至少一个快取储存装置。
31.如权利要求27所述的数据处理系统,进一步包括又一主装置,且该多个快取储存装置包括与该又一主装置关联提供的至少一个快取储存装置,以用于高速缓存由该又一主装置存取的数据。
32.如权利要求27所述的数据处理系统,其中该请求分配电路系统包括探听电路系统,该探听电路系统经配置以针对该多个快取储存装置执行探听操作,以便执行由该多个交易请求中的每一者规定的快取维护操作。
33.如权利要求32所述的数据处理系统,其中该探听电路系统包括多个探听电路,每一探听电路与不同的地址范围相关联,且该请求分配电路系统进一步包括第一级请求分配电路系统,该第一级请求分配电路系统经配置以分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定需要由该多个探听电路中的哪一电路来执行由该交易规定的快取维护操作,且依据该确定而将单独的交易请求发至每一探听电路。
34.如权利要求33所述的数据处理系统,其中该快取维护追踪电路系统包括在该多个探听电路中每一电路内提供的快取维护追踪电路,每一快取维护追踪电路经配置以在执行由该关联的探听电路所处理的交易所规定的快取维护操作期间接收来自该多个快取储存装置的进度指示,且以独立于自每一其他快取维护追踪电路所提供的进度信息的方式向该主装置提供该进度信息。
35.如权利要求32所述的数据处理系统,其中该探听电路系统包括探听过滤器,该探听过滤器经配置以针对每一快取储存装置维持以下地址的地址指示:这些地址的数据储存在该快取储存装置中;及针对交易执行的该探听操作包括:使用由该交易规定的地址来在该探听过滤器内执行查找操作,且针对每一快取储存装置,在该查找操作指示该地址与由该探听过滤器维持的该快取储存装置的地址指示中的一者匹配的情况下,向该快取储存装置发出探听请求。
36.如权利要求35所述的数据处理系统,其中该探听过滤器包括多个项,每一项储存地址指示;及快取标识符信息,在交易的地址与该地址指示匹配的情况下,该信息指示应向该多个快取储存装置中的哪些装置发出探听请求。
37.如权利要求35或36所述的数据处理系统,其中:
该探听过滤器是集结合储存器,且每一交易的地址的索引部分用以辨识该探听过滤器内这样的项:将用该项的地址指示与该地址进行比较;
如若由该多交易请求规定的多个交易涉及这样的地址范围:该地址范围大至足以在处理该多个交易时需要多次参考该探听过滤器中的每一项,则探听电路系统经配置以在该探听过滤器内应用经修正的查找操作,藉此,该探听过滤器的每一项经受一次查找,自该项获得的地址指示的数个位被遮蔽,然后这些位与这些交易中的多个交易共有的遮蔽地址进行比较;及如若该比较指示匹配,则探听请求被发至与该探听过滤器中的该项关联的快取标识符信息所指示的每一快取储存装置。
38.如权利要求28所述的数据处理系统,其中:
每一快取储存装置是集结合快取储存装置,该装置具有多个高速缓存项,每一高速缓存项包括地址指示及一个或多个关联数据值,当执行由每一交易规定的快取维护操作时,该交易的地址的索引部分用以辨识这样的高速缓存项:该高速缓存项的地址指示将与该地址进行比较;
如若快取储存装置接收到来自该请求分配电路系统的多交易请求,该多交易请求辨识所述多个交易中需要由该快取储存装置执行的多个交易,且如若该多个交易中需要由该快取储存装置执行的该多个交易涉及这样的地址范围:该地址范围大至足以在执行由所述多个交易中需要由该快取储存装置执行的该多个交易所规定的快取维护操作时需要多次参考该快取储存装置的每一高速缓存项,则该快取储存装置经配置以应用经修正的高速缓存查找操作,藉此,每一高速缓存项将经受一次查找,自该高速缓存项中获得的地址指示的数个位被遮蔽,然后与所述交易中的多个交易所共有的经遮蔽地址相比较,且如若该比较指示匹配,则该高速缓存项中的一个或多个数据值将经受该快取维护操作。
39.如权利要求27所述的数据处理系统,其中一旦由该多交易请求规定的该多个交易已经全部执行后,则该快取维护追踪电路系统经配置以将单个组合响应作为该进度信息提供至该主装置。
40.如权利要求27所述的数据处理系统,其中该快取维护追踪电路系统经配置以将多个单独的进度信息条目作为该进度信息提供至该主装置,每一进度信息条目提供计数值,且该主装置经配置以累计接收到的计数值以便确定该多个交易何时已完成。
41.一种互连电路系统,该互连电路系统用于将主装置与多个快取储存装置互连,以使得由该主装置规定的快取维护操作能够由该多个快取储存装置执行,该互连电路系统包括:
主接口,经配置以接收来自该主装置的多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,该多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;
请求分配电路系统,经配置以分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定需要该多个快取储存装置中的哪些装置来执行该交易,且进一步经配置以将交易请求发至该多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及
快取维护追踪电路系统,该电路系统经配置以在该多个交易的执行期间接收来自该多个快取储存装置的进度指示,且向该主装置提供进度信息以使得该主装置能够确定该多个交易何时已完成。
42.一种在数据处理系统内执行交易的方法,该数据处理系统包括主装置、多个从属装置,及互连电路系统,该互连电路系统将该主装置与该多个从属装置耦接,以使得所述交易能够在有来自该主装置的请求时由该多个从属装置执行,该方法包括以下步骤:
自该主装置发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;
在该互连电路系统内分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定执行该交易所需的从属装置,且将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的交易;及
自每一经确定的从属装置向该主装置发出响应,以辨识由该经确定的从属装置执行的每一交易的完成情况,每一经确定的从属装置以独立于来自任何其他经确定的从属装置的响应的方式提供其自身的响应,且每一响应包括根据该基本交易识别符及该交易特定信息所确定的交易识别符,以使得该主装置能够辨识在该多交易请求内经辨识的每一交易的完成情况。
43.一种数据处理系统,包括:
主装置;
多个从属装置;
互连装置,用于耦接该主装置与该多个从属装置,以使得交易能够在有来自该主装置的请求时由该多个从属装置执行;
该主装置用于发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供基本交易识别符、指示待执行交易的数目的数量指示,及地址信息;
该互连装置包括请求分配装置,该请求分配装置用于分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定执行该交易所需的从属装置,且进一步用于将交易请求发至每一所确定的从属装置,以辨识该多个交易中将由该所确定的从属装置执行的这交易;
每一经确定的从属装置用于将响应提供至该主装置,以辨识由该经确定的从属装置执行的每一交易的完成情况,每一经确定的从属装置用于以独立于来自任何其他经确定的从属装置的响应的方式提供其自身的响应,且每一响应包括根据该基本交易识别符及该交易特定信息所确定的交易识别符,以使得该主装置能够辨识在该多交易请求内所辨识的每一交易的完成情况。
44.一种在数据处理系统内执行快取维护操作的方法,该数据处理系统包括主装置、多个快取储存装置,且互连电路系统,该互连电路系统将该主装置与该多个快取储存装置耦接以使得由该主装置规定的快取维护操作能够由该多个快取储存装置执行,该方法包括以下步骤:
自该主装置发出多交易请求,该多交易请求辨识多个待执行的交易,该多交易请求提供指示待执行交易的数目的数量指示,且地址信息,该多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;
在该互连电路系统内分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定需要该多个快取储存装置中的哪些装置来执行该交易,且将交易请求发至该多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及
在该多个交易的执行期间在该互连电路系统内接收来自该多个快取储存装置的进度指示,且向该主装置提供进度信息以使得该主装置能够确定该多个交易何时已完成。
45.一种数据处理系统,包括:
主装置;
多个快取储存装置;
互连装置,用于将该主装置与该多个快取储存装置互连,以使得由该主装置规定的快取维护操作将由该多个快取储存装置执行;
该主装置用于发出多交易请求,该多交易请求辨识多个待执行的交易,且该多交易请求提供指示待执行交易的数目的数量指示,及地址信息,该多个交易中的每一交易规定将在与该交易关联的地址处执行的快取维护操作;
该互连装置包括请求分配装置,该请求分配装置用于分析该地址信息及该数量指示,以便针对该多个交易中的每一交易确定需要该多个快取储存装置中的哪些装置来执行该交易,且进一步用于将交易请求发至该多个快取储存装置中的每一装置,以辨识该多个交易中将由该多个快取储存装置中的每一者执行的交易;及
快取维护追踪装置,该装置用于在该多个交易的执行期间接收来自该多个快取储存装置的进度指示,且用于向该主装置提供进度信息以使得该主装置能够确定该多个交易何时已完成。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1400503.7A GB2522057B (en) | 2014-01-13 | 2014-01-13 | A data processing system and method for handling multiple transactions |
GB1400503.7 | 2014-01-13 | ||
PCT/GB2015/050009 WO2015104535A1 (en) | 2014-01-13 | 2015-01-06 | A data processing system and method for handling multiple transactions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105900076A CN105900076A (zh) | 2016-08-24 |
CN105900076B true CN105900076B (zh) | 2019-12-06 |
Family
ID=50191219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580003877.9A Active CN105900076B (zh) | 2014-01-13 | 2015-01-06 | 用于处理多个交易的数据处理系统及方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9830294B2 (zh) |
EP (1) | EP3095037B1 (zh) |
JP (1) | JP6574779B2 (zh) |
KR (1) | KR102319809B1 (zh) |
CN (1) | CN105900076B (zh) |
GB (1) | GB2522057B (zh) |
IL (1) | IL245841B (zh) |
TW (1) | TWI651620B (zh) |
WO (1) | WO2015104535A1 (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102428563B1 (ko) * | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
US10157133B2 (en) | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
US10417218B2 (en) | 2015-12-23 | 2019-09-17 | Intel Corporation | Techniques to achieve ordering among storage device transactions |
CN108605055A (zh) * | 2016-02-01 | 2018-09-28 | 高通股份有限公司 | 串行链路中的可编程分布式数据处理 |
US10159053B2 (en) | 2016-02-02 | 2018-12-18 | Qualcomm Incorporated | Low-latency low-uncertainty timer synchronization mechanism across multiple devices |
KR102134801B1 (ko) * | 2016-02-26 | 2020-07-16 | 마이크로 모우션, 인코포레이티드 | 2개 또는 그 초과의 슬레이브들과의 통신 |
US9817760B2 (en) | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US9990292B2 (en) * | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
CN108228647B (zh) * | 2016-12-21 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于数据拷贝的方法和设备 |
US10042766B1 (en) | 2017-02-02 | 2018-08-07 | Arm Limited | Data processing apparatus with snoop request address alignment and snoop response time alignment |
US10402349B2 (en) * | 2017-02-08 | 2019-09-03 | Arm Limited | Memory controller having data access hint message for specifying the given range of one or more memory addresses |
US10795820B2 (en) * | 2017-02-08 | 2020-10-06 | Arm Limited | Read transaction tracker lifetimes in a coherent interconnect system |
US10812571B2 (en) * | 2017-03-17 | 2020-10-20 | Convida Wireless, Llc | Distributed transaction management in a network service layer |
CN107809480A (zh) * | 2017-10-25 | 2018-03-16 | 上海瀚银信息技术有限公司 | 一种交易整流系统 |
US10692077B2 (en) * | 2017-10-25 | 2020-06-23 | Mastercard International Incorporated | Method and system for conveyance of machine readable code data via payment network |
GB2569304B (en) * | 2017-12-12 | 2020-05-13 | Advanced Risc Mach Ltd | Regulation for atomic data access requests |
US11347667B2 (en) * | 2018-01-10 | 2022-05-31 | Qualcomm Incorporated | Bus controller and related methods |
KR102007117B1 (ko) * | 2018-01-19 | 2019-08-02 | 전북대학교산학협력단 | 트랜잭션 처리 방법 및 트랜잭션 처리 시스템 |
US10761985B2 (en) * | 2018-08-02 | 2020-09-01 | Xilinx, Inc. | Hybrid precise and imprecise cache snoop filtering |
EP3644190B1 (en) * | 2018-10-22 | 2021-06-23 | Arm Ltd | I/o coherent request node for data processing network with improved handling of write operations |
US10783080B2 (en) * | 2018-10-29 | 2020-09-22 | Arm Limited | Cache maintenance operations in a data processing system |
US10657055B1 (en) * | 2018-12-13 | 2020-05-19 | Arm Limited | Apparatus and method for managing snoop operations |
US10936048B2 (en) | 2019-03-29 | 2021-03-02 | Intel Corporation | System, apparatus and method for bulk register accesses in a processor |
US10970225B1 (en) * | 2019-10-03 | 2021-04-06 | Arm Limited | Apparatus and method for handling cache maintenance operations |
CN113448899B (zh) * | 2020-03-25 | 2024-09-06 | 瑞昱半导体股份有限公司 | 借助于交易辨识码的属性来控制数据响应的方法以及系统 |
US11281403B2 (en) * | 2020-03-26 | 2022-03-22 | Arm Limited | Circuitry and method |
JP2020173852A (ja) * | 2020-07-10 | 2020-10-22 | マイクロ モーション インコーポレイテッド | 2つ以上のスレーブとの通信 |
US20240004551A1 (en) * | 2020-10-26 | 2024-01-04 | Google Llc | Modulating Credit Allocations in Memory Subsystems |
CN112491855B (zh) * | 2020-11-19 | 2023-04-07 | 中国联合网络通信集团有限公司 | 一种handle标识解析状态的确定方法及装置 |
KR102326892B1 (ko) * | 2020-11-25 | 2021-11-16 | 오픈엣지테크놀로지 주식회사 | 적응형 트랜잭션 처리 방법 및 이를 위한 장치 |
US11899607B2 (en) * | 2021-06-01 | 2024-02-13 | Arm Limited | Sending a request to agents coupled to an interconnect |
TWI813316B (zh) * | 2022-05-31 | 2023-08-21 | 瑞昱半導體股份有限公司 | 多端資料存取控制方法與資料存取系統 |
GB2620198B (en) * | 2022-07-01 | 2024-07-24 | Advanced Risc Mach Ltd | Coherency control |
KR102697008B1 (ko) * | 2023-08-02 | 2024-08-21 | 주식회사 에이젠글로벌 | 분산된 워크플로우를 기반으로 트랜잭션을 분석하기 위한 큐 분리 방법 및 이러한 방법을 수행하는 장치 |
KR102697009B1 (ko) * | 2023-08-02 | 2024-08-21 | 주식회사 에이젠글로벌 | 분산된 워크플로우를 기반으로 트랜잭션을 분석하는 방법 및 이러한 방법을 수행하는 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023890A (zh) * | 2009-09-15 | 2011-04-20 | Arm有限公司 | 一种用于设置事务优先级的数据处理装置和方法 |
CN101122893B (zh) * | 2006-08-08 | 2012-03-21 | Arm有限公司 | 用于数据处理设备的互连逻辑 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6075740A (en) | 1998-10-27 | 2000-06-13 | Monolithic System Technology, Inc. | Method and apparatus for increasing the time available for refresh for 1-t SRAM compatible devices |
US6665730B1 (en) * | 1999-12-16 | 2003-12-16 | At&T Corp. | Method and apparatus for transaction routing in a connection-oriented packet network using a non-fault-tolerant directory server |
US6928520B2 (en) | 2000-04-30 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Memory controller that provides memory line caching and memory transaction coherency by using at least one memory controller agent |
US20030020397A1 (en) * | 2001-06-28 | 2003-01-30 | Lite Array Inc. | Enhancement of luminance and life in electroluminescent devices |
GB0122401D0 (en) | 2001-09-17 | 2001-11-07 | Ttp Communications Ltd | Interfacing processors with external memory |
ITRM20020281A1 (it) | 2002-05-20 | 2003-11-20 | Micron Technology Inc | Metodo ed apparecchiatura per accesso rapido di memorie. |
CN1174584C (zh) * | 2002-08-13 | 2004-11-03 | 北京长城鼎兴网络通信技术有限公司 | 一种利用串行总线实现多点通信的方法 |
US6981088B2 (en) | 2003-03-26 | 2005-12-27 | Lsi Logic Corporation | System and method of transferring data words between master and slave devices |
US7159084B1 (en) | 2003-12-30 | 2007-01-02 | Altera Corporation | Memory controller |
US7543088B2 (en) | 2004-03-11 | 2009-06-02 | Sonics, Inc. | Various methods and apparatuses for width and burst conversion |
US7475168B2 (en) | 2004-03-11 | 2009-01-06 | Sonics, Inc. | Various methods and apparatus for width and burst conversion |
US20050253858A1 (en) | 2004-05-14 | 2005-11-17 | Takahide Ohkami | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams |
US20070011396A1 (en) | 2005-06-30 | 2007-01-11 | Utstarcom, Inc. | Method and apparatus for bandwidth efficient and bounded latency packet buffering |
US7984202B2 (en) * | 2007-06-01 | 2011-07-19 | Qualcomm Incorporated | Device directed memory barriers |
GB2450148A (en) * | 2007-06-14 | 2008-12-17 | Advanced Risc Mach Ltd | Controlling write transactions between initiators and recipients via interconnect logic |
US8438320B2 (en) | 2007-06-25 | 2013-05-07 | Sonics, Inc. | Various methods and apparatus for address tiling and channel interleaving throughout the integrated system |
EP2297637A1 (en) * | 2008-07-02 | 2011-03-23 | Nxp B.V. | A multiprocessor circuit using run-time task scheduling |
GB2474446A (en) * | 2009-10-13 | 2011-04-20 | Advanced Risc Mach Ltd | Barrier requests to maintain transaction order in an interconnect with multiple paths |
US8972995B2 (en) | 2010-08-06 | 2015-03-03 | Sonics, Inc. | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US8656078B2 (en) * | 2011-05-09 | 2014-02-18 | Arm Limited | Transaction identifier expansion circuitry and method of operation of such circuitry |
US20130318308A1 (en) * | 2012-05-24 | 2013-11-28 | Sonics, Inc. | Scalable cache coherence for a network on a chip |
-
2014
- 2014-01-13 GB GB1400503.7A patent/GB2522057B/en active Active
- 2014-12-22 US US14/579,316 patent/US9830294B2/en active Active
-
2015
- 2015-01-05 TW TW104100099A patent/TWI651620B/zh active
- 2015-01-06 WO PCT/GB2015/050009 patent/WO2015104535A1/en active Application Filing
- 2015-01-06 EP EP15700149.6A patent/EP3095037B1/en active Active
- 2015-01-06 KR KR1020167021460A patent/KR102319809B1/ko active IP Right Grant
- 2015-01-06 CN CN201580003877.9A patent/CN105900076B/zh active Active
- 2015-01-06 JP JP2016544675A patent/JP6574779B2/ja active Active
-
2016
- 2016-05-25 IL IL245841A patent/IL245841B/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122893B (zh) * | 2006-08-08 | 2012-03-21 | Arm有限公司 | 用于数据处理设备的互连逻辑 |
CN102023890A (zh) * | 2009-09-15 | 2011-04-20 | Arm有限公司 | 一种用于设置事务优先级的数据处理装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
GB2522057A (en) | 2015-07-15 |
IL245841B (en) | 2018-12-31 |
JP2017504897A (ja) | 2017-02-09 |
CN105900076A (zh) | 2016-08-24 |
US20150199290A1 (en) | 2015-07-16 |
EP3095037B1 (en) | 2018-08-08 |
JP6574779B2 (ja) | 2019-09-11 |
GB2522057B (en) | 2021-02-24 |
TW201539196A (zh) | 2015-10-16 |
KR102319809B1 (ko) | 2021-11-01 |
EP3095037A1 (en) | 2016-11-23 |
TWI651620B (zh) | 2019-02-21 |
WO2015104535A1 (en) | 2015-07-16 |
KR20160107233A (ko) | 2016-09-13 |
GB201400503D0 (en) | 2014-02-26 |
IL245841A0 (en) | 2016-07-31 |
US9830294B2 (en) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105900076B (zh) | 用于处理多个交易的数据处理系统及方法 | |
US11907528B2 (en) | Multi-processor bridge with cache allocate awareness | |
US7600078B1 (en) | Speculatively performing read transactions | |
US7093079B2 (en) | Snoop filter bypass | |
US7917699B2 (en) | Apparatus and method for controlling the exclusivity mode of a level-two cache | |
US7398361B2 (en) | Combined buffer for snoop, store merging, load miss, and writeback operations | |
US8904045B2 (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
US10079916B2 (en) | Register files for I/O packet compression | |
US9135177B2 (en) | Scheme to escalate requests with address conflicts | |
IE990755A1 (en) | Non-uniform memory access (numa) data processing system that speculatively issues requests on a node interconnect | |
US20130054896A1 (en) | System memory controller having a cache | |
KR20210041485A (ko) | 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스 | |
US7797495B1 (en) | Distributed directory cache | |
US6687795B2 (en) | Data processing system and method of communication that reduce latency of write transactions subject to retry | |
US7296167B1 (en) | Combined system responses in a chip multiprocessor | |
US20090006712A1 (en) | Data ordering in a multi-node system | |
CN117916724A (zh) | 数据删除 | |
US10963409B2 (en) | Interconnect circuitry and a method of operating such interconnect circuitry | |
US8131947B2 (en) | Cache snoop limiting within a multiple master data processing system | |
CN112559434B (zh) | 一种多核处理器及核间数据转发方法 | |
US6757793B1 (en) | Reducing probe traffic in multiprocessor systems using a victim record table | |
US8099560B2 (en) | Synchronization mechanism for use with a snoop queue | |
US7035981B1 (en) | Asynchronous input/output cache having reduced latency | |
US20080298246A1 (en) | Multiple Link Traffic Distribution | |
US6266777B1 (en) | Information processing apparatus to control bus latency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |