CN117099087A - 用于处理储存请求的装置和方法 - Google Patents
用于处理储存请求的装置和方法 Download PDFInfo
- Publication number
- CN117099087A CN117099087A CN202280025398.7A CN202280025398A CN117099087A CN 117099087 A CN117099087 A CN 117099087A CN 202280025398 A CN202280025398 A CN 202280025398A CN 117099087 A CN117099087 A CN 117099087A
- Authority
- CN
- China
- Prior art keywords
- address
- store request
- request
- circuitry
- storage
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 190
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013519 translation Methods 0.000 claims abstract description 88
- 230000004044 response Effects 0.000 claims abstract description 15
- 230000001419 dependent effect Effects 0.000 claims abstract description 6
- 230000008878 coupling Effects 0.000 claims abstract description 4
- 238000010168 coupling process Methods 0.000 claims abstract description 4
- 238000005859 coupling reaction Methods 0.000 claims abstract description 4
- 230000009471 action Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 10
- 230000008685 targeting Effects 0.000 claims description 3
- 230000014616 translation Effects 0.000 description 73
- 230000008569 process Effects 0.000 description 17
- 238000013507 mapping Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
Classifications
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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
-
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
描述了用于处理储存请求的装置和方法。该装置具有:处理元件,该处理元件具有用于存储供该处理元件访问的数据的相关联的存储结构;以及接口,该接口用于将该处理元件联接到互连电路。还提供了储存请求处理电路,该储存请求处理电路响应于在该接口处从该互连电路接收到以该存储结构为目标的储存请求而使得与该储存请求相关联的数据块被存储在该存储结构内。该储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥。地址转换电路用于通过执行取决于由该储存请求标识的该地址空间密钥的地址转换来将由该储存请求标识的该给定地址转换为该对应物理地址。该储存请求处理电路然后响应于由该地址转换电路确定的该对应物理地址而使得该数据块被存储在该存储结构内与该物理地址相关联的位置处。
Description
背景技术
本技术涉及用于处理储存(stash)请求的装置和方法。
在数据处理系统中,多个组件可以通过互连电路互连,以便允许这些组件之间的通信。组件可包括可执行数据处理操作的多个处理元件,其中由那些处理元件处理的数据可在由那些处理元件经由互连电路访问的存储器中访问。
在一些实例中,处理元件中的一个处理元件可被布置成代表另一个处理元件执行多个处理任务,并且因此生成另一个处理元件可随后需要的数据。使该数据可用于另一个处理元件的一种方式是使生成该数据的处理元件将该数据写入存储器中随后需要该数据的另一个处理元件也可访问的位置。然而,可能存在与执行对存储器的访问相关联的显著等待时间以及与此类访问相关联的显著能量消耗。
为了缓解此类的问题,已知允许代表第二处理元件生成数据的第一处理元件经由互连电路发出使得所生成的数据被直接存储到第二处理元件的本地存储结构中的储存请求,该过程被称为储存操作。这样的方法由此减少与第二处理元件随后设法访问数据相关联的等待时间,并且还可通过减少访问主存储器的需要而减少能量消耗。
期望提供一种更灵活的机构来执行此类储存操作。
发明内容
在一个示例布置中,提供了一种装置,该装置包括:处理元件,该处理元件具有用于存储供处理元件访问的数据的相关联的存储结构;接口,该接口用以将处理元件联接到互连电路;储存请求处理电路,该储存请求处理电路响应于在接口处从互连电路接收到以存储结构为目标的储存请求而使与储存请求相关联的数据块被存储在存储结构内,其中储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥;以及地址转换电路,该地址转换电路用以通过执行取决于由储存请求标识的地址空间密钥的地址转换来将由储存请求标识的给定地址转换为对应物理地址;其中储存请求处理电路响应于由地址转换电路确定的对应物理地址而使得数据块被存储在存储结构内与物理地址相关联的位置处。
在另一示例性布置中,提供了一种处理储存请求的方法,该方法包括:提供处理元件,该处理元件具有用于存储供处理元件访问的数据的相关联的存储结构;将处理元件联接到互连电路;采用储存请求处理电路,该储存请求处理电路响应于从互连电路接收到以存储结构为目标的储存请求而使与储存请求相关联的数据块被存储在存储结构内,其中储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥;采用地址转换电路,该地址转换电路用以通过执行取决于由储存请求标识的地址空间密钥的地址转换来将由储存请求标识的给定地址转换为对应物理地址;以及响应于由地址转换电路确定的对应物理地址,使得数据块被存储在存储结构内与物理地址相关联的位置处。
附图说明
将参考如附图所示的本技术的示例,仅以例示的方式进一步描述本技术,其中:
图1是根据一个示例性布置的系统的框图;
图2示出了根据一个示例性布置的为了处理储存请求在系统的多个组件之间的交互;
图3是示出根据一个示例性布置的储存请求的处理的流程图;
图4A是示出根据一个示例性布置可如何重新映射用于储存的地址空间的流程图;并且
图4B示出了根据一个示例性具体实施可如何更改用于储存请求的目标。
具体实施方式
在典型的已知系统中,储存请求提供标识与作为该储存请求的结果的要写入的数据相关联的存储器中的位置的物理地址,并且还提供用于确定要写入该数据的目标处理元件和/或其相关联的存储结构的目标标识符。互连然后可以基于指定的目标标识符将储存请求路由到期望的目标,使得与储存请求相关联的数据然后可以根据指定的物理地址被写入目标处理元件的相关联的存储结构的位置。目标处理元件的相关联存储结构可采取各种形式,但在一个示例性具体实施中可为该目标处理元件可访问的高速缓存存储装置。
如先前所提及的,通过允许生成数据以供第二处理元件后续使用的第一处理元件发出储存请求以使得所生成的数据被直接存储在第二处理元件的本地存储结构内,这可以显著地改善性能,减少否则将由于对主存储器的访问而引起的等待时间和/或能量消耗。然而,这种基于随储存请求提供物理地址的方法产生一些约束,这可能抑制使用此类储存请求的灵活性。根据本文所述的技术,提供了用于执行储存操作的更灵活的机构。
特别地,根据本文描述的技术,提供了一种装置,其具有:处理元件,该处理元件具有用于存储供处理元件访问的数据的相关联的存储结构;以及接口,该接口用以将处理元件联接到互连电路。此外,该装置具有储存请求处理电路,该储存请求处理电路响应于经由接口从互连电路接收到以处理元件的存储结构为目标的储存请求而使得与储存请求相关联的数据块被存储在存储结构内。储存请求处理电路可以采取多种形式。例如,它可以在一个示例性具体实施中被设置在处理元件内,但是在另一示例性具体实施中可以是用于控制对存储结构的访问的控制逻辑的一部分,例如在其中存储结构是高速缓存的示例性具体实施中形成高速缓存访问控制电路的一部分。
与其中储存请求标识物理地址的已知技术相比,根据本文中描述的技术,储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥。给定地址可以采取多种形式,但是在其可用于标识存储器中与作为储存请求的主题的数据相关联的物理地址之前需要转换。在一个示例性具体实施中,给定地址可为虚拟地址,而在另一示例性具体实施中,给定地址可为中间物理地址。
如本领域的葡萄技术人员将理解,在设备上执行的不同过程可被给予不同虚拟地址空间。例如,设备的操作系统可以向不同的过程分配不同的虚拟地址空间。在单阶段地址转换过程中,可使用合适的地址转换机构将虚拟地址转换为物理地址,通常此类地址转换机构利用存储器中的一个或多个页表,该页表用于标识应如何将虚拟地址转换为对应物理地址。为特定虚拟地址确定的物理地址将取决于所讨论的特定虚拟地址空间。
在一些系统中,并非存在将虚拟地址转换为物理地址的单阶段地址转换,而是可能需要多阶段地址转换过程。例如,在使用管理程序来使多个客户操作系统能够被支持的具体实施中,客户操作系统控制的转换可以用于在地址转换的阶段1期间将虚拟地址转换为中间物理地址,而在地址转换的阶段2处,管理程序控制的转换可用于将中间物理地址转换为最终物理地址。在此类系统中,作为储存请求的一部分而提供的给定地址可以是虚拟地址或中间物理地址中的任一者。
为了使给定地址的适当转换能够被执行,储存请求还标识地址空间密钥。该地址空间密钥可采取多种形式,但用于促进对给定地址的正确解译,并且尤其使得能够将给定地址适当地转换成存储器中的对应物理地址。通过非限制性示例,地址空间密钥可以采取过程地址空间ID(PASID)的形式(如由诸如PCIe G5、CXL、GenZ等的协议标准化的)。然而,另选地,它可以包括虚拟机标识符(VMID)或地址空间标识符(ASID)中的一者或多者。
该装置还具有地址转换电路,该地址转换电路被布置成通过执行取决于由储存请求标识的地址空间密钥的地址转换来将由储存请求标识的给定地址转换为对应物理地址。特别地,通过向地址空间密钥提供储存请求,这使得地址转换电路能够确定如何解释给定地址,特别是如何将该给定地址转换成存储器中的正确物理地址。一旦地址转换电路已经确定了对应物理地址,随后储存请求处理电路就被布置成使得与储存请求相关联的请求相关联的数据块被存储在存储结构内与物理地址相关联的位置处。
这样的方法在使用储存请求时提供了显著增强的灵活性。特别地,一旦已经向储存请求的生成器提供了用于储存请求的适当的给定地址范围以及相关联的地址空间密钥,则即使在系统中的其他地方做出更改与地址空间密钥相关联的地址映射的决定,它也可以继续发出储存请求,以便调整与储存请求相关联的实际物理地址。这例如将允许作为此类储存请求的目标的处理元件更改由储存请求提供的数据被存储在何处,而不需要对那些储存请求的生成器的操作进行任何改变。
存在地址转换电路可使用地址空间密钥来影响给定地址如何被转换成对应物理地址的多种方式。然而,在一个示例性具体实施中,地址转换电路被布置成引用存储器中的一个或多个页表来确定地址转换,并且地址空间密钥被地址转换电路用来标识至少一个页表。例如,地址空间密钥可用于使得地址转换电路能够标识存储器内的至少一个页表的页表基地址,从而解锁正确的页并使得能够执行适当的转换。
在一个示例性具体实施中,可执行多级地址转换过程,并且地址空间密钥可被用来标识第一级页表的基地址。然后可以使用给定地址的一部分来标识该第一级页表内的特定条目,其中该标识的条目然后向下一级页表提供基地址。然后可以使用给定地址的另外部分来标识该页表中的特定条目,其中该条目标识下一级页表的基地址。该过程继续直到标识最终级页表,其中该最终级页表中的条目标识物理地址信息。
应当注意,这样的多级地址转换可以在地址转换的每个阶段处使用。因此,虽然可存在将虚拟地址转换为物理地址的单阶段地址转换,但在其他系统中,如先前所提及的,可存在将虚拟地址转换为中间物理地址的第一阶段地址转换以及将中间物理地址转换为物理地址的第二阶段地址转换,并且在这些阶段中的任一者或两者处可使用多级地址转换。
如先前所提及的,无论储存请求所指定的给定地址采取什么形式,例如不管它是虚拟地址还是中间物理地址,地址空间密钥都可用于标识在将该给定地址转换成对应物理地址时要使用的相关页表。
在一个示例性具体实施中,处理元件在至少一种操作模式中被使能来根据地址空间密钥来修改由地址转换电路执行的地址转换,以便更改由标识地址空间密钥的后续储存请求所标识的给定地址如何被转换成对应物理地址。因此,至少在一些操作模式中,作为使用特定地址空间密钥的储存请求的目标的处理元件可以更改关于由那些储存请求指定的给定地址执行的地址转换,以便更改那些给定地址到物理地址的映射。如果需要,更改地址转换的能力可以限于某些可信的执行环境。例如,这种修改地址转换的能力可被限制于管理程序和/或限制于在处理元件上运行的管理程序软件。
这提供了很大的灵活性,因为这意味着处理元件可更改由储存请求作为目标的物理地址,而不需要寻求对由那些储存请求的生成器发出的储存请求的形式进行任何改变。实际上,这种活动对于储存请求的生成器将是完全透明的。当相关联的存储结构是高速缓存时,此类步骤可以被用来更改例如高速缓存的物理数据阵列或存储设备,在该高速缓存中存储储存的数据。例如,在组关联高速缓存中,将存储储存数据项的实际组将取决于与储存数据相关联的物理地址。在其他具体实施中,存储结构可以不是高速缓存,而是可以是处理元件可用的一些本地存储缓冲器空间。使用上述技术,处理元件可以例如分配新的本地存储缓冲器,后续储存数据被存储到该本地存储缓冲器中,其中地址转换被更改,使得针对停止储存指定的每个给定地址然后将映射到新的本地存储缓冲器内的物理地址。
在一个示例性具体实施中,该装置还包括互连电路,该互连电路用于互连联接到互连电路的多个元件。多个元件可以包括其相关联的存储结构正被用作用于储存请求的目标的较早提及的处理元件,并且还可以包括储存请求的生成器。生成器或储存请求可以采取多种形式,但是在一个示例性具体实施中,这样的储存请求生成器可以是硬件加速器设备,该硬件加速器设备的任务是代表具有相关联的存储结构的处理元件执行某些操作。此类硬件加速器设备通常能够比在通用中央处理单元(CPU)上运行的软件中可能的更高效地执行某些功能,并且因此将某些任务委托给此类硬件加速器设备可以是高效的。存在可以用作储存请求生成器的许多不同类型的硬件加速器设备,例如图形处理单元、数字信号处理器、密码加速器等。
在一个示例性具体实施中,每个储存请求进一步提供目标标识符,并且互连电路包括用于将联接到互连电路的多个元件中的每个元件与相关联的目标标识符相关联的路由存储装置。互连电路随后响应于由储存请求生成器产生的每个储存请求的接收来引用路由存储装置以便确定该储存请求将由互连电路路由到的目标元件。
除了仅管理在不同元件之间通过互连电路的通信的路由之外,互连电路还可以执行另外的功能。例如,互连电路可具有一致性管理电路以维持可由多个元件访问的数据的一致性。例如,这些元件中的多个元件可具有允许数据的本地副本被这些元件高速缓存的高速缓存结构,并且重要的是确保当元件对可被高速缓存的数据项作出请求时,该元件访问该数据项的最新版本。为了管理该过程,一致性管理电路可以设法以确保所请求数据的最新版本被访问的方式来处理可高速缓存的访问请求。这可涉及向一个或多个元件及其相关联的高速缓存存储装置发出监听请求,以使得这些监听请求的接收方采取某些动作。此类动作可例如涉及使存储在高速缓存中的数据项的本地副本无效,以及/或者将存储在该高速缓存内的该数据项的副本返回到一致性管理电路。
当处理储存请求时,则确保维持这样的一致性也是重要的,其中作为储存请求的主题的数据是可以在系统中的别处被高速缓存的类型。因此,这样的储存请求处理电路可被布置成来触发一致性管理电路执行一致性动作,以便确保与储存请求相关联的数据块的一致性。所需的一致性动作可以采取各种形式,但是可以例如确保已经在与储存请求相关联的物理地址处高速缓存了数据副本的连接到互连件的任何其他元件使其数据副本无效,使得与储存请求相关联地提供的数据然后被视为该物理地址处的数据的最新版本。通过使任何其他高速缓存的副本无效,一致性管理电路然后可以在其记录中标识出,该储存请求的目标是保持该数据的最新版本的元件,然后该信息在适当的时候可与由可能正在寻求访问该物理地址处的数据的任何元件发出的后续访问请求结合使用。
为了使一致性管理电路能够执行这样的一致性动作,通常有必要向一致性管理电路提供所讨论的数据的物理地址。因此,在一个示例性具体实施中,储存请求处理电路被布置成一旦地址转换电路已经确定了对应物理地址,就触发一致性管理电路以执行一致性动作。
为了帮助维持一致性,则在一个示例性具体实施中,储存请求处理电路被布置成推迟将与储存请求相关联的数据块存储到存储结构中,直到已经从一致性管理电路接收到完成信号以确认可以发出访问该数据块的后续请求的多个元件中的任何元件将访问该数据块的最新版本。
一致性管理电路发出完成信号的定时可以根据具体实施而改变。例如,在一些具体实施中,如果一致性管理电路处于确保由一致性管理电路接收到的对所讨论的数据的任何后续访问请求将导致数据的最新版本被访问的位置,则一致性管理电路可以在经受一致性管理电路的监听请求的元件必须采取所有所需的一致性动作之前发出完成信号。储存请求处理电路对完成信号的接收有效地通知储存请求处理电路,从一致性的观点来看,现在将与储存请求相关联的数据块存储到存储结构中是安全的。
在一个示例性具体实施中,该储存请求被布置成使得相关联的数据块被存储在该存储结构中并且被标记为唯一地存储在该存储结构中,并且一致性管理电路被布置成使得该数据块的任何副本在联接到该互连电路的元件可访问的任何其他本地存储结构中无效。
通过这样的方法,由于已知存储结构是存储数据块的唯一实体并且其存储数据的最新版本,因此可以通过确保使用现在储存在存储结构中的数据块的副本来执行访问,来确保可以正确地服务访问数据块的任何后续请求。
在一个示例性具体实施中,响应于储存请求而将被写入存储结构的数据块与原始储存请求一起提供。然而,在另选的具体实施中,数据块本身可以不在发出储存请求时提供,相反,一旦已经接收到完成信号,储存请求处理电路就可被布置成经由接口发出请求以从该储存请求的生成器获得数据块。在这一点上,通常不需要采取任何另外的一致性动作,因为已知生成器具有数据的唯一有效副本,并且该数据因此可以仅被提供给储存请求处理电路以用于存储在存储结构内。
除了本技术在使得物理地址映射能够被更改而不需要改变储存请求的生成器的行为方面能够提供的灵活性之外,还能够实现进一步的附加灵活性。例如,在一个具体实施中,路由存储装置可以是可修改的,以便改变与给定目标标识符相关联的元件,从而更改标识给定目标标识符的后续储存请求被路由到的目标元件。因此,例如,至少当在某些操作模式中时,具有最初是储存请求的目标的相关联的存储结构的处理元件可以使得针对将结合此类储存请求使用的给定目标标识符修改路由存储装置,以便允许改变储存请求的实际物理目标而不需要修改储存请求的生成器的行为。这种修改路由存储装置的能力可被例如给予管理程序和/或给予在处理元件上运行的管理程序软件。
这在处理储存请求时提供了显著增强的灵活性。例如,处理元件可以决定将这种生成的储存数据的下游处理卸载到系统中的另一个元件,例如计算存储设备。通过改变路由存储装置中的目标标识符,这将导致后续储存请求被路由到该计算存储设备,使得计算存储设备然后将负责解释与每个后续储存请求一起提供的给定地址。此外,通过改变与地址空间密钥相关联的物理地址映射,这可以被布置成使得那些后续储存请求以该计算存储设备内的物理地址为目标。应当注意,这种改变可以在不需要改变储存请求的生成器的行为的情况下实现,并且那些储存请求的重定向对于那些储存请求的生成器是完全透明的。
存在可以设置储存请求的生成器以执行此类储存操作的多种方式。在一个示例性具体实施中,处理元件被布置成向储存请求的生成器提供给定地址范围和地址空间密钥,以供储存请求的生成器在生成以处理元件的相关联存储结构为目标的储存请求时使用。处理元件还可以向储存请求的生成器提供在发出此类储存请求时要使用的目标标识符。将该信息提供给储存请求生成器的定时可以根据具体实施而改变。然而,在一个示例性具体实施中,在将设置储存请求的生成器以代表处理元件执行任务的时间点,则可以将上述信息提供给储存请求的生成器,以便后续在发出那些储存请求时使用。
在一个示例性具体实施中,处理元件被布置成经由到互连电路的接口向存储器发出正常访问请求。因此,将会看到,在此类具体实施中,储存请求以与传统访问请求相反的方向流过接口。特别地,传统访问请求通常以存储器为目标,并且由处理元件通过其相关联的接口向互连电路发出以向前传播到存储器。相比之下,由互连电路从源处理元件(前面提到的储存请求的生成器)接收储存请求,并且然后通过互连电路将这些储存请求路由到与目标处理元件相关联的接口,以便由与该目标处理元件相关联的储存请求处理电路进行处理,以便使得储存数据被存储在该目标处理元件的相关联的存储结构内。
如先前所提及的,存储有存储数据的相关存储结构可以采取多种形式。例如,在一个示例性具体实施中,它可以是高速缓存,并且在此类实例中,应当理解,高速缓存内存储数据的位置(例如,在组关联高速缓存的示例中的高速缓存内的组)可以取决于物理地址。然而,不要求相关联的存储结构是高速缓存,并且因此例如在另一具体实施中,相关联的存储结构可以是处理元件可访问的存储器映射存储装置。例如,在由储存请求作为目标的处理元件是CPU的情况下,其可以具有带有唯一物理地址范围的一些本地缓冲器存储装置,并且通过适当地指定由储存请求的生成器使用的给定地址范围和地址空间密钥,可以使储存数据被存储在这样的缓冲器内的物理地址范围内。
作为另一示例性用例,可在非均匀存储器访问(NUMA)架构内采用上述技术,其中提供可位于不同NUMA节点中的多个处理器,每一NUMA节点具有主存储器的一部分。在此类示例中,相关联的存储结构可以是主存储器的一部分,该主存储器在与以储存请求为目标的处理器相同的NUMA节点中,这样的方法使得例如储存请求能够被源处理器用来将数据写入到另一NUMA节点的NUMA存储器中。
现在将参考附图描述特定示例。
图1是根据一个示例性具体实施的系统的框图。如图1所示,多个元件10、45、60、65、70、95、100经由互连电路75联接在一起。元件可以采取各种形式,例如图1中所示的处理设备10、45(其可以例如采取中央处理单元(CPU)的形式)、图形处理单元(GPU)60、一个或多个加速器设备65、系统存储器管理单元(SMMU)、主存储器95和计算存储设备100。应当理解,这些仅仅是可以连接到互连电路的元件的示例,并且可以提供任何其他合适的元件。
处理设备10或实际上处理设备45是其中可采用本文所述技术的装置的示例。图1更详细地示出了设置在处理设备10内的组件中的一些组件,并且处理设备45可以类似地构造。特别地,处理设备10可以包括处理元件15,诸如处理流水线,用于例如响应于从存储器95获取的指令来执行数据处理操作。当执行此类数据处理操作时,处理元件可以访问一些通用寄存器20,该通用寄存器用于临时存储在执行数据处理操作时由处理元件15操纵的数据。
在此类数据处理操作的执行期间,处理元件15可发出试图访问保存在存储器95中的指令和/或数据的存储器访问请求,并且这些存储器访问请求可以经由存储器管理单元(MMU)32来路由,该存储器管理单元用于相对于这些访问请求所指定的地址来执行地址转换。特别地,由处理元件发出的访问请求可以不直接指定存储器95中与正被访问的数据相关联的物理地址,而是可以指定需要转换以便识别存储器中的物理地址的虚拟地址或中间物理地址。通过使用这样的技术,可以将不同的地址空间分配给正由处理设备10执行的不同过程。
MMU 32可包括用于执行此类地址转换操作的地址转换电路25,并且在图1中所示的示例中,引用存储器中提供的一个或多个页表99来执行此类地址转换。如本领域的普通技术人员将理解,可执行多级地址转换,从而需要访问多个页表以便将虚拟地址转换成物理地址,或实际上将中间物理地址转换成物理地址,并且因此可能需要由地址转换电路25访问多个不同页表。为了加速地址转换过程,已知将从页表99检索的页表描述符信息中的一些高速缓存在存储器中,并且特别地将描述符信息本地存储在转换后备缓冲器(TLB)30内,该TLB可被视为形成MMU 32的部分。
关于正由处理元件发出的访问请求所访问的信息,已知提供一个或多个级别的高速缓存,该高速缓存可用于存储保存在存储器95中的信息的子集,以便提高对该信息的访问速度。本文中描述的技术特别感兴趣的是处理元件15在执行其数据处理操作时访问的数据,并且可以提供一个或多个级别的数据高速缓存以用于存储保存在存储器95中的数据的子集。在图1中,高速缓存35因此可以被提供以用于存储该数据的子集。
如图1中所示,一旦MMU 32已确定与由处理元件输出的地址相关联的物理地址,就可在高速缓存35内执行查找操作以确定数据是否存在于高速缓存内,并且如果存在,则可在高速缓存中访问作为访问请求的主题的数据,而不需要访问主存储器95。然而,在高速缓存中未命中的情况下,访问请求可经由接口12通过互连电路75传播,以经由其相关联的接口97路由到存储器95。
如先前所讨论的,处理设备45可以以相同的方式构造,但是为了简单起见,除了高速缓存50之外,省略了处理设备45的内部细节。
各种设备可以被用作硬件加速器来代表处理设备10或处理设备45执行某些任务。一个示例是GPU 60,其可被布置成代表处理设备10、45执行图形处理操作。然而,也可以提供其他硬件加速器设备,在图1中一般由加速器设备65示出。应当理解,可以提供各种不同类型的加速器设备,例如数字信号处理器、密码加速器等。
对于由系统中的一些组件发出的访问请求,这些组件可以具有它们自身的本地地址转换电路,诸如图1中关于具有其自身的MMU 32的处理设备10所图示的情况。然而,其他设备可利用连接到互连电路的系统MMU 70。因此,对于加速器设备65发出的请求,系统MMU70可用于执行所需的地址转换以标识正被访问的物理地址。GPU 60还可出于此目的来利用系统MMU 70。然而,另选地,硬件加速器设备(诸如GPU 60)也可具有其自身的内部MMU 62,其中该MMU与系统MMU 70组合使用以代表GPU执行地址转换。例如,GPU可使用多阶段地址转换过程,每个阶段包括多个级,并且在这种情况下,阶段一地址转换可由GPU 60的MMU 62执行以便将虚拟地址转换成中间物理地址,并且系统MMU 70可随后用于执行阶段二地址转换以便将中间物理地址转换成存储器95内的最终物理地址。
可以连接到互连电路75的另一示例性类型的设备是计算存储设备100。这实质上可以被认为是提供非易失性存储装置105的区域(其可以形成具有在整个存储器物理地址范围内的某个物理地址范围的存储器映射存储装置)以及可以相对于存储在非易失性存储105内的数据执行某些特定操作的一些相关联的计算处理电路。
如图1所示,互连电路75可包括路由存储装置80,该路由存储装置可用于将连接到互连电路75的多个元件中的每个元件与相关联的目标标识符相关联。在图1所示的示例中,可以看出,元件10、45、60、65、70、95和100中的每个元件都具有相关联的接口块12、47、62、67、72、97和102,这些元件经由这些接口块连接到互连电路,并且因此路由存储装置可以为这些接口块中的每个接口块标识相关联的目标标识符。当元件向互连电路发出请求时,它们可以指定相关联的目标标识符,并且引用路由存储装置80,互连电路75然后可以将请求路由到适当的实体。
在其中元件中的一个或多个元件具有其中可存储保存在存储器中的数据的副本的本地高速缓存结构的系统中,然后互连电路还可设置有一致性管理电路85以用于维持数据的一致性,并且特别地维持保存在存储器中的任何可高速缓存数据的一致性。多种已知高速缓存一致性协议中的任一种高速缓存一致性协议可由一致性管理电路实现以便维持数据的一致性,以便确保当任何元件请求访问存储器的可高速缓存区域内的数据时,该元件将访问数据的最新版本。如图1中的虚线框90所示,除了与连接到互连件的元件中的一个或多个元件相关联地提供的高速缓存之外,还可提供系统级高速缓存90,该系统级高速缓存可被任务形成由互连电路提供的组件中的一个组件,并且通常可与一致性管理电路85相关联,一致性管理电路还相对于存储在这样的系统高速缓存内的数据维持一致性。
根据本文描述的技术,连接到互连电路的元件中的一个或多个元件可以充当储存请求的生成器。与以存储器为目标的正常存储器访问请求相比,储存请求替代地标识联接到该储存请求所指向的互连电路的特定目标元件,并且使得由储存请求指定的数据被直接存储在该目标元件的相关联的存储结构内。虽然储存请求所指向的相关联的存储结构可以采取多种形式,但是为了以下描述的目的,将假设相关联的存储结构是处理元件中的一个处理元件内的高速缓存。
因此,通过特定示例,GPU 60或实际上其他加速器设备65中的一个加速器设备可被布置成代表处理设备10执行多个数据处理任务,以便生成接着随后由处理设备10使用的数据。虽然可经由一个或多个标准存储器访问请求将该数据写入到存储器95,但通过使用储存请求,GPU 60或其他加速器设备65可替代地使得将所生成的数据直接写入到处理设备10的高速缓存35中,由此通过避免将与处理设备10必须随后访问来自存储器95的数据相关联的等待时间和/或能量消耗而提高性能。
通常,这样的储存请求将标识与正被写入的数据相关联的物理地址,并且提供目标标识符,该目标标识符然后可以在路由存储装置80内被查找以便标识储存请求的目标。因此,如果GPU 60正在发出以处理设备10内的高速缓存35为目标的储存请求,则它可提供标识处理设备10和/或高速缓存35的目标识别符,并且还提供然后可由处理设备10使用以标识应将数据写入高速缓存内的何处的物理地址。特别地,应当理解,这样的物理地址可用于标识高速缓存内的组,然后将该储存数据写入所标识的组内的可用高速缓存行中。
如图1所示,处理设备10,或者实际上是任何储存请求的接收方,可以被设置有储存请求处理电路40以用于处理从互连电路接收的储存请求,以使得由那些储存请求标识的数据被写入到相关联的存储结构中,诸如高速缓存35。根据本文所述的技术,储存请求生成器(诸如GPU 60或加速器设备65)不发出物理地址,而是提供需要转换为存储器中的对应物理地址的给定地址。给定地址可采取多种形式,但是例如可以是虚拟地址或中间物理地址。
此外,为了使得该储存请求的接收方能够正确地处理该储存请求,该储存请求还可以标识地址空间密钥,该地址空间密钥可以被接收方处理设备用来使得能够执行适当的地址转换。地址空间密钥可以采取多种形式,并且可以例如包括虚拟机标识符、地址空间标识符或过程地址空间标识符(PASID)中的一者或多者。为了以下讨论的目的,将假设使用PASID。
通过使用这样的地址空间密钥,这可以使得储存请求处理电路40能够采用标准地址转换电路(诸如MMU 32内的地址转换电路25)的服务来执行地址转换。特别地,通过向地址转换电路25提供地址空间密钥,该地址转换电路然后可以使用该密钥来标识哪些页表将被用于执行地址转换。例如,地址空间密钥可用于标识执行地址转换所需的第一级页表的基地址。因此,当储存请求处理电路40接收到上述类型的储存请求时,它然后可以向MMU 32发出信号以使得地址转换电路25执行与储存请求一起提供给定地址的地址转换(为了以下讨论的目的,将假设该给定地址是虚拟地址),其中该地址转换是根据由储存请求标识的地址空间密钥来执行的,该地址空间密钥也可以由储存请求处理电路40提供给MMU 32。
一旦地址转换电路已经确定了物理地址,随后储存请求处理电路就可使得与储存请求相关联的请求相关联的数据块被存储在相关联的存储结构(例如,高速缓存35)内与物理地址相关联的位置处。
通过这种方法,这使得能够虚拟化对储存请求的处理,提供关于如何处理储存请求的大量灵活性,而不需要修改那些储存请求的生成器的行为。特别地,在处理设备(诸如处理设备10)设置硬件加速器(诸如GPU 60)以代表其执行一些任务时,其可以向GPU提供合适的虚拟地址范围以及当发出储存请求时要使用的地址空间密钥。另外,它可以提供要与那些储存请求一起发出的目标标识符,以便确保那些储存请求被路由到适当的元件,例如被路由回到处理设备10以使得储存数据能够被存储在高速缓存35内。
然而,因为储存请求现在不再使用物理地址,这使得处理设备能够对相对于使用指定的虚拟地址范围和地址空间密钥发出的储存请求所使用的地址映射做出某些改变,以便使得例如那些储存请求的目的地能够被更改,而不需要通知GPU或对GPU生成储存请求的方式做出任何改变。稍后将参考图4A和图4B讨论由这样的方法提供的灵活性的更多细节。
图2是示出当处理储存请求时在图1的系统内的各种元件之间的通信的图,并且图3是示出当处理储存请求时执行的步骤的相关联流程图。首先考虑图3,然后在步骤200处,要成为储存请求的接收方的处理元件(其在本文中也可以被称为储存请求接受者(stashee))可以向其正在请求代表其执行操作的设备(在这种情况下,将生成储存请求的设备(并且因此在本文中可以被称为储存请求生成者(stasher))提供合适的虚拟地址范围、用作地址空间密钥的PASID、以及在发出储存请求时要使用的目标标识符。
一旦已经以这种方式设置了储存请求的生成器,其随后就可以代表储存请求接受者执行数据处理操作,并且如步骤205所指示的,接着随后可以生成储存请求。这在图2中由从储存请求的生成器传递到目标设备中的储存请求处理电路的线110示出,该储存请求处理电路例如可以是图1所示的储存请求处理电路40。如先前所讨论的,互连电路将引用路由存储装置80以便确定如何路由储存请求,并且特别地确定储存请求的目标,其中储存请求然后通过互连件并且经由适当的接口被路由到目标设备。这由图3中的步骤210指示。
储存请求处理电路40可以对所接收的储存请求执行一些初步分析,并且如图2中的箭头120所示,在某些情况下可以拒绝储存请求。例如,储存请求处理电路40能够确定储存请求是无效的,例如由于指定了无效的地址空间密钥(在图2的示例中为无效的PASID值)。
然而,假设通过了任何此类初始检查,则如图3的步骤215以及图2中的箭头115所指示的,目标设备中的储存请求处理电路可以联系相关联的MMU以请求相对于由储存请求指定的虚拟地址执行地址转换。作为传递到MMU的信息的一部分,还将提供地址空间密钥以及虚拟地址。
如图2中的气泡125所指示的,MMU可在本地TLB中执行查找以便确定所需的地址转换信息是否可用于所提供的虚拟地址和地址空间密钥。如果是,则在TLB内发生命中,并且所需的物理地址可被返回到储存请求处理电路,如图2中的箭头130所指示的。另选地,如果在TLB中未检测到命中,或TLB中的命中仅提供部分地址转换,那么可如图2中所示发起页表遍历过程135,以便访问存储器95内的一个或多个页表99,以便检索所需的地址转换信息。该检索的信息然后可以被存储在TLB 30内,但是另外将使得所需的物理地址能够被输出到储存请求处理电路,如由箭头140所指示的。
如图3中的步骤220所指示的,当从MMU接收到物理地址时,储存请求处理电路可以向一致性管理电路85发送一致性请求,从而提供物理地址。需要由一致性管理电路执行的一致性动作将取决于具体实施,并且取决于正在执行的储存请求的类型。然而,在图2的示例中,假设原始储存请求是“使无效”储存请求,因此标识存储由以上地址转换过程标识的物理地址的数据的高速缓存副本的任何高速缓存应当无效,因为将由储存请求提供的数据将替换该数据的任何先前版本,并且因此任何此类高速缓存副本将过时。因此,在这样的示例性具体实施中,从储存请求处理电路向一致性管理电路发出的一致性请求将是使唯一(MU)请求,并且将指定已经参考地址转换电路确定的物理地址,如图2中的箭头145所示。
然后,一致性管理电路将以标准方式处理使唯一请求,并且因此例如可以引用监听表来标识哪些元件可能具有数据的高速缓存副本,并且向任何此类元件发出监听请求以使得该数据的本地高速缓存副本无效。
一旦一致性管理电路85采取了足以确保针对该数据向互连电路发出的任何后续访问请求将被适当地处理的步骤,并且特别地将导致数据的最新版本被访问,一致性管理电路85就可以将完成信号发回到储存请求处理电路,如图2中的箭头150所指示的。如图2所示,在所示的示例性具体实施中,关于完成信号使用握手机构,并且因此,储存请求处理电路将向一致性管理电路发出确认信号以确认完成信号的接收。
如图3中的步骤225所指示的,当接收到完成信号时,则储存请求处理电路然后被布置成将储存数据存储到高速缓存中。在一个示例性具体实施中,可以作为原始储存请求的一部分来提供储存数据,即响应于储存请求而写入的数据。然而,在另选的具体实施中,如图2所示,数据可以不与原始的储存请求一起提供,并且相反,在接收到完成信号时,储存请求处理电路然后可以向储存请求的生成器发出请求,以便请求向其提供该数据。
在一个示例性具体实施中,这样的请求可以作为监听读取请求被发出到该储存请求的生成器,如图2中的箭头160所指示的。通常,如箭头165所指示的,然后,储存请求的生成器可以仅经由互连件向储存请求处理电路返回数据有效载荷,而不需要发起任何进一步的一致性管理操作。特别地,储存请求生成者请求的生成器(储存请求生成者)将知道它已经生成的数据是唯一的,并且实际上可以作为非一致性数据被保存在储存请求生成者内,例如保存在源寄存器内。此外,已知的是,一旦已经从一致性管理电路接收到完成信号,就将仅发出来自储存请求处理电路的读取请求,并且因此已经采取了所有所需的一致性动作。然而,如果在其他具体实施中,认为在将数据有效载荷提供给储存请求处理电路之前执行进一步的一致性检查是适当的,则这样的一致性操作可以由储存请求的生成器向一致性管理电路发送一致性请求来发起。
一旦已接收到数据有效负载,如图2中的气泡170所指示,所接收数据就可被存储在高速缓存的可用高速缓存行中,并且特别地,对于高速缓存为组关联高速缓存的具体实施,存储在使用物理地址标识的一组高速缓存内的可用高速缓存行中的一个高速缓存行内。高速缓存行还可以被标记为唯一的,因为凭借已经执行的一致性动作已知高速缓存存储数据的唯一副本。特别地,任何其他高速缓存的副本将已经无效。
图4A和图4B示出了可以作为以本文所讨论的方式使储存请求虚拟化的结果而实现的一些灵活性。如图4A所示,例如可以重新映射物理地址空间以用于储存。特别地,至少当在某些操作模式中时,将作为储存请求的接收方并且已经相应地提供将由储存请求生成者使用的虚拟地址范围和PASID的处理元件可以更新用于将该PASID的虚拟地址转换成物理地址的一个或多个页表。当在特定特权状态中操作时,例如在操作的管理程序或管理程序级别处,这可以例如通过处理元件是可能的。
如步骤255所指示的,储存请求生成者然后可以使用其在任何这样的页表更新之前将指定的相同信息来继续发出储存请求,并且已经凭借步骤250执行的重新映射对于储存请求生成者是完全透明的。
这样的重新映射可以以各种不同的方式使用。例如,在基于高速缓存的示例中,通过改变物理地址映射,这可以更改使用高速缓存的哪个物理数据阵列或存储设备来保存储存数据。此外,如果储存请求接受者具有一些本地存储器映射地址空间,并且因此例如能够在存储器映射地址空间中建立一个或多个本地缓冲器,则这样的方法使得储存请求接受者能够创建新缓冲器,后续储存数据被引导到该新缓冲器中。
图4B是示出可以在不需要对储存请求生成者的操作做出任何改变的情况下对处理储存请求做出的其他调整的流程图。如步骤260所指示的,对于用于储存请求的一个或多个目标标识符,可以在互连电路所引用的路由存储装置80内改变相关联的目标元件,以便改变接收使用该目标标识符发出的任何后续储存请求的元件。这在许多情况下是有用的。例如,它可以使得处理设备10能够决定将某些数据处理任务卸载到处理设备45,并且仅通过改变目标标识符与作为目标的实际元件之间的路由存储装置中的映射,任何后续储存请求将被自动地重定向到处理设备45,例如以允许储存数据被存储在其本地高速缓存50中。这可以在不需要对储存请求生成者的操作进行任何改变的情况下被执行,并且实际上储存请求生成者继续使用最初提供的信息来生成储存请求,如步骤265所指示的。
作为又一示例,通过组合图4A和图4B的机构,有可能改变与储存请求相关联的物理地址空间以及这些储存请求所指向的实际目标元件两者。纯粹作为说明性示例,GPU 60最初可以被设置为代表处理设备10执行储存请求,但是处理设备10可以随后决定其希望将关于储存数据的某些后续处理任务卸载到计算存储设备100。为了实现这一点,处理设备10可以使得路由存储装置被更新,使得由GPU发出的储存请求所使用的目标标识符现在映射到计算存储设备100。此外,它然后可以改变与由GPU在发出储存请求时使用的PASID值相关联的相关页表的映射,以便标识非易失性存储装置105内的物理地址空间。
因此,应当理解,本文描述的技术提供关于处理储存请求的显著增强的灵活性,特别是提供用于处理储存请求的虚拟化机构,该虚拟化机构使得能够对用于储存请求的目标元件和/或物理地址空间进行某些潜在的改变,而不需要调整储存请求生成者的操作。实际上,可以以对储存请求生成者活动完全透明的方式进行任何此类改变。
在本申请中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可以具有提供所限定的操作的专用硬件,或者可以对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以提供所限定的操作。
虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围和实质的前提下,本领域的技术人员可以在其中实现各种变化、增加和修改。例如,在不脱离本发明的范围的情况下,从属权利要求的特征可以与独立权利要求的特征一起进行各种组合。
Claims (16)
1.一种装置,所述装置包括:
处理元件,所述处理元件具有用于存储供所述处理元件访问的数据的相关联的存储结构;
接口,所述接口用于将所述处理元件联接到互连电路;
储存请求处理电路,所述储存请求处理电路响应于在所述接口处从所述互连电路接收到以所述存储结构为目标的储存请求而使与所述储存请求相关联的数据块被存储在所述存储结构内,其中所述储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥;以及
地址转换电路,所述地址转换电路用于通过执行取决于由所述储存请求标识的所述地址空间密钥的地址转换来将由所述储存请求标识的所述给定地址转换为所述对应物理地址;
其中所述储存请求处理电路响应于由所述地址转换电路确定的所述对应物理地址而使得所述数据块被存储在所述存储结构内与所述物理地址相关联的位置处。
2.根据权利要求1所述的装置,其中所述地址转换电路被布置成引用存储器中的一个或多个页表来确定所述地址转换,并且所述地址空间密钥被所述地址转换电路用来标识至少一个页表。
3.根据权利要求1或权利要求2所述的装置,其中所述处理元件在至少一种操作模式中被使能来根据所述地址空间密钥来修改由所述地址转换电路执行的所述地址转换,以便更改由标识所述地址空间密钥的后续储存请求所标识的给定地址如何被转换成对应物理地址。
4.根据任一前述权利要求所述的装置,所述装置还包括:
所述互连电路,所述互连电路用于互连联接到所述互连电路的多个元件,所述多个元件包括储存请求的生成器;
其中:
每个储存请求还提供目标标识符;
所述互连电路包括路由存储装置,以将所述多个元件中的每个元件与相关联的目标标识符相关联;并且
所述互连电路响应于由所述储存请求的生成器产生的每个储存请求的接收来引用所述路由存储装置以便确定所述储存请求将由所述互连电路路由到的目标元件。
5.根据权利要求4所述的装置,其中所述互连电路具有一致性管理电路,以维持能够由所述多个元件访问的数据的一致性,并且所述储存请求处理电路被布置成触发所述一致性管理电路以执行一致性动作以便确保与所述储存请求相关联的所述数据块的一致性。
6.根据权利要求5所述的装置,其中所述储存请求处理电路就被布置成一旦所述地址转换电路已经确定了所述对应物理地址,就触发所述一致性管理电路以执行所述一致性动作。
7.根据权利要求5或权利要求6所述的装置,其中所述储存请求处理电路被布置成推迟将与储存请求相关联的所述数据块存储到所述存储结构中,直到已经从所述一致性管理电路接收到完成信号以确认能够发出访问所述数据块的后续请求的所述多个元件中的任何元件将访问所述数据块的最新版本。
8.根据权利要求5至7中任一项所述的装置,其中所述储存请求被布置成使得所述相关联的数据块被存储在所述存储结构中并且被标记为唯一地存储在所述存储结构中,并且所述一致性管理电路被布置成使得所述数据块的任何副本在联接到所述互连电路的所述元件能够访问的任何其他存储结构中无效。
9.根据权利要求7或权利要求8所述的装置,其中一旦已经接收到所述完成信号,所述储存请求处理电路就被布置成经由所述接口发出请求以从所述储存请求的生成器获得所述数据块。
10.根据权利要求4至9中任一项所述的装置,其中所述路由存储装置是能够修改的,以便改变与给定目标标识符相关联的所述元件,从而更改标识所述给定目标标识符的后续储存请求被路由到的所述目标元件。
11.根据权利要求4至10中任一项所述的装置,其中所述处理元件被布置成向所述储存请求的生成器提供给定地址范围和所述地址空间密钥,以供所述储存请求的生成器在生成以所述处理元件的相关联存储结构为目标的储存请求时使用。
12.根据任一前述权利要求所述的装置,其中所述处理元件被布置成经由到所述互连电路的所述接口向所述存储器发出访问请求。
13.根据任一前述权利要求所述的装置,其中所述相关联的存储结构是高速缓存。
14.根据权利要求1至12中任一项所述的装置,其中所述相关联的存储结构是所述处理元件能够访问的存储器映射存储装置。
15.根据任一前述权利要求所述的装置,其中所述给定地址是虚拟地址。
16.一种处理储存请求的方法,所述方法包括:
提供处理元件,所述处理元件具有用于存储供所述处理元件访问的数据的相关联的存储结构;
将所述处理元件联接到互连电路;
采用储存请求处理电路,所述储存请求处理电路响应于从所述互连电路接收到以所述存储结构为目标的储存请求而使与所述储存请求相关联的数据块被存储在所述存储结构内,其中所述储存请求标识需要转换为存储器中的对应物理地址的给定地址,并且还标识地址空间密钥;
采用地址转换电路,所述地址转换电路用于通过执行取决于由所述储存请求标识的所述地址空间密钥的地址转换来将由所述储存请求标识的所述给定地址转换为所述对应物理地址;以及
响应于由所述地址转换电路确定的所述对应物理地址,使得所述数据块被存储在所述存储结构内与所述物理地址相关联的位置处。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/225,614 US11841800B2 (en) | 2021-04-08 | 2021-04-08 | Apparatus and method for handling stash requests |
US17/225,614 | 2021-04-08 | ||
PCT/GB2022/050413 WO2022214778A1 (en) | 2021-04-08 | 2022-02-16 | Apparatus and method for handling stash requests |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117099087A true CN117099087A (zh) | 2023-11-21 |
Family
ID=80461287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280025398.7A Pending CN117099087A (zh) | 2021-04-08 | 2022-02-16 | 用于处理储存请求的装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11841800B2 (zh) |
KR (1) | KR20230164172A (zh) |
CN (1) | CN117099087A (zh) |
GB (1) | GB2619831A (zh) |
WO (1) | WO2022214778A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774522B2 (en) * | 2008-11-17 | 2010-08-10 | Applied Micro Circuits Corporation | Cache stashing processor control messages |
US10037280B2 (en) * | 2015-05-29 | 2018-07-31 | Qualcomm Incorporated | Speculative pre-fetch of translations for a memory management unit (MMU) |
GB2567466B (en) * | 2017-10-12 | 2020-01-22 | Advanced Risc Mach Ltd | Cache stashing in a data processing system |
US10664419B2 (en) * | 2017-11-02 | 2020-05-26 | Arm Limited | I/O driven data transfer in a data processing network |
US10733106B2 (en) * | 2017-11-02 | 2020-08-04 | Arm Ltd | I/O driven data routing and cache allocation |
US11055222B2 (en) * | 2019-09-10 | 2021-07-06 | Mellanox Technologies, Ltd. | Prefetching of completion notifications and context |
US10949292B1 (en) * | 2019-10-07 | 2021-03-16 | Arm Limited | Memory interface having data signal path and tag signal path |
US11422944B2 (en) * | 2020-08-10 | 2022-08-23 | Intel Corporation | Address translation technologies |
-
2021
- 2021-04-08 US US17/225,614 patent/US11841800B2/en active Active
-
2022
- 2022-02-16 GB GB2312937.2A patent/GB2619831A/en active Pending
- 2022-02-16 CN CN202280025398.7A patent/CN117099087A/zh active Pending
- 2022-02-16 WO PCT/GB2022/050413 patent/WO2022214778A1/en active Application Filing
- 2022-02-16 KR KR1020237037865A patent/KR20230164172A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20220327057A1 (en) | 2022-10-13 |
GB202312937D0 (en) | 2023-10-11 |
KR20230164172A (ko) | 2023-12-01 |
GB2619831A (en) | 2023-12-20 |
US11841800B2 (en) | 2023-12-12 |
WO2022214778A1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
CN108153683B (zh) | 用于在存储器中的地址范围之间传输数据的装置和方法 | |
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
US6647466B2 (en) | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy | |
US6725337B1 (en) | Method and system for speculatively invalidating lines in a cache | |
US20160224467A1 (en) | Hierarchical cache structure and handling thereof | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
US9563568B2 (en) | Hierarchical cache structure and handling thereof | |
JPH04227552A (ja) | ストアスルーキャッシュ管理システム | |
JP2003067357A (ja) | 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 | |
US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
US10853256B2 (en) | Cache operation in an apparatus supporting both physical and virtual address mapping | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US20090158003A1 (en) | Structure for a memory-centric page table walker | |
WO2023194849A1 (en) | Shadow pointer directory in an inclusive hierarchical cache | |
US10565111B2 (en) | Processor | |
JP2000339221A (ja) | 変換装置のエントリを無効化するシステム及び方法 | |
JPH1091521A (ja) | 二重ディレクトリー仮想キャッシュ及びその制御方法 | |
US11841800B2 (en) | Apparatus and method for handling stash requests | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
EP1262876B1 (en) | Multiprocessing system with shared translation lookaside buffer | |
WO2017028877A1 (en) | Device and method for prefetching content to a cache memory | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 |
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 |